Release v0.24.0

This commit is contained in:
Mario Zechner 2025-12-19 05:19:27 +01:00
parent f92147ffe8
commit 16685a36ec
12 changed files with 56 additions and 54 deletions

40
package-lock.json generated
View file

@ -6382,11 +6382,11 @@
},
"packages/agent": {
"name": "@mariozechner/pi-agent-core",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-tui": "^0.23.5"
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0"
},
"devDependencies": {
"@types/node": "^24.3.0",
@ -6416,7 +6416,7 @@
},
"packages/ai": {
"name": "@mariozechner/pi-ai",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.71.2",
@ -6458,12 +6458,12 @@
},
"packages/coding-agent": {
"name": "@mariozechner/pi-coding-agent",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.23.5",
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-tui": "^0.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"chalk": "^5.5.0",
"cli-highlight": "^2.1.11",
"diff": "^8.0.2",
@ -6503,13 +6503,13 @@
},
"packages/mom": {
"name": "@mariozechner/pi-mom",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.16",
"@mariozechner/pi-agent-core": "^0.23.5",
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-coding-agent": "^0.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-coding-agent": "^0.24.0",
"@sinclair/typebox": "^0.34.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",
@ -6548,10 +6548,10 @@
},
"packages/pods": {
"name": "@mariozechner/pi",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"chalk": "^5.5.0"
},
"bin": {
@ -6564,7 +6564,7 @@
},
"packages/proxy": {
"name": "@mariozechner/pi-proxy",
"version": "0.23.5",
"version": "0.24.0",
"dependencies": {
"@hono/node-server": "^1.14.0",
"hono": "^4.6.16"
@ -6580,7 +6580,7 @@
},
"packages/tui": {
"name": "@mariozechner/pi-tui",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@types/mime-types": "^2.1.4",
@ -6624,12 +6624,12 @@
},
"packages/web-ui": {
"name": "@mariozechner/pi-web-ui",
"version": "0.23.5",
"version": "0.24.0",
"license": "MIT",
"dependencies": {
"@lmstudio/sdk": "^1.5.0",
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-tui": "^0.23.5",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"docx-preview": "^0.3.7",
"jszip": "^3.10.1",
"lucide": "^0.544.0",
@ -6650,7 +6650,7 @@
},
"packages/web-ui/example": {
"name": "pi-web-ui-example",
"version": "1.11.5",
"version": "1.12.0",
"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.23.5",
"version": "0.24.0",
"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.23.5",
"@mariozechner/pi-tui": "^0.23.5"
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0"
},
"keywords": [
"ai",

View file

@ -8,6 +8,8 @@
- **Gemini 3 Flash thinking support**: Extended thinking level support for Gemini 3 Flash models (MINIMAL, LOW, MEDIUM, HIGH) to match Pro models' capabilities. ([#212](https://github.com/badlogic/pi-mono/pull/212) by [@markusylisiurunen](https://github.com/markusylisiurunen))
- **GitHub Copilot thinking models**: Added thinking support for additional Copilot models (o3-mini, o1-mini, o1-preview). ([#234](https://github.com/badlogic/pi-mono/pull/234) by [@aadishv](https://github.com/aadishv))
### Fixed
- **Gemini tool result format**: Fixed tool result format for Gemini 3 Flash Preview which strictly requires `{ output: value }` for success and `{ error: value }` for errors. Previous format using `{ result, isError }` was rejected by newer Gemini models. Also improved type safety by removing `as any` casts. ([#213](https://github.com/badlogic/pi-mono/issues/213), [#220](https://github.com/badlogic/pi-mono/pull/220))

View file

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

View file

@ -2,6 +2,8 @@
## [Unreleased]
## [0.24.0] - 2025-12-19
### Added
- **Subagent orchestration example**: Added comprehensive custom tool example for spawning and orchestrating sub-agents with isolated context windows. Includes scout/planner/reviewer/worker agents and workflow commands for multi-agent pipelines. ([#215](https://github.com/badlogic/pi-mono/pull/215) by [@nicobailon](https://github.com/nicobailon))
@ -10,14 +12,26 @@
- **`pi.exec()` signal and timeout support**: Custom tools and hooks can now pass `{ signal, timeout }` options to `pi.exec()` for cancellation and timeout handling. The result includes a `killed` flag when the process was terminated.
- **Kitty keyboard protocol support**: Shift+Enter, Alt+Enter, Shift+Tab, Ctrl+D, and all Ctrl+key combinations now work in Ghostty, Kitty, WezTerm, and other modern terminals. ([#225](https://github.com/badlogic/pi-mono/pull/225) by [@kim0](https://github.com/kim0))
- **Dynamic API key refresh**: OAuth tokens (GitHub Copilot, Anthropic OAuth) are now refreshed before each LLM call, preventing failures in long-running agent loops where tokens expire mid-session. ([#223](https://github.com/badlogic/pi-mono/pull/223) by [@kim0](https://github.com/kim0))
- **`/hotkeys` command**: Shows all keyboard shortcuts in a formatted table.
- **Markdown table borders**: Tables now render with proper top and bottom borders.
### Changed
- **Subagent example improvements**: Parallel mode now streams updates from all tasks. Chain mode shows all completed steps during streaming. Expanded view uses proper markdown rendering with syntax highlighting. Usage footer shows turn count.
- **Skills standard compliance**: Skills now adhere to the [Agent Skills standard](https://agentskills.io/specification). Validates name (must match parent directory, lowercase, max 64 chars), description (required, max 1024 chars), and frontmatter fields. Warns on violations but remains lenient. Prompt format changed to XML structure. Removed `{baseDir}` placeholder in favor of relative paths. ([#231](https://github.com/badlogic/pi-mono/issues/231))
### Fixed
- **JSON mode stdout flush**: Fixed race condition where `pi --mode json` could exit before all output was written to stdout, causing consumers to miss final events.
- **Symlinked tools, hooks, and slash commands**: Discovery now correctly follows symlinks when scanning for custom tools, hooks, and slash commands. ([#219](https://github.com/badlogic/pi-mono/pull/219), [#232](https://github.com/badlogic/pi-mono/pull/232) by [@aliou](https://github.com/aliou))
### Breaking Changes
- **Custom tools now require `index.ts` entry point**: Auto-discovered custom tools must be in a subdirectory with an `index.ts` file. The old pattern `~/.pi/agent/tools/mytool.ts` must become `~/.pi/agent/tools/mytool/index.ts`. This allows multi-file tools to import helper modules. Explicit paths via `--tool` or `settings.json` still work with any `.ts` file.
@ -31,20 +45,6 @@
- Built-in tool details types exported: `BashToolDetails`, `ReadToolDetails`, `GrepToolDetails`, `FindToolDetails`, `LsToolDetails`, `TruncationResult`
- Type guards exported for narrowing: `isBashToolResult`, `isReadToolResult`, `isEditToolResult`, `isWriteToolResult`, `isGrepToolResult`, `isFindToolResult`, `isLsToolResult`
### Added
- **Kitty keyboard protocol support**: Shift+Enter, Alt+Enter, Shift+Tab, Ctrl+D, and all Ctrl+key combinations now work in Ghostty, Kitty, WezTerm, and other modern terminals. ([#225](https://github.com/badlogic/pi-mono/pull/225) by [@kim0](https://github.com/kim0))
- **Dynamic API key refresh**: OAuth tokens (GitHub Copilot, Anthropic OAuth) are now refreshed before each LLM call, preventing failures in long-running agent loops where tokens expire mid-session. ([#223](https://github.com/badlogic/pi-mono/pull/223) by [@kim0](https://github.com/kim0))
- **`/hotkeys` command**: Shows all keyboard shortcuts in a formatted table.
- **Markdown table borders**: Tables now render with proper top and bottom borders.
### Changed
- **Skills standard compliance**: Skills now adhere to the [Agent Skills standard](https://agentskills.io/specification). Validates name (must match parent directory, lowercase, max 64 chars), description (required, max 1024 chars), and frontmatter fields. Warns on violations but remains lenient. Prompt format changed to XML structure. Removed `{baseDir}` placeholder in favor of relative paths. ([#231](https://github.com/badlogic/pi-mono/issues/231))
## [0.23.4] - 2025-12-18
### Added

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-coding-agent",
"version": "0.23.5",
"version": "0.24.0",
"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.23.5",
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-tui": "^0.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"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.23.5",
"version": "0.24.0",
"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.23.5",
"@mariozechner/pi-ai": "^0.23.5",
"@mariozechner/pi-coding-agent": "^0.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-coding-agent": "^0.24.0",
"@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.23.5",
"version": "0.24.0",
"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.23.5",
"@mariozechner/pi-agent-core": "^0.24.0",
"chalk": "^5.5.0"
},
"devDependencies": {}

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-proxy",
"version": "0.23.5",
"version": "0.24.0",
"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.23.5",
"version": "0.24.0",
"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.11.5",
"version": "1.12.0",
"private": true,
"type": "module",
"scripts": {

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-web-ui",
"version": "0.23.5",
"version": "0.24.0",
"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.23.5",
"@mariozechner/pi-tui": "^0.23.5",
"@mariozechner/pi-ai": "^0.24.0",
"@mariozechner/pi-tui": "^0.24.0",
"docx-preview": "^0.3.7",
"jszip": "^3.10.1",
"lucide": "^0.544.0",