Skip to main content

synth_ai_core/api/
mod.rs

1//! Synth API client.
2//!
3//! This module provides a client for interacting with the Synth AI API.
4//!
5//! # Example
6//!
7//! ```ignore
8//! use synth_ai_core::api::{SynthClient, GepaJobRequest, PolicyConfig};
9//!
10//! #[tokio::main]
11//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
12//!     let client = SynthClient::from_env()?;
13//!
14//!     // Submit a GEPA job
15//!     let job_id = client.jobs().submit_gepa(GepaJobRequest {
16//!         container_url: "http://localhost:8000".into(),
17//!         env_name: "default".into(),
18//!         policy: PolicyConfig::default(),
19//!         ..Default::default()
20//!     }).await?;
21//!
22//!     // Poll until complete
23//!     let result = client.jobs().poll_until_complete(&job_id, 3600.0, 15.0).await?;
24//!     println!("Best score: {:?}", result.best_score);
25//!
26//!     Ok(())
27//! }
28//! ```
29
30pub mod client;
31pub mod eval;
32pub mod graph_evolve;
33pub mod graphs;
34pub mod inference;
35pub mod jobs;
36pub mod container;
37pub mod types;
38
39// Re-export main types for convenience
40pub use client::SynthClient;
41pub use eval::EvalClient;
42pub use graph_evolve::GraphEvolveClient;
43pub use graphs::{build_verifier_request, resolve_graph_job_id, GraphsClient};
44pub use inference::InferenceClient;
45pub use jobs::JobsClient;
46pub use container::ContainerDeployClient;
47pub use types::{
48    EvalJobRequest,
49    EvalJobStatus,
50    EvalResult,
51    GepaConfig,
52    // Request types
53    GepaJobRequest,
54    // Graph types
55    GraphCompletionRequest,
56    GraphCompletionResponse,
57    // Response types
58    JobSubmitResponse,
59    ContainerDeployResponse,
60    ContainerDeploySpec,
61    ContainerDeployStatus,
62    ContainerDeploymentInfo,
63    ContainerLimits,
64    MiproConfig,
65    MiproJobRequest,
66    // Config types
67    PolicyConfig,
68    // Job status
69    PolicyJobStatus,
70    PromptLearningResult,
71    RlmOptions,
72    Usage,
73    VerifierOptions,
74    VerifierResponse,
75};