Skip to main content

manifold/
lib.rs

1// Copyright 2024-2026 Reflective Labs
2// SPDX-License-Identifier: MIT
3
4//! Generic adapter implementations for Converge contracts.
5//!
6//! Manifold owns interchangeable operational adapters. It imports Converge
7//! contracts and external SDKs; Converge does not import Manifold.
8
9#[cfg(feature = "brave")]
10pub mod brave;
11#[cfg(any(
12    feature = "brave",
13    feature = "tavily",
14    feature = "fetch",
15    feature = "feed"
16))]
17mod capability_registry;
18pub mod contract;
19#[cfg(feature = "qwen")]
20pub mod embedding;
21pub mod experience;
22#[cfg(feature = "extract")]
23pub mod extract;
24#[cfg(feature = "feed")]
25pub mod feed;
26#[cfg(feature = "fetch")]
27pub mod fetch;
28pub mod llm;
29pub mod object_storage;
30#[cfg(feature = "registry")]
31pub mod registry_loader;
32#[cfg(feature = "qwen")]
33pub mod reranker;
34#[cfg(any(
35    feature = "brave",
36    feature = "tavily",
37    feature = "fetch",
38    feature = "feed"
39))]
40pub mod search;
41pub mod secret;
42#[cfg(feature = "tavily")]
43pub mod tavily;
44#[cfg(feature = "tools")]
45pub mod tools;
46pub mod vector;
47
48pub mod model_selection;
49
50#[cfg(feature = "brave")]
51pub use brave::{
52    BraveCapability, BraveSearchError, BraveSearchProvider, BraveSearchRequest,
53    BraveSearchResponse, BraveSearchResult,
54};
55#[cfg(any(
56    feature = "brave",
57    feature = "tavily",
58    feature = "fetch",
59    feature = "feed"
60))]
61pub use capability_registry::{
62    CapabilityRegistry, CapabilityRequirements, SearchProviderFeature, SearchProviderFeatures,
63    SearchProviderMeta, WebSearchRequirements,
64};
65pub use contract::{
66    CallTimer, Capability, ProviderCallContext, ProviderMeta, ProviderObservation, Region,
67    TokenUsage, canonical_hash,
68};
69pub use converge_storage::{
70    GetResult, ObjectPath, ObjectStore, PutResult, StorageConfig, StorageError, StorageUri,
71};
72#[cfg(feature = "extract")]
73pub use extract::{ExtractError, ExtractedNode, HtmlExtractBackend, ScraperHtmlBackend};
74#[cfg(feature = "feed")]
75pub use feed::{
76    FeedByteLimit, FeedCandidateLimit, FeedDiscoverySource, FeedEndpointCandidate, FeedError,
77    FeedFetchBackend, FeedFetchRequest, FeedFetchResponse, FeedFormat, FeedItem, FeedProbeRequest,
78    FeedProbeResponse, FeedTimeoutMs, FeedUrl, HttpFeedProvider, HttpStatusCode,
79};
80#[cfg(feature = "fetch")]
81pub use fetch::HttpFetchProvider;
82pub use llm::*;
83#[cfg(any(
84    feature = "brave",
85    feature = "tavily",
86    feature = "fetch",
87    feature = "feed"
88))]
89pub use search::{
90    SearchDepth, SearchResponsePart, SearchResponseParts, SearchTopic, WebFetchBackend,
91    WebFetchByteLimit, WebFetchError, WebFetchRequest, WebFetchResponse, WebFetchTimeoutMs,
92    WebFetchUrl, WebSearchBackend, WebSearchError, WebSearchImage, WebSearchRequest,
93    WebSearchResponse, WebSearchResult,
94};
95pub use secret::{EnvSecretProvider, SecretError, SecretProvider, SecretString};
96#[cfg(feature = "tavily")]
97pub use tavily::TavilySearchProvider;
98#[cfg(feature = "tools")]
99pub use tools::{
100    GraphQlConfig, GraphQlConverter, GraphQlOperationType, InlineToolConfig, InputSchema,
101    OpenApiConfig, OpenApiConverter, SourceFilter, ToolCall, ToolDefinition, ToolError,
102    ToolErrorKind, ToolFormat, ToolHandler, ToolRegistry, ToolResult, ToolResultContent,
103    ToolSource, ToolsConfig, ToolsConfigError,
104};