Skip to main content

AtheneumGraph

Struct AtheneumGraph 

Source
pub struct AtheneumGraph { /* private fields */ }

Implementations§

Source§

impl AtheneumGraph

Source

pub fn insert_reasoning_log( &self, agent: &str, content: &str, project_id: Option<&str>, ) -> Result<i64>

Source

pub fn insert_tool_call( &self, reasoning_log_id: i64, tool_name: &str, args: Value, project_id: Option<&str>, ) -> Result<i64>

Source

pub fn record_tool_modifies( &self, tool_call_id: i64, target_id: i64, ) -> Result<i64>

Source

pub fn record_agent_action( &self, agent: &str, thought: &str, tool_calls: Vec<ToolCallRecord>, project_id: Option<&str>, ) -> Result<ActionTrace>

Source

pub fn get_action_trace( &self, agent: &str, project_id: Option<&str>, ) -> Result<Vec<ActionRecord>>

Source§

impl AtheneumGraph

Source§

impl AtheneumGraph

Source

pub fn store_discovery( &self, agent: &str, discovery_type: &str, target: &str, metadata: Value, ) -> Result<i64>

Source

pub fn query_discoveries(&self, target: &str) -> Result<Vec<GraphEntity>>

Source

pub fn store_discovery_in_project( &self, agent: &str, discovery_type: &str, target: &str, project_id: Option<&str>, metadata: Value, ) -> Result<i64>

Source

pub fn recent_project_context( &self, project: &str, limit: i64, ) -> Result<Vec<GraphEntity>>

Return the N most recent discoveries for a project (no target required). Used by SubagentStart hook to push project context into initial LLM context.

Source

pub fn query_discoveries_in_project( &self, target: &str, project_id: Option<&str>, ) -> Result<Vec<GraphEntity>>

Source§

impl AtheneumGraph

Source

pub fn query_events( &self, session_id: Option<&str>, event_type: Option<&str>, limit: usize, ) -> Result<Vec<Value>>

Source

pub fn query_sessions( &self, project: Option<&str>, last_n: i64, parent_id: Option<&str>, ) -> Result<Vec<SessionSummary>>

Query recent sessions. If project is Some, filter to that project.

Source

pub fn record_event(&self, params: RecordEventParams) -> Result<()>

Record a generic event into the event_log.

Source

pub fn record_subagent_handover( &self, session_id: &str, summary: &str, files_changed: &[String], outcome: &str, ) -> Result<()>

Store a subagent handover note on session stop.

Source§

impl AtheneumGraph

Source

pub fn record_evidence_prompt(&self, params: PromptParams) -> Result<()>

Source

pub fn record_evidence_tool_call(&self, params: ToolCallParams) -> Result<()>

Source

pub fn record_evidence_file_write(&self, params: FileWriteParams) -> Result<()>

Source

pub fn record_evidence_file_access( &self, params: FileAccessParams, ) -> Result<()>

Source

pub fn record_evidence_commit(&self, params: CommitParams) -> Result<()>

Source

pub fn record_evidence_test_run(&self, params: TestRunParams) -> Result<()>

Source

pub fn record_evidence_fix_chain(&self, params: FixChainParams) -> Result<()>

Source

pub fn record_evidence_bench_run( &self, session_id: String, bench_name: String, mean_ns: Option<i64>, median_ns: Option<i64>, p95_ns: Option<i64>, is_regression: bool, ) -> Result<()>

Source§

impl AtheneumGraph

Source§

impl AtheneumGraph

Source

pub fn store_handoff( &self, from_agent: &str, to_agent: &str, manifest: Value, ) -> Result<i64>

Source

pub fn get_pending_handoff(&self, agent: &str) -> Result<Option<GraphEntity>>

Source

pub fn mark_handoff_claimed(&self, handoff_id: i64) -> Result<()>

Source

pub fn store_handoff_in_project( &self, from_agent: &str, to_agent: &str, project_id: Option<&str>, manifest: Value, ) -> Result<i64>

Source

pub fn get_pending_handoff_in_project( &self, agent: &str, project_id: Option<&str>, ) -> Result<Option<GraphEntity>>

Source§

impl AtheneumGraph

Source

pub fn consolidate_discoveries( &self, target: &str, project_id: Option<&str>, ) -> Result<Option<i64>>

