.pi/skills/add-llm-provider.md
A new provider touches multiple files. Work through these steps in order.
packages/ai/src/types.ts)Api type union (e.g. "bedrock-converse-stream").StreamOptions.ApiOptionsMap.KnownProvider type union.packages/ai/src/providers/)Create a provider file exporting:
stream<Provider>() returning AssistantMessageEventStream.streamSimple<Provider>() for SimpleStreamOptions mapping.text, tool_call, thinking, usage, stop).packages/ai/package.json pointing at ./dist/providers/<provider>.js.export type re-exports in packages/ai/src/index.ts for provider option types that should remain available from the root entry.packages/ai/src/providers/register-builtins.ts via lazy loader wrappers; do not statically import provider implementation modules there.packages/ai/src/env-api-keys.ts.packages/ai/scripts/generate-models.ts)Model interface.packages/ai/test/)stream.test.ts with at least one representative model, even if it reuses an existing API impl such as openai-completions.tokens.test.ts, abort.test.ts, empty.test.ts, context-overflow.test.ts, unicode-surrogate.test.ts, tool-call-without-result.test.ts, image-tool-result.test.ts, total-tokens.test.ts, cross-provider-handoff.test.ts.cross-provider-handoff.test.ts, add at least one provider/model pair. If the provider exposes multiple model families (e.g. GPT and Claude), add at least one pair per family.bedrock-utils.ts) with credential detection.packages/coding-agent/)src/core/model-resolver.ts: add default model ID to defaultModelPerProvider.src/core/provider-display-names.ts: add API-key login display name so /login and related UI show the provider for built-in API-key auth.src/cli/args.ts: add env var documentation.README.md: add provider setup instructions.docs/providers.md: add setup instructions, env var, and auth.json key.packages/ai/README.md: add to providers table, document options/auth, add env vars.packages/ai/CHANGELOG.md: add entry under ## [Unreleased].