@moltzap/protocol 2026.503.3 → 2026.504.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brands.d.ts +11 -0
- package/dist/brands.d.ts.map +1 -0
- package/dist/brands.js +14 -0
- package/dist/brands.js.map +1 -0
- package/dist/helpers.d.ts +29 -26
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +34 -16
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/ajv.d.ts +5 -0
- package/dist/internal/ajv.d.ts.map +1 -0
- package/dist/internal/ajv.js +22 -0
- package/dist/internal/ajv.js.map +1 -0
- package/dist/notification.d.ts +14 -0
- package/dist/notification.d.ts.map +1 -0
- package/dist/notification.js +11 -0
- package/dist/notification.js.map +1 -0
- package/dist/rpc-errors.d.ts +30 -0
- package/dist/rpc-errors.d.ts.map +1 -0
- package/dist/rpc-errors.js +23 -0
- package/dist/rpc-errors.js.map +1 -0
- package/dist/rpc-groups.d.ts +120 -0
- package/dist/rpc-groups.d.ts.map +1 -0
- package/dist/rpc-groups.js +131 -0
- package/dist/rpc-groups.js.map +1 -0
- package/dist/rpc-registry.d.ts +1238 -278
- package/dist/rpc-registry.d.ts.map +1 -1
- package/dist/rpc-registry.js +11 -22
- package/dist/rpc-registry.js.map +1 -1
- package/dist/rpc.d.ts +26 -5
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +21 -11
- package/dist/rpc.js.map +1 -1
- package/dist/schema/apps.d.ts +13 -23
- package/dist/schema/apps.d.ts.map +1 -1
- package/dist/schema/apps.js +2 -12
- package/dist/schema/apps.js.map +1 -1
- package/dist/schema/contacts.d.ts +6 -2
- package/dist/schema/contacts.d.ts.map +1 -1
- package/dist/schema/conversations.d.ts +15 -5
- package/dist/schema/conversations.d.ts.map +1 -1
- package/dist/schema/delivery.d.ts +9 -3
- package/dist/schema/delivery.d.ts.map +1 -1
- package/dist/schema/errors.d.ts +0 -4
- package/dist/schema/errors.d.ts.map +1 -1
- package/dist/schema/errors.js +0 -4
- package/dist/schema/errors.js.map +1 -1
- package/dist/schema/frames.d.ts +48 -51
- package/dist/schema/frames.d.ts.map +1 -1
- package/dist/schema/frames.js +28 -50
- package/dist/schema/frames.js.map +1 -1
- package/dist/schema/identity.d.ts +17 -9
- package/dist/schema/identity.d.ts.map +1 -1
- package/dist/schema/index.d.ts +3 -4
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +3 -4
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/internal-frames.d.ts +10 -0
- package/dist/schema/internal-frames.d.ts.map +1 -0
- package/dist/schema/internal-frames.js +5 -0
- package/dist/schema/internal-frames.js.map +1 -0
- package/dist/schema/invites.d.ts +6 -2
- package/dist/schema/invites.d.ts.map +1 -1
- package/dist/schema/json-rpc.d.ts +27 -0
- package/dist/schema/json-rpc.d.ts.map +1 -0
- package/dist/schema/json-rpc.js +32 -0
- package/dist/schema/json-rpc.js.map +1 -0
- package/dist/schema/messages.d.ts +15 -5
- package/dist/schema/messages.d.ts.map +1 -1
- package/dist/schema/methods/apps.d.ts +138 -85
- package/dist/schema/methods/apps.d.ts.map +1 -1
- package/dist/schema/methods/apps.js +4 -45
- package/dist/schema/methods/apps.js.map +1 -1
- package/dist/schema/methods/auth.d.ts +62 -34
- package/dist/schema/methods/auth.d.ts.map +1 -1
- package/dist/schema/methods/contacts.d.ts +27 -9
- package/dist/schema/methods/contacts.d.ts.map +1 -1
- package/dist/schema/methods/conversations.d.ts +91 -18
- package/dist/schema/methods/conversations.d.ts.map +1 -1
- package/dist/schema/methods/conversations.js +2 -2
- package/dist/schema/methods/conversations.js.map +1 -1
- package/dist/schema/methods/messages.d.ts +39 -13
- package/dist/schema/methods/messages.d.ts.map +1 -1
- package/dist/schema/methods/presence.d.ts +6 -2
- package/dist/schema/methods/presence.d.ts.map +1 -1
- package/dist/schema/notifications.d.ts +791 -0
- package/dist/schema/notifications.d.ts.map +1 -0
- package/dist/schema/notifications.js +173 -0
- package/dist/schema/notifications.js.map +1 -0
- package/dist/schema/presence.d.ts +3 -1
- package/dist/schema/presence.d.ts.map +1 -1
- package/dist/schema/primitives.d.ts +21 -5
- package/dist/schema/primitives.d.ts.map +1 -1
- package/dist/schema/primitives.js +6 -0
- package/dist/schema/primitives.js.map +1 -1
- package/dist/test-fixtures/seed-data.d.ts +0 -1388
- package/dist/test-fixtures/seed-data.d.ts.map +1 -1
- package/dist/test-fixtures/seed-data.js +34 -990
- package/dist/test-fixtures/seed-data.js.map +1 -1
- package/dist/testing/agent-registration.d.ts +3 -1
- package/dist/testing/agent-registration.d.ts.map +1 -1
- package/dist/testing/agent-registration.js +6 -15
- package/dist/testing/agent-registration.js.map +1 -1
- package/dist/testing/arbitraries/frames.d.ts +2 -2
- package/dist/testing/arbitraries/frames.d.ts.map +1 -1
- package/dist/testing/arbitraries/frames.js +9 -7
- 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/index.d.ts +1 -1
- package/dist/testing/arbitraries/index.d.ts.map +1 -1
- package/dist/testing/arbitraries/index.js +1 -1
- package/dist/testing/arbitraries/index.js.map +1 -1
- package/dist/testing/arbitraries/rpc.d.ts +3 -2
- package/dist/testing/arbitraries/rpc.d.ts.map +1 -1
- package/dist/testing/arbitraries/rpc.js +13 -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 +13 -11
- package/dist/testing/codec.d.ts.map +1 -1
- package/dist/testing/codec.js +43 -50
- 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 +15 -5
- package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js.map +1 -1
- package/dist/testing/conformance/_helpers.d.ts +12 -7
- package/dist/testing/conformance/_helpers.d.ts.map +1 -1
- package/dist/testing/conformance/_helpers.js +30 -7
- 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 +83 -90
- package/dist/testing/conformance/adversity.js.map +1 -1
- package/dist/testing/conformance/boundary.d.ts +1 -1
- package/dist/testing/conformance/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/boundary.js +55 -50
- package/dist/testing/conformance/boundary.js.map +1 -1
- package/dist/testing/conformance/client/_fixtures.d.ts +7 -5
- package/dist/testing/conformance/client/_fixtures.d.ts.map +1 -1
- package/dist/testing/conformance/client/_fixtures.js +17 -8
- package/dist/testing/conformance/client/_fixtures.js.map +1 -1
- package/dist/testing/conformance/client/adversity.d.ts.map +1 -1
- package/dist/testing/conformance/client/adversity.js +28 -22
- package/dist/testing/conformance/client/adversity.js.map +1 -1
- package/dist/testing/conformance/client/boundary.d.ts +2 -2
- package/dist/testing/conformance/client/boundary.d.ts.map +1 -1
- package/dist/testing/conformance/client/boundary.js +19 -16
- package/dist/testing/conformance/client/boundary.js.map +1 -1
- package/dist/testing/conformance/client/delivery.d.ts +5 -5
- package/dist/testing/conformance/client/delivery.d.ts.map +1 -1
- package/dist/testing/conformance/client/delivery.js +77 -73
- package/dist/testing/conformance/client/delivery.js.map +1 -1
- package/dist/testing/conformance/client/index.d.ts +2 -2
- package/dist/testing/conformance/client/index.d.ts.map +1 -1
- package/dist/testing/conformance/client/index.js +1 -1
- package/dist/testing/conformance/client/index.js.map +1 -1
- package/dist/testing/conformance/client/rpc-semantics.d.ts.map +1 -1
- package/dist/testing/conformance/client/rpc-semantics.js +31 -37
- package/dist/testing/conformance/client/rpc-semantics.js.map +1 -1
- package/dist/testing/conformance/client/runner.d.ts +38 -32
- package/dist/testing/conformance/client/runner.d.ts.map +1 -1
- package/dist/testing/conformance/client/runner.js +36 -45
- package/dist/testing/conformance/client/runner.js.map +1 -1
- package/dist/testing/conformance/client/schema-conformance.d.ts +8 -8
- package/dist/testing/conformance/client/schema-conformance.d.ts.map +1 -1
- package/dist/testing/conformance/client/schema-conformance.js +37 -35
- 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 +4 -3
- 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 +127 -140
- package/dist/testing/conformance/delivery.js.map +1 -1
- package/dist/testing/conformance/dispatcher-concurrency.js +12 -12
- package/dist/testing/conformance/dispatcher-concurrency.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 +35 -24
- 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 +12 -12
- package/dist/testing/conformance/rpc-semantics.d.ts.map +1 -1
- package/dist/testing/conformance/rpc-semantics.js +131 -90
- 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 +3 -40
- package/dist/testing/conformance/schema-conformance.d.ts.map +1 -1
- package/dist/testing/conformance/schema-conformance.js +75 -235
- 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 +17 -18
- package/dist/testing/conformance/suite.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/models/dispatch.d.ts +5 -5
- package/dist/testing/models/dispatch.d.ts.map +1 -1
- package/dist/testing/models/dispatch.js +50 -59
- package/dist/testing/models/dispatch.js.map +1 -1
- package/dist/testing/models/state.d.ts +5 -5
- 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 +51 -40
- package/dist/testing/test-client.d.ts.map +1 -1
- package/dist/testing/test-client.js +154 -122
- package/dist/testing/test-client.js.map +1 -1
- package/dist/testing/test-server.d.ts +5 -5
- package/dist/testing/test-server.d.ts.map +1 -1
- package/dist/testing/test-server.js +11 -15
- 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/types.d.ts +3 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validators.d.ts +366 -101
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +23 -30
- package/dist/validators.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/dist/schema/events.d.ts +0 -213
- package/dist/schema/events.d.ts.map +0 -1
- package/dist/schema/events.js +0 -122
- package/dist/schema/events.js.map +0 -1
- package/dist/schema/methods/push.d.ts +0 -21
- package/dist/schema/methods/push.d.ts.map +0 -1
- package/dist/schema/methods/push.js +0 -28
- package/dist/schema/methods/push.js.map +0 -1
- package/dist/schema/surfaces.d.ts +0 -55
- package/dist/schema/surfaces.d.ts.map +0 -1
- package/dist/schema/surfaces.js +0 -55
- package/dist/schema/surfaces.js.map +0 -1
|
@@ -9,19 +9,38 @@
|
|
|
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";
|
|
23
|
+
import { isRequestFrame, isResponseFrame } from "../codec.js";
|
|
19
24
|
import { registerTestAgent } from "../agent-registration.js";
|
|
25
|
+
import { isJsonRpcStringId, } from "../../schema/json-rpc.js";
|
|
20
26
|
import { allRpcMethods } from "../arbitraries/rpc.js";
|
|
21
27
|
import { assertProperty, PropertyDeferred, PropertyInvariantViolation, PropertyUnavailable, registerProperty, } from "./registry.js";
|
|
28
|
+
import { eitherTag, leftOrNull } from "./_helpers.js";
|
|
22
29
|
const CATEGORY = "rpc-semantics";
|
|
23
30
|
const DEFAULT_TIMEOUT_MS = 3000;
|
|
24
31
|
const DEFAULT_CAPTURE_CAPACITY = 64;
|
|
32
|
+
const MODEL_EQUIVALENCE_PROPERTY = "model-equivalence";
|
|
33
|
+
const AUTHORITY_POSITIVE_PROPERTY = "authority-positive";
|
|
34
|
+
const AUTHORITY_NEGATIVE_PROPERTY = "authority-negative";
|
|
35
|
+
const REQUEST_ID_UNIQUENESS_PROPERTY = "request-id-uniqueness";
|
|
36
|
+
const CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY = "caller-controlled-app-callback-timeout";
|
|
37
|
+
const IDEMPOTENCE_PROPERTY = "idempotence";
|
|
38
|
+
const MODEL_NUM_RUNS_FLOOR = 10;
|
|
39
|
+
const MODEL_RUNS_PER_CONFIDENT_METHOD = 2;
|
|
40
|
+
const RESPONSE_CAPTURE_CAPACITY_PER_REQUEST = 4;
|
|
41
|
+
const REQUEST_ID_UNIQUENESS_NUM_RUNS = 5;
|
|
42
|
+
const TIMEOUT_LOWER_MARGIN_MS = 20;
|
|
43
|
+
const TIMEOUT_UPPER_MULTIPLIER = 4;
|
|
25
44
|
/**
|
|
26
45
|
* Model-equivalence — conditional oracle over the model-derived
|
|
27
46
|
* confident set (architect #195 §4.1 + #197 §2).
|
|
@@ -56,8 +75,8 @@ const DEFAULT_CAPTURE_CAPACITY = 64;
|
|
|
56
75
|
*/
|
|
57
76
|
export function registerModelEquivalence(ctx) {
|
|
58
77
|
const K = confidentOracleMethods.length;
|
|
59
|
-
const numRunsFloor = Math.max(
|
|
60
|
-
registerProperty(ctx, CATEGORY,
|
|
78
|
+
const numRunsFloor = Math.max(MODEL_NUM_RUNS_FLOOR, MODEL_RUNS_PER_CONFIDENT_METHOD * K);
|
|
79
|
+
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
80
|
const modelTag = applyCall(initialReferenceState, call).outcome._tag;
|
|
62
81
|
if (modelTag === "error") {
|
|
63
82
|
// Safety-net guard: `arbitraryConfidentCall` derived this
|
|
@@ -65,7 +84,11 @@ export function registerModelEquivalence(ctx) {
|
|
|
65
84
|
// disagrees, applyCall became param-sensitive for the
|
|
66
85
|
// kept method and the derivation must widen. Surface
|
|
67
86
|
// loudly instead of silent short-circuit.
|
|
68
|
-
|
|
87
|
+
return Effect.runPromise(Effect.fail(new PropertyInvariantViolation({
|
|
88
|
+
category: CATEGORY,
|
|
89
|
+
name: MODEL_EQUIVALENCE_PROPERTY,
|
|
90
|
+
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`,
|
|
91
|
+
})));
|
|
69
92
|
}
|
|
70
93
|
return Effect.runPromise(Effect.scoped(Effect.gen(function* () {
|
|
71
94
|
const agent = yield* registerTestAgent({
|
|
@@ -80,9 +103,12 @@ export function registerModelEquivalence(ctx) {
|
|
|
80
103
|
captureCapacity: DEFAULT_CAPTURE_CAPACITY,
|
|
81
104
|
});
|
|
82
105
|
const outcome = yield* client
|
|
83
|
-
.sendRpc(call.
|
|
106
|
+
.sendRpc(call.definition, call.params)
|
|
84
107
|
.pipe(Effect.either);
|
|
85
|
-
return outcome
|
|
108
|
+
return Either.match(outcome, {
|
|
109
|
+
onLeft: () => "error",
|
|
110
|
+
onRight: () => "ok",
|
|
111
|
+
});
|
|
86
112
|
})).pipe(Effect.map((serverTag) => serverTag === "ok")));
|
|
87
113
|
}), { seed: ctx.seed, numRuns: ctx.opts.numRuns ?? numRunsFloor })));
|
|
88
114
|
// Keep `arbitraryAnyCall` import alive — used by sibling properties.
|
|
@@ -95,13 +121,13 @@ export function registerModelEquivalence(ctx) {
|
|
|
95
121
|
* newly-registered agent), asserts a Right outcome.
|
|
96
122
|
*/
|
|
97
123
|
export function registerAuthorityPositive(ctx) {
|
|
98
|
-
registerProperty(ctx, CATEGORY,
|
|
124
|
+
registerProperty(ctx, CATEGORY, AUTHORITY_POSITIVE_PROPERTY, "authorized agent → typed success on conversations/list", Effect.scoped(Effect.gen(function* () {
|
|
99
125
|
const agent = yield* registerTestAgent({
|
|
100
126
|
baseUrl: ctx.realServer.baseUrl,
|
|
101
127
|
name: "ap",
|
|
102
128
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
103
129
|
category: CATEGORY,
|
|
104
|
-
name:
|
|
130
|
+
name: AUTHORITY_POSITIVE_PROPERTY,
|
|
105
131
|
reason: `agent registration failed: ${e.body}`,
|
|
106
132
|
})));
|
|
107
133
|
const client = yield* makeTestClient({
|
|
@@ -112,17 +138,18 @@ export function registerAuthorityPositive(ctx) {
|
|
|
112
138
|
captureCapacity: DEFAULT_CAPTURE_CAPACITY,
|
|
113
139
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
114
140
|
category: CATEGORY,
|
|
115
|
-
name:
|
|
141
|
+
name: AUTHORITY_POSITIVE_PROPERTY,
|
|
116
142
|
reason: `client acquire failed: ${String(e)}`,
|
|
117
143
|
})));
|
|
118
144
|
const outcome = yield* client
|
|
119
|
-
.sendRpc(
|
|
145
|
+
.sendRpc(ConversationsList, {})
|
|
120
146
|
.pipe(Effect.either);
|
|
121
|
-
|
|
147
|
+
const failure = leftOrNull(outcome);
|
|
148
|
+
if (failure !== null) {
|
|
122
149
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
123
150
|
category: CATEGORY,
|
|
124
|
-
name:
|
|
125
|
-
reason: `authorized conversations/list failed: ${
|
|
151
|
+
name: AUTHORITY_POSITIVE_PROPERTY,
|
|
152
|
+
reason: `authorized conversations/list failed: ${failure._tag}`,
|
|
126
153
|
}));
|
|
127
154
|
}
|
|
128
155
|
})));
|
|
@@ -134,7 +161,7 @@ export function registerAuthorityPositive(ctx) {
|
|
|
134
161
|
* with a typed error (not a success, not a crash).
|
|
135
162
|
*/
|
|
136
163
|
export function registerAuthorityNegative(ctx) {
|
|
137
|
-
registerProperty(ctx, CATEGORY,
|
|
164
|
+
registerProperty(ctx, CATEGORY, AUTHORITY_NEGATIVE_PROPERTY, "unauthenticated agent → typed denial on conversations/list", Effect.scoped(Effect.gen(function* () {
|
|
138
165
|
// We still need an agentKey to open the socket, but we skip
|
|
139
166
|
// `auth/connect` so the server sees an un-authed session.
|
|
140
167
|
const agent = yield* registerTestAgent({
|
|
@@ -142,7 +169,7 @@ export function registerAuthorityNegative(ctx) {
|
|
|
142
169
|
name: "an",
|
|
143
170
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
144
171
|
category: CATEGORY,
|
|
145
|
-
name:
|
|
172
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
146
173
|
reason: `agent registration failed: ${e.body}`,
|
|
147
174
|
})));
|
|
148
175
|
const client = yield* makeTestClient({
|
|
@@ -154,47 +181,52 @@ export function registerAuthorityNegative(ctx) {
|
|
|
154
181
|
autoConnect: false,
|
|
155
182
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
156
183
|
category: CATEGORY,
|
|
157
|
-
name:
|
|
184
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
158
185
|
reason: `client acquire failed: ${String(e)}`,
|
|
159
186
|
})));
|
|
160
187
|
const outcome = yield* client
|
|
161
|
-
.sendRpc(
|
|
188
|
+
.sendRpc(ConversationsList, {})
|
|
162
189
|
.pipe(Effect.either);
|
|
163
|
-
|
|
164
|
-
|
|
190
|
+
const error = yield* Either.match(outcome, {
|
|
191
|
+
onLeft: (failure) => Effect.succeed(failure),
|
|
192
|
+
onRight: () => Effect.fail(new PropertyInvariantViolation({
|
|
165
193
|
category: CATEGORY,
|
|
166
|
-
name:
|
|
194
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
167
195
|
reason: "pre-handshake conversations/list returned success — expected typed denial",
|
|
168
|
-
}))
|
|
169
|
-
}
|
|
196
|
+
})),
|
|
197
|
+
});
|
|
170
198
|
// Narrow the Left: must be a typed auth-shaped RpcResponseError
|
|
171
199
|
// (Unauthorized / Forbidden). A timeout or transport-close
|
|
172
200
|
// would also surface as `Left` but does NOT satisfy the
|
|
173
201
|
// property — it proves nothing about authorization.
|
|
174
|
-
if (
|
|
202
|
+
if (!(error instanceof RpcResponseError)) {
|
|
175
203
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
176
204
|
category: CATEGORY,
|
|
177
|
-
name:
|
|
178
|
-
reason: `expected RpcResponseError, got ${
|
|
205
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
206
|
+
reason: `expected RpcResponseError, got ${error._tag}`,
|
|
179
207
|
}));
|
|
180
208
|
}
|
|
181
|
-
const code =
|
|
209
|
+
const code = error.code;
|
|
182
210
|
const isAuthShaped = code === ErrorCodes.Unauthorized || code === ErrorCodes.Forbidden;
|
|
183
211
|
if (!isAuthShaped) {
|
|
184
212
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
185
213
|
category: CATEGORY,
|
|
186
|
-
name:
|
|
214
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
187
215
|
reason: `expected Unauthorized/Forbidden code (${ErrorCodes.Unauthorized} / ${ErrorCodes.Forbidden}), got ${code}`,
|
|
188
216
|
}));
|
|
189
217
|
}
|
|
190
218
|
// Oracle cross-check: the model also predicts deny for this
|
|
191
219
|
// unauthenticated caller. Keeps the model honest alongside the
|
|
192
220
|
// server.
|
|
193
|
-
const modelVerdict = authorizationOutcome(initialReferenceState, {
|
|
221
|
+
const modelVerdict = authorizationOutcome(initialReferenceState, {
|
|
222
|
+
definition: ConversationsList,
|
|
223
|
+
method: ConversationsList.name,
|
|
224
|
+
params: {},
|
|
225
|
+
}, "unknown-agent");
|
|
194
226
|
if (modelVerdict !== "deny-unauthenticated") {
|
|
195
227
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
196
228
|
category: CATEGORY,
|
|
197
|
-
name:
|
|
229
|
+
name: AUTHORITY_NEGATIVE_PROPERTY,
|
|
198
230
|
reason: `model oracle disagrees: expected deny-unauthenticated, got ${modelVerdict}`,
|
|
199
231
|
}));
|
|
200
232
|
}
|
|
@@ -205,7 +237,7 @@ export function registerAuthorityNegative(ctx) {
|
|
|
205
237
|
* every id in the captured response stream appears exactly once.
|
|
206
238
|
*/
|
|
207
239
|
export function registerRequestIdUniqueness(ctx) {
|
|
208
|
-
registerProperty(ctx, CATEGORY,
|
|
240
|
+
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
241
|
const agent = yield* registerTestAgent({
|
|
210
242
|
baseUrl: ctx.realServer.baseUrl,
|
|
211
243
|
name: "ru",
|
|
@@ -215,29 +247,27 @@ export function registerRequestIdUniqueness(ctx) {
|
|
|
215
247
|
agentKey: agent.apiKey,
|
|
216
248
|
agentId: agent.agentId,
|
|
217
249
|
defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
|
|
218
|
-
captureCapacity: n *
|
|
250
|
+
captureCapacity: n * RESPONSE_CAPTURE_CAPACITY_PER_REQUEST,
|
|
219
251
|
});
|
|
220
252
|
// Snapshot the capture boundary after handshake so we
|
|
221
253
|
// only tally response ids for the N RPCs below — not
|
|
222
254
|
// the auto-connect reply.
|
|
223
255
|
const handshakeEnd = (yield* client.snapshot).length;
|
|
224
|
-
yield* Effect.forEach(Array.from({ length: n }, (_, i) => i), () => client
|
|
225
|
-
.sendRpc("conversations/list", {})
|
|
226
|
-
.pipe(Effect.either), { concurrency: n });
|
|
256
|
+
yield* Effect.forEach(Array.from({ length: n }, (_, i) => i), () => client.sendRpc(ConversationsList, {}).pipe(Effect.either), { concurrency: n });
|
|
227
257
|
const snap = (yield* client.snapshot).slice(handshakeEnd);
|
|
228
258
|
const outboundIds = new Set();
|
|
229
259
|
const inboundIds = new Set();
|
|
230
260
|
let inboundCount = 0;
|
|
231
261
|
for (const entry of snap) {
|
|
232
|
-
if (entry.frame
|
|
233
|
-
entry.frame?.type !== "response")
|
|
262
|
+
if (entry.frame === null)
|
|
234
263
|
continue;
|
|
235
264
|
if (entry.kind === "outbound" &&
|
|
236
|
-
entry.frame
|
|
265
|
+
isRequestFrame(entry.frame)) {
|
|
237
266
|
outboundIds.add(entry.frame.id);
|
|
238
267
|
}
|
|
239
268
|
if (entry.kind === "inbound" &&
|
|
240
|
-
entry.frame
|
|
269
|
+
isResponseFrame(entry.frame) &&
|
|
270
|
+
isJsonRpcStringId(entry.frame.id)) {
|
|
241
271
|
inboundIds.add(entry.frame.id);
|
|
242
272
|
inboundCount += 1;
|
|
243
273
|
}
|
|
@@ -262,33 +292,36 @@ export function registerRequestIdUniqueness(ctx) {
|
|
|
262
292
|
return false;
|
|
263
293
|
}
|
|
264
294
|
return true;
|
|
265
|
-
})))), {
|
|
295
|
+
})))), {
|
|
296
|
+
seed: ctx.seed,
|
|
297
|
+
numRuns: ctx.opts.numRuns ?? REQUEST_ID_UNIQUENESS_NUM_RUNS,
|
|
298
|
+
})));
|
|
266
299
|
}
|
|
267
300
|
/**
|
|
268
|
-
* Spurious
|
|
269
|
-
* plan §3.3 + §1.7: the server's `
|
|
270
|
-
* it allocated; an inbound
|
|
301
|
+
* Spurious appCallback responses do not crash or poison the server. Architect
|
|
302
|
+
* plan §3.3 + §1.7: the server's `appCallbackPending` map keys on the request id
|
|
303
|
+
* it allocated; an inbound appCallback response with no matching pending entry
|
|
271
304
|
* is dropped, the connection stays responsive.
|
|
272
305
|
*
|
|
273
306
|
* Status: tombstoned as `PropertyDeferred`. TestClient's public surface
|
|
274
|
-
*
|
|
275
|
-
* the wire requires either a raw-write primitive
|
|
276
|
-
* server-side fault-injection seam. The wire-level
|
|
277
|
-
* exercised in B.9 server integration tests where the connection
|
|
278
|
-
* reachable. Tombstoning here keeps the conformance contract visible
|
|
307
|
+
* only sends normal client-originated requests; injecting an unsolicited
|
|
308
|
+
* server-originated response on the wire requires either a raw-write primitive
|
|
309
|
+
* on TestClient or a server-side fault-injection seam. The wire-level
|
|
310
|
+
* injection is exercised in B.9 server integration tests where the connection
|
|
311
|
+
* ref is reachable. Tombstoning here keeps the conformance contract visible
|
|
279
312
|
* and avoids reporting false coverage (codex review #327, finding 1).
|
|
280
313
|
*/
|
|
281
|
-
export function
|
|
314
|
+
export function registerSpuriousAppCallbackFrameHandling(ctx) {
|
|
282
315
|
void ctx;
|
|
283
|
-
registerProperty(ctx, CATEGORY, "spurious-
|
|
316
|
+
registerProperty(ctx, CATEGORY, "spurious-app-callback-frame-handling", "stray appCallback response with no matching pending ⇒ server drops & stays alive", Effect.fail(new PropertyDeferred({
|
|
284
317
|
category: CATEGORY,
|
|
285
|
-
name: "spurious-
|
|
318
|
+
name: "spurious-app-callback-frame-handling",
|
|
286
319
|
followUp: "wire-level raw-frame injection requires TestClient extension; B.9 (#318) covers via server-side fault injection",
|
|
287
320
|
})));
|
|
288
321
|
}
|
|
289
322
|
/**
|
|
290
|
-
* Caller-controlled
|
|
291
|
-
* timeoutMs)` returns a timeout error when no
|
|
323
|
+
* Caller-controlled appCallback timeout — `awaitServerRequest(method, undef,
|
|
324
|
+
* timeoutMs)` returns a timeout error when no appCallback request arrives in the
|
|
292
325
|
* window. Architect plan §3.4: timeout policy lives in the caller
|
|
293
326
|
* (`Effect.timeout(manifestHookTimeout)` at the AppHost call site), NOT
|
|
294
327
|
* in the schema. This property anchors the caller-side behaviour the
|
|
@@ -299,14 +332,14 @@ export function registerSpuriousS2cFrameHandling(ctx) {
|
|
|
299
332
|
* and FIRES IN THE WINDOW the caller passed (within 2x to absorb CI
|
|
300
333
|
* scheduling noise).
|
|
301
334
|
*/
|
|
302
|
-
export function
|
|
303
|
-
registerProperty(ctx, CATEGORY,
|
|
335
|
+
export function registerCallerControlledAppCallbackTimeout(ctx) {
|
|
336
|
+
registerProperty(ctx, CATEGORY, CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY, "awaitServerRequest(_, _, timeoutMs) fires within the caller's window", Effect.scoped(Effect.gen(function* () {
|
|
304
337
|
const agent = yield* registerTestAgent({
|
|
305
338
|
baseUrl: ctx.realServer.baseUrl,
|
|
306
339
|
name: "ct",
|
|
307
340
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
308
341
|
category: CATEGORY,
|
|
309
|
-
name:
|
|
342
|
+
name: CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY,
|
|
310
343
|
reason: `register agent: ${e.body}`,
|
|
311
344
|
})));
|
|
312
345
|
const client = yield* makeTestClient({
|
|
@@ -317,7 +350,7 @@ export function registerCallerControlledS2cTimeout(ctx) {
|
|
|
317
350
|
captureCapacity: DEFAULT_CAPTURE_CAPACITY,
|
|
318
351
|
}).pipe(Effect.mapError((e) => new PropertyInvariantViolation({
|
|
319
352
|
category: CATEGORY,
|
|
320
|
-
name:
|
|
353
|
+
name: CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY,
|
|
321
354
|
reason: `client acquire: ${String(e)}`,
|
|
322
355
|
})));
|
|
323
356
|
// 250ms (rather than the architect plan's example 100ms) hardens
|
|
@@ -325,25 +358,26 @@ export function registerCallerControlledS2cTimeout(ctx) {
|
|
|
325
358
|
// 200–500ms on a 100ms timer, while a 250ms timer with the same
|
|
326
359
|
// 4× upper bound stays well clear of the flake band.
|
|
327
360
|
const timeoutMs = 250;
|
|
328
|
-
const lowerBoundMs = timeoutMs -
|
|
329
|
-
const upperBoundMs = timeoutMs *
|
|
361
|
+
const lowerBoundMs = timeoutMs - TIMEOUT_LOWER_MARGIN_MS;
|
|
362
|
+
const upperBoundMs = timeoutMs * TIMEOUT_UPPER_MULTIPLIER;
|
|
330
363
|
const before = Date.now();
|
|
331
364
|
const outcome = yield* client
|
|
332
|
-
.awaitServerRequest(
|
|
365
|
+
.awaitServerRequest(AppsOnBeforeDispatch, undefined, timeoutMs)
|
|
333
366
|
.pipe(Effect.either);
|
|
334
367
|
const elapsed = Date.now() - before;
|
|
335
|
-
|
|
336
|
-
|
|
368
|
+
const timeoutError = yield* Either.match(outcome, {
|
|
369
|
+
onLeft: (error) => Effect.succeed(error),
|
|
370
|
+
onRight: () => Effect.fail(new PropertyInvariantViolation({
|
|
337
371
|
category: CATEGORY,
|
|
338
|
-
name:
|
|
339
|
-
reason: `expected Left (timeout); got Right (
|
|
340
|
-
}))
|
|
341
|
-
}
|
|
342
|
-
if (!/Timeout/i.test(
|
|
372
|
+
name: CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY,
|
|
373
|
+
reason: `expected Left (timeout); got Right (appCallback request fired)`,
|
|
374
|
+
})),
|
|
375
|
+
});
|
|
376
|
+
if (!/Timeout/i.test(timeoutError.message)) {
|
|
343
377
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
344
378
|
category: CATEGORY,
|
|
345
|
-
name:
|
|
346
|
-
reason: `expected timeout error; got ${
|
|
379
|
+
name: CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY,
|
|
380
|
+
reason: `expected timeout error; got ${timeoutError.message}`,
|
|
347
381
|
}));
|
|
348
382
|
}
|
|
349
383
|
// Window is the caller's. Floor rejects "timed out before the
|
|
@@ -354,7 +388,7 @@ export function registerCallerControlledS2cTimeout(ctx) {
|
|
|
354
388
|
if (elapsed < lowerBoundMs || elapsed > upperBoundMs) {
|
|
355
389
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
356
390
|
category: CATEGORY,
|
|
357
|
-
name:
|
|
391
|
+
name: CALLER_CONTROLLED_APP_CALLBACK_TIMEOUT_PROPERTY,
|
|
358
392
|
reason: `timeout fired at ${elapsed}ms; caller asked for ${timeoutMs}ms (window: ${lowerBoundMs}–${upperBoundMs}ms)`,
|
|
359
393
|
}));
|
|
360
394
|
}
|
|
@@ -373,16 +407,14 @@ export function registerCallerControlledS2cTimeout(ctx) {
|
|
|
373
407
|
* — spec B5 says "identical results", not "identical outcome kinds".
|
|
374
408
|
*/
|
|
375
409
|
export function registerIdempotence(ctx) {
|
|
376
|
-
registerProperty(ctx, CATEGORY,
|
|
377
|
-
const emptyParamIdempotents = [
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
];
|
|
381
|
-
for (const method of emptyParamIdempotents) {
|
|
410
|
+
registerProperty(ctx, CATEGORY, IDEMPOTENCE_PROPERTY, "isIdempotent methods: two sends yield identical response bodies", Effect.gen(function* () {
|
|
411
|
+
const emptyParamIdempotents = [AgentsList, ConversationsList];
|
|
412
|
+
for (const definition of emptyParamIdempotents) {
|
|
413
|
+
const method = definition.name;
|
|
382
414
|
if (!isIdempotent(method)) {
|
|
383
415
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
384
416
|
category: CATEGORY,
|
|
385
|
-
name:
|
|
417
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
386
418
|
reason: `isIdempotent(${method}) is false — oracle disagreement`,
|
|
387
419
|
}));
|
|
388
420
|
}
|
|
@@ -398,49 +430,58 @@ export function registerIdempotence(ctx) {
|
|
|
398
430
|
defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
|
|
399
431
|
captureCapacity: DEFAULT_CAPTURE_CAPACITY,
|
|
400
432
|
});
|
|
401
|
-
const a = yield* client.sendRpc(
|
|
402
|
-
const b = yield* client.sendRpc(
|
|
433
|
+
const a = yield* client.sendRpc(definition, {}).pipe(Effect.either);
|
|
434
|
+
const b = yield* client.sendRpc(definition, {}).pipe(Effect.either);
|
|
403
435
|
return { a, b };
|
|
404
436
|
})).pipe(Effect.catchTags({
|
|
405
437
|
TestingAgentRegistrationError: (e) => Effect.fail(new PropertyUnavailable({
|
|
406
438
|
category: CATEGORY,
|
|
407
|
-
name:
|
|
439
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
408
440
|
reason: `register: ${e.body}`,
|
|
409
441
|
})),
|
|
410
442
|
TestingTransportIoError: (e) => Effect.fail(new PropertyUnavailable({
|
|
411
443
|
category: CATEGORY,
|
|
412
|
-
name:
|
|
444
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
413
445
|
reason: `transport io: ${String(e.cause)}`,
|
|
414
446
|
})),
|
|
415
447
|
TestingTransportClosedError: (e) => Effect.fail(new PropertyUnavailable({
|
|
416
448
|
category: CATEGORY,
|
|
417
|
-
name:
|
|
449
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
418
450
|
reason: `transport closed: ${e.reason}`,
|
|
419
451
|
})),
|
|
420
452
|
TestingRpcResponseError: (e) => Effect.fail(new PropertyUnavailable({
|
|
421
453
|
category: CATEGORY,
|
|
422
|
-
name:
|
|
454
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
423
455
|
reason: `rpc response error: ${e.message}`,
|
|
424
456
|
})),
|
|
425
457
|
}));
|
|
426
|
-
|
|
458
|
+
const aTag = eitherTag(pair.a);
|
|
459
|
+
const bTag = eitherTag(pair.b);
|
|
460
|
+
if (aTag !== bTag) {
|
|
427
461
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
428
462
|
category: CATEGORY,
|
|
429
|
-
name:
|
|
430
|
-
reason: `${method}: replay outcome-tag mismatch ${
|
|
463
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
464
|
+
reason: `${method}: replay outcome-tag mismatch ${aTag} → ${bTag}`,
|
|
431
465
|
}));
|
|
432
466
|
}
|
|
433
|
-
|
|
467
|
+
const successPair = Either.match(pair.a, {
|
|
468
|
+
onLeft: () => null,
|
|
469
|
+
onRight: (a) => Either.match(pair.b, {
|
|
470
|
+
onLeft: () => null,
|
|
471
|
+
onRight: (b) => ({ a, b }),
|
|
472
|
+
}),
|
|
473
|
+
});
|
|
474
|
+
if (successPair !== null) {
|
|
434
475
|
// Canonical-projection comparison per architect #197 §3.3.
|
|
435
476
|
// Direct JSON.stringify on wire-derived values is byte-
|
|
436
477
|
// equality, not semantic equality; a conforming server may
|
|
437
478
|
// return the list in a different row order across replays.
|
|
438
|
-
const aCanon = canonIdempotenceResult(method,
|
|
439
|
-
const bCanon = canonIdempotenceResult(method,
|
|
479
|
+
const aCanon = canonIdempotenceResult(method, successPair.a);
|
|
480
|
+
const bCanon = canonIdempotenceResult(method, successPair.b);
|
|
440
481
|
if (aCanon !== bCanon) {
|
|
441
482
|
return yield* Effect.fail(new PropertyInvariantViolation({
|
|
442
483
|
category: CATEGORY,
|
|
443
|
-
name:
|
|
484
|
+
name: IDEMPOTENCE_PROPERTY,
|
|
444
485
|
reason: `${method}: replay bodies diverge under canonical projection`,
|
|
445
486
|
}));
|
|
446
487
|
}
|
|
@@ -465,7 +506,7 @@ export function registerIdempotence(ctx) {
|
|
|
465
506
|
* fails the property.
|
|
466
507
|
*/
|
|
467
508
|
function canonIdempotenceResult(method, result) {
|
|
468
|
-
if (method ===
|
|
509
|
+
if (method === AgentsList.name) {
|
|
469
510
|
const r = result;
|
|
470
511
|
return canonicalJson({
|
|
471
512
|
...r,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-semantics.js","sourceRoot":"","sources":["../../../src/testing/conformance/rpc-semantics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rpc-semantics.js","sourceRoot":"","sources":["../../../src/testing/conformance/rpc-semantics.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,12 @@ export interface RealServerHandle {
|
|
|
25
25
|
readonly wsUrl: string;
|
|
26
26
|
readonly baseUrl: string;
|
|
27
27
|
/** Teardown hook; the runner's Scope calls this on release. */
|
|
28
|
-
readonly close:
|
|
28
|
+
readonly close: Effect.Effect<void>;
|
|
29
29
|
}
|
|
30
30
|
export interface ConformanceRunOptions {
|
|
31
31
|
readonly tiers: ReadonlyArray<"A" | "B" | "C" | "D" | "E">;
|
|
32
32
|
/** Supplier for the real server; invoked once per run. */
|
|
33
|
-
readonly realServer:
|
|
33
|
+
readonly realServer: Effect.Effect<RealServerHandle, RealServerAcquireError>;
|
|
34
34
|
/** If provided, replay this exact fast-check seed (AC10 reproducibility). */
|
|
35
35
|
readonly replaySeed?: number;
|
|
36
36
|
/** Number of runs per property; fast-check default is 100. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA0B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYzE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC3D,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;IAC7E,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,qBAAqB,GAC1B,MAAM,CAAC,MAAM,CACd,qBAAqB,EACrB,iBAAiB,GAAG,sBAAsB,EAC1C,KAAK,CAAC,KAAK,CACZ,CA8BA;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,qBAAqB,GACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAMrB"}
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
* - pin fast-check seeds and export them on failure (AC10);
|
|
13
13
|
* - tear everything down in reverse order.
|
|
14
14
|
*/
|
|
15
|
-
import { Effect, Ref, Scope } from "effect";
|
|
15
|
+
import { Config, ConfigProvider, Effect, Ref, Scope } from "effect";
|
|
16
16
|
import { makeToxiproxyClient } from "../toxics/client.js";
|
|
17
17
|
import { RealServerAcquireError, ToxicControlError } from "../errors.js";
|
|
18
18
|
import { conformanceNumRunsFromEnv } from "./env.js";
|
|
19
|
+
const REPLAY_SEED_MASK = 0x7fffffff;
|
|
20
|
+
const loadFastCheckSeed = Config.integer("FC_SEED").pipe(Effect.withConfigProvider(ConfigProvider.fromEnv()), Effect.orElseSucceed(() => Date.now() & REPLAY_SEED_MASK));
|
|
19
21
|
/**
|
|
20
22
|
* Acquire the full context (real server + optional Toxiproxy) under one
|
|
21
23
|
* Scope; Vitest's `beforeAll`/`afterAll` tick the scope.
|
|
@@ -26,16 +28,9 @@ export function acquireRunContext(opts) {
|
|
|
26
28
|
...opts,
|
|
27
29
|
numRuns: opts.numRuns ?? conformanceNumRunsFromEnv(),
|
|
28
30
|
};
|
|
29
|
-
const seed = effectiveOpts.replaySeed ??
|
|
30
|
-
Number(process.env.FC_SEED ?? Date.now() & 0x7fffffff);
|
|
31
|
+
const seed = effectiveOpts.replaySeed ?? (yield* loadFastCheckSeed);
|
|
31
32
|
const artifacts = yield* Ref.make([]);
|
|
32
|
-
const realServer = yield* Effect.acquireRelease(Effect.
|
|
33
|
-
try: () => opts.realServer(),
|
|
34
|
-
catch: (cause) => new RealServerAcquireError({ cause }),
|
|
35
|
-
}), (handle) => Effect.tryPromise({
|
|
36
|
-
try: () => handle.close(),
|
|
37
|
-
catch: () => new Error("realServer.close() threw"),
|
|
38
|
-
}).pipe(Effect.orElseSucceed(() => undefined), Effect.asVoid));
|
|
33
|
+
const realServer = yield* Effect.acquireRelease(opts.realServer, (handle) => handle.close.pipe(Effect.orElseSucceed(() => undefined)));
|
|
39
34
|
let toxiproxy = null;
|
|
40
35
|
if (effectiveOpts.tiers.includes("D")) {
|
|
41
36
|
const url = effectiveOpts.toxiproxyUrl ?? "http://127.0.0.1:8474";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/testing/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/testing/conformance/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAEpC,MAAM,iBAAiB,GAAiC,MAAM,CAAC,OAAO,CACpE,SAAS,CACV,CAAC,IAAI,CACJ,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EACnD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,CAC1D,CAAC;AAsDF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA2B;IAM3B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,yBAAyB,EAAE;SACrD,CAAC;QACF,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAqC,EAAE,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CACzD,CAAC;QAEF,IAAI,SAAS,GAA2B,IAAI,CAAC;QAC7C,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,IAAI,uBAAuB,CAAC;YAClE,SAAS,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxD,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CACxB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CACjD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU;YACV,SAAS;YACT,IAAI,EAAE,aAAa;YACnB,IAAI;YACJ,SAAS;SACsB,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,GAA0B;IAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACtB,OAAO,CAAC,GAAG,CACT,sBAAsB,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CACvG,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|