# @oshun/embodiment-psyche

Canonical Psyche embodiment adapter contracts for OSHUN.

This package defines the product-facing real-time embodiment interface that
OSHUN uses when it needs persona-linked voice/avatar packs, low-latency session
planning, turn-taking, disclosure overlays, conferencing bridges, translation,
and live multimodal session state.

It deliberately normalizes the fragmentation that already exists across Psyche:

- the orchestrator owns raw session, pipeline, and multiparty runtime state
- persona-service owns persona identity plus avatar/voice asset linkage
- conferencing libraries own meeting bridge transport details
- translation and avatar quality libraries own stream and render performance

The adapter contract exposes one canonical embodiment profile, one live session
state model, one disclosure contract, and one session-planning surface for OSHUN
shell and admin integration work.

## Scope

- canonical embodiment profile, capability, live-session, disclosure, and
  quality DTOs
- low-level adapter interface for Psyche persona, session, participant,
  pipeline, conference, and translation primitives
- canonical adapter factory (`createCanonicalPsycheEmbodimentAdapter`) that
  wraps an injected low-level Psyche adapter
- normalization helpers that align raw Psyche runtime states with OSHUN session
  contracts

## Usage

```ts
import { createCanonicalPsycheEmbodimentAdapter } from '@oshun/embodiment-psyche';

const psyche = createCanonicalPsycheEmbodimentAdapter({ apiAdapter });

const session = await psyche.startEmbodiedSession({
  consumer: 'assistant',
  personaId: 'guide-1',
  requestedModalities: ['text', 'voice', 'avatar'],
  sessionKind: 'voice',
});
```
