@langchain/langgraph-sdk 1.10.3-rc.2 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/client/stream/transport/http.cjs +9 -2
  2. package/dist/client/stream/transport/http.cjs.map +1 -1
  3. package/dist/client/stream/transport/http.d.cts +1 -0
  4. package/dist/client/stream/transport/http.d.cts.map +1 -1
  5. package/dist/client/stream/transport/http.d.ts +1 -0
  6. package/dist/client/stream/transport/http.d.ts.map +1 -1
  7. package/dist/client/stream/transport/http.js +9 -2
  8. package/dist/client/stream/transport/http.js.map +1 -1
  9. package/dist/client/stream/transport/types.d.cts +9 -12
  10. package/dist/client/stream/transport/types.d.cts.map +1 -1
  11. package/dist/client/stream/transport/types.d.ts +9 -12
  12. package/dist/client/stream/transport/types.d.ts.map +1 -1
  13. package/dist/client/stream/transport/websocket.cjs +15 -3
  14. package/dist/client/stream/transport/websocket.cjs.map +1 -1
  15. package/dist/client/stream/transport/websocket.d.cts +1 -0
  16. package/dist/client/stream/transport/websocket.d.cts.map +1 -1
  17. package/dist/client/stream/transport/websocket.d.ts +1 -0
  18. package/dist/client/stream/transport/websocket.d.ts.map +1 -1
  19. package/dist/client/stream/transport/websocket.js +15 -3
  20. package/dist/client/stream/transport/websocket.js.map +1 -1
  21. package/dist/client/stream/types.d.cts +5 -7
  22. package/dist/client/stream/types.d.cts.map +1 -1
  23. package/dist/client/stream/types.d.ts +5 -7
  24. package/dist/client/stream/types.d.ts.map +1 -1
  25. package/dist/client/threads/index.cjs +2 -1
  26. package/dist/client/threads/index.cjs.map +1 -1
  27. package/dist/client/threads/index.js +2 -1
  28. package/dist/client/threads/index.js.map +1 -1
  29. package/dist/schema.d.cts +5 -0
  30. package/dist/schema.d.cts.map +1 -1
  31. package/dist/schema.d.ts +5 -0
  32. package/dist/schema.d.ts.map +1 -1
  33. package/dist/stream/controller.cjs +32 -4
  34. package/dist/stream/controller.cjs.map +1 -1
  35. package/dist/stream/controller.js +32 -4
  36. package/dist/stream/controller.js.map +1 -1
  37. package/dist/stream/types.d.cts +5 -0
  38. package/dist/stream/types.d.cts.map +1 -1
  39. package/dist/stream/types.d.ts +5 -0
  40. package/dist/stream/types.d.ts.map +1 -1
  41. package/dist/utils/reconnect.cjs.map +1 -1
  42. package/dist/utils/reconnect.d.cts +18 -0
  43. package/dist/utils/reconnect.d.cts.map +1 -0
  44. package/dist/utils/reconnect.d.ts +18 -0
  45. package/dist/utils/reconnect.d.ts.map +1 -0
  46. package/dist/utils/reconnect.js.map +1 -1
  47. package/package.json +2 -2
@@ -1218,7 +1218,10 @@ var StreamController = class {
1218
1218
  * still required.
1219
1219
  */
1220
1220
  #ensureThread(threadId, deferRootPump = false) {
1221
- if (this.#thread != null) return this.#thread;
1221
+ if (this.#thread != null) {
1222
+ if (!deferRootPump && !this.#rootPumpDeferred && this.#rootPump == null) this.#startRootPump(this.#thread);
1223
+ return this.#thread;
1224
+ }
1222
1225
  this.#thread = this.#options.client.threads.stream(threadId, {
1223
1226
  assistantId: this.#options.assistantId,
1224
1227
  transport: this.#options.transport,
@@ -1227,7 +1230,8 @@ var StreamController = class {
1227
1230
  maxReconnectAttempts: this.#options.maxReconnectAttempts,
1228
1231
  streamIdleReconnect: this.#options.streamIdleReconnect,
1229
1232
  reconnectDelayMs: this.#options.reconnectDelayMs,
1230
- onReconnect: this.#options.onReconnect
1233
+ onReconnect: this.#options.onReconnect,
1234
+ onConnected: this.#options.onConnected
1231
1235
  });
1232
1236
  this.registry.bind(this.#thread);
1233
1237
  if (deferRootPump) {
@@ -1370,6 +1374,7 @@ var StreamController = class {
1370
1374
  error,
1371
1375
  isLoading: false
1372
1376
  }));
1377
+ this.#rootSubscription?.close();
1373
1378
  });
1374
1379
  /**
1375
1380
  * Persistent isLoading driver. Drives `isLoading` from
@@ -1381,7 +1386,7 @@ var StreamController = class {
1381
1386
  */
1382
1387
  this.#rootEventListeners.add(this.#lifecycleLoading.listener);
1383
1388
  this.#rootEventListeners.add(this.#runLifecycleListener);
1384
- this.#rootPump = (async () => {
1389
+ const pump = (async () => {
1385
1390
  try {
1386
1391
  /**
1387
1392
  * Root content pump: depth 1 is required because the controller
@@ -1472,7 +1477,15 @@ var StreamController = class {
1472
1477
  } catch {}
1473
1478
  }
1474
1479
  if (this.#disposed || pumpGeneration !== this.#rootPumpGeneration) break;
1475
- if (!subscription.isPaused) break;
1480
+ if (!subscription.isPaused) {
1481
+ const snapshot = this.rootStore.getSnapshot();
1482
+ if (snapshot.isLoading && snapshot.error == null) this.rootStore.setState((s) => ({
1483
+ ...s,
1484
+ error: /* @__PURE__ */ new Error("Thread event stream closed before the active run completed."),
1485
+ isLoading: false
1486
+ }));
1487
+ break;
1488
+ }
1476
1489
  await subscription.waitForResume();
1477
1490
  }
1478
1491
  } catch {
@@ -1480,6 +1493,21 @@ var StreamController = class {
1480
1493
  resolveReady = void 0;
1481
1494
  }
1482
1495
  })();
1496
+ this.#rootPump = pump;
1497
+ pump.finally(() => {
1498
+ if (pumpGeneration !== this.#rootPumpGeneration) return;
1499
+ if (this.#rootPump !== pump) return;
1500
+ this.#rootPumpGeneration += 1;
1501
+ this.#rootSubscription = void 0;
1502
+ this.#rootPump = void 0;
1503
+ this.#rootPumpReady = void 0;
1504
+ this.#threadEventUnsubscribe?.();
1505
+ this.#threadEventUnsubscribe = void 0;
1506
+ this.#threadErrorUnsubscribe?.();
1507
+ this.#threadErrorUnsubscribe = void 0;
1508
+ this.#rootEventListeners.delete(this.#lifecycleLoading.listener);
1509
+ this.#rootEventListeners.delete(this.#runLifecycleListener);
1510
+ });
1483
1511
  }
1484
1512
  /**
1485
1513
  * Handle an event delivered via {@link ThreadStream.onEvent}.