Documentation/Base Classes
v2.0.0-beta.1Snapshot bebdcd1Markdown ↗

Base Classes

Base Classes

Base classes for custom provider implementations

BaseMediaProvider class

📍 src/infrastructure/providers/base/BaseMediaProvider.ts:16

Base class for all media providers (Image, Audio, Video) Follows the same patterns as BaseTextProvider for consistency

Constructor

constructor

typescript
constructor(config: any)

Parameters:

  • config: any
Methods

executeWithCircuitBreaker()

Execute operation with circuit breaker protection Automatically records metrics and handles errors

typescript
protected async executeWithCircuitBreaker<TResult>(
    operation: () => Promise<TResult>,
    operationName: string,
    metadata?: Record<string, unknown>
  ): Promise<TResult>

Parameters:

  • operation: () => Promise<TResult>
  • operationName: string
  • metadata: Record<string, unknown> | undefined (optional)

Returns: Promise<TResult>

logOperationStart()

Log operation start with context Useful for logging before async operations

typescript
protected logOperationStart(operation: string, context: Record<string, unknown>): void

Parameters:

  • operation: string
  • context: Record<string, unknown>

Returns: void

logOperationComplete()

Log operation completion with context

typescript
protected logOperationComplete(operation: string, context: Record<string, unknown>): void

Parameters:

  • operation: string
  • context: Record<string, unknown>

Returns: void

Properties
Property Type Description
circuitBreaker? `circuitBreaker: CircuitBreaker<any> undefined`
logger logger: FrameworkLogger -

BaseProvider class

📍 src/infrastructure/providers/base/BaseProvider.ts:9

Constructor

constructor

typescript
constructor(protected config: ProviderConfig)

Parameters:

  • config: ProviderConfig
Methods

validateConfig()

Validate provider configuration Returns validation result with details

typescript
async validateConfig(): Promise&lt;boolean&gt;

Returns: Promise&lt;boolean&gt;

validateApiKey()

Validate API key format and presence Can be overridden by providers with specific key formats

typescript
protected validateApiKey(): { isValid: boolean; warning?: string }

Returns: { isValid: boolean; warning?: string | undefined; }

validateProviderSpecificKeyFormat()

Override this method in provider implementations for specific key format validation

typescript
protected validateProviderSpecificKeyFormat(_apiKey: string): { isValid: boolean; warning?: string }

Parameters:

  • _apiKey: string

Returns: { isValid: boolean; warning?: string | undefined; }

assertValidConfig()

Validate config and throw if invalid

typescript
protected assertValidConfig(): void

Returns: void

getApiKey()

Get API key from config

typescript
protected getApiKey(): string

Returns: string

getBaseURL()

Get base URL if configured

typescript
protected getBaseURL(): string | undefined

Returns: string | undefined

getTimeout()

Get timeout configuration

typescript
protected getTimeout(): number

Returns: number

getMaxRetries()

Get max retries configuration

typescript
protected getMaxRetries(): number

Returns: number

Properties
Property Type Description
name name: string -
capabilities capabilities: ProviderCapabilities -

BaseTextProvider class

📍 src/infrastructure/providers/base/BaseTextProvider.ts:26

Constructor

constructor

typescript
constructor(config: any)

Parameters:

  • config: any
Methods

ensureObservabilityInitialized()

Auto-initialize observability on first use (lazy initialization) This is called automatically by executeWithCircuitBreaker(); subclasses whose stream paths bypass it (e.g. streamGenerate) should also call it at entry so error logs carry the real provider name instead of "unknown".

typescript
protected ensureObservabilityInitialized(): void

Returns: void

initializeObservability()

DEPRECATED: No longer needed, kept for backward compatibility Observability is now auto-initialized on first use

typescript
protected initializeObservability(_providerName: string): void

Parameters:

  • _providerName: string

Returns: void

generate()

typescript
abstract generate(options: TextGenerateOptions): Promise&lt;LLMResponse&gt;;

Parameters:

  • options: TextGenerateOptions

Returns: Promise&lt;LLMResponse&gt;

streamGenerate()

typescript
abstract streamGenerate(options: TextGenerateOptions): AsyncIterableIterator&lt;StreamEvent&gt;;

Parameters:

  • options: TextGenerateOptions

Returns: AsyncIterableIterator&lt;StreamEvent&gt;

getModelCapabilities()

typescript
abstract getModelCapabilities(model: string): ModelCapabilities;

Parameters:

  • model: string

Returns: ModelCapabilities

getAdvancedCapabilities()

typescript
getAdvancedCapabilities(model: string): AdvancedTextCapabilities

Parameters:

  • model: string

Returns: AdvancedTextCapabilities

executeWithCircuitBreaker()

Execute with circuit breaker protection (helper for subclasses)

typescript
protected async executeWithCircuitBreaker&lt;TResult&gt;(
    operation: () =&gt; Promise&lt;TResult&gt;,
    model?: string
  ): Promise&lt;TResult&gt;

Parameters:

  • operation: () =&gt; Promise&lt;TResult&gt;
  • model: string | undefined (optional)

Returns: Promise&lt;TResult&gt;

getCircuitBreakerMetrics()

Get circuit breaker metrics

typescript
getCircuitBreakerMetrics()

Returns: CircuitBreakerMetrics | null

normalizeInputToString()

Normalize input to string (helper for providers that don't support complex input)

typescript
protected normalizeInputToString(input: string | any[]): string

Parameters:

  • input: string | any[]

Returns: string

applyContextLimitGuardrail()

Apply context limit guardrail to generation options. Returns the same options if within budget, or trimmed options if over. This is a safety net — primary context management is in AgentContextNextGen.

typescript
protected applyContextLimitGuardrail(options: TextGenerateOptions): TextGenerateOptions

Parameters:

  • options: TextGenerateOptions

Returns: TextGenerateOptions

resolveAdvancedCredentials()

typescript
protected async resolveAdvancedCredentials(
    options: TextGenerateOptions,
  ): Promise&lt;TextGenerateOptions&gt;

Parameters:

  • options: TextGenerateOptions

Returns: Promise&lt;TextGenerateOptions&gt;

assertAdvancedOptionsSupported()

typescript
protected assertAdvancedOptionsSupported(options: TextGenerateOptions): void

Parameters:

  • options: TextGenerateOptions

Returns: void

listModels()

List available models from the provider's API. Default returns empty array; providers override when they have SDK support.

typescript
async listModels(): Promise&lt;string[]&gt;

Returns: Promise&lt;string[]&gt;

destroy()

Clean up provider resources (circuit breaker listeners, etc.) Should be called when the provider is no longer needed.

typescript
destroy(): void

Returns: void

Properties
Property Type Description
circuitBreaker? `circuitBreaker: CircuitBreaker<any> undefined`
logger logger: FrameworkLogger -

Documentation snapshot · 2026-11-02Suggest a correction ↗

Search documentation

Type to search the v2 documentation.