Release v0.79.0

This commit is contained in:
Armin Ronacher
2026-06-08 17:15:51 +02:00
parent 35120d7e48
commit c10fb95fd9
21 changed files with 269 additions and 208 deletions

50
package-lock.json generated
View File

@@ -6170,10 +6170,10 @@
},
"packages/agent": {
"name": "@earendil-works/pi-agent-core",
"version": "0.78.1",
"version": "0.79.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-ai": "^0.79.0",
"ignore": "7.0.5",
"typebox": "1.1.38",
"yaml": "2.9.0"
@@ -6188,6 +6188,30 @@
"node": ">=22.19.0"
}
},
"packages/agent/node_modules/@earendil-works/pi-ai": {
"version": "0.78.1",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.78.1.tgz",
"integrity": "sha512-CM2pkTs1iupG/maw381lC9Q/Y/aQaMGK7GILc28ttImD0ci3LDwKroDsGkWbly5JIy3iqxdRxB9JlG7vvzCzTg==",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.91.1",
"@aws-sdk/client-bedrock-runtime": "3.1048.0",
"@google/genai": "1.52.0",
"@mistralai/mistralai": "2.2.1",
"@smithy/node-http-handler": "4.7.3",
"http-proxy-agent": "7.0.2",
"https-proxy-agent": "7.0.6",
"openai": "6.26.0",
"partial-json": "0.1.7",
"typebox": "1.1.38"
},
"bin": {
"pi-ai": "dist/cli.js"
},
"engines": {
"node": ">=22.19.0"
}
},
"packages/agent/node_modules/@types/node": {
"version": "24.12.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.4.tgz",
@@ -6207,7 +6231,7 @@
},
"packages/ai": {
"name": "@earendil-works/pi-ai",
"version": "0.78.1",
"version": "0.79.0",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.91.1",
@@ -6252,12 +6276,12 @@
},
"packages/coding-agent": {
"name": "@earendil-works/pi-coding-agent",
"version": "0.78.1",
"version": "0.79.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-agent-core": "^0.78.1",
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-tui": "^0.78.1",
"@earendil-works/pi-agent-core": "^0.79.0",
"@earendil-works/pi-ai": "^0.79.0",
"@earendil-works/pi-tui": "^0.79.0",
"@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2",
"cross-spawn": "7.0.6",
@@ -6296,32 +6320,32 @@
},
"packages/coding-agent/examples/extensions/custom-provider-anthropic": {
"name": "pi-extension-custom-provider-anthropic",
"version": "0.78.1",
"version": "0.79.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": "0.78.1"
"version": "0.79.0"
},
"packages/coding-agent/examples/extensions/gondolin": {
"name": "pi-extension-gondolin",
"version": "0.78.1",
"version": "0.79.0",
"dependencies": {
"@earendil-works/gondolin": "0.12.0"
}
},
"packages/coding-agent/examples/extensions/sandbox": {
"name": "pi-extension-sandbox",
"version": "1.8.1",
"version": "1.9.0",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "0.0.26"
}
},
"packages/coding-agent/examples/extensions/with-deps": {
"name": "pi-extension-with-deps",
"version": "0.78.1",
"version": "0.79.0",
"dependencies": {
"ms": "2.1.3"
},
@@ -6357,7 +6381,7 @@
},
"packages/tui": {
"name": "@earendil-works/pi-tui",
"version": "0.78.1",
"version": "0.79.0",
"license": "MIT",
"dependencies": {
"get-east-asian-width": "1.6.0",

View File

@@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.79.0] - 2026-06-08
### Fixed

View File

@@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-agent-core",
"version": "0.78.1",
"version": "0.79.0",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"type": "module",
"main": "./dist/index.js",
@@ -29,7 +29,7 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-ai": "^0.79.0",
"ignore": "7.0.5",
"typebox": "1.1.38",
"yaml": "2.9.0"

View File

@@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.79.0] - 2026-06-08
### Fixed

View File

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

View File

