Skip to content

Latest commit

 

History

History
85 lines (60 loc) · 2.07 KB

File metadata and controls

85 lines (60 loc) · 2.07 KB

Installation

OpenCAS Manager is currently built from source.

Linux Desktop Build

Install a C++17 compiler, CMake, and the Qt6 modules used by the app.

Arch or Manjaro:

sudo pacman -S --needed base-devel cmake qt6-base qt6-multimedia

Ubuntu or Debian:

sudo apt update
sudo apt install build-essential cmake qt6-base-dev qt6-multimedia-dev libgl1-mesa-dev

Fedora:

sudo dnf install gcc-c++ cmake qt6-qtbase-devel qt6-qtmultimedia-devel mesa-libGL-devel

Build and test:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j
ctest --test-dir build --output-on-failure

Launch against a local OpenCAS runtime:

./build/opencas-manager --base-url http://127.0.0.1:8080

If OpenCAS is running on a different port or host, pass that base URL instead. The Manager stores the most recent base URL with QSettings.

Runtime Expectations

The Manager can launch without OpenCAS, but live programs will show unavailable or degraded state until the runtime responds. It expects OpenCAS endpoints such as:

  • /api/chat/send
  • /api/monitor/health
  • /api/memory/landscape
  • /api/identity/somatic
  • /api/desktop-context/status
  • /api/tui-playwright/sessions

Use OpenCAS_runtime and OpenCAS_Documentation for runtime setup and API details.

Useful Environment Variables

OPENCAS_MANAGER_WAKE_KEYWORD=Bulma
OPENCAS_MANAGER_WAKE_KEYWORD_ENABLED=1
OPENCAS_DESKTOP_CONTEXT_ROOT=/path/to/desktop_context

OPENCAS_DESKTOP_CONTEXT_ROOT is optional. It enables local screenshot fallback for the Body Double program when the runtime API is unavailable.

Android Companion Prototype

The android/ tree is an experimental companion app, not the primary Manager. Create a local Android SDK pointer before using Gradle:

cp android/local.properties.example android/local.properties
$EDITOR android/local.properties
cd android
./gradlew assembleDebug

android/local.properties is ignored because it is machine-local.