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:
@ -32,8 +32,8 @@ use application::{
|
||||
UnassignSkillFromAgentInput, UpdateAgentContactableInput, UpdateAgentContextInput,
|
||||
UpdateAgentEffortInput, UpdateAgentMcpToolPermissionsInput, UpdateAgentPermissionsInput,
|
||||
UpdateAgentSystemPermissionsInput, UpdateMemoryInput, UpdateProjectContextInput,
|
||||
UpdateProjectMcpToolPermissionsInput, UpdateProjectPermissionsInput,
|
||||
UpdateProjectSystemPermissionsInput, UpdateSkillInput,
|
||||
UpdateProjectMcpToolPermissionsInput, UpdateProjectOrchestratorInput,
|
||||
UpdateProjectPermissionsInput, UpdateProjectSystemPermissionsInput, UpdateSkillInput,
|
||||
};
|
||||
use backend::stream::OutputSink;
|
||||
use domain::ports::ModelServerRuntime;
|
||||
@ -81,7 +81,8 @@ use crate::dto::{
|
||||
UpdateAgentContactableRequestDto, UpdateAgentContextRequestDto, UpdateAgentEffortRequestDto,
|
||||
UpdateAgentMcpToolPermissionsRequestDto, UpdateAgentPermissionsRequestDto,
|
||||
UpdateAgentSystemPermissionsRequestDto, UpdateMemoryRequestDto, UpdateProjectContextRequestDto,
|
||||
UpdateProjectMcpToolPermissionsRequestDto, UpdateProjectPermissionsRequestDto,
|
||||
UpdateProjectMcpToolPermissionsRequestDto, UpdateProjectOrchestratorRequestDto,
|
||||
UpdateProjectOrchestratorResponseDto, UpdateProjectPermissionsRequestDto,
|
||||
UpdateProjectSystemPermissionsRequestDto, UpdateSkillRequestDto, UpdateTemplateRequestDto,
|
||||
WriteTerminalRequestDto,
|
||||
};
|
||||
@ -800,6 +801,27 @@ pub async fn update_agent_contactable(
|
||||
.map_err(ErrorDto::from)
|
||||
}
|
||||
|
||||
/// `update_project_orchestrator` — select the single global project-context writer.
|
||||
///
|
||||
/// # Errors
|
||||
/// Returns an [`ErrorDto`] when ids are invalid, the agent is unknown, or persistence fails.
|
||||
#[tauri::command]
|
||||
pub async fn update_project_orchestrator(
|
||||
request: UpdateProjectOrchestratorRequestDto,
|
||||
state: State<'_, AppState>,
|
||||
) -> Result<UpdateProjectOrchestratorResponseDto, ErrorDto> {
|
||||
let project = resolve_project(&request.project_id, &state).await?;
|
||||
let agent_id = parse_agent_id(&request.agent_id)?;
|
||||
state
|
||||
.update_project_orchestrator
|
||||
.execute(UpdateProjectOrchestratorInput { project, agent_id })
|
||||
.await
|
||||
.map(|out| UpdateProjectOrchestratorResponseDto {
|
||||
orchestrator_agent_id: out.orchestrator.to_string(),
|
||||
})
|
||||
.map_err(ErrorDto::from)
|
||||
}
|
||||
|
||||
/// `resolve_agent_permissions` — resolve project defaults plus agent override.
|
||||
///
|
||||
/// # Errors
|
||||
|
||||
@ -262,6 +262,7 @@ pub fn run() {
|
||||
commands::update_agent_permissions,
|
||||
commands::update_agent_effort,
|
||||
commands::update_agent_contactable,
|
||||
commands::update_project_orchestrator,
|
||||
commands::resolve_agent_permissions,
|
||||
commands::get_project_system_permissions,
|
||||
commands::update_project_system_permissions,
|
||||
|
||||
Reference in New Issue
Block a user