@moltzap/protocol 2026.501.5 → 2026.502.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dispatcher-concurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-concurrency.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/dispatcher-concurrency.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Conformance — s2c dispatcher concurrency invariants.
3
+ *
4
+ * Spec: moltzap#356 §8 (test plan, file 4).
5
+ *
6
+ * Cross-implementation contract: any client that drains s2c request
7
+ * frames MUST run hooks for distinct `(sessionId, conversationId,
8
+ * hookKind)` tuples on independent fibers. A `before_dispatch` hook
9
+ * suspended on a `Deferred.await` MUST NOT delay a sibling
10
+ * `before_message_delivery` hook for the same conversation.
11
+ *
12
+ * The reproducer that exercised this (arena#246, arena#248):
13
+ *
14
+ * 1. Server sends `apps/onBeforeDispatch` for (S, C). Client handler
15
+ * suspends on `Deferred.await(release)` (lease-acquisition gate).
16
+ * 2. Server sends `apps/onBeforeMessageDelivery` for the SAME (S, C)
17
+ * whose response would resolve `release`.
18
+ * 3. Single-fiber dispatchers (the pre-#356 `Stream.runForEach`)
19
+ * queue (2) behind (1) — the release that would unblock (1) is
20
+ * itself blocked on (1). Self-deadlock.
21
+ * 4. A correct dispatcher resolves: (2) runs to completion; the
22
+ * `Deferred` fires; (1) resumes and replies.
23
+ *
24
+ * ─── Implementation status (impl-staff #356) ────────────────────────
25
+ *
26
+ * The properties P1-P4 below are the cross-implementation contract.
27
+ * They are NOT registered with the conformance property registry in
28
+ * this PR because cross-impl execution requires the conformance
29
+ * `TestServer` to emit s2c request frames — a surface addition the
30
+ * architect plan §6 ("No public-package-barrel change. No public
31
+ * surface change to pre-existing modules.") explicitly excluded
32
+ * from the spec's scope.
33
+ *
34
+ * Until that infrastructure lands, the same properties are exercised
35
+ * at lower layers against the reference client implementation
36
+ * (`@moltzap/client`):
37
+ *
38
+ * - **P1 (disjoint-key concurrency)** —
39
+ * `packages/client/src/internal/__tests__/s2c-partitioned-dispatcher.test.ts`
40
+ * `"two offers with different keys execute concurrently"`.
41
+ *
42
+ * - **P2 (arena#248 reproducer)** —
43
+ * `packages/client/src/internal/__tests__/s2c-partitioned-dispatcher.test.ts`
44
+ * `"before_dispatch suspended on Deferred.await does NOT block
45
+ * before_message_delivery for the same (sessionId, conversationId)"`
46
+ * and the real-WS integration test in
47
+ * `s2c-partitioned-dispatcher-real-ws.test.ts`.
48
+ *
49
+ * - **P3 (same-key FIFO)** —
50
+ * `s2c-partitioned-dispatcher.test.ts` `"two offers with the same
51
+ * key land on the same worker (FIFO preserved)"` and the per-tuple
52
+ * ordering assertion in `s2c-partition-worker.test.ts`.
53
+ *
54
+ * - **P4 (per-partition backpressure independence)** —
55
+ * `s2c-partitioned-dispatcher.test.ts` `"partitionQueueFull on
56
+ * partition A does not block partition B"`.
57
+ *
58
+ * The vitest stubs below remain as documentation for the future
59
+ * cross-implementation wiring; they are NOT executed (vitest's
60
+ * include glob is `*.test.ts`, this file is `*.ts`).
61
+ *
62
+ * Routing the deferred work: a follow-up issue should expand
63
+ * `TestServer` with `emitServerRequest` and register these as
64
+ * `dispatcher-concurrency` category properties via the conformance
65
+ * registry, parallel to `boundary` / `delivery`.
66
+ */
67
+ import { describe, it } from "vitest";
68
+ describe("conformance: s2c dispatcher concurrency", () => {
69
+ it.todo("P1: two s2c requests with disjoint (sessionId, conversationId, hookKind) " +
70
+ "keys complete concurrently when the first's handler suspends on a Deferred");
71
+ it.todo("P2 (arena#248 reproducer): suspended apps/onBeforeDispatch does NOT block " +
72
+ "apps/onBeforeMessageDelivery for the same (sessionId, conversationId); the " +
73
+ "release path resolves and the suspended fiber resumes");
74
+ it.todo("P3: two s2c requests with identical key are serialized — second handler " +
75
+ "starts only after first handler's Effect completes (FIFO within tuple)");
76
+ it.todo("P4: per-partition backpressure — flooding one (sessionId, conversationId, " +
77
+ "hookKind) does NOT delay handler dispatch for any other tuple");
78
+ });
79
+ //# sourceMappingURL=dispatcher-concurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-concurrency.js","sourceRoot":"","sources":["../../../src/testing/conformance/dispatcher-concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEtC,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,IAAI,CACL,2EAA2E;QACzE,4EAA4E,CAC/E,CAAC;IACF,EAAE,CAAC,IAAI,CACL,4EAA4E;QAC1E,6EAA6E;QAC7E,uDAAuD,CAC1D,CAAC;IACF,EAAE,CAAC,IAAI,CACL,0EAA0E;QACxE,wEAAwE,CAC3E,CAAC;IACF,EAAE,CAAC,IAAI,CACL,4EAA4E;QAC1E,+DAA+D,CAClE,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -5,5 +5,6 @@ export * as rpcSemantics from "./rpc-semantics.js";
5
5
  export * as delivery from "./delivery.js";
6
6
  export * as adversity from "./adversity.js";
7
7
  export * as boundary from "./boundary.js";
8
+ export * as presence from "./presence.js";
8
9
  export { type ConformanceSuiteOptions, type SuiteResult, registerAllProperties, runAllProperties, runConformanceSuite, } from "./suite.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -5,5 +5,6 @@ export * as rpcSemantics from "./rpc-semantics.js";
5
5
  export * as delivery from "./delivery.js";
6
6
  export * as adversity from "./adversity.js";
7
7
  export * as boundary from "./boundary.js";
8
+ export * as presence from "./presence.js";
8
9
  export { registerAllProperties, runAllProperties, runConformanceSuite, } from "./suite.js";
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAGL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/conformance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAGL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ConformanceRunContext } from "./runner.js";
2
+ export declare function registerConnectBroadcast(ctx: ConformanceRunContext): void;
3
+ export declare function registerDisconnectBroadcast(ctx: ConformanceRunContext): void;
4
+ /**
5
+ * Sequential reconnect only. The wait for `offline` between client #1
6
+ * close and client #2 connect is the in-band fence proving the server's
7
+ * onExit reached `setOffline` before the new handshake. Concurrent
8
+ * reconnect (new auth/connect races old onExit) is OOS — see OQ6.
9
+ */
10
+ export declare function registerReconnectStorm(ctx: ConformanceRunContext): void;
11
+ /**
12
+ * Re-sending auth/connect on an already-authenticated WS short-circuits
13
+ * to buildHelloOk (`auth.handlers.ts:71`) which calls setOnline again.
14
+ * The idempotency guard MUST suppress the redundant broadcast.
15
+ */
16
+ export declare function registerSameStateNoDoubleFire(ctx: ConformanceRunContext): void;
17
+ export declare function registerMultiSubscriberFanOut(ctx: ConformanceRunContext): void;
18
+ export declare function registerSubscribeAfterConnect(ctx: ConformanceRunContext): void;
19
+ //# sourceMappingURL=presence.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Presence — properties pinning the connect/disconnect-driven
3
+ * `presence/changed` invariant. The `presence/update` RPC path is
4
+ * covered elsewhere; these properties pin the LIFECYCLE-driven path.
5
+ * Closes arena#252.
6
+ */
7
+ import { Effect, Stream, Duration } from "effect";
8
+ import { PROTOCOL_VERSION } from "../../version.js";
9
+ import { EventNames } from "../../schema/events.js";
10
+ import { PresenceSubscribe } from "../../schema/methods/presence.js";
11
+ import { makeCloseableTestClient, makeTestClient, } from "../test-client.js";
12
+ import { registerTestAgent } from "../agent-registration.js";
13
+ import { PropertyInvariantViolation, registerProperty } from "./registry.js";
14
+ const CATEGORY = "presence";
15
+ const DEFAULT_TIMEOUT_MS = 5000;
16
+ const DEFAULT_CAPTURE_CAPACITY = 256;
17
+ function violation(name, reason) {
18
+ return new PropertyInvariantViolation({ category: CATEGORY, name, reason });
19
+ }
20
+ function registerAgent(ctx, propertyName, name) {
21
+ return registerTestAgent({
22
+ baseUrl: ctx.realServer.baseUrl,
23
+ name,
24
+ }).pipe(Effect.mapError((e) => violation(propertyName, `register(${name}): status=${e.status} body=${e.body}`)));
25
+ }
26
+ function acquireClient(ctx, propertyName, name) {
27
+ return Effect.gen(function* () {
28
+ const agent = yield* registerAgent(ctx, propertyName, name);
29
+ const client = yield* makeTestClient({
30
+ serverUrl: ctx.realServer.wsUrl,
31
+ agentKey: agent.apiKey,
32
+ agentId: agent.agentId,
33
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
34
+ captureCapacity: DEFAULT_CAPTURE_CAPACITY,
35
+ }).pipe(Effect.mapError((e) => violation(propertyName, `makeTestClient(${name}): ${String(e)}`)));
36
+ return { agent, client };
37
+ });
38
+ }
39
+ function acquireCloseableClient(ctx, propertyName, agent, label) {
40
+ // makeCloseableTestClient owns its own internal scope; without a
41
+ // release finalizer, returning the client leaks the WebSocket past
42
+ // the property boundary. acquireRelease ties teardown to the
43
+ // surrounding Effect.scoped.
44
+ return Effect.acquireRelease(makeCloseableTestClient({
45
+ serverUrl: ctx.realServer.wsUrl,
46
+ agentKey: agent.apiKey,
47
+ agentId: agent.agentId,
48
+ defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
49
+ captureCapacity: DEFAULT_CAPTURE_CAPACITY,
50
+ }).pipe(Effect.mapError((e) => violation(propertyName, `makeCloseableTestClient(${label}): ${String(e)}`))), (client) => client.close.pipe(Effect.orElseSucceed(() => undefined)));
51
+ }
52
+ function subscribePresence(subscriber, agentId, propertyName) {
53
+ return subscriber
54
+ .sendRpc(PresenceSubscribe.name, { agentIds: [agentId] })
55
+ .pipe(Effect.mapError((e) => violation(propertyName, `presence/subscribe failed: ${String(e)}`)), Effect.asVoid);
56
+ }
57
+ /**
58
+ * `TestClient.waitForEvent` matches by event name only. We need a
59
+ * payload predicate, so consume the events Stream with a filter and
60
+ * timeout it ourselves.
61
+ */
62
+ function waitForPresenceWithStatus(client, expected, propertyName, timeoutMs = DEFAULT_TIMEOUT_MS) {
63
+ return client.events.pipe(Stream.filter((frame) => frame.event === EventNames.PresenceChanged), Stream.map((frame) => frame.data), Stream.filter((data) => data !== undefined &&
64
+ data.agentId === expected.agentId &&
65
+ data.status === expected.status), Stream.runHead, Effect.timeoutFail({
66
+ duration: Duration.millis(timeoutMs),
67
+ onTimeout: () => violation(propertyName, `timed out waiting for presence/changed { agentId: ${expected.agentId}, status: ${expected.status} }`),
68
+ }), Effect.mapError((e) => e instanceof PropertyInvariantViolation
69
+ ? e
70
+ : violation(propertyName, `event stream errored: ${String(e)}`)), Effect.flatMap((maybe) => maybe._tag === "Some"
71
+ ? Effect.void
72
+ : Effect.fail(violation(propertyName, `event stream closed before presence/changed { agentId: ${expected.agentId}, status: ${expected.status} } arrived`))));
73
+ }
74
+ function presenceStatusesFor(client, agentId) {
75
+ return client.snapshot.pipe(Effect.map((snap) => snap.flatMap((s) => {
76
+ if (s.kind !== "inbound")
77
+ return [];
78
+ const frame = s.frame;
79
+ if (!frame || frame.type !== "event")
80
+ return [];
81
+ if (frame.event !== EventNames.PresenceChanged)
82
+ return [];
83
+ const data = frame.data;
84
+ if (data === undefined || data.agentId !== agentId)
85
+ return [];
86
+ return [data.status];
87
+ })));
88
+ }
89
+ function countPresenceChangedFor(client, agentId) {
90
+ return presenceStatusesFor(client, agentId).pipe(Effect.map((s) => s.length));
91
+ }
92
+ export function registerConnectBroadcast(ctx) {
93
+ const NAME = "connect-broadcast";
94
+ registerProperty(ctx, CATEGORY, NAME, "auth/connect after subscribe ⇒ subscriber receives presence/changed { online }", Effect.scoped(Effect.gen(function* () {
95
+ const sub = yield* acquireClient(ctx, NAME, "p1-sub");
96
+ const a = yield* registerAgent(ctx, NAME, "p1-a");
97
+ yield* subscribePresence(sub.client, a.agentId, NAME);
98
+ yield* acquireCloseableClient(ctx, NAME, a, "p1-a-client");
99
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
100
+ })));
101
+ }
102
+ export function registerDisconnectBroadcast(ctx) {
103
+ const NAME = "disconnect-broadcast";
104
+ registerProperty(ctx, CATEGORY, NAME, "ws-close after auth/connect ⇒ subscriber receives presence/changed { offline } strictly after { online }", Effect.scoped(Effect.gen(function* () {
105
+ const sub = yield* acquireClient(ctx, NAME, "p2-sub");
106
+ const a = yield* registerAgent(ctx, NAME, "p2-a");
107
+ yield* subscribePresence(sub.client, a.agentId, NAME);
108
+ const aClient = yield* acquireCloseableClient(ctx, NAME, a, "p2-a-client");
109
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
110
+ yield* aClient.close;
111
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "offline" }, NAME);
112
+ })));
113
+ }
114
+ /**
115
+ * Sequential reconnect only. The wait for `offline` between client #1
116
+ * close and client #2 connect is the in-band fence proving the server's
117
+ * onExit reached `setOffline` before the new handshake. Concurrent
118
+ * reconnect (new auth/connect races old onExit) is OOS — see OQ6.
119
+ */
120
+ export function registerReconnectStorm(ctx) {
121
+ const NAME = "reconnect-storm";
122
+ registerProperty(ctx, CATEGORY, NAME, "online → offline → online lands as three presence/changed events in strict order on a sequential reconnect", Effect.scoped(Effect.gen(function* () {
123
+ const sub = yield* acquireClient(ctx, NAME, "p3-sub");
124
+ const a = yield* registerAgent(ctx, NAME, "p3-a");
125
+ yield* subscribePresence(sub.client, a.agentId, NAME);
126
+ const c1 = yield* acquireCloseableClient(ctx, NAME, a, "p3-a-client-1");
127
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
128
+ yield* c1.close;
129
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "offline" }, NAME);
130
+ yield* acquireCloseableClient(ctx, NAME, a, "p3-a-client-2");
131
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
132
+ const sequence = yield* presenceStatusesFor(sub.client, a.agentId);
133
+ if (sequence.length !== 3 ||
134
+ sequence[0] !== "online" ||
135
+ sequence[1] !== "offline" ||
136
+ sequence[2] !== "online") {
137
+ return yield* Effect.fail(violation(NAME, `expected [online, offline, online], got [${sequence.join(", ")}]`));
138
+ }
139
+ })));
140
+ }
141
+ /**
142
+ * Re-sending auth/connect on an already-authenticated WS short-circuits
143
+ * to buildHelloOk (`auth.handlers.ts:71`) which calls setOnline again.
144
+ * The idempotency guard MUST suppress the redundant broadcast.
145
+ */
146
+ export function registerSameStateNoDoubleFire(ctx) {
147
+ const NAME = "same-state-no-double-fire";
148
+ registerProperty(ctx, CATEGORY, NAME, "redundant setOnline (auth/connect on already-authenticated WS) does NOT double-fire presence/changed", Effect.scoped(Effect.gen(function* () {
149
+ const sub = yield* acquireClient(ctx, NAME, "p4-sub");
150
+ const a = yield* registerAgent(ctx, NAME, "p4-a");
151
+ yield* subscribePresence(sub.client, a.agentId, NAME);
152
+ const aClient = yield* acquireCloseableClient(ctx, NAME, a, "p4-a-client");
153
+ yield* waitForPresenceWithStatus(sub.client, { agentId: a.agentId, status: "online" }, NAME);
154
+ yield* aClient
155
+ .sendRpc("auth/connect", {
156
+ agentKey: a.apiKey,
157
+ minProtocol: PROTOCOL_VERSION,
158
+ maxProtocol: PROTOCOL_VERSION,
159
+ })
160
+ .pipe(Effect.mapError((e) => violation(NAME, `auth/connect re-send failed: ${String(e)}`)));
161
+ // Stabilization window — give a regression a chance to land.
162
+ yield* Effect.sleep("250 millis");
163
+ const count = yield* countPresenceChangedFor(sub.client, a.agentId);
164
+ if (count !== 1) {
165
+ return yield* Effect.fail(violation(NAME, `expected 1 event for ${a.agentId}, observed ${count}`));
166
+ }
167
+ })));
168
+ }
169
+ export function registerMultiSubscriberFanOut(ctx) {
170
+ const NAME = "multi-subscriber-fan-out";
171
+ registerProperty(ctx, CATEGORY, NAME, "auth/connect with N subscribers ⇒ exactly N presence/changed { online } events (one per subscriber)", Effect.scoped(Effect.gen(function* () {
172
+ const s1 = yield* acquireClient(ctx, NAME, "p5-s1");
173
+ const s2 = yield* acquireClient(ctx, NAME, "p5-s2");
174
+ const a = yield* registerAgent(ctx, NAME, "p5-a");
175
+ yield* subscribePresence(s1.client, a.agentId, NAME);
176
+ yield* subscribePresence(s2.client, a.agentId, NAME);
177
+ yield* acquireCloseableClient(ctx, NAME, a, "p5-a-client");
178
+ yield* waitForPresenceWithStatus(s1.client, { agentId: a.agentId, status: "online" }, NAME);
179
+ yield* waitForPresenceWithStatus(s2.client, { agentId: a.agentId, status: "online" }, NAME);
180
+ const c1 = yield* countPresenceChangedFor(s1.client, a.agentId);
181
+ const c2 = yield* countPresenceChangedFor(s2.client, a.agentId);
182
+ if (c1 !== 1 || c2 !== 1) {
183
+ return yield* Effect.fail(violation(NAME, `expected exactly 1 event per subscriber, observed s1=${c1} s2=${c2}`));
184
+ }
185
+ })));
186
+ }
187
+ export function registerSubscribeAfterConnect(ctx) {
188
+ const NAME = "subscribe-after-connect";
189
+ registerProperty(ctx, CATEGORY, NAME, "subscribing AFTER an agent connects ⇒ snapshot reflects status: online", Effect.scoped(Effect.gen(function* () {
190
+ const a = yield* registerAgent(ctx, NAME, "p6-a");
191
+ yield* acquireCloseableClient(ctx, NAME, a, "p6-a-client");
192
+ const sub = yield* acquireClient(ctx, NAME, "p6-sub");
193
+ const result = yield* sub.client
194
+ .sendRpc(PresenceSubscribe.name, { agentIds: [a.agentId] })
195
+ .pipe(Effect.mapError((e) => violation(NAME, `presence/subscribe failed: ${String(e)}`)));
196
+ const statuses = result.statuses;
197
+ if (statuses.length !== 1) {
198
+ return yield* Effect.fail(violation(NAME, `expected 1 status entry, got ${statuses.length}`));
199
+ }
200
+ const entry = statuses[0];
201
+ if (entry.agentId !== a.agentId || entry.status !== "online") {
202
+ return yield* Effect.fail(violation(NAME, `expected { agentId: ${a.agentId}, status: online }, got ${JSON.stringify(entry)}`));
203
+ }
204
+ })));
205
+ }
206
+ //# sourceMappingURL=presence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/testing/conformance/presence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAc,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,uBAAuB,EACvB,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7E,MAAM,QAAQ,GAAG,UAAmB,CAAC;AACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AASrC,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,OAAO,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CACpB,GAA0B,EAC1B,YAAoB,EACpB,IAAY;IAEZ,OAAO,iBAAiB,CAAC;QACvB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO;QAC/B,IAAI;KACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CACP,YAAY,EACZ,YAAY,IAAI,aAAa,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,CACvD,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,GAA0B,EAC1B,YAAoB,EACpB,IAAY;IAMZ,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;YACnC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK;YAC/B,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,gBAAgB,EAAE,kBAAkB;YACpC,eAAe,EAAE,wBAAwB;SAC1C,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CAAC,YAAY,EAAE,kBAAkB,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CACjE,CACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAA0B,EAC1B,YAAoB,EACpB,KAAgB,EAChB,KAAa;IAEb,iEAAiE;IACjE,mEAAmE;IACnE,6DAA6D;IAC7D,6BAA6B;IAC7B,OAAO,MAAM,CAAC,cAAc,CAC1B,uBAAuB,CAAC;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK;QAC/B,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,gBAAgB,EAAE,kBAAkB;QACpC,eAAe,EAAE,wBAAwB;KAC1C,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CACP,YAAY,EACZ,2BAA2B,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CACF,CACF,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAsB,EACtB,OAAe,EACf,YAAoB;IAEpB,OAAO,UAAU;SACd,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACxD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CAAC,YAAY,EAAE,8BAA8B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE,EACD,MAAM,CAAC,MAAM,CACd,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAChC,MAAkB,EAClB,QAAgC,EAChC,YAAoB,EACpB,YAAoB,kBAAkB;IAEtC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CACvB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,eAAe,CAAC,EACpE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAA0C,CAAC,EACvE,MAAM,CAAC,MAAM,CACX,CAAC,IAAI,EAAkC,EAAE,CACvC,IAAI,KAAK,SAAS;QAClB,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;QACjC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAClC,EACD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QACpC,SAAS,EAAE,GAAG,EAAE,CACd,SAAS,CACP,YAAY,EACZ,qDAAqD,QAAQ,CAAC,OAAO,aAAa,QAAQ,CAAC,MAAM,IAAI,CACtG;KACJ,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,CAAC,YAAY,0BAA0B;QACrC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,yBAAyB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,KAAK,MAAM;QACnB,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,SAAS,CACP,YAAY,EACZ,0DAA0D,QAAQ,CAAC,OAAO,aAAa,QAAQ,CAAC,MAAM,YAAY,CACnH,CACF,CACN,CACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAkB,EAClB,OAAe;IAEf,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CACzB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAA0C,CAAC;QAC9D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAkB,EAClB,OAAe;IAEf,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAA0B;IACjE,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,gFAAgF,EAChF,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,KAAK,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAC3D,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAA0B;IACpE,MAAM,IAAI,GAAG,sBAAsB,CAAC;IACpC,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,0GAA0G,EAC1G,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAC3C,GAAG,EACH,IAAI,EACJ,CAAC,EACD,aAAa,CACd,CAAC;QACF,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QACF,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EACzC,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAA0B;IAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,4GAA4G,EAC5G,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEtD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QACxE,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QACF,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChB,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EACzC,IAAI,CACL,CAAC;QAEF,KAAK,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7D,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACnE,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;YACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;YACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EACxB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CACP,IAAI,EACJ,4CAA4C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnE,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAA0B;IAE1B,MAAM,IAAI,GAAG,2BAA2B,CAAC;IACzC,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,sGAAsG,EACtG,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAC3C,GAAG,EACH,IAAI,EACJ,CAAC,EACD,aAAa,CACd,CAAC;QACF,KAAK,CAAC,CAAC,yBAAyB,CAC9B,GAAG,CAAC,MAAM,EACV,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QAEF,KAAK,CAAC,CAAC,OAAO;aACX,OAAO,CAAC,cAAc,EAAE;YACvB,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,gBAAgB;SAC9B,CAAC;aACD,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CAAC,IAAI,EAAE,gCAAgC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7D,CACF,CAAC;QAEJ,6DAA6D;QAC7D,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CACP,IAAI,EACJ,wBAAwB,CAAC,CAAC,OAAO,cAAc,KAAK,EAAE,CACvD,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAA0B;IAE1B,MAAM,IAAI,GAAG,0BAA0B,CAAC;IACxC,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,qGAAqG,EACrG,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAE3D,KAAK,CAAC,CAAC,yBAAyB,CAC9B,EAAE,CAAC,MAAM,EACT,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QACF,KAAK,CAAC,CAAC,yBAAyB,CAC9B,EAAE,CAAC,MAAM,EACT,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EACxC,IAAI,CACL,CAAC;QAEF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CACP,IAAI,EACJ,wDAAwD,EAAE,OAAO,EAAE,EAAE,CACtE,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAA0B;IAE1B,MAAM,IAAI,GAAG,yBAAyB,CAAC;IACvC,gBAAgB,CACd,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,wEAAwE,EACxE,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM;aAC7B,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAC1D,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,SAAS,CAAC,IAAI,EAAE,8BAA8B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3D,CACF,CAAC;QACJ,MAAM,QAAQ,GACZ,MAGD,CAAC,QAAQ,CAAC;QACX,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CAAC,IAAI,EAAE,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC,CACnE,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,SAAS,CACP,IAAI,EACJ,uBAAuB,CAAC,CAAC,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACnF,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC"}
@@ -26,7 +26,7 @@ type PropertyContext = object;
26
26
  * conformance modules; the spec's tier grouping (A/B/C/D/E) is noted
