Skip to content

Router

Defined in: packages/ai.matey.types/src/router.ts:526

Router manages multiple backend adapters with intelligent routing.

readonly config: RouterConfig

Defined in: packages/ai.matey.types/src/router.ts:530

Router configuration.


readonly metadata: AdapterMetadata

Defined in: packages/ai.matey.types/src/adapters.ts:268

Adapter metadata for identification and capabilities.

BackendAdapter.metadata

checkHealth(): Promise<Record<string, boolean>>

Defined in: packages/ai.matey.types/src/router.ts:639

Check health of all backends.

Promise<Record<string, boolean>>

checkHealth(name): Promise<boolean>

Defined in: packages/ai.matey.types/src/router.ts:643

Check health of specific backend.

string

Promise<boolean>


clone(config): Router

Defined in: packages/ai.matey.types/src/router.ts:686

Clone router with new configuration.

Partial<RouterConfig>

Router


closeCircuitBreaker(name): void

Defined in: packages/ai.matey.types/src/router.ts:653

Manually close circuit breaker for a backend.

string

void


dispatchParallel(request, options?, signal?): Promise<ParallelDispatchResult>

Defined in: packages/ai.matey.types/src/router.ts:626

Dispatch request to multiple backends in parallel.

IRChatRequest

ParallelDispatchOptions

AbortSignal

Promise<ParallelDispatchResult>


dispose(): void

Defined in: packages/ai.matey.types/src/router.ts:691

Clean up resources.

void


optional estimateCost(request): Promise<number | null>

Defined in: packages/ai.matey.types/src/adapters.ts:342

Optional: Estimate cost for a request.

IRChatRequest

IR request to estimate cost for

Promise<number | null>

Estimated cost in USD (or null if unavailable)

BackendAdapter.estimateCost


execute(request, signal?): Promise<IRChatResponse>

Defined in: packages/ai.matey.types/src/router.ts:616

Execute request with automatic backend selection and fallback.

IRChatRequest

AbortSignal

Promise<IRChatResponse>

BackendAdapter.execute


executeStream(request, signal?): IRChatStream

Defined in: packages/ai.matey.types/src/router.ts:621

Execute streaming request with automatic backend selection and fallback.

IRChatRequest

AbortSignal

IRChatStream

BackendAdapter.executeStream


fromIR(request): unknown

Defined in: packages/ai.matey.types/src/adapters.ts:283

Convert universal IR request to provider-specific format.

Useful for:

  • Debugging: Inspect what will be sent to the provider
  • Testing: Test conversion logic without making API calls
  • Transparency: See provider-specific request structure

IRChatRequest

Universal IR request

unknown

Provider-specific request object

If request is invalid for this provider

If conversion fails

BackendAdapter.fromIR


get(name): BackendAdapter<unknown, unknown> | undefined

Defined in: packages/ai.matey.types/src/router.ts:549

Get a registered backend adapter.

string

BackendAdapter<unknown, unknown> | undefined


getBackendInfo(): BackendInfo[]

Defined in: packages/ai.matey.types/src/router.ts:564

Get information about all registered backends.

BackendInfo[]

getBackendInfo(name): BackendInfo | undefined

Defined in: packages/ai.matey.types/src/router.ts:568

Get information about specific backend.

string

BackendInfo | undefined


getBackendStats(name): BackendStats | undefined

Defined in: packages/ai.matey.types/src/router.ts:677

Get statistics for specific backend.

string

BackendStats | undefined


getFallbackChain(): readonly string[]

Defined in: packages/ai.matey.types/src/router.ts:582

Get current fallback chain.

readonly string[]


getModelMapping(): ModelMapping

Defined in: packages/ai.matey.types/src/router.ts:592

Get current model mapping.

ModelMapping


getModelPatterns(): readonly ModelPatternMapping[]

Defined in: packages/ai.matey.types/src/router.ts:602

Get current model patterns.

readonly ModelPatternMapping[]


getStats(): RouterStats

Defined in: packages/ai.matey.types/src/router.ts:667

Get router statistics.

RouterStats


has(name): boolean

Defined in: packages/ai.matey.types/src/router.ts:554

Check if backend is registered.

string

boolean


optional healthCheck(): Promise<boolean>

Defined in: packages/ai.matey.types/src/adapters.ts:334

Optional: Health check to verify backend is available.

Promise<boolean>

true if backend is healthy and available

BackendAdapter.healthCheck


listBackends(): readonly string[]

Defined in: packages/ai.matey.types/src/router.ts:559

List all registered backend names.

readonly string[]


optional listModels(options?): Promise<ListModelsResult>

Defined in: packages/ai.matey.types/src/adapters.ts:357

Optional: List available models from this backend.

Behavior depends on provider:

  • Providers with API endpoints (OpenAI, Groq): Fetch from API with caching
  • Providers without endpoints (Anthropic): Return static list from config or defaults
  • Can be overridden via config.models or config.modelsEndpoint

ListModelsOptions

Options for listing models (filtering, cache control)

Promise<ListModelsResult>

List of available models with metadata

If remote fetch fails

If network request fails

BackendAdapter.listModels


openCircuitBreaker(name, timeoutMs?): void

Defined in: packages/ai.matey.types/src/router.ts:648

Manually open circuit breaker for a backend.

string

number

void


register(name, adapter): Router

Defined in: packages/ai.matey.types/src/router.ts:539

Register a backend adapter.

string

BackendAdapter

Router


resetCircuitBreaker(name?): void

Defined in: packages/ai.matey.types/src/router.ts:658

Reset circuit breaker statistics.

string

void


resetStats(): void

Defined in: packages/ai.matey.types/src/router.ts:672

Reset router statistics.

void


selectBackend(request, preferredBackend?): Promise<string>

Defined in: packages/ai.matey.types/src/router.ts:611

Select backend for a request.

IRChatRequest

string

Promise<string>


setFallbackChain(chain): Router

Defined in: packages/ai.matey.types/src/router.ts:577

Set fallback chain for sequential failover.

readonly string[]

Router


setModelMapping(mapping): Router

Defined in: packages/ai.matey.types/src/router.ts:587

Set model to backend mapping.

ModelMapping

Router


setModelPatterns(patterns): Router

Defined in: packages/ai.matey.types/src/router.ts:597

Set model pattern mappings.

readonly ModelPatternMapping[]

Router


toIR(response, originalRequest, latencyMs): IRChatResponse

Defined in: packages/ai.matey.types/src/adapters.ts:299

Convert provider-specific response to universal IR.

Useful for:

  • Testing: Convert mock provider responses to IR
  • Debugging: Parse provider responses manually
  • Format conversion: Use backend as response converter

unknown

Provider-specific response object

IRChatRequest

Original IR request (for context)

number

Request latency in milliseconds

IRChatResponse

Universal IR response

If conversion fails

BackendAdapter.toIR


unregister(name): Router

Defined in: packages/ai.matey.types/src/router.ts:544

Unregister a backend adapter.

string

Router