#![allow(clippy::manual_is_multiple_of)]
#![warn(missing_docs)]
#![cfg_attr(not(feature = "std"), no_std)]
#![allow(clippy::new_ret_no_self)]
#![allow(clippy::should_implement_trait)]
#![allow(clippy::type_complexity)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::needless_lifetimes)]
#![allow(clippy::int_plus_one)]
#![allow(clippy::unnecessary_map_or)]
#![allow(clippy::while_let_loop)]
#![allow(clippy::implicit_saturating_sub)]
#![allow(clippy::manual_pattern_char_comparison)]
#[cfg(feature = "std")]
extern crate std;
pub mod buffer;
pub mod intern;
pub mod str_view;
pub mod bootstrap;
pub mod error;
pub mod example;
pub mod field;
pub mod module;
pub mod optimizer;
pub mod predict;
pub mod prediction;
pub mod signature;
pub mod types;
pub mod compiled;
pub mod composable;
pub mod evaluate;
pub mod metric;
pub mod typed_adapter;
pub mod typed_sig;
pub mod optimizers;
pub mod adapter;
pub mod assertion;
pub mod executor;
pub mod recursive;
pub mod diff;
pub mod hitl;
pub mod declarative;
pub mod recall_precision;
pub use bootstrap::{BootstrapFewShot, BootstrapFewShotWithRandomSearch};
pub use error::{Error, OptimizationDetails, Result};
pub use example::Example;
pub use field::{Field, FieldType, InputField, OutputField};
pub use module::Module;
pub use optimizer::{ExampleMeta, ExampleSet, OptimizationResult, Optimizer, OptimizerConfig, Rng};
pub use predict::{
predict_with_lm, DemoMeta, FieldRange, LMClient, LMOutput, Predict, PredictOutput,
};
pub use prediction::Prediction;
pub use signature::{Signature, SignatureBuilder};
pub use typed_adapter::{ChatTypedAdapter, JsonTypedAdapter, TypedAdapter};
pub use typed_sig::{ParsedOutput, TypedField, TypedSignature, ValueKind};
pub use evaluate::{EvalResult, Evaluate, ExampleResult};
pub use metric::{Contains as MetricContains, ExactMatch, F1Token, FnMetric, Metric};
pub use compiled::CompiledProgram;
pub use composable::{ComposableModule, ModuleState};
pub use optimizers::{
COPROConfig, COPROResult, CombineStrategy, Embedder as OptimizerEmbedder, EmbeddingIndex,
Ensemble, EnsembleConfig, EnsembleResult, ErasedOptimizer, FailureCase, Improvement,
ImprovementKind, KNNConfig, KNNFewShot, KNNSelector, LabeledConfig, LabeledFewShot,
LabeledFewShotBuilder, MIPROConfig, MIPROResult, OptimizeInto, SIMBAConfig, SIMBAResult,
SelectionStrategy, TPESampler, COPRO, MIPRO, SIMBA,
};
pub use recall_precision::RecallPrecisionMode;
pub use adapter::{
Adapter, ChatAdapter, ChatConfig, DemoData, JSONAdapter, JSONConfig, XMLAdapter, XMLConfig,
};
pub use assertion::{
Assertion, AssertionLevel, AssertionResult, AssertionRunner, Contains, Custom, EndsWith,
JsonValid, LengthBounds, NotEmpty, OneOf, RegexMatch, StartsWith,
};
pub use executor::{
BatchRunner, BufferPool, BufferPoolStats, ExecutorConfig, ExecutorStats, HybridExecutor,
ScopedBuffer,
};
pub use recursive::{
agent,
all,
any,
bash_executor,
best_of,
checks,
cli,
cosine_similarity,
ensemble,
extract_all_code,
extract_code,
extract_section,
memory,
mmr_select,
multi_objective,
node_executor,
parse_output,
pipeline,
program,
python_executor,
reason,
refine,
refine_pareto,
refine_pareto_sync,
rewrite,
ruby_executor,
tool,
typed,
Agent,
AgentConfig,
AgentResult,
Aggregate,
All,
AlwaysFail,
And,
Any,
AsyncFnTool,
BestOf,
BestOfConfig,
BestOfResult,
BoolValidator,
BoxedLlm,
BranchBuilder,
CacheExt,
CachedLlm,
CandidatePool,
ChainResult,
Checks,
Cli,
CliCapture,
CliLlm,
CliTool,
CodeExecutor,
Compiled,
Config as RefineConfig,
ConsensusPool,
ContextId,
Conversation,
Correction,
DefaultScorer,
Direction,
Document,
Embedder,
ExecutionResult,
FailingLlm,
FanOutBranchResult,
FeedbackFormatter,
FnScorer,
FnTool,
FnValidator,
FormatInstruction,
FormatSpec,
FormatType,
HashEmbedder,
Iteration,
IterativeMockLlm,
JsonSchema,
LinearIndex,
Llm,
LlmExt,
LmOutput,
Memory,
MergeStrategy,
Message,
MockLlm,
MockTool,
MultiObjective,
MultiObjectiveValidate,
MultiScore,
NoValidation,
Objective,
OptimizedPrompt,
Or,
ParetoCandidate,
ParetoFront,
ParetoRefineResult,
PassthroughFormatter,
Pipeline,
PipelineEvent,
PipelineResult,
PoolStats,
ProcessExecutor,
Program,
ProgramConfig,
ProgramResult,
PromptFormatter,
PromptTone,
RateLimitConfig,
RateLimitExt,
RateLimitedLlm,
Reason,
ReasonConfig,
ReasonResult,
Recall,
Refine,
RefineEvent,
RefineResult,
RetryConfig,
RetryLlm,
Rewrite,
Role,
Scalarization,
Score,
ScoreValidator,
ScoredCandidate,
Scorer,
Step,
StepResult,
StopReason,
Template,
TemplateExample,
TemplateOptions,
ToneModifiers,
Tool,
ToolBuilder,
TypedValidator,
Validate,
ValidateExt,
VectorIndex,
};
pub use recursive::critic::{Critic, CriticFeedback, FnCritic, LlmCritic, NoCritic};
pub use recursive::input::{ContentType, Input, InputPart, MultimodalLlm};
pub use recursive::state::{Saveable, SaveableExt, StateMap, StateValue};
#[cfg(feature = "hnsw")]
pub use recursive::HnswIndex;
#[cfg(feature = "embeddings-onnx")]
pub use recursive::{OnnxEmbedder, OnnxEmbedderError};
pub use diff::{
Change, ChangeKind, DemoSnapshot, DemosDiff, DiffAlgorithm, DiffColors, DiffHunk, DiffRenderer,
DiffStats, DiffStyle, FieldsDiff, IterationDiffBuilder, ModuleDiff, TextDiff,
};
pub use hitl::{
AsyncHumanReviewer, AutoAcceptReviewer, CallbackReviewer, HITLConfig, HumanReviewer,
RecordingReviewer, ReviewContext, ReviewDecision, ReviewTrigger, TerminalReviewer,
ThresholdReviewer,
};
pub use declarative::{JinjaFormatter, JinjaTemplate, JinjaValue};
pub use buffer::{Buffer, BufferView};
pub use intern::{resolve, sym, Sym};
pub use str_view::StrView;
pub use types::{FieldMap, Inputs};
pub mod prelude {
pub use crate::recursive::prelude::*;
pub use crate::{Error, OptimizationDetails, Result};
pub use crate::{resolve, sym, Buffer, BufferView, StrView, Sym};
pub use crate::{
Example, Field, FieldMap, InputField, Inputs, Module, OutputField, Predict, Prediction,
Signature, SignatureBuilder,
};
pub use crate::{TypedSignature, ValueKind};
pub use crate::{ExactMatch, Metric};
pub use crate::CompiledProgram;
pub use crate::{ComposableModule, ModuleState};
pub use crate::{Critic, NoCritic};
pub use crate::{Saveable, SaveableExt, StateMap};
pub use crate::{
BootstrapFewShot, ExampleSet, Optimizer, OptimizerConfig, COPRO, MIPRO, SIMBA,
};
pub use crate::{Adapter, ChatAdapter, JSONAdapter, XMLAdapter};
pub use crate::{Assertion, AssertionLevel, AssertionRunner};
pub use crate::{BatchRunner, BufferPool, ExecutorConfig, HybridExecutor};
pub use crate::DiffStyle;
pub use crate::{HITLConfig, ReviewDecision};
pub use crate::RecallPrecisionMode;
pub use crate::{predict_with_lm, LMClient};
}
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[allow(clippy::const_is_empty)]
fn test_version() {
assert!(!VERSION.is_empty());
}
}