pub struct SelfReferenceSystem {
pub state: ReferenceState,
pub introspection: IntrospectionEngine,
pub modification: ModificationEngine,
pub self_model: Arc<RwLock<SelfModel>>,
pub semantic: Arc<RwLock<SemanticMemory>>,
pub selfware_path: PathBuf,
pub modification_tracker: ModificationTracker,
}Expand description
Main self-reference system combining all capabilities
Fields§
§state: ReferenceState§introspection: IntrospectionEngine§modification: ModificationEngine§self_model: Arc<RwLock<SelfModel>>§semantic: Arc<RwLock<SemanticMemory>>§selfware_path: PathBuf§modification_tracker: ModificationTrackerImplementations§
Source§impl SelfReferenceSystem
impl SelfReferenceSystem
Sourcepub fn new(
semantic: Arc<RwLock<SemanticMemory>>,
selfware_path: PathBuf,
) -> Self
pub fn new( semantic: Arc<RwLock<SemanticMemory>>, selfware_path: PathBuf, ) -> Self
Create a new self-reference system
Sourcepub fn with_config(config: ReferenceConfig) -> Self
pub fn with_config(config: ReferenceConfig) -> Self
Create with custom configuration
Sourcepub async fn current_level(&self) -> ReferenceLevel
pub async fn current_level(&self) -> ReferenceLevel
Get current reference level
Sourcepub async fn set_level(&self, level: ReferenceLevel)
pub async fn set_level(&self, level: ReferenceLevel)
Set reference level
Sourcepub async fn initialize_self_model(&mut self) -> Result<()>
pub async fn initialize_self_model(&mut self) -> Result<()>
Initialize the self-model
Sourcepub async fn get_improvement_context(
&self,
goal: &str,
max_tokens: usize,
) -> Result<SelfImprovementContext>
pub async fn get_improvement_context( &self, goal: &str, max_tokens: usize, ) -> Result<SelfImprovementContext>
Get improvement context for self-improvement
Sourcepub async fn read_own_code(
&self,
module_path: &str,
_options: &SourceRetrievalOptions,
) -> Result<String>
pub async fn read_own_code( &self, module_path: &str, _options: &SourceRetrievalOptions, ) -> Result<String>
Read own source code
Sourcepub fn track_modification(&mut self, modification: CodeModification)
pub fn track_modification(&mut self, modification: CodeModification)
Track a code modification
Sourcepub fn get_self_model(&self) -> SelfModel
pub fn get_self_model(&self) -> SelfModel
Get the self-model
Sourcepub fn get_recent_modifications(&self) -> Vec<&CodeModification>
pub fn get_recent_modifications(&self) -> Vec<&CodeModification>
Get recent modifications
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for SelfReferenceSystem
impl !UnwindSafe for SelfReferenceSystem
impl Freeze for SelfReferenceSystem
impl Send for SelfReferenceSystem
impl Sync for SelfReferenceSystem
impl Unpin for SelfReferenceSystem
impl UnsafeUnpin for SelfReferenceSystem
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request