From dc40d49c2995573f621e4929bb4be4710df32cc5 Mon Sep 17 00:00:00 2001 From: Himanshu Kumar Date: Mon, 20 Jul 2026 18:30:17 +0530 Subject: [PATCH 1/2] docs: add modeldock.png logo to hero banner --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index 52b99ed..fa2d9f9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,6 +8,8 @@ hide:
+ModelDock + ### The package manager for local AI models Lightweight. Python-first. Zero-config. From a0dfc1bec6e59d99b176ffb50a34e82ccd2bddae Mon Sep 17 00:00:00 2001 From: Himanshu Kumar Date: Mon, 20 Jul 2026 18:37:06 +0530 Subject: [PATCH 2/2] docs: add Mermaid diagram to architecture layered view - Replaces ASCII art with interactive Mermaid flowchart - Adds pymdownx.superfences custom fence for mermaid - Adds mermaid.min.js from unpkg CDN --- docs/architecture/overview.md | 89 +++++++++++++++++++---------------- mkdocs.yml | 9 +++- 2 files changed, 57 insertions(+), 41 deletions(-) diff --git a/docs/architecture/overview.md b/docs/architecture/overview.md index 40df57d..bffd3e0 100644 --- a/docs/architecture/overview.md +++ b/docs/architecture/overview.md @@ -8,46 +8,55 @@ ModelDock is a **management layer** that sits above local model runtimes. It doe Dependencies point inward — Clean Architecture with SOLID principles: -``` -┌─────────────────────────────────────────────────────────────┐ -│ Interface / Delivery Layer │ -│ - Python SDK (modeldock/__init__.py public API) │ -│ - CLI (modeldock/cli) → Typer │ -└─────────────────────────────────────────────────────────────┘ - │ uses -┌─────────────────────────────────────────────────────────────┐ -│ Application / Use-Case Layer (modeldock/core) │ -│ - ModelService, RegistryService, DownloadService, │ -│ CacheService, ConfigService, LifecycleOrchestrator │ -│ - Orchestrates "load missing → download → verify → load" │ -└─────────────────────────────────────────────────────────────┘ - │ depends on (abstractions) -┌─────────────────────────────────────────────────────────────┐ -│ Domain Layer (modeldock/domain) — pure, no I/O │ -│ - Model, ModelSpec, ModelAlias, Capability, Category, │ -│ RuntimeBackend, DownloadStatus, exceptions │ -└─────────────────────────────────────────────────────────────┘ - │ implemented by -┌─────────────────────────────────────────────────────────────┐ -│ Port / Abstraction Layer (modeldock/ports) │ -│ - RuntimePort, RegistryPort, DownloaderPort, CachePort, │ -│ ProgressPort, EventPort │ -└─────────────────────────────────────────────────────────────┘ - │ adapters -┌─────────────────────────────────────────────────────────────┐ -│ Adapter / Infrastructure Layer (modeldock/adapters) │ -│ - runtimes/ollama.py (first), lmstudio, llamacpp, jan, │ -│ gpt4all, vllm (future) │ -│ - registry/ (dynamic Ollama catalog + bundled fallback) │ -│ - downloaders/ (http, ollama-native pull) │ -│ - cache/ (filesystem cache) │ -│ - progress/ (rich, tqdm, silent) │ -└─────────────────────────────────────────────────────────────┘ - │ -┌─────────────────────────────────────────────────────────────┐ -│ Cross-cutting (modeldock/common) │ -│ - config, logging, errors, platform utils, http client │ -└─────────────────────────────────────────────────────────────┘ +```mermaid +graph TB + subgraph Interface["Interface / Delivery Layer"] + SDK["Python SDK
modeldock/__init__.py"] + CLI["CLI
modeldock/cli → Typer"] + end + + subgraph Application["Application / Use-Case Layer"] + CORE["modeldock/core/
ModelManager · LifecycleOrchestrator
RegistryService · DownloadService
CacheService · ConfigService"] + end + + subgraph Domain["Domain Layer — pure, no I/O"] + DOMAIN["modeldock/domain/
Model · ModelSpec · ModelAlias
Capability · Category
RuntimeBackend · Exceptions"] + end + + subgraph Ports["Port / Abstraction Layer"] + PORTS["modeldock/ports/
RuntimePort · RegistryPort
DownloaderPort · CachePort
ProgressPort · EventPort"] + end + + subgraph Adapters["Adapter / Infrastructure Layer"] + RUNTIMES["runtimes/
ollama · lmstudio
llamacpp · jan · gpt4all · vllm"] + REGISTRY["registry/
dynamic catalog + bundled fallback"] + DOWNLOADERS["downloaders/
http · ollama-native pull"] + CACHE["cache/
filesystem cache"] + PROGRESS["progress/
rich · tqdm · silent"] + end + + subgraph Common["Cross-cutting"] + COMMON["modeldock/common/
config · logging · errors
platform utils · http client"] + end + + SDK --> CORE + CLI --> CORE + CORE --> PORTS + CORE --> DOMAIN + PORTS --> RUNTIMES + PORTS --> REGISTRY + PORTS --> DOWNLOADERS + PORTS --> CACHE + PORTS --> PROGRESS + COMMON -.-> CORE + COMMON -.-> ADAPTERS + + style Interface fill:#37474f,stroke:#26a69a,color:#fff + style Application fill:#455a64,stroke:#26a69a,color:#fff + style Domain fill:#546e7a,stroke:#26a69a,color:#fff + style Ports fill:#607d8b,stroke:#26a69a,color:#fff + style Adapters fill:#78909c,stroke:#26a69a,color:#fff + style Common fill:#90a4ae,stroke:#26a69a,color:#fff ``` --- diff --git a/mkdocs.yml b/mkdocs.yml index 18578a1..123e5e8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -107,7 +107,11 @@ markdown_extensions: # Built-in - admonition - pymdownx.details - - pymdownx.superfences + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.highlight: anchor_linenums: true line_spans: __span @@ -151,3 +155,6 @@ extra: extra_css: - stylesheets/custom.css + +extra_javascript: + - https://unpkg.com/mermaid@10/dist/mermaid.min.js