Sutarto Jordan Chrisfivo and Cursor
8f81f17b99
fix(antigravity): preserve Claude tool delta index ( #2223 )
...
Gemini response translation wrote OpenAI-shaped bookkeeping into the
shared state.toolCalls map, which the downstream openai-to-claude
translator uses for Claude block metadata. That pre-population skipped
blockIndex creation, so Anthropic input_json_delta events lost index.
Track Gemini function calls via state.geminiToolCallCount instead,
leaving state.toolCalls clean for the Claude translator.
Closes #2218
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-01 09:36:43 +07:00
Khanh Le and Cursor
db9ec3af61
fix(antigravity): strip optional from tool schemas before Gemini
...
Closes #1537 , #1841
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-17 09:46:41 +07:00
decolua and Cursor
aba4c45da6
fix(translator): ESM-safe registry + tool-id pairing + responses max_tokens; add real-creds tests
...
- translator/index.js: replace require() with static side-effect imports (ESM-safe),
lazy-init registry maps to survive circular import order
- openai-responses->openai: map max_output_tokens -> max_tokens (avoid leaking field upstream)
- gemini/antigravity -> openai: derive deterministic tool_call id from name so
functionCall/functionResponse pair correctly (fixes provider tool-pairing 400s)
- add offline unit tests (finish-reason, usage, session-manager, ollama malformed args, const guard)
- add real-creds integration tests (provider-cases + all-formats matrix: 6 inbound formats x 4 scenarios)
Includes co-located provider registry refactor (pricing/capabilities/media providers) and sessionManager updates.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-15 11:38:43 +07:00
decolua and Cursor
281f292f63
test(translator): add data-driven coverage, bug-exposing cases, and real provider smoke
...
- matrix.js generates N providers x M models from PROVIDER_MODELS
- coverage-all-models + format-roundtrip for structural/semantic checks
- bugs-* files expose known translation issues via it.fails
- real/smoke-providers runs full handleChatCore path against live providers (RUN_REAL=1), concurrent
- registerAll.js eagerly imports translators (Vitest ESM require fix)
- vitest.config: array aliases for subpaths + maxConcurrency 60
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 12:19:59 +07:00