SPB Git
1.4 KB · 21 lines typescript
1export type Provider = "openai" | "anthropic";2export type TaskClass = "chat" | "quick" | "write" | "reason" | "deep" | "code" | "extract" | "longctx" | "agent" | "judge";3export type Effort = "low" | "medium" | "high";4export interface ChatMessage { role: "user" | "assistant"; content: string; images?: { mime: string; dataBase64: string }[] }5export interface ToolDef { name: string; description: string; parameters: Record<string, unknown> }6export interface AICallOptions {7  model: string; provider: Provider;8  system?: string; messages: ChatMessage[];9  maxTokens?: number; effort?: Effort;10  jsonSchema?: { name: string; schema: Record<string, unknown> };11  tools?: ToolDef[];12  signal?: AbortSignal; timeoutMs?: number;13}14export type AIEvent =15  | { type: "text"; delta: string }16  | { type: "tool_call"; id: string; name: string; args: unknown }17  | { type: "done"; usage: AIUsage; stop: string | null; ttftMs: number | null; totalMs: number; refusal?: string }18  | { type: "error"; message: string; status?: number };19export interface AIUsage { inputTokens: number; outputTokens: number; cachedTokens: number; reasoningTokens: number }20export interface AIResult { text: string; toolCalls: { id: string; name: string; args: unknown }[]; usage: AIUsage; stop: string | null; ttftMs: number | null; totalMs: number; costUsd: number | null; model: string; provider: Provider; refusal?: string }21
Files · main
Menu

Theme