Release v1.4.0

This commit is contained in:
Armin Ronacher 2026-10-22 00:29:13 +02:00
parent 18e56a069a
commit 4a080252f0
35 changed files with 110 additions and 119 deletions

View file

@ -1,3 +1,3 @@
{
"revision": "sha256-ffa3e98626230f378f80200debb736c4a2238b5f2ba246a92cfc7d8e19604678"
"revision": "sha256-7fe1b41feaf43a7aad4bc832e6b306c7ced56e6d41bbc724b74e91eeacff6edf"
}

73
package-lock.json generated
View file

@ -731,15 +731,6 @@
"node": ">=16"
}
},
"node_modules/@cloudflare/workers-types": {
"version": "5.20261016.1",
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-5.20261016.1.tgz",
"integrity": "sha512-I8OJdPl3M6TIl9ksU3wtEyWVhSE8E8txJ/vGOv3SkhjcvN8uMjyFmMvRsNOZgzMe5xYFQ0LctmiGqTwR7DbZ6w==",
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"peer": true
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
@ -6092,10 +6083,10 @@
},
"packages/agent": {
"name": "@earendil-works/pi-agent-core",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-ai": "1.4.0",
"typebox": "1.3.27"
},
"devDependencies": {
@ -6115,12 +6106,12 @@
},
"packages/ai": {
"name": "@earendil-works/pi-ai",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.129.0",
"@aws-sdk/client-bedrock-runtime": "3.1127.0",
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/pi-telemetry": "1.4.0",
"@google/genai": "2.21.0",
"@smithy/node-http-handler": "4.12.1",
"http-proxy-agent": "9.1.0",
@ -6203,10 +6194,10 @@
},
"packages/chord": {
"name": "@earendil-works/chord",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/pi-telemetry": "1.4.0",
"typebox": "1.3.27"
},
"devDependencies": {
@ -6221,7 +6212,7 @@
},
"packages/codemode": {
"name": "@earendil-works/pi-codemode",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"quickjs-wasi": "3.6.2"
@ -6236,14 +6227,14 @@
},
"packages/coding-agent": {
"name": "@earendil-works/pi-coding-agent",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-agent-core": "1.3.0",
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-codemode": "1.3.0",
"@earendil-works/pi-mcp": "1.3.0",
"@earendil-works/pi-tui": "1.3.0",
"@earendil-works/pi-agent-core": "1.4.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-codemode": "1.4.0",
"@earendil-works/pi-mcp": "1.4.0",
"@earendil-works/pi-tui": "1.4.0",
"@silvia-odwyer/photon-node": "0.3.4",
"brace-expansion": "5.0.12",
"chalk": "6.0.0",
@ -6281,32 +6272,32 @@
},
"packages/coding-agent/examples/extensions/custom-provider-anthropic": {
"name": "pi-extension-custom-provider-anthropic",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@anthropic-ai/sdk": "0.52.0"
}
},
"packages/coding-agent/examples/extensions/custom-provider-gitlab-duo": {
"name": "pi-extension-custom-provider-gitlab-duo",
"version": "1.3.0"
"version": "1.4.0"
},
"packages/coding-agent/examples/extensions/gondolin": {
"name": "pi-extension-gondolin",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@earendil-works/gondolin": "0.12.0"
}
},
"packages/coding-agent/examples/extensions/sandbox": {
"name": "pi-extension-sandbox",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "0.0.26"
}
},
"packages/coding-agent/examples/extensions/with-deps": {
"name": "pi-extension-with-deps",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"ms": "2.1.3"
},
@ -6360,13 +6351,13 @@
},
"packages/durable": {
"name": "@earendil-works/pi-durable",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@earendil-works/chord": "1.3.0",
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-codemode": "1.3.0",
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/chord": "1.4.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-codemode": "1.4.0",
"@earendil-works/pi-telemetry": "1.4.0",
"@silvia-odwyer/photon": "0.3.3",
"diff": "8.0.4",
"typebox": "1.3.27"
@ -6383,11 +6374,11 @@
},
"packages/env": {
"name": "@earendil-works/pi-env",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@earendil-works/chord": "1.3.0",
"@earendil-works/pi-durable": "1.3.0"
"@earendil-works/chord": "1.4.0",
"@earendil-works/pi-durable": "1.4.0"
},
"devDependencies": {
"shx": "0.3.4",
@ -6399,10 +6390,10 @@
},
"packages/evals": {
"name": "@earendil-works/pi-evals",
"version": "1.3.0",
"version": "1.4.0",
"devDependencies": {
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-coding-agent": "1.3.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-coding-agent": "1.4.0",
"@types/node": "22.19.19",
"@vitest-evals/core": "0.15.0",
"autoevals": "0.3.0",
@ -6413,7 +6404,7 @@
},
"packages/mcp": {
"name": "@earendil-works/pi-mcp",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"cross-spawn": "7.0.6"
@ -6429,7 +6420,7 @@
},
"packages/telemetry": {
"name": "@earendil-works/pi-telemetry",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"devDependencies": {
"@types/node": "22.19.19",
@ -6441,7 +6432,7 @@
},
"packages/tui": {
"name": "@earendil-works/pi-tui",
"version": "1.3.0",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"get-east-asian-width": "1.6.0",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Added

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-agent-core",
"version": "1.3.0",
"version": "1.4.0",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"type": "module",
"main": "./dist/index.js",
@ -23,7 +23,7 @@
"prepublishOnly": "npm run build"
},
"dependencies": {
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-ai": "1.4.0",
"typebox": "1.3.27"
},
"keywords": [

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Breaking Changes

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-ai",
"version": "1.3.0",
"version": "1.4.0",
"description": "Unified LLM API with automatic model discovery and provider configuration",
"type": "module",
"main": "./dist/index.js",
@ -69,7 +69,7 @@
"dependencies": {
"@anthropic-ai/sdk": "0.129.0",
"@aws-sdk/client-bedrock-runtime": "3.1127.0",
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/pi-telemetry": "1.4.0",
"@google/genai": "2.21.0",
"@smithy/node-http-handler": "4.12.1",
"http-proxy-agent": "9.1.0",

View file

@ -1,2 +1,2 @@
// The @earendil-works/pi-ai package version. scripts/sync-versions.js keeps it in sync with package.json.
export const PI_AI_VERSION = "1.3.0";
export const PI_AI_VERSION = "1.4.0";

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Breaking Changes

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/chord",
"version": "1.3.0",
"version": "1.4.0",
"description": "Typed host runtime for plugins, contracts, replicated state, and RPC over JSON links",
"type": "module",
"main": "./dist/index.js",
@ -85,7 +85,7 @@
"node": ">=22.19.0"
},
"dependencies": {
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/pi-telemetry": "1.4.0",
"typebox": "1.3.27"
},
"devDependencies": {

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
## [1.3.0] - 2026-10-15

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-codemode",
"version": "1.3.0",
"version": "1.4.0",
"description": "Sandboxed JavaScript execution where the only capability is calling injected tools",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### New Features

View file

@ -1,12 +1,12 @@
{
"name": "pi-extension-custom-provider",
"version": "1.3.0",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pi-extension-custom-provider",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@anthropic-ai/sdk": "^0.52.0"
}

View file

@ -1,7 +1,7 @@
{
"name": "pi-extension-custom-provider-anthropic",
"private": true,
"version": "1.3.0",
"version": "1.4.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View file

@ -1,7 +1,7 @@
{
"name": "pi-extension-custom-provider-gitlab-duo",
"private": true,
"version": "1.3.0",
"version": "1.4.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View file

@ -1,12 +1,12 @@
{
"name": "pi-extension-gondolin",
"version": "1.3.0",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pi-extension-gondolin",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@earendil-works/gondolin": "0.12.0"
}

View file

@ -1,7 +1,7 @@
{
"name": "pi-extension-gondolin",
"private": true,
"version": "1.3.0",
"version": "1.4.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View file

@ -1,12 +1,12 @@
{
"name": "pi-extension-sandbox",
"version": "1.3.0",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pi-extension-sandbox",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.26"
}

View file

@ -1,7 +1,7 @@
{
"name": "pi-extension-sandbox",
"private": true,
"version": "1.3.0",
"version": "1.4.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View file

@ -1,12 +1,12 @@
{
"name": "pi-extension-with-deps",
"version": "1.3.0",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pi-extension-with-deps",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"ms": "^2.1.3"
},

View file

@ -1,7 +1,7 @@
{
"name": "pi-extension-with-deps",
"private": true,
"version": "1.3.0",
"version": "1.4.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View file

@ -1,14 +1,14 @@
{
"name": "@earendil-works/pi-coding-agent-install",
"version": "1.3.0",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@earendil-works/pi-coding-agent-install",
"version": "1.3.0",
"version": "1.4.0",
"dependencies": {
"@earendil-works/pi-coding-agent": "1.3.0"
"@earendil-works/pi-coding-agent": "1.4.0"
},
"engines": {
"node": ">=22.19.0"
@ -386,11 +386,11 @@
}
},
"node_modules/@earendil-works/pi-agent-core": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-ai": "1.4.0",
"typebox": "1.3.27"
},
"engines": {
@ -398,13 +398,13 @@
}
},
"node_modules/@earendil-works/pi-ai": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.129.0",
"@aws-sdk/client-bedrock-runtime": "3.1127.0",
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/pi-telemetry": "1.4.0",
"@google/genai": "2.21.0",
"@smithy/node-http-handler": "4.12.1",
"http-proxy-agent": "9.1.0",
@ -481,8 +481,8 @@
}
},
"node_modules/@earendil-works/pi-codemode": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-codemode/-/pi-codemode-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-codemode/-/pi-codemode-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"quickjs-wasi": "3.6.2"
@ -492,15 +492,15 @@
}
},
"node_modules/@earendil-works/pi-coding-agent": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-agent-core": "1.3.0",
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-codemode": "1.3.0",
"@earendil-works/pi-mcp": "1.3.0",
"@earendil-works/pi-tui": "1.3.0",
"@earendil-works/pi-agent-core": "1.4.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-codemode": "1.4.0",
"@earendil-works/pi-mcp": "1.4.0",
"@earendil-works/pi-tui": "1.4.0",
"@silvia-odwyer/photon-node": "0.3.4",
"brace-expansion": "5.0.12",
"chalk": "6.0.0",
@ -527,8 +527,8 @@
}
},
"node_modules/@earendil-works/pi-mcp": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-mcp/-/pi-mcp-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-mcp/-/pi-mcp-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"cross-spawn": "7.0.6"
@ -538,16 +538,16 @@
}
},
"node_modules/@earendil-works/pi-telemetry": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-1.4.0.tgz",
"license": "MIT",
"engines": {
"node": ">=22.19.0"
}
},
"node_modules/@earendil-works/pi-tui": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-1.3.0.tgz",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-1.4.0.tgz",
"license": "MIT",
"dependencies": {
"get-east-asian-width": "1.6.0",

View file

@ -1,10 +1,10 @@
{
"name": "@earendil-works/pi-coding-agent-install",
"version": "1.3.0",
"version": "1.4.0",
"private": true,
"description": "Lockfile root used by the Pi installer and updater.",
"dependencies": {
"@earendil-works/pi-coding-agent": "1.3.0"
"@earendil-works/pi-coding-agent": "1.4.0"
},
"overrides": {
"protobufjs": "7.6.6"

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-coding-agent",
"version": "1.3.0",
"version": "1.4.0",
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
"type": "module",
"piConfig": {
@ -41,11 +41,11 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@earendil-works/pi-agent-core": "1.3.0",
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-codemode": "1.3.0",
"@earendil-works/pi-mcp": "1.3.0",
"@earendil-works/pi-tui": "1.3.0",
"@earendil-works/pi-agent-core": "1.4.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-codemode": "1.4.0",
"@earendil-works/pi-mcp": "1.4.0",
"@earendil-works/pi-tui": "1.4.0",
"@silvia-odwyer/photon-node": "0.3.4",
"brace-expansion": "5.0.12",
"chalk": "6.0.0",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Breaking Changes

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-durable",
"version": "1.3.0",
"version": "1.4.0",
"description": "Durable conversation, task, and document runtime for Pi",
"type": "module",
"main": "./dist/index.js",
@ -150,10 +150,10 @@
"node": ">=22.19.0"
},
"dependencies": {
"@earendil-works/chord": "1.3.0",
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-codemode": "1.3.0",
"@earendil-works/pi-telemetry": "1.3.0",
"@earendil-works/chord": "1.4.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-codemode": "1.4.0",
"@earendil-works/pi-telemetry": "1.4.0",
"@silvia-odwyer/photon": "0.3.3",
"diff": "8.0.4",
"typebox": "1.3.27"

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
## [1.3.0] - 2026-10-15

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-env",
"version": "1.3.0",
"version": "1.4.0",
"description": "Remote execution environments for Pi Durable: a small daemon deployed over SSH and its ExecutionEnv client",
"type": "module",
"main": "./dist/index.js",
@ -45,8 +45,8 @@
"node": ">=22.19.0"
},
"dependencies": {
"@earendil-works/chord": "1.3.0",
"@earendil-works/pi-durable": "1.3.0"
"@earendil-works/chord": "1.4.0",
"@earendil-works/pi-durable": "1.4.0"
},
"devDependencies": {
"shx": "0.3.4",

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-evals",
"version": "1.3.0",
"version": "1.4.0",
"private": true,
"type": "module",
"scripts": {
@ -11,8 +11,8 @@
"test": "vitest run --config vitest.test.config.ts"
},
"devDependencies": {
"@earendil-works/pi-ai": "1.3.0",
"@earendil-works/pi-coding-agent": "1.3.0",
"@earendil-works/pi-ai": "1.4.0",
"@earendil-works/pi-coding-agent": "1.4.0",
"@types/node": "22.19.19",
"@vitest-evals/core": "0.15.0",
"autoevals": "0.3.0",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
## [1.3.0] - 2026-10-15

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-mcp",
"version": "1.3.0",
"version": "1.4.0",
"description": "Standalone Model Context Protocol client for pi and other applications",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Breaking Changes

View file

@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-telemetry",
"version": "1.3.0",
"version": "1.4.0",
"description": "Vendor-neutral telemetry contracts and typed schema utilities for pi",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [1.4.0] - 2026-10-21
### Added

View file

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