# @oshun/v6-egbe-web-fallback

V6 Tier-2 fallback entry.

Vite-built Three.js client for the reduced-fidelity Orun path. It requests
WebGPU first, falls back to WebGL2, negotiates `@oshun/egbe-protocol`, builds
its Ori projection from `@oshun/ori-model`, and schedules the visible cognition
tick through `@oshun/moirai-kernel`. Constrained launches cap the embodied agent
set and show `@oshun/clio-story` narrative backfill for agents culled from the
reduced scene.

## Scripts

| Command          | Definition                                                     |
| ---------------- | -------------------------------------------------------------- |
| `pnpm dev`       | vite --host 0.0.0.0 --port 3062                                |
| `pnpm build`     | tsc -p tsconfig.app.json --pretty false --noEmit && vite build |
| `pnpm test`      | vitest run --config vitest.config.ts                           |
| `pnpm typecheck` | tsc -p tsconfig.app.json --pretty false --noEmit               |
| `pnpm e2e`       | playwright test --config playwright.config.ts                  |

## Layout

- `src/app.ts` - protocol/Ori/Moirai/Clio density state and DOM surface
- `src/orun-three-renderer.ts` - Three.js WebGPU/WebGL2 scene runtime
- `e2e/` - Playwright canvas, fallback, and focus coverage

## Working on this package

The fastest local loop is via Nx:

```bash
pnpm nx test oshun-v6-egbe-web-fallback
pnpm nx lint oshun-v6-egbe-web-fallback
pnpm nx build oshun-v6-egbe-web-fallback
pnpm nx e2e oshun-v6-egbe-web-fallback
```

When Nx is unhappy (usually because another worktree has duplicate project
names), bypass it with the underlying tools from this directory:

```bash
npx tsc --noEmit
npx vitest run
```

See the [root README](../../../README.md) for monorepo-wide conventions (catalog
deps, commit format, git workflow). See the
[Contributor Guide](../../../docs/CONTRIBUTING.md) for the full PR workflow.
