Adds `agent_shell_dna` cube parsing the new agent-shell::<p>:<m>:<c>::<scope>::<body>-<nonce> format emitted by keisei-marketplace/src/lib/cryptoid.ts::agentDna. Companion to legacy 4-segment `dna_class` (untouched per RULE Don't-Rewrite). Accepts both 8-hex (legacy) and 16-hex (current) lengths for forward-compat. - new file: src/agent_shell_dna.rs (235 LOC, 13 tests all pass) - lib.rs: pub mod agent_shell_dna + module doc Closes HIGH-2 (dna-three-layer audit).
61 lines
2.2 KiB
Rust
61 lines
2.2 KiB
Rust
//! kei-model-router — model selection for Claude Code Agent spawns.
|
|
//!
|
|
//! Reads three TOML registries (providers / models / agent-profiles) and
|
|
//! exposes two selection surfaces:
|
|
//!
|
|
//! - `pick(profile_id, registry)` — registry-backed profile resolution.
|
|
//! - `select(input, conn)` — empirical posterior + cost argmin.
|
|
//!
|
|
//! Constructor Pattern: one file = one responsibility.
|
|
//! Cubes:
|
|
//! - `registry_types` — Provider / Model / Profile TOML structs
|
|
//! - `registry` — Registry loader + lookup methods
|
|
//! - `pricing` — cost_micro_cents + legacy Model enum
|
|
//! - `dna_class` — task-class DNA extraction (legacy 4-segment)
|
|
//! - `agent_shell_dna` — 5-segment marketplace agent DNA parser
|
|
//! - `complexity` — τ-estimator (heuristic)
|
|
//! - `posterior` — Beta posterior from ledger
|
|
//! - `kernel` — DNA similarity kernel
|
|
//! - `select` — pick() types + thin delegation
|
|
//! - `select_posterior` — empirical posterior argmin logic
|
|
//! - `select_kernel` — SQL kernel-smoothing fallback
|
|
//! - `escalate` — next_model() + legacy escalation ladder
|
|
//! - `calibrate` — offline kernel-weight calibration
|
|
|
|
pub mod agent_shell_dna;
|
|
pub mod calibrate;
|
|
pub mod complexity;
|
|
pub mod dna_class;
|
|
pub mod escalate;
|
|
pub mod kernel;
|
|
pub mod posterior;
|
|
pub mod pricing;
|
|
pub mod registry;
|
|
pub mod registry_types;
|
|
pub mod select;
|
|
pub(crate) mod select_kernel;
|
|
pub(crate) mod select_posterior;
|
|
|
|
// Registry API
|
|
pub use registry::Registry;
|
|
/// `RegistryModel` is the TOML wire record from `models.toml`.
|
|
/// It is distinct from the `Model` enum (canonical tier identifier).
|
|
pub use registry_types::Model as RegistryModel;
|
|
pub use registry_types::{Profile, Provider};
|
|
|
|
// Pricing API — `Model` is the canonical model enum used for posterior/escalation.
|
|
pub use pricing::{cost_micro_cents, Model, OPUS_47_TOKENIZER_OVERHEAD};
|
|
|
|
// Selection API
|
|
pub use select::{pick, select, Decision, DecisionInput};
|
|
|
|
// Escalation API
|
|
pub use escalate::{
|
|
next_model, next_after_failure, EscalationDecision, EscalationResult,
|
|
MAX_ESCALATION_DEPTH,
|
|
};
|
|
|
|
// Utility re-exports
|
|
pub use complexity::{ComplexityEstimate, Tier};
|
|
pub use kernel::{similarity, KernelWeights};
|
|
pub use posterior::Posterior;
|