@moltzap/protocol 2026.503.2 → 2026.503.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/test-fixtures/seed-data.d.ts.map +1 -1
  2. package/dist/test-fixtures/seed-data.js +52 -21
  3. package/dist/test-fixtures/seed-data.js.map +1 -1
  4. package/dist/testing/agent-registration.d.ts.map +1 -1
  5. package/dist/testing/agent-registration.js +48 -39
  6. package/dist/testing/agent-registration.js.map +1 -1
  7. package/dist/testing/arbitraries/frames.d.ts.map +1 -1
  8. package/dist/testing/arbitraries/frames.js +2 -1
  9. package/dist/testing/arbitraries/frames.js.map +1 -1
  10. package/dist/testing/arbitraries/from-typebox.d.ts.map +1 -1
  11. package/dist/testing/arbitraries/from-typebox.js +19 -10
  12. package/dist/testing/arbitraries/from-typebox.js.map +1 -1
  13. package/dist/testing/arbitraries/rpc.d.ts.map +1 -1
  14. package/dist/testing/arbitraries/rpc.js +12 -3
  15. package/dist/testing/arbitraries/rpc.js.map +1 -1
  16. package/dist/testing/captures.d.ts.map +1 -1
  17. package/dist/testing/captures.js +4 -3
  18. package/dist/testing/captures.js.map +1 -1
  19. package/dist/testing/codec.d.ts.map +1 -1
  20. package/dist/testing/codec.js +13 -5
  21. package/dist/testing/codec.js.map +1 -1
  22. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.d.ts.map +1 -1
  23. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js +7 -4
  24. package/dist/testing/conformance/__divergence_proofs__/executable-proof-helpers.js.map +1 -1
  25. package/dist/testing/conformance/_helpers.d.ts +6 -1
  26. package/dist/testing/conformance/_helpers.d.ts.map +1 -1
  27. package/dist/testing/conformance/_helpers.js +24 -0
  28. package/dist/testing/conformance/_helpers.js.map +1 -1
  29. package/dist/testing/conformance/adversity.d.ts.map +1 -1
  30. package/dist/testing/conformance/adversity.js +76 -66
  31. package/dist/testing/conformance/adversity.js.map +1 -1
  32. package/dist/testing/conformance/boundary.d.ts.map +1 -1
  33. package/dist/testing/conformance/boundary.js +49 -39
  34. package/dist/testing/conformance/boundary.js.map +1 -1
  35. package/dist/testing/conformance/client/adversity.d.ts.map +1 -1
  36. package/dist/testing/conformance/client/adversity.js +20 -15
  37. package/dist/testing/conformance/client/adversity.js.map +1 -1
  38. package/dist/testing/conformance/client/boundary.d.ts.map +1 -1
  39. package/dist/testing/conformance/client/boundary.js +7 -5
  40. package/dist/testing/conformance/client/boundary.js.map +1 -1
  41. package/dist/testing/conformance/client/delivery.d.ts.map +1 -1
  42. package/dist/testing/conformance/client/delivery.js +26 -20
  43. package/dist/testing/conformance/client/delivery.js.map +1 -1
  44. package/dist/testing/conformance/client/rpc-semantics.d.ts.map +1 -1
  45. package/dist/testing/conformance/client/rpc-semantics.js +18 -15
  46. package/dist/testing/conformance/client/rpc-semantics.js.map +1 -1
  47. package/dist/testing/conformance/client/runner.d.ts +13 -8
  48. package/dist/testing/conformance/client/runner.d.ts.map +1 -1
  49. package/dist/testing/conformance/client/runner.js +17 -24
  50. package/dist/testing/conformance/client/runner.js.map +1 -1
  51. package/dist/testing/conformance/client/schema-conformance.d.ts.map +1 -1
  52. package/dist/testing/conformance/client/schema-conformance.js +11 -9
  53. package/dist/testing/conformance/client/schema-conformance.js.map +1 -1
  54. package/dist/testing/conformance/client/suite.d.ts.map +1 -1
  55. package/dist/testing/conformance/client/suite.js +2 -1
  56. package/dist/testing/conformance/client/suite.js.map +1 -1
  57. package/dist/testing/conformance/delivery.d.ts.map +1 -1
  58. package/dist/testing/conformance/delivery.js +98 -124
  59. package/dist/testing/conformance/delivery.js.map +1 -1
  60. package/dist/testing/conformance/env.d.ts +9 -0
  61. package/dist/testing/conformance/env.d.ts.map +1 -1
  62. package/dist/testing/conformance/env.js +16 -3
  63. package/dist/testing/conformance/env.js.map +1 -1
  64. package/dist/testing/conformance/presence.d.ts.map +1 -1
  65. package/dist/testing/conformance/presence.js +4 -2
  66. package/dist/testing/conformance/presence.js.map +1 -1
  67. package/dist/testing/conformance/registry.d.ts +1 -1
  68. package/dist/testing/conformance/registry.d.ts.map +1 -1
  69. package/dist/testing/conformance/registry.js +1 -1
  70. package/dist/testing/conformance/registry.js.map +1 -1
  71. package/dist/testing/conformance/rpc-semantics.d.ts.map +1 -1
  72. package/dist/testing/conformance/rpc-semantics.js +139 -107
  73. package/dist/testing/conformance/rpc-semantics.js.map +1 -1
  74. package/dist/testing/conformance/runner.d.ts +2 -2
  75. package/dist/testing/conformance/runner.d.ts.map +1 -1
  76. package/dist/testing/conformance/runner.js +5 -10
  77. package/dist/testing/conformance/runner.js.map +1 -1
  78. package/dist/testing/conformance/schema-conformance.d.ts.map +1 -1
  79. package/dist/testing/conformance/schema-conformance.js +160 -120
  80. package/dist/testing/conformance/schema-conformance.js.map +1 -1
  81. package/dist/testing/conformance/suite.d.ts +1 -1
  82. package/dist/testing/conformance/suite.d.ts.map +1 -1
  83. package/dist/testing/conformance/suite.js +12 -9
  84. package/dist/testing/conformance/suite.js.map +1 -1
  85. package/dist/testing/models/dispatch.d.ts.map +1 -1
  86. package/dist/testing/models/dispatch.js +58 -50
  87. package/dist/testing/models/dispatch.js.map +1 -1
  88. package/dist/testing/models/state.d.ts +3 -3
  89. package/dist/testing/models/state.d.ts.map +1 -1
  90. package/dist/testing/models/state.js +14 -1
  91. package/dist/testing/models/state.js.map +1 -1
  92. package/dist/testing/test-client.d.ts +22 -3
  93. package/dist/testing/test-client.d.ts.map +1 -1
  94. package/dist/testing/test-client.js +51 -31
  95. package/dist/testing/test-client.js.map +1 -1
  96. package/dist/testing/test-server.d.ts.map +1 -1
  97. package/dist/testing/test-server.js +7 -11
  98. package/dist/testing/test-server.js.map +1 -1
  99. package/dist/testing/toxics/client.d.ts.map +1 -1
  100. package/dist/testing/toxics/client.js +39 -25
  101. package/dist/testing/toxics/client.js.map +1 -1
  102. package/dist/testing/toxics/profile.d.ts.map +1 -1
  103. package/dist/testing/toxics/profile.js +4 -1
  104. package/dist/testing/toxics/profile.js.map +1 -1
  105. package/dist/version.d.ts +1 -1
  106. package/dist/version.js +1 -1
  107. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../../../src/testing/conformance/client/suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAgB,MAAM,EAAgB,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIxE,OAAO,KAAK,EACV,2BAA2B,EAE3B,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6B/C;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7E;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,2BAA2B,GAC/B,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,6BAA6B,GAClC,MAAM,CAAC,MAAM,CACd,WAAW,EACX,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,CACtE,CA6BA;AA6KD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,SAAS,KAAK,GAC3E,KAAK,GACL,OAAO,CAAC;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC"}
