Skip to main content

Publishing And Runtime Output

Publishing config names the places a build can write. Runtime output is the local state OmegaFlow creates while recording, retiming, generating audio, and publishing.

Publish Surfaces

publish.surfaces can target docs pages, standalone HTML, or both:

publish:
default: docs
build_surfaces:
- docs
- html
surfaces:
docs:
type: docusaurus_mdx
file: docs/hello.md
placeholder: hello-video
component: VideoPlayer
html:
type: standalone_html
file: ${outputs.asset_dir}/index.html

docusaurus_mdx replaces a placeholder block in an MDX file. standalone_html writes a complete HTML page containing the presentation player.

Terminal-only, browser, and mixed surfaces use the same component and HTML custom element with a generated manifest attribute:

<VideoPlayer
title="Product walkthrough"
manifest="/videos/product/presentation/recording.presentation.json"
/>
<cast-player-embed
title="Product walkthrough"
player="/cast-player.html"
manifest="/videos/product/presentation/recording.presentation.json">
</cast-player-embed>

The bundle and the surface are separate: the atomic bundle lives at ${outputs.asset_dir}/presentation/, while a standalone page can remain at ${outputs.asset_dir}/index.html.

Runtime Output

By default, OmegaFlow runtime files are generated under recordings/.omegaflow/. Projects can change this with studio.data_dir in Project Configuration.

recordings/.omegaflow/
runs/
cache/
videos/
hello/

Do not edit those files by hand. Commit the authored recording files and public website assets; leave local runtime output ignored unless a publish surface explicitly targets a tracked path.

Browser/mixed runs additionally preserve private capture/, diagnostics/, and a run-local validated presentation/ bundle. action=clean removes the published presentation bundle but retains preserved runs, diagnostics, and narration cache. A failed build never publishes an incomplete capture log.

Schema

This schema block is generated from src/omegaflow/studio_config.py during the website build.

Publishing schema
@dataclass
class RecordingPublishSurfaceConfig:
type: str = ""
file: str = ""
placeholder: str | None = None
component: str | None = None


@dataclass
class RecordingPublishConfig:
default: str | None = None
on_build: bool = True
build_surfaces: list[str] | None = None
surfaces: dict[str, RecordingPublishSurfaceConfig] = field(default_factory=dict)