# @lssm-tech/app.video-studio

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.8.6`
- Package path: `packages/apps/video-studio`
- Manifest path: `packages/apps/video-studio/package.json`
- Manifest Git blob: `b6f6116c322aaaec277498b7fd187fc891595c4f`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/app.video-studio](https://lssm.co/docs/packages/app.video-studio/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/video-studio)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/video-studio/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/video-studio/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/app.video-studio.txt)

## Package metadata

```json
{
  "layer": "apps",
  "physicalArea": null,
  "primaryArea": "content-and-growth",
  "classification": {
    "privateDeclared": true,
    "catalogFamily": null,
    "catalogKind": null,
    "catalogStatus": null,
    "adoptionMode": null,
    "stability": null
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: true — workspace only.

Primary area: [Content, growth and creator operations](https://lssm.co/docs/areas/content-and-growth/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/apps/video-studio/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/video-studio/README.md",
  "blobSha": "224f659a95cbf3fd77c35d2836457422d49172e7",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "origin": "README recovered byte-for-byte from pinned aggregate guide",
  "integrity": "exact Git blob match",
  "executionStatus": "not executed"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# @lssm-tech/app.video-studio

**Thin Remotion Studio wrapper. Re-exports the Remotion entry point from `@lssm-tech/lib.video-gen`.**

## What It Does

- **Layer**: app (Remotion Studio)
- **Consumers**: internal — video preview and rendering

## Running Locally

From `packages/apps/video-studio`:
- `bun run dev`
- `bun run build`

## Usage

```bash
bun run dev
```


## Local Commands

- `bun run dev` — bunx remotionb studio src/index.ts
- `bun run build` — echo 'No build step needed for Remotion Studio'
- `bun run clean` — rimraf out .turbo
- `bun run test` — standalone host test: imports the Remotion entry and lists its compositions through Remotion's composition manager in happy-dom (no frame render)
- `bun run render` — bunx remotionb render src/index.ts
- `bun run render:all` — bunx remotionb render src/index.ts ApiOverview out/api-overview.mp4 && bunx remotionb render src/index.ts SocialClip out/social-clip.mp4 && bunx remotionb render src/index.ts SocialClipSquare out/social-clip-square.mp4 && bunx remotionb render src/index.ts SocialClipPortrait out/social-clip-portrait.mp4 && bunx remotionb render src/index.ts TerminalDemo out/terminal-demo.mp4

## Recent Updates

- Replace eslint+prettier by biomejs to optimize speed
- Improve agentpacks
- Switch Remotion CLI to bunx remotionb for Bun runtime support

## CompanyOS film workflow

Three ordered authoring-time scripts produce a locale-matched render for the "Room for the real work" campaign:

1. **`bun run companyos:narrate`** — synthesizes narration through ElevenLabs once per content-hash and caches audio under `public/companyos/narration/`. Writes a `manifest.json` recording each take's locale, key, text, hash, duration, and voice cast. `ELEVENLABS_API_KEY` is required only for lines not yet cached; cached lines are replayed for free. **Narration is generated once at authoring time. Never call this at build time or page load.**
2. **`bun run companyos:mix`** — reads the narration manifest, builds each locale's final WAV mix (narration + procedural sound design + music bed with ducking), normalizes loudness, and writes render props to `public/companyos/mix/owners-first-article-{locale}.props.json`. The props JSON carries the audio path and the computed `OwnersFirstArticleTimeline` derived from measured narration durations.
3. **`bun run companyos:render [locale…]`** — renders `CompanyOsOwnersFirstArticle-{locale}` via `bunx remotionb` for each requested locale (all three if none specified), reading props from the mix output. Outputs go to `out/companyos/`.

Run the scripts in order: narrate → mix → render. The mix script depends on the narration manifest; the render script depends on the mix props.

Voice casting is recorded in `scripts/companyos/narrate.ts` (`VOICE` constant). Change the `voiceId` there to recast; the hash changes and the new lines are synthesized on the next narrate run.

## Notes

- Do NOT add compositions here. All compositions live in `@lssm-tech/lib.video-gen`.
- This package exists solely to provide a Remotion Studio entry point and authoring-time scripts.
- Uses `remotionb` CLI for Bun runtime support. Known caveat: SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
- Narration is generated once at authoring time from cached content hashes. Never call `companyos:narrate` at build or page load. `ELEVENLABS_API_KEY` is only required for uncached lines.


## Declared capabilities

This manifest does not declare a capability catalogue. Assess the package using its guide, import map and source.

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/app.video-studio` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/video-studio/src/index.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": null,
  "files": null,
  "publishExports": null
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/integration.provider-voice](https://lssm.co/docs/packages/integration.provider-voice/): `workspace:*`
- [@lssm-tech/lib.content-gen](https://lssm.co/docs/packages/lib.content-gen/): `workspace:*`
- [@lssm-tech/lib.contracts-spec](https://lssm.co/docs/packages/lib.contracts-spec/): `workspace:*`
- [@lssm-tech/lib.design-system](https://lssm.co/docs/packages/lib.design-system/): `workspace:*`
- [@lssm-tech/lib.video-gen](https://lssm.co/docs/packages/lib.video-gen/): `workspace:*`
- `@remotion/cli`: `^4.0.526`
- `react`: `catalog:`
- `react-dom`: `catalog:`
- `remotion`: `catalog:media`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- `@remotion/renderer`: `^4.0.526`
- `@types/react`: `^19.2.18`
- `happy-dom`: `catalog:testing`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "dev": "bunx remotionb studio src/index.ts",
  "build": "node -e \"const fs = require('node:fs'); fs.mkdirSync('dist', { recursive: true }); fs.writeFileSync('dist/.buildstamp', 'remotion-studio noop build\\n');\" && echo 'No build step needed for Remotion Studio'",
  "render": "bunx remotionb render src/index.ts",
  "render:all": "bunx remotionb render src/index.ts ApiOverview out/api-overview.mp4 && bunx remotionb render src/index.ts SocialClip out/social-clip.mp4 && bunx remotionb render src/index.ts SocialClipSquare out/social-clip-square.mp4 && bunx remotionb render src/index.ts SocialClipPortrait out/social-clip-portrait.mp4 && bunx remotionb render src/index.ts TerminalDemo out/terminal-demo.mp4",
  "companyos:narrate": "bun scripts/companyos/narrate.ts",
  "companyos:mix": "bun scripts/companyos/mix.ts",
  "companyos:render": "bun scripts/companyos/render.ts",
  "clean": "rimraf out .turbo",
  "test": "bun test"
}
```

## Declared documentation links

No additional documentation links are declared in the inspected catalogue.

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/app.video-studio.txt",
  "route": "/llms/app.video-studio",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/app.video-studio.txt",
  "blobSha": "224f659a95cbf3fd77c35d2836457422d49172e7",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
