this PR does two things:
1. refactor `apply_bespoke_event_handling` into a separate file as it's
getting kind of long;
2. add mcp tool call `item/started` and `item/completed` events. To roll
out app server events asap we didn't properly migrate mcp core events to
use TurnItem for mcp tool calls - this will be a follow-up PR.
real events generated in log:
```
{
"method": "codex/event/mcp_tool_call_end",
"params": {
"conversationId": "019a8021-26af-7c20-83db-21ca81e44d68",
"id": "0",
"msg": {
"call_id": "call_7EjRQkD9HnfyMWf7tGrT9FKA",
"duration": {
"nanos": 92708,
"secs": 0
},
"invocation": {
"arguments": {
"server": ""
},
"server": "codex",
"tool": "list_mcp_resources"
},
"result": {
"Ok": {
"content": [
{
"text": "{\"resources\":[]}",
"type": "text"
}
],
"isError": false
}
},
"type": "mcp_tool_call_end"
}
}
}
{
"method": "item/completed",
"params": {
"item": {
"arguments": {
"server": ""
},
"error": null,
"id": "call_7EjRQkD9HnfyMWf7tGrT9FKA",
"result": {
"content": [
{
"text": "{\"resources\":[]}",
"type": "text"
}
],
"structuredContent": null
},
"server": "codex",
"status": "completed",
"tool": "list_mcp_resources",
"type": "mcpToolCall"
}
}
}
```
55 lines
1.5 KiB
TOML
55 lines
1.5 KiB
TOML
[package]
|
|
edition = "2024"
|
|
name = "codex-app-server"
|
|
version = { workspace = true }
|
|
|
|
[[bin]]
|
|
name = "codex-app-server"
|
|
path = "src/main.rs"
|
|
|
|
[lib]
|
|
name = "codex_app_server"
|
|
path = "src/lib.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
codex-arg0 = { workspace = true }
|
|
codex-common = { workspace = true, features = ["cli"] }
|
|
codex-core = { workspace = true }
|
|
codex-backend-client = { workspace = true }
|
|
codex-file-search = { workspace = true }
|
|
codex-login = { workspace = true }
|
|
codex-protocol = { workspace = true }
|
|
codex-app-server-protocol = { workspace = true }
|
|
codex-feedback = { workspace = true }
|
|
codex-utils-json-to-toml = { workspace = true }
|
|
chrono = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
tokio = { workspace = true, features = [
|
|
"io-std",
|
|
"macros",
|
|
"process",
|
|
"rt-multi-thread",
|
|
"signal",
|
|
] }
|
|
tracing = { workspace = true, features = ["log"] }
|
|
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] }
|
|
opentelemetry-appender-tracing = { workspace = true }
|
|
uuid = { workspace = true, features = ["serde", "v7"] }
|
|
|
|
[dev-dependencies]
|
|
app_test_support = { workspace = true }
|
|
assert_cmd = { workspace = true }
|
|
base64 = { workspace = true }
|
|
core_test_support = { workspace = true }
|
|
mcp-types = { workspace = true }
|
|
os_info = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|
|
serial_test = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
toml = { workspace = true }
|
|
wiremock = { workspace = true }
|