open-swe/agent/graphs/scheduler.py

4 lines
71 B
Python
Raw Normal View History

refactor: adopt graphs/runtime/providers shims + retarget langgraph.json Part of the domain-reorg adoption (build plan step C3): fork content, upstream layout. Adds agent/graphs/{agent,analyzer,chat,reviewer, scheduler}.py as thin re-export shims delegating to the existing fork graph factories (agent.server/analyzer/chat/reviewer/scheduler), plus agent/providers/__init__.py re-exporting agent.utils.model's make_model/provider_model_kwargs/fallback_model_id_for surface — verbatim upstream content, verified each import resolves against fork modules with no name changes needed. agent/runtime/{constants,execution}.py deviate from upstream's verbatim shim bodies: rather than duplicating DEFAULT_LLM_MODEL_ID/ DEFAULT_LLM_MAX_TOKENS/DEFAULT_RECURSION_LIMIT/MODEL_CALL_RECURSION_LIMIT and graph_loaded_for_execution's logic (upstream's shims assume agent/server.py already had these extracted into runtime/ modules, which is out of this commit's scope — server.py is untouched), they import the fork's existing agent.server attributes directly. This keeps the values/logic single-sourced instead of forking a second copy that could drift. agent/runtime/sandbox.py's delegation targets also differ from upstream: fork's sandbox lifecycle helpers are private (_get_cached_sandbox_backend, _configure_git_identity, _recreate_sandbox in agent/server.py) since the fork's sync 4-case `__creating__` sentinel design (AGENTS.md) never made them public. get_cached_sandbox_backend() also drops upstream's caller-supplied `reconnect` callback parameter — fork's _get_cached_sandbox_backend is a plain cache lookup; reconnection is handled internally by ensure_sandbox_for_thread/ check_or_recreate_sandbox, not via a passed-in callback. No other signature changes. Added fork-only agent/graphs/ci_monitor.py (delegates to agent.ci_monitor:get_ci_monitor) for symmetry, since upstream deleted its ci-autofix cluster and has no equivalent shim. langgraph.json's five stock graph entrypoints plus the fork-only ci_monitor now all point at agent.graphs.<name>; http.app stays agent.webapp:app (unchanged, per plan). Deliberately NOT included (owned by build plan step C4, the FastAPI split, gated on /sh-security-review): agent/api/{__init__,app, health}.py, agent/webhooks/common.py, and the three agent/webhooks/{github,linear,slack}_routes.py files. Those aren't thin structural shims like the 21-file list implies in isolation — they carry the fork's actual webhook dispatch/verify logic split out of the still-monolithic webapp.py, which hasn't happened yet. Building them now against upstream's placeholder content would ship incomplete auth surface that C4 would just discard and redo. Pinned oven-sh/setup-bun's bun-version to 1.3.14 (the version installed locally; ui/ has no .bun-version file or package.json engines/packageManager field pinning one) across all three CI jobs that install bun, removing the latest-resolution flake. Gates: ruff check + ruff format --check (clean), pytest --co -q (1637 collected, no import errors), a direct import smoke-test of every new module's public symbols, and a make dev boot check — langgraph dev registered all six graphs (agent, reviewer, analyzer, chat, scheduler, ci_monitor) each importing from agent.graphs.*, and loaded the custom app from agent.webapp:app, before the process was killed. (The subsequent lifespan failure, "DEFAULT_SANDBOX_SNAPSHOT_ID must be set when SANDBOX_TYPE=langsmith", is expected with no .env secrets configured in this environment and unrelated to this commit.)
2026-07-17 13:57:20 -04:00
from agent.scheduler import get_scheduler
__all__ = ["get_scheduler"]