{"version":3,"sources":["../src/hooks/use-ai-chat.ts"],"sourcesContent":["/**\n * `useAiChat` is a lightweight React hook for headless chat interactions.\n * Perfect for controlling the prebuilt chat components programmatically.\n *\n * **Open Source Friendly** - Works without requiring a free public license key.\n *\n * <Callout title=\"Looking for fully headless UI?\">\n * Get started with [useAiChatHeadless_c](https://docs.vn.ai/reference/hooks/useAiChatHeadless_c).\n * </Callout>\n *\n * ## Use Cases\n *\n * - **Programmatic Messaging**: Send messages without displaying chat UI\n * - **Programmatic control**: Control prebuilt component programmatically\n * - **Background Operations**: Trigger AI interactions in the background\n * - **Fire-and-Forget**: Send messages without needing to read responses\n *\n * ## Usage\n *\n * ```tsx\n * import { TextMessage, MessageRole } from \"@vn-sdk/runtime-client-gql\";\n *\n * const { appendMessage } = useAiChat();\n *\n * // Example usage without naming conflicts\n * const handleSendMessage = async (content: string) => {\n *   await appendMessage(\n *     new TextMessage({\n *       role: MessageRole.User,\n *       content,\n *     })\n *   );\n * };\n * ```\n *\n * ## Return Values\n * The following properties are returned from the hook:\n *\n * <PropertyReference name=\"visibleMessages\" type=\"DeprecatedGqlMessage[]\" deprecated>\n * Array of messages in old non-AG-UI format, use for compatibility only\n * </PropertyReference>\n *\n * <PropertyReference name=\"appendMessage\" type=\"(message: DeprecatedGqlMessage, options?) => Promise<void>\" deprecated>\n * Append message using old format, use `sendMessage` instead\n * </PropertyReference>\n *\n * <PropertyReference name=\"reloadMessages\" type=\"(messageId: string) => Promise<void>\">\n * Regenerate the response for a specific message by ID\n * </PropertyReference>\n *\n * <PropertyReference name=\"stopGeneration\" type=\"() => void\">\n * Stop the current message generation process\n * </PropertyReference>\n *\n * <PropertyReference name=\"reset\" type=\"() => void\">\n * Clear all messages and reset chat state completely\n * </PropertyReference>\n *\n * <PropertyReference name=\"isLoading\" type=\"boolean\">\n * Whether the chat is currently generating a response\n * </PropertyReference>\n *\n * <PropertyReference name=\"runChatCompletion\" type=\"() => Promise<Message[]>\">\n * Manually trigger chat completion for advanced usage\n * </PropertyReference>\n *\n * <PropertyReference name=\"mcpServers\" type=\"MCPServerConfig[]\">\n * Array of Model Context Protocol server configurations\n * </PropertyReference>\n *\n * <PropertyReference name=\"setMcpServers\" type=\"(servers: MCPServerConfig[]) => void\">\n * Update MCP server configurations for enhanced context\n * </PropertyReference>\n */\n\nimport {\n  UseAiChatOptions,\n  useAiChat as useAiChatInternal,\n  UseAiChatReturn as UseAiChatReturnInternal,\n} from \"./use-ai-chat-internal\";\n\n// Create a type that excludes message-related properties from the internal type\nexport type UseAiChatReturn = Omit<\n  UseAiChatReturnInternal,\n  | \"messages\"\n  | \"sendMessage\"\n  | \"suggestions\"\n  | \"setSuggestions\"\n  | \"generateSuggestions\"\n  | \"isLoadingSuggestions\"\n  | \"resetSuggestions\"\n  | \"interrupt\"\n  | \"setMessages\"\n  | \"deleteMessage\"\n>;\n\n/**\n * A lightweight React hook for headless chat interactions.\n * Perfect for programmatic messaging, background operations, and custom UI implementations.\n *\n * **Open Source Friendly** - Works without requiring a `publicApiKey`.\n */\nexport function useAiChat(options: UseAiChatOptions = {}): UseAiChatReturn {\n  const {\n    visibleMessages,\n    appendMessage,\n    reloadMessages,\n    stopGeneration,\n    reset,\n    isLoading,\n    runChatCompletion,\n    mcpServers,\n    setMcpServers,\n  } = useAiChatInternal(options);\n\n  return {\n    visibleMessages,\n    appendMessage,\n    reloadMessages,\n    stopGeneration,\n    reset,\n    isLoading,\n    runChatCompletion,\n    mcpServers,\n    setMcpServers,\n  };\n}\n"],"mappings":";;;;;AAsGO,SAASA,WAAU,UAA4B,CAAC,GAAoB;AACzE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAkB,OAAO;AAE7B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":["useAiChat"]}