7959495a13
* feat(deploy): implement standalone LangGraph server and CLI command for deployment * feat(deploy): enhance port validation and environment variable management for deployment * Refactor langgraph dev deployment and introduce workspace sidecar protocol - Updated the deployment mode handling in `server.py` to use a single environment variable `EVOSCIENTIST_DEPLOY_MODE` with values `full` and `stripped`. - Enhanced the `manager.py` to implement a workspace fingerprint sidecar, allowing cross-process reuse of langgraph dev instances while ensuring workspace consistency. - Introduced functions to write and read the workspace sidecar, with error handling for missing or corrupt data. - Added tests for the workspace sidecar functionality, including validation of the JSON schema and ensuring proper error handling for workspace mismatches. - Updated existing tests to reflect changes in deployment mode handling and added new tests for signal handling during shutdown. - Ensured that cleanup routines remove the workspace sidecar alongside the PID file during shutdown. * fix(langgraph): improve workspace sidecar checks for process ownership and stale handles
23 lines
809 B
Python
23 lines
809 B
Python
"""EvoScientist deploy mode.
|
|
|
|
Standalone LangGraph server launcher. ``EvoSci deploy`` starts a
|
|
``langgraph dev`` subprocess hosting the fully-equipped main agent
|
|
(MCP + async sub-agents enabled), exposed at
|
|
``http://localhost:{port}`` for external LangChain-compatible UIs
|
|
and SDK clients.
|
|
|
|
This module is intentionally separate from ``EvoScientist.cli``:
|
|
deploy mode does NOT load an in-process CLI agent, session DB, channel
|
|
runtime, or TUI — those are all TUI / serve concerns. Deploy only
|
|
manages the lifecycle of the langgraph dev subprocess (and ccproxy if
|
|
OAuth is configured).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
# Importing the server submodule registers the ``@app.command()`` decorator
|
|
# on the shared Typer ``app`` from ``EvoScientist.cli._app``.
|
|
from . import server
|
|
|
|
__all__ = ["server"]
|