pub struct PcxGrpcService { /* private fields */ }Expand description
gRPC service backed by ConversationMemorySystem.
Holds both the raw ConversationMemorySystem (used by handlers
that have not yet migrated to the canonical trait) and the
canonical MemoryServiceImpl. Newly-migrated handlers — currently
update_context / bulk_update_context — translate proto types
into post_cortex_core::services requests and delegate to
self.service, so validation lives in exactly one place.
Implementations§
Source§impl PcxGrpcService
impl PcxGrpcService
Sourcepub fn new(memory: Arc<ConversationMemorySystem>) -> PcxGrpcService
pub fn new(memory: Arc<ConversationMemorySystem>) -> PcxGrpcService
Wrap a shared memory system in a new gRPC service handle.
Sourcepub fn from_service(service: Arc<MemoryServiceImpl>) -> PcxGrpcService
pub fn from_service(service: Arc<MemoryServiceImpl>) -> PcxGrpcService
Build a gRPC service from an existing canonical service so several transports can share the same background pipeline (Phase 11).
Sourcepub fn into_server(self) -> PostCortexServer<PcxGrpcService>
pub fn into_server(self) -> PostCortexServer<PcxGrpcService>
Consume self and return a tonic PostCortexServer ready to serve.
Trait Implementations§
Source§impl PostCortex for PcxGrpcService
impl PostCortex for PcxGrpcService
Source§fn health<'life0, 'async_trait>(
&'life0 self,
_request: Request<HealthRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<HealthResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn health<'life0, 'async_trait>(
&'life0 self,
_request: Request<HealthRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<HealthResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Health —
Source§fn create_session<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateSessionRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateSessionResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn create_session<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateSessionRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateSessionResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Session Management —
fn list_sessions<'life0, 'async_trait>(
&'life0 self,
request: Request<ListSessionsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ListSessionsResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn load_session<'life0, 'async_trait>(
&'life0 self,
request: Request<LoadSessionRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<LoadSessionResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn search_sessions<'life0, 'async_trait>(
&'life0 self,
request: Request<SearchSessionsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<SearchSessionsResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn update_session_metadata<'life0, 'async_trait>(
&'life0 self,
request: Request<UpdateSessionMetadataRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UpdateSessionMetadataResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn delete_session<'life0, 'async_trait>(
&'life0 self,
request: Request<DeleteSessionRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<DeleteSessionResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn delete_entity<'life0, 'async_trait>(
&'life0 self,
request: Request<DeleteEntityRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<DeleteEntityResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn delete_entity<'life0, 'async_trait>(
&'life0 self,
request: Request<DeleteEntityRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<DeleteEntityResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Graph Maintenance —
Delete a single entity and cascade-delete all its incident edges from
the 8 relation tables. Atomic against in-memory session cache so the
delete sticks even when the daemon has the session loaded.
Source§fn update_context<'life0, 'async_trait>(
&'life0 self,
request: Request<UpdateContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UpdateContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn update_context<'life0, 'async_trait>(
&'life0 self,
request: Request<UpdateContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UpdateContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Context Operations —
fn bulk_update_context<'life0, 'async_trait>(
&'life0 self,
request: Request<BulkUpdateContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<BulkUpdateContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn create_checkpoint<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateCheckpointRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateCheckpointResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn query_context<'life0, 'async_trait>(
&'life0 self,
request: Request<QueryContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<QueryContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn semantic_search<'life0, 'async_trait>(
&'life0 self,
request: Request<SemanticSearchRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<SemanticSearchResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn semantic_search<'life0, 'async_trait>(
&'life0 self,
request: Request<SemanticSearchRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<SemanticSearchResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Semantic Search —
fn vectorize_session<'life0, 'async_trait>(
&'life0 self,
request: Request<VectorizeSessionRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<VectorizeSessionResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_vectorization_stats<'life0, 'async_trait>(
&'life0 self,
_request: Request<GetVectorizationStatsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn get_structured_summary<'life0, 'async_trait>(
&'life0 self,
request: Request<GetStructuredSummaryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_structured_summary<'life0, 'async_trait>(
&'life0 self,
request: Request<GetStructuredSummaryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Analysis & Insights —
fn get_key_decisions<'life0, 'async_trait>(
&'life0 self,
request: Request<GetKeyDecisionsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_key_insights<'life0, 'async_trait>(
&'life0 self,
request: Request<GetKeyInsightsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_entity_importance<'life0, 'async_trait>(
&'life0 self,
request: Request<GetEntityImportanceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_entity_network<'life0, 'async_trait>(
&'life0 self,
request: Request<GetEntityNetworkRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_session_statistics<'life0, 'async_trait>(
&'life0 self,
request: Request<GetSessionStatisticsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<TextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn assemble_context<'life0, 'async_trait>(
&'life0 self,
request: Request<AssembleContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AssembleContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn assemble_context<'life0, 'async_trait>(
&'life0 self,
request: Request<AssembleContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AssembleContextResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Graph-Aware Context Assembly —
Source§fn create_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn create_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Workspace Management —
fn get_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<GetWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn list_workspaces<'life0, 'async_trait>(
&'life0 self,
_request: Request<ListWorkspacesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ListWorkspacesResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn delete_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<DeleteWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<DeleteWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn add_session_to_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<AddSessionToWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddSessionToWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn remove_session_from_workspace<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveSessionFromWorkspaceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveSessionFromWorkspaceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn register_source<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterSourceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterSourceAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn register_source<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterSourceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterSourceAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Source Tracking —
fn register_source_batch<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterSourceBatchRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterSourceBatchAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn check_freshness<'life0, 'async_trait>(
&'life0 self,
request: Request<FreshnessRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<FreshnessReport>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn invalidate<'life0, 'async_trait>(
&'life0 self,
request: Request<InvalidateRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<InvalidateAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn register_symbol_dependency<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterSymbolDependencyRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterSymbolDependencyAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn register_symbol_dependency<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterSymbolDependencyRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterSymbolDependencyAck>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Symbol Dependencies (Phase 9.2) —
fn cascade_invalidate<'life0, 'async_trait>(
&'life0 self,
request: Request<CascadeInvalidateRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CascadeInvalidateReport>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
Source§fn get_stale_entries_by_source<'life0, 'async_trait>(
&'life0 self,
request: Request<GetStaleEntriesBySourceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetStaleEntriesBySourceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
fn get_stale_entries_by_source<'life0, 'async_trait>(
&'life0 self,
request: Request<GetStaleEntriesBySourceRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetStaleEntriesBySourceResponse>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
PcxGrpcService: 'async_trait,
— Stale Entry Query —
Returns all source_reference entries for a file that are still marked stale
(status=1). Used by Axon after register_source_batch to detect deleted symbols
(entries that were marked stale by invalidate_source but never re-registered).
Auto Trait Implementations§
impl Freeze for PcxGrpcService
impl !RefUnwindSafe for PcxGrpcService
impl Send for PcxGrpcService
impl Sync for PcxGrpcService
impl Unpin for PcxGrpcService
impl UnsafeUnpin for PcxGrpcService
impl !UnwindSafe for PcxGrpcService
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> 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::RequestSource§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::RequestSource§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