96 Commits

Author SHA1 Message Date
7085ce8c36 feat: add CI workflow + document solo build status 2026-02-06 13:31:07 -06:00
Clawdberg
998cf45c1b fix: remove invalid image type check 2026-02-06 17:24:42 +00:00
Clawdberg
a031e80053 fix: handle video sources array correctly 2026-02-06 17:23:41 +00:00
Clawdberg
170210799f fix: transitions is a string enum, not an object 2026-02-06 17:21:42 +00:00
Clawdberg
07f49e96e2 fix: use colorGrade instead of colorGrading 2026-02-06 17:20:57 +00:00
Clawdberg
5861595719 fix: use correct branding properties (endCard, cta) 2026-02-06 17:20:03 +00:00
Clawdberg
90d9d4e299 fix: map watermark position to valid corner positions 2026-02-06 17:19:12 +00:00
Clawdberg
28ee50f800 fix: use watermark instead of watermarkUrl 2026-02-06 17:17:36 +00:00
Clawdberg
f36e2ea029 fix: use icon instead of avatarUrl for character sprites 2026-02-06 17:16:34 +00:00
Clawdberg
79c9933005 fix: map caption position to valid Remotion values 2026-02-06 17:07:30 +00:00
Clawdberg
05ee1810b0 fix: update caption config to match new type structure 2026-02-06 17:05:53 +00:00
Clawdberg
743c5759d2 fix: use gradient instead of colors property 2026-02-06 17:04:45 +00:00
Clawdberg
a7bd732b02 fix: use valid BackgroundType enum values 2026-02-06 17:03:59 +00:00
Clawdberg
c03f55149f fix: use correct path visuals.background.opacity 2026-02-06 17:03:01 +00:00
Clawdberg
5975765ad6 fix: correct import path for VoicePreset type 2026-02-06 17:01:11 +00:00
Clawdberg
22762c6889 fix: use const for backgroundOpacity (ESLint prefer-const) 2026-02-06 17:00:10 +00:00
Kai
c96f3280e2 feat: add demo GIF, fix pipeline detail page, update README 2026-02-03 10:58:03 +02:00
Chora
7d63c0c74c feat: add one-shot /api/generate endpoint
Convenience endpoint for demos:
- POST /api/generate with topic + optional templateId
- Runs research → script → voice → editor in sequence
- Returns video URL and metadata in single response
- Supports dryRun mode for testing without API keys
- Validates duration (15s-3min)

Example:
POST /api/generate
{ "topic": "Why cats rule", "templateId": "duo-explainer", "dryRun": true }

7 new tests, 323 total passing.
2026-02-02 20:33:14 -06:00
Chora
7dfa344e12 docs: update README with template system overview
- Updated test count badge (316 passing)
- Added Template System section with examples
- Documented 6 template categories
- Added curl example for template-based pipeline creation
2026-02-02 20:32:13 -06:00
Chora
a89ec65e93 feat: add template-aware script generation
Script stage now supports:
- Format types: monologue, dialog, story, listicle, debate
- Character dialog with speaker assignments
- Template-based pacing (words per minute)
- Custom hook styles and CTA text
- Format-specific LLM prompts

Example: dialog format with 2 characters generates alternating
speaker lines with personality-appropriate content.
2026-02-02 20:31:39 -06:00
Chora
da533e67ad feat: integrate templates into editor stage
Editor stage now:
- Accepts templateId or template config from pipeline metadata
- Converts template to Remotion props
- Selects appropriate Remotion composition based on template style
- Includes template info in render metadata

This completes the flow:
template selection → pipeline creation → stage execution → video render
2026-02-02 20:03:31 -06:00
Chora
d0a31c97d6 feat: add template to Remotion props converter
- templateToRemotionProps(): converts VideoTemplate → Remotion props
- getBackgroundUrl(): extracts background URL from visuals config
- calculateDurationInFrames(): calculates video length from script

This bridges the template system with the Remotion rendering layer,
allowing pipelines to go from template selection → rendered video.
2026-02-02 20:02:26 -06:00
Chora
ae83b817d9 feat: add preset template compositions
Root.tsx now includes:
- TemplateVideo: generic template-based composition
- RedditMinecraft: viral reddit story + gameplay preset
- BedtimeStory: cozy children's story preset
- DialogExplainer: character dialog preset

Each composition has sensible defaults demonstrating the style.
Agents can render these directly or pass custom props.
2026-02-02 20:01:42 -06:00
Chora
eecb66809e feat: add TemplateVideo Remotion component
Advanced video rendering component supporting:
- Multiple visual styles (gameplay, broll, gradient, static)
- Caption styles (bold, subtle, karaoke, speech-bubble)
- Word-by-word caption animation
- Character dialog mode with speech bubbles
- Color grading (warmth, saturation, vignette)
- Watermark support
- End card with CTA

