pub trait ToolOutcomeStore: Send + Sync {
// Required methods
fn record_tool_returned(
&self,
operation: &AdmissionOperationV1,
recovery_lease: &AdmissionRecoveryLease,
blob: &CanonicalInvocationBlobV1,
record: &ToolOutcomeRecordV1,
active_fence: &StoreMutationFence,
trusted_now_unix_ms: u64,
) -> Result<ToolOutcomeInsertResultV1, ToolOutcomeStoreError>;
fn lookup_by_operation(
&self,
operation_id: &AdmissionOperationId,
) -> Result<Option<ToolOutcomeRecordV1>, ToolOutcomeStoreError>;
fn load_raw_invocation_by_operation(
&self,
operation_id: &AdmissionOperationId,
) -> Result<Option<RawInvocationOutcomeV1>, ToolOutcomeStoreError>;
fn lookup_post_return_evaluation(
&self,
operation_id: &AdmissionOperationId,
) -> Result<Option<PostReturnEvaluationRecordV1>, ToolOutcomeStoreError>;
fn begin_post_return_evaluation(
&self,
recovery_lease: &AdmissionRecoveryLease,
record: &PostReturnEvaluationRecordV1,
active_fence: &StoreMutationFence,
trusted_now_unix_ms: u64,
) -> Result<PostReturnEvaluationRecordV1, ToolOutcomeStoreError>;
fn stage_post_return_evaluation(
&self,
operation_id: &AdmissionOperationId,
expected_version: u64,
recovery_lease: &AdmissionRecoveryLease,
next: &PostReturnEvaluationRecordV1,
active_fence: &StoreMutationFence,
trusted_now_unix_ms: u64,
) -> Result<PostReturnEvaluationRecordV1, ToolOutcomeStoreError>;
fn finalize_post_return(
&self,
operation_id: &AdmissionOperationId,
expected_evaluation_version: u64,
recovery_lease: &AdmissionRecoveryLease,
terminal_evaluation: &PostReturnEvaluationRecordV1,
expected_outcome_version: u64,
terminal_outcome: &ToolOutcomeRecordV1,
resolved_output: Option<&CanonicalResolvedOutputBlobV1>,
active_fence: &StoreMutationFence,
trusted_now_unix_ms: u64,
) -> Result<(PostReturnEvaluationRecordV1, ToolOutcomeRecordV1), ToolOutcomeStoreError>;
fn load_resolved_output_by_operation(
&self,
operation_id: &AdmissionOperationId,
) -> Result<Option<CanonicalResolvedOutputBlobV1>, ToolOutcomeStoreError>;
}Expand description
Storage boundary for insert-once return recording and atomic finalization.
Required Methods§
fn record_tool_returned( &self, operation: &AdmissionOperationV1, recovery_lease: &AdmissionRecoveryLease, blob: &CanonicalInvocationBlobV1, record: &ToolOutcomeRecordV1, active_fence: &StoreMutationFence, trusted_now_unix_ms: u64, ) -> Result<ToolOutcomeInsertResultV1, ToolOutcomeStoreError>
fn lookup_by_operation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<ToolOutcomeRecordV1>, ToolOutcomeStoreError>
fn load_raw_invocation_by_operation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<RawInvocationOutcomeV1>, ToolOutcomeStoreError>
fn lookup_post_return_evaluation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<PostReturnEvaluationRecordV1>, ToolOutcomeStoreError>
fn begin_post_return_evaluation( &self, recovery_lease: &AdmissionRecoveryLease, record: &PostReturnEvaluationRecordV1, active_fence: &StoreMutationFence, trusted_now_unix_ms: u64, ) -> Result<PostReturnEvaluationRecordV1, ToolOutcomeStoreError>
fn stage_post_return_evaluation( &self, operation_id: &AdmissionOperationId, expected_version: u64, recovery_lease: &AdmissionRecoveryLease, next: &PostReturnEvaluationRecordV1, active_fence: &StoreMutationFence, trusted_now_unix_ms: u64, ) -> Result<PostReturnEvaluationRecordV1, ToolOutcomeStoreError>
Sourcefn finalize_post_return(
&self,
operation_id: &AdmissionOperationId,
expected_evaluation_version: u64,
recovery_lease: &AdmissionRecoveryLease,
terminal_evaluation: &PostReturnEvaluationRecordV1,
expected_outcome_version: u64,
terminal_outcome: &ToolOutcomeRecordV1,
resolved_output: Option<&CanonicalResolvedOutputBlobV1>,
active_fence: &StoreMutationFence,
trusted_now_unix_ms: u64,
) -> Result<(PostReturnEvaluationRecordV1, ToolOutcomeRecordV1), ToolOutcomeStoreError>
fn finalize_post_return( &self, operation_id: &AdmissionOperationId, expected_evaluation_version: u64, recovery_lease: &AdmissionRecoveryLease, terminal_evaluation: &PostReturnEvaluationRecordV1, expected_outcome_version: u64, terminal_outcome: &ToolOutcomeRecordV1, resolved_output: Option<&CanonicalResolvedOutputBlobV1>, active_fence: &StoreMutationFence, trusted_now_unix_ms: u64, ) -> Result<(PostReturnEvaluationRecordV1, ToolOutcomeRecordV1), ToolOutcomeStoreError>
Atomically commits the matching terminal evaluation and outcome.
fn load_resolved_output_by_operation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<CanonicalResolvedOutputBlobV1>, ToolOutcomeStoreError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".