76af0aaabd
* fix(spec): resolve circular import between spec.pipeline and core.client Implement two-part fix to break circular import dependency: 1. Add __getattr__ lazy imports in spec/__init__.py to defer imports of SpecOrchestrator and get_specs_dir until accessed. 2. Move create_client import inside run_agent() method in spec/pipeline/agent_runner.py to avoid top-level import. The circular import chain: spec.pipeline.agent_runner -> core.client -> agents.tools_pkg -> spec.validate_pkg.auto_fix -> spec.pipeline By deferring both the pipeline imports in spec/__init__.py AND the create_client import in agent_runner.py, the circular dependency is broken. The __getattr__ implementation caches imports in globals() for efficiency. Refs: ACS-302 * fix(windows): ensure pywin32 is bundled in Windows binary (ACS-306) Fixes ModuleNotFoundError: No module named 'win32api' when the MCP library attempts to import Windows-specific utilities in packaged apps. Root cause: The build script's critical packages validation did not include pywin32 for Windows, causing cached bundles without pywin32 to be accepted during Windows binary builds. Changes: - Add pywin32 to critical packages validation on Windows (download-python.cjs, python-env-manager.ts) - Remove Python version constraint from pywin32 dependency The MCP library unconditionally imports win32api on Windows regardless of Python version - Validate pywin32 on all Python versions on Windows in dependency_validator.py (was 3.12+ only) - Update error message to mention MCP library requirement - Update tests to reflect new behavior Refs: ACS-306 --------- Co-authored-by: StillKnotKnown <stillknotknown@users.noreply.github.com>
31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
# Auto-Build Framework Dependencies
|
|
claude-agent-sdk>=0.1.19
|
|
python-dotenv>=1.0.0
|
|
|
|
# TOML parsing fallback for Python < 3.11
|
|
tomli>=2.0.0; python_version < "3.11"
|
|
|
|
# Linux Secret Service support for credential storage
|
|
# Provides access to the Freedesktop.org Secret Service API via DBus
|
|
# Used on Linux to store OAuth tokens in gnome-keyring/kwallet
|
|
secretstorage>=3.3.3; sys_platform == "linux"
|
|
|
|
# Memory Integration - LadybugDB (embedded graph database)
|
|
# Requires Python 3.12+ (no Docker required)
|
|
real_ladybug>=0.13.0; python_version >= "3.12"
|
|
graphiti-core>=0.5.0; python_version >= "3.12"
|
|
|
|
# Windows-specific dependency for LadybugDB/Graphiti
|
|
# pywin32 provides Windows system bindings required by real_ladybug
|
|
# Required on all Python versions on Windows (ACS-306) - MCP library unconditionally imports win32api
|
|
pywin32>=306; sys_platform == "win32"
|
|
|
|
# Google AI (optional - for Gemini LLM and embeddings)
|
|
google-generativeai>=0.8.0
|
|
|
|
# Pydantic for structured output schemas
|
|
pydantic>=2.0.0
|
|
|
|
# Error tracking (optional - requires SENTRY_DSN environment variable)
|
|
sentry-sdk>=2.0.0
|