repoctl-core 0.4.0

Core domain types, diagnostics, manifest parsing, and ports for repoctl.
Documentation
#![forbid(unsafe_code)]
#![warn(rust_2024_compatibility, missing_docs, missing_debug_implementations)]
// The public API intentionally mirrors the vocabulary in the v0.2 specs.
#![allow(clippy::module_name_repetitions)]
// Constructors and accessors stay lightweight; callers can decide when `#[must_use]` is useful.
#![allow(clippy::must_use_candidate)]
// Every fallible public function is documented at the type/module level to avoid repetitive noise.
#![allow(clippy::missing_errors_doc)]

//! Core domain, manifest, diagnostic, graph, and port types for repoctl.
//!
//! This crate is intentionally infrastructure-neutral. Concrete filesystem,
//! Cargo, process, and template adapters live outside of it.

pub mod diagnostic;
pub mod domain;
pub mod manifest;
pub mod ports;

pub use diagnostic::{
    Diagnostic, DiagnosticSource, RepoctlError, Severity, SourceSpan, ValidationReport,
};
pub use domain::{
    AdoptedSource, AdoptionApplyRequest, AdoptionCiMode, AdoptionFileOperation,
    AdoptionOutputFormat, AdoptionPlan, AdoptionPlanRequest, AdoptionVerifyRequest, AffectedReason,
    AffectedReport, AffectedRequest, AiContext, AiContextRequest, BoundaryLintReport,
    BoundaryLintRequest, CdnCheck, CdnSpec, CiFallback, CiMatrixReport, CiMatrixRequest,
    CiProvider, CiWorkflowReport, CiWorkflowRequest, CodegenCheckReport, CodegenCheckRequest,
    CommandSpec, DependencyRewrite, DependencyRewriteMode, DependencySurface, DependencyTarget,
    DeploySpec, DiscoverRequest, DnsOperation, DnsRecordSpec, EdgeKind, ExplainReport,
    ExplainRequest, FileOperation, GeneratedCodePolicy, GraphEdge, GraphNode, GraphNodeKind,
    GraphPrintReport, GraphPrintRequest, GraphValidateRequest, HygieneCheckRequest,
    HygieneCleanRequest, HygieneReport, IacFacadeReport, IacFacadeRequest, IacOperation,
    IacProvider, IacSpec, InitPlan, InitProfile, InitRequest, ManualStateRecord, NewProjectRequest,
    OpsJournalAction, OpsJournalReport, OpsJournalRequest, OpsPlan, OpsPlanRequest,
    OpsReconcileReport, OpsReconcileRequest, OpsVerifyReport, OpsVerifyRequest, OwnerHandle,
    PolicyMode, PrSummary, PrSummaryRequest, ProbeExpectation, ProbeSpec, ProcessCommand,
    ProcessOutput, ProjectAiSpec, ProjectAreas, ProjectDependency, ProjectDnsSpec, ProjectKind,
    ProjectManifest, ProjectManifestSynthesis, ProjectName, ProjectOpsSpec, ProjectProtoSpec,
    ProjectRelativePath, ProtoFacadeReport, ProtoFacadeRequest, ProtoOperation, ProtoPackageName,
    ProviderCapabilityReport, ProviderCapabilityRequest, RenderPlan, RepoGlob, RepoGraph,
    RepoLayout, RepoManifest, RepoName, RepoPolicySet, RepoRelativePath, RepoRoot, RepoSnapshot,
    ResolvedTemplateSource, RuntimeDependencySpec, SchemaId, SessionEntry, SessionJournal,
    SkillsFacadeReport, SkillsFacadeRequest, SourceInventory, TaskCommand, TaskCommandOutput,
    TaskDependency, TaskName, TaskRunPlan, TaskRunReport, TaskRunRequest, TemplateFile,
    TemplateInput, TemplateListReport, TemplateListRequest, TemplateManifest,
    TemplateRenderRequest, TemplateSource, TemplateSummary, ToolPrerequisite, Toolchain,
    ValidationMode, VerificationPlan, Visibility, WorkspaceLanguage, WorkspaceName, WorkspaceSpec,
    utf8_path_buf, validate_project_convention,
};
pub use manifest::{ManifestSource, YamlManifestParser};
pub use ports::{
    DiscoveredEdge, FixedRepoLocator, GraphBuildInput, GraphBuilder, InMemoryRepoFileSystem,
    ManifestParser, PolicyContext, PolicyRule, ProcessRunner, RenderRequest, RenderedTemplate,
    RepoFileSystem, RepoLocator, StaticGraphBuilder, TemplateEngine, TemplateSourceResolver,
    ToolchainAdapter, ToolchainEnvironmentInput, WalkRequest, WorkspaceInspectionInput,
    WorkspaceInspector, discovered_to_graph_edge,
};