@turingfocus/chat-gateway-tfrobot 0.5.0 → 0.6.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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { TFRobotChatGateway, createTFRobotChatGateway, TFROBOT_CAPABILITIES, } from "./gateway.js";
2
2
  export { createSocketIoFactory } from "./socket.js";
3
- export type { TFRobotGatewayOptions, TFRobotMessageCreator, TFRobotMessageCreatorProvider, TFRobotMessageCreatorRequest, TFRobotSession, TFRobotSocket, TFRobotSocketAnyListener, TFRobotSocketAuth, TFRobotSocketFactory, TFRobotSocketFactoryInput, TFRobotSocketListener, } from "./types.js";
3
+ export type { TFRobotGatewayOptions, TFRobotLifecycleDiagnostic, TFRobotMessageCreator, TFRobotMessageCreatorProvider, TFRobotMessageCreatorRequest, TFRobotSession, TFRobotSocket, TFRobotSocketAnyListener, TFRobotSocketAuth, TFRobotSocketFactory, TFRobotSocketFactoryInput, TFRobotSocketListener, } from "./types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,GAAG,EAET,MAAM,4BAA4B,CAAC;AAuBpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EACV,qBAAqB,EAKrB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAoGpB,eAAO,MAAM,yBAAyB,GACnC,SAAS,OAAO,EAAE,KAAG,oBAYU,CAAC;AAEnC,eAAO,MAAM,qBAAqB,sBAAgC,CAAC;AAYnE,KAAK,qBAAqB,GAAG,CAC3B,cAAc,EAAE,MAAM,KACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;AAEvC,qBAAa,mBAAmB;;gBAa5B,OAAO,EAAE,qBAAqB,EAC9B,qBAAqB,EAAE,qBAAqB;IAWxC,SAAS,CACb,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAinB9C,OAAO,IAAI,IAAI;IAOf,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;CA8J3D"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EASL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,GAAG,EAET,MAAM,4BAA4B,CAAC;AAuBpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EACV,qBAAqB,EAKrB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAmQpB,eAAO,MAAM,yBAAyB,GACnC,SAAS,OAAO,EAAE,KAAG,oBAYU,CAAC;AAEnC,eAAO,MAAM,qBAAqB,sBAAgC,CAAC;AAqBnE,KAAK,qBAAqB,GAAG,CAC3B,cAAc,EAAE,MAAM,KACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;AAIvC,qBAAa,mBAAmB;;gBAe5B,OAAO,EAAE,qBAAqB,EAC9B,qBAAqB,EAAE,qBAAqB;IAWxC,SAAS,CACb,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IA8jC9C,OAAO,IAAI,IAAI;IAYf,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;CA2K3D"}
package/dist/socket.js CHANGED
@@ -17,6 +17,123 @@ const KNOWN_EVENTS = new Set([
17
17
  ]);
18
18
  const MAX_TIMER_DELAY = 2_147_483_647;
19
19
  const RECONNECT_AUTH_TIMEOUT_MS = 10_000;
20
+ const RECONNECT_JOIN_TIMEOUT_MS = 10_000;
21
+ const parseJoinAcknowledgement = (value, reconnect) => {
22
+ if (value === undefined) {
23
+ return {
24
+ accepted: reconnect,
25
+ recoveryComplete: false,
26
+ ...(reconnect ? {} : { rejectionCode: "validation" }),
27
+ };
28
+ }
29
+ if (value === null) {
30
+ return {
31
+ accepted: false,
32
+ recoveryComplete: false,
33
+ rejectionCode: "validation",
34
+ };
35
+ }
36
+ if (value === false) {
37
+ return {
38
+ accepted: false,
39
+ recoveryComplete: false,
40
+ rejectionCode: "validation",
41
+ };
42
+ }
43
+ if (value === true) {
44
+ return { accepted: true, recoveryComplete: !reconnect };
45
+ }
46
+ if (typeof value !== "object") {
47
+ return {
48
+ accepted: false,
49
+ recoveryComplete: false,
50
+ rejectionCode: "validation",
51
+ };
52
+ }
53
+ const record = value;
54
+ const booleanAliases = ["ok", "accepted", "success"];
55
+ const hasInvalidBooleanAlias = booleanAliases.some((alias) => Object.hasOwn(record, alias) && typeof record[alias] !== "boolean");
56
+ const statusAliases = ["status", "statusCode", "code"];
57
+ const hasInvalidStatusAlias = statusAliases.some((alias) => Object.hasOwn(record, alias) && record[alias] === undefined);
58
+ const statuses = [record["status"], record["statusCode"], record["code"]]
59
+ .filter((status) => status !== undefined)
60
+ .map((status) => {
61
+ const numeric = typeof status === "number"
62
+ ? status
63
+ : typeof status === "string" && /^\d{3}$/u.test(status)
64
+ ? Number(status)
65
+ : undefined;
66
+ const normalized = typeof status === "string" ? status.trim().toLowerCase() : undefined;
67
+ const accepted = (numeric !== undefined && numeric >= 200 && numeric < 300) ||
68
+ normalized === "ok" ||
69
+ normalized === "success" ||
70
+ normalized === "accepted" ||
71
+ normalized === "joined";
72
+ const rejected = (numeric !== undefined && numeric >= 400) ||
73
+ normalized === "error" ||
74
+ normalized === "failed" ||
75
+ normalized === "forbidden" ||
76
+ normalized === "unauthorized" ||
77
+ normalized === "rejected";
78
+ return { accepted, normalized, numeric, rejected };
79
+ });
80
+ const hasUnknownStatus = statuses.some((status) => !status.accepted && !status.rejected);
81
+ const explicitlyAccepted = record["ok"] === true ||
82
+ record["accepted"] === true ||
83
+ record["success"] === true ||
84
+ statuses.some((status) => status.accepted);
85
+ const cursorAliases = ["cursor", "recoveryCursor"];
86
+ const cursorValues = cursorAliases
87
+ .filter((alias) => Object.hasOwn(record, alias))
88
+ .map((alias) => record[alias]);
89
+ const cursorInvalid = cursorValues.some((cursorValue) => typeof cursorValue !== "string");
90
+ const cursorConflict = cursorValues.length > 1 &&
91
+ cursorValues.some((cursorValue) => cursorValue !== cursorValues[0]);
92
+ const recoveryAliases = ["recovered", "recoveryComplete"];
93
+ const recoveryDeclarations = recoveryAliases
94
+ .filter((alias) => Object.hasOwn(record, alias))
95
+ .map((alias) => record[alias]);
96
+ const recoveryInvalid = recoveryDeclarations.some((declaration) => typeof declaration !== "boolean");
97
+ const recoveryConflict = recoveryDeclarations.includes(true) && recoveryDeclarations.includes(false);
98
+ const normalizedError = typeof record["error"] === "string"
99
+ ? record["error"].trim().toLowerCase()
100
+ : undefined;
101
+ const explicitlyRejected = hasInvalidBooleanAlias ||
102
+ hasInvalidStatusAlias ||
103
+ record["ok"] === false ||
104
+ record["accepted"] === false ||
105
+ record["success"] === false ||
106
+ record["error"] !== undefined ||
107
+ cursorInvalid ||
108
+ cursorConflict ||
109
+ recoveryInvalid ||
110
+ recoveryConflict ||
111
+ (!reconnect && recoveryDeclarations.includes(false)) ||
112
+ hasUnknownStatus ||
113
+ statuses.some((status) => status.rejected);
114
+ const accepted = explicitlyAccepted && !explicitlyRejected;
115
+ const cursor = cursorValues[0];
116
+ const recoveryComplete = !reconnect ||
117
+ (recoveryDeclarations.length > 0 &&
118
+ recoveryDeclarations.every((declaration) => declaration === true));
119
+ const authenticationRejected = statuses.some(({ normalized, numeric }) => numeric === 401 || normalized === "unauthorized") || normalizedError === "unauthorized";
120
+ const authorizationRejected = statuses.some(({ normalized, numeric }) => numeric === 403 || normalized === "forbidden") || normalizedError === "forbidden";
121
+ return {
122
+ accepted,
123
+ ...(authenticationRejected
124
+ ? { rejectionCode: "authentication" }
125
+ : authorizationRejected
126
+ ? { rejectionCode: "authorization" }
127
+ : accepted
128
+ ? {}
129
+ : { rejectionCode: "validation" }),
130
+ recoveryComplete,
131
+ ...(typeof cursor === "string" ? { cursor } : {}),
132
+ ...(typeof record["message"] === "string"
133
+ ? { message: record["message"] }
134
+ : {}),
135
+ };
136
+ };
20
137
  const sameRun = (first, second) => first === second ||
