more helper functions
This commit is contained in:
5 files changed
+284
-132
No files matched your search
Generated
+121
-99
@@ -973,6 +973,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90"
|
||||
dependencies = [
|
||||
"axum-core",
|
||||
"base64",
|
||||
"bytes",
|
||||
"form_urlencoded",
|
||||
"futures-util",
|
||||
@@ -991,8 +992,10 @@ dependencies = [
|
||||
"serde_json",
|
||||
"serde_path_to_error",
|
||||
"serde_urlencoded",
|
||||
"sha1",
|
||||
"sync_wrapper",
|
||||
"tokio",
|
||||
"tokio-tungstenite 0.29.0",
|
||||
"tower",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
@@ -1533,7 +1536,7 @@ checksum = "e9b18233253483ce2f65329a24072ec414db782531bdbb7d0bbc4bd2ce6b7e21"
|
||||
[[package]]
|
||||
name = "codex-agent-identity"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -1552,7 +1555,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-analytics"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-app-server-protocol",
|
||||
"codex-git-utils",
|
||||
@@ -1571,7 +1574,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-api"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-trait",
|
||||
@@ -1590,17 +1593,17 @@ dependencies = [
|
||||
"serde_json",
|
||||
"thiserror 2.0.18",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tokio-tungstenite 0.28.0",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
"tungstenite",
|
||||
"tungstenite 0.27.0",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-app-server-protocol"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -1624,7 +1627,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-apply-patch"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-exec-server",
|
||||
@@ -1639,7 +1642,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-async-utils"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"tokio",
|
||||
@@ -1649,7 +1652,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-aws-auth"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"aws-config",
|
||||
"aws-credential-types",
|
||||
@@ -1663,7 +1666,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-backend-client"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-api",
|
||||
@@ -1680,7 +1683,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-backend-openapi-models"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -1690,7 +1693,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-client"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
@@ -1716,7 +1719,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-code-mode"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-trait",
|
||||
@@ -1733,12 +1736,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-collaboration-mode-templates"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[[package]]
|
||||
name = "codex-config"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -1763,6 +1766,7 @@ dependencies = [
|
||||
"prost",
|
||||
"schemars 0.8.22",
|
||||
"serde",
|
||||
"serde_ignored",
|
||||
"serde_json",
|
||||
"serde_path_to_error",
|
||||
"sha2 0.10.9",
|
||||
@@ -1781,7 +1785,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-connectors"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-app-server-protocol",
|
||||
@@ -1795,7 +1799,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-core"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
@@ -1842,7 +1846,6 @@ dependencies = [
|
||||
"codex-state",
|
||||
"codex-terminal-detection",
|
||||
"codex-thread-store",
|
||||
"codex-tool-api",
|
||||
"codex-tools",
|
||||
"codex-utils-absolute-path",
|
||||
"codex-utils-cache",
|
||||
@@ -1852,7 +1855,6 @@ dependencies = [
|
||||
"codex-utils-path",
|
||||
"codex-utils-plugins",
|
||||
"codex-utils-pty",
|
||||
"codex-utils-readiness",
|
||||
"codex-utils-stream-parser",
|
||||
"codex-utils-string",
|
||||
"codex-utils-template",
|
||||
@@ -1860,7 +1862,6 @@ dependencies = [
|
||||
"csv",
|
||||
"dirs",
|
||||
"dunce",
|
||||
"env-flags",
|
||||
"eventsource-stream",
|
||||
"futures",
|
||||
"http 1.4.0",
|
||||
@@ -1882,7 +1883,7 @@ dependencies = [
|
||||
"tempfile",
|
||||
"thiserror 2.0.18",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tokio-tungstenite 0.28.0",
|
||||
"tokio-util",
|
||||
"toml 0.9.12+spec-1.1.0",
|
||||
"toml_edit 0.24.1+spec-1.1.0",
|
||||
@@ -1896,7 +1897,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-core-plugins"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -1932,7 +1933,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-core-skills"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-analytics",
|
||||
@@ -1962,10 +1963,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-exec-server"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"arc-swap",
|
||||
"async-trait",
|
||||
"axum",
|
||||
"base64",
|
||||
"bytes",
|
||||
"codex-app-server-protocol",
|
||||
@@ -1975,13 +1977,15 @@ dependencies = [
|
||||
"codex-sandboxing",
|
||||
"codex-utils-absolute-path",
|
||||
"codex-utils-pty",
|
||||
"codex-utils-rustls-provider",
|
||||
"futures",
|
||||
"prost",
|
||||
"reqwest 0.12.28",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.18",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tokio-tungstenite 0.28.0",
|
||||
"tokio-util",
|
||||
"toml 0.9.12+spec-1.1.0",
|
||||
"tracing",
|
||||
@@ -1991,7 +1995,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-execpolicy"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -2007,7 +2011,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-experimental-api-macros"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -2017,16 +2021,16 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-extension-api"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-protocol",
|
||||
"codex-tool-api",
|
||||
"codex-tools",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-features"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-otel",
|
||||
"codex-protocol",
|
||||
@@ -2039,7 +2043,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-feedback"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-login",
|
||||
@@ -2052,7 +2056,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-file-search"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -2067,7 +2071,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-file-system"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"codex-protocol",
|
||||
@@ -2078,7 +2082,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-git-utils"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -2102,7 +2106,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-hooks"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -2124,7 +2128,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-keyring-store"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"keyring",
|
||||
"tracing",
|
||||
@@ -2133,7 +2137,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-login"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base64",
|
||||
@@ -2167,7 +2171,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-mcp"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-channel",
|
||||
@@ -2198,7 +2202,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-memories-read"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-protocol",
|
||||
"codex-shell-command",
|
||||
@@ -2211,7 +2215,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-model-provider"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"codex-agent-identity",
|
||||
@@ -2233,7 +2237,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-model-provider-info"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-api",
|
||||
"codex-app-server-protocol",
|
||||
@@ -2246,7 +2250,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-models-manager"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"chrono",
|
||||
@@ -2266,7 +2270,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-network-proxy"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -2296,7 +2300,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-otel"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"codex-api",
|
||||
@@ -2319,7 +2323,7 @@ dependencies = [
|
||||
"strum_macros 0.28.0",
|
||||
"thiserror 2.0.18",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tokio-tungstenite 0.28.0",
|
||||
"tracing",
|
||||
"tracing-opentelemetry",
|
||||
"tracing-subscriber",
|
||||
@@ -2328,7 +2332,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-plugin"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-config",
|
||||
"codex-utils-absolute-path",
|
||||
@@ -2339,7 +2343,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-protocol"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"chardetng",
|
||||
"chrono",
|
||||
@@ -2376,7 +2380,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-response-debug-context"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"codex-api",
|
||||
@@ -2387,10 +2391,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-rmcp-client"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
"base64",
|
||||
"bytes",
|
||||
"codex-api",
|
||||
"codex-client",
|
||||
@@ -2421,7 +2426,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-rollout"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -2445,11 +2450,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-rollout-trace"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-code-mode",
|
||||
"codex-protocol",
|
||||
"http 1.4.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tracing",
|
||||
@@ -2459,7 +2465,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-sandboxing"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-network-proxy",
|
||||
"codex-protocol",
|
||||
@@ -2476,7 +2482,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-shell-command"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"codex-protocol",
|
||||
@@ -2495,7 +2501,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-shell-escalation"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -2515,7 +2521,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-skills"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-utils-absolute-path",
|
||||
"include_dir",
|
||||
@@ -2525,7 +2531,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-state"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -2547,7 +2553,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-terminal-detection"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"tracing",
|
||||
]
|
||||
@@ -2555,7 +2561,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-thread-store"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"chrono",
|
||||
@@ -2563,6 +2569,7 @@ dependencies = [
|
||||
"codex-protocol",
|
||||
"codex-rollout",
|
||||
"codex-state",
|
||||
"codex-utils-path",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.18",
|
||||
@@ -2570,36 +2577,30 @@ dependencies = [
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-tool-api"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
dependencies = [
|
||||
"serde_json",
|
||||
"thiserror 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-tools"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"codex-app-server-protocol",
|
||||
"codex-code-mode",
|
||||
"codex-features",
|
||||
"codex-protocol",
|
||||
"codex-utils-absolute-path",
|
||||
"codex-utils-pty",
|
||||
"codex-utils-string",
|
||||
"rmcp",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.18",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-utils-absolute-path"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
"dunce",
|
||||
@@ -2611,7 +2612,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-cache"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"lru",
|
||||
"sha1",
|
||||
@@ -2621,7 +2622,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-home-dir"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-utils-absolute-path",
|
||||
"dirs",
|
||||
@@ -2630,7 +2631,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-image"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"codex-utils-cache",
|
||||
@@ -2643,7 +2644,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-output-truncation"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-protocol",
|
||||
"codex-utils-string",
|
||||
@@ -2652,7 +2653,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-path"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-utils-absolute-path",
|
||||
"dunce",
|
||||
@@ -2662,7 +2663,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-plugins"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"codex-exec-server",
|
||||
"codex-login",
|
||||
@@ -2674,7 +2675,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-pty"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"filedescriptor",
|
||||
@@ -2687,21 +2688,10 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-utils-readiness"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"thiserror 2.0.18",
|
||||
"time",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-utils-rustls-provider"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"rustls",
|
||||
]
|
||||
@@ -2709,12 +2699,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-stream-parser"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[[package]]
|
||||
name = "codex-utils-string"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"regex-lite",
|
||||
"serde",
|
||||
@@ -2724,12 +2714,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "codex-utils-template"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[[package]]
|
||||
name = "codex-windows-sandbox"
|
||||
version = "0.0.0"
|
||||
source = "git+https://github.com/openai/codex.git?rev=54ec99cb545176d23790a757a98f18925dcc3191#54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
source = "git+https://github.com/openai/codex.git?rev=326e31ab65dcbdf70c4a034b7adc5c8bd335d996#326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -3765,12 +3755,6 @@ dependencies = [
|
||||
"syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env-flags"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dbfd0e7fc632dec5e6c9396a27bc9f9975b4e039720e1fd3e34021d3ce28c415"
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
version = "1.0.2"
|
||||
@@ -9126,6 +9110,16 @@ dependencies = [
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_ignored"
|
||||
version = "0.1.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "115dffd5f3853e06e746965a20dcbae6ee747ae30b543d91b0e089668bb07798"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.149"
|
||||
@@ -10263,7 +10257,19 @@ dependencies = [
|
||||
"rustls-pki-types",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tungstenite",
|
||||
"tungstenite 0.27.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-tungstenite"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f72a05e828585856dacd553fba484c242c46e391fb0e58917c942ee9202915c"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"log",
|
||||
"tokio",
|
||||
"tungstenite 0.29.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -10608,6 +10614,22 @@ dependencies = [
|
||||
"utf-8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tungstenite"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c01152af293afb9c7c2a57e4b559c5620b421f6d133261c60dd2d0cdb38e6b8"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"data-encoding",
|
||||
"http 1.4.0",
|
||||
"httparse",
|
||||
"log",
|
||||
"rand 0.9.4",
|
||||
"sha1",
|
||||
"thiserror 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.20.0"
|
||||
|
||||
@@ -16,23 +16,23 @@ icu_calendar = "=2.1.1" # you have to understand i had to look at the codex-rs l
|
||||
|
||||
[dependencies.codex-backend-client]
|
||||
git = "https://github.com/openai/codex.git"
|
||||
rev = "54ec99cb545176d23790a757a98f18925dcc3191" # today is a good day to update the rev
|
||||
rev = "326e31ab65dcbdf70c4a034b7adc5c8bd335d996" # today is a good day to update the rev
|
||||
|
||||
[dependencies.codex-login]
|
||||
git = "https://github.com/openai/codex.git"
|
||||
rev = "54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
rev = "326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[dependencies.codex-config]
|
||||
git = "https://github.com/openai/codex.git"
|
||||
rev = "54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
rev = "326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[dependencies.codex-core]
|
||||
git = "https://github.com/openai/codex.git"
|
||||
rev = "54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
rev = "326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
[dependencies.codex-protocol]
|
||||
git = "https://github.com/openai/codex.git"
|
||||
rev = "54ec99cb545176d23790a757a98f18925dcc3191"
|
||||
rev = "326e31ab65dcbdf70c4a034b7adc5c8bd335d996"
|
||||
|
||||
# codexport shit
|
||||
# from codex-rs/Cargo.toml
|
||||
|
||||
+117
-28
@@ -1,12 +1,16 @@
|
||||
//! Exports and convenience from [codex-cli][ccrs]
|
||||
//!
|
||||
//! [ccrs]: https://github.com/openai/codex/tree/main/codex-rs
|
||||
//!
|
||||
//! # Common rules
|
||||
//!
|
||||
//! - Use Ephemeral store.
|
||||
|
||||
use std::{path::Path, sync::Arc};
|
||||
|
||||
use anyhow::Context;
|
||||
use codex_backend_client::Client as BackendClient;
|
||||
use codex_core::config::Config;
|
||||
use codex_core::config::Config; // this package takes 14 thousand years to compile; cant do Anything about it
|
||||
pub use codex_login::AuthDotJson;
|
||||
pub use codex_login::AuthManager as CodexAuthManager;
|
||||
use codex_login::AuthManager;
|
||||
@@ -18,31 +22,53 @@ pub struct Huge {
|
||||
pub client: BackendClient,
|
||||
}
|
||||
|
||||
// this uses config
|
||||
async fn stock_backend_client() -> anyhow::Result<Huge> {
|
||||
let config = Config::load_with_cli_overrides(Vec::new())
|
||||
.await
|
||||
.context("Failed to load config")?;
|
||||
let auth_manager =
|
||||
AuthManager::shared_from_config(&config, /*enable_codex_api_key_env*/ false).await;
|
||||
let auth = auth_manager
|
||||
.auth()
|
||||
.await
|
||||
.ok_or_else(|| anyhow::anyhow!("Not logged in; run `codex login`"))?;
|
||||
|
||||
// Important: only ChatGPT-style auth modes can hit the Codex backend (“wham” or “api/codex”)
|
||||
anyhow::ensure!(auth.uses_codex_backend(), "Need ChatGPT/Codex-backend auth");
|
||||
|
||||
let client = BackendClient::from_auth(config.chatgpt_base_url.clone(), &auth)?;
|
||||
let client = backend_client_from_auth_mgr_and_default_config(&auth_manager).await?;
|
||||
Ok(Huge {
|
||||
config,
|
||||
auth_manager,
|
||||
client,
|
||||
})
|
||||
}
|
||||
/// this uses config
|
||||
pub async fn backend_client_from_auth_mgr_and_default_config(
|
||||
auth_mgr: &AuthManager,
|
||||
) -> anyhow::Result<BackendClient> {
|
||||
let auth = auth_mgr
|
||||
.auth()
|
||||
.await
|
||||
.ok_or_else(|| anyhow::anyhow!("Not logged in; run `codex login`"))?;
|
||||
|
||||
// Important: only ChatGPT-style auth modes can hit the Codex backend (“wham” or “api/codex”)
|
||||
anyhow::ensure!(auth.uses_codex_backend(), "Need ChatGPT/Codex-backend auth");
|
||||
let config = Config::load_with_cli_overrides(Vec::new())
|
||||
.await
|
||||
.context("Failed to load config")?;
|
||||
let client = BackendClient::from_auth(config.chatgpt_base_url.clone(), &auth)?;
|
||||
Ok(client)
|
||||
}
|
||||
|
||||
pub async fn backend_client_from_auth_mgr(auth_mgr: &AuthManager) -> anyhow::Result<BackendClient> {
|
||||
let base_url = "https://chatgpt.com/backend-api".to_string();
|
||||
let auth = auth_mgr
|
||||
.auth()
|
||||
.await
|
||||
.ok_or_else(|| anyhow::anyhow!("Not logged in; run `codex login`"))?;
|
||||
anyhow::ensure!(auth.uses_codex_backend(), "Need ChatGPT/Codex-backend auth");
|
||||
let client = BackendClient::from_auth(base_url, &auth)?;
|
||||
Ok(client)
|
||||
}
|
||||
|
||||
use codex_protocol::account::PlanType as AccountPlanType;
|
||||
pub use codex_protocol::protocol::RateLimitSnapshot as RateLimit; // wym snapshot
|
||||
|
||||
async fn quota(client: &BackendClient) -> anyhow::Result<RateLimit> {
|
||||
pub async fn quota(client: &BackendClient) -> anyhow::Result<RateLimit> {
|
||||
let quota = client.get_rate_limits().await?;
|
||||
Ok(quota)
|
||||
}
|
||||
@@ -64,23 +90,54 @@ use codex_login::{CLIENT_ID, ServerOptions, run_login_server};
|
||||
/// - Do not write to disk. If you want to use the same login again, construct an AuthManager with Ephemeral store, and codex_home.
|
||||
/// you'll get the same auth.json in memory
|
||||
/// - this way you CAN logout using the auth manager.
|
||||
pub async fn chatgpt_login_to_auth_json(
|
||||
codex_home: std::path::PathBuf,
|
||||
) -> Result<Option<AuthDotJson>> {
|
||||
///
|
||||
/// tips: use a random codex_home for the ephemeral store if you want to login multiple times in the same process... why would you do that? idk, but hey, you do you. use the [random_path_generator] function below for that.
|
||||
pub async fn chatgpt_login_to_auth_json(codex_home: &Path) -> Result<Option<AuthDotJson>> {
|
||||
let store = codex_login::AuthCredentialsStoreMode::Ephemeral;
|
||||
let opts = ServerOptions::new(
|
||||
codex_home.clone(),
|
||||
let mut opts = ServerOptions::new(
|
||||
codex_home.to_path_buf(),
|
||||
CLIENT_ID.to_string(), // oh hell nah son
|
||||
None,
|
||||
store,
|
||||
);
|
||||
// if let some(port) = port { opts.port = port; } // if we decide to put port in the args later, this is how we would do it. for now, it is hardcoded to 1455, which is fine.
|
||||
|
||||
// run login server, what does it do?
|
||||
// first it does some bs
|
||||
// Then it tries to make a tiny_http server, on 127.0.0.1:[config OR 1457, config defaults to 1455]. Tiny retry loop on that dedicated fn.
|
||||
// server put to an arc, then it tries to build an url w build_authorize_url, which is not pub.
|
||||
// then it opens the url, prints
|
||||
// then there is a whole thing over here that i dont understand, but it seems to be waiting for the server to get the code (the server_handle)
|
||||
// may do some back and forth with the server, does have other branches
|
||||
// but the main one (process_request) would exchange it for the token (exchange_code_for_tokens)
|
||||
// then save (persist_tokens_async)
|
||||
// then it returns a response object which does more bs.
|
||||
// those logic is in the server fields, as joinhandles and such, so block until done would run those until done.
|
||||
//
|
||||
// side effects include:
|
||||
// - running a temporary server for the device code flow
|
||||
// - may log in.
|
||||
// - if logs in, saves in ephemeral store because our opts says so.
|
||||
//
|
||||
// how much control do we have?
|
||||
// the port.
|
||||
// not the host, it is hardcoded to 127.0.0.1 / localhost.
|
||||
// the store_mode, which we set to ephemeral, so it does not write to disk.
|
||||
// it opening the browser, opts.open_browser set to false.
|
||||
// issuer, which is api.openai.com by default. wouldnt want to change that anyway.
|
||||
// the client_id, wouldnt want to change that either, since auth could break if we do.
|
||||
// some other random stuff that probably isnt my use case.
|
||||
// i lowk may want to disable browser opening.
|
||||
//
|
||||
// could we replicate this flow ourselves? probably. opencode did it in typescript. but this is easier, and we get the auth.json for free, which is what we need to construct the auth manager, which is what we need to do anything else. soooooo.
|
||||
opts.open_browser = false;
|
||||
let server = run_login_server(opts)?;
|
||||
eprintln!("Open this URL to login:\n\n{}\n", server.auth_url);
|
||||
|
||||
server.block_until_done().await?;
|
||||
|
||||
codex_login::load_auth_dot_json(&codex_home, store).context("can not load saved auth.json")
|
||||
// load the auth.json from the ephemeral store, which should be there if login succeeded, and return it.
|
||||
codex_login::load_auth_dot_json(codex_home, store).context("can not load saved auth.json")
|
||||
}
|
||||
|
||||
pub async fn get_rate_limit() -> anyhow::Result<RateLimit> {
|
||||
@@ -90,7 +147,7 @@ pub async fn get_rate_limit() -> anyhow::Result<RateLimit> {
|
||||
|
||||
pub async fn use_login_server(
|
||||
codex_home: Option<std::path::PathBuf>,
|
||||
) -> anyhow::Result<Arc<AuthManager>> {
|
||||
) -> anyhow::Result<(Arc<AuthManager>, AuthDotJson)> {
|
||||
// manual map because the ? operator doesn't work in closures and I don't wanna deal with it
|
||||
let codex_home = match codex_home {
|
||||
Some(path) => path,
|
||||
@@ -99,20 +156,29 @@ pub async fn use_login_server(
|
||||
.into_path_buf(),
|
||||
};
|
||||
let cih = || codex_home.clone();
|
||||
chatgpt_login_to_auth_json(cih()).await?;
|
||||
let auth_mgr = auth_manager(cih(), codex_login::AuthCredentialsStoreMode::Ephemeral).await;
|
||||
Ok(auth_mgr)
|
||||
let auth_json = chatgpt_login_to_auth_json(&cih())
|
||||
.await?
|
||||
.context("no auth json found")?;
|
||||
// explicitly check if there is an auth.json, because if there isn't, then the auth manager will just be empty and not logged in, which is not what we want. we want to know if the login failed.
|
||||
let auth_mgr = auth_manager(&cih(), codex_login::AuthCredentialsStoreMode::Ephemeral).await;
|
||||
auth_mgr.auth().await.ok_or_else(|| {
|
||||
anyhow::anyhow!("Login failed; no auth found in auth manager after login")
|
||||
})?; // this would never reach since we checked for auth.json. but just in case, we check again.
|
||||
Ok((auth_mgr, auth_json))
|
||||
}
|
||||
|
||||
use codex_config::types::AuthCredentialsStoreMode;
|
||||
use std::path::PathBuf;
|
||||
|
||||
async fn auth_manager(
|
||||
codex_home: PathBuf,
|
||||
/// lightweight helper to construct an auth manager from codex home and store mode. use this if you already have an auth.json in the ephemeral store, or if you want to use the same login across multiple auth managers in the same process (by using the same codex home).
|
||||
pub async fn auth_manager(
|
||||
codex_home: &Path,
|
||||
store_mode: AuthCredentialsStoreMode,
|
||||
) -> Arc<AuthManager> {
|
||||
AuthManager::shared(
|
||||
codex_home, /*enable_codex_api_key_env*/ false, store_mode,
|
||||
codex_home.to_path_buf(),
|
||||
/*enable_codex_api_key_env*/ false,
|
||||
store_mode,
|
||||
None, // uses default https://chatgpt.com/backend-api
|
||||
)
|
||||
.await
|
||||
@@ -131,8 +197,31 @@ pub fn random_path_generator(name: Option<String>) -> PathBuf {
|
||||
)
|
||||
}
|
||||
|
||||
pub async fn auth_mgr_from_auth_json(auth_json: AuthDotJson) -> Result<Arc<AuthManager>> {
|
||||
let store = codex_login::AuthCredentialsStoreMode::Ephemeral;
|
||||
let auth_manager = AuthManager::shared(random_path_generator(None), false, store, None).await; // C ahh arguments
|
||||
Ok(auth_manager)
|
||||
/// Creates an authentication manager from a pre-existing auth.json.
|
||||
/// ```ignore
|
||||
/// let mgr, _ = auth_mgr_from_auth_json(auth_json).await?;
|
||||
/// // build backend client from mgr
|
||||
/// ```
|
||||
pub async fn auth_mgr_from_auth_json(
|
||||
auth_json: AuthDotJson,
|
||||
) -> Result<(Arc<AuthManager>, PathBuf)> {
|
||||
let store_mode = codex_login::AuthCredentialsStoreMode::Ephemeral;
|
||||
let path = random_path_generator(None);
|
||||
|
||||
// load auth.json
|
||||
codex_login::save_auth(&path, &auth_json, store_mode)?;
|
||||
// this must finish its work
|
||||
// volatile ahh - codex login use a static map to do ts; alright sure
|
||||
let auth_manager = AuthManager::shared(path.clone(), false, store_mode, None).await; // C ahh arguments
|
||||
Ok((auth_manager, path))
|
||||
}
|
||||
|
||||
/// quota should bundle with plan type. but for now, we can get the plan type separately like this.
|
||||
pub async fn get_plan(auth_mgr: &AuthManager) -> anyhow::Result<Option<AccountPlanType>> {
|
||||
let plan = auth_mgr
|
||||
.auth()
|
||||
.await
|
||||
.context("Failed to get auth info")?
|
||||
.account_plan_type();
|
||||
Ok(plan)
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
use codexport::chatgpt_login_to_auth_json;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
let random_home = codexport::random_path_generator(Some("me".to_string()));
|
||||
let auth_json = chatgpt_login_to_auth_json(&random_home).await?;
|
||||
let mgr = codexport::auth_manager(
|
||||
&random_home,
|
||||
codex_config::types::AuthCredentialsStoreMode::Ephemeral,
|
||||
)
|
||||
.await;
|
||||
let plan = codexport::get_plan(&mgr).await?;
|
||||
println!("plan: {plan:?}"); // Some(Plus) for me, if no auth.json, will be None
|
||||
let client = codexport::backend_client_from_auth_mgr(&mgr).await?;
|
||||
let quota = codexport::quota(&client).await?;
|
||||
println!("quota: {quota:?}"); // RateLimitSnapshot
|
||||
// could extract plan type with quota.plan_type
|
||||
println!("auth json:\n{auth_json:#?}"); // Some(AuthDotJson { ... }) for me
|
||||
let logged_out = mgr.logout_with_revoke().await?;
|
||||
println!("Logged out successfully: {logged_out}");
|
||||
Ok(())
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
we need to have a rough plan of the features of ts cli
|
||||
|
||||
csa add -> login via chatgpt / or add current auth.json if not already in the table
|
||||
csa show -> list of acc
|
||||
csa show <acc> -> verbose account <acc>
|
||||
csa swap -- codex resume -> csa swap auth to the best account, then execvpe
|
||||
csa swap <acc> -- codex logout -> csa swap to that acount, then execvpe
|
||||
|
||||
optional features
|
||||
|
||||
csa login
|
||||
csa logout
|
||||
csa refresh
|
||||
|
||||
logout and refresh have official bindings in codex-login (logout with revoke, refresh_token)
|
||||
|
||||
add could either
|
||||
1. stash the auth.json (clear) and run codex login -> csa add -- --opt -> codex login --opt, then stash THIS auth.json then put prev back if not csa add --use.
|
||||
2. use the code that chatgpt_login_to_auth_json already does
|
||||
Reference in new issue
Block a user