@@ -440,6 +440,36 @@ export const IMAGE_MODELS = {
cacheWrite: 0,
},
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2.5-fast:free": {
id: "sourceful/riverflow-v2.5-fast:free",
name: "Sourceful: Riverflow V2.5 Fast (free)",
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
input: ["text", "image"],
output: ["image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2.5-pro:free": {
id: "sourceful/riverflow-v2.5-pro:free",
name: "Sourceful: Riverflow V2.5 Pro (free)",
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
input: ["text", "image"],
output: ["image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
} satisfies ImagesModel<"openrouter-images">,
"x-ai/grok-imagine-image-quality": {
id: "x-ai/grok-imagine-image-quality",
name: "xAI: Grok Imagine Image Quality",

View File

@@ -1089,6 +1089,59 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 131072,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-5.4": {
id: "openai.gpt-5.4",
name: "GPT-5.4",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 2.75,
output: 16.5,
cacheRead: 0.275,
cacheWrite: 0,
},
contextWindow: 272000,
maxTokens: 128000,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-5.5": {
id: "openai.gpt-5.5",
name: "GPT-5.5",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
thinkingLevelMap: {"xhigh":"xhigh"},
input: ["text", "image"],
cost: {
input: 5.5,
output: 33,
cacheRead: 0.55,
cacheWrite: 0,
},
contextWindow: 272000,
maxTokens: 128000,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-oss-120b": {
id: "openai.gpt-oss-120b",
name: "gpt-oss-120b",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false,
input: ["text"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-oss-120b-1:0": {
id: "openai.gpt-oss-120b-1:0",
name: "gpt-oss-120b",
@@ -1106,6 +1159,23 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-oss-20b": {
id: "openai.gpt-oss-20b",
name: "gpt-oss-20b",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false,
input: ["text"],
cost: {
input: 0.07,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"bedrock-converse-stream">,
"openai.gpt-oss-20b-1:0": {
id: "openai.gpt-oss-20b-1:0",
name: "gpt-oss-20b",
@@ -3890,6 +3960,24 @@ export const MODELS = {
contextWindow: 202800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/kimi-k2p6-fast": {
id: "accounts/fireworks/routers/kimi-k2p6-fast",
name: "Kimi K2.6 Fast",
api: "anthropic-messages",
provider: "fireworks",
baseUrl: "https://api.fireworks.ai/inference",
compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 8,
cacheRead: 0.3,
cacheWrite: 0,
},
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"anthropic-messages">,
"accounts/fireworks/routers/kimi-k2p6-turbo": {
id: "accounts/fireworks/routers/kimi-k2p6-turbo",
name: "Kimi K2.6 Turbo",
@@ -6022,11 +6110,11 @@ export const MODELS = {
api: "mistral-conversations",
provider: "mistral",
baseUrl: "https://api.mistral.ai",
reasoning: true,
reasoning: false,
input: ["text", "image"],
cost: {
input: 1.5,
output: 7.5,
input: 0.4,
output: 2,
cacheRead: 0,
cacheWrite: 0,
},
@@ -6708,6 +6796,25 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-ultra-550b-a55b": {
id: "nvidia/nemotron-3-ultra-550b-a55b",
name: "Nemotron 3 Ultra 550B A55B",
api: "openai-completions",
provider: "nvidia",
baseUrl: "https://integrate.api.nvidia.com/v1",
headers: {"NVCF-POLL-SECONDS":"3600"},
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 2.5,
cacheRead: 0.15,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"nvidia/nvidia-nemotron-nano-9b-v2": {
id: "nvidia/nvidia-nemotron-nano-9b-v2",
name: "nvidia-nemotron-nano-9b-v2",
@@ -8353,23 +8460,6 @@ export const MODELS = {
contextWindow: 204800,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"minimax-m3-free": {
id: "minimax-m3-free",
name: "MiniMax M3 Free",
api: "anthropic-messages",
provider: "opencode",
baseUrl: "https://opencode.ai/zen",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"nemotron-3-ultra-free": {
id: "nemotron-3-ultra-free",
name: "Nemotron 3 Ultra Free",
@@ -8608,9 +8698,9 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.6,
output: 2.4,
cacheRead: 0.12,
input: 0.3,
output: 1.2,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 512000,
@@ -8631,7 +8721,7 @@ export const MODELS = {
cacheRead: 0.05,
cacheWrite: 0.625,
},
contextWindow: 262144,
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"qwen3.7-max": {
@@ -8665,7 +8755,7 @@ export const MODELS = {
cacheRead: 0.04,
cacheWrite: 0.5,
},
contextWindow: 262144,
contextWindow: 1000000,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
},
@@ -9101,23 +9191,6 @@ export const MODELS = {
contextWindow: 2000000,
maxTokens: 30000,
} satisfies Model<"openai-completions">,
"baidu/ernie-4.5-vl-28b-a3b": {
id: "baidu/ernie-4.5-vl-28b-a3b",
name: "Baidu: ERNIE 4.5 VL 28B A3B",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.14,
output: 0.56,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 8000,
} satisfies Model<"openai-completions">,
"bytedance-seed/seed-1.6": {
id: "bytedance-seed/seed-1.6",
name: "ByteDance Seed: Seed 1.6",
@@ -9624,8 +9697,8 @@ export const MODELS = {
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.04,
output: 0.13,
input: 0.049999999999999996,
output: 0.15,
cacheRead: 0,
cacheWrite: 0,
},
@@ -9693,12 +9766,12 @@ export const MODELS = {
input: ["text", "image"],
cost: {
input: 0.12,
output: 0.37,
cacheRead: 0,
output: 0.36,
cacheRead: 0.09,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 16384,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"google/gemma-4-31b-it:free": {
id: "google/gemma-4-31b-it:free",
@@ -9847,7 +9920,7 @@ export const MODELS = {
input: ["text"],
cost: {
input: 0.02,
output: 0.049999999999999996,
output: 0.03,
cacheRead: 0,
cacheWrite: 0,
},
@@ -9914,7 +9987,7 @@ export const MODELS = {
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.08,
input: 0.09999999999999999,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
@@ -10005,7 +10078,7 @@ export const MODELS = {
cacheWrite: 0,
},
contextWindow: 204800,
maxTokens: 131072,
maxTokens: 196608,
} satisfies Model<"openai-completions">,
"minimax/minimax-m3": {
id: "minimax/minimax-m3",
@@ -10391,13 +10464,13 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.684,
output: 3.42,
cacheRead: 0.144,
input: 0.6799999999999999,
output: 3.41,
cacheRead: 0.33999999999999997,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
maxTokens: 262142,
} satisfies Model<"openai-completions">,
"moonshotai/kimi-k2.6:free": {
id: "moonshotai/kimi-k2.6:free",
@@ -10417,23 +10490,6 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"nex-agi/deepseek-v3.1-nex-n1": {
id: "nex-agi/deepseek-v3.1-nex-n1",
name: "Nex AGI: DeepSeek V3.1 Nex N1",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.135,
output: 0.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 163840,
} satisfies Model<"openai-completions">,
"nvidia/llama-3.3-nemotron-super-49b-v1.5": {
id: "nvidia/llama-3.3-nemotron-super-49b-v1.5",
name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5",
@@ -10443,7 +10499,7 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.09999999999999999,
input: 0.39999999999999997,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
@@ -10689,23 +10745,6 @@ export const MODELS = {
contextWindow: 8191,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-4-1106-preview": {
id: "openai/gpt-4-1106-preview",
name: "OpenAI: GPT-4 Turbo (older v1106)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 10,
output: 30,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-4-turbo": {
id: "openai/gpt-4-turbo",
name: "OpenAI: GPT-4 Turbo",
@@ -11781,7 +11820,7 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
input: 0.071,
input: 0.09,
output: 0.09999999999999999,
cacheRead: 0,
cacheWrite: 0,
@@ -11815,13 +11854,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.09,
output: 0.44999999999999996,
input: 0.12,
output: 0.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 20000,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"qwen/qwen3-30b-a3b-instruct-2507": {
id: "qwen/qwen3-30b-a3b-instruct-2507",
@@ -12274,13 +12313,13 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.04,
input: 0.09999999999999999,
output: 0.15,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 81920,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"qwen/qwen3.5-flash-02-23": {
id: "qwen/qwen3.5-flash-02-23",
@@ -12342,13 +12381,13 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.29,
output: 3.1999999999999997,
input: 0.28900000000000003,
output: 2.4,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262140,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"qwen/qwen3.6-35b-a3b": {
id: "qwen/qwen3.6-35b-a3b",
@@ -12486,23 +12525,6 @@ export const MODELS = {
contextWindow: 256000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
"sao10k/l3-euryale-70b": {
id: "sao10k/l3-euryale-70b",
name: "Sao10k: Llama 3 Euryale 70B v2.1",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 1.48,
output: 1.48,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8192,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"sao10k/l3.1-euryale-70b": {
id: "sao10k/l3.1-euryale-70b",
name: "Sao10K: Llama 3.1 Euryale 70B v2.2",
@@ -13039,13 +13061,13 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.684,
output: 3.42,
cacheRead: 0.144,
input: 0.6799999999999999,
output: 3.41,
cacheRead: 0.33999999999999997,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
maxTokens: 262142,
} satisfies Model<"openai-completions">,
"~openai/gpt-latest": {
id: "~openai/gpt-latest",
@@ -13236,7 +13258,7 @@ export const MODELS = {
} satisfies Model<"openai-completions">,
"deepseek-ai/DeepSeek-V3": {
id: "deepseek-ai/DeepSeek-V3",
name: "DeepSeek V3",
name: "DeepSeek-V3",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
@@ -13384,6 +13406,25 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 131000,
} satisfies Model<"openai-completions">,
"nvidia/nemotron-3-ultra-550b-a55b": {
id: "nvidia/nemotron-3-ultra-550b-a55b",
name: "Nemotron 3 Ultra 550B A55B",
api: "openai-completions",
provider: "together",
baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"thinkingFormat":"together"},
reasoning: true,
thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"],
cost: {
input: 0.6,
output: 3.6,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 512300,
maxTokens: 512300,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-120b": {
id: "openai/gpt-oss-120b",
name: "GPT OSS 120B",
@@ -14213,40 +14254,6 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 384000,
} satisfies Model<"anthropic-messages">,
"google/gemini-2.0-flash": {
id: "google/gemini-2.0-flash",
name: "Gemini 2.0 Flash",
api: "anthropic-messages",
provider: "vercel-ai-gateway",
baseUrl: "https://ai-gateway.vercel.sh",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.15,
output: 0.6,
cacheRead: 0.024999999999999998,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 8192,
} satisfies Model<"anthropic-messages">,
"google/gemini-2.0-flash-lite": {
id: "google/gemini-2.0-flash-lite",
name: "Gemini 2.0 Flash Lite",
api: "anthropic-messages",
provider: "vercel-ai-gateway",
baseUrl: "https://ai-gateway.vercel.sh",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.075,
output: 0.3,
cacheRead: 0.02,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 8192,
} satisfies Model<"anthropic-messages">,
"google/gemini-2.5-flash": {
id: "google/gemini-2.5-flash",
name: "Gemini 2.5 Flash",
@@ -15089,12 +15096,12 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 2.5,
cacheRead: 0.15,
input: 0.6,
output: 2.4,
cacheRead: 0.12,
cacheWrite: 0,
},
contextWindow: 262144,
contextWindow: 1000000,
maxTokens: 65000,
} satisfies Model<"anthropic-messages">,
"nvidia/nemotron-nano-12b-v2-vl": {

View File

@@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.79.0] - 2026-06-08
### New Features

View File

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

View File

@@ -1,7 +1,7 @@
{
"name": "pi-extension-custom-provider-anthropic",
"private": true,
"version": "0.78.1",
"version": "0.79.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": "0.78.1",
"version": "0.79.0",
"type": "module",
"scripts": {
"clean": "echo 'nothing to clean'",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,17 +1,17 @@
{
"name": "@earendil-works/pi-coding-agent",
"version": "0.78.1",
"version": "0.79.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@earendil-works/pi-coding-agent",
"version": "0.78.1",
"version": "0.79.0",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-agent-core": "^0.78.1",
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-tui": "^0.78.1",
"@earendil-works/pi-agent-core": "^0.79.0",
"@earendil-works/pi-ai": "^0.79.0",
"@earendil-works/pi-tui": "^0.79.0",
"@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2",
"cross-spawn": "7.0.6",
@@ -473,11 +473,11 @@
}
},
"node_modules/@earendil-works/pi-agent-core": {
"version": "0.78.1",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.78.1.tgz",
"version": "0.79.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.79.0.tgz",
"license": "MIT",
"dependencies": {
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-ai": "^0.79.0",
"ignore": "7.0.5",
"typebox": "1.1.38",
"yaml": "2.9.0"
@@ -487,8 +487,8 @@
}
},
"node_modules/@earendil-works/pi-ai": {
"version": "0.78.1",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.78.1.tgz",
"version": "0.79.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.79.0.tgz",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "0.91.1",
@@ -510,8 +510,8 @@
}
},
"node_modules/@earendil-works/pi-tui": {
"version": "0.78.1",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.78.1.tgz",
"version": "0.79.0",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.79.0.tgz",
"license": "MIT",
"dependencies": {
"get-east-asian-width": "1.6.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@earendil-works/pi-coding-agent",
"version": "0.78.1",
"version": "0.79.0",
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
"type": "module",
"piConfig": {
@@ -36,9 +36,9 @@
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
},
"dependencies": {
"@earendil-works/pi-agent-core": "^0.78.1",
"@earendil-works/pi-ai": "^0.78.1",
"@earendil-works/pi-tui": "^0.78.1",
"@earendil-works/pi-agent-core": "^0.79.0",
"@earendil-works/pi-ai": "^0.79.0",
"@earendil-works/pi-tui": "^0.79.0",
"@silvia-odwyer/photon-node": "0.3.4",
"chalk": "5.6.2",
"cross-spawn": "7.0.6",

View File

@@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.79.0] - 2026-06-08
### Fixed

View File

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