Commit Graph

1006 Commits

Author SHA1 Message Date
David Brailovsky 2fd3868401 add usage info to branch summary, compaction and tool result entries (#6671)
* add usage info to branch summary entries

* add usage to compaction entries

* allow custom tools to report llm usage in tool results

* allow observing and patching usage in tool_result hooks

* agent-harness: save usage in entries

for compaction, branch summaries and tool results
2026-07-20 16:41:43 +02:00
Cristina Poncela Cubeiro 1942b2600f fix: env section ignored (#6864) 2026-07-20 16:20:49 +02:00
QuintinShaw bbb91fa8ae feat(ai): add Qwen Token Plan as built-in provider (#6858)
Add Alibaba Cloud Model Studio Token Plan subscription service as two
built-in API-key providers: qwen-token-plan (international, Singapore)
and qwen-token-plan-cn (China, Beijing).

Each provider exposes 15 text-generation models (Qwen, DeepSeek, GLM,
Kimi, MiniMax) via the OpenAI-compatible endpoint with DashScope
enable_thinking support. Model metadata is sourced from models.dev;
qwen3.8-max-preview is hardcoded until models.dev includes it.

Also fixes kimi-coding test references (k2p7 -> kimi-for-coding) after
models.dev catalog update picked up by generate-models.

Closes #6850
2026-07-20 13:53:30 +02:00
Cristina Poncela Cubeiro d9f7f81473 fix: tool_call_id error when switching (#6854) 2026-07-20 13:51:16 +02:00
David Brailovsky 21f92b319d run generate-models 2026-07-20 10:21:34 +00:00
David Brailovsky 8b93737078 kimi: add low,high to k3 and remove k2p7 references 2026-07-20 09:00:15 +00:00
Alexey Zaytsev 94373d815d feat(ai): add shared contentText utility (#6840)
Co-authored-by: Armin Ronacher <armin.ronacher@active-4.com>
2026-07-20 01:50:36 +02:00
Armin Ronacher 75cb0b873a fix(ai): support responses API for OpenCode Go 2026-07-20 01:28:57 +02:00
Alexey Zaytsev d2f8dafb0f fix(ai,agent,coding-agent): share UUIDv7 and use for Codex (#6834) 2026-07-20 01:23:47 +02:00
Armin Ronacher 956074697f fix(ai): replace generic record checks 2026-07-19 22:21:31 +02:00
David Brailovsky 5124c61b25 buildfix: fix tests referencing old models 2026-07-17 13:24:11 +00:00
Armin Ronacher a9f6a3159a feat(ai): separate generated model data (#6765) 2026-07-17 11:08:48 +02:00
David Brailovsky b0c2a90e51 fix(coding-agent): retry OpenAI Responses early EOF
closes #6727
2026-07-17 11:00:03 +02:00
Armin Ronacher 8881e17625 fix(ai): show implied Kimi Coding subscription costs 2026-07-17 10:01:22 +02:00
Armin Ronacher 8dc78834cd Release v0.80.10 2026-07-16 23:59:41 +02:00
Armin Ronacher b8575f60fa fix(ai): use adaptive thinking for Kimi Coding 2026-07-16 20:59:54 +02:00
Armin Ronacher aba324504c fix(ai): correct Kimi K3 Moonshot pricing 2026-07-16 20:37:48 +02:00
Armin Ronacher c1b7856e26 fix(ai): prevent removed xAI models regenerating, closes #6736 2026-07-16 20:07:36 +02:00
Armin Ronacher 78ff249436 fix(ai): expose max thinking for Kimi Coding K3
Closes #6737
2026-07-16 19:58:17 +02:00
Armin Ronacher 2d16f92973 Release v0.80.9 2026-07-16 19:17:57 +02:00
Milosz Jankiewicz a01baaaea7 feat(xai): prefilled OAuth device link, SuperGrok login label, trimmed model list (#6734)
- Use verification_uri_complete from the xAI device-code response so the
  login link opens with the user code prefilled (https-validated)
- Add OAuthAuth.loginLabel and show "Sign in with SuperGrok or X Premium"
  in the xAI auth-type selector (threaded through lazyOAuth)
- Remove grok-3, grok-3-fast, grok-4.20 variants and grok-code-fast-1
  from the built-in xAI catalog and default to grok-4.5

Co-authored-by: Jaaneek <Jaaneek@users.noreply.github.com>
2026-07-16 18:59:54 +02:00
Armin Ronacher c2c32febb0 fix(ai): correct Kimi K3 gateway output limits 2026-07-16 18:56:54 +02:00
David Brailovsky 70c5763297 add deferred tool loading for kimi-k3 2026-07-16 15:39:22 +00:00
David Brailovsky 3524cd4c85 Merge remote-tracking branch 'origin/main' into add-kimi-deferred-tools 2026-07-16 17:30:50 +02:00
David Brailovsky 6a884b4a75 add kimi-k3 2026-07-16 15:29:32 +00:00
David Brailovsky fae7176cb9 Release v0.80.8 2026-07-16 16:35:16 +02:00
Armin Ronacher 6442536b1e fix(coding-agent): bundle OAuth flows in Bun binaries 2026-07-16 15:36:16 +02:00
David Brailovsky f16b4e0cda add deferred tools support for kimi in openai-completions api 2026-07-16 12:26:56 +00:00
Armin Ronacher 97f9978fa6 feat(coding-agent): add model catalog refresh flag 2026-07-16 12:46:49 +02:00
Milosz Jankiewicz 5220aba619 feat(ai): add xAI device OAuth and route grok-4.5 through Responses (#6651)
* feat(ai): add xAI device OAuth and route grok-4.5 through Responses

Add xAI device-code OAuth alongside XAI_API_KEY. Route only grok-4.5
through Responses with low/medium/high reasoning; other xAI models stay
on Completions.

* fix(ai): tolerate xAI device-code interval 0 and correct token poll error label

---------

Co-authored-by: Jaaneek <Jaaneek@users.noreply.github.com>
2026-07-16 09:58:24 +02:00
Mario Zechner 5e336cfa80 Merge origin/main into model runtime changes 2026-07-15 13:00:45 +02:00
Mario Zechner bd9e09db44 feat(coding-agent): expose dynamic provider refresh 2026-07-15 12:56:50 +02:00
Mario Zechner cd7cad4ee2 feat(coding-agent): merge origin/main into model runtime facade 2026-07-15 12:25:36 +02:00
David Brailovsky dcfe36c797 clamp session-id to 64 chars for openai-codex (#6653)
fixes #6630
2026-07-14 21:09:29 +02:00
Armin Ronacher 818d67457c Release v0.80.7 2026-07-14 18:36:46 +02:00
Mario Zechner 9993c96907 feat(coding-agent): replace model registry with model runtime
Move provider auth and OAuth flows onto pi-ai Models, compose models.json and extension overlays through ModelRuntime, and retain ModelRegistry as an extension compatibility facade.
2026-07-14 17:48:45 +02:00
David Brailovsky 1f9e846c84 don't send session-id header to opencode openai-responses models (#6645)
fixes #6625
2026-07-14 15:57:01 +02:00
Armin Ronacher 961fa6c142 feat(ai): add Radius gateway support 2026-07-14 11:01:21 +02:00
David Brailovsky 0e6909f050 anthropic-messages: skip usage fields if empty (#6611)
fixes: #6567
2026-07-13 18:07:59 +02:00
David Brailovsky 1f0dbc008c backfill encrypted_content from response.completed for missing reasoning blocks (#6608)
fixes #6409
2026-07-13 17:27:36 +02:00
David Brailovsky f8f75544b6 pass bedrock unhandled stop reasons to error message (#6598)
fixes #6485
2026-07-13 11:39:28 +02:00
Petr Houška 298665cfb9 fix(ai): support OpenRouter session affinity (#6496)
Fixes #6366
2026-07-13 09:57:53 +02:00
Petr Houška f7b78e2a42 fix(ai): route GitHub Copilot MAI-Code models through /responses endpoint (#6544)
mai-code-1-flash-picker is not accessible via /chat/completions and
must use the Copilot /responses endpoint. Update generate-models.ts to
send mai-* models to the responses API and regenerate the affected
model entry.
2026-07-13 09:56:40 +02:00
Alexey Zaytsev eacaa130ab ai: OpenAI and Codex forced tool calls (#6588)
* feat(ai): support forced OpenAI Codex tool calls

* feat(ai): support OpenAI Responses tool choice
2026-07-13 09:48:33 +02:00
Mark Phelps bdd5c53bcd fix(ai): fall back to ambient Cloudflare account id for key-only credentials (#6292)
Cloudflare Workers AI / AI Gateway resolved provider config from the
credential only, never consulting ambient env for a field the credential
omitted. The coding-agent /login flow stores just the API key, so
CLOUDFLARE_ACCOUNT_ID lives only in the environment; the key-only credential
short-circuited the env lookup, the account id stayed unresolved, and requests
hit the literal {CLOUDFLARE_ACCOUNT_ID} base URL -> 404.

resolveValue now merges per field: prefer the credential value, fall back to
ctx.env(name).

closes #6021

Signed-off-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-07-11 14:30:40 +02:00
Armin Ronacher 850c210b77 fix(ai): filter ambient auth markers in compat dispatch 2026-07-11 13:38:48 +02:00
Rafał Krzyważnia 19fe0e01c5 fix(ai): preserve ambient AWS auth for Bedrock
Do not treat Pi’s internal ambient-auth marker as a Bedrock bearer token. This preserves SigV4 signing for AWS profiles, IAM credentials, and roles while retaining bearer authentication for real Bedrock API keys.\n\nFixes #6531
2026-07-11 13:12:23 +02:00
Armin Ronacher 3d8f74357c feat(ai): support message-anchored tool loading (#6474)
This adds cache-friendly dynamic tool loading anchored to tool results. Purely additive active-tool changes are recorded with `addedToolNames`, allowing supported Anthropic and OpenAI Responses models to load tool definitions at the point they become available instead of placing them in the cached prompt prefix.

It retains safe fallback behavior for unsupported models and non-additive changes but it will wipe caches.
2026-07-10 23:52:54 +02:00
Armin Ronacher 3ea064ea2a fix: support Bedrock API key login 2026-07-10 19:34:11 +02:00
David Brailovsky bc469b0338 add xhigh and max to all fable-5 providers (#6490)
related to #6374
2026-07-10 11:42:53 +02:00