[package]
name = "systemprompt"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "systemprompt.io - Extensible AI agent orchestration framework"
keywords = ["ai", "agents", "mcp", "llm", "orchestration"]
categories = ["api-bindings", "development-tools"]
repository = "https://github.com/systempromptio/systemprompt-core"
homepage = "https://systemprompt.io"
documentation = "https://systemprompt.io/documentation"
readme = "../README.md"

[lints]
workspace = true

[features]
default = ["core"]

# Core functionality - traits, models, extension framework
core = [
    "dep:systemprompt-traits",
    "dep:systemprompt-models",
    "dep:systemprompt-identifiers",
    "dep:systemprompt-extension",
    "dep:systemprompt-template-provider",
]

# Database support
database = ["dep:systemprompt-database", "dep:sqlx"]

# MCP support (uses rmcp-macros from rmcp crate)
mcp = ["dep:rmcp"]

# API server functionality
api = [
    "core",
    "database",
    "dep:systemprompt-api",
    "dep:systemprompt-runtime",
    "dep:axum",
]

# Sync functionality for cloud synchronization
sync = ["dep:systemprompt-sync"]

# Cloud infrastructure (API client, credentials, OAuth)
cloud = ["dep:systemprompt-cloud"]

# Test utilities (credential fixtures, etc.)
test-utils = ["cloud"]

# CLI entry point for product binaries (standalone, use 'full' for everything)
cli = ["dep:systemprompt-cli"]

# Runtime builder for embedding systemprompt as a library
runtime = ["cli", "dep:systemprompt-extension"]

# Full functionality including all domain modules and CLI
full = [
    "api",
    "mcp",
    "sync",
    "cloud",
    "cli",
    "dep:systemprompt-agent",
    "dep:systemprompt-ai",
    "dep:systemprompt-mcp",
    "dep:systemprompt-oauth",
    "dep:systemprompt-users",
    "dep:systemprompt-content",
    "dep:systemprompt-analytics",
    "dep:systemprompt-scheduler",
    "dep:systemprompt-generator",
    "dep:systemprompt-logging",
    "systemprompt-logging/cli",
    "dep:systemprompt-config",
    "dep:systemprompt-files",
    # Infrastructure crates for extension authors
    "dep:systemprompt-loader",
    "dep:systemprompt-events",
    "dep:systemprompt-client",
    "dep:systemprompt-security",
]

[dependencies]
# Core shared crates
systemprompt-traits = { workspace = true, optional = true }
systemprompt-models = { workspace = true, optional = true }
systemprompt-identifiers = { workspace = true, optional = true }
systemprompt-extension = { workspace = true, optional = true }
systemprompt-template-provider = { workspace = true, optional = true }

# Infrastructure
systemprompt-database = { workspace = true, optional = true }
systemprompt-logging = { workspace = true, optional = true }
systemprompt-config = { workspace = true, optional = true }
systemprompt-cloud = { workspace = true, optional = true }
systemprompt-loader = { workspace = true, optional = true }
systemprompt-events = { workspace = true, optional = true }
systemprompt-client = { workspace = true, optional = true }
systemprompt-security = { workspace = true, optional = true }

# Application
systemprompt-sync = { workspace = true, optional = true }
systemprompt-runtime = { workspace = true, optional = true, features = ["geolocation"] }
systemprompt-generator = { workspace = true, optional = true, features = ["image-processing"] }

# Entry points
systemprompt-api = { workspace = true, optional = true }
systemprompt-cli = { workspace = true, optional = true }

# Domain crates
systemprompt-agent = { workspace = true, optional = true }
systemprompt-ai = { workspace = true, optional = true }
systemprompt-mcp = { workspace = true, optional = true }
systemprompt-oauth = { workspace = true, optional = true }
systemprompt-users = { workspace = true, optional = true }
systemprompt-content = { workspace = true, optional = true }
systemprompt-analytics = { workspace = true, optional = true }
systemprompt-scheduler = { workspace = true, optional = true }
systemprompt-files = { workspace = true, optional = true }

# External dependencies for prelude re-exports
axum = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }
rmcp = { workspace = true, optional = true }

# Error handling and utilities
anyhow = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tracing = { workspace = true }
