@turingfocus/chat-testing 0.1.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.
Files changed (38) hide show
  1. package/LICENSE +21 -0
  2. package/dist/contract-core.d.ts +12 -0
  3. package/dist/contract-core.d.ts.map +1 -0
  4. package/dist/contract-core.js +34 -0
  5. package/dist/contract-core.js.map +1 -0
  6. package/dist/contracts.d.ts +4 -0
  7. package/dist/contracts.d.ts.map +1 -0
  8. package/dist/contracts.js +4 -0
  9. package/dist/contracts.js.map +1 -0
  10. package/dist/fixtures.d.ts +37 -0
  11. package/dist/fixtures.d.ts.map +1 -0
  12. package/dist/fixtures.js +365 -0
  13. package/dist/fixtures.js.map +1 -0
  14. package/dist/gateway-contracts.d.ts +58 -0
  15. package/dist/gateway-contracts.d.ts.map +1 -0
  16. package/dist/gateway-contracts.js +524 -0
  17. package/dist/gateway-contracts.js.map +1 -0
  18. package/dist/index.d.ts +4 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +4 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/memory-gateway-clock.d.ts +13 -0
  23. package/dist/memory-gateway-clock.d.ts.map +1 -0
  24. package/dist/memory-gateway-clock.js +52 -0
  25. package/dist/memory-gateway-clock.js.map +1 -0
  26. package/dist/memory-gateway-holds.d.ts +26 -0
  27. package/dist/memory-gateway-holds.d.ts.map +1 -0
  28. package/dist/memory-gateway-holds.js +67 -0
  29. package/dist/memory-gateway-holds.js.map +1 -0
  30. package/dist/memory-gateway.d.ts +55 -0
  31. package/dist/memory-gateway.d.ts.map +1 -0
  32. package/dist/memory-gateway.js +461 -0
  33. package/dist/memory-gateway.js.map +1 -0
  34. package/dist/runtime-contracts.d.ts +26 -0
  35. package/dist/runtime-contracts.d.ts.map +1 -0
  36. package/dist/runtime-contracts.js +425 -0
  37. package/dist/runtime-contracts.js.map +1 -0
  38. package/package.json +37 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-gateway.js","sourceRoot":"","sources":["../src/memory-gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ChatGateway, ChatSnapshot, GatewayRequestOptions, GatewayResult, InterruptRunInput, InterruptRunSuccess, LoadConversationInput, MaybePromise, SendTextInput, SendTextSuccess } from "@turingfocus/chat-protocol";
