feat(templates): nom d'agent par défaut + permissions système et MCP outils sur AgentTemplate — #242

AgentTemplate étendu (defaultAgentName, systemPermissions, mcpToolPermissions),
CreateTemplate/UpdateTemplate/CreateAgentFromTemplate projetés vers l'agent créé,
DTO/MCP tools et persistance store complétés. Correctif modèle par défaut:
UpdateTemplate ne persistait pas defaultProfileId (profil stale à la création
d'agent). Backfill best-effort des templates existants depuis les agents du
projet au open_project, overrides explicites uniquement.
This commit is contained in:
2026-08-23 10:59:55 +02:00
parent ed5c5f73d6
commit d6c80be56d
11 changed files with 809 additions and 47 deletions

View File

@ -98,7 +98,26 @@ pub fn catalogue() -> Vec<ToolDef> {
"properties": {
"name": { "type": "string" },
"content": { "type": "string" },
"defaultProfileId": { "type": "string", "format": "uuid" }
"defaultProfileId": { "type": "string", "format": "uuid" },
"defaultAgentName": { "type": ["string", "null"] },
"defaultSystemPermissions": {
"type": ["object", "null"],
"properties": {
"network": { "type": "string", "enum": ["allow", "deny", "ask"] }
},
"additionalProperties": false
},
"defaultMcpToolPermissions": {
"type": ["object", "null"],
"properties": {
"allowedTools": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["allowedTools"],
"additionalProperties": false
}
},
"required": ["name", "content", "defaultProfileId"],
"additionalProperties": false
@ -106,14 +125,35 @@ pub fn catalogue() -> Vec<ToolDef> {
},
ToolDef {
name: "idea_template_update",
description: "Update a global IdeA agent template's Markdown content.",
description: "Update a global IdeA agent template.",
input_schema: json!({
"type": "object",
"properties": {
"templateId": template_id.clone(),
"content": { "type": "string" }
"content": { "type": ["string", "null"] },
"name": { "type": "string" },
"defaultProfileId": { "type": "string", "format": "uuid" },
"defaultAgentName": { "type": ["string", "null"] },
"defaultSystemPermissions": {
"type": ["object", "null"],
"properties": {
"network": { "type": "string", "enum": ["allow", "deny", "ask"] }
},
"additionalProperties": false
},
"defaultMcpToolPermissions": {
"type": ["object", "null"],
"properties": {
"allowedTools": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["allowedTools"],
"additionalProperties": false
}
},
"required": ["templateId", "content"],
"required": ["templateId"],
"additionalProperties": false
}),
},