apiVersion: capsule.dev/v0.1 kind: Capsule name: cverse-frontend-app version: 0.1.0 type: template purpose: summary: 'The Vue.js single-page application (SPA) that provides the user interface for interacting with digital humans. It includes character management, chat UI, settings, and WebRTC integration. It''s a template because the UI/UX, character data, and specific landing pages are bespoke. ' owns: - Vue.js components and pages - Frontend routing and state management - Internationalization resources - WebRTC client logic - Public assets (icons, specific character images) does_not_own: - Backend API implementation - AI inference logic - LiveKit server integration interfaces: provides: - kind: http_api name: frontend-spa description: The main user interface for the digital human system. requires: - kind: http_api name: backend-api from_capsule: cverse-api-server description: REST API for character management, settings, and task status. - kind: http_api name: websocket-api from_capsule: cverse-api-server description: WebSocket API for real-time chat and media control. - kind: library name: livekit-client-sdk description: LiveKit client SDK for WebRTC connections. agent: summary_for_ai: 'An AI agent working on this capsule would focus on UI/UX improvements, adding new frontend features, integrating with new backend API endpoints, or adapting the UI for different character types. It requires knowledge of Vue.js, TypeScript, and WebRTC client-side interactions. ' avoid: - Modifying backend logic or AI inference models directly from this capsule. verification: invariants: - The UI must be responsive and accessible. - Real-time chat and video must function correctly. - Character data display must be consistent with backend API. x-reuse: notes: 'The brand string ''CyberVerse'' is hardcoded in `frontend/src/components/AppHeader.vue`. The `frontend/public/liukanshan/` directory contains specific character assets. The `frontend/src/pages/KanshanLandingPage.vue` is a specific landing page. `frontend/.env.production` contains hardcoded `VITE_WS_BASE=wss://www.cyberverse.cc`. These values need to be renamed/parameterized for reuse. ' x-reconstruct: install: install.json