//! Skill router integration for the Kernel //! //! Bridges zclaw-growth's `EmbeddingClient` to zclaw-skills' `Embedder` trait, //! enabling the `SemanticSkillRouter` to use real embedding APIs. use std::sync::Arc; use async_trait::async_trait; /// Adapter: zclaw-growth EmbeddingClient → zclaw-skills Embedder pub struct EmbeddingAdapter { client: Arc, } impl EmbeddingAdapter { pub fn new(client: Arc) -> Self { Self { client } } } #[async_trait] impl zclaw_skills::semantic_router::Embedder for EmbeddingAdapter { async fn embed(&self, text: &str) -> Option> { self.client.embed(text).await.ok() } }