Module ports

Module ports 

Source
Expand description

Port definitions (trait abstractions) for external systems.

Ports define the interfaces that the core domain expects from infrastructure. They contain no implementation details and use only domain types.

§Design Rules

  • No sqlx types in any signature
  • No process/filesystem implementation details
  • Traits are minimal and CRUD-focused for repositories
  • Intent-based methods for process runner (not implementation-leaking)

Re-exports§

pub use agent::AgentError;
pub use agent::AgentLoopPort;
pub use agent::AgentRunOutput;
pub use agent::ToolExecutorPort;
pub use llm_completion::LlmCompletionPort;
pub use tool_executor_filter::EmptyToolExecutor;
pub use tool_executor_filter::FilteredToolExecutor;
pub use tool_executor_filter::TOOL_NOT_AVAILABLE_MSG;
pub use chat_history::ChatHistoryError;
pub use chat_history::ChatHistoryRepository;
pub use download::QuantizationResolver;
pub use download::Resolution;
pub use download::ResolvedFile;
pub use download_event_emitter::AppEventBridge;
pub use download_event_emitter::DownloadEventEmitterPort;
pub use download_event_emitter::NoopDownloadEmitter;
pub use download_manager::DownloadManagerConfig;
pub use download_manager::DownloadManagerPort;
pub use download_manager::DownloadRequest;
pub use download_state::DownloadStateRepositoryPort;
pub use event_emitter::AppEventEmitter;
pub use event_emitter::NoopEmitter;
pub use gguf_parser::GgufCapabilities;
pub use gguf_parser::GgufMetadata;
pub use gguf_parser::GgufParseError;
pub use gguf_parser::GgufParserPort;
pub use gguf_parser::NoopGgufParser;
pub use huggingface::HfClientPort;
pub use huggingface::HfFileInfo;
pub use huggingface::HfPortError;
pub use huggingface::HfQuantInfo;
pub use huggingface::HfRepoInfo;
pub use huggingface::HfSearchOptions;
pub use huggingface::HfSearchResult;
pub use mcp_dto::ResolutionAttempt;
pub use mcp_dto::ResolutionStatus;
pub use mcp_error::McpErrorCategory;
pub use mcp_error::McpErrorInfo;
pub use mcp_error::McpServiceError;
pub use mcp_repository::McpRepositoryError;
pub use mcp_repository::McpServerRepository;
pub use model_catalog::CatalogError;
pub use model_catalog::ModelCatalogPort;
pub use model_catalog::ModelLaunchSpec;
pub use model_catalog::ModelSummary;
pub use model_registrar::CompletedDownload;
pub use model_registrar::ModelRegistrarPort;
pub use model_repository::ModelRepository;
pub use model_runtime::ModelRuntimeError;
pub use model_runtime::ModelRuntimePort;
pub use model_runtime::RunningTarget;
pub use process_runner::ProcessHandle;
pub use process_runner::ProcessRunner;
pub use process_runner::ServerConfig;
pub use process_runner::ServerHealth;
pub use server_health::ServerHealthStatus;
pub use server_log_sink::ServerLogSinkPort;
pub use settings_repository::SettingsRepository;
pub use system_probe::SystemProbeError;
pub use system_probe::SystemProbePort;
pub use system_probe::SystemProbeResult;
pub use tool_support::ModelSource;
pub use tool_support::ToolFormat;
pub use tool_support::ToolSupportDetection;
pub use tool_support::ToolSupportDetectionInput;
pub use tool_support::ToolSupportDetectorPort;
pub use voice::AudioDeviceDto;
pub use voice::SttModelInfoDto;
pub use voice::TtsModelInfoDto;
pub use voice::VoiceInfoDto;
pub use voice::VoiceModelsDto;
pub use voice::VoicePipelinePort;
pub use voice::VoicePortError;
pub use voice::VoiceStatusDto;

Modules§

agent
Agent loop port traits.
chat_history
Chat history repository port definition.
download
Download port definitions (trait abstractions).
download_event_emitter
Download event emitter port.
download_manager
Download manager port definition.
download_state
Download state repository port definition.
event_emitter
Event emitter trait for cross-crate event broadcasting.
gguf_parser
GGUF parser port definition.
huggingface
HuggingFace client port definitions.
llm_completion
Port definition for streaming LLM chat completions.
mcp_dto
MCP DTOs for cross-boundary communication (Tauri, Axum, TypeScript).
mcp_error
MCP service error types.
mcp_repository
MCP server repository trait and error types.
model_catalog
Model catalog port for listing and resolving models.
model_registrar
Model registrar port definition.
model_repository
Model repository trait definition.
model_runtime
Model runtime port for proxy model management.
process_runner
Process runner trait definition.
server_health
Server health status types for monitoring.
server_log_sink
Server log sink port for structured log capture.
settings_repository
Settings repository trait definition.
system_probe
System probe port for dependency and GPU detection.
tool_executor_filter
FilteredToolExecutor and EmptyToolExecutor — decorators that restrict a [ToolExecutorPort] to a named allowlist of tools.
tool_support
Tool support detection port.
voice
Voice pipeline port — trait abstraction for voice data & config operations.

Structs§

Repos
Container for all repository trait objects.

Enums§

CoreError
Core error type for semantic domain errors.
ProcessError
Domain-specific errors for process runner operations.
RepositoryError
Domain-specific errors for repository operations.