feat(ai): lazy-load provider modules for faster startup fixes #2297
This commit is contained in:
12
AGENTS.md
12
AGENTS.md
@@ -136,14 +136,16 @@ Adding a new provider requires changes across multiple files:
|
||||
### 2. Provider Implementation (`packages/ai/src/providers/`)
|
||||
Create provider file exporting:
|
||||
- `stream<Provider>()` function returning `AssistantMessageEventStream`
|
||||
- `streamSimple<Provider>()` for `SimpleStreamOptions` mapping
|
||||
- Provider-specific options interface
|
||||
- Message/tool conversion functions
|
||||
- Response parsing emitting standardized events (`text`, `tool_call`, `thinking`, `usage`, `stop`)
|
||||
|
||||
### 3. Stream Integration (`packages/ai/src/stream.ts`)
|
||||
- Import provider's stream function and options type
|
||||
- Add credential detection in `getEnvApiKey()`
|
||||
- Add case in `mapOptionsForApi()` for `SimpleStreamOptions` mapping
|
||||
- Add provider to `streamFunctions` map
|
||||
### 3. Provider Exports and Lazy Registration
|
||||
- Add a package subpath export in `packages/ai/package.json` pointing at `./dist/providers/<provider>.js`
|
||||
- Add `export type` re-exports in `packages/ai/src/index.ts` for provider option types that should remain available from the root entry
|
||||
- Register the provider in `packages/ai/src/providers/register-builtins.ts` via lazy loader wrappers, do not statically import provider implementation modules there
|
||||
- Add credential detection in `packages/ai/src/env-api-keys.ts`
|
||||
|
||||
### 4. Model Generation (`packages/ai/scripts/generate-models.ts`)
|
||||
- Add logic to fetch/parse models from provider source
|
||||
|
||||
Reference in New Issue
Block a user