-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCargo.toml
More file actions
130 lines (119 loc) · 4.99 KB
/
Copy pathCargo.toml
File metadata and controls
130 lines (119 loc) · 4.99 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
[workspace]
resolver = "2"
members = ["crates/*", "terraphim_server", "terraphim_firecracker", "terraphim_ai_nodejs"]
# Note: terraphim_usage and terraphim_ccusage are new crates in crates/*
exclude = [
# terraphim-core crates (terraphim_types, terraphim_test_utils,
# terraphim-markdown-parser, terraphim_automata, terraphim_rolegraph) were
# extracted to the standalone terraphim-core repo and are now consumed from
# the `terraphim` registry (E1, Gitea #1910).
# terraphim-config-persistence crates were extracted to the standalone
# terraphim-config-persistence repo and are consumed from the registry (E2, #1910).
# terraphim-service crates: consumed from the `terraphim` registry (E3, #1910).
# terraphim-agents crates: consumed from the `terraphim` registry (E4a, #1910).
# terraphim-kg-agents crates: consumed from the `terraphim` registry (E4b, #1910).
# clients-and-integrations crates: consumed from the `terraphim` registry (E5, #1910).
# Empty / residual directories left after polyrepo extraction. They no longer
# contain a top-level Cargo.toml and must be excluded so `crates/*` does not
# match them (#2260).
# Orphaned eval directory: Cargo.toml never merged into main, only tests/ subdir remains.
"crates/terraphim_eval",
"crates/terraphim_agent",
"crates/terraphim_agent_evolution",
"crates/terraphim_automata",
"crates/terraphim_cli",
"crates/terraphim_multi_agent",
"crates/terraphim_orchestrator",
"crates/terraphim_service",
"crates/terraphim_settings",
# Experimental crates
"crates/terraphim_agent_application",
"crates/terraphim_truthforge",
# Python bindings (need `maturin develop`)
"crates/terraphim_automata_py",
"crates/terraphim_rolegraph_py",
# Desktop built separately via Tauri CLI
"desktop/src-tauri",
# Planned future use, not needed for workspace builds
"crates/terraphim_build_args",
# Unused haystack providers (kept for future integration)
"crates/haystack_atlassian",
"crates/haystack_discourse",
# Superseded by terraphim_agent
"crates/terraphim_repl",
# Symphony orchestrator (build separately: cd crates/terraphim_symphony && cargo build)
"crates/terraphim_symphony",
# Firecracker-based crates (fcctl-core is optional and commented out;
# crate publishes to crates.io without firecracker feature)
# "crates/terraphim_rlm",
# Host-only runners (omitted from Docker build context)
# "crates/terraphim_github_runner", -- re-added to workspace for CI testing (#2953)
"crates/terraphim_github_runner_server",
# "crates/terraphim_gitea_runner", -- re-added to workspace for CI testing (#3097)
]
default-members = ["terraphim_server"]
[workspace.package]
version = "1.21.0"
edition = "2024"
rust-version = "1.91"
authors = ["Terraphim Team <team@terraphim.ai>"]
documentation = "https://terraphim.ai"
homepage = "https://terraphim.ai"
repository = "https://github.com/terraphim/terraphim-ai"
license = "Apache-2.0"
readme = "README.md"
[workspace.dependencies]
# OpenRouter AI integration dependencies
tokio = { version = "1.0", features = ["full"] }
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
reqwest-middleware = { version = "0.4" }
reqwest-retry = { version = "0.7" }
# Direct HTTP LLM client approach (removed rig-core)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
uuid = { version = "1.21", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
async-trait = "0.1"
thiserror = "1.0"
anyhow = "1.0"
log = "0.4"
tracing = "0.1"
tempfile = "3.27"
# Security: Force rustls 0.23+ to fix RUSTSEC-2026-0049
rustls = { version = "0.23", default-features = false }
# Security: Force rustls-webpki 0.103.12+ to fix RUSTSEC-2026-0049, 0098, 0099
rustls-webpki = "0.103.12"
# LLM Router integration
[patch.crates-io]
# Republished Gitea 1.20.5 fixes openrouter private-method bug; override crates.io 1.20.4.
terraphim_service = { version = "1.20.5", registry = "terraphim" }
# genai patch temporarily disabled to test crates.io 0.6.0 compatibility for v1.20.0 publish chain.
# genai = { git = "https://github.com/terraphim/rust-genai.git", branch = "merge-upstream-20251103" }
self_update = { git = "https://github.com/AlexMikhalev/self_update.git", branch = "update-zipsign-api-v0.2" }
# Security: Patch rustls-webpki to fix RUSTSEC-2026-0049 (CRL bypass), 0098, 0099 (name constraints)
# Using git source to force version override
rustls-webpki = { git = "https://github.com/rustls/webpki.git", tag = "v/0.103.12" }
[profile.release]
panic = "unwind"
lto = false
codegen-units = 1
opt-level = 3
[profile.release-lto]
inherits = "release"
lto = true
codegen-units = 1
opt-level = 3
panic = "abort"
# CI-optimized profiles for faster builds with less disk usage
[profile.ci]
inherits = "dev"
incremental = false
codegen-units = 16
split-debuginfo = "off"
debug = false
strip = true
[profile.ci-release]
inherits = "release"
lto = "thin"
codegen-units = 8
strip = "symbols"