Commit Graph

29 Commits

Author SHA1 Message Date
kashorin a3824065d5 fix(examples): install published ecosystem dependencies 2026-10-10 01:51:44 +08:00
kashorin 68f1693645 refactor: publish video-domain packages independently for 0.3.1 2026-10-09 18:13:50 +08:00
kashorin a4c25ea76b refactor: make narrative projection an explicit author relation 2026-10-08 15:42:44 +08:00
kashorin 682b221c81 refactor: require named temporal values at component boundaries 2026-10-08 14:38:26 +08:00
kashorin e9c3d81616 docs: migrate example projects to the 0.3 model 2026-10-07 20:45:22 +08:00
kashorin 205bfeb98d refactor: establish the adaptive composition model 2026-10-07 20:44:28 +08:00
kashorin 168c537c4f fix(seedance): require visual reference classification for 0.2.8 2026-09-19 23:02:46 +08:00
Mikee Ai 175ba6a792 Merge remote-tracking branch 'origin/main' into feat/credential-store-platform 2026-09-16 21:23:27 -04:00
Mikee Ai b326e81b86 feat(credentials): add a platform Store and select it in every example
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.
2026-09-16 21:07:56 -04:00
kashorin bd728d05b9 feat(script)!: delimit semantic markers and preserve caption spacing 2026-09-17 06:58:25 +08:00
kashorin 5ae1470fd9 merge: integrate upstream speech models and CJK captions 2026-09-14 18:54:47 +08:00
rpone 6e76c35f98 docs(examples): design voices with Fish Audio 2026-09-13 06:15:40 +08:00
kashorin b679e32192 refactor: unify adaptive timeline and presentation composition
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.
2026-09-13 01:01:47 +08:00
kashorin c54b43f94a refactor(image): align prompt kits and craft around visual intent
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.
2026-09-10 10:56:09 +08:00
kashorin 1f203a4f9f refactor(composition): separate semantic performance from visual layout
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.
2026-09-09 17:30:30 +08:00
kashorin 504e0ef6b2 docs: align examples with installed distribution 2026-09-08 17:19:52 +08:00
kashorin 142a74e2d5 refactor: keep speech timing as author evidence 2026-09-07 04:34:27 +08:00
kashorin e933cc2e43 docs(video): align examples with the authoring model 2026-09-07 04:25:49 +08:00
kashorin 41644acb58 feat(speech): separate voice design from voice clone
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.
2026-09-07 04:25:49 +08:00
kashorin 293ccd177d refactor(runtime): model shared limits as capacity, not queues 2026-09-04 21:12:22 +08:00
kashorin e451341f2e refactor(estimate): durations are author literals, measured with hypit measure
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>
2026-09-04 03:27:31 +08:00
kashorin 2db4f1ba37 chore(examples): name Endpoint instances like the starter profile
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>
2026-09-04 01:50:25 +08:00
kashorin 64fc5a25b9 fix(examples): make every example Run plan again
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>
2026-09-04 01:35:11 +08:00
kashorin cb0b061e5c feat(runtime): establish honest starter environment 2026-09-03 22:36:29 +08:00
rpone ca85c56368 feat(examples): use MiMo VoiceDesign voices 2026-09-03 00:26:02 +08:00
rpone d97ccffdea chore(examples): keep runs at source stage 2026-09-02 21:20:25 +08:00
rponeawa 7f203f346c Clarify GPT Image prompt subject and dimension rules (#160)
* Prioritize identity detail in image prompts

* Keep image dimensions out of prompts

* Describe people without named-person prompts
2026-09-02 20:04:07 +08:00
rpone daf59b9c4d Generate example images with GPT Image 2026-09-02 19:16:38 +08:00
rpone d52173bee8 feat: add README video examples 2026-09-02 18:50:35 +08:00