Commit Graph

36 Commits

Author SHA1 Message Date
kashorin db4e545d1e refactor: rebuild the domain-neutral language host 2026-10-07 20:44:28 +08:00
kashorin cdd087711d chore(protocol): keep unpublished formats at version 1 2026-09-09 17:26:39 +08:00
kashorin d161dd77c0 refactor(stand-in): select generic media candidates from runs 2026-09-07 04:25:49 +08:00
kashorin fd2387b738 refactor(build): finalize result-oriented execution model 2026-09-03 13:28:06 +08:00
kashorin e8dc1d07b6 refactor(runtime): replace content-addressed artifacts with resources 2026-09-03 13:25:57 +08:00
kashorin 0664b5bac0 feat(runtime): add project-owned build results 2026-09-03 13:23:52 +08:00
kashorin 75c4f61be9 merge: integrate main reconstruction tooling 2026-08-26 19:06:02 +08:00
rponeawa af670c28ce fix: check the project's own author packages, and stop the artifact error blaming the wrong field (#69)
A project-local package builds its picture in TypeScript: its Producer returns a list of elements, and
the field names on those elements are fixed by the Composition Types it imports. Nothing authored
carries them, so `check` had no Record to validate — the object does not exist until the Producer
runs, which is at Build. A media element's artifact field is `artifact`, and a package writing
`source` instead passed `check` completely green and failed a paid Build.

The compiler decides those names without running anything, and it never ran on a project: the CLI
loads TypeScript through tsx, which strips types without reading them, and the tree's own
`tsconfig.json` covers the packages it ships rather than the ones a project writes.

`hypit check` now typechecks `<project>/packages/*/src`, with the options the Distribution checks
itself by, so a project package is held to the standard the packages it imports are held to. Node
resolution reaches none of those from a project — Hypit finds `@hypit/x` by its own walk to
`<root>/packages/x` and nothing links it into `node_modules` — so the mapping is read out of each
Distribution package's own `exports`.

Measured on a real project: `hypit check` takes 1.8s in total. As authored it reports one error, a
real one nobody had seen — a label passed to an assertion that takes none, so its refusal names
nothing. With the reported typo injected it reports that one plus exactly
`TS2353: 'source' does not exist in type 'VisualMediaElement'`, at the file and line. Every shipped
example reports none.

Separately, the Build-time refusal was describing a state it manufactured. Spreading an absent
artifact produced `{}`, so the field the author actually wrote was dropped without a word and the
identity check one call later reported `.artifact` as invalid — a field they had not typed. A media
element with no artifact now says so.

`hypit-whisperx-prepare` failed for a reason other than the one reported: `download_dir` is explicit,
so `NLTK_DATA` never decided anything. `nltk.download` fetches its index before it looks at what is on
disk, so preparing an installation that needed nothing still needed the network. Already installed is
now already done.

Two facts a package author needs, placed where the author is already reading rather than in a
document: a Type is its owning Module and its name, and two Types with identical value shapes are
distinct; `blobArtifact` is declared by `@hypit/artifact`, which is the Module that identifies it
whatever re-exports it.
2026-08-25 18:41:41 +08:00
kashorin 9fa9f088a8 feat: complete structured Studio inspector editing 2026-08-25 00:36:10 +08:00
kashorin d91482f112 feat: introduce per-segment semantic takes 2026-08-20 16:35:21 +08:00
rpone df23c73d97 refactor: rebrand Narratage as Hypit 2026-08-19 15:51:58 +08:00
kashorin 4256db2fca refactor: simplify runtime state and scheduling 2026-08-17 14:03:54 +08:00
kashorin 68ceaeb47b refactor: remove redundant runtime infrastructure 2026-08-17 14:03:54 +08:00
kashorin adc463908d refactor: remove stale runtime scaffolding 2026-08-17 14:03:54 +08:00
kashorin 7683e38c0e refactor: remove defensive execution scaffolding 2026-08-17 14:03:53 +08:00
kashorin 3a7c60f8cb refactor: simplify package loading and runtime execution 2026-08-17 14:03:52 +08:00
kashorin a2531a6c53 refactor: keep module identity in manifests 2026-08-13 21:07:55 +08:00
kashorin dcaf24ecb4 refactor: remove redundant compilation wrappers 2026-08-13 19:53:35 +08:00
kashorin 849ac2a76f refactor: simplify modular compilation and runtime state 2026-08-13 18:53:05 +08:00
kashorin 39ff01aeca refactor: simplify graph realization and local workflow 2026-08-12 15:38:06 +08:00
kashorin 1da9c14a09 refactor: isolate playground from production contracts 2026-08-10 20:24:37 +08:00
kashorin e366167a63 merge: integrate v2 architecture with main tooling 2026-08-10 15:19:34 +08:00
kashorin 21c7b8fd8e feat: freeze the visual ir compatibility waist 2026-08-09 23:01:12 +08:00
rpone 191cfa1967 feat: let modules say what their values mean and look like
ValueSchema gains `format` and TypeDeclaration gains `default`. A schema
could say a value is a string but not whether it is a colour or a font
family, and nothing could say what an unspecified one should be -- so every
consumer decided both for itself, and the answers drifted. A colour and a
digest have an exact shape, so validateStoredValue now checks them: a
format nothing enforces goes stale the same way a copied constant does.

