Commit graph

4121 commits

Author SHA1 Message Date
Armin Ronacher
24bace27cf
feat(ai): support constrained sampling (#6341)
Add the constrained sampling API and provider plumbing for OpenAI and Anthropic tool calls, including grammar sampling variants and model capability metadata.
2026-07-23 23:48:40 +02:00
Armin Ronacher
ec1a87e856 fix(coding-agent): require protobufjs 7.6.5, closes #7005 2026-07-23 23:16:07 +02:00
Christian Klotz
6abb4b0640
fix(coding-agent): use llama context for output limit (#7034)
Fixes #6994.
2026-07-23 23:06:03 +02:00
Thomas Mustier
241431c69b
fix(agent,ai): don't cache write compaction or branch summaries (#6618)
avoid cache writes for compaction and branch summaries

Co-authored-by: Armin Ronacher <armin.ronacher@active-4.com>
2026-07-23 23:03:23 +02:00
David Brailovsky
ab55c15fbd
Merge pull request #7016 from earendil-works/fix/bundled-models-generated-time
fix bundled models generation time
2026-07-23 15:42:22 +02:00
David Brailovsky
bc3d364742 fix bundled models generation time
Fresh package installs could give bundled model catalog
files newer filesystem mtimes than the remote catalog’s Last-Modified timestamp,
causing Pi to ignore newer remote models.
Use the catalog’s recorded generation time instead of installation-dependent file metadata.
2026-07-23 13:34:51 +00:00
Anantha Kumaran
fc85bdd88b
feat(coding-agent): emit bash_execution_update events (#6971) 2026-07-23 12:28:12 +02:00
Petr Houška
7af8533c6f
fix(ai): make provider retries abortable (#6980)
Replace OpenAI and Anthropic SDK retries with local request retries that
preserve configured retry counts, enforce maxRetryDelayMs, and make retry
backoff interruptible through AbortSignal.

Alternatives considered: Racing SDK requests against AbortSignal would make
cancellation observable but would not let Pi enforce maxRetryDelayMs before
the SDK enters its retry sleep. Patching private SDK internals would be brittle,
while disabling provider retries entirely would ignore explicitly configured
maxRetries.

Also, align the custom OpenAI Codex retry loop with the documented
maxRetryDelayMs behavior. Oversized server-requested delays now fail immediately
instead of being clamped, allowing the visible, abortable agent-level retry
policy to handle the failure.

Fixes #6911
2026-07-23 12:25:37 +02:00
David Brailovsky
da8dd87260 fix(coding-agent): resolve bracketed scoped model ids as literals
fixes #6210
2026-07-23 08:23:24 +00:00
Armin Ronacher
9b3a205917 fix(coding-agent): isolate summarization requests 2026-07-22 23:54:57 +02:00
Armin Ronacher
ecb9410c5c fix(coding-agent): let manual updates bypass skip check
closes #6977
2026-07-22 20:53:35 +02:00
Armin Ronacher
bb3d7d399c
feat(coding-agent): expose session metadata to bash tools (#6967) 2026-07-22 20:15:02 +02:00
David Brailovsky
c55ae2faa5
fix(coding-agent): display path of sibling dependent extensions (#6964)
fixes: #6619
2026-07-22 16:08:21 +02:00
Christian Klotz
75e6123aba
fix(coding-agent): speed up external editor launch (#6903)
Some checks are pending
CI / build-check-test (push) Waiting to run
* fix(coding-agent): speed up external editor launch

Fixes #6774

* refactor(coding-agent): clarify external editor handling

* refactor(coding-agent): simplify external editor result

* refactor(coding-agent): model external editor lifecycle

* fix(coding-agent): rename external editor test fake

* fix(coding-agent): secure external editor temp files

* fix(coding-agent): simplify external editor temp path

* fix(coding-agent): restore system temp editor files
2026-07-22 15:49:01 +02:00
Saryev Rustam
7b52cef2e6
feat(ai): add OpenRouter OAuth support (#6927)
Closes #6814
2026-07-22 15:48:39 +02:00
David Brailovsky
fe42ba5b38
write tui debug/crash logs into the configured pi agent dir (#6958)
fixes #6652
2026-07-22 15:48:25 +02:00
Mario Zechner
2d0b2294cd feat(agent): merge main into agent-harness-tools 2026-07-22 11:56:35 +02:00
Mario Zechner
6f95a33888 fix(ai): enable cache control for OpenRouter aliases
closes #6940
2026-07-22 11:46:21 +02:00
Christian Klotz
33e40c3e15
fix(ai): retry DNS transport failures (#6946)
Fixes #6904
2026-07-22 11:26:19 +02:00
Mario Zechner
dd6bea41ef Add [Unreleased] section for next cycle 2026-07-21 18:40:11 +02:00
Mario Zechner
20be4b18d4 Release v0.81.1 2026-07-21 18:40:08 +02:00
Mario Zechner
b9e5c5d941 fix(agent): restore streamFn extension compatibility
Keep streamFn required for typed callers while preserving the legacy runtime fallback for extensions that omit it.\n\nfixes #6915
2026-07-21 18:37:07 +02:00
Armin Ronacher
b142504125 fix(coding-agent): defer catalog refresh until after TUI startup 2026-07-21 18:25:38 +02:00
David Brailovsky
7540da4016 add docs for new event types 2026-07-21 15:40:11 +00:00
David Brailovsky
ceac988635 Merge remote-tracking branch 'origin/main' into fix/issue-6647-retry-summary-requests-2 2026-07-21 17:15:54 +02:00
Mario Zechner
37eb243d26 feat(agent): add AgentHarness execution tools 2026-07-21 17:03:28 +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
3dcb411e89 Add [Unreleased] section for next cycle 2026-07-21 15:28:05 +02:00
Mario Zechner
9c480b6ad2 Release v0.81.0 2026-07-21 15:28:05 +02:00
Mario Zechner
c901d9a877 docs: audit unreleased changelogs 2026-07-21 14:47:00 +02:00
Mario Zechner
864b35c462 fix(coding-agent): show llama download progress 2026-07-21 14:25:10 +02:00
David Brailovsky
162179af5a add branch/compact retries to agent-harness 2026-07-21 12:11:39 +00:00
David Brailovsky
8e53e0e49c compaction & branch summarization follow retry policy
fixes #6647

compaction (auto & manual) and branch summarization retry on transient failures.
use the same retry policy from settings.
emit events for the tui to show indication of retries
2026-07-21 10:07:20 +00:00
Cristina Poncela Cubeiro
9e7582aa03
feat: sqlite session storage (#6594)
This PR:

- Adds retainedTail to compaction entries in the new agent harness so we don't have to walk up the tree for the 2000 tokens before compaction,
- Changes getPathToRoot to getPathToRootOrCompaction to only load until last compaction, as unnecessary to access all nodes where it is called,
- Adds a SQLite storage backend, in a separate packages/session-backend-sqlite, with a migration system and schemas as per on-site discussions: sessions to match session header messages (except for metadata, which I couldn't understand what it's used for or where it gets written, so I omitted it), session_entries for shared entry types as columns plus payload as a json for what remains, session_sequences to represent the append-only, serialized nature of the jsonl files, branch_entries to attribute nodes to branches (relationship one-to-many), and session_materialized with the session info (see /session in TUI) to act as a "cache" or quick-access for costs, message count, token info, labels, session name, and model-thinking-level config (e.g. for fast resume).
- This is compatible with the new agent harness Session abstraction.
2026-07-21 11:36:31 +02:00
Armin Ronacher
54fad505b9 fix(coding-agent): prefer newer generated model catalogs 2026-07-21 11:11:08 +02:00
David Brailovsky
31dc078bf8 update brace-expansion version 2026-07-21 06:07:44 +00:00
Mario Zechner
1235c0ec64 fix(agent): decouple agent streams from compat
closes #6851
2026-07-20 17:54:36 +02:00
Mario Zechner
c889eb8809 fix(coding-agent): defer startup model catalog refresh 2026-07-20 17:13:06 +02:00
Mario Zechner
f8b74a4507 fix: complete extension usage accounting
closes #6509
2026-07-20 17:06:22 +02:00
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
c179395218
feat: get_available_thinking_levels rpc (#6865) 2026-07-20 16:29:10 +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
David Brailovsky
9e7fce70a3
export missing message and tool execution event types (#6772)
fixes #6687
2026-07-20 13:09:12 +02:00
David Brailovsky
84fb69c958 update npm shrinkwrap 2026-07-20 10:21:58 +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
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
f1c587dde3 fix(coding-agent): avoid duplicate session reads
fixes #6793
2026-07-19 20:18:49 +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