Dependency Graph Overview
Domain: Real Packages
🎯 Motivation
Visualizing how the 9 real packages depend on each other and on external libraries reveals the architecture of the entire Jupyter+Hermes ecosystem. Students can see which packages are leaf nodes (few deps) and which are integration hubs (many deps).
📋 Concrete Example
jupyterhub-litellm → jupyterhub, tornado, aiohttp
jupyter-ai-hermes → jupyter-ai-acp-client, jupyter-ai-persona-manager, mcp>=1.27
jupyter-ai-hermes-magics → ipython>=8.0, nbformat>=5.0
jupyter-hermes-proxy → jupyter-server-proxy>=4.0
hermes-acp-sdk → agent-client-protocol==0.9.0, pyyaml
cppmanlite → (no runtime deps)
jupyter-cpp-tutor → ipython>=8.0
jupyter-python-tutor → ipython>=8.0
jupyterlab-pwa → jupyter-server>=2.0, jupyterlab>=4.0
🔗 Analogy
Like a food web in biology — each organism (package) eats (depends on) certain others. Producers (cppmanlite, no deps) are at the bottom, apex predators (jupyter-ai-hermes, many deps) are at the top. Understanding the web tells you what happens if one species goes extinct.