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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
//! Synaptic — A Rust agent framework with LangChain-compatible architecture.
//!
//! This crate re-exports all Synaptic sub-crates for convenient single-import usage.
//! Enable features to control which modules are available.
//!
//! # Feature Flags
//!
//! | Feature | Description |
//! |---------|-------------|
//! | `default` | `runnables`, `prompts`, `parsers`, `tools`, `callbacks` |
//! | `model-utils` | `ProviderBackend`, `ScriptedChatModel`, wrappers (Retry, RateLimit, etc.) |
//! | `openai` | OpenAI ChatModel + Embeddings |
//! | `anthropic` | Anthropic ChatModel |
//! | `gemini` | Gemini ChatModel |
//! | `ollama` | Ollama ChatModel + Embeddings |
//! | `models` | All providers: openai + anthropic + gemini + ollama + bedrock + cohere |
//! | `agent` | Agent capabilities (graph, memory, middleware, store, etc.) — no provider included |
//! | `rag` | RAG pipeline (embeddings, retrieval, loaders, etc.) — no provider included |
//! | `agent-openai` | `agent` + openai provider |
//! | `agent-anthropic` | `agent` + anthropic provider |
//! | `rag-openai` | `rag` + openai provider |
//! | `deep` | `agent` + deep agent harness (no implicit provider) |
//! | `deep-config` | `deep` + config + openai (config-builder requires openai) |
//! | `full` | All features enabled |
//!
//! # Quick Start
//!
//! ```rust,ignore
//! use synaptic::core::{ChatModel, Message, ChatRequest, ToolChoice};
//! use synaptic::openai::OpenAiChatModel;
//! use synaptic::runnables::{Runnable, RunnableLambda, RunnableAssign, RunnablePick};
//! ```
// Re-export internal crates under their original names so proc-macro generated code
// (which references `::synaptic::synaptic_core`, etc. via `proc-macro-crate` detection)
// can resolve correctly when downstream crates only depend on the `synaptic` facade.
pub extern crate synaptic_core;
pub extern crate synaptic_middleware;
pub extern crate synaptic_runnables;
/// Core traits and types: ChatModel, Message, ToolChoice, SynapticError, RunnableConfig, etc.
/// Always available.
pub use synaptic_core as core;
/// ProviderBackend abstraction, ScriptedChatModel, and ChatModel wrappers
/// (Retry, RateLimit, TokenBucket, StructuredOutput, BoundTools).
pub use synaptic_models as models;
/// OpenAI ChatModel and Embeddings.
pub use synaptic_openai as openai;
/// Anthropic ChatModel.
pub use synaptic_anthropic as anthropic;
/// Google Gemini ChatModel.
pub use synaptic_gemini as gemini;
/// Ollama ChatModel and Embeddings.
pub use synaptic_ollama as ollama;
/// LCEL composition: Runnable trait (with stream), BoxRunnable (with bind), pipe operator,
/// Lambda, Parallel, Branch, Assign, Pick, Fallbacks, etc.
pub use synaptic_runnables as runnables;
/// Prompt templates: ChatPromptTemplate, FewShotChatMessagePromptTemplate.
pub use synaptic_prompts as prompts;
/// Output parsers: Str, Json, Structured, List, Enum.
pub use synaptic_parsers as parsers;
/// Tool registry and execution.
pub use synaptic_tools as tools;
/// Memory strategies: Buffer, Window, Summary, SummaryBuffer, TokenBuffer, RunnableWithMessageHistory.
pub use synaptic_memory as memory;
/// Callback handlers: Recording, Tracing, Composite.
pub use synaptic_callbacks as callbacks;
/// Retrieval: Retriever trait, BM25, MultiQuery, Ensemble, Compression, SelfQuery, ParentDocument, Document.
pub use synaptic_retrieval as retrieval;
/// Document loaders: Text, JSON, CSV, Directory.
pub use synaptic_loaders as loaders;
/// Text splitters: Character, Recursive, Markdown, Token.
pub use synaptic_splitters as splitters;
/// Embeddings: trait, Fake, CacheBacked.
pub use synaptic_embeddings as embeddings;
/// Vector stores: InMemory, VectorStoreRetriever.
pub use synaptic_vectorstores as vectorstores;
/// Graph agent orchestration: StateGraph, CompiledGraph (with stream), GraphEvent, StreamMode, checkpointing.
pub use synaptic_graph as graph;
/// Middleware system: AgentMiddleware trait, lifecycle hooks, built-in middlewares.
pub use synaptic_middleware as middleware;
/// Key-value storage: Store trait, InMemoryStore.
pub use synaptic_store as store;
/// LLM caching: InMemory, Semantic, CachedChatModel.
pub use synaptic_cache as cache;
/// Evaluation: Evaluator trait, evaluators, Dataset.
pub use synaptic_eval as eval;
/// MCP (Model Context Protocol) adapters for external tool servers.
pub use synaptic_mcp as mcp;
/// Procedural macros for ergonomic tool, chain, and middleware definitions.
pub use synaptic_macros as macros;
/// Re-export proc macros at crate root for ergonomic use:
/// `use synaptic::tool;` instead of `use synaptic::macros::tool;`
pub use *;
/// Deep agent harness: filesystem, subagents, skills, memory, auto-summarization.
pub use synaptic_deep as deep;
/// Context condensation strategies: Rolling, LLM summarizing, token budget, pipeline.
pub use synaptic_condenser as condenser;
/// Secret management: SecretRegistry, SecretMaskingMiddleware.
pub use synaptic_secrets as secrets;
/// TOML configuration: SynapticAgentConfig, ModelConfig, McpServerConfig.
pub use synaptic_config as config;
/// Session lifecycle: SessionManager, SessionInfo.
pub use synaptic_session as session;
/// Qdrant vector store integration.
pub use synaptic_qdrant as qdrant;
/// PostgreSQL integration.
pub use synaptic_postgres as postgres;
/// Redis store and cache integration.
pub use synaptic_redis as redis;
/// PDF document loader.
pub use synaptic_pdf as pdf;
/// AWS Bedrock ChatModel.
pub use synaptic_bedrock as bedrock;
/// Cohere Reranker.
pub use synaptic_cohere as cohere;
/// Pinecone vector store.
pub use synaptic_pinecone as pinecone;
/// Chroma vector store.
pub use synaptic_chroma as chroma;
/// MongoDB Atlas vector search.
pub use synaptic_mongodb as mongodb;
/// Elasticsearch vector store.
pub use synaptic_elasticsearch as elasticsearch;
/// SQLite integration.
pub use synaptic_sqlite as sqlite;
/// Tavily search tool.
pub use synaptic_tavily as tavily;
/// HuggingFace Inference API Embeddings.
pub use synaptic_huggingface as huggingface;
/// Voyage AI embeddings (voyage-3-large, voyage-code-3, etc.).
pub use synaptic_voyage as voyage;
/// Nomic AI embeddings (nomic-embed-text-v1.5, open weights).
pub use synaptic_nomic as nomic;
/// Jina AI embeddings and reranker.
pub use synaptic_jina as jina;
/// Weaviate vector database integration.
pub use synaptic_weaviate as weaviate;
/// SQL database toolkit: ListTables, DescribeTable, ExecuteQuery (read-only).
pub use synaptic_sqltoolkit as sqltoolkit;
/// E2B cloud code execution sandbox.
pub use synaptic_e2b as e2b;
/// Milvus vector store.
pub use synaptic_milvus as milvus;
/// OpenSearch vector store.
pub use synaptic_opensearch as opensearch;
/// LanceDB embedded vector store.
pub use synaptic_lancedb as lancedb;
/// Confluence wiki page loader.
pub use synaptic_confluence as confluence;
/// Slack channel message loader.
pub use synaptic_slack as slack;
/// Fast local cross-encoder reranker (BM25-based, zero external dependencies).
pub use synaptic_flashrank as flashrank;
/// Langfuse observability integration: LangfuseCallback, LangfuseConfig.
pub use synaptic_langfuse as langfuse;
/// Feishu/Lark integration: LarkConfig, LarkDocLoader, LarkMessageTool, LarkBitableTool.
pub use synaptic_lark as lark;
/// Voice TTS/STT providers: TtsProvider, SttProvider, OpenAiVoice.
pub use synaptic_voice as voice;
/// Browser automation tools: NavigateTool, ScreenshotTool, EvalJsTool.
pub use synaptic_browser as browser;
/// Job scheduling: cron + interval tasks, TokioScheduler.
pub use synaptic_scheduler as scheduler;
/// Container sandbox: Docker and Apple Container backends for secure code execution.
pub use synaptic_sandbox as sandbox;
/// Prometheus metrics exporter: render and serve /metrics endpoint.
pub use synaptic_metrics as metrics;