@langchain/vue 0.3.0 → 0.3.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.
@@ -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} 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 // Reactive wrappers backed by orchestrator subscription\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 // Computed values\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 return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\ntype ClassToolCallWithResult<T> =\n T extends _ToolCallWithResult<infer TC, unknown, unknown>\n ? _ToolCallWithResult<TC, CoreToolMessage, CoreAIMessage>\n : T;\n\nexport type ClassSubagentStreamInterface<\n StateType = Record<string, unknown>,\n ToolCall = DefaultToolCall,\n SubagentName extends string = string,\n> = Omit<\n SubagentStreamInterface<StateType, ToolCall, SubagentName>,\n \"messages\"\n> & {\n messages: BaseMessage[];\n};\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 return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\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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"}
package/dist/index.d.cts CHANGED
@@ -2,28 +2,24 @@ import { VueReactiveOptions } from "./types.cjs";
2
2
  import { LANGCHAIN_OPTIONS, LangChainPlugin, LangChainPluginOptions, provideStream, useStreamContext } from "./context.cjs";
3
3
  import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
4
4
  import { AIMessage, BaseMessage, ToolMessage } from "@langchain/core/messages";
5
- import { AcceptBaseMessages, AgentTypeConfigLike, BaseStream, BaseSubagentState, 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 { 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
6
  import { BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools } from "@langchain/langgraph-sdk";
7
7
 
8
8
  //#region src/index.d.ts
9
- type ClassToolCallWithResult<T> = T extends ToolCallWithResult$1<infer TC, unknown, unknown> ? ToolCallWithResult$1<TC, ToolMessage, AIMessage> : T;
10
- type ClassSubagentStreamInterface<StateType = Record<string, unknown>, ToolCall = DefaultToolCall$1, SubagentName extends string = string> = Omit<SubagentStreamInterface$1<StateType, ToolCall, SubagentName>, "messages"> & {
11
- messages: BaseMessage[];
12
- };
13
- 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<S, TC, N>> : T[K] : K extends "activeSubagents" ? T[K] extends SubagentStreamInterface$1<infer S, infer TC, infer N>[] ? ClassSubagentStreamInterface<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 ? {
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 ? {
14
10
  getSubagent: T extends {
15
11
  getSubagent: (id: string) => SubagentStreamInterface$1<infer S, infer TC, infer N> | undefined;
16
- } ? (toolCallId: string) => ClassSubagentStreamInterface<S, TC, N> | undefined : never;
12
+ } ? (toolCallId: string) => ClassSubagentStreamInterface$1<S, TC, N> | undefined : never;
17
13
  getSubagentsByType: T extends {
18
14
  getSubagentsByType: (type: string) => SubagentStreamInterface$1<infer S, infer TC, infer N>[];
19
- } ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[] : never;
15
+ } ? (type: string) => ClassSubagentStreamInterface$1<S, TC, N>[] : never;
20
16
  getSubagentsByMessage: T extends {
21
17
  getSubagentsByMessage: (id: string) => SubagentStreamInterface$1<infer S, infer TC, infer N>[];
22
- } ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[] : never;
18
+ } ? (messageId: string) => ClassSubagentStreamInterface$1<S, TC, N>[] : never;
23
19
  } : unknown);
24
20
  declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: VueReactiveOptions<ResolveStreamOptions$1<T, InferBag$1<T, Bag>>>): WithClassMessages<ResolveStreamInterface$1<T, InferBag$1<T, Bag>>>;
25
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>>>;
26
22
  type ToolCallWithResult<ToolCall = DefaultToolCall$1> = ToolCallWithResult$1<ToolCall, ToolMessage, AIMessage>;
27
23
  //#endregion
28
- export { type AgentTypeConfigLike, type BaseStream, type BaseSubagentState, 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 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 };
29
25
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;KA6UK,iBAAA,oBACS,CAAA,IAAK,CAAA,kFAKb,CAAA,GAAI,CAAA,sBACJ,WAAA,CAAY,WAAA,MACZ,CAAA,kCAEI,OAAA,EAAS,WAAA,EACT,KAAA,cACG,iBAAA,CAAgB,MAAA,iCACrB,CAAA,uBACE,CAAA,CAAE,CAAA,yBACA,GAAA,CAAI,uBAAA,CAAwB,EAAA,OAC5B,GAAA,CAAI,CAAA,CAAE,CAAA,KACR,CAAA,0BACE,CAAA,CAAE,CAAA,YAAY,OAAA,gCACX,OAAA,EAAS,SAAA,KAAkB,uBAAA,CAAwB,EAAA,MACpD,CAAA,CAAE,CAAA,IACJ,CAAA,kCAEiB,CAAA,CAAE,CAAA,IAAK,CAAA,CAAE,CAAA,EAAG,EAAA,eACpB,IAAA,6BAEG,IAAA,EAAM,CAAA,KAAM,CAAA,GAChB,CAAA,CAAE,CAAA,EAAG,EAAA,MAEX,CAAA,oCACE,CAAA,CAAE,CAAA,IACF,CAAA,uBACE,CAAA,CAAE,CAAA,UAAW,GAAA,SAEX,yBAAA,gCAEA,GAAA,SAAY,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA,KAChD,CAAA,CAAE,CAAA,IACJ,CAAA,6BACE,CAAA,CAAE,CAAA,UAAW,yBAAA,iCAKX,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA,MACpC,CAAA,CAAE,CAAA,IACJ,CAAA,oBACE,CAAA,CAAE,CAAA,YACA,MAAA,WACA,OAAA,6BAGE,MAAA,EACI,kBAAA,CAAmB,OAAA,CAAQ,CAAA,yCAG/B,OAAA,GAAU,CAAA,KACP,GAAA,GACL,CAAA,CAAE,CAAA,IACJ,CAAA,qBACE,WAAA,CAAY,uBAAA,CAAwB,CAAA,CAAE,CAAA,MACtC,CAAA,CAAE,CAAA,eAAe,IAAA,6BACX,IAAA,EAAM,CAAA,KAAM,CAAA,GAChB,GAAA,CAAI,CAAA,CAAE,CAAA,kCACD,CAAA;EAEzB,WAAA,EAAa,CAAA;IACX,WAAA,GACE,EAAA,aACG,yBAAA;EAAA,KAGD,UAAA,aACG,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;EAE7C,kBAAA,EAAoB,CAAA;IAClB,kBAAA,GACE,IAAA,aACG,yBAAA;EAAA,KAEF,IAAA,aAAiB,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;EAE1D,qBAAA,EAAuB,CAAA;IACrB,qBAAA,GACE,EAAA,aACG,yBAAA;EAAA,KAEF,SAAA,aAAsB,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;AAAA;AAAA,iBAKrD,SAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EAAS,kBAAA,CAAmB,sBAAA,CAAqB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA,MAC/D,iBAAA,CAAkB,wBAAA,CAAuB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA;AAAA,iBAE3C,SAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EAAS,kBAAA,CACP,wBAAA,CAAuB,gBAAA,CAAe,CAAA,GAAI,UAAA,CAAS,CAAA,EAAG,GAAA,MAEvD,iBAAA,CAAkB,wBAAA,CAAuB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA;AAAA,KAyD/C,kBAAA,YAA8B,iBAAA,IACxC,oBAAA,CAAoB,QAAA,EAAU,WAAA,EAAiB,SAAA"}
package/dist/index.d.ts CHANGED
@@ -1,29 +1,25 @@
1
1
  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