1
+ {"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../../../src/testing/conformance/client/suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAgB,MAAM,EAAgB,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIxE,OAAO,KAAK,EACV,2BAA2B,EAE3B,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA+B/C;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7E;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,2BAA2B,GAC/B,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,6BAA6B,GAClC,MAAM,CAAC,MAAM,CACd,WAAW,EACX,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,CACtE,CA6BA;AA6KD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,SAAS,KAAK,GAC3E,KAAK,GACL,OAAO,CAAC;IACZ,QAAQ,CAAC,UAAU,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,CAAC;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC"}
@@ -32,6 +32,7 @@ import { registerModelEquivalenceClient, registerRequestIdUniquenessClient, } fr
32
32
  import { registerArchiveLifecycleClient, registerFanOutCardinalityClient, registerPayloadOpacityClient, registerTaskBoundaryIsolationClient, } from "./delivery.js";
33
33
  import { registerLatencyResilienceClient, registerResetPeerRecoveryClient, registerSlicerFramingClient, registerSlowCloseCleanupClient, registerTimeoutSurfaceClient, } from "./adversity.js";
34
34
  import { registerSchemaExhaustiveFuzzClient } from "./boundary.js";
35
+ const JSON_INDENT_SPACES = 2;
35
36
  /**
36
37
  * Register every client-side property (A2, A4, B1, B4, C1, C3, C4, D1,
37
38
  * D3, D4, D5, D6, E2 plus archive lifecycle — 14 total) against
@@ -205,6 +206,6 @@ function writeArtifact(dir, property, seed, payload) {
205
206
  name: property.name,
206
207
  seed,
207
208
  ...payload,
208
- }, null, 2));
209
+ }, null, JSON_INDENT_SPACES));
209
210
  }
210
211
  //# sourceMappingURL=suite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../../../src/testing/conformance/client/suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../../../src/testing/conformance/client/suite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/delivery.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA0XzD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAuD1E;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA0DvE;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA+CvE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAmC1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAiCN;AA4PD,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAqDN;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CA2HN;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAkDN;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA6EzE"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/testing/conformance/delivery.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AA+XzD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA8D1E;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA0DvE;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA+CvE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAiC1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CA+BN;AAmPD,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAqDN;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAiHN;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,qBAAqB,GACzB,IAAI,CAgDN;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAuEzE"}
@@ -9,23 +9,28 @@
9
9
  * Principle 3: every property body is `Effect<void, PropertyFailure>`.
10
10
  */
