diff --git a/llmx-rs/Cargo.lock b/llmx-rs/Cargo.lock index ca1d5592..1a65b1b3 100644 --- a/llmx-rs/Cargo.lock +++ b/llmx-rs/Cargo.lock @@ -178,7 +178,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "app_test_support" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -952,7 +952,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core_test_support" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -2251,7 +2251,7 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ @@ -2828,7 +2828,7 @@ checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "llmx-ansi-escape" -version = "0.1.6" +version = "0.1.7" dependencies = [ "ansi-to-tui", "ratatui", @@ -2837,7 +2837,7 @@ dependencies = [ [[package]] name = "llmx-app-server" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "app_test_support", @@ -2872,7 +2872,7 @@ dependencies = [ [[package]] name = "llmx-app-server-protocol" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "clap", @@ -2890,7 +2890,7 @@ dependencies = [ [[package]] name = "llmx-apply-patch" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -2905,7 +2905,7 @@ dependencies = [ [[package]] name = "llmx-arg0" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "dotenvy", @@ -2918,7 +2918,7 @@ dependencies = [ [[package]] name = "llmx-async-utils" -version = "0.1.6" +version = "0.1.7" dependencies = [ "async-trait", "pretty_assertions", @@ -2942,7 +2942,7 @@ dependencies = [ [[package]] name = "llmx-backend-openapi-models" -version = "0.1.6" +version = "0.1.7" dependencies = [ "serde", "serde_json", @@ -2951,7 +2951,7 @@ dependencies = [ [[package]] name = "llmx-chatgpt" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "clap", @@ -2966,7 +2966,7 @@ dependencies = [ [[package]] name = "llmx-cli" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -3006,7 +3006,7 @@ dependencies = [ [[package]] name = "llmx-cloud-tasks" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "async-trait", @@ -3032,7 +3032,7 @@ dependencies = [ [[package]] name = "llmx-cloud-tasks-client" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "async-trait", @@ -3047,7 +3047,7 @@ dependencies = [ [[package]] name = "llmx-common" -version = "0.1.6" +version = "0.1.7" dependencies = [ "clap", "llmx-app-server-protocol", @@ -3059,7 +3059,7 @@ dependencies = [ [[package]] name = "llmx-core" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "askama", @@ -3140,7 +3140,7 @@ dependencies = [ [[package]] name = "llmx-exec" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -3173,7 +3173,7 @@ dependencies = [ [[package]] name = "llmx-execpolicy" -version = "0.1.6" +version = "0.1.7" dependencies = [ "allocative", "anyhow", @@ -3193,7 +3193,7 @@ dependencies = [ [[package]] name = "llmx-feedback" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "llmx-protocol", @@ -3204,7 +3204,7 @@ dependencies = [ [[package]] name = "llmx-file-search" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "clap", @@ -3217,7 +3217,7 @@ dependencies = [ [[package]] name = "llmx-git" -version = "0.1.6" +version = "0.1.7" dependencies = [ "assert_matches", "once_cell", @@ -3233,7 +3233,7 @@ dependencies = [ [[package]] name = "llmx-keyring-store" -version = "0.1.6" +version = "0.1.7" dependencies = [ "keyring", "tracing", @@ -3241,7 +3241,7 @@ dependencies = [ [[package]] name = "llmx-linux-sandbox" -version = "0.1.6" +version = "0.1.7" dependencies = [ "clap", "landlock", @@ -3254,7 +3254,7 @@ dependencies = [ [[package]] name = "llmx-login" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "base64", @@ -3278,7 +3278,7 @@ dependencies = [ [[package]] name = "llmx-mcp-server" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -3305,7 +3305,7 @@ dependencies = [ [[package]] name = "llmx-ollama" -version = "0.1.6" +version = "0.1.7" dependencies = [ "assert_matches", "async-stream", @@ -3321,7 +3321,7 @@ dependencies = [ [[package]] name = "llmx-otel" -version = "0.1.6" +version = "0.1.7" dependencies = [ "chrono", "eventsource-stream", @@ -3342,14 +3342,14 @@ dependencies = [ [[package]] name = "llmx-process-hardening" -version = "0.1.6" +version = "0.1.7" dependencies = [ "libc", ] [[package]] name = "llmx-protocol" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "base64", @@ -3375,7 +3375,7 @@ dependencies = [ [[package]] name = "llmx-responses-api-proxy" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "clap", @@ -3391,7 +3391,7 @@ dependencies = [ [[package]] name = "llmx-rmcp-client" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "axum", @@ -3420,7 +3420,7 @@ dependencies = [ [[package]] name = "llmx-stdio-to-uds" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -3431,7 +3431,7 @@ dependencies = [ [[package]] name = "llmx-tui" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "arboard", @@ -3496,7 +3496,7 @@ dependencies = [ [[package]] name = "llmx-utils-cache" -version = "0.1.6" +version = "0.1.7" dependencies = [ "lru", "sha1", @@ -3505,7 +3505,7 @@ dependencies = [ [[package]] name = "llmx-utils-image" -version = "0.1.6" +version = "0.1.7" dependencies = [ "base64", "image", @@ -3517,7 +3517,7 @@ dependencies = [ [[package]] name = "llmx-utils-json-to-toml" -version = "0.1.6" +version = "0.1.7" dependencies = [ "pretty_assertions", "serde_json", @@ -3526,7 +3526,7 @@ dependencies = [ [[package]] name = "llmx-utils-pty" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "portable-pty", @@ -3535,7 +3535,7 @@ dependencies = [ [[package]] name = "llmx-utils-readiness" -version = "0.1.6" +version = "0.1.7" dependencies = [ "assert_matches", "async-trait", @@ -3546,11 +3546,11 @@ dependencies = [ [[package]] name = "llmx-utils-string" -version = "0.1.6" +version = "0.1.7" [[package]] name = "llmx-utils-tokenizer" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "pretty_assertions", @@ -3660,7 +3660,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "mcp-types" -version = "0.1.6" +version = "0.1.7" dependencies = [ "schemars 0.8.22", "serde", @@ -3670,7 +3670,7 @@ dependencies = [ [[package]] name = "mcp_test_support" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "assert_cmd", @@ -4253,7 +4253,7 @@ dependencies = [ [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" @@ -6403,7 +6403,7 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" @@ -7940,7 +7940,7 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ @@ -7949,7 +7949,7 @@ dependencies = [ [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ diff --git a/llmx-rs/Cargo.toml b/llmx-rs/Cargo.toml index 9ea96b3b..0d154bca 100644 --- a/llmx-rs/Cargo.toml +++ b/llmx-rs/Cargo.toml @@ -43,7 +43,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.1.6" +version = "0.1.7" # Track the edition for all workspace crates in one place. Individual # crates can still override this value, but keeping it here means new # crates created with `cargo new -w ...` automatically inherit the 2024 diff --git a/llmx-rs/app-server/tests/common/mcp_process.rs b/llmx-rs/app-server/tests/common/mcp_process.rs index 25623762..51d50d6a 100644 --- a/llmx-rs/app-server/tests/common/mcp_process.rs +++ b/llmx-rs/app-server/tests/common/mcp_process.rs @@ -138,7 +138,7 @@ impl McpProcess { client_info: ClientInfo { name: "llmx-app-server-tests".to_string(), title: None, - version: "0.1.6".to_string(), + version: "0.1.7".to_string(), }, })?); let req_id = self.send_request("initialize", params).await?; diff --git a/llmx-rs/app-server/tests/suite/user_agent.rs b/llmx-rs/app-server/tests/suite/user_agent.rs index c8156bda..37ba0964 100644 --- a/llmx-rs/app-server/tests/suite/user_agent.rs +++ b/llmx-rs/app-server/tests/suite/user_agent.rs @@ -26,7 +26,7 @@ async fn get_user_agent_returns_current_llmx_user_agent() -> Result<()> { let os_info = os_info::get(); let user_agent = format!( - "llmx_cli_rs/0.1.6 ({} {}; {}) {} (llmx-app-server-tests; 0.1.6)", + "llmx_cli_rs/0.1.7 ({} {}; {}) {} (llmx-app-server-tests; 0.1.7)", os_info.os_type(), os_info.version(), os_info.architecture().unwrap_or("unknown"), diff --git a/llmx-rs/mcp-server/tests/common/mcp_process.rs b/llmx-rs/mcp-server/tests/common/mcp_process.rs index 0676a905..0388f21f 100644 --- a/llmx-rs/mcp-server/tests/common/mcp_process.rs +++ b/llmx-rs/mcp-server/tests/common/mcp_process.rs @@ -144,7 +144,7 @@ impl McpProcess { let initialized = self.read_jsonrpc_message().await?; let os_info = os_info::get(); let user_agent = format!( - "llmx_cli_rs/0.1.6 ({} {}; {}) {} (elicitation test; 0.0.0)", + "llmx_cli_rs/0.1.7 ({} {}; {}) {} (elicitation test; 0.0.0)", os_info.os_type(), os_info.version(), os_info.architecture().unwrap_or("unknown"), @@ -163,7 +163,7 @@ impl McpProcess { "serverInfo": { "name": "llmx-mcp-server", "title": "LLMX", - "version": "0.1.6", + "version": "0.1.7", "user_agent": user_agent }, "protocolVersion": mcp_types::MCP_SCHEMA_VERSION diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_monthly_limit.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_monthly_limit.snap index c7e92832..72bf3e69 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_monthly_limit.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_monthly_limit.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭───────────────────────────────────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/usage for up-to-date │ │ information on rate limits and credits │ diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_reasoning_details.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_reasoning_details.snap index 8990db82..2b5f0897 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_reasoning_details.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_includes_reasoning_details.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭─────────────────────────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/usage for up-to-date │ │ information on rate limits and credits │ diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_empty_limits_message.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_empty_limits_message.snap index 766f17d2..898ea4a3 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_empty_limits_message.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_empty_limits_message.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭──────────────────────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/usage for up-to-date │ │ information on rate limits and credits │ diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_missing_limits_message.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_missing_limits_message.snap index 766f17d2..898ea4a3 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_missing_limits_message.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_missing_limits_message.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭──────────────────────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/usage for up-to-date │ │ information on rate limits and credits │ diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_stale_limits_message.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_stale_limits_message.snap index e17f7e18..1b8a04b2 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_stale_limits_message.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_shows_stale_limits_message.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭───────────────────────────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/usage for up-to-date │ │ information on rate limits and credits │ diff --git a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap index 4aa742b4..b6e2dc6a 100644 --- a/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap +++ b/llmx-rs/tui/src/status/snapshots/llmx_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap @@ -5,7 +5,7 @@ expression: sanitized /status ╭────────────────────────────────────────────╮ -│ >_ LLMX (v0.1.6) │ +│ >_ LLMX (v0.1.7) │ │ │ │ Visit https://chatgpt.com/llmx/settings/ │ │ usage for up-to-date │ diff --git a/llmx-rs/tui/tests/fixtures/binary-size-log.jsonl b/llmx-rs/tui/tests/fixtures/binary-size-log.jsonl index e148307c..ec85e048 100644 --- a/llmx-rs/tui/tests/fixtures/binary-size-log.jsonl +++ b/llmx-rs/tui/tests/fixtures/binary-size-log.jsonl @@ -17958,7 +17958,7 @@ {"ts":"2025-08-09T16:07:21.551Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_7xYZeN0TdkGDryUy2S9zPVtI","stream":"stdout","chunk":"Ci0tLSB0dWkvQ2FyZ28udG9tbAo="}}} {"ts":"2025-08-09T16:07:21.555Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_7xYZeN0TdkGDryUy2S9zPVtI","stream":"stdout","chunk":"W3BhY2thZ2VdCmVkaXRpb24gPSAiMjAyNCIKbmFtZSA9ICJjb2RleC10dWkiCnZlcnNpb24gPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKW1tiaW5dXQpuYW1lID0gImNvZGV4LXR1aSIKcGF0aCA9ICJzcmMvbWFpbi5ycyIKCltsaWJdCm5hbWUgPSAiY29kZXhfdHVpIgpwYXRoID0gInNyYy9saWIucnMiCgpbZmVhdHVyZXNdCiMgRW5hYmxlIHZ0MTAwLWJhc2VkIHRlc3RzIChlbXVsYXRvcikgd2hlbiBydW5uaW5nIHdpdGggYC0tZmVhdHVyZXMgdnQxMDAtdGVzdHNgLgp2dDEwMC10ZXN0cyA9IFtdCiMgR2F0ZSB2ZXJib3NlIGRlYnVnIGxvZ2dpbmcgaW5zaWRlIHRoZSBUVUkgaW1wbGVtZW50YXRpb24uCmRlYnVnLWxvZ3MgPSBbXQoKW2xpbnRzXQp3b3Jrc3BhY2UgPSB0cnVlCgpbZGVwZW5kZW5jaWVzXQphbnlob3cgPSAiMSIKYmFzZTY0ID0gIjAuMjIuMSIKY2hyb25vID0geyB2ZXJzaW9uID0gIjAuNCIsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KY2xhcCA9IHsgdmVyc2lvbiA9ICI0IiwgZmVhdHVyZXMgPSBbImRlcml2ZSJdIH0KY29kZXgtYW5zaS1lc2NhcGUgPSB7IHBhdGggPSAiLi4vYW5zaS1lc2NhcGUiIH0KY29kZXgtYXJnMCA9IHsgcGF0aCA9ICIuLi9hcmcwIiB9CmNvZGV4LWNvbW1vbiA9IHsgcGF0aCA9ICIuLi9jb21tb24iLCBmZWF0dXJlcyA9IFsKICAgICJjbGkiLAogICAgImVsYXBzZWQiLAogICAgInNhbmRib3hfc3VtbWFyeSIsCl0gfQpjb2RleC1jb3JlID0geyBwYXRoID0gIi4uL2NvcmUiIH0KY29kZXgtZmlsZS1zZWFyY2ggPSB7IHBhdGggPSAiLi4vZmlsZS1zZWFyY2giIH0KY29kZXgtbG9naW4gPSB7IHBhdGggPSAiLi4vbG9naW4iIH0KY29kZXgtb2xsYW1hID0geyBwYXRoID0gIi4uL29sbGFtYSIgfQpjb2xvci1leXJlID0gIjAuNi4zIgpjcm9zc3Rlcm0gPSB7IHZlcnNpb24gPSAiMC4yOC4xIiwgZmVhdHVyZXMgPSBbImJyYWNrZXRlZC1wYXN0ZSJdIH0KZGlmZnkgPSAiMC40LjIiCmltYWdlID0geyB2ZXJzaW9uID0gIl4wLjI1LjYiLCBkZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UsIGZlYXR1cmVzID0gWyJqcGVnIl0gfQpsYXp5X3N0YXRpYyA9ICIxIgpvbmNlX2NlbGwgPSAiMSIKbWNwLXR5cGVzID0geyBwYXRoID0gIi4uL21jcC10eXBlcyIgfQpwYXRoLWNsZWFuID0gIjEuMC4xIgpyYXRhdHVpID0geyB2ZXJzaW9uID0gIjAuMjkuMCIsIGZlYXR1cmVzID0gWwogICAgInNjcm9sbGluZy1yZWdpb25zIiwKICAgICJ1bnN0YWJsZS1yZW5kZXJlZC1saW5lLWluZm8iLAogICAgInVuc3RhYmxlLXdpZGdldC1yZWYiLApdIH0KcmF0YXR1aS1pbWFnZSA9ICI4LjAuMCIKcmVnZXgtbGl0ZSA9ICIwLjEiCnJlcXdlc3QgPSB7IHZlcnNpb24gPSAiMC4xMiIsIGZlYXR1cmVzID0gWyJqc29uIl0gfQpzZXJkZSA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbImRlcml2ZSJdIH0Kc2VyZGVfanNvbiA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbInByZXNlcnZlX29yZGVyIl0gfQpzaGxleCA9ICIxLjMuMCIKc3RydW0gPSAiMC4yNy4yIgpzdHJ1bV9tYWNyb3MgPSAiMC4yNy4yIgpzdXBwb3J0cy1jb2xvciA9ICIzLjAuMiIKdGV4dHdyYXAgPSAiMC4xNi4yIgp0b2tpbyA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbCiAgICAiaW8tc3RkIiwKICAgICJtYWNyb3MiLAogICAgInByb2Nlc3MiLAogICAgInJ0LW11bHRpLXRocmVhZCIsCiAgICAic2lnbmFsIiwKXSB9CnRyYWNpbmcgPSB7IHZlcnNpb24gPSAiMC4xLjQxIiwgZmVhdHVyZXMgPSBbImxvZyJdIH0KdHJhY2luZy1hcHBlbmRlciA9ICIwLjIuMyIKdHJhY2luZy1zdWJzY3JpYmVyID0geyB2ZXJzaW9uID0gIjAuMy4xOSIsIGZlYXR1cmVzID0gWyJlbnYtZmlsdGVyIl0gfQp0dWktaW5wdXQgPSAiMC4xNC4wIgp0dWktbWFya2Rvd24gPSAiMC4zLjMiCnVuaWNvZGUtc2VnbWVudGF0aW9uID0gIjEuMTIuMCIKdW5pY29kZS13aWR0aCA9ICIwLjEiCnV1aWQgPSAiMSIKCgpbZGV2LWRlcGVuZGVuY2llc10KY2hyb25vID0geyB2ZXJzaW9uID0gIjAuNCIsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KaW5zdGEgPSAiMS40My4xIgpwcmV0dHlfYXNzZXJ0aW9ucyA9ICIxIgpyYW5kID0gIjAuOCIKdnQxMDAgPSAiMC4xNi4yIgo="}}} {"ts":"2025-08-09T16:07:21.555Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_7xYZeN0TdkGDryUy2S9zPVtI","stream":"stdout","chunk":"Cg=="}}} -{"ts":"2025-08-09T16:07:21.557Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_7xYZeN0TdkGDryUy2S9zPVtI","stdout":"--- ansi-escape/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-ansi-escape\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_ansi_escape\"\npath = \"src/lib.rs\"\n\n[dependencies]\nansi-to-tui = \"7.0.0\"\nratatui = { version = \"0.29.0\", features = [\n \"unstable-rendered-line-info\",\n \"unstable-widget-ref\",\n] }\ntracing = { version = \"0.1.61\", features = [\"log\"] }\n\n--- apply-patch/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-apply-patch\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_apply_patch\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nsimilar = \"2.7.0\"\nthiserror = \"2.0.12\"\ntree-sitter = \"0.25.8\"\ntree-sitter-bash = \"0.25.0\"\n\n[dev-dependencies]\npretty_assertions = \"1.4.1\"\ntempfile = \"3.13.0\"\n\n--- arg0/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-arg0\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_arg0\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\ncodex-apply-patch = { path = \"../apply-patch\" }\ncodex-core = { path = \"../core\" }\ncodex-linux-sandbox = { path = \"../linux-sandbox\" }\ndotenvy = \"0.15.7\"\ntokio = { version = \"1\", features = [\"rt-multi-thread\"] }\n\n--- cli/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-cli\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_cli\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nclap = { version = \"4\", features = [\"derive\"] }\nclap_complete = \"4\"\ncodex-arg0 = { path = \"../arg0\" }\ncodex-chatgpt = { path = \"../chatgpt\" }\ncodex-common = { path = \"../common\", features = [\"cli\"] }\ncodex-core = { path = \"../core\" }\ncodex-exec = { path = \"../exec\" }\ncodex-login = { path = \"../login\" }\ncodex-mcp-server = { path = \"../mcp-server\" }\ncodex-tui = { path = \"../tui\" }\nserde_json = \"1\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = \"0.1.61\"\ntracing-subscriber = \"0.3.19\"\n\n--- common/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-common\"\nversion = { workspace = true }\n\n[lints]\nworkspace = true\n\n[dependencies]\nclap = { version = \"4\", features = [\"derive\", \"wrap_help\"], optional = true }\ncodex-core = { path = \"../core\" }\nserde = { version = \"1\", optional = true }\ntoml = { version = \"0.9\", optional = true }\n\n[features]\n# Separate feature so that `clap` is not a mandatory dependency.\ncli = [\"clap\", \"serde\", \"toml\"]\nelapsed = []\nsandbox_summary = []\n\n--- core/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-core\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_core\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nasync-channel = \"2.3.1\"\nbase64 = \"0.22\"\nbytes = \"1.10.1\"\nchrono = { version = \"0.4\", features = [\"serde\"] }\ncodex-apply-patch = { path = \"../apply-patch\" }\ncodex-login = { path = \"../login\" }\ncodex-mcp-client = { path = \"../mcp-client\" }\ndirs = \"6\"\nenv-flags = \"0.1.1\"\neventsource-stream = \"0.2.3\"\nfs2 = \"0.4.3\"\nfutures = \"0.3\"\nlibc = \"0.2.174\"\nmcp-types = { path = \"../mcp-types\" }\nmime_guess = \"2.0\"\nrand = \"0.9\"\nreqwest = { version = \"0.12\", features = [\"json\", \"stream\"] }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\nserde_bytes = \"0.11\"\nsha1 = \"0.10.6\"\nshlex = \"1.3.0\"\nsimilar = \"2.7.0\"\nstrum_macros = \"0.27.2\"\ntempfile = \"3\"\nthiserror = \"2.0.12\"\ntime = { version = \"0.3\", features = [\"formatting\", \"local-offset\", \"macros\"] }\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntokio-util = \"0.7.14\"\ntoml = \"0.9.4\"\ntoml_edit = \"0.23.3\"\ntracing = { version = \"0.1.61\", features = [\"log\"] }\ntree-sitter = \"0.25.8\"\ntree-sitter-bash = \"0.25.0\"\nuuid = { version = \"1\", features = [\"serde\", \"v4\"] }\nwhoami = \"1.6.0\"\nwildmatch = \"2.4.0\"\n\n\n[target.'cfg(target_os = \"linux\")'.dependencies]\nlandlock = \"0.4.1\"\nseccompiler = \"0.5.0\"\n\n# Build OpenSSL from source for musl builds.\n[target.x86_64-unknown-linux-musl.dependencies]\nopenssl-sys = { version = \"*\", features = [\"vendored\"] }\n\n# Build OpenSSL from source for musl builds.\n[target.aarch64-unknown-linux-musl.dependencies]\nopenssl-sys = { version = \"*\", features = [\"vendored\"] }\n\n[dev-dependencies]\nassert_cmd = \"2\"\ncore_test_support = { path = \"tests/common\" }\nmaplit = \"1.0.2\"\npredicates = \"3\"\npretty_assertions = \"1.4.1\"\ntempfile = \"3\"\ntokio-test = \"0.4\"\nwalkdir = \"2.5.0\"\nwiremock = \"0.6\"\n\n--- exec/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-exec\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-exec\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_exec\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nchrono = \"0.4.40\"\nclap = { version = \"4\", features = [\"derive\"] }\ncodex-arg0 = { path = \"../arg0\" }\ncodex-common = { path = \"../common\", features = [\n \"cli\",\n \"elapsed\",\n \"sandbox_summary\",\n] }\ncodex-core = { path = \"../core\" }\ncodex-ollama = { path = \"../ollama\" }\nowo-colors = \"4.2.0\"\nserde_json = \"1\"\nshlex = \"1.3.0\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = { version ","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":105153333}}}} +{"ts":"2025-08-09T16:07:21.557Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_7xYZeN0TdkGDryUy2S9zPVtI","stdout":"--- ansi-escape/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-ansi-escape\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_ansi_escape\"\npath = \"src/lib.rs\"\n\n[dependencies]\nansi-to-tui = \"7.0.0\"\nratatui = { version = \"0.29.0\", features = [\n \"unstable-rendered-line-info\",\n \"unstable-widget-ref\",\n] }\ntracing = { version = \"0.1.71\", features = [\"log\"] }\n\n--- apply-patch/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-apply-patch\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_apply_patch\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nsimilar = \"2.7.0\"\nthiserror = \"2.0.12\"\ntree-sitter = \"0.25.8\"\ntree-sitter-bash = \"0.25.0\"\n\n[dev-dependencies]\npretty_assertions = \"1.4.1\"\ntempfile = \"3.13.0\"\n\n--- arg0/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-arg0\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_arg0\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\ncodex-apply-patch = { path = \"../apply-patch\" }\ncodex-core = { path = \"../core\" }\ncodex-linux-sandbox = { path = \"../linux-sandbox\" }\ndotenvy = \"0.15.7\"\ntokio = { version = \"1\", features = [\"rt-multi-thread\"] }\n\n--- cli/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-cli\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_cli\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nclap = { version = \"4\", features = [\"derive\"] }\nclap_complete = \"4\"\ncodex-arg0 = { path = \"../arg0\" }\ncodex-chatgpt = { path = \"../chatgpt\" }\ncodex-common = { path = \"../common\", features = [\"cli\"] }\ncodex-core = { path = \"../core\" }\ncodex-exec = { path = \"../exec\" }\ncodex-login = { path = \"../login\" }\ncodex-mcp-server = { path = \"../mcp-server\" }\ncodex-tui = { path = \"../tui\" }\nserde_json = \"1\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = \"0.1.71\"\ntracing-subscriber = \"0.3.19\"\n\n--- common/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-common\"\nversion = { workspace = true }\n\n[lints]\nworkspace = true\n\n[dependencies]\nclap = { version = \"4\", features = [\"derive\", \"wrap_help\"], optional = true }\ncodex-core = { path = \"../core\" }\nserde = { version = \"1\", optional = true }\ntoml = { version = \"0.9\", optional = true }\n\n[features]\n# Separate feature so that `clap` is not a mandatory dependency.\ncli = [\"clap\", \"serde\", \"toml\"]\nelapsed = []\nsandbox_summary = []\n\n--- core/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-core\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_core\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nasync-channel = \"2.3.1\"\nbase64 = \"0.22\"\nbytes = \"1.10.1\"\nchrono = { version = \"0.4\", features = [\"serde\"] }\ncodex-apply-patch = { path = \"../apply-patch\" }\ncodex-login = { path = \"../login\" }\ncodex-mcp-client = { path = \"../mcp-client\" }\ndirs = \"6\"\nenv-flags = \"0.1.1\"\neventsource-stream = \"0.2.3\"\nfs2 = \"0.4.3\"\nfutures = \"0.3\"\nlibc = \"0.2.174\"\nmcp-types = { path = \"../mcp-types\" }\nmime_guess = \"2.0\"\nrand = \"0.9\"\nreqwest = { version = \"0.12\", features = [\"json\", \"stream\"] }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\nserde_bytes = \"0.11\"\nsha1 = \"0.10.6\"\nshlex = \"1.3.0\"\nsimilar = \"2.7.0\"\nstrum_macros = \"0.27.2\"\ntempfile = \"3\"\nthiserror = \"2.0.12\"\ntime = { version = \"0.3\", features = [\"formatting\", \"local-offset\", \"macros\"] }\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntokio-util = \"0.7.14\"\ntoml = \"0.9.4\"\ntoml_edit = \"0.23.3\"\ntracing = { version = \"0.1.71\", features = [\"log\"] }\ntree-sitter = \"0.25.8\"\ntree-sitter-bash = \"0.25.0\"\nuuid = { version = \"1\", features = [\"serde\", \"v4\"] }\nwhoami = \"1.6.0\"\nwildmatch = \"2.4.0\"\n\n\n[target.'cfg(target_os = \"linux\")'.dependencies]\nlandlock = \"0.4.1\"\nseccompiler = \"0.5.0\"\n\n# Build OpenSSL from source for musl builds.\n[target.x86_64-unknown-linux-musl.dependencies]\nopenssl-sys = { version = \"*\", features = [\"vendored\"] }\n\n# Build OpenSSL from source for musl builds.\n[target.aarch64-unknown-linux-musl.dependencies]\nopenssl-sys = { version = \"*\", features = [\"vendored\"] }\n\n[dev-dependencies]\nassert_cmd = \"2\"\ncore_test_support = { path = \"tests/common\" }\nmaplit = \"1.0.2\"\npredicates = \"3\"\npretty_assertions = \"1.4.1\"\ntempfile = \"3\"\ntokio-test = \"0.4\"\nwalkdir = \"2.5.0\"\nwiremock = \"0.6\"\n\n--- exec/Cargo.toml\n[package]\nedition = \"2024\"\nname = \"codex-exec\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-exec\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_exec\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nchrono = \"0.4.40\"\nclap = { version = \"4\", features = [\"derive\"] }\ncodex-arg0 = { path = \"../arg0\" }\ncodex-common = { path = \"../common\", features = [\n \"cli\",\n \"elapsed\",\n \"sandbox_summary\",\n] }\ncodex-core = { path = \"../core\" }\ncodex-ollama = { path = \"../ollama\" }\nowo-colors = \"4.2.0\"\nserde_json = \"1\"\nshlex = \"1.3.0\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = { version ","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":105153333}}}} {"ts":"2025-08-09T16:07:21.557Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"token_count","input_tokens":7946,"cached_input_tokens":7457,"output_tokens":155,"reasoning_output_tokens":64,"total_tokens":8101}}} {"ts":"2025-08-09T16:07:21.557Z","dir":"to_tui","kind":"insert_history","lines":6} {"ts":"2025-08-09T16:07:21.557Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} @@ -18179,7 +18179,7 @@ {"ts":"2025-08-09T16:07:29.588Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} {"ts":"2025-08-09T16:07:29.590Z","dir":"to_tui","kind":"app_event","variant":"Redraw"} {"ts":"2025-08-09T16:07:29.601Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_oXnHICDDZKHs2UzhT8ZEAASu","stream":"stdout","chunk":"W3BhY2thZ2VdCm5hbWUgPSAiY29kZXgtbWNwLWNsaWVudCIKdmVyc2lvbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CmVkaXRpb24gPSAiMjAyNCIKCltsaW50c10Kd29ya3NwYWNlID0gdHJ1ZQoKW2RlcGVuZGVuY2llc10KYW55aG93ID0gIjEiCm1jcC10eXBlcyA9IHsgcGF0aCA9ICIuLi9tY3AtdHlwZXMiIH0Kc2VyZGUgPSB7IHZlcnNpb24gPSAiMSIsIGZlYXR1cmVzID0gWyJkZXJpdmUiXSB9CnNlcmRlX2pzb24gPSAiMSIKdHJhY2luZyA9IHsgdmVyc2lvbiA9ICIwLjEuNDEiLCBmZWF0dXJlcyA9IFsibG9nIl0gfQp0cmFjaW5nLXN1YnNjcmliZXIgPSB7IHZlcnNpb24gPSAiMC4zIiwgZmVhdHVyZXMgPSBbImZtdCIsICJlbnYtZmlsdGVyIl0gfQp0b2tpbyA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbCiAgICAiaW8tdXRpbCIsCiAgICAibWFjcm9zIiwKICAgICJwcm9jZXNzIiwKICAgICJydC1tdWx0aS10aHJlYWQiLAogICAgInN5bmMiLAogICAgInRpbWUiLApdIH0K"}}} -{"ts":"2025-08-09T16:07:29.602Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_oXnHICDDZKHs2UzhT8ZEAASu","stdout":"[package]\nname = \"codex-mcp-client\"\nversion = { workspace = true }\nedition = \"2024\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nmcp-types = { path = \"../mcp-types\" }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\ntracing = { version = \"0.1.61\", features = [\"log\"] }\ntracing-subscriber = { version = \"0.3\", features = [\"fmt\", \"env-filter\"] }\ntokio = { version = \"1\", features = [\n \"io-util\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"sync\",\n \"time\",\n] }\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37966333}}}} +{"ts":"2025-08-09T16:07:29.602Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_oXnHICDDZKHs2UzhT8ZEAASu","stdout":"[package]\nname = \"codex-mcp-client\"\nversion = { workspace = true }\nedition = \"2024\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nmcp-types = { path = \"../mcp-types\" }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\ntracing = { version = \"0.1.71\", features = [\"log\"] }\ntracing-subscriber = { version = \"0.3\", features = [\"fmt\", \"env-filter\"] }\ntokio = { version = \"1\", features = [\n \"io-util\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"sync\",\n \"time\",\n] }\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37966333}}}} {"ts":"2025-08-09T16:07:29.602Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"token_count","input_tokens":11468,"cached_input_tokens":11169,"output_tokens":38,"reasoning_output_tokens":0,"total_tokens":11506}}} {"ts":"2025-08-09T16:07:29.603Z","dir":"to_tui","kind":"insert_history","lines":6} {"ts":"2025-08-09T16:07:29.603Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} @@ -18222,7 +18222,7 @@ {"ts":"2025-08-09T16:07:31.162Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} {"ts":"2025-08-09T16:07:31.163Z","dir":"to_tui","kind":"app_event","variant":"Redraw"} {"ts":"2025-08-09T16:07:31.190Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_qycmgsk86yqOKGA1kXHdWvS4","stream":"stdout","chunk":"W3BhY2thZ2VdCmVkaXRpb24gPSAiMjAyNCIKbmFtZSA9ICJjb2RleC1tY3Atc2VydmVyIgp2ZXJzaW9uID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KCltbYmluXV0KbmFtZSA9ICJjb2RleC1tY3Atc2VydmVyIgpwYXRoID0gInNyYy9tYWluLnJzIgoKW2xpYl0KbmFtZSA9ICJjb2RleF9tY3Bfc2VydmVyIgpwYXRoID0gInNyYy9saWIucnMiCgpbbGludHNdCndvcmtzcGFjZSA9IHRydWUKCltkZXBlbmRlbmNpZXNdCmFueWhvdyA9ICIxIgpjb2RleC1hcmcwID0geyBwYXRoID0gIi4uL2FyZzAiIH0KY29kZXgtY29yZSA9IHsgcGF0aCA9ICIuLi9jb3JlIiB9Cm1jcC10eXBlcyA9IHsgcGF0aCA9ICIuLi9tY3AtdHlwZXMiIH0Kc2NoZW1hcnMgPSAiMC44LjIyIgpzZXJkZSA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbImRlcml2ZSJdIH0Kc2VyZGVfanNvbiA9ICIxIgpzaGxleCA9ICIxLjMuMCIKc3RydW1fbWFjcm9zID0gIjAuMjcuMiIKdG9raW8gPSB7IHZlcnNpb24gPSAiMSIsIGZlYXR1cmVzID0gWwogICAgImlvLXN0ZCIsCiAgICAibWFjcm9zIiwKICAgICJwcm9jZXNzIiwKICAgICJydC1tdWx0aS10aHJlYWQiLAogICAgInNpZ25hbCIsCl0gfQp0b21sID0gIjAuOSIKdHJhY2luZyA9IHsgdmVyc2lvbiA9ICIwLjEuNDEiLCBmZWF0dXJlcyA9IFsibG9nIl0gfQp0cmFjaW5nLXN1YnNjcmliZXIgPSB7IHZlcnNpb24gPSAiMC4zIiwgZmVhdHVyZXMgPSBbImVudi1maWx0ZXIiLCAiZm10Il0gfQp1dWlkID0geyB2ZXJzaW9uID0gIjEiLCBmZWF0dXJlcyA9IFsic2VyZGUiLCAidjQiXSB9CgpbZGV2LWRlcGVuZGVuY2llc10KYXNzZXJ0X2NtZCA9ICIyIgptY3BfdGVzdF9zdXBwb3J0ID0geyBwYXRoID0gInRlc3RzL2NvbW1vbiIgfQpwcmV0dHlfYXNzZXJ0aW9ucyA9ICIxLjQuMSIKdGVtcGZpbGUgPSAiMyIKdG9raW8tdGVzdCA9ICIwLjQiCndpcmVtb2NrID0gIjAuNiIK"}}} -{"ts":"2025-08-09T16:07:31.191Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_qycmgsk86yqOKGA1kXHdWvS4","stdout":"[package]\nedition = \"2024\"\nname = \"codex-mcp-server\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-mcp-server\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_mcp_server\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\ncodex-arg0 = { path = \"../arg0\" }\ncodex-core = { path = \"../core\" }\nmcp-types = { path = \"../mcp-types\" }\nschemars = \"0.8.22\"\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\nshlex = \"1.3.0\"\nstrum_macros = \"0.27.2\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntoml = \"0.9\"\ntracing = { version = \"0.1.61\", features = [\"log\"] }\ntracing-subscriber = { version = \"0.3\", features = [\"env-filter\", \"fmt\"] }\nuuid = { version = \"1\", features = [\"serde\", \"v4\"] }\n\n[dev-dependencies]\nassert_cmd = \"2\"\nmcp_test_support = { path = \"tests/common\" }\npretty_assertions = \"1.4.1\"\ntempfile = \"3\"\ntokio-test = \"0.4\"\nwiremock = \"0.6\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37856500}}}} +{"ts":"2025-08-09T16:07:31.191Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_qycmgsk86yqOKGA1kXHdWvS4","stdout":"[package]\nedition = \"2024\"\nname = \"codex-mcp-server\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-mcp-server\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_mcp_server\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\ncodex-arg0 = { path = \"../arg0\" }\ncodex-core = { path = \"../core\" }\nmcp-types = { path = \"../mcp-types\" }\nschemars = \"0.8.22\"\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = \"1\"\nshlex = \"1.3.0\"\nstrum_macros = \"0.27.2\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntoml = \"0.9\"\ntracing = { version = \"0.1.71\", features = [\"log\"] }\ntracing-subscriber = { version = \"0.3\", features = [\"env-filter\", \"fmt\"] }\nuuid = { version = \"1\", features = [\"serde\", \"v4\"] }\n\n[dev-dependencies]\nassert_cmd = \"2\"\nmcp_test_support = { path = \"tests/common\" }\npretty_assertions = \"1.4.1\"\ntempfile = \"3\"\ntokio-test = \"0.4\"\nwiremock = \"0.6\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37856500}}}} {"ts":"2025-08-09T16:07:31.191Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"token_count","input_tokens":11716,"cached_input_tokens":11425,"output_tokens":38,"reasoning_output_tokens":0,"total_tokens":11754}}} {"ts":"2025-08-09T16:07:31.191Z","dir":"to_tui","kind":"insert_history","lines":6} {"ts":"2025-08-09T16:07:31.191Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} @@ -18622,7 +18622,7 @@ {"ts":"2025-08-09T16:07:50.564Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} {"ts":"2025-08-09T16:07:50.566Z","dir":"to_tui","kind":"app_event","variant":"Redraw"} {"ts":"2025-08-09T16:07:50.587Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_jSRPjVaCwt6qcG7B0PgK4ekB","stream":"stdout","chunk":"W3BhY2thZ2VdCmVkaXRpb24gPSAiMjAyNCIKbmFtZSA9ICJjb2RleC1vbGxhbWEiCnZlcnNpb24gPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKW2xpYl0KbmFtZSA9ICJjb2RleF9vbGxhbWEiCnBhdGggPSAic3JjL2xpYi5ycyIKCltsaW50c10Kd29ya3NwYWNlID0gdHJ1ZQoKW2RlcGVuZGVuY2llc10KYXN5bmMtc3RyZWFtID0gIjAuMyIKYnl0ZXMgPSAiMS4xMC4xIgpjb2RleC1jb3JlID0geyBwYXRoID0gIi4uL2NvcmUiIH0KZnV0dXJlcyA9ICIwLjMiCnJlcXdlc3QgPSB7IHZlcnNpb24gPSAiMC4xMiIsIGZlYXR1cmVzID0gWyJqc29uIiwgInN0cmVhbSJdIH0Kc2VyZGVfanNvbiA9ICIxIgp0b2tpbyA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbCiAgICAiaW8tc3RkIiwKICAgICJtYWNyb3MiLAogICAgInByb2Nlc3MiLAogICAgInJ0LW11bHRpLXRocmVhZCIsCiAgICAic2lnbmFsIiwKXSB9CnRvbWwgPSAiMC45LjIiCnRyYWNpbmcgPSB7IHZlcnNpb24gPSAiMC4xLjQxIiwgZmVhdHVyZXMgPSBbImxvZyJdIH0Kd2lyZW1vY2sgPSAiMC42IgoKW2Rldi1kZXBlbmRlbmNpZXNdCnRlbXBmaWxlID0gIjMiCg=="}}} -{"ts":"2025-08-09T16:07:50.587Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_jSRPjVaCwt6qcG7B0PgK4ekB","stdout":"[package]\nedition = \"2024\"\nname = \"codex-ollama\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_ollama\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nasync-stream = \"0.3\"\nbytes = \"1.10.1\"\ncodex-core = { path = \"../core\" }\nfutures = \"0.3\"\nreqwest = { version = \"0.12\", features = [\"json\", \"stream\"] }\nserde_json = \"1\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntoml = \"0.9.2\"\ntracing = { version = \"0.1.61\", features = [\"log\"] }\nwiremock = \"0.6\"\n\n[dev-dependencies]\ntempfile = \"3\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":34747500}}}} +{"ts":"2025-08-09T16:07:50.587Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_jSRPjVaCwt6qcG7B0PgK4ekB","stdout":"[package]\nedition = \"2024\"\nname = \"codex-ollama\"\nversion = { workspace = true }\n\n[lib]\nname = \"codex_ollama\"\npath = \"src/lib.rs\"\n\n[lints]\nworkspace = true\n\n[dependencies]\nasync-stream = \"0.3\"\nbytes = \"1.10.1\"\ncodex-core = { path = \"../core\" }\nfutures = \"0.3\"\nreqwest = { version = \"0.12\", features = [\"json\", \"stream\"] }\nserde_json = \"1\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntoml = \"0.9.2\"\ntracing = { version = \"0.1.71\", features = [\"log\"] }\nwiremock = \"0.6\"\n\n[dev-dependencies]\ntempfile = \"3\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":34747500}}}} {"ts":"2025-08-09T16:07:50.588Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"token_count","input_tokens":12292,"cached_input_tokens":5537,"output_tokens":37,"reasoning_output_tokens":0,"total_tokens":12329}}} {"ts":"2025-08-09T16:07:50.588Z","dir":"to_tui","kind":"insert_history","lines":6} {"ts":"2025-08-09T16:07:50.588Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} @@ -18675,7 +18675,7 @@ {"ts":"2025-08-09T16:07:52.623Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"} {"ts":"2025-08-09T16:07:52.625Z","dir":"to_tui","kind":"app_event","variant":"Redraw"} {"ts":"2025-08-09T16:07:52.648Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_output_delta","call_id":"call_7GWwlzL4BAYWch7a0WsXNhSb","stream":"stdout","chunk":"W3BhY2thZ2VdCmVkaXRpb24gPSAiMjAyNCIKbmFtZSA9ICJjb2RleC10dWkiCnZlcnNpb24gPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKW1tiaW5dXQpuYW1lID0gImNvZGV4LXR1aSIKcGF0aCA9ICJzcmMvbWFpbi5ycyIKCltsaWJdCm5hbWUgPSAiY29kZXhfdHVpIgpwYXRoID0gInNyYy9saWIucnMiCgpbZmVhdHVyZXNdCiMgRW5hYmxlIHZ0MTAwLWJhc2VkIHRlc3RzIChlbXVsYXRvcikgd2hlbiBydW5uaW5nIHdpdGggYC0tZmVhdHVyZXMgdnQxMDAtdGVzdHNgLgp2dDEwMC10ZXN0cyA9IFtdCiMgR2F0ZSB2ZXJib3NlIGRlYnVnIGxvZ2dpbmcgaW5zaWRlIHRoZSBUVUkgaW1wbGVtZW50YXRpb24uCmRlYnVnLWxvZ3MgPSBbXQoKW2xpbnRzXQp3b3Jrc3BhY2UgPSB0cnVlCgpbZGVwZW5kZW5jaWVzXQphbnlob3cgPSAiMSIKYmFzZTY0ID0gIjAuMjIuMSIKY2hyb25vID0geyB2ZXJzaW9uID0gIjAuNCIsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KY2xhcCA9IHsgdmVyc2lvbiA9ICI0IiwgZmVhdHVyZXMgPSBbImRlcml2ZSJdIH0KY29kZXgtYW5zaS1lc2NhcGUgPSB7IHBhdGggPSAiLi4vYW5zaS1lc2NhcGUiIH0KY29kZXgtYXJnMCA9IHsgcGF0aCA9ICIuLi9hcmcwIiB9CmNvZGV4LWNvbW1vbiA9IHsgcGF0aCA9ICIuLi9jb21tb24iLCBmZWF0dXJlcyA9IFsKICAgICJjbGkiLAogICAgImVsYXBzZWQiLAogICAgInNhbmRib3hfc3VtbWFyeSIsCl0gfQpjb2RleC1jb3JlID0geyBwYXRoID0gIi4uL2NvcmUiIH0KY29kZXgtZmlsZS1zZWFyY2ggPSB7IHBhdGggPSAiLi4vZmlsZS1zZWFyY2giIH0KY29kZXgtbG9naW4gPSB7IHBhdGggPSAiLi4vbG9naW4iIH0KY29kZXgtb2xsYW1hID0geyBwYXRoID0gIi4uL29sbGFtYSIgfQpjb2xvci1leXJlID0gIjAuNi4zIgpjcm9zc3Rlcm0gPSB7IHZlcnNpb24gPSAiMC4yOC4xIiwgZmVhdHVyZXMgPSBbImJyYWNrZXRlZC1wYXN0ZSJdIH0KZGlmZnkgPSAiMC40LjIiCmltYWdlID0geyB2ZXJzaW9uID0gIl4wLjI1LjYiLCBkZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UsIGZlYXR1cmVzID0gWyJqcGVnIl0gfQpsYXp5X3N0YXRpYyA9ICIxIgpvbmNlX2NlbGwgPSAiMSIKbWNwLXR5cGVzID0geyBwYXRoID0gIi4uL21jcC10eXBlcyIgfQpwYXRoLWNsZWFuID0gIjEuMC4xIgpyYXRhdHVpID0geyB2ZXJzaW9uID0gIjAuMjkuMCIsIGZlYXR1cmVzID0gWwogICAgInNjcm9sbGluZy1yZWdpb25zIiwKICAgICJ1bnN0YWJsZS1yZW5kZXJlZC1saW5lLWluZm8iLAogICAgInVuc3RhYmxlLXdpZGdldC1yZWYiLApdIH0KcmF0YXR1aS1pbWFnZSA9ICI4LjAuMCIKcmVnZXgtbGl0ZSA9ICIwLjEiCnJlcXdlc3QgPSB7IHZlcnNpb24gPSAiMC4xMiIsIGZlYXR1cmVzID0gWyJqc29uIl0gfQpzZXJkZSA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbImRlcml2ZSJdIH0Kc2VyZGVfanNvbiA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbInByZXNlcnZlX29yZGVyIl0gfQpzaGxleCA9ICIxLjMuMCIKc3RydW0gPSAiMC4yNy4yIgpzdHJ1bV9tYWNyb3MgPSAiMC4yNy4yIgpzdXBwb3J0cy1jb2xvciA9ICIzLjAuMiIKdGV4dHdyYXAgPSAiMC4xNi4yIgp0b2tpbyA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbCiAgICAiaW8tc3RkIiwKICAgICJtYWNyb3MiLAogICAgInByb2Nlc3MiLAogICAgInJ0LW11bHRpLXRocmVhZCIsCiAgICAic2lnbmFsIiwKXSB9CnRyYWNpbmcgPSB7IHZlcnNpb24gPSAiMC4xLjQxIiwgZmVhdHVyZXMgPSBbImxvZyJdIH0KdHJhY2luZy1hcHBlbmRlciA9ICIwLjIuMyIKdHJhY2luZy1zdWJzY3JpYmVyID0geyB2ZXJzaW9uID0gIjAuMy4xOSIsIGZlYXR1cmVzID0gWyJlbnYtZmlsdGVyIl0gfQp0dWktaW5wdXQgPSAiMC4xNC4wIgp0dWktbWFya2Rvd24gPSAiMC4zLjMiCnVuaWNvZGUtc2VnbWVudGF0aW9uID0gIjEuMTIuMCIKdW5pY29kZS13aWR0aCA9ICIwLjEiCnV1aWQgPSAiMSIKCgpbZGV2LWRlcGVuZGVuY2llc10KY2hyb25vID0geyB2ZXJzaW9uID0gIjAuNCIsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KaW5zdGEgPSAiMS40My4xIgpwcmV0dHlfYXNzZXJ0aW9ucyA9ICIxIgpyYW5kID0gIjAuOCIKdnQxMDAgPSAiMC4xNi4yIgo="}}} -{"ts":"2025-08-09T16:07:52.649Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_7GWwlzL4BAYWch7a0WsXNhSb","stdout":"[package]\nedition = \"2024\"\nname = \"codex-tui\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-tui\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_tui\"\npath = \"src/lib.rs\"\n\n[features]\n# Enable vt100-based tests (emulator) when running with `--features vt100-tests`.\nvt100-tests = []\n# Gate verbose debug logging inside the TUI implementation.\ndebug-logs = []\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nbase64 = \"0.22.1\"\nchrono = { version = \"0.4\", features = [\"serde\"] }\nclap = { version = \"4\", features = [\"derive\"] }\ncodex-ansi-escape = { path = \"../ansi-escape\" }\ncodex-arg0 = { path = \"../arg0\" }\ncodex-common = { path = \"../common\", features = [\n \"cli\",\n \"elapsed\",\n \"sandbox_summary\",\n] }\ncodex-core = { path = \"../core\" }\ncodex-file-search = { path = \"../file-search\" }\ncodex-login = { path = \"../login\" }\ncodex-ollama = { path = \"../ollama\" }\ncolor-eyre = \"0.6.3\"\ncrossterm = { version = \"0.28.1\", features = [\"bracketed-paste\"] }\ndiffy = \"0.4.2\"\nimage = { version = \"^0.25.6\", default-features = false, features = [\"jpeg\"] }\nlazy_static = \"1\"\nonce_cell = \"1\"\nmcp-types = { path = \"../mcp-types\" }\npath-clean = \"1.0.1\"\nratatui = { version = \"0.29.0\", features = [\n \"scrolling-regions\",\n \"unstable-rendered-line-info\",\n \"unstable-widget-ref\",\n] }\nratatui-image = \"8.0.0\"\nregex-lite = \"0.1\"\nreqwest = { version = \"0.12\", features = [\"json\"] }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = { version = \"1\", features = [\"preserve_order\"] }\nshlex = \"1.3.0\"\nstrum = \"0.27.2\"\nstrum_macros = \"0.27.2\"\nsupports-color = \"3.0.2\"\ntextwrap = \"0.16.2\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = { version = \"0.1.61\", features = [\"log\"] }\ntracing-appender = \"0.2.3\"\ntracing-subscriber = { version = \"0.3.19\", features = [\"env-filter\"] }\ntui-input = \"0.14.0\"\ntui-markdown = \"0.3.3\"\nunicode-segmentation = \"1.12.0\"\nunicode-width = \"0.1\"\nuuid = \"1\"\n\n\n[dev-dependencies]\nchrono = { version = \"0.4\", features = [\"serde\"] }\ninsta = \"1.43.1\"\npretty_assertions = \"1\"\nrand = \"0.8\"\nvt100 = \"0.16.2\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37289709}}}} +{"ts":"2025-08-09T16:07:52.649Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"exec_command_end","call_id":"call_7GWwlzL4BAYWch7a0WsXNhSb","stdout":"[package]\nedition = \"2024\"\nname = \"codex-tui\"\nversion = { workspace = true }\n\n[[bin]]\nname = \"codex-tui\"\npath = \"src/main.rs\"\n\n[lib]\nname = \"codex_tui\"\npath = \"src/lib.rs\"\n\n[features]\n# Enable vt100-based tests (emulator) when running with `--features vt100-tests`.\nvt100-tests = []\n# Gate verbose debug logging inside the TUI implementation.\ndebug-logs = []\n\n[lints]\nworkspace = true\n\n[dependencies]\nanyhow = \"1\"\nbase64 = \"0.22.1\"\nchrono = { version = \"0.4\", features = [\"serde\"] }\nclap = { version = \"4\", features = [\"derive\"] }\ncodex-ansi-escape = { path = \"../ansi-escape\" }\ncodex-arg0 = { path = \"../arg0\" }\ncodex-common = { path = \"../common\", features = [\n \"cli\",\n \"elapsed\",\n \"sandbox_summary\",\n] }\ncodex-core = { path = \"../core\" }\ncodex-file-search = { path = \"../file-search\" }\ncodex-login = { path = \"../login\" }\ncodex-ollama = { path = \"../ollama\" }\ncolor-eyre = \"0.6.3\"\ncrossterm = { version = \"0.28.1\", features = [\"bracketed-paste\"] }\ndiffy = \"0.4.2\"\nimage = { version = \"^0.25.6\", default-features = false, features = [\"jpeg\"] }\nlazy_static = \"1\"\nonce_cell = \"1\"\nmcp-types = { path = \"../mcp-types\" }\npath-clean = \"1.0.1\"\nratatui = { version = \"0.29.0\", features = [\n \"scrolling-regions\",\n \"unstable-rendered-line-info\",\n \"unstable-widget-ref\",\n] }\nratatui-image = \"8.0.0\"\nregex-lite = \"0.1\"\nreqwest = { version = \"0.12\", features = [\"json\"] }\nserde = { version = \"1\", features = [\"derive\"] }\nserde_json = { version = \"1\", features = [\"preserve_order\"] }\nshlex = \"1.3.0\"\nstrum = \"0.27.2\"\nstrum_macros = \"0.27.2\"\nsupports-color = \"3.0.2\"\ntextwrap = \"0.16.2\"\ntokio = { version = \"1\", features = [\n \"io-std\",\n \"macros\",\n \"process\",\n \"rt-multi-thread\",\n \"signal\",\n] }\ntracing = { version = \"0.1.71\", features = [\"log\"] }\ntracing-appender = \"0.2.3\"\ntracing-subscriber = { version = \"0.3.19\", features = [\"env-filter\"] }\ntui-input = \"0.14.0\"\ntui-markdown = \"0.3.3\"\nunicode-segmentation = \"1.12.0\"\nunicode-width = \"0.1\"\nuuid = \"1\"\n\n\n[dev-dependencies]\nchrono = { version = \"0.4\", features = [\"serde\"] }\ninsta = \"1.43.1\"\npretty_assertions = \"1\"\nrand = \"0.8\"\nvt100 = \"0.16.2\"\n","stderr":"","exit_code":0,"duration":{"secs":0,"nanos":37289709}}}} {"ts":"2025-08-09T16:07:52.649Z","dir":"to_tui","kind":"codex_event","payload":{"id":"1","msg":{"type":"token_count","input_tokens":12592,"cached_input_tokens":12193,"output_tokens":36,"reasoning_output_tokens":0,"total_tokens":12628}}} {"ts":"2025-08-09T16:07:52.649Z","dir":"to_tui","kind":"insert_history","lines":6} {"ts":"2025-08-09T16:07:52.649Z","dir":"to_tui","kind":"app_event","variant":"RequestRedraw"}