pub struct AgentContext {
pub ast_cache: Arc<DashMap<PathBuf, ParsedAst>>,
pub shared_findings: Arc<RwLock<Vec<ContextFinding>>>,
pub parameters: Arc<HashMap<String, Value>>,
pub mode: OperatingMode,
pub progress: Arc<ProgressTracker>,
pub session_history: Arc<RwLock<Option<Vec<String>>>>,
pub cancellation_token: Arc<CancellationToken>,
/* private fields */
}Expand description
Shared execution context for agents
Fields§
§ast_cache: Arc<DashMap<PathBuf, ParsedAst>>AST cache for parsed files
Shared findings from all agents
parameters: Arc<HashMap<String, Value>>User parameters for the session
mode: OperatingModeCurrent operating mode
progress: Arc<ProgressTracker>Progress tracker for this context
session_history: Arc<RwLock<Option<Vec<String>>>>Session history access (optional)
cancellation_token: Arc<CancellationToken>Cancellation token for graceful shutdown
Implementations§
Source§impl AgentContext
impl AgentContext
Sourcepub fn new(mode: OperatingMode, parameters: HashMap<String, Value>) -> Self
pub fn new(mode: OperatingMode, parameters: HashMap<String, Value>) -> Self
Create a new agent context
Sourcepub async fn add_finding(&self, finding: ContextFinding) -> ContextResult<()>
pub async fn add_finding(&self, finding: ContextFinding) -> ContextResult<()>
Add a finding to the shared context
Sourcepub async fn get_findings_by_severity(
&self,
severity: FindingSeverity,
) -> Vec<ContextFinding>
pub async fn get_findings_by_severity( &self, severity: FindingSeverity, ) -> Vec<ContextFinding>
Get all findings matching a severity level
Sourcepub fn get_cached_ast(&self, path: &PathBuf) -> Option<ParsedAst>
pub fn get_cached_ast(&self, path: &PathBuf) -> Option<ParsedAst>
Get a cached AST if available
Sourcepub fn check_cancelled(&self) -> ContextResult<()>
pub fn check_cancelled(&self) -> ContextResult<()>
Check if operation has been cancelled
Sourcepub async fn send_message(&self, message: AgentMessage) -> ContextResult<()>
pub async fn send_message(&self, message: AgentMessage) -> ContextResult<()>
Send a message to other agents
Sourcepub fn subscribe(&self, agent_name: String) -> MessageReceiver
pub fn subscribe(&self, agent_name: String) -> MessageReceiver
Subscribe to messages for a specific agent
Sourcepub async fn snapshot(&self) -> ContextResult<AgentContextSnapshot>
pub async fn snapshot(&self) -> ContextResult<AgentContextSnapshot>
Create a snapshot of the current context
Sourcepub async fn restore(
&mut self,
snapshot: AgentContextSnapshot,
) -> ContextResult<()>
pub async fn restore( &mut self, snapshot: AgentContextSnapshot, ) -> ContextResult<()>
Restore context from a snapshot
Sourcepub fn metrics(&self) -> ExecutionMetricsSnapshot
pub fn metrics(&self) -> ExecutionMetricsSnapshot
Get execution metrics
Trait Implementations§
Source§impl Clone for AgentContext
impl Clone for AgentContext
Source§fn clone(&self) -> AgentContext
fn clone(&self) -> AgentContext
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AgentContext
impl !RefUnwindSafe for AgentContext
impl Send for AgentContext
impl Sync for AgentContext
impl Unpin for AgentContext
impl !UnwindSafe for AgentContext
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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