mirror of
https://github.com/dredx/prole.git
synced 2026-09-23 12:03:59 +00:00
- Moved prole-tools-app to prole-app at the project root to make it self-contained for transition to its own repository. - Created prole-tools-app/dist/ directory to host build artifacts. - Generated distribution artifacts (Prole Tools.app and Prole Tools.zip) using prole-app/build.sh package. - Checked in the generated artifacts to prole-tools-app/dist/ (bypassing .gitignore for temporary release process). Changes Summary • Renamed directory prole-tools-app/ to prole-app/. • Populated prole-tools-app/dist/ with the latest build output from prole-app/build.sh. • Staged all changes, including the forced addition of ignored artifacts in prole-tools-app/dist/. |
||
|---|---|---|
| .. | ||
| Sources | ||
| Vendor/RoyalVNCKit.xcframework | ||
| build.sh | ||
| debug.sh | ||
| Package.resolved | ||
| Package.swift | ||
| prole.properties | ||
| README.md | ||
#####################################################
# ╭───────────────────────────────────────────────╮ #
# │ _ ___ _ _ │ #
# │ _ __ _ _ ___| |___/ __| |_ __ _| |_ _ _ ___ │ #
# │ | '_ \ '_/ _ \ / -_)__ \ _/ _` | _| || (_-< │ #
# │ | .__/_| \___/_\___|___/\__\__,_|\__|\_,_/__/ │ #
# │ |_| │ #
# ╰───────────────────────────────────────────────╯ #
#####################################################
Prole — macOS status and control surface for Prole endpoints, with a path to an integrated virtual workstation harness.
Overview
- Prole provides live reachability and latency signals for Prole service endpoints. It operates in two modes: a regular application window for situational awareness and a minimalist status‑bar overlay for persistent at‑a‑glance status.
- The application will evolve to include a virtual workstation surface to coordinate work across a network of Prole‑linked LLMs. The current scope is operational visibility and control of endpoints.
Supported platform
- macOS 12.0+ (Monterey or newer) on Apple Silicon (arm64) and Intel (x86_64). Universal builds are supported by the build script.
Execution environment requirements (runtime)
- No external daemons or brew packages are required to run the built app bundle.
- Network access to the configured endpoints.
Build environment requirements
- Xcode Command Line Tools (swiftc, xcrun). Install if needed:
xcode-select --install - System tools used by the build:
iconutilandsips(for.icnsgeneration)codesign(ad‑hoc signing)plutil(plist formatting, via xcrun if needed)
Repository layout (subset)
prole-app/— macOS app sources and build systemSources/— Swift sources (AppKit)build.sh— hermetic CLI build producing a.appbundleprole.properties— default endpoint configuration (bundled into Resources)dist/Prole.app— build output
Build script
- The build is driven by
prole-app/build.sh. Typical usage:cd prole-app ./build.sh build # build for host arch ./build.sh run # build (if needed) and open the app ./build.sh build-universal # produce a universal (arm64+x86_64) binary ./build.sh debug # run in foreground with verbose logs ./build.sh clean # remove build artifacts ./build.sh package # zip dist/Prole.app into dist/Prole.zip
What the script does
- Compiles all Swift sources with
swiftc(AppKit, Carbon, Network frameworks). - Generates
Contents/Info.plistwithLSUIElement=falseso the app can present a standard menu when in Application Window mode. - Generates an application icon (
Prole.icns) and a template status glyph as needed. - Copies resources:
www/images/prole-type.gif→Contents/Resources/prole-type.gif(for the startup tip splash)prole-app/prole.properties→Contents/Resources/prole.properties
- Performs ad‑hoc code signing of the
.appbundle.
Alternate build path (installer UI)
- The repository includes
install.py, a Tkinter helper that can orchestrate the build. From the repository root:python3 install.py - Use the “Build Prole macOS app” step. The installer will produce
prole-app/dist/Prole.appand can optionally copy it to/Applications.
Run modes and controls
- Modes:
- Application Window mode (default): resizable window with three vertical status rows (svc, k3s aggregate, local) and a timestamp in the top‑right. A small control bar bottom‑left exposes Refresh (⟳) and Minimize to Status Bar (_).
- Status Bar mode: thin overlay aligned with the macOS menu bar; shows a scrolling summary and a 'maximize' button (□) to return to the main window.
- Toggle between modes with the global shortcut:
Cmd+Option+Shift+P
- Menus:
- Application menu “Prole” (next to the Apple menu): Show Status Bar / Show Main Window (same toggle as the hotkey), Refresh Now, Quit.
- Status‑bar “P” icon (right‑click): Show/Hide Status Bar Icon, Show/Hide Application Window, Refresh Now, Quit.
Configuration
- Endpoint configuration is provided via Java‑style
key=valueproperties. Two locations are read at startup; the user override has precedence:- Bundled defaults:
Prole.app/Contents/Resources/prole.properties - User override (optional):
~/Library/Application Support/Prole/prole.properties
- Bundled defaults:
- Default keys:
svc.host,svc.portk3s.retropie.host,k3s.retropie.portk3s.pi.host,k3s.pi.portk3d.local.host,k3d.local.port
- Example user override:
# Override core service endpoint svc.host=svc.my-domain.tld svc.port=443 # Local k3d on a custom port k3d.local.port=6445
Operational notes
- Status checks are TCP connect probes executed on a background timer (default: 30s). Latency is the connection time in milliseconds; failures record a short diagnostic for tooltips.
- The splash screen is transient (~ 5s) and can be dismissed with a click. It loads
prole-type.gifif present in Resources.
Diagnostics & troubleshooting
- Ensure Xcode CLT is installed if the build fails:
xcode-select --install - If the app launches without a standard menu/window, verify
Info.plisthasLSUIElement=false(the build script sets this). Rebuild usingbuild.sh. - If the hotkey appears inactive, bring the app to the foreground or use the Prole menu item (it triggers the same toggle).
- If status indicators stay red, validate network reachability and adjust
prole.propertiesto endpoints reachable from your host. - For ad‑hoc logging, search the sources for
dlog("…")and run via./build.sh debugto watch stdout.
Security & signing
- The
.appbundle is ad‑hoc signed by default. For distribution, replace with a Developer ID signature and notarize as appropriate for your environment.
Roadmap
- Integration of a virtual workstation to orchestrate a network of Prole‑linked LLMs from within the Prole surface.
License
- See the repository
LICENSEfile.