Files
clawmates/Cargo.toml
T
Omar SobhandClaude Opus 5 0a2bd6f868
deploy / test (push) Failing after 1m54s
deploy / build (push) Skipped
feat(decide): cm-decide — typed calibrated decisions; Jev + local NLI backends; skill triage in shadow
A third kind of decision-maker between deterministic code and a full LLM
call: Choice / Score / Noul questions answered as probability
distributions with a confidence, behind one Decider trait, with the
composition patterns (confidence gating, composite scoring, rerank) as
code. Two backends: TypeSafe's Jev over HTTP, and a DeBERTa-v3 MNLI
cross-encoder run in-process with candle (feature nli; metal/cuda).

decide-eval measures a backend on labelled cases the way judge-eval
measures the judge. eval/skill-triage.json: 20 mission tasks × 53 skills,
75 positives, hand-labelled. Measured 2026-09-21:

  lexical overlap        AUROC 0.851  [email protected] 0.47  top-k 48/75  ECE 0.095
  jev (named wording)    AUROC 0.989  [email protected] 0.84  top-k 63/75  ECE 0.064  213 ms
  jev (plain wording)    AUROC 0.970  [email protected] 0.66  top-k 52/75
  nli mnli-base          AUROC 0.790  [email protected] 0.28  top-k 38/75  ECE 0.263  1.5 s
  nli zeroshot-v2        AUROC 0.782  [email protected] 0.43  top-k 39/75  ECE 0.054  1.2 s

The vendor's calibration claim survives our data; the local cross-encoder
ranks below keyword overlap on either checkpoint or wording and is kept
as the measured negative, not shipped. A local backend would need the
logit-readout route over the fleet's 9B model — a separate spike.

Shadow: one Jev call per phase launch (spawned, 10 s cap, silent without
TYPESAFE_API_KEY) records a skill.triage event; the Skill-Use report
carries triage_p beside each skill's Trigger verdict. It selects nothing.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WZb5A2kfVfjpdwSochkuHz
2026-09-21 10:08:31 -05:00

82 lines
2.9 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/cm-domain",
"crates/cm-topology",
"crates/cm-orchestrator",
"crates/cm-config",
"crates/cm-db",
"crates/cm-llm",
"crates/cm-decide",
"crates/cm-runtime",
"crates/cm-tools",
"crates/cm-safety",
"crates/cm-sandbox",
"crates/cm-secrets",
"crates/cm-files",
"crates/cm-scheduler",
"crates/cm-billing",
"crates/cm-telemetry",
"crates/cm-testkit",
"crates/cm-auth",
"crates/cm-brain",
"crates/cm-api",
"crates/bins/clawmates-server",
"crates/bins/clawmates-broker",
"crates/bins/clawmates-node",
"crates/bins/fcagent",
"tools/bundler",
]
[workspace.package]
edition = "2021"
rust-version = "1.96"
license = "UNLICENSED"
publish = false
[workspace.dependencies]
# Shared dependency versions; crates opt in via { workspace = true }.
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Streaming tar for mission copy-in/copy-out (no compression: the payload is
# a git checkout on a local socket, so CPU spent zipping buys nothing).
tar = "0.4"
thiserror = "2"
uuid = { version = "1", features = ["v7", "serde"] }
proptest = "1"
time = { version = "0.3", features = ["serde", "serde-well-known"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread", "fs", "net", "time", "sync", "io-util", "process"] }
sqlx = { version = "0.8", default-features = false, features = [
"runtime-tokio",
"tls-rustls",
"postgres",
"uuid",
"time",
"json",
"migrate",
"macros",
"bigdecimal",
] }
testcontainers-modules = { version = "0.13", features = ["postgres"] }
[workspace.lints.rust]
unsafe_code = "deny"
[workspace.lints.clippy]
todo = "deny"
unimplemented = "deny"
dbg_macro = "deny"
# ClawSync (claw-brain `sync` feature) pulls clawhdf5-onion/clawsync-onion/
# clawsync-agent from the clawsync repo, whose crates internally path-dep on a
# sibling ../clawhdf5 (absent in a git checkout). clawverse patches this for its
# own build, but `[patch]` only applies from the root workspace — so we mirror it
# here, redirecting clawsync's clawhdf5 view to the same quantumclaw rev cm-brain
# already uses (one clawhdf5 in the graph, types unify).
[patch."https://git.redclaw.dev/redclaw/clawsync.git"]
clawhdf5 = { git = "https://git.redclaw.dev/quantumclaw/clawhdf5.git", rev = "8534c7d204959c6f8959f3983f3edf6475ba25b9" }
clawhdf5-format = { git = "https://git.redclaw.dev/quantumclaw/clawhdf5.git", rev = "8534c7d204959c6f8959f3983f3edf6475ba25b9" }
clawhdf5-io = { git = "https://git.redclaw.dev/quantumclaw/clawhdf5.git", rev = "8534c7d204959c6f8959f3983f3edf6475ba25b9" }
clawhdf5-filters = { git = "https://git.redclaw.dev/quantumclaw/clawhdf5.git", rev = "8534c7d204959c6f8959f3983f3edf6475ba25b9" }
clawhdf5-agent = { git = "https://git.redclaw.dev/quantumclaw/clawhdf5.git", rev = "8534c7d204959c6f8959f3983f3edf6475ba25b9" }