@docyrus/animaguru 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +63 -1
  2. package/dist/animaguru.js +581 -268
  3. package/package.json +1 -1
  4. package/skills/animaguru/SKILL.md +16 -0
  5. package/skills/animaguru/references/sharing.md +4 -1
  6. package/skills/animaguru-branching-story/SKILL.md +72 -0
  7. package/skills/animaguru-general-video/SKILL.md +1 -0
  8. package/skills/animaguru-general-video/references/branching-story.md +13 -0
  9. package/skills/animaguru-quiz/SKILL.md +80 -0
  10. package/skills/animaguru-video/SKILL.md +16 -2
  11. package/skills/animaguru-video/references/short-form-ad.md +1 -0
  12. package/templates/video/AGENTS.md +2 -0
  13. package/templates/video/README.md +8 -0
  14. package/templates/video/WORKSPACE-AGENTS.md +3 -1
  15. package/templates/video/index.html +1 -1
  16. package/templates/video/scripts/build.mjs +4 -1
  17. package/templates/video/scripts/export-mp4.mjs +5 -0
  18. package/templates/video/scripts/html-export.mjs +12 -4
  19. package/templates/video/scripts/project-context.mjs +20 -3
  20. package/templates/video/scripts/quiz.d.mts +31 -0
  21. package/templates/video/scripts/quiz.mjs +126 -0
  22. package/templates/video/scripts/review.mjs +9 -1
  23. package/templates/video/scripts/story.d.mts +36 -0
  24. package/templates/video/scripts/story.mjs +139 -0
  25. package/templates/video/scripts/workspace-plugin.mjs +9 -4
  26. package/templates/video/shared/locales/en/player.json +30 -1
  27. package/templates/video/src/kit/index.ts +1 -0
  28. package/templates/video/src/kit/story.ts +19 -0
  29. package/templates/video/src/main.ts +6 -1
  30. package/templates/video/src/player-types.ts +6 -0
  31. package/templates/video/src/player.ts +232 -21
  32. package/templates/video/src/quiz.ts +315 -0
  33. package/templates/video/src/story.ts +112 -0
  34. package/templates/video/src/style.css +93 -1
package/README.md CHANGED
@@ -379,6 +379,57 @@ New workspaces offer Explainer, Advertisement and General Video independently of
379
379
 
380
380
  Twenty original procedural 2.5D studies are bundled. In an untouched project, `npm run example -- risograph-print` installs a runnable study, with starter backups and refusal to replace an authored film. `npm run review` prints a local browser URL and saves text-bound checks, deterministic seek comparisons and frames to `production/review/`. Review moving playback and audio too. Physically rendered 3D is deferred.
381
381
 
