|
1 | | -🛠️ ALPHA SOFTWARE UNDER CONSTRUCTION — Use at your own risk. Backwards compatibility not guaranteed. |
| 1 | +# Jules Autopilot (Go Primary Runtime) |
2 | 2 |
|
3 | | -```text |
4 | | -╔══════════════════════════════════════════════════════════════════════════════╗ |
5 | | -║ ║ |
6 | | -║ ██╗ ██╗███╗ ██╗██████╗ ███████╗██████╗ ║ |
7 | | -║ ██║ ██║████╗ ██║██╔══██╗██╔════╝██╔══██╗ ║ |
8 | | -║ ██║ ██║██╔██╗ ██║██║ ██║█████╗ ██████╔╝ ║ |
9 | | -║ ██║ ██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗ ║ |
10 | | -║ ╚██████╔╝██║ ╚████║██████╔╝███████╗██║ ██║ ║ |
11 | | -║ ╚═════╝ ╚═╝ ╚═══╝╚═════╝ ╚══════╝╚═╝ ╚═╝ ║ |
12 | | -║ ║ |
13 | | -║ ██████╗ ██████╗ ███╗ ██╗███████╗████████╗██████╗ ║ |
14 | | -║ ██╔════╝██╔═══██╗████╗ ██║██╔════╝╚══██╔══╝██╔══██╗ ║ |
15 | | -║ ██║ ██║ ██║██╔██╗ ██║███████╗ ██║ ██████╔╝ ║ |
16 | | -║ ██║ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██╗ ║ |
17 | | -║ ╚██████╗╚██████╔╝██║ ╚████║███████║ ██║ ██║ ██║ ║ |
18 | | -║ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ║ |
19 | | -║ ║ |
20 | | -║ █████╗ ██╗ ██████╗ ██╗ ██╗ █████╗ ║ |
21 | | -║ ██╔══██╗██║ ██╔══██╗██║ ██║██╔══██╗ ║ |
22 | | -║ ███████║██║ ██████╔╝███████║███████║ ║ |
23 | | -║ ██╔══██║██║ ██╔═══╝ ██╔══██║██╔══██║ ║ |
24 | | -║ ██║ ██║███████╗██║ ██║ ██║██║ ██║ ║ |
25 | | -║ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║ |
26 | | -║ ║ |
27 | | -║ ╔══════════════════════════════════════╗ ║ |
28 | | -║ ║ ⚠️ ALPHA SOFTWARE ⚠️ ║ ║ |
29 | | -║ ║ EXPECT BREAKING CHANGES & BUGS ║ ║ |
30 | | -║ ║ NOT READY FOR PRODUCTION USE ║ ║ |
31 | | -║ ╚══════════════════════════════════════╝ ║ |
32 | | -║ ║ |
33 | | -╚══════════════════════════════════════════════════════════════════════════════╝ |
34 | | -``` |
35 | | - |
36 | | ---- |
37 | | -# EXTREME WIP ALPHA DEVELOPED "IN THE OPEN," DON'T BOTHER TRYING TO USE IT UNLESS YOU PLAN ON HACKING ON IT TO GET IT WORKING |
38 | | - |
39 | | -# bob's game |
40 | | - |
41 | | -This repository contains the modernized source code for "Bob's Game" (2012), updated to run on modern Java 21 infrastructure. |
| 3 | +> **The ultra-fast, autonomous command center for Google Jules.** |
42 | 4 |
|
43 | | -## Architecture |
| 5 | +Jules Autopilot is a high-performance, minimalist orchestration platform for the Google Jules AI agent. It replaces slow official interfaces with a unified, real-time dashboard, powered by a robust Go backend runtime. |
44 | 6 |
|
45 | | -The project is split into three Gradle modules: |
| 7 | +## 🚀 The Stack |
46 | 8 |
|
47 | | -- **`:client`**: The game client (LWJGL 3, OpenGL, OpenAL). |
48 | | -- **`:server`**: The backend infrastructure (Game Server, Index Server, STUN Server). |
49 | | -- **`:shared`**: Shared logic, networking packets, and utilities. |
| 9 | +This project has been pivoted to a Go-first architecture to ensure maximum performance, operational reliability, and zero friction: |
50 | 10 |
|
51 | | -For a detailed breakdown of the project structure and dependencies, see [STRUCTURE.md](STRUCTURE.md). |
| 11 | +- **Backend/Runtime:** [Go](https://go.dev) (High-performance API, WebSocket server, Scheduler, and Static SPA host) |
| 12 | +- **Frontend:** [Vite](https://vitejs.dev) + [React 19](https://react.dev) (Pure SPA, no SSR overhead) |
| 13 | +- **Database:** [GORM](https://gorm.io) + SQLite (Zero-config local persistence) |
| 14 | +- **Queue & Automation:** Native Go task queue and RAG indexer |
| 15 | +- **Styling:** [TailwindCSS v4](https://tailwindcss.com) |
52 | 16 |
|
53 | | -## Prerequisites |
| 17 | +## 🛠️ Getting Started |
54 | 18 |
|
55 | | -- JDK 21 |
56 | | -- Docker (optional, for server deployment) |
57 | | - |
58 | | -## Building |
59 | | - |
60 | | -To build all modules: |
| 19 | +### Prerequisites |
| 20 | +- [Go 1.21+](https://go.dev) installed. |
| 21 | +- [Node.js](https://nodejs.org) and [pnpm](https://pnpm.io) for frontend development. |
61 | 22 |
|
| 23 | +### Installation |
62 | 24 | ```bash |
63 | | -./gradlew build |
64 | | -``` |
| 25 | +# Clone the repository |
| 26 | +git clone https://github.com/your-repo/jules-autopilot.git |
| 27 | +cd jules-autopilot |
65 | 28 |
|
66 | | -## Running the Client |
| 29 | +# Install frontend dependencies |
| 30 | +pnpm install |
67 | 31 |
|
68 | | -```bash |
69 | | -./gradlew :client:run |
70 | | -``` |
71 | | - |
72 | | -## Running the Editor |
73 | | - |
74 | | -To run the legacy Swing-based Level Editor: |
75 | | - |
76 | | -```bash |
77 | | -./gradlew :client:runEditor |
| 32 | +# Build the frontend and shared packages |
| 33 | +pnpm run build |
78 | 34 | ``` |
79 | 35 |
|
80 | | -**New Editor Features:** |
81 | | -- **Select All (Ctrl+A)**: Selects the entire map, sprite, or tileset in the respective editors. |
82 | | -- **Replace Color**: New menu item in "Palette Tools" to swap a color index globally across the tileset. |
| 36 | +### Running the Command Center |
| 37 | +You can run the entire stack via the Go backend (which serves the built frontend): |
83 | 38 |
|
84 | | -## Running the Server |
| 39 | +1. **Start the Go Runtime:** |
| 40 | + ```bash |
| 41 | + cd backend-go |
| 42 | + go run main.go |
| 43 | + ``` |
| 44 | + *The dashboard will be available at `http://localhost:8080`.* |
85 | 45 |
|
86 | | -You can run the server locally or via Docker. |
| 46 | +2. **Frontend Dev Mode (Optional):** |
| 47 | + ```bash |
| 48 | + pnpm run dev |
| 49 | + ``` |
87 | 50 |
|
88 | | -### Local |
| 51 | +## 🏗️ Architecture |
89 | 52 |
|
90 | | -```bash |
91 | | -./gradlew :server:run |
92 | 53 | ``` |
93 | | - |
94 | | -### Docker |
95 | | - |
96 | | -Build and start the full stack (Game Server, STUN Server, MySQL Database): |
97 | | - |
98 | | -```bash |
99 | | -docker-compose up --build |
100 | | -``` |
101 | | - |
102 | | -Configuration is handled via Environment Variables (see `docker-compose.yml`) or a `server.properties` file in the working directory. |
103 | | - |
104 | | -## Features |
105 | | - |
106 | | -- **Modern Tech Stack**: Java 21, Gradle 8.5, LWJGL 3, Netty 4, HikariCP. |
107 | | -- **Security**: BCrypt password hashing with automatic legacy migration. |
108 | | -- **Containerization**: Full Docker support. |
109 | | -- **CI/CD**: GitHub Actions workflow included. |
110 | | - |
111 | | -## Changelog |
112 | | - |
113 | | -### Modernization Phase (Current) |
114 | | -- **Migrated to Gradle**: Multi-module project structure. |
115 | | -- **Updated Java**: Targeted Java 21. |
116 | | -- **Upgraded LWJGL**: Migrated from 2 to 3 (GLFW, OpenAL, STB). |
117 | | -- **Upgraded Netty**: Migrated from 3 to 4. |
118 | | -- **Security**: Added BCrypt password hashing. |
119 | | -- **Infrastructure**: Added Docker and CI/CD support. |
120 | | -- **Editor**: Re-enabled legacy Swing Editor, added 'Select All' and 'Replace Color' features. |
121 | | - |
122 | | -## Roadmap |
123 | | - |
124 | | -- [x] Modernize Build System (Gradle) |
125 | | -- [x] Upgrade Java to 21 |
126 | | -- [x] Migrate Networking to Netty 4 |
127 | | -- [x] Migrate Graphics to LWJGL 3 |
128 | | -- [x] Re-enable Level Editor |
129 | | -- [ ] Port Editor to LibGDX / Scene2D (Future) |
130 | | -- [ ] Implement remaining TODO items |
| 54 | +┌──────────────────────────────────────────┐ |
| 55 | +│ Browser (Vite SPA) │ |
| 56 | +│ http://localhost:3006 (Dev) │ |
| 57 | +│ http://localhost:8080 (Prod) |
0 commit comments