Commit graph

620 commits

Author SHA1 Message Date
Daniel
59ee1c9d04
feat: add native tools support for OpenAI-compatible providers (#9676)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-28 11:59:32 -05:00
Daniel
bd2c50142c
feat: add native tool support to Requesty provider (#9672)
- Import resolveToolProtocol and TOOL_PROTOCOL from @roo-code/types
- Add tools and tool_choice to completion params when native protocol is enabled
- Handle tool_call_partial chunks in streaming response
- Add comprehensive tests for native tool support
2025-11-28 10:38:58 -05:00
Matt Rubens
5b64aa95f6
Support native tools in the anthropic provider (#9644)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-27 00:42:54 -05:00
Matt Rubens
254bd23c90
Moonshot native tool call support (#9646) 2025-11-27 00:08:36 -05:00
Hannes Rudolph
f5ce56c696
fix(claude-code): disable native tools and temperature support (#9643) 2025-11-26 23:56:24 -05:00
Matt Rubens
b31e755739
Fix openrouter tool calls (#9642) 2025-11-26 22:29:49 -05:00
Matt Rubens
339a869ea9
Add fine grained tool streaming for OpenRouter Anthropic (#9629) 2025-11-26 18:02:16 -05:00
Hannes Rudolph
fb9c57e1d9
fix: filter non-Anthropic content blocks before sending to Vertex API (#9618) 2025-11-26 17:47:04 -05:00
roomote[bot]
7e17982c40
feat(bedrock): allow global inference selection when cross-region is enabled (#9616)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-26 17:13:19 -05:00
Hannes Rudolph
3208f6f6dc
feat: wire MULTIPLE_NATIVE_TOOL_CALLS experiment to OpenAI parallel_tool_calls (#9621) 2025-11-26 17:12:54 -05:00
Hannes Rudolph
240bc0b6b1
feat(mistral): add native tool calling support (#9625) 2025-11-26 17:12:04 -05:00
Daniel
f3889195d7
fix: prevent model cache from persisting empty API responses (#9623) 2025-11-26 16:59:24 -05:00
Daniel
05f35735f0
feat: enable multiple native tool calls per turn with failure guardrails (#9273) 2025-11-25 20:21:13 -05:00
Daniel
f173c9c2dc
feat: set native tools as default for minimax-m2 and claude-haiku-4.5 (#9586) 2025-11-25 16:24:02 -05:00
Matt Rubens
e4847ed8d9
Add support for images api (#9587) 2025-11-25 14:18:14 -05:00
roomote[bot]
2945b30191
fix: enable caching for Opus 4.5 model (#9568)
Added claude-opus-4-5-20251101 to the cache control switch statements
to enable prompt caching, matching the behavior of other Claude models.

Fixes #9567

Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-25 07:15:58 -05:00
Daniel
0327f12751
feat: implement streaming for native tool calls (#9542) 2025-11-24 23:12:39 -05:00
Daniel
5336246f4d
fix: gracefully skip unsupported content blocks in Gemini transformer (#9537)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-24 15:14:21 -05:00
Matt Rubens
a8b366f3dd
Add Roo Code Cloud as an imagegen provider (#9528) 2025-11-24 15:11:35 -05:00
Seb Duerr
becdb1ac1c
feat: update Cerebras models (#9527)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-24 00:57:40 -05:00
Daniel
b531075626
fix: support reasoning_details format for Gemini 3 models (#9506) 2025-11-24 00:47:25 -05:00
Daniel
f6d3fdfff6
fix: copy model-level capabilities to OpenRouter endpoint models (#9483) 2025-11-21 16:05:26 -07:00
Alex Ker
fa764ba7f1
(feat): Add Baseten Provider (#9461)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: AlexKer <AlexKer@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-21 17:49:15 -05:00
Daniel
842a4af17c
fix: implement model cache refresh to prevent stale disk cache (#9478) 2025-11-21 17:32:52 -05:00
Matt Rubens
8472bbb43b
Improvements to base openai compatible (#9462)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-21 16:42:19 -05:00
Daniel
a65e7807b1
fix: add fallback to yield tool calls regardless of finish_reason (#9476) 2025-11-21 16:04:38 -05:00
Daniel
905181810e
feat: implement Minimax as Anthropic-compatible provider (#9455) 2025-11-20 22:53:00 -05:00
Hannes Rudolph
f7d6daedff
Fix OpenAI Native parallel tool calls for native protocol (#9433)
Fixes an issue where using the OpenAI Native provider together with Native Tool Calling could cause OpenAI’s Responses API to fail with errors like:
2025-11-20 09:38:33 -07:00
Daniel
5260123689
perf: reduce excessive getModel() calls & implement disk cache fallback (#9410) 2025-11-19 23:13:39 -05:00
Hannes Rudolph
e618d881d6
feat: enable native tool calling for gemini provider (#9343)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-19 16:14:24 -05:00
Hannes Rudolph
840f421673
Fix Gemini thought signature validation and token counting errors (#9380)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-11-18 23:30:10 -05:00
Hannes Rudolph
55e9c880d0
fix: gemini maxOutputTokens and reasoning config (#9375)
* fix: gemini maxOutputTokens and reasoning config

* test: tighten gemini reasoning typings
2025-11-18 19:52:50 -05:00
Matt Rubens
bc6fad1f9d
Add native tool calling support to OpenAI-compatible (#9369)
* Add native tool calling support to OpenAI-compatible

* Fix OpenAI strict mode schema validation by adding converter methods to BaseProvider

- Add convertToolsForOpenAI() and convertToolSchemaForOpenAI() methods to BaseProvider
- These methods ensure all properties are in required array and convert nullable types
- Remove line_ranges from required array in read_file tool (converter handles it)
- Update OpenAiHandler and BaseOpenAiCompatibleProvider to use helper methods
- Eliminates code duplication across multiple tool usage sites
- Fixes: OpenAI completion error: 400 Invalid schema for function 'read_file'

---------

Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-18 18:20:51 -05:00
Matt Rubens
f455493af0
Remove the Roo model defaults (#9340) 2025-11-18 12:14:38 -05:00
Hannes Rudolph
f8d6e12aa7
feat: enable native tool calling for openai-native provider (#9348)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-11-18 11:01:04 -05:00
Hannes Rudolph
f7c2e8d164
Improve Google Gemini defaults, temperature, and cost reporting (#9327) 2025-11-17 23:38:38 -07:00
roomote[bot]
0e51a1ab9b
fix: Replace broken badgen.net badges with shields.io (#9318)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-17 14:03:28 -05:00
Daniel
744f4bd4c8
feat: implement dynamic tool protocol resolution with proper precedence hierarchy (#9286)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-15 14:35:04 -05:00
Daniel
44b96f9d10
feat(openai-native): add abort controller for request cancellation (#9276) 2025-11-14 19:38:30 -05:00
Hannes Rudolph
161345c6fa
revert out of scope changes from #9252 (#9258) 2025-11-14 00:19:09 -05:00
Hannes Rudolph
31f7372897
feat(openai): OpenAI Responses: model-driven prompt caching and generic reasoning options refactor (#9259) 2025-11-14 00:13:49 -05:00
Hannes Rudolph
01cb12f167
Add GPT-5.1 models and clean up reasoning effort logic (#9252)
* Reasoning effort: capability-driven; add disable/none/minimal; remove GPT-5 minimal special-casing; document UI semantics; remove temporary logs

* Remove Unused supportsReasoningNone

* Roo reasoning: omit field on 'disable'; UI: do not flip enableReasoningEffort when selecting 'disable'

* Update packages/types/src/model.ts

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Update webview-ui/src/components/settings/SimpleThinkingBudget.tsx

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

---------

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-11-13 20:54:41 -05:00
Matt Rubens
d270ea1983
Consistently use Package.name for better support of the nightly app (#9240) 2025-11-13 15:07:14 -05:00
Daniel
5e6e601b0a
Add native tool call support (#9159)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-11-13 12:48:35 -05:00
Hannes Rudolph
7730c6f862
OpenAI Native: gate encrypted_content include; remove gpt-5-chat-latest verbosity flag (fixes #9225) (#9231)
openai-native: include reasoning.encrypted_content only when reasoningEffort is set; prevent Responses API error on non-reasoning models. types: remove supportsVerbosity from gpt-5-chat-latest to avoid invalid verbosity error. Fixes #9225
2025-11-13 09:29:31 -05:00
Hannes Rudolph
4e6cdad052
Fix: Roo Anthropic input token normalization (avoid double-count) (#9224) 2025-11-13 01:46:11 -05:00
Hannes Rudolph
0fdbd392e8
Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API) (#9203)
* Migrate conversation continuity to plugin-side encrypted reasoning items (Responses API)

Summary
We moved continuity off OpenAI servers and now maintain conversation state locally by persisting and replaying encrypted reasoning items. Requests are stateless (store=false) while retaining the performance/caching benefits of the Responses API.

Why
This aligns with how Roo manages context and simplifies our Responses API implementation while keeping all the benefits of continuity, caching, and latency improvements.

What changed
- All OpenAI models now use the Responses API; system instructions are passed via the top-level instructions field; requests include store=false and include=["reasoning.encrypted_content"].
- We persist encrypted reasoning items (type: "reasoning", encrypted_content, optional id) into API history and replay them on subsequent turns.
- Reasoning summaries default to summary: "auto" when supported; text.verbosity only when supported.
- Atomic persistence via safeWriteJson.

Removed
- previous_response_id flows, suppressPreviousResponseId/skipPrevResponseIdOnce, persistGpt5Metadata(), and GPT‑5 response ID metadata in UI messages.

Kept
- taskId and mode metadata for cross-provider features.

Result
- ZDR-friendly, stateless continuity with equal or better performance and a simpler codepath.

* fix(webview): remove unused metadata prop from ReasoningBlock render

* Responses API: retain response id for troubleshooting (not continuity)

Continuity is stateless via encrypted reasoning items that we persist and replay. We now capture the top-level response id in OpenAiNativeHandler and persist the assistant message id into api_conversation_history.json solely for debugging/correlation with provider logs; it is not used for continuity or control flow.

Also: silence request-body debug logging to avoid leaking prompts.

* remove DEPRECATED tests

* chore: remove unused Task types file to satisfy knip CI

* fix(task): properly type cleanConversationHistory and createMessage args in Task to address Dan's review
2025-11-12 19:50:24 -05:00
Daniel
fc2147ab4f
fix: prevent crash when streaming chunks have null choices array (#9105) 2025-11-07 13:18:38 -05:00
Daniel
247b06186f
feat: Add comprehensive error logging to Roo Cloud provider (#9098)
feat: add comprehensive error logging to Roo Cloud provider

- Add detailed error logging in handleOpenAIError() to capture error details before transformation
- Enhanced getRooModels() to log HTTP response details on failed requests
- Added error context logging to RooHandler streaming and model loading
- All existing tests passing (48 total)
2025-11-07 08:53:10 -08:00
roomote[bot]
2abdad6d55
fix: respect custom OpenRouter URL for all API operations (#8951)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-11-07 10:35:12 -05:00