-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCargo.toml
More file actions
96 lines (85 loc) · 3.88 KB
/
Copy pathCargo.toml
File metadata and controls
96 lines (85 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[package]
name = "tinyagents"
version = "2.0.0"
edition = "2024"
license = "GPL-3.0-only"
description = "A recursive language-model (RLM) harness for Rust."
repository = "https://github.com/tinyhumansai/tinyagents"
readme = "README.md"
keywords = ["llm", "agents", "graph", "langchain", "langgraph"]
categories = ["asynchronous", "api-bindings"]
[dependencies]
async-trait = "0.1"
# Cheap, reference-counted byte buffers. Used only on the *internal* SSE
# byte-stream seam (`harness::providers::openai::sse::SseState`) so each
# network chunk from `reqwest::Response::bytes_stream` is forwarded without a
# per-chunk `Vec<u8>` copy. Already in the dependency tree via `reqwest`;
# `bytes` never appears in the public API.
bytes = "1"
# Runtime-agnostic future combinators (`join_all` for concurrent supersteps) and
# the `Stream`/`StreamExt` traits backing the real streaming pipeline
# (`harness::model::ModelStream`).
futures = "0.3"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.11"
thiserror = "2"
tracing = "0.1"
# Async runtime primitives used by the streaming pipeline, plus task spawning
# for `DurabilityMode::Async` background checkpoint writes, `spawn_blocking`
# file I/O, and `block_in_place` JSONL task-store writes (which requires the
# multi-threaded runtime feature).
tokio = { version = "1", default-features = false, features = ["sync", "time", "macros", "rt", "rt-multi-thread"] }
# HTTP client used by hosted providers and the embedded Langfuse exporter. The
# `stream` feature enables `Response::bytes_stream` for Server-Sent-Events
# streaming.
reqwest = { version = "0.12", default-features = false, features = [
"json",
"rustls-tls",
"stream",
] }
# Optional embedded SQLite checkpointer backend (`graph::checkpoint::sqlite`).
# `bundled` compiles SQLite from vendored C source so no system library is
# required; the dependency is pulled in only by the `sqlite` feature.
rusqlite = { version = "0.40", features = ["bundled"], optional = true }
# Optional embedded Rhai scripting engine powering the `.ragsh` REPL session
# runtime (`repl::session`). The `sync` feature makes the engine and its values
# `Send + Sync` so a session can live inside an async graph node. Pulled in only
# by the `repl` feature to keep the default build light.
rhai = { version = "1", features = ["sync"], optional = true }
# Optional builtin tool family for deterministic time/date helpers.
chrono = "0.4"
chrono-tz = { version = "0.10", optional = true }
[features]
default = []
# Embedded SQLite-backed checkpointer (`graph::checkpoint::SqliteCheckpointer`).
sqlite = ["dep:rusqlite"]
# Embedded Rhai-backed `.ragsh` REPL session runtime (`repl::session`).
repl = ["dep:rhai"]
# Recursive-language-model runtime (`rlm`): a driver model writes code cells
# executed in a sandboxed interpreter (embedded Rhai, or an external Python /
# JavaScript process) whose only host surface is capability calls back into
# the registry (`llm`, `tool`, `agent`). `tokio/process` + `tokio/io-util`
# drive the external interpreter subprocesses.
rlm = ["dep:rhai", "tokio/process", "tokio/io-util"]
# Builtin generic tools (`harness::tools`) kept out of the default dependency
# graph so host applications can choose whether they want these implementations.
tools = ["dep:chrono-tz"]
[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "test-util"] }
# `.env` loading for the runnable examples.
dotenvy = "0.15"
# Stream combinators (`StreamExt::next`) for integration tests that drive a
# `ModelStream` directly.
futures = "0.3"
# --- OpenAI-backed examples ---
# The OpenAI provider is always compiled, so these build with a plain
# `cargo build --examples`; they only need a network call + `OPENAI_API_KEY`
# at run time.
# --- RLM examples (need the `rlm` feature) ---
[[example]]
name = "rlm_rhai"
required-features = ["rlm"]
[[example]]
name = "rlm_python"
required-features = ["rlm"]