Release v0.79.7

This commit is contained in:
Armin Ronacher
2026-06-18 18:22:07 +02:00
parent 717494223d
commit c4ab61dcbf
21 changed files with 120 additions and 75 deletions

26
package-lock.json generated
View File

@@ -6176,10 +6176,10 @@
}, },
"packages/agent": { "packages/agent": {
"name": "@earendil-works/pi-agent-core", "name": "@earendil-works/pi-agent-core",
"version": "0.79.6", "version": "0.79.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"
@@ -6213,7 +6213,7 @@
}, },
"packages/ai": { "packages/ai": {
"name": "@earendil-works/pi-ai", "name": "@earendil-works/pi-ai",
"version": "0.79.6", "version": "0.79.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.91.1", "@anthropic-ai/sdk": "0.91.1",
@@ -6258,12 +6258,12 @@
}, },
"packages/coding-agent": { "packages/coding-agent": {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.79.6", "version": "0.79.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.79.6", "@earendil-works/pi-agent-core": "^0.79.7",
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"@earendil-works/pi-tui": "^0.79.6", "@earendil-works/pi-tui": "^0.79.7",
"@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",
@@ -6304,32 +6304,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.79.6", "version": "0.79.7",
"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.79.6" "version": "0.79.7"
}, },
"packages/coding-agent/examples/extensions/gondolin": { "packages/coding-agent/examples/extensions/gondolin": {
"name": "pi-extension-gondolin", "name": "pi-extension-gondolin",
"version": "0.79.6", "version": "0.79.7",
"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.9.6", "version": "1.9.7",
"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.79.6", "version": "0.79.7",
"dependencies": { "dependencies": {
"ms": "2.1.3" "ms": "2.1.3"
}, },
@@ -6365,7 +6365,7 @@
}, },
"packages/tui": { "packages/tui": {
"name": "@earendil-works/pi-tui", "name": "@earendil-works/pi-tui",
"version": "0.79.6", "version": "0.79.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"get-east-asian-width": "1.6.0", "get-east-asian-width": "1.6.0",

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.79.7] - 2026-06-18
## [0.79.6] - 2026-06-16 ## [0.79.6] - 2026-06-16

View File

@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-agent-core", "name": "@earendil-works/pi-agent-core",
"version": "0.79.6", "version": "0.79.7",
"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 clean && npm run build" "prepublishOnly": "npm run clean && npm run build"
}, },
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"ignore": "7.0.5", "ignore": "7.0.5",
"typebox": "1.1.38", "typebox": "1.1.38",
"yaml": "2.9.0" "yaml": "2.9.0"

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.79.7] - 2026-06-18
### Added ### Added

View File

@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-ai", "name": "@earendil-works/pi-ai",
"version": "0.79.6", "version": "0.79.7",
"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",

View File

