Skip to content

Commit 78d4036

Browse files
committed
fix(parsers): codex/gemini/opencode parsers emit ToolCall/ToolResult from native wire shapes (v0.1.11)
The codex, gemini, and opencode session-backend parsers accepted the upstream wire shapes for tool calls but silently dropped them. Real users running tool-using agents through these provider plugins saw no ToolCall/ToolResult events in the daemon or UI even though the calls were happening. This fix wires each parser to translate the native wire shape into SessionEvent::ToolCall / SessionEvent::ToolResult: - codex: item.added / item.delta / item.completed for function_call items, with arguments-string accumulation across deltas; function call output items translate to ToolResult. Parser is now per-session stateful (CodexParser struct) so streaming-arg accumulation is isolated between concurrent sessions. - gemini: top-level functionCall / functionResponse events, plus partialResult.candidates[..].content.parts[..].functionCall|response for the streaming candidate-parts shape. - opencode: tool_use / tool_result events. Tests added (11 new, all green): per-provider coverage of the basic tool_call shape, the result shape, parallel tool calls (codex), streaming-arg accumulation (codex), candidate-parts extraction (gemini), and the existing text path stays unchanged (opencode). v0.1.10 -> v0.1.11. Workspace + all path-dep pins bumped. Purely additive: existing SessionEvent variants are unchanged; the parsers just emit more of them now.
1 parent 653a8a8 commit 78d4036

13 files changed

Lines changed: 552 additions & 64 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ members = [
1313
resolver = "2"
1414

1515
[workspace.package]
16-
version = "0.1.10"
16+
version = "0.1.11"
1717
edition = "2021"
1818
license = "MIT"
1919
authors = ["Launchapp.dev"]

animus-control-protocol/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ readme.workspace = true
1818
client = ["dep:tokio", "dep:anyhow"]
1919

2020
[dependencies]
21-
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.10" }
22-
animus-subject-protocol = { path = "../animus-subject-protocol", version = "0.1.10" }
23-
animus-log-storage-protocol = { path = "../animus-log-storage-protocol", version = "0.1.10" }
24-
animus-trigger-protocol = { path = "../animus-trigger-protocol", version = "0.1.10" }
21+
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.11" }
22+
animus-subject-protocol = { path = "../animus-subject-protocol", version = "0.1.11" }
23+
animus-log-storage-protocol = { path = "../animus-log-storage-protocol", version = "0.1.11" }
24+
animus-trigger-protocol = { path = "../animus-trigger-protocol", version = "0.1.11" }
2525

2626
async-trait.workspace = true
2727
serde.workspace = true

animus-log-storage-protocol/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ repository.workspace = true
1010
readme.workspace = true
1111

1212
[dependencies]
13-
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.10" }
13+
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.11" }
1414
serde.workspace = true
1515
serde_json.workspace = true
1616
async-trait.workspace = true

animus-plugin-runtime/Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ repository.workspace = true
1010
readme.workspace = true
1111

1212
[dependencies]
13-
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.10" }
14-
animus-subject-protocol = { path = "../animus-subject-protocol", version = "0.1.10" }
15-
animus-provider-protocol = { path = "../animus-provider-protocol", version = "0.1.10" }
16-
animus-trigger-protocol = { path = "../animus-trigger-protocol", version = "0.1.10" }
17-
animus-log-storage-protocol = { path = "../animus-log-storage-protocol", version = "0.1.10" }
18-
animus-transport-protocol = { path = "../animus-transport-protocol", version = "0.1.10" }
13+
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.11" }
14+
animus-subject-protocol = { path = "../animus-subject-protocol", version = "0.1.11" }
15+
animus-provider-protocol = { path = "../animus-provider-protocol", version = "0.1.11" }
16+
animus-trigger-protocol = { path = "../animus-trigger-protocol", version = "0.1.11" }
17+
animus-log-storage-protocol = { path = "../animus-log-storage-protocol", version = "0.1.11" }
18+
animus-transport-protocol = { path = "../animus-transport-protocol", version = "0.1.11" }
1919
serde.workspace = true
2020
serde_json.workspace = true
2121
tokio.workspace = true

animus-provider-protocol/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ repository.workspace = true
1010
readme.workspace = true
1111

1212
[dependencies]
13-
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.10" }
13+
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.11" }
1414
serde.workspace = true
1515
serde_json.workspace = true
1616
async-trait.workspace = true

animus-session-backend/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ repository.workspace = true
1010
readme.workspace = true
1111

1212
[dependencies]
13-
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.10" }
13+
animus-plugin-protocol = { path = "../animus-plugin-protocol", version = "0.1.11" }
1414
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "sync", "io-util", "process", "time"] }
1515
serde.workspace = true
1616
serde_json.workspace = true

0 commit comments

Comments
 (0)