tandem-automation 0.7.2

Automation model and execution primitives for Tandem
pub mod context_metadata;
pub mod enterprise_scope;
pub mod execution_profile;
pub mod governance;
pub mod mcp_policy;
pub mod orchestration;
pub mod retry_policy;
pub mod routine;
pub mod run_mutability;
pub mod scheduler;
pub mod types;
pub mod webhooks;

#[cfg(test)]
mod execution_profile_tests;
#[cfg(test)]
mod retry_policy_tests;
#[cfg(test)]
mod types_tests;

pub use context_metadata::shared_context_pack_ids_from_metadata;
pub use enterprise_scope::*;
pub use execution_profile::{
    aggregate_human_dispositions_by_class, augment_output_with_profile_relaxation,
    classify_unmet_requirement, decide_profile_validation, effective_repair_budget,
    parse_execution_profile_str, parse_human_disposition_str, parse_validator_class_list,
    propagate_experimental_input_taint, set_human_disposition_on_output,
    tenant_default_execution_profile_from_env, tenant_relaxation_denylist_from_env,
    DispositionCounts, ExecutionProfile, HumanDisposition, ProfileValidationDecision,
    RelaxedValidatorClass, ValidationOutcome, ValidatorClass, ValidatorClassDispositionSummary,
};
pub use governance::*;
pub use mcp_policy::{AutomationAgentMcpPolicy, AutomationMcpConnectionGrant, AutomationMcpRunAs};
pub use orchestration::*;
pub use retry_policy::*;
pub use routine::RoutineMisfirePolicy;
pub use scheduler::{QueueReason, SchedulerMetadata};
pub use types::*;
pub use webhooks::*;

pub fn now_ms() -> u64 {
    use std::time::{SystemTime, UNIX_EPOCH};

    SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .map(|d| d.as_millis() as u64)
        .unwrap_or(0)
}