@langchain/langgraph-sdk 1.8.10 → 1.9.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.
- package/README.md +90 -43
- package/dist/client/assistants/index.cjs +180 -0
- package/dist/client/assistants/index.cjs.map +1 -0
- package/dist/client/assistants/index.d.cts +155 -0
- package/dist/client/assistants/index.d.cts.map +1 -0
- package/dist/client/assistants/index.d.ts +155 -0
- package/dist/client/assistants/index.d.ts.map +1 -0
- package/dist/client/assistants/index.js +180 -0
- package/dist/client/assistants/index.js.map +1 -0
- package/dist/client/base.cjs +190 -0
- package/dist/client/base.cjs.map +1 -0
- package/dist/client/base.d.cts +84 -0
- package/dist/client/base.d.cts.map +1 -0
- package/dist/client/base.d.ts +84 -0
- package/dist/client/base.d.ts.map +1 -0
- package/dist/client/base.js +188 -0
- package/dist/client/base.js.map +1 -0
- package/dist/client/crons/index.cjs +159 -0
- package/dist/client/crons/index.cjs.map +1 -0
- package/dist/client/crons/index.d.cts +71 -0
- package/dist/client/crons/index.d.cts.map +1 -0
- package/dist/client/crons/index.d.ts +71 -0
- package/dist/client/crons/index.d.ts.map +1 -0
- package/dist/client/crons/index.js +159 -0
- package/dist/client/crons/index.js.map +1 -0
- package/dist/client/index.cjs +84 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.cts +63 -0
- package/dist/client/index.d.cts.map +1 -0
- package/dist/client/index.d.ts +63 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +83 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/runs/index.cjs +275 -0
- package/dist/client/runs/index.cjs.map +1 -0
- package/dist/client/runs/index.d.cts +123 -0
- package/dist/client/runs/index.d.cts.map +1 -0
- package/dist/client/runs/index.d.ts +123 -0
- package/dist/client/runs/index.d.ts.map +1 -0
- package/dist/client/runs/index.js +275 -0
- package/dist/client/runs/index.js.map +1 -0
- package/dist/client/store/index.cjs +128 -0
- package/dist/client/store/index.cjs.map +1 -0
- package/dist/client/store/index.d.cts +75 -0
- package/dist/client/store/index.d.cts.map +1 -0
- package/dist/client/store/index.d.ts +75 -0
- package/dist/client/store/index.d.ts.map +1 -0
- package/dist/client/store/index.js +128 -0
- package/dist/client/store/index.js.map +1 -0
- package/dist/client/stream/error.cjs +18 -0
- package/dist/client/stream/error.cjs.map +1 -0
- package/dist/client/stream/error.d.cts +14 -0
- package/dist/client/stream/error.d.cts.map +1 -0
- package/dist/client/stream/error.d.ts +14 -0
- package/dist/client/stream/error.d.ts.map +1 -0
- package/dist/client/stream/error.js +18 -0
- package/dist/client/stream/error.js.map +1 -0
- package/dist/client/stream/handles/index.cjs +3 -0
- package/dist/client/stream/handles/index.d.ts +3 -0
- package/dist/client/stream/handles/index.js +4 -0
- package/dist/client/stream/handles/subagents.cjs +263 -0
- package/dist/client/stream/handles/subagents.cjs.map +1 -0
- package/dist/client/stream/handles/subagents.d.cts +45 -0
- package/dist/client/stream/handles/subagents.d.cts.map +1 -0
- package/dist/client/stream/handles/subagents.d.ts +45 -0
- package/dist/client/stream/handles/subagents.d.ts.map +1 -0
- package/dist/client/stream/handles/subagents.js +262 -0
- package/dist/client/stream/handles/subagents.js.map +1 -0
- package/dist/client/stream/handles/subgraphs.cjs +352 -0
- package/dist/client/stream/handles/subgraphs.cjs.map +1 -0
- package/dist/client/stream/handles/subgraphs.d.cts +82 -0
- package/dist/client/stream/handles/subgraphs.d.cts.map +1 -0
- package/dist/client/stream/handles/subgraphs.d.ts +82 -0
- package/dist/client/stream/handles/subgraphs.d.ts.map +1 -0
- package/dist/client/stream/handles/subgraphs.js +351 -0
- package/dist/client/stream/handles/subgraphs.js.map +1 -0
- package/dist/client/stream/handles/tools.cjs +92 -0
- package/dist/client/stream/handles/tools.cjs.map +1 -0
- package/dist/client/stream/handles/tools.d.cts +26 -0
- package/dist/client/stream/handles/tools.d.cts.map +1 -0
- package/dist/client/stream/handles/tools.d.ts +26 -0
- package/dist/client/stream/handles/tools.d.ts.map +1 -0
- package/dist/client/stream/handles/tools.js +92 -0
- package/dist/client/stream/handles/tools.js.map +1 -0
- package/dist/client/stream/index.cjs +1368 -0
- package/dist/client/stream/index.cjs.map +1 -0
- package/dist/client/stream/index.d.cts +238 -0
- package/dist/client/stream/index.d.cts.map +1 -0
- package/dist/client/stream/index.d.ts +238 -0
- package/dist/client/stream/index.d.ts.map +1 -0
- package/dist/client/stream/index.js +1367 -0
- package/dist/client/stream/index.js.map +1 -0
- package/dist/client/stream/media.cjs +506 -0
- package/dist/client/stream/media.cjs.map +1 -0
- package/dist/client/stream/media.d.cts +164 -0
- package/dist/client/stream/media.d.cts.map +1 -0
- package/dist/client/stream/media.d.ts +164 -0
- package/dist/client/stream/media.d.ts.map +1 -0
- package/dist/client/stream/media.js +505 -0
- package/dist/client/stream/media.js.map +1 -0
- package/dist/client/stream/messages.cjs +635 -0
- package/dist/client/stream/messages.cjs.map +1 -0
- package/dist/client/stream/messages.d.cts +139 -0
- package/dist/client/stream/messages.d.cts.map +1 -0
- package/dist/client/stream/messages.d.ts +139 -0
- package/dist/client/stream/messages.d.ts.map +1 -0
- package/dist/client/stream/messages.js +631 -0
- package/dist/client/stream/messages.js.map +1 -0
- package/dist/client/stream/multi-cursor-buffer.cjs +55 -0
- package/dist/client/stream/multi-cursor-buffer.cjs.map +1 -0
- package/dist/client/stream/multi-cursor-buffer.js +55 -0
- package/dist/client/stream/multi-cursor-buffer.js.map +1 -0
- package/dist/client/stream/subscription.cjs +85 -0
- package/dist/client/stream/subscription.cjs.map +1 -0
- package/dist/client/stream/subscription.d.cts +22 -0
- package/dist/client/stream/subscription.d.cts.map +1 -0
- package/dist/client/stream/subscription.d.ts +22 -0
- package/dist/client/stream/subscription.d.ts.map +1 -0
- package/dist/client/stream/subscription.js +84 -0
- package/dist/client/stream/subscription.js.map +1 -0
- package/dist/client/stream/transport/agent-server.cjs +45 -0
- package/dist/client/stream/transport/agent-server.cjs.map +1 -0
- package/dist/client/stream/transport/agent-server.d.cts +39 -0
- package/dist/client/stream/transport/agent-server.d.cts.map +1 -0
- package/dist/client/stream/transport/agent-server.d.ts +39 -0
- package/dist/client/stream/transport/agent-server.d.ts.map +1 -0
- package/dist/client/stream/transport/agent-server.js +45 -0
- package/dist/client/stream/transport/agent-server.js.map +1 -0
- package/dist/client/stream/transport/constants.cjs +10 -0
- package/dist/client/stream/transport/constants.cjs.map +1 -0
- package/dist/client/stream/transport/constants.js +10 -0
- package/dist/client/stream/transport/constants.js.map +1 -0
- package/dist/client/stream/transport/decoder.cjs +115 -0
- package/dist/client/stream/transport/decoder.cjs.map +1 -0
- package/dist/client/stream/transport/decoder.js +114 -0
- package/dist/client/stream/transport/decoder.js.map +1 -0
- package/dist/client/stream/transport/http.cjs +183 -0
- package/dist/client/stream/transport/http.cjs.map +1 -0
- package/dist/client/stream/transport/http.d.cts +45 -0
- package/dist/client/stream/transport/http.d.cts.map +1 -0
- package/dist/client/stream/transport/http.d.ts +45 -0
- package/dist/client/stream/transport/http.d.ts.map +1 -0
- package/dist/client/stream/transport/http.js +183 -0
- package/dist/client/stream/transport/http.js.map +1 -0
- package/dist/client/stream/transport/index.cjs +3 -0
- package/dist/client/stream/transport/index.js +4 -0
- package/dist/client/stream/transport/queue.cjs +55 -0
- package/dist/client/stream/transport/queue.cjs.map +1 -0
- package/dist/client/stream/transport/queue.js +55 -0
- package/dist/client/stream/transport/queue.js.map +1 -0
- package/dist/client/stream/transport/stream.cjs +79 -0
- package/dist/client/stream/transport/stream.cjs.map +1 -0
- package/dist/client/stream/transport/stream.js +79 -0
- package/dist/client/stream/transport/stream.js.map +1 -0
- package/dist/client/stream/transport/types.d.cts +29 -0
- package/dist/client/stream/transport/types.d.cts.map +1 -0
- package/dist/client/stream/transport/types.d.ts +29 -0
- package/dist/client/stream/transport/types.d.ts.map +1 -0
- package/dist/client/stream/transport/utils.cjs +45 -0
- package/dist/client/stream/transport/utils.cjs.map +1 -0
- package/dist/client/stream/transport/utils.js +39 -0
- package/dist/client/stream/transport/utils.js.map +1 -0
- package/dist/client/stream/transport/websocket.cjs +155 -0
- package/dist/client/stream/transport/websocket.cjs.map +1 -0
- package/dist/client/stream/transport/websocket.d.cts +36 -0
- package/dist/client/stream/transport/websocket.d.cts.map +1 -0
- package/dist/client/stream/transport/websocket.d.ts +36 -0
- package/dist/client/stream/transport/websocket.d.ts.map +1 -0
- package/dist/client/stream/transport/websocket.js +155 -0
- package/dist/client/stream/transport/websocket.js.map +1 -0
- package/dist/client/stream/transport.d.cts +104 -0
- package/dist/client/stream/transport.d.cts.map +1 -0
- package/dist/client/stream/transport.d.ts +104 -0
- package/dist/client/stream/transport.d.ts.map +1 -0
- package/dist/client/stream/types.d.cts +208 -0
- package/dist/client/stream/types.d.cts.map +1 -0
- package/dist/client/stream/types.d.ts +208 -0
- package/dist/client/stream/types.d.ts.map +1 -0
- package/dist/client/threads/index.cjs +271 -0
- package/dist/client/threads/index.cjs.map +1 -0
- package/dist/client/threads/index.d.cts +235 -0
- package/dist/client/threads/index.d.cts.map +1 -0
- package/dist/client/threads/index.d.ts +235 -0
- package/dist/client/threads/index.d.ts.map +1 -0
- package/dist/client/threads/index.js +270 -0
- package/dist/client/threads/index.js.map +1 -0
- package/dist/client/ui-internal/index.cjs +29 -0
- package/dist/client/ui-internal/index.cjs.map +1 -0
- package/dist/client/ui-internal/index.d.cts +11 -0
- package/dist/client/ui-internal/index.d.cts.map +1 -0
- package/dist/client/ui-internal/index.d.ts +11 -0
- package/dist/client/ui-internal/index.d.ts.map +1 -0
- package/dist/client/ui-internal/index.js +29 -0
- package/dist/client/ui-internal/index.js.map +1 -0
- package/dist/client.cjs +35 -1308
- package/dist/client.d.cts +19 -857
- package/dist/client.d.ts +19 -857
- package/dist/client.js +16 -1301
- package/dist/index.cjs +25 -4
- package/dist/index.d.cts +15 -3
- package/dist/index.d.ts +15 -3
- package/dist/index.js +14 -3
- package/dist/react/stream.cjs.map +1 -1
- package/dist/react/stream.custom.cjs +1 -1
- package/dist/react/stream.custom.js +1 -1
- package/dist/react/stream.d.cts +2 -1
- package/dist/react/stream.d.cts.map +1 -1
- package/dist/react/stream.d.ts +2 -1
- package/dist/react/stream.d.ts.map +1 -1
- package/dist/react/stream.js.map +1 -1
- package/dist/react/stream.lgp.cjs +6 -5
- package/dist/react/stream.lgp.cjs.map +1 -1
- package/dist/react/stream.lgp.js +4 -3
- package/dist/react/stream.lgp.js.map +1 -1
- package/dist/react/types.d.cts +1 -1
- package/dist/react/types.d.ts +1 -1
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react-ui/server/server.cjs +1 -1
- package/dist/react-ui/server/server.cjs.map +1 -1
- package/dist/react-ui/server/server.js +1 -1
- package/dist/react-ui/server/server.js.map +1 -1
- package/dist/react-ui/types.cjs.map +1 -1
- package/dist/react-ui/types.d.cts +1 -1
- package/dist/react-ui/types.d.cts.map +1 -1
- package/dist/react-ui/types.d.ts +1 -1
- package/dist/react-ui/types.d.ts.map +1 -1
- package/dist/react-ui/types.js.map +1 -1
- package/dist/stream/assembled-to-message.cjs +121 -0
- package/dist/stream/assembled-to-message.cjs.map +1 -0
- package/dist/stream/assembled-to-message.d.cts +35 -0
- package/dist/stream/assembled-to-message.d.cts.map +1 -0
- package/dist/stream/assembled-to-message.d.ts +35 -0
- package/dist/stream/assembled-to-message.d.ts.map +1 -0
- package/dist/stream/assembled-to-message.js +119 -0
- package/dist/stream/assembled-to-message.js.map +1 -0
- package/dist/stream/channel-registry.cjs +224 -0
- package/dist/stream/channel-registry.cjs.map +1 -0
- package/dist/stream/channel-registry.d.cts +102 -0
- package/dist/stream/channel-registry.d.cts.map +1 -0
- package/dist/stream/channel-registry.d.ts +102 -0
- package/dist/stream/channel-registry.d.ts.map +1 -0
- package/dist/stream/channel-registry.js +224 -0
- package/dist/stream/channel-registry.js.map +1 -0
- package/dist/stream/constants.cjs +11 -0
- package/dist/stream/constants.cjs.map +1 -0
- package/dist/stream/constants.d.cts +10 -0
- package/dist/stream/constants.d.cts.map +1 -0
- package/dist/stream/constants.d.ts +10 -0
- package/dist/stream/constants.d.ts.map +1 -0
- package/dist/stream/constants.js +11 -0
- package/dist/stream/constants.js.map +1 -0
- package/dist/stream/controller.cjs +933 -0
- package/dist/stream/controller.cjs.map +1 -0
- package/dist/stream/controller.d.cts +135 -0
- package/dist/stream/controller.d.cts.map +1 -0
- package/dist/stream/controller.d.ts +135 -0
- package/dist/stream/controller.d.ts.map +1 -0
- package/dist/stream/controller.js +910 -0
- package/dist/stream/controller.js.map +1 -0
- package/dist/stream/discovery/index.d.ts +2 -0
- package/dist/stream/discovery/subagents.cjs +235 -0
- package/dist/stream/discovery/subagents.cjs.map +1 -0
- package/dist/stream/discovery/subagents.d.cts +18 -0
- package/dist/stream/discovery/subagents.d.cts.map +1 -0
- package/dist/stream/discovery/subagents.d.ts +18 -0
- package/dist/stream/discovery/subagents.d.ts.map +1 -0
- package/dist/stream/discovery/subagents.js +235 -0
- package/dist/stream/discovery/subagents.js.map +1 -0
- package/dist/stream/discovery/subgraphs.cjs +153 -0
- package/dist/stream/discovery/subgraphs.cjs.map +1 -0
- package/dist/stream/discovery/subgraphs.d.cts +19 -0
- package/dist/stream/discovery/subgraphs.d.cts.map +1 -0
- package/dist/stream/discovery/subgraphs.d.ts +19 -0
- package/dist/stream/discovery/subgraphs.d.ts.map +1 -0
- package/dist/stream/discovery/subgraphs.js +153 -0
- package/dist/stream/discovery/subgraphs.js.map +1 -0
- package/dist/stream/index.cjs +36 -0
- package/dist/stream/index.d.cts +25 -0
- package/dist/stream/index.d.ts +25 -0
- package/dist/stream/index.js +16 -0
- package/dist/stream/lifecycle-loading-tracker.cjs +83 -0
- package/dist/stream/lifecycle-loading-tracker.cjs.map +1 -0
- package/dist/stream/lifecycle-loading-tracker.js +83 -0
- package/dist/stream/lifecycle-loading-tracker.js.map +1 -0
- package/dist/stream/message-metadata-tracker.cjs +165 -0
- package/dist/stream/message-metadata-tracker.cjs.map +1 -0
- package/dist/stream/message-metadata-tracker.d.cts +24 -0
- package/dist/stream/message-metadata-tracker.d.cts.map +1 -0
- package/dist/stream/message-metadata-tracker.d.ts +24 -0
- package/dist/stream/message-metadata-tracker.d.ts.map +1 -0
- package/dist/stream/message-metadata-tracker.js +165 -0
- package/dist/stream/message-metadata-tracker.js.map +1 -0
- package/dist/stream/message-reconciliation.cjs +118 -0
- package/dist/stream/message-reconciliation.cjs.map +1 -0
- package/dist/stream/message-reconciliation.js +115 -0
- package/dist/stream/message-reconciliation.js.map +1 -0
- package/dist/stream/namespace.cjs +54 -0
- package/dist/stream/namespace.cjs.map +1 -0
- package/dist/stream/namespace.js +49 -0
- package/dist/stream/namespace.js.map +1 -0
- package/dist/stream/projections/channel.cjs +53 -0
- package/dist/stream/projections/channel.cjs.map +1 -0
- package/dist/stream/projections/channel.d.cts +22 -0
- package/dist/stream/projections/channel.d.cts.map +1 -0
- package/dist/stream/projections/channel.d.ts +22 -0
- package/dist/stream/projections/channel.d.ts.map +1 -0
- package/dist/stream/projections/channel.js +53 -0
- package/dist/stream/projections/channel.js.map +1 -0
- package/dist/stream/projections/extension.cjs +29 -0
- package/dist/stream/projections/extension.cjs.map +1 -0
- package/dist/stream/projections/extension.d.cts +7 -0
- package/dist/stream/projections/extension.d.cts.map +1 -0
- package/dist/stream/projections/extension.d.ts +7 -0
- package/dist/stream/projections/extension.d.ts.map +1 -0
- package/dist/stream/projections/extension.js +29 -0
- package/dist/stream/projections/extension.js.map +1 -0
- package/dist/stream/projections/index.cjs +6 -0
- package/dist/stream/projections/index.d.ts +6 -0
- package/dist/stream/projections/index.js +7 -0
- package/dist/stream/projections/media.cjs +81 -0
- package/dist/stream/projections/media.cjs.map +1 -0
- package/dist/stream/projections/media.d.cts +18 -0
- package/dist/stream/projections/media.d.cts.map +1 -0
- package/dist/stream/projections/media.d.ts +18 -0
- package/dist/stream/projections/media.d.ts.map +1 -0
- package/dist/stream/projections/media.js +78 -0
- package/dist/stream/projections/media.js.map +1 -0
- package/dist/stream/projections/messages.cjs +121 -0
- package/dist/stream/projections/messages.cjs.map +1 -0
- package/dist/stream/projections/messages.d.cts +8 -0
- package/dist/stream/projections/messages.d.cts.map +1 -0
- package/dist/stream/projections/messages.d.ts +8 -0
- package/dist/stream/projections/messages.d.ts.map +1 -0
- package/dist/stream/projections/messages.js +121 -0
- package/dist/stream/projections/messages.js.map +1 -0
- package/dist/stream/projections/runtime.cjs +44 -0
- package/dist/stream/projections/runtime.cjs.map +1 -0
- package/dist/stream/projections/runtime.js +44 -0
- package/dist/stream/projections/runtime.js.map +1 -0
- package/dist/stream/projections/tool-calls.cjs +50 -0
- package/dist/stream/projections/tool-calls.cjs.map +1 -0
- package/dist/stream/projections/tool-calls.d.cts +8 -0
- package/dist/stream/projections/tool-calls.d.cts.map +1 -0
- package/dist/stream/projections/tool-calls.d.ts +8 -0
- package/dist/stream/projections/tool-calls.d.ts.map +1 -0
- package/dist/stream/projections/tool-calls.js +50 -0
- package/dist/stream/projections/tool-calls.js.map +1 -0
- package/dist/stream/projections/values.cjs +52 -0
- package/dist/stream/projections/values.cjs.map +1 -0
- package/dist/stream/projections/values.d.cts +7 -0
- package/dist/stream/projections/values.d.cts.map +1 -0
- package/dist/stream/projections/values.d.ts +6 -0
- package/dist/stream/projections/values.d.ts.map +1 -0
- package/dist/stream/projections/values.js +52 -0
- package/dist/stream/projections/values.js.map +1 -0
- package/dist/stream/root-message-projection.cjs +256 -0
- package/dist/stream/root-message-projection.cjs.map +1 -0
- package/dist/stream/root-message-projection.js +256 -0
- package/dist/stream/root-message-projection.js.map +1 -0
- package/dist/stream/store.cjs +32 -0
- package/dist/stream/store.cjs.map +1 -0
- package/dist/stream/store.d.cts +37 -0
- package/dist/stream/store.d.cts.map +1 -0
- package/dist/stream/store.d.ts +37 -0
- package/dist/stream/store.d.ts.map +1 -0
- package/dist/stream/store.js +32 -0
- package/dist/stream/store.js.map +1 -0
- package/dist/stream/submit-coordinator.cjs +399 -0
- package/dist/stream/submit-coordinator.cjs.map +1 -0
- package/dist/stream/submit-coordinator.d.cts +27 -0
- package/dist/stream/submit-coordinator.d.cts.map +1 -0
- package/dist/stream/submit-coordinator.d.ts +27 -0
- package/dist/stream/submit-coordinator.d.ts.map +1 -0
- package/dist/stream/submit-coordinator.js +397 -0
- package/dist/stream/submit-coordinator.js.map +1 -0
- package/dist/stream/tool-calls.cjs +15 -0
- package/dist/stream/tool-calls.cjs.map +1 -0
- package/dist/stream/tool-calls.js +15 -0
- package/dist/stream/tool-calls.js.map +1 -0
- package/dist/stream/types-inference.d.cts +43 -0
- package/dist/stream/types-inference.d.cts.map +1 -0
- package/dist/stream/types-inference.d.ts +43 -0
- package/dist/stream/types-inference.d.ts.map +1 -0
- package/dist/stream/types.d.cts +354 -0
- package/dist/stream/types.d.cts.map +1 -0
- package/dist/stream/types.d.ts +354 -0
- package/dist/stream/types.d.ts.map +1 -0
- package/dist/types.d.cts +2 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/index.cjs +1 -1
- package/dist/ui/index.d.cts +3 -3
- package/dist/ui/index.d.ts +3 -3
- package/dist/ui/index.js +1 -1
- package/dist/ui/manager.cjs +1 -1
- package/dist/ui/manager.js +1 -1
- package/dist/ui/messages.cjs +50 -7
- package/dist/ui/messages.cjs.map +1 -1
- package/dist/ui/messages.d.cts.map +1 -1
- package/dist/ui/messages.d.ts.map +1 -1
- package/dist/ui/messages.js +51 -9
- package/dist/ui/messages.js.map +1 -1
- package/dist/ui/orchestrator-custom.cjs +1 -1
- package/dist/ui/orchestrator-custom.js +1 -1
- package/dist/ui/orchestrator.cjs +2 -2
- package/dist/ui/orchestrator.d.cts +1 -1
- package/dist/ui/orchestrator.d.ts +1 -1
- package/dist/ui/orchestrator.d.ts.map +1 -1
- package/dist/ui/orchestrator.js +2 -2
- package/dist/ui/stream/agent.d.cts +1 -1
- package/dist/ui/stream/agent.d.cts.map +1 -1
- package/dist/ui/stream/agent.d.ts +1 -1
- package/dist/ui/stream/agent.d.ts.map +1 -1
- package/dist/ui/stream/base.d.cts +7 -6
- package/dist/ui/stream/base.d.cts.map +1 -1
- package/dist/ui/stream/base.d.ts +7 -6
- package/dist/ui/stream/base.d.ts.map +1 -1
- package/dist/ui/stream/deep-agent.d.cts +1 -1
- package/dist/ui/stream/deep-agent.d.cts.map +1 -1
- package/dist/ui/stream/deep-agent.d.ts +1 -1
- package/dist/ui/stream/deep-agent.d.ts.map +1 -1
- package/dist/ui/stream/index.d.cts +4 -4
- package/dist/ui/stream/index.d.cts.map +1 -1
- package/dist/ui/stream/index.d.ts +4 -4
- package/dist/ui/stream/index.d.ts.map +1 -1
- package/dist/ui/types.d.cts +3 -2
- package/dist/ui/types.d.cts.map +1 -1
- package/dist/ui/types.d.ts +2 -1
- package/dist/ui/types.d.ts.map +1 -1
- package/package.json +18 -8
- package/dist/client.cjs.map +0 -1
- package/dist/client.d.cts.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Command, CommandResponse, ErrorResponse, Message, SubscribeParams } from "@langchain/protocol";
|
|
2
|
+
|
|
3
|
+
//#region src/client/stream/transport.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Handle returned by {@link TransportAdapter.openEventStream} representing
|
|
6
|
+
* a single filtered SSE connection.
|
|
7
|
+
*
|
|
8
|
+
* The `ready` promise resolves once the underlying connection is
|
|
9
|
+
* established (response headers received), letting callers ensure the
|
|
10
|
+
* subscription is active server-side before proceeding.
|
|
11
|
+
*/
|
|
12
|
+
interface EventStreamHandle {
|
|
13
|
+
events: AsyncIterable<Message>;
|
|
14
|
+
ready: Promise<void>;
|
|
15
|
+
close(): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Transport abstraction implemented by concrete client transports such as
|
|
19
|
+
* WebSocket or SSE adapters.
|
|
20
|
+
*
|
|
21
|
+
* In the thread-centric protocol, transports are bound to a specific
|
|
22
|
+
* thread at construction time — the thread ID is part of the connection URL.
|
|
23
|
+
*/
|
|
24
|
+
interface TransportAdapter {
|
|
25
|
+
/**
|
|
26
|
+
* Thread ID this transport is bound to.
|
|
27
|
+
*/
|
|
28
|
+
readonly threadId: string;
|
|
29
|
+
/**
|
|
30
|
+
* Opens the underlying connection (e.g. WebSocket handshake).
|
|
31
|
+
* For HTTP/SSE transports this is a no-op.
|
|
32
|
+
*/
|
|
33
|
+
open(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Sends a command and optionally returns an immediate response.
|
|
36
|
+
*
|
|
37
|
+
* @param command - Protocol command to send over the transport.
|
|
38
|
+
*/
|
|
39
|
+
send(command: Command): Promise<CommandResponse | ErrorResponse | void>;
|
|
40
|
+
/**
|
|
41
|
+
* Streams incoming protocol messages from the remote peer.
|
|
42
|
+
* Used by WebSocket transports where all events share one connection.
|
|
43
|
+
*/
|
|
44
|
+
events(): AsyncIterable<Message>;
|
|
45
|
+
/**
|
|
46
|
+
* Opens an independent filtered SSE event stream.
|
|
47
|
+
* Each call creates a new server connection with the given filter.
|
|
48
|
+
* Returns `undefined` when the transport does not support per-subscription
|
|
49
|
+
* streams (e.g. WebSocket), in which case the caller should fall back to
|
|
50
|
+
* command-based subscriptions over {@link events}.
|
|
51
|
+
*/
|
|
52
|
+
openEventStream?(params: SubscribeParams): EventStreamHandle;
|
|
53
|
+
/**
|
|
54
|
+
* Shuts down the transport and releases any underlying resources.
|
|
55
|
+
*/
|
|
56
|
+
close(): Promise<void>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Public v1 name for {@link TransportAdapter} plus optional high-level
|
|
60
|
+
* capabilities. Renamed to reflect that this interface now denotes the
|
|
61
|
+
* full agent-server protocol contract (not merely wire transport):
|
|
62
|
+
* any object that satisfies it can back a `useStream` call. See
|
|
63
|
+
* `plan-custom-transport.md` §4 for the rollout.
|
|
64
|
+
*
|
|
65
|
+
* The extra optional methods let adapters surface thread state and
|
|
66
|
+
* history without the framework needing to issue a parallel HTTP
|
|
67
|
+
* request — `useStream.hydrate()` calls `getState?()` when present
|
|
68
|
+
* and falls back to `client.threads.getState` otherwise. Adapters
|
|
69
|
+
* that don't know how to produce these values can simply omit them.
|
|
70
|
+
*
|
|
71
|
+
* The legacy `TransportAdapter` export is retained for back-compat and
|
|
72
|
+
* resolves to the same structural type; new code should prefer
|
|
73
|
+
* `AgentServerAdapter`.
|
|
74
|
+
*/
|
|
75
|
+
interface AgentServerAdapter extends TransportAdapter {
|
|
76
|
+
/**
|
|
77
|
+
* Fetch the latest checkpointed state for the bound thread. When
|
|
78
|
+
* the adapter doesn't expose state (e.g. a purely event-replay
|
|
79
|
+
* backend), leave this undefined — the framework will skip
|
|
80
|
+
* hydration.
|
|
81
|
+
*/
|
|
82
|
+
getState?<StateType = unknown>(): Promise<{
|
|
83
|
+
values: StateType;
|
|
84
|
+
checkpoint?: {
|
|
85
|
+
checkpoint_id?: string;
|
|
86
|
+
} | null;
|
|
87
|
+
} | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Fetch a slice of checkpoint history for the bound thread. Used
|
|
90
|
+
* by branching and time-travel UIs. Optional — omitting it turns
|
|
91
|
+
* those UIs into no-ops rather than surfacing an error.
|
|
92
|
+
*/
|
|
93
|
+
getHistory?<StateType = unknown>(options?: {
|
|
94
|
+
limit?: number;
|
|
95
|
+
}): Promise<Array<{
|
|
96
|
+
values: StateType;
|
|
97
|
+
checkpoint?: {
|
|
98
|
+
checkpoint_id?: string;
|
|
99
|
+
} | null;
|
|
100
|
+
}>>;
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { AgentServerAdapter, EventStreamHandle, TransportAdapter };
|
|
104
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","names":[],"sources":["../../../src/client/stream/transport.ts"],"mappings":";;;;;AAgBA;;;;;;UAAiB,iBAAA;EACf,MAAA,EAAQ,aAAA,CAAc,OAAA;EACtB,KAAA,EAAO,OAAA;EACP,KAAA;AAAA;;;;;;AAUF;;UAAiB,gBAAA;EASP;;;EAAA,SALC,QAAA;EAWe;;;;EANxB,IAAA,IAAQ,OAAA;EAuBC;;;;;EAjBT,IAAA,CAAK,OAAA,EAAS,OAAA,GAAU,OAAA,CAAQ,eAAA,GAAkB,aAAA;EAAlD;;;;EAKA,MAAA,IAAU,aAAA,CAAc,OAAA;EAL0B;;;;;;;EAalD,eAAA,EAAiB,MAAA,EAAQ,eAAA,GAAkB,iBAAA;EAI3C;;;EAAA,KAAA,IAAS,OAAA;AAAA;;;;;;;;;;;;;;;;;;UAoBM,kBAAA,SAA2B,gBAAA;EAgB1C;;;;;;EATA,QAAA,0BAAkC,OAAA;IAChC,MAAA,EAAQ,SAAA;IACR,UAAA;MAAe,aAAA;IAAA;EAAA;;;;;;EAOjB,UAAA,uBAAiC,OAAA;IAC/B,KAAA;EAAA,IACE,OAAA,CACF,KAAA;IACE,MAAA,EAAQ,SAAA;IACR,UAAA;MAAe,aAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { AssembledMessage } from "./messages.cjs";
|
|
2
|
+
import { AgentServerAdapter } from "./transport.cjs";
|
|
3
|
+
import { AgentResult, Channel, Event, InputInjectParams, InputRespondParams, ListCheckpointsParams, ListCheckpointsResult, RunResult, RunStartParams, StateForkParams, StateForkResult, StateGetParams, StateGetResult, SubscribeParams } from "@langchain/protocol";
|
|
4
|
+
|
|
5
|
+
//#region src/client/stream/types.d.ts
|
|
6
|
+
interface ExtendedRunStartParams extends RunStartParams {
|
|
7
|
+
forkFrom?: {
|
|
8
|
+
checkpointId: string;
|
|
9
|
+
};
|
|
10
|
+
multitaskStrategy?: "reject" | "rollback" | "interrupt" | "enqueue";
|
|
11
|
+
}
|
|
12
|
+
type SubscribeOptions = Omit<SubscribeParams, "channels">;
|
|
13
|
+
type EventMethodByChannel = {
|
|
14
|
+
values: "values";
|
|
15
|
+
updates: "updates";
|
|
16
|
+
messages: "messages";
|
|
17
|
+
tools: "tools";
|
|
18
|
+
custom: "custom";
|
|
19
|
+
lifecycle: "lifecycle";
|
|
20
|
+
input: "input.requested";
|
|
21
|
+
debug: "debug";
|
|
22
|
+
checkpoints: "checkpoints";
|
|
23
|
+
tasks: "tasks";
|
|
24
|
+
};
|
|
25
|
+
type EventForChannel<TChannel extends Channel> = TChannel extends keyof EventMethodByChannel ? Extract<Event, {
|
|
26
|
+
method: EventMethodByChannel[TChannel];
|
|
27
|
+
}> : TChannel extends `custom:${string}` ? Extract<Event, {
|
|
28
|
+
method: "custom";
|
|
29
|
+
}> : never;
|
|
30
|
+
type EventForChannels<TChannels extends readonly Channel[]> = EventForChannel<TChannels[number]>;
|
|
31
|
+
/**
|
|
32
|
+
* Maps a subscribable channel to the type yielded by its subscription handle.
|
|
33
|
+
*
|
|
34
|
+
* - `"custom:name"` channels yield `unknown` (the raw emitted payload).
|
|
35
|
+
* - All other channels yield the full protocol `Event`.
|
|
36
|
+
*/
|
|
37
|
+
type YieldForChannel<TChannel extends Channel> = TChannel extends `custom:${string}` ? unknown : EventForChannel<TChannel>;
|
|
38
|
+
type YieldForChannels<TChannels extends readonly Channel[]> = YieldForChannel<TChannels[number]>;
|
|
39
|
+
/**
|
|
40
|
+
* Built-in wire transport used by {@link ThreadStream}.
|
|
41
|
+
*
|
|
42
|
+
* - `"sse"`: HTTP commands + one SSE event stream per subscription.
|
|
43
|
+
* Works in browsers without extra setup.
|
|
44
|
+
* - `"websocket"`: single bidirectional WebSocket. Lower overhead for
|
|
45
|
+
* long-lived, multi-subscription sessions.
|
|
46
|
+
*/
|
|
47
|
+
type ThreadStreamTransportKind = "sse" | "websocket";
|
|
48
|
+
/**
|
|
49
|
+
* Accepted values for `ThreadStreamOptions["transport"]`.
|
|
50
|
+
*
|
|
51
|
+
* - A {@link ThreadStreamTransportKind} string picks one of the
|
|
52
|
+
* built-in factories; `fetch` / `webSocketFactory` tune that path.
|
|
53
|
+
* - An {@link AgentServerAdapter} bypasses the built-in factories
|
|
54
|
+
* entirely; the adapter is used for every command and subscription.
|
|
55
|
+
*/
|
|
56
|
+
type ThreadStreamTransport = ThreadStreamTransportKind | AgentServerAdapter;
|
|
57
|
+
/**
|
|
58
|
+
* Options for {@link ThreadStream} construction.
|
|
59
|
+
*/
|
|
60
|
+
interface ThreadStreamOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Assistant that this thread runs on. A thread is bound to one
|
|
63
|
+
* assistant for its lifetime — subsequent `run.start` calls always
|
|
64
|
+
* use this assistant.
|
|
65
|
+
*/
|
|
66
|
+
assistantId: string;
|
|
67
|
+
/**
|
|
68
|
+
* How this thread talks to the agent server. Accepts either a
|
|
69
|
+
* built-in transport string or a custom {@link AgentServerAdapter}:
|
|
70
|
+
*
|
|
71
|
+
* - `"sse"`: HTTP commands + one SSE event stream per subscription.
|
|
72
|
+
* - `"websocket"`: single bidirectional WebSocket.
|
|
73
|
+
* - an {@link AgentServerAdapter}: custom transport that replaces
|
|
74
|
+
* the built-in factories entirely. `fetch` / `webSocketFactory`
|
|
75
|
+
* are ignored in this mode.
|
|
76
|
+
*
|
|
77
|
+
* Defaults to the client-level `streamProtocol`
|
|
78
|
+
* (`"v2-websocket"` → `"websocket"`, otherwise `"sse"`).
|
|
79
|
+
*/
|
|
80
|
+
transport?: ThreadStreamTransport;
|
|
81
|
+
/**
|
|
82
|
+
* Starting command ID for the internal command counter. Mostly
|
|
83
|
+
* useful for tests.
|
|
84
|
+
*/
|
|
85
|
+
startingCommandId?: number;
|
|
86
|
+
/**
|
|
87
|
+
* Optional `fetch` implementation for the built-in SSE transport.
|
|
88
|
+
* Useful for test environments, custom auth/proxy layers, or
|
|
89
|
+
* non-global fetch (e.g. Node without a global fetch, or injected
|
|
90
|
+
* mocks). Ignored for the WebSocket transport and for custom
|
|
91
|
+
* {@link AgentServerAdapter}s.
|
|
92
|
+
*/
|
|
93
|
+
fetch?: typeof fetch;
|
|
94
|
+
/**
|
|
95
|
+
* Optional WebSocket factory for the built-in WebSocket transport.
|
|
96
|
+
* Useful for test environments that don't ship a global `WebSocket`,
|
|
97
|
+
* or to wrap the socket with custom headers/subprotocols. Ignored
|
|
98
|
+
* for the SSE transport and for custom {@link AgentServerAdapter}s.
|
|
99
|
+
*/
|
|
100
|
+
webSocketFactory?: (url: string) => WebSocket;
|
|
101
|
+
}
|
|
102
|
+
interface SessionOrderingState {
|
|
103
|
+
lastSeenSeq?: number;
|
|
104
|
+
lastAppliedThroughSeq?: number;
|
|
105
|
+
lastEventId?: string;
|
|
106
|
+
}
|
|
107
|
+
interface EventSubscription<TYield = Event> extends AsyncIterable<TYield> {
|
|
108
|
+
readonly subscriptionId: string;
|
|
109
|
+
readonly params: SubscribeParams;
|
|
110
|
+
unsubscribe(): Promise<void>;
|
|
111
|
+
}
|
|
112
|
+
interface MessageSubscription extends AsyncIterable<AssembledMessage> {
|
|
113
|
+
readonly subscriptionId: string;
|
|
114
|
+
readonly params: SubscribeParams;
|
|
115
|
+
unsubscribe(): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
interface InputModule {
|
|
118
|
+
respond(params: InputRespondParams): Promise<void>;
|
|
119
|
+
inject(params: InputInjectParams): Promise<void>;
|
|
120
|
+
}
|
|
121
|
+
interface StateModule {
|
|
122
|
+
get(params: StateGetParams): Promise<StateGetResult>;
|
|
123
|
+
listCheckpoints(params: ListCheckpointsParams): Promise<ListCheckpointsResult>;
|
|
124
|
+
fork(params: StateForkParams): Promise<StateForkResult>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Modules exposed by the high-level {@link ThreadStream} wrapper.
|
|
128
|
+
*/
|
|
129
|
+
interface ThreadModules {
|
|
130
|
+
run: {
|
|
131
|
+
/**
|
|
132
|
+
* Start a new run, resume an interrupted run, or inject input into
|
|
133
|
+
* an active run on this thread. The assistant is fixed by the
|
|
134
|
+
* {@link ThreadStream} constructor and cannot be changed per-call.
|
|
135
|
+
*/
|
|
136
|
+
start(params: Omit<ExtendedRunStartParams, "assistant_id">): Promise<RunResult>;
|
|
137
|
+
};
|
|
138
|
+
agent: {
|
|
139
|
+
getTree(params?: {
|
|
140
|
+
run_id?: string;
|
|
141
|
+
}): Promise<AgentResult>;
|
|
142
|
+
};
|
|
143
|
+
input: InputModule;
|
|
144
|
+
state: StateModule;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Human-in-the-loop interrupt payload surfaced from lifecycle events.
|
|
148
|
+
* Matches the in-process `InterruptPayload` type.
|
|
149
|
+
*/
|
|
150
|
+
interface InterruptPayload<TPayload = unknown> {
|
|
151
|
+
interruptId: string;
|
|
152
|
+
payload: TPayload;
|
|
153
|
+
namespace: string[];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Remote counterpart of an in-process `run.extensions.<name>` projection.
|
|
157
|
+
*
|
|
158
|
+
* Each extension is the client-side view of a compile-time
|
|
159
|
+
* {@link StreamTransformer} projection. The server auto-forwards named
|
|
160
|
+
* `StreamChannel.remote(name)` outputs on the `custom:<name>` channel, and
|
|
161
|
+
* this handle exposes them via two dual interfaces:
|
|
162
|
+
*
|
|
163
|
+
* - `AsyncIterable<T>` — iterate every item pushed by a streaming
|
|
164
|
+
* transformer (e.g. a `StreamChannel`).
|
|
165
|
+
* - `PromiseLike<T>` — `await` resolves with the final value observed
|
|
166
|
+
* when the run terminates. For streaming transformers this is the
|
|
167
|
+
* last item pushed; for final-value transformers it is the single
|
|
168
|
+
* value emitted on run end.
|
|
169
|
+
*
|
|
170
|
+
* Subscribing is lazy: the underlying `custom:<name>` subscription is
|
|
171
|
+
* opened on first property access and cached.
|
|
172
|
+
*/
|
|
173
|
+
interface ThreadExtension<T = unknown> extends AsyncIterable<T>, PromiseLike<T> {}
|
|
174
|
+
/**
|
|
175
|
+
* Unwrap a single in-process projection value to its observable payload
|
|
176
|
+
* type:
|
|
177
|
+
*
|
|
178
|
+
* - `Promise<T>` / `PromiseLike<T>` → `T` (final-value transformers)
|
|
179
|
+
* - `StreamChannel<T>` / `AsyncIterable<T>` → `T` (streaming transformers)
|
|
180
|
+
* - anything else → the value itself
|
|
181
|
+
*
|
|
182
|
+
* This lets a `ThreadStream<TExtensions>` generic accept the same shape
|
|
183
|
+
* that `graph.streamEvents(..., { version: "v3" })` returns in-process
|
|
184
|
+
* (via `InferExtensions<TTransformers>` from `@langchain/langgraph`),
|
|
185
|
+
* without forcing users to redeclare payload types on the remote side.
|
|
186
|
+
*/
|
|
187
|
+
type UnwrapExtension<T> = T extends PromiseLike<infer U> ? U : T extends AsyncIterable<infer U> ? U : T;
|
|
188
|
+
/**
|
|
189
|
+
* Keyed map of {@link ThreadExtension} handles, typed off a declared
|
|
190
|
+
* transformer projection shape.
|
|
191
|
+
*
|
|
192
|
+
* Used as the return type of `ThreadStream.extensions`. `TExtensions`
|
|
193
|
+
* is expected to match the in-process `run.extensions` shape (i.e. the
|
|
194
|
+
* output of `InferExtensions<TTransformers>` from
|
|
195
|
+
* `@langchain/langgraph`); each value type is unwrapped via
|
|
196
|
+
* {@link UnwrapExtension} so `thread.extensions.foo` resolves with the
|
|
197
|
+
* transformer's emitted payload, not the in-process `Promise<T>` /
|
|
198
|
+
* `StreamChannel<T>` wrapper.
|
|
199
|
+
*
|
|
200
|
+
* Access any string key to obtain a `ThreadExtension<unknown>`; keys
|
|
201
|
+
* that appear in `TExtensions` narrow to their declared payload type.
|
|
202
|
+
*/
|
|
203
|
+
type ThreadExtensions<TExtensions extends Record<string, unknown> = Record<string, unknown>> = { readonly [K in keyof TExtensions]: ThreadExtension<UnwrapExtension<TExtensions[K]>> } & {
|
|
204
|
+
readonly [name: string]: ThreadExtension<unknown>;
|
|
205
|
+
};
|
|
206
|
+
//#endregion
|
|
207
|
+
export { EventForChannel, EventForChannels, EventMethodByChannel, EventSubscription, ExtendedRunStartParams, InputModule, InterruptPayload, MessageSubscription, SessionOrderingState, StateModule, SubscribeOptions, ThreadExtension, ThreadExtensions, ThreadModules, ThreadStreamOptions, ThreadStreamTransport, ThreadStreamTransportKind, UnwrapExtension, YieldForChannel, YieldForChannels };
|
|
208
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/client/stream/types.ts"],"mappings":";;;;;UAoBiB,sBAAA,SAA+B,cAAA;EAC9C,QAAA;IAAa,YAAA;EAAA;EACb,iBAAA;AAAA;AAAA,KAGU,gBAAA,GAAmB,IAAA,CAAK,eAAA;AAAA,KAExB,oBAAA;EACV,MAAA;EACA,OAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,SAAA;EACA,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;AAAA;AAAA,KAGU,eAAA,kBAAiC,OAAA,IAC3C,QAAA,eAAuB,oBAAA,GACnB,OAAA,CAAQ,KAAA;EAAS,MAAA,EAAQ,oBAAA,CAAqB,QAAA;AAAA,KAC9C,QAAA,8BACE,OAAA,CAAQ,KAAA;EAAS,MAAA;AAAA;AAAA,KAGb,gBAAA,4BAA4C,OAAA,MACtD,eAAA,CAAgB,SAAA;;;;;;;KAQN,eAAA,kBAAiC,OAAA,IAC3C,QAAA,wCAAgD,eAAA,CAAgB,QAAA;AAAA,KAEtD,gBAAA,4BAA4C,OAAA,MACtD,eAAA,CAAgB,SAAA;AApBlB;;;;;;;;AAAA,KA8BY,yBAAA;;;;;;;;;KAUA,qBAAA,GACR,yBAAA,GACA,kBAAA;;;;UAKa,mBAAA;EA7Cc;;;;;EAmD7B,WAAA;EAjD6B;;AAG/B;;;;;;;;;;;EA4DE,SAAA,GAAY,qBAAA;EA3Da;;AAQ3B;;EAwDE,iBAAA;EAxD2C;;;;;;;EAgE3C,KAAA,UAAe,KAAA;EA/Df;;;;;AAEF;EAoEE,gBAAA,IAAoB,GAAA,aAAgB,SAAA;AAAA;AAAA,UAGrB,oBAAA;EACf,WAAA;EACA,qBAAA;EACA,WAAA;AAAA;AAAA,UAGe,iBAAA,UACN,KAAA,UACD,aAAA,CAAc,MAAA;EAAA,SACb,cAAA;EAAA,SACA,MAAA,EAAQ,eAAA;EACjB,WAAA,IAAe,OAAA;AAAA;AAAA,UAGA,mBAAA,SAA4B,aAAA,CAAc,gBAAA;EAAA,SAChD,cAAA;EAAA,SACA,MAAA,EAAQ,eAAA;EACjB,WAAA,IAAe,OAAA;AAAA;AAAA,UAGA,WAAA;EACf,OAAA,CAAQ,MAAA,EAAQ,kBAAA,GAAqB,OAAA;EACrC,MAAA,CAAO,MAAA,EAAQ,iBAAA,GAAoB,OAAA;AAAA;AAAA,UAGpB,WAAA;EACf,GAAA,CAAI,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,cAAA;EACrC,eAAA,CACE,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,qBAAA;EACX,IAAA,CAAK,MAAA,EAAQ,eAAA,GAAkB,OAAA,CAAQ,eAAA;AAAA;;;;UAMxB,aAAA;EACf,GAAA;IA1EA;;;;;IAgFE,KAAA,CACE,MAAA,EAAQ,IAAA,CAAK,sBAAA,oBACZ,OAAA,CAAQ,SAAA;EAAA;EAEb,KAAA;IACE,OAAA,CAAQ,MAAA;MAAW,MAAA;IAAA,IAAoB,OAAA,CAAQ,WAAA;EAAA;EAEjD,KAAA,EAAO,WAAA;EACP,KAAA,EAAO,WAAA;AAAA;;;;;UAOQ,gBAAA;EACf,WAAA;EACA,OAAA,EAAS,QAAA;EACT,SAAA;AAAA;;;;;;;;;;;;;;;;;;AA/CF;UAoEiB,eAAA,sBACP,aAAA,CAAc,CAAA,GAAI,WAAA,CAAY,CAAA;;;;;;;;;;;;;;KAe5B,eAAA,MACV,CAAA,SAAU,WAAA,YAAuB,CAAA,GAAI,CAAA,SAAU,aAAA,YAAyB,CAAA,GAAI,CAAA;;AA/E9E;;;;;;;;;;;;;;KAgGY,gBAAA,qBACU,MAAA,oBAA0B,MAAA,4CAEzB,WAAA,GAAc,eAAA,CACjC,eAAA,CAAgB,WAAA,CAAY,CAAA;EAAA,UAGpB,IAAA,WAAe,eAAA;AAAA"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { AssembledMessage } from "./messages.js";
|
|
2
|
+
import { AgentServerAdapter } from "./transport.js";
|
|
3
|
+
import { AgentResult, Channel, Event, InputInjectParams, InputRespondParams, ListCheckpointsParams, ListCheckpointsResult, RunResult, RunStartParams, StateForkParams, StateForkResult, StateGetParams, StateGetResult, SubscribeParams } from "@langchain/protocol";
|
|
4
|
+
|
|
5
|
+
//#region src/client/stream/types.d.ts
|
|
6
|
+
interface ExtendedRunStartParams extends RunStartParams {
|
|
7
|
+
forkFrom?: {
|
|
8
|
+
checkpointId: string;
|
|
9
|
+
};
|
|
10
|
+
multitaskStrategy?: "reject" | "rollback" | "interrupt" | "enqueue";
|
|
11
|
+
}
|
|
12
|
+
type SubscribeOptions = Omit<SubscribeParams, "channels">;
|
|
13
|
+
type EventMethodByChannel = {
|
|
14
|
+
values: "values";
|
|
15
|
+
updates: "updates";
|
|
16
|
+
messages: "messages";
|
|
17
|
+
tools: "tools";
|
|
18
|
+
custom: "custom";
|
|
19
|
+
lifecycle: "lifecycle";
|
|
20
|
+
input: "input.requested";
|
|
21
|
+
debug: "debug";
|
|
22
|
+
checkpoints: "checkpoints";
|
|
23
|
+
tasks: "tasks";
|
|
24
|
+
};
|
|
25
|
+
type EventForChannel<TChannel extends Channel> = TChannel extends keyof EventMethodByChannel ? Extract<Event, {
|
|
26
|
+
method: EventMethodByChannel[TChannel];
|
|
27
|
+
}> : TChannel extends `custom:${string}` ? Extract<Event, {
|
|
28
|
+
method: "custom";
|
|
29
|
+
}> : never;
|
|
30
|
+
type EventForChannels<TChannels extends readonly Channel[]> = EventForChannel<TChannels[number]>;
|
|
31
|
+
/**
|
|
32
|
+
* Maps a subscribable channel to the type yielded by its subscription handle.
|
|
33
|
+
*
|
|
34
|
+
* - `"custom:name"` channels yield `unknown` (the raw emitted payload).
|
|
35
|
+
* - All other channels yield the full protocol `Event`.
|
|
36
|
+
*/
|
|
37
|
+
type YieldForChannel<TChannel extends Channel> = TChannel extends `custom:${string}` ? unknown : EventForChannel<TChannel>;
|
|
38
|
+
type YieldForChannels<TChannels extends readonly Channel[]> = YieldForChannel<TChannels[number]>;
|
|
39
|
+
/**
|
|
40
|
+
* Built-in wire transport used by {@link ThreadStream}.
|
|
41
|
+
*
|
|
42
|
+
* - `"sse"`: HTTP commands + one SSE event stream per subscription.
|
|
43
|
+
* Works in browsers without extra setup.
|
|
44
|
+
* - `"websocket"`: single bidirectional WebSocket. Lower overhead for
|
|
45
|
+
* long-lived, multi-subscription sessions.
|
|
46
|
+
*/
|
|
47
|
+
type ThreadStreamTransportKind = "sse" | "websocket";
|
|
48
|
+
/**
|
|
49
|
+
* Accepted values for `ThreadStreamOptions["transport"]`.
|
|
50
|
+
*
|
|
51
|
+
* - A {@link ThreadStreamTransportKind} string picks one of the
|
|
52
|
+
* built-in factories; `fetch` / `webSocketFactory` tune that path.
|
|
53
|
+
* - An {@link AgentServerAdapter} bypasses the built-in factories
|
|
54
|
+
* entirely; the adapter is used for every command and subscription.
|
|
55
|
+
*/
|
|
56
|
+
type ThreadStreamTransport = ThreadStreamTransportKind | AgentServerAdapter;
|
|
57
|
+
/**
|
|
58
|
+
* Options for {@link ThreadStream} construction.
|
|
59
|
+
*/
|
|
60
|
+
interface ThreadStreamOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Assistant that this thread runs on. A thread is bound to one
|
|
63
|
+
* assistant for its lifetime — subsequent `run.start` calls always
|
|
64
|
+
* use this assistant.
|
|
65
|
+
*/
|
|
66
|
+
assistantId: string;
|
|
67
|
+
/**
|
|
68
|
+
* How this thread talks to the agent server. Accepts either a
|
|
69
|
+
* built-in transport string or a custom {@link AgentServerAdapter}:
|
|
70
|
+
*
|
|
71
|
+
* - `"sse"`: HTTP commands + one SSE event stream per subscription.
|
|
72
|
+
* - `"websocket"`: single bidirectional WebSocket.
|
|
73
|
+
* - an {@link AgentServerAdapter}: custom transport that replaces
|
|
74
|
+
* the built-in factories entirely. `fetch` / `webSocketFactory`
|
|
75
|
+
* are ignored in this mode.
|
|
76
|
+
*
|
|
77
|
+
* Defaults to the client-level `streamProtocol`
|
|
78
|
+
* (`"v2-websocket"` → `"websocket"`, otherwise `"sse"`).
|
|
79
|
+
*/
|
|
80
|
+
transport?: ThreadStreamTransport;
|
|
81
|
+
/**
|
|
82
|
+
* Starting command ID for the internal command counter. Mostly
|
|
83
|
+
* useful for tests.
|
|
84
|
+
*/
|
|
85
|
+
startingCommandId?: number;
|
|
86
|
+
/**
|
|
87
|
+
* Optional `fetch` implementation for the built-in SSE transport.
|
|
88
|
+
* Useful for test environments, custom auth/proxy layers, or
|
|
89
|
+
* non-global fetch (e.g. Node without a global fetch, or injected
|
|
90
|
+
* mocks). Ignored for the WebSocket transport and for custom
|
|
91
|
+
* {@link AgentServerAdapter}s.
|
|
92
|
+
*/
|
|
93
|
+
fetch?: typeof fetch;
|
|
94
|
+
/**
|
|
95
|
+
* Optional WebSocket factory for the built-in WebSocket transport.
|
|
96
|
+
* Useful for test environments that don't ship a global `WebSocket`,
|
|
97
|
+
* or to wrap the socket with custom headers/subprotocols. Ignored
|
|
98
|
+
* for the SSE transport and for custom {@link AgentServerAdapter}s.
|
|
99
|
+
*/
|
|
100
|
+
webSocketFactory?: (url: string) => WebSocket;
|
|
101
|
+
}
|
|
102
|
+
interface SessionOrderingState {
|
|
103
|
+
lastSeenSeq?: number;
|
|
104
|
+
lastAppliedThroughSeq?: number;
|
|
105
|
+
lastEventId?: string;
|
|
106
|
+
}
|
|
107
|
+
interface EventSubscription<TYield = Event> extends AsyncIterable<TYield> {
|
|
108
|
+
readonly subscriptionId: string;
|
|
109
|
+
readonly params: SubscribeParams;
|
|
110
|
+
unsubscribe(): Promise<void>;
|
|
111
|
+
}
|
|
112
|
+
interface MessageSubscription extends AsyncIterable<AssembledMessage> {
|
|
113
|
+
readonly subscriptionId: string;
|
|
114
|
+
readonly params: SubscribeParams;
|
|
115
|
+
unsubscribe(): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
interface InputModule {
|
|
118
|
+
respond(params: InputRespondParams): Promise<void>;
|
|
119
|
+
inject(params: InputInjectParams): Promise<void>;
|
|
120
|
+
}
|
|
121
|
+
interface StateModule {
|
|
122
|
+
get(params: StateGetParams): Promise<StateGetResult>;
|
|
123
|
+
listCheckpoints(params: ListCheckpointsParams): Promise<ListCheckpointsResult>;
|
|
124
|
+
fork(params: StateForkParams): Promise<StateForkResult>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Modules exposed by the high-level {@link ThreadStream} wrapper.
|
|
128
|
+
*/
|
|
129
|
+
interface ThreadModules {
|
|
130
|
+
run: {
|
|
131
|
+
/**
|
|
132
|
+
* Start a new run, resume an interrupted run, or inject input into
|
|
133
|
+
* an active run on this thread. The assistant is fixed by the
|
|
134
|
+
* {@link ThreadStream} constructor and cannot be changed per-call.
|
|
135
|
+
*/
|
|
136
|
+
start(params: Omit<ExtendedRunStartParams, "assistant_id">): Promise<RunResult>;
|
|
137
|
+
};
|
|
138
|
+
agent: {
|
|
139
|
+
getTree(params?: {
|
|
140
|
+
run_id?: string;
|
|
141
|
+
}): Promise<AgentResult>;
|
|
142
|
+
};
|
|
143
|
+
input: InputModule;
|
|
144
|
+
state: StateModule;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Human-in-the-loop interrupt payload surfaced from lifecycle events.
|
|
148
|
+
* Matches the in-process `InterruptPayload` type.
|
|
149
|
+
*/
|
|
150
|
+
interface InterruptPayload<TPayload = unknown> {
|
|
151
|
+
interruptId: string;
|
|
152
|
+
payload: TPayload;
|
|
153
|
+
namespace: string[];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Remote counterpart of an in-process `run.extensions.<name>` projection.
|
|
157
|
+
*
|
|
158
|
+
* Each extension is the client-side view of a compile-time
|
|
159
|
+
* {@link StreamTransformer} projection. The server auto-forwards named
|
|
160
|
+
* `StreamChannel.remote(name)` outputs on the `custom:<name>` channel, and
|
|
161
|
+
* this handle exposes them via two dual interfaces:
|
|
162
|
+
*
|
|
163
|
+
* - `AsyncIterable<T>` — iterate every item pushed by a streaming
|
|
164
|
+
* transformer (e.g. a `StreamChannel`).
|
|
165
|
+
* - `PromiseLike<T>` — `await` resolves with the final value observed
|
|
166
|
+
* when the run terminates. For streaming transformers this is the
|
|
167
|
+
* last item pushed; for final-value transformers it is the single
|
|
168
|
+
* value emitted on run end.
|
|
169
|
+
*
|
|
170
|
+
* Subscribing is lazy: the underlying `custom:<name>` subscription is
|
|
171
|
+
* opened on first property access and cached.
|
|
172
|
+
*/
|
|
173
|
+
interface ThreadExtension<T = unknown> extends AsyncIterable<T>, PromiseLike<T> {}
|
|
174
|
+
/**
|
|
175
|
+
* Unwrap a single in-process projection value to its observable payload
|
|
176
|
+
* type:
|
|
177
|
+
*
|
|
178
|
+
* - `Promise<T>` / `PromiseLike<T>` → `T` (final-value transformers)
|
|
179
|
+
* - `StreamChannel<T>` / `AsyncIterable<T>` → `T` (streaming transformers)
|
|
180
|
+
* - anything else → the value itself
|
|
181
|
+
*
|
|
182
|
+
* This lets a `ThreadStream<TExtensions>` generic accept the same shape
|
|
183
|
+
* that `graph.streamEvents(..., { version: "v3" })` returns in-process
|
|
184
|
+
* (via `InferExtensions<TTransformers>` from `@langchain/langgraph`),
|
|
185
|
+
* without forcing users to redeclare payload types on the remote side.
|
|
186
|
+
*/
|
|
187
|
+
type UnwrapExtension<T> = T extends PromiseLike<infer U> ? U : T extends AsyncIterable<infer U> ? U : T;
|
|
188
|
+
/**
|
|
189
|
+
* Keyed map of {@link ThreadExtension} handles, typed off a declared
|
|
190
|
+
* transformer projection shape.
|
|
191
|
+
*
|
|
192
|
+
* Used as the return type of `ThreadStream.extensions`. `TExtensions`
|
|
193
|
+
* is expected to match the in-process `run.extensions` shape (i.e. the
|
|
194
|
+
* output of `InferExtensions<TTransformers>` from
|
|
195
|
+
* `@langchain/langgraph`); each value type is unwrapped via
|
|
196
|
+
* {@link UnwrapExtension} so `thread.extensions.foo` resolves with the
|
|
197
|
+
* transformer's emitted payload, not the in-process `Promise<T>` /
|
|
198
|
+
* `StreamChannel<T>` wrapper.
|
|
199
|
+
*
|
|
200
|
+
* Access any string key to obtain a `ThreadExtension<unknown>`; keys
|
|
201
|
+
* that appear in `TExtensions` narrow to their declared payload type.
|
|
202
|
+
*/
|
|
203
|
+
type ThreadExtensions<TExtensions extends Record<string, unknown> = Record<string, unknown>> = { readonly [K in keyof TExtensions]: ThreadExtension<UnwrapExtension<TExtensions[K]>> } & {
|
|
204
|
+
readonly [name: string]: ThreadExtension<unknown>;
|
|
205
|
+
};
|
|
206
|
+
//#endregion
|
|
207
|
+
export { EventForChannel, EventForChannels, EventMethodByChannel, EventSubscription, ExtendedRunStartParams, InputModule, InterruptPayload, MessageSubscription, SessionOrderingState, StateModule, SubscribeOptions, ThreadExtension, ThreadExtensions, ThreadModules, ThreadStreamOptions, ThreadStreamTransport, ThreadStreamTransportKind, UnwrapExtension, YieldForChannel, YieldForChannels };
|
|
208
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/client/stream/types.ts"],"mappings":";;;;;UAoBiB,sBAAA,SAA+B,cAAA;EAC9C,QAAA;IAAa,YAAA;EAAA;EACb,iBAAA;AAAA;AAAA,KAGU,gBAAA,GAAmB,IAAA,CAAK,eAAA;AAAA,KAExB,oBAAA;EACV,MAAA;EACA,OAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,SAAA;EACA,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;AAAA;AAAA,KAGU,eAAA,kBAAiC,OAAA,IAC3C,QAAA,eAAuB,oBAAA,GACnB,OAAA,CAAQ,KAAA;EAAS,MAAA,EAAQ,oBAAA,CAAqB,QAAA;AAAA,KAC9C,QAAA,8BACE,OAAA,CAAQ,KAAA;EAAS,MAAA;AAAA;AAAA,KAGb,gBAAA,4BAA4C,OAAA,MACtD,eAAA,CAAgB,SAAA;;;;;;;KAQN,eAAA,kBAAiC,OAAA,IAC3C,QAAA,wCAAgD,eAAA,CAAgB,QAAA;AAAA,KAEtD,gBAAA,4BAA4C,OAAA,MACtD,eAAA,CAAgB,SAAA;AApBlB;;;;;;;;AAAA,KA8BY,yBAAA;;;;;;;;;KAUA,qBAAA,GACR,yBAAA,GACA,kBAAA;;;;UAKa,mBAAA;EA7Cc;;;;;EAmD7B,WAAA;EAjD6B;;AAG/B;;;;;;;;;;;EA4DE,SAAA,GAAY,qBAAA;EA3Da;;AAQ3B;;EAwDE,iBAAA;EAxD2C;;;;;;;EAgE3C,KAAA,UAAe,KAAA;EA/Df;;;;;AAEF;EAoEE,gBAAA,IAAoB,GAAA,aAAgB,SAAA;AAAA;AAAA,UAGrB,oBAAA;EACf,WAAA;EACA,qBAAA;EACA,WAAA;AAAA;AAAA,UAGe,iBAAA,UACN,KAAA,UACD,aAAA,CAAc,MAAA;EAAA,SACb,cAAA;EAAA,SACA,MAAA,EAAQ,eAAA;EACjB,WAAA,IAAe,OAAA;AAAA;AAAA,UAGA,mBAAA,SAA4B,aAAA,CAAc,gBAAA;EAAA,SAChD,cAAA;EAAA,SACA,MAAA,EAAQ,eAAA;EACjB,WAAA,IAAe,OAAA;AAAA;AAAA,UAGA,WAAA;EACf,OAAA,CAAQ,MAAA,EAAQ,kBAAA,GAAqB,OAAA;EACrC,MAAA,CAAO,MAAA,EAAQ,iBAAA,GAAoB,OAAA;AAAA;AAAA,UAGpB,WAAA;EACf,GAAA,CAAI,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,cAAA;EACrC,eAAA,CACE,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,qBAAA;EACX,IAAA,CAAK,MAAA,EAAQ,eAAA,GAAkB,OAAA,CAAQ,eAAA;AAAA;;;;UAMxB,aAAA;EACf,GAAA;IA1EA;;;;;IAgFE,KAAA,CACE,MAAA,EAAQ,IAAA,CAAK,sBAAA,oBACZ,OAAA,CAAQ,SAAA;EAAA;EAEb,KAAA;IACE,OAAA,CAAQ,MAAA;MAAW,MAAA;IAAA,IAAoB,OAAA,CAAQ,WAAA;EAAA;EAEjD,KAAA,EAAO,WAAA;EACP,KAAA,EAAO,WAAA;AAAA;;;;;UAOQ,gBAAA;EACf,WAAA;EACA,OAAA,EAAS,QAAA;EACT,SAAA;AAAA;;;;;;;;;;;;;;;;;;AA/CF;UAoEiB,eAAA,sBACP,aAAA,CAAc,CAAA,GAAI,WAAA,CAAY,CAAA;;;;;;;;;;;;;;KAe5B,eAAA,MACV,CAAA,SAAU,WAAA,YAAuB,CAAA,GAAI,CAAA,SAAU,aAAA,YAAyB,CAAA,GAAI,CAAA;;AA/E9E;;;;;;;;;;;;;;KAgGY,gBAAA,qBACU,MAAA,oBAA0B,MAAA,4CAEzB,WAAA,GAAc,eAAA,CACjC,eAAA,CAAgB,WAAA,CAAY,CAAA;EAAA,UAGpB,IAAA,WAAe,eAAA;AAAA"}
|