Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
121 lines (112 loc) · 5.6 KB
/
Copy pathCargo.toml
File metadata and controls
121 lines (112 loc) · 5.6 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
[workspace]
resolver = "2"
members = [
"crates/broca-protocol",
"crates/broca-owner-only",
"crates/broca-ck",
"crates/broca-provider",
"crates/cortexkit-chatgpt-policy",
"crates/broca-core",
"crates/broca-bench",
"crates/broca-replay",
"crates/broca-subc",
"crates/broca-wal",
"crates/broca-store",
"crates/broca-catalog",
"crates/broca-run",
"crates/broca-module",
"crates/broca-wire",
"crates/broca-module-serve",
"crates/ck-session-import",
"crates/ck-import",
"crates/broca-test-support",
"crates/broca-crash-harness",
"crates/broca-fetch-plan",
"crates/broca-diagnostics",
]
# broca workspace.
# - crates/broca-protocol : canonical types ONLY (no IO). The provider<->runner
# stream-part schema, the runner<->caller control-unit schema, the framed
# two-lane OutputStream envelope, the error taxonomy, Usage, cache-tier
# markers. This crate is where the Phase-0 wire contract is frozen.
# - crates/broca-provider : a provider module binary. Owns one provider's WAN
# SSE transport + auth, normalizes wire->canonical stream-parts, emits the two
# lanes over the direct runner<->provider socket (reusing subc-transport).
# - crates/broca-core : the runner. Direct client of provider modules
# (Phase 0); the agentic loop lands in Phase 1.
# - crates/broca-bench : the (A) latency/jitter test bench — in-process vs
# process-separated, deterministic SSE replay, CLOCK_MONOTONIC one-way timing.
#
# Linked fleet crates are registry releases or immutable git revisions. Sibling
# checkouts are used only to build integration-test rig binaries.
[workspace.package]
version = "0.3.219"
edition = "2021"
rust-version = "1.96"
license = "MIT"
repository = "https://github.com/cortexkit/broca"
[workspace.dependencies]
broca-owner-only = { path = "crates/broca-owner-only" }
cortexkit-anthropic-policy = "=0.1.1"
cortexkit-chatgpt-policy = { path = "crates/cortexkit-chatgpt-policy", version = "=0.1.0" }
serde = { version = "1", features = ["derive", "rc"] }
# Keep shared normal-dependency features identical across package selections.
# Tokio's paused-clock support is deliberately dev-only: test-util adds clock
# synchronization to Instant::now(), including in builds that never pause time.
serde_json = { version = "1", features = ["raw_value", "float_roundtrip"] }
serde_jcs = "0.2"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-util", "net", "sync", "time", "signal", "process", "fs"] }
tokio-util = { version = "0.7", features = ["codec", "io"] }
futures = { version = "0.3", default-features = false, features = ["std", "async-await"] }
async-trait = "0.1"
sha2 = "0.10"
tungstenite = { git = "https://github.com/openai-oss-forks/tungstenite-rs", rev = "4fffad30fe373adbdcffab9545e9e9bf4f2fc19f", default-features = false, features = ["deflate"] }
tokio-tungstenite = { git = "https://github.com/openai-oss-forks/tokio-tungstenite", rev = "0e5b2d73aa18dd9f0a50ee9ff199d5aef7594186", default-features = false, features = ["handshake", "connect", "rustls-tls-webpki-roots"] }
# Exact released versions keep the benchmark and production on the same envelope.
subc-protocol = "=0.32.4"
subc-transport = "=0.13.0"
subc-control = "=0.31.0"
subc-client-rs = "=0.29.3"
subc-os = "=0.1.14"
cortexkit-lease = "=0.1.2"
cortexkit-log = "=0.3.5"
cortexkit-role-harness = "=0.1.0"
cortexkit-role-tool-provider = "=0.8.1"
cortexkit-role-tool-provider-conformance = "=0.8.0"
cortexkit-role-llm-runner = "=0.2.5"
cortexkit-role-llm-runner-conformance = "=0.5.0"
# Draft 2020-12 validation of structured-output values. Default features are off so the
# validator has no HTTP or file retriever: a schema can never make broca fetch anything.
jsonschema = { version = "=0.58.6", default-features = false }
cortexkit-role-agent-data = "=0.2.0"
cortexkit-role-step-transform-provider = "=0.2.3"
cortexkit-role-compaction-provider = "=0.2.4"
# The logging facade every crate here emits through. The records are formatted and
# written by cortexkit-log, which the daemon binary installs as the process-global
# subscriber; a process that installs none simply drops them. Declared once so every
# crate binds ONE tracing instance -- two would mean two independent global
# subscribers, and half the module's records landing nowhere.
tracing = "0.1"
# Codex's client fork references tungstenite over SSH; resolve the same immutable source via HTTPS.
[patch."ssh://git@github.com/openai-oss-forks/tungstenite-rs.git"]
tungstenite = { git = "https://github.com/openai-oss-forks/tungstenite-rs", rev = "4fffad30fe373adbdcffab9545e9e9bf4f2fc19f" }
# Cargo already defaults to unwinding; pinning it makes that a decision rather
# than an inherited property. broca serves each run on its own task, so an
# unwind contains a panic to one run: the actor's drop guard seals the episode,
# the lease releases, and the daemon keeps serving every other session. Under
# `panic = "abort"` the same panic takes the process down mid-turn, which for
# this module is a durability event — an in-flight WAL append and its fsync
# barrier are lost, and every live session's turn dies with it. A build-tuning
# change flipping this would be invisible to the test suite, so it is pinned
# here with the reason attached.
[profile.dev]
panic = "unwind"
# Test rigs hash full debug executables before launching their dev-named copies.
# The mutation runner runs a whole integration target serially under one deadline;
# optimize hashing so repeated rig startups do not consume that test-run budget.
[profile.dev.package.broca-test-support]
opt-level = 3
[profile.dev.package.sha2]
opt-level = 3
[profile.release]
panic = "unwind"