Skip to main content

synth_ai_core/
lib.rs

1//! Synth core library.
2//!
3//! This crate provides the core functionality for the Synth SDK:
4//! - API client for backend communication
5//! - Authentication and credential management
6//! - Configuration handling
7//! - HTTP client utilities
8//! - Job orchestration and streaming
9//! - Tracing and storage
10//! - Tunnel management
11//! - Data types (enums, rubrics, objectives, etc.)
12//! - Streaming framework
13//! - Local API client for task apps
14
15pub mod api;
16pub mod auth;
17pub mod config;
18pub mod data;
19pub mod errors;
20pub mod events;
21pub mod http;
22pub mod jobs;
23pub mod localapi;
24pub mod orchestration;
25pub mod polling;
26pub mod streaming;
27pub mod tracing;
28pub mod tunnels;
29pub mod urls;
30
31// Re-export core types at crate root for convenience
32pub use errors::{CoreError, CoreResult, HttpErrorInfo, JobErrorInfo, UsageLimitInfo};
33pub use jobs::{CandidateStatus, JobEvent, JobEventType, JobLifecycle, JobStatus};
34
35// Re-export API types for convenience
36pub use api::{SynthClient, PolicyJobStatus, EvalJobStatus};
37
38// Re-export orchestration types
39pub use orchestration::{
40    EventCategory, EventParser, ParsedEvent,
41    GEPAProgress, ProgressTracker, CandidateInfo, TokenUsage,
42    PromptLearningJob, PromptLearningResult, PromptResults, RankedPrompt,
43    EventStream,
44};
45
46// Re-export tracing types
47pub use tracing::{
48    SessionTracer, LibsqlTraceStorage, TraceStorage, StorageConfig, TracingError,
49    SessionTrace, SessionTimeStep, TracingEvent, EventType,
50    LMCAISEvent, EnvironmentEvent, RuntimeEvent,
51    BaseEventFields, TimeRecord, MessageContent, MarkovBlanketMessage,
52    LLMCallRecord, LLMMessage, LLMUsage, LLMContentPart, ToolCallSpec, ToolCallResult,
53    OutcomeReward, EventReward,
54    HookManager, HookEvent, HookContext, HookCallback,
55};
56
57// Re-export data types
58pub use data::{
59    // Enums
60    JobType, JobStatus as DataJobStatus, ProviderName, InferenceMode,
61    RewardSource, RewardType, RewardScope,
62    ObjectiveKey, ObjectiveDirection, OutputMode, SuccessStatus,
63    GraphType, OptimizationMode, VerifierMode, TrainingType,
64    AdaptiveCurriculumLevel, AdaptiveBatchLevel,
65    // Rubrics
66    Rubric, Criterion,
67    // Objectives
68    ObjectiveSpec, RewardObservation, OutcomeObjectiveAssignment, EventObjectiveAssignment,
69    // Judgements
70    Judgement, RubricAssignment, CriterionScoreData,
71    // Artifacts
72    Artifact, ArtifactBundle, ArtifactContent,
73    // Context overrides
74    ContextOverride, ContextOverrideStatus, ApplicationStatus, ApplicationErrorType,
75};
76
77// Re-export streaming types
78pub use streaming::{
79    StreamType, StreamMessage, StreamConfig, StreamEndpoints,
80    StreamHandler, CallbackHandler, JsonHandler, BufferedHandler, MultiHandler,
81    JobStreamer,
82};
83
84// Re-export local API types
85pub use localapi::{
86    TaskAppClient, RolloutRequest, RolloutResponse, RolloutMetrics,
87    TaskInfo, TaskDescriptor, DatasetInfo, InferenceInfo, LimitsInfo,
88    RolloutEnvSpec, RolloutPolicySpec, RolloutSafetyConfig,
89    HealthResponse, InfoResponse,
90};