Release v0.81.0

This commit is contained in:
Mario Zechner
2026-07-21 15:27:11 +02:00
parent 3f1762cc7d
commit 9c480b6ad2
26 changed files with 131 additions and 110 deletions
+22 -33
View File
@@ -786,10 +786,6 @@
"resolved": "packages/agent", "resolved": "packages/agent",
"link": true "link": true
}, },
"node_modules/@earendil-works/pi-storage-sqlite-node": {
"resolved": "packages/storage/sqlite-node",
"link": true
},
"node_modules/@earendil-works/pi-ai": { "node_modules/@earendil-works/pi-ai": {
"resolved": "packages/ai", "resolved": "packages/ai",
"link": true "link": true
@@ -802,6 +798,10 @@
"resolved": "packages/server", "resolved": "packages/server",
"link": true "link": true
}, },
"node_modules/@earendil-works/pi-storage-sqlite-node": {
"resolved": "packages/storage/sqlite-node",
"link": true
},
"node_modules/@earendil-works/pi-tui": { "node_modules/@earendil-works/pi-tui": {
"resolved": "packages/tui", "resolved": "packages/tui",
"link": true "link": true
@@ -1573,7 +1573,6 @@
"resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
"integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"engines": { "engines": {
"node": ">=8.0.0" "node": ">=8.0.0"
} }
@@ -2651,7 +2650,6 @@
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"esbuild": "bin/esbuild" "esbuild": "bin/esbuild"
}, },
@@ -4721,7 +4719,6 @@
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -4760,7 +4757,6 @@
"integrity": "sha512-TvncJykhxAzFCk0VQZKBTClall4Pm7qXDSodb6uxi8QFa8X8mT6ABjxxsQ2opDRYxG7AzcRWXaFtruz5HJKuWg==", "integrity": "sha512-TvncJykhxAzFCk0VQZKBTClall4Pm7qXDSodb6uxi8QFa8X8mT6ABjxxsQ2opDRYxG7AzcRWXaFtruz5HJKuWg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"esbuild": "~0.28.0" "esbuild": "~0.28.0"
}, },
@@ -4841,7 +4837,6 @@
"integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"picomatch": "^4.0.4", "picomatch": "^4.0.4",
@@ -5031,7 +5026,6 @@
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"funding": { "funding": {
"url": "https://github.com/sponsors/colinhacks" "url": "https://github.com/sponsors/colinhacks"
} }
@@ -5047,10 +5041,10 @@
}, },
"packages/agent": { "packages/agent": {
"name": "@earendil-works/pi-agent-core", "name": "@earendil-works/pi-agent-core",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"
@@ -5071,7 +5065,6 @@
"integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.16.0"
} }
@@ -5082,7 +5075,6 @@
"integrity": "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==", "integrity": "sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@bcoe/v8-coverage": "^1.0.2", "@bcoe/v8-coverage": "^1.0.2",
"@vitest/utils": "4.1.9", "@vitest/utils": "4.1.9",
@@ -5288,7 +5280,6 @@
"integrity": "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==", "integrity": "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@vitest/expect": "4.1.9", "@vitest/expect": "4.1.9",
"@vitest/mocker": "4.1.9", "@vitest/mocker": "4.1.9",
@@ -5402,7 +5393,7 @@
}, },
"packages/ai": { "packages/ai": {
"name": "@earendil-works/pi-ai", "name": "@earendil-works/pi-ai",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.91.1", "@anthropic-ai/sdk": "0.91.1",
@@ -5435,7 +5426,6 @@
"integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.16.0"
} }
@@ -5709,12 +5699,12 @@
}, },
"packages/coding-agent": { "packages/coding-agent": {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.80.10", "@earendil-works/pi-agent-core": "^0.81.0",
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"@earendil-works/pi-tui": "^0.80.10", "@earendil-works/pi-tui": "^0.81.0",
"@silvia-odwyer/photon-node": "0.3.4", "@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2", "chalk": "5.6.2",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
@@ -5755,32 +5745,32 @@
}, },
"packages/coding-agent/examples/extensions/custom-provider-anthropic": { "packages/coding-agent/examples/extensions/custom-provider-anthropic": {
"name": "pi-extension-custom-provider-anthropic", "name": "pi-extension-custom-provider-anthropic",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.52.0" "@anthropic-ai/sdk": "0.52.0"
} }
}, },
"packages/coding-agent/examples/extensions/custom-provider-gitlab-duo": { "packages/coding-agent/examples/extensions/custom-provider-gitlab-duo": {
"name": "pi-extension-custom-provider-gitlab-duo", "name": "pi-extension-custom-provider-gitlab-duo",
"version": "0.80.10" "version": "0.81.0"
}, },
"packages/coding-agent/examples/extensions/gondolin": { "packages/coding-agent/examples/extensions/gondolin": {
"name": "pi-extension-gondolin", "name": "pi-extension-gondolin",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"@earendil-works/gondolin": "0.12.0" "@earendil-works/gondolin": "0.12.0"
} }
}, },
"packages/coding-agent/examples/extensions/sandbox": { "packages/coding-agent/examples/extensions/sandbox": {
"name": "pi-extension-sandbox", "name": "pi-extension-sandbox",
"version": "1.10.10", "version": "1.11.0",
"dependencies": { "dependencies": {
"@anthropic-ai/sandbox-runtime": "0.0.26" "@anthropic-ai/sandbox-runtime": "0.0.26"
} }
}, },
"packages/coding-agent/examples/extensions/with-deps": { "packages/coding-agent/examples/extensions/with-deps": {
"name": "pi-extension-with-deps", "name": "pi-extension-with-deps",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"ms": "2.1.3" "ms": "2.1.3"
}, },
@@ -5803,7 +5793,6 @@
"integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.16.0"
} }
@@ -6077,10 +6066,10 @@
}, },
"packages/server": { "packages/server": {
"name": "@earendil-works/pi-server", "name": "@earendil-works/pi-server",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-coding-agent": "^0.80.10" "@earendil-works/pi-coding-agent": "^0.81.0"
}, },
"bin": { "bin": {
"server": "dist/cli.js" "server": "dist/cli.js"
@@ -6094,11 +6083,11 @@
}, },
"packages/storage/sqlite-node": { "packages/storage/sqlite-node": {
"name": "@earendil-works/pi-storage-sqlite-node", "name": "@earendil-works/pi-storage-sqlite-node",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.80.10", "@earendil-works/pi-agent-core": "^0.81.0",
"@earendil-works/pi-ai": "^0.80.10" "@earendil-works/pi-ai": "^0.81.0"
}, },
"engines": { "engines": {
"node": ">=22.19.0" "node": ">=22.19.0"
@@ -6106,7 +6095,7 @@
}, },
"packages/tui": { "packages/tui": {
"name": "@earendil-works/pi-tui", "name": "@earendil-works/pi-tui",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"get-east-asian-width": "1.6.0", "get-east-asian-width": "1.6.0",
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### Breaking Changes ### Breaking Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-agent-core", "name": "@earendil-works/pi-agent-core",
"version": "0.80.10", "version": "0.81.0",
"description": "General-purpose agent with transport abstraction, state management, and attachment support", "description": "General-purpose agent with transport abstraction, state management, and attachment support",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
@@ -29,7 +29,7 @@
"prepublishOnly": "npm run build" "prepublishOnly": "npm run build"
}, },
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### Added ### Added
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-ai", "name": "@earendil-works/pi-ai",
"version": "0.80.10", "version": "0.81.0",
"description": "Unified LLM API with automatic model discovery and provider configuration", "description": "Unified LLM API with automatic model discovery and provider configuration",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### New Features ### New Features
@@ -1,12 +1,12 @@
{ {
"name": "pi-extension-custom-provider", "name": "pi-extension-custom-provider",
"version": "0.80.10", "version": "0.81.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pi-extension-custom-provider", "name": "pi-extension-custom-provider",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "^0.52.0" "@anthropic-ai/sdk": "^0.52.0"
} }
@@ -1,7 +1,7 @@
{ {
"name": "pi-extension-custom-provider-anthropic", "name": "pi-extension-custom-provider-anthropic",
"private": true, "private": true,
"version": "0.80.10", "version": "0.81.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"clean": "echo 'nothing to clean'", "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
{ {
"name": "pi-extension-custom-provider-gitlab-duo", "name": "pi-extension-custom-provider-gitlab-duo",
"private": true, "private": true,
"version": "0.80.10", "version": "0.81.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"clean": "echo 'nothing to clean'", "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
{ {
"name": "pi-extension-gondolin", "name": "pi-extension-gondolin",
"version": "0.80.10", "version": "0.81.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pi-extension-gondolin", "name": "pi-extension-gondolin",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"@earendil-works/gondolin": "0.12.0" "@earendil-works/gondolin": "0.12.0"
} }
@@ -1,7 +1,7 @@
{ {
"name": "pi-extension-gondolin", "name": "pi-extension-gondolin",
"private": true, "private": true,
"version": "0.80.10", "version": "0.81.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"clean": "echo 'nothing to clean'", "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
{ {
"name": "pi-extension-sandbox", "name": "pi-extension-sandbox",
"version": "1.10.10", "version": "1.11.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pi-extension-sandbox", "name": "pi-extension-sandbox",
"version": "1.10.10", "version": "1.11.0",
"dependencies": { "dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.26" "@anthropic-ai/sandbox-runtime": "^0.0.26"
} }
@@ -1,7 +1,7 @@
{ {
"name": "pi-extension-sandbox", "name": "pi-extension-sandbox",
"private": true, "private": true,
"version": "1.10.10", "version": "1.11.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"clean": "echo 'nothing to clean'", "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
{ {
"name": "pi-extension-with-deps", "name": "pi-extension-with-deps",
"version": "0.80.10", "version": "0.81.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pi-extension-with-deps", "name": "pi-extension-with-deps",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"ms": "^2.1.3" "ms": "^2.1.3"
}, },
@@ -1,7 +1,7 @@
{ {
"name": "pi-extension-with-deps", "name": "pi-extension-with-deps",
"private": true, "private": true,
"version": "0.80.10", "version": "0.81.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"clean": "echo 'nothing to clean'", "clean": "echo 'nothing to clean'",
+17 -19
View File
@@ -1,14 +1,14 @@
{ {
"name": "@earendil-works/pi-coding-agent-install", "name": "@earendil-works/pi-coding-agent-install",
"version": "0.80.10", "version": "0.81.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@earendil-works/pi-coding-agent-install", "name": "@earendil-works/pi-coding-agent-install",
"version": "0.80.10", "version": "0.81.0",
"dependencies": { "dependencies": {
"@earendil-works/pi-coding-agent": "0.80.10" "@earendil-works/pi-coding-agent": "0.81.0"
}, },
"engines": { "engines": {
"node": ">=22.19.0" "node": ">=22.19.0"
@@ -450,11 +450,11 @@
} }
}, },
"node_modules/@earendil-works/pi-agent-core": { "node_modules/@earendil-works/pi-agent-core": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"
@@ -464,8 +464,8 @@
} }
}, },
"node_modules/@earendil-works/pi-ai": { "node_modules/@earendil-works/pi-ai": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.91.1", "@anthropic-ai/sdk": "0.91.1",
@@ -488,13 +488,13 @@
} }
}, },
"node_modules/@earendil-works/pi-coding-agent": { "node_modules/@earendil-works/pi-coding-agent": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.80.10", "@earendil-works/pi-agent-core": "^0.81.0",
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"@earendil-works/pi-tui": "^0.80.10", "@earendil-works/pi-tui": "^0.81.0",
"@silvia-odwyer/photon-node": "0.3.4", "@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2", "chalk": "5.6.2",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
@@ -522,8 +522,8 @@
} }
}, },
"node_modules/@earendil-works/pi-tui": { "node_modules/@earendil-works/pi-tui": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"get-east-asian-width": "1.6.0", "get-east-asian-width": "1.6.0",
@@ -775,8 +775,7 @@
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
"node": ">=8.0.0" "node": ">=8.0.0"
}, }
"peer": true
}, },
"node_modules/@opentelemetry/semantic-conventions": { "node_modules/@opentelemetry/semantic-conventions": {
"version": "1.41.1", "version": "1.41.1",
@@ -1820,8 +1819,7 @@
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/colinhacks" "url": "https://github.com/sponsors/colinhacks"
}, }
"peer": true
}, },
"node_modules/zod-to-json-schema": { "node_modules/zod-to-json-schema": {
"version": "3.25.2", "version": "3.25.2",
@@ -1,10 +1,10 @@
{ {
"name": "@earendil-works/pi-coding-agent-install", "name": "@earendil-works/pi-coding-agent-install",
"version": "0.80.10", "version": "0.81.0",
"private": true, "private": true,
"description": "Lockfile root used by the Pi installer and updater.", "description": "Lockfile root used by the Pi installer and updater.",
"dependencies": { "dependencies": {
"@earendil-works/pi-coding-agent": "0.80.10" "@earendil-works/pi-coding-agent": "0.81.0"
}, },
"overrides": { "overrides": {
"rimraf": "6.1.2", "rimraf": "6.1.2",
+14 -16
View File
@@ -1,17 +1,17 @@
{ {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.80.10", "version": "0.81.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.80.10", "version": "0.81.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.80.10", "@earendil-works/pi-agent-core": "^0.81.0",
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"@earendil-works/pi-tui": "^0.80.10", "@earendil-works/pi-tui": "^0.81.0",
"@silvia-odwyer/photon-node": "0.3.4", "@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2", "chalk": "5.6.2",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
@@ -474,11 +474,11 @@
} }
}, },
"node_modules/@earendil-works/pi-agent-core": { "node_modules/@earendil-works/pi-agent-core": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"
@@ -488,8 +488,8 @@
} }
}, },
"node_modules/@earendil-works/pi-ai": { "node_modules/@earendil-works/pi-ai": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.91.1", "@anthropic-ai/sdk": "0.91.1",
@@ -512,8 +512,8 @@
} }
}, },
"node_modules/@earendil-works/pi-tui": { "node_modules/@earendil-works/pi-tui": {
"version": "0.80.10", "version": "0.81.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.80.10.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.81.0.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"get-east-asian-width": "1.6.0", "get-east-asian-width": "1.6.0",
@@ -765,8 +765,7 @@
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
"node": ">=8.0.0" "node": ">=8.0.0"
}, }
"peer": true
}, },
"node_modules/@opentelemetry/semantic-conventions": { "node_modules/@opentelemetry/semantic-conventions": {
"version": "1.41.1", "version": "1.41.1",
@@ -1810,8 +1809,7 @@
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/colinhacks" "url": "https://github.com/sponsors/colinhacks"
}, }
"peer": true
}, },
"node_modules/zod-to-json-schema": { "node_modules/zod-to-json-schema": {
"version": "3.25.2", "version": "3.25.2",
+4 -4
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.80.10", "version": "0.81.0",
"description": "Coding agent CLI with read, bash, edit, write tools and session management", "description": "Coding agent CLI with read, bash, edit, write tools and session management",
"type": "module", "type": "module",
"piConfig": { "piConfig": {
@@ -39,9 +39,9 @@
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap" "prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
}, },
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.80.10", "@earendil-works/pi-agent-core": "^0.81.0",
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"@earendil-works/pi-tui": "^0.80.10", "@earendil-works/pi-tui": "^0.81.0",
"@silvia-odwyer/photon-node": "0.3.4", "@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2", "chalk": "5.6.2",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### Changed ### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-server", "name": "@earendil-works/pi-server",
"version": "0.80.10", "version": "0.81.0",
"description": "experimental server package for pi", "description": "experimental server package for pi",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
@@ -40,7 +40,7 @@
"node": ">=22.19.0" "node": ">=22.19.0"
}, },
"dependencies": { "dependencies": {
"@earendil-works/pi-coding-agent": "^0.80.10" "@earendil-works/pi-coding-agent": "^0.81.0"
}, },
"devDependencies": { "devDependencies": {
"shx": "0.4.0" "shx": "0.4.0"
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### Added ### Added
+3 -3
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-storage-sqlite-node", "name": "@earendil-works/pi-storage-sqlite-node",
"version": "0.80.10", "version": "0.81.0",
"description": "Node sqlite storage backend for @earendil-works/pi-agent-core sessions", "description": "Node sqlite storage backend for @earendil-works/pi-agent-core sessions",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
@@ -32,7 +32,7 @@
"node": ">=22.19.0" "node": ">=22.19.0"
}, },
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.80.10", "@earendil-works/pi-ai": "^0.81.0",
"@earendil-works/pi-agent-core": "^0.80.10" "@earendil-works/pi-agent-core": "^0.81.0"
} }
} }
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.81.0] - 2026-07-21
### Fixed ### Fixed
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-tui", "name": "@earendil-works/pi-tui",
"version": "0.80.10", "version": "0.81.0",
"description": "Terminal User Interface library with differential rendering for efficient text-based applications", "description": "Terminal User Interface library with differential rendering for efficient text-based applications",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
+44 -8
View File
@@ -68,6 +68,36 @@ function shellQuote(value) {
return `'${value.replace(/'/g, `'\\''`)}'`; return `'${value.replace(/'/g, `'\\''`)}'`;
} }
function removeStaleWorkspaceLockEntries() {
const workspaceVersions = new Map(
findPackageDirectories()
.map((directory) => JSON.parse(readFileSync(join(directory, "package.json"), "utf8")))
.filter((pkg) => pkg.private !== true)
.map((pkg) => [pkg.name, pkg.version]),
);
const lockPath = "package-lock.json";
const lock = JSON.parse(readFileSync(lockPath, "utf8"));
let removed = 0;
for (const [path, pkg] of Object.entries(lock.packages)) {
if (!path.startsWith("packages/") || pkg.link === true) {
continue;
}
for (const [name, version] of workspaceVersions) {
if (path.endsWith(`/node_modules/${name}`) && pkg.version !== version) {
delete lock.packages[path];
removed++;
break;
}
}
}
if (removed > 0) {
writeFileSync(lockPath, `${JSON.stringify(lock, null, "\t")}\n`);
console.log(`Removed ${removed} stale workspace package lock ${removed === 1 ? "entry" : "entries"}.`);
}
}
function stageChangedFiles() { function stageChangedFiles() {
const output = run("git ls-files -m -o -d --exclude-standard", { silent: true }); const output = run("git ls-files -m -o -d --exclude-standard", { silent: true });
const paths = [...new Set((output || "").split("\n").map((line) => line.trim()).filter(Boolean))]; const paths = [...new Set((output || "").split("\n").map((line) => line.trim()).filter(Boolean))];
@@ -84,16 +114,22 @@ function bumpOrSetVersion(target) {
if (BUMP_TYPES.has(target)) { if (BUMP_TYPES.has(target)) {
console.log(`Bumping version (${target})...`); console.log(`Bumping version (${target})...`);
run(`npm run version:${target}`); run(`npm run version:${target}`);
return getVersion(); } else {
if (compareVersions(target, currentVersion) <= 0) {
console.error(`Error: explicit version ${target} must be greater than current version ${currentVersion}.`);
process.exit(1);
}
console.log(`Setting explicit version (${target})...`);
run(`npm version ${target} -ws --no-git-tag-version && node scripts/sync-versions.js && npm install --package-lock-only --ignore-scripts`);
} }
if (compareVersions(target, currentVersion) <= 0) { // npm version can temporarily install the previous workspace versions before
console.error(`Error: explicit version ${target} must be greater than current version ${currentVersion}.`); // sync-versions updates inter-package ranges. Remove those stale lock entries,
process.exit(1); // refresh the lockfile, then hydrate from the final dependency graph.
} removeStaleWorkspaceLockEntries();
run("npm install --package-lock-only --ignore-scripts");
console.log(`Setting explicit version (${target})...`); run("npm ci --ignore-scripts");
run(`npm version ${target} -ws --no-git-tag-version && node scripts/sync-versions.js && npm install --package-lock-only --ignore-scripts`);
return getVersion(); return getVersion();
} }