@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
package/dist/ui/messages.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.cjs","names":["HumanMessageChunk","AIMessageChunk","SystemMessageChunk","ToolMessageChunk","RemoveMessage"],"sources":["../../src/ui/messages.ts"],"sourcesContent":["import {\n type BaseMessage,\n BaseMessageChunk,\n RemoveMessage,\n convertToChunk,\n coerceMessageLikeToMessage,\n isBaseMessageChunk,\n HumanMessageChunk,\n SystemMessageChunk,\n AIMessageChunk,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\n\nimport type { Message } from \"../types.messages.js\";\nimport type { ThreadState } from \"../schema.js\";\n\n/**\n * Replaces the `messages` property in a state type with `BaseMessage[]`.\n * Used by framework SDKs to reflect that `ensureHistoryMessageInstances`\n * converts plain message objects to class instances at runtime.\n */\nexport type StateWithBaseMessages<S> = S extends { messages: unknown }\n ? Omit<S, \"messages\"> & { messages: BaseMessage[] }\n : S;\n\n/**\n * Maps a `ThreadState<StateType>[]` so that the `messages` field inside\n * `values` is typed as `BaseMessage[]` instead of `Message[]`.\n */\nexport type HistoryWithBaseMessages<T> = T extends ThreadState<infer S>[]\n ? ThreadState<StateWithBaseMessages<S>>[]\n : T;\n\nexport function tryConvertToChunk(\n message: BaseMessage | BaseMessageChunk\n): BaseMessageChunk | null {\n try {\n if (isBaseMessageChunk(message)) return message;\n return convertToChunk(message);\n } catch {\n return null;\n }\n}\n\nexport function tryCoerceMessageLikeToMessage(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessageChunk(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessageChunk(message);\n }\n\n if (message.type === \"system\") {\n return new SystemMessageChunk(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessageChunk({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n if (message.type === \"remove\" && message.id != null) {\n return new RemoveMessage({ ...message, id: message.id });\n }\n\n return coerceMessageLikeToMessage(message);\n}\n\nexport class MessageTupleManager {\n chunks: Record<\n string,\n {\n chunk?: BaseMessageChunk | BaseMessage;\n metadata?: Record<string, unknown>;\n index?: number;\n }\n > = {};\n\n constructor() {\n this.chunks = {};\n }\n\n add(\n serialized: Message,\n metadata: Record<string, unknown> | undefined\n ): string | null {\n // TODO: this is sometimes sent from the API\n // figure out how to prevent this or move this to LC.js\n if (serialized.type.endsWith(\"MessageChunk\")) {\n // eslint-disable-next-line no-param-reassign\n serialized.type = serialized.type\n .slice(0, -\"MessageChunk\".length)\n .toLowerCase() as Message[\"type\"];\n }\n\n const message = tryCoerceMessageLikeToMessage(serialized);\n const chunk = tryConvertToChunk(message);\n\n const { id } = chunk ?? message;\n if (!id) {\n console.warn(\n \"No message ID found for chunk, ignoring in state\",\n serialized\n );\n return null;\n }\n\n this.chunks[id] ??= {};\n this.chunks[id].metadata = metadata ?? this.chunks[id].metadata;\n if (chunk) {\n const prev = this.chunks[id].chunk;\n this.chunks[id].chunk =\n (isBaseMessageChunk(prev) ? prev : null)?.concat(chunk) ?? chunk;\n } else {\n this.chunks[id].chunk = message;\n }\n\n return id;\n }\n\n clear() {\n this.chunks = {};\n }\n\n get(id: string | null | undefined, defaultIndex?: number) {\n if (id == null) return null;\n if (this.chunks[id] == null) return null;\n if (defaultIndex != null) this.chunks[id].index ??= defaultIndex;\n return this.chunks[id];\n }\n}\n\nexport const toMessageDict = (chunk: BaseMessage): Message => {\n const { type, data } = chunk.toDict();\n return { ...data, type } as Message;\n};\n\n/**\n * Identity converter that keeps @langchain/core class instances.\n * Used by framework SDKs to expose BaseMessage instances instead of plain dicts.\n */\nexport const toMessageClass = (chunk: BaseMessage): BaseMessage => chunk;\n\n/**\n * Ensures all messages in an array are BaseMessage class instances.\n * Messages that are already class instances pass through unchanged.\n * Plain message objects (e.g. from API values/history) are converted\n * via {@link tryCoerceMessageLikeToMessage}.\n */\nexport function ensureMessageInstances(\n messages: (Message | BaseMessage)[]\n): (BaseMessage | BaseMessageChunk)[] {\n return messages.map((msg) => {\n if (typeof (msg as BaseMessage).getType === \"function\") {\n return msg as BaseMessage;\n }\n return tryCoerceMessageLikeToMessage(\n msg as Omit<Message, \"type\"> & { type: string }\n );\n });\n}\n\n/**\n * Converts plain message objects within each history state's values\n * to proper BaseMessage class instances. Returns a new array with\n * shallow-copied states whose messages have been coerced.\n */\nexport function ensureHistoryMessageInstances<\n StateType extends Record<string, unknown>,\n>(\n history: ThreadState<StateType>[],\n messagesKey: string = \"messages\"\n): ThreadState<StateType>[] {\n return history.map((state) => {\n if (state.values == null) return state;\n const messages = state.values[messagesKey];\n if (!Array.isArray(messages)) return state;\n return {\n ...state,\n values: {\n ...state.values,\n [messagesKey]: ensureMessageInstances(messages),\n },\n };\n });\n}\n"],"mappings":";;;AAiCA,SAAgB,kBACd,SACyB;AACzB,KAAI;AACF,OAAA,GAAA,yBAAA,oBAAuB,QAAQ,CAAE,QAAO;AACxC,UAAA,GAAA,yBAAA,gBAAsB,QAAQ;SACxB;AACN,SAAO;;;AAIX,SAAgB,8BACd,SACgC;AAChC,KAAI,QAAQ,SAAS,WAAW,QAAQ,SAAS,OAC/C,QAAO,IAAIA,yBAAAA,kBAAkB,QAAQ;AAGvC,KAAI,QAAQ,SAAS,QAAQ,QAAQ,SAAS,YAC5C,QAAO,IAAIC,yBAAAA,eAAe,QAAQ;AAGpC,KAAI,QAAQ,SAAS,SACnB,QAAO,IAAIC,yBAAAA,mBAAmB,QAAQ;AAGxC,KAAI,QAAQ,SAAS,UAAU,kBAAkB,QAC/C,QAAO,IAAIC,yBAAAA,iBAAiB;EAC1B,GAAG;EACH,cAAc,QAAQ;EACvB,CAAC;AAGJ,KAAI,QAAQ,SAAS,YAAY,QAAQ,MAAM,KAC7C,QAAO,IAAIC,yBAAAA,cAAc;EAAE,GAAG;EAAS,IAAI,QAAQ;EAAI,CAAC;AAG1D,SAAA,GAAA,yBAAA,4BAAkC,QAAQ;;AAG5C,IAAa,sBAAb,MAAiC;CAC/B,SAOI,EAAE;CAEN,cAAc;AACZ,OAAK,SAAS,EAAE;;CAGlB,IACE,YACA,UACe;AAGf,MAAI,WAAW,KAAK,SAAS,eAAe,CAE1C,YAAW,OAAO,WAAW,KAC1B,MAAM,GAAG,IAAuB,CAChC,aAAa;EAGlB,MAAM,UAAU,8BAA8B,WAAW;EACzD,MAAM,QAAQ,kBAAkB,QAAQ;EAExC,MAAM,EAAE,OAAO,SAAS;AACxB,MAAI,CAAC,IAAI;AACP,WAAQ,KACN,oDACA,WACD;AACD,UAAO;;AAGT,OAAK,OAAO,QAAQ,EAAE;AACtB,OAAK,OAAO,IAAI,WAAW,YAAY,KAAK,OAAO,IAAI;AACvD,MAAI,OAAO;GACT,MAAM,OAAO,KAAK,OAAO,IAAI;AAC7B,QAAK,OAAO,IAAI,UAAA,GAAA,yBAAA,oBACM,KAAK,GAAG,OAAO,OAAO,OAAO,MAAM,IAAI;QAE7D,MAAK,OAAO,IAAI,QAAQ;AAG1B,SAAO;;CAGT,QAAQ;AACN,OAAK,SAAS,EAAE;;CAGlB,IAAI,IAA+B,cAAuB;AACxD,MAAI,MAAM,KAAM,QAAO;AACvB,MAAI,KAAK,OAAO,OAAO,KAAM,QAAO;AACpC,MAAI,gBAAgB,KAAM,MAAK,OAAO,IAAI,UAAU;AACpD,SAAO,KAAK,OAAO;;;AAIvB,MAAa,iBAAiB,UAAgC;CAC5D,MAAM,EAAE,MAAM,SAAS,MAAM,QAAQ;AACrC,QAAO;EAAE,GAAG;EAAM;EAAM;;;;;;AAO1B,MAAa,kBAAkB,UAAoC;;;;;;;AAQnE,SAAgB,uBACd,UACoC;AACpC,QAAO,SAAS,KAAK,QAAQ;AAC3B,MAAI,OAAQ,IAAoB,YAAY,WAC1C,QAAO;AAET,SAAO,8BACL,IACD;GACD;;;;;;;AAQJ,SAAgB,8BAGd,SACA,cAAsB,YACI;AAC1B,QAAO,QAAQ,KAAK,UAAU;AAC5B,MAAI,MAAM,UAAU,KAAM,QAAO;EACjC,MAAM,WAAW,MAAM,OAAO;AAC9B,MAAI,CAAC,MAAM,QAAQ,SAAS,CAAE,QAAO;AACrC,SAAO;GACL,GAAG;GACH,QAAQ;IACN,GAAG,MAAM;KACR,cAAc,uBAAuB,SAAS;IAChD;GACF;GACD"}
|
|
1
|
+
{"version":3,"file":"messages.cjs","names":["BaseMessageChunk","HumanMessage","AIMessage","SystemMessage","ToolMessage","RemoveMessage","HumanMessageChunk","AIMessageChunk","SystemMessageChunk","ToolMessageChunk"],"sources":["../../src/ui/messages.ts"],"sourcesContent":["import {\n type BaseMessage,\n BaseMessageChunk,\n RemoveMessage,\n convertToChunk,\n coerceMessageLikeToMessage,\n HumanMessageChunk,\n HumanMessage,\n SystemMessageChunk,\n SystemMessage,\n AIMessageChunk,\n AIMessage,\n ToolMessageChunk,\n ToolMessage,\n} from \"@langchain/core/messages\";\n\nimport type { Message } from \"../types.messages.js\";\nimport type { ThreadState } from \"../schema.js\";\n\n/**\n * Replaces the `messages` property in a state type with `BaseMessage[]`.\n * Used by framework SDKs to reflect that `ensureHistoryMessageInstances`\n * converts plain message objects to class instances at runtime.\n */\nexport type StateWithBaseMessages<S> = S extends { messages: unknown }\n ? Omit<S, \"messages\"> & { messages: BaseMessage[] }\n : S;\n\n/**\n * Maps a `ThreadState<StateType>[]` so that the `messages` field inside\n * `values` is typed as `BaseMessage[]` instead of `Message[]`.\n */\nexport type HistoryWithBaseMessages<T> = T extends ThreadState<infer S>[]\n ? ThreadState<StateWithBaseMessages<S>>[]\n : T;\n\nexport function tryConvertToChunk(\n message: BaseMessage | BaseMessageChunk\n): BaseMessageChunk | null {\n try {\n if (BaseMessageChunk.isInstance(message)) return message;\n return convertToChunk(message);\n } catch {\n return null;\n }\n}\n\nexport function tryCoerceMessageLikeToMessage(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessage(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessage(normalizeAIMessageToolCalls(message));\n }\n\n if (message.type === \"system\") {\n return new SystemMessage(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessage({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n if (message.type === \"remove\" && message.id != null) {\n return new RemoveMessage({ ...message, id: message.id });\n }\n\n return coerceMessageLikeToMessage(message);\n}\n\nfunction tryCoerceMessageLikeToChunk(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessageChunk(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessageChunk(normalizeAIMessageToolCalls(message));\n }\n\n if (message.type === \"system\") {\n return new SystemMessageChunk(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessageChunk({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n return tryCoerceMessageLikeToMessage(message);\n}\n\ntype ToolCallLike = {\n id?: string;\n name?: string;\n args?: unknown;\n input?: unknown;\n};\n\nfunction normalizeAIMessageToolCalls<\n T extends Omit<Message, \"type\"> & { type: string },\n>(message: T): T {\n const record = message as T & {\n content?: unknown;\n tool_calls?: unknown;\n };\n if (Array.isArray(record.tool_calls) && record.tool_calls.length > 0) {\n return message;\n }\n\n const toolCalls = extractToolCallsFromContent(record.content);\n if (toolCalls.length === 0) return message;\n return {\n ...message,\n tool_calls: toolCalls,\n };\n}\n\nfunction extractToolCallsFromContent(content: unknown) {\n if (!Array.isArray(content)) return [];\n return content.flatMap(\n (\n block\n ): Array<{\n id: string;\n name: string;\n args: Record<string, unknown>;\n type: \"tool_call\";\n }> => {\n if (block == null || typeof block !== \"object\") return [];\n const record = block as ToolCallLike & { type?: unknown };\n if (record.type !== \"tool_call\" && record.type !== \"tool_use\") return [];\n return [\n {\n id: record.id ?? \"\",\n name: record.name ?? \"\",\n args: normalizeToolCallArgs(record.args ?? record.input),\n type: \"tool_call\",\n },\n ];\n }\n );\n}\n\nfunction normalizeToolCallArgs(value: unknown): Record<string, unknown> {\n if (value != null && typeof value === \"object\" && !Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n if (typeof value === \"string\" && value.length > 0) {\n try {\n const parsed = JSON.parse(value);\n if (\n parsed != null &&\n typeof parsed === \"object\" &&\n !Array.isArray(parsed)\n ) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Streaming input fragments are expected to be invalid until finalized.\n }\n }\n return {};\n}\n\nexport class MessageTupleManager {\n chunks: Record<\n string,\n {\n chunk?: BaseMessageChunk | BaseMessage;\n metadata?: Record<string, unknown>;\n index?: number;\n }\n > = {};\n\n constructor() {\n this.chunks = {};\n }\n\n add(\n serialized: Message,\n metadata: Record<string, unknown> | undefined\n ): string | null {\n // TODO: this is sometimes sent from the API\n // figure out how to prevent this or move this to LC.js\n if (serialized.type.endsWith(\"MessageChunk\")) {\n // eslint-disable-next-line no-param-reassign\n serialized.type = serialized.type\n .slice(0, -\"MessageChunk\".length)\n .toLowerCase() as Message[\"type\"];\n }\n\n const message = tryCoerceMessageLikeToChunk(serialized);\n const chunk = tryConvertToChunk(message);\n\n const { id } = chunk ?? message;\n if (!id) {\n console.warn(\n \"No message ID found for chunk, ignoring in state\",\n serialized\n );\n return null;\n }\n\n this.chunks[id] ??= {};\n this.chunks[id].metadata = metadata ?? this.chunks[id].metadata;\n if (chunk) {\n const prev = this.chunks[id].chunk;\n this.chunks[id].chunk =\n (BaseMessageChunk.isInstance(prev) ? prev : null)?.concat(chunk) ??\n chunk;\n } else {\n this.chunks[id].chunk = message;\n }\n\n return id;\n }\n\n clear() {\n this.chunks = {};\n }\n\n get(id: string | null | undefined, defaultIndex?: number) {\n if (id == null) return null;\n if (this.chunks[id] == null) return null;\n if (defaultIndex != null) this.chunks[id].index ??= defaultIndex;\n return this.chunks[id];\n }\n}\n\nexport const toMessageDict = (chunk: BaseMessage): Message => {\n const { type, data } = chunk.toDict();\n return { ...data, type } as Message;\n};\n\n/**\n * Identity converter that keeps @langchain/core class instances.\n * Used by framework SDKs to expose BaseMessage instances instead of plain dicts.\n */\nexport const toMessageClass = (chunk: BaseMessage): BaseMessage => chunk;\n\n/**\n * Ensures all messages in an array are BaseMessage class instances.\n * Messages that are already class instances pass through unchanged.\n * Plain message objects (e.g. from API values/history) are converted\n * via {@link tryCoerceMessageLikeToMessage}.\n */\nexport function ensureMessageInstances(\n messages: (Message | BaseMessage)[]\n): (BaseMessage | BaseMessageChunk)[] {\n return messages.map((msg) => {\n if (typeof (msg as BaseMessage).getType === \"function\") {\n return msg as BaseMessage;\n }\n return tryCoerceMessageLikeToMessage(\n msg as Omit<Message, \"type\"> & { type: string }\n );\n });\n}\n\n/**\n * Converts plain message objects within each history state's values\n * to proper BaseMessage class instances. Returns a new array with\n * shallow-copied states whose messages have been coerced.\n */\nexport function ensureHistoryMessageInstances<\n StateType extends Record<string, unknown>,\n>(\n history: ThreadState<StateType>[],\n messagesKey: string = \"messages\"\n): ThreadState<StateType>[] {\n return history.map((state) => {\n if (state.values == null) return state;\n const messages = state.values[messagesKey];\n if (!Array.isArray(messages)) return state;\n return {\n ...state,\n values: {\n ...state.values,\n [messagesKey]: ensureMessageInstances(messages),\n },\n };\n });\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.cts","names":[],"sources":["../../src/ui/messages.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"messages.d.cts","names":[],"sources":["../../src/ui/messages.ts"],"mappings":";;;;;;;;;AAwBA;;KAAY,qBAAA,MAA2B,CAAA;EAAY,QAAA;AAAA,IAC/C,IAAA,CAAK,CAAA;EAAmB,QAAA,EAAU,WAAA;AAAA,IAClC,CAAA;;;;;KAMQ,uBAAA,MAA6B,CAAA,SAAU,WAAA,cAC/C,WAAA,CAAY,qBAAA,CAAsB,CAAA,OAClC,CAAA;AAAA,cA4IS,mBAAA;EACX,MAAA,EAAQ,MAAA;IAGJ,KAAA,GAAQ,gBAAA,GAAmB,WAAA;IAC3B,QAAA,GAAW,MAAA;IACX,KAAA;EAAA;EAIJ,WAAA,CAAA;EAIA,GAAA,CACE,UAAA,EAAY,OAAA,EACZ,QAAA,EAAU,MAAA;EAqCZ,KAAA,CAAA;EAIA,GAAA,CAAI,EAAA,6BAA+B,YAAA;mEAzCjB,yBAAA,CAAA,cAAA;;;;;cAiDP,aAAA,GAAa,KAAA,EAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAGzB,yBAAA,CAHyB,cAAA,GAAA,yBAAA,CAAA,WAAA,MAAA,OAAA;;;;;cASb,cAAA,GAAc,KAAA,EAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAA6C,yBAAA,CAA7C,cAAA,GAAA,yBAAA,CAAA,WAAA,MAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,yBAAA,CAAA,WAAA;;;;;AA1E3B;;iBAkFgB,sBAAA,CACd,QAAA,GAAW,OAAA,GAAU,WAAA,OACnB,WAAA,GAAc,gBAAA;;;;;;iBAgBF,6BAAA,mBACI,MAAA,kBAAA,CAElB,OAAA,EAAS,WAAA,CAAY,SAAA,KACrB,WAAA,YACC,WAAA,CAAY,SAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","names":[],"sources":["../../src/ui/messages.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","names":[],"sources":["../../src/ui/messages.ts"],"mappings":";;;;;;;;;AAwBA;;KAAY,qBAAA,MAA2B,CAAA;EAAY,QAAA;AAAA,IAC/C,IAAA,CAAK,CAAA;EAAmB,QAAA,EAAU,WAAA;AAAA,IAClC,CAAA;;;;;KAMQ,uBAAA,MAA6B,CAAA,SAAU,WAAA,cAC/C,WAAA,CAAY,qBAAA,CAAsB,CAAA,OAClC,CAAA;AAAA,cA4IS,mBAAA;EACX,MAAA,EAAQ,MAAA;IAGJ,KAAA,GAAQ,gBAAA,GAAmB,WAAA;IAC3B,QAAA,GAAW,MAAA;IACX,KAAA;EAAA;EAIJ,WAAA,CAAA;EAIA,GAAA,CACE,UAAA,EAAY,OAAA,EACZ,QAAA,EAAU,MAAA;EAqCZ,KAAA,CAAA;EAIA,GAAA,CAAI,EAAA,6BAA+B,YAAA;mEAzCjB,yBAAA,CAAA,cAAA;;;;;cAiDP,aAAA,GAAa,KAAA,EAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAGzB,yBAAA,CAHyB,cAAA,GAAA,yBAAA,CAAA,WAAA,MAAA,OAAA;;;;;cASb,cAAA,GAAc,KAAA,EAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAA6C,yBAAA,CAA7C,cAAA,GAAA,yBAAA,CAAA,WAAA,MAAA,WAAA,CAAA,yBAAA,CAAA,gBAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,yBAAA,CAAA,WAAA;;;;;AA1E3B;;iBAkFgB,sBAAA,CACd,QAAA,GAAW,OAAA,GAAU,WAAA,OACnB,WAAA,GAAc,gBAAA;;;;;;iBAgBF,6BAAA,mBACI,MAAA,kBAAA,CAElB,OAAA,EAAS,WAAA,CAAY,SAAA,KACrB,WAAA,YACC,WAAA,CAAY,SAAA"}
|
package/dist/ui/messages.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { AIMessageChunk, HumanMessageChunk, RemoveMessage, SystemMessageChunk, ToolMessageChunk, coerceMessageLikeToMessage, convertToChunk
|
|
1
|
+
import { AIMessage, AIMessageChunk, BaseMessageChunk, HumanMessage, HumanMessageChunk, RemoveMessage, SystemMessage, SystemMessageChunk, ToolMessage, ToolMessageChunk, coerceMessageLikeToMessage, convertToChunk } from "@langchain/core/messages";
|
|
2
2
|
//#region src/ui/messages.ts
|
|
3
3
|
function tryConvertToChunk(message) {
|
|
4
4
|
try {
|
|
5
|
-
if (
|
|
5
|
+
if (BaseMessageChunk.isInstance(message)) return message;
|
|
6
6
|
return convertToChunk(message);
|
|
7
7
|
} catch {
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
function tryCoerceMessageLikeToMessage(message) {
|
|
12
|
-
if (message.type === "human" || message.type === "user") return new
|
|
13
|
-
if (message.type === "ai" || message.type === "assistant") return new
|
|
14
|
-
if (message.type === "system") return new
|
|
15
|
-
if (message.type === "tool" && "tool_call_id" in message) return new
|
|
12
|
+
if (message.type === "human" || message.type === "user") return new HumanMessage(message);
|
|
13
|
+
if (message.type === "ai" || message.type === "assistant") return new AIMessage(normalizeAIMessageToolCalls(message));
|
|
14
|
+
if (message.type === "system") return new SystemMessage(message);
|
|
15
|
+
if (message.type === "tool" && "tool_call_id" in message) return new ToolMessage({
|
|
16
16
|
...message,
|
|
17
17
|
tool_call_id: message.tool_call_id
|
|
18
18
|
});
|
|
@@ -22,6 +22,48 @@ function tryCoerceMessageLikeToMessage(message) {
|
|
|
22
22
|
});
|
|
23
23
|
return coerceMessageLikeToMessage(message);
|
|
24
24
|
}
|
|
25
|
+
function tryCoerceMessageLikeToChunk(message) {
|
|
26
|
+
if (message.type === "human" || message.type === "user") return new HumanMessageChunk(message);
|
|
27
|
+
if (message.type === "ai" || message.type === "assistant") return new AIMessageChunk(normalizeAIMessageToolCalls(message));
|
|
28
|
+
if (message.type === "system") return new SystemMessageChunk(message);
|
|
29
|
+
if (message.type === "tool" && "tool_call_id" in message) return new ToolMessageChunk({
|
|
30
|
+
...message,
|
|
31
|
+
tool_call_id: message.tool_call_id
|
|
32
|
+
});
|
|
33
|
+
return tryCoerceMessageLikeToMessage(message);
|
|
34
|
+
}
|
|
35
|
+
function normalizeAIMessageToolCalls(message) {
|
|
36
|
+
const record = message;
|
|
37
|
+
if (Array.isArray(record.tool_calls) && record.tool_calls.length > 0) return message;
|
|
38
|
+
const toolCalls = extractToolCallsFromContent(record.content);
|
|
39
|
+
if (toolCalls.length === 0) return message;
|
|
40
|
+
return {
|
|
41
|
+
...message,
|
|
42
|
+
tool_calls: toolCalls
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function extractToolCallsFromContent(content) {
|
|
46
|
+
if (!Array.isArray(content)) return [];
|
|
47
|
+
return content.flatMap((block) => {
|
|
48
|
+
if (block == null || typeof block !== "object") return [];
|
|
49
|
+
const record = block;
|
|
50
|
+
if (record.type !== "tool_call" && record.type !== "tool_use") return [];
|
|
51
|
+
return [{
|
|
52
|
+
id: record.id ?? "",
|
|
53
|
+
name: record.name ?? "",
|
|
54
|
+
args: normalizeToolCallArgs(record.args ?? record.input),
|
|
55
|
+
type: "tool_call"
|
|
56
|
+
}];
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function normalizeToolCallArgs(value) {
|
|
60
|
+
if (value != null && typeof value === "object" && !Array.isArray(value)) return value;
|
|
61
|
+
if (typeof value === "string" && value.length > 0) try {
|
|
62
|
+
const parsed = JSON.parse(value);
|
|
63
|
+
if (parsed != null && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
64
|
+
} catch {}
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
25
67
|
var MessageTupleManager = class {
|
|
26
68
|
chunks = {};
|
|
27
69
|
constructor() {
|
|
@@ -29,7 +71,7 @@ var MessageTupleManager = class {
|
|
|
29
71
|
}
|
|
30
72
|
add(serialized, metadata) {
|
|
31
73
|
if (serialized.type.endsWith("MessageChunk")) serialized.type = serialized.type.slice(0, -12).toLowerCase();
|
|
32
|
-
const message =
|
|
74
|
+
const message = tryCoerceMessageLikeToChunk(serialized);
|
|
33
75
|
const chunk = tryConvertToChunk(message);
|
|
34
76
|
const { id } = chunk ?? message;
|
|
35
77
|
if (!id) {
|
|
@@ -40,7 +82,7 @@ var MessageTupleManager = class {
|
|
|
40
82
|
this.chunks[id].metadata = metadata ?? this.chunks[id].metadata;
|
|
41
83
|
if (chunk) {
|
|
42
84
|
const prev = this.chunks[id].chunk;
|
|
43
|
-
this.chunks[id].chunk = (
|
|
85
|
+
this.chunks[id].chunk = (BaseMessageChunk.isInstance(prev) ? prev : null)?.concat(chunk) ?? chunk;
|
|
44
86
|
} else this.chunks[id].chunk = message;
|
|
45
87
|
return id;
|
|
46
88
|
}
|
|
@@ -98,6 +140,6 @@ function ensureHistoryMessageInstances(history, messagesKey = "messages") {
|
|
|
98
140
|
});
|
|
99
141
|
}
|
|
100
142
|
//#endregion
|
|
101
|
-
export { MessageTupleManager, ensureHistoryMessageInstances, ensureMessageInstances, toMessageClass, toMessageDict };
|
|
143
|
+
export { MessageTupleManager, ensureHistoryMessageInstances, ensureMessageInstances, toMessageClass, toMessageDict, tryCoerceMessageLikeToMessage };
|
|
102
144
|
|
|
103
145
|
//# sourceMappingURL=messages.js.map
|
package/dist/ui/messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":[],"sources":["../../src/ui/messages.ts"],"sourcesContent":["import {\n type BaseMessage,\n BaseMessageChunk,\n RemoveMessage,\n convertToChunk,\n coerceMessageLikeToMessage,\n isBaseMessageChunk,\n HumanMessageChunk,\n SystemMessageChunk,\n AIMessageChunk,\n ToolMessageChunk,\n} from \"@langchain/core/messages\";\n\nimport type { Message } from \"../types.messages.js\";\nimport type { ThreadState } from \"../schema.js\";\n\n/**\n * Replaces the `messages` property in a state type with `BaseMessage[]`.\n * Used by framework SDKs to reflect that `ensureHistoryMessageInstances`\n * converts plain message objects to class instances at runtime.\n */\nexport type StateWithBaseMessages<S> = S extends { messages: unknown }\n ? Omit<S, \"messages\"> & { messages: BaseMessage[] }\n : S;\n\n/**\n * Maps a `ThreadState<StateType>[]` so that the `messages` field inside\n * `values` is typed as `BaseMessage[]` instead of `Message[]`.\n */\nexport type HistoryWithBaseMessages<T> = T extends ThreadState<infer S>[]\n ? ThreadState<StateWithBaseMessages<S>>[]\n : T;\n\nexport function tryConvertToChunk(\n message: BaseMessage | BaseMessageChunk\n): BaseMessageChunk | null {\n try {\n if (isBaseMessageChunk(message)) return message;\n return convertToChunk(message);\n } catch {\n return null;\n }\n}\n\nexport function tryCoerceMessageLikeToMessage(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessageChunk(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessageChunk(message);\n }\n\n if (message.type === \"system\") {\n return new SystemMessageChunk(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessageChunk({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n if (message.type === \"remove\" && message.id != null) {\n return new RemoveMessage({ ...message, id: message.id });\n }\n\n return coerceMessageLikeToMessage(message);\n}\n\nexport class MessageTupleManager {\n chunks: Record<\n string,\n {\n chunk?: BaseMessageChunk | BaseMessage;\n metadata?: Record<string, unknown>;\n index?: number;\n }\n > = {};\n\n constructor() {\n this.chunks = {};\n }\n\n add(\n serialized: Message,\n metadata: Record<string, unknown> | undefined\n ): string | null {\n // TODO: this is sometimes sent from the API\n // figure out how to prevent this or move this to LC.js\n if (serialized.type.endsWith(\"MessageChunk\")) {\n // eslint-disable-next-line no-param-reassign\n serialized.type = serialized.type\n .slice(0, -\"MessageChunk\".length)\n .toLowerCase() as Message[\"type\"];\n }\n\n const message = tryCoerceMessageLikeToMessage(serialized);\n const chunk = tryConvertToChunk(message);\n\n const { id } = chunk ?? message;\n if (!id) {\n console.warn(\n \"No message ID found for chunk, ignoring in state\",\n serialized\n );\n return null;\n }\n\n this.chunks[id] ??= {};\n this.chunks[id].metadata = metadata ?? this.chunks[id].metadata;\n if (chunk) {\n const prev = this.chunks[id].chunk;\n this.chunks[id].chunk =\n (isBaseMessageChunk(prev) ? prev : null)?.concat(chunk) ?? chunk;\n } else {\n this.chunks[id].chunk = message;\n }\n\n return id;\n }\n\n clear() {\n this.chunks = {};\n }\n\n get(id: string | null | undefined, defaultIndex?: number) {\n if (id == null) return null;\n if (this.chunks[id] == null) return null;\n if (defaultIndex != null) this.chunks[id].index ??= defaultIndex;\n return this.chunks[id];\n }\n}\n\nexport const toMessageDict = (chunk: BaseMessage): Message => {\n const { type, data } = chunk.toDict();\n return { ...data, type } as Message;\n};\n\n/**\n * Identity converter that keeps @langchain/core class instances.\n * Used by framework SDKs to expose BaseMessage instances instead of plain dicts.\n */\nexport const toMessageClass = (chunk: BaseMessage): BaseMessage => chunk;\n\n/**\n * Ensures all messages in an array are BaseMessage class instances.\n * Messages that are already class instances pass through unchanged.\n * Plain message objects (e.g. from API values/history) are converted\n * via {@link tryCoerceMessageLikeToMessage}.\n */\nexport function ensureMessageInstances(\n messages: (Message | BaseMessage)[]\n): (BaseMessage | BaseMessageChunk)[] {\n return messages.map((msg) => {\n if (typeof (msg as BaseMessage).getType === \"function\") {\n return msg as BaseMessage;\n }\n return tryCoerceMessageLikeToMessage(\n msg as Omit<Message, \"type\"> & { type: string }\n );\n });\n}\n\n/**\n * Converts plain message objects within each history state's values\n * to proper BaseMessage class instances. Returns a new array with\n * shallow-copied states whose messages have been coerced.\n */\nexport function ensureHistoryMessageInstances<\n StateType extends Record<string, unknown>,\n>(\n history: ThreadState<StateType>[],\n messagesKey: string = \"messages\"\n): ThreadState<StateType>[] {\n return history.map((state) => {\n if (state.values == null) return state;\n const messages = state.values[messagesKey];\n if (!Array.isArray(messages)) return state;\n return {\n ...state,\n values: {\n ...state.values,\n [messagesKey]: ensureMessageInstances(messages),\n },\n };\n });\n}\n"],"mappings":";;AAiCA,SAAgB,kBACd,SACyB;AACzB,KAAI;AACF,MAAI,mBAAmB,QAAQ,CAAE,QAAO;AACxC,SAAO,eAAe,QAAQ;SACxB;AACN,SAAO;;;AAIX,SAAgB,8BACd,SACgC;AAChC,KAAI,QAAQ,SAAS,WAAW,QAAQ,SAAS,OAC/C,QAAO,IAAI,kBAAkB,QAAQ;AAGvC,KAAI,QAAQ,SAAS,QAAQ,QAAQ,SAAS,YAC5C,QAAO,IAAI,eAAe,QAAQ;AAGpC,KAAI,QAAQ,SAAS,SACnB,QAAO,IAAI,mBAAmB,QAAQ;AAGxC,KAAI,QAAQ,SAAS,UAAU,kBAAkB,QAC/C,QAAO,IAAI,iBAAiB;EAC1B,GAAG;EACH,cAAc,QAAQ;EACvB,CAAC;AAGJ,KAAI,QAAQ,SAAS,YAAY,QAAQ,MAAM,KAC7C,QAAO,IAAI,cAAc;EAAE,GAAG;EAAS,IAAI,QAAQ;EAAI,CAAC;AAG1D,QAAO,2BAA2B,QAAQ;;AAG5C,IAAa,sBAAb,MAAiC;CAC/B,SAOI,EAAE;CAEN,cAAc;AACZ,OAAK,SAAS,EAAE;;CAGlB,IACE,YACA,UACe;AAGf,MAAI,WAAW,KAAK,SAAS,eAAe,CAE1C,YAAW,OAAO,WAAW,KAC1B,MAAM,GAAG,IAAuB,CAChC,aAAa;EAGlB,MAAM,UAAU,8BAA8B,WAAW;EACzD,MAAM,QAAQ,kBAAkB,QAAQ;EAExC,MAAM,EAAE,OAAO,SAAS;AACxB,MAAI,CAAC,IAAI;AACP,WAAQ,KACN,oDACA,WACD;AACD,UAAO;;AAGT,OAAK,OAAO,QAAQ,EAAE;AACtB,OAAK,OAAO,IAAI,WAAW,YAAY,KAAK,OAAO,IAAI;AACvD,MAAI,OAAO;GACT,MAAM,OAAO,KAAK,OAAO,IAAI;AAC7B,QAAK,OAAO,IAAI,SACb,mBAAmB,KAAK,GAAG,OAAO,OAAO,OAAO,MAAM,IAAI;QAE7D,MAAK,OAAO,IAAI,QAAQ;AAG1B,SAAO;;CAGT,QAAQ;AACN,OAAK,SAAS,EAAE;;CAGlB,IAAI,IAA+B,cAAuB;AACxD,MAAI,MAAM,KAAM,QAAO;AACvB,MAAI,KAAK,OAAO,OAAO,KAAM,QAAO;AACpC,MAAI,gBAAgB,KAAM,MAAK,OAAO,IAAI,UAAU;AACpD,SAAO,KAAK,OAAO;;;AAIvB,MAAa,iBAAiB,UAAgC;CAC5D,MAAM,EAAE,MAAM,SAAS,MAAM,QAAQ;AACrC,QAAO;EAAE,GAAG;EAAM;EAAM;;;;;;AAO1B,MAAa,kBAAkB,UAAoC;;;;;;;AAQnE,SAAgB,uBACd,UACoC;AACpC,QAAO,SAAS,KAAK,QAAQ;AAC3B,MAAI,OAAQ,IAAoB,YAAY,WAC1C,QAAO;AAET,SAAO,8BACL,IACD;GACD;;;;;;;AAQJ,SAAgB,8BAGd,SACA,cAAsB,YACI;AAC1B,QAAO,QAAQ,KAAK,UAAU;AAC5B,MAAI,MAAM,UAAU,KAAM,QAAO;EACjC,MAAM,WAAW,MAAM,OAAO;AAC9B,MAAI,CAAC,MAAM,QAAQ,SAAS,CAAE,QAAO;AACrC,SAAO;GACL,GAAG;GACH,QAAQ;IACN,GAAG,MAAM;KACR,cAAc,uBAAuB,SAAS;IAChD;GACF;GACD"}
|
|
1
|
+
{"version":3,"file":"messages.js","names":[],"sources":["../../src/ui/messages.ts"],"sourcesContent":["import {\n type BaseMessage,\n BaseMessageChunk,\n RemoveMessage,\n convertToChunk,\n coerceMessageLikeToMessage,\n HumanMessageChunk,\n HumanMessage,\n SystemMessageChunk,\n SystemMessage,\n AIMessageChunk,\n AIMessage,\n ToolMessageChunk,\n ToolMessage,\n} from \"@langchain/core/messages\";\n\nimport type { Message } from \"../types.messages.js\";\nimport type { ThreadState } from \"../schema.js\";\n\n/**\n * Replaces the `messages` property in a state type with `BaseMessage[]`.\n * Used by framework SDKs to reflect that `ensureHistoryMessageInstances`\n * converts plain message objects to class instances at runtime.\n */\nexport type StateWithBaseMessages<S> = S extends { messages: unknown }\n ? Omit<S, \"messages\"> & { messages: BaseMessage[] }\n : S;\n\n/**\n * Maps a `ThreadState<StateType>[]` so that the `messages` field inside\n * `values` is typed as `BaseMessage[]` instead of `Message[]`.\n */\nexport type HistoryWithBaseMessages<T> = T extends ThreadState<infer S>[]\n ? ThreadState<StateWithBaseMessages<S>>[]\n : T;\n\nexport function tryConvertToChunk(\n message: BaseMessage | BaseMessageChunk\n): BaseMessageChunk | null {\n try {\n if (BaseMessageChunk.isInstance(message)) return message;\n return convertToChunk(message);\n } catch {\n return null;\n }\n}\n\nexport function tryCoerceMessageLikeToMessage(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessage(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessage(normalizeAIMessageToolCalls(message));\n }\n\n if (message.type === \"system\") {\n return new SystemMessage(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessage({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n if (message.type === \"remove\" && message.id != null) {\n return new RemoveMessage({ ...message, id: message.id });\n }\n\n return coerceMessageLikeToMessage(message);\n}\n\nfunction tryCoerceMessageLikeToChunk(\n message: Omit<Message, \"type\"> & { type: string }\n): BaseMessage | BaseMessageChunk {\n if (message.type === \"human\" || message.type === \"user\") {\n return new HumanMessageChunk(message);\n }\n\n if (message.type === \"ai\" || message.type === \"assistant\") {\n return new AIMessageChunk(normalizeAIMessageToolCalls(message));\n }\n\n if (message.type === \"system\") {\n return new SystemMessageChunk(message);\n }\n\n if (message.type === \"tool\" && \"tool_call_id\" in message) {\n return new ToolMessageChunk({\n ...message,\n tool_call_id: message.tool_call_id as string,\n });\n }\n\n return tryCoerceMessageLikeToMessage(message);\n}\n\ntype ToolCallLike = {\n id?: string;\n name?: string;\n args?: unknown;\n input?: unknown;\n};\n\nfunction normalizeAIMessageToolCalls<\n T extends Omit<Message, \"type\"> & { type: string },\n>(message: T): T {\n const record = message as T & {\n content?: unknown;\n tool_calls?: unknown;\n };\n if (Array.isArray(record.tool_calls) && record.tool_calls.length > 0) {\n return message;\n }\n\n const toolCalls = extractToolCallsFromContent(record.content);\n if (toolCalls.length === 0) return message;\n return {\n ...message,\n tool_calls: toolCalls,\n };\n}\n\nfunction extractToolCallsFromContent(content: unknown) {\n if (!Array.isArray(content)) return [];\n return content.flatMap(\n (\n block\n ): Array<{\n id: string;\n name: string;\n args: Record<string, unknown>;\n type: \"tool_call\";\n }> => {\n if (block == null || typeof block !== \"object\") return [];\n const record = block as ToolCallLike & { type?: unknown };\n if (record.type !== \"tool_call\" && record.type !== \"tool_use\") return [];\n return [\n {\n id: record.id ?? \"\",\n name: record.name ?? \"\",\n args: normalizeToolCallArgs(record.args ?? record.input),\n type: \"tool_call\",\n },\n ];\n }\n );\n}\n\nfunction normalizeToolCallArgs(value: unknown): Record<string, unknown> {\n if (value != null && typeof value === \"object\" && !Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n if (typeof value === \"string\" && value.length > 0) {\n try {\n const parsed = JSON.parse(value);\n if (\n parsed != null &&\n typeof parsed === \"object\" &&\n !Array.isArray(parsed)\n ) {\n return parsed as Record<string, unknown>;\n }\n } catch {\n // Streaming input fragments are expected to be invalid until finalized.\n }\n }\n return {};\n}\n\nexport class MessageTupleManager {\n chunks: Record<\n string,\n {\n chunk?: BaseMessageChunk | BaseMessage;\n metadata?: Record<string, unknown>;\n index?: number;\n }\n > = {};\n\n constructor() {\n this.chunks = {};\n }\n\n add(\n serialized: Message,\n metadata: Record<string, unknown> | undefined\n ): string | null {\n // TODO: this is sometimes sent from the API\n // figure out how to prevent this or move this to LC.js\n if (serialized.type.endsWith(\"MessageChunk\")) {\n // eslint-disable-next-line no-param-reassign\n serialized.type = serialized.type\n .slice(0, -\"MessageChunk\".length)\n .toLowerCase() as Message[\"type\"];\n }\n\n const message = tryCoerceMessageLikeToChunk(serialized);\n const chunk = tryConvertToChunk(message);\n\n const { id } = chunk ?? message;\n if (!id) {\n console.warn(\n \"No message ID found for chunk, ignoring in state\",\n serialized\n );\n return null;\n }\n\n this.chunks[id] ??= {};\n this.chunks[id].metadata = metadata ?? this.chunks[id].metadata;\n if (chunk) {\n const prev = this.chunks[id].chunk;\n this.chunks[id].chunk =\n (BaseMessageChunk.isInstance(prev) ? prev : null)?.concat(chunk) ??\n chunk;\n } else {\n this.chunks[id].chunk = message;\n }\n\n return id;\n }\n\n clear() {\n this.chunks = {};\n }\n\n get(id: string | null | undefined, defaultIndex?: number) {\n if (id == null) return null;\n if (this.chunks[id] == null) return null;\n if (defaultIndex != null) this.chunks[id].index ??= defaultIndex;\n return this.chunks[id];\n }\n}\n\nexport const toMessageDict = (chunk: BaseMessage): Message => {\n const { type, data } = chunk.toDict();\n return { ...data, type } as Message;\n};\n\n/**\n * Identity converter that keeps @langchain/core class instances.\n * Used by framework SDKs to expose BaseMessage instances instead of plain dicts.\n */\nexport const toMessageClass = (chunk: BaseMessage): BaseMessage => chunk;\n\n/**\n * Ensures all messages in an array are BaseMessage class instances.\n * Messages that are already class instances pass through unchanged.\n * Plain message objects (e.g. from API values/history) are converted\n * via {@link tryCoerceMessageLikeToMessage}.\n */\nexport function ensureMessageInstances(\n messages: (Message | BaseMessage)[]\n): (BaseMessage | BaseMessageChunk)[] {\n return messages.map((msg) => {\n if (typeof (msg as BaseMessage).getType === \"function\") {\n return msg as BaseMessage;\n }\n return tryCoerceMessageLikeToMessage(\n msg as Omit<Message, \"type\"> & { type: string }\n );\n });\n}\n\n/**\n * Converts plain message objects within each history state's values\n * to proper BaseMessage class instances. Returns a new array with\n * shallow-copied states whose messages have been coerced.\n */\nexport function ensureHistoryMessageInstances<\n StateType extends Record<string, unknown>,\n>(\n history: ThreadState<StateType>[],\n messagesKey: string = \"messages\"\n): ThreadState<StateType>[] {\n return history.map((state) => {\n if (state.values == null) return state;\n const messages = state.values[messagesKey];\n if (!Array.isArray(messages)) return state;\n return {\n ...state,\n values: {\n ...state.values,\n [messagesKey]: ensureMessageInstances(messages),\n },\n };\n });\n}\n"],"mappings":";;AAoCA,SAAgB,kBACd,SACyB;AACzB,KAAI;AACF,MAAI,iBAAiB,WAAW,QAAQ,CAAE,QAAO;AACjD,SAAO,eAAe,QAAQ;SACxB;AACN,SAAO;;;AAIX,SAAgB,8BACd,SACgC;AAChC,KAAI,QAAQ,SAAS,WAAW,QAAQ,SAAS,OAC/C,QAAO,IAAI,aAAa,QAAQ;AAGlC,KAAI,QAAQ,SAAS,QAAQ,QAAQ,SAAS,YAC5C,QAAO,IAAI,UAAU,4BAA4B,QAAQ,CAAC;AAG5D,KAAI,QAAQ,SAAS,SACnB,QAAO,IAAI,cAAc,QAAQ;AAGnC,KAAI,QAAQ,SAAS,UAAU,kBAAkB,QAC/C,QAAO,IAAI,YAAY;EACrB,GAAG;EACH,cAAc,QAAQ;EACvB,CAAC;AAGJ,KAAI,QAAQ,SAAS,YAAY,QAAQ,MAAM,KAC7C,QAAO,IAAI,cAAc;EAAE,GAAG;EAAS,IAAI,QAAQ;EAAI,CAAC;AAG1D,QAAO,2BAA2B,QAAQ;;AAG5C,SAAS,4BACP,SACgC;AAChC,KAAI,QAAQ,SAAS,WAAW,QAAQ,SAAS,OAC/C,QAAO,IAAI,kBAAkB,QAAQ;AAGvC,KAAI,QAAQ,SAAS,QAAQ,QAAQ,SAAS,YAC5C,QAAO,IAAI,eAAe,4BAA4B,QAAQ,CAAC;AAGjE,KAAI,QAAQ,SAAS,SACnB,QAAO,IAAI,mBAAmB,QAAQ;AAGxC,KAAI,QAAQ,SAAS,UAAU,kBAAkB,QAC/C,QAAO,IAAI,iBAAiB;EAC1B,GAAG;EACH,cAAc,QAAQ;EACvB,CAAC;AAGJ,QAAO,8BAA8B,QAAQ;;AAU/C,SAAS,4BAEP,SAAe;CACf,MAAM,SAAS;AAIf,KAAI,MAAM,QAAQ,OAAO,WAAW,IAAI,OAAO,WAAW,SAAS,EACjE,QAAO;CAGT,MAAM,YAAY,4BAA4B,OAAO,QAAQ;AAC7D,KAAI,UAAU,WAAW,EAAG,QAAO;AACnC,QAAO;EACL,GAAG;EACH,YAAY;EACb;;AAGH,SAAS,4BAA4B,SAAkB;AACrD,KAAI,CAAC,MAAM,QAAQ,QAAQ,CAAE,QAAO,EAAE;AACtC,QAAO,QAAQ,SAEX,UAMI;AACJ,MAAI,SAAS,QAAQ,OAAO,UAAU,SAAU,QAAO,EAAE;EACzD,MAAM,SAAS;AACf,MAAI,OAAO,SAAS,eAAe,OAAO,SAAS,WAAY,QAAO,EAAE;AACxE,SAAO,CACL;GACE,IAAI,OAAO,MAAM;GACjB,MAAM,OAAO,QAAQ;GACrB,MAAM,sBAAsB,OAAO,QAAQ,OAAO,MAAM;GACxD,MAAM;GACP,CACF;GAEJ;;AAGH,SAAS,sBAAsB,OAAyC;AACtE,KAAI,SAAS,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,CACrE,QAAO;AAET,KAAI,OAAO,UAAU,YAAY,MAAM,SAAS,EAC9C,KAAI;EACF,MAAM,SAAS,KAAK,MAAM,MAAM;AAChC,MACE,UAAU,QACV,OAAO,WAAW,YAClB,CAAC,MAAM,QAAQ,OAAO,CAEtB,QAAO;SAEH;AAIV,QAAO,EAAE;;AAGX,IAAa,sBAAb,MAAiC;CAC/B,SAOI,EAAE;CAEN,cAAc;AACZ,OAAK,SAAS,EAAE;;CAGlB,IACE,YACA,UACe;AAGf,MAAI,WAAW,KAAK,SAAS,eAAe,CAE1C,YAAW,OAAO,WAAW,KAC1B,MAAM,GAAG,IAAuB,CAChC,aAAa;EAGlB,MAAM,UAAU,4BAA4B,WAAW;EACvD,MAAM,QAAQ,kBAAkB,QAAQ;EAExC,MAAM,EAAE,OAAO,SAAS;AACxB,MAAI,CAAC,IAAI;AACP,WAAQ,KACN,oDACA,WACD;AACD,UAAO;;AAGT,OAAK,OAAO,QAAQ,EAAE;AACtB,OAAK,OAAO,IAAI,WAAW,YAAY,KAAK,OAAO,IAAI;AACvD,MAAI,OAAO;GACT,MAAM,OAAO,KAAK,OAAO,IAAI;AAC7B,QAAK,OAAO,IAAI,SACb,iBAAiB,WAAW,KAAK,GAAG,OAAO,OAAO,OAAO,MAAM,IAChE;QAEF,MAAK,OAAO,IAAI,QAAQ;AAG1B,SAAO;;CAGT,QAAQ;AACN,OAAK,SAAS,EAAE;;CAGlB,IAAI,IAA+B,cAAuB;AACxD,MAAI,MAAM,KAAM,QAAO;AACvB,MAAI,KAAK,OAAO,OAAO,KAAM,QAAO;AACpC,MAAI,gBAAgB,KAAM,MAAK,OAAO,IAAI,UAAU;AACpD,SAAO,KAAK,OAAO;;;AAIvB,MAAa,iBAAiB,UAAgC;CAC5D,MAAM,EAAE,MAAM,SAAS,MAAM,QAAQ;AACrC,QAAO;EAAE,GAAG;EAAM;EAAM;;;;;;AAO1B,MAAa,kBAAkB,UAAoC;;;;;;;AAQnE,SAAgB,uBACd,UACoC;AACpC,QAAO,SAAS,KAAK,QAAQ;AAC3B,MAAI,OAAQ,IAAoB,YAAY,WAC1C,QAAO;AAET,SAAO,8BACL,IACD;GACD;;;;;;;AAQJ,SAAgB,8BAGd,SACA,cAAsB,YACI;AAC1B,QAAO,QAAQ,KAAK,UAAU;AAC5B,MAAI,MAAM,UAAU,KAAM,QAAO;EACjC,MAAM,WAAW,MAAM,OAAO;AAC9B,MAAI,CAAC,MAAM,QAAQ,SAAS,CAAE,QAAO;AACrC,SAAO;GACL,GAAG;GACH,QAAQ;IACN,GAAG,MAAM;KACR,cAAc,uBAAuB,SAAS;IAChD;GACF;GACD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_headless_tools = require("../headless-tools.cjs");
|
|
2
1
|
const require_messages = require("./messages.cjs");
|
|
2
|
+
const require_headless_tools = require("../headless-tools.cjs");
|
|
3
3
|
const require_tools = require("../utils/tools.cjs");
|
|
4
4
|
const require_manager = require("./manager.cjs");
|
|
5
5
|
const require_interrupts = require("./interrupts.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { flushPendingHeadlessToolInterrupts } from "../headless-tools.js";
|
|
2
1
|
import { MessageTupleManager, ensureMessageInstances, toMessageClass } from "./messages.js";
|
|
2
|
+
import { flushPendingHeadlessToolInterrupts } from "../headless-tools.js";
|
|
3
3
|
import { getToolCallsWithResults } from "../utils/tools.js";
|
|
4
4
|
import { StreamManager } from "./manager.js";
|
|
5
5
|
import { extractInterrupts, userFacingInterruptsFromValuesArray } from "./interrupts.js";
|
package/dist/ui/orchestrator.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_errors = require("./errors.cjs");
|
|
2
|
-
const require_headless_tools = require("../headless-tools.cjs");
|
|
3
1
|
const require_messages = require("./messages.cjs");
|
|
2
|
+
const require_headless_tools = require("../headless-tools.cjs");
|
|
3
|
+
const require_errors = require("./errors.cjs");
|
|
4
4
|
const require_tools = require("../utils/tools.cjs");
|
|
5
5
|
const require_manager = require("./manager.cjs");
|
|
6
6
|
const require_utils = require("./utils.cjs");
|
|
@@ -2,7 +2,7 @@ import { Interrupt, ThreadState } from "../schema.cjs";
|
|
|
2
2
|
import { DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.cjs";
|
|
3
3
|
import { StreamMode } from "../types.stream.cjs";
|
|
4
4
|
import { StreamEvent } from "../types.cjs";
|
|
5
|
-
import { Client } from "../client.cjs";
|
|
5
|
+
import { Client } from "../client/index.cjs";
|
|
6
6
|
import { BagTemplate } from "../types.template.cjs";
|
|
7
7
|
import { AnyStreamOptions, GetConfigurableType, GetInterruptType, MessageMetadata, SubagentStreamInterface, SubmitOptions, UseStreamThread } from "./types.cjs";
|
|
8
8
|
import { Sequence } from "./branching.cjs";
|
|
@@ -2,7 +2,7 @@ import { Interrupt, ThreadState } from "../schema.js";
|
|
|
2
2
|
import { DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.js";
|
|
3
3
|
import { StreamMode } from "../types.stream.js";
|
|
4
4
|
import { StreamEvent } from "../types.js";
|
|
5
|
-
import { Client } from "../client.js";
|
|
5
|
+
import { Client } from "../client/index.js";
|
|
6
6
|
import { BagTemplate } from "../types.template.js";
|
|
7
7
|
import { AnyStreamOptions, GetConfigurableType, GetInterruptType, MessageMetadata, SubagentStreamInterface, SubmitOptions, UseStreamThread } from "./types.js";
|
|
8
8
|
import { Sequence } from "./branching.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","names":[],"sources":["../../src/ui/orchestrator.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","names":[],"sources":["../../src/ui/orchestrator.ts"],"mappings":"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"}
|
package/dist/ui/orchestrator.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { StreamError } from "./errors.js";
|
|
2
|
-
import { flushPendingHeadlessToolInterrupts } from "../headless-tools.js";
|
|
3
1
|
import { MessageTupleManager, ensureHistoryMessageInstances, ensureMessageInstances, toMessageClass } from "./messages.js";
|
|
2
|
+
import { flushPendingHeadlessToolInterrupts } from "../headless-tools.js";
|
|
3
|
+
import { StreamError } from "./errors.js";
|
|
4
4
|
import { getToolCallsWithResults } from "../utils/tools.js";
|
|
5
5
|
import { StreamManager } from "./manager.js";
|
|
6
6
|
import { filterStream, onFinishRequiresThreadState, unique } from "./utils.js";
|
|
@@ -70,7 +70,7 @@ import { BaseStream } from "./base.cjs";
|
|
|
70
70
|
* It does NOT include subagent streaming features. For those, use
|
|
71
71
|
* {@link UseDeepAgentStream} with `createDeepAgent`.
|
|
72
72
|
*/
|
|
73
|
-
interface UseAgentStream<StateType extends
|
|
73
|
+
interface UseAgentStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, Bag extends BagTemplate = BagTemplate> extends BaseStream<StateType, ToolCall, Bag> {
|
|
74
74
|
/**
|
|
75
75
|
* Tool calls paired with their results.
|
|
76
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.cts","names":[],"sources":["../../../src/ui/stream/agent.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.cts","names":[],"sources":["../../../src/ui/stream/agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA1EiB,cAAA,4BACY,MAAA,8BAChB,eAAA,cACC,WAAA,GAAc,WAAA,UAClB,UAAA,CAAW,SAAA,EAAW,QAAA,EAAU,GAAA;;;;;;;;;;;;;;;;;;EAkBxC,SAAA,EAAW,kBAAA,CAAmB,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B9B,YAAA,GACE,OAAA,EAAS,SAAA,CAAU,QAAA,MAChB,kBAAA,CAAmB,QAAA;AAAA;;;;;;;;;;;;;;;;;;;;;UAuBT,qBAAA,mBACG,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,UAClB,gBAAA,CAAiB,SAAA,EAAW,GAAA"}
|
|
@@ -70,7 +70,7 @@ import { BaseStream } from "./base.js";
|
|
|
70
70
|
* It does NOT include subagent streaming features. For those, use
|
|
71
71
|
* {@link UseDeepAgentStream} with `createDeepAgent`.
|
|
72
72
|
*/
|
|
73
|
-
interface UseAgentStream<StateType extends
|
|
73
|
+
interface UseAgentStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, Bag extends BagTemplate = BagTemplate> extends BaseStream<StateType, ToolCall, Bag> {
|
|
74
74
|
/**
|
|
75
75
|
* Tool calls paired with their results.
|
|
76
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","names":[],"sources":["../../../src/ui/stream/agent.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","names":[],"sources":["../../../src/ui/stream/agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA1EiB,cAAA,4BACY,MAAA,8BAChB,eAAA,cACC,WAAA,GAAc,WAAA,UAClB,UAAA,CAAW,SAAA,EAAW,QAAA,EAAU,GAAA;;;;;;;;;;;;;;;;;;EAkBxC,SAAA,EAAW,kBAAA,CAAmB,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B9B,YAAA,GACE,OAAA,EAAS,SAAA,CAAU,QAAA,MAChB,kBAAA,CAAmB,QAAA;AAAA;;;;;;;;;;;;;;;;;;;;;UAuBT,qBAAA,mBACG,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,UAClB,gBAAA,CAAiB,SAAA,EAAW,GAAA"}
|
|
@@ -2,13 +2,14 @@ import { Interrupt, ThreadState } from "../../schema.cjs";
|
|
|
2
2
|
import { DefaultToolCall, Message } from "../../types.messages.cjs";
|
|
3
3
|
import { StreamMode, ToolProgress } from "../../types.stream.cjs";
|
|
4
4
|
import { StreamEvent } from "../../types.cjs";
|
|
5
|
-
import { Client } from "../../client.cjs";
|
|
5
|
+
import { Client } from "../../client/index.cjs";
|
|
6
6
|
import { BagTemplate } from "../../types.template.cjs";
|
|
7
7
|
import { GetConfigurableType, GetInterruptType, GetUpdateType, MessageMetadata, SubmitOptions } from "../types.cjs";
|
|
8
8
|
import { Sequence } from "../branching.cjs";
|
|
9
9
|
import { QueueInterface } from "../queue.cjs";
|
|
10
10
|
|
|
11
11
|
//#region src/ui/stream/base.d.ts
|
|
12
|
+
type StateRecord<T> = T extends object ? T & Record<string, unknown> : Record<string, unknown>;
|
|
12
13
|
/**
|
|
13
14
|
* Base stream interface shared by all stream types.
|
|
14
15
|
*
|
|
@@ -34,7 +35,7 @@ import { QueueInterface } from "../queue.cjs";
|
|
|
34
35
|
* // - UseDeepAgentStream for DeepAgent (createDeepAgent)
|
|
35
36
|
* ```
|
|
36
37
|
*/
|
|
37
|
-
interface BaseStream<StateType extends
|
|
38
|
+
interface BaseStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, Bag extends BagTemplate = BagTemplate> {
|
|
38
39
|
/**
|
|
39
40
|
* The current state values of the stream.
|
|
40
41
|
* Updated as streaming events are received.
|
|
@@ -85,7 +86,7 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
85
86
|
* @param options - Optional configuration for the submission
|
|
86
87
|
* @returns A promise that resolves when the stream completes
|
|
87
88
|
*/
|
|
88
|
-
submit: (values: GetUpdateType<Bag, StateType
|
|
89
|
+
submit: (values: GetUpdateType<Bag, StateRecord<StateType>> | null | undefined, options?: SubmitOptions<StateRecord<StateType>, GetConfigurableType<Bag>>) => Promise<void>;
|
|
89
90
|
/**
|
|
90
91
|
* The current branch of the thread.
|
|
91
92
|
* Used for navigating between different conversation branches.
|
|
@@ -114,7 +115,7 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
114
115
|
* @param index - The index of the message in the thread
|
|
115
116
|
* @returns The metadata for the message, or undefined if not found
|
|
116
117
|
*/
|
|
117
|
-
getMessagesMetadata: (message: Message<ToolCall>, index?: number) => MessageMetadata<StateType
|
|
118
|
+
getMessagesMetadata: (message: Message<ToolCall>, index?: number) => MessageMetadata<StateRecord<StateType>> | undefined;
|
|
118
119
|
/**
|
|
119
120
|
* Progress of tool executions during streaming. Populated when stream mode includes "tools"
|
|
120
121
|
* and tools yield or report progress.
|
|
@@ -152,8 +153,8 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
152
153
|
* Server-side submission queue. Pending runs created via
|
|
153
154
|
* `multitaskStrategy: "enqueue"` when submitting while the agent is busy.
|
|
154
155
|
*/
|
|
155
|
-
queue: QueueInterface<StateType
|
|
156
|
+
queue: QueueInterface<StateRecord<StateType>, SubmitOptions<StateRecord<StateType>, GetConfigurableType<Bag>>>;
|
|
156
157
|
}
|
|
157
158
|
//#endregion
|
|
158
|
-
export { BaseStream };
|
|
159
|
+
export { BaseStream, StateRecord };
|
|
159
160
|
//# sourceMappingURL=base.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.cts","names":[],"sources":["../../../src/ui/stream/base.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.cts","names":[],"sources":["../../../src/ui/stream/base.ts"],"mappings":";;;;;;;;;;;KAyBY,WAAA,MAAiB,CAAA,kBACzB,CAAA,GAAI,MAAA,oBACJ,MAAA;;;;;;;;;;AA2BJ;;;;;;;;;;;;;;;;UAAiB,UAAA,4BACY,MAAA,8BAChB,eAAA,cACC,WAAA,GAAc,WAAA;EA6DF;;;;EAvDxB,MAAA,EAAQ,SAAA;EAwDkB;;;;EAlD1B,KAAA;EAqEqB;;;;EA/DrB,SAAA;EAgFW;;;;EA1EX,eAAA;EAuFQ;;;;;EAhFR,QAAA,EAAU,OAAA,CAAQ,QAAA;EAsHhB;;;;;EA/GF,SAAA,EAAW,SAAA,CAAU,gBAAA,CAAiB,GAAA;EA8G/B;;;;;EAvGP,UAAA,EAAY,SAAA,CAAU,gBAAA,CAAiB,GAAA;EA9C5B;;;;EAoDX,IAAA,QAAY,OAAA;EA7CJ;;;;;;;EAsDR,MAAA,GACE,MAAA,EAAQ,aAAA,CAAc,GAAA,EAAK,WAAA,CAAY,SAAA,uBACvC,OAAA,GAAU,aAAA,CAAc,WAAA,CAAY,SAAA,GAAY,mBAAA,CAAoB,GAAA,OACjE,OAAA;EAzBM;;;;EA+BX,MAAA;EAxBsB;;;;EA8BtB,SAAA,GAAY,MAAA;EAdF;;;;EAoBV,OAAA,EAAS,WAAA,CAAY,SAAA;EAnBT;;;;EAyBZ,uBAAA,EAAyB,QAAA,CAAS,SAAA;EAzBhC;;;;;;;;EAmCF,mBAAA,GACE,OAAA,EAAS,OAAA,CAAQ,QAAA,GACjB,KAAA,cACG,eAAA,CAAgB,WAAA,CAAY,SAAA;EAbR;;;;EAmBzB,YAAA,EAAc,YAAA;EARZ;;;EAaF,MAAA,EAAQ,MAAA;EAXyB;;;EAgBjC,WAAA;EALQ;;;;;;;EAcR,UAAA,GACE,KAAA,UACA,WAAA,WACA,OAAA;IACE,UAAA,GAAa,UAAA,GAAa,UAAA;IAC1B,MAAA,IAAU,KAAA;MACR,EAAA;MACA,KAAA,EAAO,WAAA;MACP,IAAA;IAAA;EAAA,MAGD,OAAA;EAAA;;;;EAML,YAAA,GAAe,WAAA;EAOb;;;;EADF,KAAA,EAAO,cAAA,CACL,WAAA,CAAY,SAAA,GACZ,aAAA,CAAc,WAAA,CAAY,SAAA,GAAY,mBAAA,CAAoB,GAAA;AAAA"}
|
package/dist/ui/stream/base.d.ts
CHANGED
|
@@ -2,13 +2,14 @@ import { Interrupt, ThreadState } from "../../schema.js";
|
|
|
2
2
|
import { DefaultToolCall, Message } from "../../types.messages.js";
|
|
3
3
|
import { StreamMode, ToolProgress } from "../../types.stream.js";
|
|
4
4
|
import { StreamEvent } from "../../types.js";
|
|
5
|
-
import { Client } from "../../client.js";
|
|
5
|
+
import { Client } from "../../client/index.js";
|
|
6
6
|
import { BagTemplate } from "../../types.template.js";
|
|
7
7
|
import { GetConfigurableType, GetInterruptType, GetUpdateType, MessageMetadata, SubmitOptions } from "../types.js";
|
|
8
8
|
import { Sequence } from "../branching.js";
|
|
9
9
|
import { QueueInterface } from "../queue.js";
|
|
10
10
|
|
|
11
11
|
//#region src/ui/stream/base.d.ts
|
|
12
|
+
type StateRecord<T> = T extends object ? T & Record<string, unknown> : Record<string, unknown>;
|
|
12
13
|
/**
|
|
13
14
|
* Base stream interface shared by all stream types.
|
|
14
15
|
*
|
|
@@ -34,7 +35,7 @@ import { QueueInterface } from "../queue.js";
|
|
|
34
35
|
* // - UseDeepAgentStream for DeepAgent (createDeepAgent)
|
|
35
36
|
* ```
|
|
36
37
|
*/
|
|
37
|
-
interface BaseStream<StateType extends
|
|
38
|
+
interface BaseStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, Bag extends BagTemplate = BagTemplate> {
|
|
38
39
|
/**
|
|
39
40
|
* The current state values of the stream.
|
|
40
41
|
* Updated as streaming events are received.
|
|
@@ -85,7 +86,7 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
85
86
|
* @param options - Optional configuration for the submission
|
|
86
87
|
* @returns A promise that resolves when the stream completes
|
|
87
88
|
*/
|
|
88
|
-
submit: (values: GetUpdateType<Bag, StateType
|
|
89
|
+
submit: (values: GetUpdateType<Bag, StateRecord<StateType>> | null | undefined, options?: SubmitOptions<StateRecord<StateType>, GetConfigurableType<Bag>>) => Promise<void>;
|
|
89
90
|
/**
|
|
90
91
|
* The current branch of the thread.
|
|
91
92
|
* Used for navigating between different conversation branches.
|
|
@@ -114,7 +115,7 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
114
115
|
* @param index - The index of the message in the thread
|
|
115
116
|
* @returns The metadata for the message, or undefined if not found
|
|
116
117
|
*/
|
|
117
|
-
getMessagesMetadata: (message: Message<ToolCall>, index?: number) => MessageMetadata<StateType
|
|
118
|
+
getMessagesMetadata: (message: Message<ToolCall>, index?: number) => MessageMetadata<StateRecord<StateType>> | undefined;
|
|
118
119
|
/**
|
|
119
120
|
* Progress of tool executions during streaming. Populated when stream mode includes "tools"
|
|
120
121
|
* and tools yield or report progress.
|
|
@@ -152,8 +153,8 @@ interface BaseStream<StateType extends Record<string, unknown> = Record<string,
|
|
|
152
153
|
* Server-side submission queue. Pending runs created via
|
|
153
154
|
* `multitaskStrategy: "enqueue"` when submitting while the agent is busy.
|
|
154
155
|
*/
|
|
155
|
-
queue: QueueInterface<StateType
|
|
156
|
+
queue: QueueInterface<StateRecord<StateType>, SubmitOptions<StateRecord<StateType>, GetConfigurableType<Bag>>>;
|
|
156
157
|
}
|
|
157
158
|
//#endregion
|
|
158
|
-
export { BaseStream };
|
|
159
|
+
export { BaseStream, StateRecord };
|
|
159
160
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/ui/stream/base.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/ui/stream/base.ts"],"mappings":";;;;;;;;;;;KAyBY,WAAA,MAAiB,CAAA,kBACzB,CAAA,GAAI,MAAA,oBACJ,MAAA;;;;;;;;;;;AA2BJ;;;;;;;;;;;;;;;UAAiB,UAAA,4BACY,MAAA,8BAChB,eAAA,cACC,WAAA,GAAc,WAAA;EAmDd;;;;EA7CZ,MAAA,EAAQ,SAAA;EAwD8B;;;;EAlDtC,KAAA;EAmDK;;;;EA7CL,SAAA;EAgFmB;;;;EA1EnB,eAAA;EAkFc;;;;;EA3Ed,QAAA,EAAU,OAAA,CAAQ,QAAA;EAsHJ;;;;;EA/Gd,SAAA,EAAW,SAAA,CAAU,gBAAA,CAAiB,GAAA;EAgHpC;;;;;EAzGF,UAAA,EAAY,SAAA,CAAU,gBAAA,CAAiB,GAAA;EA9CvC;;;;EAoDA,IAAA,QAAY,OAAA;EA7CZ;;;;;;;EAsDA,MAAA,GACE,MAAA,EAAQ,aAAA,CAAc,GAAA,EAAK,WAAA,CAAY,SAAA,uBACvC,OAAA,GAAU,aAAA,CAAc,WAAA,CAAY,SAAA,GAAY,mBAAA,CAAoB,GAAA,OACjE,OAAA;EAzBL;;;;EA+BA,MAAA;EAxBY;;;;EA8BZ,SAAA,GAAY,MAAA;EAfZ;;;;EAqBA,OAAA,EAAS,WAAA,CAAY,SAAA;EApBnB;;;;EA0BF,uBAAA,EAAyB,QAAA,CAAS,SAAA;EAzBoC;;;;;;;;EAmCtE,mBAAA,GACE,OAAA,EAAS,OAAA,CAAQ,QAAA,GACjB,KAAA,cACG,eAAA,CAAgB,WAAA,CAAY,SAAA;EAbjC;;;;EAmBA,YAAA,EAAc,YAAA;EARK;;;EAanB,MAAA,EAAQ,MAAA;EAXa;;;EAgBrB,WAAA;EALA;;;;;;;EAcA,UAAA,GACE,KAAA,UACA,WAAA,WACA,OAAA;IACE,UAAA,GAAa,UAAA,GAAa,UAAA;IAC1B,MAAA,IAAU,KAAA;MACR,EAAA;MACA,KAAA,EAAO,WAAA;MACP,IAAA;IAAA;EAAA,MAGD,OAAA;EARH;;;;EAcF,YAAA,GAAe,WAAA;EAMR;;;;EAAP,KAAA,EAAO,cAAA,CACL,WAAA,CAAY,SAAA,GACZ,aAAA,CAAc,WAAA,CAAY,SAAA,GAAY,mBAAA,CAAoB,GAAA;AAAA"}
|
|
@@ -76,7 +76,7 @@ import { UseAgentStream, UseAgentStreamOptions } from "./agent.cjs";
|
|
|
76
76
|
* It also enables the `filterSubagentMessages` option to exclude subagent
|
|
77
77
|
* messages from the main `messages` array.
|
|
78
78
|
*/
|
|
79
|
-
interface UseDeepAgentStream<StateType extends
|
|
79
|
+
interface UseDeepAgentStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, SubagentStates extends Record<string, unknown> = DefaultSubagentStates, Bag extends BagTemplate = BagTemplate> extends UseAgentStream<StateType, ToolCall, Bag> {
|
|
80
80
|
/**
|
|
81
81
|
* All currently active and completed subagent streams.
|
|
82
82
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-agent.d.cts","names":[],"sources":["../../../src/ui/stream/deep-agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyFiB,kBAAA,
|
|
1
|
+
{"version":3,"file":"deep-agent.d.cts","names":[],"sources":["../../../src/ui/stream/deep-agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyFiB,kBAAA,4BACY,MAAA,8BAChB,eAAA,yBACY,MAAA,oBAA0B,qBAAA,cACrC,WAAA,GAAc,WAAA,UAClB,cAAA,CAAe,SAAA,EAAW,QAAA,EAAU,GAAA;EA2EhC;;;;;;;;;;;;;;;;;EAzDZ,SAAA,EAAW,GAAA,SAET,uBAAA,CACE,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;EAgIR;;;;;;AA8BJ;;;;;;;;;;;;EAxIE,eAAA,EAAiB,uBAAA,CACf,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;EAsIU;;;;;;;;;;;;;;;;;;EAjHlB,WAAA,GACE,UAAA,aAEE,uBAAA,CACE,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BZ,kBAAA;;;;;yBAKuB,cAAA,WACnB,IAAA,EAAM,KAAA,GACL,uBAAA,CAAwB,cAAA,CAAe,KAAA,GAAQ,QAAA,EAAU,KAAA;;;;;KAO1D,IAAA,WACC,uBAAA,CAAwB,MAAA,mBAAyB,QAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BtD,qBAAA,GACE,SAAA,aACG,uBAAA,CACH,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;UA4BO,yBAAA,mBACG,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,UAClB,qBAAA,CAAsB,SAAA,EAAW,GAAA;;;;;;;;;;;;;;;;;;;;;;EAsBzC,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA0BA,sBAAA;AAAA"}
|
|
@@ -76,7 +76,7 @@ import { UseAgentStream, UseAgentStreamOptions } from "./agent.js";
|
|
|
76
76
|
* It also enables the `filterSubagentMessages` option to exclude subagent
|
|
77
77
|
* messages from the main `messages` array.
|
|
78
78
|
*/
|
|
79
|
-
interface UseDeepAgentStream<StateType extends
|
|
79
|
+
interface UseDeepAgentStream<StateType extends object = Record<string, unknown>, ToolCall = DefaultToolCall, SubagentStates extends Record<string, unknown> = DefaultSubagentStates, Bag extends BagTemplate = BagTemplate> extends UseAgentStream<StateType, ToolCall, Bag> {
|
|
80
80
|
/**
|
|
81
81
|
* All currently active and completed subagent streams.
|
|
82
82
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-agent.d.ts","names":[],"sources":["../../../src/ui/stream/deep-agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyFiB,kBAAA,
|
|
1
|
+
{"version":3,"file":"deep-agent.d.ts","names":[],"sources":["../../../src/ui/stream/deep-agent.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyFiB,kBAAA,4BACY,MAAA,8BAChB,eAAA,yBACY,MAAA,oBAA0B,qBAAA,cACrC,WAAA,GAAc,WAAA,UAClB,cAAA,CAAe,SAAA,EAAW,QAAA,EAAU,GAAA;EA2EhC;;;;;;;;;;;;;;;;;EAzDZ,SAAA,EAAW,GAAA,SAET,uBAAA,CACE,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;EAgIR;;;;;;AA8BJ;;;;;;;;;;;;EAxIE,eAAA,EAAiB,uBAAA,CACf,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;EAsIU;;;;;;;;;;;;;;;;;;EAjHlB,WAAA,GACE,UAAA,aAEE,uBAAA,CACE,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BZ,kBAAA;;;;;yBAKuB,cAAA,WACnB,IAAA,EAAM,KAAA,GACL,uBAAA,CAAwB,cAAA,CAAe,KAAA,GAAQ,QAAA,EAAU,KAAA;;;;;KAO1D,IAAA,WACC,uBAAA,CAAwB,MAAA,mBAAyB,QAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BtD,qBAAA,GACE,SAAA,aACG,uBAAA,CACH,cAAA,OAAqB,cAAA,GACrB,QAAA,QACM,cAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;UA4BO,yBAAA,mBACG,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,UAClB,qBAAA,CAAsB,SAAA,EAAW,GAAA;;;;;;;;;;;;;;;;;;;;;;EAsBzC,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;EA0BA,sBAAA;AAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DefaultToolCall } from "../../types.messages.cjs";
|
|
2
2
|
import { BagTemplate } from "../../types.template.cjs";
|
|
3
3
|
import { AgentTypeConfigLike, DeepAgentTypeConfigLike, DefaultSubagentStates, InferAgentState, InferAgentToolCalls, SubagentStateMap, UseStreamOptions } from "../types.cjs";
|
|
4
|
-
import { BaseStream } from "./base.cjs";
|
|
4
|
+
import { BaseStream, StateRecord } from "./base.cjs";
|
|
5
5
|
import { UseAgentStream, UseAgentStreamOptions } from "./agent.cjs";
|
|
6
6
|
import { UseDeepAgentStream, UseDeepAgentStreamOptions } from "./deep-agent.cjs";
|
|
7
7
|
|
|
@@ -33,9 +33,9 @@ type InferStateType<T> = T extends {
|
|
|
33
33
|
"~agentTypes": unknown;
|
|
34
34
|
} ? InferAgentState<T> : T extends {
|
|
35
35
|
"~RunOutput": infer S;
|
|
36
|
-
} ? S extends
|
|
36
|
+
} ? S extends object ? S : Record<string, unknown> : T extends {
|
|
37
37
|
"~OutputType": infer O;
|
|
38
|
-
} ? O extends
|
|
38
|
+
} ? O extends object ? O : Record<string, unknown> : [T] extends [object] ? T : Record<string, unknown>;
|
|
39
39
|
/**
|
|
40
40
|
* Infer the node names from a compiled graph.
|
|
41
41
|
*
|
|
@@ -152,7 +152,7 @@ type ResolveStreamInterface<T, Bag extends BagTemplate = BagTemplate> = IsDeepAg
|
|
|
152
152
|
* // AgentOptions.filterSubagentMessages does NOT exist
|
|
153
153
|
* ```
|
|
154
154
|
*/
|
|
155
|
-
type ResolveStreamOptions<T, Bag extends BagTemplate = BagTemplate> = IsDeepAgent<T> extends true ? UseDeepAgentStreamOptions<InferStateType<T
|
|
155
|
+
type ResolveStreamOptions<T, Bag extends BagTemplate = BagTemplate> = IsDeepAgent<T> extends true ? UseDeepAgentStreamOptions<StateRecord<InferStateType<T>>, Bag> : IsReactAgent<T> extends true ? UseAgentStreamOptions<StateRecord<InferStateType<T>>, Bag> : UseStreamOptions<StateRecord<InferStateType<T>>, Bag>;
|
|
156
156
|
/**
|
|
157
157
|
* Infer the Bag type from an agent, defaulting to the provided Bag.
|
|
158
158
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/ui/stream/index.ts"],"mappings":";;;;;;;;;;;KAgDK,WAAA,MAAiB,CAAA;EAAY,iBAAA,EAAmB,uBAAA;AAAA;;;;KAOhD,YAAA,MAAkB,CAAA;EAAY,aAAA,EAAe,mBAAA;AAAA,IAC9C,CAAA;EAAY,iBAAA;AAAA;;;;;;;;;;KAkBJ,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,eAAA,CAAgB,CAAA,IAChB,CAAA;EAAY,YAAA;AAAA,IACV,CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/ui/stream/index.ts"],"mappings":";;;;;;;;;;;KAgDK,WAAA,MAAiB,CAAA;EAAY,iBAAA,EAAmB,uBAAA;AAAA;;;;KAOhD,YAAA,MAAkB,CAAA;EAAY,aAAA,EAAe,mBAAA;AAAA,IAC9C,CAAA;EAAY,iBAAA;AAAA;;;;;;;;;;KAkBJ,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,eAAA,CAAgB,CAAA,IAChB,CAAA;EAAY,YAAA;AAAA,IACV,CAAA,kBACE,CAAA,GACA,MAAA,oBACF,CAAA;EAAY,aAAA;AAAA,IACV,CAAA,kBACE,CAAA,GACA,MAAA,qBACD,CAAA,qBACC,CAAA,GACA,MAAA;;;;;;;;;;;;;;;;;KAkBE,cAAA,MAAoB,CAAA;EAAY,WAAA;AAAA,IACxC,CAAA,kBACE,OAAA,CAAQ,CAAA;;AAFd;;;;;;;;;;;;;;;;KAuBY,oBAAA,MAA0B,CAAA;EAAY,iBAAA;AAAA,IAC9C,CAAA,SAAU,MAAA,oBACR,CAAA,GACA,MAAA,SAAe,MAAA,qBACjB,MAAA,SAAe,MAAA;;;;;;;KAQP,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,mBAAA,CAAoB,CAAA,IACpB,eAAA;;;;;;;KAQQ,mBAAA,MAAyB,CAAA;EAAY,iBAAA;AAAA,IAC7C,gBAAA,CAAiB,CAAA,EAAG,mBAAA,CAAoB,CAAA,KACxC,qBAAA;;;;;AAZJ;;;;;;;;;;;;;;;;;AAUA;;;;;;;;;;;KAwCY,sBAAA,gBAAsC,WAAA,GAAc,WAAA,IAC9D,WAAA,CAAY,CAAA,iBACR,kBAAA,CACE,cAAA,CAAe,CAAA,GACf,cAAA,CAAe,CAAA,GACf,mBAAA,CAAoB,CAAA,GACpB,GAAA,IAEF,YAAA,CAAa,CAAA,iBACX,cAAA,CAAe,cAAA,CAAe,CAAA,GAAI,cAAA,CAAe,CAAA,GAAI,GAAA,IACrD,UAAA,CAAW,cAAA,CAAe,CAAA,GAAI,cAAA,CAAe,CAAA,GAAI,GAAA;;;;;;;;;;AAVzD;;;;;;;;;;;;;;;;;KAsCY,oBAAA,gBAAoC,WAAA,GAAc,WAAA,IAC5D,WAAA,CAAY,CAAA,iBACR,yBAAA,CAA0B,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA,IAC1D,YAAA,CAAa,CAAA,iBACX,qBAAA,CAAsB,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA,IACtD,gBAAA,CAAiB,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA;;;;;;;KAY7C,QAAA,cAAsB,WAAA,GAAc,WAAA,IAAe,CAAA;EAC7D,aAAA;AAAA,IAEE,WAAA,GACA,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DefaultToolCall } from "../../types.messages.js";
|
|
2
2
|
import { BagTemplate } from "../../types.template.js";
|
|
3
3
|
import { AgentTypeConfigLike, DeepAgentTypeConfigLike, DefaultSubagentStates, InferAgentState, InferAgentToolCalls, SubagentStateMap, UseStreamOptions } from "../types.js";
|
|
4
|
-
import { BaseStream } from "./base.js";
|
|
4
|
+
import { BaseStream, StateRecord } from "./base.js";
|
|
5
5
|
import { UseAgentStream, UseAgentStreamOptions } from "./agent.js";
|
|
6
6
|
import { UseDeepAgentStream, UseDeepAgentStreamOptions } from "./deep-agent.js";
|
|
7
7
|
|
|
@@ -33,9 +33,9 @@ type InferStateType<T> = T extends {
|
|
|
33
33
|
"~agentTypes": unknown;
|
|
34
34
|
} ? InferAgentState<T> : T extends {
|
|
35
35
|
"~RunOutput": infer S;
|
|
36
|
-
} ? S extends
|
|
36
|
+
} ? S extends object ? S : Record<string, unknown> : T extends {
|
|
37
37
|
"~OutputType": infer O;
|
|
38
|
-
} ? O extends
|
|
38
|
+
} ? O extends object ? O : Record<string, unknown> : [T] extends [object] ? T : Record<string, unknown>;
|
|
39
39
|
/**
|
|
40
40
|
* Infer the node names from a compiled graph.
|
|
41
41
|
*
|
|
@@ -152,7 +152,7 @@ type ResolveStreamInterface<T, Bag extends BagTemplate = BagTemplate> = IsDeepAg
|
|
|
152
152
|
* // AgentOptions.filterSubagentMessages does NOT exist
|
|
153
153
|
* ```
|
|
154
154
|
*/
|
|
155
|
-
type ResolveStreamOptions<T, Bag extends BagTemplate = BagTemplate> = IsDeepAgent<T> extends true ? UseDeepAgentStreamOptions<InferStateType<T
|
|
155
|
+
type ResolveStreamOptions<T, Bag extends BagTemplate = BagTemplate> = IsDeepAgent<T> extends true ? UseDeepAgentStreamOptions<StateRecord<InferStateType<T>>, Bag> : IsReactAgent<T> extends true ? UseAgentStreamOptions<StateRecord<InferStateType<T>>, Bag> : UseStreamOptions<StateRecord<InferStateType<T>>, Bag>;
|
|
156
156
|
/**
|
|
157
157
|
* Infer the Bag type from an agent, defaulting to the provided Bag.
|
|
158
158
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/ui/stream/index.ts"],"mappings":";;;;;;;;;;;KAgDK,WAAA,MAAiB,CAAA;EAAY,iBAAA,EAAmB,uBAAA;AAAA;;;;KAOhD,YAAA,MAAkB,CAAA;EAAY,aAAA,EAAe,mBAAA;AAAA,IAC9C,CAAA;EAAY,iBAAA;AAAA;;;;;;;;;;KAkBJ,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,eAAA,CAAgB,CAAA,IAChB,CAAA;EAAY,YAAA;AAAA,IACV,CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/ui/stream/index.ts"],"mappings":";;;;;;;;;;;KAgDK,WAAA,MAAiB,CAAA;EAAY,iBAAA,EAAmB,uBAAA;AAAA;;;;KAOhD,YAAA,MAAkB,CAAA;EAAY,aAAA,EAAe,mBAAA;AAAA,IAC9C,CAAA;EAAY,iBAAA;AAAA;;;;;;;;;;KAkBJ,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,eAAA,CAAgB,CAAA,IAChB,CAAA;EAAY,YAAA;AAAA,IACV,CAAA,kBACE,CAAA,GACA,MAAA,oBACF,CAAA;EAAY,aAAA;AAAA,IACV,CAAA,kBACE,CAAA,GACA,MAAA,qBACD,CAAA,qBACC,CAAA,GACA,MAAA;;;;;;;;;;;;;;;;;KAkBE,cAAA,MAAoB,CAAA;EAAY,WAAA;AAAA,IACxC,CAAA,kBACE,OAAA,CAAQ,CAAA;;AAFd;;;;;;;;;;;;;;;;KAuBY,oBAAA,MAA0B,CAAA;EAAY,iBAAA;AAAA,IAC9C,CAAA,SAAU,MAAA,oBACR,CAAA,GACA,MAAA,SAAe,MAAA,qBACjB,MAAA,SAAe,MAAA;;;;;;;KAQP,cAAA,MAAoB,CAAA;EAAY,aAAA;AAAA,IACxC,mBAAA,CAAoB,CAAA,IACpB,eAAA;;;;;;;KAQQ,mBAAA,MAAyB,CAAA;EAAY,iBAAA;AAAA,IAC7C,gBAAA,CAAiB,CAAA,EAAG,mBAAA,CAAoB,CAAA,KACxC,qBAAA;;;;;AAZJ;;;;;;;;;;;;;;;;;AAUA;;;;;;;;;;;KAwCY,sBAAA,gBAAsC,WAAA,GAAc,WAAA,IAC9D,WAAA,CAAY,CAAA,iBACR,kBAAA,CACE,cAAA,CAAe,CAAA,GACf,cAAA,CAAe,CAAA,GACf,mBAAA,CAAoB,CAAA,GACpB,GAAA,IAEF,YAAA,CAAa,CAAA,iBACX,cAAA,CAAe,cAAA,CAAe,CAAA,GAAI,cAAA,CAAe,CAAA,GAAI,GAAA,IACrD,UAAA,CAAW,cAAA,CAAe,CAAA,GAAI,cAAA,CAAe,CAAA,GAAI,GAAA;;;;;;;;;;AAVzD;;;;;;;;;;;;;;;;;KAsCY,oBAAA,gBAAoC,WAAA,GAAc,WAAA,IAC5D,WAAA,CAAY,CAAA,iBACR,yBAAA,CAA0B,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA,IAC1D,YAAA,CAAa,CAAA,iBACX,qBAAA,CAAsB,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA,IACtD,gBAAA,CAAiB,WAAA,CAAY,cAAA,CAAe,CAAA,IAAK,GAAA;;;;;;;KAY7C,QAAA,cAAsB,WAAA,GAAc,WAAA,IAAe,CAAA;EAC7D,aAAA;AAAA,IAEE,WAAA,GACA,CAAA"}
|
package/dist/ui/types.d.cts
CHANGED
|
@@ -2,11 +2,12 @@ import { Checkpoint, Config, Interrupt, Metadata, ThreadState } from "../schema.
|
|
|
2
2
|
import { AIMessage as AIMessage$1, DefaultToolCall, Message, ToolCallWithResult } from "../types.messages.cjs";
|
|
3
3
|
import { CheckpointsStreamEvent, CustomStreamEvent, DebugStreamEvent, EventsStreamEvent, MetadataStreamEvent, StreamMode, TasksStreamEvent, ToolsStreamEvent, UpdatesStreamEvent } from "../types.stream.cjs";
|
|
4
4
|
import { Command, DisconnectMode, Durability, MultitaskStrategy, OnCompletionBehavior } from "../types.cjs";
|
|
5
|
-
import {
|
|
5
|
+
import { ClientConfig } from "../client/base.cjs";
|
|
6
|
+
import { Client } from "../client/index.cjs";
|
|
6
7
|
import { BagTemplate } from "../types.template.cjs";
|
|
7
8
|
import { AnyHeadlessToolImplementation, OnToolCallback } from "../headless-tools.cjs";
|
|
8
|
-
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
9
9
|
import { BaseMessage } from "@langchain/core/messages";
|
|
10
|
+
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
10
11
|
|
|
11
12
|
//#region src/ui/types.d.ts
|
|
12
13
|
/**
|