Skip to main content

converge_pack/
lib.rs

1// Copyright 2024-2026 Reflective Labs
2
3// SPDX-License-Identifier: MIT
4
5//! # Converge Pack
6//!
7//! This crate is the strict Rust authoring contract for Converge packs.
8//! External modules implement these traits to participate in convergence:
9//!
10//! - [`Suggestor`] for pure suggestors
11//! - [`Context`] for read-only context access
12//! - [`AgentEffect`] for buffered proposal output
13//! - [`Fact`] / [`ProposedFact`] for the current context boundary
14//! - [`Pack`] for domain packs with gate infrastructure
15//! - [`PackSuggestor`] for bridging Pack to Suggestor
16//!
17//! Provider selection and backend capability routing do not live here.
18//! Those contracts belong to `converge-provider-api`.
19
20mod agent;
21pub mod context;
22pub mod effect;
23pub mod fact;
24pub mod gate;
25pub mod pack;
26pub mod pack_suggestor;
27pub mod types;
28pub mod suggestor {
29    pub use super::agent::Suggestor;
30}
31
32pub use agent::Suggestor;
33pub use context::{Context, ContextKey};
34pub use effect::AgentEffect;
35pub use fact::{
36    CONFIDENCE_STEP_MAJOR, CONFIDENCE_STEP_MEDIUM, CONFIDENCE_STEP_MINOR, CONFIDENCE_STEP_PRIMARY,
37    CONFIDENCE_STEP_TINY, Fact, FactActor, FactActorKind, FactEvidenceRef, FactLocalTrace,
38    FactPromotionRecord, FactRemoteTrace, FactTraceLink, FactValidationSummary, ProposedFact,
39    ValidationError,
40};
41pub use gate::{
42    AuthorityPolicy, ConstraintHardness, ConstraintSpec, ConstraintType, DeterminismSpec,
43    Diagnostic, DiagnosticKind, GateDecision, GateError, GateResult, KernelTraceLink,
44    ObjectiveDirection, ObjectiveSpec, ProblemSpec, ProblemSpecBuilder, PromotionGate,
45    ProposedPlan, ProvenanceEnvelope, ReplayEnvelope, SolveBudgets, SolverReport, StopReason,
46    TieBreakStrategy, TraceMode, Violation,
47};
48pub use pack::{
49    InvariantDef, InvariantResult, Pack, PackSchema, PackSolveResult, PackSolver,
50    default_gate_evaluation,
51};
52pub use pack_suggestor::PackSuggestor;
53pub use types::{
54    ActorId, ApprovalId, ApprovalPointId, ArtifactId, BackendId, ChainId, ConstraintName,
55    ConstraintValue, ContentHash, CorrelationId, CriterionId, DomainId, EventId, FactId, GateId,
56    ObservationId, PackId, PolicyId, PolicyVersionId, PrincipalId, ProposalId, ResourceId,
57    ResourceKind, SpanId, TenantId, Timestamp, TraceId, TraceLinkId, TraceReference, TraceSystemId,
58    TruthId, ValidationCheckId,
59};