Interface that all AI providers must implement.

interface AIProvider {
    name: string;
    displayName: string;
    sendMessage(
        prompt: string,
        apiKey: string,
        options?: { baseUrl?: string; modelName?: string },
        onProgress?: (chunk: string) => void,
    ): Promise<string>;
    getModels(apiKey: string, options?: { baseUrl?: string }): Promise<any[]>;
}

Implemented by

Properties

name: string
displayName: string

Methods

  • Sends a prompt to the AI provider and returns the response.

    Parameters

    • prompt: string

      The user's input text

    • apiKey: string

      API key for authentication (optional for local providers)

    • Optionaloptions: { baseUrl?: string; modelName?: string }

      Additional configuration like baseUrl or modelName

    • OptionalonProgress: (chunk: string) => void

      Optional callback for streaming tokens (not supported by all providers)

    Returns Promise<string>

  • Fetches available models from the provider (if supported). Returns an array of model objects { id: string, pricing?: string, tags?: string[] }.

    Parameters

    • apiKey: string
    • Optionaloptions: { baseUrl?: string }

    Returns Promise<any[]>