11
11
  import * as fc from "fast-check";
12
- import { Effect, Ref } from "effect";
12
+ import { Effect, Either, Ref } from "effect";
13
13
  import { ErrorCodes } from "../../schema/errors.js";
14
14
  import { EventNames } from "../../schema/events.js";
15
15
  import { AppsCloseSession, AppsCreate, AppsRegister, } from "../../schema/methods/apps.js";
16
16
  import { ConversationsArchive, ConversationsCreate, ConversationsUnarchive, ConversationsUpdate, } from "../../schema/methods/conversations.js";
17
17
  import { MessagesSend } from "../../schema/methods/messages.js";
18
+ import { RpcResponseError } from "../errors.js";
18
19
  import { makeTestClient } from "../test-client.js";
19
20
  import { registerTestAgent } from "../agent-registration.js";
20
21
  import { PropertyDeferred, PropertyInvariantViolation, PropertyUnavailable, assertProperty, registerProperty, } from "./registry.js";
21
- import { sendUntypedRpc } from "./_helpers.js";
22
+ import { leftOrNull, requireRight, sendUntypedRpc } from "./_helpers.js";
22
23
  const CATEGORY = "delivery";
23
24
  const DEFAULT_TIMEOUT_MS = 5000;
24
25
  const DEFAULT_CAPTURE_CAPACITY = 256;
26
+ const DEFAULT_PROPERTY_NUM_RUNS = 3;
27
+ const DATE_ID_RADIX = 36;
25
28
  const MAX_N = 4;
26
29
  const CONVERSATION_LIFECYCLE_PROPERTY = "conversation-lifecycle";
27
30
  const APP_SESSION_CLOSE_LIFECYCLE_PROPERTY = "app-session-close-lifecycle";
28
31
  const ARCHIVE_LIFECYCLE_PROPERTY = "archive-lifecycle";
32
+ const STORE_AND_REPLAY_PROPERTY = "store-and-replay";
33
+ const TASK_BOUNDARY_ISOLATION_PROPERTY = "task-boundary-isolation";
29
34
  function violation(name, reason) {
30
35
  return new PropertyInvariantViolation({ category: CATEGORY, name, reason });
31
36
  }
@@ -128,15 +133,21 @@ function waitForUnarchivedEvent(observer, conversationId, byAgentId, propertyNam
128
133
  function assertConversationRejectsMessages(actor, conversationId, propertyName) {
129
134
  return Effect.gen(function* () {
130
135
  const outcome = yield* sendText(actor, conversationId, "must-fail-while-archived").pipe(Effect.either);
131
- if (outcome._tag === "Right") {
132
- return yield* Effect.fail(violation(propertyName, "messages/send succeeded while archived"));
133
- }
134
- if (outcome.left._tag !== "TestingRpcResponseError" ||
135
- outcome.left.code !== ErrorCodes.ConversationArchived) {
136
- const errorLabel = outcome.left._tag === "TestingRpcResponseError"
137
- ? `${outcome.left._tag}/${outcome.left.code}`
138
- : outcome.left._tag;
139
- return yield* Effect.fail(violation(propertyName, `messages/send returned ${errorLabel}, expected ConversationArchived`));
136
+ const outcomeViolation = Either.match(outcome, {
137
+ onRight: () => violation(propertyName, "messages/send succeeded while archived"),
138
+ onLeft: (error) => {
139
+ if (error instanceof RpcResponseError &&
140
+ error.code === ErrorCodes.ConversationArchived) {
141
+ return null;
142
+ }
143
+ const errorLabel = error instanceof RpcResponseError
144
+ ? `${error._tag}/${error.code}`
145
+ : error._tag;
146
+ return violation(propertyName, `messages/send returned ${errorLabel}, expected ConversationArchived`);
147
+ },
148
+ });
149
+ if (outcomeViolation !== null) {
150
+ return yield* Effect.fail(outcomeViolation);
140
151
  }
141
152
  });
142
153
  }
@@ -171,10 +182,7 @@ function acquireConversation(ctx, n, namePrefix) {
171
182
  })),
172
183
  })
173
184
  .pipe(Effect.either);
174
- if (createResult._tag === "Left") {
175
- return yield* Effect.fail(`conversations/create failed: ${createResult.left._tag}`);
176
- }
177
- const created = createResult.right;
185
+ const created = (yield* requireRight(createResult, (error) => `conversations/create failed: ${error._tag}`));
178
186
  const conversationId = created.conversation?.id;
