Changelog
- 101498e Fix: Support token extraction from Metadata for file-based Kiro auth
- b1204b1 Merge branch 'router-for-me:main' into main
- f36a5f5 Merge pull request router-for-me#1294 from Darley-Wey/fix/claude2gemini
- c1facdf Merge pull request router-for-me#1295 from SchneeMart/feature/claude-caching
- 4ee46bc Merge pull request router-for-me#1311 from router-for-me/fix/gemini-schema
- c3e94a8 Merge pull request router-for-me#1317 from yinkev/feat/gemini-tools-passthrough
- bf66bca Merge pull request #155 from PancakeZik/feature/use-q-endpoint
- 24cf7fa Merge pull request #156 from taetaetae/fix/kiro-api-region
- 43ca112 Merge pull request #157 from crossly/bugfix/kiro-token-extraction-from-metadata
- 0263f9d Restore README files
- 3a43ecb feat(caching): implement Claude prompt caching with multi-turn support
- 1e764de feat(kiro): switch to Amazon Q endpoint as primary
- 538039f feat(translator): add code_execution and url_context tool passthrough
- d0d66cd fix(gemini): Removes unsupported extension fields
- fafef32 fix(kiro): Do not use OIDC region for API endpoint
- 2666708 fix: skip empty text parts and messages to avoid Gemini API error When Claude API sends an assistant message with empty text content like: {"role":"assistant","content":[{"type":"text","text":""}]} The translator was creating a part object {} with no data field, causing Gemini API to return error: "required oneof field 'data' must have one initialized field" This fix: 1. Skips empty text parts (text="") during translation 2. Skips entire messages when their parts array becomes empty This ensures compatibility when clients send empty assistant messages in their conversation history.
- ca79651 refactor(gemini): optimize removeExtensionFields with post-order traversal and DeleteBytes