Files
agentic-mobile-control/console/README.md
T
q792602257andClaude Opus 4.6 c0a653fa3f feat(host-agent): serve built console via SPA-aware static mount
Add an optional single-process mode where the backend serves the built
console bundle itself, so operators don't need a separate `npm run dev`
for edge/dev setups. When RUNTIME_CONSOLE_STATIC_DIR points at the
console dist directory, the app mounts a SpaStaticFiles handler at /ui/
(with 404 fallback to index.html for client-side routing) and redirects
/ to /ui/. The console build uses an empty VITE_API_BASE_URL for relative
API paths (same-origin, no CORS), and Vite's base is set to /ui/ so
assets resolve under the mount. /console/* JSON API is unchanged and is
shared by both serve modes.

api.ts now treats an explicitly-empty VITE_API_BASE_URL as "use relative
paths" instead of falling back to the dev default, which previously
forced absolute URLs even in same-origin builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-14 13:29:58 +08:00

1.3 KiB

Apex Agent Console

Independent Vue 3 + Vite SPA for the operator console.

Run Locally

Start the backend from the repository root:

uvicorn api.rest:create_app --factory --host 127.0.0.1 --port 8000

Start the frontend from this directory:

npm install
npm run dev

The frontend reads VITE_API_BASE_URL and defaults to http://127.0.0.1:8000. Copy .env.example to .env.local if the backend runs on another host or port.

The backend mounts /console/* routes and enables permissive CORS in create_app() for local frontend development.

Build

npm run build

Same-Origin, Single-Process Mode

For an edge/dev setup where running a separate npm run dev process is too heavy, the backend can serve the built console directly from the same process:

VITE_API_BASE_URL= npm run build
RUNTIME_CONSOLE_STATIC_DIR=$(pwd)/dist uvicorn api.rest:create_app --factory --host 127.0.0.1 --port 8000

VITE_API_BASE_URL= (empty) makes the build use relative API paths so it works same-origin without CORS. The console is then served at /ui/ (with / redirecting there); /console/* remains the JSON API used by both this mode and local npm run dev. Rebuild (npm run build) after frontend changes — this mode does not hot-reload.