Pivot orchestration : agents IA pilotés via leur mode programmatique/JSON
(capture déterministe), au lieu du TUI brut + self-report. §16 (idea/MCP)
marquée remplacée comme voie principale.
- D0 (domaine) : port AgentSession + AgentSessionFactory, types ReplyEvent
/ReplyStream/AgentSessionError, champ AgentProfile.structured_adapter
(Option<StructuredAdapter{Claude,Codex}>, skip si None ⇒ zéro régression),
catalogue Claude/Codex annotés.
- D1 (application) : registre StructuredSessions (jumeau de TerminalSessions),
agrégateur LiveSessions{pty,structured} derrière LiveAgentRegistry (vivant si
PTY OU structuré, surface du trait inchangée), helper send_blocking (draine le
ReplyStream jusqu'au Final, Timeout sans tuer la session).
Tests : domaine 16+2 ; application registre 11 + send_blocking 9 ; workspace 0 échec.
A/B intacts. Aucun adapter concret (D2), pas de Tauri/front.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
753 B
TOML
23 lines
753 B
TOML
[package]
|
|
name = "application"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
description = "IdeA — application layer: use cases, DTOs, AppError. Depends only on domain ports."
|
|
|
|
[dependencies]
|
|
domain = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
# `v5` derives stable reference-profile ids from a fixed namespace (catalogue).
|
|
uuid = { workspace = true }
|
|
# `time` feature only : borne le rendez-vous synchrone `send_blocking` (§17.4).
|
|
# Déjà le runtime async du workspace ; pas une nouvelle dépendance externe.
|
|
tokio = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true }
|