providerplaneai
    Preparing search index...

    Abstract base class for all AI providers.

    Provides shared helpers and state management for provider implementations.

    Responsibilities:

    • Store and manage provider configuration
    • Register and check supported capabilities
    • Merge provider defaults, model configs, and runtime options
    • Offer type-safe capability checks

    Does not implement Provider directly, but is intended for extension.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    capabilities: Partial<CapabilityMap> = {}

    Support provider capabilities

    config: ProviderConnectionConfig | null = null

    Current connection config

    executors?: Map<CapabilityKeyType, CapabilityExecutor<any, any, any>>
    providerType: AIProviderType

    Type of this provider (OpenAI, Anthropic, Gemini, etc.)

    Methods

    • Resolve and merge configuration for a capability.

      Merge precedence (low → high):

      1. providerDefaults (global provider-level defaults)
      2. model capability defaults (models[modelName][capability])
      3. runtimeOptions (request-level overrides)

      Model resolution fallback: runtimeOptions.model → config.defaultModels[capability] → config.defaultModel

      Parameters

      • capability: string

        Name of the capability

      • runtimeOptions: any = {}

        Request-level override options

      Returns { generalParams: any; model: any; modelParams: any; providerParams: any }

      Merged configuration with keys: model, modelParams, providerParams, generalParams

      Error if a model cannot be resolved for this capability

    • Type-safe runtime check for a capability. Allows safe casting after confirming the capability is registered.

      Type Parameters

      Parameters

      • capability: C

        Capability symbol

      Returns boolean

      True if the capability is registered

    • Deep-merge multiple objects. Arrays override completely, objects are recursively merged, primitives override. Used for merging provider defaults, model configurations, and runtime options.

      Parameters

      • ...sources: any[]

        Objects to merge

      Returns any

      Deep-merged object