Release v0.24.1

This commit is contained in:
Mario Zechner 2025-12-19 20:51:44 +01:00
parent de1f1cc344
commit 50b055f3ae
11 changed files with 114 additions and 85 deletions

147
package-lock.json generated
View file

@ -995,9 +995,9 @@
}
},
"node_modules/@napi-rs/canvas": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.84.tgz",
"integrity": "sha512-88FTNFs4uuiFKP0tUrPsEXhpe9dg7za9ILZJE08pGdUveMIDeana1zwfVkqRHJDPJFAmGY3dXmJ99dzsy57YnA==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.85.tgz",
"integrity": "sha512-q8VnfGv4i3/vo3hMhJQxqzy8bFQ8H6MEXyiO+a66p/Ci7HD++pRAaH1tpri3jgocHH24tJNAT59r6z04LG9VpQ==",
"license": "MIT",
"optional": true,
"workspaces": [
@ -1006,23 +1006,28 @@
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"optionalDependencies": {
"@napi-rs/canvas-android-arm64": "0.1.84",
"@napi-rs/canvas-darwin-arm64": "0.1.84",
"@napi-rs/canvas-darwin-x64": "0.1.84",
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.84",
"@napi-rs/canvas-linux-arm64-gnu": "0.1.84",
"@napi-rs/canvas-linux-arm64-musl": "0.1.84",
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.84",
"@napi-rs/canvas-linux-x64-gnu": "0.1.84",
"@napi-rs/canvas-linux-x64-musl": "0.1.84",
"@napi-rs/canvas-win32-x64-msvc": "0.1.84"
"@napi-rs/canvas-android-arm64": "0.1.85",
"@napi-rs/canvas-darwin-arm64": "0.1.85",
"@napi-rs/canvas-darwin-x64": "0.1.85",
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.85",
"@napi-rs/canvas-linux-arm64-gnu": "0.1.85",
"@napi-rs/canvas-linux-arm64-musl": "0.1.85",
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.85",
"@napi-rs/canvas-linux-x64-gnu": "0.1.85",
"@napi-rs/canvas-linux-x64-musl": "0.1.85",
"@napi-rs/canvas-win32-arm64-msvc": "0.1.85",
"@napi-rs/canvas-win32-x64-msvc": "0.1.85"
}
},
"node_modules/@napi-rs/canvas-android-arm64": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.84.tgz",
"integrity": "sha512-pdvuqvj3qtwVryqgpAGornJLV6Ezpk39V6wT4JCnRVGy8I3Tk1au8qOalFGrx/r0Ig87hWslysPpHBxVpBMIww==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.85.tgz",
"integrity": "sha512-+br7+cFkiZHTn9en+u3wtvGMW2Fn7TJE1Kru4QsOtCgIKZ9Lg9AeFCqCdkRNz/cW/0967s2pJT/B8t900pgvFQ==",
"cpu": [
"arm64"
],
@ -1036,9 +1041,9 @@
}
},
"node_modules/@napi-rs/canvas-darwin-arm64": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.84.tgz",
"integrity": "sha512-A8IND3Hnv0R6abc6qCcCaOCujTLMmGxtucMTZ5vbQUrEN/scxi378MyTLtyWg+MRr6bwQJ6v/orqMS9datIcww==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.85.tgz",
"integrity": "sha512-YPJrbThQsUDfS4z69m0xhlarbJ3BRyYx1LsVw6dotjhHywz2d7KVeFUXlJvSf+knHBV+FgZtaGEQ39MJZXn5qw==",
"cpu": [
"arm64"
],
@ -1052,9 +1057,9 @@
}
},
"node_modules/@napi-rs/canvas-darwin-x64": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.84.tgz",
"integrity": "sha512-AUW45lJhYWwnA74LaNeqhvqYKK/2hNnBBBl03KRdqeCD4tKneUSrxUqIv8d22CBweOvrAASyKN3W87WO2zEr/A==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.85.tgz",
"integrity": "sha512-Ak/h0lf3S0Yv/AqYvTHwKoVeUsxzqC2L6ZLkcLBvsYWLOqMwdtlp6lAgz82ETtJcpsY6+g2Q9Ub25QWBQu8k0Q==",
"cpu": [
"x64"
],
@ -1068,9 +1073,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.84.tgz",
"integrity": "sha512-8zs5ZqOrdgs4FioTxSBrkl/wHZB56bJNBqaIsfPL4ZkEQCinOkrFF7xIcXiHiKp93J3wUtbIzeVrhTIaWwqk+A==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.85.tgz",
"integrity": "sha512-TzOv8ZZoNJS/M374Si4jWO/CgUhceEhAwiv1hRS3rVoGuxzcAoeUVgrT0a5FiozwGvO7WavO/ewjfZaFbZ3B9w==",
"cpu": [
"arm"
],
@ -1084,9 +1089,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-arm64-gnu": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.84.tgz",
"integrity": "sha512-i204vtowOglJUpbAFWU5mqsJgH0lVpNk/Ml4mQtB4Lndd86oF+Otr6Mr5KQnZHqYGhlSIKiU2SYnUbhO28zGQA==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.85.tgz",
"integrity": "sha512-EuWX5tDk3vzL7dthAVx767LptXL6X32oiH82WU/yj4WZx0Yl7wU4PEjLBJTgNvWaWr1a8k+GB6MCkJs8NmxvrA==",
"cpu": [
"arm64"
],
@ -1100,9 +1105,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-arm64-musl": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.84.tgz",
"integrity": "sha512-VyZq0EEw+OILnWk7G3ZgLLPaz1ERaPP++jLjeyLMbFOF+Tr4zHzWKiKDsEV/cT7btLPZbVoR3VX+T9/QubnURQ==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.85.tgz",
"integrity": "sha512-rwqWTac7UQWBEvSaiRsfujo/N34JyP+SKnJM5rwzx1mEb3g1N6Qdatd2yAGAMFO2Ck7BM9hX0Q2+Rpag5z5Iqg==",
"cpu": [
"arm64"
],
@ -1116,9 +1121,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.84.tgz",
"integrity": "sha512-PSMTh8DiThvLRsbtc/a065I/ceZk17EXAATv9uNvHgkgo7wdEfTh2C3aveNkBMGByVO3tvnvD5v/YFtZL07cIg==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.85.tgz",
"integrity": "sha512-PkpO9MhVwmG6ZLCdi3GJWlon/Qyj5qb+lB+u4RMGEfCfcaaniKBoqUoMRTb2GWWbxzZaF5eVTHTpxZF6sB8ivg==",
"cpu": [
"riscv64"
],
@ -1132,9 +1137,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-x64-gnu": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.84.tgz",
"integrity": "sha512-N1GY3noO1oqgEo3rYQIwY44kfM11vA0lDbN0orTOHfCSUZTUyiYCY0nZ197QMahZBm1aR/vYgsWpV74MMMDuNA==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.85.tgz",
"integrity": "sha512-s/W7hh1n89kDIIJCAHP0PofsmfjP28QxWiEH9wEvoJAblx9u8obd6qyZf6jqh3WDoLm5Fx+upBXhA8O8GgpyDQ==",
"cpu": [
"x64"
],
@ -1148,9 +1153,9 @@
}
},
"node_modules/@napi-rs/canvas-linux-x64-musl": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.84.tgz",
"integrity": "sha512-vUZmua6ADqTWyHyei81aXIt9wp0yjeNwTH0KdhdeoBb6azHmFR8uKTukZMXfLCC3bnsW0t4lW7K78KNMknmtjg==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.85.tgz",
"integrity": "sha512-LEEkaaraB/bhKiVf7qXmyjrNXI/hRVKpBn1bQP6IQsypyJnB+Y2HmzLXAt6cht+4Lon8lGLacE76fU5hs9vUFw==",
"cpu": [
"x64"
],
@ -1163,10 +1168,26 @@
"node": ">= 10"
}
},
"node_modules/@napi-rs/canvas-win32-arm64-msvc": {
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-0.1.85.tgz",
"integrity": "sha512-w3PVRv4suL/kErNg8Roz5f/Sow/hC7LxeOeo3jTp1iPHEnp6Gn7EvDvMPhJaI5piQqQ6i2BR/4LJHA/Mapf8vw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/canvas-win32-x64-msvc": {
"version": "0.1.84",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.84.tgz",
"integrity": "sha512-YSs8ncurc1xzegUMNnQUTYrdrAuaXdPMOa+iYYyAxydOtg0ppV386hyYMsy00Yip1NlTgLCseRG4sHSnjQx6og==",
"version": "0.1.85",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.85.tgz",
"integrity": "sha512-6QqEBlJ5/rfb68ORlgNOsN+Wefx+kfMNmbzr2HxEM+M94hdBxkzvkLAfY/MxiLk3TCUBeGLFh9t0j8ZC5MKS1g==",
"cpu": [
"x64"
],
@ -6382,11 +6403,11 @@
},
"packages/agent": {
"name": "@mariozechner/pi-agent-core",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0"
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1"
},
"devDependencies": {
"@types/node": "^24.3.0",
@ -6416,7 +6437,7 @@
},
"packages/ai": {
"name": "@mariozechner/pi-ai",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.71.2",
@ -6458,12 +6479,12 @@
},
"packages/coding-agent": {
"name": "@mariozechner/pi-coding-agent",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1",
"chalk": "^5.5.0",
"cli-highlight": "^2.1.11",
"diff": "^8.0.2",
@ -6503,13 +6524,13 @@
},
"packages/mom": {
"name": "@mariozechner/pi-mom",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.16",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-coding-agent": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-coding-agent": "^0.24.1",
"@sinclair/typebox": "^0.34.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",
@ -6548,10 +6569,10 @@
},
"packages/pods": {
"name": "@mariozechner/pi",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"chalk": "^5.5.0"
},
"bin": {
@ -6564,7 +6585,7 @@
},
"packages/proxy": {
"name": "@mariozechner/pi-proxy",
"version": "0.24.0",
"version": "0.24.1",
"dependencies": {
"@hono/node-server": "^1.14.0",
"hono": "^4.6.16"
@ -6580,7 +6601,7 @@
},
"packages/tui": {
"name": "@mariozechner/pi-tui",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@types/mime-types": "^2.1.4",
@ -6624,12 +6645,12 @@
},
"packages/web-ui": {
"name": "@mariozechner/pi-web-ui",
"version": "0.24.0",
"version": "0.24.1",
"license": "MIT",
"dependencies": {
"@lmstudio/sdk": "^1.5.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1",
"docx-preview": "^0.3.7",
"jszip": "^3.10.1",
"lucide": "^0.544.0",
@ -6650,7 +6671,7 @@
},
"packages/web-ui/example": {
"name": "pi-web-ui-example",
"version": "1.12.0",
"version": "1.12.1",
"dependencies": {
"@mariozechner/mini-lit": "^0.2.0",
"@mariozechner/pi-ai": "file:../../ai",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-agent-core",
"version": "0.24.0",
"version": "0.24.1",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"type": "module",
"main": "./dist/index.js",
@ -18,8 +18,8 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0"
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1"
},
"keywords": [
"ai",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-ai",
"version": "0.24.0",
"version": "0.24.1",
"description": "Unified LLM API with automatic model discovery and provider configuration",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.24.1] - 2025-12-19
### Added
@ -10,7 +10,15 @@
### Fixed
- **Hooks wrap custom tools**: Custom tools are now executed through the hook wrapper, so `tool_call`/`tool_result` hooks can observe, block, and modify custom tool executions (consistent with hook type docs).
- **Hooks wrap custom tools**: Custom tools are now executed through the hook wrapper, so `tool_call`/`tool_result` hooks can observe, block, and modify custom tool executions (consistent with hook type docs). ([#248](https://github.com/badlogic/pi-mono/pull/248) by [@nicobailon](https://github.com/nicobailon))
- **Hook onUpdate callback forwarding**: The `onUpdate` callback is now correctly forwarded through the hook wrapper, fixing custom tool progress updates. ([#238](https://github.com/badlogic/pi-mono/pull/238) by [@nicobailon](https://github.com/nicobailon))
- **Terminal cleanup on Ctrl+C in session selector**: Fixed terminal not being properly restored when pressing Ctrl+C in the session selector. ([#247](https://github.com/badlogic/pi-mono/pull/247) by [@aliou](https://github.com/aliou))
- **OpenRouter models with colons in IDs**: Fixed parsing of OpenRouter model IDs that contain colons (e.g., `openrouter:meta-llama/llama-4-scout:free`). ([#242](https://github.com/badlogic/pi-mono/pull/242) by [@aliou](https://github.com/aliou))
- **Global AGENTS.md loaded twice**: Fixed global AGENTS.md being loaded twice when present in both `~/.pi/agent/` and the current directory. ([#239](https://github.com/badlogic/pi-mono/pull/239) by [@aliou](https://github.com/aliou))
- **Kitty keyboard protocol on Linux**: Fixed keyboard input not working in Ghostty on Linux when Num Lock is enabled. The Kitty protocol includes Caps Lock and Num Lock state in modifier values, which broke key detection. Now correctly masks out lock key bits when matching keyboard shortcuts. ([#243](https://github.com/badlogic/pi-mono/issues/243))

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-coding-agent",
"version": "0.24.0",
"version": "0.24.1",
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
"type": "module",
"piConfig": {
@ -39,9 +39,9 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1",
"chalk": "^5.5.0",
"cli-highlight": "^2.1.11",
"diff": "^8.0.2",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-mom",
"version": "0.24.0",
"version": "0.24.1",
"description": "Slack bot that delegates messages to the pi coding agent",
"type": "module",
"bin": {
@ -21,9 +21,9 @@
},
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.16",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-coding-agent": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-coding-agent": "^0.24.1",
"@sinclair/typebox": "^0.34.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi",
"version": "0.24.0",
"version": "0.24.1",
"description": "CLI tool for managing vLLM deployments on GPU pods",
"type": "module",
"bin": {
@ -34,7 +34,7 @@
"node": ">=20.0.0"
},
"dependencies": {
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-agent-core": "^0.24.1",
"chalk": "^5.5.0"
},
"devDependencies": {}

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-proxy",
"version": "0.24.0",
"version": "0.24.1",
"type": "module",
"description": "CORS and authentication proxy for pi-ai",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-tui",
"version": "0.24.0",
"version": "0.24.1",
"description": "Terminal User Interface library with differential rendering for efficient text-based applications",
"type": "module",
"main": "dist/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "pi-web-ui-example",
"version": "1.12.0",
"version": "1.12.1",
"private": true,
"type": "module",
"scripts": {

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-web-ui",
"version": "0.24.0",
"version": "0.24.1",
"description": "Reusable web UI components for AI chat interfaces powered by @mariozechner/pi-ai",
"type": "module",
"main": "dist/index.js",
@ -18,8 +18,8 @@
},
"dependencies": {
"@lmstudio/sdk": "^1.5.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.1",
"@mariozechner/pi-tui": "^0.24.1",
"docx-preview": "^0.3.7",
"jszip": "^3.10.1",
"lucide": "^0.544.0",