@moltzap/protocol 2026.501.6 → 2026.502.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/helpers.d.ts +9 -3
  2. package/dist/helpers.d.ts.map +1 -1
  3. package/dist/helpers.js +4 -1
  4. package/dist/helpers.js.map +1 -1
  5. package/dist/rpc-registry.d.ts +93 -31
  6. package/dist/rpc-registry.d.ts.map +1 -1
  7. package/dist/schema/apps.d.ts +12 -4
  8. package/dist/schema/apps.d.ts.map +1 -1
  9. package/dist/schema/contacts.d.ts +6 -2
  10. package/dist/schema/contacts.d.ts.map +1 -1
  11. package/dist/schema/conversations.d.ts +21 -7
  12. package/dist/schema/conversations.d.ts.map +1 -1
  13. package/dist/schema/delivery.d.ts +6 -2
  14. package/dist/schema/delivery.d.ts.map +1 -1
  15. package/dist/schema/events.d.ts +24 -8
  16. package/dist/schema/events.d.ts.map +1 -1
  17. package/dist/schema/identity.d.ts +12 -4
  18. package/dist/schema/identity.d.ts.map +1 -1
  19. package/dist/schema/invites.d.ts +12 -4
  20. package/dist/schema/invites.d.ts.map +1 -1
  21. package/dist/schema/methods/apps.d.ts +21 -7
  22. package/dist/schema/methods/apps.d.ts.map +1 -1
  23. package/dist/schema/methods/auth.d.ts +36 -12
  24. package/dist/schema/methods/auth.d.ts.map +1 -1
  25. package/dist/schema/methods/contacts.d.ts +12 -4
  26. package/dist/schema/methods/contacts.d.ts.map +1 -1
  27. package/dist/schema/methods/conversations.d.ts +33 -11
  28. package/dist/schema/methods/conversations.d.ts.map +1 -1
  29. package/dist/schema/methods/presence.d.ts +6 -2
  30. package/dist/schema/methods/presence.d.ts.map +1 -1
  31. package/dist/schema/methods/push.d.ts +3 -1
  32. package/dist/schema/methods/push.d.ts.map +1 -1
  33. package/dist/schema/presence.d.ts +6 -2
  34. package/dist/schema/presence.d.ts.map +1 -1
  35. package/dist/testing/conformance/index.d.ts +1 -0
  36. package/dist/testing/conformance/index.d.ts.map +1 -1
  37. package/dist/testing/conformance/index.js +1 -0
  38. package/dist/testing/conformance/index.js.map +1 -1
  39. package/dist/testing/conformance/presence.d.ts +19 -0
  40. package/dist/testing/conformance/presence.d.ts.map +1 -0
  41. package/dist/testing/conformance/presence.js +206 -0
  42. package/dist/testing/conformance/presence.js.map +1 -0
  43. package/dist/testing/conformance/registry.d.ts +1 -1
  44. package/dist/testing/conformance/registry.d.ts.map +1 -1
  45. package/dist/testing/conformance/registry.js.map +1 -1
  46. package/dist/testing/conformance/suite.d.ts.map +1 -1
  47. package/dist/testing/conformance/suite.js +7 -0
  48. package/dist/testing/conformance/suite.js.map +1 -1
  49. package/dist/validators.d.ts +9 -9
  50. package/dist/version.d.ts +1 -1
  51. package/dist/version.js +1 -1
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/schema/methods/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,YAAY;;;4CAUvB,CAAC;AAEH,eAAO,MAAM,cAAc;;4CASzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;EAOjC,CAAC;AAIF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/schema/methods/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,YAAY;;;;;4CAUvB,CAAC;AAEH,eAAO,MAAM,cAAc;;4CASzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;EAOjC,CAAC;AAIF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { type Static } from "@sinclair/typebox";
2
- export declare const PresenceStatusEnum: import("@sinclair/typebox").TUnsafe<"online" | "offline" | "away">;
2
+ export declare const PresenceStatusEnum: import("@sinclair/typebox").TString & {
3
+ static: "online" | "offline" | "away";
4
+ };
3
5
  export declare const PresenceEntrySchema: import("@sinclair/typebox").TObject<{
4
6
  agentId: import("@sinclair/typebox").TString;
5
- status: import("@sinclair/typebox").TUnsafe<"online" | "offline" | "away">;
7
+ status: import("@sinclair/typebox").TString & {
8
+ static: "online" | "offline" | "away";
9
+ };
6
10
  }>;
7
11
  export type PresenceEntry = Static<typeof PresenceEntrySchema>;
8
12
  //# sourceMappingURL=presence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/schema/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,kBAAkB,oEAA4C,CAAC;AAE5E,eAAO,MAAM,mBAAmB;;;EAM/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/schema/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,kBAAkB;;CAA4C,CAAC;AAE5E,eAAO,MAAM,mBAAmB;;;;;EAM/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,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":"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"}
@@ -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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"}
@@ -6,15 +6,15 @@
6
6
  */
7
7
  export declare const validators: {
8
8
  readonly requestFrame: import("ajv").ValidateFunction<{
9
- type: any;
10
9
  id: any;
10
+ type: any;
11
11
  jsonrpc: any;
12
12
  direction: any;
13
13
  method: any;
14
- } & {
15
- type: any;
16
14
  } & {
17
15
  id: any;
16
+ } & {
17
+ type: any;
18
18
  } & {
19
19
  jsonrpc: any;
20
20
  } & {
@@ -23,27 +23,27 @@ export declare const validators: {
23
23
  method: any;
24
24
  }>;
25
25
  readonly responseFrame: import("ajv").ValidateFunction<{
26
- type: any;
27
26
  id: any;
27
+ type: any;
28
28
  jsonrpc: any;
29
29
  direction: any;
30
- } & {
31
- type: any;
32
30
  } & {
33
31
  id: any;
32
+ } & {
33
+ type: any;
34
34
  } & {
35
35
  jsonrpc: any;
36
36
  } & {
37
37
  direction: any;
38
38
  }>;
39
39
  readonly eventFrame: import("ajv").ValidateFunction<{
40
- type: any;
41
40
  event: any;
42
- jsonrpc: any;
43
- } & {
44
41
  type: any;
42
+ jsonrpc: any;
45
43
  } & {
46
44
  event: any;
45
+ } & {
46
+ type: any;
47
47
  } & {
48
48
  jsonrpc: any;
49
49
  }>;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PROTOCOL_VERSION = "2026.501.6";
1
+ export declare const PROTOCOL_VERSION = "2026.502.1";
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.6";
2
+ export const PROTOCOL_VERSION = "2026.502.1";
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.6",
3
+ "version": "2026.502.1",
4
4
  "description": "Protocol types and validators for MoltZap messaging",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {