AbsoluteJS

Meeting Adapters

meeting-adaptersworkspacealphaVoice & Media

Platform source adapters for @absolutejs/meeting. Each is its own published package under this directory (mirrors voice-adapters/). An adapter implements the MeetingSource contract — join a call and stream its audio (and, when available, the participant roster) into the meeting core, which runs the @absolutejs/voice scribe for live diarized transcription.

#Installation

BASH
git clone https://github.com/absolutejs/meeting-adapters.git

#Capabilities

Repository composition

2 public packages and 0 private workspace projects are versioned and developed together.

Overview

Platform source adapters for @absolutejs/meeting. Each is its own published package under this directory (mirrors voice-adapters/). An adapter implements the MeetingSource contract — join a call and stream its audio (and, when available, the participant roster) into the meeting core, which runs the @absolutejs/voice scribe for live diarized transcription.

A MeetingSource is intentionally small:

See @absolutejs/meeting's createBufferMeetingSource for the reference implementation.

Status

recall — built. One integration covers Google Meet / Zoom / Teams. Recall

joins as a bot and streams per-participant raw PCM (mono 16-bit LE @ 16 kHz) to a websocket you host; the adapter decodes it into diarized audio + participant events. Verified live against a Recall workspace (bot create / list / join lifecycle). See recall/README.md.

discord — built + published. Native @discordjs/voice receive (per-user

Show 1 more

Opus → mono PCM), so speakers are known without diarization. The bot joins a voice channel and streams each participant in. See discord/README.md.

Outcomes

What you can build

Build on the supported package contract

Use meeting-adapters through its supported public entry points.

Hardening checklist

Production guidance

Make every external boundary explicitPin the deployed meeting-adapters version, replace example or memory-backed dependencies with durable implementations, bound external calls, protect credentials, and emit enough evidence to retry or recover safely.

Follow in order

Troubleshooting path

1
Trace from the first failed boundary
Reproduce the smallest canonical meeting-adapters example, confirm the supported entry point and version in the API explorer, then inspect the first boundary that did not produce its documented result.

#@absolutejs/meeting adapters quick start

Partial snippet

# @absolutejs/meeting adapters

TXT
meeting-adapters/
  recall/    -> @absolutejs/meeting-recall    (Recall.ai: Meet / Zoom / Teams)   [published, needs RECALL_API_KEY]
  discord/   -> @absolutejs/meeting-discord    (@discordjs/voice receive)          [published, needs a bot token]

#@absolutejs/meeting adapters quick start 2

Partial snippet

# @absolutejs/meeting adapters

TS
type MeetingSource = {
  readonly format: AudioFormat;              // audio it emits (fed to the scribe's STT)
  on(event, handler): () => void;            // "audio" | "participant" | "end" | "error"
  start(): Promise<void>;                    // join the call
  stop(reason?): Promise<void>;              // leave
};

#Workspace contents

2 public packages and 0 private workspace projects are maintained in this repository.

Workspace project
This workspace project is not published as a standalone npm package. Use its repository and the accurately labeled public or private workspace contents below.