Source

pub fn consolidation_pass( &self, project_id: Option<&str>, ) -> Result<Vec<(String, i64)>>

Source

pub fn query_knowledge(&self, target: &str) -> Result<Value>

Source

pub fn query_knowledge_in_project( &self, target: &str, project_id: Option<&str>, ) -> Result<Value>

Source§

impl AtheneumGraph

Source

pub fn import_symbol_from_magellan( &self, magellan_db_path: &Path, symbol_name: &str, agent_name: &str, project_id: Option<&str>, ) -> Result<Option<i64>>

Source

pub fn import_all_symbols_from_magellan( &self, magellan_db_path: &Path, agent_name: &str, project_id: Option<&str>, limit: Option<usize>, ) -> Result<usize>

Source§

impl AtheneumGraph

Source

pub fn store_memory( &self, key: &str, content: &str, scope: &str, confidence: f64, project_id: Option<&str>, ) -> Result<i64>

Store a memory entry.

Scope: "user" | "project" | "agent"

Source

pub fn query_memory( &self, key: &str, scope: Option<&str>, project_id: Option<&str>, ) -> Result<Vec<GraphEntity>>

Query memory by key and optional scope/project.

Source

pub fn list_memory( &self, scope: Option<&str>, project_id: Option<&str>, ) -> Result<Vec<GraphEntity>>

List all memory entries for a scope.

Source§

impl AtheneumGraph

Source

pub fn get_neighbors( &self, entity_id: i64, ) -> Result<(Vec<GraphEdge>, Vec<GraphEdge>)>

Return (outgoing_edges, incoming_edges) for a single entity.

Source

pub fn get_subgraph(&self, entry_id: i64, depth: u32) -> Result<SubgraphView>

Extract a connected subgraph around entry_id by BFS up to depth.

Returns the entry entity, all reached entities, and all traversed edges.

Source

pub fn get_subgraph_scoped( &self, entry_id: i64, depth: u32, project_id: Option<&str>, ) -> Result<SubgraphView>

Extract a connected subgraph scoped to project_id.

Neighbors whose data.project_id does not match are excluded, along with any edges that would point to them. Entities with no project_id in their data are treated as shared/global and always included.

When project_id is None the call delegates to get_subgraph (no filter).

Source

pub fn get_subgraph_filtered( &self, entry_id: i64, depth: u32, allowed_types: &[EdgeType], ) -> Result<SubgraphView>

Source

pub fn navigate( &self, query: &str, k: usize, depth: u32, project_id: Option<&str>, entity_kind: Option<&str>, ) -> Result<Vec<SubgraphView>>

Semantic search entry point → walk the graph → return subgraph views.

Applies the same project_id scope to graph traversal as to the initial semantic search — cross-project entities are not reachable via edges from in-scope hits.

Source

pub fn hopgraph_query( &self, query: &str, k: usize, depth: u32, allowed_types: &[EdgeType], max_tokens: usize, project_id: Option<&str>, ) -> Result<Vec<SubgraphView>>

Source

pub fn graph_stats(&self) -> Result<GraphStats>

Fast topological stats (entity + edge counts by kind / type).

Source§

impl AtheneumGraph

Source

pub fn define_class(&self, name: &str, description: Option<&str>) -> Result<i64>

Source

pub fn define_property( &self, name: &str, domain_class: &str, range_class: &str, description: Option<&str>, ) -> Result<i64>

Source

pub fn list_classes(&self) -> Result<Vec<OntologyClassInfo>>

Source

pub fn list_properties(&self) -> Result<Vec<OntologyPropertyInfo>>

Source

pub fn validate_edge( &self, from_kind: &str, to_kind: &str, edge_type: &str, ) -> Result<bool>

Source

pub fn seed_standard_ontology(&self) -> Result<()>

Source§

impl AtheneumGraph

Source

pub fn create_task( &self, title: &str, description: Option<&str>, project_id: Option<&str>, ) -> Result<i64>

Source

pub fn update_task_status( &self, task_id: i64, status: KanbanStatus, ) -> Result<()>

Source

pub fn find_task_by_title( &self, title: &str, project_id: Option<&str>, ) -> Result<Option<i64>>

Source

pub fn list_tasks_by_status( &self, status: KanbanStatus, project_id: Option<&str>, ) -> Result<Vec<GraphEntity>>

