Files
windmill/backend/windmill-ai/Cargo.toml
d3ddef0b7e feat: retry transient AI provider failures before output reaches readers (#11623)
* feat: retry transient AI provider failures before output reaches readers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: keep completed AI streams, stop retrying prompt blocks, bound retry-after

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: share the AI send-error retry rule between agent and proxy

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: accept a clean end of stream from OpenAI-compatible providers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: classify AI provider errors the way the reference clients do

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: count a Gemini function call as the end of its turn

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: count an Anthropic stop_reason as the end of its stream

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: accept a Gemini answer that reports usage and no output

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: accept a Gemini stream that closes cleanly with no output

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-10-09 20:00:50 +02:00

49 lines
1.4 KiB
TOML

[package]
name = "windmill-ai"
version.workspace = true
authors.workspace = true
edition.workspace = true
[features]
default = []
bedrock = ["dep:aws-sdk-bedrock", "dep:aws-sdk-bedrockruntime", "dep:aws-credential-types", "dep:aws-smithy-types", "dep:aws-config", "windmill-common/aws_auth"]
mcp = ["dep:windmill-mcp"]
[lib]
name = "windmill_ai"
path = "src/lib.rs"
[dependencies]
windmill-common = { workspace = true, default-features = false }
windmill-types.workspace = true
windmill-parser.workspace = true
windmill-mcp = { workspace = true, optional = true }
async-trait.workspace = true
async-stream.workspace = true
base64.workspace = true
bytes.workspace = true
indexmap.workspace = true
eventsource-stream.workspace = true
futures.workspace = true
http.workspace = true
mime_guess.workspace = true
rand.workspace = true
reqwest.workspace = true
serde.workspace = true
serde_json.workspace = true
sqlx = { workspace = true, features = ["postgres"] }
uuid.workspace = true
lazy_static.workspace = true
tracing.workspace = true
tokio.workspace = true
tokio-stream.workspace = true
ulid.workspace = true
# Bedrock (optional)
aws-config = { workspace = true, optional = true }
aws-credential-types = { workspace = true, optional = true }
aws-smithy-types = { workspace = true, optional = true }
aws-sdk-bedrock = { workspace = true, optional = true }
aws-sdk-bedrockruntime = { workspace = true, optional = true }