- import { AcceptBaseMessages, AgentTypeConfigLike, BaseStream, BaseSubagentState, 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";
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
5
  import { BagTemplate, DefaultToolCall, DefaultToolCall as DefaultToolCall$1, ToolCallFromTool, ToolCallState, ToolCallWithResult as ToolCallWithResult$1, ToolCallsFromTools } from "@langchain/langgraph-sdk";
6
6
  import { AIMessage, BaseMessage, ToolMessage } from "@langchain/core/messages";
7
7
 
8
8
  //#region src/index.d.ts
9
- type ClassToolCallWithResult<T> = T extends ToolCallWithResult$1<infer TC, unknown, unknown> ? ToolCallWithResult$1<TC, ToolMessage, AIMessage> : T;
10
- type ClassSubagentStreamInterface<StateType = Record<string, unknown>, ToolCall = DefaultToolCall$1, SubagentName extends string = string> = Omit<SubagentStreamInterface$1<StateType, ToolCall, SubagentName>, "messages"> & {
11
- messages: BaseMessage[];
12
- };
13
- 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<S, TC, N>> : T[K] : K extends "activeSubagents" ? T[K] extends SubagentStreamInterface$1<infer S, infer TC, infer N>[] ? ClassSubagentStreamInterface<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 ? {
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 ? {
14
10
  getSubagent: T extends {
15
11
  getSubagent: (id: string) => SubagentStreamInterface$1<infer S, infer TC, infer N> | undefined;
16
- } ? (toolCallId: string) => ClassSubagentStreamInterface<S, TC, N> | undefined : never;
12
+ } ? (toolCallId: string) => ClassSubagentStreamInterface$1<S, TC, N> | undefined : never;
17
13
  getSubagentsByType: T extends {
18
14
  getSubagentsByType: (type: string) => SubagentStreamInterface$1<infer S, infer TC, infer N>[];
19
- } ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[] : never;
15
+ } ? (type: string) => ClassSubagentStreamInterface$1<S, TC, N>[] : never;
20
16
  getSubagentsByMessage: T extends {
21
17
  getSubagentsByMessage: (id: string) => SubagentStreamInterface$1<infer S, infer TC, infer N>[];
22
- } ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[] : never;
18
+ } ? (messageId: string) => ClassSubagentStreamInterface$1<S, TC, N>[] : never;
23
19
  } : unknown);
24
20
  declare function useStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: VueReactiveOptions<ResolveStreamOptions$1<T, InferBag$1<T, Bag>>>): WithClassMessages<ResolveStreamInterface$1<T, InferBag$1<T, Bag>>>;
25
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>>>;
26
22
  type ToolCallWithResult<ToolCall = DefaultToolCall$1> = ToolCallWithResult$1<ToolCall, ToolMessage, AIMessage>;
27
23
  //#endregion
