[package]
name = "a3s-code-core"
version = "9.0.0"
edition = "2021"
authors = ["A3S Lab Team"]
license = "MIT"
repository = "https://github.com/A3S-Lab/Code"
description = "A3S Code Core - Embeddable AI agent library with tool execution"
[lib]
name = "a3s_code_core"
path = "src/lib.rs"
[[example]]
name = "telemetry_collector_qualification"
required-features = ["telemetry"]
[[example]]
name = "durable_memory_semantic_refresh_benchmark"
required-features = ["durable-memory-sqlite"]
[[example]]
name = "durable_memory_prod1_host"
required-features = ["dm-prod1-host"]
[[example]]
name = "workspace_persistent_index_benchmark"
required-features = ["a3s-vec-fts"]
[[example]]
name = "workspace_persistent_index_production"
required-features = ["a3s-vec-fts"]
[[example]]
name = "flow_graph_benchmark"
required-features = ["advanced-harness"]
[[example]]
name = "evaluation_substrate_benchmark"
required-features = ["advanced-harness"]
[[test]]
name = "test_extensibility_real_llm"
path = "tests/test_extensibility_real_llm.rs"
required-features = ["advanced-harness"]
[[test]]
name = "typed_decision_layer_c"
path = "tests/typed_decision_layer_c.rs"
required-features = ["apofasi"]
[[test]]
name = "typed_decision_perf"
path = "tests/typed_decision_perf.rs"
required-features = ["apofasi"]
[dependencies]
a3s-effect = "0.1.0"
a3s-common = "0.1.1"
a3s-memory = { version = "0.1.4", git = "https://github.com/A3S-Lab/Memory.git", rev = "97a5e885d196be77dc1823ad86238e77d942ed73" }
a3s-lane = "0.5"
a3s-search = { version = "=3.1.4", git = "https://github.com/A3S-Lab/Search.git", rev = "e38555cebb5a0fe9a982bde72700971262ac0773", default-features = false }
a3s-flow = { version = "=1.1.0", git = "https://github.com/A3S-Lab/Flow.git", rev = "2948ad51a1395177764766c3ddf7e44338f9e374", default-features = false, optional = true }
a3s-sandbox = { version = "=0.2.1", git = "https://github.com/A3S-Lab/Sandbox.git", rev = "2b8687892bbb4a5e3d6e74fca42949a3f186d236" }
a3s-apofasi = { version = "=0.1.1", git = "https://github.com/A3S-Lab/Apofasi.git", rev = "0bc3961d3183f9d2692c0406967765866bc914d6", default-features = false, features = ["router"], optional = true }
a3s-vec = { version = "=0.1.8", optional = true }
tokio = { version = "1.35", features = [
"rt-multi-thread", "sync", "time", "io-util",
"process", "fs", "macros"
] }
tokio-stream = { version = "0.1", features = ["net"] }
tokio-util = { version = "0.7", features = ["codec"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
lsp-types = "=0.97.0"
url = "=2.5.8"
percent-encoding = "2.3"
jsonschema = { version = "0.47", default-features = false }
serde_yaml = "0.9"
toml = "0.8"
a3s-acl = "=0.3.0"
anyhow = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
opentelemetry = { version = "0.27", optional = true }
opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"], optional = true }
opentelemetry-otlp = { version = "0.27", features = ["tonic", "http-proto", "hyper-client"], optional = true }
tracing-opentelemetry = { version = "0.28", optional = true }
futures = "0.3"
rayon = "1.10"
async-trait = "0.1"
async-stream = "0.3"
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }
glob = "0.3"
ignore = "0.4"
notify = "8"
aes-gcm = "0.10"
similar = "2.4"
dirs = "5.0"
regex = "1.10"
sha256 = "1.5"
sha2 = "0.10"
shell-words = "1.1"
html2text = "0.16"
htmd = "0.5"
lopdf = { version = "0.42", optional = true }
zip = { version = "0.6", default-features = false, features = ["deflate"], optional = true }
flate2 = { version = "1.0", optional = true }
tar = { version = "0.4", optional = true }
tempfile = "3.10"
fs2 = "0.4"
base64 = "0.21"
bytes = "1.5"
pin-project-lite = "0.2"
uuid = { version = "1.6", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
rquickjs = { version = "0.11.0", features = ["futures"] }
redis = { version = "0.32.7", default-features = false, features = ["tokio-comp", "script"], optional = true }
aws-sdk-s3 = { version = "1", default-features = false, features = ["rt-tokio", "rustls"], optional = true }
aws-credential-types = { version = "1", optional = true }
aws-smithy-types = { version = "1", optional = true }
aws-smithy-runtime-api = { version = "1", optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_Storage_FileSystem", "Win32_System_JobObjects", "Win32_System_Threading"] }
[features]
default = ["local-code"]
minimal = []
local-code = ["a3s-vec-fts", "grep-trigram", "web-fetch-pdf"]
scientific = ["local-code", "durable-memory-sqlite", "headless-search", "advanced-harness"]
server = ["local-code", "s3", "telemetry"]
full = ["scientific", "server"]
evaluation = []
research = ["evaluation"]
state-graph = []
dynamic-workflow = ["state-graph", "dep:a3s-flow"]
advanced-harness = ["evaluation", "research", "state-graph", "dynamic-workflow"]
durable-memory-sqlite = ["a3s-memory/sqlite"]
dm-prod1-host = ["dep:redis"]
headless-search = [
"a3s-search/moli",
"a3s-search/lightpanda",
"dep:zip",
"dep:flate2",
"dep:tar",
]
a3s-vec-fts = ["dep:a3s-vec"]
grep-trigram = []
web-fetch-pdf = ["dep:lopdf"]
telemetry = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
]
s3 = [
"dep:aws-sdk-s3",
"dep:aws-credential-types",
"dep:aws-smithy-types",
"dep:aws-smithy-runtime-api",
]
apofasi = ["dep:a3s-apofasi"]
apofasi-infer = ["apofasi", "a3s-apofasi/infer"]
apofasi-metal = ["apofasi-infer", "a3s-apofasi/metal"]
ci-all = ["full", "apofasi", "apofasi-infer"]
[dev-dependencies]
tokio = { version = "1.35", features = ["test-util"] }
wiremock = "0.6"
rcgen = "0.13"
async-trait = "0.1"