Commit Graph

556 Commits

Author SHA1 Message Date
Mario Zechner
ad48b52de4 fix(ai): align codex websocket headers and terminate SSE closes #1961 2026-03-14 12:23:17 +01:00
Mario Zechner
1a4d153d7a fix(ai): limit Bedrock prompt caching to Claude models\n\ncloses #2053 2026-03-14 05:20:41 +01:00
Mario Zechner
03ad7ecee7 fix(ai): add qwen-chat-template compat mode closes #2020 2026-03-14 05:20:27 +01:00
Mario Zechner
c961cda2cd fix(ai): harden Bedrock unsigned thinking replay closes #2063 2026-03-14 05:06:14 +01:00
Mario Zechner
62064b2b64 fix(ai): support xhigh for opus 4.6 by model id closes #2040 2026-03-14 04:55:03 +01:00
Mario Zechner
a79ca41190 fix(ai): handle unknown finish_reason in openai-completions gracefully
Map unknown finish_reason values (e.g. "end" from Ollama/LM Studio) to
"stop" instead of throwing, since assistant content is already produced.

fixes #2142
2026-03-14 04:01:22 +01:00
Mario Zechner
c7309aedac fix(ai): replace curl with fetch in Anthropic OAuth token exchange 2026-03-14 03:21:08 +01:00
Mario Zechner
9b794558c6 chore(ai): refresh generated models 2026-03-14 03:11:15 +01:00
Mario Zechner
933348593c fix(ai): send tool result images in function_call_output closes #2104 2026-03-14 00:49:40 +01:00
Mario Zechner
4aa25bfb72 docs(agent,ai): clarify non-throwing stream and hook contracts 2026-03-13 22:54:41 +01:00
Mario Zechner
92882dc4cc fix(ai): improve anthropic oauth flow fixes #2119 2026-03-13 22:38:34 +01:00
Mario Zechner
4535415300 fix(ai): capture usage from choice.usage for non-standard OpenAI-compatible providers
Some OpenAI-compatible providers (e.g., Moonshot/Kimi) return usage
data in chunk.choices[0].usage instead of the standard chunk.usage.
Extract usage parsing into a helper and check choice.usage as fallback.

