/** * `@tambo-ai/react` - React SDK for Tambo AI * * Provides React hooks and providers for building AI-powered applications * using the streaming API with AG-UI protocol. * * ## Authentication & Thread Ownership * * All thread operations require user identification. Provide ONE of: * - `userKey` - Direct user identifier (for server-side or trusted environments) * - `userToken` - OAuth bearer token containing the userKey (for client-side apps) * * Threads are scoped to the userKey - each user only sees their own threads. * * ## Quick Start * * ```tsx * import { * TamboProvider, * useTambo, * useTamboThreadInput, * } from '@tambo-ai/react'; * * function App() { * return ( * * * * ); * } * * function ChatInterface() { * const [threadId, setThreadId] = useState(); * const { messages, isStreaming } = useTambo(); * const { value, setValue, submit, isPending } = useTamboThreadInput(); * * const handleSubmit = async (e: React.FormEvent) => { * e.preventDefault(); * const result = await submit(); * if (!threadId) setThreadId(result.threadId); * }; * * return ( *
* {messages.map(msg => )} * {isStreaming && } * setValue(e.target.value)} /> * * * ); * } * ``` * * ## Type Imports * * Types are imported directly: * - Thread state: `import type { TamboThread } from '@tambo-ai/react'` * - Messages: `import type { TamboThreadMessage } from '@tambo-ai/react'` * * SDK types: `import type { ... } from '@tambo-ai/typescript-sdk'` * AG-UI events: `import { EventType, type BaseEvent } from '@ag-ui/core'` */ import type TamboAI from "@tambo-ai/typescript-sdk"; export { TamboProvider, type TamboProviderProps, useTamboConfig, type TamboConfig, } from "./providers/tambo-v1-provider.js"; export { TamboRegistryProvider } from "../providers/tambo-registry-provider.js"; export { TamboClientProvider, useIsTamboTokenUpdating, } from "../providers/tambo-client-provider.js"; export { TamboContextHelpersProvider, useTamboContextHelpers, } from "../providers/tambo-context-helpers-provider.js"; export { useTamboContextAttachment } from "../providers/tambo-context-attachment-provider.js"; export { TamboThreadInputProvider, type TamboThreadInputContextProps, type SubmitOptions, } from "./providers/tambo-v1-thread-input-provider.js"; export { TamboStubProvider, type TamboStubProviderProps, } from "./providers/tambo-v1-stub-provider.js"; export { ComponentRenderer, type ComponentRendererProps, } from "./components/v1-component-renderer.js"; export { useTambo, type UseTamboReturn } from "./hooks/use-tambo-v1.js"; export type { TamboAuthState } from "@tambo-ai/client"; export type { ToolChoice } from "@tambo-ai/client"; export { useTamboThreadInput } from "./hooks/use-tambo-v1-thread-input.js"; export { useTamboThread } from "./hooks/use-tambo-v1-thread.js"; export { useTamboThreadList } from "./hooks/use-tambo-v1-thread-list.js"; export { useTamboComponentState } from "./hooks/use-tambo-v1-component-state.js"; export { useTamboStreamStatus, type StreamStatus, type PropStatus, } from "./hooks/use-tambo-v1-stream-status.js"; export { useTamboSuggestions, type UseTamboSuggestionsOptions, type UseTamboSuggestionsReturn, type AcceptSuggestionOptions, } from "./hooks/use-tambo-v1-suggestions.js"; export { useTamboClient } from "../providers/tambo-client-provider.js"; export { useMessageImages, type StagedImage, } from "../hooks/use-message-images.js"; export { useTamboVoice } from "../hooks/use-tambo-voice.js"; export { TamboMessageProvider, useTamboCurrentMessage, useTamboCurrentComponent, type TamboCurrentComponent, } from "./hooks/use-tambo-current-message.js"; export { defineTool } from "../util/registry.js"; export { currentPageContextHelper, currentTimeContextHelper, } from "../context-helpers/index.js"; export type { AdditionalContext, ContextHelperFn, ContextHelpers, } from "../context-helpers/index.js"; export type { ComponentContextToolMetadata, ComponentRegistry, ParameterSpec, RegisteredComponent, TamboComponent, TamboTool, ToolAnnotations, } from "../model/component-metadata.js"; export { MCPTransport } from "@tambo-ai/client"; export type { McpServerInfo, NormalizedMcpServerInfo } from "@tambo-ai/client"; export type { ListResourceItem, ReadResourceResult, ResourceSource, } from "../model/resource-info.js"; export type { APIError, RateLimitError, TamboAIError, } from "@tambo-ai/typescript-sdk"; export type Suggestion = TamboAI.Beta.Threads.Suggestion; export type { SuggestionGenerateParams, SuggestionGenerateResponse, SuggestionListResponse, } from "@tambo-ai/typescript-sdk/resources/beta/threads/suggestions"; export type { TamboToolUseContent, TamboToolDisplayProps, } from "./types/message.js"; export type { TamboThreadMessage, ReactTamboThreadMessage, } from "./types/message.js"; export type { Content, TamboComponentContent, ComponentStreamingState, MessageRole, TextContent, ToolResultContent, ResourceContent, InputMessage, InitialInputMessage, MessageListResponse, MessageGetResponse, } from "./types/message.js"; export type { TamboThread, RunStatus, StreamingState, ThreadCreateResponse, ThreadRetrieveResponse, ThreadListResponse, } from "@tambo-ai/client"; export { ComponentContentProvider, useComponentContent, type ComponentContentContext, } from "./utils/component-renderer.js"; export { withTamboInteractable, type InteractableConfig, type WithTamboInteractableProps, } from "../hoc/with-tambo-interactable.js"; export { useTamboInteractable, useCurrentInteractablesSnapshot, } from "../providers/tambo-interactable-provider.js"; export type { TamboInteractableComponent as InteractableComponent, TamboInteractableContext, } from "../model/tambo-interactable.js"; //# sourceMappingURL=index.d.ts.map