diff --git a/Cargo.lock b/Cargo.lock index 1f63b4de1..68bd92b64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2159,7 +2159,7 @@ dependencies = [ [[package]] name = "pi-natives" -version = "13.7.6" +version = "13.7.7" dependencies = [ "arboard", "ast-grep-core", diff --git a/Cargo.toml b/Cargo.toml index 1896378f7..b4c56430d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ exclude = ["crates/brush-core-vendored", "crates/brush-builtins-vendored"] resolver = "3" [workspace.package] -version = "13.7.6" +version = "13.7.7" edition = "2024" license = "MIT" authors = ["Can Boluk"] diff --git a/bun.lock b/bun.lock index 41453c5fd..517889d46 100644 --- a/bun.lock +++ b/bun.lock @@ -15,7 +15,7 @@ }, "packages/agent": { "name": "@oh-my-pi/pi-agent-core", - "version": "13.7.6", + "version": "13.7.7", "dependencies": { "@oh-my-pi/pi-ai": "workspace:*", "@oh-my-pi/pi-utils": "workspace:*", @@ -27,7 +27,7 @@ }, "packages/ai": { "name": "@oh-my-pi/pi-ai", - "version": "13.7.6", + "version": "13.7.7", "bin": { "pi-ai": "./src/cli.ts", }, @@ -51,7 +51,7 @@ }, "packages/coding-agent": { "name": "@oh-my-pi/pi-coding-agent", - "version": "13.7.6", + "version": "13.7.7", "bin": { "omp": "src/cli.ts", }, @@ -78,7 +78,7 @@ }, "packages/natives": { "name": "@oh-my-pi/pi-natives", - "version": "13.7.6", + "version": "13.7.7", "dependencies": { "@oh-my-pi/pi-utils": "workspace:*", }, @@ -112,7 +112,7 @@ }, "packages/stats": { "name": "@oh-my-pi/omp-stats", - "version": "13.7.6", + "version": "13.7.7", "bin": { "omp-stats": "./src/index.ts", }, @@ -137,7 +137,7 @@ }, "packages/swarm-extension": { "name": "@oh-my-pi/swarm-extension", - "version": "13.7.6", + "version": "13.7.7", "bin": { "omp-swarm": "src/cli.ts", }, @@ -150,7 +150,7 @@ }, "packages/tui": { "name": "@oh-my-pi/pi-tui", - "version": "13.7.6", + "version": "13.7.7", "dependencies": { "@oh-my-pi/pi-natives": "workspace:*", "@oh-my-pi/pi-utils": "workspace:*", @@ -163,7 +163,7 @@ }, "packages/utils": { "name": "@oh-my-pi/pi-utils", - "version": "13.7.6", + "version": "13.7.7", "dependencies": { "beautiful-mermaid": "^1.1", "winston": "^3.19", @@ -783,7 +783,7 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "marked": ["marked@17.0.3", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-jt1v2ObpyOKR8p4XaUJVk3YWRJ5n+i4+rjQopxvV32rSndTJXvIzuUdWWIy/1pFQMkQmvTXawzDNqOH/CUmx6A=="], + "marked": ["marked@17.0.4", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-NOmVMM+KAokHMvjWmC5N/ZOvgmSWuqJB8FoYI019j4ogb/PeRMKoKIjReZ2w3376kkA8dSJIP8uD993Kxc0iRQ=="], "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], diff --git a/packages/agent/package.json b/packages/agent/package.json index cfa0a2273..94c9fe8e6 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-agent-core", - "version": "13.7.6", + "version": "13.7.7", "description": "General-purpose agent with transport abstraction, state management, and attachment support", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index d7611ba7f..65eb88dee 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog ## [Unreleased] + +## [13.7.7] - 2026-03-04 ### Changed - Modified response ID normalization to preserve existing item ID prefixes when truncating oversized IDs diff --git a/packages/ai/package.json b/packages/ai/package.json index cef3d8321..48e51de15 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-ai", - "version": "13.7.6", + "version": "13.7.7", "description": "Unified LLM API with automatic model discovery and provider configuration", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/ai/test/openai-responses-replay-ids.test.ts b/packages/ai/test/openai-responses-replay-ids.test.ts deleted file mode 100644 index 0d1afe4da..000000000 --- a/packages/ai/test/openai-responses-replay-ids.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { describe, expect, it } from "bun:test"; -import { getBundledModel } from "../src/models"; -import { streamOpenAIResponses } from "../src/providers/openai-responses"; -import type { Context, Model } from "../src/types"; - -function createAbortedSignal(): AbortSignal { - const controller = new AbortController(); - controller.abort(); - return controller.signal; -} - -function createUsage() { - return { - input: 1, - output: 1, - cacheRead: 0, - cacheWrite: 0, - totalTokens: 2, - cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }, - }; -} - -describe("openai-responses replay item ids", () => { - it("keeps reasoning ids untouched while normalizing function_call ids", async () => { - const model = getBundledModel("openai", "gpt-5-mini") as Model<"openai-responses">; - const reasoningId = `rs_${"a".repeat(120)}`; - const { promise, resolve } = Promise.withResolvers<{ input: unknown[] }>(); - const context: Context = { - messages: [ - { role: "user", content: "hello", timestamp: Date.now() - 1000 }, - { - role: "assistant", - api: "openai-responses", - provider: "openai", - model: "gpt-5-mini", - usage: createUsage(), - stopReason: "toolUse", - timestamp: Date.now() - 500, - content: [ - { - type: "thinking", - thinking: "hidden", - thinkingSignature: JSON.stringify({ - type: "reasoning", - id: reasoningId, - summary: [{ type: "summary_text", text: "thinking" }], - }), - }, - { - type: "toolCall", - id: "call_custom|item_legacy", - name: "echo", - arguments: { text: "hi" }, - }, - ], - }, - ], - }; - - streamOpenAIResponses(model, context, { - apiKey: "test-key", - signal: createAbortedSignal(), - onPayload: payload => resolve(payload as { input: unknown[] }), - }); - - const payload = await promise; - const inputItems = payload.input as Array<{ type?: string; id?: string; call_id?: string }>; - const reasoningItem = inputItems.find(item => item.type === "reasoning"); - const functionCallItem = inputItems.find(item => item.type === "function_call"); - - expect(reasoningItem?.id).toBe(reasoningId); - expect(functionCallItem?.id).toBeDefined(); - expect(functionCallItem?.id?.startsWith("fc")).toBe(true); - expect(functionCallItem?.id).not.toBe("item_legacy"); - expect(functionCallItem?.call_id).toBe("call_custom"); - }); -}); diff --git a/packages/coding-agent/package.json b/packages/coding-agent/package.json index ef5cd0233..8631a3fbb 100644 --- a/packages/coding-agent/package.json +++ b/packages/coding-agent/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-coding-agent", - "version": "13.7.6", + "version": "13.7.7", "description": "Coding agent CLI with read, bash, edit, write tools and session management", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/natives/package.json b/packages/natives/package.json index f4cceb289..aaa84a4db 100644 --- a/packages/natives/package.json +++ b/packages/natives/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-natives", - "version": "13.7.6", + "version": "13.7.7", "description": "Native Rust bindings for grep, clipboard, image processing, syntax highlighting, PTY, and shell operations via N-API", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/stats/package.json b/packages/stats/package.json index 88e98b6a6..4e2456725 100644 --- a/packages/stats/package.json +++ b/packages/stats/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/omp-stats", - "version": "13.7.6", + "version": "13.7.7", "description": "Local observability dashboard for pi AI usage statistics", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/swarm-extension/package.json b/packages/swarm-extension/package.json index a6be57ca4..e02c7fd86 100644 --- a/packages/swarm-extension/package.json +++ b/packages/swarm-extension/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/swarm-extension", - "version": "13.7.6", + "version": "13.7.7", "description": "Swarm orchestration extension for omp", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Derek Rynd", diff --git a/packages/tui/package.json b/packages/tui/package.json index a9e424fa3..52ea41662 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-tui", - "version": "13.7.6", + "version": "13.7.7", "description": "Terminal User Interface library with differential rendering for efficient text-based applications", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk", diff --git a/packages/utils/package.json b/packages/utils/package.json index deefcc3ad..054278d98 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "@oh-my-pi/pi-utils", - "version": "13.7.6", + "version": "13.7.7", "description": "Shared utilities for pi packages", "homepage": "https://github.com/can1357/oh-my-pi", "author": "Can Boluk",