This component reads template config and renders accordingly,
enabling the same pipeline to produce wildly different videos
based on template selection.
2026-02-02 20:00:20 -06:00
Chora
f9c14c33df feat: integrate templates with pipeline creation
- POST /api/pipelines now accepts templateId + customization
- Added createPipelineWithTemplate() function
- Template config stored in pipeline.metadata
- Stage inputs pre-populated from template config
- Schema: added templateId and metadata fields to Pipeline

Usage:
POST /api/pipelines
{
  "topic": "Why cats rule",
  "templateId": "reddit-minecraft",
  "customization": {
    "voice": { "narrator": { "speed": 1.2 } }
  }
}
2026-02-02 19:56:44 -06:00
Chora
831ceeb2aa feat: add template API routes with tests
- GET /api/templates - list templates with filtering
- GET /api/templates/[id] - get full template by ID
- GET /api/templates/presets - list available presets

Query params:
- category: filter by template category
- platform: filter by platform support
- search: search by name/description/tags

9 new tests added, 316 total passing.
2026-02-02 19:54:45 -06:00
Chora
b1cb847b59 feat: add modular video template system
Major new feature: customizable video templates for diverse content styles.

## Template System Architecture
- Templates combine voice, visuals, audio, and layout presets
- Each layer is independently customizable
- Zod schemas for full type safety and validation

## Voice Presets (15+)
- Narrator styles: professional, energetic, calm, dramatic, scary
- Character dialog: duo-funny, interview, debate
- Story modes: bedtime, horror, adventure, reddit
- Effects: robot, radio, telephone, reverb

## Visual Presets (15+)
- Gameplay backgrounds: minecraft, subway-surfers, satisfying-clips
- Character dialog: simple, with-gameplay
- B-roll: auto, tech, nature
- Story: cozy, horror
- Social: reddit-header, meme
- News: headlines, lower-thirds, source citations

## Audio Presets (15+)
- Moods: energetic, calm, lofi, dramatic, scary, funny
- Ambient: rain, forest, wind, cafe
- SFX: auto-add, meme sounds, cartoon effects

## Layout Presets (12+)
- Platform-specific: tiktok, youtube-shorts, instagram-reels, youtube
- Caption styles: bold, subtle, karaoke, storybook
- Branding options: watermark, end cards, CTAs

## Complete Templates (15+)
Ready-to-use templates covering:
- Educational: explainer-pro, tech-explainer, psa-informative
- Entertainment: reddit-minecraft, reddit-subway-surfers, satisfying-facts
- Character dialog: duo-explainer, debate
- Story: bedtime-story, horror-story, adventure-story
- News: breaking-news
- Meme: meme-format
- Tutorial: quick-tutorial
- Minimal: minimal-quote

## Documentation
- Full architecture docs in docs/TEMPLATE_SYSTEM.md
- API design for template-based pipeline creation
- Guidance on content types and customization

This enables Cutroom to serve:
- Meme creators (character convos + gameplay)
- Educators (clean explainers)
- Storytellers (bedtime, horror)
- Brands (professional with branding)
- News (fast updates)
- And more...
2026-02-02 19:53:51 -06:00
Chora
aa1d9c4f95 chore: add dotenv dependency for scripts 2026-02-02 19:36:58 -06:00
Chora
5a537344cb fix: add @remotion/bundler dep and ESM compat for render script
- Added @remotion/bundler to dependencies
- Fixed __dirname for ESM compatibility in render-video.ts
- Video rendering now works: tested with demo data, produces valid MP4
2026-02-02 19:36:24 -06:00
575e62a902 fix: update test mocks to match route expectations
- Fixed activity route test: add createdAt field, use mockImplementation for stage.findMany
- Fixed agent route test: add nested stage object to attributions mock
- Fixed progress route test: add nested stage object to attributions mock

All 307 tests now passing.
2026-02-02 19:29:55 -06:00
f86e7dff0d feat: OpenAI integration for research + script stages
Cherry-picked from PR #42 by Kai/Reloded:
- Real OpenAI gpt-4o-mini integration for research stage
- Real OpenAI integration for script stage
- dryRun support for voice and visual stages
- STAGES.md documentation
- Updated README with Kai as contributor