Each module now states its own Recipe once, in a recipe.ts its Surface
reads too, with the required key set taken off the default rather than
restated beside it. Four literals that had to be kept in step by hand are
gone.

The playground lists nothing any more. It asks the manifests which modules
declare a Producer outputting a VisualTrack -- exactly the four that do --
builds a form from the declared input schemas, seeds it from the declared
defaults, and calls the module's own bound handler. Its five adapter files
are deleted. A module that gains a visual Producer now appears there on its
own; one that loses it disappears.

Where a module has no honest default it says nothing: a value carrying
content-addressed media cannot have one, because the module has no bytes to
point at, and the form asks for a file instead.
2026-08-09 06:26:27 +08:00
kashorin 1a5b0e4ca7 refactor: decompose video-contracts into owned domain modules
The umbrella video-contracts package collapsed eight unrelated
vocabularies into one release unit. Public video communication now
lives in small, independently versioned contract packages: narrative,
media, program-space, speech, speech-evidence, semantic-map, visual-ir
and composition. Speech implementation packages are renamed for what
they do (speech-spine, speech-basis, speech-alignment), realization
folds into run, and hyperframes-render becomes render-hyperframes with
a renderer-neutral Visual IR spec. Every model package gains a direct
activation entry, and shared video test fixtures move to test-support.

Example package locks are regenerated for the decomposed closure; the
graph-check, live, echo-pro-aroll and bootstrap sources all compile
against the new package set.
2026-08-08 01:35:22 +08:00
kashorin d8d7e38c1f chore: reset every wire format version to @1
The @0/@2/@4 numbers were rewrite-internal draft counters, not released
format versions. No external consumer or persisted data depends on them,
so the first public format of every id is @1. Negative-format tests use
@9 as the deliberately unknown version. Example package and runtime
locks are regenerated because format ids participate in digests.
2026-08-07 22:12:53 +08:00
kashorin 2855fd2a80 refactor(v2): complete graph-first runtime foundation
Remove payload lineage coupling, load deployment adapters from locked packages, add explicit artifact lifecycle tooling, and keep image/media execution behind replaceable endpoints. Refresh the executable examples and architecture records to match the implemented boundaries.
2026-08-07 20:40:49 +08:00
kashorin 93458649d9 refactor(v2): separate candidates from satisfactions 2026-08-07 04:54:02 +08:00
kashorin 366b72e5fd fix(v2): keep provided values ordinary substitute candidates 2026-08-07 03:15:33 +08:00
kashorin 3ffb6211d9 feat(v2): run realized talking-film builds 2026-08-07 02:49:24 +08:00
kashorin 0a813794e4 feat: lock deterministic compute facets 2026-08-06 13:34:48 +08:00
kashorin 1320b2c77f feat: assemble modular v2 compiler and runtime 2026-08-05 21:45:52 +08:00
kashorin c763ce44f1 feat: implement graph-native v2 compilation 2026-08-05 03:22:35 +08:00
kashorin f57ac143c4 feat: make external capabilities explicit and verifiable 2026-08-04 05:24:39 +08:00
kashorin 39392a5d10 feat: add modular text and script surfaces 2026-08-03 18:47:51 +08:00
kashorin 38a2ac9457 feat: bootstrap the v2 core and node driver 2026-08-03 14:12:53 +08:00