alpha-arena/scripts/macos-app-setup.py
oho 774f8b3f61 Initial commit: Alpha Arena - Polymarket Autonomous Trading Harness
A comprehensive autonomous trading system for Polymarket prediction markets
featuring multi-LLM provider support, a native macOS menu bar app, and a
web-based control dashboard.

Key features:
- Multi-agent trading system (Research, Risk, Execution, Reflection agents)
- LLM provider flexibility (Anthropic, OpenAI, Google, xAI, Local models)
- Automatic provider fallback chain for resilience
- Native Swift/SwiftUI macOS menu bar application
- FastAPI web dashboard with real-time WebSocket updates
- Risk management with kill switch
- Technical indicators and market analysis
2026-01-12 23:04:58 +01:00

88 lines
2.1 KiB
Python

"""
py2app setup configuration for Alpha Arena Menu Bar App.
This creates a standalone .app bundle that can be placed in /Applications.
Usage:
python scripts/macos-app-setup.py py2app
"""
from setuptools import setup
from pathlib import Path
# Project paths
PROJECT_DIR = Path(__file__).parent.parent
SRC_DIR = PROJECT_DIR / "src"
MACOS_DIR = SRC_DIR / "macos"
# Main entry point
APP = [str(MACOS_DIR / "menubar.py")]
# Data files to include
DATA_FILES = []
# Check for icon files
icons_dir = MACOS_DIR / "icons"
if icons_dir.exists():
icon_files = list(icons_dir.glob("*.png"))
if icon_files:
DATA_FILES.append(("icons", [str(f) for f in icon_files]))
# Check for .icns app icon
icns_file = MACOS_DIR / "resources" / "Alpha Arena.icns"
if not icns_file.exists():
icns_file = None
# py2app options
OPTIONS = {
'argv_emulation': False,
'plist': {
'CFBundleName': 'Alpha Arena',
'CFBundleDisplayName': 'Alpha Arena',
'CFBundleIdentifier': 'com.alpha-arena.controller',
'CFBundleVersion': '1.0.0',
'CFBundleShortVersionString': '1.0.0',
'LSMinimumSystemVersion': '12.0',
'LSUIElement': True, # Menu bar app - no dock icon
'LSBackgroundOnly': False,
'NSHighResolutionCapable': True,
'NSUserNotificationAlertStyle': 'alert',
'NSAppleEventsUsageDescription': 'Alpha Arena needs to send notifications.',
},
'packages': [
'rumps',
'httpx',
'websocket',
'certifi',
],
'includes': [
'src.macos',
'src.macos.server_bridge',
'src.macos.notifications',
'src.macos.menubar',
],
'excludes': [
'tkinter',
'matplotlib',
'numpy',
'pandas',
'scipy',
],
'resources': [],
'frameworks': [],
}
# Add icon if exists
if icns_file:
OPTIONS['iconfile'] = str(icns_file)
setup(
name='Alpha Arena',
version='1.0.0',
description='Alpha Arena Menu Bar Controller',
author='Alpha Arena',
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)