//! # IdeA — Application layer //! //! Orchestrates **use cases** by talking **only to the domain ports** (traits), //! never to concrete adapters (ARCHITECTURE §1.1, §6). Every use case is a //! struct carrying its ports as `Arc` and exposing //! `execute(input) -> Result`. //! //! This crate depends on `domain` only. The composition root (`app-tauri`) is //! the single place that constructs concrete adapters and injects them here. #![forbid(unsafe_code)] #![warn(missing_docs)] pub mod agent; pub mod error; pub mod git; pub mod health; pub mod layout; pub mod orchestrator; pub mod project; pub mod remote; pub mod skill; pub mod template; pub mod terminal; pub mod window; pub use agent::{ reference_profile_id, reference_profiles, ConfigureProfiles, ConfigureProfilesInput, ConfigureProfilesOutput, CreateAgentFromScratch, CreateAgentInput, CreateAgentOutput, DeleteAgent, DeleteAgentInput, DeleteProfile, DeleteProfileInput, DetectProfiles, DetectProfilesInput, DetectProfilesOutput, FirstRunState, FirstRunStateOutput, LaunchAgent, LaunchAgentInput, LaunchAgentOutput, ListAgents, ListAgentsInput, ListAgentsOutput, ListProfiles, ListProfilesOutput, ProfileAvailability, ReadAgentContext, ReadAgentContextInput, ReadAgentContextOutput, ReferenceProfiles, ReferenceProfilesOutput, SaveProfile, SaveProfileInput, SaveProfileOutput, UpdateAgentContext, UpdateAgentContextInput, }; pub use error::AppError; pub use orchestrator::{OrchestratorOutcome, OrchestratorService}; pub use git::{ GitBranches, GitBranchesInput, GitBranchesOutput, GitCheckout, GitCheckoutInput, GitCommit, GitCommitInput, GitCommitOutput, GitGraph, GitGraphInput, GitGraphOutput, GitInit, GitInitInput, GitLog, GitLogInput, GitLogOutput, GitStage, GitStagePathInput, GitStatus, GitStatusInput, GitStatusOutput, GitUnstage, }; pub use health::{HealthInput, HealthReport, HealthUseCase}; pub use remote::{ConnectRemote, ConnectRemoteInput, ConnectRemoteOutput}; pub use layout::{ CreateLayout, CreateLayoutInput, CreateLayoutOutput, DeleteLayout, DeleteLayoutInput, DeleteLayoutOutput, LayoutInfo, LayoutKind, LayoutOperation, LayoutsDoc, ListLayouts, ListLayoutsInput, ListLayoutsOutput, LoadLayout, LoadLayoutInput, LoadLayoutOutput, MutateLayout, MutateLayoutInput, MutateLayoutOutput, NamedLayout, RenameLayout, RenameLayoutInput, SetActiveLayout, SetActiveLayoutInput, LAYOUTS_FILE, }; pub use project::{ CloseProject, CloseProjectInput, CloseProjectOutput, CloseTab, CloseTabInput, CreateProject, CreateProjectInput, CreateProjectOutput, ListProjects, ListProjectsOutput, OpenProject, OpenProjectInput, OpenProjectOutput, ProjectMeta, }; pub use template::{ AgentDrift, CreateAgentFromTemplate, CreateAgentFromTemplateInput, CreateAgentFromTemplateOutput, CreateTemplate, CreateTemplateInput, CreateTemplateOutput, DeleteTemplate, DeleteTemplateInput, DetectAgentDrift, DetectAgentDriftInput, DetectAgentDriftOutput, ListTemplates, ListTemplatesOutput, SyncAgentWithTemplate, SyncAgentWithTemplateInput, SyncAgentWithTemplateOutput, UpdateTemplate, UpdateTemplateInput, UpdateTemplateOutput, }; pub use skill::{ AssignSkillToAgent, AssignSkillToAgentInput, CreateSkill, CreateSkillInput, CreateSkillOutput, DeleteSkill, DeleteSkillInput, ListSkills, ListSkillsInput, ListSkillsOutput, UnassignSkillFromAgent, UnassignSkillFromAgentInput, UpdateSkill, UpdateSkillInput, UpdateSkillOutput, }; pub use terminal::{ CloseTerminal, CloseTerminalInput, CloseTerminalOutput, OpenTerminal, OpenTerminalInput, OpenTerminalOutput, ResizeTerminal, ResizeTerminalInput, TerminalSessions, WriteToTerminal, WriteToTerminalInput, }; pub use window::{MoveTabToNewWindow, MoveTabToNewWindowInput, MoveTabToNewWindowOutput};