mirror of
https://github.com/openai/codex.git
synced 2026-10-23 18:08:45 +00:00
Expose app-server diagnostics through the experimental API (#37470)
## What changed - Add the experimental `server/diagnostics` request, returning the app-server process ID, resident memory, platform-dependent physical footprint, and registered diagnostic gauges. - Export the new protocol types in the generated JSON and TypeScript schemas and document the request. ## Testing - Verify the response includes process measurements and the registered live-thread gauge. - Verify the request is rejected unless `capabilities.experimentalApi` is enabled. GitOrigin-RevId: 099d60a9c421a74ff1a72fe524e0dfeb89cf1057
This commit is contained in:
@@ -478,6 +478,14 @@ client_request_definitions! {
|
||||
response: v1::InitializeResponse,
|
||||
},
|
||||
|
||||
#[experimental("server/diagnostics")]
|
||||
/// Read content-free, process-local diagnostics.
|
||||
ServerDiagnostics => "server/diagnostics" {
|
||||
params: v2::ServerDiagnosticsParams,
|
||||
serialization: None,
|
||||
response: v2::ServerDiagnosticsResponse,
|
||||
},
|
||||
|
||||
/// NEW APIs
|
||||
// Thread lifecycle
|
||||
// Uses `inspect_params` because only some fields are experimental.
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
use crate::JsonSchema;
|
||||
use crate::TS;
|
||||
use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq, Eq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct ServerDiagnosticsParams {}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct ServerDiagnosticsResponse {
|
||||
pub process: ServerDiagnosticsProcess,
|
||||
pub gauges: Vec<ServerDiagnosticsGauge>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct ServerDiagnosticsProcess {
|
||||
pub id: u32,
|
||||
#[ts(type = "number | null")]
|
||||
pub resident_memory_bytes: Option<u64>,
|
||||
#[ts(type = "number | null")]
|
||||
pub physical_footprint_bytes: Option<u64>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct ServerDiagnosticsGauge {
|
||||
pub name: String,
|
||||
#[ts(type = "number")]
|
||||
pub value: u64,
|
||||
}
|
||||
@@ -7,6 +7,7 @@ mod collaboration_mode;
|
||||
mod command_exec;
|
||||
mod config;
|
||||
mod current_time;
|
||||
mod diagnostics;
|
||||
mod environment;
|
||||
mod experimental_feature;
|
||||
mod feedback;
|
||||
@@ -35,6 +36,7 @@ pub use collaboration_mode::*;
|
||||
pub use command_exec::*;
|
||||
pub use config::*;
|
||||
pub use current_time::*;
|
||||
pub use diagnostics::*;
|
||||
pub use environment::*;
|
||||
pub use experimental_feature::*;
|
||||
pub use feedback::*;
|
||||
|
||||
Reference in New Issue
Block a user