@@ -95,6 +95,21 @@ export const IMAGE_MODELS = {
cacheWrite: 0.08333333333333334, cacheWrite: 0.08333333333333334,
}, },
} satisfies ImagesModel<"openrouter-images">, } satisfies ImagesModel<"openrouter-images">,
"google/gemini-3-pro-image": {
id: "google/gemini-3-pro-image",
name: "Google: Nano Banana Pro (Gemini 3 Pro Image)",
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
input: ["image", "text"],
output: ["image", "text"],
cost: {
input: 2,
output: 12,
cacheRead: 0.19999999999999998,
cacheWrite: 0.375,
},
} satisfies ImagesModel<"openrouter-images">,
"google/gemini-3-pro-image-preview": { "google/gemini-3-pro-image-preview": {
id: "google/gemini-3-pro-image-preview", id: "google/gemini-3-pro-image-preview",
name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",
@@ -110,6 +125,21 @@ export const IMAGE_MODELS = {
cacheWrite: 0.375, cacheWrite: 0.375,
}, },
} satisfies ImagesModel<"openrouter-images">, } satisfies ImagesModel<"openrouter-images">,
"google/gemini-3.1-flash-image": {
id: "google/gemini-3.1-flash-image",
name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image)",
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
input: ["image", "text"],
output: ["image", "text"],
cost: {
input: 0.5,
output: 3,
cacheRead: 0,
cacheWrite: 0,
},
} satisfies ImagesModel<"openrouter-images">,
"google/gemini-3.1-flash-image-preview": { "google/gemini-3.1-flash-image-preview": {
id: "google/gemini-3.1-flash-image-preview", id: "google/gemini-3.1-flash-image-preview",
name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)",

View File

@@ -4566,25 +4566,6 @@ export const MODELS = {
contextWindow: 400000, contextWindow: 400000,
maxTokens: 128000, maxTokens: 128000,
} satisfies Model<"openai-responses">, } satisfies Model<"openai-responses">,
"raptor-mini": {
id: "raptor-mini",
name: "Raptor mini",
api: "openai-completions",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.25,
output: 2,
cacheRead: 0.025,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
}, },
"google": { "google": {
"gemini-2.0-flash": { "gemini-2.0-flash": {
@@ -11785,6 +11766,23 @@ export const MODELS = {
contextWindow: 1048756, contextWindow: 1048756,
maxTokens: 262144, maxTokens: 262144,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"poolside/laguna-m.1": {
id: "poolside/laguna-m.1",
name: "Poolside: Laguna M.1",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.2,
output: 0.4,
cacheRead: 0.1,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"poolside/laguna-m.1:free": { "poolside/laguna-m.1:free": {
id: "poolside/laguna-m.1:free", id: "poolside/laguna-m.1:free",
name: "Poolside: Laguna M.1 (free)", name: "Poolside: Laguna M.1 (free)",
@@ -11802,6 +11800,23 @@ export const MODELS = {
contextWindow: 262144, contextWindow: 262144,
maxTokens: 32768, maxTokens: 32768,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"poolside/laguna-xs.2": {
id: "poolside/laguna-xs.2",
name: "Poolside: Laguna XS.2",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.1,
output: 0.2,
cacheRead: 0.05,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"poolside/laguna-xs.2:free": { "poolside/laguna-xs.2:free": {
id: "poolside/laguna-xs.2:free", id: "poolside/laguna-xs.2:free",
name: "Poolside: Laguna XS.2 (free)", name: "Poolside: Laguna XS.2 (free)",
@@ -12425,11 +12440,11 @@ export const MODELS = {
cost: { cost: {
input: 0.14, input: 0.14,
output: 1, output: 1,
cacheRead: 0.05, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 262144, contextWindow: 262144,
maxTokens: 81920, maxTokens: 262144,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"qwen/qwen3.5-397b-a17b": { "qwen/qwen3.5-397b-a17b": {
id: "qwen/qwen3.5-397b-a17b", id: "qwen/qwen3.5-397b-a17b",
@@ -12542,9 +12557,9 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
input: 0.15, input: 0.14,
output: 1, output: 1,
cacheRead: 0.05, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 262144, contextWindow: 262144,
@@ -13054,11 +13069,11 @@ export const MODELS = {
cost: { cost: {
input: 1.4, input: 1.4,
output: 4.4, output: 4.4,
cacheRead: 0.26, cacheRead: 0.7,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 1048576, contextWindow: 1048576,
maxTokens: 262144, maxTokens: 524288,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"~anthropic/claude-fable-latest": { "~anthropic/claude-fable-latest": {
id: "~anthropic/claude-fable-latest", id: "~anthropic/claude-fable-latest",

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.79.7] - 2026-06-18
### New Features ### New Features

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,17 +1,17 @@
{ {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.79.6", "version": "0.79.7",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.79.6", "version": "0.79.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-agent-core": "^0.79.6", "@earendil-works/pi-agent-core": "^0.79.7",
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"@earendil-works/pi-tui": "^0.79.6", "@earendil-works/pi-tui": "^0.79.7",
"@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.79.6", "version": "0.79.7",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.79.6.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.79.7.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"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.79.6", "version": "0.79.7",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.79.6.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.79.7.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/sdk": "0.91.1", "@anthropic-ai/sdk": "0.91.1",
@@ -511,8 +511,8 @@
} }
}, },
"node_modules/@earendil-works/pi-tui": { "node_modules/@earendil-works/pi-tui": {
"version": "0.79.6", "version": "0.79.7",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.79.6.tgz", "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.79.7.tgz",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"get-east-asian-width": "1.6.0", "get-east-asian-width": "1.6.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-coding-agent", "name": "@earendil-works/pi-coding-agent",
"version": "0.79.6", "version": "0.79.7",
"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": {
@@ -36,9 +36,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.79.6", "@earendil-works/pi-agent-core": "^0.79.7",
"@earendil-works/pi-ai": "^0.79.6", "@earendil-works/pi-ai": "^0.79.7",
"@earendil-works/pi-tui": "^0.79.6", "@earendil-works/pi-tui": "^0.79.7",
"@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",

View File

@@ -1,6 +1,6 @@
# Changelog # Changelog
## [Unreleased] ## [0.79.7] - 2026-06-18
### Added ### Added

View File

@@ -1,6 +1,6 @@
{ {
"name": "@earendil-works/pi-tui", "name": "@earendil-works/pi-tui",
"version": "0.79.6", "version": "0.79.7",
"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",