@langchain/langgraph-sdk 1.10.3-rc.2 → 1.11.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 (43) 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/stream/controller.cjs +32 -4
  30. package/dist/stream/controller.cjs.map +1 -1
  31. package/dist/stream/controller.js +32 -4
  32. package/dist/stream/controller.js.map +1 -1
  33. package/dist/stream/types.d.cts +5 -0
  34. package/dist/stream/types.d.cts.map +1 -1
  35. package/dist/stream/types.d.ts +5 -0
  36. package/dist/stream/types.d.ts.map +1 -1
  37. package/dist/utils/reconnect.cjs.map +1 -1
  38. package/dist/utils/reconnect.d.cts +18 -0
  39. package/dist/utils/reconnect.d.cts.map +1 -0
  40. package/dist/utils/reconnect.d.ts +18 -0
  41. package/dist/utils/reconnect.d.ts.map +1 -0
  42. package/dist/utils/reconnect.js.map +1 -1
  43. package/package.json +2 -2
@@ -1217,7 +1217,10 @@ var StreamController = class {
1217
1217
  * still required.
1218
1218
  */
1219
1219
  #ensureThread(threadId, deferRootPump = false) {
1220
- if (this.#thread != null) return this.#thread;
1220
+ if (this.#thread != null) {
1221
+ if (!deferRootPump && !this.#rootPumpDeferred && this.#rootPump == null) this.#startRootPump(this.#thread);
1222
+ return this.#thread;
1223
+ }
1221
1224
  this.#thread = this.#options.client.threads.stream(threadId, {
1222
1225
  assistantId: this.#options.assistantId,
1223
1226
  transport: this.#options.transport,
@@ -1226,7 +1229,8 @@ var StreamController = class {
1226
1229
  maxReconnectAttempts: this.#options.maxReconnectAttempts,
1227
1230
  streamIdleReconnect: this.#options.streamIdleReconnect,
1228
1231
  reconnectDelayMs: this.#options.reconnectDelayMs,
1229
- onReconnect: this.#options.onReconnect
1232
+ onReconnect: this.#options.onReconnect,
1233
+ onConnected: this.#options.onConnected
1230
1234
  });
1231
1235
  this.registry.bind(this.#thread);
1232
1236
  if (deferRootPump) {
@@ -1369,6 +1373,7 @@ var StreamController = class {
1369
1373
  error,
1370
1374
  isLoading: false
1371
1375
  }));
1376
+ this.#rootSubscription?.close();
1372
1377
  });
1373
1378
  /**
1374
1379
  * Persistent isLoading driver. Drives `isLoading` from
@@ -1380,7 +1385,7 @@ var StreamController = class {
1380
1385
  */
1381
1386
  this.#rootEventListeners.add(this.#lifecycleLoading.listener);
1382
1387
  this.#rootEventListeners.add(this.#runLifecycleListener);
1383
- this.#rootPump = (async () => {
1388
+ const pump = (async () => {
1384
1389
  try {
1385
1390
  /**
1386
1391
  * Root content pump: depth 1 is required because the controller
@@ -1471,7 +1476,15 @@ var StreamController = class {
1471
1476
  } catch {}
1472
1477
  }
1473
1478
  if (this.#disposed || pumpGeneration !== this.#rootPumpGeneration) break;
1474
- if (!subscription.isPaused) break;
1479
+ if (!subscription.isPaused) {
1480
+ const snapshot = this.rootStore.getSnapshot();
1481
+ if (snapshot.isLoading && snapshot.error == null) this.rootStore.setState((s) => ({
1482
+ ...s,
1483
+ error: /* @__PURE__ */ new Error("Thread event stream closed before the active run completed."),
1484
+ isLoading: false
1485
+ }));
1486
+ break;
1487
+ }
1475
1488
  await subscription.waitForResume();
1476
1489
  }
1477
1490
  } catch {
@@ -1479,6 +1492,21 @@ var StreamController = class {
1479
1492
  resolveReady = void 0;
1480
1493
  }
1481
1494
  })();
1495
+ this.#rootPump = pump;
1496
+ pump.finally(() => {
1497
+ if (pumpGeneration !== this.#rootPumpGeneration) return;
1498
+ if (this.#rootPump !== pump) return;
1499
+ this.#rootPumpGeneration += 1;
1500
+ this.#rootSubscription = void 0;
1501
+ this.#rootPump = void 0;
1502
+ this.#rootPumpReady = void 0;
1503
+ this.#threadEventUnsubscribe?.();
1504
+ this.#threadEventUnsubscribe = void 0;
1505
+ this.#threadErrorUnsubscribe?.();
1506
+ this.#threadErrorUnsubscribe = void 0;
1507
+ this.#rootEventListeners.delete(this.#lifecycleLoading.listener);
1508
+ this.#rootEventListeners.delete(this.#runLifecycleListener);
1509
+ });
1482
1510
  }
1483
1511
  /**
1484
1512
  * Handle an event delivered via {@link ThreadStream.onEvent}.