UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 2.54 kB
function e(e){let t=u(e,`From`)??u(e,`Caller`);return t?{accountSid:u(e,`AccountSid`),callSid:u(e,`CallSid`),from:t,raw:e,to:u(e,`To`)??u(e,`Called`)}:null}function t(e){let t=s(u(e,`TranscriptionData`)),n=c(u(e,`Final`));if(n===!1)return null;let r=u(e,`SpeechResult`)??u(e,`TranscriptionText`)??t?.transcript??``;return r.trim().length===0?null:{accountSid:u(e,`AccountSid`),callSid:u(e,`CallSid`),confidence:l(u(e,`Confidence`)??t?.confidence),final:n,from:u(e,`From`)??u(e,`Caller`),raw:e,sequenceId:u(e,`SequenceId`),text:r,timestamp:u(e,`Timestamp`),to:u(e,`To`)??u(e,`Called`),track:u(e,`Track`),transcriptionEvent:u(e,`TranscriptionEvent`),transcriptionSid:u(e,`TranscriptionSid`)}}function n(){return a(`<Response></Response>`)}function r(e){return a(`<Response><Say>${o(e)}</Say></Response>`)}function i(e){let t=typeof e.hints==`string`?e.hints:e.hints?.join(`,`),n=[`input="speech"`,`action="${o(e.actionUrl)}"`,`method="${e.method??`POST`}"`,`actionOnEmptyResult="${e.actionOnEmptyResult===!1?`false`:`true`}"`,e.language?`language="${o(e.language)}"`:void 0,e.speechModel?`speechModel="${o(e.speechModel)}"`:void 0,e.timeoutSeconds===void 0?void 0:`timeout="${e.timeoutSeconds}"`,e.speechTimeout?`speechTimeout="${o(e.speechTimeout)}"`:void 0,t?`hints="${o(t)}"`:void 0,e.profanityFilter===void 0?void 0:`profanityFilter="${e.profanityFilter?`true`:`false`}"`].filter(e=>e!==void 0).join(` `),r=[e.voice?`voice="${o(e.voice)}"`:void 0,e.language?`language="${o(e.language)}"`:void 0].filter(e=>e!==void 0).join(` `);return a(`<Response><Gather ${n}>${r?`<Say ${r}>`:`<Say>`}${o(e.prompt)}</Say></Gather></Response>`)}function a(e){return new Response(e,{headers:{"content-type":`text/xml;charset=UTF-8`},status:200})}function o(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`).replaceAll(`'`,`&apos;`)}function s(e){if(!e)return null;try{let t=JSON.parse(e);return{confidence:typeof t.confidence==`number`||typeof t.confidence==`string`?String(t.confidence):void 0,transcript:typeof t.transcript==`string`?t.transcript:void 0}}catch{return null}}function c(e){if(e!==void 0){if(e===`true`)return!0;if(e===`false`)return!1}}function l(e){if(e===void 0)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function u(e,t){let n=e.get(t);return n===null||n.length===0?void 0:n}export{n as emptyTwilioResponse,o as escapeXml,i as gatherSpeechTwilioResponse,e as parseTwilioVoiceCall,t as parseTwilioVoiceTranscription,r as sayTwilioResponse,a as twilioResponse};