Commit graph

54 commits

Author SHA1 Message Date
David Brailovsky
dfb03c3283 fix(coding-agent): use claude-sonnet-4.5 in model registry tests
anthropic/claude-sonnet-4 is no longer in the OpenRouter catalog.
2026-10-15 15:27:42 +02:00
Duncan Ogilvie
76dfb88f63
feat(ai): add per-thinking-level sampling parameters (#9776) 2026-10-04 01:29:01 +02:00
Armin Ronacher
eaf72ed4d8 fix(coding-agent): update stale test expectations 2026-09-21 18:26:29 +02:00
Armin Ronacher
f5c946480c feat(ai,coding-agent): add image input limits (closes #9631) 2026-09-20 22:59:16 +02:00
Armin Ronacher
c596d09d9c
feat(coding-agent): add prompt cache warming (#9668) 2026-09-19 21:18:15 +02:00
Armin Ronacher
9e05370b29
Mid conversation system messages (#9548)
This change makes system prompt text and tool changes part of the transcript rather than silently rewriting its starting conditions. This lets Pi record when instructions changed or tools became available, restore that state after resuming or navigating branches, and preserve cached prompt prefixes where the upstream supports it.
2026-09-16 15:54:07 +02:00
David Brailovsky
b03a367a4f feat(coding-agent): allow configuring Anthropic fallback models
Allow models.json overrides to replace or disable server-side fallback metadata.

Fixes #9294
2026-09-16 10:50:24 +02:00
David Brailovsky
744a94d7d4 fix(coding-agent): use current Copilot model in registry test 2026-09-04 11:19:20 +02:00
Petr Houška
a470b121bf
fix(coding-agent): expose finish reason compatibility override (#8487)
Closes #8460
2026-08-23 23:34:30 +02:00
Armin Ronacher
ce5d98cc00 fix(coding-agent): keep unit model stores in memory 2026-08-05 16:23:31 +02:00
Duncan Ogilvie
25a2c8dcfe
Add support for generic sampling parameters (#7568) 2026-08-04 00:05:29 +02:00
Mario Zechner
fed6009cc9 fix(coding-agent): make model refresh cancellation caller-owned
Add generation-safe catalog publication, cancellable auth and storage operations, locally consistent credential mutations, and cache-first interactive model flows.
2026-08-04 00:03:52 +02:00
David Brailovsky
c1019d9202 feat(ai): add Baseten provider
Closes #7405
2026-08-03 14:33:21 +02:00
Vegard Stikbakke
a24fb9e96a
fix(coding-agent): preserve auth header deletion markers (#7539)
Fixes #7030
2026-08-03 14:28:26 +02:00
Thomas Mustier
f08f58f5f9
fix(coding-agent): run coding-agent tests offline by default (#7031) 2026-07-27 11:27:43 +02:00
Cristina Poncela Cubeiro
899fe26911
fix: flaky test (#6905)
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-21 15:53:51 +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
Mario Zechner
c6251a866b fix(coding-agent): apply modelOverrides to extension providers
closes #6367
2026-07-09 11:22:35 +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
Mario Zechner
732bb1617b Merge model-registry into main 2026-06-22 14:53:24 +02:00
Mario Zechner
abbd911693 Merge main into model-registry 2026-06-22 14:00:18 +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
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
Vegard Stikbakke
6e6ce70caf fix(ai): filter Copilot models by account availability
closes #5897
2026-06-19 13:17:13 +02:00
Armin Ronacher
7f29e7a369
feat: add provider-scoped environment overrides (#5807) 2026-06-16 17:19:08 +02:00
Armin Ronacher
9e9fc79478 fix(coding-agent): treat uppercase config values as literals
closes #5661
2026-06-13 21:24:22 +02:00
Mario Zechner
8a0903ebf2 feat(ai): compat entrypoint, core-only root barrel (phase 5)
The root barrel is now core-only and side-effect free: types,
createModels/createProvider, auth substrate, lazyStream/lazyApi, faux,
utils. Generated catalogs, api-registry, env-api-keys, images, global
stream functions, and per-API lazy wrappers leave the root.

New @earendil-works/pi-ai/compat preserves the old surface verbatim as
a strict superset of the root: api-dispatch stream/complete with env
key injection, the builtin registration side effect (skip-if-present so
it cannot clobber earlier overrides), deprecated getModel/getModels/
getProviders aliases of the new getBuiltin* reads in providers/all,
lazy api wrappers + setBedrockProviderModule, and image generation.
Compat dies with the coding-agent ModelManager migration.

Packaging: exports map gains ./compat, ./providers/*, ./api/*;
sideEffects array lists only the effectful modules.

Old-global imports across agent/coding-agent/examples and pi-ai tests
switch to /compat (path-only; compat is a superset). The coding-agent
extension loader resolves the pi-ai ROOT specifier to compat, so
existing user extensions using the old global API keep working at
runtime until compat is removed. vitest configs alias /compat to src;
browser smoke imports old globals from /compat.
2026-06-10 21:17:12 +02:00
Armin Ronacher
3e9f717445 fix(coding-agent): make config env references explicit
closes #5095
2026-05-28 11:58:38 +02:00
Mario Zechner
2e02c74dcb chore: pin dependencies and use native TypeScript 2026-05-20 12:46:17 +02:00
Mario Zechner
3e5ad67e0f chore: migrate pi packages to earendil works scope 2026-05-07 15:59:42 +02:00
Mario Zechner
80f06d3636 feat: add model thinking level metadata
closes #3208
2026-05-02 01:21:06 +02:00
Mario Zechner
cf5ec23240 feat(coding-agent): add provider display names
closes #3956
2026-04-30 00:10:38 +02:00
Aliou Diallo
39a9784d2a
fix(coding-agent): preserve models when re-registering provider with overrides only (#3651)
Previously, registerProvider() overwrote the stored config for a provider,
so a models registration followed by a baseUrl/headers-only override lost
the models. After refresh(), only the override-only config was replayed,
causing extension-provided models to disappear.

Added upsertRegisteredProvider() that merges defined fields into the
existing stored config instead of replacing it. Fields absent from the
incoming config are preserved from the stored config.

Also adds regression tests for dynamic provider override persistence
across refresh.
2026-04-24 20:15:35 +02:00
Armin Ronacher
39db145495 fix(coding-agent): show models.json auth in login selector 2026-04-24 17:28:40 +02:00
Mario Zechner
4cd4cfd98e fix(ai): support long cache retention compat
closes #3543
2026-04-23 23:43:34 +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
b4f9b618d3 fix(coding-agent): allow headers-only model overrides closes #3538 2026-04-22 13:26:01 +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
Aliou Diallo
ec4d413fc9
fix(coding-agent): custom models for built-in providers and list-models error surfacing (#3072)
* fix(coding-agent): surface models.json load errors on stderr in --list-models

When models.json has validation errors, --list-models silently
discarded custom models and overrides without any user-visible
feedback. Now prints the error to stderr via chalk.yellow warning
before listing available models.

* fix(coding-agent): allow custom models for built-in providers in models.json

Built-in providers (openrouter, anthropic, etc.) already have api and
baseUrl on every model, and auth comes from env vars / auth storage.
Relax validation so custom models under built-in providers don't need
redundant baseUrl, apiKey, or api fields. Inherit them from the first
built-in model for that provider.

fixes #2921

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-04-14 20:32:18 +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
7a786d88aa fix(coding-agent): resolve models.json auth per request closes #1835 2026-03-27 00:47:40 +01:00
Mario Zechner
e0f85a3b5e fix(coding-agent): avoid blocking footer branch refresh and isolate invalid extension provider registrations closes #2418 closes #2431 2026-03-19 21:40:55 +01:00
badlogic
4f81c3c28d fix(coding-agent,tui): stabilize windows shell/path handling
fixes #1775

fixes #1769
2026-03-14 05:36:21 +01:00
Mario Zechner
bdf2419ac3 fix(coding-agent): honor provider compat in models.json closes #2062 2026-03-14 04:55:03 +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
1912f0336b fix(coding-agent): allow model-level baseUrl override in models.json closes #1777 2026-03-03 15:46:58 +01:00
Mario Zechner
2f55890452 fix(coding-agent,ai): finalize provider unregister lifecycle and dependency security updates fixes #1669 2026-02-27 21:00:25 +01:00
Mario Zechner
2977c14917 refactor(coding-agent): move auth storage to backend abstraction 2026-02-17 19:57:21 +01:00
Mario Zechner
76a6a74517 feat(coding-agent): merge custom models with built-ins by id 2026-02-06 19:15:26 +01:00
Mario Zechner
2f1ab3641f fix(coding-agent): document modelOverrides and harden override merging fixes #1062 2026-02-06 18:54:29 +01:00