Skip to main content

Crate reasoninglayer

Crate reasoninglayer 

Source
Expand description

Rust client SDK for the Reasoning Layer API.

The SDK is a direct port of the TypeScript SDK (@kortexya/reasoninglayer) — it speaks the same HTTP contract, sends the same auth headers, follows the same retry / backoff rules, and exposes the same resource surface. Method naming follows Rust conventions (snake_case), with ReasoningLayerClient as the single entry point.

§Quick start

use reasoninglayer::{psi, var, guard, constrained, GuardOp,
    ClientConfig, ReasoningLayerClient, CreateSortRequest,
    AddRuleRequest, BackwardChainRequest};

let client = ReasoningLayerClient::new(
    ClientConfig::new("http://localhost:8083", "00000000-0000-0000-0000-000000000001"),
)?;

let person = client.sorts().create_sort(CreateSortRequest::with_name("person"), None).await?;
client.inference().add_rule(
    AddRuleRequest {
        term: psi("well_paid", [("person", var("?X"))]),
        antecedents: vec![psi("employee", [
            ("name", var("?X")),
            ("salary", constrained("?S", guard(GuardOp::Gt, 80_000_i64))),
        ])],
        certainty: None,
    },
    None,
).await?;

§Resources

Every resource client is accessible via an accessor on ReasoningLayerClient:

§Coverage phases

  • Phase 1 (this crate, stable): sorts, terms, inference, query with fully typed DTOs, builders, retry / timeout / auth / error mapping.
  • Phase 2 (this crate, typed where obvious, serde_json::Value otherwise): every other resource has an HTTP client exposed at the right path with the right verb. The wire contract is identical to the TypeScript SDK. Typed DTOs for the Phase 2 resources are landing in patch releases — subscribe to the repo for the upgrade path. Users can always deserialize the returned Value into their own types.
  • WebSocket + SSE: exposed via ws::WebSocketConnection and sse::stream.

Re-exports§

pub use types::common::ApiResponse;
pub use types::common::RateLimitInfo;
pub use types::common::RequestOptions;
pub use builders::constrained;
pub use builders::guard;
pub use builders::psi;
pub use builders::psi_by_id;
pub use builders::term_ref;
pub use builders::var;
pub use builders::FuzzyShape;
pub use builders::GuardRhs;
pub use builders::Value;
pub use types::homoiconic::FeatureInputValueDto;
pub use types::homoiconic::FeatureValueDto;
pub use types::homoiconic::PsiTermDto;
pub use types::homoiconic::TermInputDto;
pub use types::inference::AddFactRequest;
pub use types::inference::AddFactResponse;
pub use types::inference::AddRuleRequest;
pub use types::inference::AddRuleResponse;
pub use types::inference::BackwardChainRequest;
pub use types::inference::BackwardChainResponse;
pub use types::inference::BayesianEffectDto;
pub use types::inference::BayesianPredictRequest;
pub use types::inference::BayesianPredictResponse;
pub use types::inference::BulkAddFactsRequest;
pub use types::inference::BulkAddFactsResponse;
pub use types::inference::BulkAddRulesRequest;
pub use types::inference::BulkAddRulesResponse;
pub use types::inference::ClearFactsResponse;
pub use types::inference::CreateGoalRequest;
pub use types::inference::CreateGoalResponse;
pub use types::inference::DeleteGoalResponse;
pub use types::inference::ForwardChainRequest;
pub use types::inference::ForwardChainResponse;
pub use types::inference::FuzzyProveRequest;
pub use types::inference::FuzzyProveResponse;
pub use types::inference::GetFactsResponse;
pub use types::inference::GuardOp;
pub use types::inference::ListGoalsResponse;
pub use types::inference::MetaSortsResponse;
pub use types::inference::NafProveRequest;
pub use types::inference::NafProveResponse;
pub use types::inference::SolutionDto;
pub use types::query::FindBySortRequest;
pub use types::query::NlQueryMode;
pub use types::query::NlQueryRequest;
pub use types::query::NlQueryResponse;
pub use types::query::OsfSearchRequest;
pub use types::query::OsfSearchResponse;
pub use types::query::TermListResponse;
pub use types::query::TermPatternDto;
pub use types::query::UnifiableQueryRequest;
pub use types::query::ValidateTermRequest;
pub use types::query::ValidatedUnifyRequest;
pub use types::sorts::BulkCreateSortsRequest;
pub use types::sorts::BulkCreateSortsResponse;
pub use types::sorts::CreateSortRequest;
pub use types::sorts::DecodeGlbResponse;
pub use types::sorts::FeatureDescriptorDto;
pub use types::sorts::GlbRequest;
pub use types::sorts::GlbResponse;
pub use types::sorts::LubRequest;
pub use types::sorts::LubResponse;
pub use types::sorts::SortDto;
pub use types::sorts::SortInfoDto;
pub use types::sorts::SortListResponse;
pub use types::sorts::UpdateReviewStatusRequest;
pub use types::terms::BulkAddTermsRequest;
pub use types::terms::BulkAddTermsResponse;
pub use types::terms::ClearTermsResponse;
pub use types::terms::CreateTermRequest;
pub use types::terms::TermDto;
pub use types::terms::TermResponse;
pub use types::terms::TermState;
pub use types::terms::UpdateTermRequest;
pub use types::terms::ValidatedTermResponse;
pub use types::terms::ValidatedUnifyResponse;
pub use types::values::FuzzyShapeDto;
pub use types::values::ValueDto;

Modules§

builders
Builders for constructing SDK requests.
sse
Server-Sent Events (SSE) streaming.
types
Data transfer objects for the Reasoning Layer API.
ws
WebSocket support with automatic reconnection.

Structs§

ActionReviewsClient
AdminClient
AnalysisClient
ApiError
An HTTP error returned by the backend.
CausalClient
CdlClient
ClientConfig
Configuration for a ReasoningLayerClient.
CognitiveClient
CollectionsClient
CommunitiesClient
ConstraintViolationDetails
Structured details for a 409 constraint violation.
ConstraintsClient
ContextClient
ControlClient
ConversationClient
DiscoveryClient
ExecutionClient
ExtractClient
FunctionsClient
FuzzyClient
GenerationClient
HealthClient
IlpClient
ImageExtractionClient
InferenceClient
Resource client for inference operations.
IngestionClient
NamespacesClient
NeuroSymbolicClient
OntologyClient
OptimizeClient
Optimization client — thin facade for LP solving via the inference engine.
OsfqlClient
OversightClient
PreferencesClient
ProofEngineClient
QueryClient
Resource client for query operations.
RagClient
RateLimitDetails
Rate limit info attached to a 429 response.
ReasoningClient
ReasoningLayerClient
Main entry point for the Reasoning Layer API.
ResearchClient
ReviewsClient
RlTrainingClient
RowClient
ScenariosClient
SortsClient
Resource client for sort operations. Returned by ReasoningLayerClient::sorts.
SourcesClient
SpacesClient
StatisticalClient
SyntheticClient
TermsClient
Resource client for term CRUD operations.
UiClient
UtilitiesClient
VisualizationClient
WebhookActionsClient

Enums§

ApiErrorKind
Categorises an ApiError by HTTP status code, matching the TypeScript SDK error hierarchy.
Error
Top-level SDK error type. All public fallible APIs return Result<T, Error>.

Constants§

SDK_LANGUAGE
Language identifier — sent as X-SDK-Language on every request.
SDK_VERSION
SDK version — sent as X-SDK-Version on every request.