# Upgrade an existing project to 0.3.1 Read this when upgrading a project from the 0.3.0 SDK, or when its component imports fail after selecting 0.3.1. Fresh projects use the current authoring references directly. For 0.2.x Sources or older development projects, start with the [0.3 project migration](0.3.md). The [installation reference](../skills/hypit/references/environment/distribution.md) explains installation scope and updates. This release moves video-domain SDK imports into independent npm packages. It retains logical SVML Module addresses such as `@hypit/composition@1`; it does not translate the project's creative intent. Existing TypeScript components may need import and dependency edits. Explain those edits before upgrading an existing production; a patch-sized version number does not make this SDK migration source-compatible. ## Locate the mismatch Identify the executable used by the production with `hypit version` and `hypit paths`. For a project-local installation, use its package-manager launcher; for npm this is `npm exec --no -- hypit version`. Inspect the project's manifests, lockfile and installed dependencies, including manifests inside `packages/`. For example, from the project root: ```sh npm ls @hypit/hypit @hypit/video @hypit/studio @hypit/visual-track @hypit/script --all rg -n '@hypit/hypit/' packages --glob '*.{ts,tsx,js,mjs,cjs,json}' --glob '!node_modules/**' --glob '!dist/**' ``` These package names are examples to inspect, not an installation list. Follow the package actually named in the error. Project-selected packages take precedence over Distribution defaults; updating a global executable does not update the project's explicit component dependencies. | Observation | Likely repair to investigate | | --- | --- | | `@hypit/run-markup` cannot be found | Use the [current Run header](0.3.md#cannot-locate-installed-package-hypitrun-markup); no extra reader package is needed | | A former root domain subpath is not exported | Migrate that component's import using the table below | | A new domain package cannot be found | Declare and install it in the package that imports it | | Ranking or a partner Provider cannot be found | These are optional, not default dependencies; install the selected package in the project, e.g. `npm install @hypit/ranking@^0.1.0` or `npm install @hypit/provider-hiapi` | | The error originates inside an installed third-party package | Select an available migrated release, or explicitly arrange a source-level repair with the user | | Installation reports conflicting peer versions | Inspect the root and the named package's requirements together; choose a compatible set | | Files are updated but a running Studio or Worker still uses old code | Check the active process and installation, then restart that process when active work permits | ## Move only the domain imports Match complete module specifiers in imports, re-exports, dynamic imports and type imports: | Before | After | | --- | --- | | `@hypit/hypit/caption` | `@hypit/caption` | | `@hypit/hypit/composition` | `@hypit/composition` | | `@hypit/hypit/generation` | `@hypit/generation` | | `@hypit/hypit/generation/model` | `@hypit/generation/model` | | `@hypit/hypit/html-program` | `@hypit/html-program` | | `@hypit/hypit/media` | `@hypit/media` | | `@hypit/hypit/narrative` | `@hypit/narrative` | | `@hypit/hypit/narrative-caption` | `@hypit/narrative-caption` | | `@hypit/hypit/narrative-temporal` | `@hypit/narrative-temporal` | | `@hypit/hypit/region-evidence` | `@hypit/region-evidence` | | `@hypit/hypit/spatial` | `@hypit/spatial` | | `@hypit/hypit/speech-evidence` | `@hypit/speech-evidence` | | `@hypit/hypit/temporal` | `@hypit/temporal` | | `@hypit/hypit/temporal/markup` | `@hypit/temporal/markup` | | `@hypit/hypit/timeline` | `@hypit/timeline` | Generic host imports, such as `@hypit/hypit/author`, `@hypit/hypit/producer` and `@hypit/hypit/protocol`, stay where they are. Apply the table to physical SDK imports, not to logical `@1` addresses in SVML or manifests. Edit a component's source and rebuild its declared JavaScript entry; a generated `dist` file or installed `node_modules` edit is not the durable source. Declare each newly imported domain package in that component's ordinary `dependencies`, including packages referenced by its public types. Their initial independent releases are `0.1.0`, so an appropriate compatible range is `^0.1.0`. A component using the new SDK should declare its Hypit host compatibility from `^0.3.1`. Preserve the project's package manager, dependency roles and workspace layout; installing everything globally does not satisfy a component's own dependencies. For existing official domain packages that the project explicitly selects, check their release requirements. The migrated Track, Script, Model, Video and Studio packages use the `0.2.0` line; their former `^0.1.1` ranges do not select it. Update affected explicit declarations together with the root. Unchanged Runtime, credential stores, Kits and Speech Estimate can remain on `0.1.1`. Use the package manager to update the existing lockfile and review the resulting changes. Peer-resolution overrides such as `--force` or `--legacy-peer-deps` do not establish compatibility. ## Verify the project, preserving produced work Follow the shared [result preservation and verification steps](0.3.md#6-preserve-usable-results-and-verify-the-real-production): rebuild changed components, check the actual Source/Run, inspect the plan and reuse selections, then review the work in Studio before an authorized Build. SDK import relocation alone is not a reason to regenerate accepted media. If a required third-party component has no migrated release and a source repair is not in scope, keep the production on its known-working 0.3.0 installation and lockfile until it can be migrated. Pin the executable version explicitly when preserving that setup; `^0.3.0` also admits `0.3.1`.