AGENTS.md@apps/desktop/html-overlay · git:20260909.462fdd6 · 2026-09-09 · sha256 40c07ebb7be06dbc

AGENTS.md@apps/desktop/html-overlay git:20260909.462fdd6A

Immutable. This exact content is served forever at /api/v1/blob/40c07ebb7be06dbc.

# Contents

- `contracts.ts` – bounded authoring, resource, timing, parameter, and absolute-frame schemas.
- `catalog.ts` – the exhaustive supported-profile taxonomy and scaffold library selection.
- `libraries.ts` – active authoring locks, append-only historical receipt locks, and canonical private-origin import maps.
- `random.ts` – the versioned deterministic random sequence shared with the injected browser runtime.
- `runtime.ts` – source generation for the page-visible authoring API and host-only frame controller.
- `scaffolds.ts` – transparent plain DOM, Motion, p5.js, Two.js, Paper Shaders, Three.js, and vgpu starting documents.
- `index.ts` – the portable HTML-overlay authoring surface.
- `*.test.ts` and `*.property.test.ts` – deterministic examples, boundary rejection, and algebraic checks.

# Guidelines

- Keep this boundary side-effect-free and browser-portable. It may parse values and generate strings or data, but it must not read files, fetch modules, start browsers, or depend on ambient clocks or randomness.
- Parse every foreign value through strict bounded schemas. Normalize unordered resources by logical name and libraries by exact bare specifier before hashing, rendering, or receipt creation.
- Emit `atet.*` identities for new authoring state. Accept a named Atet value only through an explicit compatibility parser or normalization path that keeps persisted v1 work readable.
- Resolve new authoring only through the active exact lock registry. Historical locks are append-only receipt evidence, not an executable selection surface. Never accept ranges, redirects, arbitrary subpath imports, mutable URLs, or caller-supplied lock metadata. The Spark spatial profile may include the exact host-owned `three/addons/postprocessing/Pass.js` dependency lock; this does not authorize other Three subpaths.
- Give every supported profile one unique primary authoring job. Put composable capabilities, authored-asset runtimes, and external creative tools behind separate seams instead of adding overlapping scaffold kinds.
- Keep author code on an absolute Atet-owned clock. The host seeks browser and tracked animations before invoking frame callbacks; visible output must not depend on wall time.
- Keep generated routes root-relative so ephemeral loopback ports do not change authored identities. The effectful browser boundary remains responsible for denying all undeclared requests.