mirror of
https://github.com/openai/codex.git
synced 2026-09-07 15:40:00 +00:00
## What changed - Add a hidden global `--psp` runtime flag and propagate it through TUI, exec, app-server, remote-control, and in-process startup paths. - Attach the `oai-chat-psp=true` cookie to first-party ChatGPT requests when enabled, using a cached cookie-aware client with sensitive request logging disabled. - Keep the routing selection out of persistent configuration layers while preserving it across config refreshes and agent role changes. ## Testing - Cover global flag parsing, app-server propagation, config-layer isolation, and preservation across config rebuilds and role changes. GitOrigin-RevId: 05cdc61ffd7162d8e48fc1e166f4732113e5a816
49 lines
1.5 KiB
Rust
49 lines
1.5 KiB
Rust
//! Entry-point for the `codex-exec` binary.
|
|
//!
|
|
//! When this CLI is invoked normally, it parses the standard `codex-exec` CLI
|
|
//! options and launches the non-interactive Codex agent. However, if it is
|
|
//! invoked with arg0 as `codex-linux-sandbox`, we instead treat the invocation
|
|
//! as a request to run the logic for the standalone `codex-linux-sandbox`
|
|
//! executable (i.e., parse any -s args and then run a *sandboxed* command under
|
|
//! Landlock + seccomp.
|
|
//!
|
|
//! This allows us to ship a completely separate set of functionality as part
|
|
//! of the `codex-exec` binary.
|
|
use clap::Parser;
|
|
use codex_arg0::Arg0DispatchPaths;
|
|
use codex_arg0::arg0_dispatch_or_else;
|
|
use codex_exec::Cli;
|
|
use codex_exec::run_main;
|
|
use codex_utils_cli::CliConfigOverrides;
|
|
|
|
#[derive(Parser, Debug)]
|
|
struct TopCli {
|
|
#[arg(long, global = true, hide = true)]
|
|
psp: bool,
|
|
|
|
#[clap(flatten)]
|
|
config_overrides: CliConfigOverrides,
|
|
|
|
#[clap(flatten)]
|
|
inner: Cli,
|
|
}
|
|
|
|
fn main() -> anyhow::Result<()> {
|
|
arg0_dispatch_or_else(|arg0_paths: Arg0DispatchPaths| async move {
|
|
let top_cli = TopCli::parse();
|
|
// Merge root-level overrides into inner CLI struct so downstream logic remains unchanged.
|
|
let mut inner = top_cli.inner;
|
|
inner.psp = top_cli.psp;
|
|
inner
|
|
.config_overrides
|
|
.prepend_root_overrides(top_cli.config_overrides);
|
|
|
|
run_main(inner, arg0_paths).await?;
|
|
Ok(())
|
|
})
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[path = "main_tests.rs"]
|
|
mod tests;
|