feat: wire spreadsheet artifact (#13362)

This commit is contained in:
jif-oai
2026-03-03 15:27:37 +00:00
committed by GitHub
parent 24ba01b9da
commit 8159f05dfd
13 changed files with 1180 additions and 23 deletions

View File

@@ -1,6 +1,7 @@
//! Session-wide mutable state.
use codex_artifact_presentation::PresentationArtifactManager;
use codex_artifact_spreadsheet::SpreadsheetArtifactManager;
use codex_protocol::models::ResponseItem;
use std::collections::HashMap;
use std::collections::HashSet;
@@ -17,6 +18,12 @@ use crate::tasks::RegularTask;
use crate::truncate::TruncationPolicy;
use codex_protocol::protocol::TurnContextItem;
#[derive(Default)]
pub(crate) struct SessionArtifacts {
pub(crate) presentation: PresentationArtifactManager,
pub(crate) spreadsheet: SpreadsheetArtifactManager,
}
/// Persistent, session-scoped state previously stored directly on `Session`.
pub(crate) struct SessionState {
pub(crate) session_configuration: SessionConfiguration,
@@ -33,7 +40,7 @@ pub(crate) struct SessionState {
pub(crate) startup_regular_task: Option<JoinHandle<CodexResult<RegularTask>>>,
pub(crate) active_mcp_tool_selection: Option<Vec<String>>,
pub(crate) active_connector_selection: HashSet<String>,
pub(crate) presentation_artifacts: PresentationArtifactManager,
pub(crate) artifacts: SessionArtifacts,
}
impl SessionState {
@@ -51,7 +58,7 @@ impl SessionState {
startup_regular_task: None,
active_mcp_tool_selection: None,
active_connector_selection: HashSet::new(),
presentation_artifacts: PresentationArtifactManager::default(),
artifacts: SessionArtifacts::default(),
}
}