From 07c0a1184519764dbccc79b5d3ac5e8356bc64fd Mon Sep 17 00:00:00 2001 From: Marc Riegel Date: Tue, 16 Dec 2025 13:59:04 +0100 Subject: [PATCH 1/2] Add new error variant and derive Debug on enums and structs --- crates/artificial-core/src/error.rs | 3 +++ crates/artificial-core/src/generic.rs | 1 + crates/artificial-core/src/provider/chat_complete.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/crates/artificial-core/src/error.rs b/crates/artificial-core/src/error.rs index 603a6be..798b143 100644 --- a/crates/artificial-core/src/error.rs +++ b/crates/artificial-core/src/error.rs @@ -39,4 +39,7 @@ pub enum ArtificialError { #[error("invalid: {0}")] Invalid(String), + + #[error("other: {0}")] + Other(String), } diff --git a/crates/artificial-core/src/generic.rs b/crates/artificial-core/src/generic.rs index bc071f8..fa7c773 100644 --- a/crates/artificial-core/src/generic.rs +++ b/crates/artificial-core/src/generic.rs @@ -133,6 +133,7 @@ pub struct GenericFunctionCall { pub arguments: serde_json::Value, } +#[derive(Debug, Clone, Copy)] pub enum GenericStramingChatChunk { Created, Completed, diff --git a/crates/artificial-core/src/provider/chat_complete.rs b/crates/artificial-core/src/provider/chat_complete.rs index 23fb605..41fcdfd 100644 --- a/crates/artificial-core/src/provider/chat_complete.rs +++ b/crates/artificial-core/src/provider/chat_complete.rs @@ -52,6 +52,7 @@ pub trait StreamingChatProvider: ChatCompletionProvider { M: Into + Send + Sync + 'p; } +#[derive(Debug, Clone)] pub struct ChatCompleteParameters { pub messages: Vec, pub model: Model, From 5cc929e1b55577114c6e1c557a1c702b230d7043 Mon Sep 17 00:00:00 2001 From: Marc Riegel Date: Tue, 16 Dec 2025 13:59:32 +0100 Subject: [PATCH 2/2] bump v0.4.0 --- crates/artificial-core/Cargo.toml | 2 +- crates/artificial-openai/Cargo.toml | 4 ++-- crates/artificial-prompt/Cargo.toml | 4 ++-- crates/artificial-types/Cargo.toml | 6 +++--- crates/artificial/Cargo.toml | 10 +++++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/crates/artificial-core/Cargo.toml b/crates/artificial-core/Cargo.toml index 92c6d60..d7a27b1 100644 --- a/crates/artificial-core/Cargo.toml +++ b/crates/artificial-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "artificial-core" -version = "0.3.0" +version = "0.4.0" edition = "2021" description = "Provider-agnostic core traits, generic client and error types for the Artificial prompt-engineering SDK" license = "MIT" diff --git a/crates/artificial-openai/Cargo.toml b/crates/artificial-openai/Cargo.toml index 91c2345..a3a1c43 100644 --- a/crates/artificial-openai/Cargo.toml +++ b/crates/artificial-openai/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "artificial-openai" -version = "0.3.0" +version = "0.4.0" edition = "2024" description = "OpenAI backend adapter for the Artificial prompt-engineering SDK" license = "MIT" @@ -24,7 +24,7 @@ reqwest = { version = "0.12", default-features = false, features = [ "deflate", "multipart", ] } -artificial-core = { path = "../artificial-core" , version = "0.3.0"} +artificial-core = { path = "../artificial-core" , version = "0.4.0"} futures-util = "0.3" async-stream = "0.3" bytes = "1" diff --git a/crates/artificial-prompt/Cargo.toml b/crates/artificial-prompt/Cargo.toml index 29db92c..615211b 100644 --- a/crates/artificial-prompt/Cargo.toml +++ b/crates/artificial-prompt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "artificial-prompt" -version = "0.3.0" +version = "0.4.0" edition = "2024" description = "Fluent builders and helpers for composing markdown prompt fragments" license = "MIT" @@ -9,4 +9,4 @@ categories = ["development-tools", "text-processing"] keywords = ["ai", "prompt", "markdown", "builder"] [dependencies] -artificial-core = { path = "../artificial-core" , version = "0.3.0"} +artificial-core = { path = "../artificial-core" , version = "0.4.0"} diff --git a/crates/artificial-types/Cargo.toml b/crates/artificial-types/Cargo.toml index f782850..da6935d 100644 --- a/crates/artificial-types/Cargo.toml +++ b/crates/artificial-types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "artificial-types" -version = "0.3.0" +version = "0.4.0" edition = "2024" description = "Reusable prompt fragments and helper types for the Artificial prompt-engineering SDK" license = "MIT" @@ -9,8 +9,8 @@ categories = ["development-tools", "text-processing"] keywords = ["ai", "prompt-fragments", "json-schema", "sdk"] [dependencies] -artificial-core = { path = "../artificial-core" , version = "0.3.0"} -artificial-prompt = { path = "../artificial-prompt" , version = "0.3.0"} +artificial-core = { path = "../artificial-core" , version = "0.4.0"} +artificial-prompt = { path = "../artificial-prompt" , version = "0.4.0"} chrono = "0.4.41" schemars.workspace = true diff --git a/crates/artificial/Cargo.toml b/crates/artificial/Cargo.toml index e9eef53..f263181 100644 --- a/crates/artificial/Cargo.toml +++ b/crates/artificial/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "artificial" -version = "0.3.0" +version = "0.4.0" edition = "2024" description = "Typed, provider-agnostic prompt-engineering SDK for Rust" authors = ["Marc Riegel "] @@ -15,10 +15,10 @@ default = ["openai"] openai = ["dep:artificial-openai"] [dependencies] -artificial-types = { path = "../artificial-types", version = "0.3.0" } -artificial-openai = { path = "../artificial-openai", optional = true, version = "0.3.0" } -artificial-core = { path = "../artificial-core", version = "0.3.0" } -artificial-prompt = { path = "../artificial-prompt", version = "0.3.0" } +artificial-types = { path = "../artificial-types", version = "0.4.0" } +artificial-openai = { path = "../artificial-openai", optional = true, version = "0.4.0" } +artificial-core = { path = "../artificial-core", version = "0.4.0" } +artificial-prompt = { path = "../artificial-prompt", version = "0.4.0" } [dev-dependencies] tokio = { version = "1", features = ["full"] }