Skip to content

[Feature] Video generation tool with Remotion preview in chat UI#841

Open
CREDO23 wants to merge 34 commits intoMODSetter:devfrom
CREDO23:sur-178-feature-video-tool-preview-in-chat-ui
Open

[Feature] Video generation tool with Remotion preview in chat UI#841
CREDO23 wants to merge 34 commits intoMODSetter:devfrom
CREDO23:sur-178-feature-video-tool-preview-in-chat-ui

Conversation

@CREDO23
Copy link
Contributor

@CREDO23 CREDO23 commented Feb 27, 2026

Description

  • Add video tool with remotion with preview in chat UI

Change Type

  • Bug fix
  • New feature
  • Performance improvement
  • Refactoring
  • Documentation
  • Dependency/Build system
  • Breaking change
  • Other (specify):

Testing Performed

  • Tested locally
  • Manual/QA verification

Checklist

  • Follows project coding standards and conventions
  • Documentation updated as needed
  • Dependencies updated as needed
  • No lint/build errors or new warnings
  • All relevant tests are passing

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_id field to search spaces for dedicated video code generation models.

⏱️ Estimated Review Time: 1-3 hours

💡 Review Order Suggestion
Order File Path
1 surfsense_backend/alembic/versions/102_add_video_llm_id_to_search_space.py
2 surfsense_backend/app/db.py
3 surfsense_backend/app/schemas/new_llm_config.py
4 surfsense_web/contracts/types/new-llm-config.types.ts
5 surfsense_backend/app/services/llm_service.py
6 surfsense_backend/app/utils/content_utils.py
7 surfsense_backend/app/agents/new_chat/tools/video/prompts/remotion.py
8 surfsense_backend/app/agents/new_chat/tools/video/prompts/skills.py
9 surfsense_backend/app/agents/new_chat/tools/video/skills/skills.py
10 surfsense_backend/app/agents/new_chat/tools/video/skills/3d.md
11 surfsense_backend/app/agents/new_chat/tools/video/skills/charts.md
12 surfsense_backend/app/agents/new_chat/tools/video/skills/typography.md
13 surfsense_backend/app/agents/new_chat/tools/video/skills/messaging.md
14 surfsense_backend/app/agents/new_chat/tools/video/skills/social-media.md
15 surfsense_backend/app/agents/new_chat/tools/video/skills/sequencing.md
16 surfsense_backend/app/agents/new_chat/tools/video/skills/spring-physics.md
17 surfsense_backend/app/agents/new_chat/tools/video/skills/transitions.md
18 surfsense_backend/app/agents/new_chat/tools/video/generate_video.py
19 surfsense_backend/app/services/video_service.py
20 surfsense_backend/app/routes/video_routes.py
21 surfsense_backend/app/agents/new_chat/tools/video/__init__.py
22 surfsense_backend/app/agents/new_chat/tools/video/prompts/__init__.py
23 surfsense_backend/app/agents/new_chat/tools/__init__.py
24 surfsense_backend/app/agents/new_chat/tools/registry.py
25 surfsense_backend/app/agents/new_chat/system_prompt.py
26 surfsense_backend/app/agents/new_chat/chat_deepagent.py
27 surfsense_backend/app/agents/new_chat/tools/report.py
28 surfsense_backend/app/routes/reports_routes.py
29 surfsense_backend/app/routes/__init__.py
30 surfsense_backend/app/routes/search_spaces_routes.py
31 surfsense_backend/app/tasks/chat/stream_new_chat.py
32 surfsense_web/app/remotion/compiler.ts
33 surfsense_web/app/remotion/DynamicComp.tsx
34 surfsense_web/app/remotion/Root.tsx
35 surfsense_web/app/remotion/index.ts
36 surfsense_web/app/remotion/webpack-override.mjs
37 surfsense_web/components/tool-ui/generate-video/types.ts
38 surfsense_web/components/tool-ui/generate-video/api.ts
39 surfsense_web/components/tool-ui/generate-video/hooks/useVideoLifecycle.ts
40 surfsense_web/components/tool-ui/generate-video/components/VideoLoadingState.tsx
41 surfsense_web/components/tool-ui/generate-video/components/VideoErrorState.tsx
42 surfsense_web/components/tool-ui/generate-video/index.tsx
43 surfsense_web/components/tool-ui/video/video-preview.tsx
44 surfsense_web/components/tool-ui/index.ts
45 surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
46 surfsense_web/components/public-chat/public-chat-view.tsx
47 surfsense_web/components/settings/llm-role-manager.tsx
48 surfsense_web/package.json
49 surfsense_backend/app/agents/new_chat/tools/video/skills/__init__.py

Need help? Join our Discord

Analyze latest changes

@vercel
Copy link

vercel bot commented Feb 27, 2026

@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.

@CREDO23 CREDO23 changed the title Sur 178 feature video tool preview in chat UI [Feature] Video generation tool with Remotion preview in chat UI Feb 27, 2026
Copy link

@recurseml recurseml bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant