Production infrastructure for AI agents
Website · Documentation · Guides · Core · Template · Discord
systemprompt-models
Every request through the AI infrastructure you own crosses a shape defined here. This crate holds the DTOs, on-disk configuration, protocol types (A2A, AG-UI, MCP), and the typed error enums every public function in the workspace returns. One vocabulary, defined once, imported by every layer above it.
The shared layer sits at the bottom of the workspace and depends on no other systemprompt layer. infra, domain, app, and entry all consume it. Part of the systemprompt-core workspace.
Installation
[]
= "0.21"
Module Map
| Module | Purpose |
|---|---|
a2a |
A2A protocol: agent card, message, task, transport, security scheme types. |
admin |
Admin dashboard DTOs (analytics, traffic, log entries, user metrics). |
agui |
AG-UI streaming event protocol (events, payloads, builders). |
ai |
LLM request/response shapes, AiProvider trait, streaming chunks, tool execution. |
api |
Public HTTP envelopes, pagination, error model, cloud API DTOs. |
artifacts |
Typed tool-result artifacts (chart, table, image, cli, …) and conversion. |
auth |
Authenticated user, base roles, JWT audience, PKCE, grant types. |
bridge |
Cowork desktop bridge manifest types. |
config |
Global Config singleton assembled from profile + secrets. |
content, content_config |
Published content metadata and on-disk content routing. |
env |
Environment-variable reading and ${VAR} / ${VAR:-default} interpolation. |
errors |
thiserror-derived RepositoryError, ServiceError, and the per-concern parse, secrets, validation, provider, metadata, and row enums. |
events |
Analytics, A2A, context, and system event envelopes. |
execution |
RequestContext, ExecutionStep, planned-tool bookkeeping. |
extension |
Extension manifest and discovery types. |
gateway_hash |
Stable hashing helpers for gateway-derived identifiers. |
macros |
Crate-internal repository helper macros. |
mcp |
MCP server/registry config, deployment, auth state, provider traits. |
modules |
API path constants, CLI paths, service category resolution. |
net |
Network-layer value objects (ports, hosts). |
oauth |
OAuth client and server configuration shapes. |
paths |
Well-known directory layout helpers (AppPaths, StoragePaths, …). |
profile |
On-disk profile, security, server, cloud, database, paths configuration. |
repository |
ServiceLifecycle trait, ServiceRecord, WhereClause query builder. |
routing |
Request routing classification (RouteClassifier, ApiCategory). |
schema |
JSON-Schema capability matrices and sanitisation for the wire codecs. |
secrets |
Secrets document model and parsing. |
services |
Services manifest: agents, plugins, hooks, MCP, skills, scheduler, marketplace. |
subprocess |
Environment-marker contract between the supervisor and its detached children. |
text, time_format |
Small text and timestamp formatting helpers. |
users |
Public user and session summaries. |
validators |
Startup configuration validation passes. |
wire |
Canonical AI wire types and per-protocol codecs shared by gateway and providers. |
Error Model
Three thiserror enums layered from database to HTTP:
RepositoryError → ServiceError → ApiError → HTTP Response
use ;
let repo_err = NotFound;
let svc_err: ServiceError = repo_err.into;
let api_err: ApiError = svc_err.into;
anyhow::Error is never used in a public signature in this crate.
Request Context
use RequestContext;
use ;
let ctx = new;
Repository Helpers
use WhereClause;
let = default
.eq
.not_null
.build;
ServiceLifecycle provides the common get_running_services / mark_crashed / update_status surface implemented by repositories that supervise long-running processes.
Feature Flags
| Feature | Default | Description |
|---|---|---|
web |
off | axum::IntoResponse impls for the API envelopes. |
sqlx |
off | sqlx::Type derives for DB-persisted enums. |
Dependencies
serde,serde_json,serde_yaml: serializationthiserror,async-trait: error enums and async traitschrono,uuid,indexmap: common typesschemars,regex: schema generation and pattern validationzeroize: wipe credential material on drophttp,url,bytes,futures,futures-util: HTTP types, SSRF URL validation, and wire/stream codecstracing: structured loggingrmcp: MCP protocol typessqlx: optional, with thesqlxfeatureaxum: optional, with thewebfeaturesystemprompt-traits,systemprompt-identifiers,systemprompt-extension,systemprompt-provider-contracts: shared layer siblings
License
BSL-1.1 (Business Source License). Source-available for evaluation, testing, and non-production use. Production use requires a commercial license. Each version converts to Apache 2.0 four years after publication. See LICENSE.
systemprompt.io · Documentation · Guides · Template · crates.io · docs.rs · Discord
Shared layer · Own how your organization uses AI.