21
138
  (first != null &&
22
139
  second != null &&
@@ -102,9 +219,9 @@ export const createSocketIoFactoryWith = (connect) => ({ getAuth, namespaceUrl,
102
219
  });
103
220
  export const createSocketIoFactory = createSocketIoFactoryWith(io);
104
221
  export class TFRobotSocketClient {
105
- #active;
106
222
  #disposed = false;
107
223
  #establishmentAbort;
224
+ #establishing;
108
225
  #factory;
109
226
  #namespaceUrl;
110
227
  #now;
@@ -112,6 +229,8 @@ export class TFRobotSocketClient {
112
229
  #path;
113
230
  #reconnectStatusLoader;
114
231
  #runs = new Map();
232
+ #subscriptions = new Set();
233
+ #subscriptionGeneration = 0;
115
234
  constructor(options, reconnectStatusLoader) {
116
235
  this.#options = options;
117
236
  this.#factory = options.socketFactory ?? createSocketIoFactory;
@@ -134,7 +253,9 @@ export class TFRobotSocketClient {
134
253
  error: createGatewayDeadlineExceededError(),
135
254
  };
136
255
  }
137
- this.#deactivateCurrent();
256
+ const generation = ++this.#subscriptionGeneration;
257
+ const subscriptionId = `tfrobot-subscription-${generation}`;
258
+ this.#cancelEstablishment();
138
259
  const establishmentAbort = new AbortController();
139
260
  this.#establishmentAbort = establishmentAbort;
140
261
  const authOutcome = await awaitBounded(() => this.#getSocketAuth(conversationId, "connect"), {
@@ -142,9 +263,6 @@ export class TFRobotSocketClient {
142
263
  now: this.#now,
143
264
  signal: establishmentAbort.signal,
144
265
  });
145
- if (this.#establishmentAbort === establishmentAbort) {
146
- this.#establishmentAbort = undefined;
147
- }
148
266
  switch (authOutcome.kind) {
149
267
  case "aborted": {
150
268
  return {
@@ -224,6 +342,20 @@ export class TFRobotSocketClient {
224
342
  };
225
343
  }
226
344
  const listeners = new Map();
345
+ let joinTimeout;
346
+ const activeErrorIds = new Map();
347
+ const replaceableErrorSources = new Set([
348
+ "authentication",
349
+ "connection",
350
+ "recovery",
351
+ "subscription",
352
+ ]);
353
+ let errorSequence = 0;
354
+ let publishUpdate = () => undefined;
355
+ const pendingNotifications = [];
356
+ const pendingRealtimeActions = [];
357
+ let joinPending = false;
358
+ let subscriptionEstablished = false;
227
359
  let setupFailure;
228
360
  const add = (eventName, listener) => {
229
361
  if (setupFailure !== undefined)
@@ -244,15 +376,52 @@ export class TFRobotSocketClient {
244
376
  // Diagnostics are observational and cannot break the chat stream.
245
377
  }
246
378
  };
247
- const report = (error) => {
248
- if (!active.active)
249
- return;
379
+ const notifyError = (error) => {
250
380
  try {
251
381
  observer.error?.(error);
252
382
  }
253
383
  catch {
254
384
  // Host observers are isolated from the transport listener.
255
385
  }
386
+ };
387
+ const resolveError = (source) => {
388
+ const errorId = activeErrorIds.get(source);
389
+ if (errorId === undefined || !active.active)
390
+ return;
391
+ activeErrorIds.delete(source);
392
+ publishUpdate(chatUpdateSchema.parse({
393
+ kind: "error.resolved",
394
+ conversationId: errorConversationId(),
395
+ errorId,
396
+ }));
397
+ };
398
+ const report = (error, source = "protocol") => {
399
+ if (!active.active)
400
+ return;
401
+ if (replaceableErrorSources.has(source))
402
+ resolveError(source);
403
+ const errorId = `${subscriptionId}:error:${++errorSequence}`;
404
+ if (replaceableErrorSources.has(source)) {
405
+ activeErrorIds.set(source, errorId);
406
+ }
407
+ const occurrenceError = error.conversationId === undefined
408
+ ? error
409
+ : { ...error, conversationId: errorConversationId() };
410
+ publishUpdate(chatUpdateSchema.parse({
411
+ kind: "error.reported",
412
+ conversationId: errorConversationId(),
413
+ error: occurrenceError,
414
+ errorId,
415
+ source,
416
+ scope: source === "domain"
417
+ ? { kind: "conversation", id: errorConversationId() }
418
+ : { kind: "subscription", id: subscriptionId },
419
+ generation,
420
+ }));
421
+ if (subscriptionEstablished)
422
+ notifyError(error);
423
+ else
424
+ pendingNotifications.push({ kind: "error", error });
256
425
  diagnose(error);
257
426
  };
258
427
  const sanitizePayload = (payload) => {
@@ -276,6 +445,10 @@ export class TFRobotSocketClient {
276
445
  updateConversationId !== errorConversationId()) {
277
446
  return;
278
447
  }
448
+ if (!subscriptionEstablished) {
449
+ pendingNotifications.push({ kind: "update", update });
450
+ return;
451
+ }
279
452
  try {
280
453
  observer.next(update);
281
454
  }
@@ -283,6 +456,74 @@ export class TFRobotSocketClient {
283
456
  diagnose(this.#error("unknown", "TFRobot Gateway observer rejected an update", false, errorConversationId()));
284
457
  }
285
458
  };
459
+ publishUpdate = next;
460
+ const dispatchRealtime = (action) => {
461
+ if (active.acceptingEvents)
462
+ action();
463
+ else if (joinPending)
464
+ pendingRealtimeActions.push(action);
465
+ };
466
+ const flushRealtime = () => {
467
+ for (const action of pendingRealtimeActions.splice(0))
468
+ action();
469
+ };
470
+ const lifecycle = (status, recovery, joinLatencyMs) => {
471
+ if (!active.active)
472
+ return;
473
+ const value = {
474
+ status,
475
+ generation,
476
+ reconnectAttempt: active.reconnectAttempt,
477
+ subscriptionId,
478
+ ...(recovery === undefined ? {} : { recovery }),
479
+ };
480
+ const update = chatUpdateSchema.parse({
481
+ kind: "lifecycle.changed",
482
+ conversationId: errorConversationId(),
483
+ lifecycle: value,
484
+ });
485
+ next(update);
486
+ try {
487
+ void Promise.resolve(this.#options.onLifecycleDiagnostic?.({
488
+ kind: "socket.lifecycle",
489
+ conversationId: errorConversationId(),
490
+ subscriptionId,
491
+ generation,
492
+ status,
493
+ reconnectAttempt: active.reconnectAttempt,
494
+ ...(joinLatencyMs === undefined ? {} : { joinLatencyMs }),
495
+ ...(recovery === undefined
496
+ ? {}
497
+ : {
498
+ recoveryComplete: recovery.complete,
499
+ ...(recovery.cursor === undefined
500
+ ? {}
501
+ : { recoveryCursor: recovery.cursor }),
502
+ ...(recovery.reason === undefined
503
+ ? {}
504
+ : { recoveryReason: recovery.reason }),
505
+ }),
506
+ })).catch(() => undefined);
507
+ }
508
+ catch {
509
+ // Lifecycle diagnostics are observational.
510
+ }
511
+ };
512
+ const enterAuthRequired = () => {
513
+ active.acceptingEvents = false;
514
+ active.authRequired = true;
515
+ active.terminal = true;
516
+ joinPending = false;
517
+ pendingRealtimeActions.length = 0;
518
+ active.recoveryRevision += 1;
519
+ lifecycle("auth-required");
520
+ try {
521
+ active.socket.disconnect();
522
+ }
523
+ catch {
524
+ // Authentication is already terminal for this subscription episode.
525
+ }
526
+ };
286
527
  const mapAndNext = (invalidMessage, map) => {
287
528
  let update;
288
529
  try {
@@ -295,10 +536,18 @@ export class TFRobotSocketClient {
295
536
  next(update);
296
537
  };
297
538
  let settleEstablishment;
298
- let connectedOnce = false;
299
539
  add("connect", () => {
300
540
  if (!active.active)
301
541
  return;
542
+ if (active.terminal) {
543
+ try {
544
+ active.socket.disconnect();
545
+ }
546
+ catch {
547
+ // Terminal subscriptions never rejoin.
548
+ }
549
+ return;
550
+ }
302
551
  if (settleEstablishment !== undefined &&
303
552
  isGatewayDeadlineExceeded(options, this.#now())) {
304
553
  settleEstablishment({
@@ -307,13 +556,206 @@ export class TFRobotSocketClient {
307
556
  });
308
557
  return;
309
558
  }
310
- const reconnect = connectedOnce;
311
- connectedOnce = true;
559
+ if (joinTimeout !== undefined) {
560
+ clearTimeout(joinTimeout);
561
+ joinTimeout = undefined;
562
+ }
563
+ const reconnect = subscriptionEstablished;
564
+ if (reconnect)
565
+ active.reconnectAttempt += 1;
312
566
  const recoveryRevision = ++active.recoveryRevision;
313
- try {
314
- socket.emit("join_conversation", {
315
- conversation_id: conversationId,
567
+ const runRevision = active.runRevision;
568
+ const joinStartedAt = this.#now();
569
+ active.acceptingEvents = false;
570
+ joinPending = true;
571
+ pendingRealtimeActions.length = 0;
572
+ lifecycle("joining");
573
+ let acknowledgementSettled = false;
574
+ const settleJoin = (...acknowledgementArguments) => {
575
+ if (!active.active ||
576
+ !this.#subscriptions.has(active) ||
577
+ active.recoveryRevision !== recoveryRevision) {
578
+ return;
579
+ }
580
+ if (acknowledgementSettled)
581
+ return;
582
+ acknowledgementSettled = true;
583
+ if (joinTimeout !== undefined) {
584
+ clearTimeout(joinTimeout);
585
+ joinTimeout = undefined;
586
+ }
587
+ let acknowledgement;
588
+ try {
589
+ const rawAcknowledgement = acknowledgementArguments[0];
590
+ acknowledgement = parseJoinAcknowledgement(rawAcknowledgement === undefined || rawAcknowledgement === true
591
+ ? rawAcknowledgement
592
+ : sanitizeCredentialRaw(rawAcknowledgement, credentialValues), reconnect);
593
+ }
594
+ catch {
595
+ acknowledgement = {
596
+ accepted: false,
597
+ recoveryComplete: false,
598
+ rejectionCode: "validation",
599
+ message: "Invalid TFRobot conversation subscription acknowledgement",
600
+ };
601
+ }
602
+ if (!acknowledgement.accepted) {
603
+ joinPending = false;
604
+ pendingRealtimeActions.length = 0;
605
+ const rejectionCode = acknowledgement.rejectionCode ?? "validation";
606
+ const error = this.#error(rejectionCode, acknowledgement.message ??
607
+ "TFRobot conversation subscription was rejected", false, errorConversationId());
608
+ if (settleEstablishment !== undefined) {
609
+ lifecycle("subscription-failed");
610
+ if (rejectionCode === "authentication" ||
611
+ rejectionCode === "authorization") {
612
+ void this.#invalidateSession(error, "rejected");
613
+ }
614
+ settleEstablishment({ ok: false, error });
615
+ }
616
+ else {
617
+ const authenticationRejected = rejectionCode === "authentication" ||
618
+ rejectionCode === "authorization";
619
+ if (authenticationRejected) {
620
+ enterAuthRequired();
621
+ }
622
+ else {
623
+ active.acceptingEvents = false;
624
+ active.terminal = true;
625
+ active.recoveryRevision += 1;
626
+ try {
627
+ active.socket.disconnect();
628
+ }
629
+ catch {
630
+ // Subscription failure is already terminal for this episode.
631
+ }
632
+ lifecycle("subscription-failed");
633
+ }
634
+ report(error, authenticationRejected ? "authentication" : "subscription");
635
+ if (authenticationRejected) {
636
+ void this.#invalidateSession(error, "rejected");
637
+ }
638
+ }
639
+ return;
640
+ }
641
+ if (!reconnect) {
642
+ joinPending = false;
643
+ subscriptionEstablished = true;
644
+ for (const notification of pendingNotifications.splice(0)) {
645
+ if (notification.kind === "update")
646
+ next(notification.update);
647
+ else
648
+ notifyError(notification.error);
649
+ }
650
+ settleEstablishment?.({
651
+ ok: true,
652
+ value: {
653
+ dispose: () => {
654
+ if (!active.active)
655
+ return;
656
+ active.active = false;
657
+ active.cleanup();
658
+ this.#subscriptions.delete(active);
659
+ },
660
+ },
661
+ });
662
+ resolveError("connection");
663
+ resolveError("authentication");
664
+ lifecycle("active", {
665
+ complete: true,
666
+ ...(acknowledgement.cursor === undefined
667
+ ? {}
668
+ : { cursor: acknowledgement.cursor }),
669
+ }, this.#now() - joinStartedAt);
670
+ active.acceptingEvents = true;
671
+ flushRealtime();
672
+ return;
673
+ }
674
+ joinPending = false;
675
+ const joinLatencyMs = this.#now() - joinStartedAt;
676
+ lifecycle("recovering", {
677
+ complete: false,
678
+ ...(acknowledgement.cursor === undefined
679
+ ? {}
680
+ : { cursor: acknowledgement.cursor }),
681
+ ...(acknowledgement.recoveryComplete
682
+ ? {}
683
+ : { reason: "server-replay-contract-unavailable" }),
684
+ }, joinLatencyMs);
685
+ active.acceptingEvents = true;
686
+ flushRealtime();
687
+ void this.#reconcileRunAfterReconnect(active, conversationId, credentialValues, recoveryRevision, runRevision, next, report)
688
+ .then((outcome) => {
689
+ if (outcome === "auth-required") {
690
+ enterAuthRequired();
691
+ return;
692
+ }
693
+ if ((outcome !== "success" && outcome !== "superseded-by-realtime") ||
694
+ !acknowledgement.recoveryComplete) {
695
+ return;
696
+ }
697
+ resolveError("connection");
698
+ resolveError("recovery");
699
+ resolveError("authentication");
700
+ active.manualReconnectAttempted = false;
701
+ active.manualReconnectPending = false;
702
+ active.authRequired = false;
703
+ active.terminal = false;
704
+ lifecycle("active", {
705
+ complete: true,
706
+ ...(acknowledgement.cursor === undefined
707
+ ? {}
708
+ : { cursor: acknowledgement.cursor }),
709
+ }, joinLatencyMs);
710
+ })
711
+ .catch(() => {
712
+ active.acceptingEvents = false;
713
+ active.terminal = true;
714
+ try {
715
+ active.socket.disconnect();
716
+ }
717
+ catch {
718
+ // Offline is already terminal for this subscription episode.
719
+ }
720
+ lifecycle("offline");
721
+ report(this.#error("unknown", "TFRobot reconnect reconciliation failed", true, errorConversationId()), "recovery");
316
722
  });
723
+ };
724
+ const joinDeadlineAt = reconnect
725
+ ? this.#now() + RECONNECT_JOIN_TIMEOUT_MS
726
+ : options.deadlineAt;
727
+ joinTimeout = setTimeout(() => {
728
+ joinTimeout = undefined;
729
+ if (!active.active || active.recoveryRevision !== recoveryRevision) {
730
+ return;
731
+ }
732
+ active.recoveryRevision += 1;
733
+ joinPending = false;
734
+ pendingRealtimeActions.length = 0;
735
+ const error = createGatewayDeadlineExceededError(errorConversationId());
736
+ if (settleEstablishment !== undefined) {
737
+ lifecycle("subscription-failed");
738
+ settleEstablishment({ ok: false, error });
739
+ }
740
+ else {
741
+ if (active.manualReconnectPending)
742
+ enterAuthRequired();
743
+ else {
744
+ active.acceptingEvents = false;
745
+ active.terminal = true;
746
+ lifecycle("subscription-failed");
747
+ }
748
+ report(error, active.manualReconnectPending ? "connection" : "subscription");
749
+ try {
750
+ active.socket.disconnect();
751
+ }
752
+ catch {
753
+ // The failed join attempt is already invalidated.
754
+ }
755
+ }
756
+ }, Math.min(MAX_TIMER_DELAY, Math.max(0, joinDeadlineAt - this.#now())));
757
+ try {
758
+ socket.emit("join_conversation", { conversation_id: conversationId }, settleJoin);
317
759
  }
318
760
  catch (reason) {
319
761
  const error = this.#transportError(reason, "Unable to join the TFRobot conversation", conversationId, credentialValues);
@@ -321,112 +763,97 @@ export class TFRobotSocketClient {
321
763
  settleEstablishment({ ok: false, error });
322
764
  }
323
765
  else {
324
- report(error);
766
+ report(error, "subscription");
325
767
  active.active = false;
326
768
  active.cleanup();
327
- if (this.#active === active)
328
- this.#active = undefined;
769
+ this.#subscriptions.delete(active);
329
770
  }
330
771
  return;
331
772
  }
332
- if (settleEstablishment !== undefined &&
333
- isGatewayDeadlineExceeded(options, this.#now())) {
334
- settleEstablishment({
335
- ok: false,
336
- error: createGatewayDeadlineExceededError(errorConversationId()),
337
- });
338
- return;
339
- }
340
- settleEstablishment?.({
341
- ok: true,
342
- value: {
343
- dispose: () => {
344
- if (!active.active)
345
- return;
346
- active.active = false;
347
- active.cleanup();
348
- if (this.#active === active)
349
- this.#active = undefined;
350
- },
351
- },
352
- });
353
- if (reconnect) {
354
- void this.#reconcileRunAfterReconnect(active, conversationId, credentialValues, recoveryRevision, next, report).catch(() => {
355
- report(this.#error("unknown", "TFRobot reconnect reconciliation failed", true, errorConversationId()));
356
- });
357
- }
358
773
  });
359
774
  add("chat_message", (payload) => {
360
- if (belongsToForeignConversation(payload, conversationId))
361
- return;
362
- const parsed = messageDtoSchema.safeParse(sanitizePayload(payload));
363
- if (!parsed.success) {
364
- report(this.#error("validation", "Invalid TFRobot chat_message payload", false, errorConversationId()));
365
- return;
366
- }
367
- mapAndNext("TFRobot chat_message could not be normalized", () => mapMessageUpdate(parsed.data));
775
+ dispatchRealtime(() => {
776
+ if (belongsToForeignConversation(payload, conversationId))
777
+ return;
778
+ const parsed = messageDtoSchema.safeParse(sanitizePayload(payload));
779
+ if (!parsed.success) {
780
+ report(this.#error("validation", "Invalid TFRobot chat_message payload", false, errorConversationId()));
781
+ return;
782
+ }
783
+ mapAndNext("TFRobot chat_message could not be normalized", () => mapMessageUpdate(parsed.data));
784
+ });
368
785
  });
369
786
  add("chat_event", (payload) => {
370
- if (belongsToForeignConversation(payload, conversationId))
371
- return;
372
- const parsed = eventDtoSchema.safeParse(sanitizePayload(payload));
373
- if (!parsed.success) {
374
- report(this.#error("validation", "Invalid TFRobot chat_event payload", false, errorConversationId()));
375
- return;
376
- }
377
- mapAndNext("TFRobot chat_event could not be normalized", () => mapEventUpdate(parsed.data));
787
+ dispatchRealtime(() => {
788
+ if (belongsToForeignConversation(payload, conversationId))
789
+ return;
790
+ const parsed = eventDtoSchema.safeParse(sanitizePayload(payload));
791
+ if (!parsed.success) {
792
+ report(this.#error("validation", "Invalid TFRobot chat_event payload", false, errorConversationId()));
793
+ return;
794
+ }
795
+ mapAndNext("TFRobot chat_event could not be normalized", () => mapEventUpdate(parsed.data));
796
+ });
378
797
  });
379
798
  add("conversation_state_changed", (payload) => {
380
- if (belongsToForeignConversation(payload, conversationId))
381
- return;
382
- const parsed = stateChangedDtoSchema.safeParse(sanitizePayload(payload));
383
- if (!parsed.success) {
384
- report(this.#error("validation", "Invalid TFRobot conversation_state_changed payload", false, errorConversationId()));
385
- return;
386
- }
387
- const targetConversationId = String(parsed.data.conversationId);
388
- if (targetConversationId !== conversationId &&
389
- targetConversationId !== errorConversationId()) {
390
- return;
391
- }
392
- active.recoveryRevision += 1;
393
- mapAndNext("TFRobot run state could not be normalized", () => {
394
- const run = mapRun(targetConversationId, {
395
- working: parsed.data.state === "working",
396
- taskId: parsed.data.taskId,
397
- });
398
- this.#runs.set(targetConversationId, run);
399
- return chatUpdateSchema.parse({
400
- kind: "run.replace",
401
- conversationId: targetConversationId,
402
- run,
799
+ dispatchRealtime(() => {
800
+ if (belongsToForeignConversation(payload, conversationId))
801
+ return;
802
+ const parsed = stateChangedDtoSchema.safeParse(sanitizePayload(payload));
803
+ if (!parsed.success) {
804
+ report(this.#error("validation", "Invalid TFRobot conversation_state_changed payload", false, errorConversationId()));
805
+ return;
806
+ }
807
+ const targetConversationId = String(parsed.data.conversationId);
808
+ if (targetConversationId !== conversationId &&
809
+ targetConversationId !== errorConversationId()) {
810
+ return;
811
+ }
812
+ active.runRevision += 1;
813
+ mapAndNext("TFRobot run state could not be normalized", () => {
814
+ const run = mapRun(targetConversationId, {
815
+ working: parsed.data.state === "working",
816
+ taskId: parsed.data.taskId,
817
+ });
818
+ this.#runs.set(targetConversationId, run);
819
+ return chatUpdateSchema.parse({
820
+ kind: "run.replace",
821
+ conversationId: targetConversationId,
822
+ run,
823
+ });
403
824
  });
404
825
  });
405
826
  });
406
827
  add("chat_error", (payload) => {
407
- if (belongsToForeignConversation(payload, conversationId))
408
- return;
409
- const parsed = chatErrorEventDtoSchema.safeParse(sanitizePayload(payload));
410
- if (!parsed.success) {
411
- report(this.#error("validation", "Invalid TFRobot chat_error payload", false, errorConversationId()));
412
- return;
413
- }
414
- const targetConversationId = String(parsed.data.conversationId);
415
- if (targetConversationId !== conversationId &&
416
- targetConversationId !== errorConversationId()) {
417
- return;
418
- }
419
- report(this.#error("server", typeof parsed.data.error === "string"
420
- ? parsed.data.error
421
- : "TFRobot run failed", false, targetConversationId, parsed.data, credentialValues));
828
+ dispatchRealtime(() => {
829
+ if (belongsToForeignConversation(payload, conversationId))
830
+ return;
831
+ const parsed = chatErrorEventDtoSchema.safeParse(sanitizePayload(payload));
832
+ if (!parsed.success) {
833
+ report(this.#error("validation", "Invalid TFRobot chat_error payload", false, errorConversationId()));
834
+ return;
835
+ }
836
+ const targetConversationId = String(parsed.data.conversationId);
837
+ if (targetConversationId !== conversationId &&
838
+ targetConversationId !== errorConversationId()) {
839
+ return;
840
+ }
841
+ report(this.#error("server", typeof parsed.data.error === "string"
842
+ ? parsed.data.error
843
+ : "TFRobot run failed", false, targetConversationId, parsed.data, credentialValues), "domain");
844
+ });
422
845
  });
423
846
  add("error", (payload) => {
424
- const parsed = socketProtocolErrorDtoSchema.safeParse(sanitizePayload(payload));
425
- report(this.#error("validation", parsed.success && typeof parsed.data.message === "string"
426
- ? parsed.data.message
427
- : "TFRobot Socket protocol error", false, conversationId, undefined, credentialValues));
847
+ dispatchRealtime(() => {
848
+ const parsed = socketProtocolErrorDtoSchema.safeParse(sanitizePayload(payload));
849
+ report(this.#error("validation", parsed.success && typeof parsed.data.message === "string"
850
+ ? parsed.data.message
851
+ : "TFRobot Socket protocol error", false, conversationId, undefined, credentialValues));
852
+ });
428
853
  });
429
854
  add("connect_error", (reason) => {
855
+ if (!active.active || active.terminal)
856
+ return;
430
857
  const injectedError = chatErrorSchema.safeParse(reason);
431
858
  const rejectionCode = socketAuthRejectionCode(reason);
432
859
  const error = authenticationFailure !== undefined
@@ -448,23 +875,82 @@ export class TFRobotSocketClient {
448
875
  settleEstablishment({ ok: false, error });
449
876
  return;
450
877
  }
451
- report(error);
878
+ if (active.manualReconnectPending) {
879
+ enterAuthRequired();
880
+ report(error, error.code === "authentication" || error.code === "authorization"
881
+ ? "authentication"
882
+ : "connection");
883
+ return;
884
+ }
885
+ if (error.code === "authentication" || error.code === "authorization") {
886
+ enterAuthRequired();
887
+ }
888
+ report(error, error.code === "authentication" || error.code === "authorization"
889
+ ? "authentication"
890
+ : "connection");
452
891
  });
453
892
  add("disconnect", (reason) => {
454
893
  if (reason === "io client disconnect")
455
894
  return;
895
+ if (active.terminal)
896
+ return;
897
+ active.acceptingEvents = false;
898
+ joinPending = false;
899
+ pendingRealtimeActions.length = 0;
900
+ if (joinTimeout !== undefined) {
901
+ clearTimeout(joinTimeout);
902
+ joinTimeout = undefined;
903
+ }
456
904
  active.recoveryRevision += 1;
905
+ lifecycle("reconnecting");
457
906
  const injectedError = chatErrorSchema.safeParse(reason);
458
907
  report(injectedError.success
459
908
  ? sanitizeCredentialError(injectedError.data, credentialValues)
460
- : this.#error("network", `TFRobot Socket disconnected: ${String(reason)}`, true, conversationId, undefined, credentialValues));
461
- });
462
- const anyListener = (eventName, payload) => {
463
- if (KNOWN_EVENTS.has(eventName))
909
+ : this.#error("network", `TFRobot Socket disconnected: ${String(reason)}`, true, conversationId, undefined, credentialValues), "connection");
910
+ if (reason !== "io server disconnect")
464
911
  return;
465
- if (belongsToForeignConversation(payload, conversationId))
912
+ if (active.manualReconnectAttempted) {
913
+ enterAuthRequired();
466
914
  return;
467
- mapAndNext("Unknown TFRobot Socket event could not be normalized", () => mapUnknownSocketEvent(sanitizeCredentialText(eventName, credentialValues), sanitizePayload(payload), errorConversationId(), this.#now()));
915
+ }
916
+ active.manualReconnectAttempted = true;
917
+ active.manualReconnectPending = true;
918
+ const invalidationRevision = active.recoveryRevision;
919
+ const invalidationError = this.#error("authentication", "TFRobot Socket session was invalidated by the server", true, errorConversationId());
920
+ void awaitBounded(() => this.#invalidateSession(invalidationError, "unknown"), {
921
+ deadlineAt: this.#now() + RECONNECT_AUTH_TIMEOUT_MS,
922
+ now: this.#now,
923
+ signal: connectionAbort.signal,
924
+ }).then((outcome) => {
925
+ if (!active.active ||
926
+ active.socket.connected ||
927
+ active.authRequired ||
928
+ !active.manualReconnectPending ||
929
+ active.recoveryRevision !== invalidationRevision) {
930
+ return;
931
+ }
932
+ if (outcome.kind !== "value" || !outcome.value) {
933
+ report(this.#error("authentication", "Unable to invalidate the TFRobot Socket session", false, errorConversationId()), "authentication");
934
+ enterAuthRequired();
935
+ return;
936
+ }
937
+ try {
938
+ active.socket.connect();
939
+ }
940
+ catch (reconnectError) {
941
+ report(this.#transportError(reconnectError, "Unable to reconnect the TFRobot Socket transport", conversationId, credentialValues), "authentication");
942
+ enterAuthRequired();
943
+ }
944
+ });
945
+ });
946
+ const anyListener = (eventName, payload) => {
947
+ dispatchRealtime(() => {
948
+ if (KNOWN_EVENTS.has(eventName))
949
+ return;
950
+ if (belongsToForeignConversation(payload, conversationId))
951
+ return;
952
+ mapAndNext("Unknown TFRobot Socket event could not be normalized", () => mapUnknownSocketEvent(sanitizeCredentialText(eventName, credentialValues), sanitizePayload(payload), errorConversationId(), this.#now()));
953
+ });
468
954
  };
469
955
  if (setupFailure === undefined) {
470
956
  try {
@@ -476,6 +962,10 @@ export class TFRobotSocketClient {
476
962
  }
477
963
  const cleanup = () => {
478
964
  connectionAbort.abort();
965
+ if (joinTimeout !== undefined) {
966
+ clearTimeout(joinTimeout);
967
+ joinTimeout = undefined;
968
+ }
479
969
  for (const [eventName, listener] of listeners) {
480
970
  try {
481
971
  socket.off(eventName, listener);
@@ -498,6 +988,8 @@ export class TFRobotSocketClient {
498
988
  }
499
989
  firstAuth = undefined;
500
990
  credentialValues.clear();
991
+ pendingNotifications.length = 0;
992
+ pendingRealtimeActions.length = 0;
501
993
  };
502
994
  if (setupFailure !== undefined) {
503
995
  const error = this.#transportError(setupFailure.reason, "Unable to configure the TFRobot Socket transport", conversationId, credentialValues);
@@ -508,7 +1000,9 @@ export class TFRobotSocketClient {
508
1000
  };
509
1001
  }
510
1002
  const active = {
1003
+ acceptingEvents: true,
511
1004
  active: true,
1005
+ authRequired: false,
512
1006
  cancelEstablishment: () => {
513
1007
  settleEstablishment?.({
514
1008
  ok: false,
@@ -517,11 +1011,19 @@ export class TFRobotSocketClient {
517
1011
  },
518
1012
  cleanup,
519
1013
  conversationId,
1014
+ generation,
1015
+ manualReconnectAttempted: false,
1016
+ manualReconnectPending: false,
520
1017
  observer,
1018
+ reconnectAttempt: 0,
521
1019
  recoveryRevision: 0,
1020
+ runRevision: 0,
522
1021
  socket,
1022
+ subscriptionId,
1023
+ terminal: false,
523
1024
  };
524
- this.#active = active;
1025
+ this.#subscriptions.add(active);
1026
+ this.#establishing = active;
525
1027
  return new Promise((resolve) => {
526
1028
  let settled = false;
527
1029
  const settle = (result) => {
@@ -529,12 +1031,16 @@ export class TFRobotSocketClient {
529
1031
  return;
530
1032
  settled = true;
531
1033
  settleEstablishment = undefined;
1034
+ if (this.#establishmentAbort === establishmentAbort) {
1035
+ this.#establishmentAbort = undefined;
1036
+ }
1037
+ if (this.#establishing === active)
1038
+ this.#establishing = undefined;
532
1039
  clearTimeout(timeout);
533
1040
  if (!result.ok) {
534
1041
  active.active = false;
535
1042
  active.cleanup();
536
- if (this.#active === active)
537
- this.#active = undefined;
1043
+ this.#subscriptions.delete(active);
538
1044
  }
539
1045
  resolve(result);
540
1046
  };
@@ -553,6 +1059,7 @@ export class TFRobotSocketClient {
553
1059
  return;
554
1060
  }
555
1061
  try {
1062
+ lifecycle("connecting");
556
1063
  socket.connect();
557
1064
  }
558
1065
  catch (reason) {
@@ -574,7 +1081,12 @@ export class TFRobotSocketClient {
574
1081
  if (this.#disposed)
575
1082
  return;
576
1083
  this.#disposed = true;
577
- this.#deactivateCurrent();
1084
+ this.#cancelEstablishment();
1085
+ for (const subscription of this.#subscriptions) {
1086
+ subscription.active = false;
1087
+ subscription.cleanup();
1088
+ }
1089
+ this.#subscriptions.clear();
578
1090
  this.#runs.clear();
579
1091
  }
580
1092
  rememberRun(conversationId, run) {
@@ -582,16 +1094,11 @@ export class TFRobotSocketClient {
582
1094
  return;
583
1095
  this.#runs.set(conversationId, run);
584
1096
  }
585
- #deactivateCurrent() {
1097
+ #cancelEstablishment() {
586
1098
  this.#establishmentAbort?.abort();
587
1099
  this.#establishmentAbort = undefined;
588
- const current = this.#active;
589
- if (current === undefined)
590
- return;
591
- current.cancelEstablishment();
592
- current.active = false;
593
- current.cleanup();
594
- this.#active = undefined;
1100
+ this.#establishing?.cancelEstablishment();
1101
+ this.#establishing = undefined;
595
1102
  }
596
1103
  #defaultNamespaceUrl(baseUrl) {
597
1104
  const url = new URL(baseUrl);
@@ -611,17 +1118,28 @@ export class TFRobotSocketClient {
611
1118
  }
612
1119
  return authOf(session);
613
1120
  }
614
- async #reconcileRunAfterReconnect(active, conversationId, credentialValues, recoveryRevision, next, report) {
1121
+ async #reconcileRunAfterReconnect(active, conversationId, credentialValues, recoveryRevision, runRevision, next, report) {
615
1122
  const result = await this.#reconnectStatusLoader(conversationId);
616
1123
  if (!active.active ||
617
- this.#active !== active ||
1124
+ !this.#subscriptions.has(active) ||
618
1125
  !active.socket.connected ||
619
1126
  active.recoveryRevision !== recoveryRevision) {
620
- return;
1127
+ return "failure";
621
1128
  }
622
1129
  if (!result.ok) {
623
- report(sanitizeCredentialError(result.error, credentialValues));
624
- return;
1130
+ const error = sanitizeCredentialError(result.error, credentialValues);
1131
+ if (error.code === "authentication" || error.code === "authorization") {
1132
+ report(error, "authentication");
1133
+ return "auth-required";
1134
+ }
1135
+ if (active.runRevision !== runRevision) {
1136
+ return "superseded-by-realtime";
1137
+ }
1138
+ report(error, "recovery");
1139
+ return "failure";
1140
+ }
1141
+ if (active.runRevision !== runRevision) {
1142
+ return "superseded-by-realtime";
625
1143
  }
626
1144
  try {
627
1145
  const updateConversationId = sanitizeCredentialText(conversationId, credentialValues);
@@ -629,16 +1147,18 @@ export class TFRobotSocketClient {
629
1147
  const run = mapRun(updateConversationId, safeStatus);
630
1148
  const previous = this.#runs.get(conversationId);
631
1149
  this.#runs.set(conversationId, run);
632
- if (sameRun(previous, run))
633
- return;
634
- next(chatUpdateSchema.parse({
635
- kind: "run.replace",
636
- conversationId: updateConversationId,
637
- run,
638
- }));
1150
+ if (!sameRun(previous, run)) {
1151
+ next(chatUpdateSchema.parse({
1152
+ kind: "run.replace",
1153
+ conversationId: updateConversationId,
1154
+ run,
1155
+ }));
1156
+ }
1157
+ return "success";
639
1158
  }
640
1159
  catch {
641
- report(this.#error("validation", "Reconnected TFRobot run status could not be normalized", false, conversationId, undefined, credentialValues));
1160
+ report(this.#error("validation", "Reconnected TFRobot run status could not be normalized", false, conversationId, undefined, credentialValues), "recovery");
1161
+ return "failure";
642
1162
  }
643
1163
  }
644
1164
  async #invalidateSession(error, reason) {
@@ -647,9 +1167,10 @@ export class TFRobotSocketClient {
647
1167
  reason: reason ?? (error.code === "authorization" ? "forbidden" : "expired"),
648
1168
  error,
649
1169
  });
1170
+ return true;
650
1171
  }
651
1172
  catch {
652
- // Host refresh/login failures must not replace the Socket error.
1173
+ return false;
653
1174
  }
654
1175
  }
655
1176
  #transportError(reason, fallback, conversationId, credentialValues = []) {
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ChatError, MaybePromise, SessionProvider } from "@turingfocus/chat-protocol";
1
+ import type { ChatError, ChatLifecycleStatus, MaybePromise, SessionProvider } from "@turingfocus/chat-protocol";
2
2
  export type TFRobotSession = {
3
3
  readonly kind: "admin";
4
4
  readonly adminKey: string;
@@ -36,12 +36,24 @@ export interface TFRobotSocket {
36
36
  readonly connected: boolean;
37
37
  connect(): void;
38
38
  disconnect(): void;
39
- emit(eventName: string, payload?: unknown): unknown;
39
+ emit(eventName: string, ...arguments_: unknown[]): unknown;
40
40
  off(eventName: string, listener: TFRobotSocketListener): unknown;
41
41
  offAny?(listener: TFRobotSocketAnyListener): unknown;
42
42
  on(eventName: string, listener: TFRobotSocketListener): unknown;
43
43
  onAny?(listener: TFRobotSocketAnyListener): unknown;
44
44
  }
45
+ export interface TFRobotLifecycleDiagnostic {
46
+ readonly kind: "socket.lifecycle";
47
+ readonly conversationId: string;
48
+ readonly subscriptionId: string;
49
+ readonly generation: number;
50
+ readonly status: ChatLifecycleStatus;
51
+ readonly reconnectAttempt: number;
52
+ readonly joinLatencyMs?: number | undefined;
53
+ readonly recoveryComplete?: boolean | undefined;
54
+ readonly recoveryCursor?: string | undefined;
55
+ readonly recoveryReason?: string | undefined;
56
+ }
45
57
  export interface TFRobotSocketFactoryInput {
46
58
  readonly getAuth: () => Promise<TFRobotSocketAuth>;
47
59
  readonly namespaceUrl: string;
@@ -68,5 +80,7 @@ export interface TFRobotGatewayOptions {
68
80
  * credentials, headers and raw Session values are never supplied.
69
81
  */
70
82
  readonly onDiagnostic?: ((error: ChatError) => MaybePromise<void>) | undefined;
83
+ /** Sanitized lifecycle telemetry; credentials and raw payloads are excluded. */
84
+ readonly onLifecycleDiagnostic?: ((diagnostic: TFRobotLifecycleDiagnostic) => MaybePromise<void>) | undefined;
71
85
  }
72
86
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAc,EACW,EAAE;IAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAgC,CAAC;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ;QACjC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC5E,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO;YACzB,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ;YACvC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAc,EACW,EAAE;IAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAgC,CAAC;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ;QACjC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC5E,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO;YACzB,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ;YACvC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turingfocus/chat-gateway-tfrobot",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "TFRobotServer REST and realtime gateway adapter",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@turingfocus/chat-protocol": "^0.5.0",
31
+ "@turingfocus/chat-protocol": "^0.6.0",
32
32
  "socket.io-client": "4.8.3",
33
33
  "zod": "4.0.17"
34
34
  },