UNPKG

vibe-tools

Version:
130 lines (129 loc) 3.58 kB
import * as z from 'zod'; export type CommandGenerator = AsyncGenerator<string, void, unknown>; export type Provider = 'gemini' | 'openai' | 'openrouter' | 'perplexity' | 'modelbox' | 'anthropic' | 'xai'; export declare const reasoningEffortSchema: z.ZodEnum<["low", "medium", "high"]>; export type ReasoningEffort = z.infer<typeof reasoningEffortSchema>; export interface CommandOptions { model?: string; maxTokens?: number; provider?: Provider; debug: boolean; url?: string; json?: boolean | string; reasoningEffort?: ReasoningEffort; saveTo?: string; quiet?: boolean; hint?: string; subdir?: string; withDoc?: string[]; fromGithub?: string; fileProvider?: Provider; thinkingProvider?: Provider; fileModel?: string; thinkingModel?: string; tokenCount?: number; webSearch?: boolean; timeout?: number; trackTelemetry?: (data: Record<string, any>) => void; } export interface Command { execute(query: string, options: CommandOptions): CommandGenerator; } export interface CommandMap { [key: string]: Command; } export interface Config { ide?: string; reasoningEffort?: ReasoningEffort; perplexity?: { model?: string; maxTokens?: number; }; plan?: { fileProvider: Provider; thinkingProvider: Provider; fileModel?: string; thinkingModel?: string; fileMaxTokens?: number; thinkingMaxTokens?: number; }; repo?: { provider: Provider; model?: string; maxTokens?: number; maxRepoSizeMB?: number; }; doc?: { maxRepoSizeMB?: number; provider: Provider; model?: string; maxTokens?: number; }; tokenCount?: { encoding: 'o200k_base' | 'gpt2' | 'r50k_base' | 'p50k_base' | 'p50k_edit' | 'cl100k_base'; }; browser?: { headless?: boolean; defaultViewport?: string; timeout?: number; }; stagehand?: { provider: 'anthropic' | 'openai'; verbose?: boolean; debugDom?: boolean; enableCaching?: boolean; }; web?: { provider?: Provider; model?: string; maxTokens?: number; }; mcp?: { provider?: Provider; model?: string; maxTokens?: number; defaultServer?: string; overrides?: Record<string, { githubUrl?: string; command?: 'uvx' | 'npx'; args?: string[]; }>; }; marketplace?: { model?: string; maxTokens?: number; }; youtube?: { provider?: Provider; model?: string; maxTokens?: number; defaultType?: 'summary' | 'transcript' | 'plan' | 'review' | 'custom'; defaultFormat?: 'markdown' | 'json' | 'text'; maxRetries?: number; retryDelay?: number; }; } export interface ModelOptions { model: string; maxTokens: number; systemPrompt?: string; tokenCount?: number; webSearch?: boolean; timeout?: number; debug: boolean | undefined; } export interface VideoAnalysisOptions extends ModelOptions { videoUrl: string; temperature?: number; topK?: number; topP?: number; } export interface BaseModelProvider { executePrompt(prompt: string, options?: ModelOptions): Promise<string>; supportsWebSearch(modelName: string): Promise<{ supported: boolean; model?: string; error?: string; }>; executeVideoPrompt?(prompt: string, options: VideoAnalysisOptions): Promise<string>; }