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>
43 lines
1.3 KiB
TOML
43 lines
1.3 KiB
TOML
[package]
|
|
name = "codewhale-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
description = "Agentic terminal facade for open-source and open-weight coding models"
|
|
|
|
[[bin]]
|
|
name = "codewhale"
|
|
path = "src/main.rs"
|
|
|
|
# Short-form convenience alias — forwards to `codewhale` silently.
|
|
[[bin]]
|
|
name = "codew"
|
|
path = "src/bin/codew_legacy_shim.rs"
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
clap.workspace = true
|
|
clap_complete.workspace = true
|
|
codewhale-agent = { path = "../agent", version = "0.8.55" }
|
|
codewhale-app-server = { path = "../app-server", version = "0.8.55" }
|
|
codewhale-config = { path = "../config", version = "0.8.55" }
|
|
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.55" }
|
|
codewhale-mcp = { path = "../mcp", version = "0.8.55" }
|
|
codewhale-release = { path = "../release", version = "0.8.55" }
|
|
codewhale-secrets = { path = "../secrets", version = "0.8.55" }
|
|
codewhale-state = { path = "../state", version = "0.8.55" }
|
|
chrono.workspace = true
|
|
dirs.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
reqwest = { workspace = true, features = ["blocking"] }
|
|
rustls.workspace = true
|
|
semver.workspace = true
|
|
tokio.workspace = true
|
|
sha2.workspace = true
|
|
tempfile = "3.16"
|
|
tracing.workspace = true
|
|
|
|
[dev-dependencies]
|