Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 0 additions & 140 deletions fern/apis/relay/relay.yaml

Large diffs are not rendered by default.

139 changes: 70 additions & 69 deletions specs/relay/calling/groups.tsp
Original file line number Diff line number Diff line change
@@ -1,107 +1,108 @@
namespace Relay.Calling;

// Single source of truth for Fern nav grouping (`x-fern-sdk-group-name`) across the calling service.
// Each const is the full nav path `["calling", "<section>", "<canonical method>"]`:
// - middle element: the apis.yml section that auto-populates the channel (via a
// Each const is the nav path `["calling", "<section>"]`:
// - first element: the `calling` service package.
// - second element: the apis.yml section that auto-populates the channel (via a
// `referenced-packages: calling.<section>` reference + the section's `skip-slug`). It is a
// distinct umbrella word, deliberately NOT a real method name — a base channel like
// `calling.collect` would otherwise collide with a middle group named "collect".
// - leaf element: the canonical method name being referred to by `@channel`, minus the
// `calling.` service prefix (dots preserved, never camelCased).
// Renaming a section = edit the middle word here once. (TypeSpec 1.11 has no array-value spread,
// `calling.collect` would otherwise collide with a group named "collect".
// Channels sit directly in `calling.<section>` (no per-channel subpackage), so they render flat
// inside the one manually-set section instead of each getting its own nested folder.
// Renaming a section = edit the second word here once. (TypeSpec 1.11 has no array-value spread,
// so each path is written in full.)

// Call Setup & Lifecycle → calling.setup
const GroupSetupDial = #["calling", "setup", "dial"];
const GroupSetupAnswer = #["calling", "setup", "answer"];
const GroupSetupEnd = #["calling", "setup", "end"];
const GroupSetupDial = #["calling", "setup"];
const GroupSetupAnswer = #["calling", "setup"];
const GroupSetupEnd = #["calling", "setup"];

// Call Control & Bridging → calling.control
const GroupControlConnect = #["calling", "control", "connect"];
const GroupControlDisconnect = #["calling", "control", "disconnect"];
const GroupControlTransfer = #["calling", "control", "transfer"];
const GroupControlRefer = #["calling", "control", "refer"];
const GroupControlPass = #["calling", "control", "pass"];
const GroupControlConnect = #["calling", "control"];
const GroupControlDisconnect = #["calling", "control"];
const GroupControlTransfer = #["calling", "control"];
const GroupControlRefer = #["calling", "control"];
const GroupControlPass = #["calling", "control"];

// Playback → calling.playback
const GroupPlaybackPlay = #["calling", "playback", "play"];
const GroupPlaybackPause = #["calling", "playback", "play.pause"];
const GroupPlaybackResume = #["calling", "playback", "play.resume"];
const GroupPlaybackStop = #["calling", "playback", "play.stop"];
const GroupPlaybackVolume = #["calling", "playback", "play.volume"];
const GroupPlaybackPlay = #["calling", "playback"];
const GroupPlaybackPause = #["calling", "playback"];
const GroupPlaybackResume = #["calling", "playback"];
const GroupPlaybackStop = #["calling", "playback"];
const GroupPlaybackVolume = #["calling", "playback"];

// Prompt & Collect Input → calling.prompt
const GroupPromptCollect = #["calling", "prompt", "collect"];
const GroupPromptCollectStop = #["calling", "prompt", "collect.stop"];
const GroupPromptCollectStartInputTimers = #["calling", "prompt", "collect.start_input_timers"];
const GroupPromptPlayAndCollect = #["calling", "prompt", "play_and_collect"];
const GroupPromptPlayAndCollectStop = #["calling", "prompt", "play_and_collect.stop"];
const GroupPromptPlayAndCollectVolume = #["calling", "prompt", "play_and_collect.volume"];
const GroupPromptSendDigits = #["calling", "prompt", "send_digits"];
const GroupPromptBindDigit = #["calling", "prompt", "bind_digit"];
const GroupPromptClearDigitBindings = #["calling", "prompt", "clear_digit_bindings"];
const GroupPromptCollect = #["calling", "prompt"];
const GroupPromptCollectStop = #["calling", "prompt"];
const GroupPromptCollectStartInputTimers = #["calling", "prompt"];
const GroupPromptPlayAndCollect = #["calling", "prompt"];
const GroupPromptPlayAndCollectStop = #["calling", "prompt"];
const GroupPromptPlayAndCollectVolume = #["calling", "prompt"];
const GroupPromptSendDigits = #["calling", "prompt"];
const GroupPromptBindDigit = #["calling", "prompt"];
const GroupPromptClearDigitBindings = #["calling", "prompt"];

