Skip to content

Libraries

Jarvis includes several shared Python libraries that provide common functionality across services. These are installed as packages (typically via pip install -e .) rather than running as standalone services.

Library Inventory

Library Package Description
Log Client jarvis-log-client Structured logging via JarvisLogger
Config Client jarvis-config-client Service URL discovery via config service
Settings Client jarvis-settings-client Runtime settings reader
Auth Client jarvis-auth-client Auth validation middleware and helpers
Web Scraper jarvis-web-scraper Web content extraction for LLM consumption

Installation

Libraries are installed as editable packages during service development:

cd jarvis-<service>
pip install -e "../jarvis-log-client"
pip install -e "../jarvis-config-client"

Most services list these as dependencies in their pyproject.toml or setup.py.

Design Principles

  • Graceful degradation -- if the backing service is unavailable, libraries fall back to safe defaults (e.g., log client falls back to console output)
  • Minimal dependencies -- libraries keep their dependency footprint small
  • Consistent interface -- all libraries follow similar initialization and configuration patterns