27
27
  * once per module header, never in code.
28
28
  */
29
- export type PropertyCategory = "schema-conformance" | "rpc-semantics" | "delivery" | "adversity" | "boundary";
29
+ export type PropertyCategory = "schema-conformance" | "rpc-semantics" | "delivery" | "adversity" | "boundary" | "presence";
30
30
  declare const PropertyAssertionFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
31
31
  readonly _tag: "ConformancePropertyAssertionFailure";
32
32
  } & Readonly<A>;
@@ -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,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,OAAO,CAAC,IAAI,CAAC,GACxB,WAAW,CAKb"}
@@ -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;AAsB3C,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,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 +1 @@
1
- {"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAgB,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAG5D,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAG9B;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2FAA2F;IAC3F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EACZ,eAAe,GACf;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3D,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAsCtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,qBAAqB,EAC1B,WAAW,EAAE,MAAM,EACnB,mBAAmB,GAAE,aAAa,CAAC,kBAAkB,CAAM,GAC1D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CA0E5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,GAAG,sBAAsB,CAAC,CA4BxE"}
1
+ {"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAgB,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAG5D,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAOvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAG9B;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2FAA2F;IAC3F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EACZ,eAAe,GACf;YAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3D,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA6CtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,qBAAqB,EAC1B,WAAW,EAAE,MAAM,EACnB,mBAAmB,GAAE,aAAa,CAAC,kBAAkB,CAAM,GAC1D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CA0E5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,GAC5B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,GAAG,sBAAsB,CAAC,CA4BxE"}
@@ -28,6 +28,7 @@ import * as rpcSemantics from "./rpc-semantics.js";
28
28
  import * as delivery from "./delivery.js";
29
29
  import * as adversity from "./adversity.js";
30
30
  import * as boundary from "./boundary.js";
31
+ import * as presence from "./presence.js";
31
32
  import { isAllowedCoverageGap, } from "./coverage-policy.js";
32
33
  import { conformanceArtifactDirFromEnv } from "./env.js";
33
34
  /**
@@ -70,6 +71,12 @@ export function registerAllProperties(ctx) {
70
71
  adversity.registerSlowCloseCleanup(ctx);
71
72
  boundary.registerSchemaExhaustiveFuzz(ctx);
72
73
  boundary.registerAppDisconnectFailPolicy(ctx);
74
+ presence.registerConnectBroadcast(ctx);
75
+ presence.registerDisconnectBroadcast(ctx);
76
+ presence.registerReconnectStorm(ctx);
77
+ presence.registerSameStateNoDoubleFire(ctx);
78
+ presence.registerMultiSubscriberFanOut(ctx);
79
+ presence.registerSubscribeAfterConnect(ctx);
73
80
  }
74
81
  /**
75
82
  * Run every registered property and collect a typed `SuiteResult`. Does
@@ -1 +1 @@
1
- {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../../src/testing/conformance/suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../../src/testing/conformance/suite.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PROTOCOL_VERSION = "2026.501.5";
1
+ export declare const PROTOCOL_VERSION = "2026.502.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-bumped by publish workflow
2
- export const PROTOCOL_VERSION = "2026.501.5";
2
+ export const PROTOCOL_VERSION = "2026.502.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moltzap/protocol",
3
- "version": "2026.501.5",
3
+ "version": "2026.502.0",
4
4
  "description": "Protocol types and validators for MoltZap messaging",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {