pub struct Thread {Show 24 fields
pub id: String,
pub extra: Option<ThreadExtra>,
pub session_id: String,
pub forked_from_id: Option<String>,
pub parent_thread_id: Option<String>,
pub preview: String,
pub ephemeral: bool,
pub history_mode: ThreadHistoryMode,
pub model_provider: String,
pub created_at: i64,
pub updated_at: i64,
pub recency_at: Option<i64>,
pub status: ThreadStatus,
pub path: Option<PathBuf>,
pub cwd: AbsolutePathBuf,
pub cli_version: String,
pub source: SessionSource,
pub can_accept_direct_input: Option<bool>,
pub thread_source: Option<ThreadSource>,
pub agent_nickname: Option<String>,
pub agent_role: Option<String>,
pub git_info: Option<GitInfo>,
pub name: Option<String>,
pub turns: Vec<Turn>,
}Fields§
§id: StringIdentifier for this thread. Codex-generated thread IDs are UUIDv7.
extra: Option<ThreadExtra>Optional implementation-specific thread data.
session_id: StringSession id shared by threads that belong to the same session tree.
forked_from_id: Option<String>Source thread id when this thread was created by forking another thread.
parent_thread_id: Option<String>The ID of the parent thread. This will only be set if this thread is a subagent.
preview: StringUsually the first user message in the thread, if available.
ephemeral: boolWhether the thread is ephemeral and should not be materialized on disk.
history_mode: ThreadHistoryModePersisted thread history contract selected when this thread was created.
model_provider: StringModel provider used for this thread (for example, ‘openai’).
created_at: i64Unix timestamp (in seconds) when the thread was created.
updated_at: i64Unix timestamp (in seconds) when the thread was last updated.
recency_at: Option<i64>Unix timestamp (in seconds) used for thread recency ordering.
status: ThreadStatusCurrent runtime status for the thread.
path: Option<PathBuf>[UNSTABLE] Path to the thread on disk.
cwd: AbsolutePathBufWorking directory captured for the thread.
cli_version: StringVersion of the CLI that created the thread.
source: SessionSourceOrigin of the thread (CLI, VSCode, codex exec, codex app-server, etc.).
can_accept_direct_input: Option<bool>Whether the app server accepts direct turn input for this loaded thread.
None means the capability is unavailable, such as for an unloaded stored thread.
thread_source: Option<ThreadSource>Optional analytics source classification for this thread.
agent_nickname: Option<String>Optional random unique nickname assigned to an AgentControl-spawned sub-agent.
agent_role: Option<String>Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.
git_info: Option<GitInfo>Optional Git metadata captured when the thread was created.
name: Option<String>Optional user-facing thread title.
turns: Vec<Turn>Only populated on thread/resume, thread/rollback, thread/fork, and thread/read
(when includeTurns is true) responses.
For all other responses and notifications returning a Thread,
the turns field will be an empty list.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Thread
impl<'de> Deserialize<'de> for Thread
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl ExperimentalApi for Thread
impl ExperimentalApi for Thread
Source§fn experimental_reason(&self) -> Option<&'static str>
fn experimental_reason(&self) -> Option<&'static str>
None when the value is entirely stable.Source§impl JsonSchema for Thread
impl JsonSchema for Thread
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreimpl StructuralPartialEq for Thread
Source§impl TS for Thread
impl TS for Thread
Source§type WithoutGenerics = Thread
type WithoutGenerics = Thread
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§type OptionInnerType = Thread
type OptionInnerType = Thread
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
Source§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for Thread
impl RefUnwindSafe for Thread
impl Send for Thread
impl Sync for Thread
impl Unpin for Thread
impl UnsafeUnpin for Thread
impl UnwindSafe for Thread
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more