28
- export { type AgentTypeConfigLike, type BaseStream, type BaseSubagentState, 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 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 };
29
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;KA6UK,iBAAA,oBACS,CAAA,IAAK,CAAA,kFAKb,CAAA,GAAI,CAAA,sBACJ,WAAA,CAAY,WAAA,MACZ,CAAA,kCAEI,OAAA,EAAS,WAAA,EACT,KAAA,cACG,iBAAA,CAAgB,MAAA,iCACrB,CAAA,uBACE,CAAA,CAAE,CAAA,yBACA,GAAA,CAAI,uBAAA,CAAwB,EAAA,OAC5B,GAAA,CAAI,CAAA,CAAE,CAAA,KACR,CAAA,0BACE,CAAA,CAAE,CAAA,YAAY,OAAA,gCACX,OAAA,EAAS,SAAA,KAAkB,uBAAA,CAAwB,EAAA,MACpD,CAAA,CAAE,CAAA,IACJ,CAAA,kCAEiB,CAAA,CAAE,CAAA,IAAK,CAAA,CAAE,CAAA,EAAG,EAAA,eACpB,IAAA,6BAEG,IAAA,EAAM,CAAA,KAAM,CAAA,GAChB,CAAA,CAAE,CAAA,EAAG,EAAA,MAEX,CAAA,oCACE,CAAA,CAAE,CAAA,IACF,CAAA,uBACE,CAAA,CAAE,CAAA,UAAW,GAAA,SAEX,yBAAA,gCAEA,GAAA,SAAY,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA,KAChD,CAAA,CAAE,CAAA,IACJ,CAAA,6BACE,CAAA,CAAE,CAAA,UAAW,yBAAA,iCAKX,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA,MACpC,CAAA,CAAE,CAAA,IACJ,CAAA,oBACE,CAAA,CAAE,CAAA,YACA,MAAA,WACA,OAAA,6BAGE,MAAA,EACI,kBAAA,CAAmB,OAAA,CAAQ,CAAA,yCAG/B,OAAA,GAAU,CAAA,KACP,GAAA,GACL,CAAA,CAAE,CAAA,IACJ,CAAA,qBACE,WAAA,CAAY,uBAAA,CAAwB,CAAA,CAAE,CAAA,MACtC,CAAA,CAAE,CAAA,eAAe,IAAA,6BACX,IAAA,EAAM,CAAA,KAAM,CAAA,GAChB,GAAA,CAAI,CAAA,CAAE,CAAA,kCACD,CAAA;EAEzB,WAAA,EAAa,CAAA;IACX,WAAA,GACE,EAAA,aACG,yBAAA;EAAA,KAGD,UAAA,aACG,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;EAE7C,kBAAA,EAAoB,CAAA;IAClB,kBAAA,GACE,IAAA,aACG,yBAAA;EAAA,KAEF,IAAA,aAAiB,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;EAE1D,qBAAA,EAAuB,CAAA;IACrB,qBAAA,GACE,EAAA,aACG,yBAAA;EAAA,KAEF,SAAA,aAAsB,8BAAA,CAA6B,CAAA,EAAG,EAAA,EAAI,CAAA;AAAA;AAAA,iBAKrD,SAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EAAS,kBAAA,CAAmB,sBAAA,CAAqB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA,MAC/D,iBAAA,CAAkB,wBAAA,CAAuB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA;AAAA,iBAE3C,SAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EAAS,kBAAA,CACP,wBAAA,CAAuB,gBAAA,CAAe,CAAA,GAAI,UAAA,CAAS,CAAA,EAAG,GAAA,MAEvD,iBAAA,CAAkB,wBAAA,CAAuB,CAAA,EAAG,UAAA,CAAS,CAAA,EAAG,GAAA;AAAA,KAyD/C,kBAAA,YAA8B,iBAAA,IACxC,oBAAA,CAAoB,QAAA,EAAU,WAAA,EAAiB,SAAA"}
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} 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 // Reactive wrappers backed by orchestrator subscription\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 // Computed values\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 return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\ntype ClassToolCallWithResult<T> =\n T extends _ToolCallWithResult<infer TC, unknown, unknown>\n ? _ToolCallWithResult<TC, CoreToolMessage, CoreAIMessage>\n : T;\n\nexport type ClassSubagentStreamInterface<\n StateType = Record<string, unknown>,\n ToolCall = DefaultToolCall,\n SubagentName extends string = string,\n> = Omit<\n SubagentStreamInterface<StateType, ToolCall, SubagentName>,\n \"messages\"\n> & {\n messages: BaseMessage[];\n};\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 return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\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":";;;;;;AAyDA,SAAS,aAQP,SAA+D;CAC/D,MAAM,gBAAwC,OAAO,mBAAmB,EAAE,CAAC;CAE3E,MAAM,SAAS,eAAe;EAC5B,MAAM,IAAI,QAAQ,QAAQ,OAAO,IAAI,cAAc;AACnD,MAAI,EAAG,QAAO;AACd,SAAO,IAAI,OAAO;GAChB,QAAQ,QAAQ,QAAQ,OAAO,IAAI,cAAc;GACjD,QAAQ,QAAQ,QAAQ,OAAO,IAAI,cAAc;GACjD,eAAe,QAAQ,QAAQ,cAAc;GAC7C,gBAAgB,QAAQ,QAAQ,eAAe;GAChD,CAAC;GACF;CAEF,MAAM,eAAe,IAAI,mBACvB,SACA;EACE,iBAAiB,OAAO;EACxB,sBAAsB,QAAQ,QAAQ,YAAY;EAClD,sBAAsB,QAAQ,QAAQ,YAAY,IAAI;EACvD,CACF;CAED,MAAM,kBAAkB,QAAQ,QAAQ,SAAS,IAAI,KAAA;AACrD,cAAa,aAAa,gBAAgB;AAE1C,aACQ,QAAQ,QAAQ,SAAS,GAC9B,UAAU;EACT,MAAM,WAAW,SAAS,KAAA;AAC1B,eAAa,YAAY,SAAS;IAEpC,EAAE,OAAO,QAAQ,CAClB;CAMD,MAAM,UAAU,WAAW,EAAE;CAC7B,MAAM,eAAe,WAAW,aAAa,UAAU;CACvD,MAAM,qBAAqB,WAAW,aAAa,gBAAgB;CAEnE,MAAM,cAAc,aAAa,gBAAgB;AAC/C,UAAQ,SAAS;AACjB,eAAa,QAAQ,aAAa;AAClC,qBAAmB,QAAQ,aAAa;GACxC;AAEF,sBAAqB;AACnB,eAAa;AACb,eAAa,SAAS;GACtB;AAGF,aACQ;AACC,UAAQ;EACb,MAAM,aAAa,aAAa;AAChC,SAAO;GACL,QACE,QAAQ,0BACR,CAAC,aAAa,aACd,CAAC,aAAa,YAAY,aAC1B,WAAW,SAAS;GACtB,KAAK,WAAW;GACjB;KAEF,EAAE,UAAU,OAAO,cAAc;AAChC,MAAI,QAAQ;GACV,MAAM,aAAa,aAAa,8BAA8B;AAC9D,OAAI,WACF,iBAAgB,WAAW,OAAO,CAAC;;IAIzC,EAAE,WAAW,MAAM,CACpB;AAGD,cACS;EACL,SAAS,aAAa;EACtB,MAAM,aAAa;EACnB,GAAG,QAAQ;EACZ,SACK;AACJ,eAAa,YAAY;GAE5B;CAGD,IAAI,EAAE,oBAAoB;AAC1B,KAAI,gBACF,cAAa,cAAc;AAG7B,aACQ;AACC,UAAQ;AACb,SAAO,aAAa;UAEhB;AACJ,GAAC,CAAE,mBAAoB;AACvB,MAAI,gBACF,cAAa,cAAc;GAGhC;CAYD,MAAM,SAAS,eAAe;AACvB,UAAQ;AACb,SAAO,aAAa;GACpB;CAEF,MAAM,QAAQ,eAAe;AACtB,UAAQ;AACb,SAAO,aAAa;GACpB;CAEF,MAAM,YAAY,eAAe;AAC1B,UAAQ;AACb,SAAO,aAAa;GACpB;CAEF,MAAM,SAAS,IAAY,GAAG;AAC9B,aACQ;AACC,UAAQ;AACb,SAAO,aAAa;KAErB,cAAc;AACb,MAAI,OAAO,UAAU,UAAW,QAAO,QAAQ;IAEjD,EAAE,WAAW,MAAM,CACpB;AAgDD,QAAO;EACL,IAAI,cAAc;AAChB,UAAO,QAAQ,QAAQ,YAAY;;EAErC,IAAI,SAAS;AACX,UAAO,OAAO;;EAGhB;EACA;EACA;EAEA;EACA,UAAU,OAAe;AACvB,gBAAa,UAAU,MAAM;;EAG/B,UA/De,eAAe;AACzB,WAAQ;AACb,gBAAa,gBAAgB,iBAAiB;AAC9C,UAAO,uBAAuB,aAAa,SAAS;IACpD;EA4DA,WA1DgB,eAAe;AAC1B,WAAQ;AACb,UAAO,aAAa;IACpB;EAyDA,aAAa,SAAkB;AAC7B,gBAAa,gBAAgB,iBAAiB;AAC9C,UAAO,aAAa,aAAa,QAAQ;;EAG3C,WA5DgB,eAAe;AAC1B,WAAQ;AACb,UAAO,aAAa;IACpB;EA0DA,YAxDiB,eAAe;AAC3B,WAAQ;AACb,UAAO,aAAa;IACpB;EAsDA,SApDkB,eAAe;AAC5B,WAAQ;AACb,UAAO,aAAa;IACpB;EAkDA,iBAhDsB,eAAe;AAChC,WAAQ;AACb,UAAO,aAAa;IACpB;EA8CA,yBA5C6B,eAAe;AACvC,WAAQ;AACb,UAAO,aAAa;IACpB;EA2CA,sBACE,SACA,UAC2C;AAC3C,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,SAAS,GAAG,SACV,aAAa,OAAO,GAAG,KAAK;EAC9B,YAAY,aAAa,MAAM;EAC/B,aAAa,GAAG,SACd,aAAa,WAAW,GAAG,KAAK;EAElC,OAAO,SAAS;GACd,SAvDiB,eAAe;AAC7B,YAAQ;AACb,WAAO,aAAa;KACpB;GAqDE,MAnDc,eAAe;AAC1B,YAAQ;AACb,WAAO,aAAa;KACpB;GAiDE,SAAS,OAAe,aAAa,gBAAgB,GAAG;GACxD,aAAa,aAAa,YAAY;GACvC,CAAC;EAEF,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC,IAAI,YAAY;AACd,UAAO,aAAa;;EAEtB,IAAI,kBAAkB;AACpB,UAAO,mBAAmB;;EAE5B,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD;;AAkHH,SAAgB,UAAU,SAAmB;AAC3C,KAAI,eAAe,QACjB,QAAO,gBAAgB,QAAQ;AAEjC,QAAO,aAAa,QAAQ"}
@@ -34,6 +34,22 @@ function useStreamCustom(options) {
34
34
  }), ({ should }) => {
35
35
  if (should) orchestrator.reconstructSubagentsIfNeeded();
36
36
  }, { immediate: true });
