@langchain/vue 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +48 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -196,6 +196,12 @@ Object.defineProperty(exports, "calculateDepthFromNamespace", {
|
|
|
196
196
|
return _langchain_langgraph_sdk_ui.calculateDepthFromNamespace;
|
|
197
197
|
}
|
|
198
198
|
});
|
|
199
|
+
Object.defineProperty(exports, "executeHeadlessTool", {
|
|
200
|
+
enumerable: true,
|
|
201
|
+
get: function() {
|
|
202
|
+
return _langchain_langgraph_sdk.executeHeadlessTool;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
199
205
|
Object.defineProperty(exports, "extractParentIdFromNamespace", {
|
|
200
206
|
enumerable: true,
|
|
201
207
|
get: function() {
|
|
@@ -208,12 +214,54 @@ Object.defineProperty(exports, "extractToolCallIdFromNamespace", {
|
|
|
208
214
|
return _langchain_langgraph_sdk_ui.extractToolCallIdFromNamespace;
|
|
209
215
|
}
|
|
210
216
|
});
|
|
217
|
+
Object.defineProperty(exports, "filterOutHeadlessToolInterrupts", {
|
|
218
|
+
enumerable: true,
|
|
219
|
+
get: function() {
|
|
220
|
+
return _langchain_langgraph_sdk.filterOutHeadlessToolInterrupts;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
Object.defineProperty(exports, "findHeadlessTool", {
|
|
224
|
+
enumerable: true,
|
|
225
|
+
get: function() {
|
|
226
|
+
return _langchain_langgraph_sdk.findHeadlessTool;
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
Object.defineProperty(exports, "flushPendingHeadlessToolInterrupts", {
|
|
230
|
+
enumerable: true,
|
|
231
|
+
get: function() {
|
|
232
|
+
return _langchain_langgraph_sdk.flushPendingHeadlessToolInterrupts;
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
Object.defineProperty(exports, "handleHeadlessToolInterrupt", {
|
|
236
|
+
enumerable: true,
|
|
237
|
+
get: function() {
|
|
238
|
+
return _langchain_langgraph_sdk.handleHeadlessToolInterrupt;
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
Object.defineProperty(exports, "headlessToolResumeCommand", {
|
|
242
|
+
enumerable: true,
|
|
243
|
+
get: function() {
|
|
244
|
+
return _langchain_langgraph_sdk.headlessToolResumeCommand;
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
Object.defineProperty(exports, "isHeadlessToolInterrupt", {
|
|
248
|
+
enumerable: true,
|
|
249
|
+
get: function() {
|
|
250
|
+
return _langchain_langgraph_sdk.isHeadlessToolInterrupt;
|
|
251
|
+
}
|
|
252
|
+
});
|
|
211
253
|
Object.defineProperty(exports, "isSubagentNamespace", {
|
|
212
254
|
enumerable: true,
|
|
213
255
|
get: function() {
|
|
214
256
|
return _langchain_langgraph_sdk_ui.isSubagentNamespace;
|
|
215
257
|
}
|
|
216
258
|
});
|
|
259
|
+
Object.defineProperty(exports, "parseHeadlessToolInterruptPayload", {
|
|
260
|
+
enumerable: true,
|
|
261
|
+
get: function() {
|
|
262
|
+
return _langchain_langgraph_sdk.parseHeadlessToolInterruptPayload;
|
|
263
|
+
}
|
|
264
|
+
});
|
|
217
265
|
exports.provideStream = require_context.provideStream;
|
|
218
266
|
exports.useStream = useStream;
|
|
219
267
|
exports.useStreamContext = require_context.useStreamContext;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["LANGCHAIN_OPTIONS","Client","StreamOrchestrator","useStreamCustom"],"sources":["../src/index.ts"],"sourcesContent":["import {\n computed,\n inject,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n type ComputedRef,\n type Ref,\n} from \"vue\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamOrchestrator,\n FetchStreamTransport,\n ensureMessageInstances,\n type MessageMetadata,\n type AnyStreamOptions,\n type ResolveStreamInterface,\n type ResolveStreamOptions,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n type ClassToolCallWithResult,\n type ClassSubagentStreamInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type Message,\n type BagTemplate,\n type ToolCallWithResult as _ToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\n\nimport { useStreamCustom } from \"./stream.custom.js\";\nimport type { VueReactiveOptions } from \"./types.js\";\nimport { LANGCHAIN_OPTIONS, type LangChainPluginOptions } from \"./context.js\";\n\nexport { FetchStreamTransport };\nexport type { VueReactiveOptions } from \"./types.js\";\nexport {\n LangChainPlugin,\n provideStream,\n useStreamContext,\n LANGCHAIN_OPTIONS,\n} from \"./context.js\";\nexport type { LangChainPluginOptions } from \"./context.js\";\n\nfunction useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamOptions<StateType, Bag>>) {\n const pluginOptions: LangChainPluginOptions = inject(LANGCHAIN_OPTIONS, {});\n\n const client = computed(() => {\n const c = toValue(options.client) ?? pluginOptions.client;\n if (c) return c;\n return new Client({\n apiUrl: toValue(options.apiUrl) ?? pluginOptions.apiUrl,\n apiKey: toValue(options.apiKey) ?? pluginOptions.apiKey,\n callerOptions: toValue(options.callerOptions),\n defaultHeaders: toValue(options.defaultHeaders),\n });\n });\n\n const orchestrator = new StreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamOptions<StateType, Bag>,\n {\n getClient: () => client.value,\n getAssistantId: () => toValue(options.assistantId),\n getMessagesKey: () => toValue(options.messagesKey) ?? \"messages\",\n }\n );\n\n const initialThreadId = toValue(options.threadId) ?? undefined;\n orchestrator.initThreadId(initialThreadId);\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? undefined;\n orchestrator.setThreadId(resolved);\n },\n { flush: \"sync\" }\n );\n\n // Monotonically increasing counter bumped on every orchestrator update.\n // Computed properties read `version.value` (via `void version.value`)\n // solely to register a reactive dependency, so Vue knows to invalidate\n // their cached values when the orchestrator state changes.\n const version = shallowRef(0);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n version.value += 1;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n // Subagent reconstruction\n watch(\n () => {\n void version.value;\n const hvMessages = orchestrator.messages;\n return {\n should:\n options.filterSubagentMessages &&\n !orchestrator.isLoading &&\n !orchestrator.historyData.isLoading &&\n hvMessages.length > 0,\n len: hvMessages.length,\n };\n },\n ({ should }, _prev, onCleanup) => {\n if (should) {\n const controller = orchestrator.reconstructSubagentsIfNeeded();\n if (controller) {\n onCleanup(() => controller.abort());\n }\n }\n },\n { immediate: true }\n );\n\n // Queue draining\n watch(\n () => ({\n loading: orchestrator.isLoading,\n size: orchestrator.queueSize,\n v: version.value,\n }),\n () => {\n orchestrator.drainQueue();\n }\n );\n\n // Auto-reconnect\n let { shouldReconnect } = orchestrator;\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n\n watch(\n () => {\n void version.value;\n return orchestrator.threadId;\n },\n () => {\n ({ shouldReconnect } = orchestrator);\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n }\n );\n\n // Cached computed properties derived from the orchestrator.\n //\n // The orchestrator is not itself reactive — it is a plain object whose\n // state is mutated in place. To bridge it into Vue's reactivity system\n // we bump `version` (a shallowRef) inside the orchestrator's subscribe\n // callback. Each computed below reads `version.value` (via `void`) to\n // register it as a dependency. When `version` increments, Vue marks\n // every computed that depends on it as dirty, causing a re-evaluation\n // on the next access. The `void` operator discards the unused value\n // and signals this intent to future readers.\n const values = computed(() => {\n void version.value;\n return orchestrator.values;\n });\n\n const error = computed(() => {\n void version.value;\n return orchestrator.error;\n });\n\n const isLoading = computed(() => {\n void version.value;\n return orchestrator.isLoading;\n });\n\n const branch = ref<string>(\"\");\n watch(\n () => {\n void version.value;\n return orchestrator.branch;\n },\n (newBranch) => {\n if (branch.value !== newBranch) branch.value = newBranch;\n },\n { immediate: true }\n );\n\n const messages = computed(() => {\n void version.value;\n orchestrator.trackStreamMode(\"messages-tuple\");\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCalls = computed(() => {\n void version.value;\n return orchestrator.toolCalls;\n });\n\n const interrupt = computed(() => {\n void version.value;\n return orchestrator.interrupt;\n });\n\n const interrupts = computed(() => {\n void version.value;\n return orchestrator.interrupts;\n });\n\n const flatHistory = computed(() => {\n void version.value;\n return orchestrator.flatHistory;\n });\n\n const isThreadLoading = computed(() => {\n void version.value;\n return orchestrator.isThreadLoading;\n });\n\n const experimentalBranchTree = computed(() => {\n void version.value;\n return orchestrator.experimental_branchTree;\n });\n\n const queueEntries = computed(() => {\n void version.value;\n return orchestrator.queueEntries;\n });\n\n const queueSize = computed(() => {\n void version.value;\n return orchestrator.queueSize;\n });\n\n return {\n get assistantId() {\n return toValue(options.assistantId);\n },\n get client() {\n return client.value;\n },\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch(value: string) {\n orchestrator.setBranch(value);\n },\n\n messages,\n toolCalls,\n\n getToolCalls(message: Message) {\n orchestrator.trackStreamMode(\"messages-tuple\");\n return orchestrator.getToolCalls(message);\n },\n\n interrupt,\n interrupts,\n history: flatHistory,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata: (\n message: Message,\n index?: number\n ): MessageMetadata<StateType> | undefined => {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n submit: (...args: Parameters<typeof orchestrator.submit>) =>\n orchestrator.submit(...args),\n stop: () => orchestrator.stop(),\n joinStream: (...args: Parameters<typeof orchestrator.joinStream>) =>\n orchestrator.joinStream(...args),\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: (id: string) => orchestrator.cancelQueueItem(id),\n clear: () => orchestrator.clearQueue(),\n }),\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n getSubagent(toolCallId: string) {\n void version.value;\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n void version.value;\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n void version.value;\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\nexport type { ClassSubagentStreamInterface } from \"@langchain/langgraph-sdk/ui\";\n\ntype WithClassMessages<T> = {\n [K in keyof T as K extends\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n ? never\n : K]: K extends \"messages\"\n ? ComputedRef<BaseMessage[]>\n : K extends \"getMessagesMetadata\"\n ? (\n message: BaseMessage,\n index?: number\n ) => MessageMetadata<Record<string, unknown>> | undefined\n : K extends \"toolCalls\"\n ? T[K] extends (infer TC)[]\n ? Ref<ClassToolCallWithResult<TC>[]>\n : Ref<T[K]>\n : K extends \"getToolCalls\"\n ? T[K] extends (message: infer _M) => (infer TC)[]\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : T[K]\n : K extends \"queue\"\n ? {\n [QK in keyof T[K]]: T[K][QK] extends (\n ...args: infer A\n ) => infer R\n ? (...args: A) => R\n : T[K][QK];\n }\n : K extends \"client\" | \"assistantId\"\n ? T[K]\n : K extends \"subagents\"\n ? T[K] extends Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : T[K]\n : K extends \"activeSubagents\"\n ? T[K] extends SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[]\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : T[K]\n : K extends \"submit\"\n ? T[K] extends (\n values: infer V,\n options?: infer O\n ) => infer Ret\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O\n ) => Ret\n : T[K]\n : K extends \"history\"\n ? ComputedRef<HistoryWithBaseMessages<T[K]>>\n : T[K] extends (...args: infer A) => infer R\n ? (...args: A) => R\n : Ref<T[K]>;\n} & (\"subagents\" extends keyof T\n ? {\n getSubagent: T extends {\n getSubagent: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<ResolveStreamOptions<T, InferBag<T, Bag>>>\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<\n UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>\n >\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStream(options: any): any {\n if (\"transport\" in options) {\n return useStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nexport type { MaybeRefOrGetter } from \"vue\";\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n _ToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["LANGCHAIN_OPTIONS","Client","StreamOrchestrator","useStreamCustom"],"sources":["../src/index.ts"],"sourcesContent":["import {\n computed,\n inject,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n type ComputedRef,\n type Ref,\n} from \"vue\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamOrchestrator,\n FetchStreamTransport,\n ensureMessageInstances,\n type MessageMetadata,\n type AnyStreamOptions,\n type ResolveStreamInterface,\n type ResolveStreamOptions,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n type ClassToolCallWithResult,\n type ClassSubagentStreamInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type Message,\n type BagTemplate,\n type ToolCallWithResult as _ToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\n\nimport { useStreamCustom } from \"./stream.custom.js\";\nimport type { VueReactiveOptions } from \"./types.js\";\nimport { LANGCHAIN_OPTIONS, type LangChainPluginOptions } from \"./context.js\";\n\nexport { FetchStreamTransport };\nexport type { VueReactiveOptions } from \"./types.js\";\nexport {\n LangChainPlugin,\n provideStream,\n useStreamContext,\n LANGCHAIN_OPTIONS,\n} from \"./context.js\";\nexport type { LangChainPluginOptions } from \"./context.js\";\n\nfunction useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamOptions<StateType, Bag>>) {\n const pluginOptions: LangChainPluginOptions = inject(LANGCHAIN_OPTIONS, {});\n\n const client = computed(() => {\n const c = toValue(options.client) ?? pluginOptions.client;\n if (c) return c;\n return new Client({\n apiUrl: toValue(options.apiUrl) ?? pluginOptions.apiUrl,\n apiKey: toValue(options.apiKey) ?? pluginOptions.apiKey,\n callerOptions: toValue(options.callerOptions),\n defaultHeaders: toValue(options.defaultHeaders),\n });\n });\n\n const orchestrator = new StreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamOptions<StateType, Bag>,\n {\n getClient: () => client.value,\n getAssistantId: () => toValue(options.assistantId),\n getMessagesKey: () => toValue(options.messagesKey) ?? \"messages\",\n }\n );\n\n const initialThreadId = toValue(options.threadId) ?? undefined;\n orchestrator.initThreadId(initialThreadId);\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? undefined;\n orchestrator.setThreadId(resolved);\n },\n { flush: \"sync\" }\n );\n\n // Monotonically increasing counter bumped on every orchestrator update.\n // Computed properties read `version.value` (via `void version.value`)\n // solely to register a reactive dependency, so Vue knows to invalidate\n // their cached values when the orchestrator state changes.\n const version = shallowRef(0);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n version.value += 1;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n // Subagent reconstruction\n watch(\n () => {\n void version.value;\n const hvMessages = orchestrator.messages;\n return {\n should:\n options.filterSubagentMessages &&\n !orchestrator.isLoading &&\n !orchestrator.historyData.isLoading &&\n hvMessages.length > 0,\n len: hvMessages.length,\n };\n },\n ({ should }, _prev, onCleanup) => {\n if (should) {\n const controller = orchestrator.reconstructSubagentsIfNeeded();\n if (controller) {\n onCleanup(() => controller.abort());\n }\n }\n },\n { immediate: true }\n );\n\n // Queue draining\n watch(\n () => ({\n loading: orchestrator.isLoading,\n size: orchestrator.queueSize,\n v: version.value,\n }),\n () => {\n orchestrator.drainQueue();\n }\n );\n\n // Auto-reconnect\n let { shouldReconnect } = orchestrator;\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n\n watch(\n () => {\n void version.value;\n return orchestrator.threadId;\n },\n () => {\n ({ shouldReconnect } = orchestrator);\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n }\n );\n\n // Cached computed properties derived from the orchestrator.\n //\n // The orchestrator is not itself reactive — it is a plain object whose\n // state is mutated in place. To bridge it into Vue's reactivity system\n // we bump `version` (a shallowRef) inside the orchestrator's subscribe\n // callback. Each computed below reads `version.value` (via `void`) to\n // register it as a dependency. When `version` increments, Vue marks\n // every computed that depends on it as dirty, causing a re-evaluation\n // on the next access. The `void` operator discards the unused value\n // and signals this intent to future readers.\n const values = computed(() => {\n void version.value;\n return orchestrator.values;\n });\n\n const error = computed(() => {\n void version.value;\n return orchestrator.error;\n });\n\n const isLoading = computed(() => {\n void version.value;\n return orchestrator.isLoading;\n });\n\n const branch = ref<string>(\"\");\n watch(\n () => {\n void version.value;\n return orchestrator.branch;\n },\n (newBranch) => {\n if (branch.value !== newBranch) branch.value = newBranch;\n },\n { immediate: true }\n );\n\n const messages = computed(() => {\n void version.value;\n orchestrator.trackStreamMode(\"messages-tuple\");\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCalls = computed(() => {\n void version.value;\n return orchestrator.toolCalls;\n });\n\n const interrupt = computed(() => {\n void version.value;\n return orchestrator.interrupt;\n });\n\n const interrupts = computed(() => {\n void version.value;\n return orchestrator.interrupts;\n });\n\n const flatHistory = computed(() => {\n void version.value;\n return orchestrator.flatHistory;\n });\n\n const isThreadLoading = computed(() => {\n void version.value;\n return orchestrator.isThreadLoading;\n });\n\n const experimentalBranchTree = computed(() => {\n void version.value;\n return orchestrator.experimental_branchTree;\n });\n\n const queueEntries = computed(() => {\n void version.value;\n return orchestrator.queueEntries;\n });\n\n const queueSize = computed(() => {\n void version.value;\n return orchestrator.queueSize;\n });\n\n return {\n get assistantId() {\n return toValue(options.assistantId);\n },\n get client() {\n return client.value;\n },\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch(value: string) {\n orchestrator.setBranch(value);\n },\n\n messages,\n toolCalls,\n\n getToolCalls(message: Message) {\n orchestrator.trackStreamMode(\"messages-tuple\");\n return orchestrator.getToolCalls(message);\n },\n\n interrupt,\n interrupts,\n history: flatHistory,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata: (\n message: Message,\n index?: number\n ): MessageMetadata<StateType> | undefined => {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n submit: (...args: Parameters<typeof orchestrator.submit>) =>\n orchestrator.submit(...args),\n stop: () => orchestrator.stop(),\n joinStream: (...args: Parameters<typeof orchestrator.joinStream>) =>\n orchestrator.joinStream(...args),\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: (id: string) => orchestrator.cancelQueueItem(id),\n clear: () => orchestrator.clearQueue(),\n }),\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n getSubagent(toolCallId: string) {\n void version.value;\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n void version.value;\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n void version.value;\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\nexport type { ClassSubagentStreamInterface } from \"@langchain/langgraph-sdk/ui\";\n\ntype WithClassMessages<T> = {\n [K in keyof T as K extends\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n ? never\n : K]: K extends \"messages\"\n ? ComputedRef<BaseMessage[]>\n : K extends \"getMessagesMetadata\"\n ? (\n message: BaseMessage,\n index?: number\n ) => MessageMetadata<Record<string, unknown>> | undefined\n : K extends \"toolCalls\"\n ? T[K] extends (infer TC)[]\n ? Ref<ClassToolCallWithResult<TC>[]>\n : Ref<T[K]>\n : K extends \"getToolCalls\"\n ? T[K] extends (message: infer _M) => (infer TC)[]\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : T[K]\n : K extends \"queue\"\n ? {\n [QK in keyof T[K]]: T[K][QK] extends (\n ...args: infer A\n ) => infer R\n ? (...args: A) => R\n : T[K][QK];\n }\n : K extends \"client\" | \"assistantId\"\n ? T[K]\n : K extends \"subagents\"\n ? T[K] extends Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : T[K]\n : K extends \"activeSubagents\"\n ? T[K] extends SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[]\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : T[K]\n : K extends \"submit\"\n ? T[K] extends (\n values: infer V,\n options?: infer O\n ) => infer Ret\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O\n ) => Ret\n : T[K]\n : K extends \"history\"\n ? ComputedRef<HistoryWithBaseMessages<T[K]>>\n : T[K] extends (...args: infer A) => infer R\n ? (...args: A) => R\n : Ref<T[K]>;\n} & (\"subagents\" extends keyof T\n ? {\n getSubagent: T extends {\n getSubagent: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<ResolveStreamOptions<T, InferBag<T, Bag>>>\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<\n UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>\n >\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStream(options: any): any {\n if (\"transport\" in options) {\n return useStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nexport type { MaybeRefOrGetter } from \"vue\";\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n _ToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\nexport type {\n HeadlessToolImplementation,\n AnyHeadlessToolImplementation,\n ToolEvent,\n HeadlessToolInterrupt,\n OnToolCallback,\n FlushPendingHeadlessToolInterruptsOptions,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\nexport {\n isHeadlessToolInterrupt,\n parseHeadlessToolInterruptPayload,\n filterOutHeadlessToolInterrupts,\n findHeadlessTool,\n executeHeadlessTool,\n handleHeadlessToolInterrupt,\n headlessToolResumeCommand,\n flushPendingHeadlessToolInterrupts,\n} from \"@langchain/langgraph-sdk\";\n"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import { LANGCHAIN_OPTIONS, LangChainPlugin, LangChainPluginOptions, provideStre
|
|
|
3
3
|
import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
|
|
4
4
|
import { AIMessage, BaseMessage, ToolMessage } from "@langchain/core/messages";
|
|
5
5
|
import { AcceptBaseMessages, AgentTypeConfigLike, BaseStream, BaseSubagentState, ClassSubagentStreamInterface, ClassSubagentStreamInterface as ClassSubagentStreamInterface$1, ClassToolCallWithResult, CompiledSubAgentLike, DeepAgentTypeConfigLike, DefaultSubagentStates, ExtractAgentConfig, ExtractDeepAgentConfig, ExtractSubAgentMiddleware, FetchStreamTransport, GetToolCallsType, HistoryWithBaseMessages, InferAgentToolCalls, InferBag, InferBag as InferBag$1, InferDeepAgentSubagents, InferNodeNames, InferStateType, InferStateType as InferStateType$1, InferSubagentByName, InferSubagentNames, InferSubagentState, InferSubagentStates, InferToolCalls, IsAgentLike, IsDeepAgentLike, MessageMetadata, MessageMetadata as MessageMetadata$1, QueueEntry, QueueInterface, ResolveStreamInterface, ResolveStreamInterface as ResolveStreamInterface$1, ResolveStreamOptions, ResolveStreamOptions as ResolveStreamOptions$1, SubAgentLike, SubagentApi, SubagentManager, SubagentStateMap, SubagentStatus, SubagentStream, SubagentStreamInterface, SubagentStreamInterface as SubagentStreamInterface$1, SubagentToolCall, UseAgentStream, UseAgentStreamOptions, UseDeepAgentStream, UseDeepAgentStreamOptions, UseStreamCustomOptions, UseStreamCustomOptions as UseStreamCustomOptions$1, UseStreamOptions, UseStreamThread, UseStreamTransport, calculateDepthFromNamespace, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace } from "@langchain/langgraph-sdk/ui";
|
|
6
|
-
import { BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools } from "@langchain/langgraph-sdk";
|
|
6
|
+
import { AnyHeadlessToolImplementation, BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, FlushPendingHeadlessToolInterruptsOptions, HeadlessToolImplementation, HeadlessToolInterrupt, OnToolCallback, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools, ToolEvent, executeHeadlessTool, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, parseHeadlessToolInterruptPayload } from "@langchain/langgraph-sdk";
|
|
7
7
|
|
|
8
8
|
//#region src/index.d.ts
|
|
9
9
|
type WithClassMessages<T> = { [K in keyof T as K extends "getSubagent" | "getSubagentsByType" | "getSubagentsByMessage" ? never : K]: K extends "messages" ? ComputedRef<BaseMessage[]> : K extends "getMessagesMetadata" ? (message: BaseMessage, index?: number) => MessageMetadata$1<Record<string, unknown>> | undefined : K extends "toolCalls" ? T[K] extends (infer TC)[] ? Ref<ClassToolCallWithResult<TC>[]> : Ref<T[K]> : K extends "getToolCalls" ? T[K] extends ((message: infer _M) => (infer TC)[]) ? (message: AIMessage) => ClassToolCallWithResult<TC>[] : T[K] : K extends "queue" ? { [QK in keyof T[K]]: T[K][QK] extends ((...args: infer A) => infer R) ? (...args: A) => R : T[K][QK] } : K extends "client" | "assistantId" ? T[K] : K extends "subagents" ? T[K] extends Map<string, SubagentStreamInterface$1<infer S, infer TC, infer N>> ? Map<string, ClassSubagentStreamInterface$1<S, TC, N>> : T[K] : K extends "activeSubagents" ? T[K] extends SubagentStreamInterface$1<infer S, infer TC, infer N>[] ? ClassSubagentStreamInterface$1<S, TC, N>[] : T[K] : K extends "submit" ? T[K] extends ((values: infer V, options?: infer O) => infer Ret) ? (values: AcceptBaseMessages<Exclude<V, null | undefined>> | null | undefined, options?: O) => Ret : T[K] : K extends "history" ? ComputedRef<HistoryWithBaseMessages<T[K]>> : T[K] extends ((...args: infer A) => infer R) ? (...args: A) => R : Ref<T[K]> } & ("subagents" extends keyof T ? {
|
|
@@ -21,5 +21,5 @@ declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate
|
|
|
21
21
|
declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: VueReactiveOptions<UseStreamCustomOptions$1<InferStateType$1<T>, InferBag$1<T, Bag>>>): WithClassMessages<ResolveStreamInterface$1<T, InferBag$1<T, Bag>>>;
|
|
22
22
|
type ToolCallWithResult<ToolCall = DefaultToolCall$1> = ToolCallWithResult$1<ToolCall, ToolMessage, AIMessage>;
|
|
23
23
|
//#endregion
|
|
24
|
-
export { type AgentTypeConfigLike, type BaseStream, type BaseSubagentState, type ClassSubagentStreamInterface, type CompiledSubAgentLike, type DeepAgentTypeConfigLike, type DefaultSubagentStates, type DefaultToolCall, type ExtractAgentConfig, type ExtractDeepAgentConfig, type ExtractSubAgentMiddleware, FetchStreamTransport, type GetToolCallsType, type InferAgentToolCalls, type InferBag, type InferDeepAgentSubagents, type InferNodeNames, type InferStateType, type InferSubagentByName, type InferSubagentNames, type InferSubagentState, type InferSubagentStates, type InferToolCalls, type IsAgentLike, type IsDeepAgentLike, LANGCHAIN_OPTIONS, LangChainPlugin, type LangChainPluginOptions, type MaybeRefOrGetter, type MessageMetadata, type QueueEntry, type QueueInterface, type ResolveStreamInterface, type ResolveStreamOptions, type SubAgentLike, type SubagentApi, SubagentManager, type SubagentStateMap, type SubagentStatus, type SubagentStream, type SubagentStreamInterface, type SubagentToolCall, type ToolCallFromTool, type ToolCallState, ToolCallWithResult, type ToolCallsFromTools, type UseAgentStream, type UseAgentStreamOptions, type UseDeepAgentStream, type UseDeepAgentStreamOptions, type UseStreamCustomOptions, type UseStreamOptions, type UseStreamThread, type UseStreamTransport, type VueReactiveOptions, calculateDepthFromNamespace, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace, provideStream, useStream, useStreamContext };
|
|
24
|
+
export { type AgentTypeConfigLike, type AnyHeadlessToolImplementation, type BaseStream, type BaseSubagentState, type ClassSubagentStreamInterface, type CompiledSubAgentLike, type DeepAgentTypeConfigLike, type DefaultSubagentStates, type DefaultToolCall, type ExtractAgentConfig, type ExtractDeepAgentConfig, type ExtractSubAgentMiddleware, FetchStreamTransport, type FlushPendingHeadlessToolInterruptsOptions, type GetToolCallsType, type HeadlessToolImplementation, type HeadlessToolInterrupt, type InferAgentToolCalls, type InferBag, type InferDeepAgentSubagents, type InferNodeNames, type InferStateType, type InferSubagentByName, type InferSubagentNames, type InferSubagentState, type InferSubagentStates, type InferToolCalls, type IsAgentLike, type IsDeepAgentLike, LANGCHAIN_OPTIONS, LangChainPlugin, type LangChainPluginOptions, type MaybeRefOrGetter, type MessageMetadata, type OnToolCallback, type QueueEntry, type QueueInterface, type ResolveStreamInterface, type ResolveStreamOptions, type SubAgentLike, type SubagentApi, SubagentManager, type SubagentStateMap, type SubagentStatus, type SubagentStream, type SubagentStreamInterface, type SubagentToolCall, type ToolCallFromTool, type ToolCallState, ToolCallWithResult, type ToolCallsFromTools, type ToolEvent, type UseAgentStream, type UseAgentStreamOptions, type UseDeepAgentStream, type UseDeepAgentStreamOptions, type UseStreamCustomOptions, type UseStreamOptions, type UseStreamThread, type UseStreamTransport, type VueReactiveOptions, calculateDepthFromNamespace, executeHeadlessTool, extractParentIdFromNamespace, extractToolCallIdFromNamespace, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, isSubagentNamespace, parseHeadlessToolInterruptPayload, provideStream, useStream, useStreamContext };
|
|
25
25
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { VueReactiveOptions } from "./types.js";
|
|
|
2
2
|
import { LANGCHAIN_OPTIONS, LangChainPlugin, LangChainPluginOptions, provideStream, useStreamContext } from "./context.js";
|
|
3
3
|
import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
|
|
4
4
|
import { AcceptBaseMessages, AgentTypeConfigLike, BaseStream, BaseSubagentState, ClassSubagentStreamInterface, ClassSubagentStreamInterface as ClassSubagentStreamInterface$1, ClassToolCallWithResult, CompiledSubAgentLike, DeepAgentTypeConfigLike, DefaultSubagentStates, ExtractAgentConfig, ExtractDeepAgentConfig, ExtractSubAgentMiddleware, FetchStreamTransport, GetToolCallsType, HistoryWithBaseMessages, InferAgentToolCalls, InferBag, InferBag as InferBag$1, InferDeepAgentSubagents, InferNodeNames, InferStateType, InferStateType as InferStateType$1, InferSubagentByName, InferSubagentNames, InferSubagentState, InferSubagentStates, InferToolCalls, IsAgentLike, IsDeepAgentLike, MessageMetadata, MessageMetadata as MessageMetadata$1, QueueEntry, QueueInterface, ResolveStreamInterface, ResolveStreamInterface as ResolveStreamInterface$1, ResolveStreamOptions, ResolveStreamOptions as ResolveStreamOptions$1, SubAgentLike, SubagentApi, SubagentManager, SubagentStateMap, SubagentStatus, SubagentStream, SubagentStreamInterface, SubagentStreamInterface as SubagentStreamInterface$1, SubagentToolCall, UseAgentStream, UseAgentStreamOptions, UseDeepAgentStream, UseDeepAgentStreamOptions, UseStreamCustomOptions, UseStreamCustomOptions as UseStreamCustomOptions$1, UseStreamOptions, UseStreamThread, UseStreamTransport, calculateDepthFromNamespace, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace } from "@langchain/langgraph-sdk/ui";
|
|
5
|
-
import { BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools } from "@langchain/langgraph-sdk";
|
|
5
|
+
import { AnyHeadlessToolImplementation, BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, FlushPendingHeadlessToolInterruptsOptions, HeadlessToolImplementation, HeadlessToolInterrupt, OnToolCallback, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools, ToolEvent, executeHeadlessTool, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, parseHeadlessToolInterruptPayload } from "@langchain/langgraph-sdk";
|
|
6
6
|
import { AIMessage, BaseMessage, ToolMessage } from "@langchain/core/messages";
|
|
7
7
|
|
|
8
8
|
//#region src/index.d.ts
|
|
@@ -21,5 +21,5 @@ declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate
|
|
|
21
21
|
declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: VueReactiveOptions<UseStreamCustomOptions$1<InferStateType$1<T>, InferBag$1<T, Bag>>>): WithClassMessages<ResolveStreamInterface$1<T, InferBag$1<T, Bag>>>;
|
|
22
22
|
type ToolCallWithResult<ToolCall = DefaultToolCall$1> = ToolCallWithResult$1<ToolCall, ToolMessage, AIMessage>;
|
|
23
23
|
//#endregion
|
|
24
|
-
export { type AgentTypeConfigLike, type BaseStream, type BaseSubagentState, type ClassSubagentStreamInterface, type CompiledSubAgentLike, type DeepAgentTypeConfigLike, type DefaultSubagentStates, type DefaultToolCall, type ExtractAgentConfig, type ExtractDeepAgentConfig, type ExtractSubAgentMiddleware, FetchStreamTransport, type GetToolCallsType, type InferAgentToolCalls, type InferBag, type InferDeepAgentSubagents, type InferNodeNames, type InferStateType, type InferSubagentByName, type InferSubagentNames, type InferSubagentState, type InferSubagentStates, type InferToolCalls, type IsAgentLike, type IsDeepAgentLike, LANGCHAIN_OPTIONS, LangChainPlugin, type LangChainPluginOptions, type MaybeRefOrGetter, type MessageMetadata, type QueueEntry, type QueueInterface, type ResolveStreamInterface, type ResolveStreamOptions, type SubAgentLike, type SubagentApi, SubagentManager, type SubagentStateMap, type SubagentStatus, type SubagentStream, type SubagentStreamInterface, type SubagentToolCall, type ToolCallFromTool, type ToolCallState, ToolCallWithResult, type ToolCallsFromTools, type UseAgentStream, type UseAgentStreamOptions, type UseDeepAgentStream, type UseDeepAgentStreamOptions, type UseStreamCustomOptions, type UseStreamOptions, type UseStreamThread, type UseStreamTransport, type VueReactiveOptions, calculateDepthFromNamespace, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace, provideStream, useStream, useStreamContext };
|
|
24
|
+
export { type AgentTypeConfigLike, type AnyHeadlessToolImplementation, type BaseStream, type BaseSubagentState, type ClassSubagentStreamInterface, type CompiledSubAgentLike, type DeepAgentTypeConfigLike, type DefaultSubagentStates, type DefaultToolCall, type ExtractAgentConfig, type ExtractDeepAgentConfig, type ExtractSubAgentMiddleware, FetchStreamTransport, type FlushPendingHeadlessToolInterruptsOptions, type GetToolCallsType, type HeadlessToolImplementation, type HeadlessToolInterrupt, type InferAgentToolCalls, type InferBag, type InferDeepAgentSubagents, type InferNodeNames, type InferStateType, type InferSubagentByName, type InferSubagentNames, type InferSubagentState, type InferSubagentStates, type InferToolCalls, type IsAgentLike, type IsDeepAgentLike, LANGCHAIN_OPTIONS, LangChainPlugin, type LangChainPluginOptions, type MaybeRefOrGetter, type MessageMetadata, type OnToolCallback, type QueueEntry, type QueueInterface, type ResolveStreamInterface, type ResolveStreamOptions, type SubAgentLike, type SubagentApi, SubagentManager, type SubagentStateMap, type SubagentStatus, type SubagentStream, type SubagentStreamInterface, type SubagentToolCall, type ToolCallFromTool, type ToolCallState, ToolCallWithResult, type ToolCallsFromTools, type ToolEvent, type UseAgentStream, type UseAgentStreamOptions, type UseDeepAgentStream, type UseDeepAgentStreamOptions, type UseStreamCustomOptions, type UseStreamOptions, type UseStreamThread, type UseStreamTransport, type VueReactiveOptions, calculateDepthFromNamespace, executeHeadlessTool, extractParentIdFromNamespace, extractToolCallIdFromNamespace, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, isSubagentNamespace, parseHeadlessToolInterruptPayload, provideStream, useStream, useStreamContext };
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { useStreamCustom } from "./stream.custom.js";
|
|
|
2
2
|
import { LANGCHAIN_OPTIONS, LangChainPlugin, provideStream, useStreamContext } from "./context.js";
|
|
3
3
|
import { computed, inject, onScopeDispose, reactive, ref, shallowRef, toValue, watch } from "vue";
|
|
4
4
|
import { FetchStreamTransport, StreamOrchestrator, SubagentManager, calculateDepthFromNamespace, ensureMessageInstances, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace } from "@langchain/langgraph-sdk/ui";
|
|
5
|
-
import { Client } from "@langchain/langgraph-sdk";
|
|
5
|
+
import { Client, executeHeadlessTool, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, parseHeadlessToolInterruptPayload } from "@langchain/langgraph-sdk";
|
|
6
6
|
//#region src/index.ts
|
|
7
7
|
function useStreamLGP(options) {
|
|
8
8
|
const pluginOptions = inject(LANGCHAIN_OPTIONS, {});
|
|
@@ -180,6 +180,6 @@ function useStream(options) {
|
|
|
180
180
|
return useStreamLGP(options);
|
|
181
181
|
}
|
|
182
182
|
//#endregion
|
|
183
|
-
export { FetchStreamTransport, LANGCHAIN_OPTIONS, LangChainPlugin, SubagentManager, calculateDepthFromNamespace, extractParentIdFromNamespace, extractToolCallIdFromNamespace, isSubagentNamespace, provideStream, useStream, useStreamContext };
|
|
183
|
+
export { FetchStreamTransport, LANGCHAIN_OPTIONS, LangChainPlugin, SubagentManager, calculateDepthFromNamespace, executeHeadlessTool, extractParentIdFromNamespace, extractToolCallIdFromNamespace, filterOutHeadlessToolInterrupts, findHeadlessTool, flushPendingHeadlessToolInterrupts, handleHeadlessToolInterrupt, headlessToolResumeCommand, isHeadlessToolInterrupt, isSubagentNamespace, parseHeadlessToolInterruptPayload, provideStream, useStream, useStreamContext };
|
|
184
184
|
|
|
185
185
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n computed,\n inject,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n type ComputedRef,\n type Ref,\n} from \"vue\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamOrchestrator,\n FetchStreamTransport,\n ensureMessageInstances,\n type MessageMetadata,\n type AnyStreamOptions,\n type ResolveStreamInterface,\n type ResolveStreamOptions,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n type ClassToolCallWithResult,\n type ClassSubagentStreamInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type Message,\n type BagTemplate,\n type ToolCallWithResult as _ToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\n\nimport { useStreamCustom } from \"./stream.custom.js\";\nimport type { VueReactiveOptions } from \"./types.js\";\nimport { LANGCHAIN_OPTIONS, type LangChainPluginOptions } from \"./context.js\";\n\nexport { FetchStreamTransport };\nexport type { VueReactiveOptions } from \"./types.js\";\nexport {\n LangChainPlugin,\n provideStream,\n useStreamContext,\n LANGCHAIN_OPTIONS,\n} from \"./context.js\";\nexport type { LangChainPluginOptions } from \"./context.js\";\n\nfunction useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamOptions<StateType, Bag>>) {\n const pluginOptions: LangChainPluginOptions = inject(LANGCHAIN_OPTIONS, {});\n\n const client = computed(() => {\n const c = toValue(options.client) ?? pluginOptions.client;\n if (c) return c;\n return new Client({\n apiUrl: toValue(options.apiUrl) ?? pluginOptions.apiUrl,\n apiKey: toValue(options.apiKey) ?? pluginOptions.apiKey,\n callerOptions: toValue(options.callerOptions),\n defaultHeaders: toValue(options.defaultHeaders),\n });\n });\n\n const orchestrator = new StreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamOptions<StateType, Bag>,\n {\n getClient: () => client.value,\n getAssistantId: () => toValue(options.assistantId),\n getMessagesKey: () => toValue(options.messagesKey) ?? \"messages\",\n }\n );\n\n const initialThreadId = toValue(options.threadId) ?? undefined;\n orchestrator.initThreadId(initialThreadId);\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? undefined;\n orchestrator.setThreadId(resolved);\n },\n { flush: \"sync\" }\n );\n\n // Monotonically increasing counter bumped on every orchestrator update.\n // Computed properties read `version.value` (via `void version.value`)\n // solely to register a reactive dependency, so Vue knows to invalidate\n // their cached values when the orchestrator state changes.\n const version = shallowRef(0);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n version.value += 1;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n // Subagent reconstruction\n watch(\n () => {\n void version.value;\n const hvMessages = orchestrator.messages;\n return {\n should:\n options.filterSubagentMessages &&\n !orchestrator.isLoading &&\n !orchestrator.historyData.isLoading &&\n hvMessages.length > 0,\n len: hvMessages.length,\n };\n },\n ({ should }, _prev, onCleanup) => {\n if (should) {\n const controller = orchestrator.reconstructSubagentsIfNeeded();\n if (controller) {\n onCleanup(() => controller.abort());\n }\n }\n },\n { immediate: true }\n );\n\n // Queue draining\n watch(\n () => ({\n loading: orchestrator.isLoading,\n size: orchestrator.queueSize,\n v: version.value,\n }),\n () => {\n orchestrator.drainQueue();\n }\n );\n\n // Auto-reconnect\n let { shouldReconnect } = orchestrator;\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n\n watch(\n () => {\n void version.value;\n return orchestrator.threadId;\n },\n () => {\n ({ shouldReconnect } = orchestrator);\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n }\n );\n\n // Cached computed properties derived from the orchestrator.\n //\n // The orchestrator is not itself reactive — it is a plain object whose\n // state is mutated in place. To bridge it into Vue's reactivity system\n // we bump `version` (a shallowRef) inside the orchestrator's subscribe\n // callback. Each computed below reads `version.value` (via `void`) to\n // register it as a dependency. When `version` increments, Vue marks\n // every computed that depends on it as dirty, causing a re-evaluation\n // on the next access. The `void` operator discards the unused value\n // and signals this intent to future readers.\n const values = computed(() => {\n void version.value;\n return orchestrator.values;\n });\n\n const error = computed(() => {\n void version.value;\n return orchestrator.error;\n });\n\n const isLoading = computed(() => {\n void version.value;\n return orchestrator.isLoading;\n });\n\n const branch = ref<string>(\"\");\n watch(\n () => {\n void version.value;\n return orchestrator.branch;\n },\n (newBranch) => {\n if (branch.value !== newBranch) branch.value = newBranch;\n },\n { immediate: true }\n );\n\n const messages = computed(() => {\n void version.value;\n orchestrator.trackStreamMode(\"messages-tuple\");\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCalls = computed(() => {\n void version.value;\n return orchestrator.toolCalls;\n });\n\n const interrupt = computed(() => {\n void version.value;\n return orchestrator.interrupt;\n });\n\n const interrupts = computed(() => {\n void version.value;\n return orchestrator.interrupts;\n });\n\n const flatHistory = computed(() => {\n void version.value;\n return orchestrator.flatHistory;\n });\n\n const isThreadLoading = computed(() => {\n void version.value;\n return orchestrator.isThreadLoading;\n });\n\n const experimentalBranchTree = computed(() => {\n void version.value;\n return orchestrator.experimental_branchTree;\n });\n\n const queueEntries = computed(() => {\n void version.value;\n return orchestrator.queueEntries;\n });\n\n const queueSize = computed(() => {\n void version.value;\n return orchestrator.queueSize;\n });\n\n return {\n get assistantId() {\n return toValue(options.assistantId);\n },\n get client() {\n return client.value;\n },\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch(value: string) {\n orchestrator.setBranch(value);\n },\n\n messages,\n toolCalls,\n\n getToolCalls(message: Message) {\n orchestrator.trackStreamMode(\"messages-tuple\");\n return orchestrator.getToolCalls(message);\n },\n\n interrupt,\n interrupts,\n history: flatHistory,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata: (\n message: Message,\n index?: number\n ): MessageMetadata<StateType> | undefined => {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n submit: (...args: Parameters<typeof orchestrator.submit>) =>\n orchestrator.submit(...args),\n stop: () => orchestrator.stop(),\n joinStream: (...args: Parameters<typeof orchestrator.joinStream>) =>\n orchestrator.joinStream(...args),\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: (id: string) => orchestrator.cancelQueueItem(id),\n clear: () => orchestrator.clearQueue(),\n }),\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n getSubagent(toolCallId: string) {\n void version.value;\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n void version.value;\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n void version.value;\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\nexport type { ClassSubagentStreamInterface } from \"@langchain/langgraph-sdk/ui\";\n\ntype WithClassMessages<T> = {\n [K in keyof T as K extends\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n ? never\n : K]: K extends \"messages\"\n ? ComputedRef<BaseMessage[]>\n : K extends \"getMessagesMetadata\"\n ? (\n message: BaseMessage,\n index?: number\n ) => MessageMetadata<Record<string, unknown>> | undefined\n : K extends \"toolCalls\"\n ? T[K] extends (infer TC)[]\n ? Ref<ClassToolCallWithResult<TC>[]>\n : Ref<T[K]>\n : K extends \"getToolCalls\"\n ? T[K] extends (message: infer _M) => (infer TC)[]\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : T[K]\n : K extends \"queue\"\n ? {\n [QK in keyof T[K]]: T[K][QK] extends (\n ...args: infer A\n ) => infer R\n ? (...args: A) => R\n : T[K][QK];\n }\n : K extends \"client\" | \"assistantId\"\n ? T[K]\n : K extends \"subagents\"\n ? T[K] extends Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : T[K]\n : K extends \"activeSubagents\"\n ? T[K] extends SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[]\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : T[K]\n : K extends \"submit\"\n ? T[K] extends (\n values: infer V,\n options?: infer O\n ) => infer Ret\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O\n ) => Ret\n : T[K]\n : K extends \"history\"\n ? ComputedRef<HistoryWithBaseMessages<T[K]>>\n : T[K] extends (...args: infer A) => infer R\n ? (...args: A) => R\n : Ref<T[K]>;\n} & (\"subagents\" extends keyof T\n ? {\n getSubagent: T extends {\n getSubagent: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<ResolveStreamOptions<T, InferBag<T, Bag>>>\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<\n UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>\n >\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStream(options: any): any {\n if (\"transport\" in options) {\n return useStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nexport type { MaybeRefOrGetter } from \"vue\";\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n _ToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n computed,\n inject,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n type ComputedRef,\n type Ref,\n} from \"vue\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamOrchestrator,\n FetchStreamTransport,\n ensureMessageInstances,\n type MessageMetadata,\n type AnyStreamOptions,\n type ResolveStreamInterface,\n type ResolveStreamOptions,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n type ClassToolCallWithResult,\n type ClassSubagentStreamInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type Message,\n type BagTemplate,\n type ToolCallWithResult as _ToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\n\nimport { useStreamCustom } from \"./stream.custom.js\";\nimport type { VueReactiveOptions } from \"./types.js\";\nimport { LANGCHAIN_OPTIONS, type LangChainPluginOptions } from \"./context.js\";\n\nexport { FetchStreamTransport };\nexport type { VueReactiveOptions } from \"./types.js\";\nexport {\n LangChainPlugin,\n provideStream,\n useStreamContext,\n LANGCHAIN_OPTIONS,\n} from \"./context.js\";\nexport type { LangChainPluginOptions } from \"./context.js\";\n\nfunction useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamOptions<StateType, Bag>>) {\n const pluginOptions: LangChainPluginOptions = inject(LANGCHAIN_OPTIONS, {});\n\n const client = computed(() => {\n const c = toValue(options.client) ?? pluginOptions.client;\n if (c) return c;\n return new Client({\n apiUrl: toValue(options.apiUrl) ?? pluginOptions.apiUrl,\n apiKey: toValue(options.apiKey) ?? pluginOptions.apiKey,\n callerOptions: toValue(options.callerOptions),\n defaultHeaders: toValue(options.defaultHeaders),\n });\n });\n\n const orchestrator = new StreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamOptions<StateType, Bag>,\n {\n getClient: () => client.value,\n getAssistantId: () => toValue(options.assistantId),\n getMessagesKey: () => toValue(options.messagesKey) ?? \"messages\",\n }\n );\n\n const initialThreadId = toValue(options.threadId) ?? undefined;\n orchestrator.initThreadId(initialThreadId);\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? undefined;\n orchestrator.setThreadId(resolved);\n },\n { flush: \"sync\" }\n );\n\n // Monotonically increasing counter bumped on every orchestrator update.\n // Computed properties read `version.value` (via `void version.value`)\n // solely to register a reactive dependency, so Vue knows to invalidate\n // their cached values when the orchestrator state changes.\n const version = shallowRef(0);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n version.value += 1;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n // Subagent reconstruction\n watch(\n () => {\n void version.value;\n const hvMessages = orchestrator.messages;\n return {\n should:\n options.filterSubagentMessages &&\n !orchestrator.isLoading &&\n !orchestrator.historyData.isLoading &&\n hvMessages.length > 0,\n len: hvMessages.length,\n };\n },\n ({ should }, _prev, onCleanup) => {\n if (should) {\n const controller = orchestrator.reconstructSubagentsIfNeeded();\n if (controller) {\n onCleanup(() => controller.abort());\n }\n }\n },\n { immediate: true }\n );\n\n // Queue draining\n watch(\n () => ({\n loading: orchestrator.isLoading,\n size: orchestrator.queueSize,\n v: version.value,\n }),\n () => {\n orchestrator.drainQueue();\n }\n );\n\n // Auto-reconnect\n let { shouldReconnect } = orchestrator;\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n\n watch(\n () => {\n void version.value;\n return orchestrator.threadId;\n },\n () => {\n ({ shouldReconnect } = orchestrator);\n if (shouldReconnect) {\n orchestrator.tryReconnect();\n }\n }\n );\n\n // Cached computed properties derived from the orchestrator.\n //\n // The orchestrator is not itself reactive — it is a plain object whose\n // state is mutated in place. To bridge it into Vue's reactivity system\n // we bump `version` (a shallowRef) inside the orchestrator's subscribe\n // callback. Each computed below reads `version.value` (via `void`) to\n // register it as a dependency. When `version` increments, Vue marks\n // every computed that depends on it as dirty, causing a re-evaluation\n // on the next access. The `void` operator discards the unused value\n // and signals this intent to future readers.\n const values = computed(() => {\n void version.value;\n return orchestrator.values;\n });\n\n const error = computed(() => {\n void version.value;\n return orchestrator.error;\n });\n\n const isLoading = computed(() => {\n void version.value;\n return orchestrator.isLoading;\n });\n\n const branch = ref<string>(\"\");\n watch(\n () => {\n void version.value;\n return orchestrator.branch;\n },\n (newBranch) => {\n if (branch.value !== newBranch) branch.value = newBranch;\n },\n { immediate: true }\n );\n\n const messages = computed(() => {\n void version.value;\n orchestrator.trackStreamMode(\"messages-tuple\");\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCalls = computed(() => {\n void version.value;\n return orchestrator.toolCalls;\n });\n\n const interrupt = computed(() => {\n void version.value;\n return orchestrator.interrupt;\n });\n\n const interrupts = computed(() => {\n void version.value;\n return orchestrator.interrupts;\n });\n\n const flatHistory = computed(() => {\n void version.value;\n return orchestrator.flatHistory;\n });\n\n const isThreadLoading = computed(() => {\n void version.value;\n return orchestrator.isThreadLoading;\n });\n\n const experimentalBranchTree = computed(() => {\n void version.value;\n return orchestrator.experimental_branchTree;\n });\n\n const queueEntries = computed(() => {\n void version.value;\n return orchestrator.queueEntries;\n });\n\n const queueSize = computed(() => {\n void version.value;\n return orchestrator.queueSize;\n });\n\n return {\n get assistantId() {\n return toValue(options.assistantId);\n },\n get client() {\n return client.value;\n },\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch(value: string) {\n orchestrator.setBranch(value);\n },\n\n messages,\n toolCalls,\n\n getToolCalls(message: Message) {\n orchestrator.trackStreamMode(\"messages-tuple\");\n return orchestrator.getToolCalls(message);\n },\n\n interrupt,\n interrupts,\n history: flatHistory,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata: (\n message: Message,\n index?: number\n ): MessageMetadata<StateType> | undefined => {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n submit: (...args: Parameters<typeof orchestrator.submit>) =>\n orchestrator.submit(...args),\n stop: () => orchestrator.stop(),\n joinStream: (...args: Parameters<typeof orchestrator.joinStream>) =>\n orchestrator.joinStream(...args),\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: (id: string) => orchestrator.cancelQueueItem(id),\n clear: () => orchestrator.clearQueue(),\n }),\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n getSubagent(toolCallId: string) {\n void version.value;\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n void version.value;\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n void version.value;\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\nexport type { ClassSubagentStreamInterface } from \"@langchain/langgraph-sdk/ui\";\n\ntype WithClassMessages<T> = {\n [K in keyof T as K extends\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n ? never\n : K]: K extends \"messages\"\n ? ComputedRef<BaseMessage[]>\n : K extends \"getMessagesMetadata\"\n ? (\n message: BaseMessage,\n index?: number\n ) => MessageMetadata<Record<string, unknown>> | undefined\n : K extends \"toolCalls\"\n ? T[K] extends (infer TC)[]\n ? Ref<ClassToolCallWithResult<TC>[]>\n : Ref<T[K]>\n : K extends \"getToolCalls\"\n ? T[K] extends (message: infer _M) => (infer TC)[]\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : T[K]\n : K extends \"queue\"\n ? {\n [QK in keyof T[K]]: T[K][QK] extends (\n ...args: infer A\n ) => infer R\n ? (...args: A) => R\n : T[K][QK];\n }\n : K extends \"client\" | \"assistantId\"\n ? T[K]\n : K extends \"subagents\"\n ? T[K] extends Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : T[K]\n : K extends \"activeSubagents\"\n ? T[K] extends SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[]\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : T[K]\n : K extends \"submit\"\n ? T[K] extends (\n values: infer V,\n options?: infer O\n ) => infer Ret\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O\n ) => Ret\n : T[K]\n : K extends \"history\"\n ? ComputedRef<HistoryWithBaseMessages<T[K]>>\n : T[K] extends (...args: infer A) => infer R\n ? (...args: A) => R\n : Ref<T[K]>;\n} & (\"subagents\" extends keyof T\n ? {\n getSubagent: T extends {\n getSubagent: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<ResolveStreamOptions<T, InferBag<T, Bag>>>\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: VueReactiveOptions<\n UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>\n >\n): WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStream(options: any): any {\n if (\"transport\" in options) {\n return useStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nexport type { MaybeRefOrGetter } from \"vue\";\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n _ToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\nexport type {\n HeadlessToolImplementation,\n AnyHeadlessToolImplementation,\n ToolEvent,\n HeadlessToolInterrupt,\n OnToolCallback,\n FlushPendingHeadlessToolInterruptsOptions,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\nexport {\n isHeadlessToolInterrupt,\n parseHeadlessToolInterruptPayload,\n filterOutHeadlessToolInterrupts,\n findHeadlessTool,\n executeHeadlessTool,\n handleHeadlessToolInterrupt,\n headlessToolResumeCommand,\n flushPendingHeadlessToolInterrupts,\n} from \"@langchain/langgraph-sdk\";\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/vue",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Vue integration for LangGraph & LangChain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"directory": "libs/sdk-vue"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@langchain/langgraph-sdk": "^1.8.
|
|
13
|
+
"@langchain/langgraph-sdk": "^1.8.7"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@hono/node-server": "^1.19.11",
|