b46f607d91
Completes the in-progress OpenAI Codex provider and bumps the workspace to 0.8.55. Builds on the committed Together AI provider + model catalog work. OpenAI Codex (ChatGPT) provider — experimental: - Wire the previously-dead OAuth module into credential resolution. The TUI config now resolves the access token via the Codex CLI login in ~/.codex/auth.json (env overrides OPENAI_CODEX_ACCESS_TOKEN/CODEX_ACCESS_TOKEN), refreshing expired tokens synchronously via the OpenAI token endpoint — mirroring the existing Kimi OAuth flow rather than introducing a new pattern. - Send the ChatGPT backend's required headers from the Responses client (chatgpt-account-id, OpenAI-Beta: responses=experimental, originator) and stop duplicating the Authorization header already installed on the client. - Fix the cli crate's non-exhaustive ProviderKind matches (compile blocker). Consistency / de-slop pass (so the provider fits the whole app, not one path): - has_api_key_for / active_provider_has_config_api_key now detect the Codex OAuth login on disk, the same way they detect Kimi OAuth — a `codex login` user is no longer reported as unauthenticated. - Replace the bogus OPENAI_CODEX_API_KEY hint (which exists nowhere else) with the real OPENAI_CODEX_ACCESS_TOKEN/CODEX_ACCESS_TOKEN in the auth-error and picker surfaces. - Drop dead state in the Responses stream parser (unused ToolCallState fields / imports); tool-call data is streamed live. - Update docs/PROVIDERS.md, config.example.toml, and the provider-metadata wire test for the Responses wire format. Release: - Bump workspace + crates + npm package to 0.8.55; update CHANGELOG.md and crates/tui/CHANGELOG.md. Note: the live Responses round-trip has not been exercised against the production ChatGPT backend in this environment; the provider ships as preview. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
1.7 KiB
TOML
57 lines
1.7 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/agent",
|
|
"crates/app-server",
|
|
"crates/cli",
|
|
"crates/config",
|
|
"crates/core",
|
|
"crates/execpolicy",
|
|
"crates/hooks",
|
|
"crates/mcp",
|
|
"crates/protocol",
|
|
"crates/release",
|
|
"crates/secrets",
|
|
"crates/state",
|
|
"crates/tools",
|
|
"crates/tui",
|
|
"crates/tui-core",
|
|
"crates/whaleflow",
|
|
]
|
|
default-members = ["crates/cli", "crates/app-server", "crates/tui"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "0.8.55"
|
|
edition = "2024"
|
|
# Rust 1.88 stabilized `let_chains` in `if`/`while` conditions, which the
|
|
# codebase relies on extensively. Cargo enforces this so users on older
|
|
# toolchains get a clear "package requires rustc 1.88+" error instead of a
|
|
# confusing E0658 from rustc.
|
|
rust-version = "1.88"
|
|
license = "MIT"
|
|
repository = "https://github.com/Hmbown/CodeWhale"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1.0.100"
|
|
async-trait = "0.1.89"
|
|
axum = { version = "0.8.5", features = ["json"] }
|
|
chrono = { version = "0.4.43", features = ["serde"] }
|
|
clap = { version = "4.5.54", features = ["derive"] }
|
|
clap_complete = "4.5"
|
|
dirs = "6.0.0"
|
|
reqwest = { version = "0.13.1", default-features = false, features = ["json", "rustls-no-provider", "socks"] }
|
|
rustls = { version = "0.23.36", default-features = false, features = ["ring", "std", "tls12"] }
|
|
rusqlite = { version = "0.32.1", features = ["bundled"] }
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.149"
|
|
semver = "1.0.28"
|
|
thiserror = "2.0"
|
|
tokio = { version = "1.49.0", features = ["full"] }
|
|
toml = "0.9.7"
|
|
sha2 = "0.10"
|
|
tower-http = { version = "0.6", features = ["cors"] }
|
|
tracing = "0.1"
|
|
tracing-appender = "0.2"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
|
|
uuid = { version = "1.11", features = ["v4"] }
|