// Payments → calling.payments
const GroupPaymentsPay = #["calling", "payments", "pay"];
const GroupPaymentsPayStop = #["calling", "payments", "pay.stop"];
const GroupPaymentsPay = #["calling", "payments"];
const GroupPaymentsPayStop = #["calling", "payments"];

// Recording → calling.recording
const GroupRecordingRecord = #["calling", "recording", "record"];
const GroupRecordingPause = #["calling", "recording", "record.pause"];
const GroupRecordingResume = #["calling", "recording", "record.resume"];
const GroupRecordingStop = #["calling", "recording", "record.stop"];
const GroupRecordingRecord = #["calling", "recording"];
const GroupRecordingPause = #["calling", "recording"];
const GroupRecordingResume = #["calling", "recording"];
const GroupRecordingStop = #["calling", "recording"];

// Detection → calling.detection
const GroupDetectionDetect = #["calling", "detection", "detect"];
const GroupDetectionStop = #["calling", "detection", "detect.stop"];
const GroupDetectionDetect = #["calling", "detection"];
const GroupDetectionStop = #["calling", "detection"];

// Fax → calling.fax
const GroupFaxSend = #["calling", "fax", "send_fax"];
const GroupFaxSendStop = #["calling", "fax", "send_fax.stop"];
const GroupFaxReceive = #["calling", "fax", "receive_fax"];
const GroupFaxReceiveStop = #["calling", "fax", "receive_fax.stop"];
const GroupFaxSend = #["calling", "fax"];
const GroupFaxSendStop = #["calling", "fax"];
const GroupFaxReceive = #["calling", "fax"];
const GroupFaxReceiveStop = #["calling", "fax"];

// Media Streaming & Tap → calling.media
const GroupMediaTap = #["calling", "media", "tap"];
const GroupMediaTapStop = #["calling", "media", "tap.stop"];
const GroupMediaStream = #["calling", "media", "stream"];
const GroupMediaStreamStop = #["calling", "media", "stream.stop"];
const GroupMediaTap = #["calling", "media"];
const GroupMediaTapStop = #["calling", "media"];
const GroupMediaStream = #["calling", "media"];
const GroupMediaStreamStop = #["calling", "media"];

// Transcription & Translation → calling.transcription
const GroupTranscriptionTranscribe = #["calling", "transcription", "transcribe"];
const GroupTranscriptionStop = #["calling", "transcription", "transcribe.stop"];
const GroupTranscriptionLiveTranscribe = #["calling", "transcription", "live_transcribe"];
const GroupTranscriptionLiveTranslate = #["calling", "transcription", "live_translate"];
const GroupTranscriptionTranscribe = #["calling", "transcription"];
const GroupTranscriptionStop = #["calling", "transcription"];
const GroupTranscriptionLiveTranscribe = #["calling", "transcription"];
const GroupTranscriptionLiveTranslate = #["calling", "transcription"];

// Audio Processing → calling.audio
const GroupAudioDenoise = #["calling", "audio", "denoise"];
const GroupAudioDenoiseStop = #["calling", "audio", "denoise.stop"];
const GroupAudioEcho = #["calling", "audio", "echo"];
const GroupAudioDenoise = #["calling", "audio"];
const GroupAudioDenoiseStop = #["calling", "audio"];
const GroupAudioEcho = #["calling", "audio"];

// Queues → calling.queues
const GroupQueuesEnter = #["calling", "queues", "queue.enter"];
const GroupQueuesLeave = #["calling", "queues", "queue.leave"];
const GroupQueuesEnter = #["calling", "queues"];
const GroupQueuesLeave = #["calling", "queues"];

// Conferencing & Rooms → calling.conferencing
const GroupConferencingJoinConference = #["calling", "conferencing", "join_conference"];
const GroupConferencingLeaveConference = #["calling", "conferencing", "leave_conference"];
const GroupConferencingJoinRoom = #["calling", "conferencing", "join_room"];
const GroupConferencingLeaveRoom = #["calling", "conferencing", "leave_room"];
const GroupConferencingJoinConference = #["calling", "conferencing"];
const GroupConferencingLeaveConference = #["calling", "conferencing"];
const GroupConferencingJoinRoom = #["calling", "conferencing"];
const GroupConferencingLeaveRoom = #["calling", "conferencing"];

