Commit Graph

1191 Commits

Author SHA1 Message Date
Luis Esteban Acevedo Ladino 92caa27d7c feat: add theme system with swappable palettes and rebrand to NeuralCut
- Add multi-palette theme system using CSS custom properties via data-palette attribute
- Create NeuralCut palette (rose/pink accent #F55385, dark charcoal #1B212B) as default
- Preserve Classic (OpenCut blue) palette as selectable alternative
- Add PaletteSelector component with dark/light toggle and palette picker
- Migrate export button hardcoded colors to theme tokens
- Rebrand all user-visible OpenCut references to NeuralCut across UI
- Update package names and turbo filters for new identity
2026-04-29 12:57:27 -05:00
Luis Esteban Acevedo Ladino effdc28237 feat: add agent skills system with list_skills and load_skill tools
Adds a skill discovery and loading system that lets the LLM agent
autonomously find and follow pre-built editing recipes. Skills are
exposed as two new tools: list_skills (search/discover) and load_skill
(get full instructions).

Built-in skills:
- viral-short: high-retention TikTok/Reels/Shorts workflow with hook,
  retention cuts, zoom effects, captions, and CTA
- pitch-video: professional pitch/explainer with 5-act structure
  (opening, problem, solution, metrics, CTA)
2026-04-28 08:40:37 -05:00
Luis Esteban Acevedo Ladino bf354642ba feat: add permission modes (ask/skip) for agent tool execution 2026-04-27 12:28:21 -05:00
Luis Esteban Acevedo Ladino 25e970f1ae feat: unify tool call/result into single card with status indicator 2026-04-27 12:19:24 -05:00
Luis Esteban Acevedo Ladino 1daba0e9ea feat: add 23 new video effects across 5 categories
Implement color (hue rotate, temperature, tint, posterize, duotone, cross process),
distortion (pixelate, chromatic aberration, glitch, wave, mirror, kaleidoscope, fisheye),
light (sharpen, glow, exposure, shadows/highlights), edge (detection, emboss), and
style (film grain, halftone, scanlines, color key) effects as WGSL shaders with Rust
pack functions and TypeScript definitions.
2026-04-27 09:12:06 -05:00
Luis Esteban Acevedo Ladino 4ad40dc639 feat: add keyframe/animation tools for agent (list, upsert, remove, curve edit) 2026-04-26 19:29:48 -05:00
Luis Esteban Acevedo Ladino f474a87267 feat: add redo, toggle track mute/visibility, and trim support
- redo: re-applies the last undone action via core.command.redo()
- toggle_track_mute: toggles mute on video/audio tracks via
  ToggleTrackMuteCommand
- toggle_track_visibility: toggles visibility on overlay tracks via
  ToggleTrackVisibilityCommand
- update_clip now supports trimStart/trimEnd for slip-trimming clips
  without moving them on the timeline
2026-04-26 19:02:39 -05:00
Luis Esteban Acevedo Ladino 28b825267f feat: add undo, duplicate_elements tools and enrich list_timeline hints
- undo: reverts the last editing action via core.command.undo()
- duplicate_elements: duplicates elements onto new tracks using
  DuplicateElementsCommand
- list_timeline now includes hasMask, hasEffects, and isHidden hints
  on elements so the agent can identify clips needing deeper inspection
2026-04-26 18:54:36 -05:00
Luis Esteban Acevedo Ladino b48062a5f7 feat: add get_element and update_clip agent tools
Add two new agent tools for deep element inspection and property mutation:

- get_element: returns full type-specific metadata for any timeline element
  (video, image, text, graphic, sticker, audio, effect)
- update_clip: mutates any visual property on an element including masks,
  opacity, transform, blendMode, hidden, volume, muted, and name

Masks are handled as a nested property with add/update/remove actions,
aligned with the data model where masks are properties of elements rather
than standalone timeline entities.
2026-04-26 18:11:21 -05:00
Luis Esteban Acevedo Ladino 9775f6f30c feat: add update_effect tool for modifying existing effect params 2026-04-26 17:03:55 -05:00
Luis Esteban Acevedo Ladino 277321628c fix: apply_effect creates standalone effect elements on effect tracks
Instead of adding inline effects to existing clips (which didn't show
in the timeline), apply_effect now creates EffectElement items on
effect tracks via InsertElementCommand — matching the drag-and-drop
behavior from the effects panel.
2026-04-26 16:47:01 -05:00
Luis Esteban Acevedo Ladino 2e32740698 feat: add agent effect tools (list, get, apply) 2026-04-26 16:19:32 -05:00
Luis Esteban Acevedo Ladino a8297c6eae feat: add saturation, sepia, invert, and vignette effects 2026-04-26 15:48:15 -05:00
Luis Esteban Acevedo Ladino ab9119f163 feat: refactor EffectPipeline to generic shader registry + add brightness/contrast and grayscale effects 2026-04-26 15:45:48 -05:00
Luis Esteban Acevedo Ladino 490b8011e9 big things 2026-04-25 11:35:34 -05:00
Luis Esteban Acevedo Ladino 773e637fa6 feat: add agent timeline placement tools 2026-04-25 07:59:38 -05:00
Luis Esteban Acevedo Ladino 1762661309 feat: add agent delete tool 2026-04-24 21:04:42 -05:00
Luis Esteban Acevedo Ladino 7c19c72058 feat: replace raw JSON tool display with collapsible summary cards in chat UI 2026-04-24 20:48:58 -05:00
Luis Esteban Acevedo Ladino 4c5e151822 ft: add agent split tool 2026-04-24 20:10:12 -05:00
Luis Esteban Acevedo Ladino 59e40e9047 fix: retry transient Gemini failures 2026-04-24 14:51:38 -05:00
Luis Esteban Acevedo Ladino 1ac3d49562 ft: load context 2026-04-24 14:45:41 -05:00
Luis Esteban Acevedo Ladino 99ed16854b feat: add timeline listing tool 2026-04-24 10:34:22 -05:00
Luis Esteban Acevedo Ladino 37ca2fbc66 feat: add project assets listing tool 2026-04-24 10:14:54 -05:00
Luis Esteban Acevedo Ladino 17eaaaf73e feat: add native gemini provider 2026-04-24 07:25:04 -05:00
Luis Esteban Acevedo Ladino 558b9e1186 feat: add provider-agnostic llm agent core 2026-04-23 18:55:30 -05:00
Luis Esteban Acevedo Ladino e2d1cc8f34 feat: add transcribe video tool flow 2026-04-23 10:14:05 -05:00
Luis Esteban Acevedo Ladino a93c45586b feat: add conversational agent infrastructure shell 2026-04-23 07:52:25 -05:00
Maze Winther 4f7dc5ee3a fix: remap split-element keybinding to split 2026-04-15 03:57:51 +02:00
Maze Winther 4e8b7d3745 fix: skip unknown actions in keyboard shortcuts help 2026-04-15 03:47:57 +02:00
Maze Winther e10b0a3355 tests: remove 2026-04-15 02:44:52 +02:00
Maze Winther 3914ea9b71 fix: show changelog notice when stored version is missing or older 2026-04-15 02:13:42 +02:00
Maze Winther 370944f443 feat: new-release notice and colocate changelog under domain 2026-04-15 02:05:41 +02:00
Maze Winther c839db9234 fix: remove redundant "opencut" prefix from storage key 2026-04-15 01:50:30 +02:00
Maze Winther 769a7e708a changelog: another accuracy fix 2026-04-15 01:02:12 +02:00
Maze Winther 1fa5442f21 chore: remove debugging throughout codebase 2026-04-15 01:00:05 +02:00
Maze Winther dc0a8e7c96 feat: graph editor supports multiple properties at once 2026-04-15 00:59:54 +02:00
Maze Winther eca13e3e71 changelog: update to be more accurate 2026-04-15 00:40:22 +02:00
Maze Winther 1943a4d18f feat: changelog now supports markdown within entries 2026-04-15 00:33:59 +02:00
Maze Winther 3eccc2f9e3 fix: copy to markdown formatting 2026-04-15 00:29:04 +02:00
Maze Winther 368a20ddc2 changelog: fix date 2026-04-15 00:26:12 +02:00
Maze Winther 64588ceeea docs: fill in v0.3.0 technical changelog entries 2026-04-15 00:22:20 +02:00
Maze Winther 8fe66090e7 feat: add support for technical details in changelog entries 2026-04-14 23:55:20 +02:00
Maze Winther 91e1232112 feat: transcription diagnostics 2026-04-14 23:34:57 +02:00
Maze Winther 78a0a27a72 feat: editor feedback 2026-04-14 21:45:11 +02:00
Maze Winther 8d82ea9c0b feat: draft persistence on Form via persistKey 2026-04-14 19:13:06 +02:00
Maze Winther 6aa4ffe462 style: export button icon size 2026-04-14 18:38:59 +02:00
Maze Winther 8a54e5d884 test: remove keyframe query 2026-04-14 18:34:33 +02:00
Maze Winther 5e6c26f3c1 fix: keyframe removal state 2026-04-14 18:32:07 +02:00
Maze Winther 520c0b3264 chore: remove unused import 2026-04-14 18:30:34 +02:00
Maze Winther 607eaeacc7 fix: timeline element resizing 2026-04-14 18:29:23 +02:00