44 lines
1.2 KiB
Python
Executable File
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())
|