build(deps-dev): bump @earendil-works/pi-ai from 1.0.4 to 1.1.0
Closed
DE
1d ago+4+4+0123456789-4-4-0123456789
Bumps @earendil-works/pi-ai from 1.0.4 to 1.1.0.
Release notes
Sourced from @earendil-works/pi-ai's releases.
v1.1.0
New Features
- Program status reporting: terminals and agent dashboards that support OSC 7501 see whether Pi is working, blocked on a dialog or login, done, or failed. See Program status.
- Claude Haiku 5.5:
anthropic/claude-haiku-5-5, with adaptive thinking up toxhigh/maxeffort.- Adjust default tools with
+name/-name:--toolsentries likepi -t +codemode,-writechange the default selection instead of replacing it. See Tools.- GPT-6 Luna and image classification: OpenAI's GPT-6 Luna is available as a classifier model through the Decisions API, and codemode's
models.classify()accepts images for classifiers that support them. See Use classifier models.- Native llama.cpp decision models: Julia-1, Laya, Kev, lev, and OpenJev served by llama.cpp 0.6.0 or later run natively as classifiers through
/v1/systemone. See Classification.Added
- Added
+nameand-nameentries to--tools, which change the default tool selection instead of replacing it, for examplepi -t +codemode- Added
durationMsto the tool render context and totool_execution_endextension events: the recorded execution time of a final tool result (#10549)- Added
outputPadto the tool render context (#10557 by@rwachtler)- Added OpenAI's GPT-6 Luna as a classifier model through the Decisions API, available with
OPENAI_API_KEY(see Use classifier models)- Added
imagesto codemode'smodels.classify()context, so classifiers that accept images, such as GPT-6 Luna, can judge them- Added program status reporting with OSC 7501: terminals and agent dashboards that support it see whether Pi is working, blocked on a dialog or login, done, or failed.
PI_PROGRAM_STATUS=1|0overrides detection (see Terminal setup) (#10607)- Added
abortedtoagent_settledsession, extension, and JSON events, so integrations can tell a cancelled run from a finished one (#10607)- Added Claude Haiku 5.5 (
anthropic/claude-haiku-5-5), with adaptive thinking up toxhigh/maxeffort and prompt caching on Bedrock- Added native llama.cpp decision models: Julia-1, Laya, Kev, lev, and OpenJev served by llama.cpp 0.6.0 or later are listed only as classifiers through
/v1/systemoneinstead of as chat models (see Classification) (#10382)Changed
- Changed
outputPadto also apply to!command output, tool output, and summary blocks (#9946, #10557 by@rwachtler)- Changed
pi mcp login --timeoutto limit the whole sign-in, including requests to the authorization server, instead of only the wait for the browser (#10565)Fixed
- Fixed bash and PowerShell results losing
Tookafter reloading a session, and the liveTookincluding wall-clock steps; both now show the recorded execution time (#10549)- Fixed managed installs keeping every old release;
pi updatenow keeps only the new release and the one it updated from (#10392, #10511 by@davidbrai)- Fixed standalone binaries loading
.env,.env.local, and.env.developmentfrom the launch directory into Pi's environment (#10473)- Fixed
!!command headers losing their dim color once output arrives (#10557 by@rwachtler)- Fixed the codemode description not marking
searchTools(),describeTool(), anddescribeNamespace()as async, which led models to serialize the unawaited promise as{}(#10555)- Fixed codemode output items running together, so models could not tell where one
text()orconsole.log()output ended and the next began. With several text items, each now starts with a==> text N/M <==line, andconsolecalls follow the other output in one<console_output>block with one line per call- Fixed
/mcpwaiting for all servers to connect before opening; the manager now updates live and remains usable while enabling, reconnecting, or disabling servers (#10562)- Fixed images being dropped as "could not be resized" when running under
node --watchon Node 24.19+ and 26.x, where Node posts its own messages on the image resize worker channel (#10527)- Fixed clipboard paste doing nothing in Termux, and failed copies there omitting the Termux:API install hint (#10391)
- Fixed
!and RPCbashoutput keeping fragments of color codes, such as a straym, when a code was split across output chunks (#10504)- Fixed MCP OAuth sign-ins that could not be cancelled while waiting on the authorization server and kept running after the session ended. The sign-in screen now cancels with Esc at every step, session shutdown aborts a running sign-in, and each request to the authorization server times out after 15 seconds (#10565)
- Fixed shutdown waiting up to 15 seconds to refresh an MCP OAuth token that was about to expire, only to close the server's session (#10565)
- Fixed the fullscreen text selection surviving session switches and other transcript rebuilds, which highlighted unrelated text in the new transcript (#9311, #10567 by
@christianklotz)- Fixed OpenAI models on Bedrock ignoring the thinking level and always running at Bedrock's default reasoning effort (#9331, #10142 by
@jsanter27)- Fixed model
headersinmodels.jsonnot overriding theoriginatorandUser-Agentheaders of Codex requests (#10429 by@lucasmeijer)- Fixed
server_busyandservers are currently busyprovider errors ending the turn instead of being retried (#10543)- Fixed Mistral responses that end with
finish_reason: "error"not being retried (#10487)- Reduced context-limit request failures by estimating input at 3.5 characters per token instead of 4 when calculating output limits (#10497)
- Fixed Radius models disabled by an organization owner still being listed
- Fixed Anthropic browser login failing with "localhost refused to connect" when port 53692 is reserved or in use, for example by Hyper-V/WSL port exclusions on Windows: login now falls back to a free loopback port (#10571)
- Fixed session costs undercounting long prompts on models with prompt-length pricing tiers, such as Claude Haiku 5.5, Gemini 3.1 Pro, and GPT-5.4, through OpenCode, OpenCode Go, OpenRouter, Vercel AI Gateway, Google, MiniMax, and other providers
- Fixed Markdown links not being clickable in Herdr (#10573)
Changelog
Sourced from @earendil-works/pi-ai's changelog.
[1.1.0] - 2026-10-07
Breaking Changes
- A stream function must return an
AssistantMessageEventStream, for example fromcreateAssistantMessageEventStream(); a hand-writtenEventStream<AssistantMessageEvent, AssistantMessage>subclass no longer type-checks in its placeAdded
- Added
durationMstoAssistantMessage:AssistantMessageEventStreammeasures each response with a monotonic clock from the start of the request to its final message, for every API implementation, including direct calls. Deferred results fetched later stay untimed (#10549)- Added an optional
durationMstoToolResultMessagefor the execution time of the tool (#10549)- Added the
openai-decisionsclassifier API for OpenAI's Decisions API, withgpt-6-lunaas a classifier model of theopenaiprovider. It needs an API key, so it is not listed as available whileopenaiuses Sign in with ChatGPT- Added Claude Haiku 5.5 (
claude-haiku-5-5) to theanthropicprovider with its prompt-length pricing tier, adaptive thinking withxhigh/maxeffort, per-message effort, and mid-conversation system messages and tool changes. Bedrock requests for Haiku 5.5 use adaptive thinking, nativexhigh, and prompt caching- Added
LoginOptions.agentName, which replaces pi's name in the Sign in with ChatGPT agent name hint and the Codex browser login originator (#10433 by@lucasmeijer)- Added optional
imagestoClassifierContext. Models whoseinputincludes"image"judge them with the state;classify()returns an error result for other models and for APIs that cannot send imagesChanged
- The faux provider's prompt-cache usage estimate compares the previous and current prompt message by message and compares characters only from the first differing message; the usage numbers are unchanged.
Fixed
- Fixed
server_busyandservers are currently busyprovider errors ending the turn instead of being retried (#10543)- Fixed the error message of a failed lazy API setup, such as a module load or auth failure, using its failure time as
timestampinstead of the request start- Reduced context-limit request failures by estimating input at 3.5 characters per token instead of 4 when calculating output limits (#10497)
- Fixed Radius models disabled by an organization owner still being listed: a fetched or cached Radius catalog now replaces the shipped default catalog instead of being merged into it
- Fixed OpenAI provider type-checking with cached catalogs that contain no classifier models
- Fixed Anthropic browser login failing with "localhost refused to connect" when port 53692 is reserved or in use, for example by Hyper-V/WSL port exclusions on Windows: login now falls back to a free loopback port (#10571)
- Fixed built-in model costs missing prompt-length pricing tiers for OpenCode, OpenCode Go, OpenRouter, Vercel AI Gateway, Google, MiniMax, and other models.dev providers, which undercounted the cost of long prompts on models such as Claude Haiku 5.5, Gemini 3.1 Pro, and GPT-5.4. OpenRouter time-of-day pricing is not modeled
- Fixed Mistral responses that end with
finish_reason: "error"not being retried (#10487)- Fixed Bedrock Converse not sending the reasoning effort to OpenAI models: gpt-oss gets
reasoning_effortclamped to low/medium/high, other GPT models getreasoning.effortwithminimalsent aslow(#9331, #10142 by@jsanter27)- Fixed model and caller headers not overriding the
originatorandUser-Agentheaders ofopenai-codex-responsesrequests (#10429 by@lucasmeijer)
Commits
abe508eRelease v1.1.0a2eef9efix(ai): pin Kimi K3 Moonshot pricing and expect Haiku 5.5 adaptive thinkingdce4ae6docs: audit changelogs for v1.1.0943a10efix(ai): keep prompt-length pricing tiers from all model catalogsf76c1dbfeat(ai): add Claude Haiku 5.57fb59f9fix(ai): retry Mistral finish_reason error8d8ae2ffix(ai): fall back to a free port for Anthropic OAuth callback6b58544fix(ai): type empty OpenAI classifier catalogsce8972afeat(ai,coding-agent): add OpenAI Decisions classifier and classifier imagesfe11328fix(ai): compare faux prompt-cache usage per message- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Summary by cubic
Updates the @earendil-works/pi-ai dev dependency from 1.0.4 to 1.1.0, bringing new features and bug fixes. Note the breaking change: stream functions must now return an AssistantMessageEventStream (e.g. from createAssistantMessageEventStream()); hand-written EventStream subclasses no longer type-check. The transitive @earendil-works/pi-telemetry updates to 1.2.0.