179
187
  if (typeof conversationId !== "string" || conversationId.length === 0) {
180
188
  return yield* Effect.fail(`conversations/create returned no conversation.id`);
@@ -191,34 +199,34 @@ function acquireConversation(ctx, n, namePrefix) {
191
199
  * `PropertyInvariantViolation`.
192
200
  */
193
201
  export function registerFanOutCardinality(ctx) {
194
- registerProperty(ctx, CATEGORY, "fan-out-cardinality", "messages/send ⇒ exactly N inbound message events (one per connection)", assertProperty(CATEGORY, "fan-out-cardinality", () => fc.assert(
195
- // #ignore-sloppy-code-next-line[async-keyword]: fast-check asyncProperty contract requires Promise-returning callback
196
- fc.asyncProperty(fc.integer({ min: 2, max: 3 }), async (n) => {
197
- const result = await Effect.runPromise(Effect.scoped(Effect.gen(function* () {
198
- const fixture = yield* acquireConversation(ctx, n, "fan").pipe(Effect.mapError((e) => new Error(e)));
199
- const send = yield* fixture.owner.client
200
- .sendRpc(MessagesSend.name, {
201
- conversationId: fixture.conversationId,
202
- parts: [{ type: "text", text: "fan-out-ping" }],
203
- })
204
- .pipe(Effect.either);
205
- if (send._tag === "Left") {
206
- return { kind: "send-failed" };
207
- }
208
- yield* Effect.sleep("250 millis");
209
- const observed = yield* Effect.forEach(fixture.participants, (p) => p.client.snapshot);
210
- const counts = observed.map((snap) => snap.filter((s) => s.kind === "inbound" &&
211
- s.frame?.type === "event" &&
212
- typeof s.frame.event === "string" &&
213
- s.frame.event.includes("message")).length);
214
- return { kind: "ok", counts };
215
- })));
202
+ registerProperty(ctx, CATEGORY, "fan-out-cardinality", "messages/send ⇒ exactly N inbound message events (one per connection)", assertProperty(CATEGORY, "fan-out-cardinality", () => fc.assert(fc.asyncProperty(fc.integer({ min: 2, max: 3 }), (n) => Effect.runPromise(Effect.scoped(Effect.gen(function* () {
203
+ const fixture = yield* acquireConversation(ctx, n, "fan").pipe(Effect.mapError((e) => violation("fan-out-cardinality", `fixture: ${e}`)));
204
+ const send = yield* fixture.owner.client
205
+ .sendRpc(MessagesSend.name, {
206
+ conversationId: fixture.conversationId,
207
+ parts: [{ type: "text", text: "fan-out-ping" }],
208
+ })
209
+ .pipe(Effect.either);
210
+ if (leftOrNull(send) !== null) {
211
+ return { kind: "send-failed" };
212
+ }
213
+ yield* Effect.sleep("250 millis");
214
+ const observed = yield* Effect.forEach(fixture.participants, (p) => p.client.snapshot);
215
+ const counts = observed.map((snap) => snap.filter((s) => s.kind === "inbound" &&
216
+ s.frame?.type === "event" &&
217
+ typeof s.frame.event === "string" &&
218
+ s.frame.event.includes("message")).length);
219
+ return { kind: "ok", counts };
220
+ })).pipe(Effect.map((result) => {
216
221
  if (result.kind !== "ok")
217
222
  return false;
218
223
  // Exact-cardinality predicate. Duplicates and drops both fail.
219
224
  return (result.counts.length === fixture_n(n) &&
220
225
  result.counts.every((c) => c === 1));
221
- }), { seed: ctx.seed, numRuns: ctx.opts.numRuns ?? 3 })));
226
+ })))), {
227
+ seed: ctx.seed,
228
+ numRuns: ctx.opts.numRuns ?? DEFAULT_PROPERTY_NUM_RUNS,
229
+ })));
222
230
  }
223
231
  function fixture_n(requested) {
224
232
  return Math.min(Math.max(1, requested), MAX_N);
@@ -248,17 +256,17 @@ function fixture_n(requested) {
248
256
  * from the git history and remove the #186 pointer.
249
257
  */
250
258
  export function registerStoreAndReplay(ctx) {
251
- registerProperty(ctx, CATEGORY, "store-and-replay", "every messages/send lands in a live participant's capture buffer (basic-delivery-landing; #186 tracks C2 offline-replay)", Effect.scoped(Effect.gen(function* () {
259
+ registerProperty(ctx, CATEGORY, STORE_AND_REPLAY_PROPERTY, "every messages/send lands in a live participant's capture buffer (basic-delivery-landing; #186 tracks C2 offline-replay)", Effect.scoped(Effect.gen(function* () {
252
260
  const fixture = yield* acquireConversation(ctx, 1, "sr").pipe(Effect.mapError((e) => new PropertyInvariantViolation({
253
261
  category: CATEGORY,
254
- name: "store-and-replay",
262
+ name: STORE_AND_REPLAY_PROPERTY,
255
263
  reason: `fixture: ${e}`,
256
264
  })));
257
265
  const participant = fixture.participants[0];
258
266
  if (participant === undefined) {
259
267
  return yield* Effect.fail(new PropertyInvariantViolation({
260
268
  category: CATEGORY,
261
- name: "store-and-replay",
269
+ name: STORE_AND_REPLAY_PROPERTY,
262
270
  reason: "fixture missing participant",
263
271
  }));
264
272
  }
@@ -280,7 +288,7 @@ export function registerStoreAndReplay(ctx) {
280
288
  if (delivered < sent) {
281
289
  return yield* Effect.fail(new PropertyInvariantViolation({
282
290
  category: CATEGORY,
283
- name: "store-and-replay",
291
+ name: STORE_AND_REPLAY_PROPERTY,
284
292
  reason: `sent ${sent}, live participant observed ${delivered}`,
285
293
  }));
286
294
  }
@@ -292,28 +300,24 @@ export function registerPayloadOpacity(ctx) {
292
300
  // Exclude JSON-meta chars so a simple substring match is valid.
293
301
  fc
294
302
  .string({ minLength: 4, maxLength: 24 })
295
- .filter((s) => !/[\\" \n\r\t]/.test(s)),
296
- // #ignore-sloppy-code-next-line[async-keyword]: fast-check asyncProperty contract requires Promise-returning callback
297
- async (text) => {
298
- const found = await Effect.runPromise(Effect.scoped(Effect.gen(function* () {
299
- const fixture = yield* acquireConversation(ctx, 1, "po").pipe(Effect.mapError((e) => new Error(e)));
300
- const participant = fixture.participants[0];
301
- if (participant === undefined)
302
- return false;
303
- yield* fixture.owner.client
304
- .sendRpc(MessagesSend.name, {
305
- conversationId: fixture.conversationId,
306
- parts: [{ type: "text", text }],
307
- })
308
- .pipe(Effect.either);
309
- yield* Effect.sleep("250 millis");
310
- const snap = yield* participant.client.snapshot;
311
- return snap.some((s) => s.kind === "inbound" &&
312
- s.frame?.type === "event" &&
313
- s.raw.includes(text));
314
- }))).catch(() => false);
315
- return found;
316
- }), { seed: ctx.seed, numRuns: ctx.opts.numRuns ?? 3 })));
303
+ .filter((s) => !/[\\" \n\r\t]/.test(s)), (text) => Effect.runPromise(Effect.scoped(Effect.gen(function* () {
304
+ const fixture = yield* acquireConversation(ctx, 1, "po").pipe(Effect.mapError((e) => violation("payload-opacity", `fixture: ${e}`)));
305
+ const participant = fixture.participants[0];
306
+ if (participant === undefined)
307
+ return false;
308
+ yield* fixture.owner.client.sendRpc(MessagesSend.name, {
309
+ conversationId: fixture.conversationId,
310
+ parts: [{ type: "text", text }],
311
+ });
312
+ yield* Effect.sleep("250 millis");
313
+ const snap = yield* participant.client.snapshot;
314
+ return snap.some((s) => s.kind === "inbound" &&
315
+ s.frame?.type === "event" &&
316
+ s.raw.includes(text));
317
+ })).pipe(Effect.catchAll(() => Effect.succeed(false))))), {
318
+ seed: ctx.seed,
319
+ numRuns: ctx.opts.numRuns ?? DEFAULT_PROPERTY_NUM_RUNS,
320
+ })));
317
321
  }
318
322
  /**
319
323
  * Hook-gated delivery — admission verbs are awaitable, the verdict
@@ -340,9 +344,7 @@ export function registerPayloadOpacity(ctx) {
340
344
  export function registerHookGatedDelivery(ctx) {
341
345
  registerProperty(ctx, CATEGORY, "hook-gated-delivery", "deny drops; patch mutates recipient view; attached conv enters hooks", Effect.scoped(Effect.gen(function* () {
342
346
  const fixture = yield* acquireAppSessionFixture(ctx, "hgd", "hook-gated-delivery").pipe(Effect.either);
343
- if (fixture._tag === "Left") {
344
- return yield* Effect.fail(fixture.left);
345
- }
347
+ yield* requireRight(fixture, (error) => error);
346
348
  // Codex review (#327, finding 4): the protocol fixture cannot
347
349
  // drive the deny/patch/attach scenarios end-to-end (no DB seam
348
350
  // to inspect the recipient view; `apps/attachConversation` is a
@@ -371,9 +373,7 @@ export function registerHookGatedDelivery(ctx) {
371
373
  export function registerMultiAppFifoShortCircuit(ctx) {
372
374
  registerProperty(ctx, CATEGORY, "multi-app-fifo-short-circuit", "two apps; first denies; second hook is NOT invoked", Effect.scoped(Effect.gen(function* () {
373
375
  const fixture = yield* acquireAppSessionFixture(ctx, "mfs", "multi-app-fifo-short-circuit").pipe(Effect.either);
374
- if (fixture._tag === "Left") {
375
- return yield* Effect.fail(fixture.left);
376
- }
376
+ yield* requireRight(fixture, (error) => error);
377
377
  // Codex review (#327, finding 5): once apps/create succeeds, the
378
378
  // FIFO short-circuit assertion requires registering a SECOND
379
379
  // app on the same hook and observing the second handler is NOT
@@ -401,7 +401,7 @@ function acquireAppSessionFixture(ctx, namePrefix, propertyName) {
401
401
  defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
402
402
  captureCapacity: DEFAULT_CAPTURE_CAPACITY,
403
403
  }).pipe(Effect.mapError((e) => unavailable(`app client acquire: ${String(e)}`)));
404
- const appId = `${namePrefix}-${Date.now().toString(36)}`;
404
+ const appId = `${namePrefix}-${Date.now().toString(DATE_ID_RADIX)}`;
405
405
  const registerOutcome = yield* sendUntypedRpc(appClient, AppsRegister.name, {
406
406
  manifest: {
407
407
  appId,
@@ -416,9 +416,7 @@ function acquireAppSessionFixture(ctx, namePrefix, propertyName) {
416
416
  },
417
417
  },
418
418
  }).pipe(Effect.either);
419
- if (registerOutcome._tag === "Left") {
420
- return yield* Effect.fail(unavailable(`apps/register failed: ${registerOutcome.left._tag}`));
421
- }
419
+ yield* requireRight(registerOutcome, (error) => unavailable(`apps/register failed: ${error._tag}`));
422
420
  const senderAgent = yield* registerTestAgent({
423
421
  baseUrl: ctx.realServer.baseUrl,
424
422
  name: `${namePrefix}-sender`,
@@ -433,14 +431,12 @@ function acquireAppSessionFixture(ctx, namePrefix, propertyName) {
433
431
  const createOutcome = yield* senderClient
434
432
  .sendRpc(AppsCreate.name, { appId, invitedAgentIds: [] })
435
433
  .pipe(Effect.either);
436
- if (createOutcome._tag === "Left") {
437
- // Most common cause: owner_user_id is null on the sender (see
438
- // app-host.ts:629). The default `startCoreTestServer` does not
439
- // configure `devModeUserId`; B.9 fills the gap via DB seeding.
440
- return yield* Effect.fail(unavailable(`apps/create failed (likely sender owner_user_id null; B.9 covers via DB seeding): ${createOutcome.left._tag}`));
441
- }
442
- const session = createOutcome.right
443
- .session;
434
+ const createResult = yield* requireRight(createOutcome, (error) => unavailable(
435
+ // Most common cause: owner_user_id is null on the sender (see
436
+ // app-host.ts:629). The default `startCoreTestServer` does not
437
+ // configure `devModeUserId`; B.9 fills the gap via DB seeding.
438
+ `apps/create failed (likely sender owner_user_id null; B.9 covers via DB seeding): ${error._tag}`));
439
+ const session = createResult.session;
444
440
  const sessionId = session?.id;
445
441
  if (typeof sessionId !== "string" || sessionId.length === 0) {
446
442
  return yield* Effect.fail(unavailable(`apps/create returned no session.id`));
@@ -470,7 +466,7 @@ function acquireAppSessionCloseFixture(ctx) {
470
466
  defaultTimeoutMs: DEFAULT_TIMEOUT_MS,
471
467
  captureCapacity: DEFAULT_CAPTURE_CAPACITY,
472
468
  }).pipe(Effect.mapError((e) => unavailable(`app client acquire: ${String(e)}`)));
473
- const appId = `close-life-${Date.now().toString(36)}`;
469
+ const appId = `close-life-${Date.now().toString(DATE_ID_RADIX)}`;
474
470
  const registerOutcome = yield* sendUntypedRpc(appClient, AppsRegister.name, {
475
471
  manifest: {
476
472
  appId,
@@ -481,9 +477,7 @@ function acquireAppSessionCloseFixture(ctx) {
481
477
  ],
482
478
  },
483
479
  }).pipe(Effect.either);
484
- if (registerOutcome._tag === "Left") {
485
- return yield* Effect.fail(unavailable(`apps/register failed: ${registerOutcome.left._tag}`));
486
- }
480
+ yield* requireRight(registerOutcome, (error) => unavailable(`apps/register failed: ${error._tag}`));
487
481
  const initiatorAgent = yield* registerTestAgent({
488
482
  baseUrl: ctx.realServer.baseUrl,
489
483
  name: "clinit",
@@ -514,15 +508,13 @@ function acquireAppSessionCloseFixture(ctx) {
514
508
  invitedAgentIds: [inviteeAgent.agentId],
515
509
  })
516
510
  .pipe(Effect.either);
517
- if (createOutcome._tag === "Left") {
518
- return yield* Effect.fail(unavailable(`apps/create failed (likely agents lack owner_user_id): ${createOutcome.left._tag}`));
519
- }
520
- const session = createOutcome.right.session;
511
+ const createResult = yield* requireRight(createOutcome, (error) => unavailable(`apps/create failed (likely agents lack owner_user_id): ${error._tag}`));
512
+ const session = createResult.session;
521
513
  const sessionId = session?.id;
522
514
  const mainConversationId = session?.conversations?.["main"];
523
515
  if (typeof sessionId !== "string" ||
524
516
  typeof mainConversationId !== "string") {
525
- return yield* Effect.fail(violation(propertyName, `apps/create response missing session id or main conversation: ${JSON.stringify(createOutcome.right)}`));
517
+ return yield* Effect.fail(violation(propertyName, `apps/create response missing session id or main conversation: ${JSON.stringify(createResult)}`));
526
518
  }
527
519
  return {
528
520
  initiator: { agent: initiatorAgent, client: initiatorClient },
@@ -534,15 +526,15 @@ function acquireAppSessionCloseFixture(ctx) {
534
526
  }
535
527
  /** Task-boundary isolation — conversation A's events don't leak into B. */
536
528
  export function registerTaskBoundaryIsolation(ctx) {
537
- registerProperty(ctx, CATEGORY, "task-boundary-isolation", "participants in conversation B observe zero leaks from conversation A", Effect.scoped(Effect.gen(function* () {
529
+ registerProperty(ctx, CATEGORY, TASK_BOUNDARY_ISOLATION_PROPERTY, "participants in conversation B observe zero leaks from conversation A", Effect.scoped(Effect.gen(function* () {
538
530
  const fxA = yield* acquireConversation(ctx, 1, "iso-a").pipe(Effect.mapError((e) => new PropertyInvariantViolation({
539
531
  category: CATEGORY,
540
- name: "task-boundary-isolation",
532
+ name: TASK_BOUNDARY_ISOLATION_PROPERTY,
541
533
  reason: `fixture A: ${e}`,
542
534
  })));
543
535
  const fxB = yield* acquireConversation(ctx, 1, "iso-b").pipe(Effect.mapError((e) => new PropertyInvariantViolation({
544
536
  category: CATEGORY,
545
- name: "task-boundary-isolation",
537
+ name: TASK_BOUNDARY_ISOLATION_PROPERTY,
546
538
  reason: `fixture B: ${e}`,
547
539
  })));
548
540
  yield* fxA.owner.client
@@ -560,7 +552,7 @@ export function registerTaskBoundaryIsolation(ctx) {
560
552
  if (leaked) {
561
553
  return yield* Effect.fail(new PropertyInvariantViolation({
562
554
  category: CATEGORY,
563
- name: "task-boundary-isolation",
555
+ name: TASK_BOUNDARY_ISOLATION_PROPERTY,
564
556
  reason: `conversation ${fxA.conversationId} leaked into outsider ${outsider.agent.agentId}`,
565
557
  }));
566
558
  }
@@ -582,31 +574,21 @@ export function registerConversationLifecycle(ctx) {
582
574
  const participant = yield* firstParticipant(fixture, CONVERSATION_LIFECYCLE_PROPERTY);
583
575
  yield* waitForConversationCreatedEvent(participant, fixture.conversationId, CONVERSATION_LIFECYCLE_PROPERTY);
584
576
  const firstSend = yield* sendText(fixture.owner, fixture.conversationId, "lifecycle-before-update").pipe(Effect.either);
585
- if (firstSend._tag === "Left") {
586
- return yield* Effect.fail(violation(CONVERSATION_LIFECYCLE_PROPERTY, `messages/send failed before archive: ${firstSend.left._tag}`));
587
- }
577
+ yield* requireRight(firstSend, (error) => violation(CONVERSATION_LIFECYCLE_PROPERTY, `messages/send failed before archive: ${error._tag}`));
588
578
  yield* waitForMessageReceivedEvent(participant, fixture.conversationId, CONVERSATION_LIFECYCLE_PROPERTY);
589
579
  const updatedName = `Lifecycle ${ctx.seed}`;
590
580
  const update = yield* updateConversationName(fixture.owner, fixture.conversationId, updatedName).pipe(Effect.either);
591
- if (update._tag === "Left") {
592
- return yield* Effect.fail(violation(CONVERSATION_LIFECYCLE_PROPERTY, `conversations/update failed: ${update.left._tag}`));
593
- }
581
+ yield* requireRight(update, (error) => violation(CONVERSATION_LIFECYCLE_PROPERTY, `conversations/update failed: ${error._tag}`));
594
582
  yield* waitForConversationUpdatedEvent(participant, fixture.conversationId, updatedName, CONVERSATION_LIFECYCLE_PROPERTY);
595
583
  const archive = yield* archiveConversation(fixture.owner, fixture.conversationId).pipe(Effect.either);
596
- if (archive._tag === "Left") {
597
- return yield* Effect.fail(violation(CONVERSATION_LIFECYCLE_PROPERTY, `archive failed: ${archive.left._tag}`));
598
- }
584
+ yield* requireRight(archive, (error) => violation(CONVERSATION_LIFECYCLE_PROPERTY, `archive failed: ${error._tag}`));
599
585
  yield* waitForArchivedEvent(participant, fixture.conversationId, fixture.owner.agent.agentId, CONVERSATION_LIFECYCLE_PROPERTY);
600
586
  yield* assertConversationRejectsMessages(participant, fixture.conversationId, CONVERSATION_LIFECYCLE_PROPERTY);
601
587
  const unarchive = yield* unarchiveConversation(fixture.owner, fixture.conversationId).pipe(Effect.either);
602
- if (unarchive._tag === "Left") {
603
- return yield* Effect.fail(violation(CONVERSATION_LIFECYCLE_PROPERTY, `unarchive failed: ${unarchive.left._tag}`));
604
- }
588
+ yield* requireRight(unarchive, (error) => violation(CONVERSATION_LIFECYCLE_PROPERTY, `unarchive failed: ${error._tag}`));
605
589
  yield* waitForUnarchivedEvent(participant, fixture.conversationId, fixture.owner.agent.agentId, CONVERSATION_LIFECYCLE_PROPERTY);
606
590
  const resumedSend = yield* sendText(participant, fixture.conversationId, "lifecycle-after-unarchive").pipe(Effect.either);
607
- if (resumedSend._tag === "Left") {
608
- return yield* Effect.fail(violation(CONVERSATION_LIFECYCLE_PROPERTY, `messages/send failed after unarchive: ${resumedSend.left._tag}`));
609
- }
591
+ yield* requireRight(resumedSend, (error) => violation(CONVERSATION_LIFECYCLE_PROPERTY, `messages/send failed after unarchive: ${error._tag}`));
610
592
  })));
611
593
  }
612
594
  /**
@@ -620,11 +602,9 @@ export function registerAppSessionCloseLifecycle(ctx) {
620
602
  const close = yield* fixture.initiator.client
621
603
  .sendRpc(AppsCloseSession.name, { sessionId: fixture.sessionId })
622
604
  .pipe(Effect.either);
623
- if (close._tag === "Left") {
624
- return yield* Effect.fail(violation(APP_SESSION_CLOSE_LIFECYCLE_PROPERTY, `apps/closeSession failed: ${close.left._tag}`));
625
- }
626
- if (close.right.closed !== true) {
627
- return yield* Effect.fail(violation(APP_SESSION_CLOSE_LIFECYCLE_PROPERTY, `apps/closeSession returned unexpected result: ${JSON.stringify(close.right)}`));
605
+ const closeResult = yield* requireRight(close, (error) => violation(APP_SESSION_CLOSE_LIFECYCLE_PROPERTY, `apps/closeSession failed: ${error._tag}`));
606
+ if (closeResult.closed !== true) {
607
+ return yield* Effect.fail(violation(APP_SESSION_CLOSE_LIFECYCLE_PROPERTY, `apps/closeSession returned unexpected result: ${JSON.stringify(closeResult)}`));
628
608
  }
629
609
  yield* waitForArchivedEvent(fixture.invitee, fixture.conversationId, fixture.initiator.agent.agentId, APP_SESSION_CLOSE_LIFECYCLE_PROPERTY);
630
610
  yield* waitForAppSessionClosedEvent(fixture.invitee, fixture.sessionId, fixture.initiator.agent.agentId, APP_SESSION_CLOSE_LIFECYCLE_PROPERTY);
@@ -644,20 +624,14 @@ export function registerArchiveLifecycle(ctx) {
644
624
  const fixture = yield* acquirePropertyConversation(ctx, ARCHIVE_LIFECYCLE_PROPERTY, "arch");
645
625
  const participant = yield* firstParticipant(fixture, ARCHIVE_LIFECYCLE_PROPERTY);
646
626
  const archive = yield* archiveConversation(fixture.owner, fixture.conversationId).pipe(Effect.either);
647
- if (archive._tag === "Left") {
648
- return yield* Effect.fail(violation(ARCHIVE_LIFECYCLE_PROPERTY, `archive failed: ${archive.left._tag}`));
649
- }
627
+ yield* requireRight(archive, (error) => violation(ARCHIVE_LIFECYCLE_PROPERTY, `archive failed: ${error._tag}`));
650
628
  yield* waitForArchivedEvent(participant, fixture.conversationId, fixture.owner.agent.agentId, ARCHIVE_LIFECYCLE_PROPERTY);
651
629
  yield* assertConversationRejectsMessages(participant, fixture.conversationId, ARCHIVE_LIFECYCLE_PROPERTY);
652
630
  const unarchive = yield* unarchiveConversation(fixture.owner, fixture.conversationId).pipe(Effect.either);
653
- if (unarchive._tag === "Left") {
654
- return yield* Effect.fail(violation(ARCHIVE_LIFECYCLE_PROPERTY, `unarchive failed: ${unarchive.left._tag}`));
655
- }
631
+ yield* requireRight(unarchive, (error) => violation(ARCHIVE_LIFECYCLE_PROPERTY, `unarchive failed: ${error._tag}`));
656
632
  yield* waitForUnarchivedEvent(participant, fixture.conversationId, fixture.owner.agent.agentId, ARCHIVE_LIFECYCLE_PROPERTY);
657
633
  const resumedSend = yield* sendText(participant, fixture.conversationId, "must-succeed-after-unarchive").pipe(Effect.either);
658
- if (resumedSend._tag === "Left") {
659
- return yield* Effect.fail(violation(ARCHIVE_LIFECYCLE_PROPERTY, `messages/send failed after unarchive: ${resumedSend.left._tag}`));
660
- }
634
+ yield* requireRight(resumedSend, (error) => violation(ARCHIVE_LIFECYCLE_PROPERTY, `messages/send failed after unarchive: ${error._tag}`));
661
635
  })));
662
636
  }
663
637
  //# sourceMappingURL=delivery.js.map