UNPKG

jadq-x-vue

Version:

Craft AI-driven interfaces effortlessly

35 lines (34 loc) 1.62 kB
import type { SSEOutput, XStreamOptions } from '../x-stream'; import type { AnyObject } from '../_util/type'; import { type MaybeRefOrGetter } from 'vue'; interface RequestFnInfo<Message> extends AnyObject { messages?: Message[]; message?: Message; } export type RequestFn<Message, Input, Output> = (info: Input, callbacks: { onUpdate: (chunk: Output) => void; onSuccess: (chunk: Output[]) => void; onError: (error: Error) => void; onStream?: (abortController: AbortController) => void; }, transformStream?: XStreamOptions<Message>['transformStream']) => void; export interface XAgentConfigPreset { baseURL: string; key: string; model: string; dangerouslyApiKey: string; } export interface XAgentConfigCustom<Message, Input, Output> { request?: RequestFn<Message, Input, Output>; } export type XAgentConfig<Message, Input, Output> = Partial<XAgentConfigPreset> & XAgentConfigCustom<Message, Input, Output>; /** This is a wrap class to avoid developer can get too much on origin object */ export declare class XAgent<Message = string, Input = RequestFnInfo<Message>, Output = SSEOutput> { config: XAgentConfig<Message, Input, Output>; private requestingMap; constructor(config: XAgentConfig<Message, Input, Output>); private finishRequest; request: RequestFn<Message, Input, Output>; isRequesting(): boolean; } export default function useXAgent<Message = string, Input = RequestFnInfo<Message>, Output = SSEOutput>(config: MaybeRefOrGetter<XAgentConfig<Message, Input, Output>>): import("vue").ComputedRef<XAgent<Message, Input, Output>>[]; export {};