382
+ ## Check a film's frames
383
+
384
+ After `npm run review`, `animaguru review check` (CLI 0.19.0) sends the five review frames, with the film's title, format and brief, to AnimaGuru's frame checker, Cloudflare's [Clef-omni](https://developers.cloudflare.com/workers-ai/models/clef-omni/). It returns each frame's probability of an empty frame, text or a logo cut off by the edge, overlapping text, broken letters and text too hard to read on a phone, plus a polish score from 0 (broken) to 3 (polished). Flagged frames come first, so an agent opens only those instead of every frame.
385
+
386
+ ```sh
387
+ animaguru review check --animation launch-ad --dry-run # the most it can cost
388
+ animaguru review check --animation launch-ad --yes
389
+ animaguru review check --animation launch-ad --source frames --questions checks.json --yes
390
+ ```
391
+
392
+ `--source frames` checks up to 12 full-size frames from `npm run frames -- --full --at TIMES`. `--questions` takes a JSON file of up to 16 more questions asked of every frame (`noul` yes/no, `choice` with `criteria` options, or `score` with ordered `criteria` levels). The full answers are saved to `production/review/check.json`. A check charges a fraction of a credit per frame to the linked project's workspace, or the selected workspace. The checker estimates probabilities; it does not judge motion, timing or taste.
393
+
394
+ ## Analyse a reference video
395
+
396
+ When someone shares a video they want remade for their own brand or story, `animaguru reference analyze` (CLI 0.19.0) sends it to Elorian's [Glimpse](https://elorian.ai/blog/introducing-glimpse), which watches and listens to it and returns a remake brief: format, story structure, style, palette, typography, motion and transitions, audio with a transcript, timed scenes, the original brand's elements to replace, and what makes it work.
397
+
398
+ ```sh
399
+ animaguru reference analyze rival-ad.mp4 --dry-run # the most it can hold
400
+ animaguru reference analyze rival-ad.mp4 --focus "the offer reveal" --yes
401
+ animaguru reference analyze https://cdn.example.com/ad.mp4 --no-wait --yes
402
+ animaguru reference get va_… --wait
403
+ ```
404
+
405
+ The video is a local MP4, MOV or WebM file up to 100 MB and ten minutes, or an HTTPS link to the video file itself. Pages on YouTube, Instagram or TikTok cannot be fetched; download the video you have the rights to use and pass the file. An analysis takes several minutes: about eight for a 6-second clip, because Glimpse inspects the frames with code over many steps. Inside a video project it is saved to `production/references/NAME.json`, elsewhere to `NAME.analysis.json` (or `--out FILE`). It is charged what it costs, about 22 to 36 credits for a 6-second clip in testing and more for a longer video, after holding 200 credits (300 with `--effort medium`, 500 with `xhigh`). MCP clients use `analyze_video` with a link and poll `get_video_analysis`.
406
+
407
+ ## Branching stories
408
+
409
+ CLI 0.20.0 makes branching stories: films whose viewers choose what happens next and reach one of several endings. A `story.json` beside the film's `film.config.json` lays its segments end to end on the timeline and says where each leads: to the viewer's choices, on to another segment, or to an ending.
410
+
411
+ ```sh
412
+ animaguru create animation lantern --story # a story.json over the starter film: one choice, two endings
413
+ npm run dev # play it; ?segment=ID starts at a segment
414
+ npm run review -- --animation lantern --headless # every segment, plus the story's playthroughs
415
+ animaguru submit --animation lantern --yes # uploads it as an interactive HTML5 film
416
+ ```
417
+
418
+ The player shows the choices over the picture, with an optional timer that takes a default, and an ending panel with Play again and Back to the last choice. A branching story plays as HTML5 only: `npm run export:mp4` refuses it, and the cloud Animator offers no MP4 of it. The `animaguru-branching-story` skill has the format.
419
+
420
+ ## Quizzes
421
+
422
+ CLI 0.20.0 also makes quiz films, for educational explainers, lessons and training: a `quiz.json` beside `film.config.json` pauses the film at checkpoints to ask one question or a quick round (for example after every scene), and asks a final quiz after its end, then shows the viewer's score. Questions have one right answer (multiple choice or true/false) or several (select all that apply), an optional explanation, and a pass mark for the final quiz; a wrong answer at a checkpoint offers Watch that part again.
423
+
424
+ ```sh
425
+ animaguru create animation moon-lesson --quiz # a quiz.json over the starter film: a checkpoint and a final quiz
426
+ npm run dev # play it and answer
427
+ npm run review -- --animation moon-lesson --headless # the film under the cards, plus the quiz's questions and notes
428
+ animaguru submit --animation moon-lesson --yes # uploads it; the video page plays the quiz
429
+ ```
430
+
431
+ The questions are HTML cards over the picture, so they play in HTML5: locally, in the exported ZIP and on AnimaGuru's video pages. A quiz film plays as HTML5 only, because its questions wait for a viewer's answers: `npm run export:mp4` refuses it, and the cloud Animator offers no MP4 of it. A quiz also works inside a branching story (`--story --quiz`). The `animaguru-quiz` skill has the format and how to write good questions.
432
+
382
433
  ## Motion library
383
434
 
384
435
  CLI 0.14.0 adds `animaguru motion`. Search ready-made motion design examples (PixiJS scenes built on the video film kit) by describing the motion, then install one into a film. Search uses natural language and keywords together; it needs `animaguru auth login` and spends no credits.
@@ -442,9 +493,10 @@ animaguru submit --yes # Builds and hosts HTML5; priv
442
493
  animaguru submit --share "alex@example.com" --yes # Private review for a verified account
443
494
  animaguru submit --file production/exports/film.mp4 --poster public/assets/cover.png --yes
444
495
  animaguru submit --file production/exports/film.zip --dry-run
