1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,847258,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={},l={SYMBOL_FOR_REQ_CONTEXT:()=>u,getContext:()=>d};for(var c in l)a(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||a(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(a({},"__esModule",{value:!0}),s);let u=Symbol.for("@vercel/request-context");function d(){let e=globalThis;return e[u]?.get?.()??{}}},506637,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={},l={AccessTokenMissingError:()=>u,RefreshAccessTokenFailedError:()=>d};for(var c in l)a(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||a(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(a({},"__esModule",{value:!0}),s);class u extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class d extends Error{constructor(e){super("Failed to refresh authentication token.",{cause:e}),this.name="RefreshAccessTokenFailedError"}}},824154,(e,t,r)=>{"use strict";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={},l={AccessTokenMissingError:()=>d.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>d.RefreshAccessTokenFailedError,getContext:()=>u.getContext,getVercelOidcToken:()=>p,getVercelOidcTokenSync:()=>h,getVercelToken:()=>m};for(var c in l)a(s,c,{get:l[c],enumerable:!0});t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))o.call(e,s)||void 0===s||a(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(a({},"__esModule",{value:!0}),s);var u=e.r(847258),d=e.r(506637);async function p(){return""}function h(){return""}async function m(){throw Error("getVercelToken is not supported in browser environments")}},107983,(e,t,r)=>{"use strict";var a=e.r(523675),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=a.useState,o=a.useEffect,s=a.useLayoutEffect,l=a.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}var u="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=i({inst:{value:r,getSnapshot:t}}),n=a[0].inst,u=a[1];return s(function(){n.value=r,n.getSnapshot=t,c(n)&&u({inst:n})},[e,r,t]),o(function(){return c(n)&&u({inst:n}),e(function(){c(n)&&u({inst:n})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:u},33347,(e,t,r)=>{"use strict";e.i(897754),t.exports=e.r(107983)},561030,(e,t,r)=>{t.exports=function(e,t){let r;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a=0;return function(...n){clearTimeout(r);let i=Date.now(),o=t-(i-a);o<=0?(a=i,e.apply(this,n)):r=setTimeout(()=>{a=Date.now(),e.apply(this,n)},o)}}},959739,e=>{"use strict";var t,r,a,n,i,o,s,l,c,u,d,p,h,m,f,g,y,v,b,w,x,k,E,S,I,C,_,j,T,A,R,M,O,P,N,L,$,D,U,F,H,B,q,W,V,G,z,Z=e.i(708660),Y=e.i(523675),J=e.i(94781);let K=[{title:"Spin to explore",body:"Browse our digital employees."},{title:"Select a digital human",body:"Learn about their role and skills."},{title:"Start the conversation",body:"Watch their intro and chat."}],X={thoxy:["How do you route my work?","Who should own a device question?","What can each teammate do?","Help me pick the right seat."],ava:["How do you keep work moving?","Turn this into a plan.","What blocks progress?","Who should own the next step?"],mira:["How do you organize knowledge?","What should I document first?","How do you connect related notes?","What is still unknown here?"],kai:["How do you keep devices healthy?","Walk me through a setup check.","What should I update first?","How do you handle recovery?"],sera:["How do you review for privacy risk?","What rules apply here?","When would you deny a request?","How do you state an allow decision?"],nova:["How do you turn a brief into code?","What constraints should I state?","How do you verify a build?","Help me scope a small implementation."],helix:["How do you track against target?","Show me how you analyze figures.","What does a budget review look like?","How do you explain variance?"],rhea:["How do you approach team building?","What's your hiring process?","How do you support remote teams?","Tell me about your background."],atlas:["What options should we weigh?","How do you separate evidence from judgement?","Recommend one path and why.","What is next for this strategy?"]},Q=["home-thoxwork","kickstarter-thoxwork","thoxwork"];var ee=e.i(827789);function et({employees:e=J.THOXWORK_EMPLOYEES,nameAs:t="h4",className:r="",onSelect:a}){return(0,Z.jsx)("ul",{className:["grid grid-cols-1 gap-4 min-[420px]:grid-cols-2 sm:grid-cols-3 lg:grid-cols-5",r].join(" ").trim(),children:e.map((e,r)=>{let n=(0,Z.jsx)(ee.default,{subject:(0,ee.rosterBadgeSubject)(e),nameAs:t,priority:r<5});return(0,Z.jsx)("li",{children:a?(0,Z.jsx)("button",{type:"button",onClick:()=>a(e),className:"block w-full rounded-[1.4rem] text-left focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[var(--agent-accent,#05A451)]",style:{"--agent-accent":e.accent},"aria-label":`Open ${e.name}, ${e.role}`,children:n}):n},e.slug)})})}function er({employees:e=J.THOXWORK_EMPLOYEES,onSelect:t,onActiveChange:r,className:a=""}){let n=e.length,i=(0,Y.useId)(),[o,s]=(0,Y.useState)(0),[l,c]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(!0),[p,h]=(0,Y.useState)(!1),[m,f]=(0,Y.useState)(!1),[g,y]=(0,Y.useState)(!1),v=(0,Y.useRef)([]),b=(0,Y.useRef)(null),[w,x]=(0,Y.useState)(!1),k=(0,Y.useRef)(!1),E=(0,Y.useRef)(!1);(0,Y.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=window.matchMedia("(min-width: 768px)"),r=()=>{c(e.matches),d(t.matches)};return r(),e.addEventListener("change",r),t.addEventListener("change",r),()=>{e.removeEventListener("change",r),t.removeEventListener("change",r)}},[]),(0,Y.useEffect)(()=>{let e=()=>f(document.hidden);return e(),document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[]);
1let S=u&&!l&&!p&&!m&&!g&&n>1;(0,Y.useEffect)(()=>{if(!S)return;let e=window.setInterval(()=>{E.current=!1,s(e=>(e+1)%n)},6500);return()=>window.clearInterval(e)},[S,n]),(0,Y.useEffect)(()=>{let t=e[o];t&&r?.(t)},[o,e,r]),(0,Y.useEffect)(()=>{E.current&&(E.current=!1,v.current[o]?.focus())},[o]);let I=(0,Y.useCallback)(e=>{E.current=!0,y(!0),s((e%n+n)%n)},[n]),C=(0,Y.useCallback)(e=>{switch(e.key){case"ArrowRight":case"ArrowDown":e.preventDefault(),I(o+1);break;case"ArrowLeft":case"ArrowUp":e.preventDefault(),I(o-1);break;case"Home":e.preventDefault(),I(0);break;case"End":e.preventDefault(),I(n-1)}},[o,n,I]),_=(0,Y.useCallback)(e=>{y(!0),!u||n<2||0===e.button&&(b.current={startX:e.clientX,lastX:e.clientX,lastT:e.timeStamp,velocity:0,moved:!1},x(!0),e.currentTarget.setPointerCapture(e.pointerId))},[u,n]),j=(0,Y.useCallback)(e=>{let t=b.current;if(!t)return;let r=e.clientX-t.lastX,a=Math.max(1,e.timeStamp-t.lastT);t.velocity=r/a,t.lastX=e.clientX,t.lastT=e.timeStamp;let n=e.clientX-t.startX;Math.abs(n)>6&&(t.moved=!0);let i=Math.trunc(n/120);0!==i&&(I(o-i),t.startX=e.clientX)},[o,I]),T=(0,Y.useCallback)(e=>{let t=b.current;if(!t)return;b.current=null,x(!1),k.current=t.moved,t.moved&&window.setTimeout(()=>{k.current=!1},0),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId);let r=Math.round(6*t.velocity);Math.abs(r)>=1&&I(o-Math.max(-4,Math.min(4,r)))},[o,I]),A=(0,Y.useMemo)(()=>e.map(e=>(0,ee.rosterBadgeSubject)(e)),[e]);return l?(0,Z.jsx)(et,{employees:e,className:a,onSelect:t}):(0,Z.jsxs)("div",{role:"region","aria-roledescription":"carousel","aria-labelledby":i,className:a,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),onFocusCapture:()=>h(!0),onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||h(!1)},children:[(0,Z.jsx)("h3",{id:i,className:"sr-only",children:"DigitalHuman agents"}),(0,Z.jsx)("ul",{onKeyDown:C,onPointerDown:_,onPointerMove:j,onPointerUp:T,onPointerCancel:T,className:[u?"relative mx-auto h-[28rem] w-full max-w-5xl list-none [perspective:1600px] [transform-style:preserve-3d] touch-pan-y select-none":"flex snap-x snap-mandatory gap-4 overflow-x-auto px-1 pb-3 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",u?w?"cursor-grabbing":"cursor-grab":""].join(" ").trim(),children:e.map((e,r)=>{let a,i,s=u?(a=r-o)>(i=n/2)?a-n:a<-i?a+n:a:0,l=Math.abs(s),c=r===o,d=u&&l>2;return(0,Z.jsx)("li",{className:u?`absolute left-1/2 top-0 w-56 ease-out ${w?"":"transition-[transform,opacity] duration-500"}`:"w-[74vw] max-w-[15rem] shrink-0 snap-center",style:u?{transform:`translateX(calc(-50% + ${10.5*s}rem)) translateZ(${c?4:-(11*l)}rem) rotateY(${-26*s}deg) scale(${c?1.08:1===l?.82:.72})`,opacity:d?0:c?1:1===l?.62:.38,filter:d?void 0:c?"none":`blur(${.55*l}px) saturate(0.85)`,zIndex:n-l,pointerEvents:d?"none":void 0}:void 0,"aria-hidden":d||void 0,children:(0,Z.jsx)("button",{ref:e=>{v.current[r]=e},type:"button",tabIndex:c?0:-1,"aria-current":c||void 0,"aria-label":`${e.name}, ${e.role}`,onClick:()=>{k.current||(y(!0),c?t?.(e):I(r))},className:["block w-full rounded-[1.4rem] text-left focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[var(--agent-accent,#05A451)]",c?"ring-2 ring-[#05A451]/70 shadow-[0_0_36px_rgba(5,164,81,0.35)]":"opacity-95"].join(" "),style:{"--agent-accent":e.accent},children:(0,Z.jsx)(ee.default,{subject:A[r],nameAs:"h4",priority:r<3})})},e.slug)})}),(0,Z.jsxs)("div",{className:"mt-4 flex items-center justify-center gap-3",children:[(0,Z.jsx)("button",{type:"button",onClick:()=>I(o-1),"aria-label":"Previous DigitalHuman",className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-[#05A451]/40 bg-black/40 text-[#05A451] backdrop-blur-sm transition-colors hover:border-[#05A451]/80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,Z.jsx)("path",{d:"M15 6 9 12l6 6"})})}),(0,Z.jsx)("div",{className:"flex items-center justify-center gap-2",children:e.map((e,t)=>(0,Z.jsx)("button",{type:"button",onClick:()=>I(t),"aria-label":`Show ${e.name}, ${e.role}`,"aria-current":t===o||void 0,className:"h-2.5 w-2.5 rounded-full transition-[background-color,transform] duration-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",style:{backgroundColor:t===o?e.accent:"rgba(255,255,255,0.25)",transform:t===o?"scale(1.3)":void 0}},e.slug))}),(0,Z.jsx)("button",{type:"button",onClick:()=>I(o+1),"aria-label":"Next DigitalHuman",className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-[#05A451]/40 bg-black/40 text-[#05A451] backdrop-blur-sm transition-colors hover:border-[#05A451]/80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,Z.jsx)("path",{d:"m9 6 6 6-6 6"})})})]})]})}var ea=e.i(378884),en=e.i(897754);let ei=Object.freeze({ipCalls:24,inputCharacters:12e3,outputTokens:768,outputCharacters:4500,responseBytes:65536,requestBytes:32768,providerTimeoutMs:45e3,historyTurns:8,messageMax:2e3});Object.freeze(["spacexai/grok-voice-think-fast-2.0","openai/gpt-realtime-2.1","openai/gpt-realtime-2"]),Object.freeze({ipCalls:16,providerTimeoutMs:2e4});let eo=ei.providerTimeoutMs+5e3;var es=e.i(410976),el="vercel.ai.error",ec=Symbol.for(el),eu=class e extends(r=Error,t=ec,r){constructor({name:e,message:r,cause:a}){super(r),this[t]=!0,this.name=e,this.cause=a}static isInstance(t){return e.hasMarker(t,el)}static hasMarker(e,t){let r=Symbol.for(t);return null!=e&&"object"==typeof e&&r in e&&"boolean"==typeof e[r]&&!0===e[r]}},ed="AI_APICallError",ep=`vercel.ai.error.${ed}`,eh=Symbol.for(ep),em=class extends(n=eu,a=eh,n){constructor({message:e,url:t,requestBodyValues:r,statusCode:n,responseHeaders:i,responseBody:o,cause:s,isRetryable:l=null!=n&&(408===n||409===n||429===n||n>=500),data:c}){super({name:ed,message:e,cause:s}),this[a]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=n,this.responseHeaders=i,this.responseBody=o,this.isRetryable=l,this.data=c}static isInstance(e){return eu.hasMarker(e,ep)}},ef="AI_EmptyResponseBodyError",eg=`vercel.ai.error.${ef}`,ey=Symbol.for(eg),ev=class extends(o=eu,i=ey,o){constructor({message:e="Empty response body"}={}){super({name:ef,message:e}),this[i]=!0}static isInstance(e){return eu.hasMarker(e,eg)}},eb=Symbol.for("vercel.ai.error.AI_EvaluationUnsupportedQuestionTypeError");function ew(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.toString():JSON.stringify(e)}var ex="AI_InvalidArgumentError",ek=`vercel.ai.error.${ex}`,eE=Symbol.for(ek),eS=class extends(l=eu,s=eE,l){constructor({message:e,cause:t,argument:r}){super({name:ex,message:e,cause:t}),this[s]=!0,this.argument=r}static isInstance(e){return eu.hasMarker(e,ek)}},eI=Symbol.for("vercel.ai.error.AI_InvalidPromptError");Symbol.for("vercel.ai.error.AI_InvalidResponseDataError");var eC="AI_JSONParseError",e_=`vercel.ai.error.${eC}`,ej=Symbol.for(e_),eT=class extends(u=eu,c=ej,u){constructor({text:e,cause:t}){super({name:eC,message:`JSON parsing failed: Text: ${e}. 2Error message: ${ew(t)}`,cause:t}),this[c]=!0,this.text=e}static isInstance(e){return eu.hasMarker(e,e_)}},eA=Symbol.for("vercel.ai.error.AI_LoadAPIKeyError");Symbol.for("vercel.ai.error.AI_LoadSettingError");Symbol.for("vercel.ai.error.AI_NoContentGeneratedError");
2var eR="AI_NoSuchModelError",eM=`vercel.ai.error.${eR}`,eO=Symbol.for(eM),eP=class extends(p=eu,d=eO,p){constructor({errorName:e=eR,modelId:t,modelType:r,message:a=`No such ${r}: ${t}`}){super({name:e,message:a}),this[d]=!0,this.modelId=t,this.modelType=r}static isInstance(e){return eu.hasMarker(e,eM)}},eN=Symbol.for("vercel.ai.error.AI_NoSuchProviderReferenceError");Symbol.for("vercel.ai.error.AI_TooManyEmbeddingValuesForCallError");var eL="AI_TypeValidationError",e$=`vercel.ai.error.${eL}`,eD=Symbol.for(e$),eU=class e extends(m=eu,h=eD,m){constructor({value:e,cause:t,context:r}){let a="Type validation failed";if((null==r?void 0:r.field)&&(a+=` for ${r.field}`),(null==r?void 0:r.entityName)||(null==r?void 0:r.entityId)){a+=" (";const e=[];r.entityName&&e.push(r.entityName),r.entityId&&e.push(`id: "${r.entityId}"`),a+=e.join(", "),a+=")"}super({name:eL,message:`${a}: Value: ${JSON.stringify(e)}. 3Error message: ${ew(t)}`,cause:t}),this[h]=!0,this.value=e,this.context=r}static isInstance(e){return eu.hasMarker(e,e$)}static wrap({value:t,cause:r,context:a}){var n,i,o;return e.isInstance(r)&&r.value===t&&(null==(n=r.context)?void 0:n.field)===(null==a?void 0:a.field)&&(null==(i=r.context)?void 0:i.entityName)===(null==a?void 0:a.entityName)&&(null==(o=r.context)?void 0:o.entityId)===(null==a?void 0:a.entityId)?r:new e({value:t,cause:r,context:a})}},eF="AI_UnsupportedFunctionalityError",eH=`vercel.ai.error.${eF}`,eB=Symbol.for(eH),eq=class extends(g=eu,f=eB,g){constructor({functionality:e,message:t=`'${e}' functionality not supported.`}){super({name:eF,message:t}),this[f]=!0,this.functionality=e}static isInstance(e){return eu.hasMarker(e,eH)}},eW=e.i(696859),eV=e.i(232428);class eG extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}}function ez(e){}function eZ(e,t,r){return 100===r&&97===e.charCodeAt(t+1)&&116===e.charCodeAt(t+2)&&97===e.charCodeAt(t+3)&&58===e.charCodeAt(t+4)}function eY(e,t,r){return 101===r&&118===e.charCodeAt(t+1)&&101===e.charCodeAt(t+2)&&110===e.charCodeAt(t+3)&&116===e.charCodeAt(t+4)&&58===e.charCodeAt(t+5)}class eJ extends TransformStream{constructor({onError:e,onRetry:t,onComment:r,maxBufferSize:a}={}){let n;super({start(i){n=function(e){if("function"==typeof e)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:t=ez,onError:r=ez,onRetry:a=ez,onComment:n,maxBufferSize:i}=e,o=[],s=0,l=!0,c,u="",d=0,p,h=!1;function m(){void 0!==i&&(s+u.length<=i||(h=!0,o.length=0,s=0,c=void 0,u="",d=0,p=void 0,r(new eG(`Buffered data exceeded max buffer size of ${i} characters`,{type:"max-buffer-size-exceeded"}))))}function f(e){let r=0;if(-1===e.indexOf("\r")){let a=e.indexOf(` 4`,r);for(;-1!==a;){if(r===a){d>0&&t({id:c,event:p,data:u}),c=void 0,u="",d=0,p=void 0,r=a+1,a=e.indexOf(` 5`,r);continue}let n=e.charCodeAt(r);if(eZ(e,r,n)){let n=32===e.charCodeAt(r+5)?r+6:r+5,i=e.slice(n,a);if(0===d&&10===e.charCodeAt(a+1)){t({id:c,event:p,data:i}),c=void 0,u="",p=void 0,r=a+2,a=e.indexOf(` 6`,r);continue}u=0===d?i:`${u} 7${i}`,d++}else eY(e,r,n)?p=e.slice(32===e.charCodeAt(r+6)?r+7:r+6,a)||void 0:g(e,r,a);r=a+1,a=e.indexOf(` 8`,r)}return e.slice(r)}for(;r<e.length;){let t=e.indexOf("\r",r),a=e.indexOf(` 9`,r),n=-1;if(-1!==t&&-1!==a?n=t<a?t:a:-1!==t?n=t===e.length-1?-1:t:-1!==a&&(n=a),-1===n)break;g(e,r,n),r=n+1,13===e.charCodeAt(r-1)&&10===e.charCodeAt(r)&&r++}return e.slice(r)}function g(e,r,a){if(r===a)return void(d>0&&t({id:c,event:p,data:u}),c=void 0,u="",d=0,p=void 0);let i=e.charCodeAt(r);if(eZ(e,r,i)){let t=32===e.charCodeAt(r+5)?r+6:r+5,n=e.slice(t,a);u=0===d?n:`${u} 10${n}`,d++;return}if(eY(e,r,i)){p=e.slice(32===e.charCodeAt(r+6)?r+7:r+6,a)||void 0;return}if(105===i&&100===e.charCodeAt(r+1)&&58===e.charCodeAt(r+2)){let t=e.slice(32===e.charCodeAt(r+3)?r+4:r+3,a);t.includes("\0")||(c=t);return}if(58===i){n&&n(e.slice(r,a).slice(32===e.charCodeAt(r+1)?2:1));return}let o=e.slice(r,a),s=o.indexOf(":");if(-1===s)return void y(o,"",o);let l=o.slice(0,s),h=32===o.charCodeAt(s+1)?2:1;y(l,o.slice(s+h),o)}function y(e,t,n){switch(e){case"event":p=t||void 0;break;case"data":u=0===d?t:`${u} 11${t}`,d++;break;case"id":t.includes("\0")||(c=t);break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new eG(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:n}
11));break;default:r(new eG(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:"unknown-field",field:e,value:t,line:n}))}}return{feed:function(e){if(h)throw Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(l&&(l=!1,239===e.charCodeAt(0)&&187===e.charCodeAt(1)&&191===e.charCodeAt(2)&&(e=e.slice(3))),0===o.length){let t=f(e);""!==t&&(o.push(t),s=t.length),m();return}if(-1===e.indexOf(` 12`)&&-1===e.indexOf("\r")){o.push(e),s+=e.length,m();return}o.push(e);let t=o.join("");o.length=0,s=0;let r=f(t);""!==r&&(o.push(r),s=r.length),m()},reset:function(e={}){if(e.consume&&o.length>0){let e=o.join("");g(e,0,e.length)}l=!0,c=void 0,u="",d=0,p=void 0,o.length=0,s=0,h=!1}}}({onEvent:e=>{i.enqueue(e)},onError(t){"function"==typeof e&&e(t),("terminate"===e||"max-buffer-size-exceeded"===t.type)&&i.error(t)},onRetry:t,onComment:r,maxBufferSize:a})},transform(e){n.feed(e)}})}}let eK=Symbol.for("workflow-serialize"),eX=Symbol.for("workflow-deserialize");function eQ(...e){return e.reduce((e,t)=>({...e,...t}),{})}async function e0(e,t){if(null==e)return;let r=null==t?void 0:t.abortSignal;return new Promise((t,a)=>{if(null==r?void 0:r.aborted)return void a(e1());let n=setTimeout(()=>{i(),t()},e),i=()=>{clearTimeout(n),null==r||r.removeEventListener("abort",o)},o=()=>{i(),a(e1())};null==r||r.addEventListener("abort",o)})}function e1(){return new DOMException("Delay was aborted","AbortError")}var e5=new TextDecoder;async function e2(e){return"string"==typeof e?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e5.decode(e):"u">typeof Blob&&e instanceof Blob?e.text():String(e)}async function e4(e,{highWaterMark:t=1048576,pollIntervalMs:r=20,abortSignal:a}={}){for(var n;1===e.readyState&&(null!=(n=e.bufferedAmount)?n:0)>t;){if((null==a?void 0:a.aborted)===!0)return;await e0(r)}}var{btoa:e3,atob:e6}=globalThis;function e8(e){let t=[];for(let r=0;r<e.length;r+=4096)t.push(String.fromCodePoint(...e.subarray(r,r+4096)));return e3(t.join(""))}function e7(e){return Object.fromEntries([...e.headers])}function e9(e=globalThis){var t,r,a;return e.window?"runtime/browser":(null==(t=e.navigator)?void 0:t.userAgent)?`runtime/${e.navigator.userAgent.toLowerCase()}`:(null==(a=null==(r=e.process)?void 0:r.versions)?void 0:a.node)?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function te(e){return(e instanceof Error||"function"==typeof DOMException&&e instanceof DOMException)&&("AbortError"===e.name||"ResponseAborted"===e.name||"TimeoutError"===e.name)}var tt=["fetch failed","failed to fetch"],tr=new Set(["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE","UND_ERR_SOCKET","UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"]);function ta({error:e,url:t,requestBodyValues:r}){if(te(e))return e;if(e instanceof TypeError&&tt.includes(e.message.toLowerCase())){let a=e.cause;if(null!=a)return new em({message:`Cannot connect to API: ${a.message}`,cause:a,url:t,requestBodyValues:r,isRetryable:!0})}let a=function(e){let t=new Set,r=e;for(;r instanceof Error&&!t.has(r);){t.add(r);let e=r;if("string"==typeof e.code&&tr.has(e.code))return e;r=r.cause}}(e);return null!=a?new em(em.isInstance(e)?{message:e.message,cause:e.cause,url:e.url,requestBodyValues:e.requestBodyValues,statusCode:e.statusCode,responseHeaders:e.responseHeaders,responseBody:e.responseBody,data:e.data,isRetryable:!0}:{message:`Cannot connect to API: ${e instanceof Error?e.message:a.message}`,cause:e,url:t,requestBodyValues:r,isRetryable:!0}):e}var tn="5.0.47";function ti(e){if(null==e)return{};let t={};if(e instanceof Headers)e.forEach((e,r)=>{t[r.toLowerCase()]=e});else for(let[r,a]of(Array.isArray(e)||(e=Object.entries(e)),e))null!=a&&(t[r.toLowerCase()]=a);return t}function to(e,...t){let r=new Headers(ti(e)),a=r.get("user-agent")||"";return r.set("user-agent",[a,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}async function ts(e){var t;try{await (null==(t=e.body)?void 0:t.cancel())}catch(e){}}var tl="AI_DownloadError",tc=`vercel.ai.error.${tl}`,tu=Symbol.for(tc),td=class extends(v=eu,y=tu,v){constructor({url:e,statusCode:t,statusText:r,cause:a,message:n=null==a?`Failed to download ${e}: ${t} ${r}`:`Failed to download ${e}: ${a}`}
12){super({name:tl,message:n,cause:a}),this[y]=!0,this.url=e,this.statusCode=t,this.statusText=r}static isInstance(e){return eu.hasMarker(e,tc)}};function tp(e,t){try{return new URL(e).origin===new URL(t).origin}catch(e){return!1}}function th(e){let t=e.split(".");return 4===t.length&&t.every(e=>{let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=255&&String(t)===e})}function tm(e){let[t,r,a]=e.split(".").map(Number);return 0===t||10===t||100===t&&r>=64&&r<=127||127===t||169===t&&254===r||172===t&&r>=16&&r<=31||192===t&&0===r&&0===a||192===t&&0===r&&2===a||192===t&&168===r||198===t&&(18===r||19===r)||198===t&&51===r&&100===a||203===t&&0===r&&113===a||t>=224||!1}function tf(e){let t=function(e){let t=e.toLowerCase(),r=t.indexOf("%");-1!==r&&(t=t.slice(0,r));let a=t.split("::");if(a.length>2)return null;let n=e=>{if(""===e)return[];let t=[],r=e.split(":");for(let e=0;e<r.length;e++){let a=r[e];if(a.includes(".")){if(e!==r.length-1||!th(a))return null;let[n,i,o,s]=a.split(".").map(Number);t.push(n<<8|i,o<<8|s);continue}if(!/^[0-9a-f]{1,4}$/.test(a))return null;t.push(parseInt(a,16))}return t},i=n(a[0]);if(null===i)return null;if(2===a.length){let e=n(a[1]);if(null===e)return null;let t=8-i.length-e.length;return t<0?null:[...i,...Array(t).fill(0),...e]}return 8===i.length?i:null}(e);if(null===t)return!0;let r=e=>t.slice(0,e).every(e=>0===e);if(r(7)&&(0===t[7]||1===t[7])||(65024&t[0])==64512||(65472&t[0])==65152||(65472&t[0])==65216||(65280&t[0])==65280||8193===t[0]&&3512===t[1]||16383===t[0]&&(61440&t[1])==0)return!0;if(r(6)||r(5)&&65535===t[5]||r(4)&&65535===t[4]&&0===t[5]||100===t[0]&&65435===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&0===t[5]||100===t[0]&&65435===t[1]&&1===t[2]){let e=t[6]>>8&255,r=255&t[6],a=t[7]>>8&255,n=255&t[7];return tm(`${e}.${r}.${a}.${n}`)}return!1}async function tg(){var e,t,r;let a;return(null==(e=null==(a=globalThis.process)?void 0:a.release)?void 0:e.name)!=="node"||(null==(t=a.versions)?void 0:t.bun)!=null||(null==(r=a.versions)?void 0:r.deno)!=null||"workerd"===a.title||null!=globalThis.EdgeRuntime?globalThis.fetch:null!=b?b:b=Promise.resolve().then(ty)}function ty(){let e=tv("node:module"),{lookup:t}=tv("node:dns"),{Agent:r,fetch:a}=e.createRequire(function e(){let t=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let t=Error("Capture current module path");Error.captureStackTrace(t,e);let[r]=t.stack,a=null==r?void 0:r.getFileName();if(null==a)throw Error("Unable to determine the current module path");return a}finally{Error.prepareStackTrace=t}}())("undici"),n=new r({connect:{lookup:(e,r,a)=>{t(e,{...r,all:!0},(t,n)=>{if(t)return void a(t);try{let[t]=n;if(null==t)throw Error(`Hostname ${e} did not resolve to an address`);for(let{address:t,family:r}of n)!function({address:e,family:t,hostname:r}){if(4===t?!th(e)||tm(e):6!==t||tf(e))throw new td({url:r,message:`Hostname ${r} resolved to disallowed IP address ${e}`})}({address:t,family:r,hostname:e});!0===r.all?a(null,n):a(null,t.address,t.family)}catch(e){a(e instanceof Error?e:Error(String(e)))}})}}});return(e,t)=>a(e,{...t,dispatcher:n})}function tv(e){var t;let r=globalThis.process,a=null==(t=null==r?void 0:r.getBuiltinModule)?void 0:t.call(r,e);if(null==a)throw Error(`Node.js built-in module ${e} is unavailable`);return a}var tb=["connection","keep-alive","te","trailer","transfer-encoding","upgrade","host","forwarded","proxy-authorization","via","x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-real-ip","metadata","metadata-flavor","x-aws-ec2-metadata-token","x-metadata-token","cookie","set-cookie"],tw=new Set([301,302,303,307,308]);async function tx(e){return null==e||e===globalThis.fetch?await tg():e}async function tk({url:e,headers:t,abortSignal:r,maxRedirects:a=10,fetch:n,trustedOrigin:i}){var o;let s=void 0===t?void 0:function(e){let t=new Headers(e);for(let e of tb)t.delete(e);return t}(t),l=e=>{let t={signal:r,redirect:e};return void 0!==s&&(t.headers=new Headers(s)),t},c=e;for(let t=0;t<=a;t++){let t=void 0!==i&&tp(c,i);t||function(e){let t;try{t=new URL(e)}catch(t){throw new td({url:e,message:`Invalid URL: ${e}`})}if("data:"===t.protocol)return;if("http:"!==t.protocol&&"https:"!==t.protocol)throw new td({url:e,message:`URL scheme must be http, https, or data, got ${t.protocol}`});let r=t.hostname.toLowerCase().replace(/\.+$/,"");if(!r)throw new td({url:e,message:"URL must have a hostname"});if("localhost"===r||r.endsWith(".local")||r.endsWith(".localhost"))throw new td({url:e,message:`URL with hostname ${r} is not allowed`});if(r.startsWith("[")&&r.endsWith("]")){if(tf(r.slice(1,-1)))throw new td({url:e,message:`URL with IPv6 address ${r} is not allowed`});return}if(th(r)&&tm(r))throw new td({url:e,message:`URL with IP address ${r} is not allowed`})}(c);let r=t&&null!=n?n:t?globalThis.fetch:await tx(n),a=await r(c,l("manual"));if("opaqueredirect"===a.type){if(!function(e=globalThis){return null!=e.window}
12())throw new td({url:e,message:`Redirect from ${c} could not be validated and was blocked`});return await r(c,l("follow"))}let u=null==(o=a.headers)?void 0:o.get("location");if(tw.has(a.status)&&u){ts(a);let e=new URL(u,c).toString();if(void 0!==s&&!tp(e,c)){let e=s.get("user-agent");s=new Headers(null==e?void 0:{"user-agent":e})}c=e;continue}return a}throw new td({url:e,message:`Too many redirects (max ${a})`})}async function tE({response:e,url:t,maxBytes:r=0x80000000}){let a=e.headers.get("content-length");if(null!=a){let n=parseInt(a,10);if(!isNaN(n)&&n>r)throw await ts(e),new td({url:t,message:`Download of ${t} exceeded maximum size of ${r} bytes (Content-Length: ${n}).`})}let n=e.body;if(null==n)return new Uint8Array(0);let i=n.getReader(),o=[],s=0;try{for(;;){let{done:e,value:a}=await i.read();if(e)break;if((s+=a.length)>r)throw new td({url:t,message:`Download of ${t} exceeded maximum size of ${r} bytes.`});o.push(a)}}finally{try{await i.cancel()}catch(e){}finally{i.releaseLock()}}let l=new Uint8Array(s),c=0;for(let e of o)l.set(e,c),c+=e.length;return l}var tS=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:a="-"}={})=>{let n=()=>{let e=r.length,a=Array(t);for(let n=0;n<t;n++)a[n]=r[Math.random()*e|0];return a.join("")};if(null==e)return n;if(r.includes(a))throw new eS({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return()=>`${e}${a}${n()}`},tI=tS(),tC=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:a,abortSignal:n,fetch:i,validateUrl:o,credentialedOrigin:s,trustedOrigin:l})=>{try{let c=null!=i?i:globalThis.fetch,u=void 0===s||tp(e,s)?t:{},d=to(u,`ai-sdk/provider-utils/${tn}`,e9()),p=o?await tk({url:e,headers:d,abortSignal:n,fetch:i,trustedOrigin:l}):await c(e,{method:"GET",headers:d,signal:n}),h=e7(p);if(!p.ok){let t;try{t=await a({response:p,url:e,requestBodyValues:{}})}catch(t){if(te(t)||em.isInstance(t))throw t;throw new em({message:"Failed to process error response",cause:t,statusCode:p.status,url:e,responseHeaders:h,requestBodyValues:{}})}throw t.value}try{return await r({response:p,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(te(t)||em.isInstance(t)))throw t;throw new em({message:"Failed to process successful response",cause:t,statusCode:p.status,url:e,responseHeaders:h,requestBodyValues:{}})}}catch(t){throw ta({error:t,url:e,requestBodyValues:{}})}};function t_(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)}function tj({settingValue:e,environmentVariableName:t}){return"string"==typeof e?e:null!=e||void 0===en.default?void 0:null!=(e=en.default.env[t])&&"string"==typeof e?e:void 0}function tT(e){return null!=e&&Number.isSafeInteger(e)&&e>=0}var tA=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,tR=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function tM(e){let t=JSON.parse(e);return null===t||"object"!=typeof t||!1===tA.test(e)&&!1===tR.test(e)?t:function(e){let t=[e];for(;t.length;){let e=t;for(let r of(t=[],e)){if(Object.prototype.hasOwnProperty.call(r,"__proto__")||Object.prototype.hasOwnProperty.call(r,"constructor")&&null!==r.constructor&&"object"==typeof r.constructor&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let e in r){let a=r[e];a&&"object"==typeof a&&t.push(a)}}}return e}(t)}function tO(e){let{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return tM(e)}try{return tM(e)}finally{Error.stackTraceLimit=t}}function tP(e){if("object"===e.type||Array.isArray(e.type)&&e.type.includes("object")){let{additionalProperties:t}=e;e.additionalProperties=null!=t&&"boolean"!=typeof t&&tN(t);let{properties:r}=e;if(null!=r)for(let e of Object.keys(r))r[e]=tN(r[e])}null!=e.items&&(e.items=Array.isArray(e.items)?e.items.map(tN):tN(e.items)),null!=e.anyOf&&(e.anyOf=e.anyOf.map(tN)),null!=e.allOf&&(e.allOf=e.allOf.map(tN)),null!=e.oneOf&&(e.oneOf=e.oneOf.map(tN));let{definitions:t}=e;if(null!=t)for(let e of Object.keys(t))t[e]=tN(t[e]);return e}function tN(e){return"boolean"==typeof e?e:tP(e)}var tL=Symbol("Let zodToJsonSchema decide on which parser to use"),t$={
vendor: 4,448 bytes, line 12
12name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"};function tD(e,t){return t3(e.type._def,t)}var tU=void 0,tF=/^[cC][^\s-]{8,}$/,tH=/^[0-9a-z]+$/,tB=/^[0-9A-HJKMNP-TV-Z]{26}$/,tq=/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}$/,tW=()=>(void 0===tU&&(tU=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),tU),tV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,tG=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,tz=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,tZ=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,tY=/^[a-zA-Z0-9_-]{21}$/,tJ=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;function tK(e,t){let r={type:"string"};if(e.checks)for(let a of e.checks)switch(a.kind){case"min":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value;break;case"max":r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"email":switch(t.emailStrategy){case"format:email":t0(r,"email",a.message,t);break;case"format:idn-email":t0(r,"idn-email",a.message,t);break;case"pattern:zod":t1(r,tq,a.message,t)}break;case"url":t0(r,"uri",a.message,t);break;case"uuid":t0(r,"uuid",a.message,t);break;case"regex":t1(r,a.regex,a.message,t);break;case"cuid":t1(r,tF,a.message,t);break;case"cuid2":t1(r,tH,a.message,t);break;case"startsWith":t1(r,RegExp(`^${tX(a.value,t)}`),a.message,t);break;case"endsWith":t1(r,RegExp(`${tX(a.value,t)}$`),a.message,t);break;case"datetime":t0(r,"date-time",a.message,t);break;case"date":t0(r,"date",a.message,t);break;case"time":t0(r,"time",a.message,t);break;case"duration":t0(r,"duration",a.message,t);break;case"length":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"includes":t1(r,RegExp(tX(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&t0(r,"ipv4",a.message,t),"v4"!==a.version&&t0(r,"ipv6",a.message,t);break;case"base64url":t1(r,tZ,a.message,t);break;case"jwt":t1(r,tJ,a.message,t);break;case"cidr":"v6"!==a.version&&t1(r,tV,a.message,t),"v4"!==a.version&&t1(r,tG,a.message,t);break;case"emoji":t1(r,tW(),a.message,t);break;case"ulid":t1(r,tB,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":t0(r,"binary",a.message,t);break;case"contentEncoding:base64":r.contentEncoding="base64";break;case"pattern:zod":t1(r,tz,a.message,t)}break;case"nanoid":t1(r,tY,a.message,t)}return r}function tX(e,t){return"escape"===t.patternStrategy?function(e){let t="";for(let r=0;r<e.length;r++)tQ.has(e[r])||(t+="\\"),t+=e[r];return t}(e):e}var tQ=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function t0(e,t,r,a){var n;e.format||(null==(n=e.anyOf)?void 0:n.some(e=>e.format))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...r&&a.errorMessages&&{errorMessage:{format:r}}})):e.format=t}function t1(e,t,r,a){var n;e.pattern||(null==(n=e.allOf)?void 0:n.some(e=>e.pattern))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:t5(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=t5(t,a)}function t5(e,t){var r;
12if(!t.applyRegexFlags||!e.flags)return e.source;let a={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},n=a.i?e.source.toLowerCase():e.source,i="",o=!1,s=!1,l=!1;for(let e=0;e<n.length;e++){if(o){i+=n[e],o=!1;continue}if(a.i){if(s){if(n[e].match(/[a-z]/)){l?(i+=n[e],i+=`${n[e-2]}-${n[e]}`.toUpperCase(),l=!1):"-"===n[e+1]&&(null==(r=n[e+2])?void 0:r.match(/[a-z]/))?(i+=n[e],l=!0):i+=`${n[e]}${n[e].toUpperCase()}`;continue}}else if(n[e].match(/[a-z]/)){i+=`[${n[e]}${n[e].toUpperCase()}]`;continue}}if(a.m){if("^"===n[e]){i+=`(^|(?<=[\r 13]))`;continue}else if("$"===n[e]){i+=`($|(?=[\r 14]))`;continue}}if(a.s&&"."===n[e]){i+=s?`${n[e]}\r 15`:`[${n[e]}\r 16]`;continue}i+=n[e],"\\"===n[e]?o=!0:s&&"]"===n[e]?s=!1:s||"["!==n[e]||(s=!0)}try{new RegExp(i)}catch(r){return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function t2(e,t){var r,a,n,i,o,s;let l={type:"object",additionalProperties:null!=(r=t3(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))?r:t.allowedAdditionalProperties};if((null==(a=e.keyType)?void 0:a._def.typeName)==="ZodString"&&(null==(n=e.keyType._def.checks)?void 0:n.length)){let{type:r,...a}=tK(e.keyType._def,t);return{...l,propertyNames:a}}if((null==(i=e.keyType)?void 0:i._def.typeName)==="ZodEnum")return{...l,propertyNames:{enum:e.keyType._def.values}};if((null==(o=e.keyType)?void 0:o._def.typeName)==="ZodBranded"&&"ZodString"===e.keyType._def.type._def.typeName&&(null==(s=e.keyType._def.type._def.checks)?void 0:s.length)){let{type:r,...a}=tD(e.keyType._def,t);return{...l,propertyNames:a}}return l}var t4={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function t3(e,t,r=!1){var a;let n=t.seen.get(e);if(t.override){let i=null==(a=t.override)?void 0:a.call(t,e,t,n,r);if(i!==tL)return i}if(n&&!r){let e=t6(n,t);if(void 0!==e)return e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let o=((e,t,r)=>{var a,n,i,o,s,l;switch(t){case"ZodString":return tK(e,r);case"ZodNumber":let c={type:"number"};if(!e.checks)return c;for(let t of e.checks)switch(t.kind){case"int":c.type="integer";break;case"min":t.inclusive?c.minimum=t.value:c.exclusiveMinimum=t.value;break;case"max":t.inclusive?c.maximum=t.value:c.exclusiveMaximum=t.value;break;case"multipleOf":c.multipleOf=t.value}return c;case"ZodObject":return function(e,t){let r={type:"object",properties:{}},a=[],n=e.shape();for(let e in n){let i=n[e];if(void 0===i||void 0===i._def)continue;let o=function(e){try{return e.isOptional()}catch(e){return!0}}(i),s=t3(i._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==s&&(r.properties[e]=s,o||a.push(e))}a.length&&(r.required=a);let i=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return t3(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==i&&(r.additionalProperties=i),r}(e,r);case"ZodBigInt":let u={type:"integer",format:"int64"};if(!e.checks)return u;for(let t of e.checks)switch(t.kind){case"min":t.inclusive?u.minimum=t.value:u.exclusiveMinimum=t.value;break;case"max":t.inclusive?u.maximum=t.value:u.exclusiveMaximum=t.value;break;case"multipleOf":u.multipleOf=t.value}return u;case"ZodBoolean":return{type:"boolean"};case"ZodDate":return function e(t,r,a){let n=null!=a?a:r.dateStrategy;if(Array.isArray(n))return{anyOf:n.map(a=>e(t,r,a))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":var i=t;let o={type:"integer",format:"unix-time"};for(let e of i.checks)switch(e.kind){case"min":o.minimum=e.value;break;case"max":o.maximum=e.value}return o}}(e,r);case"ZodUndefined":case"ZodNaN":case"ZodNever":return{not:{}};case"ZodNull":return{type:"null"};case"ZodArray":let d;return d={type:"array"},(null==(i=e.type)?void 0:i._def)&&(null==(s=null==(o=e.type)?void 0:o._def)?void 0:s.typeName)!=="ZodAny"&&(d.items=t3(e.type._def,{...r,currentPath:[...r.currentPath,"items"]})),e.minLength&&(d.minItems=e.minLength.value),e.maxLength&&(d.maxItems=e.maxLength.value),e.exactLength&&(d.minItems=e.exactLength.value,d.maxItems=e.exactLength.value),d;case"ZodUnion":case"ZodDiscriminatedUnion":let p,h=e.options instanceof Map?Array.from(e.options.values()):e.options;if(h.every(e=>e._def.typeName in t4&&(!e._def.checks||!e._def.checks.length))){let e=h.reduce((e,t)=>
16{let r=t4[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e},[]);return{type:e.length>1?e:e[0]}}if(h.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=h.reduce((e,t)=>{let r=typeof t._def.value;switch(r){case"string":case"number":case"boolean":return[...e,r];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===h.length){let t=e.filter((e,t,r)=>r.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:h.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(h.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:h.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return a=e,n=r,(p=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((e,t)=>t3(e._def,{...n,currentPath:[...n.currentPath,"anyOf",`${t}`]})).filter(e=>!!e&&(!n.strictUnions||"object"==typeof e&&Object.keys(e).length>0))).length?{anyOf:p}:void 0;case"ZodIntersection":let m,f;return m=[t3(e.left._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),t3(e.right._def,{...r,currentPath:[...r.currentPath,"allOf","1"]})].filter(e=>!!e),f=[],m.forEach(e=>{if((!("type"in e)||"string"!==e.type)&&"allOf"in e)f.push(...e.allOf);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:r,...a}=e;t=a}f.push(t)}}),f.length?{allOf:f}:void 0;case"ZodTuple":return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,t)=>t3(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:t3(e.rest._def,{...r,currentPath:[...r.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,t)=>t3(e._def,{...r,currentPath:[...r.currentPath,"items",`${t}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])};case"ZodRecord":return t2(e,r);case"ZodLiteral":let g;return"bigint"!=(g=typeof e.value)&&"number"!==g&&"boolean"!==g&&"string"!==g?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===g?"integer":g,const:e.value};case"ZodEnum":return{type:"string",enum:Array.from(e.values)};case"ZodNativeEnum":let y,v,b;return y=e.values,{type:1===(b=Array.from(new Set((v=Object.keys(e.values).filter(e=>"number"!=typeof y[y[e]]).map(e=>y[e])).map(e=>typeof e)))).length?"string"===b[0]?"string":"number":["string","number"],enum:v};case"ZodNullable":if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[t4[e.innerType._def.typeName],"null"]};let w=t3(e.innerType._def,{...r,currentPath:[...r.currentPath,"anyOf","0"]});return w&&{anyOf:[w,{type:"null"}]};case"ZodOptional":if(r.currentPath.toString()===(null==(l=r.propertyPath)?void 0:l.toString()))return t3(e.innerType._def,r);let x=t3(e.innerType._def,{...r,currentPath:[...r.currentPath,"anyOf","1"]});return x?{anyOf:[{not:{}},x]}:{};case"ZodMap":if("record"===r.mapStrategy)return t2(e,r);return{type:"array",maxItems:125,items:{type:"array",items:[t3(e.keyType._def,{...r,currentPath:[...r.currentPath,"items","items","0"]})||{},t3(e.valueType._def,{...r,currentPath:[...r.currentPath,"items","items","1"]})||{}],minItems:2,maxItems:2}};case"ZodSet":let k;return k={type:"array",uniqueItems:!0,items:t3(e.valueType._def,{...r,currentPath:[...r.currentPath,"items"]})},e.minSize&&(k.minItems=e.minSize.value),e.maxSize&&(k.maxItems=e.maxSize.value),k;case"ZodLazy":return()=>e.getter()._def;case"ZodPromise":return t3(e.type._def,r);case"ZodEffects":return"input"===r.effectStrategy?t3(e.schema._def,r):{};case"ZodAny":case"ZodUnknown":return{};case"ZodDefault":return{...t3(e.innerType._def,r),default:e.defaultValue()};case"ZodBranded":return tD(e,r);case"ZodReadonly":case"ZodCatch":return t3(e.innerType._def,r);case"ZodPipeline":if("input"===r.pipeStrategy)return t3(e.in._def,r);if("output"===r.pipeStrategy)return t3(e.out._def,r);let E=t3(e.in._def,{...r,currentPath:[...r.currentPath,"allOf","0"]}),S=t3(e.out._def,{...r,currentPath:[...r.currentPath,"allOf",E?"1":"0"]});return{allOf:[E,S].filter(e=>void 0!==e)};default:return}})(e,e.typeName,t),s="function"==typeof o?t3(o(),t):o;if(s&&t8(e,t,s),t.postProcess){let r=t.postProcess(s,e,t);return i.jsonSchema=s,r}return i.jsonSchema=s,s}var t6=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:((e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")})(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,r)=>t.currentPath[r]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),{};return"seen"===t.$refStrategy?{}:void 0}},t8=(e,t,r)=>(e.description&&(r.description=e.description),r),t7=Symbol.for("vercel.ai.schema");function t9(e){let t;return()=>(null==t&&(t=e()),t)}function re(e,{validate:t}={}){return{[t7]:!0,_type:void 0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}function rt(e){var t;return null==e?re({type:"object",properties:{},additionalProperties:!1}
16):"object"==typeof e&&null!==e&&t7 in e&&!0===e[t7]&&"jsonSchema"in e&&"validate"in e?e:"~standard"in e?"zod"===e["~standard"].vendor?rr(e):(t=e,re(()=>{if(null==t["~standard"].jsonSchema)throw Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return tP(t["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async e=>{let r=await t["~standard"].validate(e);return"value"in r?{success:!0,value:r.value}:{success:!1,error:new eU({value:e,cause:r.issues})}}})):e()}function rr(e,t){var r,a;let n;if("_zod"in e){let a;return a=null!=(r=null==t?void 0:t.useReferences)&&r,re(()=>tP((0,eV.toJSONSchema)(e,{target:"draft-7",io:"input",reused:a?"ref":"inline"})),{validate:async t=>{let r=await (0,eW.safeParseAsync)(e,t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}return n=null!=(a=null==t?void 0:t.useReferences)&&a,re(()=>((e,t)=>{var r;let a,n,i=(n=void 0!==(a="string"==typeof t?{...t$,name:t}:{...t$,...t}).name?[...a.basePath,a.definitionPath,a.name]:a.basePath,{...a,currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(a.definitions).map(([e,t])=>[t._def,{def:t._def,path:[...a.basePath,a.definitionPath,e],jsonSchema:void 0}]))}),o="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>{var a;return{...e,[t]:null!=(a=t3(r._def,{...i,currentPath:[...i.basePath,i.definitionPath,t]},!0))?a:{}}},{}):void 0,s="string"==typeof t?t:(null==t?void 0:t.nameStrategy)==="title"||null==t?void 0:t.name,l=null!=(r=t3(e._def,void 0===s?i:{...i,currentPath:[...i.basePath,i.definitionPath,s]},!1))?r:{},c="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==c&&(l.title=c);let u=void 0===s?o?{...l,[i.definitionPath]:o}:l:{$ref:[..."relative"===i.$refStrategy?[]:i.basePath,i.definitionPath,s].join("/"),[i.definitionPath]:{...o,[s]:l}};return u.$schema="http://json-schema.org/draft-07/schema#",u})(e,{$refStrategy:n?"root":"none"}),{validate:async t=>{let r=await e.safeParseAsync(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}async function ra({value:e,schema:t,context:r}){let a=await rn({value:e,schema:t,context:r});if(!a.success)throw eU.wrap({value:e,cause:a.error,context:r});return a.value}async function rn({value:e,schema:t,context:r}){let a=rt(t);try{if(null==a.validate)return{success:!0,value:e,rawValue:e};let t=await a.validate(e);if(t.success)return{success:!0,value:t.value,rawValue:e};return{success:!1,error:eU.wrap({value:e,cause:t.error,context:r}),rawValue:e}}catch(t){return{success:!1,error:eU.wrap({value:e,cause:t,context:r}),rawValue:e}}}async function ri({text:e,schema:t}){try{let r=tO(e);if(null==t)return r;return await ra({value:r,schema:t})}catch(t){if(eT.isInstance(t)||eU.isInstance(t))throw t;throw new eT({text:e,cause:t})}}async function ro({text:e,schema:t}){try{let r=tO(e);if(null==t)return{success:!0,value:r,rawValue:r};return await rn({value:r,schema:t})}catch(t){return{success:!1,error:eT.isInstance(t)?t:new eT({text:e,cause:t}),rawValue:void 0}}}function rs({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new eJ).pipeThrough(new TransformStream({async transform({data:e},r){"[DONE]"!==e&&r.enqueue(await ro({text:e,schema:t}))}}))}var rl=()=>globalThis.fetch,rc=async({url:e,headers:t,body:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:i,fetch:o})=>await ru({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:i,fetch:o}),ru=async({url:e,headers:t={},body:r,successfulResponseHandler:a,failedResponseHandler:n,abortSignal:i,fetch:o=rl()})=>{try{let s=await o(e,{method:"POST",headers:to(t,`ai-sdk/provider-utils/${tn}`,e9()),body:r.content,signal:i}),l=e7(s);if(!s.ok){let t;try{t=await n({response:s,url:e,requestBodyValues:r.values})}catch(t){if(te(t)||em.isInstance(t))throw t;throw new em({message:"Failed to process error response",cause:t,statusCode:s.status,url:e,responseHeaders:l,requestBodyValues:r.values})}throw t.value}try{return await a({response:s,url:e,requestBodyValues:r.values})}catch(t){if(t instanceof Error&&(te(t)||em.isInstance(t)))throw t;throw new em({message:"Failed to process successful response",cause:t,statusCode:s.status,url:e,responseHeaders:l,requestBodyValues:r.values})}}catch(t){throw ta({error:t,url:e,requestBodyValues:r.values})}};
16function rd({id:e,inputSchema:t,outputSchema:r,supportsDeferredResults:a}){return({onInputStart:n,onInputDelta:i,onInputAvailable:o,...s})=>({type:"provider",isProviderExecuted:!0,id:e,args:s,inputSchema:t,outputSchema:r,onInputStart:n,onInputDelta:i,onInputAvailable:o,supportsDeferredResults:a})}async function rp(e){return"function"==typeof e&&(e=e()),e}var rh=new TextDecoder;async function rm({response:e,url:t}){return rh.decode(await tE({response:e,url:t}))}var rf=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:a,url:n,requestBodyValues:i})=>{let o=await rm({response:a,url:n}),s=e7(a);if(""===o.trim())return{responseHeaders:s,value:new em({message:a.statusText,url:n,requestBodyValues:i,statusCode:a.status,responseHeaders:s,responseBody:o,isRetryable:null==r?void 0:r(a)})};try{let l=await ri({text:o,schema:e});return{responseHeaders:s,value:new em({message:t(l),url:n,requestBodyValues:i,statusCode:a.status,responseHeaders:s,responseBody:o,data:l,isRetryable:null==r?void 0:r(a,l)})}}catch(e){return{responseHeaders:s,value:new em({message:a.statusText,url:n,requestBodyValues:i,statusCode:a.status,responseHeaders:s,responseBody:o,isRetryable:null==r?void 0:r(a)})}}},rg=e=>async({response:t,url:r,requestBodyValues:a})=>{let n=await rm({response:t,url:r}),i=await ro({text:n,schema:e}),o=e7(t);if(!i.success)throw new em({message:"Invalid JSON response",cause:i.error,statusCode:t.status,responseHeaders:o,responseBody:n,url:r,requestBodyValues:a});return{responseHeaders:o,value:i.value,rawValue:i.rawValue}};async function*ry({stream:e,schema:t}){let r=e.getReader(),a=new TextDecoder,n="",i=!1;try{for(;;){let{done:e,value:o}=await r.read();if(e){i=!0,n+=a.decode();break}let s=(n+=a.decode(o,{stream:!0})).indexOf("\n");for(;-1!==s;){let e=n.slice(0,s).replace(/\r$/,"");n=n.slice(s+1),e.trim().length>0&&(yield await ri({text:e,schema:t})),s=n.indexOf("\n")}}let e=n.replace(/\r$/,"");e.trim().length>0&&(yield await ri({text:e,schema:t}))}finally{i||await r.cancel().catch(()=>{}),r.releaseLock()}}function rv(e){if(null==e)return!0;let t=typeof e;return"string"===t||"number"===t||"boolean"===t||"function"!==t&&"symbol"!==t&&"bigint"!==t&&(Array.isArray(e)?e.every(rv):Object.getPrototypeOf(e)===Object.prototype&&Object.values(e).every(rv))}var rb="AI_SerializationError",rw=`vercel.ai.error.${rb}`,rx=Symbol.for(rw),rk=class extends(x=eu,w=rx,x){constructor({message:e="Failed to serialize value.",cause:t}={}){super({name:rb,message:e,cause:t}),this[w]=!0}static isInstance(e){return eu.hasMarker(e,rw)}};function rE(e){let t={};for(let[r,a]of Object.entries(e.config))if("headers"===r){let e=function(e){let t=e;if("function"==typeof e&&(t=e()),t instanceof Promise)throw new rk({message:"Cannot serialize asynchronous model options."});return t}(a);rv(e)&&(t[r]=e)}else rv(a)&&(t[r]=a);return{modelId:e.modelId,config:t}}function rS(e){return"string"==typeof e}function rI(e){return"number"==typeof e}function rC(e,t){return void 0===e||t(e)}function r_(e){return t_(e)&&rS(e.type)}function rj(e){return t_(e)&&rS(e.text)&&rI(e.startSecond)&&rI(e.endSecond)}var rT=e.i(703573),rA=e.i(824154),rR="ai-gateway-transcription.v1";function rM(e,t,r){let a=[e,`ai-gateway-auth.${t}`];return(null==r?void 0:r.teamIdOrSlug)&&a.push(`ai-gateway-team.${function(e){let t=new TextEncoder().encode(e),r="";for(let e of t)r+=String.fromCharCode(e);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/u,"")}(r.teamIdOrSlug)}`),a}var rO={any:rT.any,array:rT.array,boolean:rT.boolean,discriminatedUnion:rT.discriminatedUnion,enum:rT.enum,literal:rT.literal,number:rT.number,object:rT.object,record:rT.record,string:rT.string,union:rT.union,unknown:rT.unknown},rP=Symbol.for("vercel.ai.gateway.error"),rN=class e extends(E=Error,k=rP,E){constructor({message:e,statusCode:t=500,cause:r,generationId:a,isRetryable:n=null!=t&&(408===t||409===t||429===t||t>=500)}){super(a?`${e} [${a}]`:e),this[k]=!0,this.statusCode=t,this.cause=r,this.generationId=a,this.isRetryable=n}static isInstance(t){return e.hasMarker(t)}static hasMarker(e){return"object"==typeof e&&null!==e&&rP in e&&!0===e[rP]}},rL="GatewayAuthenticationError",r$=Symbol.for(`vercel.ai.gateway.error.${rL}`),rD=class e extends(I=rN,S=r$,I){constructor({message:e="Authentication failed",statusCode:t=401,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[S]=!0,this.name=rL,this.type="authentication_error"}static isInstance(e){return rN.hasMarker(e)&&r$ in e}static createContextualError({apiKeyProvided:t,oidcTokenProvided:r,statusCode:a=401,cause:n,generationId:i}){return new e({message:t?`AI Gateway authentication failed: Invalid API key or token. 17 18Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys 19 20Provide an API key or Vercel access token via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`:r?`AI Gateway authentication failed: Invalid OIDC token. 21 22Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token. 23 24Alternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys 25or pass a Vercel access token via the 'apiKey' option.`:`AI Gateway authentication failed: No authentication provided. 26 27Option 1 - API key: 28Create an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys 29Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable. 30 31Option 2 - Vercel access token: 32Pass a Vercel personal access token or Vercel app access token via the 'apiKey' option. 33 34Option 3 - OIDC token: 35Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`,statusCode:a,cause:n,generationId:i})}},rU="GatewayInvalidRequestError",rF=Symbol.for(`vercel.ai.gateway.error.${rU}`),rH=class extends(_=rN,C=rF,_){constructor({message:e="Invalid request",statusCode:t=400,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[C]=!0,this.name=rU,this.type="invalid_request_error"}
35static isInstance(e){return rN.hasMarker(e)&&rF in e}},rB="GatewayRateLimitError",rq=Symbol.for(`vercel.ai.gateway.error.${rB}`),rW=class extends(T=rN,j=rq,T){constructor({message:e="Rate limit exceeded",statusCode:t=429,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[j]=!0,this.name=rB,this.type="rate_limit_exceeded"}static isInstance(e){return rN.hasMarker(e)&&rq in e}},rV="GatewayModelNotFoundError",rG=Symbol.for(`vercel.ai.gateway.error.${rV}`),rz=t9(()=>rr(rO.object({modelId:rO.string()}))),rZ=class extends(R=rN,A=rG,R){constructor({message:e="Model not found",statusCode:t=404,modelId:r,cause:a,generationId:n}={}){super({message:e,statusCode:t,cause:a,generationId:n}),this[A]=!0,this.name=rV,this.type="model_not_found",this.modelId=r}static isInstance(e){return rN.hasMarker(e)&&rG in e}},rY="GatewayNotFoundError",rJ=Symbol.for(`vercel.ai.gateway.error.${rY}`),rK=class extends(O=rN,M=rJ,O){constructor({message:e="Resource not found",statusCode:t=404,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[M]=!0,this.name=rY,this.type="not_found"}static isInstance(e){return rN.hasMarker(e)&&rJ in e}},rX="GatewayInternalServerError",rQ=Symbol.for(`vercel.ai.gateway.error.${rX}`),r0=class extends(N=rN,P=rQ,N){constructor({message:e="Internal server error",statusCode:t=500,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[P]=!0,this.name=rX,this.type="internal_server_error"}static isInstance(e){return rN.hasMarker(e)&&rQ in e}},r1="GatewayFailedDependencyError",r5=Symbol.for(`vercel.ai.gateway.error.${r1}`),r2=class extends($=rN,L=r5,$){constructor({message:e="Failed dependency",statusCode:t=424,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[L]=!0,this.name=r1,this.type="failed_dependency"}static isInstance(e){return rN.hasMarker(e)&&r5 in e}},r4="GatewayForbiddenError",r3=Symbol.for(`vercel.ai.gateway.error.${r4}`),r6=t9(()=>rr(rO.object({ruleId:rO.string()}))),r8=class extends(U=rN,D=r3,U){constructor({message:e="Forbidden",statusCode:t=403,cause:r,generationId:a,ruleId:n}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[D]=!0,this.name=r4,this.type="forbidden",this.ruleId=n}static isInstance(e){return rN.hasMarker(e)&&r3 in e}},r7="GatewayResponseError",r9=Symbol.for(`vercel.ai.gateway.error.${r7}`),ae=class extends(H=rN,F=r9,H){constructor({message:e="Invalid response from Gateway",statusCode:t=502,response:r,validationError:a,cause:n,generationId:i,isRetryable:o}={}){super({message:e,statusCode:t,cause:n,generationId:i,isRetryable:o}),this[F]=!0,this.name=r7,this.type="response_error",this.response=r,this.validationError=a}static isInstance(e){return rN.hasMarker(e)&&r9 in e}};async function at({response:e,statusCode:t,defaultMessage:r="Gateway request failed",cause:a,authMethod:n,isRetryable:i}){var o;let s=await rn({value:e,schema:ar});if(!s.success){let n="object"==typeof e&&null!==e&&"generationId"in e?e.generationId:void 0;return new ae({message:`Invalid error response format: ${r}`,statusCode:t,response:e,validationError:s.error,cause:a,generationId:n,isRetryable:i})}let l=s.value,c=l.error.type,u=l.error.message,d=null!=(o=l.generationId)?o:void 0;switch(c){case"authentication_error":return rD.createContextualError({apiKeyProvided:"api-key"===n,oidcTokenProvided:"oidc"===n,statusCode:t,cause:a,generationId:d});case"invalid_request_error":return new rH({message:u,statusCode:t,cause:a,generationId:d});case"rate_limit_exceeded":return new rW({message:u,statusCode:t,cause:a,generationId:d});case"model_not_found":{let e=await rn({value:l.error.param,schema:rz});return new rZ({message:u,statusCode:t,modelId:e.success?e.value.modelId:void 0,cause:a,generationId:d})}case"not_found":return new rK({message:u,statusCode:t,cause:a,generationId:d});case"internal_server_error":default:return new r0({message:u,statusCode:t,cause:a,generationId:d});case"failed_dependency":return new r2({message:u,statusCode:t,cause:a,generationId:d});case"forbidden":{let e=await rn({value:l.error.param,schema:r6});return new r8({message:u,statusCode:t,cause:a,generationId:d,ruleId:e.success?e.value.ruleId:void 0})}}}var ar=t9(()=>rr(rO.object({error:rO.object({message:rO.string(),type:rO.string().nullish(),param:rO.unknown().nullish(),code:rO.union([rO.string(),rO.number()]).nullish()}),generationId:rO.string().nullish()}))),aa="GatewayTimeoutError",an=Symbol.for(`vercel.ai.gateway.error.${aa}`),ai=class e extends(q=rN,B=an,q){constructor({message:e="Request timed out",statusCode:t=408,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[B]=!0,this.name=aa,this.type="timeout_error"}static isInstance(e){return rN.hasMarker(e)&&an in e}static createTimeoutError({originalMessage:t,statusCode:r=408,cause:a,generationId:n}){return new e({message:`Gateway request timed out: ${t} 36 37 This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`,statusCode:r,cause:a,generationId:n})}};function ao(e){if(!(e instanceof Error))return!1;let t=e.code;return"string"==typeof t&&["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(t)}async function as(e,t){var r;
37return rN.isInstance(e)?e:ao(e)?ai.createTimeoutError({originalMessage:e instanceof Error?e.message:"Unknown error",cause:e}):em.isInstance(e)?e.cause&&ao(e.cause)?ai.createTimeoutError({originalMessage:e.message,cause:e}):await at({response:function(e){if(void 0!==e.data)return e.data;if(null!=e.responseBody)try{return tO(e.responseBody)}catch(t){return e.responseBody}return{}}(e),statusCode:null!=(r=e.statusCode)?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:t,isRetryable:!!e.isRetryable&&(null==e.statusCode||e.statusCode<400)||void 0}):await at({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:t})}var al="ai-gateway-auth-method",ac="x-vercel-ai-gateway-team";async function au(e){let t=await rn({value:e[al],schema:ad});return t.success?t.value:void 0}var ad=t9(()=>rr(rO.union([rO.literal("api-key"),rO.literal("oidc")]))),ap=["embedding","evaluation","image","language","realtime","reranking","speech","transcription","video"],ah=class{constructor(e){this.config=e}async getAvailableModels(){try{let{value:e}=await tC({url:`${this.config.baseURL}/config`,validateUrl:!1,headers:this.config.headers?await rp(this.config.headers):void 0,successfulResponseHandler:rg(am),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),fetch:this.config.fetch});return e}catch(e){throw await as(e)}}async getCredits(){try{let e=new URL(this.config.baseURL),{value:t}=await tC({url:`${e.origin}/v1/credits`,validateUrl:!1,headers:this.config.headers?await rp(this.config.headers):void 0,successfulResponseHandler:rg(af),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),fetch:this.config.fetch});return t}catch(e){throw await as(e)}}},am=t9(()=>rr(rO.object({models:rO.array(rO.object({id:rO.string(),name:rO.string(),description:rO.string().nullish(),pricing:rO.object({input:rO.string(),output:rO.string(),input_cache_read:rO.string().nullish(),input_cache_write:rO.string().nullish()}).transform(({input:e,output:t,input_cache_read:r,input_cache_write:a})=>({input:e,output:t,...r?{cachedInputTokens:r}:{},...a?{cacheCreationInputTokens:a}:{}})).nullish(),specification:rO.object({specificationVersion:rO.literal("v4"),provider:rO.string(),modelId:rO.string()}),modelType:rO.string().nullish()})).transform(e=>e.filter(e=>null==e.modelType||ap.includes(e.modelType)))}))),af=t9(()=>rr(rO.object({balance:rO.string(),total_used:rO.string()}).transform(({balance:e,total_used:t})=>({balance:e,totalUsed:t})))),ag=class{constructor(e){this.config=e}async getSpendReport(e){try{let t=new URL(this.config.baseURL),r=new URLSearchParams;r.set("start_date",e.startDate),r.set("end_date",e.endDate),e.groupBy&&r.set("group_by",e.groupBy),e.datePart&&r.set("date_part",e.datePart),e.userId&&r.set("user_id",e.userId),e.model&&r.set("model",e.model),e.provider&&r.set("provider",e.provider),e.credentialType&&r.set("credential_type",e.credentialType),e.tags&&e.tags.length>0&&r.set("tags",e.tags.join(","));let{value:a}=await tC({url:`${t.origin}/v1/report?${r.toString()}`,validateUrl:!1,headers:this.config.headers?await rp(this.config.headers):void 0,successfulResponseHandler:rg(ay),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),fetch:this.config.fetch});return a}catch(e){throw await as(e)}}},ay=t9(()=>rr(rO.object({results:rO.array(rO.object({day:rO.string().optional(),hour:rO.string().optional(),user:rO.string().optional(),model:rO.string().optional(),tag:rO.string().optional(),provider:rO.string().optional(),credential_type:rO.enum(["byok","system"]).optional(),total_cost:rO.number(),market_cost:rO.number().optional(),input_tokens:rO.number().optional(),output_tokens:rO.number().optional(),cached_input_tokens:rO.number().optional(),cache_creation_input_tokens:rO.number().optional(),reasoning_tokens:rO.number().optional(),request_count:rO.number().optional()}).transform(({credential_type:e,total_cost:t,market_cost:r,input_tokens:a,output_tokens:n,cached_input_tokens:i,cache_creation_input_tokens:o,reasoning_tokens:s,request_count:l,...c})=>({...c,...void 0!==e?{credentialType:e}:{},totalCost:t,...void 0!==r?{marketCost:r}:{},...void 0!==a?{inputTokens:a}:{},...void 0!==n?{outputTokens:n}:{},...void 0!==i?{cachedInputTokens:i}:{},...void 0!==o?{cacheCreationInputTokens:o}:{},...void 0!==s?{reasoningTokens:s}:{},...void 0!==l?{requestCount:l}:{}})))}))),av=class{constructor(e){this.config=e}async getGenerationInfo(e){try{let t=new URL(this.config.baseURL),{value:r}=await tC({url:`${t.origin}/v1/generation?id=${encodeURIComponent(e.id)}`,validateUrl:!1,headers:this.config.headers?await rp(this.config.headers):void 0,successfulResponseHandler:rg(ab),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),fetch:this.config.fetch});return r}catch(e){throw await as(e)}}},ab=t9(()=>rr(rO.object({data:rO.object({id:rO.string(),total_cost:rO.number(),upstream_inference_cost:rO.number(),usage:rO.number(),created_at:rO.string(),model:rO.string(),is_byok:rO.boolean(),provider_name:rO.string(),streamed:rO.boolean(),finish_reason:rO.string(),latency:rO.number(),generation_time:rO.number(),native_tokens_prompt:rO.number(),native_tokens_completion:rO.number(),native_tokens_reasoning:rO.number(),native_tokens_cached:rO.number(),native_tokens_cache_creation:rO.number(),billable_web_search_calls:rO.number()}).transform(({total_cost:e,upstream_inference_cost:t,created_at:r,is_byok:a,provider_name:n,finish_reason:i,generation_time:o,native_tokens_prompt:s,native_tokens_completion:l,native_tokens_reasoning:c,native_tokens_cached:u,native_tokens_cache_creation:d,billable_web_search_calls:p,...h})=>({...h,totalCost:e,upstreamInferenceCost:t,createdAt:r,isByok:a,providerName:n,finishReason:i,generationTime:o,promptTokens:s,completionTokens:l,reasoningTokens:c,cachedTokens:u,cac
37heCreationTokens:d,billableWebSearchCalls:p}))}).transform(({data:e})=>e))),aw=class{constructor(e){this.config=e,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]},this.provider=`${e.provider}.batch`}async doStartBatch({requests:e,providerOptions:t,headers:r,abortSignal:a,webhookUrl:n}){var i,o=e;for(let e of o){let t=e.type;if("text"!==t)throw new eq({functionality:`batch request type: ${t}`,message:`The AI Gateway Batch API does not support batch requests with type "${t}".`})}let s=function(e){var t;let r=null==(t=e[0])?void 0:t.modelId;if(null==r)throw new eS({argument:"requests",message:"The AI Gateway Batch API requires at least one request."});for(let t of e)if(t.modelId!==r)throw new eS({argument:"requests",message:`The AI Gateway Batch API requires all requests in a batch to use the same model. Found "${r}" and "${t.modelId}".`});return r}(e),l=this.config.headers?await rp(this.config.headers):void 0,c=function(e){let t=null==e?void 0:e.gateway;if(null==t||"object"!=typeof t||Array.isArray(t))return;let r=t.idempotencyKey;return"string"==typeof r&&r.length>0?r:void 0}(t),u=function(e){let t=null==e?void 0:e.gateway;if(null==t||"object"!=typeof t||Array.isArray(t)||!("idempotencyKey"in t))return e;let{idempotencyKey:r,...a}=t,n={...e};if(0===Object.keys(a).length?delete n.gateway:n.gateway=a,0!==Object.keys(n).length)return n}(t);try{let{value:t}=await rc({url:this.getBatchUrl("start"),headers:eQ(l,r,{"ai-model-id":s},await rp(this.config.o11yHeaders),null!=c?{"idempotency-key":c}:void 0),body:{...null!=n&&{callbackUrl:n},requests:e.map(e=>({id:e.id,type:e.type,modelId:e.modelId,options:function(e){for(let t of e.prompt)if(Array.isArray(t.content)){for(let e of t.content)if("file"===e.type||"reasoning-file"===e.type)e.data=ax(e.data);else if("tool-result"===e.type&&"content"===e.output.type)for(let t of e.output.value)"file"===t.type&&(t.data=ax(t.data))}return e}(e.options)})),...null!=u&&{providerOptions:u}},successfulResponseHandler:rg(aA),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});return{batchId:t.batchId,...aE(t),warnings:null!=(i=t.warnings)?i:[]}}catch(e){if(ak(e))throw e;throw await as(e,await au(null!=l?l:{}))}}async doGetBatchStatus({batchId:e,headers:t,abortSignal:r}){let a=this.config.headers?await rp(this.config.headers):void 0;try{let{value:n}=await rc({url:this.getBatchUrl("status"),headers:eQ(a,t,await rp(this.config.o11yHeaders)),body:{batchId:e},successfulResponseHandler:rg(aR),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return aE(n)}catch(e){if(ak(e))throw e;throw await as(e,await au(null!=a?a:{}))}}async doGetBatchResults({batchId:e,headers:t,abortSignal:r}){let a=this.config.headers?await rp(this.config.headers):void 0;try{var n;let i,{value:o}=await rc({url:this.getBatchUrl("results"),headers:eQ(a,t,await rp(this.config.o11yHeaders)),body:{batchId:e},successfulResponseHandler:async({response:e})=>{let t=e7(e);if(null==e.body)throw new ev({});return{responseHeaders:t,value:ry({stream:e.body,schema:aI})}},failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return n=aS(o),i=!1,new ReadableStream({async pull(e){if(!i)try{let{value:t,done:r}=await n.next();r?e.close():e.enqueue(t)}catch(t){e.error(t)}},async cancel(e){if(i=!0,n.return)try{await n.return(e)}catch(e){}}})}catch(e){if(ak(e))throw e;throw await as(e,await au(null!=a?a:{}))}}async doCancelBatch({batchId:e,headers:t,abortSignal:r}){let a=this.config.headers?await rp(this.config.headers):void 0;try{let{value:n}=await rc({url:this.getBatchUrl("cancel"),headers:eQ(a,t,await rp(this.config.o11yHeaders)),body:{batchId:e},successfulResponseHandler:rg(aR),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return{...null!=n.providerMetadata&&{providerMetadata:n.providerMetadata}}}catch(e){if(ak(e))throw e;throw await as(e,await au(null!=a?a:{}))}}getBatchUrl(e){return`${this.config.baseURL}/batch/${e}`}};function ax(e){if("data"===e.type){let t=e.data;if(t instanceof Uint8Array)return{...e,data:es.Buffer.from(t).toString("base64")}}return e}function ak(e){return!!(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"TimeoutError"===e.name)}function aE(e){var t,r,a,n;let i=function({total:e,pending:t,completed:r,failed:a}
37){if(tT(e)&&tT(t)&&tT(r)&&tT(a)&&t+r+a===e)return{total:e,pending:t,completed:r,failed:a}}({total:null==(t=e.requestCounts)?void 0:t.total,pending:null==(r=e.requestCounts)?void 0:r.pending,completed:null==(a=e.requestCounts)?void 0:a.completed,failed:null==(n=e.requestCounts)?void 0:n.failed});return{status:e.status,...null!=e.rawStatus&&{rawStatus:e.rawStatus},...null!=i&&{requestCounts:i},...null!=e.error&&{error:{message:e.error.message,...null!=e.error.type&&{type:e.error.type},...null!=e.error.code&&{code:e.error.code},...null!=e.error.statusCode&&{statusCode:e.error.statusCode}}},...null!=e.createdAt&&{createdAt:e.createdAt},...null!=e.expiresAt&&{expiresAt:e.expiresAt},...null!=e.providerMetadata&&{providerMetadata:e.providerMetadata}}}async function*aS(e){var t;for await(let r of e){if("succeeded"===r.status){let e=null==(t=r.result)?void 0:t.response;void 0!==e&&"string"==typeof e.timestamp&&(e.timestamp=new Date(e.timestamp))}yield r}}var aI=rO.object({type:rO.literal("text"),id:rO.string(),status:rO.enum(["cancelled","expired","failed","succeeded"])}).catchall(rO.unknown()),aC=rO.object({message:rO.string(),type:rO.string().nullish(),code:rO.string().nullish(),statusCode:rO.number().nullish()}),a_=rO.object({total:rO.number().nullish(),pending:rO.number().nullish(),completed:rO.number().nullish(),failed:rO.number().nullish()}),aj=rO.record(rO.string(),rO.record(rO.string(),rO.unknown())),aT=rO.object({status:rO.enum(["completed","failed","pending"]),rawStatus:rO.string().nullish(),requestCounts:a_.nullish(),error:aC.nullish(),createdAt:rO.string().nullish(),expiresAt:rO.string().nullish(),providerMetadata:aj.nullish()}),aA=aT.extend({batchId:rO.string(),warnings:rO.array(rO.object({requestId:rO.string().nullish(),warning:rO.unknown()}).catchall(rO.unknown())).nullish()}),aR=aT,aM=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]}}static[eK](e){return rE({modelId:e.modelId,config:e.config})}static[eX](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async getArgs(e){let{abortSignal:t,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){var t;let{args:r,warnings:a}=await this.getArgs(e),{abortSignal:n}=e,i=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:o,value:s,rawValue:l}=await rc({url:this.getUrl(),headers:eQ(i,e.headers,this.getModelConfigHeaders(this.modelId,!1),await rp(this.config.o11yHeaders)),body:r,successfulResponseHandler:rg(rO.any()),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{...s,request:{body:r},response:{headers:o,body:l},warnings:[...null!=(t=s.warnings)?t:[],...a]}}catch(e){throw await as(e,await au(null!=i?i:{}))}}async doStream(e){let{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=this.config.headers?await rp(this.config.headers):void 0;try{let i,{value:o,responseHeaders:s}=await rc({url:this.getUrl(),headers:eQ(n,e.headers,this.getModelConfigHeaders(this.modelId,!0),await rp(this.config.o11yHeaders)),body:t,successfulResponseHandler:(i=rO.any(),async({response:e,url:t,requestBodyValues:r})=>{let a=e7(e);if(null==e.body)throw new ev({});return{responseHeaders:a,value:rs({stream:function({stream:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n}){let i=e.getReader(),o=!1,s=()=>{o||(i.releaseLock(),o=!0)};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.read();t?(s(),e.close()):e.enqueue(r)}catch(i){if(s(),te(i))return void e.error(i);e.error(ta({error:new em({message:"Failed to process successful response",cause:i,statusCode:a,url:t,responseHeaders:n,requestBodyValues:r}),url:t,requestBodyValues:r}))}},async cancel(e){try{await i.cancel(e)}finally{s()}}})}({stream:e.body,url:t,requestBodyValues:r,statusCode:e.status,responseHeaders:a}),schema:i})}}),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});
37return{stream:o.pipeThrough(new TransformStream({start(e){r.length>0&&e.enqueue({type:"stream-start",warnings:r})},transform(t,r){if(t.success){let a=t.value;("raw"!==a.type||e.includeRawChunks)&&("response-metadata"===a.type&&a.timestamp&&"string"==typeof a.timestamp&&(a.timestamp=new Date(a.timestamp)),r.enqueue(a))}else r.error(t.error)}})),request:{body:t},response:{headers:s}}}catch(e){throw await as(e,await au(null!=n?n:{}))}}maybeEncodeFileParts(e){for(let t of e.prompt)if(Array.isArray(t.content)){for(let e of t.content)if("file"===e.type||"reasoning-file"===e.type)e.data=aO(e.data);else if("tool-result"===e.type&&"content"===e.output.type)for(let t of e.output.value)"file"===t.type&&(t.data=aO(t.data))}return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,t){return{"ai-language-model-specification-version":"4","ai-language-model-id":e,"ai-language-model-streaming":String(t)}}};function aO(e){if("data"===e.type){let t=e.data;if(t instanceof Uint8Array)return{...e,data:es.Buffer.from(t).toString("base64")}}return e}var aP=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}static[eK](e){return rE({modelId:e.modelId,config:e.config})}static[eX](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:a}){var n,i;let o=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:s,value:l,rawValue:c}=await rc({url:this.getUrl(),headers:eQ(o,null!=t?t:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{values:e,...a?{providerOptions:a}:{}},successfulResponseHandler:rg(aL),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:l.embeddings,usage:null!=(n=l.usage)?n:void 0,providerMetadata:l.providerMetadata,response:{headers:s,body:c},warnings:null!=(i=l.warnings)?i:[]}}catch(e){throw await as(e,await au(null!=o?o:{}))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"4","ai-model-id":this.modelId}}},aN=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),aL=t9(()=>rr(rO.object({embeddings:rO.array(rO.array(rO.number())),usage:rO.object({tokens:rO.number()}).nullish(),warnings:rO.array(aN).optional(),providerMetadata:rO.record(rO.string(),rO.record(rO.string(),rO.unknown())).optional()}))),a$=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}static[eK](e){return rE({modelId:e.modelId,config:e.config})}static[eX](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:r,aspectRatio:a,seed:n,files:i,mask:o,providerOptions:s,headers:l,abortSignal:c}){var u,d,p,h;let m=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:f,value:g}=await rc({url:this.getUrl(),headers:eQ(m,null!=l?l:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{prompt:e,n:t,...r&&{size:r},...a&&{aspectRatio:a},...n&&{seed:n},...s&&{providerOptions:s},...i&&{files:i.map(e=>aD(e))},...o&&{mask:aD(o)}},successfulResponseHandler:rg(aB),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...c&&{abortSignal:c},fetch:this.config.fetch});return{images:g.images,...null!=g.isRetryable&&{isRetryable:g.isRetryable},warnings:null!=(u=g.warnings)?u:[],providerMetadata:g.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:f},...null!=g.usage&&{usage:{inputTokens:null!=(d=g.usage.inputTokens)?d:void 0,outputTokens:null!=(p=g.usage.outputTokens)?p:void 0,totalTokens:null!=(h=g.usage.totalTokens)?h:void 0}}}}catch(e){throw await as(e,await au(null!=m?m:{}))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"4","ai-model-id":this.modelId}}};function aD(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:e8(e.data)}:e}var aU=rO.object({images:rO.array(rO.unknown()).optional()}).catchall(rO.unknown()),aF=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),aH=rO.object({inputTokens:rO.number().nullish(),outputTokens:rO.number().nullish(),totalTokens:rO.number().nullish()}),aB=rO.object({images:rO.array(rO.string()),isRetryable:rO.boolean().optional(),warnings:rO.array(aF).optional(),providerMetadata:rO.record(rO.string(),aU).optional(),usage:aH.optional()}),aq=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate(e){var t,r;let{headers:a,abortSignal:n}=e,i=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:o,value:s}=await rc({url:this.getUrl(),headers:eQ(i,null!=a?a:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders),{accept:"text/event-stream"}),body:this.buildRequestBody(e),successfulResponseHandler:async({response:e,url:t,requestBodyValues:r})=>{if(null==e.body)throw new em({message:"SSE response body is empty",url:t,requestBodyValues:r,statusCode:e.status});let a=rs({stream:e.body,schema:aZ}).getReader(),{done:n,value:i}=await a.read();if(a.releaseLock(),n||!i)throw new em({message:"SSE stream ended without a data event",url:t,requestBodyValues:r,statusCode:e.status});if(!i.success)throw new em({message:"Failed to parse video SSE event",cause:i.error,url:t,requestBodyValues:r,statusCode:e.status});let o=i.value;if("error"===o.type)throw new em({message:o.message,statusCode:o.statusCode,url:t,requestBodyValues:r,responseHeaders:Object.fromEntries([...e.headers]),responseBody:JSON.stringify(o),data:{error:{message:o.message,type:o.errorType,param:o.param}}});return{value:{videos:o.videos,warnings:o.warnings,providerMetadata:o.providerMetadata},responseHeaders:Object.fromEntries([...e.headers])}},failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{videos:s.videos,warnings:null!=(t=s.warnings)?t:[],providerMetadata:null!=(r=s.providerMetadata)?r:void 0,response:{timestamp:new Date,modelId:this.modelId,headers:o}}}catch(e){throw await as(e,await au(null!=i?i:{}))}}async handleWebhookOption({webhook:e}){let{url:t,received:r}=await e();return{webhookUrl:t,received:r}}async doStart(e){var t,r;let{headers:a,abortSignal:n,webhookUrl:i}=e,o=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:s,value:l}=await rc({url:this.getStartUrl(),headers:eQ(o,null!=a?a:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{...this.buildRequestBody(e),...i&&{callbackUrl:i}},successfulResponseHandler:rg(aY),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{operation:l.operation,warnings:null!=(t=l.warnings)?t:[],providerMetadata:null!=(r=l.providerMetadata)?r:void 0,response:{timestamp:new Date,modelId:this.modelId,headers:s}}}catch(e){throw await as(e,await au(null!=o?o:{}))}}async doStatus({operation:e,abortSignal:t,headers:r}){var a,n,i,o,s,l;let c=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:u,value:d}=await rc({url:this.getStatusUrl(),headers:eQ(c,null!=r?r:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{operation:e},successfulResponseHandler:rg(aJ),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}
37),...t&&{abortSignal:t},fetch:this.config.fetch}),p={timestamp:new Date,modelId:this.modelId,headers:u};if("completed"===d.status)return{status:"completed",videos:d.videos,warnings:null!=(a=d.warnings)?a:[],providerMetadata:null!=(n=d.providerMetadata)?n:void 0,response:p};if("error"===d.status)return{status:"error",error:d.error,providerMetadata:null!=(i=d.providerMetadata)?i:void 0,response:p};if("cancelled"===d.status)return{status:"error",error:"Video generation was cancelled.",providerMetadata:null!=(o=d.providerMetadata)?o:void 0,response:p};return{status:"pending",warnings:null!=(s=d.warnings)?s:[],providerMetadata:null!=(l=d.providerMetadata)?l:void 0,response:p}}catch(e){throw await as(e,await au(null!=c?c:{}))}}buildRequestBody({prompt:e,n:t,aspectRatio:r,resolution:a,duration:n,fps:i,seed:o,generateAudio:s,image:l,frameImages:c,inputReferences:u,providerOptions:d}){return{prompt:e,n:t,...r&&{aspectRatio:r},...a&&{resolution:a},...n&&{duration:n},...i&&{fps:i},...o&&{seed:o},...void 0!==s&&{generateAudio:s},...d&&{providerOptions:d},...l&&{image:aW(l)},...c&&{frameImages:c.map(e=>({...e,image:aW(e.image)}))},...u&&{inputReferences:u.map(e=>aW(e))}}}getUrl(){return`${this.config.baseURL}/video-model`}getStartUrl(){return`${this.config.baseURL}/video-model/start`}getStatusUrl(){return`${this.config.baseURL}/video-model/status`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"4","ai-model-id":this.modelId}}};function aW(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:e8(e.data)}:e}var aV=rO.object({videos:rO.array(rO.unknown()).optional()}).catchall(rO.unknown()),aG=rO.union([rO.object({type:rO.literal("url"),url:rO.string(),mediaType:rO.string()}),rO.object({type:rO.literal("base64"),data:rO.string(),mediaType:rO.string()})]),az=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),aZ=rO.discriminatedUnion("type",[rO.object({type:rO.literal("result"),videos:rO.array(aG),warnings:rO.array(az).optional(),providerMetadata:rO.record(rO.string(),aV).optional()}),rO.object({type:rO.literal("error"),message:rO.string(),errorType:rO.string(),statusCode:rO.number(),param:rO.unknown().nullable()})]),aY=rO.object({operation:rO.unknown(),warnings:rO.array(az).nullish(),providerMetadata:rO.record(rO.string(),aV).nullish()}),aJ=rO.discriminatedUnion("status",[rO.object({status:rO.literal("pending"),warnings:rO.array(az).nullish(),providerMetadata:rO.record(rO.string(),aV).nullish()}),rO.object({status:rO.literal("completed"),videos:rO.array(aG),warnings:rO.array(az).nullish(),providerMetadata:rO.record(rO.string(),aV).nullish()}),rO.object({status:rO.literal("error"),error:rO.string(),providerMetadata:rO.record(rO.string(),aV).nullish()}),rO.object({status:rO.literal("cancelled"),providerMetadata:rO.record(rO.string(),aV).nullish()})]),aK=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4",this.supportedQuestionTypes=["choice","score","boolean"]}get provider(){return this.config.provider}async doEvaluate({state:e,questions:t,headers:r,abortSignal:a,providerOptions:n}){var i;let o=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:s,value:l,rawValue:c}=await rc({url:this.getUrl(),headers:eQ(o,null!=r?r:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{state:e,questions:t,...n?{providerOptions:n}:{}},successfulResponseHandler:rg(a0),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...a&&{abortSignal:a},fetch:this.config.fetch});return{answers:l.answers,...l.rounding?{rounding:l.rounding}:{},...l.usage?{usage:l.usage}:{},warnings:null!=(i=l.warnings)?i:[],providerMetadata:l.providerMetadata,response:{modelId:this.modelId,headers:s,body:c}}}catch(e){throw await as(e,await au(null!=o?o:{}))}}getUrl(){return`${this.config.baseURL}/evaluation-model`}getModelConfigHeaders(){return{"ai-evaluation-model-specification-version":"4","ai-model-id":this.modelId}}},aX=rO.discriminatedUnion("type",[rO.object({type:rO.literal("choice"),choice:rO.string(),probabilities:rO.record(rO.string(),rO.number()).optional()}),rO.object({type:rO.literal("score"),score:rO.number(),probabilities:rO.record(rO.string(),rO.number()).optional()}),rO.object({type:rO.literal("boolean"),probability:rO.number()})]),aQ=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),a0=t9(()=>rr(rO.object({answers:rO.record(rO.string(),aX),rounding:rO.object({probabilityDecimals:rO.number().optional(),scoreDecimals:rO.number().optional()}).optional(),usage:rO.object({inputTokens:rO.number().optional(),outputTokens:rO.number().optional()}).optional(),warnings:rO.array(aQ).optional(),providerMetadata:rO.record(rO.string(),rO.record(rO.string(),rO.unknown())).optional()}))),a1=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doRerank({documents:e,query:t,topN:r,headers:a,abortSignal:n,providerOptions:i}){var o;let s=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:l,value:c,rawValue:u}=await rc({url:this.getUrl(),headers:eQ(s,null!=a?a:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{documents:e,query:t,...null!=r?{topN:r}:{},...i?{providerOptions:i}:{}},successfulResponseHandler:rg(a2),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{ranking:c.ranking,providerMetadata:c.providerMetadata,response:{headers:l,body:u},warnings:null!=(o=c.warnings)?o:[]}}catch(e){throw await as(e,await au(null!=s?s:{}))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"4","ai-model-id":this.modelId}}},a5=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),a2=t9(()=>rr(rO.object({ranking:rO.array(rO.object({index:rO.number(),relevanceScore:rO.number()})),warnings:rO.array(a5).optional(),providerMetadata:rO.record(rO.string(),rO.record(rO.string(),rO.unknown())).optional()}))),a4=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({text:e,voice:t,outputFormat:r,instructions:a,speed:n,language:i,providerOptions:o,headers:s,abortSignal:l}){var c;let u=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:d,value:p,rawValue:h}=await rc({url:this.getUrl(),headers:eQ(u,null!=s?s:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{text:e,...t&&{voice:t},...r&&{outputFormat:r},...a&&{instructions:a},...null!=n&&{speed:n},...i&&{language:i},...o&&{providerOptions:o}},successfulResponseHandler:rg(a8),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}
37),...l&&{abortSignal:l},fetch:this.config.fetch});return{audio:p.audio,warnings:null!=(c=p.warnings)?c:[],providerMetadata:p.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:d,body:h}}}catch(e){throw await as(e,await au(null!=u?u:{}))}}getUrl(){return`${this.config.baseURL}/speech-model`}getModelConfigHeaders(){return{"ai-speech-model-specification-version":"4","ai-model-id":this.modelId}}},a3=rO.object({}).catchall(rO.unknown()),a6=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),a8=rO.object({audio:rO.string(),warnings:rO.array(a6).optional(),providerMetadata:rO.record(rO.string(),a3).optional()}),a7=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({audio:e,mediaType:t,providerOptions:r,headers:a,abortSignal:n}){var i,o,s,l;let c=this.config.headers?await rp(this.config.headers):void 0;try{let{responseHeaders:u,value:d,rawValue:p}=await rc({url:this.getUrl(),headers:eQ(c,null!=a?a:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),body:{audio:e instanceof Uint8Array?e8(e):e,mediaType:t,...r&&{providerOptions:r}},successfulResponseHandler:rg(nr),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),...n&&{abortSignal:n},fetch:this.config.fetch});return{text:d.text,segments:null!=(i=d.segments)?i:[],language:null!=(o=d.language)?o:void 0,durationInSeconds:null!=(s=d.durationInSeconds)?s:void 0,warnings:null!=(l=d.warnings)?l:[],providerMetadata:d.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:u,body:p}}}catch(e){throw await as(e,await au(null!=c?c:{}))}}async doStream(e){var t,r,a,n,i;let o,s,l,c=null!=(a=null==(r=null==(t=this.config._internal)?void 0:t.currentDate)?void 0:r.call(t))?a:new Date,u=eQ(await rp(null!=(n=this.config.headers)?n:{}),null!=(i=e.headers)?i:{},this.getModelConfigHeaders(),await rp(this.config.o11yHeaders)),d=await au(u),p={type:"transcription-stream.start",inputAudioFormat:e.inputAudioFormat,...null!=e.providerOptions&&{providerOptions:e.providerOptions},...null!=e.includeRawChunks&&{includeRawChunks:e.includeRawChunks}};return{stream:function({webSocket:e,url:t,protocols:r,headers:a,startFrame:n,audio:i,abortSignal:o,authMethod:s}){let l=!1,c=()=>{};return new ReadableStream({start:u=>{let d,p,h,m=!1,f=!1;c=e=>{null!=d?d.cancel().catch(()=>{}):i.cancel().catch(()=>{}),null==h||h.close(e)};let g=e=>{l||(l=!0,c(),na(u,e,s))},y=async e=>{let t=i.getReader();d=t;try{for(;;){let{done:r,value:a}=await t.read();if(r||l)break;let n="string"==typeof a?function(e){let t=e6(e.replace(/-/g,"+").replace(/_/g,"/"));return Uint8Array.from(t,e=>e.codePointAt(0))}(a):a;for(let t=0;t<n.length&&!l;t+=65536)e.send(n.subarray(t,t+65536)),await e4(e)}}finally{t.releaseLock(),d===t&&(d=void 0)}l||f||e.send(JSON.stringify({type:"transcription-stream.audio-done"}))};h=function({url:e,protocols:t,headers:r,webSocket:a,abortSignal:n,onOpen:i,onMessageText:o,onProcessingError:s,onSocketError:l,onClose:c,onAbort:u}){var d,p;let h,m,f=e=>{null!=m&&(null==n||n.removeEventListener("abort",m),m=void 0);try{null==h||h.close(e)}catch(e){}};if(null==n?void 0:n.aborted)return null==u||u(null!=(d=n.reason)?d:Error("Aborted")),{socket:void 0,close:f};try{h=new(function(e){let t=null!=e?e:globalThis.WebSocket;if(null==t)throw Error("No WebSocket implementation available.");return t}(a))(e,t,{headers:(p=null!=r?r:{},Object.fromEntries(Object.entries(p).filter(([e,t])=>null!=t)))})}catch(e){return s(e),{socket:void 0,close:f}}null!=n&&null!=u&&(m=()=>{var e;return u(null!=(e=n.reason)?e:Error("Aborted"))},n.addEventListener("abort",m,{once:!0}));let g=h;h.onopen=()=>{try{null==i||i(g)}catch(e){s(e)}};let y=Promise.resolve();return h.onmessage=e=>{y=y.then(()=>e2(e.data)).then(e=>o(e)).catch(s)},h.onerror=()=>{y=y.then(()=>null==l?void 0:l()).catch(s)}
37,h.onclose=e=>{let t="number"==typeof(null==e?void 0:e.code)?e.code:void 0,r="string"==typeof(null==e?void 0:e.reason)?e.reason:void 0;y=y.then(()=>null==c?void 0:c({code:t,reason:r})).catch(s)},{socket:h,close:f}}({url:t,protocols:r,headers:a,webSocket:e,abortSignal:o,onAbort:e=>{l||(l=!0,c(),u.error(e))},onProcessingError:g,onOpen:e=>{e.send(JSON.stringify(n)),y(e).catch(g)},onMessageText:e=>{if(l)return;let t=function(e){let t;try{t=tO(e)}catch(e){return}if(null==t||"object"!=typeof t||Array.isArray(t))return;let r=t;switch(r.type){case"stream-start":return Array.isArray(r.warnings)&&r.warnings.every(r_)?r:void 0;case"transcript-delta":return rS(r.delta)&&rC(r.id,rS)&&rC(r.providerMetadata,t_)?r:void 0;case"transcript-partial":return rS(r.text)&&rC(r.id,rS)&&rC(r.startSecond,rI)&&rC(r.durationInSeconds,rI)&&rC(r.channelIndex,rI)&&rC(r.providerMetadata,t_)?r:void 0;case"transcript-final":return rS(r.text)&&rC(r.id,rS)&&rC(r.startSecond,rI)&&rC(r.endSecond,rI)&&rC(r.channelIndex,rI)&&rC(r.providerMetadata,t_)?r:void 0;case"finish":return rS(r.text)&&Array.isArray(r.segments)&&r.segments.every(rj)&&rC(r.language,rS)&&rC(r.durationInSeconds,rI)&&rC(r.providerMetadata,t_)?r:void 0;case"response-metadata":{if(!(rC(r.modelId,rS)&&rC(r.headers,t_)))return;let e=r.timestamp;if(null==e)return{...r,timestamp:void 0};if("string"!=typeof e)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:{...r,timestamp:t}}case"raw":return"rawValue"in r?r:void 0;case"error":return"error"in r?r:void 0;default:return}}(e);if(null!=t){if("finish"===t.type){l=!0,u.enqueue(t),u.close(),c(1e3);return}"error"===t.type&&(m=!0,p=t.error,f=!0,null!=d?(d.cancel().catch(()=>{}),d=void 0):i.cancel().catch(()=>{})),u.enqueue(t)}},onSocketError:()=>{g(Error("Connection error on AI Gateway transcription stream"))},onClose:()=>{if(m){if(l)return;ni(p,s).then(g);return}g(Error("AI Gateway transcription stream closed before a finish part was received"))}})},cancel:()=>{l||(l=!0,c())}})}({webSocket:this.config.webSocket,url:a9(this.config.baseURL,this.modelId),protocols:null==(l=(null==(s=(o=ti(u)).authorization)?void 0:s.startsWith("Bearer "))?s.slice(7):void 0)?[rR]:rM(rR,l,{teamIdOrSlug:o[ac]}),headers:u,startFrame:p,audio:e.audio,abortSignal:e.abortSignal,authMethod:d}),request:{body:p},response:{timestamp:c,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/transcription-model`}getModelConfigHeaders(){return{"ai-transcription-model-specification-version":"4","ai-model-id":this.modelId}}};function a9(e,t){let r=new URL(`${e.replace(/^http/,"ws")}/transcription-model`);return r.searchParams.set("ai-model-id",t),r.toString()}var ne=rO.object({}).catchall(rO.unknown()),nt=rO.discriminatedUnion("type",[rO.object({type:rO.literal("unsupported"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("compatibility"),feature:rO.string(),details:rO.string().optional()}),rO.object({type:rO.literal("deprecated"),setting:rO.string(),message:rO.string()}),rO.object({type:rO.literal("other"),message:rO.string()})]),nr=rO.object({text:rO.string(),segments:rO.array(rO.object({text:rO.string(),startSecond:rO.number(),endSecond:rO.number()})).optional(),language:rO.string().nullish(),durationInSeconds:rO.number().nullish(),warnings:rO.array(nt).optional(),providerMetadata:rO.record(rO.string(),ne).optional()});async function na(e,t,r){e.error(await as(t,r))}var nn={authentication_error:401,failed_dependency:424,forbidden:403,internal_server_error:500,invalid_request_error:400,model_not_found:404,rate_limit_exceeded:429};async function ni(e,t){return"object"==typeof e&&null!=e&&"message"in e&&"string"==typeof e.message&&"type"in e&&"string"==typeof e.type&&e.type in nn?at({response:{error:{message:e.message,type:e.type}},statusCode:nn[e.type],authMethod:t}):Error(`AI Gateway transcription stream failed: ${null!=e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:ew(e)}`)}var no=class{constructor(e,t){this.specificationVersion="v4",this.modelId=e,this.provider=t.provider,this.config=t}async doCreateClientSecret(e){var t,r;let a,n=await this.config.createClientSecret({modelId:this.modelId,...(null==e?void 0:e.expiresAfterSeconds)!=null&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:n.token,url:(t=this.config.baseURL,r=this.modelId,(a=new URL(`${t.replace(/^http/,"ws")}/realtime-model`)).searchParams.set("ai-model-id",r),a.toString()),...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}getWebSocketConfig(e){return{url:e.url,protocols:rM("ai-gateway-realtime.v1",e.token,{teamIdOrSlug:this.config.teamIdOrSlug})}}parseServerEvent(e){return e}serializeClientEvent(e){return e}buildSessionConfig(e){return e}},ns=rd({id:"gateway.exa_search",inputSchema:t9(()=>rr(rO.object({query:rO.string().describe("Natural-language web search query. This is required."),type:rO.enum(["auto","fast","instant"]).optional().describe("Search method. Use auto for the default balance of speed and quality."),num_results:rO.number().optional().describe("Maximum number of results to return (1-100, default: 10)."),category:rO.enum(["company","people","research paper","news","personal site","financial report"]).optional().describe("Optional content category to focus results."),user_location:rO.string().optional().describe("Two-letter ISO country code such as 'US'."),include_domains:rO.array(rO.string()).optional().describe("Only return results from these domains."),exclude_domains:rO.array(rO.string()).optional().describe("Exclude results from these domains."),start_published_date:rO.string().optional().describe("Only return links published after this ISO 8601 date."),end_published_date:rO.string().optional().describe("Only return links published before this ISO 8601 date."),contents:rO.object({text:rO.union([rO.boolean(),rO.object({max_characters:rO.number().optional(),include_html_tags:rO.boolean().optional(),verbosity:rO.enum(["compact","standard","full"]).optional(),include_sections:rO.array(rO.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional(),exclude_sections:rO.array(rO.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional()})]).optional(),highlights:rO.union([rO.boolean(),rO.object({query:rO.string().optional(),max_characters:rO.number().optional()})]).optional(),max_age_hours:rO.number().optional(),livecrawl_timeout:rO.number().optional(),subpages:rO.number().optional(),subpage_target:rO.union([rO.string(),rO.array(rO.string())]).optional(),extras:rO.object({links:rO.number().optional(),image_links:rO.number().optional()}).optional()}).optional().describe("Controls extracted page content and freshness.")}
37))),outputSchema:t9(()=>rr(rO.union([rO.object({requestId:rO.string(),searchType:rO.string().optional(),resolvedSearchType:rO.string().optional(),results:rO.array(rO.object({title:rO.string(),url:rO.string(),id:rO.string(),publishedDate:rO.string().nullable().optional(),author:rO.string().nullable().optional(),image:rO.string().nullable().optional(),favicon:rO.string().nullable().optional(),text:rO.string().optional(),highlights:rO.array(rO.string()).optional(),highlightScores:rO.array(rO.number()).optional(),summary:rO.string().optional(),subpages:rO.array(rO.any()).optional(),extras:rO.object({links:rO.array(rO.string()).optional(),imageLinks:rO.array(rO.string()).optional()}).optional()})),costDollars:rO.object({total:rO.number().optional(),search:rO.record(rO.string(),rO.number()).optional()}).optional()}),rO.object({error:rO.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","execution_error","unknown"]),statusCode:rO.number().optional(),message:rO.string()})])))}),nl=rd({id:"gateway.parallel_search",inputSchema:t9(()=>rr(rO.object({objective:rO.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:rO.array(rO.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:rO.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:rO.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:rO.object({include_domains:rO.array(rO.string()).optional().describe("Limit results to these domains. Use plain domain names only â e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),exclude_domains:rO.array(rO.string()).optional().describe("Exclude results from these domains. Use plain domain names only â e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),after_date:rO.string().optional().describe("Only include results published after this date. Use an ISO 8601 calendar date formatted YYYY-MM-DD (e.g. 2025-01-01); do not include a time.")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:rO.object({max_chars_per_result:rO.number().optional().describe("Maximum characters per result."),max_chars_total:rO.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:rO.object({max_age_seconds:rO.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}
37))),outputSchema:t9(()=>rr(rO.union([rO.object({searchId:rO.string(),results:rO.array(rO.object({url:rO.string(),title:rO.string(),excerpt:rO.string(),publishDate:rO.string().nullable().optional(),relevanceScore:rO.number().optional()}))}),rO.object({error:rO.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:rO.number().optional(),message:rO.string()})])))}),nc=rd({id:"gateway.perplexity_search",inputSchema:t9(()=>rr(rO.object({query:rO.union([rO.string(),rO.array(rO.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:rO.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:rO.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:rO.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:rO.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:rO.array(rO.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:rO.array(rO.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:rO.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:rO.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:rO.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:rO.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:rO.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}
37))),outputSchema:t9(()=>rr(rO.union([rO.object({results:rO.array(rO.object({title:rO.string(),url:rO.string(),snippet:rO.string(),date:rO.string().optional(),lastUpdated:rO.string().optional()})),id:rO.string()}),rO.object({error:rO.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:rO.number().optional(),message:rO.string()})])))}),nu=rO.object({count:rO.number().optional().describe("Maximum number of data results to return (1-20). When include_contents is true, each additional result adds its own data surcharge."),include_contents:rO.boolean().optional().describe("Inline rows for each data result. This adds a data surcharge based on row count and dataset source. To estimate cost, search with include_contents disabled and inspect cards.content.export_pricing. This applies to every returned card; limit sources.data.count and sources.data.max_rows to control cost."),mode:rO.enum(["inline","url"]).optional().describe("Requested data delivery mode. Search card data is always inline."),content_format:rO.enum(["card_json","csv","json_compact","json_records"]).optional().describe("Serialization for inlined card data."),max_rows:rO.number().optional().describe("Maximum rows to inline per result. Omit to use the allowance in cards.content.export_pricing. A data surcharge applies per 1,000 exported rows; lower values reduce cost."),node_ids:rO.array(rO.string()).optional().describe("Data Graph node IDs to prioritize. Maximum 20."),strict:rO.boolean().optional().describe("Only return cards matching node_ids. Requires a non-empty node_ids.")}),nd=rO.object({count:rO.number().optional().describe("Maximum number of web results to return (1-20)."),include_contents:rO.boolean().optional().describe("Inline extracted web page text. This can add a data charge."),category:rO.enum(["finance","news","sports"]).optional().describe("Optional web-result category filter."),include_domains:rO.array(rO.string()).optional().describe("Only return results from these bare domains."),exclude_domains:rO.array(rO.string()).optional().describe("Exclude results from these bare domains."),snippet_max_chars:rO.number().optional().describe("Maximum characters in each web-result snippet."),highlights:rO.boolean().optional().describe("Include highlighted passages in web results. Defaults to true in AI Gateway."),article_content_max_chars:rO.number().optional().describe("Maximum extracted characters per web page when including contents."),published_after:rO.string().optional().describe("Keep results published on or after this ISO date (YYYY-MM-DD)."),published_before:rO.string().optional().describe("Keep results published on or before this ISO date (YYYY-MM-DD).")}),np=t9(()=>rr(rO.object({query:rO.string().describe('Natural-language search query. Include the entity, metric, and time period. Quote a phrase to force it to one entity, for example "Tesla":PRODUCT price.'),effort:rO.enum(["deep","fast","instant"]).optional().describe("Search effort. fast is the balanced default, instant favors cached results and low latency, and deep broadens retrieval with reranking at higher cost and latency."),sources:rO.object({data:nu.optional(),web:nd.optional()}).optional().describe("Sources to search. Omit to search both curated data and the web. When provided, only keys present are searched."),location:rO.object({latitude:rO.number().describe("Latitude between -90 and 90."),longitude:rO.number().describe("Longitude between -180 and 180.")}).optional().describe("End-user coordinates for localized results."),country_code:rO.string().optional().describe("Two-letter ISO 3166-1 country code, such as 'US'."),locale:rO.string().optional().describe("BCP-47 locale, such as 'en-US'."),timezone:rO.string().optional().describe("IANA timezone, such as 'America/New_York'."),output_settings:rO.object({image_dark_mode:rO.boolean().optional().describe("Render card preview images in dark mode."),force_refresh:rO.boolean().optional().describe("Instant-effort only. Request a refreshed instant result.")}).optional().describe("Controls card rendering in the search response."),include_related:rO.number().optional().describe("Maximum related search suggestions to include (1-20).")}))),nh=rO.union([rO.boolean(),rO.number(),rO.string()]).nullable(),nm=rO.object({content_format:rO.enum(["card_json","csv","json_compact","json_records"]).nullish(),cost:rO.number().optional(),data:rO.string().nullish(),records:rO.array(rO.record(rO.string(),nh)).nullish(),dataset:rO.object({columns:rO.array(rO.object({name:rO.string(),type:rO.enum(["boolean","date","datetime","number","string"]),unit:rO.string().nullish()})),rows:rO.array(rO.array(nh)),total_rows:rO.number(),truncated:rO.boolean(),ref:rO.string(),sources:rO.array(rO.object({name:rO.string(),index:rO.enum(["data","web"]).optional()})),provenance:rO.enum(["query","web_extraction"]).optional()}).nullish(),card_data:rO.object({}).passthrough().nullish(),card_data_schema:rO.object({}).passthrough().nullish(),url:rO.string().nullish(),expires_at:rO.string().nullish(),total_rows:rO.number().nullish(),truncated:rO.boolean().optional(),export_pricing:rO.object({baseline_usd:rO.number(),free_rows:rO.number(),max_rows_ceiling:rO.number(),row_cpm_usd:rO.number()}).nullish(),manifest:rO.array(rO.object({dtype:rO.enum(["boolean","date","datetime","number","string"]).nullish(),entity:rO.string().nullish(),metric:rO.string().nullish(),name:rO.string().nullish(),unit:rO.string().nullish()})).nullish()}).passthrough(),nf=rO.object({card_id:rO.string().nullish(),title:rO.string().nullish(),description:rO.string().nullish(),semantic_description:rO.string().nullish(),webpage_url:rO.string().nullish(),image_url:rO.string().nullish(),embed_url:rO.string().nullish(),sources:rO.array(rO.object({source_name:rO.string().nullish(),source_description:rO.string().nullish(),source_index:rO.enum(["data","web"]),source_text:rO.string().nullish(),url:rO.string().nullish()})).nullish(),methodologies:rO.array(rO.object({methodology_name:rO.string().nullable(),methodology_description:rO.string().nullable()})).nullish(),source_indexes:rO.array(rO.enum(["data","web"])).nullish(),card_type:rO.string().nullish(),relevance:rO.enum(["High","Low","Medium"]).nullish(),content:nm.nullish(),exportable:rO.boolean().optional(),nodes:rO.array(rO.object({id:rO.string(),type:rO.enum(["entity","metric"]),name:rO.string(),description:rO.string().nullish()})).nullish(),metric_definitions:rO.array(rO.object({name:rO.string(),definition:rO.string()})).nullish(),data_freshness:rO.object({coverage_end:rO.string().nullish(),data_as_of:rO.string().nullish(),last_updated:rO.string().nullish()}).nullish()}).passthrough(),ng=rO.object({title:rO.string(),url:rO.string(),snippet:rO.string().nullish(),source_name:rO.string().nullish(),publish_date:rO.string().nullish(),content:nm.nullish()}).passthrough(),ny=rd({id:"gateway.tako_search",inputSchema:np,outputSc
37hema:t9(()=>rr(rO.union([rO.object({request_id:rO.string(),cards:rO.array(nf).optional(),web_results:rO.array(ng).optional(),usage:rO.object({total_cost_usd:rO.number(),compute:rO.object({cost_usd:rO.number()}).nullish(),data:rO.object({cost_usd:rO.number(),datasets:rO.number()}).nullish()}).nullish(),related:rO.array(rO.object({}).passthrough()).nullish()}).passthrough(),rO.object({error:rO.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown_tool"]),statusCode:rO.number().optional(),message:rO.string()})])))}),nv={exaSearch:(e={})=>ns(e),parallelSearch:(e={})=>nl(e),perplexitySearch:(e={})=>nc(e),takoSearch:(e={})=>ny(e)};async function nb(){var e;return null==(e=(0,rA.getContext)().headers)?void 0:e["x-vercel-id"]}var nw=rO.object({token:rO.string(),expiresAt:rO.number().nullish()}),nx=function(e={}){var t,r,a;let n=null,i=null,o=null!=(t=e.metadataCacheRefreshMillis)?t:3e5,s=0,l=null!=(r=null==(a=e.baseURL)?void 0:a.replace(/\/$/,""))?r:"https://ai-gateway.vercel.sh/v4/ai",c=t=>to({Authorization:`Bearer ${t.token}`,"ai-gateway-protocol-version":"0.0.1",[al]:t.authMethod,...null!=e.teamIdOrSlug?{[ac]:e.teamIdOrSlug}:{},...e.headers},"ai-sdk/gateway/4.0.92"),u=async()=>{try{return c(await nk(e))}catch(e){throw rD.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},d=async()=>{try{return await nk(e)}catch(e){throw rD.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},p=async t=>{if(void 0!==globalThis.window)throw Error("AI Gateway client secrets must be minted server-side: minting needs your Gateway credential, which must never reach the browser. Call gateway.experimental_realtime.getToken() or gateway.experimental_transcription.getToken() from your server and pass the returned token to the client.");let r=c(await d()),a=new URL("/v1/realtime/client-secrets",l).toString();try{let{value:n}=await rc({url:a,headers:r,body:{model:t.modelId,...null!=t.routeKind&&{routeKind:t.routeKind},...null!=t.expiresAfterSeconds&&{expiresIn:t.expiresAfterSeconds}},successfulResponseHandler:rg(nw),failedResponseHandler:rf({errorSchema:rO.any(),errorToMessage:e=>{var t;return null!=(t=ew(e))?t:"unknown error"}}),fetch:e.fetch});return{token:n.token,...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}catch(e){throw await as(e,await au(r))}},h=()=>{let e=tj({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),t=tj({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),r=tj({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),a=tj({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let n=await nb();return{...e&&{"ai-o11y-deployment-id":e},...t&&{"ai-o11y-environment":t},...r&&{"ai-o11y-region":r},...n&&{"ai-o11y-request-id":n},...a&&{"ai-o11y-project-id":a}}}},m=t=>new aM(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()}),f=async()=>{var t,r,a;let c=null!=(a=null==(r=null==(t=e._internal)?void 0:t.currentDate)?void 0:r.call(t).getTime())?a:Date.now();return(!n||c-s>o)&&(s=c,n=new ah({baseURL:l,headers:u,fetch:e.fetch}).getAvailableModels().then(e=>(i=e,e)).catch(async e=>{throw await as(e,await au(await u()))})),i?Promise.resolve(i):n},g=async()=>new ah({baseURL:l,headers:u,fetch:e.fetch}).getCredits().catch(async e=>{throw await as(e,await au(await u()))}),y=async t=>new ag({baseURL:l,headers:u,fetch:e.fetch}).getSpendReport(t).catch(async e=>{throw await as(e,await au(await u()))}),v=async t=>new av({baseURL:l,headers:u,fetch:e.fetch}).getGenerationInfo(t).catch(async e=>{throw await as(e,await au(await u()))}),b=function(e){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return m(e)};b.specificationVersion="v4",b.getAvailableModels=f,b.getCredits=g,b.getSpendReport=y,b.getGenerationInfo=v,b.imageModel=t=>new a$(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()}),b.languageModel=m,b.experimental_batch=()=>new aw({provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});let w=t=>new aP(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});b.embeddingModel=w,b.textEmbeddingModel=w,b.videoModel=t=>new aq(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});let x=t=>new a1(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});b.rerankingModel=x,b.reranking=x;let k=t=>new aK(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});b.evaluationModel=k,b.evaluation=k;let E=t=>new a4(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h()});b.speechModel=E,b.speech=E;let S=t=>new a7(t,{provider:"gateway",baseURL:l,headers:u,fetch:e.fetch,o11yHeaders:h(),webSocket:e.webSocket});b.transcriptionModel=S,b.transcription=S,b.experimental_transcription=Object.assign(e=>S(e),{getToken:async e=>{let t=await p({modelId:e.model,routeKind:"transcription",...null!=e.expiresAfterSeconds&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:t.token,url:a9(l,e.model),...null!=t.expiresAt&&{expiresAt:t.expiresAt}}}});let I=t=>new no(t,{provider:"gateway.realtime",baseURL:l,teamIdOrSlug:e.teamIdOrSlug,createClientSecret:p});return b.experimental_realtime=Object.assign(e=>I(e),{getToken:async e=>{let{model:t,...r}=e,a=I(t),n=await a.doCreateClientSecret(r);return{token:n.token,url:n.url,...null!=n.expiresAt&&{expiresAt:n.expiresAt}}}}),b.chat=b.languageModel,b.embedding=b.embeddingModel,b.image=b.imageModel,b.video=b.videoModel,b.tools=nv,b}();async function nk(e){let t=tj({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});return t?{token:t,authMethod:"api-key"}:{token:await (0,rA.getVercelOidcToken)(),authMethod:"oidc"}}var nE=Object.defineProperty,nS="AI_InvalidArgumentError",nI=`vercel.ai.error.${nS}`,nC=Symbol.for(nI),n_=class extends(V=eu,W=nC,V){constructor({parameter:e,value:t,message:r}){super({name:nS,message:`Invalid argument for parameter ${e}: ${r}`}),this[W]=!0,this.parameter=e,this.value=t}static isInstance(e){return eu.hasMarker(e,nI)}},nj=Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");Symbol.for("vercel.ai.error.AI_InvalidToolApprovalError");Symbol.for("vercel.ai.error.AI_InvalidToolApprovalSignatureError");Symbol.for("vercel.ai.error.AI_InvalidToolInputError");Symbol.for("vercel.ai.error.AI_ToolCallNotFoundForApprovalError");Symbol.for("vercel.ai.error.AI_MissingToolResultsError");Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");var nT="AI_NoObjectGeneratedError",nA=`vercel.ai.error.${nT}`,nR=Symbol.for(nA),nM=class extends(z=eu,G=nR,z){constructor({message:e="No object generated.",cause:t,text:r,response:a,usage:n,finishReason:i}){super({name:nT,message:e,cause:t}),this[G]=!0,this.text=r,this.response=a,this.usage=n,this.finishReason=i}static isInstance(e){return eu.hasMarker(e,nA)}},nO=Symbol.for("vercel.ai.error.AI_NoOutputGeneratedError");Symbol.for("vercel.ai.error.AI_NoSpeechGeneratedError");Symbol.for("vercel.ai.error.AI_NoTranscriptGeneratedError");Symbol.for("vercel.ai.error.AI_NoTranslationGeneratedError");Symbol.for("vercel.ai.error.AI_NoVideoGeneratedError");Symbol.for("vercel.ai.error.AI_NoSuchToolError");Symbol.for("vercel.ai.error.AI_StreamProviderError");Symbol.for("vercel.ai.error.AI_ToolCallRepairError");Symbol.for("vercel.ai.error.AI_ToolChoiceViolationError");Symbol.for("vercel.ai.error.AI_UIMessageStreamError");Symbol.for("vercel.ai.error.AI_InvalidDataContentError");Symbol.for("vercel.ai.error.AI_InvalidMessageRoleError");Symbol.for("vercel.ai.error.AI_MessageConversionError");Symbol.for("vercel.ai.error.AI_RetryError");var nP=async({url:e,maxBytes:t,abortSignal:r})=>{var a;let n=e.toString();try{let e=to({},"ai-sdk/7.0.114",e9()),i=await tk({url:n,headers:e,abortSignal:r});if(!i.ok)throw await ts(i),new td({url:n,statusCode:i.status,statusText:i.statusText});return{data:await tE({response:i,url:n,maxBytes:null!=t?t:0x80000000}),mediaType:null!=(a=i.headers.get("content-type"))?a:void 0}}catch(e){if(td.isInstance(e))throw e;throw new td({url:n,cause:e})}},nN={array:rT.array,boolean:rT.boolean,custom:rT.custom,discriminatedUnion:rT.discriminatedUnion,enum:rT.enum,instanceof:rT.instanceof,lazy:rT.lazy,literal:rT.literal,looseObject:rT.looseObject,never:rT.never,null:rT.null,number:rT.number,object:rT.object,record:rT.record,string:rT.string,union:rT.union,unknown:rT.unknown},nL=nN.lazy(()=>
37nN.union([nN.null(),nN.string(),nN.number(),nN.boolean(),nN.record(nN.string(),nL.optional()),nN.array(nL)])),n$=nN.record(nN.string(),nN.record(nN.string(),nL.optional())),nD=nN.union([nN.string(),nN.instanceof(Uint8Array),nN.instanceof(ArrayBuffer),nN.custom(function(e){var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r},{message:"Must be a Buffer"})]),nU=nN.record(nN.string(),nN.string()),nF=nN.object({type:nN.literal("text"),text:nN.string(),providerOptions:n$.optional()}),nH=nN.object({type:nN.literal("image"),image:nN.union([nD,nN.instanceof(URL),nU]),mediaType:nN.string().optional(),providerOptions:n$.optional()}),nB=nN.discriminatedUnion("type",[nN.object({type:nN.literal("data"),data:nD}),nN.object({type:nN.literal("url"),url:nN.instanceof(URL)}),nN.object({type:nN.literal("reference"),reference:nU}),nN.object({type:nN.literal("text"),text:nN.string()})]),nq=nN.discriminatedUnion("type",[nN.object({type:nN.literal("data"),data:nD}),nN.object({type:nN.literal("url"),url:nN.instanceof(URL)})]),nW=nN.object({type:nN.literal("file"),data:nN.union([nB,nD,nN.instanceof(URL),nU]),filename:nN.string().optional(),mediaType:nN.string(),providerOptions:n$.optional()}),nV=nN.object({type:nN.literal("reasoning"),text:nN.string(),providerOptions:n$.optional()}),nG=nN.object({type:nN.literal("custom"),kind:nN.string().transform(e=>e),providerOptions:n$.optional()}),nz=nN.object({type:nN.literal("reasoning-file"),data:nN.union([nq,nD,nN.instanceof(URL)]),mediaType:nN.string(),providerOptions:n$.optional()}),nZ=nN.object({type:nN.literal("tool-call"),toolCallId:nN.string(),toolName:nN.string(),input:nN.unknown(),providerOptions:n$.optional(),providerExecuted:nN.boolean().optional()}),nY=nN.discriminatedUnion("type",[nN.object({type:nN.literal("text"),value:nN.string(),providerOptions:n$.optional()}),nN.object({type:nN.literal("json"),value:nL,providerOptions:n$.optional()}),nN.object({type:nN.literal("execution-denied"),reason:nN.string().optional(),providerOptions:n$.optional()}),nN.object({type:nN.literal("error-text"),value:nN.string(),providerOptions:n$.optional()}),nN.object({type:nN.literal("error-json"),value:nL,providerOptions:n$.optional()}),nN.object({type:nN.literal("content"),value:nN.array(nN.union([nN.object({type:nN.literal("text"),text:nN.string(),providerOptions:n$.optional()}),nN.object({type:nN.literal("file"),data:nB,mediaType:nN.string(),filename:nN.string().optional(),providerOptions:n$.optional()}),nN.object({type:nN.literal("file-data"),data:nN.string(),mediaType:nN.string(),filename:nN.string().optional(),providerOptions:n$.optional()}),nN.object({type:nN.literal("file-url"),url:nN.string(),mediaType:nN.string().optional(),providerOptions:n$.optional()}),nN.object({type:nN.literal("file-id"),fileId:nN.union([nN.string(),nN.record(nN.string(),nN.string())]),providerOptions:n$.optional()}),nN.object({type:nN.literal("file-reference"),providerReference:nN.record(nN.string(),nN.string()),providerOptions:n$.optional()}),nN.object({type:nN.literal("image-data"),data:nN.string(),mediaType:nN.string(),providerOptions:n$.optional()}),nN.object({type:nN.literal("image-url"),url:nN.string(),providerOptions:n$.optional()}),nN.object({type:nN.literal("image-file-id"),fileId:nN.union([nN.string(),nN.record(nN.string(),nN.string())]),providerOptions:n$.optional()}),nN.object({type:nN.literal("image-file-reference"),providerReference:nN.record(nN.string(),nN.string()),providerOptions:n$.optional()}),nN.object({type:nN.literal("custom"),providerOptions:n$.optional()})]))})]),nJ=nN.object({type:nN.literal("tool-result"),toolCallId:nN.string(),toolName:nN.string(),output:nY,providerOptions:n$.optional()}),nK=nN.object({type:nN.literal("tool-approval-request"),approvalId:nN.string(),toolCallId:nN.string(),reason:nN.string().optional(),isAutomatic:nN.boolean().optional(),signature:nN.string().optional(),inputSchemaInput:nN.unknown().optional()}),nX=nN.object({type:nN.literal("tool-approval-response"),approvalId:nN.string(),approved:nN.boolean(),reason:nN.string().optional()}),nQ=nN.object({role:nN.literal("system"),content:nN.string(),providerOptions:n$.optional()}),n0=nN.object({role:nN.literal("user"),content:nN.union([nN.string(),nN.array(nN.union([nF,nH,nW]))]),providerOptions:n$.optional()}),n1=nN.object({role:nN.literal("assistant"),content:nN.union([nN.string(),nN.array(nN.union([nF,nG,nW,nV,nz,nZ,nJ,nK]))]),providerOptions:n$.optional()}),n5=nN.object({role:nN.literal("tool"),content:nN.array(nN.union([nJ,nX])),providerOptions:n$.optional()});nN.union([nQ,n0,n1,n5]);var n2={},n4={array:()=>n9,choice:()=>ir,json:()=>ia,object:()=>n7,text:()=>n8};for(var n3 in n4)nE(n2,n3,{get:n4[n3],enumerable:!0});async function n6(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await ro({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await ro({text:function(e){let t=["ROOT"],r=-1,a=null,n=0;function i(e,n,i){switch(e){case'"':r=n,t.pop(),t.push(i),t.push("INSIDE_STRING");break;case"f":case"t":case"n":r=n,a=n,t.pop(),t.push(i),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(i),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=n,t.pop(),t.push(i),t.push("INSIDE_NUMBER");break;case"{":r=n,t.pop(),t.push(i),t.push("INSIDE_OBJECT_START");break;case"[":r=n,t.pop(),t.push(i),t.push("INSIDE_ARRAY_START")}}function o(e,a){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":r=a,t.pop()}}function s(e,a){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=a,t.pop()}}for(let l=0;l<e.length;l++){let c=e[l];switch(t[t.length-1]){case"ROOT":i(c,l,"FINISH");break;case"INSIDE_OBJECT_START":switch(c){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":r=l,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===c&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===c&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===c&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":i(c,l,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":o(c,l);break;case"INSIDE_STRING":switch(c){case'"':t.pop(),r=l;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:r=l}break;case"INSIDE_ARRAY_START":"]"===c?(r=l,t.pop()):(r=l,i(c,l,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(c){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=l,t.pop();break;default:r=l}break;case"INSIDE_ARRAY_AFTER_COMMA":i(c,l,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),"u"===c?(n=0,t.push("INSIDE_STRING_UNICODE_ESCAPE")):r=l;break;case"INSIDE_STRING_UNICODE_ESCAPE":(c>="0"&&c<="9"||c>="A"&&c<="F"||c>="a"&&c<="f")&&4==++n&&(t.pop(),r=l);break;case"INSIDE_NUMBER":switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=l;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,l),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,l);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,l);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,l);break;default:t.pop()}break;case"INSIDE_LITERAL":{let n=e.substring(a,l+1);"false".startsWith(n)||"true".startsWith(n)||"null".startsWith(n)?r=l:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?o(c,l):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,l))}}}let l=e.slice(0,r+1);for(let r=t.length-1;r>=0;r--)switch(t[r]){case"INSIDE_STRING":l+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":l+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":l+="]";break;case"INSIDE_LITERAL":{let t=e.substring(a,e.length);"true".startsWith(t)?l+="true".slice(t.length):"false".startsWith(t)?l+="false".slice(t.length):"null".startsWith(t)&&(l+="null".slice(t.length))}}return l}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}var n8=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),parseCompleteOutput:async({text:e})=>e,parsePartialOutput:async({text:e})=>({partial:e}),createElementStreamTransform(){}}),n7=({schema:e,name:t,description:r})=>{let a=rt(e);return{name:"object",responseFormat:rp(a.jsonSchema).then(e=>({type:"json",schema:e,...null!=t&&{name:t},...null!=r&&{description:r}})),async parseCompleteOutput({text:e},t){let r=await ro({text:e});if(!r.success)throw new nM({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let n=await rn({value:r.value,schema:a});if(!n.success)throw new nM({message:"No object generated: response did not match sc
37hema.",cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return n.value},async parsePartialOutput({text:e}){let t=await n6(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value}}},createElementStreamTransform(){}}},n9=({element:e,minItems:t,maxItems:r,name:a,description:n})=>{if(ie({name:"minItems",value:t}),ie({name:"maxItems",value:r}),null!=t&&null!=r&&t>r)throw new n_({parameter:"minItems",value:t,message:"minItems must be less than or equal to maxItems"});let i=rt(e);return{name:"array",responseFormat:rp(i.jsonSchema).then(e=>{let{$schema:i,definitions:o,$defs:s,...l}=e;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",...null!=o&&{definitions:o},...null!=s&&{$defs:s},type:"object",properties:{elements:{type:"array",items:l,...null!=t&&{minItems:t},...null!=r&&{maxItems:r}}},required:["elements"],additionalProperties:!1},...null!=a&&{name:a},...null!=n&&{description:n}}}),async parseCompleteOutput({text:e},a){let n=await ro({text:e});if(!n.success)throw new nM({message:"No object generated: could not parse the response.",cause:n.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let o=n.value;if(null==o||"object"!=typeof o||!("elements"in o)||!Array.isArray(o.elements))throw new nM({message:"No object generated: response did not match schema.",cause:new eU({value:o,cause:"response must be an object with an elements array"}),text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let s=it({value:o.elements,minItems:t,maxItems:r});if(null!=s)throw new nM({message:"No object generated: response did not match schema.",cause:s,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let l=[];for(let t of o.elements){let r=await rn({value:t,schema:i});if(!r.success)throw new nM({message:"No object generated: response did not match schema.",cause:r.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});l.push(r.value)}return l},async parsePartialOutput({text:e}){let t=await n6(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let e=t.value;if(null==e||"object"!=typeof e||!("elements"in e)||!Array.isArray(e.elements))return;let r="repaired-parse"===t.state&&e.elements.length>0?e.elements.slice(0,-1):e.elements,a=[];for(let e of r){let t=await rn({value:e,schema:i});t.success&&a.push(t.value)}return{partial:a}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},a){if(null!=t)for(;e<t.length;e++){if(null!=r&&e>=r)return void a.error(it({value:t,maxItems:r}));a.enqueue(t[e])}}})}}};function ie({name:e,value:t}){if(null!=t){if(!Number.isInteger(t))throw new n_({parameter:e,value:t,message:`${e} must be an integer`});if(t<0)throw new n_({parameter:e,value:t,message:`${e} must be greater than or equal to 0`})}}function it({value:e,minItems:t,maxItems:r}){return null!=t&&e.length<t?new eU({value:e,cause:`elements array must contain at least ${t} items`}):null!=r&&e.length>r?new eU({value:e,cause:`elements array must contain at most ${r} items`}):void 0}var ir=({options:e,name:t,description:r})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...null!=t&&{name:t},...null!=r&&{description:r}}),async parseCompleteOutput({text:t},r){let a=await ro({text:t});if(!a.success)throw new nM({message:"No object generated: could not parse the response.",cause:a.error,text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});let n=a.value;if(null==n||"object"!=typeof n||!("result"in n)||"string"!=typeof n.result||!e.includes(n.result))throw new nM({message:"No object generated: response did not match schema.",cause:new eU({value:n,cause:"response must be an object that contains a choice value."}),text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});return n.result},async parsePartialOutput({text:t}){let r=await n6(t);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let t=r.value;if(null==t||"object"!=typeof t||!("result"in t)||"string"!=typeof t.result)return;let a=e.filter(e=>e.startsWith(t.result));if("successful-parse"===r.state)return a.includes(t.result)?{partial:t.result}:void 0;return 1===a.length?{partial:a[0]}:void 0}}},createElementStreamTransform(){}}),ia=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...null!=e&&{name:e},...null!=t&&{description:t}}),async parseCompleteOutput({text:e},t){let r=await ro({text:e});if(!r.success)throw new nM({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return r.value},async parsePartialOutput({text:e}){let t=await n6(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return void 0===t.value?void 0:{partial:t.value}}},createElementStreamTransform(){}});new TextEncoder,new TextEncoder,tS({prefix:"aitxt",size:24}),tS({prefix:"call",size:24}),TransformStream;var ii=nN.record(nN.string(),nL.optional());t9(()=>rr(nN.union([nN.looseObject({type:nN.literal("text-start"),id:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("text-delta"),id:nN.string(),delta:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("text-end"),id:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("error"),errorText:nN.string()}),nN.looseObject({type:nN.literal("tool-input-start"),toolCallId:nN.string(),toolName:nN.string(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional(),toolMetadata:ii.optional(),dynamic:nN.boolean().optional(),title:nN.string().optional()}),nN.looseObject({type:nN.literal("tool-input-delta"),toolCallId:nN.string(),inputTextDelta:nN.string()}),nN.looseObject({type:nN.literal("tool-input-available"),toolCallId:nN.string(),toolName:nN.string(),input
37:nN.unknown(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional(),toolMetadata:ii.optional(),dynamic:nN.boolean().optional(),title:nN.string().optional()}),nN.looseObject({type:nN.literal("tool-input-error"),toolCallId:nN.string(),toolName:nN.string(),input:nN.unknown(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional(),toolMetadata:ii.optional(),dynamic:nN.boolean().optional(),errorText:nN.string(),title:nN.string().optional()}),nN.looseObject({type:nN.literal("tool-approval-request"),approvalId:nN.string(),toolCallId:nN.string(),approvalDescriptor:nN.unknown().optional(),inputSchemaInput:nN.unknown().optional(),reason:nN.string().optional(),isAutomatic:nN.boolean().optional(),signature:nN.string().optional()}),nN.looseObject({type:nN.literal("tool-approval-response"),approvalId:nN.string(),approved:nN.boolean(),reason:nN.string().optional(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("tool-output-available"),toolCallId:nN.string(),output:nN.unknown(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional(),toolMetadata:ii.optional(),dynamic:nN.boolean().optional(),preliminary:nN.boolean().optional()}),nN.looseObject({type:nN.literal("tool-output-error"),toolCallId:nN.string(),errorText:nN.string(),providerExecuted:nN.boolean().optional(),providerMetadata:n$.optional(),toolMetadata:ii.optional(),dynamic:nN.boolean().optional()}),nN.looseObject({type:nN.literal("tool-output-denied"),toolCallId:nN.string()}),nN.looseObject({type:nN.literal("reasoning-start"),id:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("reasoning-delta"),id:nN.string(),delta:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("reasoning-end"),id:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("custom"),kind:nN.string().transform(e=>e),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("source-url"),sourceId:nN.string(),url:nN.string(),title:nN.string().optional(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("source-document"),sourceId:nN.string(),mediaType:nN.string(),title:nN.string(),filename:nN.string().optional(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("file"),url:nN.string(),mediaType:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.literal("reasoning-file"),url:nN.string(),mediaType:nN.string(),providerMetadata:n$.optional()}),nN.looseObject({type:nN.custom(e=>"string"==typeof e&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:nN.string().optional(),data:nN.unknown(),transient:nN.boolean().optional()}),nN.looseObject({type:nN.literal("start-step")}),nN.looseObject({type:nN.literal("finish-step")}),nN.looseObject({type:nN.literal("reset-step")}),nN.looseObject({type:nN.literal("start"),messageId:nN.string().optional(),messageMetadata:nN.unknown().optional()}),nN.looseObject({type:nN.literal("finish"),finishReason:nN.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:nN.unknown().optional()}),nN.looseObject({type:nN.literal("abort"),reason:nN.string().optional()}),nN.looseObject({type:nN.literal("message-metadata"),messageMetadata:nN.unknown()})]))),tS({prefix:"aitxt",size:24}),tS({prefix:"call",size:24}),tS({prefix:"aitxt",size:24}),tS({prefix:"call",size:24});var io=nN.record(nN.string(),nL.optional()),is=nN.record(nN.string(),nN.string());function il(e){return({url:t,abortSignal:r})=>nP({url:t,maxBytes:null==e?void 0:e.maxBytes,abortSignal:r})}t9(()=>{let e=nN.object({id:nN.string(),approved:nN.never().optional(),descriptor:nN.unknown().optional(),requestReason:nN.string().optional(),reason:nN.never().optional(),isAutomatic:nN.boolean().optional(),signature:nN.string().optional(),inputSchemaInput:nN.unknown().optional()}),t=e.extend({approved:nN.boolean(),reason:nN.string().optional()}),r=t.extend({approved:nN.literal(!0)}),a=t.extend({approved:nN.literal(!1)});return rr(nN.array(nN.object({id:nN.string(),role:nN.enum(["system","user","assistant"]),metadata:nN.unknown().optional(),parts:nN.array(nN.union([nN.object({type:nN.literal("text"),text:nN.string(),state:nN.enum(["streaming","done"]).optional(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("reasoning"),id:nN.string().optional(),text:nN.string(),state:nN.enum(["streaming","done"]).optional(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("custom"),kind:nN.string(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("source-url"),sourceId:nN.string(),url:nN.string(),title:nN.string().optional(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("source-document"),sourceId:nN.string(),mediaType:nN.string(),title:nN.string(),filename:nN.string().optional(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("file"),mediaType:nN.string(),filename:nN.string().optional(),url:nN.string(),providerReference:is.optional(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("reasoning-file"),mediaType:nN.string(),url:nN.string(),providerMetadata:n$.optional()}),nN.object({type:nN.literal("step-start")}),nN.object({type:nN.string().startsWith("data-"),id:nN.string().optional(),data:nN.unknown()}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("input-streaming"),input:nN.unknown().optional(),providerExecuted:nN.boolean().optional(),callProviderMetadata:n$.optional(),output:nN.never().optional(),errorText:nN.never().optional(),approval:nN.never().optional()}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("input-available"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:nN.never().optional()}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("approval-requested"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:e}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("approval-responded"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:t}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-available"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.unknown(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),resultProviderMetadata:n$.optional(),preliminary:nN.boolean().optional(),approval:r.optional()}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-error"),input:nN.unknown().optional(),rawInput:nN.unknown().optional(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.string(),callProviderMetadata:n$.optional(),resultProviderMetadata:n$.optional(),approval:r.optional()}),nN.object({type:nN.literal("dynamic-tool"),toolName:nN.string(),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-denied"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:a}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("input-streaming"),providerExecuted:nN.boolean().optional(),callProviderMetadata:n$.optional(),input
37:nN.unknown().optional(),output:nN.never().optional(),errorText:nN.never().optional(),approval:nN.never().optional()}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("input-available"),providerExecuted:nN.boolean().optional(),input:nN.unknown(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:nN.never().optional()}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("approval-requested"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:e}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("approval-responded"),input:nN.unknown(),providerExecuted:nN.boolean().optional(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:t}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-available"),providerExecuted:nN.boolean().optional(),input:nN.unknown(),output:nN.unknown(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),resultProviderMetadata:n$.optional(),preliminary:nN.boolean().optional(),approval:r.optional()}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-error"),providerExecuted:nN.boolean().optional(),input:nN.unknown().optional(),rawInput:nN.unknown().optional(),output:nN.never().optional(),errorText:nN.string(),callProviderMetadata:n$.optional(),resultProviderMetadata:n$.optional(),approval:r.optional()}),nN.object({type:nN.string().startsWith("tool-"),toolCallId:nN.string(),title:nN.string().optional(),toolMetadata:io.optional(),state:nN.literal("output-denied"),providerExecuted:nN.boolean().optional(),input:nN.unknown(),output:nN.never().optional(),errorText:nN.never().optional(),callProviderMetadata:n$.optional(),approval:a})]))}).superRefine((e,t)=>{"assistant"!==e.role&&0===e.parts.length&&t.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:e.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty"))}),tS({prefix:"call",size:24}),tS({prefix:"call",size:24}),new TextEncoder,tS({prefix:"call",size:24}),tS({prefix:"aiobj",size:24});var{atob:ic}=globalThis;tS({prefix:"aiobj",size:24}),il();var iu=class{constructor(e){var t;this.captureContext=null,this.captureProcessor=null,this.captureSource=null,this.captureStream=null,this.ownsCaptureStream=!0,this.captureCleanup=[],this.captureGeneration=0,this.playbackContext=null,this.playbackQueue=[],this.playbackTime=0,this.playbackStartTime=0,this.activeSources=new Set,this.isPlaying=!1,this.playbackPaused=!1,this.captureSampleRate=e.captureSampleRate,this.playbackSampleRate=e.playbackSampleRate,this.onAudio=e.onAudio,this.onPlayingChange=e.onPlayingChange,this.maxPlaybackSeconds=null!=(t=e.maxPlaybackSeconds)?t:1/0,this.onError=e.onError,this.onCapturingChange=e.onCapturingChange}ensurePlaybackContext(){if(null==this.playbackContext){this.playbackContext=new AudioContext({sampleRate:this.playbackSampleRate});let e=this.playbackContext;e.onstatechange=()=>{this.playbackContext===e&&this.setPlaying("running"===e.state&&this.activeSources.size>0)}}}async resumePlayback(){var e;this.ensurePlaybackContext();let t=this.playbackContext;this.playbackPaused&&this.stopPlayback(),this.playbackContext!==t||(await (null==t?void 0:t.resume()),this.playbackContext===t&&(this.playbackPaused=!1,this.setPlaying((null==(e=this.playbackContext)?void 0:e.state)==="running"&&this.activeSources.size>0)))}startCapture(e,t){var r,a;let n=this.captureGeneration+1;if(this.stopCapture(),n!==this.captureGeneration){(null==(r=null==t?void 0:t.ownsStream)||r)&&e.getTracks().forEac
37h(e=>e.stop());return}this.captureStream=e,this.ownsCaptureStream=null==(a=null==t?void 0:t.ownsStream)||a;let i=new AudioContext({sampleRate:this.captureSampleRate});this.captureContext=i,i.resume().catch(e=>{var t;this.captureContext===i&&(null==(t=this.onError)||t.call(this,e))});let o=i.createMediaStreamSource(e);this.captureSource=o;let s=i.createScriptProcessor(1024,1,1);this.captureProcessor=s,s.onaudioprocess=e=>{var t;if(this.captureContext!==i)return;let r=function(e,t,r){if(t===r)return e;let a=t/r,n=Math.round(e.length/a),i=new Float32Array(n);for(let t=0;t<n;t++){let r=t*a,n=Math.floor(r),o=Math.min(n+1,e.length-1),s=r-n;i[t]=e[n]*(1-s)+e[o]*s}return i}(new Float32Array(e.inputBuffer.getChannelData(0)),i.sampleRate,this.captureSampleRate);try{this.onAudio(function(e){let t=new ArrayBuffer(2*e.length),r=new DataView(t);for(let t=0;t<e.length;t++){let a=Math.max(-1,Math.min(1,e[t]));r.setInt16(2*t,a<0?32768*a:32767*a,!0)}let a=new Uint8Array(t),n="";for(let e=0;e<a.length;e+=32768)n+=String.fromCharCode(...a.subarray(e,e+32768));return btoa(n)}(r))}catch(e){null==(t=this.onError)||t.call(this,e instanceof Error?e:Error(String(e)))}},o.connect(s),s.connect(i.destination);let l=()=>this.onCapturingChange(e.getAudioTracks().some(e=>e.enabled&&!e.muted&&"live"===e.readyState));for(let t of e.getAudioTracks())for(let e of["ended","mute","unmute"])t.addEventListener(e,l),this.captureCleanup.push(()=>t.removeEventListener(e,l));l()}stopCapture(){var e,t,r,a;for(let e of(this.captureGeneration++,null!=this.captureProcessor&&(this.captureProcessor.onaudioprocess=null),this.captureCleanup))e();this.captureCleanup=[],null==(e=this.captureProcessor)||e.disconnect(),null==(t=this.captureSource)||t.disconnect(),null==(r=this.captureContext)||r.close().catch(()=>{}),this.ownsCaptureStream&&(null==(a=this.captureStream)||a.getTracks().forEach(e=>e.stop())),this.captureProcessor=null,this.captureSource=null,this.captureContext=null,this.captureStream=null,this.onCapturingChange(!1)}playAudio(e){var t,r,a;if(this.playbackPaused)return;this.ensurePlaybackContext();let n=function(e){let t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);let a=new Int16Array(r.buffer),n=new Float32Array(a.length);for(let e=0;e<a.length;e++)n[e]=a[e]/32768;return n}(e);if(Math.max(0,this.playbackTime-(null!=(r=null==(t=this.playbackContext)?void 0:t.currentTime)?r:0))+n.length/this.playbackSampleRate>this.maxPlaybackSeconds){this.playbackPaused=!0,this.stopPlayback(),null==(a=this.onError)||a.call(this,Error("Realtime audio playback buffer is full; playback paused, call resumePlayback() to resume at the live edge"));return}this.playbackQueue.push(n),this.schedulePlayback()}stopPlayback(){for(let e of(this.playbackQueue=[],this.activeSources))try{e.onended=null,e.stop(),e.disconnect()}catch(e){}this.activeSources.clear(),null!=this.playbackContext&&(this.playbackTime=this.playbackContext.currentTime),this.setPlaying(!1)}getPlaybackOffsetMs(){let e=this.playbackContext;return null==e?0:(e.currentTime-this.playbackStartTime)*1e3}dispose(){var e;this.stopCapture(),this.stopPlayback(),null!=this.playbackContext&&(this.playbackContext.onstatechange=null),null==(e=this.playbackContext)||e.close().catch(()=>{}),this.playbackContext=null,this.playbackTime=0,this.playbackPaused=!1}setPlaying(e){var t,r;e&&!this.isPlaying&&(this.playbackStartTime=null!=(r=null==(t=this.playbackContext)?void 0:t.currentTime)?r:0),this.isPlaying!==e&&(this.isPlaying=e,this.onPlayingChange(e))}schedulePlayback(){let e=this.playbackContext;if(null!=e&&0!==this.playbackQueue.length)for(;this.playbackQueue.length>0;){let t=this.playbackQueue.shift(),r=e.createBuffer(1,t.length,this.playbackSampleRate);r.getChannelData(0).set(t);let a=e.createBufferSource();a.buffer=r,a.connect(e.destination);let n=Math.max(this.playbackTime,e.currentTime);if(a.start(n),this.playbackTime=n+r.duration,this.activeSources.add(a),this.setPlaying("running"===e.state),this.playbackContext!==e)return;a.onended=()=>{a.disconnect(),this.activeSources.delete(a),0===this.playbackQueue.length&&0===this.activeSources.size&&this.setPlaying(!1)}}}},id=class{constructor(e){var t,r,a;this.options=e,this.active=!0,this.finishing=!1,this.incoming=Promise.resolve(),this.outgoing=Promise.resolve(),this.incomingCount=0,this.incomingBytes=0,this.outgoingCount=0,this.parse=null!=(a=null==(r=(t=e.model).createServerEventParser)?void 0:r.call(t))?a:e.model.parseServerEvent.bind(e.model)}
37get hasPendingIncoming(){return this.incomingCount>0}dispose(){this.active=!1}async finish(){this.stopWriting(),await this.incoming,this.dispose()}stopWriting(){this.finishing=!0}send(e,t){var r;if(!this.active||this.finishing)throw Error("Realtime connection is closed");if(this.outgoingCount>=(null!=(r=this.options.maxPending)?r:512))throw Error("Realtime outgoing queue is full");this.outgoingCount++;let a=this.outgoing.then(async()=>{if(!this.active||this.finishing)throw Error("Realtime connection is closed");if((null==t?void 0:t())===!1)return;if(!this.active||this.finishing)throw Error("Realtime connection is closed");let r=await this.options.model.serializeClientEvent(e);if(!this.active||this.finishing)throw Error("Realtime connection is closed");if((null==t?void 0:t())!==!1){if(!this.active||this.finishing)throw Error("Realtime connection is closed");null!=r&&this.options.send(r)}});return this.outgoing=a.catch(t=>{this.finishing||"input-audio-append"===e.type||"session-close"===e.type||this.report(t)}).finally(()=>{this.outgoingCount--}),a}receive(e){var t,r,a;if(!this.active||this.finishing)return;let n="string"==typeof e?2*e.length:e instanceof Blob?e.size:null!=(t=e.byteLength)?t:0;if(this.incomingCount>=(null!=(r=this.options.maxPending)?r:512)||this.incomingBytes+n>(null!=(a=this.options.maxPendingBytes)?a:8388608)){this.finishing=!0,this.fatal(Error("Realtime incoming queue is full; input protocol continuity was lost"));return}this.incomingCount++,this.incomingBytes+=n,this.incoming=this.incoming.then(async()=>{var t,r;if(!this.active)return;let a="string"==typeof e?e:e instanceof Blob?await e.text():new TextDecoder().decode(e),n=await ro({text:a});if(!this.active)return;if(!n.success)throw Error("Invalid JSON in realtime server message",{cause:n.error});let i=null==(r=(t=this.options.model).getHealthCheckResponse)?void 0:r.call(t,n.value);if(!this.active||(null==i||this.finishing||this.options.send(i),!this.active))return;let o=this.parse(n.value);for(let e of Array.isArray(o)?o:[o]){if(!this.active)return;try{await this.options.onEvent(e)}catch(e){this.report(e)}}}).catch(e=>{this.finishing=!0,this.fatal(e instanceof Error?e:Error(String(e)))}).finally(()=>{this.incomingCount--,this.incomingBytes-=n})}fatal(e){this.active&&(null!=this.options.onFatalError?this.options.onFatalError(e):this.report(e))}report(e){if(this.active)try{this.options.onError(e instanceof Error?e:Error(String(e)))}catch(e){}}},ip=class{constructor(e){var t;this.options=e,this.ws=null,this.epoch=0,this.failing=!1,this.closing=!1,this.model=e.model,this.continuous=(null==(t=e.model.capabilities)?void 0:t.conversation)==="continuous",this.onServerEvent=e.onServerEvent,this.onError=e.onError,this.onClose=e.onClose}get isOpen(){var e;return!this.closing&&!this.failing&&(null==(e=this.ws)?void 0:e.readyState)===WebSocket.OPEN}connect({mode:e,token:t,url:r,onOpen:a,protocols:n}){var i,o;let s;this.disconnect();let l=this.epoch;if("relay"!==e&&("client-secret"!==e||"string"!=typeof t||""===t.trim()))throw Error("Realtime client-secret connection requires a nonempty token");let c="relay"===e?{url:r,protocols:n}:null==(o=(i=this.model).getWebSocketConfig)?void 0:o.call(i,{token:t,url:r});if(this.epoch!==l)return;if(null==c)throw Error("Model does not support client-secret WebSockets");let u=c.url,d=c.protocols;if(this.epoch!==l)return;try{if("string"!=typeof u||!/^wss?:\/\//i.test(u))throw Error("Invalid realtime WebSocket URL");let e=new URL(u);if(!["ws:","wss:"].includes(e.protocol)||""===e.hostname||u.includes("#"))throw Error("Invalid realtime WebSocket URL")}catch(e){throw Error("Invalid realtime WebSocket URL; expected an absolute ws:// or wss:// URL with a host and no fragment")}if(this.epoch!==l)return;let p=new WebSocket(u,d);this.ws=p;let h=!1,m=new id({model:this.model,send:e=>{if(this.epoch!==l||this.ws!==p||!this.isOpen)throw Error("Realtime WebSocket is not open");this.sendRaw(e)},onEvent:this.onServerEvent,onError:e=>{h||this.onError(e)},onFatalError:e=>this.fail(e)});this.epoch!==l?m.dispose():(this.codec=m,p.onopen=()=>{if(this.ws===p){h=!0;try{Promise.resolve(a()).catch(e=>{this.ws===p&&this.fail(e instanceof Error?e:Error(String(e)))}).finally(()=>{h=!1})}catch(e){this.epoch===l&&this.fail(e instanceof Error?e:Error(String(e)))}}},p.onmessage=e=>{var t;this.ws===p&&(null==(t=this.codec)||t.receive(e.data))},p.onerror=()=>{this.ws===p&&(s=Error("WebSocket connection error"),this.failing=!0)}
37,p.onclose=e=>{var t;if(this.ws===p){this.ws=null;let r=null!=(t=function(e){if(1e3!==e.code||!e.wasClean)return Error(`Realtime WebSocket closed unexpectedly (code ${e.code}${""===e.reason?"":`: ${e.reason}`})`)}(e))?t:s,a=null!=r&&!m.hasPendingIncoming;if(m.stopWriting(),this.notifyClosing(),this.epoch!==l)return;let n=m.finish();if(a){try{this.onError(r)}catch(e){}if(this.epoch!==l)return}let i=()=>{if(this.epoch===l){clearTimeout(this.drainTimer),this.epoch++,m.dispose();try{this.onClose(r)}catch(e){this.reportCallbackError(e)}}};this.drainTimer=setTimeout(i,1e3),this.awaitDrain(n,i)}})}disconnect(){var e;this.epoch++,clearTimeout(this.drainTimer);let t=this.ws;this.ws=null,null==(e=this.codec)||e.dispose(),this.codec=void 0,this.failing=!1,this.closing=!1,null==t||t.close()}sendEvent(e,t,r=!1){if(this.failing||this.closing)throw Error("Realtime connection is closed");if(null==this.codec)return Promise.resolve();let a=this.epoch,n=e=>{r&&this.epoch===a&&this.isOpen&&this.fail(e instanceof Error?e:Error(String(e)))};try{let r=this.codec.send(e,t);return r.catch(n),r}catch(e){throw n(e),e}}finish(){var e,t;return null!=(t=null==(e=this.codec)?void 0:e.finish())?t:Promise.resolve()}fail(e){var t;if(this.failing)return;this.failing=!0;let r=this.epoch,a=this.ws;if(this.ws=null,null==(t=this.codec)||t.stopWriting(),null==a||a.close(),this.notifyClosing(),this.epoch!==r)return;let n=this.finish();if(null!=this.options.onFatalError)this.options.onFatalError(e,n);else{let t=()=>{if(r===this.epoch){this.disconnect();try{this.onClose()}catch(e){this.reportCallbackError(e)}}};this.drainTimer=setTimeout(t,1e3),this.awaitDrain(n,t),this.reportCallbackError(e)}}notifyClosing(){var e,t;if(!this.closing){this.closing=!0;try{null==(t=(e=this.options).onClosing)||t.call(e)}catch(e){this.reportCallbackError(e)}}}async awaitDrain(e,t){try{await e}catch(e){}try{t()}catch(e){this.reportCallbackError(e)}}reportCallbackError(e){try{this.onError(e instanceof Error?e:Error(String(e)))}catch(e){}}sendRaw(e){let t=this.ws,r=this.epoch;if(null==t||!this.isOpen)return;let a=function(e){if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{data:e,byteLength:e.byteLength};if(e instanceof Blob)return{data:e,byteLength:e.size};let t="string"==typeof e?e:JSON.stringify(e);if(void 0===t)throw Error("Realtime event could not be encoded as JSON");return{data:t,byteLength:new TextEncoder().encode(t).byteLength}}(e);if(this.epoch!==r||this.ws!==t||!this.isOpen)throw Error("Realtime connection is closed");this.continuous&&function(e,t){if(e.byteLength>131072)throw Error("Realtime frame exceeds the 131072-byte limit; reduce the event payload");if(t+e.byteLength>131072)throw Error("Realtime send buffer is full (131072-byte limit); wait before retrying")}(a,t.bufferedAmount),t.send(a.data)}dispose(){this.disconnect()}},ih=class{constructor(e){var t,r,a,n,i,o,s,l,c,u,d,p;this.options=e,this.generation=0,this.ready=!1,this.capturingStarted=!1,this.pendingAudio=0,this.captureGeneration=0,this.captureEnabled=!0;const h=null==(t=e.sessionConfig)?void 0:t.inputAudioFormat,m=null==(r=e.sessionConfig)?void 0:r.outputAudioFormat,f=null!=(i=null!=(n=null!=(a=null==h?void 0:h.rate)?a:null==m?void 0:m.rate)?n:e.sampleRate)?i:24e3,g={type:null!=(s=null!=(o=null==h?void 0:h.type)?o:null==m?void 0:m.type)?s:"audio/pcm",rate:f};this.config={...e.sessionConfig,inputAudioFormat:{...g,...h},outputAudioFormat:{...g,...m}},this.transport=new ip({model:e.model,onServerEvent:e.onEvent,onError:e.onError,onFatalError:e.onFatalError,onClosing:()=>{var t;let r=this.generation;null==(t=e.onClosing)||t.call(e),r===this.generation&&this.stopCapture()},onClose:e.onClose}),this.audio=new iu({captureSampleRate:null!=(c=null==(l=this.config.inputAudioFormat)?void 0:l.rate)?c:f,playbackSampleRate:null!=(d=null==(u=this.config.outputAudioFormat)?void 0:u.rate)?d:f,maxPlaybackSeconds:null!=(p=e.maxPlaybackBufferSeconds)?p:2,onAudio:e=>this.sendAudio(e),onError:e.onError,onCapturingChange:e.onCapturing,onPlayingChange:e.onPlaying})}connect(e){let t=this.generation+1;if(this.dispose(),t===this.generation){for(let e of[this.config.inputAudioFormat,this.config.outputAudioFormat]){if((null==e?void 0:e.type)!=="audio/pcm")throw new eq({functionality:"Continuous browser WebSocket audio supports PCM16 only"});if(null==e.rate||!Number.isFinite(e.rate)||e.rate<8e3||e.rate>96e3)throw Error("Invalid realtime PCM sample rate")}this.stream=e.stream,this.captureEnabled=!1!==e.capture,this.audio.ensurePlaybackContext(),this.audio.resumePlayback().catch(e=>{t===this.generation&&this.options.onError(e)}),this.transport.connect({mode:"relay",url:e.url,protocols:e.protocols,onOpen:()=>{var e,t;return this.transport.sendEvent({type:null!=(t=null==(e=this.options.model.capabilities)?void 0:e.startup)?t:"session-update",config:this.config})}})}}startCapture(){this.ready=!0,this.captureEnabled&&!this.capturingStarted&&this.resumeCapture().catch(e=>this.options.onError(e))}async resumeCapture(e){let t=this.captureGeneration+1;if(this.stopCapture(),t!==this.captureGeneration)return;this.ready=!0,this.capturingStarted=!0,this.captureEnabled=!0,null!=e&&(this.stream=e);let r=this.stream,a=null!=r?r:await navigator.mediaDevices.getUserMedia({audio:!0});if(t!==this.captureGeneration||!this.ready){null==r&&a.getTracks().forEac
37h(e=>e.stop());return}if(!a.getAudioTracks().some(e=>"live"===e.readyState))throw null==r&&a.getTracks().forEach(e=>e.stop()),Error("Realtime requires a live audio track");this.audio.startCapture(a,{ownsStream:null==r})}sendAudio(e){let t;if(!this.ready||!this.transport.isOpen)return;if(this.pendingAudio>=8)return void this.transport.fail(Error("Realtime audio send queue is full"));let r=this.generation;try{t=this.transport.sendEvent({type:"input-audio-append",audio:e},void 0,!0)}catch(e){if(!this.ready||!this.transport.isOpen)return;throw e}this.pendingAudio++,t.then(()=>{r===this.generation&&this.pendingAudio--},e=>{r===this.generation&&this.ready&&this.transport.isOpen&&this.options.onFatalError(e)})}sendEvent(e,t){var r,a;if("session-update"===e.type)for(let t of["inputAudioFormat","outputAudioFormat"]){let n=e.config[t];if(null!=n&&(n.type!==(null==(r=this.config[t])?void 0:r.type)||null!=n.rate&&n.rate!==(null==(a=this.config[t])?void 0:a.rate)))throw Error("Changing Live WebSocket audio format requires reconnecting")}return this.transport.sendEvent(e,t)}playAudio(e){try{this.audio.playAudio(e)}catch(e){this.options.onError(e instanceof Error?e:Error(String(e)))}}stopPlayback(){this.audio.stopPlayback()}resumePlayback(){return this.audio.resumePlayback()}stopCapture(){this.captureGeneration++,this.ready=!1,this.capturingStarted=!1,this.captureEnabled=!1,this.audio.stopCapture()}finish(){return this.transport.finish()}dispose(){this.generation++,this.stopCapture(),this.ready=!1,this.capturingStarted=!1,this.pendingAudio=0,this.stream=void 0,this.transport.disconnect(),this.audio.dispose()}};async function im(e){var t;let r=null==(t=e.body)?void 0:t.getReader();if(null==r)throw Error("Invalid realtime session answer");let a=new TextDecoder,n=0,i="";try{if(Number(e.headers.get("content-length"))>1048576)throw Error("Realtime session answer exceeds the 1 MiB limit");for(;;){let{done:e,value:t}=await r.read();if(e)return i+a.decode();if((n+=t.byteLength)>1048576)throw Error("Realtime session answer exceeds the 1 MiB limit");i+=a.decode(t,{stream:!0})}}catch(e){throw r.cancel(e).catch(()=>{}),e}finally{r.releaseLock()}}function ig(e){var t;let r=e.getAudioTracks().filter(e=>"live"===e.readyState);return null!=(t=r.find(e=>e.enabled&&!e.muted))?t:r[0]}var iy=class{constructor(e){this.options=e,this.ownsStream=!1,this.generation=0,this.closingNotified=!1,this.captureGeneration=0,this.senderOperations=Promise.resolve(),this.trackCleanups=[]}async connect({api:e,sessionConfig:t,stream:r,timeoutMs:a,capture:n=!0}){var i,o;let s=this.generation+1;this.dispose();let l=()=>s===this.generation;if(!l())return;let c=null==(o=(i=this.options.model).getWebRTCConfig)?void 0:o.call(i);if(!l())return;if(null==c)throw Error("This model does not support WebRTC configuration");let u=new AbortController;this.abort=u;let d=setTimeout(()=>u.abort(Error("Realtime startup timed out")),a),p=new Promise((e,t)=>{u.signal.addEventListener("abort",()=>t(u.signal.reason),{once:!0})}),h=async()=>{var a;let i=this.captureGeneration,o=n?null!=r?r:await navigator.mediaDevices.getUserMedia({audio:!0}):void 0;if(!l()||u.signal.aborted)throw null==r&&(null==o||o.getTracks().forEach(e=>e.stop())),Error("Realtime connection cancelled");i!==this.captureGeneration&&(null==r&&(null==o||o.getTracks().forEach(e=>e.stop())),o=void 0),this.stream=o,this.ownsStream=null==r;let s=null==o?void 0:ig(o);if(null!=o&&null==s)throw Error("Realtime requires a live audio track");let d=new RTCPeerConnection;this.pc=d;let h=document.createElement("audio");h.autoplay=!0,this.audio=h,h.onplaying=()=>{l()&&this.options.onPlaying(!0)};let m=()=>{l()&&this.options.onPlaying(!1)};h.onpause=m,h.onended=m,h.onwaiting=m,d.ontrack=e=>{var t;l()&&(h.srcObject=null!=(t=e.streams[0])?t:new MediaStream([e.track]),h.play().catch(e=>{l()&&this.options.onError(e)}))},d.onconnectionstatechange=()=>{var e;l()&&("connected"===d.connectionState?clearTimeout(this.disconnectTimer):"disconnected"===d.connectionState?(clearTimeout(this.disconnectTimer),this.disconnectTimer=setTimeout(()=>{l()&&"disconnected"===d.connectionState&&this.fail(Error("Realtime peer disconnected beyond recovery grace peri
37od"))},null!=(e=this.options.disconnectTimeoutMs)?e:5e3)):"closed"===d.connectionState?this.drainClose(Error("Realtime peer connection closed")):"failed"===d.connectionState&&this.fail(Error(`Realtime peer connection ${d.connectionState}`)))},d.oniceconnectionstatechange=()=>{l()&&"failed"===d.iceConnectionState&&this.fail(Error("Realtime ICE connection failed"))};let f=d.createDataChannel(c.dataChannelLabel);this.dc=f;let g=new id({model:this.options.model,onEvent:this.options.onEvent,onError:this.options.onError,onFatalError:e=>{l()&&this.fail(e)},send:e=>{if(!l()||this.finishing||"open"!==f.readyState)throw Error("Realtime data channel is not open");if(f.bufferedAmount>1048576)throw Error("Realtime data channel buffer is full");let t="string"==typeof e?e:JSON.stringify(e);if(!l()||this.finishing||"open"!==f.readyState)throw Error("Realtime data channel is not open");f.send(t)}});if(!l())return void g.dispose();this.codec=g,f.onmessage=e=>{var t;l()&&(null==(t=this.codec)||t.receive(e.data))},f.onclose=()=>{l()&&this.drainClose(Error("Realtime data channel closed"))},f.onerror=()=>{l()&&this.fail(Error("Realtime data channel error"))};let y=new Promise((e,t)=>{this.rejectStartup=t,f.onopen=()=>{this.rejectStartup=void 0,e()}});y.catch(()=>{});let v=new Promise(e=>{d.onicegatheringstatechange=()=>{"complete"===d.iceGatheringState&&e()}});if(this.sender=null!=o&&null!=s?d.addTrack(s,o):d.addTransceiver("audio",{direction:"sendrecv"}).sender,this.observeCapture(),!l()||u.signal.aborted)return;let b=await d.createOffer();if(!l()||u.signal.aborted||(await d.setLocalDescription(b),"complete"!==d.iceGatheringState&&await Promise.race([v,p]),!l()||u.signal.aborted))return;let w=null==(a=d.localDescription)?void 0:a.sdp;if(null==w)throw Error("Realtime offer has no SDP");let x=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sdp:w,sessionConfig:t}),signal:u.signal});if(!x.ok)throw Error(`Failed to create realtime session: ${x.status}`);let k=await ro({text:await im(x)});if(l()&&!u.signal.aborted){if(!k.success||"object"!=typeof k.value||null==k.value||!("sdp"in k.value)||"string"!=typeof k.value.sdp||0===k.value.sdp.trim().length||!("sessionId"in k.value)||"string"!=typeof k.value.sessionId||0===k.value.sessionId.trim().length)throw Error("Invalid realtime session answer");await d.setRemoteDescription({type:"answer",sdp:k.value.sdp}),await Promise.race([y,p])}};try{await Promise.race([h(),p])}catch(e){throw l()&&this.dispose(),e}finally{clearTimeout(d),this.rejectStartup=void 0}}sendEvent(e,t){var r,a,n;if(this.finishing||(null==(r=this.dc)?void 0:r.readyState)!=="open")throw Error("Realtime data channel is not open");return null!=(n=null==(a=this.codec)?void 0:a.send(e,t))?n:Promise.resolve()}async resumePlayback(){if(null==this.audio)throw Error("Realtime playback is not connected");await this.audio.play()}stopPlayback(){var e;null==(e=this.audio)||e.pause()}finish(){var e,t;return null!=(t=null==(e=this.codec)?void 0:e.finish())?t:Promise.resolve()}fail(e){var t;if("failure"===this.finishing)return;if(this.finishing="failure",clearTimeout(this.finishTimer),null!=this.rejectStartup){this.rejectStartup(e),null==(t=this.abort)||t.abort(e);return}let r=this.generation,a=this.finish();if(this.notifyClosing(),r!==this.generation||(this.stopCaptureForShutdown(r),r!==this.generation))return;if(null!=this.options.onFatalError)return void this.options.onFatalError(e,a);let n=()=>{if(r===this.generation){this.dispose();try{this.options.onClose()}catch(e){this.reportCallbackError(e)}}};this.finishTimer=setTimeout(n,1e3),this.awaitDrain(a,n);try{this.options.onError(e)}catch(e){}}drainClose(e){if(this.finishing)return;if(null!=this.rejectStartup)return void this.fail(e);this.finishing="close";let t=this.generation,r=()=>{if(t===this.generation&&"close"===this.finishing){clearTimeout(this.finishTimer);try{this.options.onClose(e)}catch(e){this.reportCallbackError(e)}finally{t===this.generation&&this.dispose()}}};this.finishTimer=setTimeout(r,1e3),this.awaitDrain(this.finish(),r),this.notifyClosing(),t===this.generation&&this.stopCaptureForShutdown(t)}notifyClosing(){var e,t;if(!this.closingNotified){this.closingNotified=!0;try{null==(t=(e=this.options).onClosing)||t.call(e)}catch(e){this.reportCallbackError(e)}}}async stopCaptureForShutdown(e){try{await this.stopCapture()}catch(t){if(e!==this.generation||"close"!==this.finishing)return;try{this.fail(t instanceof Error?t:Error(String(t)))}catch(e){this.reportCallbackError(e)}}}async awaitDrain(e,t){try{await e}catch(e){}try{t()}catch(e){this.reportCallbackError(e)}}reportCallbackError(e){try{this.options.onError(e instanceof Error?e:Error(String(e)))}catch(e){}}async stopCapture(){var e;let t=++this.captureGeneration;for(let e of this.trackCleanups)e();this.trackCleanups=[],this.ownsStream&&(null==(e=this.stream)||e.getTracks().forEac
37h(e=>e.stop())),this.stream=void 0;let r=this.pc,a=this.sender;await this.queueSenderOperation(async()=>{r===this.pc&&a===this.sender&&(null!=r&&null!=a&&await this.detachSender(r,a),t===this.captureGeneration&&r===this.pc&&this.options.onCapturing(!1))})}async startCapture(e){let t=this.captureGeneration+1;if(await this.stopCapture(),t!==this.captureGeneration||null==this.pc||this.finishing)return;let r=null!=e?e:await navigator.mediaDevices.getUserMedia({audio:!0});if(t!==this.captureGeneration||null==this.pc||this.finishing){null==e&&r.getTracks().forEach(e=>e.stop());return}let a=ig(r);if(null==a)throw null==e&&r.getTracks().forEach(e=>e.stop()),Error("Realtime requires a live audio track");let n=this.pc,i=this.sender;await this.queueSenderOperation(async()=>{let o=()=>t===this.captureGeneration&&n===this.pc&&i===this.sender&&"closed"!==n.connectionState&&!this.finishing,s=!1;try{if(!o()||null==i)return;if(await i.replaceTrack(a),!o()){n===this.pc&&await this.detachSender(n,i);return}this.stream=r,this.ownsStream=null==e,s=!0,this.observeCapture()}finally{s||null!=e||r.getTracks().forEach(e=>e.stop())}})}queueSenderOperation(e){let t=this.senderOperations.then(e);return this.senderOperations=t.catch(()=>{}),t}async detachSender(e,t){if("closed"!==e.connectionState)try{await t.replaceTrack(null)}catch(t){if(e!==this.pc)return;this.closePeer(e),this.fail(t instanceof Error?t:Error(String(t)))}}closePeer(e){e.ontrack=null,e.onconnectionstatechange=null,e.oniceconnectionstatechange=null,e.onicegatheringstatechange=null,"closed"!==e.connectionState&&e.close()}observeCapture(){let e=this.captureGeneration,t=this.sender,r=null==t?void 0:t.track,a=()=>{e===this.captureGeneration&&this.sender===t&&this.options.onCapturing((null==t?void 0:t.track)!=null&&"live"===t.track.readyState&&t.track.enabled&&!t.track.muted)};if(null!=r)for(let e of["ended","mute","unmute"])r.addEventListener(e,a),this.trackCleanups.push(()=>r.removeEventListener(e,a));a()}dispose(){var e,t,r;for(let r of(this.generation++,this.captureGeneration++,clearTimeout(this.finishTimer),clearTimeout(this.disconnectTimer),this.finishing=void 0,this.closingNotified=!1,this.senderOperations=Promise.resolve(),null==(e=this.abort)||e.abort(Error("Realtime connection cancelled")),this.abort=void 0,null==(t=this.codec)||t.dispose(),this.codec=void 0,null!=this.dc&&(this.dc.onopen=null,this.dc.onclose=null,this.dc.onerror=null,this.dc.onmessage=null,this.dc.close(),this.dc=void 0),null!=this.pc&&(this.closePeer(this.pc),this.pc=void 0),this.trackCleanups))r();this.trackCleanups=[],this.ownsStream&&(null==(r=this.stream)||r.getTracks().forEach(e=>e.stop())),this.stream=void 0,this.sender=void 0,null!=this.audio&&(this.audio.onplaying=null,this.audio.onpause=null,this.audio.onended=null,this.audio.onwaiting=null,this.audio.pause(),this.audio.srcObject=null,this.audio=void 0),this.options.onCapturing(!1),this.options.onPlaying(!1)}},iv=class{constructor(){this.abort=new AbortController,this.timers=new Map,this.active=!0,this.ready=!1,this.closing=!1,this.transportClosing=!1}timer(e,t,r){this.clearTimer(e),this.timers.set(e,setTimeout(()=>{this.timers.delete(e),this.active&&r()},t))}clearTimer(e){clearTimeout(this.timers.get(e)),this.timers.delete(e)}beginClose(){var e;return this.closing=!0,null!=(e=this.closePromise)?e:this.closePromise=new Promise(e=>{this.settleClose=e})}retire(){var e;if(this.active){for(let e of(this.active=!1,this.abort.abort(),this.timers.values()))clearTimeout(e);this.timers.clear(),null==(e=this.settleClose)||e.call(this),this.settleClose=void 0}}},ib=class{constructor(e){this.sendCommand=e,this.pending=new Map,this.recent=new Set}validateId(e){if(this.pending.has(e)||this.recent.has(e))throw Error("Realtime command ID was already used; retry with a fresh eventId");if(this.pending.size>=512)throw Error("Too many pending realtime commands")}complete(e){let t=this.pending.get(e);if(null!=t){if(this.pending.delete(e),this.recent.add(e),this.recent.size>4096){let e=this.recent.values().next().value;null!=e&&this.recent.delete(e)}return t}}send(e){var t;let r="input-audio-mute"===e.type||"input-audio-unmute"!==e.type&&void 0;("input-audio-mute"===e.type||"input-audio-unmute"===e.type)&&(e={...e,eventId:null!=(t=e.eventId)?t:tI()});let a="eventId"in e?e.eventId:void 0;null!=a&&(this.validateId(a),this.pending.set(a,{muted:r}));let n="context-append"===e.type||"session-update"===e.type||null!=r;try{let t=this.sendCommand(e);return t.then(()=>{null==a||n||this.complete(a)},()=>{null!=a&&this.complete(a)}),t}catch(e){throw null!=a&&this.complete(a),e}}receive(e){if("command-acknowledged"===e.type&&null!=e.clientEventId)return this.complete(e.clientEventId);"error"===e.type&&null!=e.clientEventId&&this.complete(e.clientEventId)}},iw=nN.object({token:nN.string().refine(e=>e.trim().length>0),url:nN.string().refine(e=>{try{let t=new URL(e);return("ws:"===t.protocol||"wss:"===t.protocol)&&""!==t.hostname}catch(e){return!1}}),expiresAt:nN.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:nN.array(nN.object({type:nN.literal("function"),name:nN.string().min(1),description:nN.string().optional(),parameters:nN.record(nN.string(),nN.unknown())})).optional()});function ix(){return{transcripts:[],delegations:[],isInputMuted:!1,finalization:"pending"}}var ik=class{constructor(e=500){this.maxEvents=e,this.currentAssistantMessageId=null,this.textAccumulators=new Map,this.toolArgAccumulators=new Map,this.toolCallIdToMessageId=new Map,this.toolCallIdToName=new Map,this.inputAudioMessageInsertIndex=new Map,this.itemIdToPartLocation=new Map}setStatus(e,t){return{...e,status:t}}setCapturing(e,t){return{...e,isCapturing:t}}setPlaying(e,t){return{...e,isPlaying:t}}addUserTextMessage(e,t){return{...e,messages:[...e.messages,{id:`user-${Date.now()}`,role:"user",parts:[{type:"text",text:t,state:"done"}]}]}}addToolOutput(e,t,r){return{state:this.updateToolPartState(e,t,r),output:{callId:t,name:this.toolCallIdToName.get(t),output:JSON.stringify(r)}}}async reduceServerEvent(e,t){var r;let a=this.pushEvent(e,t),n=[];switch(t.type){case"session-created":case"session-updated":"connecting"===a.status&&(a=this.setStatus(a,"connected"));break;case"audio-delta":n.push({type:"play-audio",itemId:t.itemId,delta:t.delta});break;case"audio-committed":null!=t.itemId&&this.inputAudioMessageInsertIndex.set(t.itemId,a.messages.length);break;case"audio-transcript-delta":case"text-delta":a=this.appendTextDelta(a,t.itemId,t.delta);break;case"audio-transcript-done":a=this.finalizeText(a,t.itemId,t.transcript);break;case"text-done":a=this.finalizeText(a,t.itemId,t.text);break;case"input-transcription-completed":a=this.addInputTranscriptionMessage(a,t.itemId,t.transcript);break;case"response-created":case"response-done":this.currentAssistantMessageId=null;break;case"speech-started":this.currentAssistantMessageId=null,n.push({type:"speech-started"});break;case"function-call-arguments-delta":{let{state:e,messageId:n}
37=this.getOrCreateAssistantMessage(a);a=e,this.toolCallIdToMessageId.set(t.callId,n);let i=null!=(r=this.toolArgAccumulators.get(t.callId))?r:"";this.toolArgAccumulators.set(t.callId,i+t.delta),a=this.ensureToolPart(a,n,t.callId);break}case"function-call-arguments-done":{this.toolArgAccumulators.delete(t.callId),this.toolCallIdToName.set(t.callId,t.name);let e=await ro({text:t.arguments}),r=e.success?e.value:{},i=this.toolCallIdToMessageId.get(t.callId);null!=i&&(a=this.markToolInputAvailable(a,i,t.callId,t.name,r)),e.success?n.push({type:"tool-call",callId:t.callId,name:t.name,args:r,rawArguments:t.arguments}):n.push({type:"error",error:Error(`Failed to parse tool arguments: ${t.arguments}`)});break}case"error":n.push({type:"error",error:Error(t.message)})}return{state:a,effects:n}}pushEvent(e,t){let r=[...e.events,t];return{...e,events:r.length>this.maxEvents?r.slice(-this.maxEvents):r}}getOrCreateAssistantMessage(e){if(null!=this.currentAssistantMessageId)return{state:e,messageId:this.currentAssistantMessageId};let t=`assistant-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;return this.currentAssistantMessageId=t,{state:{...e,messages:[...e.messages,{id:t,role:"assistant",parts:[]}]},messageId:t}}addInputTranscriptionMessage(e,t,r){var a;let n=`user-${t}`;if(null!=e.messages.find(e=>e.id===n))return{...e,messages:e.messages.map(e=>e.id===n?{...e,parts:[{type:"text",text:r,state:"done"}]}:e)};let i=Math.min(null!=(a=this.inputAudioMessageInsertIndex.get(t))?a:e.messages.length,e.messages.length),o=[...e.messages];return o.splice(i,0,{id:n,role:"user",parts:[{type:"text",text:r,state:"done"}]}),{...e,messages:o}}appendTextDelta(e,t,r){var a;let{state:n,messageId:i}=this.getOrCreateAssistantMessage(e),o=(null!=(a=this.textAccumulators.get(t))?a:"")+r;this.textAccumulators.set(t,o);let s=this.itemIdToPartLocation.get(t);return null!=s?this.updateMessagePart(n,s.messageId,s.partIndex,{type:"text",text:o,state:"streaming"}):{...n,messages:n.messages.map(e=>{if(e.id!==i)return e;let r=e.parts.length;return this.itemIdToPartLocation.set(t,{messageId:i,partIndex:r}),{...e,parts:[...e.parts,{type:"text",text:o,state:"streaming"}]}})}}finalizeText(e,t,r){var a;let n=null!=(a=null!=r?r:this.textAccumulators.get(t))?a:"";this.textAccumulators.delete(t);let i=this.itemIdToPartLocation.get(t);return null==i?e:(this.itemIdToPartLocation.delete(t),this.updateMessagePart(e,i.messageId,i.partIndex,{type:"text",text:n,state:"done"}))}ensureToolPart(e,t,r){return{...e,messages:e.messages.map(e=>e.id!==t||null!=e.parts.find(e=>"dynamic-tool"===e.type&&e.toolCallId===r)?e:{...e,parts:[...e.parts,{type:"dynamic-tool",toolName:"",toolCallId:r,state:"input-streaming",input:void 0}]})}}markToolInputAvailable(e,t,r,a,n){return{...e,messages:e.messages.map(e=>e.id!==t?e:{...e,parts:e.parts.map(e=>"dynamic-tool"!==e.type||e.toolCallId!==r?e:{...e,toolName:a,state:"input-available",input:n})})}}updateToolPartState(e,t,r){let a=this.toolCallIdToMessageId.get(t);return null==a?e:{...e,messages:e.messages.map(e=>e.id!==a?e:{...e,parts:e.parts.map(e=>"dynamic-tool"!==e.type||e.toolCallId!==t?e:{...e,state:"output-available",output:r})})}}updateMessagePart(e,t,r,a){return{...e,messages:e.messages.map(e=>{if(e.id!==t)return e;let n=[...e.parts];return n[r]=a,{...e,parts:n}})}}},iE=class{constructor(e){var t,r,a,n,i;this.options=e,this.state={status:"disconnected",messages:[],events:[],isCapturing:!1,isPlaying:!1},this.publication=0,this.captureGeneration=0,this.captureRequested=!1,this.currentResponseItemId=null,this.toolCallsInResponse=new Set,this.submittedToolOutputs=new Set,this.responseToolCallsClosed=!1;const o=e.model.capabilities;if(this.sessionLifecycle=(null==o?void 0:o.startup)==="session-start"||(null==o?void 0:o.finalization)==="session-close",this.continuous=(null==o?void 0:o.conversation)==="continuous",this.maxEvents=null!=(t=e.maxEvents)?t:500,!Number.isSafeInteger(this.maxEvents)||this.maxEvents<1)throw Error("maxEvents must be a positive integer");for(const t of[null!=(r=e.startupTimeoutMs)?r:3e4,null!=(a=e.closeTimeoutMs)?a:15e3,null!=(n=e.rtcDisconnectTimeoutMs)?n:5e3])if(!Number.isFinite(t)||t<=0||t>0x7fffffff)throw Error("Realtime timeouts must be positive finite timer durations");const s=null!=(i=e.maxPlaybackBufferSeconds)?i:2;if(!Number.isFinite(s)||s<=0)throw Error("maxPlaybackBufferSeconds must be positive and finite");this.reducer=new ik(this.maxEvents),this.onToolCall=e.onToolCall,this.onEvent=e.onEvent,this.onError=e.onError}validateConnection(){var e,t,r;let{model:a,api:n}=this.options;if((!this.continuous||null!=n.session)&&null!=this.options.maxPlaybackBufferSeconds)throw Error("maxPlaybackBufferSeconds
37is supported only for continuous PCM sessions");let i=null!=n.session?"webrtc":null!=n.token?"client-secret-websocket":"server-websocket";if(!(null!=(t=null==(e=a.capabilities)?void 0:e.connections)?t:["client-secret-websocket"]).includes(i)||(null==(r=a.capabilities)?void 0:r.transports)!=null&&!a.capabilities.transports.includes(null!=n.session?"webrtc":"websocket"))throw Error(`Realtime model does not support ${i}`);if(null!=n.session){if(null==a.getWebRTCConfig)throw Error("Realtime model does not support WebRTC configuration");return}if(this.continuous&&null==n.websocket)throw Error("Continuous PCM sessions require an application WebSocket relay");if(null!=n.token&&null==a.getWebSocketConfig)throw Error("Realtime model does not support client-secret WebSocket configuration")}async connect(e){var t,r,a,n;if(null==(t=this.attempt)?void 0:t.active)throw Error("Realtime session is already active");let i=new iv;this.attempt=i;let o=()=>this.attempt===i&&i.active;try{if(this.applyState({...this.state,status:"connecting"}),!o())return;this.validateConnection();let{model:t,api:s,sessionConfig:l}=this.options;if((null==e?void 0:e.capture)===!1&&this.stopAudioCapture(),!o()||((null==e?void 0:e.stream)!=null&&e.stream!==this.suppliedStream&&(!this.captureRequested||this.sessionLifecycle||this.continuous||null!=s.session?this.suppliedStream=e.stream:this.startAudioCapture(e.stream)),!o())||(this.reducer=new ik(this.maxEvents),this.currentResponseItemId=null,this.toolCallsInResponse.clear(),this.submittedToolOutputs.clear(),this.responseToolCallsClosed=!1,this.sessionLifecycle&&this.applyState({...this.state,session:ix()}),!o()))return;this.commands=new ib(e=>{let t=()=>o()&&!i.transportClosing&&null==i.cause&&(!i.closing||"session-close"===e.type);if(!t())throw Error("Realtime connection is closed");return this.sendTransport(e,t)}),i.timer("startup",null!=(r=this.options.startupTimeoutMs)?r:3e4,()=>{o()&&this.fail(Error("Realtime session startup timed out"))});let c=new WeakSet,u={model:t,onEvent:async e=>{var t,r,a;if(o())try{await this.handleServerEvent(e,i)}catch(e){o()&&this.fail(e,null==(a=null!=(r=null!=(t=this.rtc)?t:this.pcm)?r:this.transport)?void 0:a.finish())}},onError:e=>{o()&&(c.add(e),this.reportError(e,i))},onFatalError:(e,t)=>{o()&&this.fail(e,t)},onClosing:()=>{!o()||(i.beginClose(),i.transportClosing=!0,i.clearTimer("startup"),i.clearTimer("close"),this.stopAudioCapture(),o()&&this.applyState({...this.state,status:null==i.cause?"closing":"error"}))},onClose:e=>{var r,a;if(!o())return;let n=(null==(r=t.capabilities)?void 0:r.finalization)==="session-close"&&(null==(a=this.state.session)?void 0:a.finalization)==="confirmed";null==e||n?i.ready||n?this.disconnect():this.fail(Error("Realtime connection closed before becoming ready")):this.fail(e,void 0,!c.has(e))},onCapturing:e=>{o()&&this.applyState({...this.state,isCapturing:e})},onPlaying:e=>{o()&&this.applyState({...this.state,isPlaying:e})}};if(null!=s.session)this.rtc=new iy({...u,disconnectTimeoutMs:this.options.rtcDisconnectTimeoutMs}),await this.rtc.connect({api:s.session,sessionConfig:l,stream:null==e?void 0:e.stream,capture:null==e?void 0:e.capture,timeoutMs:null!=(a=this.options.startupTimeoutMs)?a:3e4});else if(null!=s.websocket&&(null==(n=t.capabilities)?void 0:n.conversation)==="continuous")this.pcm=new ih({...u,sessionConfig:l,sampleRate:this.options.sampleRate,maxPlaybackBufferSeconds:this.options.maxPlaybackBufferSeconds}),this.pcm.connect({url:s.websocket,protocols:s.protocols,stream:null==e?void 0:e.stream,capture:null==e?void 0:e.capture});else{let e;this.ensureAudio();let r=null!=l?l:{},a=s.websocket;if(null!=s.token){let t=await fetch(s.token,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionConfig:l}),signal:i.abort.signal});if(!o())return;if(!t.ok)throw Error(`Failed to fetch realtime setup: ${t.status}`);let n=await t.json().catch(()=>{throw Error("Invalid realtime setup response")});if(!o()||i.closing)return;let c=function(e){let t=iw.safeParse(e);if(!t.success)throw Error("Invalid realtime setup: expected a nonempty token, a ws(s) URL, and valid optional expiresAt/tools");return t.data}(n);e=c.token,a=c.url,r={...l,...null==c.tools?{}:{tools:c.tools}}}if(null==a)throw Error("Realtime WebSocket URL is missing");if(null!=s.token&&null==e)throw Error("Realtime client-secret connection requires a token");if(this.ensureAudio().ensurePlaybackContext(),!o())return;this.transport=new ip({...u,onServerEvent:u.onEvent}),this.transport.connect({...null!=e?{mode:"client-secret",token:e}:{mode:"relay",protocols:s.protocols},url:a,onOpen:()=>{var e,a;let n=()=>o()&&!i.closing&&null==i.cause;if(n())return this.sendTransport({type:null!=(a=null==(e=t.capabilities)?void 0:e.startup)?a:"session-update",config:r},n)}})}}catch(e){o()&&this.fail(e)}}fail(e,t,r=!0){let a=this.attempt;null==a||!a.active||null!=a.cause||(a.cause=e instanceof Error?e:Error(String(e)),null!=t&&a.beginClose(),this.applyState({...this.state,status:"error"}),this.attempt!==a||!a.active||(this.stopAudioCapture(),this.attempt===a&&a.active&&(null==t?this.disconnect():this.drainAttempt(a,t),r&&this.reportError(a.cause,a))))}async drainAttempt(e,t){this.attempt===e&&e.active&&e.timer("drain",1e3,()=>this.finishAttempt(e));try{await t}catch(e){}this.finishAttempt(e)}finishAttempt(e){if(this.attempt===e&&e.active)try{this.disconnect()}catch(t){this.reportError(t,e)}}closeFailed(e,t){var r,a;if(this.attempt!==e||!e.active||e.transportClosing)return;e.clearTimer("close");let n=null!=(a=null!=(r=this.rtc)?r:this.pcm)?a:this.transport;this.drainAttempt(e,null==n?void 0:n.finish()),this.reportError(t,e)}disconnect(){let e=this.attempt;this.captureGeneration++,this.captureRequested=!1,this.suppliedStream
37=void 0;let t=this.transport,r=this.audio,a=this.pcm,n=this.rtc;if(this.transport=void 0,this.audio=void 0,this.pcm=void 0,this.rtc=void 0,this.commands=void 0,null==e||e.retire(),null==t||t.dispose(),null==r||r.dispose(),null==a||a.dispose(),null==n||n.dispose(),this.attempt!==e)return;let i=this.state.session;this.applyState({...this.state,status:(null==e?void 0:e.cause)!=null?"error":"disconnected",isCapturing:!1,isPlaying:!1,...null!=i?{session:"confirmed"===i.finalization?i:{...i,finalization:"unconfirmed"}}:{}})}close(e){var t,r,a,n;let i=this.attempt;if((null==i?void 0:i.closePromise)!=null)return i.closePromise;if("connected"!==this.state.status||(null==(t=this.options.model.capabilities)?void 0:t.finalization)!=="session-close"||null==i)return this.disconnect(),Promise.resolve();(null==e?void 0:e.eventId)!=null&&(null==(r=this.commands)||r.validateId(e.eventId));let o=i.beginClose();if(this.applyState({...this.state,status:"closing"}),this.attempt!==i||!i.active||i.transportClosing||(this.stopAudioCapture(),this.attempt!==i||!i.active||i.transportClosing))return o;i.timer("close",null!=(a=this.options.closeTimeoutMs)?a:15e3,()=>this.finishAttempt(i));let s=e=>this.closeFailed(i,e);try{null==(n=this.commands)||n.send({type:"session-close",eventId:null==e?void 0:e.eventId}).catch(s)}catch(e){s(e)}return o}sendTransport(e,t,r=!1){var a,n;let i=null!=(n=null!=(a=this.rtc)?a:this.pcm)?n:this.transport;if(null==i)throw Error("Realtime connection is not open");return i===this.transport?this.transport.sendEvent(e,t,r):i.sendEvent(e,t)}sendEvent(e){var t,r,a,n;if("error"===this.state.status||"closing"===this.state.status||(null==(t=this.attempt)?void 0:t.closing)||!(null==(r=this.attempt)?void 0:r.active)||this.sessionLifecycle&&"connected"!==this.state.status)throw Error("Realtime session is not accepting submissions");if(null!=this.rtc&&"input-audio-append"===e.type||(this.continuous||null!=this.rtc)&&("input-audio-commit"===e.type||"input-audio-clear"===e.type))throw new eq({functionality:"JSON audio commands unsupported for this session transport"});if("session-close"===e.type)return this.close({eventId:e.eventId});if("session-start"===e.type&&this.sessionLifecycle)throw Error("Realtime session has already started");if(!this.sessionLifecycle&&null==this.state.session){let t=this.attempt;return this.sendTransport(e,()=>this.attempt===t&&t.active&&!t.closing&&null==t.cause)}return null!=(n=null==(a=this.commands)?void 0:a.send(e))?n:this.sendTransport(e)}sendTextMessage(e){if(this.continuous)throw new eq({functionality:"sendTextMessage for continuous sessions; client-delegation text is application-owned, use context-append for context"});this.sendEvent({type:"conversation-item-create",item:{type:"text-message",role:"user",text:e}}),this.sendEvent({type:"response-create"}),this.applyState(this.reducer.addUserTextMessage(this.state,e))}sendAudio(e){let t=this.attempt;this.sendEvent({type:"input-audio-append",audio:e}).catch(e=>{(null==t?void 0:t.active)&&this.attempt===t&&this.reportError(e,t)})}commitAudio(){this.sendEvent({type:"input-audio-commit"})}clearAudioBuffer(){this.sendEvent({type:"input-audio-clear"})}requestResponse(e){this.sendEvent({type:"response-create",...null!=e?{options:e}:{}})}cancelResponse(){this.sendEvent({type:"response-cancel"})}sendAutomaticAudio(e){var t;if("connected"!==this.state.status||!(null==(t=this.attempt)?void 0:t.active)||this.attempt.closing)return;let r=this.attempt,a=e=>{(null==r?void 0:r.active)&&this.attempt===r&&!r.closing&&this.fail(e)};try{this.sendTransport({type:"input-audio-append",audio:e},()=>this.attempt===r&&r.active&&!r.closing,!0).catch(a)}catch(e){a(e)}}addToolOutput(e,t){if(this.continuous)throw new eq({functionality:"addToolOutput for continuous sessions; client delegation is application-owned"});let r=this.attempt;if(!(null==r?void 0:r.active)||r.closing||null!=r.cause)throw Error("Realtime session is not accepting submissions");let{state:a,output:n}=this.reducer.addToolOutput(this.state,e,t);this.applyState(a),this.attempt===r&&(null==r?void 0:r.active)&&(this.sendEvent({type:"conversation-item-create",item:{type:"function-call-output",...n}}),this.submittedToolOutputs.add(e),this.maybeRequestToolResponse())}maybeRequestToolResponse(){var e;"connected"!==this.state.status||(null==(e=this.attempt)?void 0:e.closing)||!this.responseToolCallsClosed||0===this.toolCallsInResponse.size||[...this.toolCallsInResponse].some(e=>!this.submittedToolOutputs.has(e))||(this.sendEvent({type:"response-create"}),this.toolCallsInResponse.clear(),this.submittedToolOutputs.clear(),this.responseToolCallsClosed=!1)}startAudioCapture(e){var t;let r=!this.sessionLifecycle&&!this.continuous&&null==this.options.api.session;if(!r&&"connected"!==this.state.status||(null==(t=this.attempt)?void 0:t.active)&&(this.attempt.closing||null!=this.attempt.cause))throw Error("Realtime session is not accepting capture");
37if(this.suppliedStream=e,r){this.captureGeneration++,this.captureRequested=!0,this.ensureAudio().startCapture(e);return}let a=this.attempt;this.resumeAudioCapture().catch(e=>{(null==a?void 0:a.active)&&this.reportError(e,a)})}async resumeAudioCapture(){let e=()=>{var e,t;return!(null==(e=this.attempt)?void 0:e.closing)&&(null==(t=this.attempt)?void 0:t.cause)==null&&("connected"===this.state.status||!this.sessionLifecycle&&"connecting"===this.state.status)};if(!e())throw Error("Realtime session is not accepting capture");if(this.captureRequested=!0,null!=this.rtc)return this.rtc.startCapture(this.suppliedStream);if(null!=this.pcm)return this.pcm.resumeCapture(this.suppliedStream);let t=this.audio;if(null==t)throw Error("Realtime capture transport is not ready");let r=++this.captureGeneration,a=this.attempt,n=this.suppliedStream,i=null!=n?n:await navigator.mediaDevices.getUserMedia({audio:!0});if(!(null==a?void 0:a.active)||this.attempt!==a||this.audio!==t||!e()||r!==this.captureGeneration){null==n&&i.getTracks().forEach(e=>e.stop());return}t.startCapture(i,{ownsStream:null==n||!this.sessionLifecycle||null!=this.options.api.token})}stopAudioCapture(){this.captureGeneration++,this.captureRequested=!1,null==this.audio||this.sessionLifecycle&&null==this.options.api.token||(this.suppliedStream=void 0);let e=this.pcm,t=this.audio,r=this.rtc,a=this.attempt;null!=r&&r.stopCapture().catch(e=>{(null==a?void 0:a.active)&&this.attempt===a&&this.reportError(e,a)}),null==e||e.stopCapture(),null==t||t.stopCapture()}stopPlayback(){var e,t,r;null==(r=null!=(t=null!=(e=this.rtc)?e:this.pcm)?t:this.audio)||r.stopPlayback()}async resumePlayback(){var e,t,r;await (null==(r=null!=(t=null!=(e=this.rtc)?e:this.pcm)?t:this.audio)?void 0:r.resumePlayback())}dispose(){this.disconnect()}ensureAudio(){var e,t,r,a,n,i;if(null!=this.audio)return this.audio;let{sessionConfig:o,sampleRate:s}=this.options,l=new iu({captureSampleRate:null!=(r=null!=(t=null==(e=null==o?void 0:o.inputAudioFormat)?void 0:e.rate)?t:s)?r:24e3,playbackSampleRate:null!=(i=null!=(n=null==(a=null==o?void 0:o.outputAudioFormat)?void 0:a.rate)?n:s)?i:24e3,onAudio:e=>{this.audio===l&&this.sendAutomaticAudio(e)},onError:e=>{this.audio===l&&this.reportError(e,this.attempt)},onCapturingChange:e=>{this.audio===l&&this.applyState({...this.state,isCapturing:e})},onPlayingChange:e=>{this.audio===l&&this.applyState({...this.state,isPlaying:e})}});return this.audio=l,l}applyState(e){let t=++this.publication,r=this.state;this.state=e;let a=a=>{t===this.publication&&r[a]!==e[a]&&this.setState(a,e[a])};a("status"),a("messages"),a("events"),a("isCapturing"),a("isPlaying"),a("session")}async executeTool(e,t,r,a){if(!this.continuous&&this.attempt===a&&a.active&&!a.closing&&null==a.cause)try{if(null==this.onToolCall)return void this.reportError(Error(`No handler provided for tool "${t}"`),a);let n=await this.onToolCall({toolCall:{toolCallId:e,toolName:t,args:r}});void 0!==n&&this.attempt===a&&(null==a?void 0:a.active)&&"connected"===this.state.status&&this.addToolOutput(e,n)}catch(e){a.active&&this.reportError(e,a)}}async handleServerEvent(e,t){var r,a,n,i,o,s;let l=()=>this.attempt===t&&t.active;if(!l())return;if("session-started"===e.type&&"provider"===e.delegationMode)throw new eq({functionality:"Provider delegation mode; this realtime runtime supports client delegation only"});if(this.continuous&&"audio-delta"===e.type)throw new eq({functionality:"Turn-based audio-delta in a continuous PCM session; use audio-chunk"});let c=null==(r=this.commands)?void 0:r.receive(e),u=await this.reducer.reduceServerEvent(this.state,e);if(!l())return;let d=null!=(a=this.state.session)?a:"session-started"===e.type?ix():void 0;if(this.applyState({...u.state,status:this.state.status,...null==d?{}:{session:function(e,t,r,a){var n;switch(t.type){case"session-started":return{...e,sessionId:t.sessionId,delegationMode:t.delegationMode};case"session-usage":return{...e,usage:t.usage};case"session-closed":return{...e,sessionId:null!=(n=t.sessionId)?n:e.sessionId,usage:t.usage,terminationReason:t.reason,finalization:"confirmed"};case"transcript-fragment":return{...e,transcripts:[...e.transcripts,t].slice(-r)};case"delegation-created":return e.delegations.some(e=>e.delegationId===t.delegationId)?e:{...e,delegations:[...e.delegations,t].slice(-r)};case"command-acknowledged":return null==a?e:{...e,isInputMuted:a};default:return e}}(d,e,this.maxEvents,null==c?void 0:c.muted)}}),l()){for(let e of u.effects)if(this.handleReducerEffect(e,t),!l())return;if(("audio-chunk"===e.type&&(null==(i=null!=(n=this.pcm)?n:this.audio)||i.playAudio(e.delta)),l())&&("response-done"===e.type&&this.toolCallsInResponse.size>0&&(this.responseToolCallsClosed=!0,this.maybeRequestToolResponse()),l())){if("session-closed"===e.type&&null!=d){this.disconnect(),this.notifyEvent(e,t,!0);return}if(("session-started"===e.type||"session-created"===e.type||"session-updated"===e.type)&&t.active&&!t.closing&&null==t.cause&&((null==(o=this.options.model.capabilities)?void 0:o.startup)==="session-start"?"session-started"===e.type:"session-started"!==e.type)){if(t.ready=!0,t.clearTimer("startup"),this.applyState({...this.state,status:"connected"}),!l()||t.closing)return;null==(s=this.pcm)||s.startCapture()}l()&&this.notifyEvent(e,t)}}}handleReducerEffect(e,t){var r,a,n,i;switch(e.type){case"play-audio":this.currentResponseItemId=e.itemId,null==(r=this.audio)||r.playAudio(e.delta);break;case"speech-started":if(!this.continuous&&this.state.isPlaying){let e=null!=(n=null==(a=this.audio)?void 0:a.getPlaybackOffsetMs())?n:0,r=this.currentResponseItemId;if(null==(i=this.audio)||i.stopPlayback(),this.attempt!==t||!t.active)return;null==r||t.closing||null!=t.cause||this.sendEvent({type:"conversation-item-truncate",itemId:r,contentIndex:0,audioEndMs:Math.round(e)})}break;case"tool-call":if(this.continuous)break;this.toolCallsInResponse.add(e.callId),this.executeTool(e.callId,e.name,e.args,t);break;case"error":this.reportError(e.error,t)}}async reportError(e,t){var r;if(this.attempt===t)try{await (null==(r=this.onError)?void 0:r.call(this,e instanceof Error?e:Error(String(e)))
37)}catch(e){}}notifyEvent(e,t,r=!1){var a;if(this.attempt!==t||!t.active&&!r)return;let n=e=>{(t.active||r)&&this.reportError(e,t)};try{Promise.resolve(null==(a=this.onEvent)?void 0:a.call(this,e)).catch(n)}catch(e){n(e)}}},iS=Symbol.for("vercel.ai.error.AI_NoSuchProviderError");tS({prefix:"call",size:24}),il();var iI=e.i(33347),iC=Object.prototype.hasOwnProperty;let i_=new WeakMap,ij=()=>{},iT=ij(),iA=Object,iR=e=>e===iT,iM=(e,t)=>({...e,...t}),iO={},iP={},iN="undefined",iL=typeof window!=iN,i$=typeof document!=iN,iD=iL&&"Deno"in window,iU=(e,t)=>{let r=i_.get(e);return[()=>!iR(t)&&e.get(t)||iO,a=>{if(!iR(t)){let n=e.get(t);t in iP||(iP[t]=n),r[5](t,iM(n,a),n||iO)}},r[6],()=>!iR(t)&&t in iP?iP[t]:!iR(t)&&e.get(t)||iO]},iF=!0,[iH,iB]=iL&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[ij,ij],iq={initFocus:e=>(i$&&document.addEventListener("visibilitychange",e),iH("focus",e),()=>{i$&&document.removeEventListener("visibilitychange",e),iB("focus",e)}),initReconnect:e=>{let t=()=>{iF=!0,e()},r=()=>{iF=!1};return iH("online",t),iH("offline",r),()=>{iB("online",t),iB("offline",r)}}},iW=!Y.default.useId,iV=!iL||iD,iG=iV?Y.useEffect:Y.useLayoutEffect,iz="u">typeof navigator&&navigator.connection,iZ=!iV&&iz&&(["slow-2g","2g"].includes(iz.effectiveType)||iz.saveData),iY=new WeakMap,iJ=(e,t)=>e===`[object ${t}]`,iK=0,iX=e=>{let t,r,a=typeof e,n=iA.prototype.toString.call(e),i=iJ(n,"Date"),o=iJ(n,"RegExp"),s=iJ(n,"Object");if(iA(e)!==e||i||o)t=i?e.toJSON():"symbol"==a?e.toString():"string"==a?JSON.stringify(e):""+e;else{if(t=iY.get(e))return t;if(t=++iK+"~",iY.set(e,t),Array.isArray(e)){for(r=0,t="@";r<e.length;r++)t+=iX(e[r])+",";iY.set(e,t)}if(s){t="#";let a=iA.keys(e).sort();for(;!iR(r=a.pop());)iR(e[r])||(t+=r+":"+iX(e[r])+",");iY.set(e,t)}}return t},iQ=e=>{if("function"==typeof e)try{e=e()}catch(t){e=""}let t=e;return[e="string"==typeof e?e:(Array.isArray(e)?e.length:e)?iX(e):"",t]},i0=0,i1=()=>++i0;async function i5(...e){let[t,r,a,n]=e,i=iM({populateCache:!0,throwOnError:!0},"boolean"==typeof n?{revalidate:n}:n||{}),o=i.populateCache,s=i.rollbackOnError,l=i.optimisticData,c=i.throwOnError;if("function"==typeof r){let e=[];for(let a of t.keys())!/^\$(inf|sub)\$/.test(a)&&r(t.get(a)._k)&&e.push(a);return Promise.all(e.map(u))}return u(r);async function u(r){let n,[u]=iQ(r);if(!u)return;let[d,p]=iU(t,u),[h,m,f,g]=i_.get(t),y=()=>{let e=h[u];return("function"==typeof i.revalidate?i.revalidate(d().data,r):!1!==i.revalidate)&&(delete f[u],delete g[u],e&&e[0])?e[0](2).then(()=>d().data):d().data};if(e.length<3)return y();let v=a,b=!1,w=i1();m[u]=[w,0];let x=!iR(l),k=d(),E=k.data,S=k._c,I=iR(S)?E:S;if(x&&p({data:l="function"==typeof l?l(I,E):l,_c:I}),"function"==typeof v)try{v=v(I)}catch(e){n=e,b=!0}if(v&&"function"==typeof v.then){let e;if(v=await v.catch(e=>{n=e,b=!0}),w!==m[u][0]){if(b)throw n;return v}b&&x&&(e=n,"function"==typeof s?s(e):!1!==s)&&(o=!0,p({data:I,_c:iT}))}if(o&&!b&&("function"==typeof o?p({data:o(v,I),error:iT,_c:iT}):p({data:v,error:iT,_c:iT})),m[u][1]=i1(),Promise.resolve(y()).then(()=>{p({_c:iT})}),b){if(c)throw n;return}return v}}let i2=(e,t)=>{for(let r in e)e[r][0]&&e[r][0](t)},i4=(e,t)=>{if(!i_.has(e)){let r=iM(iq,t),a=Object.create(null),n=i5.bind(iT,e),i=ij,o=Object.create(null),s=(e,t)=>{let r=o[e]||[];return o[e]=r,r.push(t),()=>{let e=r.indexOf(t);e>=0&&(r[e]=r[r.length-1],r.pop())}},l=(t,r,a)=>{e.set(t,r);let n=o[t];if(n)for(let e of n)e(r,a)},c=t=>{let r=i_.get(e),[,n,i,s]=r,l=i1();for(let e in r[8]++,i)delete i[e];for(let e in s)delete s[e];for(let e in n)n[e]=[l,l];let c={};for(let t of[...e.keys()]){let r=e.get(t);e.delete(t);let a=o[t];if(a)for(let e of a)e(c,r)}let u=!t||!1!==t.revalidate;for(let e in a){let t=a[e];for(let e=0;e<t.length;e++)t[e](4,{revalidate:u&&!e})}},u=()=>{if(!i_.has(e)&&(i_.set(e,[a,Object.create(null),Object.create(null),Object.create(null),n,l,s,c,0]),!iV)){let t=r.initFocus(setTimeout.bind(iT,i2.bind(iT,a,0))),n=r.initReconnect(setTimeout.bind(iT,i2.bind(iT,a,1)));i=()=>{t&&t(),n&&n(),i_.delete(e)}}};return u(),[e,n,u,i,c]}let r=i_.get(e);return[e,r[4],iT,iT,r[7]]},[i3,i6,,,i8]=i4(new Map),i7=iM({onLoadingSlow:ij,onSuccess:ij,onError:ij,onErrorRetry:(e,t,r,a,n)=>{let i=r.errorRetryCount,o=n.retryCount,s=~~((Math.random()+.5)*(1<<(o<8?o:8)))*r.errorRetryInterval;(iR(i)||!(o>i))&&setTimeout(a,s,n)},onDiscarded:ij,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:iZ?1e4:5e3,focusThrottleInterval:5e3,dedupingInterval:2e3,loadingTimeout:iZ?5e3:3e3,compare:function e(t,r){var a,n;if(t===r)return!0;
37if(t&&r&&(a=t.constructor)===r.constructor){if(a===Date)return t.getTime()===r.getTime();if(a===RegExp)return t.toString()===r.toString();if(a===Array){if((n=t.length)===r.length)for(;n--&&e(t[n],r[n]););return -1===n}if(!a||"object"==typeof t){for(a in n=0,t)if(iC.call(t,a)&&++n&&!iC.call(r,a)||!(a in r)||!e(t[a],r[a]))return!1;return Object.keys(r).length===n}}return t!=t&&r!=r},isPaused:()=>!1,cache:i3,mutate:i6,unload:i8,fallback:{}},{isOnline:()=>iF,isVisible:()=>{let e=i$&&document.visibilityState;return iR(e)||"hidden"!==e}}),i9=(0,Y.createContext)({}),oe=iL&&window.__SWR_DEVTOOLS_USE__;(oe?window.__SWR_DEVTOOLS_USE__:[]).concat(e=>(t,r,a)=>{let n=r&&((...e)=>{let[a]=iQ(t),[,,,n]=i_.get(i3);if(a.startsWith("$inf$"))return r(...e);let i=n[a];return iR(i)?r(...e):(delete n[a],i)});return e(t,n,a)}),oe&&(window.__SWR_DEVTOOLS_REACT__=Y.default);let ot=Y.default.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}}),or={dedupe:!0},oa=Promise.resolve(iT);oa.status="fulfilled",oa.value=iT;iA.defineProperty(e=>{let{value:t}=e,r=(0,Y.useContext)(i9),a="function"==typeof t,n=(0,Y.useMemo)(()=>a?t(r):t,[a,r,t]),i=(0,Y.useMemo)(()=>a?n:((e,t)=>{let r=iM(e,t);if(t){let{use:a,fallback:n,cacheData:i}=e,{use:o,fallback:s,cacheData:l}=t;a&&o&&(r.use=a.concat(o)),n&&s&&(r.fallback=iM(n,s)),i&&l&&(r.cacheData=iM(i,l))}return r})(r,n),[a,r,n]),o=n&&n.provider,s=(0,Y.useRef)(iT);o&&!s.current&&(s.current=i4(o(i.cache||i3),n));let l=s.current;return l&&(i.cache=l[0],i.mutate=l[1],i.unload=l[4]),iG(()=>{if(l)return l[2]&&l[2](),l[3]},[]),(0,Y.createElement)(i9.Provider,iM(e,{value:i}))},"defaultValue",{value:i7}),e.i(561030),new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;var on="u"<typeof window?Y.useEffect:Y.useLayoutEffect,oi=class extends iE{constructor(){super(...arguments),this.state={status:"disconnected",messages:[],events:[],isCapturing:!1,isPlaying:!1},this.callbacks={status:new Set,messages:new Set,events:new Set,isCapturing:new Set,isPlaying:new Set,session:new Set}}get status(){return this.state.status}get messages(){return this.state.messages}get events(){return this.state.events}get isCapturing(){return this.state.isCapturing}get isPlaying(){return this.state.isPlaying}get session(){return this.state.session}subscribe(e,t){return this.callbacks[e].add(t),()=>{this.callbacks[e].delete(t)}}setState(e,t){this.state={...this.state,[e]:t},this.callbacks[e].forEach(e=>e())}},oo=function(e){var t;let r=(0,Y.useRef)(null),{model:a,api:n,startupTimeoutMs:i,closeTimeoutMs:o,rtcDisconnectTimeoutMs:s,sessionConfig:l,sampleRate:c,maxEvents:u,maxPlaybackBufferSeconds:d,onToolCall:p,onEvent:h,onError:m}=e,{token:f,websocket:g,session:y}=n,v=JSON.stringify(null!=(t=n.protocols)?t:[]),b=(0,Y.useMemo)(()=>{let e=new oi({model:a,api:null!=f?{token:f}:null!=y?{session:y}:{websocket:g,protocols:tO(v)},startupTimeoutMs:i,closeTimeoutMs:o,rtcDisconnectTimeoutMs:s,sessionConfig:l,sampleRate:c,maxEvents:u,maxPlaybackBufferSeconds:d,onEvent:(...t)=>{var a,n,i;return(null==(a=r.current)?void 0:a.store)===e?null==(i=(n=r.current).onEvent)?void 0:i.call(n,...t):void 0},onError:(...t)=>{var a,n,i;return(null==(a=r.current)?void 0:a.store)===e?null==(i=(n=r.current).onError)?void 0:i.call(n,...t):void 0}});return e},[a,f,y,g,v,i,o,s,l,c,u,d]);(0,Y.useInsertionEffect)(()=>(r.current={store:b,onToolCall:p,onEvent:h,onError:m},b.onToolCall=null==p?void 0:(...e)=>{var t,a,n;return(null==(t=r.current)?void 0:t.store)===b?null==(n=(a=r.current).onToolCall)?void 0:n.call(a,...e):void 0},()=>{r.current=null})),on(()=>()=>b.dispose(),[b]);let w=(0,Y.useMemo)(()=>{let e=()=>{if(null==r.current)throw Error("Realtime controls require a mounted hook");return r.current.store};return{connect:async t=>{let r=e();return null==t?r.connect():r.connect(t)},close:async t=>e().close(t),resumePlayback:async()=>e().resumePlayback(),resumeAudioCapture:async()=>e().resumeAudioCapture(),disconnect:()=>e().disconnect(),addToolOutput:(t,r)=>e().addToolOutput(t,r),sendEvent:t=>e().sendEvent(t),sendTextMessage:t=>e().sendTextMessage(t),sendAudio:t=>e().sendAudio(t),commitAudio:()=>e().commitAudio(),clearAudioBuffer:()=>e().clearAudioBuffer(),requestResponse:t=>e().requestResponse(t),cancelResponse:()=>e().cancelResponse(),startAudioCapture:t=>e().startAudioCapture(t),stopAudioCapture:()=>e().stopAudioCapture(),stopPlayback:()=>e().stopPlayback()}},[]),x=(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("status",e),[b]),()=>
37b.status,()=>b.status),k=(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("messages",e),[b]),()=>b.messages,()=>b.messages),E=(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("events",e),[b]),()=>b.events,()=>b.events),S=(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("isCapturing",e),[b]),()=>b.isCapturing,()=>b.isCapturing);return{status:x,messages:k,events:E,isCapturing:S,isPlaying:(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("isPlaying",e),[b]),()=>b.isPlaying,()=>b.isPlaying),session:(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>b.subscribe("session",e),[b]),()=>b.session,()=>b.session),...w}};function os(e){try{let t=new URL(e);return"ws:"===t.protocol||"wss:"===t.protocol}catch{return!1}}function ol({employee:e,setup:t,reducedMotion:r,onStop:a}){let n=(0,Y.useMemo)(()=>nx.experimental_realtime(t.model),[t.model]),i=(0,Y.useMemo)(()=>{if("function"!=typeof n.getWebSocketConfig)throw Error("Realtime model missing getWebSocketConfig");return n.getWebSocketConfig({token:t.token,url:t.url})},[n,t.token,t.url]),[o,s]=(0,Y.useState)(null),l=(0,Y.useRef)(null),c=(0,Y.useRef)(!1),{status:u,messages:d,connect:p,disconnect:h,startAudioCapture:m,stopAudioCapture:f,isCapturing:g,isPlaying:y}=oo({model:n,api:{websocket:i.url,protocols:i.protocols},sessionConfig:{instructions:t.instructions,turnDetection:{type:"server-vad"},outputModalities:["audio","text"],inputAudioTranscription:{}},onError:e=>{let t=e.message||"Voice session error.";s(/did not match the expected pattern/i.test(t)?"Voice connection failed. Try again.":t)}});(0,Y.useEffect)(()=>{if(c.current)return;c.current=!0;let e=!1;return(async()=>{try{if(!os(i.url))return void s("Voice connection URL is invalid. Try again.");if(await p(),e)return;if(!navigator.mediaDevices?.getUserMedia)return void s("This browser cannot access the microphone.");let t=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}});if(e)return void t.getTracks().forEach(e=>e.stop());l.current=t,m(t)}catch(r){if(e)return;let t=r instanceof DOMException?r.name:"";if("NotAllowedError"===t||"PermissionDeniedError"===t)s("Microphone permission denied. Allow mic access to talk.");else if("NotFoundError"===t)s("No microphone found on this device.");else{let e=r instanceof Error?r.message:"Could not start the microphone.";s(/did not match the expected pattern/i.test(e)?"Voice connection failed. Try again.":e)}}})(),()=>{e=!0,f(),h(),l.current?.getTracks().forEach(e=>e.stop()),l.current=null}},[]);let v=(0,Y.useCallback)(()=>{f(),h(),l.current?.getTracks().forEach(e=>e.stop()),l.current=null,a()},[h,a,f]),b=d.map(e=>{let t=e.parts.filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("").trim();return t?{id:e.id,role:e.role,text:t}:null}).filter(Boolean),w=b.length>0?b[b.length-1]:null;return(0,Z.jsxs)("div",{className:"mt-3 rounded-lg border border-[#05A451]/35 bg-black/40 px-3 py-3",children:[(0,Z.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,Z.jsxs)("p",{className:"inline-flex items-center gap-1.5 font-mono text-[0.6rem] font-semibold uppercase tracking-[0.12em] text-[#05A451]",children:[(0,Z.jsx)("span",{"aria-hidden":"true",className:["inline-block h-1.5 w-1.5 rounded-full bg-[#05A451]",!r&&(g||y)?"animate-pulse":""].join(" ")}),"Voice · ",null!=o?"Mic blocked":"connecting"===u?"Connectingâ¦":"connected"===u?g?y?"Speaking":"Listening":"Connected":"error"===u?"Error":"Idle"]}),(0,Z.jsx)("button",{type:"button",onClick:v,className:"rounded-md border border-white/20 bg-white/5 px-2.5 py-1 text-[0.65rem] font-semibold text-white/85 hover:border-white/40 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:"End voice"})]}),(0,Z.jsxs)("p",{className:"mt-2 text-[0.62rem] leading-snug text-white/45",children:["Talk naturally with ",e.name," â server voice activity detection ends each turn."]}),(0,Z.jsx)("div",{className:"sr-only","aria-live":"polite","aria-atomic":"false","aria-label":"Voice captions",children:w?`${"user"===w.role?"You":e.name}: ${w.text}`:o?"Captions pause until the mic is available.":"Listening for speechâ¦"}),o?(0,Z.jsx)("p",{role:"alert",className:"mt-2 text-[0.72rem] text-amber-200/90",children:o}):null]})}function oc({employee:e,consent:t,liveEnabled:r}){let[a,n]=(0,Y.useState)(null),[i,o]=(0,Y.useState)(!1),[s,l]=(0,Y.useState)(null),[c,u]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>u(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,Y.useEffect)(()=>{let e=!1;return(async()=>{await Promise.resolve(),e||(n(null),l(null),o(!1))})(),()=>{e=!0}},[e.slug]);let d=(0,Y.useCallback)(async()=>
37{if(!i&&t&&!1!==r&&!a){o(!0),l(null);try{let t=await fetch("/api/demo/digital-human-voice",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:e.slug,consent:!0})}),r=await t.text(),a=null;if(r.trim())try{a=JSON.parse(r)}catch{a=null}if(!t.ok||null==a||"string"!=typeof a.token||"string"!=typeof a.url||"string"!=typeof a.model||"string"!=typeof a.instructions)throw Error(null!=a&&"string"==typeof a.error?a.error:"Could not start a voice session.");if(!os(a.url))throw Error("Voice connection URL is invalid. Try again.");n({token:a.token,url:a.url,model:a.model,instructions:a.instructions})}catch(t){let e=t instanceof Error?t.message:"Could not start a voice session.";l(/did not match the expected pattern/i.test(e)?"Could not start a voice session. Try again.":e)}finally{o(!1)}}},[i,t,e.slug,r,a]),p=i||!t||!1===r;return(0,Z.jsxs)("section",{className:"mt-3","aria-label":`Voice conversation with ${e.name}`,children:[a?(0,Z.jsx)(ol,{employee:e,setup:a,reducedMotion:c,onStop:()=>n(null)},`${e.slug}-${a.token.slice(0,12)}`):(0,Z.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,Z.jsxs)("button",{type:"button",disabled:p,onClick:()=>void d(),"aria-pressed":!1,className:"inline-flex items-center gap-1.5 rounded-full border border-[#05A451]/45 bg-[#05A451]/15 px-3 py-1.5 text-[0.7rem] font-semibold text-white hover:border-[#05A451]/80 hover:bg-[#05A451]/25 disabled:cursor-not-allowed disabled:opacity-40 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:[(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-3.5 w-3.5",fill:"currentColor",children:(0,Z.jsx)("path",{d:"M12 14a3 3 0 0 0 3-3V6a3 3 0 1 0-6 0v5a3 3 0 0 0 3 3Zm5-3a5 5 0 0 1-10 0H5a7 7 0 0 0 6 6.9V21h2v-3.1A7 7 0 0 0 19 11h-2Z"})}),i?"Starting voiceâ¦":`Voice with ${e.name}`]}),(0,Z.jsx)("p",{className:"text-[0.62rem] text-white/40",children:t?"Realtime voice ready":"Accept consent first"})]}),s?(0,Z.jsx)("p",{role:"alert",className:"mt-2 text-[0.72rem] text-red-300",children:s}):null,!1===r?(0,Z.jsx)("p",{role:"status",className:"mt-2 text-[0.72rem] text-amber-200/90",children:"Live voice is temporarily unavailable on this deployment."}):null]})}let ou="1"===en.default.env.NEXT_PUBLIC_THOX_DH_VOICE;function od({employee:e}){let[t,r]=(0,Y.useState)(!1),[a,n]=(0,Y.useState)(""),[i,o]=(0,Y.useState)([]),[s,l]=(0,Y.useState)(!1),[c,u]=(0,Y.useState)(null),[d,p]=(0,Y.useState)(null),[h,m]=(0,Y.useState)(""),f=(0,Y.useRef)(null),g=(0,Y.useRef)(null),y=(0,Y.useRef)(e.slug);(0,Y.useEffect)(()=>{y.current=e.slug,g.current?.abort(),g.current=null;let t=!1;return(async()=>{await Promise.resolve(),t||(r(!1),n(""),o([{role:"assistant",content:`Hi, I'm ${e.name}. ${e.line} What would you like to know?`}]),u(null),l(!1),m(""))})(),()=>{t=!0}},[e.slug,e.name,e.line]),(0,Y.useEffect)(()=>{let e=!1;return fetch("/api/demo/digital-human-chat",{method:"GET",cache:"no-store"}).then(async e=>{if(!e.ok)throw Error("status");let t=await e.text();if(!t.trim())throw Error("status");return JSON.parse(t)}).then(t=>{e||p(!!t.liveEnabled)}).catch(()=>{e||p(!1)}),()=>{e=!0}},[]),(0,Y.useEffect)(()=>{f.current?.lastElementChild?.scrollIntoView({block:"nearest"})},[i,s]),(0,Y.useEffect)(()=>()=>{g.current?.abort(),g.current=null},[]);let v=(0,Y.useCallback)(async r=>{let a=r.trim();if(!a||s||!t||!1===d)return;let c=e.slug;l(!0),u(null),n(""),m(`${e.name} is writingâ¦`);let p=[...i,{role:"user",content:a}];o(p),g.current?.abort();let h=new AbortController;g.current=h;let f=!1,v=window.setTimeout(()=>{f=!0,h.abort()},eo);try{let t=await fetch("/api/demo/digital-human-chat",{method:"POST",headers:{"Content-Type":"application/json"},signal:h.signal,body:JSON.stringify({slug:e.slug,message:a,consent:!0,history:i.filter(e=>"user"===e.role||"assistant"===e.role).slice(-8)})}),r=await t.text();if(y.current!==c)return;let n=function(e){if(!e.trim())return null;try{return JSON.parse(e)}catch{return null}}(r);if(!t.ok||!n?.reply)throw Error(n?.error||(t.ok?"Chat returned an unreadable reply. Try again.":"Chat request failed. Try again."));o([...p,{role:"assistant",content:n.reply}]),m(`${e.name} replied.`)}catch(e){if(y.current!==c)return;if(h.signal.aborted&&!f)return void m("");u(f?"Chat timed out. Try again.":function(e,t="Chat request failed. Try again."){if(e instanceof DOMException&&("AbortError"===e.name||"TimeoutError"===e.name))return"Chat timed out. Try again.";if(e instanceof Error){let r=e.message||"";return/aborted|timed?\s*out|timeout/i.test(r)||"AbortError"===e.name||"TimeoutError"===e.name?"Chat timed out. Try again.":/did not match the expected pattern/i.test(r)||/unexpected (token|end of)/i.test(r)?t:r||t}return t}(e)),o(i),n(a),m("")}finally{window.clearTimeout(v),g.current===h&&(g.current=null),y.current===c&&l(!1)}},[s,t,e.name,e.slug,d,i]),b=(0,Y.useCallback)(e=>{e?.preventDefault(),v(a)},[a,v]);return(0,Z.jsxs)("div",{className:"flex h-full flex-col px-4 py-4",children:[(0,Z.jsx)("div",{className:"flex items-center justify-between gap-2",children:(0,Z.jsxs)("h5",{className:"text-sm font-bold text-white",children:["Chat with ",e.name]})}),(0,Z.jsx)("p",{className:"mt-2 text-[0.68rem] leading-snug text-white/45",children:"Openly synthetic DigitalHuman seat â not a founder or officer. Public demo only; do not enter secrets."}),(0,Z.jsxs)("section",{className:"mt-3 rounded-lg border border-[#05A451]/30 bg-[#05A451]/8 px-3 py-3","aria-label":"Live AI consent",children:[(0,Z.jsxs)("label",{className:"flex items-start gap-2 text-[0.75rem] leading-snug text-white/85",children:[(0,Z.jsx)("input",{type:"checkbox",checked:t,onChange:e=>r(e.target.checked),disabled:s,className:"mt-0.5"}),(0,Z.jsx)("span",{children:"I understand that my messages and this agent's name, role, and seat will be sent to external hosted AI services for live generation. This demo uses hosted processing. I will not enter sensitive data."})]}),(0,Z.jsxs)("p",{className:"mt-2 pl-6 text-[0.62rem] leading-snug text-white/45",children:["Same notices pattern as"," ",(0,Z.jsx)("a",{href:"/demos/thoxemployee/notices",className:"underline decoration-white/30 underline-offset-2 hover:
37decoration-white/70",children:"ThoxEmployee demo notices"}),". Daily per-network call limits. Not a private vault."]})]}),ou?(0,Z.jsx)(oc,{employee:e,consent:t,liveEnabled:d}):null,i.length>0?(0,Z.jsxs)("ol",{className:"mt-3 flex list-none flex-col gap-2","aria-label":`Conversation with ${e.name}`,children:[i.map((t,r)=>(0,Z.jsx)("li",{className:"user"===t.role?"flex justify-end":"flex justify-start",children:(0,Z.jsxs)("div",{className:["max-w-[85%] whitespace-pre-wrap rounded-lg px-3 py-2 text-[0.78rem] leading-snug","user"===t.role?"bg-[#05A451]/20 text-white":"border border-white/10 bg-black/40 text-white/90"].join(" "),children:[(0,Z.jsx)("span",{className:"sr-only",children:"user"===t.role?"You said: ":`${e.name} said: `}),t.content]})},`${t.role}-${r}`)),s?(0,Z.jsx)("li",{className:"flex justify-start",children:(0,Z.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/40 px-3 py-2 text-[0.78rem] italic text-white/50",children:[e.name," is writingâ¦"]})}):null]}):null,t&&!1!==d&&!i.some(e=>"user"===e.role)?(0,Z.jsxs)("div",{className:"mt-3",children:[(0,Z.jsx)("p",{className:"text-[0.68rem] text-white/45",children:"Try asking"}),(0,Z.jsx)("ul",{className:"mt-1.5 flex list-none flex-wrap gap-1.5",children:(X[e.slug]??[]).map(e=>(0,Z.jsx)("li",{children:(0,Z.jsx)("button",{type:"button",disabled:s,onClick:()=>void v(e),className:"rounded-full border border-[#05A451]/40 bg-black/40 px-3 py-1.5 text-[0.72rem] text-white/85 transition-colors hover:border-[#05A451]/80 hover:text-white disabled:cursor-not-allowed disabled:opacity-40 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:e})},e))})]}):null,(0,Z.jsx)("p",{className:"sr-only","aria-live":"polite",role:"status",children:h}),c?(0,Z.jsx)("p",{role:"alert",className:"mt-2 text-[0.78rem] text-red-300","data-dh-chat-error":"true",children:c}):null,!1===d?(0,Z.jsx)("p",{role:"status",className:"mt-2 text-[0.78rem] text-amber-200/90",children:"Live DigitalHuman chat is temporarily unavailable on this deployment."}):null,(0,Z.jsxs)("form",{onSubmit:b,className:"mt-3",children:[(0,Z.jsxs)("label",{htmlFor:`dh-panel-chat-${e.slug}`,className:"sr-only",children:["Message to ",e.name]}),(0,Z.jsxs)("div",{className:"flex items-end gap-2",children:[(0,Z.jsx)("textarea",{id:`dh-panel-chat-${e.slug}`,rows:2,value:a,onChange:e=>n(e.target.value),maxLength:2e3,disabled:s||!1===d,placeholder:t?"Type your message...":"Accept consent to chat",className:"min-h-[2.75rem] w-full resize-y rounded-lg border border-white/15 bg-black/60 px-3 py-2 text-[0.78rem] text-white placeholder:text-white/35 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451] disabled:opacity-60",onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),v(a))}}),(0,Z.jsx)("button",{type:"submit",disabled:s||!t||!a.trim()||!1===d,"aria-label":"Send message",className:"inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-[#05A451] text-black disabled:cursor-not-allowed disabled:opacity-40 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"currentColor",children:(0,Z.jsx)("path",{d:"M3.4 20.6 21 12 3.4 3.4l2.1 7.2L14 12l-8.5 1.4Z"})})})]})]})]})}function op({employee:e,onClose:t}){let r=(0,Y.useId)(),a=(0,Y.useRef)(null),n=(0,Y.useRef)(null),[i,o]=(0,Y.useState)(!0),[s,l]=(0,Y.useState)(!1),[c,u]=(0,Y.useState)(!1),[d,p]=(0,Y.useState)(!1),h=null!==e;(0,Y.useEffect)(()=>{let t=async()=>{if(await Promise.resolve(),o(!0),l(!1),u(!1),p(!e?.hasIntro),window.matchMedia("(prefers-reduced-motion: reduce)").matches||!e?.hasIntro)return void l(!!e?.hasIntro);let t=n.current;if(!t)return;t.muted=!0;let r=t.play();r&&r.then(()=>u(!0)).catch(()=>l(!0))};h&&t()},[h,e]),(0,Y.useEffect)(()=>{if(h)return;let e=n.current;e&&(e.pause(),e.removeAttribute("src"),e.load())},[h]),(0,Y.useEffect)(()=>{if(!h)return;let e=e=>{"Escape"===e.key&&(e.stopPropagation(),t())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[h,t]),(0,Y.useEffect)(()=>{h&&a.current?.querySelector('a[href],button:not([disabled]),textarea:not([disabled]),input
37:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')?.focus()},[h,e?.slug]);let m=(0,Y.useCallback)(()=>{let e=n.current;if(!e)return;let t=!e.muted;e.muted=t,o(t)},[]),f=(0,Y.useCallback)(()=>{let e=n.current;e&&(e.paused?e.play().then(()=>{u(!0),l(!1)}).catch(()=>l(!0)):(e.pause(),u(!1)))},[]);if(!e)return(0,Z.jsx)("aside",{"aria-hidden":"true",className:"hidden rounded-2xl border border-dashed border-white/10 bg-black/20 p-6 text-sm text-white/40 lg:block",children:"Select a DigitalHuman to watch their intro and start a conversation."});let g=`/video/digitalhumans/${e.slug}-intro`,y={"--agent-accent":e.accent};return(0,Z.jsxs)("aside",{ref:a,role:"complementary","aria-labelledby":r,style:y,className:"flex max-h-[min(90vh,52rem)] flex-col overflow-hidden rounded-2xl border border-[color-mix(in_srgb,var(--agent-accent)_45%,#05A451)] bg-black/70 shadow-[0_0_40px_color-mix(in_srgb,#05A451_18%,transparent)] backdrop-blur-xl",children:[(0,Z.jsxs)("div",{className:"flex items-start justify-between gap-3 border-b border-white/10 px-4 py-3",children:[(0,Z.jsxs)("div",{className:"min-w-0",children:[(0,Z.jsx)("p",{className:"font-mono text-[0.55rem] font-semibold uppercase tracking-[0.16em] text-[#05A451]",children:"Video introduction"}),(0,Z.jsxs)("h4",{id:r,className:"mt-1 truncate text-base font-bold text-white",children:["Get to know ",e.name]})]}),(0,Z.jsxs)("button",{type:"button",onClick:t,className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border border-white/20 bg-black/60 text-white/80 hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:[(0,Z.jsxs)("span",{className:"sr-only",children:["Close ",e.name]}),(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,Z.jsx)("path",{d:"M6 6l12 12M18 6L6 18"})})]})]}),(0,Z.jsxs)("div",{className:"relative mx-auto aspect-[2/3] w-full max-w-[15rem] shrink-0 bg-black",children:[e.hasIntro?(0,Z.jsx)("video",{ref:n,className:"absolute inset-0 h-full w-full object-contain",width:448,height:672,poster:`${g}-poster.jpg`,preload:"metadata",playsInline:!0,muted:i,controls:!0,onEnded:()=>{u(!1),p(!0)},onPause:()=>u(!1),onPlay:()=>u(!0),onError:()=>l(!0),children:(0,Z.jsx)("source",{src:`${g}.mp4`,type:"video/mp4"})}):(0,Z.jsx)(ea.default,{src:`/images/digitalhumans/${e.slug}.png`,alt:"",width:J.THOXWORK_PORTRAIT_WIDTH,height:J.THOXWORK_PORTRAIT_HEIGHT,className:"absolute inset-0 h-full w-full object-cover object-center"}),e.hasIntro?(0,Z.jsxs)("div",{className:"pointer-events-none absolute bottom-3 left-3 flex items-center gap-2",children:[(0,Z.jsx)("button",{type:"button",onClick:f,className:"pointer-events-auto inline-flex h-8 items-center rounded-full border border-[#05A451]/70 bg-black/75 px-3 text-[0.65rem] font-semibold text-[#05A451] backdrop-blur-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:c?"Pause":s?"Play":"Replay"}),(0,Z.jsx)("button",{type:"button",onClick:m,"aria-pressed":!i,className:"pointer-events-auto inline-flex h-8 items-center rounded-full border border-white/25 bg-black/75 px-3 text-[0.65rem] font-semibold text-white/85 backdrop-blur-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:i?"Unmute":"Mute"})]}):null]}),(0,Z.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,Z.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,Z.jsxs)("div",{className:"min-w-0",children:[(0,Z.jsx)("p",{className:"truncate text-lg font-extrabold text-white",children:e.name}),(0,Z.jsxs)("p",{className:"truncate text-sm text-white/75",children:[e.role," · ",e.seat]})]}),(0,Z.jsx)("p",{className:"shrink-0 font-mono text-[0.6rem] tracking-[0.12em] text-white/50",children:e.employeeId})]}),(0,Z.jsx)("p",{className:"mt-2 text-sm leading-snug text-white/70",children:e.line}),e.hasIntro&&!d?(0,Z.jsxs)("button",{type:"button",onClick:()=>{n.current?.pause(),u(!1),p(!0)},className:"mt-3 inline-flex min-h-10 items-center rounded-lg bg-[#05A451] px-4 py-2 text-sm font-semibold text-black focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#05A451]",children:["Skip intro · chat with ",e.name]}):null]}),(0,Z.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:d?(0,Z.jsx)(od,{employee:e}):(0,Z.jsxs)("p",{className:"px-4 py-4 text-sm text-white/45",children:["Watch the intro or skip to chat with ",e.name,"."]})})]})}function oh(e){if(!Number.isFinite(e)||e<0)return"0:00";let t=Math.floor(e);return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function om({employee:e,autoPlay:t,className:r=""}){let a=(0,Y.useRef)(null),n=(0,Y.useRef)(null),[i,o]=(0,Y.useState)(!1),[s,l]=(0,Y.useState)(!0),[c,u]=(0,Y.useState)(0),[d,p]=(0,Y.useState)(0),[h,m]=(0,Y.useState)(!1),f=`/video/digitalhumans/${e.slug}-intro`,g={"--agent-accent":e.accent};(0,Y.useEffect)(()=>{let r=a.current;if(!r||(u(0),m(!1),o(!1),r.muted=!0,l(!0),r.load(),!t||!e.hasIntro))return;let n=r.play();n&&n.then(()=>o(!0)).catch(()=>m(!0))},[e.slug,e.hasIntro,t]);let y=(0,Y.useCallback)(()=>{let e=a.current;e&&(e.paused?e.play().then(()=>{o(!0),m(!1)}).catch(()=>m(!0)):e.pause())},[]),v=(0,Y.useCallback)(()=>{let e=a.current;e&&(e.muted=!e.muted,l(e.muted))},[]),b=(0,Y.useCallback)(e=>{let t=a.current;t&&Number.isFinite(t.duration)&&(t.currentTime=e,u(e))},[]),w=(0,Y.useCallback)(()=>{let e=n.current;e&&(document.fullscreenElement?document.exitFullscreen():e.requestFullscreen?.().catch(()=>void 0))},[]);return(0,Z.jsxs)("section",{style:g,"aria-label":`Video introduction, ${e.name}`,className:`rounded-2xl border border-white/10 bg-[#0a0d0c] p-4 ${r}`.trim(),children:[(0,Z.jsxs)("header",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,Z.jsxs)("div",{className:"min-w-0",children:[(0,Z.jsx)("h3",{className:"text-base font-bold text-white",children:"Video introduction"}),(0,Z.jsxs)("p",{className:"mt-0.5 text-xs text-white/55",children:["Get to know ",e.name]})]}),(0,Z.jsxs)("button",{type:"button",onClick:w,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-white/15 text-white/70 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--agent-accent)]",children:[(0,Z.jsxs)("span",{className:"sr-only",children:["Expand ",e.name,"'s introduction to full screen"]}),(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,Z.jsx)("path",{d:"M9 4H4v5M15 4h5v5M15 20h5v-5M9 20H4v-5"})})]})]}),(0,Z.jsx)("div",{ref:n,className:"relative mx-auto aspect-[2/3] w-full max-w-[16rem] overflow-hidden rounded-xl bg-black",children:e.hasIntro?(0,Z.jsx)("video",{ref:a,className:"absolute inset-0 h-full w-full object-cover",width:448,height:672,poster:`${f}
37-poster.jpg`,preload:"metadata",playsInline:!0,muted:s,"aria-label":`${e.name} video introduction`,onLoadedMetadata:e=>p(e.currentTarget.duration),onTimeUpdate:e=>u(e.currentTarget.currentTime),onPlay:()=>o(!0),onPause:()=>o(!1),onEnded:()=>o(!1),onError:()=>m(!0),children:(0,Z.jsx)("source",{src:`${f}.mp4`,type:"video/mp4"})},e.slug):(0,Z.jsxs)("p",{className:"absolute inset-0 flex items-center justify-center px-6 text-center text-xs text-white/55",children:[e.name," has no introduction clip yet."]})}),e.hasIntro?(0,Z.jsxs)("div",{role:"group","aria-label":`${e.name} introduction playback`,className:"mt-3 flex items-center gap-2.5",children:[(0,Z.jsxs)("button",{type:"button",onClick:y,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-white/85 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--agent-accent)]",children:[(0,Z.jsx)("span",{className:"sr-only",children:i?`Pause ${e.name}`:`Play ${e.name}`}),(0,Z.jsx)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"currentColor",children:i?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)("rect",{x:"7",y:"5.5",width:"3.6",height:"13",rx:"1"}),(0,Z.jsx)("rect",{x:"13.4",y:"5.5",width:"3.6",height:"13",rx:"1"})]}):(0,Z.jsx)("path",{d:"M8.5 5.6a1 1 0 0 1 1.52-.85l8 6.4a1 1 0 0 1 0 1.7l-8 6.4a1 1 0 0 1-1.52-.85Z"})})]}),(0,Z.jsxs)("span",{className:"shrink-0 font-mono text-[0.65rem] tabular-nums text-white/55",children:[oh(c)," / ",oh(d)]}),(0,Z.jsx)("input",{type:"range",min:0,max:Number.isFinite(d)&&d>0?d:0,step:.1,value:c,onChange:e=>b(Number(e.target.value)),"aria-label":`Seek within ${e.name}'s introduction`,className:"h-1 min-w-0 flex-1 cursor-pointer appearance-none rounded-full bg-white/15 accent-[var(--agent-accent)]"}),(0,Z.jsxs)("button",{type:"button",onClick:v,"aria-pressed":!s,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-white/85 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--agent-accent)]",children:[(0,Z.jsx)("span",{className:"sr-only",children:s?`Unmute ${e.name}`:`Mute ${e.name}`}),(0,Z.jsxs)("svg",{viewBox:"0 0 24 24","aria-hidden":"true",className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Z.jsx)("path",{d:"M4 9.5h3.2L12 5.5v13l-4.8-4H4Z"}),s?(0,Z.jsx)("path",{d:"M16 9.5l4 5M20 9.5l-4 5"}):(0,Z.jsx)("path",{d:"M15.8 9a4 4 0 0 1 0 6M18.2 7a7 7 0 0 1 0 10"})]})]})]}):null,h?(0,Z.jsxs)("p",{role:"status",className:"mt-2 text-[0.7rem] text-white/60",children:["Playback was blocked. Use play to start ",e.name,"'s introduction."]}):null]})}e.s(["default",0,function({employees:e=J.THOXWORK_EMPLOYEES,className:t=""}){let[r,a]=(0,Y.useState)(e[0]??null),[n,i]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(!1),[l,c]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=window.matchMedia("(min-width: 1024px)"),t=window.matchMedia("(prefers-reduced-motion: reduce)"),r=()=>{s(e.matches),c(t.matches)};return r(),e.addEventListener("change",r),t.addEventListener("change",r),()=>{e.removeEventListener("change",r),t.removeEventListener("change",r)}},[]);let u=(0,Y.useCallback)(e=>a(e),[]),d=(0,Y.useCallback)(e=>{a(e),o||i(e)},[o]),p=(0,Y.useCallback)(()=>i(null),[]);return((0,Y.useEffect)(()=>{let t=!1,r=null;return(async()=>{if(await Promise.resolve(),t)return;let n=function(e,t=J.THOXWORK_EMPLOYEES){if(null==e)return null;let r=e.trim().toLowerCase();return r?t.find(e=>e.slug===r)??null:null}(new URLSearchParams(window.location.search).get("dh"),e);if(!n)return;a(n),window.matchMedia("(min-width: 1024px)").matches||i(n);let o=window.setTimeout(()=>(function(){for(let e of[window.location.hash.replace(/^#/,""),...Q].filter(Boolean)){let t=document.getElementById(e);if(t)return void t.scrollIntoView({behavior:"smooth",block:"start"})}})(),0);r=()=>window.clearTimeout(o)})(),()=>{t=!0,r?.()}},[e]),0!==e.length&&r)?(0,Z.jsxs)("div",{className:["relative overflow-hidden rounded-3xl border border-[#05A451]/20","bg-gradient-to-b from-black/70 via-[#06140c]/80 to-black/60","p-5 shadow-[0_0_60px_rgba(5,164,81,0.12)] backdrop-blur-xl sm:p-8",t].filter(
37Boolean).join(" "),children:[(0,Z.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute -left-24 top-24 h-64 w-64 rounded-full bg-[#05A451]/15 blur-3xl"}),(0,Z.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute -right-16 bottom-10 h-56 w-56 rounded-full bg-[#05A451]/10 blur-3xl"}),(0,Z.jsxs)("div",{className:"relative",children:[(0,Z.jsxs)("header",{className:"max-w-3xl",children:[(0,Z.jsx)("p",{className:"font-mono text-[0.65rem] font-semibold uppercase tracking-[0.18em] text-[#05A451]",children:"Digital Employees"}),(0,Z.jsx)("h3",{className:"mt-2 text-2xl font-bold tracking-tight text-foreground sm:text-3xl",children:"Meet your digital employees"}),(0,Z.jsx)("p",{className:"mt-2 text-base leading-relaxed text-muted-foreground",children:"A team of AI-powered digital humans, built for real work."}),(0,Z.jsx)("p",{className:"mt-2 text-sm font-medium text-foreground",children:"Your AI. Your Data. Your Rules.â¢"})]}),(0,Z.jsx)("ol",{className:"mt-6 grid gap-3 sm:grid-cols-3",children:K.map((e,t)=>(0,Z.jsxs)("li",{className:"flex items-start gap-3 rounded-xl border border-[#05A451]/25 bg-[#05A451]/5 px-3 py-3 backdrop-blur-sm",children:[(0,Z.jsx)("span",{"aria-hidden":"true",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-[#05A451]/50 font-mono text-xs font-semibold text-[#05A451]",children:t+1}),(0,Z.jsxs)("div",{children:[(0,Z.jsx)("p",{className:"text-sm font-semibold text-foreground",children:e.title}),(0,Z.jsx)("p",{className:"mt-0.5 text-xs leading-snug text-muted-foreground",children:e.body})]})]},e.title))}),(0,Z.jsxs)("div",{className:"mt-8 grid gap-6 lg:items-start lg:grid-cols-[minmax(0,1fr)_24rem] xl:grid-cols-[minmax(0,1fr)_26rem]",children:[(0,Z.jsx)(er,{employees:e,onActiveChange:u,onSelect:d,className:"min-w-0"}),o?(0,Z.jsxs)("aside",{className:"flex min-h-0 flex-col gap-5","aria-label":`Selected DigitalHuman: ${r.name}, ${r.role}`,children:[(0,Z.jsx)(om,{employee:r,autoPlay:!l}),(0,Z.jsx)("div",{className:"min-h-0 overflow-hidden rounded-2xl border border-[#05A451]/25 bg-black/60 backdrop-blur-xl",children:(0,Z.jsx)(od,{employee:r})})]}):null]}),o?null:(0,Z.jsx)(op,{employee:n,onClose:p})]})]}):(0,Z.jsx)("div",{className:t,role:"status",children:"No DigitalHuman agents are available in this roster."})}],959739)},277492,e=>{"use strict";var t=e.i(708660),r=e.i(523675),a=e.i(695095),n=e.i(94781);let i={silent:"/video/thoxwork/thoxwork-walkthrough-web.mp4",scored:"/video/thoxwork/thoxwork-walkthrough-scored.mp4",poster:"/video/thoxwork/thoxwork-walkthrough-poster.jpg"},o={silent:"/video/thoxwork/thoxwork-walkthrough-vertical.mp4",scored:"/video/thoxwork/thoxwork-walkthrough-vertical-scored.mp4",poster:"/video/thoxwork/thoxwork-walkthrough-vertical-poster.jpg"},s="(max-width: 767px)";function l(e){let t=window.matchMedia(s);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}let c=()=>window.matchMedia(s).matches,u=()=>!1;e.s(["default",0,function(){let e=(0,a.useReducedMotion)(),s=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1),h=(0,r.useSyncExternalStore)(l,c,u);(0,r.useEffect)(()=>{let e=s.current;e&&d&&(e.currentTime=0,e.play().catch(()=>{}))},[d]);let m=h?o:i,f=d?m.scored:m.silent,g=!e&&!d;return(0,t.jsxs)("div",{className:"mt-12",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold text-foreground",children:n.THOXWORK_WALKTHROUGH_HEADING}),(0,t.jsx)("p",{className:"mt-3 max-w-3xl text-base leading-relaxed text-muted-foreground",children:n.THOXWORK_WALKTHROUGH_BODY}),(0,t.jsx)("div",{className:"mt-6 overflow-hidden rounded-2xl border border-border bg-card",children:(0,t.jsx)("video",{ref:s,src:f,poster:m.poster,autoPlay:g,muted:!d,loop:!d,controls:d||!!e,playsInline:!0,preload:"metadata","aria-label":n.THOXWORK_WALKTHROUGH_ALT,className:h?"mx-auto block max-h-[70vh] w-auto":"block h-auto w-full",children:(0,t.jsx)("track",{kind:"chapters",src:"/video/thoxwork/thoxwork-walkthrough-chapters.vtt",srcLang:"en",label:"Chapters",default:!0})},f)}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)("button",{type:"button",onClick:()=>p(e=>!e),className:"inline-flex min-h-11 items-center rounded-full border border-accent/40 bg-accent/10 px-5 py-2 text-sm font-semibold text-accent transition-colors hover:bg-accent/20 focu
37s-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-current",children:d?n.THOXWORK_WALKTHROUGH_SILENT_LABEL:n.THOXWORK_WALKTHROUGH_SOUND_LABEL})})]})}])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.