@opencx/widget-react-headless 5.6.1 → 5.7.1
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/README.md +13 -3
- package/dist/index.cjs +18 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2300 -2140
- package/dist/index.js.map +1 -1
- package/dist/package.json.d.ts +11 -2
- package/dist/src/agent-chat/agent-chat-transport.d.ts +9 -0
- package/dist/src/agent-chat/agent-chat-transport.d.ts.map +1 -1
- package/dist/src/agent-chat/describe-stream-error.d.ts +7 -0
- package/dist/src/agent-chat/describe-stream-error.d.ts.map +1 -0
- package/dist/src/agent-chat/useAgentChat.d.ts.map +1 -1
- package/package.json +11 -2
package/dist/index.cjs
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
Error message: ${
|
|
3
|
-
Error message: ${
|
|
4
|
-
`)===-1&&
|
|
5
|
-
`,
|
|
6
|
-
`,
|
|
7
|
-
`,
|
|
8
|
-
${N}`,
|
|
9
|
-
`,
|
|
10
|
-
`,
|
|
11
|
-
${
|
|
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[
|
|
14
|
-
]))`;continue}}if(s.s&&r[
|
|
15
|
-
`:`[${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)}
|
|
1
|
+
"use strict";var Kt=t=>{throw TypeError(t)};var Gt=(t,e,s)=>e.has(t)||Kt("Cannot "+s);var Z=(t,e,s)=>(Gt(t,e,"read from private field"),s?s.call(t):e.get(t)),ue=(t,e,s)=>e.has(t)?Kt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),K=(t,e,s,r)=>(Gt(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"),F=require("@opencx/widget-core"),Y=require("zod/v4"),xr=require("zod/v4/core");require("react/jsx-runtime");const D=require("zod"),Cs="5.7.1";function J(t){return p.useSyncExternalStore(t.subscribe,t.get,t.get)}function Tr({turnSources:t,liveItems:e,isStreaming:s,lastMessageIsFromUser:r}){var o;if(s||r)return null;const n=e.length>0?e:(o=t.at(-1))==null?void 0:o.items;return n?Mr(n):null}function Mr(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 Is="vercel.ai.error",Rr=Symbol.for(Is);var G=class ws extends Error{constructor({name:e,message:s,cause:r}){super(s),this[Rr]=!0,this.name=e,this.cause=r}static isInstance(e){return ws.hasMarker(e,Is)}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 As="AI_APICallError",xs=`vercel.ai.error.${As}`,_r=Symbol.for(xs);var Ts=class extends G{constructor({message:t,url:e,requestBodyValues:s,statusCode:r,responseHeaders:n,responseBody:o,cause:l,isRetryable:u=r!=null&&(r===408||r===409||r===429||r>=500),data:v}){super({name:As,message:t,cause:l}),this[_r]=!0,this.url=e,this.requestBodyValues=s,this.statusCode=r,this.responseHeaders=n,this.responseBody=o,this.isRetryable=u,this.data=v}static isInstance(t){return G.hasMarker(t,xs)}};const Ms="AI_EmptyResponseBodyError",Rs=`vercel.ai.error.${Ms}`,Pr=Symbol.for(Rs);var ct=class extends G{constructor({message:t="Empty response body"}={}){super({name:Ms,message:t}),this[Pr]=!0}static isInstance(t){return G.hasMarker(t,Rs)}};function _s(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.toString():JSON.stringify(t)}const Ps="AI_InvalidArgumentError",Os=`vercel.ai.error.${Ps}`,Or=Symbol.for(Os);var Nr=class extends G{constructor({message:e,cause:s,argument:r}){super({name:Ps,message:e,cause:s}),this[Or]=!0,this.argument=r}static isInstance(e){return G.hasMarker(e,Os)}};const Ns="AI_JSONParseError",ks=`vercel.ai.error.${Ns}`,kr=Symbol.for(ks);var Qt=class extends G{constructor({text:t,cause:e}){super({name:Ns,message:`JSON parsing failed: Text: ${t}.
|
|
2
|
+
Error message: ${_s(e)}`,cause:e}),this[kr]=!0,this.text=t}static isInstance(t){return G.hasMarker(t,ks)}};const Ds="AI_TypeValidationError",Ls=`vercel.ai.error.${Ds}`,Dr=Symbol.for(Ls);var ut=class Pt 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 o=[];r.entityName&&o.push(r.entityName),r.entityId&&o.push(`id: "${r.entityId}"`),n+=o.join(", "),n+=")"}super({name:Ds,message:`${n}: Value: ${JSON.stringify(e)}.
|
|
3
|
+
Error message: ${_s(s)}`,cause:s}),this[Dr]=!0,this.value=e,this.context=r}static isInstance(e){return G.hasMarker(e,Ls)}static wrap({value:e,cause:s,context:r}){var n,o,l;return Pt.isInstance(s)&&s.value===e&&((n=s.context)==null?void 0:n.field)===(r==null?void 0:r.field)&&((o=s.context)==null?void 0:o.entityName)===(r==null?void 0:r.entityName)&&((l=s.context)==null?void 0:l.entityId)===(r==null?void 0:r.entityId)?s:new Pt({value:e,cause:s,context:r})}};const js="AI_UnsupportedFunctionalityError",$s=`vercel.ai.error.${js}`,Lr=Symbol.for($s);var jr=class extends G{constructor({functionality:t,message:e=`'${t}' functionality not supported.`}){super({name:js,message:e}),this[Lr]=!0,this.functionality=t}static isInstance(t){return G.hasMarker(t,$s)}};class At 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 Xt=10,$r=13,Te=32;function xt(t){}function Fr(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=xt,onError:s=xt,onRetry:r=xt,onComment:n,maxBufferSize:o}=t,l=[];let u=0,v=!0,h,i="",d=0,f,S=!1;function P(c){if(S)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,c.charCodeAt(0)===239&&c.charCodeAt(1)===187&&c.charCodeAt(2)===191&&(c=c.slice(3))),l.length===0){const y=O(c);y!==""&&(l.push(y),u=y.length),R();return}if(c.indexOf(`
|
|
4
|
+
`)===-1&&c.indexOf("\r")===-1){l.push(c),u+=c.length,R();return}l.push(c);const g=l.join("");l.length=0,u=0;const m=O(g);m!==""&&(l.push(m),u=m.length),R()}function R(){o!==void 0&&(u+i.length<=o||(S=!0,l.length=0,u=0,h=void 0,i="",d=0,f=void 0,s(new At(`Buffered data exceeded max buffer size of ${o} characters`,{type:"max-buffer-size-exceeded"}))))}function O(c){let g=0;if(c.indexOf("\r")===-1){let m=c.indexOf(`
|
|
5
|
+
`,g);for(;m!==-1;){if(g===m){d>0&&e({id:h,event:f,data:i}),h=void 0,i="",d=0,f=void 0,g=m+1,m=c.indexOf(`
|
|
6
|
+
`,g);continue}const y=c.charCodeAt(g);if(es(c,g,y)){const E=c.charCodeAt(g+5)===Te?g+6:g+5,N=c.slice(E,m);if(d===0&&c.charCodeAt(m+1)===Xt){e({id:h,event:f,data:N}),h=void 0,i="",f=void 0,g=m+2,m=c.indexOf(`
|
|
7
|
+
`,g);continue}i=d===0?N:`${i}
|
|
8
|
+
${N}`,d++}else ts(c,g,y)?f=c.slice(c.charCodeAt(g+6)===Te?g+7:g+6,m)||void 0:M(c,g,m);g=m+1,m=c.indexOf(`
|
|
9
|
+
`,g)}return c.slice(g)}for(;g<c.length;){const m=c.indexOf("\r",g),y=c.indexOf(`
|
|
10
|
+
`,g);let E=-1;if(m!==-1&&y!==-1?E=m<y?m:y:m!==-1?m===c.length-1?E=-1:E=m:y!==-1&&(E=y),E===-1)break;M(c,g,E),g=E+1,c.charCodeAt(g-1)===$r&&c.charCodeAt(g)===Xt&&g++}return c.slice(g)}function M(c,g,m){if(g===m){C();return}const y=c.charCodeAt(g);if(es(c,g,y)){const L=c.charCodeAt(g+5)===Te?g+6:g+5,j=c.slice(L,m);i=d===0?j:`${i}
|
|
11
|
+
${j}`,d++;return}if(ts(c,g,y)){f=c.slice(c.charCodeAt(g+6)===Te?g+7:g+6,m)||void 0;return}if(y===105&&c.charCodeAt(g+1)===100&&c.charCodeAt(g+2)===58){const L=c.slice(c.charCodeAt(g+3)===Te?g+4:g+3,m);h=L.includes("\0")?void 0:L;return}if(y===58){if(n){const L=c.slice(g,m);n(L.slice(c.charCodeAt(g+1)===Te?2:1))}return}const E=c.slice(g,m),N=E.indexOf(":");if(N===-1){A(E,"",E);return}const k=E.slice(0,N),V=E.charCodeAt(N+1)===Te?2:1,W=E.slice(N+V);A(k,W,E)}function A(c,g,m){switch(c){case"event":f=g||void 0;break;case"data":i=d===0?g:`${i}
|
|
12
|
+
${g}`,d++;break;case"id":h=g.includes("\0")?void 0:g;break;case"retry":/^\d+$/.test(g)?r(parseInt(g,10)):s(new At(`Invalid \`retry\` value: "${g}"`,{type:"invalid-retry",value:g,line:m}));break;default:s(new At(`Unknown field "${c.length>20?`${c.slice(0,20)}…`:c}"`,{type:"unknown-field",field:c,value:g,line:m}));break}}function C(){d>0&&e({id:h,event:f,data:i}),h=void 0,i="",d=0,f=void 0}function w(c={}){if(c.consume&&l.length>0){const g=l.join("");M(g,0,g.length)}v=!0,h=void 0,i="",d=0,f=void 0,l.length=0,u=0,S=!1}return{feed:P,reset:w}}function es(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 ts(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 Ur extends TransformStream{constructor({onError:e,onRetry:s,onComment:r,maxBufferSize:n}={}){let o;super({start(l){o=Fr({onEvent:u=>{l.enqueue(u)},onError(u){typeof e=="function"&&e(u),(e==="terminate"||u.type==="max-buffer-size-exceeded")&&l.error(u)},onRetry:s,onComment:r,maxBufferSize:n})},transform(l){o.feed(l)}})}}new TextDecoder;function $e(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 o=s.length,l=new Array(e);for(let u=0;u<e;u++)l[u]=s[Math.random()*o|0];return l.join("")};if(t==null)return n;if(s.includes(r))throw new Nr({argument:"separator",message:`The separator "${r}" must not be part of the alphabet "${s}".`});return()=>`${t}${r}${n()}`},zr=Q();function qr(t){var e;return((e=globalThis.Buffer)==null?void 0:e.isBuffer(t))??!1}const Zr=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Vr=/"(?: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 ss(t){const e=JSON.parse(t);return e===null||typeof e!="object"||Zr.test(t)===!1&&Vr.test(t)===!1?e:Wr(e)}function Wr(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 o=r[n];o&&typeof o=="object"&&e.push(o)}}}return t}function Br(t){const{stackTraceLimit:e}=Error;try{Error.stackTraceLimit=0}catch{return ss(t)}try{return ss(t)}finally{Error.stackTraceLimit=e}}function Lt(t){if(t.type==="object"||Array.isArray(t.type)&&t.type.includes("object")){const{additionalProperties:s}=t;t.additionalProperties=s!=null&&typeof s!="boolean"?we(s):!1;const{properties:r}=t;if(r!=null)for(const n of Object.keys(r))r[n]=we(r[n])}t.items!=null&&(t.items=Array.isArray(t.items)?t.items.map(we):we(t.items)),t.anyOf!=null&&(t.anyOf=t.anyOf.map(we)),t.allOf!=null&&(t.allOf=t.allOf.map(we)),t.oneOf!=null&&(t.oneOf=t.oneOf.map(we));const{definitions:e}=t;if(e!=null)for(const s of Object.keys(e))e[s]=we(e[s]);return t}function we(t){return typeof t=="boolean"?t:Lt(t)}const Jr=Symbol("Let zodToJsonSchema decide on which parser to use"),rs={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"},Hr=t=>typeof t=="string"?{...rs,name:t}:{...rs,...t};function ae(){return{}}function Yr(t,e){var r,n,o;const s={type:"array"};return(r=t.type)!=null&&r._def&&((o=(n=t.type)==null?void 0:n._def)==null?void 0:o.typeName)!=="ZodAny"&&(s.items=z(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 Kr(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 Gr(){return{type:"boolean"}}function Fs(t,e){return z(t.type._def,e)}const Qr=(t,e)=>z(t.innerType._def,e);function Us(t,e,s){const r=s??e.dateStrategy;if(Array.isArray(r))return{anyOf:r.map(n=>Us(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 Xr(t)}}const Xr=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 en(t,e){return{...z(t.innerType._def,e),default:t.defaultValue()}}function tn(t,e){return e.effectStrategy==="input"?z(t.schema._def,e):ae()}function sn(t){return{type:"string",enum:Array.from(t.values)}}const rn=t=>"type"in t&&t.type==="string"?!1:"allOf"in t;function nn(t,e){const s=[z(t.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),z(t.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(n=>!!n),r=[];return s.forEach(n=>{if(rn(n))r.push(...n.allOf);else{let o=n;if("additionalProperties"in n&&n.additionalProperties===!1){const{additionalProperties:l,...u}=n;o=u}r.push(o)}}),r.length?{allOf:r}:void 0}function an(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 Tt;const de={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:()=>(Tt===void 0&&(Tt=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Tt),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 zs(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":pe(s,"email",r.message,e);break;case"format:idn-email":pe(s,"idn-email",r.message,e);break;case"pattern:zod":ee(s,de.email,r.message,e)}break;case"url":pe(s,"uri",r.message,e);break;case"uuid":pe(s,"uuid",r.message,e);break;case"regex":ee(s,r.regex,r.message,e);break;case"cuid":ee(s,de.cuid,r.message,e);break;case"cuid2":ee(s,de.cuid2,r.message,e);break;case"startsWith":ee(s,RegExp(`^${Mt(r.value,e)}`),r.message,e);break;case"endsWith":ee(s,RegExp(`${Mt(r.value,e)}$`),r.message,e);break;case"datetime":pe(s,"date-time",r.message,e);break;case"date":pe(s,"date",r.message,e);break;case"time":pe(s,"time",r.message,e);break;case"duration":pe(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":ee(s,RegExp(Mt(r.value,e)),r.message,e);break;case"ip":r.version!=="v6"&&pe(s,"ipv4",r.message,e),r.version!=="v4"&&pe(s,"ipv6",r.message,e);break;case"base64url":ee(s,de.base64url,r.message,e);break;case"jwt":ee(s,de.jwt,r.message,e);break;case"cidr":r.version!=="v6"&&ee(s,de.ipv4Cidr,r.message,e),r.version!=="v4"&&ee(s,de.ipv6Cidr,r.message,e);break;case"emoji":ee(s,de.emoji(),r.message,e);break;case"ulid":ee(s,de.ulid,r.message,e);break;case"base64":switch(e.base64Strategy){case"format:binary":pe(s,"binary",r.message,e);break;case"contentEncoding:base64":s.contentEncoding="base64";break;case"pattern:zod":ee(s,de.base64,r.message,e)}break;case"nanoid":ee(s,de.nanoid,r.message,e)}return s}function Mt(t,e){return e.patternStrategy==="escape"?ln(t):t}const on=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function ln(t){let e="";for(let s=0;s<t.length;s++)on.has(t[s])||(e+="\\"),e+=t[s];return e}function pe(t,e,s,r){var n;t.format||(n=t.anyOf)!=null&&n.some(o=>o.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 ee(t,e,s,r){var n;t.pattern||(n=t.allOf)!=null&&n.some(o=>o.pattern)?(t.allOf||(t.allOf=[]),t.pattern&&(t.allOf.push({pattern:t.pattern}),delete t.pattern),t.allOf.push({pattern:ns(e,r),...s&&r.errorMessages&&{errorMessage:{pattern:s}}})):t.pattern=ns(e,r)}function ns(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="",o=!1,l=!1,u=!1;for(let h=0;h<r.length;h++){if(o){n+=r[h],o=!1;continue}if(s.i){if(l){if(r[h].match(/[a-z]/)){u?(n+=r[h],n+=`${r[h-2]}-${r[h]}`.toUpperCase(),u=!1):r[h+1]==="-"&&((v=r[h+2])!=null&&v.match(/[a-z]/))?(n+=r[h],u=!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+=l?`${r[h]}\r
|
|
15
|
+
`:`[${r[h]}\r
|
|
16
|
+
]`;continue}n+=r[h],r[h]==="\\"?o=!0:l&&r[h]==="]"?l=!1:!l&&r[h]==="["&&(l=!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 qs(t,e){var r,n,o,l,u;const s={type:"object",additionalProperties:z(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}=zs(t.keyType._def,e);return{...s,propertyNames:h}}else{if(((o=t.keyType)==null?void 0:o._def.typeName)==="ZodEnum")return{...s,propertyNames:{enum:t.keyType._def.values}};if(((l=t.keyType)==null?void 0:l._def.typeName)==="ZodBranded"&&t.keyType._def.type._def.typeName==="ZodString"&&((u=t.keyType._def.type._def.checks)!=null&&u.length)){const{type:v,...h}=Fs(t.keyType._def,e);return{...s,propertyNames:h}}}return s}function cn(t,e){return e.mapStrategy==="record"?qs(t,e):{type:"array",maxItems:125,items:{type:"array",items:[z(t.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||ae(),z(t.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||ae()],minItems:2,maxItems:2}}}function un(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 dn(){return{not:ae()}}function pn(){return{type:"null"}}const Ot={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function fn(t,e){const s=t.options instanceof Map?Array.from(t.options.values()):t.options;if(s.every(r=>r._def.typeName in Ot&&(!r._def.checks||!r._def.checks.length))){const r=s.reduce((n,o)=>{const l=Ot[o._def.typeName];return l&&!n.includes(l)?[...n,l]: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,o)=>{const l=typeof o._def.value;switch(l){case"string":case"number":case"boolean":return[...n,l];case"bigint":return[...n,"integer"];case"object":if(o._def.value===null)return[...n,"null"];default:return n}},[]);if(r.length===s.length){const n=r.filter((o,l,u)=>u.indexOf(o)===l);return{type:n.length>1?n:n[0],enum:s.reduce((o,l)=>o.includes(l._def.value)?o:[...o,l._def.value],[])}}}else if(s.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:s.reduce((r,n)=>[...r,...n._def.values.filter(o=>!r.includes(o))],[])};return mn(t,e)}const mn=(t,e)=>{const s=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((r,n)=>z(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 gn(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length))return{type:[Ot[t.innerType._def.typeName],"null"]};const s=z(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return s&&{anyOf:[s,{type:"null"}]}}function hn(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 yn(t,e){const s={type:"object",properties:{}},r=[],n=t.shape();for(const l in n){let u=n[l];if(u===void 0||u._def===void 0)continue;const v=bn(u),h=z(u._def,{...e,currentPath:[...e.currentPath,"properties",l],propertyPath:[...e.currentPath,"properties",l]});h!==void 0&&(s.properties[l]=h,v||r.push(l))}r.length&&(s.required=r);const o=vn(t,e);return o!==void 0&&(s.additionalProperties=o),s}function vn(t,e){if(t.catchall._def.typeName!=="ZodNever")return z(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 bn(t){try{return t.isOptional()}catch{return!0}}const Sn=(t,e)=>{var r;if(e.currentPath.toString()===((r=e.propertyPath)==null?void 0:r.toString()))return z(t.innerType._def,e);const s=z(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return s?{anyOf:[{not:ae()},s]}:ae()},En=(t,e)=>{if(e.pipeStrategy==="input")return z(t.in._def,e);if(e.pipeStrategy==="output")return z(t.out._def,e);const s=z(t.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]});return{allOf:[s,z(t.out._def,{...e,currentPath:[...e.currentPath,"allOf",s?"1":"0"]})].filter(r=>r!==void 0)}};function Cn(t,e){return z(t.type._def,e)}function In(t,e){const s={type:"array",uniqueItems:!0,items:z(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 wn(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((s,r)=>z(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[]),additionalItems:z(t.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((s,r)=>z(s._def,{...e,currentPath:[...e.currentPath,"items",`${r}`]})).reduce((s,r)=>r===void 0?s:[...s,r],[])}}function An(){return{not:ae()}}function xn(){return ae()}const Tn=(t,e)=>z(t.innerType._def,e),Mn=(t,e,s)=>{switch(e){case"ZodString":return zs(t,s);case"ZodNumber":return hn(t);case"ZodObject":return yn(t,s);case"ZodBigInt":return Kr(t);case"ZodBoolean":return Gr();case"ZodDate":return Us(t,s);case"ZodUndefined":return An();case"ZodNull":return pn();case"ZodArray":return Yr(t,s);case"ZodUnion":case"ZodDiscriminatedUnion":return fn(t,s);case"ZodIntersection":return nn(t,s);case"ZodTuple":return wn(t,s);case"ZodRecord":return qs(t,s);case"ZodLiteral":return an(t);case"ZodEnum":return sn(t);case"ZodNativeEnum":return un(t);case"ZodNullable":return gn(t,s);case"ZodOptional":return Sn(t,s);case"ZodMap":return cn(t,s);case"ZodSet":return In(t,s);case"ZodLazy":return()=>t.getter()._def;case"ZodPromise":return Cn(t,s);case"ZodNaN":case"ZodNever":return dn();case"ZodEffects":return tn(t,s);case"ZodAny":return ae();case"ZodUnknown":return xn();case"ZodDefault":return en(t,s);case"ZodBranded":return Fs(t,s);case"ZodReadonly":return Tn(t,s);case"ZodCatch":return Qr(t,s);case"ZodPipeline":return En(t,s);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return(r=>{})()}},Rn=(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 z(t,e,s=!1){var u;const r=e.seen.get(t);if(e.override){const v=(u=e.override)==null?void 0:u.call(e,t,e,r,s);if(v!==Jr)return v}if(r&&!s){const v=_n(r,e);if(v!==void 0)return v}const n={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,n);const o=Mn(t,t.typeName,e),l=typeof o=="function"?z(o(),e):o;if(l&&Pn(t,e,l),e.postProcess){const v=e.postProcess(l,t,e);return n.jsonSchema=l,v}return n.jsonSchema=l,l}const _n=(t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:Rn(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`),ae()):e.$refStrategy==="seen"?ae():void 0}},Pn=(t,e,s)=>(t.description&&(s.description=t.description),s),On=t=>{const e=Hr(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}]))}},Nn=(t,e)=>{const s=On(e);let r=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((v,[h,i])=>({...v,[h]:z(i._def,{...s,currentPath:[...s.basePath,s.definitionPath,h]},!0)??ae()}),{}):void 0;const n=typeof e=="string"?e:(e==null?void 0:e.nameStrategy)==="title"||e==null?void 0:e.name,o=z(t._def,n===void 0?s:{...s,currentPath:[...s.basePath,s.definitionPath,n]},!1)??ae(),l=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;l!==void 0&&(o.title=l);const u=n===void 0?r?{...o,[s.definitionPath]:r}:o:{$ref:[...s.$refStrategy==="relative"?[]:s.basePath,s.definitionPath,n].join("/"),[s.definitionPath]:{...r,[n]:o}};return u.$schema="http://json-schema.org/draft-07/schema#",u},Nt=Symbol.for("vercel.ai.schema");function kn(t){let e;return()=>(e==null&&(e=t()),e)}function mt(t,{validate:e}={}){return{[Nt]:!0,_type:void 0,get jsonSchema(){return typeof t=="function"&&(t=t()),t},validate:e}}function Dn(t){return typeof t=="object"&&t!==null&&Nt in t&&t[Nt]===!0&&"jsonSchema"in t&&"validate"in t}function Ln(t){return t==null?mt({type:"object",properties:{},additionalProperties:!1}):Dn(t)?t:"~standard"in t?t["~standard"].vendor==="zod"?Zs(t):jn(t):t()}function jn(t){return mt(()=>{if(!$n(t))throw new Error(`Standard schema vendor '${t["~standard"].vendor}' does not support JSON Schema conversion.`);return Lt(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 ut({value:e,cause:s.issues})}}})}function $n(t){return t["~standard"].jsonSchema!=null}function Fn(t,e){return mt(()=>Nn(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 Un(t,e){return mt(()=>Lt(xr.toJSONSchema(t,{target:"draft-7",io:"input",reused:"inline"})),{validate:async s=>{const r=await Y.safeParseAsync(t,s);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function zn(t){return"_zod"in t}function Zs(t,e){return zn(t)?Un(t):Fn(t)}async function as({value:t,schema:e,context:s}){const r=await Vs({value:t,schema:e,context:s});if(!r.success)throw ut.wrap({value:t,cause:r.error,context:s});return r.value}async function Vs({value:t,schema:e,context:s}){const r=Ln(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:ut.wrap({value:t,cause:n.error,context:s}),rawValue:t}}catch(n){return{success:!1,error:ut.wrap({value:t,cause:n,context:s}),rawValue:t}}}async function kt({text:t,schema:e}){try{const s=Br(t);return e==null?{success:!0,value:s,rawValue:s}:await Vs({value:s,schema:e})}catch(s){return{success:!1,error:Qt.isInstance(s)?s:new Qt({text:t,cause:s}),rawValue:void 0}}}function qn({stream:t,schema:e}){return t.pipeThrough(new TextDecoderStream).pipeThrough(new Ur).pipeThrough(new TransformStream({async transform({data:s},r){s!=="[DONE]"&&r.enqueue(await kt({text:s,schema:e}))}}))}async function Fe(t){return typeof t=="function"&&(t=t()),t}new TextDecoder;function Zn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}const Ws="AI_InvalidArgumentError",Bs=`vercel.ai.error.${Ws}`,Vn=Symbol.for(Bs);var at=class extends G{constructor({parameter:t,value:e,message:s}){super({name:Ws,message:`Invalid argument for parameter ${t}: ${s}`}),this[Vn]=!0,this.parameter=t,this.value=e}static isInstance(t){return G.hasMarker(t,Bs)}};const Js="AI_UIMessageStreamError",Hs=`vercel.ai.error.${Js}`,Wn=Symbol.for(Hs);var Me=class extends G{constructor({chunkType:t,chunkId:e,message:s}){super({name:Js,message:s}),this[Wn]=!0,this.chunkType=t,this.chunkId=e}static isInstance(t){return G.hasMarker(t,Hs)}};function Ys(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 o=r in t?t[r]:void 0,l=n!==null&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof Date)&&!(n instanceof RegExp),u=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);l&&u?s[r]=Ys(o,n):s[r]=n}return s}const a={array:Y.array,boolean:Y.boolean,custom:Y.custom,discriminatedUnion:Y.discriminatedUnion,enum:Y.enum,instanceof:Y.instanceof,lazy:Y.lazy,literal:Y.literal,looseObject:Y.looseObject,never:Y.never,null:Y.null,number:Y.number,object:Y.object,record:Y.record,string:Y.string,union:Y.union,unknown:Y.unknown},Ne=a.lazy(()=>a.union([a.null(),a.string(),a.number(),a.boolean(),a.record(a.string(),Ne.optional()),a.array(Ne)])),_=a.record(a.string(),a.record(a.string(),Ne.optional())),He=a.union([a.string(),a.instanceof(Uint8Array),a.instanceof(ArrayBuffer),a.custom(qr,{message:"Must be a Buffer"})]),jt=a.record(a.string(),a.string()),Ks=a.object({type:a.literal("text"),text:a.string(),providerOptions:_.optional()}),Bn=a.object({type:a.literal("image"),image:a.union([He,a.instanceof(URL),jt]),mediaType:a.string().optional(),providerOptions:_.optional()}),Gs=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:He}),a.object({type:a.literal("url"),url:a.instanceof(URL)}),a.object({type:a.literal("reference"),reference:jt}),a.object({type:a.literal("text"),text:a.string()})]),Jn=a.discriminatedUnion("type",[a.object({type:a.literal("data"),data:He}),a.object({type:a.literal("url"),url:a.instanceof(URL)})]),Qs=a.object({type:a.literal("file"),data:a.union([Gs,He,a.instanceof(URL),jt]),filename:a.string().optional(),mediaType:a.string(),providerOptions:_.optional()}),Hn=a.object({type:a.literal("reasoning"),text:a.string(),providerOptions:_.optional()}),Yn=a.object({type:a.literal("custom"),kind:a.string().transform(t=>t),providerOptions:_.optional()}),Kn=a.object({type:a.literal("reasoning-file"),data:a.union([Jn,He,a.instanceof(URL)]),mediaType:a.string(),providerOptions:_.optional()}),Gn=a.object({type:a.literal("tool-call"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerOptions:_.optional(),providerExecuted:a.boolean().optional()}),Qn=a.discriminatedUnion("type",[a.object({type:a.literal("text"),value:a.string(),providerOptions:_.optional()}),a.object({type:a.literal("json"),value:Ne,providerOptions:_.optional()}),a.object({type:a.literal("execution-denied"),reason:a.string().optional(),providerOptions:_.optional()}),a.object({type:a.literal("error-text"),value:a.string(),providerOptions:_.optional()}),a.object({type:a.literal("error-json"),value:Ne,providerOptions:_.optional()}),a.object({type:a.literal("content"),value:a.array(a.union([a.object({type:a.literal("text"),text:a.string(),providerOptions:_.optional()}),a.object({type:a.literal("file"),data:Gs,mediaType:a.string(),filename:a.string().optional(),providerOptions:_.optional()}),a.object({type:a.literal("file-data"),data:a.string(),mediaType:a.string(),filename:a.string().optional(),providerOptions:_.optional()}),a.object({type:a.literal("file-url"),url:a.string(),mediaType:a.string().optional(),providerOptions:_.optional()}),a.object({type:a.literal("file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:_.optional()}),a.object({type:a.literal("file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:_.optional()}),a.object({type:a.literal("image-data"),data:a.string(),mediaType:a.string(),providerOptions:_.optional()}),a.object({type:a.literal("image-url"),url:a.string(),providerOptions:_.optional()}),a.object({type:a.literal("image-file-id"),fileId:a.union([a.string(),a.record(a.string(),a.string())]),providerOptions:_.optional()}),a.object({type:a.literal("image-file-reference"),providerReference:a.record(a.string(),a.string()),providerOptions:_.optional()}),a.object({type:a.literal("custom"),providerOptions:_.optional()})]))})]),Xs=a.object({type:a.literal("tool-result"),toolCallId:a.string(),toolName:a.string(),output:Qn,providerOptions:_.optional()}),Xn=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()}),ea=a.object({type:a.literal("tool-approval-response"),approvalId:a.string(),approved:a.boolean(),reason:a.string().optional()}),ta=a.object({role:a.literal("system"),content:a.string(),providerOptions:_.optional()}),sa=a.object({role:a.literal("user"),content:a.union([a.string(),a.array(a.union([Ks,Bn,Qs]))]),providerOptions:_.optional()}),ra=a.object({role:a.literal("assistant"),content:a.union([a.string(),a.array(a.union([Ks,Yn,Qs,Hn,Kn,Gn,Xs,Xn]))]),providerOptions:_.optional()}),na=a.object({role:a.literal("tool"),content:a.array(a.union([Xs,ea])),providerOptions:_.optional()});a.union([ta,sa,ra,na]);function aa(t){const e=["ROOT"];let s=-1,r=null,n=0;function o(i){return i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f"}function l(i,d,f){switch(i){case'"':s=d,e.pop(),e.push(f),e.push("INSIDE_STRING");break;case"f":case"t":case"n":s=d,r=d,e.pop(),e.push(f),e.push("INSIDE_LITERAL");break;case"-":e.pop(),e.push(f),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=d,e.pop(),e.push(f),e.push("INSIDE_NUMBER");break;case"{":s=d,e.pop(),e.push(f),e.push("INSIDE_OBJECT_START");break;case"[":s=d,e.pop(),e.push(f),e.push("INSIDE_ARRAY_START")}}function u(i,d){switch(i){case",":e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":s=d,e.pop()}}function v(i,d){switch(i){case",":e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":s=d,e.pop()}}for(let i=0;i<t.length;i++){const d=t[i];switch(e[e.length-1]){case"ROOT":l(d,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(d){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY");break;case"}":s=i,e.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":switch(d){case'"':e.pop(),e.push("INSIDE_OBJECT_KEY")}break;case"INSIDE_OBJECT_KEY":switch(d){case'"':e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY")}break;case"INSIDE_OBJECT_AFTER_KEY":switch(d){case":":e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE")}break;case"INSIDE_OBJECT_BEFORE_VALUE":l(d,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":u(d,i);break;case"INSIDE_STRING":switch(d){case'"':e.pop(),s=i;break;case"\\":e.push("INSIDE_STRING_ESCAPE");break;default:s=i}break;case"INSIDE_ARRAY_START":switch(d){case"]":s=i,e.pop();break;default:s=i,l(d,i,"INSIDE_ARRAY_AFTER_VALUE")}break;case"INSIDE_ARRAY_AFTER_VALUE":switch(d){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":l(d,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":e.pop(),d==="u"?(n=0,e.push("INSIDE_STRING_UNICODE_ESCAPE")):s=i;break;case"INSIDE_STRING_UNICODE_ESCAPE":o(d)&&(n++,n===4&&(e.pop(),s=i));break;case"INSIDE_NUMBER":switch(d){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(d,i),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&u(d,i);break;case"}":e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&u(d,i);break;case"]":e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(d,i);break;default:e.pop()}break;case"INSIDE_LITERAL":{const f=t.substring(r,i+1);!"false".startsWith(f)&&!"true".startsWith(f)&&!"null".startsWith(f)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?u(d,i):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&v(d,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 d=t.substring(r,t.length);"true".startsWith(d)?h+="true".slice(d.length):"false".startsWith(d)?h+="false".slice(d.length):"null".startsWith(d)&&(h+="null".slice(d.length))}}return h}async function ia(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=await kt({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=await kt({text:aa(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 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}
|
|
20
|
+
`)}})}});const oa=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:_.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:_.optional()})]),startIndex:a.number().int().nonnegative().optional(),endIndex:a.number().int().nonnegative().optional(),citedText:a.string().optional()}),We=a.record(a.string(),Ne.optional()),la=kn(()=>Zs(a.union([a.looseObject({type:a.literal("text-start"),id:a.string(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("text-delta"),id:a.string(),delta:a.string(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("text-end"),id:a.string(),citations:a.array(oa).optional(),providerMetadata:_.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:_.optional(),toolMetadata:We.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:_.optional(),toolMetadata:We.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:_.optional(),toolMetadata:We.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:_.optional()}),a.looseObject({type:a.literal("tool-output-available"),toolCallId:a.string(),output:a.unknown(),providerExecuted:a.boolean().optional(),providerMetadata:_.optional(),toolMetadata:We.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:_.optional(),toolMetadata:We.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:_.optional()}),a.looseObject({type:a.literal("reasoning-delta"),id:a.string(),delta:a.string(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("reasoning-end"),id:a.string(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("custom"),kind:a.string().transform(t=>t),providerMetadata:_.optional()}),a.looseObject({type:a.literal("source-url"),sourceId:a.string(),url:a.string(),title:a.string().optional(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("source-document"),sourceId:a.string(),mediaType:a.string(),title:a.string(),filename:a.string().optional(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("file"),url:a.string(),mediaType:a.string(),providerMetadata:_.optional()}),a.looseObject({type:a.literal("reasoning-file"),url:a.string(),mediaType:a.string(),providerMetadata:_.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 ca(t){return t.type.startsWith("data-")}function Ue(){return Object.create(null)}function dt(t){return t.type.startsWith("tool-")}function er(t){return t.type==="dynamic-tool"}function oe(t){return dt(t)||er(t)}function pt(t){return t.type.split("-").slice(1).join("-")}function ua(t){return er(t)?t.toolName:pt(t)}function tr({lastMessage:t,messageId:e}){const s=(t==null?void 0:t.role)==="assistant"?t:{id:e,metadata:void 0,role:"assistant",parts:[]},r=Ue(),n=s.parts.findLastIndex(l=>l.type==="step-start");let o=0;for(const l of s.parts.slice(n+1)){if(!oe(l))continue;const u=o;dt(l)&&o++,l.state==="input-streaming"&&(r[l.toolCallId]={text:l.rawInput??"",inputEncoding:l.inputEncoding,index:u,toolName:l.type==="dynamic-tool"?l.toolName:pt(l),dynamic:l.type==="dynamic-tool",title:l.title,toolMetadata:l.toolMetadata})}return{message:s,activeTextParts:Ue(),activeReasoningParts:Ue(),partialToolCalls:r}}function da({stream:t,messageMetadataSchema:e,dataPartSchemas:s,runUpdateMessageJob:r,onError:n,onToolCall:o,onData:l,resetStateOnMessageIdChange:u=!1,resetStateOnFirstMessageStart:v=!1}){let h=!0;return t.pipeThrough(new TransformStream({async transform(i,d){await r(async({state:f,write:S})=>{function P(){const c=f.message.parts;let g=c.length-1;for(;g>=0&&c[g].type!=="step-start";)g--;return c.slice(g+1)}function R(){return P().filter(oe)}function O(c){let g=R().find(m=>m.toolCallId===c);if(g==null){const m=f.message.parts;for(let y=m.length-1;y>=0;y--){const E=m[y];if(oe(E)&&E.toolCallId===c){g=E;break}}}if(g==null)throw new Me({chunkType:"tool-invocation",chunkId:c,message:`No tool invocation found for tool call ID "${c}".`});return g}function M(c){const g=f.message.parts.filter(oe).find(m=>{var y;return((y=m.approval)==null?void 0:y.id)===c});if(g==null)throw new Me({chunkType:"tool-approval-response",chunkId:c,message:`No tool invocation found for approval ID "${c}".`});return g}function A(c,g){const m=g??P().find(N=>dt(N)&&N.toolCallId===c.toolCallId),y=c,E=m;if(m!=null){m.state=c.state,E.type=`tool-${c.toolName}`,E.input=y.input,E.output=y.output,E.errorText=y.errorText,E.rawInput=y.rawInput,y.inputEncoding!=null?E.inputEncoding=y.inputEncoding:delete E.inputEncoding,E.preliminary=y.preliminary,c.title!==void 0&&(E.title=c.title),c.toolMetadata!==void 0&&(E.toolMetadata=c.toolMetadata),E.providerExecuted=y.providerExecuted??m.providerExecuted;const N=y.providerMetadata;if(N!=null)if(c.state==="output-available"||c.state==="output-error"){const k=m;k.resultProviderMetadata=N}else m.callProviderMetadata=N}else f.message.parts.push({type:`tool-${c.toolName}`,toolCallId:c.toolCallId,state:c.state,title:c.title,...c.toolMetadata!==void 0?{toolMetadata:c.toolMetadata}:{},input:y.input,...y.inputEncoding!=null?{inputEncoding:y.inputEncoding}:{},output:y.output,rawInput:y.rawInput,errorText:y.errorText,providerExecuted:y.providerExecuted,preliminary:y.preliminary,...y.providerMetadata!=null&&(c.state==="output-available"||c.state==="output-error")?{resultProviderMetadata:y.providerMetadata}:{},...y.providerMetadata!=null&&!(c.state==="output-available"||c.state==="output-error")?{callProviderMetadata:y.providerMetadata}:{}})}function C(c,g){const m=g??P().find(N=>N.type==="dynamic-tool"&&N.toolCallId===c.toolCallId),y=c,E=m;if(m!=null){m.state=c.state,E.toolName=c.toolName,E.input=y.input,E.output=y.output,E.errorText=y.errorText,E.rawInput=y.rawInput,y.inputEncoding!=null?E.inputEncoding=y.inputEncoding:delete E.inputEncoding,E.preliminary=y.preliminary,c.title!==void 0&&(E.title=c.title),c.toolMetadata!==void 0&&(E.toolMetadata=c.toolMetadata),E.providerExecuted=y.providerExecuted??m.providerExecuted;const N=y.providerMetadata;if(N!=null)if(c.state==="output-available"||c.state==="output-error"){const k=m;k.resultProviderMetadata=N}else m.callProviderMetadata=N}else f.message.parts.push({type:"dynamic-tool",toolName:c.toolName,toolCallId:c.toolCallId,state:c.state,input:y.input,...y.inputEncoding!=null?{inputEncoding:y.inputEncoding}:{},output:y.output,errorText:y.errorText,preliminary:y.preliminary,providerExecuted:y.providerExecuted,title:c.title,...c.toolMetadata!==void 0?{toolMetadata:c.toolMetadata}:{},...y.providerMetadata!=null&&(c.state==="output-available"||c.state==="output-error")?{resultProviderMetadata:y.providerMetadata}:{},...y.providerMetadata!=null&&!(c.state==="output-available"||c.state==="output-error")?{callProviderMetadata:y.providerMetadata}:{}})}async function w(c){if(c!=null){const g=f.message.metadata!=null?Ys(f.message.metadata,c):c;e!=null&&await as({value:g,schema:e,context:{field:"message.metadata",entityId:f.message.id}}),f.message.metadata=g}}switch(i.type){case"text-start":{const c={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};f.activeTextParts[i.id]=c,f.message.parts.push(c),S();break}case"text-delta":{const c=f.activeTextParts[i.id];if(c==null)throw new Me({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.`});c.text+=i.delta,c.providerMetadata=i.providerMetadata??c.providerMetadata,S();break}case"text-end":{const c=f.activeTextParts[i.id];if(c==null)throw new Me({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.`});c.state="done",i.citations!=null&&(c.citations=i.citations),c.providerMetadata=i.providerMetadata??c.providerMetadata,delete f.activeTextParts[i.id],S();break}case"custom":{const c={type:"custom",kind:i.kind,providerMetadata:i.providerMetadata};f.message.parts.push(c),S();break}case"reasoning-start":{const c={type:"reasoning",id:i.id,text:"",providerMetadata:i.providerMetadata,state:"streaming"};f.activeReasoningParts[i.id]=c,f.message.parts.push(c),S();break}case"reasoning-delta":{const c=f.activeReasoningParts[i.id];if(c==null)throw new Me({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.`});c.text+=i.delta,c.providerMetadata=i.providerMetadata??c.providerMetadata,S();break}case"reasoning-end":{const c=f.activeReasoningParts[i.id];if(c==null)throw new Me({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.`});c.providerMetadata=i.providerMetadata??c.providerMetadata,c.state="done",delete f.activeReasoningParts[i.id],S();break}case"file":case"reasoning-file":f.message.parts.push({type:i.type,mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),S();break;case"source-url":f.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),S();break;case"source-document":f.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),S();break;case"tool-input-start":{const c=P().filter(dt);f.partialToolCalls[i.toolCallId]={text:"",inputEncoding:i.inputEncoding,toolName:i.toolName,index:c.length,dynamic:i.dynamic,title:i.title,toolMetadata:i.toolMetadata},i.dynamic?C({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}),S();break}case"tool-input-delta":{const c=f.partialToolCalls[i.toolCallId];if(c==null)throw new Me({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.`});c.text+=i.inputTextDelta;const g=c.inputEncoding==="text"?c.text:(await ia(c.text)).value;c.dynamic?C({toolCallId:i.toolCallId,toolName:c.toolName,state:"input-streaming",inputEncoding:c.inputEncoding,input:g,rawInput:c.text,title:c.title,toolMetadata:c.toolMetadata}):A({toolCallId:i.toolCallId,toolName:c.toolName,state:"input-streaming",inputEncoding:c.inputEncoding,input:g,rawInput:c.text,title:c.title,toolMetadata:c.toolMetadata}),S();break}case"tool-input-available":i.dynamic?C({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}),S(),o&&!i.providerExecuted&&await o({toolCall:i});break;case"tool-input-error":{const c=P().filter(oe).find(g=>g.toolCallId===i.toolCallId);(c!=null?c.type==="dynamic-tool":i.dynamic)?C({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}),S();break}case"tool-approval-request":{const c=O(i.toolCallId);c.state="approval-requested",c.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}:{}},S();break}case"tool-approval-response":{const c=M(i.approvalId),g=c.approval==null?{id:i.approvalId}:c.approval;c.state="approval-responded",c.approval={...g,id:i.approvalId,approved:i.approved,...i.reason!=null?{reason:i.reason}:{}},i.providerExecuted!=null&&(c.providerExecuted=i.providerExecuted),i.providerMetadata!=null&&(c.callProviderMetadata=i.providerMetadata),S();break}case"tool-output-denied":{const c=O(i.toolCallId);c.state="output-denied",S();break}case"tool-output-available":{const c=O(i.toolCallId);c.type==="dynamic-tool"?C({toolCallId:i.toolCallId,toolName:c.toolName,state:"output-available",input:c.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:c.title,toolMetadata:i.toolMetadata??c.toolMetadata},c):A({toolCallId:i.toolCallId,toolName:pt(c),state:"output-available",input:c.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:c.title,toolMetadata:i.toolMetadata??c.toolMetadata},c),S();break}case"tool-output-error":{const c=O(i.toolCallId);c.type==="dynamic-tool"?C({toolCallId:i.toolCallId,toolName:c.toolName,state:"output-error",input:c.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:c.title,toolMetadata:i.toolMetadata??c.toolMetadata},c):A({toolCallId:i.toolCallId,toolName:pt(c),state:"output-error",input:c.input,rawInput:c.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:c.title,toolMetadata:i.toolMetadata??c.toolMetadata},c),S();break}case"start-step":f.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{const c=P();f.activeTextParts=Ue(),f.activeReasoningParts=Ue(),f.partialToolCalls=Ue(),c.length>0&&(f.message.parts.splice(f.message.parts.length-c.length,c.length),S());break}case"start":{const c=v&&h||u&&i.messageId!=null&&i.messageId!==f.message.id;h=!1,c&&Object.assign(f,tr({lastMessage:void 0,messageId:i.messageId??f.message.id}),{finishReason:void 0}),i.messageId!=null&&(f.message.id=i.messageId),await w(i.messageMetadata),(c||i.messageId!=null||i.messageMetadata!=null)&&S({updateStatus:!1});break}case"finish":i.finishReason!=null&&(f.finishReason=i.finishReason),await w(i.messageMetadata),i.messageMetadata!=null&&S();break;case"message-metadata":await w(i.messageMetadata),i.messageMetadata!=null&&S();break;case"error":n==null||n(new Error(i.errorText));break;default:if(ca(i)){if((s==null?void 0:s[i.type])!=null){const m=f.message.parts.findIndex(E=>"id"in E&&"data"in E&&E.id===i.id&&E.type===i.type),y=m>=0?m:f.message.parts.length;await as({value:i.data,schema:s[i.type],context:{field:`message.parts[${y}].data`,entityName:i.type,entityId:i.id}})}const c=i;if(c.transient){l==null||l(c);break}const g=c.id!=null?f.message.parts.find(m=>c.type===m.type&&c.id===m.id):void 0;g!=null?g.data=c.data:f.message.parts.push(c),l==null||l(c),S()}}d.enqueue(i)})}}))}async function pa({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:o}=await r.read();if(o)break}}catch(o){e==null||e(o)}finally{s==null||s.removeEventListener("abort",n),r.releaseLock()}}function fa(){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(),Ne.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 ma=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 is({response:t,url:e,fallbackMessage:s}){const r=await t.text();return new Ts({message:r||s,url:e,requestBodyValues:void 0,statusCode:t.status,responseBody:r})}async function ga(t){if(t==null)return[];if(!globalThis.FileList||!(t instanceof globalThis.FileList))throw new jr({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,o)=>{const l=new FileReader;l.onload=u=>{var v;n((v=u.target)==null?void 0:v.result)},l.onerror=u=>o(u),l.readAsDataURL(e)})}}))}function ha(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 ya=class{constructor({api:t="/api/chat",credentials:e,headers:s,body:r,fetch:n,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:l}){this.api=t,this.credentials=e,this.headers=s,this.body=r,this.fetch=n,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=l}async sendMessages({abortSignal:t,...e}){var f;const s=await Fe(this.body),r=await Fe(this.headers),n=await Fe(this.credentials),o={...$e(r),...$e(e.headers)},l=await((f=this.prepareSendMessagesRequest)==null?void 0:f.call(this,{api:this.api,id:e.chatId,messages:e.messages,body:{...s,...e.body},headers:o,credentials:n,requestMetadata:e.metadata,trigger:e.trigger,messageId:e.messageId})),u=(l==null?void 0:l.api)??this.api,v=(l==null?void 0:l.headers)!==void 0?$e(l.headers):o,h=(l==null?void 0:l.body)!==void 0?l.body:{...s,...e.body,id:e.chatId,messages:e.messages,trigger:e.trigger,messageId:e.messageId},i=(l==null?void 0:l.credentials)??n,d=await(this.fetch??globalThis.fetch)(u,{method:"POST",headers:{"content-type":"application/json",...v},body:JSON.stringify(h),credentials:i,signal:t});if(!d.ok)throw await is({response:d,url:u,fallbackMessage:"Failed to fetch the chat response."});if(!d.body)throw new ct({message:"The response body is empty."});return this.processResponseStream(d.body)}async reconnectToStream(t){var i;const e=await Fe(this.body),s=await Fe(this.headers),r=await Fe(this.credentials),n={...$e(s),...$e(t.headers)},o=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 l=o==null?void 0:o.api;if(l==null){if(t.chatId==="."||t.chatId==="..")throw new at({parameter:"chatId",value:t.chatId,message:'Chat IDs must not be "." or ".." when using the default reconnect URL.'});l=ha(this.api,`/${encodeURIComponent(t.chatId)}/stream`)}const u=(o==null?void 0:o.headers)!==void 0?$e(o.headers):n,v=(o==null?void 0:o.credentials)??r,h=await(this.fetch??globalThis.fetch)(l,{method:"GET",headers:u,credentials:v,signal:t.abortSignal});if(h.status===204)return null;if(!h.ok)throw await is({response:h,url:l,fallbackMessage:"Failed to fetch the chat response."});if(!h.body)throw new ct({message:"The response body is empty."});return this.processResponseStream(h.body)}},ft=class extends ya{constructor({resumeStreamIsReplay:t=!0,...e}={}){super(e),this.resumeStreamIsReplay=t}processResponseStream(t){return qn({stream:t,schema:la}).pipeThrough(new TransformStream({async transform(e,s){if(!e.success)throw e.error;s.enqueue(e.value)}}))}},va=class{get id(){return this._id??(this._id=this.generateId())}constructor({generateId:t=zr,id:e,transport:s=new ft,messageMetadataSchema:r,dataPartSchemas:n,state:o,onError:l,onToolCall:u,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 ma,this.activeStopCount=0,this.stopGeneration=0,this.sendMessage=async(d,f)=>{var P;if(d==null){let R=this.pendingApprovalMessageId;if(R==null){R=(P=this.lastMessage)==null?void 0:P.id;for(let M=this.state.messages.length-1;M>=0;M--){const A=this.state.messages[M];if(A.role==="assistant"&&A.parts.some(C=>oe(C)&&C.state==="approval-responded")){R=A.id;break}}}const O=R!=null&&R===this.pendingApprovalMessageId?this.state.messages.findIndex(M=>M.id===R):-1;await this.makeRequestForToolApproval({messageId:R,messageIndex:O,...f});return}let S;if("text"in d||"files"in d){const R=new AbortController;this.pendingMessagePreparations.add(R);let O;try{O=Array.isArray(d.files)?d.files:await ga(d.files)}finally{this.pendingMessagePreparations.delete(R)}if(R.signal.aborted)return;S={parts:[...O,..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}}else S=d;if(d.messageId!=null){const R=this.state.messages.findIndex(O=>O.id===d.messageId);if(R===-1)throw new at({parameter:"message.messageId",value:d.messageId,message:`message with id ${d.messageId} not found`});if(this.state.messages[R].role!=="user")throw new at({parameter:"message.messageId",value:d.messageId,message:`message with id ${d.messageId} is not a user message`});this.state.messages=this.state.messages.slice(0,R+1),this.state.replaceMessage(R,{id:d.messageId,...S,role:S.role??"user",metadata:d.metadata})}else this.state.pushMessage({...S,id:S.id??this.generateId(),role:S.role??"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{const S=d==null?this.state.messages.length-1:this.state.messages.findIndex(P=>P.id===d);if(S===-1)throw new at({parameter:"messageId",value:d,message:`message ${d} not found`});this.state.messages=this.state.messages.slice(0,this.messages[S].role==="assistant"?S:S+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this["~resumeStreamIfDisconnected"]=async({shouldResume:d=()=>!0}={})=>{const f=this.activeResponse;this.resumableStreamState==null&&f!=null&&(await f.completionPromise,this.resumableStreamState!==f.state)||this.resumableStreamState!=null&&d()&&await this.resumeStream()},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:d,approved:f,reason:S,options:P})=>this.jobExecutor.run(async()=>{const R=this.state.messages,O=A=>oe(A)&&A.state==="approval-requested"&&A.approval.id===d?{...A,state:"approval-responded",approval:{...A.approval,id:d,approved:f,reason:S}}:A,M=R.findIndex(A=>A.parts.some(C=>oe(C)&&C.state==="approval-requested"&&C.approval.id===d));if(M!==-1){const A=R[M];this.state.replaceMessage(M,{...A,parts:A.parts.map(O)}),this.pendingApprovalMessageId=A.id}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(O)),M!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const A=await this.shouldSendAutomatically(R[M].id);A&&this.runAutomaticRequest(()=>{var w;const C=M===-1?(w=this.lastMessage)==null?void 0:w.id:R[M].id;return this.makeRequestForToolApproval({messageId:C,messageIndex:M,...P})},A)}}),this.addToolOutput=async({state:d,toolCallId:f,output:S,errorText:P,options:R})=>this.jobExecutor.run(async()=>{const O=this.state.messages,M=C=>{if(!oe(C)||C.toolCallId!==f)return C;const{approval:w,...c}=C,g=(w==null?void 0:w.approved)===!0?{approval:{...w,approved:w.approved}}:{};return d==="output-error"?{...c,...g,state:d,input:C.input,output:void 0,errorText:P}:{...c,...g,state:"output-available",input:C.input,output:S,errorText:void 0}},A=O.findIndex(C=>C.parts.some(w=>oe(w)&&w.toolCallId===f));if(A!==-1){const C=O[A];this.state.replaceMessage(A,{...C,parts:C.parts.map(M)})}if(this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(M)),A!==-1&&this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen){const C=await this.shouldSendAutomatically(O[A].id);C&&this.runAutomaticRequest(()=>this.makeRequest({trigger:"submit-message",messageId:O[A].id,...R}),C)}}),this.addToolResult=this.addToolOutput,this.stop=async()=>{this.activeStopCount++,this.stopGeneration++;try{const d=this.activeResumeRequest,f=this.activeResponse;for(const S of this.pendingMessagePreparations)S.abort();d==null||d.abortController.abort(),f==null||f.abortController.abort(),await Promise.all([d==null?void 0:d.completionPromise,f==null?void 0:f.completionPromise]),await this.jobExecutor.waitForIdle()}finally{this.activeStopCount--}},this.dispose=async()=>{var d,f;await this.stop(),(f=(d=this.transport).close)==null||f.call(d)},this._id=e,this.transport=s,this.generateId=t,this.messageMetadataSchema=r,this.dataPartSchemas=n,this.state=o,this.onError=l,this.onToolCall=u,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=o=>o!=null&&this.interruptedMessageIds.has(o);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=fa();try{await this.makeRequestImpl({...t,completionPromise:e.promise})}finally{e.resolve()}}async makeRequestImpl({trigger:t,metadata:e,headers:s,body:r,messageId:n,completionPromise:o}){var c,g;t!=="resume-stream"&&(this.resumableStreamState=void 0);const l=new AbortController,u=t==="resume-stream"?{abortController:l,completionPromise:o}:void 0;u&&((c=this.activeResumeRequest)==null||c.abortController.abort(),this.activeResumeRequest=u);const v=()=>u==null||this.activeResumeRequest===u,h=()=>{this.activeResumeRequest===u&&(this.activeResumeRequest=void 0)};let i;if(t==="resume-stream")try{const m=await this.transport.reconnectToStream({chatId:this.id,abortSignal:l.signal,metadata:e,headers:s,body:r});if(l.signal.aborted||!v()){await(m==null?void 0:m.cancel().catch(()=>{})),v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),h();return}if(m==null){this.setStatus({status:"ready"}),this.resumableStreamState=void 0,h();return}i=m}catch(m){if(l.signal.aborted||m.name==="AbortError"){v()&&(this.setStatus({status:"ready"}),this.resumableStreamState=void 0),h();return}if(!v())return;this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m}),h();return}this.setStatus({status:"submitted",error:void 0});const d=this.lastMessage,f=t==="submit-message"&&n!=null?this.state.messages.findIndex(m=>m.id===n):this.state.messages.length-1,S=f===-1?d:this.state.messages[f],P=S==null?void 0:S.id,R=t==="resume-stream"&&(S==null?void 0:S.role)==="assistant"&&S.parts.some(m=>oe(m)&&(m.state==="input-streaming"||m.state==="input-available"&&m.providerExecuted||m.state==="approval-responded"))?this.state.snapshot(S):void 0,O=f!==-1&&f<this.state.messages.length-1&&(S==null?void 0:S.role)==="assistant";let M=!1,A=!1,C=!1,w;try{const m={state:t==="resume-stream"&&this.resumableStreamState!=null?this.resumableStreamState:tr({lastMessage:t==="resume-stream"?R:t==="regenerate-message"?void 0:this.state.snapshot(S),messageId:this.generateId()}),abortController:l,completionPromise:o};w=m,m.abortController.signal.addEventListener("abort",()=>{M=!0}),this.activeResponse=m;let y;t==="resume-stream"?y=i:y=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:m.abortController.signal,metadata:e,headers:s,body:r,trigger:t,messageId:n});const E=N=>this.jobExecutor.run(()=>m.abortController.signal.aborted?Promise.resolve():N({state:m.state,write:({updateStatus:k=!0}={})=>{if(m.abortController.signal.aborted)return;k&&this.setStatus({status:"streaming"});const V=this.state.messages.findLastIndex(W=>W.id===m.state.message.id);if(V!==-1)this.state.replaceMessage(V,m.state.message);else if(O){const W=this.state.messages.findLastIndex(L=>L.id===P);W!==-1?this.state.replaceMessage(W,m.state.message):this.state.pushMessage(m.state.message)}else this.state.pushMessage(m.state.message)}}));if(await pa({stream:da({stream:y,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:m.abortController.signal,onError:N=>{throw N}}),M)return v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===m.state&&(this.resumableStreamState=void 0)),null;v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===m.state&&(this.resumableStreamState=void 0))}catch(m){if(M||m.name==="AbortError")return M=!0,v()&&(this.setStatus({status:"ready"}),this.resumableStreamState===(w==null?void 0:w.state)&&(this.resumableStreamState=void 0)),null;if(!v())return null;if(C=!0,m instanceof TypeError){const y=m.message.toLowerCase();A=y.includes("fetch")||y.includes("network")||y==="load failed"}A?this.resumableStreamState=w==null?void 0:w.state:this.resumableStreamState===(w==null?void 0:w.state)&&(this.resumableStreamState=void 0),this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m})}finally{try{if(w){const{message:m,finishReason:y}=w.state;y==="interrupted"?this.interruptedMessageIds.add(m.id):!M&&!C&&this.interruptedMessageIds.delete(m.id),(g=this.onFinish)==null||g.call(this,{message:w.state.message,messages:this.state.messages,isAbort:M,isDisconnect:A,isError:C,finishReason:w.state.finishReason})}}finally{this.activeResponse===w&&(this.activeResponse=void 0),h()}}!M&&!C&&(w==null?void 0:w.state.finishReason)!=="interrupted"&&await this.runAutomaticRequest(()=>{var m;return this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,metadata:e,headers:s,body:r})})}},Rt,os;function ba(){if(os)return Rt;os=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(...l){clearTimeout(r);const u=Date.now(),v=u-n,h=s-v;h<=0?(n=u,e.apply(this,l)):r=setTimeout(()=>{n=Date.now(),e.apply(this,l)},h)}}return Rt=t,Rt}var Sa=ba();const Ea=Zn(Sa);function Ca(t,e){return e!=null?Ea(t,e):t}function Ia(t){return Array.isArray(t)?[...t]:t!=null&&typeof t=="object"&&(Object.getPrototypeOf(t)===Object.prototype||Object.getPrototypeOf(t)===null)?{...t}:t}var ne,ze,qe,Re,_e,Pe,Ae,Be,Je,Ss,wa=(Ss=class{constructor(t=[]){ue(this,ne);ue(this,ze);ue(this,qe);ue(this,Re);ue(this,_e);ue(this,Pe);ue(this,Ae);ue(this,Be);ue(this,Je);K(this,ze,"ready"),K(this,qe,void 0),K(this,Re,new Set),K(this,_e,new Set),K(this,Pe,new Set),this.pushMessage=e=>{K(this,ne,Z(this,ne).concat(e)),Z(this,Ae).call(this)},this.popMessage=()=>{K(this,ne,Z(this,ne).slice(0,-1)),Z(this,Ae).call(this)},this.replaceMessage=(e,s)=>{K(this,ne,[...Z(this,ne).slice(0,e),this.snapshot(s),...Z(this,ne).slice(e+1)]),Z(this,Ae).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=Ia(s.metadata)),r},this["~registerMessagesCallback"]=(e,s)=>{const r=s?Ca(e,s):e;return Z(this,Re).add(r),()=>{Z(this,Re).delete(r)}},this["~registerStatusCallback"]=e=>(Z(this,_e).add(e),()=>{Z(this,_e).delete(e)}),this["~registerErrorCallback"]=e=>(Z(this,Pe).add(e),()=>{Z(this,Pe).delete(e)}),K(this,Ae,()=>{Z(this,Re).forEach(e=>e())}),K(this,Be,()=>{Z(this,_e).forEach(e=>e())}),K(this,Je,()=>{Z(this,Pe).forEach(e=>e())}),K(this,ne,t)}get status(){return Z(this,ze)}set status(t){K(this,ze,t),Z(this,Be).call(this)}get error(){return Z(this,qe)}set error(t){K(this,qe,t),Z(this,Je).call(this)}get messages(){return Z(this,ne)}set messages(t){K(this,ne,[...t]),Z(this,Ae).call(this)}},ne=new WeakMap,ze=new WeakMap,qe=new WeakMap,Re=new WeakMap,_e=new WeakMap,Pe=new WeakMap,Ae=new WeakMap,Be=new WeakMap,Je=new WeakMap,Ss),Oe,Es,Aa=(Es=class extends va{constructor({messages:e,...s}){const r=new wa(e);super({...s,state:r});ue(this,Oe);this["~registerMessagesCallback"]=(n,o)=>Z(this,Oe)["~registerMessagesCallback"](n,o),this["~registerStatusCallback"]=n=>Z(this,Oe)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>Z(this,Oe)["~registerErrorCallback"](n),K(this,Oe,r)}},Oe=new WeakMap,Es);const it=new WeakMap;function xa({chat:t,state:e}){if(document.visibilityState!=="visible"||e.pendingVisibilityResume!=null)return;const s=()=>it.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 Ta({chat:t,registration:e}){let s=it.get(t);if(s==null){const o={registrations:new Set};if(it.set(t,o),s=o,typeof document<"u"){const l=()=>xa({chat:t,state:o});document.addEventListener("visibilitychange",l),o.cleanupVisibilityListener=()=>{document.removeEventListener("visibilitychange",l)}}}const{registrations:r}=s,n=r.size===0;return r.add(e),n&&t.status!=="submitted"&&t.status!=="streaming"&&t.resumeStream(),()=>{var o;r.delete(e),r.size===0&&((o=s.cleanupVisibilityListener)==null||o.call(s),it.delete(t))}}function nt(t){return{chat:t,messages:t.messages,status:t.status,error:t.error}}function ls(t,e){return t.chat===e.chat&&t.messages===e.messages&&t.status===e.status&&t.error===e.error}function Ma({throttle:t,experimental_throttle:e,resume:s=!1,...r}={}){const n=t??e,o=p.useRef({}),l=p.useRef({});"chat"in r||(l.current={onToolCall:r.onToolCall,onData:r.onData,onFinish:r.onFinish,onError:r.onError,sendAutomaticallyWhen:r.sendAutomaticallyWhen,transport:r.transport});let u;const v=()=>l.current.transport??u??(u=new ft),h={...r,transport:{get resumeStreamIsReplay(){return v().resumeStreamIsReplay},sendMessages:C=>v().sendMessages(C),reconnectToStream:C=>v().reconnectToStream(C)},onToolCall:C=>{var w,c;return(c=(w=l.current).onToolCall)==null?void 0:c.call(w,C)},onData:C=>{var w,c;return(c=(w=l.current).onData)==null?void 0:c.call(w,C)},onFinish:C=>{var w,c;return(c=(w=l.current).onFinish)==null?void 0:c.call(w,C)},onError:C=>{var w,c;return(c=(w=l.current).onError)==null?void 0:c.call(w,C)},sendAutomaticallyWhen:C=>{var w,c;return((c=(w=l.current).sendAutomaticallyWhen)==null?void 0:c.call(w,C))??!1}},i="chat"in r?r.chat:r.id,{chat:d,isExternallyManaged:f}=p.useMemo(()=>({chat:"chat"in r?r.chat:new Aa(h),isExternallyManaged:"chat"in r}),[i]);p.useEffect(()=>{if(!f)return()=>{d.stop()}},[d,f]);const[S,P]=p.useState(()=>nt(d));S.chat!==d&&P(nt(d)),p.useEffect(()=>{let C=!0;const w=()=>{if(!C)return;const m=nt(d);P(y=>y.chat!==d||ls(y,m)?y:m)},c=[d["~registerMessagesCallback"](w,n),d["~registerStatusCallback"](w),d["~registerErrorCallback"](w)],g=nt(d);return P(m=>ls(m,g)?m:g),()=>{C=!1,c.forEach(m=>m())}},[d,n]);const{messages:R,status:O,error:M}=S,A=p.useCallback(C=>{typeof C=="function"&&(C=C(d.messages)),d.messages=C},[d]);return p.useEffect(()=>{if(s)return Ta({chat:d,registration:o.current})},[s,d]),{get id(){return d.id},messages:R,setMessages:A,sendMessage:d.sendMessage,regenerate:d.regenerate,clearError:d.clearError,stop:d.stop,error:M,resumeStream:d.resumeStream,status:O,addToolResult:d.addToolOutput,addToolOutput:d.addToolOutput,addToolApprovalResponse:d.addToolApprovalResponse}}class cs{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 Dt(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(o=>o.kind==="reasoning"?(e==null?void 0:e.reasoning)===!1?[]:[o]:(e==null?void 0:e.toolActivity)==="hidden"?[]:(e==null?void 0:e.toolActivity)==="status"&&("input"in o||"output"in o)?[{kind:o.kind,label:o.label,done:o.done}]:[o]);return n.length===0?[]:[n.length===r.steps.length&&n.every((o,l)=>o===r.steps[l])?r:{...r,steps:n}]});return s.length===t.length&&s.every((r,n)=>r===t[n])?t:s}const Ra=D.z.union([D.z.string(),D.z.looseObject({id:D.z.string().optional(),label:D.z.string()})]),_a=D.z.looseObject({id:D.z.string().optional(),prompt:D.z.string(),selection:D.z.enum(["single","multiple"]).default("single"),options:D.z.array(Ra).min(1)}),Pa=D.z.looseObject({request_id:D.z.string().optional(),questions:D.z.array(_a).min(1)});function Oa(t){return!!(t!=null&&t.includes("ask_questions"))}const Na=[/\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 ka(t){return Na.some(e=>e.test(t))}function Da(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,o)=>typeof n=="string"?{id:`q${r}-o${o}`,label:n}:{id:n.id??`q${r}-o${o}`,label:n.label}).filter(n=>!ka(n.label))}))}}function _t(t){try{return JSON.parse(t)}catch{return null}}function La(t){if(t==null)return null;if(typeof t=="string")return _t(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 _t(s)}return null}if(typeof t=="object"){if("text"in t){const e=t.text;if(typeof e=="string")return _t(e)}return t}return null}function us(t,e){const s=La(t);if(s==null)return null;const r=Pa.safeParse(s);return r.success?Da(r.data,e):null}function ja(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 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;
|
|
23
|
+
`)}const $a=D.z.object({request_id:D.z.string().uuid(),server_id:D.z.string().uuid(),name:D.z.string().min(1).max(120)}),Fa=D.z.object({connection_required:$a}),ds="data-spec",Ua=D.z.object({label:D.z.string(),done:D.z.boolean()}),za=D.z.object({plan:D.z.array(D.z.object({step:D.z.string(),status:D.z.enum(["pending","in_progress","completed"])}))});function ot(t){const e=[],s=l=>{const u=e.at(-1);(u==null?void 0:u.kind)==="steps"?u.steps.push(l):e.push({kind:"steps",steps:[l]})},r=l=>l==="output-available"||l==="output-error";let n=null,o;for(const l of t)if(!F.isAgentStreamKeepalive(l)&&sr(l)!=="highlight_element"){if(l.state==="output-available"&&(l.type==="dynamic-tool"||l.type.startsWith("tool-"))){const u=Fa.safeParse(l.output);if(u.success){e.push({kind:"connection",request:u.data.connection_required});continue}}if(qa(l)){const u=Za(l);u&&e.push(u);continue}if(l.type==="data-plan"){const u=za.safeParse(l.data);u.success&&(o?o.plan=u.data.plan:(o={kind:"plan",plan:u.data.plan},e.push(o)))}else if(l.type==="data-tool-activity"){const u=Ua.safeParse(l.data);u.success&&s({kind:"tool",label:u.data.label,done:u.data.done})}else if(l.type===ds)n||(n={kind:"spec",parts:[]},e.push(n)),n.parts.push({type:ds,data:l.data});else if(l.type==="text"){const u=typeof l.text=="string"?l.text:"";u.trim().length>0&&e.push({kind:"text",text:u,...l.state==="streaming"?{streaming:!0}:{}})}else l.type==="reasoning"?s({kind:"reasoning",label:typeof l.text=="string"?l.text:"",done:l.state!=="streaming"}):l.type==="dynamic-tool"?s({kind:"tool",label:typeof l.toolName=="string"?l.toolName:"tool",done:r(l.state),...ps(l)}):l.type.startsWith("tool-")&&s({kind:"tool",label:l.type.slice(5),done:r(l.state),...ps(l)})}return e}function sr(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 qa(t){return Oa(sr(t))}function Za(t){const e=typeof t.toolCallId=="string"?t.toolCallId:void 0,s=us(t.output,e)??us(t.input,e);return s?{kind:"questions",request:s}:null}function ps(t){return{...t.input===void 0?{}:{input:t.input},...t.output===void 0?{}:{output:t.output}}}function Va(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 fs(t){return({id:e})=>({api:t.reconnectApi(e),headers:t.headers()})}const Wa=[0,500,1500];function Ba(t,e){return new Promise(s=>{if(t===0||e!=null&&e.aborted){s();return}const r=()=>{clearTimeout(n),e==null||e.removeEventListener("abort",r),s()},n=setTimeout(r,t);e==null||e.addEventListener("abort",r)})}function Ja(t){return t&&"session_id"in t&&typeof t.session_id=="string"?t.session_id:void 0}class Ha extends ft{constructor(e){super({api:e.api,headers:()=>e.headers(),fetch:e.fetch,prepareSendMessagesRequest:({body:s})=>({body:s??{}}),prepareReconnectToStreamRequest:fs(e)}),this.agentOptions=e}async sendMessages(e){try{return await super.sendMessages(e)}catch(s){const r=Ja(e.body);if(r===void 0)throw s;return this.readThroughRecoveryFetch(s,"send",{chatId:r,headers:e.headers,metadata:e.metadata,abortSignal:e.abortSignal})}}async reconnectToStream(e){try{return await super.reconnectToStream(e)}catch(s){return this.readThroughRecoveryFetch(s,"resume",e)}}async readThroughRecoveryFetch(e,s,r){var l,u,v,h,i;if(!ct.isInstance(e))throw e;const n=(u=(l=this.agentOptions).recoveryFetch)==null?void 0:u.call(l);if(!n)throw e;const o=new ft({api:this.agentOptions.api,headers:()=>this.agentOptions.headers(),fetch:n,prepareReconnectToStreamRequest:fs(this.agentOptions)});for(const d of Wa){if(await Ba(d,r.abortSignal),(v=r.abortSignal)!=null&&v.aborted)throw e;let f;try{f=await o.reconnectToStream(r)}catch(S){throw F.log.warn("agent chat recovery read failed",S),e}if(f)return(i=(h=this.agentOptions).onRecovered)==null||i.call(h,s,e),f}throw e}}function Ya(t){return new Ha(t)}function Ka({existing:t,fetched:e,refreshItems:s=!1}){const r=new Map(t.map(u=>[u.turnId,u])),n=new Set,o=[];for(const u of e.turns){if(n.add(u.turn_id),u.message_uuids.length===0)continue;const v=r.get(u.turn_id);if(v&&!s){Ga(v.rowIds,u.message_uuids)?o.push(v):o.push({...v,rowIds:u.message_uuids});continue}if(u.ui_parts!==null){const h=ot(u.ui_parts);if(h.length===0)continue;o.push({key:(v==null?void 0:v.key)??`turn-${u.turn_id}`,turnId:u.turn_id,rowIds:u.message_uuids,items:h})}}for(const u of t)n.has(u.turnId)||o.push(u);return o.length===t.length&&o.every((u,v)=>u===t[v])?t:o}const Ga=(t,e)=>t.length===e.length&&t.every((s,r)=>s===e[r]),Qa=t=>Array.isArray(t)&&t.every(e=>typeof e=="string");function ms(t){for(const e of t){if(e.type!=="data-turn-settled")continue;const s=e.data;return!F.isRecord(s)||typeof s.turn_id!="string"||!Qa(s.message_uuids)?null:{turnId:s.turn_id,rowIds:s.message_uuids}}return null}function Xa(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 ei({api:t,sessionId:e,chatStop:s}){try{await s()}finally{e&&await t.stopStream(e)}}const ti=/^[A-Za-z0-9_$.]{1,100}$/;function gs(t){const e=ti.test(t.name)?t.name:"Error";if(ct.isInstance(t))return{kind:"empty_body",error_name:e};if(Ts.isInstance(t)){const s=t.statusCode;return s!==void 0&&s>=100&&s<=599?{kind:"http_error",error_name:e,http_status:s}:{kind:"http_error",error_name:e}}if(t instanceof TypeError){const s=t.message.toLowerCase();if(s.includes("fetch")||s.includes("network")||s==="load failed")return{kind:"network",error_name:e}}return{kind:"other",error_name:e}}const hs=20,si=[1e3,3e3,8e3],ri="highlight_element",ni="act_on_page";function ai({widgetCtx:t,config:e,sessionId:s,persistedMessages:r}){var Ht,Yt;const{api:n,messageCtx:o}=t,l=p.useRef(e);l.current=e;const{pageContext:u,clientTools:v,pageActions:h}=t.features,i=p.useRef(()=>{}),d=p.useMemo(()=>Ya({...n.getStreamTransportOptions(),headers:()=>n.getStreamTransportOptions().headers,reconnectApi:b=>Va(n.getStreamTransportOptions().reconnectApi(b),l.current.presentation),fetch:(b,I)=>(l.current.streamingFetch??globalThis.fetch)(b,I),recoveryFetch:()=>{const b=l.current.streamingFetch;return b&&b!==globalThis.fetch?(I,T)=>globalThis.fetch(I,T):void 0},onRecovered:(b,I)=>i.current(b,I)}),[n]),[f,S]=p.useState(null),P=p.useRef(!1),[R]=p.useState(F.genUuid),O=p.useRef(Promise.resolve()),M=p.useRef(0),A=p.useRef(0),C=p.useRef(s),w=p.useMemo(()=>s!==null&&!(C.current===null&&M.current>0),[s]),c=p.useRef(()=>{}),{status:g,messages:m,sendMessage:y,stop:E,error:N,clearError:k,resumeStream:V}=Ma({id:s??R,resume:w,transport:d,throttle:50,onError:b=>c.current(b),onFinish:S}),W=p.useRef(m);W.current=m;const L=p.useRef(new cs(hs));p.useEffect(()=>{if(!f||f.messages!==m)return;const{isAbort:b,isDisconnect:I,isError:T,message:x}=f;b||I||T||L.current.size>0||o.state.setPartial({lastAIResMightSolveUserIssue:F.isRecord(x.metadata)&&x.metadata.mightSolveUserIssue===!0})},[f,m,o]);const j=p.useRef("idle"),[me,ge]=p.useState(!1),[fe,te]=p.useState(0),[H,ie]=p.useState(!1),le=p.useRef(H);le.current=H;const[ye,U]=p.useState([]),[se,ve]=p.useState([]),[ce,mr]=p.useState(null),Ze=p.useRef(null),xe=p.useCallback(b=>{Ze.current=b,mr(b)},[]),ke=p.useRef(null),be=p.useRef(null),De=p.useRef(null),qt=p.useRef(s);qt.current=s;const Zt=(b,I,T)=>{const x=qt.current;x&&n.reportClientStreamError(x,{...gs(b),phase:I,recovered:T,widget_version:Cs,platform:typeof navigator<"u"&&navigator.product==="ReactNative"?"react-native":"web"})};c.current=b=>{F.log.error("agent chat stream error",b),gs(b).kind==="empty_body"&&F.log.error("the streaming response has no readable body. In React Native, pass `streamingFetch` from `expo/fetch` and return its response unchanged: React Native's global Response cannot stream.");const I=j.current==="in-flight"?"send":"resume",T=be.current;I==="send"&&T&&(De.current={wireId:T.retryUuid??T.userMessage.id,bubbleId:T.userMessage.id}),Zt(b,I,!1)};const Vt=p.useRef(!1);i.current=(b,I)=>{Vt.current||(Vt.current=!0,F.log.warn("the `streamingFetch` response has no readable body, so replies are read through the global fetch instead. Return the `expo/fetch` response unchanged to stream it directly.")),Zt(I,b,!0)};const Le=p.useRef(g),Ve=C.current===s,yt=p.useRef(null),vt=p.useRef(null),Wt=p.useRef(E),Se=p.useRef(g);Se.current=g;const Ke=p.useCallback((b,I)=>{const T=ms(b.parts);if(!T||T.rowIds.length===0)return;const x=ot(b.parts);x.length!==0&&U($=>$.some(B=>B.turnId===T.turnId)?$:[...$,{key:I,turnId:T.turnId,rowIds:T.rowIds,items:x}])},[]),Bt=p.useCallback(b=>F.buildSendMessageBody({config:l.current,input:b.input,uuid:b.retryUuid??b.userMessage.id,sessionId:b.sessionId,content:b.userMessage.content,initialMessages:b.initialMessages,sendsPageContext:t.features.pageContext}),[t]);p.useEffect(()=>{const b=Wt.current;Wt.current=E;const I=C.current;if(I===s)return;if(C.current=s,I===null){U([]);return}const T=Se.current==="submitted"||Se.current==="streaming"||Le.current==="submitted"||Le.current==="streaming"||j.current==="in-flight";A.current+=1,M.current=0,O.current=Promise.resolve(),L.current=new cs(hs),j.current="idle",ge(!1),be.current=null,De.current=null,ke.current=null,S(null),P.current=!1,vt.current=null,yt.current=g==="submitted"||g==="streaming"?g:null,Le.current="ready",Se.current="ready",k(),te(x=>x+1),ie(!1),U([]),xe(null),T&&Promise.resolve().then(()=>b()).catch(x=>{F.log.error("agent chat client stream cancel failed",x)})},[s,g,E,k,xe]),p.useEffect(()=>{var $,B;const b=yt.current;if(b!==null&&g===b){Le.current="ready";return}yt.current=null;const I=Le.current;if(Le.current=g,(g==="submitted"||g==="streaming")&&(I!=="submitted"&&I!=="streaming"&&Ze.current===null&&xe(`turn-resumed-${F.genUuid()}`),ie(!0)),g==="streaming"){const q=($=be.current)==null?void 0:$.userMessage.id;q&&o.markUserMessageDelivered(q);return}if(g!=="ready"&&g!=="error")return;if(I==="streaming"||I==="submitted"||j.current==="in-flight"&&(f==null?void 0:f.messages)===W.current){ie(!0);const q=j.current==="in-flight";q&&(j.current="idle");const he=W.current.at(-1),Ce=Ze.current;if(ke.current=Ce,Ce!==null&&he&&he.role==="assistant"&&Ke(he,Ce),g==="ready"){const Ie=(B=be.current)==null?void 0:B.userMessage.id;Ie&&o.markUserMessageDelivered(Ie)}else q&&I!=="streaming"&&be.current&&o.releaseUnsentOptionPick(be.current.input);j.current==="stopping"||(s?(j.current="reconciling",t.reconcileAfterStream(s).catch(Ie=>{F.log.error("agent chat post-turn reconcile failed",Ie)}).finally(()=>{j.current==="reconciling"&&(j.current="idle"),te(Ie=>Ie+1)})):ie(!1))}if(j.current!=="idle"||!s||le.current&&g!=="error")return;const x=L.current.dequeueNext();x&&(j.current="in-flight",ge(!1),be.current=x,De.current=null,S(null),P.current=!1,xe(`turn-${x.userMessage.id}`),o.appendUserMessageIfAbsent(x.userMessage),te(q=>q+1),y({text:x.userMessage.content},{body:Bt(x)}))},[g,s,fe,y,o,t,Bt,Ke,xe,f]);const Jt=p.useCallback(b=>{const I=A.current;M.current++;const x=O.current.then(async()=>{if(I!==A.current)return;const $=j.current,q=Se.current==="submitted"||Se.current==="streaming"||$!=="idle"||le.current||L.current.size>0?ii(o.buildQueuedUserMessage(b)):await o.stageUserTurn(b,{pending:!0});if(!q||I!==A.current)return;const he={...q,input:b};if(!L.current.enqueue(he)){F.log.warn("agent chat queue full; rejecting newest send",{rejectedMessageId:he.userMessage.id});return}te(Ce=>Ce+1),o.notifySendAccepted(b)}).finally(()=>{I===A.current&&M.current--});return O.current=x.then(()=>{},()=>{}),x},[o]),gr=p.useCallback(()=>{var B;const b=be.current;if(!b)return;const I=b.input.optionReply,T=I?r.find(q=>q.id===I.messageId):void 0,x=T&&F.isAgentOrAiMessage(T)?(B=T.messageOptions)==null?void 0:B.pickedOptionId:null;if(I&&x&&x!==I.optionId)return;if(!L.current.enqueue({...b,retryUuid:F.genUuid()})){F.log.warn("agent chat queue full; retry not enqueued");return}I&&o.setMessageOptionPick(I.messageId,I.optionId),k(),te(q=>q+1)},[k,o,r]),hr=p.useCallback(b=>{const I=L.current.removeWhere(T=>T.userMessage.id===b);I&&(o.releaseUnsentOptionPick(I.input),te(T=>T+1))},[o]),yr=p.useCallback(()=>{j.current="stopping",ge(!0),P.current=!1;const b=A.current;ei({api:n,sessionId:s,chatStop:E}).then(()=>{b===A.current&&(P.current=!0)}).catch(I=>{F.log.error("agent chat stop failed",I)}).then(()=>{if(b===A.current){if(!s){ie(!1);return}return t.reconcileAfterStream(s).catch(I=>{F.log.error("agent chat post-stop reconcile failed",I)})}}).finally(()=>{b===A.current&&(j.current="idle",te(I=>I+1))})},[n,s,E,t]);p.useEffect(()=>{const b={send:Jt,hasPendingWork:()=>M.current>0||le.current||L.current.size>0||j.current!=="idle"||Se.current==="submitted"||Se.current==="streaming"};return o.registerAgentHandlers(b),()=>o.unregisterAgentHandlers(b)},[o,Jt]);const Ge=(Ht=e.presentation)==null?void 0:Ht.toolActivity,Qe=(Yt=e.presentation)==null?void 0:Yt.reasoning;p.useEffect(()=>ve([]),[s]),p.useEffect(()=>{var $,B;if(!s)return;const b=Ge===void 0&&Qe===void 0?void 0:{toolActivity:Ge,reasoning:Qe},I=vt.current,T=(I==null?void 0:I.sessionId)===s&&((($=I.presentation)==null?void 0:$.toolActivity)!==Ge||((B=I.presentation)==null?void 0:B.reasoning)!==Qe);vt.current={sessionId:s,presentation:b};let x=!1;return(async()=>{try{const q=b===void 0?await n.getAgentTurnMessages(s):await n.getAgentTurnMessages(s,b);if(!q||x)return;ve(q.handled_connection_request_ids),U(he=>Ka({existing:he,fetched:q,refreshItems:T}))}catch(q){F.log.error("agent chat turn sources fetch failed",q)}})(),()=>{x=!0}},[s,n,Ge,Qe]);const[bt,vr]=p.useState(()=>new Set),Xe=p.useRef(bt),St=p.useRef(new Set),et=p.useMemo(()=>{if(me||g!=="streaming"&&g!=="submitted")return[];const b=m.at(-1);if(!b||b.role!=="assistant")return[];const I=[];for(const T of b.parts){if(!oe(T))continue;const x=ua(T),$=x===ri?"highlight-element":x===ni?"act-on-page":null;$&&T.state==="input-available"&&I.push({key:`${s??"pending"}:${T.toolCallId}`,type:$,input:T.input,callId:T.toolCallId})}return I},[m,s,g,me]),br=p.useMemo(()=>et.filter(b=>u&&v&&(b.type!=="act-on-page"||h)&&!bt.has(b.key)),[et,u,v,h,bt]),Et=p.useCallback((b,I,T,x)=>{if(!s)return;const $=`${s}:${b}`;if(Xe.current.has($))return;St.current.delete($);const B=new Set(Xe.current);if(B.add($),B.size>200){const q=B.values().next().value;q!==void 0&&B.delete(q)}Xe.current=B,vr(B),n.sendPageReply(s,{callId:b,outcome:I,...T?{detail:T}:{},...t.features.pageContext&&x?{controls:x.controls,truncated:x.truncated}:{}})},[n,s,t]),[Sr,Ct]=p.useState(null),Ee=p.useRef(new Map),Er=p.useCallback(b=>new Promise(I=>{const T=`${s??"pending"}:${b.callId}`;if(Xe.current.has(T)){I(!1);return}St.current.add(T),Ee.current.forEach(x=>x(!1)),Ee.current.clear(),Ee.current.set(b.callId,I),Ct(b)}),[s]),It=p.useCallback((b,I)=>{const T=Ee.current.get(b);Ee.current.delete(b),Ct(x=>(x==null?void 0:x.callId)===b?null:x),T==null||T(I)},[]);p.useEffect(()=>{for(const b of et)u&&v&&(b.type!=="act-on-page"||h)||(It(b.callId,!1),St.current.has(b.key)||Et(b.callId,"declined"))},[et,u,v,h,It,Et]);const re=g==="submitted"||g==="streaming";p.useEffect(()=>{const b=De.current;if(N===void 0||re||!b||!s)return;const I=new Set(r.map(B=>B.id));let T=!1,x;const $=async B=>{let q;try{q=await n.getAgentTurnMessages(s)}catch(rt){F.log.warn("agent chat failed-send check failed",rt);return}if(T||De.current!==b)return;if(q==null?void 0:q.turns.some(rt=>(rt.input_message_uuids??[]).includes(b.wireId)&&rt.message_uuids.some(Ar=>I.has(Ar)))){De.current=null,o.markUserMessageDelivered(b.bubbleId),k();return}const[Ce,...Ie]=B;Ce!==void 0&&(x=setTimeout(()=>void $(Ie),Ce))};return $(si),()=>{T=!0,x!==void 0&&clearTimeout(x)}},[N,re,r,s,n,o,k]),p.useEffect(()=>()=>{Ee.current.forEach(b=>b(!1)),Ee.current.clear()},[s]),p.useEffect(()=>{if(re&&!me)return;const b=Ee.current;b.size!==0&&(b.forEach(I=>I(!1)),b.clear(),Ct(null))},[re,me]),p.useEffect(()=>{if(re)return;const b=ke.current;if(b===null)return;const I=m.at(-1);I&&I.role==="assistant"&&Ke(I,b)},[m,re,Ke]);const wt=p.useCallback(()=>{s&&(re||N===void 0&&!H||V())},[s,re,H,N,V]);p.useEffect(()=>Xa(wt),[wt]),p.useEffect(()=>{if(re||!H)return;const b=()=>{ie(!1),te(x=>x+1),Ze.current===ke.current&&xe(null),ke.current=null};if(Ze.current===ke.current&&(f==null?void 0:f.messages)===m&&!f.isError&&!f.isDisconnect&&(!f.isAbort||P.current)&&!ot(f.message.parts).some(x=>x.kind!=="steps")){const x=r.findLast($=>$.type==="USER");x&&o.state.setPartial({settledAgentUserMessageId:x.id}),b();return}if(f&&f.messages!==m)return;const I=m.at(-1),T=(I==null?void 0:I.role)==="assistant"?ms(I.parts):null;if(T&&T.rowIds.length>0){const x=new Set(r.map($=>$.id));T.rowIds.every($=>x.has($))&&b();return}for(let x=r.length-1;x>=0;x-=1){const $=r[x];if($){if($.type==="USER")return;if(!($.type!=="AI"&&$.type!=="AGENT")){b();return}}}},[re,H,r,xe,f,m,o,fe]);const je=F.resolveClientPresentation(t.agent.presentation,e.presentation),tt=je==null?void 0:je.toolActivity,st=je==null?void 0:je.reasoning,Cr=p.useMemo(()=>{if(!Ve||ce===null||g==="submitted"||!re&&!H)return[];const b=m.at(-1);return!b||b.role!=="assistant"?[]:Dt(ot(b.parts),{toolActivity:tt,reasoning:st})},[m,g,re,H,tt,st,Ve,ce]),Ir=p.useMemo(()=>Ve?ye.flatMap(b=>{const I=Dt(b.items,{toolActivity:tt,reasoning:st});return I.length===0?[]:[I===b.items?b:{...b,items:I}]}):[],[ye,tt,st,Ve]),wr=p.useMemo(()=>L.current.items.filter(b=>!b.input.background).map(b=>b.userMessage),[fe]);return{isStreaming:re,liveItems:Cr,turnSources:Ir,liveTurnKey:ce,turnFailed:N!==void 0,retryFailedTurn:gr,resumeInterruptedTurn:wt,queuedUserMessages:wr,removeQueued:hr,stop:yr,pageEffects:br,replyToPageCall:Et,pendingPageAction:Sr,requestPageActionConsent:Er,resolvePageAction:It,handledConnectionRequestIds:se,sourceSessionId:Ve?s:null}}function ii(t){return t?{...t,initialMessages:[]}:null}const ys=2e3,vs=6e5,oi=1e4,gt=p.createContext(null),li=(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 ci({children:t,request:e,widgetCtx:s,onHandled:r}){const[n,o]=p.useState("idle"),[l,u]=p.useState(null),[v,h]=p.useState(null),[i,d]=p.useState(null),f=p.useRef(new AbortController),S=p.useRef(null),P=p.useRef(new Set),R=p.useRef(null),O=p.useRef(null),M=p.useRef(null),A=p.useRef(!0),C=p.useRef((e==null?void 0:e.request_id)??null);C.current=(e==null?void 0:e.request_id)??null;const w=p.useCallback(()=>{var k;f.current.abort(),(k=S.current)==null||k.close(),S.current=null},[]);p.useEffect(()=>(w(),M.current=null,O.current=null,R.current=null,o("idle"),u(null),h(null),d(null),w),[w,e==null?void 0:e.request_id,e==null?void 0:e.server_id,s]),p.useEffect(()=>(A.current=!0,()=>{A.current=!1,w()}),[w]);const c=p.useCallback(async k=>{if(!e)return;const V=e.request_id;if(P.current.has(V))return;P.current.add(V),R.current=k,h(k),d(null);let W=!1;try{await s.messageCtx.sendMessage({...li(e,k),onAccepted:()=>{W=!0,r(e.request_id)}}),A.current&&C.current===V&&!W&&d(k==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}catch{A.current&&C.current===V&&d(k==="renew"?"Could not request a new connection. Try again.":"Could not continue your request. Try again.")}finally{P.current.delete(V),A.current&&C.current===V&&h(null)}},[r,e,s]),g=p.useCallback(async()=>{var V,W;if(!e)return;w(),M.current=e.request_id,f.current=new AbortController;const{signal:k}=f.current;o("loading"),R.current=null,u(null),d(null);try{S.current=window.open("about:blank","_blank"),S.current&&(S.current.opener=null);const L=await s.api.startConnection(e.server_id,e.request_id,k);if(k.aborted)return;const j=new URL(L.authorization_url);if(!(j.protocol==="https:"||j.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(j.hostname))||j.username||j.password)throw new Error("Invalid connection page");u({url:j.href,host:j.host,completion:L.completion,...L.completion==="oauth"?{attemptId:L.attempt_id}:{}}),O.current=Date.now()+vs,(V=S.current)!=null&&V.closed?(S.current=null,o("ready")):S.current?(S.current.location.replace(j.href),o("waiting")):o("ready")}catch(L){if(k.aborted)return;if((W=S.current)==null||W.close(),S.current=null,u(null),o("idle"),L instanceof F.ConnectionRequestExpiredError){await c("renew");return}d(L instanceof Error?L.message:"Could not start the connection.")}},[w,e,c,s]);p.useEffect(()=>{if(n!=="waiting"&&n!=="ready"||!l||!e)return;const k=new AbortController;let V;const W=O.current??Date.now()+vs;O.current=W;let L=0,j=document.hidden||!document.hasFocus(),me=!1;const ge=()=>{j=!0},fe=()=>{j&&(me=!0)},te=()=>document.hidden?ge():fe();window.addEventListener("blur",ge),window.addEventListener("focus",fe),document.addEventListener("visibilitychange",te);const H=U=>{var se;k.abort(),(se=S.current)==null||se.close(),S.current=null,d(U),o("idle")},ie=setTimeout(()=>H("Connection timed out. Try again."),Math.max(0,W-Date.now())),le=(U=ys)=>{V=setTimeout(ye,U)},ye=async()=>{var U,se,ve;if(Date.now()>=W){H("Connection timed out. Try again.");return}if(l.completion==="external"){if(n==="waiting"&&((U=S.current)!=null&&U.closed||me)){o("external");return}le();return}if(!l.attemptId){H("Could not read the connection attempt. Try again.");return}try{const ce=await s.api.getConnectionAttempt(e.server_id,l.attemptId,k.signal);if(k.signal.aborted)return;if(L=0,ce==="connected"){(se=S.current)==null||se.close(),S.current=null,o("connected");return}if(ce==="canceled"){H("Connection was canceled. Try again.");return}if(ce==="failed"){H("Connection approval failed. Try again.");return}if(ce==="expired"){H("Connection attempt expired. Try again.");return}(ve=S.current)!=null&&ve.closed&&(S.current=null,o("ready")),le()}catch(ce){if(k.signal.aborted)return;if(ce instanceof F.ConnectionAttemptUnavailableError){H(ce.message);return}L+=1,le(Math.min(ys*2**(L-1),oi))}};return ye(),()=>{k.abort(),V&&clearTimeout(V),ie&&clearTimeout(ie),window.removeEventListener("blur",ge),window.removeEventListener("focus",fe),document.removeEventListener("visibilitychange",te)}},[l,n,e,s]),p.useEffect(()=>{n!=="connected"&&n!=="external"||M.current!==(e==null?void 0:e.request_id)||c(n==="external"?"external":"resume")},[n,e==null?void 0:e.request_id,c]);const m=p.useCallback(()=>o("waiting"),[]),y=p.useCallback(async()=>{w(),u(null),o("idle"),await c("dismiss")},[w,c]),E=p.useCallback(async()=>{const k=R.current;if(k){await c(k);return}await g()},[c,g]),N=p.useMemo(()=>e?{request:e,phase:n,authorization:l,continuation:v,error:i,start:g,opened:m,cancel:y,retryContinuation:E}:null,[l,y,v,i,m,n,e,E,g]);return p.createElement(gt.Provider,{value:N},t)}function ui({children:t,connection:e}){return p.createElement(gt.Provider,{value:e},t)}function di(){return p.useContext(gt)}function pi(t){const e=p.useContext(gt);if(!e||e.request.request_id!==t.request_id)throw new Error("useConnection must be used for the active ConnectionAttemptProvider request");return e}const $t={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},ht=p.createContext(null);function Ft(){return p.useContext(ht)??$t}function fi({children:t,widgetCtx:e,config:s}){var fe,te,H,ie,le,ye;const r=J(e.sessionCtx.sessionState),n=J(e.messageCtx.state),{isStreaming:o,liveItems:l,turnSources:u,liveTurnKey:v,turnFailed:h,retryFailedTurn:i,resumeInterruptedTurn:d,queuedUserMessages:f,removeQueued:S,stop:P,pageEffects:R,replyToPageCall:O,pendingPageAction:M,requestPageActionConsent:A,resolvePageAction:C,handledConnectionRequestIds:w,sourceSessionId:c}=ai({widgetCtx:e,config:s,sessionId:((fe=r.session)==null?void 0:fe.id)??null,persistedMessages:n.messages}),g=((te=n.messages.at(-1))==null?void 0:te.type)==="USER",m=p.useRef(new Set),y=p.useRef(((H=r.session)==null?void 0:H.id)??null),E=((ie=r.session)==null?void 0:ie.id)??null;y.current!==E&&(y.current=E,m.current.clear()),w.forEach(U=>m.current.add(U));const N=(le=[...u.flatMap(U=>U.items),...l].findLast(U=>U.kind==="connection"&&!m.current.has(U.request.request_id)))==null?void 0:le.request,[k,V]=p.useState({sessionId:E,request:null}),W=((ye=s.capabilities)==null?void 0:ye.connections)===!0,L=W&&E!==null&&k.sessionId===E?k.request:null;p.useEffect(()=>{!W||E===null||c!==E||V(U=>{const se=U.sessionId===E&&U.request&&!m.current.has(U.request.request_id)?U.request:N??null;return U.sessionId===E&&U.request===se?U:{sessionId:E,request:se}})},[E,c,N,w,W,L]);const j=p.useCallback(U=>{m.current.add(U),V(se=>{var ve;return((ve=se.request)==null?void 0:ve.request_id)===U?{...se,request:null}:se})},[]),me=p.useMemo(()=>({isStreaming:o,liveItems:l,turnSources:u,liveTurnKey:v,turnFailed:h,retryFailedTurn:i,resumeInterruptedTurn:d,queuedUserMessages:f,removeQueued:S,stop:P,pageEffects:R,replyToPageCall:O,pendingPageAction:M,requestPageActionConsent:A,resolvePageAction:C,pendingConnection:L,pendingClarification:Tr({turnSources:u,liveItems:l,isStreaming:o,lastMessageIsFromUser:g})}),[o,l,u,v,h,i,d,f,S,P,R,O,M,A,C,g,L]),ge=p.createElement(ht.Provider,{value:me},t);return p.createElement(ci,{request:L,widgetCtx:e,onHandled:j},ge)}function rr({children:t,widgetCtx:e,config:s}){return J(e.messageCtx.state),e.streaming?p.createElement(fi,{widgetCtx:e,config:s},t):p.createElement(ht.Provider,{value:$t},t)}class mi{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(o=>o.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(o=>o.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(o=>o.id===r?{...o,closed:!1}:o)}))},this.close=r=>{if(this.disposed)return;const{chats:n,activeId:o}=this.state.get(),l=n.findIndex(d=>d.id===r&&!d.closed),u=n[l];if(!u)return;const v=this.isWorking(u),h=v?n.map(d=>d.id===r?{...d,closed:!0}:d):n.filter(d=>d.id!==r);let i=h.find(d=>d.id===o&&!d.closed)??h.slice(0,l).reverse().find(d=>!d.closed)??h.find(d=>!d.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(u)},this.canCreateChat=()=>!this.disposed&&(!this.root.config.oneOpenSessionAllowed||!this.state.get().chats.some(({ctx:r})=>{const{session:n,isCreatingSession:o}=r.sessionCtx.sessionState.get();return(n==null?void 0:n.isOpened)||o})&&!this.root.sessionCtx.sessionsState.get().data.some(r=>r.isOpened)),this.open=r=>{var v,h,i,d;if(this.disposed)return;const{chats:n}=this.state.get();if(!r&&!this.canCreateChat())return;const o=r?n.find(({ctx:f})=>{var S;return((S=f.sessionCtx.sessionState.get().session)==null?void 0:S.id)===r}):n.find(f=>this.isEmpty(f));if(o)return this.select(o.id),(h=(v=this.root.config.hooks)==null?void 0:v.onNavigateToChat)==null||h.call(v,{session:o.ctx.sessionCtx.sessionState.get().session??void 0}),o.ctx;const l=r?this.root.sessionCtx.sessionsState.get().data.find(f=>f.id===r):void 0;if(r&&!l)return;const u=n.find(f=>this.isEmpty(f))??this.makeChat(this.root.createConversation());return l&&(n.includes(u)&&u.ctx.resetChat(),u.ctx.sessionCtx.sessionState.setPartial({session:l})),n.includes(u)||this.state.setPartial({chats:[...n,u]}),this.select(u.id),(d=(i=this.root.config.hooks)==null?void 0:i.onNavigateToChat)==null||d.call(i,{session:l}),u.ctx},this.update=(r,n)=>{const o=this.state.get().chats.find(u=>u.id===r);if(!o)return;const l={...o,...n};if(l.closed&&!this.isWorking(l)){this.state.setPartial({chats:this.state.get().chats.filter(u=>u.id!==r)}),this.releaseChat(l);return}l.title===o.title&&l.working===o.working&&l.hasSession===o.hasSession&&l.hasDraft===o.hasDraft&&l.ui===o.ui&&l.connection===o.connection||this.state.setPartial({chats:this.state.get().chats.map(u=>u.id===r?{...u,...n}:u)})};const s=this.makeChat(e);this.state=new F.PrimitiveState({chats:[s],activeId:s.id})}makeChat(e){return{id:this.nextId++,ctx:e,title:"",working:!1,hasSession:!1,hasDraft:!1,ui:$t,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 nr=p.createContext(null),gi=new F.PrimitiveState({chats:[],activeId:0});function ar(){const t=p.useContext(nr),e=J((t==null?void 0:t.state)??gi),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 hi(){const{workspace:t,...e}=ar();if(!t)throw new Error("Companion chats require a conversation workspace");return{...e,selectChat:t.select,closeChat:t.close,newChat:t.open}}function yi({chatId:t,ctx:e,workspace:s}){const r=Ft(),n=di(),o=J(e.messageCtx.state),l=J(e.sessionCtx.sessionState),u=J(e.messageCtx.draftState),v=J(e.uploadCtx.state),h=o.messages.find(P=>P.type==="USER"),i=(h==null?void 0:h.type)==="USER"?h.content.slice(0,60):"",d=r.isStreaming||o.isSendingMessage||l.isCreatingSession,f=!!l.session,S=!!u.text||u.mentions.length>0||v.length>0;return p.useEffect(()=>s.update(t,{title:i,working:d,hasSession:f,hasDraft:S,ui:r,connection:n}),[s,t,i,d,f,S,r,n]),null}const vi=p.memo(function({chatId:e,ctx:s,config:r,workspace:n}){return p.createElement(rr,{widgetCtx:s,config:r},p.createElement(yi,{chatId:e,ctx:s,workspace:n}))});function bi({widgetCtx:t,config:e=t.config,children:s}){const r=p.useMemo(()=>new mi(t),[t]);p.useEffect(()=>r.mount(),[r]);const{chats:n,activeId:o}=J(r.state),l=n.find(v=>v.id===o),u=p.useMemo(()=>n.map(v=>p.createElement(vi,{key:v.id,chatId:v.id,ctx:v.ctx,config:e,workspace:r})),[n,e,r]);return p.createElement(nr.Provider,{value:r},u,p.createElement(ui,{connection:l.connection},p.createElement(ht.Provider,{value:l.ui},s(l.ctx))))}class Si{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 bs=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()}),Ei=D.z.union([D.z.object({sub:D.z.object({type:D.z.literal("widget-contact"),payload:bs})}).transform(({sub:t})=>t.payload),bs]),Ci=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}`),o=>o.charCodeAt(0));return JSON.parse(new TextDecoder().decode(n))}catch{return null}},Ii=t=>{var n,o;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=Ei.safeParse(Ci(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:[...((o=r.data.mcp_access)==null?void 0:o.server_ids)??[]].sort()}}):JSON.stringify({apiUrl:t.apiUrl??null,botToken:t.token,externalId:e.externalId??null,opaqueToken:s})},ir=p.createContext(null);function wi({options:t,children:e,components:s,storage:r,loadingComponent:n,errorComponent:o}){var M;const l=p.useRef(Promise.resolve()),u=p.useRef(t);u.current=t;const v=Ii(t),h=p.useRef(null),i=p.useRef(null),d=p.useRef(null),[f,S]=p.useState({status:"loading"}),P=p.useMemo(()=>new Si({components:s}),[s]);if(p.useEffect(()=>{var w,c,g;if(((w=d.current)==null?void 0:w.identity)!==v){const m=(c=d.current)==null?void 0:c.widgetCtx.dispose({clearActiveSession:!0});l.current=Promise.all([l.current,m]).then(()=>{}),d.current=null}((g=i.current)==null?void 0:g.identity)!==v&&(S({status:"loading"}),i.current={identity:v,request:l.current.then(()=>F.WidgetCtx.initialize({config:t,storage:r,getClientCapabilities:()=>u.current.capabilities,getRequestConfig:()=>u.current}))});const A=i.current.request,C=i.current.identity;A.then(m=>{var y;if(((y=i.current)==null?void 0:y.request)!==A){m.dispose();return}d.current={identity:C,widgetCtx:m},S({status:"ready",identity:C,widgetCtx:m})},m=>{var E;if(((E=i.current)==null?void 0:E.request)!==A)return;const y=m instanceof Error?m:new Error("Widget initialization failed",{cause:m});F.log.error("widget initialization failed",y),S({status:"error",identity:C,error:y})})},[v,t,r]),p.useEffect(()=>()=>{var A;i.current=null,(A=d.current)==null||A.widgetCtx.dispose(),d.current=null},[]),p.useLayoutEffect(()=>{var A;f.status!=="ready"||f.identity!==v||(A=t.user)!=null&&A.token&&f.widgetCtx.api.setAuthToken(t.user.token)},[(M=t.user)==null?void 0:M.token,v,f]),f.status==="loading"||"identity"in f&&f.identity!==v)return n?p.createElement(p.Fragment,null,n):null;if(f.status==="error")return o?p.createElement(p.Fragment,null,o(f.error)):null;const{widgetCtx:R}=f,O=(A,C)=>p.createElement(ir.Provider,{value:{widgetCtx:A,config:t,components:s,componentStore:P,version:Cs,contentIframeRef:h}},C);return t.displayMode==="companion"&&!t.inline?p.createElement(bi,{widgetCtx:R,config:t},A=>O(A,e)):O(R,p.createElement(rr,{key:v,widgetCtx:R,config:t},e))}function X(){const t=p.useContext(ir);if(!t)throw new Error("useWidget must be used within a WidgetProvider");return t}function Ai({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 o=(r=e[n])==null?void 0:r.items.findLast(l=>l.kind==="plan");if(o)return o.plan}}function xi(){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 Ye(){const{config:t}=X();return t}function Ti(){const{config:t}=X();return t.displayMode??"popover"}function Mi(){const{widgetCtx:t}=X();return{contactState:J(t.contactCtx.state),createUnverifiedContact:t.contactCtx.createUnverifiedContact}}function or(){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 Ri=500,lt="opencx:context-changed";function lr(){if(typeof window>"u")return null;try{const t=window.top??window;return t.location.href,t}catch{return null}}function _i(t){const e=lr();if(!e)return()=>{};const s=n=>{(n==null?void 0:n.type)===lt&&(cr+=1),t()};e.addEventListener("popstate",s),e.addEventListener("hashchange",s),e.addEventListener(lt,s);const r=e.setInterval(s,Ri);return()=>{e.removeEventListener("popstate",s),e.removeEventListener("hashchange",s),e.removeEventListener(lt,s),e.clearInterval(r)}}let cr=0;function Pi(){var t;return`${cr}|${((t=lr())==null?void 0:t.location.href)??""}`}function Oi(){return p.useSyncExternalStore(_i,Pi,()=>"")}function Ut(){const{widgetCtx:t}=X(),e=J(t.messageCtx.state),{isStreaming:s}=Ft();return{messagesState:s?{...e,isSendingMessage:!0,isSendingMessageToAI:!0}:e,sendMessage:t.messageCtx.sendMessage,rememberSentText:t.messageCtx.rememberSentText,getSentTextHistory:t.messageCtx.getSentTextHistory}}function zt(){var v;const{widgetCtx:t}=X(),{oneOpenSessionAllowed:e}=Ye(),s=J(t.sessionCtx.sessionState),r=J(t.sessionCtx.sessionsState),{openSessions:n,closedSessions:o}=p.useMemo(()=>({openSessions:r.data.filter(h=>h.isOpened===!0),closedSessions:r.data.filter(h=>h.isOpened===!1)}),[r.data]),{workspace:l}=ar(),u=l?l.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:o,canCreateNewSession:u}}function Ni(){var l,u;const{sessionState:t}=zt(),{messagesState:e}=Ut(),s=((l=t.session)==null?void 0:l.assignee.kind)==="ai",r=(u=e.messages)==null?void 0:u.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 ur(){const{widgetCtx:t}=X();return{routerState:J(t.routerCtx.state),toSessionsScreen:t.routerCtx.toSessionsScreen,toChatScreen:t.routerCtx.toChatScreen}}function ki(){const{widgetCtx:t}=X(),{unreadSessionIds:e,count:s}=J(t.unreadCtx.state),r=p.useCallback(n=>e.includes(n),[e]);return{count:s,hasUnread:s>0,unreadSessionIds:e,isUnread:r}}const dr=p.createContext(null);function Di({children:t}){const e=Ye(),[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 o=setTimeout(()=>r(!0),n*1e3);return()=>clearTimeout(o)},[e.openAfterNSeconds]),p.createElement(dr.Provider,{value:{isOpen:s,setIsOpen:r}},t)}function pr(){const t=p.useContext(dr);if(!t)throw new Error("useWidgetTrigger must be used within a WidgetTriggerProvider");return t}const Li=t=>(document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)),ji=()=>document.visibilityState!=="hidden";function $i({transcriptVisible:t=!0}={}){const{widgetCtx:e}=X(),{isOpen:s}=pr(),{routerState:r}=ur(),{session:n}=J(e.sessionCtx.sessionState),{isInitialFetchLoading:o}=J(e.messageCtx.state),l=p.useSyncExternalStore(Li,ji,()=>!0),u=s&&l&&t&&r.screen==="chat"&&!o?(n==null?void 0:n.id)??null:null;p.useEffect(()=>{e.unreadCtx.setViewingSessionId(u)},[e,u]),p.useEffect(()=>()=>e.unreadCtx.setViewingSessionId(null),[e])}function Fi(){const{widgetCtx:{uploadCtx:t}}=X(),e=J(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(o=>o.id===r))==null?void 0:n.progress)??0},getUploadStatus:r=>{var n;return(n=e.find(o=>o.id===r))==null?void 0:n.status},hasErrors:e.some(r=>r.status==="error"),isUploading:e.some(r=>r.status==="uploading")}}function Ui(t){return t!=="fullscreen"}const fr=p.createContext(null);function zi({children:t}){var n,o;const{companion:e}=Ye(),{dir:s}=or(),{widgetCtx:r}=X();return p.createElement(qi,{configuredDefaultLayout:e==null?void 0:e.defaultLayout,configuredLayouts:e==null?void 0:e.layouts,configuredSidebarSide:F.resolveSidebarSide((n=e==null?void 0:e.sidebar)==null?void 0:n.side,s),configuredSidebarMode:F.resolveSidebarMode((o=e==null?void 0:e.sidebar)==null?void 0:o.mode),storage:r.storageCtx},t)}function qi({configuredDefaultLayout:t,configuredLayouts:e,configuredSidebarSide:s,configuredSidebarMode:r,storage:n,children:o}){const l=F.normalizeCompanionLayouts(e),u=F.resolveCompanionDefaultLayout(t,l),v=l.join("|"),[h,i]=p.useState(u),[d,f]=p.useState({defaultLayout:u,allowedLayoutsKey:v});(d.defaultLayout!==u||d.allowedLayoutsKey!==v)&&(f({defaultLayout:u,allowedLayoutsKey:v}),(d.defaultLayout!==u||!l.includes(h))&&i(u));const S=y=>{i(E=>{const N=typeof y=="function"?y(E):y;return l.includes(N)?N:E})},P=p.useRef(l);P.current=l;const R=y=>{S(y),P.current.includes(y)&&Ui(y)&&(n==null||n.setCompanionLayout(y).catch(()=>{}))},[O,M]=p.useState(s),[A,C]=p.useState(r),[w,c]=p.useState({side:s,mode:r});(w.side!==s||w.mode!==r)&&(c({side:s,mode:r}),w.side!==s&&M(s),w.mode!==r&&C(r)),p.useEffect(()=>{if(!n)return;let y=!1;return n.getCompanionLayout().then(E=>{y||!E||P.current.includes(E)&&i(E)}).catch(()=>{}),n.getCompanionSidebarSide().then(E=>{!y&&E&&M(E)}).catch(()=>{}),n.getCompanionSidebarMode().then(E=>{!y&&E&&C(E)}).catch(()=>{}),()=>{y=!0}},[n]);const g=p.useCallback(y=>{M(y),n==null||n.setCompanionSidebarSide(y).catch(()=>{})},[n]),m=p.useCallback(y=>{C(y),n==null||n.setCompanionSidebarMode(y).catch(()=>{})},[n]);return p.createElement(fr.Provider,{value:{layout:h,setLayout:S,setLayoutPreference:R,allowedLayouts:l,defaultLayout:u,sidebarSide:O,setSidebarSide:g,sidebarMode:A,setSidebarMode:m}},o)}function Zi(){const t=p.useContext(fr);if(!t)throw new Error("useWidgetLayout must be used within a WidgetLayoutProvider");return t}function Vi(){var u,v;const{widgetCtx:t}=X(),{modesComponents:e}=Ye(),{sessionState:s}=zt(),r=t.modes,n=(u=s.session)==null?void 0:u.modeId,o=r.find(h=>h.id===n),l=(v=e==null?void 0:e.find(h=>{var i,d;return[(o==null?void 0:o.id)||"",((i=o==null?void 0:o.name)==null?void 0:i.toLowerCase())||"",((d=o==null?void 0:o.slug)==null?void 0:d.toLowerCase())||""].includes(h.key.toLowerCase())}))==null?void 0:v.component;return{modes:r,modesComponents:e,activeModeId:n,activeMode:o,Component:l}}function Wi(){const{widgetCtx:t}=X(),{messagesState:{messages:e}}=Ut(),{csatRequestedMessage:s,isCsatRequested:r,csatSubmittedMessage:n,isCsatSubmitted:o,submittedScore:l,submittedFeedback:u}=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:o,submittedScore:l,submittedFeedback:u}}function Bi(t){const{widgetCtx:e}=X(),s=e.dictationCtx,r=J(s.state),n=p.useRef(t);n.current=t;const o=p.useCallback(()=>{s.start({getValue:()=>n.current.getValue(),setValue:u=>n.current.setValue(u),onSend:()=>{var u,v;return(v=(u=n.current).onSend)==null?void 0:v.call(u)}})},[s]),l=p.useCallback(()=>{s.isActive()?s.stop():o()},[s,o]);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:o,stop:s.stop,toggle:l,prewarm:s.prewarm}}function Ji(){const{widgetCtx:t}=X(),e=t.messageCtx.draftState,s=J(e),r=p.useCallback(l=>{e.setPartial({text:typeof l=="function"?l(e.get().text):l})},[e]),n=p.useCallback(l=>{e.setPartial({mentions:typeof l=="function"?l(e.get().mentions):l})},[e]),o=p.useCallback((l=s)=>e.get()!==l?!1:(e.reset(),!0),[e,s]);return{...s,setText:r,setMentions:n,clearSubmitted:o}}exports.HOST_CONTEXT_CHANGED_EVENT=lt;exports.WidgetLayoutProvider=zi;exports.WidgetProvider=wi;exports.WidgetTriggerProvider=Di;exports.applyPresentation=Dt;exports.formatAskQuestionsAnswers=ja;exports.sessionPlan=Ai;exports.useAgentChatUi=Ft;exports.useBot=xi;exports.useCompanionChats=hi;exports.useComposerDraft=Ji;exports.useConfig=Ye;exports.useConnection=pi;exports.useContact=Mi;exports.useCsat=Wi;exports.useDictation=Bi;exports.useDisplayMode=Ti;exports.useDocumentDir=or;exports.useHostLocation=Oi;exports.useIsAwaitingBotReply=Ni;exports.useMessages=Ut;exports.useModes=Vi;exports.usePrimitiveState=J;exports.useSessions=zt;exports.useUnread=ki;exports.useUnreadViewing=$i;exports.useUploadFiles=Fi;exports.useWidget=X;exports.useWidgetLayout=Zi;exports.useWidgetRouter=ur;exports.useWidgetTrigger=pr;
|
|
24
24
|
//# sourceMappingURL=index.cjs.map
|