496
+ animaguru submit --workspace team_… --yes # Keeps it in a team's shared library
445
497
  ```
446
498
 
447
- An optional positional directory selects the workspace; file and poster paths are relative to it. HTML5 exports upload the compiled animation and local media; source code, project instructions, credentials and generation receipts are not submitted. MP4 and AnimaGuru HTML5 ZIP are both supported. The CLI prints the video ID and full watch URL. Public HTML5 videos offer embed markup on the watch page; private sharing requires the selected AnimaGuru users to sign in.
499
+ An optional positional directory selects the workspace; file and poster paths are relative to it. The video is kept in the library of the workspace selected with `workspaces use`, or of the synced project's workspace; `--workspace personal` or `--workspace TEAM_ID` chooses another for one upload, and the server refuses one that differs from a synced project's. Personal libraries hold 2 GiB; a team's members share 10 GiB. HTML5 exports upload the compiled animation and local media; source code, project instructions, credentials and generation receipts are not submitted. MP4 and AnimaGuru HTML5 ZIP are both supported. The CLI prints the video ID and full watch URL. Public HTML5 videos offer embed markup on the watch page; private sharing requires the selected AnimaGuru users to sign in.
448
500
 
449
501
  MP4 subtitles: CLI 0.10.0 uploads an MP4's subtitles with it, and the AnimaGuru player shows them over the picture with a CC button to turn them off and a menu when there are several languages. The MP4 itself stays clean. With the default `--subtitles auto`, `submit --file FILM.mp4` adds `FILM.vtt` (or else `FILM.srt`), which `npm run export:mp4` writes beside it. `--subtitles FILE` chooses another `.vtt`/`.srt` file and `--subtitles none` skips them. The language comes from `--subtitle-language`, a WebVTT `Language:` header, the export receipt (`FILM.json`) or `film.config.json`. The file is checked before any video bytes are sent, and the dry run lists it. An MP4's width, height and duration now come from the MP4 itself and its default title from the export receipt, so another language's cut no longer takes the current `film.config.json` values. Burned-in `--burn-captions` exports have no subtitle files, so nothing is added. To add, replace or remove one language on an uploaded MP4:
450
502
 
@@ -460,6 +512,16 @@ To request public gallery publication, upload privately, open the video in My vi
460
512
 
461
513
  `videos list --scope mine|shared|public` lists films. Owners can edit metadata, change visibility and replace recipients on the website, or use `videos share VIDEO_ID --visibility private --share "alex@example.com" --yes`. `videos delete VIDEO_ID --yes` removes the film and files. Making a film private or removing a recipient revokes access to existing playback links.
462
514
 
515
+ CLI 0.20.0 lists and moves videos between libraries. `videos list` shows the selected workspace's library, the one `submit` uploads to; `--workspace personal` or `--workspace TEAM_ID` lists another. `videos move VIDEO_ID… --workspace TEAM_ID --yes` moves your own videos into a team you belong to, or back with `--workspace personal`:
516
+
517
+ ```sh
518
+ animaguru videos list --workspace personal
519
+ animaguru videos move vid_… vid_… --workspace team_… --yes
520
+ animaguru videos list --workspace team_…
521
+ ```
522
+
523
+ A moved video keeps its ID, watch and embed links, subtitles, recipients and review, and everyone in the team can watch it. The new library must have room for it. A video made from a project's animation stays with that project: transfer the project to the team on the website first, then move the video. Videos move one at a time; if one cannot move, the command stops, prints the IDs it moved and the ones it didn't, and exits with an error. Moving a video into the library it is already in changes nothing, so the same command can be run again.
524
+
463
525
  Uploads are divided into SHA-256 verified 8 MiB parts. Interrupted submissions print their video ID: inspect with `videos get VIDEO_ID`, retry a fully uploaded film with `videos complete VIDEO_ID`, or delete the unfinished draft before resubmitting. Completion is idempotent. HTML5 ZIPs allow 64 MiB compressed / 96 MiB expanded with 500 entries and 32 MiB per asset; MP4s allow 512 MiB; PNG/JPEG/WebP covers allow 2 MiB. Uploads are available to verified accounts with a 2 GiB video library allowance. Hosting does not run paid generation jobs.
464
526
 
465
527
  ## Upload directly to YouTube