-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCargo.toml
More file actions
156 lines (129 loc) · 4.64 KB
/
Copy pathCargo.toml
File metadata and controls
156 lines (129 loc) · 4.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
[package]
name = "a3s-code-core"
version = "4.2.6"
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"
[dependencies]
# Internal crates
a3s-common = { version = "0.1.1", path = "../../common" }
a3s-memory = { version = "0.1.1", path = "../../memory" }
a3s-lane = { version = "0.4", path = "../../lane" }
a3s-search = { version = "1.2.3", path = "../../search", default-features = false, features = ["lightpanda"] }
# Async runtime
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"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.8"
# ACL config parsing
a3s-acl = { git = "https://github.com/A3S-Lab/ACL.git", tag = "v0.2.0", version = "0.2.0" }
# Error handling
anyhow = "1.0"
thiserror = "1.0"
# Logging (tracing only — no OTel)
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# OpenTelemetry (optional — requires `telemetry` feature)
opentelemetry = { version = "0.27", optional = true }
opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"], optional = true }
opentelemetry-otlp = { version = "0.27", features = ["tonic"], optional = true }
tracing-opentelemetry = { version = "0.28", optional = true }
# Async utilities
futures = "0.3"
async-trait = "0.1"
async-stream = "0.3"
# HTTP client for LLM APIs
reqwest = { version = "0.11", default-features = false, features = ["json", "stream", "rustls-tls"] }
# File operations
glob = "0.3"
ignore = "0.4"
# Diff for edit tool
similar = "2.4"
# Home directory for project memory
dirs = "5.0"
# Regex for template substitution
regex = "1.10"
# SHA256 for security provider
sha256 = "1.5"
# Shell argument parsing
shell-words = "1.1"
# HTML to text/markdown conversion
html2text = "0.16"
htmd = "0.5"
pdf-extract = "0.7"
lopdf = "0.34"
roxmltree = "0.20"
zip = { version = "0.6", default-features = false, features = ["deflate"] }
cfb = "0.14"
flate2 = "1.0"
tar = "0.4"
tempfile = "3.10"
# Base64 for image encoding
base64 = "0.21"
# Bytes for streaming
bytes = "1.5"
# Pin for futures
pin-project-lite = "0.2"
# UUID
uuid = { version = "1.6", features = ["v4", "serde"] }
# Time handling
chrono = { version = "0.4", features = ["serde"] }
# Cron parsing for the `serve` schedules (gated behind the `serve` feature).
cron = { version = "0.12", optional = true }
rquickjs = { version = "0.11.0", features = ["futures"] }
# S3-compatible workspace backend (optional, gated by `s3` feature)
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]
a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = ["http", "websocket", "unix-socket"] }
[target.'cfg(not(unix))'.dependencies]
a3s-ahp = { version = "2.4", path = "../../ahp", optional = true, features = ["http", "websocket"] }
[features]
default = []
# Enable OpenTelemetry OTLP export for traces and metrics.
# When active, `TelemetryConfig::init()` sets up OTLP exporter + tracing subscriber.
telemetry = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
]
# Enable AHP (Agent Harness Protocol) integration for external supervision
ahp = ["dep:a3s-ahp"]
# Enable the S3-compatible workspace backend (`S3WorkspaceBackend`).
# Brings in the AWS Rust SDK and is safe to point at any S3-compatible
# endpoint (AWS S3, MinIO, RustFS, Cloudflare R2, ...).
s3 = [
"dep:aws-sdk-s3",
"dep:aws-credential-types",
"dep:aws-smithy-types",
"dep:aws-smithy-runtime-api",
]
# Enable the durable serve layer: cron schedules + serve daemon for
# filesystem-first agents. Library-only embedders pay nothing without it.
serve = ["dep:cron"]
[dev-dependencies]
# AHP for integration tests
a3s-ahp = { path = "../../ahp" }
# HTTP mocking for the RemoteGitBackend (and any future HTTP-backed workspace
# provider). Production code does not depend on wiremock.
wiremock = "0.6"
# Self-signed cert generation for mTLS happy-path tests. Production code does
# not depend on rcgen.
rcgen = "0.13"
# Implement the async ScheduleSink trait in serve integration tests.
async-trait = "0.1"