@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.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";AACO,IAAM,OAAA,GAAU","file":"index.js","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":["useState","useCallback","useRef","useEffect","jsx"],"mappings":"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","file":"index.js","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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atzentis/ai-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -28,8 +28,14 @@
|
|
|
28
28
|
"@atzentis/ai-sdk": "0.1.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"
|
|
31
|
+
"@testing-library/dom": "^10.4.1",
|
|
32
|
+
"@testing-library/react": "^16.3.2",
|
|
32
33
|
"@types/react": "^19.0.0",
|
|
34
|
+
"@types/react-dom": "^19.0.0",
|
|
35
|
+
"@vitest/coverage-v8": "^2.1.0",
|
|
36
|
+
"happy-dom": "^20.10.2",
|
|
37
|
+
"react": "^19.2.4",
|
|
38
|
+
"react-dom": "^19.2.4",
|
|
33
39
|
"tsup": "^8.3.0",
|
|
34
40
|
"typescript": "^5.7.0",
|
|
35
41
|
"vitest": "^2.1.0",
|