Skip to content

Spec proposal: OVOS-TRANSFORM-1 — Transformer Plugins (six lifecycle hooks) #19

Open

Description

@JarbasAl

Proposal for OVOS-TRANSFORM-1, the transformer plugin specification.

Problem

Six transformer plugin types run at fixed points around the utterance lifecycle but share no normative contract — chain ordering, per-session overrides, error handling, and the registration index are all implementation-defined.

Proposal

One abstraction for all six types:

  • Six injection points: audio (pre-STT), utterance (post-STT), metadata (post-utterance), intent (post-match pre-dispatch), dialog (post-skill pre-TTS, runs in audio-output layer), TTS (post-synthesis pre-playback)
  • Chain ordering: ascending priority (lower = earlier); deployer-configured explicit order wins
  • Per-session overrides: session.{audio,utterance,metadata,intent,dialog,tts}_transformers fields
  • Passive registration index: ovos.transformer.{type}.list / .list.response per type
  • Error handling: exceptions and shape violations become no-ops; orchestrator logs and proceeds
  • Dialog transformer note: runs in the audio-output layer just before TTS — in satellite topologies this means it runs on the satellite, not the hub

PR

PR #20

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions