ai-lsc/src/ai_lsc/__main__.py

44 lines
1.2 KiB
Python
Executable File

"""AI Local Stack Control — console entry point.
Invoked via the ``ai-lsc`` script (registered in pyproject.toml) or
``python -m ai_lsc``. Launches the PySide6 desktop application.
"""
import os
import sys
def main() -> int:
"""Launch the AI-LSC desktop application and return the exit code."""
# PySide6 is a required dependency as of v3.0 — if it's missing we fail
# loudly rather than falling back to a degraded mode.
try:
from PySide6.QtWidgets import QApplication
except ImportError:
print(
"PySide6 is required but not installed.\n\n"
" source .venv/bin/activate\n"
" pip install PySide6>=6.6\n\n"
" Or re-run: bash bootstrap.sh",
file=sys.stderr,
)
return 1
from ai_lsc.constants import BASE_DIR
from ai_lsc.utils.logging import setup_logging
# DO-06: initialise logging before any Qt objects are created
log_dir = os.path.join(BASE_DIR, "logs")
setup_logging(log_dir=log_dir)
from ai_lsc.ui.main_window import AILocalStackControl
app = QApplication.instance() or QApplication(sys.argv)
window = AILocalStackControl()
window.show()
return app.exec()
if __name__ == "__main__":
sys.exit(main())