feat(backend): MCP d'édition de templates (#81)
Ajoute le MCP dédié à l'édition de templates : catalogue et classification des templates (mcp/templates.rs infrastructure + app-tauri), use cases et provider (application/template), enforcement de la policy des tools (mod.rs, server.rs, tools.rs), avec la parité côté chemin OpenAI-compatible (openai_tools.rs x2). Lots B1 (catalogue/classification), B2 (use cases/provider) et B3 (enforcement policy) livrés en un seul commit cohérent. QA vert (seul l'échec de bind loopback #80, connu et non-régression, écarté). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@ -10,12 +10,13 @@ use std::path::PathBuf;
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use backend::BackendCore;
|
||||
use infrastructure::TicketToolProvider;
|
||||
use infrastructure::{TemplateToolProvider, TicketToolProvider};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::chat::ChatBridge;
|
||||
use crate::embedded_server::EmbeddedServerController;
|
||||
use crate::pty::PtyBridge;
|
||||
use crate::templates::AppTemplateToolProvider;
|
||||
use crate::tickets::AppTicketToolProvider;
|
||||
|
||||
pub use backend::ResumeContext;
|
||||
@ -71,6 +72,14 @@ impl AppState {
|
||||
unlink: Arc::clone(&core.unlink_issues),
|
||||
list_sprints: Arc::clone(&core.list_sprints),
|
||||
}) as Arc<dyn TicketToolProvider>);
|
||||
core.template_tool_binder
|
||||
.bind(Arc::new(AppTemplateToolProvider {
|
||||
create: Arc::clone(&core.create_template),
|
||||
read: Arc::clone(&core.read_template),
|
||||
list: Arc::clone(&core.list_templates),
|
||||
update: Arc::clone(&core.update_template),
|
||||
delete: Arc::clone(&core.delete_template),
|
||||
}) as Arc<dyn TemplateToolProvider>);
|
||||
|
||||
Self {
|
||||
core,
|
||||
|
||||
Reference in New Issue
Block a user