# Class LittleGhost::Providers::Base

Documentation version: Edge

Canonical HTML: https://littleghostai.org/docs/LittleGhost/Providers/Base.html

Shared provider contract. Provider adapters implement #stream and may
implement #embed or override capability-sensitive request preparation.

LittleGhost may call one provider instance concurrently. An embedding adapter
accepts Embeddings::Request, observes its cancellation and deadline, and
returns Embeddings::Response. Provider failures should use a content-safe
ProviderError subclass.

## Inheritance

`LittleGhost::Providers::Base < Object`

## Class methods

<a id="method-c-request_options"></a>
### `.request_options`

```ruby
.request_options()
```

Returns the trusted per-profile request options this adapter accepts.
Connection options remain authoritative and are configured separately.

## Instance methods

<a id="method-i-capabilities"></a>
### `#capabilities`

```ruby
#capabilities(metadata: {})
```

Returns provider capabilities derived from normalized metadata.

<a id="method-i-embed"></a>
### `#embed`

```ruby
embed(request) -> Embeddings::Response
```

Executes `request` when the adapter supports text embeddings.

The default implementation raises UnsupportedModelOperationError.

<a id="method-i-prepare_request"></a>
### `#prepare_request`

```ruby
#prepare_request(request, capabilities:)
```

Applies provider-specific capability constraints before streaming.

<a id="method-i-stream"></a>
### `#stream`

```ruby
#stream(_request)
```

Streams normalized events for `request`.
