mirror of
https://github.com/openai/codex.git
synced 2026-11-09 08:40:33 +00:00
## Why Normal app-server protocol builds do not need the `ts-rs` and `schemars` implementations used to generate schema exports. ## What changed - Embed compressed stable and experimental TypeScript and JSON schema exports, and serve the existing export APIs from those artifacts. - Use no-op schema derives in non-test builds while keeping the real generators available for fixture regeneration and tests. - Move schema fixture regeneration behind a Python helper and update `just write-app-server-schema --experimental` to refresh the experimental embedded exports. ## Testing - Verify embedded exports match freshly generated stable and experimental schemas. - Verify export options and on-disk output remain compatible. GitOrigin-RevId: e8536338b457e6eec34bdf29ec0684144bd13734
46 lines
1.5 KiB
Rust
46 lines
1.5 KiB
Rust
use crate::JsonSchema;
|
|
use crate::TS;
|
|
use codex_protocol::config_types::CollaborationModeMask as CoreCollaborationModeMask;
|
|
use codex_protocol::config_types::ModeKind;
|
|
use codex_protocol::openai_models::ReasoningEffort;
|
|
use serde::Deserialize;
|
|
use serde::Serialize;
|
|
|
|
/// EXPERIMENTAL - list collaboration mode presets.
|
|
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default, JsonSchema, TS)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[ts(export_to = "v2/")]
|
|
pub struct CollaborationModeListParams {}
|
|
|
|
/// EXPERIMENTAL - collaboration mode preset metadata for clients.
|
|
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[ts(export_to = "v2/")]
|
|
pub struct CollaborationModeMask {
|
|
pub name: String,
|
|
pub mode: Option<ModeKind>,
|
|
pub model: Option<String>,
|
|
#[serde(rename = "reasoning_effort")]
|
|
#[ts(rename = "reasoning_effort")]
|
|
pub reasoning_effort: Option<Option<ReasoningEffort>>,
|
|
}
|
|
|
|
impl From<CoreCollaborationModeMask> for CollaborationModeMask {
|
|
fn from(value: CoreCollaborationModeMask) -> Self {
|
|
Self {
|
|
name: value.name,
|
|
mode: value.mode,
|
|
model: value.model,
|
|
reasoning_effort: value.reasoning_effort,
|
|
}
|
|
}
|
|
}
|
|
|
|
/// EXPERIMENTAL - collaboration mode presets response.
|
|
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
|
#[serde(rename_all = "camelCase")]
|
|
#[ts(export_to = "v2/")]
|
|
pub struct CollaborationModeListResponse {
|
|
pub data: Vec<CollaborationModeMask>,
|
|
}
|