Skip to main content

aivcs_core/
lib.rs

1//! AIVCS Core Library
2//!
3//! Re-exports core components for programmatic access to AIVCS functionality.
4
5pub mod cas;
6pub mod compat;
7pub mod deploy;
8pub mod deploy_runner;
9pub mod diff;
10pub mod domain;
11pub mod event_adapter;
12pub mod gate;
13pub mod git;
14pub mod hitl_controls;
15pub mod memory;
16pub mod memory_context;
17pub mod metrics;
18pub mod multi_repo;
19pub mod obs;
20pub mod orchestration;
21pub mod parallel;
22pub mod planning_autonomy;
23pub mod publish_gate;
24pub mod quality_guardrails;
25pub mod recording;
26pub mod release_registry;
27pub mod replay;
28pub mod reporting;
29pub mod role_orchestration;
30pub mod sandbox;
31pub mod self_healing;
32pub mod telemetry;
33pub mod tooling;
34pub mod trace_artifact;
35
36pub use domain::{
37    validate_run_event, AgentSpec, AgentSpecFields, AivcsError, DeterministicEvalRunner,
38    EvalCaseResult, EvalRunReport, EvalSuite, EvalTestCase, EvalThresholds, Event, EventKind,
39    Release, ReleaseEnvironment, ReleasePointer, Result, Run, RunStatus, ScorerConfig, ScorerType,
40    SnapshotMeta, ValidationError,
41};
42
43pub use event_adapter::{subscribe_ledger_to_bus, LedgerHandler};
44
45pub use git::{capture_head_sha, is_git_repo};
46
47pub use memory::{DecisionRecorder, DecisionRecorderConfig};
48
49pub use oxidized_state::{
50    BranchRecord, CommitId, CommitRecord, DecisionRecord, MemoryProvenanceRecord, MemoryRecord,
51    ProvenanceSourceType, SnapshotRecord, SurrealHandle,
52};
53
54pub use nix_env_manager::{
55    generate_environment_hash, generate_logic_hash, is_attic_available, is_nix_available,
56    AtticClient, AtticConfig, FlakeMetadata, HashSource, NixHash,
57};
58
59pub use semantic_rag_merge::{
60    diff_memory_vectors, resolve_conflict_state, semantic_merge, synthesize_memory,
61    AutoResolvedValue, MemoryConflict, MergeResult, VectorStoreDelta,
62};
63
64pub use cas::fs::FsCasStore;
65pub use cas::{CasError, CasStore, Digest};
66pub use compat::{
67    evaluate_compat, CompatRule, CompatRuleSet, CompatVerdict, CompatViolation, PromoteContext,
68};
69pub use deploy::{deploy_by_digest, DeployResult};
70pub use deploy_runner::{DeployByDigestRunner, DeployRunOutput};
71pub use diff::lcs_diff::{
72    diff_tool_calls as diff_tool_calls_lcs, DiffSummary, ParamChange,
73    ToolCallChange as LcsToolCallChange, ToolCallEntry,
74};
75pub use diff::state_diff::{
76    diff_run_states, diff_scoped_state, extract_last_checkpoint, ScopedStateDiff, StateDelta,
77    CHECKPOINT_SAVED_KIND,
78};
79pub use orchestration::{
80    default_role_templates, deterministic_role_order, merge_role_outputs, validate_handoff,
81    validate_parallel_roles, AgentRole, HandoffValidationError, MergeConflict,
82    MergeConflictStrategy, MergeOutcome, ParallelPlanError, RoleHandoff, RoleOutput, RoleTemplate,
83};
84pub use parallel::{
85    fork_agent_parallel, BranchStatus, ForkResult, ParallelConfig, ParallelManager,
86};
87pub use planning_autonomy::{
88    compute_progress, decompose_goal_to_dag, evaluate_replan, schedule_next_ready_tasks, EpicPlan,
89    ExecutionDag, GoalPlan, PlanTask, PlanTaskStatus, PlanningError, ProgressReport,
90    ReplanDecision, ReplanPolicy, ReplanReason, SchedulerConstraints, TaskPlan,
91};
92
93pub use diff::node_paths::{
94    diff_node_paths, extract_node_path, NodeDivergence, NodePathDiff, NodeStep,
95};
96pub use diff::tool_calls::{diff_tool_calls, ParamDelta, ToolCall, ToolCallChange, ToolCallDiff};
97pub use gate::{
98    evaluate_gate, CaseResult, EvalReport, GateRule, GateRuleSet, GateVerdict, Violation,
99};
100pub use recording::GraphRunRecorder;
101pub use release_registry::ReleaseRegistryApi;
102pub use replay::{find_resume_point, replay_run, verify_spec_digest, ReplaySummary, ResumePoint};
103pub use reporting::{
104    render_diff_summary_md, write_diff_summary_md, write_eval_results_json, DiffSummaryArtifact,
105    EvalCaseResultArtifact, EvalResultsArtifact, EvalSummaryArtifact,
106};
107
108pub use trace_artifact::{
109    read_trace_artifact, write_trace_artifact, RetentionPolicy, RunTraceArtifact,
110};
111
112pub use quality_guardrails::{
113    evaluate_quality_guardrails, read_guardrail_artifact, release_block_reason,
114    write_guardrail_artifact, CheckFinding, CheckResult, GuardrailArtifact, GuardrailCoverage,
115    GuardrailPolicyProfile, GuardrailVerdict, QualityCheck, QualitySeverity, ReleaseAction,
116};
117pub use role_orchestration::error::{RoleError, RoleResult};
118pub use role_orchestration::executor::{
119    execute_roles_parallel, token_from_result, ParallelRoleConfig, RoleRunResult,
120};
121pub use role_orchestration::merge::{merge_parallel_outputs, MergedRoleOutput, RoleConflict};
122pub use role_orchestration::roles::HandoffToken;
123pub use role_orchestration::router::{
124    build_execution_plan, validate_handoff_sequence, ExecutionPlan, RoleStep,
125};
126pub use self_healing::{
127    classify_failure, execute_recovery_loop, read_recovery_artifact, write_recovery_artifact,
128    FailureClass, FailureSignal, RecoveryAction, RecoveryAttemptResult, RecoveryDecision,
129    RecoveryLog, RecoveryOutcome, RecoveryPolicy,
130};
131
132pub use sandbox::{
133    evaluate_tool_request, execute_with_controls, CircuitBreaker, PolicyVerdict, SandboxConfig,
134    SandboxError, SandboxResult, ToolExecutionResult, ToolPolicyRule, ToolPolicySet, ToolRequest,
135};
136
137pub use memory::{
138    assemble_context, compact_index, CompactionPolicy, CompactionResult, ContextBudget,
139    ContextItem, ContextWindow, DecisionRationale, IndexQuery, IndexResult, MemoryEntry,
140    MemoryEntryKind, MemoryError, MemoryIndex, MemoryResult, RationaleEntry, RationaleOutcome,
141};
142
143pub use memory_context::{
144    estimate_tokens, read_memory_context_artifact, write_memory_context_artifact, AssembledContext,
145    CompactionPolicy as MemoryContextCompactionPolicy,
146    CompactionResult as MemoryContextCompactionResult, CompactionStrategy, ContextAssembler,
147    ContextSegment, DecisionImportance, DecisionRationale as MemoryContextDecisionRationale,
148    MatchStrategy, MemoryContextArtifact, MemoryEntry as MemoryContextEntry, MemoryHit,
149    MemoryIndex as MemoryContextIndex, MemoryQuery, RationaleLedger,
150};
151pub use metrics::METRICS;
152pub use multi_repo::{
153    BackportExecutor, BackportOutcome, BackportPolicy, BackportTask, CIHealthView, CiAggregator,
154    CiHealthReport, CiRunFetcher, CrossRepoGraph, MultiRepoError, MultiRepoExecutionPlan,
155    MultiRepoOrchestrator, MultiRepoResult, ReleaseProvenance, ReleaseSequencer, RepoCIStatus,
156    RepoDependency, RepoDependencyGraph, RepoExecutionPlan, RepoHealth, RepoHealthStatus, RepoId,
157    RepoNode, RepoReleaseStatus, RepoReleaser, RepoStep, SequenceItem, SequenceOutcome,
158    SequencePlan,
159};
160pub use obs::{
161    emit_event_appended, emit_gate_evaluated, emit_run_finalize_error, emit_run_finished,
162    emit_run_started, RunSpan,
163};
164pub use telemetry::init_tracing;
165pub use tooling::{
166    JsonFieldSchema, PolicyAction, PolicyMatrix, SchemaStage, ToolAdapter, ToolCallStatus,
167    ToolCapability, ToolExecutionConfig, ToolExecutionError, ToolExecutionReport, ToolExecutor,
168    ToolInvocation, ToolRegistry, ToolSpec, ToolTelemetry,
169};
170
171pub use hitl_controls::{
172    apply_intervention, evaluate_checkpoint, read_hitl_artifact, submit_vote, write_hitl_artifact,
173    ApprovalCheckpoint, ApprovalPolicy, ApprovalRule, ApprovalVote, CheckpointStatus,
174    DecisionSummary, ExplainabilitySummary, HitlArtifact, HitlError, HitlResult, Intervention,
175    InterventionAction, RiskTier, VoteDecision,
176};
177
178/// AIVCS version
179pub const VERSION: &str = env!("CARGO_PKG_VERSION");