Huh: I have one, incomplete but I've found it useful. Violates CQGI, imposing its own convention on model modules, but maybe a starting point?
github.com:swork/cqmodels.git
I set it up in a venv in the workspace dir, "venv/bin/python -m pip install -e .", and run it against a model like "venv/bin/cqmodel show nethercott_ic/nethercott_ic.py". instances() in the model lists individual .stls, generated in the same dir as the model file and regenerated each time the .py changes. Viewers for each .stl are spawned as subprocesses, and they in turn reload their .stl on each change.
Plenty of bugs, some understood and just not yet squashed (example: things freeze up on syntax trouble with the module, forcing you to kill and restart cqmodel - a dumb consequence of importlib.reload() working only after a successful previous load/reload, and me neglecting to respond to a failure there). I'm short of time to maintain it but will do the best I can - good to have a reason to get it right instead of continuing to work around problems.
My models vary in parameter conventions as I figure out what works. Most likely I threw out a baby by not working within CQGI, but I didn't immediately see a path to module composition there. So feedback is most welcome!