@atzentis/ai-react 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +726 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +242 -2
- package/dist/index.d.ts +242 -2
- package/dist/index.js +712 -3
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AACO,IAAM,OAAA,GAAU","file":"index.cjs","sourcesContent":["// @atzentis/ai-react - React bindings for Atzentis AI SDK\nexport const VERSION = '0.0.1';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/provider/ai-provider.tsx","../src/helpers/errors.ts","../src/hooks/use-ai.ts","../src/hooks/use-chat.ts","../src/hooks/use-rag.ts","../src/hooks/use-agent.ts","../src/hooks/use-voice.ts","../src/hooks/use-content.ts","../src/hooks/use-social.ts","../src/hooks/use-search.ts","../src/hooks/use-video.ts","../src/hooks/use-skills.ts","../src/components/chat-messages.tsx","../src/components/streaming-text.tsx"],"names":["createContext","useMemo","AiClient","useContext","useState","useRef","useEffect","useCallback","jsx","createElement"],"mappings":"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","file":"index.cjs","sourcesContent":["import { AiClient } from '@atzentis/ai-sdk';\nimport { createContext, useMemo } from 'react';\nimport type { AiProviderProps } from '../types/provider';\n\n/** React context carrying the shared AiClient instance. Null outside a provider. */\nexport const AiContext = createContext<AiClient | null>(null);\n\n/**\n * Provides a shared {@link AiClient} to descendant components.\n * The instance is memoised so re-renders with the same config reuse it.\n *\n * @example\n * ```tsx\n * <AiProvider apiKey=\"atz_live_...\">\n * <App />\n * </AiProvider>\n * ```\n */\nexport function AiProvider({ apiKey, baseUrl, client, children }: AiProviderProps) {\n const instance = useMemo(\n () => client ?? new AiClient(baseUrl !== undefined ? { apiKey, baseUrl } : { apiKey }),\n [apiKey, baseUrl, client],\n );\n\n return <AiContext.Provider value={instance}>{children}</AiContext.Provider>;\n}\n","/** Error thrown by `@atzentis/ai-react` hooks for misuse (e.g. missing provider). */\nexport class AiReactError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AiReactError';\n }\n}\n","import type { AiClient } from '@atzentis/ai-sdk';\nimport { useContext } from 'react';\nimport { AiReactError } from '../helpers/errors';\nimport { AiContext } from '../provider/ai-provider';\n\n/**\n * Returns the {@link AiClient} from the nearest {@link AiProvider}.\n * @throws {AiReactError} If called outside an `AiProvider`.\n */\nexport function useAi(): AiClient {\n const client = useContext(AiContext);\n if (client === null) {\n throw new AiReactError('useAi must be used within AiProvider');\n }\n return client;\n}\n","import type { ChatMessage, StreamReader } from '@atzentis/ai-sdk';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport type { UseChatOptions, UseChatReturn } from '../types/chat';\nimport { useAi } from './use-ai';\n\n/**\n * Manages a streaming chat conversation backed by the Atzentis chat service.\n * Appends a user message on `send`, streams the assistant reply in place, and\n * exposes `stop` (cancel the active stream) and `reset` (clear state).\n *\n * @example\n * ```tsx\n * const { messages, send, isStreaming } = useChat();\n * await send('Hello');\n * ```\n */\nexport function useChat(options?: UseChatOptions): UseChatReturn {\n const atz = useAi();\n const [messages, setMessages] = useState<ChatMessage[]>(options?.initialMessages ?? []);\n const [isStreaming, setIsStreaming] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const readerRef = useRef<StreamReader<{ content: string }> | null>(null);\n const mountedRef = useRef(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n void readerRef.current?.return();\n };\n }, []);\n\n const send = useCallback(\n async (content: string): Promise<void> => {\n const userMessage: ChatMessage = { role: 'user', content };\n const history = [...messages, userMessage];\n\n setMessages([...history, { role: 'assistant', content: '' }]);\n setIsLoading(true);\n setError(null);\n\n try {\n const reader = atz.chat.stream({ messages: history });\n readerRef.current = reader;\n\n let assistantText = '';\n let firstChunk = true;\n\n for await (const chunk of reader) {\n if (!mountedRef.current) {\n return;\n }\n if (firstChunk) {\n setIsLoading(false);\n setIsStreaming(true);\n firstChunk = false;\n }\n assistantText += chunk.content;\n setMessages([...history, { role: 'assistant', content: assistantText }]);\n }\n\n if (mountedRef.current) {\n setIsStreaming(false);\n setIsLoading(false);\n }\n } catch (err) {\n if (!mountedRef.current) {\n return;\n }\n if (err instanceof DOMException && err.name === 'AbortError') {\n setIsStreaming(false);\n setIsLoading(false);\n return;\n }\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n setIsStreaming(false);\n setIsLoading(false);\n options?.onError?.(normalized);\n } finally {\n readerRef.current = null;\n }\n },\n [atz, messages, options],\n );\n\n const stop = useCallback((): void => {\n void readerRef.current?.return();\n readerRef.current = null;\n setIsStreaming(false);\n }, []);\n\n const reset = useCallback((): void => {\n void readerRef.current?.return();\n readerRef.current = null;\n setMessages([]);\n setError(null);\n setIsLoading(false);\n setIsStreaming(false);\n }, []);\n\n return { messages, isStreaming, isLoading, error, send, stop, reset };\n}\n","import type { Document, QueryOptions, QueryResult, UploadOptions } from '@atzentis/ai-sdk';\nimport { useCallback, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseRagReturn {\n results: QueryResult | null;\n isLoading: boolean;\n error: Error | null;\n query: (options: QueryOptions) => Promise<QueryResult>;\n upload: (options: UploadOptions) => Promise<Document>;\n reset: () => void;\n}\n\n/**\n * Wraps the RAG service: semantic `query` and document `upload`.\n *\n * @example\n * ```tsx\n * const { query, results } = useRag();\n * await query({ query: 'reset password', knowledgeBaseId: 'kb_1' });\n * ```\n */\nexport function useRag(): UseRagReturn {\n const atz = useAi();\n const [results, setResults] = useState<QueryResult | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const query = useCallback(\n async (options: QueryOptions): Promise<QueryResult> => {\n setIsLoading(true);\n setError(null);\n try {\n const result = await atz.rag.query(options);\n setResults(result);\n return result;\n } catch (err) {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n } finally {\n setIsLoading(false);\n }\n },\n [atz],\n );\n\n const upload = useCallback(\n async (options: UploadOptions): Promise<Document> => {\n setIsLoading(true);\n setError(null);\n try {\n return await atz.rag.upload(options);\n } catch (err) {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n } finally {\n setIsLoading(false);\n }\n },\n [atz],\n );\n\n const reset = useCallback((): void => {\n setResults(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return { results, isLoading, error, query, upload, reset };\n}\n","import type {\n AgentCreateOptions,\n AgentEvent,\n AgentResult,\n AgentRunOptions,\n AgentSession,\n StreamReader,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { AiReactError } from '../helpers/errors';\nimport { useAi } from './use-ai';\n\nexport interface UseAgentReturn {\n session: AgentSession | null;\n steps: AgentEvent[];\n result: AgentResult | null;\n isRunning: boolean;\n error: Error | null;\n create: (options: AgentCreateOptions) => Promise<AgentSession>;\n run: (options: AgentRunOptions) => Promise<AgentResult>;\n stream: (options: AgentRunOptions) => Promise<void>;\n stop: () => void;\n reset: () => void;\n}\n\n/**\n * Wraps the agents service: create a session, then `run` (sync) or `stream`\n * (collecting step events). `stop` cancels an active stream.\n */\nexport function useAgent(): UseAgentReturn {\n const atz = useAi();\n const [session, setSession] = useState<AgentSession | null>(null);\n const [steps, setSteps] = useState<AgentEvent[]>([]);\n const [result, setResult] = useState<AgentResult | null>(null);\n const [isRunning, setIsRunning] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const readerRef = useRef<StreamReader<AgentEvent> | null>(null);\n const mountedRef = useRef(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n void readerRef.current?.return();\n };\n }, []);\n\n const create = useCallback(\n async (options: AgentCreateOptions): Promise<AgentSession> => {\n setError(null);\n try {\n const created = await atz.agents.create(options);\n setSession(created);\n return created;\n } catch (err) {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n }\n },\n [atz],\n );\n\n const run = useCallback(\n async (options: AgentRunOptions): Promise<AgentResult> => {\n if (session === null) {\n throw new AiReactError('No active session — call create() first');\n }\n setIsRunning(true);\n setError(null);\n try {\n const runResult = await atz.agents.run(session.id, options);\n setResult(runResult);\n return runResult;\n } catch (err) {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n } finally {\n setIsRunning(false);\n }\n },\n [atz, session],\n );\n\n const stream = useCallback(\n async (options: AgentRunOptions): Promise<void> => {\n if (session === null) {\n throw new AiReactError('No active session — call create() first');\n }\n setIsRunning(true);\n setSteps([]);\n setError(null);\n try {\n const reader = atz.agents.stream(session.id, options);\n readerRef.current = reader;\n const collected: AgentEvent[] = [];\n for await (const event of reader) {\n if (!mountedRef.current) {\n return;\n }\n collected.push(event);\n setSteps([...collected]);\n }\n if (mountedRef.current) {\n setIsRunning(false);\n }\n } catch (err) {\n if (!mountedRef.current) {\n return;\n }\n if (err instanceof DOMException && err.name === 'AbortError') {\n setIsRunning(false);\n return;\n }\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n setIsRunning(false);\n } finally {\n readerRef.current = null;\n }\n },\n [atz, session],\n );\n\n const stop = useCallback((): void => {\n void readerRef.current?.return();\n readerRef.current = null;\n setIsRunning(false);\n }, []);\n\n const reset = useCallback((): void => {\n void readerRef.current?.return();\n readerRef.current = null;\n setSession(null);\n setSteps([]);\n setResult(null);\n setError(null);\n setIsRunning(false);\n }, []);\n\n return { session, steps, result, isRunning, error, create, run, stream, stop, reset };\n}\n","import type { Transcription, TtsOptions } from '@atzentis/ai-sdk';\nimport { useCallback, useRef, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseVoiceReturn {\n isRecording: boolean;\n transcript: Transcription | null;\n audioUrl: string | null;\n isLoading: boolean;\n error: Error | null;\n startRecording: () => Promise<void>;\n stopRecording: () => void;\n speak: (options: TtsOptions) => Promise<string>;\n reset: () => void;\n}\n\n/**\n * Wraps the voice service with browser recording. `startRecording` captures mic\n * audio, `stopRecording` transcribes it via STT, and `speak` synthesizes TTS to\n * a playable `blob:` URL.\n */\nexport function useVoice(): UseVoiceReturn {\n const atz = useAi();\n const [isRecording, setIsRecording] = useState(false);\n const [transcript, setTranscript] = useState<Transcription | null>(null);\n const [audioUrl, setAudioUrl] = useState<string | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const recorderRef = useRef<MediaRecorder | null>(null);\n const chunksRef = useRef<Blob[]>([]);\n\n const startRecording = useCallback(async (): Promise<void> => {\n setError(null);\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const recorder = new MediaRecorder(stream);\n chunksRef.current = [];\n\n recorder.ondataavailable = (event: BlobEvent): void => {\n if (event.data.size > 0) {\n chunksRef.current.push(event.data);\n }\n };\n\n recorder.onstop = async (): Promise<void> => {\n const blob = new Blob(chunksRef.current, { type: 'audio/webm' });\n setIsLoading(true);\n try {\n const result = await atz.voice.stt({ audio: blob, format: 'webm' });\n setTranscript(result);\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n } finally {\n setIsLoading(false);\n }\n for (const track of stream.getTracks()) {\n track.stop();\n }\n };\n\n recorderRef.current = recorder;\n recorder.start();\n setIsRecording(true);\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n }\n }, [atz]);\n\n const stopRecording = useCallback((): void => {\n recorderRef.current?.stop();\n recorderRef.current = null;\n setIsRecording(false);\n }, []);\n\n const speak = useCallback(\n async (options: TtsOptions): Promise<string> => {\n setIsLoading(true);\n setError(null);\n try {\n const buffer = await atz.voice.tts(options);\n const url = URL.createObjectURL(new Blob([buffer], { type: 'audio/mpeg' }));\n setAudioUrl(url);\n return url;\n } catch (err) {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n } finally {\n setIsLoading(false);\n }\n },\n [atz],\n );\n\n const reset = useCallback((): void => {\n setTranscript(null);\n setAudioUrl(null);\n setError(null);\n setIsLoading(false);\n setIsRecording(false);\n }, []);\n\n return {\n isRecording,\n transcript,\n audioUrl,\n isLoading,\n error,\n startRecording,\n stopRecording,\n speak,\n reset,\n };\n}\n","import type {\n ContentAnalysis,\n ContentAnalyzeOptions,\n ContentExtractOptions,\n GenerateOptions,\n GeneratedContent,\n ModerateOptions,\n ModerationResult,\n RewriteOptions,\n Rewritten,\n SeoOptions,\n SeoResult,\n SummarizeOptions,\n Summary,\n TranslateOptions,\n Translation,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useState } from 'react';\nimport { useAi } from './use-ai';\n\ntype ContentResult =\n | GeneratedContent\n | Summary\n | Translation\n | Rewritten\n | ModerationResult\n | ContentAnalysis\n | SeoResult\n | Record<string, unknown>;\n\nexport interface UseContentReturn {\n result: ContentResult | null;\n isLoading: boolean;\n error: Error | null;\n generate: (options: GenerateOptions) => Promise<GeneratedContent>;\n summarize: (options: SummarizeOptions) => Promise<Summary>;\n translate: (options: TranslateOptions) => Promise<Translation>;\n rewrite: (options: RewriteOptions) => Promise<Rewritten>;\n moderate: (options: ModerateOptions) => Promise<ModerationResult>;\n analyze: (options: ContentAnalyzeOptions) => Promise<ContentAnalysis>;\n extract: (options: ContentExtractOptions) => Promise<Record<string, unknown>>;\n seo: (options: SeoOptions) => Promise<SeoResult>;\n reset: () => void;\n}\n\n/** Wraps the content service (generate, summarize, translate, … seo). */\nexport function useContent(): UseContentReturn {\n const atz = useAi();\n const [result, setResult] = useState<ContentResult | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const wrap = useCallback(<T extends ContentResult>(call: () => Promise<T>): Promise<T> => {\n setIsLoading(true);\n setError(null);\n return call()\n .then((value) => {\n setResult(value);\n return value;\n })\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const generate = useCallback(\n (options: GenerateOptions) => wrap(() => atz.content.generate(options)),\n [atz, wrap],\n );\n const summarize = useCallback(\n (options: SummarizeOptions) => wrap(() => atz.content.summarize(options)),\n [atz, wrap],\n );\n const translate = useCallback(\n (options: TranslateOptions) => wrap(() => atz.content.translate(options)),\n [atz, wrap],\n );\n const rewrite = useCallback(\n (options: RewriteOptions) => wrap(() => atz.content.rewrite(options)),\n [atz, wrap],\n );\n const moderate = useCallback(\n (options: ModerateOptions) => wrap(() => atz.content.moderate(options)),\n [atz, wrap],\n );\n const analyze = useCallback(\n (options: ContentAnalyzeOptions) => wrap(() => atz.content.analyze(options)),\n [atz, wrap],\n );\n const extract = useCallback(\n (options: ContentExtractOptions) => wrap(() => atz.content.extract(options)),\n [atz, wrap],\n );\n const seo = useCallback(\n (options: SeoOptions) => wrap(() => atz.content.seo(options)),\n [atz, wrap],\n );\n\n const reset = useCallback((): void => {\n setResult(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return {\n result,\n isLoading,\n error,\n generate,\n summarize,\n translate,\n rewrite,\n moderate,\n analyze,\n extract,\n seo,\n reset,\n };\n}\n","import type {\n Analytics,\n AnalyticsOptions,\n GeneratePostOptions,\n GenerateVariantsOptions,\n Post,\n ScheduleOptions,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseSocialReturn {\n post: Post | null;\n variants: Post[] | null;\n analyticsResult: Analytics | null;\n isLoading: boolean;\n error: Error | null;\n generate: (options: GeneratePostOptions) => Promise<Post>;\n generateVariants: (options: GenerateVariantsOptions) => Promise<Post[]>;\n schedule: (options: ScheduleOptions) => Promise<void>;\n analytics: (options: AnalyticsOptions) => Promise<Analytics>;\n reset: () => void;\n}\n\n/** Wraps the social service (generate, generateVariants, schedule, analytics). */\nexport function useSocial(): UseSocialReturn {\n const atz = useAi();\n const [post, setPost] = useState<Post | null>(null);\n const [variants, setVariants] = useState<Post[] | null>(null);\n const [analyticsResult, setAnalyticsResult] = useState<Analytics | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const run = useCallback(<T>(call: () => Promise<T>, store?: (value: T) => void): Promise<T> => {\n setIsLoading(true);\n setError(null);\n return call()\n .then((value) => {\n store?.(value);\n return value;\n })\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const generate = useCallback(\n (options: GeneratePostOptions) => run(() => atz.social.generate(options), setPost),\n [atz, run],\n );\n const generateVariants = useCallback(\n (options: GenerateVariantsOptions) =>\n run(() => atz.social.generateVariants(options), setVariants),\n [atz, run],\n );\n const schedule = useCallback(\n (options: ScheduleOptions) => run(() => atz.social.schedule(options)),\n [atz, run],\n );\n const analytics = useCallback(\n (options: AnalyticsOptions) => run(() => atz.social.analytics(options), setAnalyticsResult),\n [atz, run],\n );\n\n const reset = useCallback((): void => {\n setPost(null);\n setVariants(null);\n setAnalyticsResult(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return {\n post,\n variants,\n analyticsResult,\n isLoading,\n error,\n generate,\n generateVariants,\n schedule,\n analytics,\n reset,\n };\n}\n","import type {\n EntitiesOptions,\n Entity,\n NL2SQLOptions,\n SQLQuery,\n SearchResults,\n SemanticSearchOptions,\n Sentiment,\n SentimentOptions,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseSearchReturn {\n hits: SearchResults | null;\n sql: SQLQuery | null;\n sentimentResult: Sentiment | null;\n entitiesResult: Entity[] | null;\n isLoading: boolean;\n error: Error | null;\n semantic: (options: SemanticSearchOptions) => Promise<SearchResults>;\n nl2sql: (options: NL2SQLOptions) => Promise<SQLQuery>;\n sentiment: (options: SentimentOptions) => Promise<Sentiment>;\n entities: (options: EntitiesOptions) => Promise<Entity[]>;\n reset: () => void;\n}\n\n/** Wraps the search service (semantic, nl2sql, sentiment, entities). */\nexport function useSearch(): UseSearchReturn {\n const atz = useAi();\n const [hits, setHits] = useState<SearchResults | null>(null);\n const [sql, setSql] = useState<SQLQuery | null>(null);\n const [sentimentResult, setSentimentResult] = useState<Sentiment | null>(null);\n const [entitiesResult, setEntitiesResult] = useState<Entity[] | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const run = useCallback(<T>(call: () => Promise<T>, store: (value: T) => void): Promise<T> => {\n setIsLoading(true);\n setError(null);\n return call()\n .then((value) => {\n store(value);\n return value;\n })\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const semantic = useCallback(\n (options: SemanticSearchOptions) => run(() => atz.search.semantic(options), setHits),\n [atz, run],\n );\n const nl2sql = useCallback(\n (options: NL2SQLOptions) => run(() => atz.search.nl2sql(options), setSql),\n [atz, run],\n );\n const sentiment = useCallback(\n (options: SentimentOptions) => run(() => atz.search.sentiment(options), setSentimentResult),\n [atz, run],\n );\n const entities = useCallback(\n (options: EntitiesOptions) => run(() => atz.search.entities(options), setEntitiesResult),\n [atz, run],\n );\n\n const reset = useCallback((): void => {\n setHits(null);\n setSql(null);\n setSentimentResult(null);\n setEntitiesResult(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return {\n hits,\n sql,\n sentimentResult,\n entitiesResult,\n isLoading,\n error,\n semantic,\n nl2sql,\n sentiment,\n entities,\n reset,\n };\n}\n","import type {\n GenerateAvatarInput,\n GenerateSceneInput,\n RenderRemotionInput,\n VideoCancelResult,\n VideoJob,\n VideoJobStatus,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseVideoReturn {\n job: VideoJob | null;\n status: VideoJobStatus | null;\n isLoading: boolean;\n error: Error | null;\n generateScene: (input: GenerateSceneInput) => Promise<VideoJob>;\n generateAvatar: (input: GenerateAvatarInput) => Promise<VideoJob>;\n renderRemotion: (input: RenderRemotionInput) => Promise<VideoJob>;\n poll: (jobId: string) => Promise<VideoJobStatus>;\n cancel: (jobId: string) => Promise<VideoCancelResult>;\n reset: () => void;\n}\n\n/** Wraps the video service (scene/avatar/remotion render, poll, cancel). */\nexport function useVideo(): UseVideoReturn {\n const atz = useAi();\n const [job, setJob] = useState<VideoJob | null>(null);\n const [status, setStatus] = useState<VideoJobStatus | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const run = useCallback(<T>(call: () => Promise<T>, store?: (value: T) => void): Promise<T> => {\n setIsLoading(true);\n setError(null);\n return call()\n .then((value) => {\n store?.(value);\n return value;\n })\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const generateScene = useCallback(\n (input: GenerateSceneInput) => run(() => atz.video.generateScene(input), setJob),\n [atz, run],\n );\n const generateAvatar = useCallback(\n (input: GenerateAvatarInput) => run(() => atz.video.generateAvatar(input), setJob),\n [atz, run],\n );\n const renderRemotion = useCallback(\n (input: RenderRemotionInput) => run(() => atz.video.renderRemotion(input), setJob),\n [atz, run],\n );\n const poll = useCallback(\n (jobId: string) => run(() => atz.video.poll({ jobId }), setStatus),\n [atz, run],\n );\n const cancel = useCallback((jobId: string) => run(() => atz.video.cancel({ jobId })), [atz, run]);\n\n const reset = useCallback((): void => {\n setJob(null);\n setStatus(null);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return {\n job,\n status,\n isLoading,\n error,\n generateScene,\n generateAvatar,\n renderRemotion,\n poll,\n cancel,\n reset,\n };\n}\n","import type {\n SkillCancelResult,\n SkillInfo,\n SkillJob,\n SkillName,\n SkillProgressEvent,\n SkillRunInput,\n SkillRunStatus,\n} from '@atzentis/ai-sdk';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useAi } from './use-ai';\n\nexport interface UseSkillsReturn {\n skills: SkillInfo[] | null;\n job: SkillJob | null;\n events: SkillProgressEvent[];\n isLoading: boolean;\n error: Error | null;\n list: () => Promise<SkillInfo[]>;\n run: <N extends SkillName>(input: SkillRunInput<N>) => Promise<SkillJob<N>>;\n getRun: (jobId: string) => Promise<SkillRunStatus>;\n subscribe: (jobId: string) => Promise<void>;\n cancel: (jobId: string) => Promise<SkillCancelResult>;\n stop: () => void;\n reset: () => void;\n}\n\n/** Wraps the skills service (list, run, getRun, subscribe SSE, cancel). */\nexport function useSkills(): UseSkillsReturn {\n const atz = useAi();\n const [skills, setSkills] = useState<SkillInfo[] | null>(null);\n const [job, setJob] = useState<SkillJob | null>(null);\n const [events, setEvents] = useState<SkillProgressEvent[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const abortRef = useRef<AbortController | null>(null);\n const mountedRef = useRef(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n abortRef.current?.abort();\n };\n }, []);\n\n const run = useCallback(<T>(call: () => Promise<T>, store?: (value: T) => void): Promise<T> => {\n setIsLoading(true);\n setError(null);\n return call()\n .then((value) => {\n store?.(value);\n return value;\n })\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n setError(normalized);\n throw normalized;\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const list = useCallback(() => run(() => atz.skills.list(), setSkills), [atz, run]);\n\n const runSkill = useCallback(\n <N extends SkillName>(input: SkillRunInput<N>): Promise<SkillJob<N>> =>\n run(\n () => atz.skills.run(input),\n (value) => setJob(value),\n ),\n [atz, run],\n );\n\n const getRun = useCallback(\n (jobId: string): Promise<SkillRunStatus> => run(() => atz.skills.getRun({ jobId })),\n [atz, run],\n );\n\n const cancel = useCallback(\n (jobId: string): Promise<SkillCancelResult> => run(() => atz.skills.cancel({ jobId })),\n [atz, run],\n );\n\n const subscribe = useCallback(\n async (jobId: string): Promise<void> => {\n const controller = new AbortController();\n abortRef.current = controller;\n setEvents([]);\n setError(null);\n try {\n const collected: SkillProgressEvent[] = [];\n for await (const event of atz.skills.subscribe({ jobId, signal: controller.signal })) {\n if (!mountedRef.current) {\n return;\n }\n collected.push(event);\n setEvents([...collected]);\n }\n } catch (err) {\n if (!mountedRef.current) {\n return;\n }\n setError(err instanceof Error ? err : new Error(String(err)));\n } finally {\n abortRef.current = null;\n }\n },\n [atz],\n );\n\n const stop = useCallback((): void => {\n abortRef.current?.abort();\n abortRef.current = null;\n }, []);\n\n const reset = useCallback((): void => {\n abortRef.current?.abort();\n abortRef.current = null;\n setSkills(null);\n setJob(null);\n setEvents([]);\n setError(null);\n setIsLoading(false);\n }, []);\n\n return {\n skills,\n job,\n events,\n isLoading,\n error,\n list,\n run: runSkill,\n getRun,\n subscribe,\n cancel,\n stop,\n reset,\n };\n}\n","import type { ChatMessagesProps } from '../types/components';\n\n/**\n * Presentational list of chat messages. Returns `null` when empty.\n * Style via the `[data-role]` and `[data-streaming]` attribute selectors.\n */\nexport function ChatMessages({ messages, isStreaming, className }: ChatMessagesProps) {\n if (messages.length === 0) {\n return null;\n }\n\n const lastIndex = messages.length - 1;\n\n return (\n <div className={className}>\n {messages.map((message, index) => (\n <div\n // biome-ignore lint/suspicious/noArrayIndexKey: messages are append-only and never reordered\n key={index}\n data-role={message.role}\n data-streaming={index === lastIndex && isStreaming ? 'true' : undefined}\n >\n {message.content}\n </div>\n ))}\n </div>\n );\n}\n","import { createElement } from 'react';\nimport type { StreamingTextProps } from '../types/components';\n\n/**\n * Renders `text` with an optional streaming cursor (`<span data-cursor=\"true\" />`).\n * Polymorphic via the `as` prop (defaults to `\"span\"`).\n */\nexport function StreamingText({ text, isStreaming, className, as = 'span' }: StreamingTextProps) {\n return createElement(\n as,\n { className },\n text,\n isStreaming ? createElement('span', { 'data-cursor': 'true' }) : null,\n );\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,243 @@
|
|
|
1
|
-
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { ReactNode, ElementType } from 'react';
|
|
4
|
+
import { AiClient, ChatMessage, QueryResult, QueryOptions, UploadOptions, Document, AgentSession, AgentEvent, AgentResult, AgentCreateOptions, AgentRunOptions, Transcription, TtsOptions, GeneratedContent, Summary, Translation, Rewritten, ModerationResult, ContentAnalysis, SeoResult, GenerateOptions, SummarizeOptions, TranslateOptions, RewriteOptions, ModerateOptions, ContentAnalyzeOptions, ContentExtractOptions, SeoOptions, Post, Analytics, GeneratePostOptions, GenerateVariantsOptions, ScheduleOptions, AnalyticsOptions, SearchResults, SQLQuery, Sentiment, Entity, SemanticSearchOptions, NL2SQLOptions, SentimentOptions, EntitiesOptions, VideoJob, VideoJobStatus, GenerateSceneInput, GenerateAvatarInput, RenderRemotionInput, VideoCancelResult, SkillInfo, SkillJob, SkillProgressEvent, SkillName, SkillRunInput, SkillRunStatus, SkillCancelResult } from '@atzentis/ai-sdk';
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
/** Props for {@link AiProvider}. */
|
|
7
|
+
interface AiProviderProps {
|
|
8
|
+
/** Atzentis API key. Used to construct the client when `client` is not supplied. */
|
|
9
|
+
apiKey: string;
|
|
10
|
+
/** Optional API base URL override. */
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
/** Pre-constructed client instance. Bypasses internal construction (testing / SSR). */
|
|
13
|
+
client?: AiClient;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** React context carrying the shared AiClient instance. Null outside a provider. */
|
|
18
|
+
declare const AiContext: react.Context<AiClient | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Provides a shared {@link AiClient} to descendant components.
|
|
21
|
+
* The instance is memoised so re-renders with the same config reuse it.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <AiProvider apiKey="atz_live_...">
|
|
26
|
+
* <App />
|
|
27
|
+
* </AiProvider>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function AiProvider({ apiKey, baseUrl, client, children }: AiProviderProps): react_jsx_runtime.JSX.Element;
|
|
31
|
+
|
|
32
|
+
/** Error thrown by `@atzentis/ai-react` hooks for misuse (e.g. missing provider). */
|
|
33
|
+
declare class AiReactError extends Error {
|
|
34
|
+
constructor(message: string);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns the {@link AiClient} from the nearest {@link AiProvider}.
|
|
39
|
+
* @throws {AiReactError} If called outside an `AiProvider`.
|
|
40
|
+
*/
|
|
41
|
+
declare function useAi(): AiClient;
|
|
42
|
+
|
|
43
|
+
/** Options for {@link useChat}. */
|
|
44
|
+
interface UseChatOptions {
|
|
45
|
+
initialMessages?: ChatMessage[];
|
|
46
|
+
onError?: (error: Error) => void;
|
|
47
|
+
}
|
|
48
|
+
interface UseChatState {
|
|
49
|
+
messages: ChatMessage[];
|
|
50
|
+
isStreaming: boolean;
|
|
51
|
+
isLoading: boolean;
|
|
52
|
+
error: Error | null;
|
|
53
|
+
}
|
|
54
|
+
interface UseChatActions {
|
|
55
|
+
send: (content: string) => Promise<void>;
|
|
56
|
+
stop: () => void;
|
|
57
|
+
reset: () => void;
|
|
58
|
+
}
|
|
59
|
+
type UseChatReturn = UseChatState & UseChatActions;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Manages a streaming chat conversation backed by the Atzentis chat service.
|
|
63
|
+
* Appends a user message on `send`, streams the assistant reply in place, and
|
|
64
|
+
* exposes `stop` (cancel the active stream) and `reset` (clear state).
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* const { messages, send, isStreaming } = useChat();
|
|
69
|
+
* await send('Hello');
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
declare function useChat(options?: UseChatOptions): UseChatReturn;
|
|
73
|
+
|
|
74
|
+
interface UseRagReturn {
|
|
75
|
+
results: QueryResult | null;
|
|
76
|
+
isLoading: boolean;
|
|
77
|
+
error: Error | null;
|
|
78
|
+
query: (options: QueryOptions) => Promise<QueryResult>;
|
|
79
|
+
upload: (options: UploadOptions) => Promise<Document>;
|
|
80
|
+
reset: () => void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Wraps the RAG service: semantic `query` and document `upload`.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```tsx
|
|
87
|
+
* const { query, results } = useRag();
|
|
88
|
+
* await query({ query: 'reset password', knowledgeBaseId: 'kb_1' });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function useRag(): UseRagReturn;
|
|
92
|
+
|
|
93
|
+
interface UseAgentReturn {
|
|
94
|
+
session: AgentSession | null;
|
|
95
|
+
steps: AgentEvent[];
|
|
96
|
+
result: AgentResult | null;
|
|
97
|
+
isRunning: boolean;
|
|
98
|
+
error: Error | null;
|
|
99
|
+
create: (options: AgentCreateOptions) => Promise<AgentSession>;
|
|
100
|
+
run: (options: AgentRunOptions) => Promise<AgentResult>;
|
|
101
|
+
stream: (options: AgentRunOptions) => Promise<void>;
|
|
102
|
+
stop: () => void;
|
|
103
|
+
reset: () => void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Wraps the agents service: create a session, then `run` (sync) or `stream`
|
|
107
|
+
* (collecting step events). `stop` cancels an active stream.
|
|
108
|
+
*/
|
|
109
|
+
declare function useAgent(): UseAgentReturn;
|
|
110
|
+
|
|
111
|
+
interface UseVoiceReturn {
|
|
112
|
+
isRecording: boolean;
|
|
113
|
+
transcript: Transcription | null;
|
|
114
|
+
audioUrl: string | null;
|
|
115
|
+
isLoading: boolean;
|
|
116
|
+
error: Error | null;
|
|
117
|
+
startRecording: () => Promise<void>;
|
|
118
|
+
stopRecording: () => void;
|
|
119
|
+
speak: (options: TtsOptions) => Promise<string>;
|
|
120
|
+
reset: () => void;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Wraps the voice service with browser recording. `startRecording` captures mic
|
|
124
|
+
* audio, `stopRecording` transcribes it via STT, and `speak` synthesizes TTS to
|
|
125
|
+
* a playable `blob:` URL.
|
|
126
|
+
*/
|
|
127
|
+
declare function useVoice(): UseVoiceReturn;
|
|
128
|
+
|
|
129
|
+
type ContentResult = GeneratedContent | Summary | Translation | Rewritten | ModerationResult | ContentAnalysis | SeoResult | Record<string, unknown>;
|
|
130
|
+
interface UseContentReturn {
|
|
131
|
+
result: ContentResult | null;
|
|
132
|
+
isLoading: boolean;
|
|
133
|
+
error: Error | null;
|
|
134
|
+
generate: (options: GenerateOptions) => Promise<GeneratedContent>;
|
|
135
|
+
summarize: (options: SummarizeOptions) => Promise<Summary>;
|
|
136
|
+
translate: (options: TranslateOptions) => Promise<Translation>;
|
|
137
|
+
rewrite: (options: RewriteOptions) => Promise<Rewritten>;
|
|
138
|
+
moderate: (options: ModerateOptions) => Promise<ModerationResult>;
|
|
139
|
+
analyze: (options: ContentAnalyzeOptions) => Promise<ContentAnalysis>;
|
|
140
|
+
extract: (options: ContentExtractOptions) => Promise<Record<string, unknown>>;
|
|
141
|
+
seo: (options: SeoOptions) => Promise<SeoResult>;
|
|
142
|
+
reset: () => void;
|
|
143
|
+
}
|
|
144
|
+
/** Wraps the content service (generate, summarize, translate, … seo). */
|
|
145
|
+
declare function useContent(): UseContentReturn;
|
|
146
|
+
|
|
147
|
+
interface UseSocialReturn {
|
|
148
|
+
post: Post | null;
|
|
149
|
+
variants: Post[] | null;
|
|
150
|
+
analyticsResult: Analytics | null;
|
|
151
|
+
isLoading: boolean;
|
|
152
|
+
error: Error | null;
|
|
153
|
+
generate: (options: GeneratePostOptions) => Promise<Post>;
|
|
154
|
+
generateVariants: (options: GenerateVariantsOptions) => Promise<Post[]>;
|
|
155
|
+
schedule: (options: ScheduleOptions) => Promise<void>;
|
|
156
|
+
analytics: (options: AnalyticsOptions) => Promise<Analytics>;
|
|
157
|
+
reset: () => void;
|
|
158
|
+
}
|
|
159
|
+
/** Wraps the social service (generate, generateVariants, schedule, analytics). */
|
|
160
|
+
declare function useSocial(): UseSocialReturn;
|
|
161
|
+
|
|
162
|
+
interface UseSearchReturn {
|
|
163
|
+
hits: SearchResults | null;
|
|
164
|
+
sql: SQLQuery | null;
|
|
165
|
+
sentimentResult: Sentiment | null;
|
|
166
|
+
entitiesResult: Entity[] | null;
|
|
167
|
+
isLoading: boolean;
|
|
168
|
+
error: Error | null;
|
|
169
|
+
semantic: (options: SemanticSearchOptions) => Promise<SearchResults>;
|
|
170
|
+
nl2sql: (options: NL2SQLOptions) => Promise<SQLQuery>;
|
|
171
|
+
sentiment: (options: SentimentOptions) => Promise<Sentiment>;
|
|
172
|
+
entities: (options: EntitiesOptions) => Promise<Entity[]>;
|
|
173
|
+
reset: () => void;
|
|
174
|
+
}
|
|
175
|
+
/** Wraps the search service (semantic, nl2sql, sentiment, entities). */
|
|
176
|
+
declare function useSearch(): UseSearchReturn;
|
|
177
|
+
|
|
178
|
+
interface UseVideoReturn {
|
|
179
|
+
job: VideoJob | null;
|
|
180
|
+
status: VideoJobStatus | null;
|
|
181
|
+
isLoading: boolean;
|
|
182
|
+
error: Error | null;
|
|
183
|
+
generateScene: (input: GenerateSceneInput) => Promise<VideoJob>;
|
|
184
|
+
generateAvatar: (input: GenerateAvatarInput) => Promise<VideoJob>;
|
|
185
|
+
renderRemotion: (input: RenderRemotionInput) => Promise<VideoJob>;
|
|
186
|
+
poll: (jobId: string) => Promise<VideoJobStatus>;
|
|
187
|
+
cancel: (jobId: string) => Promise<VideoCancelResult>;
|
|
188
|
+
reset: () => void;
|
|
189
|
+
}
|
|
190
|
+
/** Wraps the video service (scene/avatar/remotion render, poll, cancel). */
|
|
191
|
+
declare function useVideo(): UseVideoReturn;
|
|
192
|
+
|
|
193
|
+
interface UseSkillsReturn {
|
|
194
|
+
skills: SkillInfo[] | null;
|
|
195
|
+
job: SkillJob | null;
|
|
196
|
+
events: SkillProgressEvent[];
|
|
197
|
+
isLoading: boolean;
|
|
198
|
+
error: Error | null;
|
|
199
|
+
list: () => Promise<SkillInfo[]>;
|
|
200
|
+
run: <N extends SkillName>(input: SkillRunInput<N>) => Promise<SkillJob<N>>;
|
|
201
|
+
getRun: (jobId: string) => Promise<SkillRunStatus>;
|
|
202
|
+
subscribe: (jobId: string) => Promise<void>;
|
|
203
|
+
cancel: (jobId: string) => Promise<SkillCancelResult>;
|
|
204
|
+
stop: () => void;
|
|
205
|
+
reset: () => void;
|
|
206
|
+
}
|
|
207
|
+
/** Wraps the skills service (list, run, getRun, subscribe SSE, cancel). */
|
|
208
|
+
declare function useSkills(): UseSkillsReturn;
|
|
209
|
+
|
|
210
|
+
/** Props for {@link ChatMessages}. */
|
|
211
|
+
interface ChatMessagesProps {
|
|
212
|
+
/** Messages to render in order. */
|
|
213
|
+
messages: ChatMessage[];
|
|
214
|
+
/** When true, the last message is marked with `data-streaming="true"`. */
|
|
215
|
+
isStreaming: boolean;
|
|
216
|
+
/** Applied to the root wrapper element. */
|
|
217
|
+
className?: string;
|
|
218
|
+
}
|
|
219
|
+
/** Props for {@link StreamingText}. */
|
|
220
|
+
interface StreamingTextProps {
|
|
221
|
+
/** Text to render as-is. */
|
|
222
|
+
text: string;
|
|
223
|
+
/** When true, a `<span data-cursor="true" />` is appended. */
|
|
224
|
+
isStreaming: boolean;
|
|
225
|
+
/** Applied to the root element. */
|
|
226
|
+
className?: string;
|
|
227
|
+
/** Root element tag. Defaults to `"span"`. */
|
|
228
|
+
as?: ElementType;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Presentational list of chat messages. Returns `null` when empty.
|
|
233
|
+
* Style via the `[data-role]` and `[data-streaming]` attribute selectors.
|
|
234
|
+
*/
|
|
235
|
+
declare function ChatMessages({ messages, isStreaming, className }: ChatMessagesProps): react_jsx_runtime.JSX.Element | null;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Renders `text` with an optional streaming cursor (`<span data-cursor="true" />`).
|
|
239
|
+
* Polymorphic via the `as` prop (defaults to `"span"`).
|
|
240
|
+
*/
|
|
241
|
+
declare function StreamingText({ text, isStreaming, className, as }: StreamingTextProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
|
|
242
|
+
|
|
243
|
+
export { AiContext, AiProvider, type AiProviderProps, AiReactError, ChatMessages, type ChatMessagesProps, StreamingText, type StreamingTextProps, type UseAgentReturn, type UseChatActions, type UseChatOptions, type UseChatReturn, type UseChatState, type UseContentReturn, type UseRagReturn, type UseSearchReturn, type UseSkillsReturn, type UseSocialReturn, type UseVideoReturn, type UseVoiceReturn, useAgent, useAi, useChat, useContent, useRag, useSearch, useSkills, useSocial, useVideo, useVoice };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,243 @@
|
|
|
1
|
-
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { ReactNode, ElementType } from 'react';
|
|
4
|
+
import { AiClient, ChatMessage, QueryResult, QueryOptions, UploadOptions, Document, AgentSession, AgentEvent, AgentResult, AgentCreateOptions, AgentRunOptions, Transcription, TtsOptions, GeneratedContent, Summary, Translation, Rewritten, ModerationResult, ContentAnalysis, SeoResult, GenerateOptions, SummarizeOptions, TranslateOptions, RewriteOptions, ModerateOptions, ContentAnalyzeOptions, ContentExtractOptions, SeoOptions, Post, Analytics, GeneratePostOptions, GenerateVariantsOptions, ScheduleOptions, AnalyticsOptions, SearchResults, SQLQuery, Sentiment, Entity, SemanticSearchOptions, NL2SQLOptions, SentimentOptions, EntitiesOptions, VideoJob, VideoJobStatus, GenerateSceneInput, GenerateAvatarInput, RenderRemotionInput, VideoCancelResult, SkillInfo, SkillJob, SkillProgressEvent, SkillName, SkillRunInput, SkillRunStatus, SkillCancelResult } from '@atzentis/ai-sdk';
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
/** Props for {@link AiProvider}. */
|
|
7
|
+
interface AiProviderProps {
|
|
8
|
+
/** Atzentis API key. Used to construct the client when `client` is not supplied. */
|
|
9
|
+
apiKey: string;
|
|
10
|
+
/** Optional API base URL override. */
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
/** Pre-constructed client instance. Bypasses internal construction (testing / SSR). */
|
|
13
|
+
client?: AiClient;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** React context carrying the shared AiClient instance. Null outside a provider. */
|
|
18
|
+
declare const AiContext: react.Context<AiClient | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Provides a shared {@link AiClient} to descendant components.
|
|
21
|
+
* The instance is memoised so re-renders with the same config reuse it.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <AiProvider apiKey="atz_live_...">
|
|
26
|
+
* <App />
|
|
27
|
+
* </AiProvider>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function AiProvider({ apiKey, baseUrl, client, children }: AiProviderProps): react_jsx_runtime.JSX.Element;
|
|
31
|
+
|
|
32
|
+
/** Error thrown by `@atzentis/ai-react` hooks for misuse (e.g. missing provider). */
|
|
33
|
+
declare class AiReactError extends Error {
|
|
34
|
+
constructor(message: string);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns the {@link AiClient} from the nearest {@link AiProvider}.
|
|
39
|
+
* @throws {AiReactError} If called outside an `AiProvider`.
|
|
40
|
+
*/
|
|
41
|
+
declare function useAi(): AiClient;
|
|
42
|
+
|
|
43
|
+
/** Options for {@link useChat}. */
|
|
44
|
+
interface UseChatOptions {
|
|
45
|
+
initialMessages?: ChatMessage[];
|
|
46
|
+
onError?: (error: Error) => void;
|
|
47
|
+
}
|
|
48
|
+
interface UseChatState {
|
|
49
|
+
messages: ChatMessage[];
|
|
50
|
+
isStreaming: boolean;
|
|
51
|
+
isLoading: boolean;
|
|
52
|
+
error: Error | null;
|
|
53
|
+
}
|
|
54
|
+
interface UseChatActions {
|
|
55
|
+
send: (content: string) => Promise<void>;
|
|
56
|
+
stop: () => void;
|
|
57
|
+
reset: () => void;
|
|
58
|
+
}
|
|
59
|
+
type UseChatReturn = UseChatState & UseChatActions;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Manages a streaming chat conversation backed by the Atzentis chat service.
|
|
63
|
+
* Appends a user message on `send`, streams the assistant reply in place, and
|
|
64
|
+
* exposes `stop` (cancel the active stream) and `reset` (clear state).
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* const { messages, send, isStreaming } = useChat();
|
|
69
|
+
* await send('Hello');
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
declare function useChat(options?: UseChatOptions): UseChatReturn;
|
|
73
|
+
|
|
74
|
+
interface UseRagReturn {
|
|
75
|
+
results: QueryResult | null;
|
|
76
|
+
isLoading: boolean;
|
|
77
|
+
error: Error | null;
|
|
78
|
+
query: (options: QueryOptions) => Promise<QueryResult>;
|
|
79
|
+
upload: (options: UploadOptions) => Promise<Document>;
|
|
80
|
+
reset: () => void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Wraps the RAG service: semantic `query` and document `upload`.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```tsx
|
|
87
|
+
* const { query, results } = useRag();
|
|
88
|
+
* await query({ query: 'reset password', knowledgeBaseId: 'kb_1' });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function useRag(): UseRagReturn;
|
|
92
|
+
|
|
93
|
+
interface UseAgentReturn {
|
|
94
|
+
session: AgentSession | null;
|
|
95
|
+
steps: AgentEvent[];
|
|
96
|
+
result: AgentResult | null;
|
|
97
|
+
isRunning: boolean;
|
|
98
|
+
error: Error | null;
|
|
99
|
+
create: (options: AgentCreateOptions) => Promise<AgentSession>;
|
|
100
|
+
run: (options: AgentRunOptions) => Promise<AgentResult>;
|
|
101
|
+
stream: (options: AgentRunOptions) => Promise<void>;
|
|
102
|
+
stop: () => void;
|
|
103
|
+
reset: () => void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Wraps the agents service: create a session, then `run` (sync) or `stream`
|
|
107
|
+
* (collecting step events). `stop` cancels an active stream.
|
|
108
|
+
*/
|
|
109
|
+
declare function useAgent(): UseAgentReturn;
|
|
110
|
+
|
|
111
|
+
interface UseVoiceReturn {
|
|
112
|
+
isRecording: boolean;
|
|
113
|
+
transcript: Transcription | null;
|
|
114
|
+
audioUrl: string | null;
|
|
115
|
+
isLoading: boolean;
|
|
116
|
+
error: Error | null;
|
|
117
|
+
startRecording: () => Promise<void>;
|
|
118
|
+
stopRecording: () => void;
|
|
119
|
+
speak: (options: TtsOptions) => Promise<string>;
|
|
120
|
+
reset: () => void;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Wraps the voice service with browser recording. `startRecording` captures mic
|
|
124
|
+
* audio, `stopRecording` transcribes it via STT, and `speak` synthesizes TTS to
|
|
125
|
+
* a playable `blob:` URL.
|
|
126
|
+
*/
|
|
127
|
+
declare function useVoice(): UseVoiceReturn;
|
|
128
|
+
|
|
129
|
+
type ContentResult = GeneratedContent | Summary | Translation | Rewritten | ModerationResult | ContentAnalysis | SeoResult | Record<string, unknown>;
|
|
130
|
+
interface UseContentReturn {
|
|
131
|
+
result: ContentResult | null;
|
|
132
|
+
isLoading: boolean;
|
|
133
|
+
error: Error | null;
|
|
134
|
+
generate: (options: GenerateOptions) => Promise<GeneratedContent>;
|
|
135
|
+
summarize: (options: SummarizeOptions) => Promise<Summary>;
|
|
136
|
+
translate: (options: TranslateOptions) => Promise<Translation>;
|
|
137
|
+
rewrite: (options: RewriteOptions) => Promise<Rewritten>;
|
|
138
|
+
moderate: (options: ModerateOptions) => Promise<ModerationResult>;
|
|
139
|
+
analyze: (options: ContentAnalyzeOptions) => Promise<ContentAnalysis>;
|
|
140
|
+
extract: (options: ContentExtractOptions) => Promise<Record<string, unknown>>;
|
|
141
|
+
seo: (options: SeoOptions) => Promise<SeoResult>;
|
|
142
|
+
reset: () => void;
|
|
143
|
+
}
|
|
144
|
+
/** Wraps the content service (generate, summarize, translate, … seo). */
|
|
145
|
+
declare function useContent(): UseContentReturn;
|
|
146
|
+
|
|
147
|
+
interface UseSocialReturn {
|
|
148
|
+
post: Post | null;
|
|
149
|
+
variants: Post[] | null;
|
|
150
|
+
analyticsResult: Analytics | null;
|
|
151
|
+
isLoading: boolean;
|
|
152
|
+
error: Error | null;
|
|
153
|
+
generate: (options: GeneratePostOptions) => Promise<Post>;
|
|
154
|
+
generateVariants: (options: GenerateVariantsOptions) => Promise<Post[]>;
|
|
155
|
+
schedule: (options: ScheduleOptions) => Promise<void>;
|
|
156
|
+
analytics: (options: AnalyticsOptions) => Promise<Analytics>;
|
|
157
|
+
reset: () => void;
|
|
158
|
+
}
|
|
159
|
+
/** Wraps the social service (generate, generateVariants, schedule, analytics). */
|
|
160
|
+
declare function useSocial(): UseSocialReturn;
|
|
161
|
+
|
|
162
|
+
interface UseSearchReturn {
|
|
163
|
+
hits: SearchResults | null;
|
|
164
|
+
sql: SQLQuery | null;
|
|
165
|
+
sentimentResult: Sentiment | null;
|
|
166
|
+
entitiesResult: Entity[] | null;
|
|
167
|
+
isLoading: boolean;
|
|
168
|
+
error: Error | null;
|
|
169
|
+
semantic: (options: SemanticSearchOptions) => Promise<SearchResults>;
|
|
170
|
+
nl2sql: (options: NL2SQLOptions) => Promise<SQLQuery>;
|
|
171
|
+
sentiment: (options: SentimentOptions) => Promise<Sentiment>;
|
|
172
|
+
entities: (options: EntitiesOptions) => Promise<Entity[]>;
|
|
173
|
+
reset: () => void;
|
|
174
|
+
}
|
|
175
|
+
/** Wraps the search service (semantic, nl2sql, sentiment, entities). */
|
|
176
|
+
declare function useSearch(): UseSearchReturn;
|
|
177
|
+
|
|
178
|
+
interface UseVideoReturn {
|
|
179
|
+
job: VideoJob | null;
|
|
180
|
+
status: VideoJobStatus | null;
|
|
181
|
+
isLoading: boolean;
|
|
182
|
+
error: Error | null;
|
|
183
|
+
generateScene: (input: GenerateSceneInput) => Promise<VideoJob>;
|
|
184
|
+
generateAvatar: (input: GenerateAvatarInput) => Promise<VideoJob>;
|
|
185
|
+
renderRemotion: (input: RenderRemotionInput) => Promise<VideoJob>;
|
|
186
|
+
poll: (jobId: string) => Promise<VideoJobStatus>;
|
|
187
|
+
cancel: (jobId: string) => Promise<VideoCancelResult>;
|
|
188
|
+
reset: () => void;
|
|
189
|
+
}
|
|
190
|
+
/** Wraps the video service (scene/avatar/remotion render, poll, cancel). */
|
|
191
|
+
declare function useVideo(): UseVideoReturn;
|
|
192
|
+
|
|
193
|
+
interface UseSkillsReturn {
|
|
194
|
+
skills: SkillInfo[] | null;
|
|
195
|
+
job: SkillJob | null;
|
|
196
|
+
events: SkillProgressEvent[];
|
|
197
|
+
isLoading: boolean;
|
|
198
|
+
error: Error | null;
|
|
199
|
+
list: () => Promise<SkillInfo[]>;
|
|
200
|
+
run: <N extends SkillName>(input: SkillRunInput<N>) => Promise<SkillJob<N>>;
|
|
201
|
+
getRun: (jobId: string) => Promise<SkillRunStatus>;
|
|
202
|
+
subscribe: (jobId: string) => Promise<void>;
|
|
203
|
+
cancel: (jobId: string) => Promise<SkillCancelResult>;
|
|
204
|
+
stop: () => void;
|
|
205
|
+
reset: () => void;
|
|
206
|
+
}
|
|
207
|
+
/** Wraps the skills service (list, run, getRun, subscribe SSE, cancel). */
|
|
208
|
+
declare function useSkills(): UseSkillsReturn;
|
|
209
|
+
|
|
210
|
+
/** Props for {@link ChatMessages}. */
|
|
211
|
+
interface ChatMessagesProps {
|
|
212
|
+
/** Messages to render in order. */
|
|
213
|
+
messages: ChatMessage[];
|
|
214
|
+
/** When true, the last message is marked with `data-streaming="true"`. */
|
|
215
|
+
isStreaming: boolean;
|
|
216
|
+
/** Applied to the root wrapper element. */
|
|
217
|
+
className?: string;
|
|
218
|
+
}
|
|
219
|
+
/** Props for {@link StreamingText}. */
|
|
220
|
+
interface StreamingTextProps {
|
|
221
|
+
/** Text to render as-is. */
|
|
222
|
+
text: string;
|
|
223
|
+
/** When true, a `<span data-cursor="true" />` is appended. */
|
|
224
|
+
isStreaming: boolean;
|
|
225
|
+
/** Applied to the root element. */
|
|
226
|
+
className?: string;
|
|
227
|
+
/** Root element tag. Defaults to `"span"`. */
|
|
228
|
+
as?: ElementType;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Presentational list of chat messages. Returns `null` when empty.
|
|
233
|
+
* Style via the `[data-role]` and `[data-streaming]` attribute selectors.
|
|
234
|
+
*/
|
|
235
|
+
declare function ChatMessages({ messages, isStreaming, className }: ChatMessagesProps): react_jsx_runtime.JSX.Element | null;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Renders `text` with an optional streaming cursor (`<span data-cursor="true" />`).
|
|
239
|
+
* Polymorphic via the `as` prop (defaults to `"span"`).
|
|
240
|
+
*/
|
|
241
|
+
declare function StreamingText({ text, isStreaming, className, as }: StreamingTextProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
|
|
242
|
+
|
|
243
|
+
export { AiContext, AiProvider, type AiProviderProps, AiReactError, ChatMessages, type ChatMessagesProps, StreamingText, type StreamingTextProps, type UseAgentReturn, type UseChatActions, type UseChatOptions, type UseChatReturn, type UseChatState, type UseContentReturn, type UseRagReturn, type UseSearchReturn, type UseSkillsReturn, type UseSocialReturn, type UseVideoReturn, type UseVoiceReturn, useAgent, useAi, useChat, useContent, useRag, useSearch, useSkills, useSocial, useVideo, useVoice };
|