Commit Graph

232 Commits

Author SHA1 Message Date
Mario Zechner 65a6472bdd fix(ai): forward google vertex base url
closes #3619
2026-04-24 00:05:43 +02:00
Mario Zechner 95f4921250 fix(ai): repair codex stream test merge conflict 2026-04-23 23:51:20 +02:00
Markus Ylisiurunen ba8f1c228a Align GPT-5.5 Codex capability handling (#3618)
* fix(ai): align gpt-5.5 codex capabilities

* chore(ai): update generated models

* fix(ai): apply gpt-5.5 priority pricing to api

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-23 23:49:33 +02:00
Mario Zechner 4cd4cfd98e fix(ai): support long cache retention compat
closes #3543
2026-04-23 23:43:34 +02:00
Mario Zechner 1312346199 fix(ai): expand Copilot eager streaming compat
closes #3575
2026-04-23 23:43:00 +02:00
Mario Zechner c681d35d76 fix(ai): avoid double-counting reasoning tokens
closes #3581
2026-04-23 23:28:16 +02:00
Mario Zechner ffa0f31239 fix(ai): support Anthropic eager tool streaming compat
closes #3575
2026-04-23 23:12:45 +02:00
Mario Zechner 6af10c9c7f fix(ai): make OpenAI Responses session_id header optional closes #3579 2026-04-23 23:12:24 +02:00
Mario Zechner bf4aa3a601 fix(ai): support xhigh for Codex GPT-5.5 2026-04-23 22:49:09 +02:00
Armin Ronacher 0cb8ff3843 fix(ai): Restore original api contract for getEnvApiKey 2026-04-23 22:04:42 +02:00
Mario Zechner 535fdcea2c test(ai): refresh responses and codex e2e coverage closes #3576 2026-04-23 21:36:16 +02:00
Armin Ronacher e97051313d fix(coding-agent,ai): show env auth source in /login 2026-04-23 21:19:53 +02:00
Mario Zechner 01509156b3 fix(ai): coalesce malformed streamed tool calls closes #3576 2026-04-23 16:05:21 +02:00
Mario Zechner 3dacaa8ed9 fix(coding-agent,tui): drop typebox compiler shim and fix progress 2026-04-22 21:12:20 +02:00
Armin Ronacher 35ff2689ee fix(typebox): migrate to v1 with extension compat (#3474)
* fix(typebox): migrate to v1 with extension compat

Replace AJV-based validation with TypeBox-native validation, keep legacy extension imports working (including @sinclair/typebox/compiler), and restore coercion for serialized/plain JSON schemas.

This change closes #3112.

* fix(typebox): use canonical imports and harden coercion

Switch first-party code to canonical typebox imports while retaining legacy extension aliases in the loader.

Remove obsolete runtime codegen guards, expand serialized JSON-schema coercion coverage, and update related tests and fixtures.

Fixes #3112.

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-22 19:59:33 +02:00
Mario Zechner a23fab4693 fix(ai): synthesize trailing orphaned tool results closes #3555 2026-04-22 19:41:55 +02:00
Mario Zechner 8234ebf9ee feat(coding-agent,tui): add stacked autocomplete providers closes #2983 2026-04-22 15:44:08 +02:00
Mario Zechner 0bb0a58466 feat(ai): add Fireworks provider support closes #3519 2026-04-22 01:09:11 +02:00
Mario Zechner e58d631c89 Reapply "fix(ai): own Anthropic SSE parsing to avoid SDK JSON.parse hard-failures"
This reverts commit fc9220d2de.
2026-04-21 23:42:19 +02:00
Mario Zechner fc9220d2de Revert "fix(ai): own Anthropic SSE parsing to avoid SDK JSON.parse hard-failures"
This reverts commit 4b926a30a2.
2026-04-21 23:19:52 +02:00
Mario Zechner 4b926a30a2 fix(ai): own Anthropic SSE parsing to avoid SDK JSON.parse hard-failures
Bypass the Anthropic SDK streaming parser entirely. Use
client.messages.create().asResponse() and decode the SSE stream
ourselves with defensive JSON parsing that repairs invalid escape
sequences and control characters inside string literals.

- Switch from SDK .stream() to .asResponse() + pi-owned SSE decoder
- Add repairJson() / parseJsonWithRepair() to json-parse.ts
- Add anthropic-sse-parsing.test.ts regression for malformed tool deltas
- Update github-copilot-anthropic.test.ts mock to match new call path
- Update deprecated claude-3-5-haiku-20241022 refs to claude-haiku-4-5
- Remove stale non-reasoning model test

fixes #3175
2026-04-21 23:00:56 +02:00
Mario Zechner a0a16c7762 fix(amazon-bedrock): restore regional endpoint resolution
closes #3481
closes #3485
closes #3486
closes #3487
closes #3488
2026-04-21 13:20:10 +02:00
Mario Zechner 1d488626d9 fix(ai): preserve requiresThinkingAsText replay semantics closes #3387 2026-04-20 19:44:38 +02:00
Mario Zechner 3054fd7a3b fix(ai,coding-agent): support anthropic-style cache control for openai compatibles closes #3392 2026-04-20 17:12:05 +02:00
Mario Zechner 4b2caf43a8 fix(ai): add completions session affinity compat closes #3430 2026-04-20 16:55:16 +02:00
Mario Zechner aa1b587b10 fix(ai): add direct OpenAI completions prompt caching closes #3426 2026-04-20 15:37:29 +02:00
Ramiz Wachtler cbe0e8304f fix(ai): replace stale OpenRouter Llama 4 Maverick test model with Llama 4 Scout (#3421)
* fix(ai): replace stale OpenRouter Llama 4 Maverick test model

- Switch OpenRouter Meta test model from `meta-llama/llama-4-maverick` to `meta-llama/llama-4-scout` in AI tests.

- CI failure body:
  - packages/ai/test/context-overflow.test.ts(531,41): error TS2345: Argument of type "meta-llama/llama-4-maverick" is not assignable to parameter of type "...".
  - packages/ai/test/total-tokens.test.ts(520,40): error TS2345: Argument of type "meta-llama/llama-4-maverick" is not assignable to parameter of type "...".

* chore(ai): add changelog entry for OpenRouter test model swap

- Add Unreleased Fixed entry for switching OpenRouter Meta test model to llama-4-scout

- Reference PR #3421 attribution
2026-04-20 13:21:29 +02:00
Vladyslav Tkachenko f732f5e858 fix(ai): strip JSON Schema meta keys for Cloud Code Assist (#3412) 2026-04-19 16:54:49 +02:00
Mario Zechner 454b9619c7 fix(ai): use SDK token auth and omit Bedrock display in GovCloud closes #3359 2026-04-18 01:24:13 +02:00
Mario Zechner 2dddc5ba25 fix(ai): sanitize Mistral tool schemas closes #3361 2026-04-18 00:54:46 +02:00
Mario Zechner 62778a82d5 fix(ai): use reasoning_effort for Mistral Small 4 closes #3338 2026-04-17 22:44:27 +02:00
Markus Ylisiurunen 2cdac7382a fix(ai): trust requested Codex service tier (#3307) 2026-04-17 01:50:04 +02:00
Mario Zechner 8404fbafdb test(ai): align adaptive thinking payload assertions 2026-04-17 00:35:07 +02:00
Mario Zechner f84c4c89f5 fix(ai): restore FakeOpenAI mock .withResponse() so openai-completions tests pass
The openai-completions provider now calls .withResponse() on the
create() result to surface HTTP status/headers for the new onResponse
hook (d131fcd4). The FakeOpenAI test mock only returned an async
iterable, so 4 tests in openai-completions-tool-choice.test.ts that
actually consume the stream failed with "withResponse is not a function".

Updated the mock to return a Promise augmented with .withResponse()
resolving to { data: <async iterable>, response: { status, headers } }.

closes #3304
2026-04-16 22:57:30 +02:00
Vegard Stikbakke 45f1a2cd00 fix(ai): set session id headers for all OpenAI compatible responses (#3264) 2026-04-16 22:38:40 +02:00
Markus Ylisiurunen d1c6cb1e0f fix(ai): Fix a configuration bug with Opus 4.7 adaptive thinking (#3286) 2026-04-16 19:57:19 +02:00
Mario Zechner eb1cf80b10 fix(ai,coding-agent): replace deprecated kimi k2p5 model closes #3242 2026-04-16 12:06:24 +02:00
deepkilo 3a13fa80c8 fix(ai): treat gcp vertex marker as ADC auth (#3221) 2026-04-15 16:20:45 +02:00
Mario Zechner 018b40c30c fix: align OpenAI cache affinity and use uuidv7 session ids 2026-04-14 23:20:13 +02:00
Armin Ronacher e2b40dfc81 fix(ai): strip partialJson from responses tool calls
Mutate persisted tool-call blocks in place on function_call completion,
remove partialJson, and emit the same reference on toolcall_end.
Add regression coverage for persisted block cleanup and event identity.

fixes #3078
2026-04-14 18:56:53 +02:00
Mario Zechner 6044cabb15 fix(ai): preserve cache_write_tokens in completions stream usage closes #2802 2026-04-04 21:39:11 +02:00
Kao Félix 758ede4da0 Enable tool streaming for newer Z.ai models (#2732) 2026-03-31 14:28:24 +02:00
Mario Zechner d86122cbd3 refactor(coding-agent): add runtime host for session switching closes #2024 2026-03-31 13:49:57 +02:00
xu0o0 a3bf1eb399 fix(ai): fix bedrock throttling misidentification (#2699)
- Add NON_OVERFLOW_PATTERNS to explicitly exclude known non-overflow errors
- Consolidate Cerebras 400/413 no-body check into OVERFLOW_PATTERNS
- Format Bedrock errors as ${error.name}: ${error.message} for pattern matching
2026-03-30 17:26:03 +02:00
Mario Zechner ef6af5ebbd feat(ai,coding-agent): add faux provider and ModelRegistry factories 2026-03-29 21:08:50 +02:00
Mario Zechner bc8eb74b82 fix(ai): detect Ollama overflow errors closes #2626 2026-03-27 02:50:22 +01:00
Mario Zechner 6dc43d6dd1 fix(ai): prune deprecated direct minimax models 2026-03-25 22:44:32 +01:00
Mario Zechner bab58f821d fix(ai): omit copilot responses reasoning default closes #2567 2026-03-24 20:39:11 +01:00
Mario Zechner d1613e3f53 fix(ai): handle explicit thinking off across providers closes #2490 2026-03-22 20:27:44 +01:00
Mario Zechner 6129971c04 fix(ai): explicitly disable Anthropic thinking when off closes #2022 2026-03-22 19:38:54 +01:00