mirror of
https://github.com/saymrwulf/alpha-arena.git
synced 2026-05-14 20:37:51 +00:00
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
88 lines
2.1 KiB
Python
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'],
|
|
)
|