Skip to main content

ToolOutcomeStore

Trait ToolOutcomeStore 

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

Source

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>

Source

fn lookup_by_operation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<ToolOutcomeRecordV1>, ToolOutcomeStoreError>

Source

fn load_raw_invocation_by_operation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<RawInvocationOutcomeV1>, ToolOutcomeStoreError>

Source

fn lookup_post_return_evaluation( &self, operation_id: &AdmissionOperationId, ) -> Result<Option<PostReturnEvaluationRecordV1>, ToolOutcomeStoreError>

Source

fn begin_post_return_evaluation( &self, recovery_lease: &AdmissionRecoveryLease, record: &PostReturnEvaluationRecordV1, active_fence: &StoreMutationFence, trusted_now_unix_ms: u64, ) -> Result<PostReturnEvaluationRecordV1, ToolOutcomeStoreError>

Source

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>

Source

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.

Source

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".

Implementors§