Add per-turn cyber access program selection (#40687)

## What changed

- Add the experimental `turn/start.cyberAccessProgram` option with `standard`,
  `daybreakBlue`, and `daybreakRed` values.
- Forward the selection as `access_programs.cyber` on Responses, WebSocket,
  and remote-compaction requests made with ChatGPT authentication, while
  omitting it for API-key and custom-provider requests.
- Preserve the per-turn selection across recovery, compaction, and child-agent
  turns without making it a persistent thread setting.

## Testing

- Cover app-server forwarding, authentication boundaries, WebSocket reuse,
  turn recovery, compaction, and child-agent inheritance.

GitOrigin-RevId: d2eb468f365b2214c5099bc21741cf30f8bd2eb5
This commit is contained in:
faizan-oai authored and copyberry committed 2026-08-25 19:54:52 +00:00
1 parent a6e63f9f32
commit 94967e03e5
72 files changed
+1323 -273

No files matched your search

+1
View File
@@ -951,6 +951,7 @@ mod tests {
multi_agent_version: None,
multi_agent_mode: None,
realtime_active: None,
cyber_access_program: None,
effort: None,
summary: ReasoningSummary::Auto,
})
@@ -613,6 +613,7 @@ fn turn_context(root: &Path, turn_id: &str) -> RolloutItem {
multi_agent_version: None,
multi_agent_mode: None,
realtime_active: None,
cyber_access_program: None,
effort: None,
summary: ReasoningSummary::Auto,
})
@@ -1452,6 +1452,7 @@ async fn migration_compacts_subagent_prefix_and_does_not_project_it() {
multi_agent_version: None,
multi_agent_mode: None,
realtime_active: None,
cyber_access_program: None,
effort: None,
summary: ReasoningSummary::Auto,
}),