// AI Agent → calling.agent
const GroupAgentAi = #["calling", "agent", "ai"];
const GroupAgentAiStop = #["calling", "agent", "ai.stop"];
const GroupAgentAiMessage = #["calling", "agent", "ai_message"];
const GroupAgentAiHold = #["calling", "agent", "ai_hold"];
const GroupAgentAiUnhold = #["calling", "agent", "ai_unhold"];
const GroupAgentAmazonBedrock = #["calling", "agent", "amazon_bedrock"];
const GroupAgentAi = #["calling", "agent"];
const GroupAgentAiStop = #["calling", "agent"];
const GroupAgentAiMessage = #["calling", "agent"];
const GroupAgentAiHold = #["calling", "agent"];
const GroupAgentAiUnhold = #["calling", "agent"];
const GroupAgentAmazonBedrock = #["calling", "agent"];

// AI Sidecar → calling.sidecar
const GroupSidecarBase = #["calling", "sidecar", "ai_sidecar"];
const GroupSidecarPoke = #["calling", "sidecar", "ai_sidecar.poke"];
const GroupSidecarAsk = #["calling", "sidecar", "ai_sidecar.ask"];
const GroupSidecarStop = #["calling", "sidecar", "ai_sidecar.stop"];
const GroupSidecarStatus = #["calling", "sidecar", "ai_sidecar.status"];
const GroupSidecarBase = #["calling", "sidecar"];
const GroupSidecarPoke = #["calling", "sidecar"];
const GroupSidecarAsk = #["calling", "sidecar"];
const GroupSidecarStop = #["calling", "sidecar"];
const GroupSidecarStatus = #["calling", "sidecar"];

// Custom Events → calling.events
const GroupEventsUserEvent = #["calling", "events", "user_event"];
const GroupEventsUserEvent = #["calling", "events"];
2 changes: 1 addition & 1 deletion specs/relay/messaging/operations/send/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Messaging;
const GroupMessagingSend = #["messaging", "send"];
const GroupMessagingSend = #["messaging"];

const messagingSend = "messaging.send";
const messagingSendResponse = "${messagingSend} response";
Expand Down
2 changes: 1 addition & 1 deletion specs/relay/provisioning/operations/configure/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Provisioning;
const GroupProvisioningConfigure = #["provisioning", "configure"];
const GroupProvisioningConfigure = #["provisioning"];

const provisioningConfigure = "provisioning.configure";
const provisioningConfigureResponse = "${provisioningConfigure} response";
Expand Down
2 changes: 1 addition & 1 deletion specs/relay/signalwire/operations/connect/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Signalwire;
const GroupSignalwireConnect = #["signalwire", "connect"];
const GroupSignalwireConnect = #["signalwire"];

const signalwireConnect = "signalwire.connect";
const signalwireConnectResponse = "${signalwireConnect} response";
Expand Down
2 changes: 1 addition & 1 deletion specs/relay/signalwire/operations/disconnect/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Signalwire;
const GroupSignalwireDisconnect = #["signalwire", "disconnect"];
const GroupSignalwireDisconnect = #["signalwire"];

const signalwireDisconnect = "signalwire.disconnect";

Expand Down
4 changes: 2 additions & 2 deletions specs/relay/signalwire/operations/receive/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Signalwire;
const GroupSignalwireReceive = #["signalwire", "receive"];
const GroupSignalwireUnreceive = #["signalwire", "unreceive"];
const GroupSignalwireReceive = #["signalwire"];
const GroupSignalwireUnreceive = #["signalwire"];

const signalwireReceive = "signalwire.receive";
const signalwireReceiveResponse = "${signalwireReceive} response";
Expand Down
2 changes: 1 addition & 1 deletion specs/relay/tasking/operations/tasks/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.Tasking;
const GroupQueuingRelayTasks = #["queuing", "relay.tasks"];
const GroupQueuingRelayTasks = #["queuing"];

@channel(queuingRelayTasks)
@summary("Receive tasks delivered to a subscribed context")
Expand Down
2 changes: 1 addition & 1 deletion specs/relay/webrtc/operations/message/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ using SignalWire.AsyncAPI;
using TypeSpec.OpenAPI;

namespace Relay.WebRTC;
const GroupWebrtcVerto = #["webrtc", "verto"];
const GroupWebrtcVerto = #["webrtc"];

const webrtcVerto = "webrtc.verto";
const webrtcVertoResponse = "${webrtcVerto} response";
Expand Down
Loading