Note: CI workflow excluded due to GitHub App permission constraints.
Will need to be added by hackathon org or via manual PR.
2026-02-02 19:26:53 -06:00
root
cddd1804a0 fix: TypeScript errors - remove non-existent schema fields 2026-02-02 11:51:09 +00:00
openwork-hackathon[bot]
d3ea299cff feat: add deployed CUTROOM token address (#38)
Token: 0x8ed4B9DE0F0aFe826c88FE0aeE484Df71D46aB07
Clanker: https://www.clanker.world/clanker/0x8ed4B9DE0F0aFe826c88FE0aeE484Df71D46aB07

Deployed via BankrBot Clanker integration.
Closes #20

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 12:23:44 +02:00
openwork-hackathon[bot]
629e4e9239 feat: add activity feed endpoint (#37)
- Real-time activity feed for dashboards
- Pipeline creations, stage claims/completions
- Type filtering (pipeline, stage, all)
- Relative time display
- Sorted by timestamp desc

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 08:22:45 +00:00
openwork-hackathon[bot]
3fef767ce2 feat: add pipeline progress endpoint (#36)
- Real-time pipeline progress tracking
- Stage-by-stage status with agent assignments
- Completion percentage and ETA
- Contributor list with contributions
- Time estimates per stage

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 08:05:22 +00:00
openwork-hackathon[bot]
45d967cc22 feat: add batch stage claim endpoint (#35)
- Claim multiple stages in single request
- Max 10 stages per batch
- Partial success handling (some fail, others succeed)
- Validates stage availability and pipeline status
- Returns detailed results per stage

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 08:03:28 +00:00
openwork-hackathon[bot]
562301753a feat: add leaderboard endpoint (#34)
- Ranked list of agents by contribution
- Timeframe filtering (day, week, month, all)
- Stage breakdown per agent
- Achievement badges (Century Club, Versatile, etc)
- Meta stats (total agents, contributions)

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 07:55:22 +00:00
openwork-hackathon[bot]
6564f06aaf feat: add demo seed endpoint (#33)
- Creates sample pipelines for testing and demos
- 5 pre-defined AI/agent topics
- Configurable count (1-5 pipelines)
- Optional clearExisting flag to reset
- GET endpoint shows available topics

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 07:55:20 +00:00
openwork-hackathon[bot]
0e36558f95 feat: add OpenAPI documentation endpoint (#32)
- Returns OpenAPI 3.0.3 spec for all API endpoints
- Documents pipelines, stages, agents, and stats APIs
- Includes component schemas for Pipeline and Stage
- CORS enabled for cross-origin access
- Useful for agent-to-agent integration

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 07:55:18 +00:00
openwork-hackathon[bot]
84953185c0 feat: add agent detail endpoint GET /api/agents/:id (#31)
- Returns detailed stats for a specific agent
- Shows completed stages with breakdown by type
- Calculates pending rewards (unclaimed contributions)
- Includes recent work history and attribution records
- Adds comprehensive test coverage (6 tests)

[Backend] Kai

Co-authored-by: Kai <kai@openclaw.ai>
2026-02-02 07:55:06 +00:00
daff7910c0 docs: update test count badge to 256 2026-02-02 01:53:03 -06:00
792637c226 feat: add event emitter for internal pub/sub
src/lib/events/index.ts:
- EventEmitter class with on/once/off/emit
- Async handler support
- Subscription management
- Global eventBus instance
- EVENTS constants for pipeline/stage/agent events

18 tests added. Tests now: 256 passing
2026-02-02 01:52:52 -06:00
openwork-hackathon[bot]
6c236f3b11 chore: update HEARTBEAT.md to v1.5.1 2026-02-02 07:39:46 +00:00
openwork-hackathon[bot]
82be49a0d0 chore: update SKILL.md to v1.5.1 2026-02-02 07:39:44 +00:00
openwork-hackathon[bot]
ce82ef4f9f chore: update HEARTBEAT.md to v1.5.0 2026-02-02 07:35:27 +00:00
openwork-hackathon[bot]
e8f61f3d95 chore: update SKILL.md to v1.5.0 2026-02-02 07:35:26 +00:00
c6d1d6bc89 docs: update test count badge to 238 2026-02-02 01:22:53 -06:00
1f478f0f83 feat: add validation utilities with Zod schemas
src/lib/validation/index.ts:
- Common schemas: id, cuid, stage names, statuses
- Agent and pagination schemas
- URL, percentage, wallet address validation
- validate() and validateOrThrow() helpers

24 tests added. Tests now: 238 passing
2026-02-02 01:22:42 -06:00
6eb9f2c631 docs: update test count badge to 214 2026-02-02 00:52:47 -06:00
349c9aa67f feat: add logger utilities
src/lib/logger/index.ts:
- Leveled logging (debug, info, warn, error)
- Structured output with timestamps
- createLogger() for child loggers with preset context
- logPipeline() and logStage() helpers

11 tests added. Tests now: 214 passing
2026-02-02 00:52:34 -06:00