pub struct Session {
pub id: String,
pub path: PathBuf,
pub cwd: PathBuf,
pub boot_system_prompt: String,
pub llm: LlmSettings,
pub skills: Vec<SkillEntry>,
pub created_at: u64,
pub updated_at: u64,
pub messages: Vec<ChatMessage>,
pub history: Vec<SessionHistoryRecord>,
/* private fields */
}Fields§
§id: String§path: PathBuf§cwd: PathBuf§boot_system_prompt: String§llm: LlmSettings§skills: Vec<SkillEntry>Skills are immutable per-session just like the boot prompt, so a
resumed /<name> skill command cannot silently load changed files.
created_at: u64§updated_at: u64§messages: Vec<ChatMessage>§history: Vec<SessionHistoryRecord>Implementations§
Source§impl Session
impl Session
pub fn create( home: &Path, cwd: &Path, boot_system_prompt: String, llm: LlmSettings, ) -> Result<Self, SessionError>
pub fn create_with_secret( home: &Path, cwd: &Path, boot_system_prompt: String, llm: LlmSettings, secret: Option<&str>, ) -> Result<Self, SessionError>
pub fn create_with_skills_and_secret( home: &Path, cwd: &Path, boot_system_prompt: String, llm: LlmSettings, skills: Vec<SkillEntry>, secret: Option<&str>, ) -> Result<Self, SessionError>
pub fn resume(home: &Path, id: &str) -> Result<Self, SessionError>
pub fn append_message( &mut self, message: ChatMessage, ) -> Result<(), SessionError>
pub fn append_interruption( &mut self, interruption: InterruptionRecord, ) -> Result<(), SessionError>
Sourcepub fn append_compaction(
&mut self,
summary: String,
first_kept_message: usize,
tokens_before: usize,
) -> Result<(), SessionError>
pub fn append_compaction( &mut self, summary: String, first_kept_message: usize, tokens_before: usize, ) -> Result<(), SessionError>
Append a summary boundary without deleting the historical records that
preceded it. first_kept_message counts ordinary message records from
the start of the session, excluding the boot system prompt.
pub fn provider_messages(&self) -> Vec<ChatMessage>
pub fn list(home: &Path) -> Result<Vec<SessionMetadata>, SessionError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnsafeUnpin for Session
impl UnwindSafe for Session
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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