Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ starter scripts and manual rendering launchers have been retired.
validates and queues each video once. Script/runtime failures return diagnostics to
the same scoped chat, then retry with the original output settings, up to three
repairs. Cancellation, provider errors and newer user edits must stop recovery.
- Plan mode (`storyboard.py`, per-turn `mode`) writes only `storyboard.md` in the
project or video workspace: Studio restores any plan-turn change to `script.py` or
`narration.txt`, and `video_workflow.py` never validates or queues a plan turn.
Approval is the hidden `.storyboard.json` hash of the approved text, so any edit
returns it to draft; approving starts a Build turn that reads the file by path.
- The render queue is server-owned in `studio.py` (one render at a time, up to 20
waiting, ordered by `_seq`). Agent settings `queue_start` (`auto`/`manual`) and
`queue_on_error` (`fix`/`skip`/`pause`) drive it; `QUEUE_PAUSED` is `None` to
Expand All @@ -52,6 +57,22 @@ starter scripts and manual rendering launchers have been retired.
- Folder and ZIP imports use `/api/projects/import`, preserve nested assets and
create a new project transactionally. Reject traversal, duplicate Windows paths,
ZIP symlinks and packages over 512 MB / 2000 files; never install package requirements.
- House styles (`styles.py`) live in `DATA_ROOT/.studio/styles.json`; built-ins are
read-only. Projects and videos store only a `style` id (absent: parent, then default).
Studio writes `studio_style.py` beside `script.py` before renders and agent turns,
only when its text changes so render cache keys stay stable, and adds a short style
guide to the agent instructions.
- Watermarks (`watermark.py`): a global default in `.studio/watermark.json`, logos
rasterised into `.studio/watermark/logos/`, per-project/video overrides in metadata.
The worker overlays the final movie with PyAV (the bundled ffmpeg is audio-only)
after narration and the render-cache checkpoint, so the animation cache survives.
- Agent CLI updates (`agent_updates.py`) check the npm registry at most daily and run
only while no turn uses that provider; new turns wait and repairs retry. Only npm and
native installs are updated; custom binaries are reported as managed externally.
`MANIM_STUDIO_AGENT_UPDATES=0` disables the background check.
- Keep agent sessions lean: Claude runs with Studio's own tool list, no user MCP servers,
hooks, slash commands or CLAUDE.md; Codex gets feature/MCP `-c` overrides. Flags are
feature-detected per CLI binary, so unknown flags never break a run.
- Narration (`narration.py`) uses Kokoro-82M through `kokoro-onnx` and ONNX Runtime
on the CPU; do not add PyTorch. Model files download on demand into
`DATA_ROOT/.studio/models/kokoro` from pinned release URLs with SHA256 checks.
Expand Down
Loading
Loading