Skip to main content

atomr_agents_parser/
lib.rs

1//! Output parsers + auto-repair + streaming partial-JSON.
2//!
3//! `Parser<T>` is the single trait. Stock impls cover JSON,
4//! schema-validated objects, enum, comma-separated list, XML, and
5//! YAML. Two repair wrappers — `OutputFixingParser` and
6//! `RetryWithErrorParser` — re-invoke a model when the inner parse
7//! fails. `StreamingPartialJsonParser` emits partial JSON values as
8//! tokens arrive.
9
10mod auto_repair;
11mod basic;
12mod streaming;
13
14pub use auto_repair::{OutputFixingParser, RepairModel, RetryWithErrorParser};
15pub use basic::{
16    CommaListParser, EnumParser, JsonParser, JsonSchemaParser, SchemaParser, XmlParser, YamlParser,
17};
18pub use streaming::StreamingPartialJsonParser;
19
20use async_trait::async_trait;
21use atomr_agents_core::Result;
22
23#[async_trait]
24pub trait Parser<T>: Send + Sync + 'static {
25    async fn parse(&self, raw: &str) -> Result<T>;
26    fn format_instructions(&self) -> String;
27}