Skip to content

Packet reference

Syrinx is packet-driven: components communicate over a PipelineBus. Factories live in @kuralle-syrinx/core (packet-factories.ts); the kinds below are the ones most relevant to building on the engine.

KindDirectionNotes
user.audio_receivedinraw caller audio; the session fans it to stt.audio / vad.audio / eos.audio
stt.audioincanonical STT ingress — plugins subscribe to this only
stt.interim / stt.partialoutlive transcript (partial carries word timings)
stt.resultoutfinal transcript segment (text, confidence, language, provider)
eos.turn_completeoutend of turn (drives the reasoner)
eos.interim / eos.retractedouteager end-of-turn + retraction (Flux; speculative generation)
KindNotes
usage.recordedstage: "llm" | "stt" | "tts" + provider/model + quantity (tokens / audioSeconds / characters)
metric.conversationlow-cardinality metrics (layer: "infrastructure" | "conversation")
acoustic.signalprosody / backchannel / interruption / primary-speaker / cadence
KindNotes
dtmf.receivedinbound digit from the carrier
dtmf.sendoutbound digits ([0-9*#wW], pause w/W) → Twilio <Play digits> / Telnyx send_dtmf
call.transfermode: "warm" | "cold" | "sip_refer", target, optional warm summary
KindNotes
stt.reconfiguremid-call keyterms / endpointing / language — see STT reconfigure