feat(agents): role orchestrateur du contexte global expose et configurable par agent — isOrchestrator distinct des permissions MCP, DTO update_project_orchestrator (terminologie wire legacy conservee), refus idea_context_update explicite avec writer effectif + orientation idea_context_propose, surface AgentsPanel + adaptateurs frontend — #276 (QA verte: cargo fmt/check, tests cibles application/app-tauri/infrastructure/backend, npm typecheck, 69/69 tests frontend agents/adapters)
This commit is contained in:
@ -533,8 +533,12 @@ impl AssignSkillToAgent {
|
||||
skill_id: SkillId,
|
||||
assigned: bool,
|
||||
) -> Result<(), AppError> {
|
||||
let manifest = AgentManifest::new(manifest.version, manifest.entries)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
let manifest = AgentManifest::with_orchestrator(
|
||||
manifest.version,
|
||||
manifest.entries,
|
||||
manifest.orchestrator,
|
||||
)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
self.contexts.save_manifest(project, &manifest).await?;
|
||||
self.events.publish(DomainEvent::SkillAssigned {
|
||||
agent_id,
|
||||
@ -591,8 +595,12 @@ impl UnassignSkillFromAgent {
|
||||
*entry = domain::ManifestEntry::from_agent(&agent);
|
||||
|
||||
if changed {
|
||||
let manifest = AgentManifest::new(manifest.version, manifest.entries)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
let manifest = AgentManifest::with_orchestrator(
|
||||
manifest.version,
|
||||
manifest.entries,
|
||||
manifest.orchestrator,
|
||||
)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
self.contexts
|
||||
.save_manifest(&input.project, &manifest)
|
||||
.await?;
|
||||
|
||||
Reference in New Issue
Block a user