Open
Conversation
Previously only reasoningEffort was reset on model switch. Now also clears modelMaxTokens and modelMaxThinkingTokens so the new model's defaults take effect. Different models within the same provider can have different reasoning defaults/options.
Add Poe as a dynamic provider with type definitions including: - Default model ID (claude-sonnet-4) and model info - Provider settings schema (poeApiKey, poeBaseUrl) - Integration into discriminated union, modelIdKeysByProvider, and MODELS_BY_PROVIDER registry
Add local link to ai-sdk-provider-poe SDK which provides the Poe AI provider integration for the Vercel AI SDK.
Implement PoeHandler using the ai-sdk-provider-poe SDK with support for: - Streaming text generation via Vercel AI SDK - Reasoning budget (Anthropic-style thinking) and reasoning effort (OpenAI-style) based on model capabilities - Dynamic model fetching from the Poe API with caching - Tool calling with OpenAI-compatible schema conversion - Error handling with telemetry capture Wire the handler into the API factory and model cache router.
Add Poe to the router model fetching pipeline so models are fetched when a Poe API key is configured. Supports both automatic fetch on provider selection and manual refresh with key/baseUrl overrides.
Add Poe settings component with API key input, base URL configuration, model picker with dynamic model list from the Poe API, and manual model refresh. Integrate into ApiOptions provider selection and the useSelectedModel hook.
Add unit tests for PoeHandler (constructor, getModel, createMessage, reasoning budget/effort, completePrompt) and getPoeModels fetcher (model conversion, optional fields, reasoning effort mapping). Update existing test fixtures to include the poe router entry.
Replace local link dependency with the published npm package.
Re-export poeDefaultModelId, POE_DEFAULT_BASE_URL, and getPoeDefaultModelInfo from the SDK instead of hardcoding them. Bump ai-sdk-provider-poe to ^2.0.15.
The AI SDK's reasoningText promise is always derived from the same stream parts emitted via fullStream — it can never contain content that wasn't already yielded. Remove the redundant fallback to match the openai-compatible provider pattern.
Remove tests for tool passthrough and model ID plumbing that are already covered by the ai-sdk transform tests and implicitly by other createMessage tests. Clean up unused imports.
After clicking Refresh Models, the ModelPicker dropdown (powered by ExtensionStateContext) updated correctly, but the model validation in ApiOptions still used a stale react-query cache. This caused newly fetched models like gpt-5.4 to show "not available" even though they appeared in the picker. Invalidate the react-query ["routerModels"] cache on successful Poe refresh so validation sees the same model list as the dropdown. Also bumps ai-sdk-provider-poe to ^2.0.17.
Replace local file: references with the pinned registry version and remove debug canary from extension.ts.
Add poeApiKey, getPoeApiKey, and poeBaseUrl translation keys to all 17 non-English locale files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related GitHub Issue
Closes: #
Roo Code Task Context (Optional)
N/A
Description
Adds Poe as a new AI provider, enabling users to access models through the Poe API.
Key implementation details:
poeApiKeyandpoeBaseUrlsettings, integrated into the discriminated union and provider registries.PoeHandler): Usesai-sdk-provider-poeSDK with Vercel AI SDK for streaming. Supports reasoning budget (Anthropic-style thinking) and reasoning effort (OpenAI-style) based on model capabilities. Includes tool calling with OpenAI-compatible schema conversion.modelMaxTokensandmodelMaxThinkingTokens(previously only clearedreasoningEffort), so new model defaults take effect for all providers.Design choices:
maxOutputTokensfor budget models is derived frominfo.maxTokens - thinkingBudgetwhen the user hasn't explicitly set a max, ensuring the reasoning budget + text output don't exceed the model's capacity.Test Procedure
poerouter entry.pnpm testpnpm check-types(14/14 packages)pnpm lint(14/14 packages)Pre-Submission Checklist
Screenshots / Videos
Documentation Updates
Additional Notes
The
ai-sdk-provider-poedependency currently uses a local link for development. This needs to be updated to a published npm package before merging.We support OAuth and we are planning to add support, but it will be a follow-up PR.