@langchain/langgraph-sdk 1.11.1 → 1.12.0-rc.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/client/base.cjs +7 -0
- package/dist/client/base.cjs.map +1 -1
- package/dist/client/base.d.cts.map +1 -1
- package/dist/client/base.d.ts.map +1 -1
- package/dist/client/base.js +7 -0
- package/dist/client/base.js.map +1 -1
- package/dist/client/stream/messages.cjs +54 -17
- package/dist/client/stream/messages.cjs.map +1 -1
- package/dist/client/stream/messages.d.cts +3 -0
- package/dist/client/stream/messages.d.cts.map +1 -1
- package/dist/client/stream/messages.d.ts +3 -0
- package/dist/client/stream/messages.d.ts.map +1 -1
- package/dist/client/stream/messages.js +54 -17
- package/dist/client/stream/messages.js.map +1 -1
- package/dist/stream/assembled-to-message.cjs +42 -8
- package/dist/stream/assembled-to-message.cjs.map +1 -1
- package/dist/stream/assembled-to-message.d.cts +11 -0
- package/dist/stream/assembled-to-message.d.cts.map +1 -1
- package/dist/stream/assembled-to-message.d.ts +11 -0
- package/dist/stream/assembled-to-message.d.ts.map +1 -1
- package/dist/stream/assembled-to-message.js +42 -8
- package/dist/stream/assembled-to-message.js.map +1 -1
- package/dist/stream/controller.cjs +39 -10
- package/dist/stream/controller.cjs.map +1 -1
- package/dist/stream/controller.d.cts +7 -6
- package/dist/stream/controller.d.cts.map +1 -1
- package/dist/stream/controller.d.ts +7 -6
- package/dist/stream/controller.d.ts.map +1 -1
- package/dist/stream/controller.js +37 -8
- package/dist/stream/controller.js.map +1 -1
- package/dist/stream/dispatch-config.cjs +23 -0
- package/dist/stream/dispatch-config.cjs.map +1 -0
- package/dist/stream/dispatch-config.js +23 -0
- package/dist/stream/dispatch-config.js.map +1 -0
- package/dist/stream/index.d.cts +1 -1
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/lifecycle-loading-tracker.cjs +8 -0
- package/dist/stream/lifecycle-loading-tracker.cjs.map +1 -1
- package/dist/stream/lifecycle-loading-tracker.js +8 -0
- package/dist/stream/lifecycle-loading-tracker.js.map +1 -1
- package/dist/stream/queue-adapter-agent-server.cjs +204 -0
- package/dist/stream/queue-adapter-agent-server.cjs.map +1 -0
- package/dist/stream/queue-adapter-agent-server.js +203 -0
- package/dist/stream/queue-adapter-agent-server.js.map +1 -0
- package/dist/stream/queue-adapter-local.cjs +50 -0
- package/dist/stream/queue-adapter-local.cjs.map +1 -0
- package/dist/stream/queue-adapter-local.js +49 -0
- package/dist/stream/queue-adapter-local.js.map +1 -0
- package/dist/stream/queue-adapter.cjs +7 -0
- package/dist/stream/queue-adapter.cjs.map +1 -0
- package/dist/stream/{submit-coordinator.d.cts → queue-adapter.d.cts} +6 -9
- package/dist/stream/queue-adapter.d.cts.map +1 -0
- package/dist/stream/queue-adapter.d.ts +24 -0
- package/dist/stream/queue-adapter.d.ts.map +1 -0
- package/dist/stream/queue-adapter.js +7 -0
- package/dist/stream/queue-adapter.js.map +1 -0
- package/dist/stream/submit-coordinator.cjs +82 -86
- package/dist/stream/submit-coordinator.cjs.map +1 -1
- package/dist/stream/submit-coordinator.d.ts +1 -26
- package/dist/stream/submit-coordinator.js +82 -85
- package/dist/stream/submit-coordinator.js.map +1 -1
- package/dist/stream/types.d.cts +25 -4
- package/dist/stream/types.d.cts.map +1 -1
- package/dist/stream/types.d.ts +25 -4
- package/dist/stream/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/stream/submit-coordinator.d.cts.map +0 -1
- package/dist/stream/submit-coordinator.d.ts.map +0 -1
|
@@ -16,6 +16,7 @@ const require_message_metadata_tracker = require("./message-metadata-tracker.cjs
|
|
|
16
16
|
const require_lifecycle_loading_tracker = require("./lifecycle-loading-tracker.cjs");
|
|
17
17
|
const require_root_message_projection = require("./root-message-projection.cjs");
|
|
18
18
|
const require_optimistic_input = require("./optimistic-input.cjs");
|
|
19
|
+
const require_queue_adapter = require("./queue-adapter.cjs");
|
|
19
20
|
const require_submit_coordinator = require("./submit-coordinator.cjs");
|
|
20
21
|
const require_tool_calls = require("./tool-calls.cjs");
|
|
21
22
|
let _langchain_core_utils_uuid = require("@langchain/core/utils/uuid");
|
|
@@ -300,10 +301,11 @@ var StreamController = class {
|
|
|
300
301
|
});
|
|
301
302
|
this.#lifecycleLoading = new require_lifecycle_loading_tracker.LifecycleLoadingTracker({
|
|
302
303
|
store: this.rootStore,
|
|
303
|
-
isDisposed: () => this.#disposed
|
|
304
|
+
isDisposed: () => this.#disposed,
|
|
305
|
+
onSettled: () => this.#submitter.scheduleQueueDrainOnObservedIdle()
|
|
304
306
|
});
|
|
305
307
|
this.messageMetadataStore = this.#messageMetadata.store;
|
|
306
|
-
this.queueStore = new require_store.StreamStore(
|
|
308
|
+
this.queueStore = new require_store.StreamStore(require_queue_adapter.EMPTY_QUEUE);
|
|
307
309
|
this.#submitter = new require_submit_coordinator.SubmitCoordinator({
|
|
308
310
|
options: this.#options,
|
|
309
311
|
rootStore: this.rootStore,
|
|
@@ -454,7 +456,7 @@ var StreamController = class {
|
|
|
454
456
|
* thread so dispatching them against the new thread would be
|
|
455
457
|
* surprising. Mirrors the legacy `StreamOrchestrator` behaviour.
|
|
456
458
|
*/
|
|
457
|
-
this.queueStore.setState(() =>
|
|
459
|
+
this.queueStore.setState(() => require_queue_adapter.EMPTY_QUEUE);
|
|
458
460
|
await teardown;
|
|
459
461
|
}
|
|
460
462
|
if (this.#currentThreadId == null) {
|
|
@@ -488,6 +490,7 @@ var StreamController = class {
|
|
|
488
490
|
let threadExists = false;
|
|
489
491
|
let threadMissing = false;
|
|
490
492
|
let threadActive = true;
|
|
493
|
+
let hasActiveInterrupts = false;
|
|
491
494
|
try {
|
|
492
495
|
const state = await this.#fetchHydrationState();
|
|
493
496
|
if (this.#disposed || this.#currentThreadId !== hydratedThreadId) return;
|
|
@@ -575,6 +578,7 @@ var StreamController = class {
|
|
|
575
578
|
if (Array.isArray(state?.tasks)) {
|
|
576
579
|
const generationAtFetch = this.#submitGeneration;
|
|
577
580
|
const { activeInterrupts, activeIds } = collectActiveInterruptsFromTasks(state.tasks);
|
|
581
|
+
hasActiveInterrupts = activeInterrupts.length > 0;
|
|
578
582
|
for (const id of activeIds) this.#resolvedInterrupts.delete(id);
|
|
579
583
|
this.rootStore.setState((s) => ({
|
|
580
584
|
...s,
|
|
@@ -631,6 +635,15 @@ var StreamController = class {
|
|
|
631
635
|
*/
|
|
632
636
|
const thread = this.#ensureThread(hydratedThreadId, !threadActive);
|
|
633
637
|
/**
|
|
638
|
+
* Picks up runs pending from before this page load, or another tab.
|
|
639
|
+
* Fire-and-forget. Must run after `#ensureThread` above, not before:
|
|
640
|
+
* `AgentServerQueueAdapter`'s own `getThread` callback also calls
|
|
641
|
+
* `#ensureThread(threadId, true)`, which would otherwise create
|
|
642
|
+
* `#thread` with the pump deferred before the line above decides it
|
|
643
|
+
* should be eager.
|
|
644
|
+
*/
|
|
645
|
+
this.#submitter.hydrateQueue(hydratedThreadId);
|
|
646
|
+
/**
|
|
634
647
|
* Start the wildcard lifecycle watcher up-front for existing,
|
|
635
648
|
* active threads. The root content pump runs at `depth: 1`, which
|
|
636
649
|
* covers root-namespace and one-deep events but not arbitrarily-
|
|
@@ -645,7 +658,21 @@ var StreamController = class {
|
|
|
645
658
|
* against a not-yet-existent thread; `submitRun` / `respondInput`
|
|
646
659
|
* call `startLifecycleWatcher` on first submission instead.
|
|
647
660
|
*/
|
|
648
|
-
if (threadExists && threadActive)
|
|
661
|
+
if (threadExists && threadActive) {
|
|
662
|
+
thread.startLifecycleWatcher();
|
|
663
|
+
/**
|
|
664
|
+
* Seed `isLoading` from the checkpoint itself, not just a live
|
|
665
|
+
* lifecycle event: a subscriber that joins after a foreign run's
|
|
666
|
+
* own `running` event already fired would otherwise never observe
|
|
667
|
+
* it. Excludes a thread merely parked at an interrupt — that's
|
|
668
|
+
* waiting on a human, not "loading", matching
|
|
669
|
+
* `LifecycleLoadingTracker`'s own `interrupted → isLoading = false`.
|
|
670
|
+
*/
|
|
671
|
+
if (threadActive && !hasActiveInterrupts) this.rootStore.setState((s) => s.isLoading ? s : {
|
|
672
|
+
...s,
|
|
673
|
+
isLoading: true
|
|
674
|
+
});
|
|
675
|
+
}
|
|
649
676
|
if (threadExists) {
|
|
650
677
|
/**
|
|
651
678
|
* Seed subgraph discovery and promote subagent execution
|
|
@@ -937,10 +964,10 @@ var StreamController = class {
|
|
|
937
964
|
* Cancel a queued submission by id. Returns `true` when the entry
|
|
938
965
|
* was found and removed, `false` otherwise.
|
|
939
966
|
*
|
|
940
|
-
*
|
|
941
|
-
*
|
|
942
|
-
*
|
|
943
|
-
*
|
|
967
|
+
* Removes the client-side entry either way; also issues a server-side
|
|
968
|
+
* cancel when the configured queue adapter is server-backed (see
|
|
969
|
+
* `AgentServerAdapter.serverQueue`). A no-op for the default,
|
|
970
|
+
* client-only adapter.
|
|
944
971
|
*
|
|
945
972
|
* @param id - Client-side queue entry id to remove.
|
|
946
973
|
*/
|
|
@@ -948,7 +975,8 @@ var StreamController = class {
|
|
|
948
975
|
return this.#submitter.cancelQueued(id);
|
|
949
976
|
}
|
|
950
977
|
/**
|
|
951
|
-
* Drop every queued submission.
|
|
978
|
+
* Drop every queued submission. Cancels the underlying server-side
|
|
979
|
+
* runs too when the configured queue adapter is server-backed.
|
|
952
980
|
*/
|
|
953
981
|
async clearQueue() {
|
|
954
982
|
await this.#submitter.clearQueue();
|
|
@@ -1323,7 +1351,8 @@ var StreamController = class {
|
|
|
1323
1351
|
this.#interruptReplayThroughSeq = void 0;
|
|
1324
1352
|
this.#pendingHydrationInterruptEvents = [];
|
|
1325
1353
|
this.#discardPendingInterruptEvents();
|
|
1326
|
-
this.queueStore.setState(() =>
|
|
1354
|
+
this.queueStore.setState(() => require_queue_adapter.EMPTY_QUEUE);
|
|
1355
|
+
this.#submitter.detachQueue();
|
|
1327
1356
|
try {
|
|
1328
1357
|
await subscription?.unsubscribe();
|
|
1329
1358
|
} catch {}
|