Custom Provider

Load a provider adapter from a custom module file.

Configuration

{
  "providers": {
    "my-provider": {
      "type": "custom",
      "model": "my-model",
      "module": "./providers/my-adapter.js"
    }
  }
}

Module Interface

Your custom module must export a default factory function that returns a ProviderAdapter:

interface ProviderAdapter {
  id: string
  type: "custom"
  model: string
  capabilities: Set<ProviderCapability>
  generateText(request: GenerationRequest): Promise<GenerationResponse>
  generateStructured<T>(request: GenerationRequest, schema: ZodType<T>): Promise<T>
}

The module path is resolved relative to the workspace root.