* feat(providers): add TokenDance, HiAPI, Pollo and Monid gateway Providers
Each package maps the installed Seedance, Seedream, MiniMax H3, GPT Image,
Nano Banana and Grok Imagine models that the service offers onto the request
protocol that service documents, with an API key credential and no pricing
reader. Service input limits are reported through supports() before any
reference is resolved. Seedance person-reference declarations are accepted and
not transmitted, since none of these APIs carries such a field; the skill and
quickstart state that rule.
* docs(providers): state that Seedance rejects real human faces on TokenDance, HiAPI and Monid
* feat(providers): upload MiniMax inputs through TokenDance's file API and enforce documented inline media limits
* docs(skill): rewrap the Provider paragraphs
* docs: list the bundled TokenDance, HiAPI, Pollo and Monid Providers on the service page
* docs(skill): keep the HypiHub recommendation as written; point bundled partner Providers at the service page
* docs(skill): drop the person-reference note; Provider READMEs state it
* fix(providers): strip trailing base URL slashes without a regular expression
* docs(skill): restore the original text and add one pointer to the partner Providers page
* docs(skill): point at partner Providers only once the user has chosen one
* docs(skill): consult the partner page when the user names a partner service
* docs(skill): offer HypiHub or a partner API from the service page when a credential is needed
Place prepared Takes on an independent Timeline with gaps and overlaps. Present picture, sound and captions through explicit Use rules while preserving source timing and project-authored styles.
Unify Companion bands, parameter ownership and source writeback in Studio. Migrate components, examples and authoring guidance, remove retired Speech/Semantic Track interfaces, and retain protocol identifiers at @1.
Validation: repository suite (786 tests; six sandbox-blocked tests passed on permitted rerun), 43 Studio tests after audit fixes, TypeScript, public declarations, four example-package builds, chat Source check and npm file inventory.
Every page carried a frontmatter `title` and repeated it as a body `# `, which
the site renders as two headings with two permalinks. The heading text matched
the frontmatter on 41 of the 43 pages; on the two quickstarts it did not, so
"Make a video with your Agent" and "和 Agent 一起制作视频" give way to the
titles already in their frontmatter.
Each step's video now sits directly under that step's heading rather than after
its prose, and the avatars link keeps a blank line beneath it.
Speech publishes semantic timing and original audio. Media Performance and project components consume the prepared material, preserving source offsets across Takes while controlling their own framing and motion.
Add explicit renderer programs for coordinated HTML/CSS/JavaScript scenes, with typed media children, backdrop filtering and blending. Remove stand-in and estimated-take preview paths, migrate Sources and documentation, and demonstrate a Moment-driven video-to-diagram handoff.
estimate:Speech leaves the Author Surface and the Build graph. A duration
is the author's decision, written as a literal on the element that needs
it; the graph computes none, so a Build plan is complete before it starts.
- @hypit/estimate keeps only the measurement library and the
SpeechEstimatePolicy type; its Surface, Producer and fragment are gone.
Policies can be read from an SVS Recipe or from attributes.
- hypit measure joins the creation tools: it counts a Segment's
pronunciation units from the compiled author source (or --text) at the
chosen delivery policy and prints the seconds to write as the literal.
- seedance: duration is a literal only; the DurationProgram deferral, its
type, producers, fragment and schema are removed.
- media:StillVideo: duration is a literal in seconds, published as an
ordinary SpeechDuration Record for its plan step.
- estimated:SemanticTake owns its policy, inline or as policy={recipe},
and publishes it as <id>.policy.
- preview-mock reads program duration from SpeechDuration Records and the
duration port of generation requests; compiler-node's plan-time
pre-evaluation of estimate is removed.
- The 13 example sources and the media-track preview carry the seconds
hypit measure produced for each Segment; the quickstart, styles and
packages guides and the Skill's twelve passages describe the literal.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`b32e8253` replaced both Playgrounds with `packages/studio`, but the rename
stopped at `examples/`. The skill and the docs still named the tool, the
command and the recipe sheet that no longer exist.
`studio.svs` becomes `recipes.svs` with its import alias, in the 39 files the
examples rename had left behind — docs, the `docs/zh` mirrors, the skill
references and the package manifests whose authoring snippets show the alias.
The old name was already loose, since an `.svs` file is a parameter-recipe
sheet rather than anything Studio reads; once `studio` names the application
it reads as Studio's own config file, which it is not. Two test fixtures keyed
the alias as a plain string rather than inside `{}`, so they moved with it —
`packages/text` had a real reference to `recipes.shot` resolving against a
`studio.shot` fixture.
`pnpm svml:playground -- --source main.svml` becomes `pnpm studio -- --run
build.svrun` throughout. The Run Source is not an optional extra any more:
Studio's unit of work is the Run, and it reads the Author SVML back out of it.
`preview-check.mjs` imported `svml-playground/src/pipeline/preview.js`, which
this branch deleted, so the skill's own build gate had been dead since
`b32e8253`. It is rebuilt on Studio's real entry path — `loadStudioDomain`,
`loadStudioRun`, `inspectStudioRun`, `readStudioSession` — and reports
`provenance.errors` and unresolved Candidates instead of the `waiting` and
`stand-in` fields Studio no longer has. It stays in URL space for Windows, as
`e0ecccb9` established, and closes the archive before exiting rather than
leaving it open behind a `process.exit` in a `try`.
The preview pages are rewritten rather than renamed, because what they
describe is gone. Studio has no stand-ins, no black frames and no estimated
timing; it refuses to open and names what is missing. So the pages document
the five refusals verbatim, and say plainly that a Source still declaring
ungenerated shots will not open — including the warning that no example in
this repository currently does. Running the ported check over all nine
committed Run Sources: six refuse on unresolved capabilities or a target that
is not a Film, and three on footage under the gitignored `examples/**/assets/`.
Claiming otherwise would have shipped a quickstart whose first command fails.
`pnpm check` clean; `pnpm test` 510 pass, 0 fail; `pnpm test:release` 8 pass.
Three fixtures generated video from a prompt alone, and one of them was a street
interview whose own format playbook says to prepare a scene image and reference
it. Fixtures are read and copied, so they taught the shape the craft rules now
forbid.
Each establishes its location once and references that image from every take,
which is the rule it should have been demonstrating: one street stays one
street, one studio stays one studio. The scene prompts carry the reality
contract verbatim. All three still check.
The composition quickstart did the same in both languages and is fixed the same
way — including the prompt and import the converted example needs, since a doc
example that does not hold together is worse than the one it replaced. The
generation quickstart keeps its prompt-only section, because that section
documents a shape the model has; it now says plainly that craft authors with a
first frame or ordered references.
Three playbooks hardcoded 4–15 seconds, which is already wrong for one model.
They now name the selected model's declared range.
Two examples fail `hypit check` for a missing asset file. That is pre-existing
and untouched here.
Update 30 doc files (EN+ZH) to match the visual layer rewrite:
- broll → media-track with SpatialFrame positioning and appearance/motion split
- caption:Style/Track → caption-fine:Style/Track with cue bounds and font binding
- text position props removed, text:Style/text:Area with explicit font bytes
- Film Recipe loses canvas dimensions → space:Canvas graph value
- speech:Spine gains canvas= attribute
- prompt-kit → @narratage/text, run-text → run-markup, compiler-text-node → compiler-markup-node
- SemanticMap simplified: final word windows only, no quality labels
- Four layers → five layers (Application became Layer 5)
Rename the author frontend around Markup, replace PromptKit with graph-native Text templates, and keep video typography in its own package. Wire ordinary Text through explicit graph edges into model and visible consumers, refresh examples, locks, tests, and architecture documentation.
Remove all "Echo Pro" third-party product references from docs and
examples. Rename examples/echo-pro-aroll to examples/talking-head-aroll.
Add custom TextMate grammar for SVS (hybrid XML+CSS) syntax highlighting
in VitePress. Remove quickstart index "Next" sections.
Break the single quickstart.md into 7 sub-pages covering Script,
SVS Stylesheets, Media & Generation, Timing & Assembly, Tracks,
Film & Rendering, and Run Source & Builds. Each component has
standalone usage examples and combination examples. Chinese
translations for all 7 sub-pages.