1use converge_core::{ContextKey, ProposalId, ProposedFact};
26
27pub mod ask_converge;
28pub mod domain_invariants;
29pub mod drafting;
30pub mod drafting_llm;
31pub mod eval_agent;
32pub mod evals;
33mod flow_governance;
34pub mod form_filler;
35pub mod meeting_scheduler;
36pub mod packs;
37pub mod resource_routing;
38
39pub mod llm_utils;
40pub mod mock;
41pub mod retrieval;
42
43pub mod meeting_scheduler_llm;
45
46pub use ask_converge::{AskConvergeAgent, GroundedAnswerInvariant, RecallNotEvidenceInvariant};
47pub use drafting::{DraftingComposerAgent, DraftingResearchAgent};
48
49pub use form_filler::{
50 CompletenessAgent, FieldMappingAgent, FillPlanAgent, FormSchemaAgent, NormalizationAgent,
51 ProposalEmitterAgent, RiskClassifierAgent,
52};
53
54pub use meeting_scheduler::{
55 AvailabilityRetrievalAgent,
57 ConflictDetectionAgent,
58 RequireParticipantAvailability,
60 RequirePositiveDuration,
61 RequireValidSlot,
62 SlotOptimizationAgent,
63 TimeZoneNormalizationAgent,
64 WorkingHoursConstraintAgent,
65};
66
67pub use resource_routing::{
68 ConstraintValidationAgent,
70 FeasibilityAgent,
71 RequireAllTasksAssigned,
73 RequireCapacityRespected,
74 RequireValidDefinitions,
75 ResourceRetrievalAgent,
76 SolverAgent,
77 TaskRetrievalAgent,
78};
79
80pub use domain_invariants::{AuditTrailRequired, AuthorityRequired};
81
82pub use evals::{
84 AccessComplianceEval,
86 AuditCoverageEval,
87 DashboardSourceEval,
89 InvoiceAccuracyEval,
91 MeetingScheduleFeasibilityEval,
93 MetricDefinitionQualityEval,
94 PaymentReconciliationEval,
95 PromiseFulfillmentEval,
97 RbacEnforcementEval,
98 ScopeCreepDetectionEval,
99};
100
101pub(crate) fn proposal(
102 provenance: impl Into<String>,
103 key: ContextKey,
104 id: impl Into<String>,
105 content: impl Into<String>,
106) -> ProposedFact {
107 ProposedFact::new(key, ProposalId::new(id.into()), content, provenance)
108}