37
+ const interruptsComputed = (0, vue.computed)(() => {
38
+ isLoading.value;
39
+ return orchestrator.interrupts;
40
+ });
41
+ const interruptComputed = (0, vue.computed)(() => {
42
+ isLoading.value;
43
+ return orchestrator.interrupt;
44
+ });
45
+ const messagesComputed = (0, vue.computed)(() => {
46
+ if (!streamValues.value) return [];
47
+ return (0, _langchain_langgraph_sdk_ui.ensureMessageInstances)(orchestrator.messages);
48
+ });
49
+ const toolCallsComputed = (0, vue.computed)(() => {
50
+ if (!streamValues.value) return [];
51
+ return orchestrator.toolCalls;
52
+ });
37
53
  return {
38
54
  get values() {
39
55
  return streamValues.value ?? {};
@@ -55,29 +71,23 @@ function useStreamCustom(options) {
55
71
  getMessagesMetadata(message, index) {
56
72
  return orchestrator.getMessagesMetadata(message, index);
57
73
  },
58
- queue: {
59
- entries: [],
60
- size: 0,
61
- async cancel() {
62
- return false;
63
- },
64
- async clear() {}
65
- },
74
+ queue: (0, vue.reactive)({
75
+ entries: (0, vue.shallowRef)([]),
76
+ size: (0, vue.shallowRef)(0),
77
+ cancel: async () => false,
78
+ clear: async () => {}
79
+ }),
66
80
  get interrupts() {
67
- isLoading.value;
68
- return orchestrator.interrupts;
81
+ return interruptsComputed.value;
69
82
  },
70
83
  get interrupt() {
71
- isLoading.value;
72
- return orchestrator.interrupt;
84
+ return interruptComputed.value;
73
85
  },
74
86
  get messages() {
75
- if (!streamValues.value) return [];
76
- return (0, _langchain_langgraph_sdk_ui.ensureMessageInstances)(orchestrator.messages);
87
+ return messagesComputed.value;
77
88
  },
78
89
  get toolCalls() {
79
- if (!streamValues.value) return [];
80
- return orchestrator.toolCalls;
90
+ return toolCallsComputed.value;
81
91
  },
82
92
  getToolCalls(message) {
83
93
  return orchestrator.getToolCalls(message);
@@ -1 +1 @@
1
- {"version":3,"file":"stream.custom.cjs","names":["CustomStreamOrchestrator"],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { onScopeDispose, ref, shallowRef, toValue, watch } from \"vue\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\nimport type { VueReactiveOptions } from \"./types.js\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamCustomOptions<StateType, Bag>>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamCustomOptions<StateType, Bag>,\n );\n\n const branch = ref<string>(\"\");\n\n let threadId: string | null = toValue(options.threadId) ?? null;\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? null;\n if (resolved !== threadId) {\n threadId = resolved;\n orchestrator.syncThreadId(resolved);\n }\n },\n { flush: \"sync\" },\n );\n\n const streamValues = shallowRef<StateType | null>(null);\n const streamError = shallowRef<unknown>(undefined);\n const isLoading = shallowRef(false);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n streamValues.value = orchestrator.streamValues;\n streamError.value = orchestrator.error;\n isLoading.value = orchestrator.isLoading;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n watch(\n () => ({\n should:\n options.filterSubagentMessages &&\n !isLoading.value &&\n streamValues.value != null &&\n orchestrator.messages.length > 0,\n len: orchestrator.messages.length,\n }),\n ({ should }) => {\n if (should) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n },\n { immediate: true },\n );\n\n return {\n get values() {\n return streamValues.value ?? ({} as StateType);\n },\n\n error: streamError,\n isLoading,\n\n stop: () => orchestrator.stop(),\n\n submit: async (\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) => {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.value = value;\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: {\n entries: [],\n size: 0,\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n get interrupts(): Interrupt<InterruptType>[] {\n void isLoading.value;\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n },\n\n get interrupt(): Interrupt<InterruptType> | undefined {\n void isLoading.value;\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n },\n\n get messages() {\n if (!streamValues.value) return [];\n return ensureMessageInstances(orchestrator.messages);\n },\n\n get toolCalls() {\n if (!streamValues.value) return [];\n return orchestrator.toolCalls;\n },\n\n getToolCalls(message: Message) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n\n getSubagent(toolCallId: string) {\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":";;;AAcA,SAAgB,gBAGd,SAAqE;CAKrE,MAAM,eAAe,IAAIA,4BAAAA,yBACvB,QACD;CAED,MAAM,UAAA,GAAA,IAAA,KAAqB,GAAG;CAE9B,IAAI,YAAA,GAAA,IAAA,SAAkC,QAAQ,SAAS,IAAI;AAE3D,EAAA,GAAA,IAAA,cAAA,GAAA,IAAA,SACgB,QAAQ,SAAS,GAC9B,UAAU;EACT,MAAM,WAAW,SAAS;AAC1B,MAAI,aAAa,UAAU;AACzB,cAAW;AACX,gBAAa,aAAa,SAAS;;IAGvC,EAAE,OAAO,QAAQ,CAClB;CAED,MAAM,gBAAA,GAAA,IAAA,YAA4C,KAAK;CACvD,MAAM,eAAA,GAAA,IAAA,YAAkC,KAAA,EAAU;CAClD,MAAM,aAAA,GAAA,IAAA,YAAuB,MAAM;CACnC,MAAM,gBAAA,GAAA,IAAA,YAA0B,aAAa,UAAU;CACvD,MAAM,sBAAA,GAAA,IAAA,YAAgC,aAAa,gBAAgB;CAEnE,MAAM,cAAc,aAAa,gBAAgB;AAC/C,eAAa,QAAQ,aAAa;AAClC,cAAY,QAAQ,aAAa;AACjC,YAAU,QAAQ,aAAa;AAC/B,eAAa,QAAQ,aAAa;AAClC,qBAAmB,QAAQ,aAAa;GACxC;AAEF,EAAA,GAAA,IAAA,sBAAqB;AACnB,eAAa;AACb,eAAa,SAAS;GACtB;AAEF,EAAA,GAAA,IAAA,cACS;EACL,QACE,QAAQ,0BACR,CAAC,UAAU,SACX,aAAa,SAAS,QACtB,aAAa,SAAS,SAAS;EACjC,KAAK,aAAa,SAAS;EAC5B,IACA,EAAE,aAAa;AACd,MAAI,OACF,cAAa,8BAA8B;IAG/C,EAAE,WAAW,MAAM,CACpB;AAED,QAAO;EACL,IAAI,SAAS;AACX,UAAO,aAAa,SAAU,EAAE;;EAGlC,OAAO;EACP;EAEA,YAAY,aAAa,MAAM;EAE/B,QAAQ,OACN,QACA,kBACG;AACH,SAAM,aAAa,OAAO,QAAQ,cAAc;;EAGlD,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC;EACA,UAAU,OAAe;AACvB,UAAO,QAAQ;AACf,gBAAa,UAAU,MAAM;;EAG/B,oBACE,SACA,OACwC;AACxC,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,OAAO;GACL,SAAS,EAAE;GACX,MAAM;GACN,MAAM,SAAS;AACb,WAAO;;GAET,MAAM,QAAQ;GACf;EAED,IAAI,aAAyC;AACtC,aAAU;AACf,UAAO,aAAa;;EAGtB,IAAI,YAAkD;AAC/C,aAAU;AACf,UAAO,aAAa;;EAGtB,IAAI,WAAW;AACb,OAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,WAAA,GAAA,4BAAA,wBAA8B,aAAa,SAAS;;EAGtD,IAAI,YAAY;AACd,OAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,UAAO,aAAa;;EAGtB,aAAa,SAAkB;AAC7B,UAAO,aAAa,aAAa,QAAQ;;EAG3C,IAAI,YAAY;AACd,UAAO,aAAa;;EAGtB,IAAI,kBAAkB;AACpB,UAAO,mBAAmB;;EAG5B,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD"}
1
+ {"version":3,"file":"stream.custom.cjs","names":["CustomStreamOrchestrator"],"sources":["../src/stream.custom.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n} from \"vue\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\nimport type { VueReactiveOptions } from \"./types.js\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamCustomOptions<StateType, Bag>>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamCustomOptions<StateType, Bag>,\n );\n\n const branch = ref<string>(\"\");\n\n let threadId: string | null = toValue(options.threadId) ?? null;\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? null;\n if (resolved !== threadId) {\n threadId = resolved;\n orchestrator.syncThreadId(resolved);\n }\n },\n { flush: \"sync\" },\n );\n\n const streamValues = shallowRef<StateType | null>(null);\n const streamError = shallowRef<unknown>(undefined);\n const isLoading = shallowRef(false);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n streamValues.value = orchestrator.streamValues;\n streamError.value = orchestrator.error;\n isLoading.value = orchestrator.isLoading;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n watch(\n () => ({\n should:\n options.filterSubagentMessages &&\n !isLoading.value &&\n streamValues.value != null &&\n orchestrator.messages.length > 0,\n len: orchestrator.messages.length,\n }),\n ({ should }) => {\n if (should) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n },\n { immediate: true },\n );\n\n // Cached computed properties — unlike plain getters, `computed()` only\n // recomputes when a tracked dependency changes, and caches the result\n // between reads. Getters below unwrap `.value` so callers see plain\n // values (matching the original API surface).\n //\n // `void isLoading.value` / reading `streamValues.value` accesses the\n // ref solely to register it as a dependency of the computed, so Vue\n // knows to invalidate the cached value when the orchestrator pushes an\n // update. The `void` operator discards the unused value and signals\n // intent to future readers.\n const interruptsComputed = computed(() => {\n void isLoading.value;\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n });\n\n const interruptComputed = computed(() => {\n void isLoading.value;\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n });\n\n const messagesComputed = computed(() => {\n if (!streamValues.value) return [];\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCallsComputed = computed(() => {\n if (!streamValues.value) return [];\n return orchestrator.toolCalls;\n });\n\n const queueEntries = shallowRef<unknown[]>([]);\n const queueSize = shallowRef(0);\n\n return {\n get values() {\n return streamValues.value ?? ({} as StateType);\n },\n\n error: streamError,\n isLoading,\n\n stop: () => orchestrator.stop(),\n\n submit: async (\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) => {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.value = value;\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: async () => false,\n clear: async () => {},\n }),\n\n get interrupts(): Interrupt<InterruptType>[] {\n return interruptsComputed.value;\n },\n get interrupt(): Interrupt<InterruptType> | undefined {\n return interruptComputed.value;\n },\n get messages() {\n return messagesComputed.value;\n },\n get toolCalls() {\n return toolCallsComputed.value;\n },\n\n getToolCalls(message: Message) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n\n getSubagent(toolCallId: string) {\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { onScopeDispose, ref, shallowRef, toValue, watch } from "vue";
1
+ import { computed, onScopeDispose, reactive, ref, shallowRef, toValue, watch } from "vue";
2
2
  import { CustomStreamOrchestrator, ensureMessageInstances } from "@langchain/langgraph-sdk/ui";
3
3
  //#region src/stream.custom.ts
4
4
  function useStreamCustom(options) {
@@ -34,6 +34,22 @@ function useStreamCustom(options) {
34
34
  }), ({ should }) => {
35
35
  if (should) orchestrator.reconstructSubagentsIfNeeded();
36
36
  }, { immediate: true });
37
+ const interruptsComputed = computed(() => {
38
+ isLoading.value;
39
+ return orchestrator.interrupts;
40
+ });
41
+ const interruptComputed = computed(() => {
42
+ isLoading.value;
43
+ return orchestrator.interrupt;
44
+ });
45
+ const messagesComputed = computed(() => {
46
+ if (!streamValues.value) return [];
47
+ return ensureMessageInstances(orchestrator.messages);
48
+ });
49
+ const toolCallsComputed = computed(() => {
50
+ if (!streamValues.value) return [];
51
+ return orchestrator.toolCalls;
52
+ });
37
53
  return {
38
54
  get values() {
39
55
  return streamValues.value ?? {};
@@ -55,29 +71,23 @@ function useStreamCustom(options) {
55
71
  getMessagesMetadata(message, index) {
56
72
  return orchestrator.getMessagesMetadata(message, index);
57
73
  },
58
- queue: {
59
- entries: [],
60
- size: 0,
61
- async cancel() {
62
- return false;
63
- },
64
- async clear() {}
65
- },
74
+ queue: reactive({
75
+ entries: shallowRef([]),
76
+ size: shallowRef(0),
77
+ cancel: async () => false,
78
+ clear: async () => {}
79
+ }),
66
80
  get interrupts() {
67
- isLoading.value;
68
- return orchestrator.interrupts;
81
+ return interruptsComputed.value;
69
82
  },
70
83
  get interrupt() {
71
- isLoading.value;
72
- return orchestrator.interrupt;
84
+ return interruptComputed.value;
73
85
  },
74
86
  get messages() {
75
- if (!streamValues.value) return [];
76
- return ensureMessageInstances(orchestrator.messages);
87
+ return messagesComputed.value;
77
88
  },
78
89
  get toolCalls() {
79
- if (!streamValues.value) return [];
80
- return orchestrator.toolCalls;
90
+ return toolCallsComputed.value;
81
91
  },
82
92
  getToolCalls(message) {
83
93
  return orchestrator.getToolCalls(message);
@@ -1 +1 @@
1
- {"version":3,"file":"stream.custom.js","names":[],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { onScopeDispose, ref, shallowRef, toValue, watch } from \"vue\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\nimport type { VueReactiveOptions } from \"./types.js\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamCustomOptions<StateType, Bag>>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamCustomOptions<StateType, Bag>,\n );\n\n const branch = ref<string>(\"\");\n\n let threadId: string | null = toValue(options.threadId) ?? null;\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? null;\n if (resolved !== threadId) {\n threadId = resolved;\n orchestrator.syncThreadId(resolved);\n }\n },\n { flush: \"sync\" },\n );\n\n const streamValues = shallowRef<StateType | null>(null);\n const streamError = shallowRef<unknown>(undefined);\n const isLoading = shallowRef(false);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n streamValues.value = orchestrator.streamValues;\n streamError.value = orchestrator.error;\n isLoading.value = orchestrator.isLoading;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n watch(\n () => ({\n should:\n options.filterSubagentMessages &&\n !isLoading.value &&\n streamValues.value != null &&\n orchestrator.messages.length > 0,\n len: orchestrator.messages.length,\n }),\n ({ should }) => {\n if (should) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n },\n { immediate: true },\n );\n\n return {\n get values() {\n return streamValues.value ?? ({} as StateType);\n },\n\n error: streamError,\n isLoading,\n\n stop: () => orchestrator.stop(),\n\n submit: async (\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) => {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.value = value;\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: {\n entries: [],\n size: 0,\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n get interrupts(): Interrupt<InterruptType>[] {\n void isLoading.value;\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n },\n\n get interrupt(): Interrupt<InterruptType> | undefined {\n void isLoading.value;\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n },\n\n get messages() {\n if (!streamValues.value) return [];\n return ensureMessageInstances(orchestrator.messages);\n },\n\n get toolCalls() {\n if (!streamValues.value) return [];\n return orchestrator.toolCalls;\n },\n\n getToolCalls(message: Message) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n\n getSubagent(toolCallId: string) {\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":";;;AAcA,SAAgB,gBAGd,SAAqE;CAKrE,MAAM,eAAe,IAAI,yBACvB,QACD;CAED,MAAM,SAAS,IAAY,GAAG;CAE9B,IAAI,WAA0B,QAAQ,QAAQ,SAAS,IAAI;AAE3D,aACQ,QAAQ,QAAQ,SAAS,GAC9B,UAAU;EACT,MAAM,WAAW,SAAS;AAC1B,MAAI,aAAa,UAAU;AACzB,cAAW;AACX,gBAAa,aAAa,SAAS;;IAGvC,EAAE,OAAO,QAAQ,CAClB;CAED,MAAM,eAAe,WAA6B,KAAK;CACvD,MAAM,cAAc,WAAoB,KAAA,EAAU;CAClD,MAAM,YAAY,WAAW,MAAM;CACnC,MAAM,eAAe,WAAW,aAAa,UAAU;CACvD,MAAM,qBAAqB,WAAW,aAAa,gBAAgB;CAEnE,MAAM,cAAc,aAAa,gBAAgB;AAC/C,eAAa,QAAQ,aAAa;AAClC,cAAY,QAAQ,aAAa;AACjC,YAAU,QAAQ,aAAa;AAC/B,eAAa,QAAQ,aAAa;AAClC,qBAAmB,QAAQ,aAAa;GACxC;AAEF,sBAAqB;AACnB,eAAa;AACb,eAAa,SAAS;GACtB;AAEF,cACS;EACL,QACE,QAAQ,0BACR,CAAC,UAAU,SACX,aAAa,SAAS,QACtB,aAAa,SAAS,SAAS;EACjC,KAAK,aAAa,SAAS;EAC5B,IACA,EAAE,aAAa;AACd,MAAI,OACF,cAAa,8BAA8B;IAG/C,EAAE,WAAW,MAAM,CACpB;AAED,QAAO;EACL,IAAI,SAAS;AACX,UAAO,aAAa,SAAU,EAAE;;EAGlC,OAAO;EACP;EAEA,YAAY,aAAa,MAAM;EAE/B,QAAQ,OACN,QACA,kBACG;AACH,SAAM,aAAa,OAAO,QAAQ,cAAc;;EAGlD,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC;EACA,UAAU,OAAe;AACvB,UAAO,QAAQ;AACf,gBAAa,UAAU,MAAM;;EAG/B,oBACE,SACA,OACwC;AACxC,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,OAAO;GACL,SAAS,EAAE;GACX,MAAM;GACN,MAAM,SAAS;AACb,WAAO;;GAET,MAAM,QAAQ;GACf;EAED,IAAI,aAAyC;AACtC,aAAU;AACf,UAAO,aAAa;;EAGtB,IAAI,YAAkD;AAC/C,aAAU;AACf,UAAO,aAAa;;EAGtB,IAAI,WAAW;AACb,OAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,UAAO,uBAAuB,aAAa,SAAS;;EAGtD,IAAI,YAAY;AACd,OAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,UAAO,aAAa;;EAGtB,aAAa,SAAkB;AAC7B,UAAO,aAAa,aAAa,QAAQ;;EAG3C,IAAI,YAAY;AACd,UAAO,aAAa;;EAGtB,IAAI,kBAAkB;AACpB,UAAO,mBAAmB;;EAG5B,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD"}
1
+ {"version":3,"file":"stream.custom.js","names":[],"sources":["../src/stream.custom.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n ref,\n shallowRef,\n toValue,\n watch,\n} from \"vue\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\nimport type { VueReactiveOptions } from \"./types.js\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: VueReactiveOptions<AnyStreamCustomOptions<StateType, Bag>>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(\n options as unknown as AnyStreamCustomOptions<StateType, Bag>,\n );\n\n const branch = ref<string>(\"\");\n\n let threadId: string | null = toValue(options.threadId) ?? null;\n\n watch(\n () => toValue(options.threadId),\n (newId) => {\n const resolved = newId ?? null;\n if (resolved !== threadId) {\n threadId = resolved;\n orchestrator.syncThreadId(resolved);\n }\n },\n { flush: \"sync\" },\n );\n\n const streamValues = shallowRef<StateType | null>(null);\n const streamError = shallowRef<unknown>(undefined);\n const isLoading = shallowRef(false);\n const subagentsRef = shallowRef(orchestrator.subagents);\n const activeSubagentsRef = shallowRef(orchestrator.activeSubagents);\n\n const unsubscribe = orchestrator.subscribe(() => {\n streamValues.value = orchestrator.streamValues;\n streamError.value = orchestrator.error;\n isLoading.value = orchestrator.isLoading;\n subagentsRef.value = orchestrator.subagents;\n activeSubagentsRef.value = orchestrator.activeSubagents;\n });\n\n onScopeDispose(() => {\n unsubscribe();\n orchestrator.dispose();\n });\n\n watch(\n () => ({\n should:\n options.filterSubagentMessages &&\n !isLoading.value &&\n streamValues.value != null &&\n orchestrator.messages.length > 0,\n len: orchestrator.messages.length,\n }),\n ({ should }) => {\n if (should) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n },\n { immediate: true },\n );\n\n // Cached computed properties — unlike plain getters, `computed()` only\n // recomputes when a tracked dependency changes, and caches the result\n // between reads. Getters below unwrap `.value` so callers see plain\n // values (matching the original API surface).\n //\n // `void isLoading.value` / reading `streamValues.value` accesses the\n // ref solely to register it as a dependency of the computed, so Vue\n // knows to invalidate the cached value when the orchestrator pushes an\n // update. The `void` operator discards the unused value and signals\n // intent to future readers.\n const interruptsComputed = computed(() => {\n void isLoading.value;\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n });\n\n const interruptComputed = computed(() => {\n void isLoading.value;\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n });\n\n const messagesComputed = computed(() => {\n if (!streamValues.value) return [];\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCallsComputed = computed(() => {\n if (!streamValues.value) return [];\n return orchestrator.toolCalls;\n });\n\n const queueEntries = shallowRef<unknown[]>([]);\n const queueSize = shallowRef(0);\n\n return {\n get values() {\n return streamValues.value ?? ({} as StateType);\n },\n\n error: streamError,\n isLoading,\n\n stop: () => orchestrator.stop(),\n\n submit: async (\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) => {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.value = value;\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: reactive({\n entries: queueEntries,\n size: queueSize,\n cancel: async () => false,\n clear: async () => {},\n }),\n\n get interrupts(): Interrupt<InterruptType>[] {\n return interruptsComputed.value;\n },\n get interrupt(): Interrupt<InterruptType> | undefined {\n return interruptComputed.value;\n },\n get messages() {\n return messagesComputed.value;\n },\n get toolCalls() {\n return toolCallsComputed.value;\n },\n\n getToolCalls(message: Message) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n return subagentsRef.value;\n },\n\n get activeSubagents() {\n return activeSubagentsRef.value;\n },\n\n getSubagent(toolCallId: string) {\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":";;;AAsBA,SAAgB,gBAGd,SAAqE;CAKrE,MAAM,eAAe,IAAI,yBACvB,QACD;CAED,MAAM,SAAS,IAAY,GAAG;CAE9B,IAAI,WAA0B,QAAQ,QAAQ,SAAS,IAAI;AAE3D,aACQ,QAAQ,QAAQ,SAAS,GAC9B,UAAU;EACT,MAAM,WAAW,SAAS;AAC1B,MAAI,aAAa,UAAU;AACzB,cAAW;AACX,gBAAa,aAAa,SAAS;;IAGvC,EAAE,OAAO,QAAQ,CAClB;CAED,MAAM,eAAe,WAA6B,KAAK;CACvD,MAAM,cAAc,WAAoB,KAAA,EAAU;CAClD,MAAM,YAAY,WAAW,MAAM;CACnC,MAAM,eAAe,WAAW,aAAa,UAAU;CACvD,MAAM,qBAAqB,WAAW,aAAa,gBAAgB;CAEnE,MAAM,cAAc,aAAa,gBAAgB;AAC/C,eAAa,QAAQ,aAAa;AAClC,cAAY,QAAQ,aAAa;AACjC,YAAU,QAAQ,aAAa;AAC/B,eAAa,QAAQ,aAAa;AAClC,qBAAmB,QAAQ,aAAa;GACxC;AAEF,sBAAqB;AACnB,eAAa;AACb,eAAa,SAAS;GACtB;AAEF,cACS;EACL,QACE,QAAQ,0BACR,CAAC,UAAU,SACX,aAAa,SAAS,QACtB,aAAa,SAAS,SAAS;EACjC,KAAK,aAAa,SAAS;EAC5B,IACA,EAAE,aAAa;AACd,MAAI,OACF,cAAa,8BAA8B;IAG/C,EAAE,WAAW,MAAM,CACpB;CAYD,MAAM,qBAAqB,eAAe;AACnC,YAAU;AACf,SAAO,aAAa;GACpB;CAEF,MAAM,oBAAoB,eAAe;AAClC,YAAU;AACf,SAAO,aAAa;GACpB;CAEF,MAAM,mBAAmB,eAAe;AACtC,MAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,SAAO,uBAAuB,aAAa,SAAS;GACpD;CAEF,MAAM,oBAAoB,eAAe;AACvC,MAAI,CAAC,aAAa,MAAO,QAAO,EAAE;AAClC,SAAO,aAAa;GACpB;AAKF,QAAO;EACL,IAAI,SAAS;AACX,UAAO,aAAa,SAAU,EAAE;;EAGlC,OAAO;EACP;EAEA,YAAY,aAAa,MAAM;EAE/B,QAAQ,OACN,QACA,kBACG;AACH,SAAM,aAAa,OAAO,QAAQ,cAAc;;EAGlD,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC;EACA,UAAU,OAAe;AACvB,UAAO,QAAQ;AACf,gBAAa,UAAU,MAAM;;EAG/B,oBACE,SACA,OACwC;AACxC,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,OAAO,SAAS;GACd,SAtCiB,WAAsB,EAAE,CAAC;GAuC1C,MAtCc,WAAW,EAAE;GAuC3B,QAAQ,YAAY;GACpB,OAAO,YAAY;GACpB,CAAC;EAEF,IAAI,aAAyC;AAC3C,UAAO,mBAAmB;;EAE5B,IAAI,YAAkD;AACpD,UAAO,kBAAkB;;EAE3B,IAAI,WAAW;AACb,UAAO,iBAAiB;;EAE1B,IAAI,YAAY;AACd,UAAO,kBAAkB;;EAG3B,aAAa,SAAkB;AAC7B,UAAO,aAAa,aAAa,QAAQ;;EAG3C,IAAI,YAAY;AACd,UAAO,aAAa;;EAGtB,IAAI,kBAAkB;AACpB,UAAO,mBAAmB;;EAG5B,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/vue",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
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.0"
13
+ "@langchain/langgraph-sdk": "^1.8.1"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@hono/node-server": "^1.19.11",
@@ -38,7 +38,7 @@
38
38
  "vue": "^3.5.30",
39
39
  "webdriverio": "^9.25.0",
40
40
  "zod": "^4.3.6",
41
- "@langchain/langgraph": "1.2.5",
41
+ "@langchain/langgraph": "1.2.6",
42
42
  "@langchain/langgraph-api": "1.1.16",
43
43
  "@langchain/langgraph-checkpoint": "1.0.1"
44
44
  },