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>
36 lines
1.1 KiB
TOML
36 lines
1.1 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/domain",
|
|
"crates/application",
|
|
"crates/infrastructure",
|
|
"crates/app-tauri",
|
|
]
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.80"
|
|
|
|
[workspace.dependencies]
|
|
uuid = { version = "1", features = ["serde", "v4", "v5", "macro-diagnostics"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
thiserror = "2"
|
|
async-trait = "0.1"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "fs", "io-util", "time"] }
|
|
# Local git via libgit2. Network features (https/ssh → openssl) are off for L8:
|
|
# only local operations (status/commit/branch/checkout/log) are in scope; remote
|
|
# push/pull and static vendoring for the AppImage are deferred to L9/L11.
|
|
git2 = { version = "0.20", default-features = false }
|
|
|
|
# Internal crates
|
|
domain = { path = "crates/domain" }
|
|
application = { path = "crates/application" }
|
|
infrastructure = { path = "crates/infrastructure" }
|
|
|
|
# Tauri v2
|
|
tauri = { version = "2", features = [] }
|
|
tauri-build = { version = "2", features = [] }
|
|
tauri-plugin-dialog = "2"
|