All eight example Profiles selected `@hypit/credential-store-os`, which opens
only on macOS and Windows, so the flagship examples could not authenticate on
Linux without the reader editing the Profile first. Selecting the portable file
Store instead would have moved the problem the other way, storing an unencrypted
document on hosts that have a locked keychain to offer.
`@hypit/credential-store-platform` answers to the name `platform` everywhere and
keeps each credential where its platform keeps credentials: the user's keychain
or Credential Locker where one exists, and an owner-private file where none does.
It delegates rather than reimplements, so the backing store keeps its own rules
and either can still be selected by name. Its file fallback uses the same default
directory as `@hypit/credential-store-file`, so a host without a locker finds the
credential it already stored when a Profile switches between them.
`file`, `os` and `env` remain selectable, and nothing migrates between stores: the
choice is made once per host.
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.
Separate Capture, Person, Shot and Setting in the phone-image Kit and update all 12 example callers. Clarify reference interpretation, Gen-Z styling language, explicit portrait anchors and format-specific camera relationships. Replace the portrait studies with the accepted four-paragraph directions and connect the relevant Skill routes.
Validation: three example Sources pass hypit check; all 12 prompts and a reference-derived optional-slot case assemble through the Text renderer; Skill validation and local documentation links pass.
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.
Replace the vague MiMo TTS surface with explicit Voice Design, Voice Reference and Voice Clone capabilities. Keep model semantics in mimo-speech, provider transport in Xiaomi MiMo and HypiHub, and update examples to reuse the same accepted voice reference.
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>
The example profiles named every Endpoint instance after the project
(hypihub.hypit-podcast, media.football-ranking, ...), which reads as if
each project had its own HypiHub. An Endpoint is where work runs and whose
account it uses, not which video it serves, and the credential behind
HypiHub is the machine-wide hypihub.oauth entry regardless of the name.
Use the same instance names as `hypit runtime init` and the Skill:
hypihub.default, media.local, hyperframes.local, kie.default,
whisperx.local. Only the keys change.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The examples had drifted from the packages they import:
- gpt:Image publishes its picture under the `.image` port, but every
Reference, StillVideo source, emoji placeholder/icon and ranking Item
icon edge still named the bare element id, so plan stopped at
"cannot resolve" or "has the wrong Type". The gpt-image README carried
the same stale form; it now matches the package's own example.
- The four interview sources used <gpt:Image> without importing
@hypit/gpt-image.
- The three HypiHub-first profiles (interview, podcast, ranking-football)
bound whisperx-alignment twice, to HypiHub and to the local WhisperX
Provider, which the registry reports as ambiguous. The local Endpoint is
removed there; the KIE-based ranking sub-projects keep it because it is
their only alignment Provider.
All 25 example Runs now plan with their Runtime Profiles, with no
ambiguous or unresolved capability.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>