Skip to main content

Crate synth_ai_core

Crate synth_ai_core 

Source
Expand description

Synth core library.

This crate provides the core functionality for the Synth SDK:

  • API client for backend communication
  • Authentication and credential management
  • Configuration handling
  • HTTP client utilities
  • Job orchestration and streaming
  • Tracing and storage
  • Tunnel management
  • Data types (enums, rubrics, objectives, etc.)
  • Streaming framework
  • Local API client for containers

Re-exports§

pub use errors::CoreError;
pub use errors::CoreResult;
pub use errors::HttpErrorInfo;
pub use errors::JobErrorInfo;
pub use errors::UsageLimitInfo;
pub use jobs::CandidateStatus;
pub use jobs::JobEvent;
pub use jobs::JobEventType;
pub use jobs::JobLifecycle;
pub use jobs::JobStatus;
pub use api::EvalJobStatus;
pub use api::GraphEvolveClient;
pub use api::InferenceClient;
pub use api::ContainerDeployClient;
pub use api::ContainerDeployResponse;
pub use api::ContainerDeploySpec;
pub use api::ContainerDeployStatus;
pub use api::ContainerDeploymentInfo;
pub use api::ContainerLimits;
pub use api::PolicyJobStatus;
pub use api::SynthClient;
pub use models::detect_model_provider;
pub use models::normalize_model_identifier;
pub use models::supported_models;
pub use orchestration::base_event_schemas;
pub use orchestration::base_job_event_schema;
pub use orchestration::build_graph_evolve_config;
pub use orchestration::build_graph_evolve_graph_record_payload;
pub use orchestration::build_graph_evolve_inference_payload;
pub use orchestration::build_graph_evolve_payload;
pub use orchestration::build_graph_evolve_placeholder_dataset;
pub use orchestration::build_program_candidate;
pub use orchestration::build_prompt_learning_payload;
pub use orchestration::convert_openai_sft;
pub use orchestration::event_enum_values;
pub use orchestration::extract_program_candidate_content;
pub use orchestration::extract_stages_from_candidate;
pub use orchestration::get_base_schema;
pub use orchestration::graph_opt_supported_models;
pub use orchestration::is_valid_event_type;
pub use orchestration::load_graph_evolve_dataset;
pub use orchestration::load_graph_job_toml;
pub use orchestration::load_graphgen_taskset;
pub use orchestration::merge_event_schema;
pub use orchestration::normalize_graph_evolve_policy_models;
pub use orchestration::normalize_transformation;
pub use orchestration::parse_graph_evolve_dataset;
pub use orchestration::parse_graphgen_taskset;
pub use orchestration::resolve_graph_evolve_snapshot_id;
pub use orchestration::seed_reward_entry;
pub use orchestration::seed_score_entry;
pub use orchestration::validate_event_type;
pub use orchestration::validate_graph_job_payload;
pub use orchestration::validate_graph_job_section;
pub use orchestration::validate_graphgen_job_config;
pub use orchestration::validate_graphgen_taskset;
pub use orchestration::validate_prompt_learning_config;
pub use orchestration::validate_prompt_learning_config_strict;
pub use orchestration::CandidateInfo;
pub use orchestration::EventCategory;
pub use orchestration::EventParser;
pub use orchestration::EventStream;
pub use orchestration::GEPAProgress;
pub use orchestration::GraphEvolveJob;
pub use orchestration::GraphGenValidationResult;
pub use orchestration::MutationSummary;
pub use orchestration::MutationTypeStats;
pub use orchestration::ParsedEvent;
pub use orchestration::PhaseSummary;
pub use orchestration::ProgramCandidate;
pub use orchestration::ProgressTracker;
pub use orchestration::PromptLearningJob;
pub use orchestration::PromptLearningResult;
pub use orchestration::PromptLearningValidationResult;
pub use orchestration::PromptResults;
pub use orchestration::RankedPrompt;
pub use orchestration::SeedAnalysis;
pub use orchestration::SeedInfo;
pub use orchestration::StageInfo;
pub use orchestration::TokenUsage;
pub use orchestration::MAX_INSTRUCTION_LENGTH;
pub use orchestration::MAX_ROLLOUT_SAMPLES;
pub use orchestration::MAX_SEED_INFO_COUNT;
pub use tracing::BaseEventFields;
pub use tracing::EnvironmentEvent;
pub use tracing::EventReward;
pub use tracing::EventType;
pub use tracing::HookCallback;
pub use tracing::HookContext;
pub use tracing::HookEvent;
pub use tracing::HookManager;
pub use tracing::LLMCallRecord;
pub use tracing::LLMContentPart;
pub use tracing::LLMMessage;
pub use tracing::LLMUsage;
pub use tracing::LMCAISEvent;
pub use tracing::MarkovBlanketMessage;
pub use tracing::MessageContent;
pub use tracing::OutcomeReward;
pub use tracing::RuntimeEvent;
pub use tracing::SessionTimeStep;
pub use tracing::SessionTrace;
pub use tracing::SessionTracer;
pub use tracing::StorageConfig;
pub use tracing::TimeRecord;
pub use tracing::ToolCallResult;
pub use tracing::ToolCallSpec;
pub use tracing::TraceStorage;
pub use tracing::TracingError;
pub use tracing::TracingEvent;
pub use tracing::LibsqlTraceStorage;
pub use data::data_enum_values;
pub use data::lever_sensor_v1_contract_schema;
pub use data::AdaptiveBatchLevel;
pub use data::AdaptiveCurriculumLevel;
pub use data::ApplicationErrorType;
pub use data::ApplicationStatus;
pub use data::Artifact;
pub use data::ArtifactBundle;
pub use data::ArtifactContent;
pub use data::ContextOverride;
pub use data::ContextOverrideStatus;
pub use data::Criterion;
pub use data::CriterionScoreData;
pub use data::EventObjectiveAssignment;
pub use data::GraphType;
pub use data::InferenceMode;
pub use data::JobStatus as DataJobStatus;
pub use data::JobType;
pub use data::Judgement;
pub use data::Lever;
pub use data::LeverActor;
pub use data::LeverConstraints;
pub use data::LeverFormat;
pub use data::LeverKind;
pub use data::LeverMutability;
pub use data::LeverMutation;
pub use data::LeverProvenance;
pub use data::LeverSnapshot;
pub use data::MiproLeverSummary;
pub use data::ObjectiveDirection;
pub use data::ObjectiveKey;
pub use data::ObjectiveSpec;
pub use data::OptimizationMode;
pub use data::OutcomeObjectiveAssignment;
pub use data::OutputMode;
pub use data::ProviderName;
pub use data::RewardObservation;
pub use data::RewardScope;
pub use data::RewardSource;
pub use data::RewardType;
pub use data::Rubric;
pub use data::RubricAssignment;
pub use data::ScopeKey;
pub use data::ScopeKind;
pub use data::Sensor;
pub use data::SensorFrame;
pub use data::SensorFrameSummary;
pub use data::SensorKind;
pub use data::SuccessStatus;
pub use data::TrainingType;
pub use data::VerifierMode;
pub use streaming::BufferedHandler;
pub use streaming::CallbackHandler;
pub use streaming::JobStreamer;
pub use streaming::JsonHandler;
pub use streaming::MultiHandler;
pub use streaming::StreamConfig;
pub use streaming::StreamEndpoints;
pub use streaming::StreamHandler;
pub use streaming::StreamMessage;
pub use streaming::StreamType;
pub use sse::stream_sse;
pub use sse::stream_sse_request;
pub use sse::SseEvent;
pub use sse::SseStream;
pub use container::allowed_environment_api_keys;
pub use container::apply_context_overrides;
pub use container::build_rollout_response;
pub use container::build_trace_payload;
pub use container::build_trajectory_trace;
pub use container::encrypt_for_backend;
pub use container::ensure_container_auth;
pub use container::ensure_split;
pub use container::extract_api_key;
pub use container::extract_message_text;
pub use container::extract_trace_correlation_id;
pub use container::get_agent_skills_path;
pub use container::get_applied_env_vars;
pub use container::get_default_max_completion_tokens;
pub use container::get_groq_key;
pub use container::get_openai_key;
pub use container::include_event_history_in_response;
pub use container::include_event_history_in_trajectories;
pub use container::include_trace_correlation_id_in_response;
pub use container::inject_system_hint;
pub use container::is_api_key_header_authorized;
pub use container::is_direct_provider_call;
pub use container::mint_environment_api_key;
pub use container::normalise_seed;
pub use container::normalize_chat_completion_url;
pub use container::normalize_environment_api_key;
pub use container::normalize_inference_url;
pub use container::normalize_response_format_for_groq;
pub use container::normalize_vendor_keys;
pub use container::parse_tool_call_from_text;
pub use container::parse_tool_calls_from_response;
pub use container::prepare_for_groq;
pub use container::prepare_for_openai;
pub use container::resolve_sft_output_dir;
pub use container::resolve_tracing_db_url;
pub use container::setup_environment_api_key;
pub use container::synthesize_tool_call_if_missing;
pub use container::container_health;
pub use container::tracing_env_enabled;
pub use container::unique_sft_path;
pub use container::validate_artifact_size;
pub use container::validate_artifacts_list;
pub use container::validate_context_overrides;
pub use container::validate_context_snapshot;
pub use container::validate_rollout_response_for_rl;
pub use container::validate_container_url;
pub use container::validate_trace_correlation_id;
pub use container::verify_trace_correlation_id_in_response;
pub use container::DatasetInfo;
pub use container::HealthResponse;
pub use container::InferenceInfo;
pub use container::InfoResponse;
pub use container::LimitsInfo;
pub use container::RolloutEnvSpec;
pub use container::RolloutMetrics;
pub use container::RolloutPolicySpec;
pub use container::RolloutRequest;
pub use container::RolloutResponse;
pub use container::RolloutSafetyConfig;
pub use container::ContainerClient;
pub use container::TaskDatasetSpec;
pub use container::TaskDescriptor;
pub use container::TaskInfo;
pub use container::DEV_ENVIRONMENT_API_KEY_NAME;
pub use container::ENVIRONMENT_API_KEY_ALIASES_NAME;
pub use container::ENVIRONMENT_API_KEY_NAME;
pub use container::MAX_ARTIFACTS_PER_ROLLOUT;
pub use container::MAX_ARTIFACT_CONTENT_TYPE_LENGTH;
pub use container::MAX_ARTIFACT_METADATA_BYTES;
pub use container::MAX_CONTEXT_OVERRIDES_PER_ROLLOUT;
pub use container::MAX_CONTEXT_SNAPSHOT_BYTES;
pub use container::MAX_ENVIRONMENT_API_KEY_BYTES;
pub use container::MAX_ENV_VARS;
pub use container::MAX_ENV_VAR_VALUE_LENGTH;
pub use container::MAX_FILES_PER_OVERRIDE;
pub use container::MAX_FILE_SIZE_BYTES;
pub use container::MAX_INLINE_ARTIFACT_BYTES;
pub use container::MAX_TOTAL_INLINE_ARTIFACTS_BYTES;
pub use container::MAX_TOTAL_SIZE_BYTES;
pub use container::PREFLIGHT_SCRIPT_TIMEOUT_SECONDS;
pub use container::SEALED_BOX_ALGORITHM;
pub use trace_upload::TraceUploadClient;
pub use trace_upload::UploadUrlResponse;
pub use utils::cleanup_paths;
pub use utils::compute_import_paths;
pub use utils::create_and_write_json;
pub use utils::ensure_private_dir;
pub use utils::find_config_path;
pub use utils::get_bin_path;
pub use utils::get_home_config_file_paths;
pub use utils::is_file_type;
pub use utils::is_hidden_path;
pub use utils::load_json_to_value;
pub use utils::repo_root;
pub use utils::should_filter_log_line;
pub use utils::strip_json_comments;
pub use utils::synth_bin_dir;
pub use utils::synth_home_dir;
pub use utils::synth_container_config_path;
pub use utils::synth_user_config_path;
pub use utils::validate_file_type;
pub use utils::write_private_json;
pub use utils::write_private_text;

Modules§

api
Synth API client.
auth
Authentication utilities for Synth SDK.
config
Configuration utilities for Synth SDK.
container
Local API client for container communication.
data
Data types for the Synth SDK.
errors
Core error types for Synth SDK.
events
http
HTTP client for Synth API calls.
jobs
Job lifecycle management.
models
Model identifier utilities shared across SDKs.
orchestration
Job orchestration module.
polling
Polling and retry utilities.
shared_client
Shared HTTP client utilities for connection pooling.
sse
Server-Sent Events (SSE) streaming helpers.
streaming
Streaming framework for job events.
trace_upload
Trace upload helpers for large traces via presigned URLs.
tracing
Tracing system for recording session traces.
tunnels
urls
utils
x402
x402 client-side helpers (HTTP 402 machine payments).