vibe-tools
Version:
CLI tools for AI agents
146 lines (145 loc) • 3.91 kB
TypeScript
import * as z from 'zod';
export type CommandGenerator = AsyncGenerator<string, void, unknown>;
export type Provider = 'gemini' | 'openai' | 'openrouter' | 'perplexity' | 'modelbox' | 'anthropic' | 'xai' | 'groq';
export declare const reasoningEffortSchema: z.ZodEnum<{
low: "low";
medium: "medium";
high: "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;
withDiff?: boolean;
base?: string;
reviewOnly?: boolean;
discussionOnly?: boolean;
metadataOnly?: boolean;
noLinks?: boolean;
hideResolved?: boolean;
}
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;
};
groq?: {
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;
};
disableDoppler?: boolean;
}
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>;
}