[Feature] Video generation tool with Remotion preview in chat UI#841
[Feature] Video generation tool with Remotion preview in chat UI#841CREDO23 wants to merge 34 commits intoMODSetter:devfrom
Conversation
…, reset on code change
…meError anti-pattern
|
@CREDO23 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Review by RecurseML
🔍 Review performed on 1e4b8d3..8052175
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (49)
• surfsense_backend/alembic/versions/102_add_video_llm_id_to_search_space.py
• surfsense_backend/app/agents/new_chat/chat_deepagent.py
• surfsense_backend/app/agents/new_chat/system_prompt.py
• surfsense_backend/app/agents/new_chat/tools/__init__.py
• surfsense_backend/app/agents/new_chat/tools/registry.py
• surfsense_backend/app/agents/new_chat/tools/report.py
• surfsense_backend/app/agents/new_chat/tools/video/__init__.py
• surfsense_backend/app/agents/new_chat/tools/video/generate_video.py
• surfsense_backend/app/agents/new_chat/tools/video/prompts/__init__.py
• surfsense_backend/app/agents/new_chat/tools/video/prompts/remotion.py
• surfsense_backend/app/agents/new_chat/tools/video/prompts/skills.py
• surfsense_backend/app/agents/new_chat/tools/video/skills/3d.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/__init__.py
• surfsense_backend/app/agents/new_chat/tools/video/skills/charts.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/messaging.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/sequencing.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/skills.py
• surfsense_backend/app/agents/new_chat/tools/video/skills/social-media.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/spring-physics.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/transitions.md
• surfsense_backend/app/agents/new_chat/tools/video/skills/typography.md
• surfsense_backend/app/db.py
• surfsense_backend/app/routes/__init__.py
• surfsense_backend/app/routes/reports_routes.py
• surfsense_backend/app/routes/search_spaces_routes.py
• surfsense_backend/app/routes/video_routes.py
• surfsense_backend/app/schemas/new_llm_config.py
• surfsense_backend/app/services/llm_service.py
• surfsense_backend/app/services/video_service.py
• surfsense_backend/app/tasks/chat/stream_new_chat.py
• surfsense_backend/app/utils/content_utils.py
• surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
• surfsense_web/app/remotion/DynamicComp.tsx
• surfsense_web/app/remotion/Root.tsx
• surfsense_web/app/remotion/compiler.ts
• surfsense_web/app/remotion/index.ts
• surfsense_web/app/remotion/webpack-override.mjs
• surfsense_web/components/public-chat/public-chat-view.tsx
• surfsense_web/components/settings/llm-role-manager.tsx
• surfsense_web/components/tool-ui/generate-video/api.ts
• surfsense_web/components/tool-ui/generate-video/components/VideoErrorState.tsx
• surfsense_web/components/tool-ui/generate-video/components/VideoLoadingState.tsx
• surfsense_web/components/tool-ui/generate-video/hooks/useVideoLifecycle.ts
• surfsense_web/components/tool-ui/generate-video/index.tsx
• surfsense_web/components/tool-ui/generate-video/types.ts
• surfsense_web/components/tool-ui/index.ts
• surfsense_web/components/tool-ui/video/video-preview.tsx
• surfsense_web/contracts/types/new-llm-config.types.ts
• surfsense_web/package.json
⏭️ Files skipped (1)
| Locations |
|---|
surfsense_web/pnpm-lock.yaml |
Description
Change Type
Testing Performed
Checklist
High-level PR Summary
This PR adds a new video generation tool that allows the chat agent to create animated Remotion video components from conversation content. The implementation includes both backend LLM-based code generation with skill-specific guidance (for charts, typography, 3D animations, etc.) and frontend React component compilation with live preview. The feature integrates with the existing LLM configuration system, adding a new
video_llm_idfield to search spaces for dedicated video code generation models.⏱️ Estimated Review Time: 1-3 hours
💡 Review Order Suggestion
surfsense_backend/alembic/versions/102_add_video_llm_id_to_search_space.pysurfsense_backend/app/db.pysurfsense_backend/app/schemas/new_llm_config.pysurfsense_web/contracts/types/new-llm-config.types.tssurfsense_backend/app/services/llm_service.pysurfsense_backend/app/utils/content_utils.pysurfsense_backend/app/agents/new_chat/tools/video/prompts/remotion.pysurfsense_backend/app/agents/new_chat/tools/video/prompts/skills.pysurfsense_backend/app/agents/new_chat/tools/video/skills/skills.pysurfsense_backend/app/agents/new_chat/tools/video/skills/3d.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/charts.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/typography.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/messaging.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/social-media.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/sequencing.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/spring-physics.mdsurfsense_backend/app/agents/new_chat/tools/video/skills/transitions.mdsurfsense_backend/app/agents/new_chat/tools/video/generate_video.pysurfsense_backend/app/services/video_service.pysurfsense_backend/app/routes/video_routes.pysurfsense_backend/app/agents/new_chat/tools/video/__init__.pysurfsense_backend/app/agents/new_chat/tools/video/prompts/__init__.pysurfsense_backend/app/agents/new_chat/tools/__init__.pysurfsense_backend/app/agents/new_chat/tools/registry.pysurfsense_backend/app/agents/new_chat/system_prompt.pysurfsense_backend/app/agents/new_chat/chat_deepagent.pysurfsense_backend/app/agents/new_chat/tools/report.pysurfsense_backend/app/routes/reports_routes.pysurfsense_backend/app/routes/__init__.pysurfsense_backend/app/routes/search_spaces_routes.pysurfsense_backend/app/tasks/chat/stream_new_chat.pysurfsense_web/app/remotion/compiler.tssurfsense_web/app/remotion/DynamicComp.tsxsurfsense_web/app/remotion/Root.tsxsurfsense_web/app/remotion/index.tssurfsense_web/app/remotion/webpack-override.mjssurfsense_web/components/tool-ui/generate-video/types.tssurfsense_web/components/tool-ui/generate-video/api.tssurfsense_web/components/tool-ui/generate-video/hooks/useVideoLifecycle.tssurfsense_web/components/tool-ui/generate-video/components/VideoLoadingState.tsxsurfsense_web/components/tool-ui/generate-video/components/VideoErrorState.tsxsurfsense_web/components/tool-ui/generate-video/index.tsxsurfsense_web/components/tool-ui/video/video-preview.tsxsurfsense_web/components/tool-ui/index.tssurfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsxsurfsense_web/components/public-chat/public-chat-view.tsxsurfsense_web/components/settings/llm-role-manager.tsxsurfsense_web/package.jsonsurfsense_backend/app/agents/new_chat/tools/video/skills/__init__.py