mirror of
https://github.com/openai/codex.git
synced 2026-11-07 08:34:29 +00:00
Add metrics for extension-rendered skill catalogs (#35597)
## What changed - Add an optional `ExtensionMetrics` capability to thread, turn-input, and world-state contributors, backed by session telemetry in the host. - Record skill counts, omissions, and truncated description characters for extension-rendered catalogs, tagged by the catalog surface. - Preserve host session attribution on extension metrics, including the effective model for each turn, and prevent extension tags from overriding host metadata. - Avoid duplicate host-catalog samples by recording world-state metrics only when the section is published or changes. ## Testing - Cover metric values and surface tags, session metadata preservation, turn-level model changes, and host world-state publication behavior. GitOrigin-RevId: 9059e521943a8f81df25a38b03692eddbc1d990d
This commit is contained in:
1 parent
3d519bf63a
commit
d6ea5991e7
23 files changed
+625
-8
No files matched your search
@@ -1,6 +1,7 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::ExtensionData;
|
||||
use crate::ExtensionMetrics;
|
||||
use codex_mcp::McpResourceClient;
|
||||
use codex_protocol::protocol::SessionSource;
|
||||
use codex_protocol::protocol::TurnEnvironmentSelection;
|
||||
@@ -25,6 +26,8 @@ pub struct ThreadStartInput<'a, C> {
|
||||
pub environments: &'a [TurnEnvironmentSelection],
|
||||
/// MCP resource access supplied by the host for this session.
|
||||
pub mcp_resource_client: Option<Arc<McpResourceClient>>,
|
||||
/// Session-attributed metrics supplied by the host.
|
||||
pub extension_metrics: Option<Arc<dyn ExtensionMetrics>>,
|
||||
/// Store scoped to the host session runtime.
|
||||
pub session_store: &'a ExtensionData,
|
||||
/// Store scoped to this thread runtime.
|
||||
|
||||
@@ -7,6 +7,7 @@ use codex_protocol::protocol::TurnEnvironmentSelection;
|
||||
use serde_json::Value;
|
||||
|
||||
use crate::ExtensionData;
|
||||
use crate::ExtensionMetrics;
|
||||
|
||||
/// Host state available while an extension contributes one sampling step's World State.
|
||||
pub struct WorldStateContributionInput<'a> {
|
||||
@@ -17,6 +18,8 @@ pub struct WorldStateContributionInput<'a> {
|
||||
pub ready_selected_capability_roots: &'a [SelectedCapabilityRoot],
|
||||
/// Executor-materialized capability files shared by all consumers in this exact step.
|
||||
pub executor_capability_discovery: Option<&'a ExecutorCapabilityDiscoverySnapshot>,
|
||||
/// Metrics bound to the effective model for this turn.
|
||||
pub extension_metrics: Option<Arc<dyn ExtensionMetrics>>,
|
||||
pub session_store: &'a ExtensionData,
|
||||
pub thread_store: &'a ExtensionData,
|
||||
pub turn_store: &'a ExtensionData,
|
||||
|
||||
Reference in new issue
Block a user