Commit graph

17 commits

Author SHA1 Message Date
1f52daf3c3 feat(frontend): copy LimeZu tilesheets into public directory for tile rendering 2026-05-20 09:03:23 -07:00
c944a1afdc feat: isometric renderer with 6 zones, 9 agent sprites, mock mode
- FarmCanvas.jsx: orthographic camera, 6 colored zones, agent glow/bob/lerp
- WebSocketClient.js: auto-reconnect with mock mode fallback
- officeMap.js: zone definitions, agent state management
- store.js: Zustand store for real-time agent positions
- assets/: tile samples and verified tiles for map rendering
2026-05-19 23:52:13 -07:00
a72920a771 feat(frontend): tile-based office interior with LimeZu Modern Interiors tileset
- Replace outdoor farm scene with 20x15 tile office floor plan
- Add officeMap.js with tile definitions, map grid, walls, doorways, furniture
- Rewrite FarmCanvas.jsx with layered tile rendering (background, floor, walls, doors, furniture, agents)
- Use tileset.png for floor/wall/furniture tiles with proper source coordinates
- Design 6-room layout: Briefing Room, Commons, War Room, Engineering Bay, Quiet Zone, Ops Center
- Central hallway connecting all rooms with doorway openings
- Room labels drawn as floating pills
- Default agent positions reassigned to appropriate rooms
- Remove old BeOS icon tiles (replaced by LimeZu tileset)
2026-05-19 19:42:31 -07:00
399c7958ff feat(frontend): BeOS icons as agent activity indicators, remove background scatter 2026-05-19 19:11:38 -07:00
63ce6ac1fa feat(frontend): polish — hover tooltips, horizontal names, faster movement, full view, BeOS tiles 2026-05-19 19:06:07 -07:00
927585431e feat(frontend): Canvas 2D farm with real pixel art sprites and HTML overlay cards 2026-05-19 18:53:56 -07:00
Scott Scoble
97816d9e27 feat(frontend): Stardew Valley-inspired 2D pixel art redesign 2026-05-19 18:24:34 -07:00
Scott Scoble
d1cc325eeb build: fix Nix flake with correct npmDepsHash and working builds
- Copy working src/frontend code into packages/frontend/src
- Add vite.config.js and index.html to packages/frontend
- Add real backend WebSocket server source
- Switch flake buildPhase from pnpm to npm
- Force-add npm lockfiles (gitignored) for Nix source inclusion
- Set correct npmDepsHash for both frontend and backend packages
2026-05-19 18:16:43 -07:00
Scott Scoble
03eaea3f2d build: fix Nix flake with correct npmDepsHash and working builds
- Copy working src/frontend code into packages/frontend/src
- Add vite.config.js and index.html to packages/frontend
- Add real backend WebSocket server source
- Switch flake from pnpm to npm builds
- Force-add npm lockfiles (gitignored) for Nix source inclusion
- Set correct npmDepsHash for both packages
2026-05-19 18:15:41 -07:00
17d8d21704 feat(backend): WebSocket server wiring bridge to frontend
Implements packages/backend/src/index.ts:
- Creates WebSocket server on port 18790 (configurable via WS_PORT)
- Instantiates OpenClawBridge and connects to OpenClaw GW
- Transforms bridge agentStateChanged events into frontend-compatible state.diff messages (agent.activity / agent.position ops)
- Sends state.full snapshot on new client connection
- Broadcasts heartbeat pings every 15 seconds
- Handles graceful shutdown on SIGINT/SIGTERM
2026-05-19 18:14:57 -07:00
af424a1a1c feat(frontend): isometric office renderer with Three.js
- React + @react-three/fiber + Zustand frontend
- Isometric tile grid with 6 colored zones
- Agent sprites as colored cubes with glow effects
- Smooth movement animation via lerp
- Zone labels (HTML overlay)
- Hover tooltips with agent activity/task
- WebSocket client with reconnect backoff
- Mock mode for standalone operation (no backend needed)
- Orthographic camera setup for true isometric projection
- Vite build configuration (port 18790)
2026-05-19 16:26:54 -07:00
3d735d3527 chore: add .gitignore for node_modules, dist, and IDE files 2026-05-19 16:26:47 -07:00
3e2f441746 feat: add OpenClaw gateway bridge module
Implements the spatial-office → OpenClaw Gateway bridge:
- Connects as backend client via WS (Gateway Protocol v3)
- Polls agent sessions via sessions.list RPC
- Maps agent state → spatial zones (solo, collaboration, coaching, social)
- Emits agentStateChanged events for the state engine
- Handles reconnection with exponential backoff
- Zone assignment logic based on activity context

Files:
- src/bridge-openclaw/index.js — Main bridge (OpenClawBridge class)
- src/bridge-openclaw/types.js — Zod data models, zones, positions
- src/bridge-openclaw/package.json — Dependencies (ws, zod)
2026-05-19 16:26:32 -07:00
bb06f2c48c build: add Nix flake and NixOS module for reproducible builds
- flake.nix: devShell, frontend package, backend package, combined default
- spatial-office.nix: standalone NixOS module for importing into n97 config
- packages/frontend: React + @react-three/fiber + Zustand (Vite build)
- packages/backend: Node.js + ws + Zod (WebSocket server, port 18790)
- pnpm-workspace.yaml: monorepo workspace config

nix build .#frontend  — bundled static site
nix build .#backend   — runnable WebSocket server
nix build             — full spatial-office application
nix develop           — dev shell with Node.js 22 + pnpm
2026-05-19 16:25:24 -07:00
0d3879b02f Add ARCHITECTURE.md (42KB) and COMPETITIVE_ANALYSIS.md (25KB)
Delivered by @senior-eng and @market for spatial-office MVP scoping.

Key architecture decisions:
- React + @react-three/fiber + Zustand frontend
- Node.js + ws + Zod backend on port 18790
- Three bridges: OpenClaw Gateway protocol, Hermes ACP, Pi SDK
- Diff-based WebSocket state sync (100ms batched)
- 6 spatial zones for 9 agents + 1 human observer
- Nix flake with systemd module for n97 deployment
- Phase 1: Observable Office (OpenClaw state only, no Hermes/Pi)

Competitive analysis: 12 competitors profiled, conclusive gap in
VR+browser spatial bridge. Zero agent visualization products.
2026-05-19 16:17:05 -07:00
081ebc5e2a Initial README — spatial office vision and repo structure 2026-05-19 16:14:00 -07:00
b4198e3f36 Initial commit 2026-05-19 16:12:11 -07:00