Source

pub fn list_tasks(&self, project_id: Option<&str>) -> Result<Vec<GraphEntity>>

Source

pub fn add_requirement( &self, task_id: i64, statement: &str, verification_method: Option<&str>, ) -> Result<i64>

Source

pub fn mark_requirement_met(&self, req_id: i64) -> Result<()>

Source

pub fn add_blocker( &self, task_id: i64, description: &str, blocker_type: BlockerType, ) -> Result<i64>

Source

pub fn resolve_blocker(&self, blocker_id: i64) -> Result<()>

Source

pub fn get_task_with_details(&self, task_id: i64) -> Result<TaskDetail>

Source

pub fn apply_kanban_updates_from_journal( &self, journal_section_id: i64, ) -> Result<Vec<AppliedKanbanUpdate>>

Source§

impl AtheneumGraph

Source

pub fn build_search_index(&self) -> Result<()>

Full rebuild of the HNSW index (still useful for manual reindexing).

Search discoveries using a hash-projected bag-of-tokens index (HNSW).

Finds entities that share tokens with query. This is lexical similarity, not semantic/neural similarity — synonyms with no token overlap will not match. For true semantic search, embeddings from a language model would be needed.

Source§

impl AtheneumGraph

Source

pub fn ingest_wiki_page( &self, path: &str, content: &str, project_id: Option<&str>, ) -> Result<i64>

Source

pub fn ingest_journal( &self, path: &str, content: &str, project_id: Option<&str>, ) -> Result<Vec<i64>>

Source

pub fn sync_wiki_directory( &self, dir: &Path, project_id: Option<&str>, ) -> Result<Vec<i64>>

Source

pub fn query_journal_sections(&self, path: &str) -> Result<Vec<JournalSection>>

Source

pub fn sync_journal_directory( &self, dir: &Path, project_id: Option<&str>, ) -> Result<Vec<i64>>

Source

pub fn get_wiki_page(&self, path: &str) -> Result<Option<WikiPage>>

Source

pub fn list_wiki_pages(&self, project_id: Option<&str>) -> Result<Vec<WikiPage>>

Source

pub fn find_wiki_page_entity_id(&self, path: &str) -> Result<Option<i64>>

Source§

impl AtheneumGraph

Source

pub fn open_in_memory() -> Result<Self>

Source

pub fn open(path: &Path) -> Result<Self>

Source

pub fn set_embedder(&mut self, embedder: Box<dyn TextEmbedder>)

Source

pub fn embedder_dimension(&self) -> usize

Source

pub fn with_raw_connection<F, R>(&self, f: F) -> Result<R>
where F: FnOnce(&Connection) -> Result<R>,

Source

pub fn is_healthy(&self) -> bool

Source

pub fn get_entity(&self, id: i64) -> Result<GraphEntity>

Source

pub fn get_edge(&self, id: i64) -> Result<GraphEdge>

Source

pub fn outgoing_edges(&self, entity_id: i64) -> Result<Vec<GraphEdge>>

Source

pub fn incoming_edges(&self, entity_id: i64) -> Result<Vec<GraphEdge>>

Source

pub fn all_entities(&self) -> Result<Vec<GraphEntity>>

Source

pub fn entities_by_kind(&self, kind: &str) -> Result<Vec<GraphEntity>>

Source

pub fn count_entities_by_kind(&self) -> Result<Vec<(String, i64)>>

Source

pub fn count_edges_by_type(&self) -> Result<Vec<(String, i64)>>

Source

pub fn insert_agent(&self, name: &str, data: Value) -> Result<i64>

Source

pub fn insert_task(&self, name: &str, data: Value) -> Result<i64>

Source

pub fn insert_event(&self, name: &str, data: Value) -> Result<i64>

Source

pub fn insert_edge( &self, from_id: i64, to_id: i64, edge_type: EdgeType, data: Value, ) -> Result<i64>

Source

pub fn events_performed_by(&self, agent_id: i64) -> Result<Vec<GraphEntity>>

Source

pub fn tasks_assigned_to(&self, agent_id: i64) -> Result<Vec<GraphEntity>>

Source

pub fn causal_chain(&self, event_id: i64) -> Result<Vec<GraphEntity>>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V