[package]
name = "symbi"
version = "1.0.0"
edition = "2021"
authors = ["Jascha Wanger / ThirdKey.ai"]
description = "AI-native agent framework for building autonomous, policy-aware agents that can safely collaborate with humans, other agents, and large language models"
license = "MIT"
repository = "https://github.com/thirdkeyai/symbiont"
homepage = "https://symbiont.dev"
documentation = "https://docs.symbiont.dev"
readme = "README.md"
keywords = ["ai", "agents", "automation", "security", "symbiont"]
categories = ["development-tools", "command-line-utilities"]
exclude = [
    "enterprise/",
    "scripts/",
    "docs/assets/",
    "*.png",
    "*.jpg",
    "*.jpeg",
    ".github/",
    "Dockerfile*",
    ".dockerignore"
]

[workspace]
resolver = "2"
members = [
    "crates/dsl",
    "crates/runtime",
    "crates/channel-adapter",
    "crates/repl-core",
    "crates/repl-proto",
    "crates/repl-cli",
    "crates/repl-lsp"
]

[workspace.package]
rust-version = "1.70"

[dependencies]
clap = { version = "4.0", features = ["derive"] }
tokio = { version = "1.0", features = ["full"] }
sysinfo = "0.30.13"
symbi-runtime = { path = "crates/runtime", version = "1.0.1", features = ["http-input", "http-api"] }
cron = { version = "0.15", optional = true }
chrono = { version = "0.4", features = ["serde"], optional = true }
chrono-tz = { version = "0.10", optional = true }
dsl = { path = "crates/dsl", version = "1.0.0", package = "symbi-dsl" }
reqwest = { version = "0.12", features = ["json"] }
serde_json = "1.0"

[features]
default = ["cron"]
cron = ["symbi-runtime/cron", "dep:cron", "dep:chrono", "dep:chrono-tz"]

[dev-dependencies]
tracing = "0.1"
tracing-subscriber = "0.3"

[profile.release]
# Optimize for performance and security
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true

[profile.dev]
# Development optimizations
opt-level = 0
debug = true
overflow-checks = true