<!--
 ⚠️  AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
 This file is automatically generated by scripts/docs-generator.js
 To make changes, edit the source TypeScript files or update the generator script
-->

[agents](../../) / [Exports](../modules) / IAIProviderManager

# Interface: IAIProviderManager

AI Provider Manager interface for provider registration and selection

## Table of contents

### Methods

- [addProvider](IAIProviderManager#addprovider)
- [removeProvider](IAIProviderManager#removeprovider)
- [getProvider](IAIProviderManager#getprovider)
- [getProviders](IAIProviderManager#getproviders)
- [setCurrentProvider](IAIProviderManager#setcurrentprovider)
- [getCurrentProvider](IAIProviderManager#getcurrentprovider)
- [isConfigured](IAIProviderManager#isconfigured)
- [getAvailableModels](IAIProviderManager#getavailablemodels)

## Methods

### addProvider

▸ **addProvider**(`name`, `provider`): `void`

Register an AI provider

#### Parameters

| Name       | Type                         |
| :--------- | :--------------------------- |
| `name`     | `string`                     |
| `provider` | [`IAIProvider`](IAIProvider) |

#### Returns

`void`

#### Defined in

[packages/agents/src/interfaces/manager.ts:38](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L38)

---

### removeProvider

▸ **removeProvider**(`name`): `void`

Remove an AI provider

#### Parameters

| Name   | Type     |
| :----- | :------- |
| `name` | `string` |

#### Returns

`void`

#### Defined in

[packages/agents/src/interfaces/manager.ts:43](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L43)

---

### getProvider

▸ **getProvider**(`name`): `undefined` \| [`IAIProvider`](IAIProvider)

Get registered provider by name

#### Parameters

| Name   | Type     |
| :----- | :------- |
| `name` | `string` |

#### Returns

`undefined` \| [`IAIProvider`](IAIProvider)

#### Defined in

[packages/agents/src/interfaces/manager.ts:48](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L48)

---

### getProviders

▸ **getProviders**(): `Record`\<`string`, [`IAIProvider`](IAIProvider)\>

Get all registered providers

#### Returns

`Record`\<`string`, [`IAIProvider`](IAIProvider)\>

#### Defined in

[packages/agents/src/interfaces/manager.ts:53](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L53)

---

### setCurrentProvider

▸ **setCurrentProvider**(`name`, `model`): `void`

Set current provider and model

#### Parameters

| Name    | Type     |
| :------ | :------- |
| `name`  | `string` |
| `model` | `string` |

#### Returns

`void`

#### Defined in

[packages/agents/src/interfaces/manager.ts:58](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L58)

---

### getCurrentProvider

▸ **getCurrentProvider**(): `undefined` \| \{ `provider`: `string` ; `model`: `string` }

Get current provider and model

#### Returns

`undefined` \| \{ `provider`: `string` ; `model`: `string` }

#### Defined in

[packages/agents/src/interfaces/manager.ts:63](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L63)

---

### isConfigured

▸ **isConfigured**(): `boolean`

Check if provider is configured

#### Returns

`boolean`

#### Defined in

[packages/agents/src/interfaces/manager.ts:68](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L68)

---

### getAvailableModels

▸ **getAvailableModels**(`providerName`): `string`[]

Get available models for a provider

#### Parameters

| Name           | Type     |
| :------------- | :------- |
| `providerName` | `string` |

#### Returns

`string`[]

#### Defined in

[packages/agents/src/interfaces/manager.ts:73](https://github.com/woojubb/robota/blob/4f4c8a3197e92ddd43d12dc9186b0771983054c9/packages/agents/src/interfaces/manager.ts#L73)
