mirror of
https://github.com/openai/codex.git
synced 2026-05-04 05:11:37 +03:00
generate an internal json schema for RolloutLine (#14434)
### Why i'm working on something that parses and analyzes codex rollout logs, and i'd like to have a schema for generating a parser/validator. `codex app-server generate-internal-json-schema` writes an `RolloutLine.json` file while doing this, i noticed we have a writer <> reader mismatch issue on `FunctionCallOutputPayload` and reasoning item ID -- added some schemars annotations to fix those ### Test ``` $ just codex app-server generate-internal-json-schema --out ./foo ``` generates an `RolloutLine.json` file, which i validated against jsonl files on disk `just codex app-server --help` doesn't expose the `generate-internal-json-schema` option by default, but you can do `just codex app-server generate-internal-json-schema --help` if you know the command everything else still works --------- Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
@@ -17,6 +17,7 @@ use crate::protocol::common::EXPERIMENTAL_CLIENT_METHODS;
|
||||
use anyhow::Context;
|
||||
use anyhow::Result;
|
||||
use anyhow::anyhow;
|
||||
use codex_protocol::protocol::RolloutLine;
|
||||
use schemars::JsonSchema;
|
||||
use schemars::schema_for;
|
||||
use serde::Serialize;
|
||||
@@ -185,6 +186,12 @@ pub fn generate_json(out_dir: &Path) -> Result<()> {
|
||||
generate_json_with_experimental(out_dir, /*experimental_api*/ false)
|
||||
}
|
||||
|
||||
pub fn generate_internal_json_schema(out_dir: &Path) -> Result<()> {
|
||||
ensure_dir(out_dir)?;
|
||||
write_json_schema::<RolloutLine>(out_dir, "RolloutLine")?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn generate_json_with_experimental(out_dir: &Path, experimental_api: bool) -> Result<()> {
|
||||
ensure_dir(out_dir)?;
|
||||
let envelope_emitters: Vec<JsonSchemaEmitter> = vec![
|
||||
|
||||
@@ -6,6 +6,7 @@ mod schema_fixtures;
|
||||
|
||||
pub use experimental_api::*;
|
||||
pub use export::GenerateTsOptions;
|
||||
pub use export::generate_internal_json_schema;
|
||||
pub use export::generate_json;
|
||||
pub use export::generate_json_with_experimental;
|
||||
pub use export::generate_ts;
|
||||
|
||||
Reference in New Issue
Block a user