export function transitionState(call: CallRecord, newState: CallState): void { // No-op for same state or already terminal. if (call.state === newState || TerminalStates.has(call.state)) { return;
}
// Terminal states can always be reached from non-terminal. if (TerminalStates.has(newState)) {
call.state = newState; return;
}
// Allow cycling between speaking and listening (multi-turn conversations). if (ConversationStates.has(call.state) && ConversationStates.has(newState)) {
call.state = newState; return;
}
// Only allow forward transitions in state order. const currentIndex = StateOrder.indexOf(call.state); const newIndex = StateOrder.indexOf(newState); if (newIndex > currentIndex) {
call.state = newState;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.