feat(middleware): add butler router for semantic skill routing

New ButlerRouterMiddleware (priority 80) intercepts user messages,
classifies intent using keyword-based domain detection, and injects
routing context into the system prompt. Supports healthcare, data
report, policy compliance, and meeting coordination domains.

- New: butler_router.rs — keyword classifier + MiddlewareContext injection
- Registered in Kernel::create_middleware_chain() at priority 80
- 9 tests passing (classification + middleware integration)
This commit is contained in:
iven
2026-04-09 09:26:48 +08:00
parent a4c89ec6f1
commit ffaee49d67
3 changed files with 307 additions and 0 deletions

View File

@@ -190,6 +190,13 @@ impl Kernel {
pub(crate) fn create_middleware_chain(&self) -> Option<zclaw_runtime::middleware::MiddlewareChain> {
let mut chain = zclaw_runtime::middleware::MiddlewareChain::new();
// Butler router — semantic skill routing context injection
{
use std::sync::Arc;
let mw = zclaw_runtime::middleware::butler_router::ButlerRouterMiddleware::new();
chain.register(Arc::new(mw));
}
// Data masking middleware — mask sensitive entities before any other processing
{
use std::sync::Arc;