Commit graph

603 commits

Author SHA1 Message Date
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
Mario Zechner
3da591ab74 feat(coding-agent): add Hugging Face llama search
Some checks failed
CI / build-check-test (push) Has been cancelled
2026-07-17 17:13:39 +02:00
Mario Zechner
f1a466b19d feat(coding-agent): add llama.cpp router integration 2026-07-17 16:25:00 +02:00
David Brailovsky
64f83c85d9 fix(coding-agent): support all-argument prompt defaults closes #6695
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-17 13:52:32 +02:00
Mario Zechner
019e4ad687 feat(coding-agent): accept native extension providers
Allow extensions to register complete pi-ai Provider objects while preserving models.json composition and resolved provider auth access.

Refs #4823 and #4824.
2026-07-17 10:58:48 +02:00
Mario Zechner
58575888f5 docs(coding-agent): fix obsolete extension UI examples closes #6735 2026-07-17 09:36:59 +02: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
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
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
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
Petr Houška
298665cfb9
fix(ai): support OpenRouter session affinity (#6496)
Fixes #6366
2026-07-13 09:57:53 +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
d7a48d30a0 fix(coding-agent): fall back to text clipboard paste 2026-07-10 21:46:15 +02:00
Armin Ronacher
3b686ac224 feat(coding-agent): add message copy shortcut 2026-07-10 21:35:53 +02:00
Armin Ronacher
3ea064ea2a fix: support Bedrock API key login 2026-07-10 19:34:11 +02:00
Aaron Ky-Riesenbach
1a2542b11b
feat(coding-agent): expand ~ in shellPath setting (#6470)
getShellPath() now runs the configured shellPath through the existing
normalizePath() helper, mirroring getSessionDir(). This lets shellPath
point at a home-directory-relative shell wrapper (e.g.
~/.local/bin/agent-shell-sandbox) and resolves consistently across
machines and OSes with different home directories.

refs #6458
2026-07-09 23:23:06 +02:00
Armin Ronacher
a9ecf301fb feat(ai): add input-based pricing tiers 2026-07-09 22:44:29 +02:00
Mario Zechner
fbdd46389c feat(ai): add max thinking level 2026-07-09 22:30:53 +02:00
Armin Ronacher
3f9aa5d10b
feat(coding-agent): add prompt cache miss tracking (#6427)
Detect prompt cache misses per turn by comparing each assistant message's
cache reads against the previous request's prompt tokens (core/cache-stats.ts).
Significant misses emit a warning-colored transcript notice at the turn they
occur, noting idle gaps past the cache TTL and model switches when relevant.

/session gained cache statistics: a compact token/cache breakdown with hit
rate, a $-prefixed cost section with per-model cost breakdown, and the
cumulative cost re-billed due to cache misses.
2026-07-09 14:12:57 +02:00
Mario Zechner
e9fa5a68a1 fix(coding-agent): add settled agent lifecycle event
closes #6363
2026-07-09 12:42:08 +02:00
Mario Zechner
1ffca0f2aa fix(coding-agent): align reload descriptions
closes #6395
2026-07-09 11:47:44 +02:00
Mario Zechner
c6251a866b fix(coding-agent): apply modelOverrides to extension providers
closes #6367
2026-07-09 11:22:35 +02:00
Mat
244f1deaf1
feat(coding-agent): add before_provider_headers extension hook (#6350)
* feat(coding-agent): add before_provider_headers extension hook

Extensions can already rewrite the request payload through before_provider_request, but there is no way to adjust the outgoing HTTP
headers of a provider call. This hook fills that gap for cases like request tracing, session correlation, or tenant routing.

Handlers mutate the headers map in place - a null value deletes a header - and the return value is ignored, so a handler cannot accidentally drop auth or attribution headers by
forgetting to spread.

* docs(coding-agent): document before_provider_headers extension hook

Add the before_provider_headers section and lifecycle-diagram entry to
extensions.md; drop the now-superseded proposal file.
2026-07-06 22:35:56 +02:00
Victor Araújo
b3dff19a04
feat(coding-agent): add InlineExtension type for named inline extension factories (#6267)
* feat(coding-agent): add InlineExtension type for named inline extension factories

* test(coding-agent): update utilities and add regression test for InlineExtension
2026-07-06 20:59:37 +02:00
Armin Ronacher
c8ada4e76e
Improve project-local pi config (#6309)
* feat(coding-agent): improve config resource overrides

* fix(coding-agent): simplify config resource overrides
2026-07-06 20:50:30 +02:00
Mario Zechner
ba10b60b51 fix(coding-agent): add entry renderers for session entries 2026-07-01 11:30:26 +02:00
Vegard Stikbakke
040f0a5197 feat(coding-agent): expose model resolution helpers
closes #6201
2026-07-01 10:22:35 +02:00
Mario Zechner
9be55bc773 fix(coding-agent): apply output padding to user messages
Some checks failed
CI / build-check-test (push) Has been cancelled
closes #6168
2026-06-30 11:55:40 +02:00
Alexey Zaytsev
6564d94717
feat(coding-agent): add configurable assistant output padding
Closes #6168
2026-06-30 11:44:34 +02:00
Alexey Zaytsev
726a9c526c fix(coding-agent): emit session name changes to extensions 2026-06-30 00:40:15 -05:00
Mario Zechner
234c2ad54c
Merge pull request #6078 from geraschenko/rpc-get-entries-tree
feat(coding-agent): add get_entries and get_tree RPC commands
2026-06-28 17:46:26 +02:00
Armin Ronacher
5a073885b5 feat(coding-agent): add external editor setting
Some checks are pending
CI / build-check-test (push) Waiting to run
Closes #6122
2026-06-27 23:57:46 +02:00
Anton Geraschenko
7ba1b6bfef feat(coding-agent): add get_entries and get_tree RPC commands
Adds two read-only RPC commands exposing existing SessionManager reads:

- get_entries: all session entries in append order, with optional since-entry-id cursor (strictly-after semantics, error on unknown id), plus current leafId.
- get_tree: getTree() roots plus current leafId.

Since sessions are append-only trees with stable entry ids, an entry id is a durable cursor: external orchestrators can use these commands to catch up after a restart without losing pre-compaction history, and can observe branch structure (/tree jumps, abandoned branches) that get_messages hides.
2026-06-25 09:38:35 -07:00
Konstantin Gukov
e3dcb244f8 Support modern Microsoft Foundry Responses API endpoints:
- support *.ai.azure.com endpoints
- normalize away the /responses postfix in the query path which by
  default is added on Microsoft Foundry UI
2026-06-23 15:38:43 +02:00
Armin Ronacher
ce6a67fc94 fix(coding-agent): allow custom providers to use stored auth
closes #5953
2026-06-23 11:52:31 +02:00
Armin Ronacher
3b56134694 fix(tui): bind ctrl+j as newline by default 2026-06-22 13:57:02 +02:00
Armin Ronacher
4f71b2d3b7 fix(coding-agent): clarify ZAI Coding Plan label
closes #5965
2026-06-22 13:04:08 +02:00
Armin Ronacher
b7908b4974 docs(coding-agent): document slash command table
closes #5959
2026-06-22 10:37:46 +02:00
Enrico
5b9b70d29c
feat(coding-agent): add compaction reason and willRetry to extension compact events (#5962)
session_before_compact and session_compact now carry
reason ("manual" | "threshold" | "overflow") and willRetry, matching
what the RPC protocol already exposes via auto_compaction_start/end.
Extensions can now distinguish manual /compact from threshold
auto-compaction and overflow recovery through the public API instead
of monkeypatching AgentSession internals.
2026-06-22 10:36:16 +02:00
Armin Ronacher
a61137a661 docs(coding-agent): fix plan-mode docs links
closes #5957
2026-06-22 08:41:29 +02:00
Armin Ronacher
8b97e75c6b feat(ai): add chat-template thinking compat
Some checks are pending
CI / build-check-test (push) Waiting to run
closes #5673
2026-06-19 23:34:17 +02:00
Armin Ronacher
c60f6a8ab3 feat(coding-agent): expose post-compaction token estimates
closes #5877
2026-06-18 23:01:10 +02:00
Armin Ronacher
aae62dfa87 feat(coding-agent): make bare update self-only 2026-06-18 18:09:03 +02:00
Armin Ronacher
d0b46764b1
feat(coding-agent): add automatic theme mode (#5874) 2026-06-18 17:13:47 +02:00
Diego de Oliveira
7a14325b24
feat(tui): detect Warp terminal and enable Kitty image protocol (#5841)
Some checks are pending
CI / build-check-test (push) Waiting to run
Warp supports the Kitty graphics protocol and OSC 8 hyperlinks,
but pi's terminal-image capability detection did not recognize it.
Add detection via TERM_PROGRAM=WarpTerminal, WARP_SESSION_ID,
and WARP_TERMINAL_SESSION_UUID so images render inline without
requiring the TERM_PROGRAM=kitty workaround.

Fixes #5827
2026-06-18 10:45:51 +02:00
Vegard Stikbakke
008c76f955 feat(coding-agent): export project config dir name 2026-06-18 10:27:11 +02:00
Armin Ronacher
910508595a feat(coding-agent): add settings http proxy
closes #5790
2026-06-16 18:53:19 +02:00