@moltzap/client 2026.503.3 → 2026.504.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.d.ts +10 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +8 -5
- package/dist/auth.js.map +1 -1
- package/dist/channel-core.d.ts +1 -4
- package/dist/channel-core.d.ts.map +1 -1
- package/dist/channel-core.js +0 -9
- package/dist/channel-core.js.map +1 -1
- package/dist/channel-core.test.js +90 -71
- package/dist/channel-core.test.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +5 -3
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/apps.d.ts +9 -27
- package/dist/cli/commands/apps.d.ts.map +1 -1
- package/dist/cli/commands/apps.js +36 -57
- package/dist/cli/commands/apps.js.map +1 -1
- package/dist/cli/commands/apps.test.js +63 -75
- package/dist/cli/commands/apps.test.js.map +1 -1
- package/dist/cli/commands/contacts.d.ts +1 -5
- package/dist/cli/commands/contacts.d.ts.map +1 -1
- package/dist/cli/commands/contacts.js +14 -27
- package/dist/cli/commands/contacts.js.map +1 -1
- package/dist/cli/commands/conversations-v2.test.js +34 -29
- package/dist/cli/commands/conversations-v2.test.js.map +1 -1
- package/dist/cli/commands/conversations.d.ts +7 -3
- package/dist/cli/commands/conversations.d.ts.map +1 -1
- package/dist/cli/commands/conversations.js +63 -48
- package/dist/cli/commands/conversations.js.map +1 -1
- package/dist/cli/commands/messages.d.ts +7 -3
- package/dist/cli/commands/messages.d.ts.map +1 -1
- package/dist/cli/commands/messages.js +13 -15
- package/dist/cli/commands/messages.js.map +1 -1
- package/dist/cli/commands/messages.test.js +30 -31
- package/dist/cli/commands/messages.test.js.map +1 -1
- package/dist/cli/commands/ping.d.ts +9 -0
- package/dist/cli/commands/ping.d.ts.map +1 -1
- package/dist/cli/commands/ping.js +17 -4
- package/dist/cli/commands/ping.js.map +1 -1
- package/dist/cli/commands/presence.d.ts.map +1 -1
- package/dist/cli/commands/presence.js +6 -4
- package/dist/cli/commands/presence.js.map +1 -1
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +2 -1
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +22 -11
- package/dist/cli/commands/send.js.map +1 -1
- package/dist/cli/commands/send.test.js +12 -9
- package/dist/cli/commands/send.test.js.map +1 -1
- package/dist/cli/commands/status.js +2 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/test-transport.d.ts +10 -0
- package/dist/cli/commands/test-transport.d.ts.map +1 -0
- package/dist/cli/commands/test-transport.js +29 -0
- package/dist/cli/commands/test-transport.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +5 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/config.d.ts +42 -6
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +91 -27
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/http-client.d.ts +11 -1
- package/dist/cli/http-client.d.ts.map +1 -1
- package/dist/cli/http-client.js +13 -4
- package/dist/cli/http-client.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/profile.d.ts +3 -4
- package/dist/cli/profile.d.ts.map +1 -1
- package/dist/cli/profile.js +42 -29
- package/dist/cli/profile.js.map +1 -1
- package/dist/cli/runtime.d.ts.map +1 -1
- package/dist/cli/runtime.js +9 -4
- package/dist/cli/runtime.js.map +1 -1
- package/dist/cli/socket-client.d.ts +29 -4
- package/dist/cli/socket-client.d.ts.map +1 -1
- package/dist/cli/socket-client.js +52 -21
- package/dist/cli/socket-client.js.map +1 -1
- package/dist/cli/transport.d.ts +6 -9
- package/dist/cli/transport.d.ts.map +1 -1
- package/dist/cli/transport.js +47 -37
- package/dist/cli/transport.js.map +1 -1
- package/dist/cli/transport.test.js +19 -16
- package/dist/cli/transport.test.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/__tests__/app-callback-partition-key.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.d.ts.map +1 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.js +33 -0
- package/dist/internal/__tests__/app-callback-partition-key.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partition-worker.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partition-worker.test.js → app-callback-partition-worker.test.js} +6 -8
- package/dist/internal/__tests__/app-callback-partition-worker.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partitioned-dispatcher-real-ws.test.js → app-callback-partitioned-dispatcher-real-ws.test.js} +69 -93
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher-real-ws.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts +2 -0
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.d.ts.map +1 -0
- package/dist/internal/__tests__/{s2c-partitioned-dispatcher.test.js → app-callback-partitioned-dispatcher.test.js} +36 -69
- package/dist/internal/__tests__/app-callback-partitioned-dispatcher.test.js.map +1 -0
- package/dist/internal/__tests__/app-callback-test-requests.d.ts +58 -0
- package/dist/internal/__tests__/app-callback-test-requests.d.ts.map +1 -0
- package/dist/internal/__tests__/app-callback-test-requests.js +124 -0
- package/dist/internal/__tests__/app-callback-test-requests.js.map +1 -0
- package/dist/internal/{s2c-dispatcher-errors.d.ts → app-callback-dispatcher-errors.d.ts} +5 -21
- package/dist/internal/app-callback-dispatcher-errors.d.ts.map +1 -0
- package/dist/internal/{s2c-dispatcher-errors.js → app-callback-dispatcher-errors.js} +3 -13
- package/dist/internal/app-callback-dispatcher-errors.js.map +1 -0
- package/dist/internal/app-callback-partition-key.d.ts +68 -0
- package/dist/internal/app-callback-partition-key.d.ts.map +1 -0
- package/dist/internal/app-callback-partition-key.js +90 -0
- package/dist/internal/app-callback-partition-key.js.map +1 -0
- package/dist/internal/{s2c-partition-worker.d.ts → app-callback-partition-worker.d.ts} +5 -5
- package/dist/internal/app-callback-partition-worker.d.ts.map +1 -0
- package/dist/internal/{s2c-partition-worker.js → app-callback-partition-worker.js} +5 -5
- package/dist/internal/app-callback-partition-worker.js.map +1 -0
- package/dist/internal/{s2c-partitioned-dispatcher.d.ts → app-callback-partitioned-dispatcher.d.ts} +9 -10
- package/dist/internal/app-callback-partitioned-dispatcher.d.ts.map +1 -0
- package/dist/internal/{s2c-partitioned-dispatcher.js → app-callback-partitioned-dispatcher.js} +13 -21
- package/dist/internal/app-callback-partitioned-dispatcher.js.map +1 -0
- package/dist/runtime/close-info.d.ts +15 -16
- package/dist/runtime/close-info.d.ts.map +1 -1
- package/dist/runtime/close-info.js +12 -8
- package/dist/runtime/close-info.js.map +1 -1
- package/dist/runtime/errors.d.ts +2 -28
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +0 -9
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/errors.test.js +4 -3
- package/dist/runtime/errors.test.js.map +1 -1
- package/dist/runtime/frame.d.ts +17 -18
- package/dist/runtime/frame.d.ts.map +1 -1
- package/dist/runtime/frame.js +86 -31
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/frame.test.js +15 -11
- package/dist/runtime/frame.test.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/local-service-commands.d.ts +7 -0
- package/dist/runtime/local-service-commands.d.ts.map +1 -0
- package/dist/runtime/local-service-commands.js +6 -0
- package/dist/runtime/local-service-commands.js.map +1 -0
- package/dist/runtime/runtime.test.js +3 -3
- package/dist/runtime/runtime.test.js.map +1 -1
- package/dist/runtime/subscribers.d.ts +37 -33
- package/dist/runtime/subscribers.d.ts.map +1 -1
- package/dist/runtime/subscribers.js +22 -21
- package/dist/runtime/subscribers.js.map +1 -1
- package/dist/runtime/subscribers.test.js +50 -31
- package/dist/runtime/subscribers.test.js.map +1 -1
- package/dist/service.d.ts +24 -39
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +190 -171
- package/dist/service.js.map +1 -1
- package/dist/service.test.js +117 -175
- package/dist/service.test.js.map +1 -1
- package/dist/test/index.d.ts +9 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +14 -3
- package/dist/test/index.js.map +1 -1
- package/dist/test-utils/channel-service-fixture.d.ts +1 -2
- package/dist/test-utils/channel-service-fixture.d.ts.map +1 -1
- package/dist/test-utils/channel-service-fixture.js +28 -20
- package/dist/test-utils/channel-service-fixture.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts +2 -2
- package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
- package/dist/test-utils/conformance-adapter.js +78 -54
- package/dist/test-utils/conformance-adapter.js.map +1 -1
- package/dist/test-utils/fake-service.d.ts +14 -39
- package/dist/test-utils/fake-service.d.ts.map +1 -1
- package/dist/test-utils/fake-service.js +33 -39
- package/dist/test-utils/fake-service.js.map +1 -1
- package/dist/test-utils/ids.d.ts +9 -0
- package/dist/test-utils/ids.d.ts.map +1 -0
- package/dist/test-utils/ids.js +52 -0
- package/dist/test-utils/ids.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -2
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +25 -9
- package/dist/test-utils/index.js.map +1 -1
- package/dist/ws-client.d.ts +59 -64
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +228 -175
- package/dist/ws-client.js.map +1 -1
- package/dist/ws-client.test.js +190 -176
- package/dist/ws-client.test.js.map +1 -1
- package/package.json +3 -3
- package/dist/cli/commands/permissions.d.ts +0 -66
- package/dist/cli/commands/permissions.d.ts.map +0 -1
- package/dist/cli/commands/permissions.js +0 -101
- package/dist/cli/commands/permissions.js.map +0 -1
- package/dist/cli/commands/permissions.test.d.ts +0 -2
- package/dist/cli/commands/permissions.test.d.ts.map +0 -1
- package/dist/cli/commands/permissions.test.js +0 -126
- package/dist/cli/commands/permissions.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partition-key.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partition-key.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partition-key.test.js +0 -230
- package/dist/internal/__tests__/s2c-partition-key.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partition-worker.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partition-worker.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partition-worker.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher-real-ws.test.js.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts +0 -2
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.d.ts.map +0 -1
- package/dist/internal/__tests__/s2c-partitioned-dispatcher.test.js.map +0 -1
- package/dist/internal/s2c-dispatcher-errors.d.ts.map +0 -1
- package/dist/internal/s2c-dispatcher-errors.js.map +0 -1
- package/dist/internal/s2c-partition-key.d.ts +0 -71
- package/dist/internal/s2c-partition-key.d.ts.map +0 -1
- package/dist/internal/s2c-partition-key.js +0 -140
- package/dist/internal/s2c-partition-key.js.map +0 -1
- package/dist/internal/s2c-partition-worker.d.ts.map +0 -1
- package/dist/internal/s2c-partition-worker.js.map +0 -1
- package/dist/internal/s2c-partitioned-dispatcher.d.ts.map +0 -1
- package/dist/internal/s2c-partitioned-dispatcher.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance-adapter.js","sourceRoot":"","sources":["../../src/test-utils/conformance-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"conformance-adapter.js","sourceRoot":"","sources":["../../src/test-utils/conformance-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,24 +4,18 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Strategy: extend the real `MoltZapService`, keeping all stateful logic
|
|
6
6
|
* intact, and override only `sendRpc` so every RPC is answered from a
|
|
7
|
-
* canned-response map.
|
|
8
|
-
*
|
|
9
|
-
* methods fail *at compile time*, not at runtime.
|
|
7
|
+
* canned-response map. `setResponse` indexes by protocol descriptor so a
|
|
8
|
+
* typo in the wire name cannot compile.
|
|
10
9
|
*
|
|
11
10
|
* Motivation: the `sendToAgent` contract drift bug (A7) happened because a
|
|
12
11
|
* hand-maintained mock drifted from the real wire shape. Typed method names
|
|
13
12
|
* surface renames and additions to the RPC surface as compile errors across
|
|
14
13
|
* every test that uses the fake.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* `RpcMethodName`; `result` must match `RpcMap[M]["result"]`.
|
|
19
|
-
* (2) `responses` — the underlying `Map<string, unknown>`. Permissive,
|
|
20
|
-
* preserved so existing callers that set unstyped shapes
|
|
21
|
-
* (e.g. `{}` for a method whose real result has required fields)
|
|
22
|
-
* keep working. Prefer `setResponse` in new code.
|
|
15
|
+
* Canned responses are validated through the descriptor's result schema before
|
|
16
|
+
* they are returned, matching the real transport boundary.
|
|
23
17
|
*/
|
|
24
|
-
import type {
|
|
18
|
+
import type { DecodedNotification, AnyNotificationDefinition, NotificationFrame, Message, ParamsOf, ResultOf, RpcDefinition, TSchema } from "@moltzap/protocol";
|
|
25
19
|
import { Effect } from "effect";
|
|
26
20
|
import { MoltZapService, type ServiceRpcError } from "../service.js";
|
|
27
21
|
import type { RpcCallOptions } from "../ws-client.js";
|
|
@@ -31,50 +25,31 @@ export interface RecordedCall {
|
|
|
31
25
|
params: unknown;
|
|
32
26
|
opts?: RpcCallOptions;
|
|
33
27
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Strict canned-response registry shape. Methods must be known protocol
|
|
36
|
-
* names; results must match their declared schema. Use via `setResponse` —
|
|
37
|
-
* spelled out as a type so downstream consumers can compose their own
|
|
38
|
-
* factories.
|
|
39
|
-
*/
|
|
40
|
-
export type CannedResponses = Partial<{
|
|
41
|
-
[M in RpcMethodName]: RpcMap[M]["result"] | ((params: RpcMap[M]["params"]) => RpcMap[M]["result"]);
|
|
42
|
-
}>;
|
|
43
28
|
export declare class FakeMoltZapService extends MoltZapService {
|
|
44
29
|
calls: RecordedCall[];
|
|
45
|
-
|
|
46
|
-
* Permissive response map. Prefer {@link setResponse} for typed
|
|
47
|
-
* registration. Keep this as `Map<string, unknown>` so tests that pass
|
|
48
|
-
* partial or loosely-shaped canned values — and tests that assert on
|
|
49
|
-
* unknown-method rejection — keep working.
|
|
50
|
-
*/
|
|
51
|
-
responses: Map<string, unknown>;
|
|
30
|
+
private readonly responses;
|
|
52
31
|
constructor(opts?: {
|
|
53
32
|
serverUrl?: string;
|
|
54
33
|
agentKey?: string;
|
|
55
34
|
});
|
|
56
35
|
/**
|
|
57
|
-
* Register a canned response, typed against the real RPC
|
|
58
|
-
* method names are a compile error (`RpcMethodName` is a union literal),
|
|
59
|
-
* and values must match `RpcMap[M]["result"]` — a schema change in the
|
|
60
|
-
* protocol flows through to every test that sets a response for that
|
|
61
|
-
* method.
|
|
36
|
+
* Register a canned response, typed against the real RPC descriptor.
|
|
62
37
|
*/
|
|
63
|
-
setResponse<
|
|
38
|
+
setResponse<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D, result: ResultOf<D>): void;
|
|
64
39
|
/**
|
|
65
|
-
* Remove a previously-registered response.
|
|
66
|
-
* so `deleteResponse("agents/lookpByName")` (typo) is a compile error.
|
|
40
|
+
* Remove a previously-registered response.
|
|
67
41
|
*/
|
|
68
|
-
deleteResponse(
|
|
69
|
-
sendRpc(
|
|
42
|
+
deleteResponse<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D): void;
|
|
43
|
+
sendRpc<D extends RpcDefinition<string, TSchema, TSchema>>(definition: D, params: ParamsOf<D>, opts?: RpcCallOptions): Effect.Effect<ResultOf<D>, ServiceRpcError>;
|
|
70
44
|
/**
|
|
71
45
|
* Insert a message into the service's internal buffer without going
|
|
72
46
|
* through the WebSocket path — used to stage state for context-building
|
|
73
47
|
* tests.
|
|
74
48
|
*/
|
|
75
49
|
addMessage(convId: string, msg: Message): void;
|
|
76
|
-
/** Deliver a protocol
|
|
77
|
-
emitEvent(event:
|
|
50
|
+
/** Deliver a protocol notification through the real service handler. */
|
|
51
|
+
emitEvent(event: NotificationFrame): void;
|
|
52
|
+
emitNotification(notification: DecodedNotification<AnyNotificationDefinition>): void;
|
|
78
53
|
/** Pin an agent name in the internal cache without an RPC round-trip. */
|
|
79
54
|
setAgentNameDirect(id: string, name: string): void;
|
|
80
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-service.d.ts","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fake-service.d.ts","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,EACR,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,MAAM,EAAwB,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,KAAK,EAAE,YAAY,EAAE,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;gBAGF,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;IAQR;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3D,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAClB,IAAI;IAIP;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC9D,UAAU,EAAE,CAAC,GACZ,IAAI;IAIE,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAChE,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EACnB,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;IAkC9C;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAY9C,wEAAwE;IACxE,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAgBzC,gBAAgB,CACd,YAAY,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,GAC3D,IAAI;IAIP,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQlD;;;;OAIG;IACH,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,mBAAmB,GAK9B;CACF"}
|
|
@@ -4,34 +4,23 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Strategy: extend the real `MoltZapService`, keeping all stateful logic
|
|
6
6
|
* intact, and override only `sendRpc` so every RPC is answered from a
|
|
7
|
-
* canned-response map.
|
|
8
|
-
*
|
|
9
|
-
* methods fail *at compile time*, not at runtime.
|
|
7
|
+
* canned-response map. `setResponse` indexes by protocol descriptor so a
|
|
8
|
+
* typo in the wire name cannot compile.
|
|
10
9
|
*
|
|
11
10
|
* Motivation: the `sendToAgent` contract drift bug (A7) happened because a
|
|
12
11
|
* hand-maintained mock drifted from the real wire shape. Typed method names
|
|
13
12
|
* surface renames and additions to the RPC surface as compile errors across
|
|
14
13
|
* every test that uses the fake.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* `RpcMethodName`; `result` must match `RpcMap[M]["result"]`.
|
|
19
|
-
* (2) `responses` — the underlying `Map<string, unknown>`. Permissive,
|
|
20
|
-
* preserved so existing callers that set unstyped shapes
|
|
21
|
-
* (e.g. `{}` for a method whose real result has required fields)
|
|
22
|
-
* keep working. Prefer `setResponse` in new code.
|
|
15
|
+
* Canned responses are validated through the descriptor's result schema before
|
|
16
|
+
* they are returned, matching the real transport boundary.
|
|
23
17
|
*/
|
|
18
|
+
import { decodeRpcResult, decodeNotification, ErrorCodes, notificationGroup, RpcServerError, } from "@moltzap/protocol";
|
|
24
19
|
import { Effect, HashMap, Option, Ref } from "effect";
|
|
25
20
|
import { MoltZapService } from "../service.js";
|
|
26
|
-
import {
|
|
21
|
+
import { testAgentId } from "./ids.js";
|
|
27
22
|
export class FakeMoltZapService extends MoltZapService {
|
|
28
23
|
calls = [];
|
|
29
|
-
/**
|
|
30
|
-
* Permissive response map. Prefer {@link setResponse} for typed
|
|
31
|
-
* registration. Keep this as `Map<string, unknown>` so tests that pass
|
|
32
|
-
* partial or loosely-shaped canned values — and tests that assert on
|
|
33
|
-
* unknown-method rejection — keep working.
|
|
34
|
-
*/
|
|
35
24
|
responses = new Map();
|
|
36
25
|
constructor(opts = {}) {
|
|
37
26
|
super({
|
|
@@ -40,34 +29,31 @@ export class FakeMoltZapService extends MoltZapService {
|
|
|
40
29
|
});
|
|
41
30
|
}
|
|
42
31
|
/**
|
|
43
|
-
* Register a canned response, typed against the real RPC
|
|
44
|
-
* method names are a compile error (`RpcMethodName` is a union literal),
|
|
45
|
-
* and values must match `RpcMap[M]["result"]` — a schema change in the
|
|
46
|
-
* protocol flows through to every test that sets a response for that
|
|
47
|
-
* method.
|
|
32
|
+
* Register a canned response, typed against the real RPC descriptor.
|
|
48
33
|
*/
|
|
49
|
-
setResponse(
|
|
50
|
-
this.responses.set(
|
|
34
|
+
setResponse(definition, result) {
|
|
35
|
+
this.responses.set(definition.name, () => Effect.succeed(result));
|
|
51
36
|
}
|
|
52
37
|
/**
|
|
53
|
-
* Remove a previously-registered response.
|
|
54
|
-
* so `deleteResponse("agents/lookpByName")` (typo) is a compile error.
|
|
38
|
+
* Remove a previously-registered response.
|
|
55
39
|
*/
|
|
56
|
-
deleteResponse(
|
|
57
|
-
this.responses.delete(
|
|
40
|
+
deleteResponse(definition) {
|
|
41
|
+
this.responses.delete(definition.name);
|
|
58
42
|
}
|
|
59
|
-
sendRpc(
|
|
43
|
+
sendRpc(definition, params, opts) {
|
|
60
44
|
return Effect.suspend(() => {
|
|
45
|
+
const method = definition.name;
|
|
61
46
|
this.calls.push(opts === undefined ? { method, params } : { method, params, opts });
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
const responder = this.responses.get(method);
|
|
48
|
+
if (responder !== undefined) {
|
|
49
|
+
return responder(params).pipe(Effect.flatMap((result) => decodeRpcResult(definition, result).pipe(Effect.mapError(() => new RpcServerError({
|
|
50
|
+
code: ErrorCodes.InternalError,
|
|
51
|
+
message: `FakeMoltZapService: invalid result for ${method}`,
|
|
52
|
+
data: result,
|
|
53
|
+
})))));
|
|
68
54
|
}
|
|
69
55
|
return Effect.fail(new RpcServerError({
|
|
70
|
-
code:
|
|
56
|
+
code: ErrorCodes.MethodNotFound,
|
|
71
57
|
message: `FakeMoltZapService: no canned response for ${method}`,
|
|
72
58
|
}));
|
|
73
59
|
});
|
|
@@ -84,13 +70,21 @@ export class FakeMoltZapService extends MoltZapService {
|
|
|
84
70
|
return HashMap.set(m, convId, [...existing, msg]);
|
|
85
71
|
}));
|
|
86
72
|
}
|
|
87
|
-
/** Deliver a protocol
|
|
73
|
+
/** Deliver a protocol notification through the real service handler. */
|
|
88
74
|
emitEvent(event) {
|
|
89
|
-
|
|
75
|
+
const notification = Effect.runSync(decodeNotification(notificationGroup, event).pipe(Effect.mapError(() => new RpcServerError({
|
|
76
|
+
code: ErrorCodes.InvalidParams,
|
|
77
|
+
message: `FakeMoltZapService: invalid notification ${event.method}`,
|
|
78
|
+
data: event.params,
|
|
79
|
+
}))));
|
|
80
|
+
this.emitNotification(notification);
|
|
81
|
+
}
|
|
82
|
+
emitNotification(notification) {
|
|
83
|
+
this.handleNotification(notification);
|
|
90
84
|
}
|
|
91
85
|
/** Pin an agent name in the internal cache without an RPC round-trip. */
|
|
92
86
|
setAgentNameDirect(id, name) {
|
|
93
|
-
Effect.runSync(Ref.update(this.parentAgentNamesRef, (m) => HashMap.set(m, id, name)));
|
|
87
|
+
Effect.runSync(Ref.update(this.parentAgentNamesRef, (m) => HashMap.set(m, testAgentId(id), name)));
|
|
94
88
|
}
|
|
95
89
|
/**
|
|
96
90
|
* Typed views of the parent class's private Refs, exposed only to this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-service.js","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fake-service.js","sourceRoot":"","sources":["../../src/test-utils/fake-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AgentId as AgentIdSchema, ConversationId as ConversationIdSchema, MessageId as MessageIdSchema, type Static } from "@moltzap/protocol";
|
|
2
|
+
type AgentId = Static<typeof AgentIdSchema>;
|
|
3
|
+
type ConversationId = Static<typeof ConversationIdSchema>;
|
|
4
|
+
type MessageId = Static<typeof MessageIdSchema>;
|
|
5
|
+
export declare const testAgentId: (label: string) => AgentId;
|
|
6
|
+
export declare const testConversationId: (label: string) => ConversationId;
|
|
7
|
+
export declare const testMessageId: (label: string) => MessageId;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/test-utils/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,cAAc,IAAI,oBAAoB,EACtC,SAAS,IAAI,eAAe,EAI5B,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAE3B,KAAK,OAAO,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAC5C,KAAK,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC1D,KAAK,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAoDhD,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,cACH,CAAC;AAEjD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,SACR,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AgentId as AgentIdSchema, ConversationId as ConversationIdSchema, MessageId as MessageIdSchema, agentId, conversationId, messageId, } from "@moltzap/protocol";
|
|
2
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
3
|
+
const HEX_ALPHABET = "0123456789abcdef";
|
|
4
|
+
const HEX_WORD = "00000000";
|
|
5
|
+
const UUID_GROUP = "0000";
|
|
6
|
+
const FNV_OFFSET_BASIS = Number("0x811c9dc5");
|
|
7
|
+
const FNV_PRIME = Number("0x01000193");
|
|
8
|
+
const HEX_RADIX = HEX_ALPHABET.length;
|
|
9
|
+
const HEX_WORD_WIDTH = HEX_WORD.length;
|
|
10
|
+
const UUID_FIRST_END = HEX_WORD.length;
|
|
11
|
+
const UUID_SECOND_END = UUID_FIRST_END + UUID_GROUP.length;
|
|
12
|
+
const UUID_VERSION_TAIL_START = UUID_SECOND_END + "0".length;
|
|
13
|
+
const UUID_VERSION_END = UUID_SECOND_END + UUID_GROUP.length;
|
|
14
|
+
const UUID_VARIANT_TAIL_START = UUID_VERSION_END + "0".length;
|
|
15
|
+
const UUID_VARIANT_END = UUID_VERSION_END + UUID_GROUP.length;
|
|
16
|
+
const UUID_TAIL_END = HEX_WORD.length * UUID_GROUP.length;
|
|
17
|
+
function hex32(input) {
|
|
18
|
+
let h1 = FNV_OFFSET_BASIS;
|
|
19
|
+
let h2 = FNV_PRIME;
|
|
20
|
+
for (let i = 0; i < input.length; i++) {
|
|
21
|
+
const c = input.charCodeAt(i);
|
|
22
|
+
h1 ^= c;
|
|
23
|
+
h1 = Math.imul(h1, FNV_PRIME);
|
|
24
|
+
h2 ^= c + i;
|
|
25
|
+
h2 = Math.imul(h2, FNV_OFFSET_BASIS);
|
|
26
|
+
}
|
|
27
|
+
const parts = [
|
|
28
|
+
h1,
|
|
29
|
+
h2,
|
|
30
|
+
Math.imul(h1 ^ h2, FNV_PRIME),
|
|
31
|
+
Math.imul(h1 + h2, FNV_OFFSET_BASIS),
|
|
32
|
+
];
|
|
33
|
+
return parts
|
|
34
|
+
.map((p) => (p >>> 0).toString(HEX_RADIX).padStart(HEX_WORD_WIDTH, "0"))
|
|
35
|
+
.join("");
|
|
36
|
+
}
|
|
37
|
+
function uuidFor(namespace, label) {
|
|
38
|
+
if (UUID_RE.test(label))
|
|
39
|
+
return label;
|
|
40
|
+
const h = hex32(`${namespace}:${label}`);
|
|
41
|
+
return [
|
|
42
|
+
h.slice(0, UUID_FIRST_END),
|
|
43
|
+
h.slice(UUID_FIRST_END, UUID_SECOND_END),
|
|
44
|
+
`4${h.slice(UUID_VERSION_TAIL_START, UUID_VERSION_END)}`,
|
|
45
|
+
`8${h.slice(UUID_VARIANT_TAIL_START, UUID_VARIANT_END)}`,
|
|
46
|
+
h.slice(UUID_VARIANT_END, UUID_TAIL_END),
|
|
47
|
+
].join("-");
|
|
48
|
+
}
|
|
49
|
+
export const testAgentId = (label) => agentId(uuidFor("agent", label));
|
|
50
|
+
export const testConversationId = (label) => conversationId(uuidFor("conversation", label));
|
|
51
|
+
export const testMessageId = (label) => messageId(uuidFor("message", label));
|
|
52
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/test-utils/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,cAAc,IAAI,oBAAoB,EACtC,SAAS,IAAI,eAAe,EAC5B,OAAO,EACP,cAAc,EACd,SAAS,GAEV,MAAM,mBAAmB,CAAC;AAM3B,MAAM,OAAO,GACX,4EAA4E,CAAC;AAC/E,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACxC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACvC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC;AACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,MAAM,eAAe,GAAG,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;AAC3D,MAAM,uBAAuB,GAAG,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;AAC7D,MAAM,gBAAgB,GAAG,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC;AAC7D,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;AAC9D,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;AAC9D,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAE1D,SAAS,KAAK,CAAC,KAAa;IAC1B,IAAI,EAAE,GAAG,gBAAgB,CAAC;IAC1B,IAAI,EAAE,GAAG,SAAS,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,EAAE,IAAI,CAAC,CAAC;QACR,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,EAAE;QACF,EAAE;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,gBAAgB,CAAC;KACrC,CAAC;IACF,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;SACvE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB,EAAE,KAAa;IAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACzC,OAAO;QACL,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC;QACxC,IAAI,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,EAAE;QACxD,IAAI,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,EAAE;QACxD,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC;KACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE,CACpD,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAkB,EAAE,CAClE,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAa,EAAE,CACxD,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
export { createFakeChannelService, type ChannelServiceEmit, type ChannelServiceState, type CreateFakeChannelServiceOptions, type FakeChannelService, } from "./channel-service-fixture.js";
|
|
2
|
-
export { FakeMoltZapService, type
|
|
2
|
+
export { FakeMoltZapService, type RecordedCall } from "./fake-service.js";
|
|
3
3
|
export { createMoltZapRealClientFactory, type RealClientFactoryOptions, } from "./conformance-adapter.js";
|
|
4
4
|
import type { Message } from "@moltzap/protocol";
|
|
5
|
-
export
|
|
5
|
+
export { testAgentId, testConversationId, testMessageId } from "./ids.js";
|
|
6
|
+
type MessageFixtureOverrides = Omit<Partial<Message>, "id" | "conversationId" | "senderId" | "replyToId" | "taggedEntities"> & {
|
|
7
|
+
readonly id?: string;
|
|
8
|
+
readonly conversationId?: string;
|
|
9
|
+
readonly senderId?: string;
|
|
10
|
+
readonly replyToId?: string;
|
|
11
|
+
readonly taggedEntities?: ReadonlyArray<string>;
|
|
12
|
+
};
|
|
13
|
+
export declare function buildMessage(overrides?: MessageFixtureOverrides): Message;
|
|
6
14
|
export declare function flushDispatchChain(): Promise<void>;
|
|
7
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAU1E,KAAK,uBAAuB,GAAG,IAAI,CACjC,OAAO,CAAC,OAAO,CAAC,EAChB,IAAI,GAAG,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CACtE,GAAG;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,YAAY,CAAC,SAAS,GAAE,uBAA4B,GAAG,OAAO,CAe7E;AAED,wBAAgB,kBAAkB,kBAWjC"}
|
package/dist/test-utils/index.js
CHANGED
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
export { createFakeChannelService, } from "./channel-service-fixture.js";
|
|
2
|
-
export { FakeMoltZapService
|
|
2
|
+
export { FakeMoltZapService } from "./fake-service.js";
|
|
3
3
|
export { createMoltZapRealClientFactory, } from "./conformance-adapter.js";
|
|
4
|
+
import { Data, Effect } from "effect";
|
|
5
|
+
import { testAgentId, testConversationId, testMessageId } from "./ids.js";
|
|
6
|
+
export { testAgentId, testConversationId, testMessageId } from "./ids.js";
|
|
7
|
+
const FLUSH_DISPATCH_TURNS = 20;
|
|
8
|
+
class FlushDispatchChainError extends Data.TaggedError("FlushDispatchChainError") {
|
|
9
|
+
}
|
|
4
10
|
export function buildMessage(overrides = {}) {
|
|
11
|
+
const { id, conversationId, senderId, replyToId, taggedEntities, ...rest } = overrides;
|
|
5
12
|
return {
|
|
6
|
-
id: "msg-1",
|
|
7
|
-
conversationId: "conv-1",
|
|
8
|
-
senderId: "agent-alice",
|
|
13
|
+
id: testMessageId(id ?? "msg-1"),
|
|
14
|
+
conversationId: testConversationId(conversationId ?? "conv-1"),
|
|
15
|
+
senderId: testAgentId(senderId ?? "agent-alice"),
|
|
9
16
|
parts: [{ type: "text", text: "hello" }],
|
|
10
17
|
createdAt: "2026-04-10T12:00:00.000Z",
|
|
11
|
-
...
|
|
18
|
+
...(replyToId !== undefined ? { replyToId: testMessageId(replyToId) } : {}),
|
|
19
|
+
...(taggedEntities !== undefined
|
|
20
|
+
? { taggedEntities: taggedEntities.map(testAgentId) }
|
|
21
|
+
: {}),
|
|
22
|
+
...rest,
|
|
12
23
|
};
|
|
13
24
|
}
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
export function flushDispatchChain() {
|
|
26
|
+
return Effect.runPromise(Effect.gen(function* () {
|
|
27
|
+
for (let i = 0; i < FLUSH_DISPATCH_TURNS; i++) {
|
|
28
|
+
yield* Effect.tryPromise({
|
|
29
|
+
try: () => Promise.resolve(),
|
|
30
|
+
catch: (cause) => new FlushDispatchChainError({ cause }),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
18
34
|
}
|
|
19
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,8BAA8B,GAE/B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1E,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,MAAM,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CACpD,yBAAyB,CAGzB;CAAG;AAaL,MAAM,UAAU,YAAY,CAAC,YAAqC,EAAE;IAClE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GACxE,SAAS,CAAC;IACZ,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,OAAO,CAAC;QAChC,cAAc,EAAE,kBAAkB,CAAC,cAAc,IAAI,QAAQ,CAAC;QAC9D,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,aAAa,CAAC;QAChD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACxC,SAAS,EAAE,0BAA0B;QACrC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,cAAc,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACvB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|