""" Information Spaces package for MarkiTect. This package provides the Information Space abstraction, enabling: - First-class space entities with identity, metadata, and lifecycle - Event-driven change tracking and notifications - Persistent transclusion context with cross-space references - HTML rendering with caching and theme support - Bidirectional directory synchronization - Composable space hierarchies Package Structure: - models: Core domain models (InformationSpace, SpaceDocument, SpaceConfig) - events: Event system (SpaceEvent, EventBus, handlers) - repositories: Data access layer (ISpaceRepository, SqliteSpaceRepository) - transclusion: Persistent transclusion context and reference tracking - rendering: Space rendering (HTML, themes) - sync: Directory synchronization (export, import, bidirectional) - services: Business logic (SpaceService) - history: Optional git-based version control Usage: from markitect.spaces import SpaceService, InformationSpace service = SpaceService() space = await service.create_space("my-docs") await service.add_document(space, "/intro.md", content="# Intro") await service.render(space, output_dir="./html/") """ # Phase 1: Foundation from .models import ( InformationSpace, SpaceDocument, SpaceConfig, SpaceMetadata, SpaceVariable, TransclusionReference, SpaceStatus, ) from .services import SpaceService from .repositories import ( ISpaceRepository, IDocumentAssociationRepository, IVariableRepository, IReferenceRepository, SqliteSpaceRepository, SqliteDocumentRepository, SqliteVariableRepository, SqliteReferenceRepository, initialize_space_tables, ) # Phase 2: Event System from .events import ( SpaceEvent, SpaceEventType, EventBus, get_event_bus, reset_event_bus, ) __all__ = [ # Models "InformationSpace", "SpaceDocument", "SpaceConfig", "SpaceMetadata", "SpaceVariable", "TransclusionReference", "SpaceStatus", # Services "SpaceService", # Repository Interfaces "ISpaceRepository", "IDocumentAssociationRepository", "IVariableRepository", "IReferenceRepository", # SQLite Implementations "SqliteSpaceRepository", "SqliteDocumentRepository", "SqliteVariableRepository", "SqliteReferenceRepository", "initialize_space_tables", # Event System "SpaceEvent", "SpaceEventType", "EventBus", "get_event_bus", "reset_event_bus", ]