2
+ import { type ChatContractCase } from "./contract-core.js";
3
+ import { type ChatContractFixtures } from "./fixtures.js";
4
+ export interface RuntimeContractSubscription {
5
+ dispose(): MaybePromise<void>;
6
+ }
7
+ /**
8
+ * Test-only shape that keeps the suite independent of a concrete ChatClient
9
+ * signature. A Runtime implementation maps its public API to this adapter.
10
+ */
11
+ export interface RuntimeContractAdapter {
12
+ dispose(options: GatewayRequestOptions): MaybePromise<void>;
13
+ getSnapshot(): MaybePromise<ChatSnapshot | null>;
14
+ interrupt(input: InterruptRunInput): MaybePromise<GatewayResult<InterruptRunSuccess>>;
15
+ loadConversation(input: LoadConversationInput): MaybePromise<void>;
16
+ sendText(input: SendTextInput): MaybePromise<GatewayResult<SendTextSuccess>>;
17
+ settle(): MaybePromise<void>;
18
+ subscribe(listener: (snapshot: ChatSnapshot) => void): MaybePromise<RuntimeContractSubscription>;
19
+ }
20
+ export type RuntimeContractAdapterFactory = (gateway: ChatGateway, fixtures: ChatContractFixtures) => MaybePromise<RuntimeContractAdapter>;
21
+ /**
22
+ * Runtime behavior cases. The adapter is intentionally test-only so TFCK-5
23
+ * does not freeze the concrete ChatClient signatures introduced later.
24
+ */
25
+ export declare const createRuntimeContractCases: (factory: RuntimeContractAdapterFactory) => readonly ChatContractCase[];
26
+ //# sourceMappingURL=runtime-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-contracts.d.ts","sourceRoot":"","sources":["../src/runtime-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,2BAA2B;IAC1C,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,IAAI,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACjD,SAAS,CACP,KAAK,EAAE,iBAAiB,GACvB,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpD,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,CACP,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,GACzC,YAAY,CAAC,2BAA2B,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,6BAA6B,GAAG,CAC1C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,oBAAoB,KAC3B,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAqV1C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,6BAA6B,KACrC,SAAS,gBAAgB,EAuVxB,CAAC"}
@@ -0,0 +1,425 @@
1
+ import { assert, assertEqual, deadlineFrom, display, } from "./contract-core.js";
2
+ import { createChatContractFixtures, } from "./fixtures.js";
3
+ import { createMemoryChatGateway } from "./memory-gateway.js";
4
+ const runtimeCase = (name, factory, execute) => Object.freeze({
5
+ name,
6
+ async run() {
7
+ const fixtures = createChatContractFixtures();
8
+ const memory = createMemoryChatGateway({ fixtures });
9
+ let adapter;
10
+ try {
11
+ adapter = await factory(memory.gateway, fixtures);
12
+ const environment = {
13
+ adapter,
14
+ deadlineAt: () => deadlineFrom(memory.controller.now()),
15
+ fixtures,
16
+ gatewayDisposed: () => memory.controller.disposed,
17
+ gateway: memory.gateway,
18
+ emitUpdate: (update) => memory.controller.emitUpdateToAll(update),
19
+ calls: () => memory.controller.calls,
20
+ };
21
+ await execute(environment);
22
+ }
23
+ finally {
24
+ try {
25
+ await adapter?.dispose({
26
+ deadlineAt: deadlineFrom(memory.controller.now()),
27
+ });
28
+ }
29
+ finally {
30
+ await memory.gateway.dispose({
31
+ deadlineAt: deadlineFrom(memory.controller.now()),
32
+ });
33
+ }
34
+ }
35
+ },
36
+ });
37
+ const runtimeIsolationCase = (factory) => Object.freeze({
38
+ name: "isolates concurrent Runtime instances",
39
+ async run() {
40
+ const baseTimestamp = 1_773_705_600_000;
41
+ const firstFixtures = createChatContractFixtures({
42
+ baseTimestamp,
43
+ conversationId: "conversation-runtime-first",
44
+ });
45
+ const secondFixtures = createChatContractFixtures({
46
+ baseTimestamp: baseTimestamp + 10_000,
47
+ conversationId: "conversation-runtime-second",
48
+ });
49
+ const firstMemory = createMemoryChatGateway({ fixtures: firstFixtures });
50
+ const secondMemory = createMemoryChatGateway({
51
+ fixtures: secondFixtures,
52
+ });
53
+ let firstAdapter;
54
+ let secondAdapter;
55
+ try {
56
+ firstAdapter = await factory(firstMemory.gateway, firstFixtures);
57
+ secondAdapter = await factory(secondMemory.gateway, secondFixtures);
58
+ await firstAdapter.loadConversation({
59
+ conversationId: firstFixtures.conversation.id,
60
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
61
+ });
62
+ await secondAdapter.loadConversation({
63
+ conversationId: secondFixtures.conversation.id,
64
+ deadlineAt: deadlineFrom(secondMemory.controller.now()),
65
+ });
66
+ let firstNotifications = 0;
67
+ let secondNotifications = 0;
68
+ const firstSubscription = await firstAdapter.subscribe(() => {
69
+ firstNotifications += 1;
70
+ });
71
+ const secondSubscription = await secondAdapter.subscribe(() => {
72
+ secondNotifications += 1;
73
+ });
74
+ const firstNotificationsBeforeUpdate = firstNotifications;
75
+ const secondNotificationsBeforeUpdate = secondNotifications;
76
+ firstMemory.controller.emitUpdateToAll(firstFixtures.realtimeMessageUpdate);
77
+ firstMemory.controller.emitUpdateToAll(firstFixtures.runUpdate);
78
+ firstMemory.controller.emitError(firstFixtures.authenticationError);
79
+ await firstAdapter.settle();
80
+ await secondAdapter.settle();
81
+ const firstSnapshot = await firstAdapter.getSnapshot();
82
+ const secondSnapshot = await secondAdapter.getSnapshot();
83
+ assert(firstSnapshot?.timeline.some(({ id }) => id === "message-realtime") === true, "the first Runtime must receive its own update");
84
+ assert(firstSnapshot?.run?.id === "run-replaced" &&
85
+ firstSnapshot.run.status === "succeeded", "the first Runtime must receive only its own Run update");
86
+ assert(firstSnapshot?.error?.code === "authentication", "the first Runtime must receive only its own authentication error");
87
+ assertEqual(secondSnapshot, secondFixtures.initialSnapshot, "the second Runtime must not receive the first Runtime state, Run, or authentication updates");
88
+ assert(firstNotifications > firstNotificationsBeforeUpdate, "the first Runtime must notify only its own listeners");
89
+ assert(secondNotifications === secondNotificationsBeforeUpdate, "the second Runtime listener must ignore the first Runtime update");
90
+ await firstAdapter.dispose({
91
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
92
+ });
93
+ assert(firstMemory.controller.disposed, "disposing the first Runtime must dispose its Gateway");
94
+ assert(!secondMemory.controller.disposed, "disposing the first Runtime must not dispose another Gateway");
95
+ const firstNotificationsAfterDispose = firstNotifications;
96
+ secondMemory.controller.emitUpdateToAll(secondFixtures.realtimeMessageUpdate);
97
+ await secondAdapter.settle();
98
+ const secondUpdatedSnapshot = await secondAdapter.getSnapshot();
99
+ assert(secondUpdatedSnapshot?.timeline.some(({ id }) => id === "message-realtime") === true, "disposing one Runtime must not silence another");
100
+ assert(firstNotifications === firstNotificationsAfterDispose, "a disposed Runtime must not receive another Runtime update");
101
+ assert(secondNotifications > secondNotificationsBeforeUpdate, "the active Runtime must keep notifying its own listeners");
102
+ await firstSubscription.dispose();
103
+ await secondSubscription.dispose();
104
+ }
105
+ finally {
106
+ try {
107
+ await firstAdapter?.dispose({
108
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
109
+ });
110
+ }
111
+ finally {
112
+ try {
113
+ await secondAdapter?.dispose({
114
+ deadlineAt: deadlineFrom(secondMemory.controller.now()),
115
+ });
116
+ }
117
+ finally {
118
+ await firstMemory.gateway.dispose({
119
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
120
+ });
121
+ await secondMemory.gateway.dispose({
122
+ deadlineAt: deadlineFrom(secondMemory.controller.now()),
123
+ });
124
+ }
125
+ }
126
+ }
127
+ },
128
+ });
129
+ const probeSnapshotIsolation = async (adapter, exposed, label) => {
130
+ const expected = display(exposed);
131
+ Reflect.set(exposed, "run", null);
132
+ Reflect.set(exposed.conversation, "title", "Externally mutated");
133
+ if (exposed.timeline.length > 0) {
134
+ const first = exposed.timeline[0];
135
+ Reflect.set(exposed.timeline, 0, { ...first, id: "externally-mutated" });
136
+ if (first.kind === "message") {
137
+ Reflect.set(first.content, "text", "Externally mutated");
138
+ }
139
+ }
140
+ assert(display(exposed) === expected, `${label} must itself resist external mutation`);
141
+ assert(display(await adapter.getSnapshot()) === expected, `${label} must not expose mutable Runtime state`);
142
+ };
143
+ const runtimeSnapshotBoundaryCase = (factory) => Object.freeze({
144
+ name: "preserves updates across initial-load and conversation-switch snapshot boundaries",
145
+ async run() {
146
+ const firstFixtures = createChatContractFixtures({
147
+ conversationId: "conversation-boundary-first",
148
+ });
149
+ const secondFixtures = createChatContractFixtures({
150
+ baseTimestamp: 1_773_705_700_000,
151
+ conversationId: "conversation-boundary-second",
152
+ });
153
+ const firstMemory = createMemoryChatGateway({ fixtures: firstFixtures });
154
+ const secondMemory = createMemoryChatGateway({
155
+ fixtures: secondFixtures,
156
+ });
157
+ const emitted = new Set();
158
+ const selectMemory = (conversationId) => conversationId === firstFixtures.conversation.id
159
+ ? firstMemory
160
+ : secondMemory;
161
+ const emitSnapshotBoundary = (conversationId, fixtures) => {
162
+ if (emitted.has(conversationId))
163
+ return;
164
+ emitted.add(conversationId);
165
+ const memory = selectMemory(conversationId);
166
+ memory.controller.emitUpdateToAll(fixtures.realtimeMessageUpdate);
167
+ memory.controller.emitUpdateToAll(fixtures.runUpdate);
168
+ memory.controller.emitError(fixtures.authenticationError);
169
+ };
170
+ const gateway = {
171
+ dispose: async (options) => {
172
+ const results = await Promise.allSettled([
173
+ firstMemory.gateway.dispose(options),
174
+ secondMemory.gateway.dispose(options),
175
+ ]);
176
+ const failures = results
177
+ .filter((result) => result.status === "rejected")
178
+ .map(({ reason }) => reason);
179
+ if (failures.length === 1)
180
+ throw failures[0];
181
+ if (failures.length > 1) {
182
+ throw new AggregateError(failures, "Gateway cleanup failed");
183
+ }
184
+ },
185
+ interrupt: (input) => selectMemory(input.conversationId).gateway.interrupt(input),
186
+ listConversations: (input) => firstMemory.gateway.listConversations(input),
187
+ loadConversation: (input) => {
188
+ const fixtures = input.conversationId === firstFixtures.conversation.id
189
+ ? firstFixtures
190
+ : secondFixtures;
191
+ emitSnapshotBoundary(input.conversationId, fixtures);
192
+ return selectMemory(input.conversationId).gateway.loadConversation(input);
193
+ },
194
+ sendText: (input) => selectMemory(input.conversationId).gateway.sendText(input),
195
+ subscribe: (input, observer) => selectMemory(input.conversationId).gateway.subscribe(input, observer),
196
+ };
197
+ let adapter;
198
+ const assertBoundaryState = (snapshot, fixtures, label) => {
199
+ assert(snapshot?.timeline.some(({ id }) => id === "message-realtime") ===
200
+ true, `${label} must retain the message emitted at the snapshot boundary`);
201
+ assert(snapshot?.run?.id === "run-replaced" &&
202
+ snapshot.run.status === "succeeded", `${label} must retain the Run emitted at the snapshot boundary`);
203
+ assert(snapshot?.error?.code === "authentication" &&
204
+ snapshot.error.conversationId === fixtures.conversation.id, `${label} must retain the error emitted at the snapshot boundary`);
205
+ };
206
+ try {
207
+ adapter = await factory(gateway, firstFixtures);
208
+ await adapter.loadConversation({
209
+ conversationId: firstFixtures.conversation.id,
210
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
211
+ });
212
+ await adapter.settle();
213
+ assertBoundaryState(await adapter.getSnapshot(), firstFixtures, "initial load");
214
+ await adapter.loadConversation({
215
+ conversationId: secondFixtures.conversation.id,
216
+ deadlineAt: deadlineFrom(secondMemory.controller.now()),
217
+ });
218
+ await adapter.settle();
219
+ assertBoundaryState(await adapter.getSnapshot(), secondFixtures, "conversation switch");
220
+ }
221
+ finally {
222
+ try {
223
+ await adapter?.dispose({
224
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
225
+ });
226
+ }
227
+ finally {
228
+ await gateway.dispose({
229
+ deadlineAt: deadlineFrom(firstMemory.controller.now()),
230
+ });
231
+ }
232
+ }
233
+ },
234
+ });
235
+ /**
236
+ * Runtime behavior cases. The adapter is intentionally test-only so TFCK-5
237
+ * does not freeze the concrete ChatClient signatures introduced later.
238
+ */
239
+ export const createRuntimeContractCases = (factory) => Object.freeze([
240
+ runtimeIsolationCase(factory),
241
+ runtimeSnapshotBoundaryCase(factory),
242
+ runtimeCase("loads the initial immutable snapshot", factory, async ({ adapter, deadlineAt, fixtures }) => {
243
+ await adapter.loadConversation({
244
+ conversationId: fixtures.conversation.id,
245
+ deadlineAt: deadlineAt(),
246
+ });
247
+ await adapter.settle();
248
+ const snapshot = await adapter.getSnapshot();
249
+ assertEqual(snapshot, fixtures.initialSnapshot, "Runtime must expose the loaded snapshot");
250
+ assert(snapshot !== null, "Runtime must expose an initial snapshot");
251
+ await probeSnapshotIsolation(adapter, snapshot, "initial snapshot");
252
+ }),
253
+ runtimeCase("does not publish an unchanged conversation reload", factory, async ({ adapter, deadlineAt, fixtures }) => {
254
+ const input = {
255
+ conversationId: fixtures.conversation.id,
256
+ deadlineAt: deadlineAt(),
257
+ };
258
+ await adapter.loadConversation(input);
259
+ const before = await adapter.getSnapshot();
260
+ let notifications = 0;
261
+ const subscription = await adapter.subscribe(() => {
262
+ notifications += 1;
263
+ });
264
+ await adapter.loadConversation({
265
+ ...input,
266
+ deadlineAt: deadlineAt(),
267
+ });
268
+ await adapter.settle();
269
+ assert((await adapter.getSnapshot()) === before, "an unchanged reload must retain the current immutable snapshot");
270
+ assert(notifications === 1, "an unchanged reload must not notify subscribers");
271
+ await subscription.dispose();
272
+ }),
273
+ runtimeCase("deduplicates and stably orders normalized updates", factory, async ({ adapter, deadlineAt, emitUpdate, fixtures }) => {
274
+ await adapter.loadConversation({
275
+ conversationId: fixtures.conversation.id,
276
+ deadlineAt: deadlineAt(),
277
+ });
278
+ for (const update of [
279
+ ...fixtures.duplicateMessageUpdates,
280
+ fixtures.replacementMessageUpdate,
281
+ ...fixtures.outOfOrderEventUpdates,
282
+ fixtures.duplicateEventTransitionUpdate,
283
+ ...fixtures.tieBreakMessageUpdates,
284
+ fixtures.unknownEventUpdate,
285
+ ]) {
286
+ emitUpdate(update);
287
+ }
288
+ await adapter.settle();
289
+ const snapshot = await adapter.getSnapshot();
290
+ assert(snapshot !== null, "Runtime must retain a snapshot after updates");
291
+ assert(snapshot.timeline.filter(({ id }) => id === "message-realtime")
292
+ .length === 1, "duplicate timeline items must be upserted by stable identity");
293
+ const replacementMessage = snapshot.timeline.find(({ id }) => id === "message-realtime");
294
+ const expectedReplacement = fixtures.replacementMessageUpdate;
295
+ assert(expectedReplacement.kind === "timeline.upsert", "replacement fixture must be a timeline upsert");
296
+ assert(replacementMessage?.kind === "message" &&
297
+ replacementMessage.content.kind === "text" &&
298
+ replacementMessage.content.text === "Realtime replacement" &&
299
+ replacementMessage.updatedAt === expectedReplacement.item.updatedAt, "a later full item replacement must win for the same stable identity");
300
+ const event = snapshot.timeline.find(({ id }) => id === "event-out-of-order");
301
+ assert(event?.kind === "agent-event", "transition updates must create one normalized event");
302
+ assertEqual(event.transitions.map(({ id }) => id), ["transition-running", "transition-success"], "event transitions must be ordered independently of arrival");
303
+ assert(event.status === "success", "the latest ordered transition must determine event status");
304
+ assert(snapshot.timeline.some((item) => item.kind === "unknown-event" && item.id === "event-unknown"), "unknown events must remain visible as fallback items");
305
+ assertEqual(snapshot.timeline.map(({ id }) => id), [
306
+ "message-history",
307
+ "event-out-of-order",
308
+ "message-tie-a",
309
+ "message-tie-b",
310
+ "message-realtime",
311
+ "event-unknown",
312
+ ], "timeline items must use timestamp, sequence, and stable-key ordering");
313
+ await probeSnapshotIsolation(adapter, snapshot, "updated snapshot");
314
+ }),
315
+ runtimeCase("applies every standard update and ignores other conversations", factory, async ({ adapter, deadlineAt, emitUpdate, fixtures }) => {
316
+ await adapter.loadConversation({
317
+ conversationId: fixtures.conversation.id,
318
+ deadlineAt: deadlineAt(),
319
+ });
320
+ let notifications = 0;
321
+ let notifiedSnapshot;
322
+ const subscription = await adapter.subscribe((snapshot) => {
323
+ notifications += 1;
324
+ notifiedSnapshot = snapshot;
325
+ });
326
+ for (const update of [
327
+ fixtures.snapshotReplacementUpdate,
328
+ fixtures.conversationUpdate,
329
+ fixtures.runUpdate,
330
+ fixtures.capabilitiesUpdate,
331
+ fixtures.reportedErrorUpdate,
332
+ ]) {
333
+ const beforeUpdate = notifications;
334
+ emitUpdate(update);
335
+ await adapter.settle();
336
+ assert(notifications > beforeUpdate, `${update.kind} must notify subscribers after settling`);
337
+ }
338
+ const beforeForeignSnapshot = await adapter.getSnapshot();
339
+ assert(beforeForeignSnapshot?.error?.code === "server", "conversation-scoped error.reported must expose the structured error");
340
+ const beforeForeignDisplay = display(beforeForeignSnapshot);
341
+ for (const foreignUpdate of fixtures.foreignConversationUpdates) {
342
+ const beforeForeignUpdate = notifications;
343
+ emitUpdate(foreignUpdate);
344
+ await adapter.settle();
345
+ assert(notifications === beforeForeignUpdate, `${foreignUpdate.kind} for another conversation must not notify`);
346
+ assert(display(await adapter.getSnapshot()) === beforeForeignDisplay, `${foreignUpdate.kind} for another conversation must not change state`);
347
+ }
348
+ const beforeGlobalError = notifications;
349
+ emitUpdate(fixtures.globalErrorUpdate);
350
+ await adapter.settle();
351
+ assert(notifications > beforeGlobalError, "a global error.reported update must notify the active conversation");
352
+ const snapshot = await adapter.getSnapshot();
353
+ assert(snapshot !== null, "Runtime must retain the replaced snapshot");
354
+ assert(snapshot.conversation.title === "Renamed conversation", "conversation.upsert must replace conversation metadata");
355
+ assert(snapshot.run?.id === "run-replaced" &&
356
+ snapshot.run.status === "succeeded", "run.replace must replace Run state");
357
+ assert(!snapshot.capabilities.interrupt && !snapshot.capabilities.sendText, "capabilities.replace must replace capabilities");
358
+ assert(snapshot.error?.code === "network" &&
359
+ snapshot.error.conversationId === undefined, "global error.reported must expose the unscoped structured error");
360
+ assert(snapshot.timeline.length === 0, "snapshot.replace must replace the previous timeline");
361
+ assert(!snapshot.timeline.some(({ id }) => id === "message-foreign"), "foreign updates must not contaminate the active conversation");
362
+ assertEqual(notifiedSnapshot, snapshot, "subscriber notifications must expose the current snapshot");
363
+ assert(notifiedSnapshot !== undefined, "standard updates must produce a subscriber snapshot");
364
+ await probeSnapshotIsolation(adapter, notifiedSnapshot, "subscriber snapshot");
365
+ await subscription.dispose();
366
+ }),
367
+ runtimeCase("routes text and interrupt commands through its Gateway", factory, async ({ adapter, calls, deadlineAt, fixtures }) => {
368
+ const loadInput = {
369
+ conversationId: fixtures.conversation.id,
370
+ deadlineAt: deadlineAt(),
371
+ };
372
+ await adapter.loadConversation(loadInput);
373
+ const sendInput = {
374
+ conversationId: fixtures.conversation.id,
375
+ text: "Contract message",
376
+ clientMessageId: "client-contract",
377
+ deadlineAt: deadlineAt(),
378
+ };
379
+ const sent = await adapter.sendText(sendInput);
380
+ const interruptInput = {
381
+ conversationId: fixtures.conversation.id,
382
+ runId: fixtures.initialSnapshot.run?.id,
383
+ deadlineAt: deadlineAt(),
384
+ };
385
+ const interrupted = await adapter.interrupt(interruptInput);
386
+ const implicitInterruptInput = {
387
+ conversationId: fixtures.conversation.id,
388
+ deadlineAt: deadlineAt(),
389
+ };
390
+ const implicitlyInterrupted = await adapter.interrupt(implicitInterruptInput);
391
+ assertEqual(sent, { ok: true, value: fixtures.sendTextSuccess }, "Runtime must return the Gateway send result");
392
+ assertEqual(interrupted, { ok: true, value: fixtures.interruptSuccess }, "Runtime must return the Gateway interrupt result");
393
+ assertEqual(implicitlyInterrupted, { ok: true, value: fixtures.interruptSuccess }, "Runtime must return the implicit interrupt result");
394
+ assertEqual(calls().filter(({ operation }) => operation === "sendText" || operation === "interrupt"), [
395
+ { operation: "sendText", input: sendInput },
396
+ { operation: "interrupt", input: interruptInput },
397
+ {
398
+ operation: "interrupt",
399
+ input: {
400
+ ...implicitInterruptInput,
401
+ runId: fixtures.initialSnapshot.run?.id,
402
+ },
403
+ },
404
+ ], "Runtime commands must reach the injected Gateway and implicit interrupts must be pinned to the active Run");
405
+ }),
406
+ runtimeCase("stops notifying after disposal", factory, async ({ adapter, deadlineAt, emitUpdate, fixtures, gatewayDisposed, }) => {
407
+ await adapter.loadConversation({
408
+ conversationId: fixtures.conversation.id,
409
+ deadlineAt: deadlineAt(),
410
+ });
411
+ let notifications = 0;
412
+ const subscription = await adapter.subscribe(() => {
413
+ notifications += 1;
414
+ });
415
+ const beforeDispose = notifications;
416
+ await adapter.dispose({ deadlineAt: deadlineAt() });
417
+ assert(gatewayDisposed(), "disposed Runtime adapters must dispose their injected Gateway");
418
+ assertEqual(await adapter.getSnapshot(), null, "disposed Runtime adapters must release their retained snapshot state");
419
+ emitUpdate(fixtures.realtimeMessageUpdate);
420
+ await adapter.settle();
421
+ assert(notifications === beforeDispose, "disposed Runtime adapters must not notify subscribers");
422
+ await subscription.dispose();
423
+ }),
424
+ ]);
425
+ //# sourceMappingURL=runtime-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-contracts.js","sourceRoot":"","sources":["../src/runtime-contracts.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@turingfocus/chat-testing",
3
+ "version": "0.1.0",
4
+ "description": "In-memory gateways, fixtures, and chat contract test utilities",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/A2C-SMCP/tf-chat-kit.git",
9
+ "directory": "packages/chat-testing"
10
+ },
11
+ "homepage": "https://github.com/A2C-SMCP/tf-chat-kit#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/A2C-SMCP/tf-chat-kit/issues"
14
+ },
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "main": "./dist/index.js",
21
+ "module": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js",
27
+ "default": "./dist/index.js"
28
+ }
29
+ },
30
+ "dependencies": {
31
+ "@turingfocus/chat-protocol": "^0.1.0"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public",
35
+ "registry": "https://registry.npmjs.org/"
36
+ }
37
+ }