@opencx/widget-react-headless 5.5.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,24 +1,24 @@
1
- "use strict";var zt=t=>{throw TypeError(t)};var qt=(t,e,s)=>e.has(t)||zt("Cannot "+s);var q=(t,e,s)=>(qt(t,e,"read from private field"),s?s.call(t):e.get(t)),de=(t,e,s)=>e.has(t)?zt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),K=(t,e,s,r)=>(qt(t,e,"write to private field"),r?r.call(t,s):e.set(t,s),s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),Z=require("@opencx/widget-core"),H=require("zod/v4"),pr=require("zod/v4/core");require("react/jsx-runtime");const D=require("zod"),fr="5.5.0";function W(t){return p.useSyncExternalStore(t.subscribe,t.get,t.get)}function mr({turnSources:t,liveItems:e,isStreaming:s,lastMessageIsFromUser:r}){var l;if(s||r)return null;const n=e.length>0?e:(l=t.at(-1))==null?void 0:l.items;return n?gr(n):null}function gr(t){for(let e=t.length-1;e>=0;e--){const s=t[e];if((s==null?void 0:s.kind)==="questions")return s.request}return null}const ps="vercel.ai.error",hr=Symbol.for(ps);var G=class fs extends Error{constructor({name:e,message:s,cause:r}){super(s),this[hr]=!0,this.name=e,this.cause=r}static isInstance(e){return fs.hasMarker(e,ps)}static hasMarker(e,s){const r=Symbol.for(s);return e!=null&&typeof e=="object"&&r in e&&typeof e[r]=="boolean"&&e[r]===!0}};const ms="AI_APICallError",gs=`vercel.ai.error.${ms}`,yr=Symbol.for(gs);var vr=class extends G{constructor({message:t,url:e,requestBodyValues:s,statusCode:r,responseHeaders:n,responseBody:l,cause:c,isRetryable:d=r!=null&&(r===408||r===409||r===429||r>=500),data:v}){super({name:ms,message:t,cause:c}),this[yr]=!0,this.url=e,this.requestBodyValues=s,this.statusCode=r,this.responseHeaders=n,this.responseBody=l,this.isRetryable=d,this.data=v}static isInstance(t){return G.hasMarker(t,gs)}};const hs="AI_EmptyResponseBodyError",ys=`vercel.ai.error.${hs}`,br=Symbol.for(ys);var Zt=class extends G{constructor({message:t="Empty response body"}={}){super({name:hs,message:t}),this[br]=!0}static isInstance(t){return G.hasMarker(t,ys)}};function vs(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.toString():JSON.stringify(t)}const bs="AI_InvalidArgumentError",Ss=`vercel.ai.error.${bs}`,Sr=Symbol.for(Ss);var Cr=class extends G{constructor({message:e,cause:s,argument:r}){super({name:bs,message:e,cause:s}),this[Sr]=!0,this.argument=r}static isInstance(e){return G.hasMarker(e,Ss)}};const Cs="AI_JSONParseError",Es=`vercel.ai.error.${Cs}`,Er=Symbol.for(Es);var Vt=class extends G{constructor({text:t,cause:e}){super({name:Cs,message:`JSON parsing failed: Text: ${t}.
2
- Error message: ${vs(e)}`,cause:e}),this[Er]=!0,this.text=t}static isInstance(t){return G.hasMarker(t,Es)}};const Is="AI_TypeValidationError",As=`vercel.ai.error.${Is}`,Ir=Symbol.for(As);var rt=class At extends G{constructor({value:e,cause:s,context:r}){let n="Type validation failed";if(r!=null&&r.field&&(n+=` for ${r.field}`),r!=null&&r.entityName||r!=null&&r.entityId){n+=" (";const l=[];r.entityName&&l.push(r.entityName),r.entityId&&l.push(`id: "${r.entityId}"`),n+=l.join(", "),n+=")"}super({name:Is,message:`${n}: Value: ${JSON.stringify(e)}.
3
- Error message: ${vs(s)}`,cause:s}),this[Ir]=!0,this.value=e,this.context=r}static isInstance(e){return G.hasMarker(e,As)}static wrap({value:e,cause:s,context:r}){var n,l,c;return At.isInstance(s)&&s.value===e&&((n=s.context)==null?void 0:n.field)===(r==null?void 0:r.field)&&((l=s.context)==null?void 0:l.entityName)===(r==null?void 0:r.entityName)&&((c=s.context)==null?void 0:c.entityId)===(r==null?void 0:r.entityId)?s:new At({value:e,cause:s,context:r})}};const ws="AI_UnsupportedFunctionalityError",xs=`vercel.ai.error.${ws}`,Ar=Symbol.for(xs);var wr=class extends G{constructor({functionality:t,message:e=`'${t}' functionality not supported.`}){super({name:ws,message:e}),this[Ar]=!0,this.functionality=t}static isInstance(t){return G.hasMarker(t,xs)}};class vt extends Error{constructor(e,s){super(e),this.name="ParseError",this.type=s.type,this.field=s.field,this.value=s.value,this.line=s.line}}const Wt=10,xr=13,Ae=32;function bt(t){}function Mr(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");const{onEvent:e=bt,onError:s=bt,onRetry:r=bt,onComment:n,maxBufferSize:l}=t,c=[];let d=0,v=!0,h,i="",u=0,m,b=!1;function _(o){if(b)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(v&&(v=!1,o.charCodeAt(0)===239&&o.charCodeAt(1)===187&&o.charCodeAt(2)===191&&(o=o.slice(3))),c.length===0){const g=M(o);g!==""&&(c.push(g),d=g.length),w();return}if(o.indexOf(`
4
- `)===-1&&o.indexOf("\r")===-1){c.push(o),d+=o.length,w();return}c.push(o);const y=c.join("");c.length=0,d=0;const f=M(y);f!==""&&(c.push(f),d=f.length),w()}function w(){l!==void 0&&(d+i.length<=l||(b=!0,c.length=0,d=0,h=void 0,i="",u=0,m=void 0,s(new vt(`Buffered data exceeded max buffer size of ${l} characters`,{type:"max-buffer-size-exceeded"}))))}function M(o){let y=0;if(o.indexOf("\r")===-1){let f=o.indexOf(`
5
- `,y);for(;f!==-1;){if(y===f){u>0&&e({id:h,event:m,data:i}),h=void 0,i="",u=0,m=void 0,y=f+1,f=o.indexOf(`
6
- `,y);continue}const g=o.charCodeAt(y);if(Bt(o,y,g)){const C=o.charCodeAt(y+5)===Ae?y+6:y+5,O=o.slice(C,f);if(u===0&&o.charCodeAt(f+1)===Wt){e({id:h,event:m,data:O}),h=void 0,i="",m=void 0,y=f+2,f=o.indexOf(`
7
- `,y);continue}i=u===0?O:`${i}
8
- ${O}`,u++}else Jt(o,y,g)?m=o.slice(o.charCodeAt(y+6)===Ae?y+7:y+6,f)||void 0:T(o,y,f);y=f+1,f=o.indexOf(`
9
- `,y)}return o.slice(y)}for(;y<o.length;){const f=o.indexOf("\r",y),g=o.indexOf(`
10
- `,y);let C=-1;if(f!==-1&&g!==-1?C=f<g?f:g:f!==-1?f===o.length-1?C=-1:C=f:g!==-1&&(C=g),C===-1)break;T(o,y,C),y=C+1,o.charCodeAt(y-1)===xr&&o.charCodeAt(y)===Wt&&y++}return o.slice(y)}function T(o,y,f){if(y===f){E();return}const g=o.charCodeAt(y);if(Bt(o,y,g)){const L=o.charCodeAt(y+5)===Ae?y+6:y+5,V=o.slice(L,f);i=u===0?V:`${i}
11
- ${V}`,u++;return}if(Jt(o,y,g)){m=o.slice(o.charCodeAt(y+6)===Ae?y+7:y+6,f)||void 0;return}if(g===105&&o.charCodeAt(y+1)===100&&o.charCodeAt(y+2)===58){const L=o.slice(o.charCodeAt(y+3)===Ae?y+4:y+3,f);h=L.includes("\0")?void 0:L;return}if(g===58){if(n){const L=o.slice(y,f);n(L.slice(o.charCodeAt(y+1)===Ae?2:1))}return}const C=o.slice(y,f),O=C.indexOf(":");if(O===-1){A(C,"",C);return}const k=C.slice(0,O),U=C.charCodeAt(O+1)===Ae?2:1,j=C.slice(O+U);A(k,j,C)}function A(o,y,f){switch(o){case"event":m=y||void 0;break;case"data":i=u===0?y:`${i}
12
- ${y}`,u++;break;case"id":h=y.includes("\0")?void 0:y;break;case"retry":/^\d+$/.test(y)?r(parseInt(y,10)):s(new vt(`Invalid \`retry\` value: "${y}"`,{type:"invalid-retry",value:y,line:f}));break;default:s(new vt(`Unknown field "${o.length>20?`${o.slice(0,20)}…`:o}"`,{type:"unknown-field",field:o,value:y,line:f}));break}}function E(){u>0&&e({id:h,event:m,data:i}),h=void 0,i="",u=0,m=void 0}function I(o={}){if(o.consume&&c.length>0){const y=c.join("");T(y,0,y.length)}v=!0,h=void 0,i="",u=0,m=void 0,c.length=0,d=0,b=!1}return{feed:_,reset:I}}function Bt(t,e,s){return s===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function Jt(t,e,s){return s===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}class Tr extends TransformStream{constructor({onError:e,onRetry:s,onComment:r,maxBufferSize:n}={}){let l;super({start(c){l=Mr({onEvent:d=>{c.enqueue(d)},onError(d){typeof e=="function"&&e(d),(e==="terminate"||d.type==="max-buffer-size-exceeded")&&c.error(d)},onRetry:s,onComment:r,maxBufferSize:n})},transform(c){l.feed(c)}})}}new TextDecoder;function Ne(t){if(t==null)return{};const e={};if(t instanceof Headers)t.forEach((s,r)=>{e[r.toLowerCase()]=s});else{Array.isArray(t)||(t=Object.entries(t));for(const[s,r]of t)r!=null&&(e[s.toLowerCase()]=r)}return e}const Y=({prefix:t,size:e=16,alphabet:s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:r="-"}={})=>{const n=()=>{const l=s.length,c=new Array(e);for(let d=0;d<e;d++)c[d]=s[Math.random()*l|0];return c.join("")};if(t==null)return n;if(s.includes(r))throw new Cr({argument:"separator",message:`The separator "${r}" must not be part of the alphabet "${s}".`});return()=>`${t}${r}${n()}`},Rr=Y();function Pr(t){var e;return((e=globalThis.Buffer)==null?void 0:e.isBuffer(t))??!1}const _r=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Or=/"(?: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 Ht(t){const e=JSON.parse(t);return e===null||typeof e!="object"||_r.test(t)===!1&&Or.test(t)===!1?e:Nr(e)}function Nr(t){let e=[t];for(;e.length;){const s=e;e=[];for(const r of s){if(Object.prototype.hasOwnProperty.call(r,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(r,"constructor")&&r.constructor!==null&&typeof r.constructor=="object"&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const n in r){const l=r[n];l&&typeof l=="object"&&e.push(l)}}}return t}function Dr(t){const{stackTraceLimit:e}=Error;try{Error.stackTraceLimit=0}catch{return Ht(t)}try{return Ht(t)}finally{Error.stackTraceLimit=e}}function Rt(t){if(t.type==="object"||Array.isArray(t.type)&&t.type.includes("object")){const{additionalProperties:s}=t;t.additionalProperties=s!=null&&typeof s!="boolean"?Ce(s):!1;const{properties:r}=t;if(r!=null)for(const n of Object.keys(r))r[n]=Ce(r[n])}t.items!=null&&(t.items=Array.isArray(t.items)?t.items.map(Ce):Ce(t.items)),t.anyOf!=null&&(t.anyOf=t.anyOf.map(Ce)),t.allOf!=null&&(t.allOf=t.allOf.map(Ce)),t.oneOf!=null&&(t.oneOf=t.oneOf.map(Ce));const{definitions:e}=t;if(e!=null)for(const s of Object.keys(e))e[s]=Ce(e[s]);return t}function Ce(t){return typeof t=="boolean"?t:Rt(t)}const kr=Symbol("Let zodToJsonSchema decide on which parser to use"),Kt={name: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"},jr=t=>typeof t=="string"?{...Kt,name:t}:{...Kt,...t};function ie(){return{}}function Lr(t,e){var r,n,l;const s={type:"array"};return(r=t.type)!=null&&r._def&&((l=(n=t.type)==null?void 0:n._def)==null?void 0:l.typeName)!=="ZodAny"&&(s.items=F(t.type._def,{...e,currentPath:[...e.currentPath,"items"]})),t.minLength&&(s.minItems=t.minLength.value),t.maxLength&&(s.maxItems=t.maxLength.value),t.exactLength&&(s.minItems=t.exactLength.value,s.maxItems=t.exactLength.value),s}function $r(t){const e={type:"integer",format:"int64"};if(!t.checks)return e;for(const s of t.checks)switch(s.kind){case"min":s.inclusive?e.minimum=s.value:e.exclusiveMinimum=s.value;break;case"max":s.inclusive?e.maximum=s.value:e.exclusiveMaximum=s.value;break;case"multipleOf":e.multipleOf=s.value}return e}function Fr(){return{type:"boolean"}}function Ms(t,e){return F(t.type._def,e)}const Ur=(t,e)=>F(t.innerType._def,e);function Ts(t,e,s){const r=s??e.dateStrategy;if(Array.isArray(r))return{anyOf:r.map(n=>Ts(t,e,n))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return zr(t)}}const zr=t=>{const e={type:"integer",format:"unix-time"};for(const s of t.checks)switch(s.kind){case"min":e.minimum=s.value;break;case"max":e.maximum=s.value}return e};function qr(t,e){return{...F(t.innerType._def,e),default:t.defaultValue()}}function Zr(t,e){return e.effectStrategy==="input"?F(t.schema._def,e):ie()}function Vr(t){return{type:"string",enum:Array.from(t.values)}}const Wr=t=>"type"in t&&t.type==="string"?!1:"allOf"in t;function Br(t,e){const s=[F(t.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),F(t.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(n=>!!n),r=[];return s.forEach(n=>{if(Wr(n))r.push(...n.allOf);else{let l=n;if("additionalProperties"in n&&n.additionalProperties===!1){const{additionalProperties:c,...d}=n;l=d}r.push(l)}}),r.length?{allOf:r}:void 0}function Jr(t){const e=typeof t.value;return e!=="bigint"&&e!=="number"&&e!=="boolean"&&e!=="string"?{type:Array.isArray(t.value)?"array":"object"}:{type:e==="bigint"?"integer":e,const:t.value}}let St;const pe={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(St===void 0&&(St=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),St),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Rs(t,e){const s={type:"string"};if(t.checks)for(const r of t.checks)switch(r.kind){case"min":s.minLength=typeof s.minLength=="number"?Math.max(s.minLength,r.value):r.value;break;case"max":s.maxLength=typeof s.maxLength=="number"?Math.min(s.maxLength,r.value):r.value;break;case"email":switch(e.emailStrategy){case"format:email":fe(s,"email",r.message,e);break;case"format:idn-email":fe(s,"idn-email",r.message,e);break;case"pattern:zod":te(s,pe.email,r.message,e)}break;case"url":fe(s,"uri",r.message,e);break;case"uuid":fe(s,"uuid",r.message,e);break;case"regex":te(s,r.regex,r.message,e);break;case"cuid":te(s,pe.cuid,r.message,e);break;case"cuid2":te(s,pe.cuid2,r.message,e);break;case"startsWith":te(s,RegExp(`^${Ct(r.value,e)}`),r.message,e);break;case"endsWith":te(s,RegExp(`${Ct(r.value,e)}$`),r.message,e);break;case"datetime":fe(s,"date-time",r.message,e);break;case"date":fe(s,"date",r.message,e);break;case"time":fe(s,"time",r.message,e);break;case"duration":fe(s,"duration",r.message,e);break;case"length":s.minLength=typeof s.minLength=="number"?Math.max(s.minLength,r.value):r.value,s.maxLength=typeof s.maxLength=="number"?Math.min(s.maxLength,r.value):r.value;break;case"includes":te(s,RegExp(Ct(r.value,e)),r.message,e);break;case"ip":r.version!=="v6"&&fe(s,"ipv4",r.message,e),r.version!=="v4"&&fe(s,"ipv6",r.message,e);break;case"base64url":te(s,pe.base64url,r.message,e);break;case"jwt":te(s,pe.jwt,r.message,e);break;case"cidr":r.version!=="v6"&&te(s,pe.ipv4Cidr,r.message,e),r.version!=="v4"&&te(s,pe.ipv6Cidr,r.message,e);break;case"emoji":te(s,pe.emoji(),r.message,e);break;case"ulid":te(s,pe.ulid,r.message,e);break;case"base64":switch(e.base64Strategy){case"format:binary":fe(s,"binary",r.message,e);break;case"contentEncoding:base64":s.contentEncoding="base64";break;case"pattern:zod":te(s,pe.base64,r.message,e)}break;case"nanoid":te(s,pe.nanoid,r.message,e)}return s}function Ct(t,e){return e.patternStrategy==="escape"?Kr(t):t}const Hr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Kr(t){let e="";for(let s=0;s<t.length;s++)Hr.has(t[s])||(e+="\\"),e+=t[s];return e}function fe(t,e,s,r){var n;t.format||(n=t.anyOf)!=null&&n.some(l=>l.format)?(t.anyOf||(t.anyOf=[]),t.format&&(t.anyOf.push({format:t.format}),delete t.format),t.anyOf.push({format:e,...s&&r.errorMessages&&{errorMessage:{format:s}}})):t.format=e}function te(t,e,s,r){var n;t.pattern||(n=t.allOf)!=null&&n.some(l=>l.pattern)?(t.allOf||(t.allOf=[]),t.pattern&&(t.allOf.push({pattern:t.pattern}),delete t.pattern),t.allOf.push({pattern:Gt(e,r),...s&&r.errorMessages&&{errorMessage:{pattern:s}}})):t.pattern=Gt(e,r)}function Gt(t,e){var v;if(!e.applyRegexFlags||!t.flags)return t.source;const s={i:t.flags.includes("i"),m:t.flags.includes("m"),s:t.flags.includes("s")},r=s.i?t.source.toLowerCase():t.source;let n="",l=!1,c=!1,d=!1;for(let h=0;h<r.length;h++){if(l){n+=r[h],l=!1;continue}if(s.i){if(c){if(r[h].match(/[a-z]/)){d?(n+=r[h],n+=`${r[h-2]}-${r[h]}`.toUpperCase(),d=!1):r[h+1]==="-"&&((v=r[h+2])!=null&&v.match(/[a-z]/))?(n+=r[h],d=!0):n+=`${r[h]}${r[h].toUpperCase()}`;continue}}else if(r[h].match(/[a-z]/)){n+=`[${r[h]}${r[h].toUpperCase()}]`;continue}}if(s.m){if(r[h]==="^"){n+=`(^|(?<=[\r
13
- ]))`;continue}else if(r[h]==="$"){n+=`($|(?=[\r
14
- ]))`;continue}}if(s.s&&r[h]==="."){n+=c?`${r[h]}\r
15
- `:`[${r[h]}\r
16
- ]`;continue}n+=r[h],r[h]==="\\"?l=!0:c&&r[h]==="]"?c=!1:!c&&r[h]==="["&&(c=!0)}try{new RegExp(n)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return n}function Ps(t,e){var r,n,l,c,d;const s={type:"object",additionalProperties:F(t.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(((r=t.keyType)==null?void 0:r._def.typeName)==="ZodString"&&((n=t.keyType._def.checks)!=null&&n.length)){const{type:v,...h}=Rs(t.keyType._def,e);return{...s,propertyNames:h}}else{if(((l=t.keyType)==null?void 0:l._def.typeName)==="ZodEnum")return{...s,propertyNames:{enum:t.keyType._def.values}};if(((c=t.keyType)==null?void 0:c._def.typeName)==="ZodBranded"&&t.keyType._def.type._def.typeName==="ZodString"&&((d=t.keyType._def.type._def.checks)!=null&&d.length)){const{type:v,...h}=Ms(t.keyType._def,e);return{...s,propertyNames:h}}}return s}function Gr(t,e){return e.mapStrategy==="record"?Ps(t,e):{type:"array",maxItems:125,items:{type:"array",items:[F(t.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||ie(),F(t.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||ie()],minItems:2,maxItems:2}}}function Yr(t){const e=t.values,s=Object.keys(t.values).filter(n=>typeof e[e[n]]!="number").map(n=>e[n]),r=Array.from(new Set(s.map(n=>typeof n)));return{type:r.length===1?r[0]==="string"?"string":"number":["string","number"],enum:s}}function Qr(){return{not:ie()}}function Xr(){return{type:"null"}}const wt={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function en(t,e){const s=t.options instanceof Map?Array.from(t.options.values()):t.options;if(s.every(r=>r._def.typeName in wt&&(!r._def.checks||!r._def.checks.length))){const r=s.reduce((n,l)=>{const c=wt[l._def.typeName];return c&&!n.includes(c)?[...n,c]:n},[]);return{type:r.length>1?r:r[0]}}else if(s.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){const r=s.reduce((n,l)=>{const c=typeof l._def.value;switch(c){case"string":case"number":case"boolean":return[...n,c];case"bigint":return[...n,"integer"];case"object":if(l._def.value===null)return[...n,"null"];default:return n}},[]);if(r.length===s.length){const n=r.filter((l,c,d)=>d.indexOf(l)===c);return{type:n.length>1?n:n[0],enum:s.reduce((l,c)=>l.includes(c._def.value)?l:[...l,c._def.value],[])}}}else if(s.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:s.reduce((r,n)=>[...r,...n._def.values.filter(l=>!r.includes(l))],[])};return tn(t,e)}const tn=(t,e)=>{const s=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((r,n)=>F(r._def,{...e,currentPath:[...e.currentPath,"anyOf",`${n}`]})).filter(r=>!!r&&(!e.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return s.length?{anyOf:s}:void 0};function sn(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length))return{type:[wt[t.innerType._def.typeName],"null"]};const s=F(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return s&&{anyOf:[s,{type:"null"}]}}function rn(t){const e={type:"number"};if(!t.checks)return e;for(const s of t.checks)switch(s.kind){case"int":e.type="integer";break;case"min":s.inclusive?e.minimum=s.value:e.exclusiveMinimum=s.value;break;case"max":s.inclusive?e.maximum=s.value:e.exclusiveMaximum=s.value;break;case"multipleOf":e.multipleOf=s.value}return e}function nn(t,e){const s={type:"object",properties:{}},r=[],n=t.shape();for(const c in n){let d=n[c];if(d===void 0||d._def===void 0)continue;const v=on(d),h=F(d._def,{...e,currentPath:[...e.currentPath,"properties",c],propertyPath:[...e.currentPath,"properties",c]});h!==void 0&&(s.properties[c]=h,v||r.push(c))}r.length&&(s.required=r);const l=an(t,e);return l!==void 0&&(s.additionalProperties=l),s}function an(t,e){if(t.catchall._def.typeName!=="ZodNever")return F(t.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(t.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function on(t){try{return t.isOptional()}catch{return!0}}const ln=(t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return F(t.innerType._def,e);const s=F(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return s?{anyOf:[{not:ie()},s]}:ie()},cn=(t,e)=>{if(e.pipeStrategy==="input")return F(t.in._def,e);if(e.pipeStrategy==="output")return F(t.out._def,e);const s=F(t.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]});return{allOf:[s,F(t.out._def,{...e,currentPath:[...e.currentPath,"allOf",s?"1":"0"]})].filter(r=>r!==void 0)}};function un(t,e){return F(t.type._def,e)}function dn(t,e){const s={type:"array",uniqueItems:!0,items:F(t.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return t.minSize&&(s.minItems=t.minSize.value),t.maxSize&&(s.maxItems=t.maxSize.value),s}function pn(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((s,r)=>F(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[]),additionalItems:F(t.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((s,r)=>F(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[])}}function fn(){return{not:ie()}}function mn(){return ie()}const gn=(t,e)=>F(t.innerType._def,e),hn=(t,e,s)=>{switch(e){case"ZodString":return Rs(t,s);case"ZodNumber":return rn(t);case"ZodObject":return nn(t,s);case"ZodBigInt":return $r(t);case"ZodBoolean":return Fr();case"ZodDate":return Ts(t,s);case"ZodUndefined":return fn();case"ZodNull":return Xr();case"ZodArray":return Lr(t,s);case"ZodUnion":case"ZodDiscriminatedUnion":return en(t,s);case"ZodIntersection":return Br(t,s);case"ZodTuple":return pn(t,s);case"ZodRecord":return Ps(t,s);case"ZodLiteral":return Jr(t);case"ZodEnum":return Vr(t);case"ZodNativeEnum":return Yr(t);case"ZodNullable":return sn(t,s);case"ZodOptional":return ln(t,s);case"ZodMap":return Gr(t,s);case"ZodSet":return dn(t,s);case"ZodLazy":return()=>t.getter()._def;case"ZodPromise":return un(t,s);case"ZodNaN":case"ZodNever":return Qr();case"ZodEffects":return Zr(t,s);case"ZodAny":return ie();case"ZodUnknown":return mn();case"ZodDefault":return qr(t,s);case"ZodBranded":return Ms(t,s);case"ZodReadonly":return gn(t,s);case"ZodCatch":return Ur(t,s);case"ZodPipeline":return cn(t,s);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(r=>{})()}},yn=(t,e)=>{let s=0;for(;s<t.length&&s<e.length&&t[s]===e[s];s++);return[(t.length-s).toString(),...e.slice(s)].join("/")};function F(t,e,s=!1){var d;const r=e.seen.get(t);if(e.override){const v=(d=e.override)==null?void 0:d.call(e,t,e,r,s);if(v!==kr)return v}if(r&&!s){const v=vn(r,e);if(v!==void 0)return v}const n={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,n);const l=hn(t,t.typeName,e),c=typeof l=="function"?F(l(),e):l;if(c&&bn(t,e,c),e.postProcess){const v=e.postProcess(c,t,e);return n.jsonSchema=c,v}return n.jsonSchema=c,c}const vn=(t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:yn(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((s,r)=>e.currentPath[r]===s)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),ie()):e.$refStrategy==="seen"?ie():void 0}},bn=(t,e,s)=>(t.description&&(s.description=t.description),s),Sn=t=>{const e=jr(t),s=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,currentPath:s,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([r,n])=>[n._def,{def:n._def,path:[...e.basePath,e.definitionPath,r],jsonSchema:void 0}]))}},Cn=(t,e)=>{const s=Sn(e);let r=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((v,[h,i])=>({...v,[h]:F(i._def,{...s,currentPath:[...s.basePath,s.definitionPath,h]},!0)??ie()}),{}):void 0;const n=typeof e=="string"?e:(e==null?void 0:e.nameStrategy)==="title"||e==null?void 0:e.name,l=F(t._def,n===void 0?s:{...s,currentPath:[...s.basePath,s.definitionPath,n]},!1)??ie(),c=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;c!==void 0&&(l.title=c);const d=n===void 0?r?{...l,[s.definitionPath]:r}:l:{$ref:[...s.$refStrategy==="relative"?[]:s.basePath,s.definitionPath,n].join("/"),[s.definitionPath]:{...r,[n]:l}};return d.$schema="http://json-schema.org/draft-07/schema#",d},xt=Symbol.for("vercel.ai.schema");function En(t){let e;return()=>(e==null&&(e=t()),e)}function it(t,{validate:e}={}){return{[xt]:!0,_type:void 0,get jsonSchema(){return typeof t=="function"&&(t=t()),t},validate:e}}function In(t){return typeof t=="object"&&t!==null&&xt in t&&t[xt]===!0&&"jsonSchema"in t&&"validate"in t}function An(t){return t==null?it({type:"object",properties:{},additionalProperties:!1}):In(t)?t:"~standard"in t?t["~standard"].vendor==="zod"?_s(t):wn(t):t()}function wn(t){return it(()=>{if(!xn(t))throw new Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return Rt(t["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async e=>{const s=await t["~standard"].validate(e);return"value"in s?{success:!0,value:s.value}:{success:!1,error:new rt({value:e,cause:s.issues})}}})}function xn(t){return t["~standard"].jsonSchema!=null}function Mn(t,e){return it(()=>Cn(t,{$refStrategy:"none"}),{validate:async s=>{const r=await t.safeParseAsync(s);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function Tn(t,e){return it(()=>Rt(pr.toJSONSchema(t,{target:"draft-7",io:"input",reused:"inline"})),{validate:async s=>{const r=await H.safeParseAsync(t,s);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function Rn(t){return"_zod"in t}function _s(t,e){return Rn(t)?Tn(t):Mn(t)}async function Yt({value:t,schema:e,context:s}){const r=await Os({value:t,schema:e,context:s});if(!r.success)throw rt.wrap({value:t,cause:r.error,context:s});return r.value}async function Os({value:t,schema:e,context:s}){const r=An(e);try{if(r.validate==null)return{success:!0,value:t,rawValue:t};const n=await r.validate(t);return n.success?{success:!0,value:n.value,rawValue:t}:{success:!1,error:rt.wrap({value:t,cause:n.error,context:s}),rawValue:t}}catch(n){return{success:!1,error:rt.wrap({value:t,cause:n,context:s}),rawValue:t}}}async function Mt({text:t,schema:e}){try{const s=Dr(t);return e==null?{success:!0,value:s,rawValue:s}:await Os({value:s,schema:e})}catch(s){return{success:!1,error:Vt.isInstance(s)?s:new Vt({text:t,cause:s}),rawValue:void 0}}}function Pn({stream:t,schema:e}){return t.pipeThrough(new TextDecoderStream).pipeThrough(new Tr).pipeThrough(new TransformStream({async transform({data:s},r){s!=="[DONE]"&&r.enqueue(await Mt({text:s,schema:e}))}}))}async function De(t){return typeof t=="function"&&(t=t()),t}new TextDecoder;function _n(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}const Ns="AI_InvalidArgumentError",Ds=`vercel.ai.error.${Ns}`,On=Symbol.for(Ds);var Xe=class extends G{constructor({parameter:t,value:e,message:s}){super({name:Ns,message:`Invalid argument for parameter ${t}: ${s}`}),this[On]=!0,this.parameter=t,this.value=e}static isInstance(t){return G.hasMarker(t,Ds)}};const ks="AI_UIMessageStreamError",js=`vercel.ai.error.${ks}`,Nn=Symbol.for(js);var we=class extends G{constructor({chunkType:t,chunkId:e,message:s}){super({name:ks,message:s}),this[Nn]=!0,this.chunkType=t,this.chunkId=e}static isInstance(t){return G.hasMarker(t,js)}};function Ls(t,e){if(t===void 0&&e===void 0)return;if(t===void 0)return e;if(e===void 0)return t;const s={...t};for(const r in e)if(!(r==="__proto__"||r==="constructor"||r==="prototype")&&Object.prototype.hasOwnProperty.call(e,r)){const n=e[r];if(n===void 0)continue;const l=r in t?t[r]:void 0,c=n!==null&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof Date)&&!(n instanceof RegExp),d=l!=null&&typeof l=="object"&&!Array.isArray(l)&&!(l instanceof Date)&&!(l instanceof RegExp);c&&d?s[r]=Ls(l,n):s[r]=n}return s}const a={array:H.array,boolean:H.boolean,custom:H.custom,discriminatedUnion:H.discriminatedUnion,enum:H.enum,instanceof:H.instanceof,lazy:H.lazy,literal:H.literal,looseObject:H.looseObject,never:H.never,null:H.null,number:H.number,object:H.object,record:H.record,string:H.string,union:H.union,unknown:H.unknown},Pe=a.lazy(()=>a.union([a.null(),a.string(),a.number(),a.boolean(),a.record(a.string(),Pe.optional()),a.array(Pe)])),P=a.record(a.string(),a.record(a.string(),Pe.optional())),Ze=a.union([a.string(),a.instanceof(Uint8Array),a.instanceof(ArrayBuffer),a.custom(Pr,{message:"Must be a Buffer"})]),Pt=a.record(a.string(),a.string()),$s=a.object({type:a.literal("text"),text:a.string(),providerOptions:P.optional()}),Dn=a.object({type:a.literal("image"),image:a.union([Ze,a.instanceof(URL),Pt]),mediaType:a.string().optional(),providerOptions:P.optional()}),Fs=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:Ze}),a.object({type:a.literal("url"),url:a.instanceof(URL)}),a.object({type:a.literal("reference"),reference:Pt}),a.object({type:a.literal("text"),text:a.string()})]),kn=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:Ze}),a.object({type:a.literal("url"),url:a.instanceof(URL)})]),Us=a.object({type:a.literal("file"),data:a.union([Fs,Ze,a.instanceof(URL),Pt]),filename:a.string().optional(),mediaType:a.string(),providerOptions:P.optional()}),jn=a.object({type:a.literal("reasoning"),text:a.string(),providerOptions:P.optional()}),Ln=a.object({type:a.literal("custom"),kind:a.string().transform(t=>t),providerOptions:P.optional()}),$n=a.object({type:a.literal("reasoning-file"),data:a.union([kn,Ze,a.instanceof(URL)]),mediaType:a.string(),providerOptions:P.optional()}),Fn=a.object({type:a.literal("tool-call"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerOptions:P.optional(),providerExecuted:a.boolean().optional()}),Un=a.discriminatedUnion("type",[a.object({type:a.literal("text"),value:a.string(),providerOptions:P.optional()}),a.object({type:a.literal("json"),value:Pe,providerOptions:P.optional()}),a.object({type:a.literal("execution-denied"),reason:a.string().optional(),providerOptions:P.optional()}),a.object({type:a.literal("error-text"),value:a.string(),providerOptions:P.optional()}),a.object({type:a.literal("error-json"),value:Pe,providerOptions:P.optional()}),a.object({type:a.literal("content"),value:a.array(a.union([a.object({type:a.literal("text"),text:a.string(),providerOptions:P.optional()}),a.object({type:a.literal("file"),data:Fs,mediaType:a.string(),filename:a.string().optional(),providerOptions:P.optional()}),a.object({type:a.literal("file-data"),data:a.string(),mediaType:a.string(),filename:a.string().optional(),providerOptions:P.optional()}),a.object({type:a.literal("file-url"),url:a.string(),mediaType:a.string().optional(),providerOptions:P.optional()}),a.object({type:a.literal("file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:P.optional()}),a.object({type:a.literal("file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:P.optional()}),a.object({type:a.literal("image-data"),data:a.string(),mediaType:a.string(),providerOptions:P.optional()}),a.object({type:a.literal("image-url"),url:a.string(),providerOptions:P.optional()}),a.object({type:a.literal("image-file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:P.optional()}),a.object({type:a.literal("image-file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:P.optional()}),a.object({type:a.literal("custom"),providerOptions:P.optional()})]))})]),zs=a.object({type:a.literal("tool-result"),toolCallId:a.string(),toolName:a.string(),output:Un,providerOptions:P.optional()}),zn=a.object({type:a.literal("tool-approval-request"),approvalId:a.string(),toolCallId:a.string(),reason:a.string().optional(),isAutomatic:a.boolean().optional(),signature:a.string().optional(),inputSchemaInput:a.unknown().optional()}),qn=a.object({type:a.literal("tool-approval-response"),approvalId:a.string(),approved:a.boolean(),reason:a.string().optional()}),Zn=a.object({role:a.literal("system"),content:a.string(),providerOptions:P.optional()}),Vn=a.object({role:a.literal("user"),content:a.union([a.string(),a.array(a.union([$s,Dn,Us]))]),providerOptions:P.optional()}),Wn=a.object({role:a.literal("assistant"),content:a.union([a.string(),a.array(a.union([$s,Ln,Us,jn,$n,Fn,zs,zn]))]),providerOptions:P.optional()}),Bn=a.object({role:a.literal("tool"),content:a.array(a.union([zs,qn])),providerOptions:P.optional()});a.union([Zn,Vn,Wn,Bn]);function Jn(t){const e=["ROOT"];let s=-1,r=null,n=0;function l(i){return i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f"}function c(i,u,m){switch(i){case'"':s=u,e.pop(),e.push(m),e.push("INSIDE_STRING");break;case"f":case"t":case"n":s=u,r=u,e.pop(),e.push(m),e.push("INSIDE_LITERAL");break;case"-":e.pop(),e.push(m),e.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":s=u,e.pop(),e.push(m),e.push("INSIDE_NUMBER");break;case"{":s=u,e.pop(),e.push(m),e.push("INSIDE_OBJECT_START");break;case"[":s=u,e.pop(),e.push(m),e.push("INSIDE_ARRAY_START")}}function d(i,u){switch(i){case",":e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":s=u,e.pop()}}function v(i,u){switch(i){case",":e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":s=u,e.pop()}}for(let i=0;i<t.length;i++){const u=t[i];switch(e[e.length-1]){case"ROOT":c(u,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY");break;case"}":s=i,e.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY")}break;case"INSIDE_OBJECT_KEY":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY")}break;case"INSIDE_OBJECT_AFTER_KEY":switch(u){case":":e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE")}break;case"INSIDE_OBJECT_BEFORE_VALUE":c(u,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":d(u,i);break;case"INSIDE_STRING":switch(u){case'"':e.pop(),s=i;break;case"\\":e.push("INSIDE_STRING_ESCAPE");break;default:s=i}break;case"INSIDE_ARRAY_START":switch(u){case"]":s=i,e.pop();break;default:s=i,c(u,i,"INSIDE_ARRAY_AFTER_VALUE")}break;case"INSIDE_ARRAY_AFTER_VALUE":switch(u){case",":e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":s=i,e.pop();break;default:s=i}break;case"INSIDE_ARRAY_AFTER_COMMA":c(u,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":e.pop(),u==="u"?(n=0,e.push("INSIDE_STRING_UNICODE_ESCAPE")):s=i;break;case"INSIDE_STRING_UNICODE_ESCAPE":l(u)&&(n++,n===4&&(e.pop(),s=i));break;case"INSIDE_NUMBER":switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":s=i;break;case"e":case"E":case"-":case".":break;case",":e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&d(u,i);break;case"}":e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&d(u,i);break;case"]":e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i);break;default:e.pop()}break;case"INSIDE_LITERAL":{const m=t.substring(r,i+1);!"false".startsWith(m)&&!"true".startsWith(m)&&!"null".startsWith(m)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?d(u,i):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i)):s=i;break}}}let h=t.slice(0,s+1);for(let i=e.length-1;i>=0;i--)switch(e[i]){case"INSIDE_STRING":h+='"';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":h+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":h+="]";break;case"INSIDE_LITERAL":{const u=t.substring(r,t.length);"true".startsWith(u)?h+="true".slice(u.length):"false".startsWith(u)?h+="false".slice(u.length):"null".startsWith(u)&&(h+="null".slice(u.length))}}return h}async function Hn(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=await Mt({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=await Mt({text:Jn(t)}),e.success?{value:e.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}new TextEncoder;new TextEncoder;Y({prefix:"aitxt",size:24});Y({prefix:"call",size:24});(class extends TransformStream{constructor(){super({transform(t,e){e.enqueue(`data: ${JSON.stringify(t)}
1
+ "use strict";var Zt=t=>{throw TypeError(t)};var Vt=(t,e,s)=>e.has(t)||Zt("Cannot "+s);var Z=(t,e,s)=>(Vt(t,e,"read from private field"),s?s.call(t):e.get(t)),de=(t,e,s)=>e.has(t)?Zt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),K=(t,e,s,r)=>(Vt(t,e,"write to private field"),r?r.call(t,s):e.set(t,s),s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),q=require("@opencx/widget-core"),H=require("zod/v4"),mr=require("zod/v4/core");require("react/jsx-runtime");const k=require("zod"),gr="5.6.0";function W(t){return p.useSyncExternalStore(t.subscribe,t.get,t.get)}function hr({turnSources:t,liveItems:e,isStreaming:s,lastMessageIsFromUser:r}){var l;if(s||r)return null;const n=e.length>0?e:(l=t.at(-1))==null?void 0:l.items;return n?yr(n):null}function yr(t){for(let e=t.length-1;e>=0;e--){const s=t[e];if((s==null?void 0:s.kind)==="questions")return s.request}return null}const ms="vercel.ai.error",vr=Symbol.for(ms);var Y=class gs extends Error{constructor({name:e,message:s,cause:r}){super(s),this[vr]=!0,this.name=e,this.cause=r}static isInstance(e){return gs.hasMarker(e,ms)}static hasMarker(e,s){const r=Symbol.for(s);return e!=null&&typeof e=="object"&&r in e&&typeof e[r]=="boolean"&&e[r]===!0}};const hs="AI_APICallError",ys=`vercel.ai.error.${hs}`,br=Symbol.for(ys);var Sr=class extends Y{constructor({message:t,url:e,requestBodyValues:s,statusCode:r,responseHeaders:n,responseBody:l,cause:c,isRetryable:d=r!=null&&(r===408||r===409||r===429||r>=500),data:v}){super({name:hs,message:t,cause:c}),this[br]=!0,this.url=e,this.requestBodyValues=s,this.statusCode=r,this.responseHeaders=n,this.responseBody=l,this.isRetryable=d,this.data=v}static isInstance(t){return Y.hasMarker(t,ys)}};const vs="AI_EmptyResponseBodyError",bs=`vercel.ai.error.${vs}`,Cr=Symbol.for(bs);var Wt=class extends Y{constructor({message:t="Empty response body"}={}){super({name:vs,message:t}),this[Cr]=!0}static isInstance(t){return Y.hasMarker(t,bs)}};function Ss(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.toString():JSON.stringify(t)}const Cs="AI_InvalidArgumentError",Es=`vercel.ai.error.${Cs}`,Er=Symbol.for(Es);var Ir=class extends Y{constructor({message:e,cause:s,argument:r}){super({name:Cs,message:e,cause:s}),this[Er]=!0,this.argument=r}static isInstance(e){return Y.hasMarker(e,Es)}};const Is="AI_JSONParseError",As=`vercel.ai.error.${Is}`,Ar=Symbol.for(As);var Bt=class extends Y{constructor({text:t,cause:e}){super({name:Is,message:`JSON parsing failed: Text: ${t}.
2
+ Error message: ${Ss(e)}`,cause:e}),this[Ar]=!0,this.text=t}static isInstance(t){return Y.hasMarker(t,As)}};const ws="AI_TypeValidationError",xs=`vercel.ai.error.${ws}`,wr=Symbol.for(xs);var it=class xt extends Y{constructor({value:e,cause:s,context:r}){let n="Type validation failed";if(r!=null&&r.field&&(n+=` for ${r.field}`),r!=null&&r.entityName||r!=null&&r.entityId){n+=" (";const l=[];r.entityName&&l.push(r.entityName),r.entityId&&l.push(`id: "${r.entityId}"`),n+=l.join(", "),n+=")"}super({name:ws,message:`${n}: Value: ${JSON.stringify(e)}.
3
+ Error message: ${Ss(s)}`,cause:s}),this[wr]=!0,this.value=e,this.context=r}static isInstance(e){return Y.hasMarker(e,xs)}static wrap({value:e,cause:s,context:r}){var n,l,c;return xt.isInstance(s)&&s.value===e&&((n=s.context)==null?void 0:n.field)===(r==null?void 0:r.field)&&((l=s.context)==null?void 0:l.entityName)===(r==null?void 0:r.entityName)&&((c=s.context)==null?void 0:c.entityId)===(r==null?void 0:r.entityId)?s:new xt({value:e,cause:s,context:r})}};const Ms="AI_UnsupportedFunctionalityError",Ts=`vercel.ai.error.${Ms}`,xr=Symbol.for(Ts);var Mr=class extends Y{constructor({functionality:t,message:e=`'${t}' functionality not supported.`}){super({name:Ms,message:e}),this[xr]=!0,this.functionality=t}static isInstance(t){return Y.hasMarker(t,Ts)}};class St extends Error{constructor(e,s){super(e),this.name="ParseError",this.type=s.type,this.field=s.field,this.value=s.value,this.line=s.line}}const Jt=10,Tr=13,we=32;function Ct(t){}function Rr(t){if(typeof t=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");const{onEvent:e=Ct,onError:s=Ct,onRetry:r=Ct,onComment:n,maxBufferSize:l}=t,c=[];let d=0,v=!0,g,i="",u=0,m,b=!1;function O(o){if(b)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(v&&(v=!1,o.charCodeAt(0)===239&&o.charCodeAt(1)===187&&o.charCodeAt(2)===191&&(o=o.slice(3))),c.length===0){const h=P(o);h!==""&&(c.push(h),d=h.length),T();return}if(o.indexOf(`
4
+ `)===-1&&o.indexOf("\r")===-1){c.push(o),d+=o.length,T();return}c.push(o);const y=c.join("");c.length=0,d=0;const f=P(y);f!==""&&(c.push(f),d=f.length),T()}function T(){l!==void 0&&(d+i.length<=l||(b=!0,c.length=0,d=0,g=void 0,i="",u=0,m=void 0,s(new St(`Buffered data exceeded max buffer size of ${l} characters`,{type:"max-buffer-size-exceeded"}))))}function P(o){let y=0;if(o.indexOf("\r")===-1){let f=o.indexOf(`
5
+ `,y);for(;f!==-1;){if(y===f){u>0&&e({id:g,event:m,data:i}),g=void 0,i="",u=0,m=void 0,y=f+1,f=o.indexOf(`
6
+ `,y);continue}const h=o.charCodeAt(y);if(Ht(o,y,h)){const E=o.charCodeAt(y+5)===we?y+6:y+5,N=o.slice(E,f);if(u===0&&o.charCodeAt(f+1)===Jt){e({id:g,event:m,data:N}),g=void 0,i="",m=void 0,y=f+2,f=o.indexOf(`
7
+ `,y);continue}i=u===0?N:`${i}
8
+ ${N}`,u++}else Kt(o,y,h)?m=o.slice(o.charCodeAt(y+6)===we?y+7:y+6,f)||void 0:x(o,y,f);y=f+1,f=o.indexOf(`
9
+ `,y)}return o.slice(y)}for(;y<o.length;){const f=o.indexOf("\r",y),h=o.indexOf(`
10
+ `,y);let E=-1;if(f!==-1&&h!==-1?E=f<h?f:h:f!==-1?f===o.length-1?E=-1:E=f:h!==-1&&(E=h),E===-1)break;x(o,y,E),y=E+1,o.charCodeAt(y-1)===Tr&&o.charCodeAt(y)===Jt&&y++}return o.slice(y)}function x(o,y,f){if(y===f){I();return}const h=o.charCodeAt(y);if(Ht(o,y,h)){const $=o.charCodeAt(y+5)===we?y+6:y+5,B=o.slice($,f);i=u===0?B:`${i}
11
+ ${B}`,u++;return}if(Kt(o,y,h)){m=o.slice(o.charCodeAt(y+6)===we?y+7:y+6,f)||void 0;return}if(h===105&&o.charCodeAt(y+1)===100&&o.charCodeAt(y+2)===58){const $=o.slice(o.charCodeAt(y+3)===we?y+4:y+3,f);g=$.includes("\0")?void 0:$;return}if(h===58){if(n){const $=o.slice(y,f);n($.slice(o.charCodeAt(y+1)===we?2:1))}return}const E=o.slice(y,f),N=E.indexOf(":");if(N===-1){A(E,"",E);return}const D=E.slice(0,N),L=E.charCodeAt(N+1)===we?2:1,j=E.slice(N+L);A(D,j,E)}function A(o,y,f){switch(o){case"event":m=y||void 0;break;case"data":i=u===0?y:`${i}
12
+ ${y}`,u++;break;case"id":g=y.includes("\0")?void 0:y;break;case"retry":/^\d+$/.test(y)?r(parseInt(y,10)):s(new St(`Invalid \`retry\` value: "${y}"`,{type:"invalid-retry",value:y,line:f}));break;default:s(new St(`Unknown field "${o.length>20?`${o.slice(0,20)}…`:o}"`,{type:"unknown-field",field:o,value:y,line:f}));break}}function I(){u>0&&e({id:g,event:m,data:i}),g=void 0,i="",u=0,m=void 0}function S(o={}){if(o.consume&&c.length>0){const y=c.join("");x(y,0,y.length)}v=!0,g=void 0,i="",u=0,m=void 0,c.length=0,d=0,b=!1}return{feed:O,reset:S}}function Ht(t,e,s){return s===100&&t.charCodeAt(e+1)===97&&t.charCodeAt(e+2)===116&&t.charCodeAt(e+3)===97&&t.charCodeAt(e+4)===58}function Kt(t,e,s){return s===101&&t.charCodeAt(e+1)===118&&t.charCodeAt(e+2)===101&&t.charCodeAt(e+3)===110&&t.charCodeAt(e+4)===116&&t.charCodeAt(e+5)===58}class Pr extends TransformStream{constructor({onError:e,onRetry:s,onComment:r,maxBufferSize:n}={}){let l;super({start(c){l=Rr({onEvent:d=>{c.enqueue(d)},onError(d){typeof e=="function"&&e(d),(e==="terminate"||d.type==="max-buffer-size-exceeded")&&c.error(d)},onRetry:s,onComment:r,maxBufferSize:n})},transform(c){l.feed(c)}})}}new TextDecoder;function je(t){if(t==null)return{};const e={};if(t instanceof Headers)t.forEach((s,r)=>{e[r.toLowerCase()]=s});else{Array.isArray(t)||(t=Object.entries(t));for(const[s,r]of t)r!=null&&(e[s.toLowerCase()]=r)}return e}const Q=({prefix:t,size:e=16,alphabet:s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:r="-"}={})=>{const n=()=>{const l=s.length,c=new Array(e);for(let d=0;d<e;d++)c[d]=s[Math.random()*l|0];return c.join("")};if(t==null)return n;if(s.includes(r))throw new Ir({argument:"separator",message:`The separator "${r}" must not be part of the alphabet "${s}".`});return()=>`${t}${r}${n()}`},_r=Q();function Or(t){var e;return((e=globalThis.Buffer)==null?void 0:e.isBuffer(t))??!1}const Nr=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,kr=/"(?: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 Gt(t){const e=JSON.parse(t);return e===null||typeof e!="object"||Nr.test(t)===!1&&kr.test(t)===!1?e:Dr(e)}function Dr(t){let e=[t];for(;e.length;){const s=e;e=[];for(const r of s){if(Object.prototype.hasOwnProperty.call(r,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(r,"constructor")&&r.constructor!==null&&typeof r.constructor=="object"&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const n in r){const l=r[n];l&&typeof l=="object"&&e.push(l)}}}return t}function jr(t){const{stackTraceLimit:e}=Error;try{Error.stackTraceLimit=0}catch{return Gt(t)}try{return Gt(t)}finally{Error.stackTraceLimit=e}}function _t(t){if(t.type==="object"||Array.isArray(t.type)&&t.type.includes("object")){const{additionalProperties:s}=t;t.additionalProperties=s!=null&&typeof s!="boolean"?be(s):!1;const{properties:r}=t;if(r!=null)for(const n of Object.keys(r))r[n]=be(r[n])}t.items!=null&&(t.items=Array.isArray(t.items)?t.items.map(be):be(t.items)),t.anyOf!=null&&(t.anyOf=t.anyOf.map(be)),t.allOf!=null&&(t.allOf=t.allOf.map(be)),t.oneOf!=null&&(t.oneOf=t.oneOf.map(be));const{definitions:e}=t;if(e!=null)for(const s of Object.keys(e))e[s]=be(e[s]);return t}function be(t){return typeof t=="boolean"?t:_t(t)}const Lr=Symbol("Let zodToJsonSchema decide on which parser to use"),Yt={name: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"},$r=t=>typeof t=="string"?{...Yt,name:t}:{...Yt,...t};function ie(){return{}}function Fr(t,e){var r,n,l;const s={type:"array"};return(r=t.type)!=null&&r._def&&((l=(n=t.type)==null?void 0:n._def)==null?void 0:l.typeName)!=="ZodAny"&&(s.items=U(t.type._def,{...e,currentPath:[...e.currentPath,"items"]})),t.minLength&&(s.minItems=t.minLength.value),t.maxLength&&(s.maxItems=t.maxLength.value),t.exactLength&&(s.minItems=t.exactLength.value,s.maxItems=t.exactLength.value),s}function Ur(t){const e={type:"integer",format:"int64"};if(!t.checks)return e;for(const s of t.checks)switch(s.kind){case"min":s.inclusive?e.minimum=s.value:e.exclusiveMinimum=s.value;break;case"max":s.inclusive?e.maximum=s.value:e.exclusiveMaximum=s.value;break;case"multipleOf":e.multipleOf=s.value}return e}function zr(){return{type:"boolean"}}function Rs(t,e){return U(t.type._def,e)}const qr=(t,e)=>U(t.innerType._def,e);function Ps(t,e,s){const r=s??e.dateStrategy;if(Array.isArray(r))return{anyOf:r.map(n=>Ps(t,e,n))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return Zr(t)}}const Zr=t=>{const e={type:"integer",format:"unix-time"};for(const s of t.checks)switch(s.kind){case"min":e.minimum=s.value;break;case"max":e.maximum=s.value}return e};function Vr(t,e){return{...U(t.innerType._def,e),default:t.defaultValue()}}function Wr(t,e){return e.effectStrategy==="input"?U(t.schema._def,e):ie()}function Br(t){return{type:"string",enum:Array.from(t.values)}}const Jr=t=>"type"in t&&t.type==="string"?!1:"allOf"in t;function Hr(t,e){const s=[U(t.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),U(t.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(n=>!!n),r=[];return s.forEach(n=>{if(Jr(n))r.push(...n.allOf);else{let l=n;if("additionalProperties"in n&&n.additionalProperties===!1){const{additionalProperties:c,...d}=n;l=d}r.push(l)}}),r.length?{allOf:r}:void 0}function Kr(t){const e=typeof t.value;return e!=="bigint"&&e!=="number"&&e!=="boolean"&&e!=="string"?{type:Array.isArray(t.value)?"array":"object"}:{type:e==="bigint"?"integer":e,const:t.value}}let Et;const pe={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Et===void 0&&(Et=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Et),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function _s(t,e){const s={type:"string"};if(t.checks)for(const r of t.checks)switch(r.kind){case"min":s.minLength=typeof s.minLength=="number"?Math.max(s.minLength,r.value):r.value;break;case"max":s.maxLength=typeof s.maxLength=="number"?Math.min(s.maxLength,r.value):r.value;break;case"email":switch(e.emailStrategy){case"format:email":fe(s,"email",r.message,e);break;case"format:idn-email":fe(s,"idn-email",r.message,e);break;case"pattern:zod":se(s,pe.email,r.message,e)}break;case"url":fe(s,"uri",r.message,e);break;case"uuid":fe(s,"uuid",r.message,e);break;case"regex":se(s,r.regex,r.message,e);break;case"cuid":se(s,pe.cuid,r.message,e);break;case"cuid2":se(s,pe.cuid2,r.message,e);break;case"startsWith":se(s,RegExp(`^${It(r.value,e)}`),r.message,e);break;case"endsWith":se(s,RegExp(`${It(r.value,e)}$`),r.message,e);break;case"datetime":fe(s,"date-time",r.message,e);break;case"date":fe(s,"date",r.message,e);break;case"time":fe(s,"time",r.message,e);break;case"duration":fe(s,"duration",r.message,e);break;case"length":s.minLength=typeof s.minLength=="number"?Math.max(s.minLength,r.value):r.value,s.maxLength=typeof s.maxLength=="number"?Math.min(s.maxLength,r.value):r.value;break;case"includes":se(s,RegExp(It(r.value,e)),r.message,e);break;case"ip":r.version!=="v6"&&fe(s,"ipv4",r.message,e),r.version!=="v4"&&fe(s,"ipv6",r.message,e);break;case"base64url":se(s,pe.base64url,r.message,e);break;case"jwt":se(s,pe.jwt,r.message,e);break;case"cidr":r.version!=="v6"&&se(s,pe.ipv4Cidr,r.message,e),r.version!=="v4"&&se(s,pe.ipv6Cidr,r.message,e);break;case"emoji":se(s,pe.emoji(),r.message,e);break;case"ulid":se(s,pe.ulid,r.message,e);break;case"base64":switch(e.base64Strategy){case"format:binary":fe(s,"binary",r.message,e);break;case"contentEncoding:base64":s.contentEncoding="base64";break;case"pattern:zod":se(s,pe.base64,r.message,e)}break;case"nanoid":se(s,pe.nanoid,r.message,e)}return s}function It(t,e){return e.patternStrategy==="escape"?Yr(t):t}const Gr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Yr(t){let e="";for(let s=0;s<t.length;s++)Gr.has(t[s])||(e+="\\"),e+=t[s];return e}function fe(t,e,s,r){var n;t.format||(n=t.anyOf)!=null&&n.some(l=>l.format)?(t.anyOf||(t.anyOf=[]),t.format&&(t.anyOf.push({format:t.format}),delete t.format),t.anyOf.push({format:e,...s&&r.errorMessages&&{errorMessage:{format:s}}})):t.format=e}function se(t,e,s,r){var n;t.pattern||(n=t.allOf)!=null&&n.some(l=>l.pattern)?(t.allOf||(t.allOf=[]),t.pattern&&(t.allOf.push({pattern:t.pattern}),delete t.pattern),t.allOf.push({pattern:Qt(e,r),...s&&r.errorMessages&&{errorMessage:{pattern:s}}})):t.pattern=Qt(e,r)}function Qt(t,e){var v;if(!e.applyRegexFlags||!t.flags)return t.source;const s={i:t.flags.includes("i"),m:t.flags.includes("m"),s:t.flags.includes("s")},r=s.i?t.source.toLowerCase():t.source;let n="",l=!1,c=!1,d=!1;for(let g=0;g<r.length;g++){if(l){n+=r[g],l=!1;continue}if(s.i){if(c){if(r[g].match(/[a-z]/)){d?(n+=r[g],n+=`${r[g-2]}-${r[g]}`.toUpperCase(),d=!1):r[g+1]==="-"&&((v=r[g+2])!=null&&v.match(/[a-z]/))?(n+=r[g],d=!0):n+=`${r[g]}${r[g].toUpperCase()}`;continue}}else if(r[g].match(/[a-z]/)){n+=`[${r[g]}${r[g].toUpperCase()}]`;continue}}if(s.m){if(r[g]==="^"){n+=`(^|(?<=[\r
13
+ ]))`;continue}else if(r[g]==="$"){n+=`($|(?=[\r
14
+ ]))`;continue}}if(s.s&&r[g]==="."){n+=c?`${r[g]}\r
15
+ `:`[${r[g]}\r
16
+ ]`;continue}n+=r[g],r[g]==="\\"?l=!0:c&&r[g]==="]"?c=!1:!c&&r[g]==="["&&(c=!0)}try{new RegExp(n)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return n}function Os(t,e){var r,n,l,c,d;const s={type:"object",additionalProperties:U(t.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(((r=t.keyType)==null?void 0:r._def.typeName)==="ZodString"&&((n=t.keyType._def.checks)!=null&&n.length)){const{type:v,...g}=_s(t.keyType._def,e);return{...s,propertyNames:g}}else{if(((l=t.keyType)==null?void 0:l._def.typeName)==="ZodEnum")return{...s,propertyNames:{enum:t.keyType._def.values}};if(((c=t.keyType)==null?void 0:c._def.typeName)==="ZodBranded"&&t.keyType._def.type._def.typeName==="ZodString"&&((d=t.keyType._def.type._def.checks)!=null&&d.length)){const{type:v,...g}=Rs(t.keyType._def,e);return{...s,propertyNames:g}}}return s}function Qr(t,e){return e.mapStrategy==="record"?Os(t,e):{type:"array",maxItems:125,items:{type:"array",items:[U(t.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||ie(),U(t.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||ie()],minItems:2,maxItems:2}}}function Xr(t){const e=t.values,s=Object.keys(t.values).filter(n=>typeof e[e[n]]!="number").map(n=>e[n]),r=Array.from(new Set(s.map(n=>typeof n)));return{type:r.length===1?r[0]==="string"?"string":"number":["string","number"],enum:s}}function en(){return{not:ie()}}function tn(){return{type:"null"}}const Mt={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function sn(t,e){const s=t.options instanceof Map?Array.from(t.options.values()):t.options;if(s.every(r=>r._def.typeName in Mt&&(!r._def.checks||!r._def.checks.length))){const r=s.reduce((n,l)=>{const c=Mt[l._def.typeName];return c&&!n.includes(c)?[...n,c]:n},[]);return{type:r.length>1?r:r[0]}}else if(s.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){const r=s.reduce((n,l)=>{const c=typeof l._def.value;switch(c){case"string":case"number":case"boolean":return[...n,c];case"bigint":return[...n,"integer"];case"object":if(l._def.value===null)return[...n,"null"];default:return n}},[]);if(r.length===s.length){const n=r.filter((l,c,d)=>d.indexOf(l)===c);return{type:n.length>1?n:n[0],enum:s.reduce((l,c)=>l.includes(c._def.value)?l:[...l,c._def.value],[])}}}else if(s.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:s.reduce((r,n)=>[...r,...n._def.values.filter(l=>!r.includes(l))],[])};return rn(t,e)}const rn=(t,e)=>{const s=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((r,n)=>U(r._def,{...e,currentPath:[...e.currentPath,"anyOf",`${n}`]})).filter(r=>!!r&&(!e.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return s.length?{anyOf:s}:void 0};function nn(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length))return{type:[Mt[t.innerType._def.typeName],"null"]};const s=U(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return s&&{anyOf:[s,{type:"null"}]}}function an(t){const e={type:"number"};if(!t.checks)return e;for(const s of t.checks)switch(s.kind){case"int":e.type="integer";break;case"min":s.inclusive?e.minimum=s.value:e.exclusiveMinimum=s.value;break;case"max":s.inclusive?e.maximum=s.value:e.exclusiveMaximum=s.value;break;case"multipleOf":e.multipleOf=s.value}return e}function on(t,e){const s={type:"object",properties:{}},r=[],n=t.shape();for(const c in n){let d=n[c];if(d===void 0||d._def===void 0)continue;const v=cn(d),g=U(d._def,{...e,currentPath:[...e.currentPath,"properties",c],propertyPath:[...e.currentPath,"properties",c]});g!==void 0&&(s.properties[c]=g,v||r.push(c))}r.length&&(s.required=r);const l=ln(t,e);return l!==void 0&&(s.additionalProperties=l),s}function ln(t,e){if(t.catchall._def.typeName!=="ZodNever")return U(t.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(t.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function cn(t){try{return t.isOptional()}catch{return!0}}const un=(t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return U(t.innerType._def,e);const s=U(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return s?{anyOf:[{not:ie()},s]}:ie()},dn=(t,e)=>{if(e.pipeStrategy==="input")return U(t.in._def,e);if(e.pipeStrategy==="output")return U(t.out._def,e);const s=U(t.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]});return{allOf:[s,U(t.out._def,{...e,currentPath:[...e.currentPath,"allOf",s?"1":"0"]})].filter(r=>r!==void 0)}};function pn(t,e){return U(t.type._def,e)}function fn(t,e){const s={type:"array",uniqueItems:!0,items:U(t.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return t.minSize&&(s.minItems=t.minSize.value),t.maxSize&&(s.maxItems=t.maxSize.value),s}function mn(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((s,r)=>U(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[]),additionalItems:U(t.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((s,r)=>U(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[])}}function gn(){return{not:ie()}}function hn(){return ie()}const yn=(t,e)=>U(t.innerType._def,e),vn=(t,e,s)=>{switch(e){case"ZodString":return _s(t,s);case"ZodNumber":return an(t);case"ZodObject":return on(t,s);case"ZodBigInt":return Ur(t);case"ZodBoolean":return zr();case"ZodDate":return Ps(t,s);case"ZodUndefined":return gn();case"ZodNull":return tn();case"ZodArray":return Fr(t,s);case"ZodUnion":case"ZodDiscriminatedUnion":return sn(t,s);case"ZodIntersection":return Hr(t,s);case"ZodTuple":return mn(t,s);case"ZodRecord":return Os(t,s);case"ZodLiteral":return Kr(t);case"ZodEnum":return Br(t);case"ZodNativeEnum":return Xr(t);case"ZodNullable":return nn(t,s);case"ZodOptional":return un(t,s);case"ZodMap":return Qr(t,s);case"ZodSet":return fn(t,s);case"ZodLazy":return()=>t.getter()._def;case"ZodPromise":return pn(t,s);case"ZodNaN":case"ZodNever":return en();case"ZodEffects":return Wr(t,s);case"ZodAny":return ie();case"ZodUnknown":return hn();case"ZodDefault":return Vr(t,s);case"ZodBranded":return Rs(t,s);case"ZodReadonly":return yn(t,s);case"ZodCatch":return qr(t,s);case"ZodPipeline":return dn(t,s);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(r=>{})()}},bn=(t,e)=>{let s=0;for(;s<t.length&&s<e.length&&t[s]===e[s];s++);return[(t.length-s).toString(),...e.slice(s)].join("/")};function U(t,e,s=!1){var d;const r=e.seen.get(t);if(e.override){const v=(d=e.override)==null?void 0:d.call(e,t,e,r,s);if(v!==Lr)return v}if(r&&!s){const v=Sn(r,e);if(v!==void 0)return v}const n={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,n);const l=vn(t,t.typeName,e),c=typeof l=="function"?U(l(),e):l;if(c&&Cn(t,e,c),e.postProcess){const v=e.postProcess(c,t,e);return n.jsonSchema=c,v}return n.jsonSchema=c,c}const Sn=(t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:bn(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((s,r)=>e.currentPath[r]===s)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),ie()):e.$refStrategy==="seen"?ie():void 0}},Cn=(t,e,s)=>(t.description&&(s.description=t.description),s),En=t=>{const e=$r(t),s=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,currentPath:s,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([r,n])=>[n._def,{def:n._def,path:[...e.basePath,e.definitionPath,r],jsonSchema:void 0}]))}},In=(t,e)=>{const s=En(e);let r=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((v,[g,i])=>({...v,[g]:U(i._def,{...s,currentPath:[...s.basePath,s.definitionPath,g]},!0)??ie()}),{}):void 0;const n=typeof e=="string"?e:(e==null?void 0:e.nameStrategy)==="title"||e==null?void 0:e.name,l=U(t._def,n===void 0?s:{...s,currentPath:[...s.basePath,s.definitionPath,n]},!1)??ie(),c=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;c!==void 0&&(l.title=c);const d=n===void 0?r?{...l,[s.definitionPath]:r}:l:{$ref:[...s.$refStrategy==="relative"?[]:s.basePath,s.definitionPath,n].join("/"),[s.definitionPath]:{...r,[n]:l}};return d.$schema="http://json-schema.org/draft-07/schema#",d},Tt=Symbol.for("vercel.ai.schema");function An(t){let e;return()=>(e==null&&(e=t()),e)}function ct(t,{validate:e}={}){return{[Tt]:!0,_type:void 0,get jsonSchema(){return typeof t=="function"&&(t=t()),t},validate:e}}function wn(t){return typeof t=="object"&&t!==null&&Tt in t&&t[Tt]===!0&&"jsonSchema"in t&&"validate"in t}function xn(t){return t==null?ct({type:"object",properties:{},additionalProperties:!1}):wn(t)?t:"~standard"in t?t["~standard"].vendor==="zod"?Ns(t):Mn(t):t()}function Mn(t){return ct(()=>{if(!Tn(t))throw new Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return _t(t["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async e=>{const s=await t["~standard"].validate(e);return"value"in s?{success:!0,value:s.value}:{success:!1,error:new it({value:e,cause:s.issues})}}})}function Tn(t){return t["~standard"].jsonSchema!=null}function Rn(t,e){return ct(()=>In(t,{$refStrategy:"none"}),{validate:async s=>{const r=await t.safeParseAsync(s);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function Pn(t,e){return ct(()=>_t(mr.toJSONSchema(t,{target:"draft-7",io:"input",reused:"inline"})),{validate:async s=>{const r=await H.safeParseAsync(t,s);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function _n(t){return"_zod"in t}function Ns(t,e){return _n(t)?Pn(t):Rn(t)}async function Xt({value:t,schema:e,context:s}){const r=await ks({value:t,schema:e,context:s});if(!r.success)throw it.wrap({value:t,cause:r.error,context:s});return r.value}async function ks({value:t,schema:e,context:s}){const r=xn(e);try{if(r.validate==null)return{success:!0,value:t,rawValue:t};const n=await r.validate(t);return n.success?{success:!0,value:n.value,rawValue:t}:{success:!1,error:it.wrap({value:t,cause:n.error,context:s}),rawValue:t}}catch(n){return{success:!1,error:it.wrap({value:t,cause:n,context:s}),rawValue:t}}}async function Rt({text:t,schema:e}){try{const s=jr(t);return e==null?{success:!0,value:s,rawValue:s}:await ks({value:s,schema:e})}catch(s){return{success:!1,error:Bt.isInstance(s)?s:new Bt({text:t,cause:s}),rawValue:void 0}}}function On({stream:t,schema:e}){return t.pipeThrough(new TextDecoderStream).pipeThrough(new Pr).pipeThrough(new TransformStream({async transform({data:s},r){s!=="[DONE]"&&r.enqueue(await Rt({text:s,schema:e}))}}))}async function Le(t){return typeof t=="function"&&(t=t()),t}new TextDecoder;function Nn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}const Ds="AI_InvalidArgumentError",js=`vercel.ai.error.${Ds}`,kn=Symbol.for(js);var st=class extends Y{constructor({parameter:t,value:e,message:s}){super({name:Ds,message:`Invalid argument for parameter ${t}: ${s}`}),this[kn]=!0,this.parameter=t,this.value=e}static isInstance(t){return Y.hasMarker(t,js)}};const Ls="AI_UIMessageStreamError",$s=`vercel.ai.error.${Ls}`,Dn=Symbol.for($s);var xe=class extends Y{constructor({chunkType:t,chunkId:e,message:s}){super({name:Ls,message:s}),this[Dn]=!0,this.chunkType=t,this.chunkId=e}static isInstance(t){return Y.hasMarker(t,$s)}};function Fs(t,e){if(t===void 0&&e===void 0)return;if(t===void 0)return e;if(e===void 0)return t;const s={...t};for(const r in e)if(!(r==="__proto__"||r==="constructor"||r==="prototype")&&Object.prototype.hasOwnProperty.call(e,r)){const n=e[r];if(n===void 0)continue;const l=r in t?t[r]:void 0,c=n!==null&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof Date)&&!(n instanceof RegExp),d=l!=null&&typeof l=="object"&&!Array.isArray(l)&&!(l instanceof Date)&&!(l instanceof RegExp);c&&d?s[r]=Fs(l,n):s[r]=n}return s}const a={array:H.array,boolean:H.boolean,custom:H.custom,discriminatedUnion:H.discriminatedUnion,enum:H.enum,instanceof:H.instanceof,lazy:H.lazy,literal:H.literal,looseObject:H.looseObject,never:H.never,null:H.null,number:H.number,object:H.object,record:H.record,string:H.string,union:H.union,unknown:H.unknown},_e=a.lazy(()=>a.union([a.null(),a.string(),a.number(),a.boolean(),a.record(a.string(),_e.optional()),a.array(_e)])),R=a.record(a.string(),a.record(a.string(),_e.optional())),Be=a.union([a.string(),a.instanceof(Uint8Array),a.instanceof(ArrayBuffer),a.custom(Or,{message:"Must be a Buffer"})]),Ot=a.record(a.string(),a.string()),Us=a.object({type:a.literal("text"),text:a.string(),providerOptions:R.optional()}),jn=a.object({type:a.literal("image"),image:a.union([Be,a.instanceof(URL),Ot]),mediaType:a.string().optional(),providerOptions:R.optional()}),zs=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:Be}),a.object({type:a.literal("url"),url:a.instanceof(URL)}),a.object({type:a.literal("reference"),reference:Ot}),a.object({type:a.literal("text"),text:a.string()})]),Ln=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:Be}),a.object({type:a.literal("url"),url:a.instanceof(URL)})]),qs=a.object({type:a.literal("file"),data:a.union([zs,Be,a.instanceof(URL),Ot]),filename:a.string().optional(),mediaType:a.string(),providerOptions:R.optional()}),$n=a.object({type:a.literal("reasoning"),text:a.string(),providerOptions:R.optional()}),Fn=a.object({type:a.literal("custom"),kind:a.string().transform(t=>t),providerOptions:R.optional()}),Un=a.object({type:a.literal("reasoning-file"),data:a.union([Ln,Be,a.instanceof(URL)]),mediaType:a.string(),providerOptions:R.optional()}),zn=a.object({type:a.literal("tool-call"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerOptions:R.optional(),providerExecuted:a.boolean().optional()}),qn=a.discriminatedUnion("type",[a.object({type:a.literal("text"),value:a.string(),providerOptions:R.optional()}),a.object({type:a.literal("json"),value:_e,providerOptions:R.optional()}),a.object({type:a.literal("execution-denied"),reason:a.string().optional(),providerOptions:R.optional()}),a.object({type:a.literal("error-text"),value:a.string(),providerOptions:R.optional()}),a.object({type:a.literal("error-json"),value:_e,providerOptions:R.optional()}),a.object({type:a.literal("content"),value:a.array(a.union([a.object({type:a.literal("text"),text:a.string(),providerOptions:R.optional()}),a.object({type:a.literal("file"),data:zs,mediaType:a.string(),filename:a.string().optional(),providerOptions:R.optional()}),a.object({type:a.literal("file-data"),data:a.string(),mediaType:a.string(),filename:a.string().optional(),providerOptions:R.optional()}),a.object({type:a.literal("file-url"),url:a.string(),mediaType:a.string().optional(),providerOptions:R.optional()}),a.object({type:a.literal("file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:R.optional()}),a.object({type:a.literal("file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:R.optional()}),a.object({type:a.literal("image-data"),data:a.string(),mediaType:a.string(),providerOptions:R.optional()}),a.object({type:a.literal("image-url"),url:a.string(),providerOptions:R.optional()}),a.object({type:a.literal("image-file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:R.optional()}),a.object({type:a.literal("image-file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:R.optional()}),a.object({type:a.literal("custom"),providerOptions:R.optional()})]))})]),Zs=a.object({type:a.literal("tool-result"),toolCallId:a.string(),toolName:a.string(),output:qn,providerOptions:R.optional()}),Zn=a.object({type:a.literal("tool-approval-request"),approvalId:a.string(),toolCallId:a.string(),reason:a.string().optional(),isAutomatic:a.boolean().optional(),signature:a.string().optional(),inputSchemaInput:a.unknown().optional()}),Vn=a.object({type:a.literal("tool-approval-response"),approvalId:a.string(),approved:a.boolean(),reason:a.string().optional()}),Wn=a.object({role:a.literal("system"),content:a.string(),providerOptions:R.optional()}),Bn=a.object({role:a.literal("user"),content:a.union([a.string(),a.array(a.union([Us,jn,qs]))]),providerOptions:R.optional()}),Jn=a.object({role:a.literal("assistant"),content:a.union([a.string(),a.array(a.union([Us,Fn,qs,$n,Un,zn,Zs,Zn]))]),providerOptions:R.optional()}),Hn=a.object({role:a.literal("tool"),content:a.array(a.union([Zs,Vn])),providerOptions:R.optional()});a.union([Wn,Bn,Jn,Hn]);function Kn(t){const e=["ROOT"];let s=-1,r=null,n=0;function l(i){return i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f"}function c(i,u,m){switch(i){case'"':s=u,e.pop(),e.push(m),e.push("INSIDE_STRING");break;case"f":case"t":case"n":s=u,r=u,e.pop(),e.push(m),e.push("INSIDE_LITERAL");break;case"-":e.pop(),e.push(m),e.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":s=u,e.pop(),e.push(m),e.push("INSIDE_NUMBER");break;case"{":s=u,e.pop(),e.push(m),e.push("INSIDE_OBJECT_START");break;case"[":s=u,e.pop(),e.push(m),e.push("INSIDE_ARRAY_START")}}function d(i,u){switch(i){case",":e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":s=u,e.pop()}}function v(i,u){switch(i){case",":e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":s=u,e.pop()}}for(let i=0;i<t.length;i++){const u=t[i];switch(e[e.length-1]){case"ROOT":c(u,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY");break;case"}":s=i,e.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY")}break;case"INSIDE_OBJECT_KEY":switch(u){case'"':e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY")}break;case"INSIDE_OBJECT_AFTER_KEY":switch(u){case":":e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE")}break;case"INSIDE_OBJECT_BEFORE_VALUE":c(u,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":d(u,i);break;case"INSIDE_STRING":switch(u){case'"':e.pop(),s=i;break;case"\\":e.push("INSIDE_STRING_ESCAPE");break;default:s=i}break;case"INSIDE_ARRAY_START":switch(u){case"]":s=i,e.pop();break;default:s=i,c(u,i,"INSIDE_ARRAY_AFTER_VALUE")}break;case"INSIDE_ARRAY_AFTER_VALUE":switch(u){case",":e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":s=i,e.pop();break;default:s=i}break;case"INSIDE_ARRAY_AFTER_COMMA":c(u,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":e.pop(),u==="u"?(n=0,e.push("INSIDE_STRING_UNICODE_ESCAPE")):s=i;break;case"INSIDE_STRING_UNICODE_ESCAPE":l(u)&&(n++,n===4&&(e.pop(),s=i));break;case"INSIDE_NUMBER":switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":s=i;break;case"e":case"E":case"-":case".":break;case",":e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&d(u,i);break;case"}":e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&d(u,i);break;case"]":e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i);break;default:e.pop()}break;case"INSIDE_LITERAL":{const m=t.substring(r,i+1);!"false".startsWith(m)&&!"true".startsWith(m)&&!"null".startsWith(m)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?d(u,i):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(u,i)):s=i;break}}}let g=t.slice(0,s+1);for(let i=e.length-1;i>=0;i--)switch(e[i]){case"INSIDE_STRING":g+='"';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":g+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":g+="]";break;case"INSIDE_LITERAL":{const u=t.substring(r,t.length);"true".startsWith(u)?g+="true".slice(u.length):"false".startsWith(u)?g+="false".slice(u.length):"null".startsWith(u)&&(g+="null".slice(u.length))}}return g}async function Gn(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=await Rt({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=await Rt({text:Kn(t)}),e.success?{value:e.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}new TextEncoder;new TextEncoder;Q({prefix:"aitxt",size:24});Q({prefix:"call",size:24});(class extends TransformStream{constructor(){super({transform(t,e){e.enqueue(`data: ${JSON.stringify(t)}
17
17
 
18
18
  `)},flush(t){t.enqueue(`data: [DONE]
19
19
 
20
- `)}})}});const Kn=a.object({source:a.discriminatedUnion("sourceType",[a.object({type:a.literal("source"),sourceType:a.literal("url"),id:a.string(),url:a.string(),title:a.string().optional(),providerMetadata:P.optional()}),a.object({type:a.literal("source"),sourceType:a.literal("document"),id:a.string(),mediaType:a.string(),title:a.string(),filename:a.string().optional(),providerMetadata:P.optional()})]),startIndex:a.number().int().nonnegative().optional(),endIndex:a.number().int().nonnegative().optional(),citedText:a.string().optional()}),Ue=a.record(a.string(),Pe.optional()),Gn=En(()=>_s(a.union([a.looseObject({type:a.literal("text-start"),id:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("text-delta"),id:a.string(),delta:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("text-end"),id:a.string(),citations:a.array(Kn).optional(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("error"),errorText:a.string()}),a.looseObject({type:a.literal("tool-input-start"),toolCallId:a.string(),toolName:a.string(),inputEncoding:a.enum(["json","text"]).optional(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional(),toolMetadata:Ue.optional(),dynamic:a.boolean().optional(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-input-delta"),toolCallId:a.string(),inputTextDelta:a.string()}),a.looseObject({type:a.literal("tool-input-available"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional(),toolMetadata:Ue.optional(),dynamic:a.boolean().optional(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-input-error"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional(),toolMetadata:Ue.optional(),dynamic:a.boolean().optional(),errorText:a.string(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-approval-request"),approvalId:a.string(),toolCallId:a.string(),approvalDescriptor:a.unknown().optional(),inputSchemaInput:a.unknown().optional(),reason:a.string().optional(),isAutomatic:a.boolean().optional(),signature:a.string().optional()}),a.looseObject({type:a.literal("tool-approval-response"),approvalId:a.string(),approved:a.boolean(),reason:a.string().optional(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("tool-output-available"),toolCallId:a.string(),output:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional(),toolMetadata:Ue.optional(),dynamic:a.boolean().optional(),preliminary:a.boolean().optional()}),a.looseObject({type:a.literal("tool-output-error"),toolCallId:a.string(),errorText:a.string(),providerExecuted:a.boolean().optional(),providerMetadata:P.optional(),toolMetadata:Ue.optional(),dynamic:a.boolean().optional()}),a.looseObject({type:a.literal("tool-output-denied"),toolCallId:a.string()}),a.looseObject({type:a.literal("reasoning-start"),id:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("reasoning-delta"),id:a.string(),delta:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("reasoning-end"),id:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("custom"),kind:a.string().transform(t=>t),providerMetadata:P.optional()}),a.looseObject({type:a.literal("source-url"),sourceId:a.string(),url:a.string(),title:a.string().optional(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("source-document"),sourceId:a.string(),mediaType:a.string(),title:a.string(),filename:a.string().optional(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("file"),url:a.string(),mediaType:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.literal("reasoning-file"),url:a.string(),mediaType:a.string(),providerMetadata:P.optional()}),a.looseObject({type:a.custom(t=>typeof t=="string"&&t.startsWith("data-"),{message:'Type must start with "data-"'}),id:a.string().optional(),data:a.unknown(),transient:a.boolean().optional()}),a.looseObject({type:a.literal("start-step")}),a.looseObject({type:a.literal("finish-step")}),a.looseObject({type:a.literal("reset-step")}),a.looseObject({type:a.literal("start"),messageId:a.string().optional(),messageMetadata:a.unknown().optional()}),a.looseObject({type:a.literal("finish"),finishReason:a.enum(["stop","length","content-filter","tool-calls","error","interrupted","other"]).optional(),messageMetadata:a.unknown().optional()}),a.looseObject({type:a.literal("abort"),reason:a.string().optional()}),a.looseObject({type:a.literal("message-metadata"),messageMetadata:a.unknown()})])));function Yn(t){return t.type.startsWith("data-")}function ke(){return Object.create(null)}function nt(t){return t.type.startsWith("tool-")}function qs(t){return t.type==="dynamic-tool"}function le(t){return nt(t)||qs(t)}function at(t){return t.type.split("-").slice(1).join("-")}function Qn(t){return qs(t)?t.toolName:at(t)}function Zs({lastMessage:t,messageId:e}){const s=(t==null?void 0:t.role)==="assistant"?t:{id:e,metadata:void 0,role:"assistant",parts:[]},r=ke(),n=s.parts.findLastIndex(c=>c.type==="step-start");let l=0;for(const c of s.parts.slice(n+1)){if(!le(c))continue;const d=l;nt(c)&&l++,c.state==="input-streaming"&&(r[c.toolCallId]={text:c.rawInput??"",inputEncoding:c.inputEncoding,index:d,toolName:c.type==="dynamic-tool"?c.toolName:at(c),dynamic:c.type==="dynamic-tool",title:c.title,toolMetadata:c.toolMetadata})}return{message:s,activeTextParts:ke(),activeReasoningParts:ke(),partialToolCalls:r}}function Xn({stream:t,messageMetadataSchema:e,dataPartSchemas:s,runUpdateMessageJob:r,onError:n,onToolCall:l,onData:c,resetStateOnMessageIdChange:d=!1,resetStateOnFirstMessageStart:v=!1}){let h=!0;return t.pipeThrough(new TransformStream({async transform(i,u){await r(async({state:m,write:b})=>{function _(){const o=m.message.parts;let y=o.length-1;for(;y>=0&&o[y].type!=="step-start";)y--;return o.slice(y+1)}function w(){return _().filter(le)}function M(o){let y=w().find(f=>f.toolCallId===o);if(y==null){const f=m.message.parts;for(let g=f.length-1;g>=0;g--){const C=f[g];if(le(C)&&C.toolCallId===o){y=C;break}}}if(y==null)throw new we({chunkType:"tool-invocation",chunkId:o,message:`No tool invocation found for tool call ID "${o}".`});return y}function T(o){const y=m.message.parts.filter(le).find(f=>{var g;return((g=f.approval)==null?void 0:g.id)===o});if(y==null)throw new we({chunkType:"tool-approval-response",chunkId:o,message:`No tool invocation found for approval ID "${o}".`});return y}function A(o,y){const f=y??_().find(O=>nt(O)&&O.toolCallId===o.toolCallId),g=o,C=f;if(f!=null){f.state=o.state,C.type=`tool-${o.toolName}`,C.input=g.input,C.output=g.output,C.errorText=g.errorText,C.rawInput=g.rawInput,g.inputEncoding!=null?C.inputEncoding=g.inputEncoding:delete C.inputEncoding,C.preliminary=g.preliminary,o.title!==void 0&&(C.title=o.title),o.toolMetadata!==void 0&&(C.toolMetadata=o.toolMetadata),C.providerExecuted=g.providerExecuted??f.providerExecuted;const O=g.providerMetadata;if(O!=null)if(o.state==="output-available"||o.state==="output-error"){const k=f;k.resultProviderMetadata=O}else f.callProviderMetadata=O}else m.message.parts.push({type:`tool-${o.toolName}`,toolCallId:o.toolCallId,state:o.state,title:o.title,...o.toolMetadata!==void 0?{toolMetadata:o.toolMetadata}:{},input:g.input,...g.inputEncoding!=null?{inputEncoding:g.inputEncoding}:{},output:g.output,rawInput:g.rawInput,errorText:g.errorText,providerExecuted:g.providerExecuted,preliminary:g.preliminary,...g.providerMetadata!=null&&(o.state==="output-available"||o.state==="output-error")?{resultProviderMetadata:g.providerMetadata}:{},...g.providerMetadata!=null&&!(o.state==="output-available"||o.state==="output-error")?{callProviderMetadata:g.providerMetadata}:{}})}function E(o,y){const f=y??_().find(O=>O.type==="dynamic-tool"&&O.toolCallId===o.toolCallId),g=o,C=f;if(f!=null){f.state=o.state,C.toolName=o.toolName,C.input=g.input,C.output=g.output,C.errorText=g.errorText,C.rawInput=g.rawInput,g.inputEncoding!=null?C.inputEncoding=g.inputEncoding:delete C.inputEncoding,C.preliminary=g.preliminary,o.title!==void 0&&(C.title=o.title),o.toolMetadata!==void 0&&(C.toolMetadata=o.toolMetadata),C.providerExecuted=g.providerExecuted??f.providerExecuted;const O=g.providerMetadata;if(O!=null)if(o.state==="output-available"||o.state==="output-error"){const k=f;k.resultProviderMetadata=O}else f.callProviderMetadata=O}else m.message.parts.push({type:"dynamic-tool",toolName:o.toolName,toolCallId:o.toolCallId,state:o.state,input:g.input,...g.inputEncoding!=null?{inputEncoding:g.inputEncoding}:{},output:g.output,errorText:g.errorText,preliminary:g.preliminary,providerExecuted:g.providerExecuted,title:o.title,...o.toolMetadata!==void 0?{toolMetadata:o.toolMetadata}:{},...g.providerMetadata!=null&&(o.state==="output-available"||o.state==="output-error")?{resultProviderMetadata:g.providerMetadata}:{},...g.providerMetadata!=null&&!(o.state==="output-available"||o.state==="output-error")?{callProviderMetadata:g.providerMetadata}:{}})}async function I(o){if(o!=null){const y=m.message.metadata!=null?Ls(m.message.metadata,o):o;e!=null&&await Yt({value:y,schema:e,context:{field:"message.metadata",entityId:m.message.id}}),m.message.metadata=y}}switch(i.type){case"text-start":{const o={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};m.activeTextParts[i.id]=o,m.message.parts.push(o),b();break}case"text-delta":{const o=m.activeTextParts[i.id];if(o==null)throw new we({chunkType:"text-delta",chunkId:i.id,message:`Received text-delta for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});o.text+=i.delta,o.providerMetadata=i.providerMetadata??o.providerMetadata,b();break}case"text-end":{const o=m.activeTextParts[i.id];if(o==null)throw new we({chunkType:"text-end",chunkId:i.id,message:`Received text-end for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});o.state="done",i.citations!=null&&(o.citations=i.citations),o.providerMetadata=i.providerMetadata??o.providerMetadata,delete m.activeTextParts[i.id],b();break}case"custom":{const o={type:"custom",kind:i.kind,providerMetadata:i.providerMetadata};m.message.parts.push(o),b();break}case"reasoning-start":{const o={type:"reasoning",id:i.id,text:"",providerMetadata:i.providerMetadata,state:"streaming"};m.activeReasoningParts[i.id]=o,m.message.parts.push(o),b();break}case"reasoning-delta":{const o=m.activeReasoningParts[i.id];if(o==null)throw new we({chunkType:"reasoning-delta",chunkId:i.id,message:`Received reasoning-delta for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});o.text+=i.delta,o.providerMetadata=i.providerMetadata??o.providerMetadata,b();break}case"reasoning-end":{const o=m.activeReasoningParts[i.id];if(o==null)throw new we({chunkType:"reasoning-end",chunkId:i.id,message:`Received reasoning-end for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});o.providerMetadata=i.providerMetadata??o.providerMetadata,o.state="done",delete m.activeReasoningParts[i.id],b();break}case"file":case"reasoning-file":m.message.parts.push({type:i.type,mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),b();break;case"source-url":m.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),b();break;case"source-document":m.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),b();break;case"tool-input-start":{const o=_().filter(nt);m.partialToolCalls[i.toolCallId]={text:"",inputEncoding:i.inputEncoding,toolName:i.toolName,index:o.length,dynamic:i.dynamic,title:i.title,toolMetadata:i.toolMetadata},i.dynamic?E({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",inputEncoding:i.inputEncoding,input:void 0,providerExecuted:i.providerExecuted,title:i.title,toolMetadata:i.toolMetadata,providerMetadata:i.providerMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",inputEncoding:i.inputEncoding,input:void 0,providerExecuted:i.providerExecuted,title:i.title,toolMetadata:i.toolMetadata,providerMetadata:i.providerMetadata}),b();break}case"tool-input-delta":{const o=m.partialToolCalls[i.toolCallId];if(o==null)throw new we({chunkType:"tool-input-delta",chunkId:i.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${i.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});o.text+=i.inputTextDelta;const y=o.inputEncoding==="text"?o.text:(await Hn(o.text)).value;o.dynamic?E({toolCallId:i.toolCallId,toolName:o.toolName,state:"input-streaming",inputEncoding:o.inputEncoding,input:y,rawInput:o.text,title:o.title,toolMetadata:o.toolMetadata}):A({toolCallId:i.toolCallId,toolName:o.toolName,state:"input-streaming",inputEncoding:o.inputEncoding,input:y,rawInput:o.text,title:o.title,toolMetadata:o.toolMetadata}),b();break}case"tool-input-available":i.dynamic?E({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title,toolMetadata:i.toolMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title,toolMetadata:i.toolMetadata}),b(),l&&!i.providerExecuted&&await l({toolCall:i});break;case"tool-input-error":{const o=_().filter(le).find(y=>y.toolCallId===i.toolCallId);(o!=null?o.type==="dynamic-tool":i.dynamic)?E({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,toolMetadata:i.toolMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,toolMetadata:i.toolMetadata}),b();break}case"tool-approval-request":{const o=M(i.toolCallId);o.state="approval-requested",o.approval={id:i.approvalId,...i.approvalDescriptor!=null?{descriptor:i.approvalDescriptor}:{},...Object.prototype.hasOwnProperty.call(i,"inputSchemaInput")?{inputSchemaInput:i.inputSchemaInput}:{},...i.reason!=null?{requestReason:i.reason}:{},...i.isAutomatic===!0?{isAutomatic:!0}:{},...i.signature!=null?{signature:i.signature}:{}},b();break}case"tool-approval-response":{const o=T(i.approvalId),y=o.approval==null?{id:i.approvalId}:o.approval;o.state="approval-responded",o.approval={...y,id:i.approvalId,approved:i.approved,...i.reason!=null?{reason:i.reason}:{}},i.providerExecuted!=null&&(o.providerExecuted=i.providerExecuted),i.providerMetadata!=null&&(o.callProviderMetadata=i.providerMetadata),b();break}case"tool-output-denied":{const o=M(i.toolCallId);o.state="output-denied",b();break}case"tool-output-available":{const o=M(i.toolCallId);o.type==="dynamic-tool"?E({toolCallId:i.toolCallId,toolName:o.toolName,state:"output-available",input:o.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o):A({toolCallId:i.toolCallId,toolName:at(o),state:"output-available",input:o.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o),b();break}case"tool-output-error":{const o=M(i.toolCallId);o.type==="dynamic-tool"?E({toolCallId:i.toolCallId,toolName:o.toolName,state:"output-error",input:o.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o):A({toolCallId:i.toolCallId,toolName:at(o),state:"output-error",input:o.input,rawInput:o.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o),b();break}case"start-step":m.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{const o=_();m.activeTextParts=ke(),m.activeReasoningParts=ke(),m.partialToolCalls=ke(),o.length>0&&(m.message.parts.splice(m.message.parts.length-o.length,o.length),b());break}case"start":{const o=v&&h||d&&i.messageId!=null&&i.messageId!==m.message.id;h=!1,o&&Object.assign(m,Zs({lastMessage:void 0,messageId:i.messageId??m.message.id}),{finishReason:void 0}),i.messageId!=null&&(m.message.id=i.messageId),await I(i.messageMetadata),(o||i.messageId!=null||i.messageMetadata!=null)&&b({updateStatus:!1});break}case"finish":i.finishReason!=null&&(m.finishReason=i.finishReason),await I(i.messageMetadata),i.messageMetadata!=null&&b();break;case"message-metadata":await I(i.messageMetadata),i.messageMetadata!=null&&b();break;case"error":n==null||n(new Error(i.errorText));break;default:if(Yn(i)){if((s==null?void 0:s[i.type])!=null){const f=m.message.parts.findIndex(C=>"id"in C&&"data"in C&&C.id===i.id&&C.type===i.type),g=f>=0?f:m.message.parts.length;await Yt({value:i.data,schema:s[i.type],context:{field:`message.parts[${g}].data`,entityName:i.type,entityId:i.id}})}const o=i;if(o.transient){c==null||c(o);break}const y=o.id!=null?m.message.parts.find(f=>o.type===f.type&&o.id===f.id):void 0;y!=null?y.data=o.data:m.message.parts.push(o),c==null||c(o),b()}}u.enqueue(i)})}}))}async function ea({stream:t,onError:e,abortSignal:s}){const r=t.getReader(),n=()=>{r.cancel().catch(()=>{})};s!=null&&s.aborted?n():s==null||s.addEventListener("abort",n,{once:!0});try{for(;;){const{done:l}=await r.read();if(l)break}}catch(l){e==null||e(l)}finally{s==null||s.removeEventListener("abort",n),r.releaseLock()}}function ta(){let t,e;return{promise:new Promise((s,r)=>{t=s,e=r}),resolve:t,reject:e}}Y({prefix:"aitxt",size:24});Y({prefix:"call",size:24});Y({prefix:"aitxt",size:24});Y({prefix:"call",size:24});a.record(a.string(),Pe.optional());a.record(a.string(),a.string());Y({prefix:"call",size:24});Y({prefix:"call",size:24});new TextEncoder;Y({prefix:"call",size:24});Y({prefix:"aiobj",size:24});var sa=class{constructor(){this.queue=[],this.isProcessing=!1,this.idleWaiters=[]}async processQueue(){if(!this.isProcessing){this.isProcessing=!0;try{for(;this.queue.length>0;)await this.queue[0](),this.queue.shift()}finally{this.isProcessing=!1;for(const t of this.idleWaiters.splice(0))t()}}}async run(t){return new Promise((e,s)=>{this.queue.push(async()=>{try{await t(),e()}catch(r){s(r)}}),this.processQueue()})}async waitForIdle(){!this.isProcessing&&this.queue.length===0||await new Promise(t=>{this.idleWaiters.push(t)})}};Y({prefix:"aiobj",size:24});Y({prefix:"call",size:24});a.object({token:a.string().refine(t=>t.trim().length>0),url:a.string().refine(t=>{try{const e=new URL(t);return(e.protocol==="ws:"||e.protocol==="wss:")&&e.hostname!==""}catch{return!1}}),expiresAt:a.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:a.array(a.object({type:a.literal("function"),name:a.string().min(1),description:a.string().optional(),parameters:a.record(a.string(),a.unknown())})).optional()});Y({prefix:"call",size:24});Y({prefix:"call",size:24});Y({prefix:"call",size:24});async function Qt({response:t,url:e,fallbackMessage:s}){const r=await t.text();return new vr({message:r||s,url:e,requestBodyValues:void 0,statusCode:t.status,responseBody:r})}async function ra(t){if(t==null)return[];if(!globalThis.FileList||!(t instanceof globalThis.FileList))throw new wr({functionality:"FileList",message:"FileList is not supported in the current environment"});return Promise.all(Array.from(t).map(async e=>{const{name:s,type:r}=e;return{type:"file",mediaType:r,filename:s,url:await new Promise((n,l)=>{const c=new FileReader;c.onload=d=>{var v;n((v=d.target)==null?void 0:v.result)},c.onerror=d=>l(d),c.readAsDataURL(e)})}}))}function na(t,e){const s=t.search(/[?#]/),r=s===-1?t:t.slice(0,s),n=s===-1?"":t.slice(s);return`${r.endsWith("/")&&e.startsWith("/")?r.slice(0,-1):r}${e}${n}`}var aa=class{constructor({api:t="/api/chat",credentials:e,headers:s,body:r,fetch:n,prepareSendMessagesRequest:l,prepareReconnectToStreamRequest:c}){this.api=t,this.credentials=e,this.headers=s,this.body=r,this.fetch=n,this.prepareSendMessagesRequest=l,this.prepareReconnectToStreamRequest=c}async sendMessages({abortSignal:t,...e}){var m;const s=await De(this.body),r=await De(this.headers),n=await De(this.credentials),l={...Ne(r),...Ne(e.headers)},c=await((m=this.prepareSendMessagesRequest)==null?void 0:m.call(this,{api:this.api,id:e.chatId,messages:e.messages,body:{...s,...e.body},headers:l,credentials:n,requestMetadata:e.metadata,trigger:e.trigger,messageId:e.messageId})),d=(c==null?void 0:c.api)??this.api,v=(c==null?void 0:c.headers)!==void 0?Ne(c.headers):l,h=(c==null?void 0:c.body)!==void 0?c.body:{...s,...e.body,id:e.chatId,messages:e.messages,trigger:e.trigger,messageId:e.messageId},i=(c==null?void 0:c.credentials)??n,u=await(this.fetch??globalThis.fetch)(d,{method:"POST",headers:{"content-type":"application/json",...v},body:JSON.stringify(h),credentials:i,signal:t});if(!u.ok)throw await Qt({response:u,url:d,fallbackMessage:"Failed to fetch the chat response."});if(!u.body)throw new Zt({message:"The response body is empty."});return this.processResponseStream(u.body)}async reconnectToStream(t){var i;const e=await De(this.body),s=await De(this.headers),r=await De(this.credentials),n={...Ne(s),...Ne(t.headers)},l=await((i=this.prepareReconnectToStreamRequest)==null?void 0:i.call(this,{api:this.api,id:t.chatId,body:{...e,...t.body},headers:n,credentials:r,requestMetadata:t.metadata}));let c=l==null?void 0:l.api;if(c==null){if(t.chatId==="."||t.chatId==="..")throw new Xe({parameter:"chatId",value:t.chatId,message:'Chat IDs must not be "." or ".." when using the default reconnect URL.'});c=na(this.api,`/${encodeURIComponent(t.chatId)}/stream`)}const d=(l==null?void 0:l.headers)!==void 0?Ne(l.headers):n,v=(l==null?void 0:l.credentials)??r,h=await(this.fetch??globalThis.fetch)(c,{method:"GET",headers:d,credentials:v,signal:t.abortSignal});if(h.status===204)return null;if(!h.ok)throw await Qt({response:h,url:c,fallbackMessage:"Failed to fetch the chat response."});if(!h.body)throw new Zt({message:"The response body is empty."});return this.processResponseStream(h.body)}},_t=class extends aa{constructor({resumeStreamIsReplay:t=!0,...e}={}){super(e),this.resumeStreamIsReplay=t}processResponseStream(t){return Pn({stream:t,schema:Gn}).pipeThrough(new TransformStream({async transform(e,s){if(!e.success)throw e.error;s.enqueue(e.value)}}))}},ia=class{get id(){return this._id??(this._id=this.generateId())}constructor({generateId:t=Rr,id:e,transport:s=new _t,messageMetadataSchema:r,dataPartSchemas:n,state:l,onError:c,onToolCall:d,onFinish:v,onData:h,sendAutomaticallyWhen:i}){this.pendingMessagePreparations=new Set,this.interruptedMessageIds=new Set,this.activeResponse=void 0,this.activeResumeRequest=void 0,this.resumableStreamState=void 0,this.jobExecutor=new sa,this.activeStopCount=0,this.stopGeneration=0,this.sendMessage=async(u,m)=>{var _;if(u==null){let w=this.pendingApprovalMessageId;if(w==null){w=(_=this.lastMessage)==null?void 0:_.id;for(let T=this.state.messages.length-1;T>=0;T--){const A=this.state.messages[T];if(A.role==="assistant"&&A.parts.some(E=>le(E)&&E.state==="approval-responded")){w=A.id;break}}}const M=w!=null&&w===this.pendingApprovalMessageId?this.state.messages.findIndex(T=>T.id===w):-1;await this.makeRequestForToolApproval({messageId:w,messageIndex:M,...m});return}let b;if("text"in u||"files"in u){const w=new AbortController;this.pendingMessagePreparations.add(w);let M;try{M=Array.isArray(u.files)?u.files:await ra(u.files)}finally{this.pendingMessagePreparations.delete(w)}if(w.signal.aborted)return;b={parts:[...M,..."text"in u&&u.text!=null?[{type:"text",text:u.text}]:[]]}}else b=u;if(u.messageId!=null){const w=this.state.messages.findIndex(M=>M.id===u.messageId);if(w===-1)throw new Xe({parameter:"message.messageId",value:u.messageId,message:`message with id ${u.messageId} not found`});if(this.state.messages[w].role!=="user")throw new Xe({parameter:"message.messageId",value:u.messageId,message:`message with id ${u.messageId} is not a user message`});this.state.messages=this.state.messages.slice(0,w+1),this.state.replaceMessage(w,{id:u.messageId,...b,role:b.role??"user",metadata:u.metadata})}else this.state.pushMessage({...b,id:b.id??this.generateId(),role:b.role??"user",metadata:u.metadata});await this.makeRequest({trigger:"submit-message",messageId:u.messageId,...m})},this.regenerate=async({messageId:u,...m}={})=>{const b=u==null?this.state.messages.length-1:this.state.messages.findIndex(_=>_.id===u);if(b===-1)throw new Xe({parameter:"messageId",value:u,message:`message ${u} not found`});this.state.messages=this.state.messages.slice(0,this.messages[b].role==="assistant"?b:b+1),await this.makeRequest({trigger:"regenerate-message",messageId:u,...m})},this.resumeStream=async(u={})=>{await this.makeRequest({trigger:"resume-stream",...u})},this["~resumeStreamIfDisconnected"]=async({shouldResume:u=()=>!0}={})=>{const m=this.activeResponse;this.resumableStreamState==null&&m!=null&&(await m.completionPromise,this.resumableStreamState!==m.state)||this.resumableStreamState!=null&&u()&&await this.resumeStream()},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:u,approved:m,reason:b,options:_})=>this.jobExecutor.run(async()=>{const w=this.state.messages,M=A=>le(A)&&A.state==="approval-requested"&&A.approval.id===u?{...A,state:"approval-responded",approval:{...A.approval,id:u,approved:m,reason:b}}:A,T=w.findIndex(A=>A.parts.some(E=>le(E)&&E.state==="approval-requested"&&E.approval.id===u));if(T!==-1){const A=w[T];this.state.replaceMessage(T,{...A,parts:A.parts.map(M)}),this.pendingApprovalMessageId=A.id}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(M)),T!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const A=await this.shouldSendAutomatically(w[T].id);A&&this.runAutomaticRequest(()=>{var I;const E=T===-1?(I=this.lastMessage)==null?void 0:I.id:w[T].id;return this.makeRequestForToolApproval({messageId:E,messageIndex:T,..._})},A)}}),this.addToolOutput=async({state:u,toolCallId:m,output:b,errorText:_,options:w})=>this.jobExecutor.run(async()=>{const M=this.state.messages,T=E=>{if(!le(E)||E.toolCallId!==m)return E;const{approval:I,...o}=E,y=(I==null?void 0:I.approved)===!0?{approval:{...I,approved:I.approved}}:{};return u==="output-error"?{...o,...y,state:u,input:E.input,output:void 0,errorText:_}:{...o,...y,state:"output-available",input:E.input,output:b,errorText:void 0}},A=M.findIndex(E=>E.parts.some(I=>le(I)&&I.toolCallId===m));if(A!==-1){const E=M[A];this.state.replaceMessage(A,{...E,parts:E.parts.map(T)})}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(T)),A!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const E=await this.shouldSendAutomatically(M[A].id);E&&this.runAutomaticRequest(()=>this.makeRequest({trigger:"submit-message",messageId:M[A].id,...w}),E)}}),this.addToolResult=this.addToolOutput,this.stop=async()=>{this.activeStopCount++,this.stopGeneration++;try{const u=this.activeResumeRequest,m=this.activeResponse;for(const b of this.pendingMessagePreparations)b.abort();u==null||u.abortController.abort(),m==null||m.abortController.abort(),await Promise.all([u==null?void 0:u.completionPromise,m==null?void 0:m.completionPromise]),await this.jobExecutor.waitForIdle()}finally{this.activeStopCount--}},this.dispose=async()=>{var u,m;await this.stop(),(m=(u=this.transport).close)==null||m.call(u)},this._id=e,this.transport=s,this.generateId=t,this.messageMetadataSchema=r,this.dataPartSchemas=n,this.state=l,this.onError=c,this.onToolCall=d,this.onFinish=v,this.onData=h,this.sendAutomaticallyWhen=i}get status(){return this.state.status}setStatus({status:t,error:e}){if(this.status===t){this.error!==e&&(this.state.error=e);return}this.state.status=t,this.state.error=e}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(t){this.state.messages=t}async shouldSendAutomatically(t=(e=>(e=this.lastMessage)==null?void 0:e.id)()){var r,n;const s=l=>l!=null&&this.interruptedMessageIds.has(l);return!this.sendAutomaticallyWhen||s(t)||s((r=this.lastMessage)==null?void 0:r.id)?!1:await this.sendAutomaticallyWhen({messages:this.state.messages})&&!s(t)&&!s((n=this.lastMessage)==null?void 0:n.id)}async runAutomaticRequest(t,e){const s=this.stopGeneration,r=this.activeStopCount>0;(e??await this.shouldSendAutomatically())&&(r||s!==this.stopGeneration||this.activeStopCount>0||await t())}async makeRequestForToolApproval({messageId:t,messageIndex:e,...s}){var n;const r=t!=null&&t===this.pendingApprovalMessageId;r&&(this.pendingApprovalMessageId=void 0),await this.makeRequest({trigger:"submit-message",messageId:t,...s}),r&&this.status==="error"&&this.pendingApprovalMessageId==null&&(this.pendingApprovalMessageId=((n=this.state.messages[e])==null?void 0:n.id)??t)}async makeRequest(t){const e=ta();try{await this.makeRequestImpl({...t,completionPromise:e.promise})}finally{e.resolve()}}async makeRequestImpl({trigger:t,metadata:e,headers:s,body:r,messageId:n,completionPromise:l}){var o,y;t!=="resume-stream"&&(this.resumableStreamState=void 0);const c=new AbortController,d=t==="resume-stream"?{abortController:c,completionPromise:l}:void 0;d&&((o=this.activeResumeRequest)==null||o.abortController.abort(),this.activeResumeRequest=d);const v=()=>d==null||this.activeResumeRequest===d,h=()=>{this.activeResumeRequest===d&&(this.activeResumeRequest=void 0)};let i;if(t==="resume-stream")try{const f=await this.transport.reconnectToStream({chatId:this.id,abortSignal:c.signal,metadata:e,headers:s,body:r});if(c.signal.aborted||!v()){await(f==null?void 0:f.cancel().catch(()=>{})),v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),h();return}if(f==null){this.setStatus({status:"ready"}),this.resumableStreamState=void 0,h();return}i=f}catch(f){if(c.signal.aborted||f.name==="AbortError"){v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),h();return}if(!v())return;this.onError&&f instanceof Error&&this.onError(f),this.setStatus({status:"error",error:f}),h();return}this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage,m=t==="submit-message"&&n!=null?this.state.messages.findIndex(f=>f.id===n):this.state.messages.length-1,b=m===-1?u:this.state.messages[m],_=b==null?void 0:b.id,w=t==="resume-stream"&&(b==null?void 0:b.role)==="assistant"&&b.parts.some(f=>le(f)&&(f.state==="input-streaming"||f.state==="input-available"&&f.providerExecuted||f.state==="approval-responded"))?this.state.snapshot(b):void 0,M=m!==-1&&m<this.state.messages.length-1&&(b==null?void 0:b.role)==="assistant";let T=!1,A=!1,E=!1,I;try{const f={state:t==="resume-stream"&&this.resumableStreamState!=null?this.resumableStreamState:Zs({lastMessage:t==="resume-stream"?w:t==="regenerate-message"?void 0:this.state.snapshot(b),messageId:this.generateId()}),abortController:c,completionPromise:l};I=f,f.abortController.signal.addEventListener("abort",()=>{T=!0}),this.activeResponse=f;let g;t==="resume-stream"?g=i:g=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:f.abortController.signal,metadata:e,headers:s,body:r,trigger:t,messageId:n});const C=O=>this.jobExecutor.run(()=>f.abortController.signal.aborted?Promise.resolve():O({state:f.state,write:({updateStatus:k=!0}={})=>{if(f.abortController.signal.aborted)return;k&&this.setStatus({status:"streaming"});const U=this.state.messages.findLastIndex(j=>j.id===f.state.message.id);if(U!==-1)this.state.replaceMessage(U,f.state.message);else if(M){const j=this.state.messages.findLastIndex(L=>L.id===_);j!==-1?this.state.replaceMessage(j,f.state.message):this.state.pushMessage(f.state.message)}else this.state.pushMessage(f.state.message)}}));if(await ea({stream:Xn({stream:g,resetStateOnMessageIdChange:t==="resume-stream",resetStateOnFirstMessageStart:t==="resume-stream"&&this.transport.resumeStreamIsReplay,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:C,onError:O=>{throw O}}),abortSignal:f.abortController.signal,onError:O=>{throw O}}),T)return v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===f.state&&(this.resumableStreamState=void 0)),null;v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===f.state&&(this.resumableStreamState=void 0))}catch(f){if(T||f.name==="AbortError")return T=!0,v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===(I==null?void 0:I.state)&&(this.resumableStreamState=void 0)),null;if(!v())return null;if(E=!0,f instanceof TypeError){const g=f.message.toLowerCase();A=g.includes("fetch")||g.includes("network")||g==="load failed"}A?this.resumableStreamState=I==null?void 0:I.state:this.resumableStreamState===(I==null?void 0:I.state)&&(this.resumableStreamState=void 0),this.onError&&f instanceof Error&&this.onError(f),this.setStatus({status:"error",error:f})}finally{try{if(I){const{message:f,finishReason:g}=I.state;g==="interrupted"?this.interruptedMessageIds.add(f.id):!T&&!E&&this.interruptedMessageIds.delete(f.id),(y=this.onFinish)==null||y.call(this,{message:I.state.message,messages:this.state.messages,isAbort:T,isDisconnect:A,isError:E,finishReason:I.state.finishReason})}}finally{this.activeResponse===I&&(this.activeResponse=void 0),h()}}!T&&!E&&(I==null?void 0:I.state.finishReason)!=="interrupted"&&await this.runAutomaticRequest(()=>{var f;return this.makeRequest({trigger:"submit-message",messageId:(f=this.lastMessage)==null?void 0:f.id,metadata:e,headers:s,body:r})})}},Et,Xt;function oa(){if(Xt)return Et;Xt=1;function t(e,s){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r,n=0;return function(...c){clearTimeout(r);const d=Date.now(),v=d-n,h=s-v;h<=0?(n=d,e.apply(this,c)):r=setTimeout(()=>{n=Date.now(),e.apply(this,c)},h)}}return Et=t,Et}var la=oa();const ca=_n(la);function ua(t,e){return e!=null?ca(t,e):t}function da(t){return Array.isArray(t)?[...t]:t!=null&&typeof t=="object"&&(Object.getPrototypeOf(t)===Object.prototype||Object.getPrototypeOf(t)===null)?{...t}:t}var ae,je,Le,xe,Me,Te,Ee,ze,qe,us,pa=(us=class{constructor(t=[]){de(this,ae);de(this,je);de(this,Le);de(this,xe);de(this,Me);de(this,Te);de(this,Ee);de(this,ze);de(this,qe);K(this,je,"ready"),K(this,Le,void 0),K(this,xe,new Set),K(this,Me,new Set),K(this,Te,new Set),this.pushMessage=e=>{K(this,ae,q(this,ae).concat(e)),q(this,Ee).call(this)},this.popMessage=()=>{K(this,ae,q(this,ae).slice(0,-1)),q(this,Ee).call(this)},this.replaceMessage=(e,s)=>{K(this,ae,[...q(this,ae).slice(0,e),this.snapshot(s),...q(this,ae).slice(e+1)]),q(this,Ee).call(this)},this.snapshot=e=>{if(e==null||typeof e!="object"||!("parts"in e)||!Array.isArray(e.parts))return e;const s=e,r={...s,parts:s.parts.map(n=>({...n}))};return"metadata"in s&&(r.metadata=da(s.metadata)),r},this["~registerMessagesCallback"]=(e,s)=>{const r=s?ua(e,s):e;return q(this,xe).add(r),()=>{q(this,xe).delete(r)}},this["~registerStatusCallback"]=e=>(q(this,Me).add(e),()=>{q(this,Me).delete(e)}),this["~registerErrorCallback"]=e=>(q(this,Te).add(e),()=>{q(this,Te).delete(e)}),K(this,Ee,()=>{q(this,xe).forEach(e=>e())}),K(this,ze,()=>{q(this,Me).forEach(e=>e())}),K(this,qe,()=>{q(this,Te).forEach(e=>e())}),K(this,ae,t)}get status(){return q(this,je)}set status(t){K(this,je,t),q(this,ze).call(this)}get error(){return q(this,Le)}set error(t){K(this,Le,t),q(this,qe).call(this)}get messages(){return q(this,ae)}set messages(t){K(this,ae,[...t]),q(this,Ee).call(this)}},ae=new WeakMap,je=new WeakMap,Le=new WeakMap,xe=new WeakMap,Me=new WeakMap,Te=new WeakMap,Ee=new WeakMap,ze=new WeakMap,qe=new WeakMap,us),Re,ds,fa=(ds=class extends ia{constructor({messages:e,...s}){const r=new pa(e);super({...s,state:r});de(this,Re);this["~registerMessagesCallback"]=(n,l)=>q(this,Re)["~registerMessagesCallback"](n,l),this["~registerStatusCallback"]=n=>q(this,Re)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>q(this,Re)["~registerErrorCallback"](n),K(this,Re,r)}},Re=new WeakMap,ds);const et=new WeakMap;function ma({chat:t,state:e}){if(document.visibilityState!=="visible"||e.pendingVisibilityResume!=null)return;const s=()=>et.get(t)===e&&e.registrations.size>0,r=()=>{e.pendingVisibilityResume=void 0};e.pendingVisibilityResume=t["~resumeStreamIfDisconnected"]({shouldResume:()=>s()&&document.visibilityState==="visible"}).then(r,r)}function ga({chat:t,registration:e}){let s=et.get(t);if(s==null){const l={registrations:new Set};if(et.set(t,l),s=l,typeof document<"u"){const c=()=>ma({chat:t,state:l});document.addEventListener("visibilitychange",c),l.cleanupVisibilityListener=()=>{document.removeEventListener("visibilitychange",c)}}}const{registrations:r}=s,n=r.size===0;return r.add(e),n&&t.status!=="submitted"&&t.status!=="streaming"&&t.resumeStream(),()=>{var l;r.delete(e),r.size===0&&((l=s.cleanupVisibilityListener)==null||l.call(s),et.delete(t))}}function Qe(t){return{chat:t,messages:t.messages,status:t.status,error:t.error}}function es(t,e){return t.chat===e.chat&&t.messages===e.messages&&t.status===e.status&&t.error===e.error}function ha({throttle:t,experimental_throttle:e,resume:s=!1,...r}={}){const n=t??e,l=p.useRef({}),c=p.useRef({});"chat"in r||(c.current={onToolCall:r.onToolCall,onData:r.onData,onFinish:r.onFinish,onError:r.onError,sendAutomaticallyWhen:r.sendAutomaticallyWhen,transport:r.transport});let d;const v=()=>c.current.transport??d??(d=new _t),h={...r,transport:{get resumeStreamIsReplay(){return v().resumeStreamIsReplay},sendMessages:E=>v().sendMessages(E),reconnectToStream:E=>v().reconnectToStream(E)},onToolCall:E=>{var I,o;return(o=(I=c.current).onToolCall)==null?void 0:o.call(I,E)},onData:E=>{var I,o;return(o=(I=c.current).onData)==null?void 0:o.call(I,E)},onFinish:E=>{var I,o;return(o=(I=c.current).onFinish)==null?void 0:o.call(I,E)},onError:E=>{var I,o;return(o=(I=c.current).onError)==null?void 0:o.call(I,E)},sendAutomaticallyWhen:E=>{var I,o;return((o=(I=c.current).sendAutomaticallyWhen)==null?void 0:o.call(I,E))??!1}},i="chat"in r?r.chat:r.id,{chat:u,isExternallyManaged:m}=p.useMemo(()=>({chat:"chat"in r?r.chat:new fa(h),isExternallyManaged:"chat"in r}),[i]);p.useEffect(()=>{if(!m)return()=>{u.stop()}},[u,m]);const[b,_]=p.useState(()=>Qe(u));b.chat!==u&&_(Qe(u)),p.useEffect(()=>{let E=!0;const I=()=>{if(!E)return;const f=Qe(u);_(g=>g.chat!==u||es(g,f)?g:f)},o=[u["~registerMessagesCallback"](I,n),u["~registerStatusCallback"](I),u["~registerErrorCallback"](I)],y=Qe(u);return _(f=>es(f,y)?f:y),()=>{E=!1,o.forEach(f=>f())}},[u,n]);const{messages:w,status:M,error:T}=b,A=p.useCallback(E=>{typeof E=="function"&&(E=E(u.messages)),u.messages=E},[u]);return p.useEffect(()=>{if(s)return ga({chat:u,registration:l.current})},[s,u]),{get id(){return u.id},messages:w,setMessages:A,sendMessage:u.sendMessage,regenerate:u.regenerate,clearError:u.clearError,stop:u.stop,error:T,resumeStream:u.resumeStream,status:M,addToolResult:u.addToolOutput,addToolOutput:u.addToolOutput,addToolApprovalResponse:u.addToolApprovalResponse}}class ts{constructor(e){this.buffer=[],this.cap=Math.max(1,Math.floor(e))}get size(){return this.buffer.length}get items(){return this.buffer}enqueue(e){return this.buffer.length>=this.cap?!1:(this.buffer.push(e),!0)}dequeueNext(){return this.buffer.shift()??null}removeWhere(e){const s=this.buffer.findIndex(e);if(s===-1)return null;const[r]=this.buffer.splice(s,1);return r??null}}function Tt(t,e){const s=t.flatMap(r=>{if(r.kind==="text"&&r.streaming&&(e==null?void 0:e.streaming)===!1)return[];if(r.kind!=="steps")return[r];const n=r.steps.flatMap(l=>l.kind==="reasoning"?(e==null?void 0:e.reasoning)===!1?[]:[l]:(e==null?void 0:e.toolActivity)==="hidden"?[]:(e==null?void 0:e.toolActivity)==="status"&&("input"in l||"output"in l)?[{kind:l.kind,label:l.label,done:l.done}]:[l]);return n.length===0?[]:[n.length===r.steps.length&&n.every((l,c)=>l===r.steps[c])?r:{...r,steps:n}]});return s.length===t.length&&s.every((r,n)=>r===t[n])?t:s}const ya=D.z.union([D.z.string(),D.z.looseObject({id:D.z.string().optional(),label:D.z.string()})]),va=D.z.looseObject({id:D.z.string().optional(),prompt:D.z.string(),selection:D.z.enum(["single","multiple"]).default("single"),options:D.z.array(ya).min(1)}),ba=D.z.looseObject({request_id:D.z.string().optional(),questions:D.z.array(va).min(1)});function Sa(t){return!!(t!=null&&t.includes("ask_questions"))}const Ca=[/\bi[’'ʼ‘]?ll\s+(type|describe|enter|write|tell)\b/i,/\b(type|describe|enter|write|tell)\s+(it|my\s+own|manually)\b/i,/^\s*(other|custom|none\s+of\s+the\s+above|something\s+else)\s*\.?\s*$/i];function Ea(t){return Ca.some(e=>e.test(t))}function Ia(t,e){return{request_id:t.request_id??e??"req-clarification",questions:t.questions.map((s,r)=>({id:s.id??`q${r}`,prompt:s.prompt,selection:s.selection,options:s.options.map((n,l)=>typeof n=="string"?{id:`q${r}-o${l}`,label:n}:{id:n.id??`q${r}-o${l}`,label:n.label}).filter(n=>!Ea(n.label))}))}}function It(t){try{return JSON.parse(t)}catch{return null}}function Aa(t){if(t==null)return null;if(typeof t=="string")return It(t);if(Array.isArray(t)){for(const e of t)if(e&&typeof e=="object"&&"text"in e){const s=e.text;if(typeof s=="string")return It(s)}return null}if(typeof t=="object"){if("text"in t){const e=t.text;if(typeof e=="string")return It(e)}return t}return null}function ss(t,e){const s=Aa(t);if(s==null)return null;const r=ba.safeParse(s);return r.success?Ia(r.data,e):null}function wa(t,e){const s=[];for(const r of t.questions){const n=e.get(r.id);n===void 0||n.trim()===""||s.push(`Q: ${r.prompt}
20
+ `)}})}});const Yn=a.object({source:a.discriminatedUnion("sourceType",[a.object({type:a.literal("source"),sourceType:a.literal("url"),id:a.string(),url:a.string(),title:a.string().optional(),providerMetadata:R.optional()}),a.object({type:a.literal("source"),sourceType:a.literal("document"),id:a.string(),mediaType:a.string(),title:a.string(),filename:a.string().optional(),providerMetadata:R.optional()})]),startIndex:a.number().int().nonnegative().optional(),endIndex:a.number().int().nonnegative().optional(),citedText:a.string().optional()}),Ze=a.record(a.string(),_e.optional()),Qn=An(()=>Ns(a.union([a.looseObject({type:a.literal("text-start"),id:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("text-delta"),id:a.string(),delta:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("text-end"),id:a.string(),citations:a.array(Yn).optional(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("error"),errorText:a.string()}),a.looseObject({type:a.literal("tool-input-start"),toolCallId:a.string(),toolName:a.string(),inputEncoding:a.enum(["json","text"]).optional(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional(),toolMetadata:Ze.optional(),dynamic:a.boolean().optional(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-input-delta"),toolCallId:a.string(),inputTextDelta:a.string()}),a.looseObject({type:a.literal("tool-input-available"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional(),toolMetadata:Ze.optional(),dynamic:a.boolean().optional(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-input-error"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional(),toolMetadata:Ze.optional(),dynamic:a.boolean().optional(),errorText:a.string(),title:a.string().optional()}),a.looseObject({type:a.literal("tool-approval-request"),approvalId:a.string(),toolCallId:a.string(),approvalDescriptor:a.unknown().optional(),inputSchemaInput:a.unknown().optional(),reason:a.string().optional(),isAutomatic:a.boolean().optional(),signature:a.string().optional()}),a.looseObject({type:a.literal("tool-approval-response"),approvalId:a.string(),approved:a.boolean(),reason:a.string().optional(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("tool-output-available"),toolCallId:a.string(),output:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional(),toolMetadata:Ze.optional(),dynamic:a.boolean().optional(),preliminary:a.boolean().optional()}),a.looseObject({type:a.literal("tool-output-error"),toolCallId:a.string(),errorText:a.string(),providerExecuted:a.boolean().optional(),providerMetadata:R.optional(),toolMetadata:Ze.optional(),dynamic:a.boolean().optional()}),a.looseObject({type:a.literal("tool-output-denied"),toolCallId:a.string()}),a.looseObject({type:a.literal("reasoning-start"),id:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("reasoning-delta"),id:a.string(),delta:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("reasoning-end"),id:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("custom"),kind:a.string().transform(t=>t),providerMetadata:R.optional()}),a.looseObject({type:a.literal("source-url"),sourceId:a.string(),url:a.string(),title:a.string().optional(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("source-document"),sourceId:a.string(),mediaType:a.string(),title:a.string(),filename:a.string().optional(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("file"),url:a.string(),mediaType:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.literal("reasoning-file"),url:a.string(),mediaType:a.string(),providerMetadata:R.optional()}),a.looseObject({type:a.custom(t=>typeof t=="string"&&t.startsWith("data-"),{message:'Type must start with "data-"'}),id:a.string().optional(),data:a.unknown(),transient:a.boolean().optional()}),a.looseObject({type:a.literal("start-step")}),a.looseObject({type:a.literal("finish-step")}),a.looseObject({type:a.literal("reset-step")}),a.looseObject({type:a.literal("start"),messageId:a.string().optional(),messageMetadata:a.unknown().optional()}),a.looseObject({type:a.literal("finish"),finishReason:a.enum(["stop","length","content-filter","tool-calls","error","interrupted","other"]).optional(),messageMetadata:a.unknown().optional()}),a.looseObject({type:a.literal("abort"),reason:a.string().optional()}),a.looseObject({type:a.literal("message-metadata"),messageMetadata:a.unknown()})])));function Xn(t){return t.type.startsWith("data-")}function $e(){return Object.create(null)}function ot(t){return t.type.startsWith("tool-")}function Vs(t){return t.type==="dynamic-tool"}function le(t){return ot(t)||Vs(t)}function lt(t){return t.type.split("-").slice(1).join("-")}function ea(t){return Vs(t)?t.toolName:lt(t)}function Ws({lastMessage:t,messageId:e}){const s=(t==null?void 0:t.role)==="assistant"?t:{id:e,metadata:void 0,role:"assistant",parts:[]},r=$e(),n=s.parts.findLastIndex(c=>c.type==="step-start");let l=0;for(const c of s.parts.slice(n+1)){if(!le(c))continue;const d=l;ot(c)&&l++,c.state==="input-streaming"&&(r[c.toolCallId]={text:c.rawInput??"",inputEncoding:c.inputEncoding,index:d,toolName:c.type==="dynamic-tool"?c.toolName:lt(c),dynamic:c.type==="dynamic-tool",title:c.title,toolMetadata:c.toolMetadata})}return{message:s,activeTextParts:$e(),activeReasoningParts:$e(),partialToolCalls:r}}function ta({stream:t,messageMetadataSchema:e,dataPartSchemas:s,runUpdateMessageJob:r,onError:n,onToolCall:l,onData:c,resetStateOnMessageIdChange:d=!1,resetStateOnFirstMessageStart:v=!1}){let g=!0;return t.pipeThrough(new TransformStream({async transform(i,u){await r(async({state:m,write:b})=>{function O(){const o=m.message.parts;let y=o.length-1;for(;y>=0&&o[y].type!=="step-start";)y--;return o.slice(y+1)}function T(){return O().filter(le)}function P(o){let y=T().find(f=>f.toolCallId===o);if(y==null){const f=m.message.parts;for(let h=f.length-1;h>=0;h--){const E=f[h];if(le(E)&&E.toolCallId===o){y=E;break}}}if(y==null)throw new xe({chunkType:"tool-invocation",chunkId:o,message:`No tool invocation found for tool call ID "${o}".`});return y}function x(o){const y=m.message.parts.filter(le).find(f=>{var h;return((h=f.approval)==null?void 0:h.id)===o});if(y==null)throw new xe({chunkType:"tool-approval-response",chunkId:o,message:`No tool invocation found for approval ID "${o}".`});return y}function A(o,y){const f=y??O().find(N=>ot(N)&&N.toolCallId===o.toolCallId),h=o,E=f;if(f!=null){f.state=o.state,E.type=`tool-${o.toolName}`,E.input=h.input,E.output=h.output,E.errorText=h.errorText,E.rawInput=h.rawInput,h.inputEncoding!=null?E.inputEncoding=h.inputEncoding:delete E.inputEncoding,E.preliminary=h.preliminary,o.title!==void 0&&(E.title=o.title),o.toolMetadata!==void 0&&(E.toolMetadata=o.toolMetadata),E.providerExecuted=h.providerExecuted??f.providerExecuted;const N=h.providerMetadata;if(N!=null)if(o.state==="output-available"||o.state==="output-error"){const D=f;D.resultProviderMetadata=N}else f.callProviderMetadata=N}else m.message.parts.push({type:`tool-${o.toolName}`,toolCallId:o.toolCallId,state:o.state,title:o.title,...o.toolMetadata!==void 0?{toolMetadata:o.toolMetadata}:{},input:h.input,...h.inputEncoding!=null?{inputEncoding:h.inputEncoding}:{},output:h.output,rawInput:h.rawInput,errorText:h.errorText,providerExecuted:h.providerExecuted,preliminary:h.preliminary,...h.providerMetadata!=null&&(o.state==="output-available"||o.state==="output-error")?{resultProviderMetadata:h.providerMetadata}:{},...h.providerMetadata!=null&&!(o.state==="output-available"||o.state==="output-error")?{callProviderMetadata:h.providerMetadata}:{}})}function I(o,y){const f=y??O().find(N=>N.type==="dynamic-tool"&&N.toolCallId===o.toolCallId),h=o,E=f;if(f!=null){f.state=o.state,E.toolName=o.toolName,E.input=h.input,E.output=h.output,E.errorText=h.errorText,E.rawInput=h.rawInput,h.inputEncoding!=null?E.inputEncoding=h.inputEncoding:delete E.inputEncoding,E.preliminary=h.preliminary,o.title!==void 0&&(E.title=o.title),o.toolMetadata!==void 0&&(E.toolMetadata=o.toolMetadata),E.providerExecuted=h.providerExecuted??f.providerExecuted;const N=h.providerMetadata;if(N!=null)if(o.state==="output-available"||o.state==="output-error"){const D=f;D.resultProviderMetadata=N}else f.callProviderMetadata=N}else m.message.parts.push({type:"dynamic-tool",toolName:o.toolName,toolCallId:o.toolCallId,state:o.state,input:h.input,...h.inputEncoding!=null?{inputEncoding:h.inputEncoding}:{},output:h.output,errorText:h.errorText,preliminary:h.preliminary,providerExecuted:h.providerExecuted,title:o.title,...o.toolMetadata!==void 0?{toolMetadata:o.toolMetadata}:{},...h.providerMetadata!=null&&(o.state==="output-available"||o.state==="output-error")?{resultProviderMetadata:h.providerMetadata}:{},...h.providerMetadata!=null&&!(o.state==="output-available"||o.state==="output-error")?{callProviderMetadata:h.providerMetadata}:{}})}async function S(o){if(o!=null){const y=m.message.metadata!=null?Fs(m.message.metadata,o):o;e!=null&&await Xt({value:y,schema:e,context:{field:"message.metadata",entityId:m.message.id}}),m.message.metadata=y}}switch(i.type){case"text-start":{const o={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};m.activeTextParts[i.id]=o,m.message.parts.push(o),b();break}case"text-delta":{const o=m.activeTextParts[i.id];if(o==null)throw new xe({chunkType:"text-delta",chunkId:i.id,message:`Received text-delta for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});o.text+=i.delta,o.providerMetadata=i.providerMetadata??o.providerMetadata,b();break}case"text-end":{const o=m.activeTextParts[i.id];if(o==null)throw new xe({chunkType:"text-end",chunkId:i.id,message:`Received text-end for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});o.state="done",i.citations!=null&&(o.citations=i.citations),o.providerMetadata=i.providerMetadata??o.providerMetadata,delete m.activeTextParts[i.id],b();break}case"custom":{const o={type:"custom",kind:i.kind,providerMetadata:i.providerMetadata};m.message.parts.push(o),b();break}case"reasoning-start":{const o={type:"reasoning",id:i.id,text:"",providerMetadata:i.providerMetadata,state:"streaming"};m.activeReasoningParts[i.id]=o,m.message.parts.push(o),b();break}case"reasoning-delta":{const o=m.activeReasoningParts[i.id];if(o==null)throw new xe({chunkType:"reasoning-delta",chunkId:i.id,message:`Received reasoning-delta for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});o.text+=i.delta,o.providerMetadata=i.providerMetadata??o.providerMetadata,b();break}case"reasoning-end":{const o=m.activeReasoningParts[i.id];if(o==null)throw new xe({chunkType:"reasoning-end",chunkId:i.id,message:`Received reasoning-end for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});o.providerMetadata=i.providerMetadata??o.providerMetadata,o.state="done",delete m.activeReasoningParts[i.id],b();break}case"file":case"reasoning-file":m.message.parts.push({type:i.type,mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),b();break;case"source-url":m.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),b();break;case"source-document":m.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),b();break;case"tool-input-start":{const o=O().filter(ot);m.partialToolCalls[i.toolCallId]={text:"",inputEncoding:i.inputEncoding,toolName:i.toolName,index:o.length,dynamic:i.dynamic,title:i.title,toolMetadata:i.toolMetadata},i.dynamic?I({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",inputEncoding:i.inputEncoding,input:void 0,providerExecuted:i.providerExecuted,title:i.title,toolMetadata:i.toolMetadata,providerMetadata:i.providerMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",inputEncoding:i.inputEncoding,input:void 0,providerExecuted:i.providerExecuted,title:i.title,toolMetadata:i.toolMetadata,providerMetadata:i.providerMetadata}),b();break}case"tool-input-delta":{const o=m.partialToolCalls[i.toolCallId];if(o==null)throw new xe({chunkType:"tool-input-delta",chunkId:i.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${i.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});o.text+=i.inputTextDelta;const y=o.inputEncoding==="text"?o.text:(await Gn(o.text)).value;o.dynamic?I({toolCallId:i.toolCallId,toolName:o.toolName,state:"input-streaming",inputEncoding:o.inputEncoding,input:y,rawInput:o.text,title:o.title,toolMetadata:o.toolMetadata}):A({toolCallId:i.toolCallId,toolName:o.toolName,state:"input-streaming",inputEncoding:o.inputEncoding,input:y,rawInput:o.text,title:o.title,toolMetadata:o.toolMetadata}),b();break}case"tool-input-available":i.dynamic?I({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title,toolMetadata:i.toolMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title,toolMetadata:i.toolMetadata}),b(),l&&!i.providerExecuted&&await l({toolCall:i});break;case"tool-input-error":{const o=O().filter(le).find(y=>y.toolCallId===i.toolCallId);(o!=null?o.type==="dynamic-tool":i.dynamic)?I({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,toolMetadata:i.toolMetadata}):A({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,toolMetadata:i.toolMetadata}),b();break}case"tool-approval-request":{const o=P(i.toolCallId);o.state="approval-requested",o.approval={id:i.approvalId,...i.approvalDescriptor!=null?{descriptor:i.approvalDescriptor}:{},...Object.prototype.hasOwnProperty.call(i,"inputSchemaInput")?{inputSchemaInput:i.inputSchemaInput}:{},...i.reason!=null?{requestReason:i.reason}:{},...i.isAutomatic===!0?{isAutomatic:!0}:{},...i.signature!=null?{signature:i.signature}:{}},b();break}case"tool-approval-response":{const o=x(i.approvalId),y=o.approval==null?{id:i.approvalId}:o.approval;o.state="approval-responded",o.approval={...y,id:i.approvalId,approved:i.approved,...i.reason!=null?{reason:i.reason}:{}},i.providerExecuted!=null&&(o.providerExecuted=i.providerExecuted),i.providerMetadata!=null&&(o.callProviderMetadata=i.providerMetadata),b();break}case"tool-output-denied":{const o=P(i.toolCallId);o.state="output-denied",b();break}case"tool-output-available":{const o=P(i.toolCallId);o.type==="dynamic-tool"?I({toolCallId:i.toolCallId,toolName:o.toolName,state:"output-available",input:o.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o):A({toolCallId:i.toolCallId,toolName:lt(o),state:"output-available",input:o.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o),b();break}case"tool-output-error":{const o=P(i.toolCallId);o.type==="dynamic-tool"?I({toolCallId:i.toolCallId,toolName:o.toolName,state:"output-error",input:o.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o):A({toolCallId:i.toolCallId,toolName:lt(o),state:"output-error",input:o.input,rawInput:o.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:o.title,toolMetadata:i.toolMetadata??o.toolMetadata},o),b();break}case"start-step":m.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{const o=O();m.activeTextParts=$e(),m.activeReasoningParts=$e(),m.partialToolCalls=$e(),o.length>0&&(m.message.parts.splice(m.message.parts.length-o.length,o.length),b());break}case"start":{const o=v&&g||d&&i.messageId!=null&&i.messageId!==m.message.id;g=!1,o&&Object.assign(m,Ws({lastMessage:void 0,messageId:i.messageId??m.message.id}),{finishReason:void 0}),i.messageId!=null&&(m.message.id=i.messageId),await S(i.messageMetadata),(o||i.messageId!=null||i.messageMetadata!=null)&&b({updateStatus:!1});break}case"finish":i.finishReason!=null&&(m.finishReason=i.finishReason),await S(i.messageMetadata),i.messageMetadata!=null&&b();break;case"message-metadata":await S(i.messageMetadata),i.messageMetadata!=null&&b();break;case"error":n==null||n(new Error(i.errorText));break;default:if(Xn(i)){if((s==null?void 0:s[i.type])!=null){const f=m.message.parts.findIndex(E=>"id"in E&&"data"in E&&E.id===i.id&&E.type===i.type),h=f>=0?f:m.message.parts.length;await Xt({value:i.data,schema:s[i.type],context:{field:`message.parts[${h}].data`,entityName:i.type,entityId:i.id}})}const o=i;if(o.transient){c==null||c(o);break}const y=o.id!=null?m.message.parts.find(f=>o.type===f.type&&o.id===f.id):void 0;y!=null?y.data=o.data:m.message.parts.push(o),c==null||c(o),b()}}u.enqueue(i)})}}))}async function sa({stream:t,onError:e,abortSignal:s}){const r=t.getReader(),n=()=>{r.cancel().catch(()=>{})};s!=null&&s.aborted?n():s==null||s.addEventListener("abort",n,{once:!0});try{for(;;){const{done:l}=await r.read();if(l)break}}catch(l){e==null||e(l)}finally{s==null||s.removeEventListener("abort",n),r.releaseLock()}}function ra(){let t,e;return{promise:new Promise((s,r)=>{t=s,e=r}),resolve:t,reject:e}}Q({prefix:"aitxt",size:24});Q({prefix:"call",size:24});Q({prefix:"aitxt",size:24});Q({prefix:"call",size:24});a.record(a.string(),_e.optional());a.record(a.string(),a.string());Q({prefix:"call",size:24});Q({prefix:"call",size:24});new TextEncoder;Q({prefix:"call",size:24});Q({prefix:"aiobj",size:24});var na=class{constructor(){this.queue=[],this.isProcessing=!1,this.idleWaiters=[]}async processQueue(){if(!this.isProcessing){this.isProcessing=!0;try{for(;this.queue.length>0;)await this.queue[0](),this.queue.shift()}finally{this.isProcessing=!1;for(const t of this.idleWaiters.splice(0))t()}}}async run(t){return new Promise((e,s)=>{this.queue.push(async()=>{try{await t(),e()}catch(r){s(r)}}),this.processQueue()})}async waitForIdle(){!this.isProcessing&&this.queue.length===0||await new Promise(t=>{this.idleWaiters.push(t)})}};Q({prefix:"aiobj",size:24});Q({prefix:"call",size:24});a.object({token:a.string().refine(t=>t.trim().length>0),url:a.string().refine(t=>{try{const e=new URL(t);return(e.protocol==="ws:"||e.protocol==="wss:")&&e.hostname!==""}catch{return!1}}),expiresAt:a.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:a.array(a.object({type:a.literal("function"),name:a.string().min(1),description:a.string().optional(),parameters:a.record(a.string(),a.unknown())})).optional()});Q({prefix:"call",size:24});Q({prefix:"call",size:24});Q({prefix:"call",size:24});async function es({response:t,url:e,fallbackMessage:s}){const r=await t.text();return new Sr({message:r||s,url:e,requestBodyValues:void 0,statusCode:t.status,responseBody:r})}async function aa(t){if(t==null)return[];if(!globalThis.FileList||!(t instanceof globalThis.FileList))throw new Mr({functionality:"FileList",message:"FileList is not supported in the current environment"});return Promise.all(Array.from(t).map(async e=>{const{name:s,type:r}=e;return{type:"file",mediaType:r,filename:s,url:await new Promise((n,l)=>{const c=new FileReader;c.onload=d=>{var v;n((v=d.target)==null?void 0:v.result)},c.onerror=d=>l(d),c.readAsDataURL(e)})}}))}function ia(t,e){const s=t.search(/[?#]/),r=s===-1?t:t.slice(0,s),n=s===-1?"":t.slice(s);return`${r.endsWith("/")&&e.startsWith("/")?r.slice(0,-1):r}${e}${n}`}var oa=class{constructor({api:t="/api/chat",credentials:e,headers:s,body:r,fetch:n,prepareSendMessagesRequest:l,prepareReconnectToStreamRequest:c}){this.api=t,this.credentials=e,this.headers=s,this.body=r,this.fetch=n,this.prepareSendMessagesRequest=l,this.prepareReconnectToStreamRequest=c}async sendMessages({abortSignal:t,...e}){var m;const s=await Le(this.body),r=await Le(this.headers),n=await Le(this.credentials),l={...je(r),...je(e.headers)},c=await((m=this.prepareSendMessagesRequest)==null?void 0:m.call(this,{api:this.api,id:e.chatId,messages:e.messages,body:{...s,...e.body},headers:l,credentials:n,requestMetadata:e.metadata,trigger:e.trigger,messageId:e.messageId})),d=(c==null?void 0:c.api)??this.api,v=(c==null?void 0:c.headers)!==void 0?je(c.headers):l,g=(c==null?void 0:c.body)!==void 0?c.body:{...s,...e.body,id:e.chatId,messages:e.messages,trigger:e.trigger,messageId:e.messageId},i=(c==null?void 0:c.credentials)??n,u=await(this.fetch??globalThis.fetch)(d,{method:"POST",headers:{"content-type":"application/json",...v},body:JSON.stringify(g),credentials:i,signal:t});if(!u.ok)throw await es({response:u,url:d,fallbackMessage:"Failed to fetch the chat response."});if(!u.body)throw new Wt({message:"The response body is empty."});return this.processResponseStream(u.body)}async reconnectToStream(t){var i;const e=await Le(this.body),s=await Le(this.headers),r=await Le(this.credentials),n={...je(s),...je(t.headers)},l=await((i=this.prepareReconnectToStreamRequest)==null?void 0:i.call(this,{api:this.api,id:t.chatId,body:{...e,...t.body},headers:n,credentials:r,requestMetadata:t.metadata}));let c=l==null?void 0:l.api;if(c==null){if(t.chatId==="."||t.chatId==="..")throw new st({parameter:"chatId",value:t.chatId,message:'Chat IDs must not be "." or ".." when using the default reconnect URL.'});c=ia(this.api,`/${encodeURIComponent(t.chatId)}/stream`)}const d=(l==null?void 0:l.headers)!==void 0?je(l.headers):n,v=(l==null?void 0:l.credentials)??r,g=await(this.fetch??globalThis.fetch)(c,{method:"GET",headers:d,credentials:v,signal:t.abortSignal});if(g.status===204)return null;if(!g.ok)throw await es({response:g,url:c,fallbackMessage:"Failed to fetch the chat response."});if(!g.body)throw new Wt({message:"The response body is empty."});return this.processResponseStream(g.body)}},Nt=class extends oa{constructor({resumeStreamIsReplay:t=!0,...e}={}){super(e),this.resumeStreamIsReplay=t}processResponseStream(t){return On({stream:t,schema:Qn}).pipeThrough(new TransformStream({async transform(e,s){if(!e.success)throw e.error;s.enqueue(e.value)}}))}},la=class{get id(){return this._id??(this._id=this.generateId())}constructor({generateId:t=_r,id:e,transport:s=new Nt,messageMetadataSchema:r,dataPartSchemas:n,state:l,onError:c,onToolCall:d,onFinish:v,onData:g,sendAutomaticallyWhen:i}){this.pendingMessagePreparations=new Set,this.interruptedMessageIds=new Set,this.activeResponse=void 0,this.activeResumeRequest=void 0,this.resumableStreamState=void 0,this.jobExecutor=new na,this.activeStopCount=0,this.stopGeneration=0,this.sendMessage=async(u,m)=>{var O;if(u==null){let T=this.pendingApprovalMessageId;if(T==null){T=(O=this.lastMessage)==null?void 0:O.id;for(let x=this.state.messages.length-1;x>=0;x--){const A=this.state.messages[x];if(A.role==="assistant"&&A.parts.some(I=>le(I)&&I.state==="approval-responded")){T=A.id;break}}}const P=T!=null&&T===this.pendingApprovalMessageId?this.state.messages.findIndex(x=>x.id===T):-1;await this.makeRequestForToolApproval({messageId:T,messageIndex:P,...m});return}let b;if("text"in u||"files"in u){const T=new AbortController;this.pendingMessagePreparations.add(T);let P;try{P=Array.isArray(u.files)?u.files:await aa(u.files)}finally{this.pendingMessagePreparations.delete(T)}if(T.signal.aborted)return;b={parts:[...P,..."text"in u&&u.text!=null?[{type:"text",text:u.text}]:[]]}}else b=u;if(u.messageId!=null){const T=this.state.messages.findIndex(P=>P.id===u.messageId);if(T===-1)throw new st({parameter:"message.messageId",value:u.messageId,message:`message with id ${u.messageId} not found`});if(this.state.messages[T].role!=="user")throw new st({parameter:"message.messageId",value:u.messageId,message:`message with id ${u.messageId} is not a user message`});this.state.messages=this.state.messages.slice(0,T+1),this.state.replaceMessage(T,{id:u.messageId,...b,role:b.role??"user",metadata:u.metadata})}else this.state.pushMessage({...b,id:b.id??this.generateId(),role:b.role??"user",metadata:u.metadata});await this.makeRequest({trigger:"submit-message",messageId:u.messageId,...m})},this.regenerate=async({messageId:u,...m}={})=>{const b=u==null?this.state.messages.length-1:this.state.messages.findIndex(O=>O.id===u);if(b===-1)throw new st({parameter:"messageId",value:u,message:`message ${u} not found`});this.state.messages=this.state.messages.slice(0,this.messages[b].role==="assistant"?b:b+1),await this.makeRequest({trigger:"regenerate-message",messageId:u,...m})},this.resumeStream=async(u={})=>{await this.makeRequest({trigger:"resume-stream",...u})},this["~resumeStreamIfDisconnected"]=async({shouldResume:u=()=>!0}={})=>{const m=this.activeResponse;this.resumableStreamState==null&&m!=null&&(await m.completionPromise,this.resumableStreamState!==m.state)||this.resumableStreamState!=null&&u()&&await this.resumeStream()},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:u,approved:m,reason:b,options:O})=>this.jobExecutor.run(async()=>{const T=this.state.messages,P=A=>le(A)&&A.state==="approval-requested"&&A.approval.id===u?{...A,state:"approval-responded",approval:{...A.approval,id:u,approved:m,reason:b}}:A,x=T.findIndex(A=>A.parts.some(I=>le(I)&&I.state==="approval-requested"&&I.approval.id===u));if(x!==-1){const A=T[x];this.state.replaceMessage(x,{...A,parts:A.parts.map(P)}),this.pendingApprovalMessageId=A.id}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(P)),x!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const A=await this.shouldSendAutomatically(T[x].id);A&&this.runAutomaticRequest(()=>{var S;const I=x===-1?(S=this.lastMessage)==null?void 0:S.id:T[x].id;return this.makeRequestForToolApproval({messageId:I,messageIndex:x,...O})},A)}}),this.addToolOutput=async({state:u,toolCallId:m,output:b,errorText:O,options:T})=>this.jobExecutor.run(async()=>{const P=this.state.messages,x=I=>{if(!le(I)||I.toolCallId!==m)return I;const{approval:S,...o}=I,y=(S==null?void 0:S.approved)===!0?{approval:{...S,approved:S.approved}}:{};return u==="output-error"?{...o,...y,state:u,input:I.input,output:void 0,errorText:O}:{...o,...y,state:"output-available",input:I.input,output:b,errorText:void 0}},A=P.findIndex(I=>I.parts.some(S=>le(S)&&S.toolCallId===m));if(A!==-1){const I=P[A];this.state.replaceMessage(A,{...I,parts:I.parts.map(x)})}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(x)),A!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const I=await this.shouldSendAutomatically(P[A].id);I&&this.runAutomaticRequest(()=>this.makeRequest({trigger:"submit-message",messageId:P[A].id,...T}),I)}}),this.addToolResult=this.addToolOutput,this.stop=async()=>{this.activeStopCount++,this.stopGeneration++;try{const u=this.activeResumeRequest,m=this.activeResponse;for(const b of this.pendingMessagePreparations)b.abort();u==null||u.abortController.abort(),m==null||m.abortController.abort(),await Promise.all([u==null?void 0:u.completionPromise,m==null?void 0:m.completionPromise]),await this.jobExecutor.waitForIdle()}finally{this.activeStopCount--}},this.dispose=async()=>{var u,m;await this.stop(),(m=(u=this.transport).close)==null||m.call(u)},this._id=e,this.transport=s,this.generateId=t,this.messageMetadataSchema=r,this.dataPartSchemas=n,this.state=l,this.onError=c,this.onToolCall=d,this.onFinish=v,this.onData=g,this.sendAutomaticallyWhen=i}get status(){return this.state.status}setStatus({status:t,error:e}){if(this.status===t){this.error!==e&&(this.state.error=e);return}this.state.status=t,this.state.error=e}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(t){this.state.messages=t}async shouldSendAutomatically(t=(e=>(e=this.lastMessage)==null?void 0:e.id)()){var r,n;const s=l=>l!=null&&this.interruptedMessageIds.has(l);return!this.sendAutomaticallyWhen||s(t)||s((r=this.lastMessage)==null?void 0:r.id)?!1:await this.sendAutomaticallyWhen({messages:this.state.messages})&&!s(t)&&!s((n=this.lastMessage)==null?void 0:n.id)}async runAutomaticRequest(t,e){const s=this.stopGeneration,r=this.activeStopCount>0;(e??await this.shouldSendAutomatically())&&(r||s!==this.stopGeneration||this.activeStopCount>0||await t())}async makeRequestForToolApproval({messageId:t,messageIndex:e,...s}){var n;const r=t!=null&&t===this.pendingApprovalMessageId;r&&(this.pendingApprovalMessageId=void 0),await this.makeRequest({trigger:"submit-message",messageId:t,...s}),r&&this.status==="error"&&this.pendingApprovalMessageId==null&&(this.pendingApprovalMessageId=((n=this.state.messages[e])==null?void 0:n.id)??t)}async makeRequest(t){const e=ra();try{await this.makeRequestImpl({...t,completionPromise:e.promise})}finally{e.resolve()}}async makeRequestImpl({trigger:t,metadata:e,headers:s,body:r,messageId:n,completionPromise:l}){var o,y;t!=="resume-stream"&&(this.resumableStreamState=void 0);const c=new AbortController,d=t==="resume-stream"?{abortController:c,completionPromise:l}:void 0;d&&((o=this.activeResumeRequest)==null||o.abortController.abort(),this.activeResumeRequest=d);const v=()=>d==null||this.activeResumeRequest===d,g=()=>{this.activeResumeRequest===d&&(this.activeResumeRequest=void 0)};let i;if(t==="resume-stream")try{const f=await this.transport.reconnectToStream({chatId:this.id,abortSignal:c.signal,metadata:e,headers:s,body:r});if(c.signal.aborted||!v()){await(f==null?void 0:f.cancel().catch(()=>{})),v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),g();return}if(f==null){this.setStatus({status:"ready"}),this.resumableStreamState=void 0,g();return}i=f}catch(f){if(c.signal.aborted||f.name==="AbortError"){v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),g();return}if(!v())return;this.onError&&f instanceof Error&&this.onError(f),this.setStatus({status:"error",error:f}),g();return}this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage,m=t==="submit-message"&&n!=null?this.state.messages.findIndex(f=>f.id===n):this.state.messages.length-1,b=m===-1?u:this.state.messages[m],O=b==null?void 0:b.id,T=t==="resume-stream"&&(b==null?void 0:b.role)==="assistant"&&b.parts.some(f=>le(f)&&(f.state==="input-streaming"||f.state==="input-available"&&f.providerExecuted||f.state==="approval-responded"))?this.state.snapshot(b):void 0,P=m!==-1&&m<this.state.messages.length-1&&(b==null?void 0:b.role)==="assistant";let x=!1,A=!1,I=!1,S;try{const f={state:t==="resume-stream"&&this.resumableStreamState!=null?this.resumableStreamState:Ws({lastMessage:t==="resume-stream"?T:t==="regenerate-message"?void 0:this.state.snapshot(b),messageId:this.generateId()}),abortController:c,completionPromise:l};S=f,f.abortController.signal.addEventListener("abort",()=>{x=!0}),this.activeResponse=f;let h;t==="resume-stream"?h=i:h=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:f.abortController.signal,metadata:e,headers:s,body:r,trigger:t,messageId:n});const E=N=>this.jobExecutor.run(()=>f.abortController.signal.aborted?Promise.resolve():N({state:f.state,write:({updateStatus:D=!0}={})=>{if(f.abortController.signal.aborted)return;D&&this.setStatus({status:"streaming"});const L=this.state.messages.findLastIndex(j=>j.id===f.state.message.id);if(L!==-1)this.state.replaceMessage(L,f.state.message);else if(P){const j=this.state.messages.findLastIndex($=>$.id===O);j!==-1?this.state.replaceMessage(j,f.state.message):this.state.pushMessage(f.state.message)}else this.state.pushMessage(f.state.message)}}));if(await sa({stream:ta({stream:h,resetStateOnMessageIdChange:t==="resume-stream",resetStateOnFirstMessageStart:t==="resume-stream"&&this.transport.resumeStreamIsReplay,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:E,onError:N=>{throw N}}),abortSignal:f.abortController.signal,onError:N=>{throw N}}),x)return v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===f.state&&(this.resumableStreamState=void 0)),null;v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===f.state&&(this.resumableStreamState=void 0))}catch(f){if(x||f.name==="AbortError")return x=!0,v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===(S==null?void 0:S.state)&&(this.resumableStreamState=void 0)),null;if(!v())return null;if(I=!0,f instanceof TypeError){const h=f.message.toLowerCase();A=h.includes("fetch")||h.includes("network")||h==="load failed"}A?this.resumableStreamState=S==null?void 0:S.state:this.resumableStreamState===(S==null?void 0:S.state)&&(this.resumableStreamState=void 0),this.onError&&f instanceof Error&&this.onError(f),this.setStatus({status:"error",error:f})}finally{try{if(S){const{message:f,finishReason:h}=S.state;h==="interrupted"?this.interruptedMessageIds.add(f.id):!x&&!I&&this.interruptedMessageIds.delete(f.id),(y=this.onFinish)==null||y.call(this,{message:S.state.message,messages:this.state.messages,isAbort:x,isDisconnect:A,isError:I,finishReason:S.state.finishReason})}}finally{this.activeResponse===S&&(this.activeResponse=void 0),g()}}!x&&!I&&(S==null?void 0:S.state.finishReason)!=="interrupted"&&await this.runAutomaticRequest(()=>{var f;return this.makeRequest({trigger:"submit-message",messageId:(f=this.lastMessage)==null?void 0:f.id,metadata:e,headers:s,body:r})})}},At,ts;function ca(){if(ts)return At;ts=1;function t(e,s){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r,n=0;return function(...c){clearTimeout(r);const d=Date.now(),v=d-n,g=s-v;g<=0?(n=d,e.apply(this,c)):r=setTimeout(()=>{n=Date.now(),e.apply(this,c)},g)}}return At=t,At}var ua=ca();const da=Nn(ua);function pa(t,e){return e!=null?da(t,e):t}function fa(t){return Array.isArray(t)?[...t]:t!=null&&typeof t=="object"&&(Object.getPrototypeOf(t)===Object.prototype||Object.getPrototypeOf(t)===null)?{...t}:t}var ae,Fe,Ue,Me,Te,Re,Se,Ve,We,ps,ma=(ps=class{constructor(t=[]){de(this,ae);de(this,Fe);de(this,Ue);de(this,Me);de(this,Te);de(this,Re);de(this,Se);de(this,Ve);de(this,We);K(this,Fe,"ready"),K(this,Ue,void 0),K(this,Me,new Set),K(this,Te,new Set),K(this,Re,new Set),this.pushMessage=e=>{K(this,ae,Z(this,ae).concat(e)),Z(this,Se).call(this)},this.popMessage=()=>{K(this,ae,Z(this,ae).slice(0,-1)),Z(this,Se).call(this)},this.replaceMessage=(e,s)=>{K(this,ae,[...Z(this,ae).slice(0,e),this.snapshot(s),...Z(this,ae).slice(e+1)]),Z(this,Se).call(this)},this.snapshot=e=>{if(e==null||typeof e!="object"||!("parts"in e)||!Array.isArray(e.parts))return e;const s=e,r={...s,parts:s.parts.map(n=>({...n}))};return"metadata"in s&&(r.metadata=fa(s.metadata)),r},this["~registerMessagesCallback"]=(e,s)=>{const r=s?pa(e,s):e;return Z(this,Me).add(r),()=>{Z(this,Me).delete(r)}},this["~registerStatusCallback"]=e=>(Z(this,Te).add(e),()=>{Z(this,Te).delete(e)}),this["~registerErrorCallback"]=e=>(Z(this,Re).add(e),()=>{Z(this,Re).delete(e)}),K(this,Se,()=>{Z(this,Me).forEach(e=>e())}),K(this,Ve,()=>{Z(this,Te).forEach(e=>e())}),K(this,We,()=>{Z(this,Re).forEach(e=>e())}),K(this,ae,t)}get status(){return Z(this,Fe)}set status(t){K(this,Fe,t),Z(this,Ve).call(this)}get error(){return Z(this,Ue)}set error(t){K(this,Ue,t),Z(this,We).call(this)}get messages(){return Z(this,ae)}set messages(t){K(this,ae,[...t]),Z(this,Se).call(this)}},ae=new WeakMap,Fe=new WeakMap,Ue=new WeakMap,Me=new WeakMap,Te=new WeakMap,Re=new WeakMap,Se=new WeakMap,Ve=new WeakMap,We=new WeakMap,ps),Pe,fs,ga=(fs=class extends la{constructor({messages:e,...s}){const r=new ma(e);super({...s,state:r});de(this,Pe);this["~registerMessagesCallback"]=(n,l)=>Z(this,Pe)["~registerMessagesCallback"](n,l),this["~registerStatusCallback"]=n=>Z(this,Pe)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>Z(this,Pe)["~registerErrorCallback"](n),K(this,Pe,r)}},Pe=new WeakMap,fs);const rt=new WeakMap;function ha({chat:t,state:e}){if(document.visibilityState!=="visible"||e.pendingVisibilityResume!=null)return;const s=()=>rt.get(t)===e&&e.registrations.size>0,r=()=>{e.pendingVisibilityResume=void 0};e.pendingVisibilityResume=t["~resumeStreamIfDisconnected"]({shouldResume:()=>s()&&document.visibilityState==="visible"}).then(r,r)}function ya({chat:t,registration:e}){let s=rt.get(t);if(s==null){const l={registrations:new Set};if(rt.set(t,l),s=l,typeof document<"u"){const c=()=>ha({chat:t,state:l});document.addEventListener("visibilitychange",c),l.cleanupVisibilityListener=()=>{document.removeEventListener("visibilitychange",c)}}}const{registrations:r}=s,n=r.size===0;return r.add(e),n&&t.status!=="submitted"&&t.status!=="streaming"&&t.resumeStream(),()=>{var l;r.delete(e),r.size===0&&((l=s.cleanupVisibilityListener)==null||l.call(s),rt.delete(t))}}function tt(t){return{chat:t,messages:t.messages,status:t.status,error:t.error}}function ss(t,e){return t.chat===e.chat&&t.messages===e.messages&&t.status===e.status&&t.error===e.error}function va({throttle:t,experimental_throttle:e,resume:s=!1,...r}={}){const n=t??e,l=p.useRef({}),c=p.useRef({});"chat"in r||(c.current={onToolCall:r.onToolCall,onData:r.onData,onFinish:r.onFinish,onError:r.onError,sendAutomaticallyWhen:r.sendAutomaticallyWhen,transport:r.transport});let d;const v=()=>c.current.transport??d??(d=new Nt),g={...r,transport:{get resumeStreamIsReplay(){return v().resumeStreamIsReplay},sendMessages:I=>v().sendMessages(I),reconnectToStream:I=>v().reconnectToStream(I)},onToolCall:I=>{var S,o;return(o=(S=c.current).onToolCall)==null?void 0:o.call(S,I)},onData:I=>{var S,o;return(o=(S=c.current).onData)==null?void 0:o.call(S,I)},onFinish:I=>{var S,o;return(o=(S=c.current).onFinish)==null?void 0:o.call(S,I)},onError:I=>{var S,o;return(o=(S=c.current).onError)==null?void 0:o.call(S,I)},sendAutomaticallyWhen:I=>{var S,o;return((o=(S=c.current).sendAutomaticallyWhen)==null?void 0:o.call(S,I))??!1}},i="chat"in r?r.chat:r.id,{chat:u,isExternallyManaged:m}=p.useMemo(()=>({chat:"chat"in r?r.chat:new ga(g),isExternallyManaged:"chat"in r}),[i]);p.useEffect(()=>{if(!m)return()=>{u.stop()}},[u,m]);const[b,O]=p.useState(()=>tt(u));b.chat!==u&&O(tt(u)),p.useEffect(()=>{let I=!0;const S=()=>{if(!I)return;const f=tt(u);O(h=>h.chat!==u||ss(h,f)?h:f)},o=[u["~registerMessagesCallback"](S,n),u["~registerStatusCallback"](S),u["~registerErrorCallback"](S)],y=tt(u);return O(f=>ss(f,y)?f:y),()=>{I=!1,o.forEach(f=>f())}},[u,n]);const{messages:T,status:P,error:x}=b,A=p.useCallback(I=>{typeof I=="function"&&(I=I(u.messages)),u.messages=I},[u]);return p.useEffect(()=>{if(s)return ya({chat:u,registration:l.current})},[s,u]),{get id(){return u.id},messages:T,setMessages:A,sendMessage:u.sendMessage,regenerate:u.regenerate,clearError:u.clearError,stop:u.stop,error:x,resumeStream:u.resumeStream,status:P,addToolResult:u.addToolOutput,addToolOutput:u.addToolOutput,addToolApprovalResponse:u.addToolApprovalResponse}}class rs{constructor(e){this.buffer=[],this.cap=Math.max(1,Math.floor(e))}get size(){return this.buffer.length}get items(){return this.buffer}enqueue(e){return this.buffer.length>=this.cap?!1:(this.buffer.push(e),!0)}dequeueNext(){return this.buffer.shift()??null}removeWhere(e){const s=this.buffer.findIndex(e);if(s===-1)return null;const[r]=this.buffer.splice(s,1);return r??null}}function Pt(t,e){const s=t.flatMap(r=>{if(r.kind==="text"&&r.streaming&&(e==null?void 0:e.streaming)===!1)return[];if(r.kind!=="steps")return[r];const n=r.steps.flatMap(l=>l.kind==="reasoning"?(e==null?void 0:e.reasoning)===!1?[]:[l]:(e==null?void 0:e.toolActivity)==="hidden"?[]:(e==null?void 0:e.toolActivity)==="status"&&("input"in l||"output"in l)?[{kind:l.kind,label:l.label,done:l.done}]:[l]);return n.length===0?[]:[n.length===r.steps.length&&n.every((l,c)=>l===r.steps[c])?r:{...r,steps:n}]});return s.length===t.length&&s.every((r,n)=>r===t[n])?t:s}const ba=k.z.union([k.z.string(),k.z.looseObject({id:k.z.string().optional(),label:k.z.string()})]),Sa=k.z.looseObject({id:k.z.string().optional(),prompt:k.z.string(),selection:k.z.enum(["single","multiple"]).default("single"),options:k.z.array(ba).min(1)}),Ca=k.z.looseObject({request_id:k.z.string().optional(),questions:k.z.array(Sa).min(1)});function Ea(t){return!!(t!=null&&t.includes("ask_questions"))}const Ia=[/\bi[’'ʼ‘]?ll\s+(type|describe|enter|write|tell)\b/i,/\b(type|describe|enter|write|tell)\s+(it|my\s+own|manually)\b/i,/^\s*(other|custom|none\s+of\s+the\s+above|something\s+else)\s*\.?\s*$/i];function Aa(t){return Ia.some(e=>e.test(t))}function wa(t,e){return{request_id:t.request_id??e??"req-clarification",questions:t.questions.map((s,r)=>({id:s.id??`q${r}`,prompt:s.prompt,selection:s.selection,options:s.options.map((n,l)=>typeof n=="string"?{id:`q${r}-o${l}`,label:n}:{id:n.id??`q${r}-o${l}`,label:n.label}).filter(n=>!Aa(n.label))}))}}function wt(t){try{return JSON.parse(t)}catch{return null}}function xa(t){if(t==null)return null;if(typeof t=="string")return wt(t);if(Array.isArray(t)){for(const e of t)if(e&&typeof e=="object"&&"text"in e){const s=e.text;if(typeof s=="string")return wt(s)}return null}if(typeof t=="object"){if("text"in t){const e=t.text;if(typeof e=="string")return wt(e)}return t}return null}function ns(t,e){const s=xa(t);if(s==null)return null;const r=Ca.safeParse(s);return r.success?wa(r.data,e):null}function Ma(t,e){const s=[];for(const r of t.questions){const n=e.get(r.id);n===void 0||n.trim()===""||s.push(`Q: ${r.prompt}
21
21
  A: ${n.trim()}`)}return s.join(`
22
22
 
23
- `)}const xa=D.z.object({request_id:D.z.string().uuid(),server_id:D.z.string().uuid(),name:D.z.string().min(1).max(120)}),Ma=D.z.object({connection_required:xa}),rs="data-spec",Ta=D.z.object({label:D.z.string(),done:D.z.boolean()}),Ra=D.z.object({plan:D.z.array(D.z.object({step:D.z.string(),status:D.z.enum(["pending","in_progress","completed"])}))});function tt(t){const e=[],s=c=>{const d=e.at(-1);(d==null?void 0:d.kind)==="steps"?d.steps.push(c):e.push({kind:"steps",steps:[c]})},r=c=>c==="output-available"||c==="output-error";let n=null,l;for(const c of t)if(!Z.isAgentStreamKeepalive(c)&&Vs(c)!=="highlight_element"){if(c.state==="output-available"&&(c.type==="dynamic-tool"||c.type.startsWith("tool-"))){const d=Ma.safeParse(c.output);if(d.success){e.push({kind:"connection",request:d.data.connection_required});continue}}if(Pa(c)){const d=_a(c);d&&e.push(d);continue}if(c.type==="data-plan"){const d=Ra.safeParse(c.data);d.success&&(l?l.plan=d.data.plan:(l={kind:"plan",plan:d.data.plan},e.push(l)))}else if(c.type==="data-tool-activity"){const d=Ta.safeParse(c.data);d.success&&s({kind:"tool",label:d.data.label,done:d.data.done})}else if(c.type===rs)n||(n={kind:"spec",parts:[]},e.push(n)),n.parts.push({type:rs,data:c.data});else if(c.type==="text"){const d=typeof c.text=="string"?c.text:"";d.trim().length>0&&e.push({kind:"text",text:d,...c.state==="streaming"?{streaming:!0}:{}})}else c.type==="reasoning"?s({kind:"reasoning",label:typeof c.text=="string"?c.text:"",done:c.state!=="streaming"}):c.type==="dynamic-tool"?s({kind:"tool",label:typeof c.toolName=="string"?c.toolName:"tool",done:r(c.state),...ns(c)}):c.type.startsWith("tool-")&&s({kind:"tool",label:c.type.slice(5),done:r(c.state),...ns(c)})}return e}function Vs(t){return t.type==="dynamic-tool"?typeof t.toolName=="string"?t.toolName:void 0:t.type.startsWith("tool-")?t.type.slice(5):void 0}function Pa(t){return Sa(Vs(t))}function _a(t){const e=typeof t.toolCallId=="string"?t.toolCallId:void 0,s=ss(t.output,e)??ss(t.input,e);return s?{kind:"questions",request:s}:null}function ns(t){return{...t.input===void 0?{}:{input:t.input},...t.output===void 0?{}:{output:t.output}}}function Oa(t,e){const s=[];return e!=null&&e.toolActivity&&s.push(`toolActivity=${encodeURIComponent(e.toolActivity)}`),(e==null?void 0:e.reasoning)!==void 0&&s.push(`reasoning=${String(e.reasoning)}`),s.length===0?t:`${t}${t.includes("?")?"&":"?"}${s.join("&")}`}function Na(t){return({id:e})=>({api:t.reconnectApi(e),headers:t.headers()})}function Da(t){return new _t({api:t.api,headers:()=>t.headers(),fetch:t.fetch,prepareSendMessagesRequest:({body:e})=>({body:e??{}}),prepareReconnectToStreamRequest:Na(t)})}function ka({existing:t,fetched:e,refreshItems:s=!1}){const r=new Map(t.map(d=>[d.turnId,d])),n=new Set,l=[];for(const d of e.turns){if(n.add(d.turn_id),d.message_uuids.length===0)continue;const v=r.get(d.turn_id);if(v&&!s){ja(v.rowIds,d.message_uuids)?l.push(v):l.push({...v,rowIds:d.message_uuids});continue}if(d.ui_parts!==null){const h=tt(d.ui_parts);if(h.length===0)continue;l.push({key:(v==null?void 0:v.key)??`turn-${d.turn_id}`,turnId:d.turn_id,rowIds:d.message_uuids,items:h})}}for(const d of t)n.has(d.turnId)||l.push(d);return l.length===t.length&&l.every((d,v)=>d===t[v])?t:l}const ja=(t,e)=>t.length===e.length&&t.every((s,r)=>s===e[r]),La=t=>Array.isArray(t)&&t.every(e=>typeof e=="string");function as(t){for(const e of t){if(e.type!=="data-turn-settled")continue;const s=e.data;return!Z.isRecord(s)||typeof s.turn_id!="string"||!La(s.message_uuids)?null:{turnId:s.turn_id,rowIds:s.message_uuids}}return null}function $a(t){if(typeof document>"u"||typeof window>"u"||typeof window.addEventListener!="function")return()=>{};const e=()=>{document.visibilityState==="visible"&&t()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}}async function Fa({api:t,sessionId:e,chatStop:s}){try{await s()}finally{e&&await t.stopStream(e)}}const is=20,Ua="highlight_element",za="act_on_page";function qa({widgetCtx:t,config:e,sessionId:s,persistedMessages:r}){var Ft,Ut;const{api:n,messageCtx:l}=t,c=p.useRef(e);c.current=e;const{pageContext:d,clientTools:v,pageActions:h}=t.features,i=p.useMemo(()=>Da({...n.getStreamTransportOptions(),headers:()=>n.getStreamTransportOptions().headers,reconnectApi:S=>Oa(n.getStreamTransportOptions().reconnectApi(S),c.current.presentation),fetch:(S,x)=>(c.current.streamingFetch??globalThis.fetch)(S,x)}),[n]),[u,m]=p.useState(null),b=p.useRef(!1),[_]=p.useState(Z.genUuid),{status:w,messages:M,sendMessage:T,stop:A,error:E,clearError:I,resumeStream:o}=ha({id:s??_,resume:s!==null,transport:i,throttle:50,onError:S=>Z.log.error("agent chat stream error",S),onFinish:m}),y=p.useRef(M);y.current=M;const f=p.useRef(new ts(is));p.useEffect(()=>{if(!u||u.messages!==M)return;const{isAbort:S,isDisconnect:x,isError:N,message:R}=u;S||x||N||f.current.size>0||l.state.setPartial({lastAIResMightSolveUserIssue:Z.isRecord(R.metadata)&&R.metadata.mightSolveUserIssue===!0})},[u,M,l]);const g=p.useRef("idle"),[C,O]=p.useState(!1),k=p.useRef(Promise.resolve()),U=p.useRef(0),j=p.useRef(0),[L,V]=p.useState(0),[re,oe]=p.useState(!1),ce=p.useRef(re);ce.current=re;const[he,X]=p.useState([]),[Ie,me]=p.useState([]),[ge,z]=p.useState(null),J=p.useRef(null),ne=p.useCallback(S=>{J.current=S,z(S)},[]),se=p.useRef(null),$e=p.useRef(null),_e=p.useRef(w),ct=p.useRef(s),Fe=ct.current===s,ut=p.useRef(null),dt=p.useRef(null),jt=p.useRef(A),ye=p.useRef(w);ye.current=w;const We=p.useCallback((S,x)=>{const N=as(S.parts);if(!N||N.rowIds.length===0)return;const R=tt(S.parts);R.length!==0&&X($=>$.some(ee=>ee.turnId===N.turnId)?$:[...$,{key:x,turnId:N.turnId,rowIds:N.rowIds,items:R}])},[]),Lt=p.useCallback(S=>Z.buildSendMessageBody({config:c.current,input:S.input,uuid:S.retryUuid??S.userMessage.id,sessionId:S.sessionId,content:S.userMessage.content,initialMessages:S.initialMessages,sendsPageContext:t.features.pageContext}),[t]);p.useEffect(()=>{const S=jt.current;jt.current=A;const x=ct.current;if(x===s)return;if(ct.current=s,x===null){X([]);return}const N=ye.current==="submitted"||ye.current==="streaming"||_e.current==="submitted"||_e.current==="streaming"||g.current==="in-flight";j.current+=1,U.current=0,k.current=Promise.resolve(),f.current=new ts(is),g.current="idle",O(!1),$e.current=null,se.current=null,m(null),b.current=!1,dt.current=null,ut.current=w==="submitted"||w==="streaming"?w:null,_e.current="ready",ye.current="ready",I(),V(R=>R+1),oe(!1),X([]),ne(null),N&&Promise.resolve().then(()=>S()).catch(R=>{Z.log.error("agent chat client stream cancel failed",R)})},[s,w,A,I,ne]),p.useEffect(()=>{var $,ee;const S=ut.current;if(S!==null&&w===S){_e.current="ready";return}ut.current=null;const x=_e.current;if(_e.current=w,(w==="submitted"||w==="streaming")&&(x!=="submitted"&&x!=="streaming"&&J.current===null&&ne(`turn-resumed-${Z.genUuid()}`),oe(!0)),w==="streaming"){const B=($=$e.current)==null?void 0:$.userMessage.id;B&&l.markUserMessageDelivered(B);return}if(w!=="ready"&&w!=="error")return;if(x==="streaming"||x==="submitted"||g.current==="in-flight"&&(u==null?void 0:u.messages)===y.current){oe(!0),g.current==="in-flight"&&(g.current="idle");const B=y.current.at(-1),be=J.current;if(se.current=be,be!==null&&B&&B.role==="assistant"&&We(B,be),w==="ready"){const Se=(ee=$e.current)==null?void 0:ee.userMessage.id;Se&&l.markUserMessageDelivered(Se)}g.current==="stopping"||(s?(g.current="reconciling",t.reconcileAfterStream(s).catch(Se=>{Z.log.error("agent chat post-turn reconcile failed",Se)}).finally(()=>{g.current==="reconciling"&&(g.current="idle"),V(Se=>Se+1)})):oe(!1))}if(g.current!=="idle"||!s||ce.current&&w!=="error")return;const R=f.current.dequeueNext();R&&(g.current="in-flight",O(!1),$e.current=R,m(null),b.current=!1,ne(`turn-${R.userMessage.id}`),l.appendUserMessageIfAbsent(R.userMessage),V(B=>B+1),T({text:R.userMessage.content},{body:Lt(R)}))},[w,s,L,T,l,t,Lt,We,ne,u]);const $t=p.useCallback(S=>{const x=j.current;U.current++;const R=k.current.then(async()=>{if(x!==j.current)return;const $=g.current,B=ye.current==="submitted"||ye.current==="streaming"||$!=="idle"||ce.current||f.current.size>0?Za(l.buildQueuedUserMessage(S)):await l.stageUserTurn(S,{pending:!0});if(!B||x!==j.current)return;const be={...B,input:S};if(!f.current.enqueue(be)){Z.log.warn("agent chat queue full; rejecting newest send",{rejectedMessageId:be.userMessage.id});return}V(Se=>Se+1),l.notifySendAccepted(S)}).finally(()=>{x===j.current&&U.current--});return k.current=R.then(()=>{},()=>{}),R},[l]),sr=p.useCallback(()=>{const S=$e.current;if(!S)return;if(!f.current.enqueue({...S,retryUuid:Z.genUuid()})){Z.log.warn("agent chat queue full; retry not enqueued");return}I(),V(N=>N+1)},[I]),rr=p.useCallback(S=>{f.current.removeWhere(N=>N.userMessage.id===S)&&V(N=>N+1)},[]),nr=p.useCallback(()=>{g.current="stopping",O(!0),b.current=!1;const S=j.current;Fa({api:n,sessionId:s,chatStop:A}).then(()=>{S===j.current&&(b.current=!0)}).catch(x=>{Z.log.error("agent chat stop failed",x)}).then(()=>{if(S===j.current){if(!s){oe(!1);return}return t.reconcileAfterStream(s).catch(x=>{Z.log.error("agent chat post-stop reconcile failed",x)})}}).finally(()=>{S===j.current&&(g.current="idle",V(x=>x+1))})},[n,s,A,t]);p.useEffect(()=>{const S={send:$t,hasPendingWork:()=>U.current>0||ce.current||f.current.size>0||g.current!=="idle"||ye.current==="submitted"||ye.current==="streaming"};return l.registerAgentHandlers(S),()=>l.unregisterAgentHandlers(S)},[l,$t]);const Be=(Ft=e.presentation)==null?void 0:Ft.toolActivity,Je=(Ut=e.presentation)==null?void 0:Ut.reasoning;p.useEffect(()=>me([]),[s]),p.useEffect(()=>{var $,ee;if(!s)return;const S=Be===void 0&&Je===void 0?void 0:{toolActivity:Be,reasoning:Je},x=dt.current,N=(x==null?void 0:x.sessionId)===s&&((($=x.presentation)==null?void 0:$.toolActivity)!==Be||((ee=x.presentation)==null?void 0:ee.reasoning)!==Je);dt.current={sessionId:s,presentation:S};let R=!1;return(async()=>{try{const B=S===void 0?await n.getAgentTurnMessages(s):await n.getAgentTurnMessages(s,S);if(!B||R)return;me(B.handled_connection_request_ids),X(be=>ka({existing:be,fetched:B,refreshItems:N}))}catch(B){Z.log.error("agent chat turn sources fetch failed",B)}})(),()=>{R=!0}},[s,n,Be,Je]);const[pt,ar]=p.useState(()=>new Set),He=p.useRef(pt),ft=p.useRef(new Set),Ke=p.useMemo(()=>{if(C||w!=="streaming"&&w!=="submitted")return[];const S=M.at(-1);if(!S||S.role!=="assistant")return[];const x=[];for(const N of S.parts){if(!le(N))continue;const R=Qn(N),$=R===Ua?"highlight-element":R===za?"act-on-page":null;$&&N.state==="input-available"&&x.push({key:`${s??"pending"}:${N.toolCallId}`,type:$,input:N.input,callId:N.toolCallId})}return x},[M,s,w,C]),ir=p.useMemo(()=>Ke.filter(S=>d&&v&&(S.type!=="act-on-page"||h)&&!pt.has(S.key)),[Ke,d,v,h,pt]),mt=p.useCallback((S,x,N,R)=>{if(!s)return;const $=`${s}:${S}`;if(He.current.has($))return;ft.current.delete($);const ee=new Set(He.current);if(ee.add($),ee.size>200){const B=ee.values().next().value;B!==void 0&&ee.delete(B)}He.current=ee,ar(ee),n.sendPageReply(s,{callId:S,outcome:x,...N?{detail:N}:{},...t.features.pageContext&&R?{controls:R.controls,truncated:R.truncated}:{}})},[n,s,t]),[or,gt]=p.useState(null),ve=p.useRef(new Map),lr=p.useCallback(S=>new Promise(x=>{const N=`${s??"pending"}:${S.callId}`;if(He.current.has(N)){x(!1);return}ft.current.add(N),ve.current.forEach(R=>R(!1)),ve.current.clear(),ve.current.set(S.callId,x),gt(S)}),[s]),ht=p.useCallback((S,x)=>{const N=ve.current.get(S);ve.current.delete(S),gt(R=>(R==null?void 0:R.callId)===S?null:R),N==null||N(x)},[]);p.useEffect(()=>{for(const S of Ke)d&&v&&(S.type!=="act-on-page"||h)||(ht(S.callId,!1),ft.current.has(S.key)||mt(S.callId,"declined"))},[Ke,d,v,h,ht,mt]);const ue=w==="submitted"||w==="streaming";p.useEffect(()=>()=>{ve.current.forEach(S=>S(!1)),ve.current.clear()},[s]),p.useEffect(()=>{if(ue&&!C)return;const S=ve.current;S.size!==0&&(S.forEach(x=>x(!1)),S.clear(),gt(null))},[ue,C]),p.useEffect(()=>{if(ue)return;const S=se.current;if(S===null)return;const x=M.at(-1);x&&x.role==="assistant"&&We(x,S)},[M,ue,We]);const yt=p.useCallback(()=>{s&&(ue||E===void 0&&!re||o())},[s,ue,re,E,o]);p.useEffect(()=>$a(yt),[yt]),p.useEffect(()=>{if(ue||!re)return;const S=()=>{oe(!1),V(R=>R+1),J.current===se.current&&ne(null),se.current=null};if(J.current===se.current&&(u==null?void 0:u.messages)===M&&!u.isError&&!u.isDisconnect&&(!u.isAbort||b.current)&&!tt(u.message.parts).some(R=>R.kind!=="steps")){const R=r.findLast($=>$.type==="USER");R&&l.state.setPartial({settledAgentUserMessageId:R.id}),S();return}if(u&&u.messages!==M)return;const x=M.at(-1),N=(x==null?void 0:x.role)==="assistant"?as(x.parts):null;if(N&&N.rowIds.length>0){const R=new Set(r.map($=>$.id));N.rowIds.every($=>R.has($))&&S();return}for(let R=r.length-1;R>=0;R-=1){const $=r[R];if($){if($.type==="USER")return;if(!($.type!=="AI"&&$.type!=="AGENT")){S();return}}}},[ue,re,r,ne,u,M,l,L]);const Oe=Z.resolveClientPresentation(t.agent.presentation,e.presentation),Ge=Oe==null?void 0:Oe.toolActivity,Ye=Oe==null?void 0:Oe.reasoning,cr=p.useMemo(()=>{if(!Fe||ge===null||w==="submitted"||!ue&&!re)return[];const S=M.at(-1);return!S||S.role!=="assistant"?[]:Tt(tt(S.parts),{toolActivity:Ge,reasoning:Ye})},[M,w,ue,re,Ge,Ye,Fe,ge]),ur=p.useMemo(()=>Fe?he.flatMap(S=>{const x=Tt(S.items,{toolActivity:Ge,reasoning:Ye});return x.length===0?[]:[x===S.items?S:{...S,items:x}]}):[],[he,Ge,Ye,Fe]),dr=p.useMemo(()=>f.current.items.filter(S=>!S.input.background).map(S=>S.userMessage),[L]);return{isStreaming:ue,liveItems:cr,turnSources:ur,liveTurnKey:ge,turnFailed:E!==void 0,retryFailedTurn:sr,resumeInterruptedTurn:yt,queuedUserMessages:dr,removeQueued:rr,stop:nr,pageEffects:ir,replyToPageCall:mt,pendingPageAction:or,requestPageActionConsent:lr,resolvePageAction:ht,handledConnectionRequestIds:Ie,sourceSessionId:Fe?s:null}}function Za(t){return t?{...t,initialMessages:[]}:null}const os=2e3,ls=6e5,Va=1e4,ot=p.createContext(null),Wa=(t,e)=>e==="dismiss"?{content:`Continue without connecting ${t.name}.`,connectionRequestId:t.request_id}:e==="renew"?{background:!0,connectionRequestId:t.request_id,content:`The connection request for ${t.name} expired. Please create a new authorized connection request for ${t.name} and continue my previous request.`}:e==="external"?{background:!0,connectionRequestId:t.request_id,content:`I returned from setting up ${t.name}. Please try its tools again and continue my previous request.`}:{background:!0,connectionRequestId:t.request_id,content:`The connection to ${t.name} is ready. Please use its tools to continue my previous request.`};function Ba({children:t,request:e,widgetCtx:s,onHandled:r}){const[n,l]=p.useState("idle"),[c,d]=p.useState(null),[v,h]=p.useState(null),[i,u]=p.useState(null),m=p.useRef(new AbortController),b=p.useRef(null),_=p.useRef(new Set),w=p.useRef(null),M=p.useRef(null),T=p.useRef(null),A=p.useRef(!0),E=p.useRef((e==null?void 0:e.request_id)??null);E.current=(e==null?void 0:e.request_id)??null;const I=p.useCallback(()=>{var k;m.current.abort(),(k=b.current)==null||k.close(),b.current=null},[]);p.useEffect(()=>(I(),T.current=null,M.current=null,w.current=null,l("idle"),d(null),h(null),u(null),I),[I,e==null?void 0:e.request_id,e==null?void 0:e.server_id,s]),p.useEffect(()=>(A.current=!0,()=>{A.current=!1,I()}),[I]);const o=p.useCallback(async k=>{if(!e)return;const U=e.request_id;if(_.current.has(U))return;_.current.add(U),w.current=k,h(k),u(null);let j=!1;try{await s.messageCtx.sendMessage({...Wa(e,k),onAccepted:()=>{j=!0,r(e.request_id)}}),A.current&&E.current===U&&!j&&u(k==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}catch{A.current&&E.current===U&&u(k==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}finally{_.current.delete(U),A.current&&E.current===U&&h(null)}},[r,e,s]),y=p.useCallback(async()=>{var U,j;if(!e)return;I(),T.current=e.request_id,m.current=new AbortController;const{signal:k}=m.current;l("loading"),w.current=null,d(null),u(null);try{b.current=window.open("about:blank","_blank"),b.current&&(b.current.opener=null);const L=await s.api.startConnection(e.server_id,e.request_id,k);if(k.aborted)return;const V=new URL(L.authorization_url);if(!(V.protocol==="https:"||V.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(V.hostname))||V.username||V.password)throw new Error("Invalid connection page");d({url:V.href,host:V.host,completion:L.completion,...L.completion==="oauth"?{attemptId:L.attempt_id}:{}}),M.current=Date.now()+ls,(U=b.current)!=null&&U.closed?(b.current=null,l("ready")):b.current?(b.current.location.replace(V.href),l("waiting")):l("ready")}catch(L){if(k.aborted)return;if((j=b.current)==null||j.close(),b.current=null,d(null),l("idle"),L instanceof Z.ConnectionRequestExpiredError){await o("renew");return}u(L instanceof Error?L.message:"Could not start the connection.")}},[I,e,o,s]);p.useEffect(()=>{if(n!=="waiting"&&n!=="ready"||!c||!e)return;const k=new AbortController;let U;const j=M.current??Date.now()+ls;M.current=j;let L=0,V=document.hidden||!document.hasFocus(),re=!1;const oe=()=>{V=!0},ce=()=>{V&&(re=!0)},he=()=>document.hidden?oe():ce();window.addEventListener("blur",oe),window.addEventListener("focus",ce),document.addEventListener("visibilitychange",he);const X=z=>{var J;k.abort(),(J=b.current)==null||J.close(),b.current=null,u(z),l("idle")},Ie=setTimeout(()=>X("Connection timed out. Try again."),Math.max(0,j-Date.now())),me=(z=os)=>{U=setTimeout(ge,z)},ge=async()=>{var z,J,ne;if(Date.now()>=j){X("Connection timed out. Try again.");return}if(c.completion==="external"){if(n==="waiting"&&((z=b.current)!=null&&z.closed||re)){l("external");return}me();return}if(!c.attemptId){X("Could not read the connection attempt. Try again.");return}try{const se=await s.api.getConnectionAttempt(e.server_id,c.attemptId,k.signal);if(k.signal.aborted)return;if(L=0,se==="connected"){(J=b.current)==null||J.close(),b.current=null,l("connected");return}if(se==="canceled"){X("Connection was canceled. Try again.");return}if(se==="failed"){X("Connection approval failed. Try again.");return}if(se==="expired"){X("Connection attempt expired. Try again.");return}(ne=b.current)!=null&&ne.closed&&(b.current=null,l("ready")),me()}catch(se){if(k.signal.aborted)return;if(se instanceof Z.ConnectionAttemptUnavailableError){X(se.message);return}L+=1,me(Math.min(os*2**(L-1),Va))}};return ge(),()=>{k.abort(),U&&clearTimeout(U),Ie&&clearTimeout(Ie),window.removeEventListener("blur",oe),window.removeEventListener("focus",ce),document.removeEventListener("visibilitychange",he)}},[c,n,e,s]),p.useEffect(()=>{n!=="connected"&&n!=="external"||T.current!==(e==null?void 0:e.request_id)||o(n==="external"?"external":"resume")},[n,e==null?void 0:e.request_id,o]);const f=p.useCallback(()=>l("waiting"),[]),g=p.useCallback(async()=>{I(),d(null),l("idle"),await o("dismiss")},[I,o]),C=p.useCallback(async()=>{const k=w.current;if(k){await o(k);return}await y()},[o,y]),O=p.useMemo(()=>e?{request:e,phase:n,authorization:c,continuation:v,error:i,start:y,opened:f,cancel:g,retryContinuation:C}:null,[c,g,v,i,f,n,e,C,y]);return p.createElement(ot.Provider,{value:O},t)}function Ja({children:t,connection:e}){return p.createElement(ot.Provider,{value:e},t)}function Ha(){return p.useContext(ot)}function Ka(t){const e=p.useContext(ot);if(!e||e.request.request_id!==t.request_id)throw new Error("useConnection must be used for the active ConnectionAttemptProvider request");return e}const Ot={isStreaming:!1,liveItems:[],turnSources:[],liveTurnKey:null,turnFailed:!1,retryFailedTurn:()=>{},resumeInterruptedTurn:()=>{},queuedUserMessages:[],removeQueued:()=>{},stop:()=>{},pageEffects:[],pendingPageAction:null,resolvePageAction:()=>{},requestPageActionConsent:async()=>!1,replyToPageCall:()=>{},pendingClarification:null,pendingConnection:null},lt=p.createContext(null);function Nt(){return p.useContext(lt)??Ot}function Ga({children:t,widgetCtx:e,config:s}){var ce,he,X,Ie,me,ge;const r=W(e.sessionCtx.sessionState),n=W(e.messageCtx.state),{isStreaming:l,liveItems:c,turnSources:d,liveTurnKey:v,turnFailed:h,retryFailedTurn:i,resumeInterruptedTurn:u,queuedUserMessages:m,removeQueued:b,stop:_,pageEffects:w,replyToPageCall:M,pendingPageAction:T,requestPageActionConsent:A,resolvePageAction:E,handledConnectionRequestIds:I,sourceSessionId:o}=qa({widgetCtx:e,config:s,sessionId:((ce=r.session)==null?void 0:ce.id)??null,persistedMessages:n.messages}),y=((he=n.messages.at(-1))==null?void 0:he.type)==="USER",f=p.useRef(new Set),g=p.useRef(((X=r.session)==null?void 0:X.id)??null),C=((Ie=r.session)==null?void 0:Ie.id)??null;g.current!==C&&(g.current=C,f.current.clear()),I.forEach(z=>f.current.add(z));const O=(me=[...d.flatMap(z=>z.items),...c].findLast(z=>z.kind==="connection"&&!f.current.has(z.request.request_id)))==null?void 0:me.request,[k,U]=p.useState({sessionId:C,request:null}),j=((ge=s.capabilities)==null?void 0:ge.connections)===!0,L=j&&C!==null&&k.sessionId===C?k.request:null;p.useEffect(()=>{!j||C===null||o!==C||U(z=>{const J=z.sessionId===C&&z.request&&!f.current.has(z.request.request_id)?z.request:O??null;return z.sessionId===C&&z.request===J?z:{sessionId:C,request:J}})},[C,o,O,I,j,L]);const V=p.useCallback(z=>{f.current.add(z),U(J=>{var ne;return((ne=J.request)==null?void 0:ne.request_id)===z?{...J,request:null}:J})},[]),re=p.useMemo(()=>({isStreaming:l,liveItems:c,turnSources:d,liveTurnKey:v,turnFailed:h,retryFailedTurn:i,resumeInterruptedTurn:u,queuedUserMessages:m,removeQueued:b,stop:_,pageEffects:w,replyToPageCall:M,pendingPageAction:T,requestPageActionConsent:A,resolvePageAction:E,pendingConnection:L,pendingClarification:mr({turnSources:d,liveItems:c,isStreaming:l,lastMessageIsFromUser:y})}),[l,c,d,v,h,i,u,m,b,_,w,M,T,A,E,y,L]),oe=p.createElement(lt.Provider,{value:re},t);return p.createElement(Ba,{request:L,widgetCtx:e,onHandled:V},oe)}function Ws({children:t,widgetCtx:e,config:s}){return W(e.messageCtx.state),e.streaming?p.createElement(Ga,{widgetCtx:e,config:s},t):p.createElement(lt.Provider,{value:Ot},t)}class Ya{constructor(e){this.root=e,this.nextId=1,this.mountVersion=0,this.disposed=!1,this.mount=()=>{const r=++this.mountVersion;this.root.routerCtx.navigateConversation=this.open;const n=this.state.get().chats.find(l=>l.id===this.state.get().activeId);return n.ctx===this.root?this.root.sessionCtx.restoreActiveSessionTracking():this.root.sessionCtx.trackActiveSession(n.ctx.sessionCtx),()=>{queueMicrotask(()=>{this.mountVersion===r&&this.dispose()})}},this.dispose=()=>{if(!this.disposed){this.disposed=!0,this.root.routerCtx.navigateConversation===this.open&&(this.root.routerCtx.navigateConversation=void 0,this.root.sessionCtx.restoreActiveSessionTracking());for(const r of this.state.get().chats)r.ctx!==this.root&&r.ctx.releaseConversation();this.state.set({chats:[],activeId:0})}},this.select=r=>{if(this.disposed)return;const n=this.state.get().chats.find(l=>l.id===r);n&&(n.ctx.routerCtx.navigateConversation=this.open,n.ctx.routerCtx.state.setPartial({screen:n.ctx.contactCtx.shouldCollectData()?"welcome":"chat"}),this.root.sessionCtx.trackActiveSession(n.ctx.sessionCtx),this.state.setPartial({activeId:r,chats:this.state.get().chats.map(l=>l.id===r?{...l,closed:!1}:l)}))},this.close=r=>{if(this.disposed)return;const{chats:n,activeId:l}=this.state.get(),c=n.findIndex(u=>u.id===r&&!u.closed),d=n[c];if(!d)return;const v=this.isWorking(d),h=v?n.map(u=>u.id===r?{...u,closed:!0}:u):n.filter(u=>u.id!==r);let i=h.find(u=>u.id===l&&!u.closed)??h.slice(0,c).reverse().find(u=>!u.closed)??h.find(u=>!u.closed);i||(i=this.makeChat(this.root.createConversation()),h.push(i)),i.ctx.routerCtx.navigateConversation=this.open,this.root.sessionCtx.trackActiveSession(i.ctx.sessionCtx),this.state.set({chats:h,activeId:i.id}),v||this.releaseChat(d)},this.canCreateChat=()=>!this.disposed&&(!this.root.config.oneOpenSessionAllowed||!this.state.get().chats.some(({ctx:r})=>{const{session:n,isCreatingSession:l}=r.sessionCtx.sessionState.get();return(n==null?void 0:n.isOpened)||l})&&!this.root.sessionCtx.sessionsState.get().data.some(r=>r.isOpened)),this.open=r=>{var v,h,i,u;if(this.disposed)return;const{chats:n}=this.state.get();if(!r&&!this.canCreateChat())return;const l=r?n.find(({ctx:m})=>{var b;return((b=m.sessionCtx.sessionState.get().session)==null?void 0:b.id)===r}):n.find(m=>this.isEmpty(m));if(l)return this.select(l.id),(h=(v=this.root.config.hooks)==null?void 0:v.onNavigateToChat)==null||h.call(v,{session:l.ctx.sessionCtx.sessionState.get().session??void 0}),l.ctx;const c=r?this.root.sessionCtx.sessionsState.get().data.find(m=>m.id===r):void 0;if(r&&!c)return;const d=n.find(m=>this.isEmpty(m))??this.makeChat(this.root.createConversation());return c&&(n.includes(d)&&d.ctx.resetChat(),d.ctx.sessionCtx.sessionState.setPartial({session:c})),n.includes(d)||this.state.setPartial({chats:[...n,d]}),this.select(d.id),(u=(i=this.root.config.hooks)==null?void 0:i.onNavigateToChat)==null||u.call(i,{session:c}),d.ctx},this.update=(r,n)=>{const l=this.state.get().chats.find(d=>d.id===r);if(!l)return;const c={...l,...n};if(c.closed&&!this.isWorking(c)){this.state.setPartial({chats:this.state.get().chats.filter(d=>d.id!==r)}),this.releaseChat(c);return}c.title===l.title&&c.working===l.working&&c.hasSession===l.hasSession&&c.hasDraft===l.hasDraft&&c.ui===l.ui&&c.connection===l.connection||this.state.setPartial({chats:this.state.get().chats.map(d=>d.id===r?{...d,...n}:d)})};const s=this.makeChat(e);this.state=new Z.PrimitiveState({chats:[s],activeId:s.id})}makeChat(e){return{id:this.nextId++,ctx:e,title:"",working:!1,hasSession:!1,hasDraft:!1,ui:Ot,connection:null}}releaseChat(e){e.ctx===this.root?e.ctx.resetChat():e.ctx.releaseConversation()}isWorking(e){return e.ui.isStreaming||e.ctx.messageCtx.state.get().isSendingMessage||e.ctx.sessionCtx.sessionState.get().isCreatingSession}isEmpty(e){const{session:s}=e.ctx.sessionCtx.sessionState.get(),{text:r,mentions:n}=e.ctx.messageCtx.draftState.get();return!e.closed&&!s&&!this.isWorking(e)&&!e.ctx.messageCtx.state.get().messages.length&&!r&&!n.length&&!e.ctx.uploadCtx.state.get().length}}const Bs=p.createContext(null),Qa=new Z.PrimitiveState({chats:[],activeId:0});function Js(){const t=p.useContext(Bs),e=W((t==null?void 0:t.state)??Qa),s=e.chats.filter(n=>!n.closed),r=s.filter(n=>n.hasSession||n.working||n.hasDraft||n.title);return{workspace:t,chats:s,openChats:r,activeId:e.activeId}}function Xa(){const{workspace:t,...e}=Js();if(!t)throw new Error("Companion chats require a conversation workspace");return{...e,selectChat:t.select,closeChat:t.close,newChat:t.open}}function ei({chatId:t,ctx:e,workspace:s}){const r=Nt(),n=Ha(),l=W(e.messageCtx.state),c=W(e.sessionCtx.sessionState),d=W(e.messageCtx.draftState),v=W(e.uploadCtx.state),h=l.messages.find(_=>_.type==="USER"),i=(h==null?void 0:h.type)==="USER"?h.content.slice(0,60):"",u=r.isStreaming||l.isSendingMessage||c.isCreatingSession,m=!!c.session,b=!!d.text||d.mentions.length>0||v.length>0;return p.useEffect(()=>s.update(t,{title:i,working:u,hasSession:m,hasDraft:b,ui:r,connection:n}),[s,t,i,u,m,b,r,n]),null}const ti=p.memo(function({chatId:e,ctx:s,config:r,workspace:n}){return p.createElement(Ws,{widgetCtx:s,config:r},p.createElement(ei,{chatId:e,ctx:s,workspace:n}))});function si({widgetCtx:t,config:e=t.config,children:s}){const r=p.useMemo(()=>new Ya(t),[t]);p.useEffect(()=>r.mount(),[r]);const{chats:n,activeId:l}=W(r.state),c=n.find(v=>v.id===l),d=p.useMemo(()=>n.map(v=>p.createElement(ti,{key:v.id,chatId:v.id,ctx:v.ctx,config:e,workspace:r})),[n,e,r]);return p.createElement(Bs.Provider,{value:r},d,p.createElement(Ja,{connection:c.connection},p.createElement(lt.Provider,{value:c.ui},s(c.ctx))))}class ri{constructor(e){this.components=[];const{components:s}=e;if(s&&s.forEach(r=>this.register(r)),this.components.length===0)throw new Error("No components registered");if(!this.get("fallback"))throw new Error("No fallback component registered")}register(e){const s=this.components.findIndex(r=>r.key.toUpperCase()===e.key.toUpperCase());return s!==-1?this.components[s]=e:this.components.push(e),this}get(e){const s=this.components.find(r=>r.key.toUpperCase()===e.toUpperCase());return s||null}getComponent(e){var s;return(s=this.get(e))==null?void 0:s.component}}const cs=D.z.object({org_id:D.z.string(),contact:D.z.object({id:D.z.string(),verified:D.z.boolean()}),mcp_access:D.z.object({server_ids:D.z.array(D.z.string()),account_id:D.z.string().optional()}).optional()}),ni=D.z.union([D.z.object({sub:D.z.object({type:D.z.literal("widget-contact"),payload:cs})}).transform(({sub:t})=>t.payload),cs]),ai=t=>{const e=t.split(".")[1];if(!e)return null;try{const s=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-s.length%4)%4),n=Uint8Array.from(atob(`${s}${r}`),l=>l.charCodeAt(0));return JSON.parse(new TextDecoder().decode(n))}catch{return null}},ii=t=>{var n,l;const e=t.user,s=e==null?void 0:e.token;if(!s)return JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:(e==null?void 0:e.externalId)??null,verifiedOwner:null});const r=ni.safeParse(ai(s));return r.success?JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:e.externalId??null,verifiedOwner:{orgId:r.data.org_id,contactId:r.data.contact.id,verified:r.data.contact.verified,accountId:((n=r.data.mcp_access)==null?void 0:n.account_id)??null,serverIds:[...((l=r.data.mcp_access)==null?void 0:l.server_ids)??[]].sort()}}):JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:e.externalId??null,opaqueToken:s})},Hs=p.createContext(null);function oi({options:t,children:e,components:s,storage:r,loadingComponent:n,errorComponent:l}){var T;const c=p.useRef(Promise.resolve()),d=p.useRef(t);d.current=t;const v=ii(t),h=p.useRef(null),i=p.useRef(null),u=p.useRef(null),[m,b]=p.useState({status:"loading"}),_=p.useMemo(()=>new ri({components:s}),[s]);if(p.useEffect(()=>{var I,o,y;if(((I=u.current)==null?void 0:I.identity)!==v){const f=(o=u.current)==null?void 0:o.widgetCtx.dispose({clearActiveSession:!0});c.current=Promise.all([c.current,f]).then(()=>{}),u.current=null}((y=i.current)==null?void 0:y.identity)!==v&&(b({status:"loading"}),i.current={identity:v,request:c.current.then(()=>Z.WidgetCtx.initialize({config:t,storage:r,getClientCapabilities:()=>d.current.capabilities,getRequestConfig:()=>d.current}))});const A=i.current.request,E=i.current.identity;A.then(f=>{var g;if(((g=i.current)==null?void 0:g.request)!==A){f.dispose();return}u.current={identity:E,widgetCtx:f},b({status:"ready",identity:E,widgetCtx:f})},f=>{var C;if(((C=i.current)==null?void 0:C.request)!==A)return;const g=f instanceof Error?f:new Error("Widget initialization failed",{cause:f});Z.log.error("widget initialization failed",g),b({status:"error",identity:E,error:g})})},[v,t,r]),p.useEffect(()=>()=>{var A;i.current=null,(A=u.current)==null||A.widgetCtx.dispose(),u.current=null},[]),p.useLayoutEffect(()=>{var A;m.status!=="ready"||m.identity!==v||(A=t.user)!=null&&A.token&&m.widgetCtx.api.setAuthToken(t.user.token)},[(T=t.user)==null?void 0:T.token,v,m]),m.status==="loading"||"identity"in m&&m.identity!==v)return n?p.createElement(p.Fragment,null,n):null;if(m.status==="error")return l?p.createElement(p.Fragment,null,l(m.error)):null;const{widgetCtx:w}=m,M=(A,E)=>p.createElement(Hs.Provider,{value:{widgetCtx:A,config:t,components:s,componentStore:_,version:fr,contentIframeRef:h}},E);return t.displayMode==="companion"&&!t.inline?p.createElement(si,{widgetCtx:w,config:t},A=>M(A,e)):M(w,p.createElement(Ws,{key:v,widgetCtx:w,config:t},e))}function Q(){const t=p.useContext(Hs);if(!t)throw new Error("useWidget must be used within a WidgetProvider");return t}function li({liveItems:t,turnSources:e}){var r;const s=t.findLast(n=>n.kind==="plan");if(s)return s.plan;for(let n=e.length-1;n>=0;n--){const l=(r=e[n])==null?void 0:r.items.findLast(c=>c.kind==="plan");if(l)return l.plan}}function ci(){const{config:t,widgetCtx:e}=Q(),{name:s,avatarUrl:r}=e.agent,n=t.bot;return p.useMemo(()=>({isAi:!0,id:null,name:(n==null?void 0:n.name)??s,avatarUrl:(n==null?void 0:n.avatarUrl)??r,avatar:n==null?void 0:n.avatar}),[n==null?void 0:n.name,n==null?void 0:n.avatarUrl,n==null?void 0:n.avatar,s,r])}function Ve(){const{config:t}=Q();return t}function ui(){const{config:t}=Q();return t.displayMode??"popover"}function di(){const{widgetCtx:t}=Q();return{contactState:W(t.contactCtx.state),createUnverifiedContact:t.contactCtx.createUnverifiedContact}}function Ks(){const[t,e]=p.useState("ltr");return p.useEffect(()=>{const s=()=>{typeof document>"u"||e(window.getComputedStyle((window.top||window).document.body).direction)};s();const r=new MutationObserver(s);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),r.observe(document.body,{attributes:!0,attributeFilter:["dir"]}),window.addEventListener("languagechange",s),()=>{r.disconnect(),window.removeEventListener("languagechange",s)}},[]),{dir:t}}const pi=500,st="opencx:context-changed";function Gs(){if(typeof window>"u")return null;try{const t=window.top??window;return t.location.href,t}catch{return null}}function fi(t){const e=Gs();if(!e)return()=>{};const s=n=>{(n==null?void 0:n.type)===st&&(Ys+=1),t()};e.addEventListener("popstate",s),e.addEventListener("hashchange",s),e.addEventListener(st,s);const r=e.setInterval(s,pi);return()=>{e.removeEventListener("popstate",s),e.removeEventListener("hashchange",s),e.removeEventListener(st,s),e.clearInterval(r)}}let Ys=0;function mi(){var t;return`${Ys}|${((t=Gs())==null?void 0:t.location.href)??""}`}function gi(){return p.useSyncExternalStore(fi,mi,()=>"")}function Dt(){const{widgetCtx:t}=Q(),e=W(t.messageCtx.state),{isStreaming:s}=Nt();return{messagesState:s?{...e,isSendingMessage:!0,isSendingMessageToAI:!0}:e,sendMessage:t.messageCtx.sendMessage,rememberSentText:t.messageCtx.rememberSentText,getSentTextHistory:t.messageCtx.getSentTextHistory}}function kt(){var v;const{widgetCtx:t}=Q(),{oneOpenSessionAllowed:e}=Ve(),s=W(t.sessionCtx.sessionState),r=W(t.sessionCtx.sessionsState),{openSessions:n,closedSessions:l}=p.useMemo(()=>({openSessions:r.data.filter(h=>h.isOpened===!0),closedSessions:r.data.filter(h=>h.isOpened===!1)}),[r.data]),{workspace:c}=Js(),d=c?c.canCreateChat():!e||n.length===0&&!s.isCreatingSession&&!((v=s.session)!=null&&v.isOpened);return{sessionState:s,sessionsState:r,loadMoreSessions:t.sessionCtx.loadMoreSessions,resolveSession:t.sessionCtx.resolveSession,createStateCheckpoint:t.sessionCtx.createStateCheckpoint,openSessions:n,closedSessions:l,canCreateNewSession:d}}function hi(){var c,d;const{sessionState:t}=kt(),{messagesState:e}=Dt(),s=((c=t.session)==null?void 0:c.assignee.kind)==="ai",r=(d=e.messages)==null?void 0:d.at(-1),n=(r==null?void 0:r.type)==="USER"&&r.id!==e.settledAgentUserMessageId;return{isAwaitingBotReply:!!(e.isSendingMessageToAI||(s||t.isCreatingSession)&&(e.isSendingMessage||n))}}function Qs(){const{widgetCtx:t}=Q();return{routerState:W(t.routerCtx.state),toSessionsScreen:t.routerCtx.toSessionsScreen,toChatScreen:t.routerCtx.toChatScreen}}function yi(){const{widgetCtx:t}=Q(),{unreadSessionIds:e,count:s}=W(t.unreadCtx.state),r=p.useCallback(n=>e.includes(n),[e]);return{count:s,hasUnread:s>0,unreadSessionIds:e,isUnread:r}}const Xs=p.createContext(null);function vi({children:t}){const e=Ve(),[s,r]=p.useState(()=>e.inline?!0:e.isOpen??!1);return p.useEffect(()=>{r(n=>e.isOpen??n)},[e.isOpen]),p.useEffect(()=>{const n=e.openAfterNSeconds;if(typeof n!="number"||isNaN(n))return;const l=setTimeout(()=>r(!0),n*1e3);return()=>clearTimeout(l)},[e.openAfterNSeconds]),p.createElement(Xs.Provider,{value:{isOpen:s,setIsOpen:r}},t)}function er(){const t=p.useContext(Xs);if(!t)throw new Error("useWidgetTrigger must be used within a WidgetTriggerProvider");return t}const bi=t=>(document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)),Si=()=>document.visibilityState!=="hidden";function Ci({transcriptVisible:t=!0}={}){const{widgetCtx:e}=Q(),{isOpen:s}=er(),{routerState:r}=Qs(),{session:n}=W(e.sessionCtx.sessionState),{isInitialFetchLoading:l}=W(e.messageCtx.state),c=p.useSyncExternalStore(bi,Si,()=>!0),d=s&&c&&t&&r.screen==="chat"&&!l?(n==null?void 0:n.id)??null:null;p.useEffect(()=>{e.unreadCtx.setViewingSessionId(d)},[e,d]),p.useEffect(()=>()=>e.unreadCtx.setViewingSessionId(null),[e])}function Ei(){const{widgetCtx:{uploadCtx:t}}=Q(),e=W(t.state),s=p.useMemo(()=>e.filter(r=>r.status==="success"&&r.fileUrl),[e]);return{allFiles:e,appendFiles:t.appendFiles,handleCancelUpload:t.cancel,successFiles:s,emptyTheFiles:t.reset,getFileById:r=>e.find(n=>n.id===r),getUploadProgress:r=>{var n;return((n=e.find(l=>l.id===r))==null?void 0:n.progress)??0},getUploadStatus:r=>{var n;return(n=e.find(l=>l.id===r))==null?void 0:n.status},hasErrors:e.some(r=>r.status==="error"),isUploading:e.some(r=>r.status==="uploading")}}function Ii(t){return t!=="fullscreen"}const tr=p.createContext(null);function Ai({children:t}){var n,l;const{companion:e}=Ve(),{dir:s}=Ks(),{widgetCtx:r}=Q();return p.createElement(wi,{configuredDefaultLayout:e==null?void 0:e.defaultLayout,configuredLayouts:e==null?void 0:e.layouts,configuredSidebarSide:Z.resolveSidebarSide((n=e==null?void 0:e.sidebar)==null?void 0:n.side,s),configuredSidebarMode:Z.resolveSidebarMode((l=e==null?void 0:e.sidebar)==null?void 0:l.mode),storage:r.storageCtx},t)}function wi({configuredDefaultLayout:t,configuredLayouts:e,configuredSidebarSide:s,configuredSidebarMode:r,storage:n,children:l}){const c=Z.normalizeCompanionLayouts(e),d=Z.resolveCompanionDefaultLayout(t,c),v=c.join("|"),[h,i]=p.useState(d),[u,m]=p.useState({defaultLayout:d,allowedLayoutsKey:v});(u.defaultLayout!==d||u.allowedLayoutsKey!==v)&&(m({defaultLayout:d,allowedLayoutsKey:v}),(u.defaultLayout!==d||!c.includes(h))&&i(d));const b=g=>{i(C=>{const O=typeof g=="function"?g(C):g;return c.includes(O)?O:C})},_=p.useRef(c);_.current=c;const w=g=>{b(g),_.current.includes(g)&&Ii(g)&&(n==null||n.setCompanionLayout(g).catch(()=>{}))},[M,T]=p.useState(s),[A,E]=p.useState(r),[I,o]=p.useState({side:s,mode:r});(I.side!==s||I.mode!==r)&&(o({side:s,mode:r}),I.side!==s&&T(s),I.mode!==r&&E(r)),p.useEffect(()=>{if(!n)return;let g=!1;return n.getCompanionLayout().then(C=>{g||!C||_.current.includes(C)&&i(C)}).catch(()=>{}),n.getCompanionSidebarSide().then(C=>{!g&&C&&T(C)}).catch(()=>{}),n.getCompanionSidebarMode().then(C=>{!g&&C&&E(C)}).catch(()=>{}),()=>{g=!0}},[n]);const y=p.useCallback(g=>{T(g),n==null||n.setCompanionSidebarSide(g).catch(()=>{})},[n]),f=p.useCallback(g=>{E(g),n==null||n.setCompanionSidebarMode(g).catch(()=>{})},[n]);return p.createElement(tr.Provider,{value:{layout:h,setLayout:b,setLayoutPreference:w,allowedLayouts:c,defaultLayout:d,sidebarSide:M,setSidebarSide:y,sidebarMode:A,setSidebarMode:f}},l)}function xi(){const t=p.useContext(tr);if(!t)throw new Error("useWidgetLayout must be used within a WidgetLayoutProvider");return t}function Mi(){var d,v;const{widgetCtx:t}=Q(),{modesComponents:e}=Ve(),{sessionState:s}=kt(),r=t.modes,n=(d=s.session)==null?void 0:d.modeId,l=r.find(h=>h.id===n),c=(v=e==null?void 0:e.find(h=>{var i,u;return[(l==null?void 0:l.id)||"",((i=l==null?void 0:l.name)==null?void 0:i.toLowerCase())||"",((u=l==null?void 0:l.slug)==null?void 0:u.toLowerCase())||""].includes(h.key.toLowerCase())}))==null?void 0:v.component;return{modes:r,modesComponents:e,activeModeId:n,activeMode:l,Component:c}}function Ti(){const{widgetCtx:t}=Q(),{messagesState:{messages:e}}=Dt(),{csatRequestedMessage:s,isCsatRequested:r,csatSubmittedMessage:n,isCsatSubmitted:l,submittedScore:c,submittedFeedback:d}=p.useMemo(()=>{const v=e.find(i=>i.type==="SYSTEM"&&i.subtype==="csat_requested"),h=e.findLast(i=>i.type==="SYSTEM"&&i.subtype==="csat_submitted");return{csatRequestedMessage:v,isCsatRequested:!!v&&!h,csatSubmittedMessage:h,isCsatSubmitted:!!h,submittedScore:h==null?void 0:h.data.payload.score,submittedFeedback:h==null?void 0:h.data.payload.feedback}},[e]);return{submitCsat:t.csatCtx.submitCsat,csatRequestedMessage:s,isCsatRequested:r,csatSubmittedMessage:n,isCsatSubmitted:l,submittedScore:c,submittedFeedback:d}}function Ri(t){const{widgetCtx:e}=Q(),s=e.dictationCtx,r=W(s.state),n=p.useRef(t);n.current=t;const l=p.useCallback(()=>{s.start({getValue:()=>n.current.getValue(),setValue:d=>n.current.setValue(d),onSend:()=>{var d,v;return(v=(d=n.current).onSend)==null?void 0:v.call(d)}})},[s]),c=p.useCallback(()=>{s.isActive()?s.stop():l()},[s,l]);return p.useEffect(()=>()=>s.stop({executeFinalCommand:!1}),[s]),{enabled:e.features.dictation,status:r.status,error:r.error,isActive:r.status!=="idle",levelRef:s.levelRef,start:l,stop:s.stop,toggle:c,prewarm:s.prewarm}}function Pi(){const{widgetCtx:t}=Q(),e=t.messageCtx.draftState,s=W(e),r=p.useCallback(c=>{e.setPartial({text:typeof c=="function"?c(e.get().text):c})},[e]),n=p.useCallback(c=>{e.setPartial({mentions:typeof c=="function"?c(e.get().mentions):c})},[e]),l=p.useCallback((c=s)=>e.get()!==c?!1:(e.reset(),!0),[e,s]);return{...s,setText:r,setMentions:n,clearSubmitted:l}}exports.HOST_CONTEXT_CHANGED_EVENT=st;exports.WidgetLayoutProvider=Ai;exports.WidgetProvider=oi;exports.WidgetTriggerProvider=vi;exports.applyPresentation=Tt;exports.formatAskQuestionsAnswers=wa;exports.sessionPlan=li;exports.useAgentChatUi=Nt;exports.useBot=ci;exports.useCompanionChats=Xa;exports.useComposerDraft=Pi;exports.useConfig=Ve;exports.useConnection=Ka;exports.useContact=di;exports.useCsat=Ti;exports.useDictation=Ri;exports.useDisplayMode=ui;exports.useDocumentDir=Ks;exports.useHostLocation=gi;exports.useIsAwaitingBotReply=hi;exports.useMessages=Dt;exports.useModes=Mi;exports.usePrimitiveState=W;exports.useSessions=kt;exports.useUnread=yi;exports.useUnreadViewing=Ci;exports.useUploadFiles=Ei;exports.useWidget=Q;exports.useWidgetLayout=xi;exports.useWidgetRouter=Qs;exports.useWidgetTrigger=er;
23
+ `)}const Ta=k.z.object({request_id:k.z.string().uuid(),server_id:k.z.string().uuid(),name:k.z.string().min(1).max(120)}),Ra=k.z.object({connection_required:Ta}),as="data-spec",Pa=k.z.object({label:k.z.string(),done:k.z.boolean()}),_a=k.z.object({plan:k.z.array(k.z.object({step:k.z.string(),status:k.z.enum(["pending","in_progress","completed"])}))});function nt(t){const e=[],s=c=>{const d=e.at(-1);(d==null?void 0:d.kind)==="steps"?d.steps.push(c):e.push({kind:"steps",steps:[c]})},r=c=>c==="output-available"||c==="output-error";let n=null,l;for(const c of t)if(!q.isAgentStreamKeepalive(c)&&Bs(c)!=="highlight_element"){if(c.state==="output-available"&&(c.type==="dynamic-tool"||c.type.startsWith("tool-"))){const d=Ra.safeParse(c.output);if(d.success){e.push({kind:"connection",request:d.data.connection_required});continue}}if(Oa(c)){const d=Na(c);d&&e.push(d);continue}if(c.type==="data-plan"){const d=_a.safeParse(c.data);d.success&&(l?l.plan=d.data.plan:(l={kind:"plan",plan:d.data.plan},e.push(l)))}else if(c.type==="data-tool-activity"){const d=Pa.safeParse(c.data);d.success&&s({kind:"tool",label:d.data.label,done:d.data.done})}else if(c.type===as)n||(n={kind:"spec",parts:[]},e.push(n)),n.parts.push({type:as,data:c.data});else if(c.type==="text"){const d=typeof c.text=="string"?c.text:"";d.trim().length>0&&e.push({kind:"text",text:d,...c.state==="streaming"?{streaming:!0}:{}})}else c.type==="reasoning"?s({kind:"reasoning",label:typeof c.text=="string"?c.text:"",done:c.state!=="streaming"}):c.type==="dynamic-tool"?s({kind:"tool",label:typeof c.toolName=="string"?c.toolName:"tool",done:r(c.state),...is(c)}):c.type.startsWith("tool-")&&s({kind:"tool",label:c.type.slice(5),done:r(c.state),...is(c)})}return e}function Bs(t){return t.type==="dynamic-tool"?typeof t.toolName=="string"?t.toolName:void 0:t.type.startsWith("tool-")?t.type.slice(5):void 0}function Oa(t){return Ea(Bs(t))}function Na(t){const e=typeof t.toolCallId=="string"?t.toolCallId:void 0,s=ns(t.output,e)??ns(t.input,e);return s?{kind:"questions",request:s}:null}function is(t){return{...t.input===void 0?{}:{input:t.input},...t.output===void 0?{}:{output:t.output}}}function ka(t,e){const s=[];return e!=null&&e.toolActivity&&s.push(`toolActivity=${encodeURIComponent(e.toolActivity)}`),(e==null?void 0:e.reasoning)!==void 0&&s.push(`reasoning=${String(e.reasoning)}`),s.length===0?t:`${t}${t.includes("?")?"&":"?"}${s.join("&")}`}function Da(t){return({id:e})=>({api:t.reconnectApi(e),headers:t.headers()})}function ja(t){return new Nt({api:t.api,headers:()=>t.headers(),fetch:t.fetch,prepareSendMessagesRequest:({body:e})=>({body:e??{}}),prepareReconnectToStreamRequest:Da(t)})}function La({existing:t,fetched:e,refreshItems:s=!1}){const r=new Map(t.map(d=>[d.turnId,d])),n=new Set,l=[];for(const d of e.turns){if(n.add(d.turn_id),d.message_uuids.length===0)continue;const v=r.get(d.turn_id);if(v&&!s){$a(v.rowIds,d.message_uuids)?l.push(v):l.push({...v,rowIds:d.message_uuids});continue}if(d.ui_parts!==null){const g=nt(d.ui_parts);if(g.length===0)continue;l.push({key:(v==null?void 0:v.key)??`turn-${d.turn_id}`,turnId:d.turn_id,rowIds:d.message_uuids,items:g})}}for(const d of t)n.has(d.turnId)||l.push(d);return l.length===t.length&&l.every((d,v)=>d===t[v])?t:l}const $a=(t,e)=>t.length===e.length&&t.every((s,r)=>s===e[r]),Fa=t=>Array.isArray(t)&&t.every(e=>typeof e=="string");function os(t){for(const e of t){if(e.type!=="data-turn-settled")continue;const s=e.data;return!q.isRecord(s)||typeof s.turn_id!="string"||!Fa(s.message_uuids)?null:{turnId:s.turn_id,rowIds:s.message_uuids}}return null}function Ua(t){if(typeof document>"u"||typeof window>"u"||typeof window.addEventListener!="function")return()=>{};const e=()=>{document.visibilityState==="visible"&&t()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}}async function za({api:t,sessionId:e,chatStop:s}){try{await s()}finally{e&&await t.stopStream(e)}}const ls=20,qa="highlight_element",Za="act_on_page";function Va({widgetCtx:t,config:e,sessionId:s,persistedMessages:r}){var zt,qt;const{api:n,messageCtx:l}=t,c=p.useRef(e);c.current=e;const{pageContext:d,clientTools:v,pageActions:g}=t.features,i=p.useMemo(()=>ja({...n.getStreamTransportOptions(),headers:()=>n.getStreamTransportOptions().headers,reconnectApi:C=>ka(n.getStreamTransportOptions().reconnectApi(C),c.current.presentation),fetch:(C,w)=>(c.current.streamingFetch??globalThis.fetch)(C,w)}),[n]),[u,m]=p.useState(null),b=p.useRef(!1),[O]=p.useState(q.genUuid),T=p.useRef(Promise.resolve()),P=p.useRef(0),x=p.useRef(0),A=p.useRef(s),I=p.useMemo(()=>s!==null&&!(A.current===null&&P.current>0),[s]),{status:S,messages:o,sendMessage:y,stop:f,error:h,clearError:E,resumeStream:N}=va({id:s??O,resume:I,transport:i,throttle:50,onError:C=>q.log.error("agent chat stream error",C),onFinish:m}),D=p.useRef(o);D.current=o;const L=p.useRef(new rs(ls));p.useEffect(()=>{if(!u||u.messages!==o)return;const{isAbort:C,isDisconnect:w,isError:_,message:M}=u;C||w||_||L.current.size>0||l.state.setPartial({lastAIResMightSolveUserIssue:q.isRecord(M.metadata)&&M.metadata.mightSolveUserIssue===!0})},[u,o,l]);const j=p.useRef("idle"),[$,B]=p.useState(!1),[me,re]=p.useState(0),[ee,oe]=p.useState(!1),te=p.useRef(ee);te.current=ee;const[ge,ce]=p.useState([]),[Ce,z]=p.useState([]),[G,Ee]=p.useState(null),ne=p.useRef(null),Ie=p.useCallback(C=>{ne.current=C,Ee(C)},[]),Oe=p.useRef(null),Ae=p.useRef(null),Ne=p.useRef(S),ze=A.current===s,pt=p.useRef(null),ft=p.useRef(null),$t=p.useRef(f),he=p.useRef(S);he.current=S;const He=p.useCallback((C,w)=>{const _=os(C.parts);if(!_||_.rowIds.length===0)return;const M=nt(C.parts);M.length!==0&&ce(F=>F.some(J=>J.turnId===_.turnId)?F:[...F,{key:w,turnId:_.turnId,rowIds:_.rowIds,items:M}])},[]),Ft=p.useCallback(C=>q.buildSendMessageBody({config:c.current,input:C.input,uuid:C.retryUuid??C.userMessage.id,sessionId:C.sessionId,content:C.userMessage.content,initialMessages:C.initialMessages,sendsPageContext:t.features.pageContext}),[t]);p.useEffect(()=>{const C=$t.current;$t.current=f;const w=A.current;if(w===s)return;if(A.current=s,w===null){ce([]);return}const _=he.current==="submitted"||he.current==="streaming"||Ne.current==="submitted"||Ne.current==="streaming"||j.current==="in-flight";x.current+=1,P.current=0,T.current=Promise.resolve(),L.current=new rs(ls),j.current="idle",B(!1),Ae.current=null,Oe.current=null,m(null),b.current=!1,ft.current=null,pt.current=S==="submitted"||S==="streaming"?S:null,Ne.current="ready",he.current="ready",E(),re(M=>M+1),oe(!1),ce([]),Ie(null),_&&Promise.resolve().then(()=>C()).catch(M=>{q.log.error("agent chat client stream cancel failed",M)})},[s,S,f,E,Ie]),p.useEffect(()=>{var F,J;const C=pt.current;if(C!==null&&S===C){Ne.current="ready";return}pt.current=null;const w=Ne.current;if(Ne.current=S,(S==="submitted"||S==="streaming")&&(w!=="submitted"&&w!=="streaming"&&ne.current===null&&Ie(`turn-resumed-${q.genUuid()}`),oe(!0)),S==="streaming"){const V=(F=Ae.current)==null?void 0:F.userMessage.id;V&&l.markUserMessageDelivered(V);return}if(S!=="ready"&&S!=="error")return;if(w==="streaming"||w==="submitted"||j.current==="in-flight"&&(u==null?void 0:u.messages)===D.current){oe(!0);const V=j.current==="in-flight";V&&(j.current="idle");const ve=D.current.at(-1),qe=ne.current;if(Oe.current=qe,qe!==null&&ve&&ve.role==="assistant"&&He(ve,qe),S==="ready"){const De=(J=Ae.current)==null?void 0:J.userMessage.id;De&&l.markUserMessageDelivered(De)}else V&&w!=="streaming"&&Ae.current&&l.releaseUnsentOptionPick(Ae.current.input);j.current==="stopping"||(s?(j.current="reconciling",t.reconcileAfterStream(s).catch(De=>{q.log.error("agent chat post-turn reconcile failed",De)}).finally(()=>{j.current==="reconciling"&&(j.current="idle"),re(De=>De+1)})):oe(!1))}if(j.current!=="idle"||!s||te.current&&S!=="error")return;const M=L.current.dequeueNext();M&&(j.current="in-flight",B(!1),Ae.current=M,m(null),b.current=!1,Ie(`turn-${M.userMessage.id}`),l.appendUserMessageIfAbsent(M.userMessage),re(V=>V+1),y({text:M.userMessage.content},{body:Ft(M)}))},[S,s,me,y,l,t,Ft,He,Ie,u]);const Ut=p.useCallback(C=>{const w=x.current;P.current++;const M=T.current.then(async()=>{if(w!==x.current)return;const F=j.current,V=he.current==="submitted"||he.current==="streaming"||F!=="idle"||te.current||L.current.size>0?Wa(l.buildQueuedUserMessage(C)):await l.stageUserTurn(C,{pending:!0});if(!V||w!==x.current)return;const ve={...V,input:C};if(!L.current.enqueue(ve)){q.log.warn("agent chat queue full; rejecting newest send",{rejectedMessageId:ve.userMessage.id});return}re(qe=>qe+1),l.notifySendAccepted(C)}).finally(()=>{w===x.current&&P.current--});return T.current=M.then(()=>{},()=>{}),M},[l]),nr=p.useCallback(()=>{var J;const C=Ae.current;if(!C)return;const w=C.input.optionReply,_=w?r.find(V=>V.id===w.messageId):void 0,M=_&&q.isAgentOrAiMessage(_)?(J=_.messageOptions)==null?void 0:J.pickedOptionId:null;if(w&&M&&M!==w.optionId)return;if(!L.current.enqueue({...C,retryUuid:q.genUuid()})){q.log.warn("agent chat queue full; retry not enqueued");return}w&&l.setMessageOptionPick(w.messageId,w.optionId),E(),re(V=>V+1)},[E,l,r]),ar=p.useCallback(C=>{const w=L.current.removeWhere(_=>_.userMessage.id===C);w&&(l.releaseUnsentOptionPick(w.input),re(_=>_+1))},[l]),ir=p.useCallback(()=>{j.current="stopping",B(!0),b.current=!1;const C=x.current;za({api:n,sessionId:s,chatStop:f}).then(()=>{C===x.current&&(b.current=!0)}).catch(w=>{q.log.error("agent chat stop failed",w)}).then(()=>{if(C===x.current){if(!s){oe(!1);return}return t.reconcileAfterStream(s).catch(w=>{q.log.error("agent chat post-stop reconcile failed",w)})}}).finally(()=>{C===x.current&&(j.current="idle",re(w=>w+1))})},[n,s,f,t]);p.useEffect(()=>{const C={send:Ut,hasPendingWork:()=>P.current>0||te.current||L.current.size>0||j.current!=="idle"||he.current==="submitted"||he.current==="streaming"};return l.registerAgentHandlers(C),()=>l.unregisterAgentHandlers(C)},[l,Ut]);const Ke=(zt=e.presentation)==null?void 0:zt.toolActivity,Ge=(qt=e.presentation)==null?void 0:qt.reasoning;p.useEffect(()=>z([]),[s]),p.useEffect(()=>{var F,J;if(!s)return;const C=Ke===void 0&&Ge===void 0?void 0:{toolActivity:Ke,reasoning:Ge},w=ft.current,_=(w==null?void 0:w.sessionId)===s&&(((F=w.presentation)==null?void 0:F.toolActivity)!==Ke||((J=w.presentation)==null?void 0:J.reasoning)!==Ge);ft.current={sessionId:s,presentation:C};let M=!1;return(async()=>{try{const V=C===void 0?await n.getAgentTurnMessages(s):await n.getAgentTurnMessages(s,C);if(!V||M)return;z(V.handled_connection_request_ids),ce(ve=>La({existing:ve,fetched:V,refreshItems:_}))}catch(V){q.log.error("agent chat turn sources fetch failed",V)}})(),()=>{M=!0}},[s,n,Ke,Ge]);const[mt,or]=p.useState(()=>new Set),Ye=p.useRef(mt),gt=p.useRef(new Set),Qe=p.useMemo(()=>{if($||S!=="streaming"&&S!=="submitted")return[];const C=o.at(-1);if(!C||C.role!=="assistant")return[];const w=[];for(const _ of C.parts){if(!le(_))continue;const M=ea(_),F=M===qa?"highlight-element":M===Za?"act-on-page":null;F&&_.state==="input-available"&&w.push({key:`${s??"pending"}:${_.toolCallId}`,type:F,input:_.input,callId:_.toolCallId})}return w},[o,s,S,$]),lr=p.useMemo(()=>Qe.filter(C=>d&&v&&(C.type!=="act-on-page"||g)&&!mt.has(C.key)),[Qe,d,v,g,mt]),ht=p.useCallback((C,w,_,M)=>{if(!s)return;const F=`${s}:${C}`;if(Ye.current.has(F))return;gt.current.delete(F);const J=new Set(Ye.current);if(J.add(F),J.size>200){const V=J.values().next().value;V!==void 0&&J.delete(V)}Ye.current=J,or(J),n.sendPageReply(s,{callId:C,outcome:w,..._?{detail:_}:{},...t.features.pageContext&&M?{controls:M.controls,truncated:M.truncated}:{}})},[n,s,t]),[cr,yt]=p.useState(null),ye=p.useRef(new Map),ur=p.useCallback(C=>new Promise(w=>{const _=`${s??"pending"}:${C.callId}`;if(Ye.current.has(_)){w(!1);return}gt.current.add(_),ye.current.forEach(M=>M(!1)),ye.current.clear(),ye.current.set(C.callId,w),yt(C)}),[s]),vt=p.useCallback((C,w)=>{const _=ye.current.get(C);ye.current.delete(C),yt(M=>(M==null?void 0:M.callId)===C?null:M),_==null||_(w)},[]);p.useEffect(()=>{for(const C of Qe)d&&v&&(C.type!=="act-on-page"||g)||(vt(C.callId,!1),gt.current.has(C.key)||ht(C.callId,"declined"))},[Qe,d,v,g,vt,ht]);const ue=S==="submitted"||S==="streaming";p.useEffect(()=>()=>{ye.current.forEach(C=>C(!1)),ye.current.clear()},[s]),p.useEffect(()=>{if(ue&&!$)return;const C=ye.current;C.size!==0&&(C.forEach(w=>w(!1)),C.clear(),yt(null))},[ue,$]),p.useEffect(()=>{if(ue)return;const C=Oe.current;if(C===null)return;const w=o.at(-1);w&&w.role==="assistant"&&He(w,C)},[o,ue,He]);const bt=p.useCallback(()=>{s&&(ue||h===void 0&&!ee||N())},[s,ue,ee,h,N]);p.useEffect(()=>Ua(bt),[bt]),p.useEffect(()=>{if(ue||!ee)return;const C=()=>{oe(!1),re(M=>M+1),ne.current===Oe.current&&Ie(null),Oe.current=null};if(ne.current===Oe.current&&(u==null?void 0:u.messages)===o&&!u.isError&&!u.isDisconnect&&(!u.isAbort||b.current)&&!nt(u.message.parts).some(M=>M.kind!=="steps")){const M=r.findLast(F=>F.type==="USER");M&&l.state.setPartial({settledAgentUserMessageId:M.id}),C();return}if(u&&u.messages!==o)return;const w=o.at(-1),_=(w==null?void 0:w.role)==="assistant"?os(w.parts):null;if(_&&_.rowIds.length>0){const M=new Set(r.map(F=>F.id));_.rowIds.every(F=>M.has(F))&&C();return}for(let M=r.length-1;M>=0;M-=1){const F=r[M];if(F){if(F.type==="USER")return;if(!(F.type!=="AI"&&F.type!=="AGENT")){C();return}}}},[ue,ee,r,Ie,u,o,l,me]);const ke=q.resolveClientPresentation(t.agent.presentation,e.presentation),Xe=ke==null?void 0:ke.toolActivity,et=ke==null?void 0:ke.reasoning,dr=p.useMemo(()=>{if(!ze||G===null||S==="submitted"||!ue&&!ee)return[];const C=o.at(-1);return!C||C.role!=="assistant"?[]:Pt(nt(C.parts),{toolActivity:Xe,reasoning:et})},[o,S,ue,ee,Xe,et,ze,G]),pr=p.useMemo(()=>ze?ge.flatMap(C=>{const w=Pt(C.items,{toolActivity:Xe,reasoning:et});return w.length===0?[]:[w===C.items?C:{...C,items:w}]}):[],[ge,Xe,et,ze]),fr=p.useMemo(()=>L.current.items.filter(C=>!C.input.background).map(C=>C.userMessage),[me]);return{isStreaming:ue,liveItems:dr,turnSources:pr,liveTurnKey:G,turnFailed:h!==void 0,retryFailedTurn:nr,resumeInterruptedTurn:bt,queuedUserMessages:fr,removeQueued:ar,stop:ir,pageEffects:lr,replyToPageCall:ht,pendingPageAction:cr,requestPageActionConsent:ur,resolvePageAction:vt,handledConnectionRequestIds:Ce,sourceSessionId:ze?s:null}}function Wa(t){return t?{...t,initialMessages:[]}:null}const cs=2e3,us=6e5,Ba=1e4,ut=p.createContext(null),Ja=(t,e)=>e==="dismiss"?{content:`Continue without connecting ${t.name}.`,connectionRequestId:t.request_id}:e==="renew"?{background:!0,connectionRequestId:t.request_id,content:`The connection request for ${t.name} expired. Please create a new authorized connection request for ${t.name} and continue my previous request.`}:e==="external"?{background:!0,connectionRequestId:t.request_id,content:`I returned from setting up ${t.name}. Please try its tools again and continue my previous request.`}:{background:!0,connectionRequestId:t.request_id,content:`The connection to ${t.name} is ready. Please use its tools to continue my previous request.`};function Ha({children:t,request:e,widgetCtx:s,onHandled:r}){const[n,l]=p.useState("idle"),[c,d]=p.useState(null),[v,g]=p.useState(null),[i,u]=p.useState(null),m=p.useRef(new AbortController),b=p.useRef(null),O=p.useRef(new Set),T=p.useRef(null),P=p.useRef(null),x=p.useRef(null),A=p.useRef(!0),I=p.useRef((e==null?void 0:e.request_id)??null);I.current=(e==null?void 0:e.request_id)??null;const S=p.useCallback(()=>{var D;m.current.abort(),(D=b.current)==null||D.close(),b.current=null},[]);p.useEffect(()=>(S(),x.current=null,P.current=null,T.current=null,l("idle"),d(null),g(null),u(null),S),[S,e==null?void 0:e.request_id,e==null?void 0:e.server_id,s]),p.useEffect(()=>(A.current=!0,()=>{A.current=!1,S()}),[S]);const o=p.useCallback(async D=>{if(!e)return;const L=e.request_id;if(O.current.has(L))return;O.current.add(L),T.current=D,g(D),u(null);let j=!1;try{await s.messageCtx.sendMessage({...Ja(e,D),onAccepted:()=>{j=!0,r(e.request_id)}}),A.current&&I.current===L&&!j&&u(D==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}catch{A.current&&I.current===L&&u(D==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}finally{O.current.delete(L),A.current&&I.current===L&&g(null)}},[r,e,s]),y=p.useCallback(async()=>{var L,j;if(!e)return;S(),x.current=e.request_id,m.current=new AbortController;const{signal:D}=m.current;l("loading"),T.current=null,d(null),u(null);try{b.current=window.open("about:blank","_blank"),b.current&&(b.current.opener=null);const $=await s.api.startConnection(e.server_id,e.request_id,D);if(D.aborted)return;const B=new URL($.authorization_url);if(!(B.protocol==="https:"||B.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(B.hostname))||B.username||B.password)throw new Error("Invalid connection page");d({url:B.href,host:B.host,completion:$.completion,...$.completion==="oauth"?{attemptId:$.attempt_id}:{}}),P.current=Date.now()+us,(L=b.current)!=null&&L.closed?(b.current=null,l("ready")):b.current?(b.current.location.replace(B.href),l("waiting")):l("ready")}catch($){if(D.aborted)return;if((j=b.current)==null||j.close(),b.current=null,d(null),l("idle"),$ instanceof q.ConnectionRequestExpiredError){await o("renew");return}u($ instanceof Error?$.message:"Could not start the connection.")}},[S,e,o,s]);p.useEffect(()=>{if(n!=="waiting"&&n!=="ready"||!c||!e)return;const D=new AbortController;let L;const j=P.current??Date.now()+us;P.current=j;let $=0,B=document.hidden||!document.hasFocus(),me=!1;const re=()=>{B=!0},ee=()=>{B&&(me=!0)},oe=()=>document.hidden?re():ee();window.addEventListener("blur",re),window.addEventListener("focus",ee),document.addEventListener("visibilitychange",oe);const te=z=>{var G;D.abort(),(G=b.current)==null||G.close(),b.current=null,u(z),l("idle")},ge=setTimeout(()=>te("Connection timed out. Try again."),Math.max(0,j-Date.now())),ce=(z=cs)=>{L=setTimeout(Ce,z)},Ce=async()=>{var z,G,Ee;if(Date.now()>=j){te("Connection timed out. Try again.");return}if(c.completion==="external"){if(n==="waiting"&&((z=b.current)!=null&&z.closed||me)){l("external");return}ce();return}if(!c.attemptId){te("Could not read the connection attempt. Try again.");return}try{const ne=await s.api.getConnectionAttempt(e.server_id,c.attemptId,D.signal);if(D.signal.aborted)return;if($=0,ne==="connected"){(G=b.current)==null||G.close(),b.current=null,l("connected");return}if(ne==="canceled"){te("Connection was canceled. Try again.");return}if(ne==="failed"){te("Connection approval failed. Try again.");return}if(ne==="expired"){te("Connection attempt expired. Try again.");return}(Ee=b.current)!=null&&Ee.closed&&(b.current=null,l("ready")),ce()}catch(ne){if(D.signal.aborted)return;if(ne instanceof q.ConnectionAttemptUnavailableError){te(ne.message);return}$+=1,ce(Math.min(cs*2**($-1),Ba))}};return Ce(),()=>{D.abort(),L&&clearTimeout(L),ge&&clearTimeout(ge),window.removeEventListener("blur",re),window.removeEventListener("focus",ee),document.removeEventListener("visibilitychange",oe)}},[c,n,e,s]),p.useEffect(()=>{n!=="connected"&&n!=="external"||x.current!==(e==null?void 0:e.request_id)||o(n==="external"?"external":"resume")},[n,e==null?void 0:e.request_id,o]);const f=p.useCallback(()=>l("waiting"),[]),h=p.useCallback(async()=>{S(),d(null),l("idle"),await o("dismiss")},[S,o]),E=p.useCallback(async()=>{const D=T.current;if(D){await o(D);return}await y()},[o,y]),N=p.useMemo(()=>e?{request:e,phase:n,authorization:c,continuation:v,error:i,start:y,opened:f,cancel:h,retryContinuation:E}:null,[c,h,v,i,f,n,e,E,y]);return p.createElement(ut.Provider,{value:N},t)}function Ka({children:t,connection:e}){return p.createElement(ut.Provider,{value:e},t)}function Ga(){return p.useContext(ut)}function Ya(t){const e=p.useContext(ut);if(!e||e.request.request_id!==t.request_id)throw new Error("useConnection must be used for the active ConnectionAttemptProvider request");return e}const kt={isStreaming:!1,liveItems:[],turnSources:[],liveTurnKey:null,turnFailed:!1,retryFailedTurn:()=>{},resumeInterruptedTurn:()=>{},queuedUserMessages:[],removeQueued:()=>{},stop:()=>{},pageEffects:[],pendingPageAction:null,resolvePageAction:()=>{},requestPageActionConsent:async()=>!1,replyToPageCall:()=>{},pendingClarification:null,pendingConnection:null},dt=p.createContext(null);function Dt(){return p.useContext(dt)??kt}function Qa({children:t,widgetCtx:e,config:s}){var ee,oe,te,ge,ce,Ce;const r=W(e.sessionCtx.sessionState),n=W(e.messageCtx.state),{isStreaming:l,liveItems:c,turnSources:d,liveTurnKey:v,turnFailed:g,retryFailedTurn:i,resumeInterruptedTurn:u,queuedUserMessages:m,removeQueued:b,stop:O,pageEffects:T,replyToPageCall:P,pendingPageAction:x,requestPageActionConsent:A,resolvePageAction:I,handledConnectionRequestIds:S,sourceSessionId:o}=Va({widgetCtx:e,config:s,sessionId:((ee=r.session)==null?void 0:ee.id)??null,persistedMessages:n.messages}),y=((oe=n.messages.at(-1))==null?void 0:oe.type)==="USER",f=p.useRef(new Set),h=p.useRef(((te=r.session)==null?void 0:te.id)??null),E=((ge=r.session)==null?void 0:ge.id)??null;h.current!==E&&(h.current=E,f.current.clear()),S.forEach(z=>f.current.add(z));const N=(ce=[...d.flatMap(z=>z.items),...c].findLast(z=>z.kind==="connection"&&!f.current.has(z.request.request_id)))==null?void 0:ce.request,[D,L]=p.useState({sessionId:E,request:null}),j=((Ce=s.capabilities)==null?void 0:Ce.connections)===!0,$=j&&E!==null&&D.sessionId===E?D.request:null;p.useEffect(()=>{!j||E===null||o!==E||L(z=>{const G=z.sessionId===E&&z.request&&!f.current.has(z.request.request_id)?z.request:N??null;return z.sessionId===E&&z.request===G?z:{sessionId:E,request:G}})},[E,o,N,S,j,$]);const B=p.useCallback(z=>{f.current.add(z),L(G=>{var Ee;return((Ee=G.request)==null?void 0:Ee.request_id)===z?{...G,request:null}:G})},[]),me=p.useMemo(()=>({isStreaming:l,liveItems:c,turnSources:d,liveTurnKey:v,turnFailed:g,retryFailedTurn:i,resumeInterruptedTurn:u,queuedUserMessages:m,removeQueued:b,stop:O,pageEffects:T,replyToPageCall:P,pendingPageAction:x,requestPageActionConsent:A,resolvePageAction:I,pendingConnection:$,pendingClarification:hr({turnSources:d,liveItems:c,isStreaming:l,lastMessageIsFromUser:y})}),[l,c,d,v,g,i,u,m,b,O,T,P,x,A,I,y,$]),re=p.createElement(dt.Provider,{value:me},t);return p.createElement(Ha,{request:$,widgetCtx:e,onHandled:B},re)}function Js({children:t,widgetCtx:e,config:s}){return W(e.messageCtx.state),e.streaming?p.createElement(Qa,{widgetCtx:e,config:s},t):p.createElement(dt.Provider,{value:kt},t)}class Xa{constructor(e){this.root=e,this.nextId=1,this.mountVersion=0,this.disposed=!1,this.mount=()=>{const r=++this.mountVersion;this.root.routerCtx.navigateConversation=this.open;const n=this.state.get().chats.find(l=>l.id===this.state.get().activeId);return n.ctx===this.root?this.root.sessionCtx.restoreActiveSessionTracking():this.root.sessionCtx.trackActiveSession(n.ctx.sessionCtx),()=>{queueMicrotask(()=>{this.mountVersion===r&&this.dispose()})}},this.dispose=()=>{if(!this.disposed){this.disposed=!0,this.root.routerCtx.navigateConversation===this.open&&(this.root.routerCtx.navigateConversation=void 0,this.root.sessionCtx.restoreActiveSessionTracking());for(const r of this.state.get().chats)r.ctx!==this.root&&r.ctx.releaseConversation();this.state.set({chats:[],activeId:0})}},this.select=r=>{if(this.disposed)return;const n=this.state.get().chats.find(l=>l.id===r);n&&(n.ctx.routerCtx.navigateConversation=this.open,n.ctx.routerCtx.state.setPartial({screen:n.ctx.contactCtx.shouldCollectData()?"welcome":"chat"}),this.root.sessionCtx.trackActiveSession(n.ctx.sessionCtx),this.state.setPartial({activeId:r,chats:this.state.get().chats.map(l=>l.id===r?{...l,closed:!1}:l)}))},this.close=r=>{if(this.disposed)return;const{chats:n,activeId:l}=this.state.get(),c=n.findIndex(u=>u.id===r&&!u.closed),d=n[c];if(!d)return;const v=this.isWorking(d),g=v?n.map(u=>u.id===r?{...u,closed:!0}:u):n.filter(u=>u.id!==r);let i=g.find(u=>u.id===l&&!u.closed)??g.slice(0,c).reverse().find(u=>!u.closed)??g.find(u=>!u.closed);i||(i=this.makeChat(this.root.createConversation()),g.push(i)),i.ctx.routerCtx.navigateConversation=this.open,this.root.sessionCtx.trackActiveSession(i.ctx.sessionCtx),this.state.set({chats:g,activeId:i.id}),v||this.releaseChat(d)},this.canCreateChat=()=>!this.disposed&&(!this.root.config.oneOpenSessionAllowed||!this.state.get().chats.some(({ctx:r})=>{const{session:n,isCreatingSession:l}=r.sessionCtx.sessionState.get();return(n==null?void 0:n.isOpened)||l})&&!this.root.sessionCtx.sessionsState.get().data.some(r=>r.isOpened)),this.open=r=>{var v,g,i,u;if(this.disposed)return;const{chats:n}=this.state.get();if(!r&&!this.canCreateChat())return;const l=r?n.find(({ctx:m})=>{var b;return((b=m.sessionCtx.sessionState.get().session)==null?void 0:b.id)===r}):n.find(m=>this.isEmpty(m));if(l)return this.select(l.id),(g=(v=this.root.config.hooks)==null?void 0:v.onNavigateToChat)==null||g.call(v,{session:l.ctx.sessionCtx.sessionState.get().session??void 0}),l.ctx;const c=r?this.root.sessionCtx.sessionsState.get().data.find(m=>m.id===r):void 0;if(r&&!c)return;const d=n.find(m=>this.isEmpty(m))??this.makeChat(this.root.createConversation());return c&&(n.includes(d)&&d.ctx.resetChat(),d.ctx.sessionCtx.sessionState.setPartial({session:c})),n.includes(d)||this.state.setPartial({chats:[...n,d]}),this.select(d.id),(u=(i=this.root.config.hooks)==null?void 0:i.onNavigateToChat)==null||u.call(i,{session:c}),d.ctx},this.update=(r,n)=>{const l=this.state.get().chats.find(d=>d.id===r);if(!l)return;const c={...l,...n};if(c.closed&&!this.isWorking(c)){this.state.setPartial({chats:this.state.get().chats.filter(d=>d.id!==r)}),this.releaseChat(c);return}c.title===l.title&&c.working===l.working&&c.hasSession===l.hasSession&&c.hasDraft===l.hasDraft&&c.ui===l.ui&&c.connection===l.connection||this.state.setPartial({chats:this.state.get().chats.map(d=>d.id===r?{...d,...n}:d)})};const s=this.makeChat(e);this.state=new q.PrimitiveState({chats:[s],activeId:s.id})}makeChat(e){return{id:this.nextId++,ctx:e,title:"",working:!1,hasSession:!1,hasDraft:!1,ui:kt,connection:null}}releaseChat(e){e.ctx===this.root?e.ctx.resetChat():e.ctx.releaseConversation()}isWorking(e){return e.ui.isStreaming||e.ctx.messageCtx.state.get().isSendingMessage||e.ctx.sessionCtx.sessionState.get().isCreatingSession}isEmpty(e){const{session:s}=e.ctx.sessionCtx.sessionState.get(),{text:r,mentions:n}=e.ctx.messageCtx.draftState.get();return!e.closed&&!s&&!this.isWorking(e)&&!e.ctx.messageCtx.state.get().messages.length&&!r&&!n.length&&!e.ctx.uploadCtx.state.get().length}}const Hs=p.createContext(null),ei=new q.PrimitiveState({chats:[],activeId:0});function Ks(){const t=p.useContext(Hs),e=W((t==null?void 0:t.state)??ei),s=e.chats.filter(n=>!n.closed),r=s.filter(n=>n.hasSession||n.working||n.hasDraft||n.title);return{workspace:t,chats:s,openChats:r,activeId:e.activeId}}function ti(){const{workspace:t,...e}=Ks();if(!t)throw new Error("Companion chats require a conversation workspace");return{...e,selectChat:t.select,closeChat:t.close,newChat:t.open}}function si({chatId:t,ctx:e,workspace:s}){const r=Dt(),n=Ga(),l=W(e.messageCtx.state),c=W(e.sessionCtx.sessionState),d=W(e.messageCtx.draftState),v=W(e.uploadCtx.state),g=l.messages.find(O=>O.type==="USER"),i=(g==null?void 0:g.type)==="USER"?g.content.slice(0,60):"",u=r.isStreaming||l.isSendingMessage||c.isCreatingSession,m=!!c.session,b=!!d.text||d.mentions.length>0||v.length>0;return p.useEffect(()=>s.update(t,{title:i,working:u,hasSession:m,hasDraft:b,ui:r,connection:n}),[s,t,i,u,m,b,r,n]),null}const ri=p.memo(function({chatId:e,ctx:s,config:r,workspace:n}){return p.createElement(Js,{widgetCtx:s,config:r},p.createElement(si,{chatId:e,ctx:s,workspace:n}))});function ni({widgetCtx:t,config:e=t.config,children:s}){const r=p.useMemo(()=>new Xa(t),[t]);p.useEffect(()=>r.mount(),[r]);const{chats:n,activeId:l}=W(r.state),c=n.find(v=>v.id===l),d=p.useMemo(()=>n.map(v=>p.createElement(ri,{key:v.id,chatId:v.id,ctx:v.ctx,config:e,workspace:r})),[n,e,r]);return p.createElement(Hs.Provider,{value:r},d,p.createElement(Ka,{connection:c.connection},p.createElement(dt.Provider,{value:c.ui},s(c.ctx))))}class ai{constructor(e){this.components=[];const{components:s}=e;if(s&&s.forEach(r=>this.register(r)),this.components.length===0)throw new Error("No components registered");if(!this.get("fallback"))throw new Error("No fallback component registered")}register(e){const s=this.components.findIndex(r=>r.key.toUpperCase()===e.key.toUpperCase());return s!==-1?this.components[s]=e:this.components.push(e),this}get(e){const s=this.components.find(r=>r.key.toUpperCase()===e.toUpperCase());return s||null}getComponent(e){var s;return(s=this.get(e))==null?void 0:s.component}}const ds=k.z.object({org_id:k.z.string(),contact:k.z.object({id:k.z.string(),verified:k.z.boolean()}),mcp_access:k.z.object({server_ids:k.z.array(k.z.string()),account_id:k.z.string().optional()}).optional()}),ii=k.z.union([k.z.object({sub:k.z.object({type:k.z.literal("widget-contact"),payload:ds})}).transform(({sub:t})=>t.payload),ds]),oi=t=>{const e=t.split(".")[1];if(!e)return null;try{const s=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-s.length%4)%4),n=Uint8Array.from(atob(`${s}${r}`),l=>l.charCodeAt(0));return JSON.parse(new TextDecoder().decode(n))}catch{return null}},li=t=>{var n,l;const e=t.user,s=e==null?void 0:e.token;if(!s)return JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:(e==null?void 0:e.externalId)??null,verifiedOwner:null});const r=ii.safeParse(oi(s));return r.success?JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:e.externalId??null,verifiedOwner:{orgId:r.data.org_id,contactId:r.data.contact.id,verified:r.data.contact.verified,accountId:((n=r.data.mcp_access)==null?void 0:n.account_id)??null,serverIds:[...((l=r.data.mcp_access)==null?void 0:l.server_ids)??[]].sort()}}):JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:e.externalId??null,opaqueToken:s})},Gs=p.createContext(null);function ci({options:t,children:e,components:s,storage:r,loadingComponent:n,errorComponent:l}){var x;const c=p.useRef(Promise.resolve()),d=p.useRef(t);d.current=t;const v=li(t),g=p.useRef(null),i=p.useRef(null),u=p.useRef(null),[m,b]=p.useState({status:"loading"}),O=p.useMemo(()=>new ai({components:s}),[s]);if(p.useEffect(()=>{var S,o,y;if(((S=u.current)==null?void 0:S.identity)!==v){const f=(o=u.current)==null?void 0:o.widgetCtx.dispose({clearActiveSession:!0});c.current=Promise.all([c.current,f]).then(()=>{}),u.current=null}((y=i.current)==null?void 0:y.identity)!==v&&(b({status:"loading"}),i.current={identity:v,request:c.current.then(()=>q.WidgetCtx.initialize({config:t,storage:r,getClientCapabilities:()=>d.current.capabilities,getRequestConfig:()=>d.current}))});const A=i.current.request,I=i.current.identity;A.then(f=>{var h;if(((h=i.current)==null?void 0:h.request)!==A){f.dispose();return}u.current={identity:I,widgetCtx:f},b({status:"ready",identity:I,widgetCtx:f})},f=>{var E;if(((E=i.current)==null?void 0:E.request)!==A)return;const h=f instanceof Error?f:new Error("Widget initialization failed",{cause:f});q.log.error("widget initialization failed",h),b({status:"error",identity:I,error:h})})},[v,t,r]),p.useEffect(()=>()=>{var A;i.current=null,(A=u.current)==null||A.widgetCtx.dispose(),u.current=null},[]),p.useLayoutEffect(()=>{var A;m.status!=="ready"||m.identity!==v||(A=t.user)!=null&&A.token&&m.widgetCtx.api.setAuthToken(t.user.token)},[(x=t.user)==null?void 0:x.token,v,m]),m.status==="loading"||"identity"in m&&m.identity!==v)return n?p.createElement(p.Fragment,null,n):null;if(m.status==="error")return l?p.createElement(p.Fragment,null,l(m.error)):null;const{widgetCtx:T}=m,P=(A,I)=>p.createElement(Gs.Provider,{value:{widgetCtx:A,config:t,components:s,componentStore:O,version:gr,contentIframeRef:g}},I);return t.displayMode==="companion"&&!t.inline?p.createElement(ni,{widgetCtx:T,config:t},A=>P(A,e)):P(T,p.createElement(Js,{key:v,widgetCtx:T,config:t},e))}function X(){const t=p.useContext(Gs);if(!t)throw new Error("useWidget must be used within a WidgetProvider");return t}function ui({liveItems:t,turnSources:e}){var r;const s=t.findLast(n=>n.kind==="plan");if(s)return s.plan;for(let n=e.length-1;n>=0;n--){const l=(r=e[n])==null?void 0:r.items.findLast(c=>c.kind==="plan");if(l)return l.plan}}function di(){const{config:t,widgetCtx:e}=X(),{name:s,avatarUrl:r}=e.agent,n=t.bot;return p.useMemo(()=>({isAi:!0,id:null,name:(n==null?void 0:n.name)??s,avatarUrl:(n==null?void 0:n.avatarUrl)??r,avatar:n==null?void 0:n.avatar}),[n==null?void 0:n.name,n==null?void 0:n.avatarUrl,n==null?void 0:n.avatar,s,r])}function Je(){const{config:t}=X();return t}function pi(){const{config:t}=X();return t.displayMode??"popover"}function fi(){const{widgetCtx:t}=X();return{contactState:W(t.contactCtx.state),createUnverifiedContact:t.contactCtx.createUnverifiedContact}}function Ys(){const[t,e]=p.useState("ltr");return p.useEffect(()=>{const s=()=>{typeof document>"u"||e(window.getComputedStyle((window.top||window).document.body).direction)};s();const r=new MutationObserver(s);return r.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),r.observe(document.body,{attributes:!0,attributeFilter:["dir"]}),window.addEventListener("languagechange",s),()=>{r.disconnect(),window.removeEventListener("languagechange",s)}},[]),{dir:t}}const mi=500,at="opencx:context-changed";function Qs(){if(typeof window>"u")return null;try{const t=window.top??window;return t.location.href,t}catch{return null}}function gi(t){const e=Qs();if(!e)return()=>{};const s=n=>{(n==null?void 0:n.type)===at&&(Xs+=1),t()};e.addEventListener("popstate",s),e.addEventListener("hashchange",s),e.addEventListener(at,s);const r=e.setInterval(s,mi);return()=>{e.removeEventListener("popstate",s),e.removeEventListener("hashchange",s),e.removeEventListener(at,s),e.clearInterval(r)}}let Xs=0;function hi(){var t;return`${Xs}|${((t=Qs())==null?void 0:t.location.href)??""}`}function yi(){return p.useSyncExternalStore(gi,hi,()=>"")}function jt(){const{widgetCtx:t}=X(),e=W(t.messageCtx.state),{isStreaming:s}=Dt();return{messagesState:s?{...e,isSendingMessage:!0,isSendingMessageToAI:!0}:e,sendMessage:t.messageCtx.sendMessage,rememberSentText:t.messageCtx.rememberSentText,getSentTextHistory:t.messageCtx.getSentTextHistory}}function Lt(){var v;const{widgetCtx:t}=X(),{oneOpenSessionAllowed:e}=Je(),s=W(t.sessionCtx.sessionState),r=W(t.sessionCtx.sessionsState),{openSessions:n,closedSessions:l}=p.useMemo(()=>({openSessions:r.data.filter(g=>g.isOpened===!0),closedSessions:r.data.filter(g=>g.isOpened===!1)}),[r.data]),{workspace:c}=Ks(),d=c?c.canCreateChat():!e||n.length===0&&!s.isCreatingSession&&!((v=s.session)!=null&&v.isOpened);return{sessionState:s,sessionsState:r,loadMoreSessions:t.sessionCtx.loadMoreSessions,resolveSession:t.sessionCtx.resolveSession,createStateCheckpoint:t.sessionCtx.createStateCheckpoint,openSessions:n,closedSessions:l,canCreateNewSession:d}}function vi(){var c,d;const{sessionState:t}=Lt(),{messagesState:e}=jt(),s=((c=t.session)==null?void 0:c.assignee.kind)==="ai",r=(d=e.messages)==null?void 0:d.at(-1),n=(r==null?void 0:r.type)==="USER"&&r.id!==e.settledAgentUserMessageId;return{isAwaitingBotReply:!!(e.isSendingMessageToAI||(s||t.isCreatingSession)&&(e.isSendingMessage||n))}}function er(){const{widgetCtx:t}=X();return{routerState:W(t.routerCtx.state),toSessionsScreen:t.routerCtx.toSessionsScreen,toChatScreen:t.routerCtx.toChatScreen}}function bi(){const{widgetCtx:t}=X(),{unreadSessionIds:e,count:s}=W(t.unreadCtx.state),r=p.useCallback(n=>e.includes(n),[e]);return{count:s,hasUnread:s>0,unreadSessionIds:e,isUnread:r}}const tr=p.createContext(null);function Si({children:t}){const e=Je(),[s,r]=p.useState(()=>e.inline?!0:e.isOpen??!1);return p.useEffect(()=>{r(n=>e.isOpen??n)},[e.isOpen]),p.useEffect(()=>{const n=e.openAfterNSeconds;if(typeof n!="number"||isNaN(n))return;const l=setTimeout(()=>r(!0),n*1e3);return()=>clearTimeout(l)},[e.openAfterNSeconds]),p.createElement(tr.Provider,{value:{isOpen:s,setIsOpen:r}},t)}function sr(){const t=p.useContext(tr);if(!t)throw new Error("useWidgetTrigger must be used within a WidgetTriggerProvider");return t}const Ci=t=>(document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)),Ei=()=>document.visibilityState!=="hidden";function Ii({transcriptVisible:t=!0}={}){const{widgetCtx:e}=X(),{isOpen:s}=sr(),{routerState:r}=er(),{session:n}=W(e.sessionCtx.sessionState),{isInitialFetchLoading:l}=W(e.messageCtx.state),c=p.useSyncExternalStore(Ci,Ei,()=>!0),d=s&&c&&t&&r.screen==="chat"&&!l?(n==null?void 0:n.id)??null:null;p.useEffect(()=>{e.unreadCtx.setViewingSessionId(d)},[e,d]),p.useEffect(()=>()=>e.unreadCtx.setViewingSessionId(null),[e])}function Ai(){const{widgetCtx:{uploadCtx:t}}=X(),e=W(t.state),s=p.useMemo(()=>e.filter(r=>r.status==="success"&&r.fileUrl),[e]);return{allFiles:e,appendFiles:t.appendFiles,handleCancelUpload:t.cancel,successFiles:s,emptyTheFiles:t.reset,getFileById:r=>e.find(n=>n.id===r),getUploadProgress:r=>{var n;return((n=e.find(l=>l.id===r))==null?void 0:n.progress)??0},getUploadStatus:r=>{var n;return(n=e.find(l=>l.id===r))==null?void 0:n.status},hasErrors:e.some(r=>r.status==="error"),isUploading:e.some(r=>r.status==="uploading")}}function wi(t){return t!=="fullscreen"}const rr=p.createContext(null);function xi({children:t}){var n,l;const{companion:e}=Je(),{dir:s}=Ys(),{widgetCtx:r}=X();return p.createElement(Mi,{configuredDefaultLayout:e==null?void 0:e.defaultLayout,configuredLayouts:e==null?void 0:e.layouts,configuredSidebarSide:q.resolveSidebarSide((n=e==null?void 0:e.sidebar)==null?void 0:n.side,s),configuredSidebarMode:q.resolveSidebarMode((l=e==null?void 0:e.sidebar)==null?void 0:l.mode),storage:r.storageCtx},t)}function Mi({configuredDefaultLayout:t,configuredLayouts:e,configuredSidebarSide:s,configuredSidebarMode:r,storage:n,children:l}){const c=q.normalizeCompanionLayouts(e),d=q.resolveCompanionDefaultLayout(t,c),v=c.join("|"),[g,i]=p.useState(d),[u,m]=p.useState({defaultLayout:d,allowedLayoutsKey:v});(u.defaultLayout!==d||u.allowedLayoutsKey!==v)&&(m({defaultLayout:d,allowedLayoutsKey:v}),(u.defaultLayout!==d||!c.includes(g))&&i(d));const b=h=>{i(E=>{const N=typeof h=="function"?h(E):h;return c.includes(N)?N:E})},O=p.useRef(c);O.current=c;const T=h=>{b(h),O.current.includes(h)&&wi(h)&&(n==null||n.setCompanionLayout(h).catch(()=>{}))},[P,x]=p.useState(s),[A,I]=p.useState(r),[S,o]=p.useState({side:s,mode:r});(S.side!==s||S.mode!==r)&&(o({side:s,mode:r}),S.side!==s&&x(s),S.mode!==r&&I(r)),p.useEffect(()=>{if(!n)return;let h=!1;return n.getCompanionLayout().then(E=>{h||!E||O.current.includes(E)&&i(E)}).catch(()=>{}),n.getCompanionSidebarSide().then(E=>{!h&&E&&x(E)}).catch(()=>{}),n.getCompanionSidebarMode().then(E=>{!h&&E&&I(E)}).catch(()=>{}),()=>{h=!0}},[n]);const y=p.useCallback(h=>{x(h),n==null||n.setCompanionSidebarSide(h).catch(()=>{})},[n]),f=p.useCallback(h=>{I(h),n==null||n.setCompanionSidebarMode(h).catch(()=>{})},[n]);return p.createElement(rr.Provider,{value:{layout:g,setLayout:b,setLayoutPreference:T,allowedLayouts:c,defaultLayout:d,sidebarSide:P,setSidebarSide:y,sidebarMode:A,setSidebarMode:f}},l)}function Ti(){const t=p.useContext(rr);if(!t)throw new Error("useWidgetLayout must be used within a WidgetLayoutProvider");return t}function Ri(){var d,v;const{widgetCtx:t}=X(),{modesComponents:e}=Je(),{sessionState:s}=Lt(),r=t.modes,n=(d=s.session)==null?void 0:d.modeId,l=r.find(g=>g.id===n),c=(v=e==null?void 0:e.find(g=>{var i,u;return[(l==null?void 0:l.id)||"",((i=l==null?void 0:l.name)==null?void 0:i.toLowerCase())||"",((u=l==null?void 0:l.slug)==null?void 0:u.toLowerCase())||""].includes(g.key.toLowerCase())}))==null?void 0:v.component;return{modes:r,modesComponents:e,activeModeId:n,activeMode:l,Component:c}}function Pi(){const{widgetCtx:t}=X(),{messagesState:{messages:e}}=jt(),{csatRequestedMessage:s,isCsatRequested:r,csatSubmittedMessage:n,isCsatSubmitted:l,submittedScore:c,submittedFeedback:d}=p.useMemo(()=>{const v=e.find(i=>i.type==="SYSTEM"&&i.subtype==="csat_requested"),g=e.findLast(i=>i.type==="SYSTEM"&&i.subtype==="csat_submitted");return{csatRequestedMessage:v,isCsatRequested:!!v&&!g,csatSubmittedMessage:g,isCsatSubmitted:!!g,submittedScore:g==null?void 0:g.data.payload.score,submittedFeedback:g==null?void 0:g.data.payload.feedback}},[e]);return{submitCsat:t.csatCtx.submitCsat,csatRequestedMessage:s,isCsatRequested:r,csatSubmittedMessage:n,isCsatSubmitted:l,submittedScore:c,submittedFeedback:d}}function _i(t){const{widgetCtx:e}=X(),s=e.dictationCtx,r=W(s.state),n=p.useRef(t);n.current=t;const l=p.useCallback(()=>{s.start({getValue:()=>n.current.getValue(),setValue:d=>n.current.setValue(d),onSend:()=>{var d,v;return(v=(d=n.current).onSend)==null?void 0:v.call(d)}})},[s]),c=p.useCallback(()=>{s.isActive()?s.stop():l()},[s,l]);return p.useEffect(()=>()=>s.stop({executeFinalCommand:!1}),[s]),{enabled:e.features.dictation,status:r.status,error:r.error,isActive:r.status!=="idle",levelRef:s.levelRef,start:l,stop:s.stop,toggle:c,prewarm:s.prewarm}}function Oi(){const{widgetCtx:t}=X(),e=t.messageCtx.draftState,s=W(e),r=p.useCallback(c=>{e.setPartial({text:typeof c=="function"?c(e.get().text):c})},[e]),n=p.useCallback(c=>{e.setPartial({mentions:typeof c=="function"?c(e.get().mentions):c})},[e]),l=p.useCallback((c=s)=>e.get()!==c?!1:(e.reset(),!0),[e,s]);return{...s,setText:r,setMentions:n,clearSubmitted:l}}exports.HOST_CONTEXT_CHANGED_EVENT=at;exports.WidgetLayoutProvider=xi;exports.WidgetProvider=ci;exports.WidgetTriggerProvider=Si;exports.applyPresentation=Pt;exports.formatAskQuestionsAnswers=Ma;exports.sessionPlan=ui;exports.useAgentChatUi=Dt;exports.useBot=di;exports.useCompanionChats=ti;exports.useComposerDraft=Oi;exports.useConfig=Je;exports.useConnection=Ya;exports.useContact=fi;exports.useCsat=Pi;exports.useDictation=_i;exports.useDisplayMode=pi;exports.useDocumentDir=Ys;exports.useHostLocation=yi;exports.useIsAwaitingBotReply=vi;exports.useMessages=jt;exports.useModes=Ri;exports.usePrimitiveState=W;exports.useSessions=Lt;exports.useUnread=bi;exports.useUnreadViewing=Ii;exports.useUploadFiles=Ai;exports.useWidget=X;exports.useWidgetLayout=Ti;exports.useWidgetRouter=er;exports.useWidgetTrigger=sr;
24
24
  //# sourceMappingURL=index.cjs.map