Release v0.12.10

This commit is contained in:
Mario Zechner 2025-12-04 20:51:57 +01:00
parent 47bb302155
commit c7585e37c9
15 changed files with 101 additions and 128 deletions

38
package-lock.json generated
View file

@ -5975,11 +5975,11 @@
},
"packages/agent": {
"name": "@mariozechner/pi-agent-core",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-ai": "^0.12.8",
"@mariozechner/pi-tui": "^0.12.8"
"@mariozechner/pi-ai": "^0.12.9",
"@mariozechner/pi-tui": "^0.12.9"
},
"devDependencies": {
"@types/node": "^24.3.0",
@ -6009,7 +6009,7 @@
},
"packages/ai": {
"name": "@mariozechner/pi-ai",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "^0.61.0",
@ -6050,12 +6050,12 @@
},
"packages/coding-agent": {
"name": "@mariozechner/pi-coding-agent",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.12.8",
"@mariozechner/pi-ai": "^0.12.8",
"@mariozechner/pi-tui": "^0.12.8",
"@mariozechner/pi-agent-core": "^0.12.9",
"@mariozechner/pi-ai": "^0.12.9",
"@mariozechner/pi-tui": "^0.12.9",
"chalk": "^5.5.0",
"diff": "^8.0.2",
"glob": "^11.0.3"
@ -6092,12 +6092,12 @@
},
"packages/mom": {
"name": "@mariozechner/pi-mom",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.16",
"@mariozechner/pi-agent-core": "^0.12.8",
"@mariozechner/pi-ai": "^0.12.8",
"@mariozechner/pi-agent-core": "^0.12.9",
"@mariozechner/pi-ai": "^0.12.9",
"@sinclair/typebox": "^0.34.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",
@ -6135,10 +6135,10 @@
},
"packages/pods": {
"name": "@mariozechner/pi",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent-core": "^0.12.8",
"@mariozechner/pi-agent-core": "^0.12.9",
"chalk": "^5.5.0"
},
"bin": {
@ -6151,7 +6151,7 @@
},
"packages/proxy": {
"name": "@mariozechner/pi-proxy",
"version": "0.12.9",
"version": "0.12.10",
"dependencies": {
"@hono/node-server": "^1.14.0",
"hono": "^4.6.16"
@ -6167,7 +6167,7 @@
},
"packages/tui": {
"name": "@mariozechner/pi-tui",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@types/mime-types": "^2.1.4",
@ -6211,12 +6211,12 @@
},
"packages/web-ui": {
"name": "@mariozechner/pi-web-ui",
"version": "0.12.9",
"version": "0.12.10",
"license": "MIT",
"dependencies": {
"@lmstudio/sdk": "^1.5.0",
"@mariozechner/pi-ai": "^0.12.8",
"@mariozechner/pi-tui": "^0.12.8",
"@mariozechner/pi-ai": "^0.12.9",
"@mariozechner/pi-tui": "^0.12.9",
"docx-preview": "^0.3.7",
"jszip": "^3.10.1",
"lucide": "^0.544.0",
@ -6237,7 +6237,7 @@
},
"packages/web-ui/example": {
"name": "pi-web-ui-example",
"version": "1.0.5",
"version": "1.0.6",
"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.12.9",
"version": "0.12.10",
"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.12.9",
"@mariozechner/pi-tui": "^0.12.9"
"@mariozechner/pi-ai": "^0.12.10",
"@mariozechner/pi-tui": "^0.12.10"
},
"keywords": [
"ai",

View file

@ -2,6 +2,12 @@
## [Unreleased]
## [0.12.10] - 2025-12-04
### Added
- Added `gpt-5.1-codex-max` model support
### Fixed
- **OpenAI Token Counting**: Fixed `usage.input` to exclude cached tokens for OpenAI providers. Previously, `input` included cached tokens, causing double-counting when calculating total context size via `input + cacheRead`. Now `input` represents non-cached input tokens across all providers, making `input + output + cacheRead + cacheWrite` the correct formula for total context size.

View file

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

View file

@ -344,6 +344,26 @@ async function generateModels() {
});
}
if (!allModels.some(m => m.provider === "openai" && m.id === "gpt-5.1-codex-max")) {
allModels.push({
id: "gpt-5.1-codex-max",
name: "GPT-5.1 Codex Max",
api: "openai-responses",
baseUrl: "https://api.openai.com/v1",
provider: "openai",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
});
}
// Add missing Grok models
if (!allModels.some(m => m.provider === "xai" && m.id === "grok-code-fast-1")) {
allModels.push({

View file

@ -1199,6 +1199,23 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model<"openai-responses">,
"gpt-5.1-codex-max": {
id: "gpt-5.1-codex-max",
name: "GPT-5.1 Codex Max",
api: "openai-responses",
provider: "openai",
baseUrl: "https://api.openai.com/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
},
groq: {
"llama-3.1-8b-instant": {
@ -3861,23 +3878,6 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/magistral-small-2506": {
id: "mistralai/magistral-small-2506",
name: "Mistral: Magistral Small 2506",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.5,
output: 1.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40000,
maxTokens: 40000,
} satisfies Model<"openai-completions">,
"mistralai/magistral-medium-2506:thinking": {
id: "mistralai/magistral-medium-2506:thinking",
name: "Mistral: Magistral Medium 2506 (thinking)",
@ -3895,23 +3895,6 @@ export const MODELS = {
contextWindow: 40960,
maxTokens: 40000,
} satisfies Model<"openai-completions">,
"mistralai/magistral-medium-2506": {
id: "mistralai/magistral-medium-2506",
name: "Mistral: Magistral Medium 2506",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 2,
output: 5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40960,
maxTokens: 40000,
} satisfies Model<"openai-completions">,
"google/gemini-2.5-pro-preview": {
id: "google/gemini-2.5-pro-preview",
name: "Google: Gemini 2.5 Pro Preview 06-05",
@ -3980,23 +3963,6 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"mistralai/devstral-small-2505": {
id: "mistralai/devstral-small-2505",
name: "Mistral: Devstral Small 2505",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.06,
output: 0.12,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/codex-mini": {
id: "openai/codex-mini",
name: "OpenAI: Codex Mini",
@ -4397,13 +4363,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.19999999999999998,
output: 0.88,
cacheRead: 0.106,
input: 0.15,
output: 0.7,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 163840,
maxTokens: 4096,
contextWindow: 8192,
maxTokens: 7168,
} satisfies Model<"openai-completions">,
"mistralai/mistral-small-3.1-24b-instruct:free": {
id: "mistralai/mistral-small-3.1-24b-instruct:free",
@ -4711,23 +4677,6 @@ export const MODELS = {
contextWindow: 163840,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/codestral-2501": {
id: "mistralai/codestral-2501",
name: "Mistral: Codestral 2501",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.3,
output: 0.8999999999999999,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"deepseek/deepseek-chat": {
id: "deepseek/deepseek-chat",
name: "DeepSeek: DeepSeek V3",
@ -5595,23 +5544,6 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/mistral-small": {
id: "mistralai/mistral-small",
name: "Mistral Small",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.19999999999999998,
output: 0.6,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/mistral-tiny": {
id: "mistralai/mistral-tiny",
name: "Mistral Tiny",

View file

@ -2,6 +2,12 @@
## [Unreleased]
## [0.12.10] - 2025-12-04
### Added
- Added `gpt-5.1-codex-max` model support
## [0.12.9] - 2025-12-04
### Added

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-coding-agent",
"version": "0.12.9",
"version": "0.12.10",
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
"type": "module",
"piConfig": {
@ -28,9 +28,9 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@mariozechner/pi-agent-core": "^0.12.9",
"@mariozechner/pi-ai": "^0.12.9",
"@mariozechner/pi-tui": "^0.12.9",
"@mariozechner/pi-agent-core": "^0.12.10",
"@mariozechner/pi-ai": "^0.12.10",
"@mariozechner/pi-tui": "^0.12.10",
"chalk": "^5.5.0",
"diff": "^8.0.2",
"glob": "^11.0.3"

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-mom",
"version": "0.12.9",
"version": "0.12.10",
"description": "Slack bot that delegates messages to the pi coding agent",
"type": "module",
"bin": {
@ -21,8 +21,8 @@
},
"dependencies": {
"@anthropic-ai/sandbox-runtime": "^0.0.16",
"@mariozechner/pi-agent-core": "^0.12.9",
"@mariozechner/pi-ai": "^0.12.9",
"@mariozechner/pi-agent-core": "^0.12.10",
"@mariozechner/pi-ai": "^0.12.10",
"@sinclair/typebox": "^0.34.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",

View file

@ -249,6 +249,15 @@ Update when you learn something important or when asked to remember something.
### Current Memory
${memory}
## System Configuration Log
Maintain ${workspacePath}/SYSTEM.md to log all environment modifications:
- Installed packages (apk add, npm install, pip install)
- Environment variables set
- Config files modified (~/.gitconfig, cron jobs, etc.)
- Skill dependencies installed
Update this file whenever you modify the environment. On fresh container, read it first to restore your setup.
## Log Queries (CRITICAL: limit output to avoid context overflow)
Format: \`{"date":"...","ts":"...","user":"...","userName":"...","text":"...","isBot":false}\`
The log contains user messages AND your tool calls/results. Filter appropriately.

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi",
"version": "0.12.9",
"version": "0.12.10",
"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.12.9",
"@mariozechner/pi-agent-core": "^0.12.10",
"chalk": "^5.5.0"
},
"devDependencies": {}

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-proxy",
"version": "0.12.9",
"version": "0.12.10",
"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.12.9",
"version": "0.12.10",
"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.0.5",
"version": "1.0.6",
"private": true,
"type": "module",
"scripts": {

View file

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