closes #2017
2026-03-10 16:28:39 +01:00
Geraldo Dutra Neto
23109b113d fix: send assistant content as string in openai-completions provider (#2008)
The OpenAI Chat Completions API standard format for assistant message
content is a plain string. Sending it as an array of
{type:"text", text:"..."} objects causes some models (notably DeepSeek
V3.2 via NVIDIA NIM) to mirror the content-block structure literally
in their output. This produces recursive nesting where each turn wraps
the previous content blocks deeper:

  [{'type':'text','text':'[{\'type\':\'text\',\'text\':...}]'}]

The fix unifies the assistant content serialization to always use a
joined string — the same approach already used for the github-copilot
provider — for all openai-completions backends.

Affected models observed: deepseek-ai/deepseek-v3.2 (nvidia provider).
Models like GLM-5, GPT-4, Claude were unaffected as they tolerate
array content, but sending a standard string is safer for all.

Co-authored-by: geraldoaax <geraldoaax@users.noreply.github.com>
2026-03-10 16:04:11 +01:00
Ben Hayden
fd0c7c3bdb fix(ai): improve GitHub Copilot OAuth polling (#1994) 2026-03-09 20:15:17 +01:00
Gordon Hui
01f7faae9c fix(ai): support GOOGLE_CLOUD_API_KEY for google-vertex (#1948) (#1976) 2026-03-09 13:30:22 +01:00
Drew Brown
d9cfa115be fix(ai): improve error details in response.failed handler (#1956) 2026-03-08 21:34:01 +01:00
Mario Zechner
b370cd5a5c Add [Unreleased] section for next cycle 2026-03-08 00:56:38 +01:00
Mario Zechner
ade6a35e75 fix(ai): detect z.ai context overflow
closes #1937
2026-03-08 00:18:29 +01:00
Mario Zechner
b279d03d33 Add [Unreleased] section for next cycle 2026-03-07 14:44:23 +01:00
Mario Zechner
a3f05423d9 feat(coding-agent): add provider payload hook 2026-03-07 14:34:28 +01:00
Mario Zechner
1e52a687ae Add [Unreleased] section for next cycle 2026-03-06 17:07:29 +01:00
Mario Zechner
e4172e68d0 feat(ai): add claude-sonnet-4-6 to Antigravity, fix Claude thinking header detection, bump UA to 1.18.4
closes #1859
2026-03-06 13:27:35 +01:00
Mario Zechner
b4e7d5c445 fix(ai): restore OpenAI Responses reasoning replay closes #1878 2026-03-06 12:39:55 +01:00
Mario Zechner
b14c359289 Add [Unreleased] section for next cycle 2026-03-06 00:42:35 +01:00
Mario Zechner
863135d429 fix(ai): keep mistral browser-safe 2026-03-06 00:16:18 +01:00
Mario Zechner
a31065166d Merge branch 'feat/use-mistral-sdk' 2026-03-05 23:49:29 +01:00
Mario Zechner
4c175790b1 fix(ai): preserve mistral thinking replay 2026-03-05 23:49:18 +01:00
Mario Zechner
16ec7de29c fix(ai): cap gpt-5.4 context windows to 272k 2026-03-05 22:57:20 +01:00
Markus Ylisiurunen
f8d731a134 fix codex context window and add a few tests 2026-03-05 22:54:16 +01:00
Markus Ylisiurunen
8a6384a925 add support for gpt-5.4 2026-03-05 22:53:08 +01:00
Mario Zechner
a0d839ce84 fix(ai): use skip_thought_signature_validator for unsigned Gemini 3 tool calls
Replace text fallback with the official sentinel value so unsigned function
calls retain structured context in multi-turn conversations.

closes #1829
2026-03-05 22:04:00 +01:00
Mario Zechner
cfbb15876a fix(ai): antigravity endpoint cascade on 403/404, add autopush fallback, strip extra headers
closes #1830
2026-03-05 21:59:43 +01:00
Mario Zechner
8f2af2ae7e feat(ai): add github-copilot gpt-5.3-codex fallback closes #1853 2026-03-05 21:47:52 +01:00
Mario Zechner
8fc2b76827 fix(ai): omit empty OpenAI Responses thinking blocks on replay 2026-03-05 21:28:16 +01:00
Mario Zechner
87d71380e2 fix(ai): preserve OpenAI Responses assistant phase across turns closes #1819 2026-03-05 21:13:06 +01:00
Mario Zechner
708ce9d4ce Add [Unreleased] section for next cycle 2026-03-05 07:14:13 +01:00
Mario Zechner
668ebc0941 fix(ai): replace Function-based dynamic imports with module imports (fixes #1814) 2026-03-04 20:50:14 +01:00
Mario Zechner
0199abfd11 fix(binary): preload Bedrock provider module for Bun bundle
refs #1814
2026-03-04 20:47:41 +01:00
Mario Zechner
e0754fdbb3 fix(ai,coding-agent): make pi-ai browser-safe and move OAuth runtime exports
- add browser smoke bundling check to root check + pre-commit

- lazy-load Bedrock provider registration to avoid browser graph traversal

- remove top-level OAuth runtime exports from @mariozechner/pi-ai

- add @mariozechner/pi-ai/oauth subpath export and update coding-agent imports

- move proxy dispatcher init to coding-agent CLI (Node-only)

- document Bedrock/OAuth browser limitations

closes #1814
2026-03-04 20:21:25 +01:00
Mario Zechner
2af0c98b5f fix(ai): support gemini-3.1 flash-lite and thinking matching
closes #1785
2026-03-04 20:17:58 +01:00
Mario Zechner
8e157412a6 Update AGENTS.md 2026-03-04 18:06:26 +01:00
xu0o0
d4b473e298 fix(ai): respect region from profile config when AWS_PROFILE is set (#1800) 2026-03-04 08:56:06 +01:00
Abdeslam Yassine Agmar
eb9f1183ad refactor(ai): migrate mistral provider to conversations sdk 2026-03-03 17:25:50 +00:00
Mario Zechner
7b96041068 fix(ai): map groq qwen3 reasoning effort values closes #1745 2026-03-03 16:44:42 +01:00
Mario Zechner
42579dd923 feat(ai,coding-agent): add OpenCode Go provider support closes #1757 2026-03-03 16:02:29 +01:00
Mario Zechner
7bd4c45d81 fix(ai,coding-agent): update antigravity gemini 3.1 models and headers
fixes #1761
2026-03-03 14:54:43 +01:00
Mario Zechner
c65de34e11 Add [Unreleased] section for next cycle 2026-03-02 23:25:10 +01:00
Mario Zechner
105e296b69 chore(ai): update generated models data 2026-03-02 19:41:38 +01:00
Mario Zechner
edca5dd769 Add [Unreleased] section for next cycle 2026-02-27 22:26:46 +01:00
Mario Zechner
9825c13f5f fix(ai): handle redacted_thinking blocks, skip interleaved beta for adaptive models, drop temperature with thinking
- Map redacted_thinking to ThinkingContent with redacted: true instead of
  adding a new content type. The opaque payload goes in thinkingSignature,
  thinking text is set to "[Reasoning redacted]" so it renders naturally
  everywhere. Cross-model transform drops redacted blocks.
- Skip interleaved-thinking-2025-05-14 beta header for Opus 4.6 / Sonnet 4.6
  where adaptive thinking makes it deprecated/redundant.
- Do not send temperature when thinkingEnabled is true (incompatible with
  both adaptive and budget-based thinking).

Based on #1665 by @tctev
2026-02-27 21:53:25 +01:00