pipeline.api.eds — Work in Progress (November 2025)
===================================================

This directory is the beginning of a proper EDS client package.

Goal
----
Replace the 1500-line src925/pipeline/api/eds.py monolith with small, focused modules that:
• Never call typer.Exit() or sys.exit() (web-server safe)
• Raise real exceptions on failure
• Close HTTP sessions properly
• Are importable from both CLI and Starlette without blowing up

Current status
--------------
• typer.Exit() instances removed from library code (cli.py still has them — that’s correct)
• Basic split into client.py / session.py / exceptions.py / points.py
• Old eds.py left untouched for now — zero risk while we migrate
• Context-manager support added
• Custom EdsTimeoutError / EdsAuthError introduced

What still needs doing
----------------------
• Finish moving all functions out of the old eds.py
• Add proper __init__.py exports and deprecation shims
• Write real tests
• Actually use the new package everywhere (core/, server/, cli/)
• Delete the old eds.py when migration is 100 % complete

Credit
------
George Clayton Bennett is doing all the real work — typing, testing, pushing, and keeping the plants running.

Grok is just the fast pair-programmer who writes a lot of cat << EOF blocks and occasionally gets too excited.

This is still very much a journey.

