mirror of
https://github.com/openai/codex.git
synced 2026-11-13 06:45:07 +00:00
Precompute app-server protocol exports (#36212)
## 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
This commit is contained in:
1 parent
0042b00986
commit
acd540f158
50 files changed
+720
-181
No files matched your search
@@ -0,0 +1,7 @@
|
||||
load("//:defs.bzl", "codex_rust_crate")
|
||||
|
||||
codex_rust_crate(
|
||||
name = "app-server-protocol-noop-macros",
|
||||
crate_name = "codex_app_server_protocol_noop_macros",
|
||||
proc_macro = True,
|
||||
)
|
||||
@@ -0,0 +1,13 @@
|
||||
[package]
|
||||
name = "codex-app-server-protocol-noop-macros"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
||||
[lib]
|
||||
proc-macro = true
|
||||
test = false
|
||||
doctest = false
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
@@ -0,0 +1,20 @@
|
||||
//! No-op schema derives for production app-server protocol builds.
|
||||
//!
|
||||
//! The real `ts-rs` and `schemars` derives are only needed when regenerating
|
||||
//! the vendored protocol exports. Normal builds retain the annotations so the
|
||||
//! protocol definitions stay readable, but use these derives to avoid
|
||||
//! generating implementations that cannot be reached at runtime.
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
|
||||
/// Accepts `#[schemars(...)]` helper attributes without generating an impl.
|
||||
#[proc_macro_derive(JsonSchema, attributes(schemars))]
|
||||
pub fn derive_json_schema(_input: TokenStream) -> TokenStream {
|
||||
TokenStream::new()
|
||||
}
|
||||
|
||||
/// Accepts `#[ts(...)]` helper attributes without generating an impl.
|
||||
#[proc_macro_derive(TS, attributes(ts))]
|
||||
pub fn derive_ts(_input: TokenStream) -> TokenStream {
|
||||
TokenStream::new()
|
||||
}
|
||||
Reference in new issue
Block a user