Spaces:
Running
Running
Commit History
-
Deploy: Clique-first site, mobile 2026 pass, Cleo hero, Beryl Suite
AIBRUH485e5cb
-
fix: resolve TS type errors blocking HF Space buildβ
AIBRUH +1: Claude Sonnet 4.6- ltx/generate/route.ts: cast rawData.output before accessing .data to satisfy TS - ltx-studio/page.tsx: type jobA/jobB as the full union type instead of as-const narrow so status field accepts awaiting_approval and failed assignments Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>95d0540 -
feat(clique): Clique Chat tab with group and private DM channelsβ
AIBRUH +1: Claude Sonnet 4.6- CliqueChat component: left sidebar with Group channel + individual DMs to each v1 agent - Live preview tab bar added above build-mode project previewer - Tab bar: Live Preview / Clique Chat, gold underline on active, smooth transitions - Messages: CLS mini avatars, grouped runs, user messages right-aligned, agent messages left - Typing indicator with animated dots showing which agent is composing - Input supports group channel or private DM context label - /api/clique/chat route: native fetch GPT-4o, sequences agent responses so agents can react to each other - Agents respond in order using their master system prompts from clique-agent-prompts.ts - resolveResponders() determines who speaks for group messages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>04bd015 -
feat(clique): wire v1 team roster, agent prompts, handoff protocolβ
AIBRUH +1: Claude Sonnet 4.6CliqueRoom: v1 team only (india/jeff/nu), new QUICK_ACTIONS and inferAgentsFromText Amanda opener: Hey, I'm Amanda. Tell me what you're building. New agents join as silent-listening; detectAmandaHandoff flips them active resolveResponders wired to user speech transcript for routing AgentTile: silent-listening state, dimmed with Listening badge useAmandaVoice: onAmandaTranscript + onUserTranscript callbacks realtime-token route: uses getAgentPrompt master system prompt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>3c4c329
-
feat: Eve opens the conversation on page load, no overlay, addresses TJβ
AIBRUH +1: Claude Sonnet 4.6- Skip overlay: phase starts as "session", userName hardcoded to "TJ" - On mount, Eve fires __OPEN__ trigger through the full pipeline (Grok+TTS+visemes) with a wave greeting β no scripted fallback text, live Grok response - Fix: scripted calls now send userText (not "") so route never hits "text required" - route.ts: __OPEN__ gets a dedicated opener system prompt ("wave hello, introduce yourself, ask TJ one question, 2 sentences max") - Confirmed live: "Waving hello! I'm Eve, your warm companion at Beryl AI Labs β what's lighting you up today?" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>40a63ad -
feat: viseme-driven real-time lip sync for Eve (no pre-baked loop)β
AIBRUH +1: Claude Sonnet 4.6Replace the eve_talking_loop.mp4 pre-baked loop video with genuine phoneme/viseme-driven animation synced to TTS word-boundary timestamps: - eve-tts space (fn_index 1): streams audio + WordBoundary events via edge-tts boundary='WordBoundary'. Switched from AvaMultilingualNeural (no WordBoundary support) to AvaNeural (standard neural, same voice). - route.ts: calls fn_index 1, returns audioUrl + visemes array [{word, offsetMs, durationMs}] to the client. - the-gym page: wordToViseme() classifier maps each word to a mouth shape (rest/aa/ou/ee/fv/mid) via grapheme heuristic. requestAnimationFrame loop reads audio.currentTime, finds the active word boundary, swaps the displayed face frame in real time. No loop, no repeat β every word drives a different mouth shape from Eve's actual speaking footage. - public/visemes/: 6 PNG mouth-shape frames extracted from Eve's own Wan2.2 speaking video (closed, wide-open, round, smile, teeth, mid). Co-Authored-By: Claude Sonnet 4.6 β¦cf901f2 -
Real-time Eve: ~8s response via parallel-fast TTS + pre-baked speaking loopβ
AIBRUH +1: Claude Sonnet 4.6- route.ts: Grok-3-mini -> AIBRUH/eve-tts sequential, returns in ~8s No LatentSync in hot path (was 90s blocker β moved out entirely) - page.tsx: plays eve-tts audioUrl directly + loops eve_talking_loop.mp4 Video switches: still portrait (idle/thinking) -> speaking loop (audio active) Falls back to browser SpeechSynthesis if audioUrl unavailable - public/eve_talking_loop.mp4: Wan2.2 pre-baked 3s speaking loop (1.6MB) Generated once, reused every conversation turn Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c80aa46 -
Eve alive: wire proven AIBRUH/eve-tts + AIBRUH/latentsync pipelineβ
AIBRUH +1: Claude Sonnet 4.6- speak/route.ts: replace Voicebox with AIBRUH/eve-tts (Edge-TTS, cpu-upgrade) - queue/join SSE pattern, en-US-AvaMultilingualNeural voice - returns audio bytes for immediate LatentSync upload (avoids URL expiry) - lipsync: AIBRUH/latentsync A10G β uploads eve_wave.mp4 + audio, fn_index 1 - proven: 66s inference, 807KB lip-synced video output - Grok-3-mini backbone unchanged (always returns reply) - public/eve_answer.mp3: Eve's voice (43KB Edge-TTS) - public/eve_speaking.mp4: PROOF β lip-synced talking video (807KB) - public/frames/eve_speaking_frame: screenshot proof of Eve's mouth in motion Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>9f327e9 -
Eve alive pipeline: Grok backbone + HF TTS + LongCat lip-sync + Wan2.2 wave proofβ
AIBRUH +1: Claude Sonnet 4.6- app/api/hf/speak/route.ts: Grok-3-mini backbone (never throws), AIBRUH/eve-tts Edge-TTS, LatentSync lip-sync - app/api/ltx/generate/route.ts: Wan2.2 14B i2v Lightning, correct ImageData format + int frame_multiplier + steps<=30 - app/api/runway/poll/route.ts: placeholder (Runway removed from Gym) - app/api/save-frame/route.ts: dev helper, writes frames to public/frames/ - app/the-gym/page.tsx: Browser SpeechSynthesis fallback, female voice selection, currentVideo state - app/ltx-studio/: LTX video studio page - public/eve_wave.mp4: PROOF - Wan2.2 generated Eve waving (1.22MB, 624x832, 4.06s) - public/wave_proof.html: dev capture page for filmstrip Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c66931d
-
feat(clique): CLS loop router + live Runway switcher fully wiredβ
AIBRUH +1: Claude Sonnet 4.6- CLSTile Layer C: live Runway video element with 200ms crossfade over the always-running CLS loop; gold pulse ring while LIVE is active - useCLSRunner: goLive() checks pre-warm cache (instant) then polls Runway at 1500ms intervals; returnToLoop() clears live state - AgentTile: imports useCLSRunner per agent; triggers goLive(speak) on state==live, returnToLoop on exit; pre-warms speak clip 2s after mount so next switch is instant; passes liveVideoUrl+onLiveEnded down to CLSTile - /api/clique/cls-live: Runway gen4_turbo image_to_video endpoint with speak/nod/react/explain mood prompts - Roster: TJ, Dev, Zara, Simone, Finn added (21 members total) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>7d2802a -
feat(clique): CLS Loop Router + OpenAI Realtime voice for Amandaβ
AIBRUH +1: Claude Sonnet 4.6- cls-loop-router: wave/listen/confirm/live state machine, A/B crossfade, 12-18s auto-rotation - CLSTile: dual video crossfade + CSS breathing fallback with shimmer scan - AgentTile: CLSRouterState prop, all agents always live-loop - use-amanda-voice: WebRTC hook, ephemeral token, greeting on connect, isSpeaking state - api/clique/realtime-token: Amanda CSA persona, shimmer voice, VAD config - api/clique/cls-generate: Runway Gen4 Turbo image_to_video for CLS loop generation - CliqueRoom: removed ALL window.speechSynthesis, Amanda speaks via OpenAI Realtime only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>f2c3447 -
feat: Clique becomes video conferencing with humans + AI (berylize positioning)β
AIBRUH +1: Claude Opus 4.8- Humans and AI agents share one room (our Zoom/Meet/Webex = 'Clique') - lib/clique-participants.ts: Human/Agent participant model, room codes, invite links - HumanTile + InviteModal components; mixed gallery in CliqueRoom - LiveKit token API route (Web Crypto HS256, no native deps) for real humans to join - Header reframed: 'Video Conferencing with AI - Real Time', live participant count, Invite - Landing hero: 'Video Conferencing, With AI' + berylize = the easy button - GUI mockup now shows humans (You/Tyronne) alongside agents - Commercial revised: berylize easy-button beat + 2nd human engineer joins the clique Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>4d153c3 -
feat: BERYL CLIQUE V1 β /clique room + QCR science + mobile camera + access grantsβ
AIBRUH +1: Claude Sonnet 4.6New /clique page with 10-member grid room, QCR personality science, mobile-safe camera via getUserMedia, Access panel (email/LinkedIn/phone), Call Me feature stub, rapport rings on agent tiles, Cleo (Minutes agent) added to roster. Nav Squad renamed to Clique everywhere. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>b1066a3
-
Remove openai/ffmpeg-static/fluent-ffmpeg packages β zero native dependenciesβ
AIBRUH +1: Claude Sonnet 4.6Replace openai SDK with native fetch() calls in omega and stitch routes. Remove ffmpeg-static and fluent-ffmpeg (local dev scripts only, never needed in production Docker build). Build is now zero native-binary dependencies, eliminating the pnpm build-script approval requirement permanently. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>f71fffa -
Add OMEGA cinematography director agent + studio nav confirmed + video optimizerβ
AIBRUH +1: Claude Sonnet 4.6OMEGA agent (/api/matinee/omega): - GPT-4o-powered Director of Photography with full OMEGA system prompt - Camera selection matrix: ARRI/RED/Sony mapped by genre - 3-layer enhancement: cinematography β production design β color grading - Film stock emulation: Kodak Vision3/Fujifilm ETERNA/ARRIRAW - Content routing: live_action / pixar / anime / scifi / noir - Returns finalPrompt fused from all 3 passes Pipeline wiring: - generate route: omegaEnhance() called before every scene generation - Vera realtime-token: updated with OMEGA awareness + genre param on generate_scene - Studio header: glowing β OMEGA badge always visible - Scene queuing: shows β OMEGA enhancing... status Video optimization: - scripts/optimize-video.mjs: ffmpeg-static CRF22 + faststart + 1280px - Runs offline; output replaces public/videos/matinee-hero.mp4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>ee8d220 -
Green Vera orb + Production Vault gallery + LinkedIn sharingβ
AIBRUH +1: Claude Sonnet 4.6- Vera orb fully green: orb core, rings, glow, name label, ambient bg - Gallery at /matinee/gallery: 3 view modes (Grid/Filmstrip/List) - HuggingFace Dataset backend for clip storage - LinkedIn share with pre-drafted post, marks clips as shared - Studio Save to Vault button + Gallery nav link - /api/matinee/gallery GET/POST/PATCH routes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>903f071 -
Vera scene builder + auto-stitch film assembly agentβ
AIBRUH +1: Claude Sonnet 4.6- Vera now calls generate_scene tool when a scene concept is clear enough to shoot She fills in shot type, lighting, color grade, camera movement automatically - generate_scene fires /api/matinee/generate, adds scene to strip in generating state, updates to ready with videoUrl when complete β all while Vera keeps talking - Vera calls request_stitch when filmmaker is ready to assemble the full film - /api/matinee/stitch: GPT-4o editorial intelligence designs scene order, cut types (hard cut / dissolve / smash cut / match cut / fade), pacing, master color grade, bridge clip prompts, and an editor note β Oscar-level assembly logic - Stitch result surfaces in Side B: color grade, pacing tempo, editorial note in green - Progress bar turns green during stitching; header shows scene-queuing label - Side B idle state now contextually guides: connect Vera β describe β she builds it Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>575c285 -
Add Vera voice director β GPT-4o Realtime orb in Matinee Studio Side Aβ
AIBRUH +1: Claude Sonnet 4.6- Vera: award-winning cinematographer persona powered by GPT-4o Realtime API (WebRTC) - Voice: shimmer β warm female, Her (2013) aesthetic - Animated red orb pulses to live audio amplitude via Web Audio API analyser - Orb shifts gold when Vera is speaking, breathing idle animation when offline - Click orb to connect/disconnect; auto VAD with whisper transcription - Live transcript scrolls below the orb (user + Vera turns) - /api/matinee/realtime-token: ephemeral token endpoint for WebRTC handshake Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>afc898b -
Add Matinee Studio β dual-sandbox GUI, Wan2.2-S2V pipeline, API routesβ
AIBRUH +1: Claude Sonnet 4.6- /matinee/studio: full dual-panel studio (Side A director chat, Side B film preview) - 4-tier video pipeline: Wan2.2-S2V free (up to 10 min, audio-driven) + Seedance 2.0/2.5 paid - API routes: /api/matinee/generate (Wan2.2-S2V + fal.ai), /api/matinee/screenplay, /api/matinee/chat - Settings panel shows model, max duration, and audio capability per tier - Global mobile/tablet responsive CSS added to globals.css - @fal-ai/client installed for Seedance paid tiers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>649d35c
-
Beryl Live Demo β full site for HuggingFace Space
AIBRUH47d5c5c