Package map
The workspace has 16 Python packages. This page is the full dependency DAG with per-package purpose.
Dependency graph
Section titled “Dependency graph”flowchart TB PR[factflow-protocols] --> FN[factflow-foundation] PR --> LLM[factflow-llm] PR --> INF[factflow-infra] PR --> LIN[factflow-lineage] PR --> EN[factflow-engine] PR --> EX[factflow-execution] PR --> SRV[factflow-server] FN --> LLM FN --> INF FN --> LIN FN --> EN FN --> EX FN --> SRV LIN --> EN LIN --> EX LIN --> SRV INF --> EX INF --> SRV LLM --> SRV EN --> EX EN --> SRV EX --> SRV PR --> WS[factflow-webscraper] PR --> MD[factflow-markdown] PR --> EM[factflow-embeddings] PR --> BO[factflow-boost] PR --> TR[factflow-translator] PR --> KN[factflow-knowledge] PR --> SP[factflow-sharepoint] PR --> RP[factflow-replay] EN --> WS EN --> MD EN --> EM EN --> BO EN --> TR EN --> KN EN --> SP EN --> RP LLM --> BO LLM --> EM LLM --> TR LLM --> KN INF --> RP style PR fill:#e6f2ff,stroke:#2563eb,color:#111 style FN fill:#f0fdf4,stroke:#16a34a,color:#111 style LIN fill:#f0fdf4,stroke:#16a34a,color:#111 style LLM fill:#f0fdf4,stroke:#16a34a,color:#111 style INF fill:#f0fdf4,stroke:#16a34a,color:#111 style EN fill:#f0fdf4,stroke:#16a34a,color:#111 style EX fill:#f0fdf4,stroke:#16a34a,color:#111 style SRV fill:#f0fdf4,stroke:#16a34a,color:#111 style WS fill:#fef3c7,stroke:#d97706,color:#111 style MD fill:#fef3c7,stroke:#d97706,color:#111 style EM fill:#fef3c7,stroke:#d97706,color:#111 style BO fill:#fef3c7,stroke:#d97706,color:#111 style TR fill:#fef3c7,stroke:#d97706,color:#111 style KN fill:#fef3c7,stroke:#d97706,color:#111 style SP fill:#fef3c7,stroke:#d97706,color:#111 style RP fill:#fef3c7,stroke:#d97706,color:#111
Package roles at a glance
Section titled “Package roles at a glance”Core protocol
Section titled “Core protocol”| Package | Role | Key exports |
|---|---|---|
factflow-protocols | Abstract contracts | PipelineAdapter, QueueProtocol, StorageProtocol, LLMClientProtocol, EmbeddingClientProtocol |
Shared services
Section titled “Shared services”| Package | Role | Key exports |
|---|---|---|
factflow-foundation | Config, paths, observability | Config, get_config, ExecutionPathResolver, correlation_context |
factflow-lineage | Message lineage | LineageService, PipelineLineageRepository, PipelineLineageEntry |
factflow-llm | LLM client factory | LLMClientFactory, AdaptiveRateLimiter, classify_llm_error |
factflow-infra | Queue + storage providers | create_storage_provider, Artemis / RabbitMQ / Pulsar providers, filesystem / MinIO |
factflow-engine | Orchestration runtime | PipelineOrchestrator, OrchestratorManager, ReactiveRouteProcessor, PipelineConfigLoader |
factflow-execution | Execution lifecycle | ExecutionService, ExecutionWaiter, PipelineExecution + ExecutionScopedQueue |
factflow-server | FastAPI app | The whole HTTP surface + chat + webhooks + container + startup |
Workflow packages
Section titled “Workflow packages”| Package | Role | Ships adapters for |
|---|---|---|
factflow-webscraper | Web scraping | sitemap_parser, url_expander, web_scraper, web_crawler, web_content_storage |
factflow-markdown | HTML → markdown → segments | storage_retriever, html_to_markdown, smart_segmenter, segment_publisher, markdown_storage_writer |
factflow-embeddings | Vector generation + search storage | embedding_generator |
factflow-boost | Boost.AI ingestion | 10+ adapters under boost_processor |
factflow-translator | LLM translation | llm_translator |
factflow-knowledge | Concept detection + consolidation | concept_detection, concept_consolidation, knowledge_diff |
factflow-sharepoint | SharePoint ingest | sharepoint_ingest, document_converter |
factflow-replay | Storage replay | Internal — invoked by API/CLI, not a YAML adapter |
Dependency rules
Section titled “Dependency rules”Three invariants the workspace enforces:
- No reverse imports. Protocols never import from infra. Engine imports from protocols only. Etc.
- No cross-workflow imports.
factflow-markdownnever imports fromfactflow-webscraper. They compose via queues. - Flat namespace. Every package imports as
factflow_<name>. Nopkgutil.extend_path, nofactflow.Xdotted paths.
What a user actually imports
Section titled “What a user actually imports”Typical adapter author imports from:
factflow_protocols— forPipelineAdapter,PipelineContext,AdapterResultfactflow_foundation— forConfig, correlation helpers- Their own workflow package — to register adapters
Server-internal. A YAML operator imports nothing — they write config and run factflow config run.
Related
Section titled “Related”factflow-protocolsreference — the contracts- Execution flow — how the packages cooperate at runtime
- Writing a new adapter — what to import