PageSourceSearch

https://getsuite.ai/assets/WayfinderChatPage-BQb22lwX.js

js getsuite.ai collected 2026-10-05 13:49:27 UTC 53,147 bytes, 16 lines download raw bytes

1import{ao as Nt,r as g,R as at,j as u,B as nr,q as ar,t as or,s as dt,L as ir,J as cr}from"./index-BTvV4YoP.js";import{B as ft}from"./button-DlZw3Ykx.js";import{T as lr}from"./textarea-BXak6q-P.js";import{C as ur}from"./card-DAKval5_.js";import{Z as dr}from"./zap--oM7UZUm.js";import{C as Ct}from"./formatDistanceToNow-Cgpvz3Oo.js";import{C as kt}from"./index-DjU6eZc-.js";import{L as qe}from"./loader-circle-CthXp0yF.js";import{C as fr}from"./circle-check-2rRqbTb4.js";import{C as pr}from"./circle-x-CrVx4lN6.js";import{W as mr}from"./wrench-9eS1SSBq.js";import{M as gr}from"./TenantPage-DU1O6h2k.js";import{e as hr}from"./use-mobile-Cywcz5NP.js";import{M as yr}from"./index-Dyqh4Pnc.js";import{r as br}from"./index-Cf8HwNqc.js";import{S as Er}from"./send-D1ZD5Bnu.js";import{M as wr}from"./message-circle-CPRrg7ck.js";import{E as _r}from"./external-link-D2PNC5Vd.js";import"./index-BpexkR_7.js";import"./en-US-CHWDLVng.js";import"./GqBootstrapContext-BMN6sdo0.js";import"./menu-eJYUWm1P.js";import"./dialog-BEHY41ZM.js";import"./lightbulb-CHsj4lIZ.js";import"./circle-help-Df0bav_v.js";import"./users-Dj7xFM-t.js";import"./sun-bDcU6jzf.js";import"./dollar-sign-L8H5hak4.js";import"./map-pin-CzWPICpv.js";import"./calculator-DtVj2a_B.js";import"./trending-up-B26-Gq10.js";import"./star-5lNyApJu.js";import"./eye-c2hds8E5.js";import"./list-checks-B9myV5vA.js";var At="vercel.ai.error",xr=Symbol.for(At),Dt,Ir=class jt extends Error{constructor({name:t,message:r,cause:s}){super(r),this[Dt]=!0,this.name=t,this.cause=s}static isInstance(t){return jt.hasMarker(t,At)}static hasMarker(t,r){const s=Symbol.for(r);return t!=null&&typeof t=="object"&&s in t&&typeof t[s]=="boolean"&&t[s]===!0}};Dt=xr;var Ee=Ir;function Ot(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var Lt="AI_InvalidArgumentError",Mt=`vercel.ai.error.${Lt}`,Sr=Symbol.for(Mt),Pt,vr=class extends Ee{constructor({message:e,cause:t,argument:r}){super({name:Lt,message:e,cause:t}),this[Pt]=!0,this.argument=r}static isInstance(e){return Ee.hasMarker(e,Mt)}};Pt=Sr;var Ft="AI_JSONParseError",Vt=`vercel.ai.error.${Ft}`,Rr=Symbol.for(Vt),$t,pt=class extends Ee{constructor({text:e,cause:t}){super({name:Ft,message:`JSON parsing failed: Text: ${e}.
2Error message: ${Ot(t)}`,cause:t}),this[$t]=!0,this.text=e}static isInstance(e){return Ee.hasMarker(e,Vt)}};$t=Rr;var Bt="AI_TypeValidationError",Wt=`vercel.ai.error.${Bt}`,Tr=Symbol.for(Wt),Jt,Nr=class Ye extends Ee{constructor({value:t,cause:r}){super({name:Bt,message:`Type validation failed: Value: ${JSON.stringify(t)}.
3Error message: ${Ot(r)}`,cause:r}),this[Jt]=!0,this.value=t}static isInstance(t){return Ee.hasMarker(t,Wt)}static wrap({value:t,cause:r}){return Ye.isInstance(r)&&r.value===t?r:new Ye({value:t,cause:r})}};Jt=Tr;var mt=Nr;let Cr=(e,t=21)=>(r=t)=>{let s="",n=r|0;for(;n--;)s+=e[Math.random()*e.length|0];return s};var _e={exports:{}};const kr=typeof Buffer<"u",gt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,ht=/"(?: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 Ut(e,t,r){r==null&&t!==null&&typeof t=="object"&&(r=t,t=void 0),kr&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));const s=JSON.parse(e,t);if(s===null||typeof s!="object")return s;const n=r&&r.protoAction||"error",a=r&&r.constructorAction||"error";if(n==="ignore"&&a==="ignore")return s;if(n!=="ignore"&&a!=="ignore"){if(gt.test(e)===!1&&ht.test(e)===!1)return s}else if(n!=="ignore"&&a==="ignore"){if(gt.test(e)===!1)return s}else if(ht.test(e)===!1)return s;return qt(s,{protoAction:n,constructorAction:a,safe:r&&r.safe})}function qt(e,{protoAction:t="error",constructorAction:r="error",safe:s}={}){let n=[e];for(;n.length;){const a=n;n=[];for(const o of a){if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(s===!0)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if(r!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(s===!0)return null;if(r==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(const d in o){const i=o[d];i&&typeof i=="object"&&n.push(i)}}}return e}
3function ot(e,t,r){const s=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Ut(e,t,r)}finally{Error.stackTraceLimit=s}}function Ar(e,t){const r=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return Ut(e,t,{safe:!0})}catch{return null}finally{Error.stackTraceLimit=r}}_e.exports=ot;_e.exports.default=ot;_e.exports.parse=ot;_e.exports.safeParse=Ar;_e.exports.scan=qt;var Dr=_e.exports;const jr=Nt(Dr);var Or=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:s="-"}={})=>{const n=Cr(r,t);if(e==null)return n;if(r.includes(s))throw new vr({argument:"separator",message:`The separator "${s}" must not be part of the alphabet "${r}".`});return a=>`${e}${s}${n(a)}`},it=Or(),Ke=Symbol.for("vercel.ai.validator");function Lr(e){return{[Ke]:!0,validate:e}}function Mr(e){return typeof e=="object"&&e!==null&&Ke in e&&e[Ke]===!0&&"validate"in e}function Pr(e){return Mr(e)?e:Fr(e)}function Fr(e){return Lr(t=>{const r=e.safeParse(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}})}function Vr({value:e,schema:t}){const r=Pr(t);try{if(r.validate==null)return{success:!0,value:e};const s=r.validate(e);return s.success?s:{success:!1,error:mt.wrap({value:e,cause:s.error})}}catch(s){return{success:!1,error:mt.wrap({value:e,cause:s})}}}function yt({text:e,schema:t}){try{const r=jr.parse(e);if(t==null)return{success:!0,value:r,rawValue:r};const s=Vr({value:r,schema:t});return s.success?{...s,rawValue:r}:s}catch(r){return{success:!1,error:pt.isInstance(r)?r:new pt({text:e,cause:r})}}}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var Ie={code:"0",name:"text",parse:e=>{if(typeof e!="string")throw new Error('"text" parts expect a string value.');return{type:"text",value:e}}},Se={code:"3",name:"error",parse:e=>{if(typeof e!="string")throw new Error('"error" parts expect a string value.');return{type:"error",value:e}}},ve={code:"4",name:"assistant_message",parse:e=>{if(e==null||typeof e!="object"||!("id"in e)||!("role"in e)||!("content"in e)||typeof e.id!="string"||typeof e.role!="string"||e.role!=="assistant"||!Array.isArray(e.content)||!e.content.every(t=>t!=null&&typeof t=="object"&&"type"in t&&t.type==="text"&&"text"in t&&t.text!=null&&typeof t.text=="object"&&"value"in t.text&&typeof t.text.value=="string"))throw new Error('"assistant_message" parts expect an object with an "id", "role", and "content" property.');return{type:"assistant_message",value:e}}},Re={code:"5",name:"assistant_control_data",parse:e=>{if(e==null||typeof e!="object"||!("threadId"in e)||!("messageId"in e)||typeof e.threadId!="string"||typeof e.messageId!="string")throw new Error('"assistant_control_data" parts expect an object with a "threadId" and "messageId" property.');return{type:"assistant_control_data",value:{threadId:e.threadId,messageId:e.messageId}}}},Te={code:"6",name:"data_message",parse:e=>{if(e==null||typeof e!="object"||!("role"in e)||!("data"in e)||typeof e.role!="string"||e.role!=="data")throw new Error('"data_message" parts expect an object with a "role" and "data" property.');return{type:"data_message",value:e}}},$r=[Ie,Se,ve,Re,Te];Ie.code+"",Se.code+"",ve.code+"",Re.code+"",Te.code+"";Ie.name+"",Ie.code,Se.name+"",Se.code,ve.name+"",ve.code,Re.name+"",Re.code,Te.name+"",Te.code;$r.map(e=>e.code);function Br({promptTokens:e,completionTokens:t}){return{promptTokens:e,completionTokens:t,totalTokens:e+t}}function Wr(e){const t=["ROOT"];let r=-1,s=null;function n(i,f,m){switch(i){case'"':{r=f,t.pop(),t.push(m),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=f,s=f,t.pop(),t.push(m),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(m),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=f,t.pop(),t.push(m),t.push("INSIDE_NUMBER");break}case"{":{r=f,t.pop(),t.push(m),t.push("INSIDE_OBJECT_START");break}case"[":{r=f,t.pop(),t.push(m),t.push("INSIDE_ARRAY_START");break}}}function a(i,f){switch(i){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=f,t.pop();break}}}function o(i,f){switch(i){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=f,t.pop();break}}}for(let i=0;i<e.length;i++){const f=e[i];switch(t[t.length-1]){case"ROOT":n(f,i,"FINISH");break;case"INSIDE_OBJECT_START":{switch(f){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{r=i,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(f){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(f){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(f){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{n(f,i,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{a(f,i);break}case"INSIDE_STRING":{switch(f){case'"':{t.pop(),r=i;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:r=i}break}case"INSIDE_ARRAY_START":{switch(f){case"]":{r=i,t.pop();break}default:{r=i,n(f,i,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(f){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=i,t.pop();break}default:{r=i;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{n(f,i,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),r=i;break}case"INSIDE_NUMBER":{switch(f){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=i;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&o(f,i),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(f,i);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(f,i);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&o(f,i);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const p=e.substring(s,i+1);!"false".startsWith(p)&&!"true".startsWith(p)&&!"null".startsWith(p)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?a(f,i):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&o(f,i)):r=i;break}}}let d=e.slice(0,r+1);for(let i=t.length-1;i>=0;i--)switch(t[i]){case"INSIDE_STRING":{d+='"';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":{d+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{d+="]";break}case"INSIDE_LITERAL":{const m=e.substring(s,e.length);"true".startsWith(m)?d+="true".slice(m.length):"false".startsWith(m)?d+="false".slice(m.length):"null".startsWith(m)&&(d+="null".slice(m.length))}}return d}function Jr(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=yt({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=yt({text:Wr(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}var Ur={code:"0",name:"text",parse:e=>{if(typeof e!="string")throw new Error('"text" parts expect a string value.');return{type:"text",value:e}}},qr={code:"2",name:"data",parse:e=>{if(!Array.isArray(e))throw new Error('"data" parts expect an array value.');return{type:"data",value:e}}},Yr={code:"3",name:"error",parse:e=>{if(typeof e!="string")throw new Error('"error" parts expect a string value.');return{type:"error",value:e}}},Kr={code:"8",name:"message_annotations",parse:e=>{if(!Array.isArray(e))throw new Error('"message_annotations" parts expect an array value.');return{type:"message_annotations",value:e}}},Gr={code:"9",name:"tool_call",parse:e=>{if(e==null||typeof e!="object"||!("toolCallId"in e)||typeof e.toolCallId!="str
3ing"||!("toolName"in e)||typeof e.toolName!="string"||!("args"in e)||typeof e.args!="object")throw new Error('"tool_call" parts expect an object with a "toolCallId", "toolName", and "args" property.');return{type:"tool_call",value:e}}},Hr={code:"a",name:"tool_result",parse:e=>{if(e==null||typeof e!="object"||!("toolCallId"in e)||typeof e.toolCallId!="string"||!("result"in e))throw new Error('"tool_result" parts expect an object with a "toolCallId" and a "result" property.');return{type:"tool_result",value:e}}},zr={code:"b",name:"tool_call_streaming_start",parse:e=>{if(e==null||typeof e!="object"||!("toolCallId"in e)||typeof e.toolCallId!="string"||!("toolName"in e)||typeof e.toolName!="string")throw new Error('"tool_call_streaming_start" parts expect an object with a "toolCallId" and "toolName" property.');return{type:"tool_call_streaming_start",value:e}}},Xr={code:"c",name:"tool_call_delta",parse:e=>{if(e==null||typeof e!="object"||!("toolCallId"in e)||typeof e.toolCallId!="string"||!("argsTextDelta"in e)||typeof e.argsTextDelta!="string")throw new Error('"tool_call_delta" parts expect an object with a "toolCallId" and "argsTextDelta" property.');return{type:"tool_call_delta",value:e}}},Zr={code:"d",name:"finish_message",parse:e=>{if(e==null||typeof e!="object"||!("finishReason"in e)||typeof e.finishReason!="string")throw new Error('"finish_message" parts expect an object with a "finishReason" property.');const t={finishReason:e.finishReason};return"usage"in e&&e.usage!=null&&typeof e.usage=="object"&&"promptTokens"in e.usage&&"completionTokens"in e.usage&&(t.usage={promptTokens:typeof e.usage.promptTokens=="number"?e.usage.promptTokens:Number.NaN,completionTokens:typeof e.usage.completionTokens=="number"?e.usage.completionTokens:Number.NaN}),{type:"finish_message",value:t}}},Qr={code:"e",name:"finish_step",parse:e=>{if(e==null||typeof e!="object"||!("finishReason"in e)||typeof e.finishReason!="string")throw new Error('"finish_step" parts expect an object with a "finishReason" property.');const t={finishReason:e.finishReason,isContinued:!1};return"usage"in e&&e.usage!=null&&typeof e.usage=="object"&&"promptTokens"in e.usage&&"completionTokens"in e.usage&&(t.usage={promptTokens:typeof e.usage.promptTokens=="number"?e.usage.promptTokens:Number.NaN,completionTokens:typeof e.usage.completionTokens=="number"?e.usage.completionTokens:Number.NaN}),"isContinued"in e&&typeof e.isContinued=="boolean"&&(t.isContinued=e.isContinued),{type:"finish_step",value:t}}},es={code:"f",name:"start_step",parse:e=>{if(e==null||typeof e!="object"||!("messageId"in e)||typeof e.messageId!="string")throw new Error('"start_step" parts expect an object with an "id" property.');return{type:"start_step",value:{messageId:e.messageId}}}},ts={code:"g",name:"reasoning",parse:e=>{if(typeof e!="string")throw new Error('"reasoning" parts expect a string value.');return{type:"reasoning",value:e}}},rs={code:"h",name:"source",parse:e=>{if(e==null||typeof e!="object")throw new Error('"source" parts expect a Source object.');return{type:"source",value:e}}},ss={code:"i",name:"redacted_reasoning",parse:e=>{if(e==null||typeof e!="object"||!("data"in e)||typeof e.data!="string")throw new Error('"redacted_reasoning" parts expect an object with a "data" property.');return{type:"redacted_reasoning",value:{data:e.data}}}},ns={code:"j",name:"reasoning_signature",parse:e=>{if(e==null||typeof e!="object"||!("signature"in e)||typeof e.signature!="string")throw new Error('"reasoning_signature" parts expect an object with a "signature" property.');return{type:"reasoning_signature",value:{signature:e.signature}}}},as={code:"k",name:"file",parse:e=>{if(e==null||typeof e!="object"||!("data"in e)||typeof e.data!="string"||!("mimeType"in e)||typeof e.mimeType!="string")throw new Error('"file" parts expect an object with a "data" and "mimeType" property.');return{type:"file",value:e}}},ct=[Ur,qr,Yr,Kr,Gr,Hr,zr,Xr,Zr,Qr,es,ts,rs,ss,ns,as],os=Object.fromEntries(ct.map(e=>[e.code,e]));Object.fromEntries(ct.map(e=>[e.name,e.code]));var is=ct.map(e=>e.code),cs=e=>{const t=e.indexOf(":");if(t===-1)throw new Error("Failed to parse stream string. No separator found.");const r=e.slice(0,t);if(!is.includes(r))throw new Error(`Failed to parse stream string. Invalid code ${r}.`);const s=r,n=e.slice(t+1),a=JSON.parse(n);return os[s].parse(a)},ls=10;
3function us(e,t){const r=new Uint8Array(t);let s=0;for(const n of e)r.set(n,s),s+=n.length;return e.length=0,r}async function ds({stream:e,onTextPart:t,onReasoningPart:r,onReasoningSignaturePart:s,onRedactedReasoningPart:n,onSourcePart:a,onFilePart:o,onDataPart:d,onErrorPart:i,onToolCallStreamingStartPart:f,onToolCallDeltaPart:m,onToolCallPart:p,onToolResultPart:N,onMessageAnnotationsPart:_,onFinishMessagePart:v,onFinishStepPart:C,onStartStepPart:P}){const R=e.getReader(),h=new TextDecoder,$=[];let k=0;for(;;){const{value:b}=await R.read();if(b&&($.push(b),k+=b.length,b[b.length-1]!==ls))continue;if($.length===0)break;const c=us($,k);k=0;const E=h.decode(c,{stream:!0}).split(`
4`).filter(y=>y!=="").map(cs);for(const{type:y,value:l}of E)switch(y){case"text":await(t==null?void 0:t(l));break;case"reasoning":await(r==null?void 0:r(l));break;case"reasoning_signature":await(s==null?void 0:s(l));break;case"redacted_reasoning":await(n==null?void 0:n(l));break;case"file":await(o==null?void 0:o(l));break;case"source":await(a==null?void 0:a(l));break;case"data":await(d==null?void 0:d(l));break;case"error":await(i==null?void 0:i(l));break;case"message_annotations":await(_==null?void 0:_(l));break;case"tool_call_streaming_start":await(f==null?void 0:f(l));break;case"tool_call_delta":await(m==null?void 0:m(l));break;case"tool_call":await(p==null?void 0:p(l));break;case"tool_result":await(N==null?void 0:N(l));break;case"finish_message":await(v==null?void 0:v(l));break;case"finish_step":await(C==null?void 0:C(l));break;case"start_step":await(P==null?void 0:P(l));break;default:{const w=y;throw new Error(`Unknown stream part type: ${w}`)}}}}async function fs({stream:e,update:t,onToolCall:r,onFinish:s,generateId:n=it,getCurrentDate:a=()=>new Date,lastMessage:o}){var d,i;const f=(o==null?void 0:o.role)==="assistant";let m=f?1+((i=(d=o.toolInvocations)==null?void 0:d.reduce((c,E)=>{var y;return Math.max(c,(y=E.step)!=null?y:0)},0))!=null?i:0):0;const p=f?structuredClone(o):{id:n(),createdAt:a(),role:"assistant",content:"",parts:[]};let N,_,v;function C(c,E){const y=p.parts.find(l=>l.type==="tool-invocation"&&l.toolInvocation.toolCallId===c);y!=null?y.toolInvocation=E:p.parts.push({type:"tool-invocation",toolInvocation:E})}const P=[];let R=f?o==null?void 0:o.annotations:void 0;const h={};let $={completionTokens:NaN,promptTokens:NaN,totalTokens:NaN},k="unknown";function b(){const c=[...P];R!=null&&R.length&&(p.annotations=R);const E={...structuredClone(p),revisionId:n()};t({message:E,data:c,replaceLastMessage:f})}await ds({stream:e,onTextPart(c){N==null?(N={type:"text",text:c},p.parts.push(N)):N.text+=c,p.content+=c,b()},onReasoningPart(c){var E;v==null?(v={type:"text",text:c},_!=null&&_.details.push(v)):v.text+=c,_==null?(_={type:"reasoning",reasoning:c,details:[v]},p.parts.push(_)):_.reasoning+=c,p.reasoning=((E=p.reasoning)!=null?E:"")+c,b()},onReasoningSignaturePart(c){v!=null&&(v.signature=c.signature)},onRedactedReasoningPart(c){_==null&&(_={type:"reasoning",reasoning:"",details:[]},p.parts.push(_)),_.details.push({type:"redacted",data:c.data}),v=void 0,b()},onFilePart(c){p.parts.push({type:"file",mimeType:c.mimeType,data:c.data}),b()},onSourcePart(c){p.parts.push({type:"source",source:c}),b()},onToolCallStreamingStartPart(c){p.toolInvocations==null&&(p.toolInvocations=[]),h[c.toolCallId]={text:"",step:m,toolName:c.toolName,index:p.toolInvocations.length};const E={state:"partial-call",step:m,toolCallId:c.toolCallId,toolName:c.toolName,args:void 0};p.toolInvocations.push(E),C(c.toolCallId,E),b()},onToolCallDeltaPart(c){const E=h[c.toolCallId];E.text+=c.argsTextDelta;const{value:y}=Jr(E.text),l={state:"partial-call",step:E.step,toolCallId:c.toolCallId,toolName:E.toolName,args:y};p.toolInvocations[E.index]=l,C(c.toolCallId,l),b()},async onToolCallPart(c){const E={state:"call",step:m,...c};if(h[c.toolCallId]!=null?p.toolInvocations[h[c.toolCallId].index]=E:(p.toolInvocations==null&&(p.toolInvocations=[]),p.toolInvocations.push(E)),C(c.toolCallId,E),b(),r){const y=await r({toolCall:c});if(y!=null){const l={state:"result",step:m,...c,result:y};p.toolInvocations[p.toolInvocations.length-1]=l,C(c.toolCallId,l),b()}}},onToolResultPart(c){const E=p.toolInvocations;if(E==null)throw new Error("tool_result must be preceded by a tool_call");const y=E.findIndex(w=>w.toolCallId===c.toolCallId);if(y===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");const l={...E[y],state:"result",...c};E[y]=l,C(c.toolCallId,l),b()},onDataPart(c){P.push(...c),b()},onMessageAnnotationsPart(c){R==null?R=[...c]:R.push(...c),b()},onFinishStepPart(c){m+=1,N=c.isContinued?N:void 0,_=void 0,v=void 0},onStartStepPart(c){f||(p.id=c.messageId),p.parts.push({type:"step-start"}),b()},onFinishMessagePart(c){k=c.finishReason,c.usage!=null&&($=Br(c.usage))},onErrorPart(c){throw new Error(c)}}),s==null||s({message:p,finishReason:k,usage:$})}async function ps({stream:e,onTextPart:t}){const r=e.pipeThrough(new TextDecoderStream).getReader();for(;;){const{done:s,value:n}=await r.read();if(s)break;await t(n)}}async function ms({stream:e,update:t,onFinish:r,getCurrentDate:s=()=>new Date,generateId:n=it}){const a={type:"text",text:""},o={id:n(),createdAt:s(),role:"assistant",content:"",parts:[a]};await ps({stream:e,onTextPart:d=>{o.content+=d,a.text+=d,t({message:{...o},data:[],replaceLastMessage:!1})}}),r==null||r(o,{usage:{completionTokens:NaN,promptTokens:NaN,totalTokens:NaN},finishReason:"unknown"})}var gs=()=>fetch;async function hs({api:e,body:t,streamProtocol:r="data",credentials:s,headers:n,abortController:a,restoreMessagesOnFailure:o,onResponse:d,onUpdate:i,onFinish:f,onToolCall:m,generateId:p,fetch:N=gs(),lastMessage:_,requestType:v="generate"}){var C,P,R;const $=await(v==="resume"?N(`${e}?chatId=${t.id}`,{method:"GET",headers:{"Content-Type":"application/json",...n},signal:(C=a==null?void 0:a())==null?void 0:C.signal,credentials:s}):N(e,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",...n},signal:(P=a==null?void 0:a())==null?void 0:P.signal,credentials:s})).catch(k=>{throw o(),k});if(d)try{await d($)}catch(k){throw k}if(!$.ok)throw o(),new Error((R=await $.text())!=null?R:"Failed to fetch the chat response.");if(!$.body)throw new Error("The response body is empty.");switch(r){case"text":{await ms({stream:$.body,update:i,onFinish:f,generateId:p});return}case"data":{await fs({stream:$.body,update:i,lastMessage:_,onToolCall:m,onFinish({message:k,finishReason:b,usage:c}){f&&k!=null&&f(k,{usage:c,finishReason:b})},generateId:p});return}default:{const k=r;throw new Error(`Unknown stream protocol: ${k}`)}}}function Ge(e){return e==null?void 0:e.reduce((t,r)=>{var s;return Math.max(t,(s=r.step)!=null?s:0)},0)}function Yt(e){var t;return(t=e.parts)!=null?t:[...e.toolInvocations?e.toolInvocations.map(r=>({type:"tool-invocation",toolInvocation:r})):[],...e.reasoning?[{type:"reasoning",reasoning:e.reasoning,details:[{type:"text",text:e.reasoning}]}]:[],...e.content?[{type:"text",text:e.content}]:[]]}function Pe(e){return e.map(t=>({...t,parts:Yt(t)}))}function He(e,t){if(e===t)return!0;
4if(e==null||t==null)return!1;if(typeof e!="object"&&typeof t!="object")return e===t;if(e.constructor!==t.constructor)return!1;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(Array.isArray(e)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!He(e[n],t[n]))return!1;return!0}const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(const n of r)if(!s.includes(n)||!He(e[n],t[n]))return!1;return!0}async function bt(e){if(!e)return[];if(globalThis.FileList&&e instanceof globalThis.FileList)return Promise.all(Array.from(e).map(async t=>{const{name:r,type:s}=t,n=await new Promise((a,o)=>{const d=new FileReader;d.onload=i=>{var f;a((f=i.target)==null?void 0:f.result)},d.onerror=i=>o(i),d.readAsDataURL(t)});return{name:r,contentType:s,url:n}}));if(Array.isArray(e))return e;throw new Error("Invalid attachments type")}function ys({originalMaxToolInvocationStep:e,originalMessageCount:t,maxSteps:r,messages:s}){var n;const a=s[s.length-1];return r>1&&a!=null&&(s.length>t||Ge(a.toolInvocations)!==e)&&Kt(a)&&((n=Ge(a.toolInvocations))!=null?n:0)<r}function Kt(e){if(e.role!=="assistant")return!1;const t=e.parts.reduce((s,n,a)=>n.type==="step-start"?a:s,-1),r=e.parts.slice(t+1).filter(s=>s.type==="tool-invocation");return r.length>0&&r.every(s=>"result"in s.toolInvocation)}function bs({messages:e,toolCallId:t,toolResult:r}){var s;const n=e[e.length-1],a=n.parts.find(d=>d.type==="tool-invocation"&&d.toolInvocation.toolCallId===t);if(a==null)return;const o={...a.toolInvocation,state:"result",result:r};a.toolInvocation=o,n.toolInvocations=(s=n.toolInvocations)==null?void 0:s.map(d=>d.toolCallId===t?o:d)}var Gt={exports:{}},Ht={};/**
5 * @license React
6 * use-sync-external-store-shim.production.js
7 *
8 * Copyright (c) Meta Platforms, Inc. and affiliates.
9 *
10 * This source code is licensed under the MIT license found in the
11 * LICENSE file in the root directory of this source tree.
12 */var we=g;function Es(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ws=typeof Object.is=="function"?Object.is:Es,_s=we.useState,xs=we.useEffect,Is=we.useLayoutEffect,Ss=we.useDebugValue;function vs(e,t){var r=t(),s=_s({inst:{value:r,getSnapshot:t}}),n=s[0].inst,a=s[1];return Is(function(){n.value=r,n.getSnapshot=t,Fe(n)&&a({inst:n})},[e,r,t]),xs(function(){return Fe(n)&&a({inst:n}),e(function(){Fe(n)&&a({inst:n})})},[e]),Ss(r),r}function Fe(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!ws(e,r)}catch{return!0}}function Rs(e,t){return t()}var Ts=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Rs:vs;Ht.useSyncExternalStore=we.useSyncExternalStore!==void 0?we.useSyncExternalStore:Ts;Gt.exports=Ht;var Et=Gt.exports;const zt=0,Xt=1,Zt=2,wt=3;var _t=Object.prototype.hasOwnProperty;function ze(e,t){var r,s;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((s=e.length)===t.length)for(;s--&&ze(e[s],t[s]););return s===-1}if(!r||typeof e=="object"){s=0;for(r in e)if(_t.call(e,r)&&++s&&!_t.call(t,r)||!(r in t)||!ze(e[r],t[r]))return!1;return Object.keys(t).length===s}}return e!==e&&t!==t}const le=new WeakMap,ue=()=>{},G=ue(),Xe=Object,T=e=>e===G,ae=e=>typeof e=="function",pe=(e,t)=>({...e,...t}),Qt=e=>ae(e.then),Ve={},De={},lt="undefined",Ne=typeof window!=lt,Ze=typeof document!=lt,Ns=Ne&&"Deno"in window,Cs=()=>Ne&&typeof window.requestAnimationFrame!=lt,er=(e,t)=>{const r=le.get(e);return[()=>!T(t)&&e.get(t)||Ve,s=>{if(!T(t)){const n=e.get(t);t in De||(De[t]=n),r[5](t,pe(n,s),n||Ve)}},r[6],()=>!T(t)&&t in De?De[t]:!T(t)&&e.get(t)||Ve]};let Qe=!0;const ks=()=>Qe,[et,tt]=Ne&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[ue,ue],As=()=>{const e=Ze&&document.visibilityState;return T(e)||e!=="hidden"},Ds=e=>(Ze&&document.addEventListener("visibilitychange",e),et("focus",e),()=>{Ze&&document.removeEventListener("visibilitychange",e),tt("focus",e)}),js=e=>{const t=()=>{Qe=!0,e()},r=()=>{Qe=!1};
12return et("online",t),et("offline",r),()=>{tt("online",t),tt("offline",r)}},Os={isOnline:ks,isVisible:As},Ls={initFocus:Ds,initReconnect:js},xt=!at.useId,be=!Ne||Ns,Ms=e=>Cs()?window.requestAnimationFrame(e):setTimeout(e,1),$e=be?g.useEffect:g.useLayoutEffect,Be=typeof navigator<"u"&&navigator.connection,It=!be&&Be&&(["slow-2g","2g"].includes(Be.effectiveType)||Be.saveData),je=new WeakMap,Ps=e=>Xe.prototype.toString.call(e),We=(e,t)=>e===`[object ${t}]`;let Fs=0;const rt=e=>{const t=typeof e,r=Ps(e),s=We(r,"Date"),n=We(r,"RegExp"),a=We(r,"Object");let o,d;if(Xe(e)===e&&!s&&!n){if(o=je.get(e),o)return o;if(o=++Fs+"~",je.set(e,o),Array.isArray(e)){for(o="@",d=0;d<e.length;d++)o+=rt(e[d])+",";je.set(e,o)}if(a){o="#";const i=Xe.keys(e).sort();for(;!T(d=i.pop());)T(e[d])||(o+=d+":"+rt(e[d])+",");je.set(e,o)}}else o=s?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return o},ut=e=>{if(ae(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?rt(e):"",[e,t]};let Vs=0;const st=()=>++Vs;async function tr(...e){const[t,r,s,n]=e,a=pe({populateCache:!0,throwOnError:!0},typeof n=="boolean"?{revalidate:n}:n||{});let o=a.populateCache;const d=a.rollbackOnError;let i=a.optimisticData;const f=N=>typeof d=="function"?d(N):d!==!1,m=a.throwOnError;if(ae(r)){const N=r,_=[],v=t.keys();for(const C of v)!/^\$(inf|sub)\$/.test(C)&&N(t.get(C)._k)&&_.push(C);return Promise.all(_.map(p))}return p(r);async function p(N){const[_]=ut(N);if(!_)return;const[v,C]=er(t,_),[P,R,h,$]=le.get(t),k=()=>{const I=P[_];return(ae(a.revalidate)?a.revalidate(v().data,N):a.revalidate!==!1)&&(delete h[_],delete $[_],I&&I[0])?I[0](Zt).then(()=>v().data):v().data};if(e.length<3)return k();let b=s,c,E=!1;const y=st();R[_]=[y,0];const l=!T(i),w=v(),V=w.data,J=w._c,x=T(J)?V:J;if(l&&(i=ae(i)?i(x,V):i,C({data:i,_c:x})),ae(b))try{b=b(x)}catch(I){c=I,E=!0}if(b&&Qt(b))if(b=await b.catch(I=>{c=I,E=!0}),y!==R[_][0]){if(E)throw c;return b}else E&&l&&f(c)&&(o=!0,C({data:x,_c:G}));if(o&&!E)if(ae(o)){const I=o(b,x);C({data:I,error:G,_c:G})}else C({data:b,error:G,_c:G});if(R[_][1]=st(),Promise.resolve(k()).then(()=>{C({_c:G})}),E){if(m)throw c;return}return b}}const St=(e,t)=>{for(const r in e)e[r][0]&&e[r][0](t)},$s=(e,t)=>{if(!le.has(e)){const r=pe(Ls,t),s=Object.create(null),n=tr.bind(G,e);let a=ue;const o=Object.create(null),d=(m,p)=>{const N=o[m]||[];return o[m]=N,N.push(p),()=>N.splice(N.indexOf(p),1)},i=(m,p,N)=>{e.set(m,p);const _=o[m];if(_)for(const v of _)v(p,N)},f=()=>{if(!le.has(e)&&(le.set(e,[s,Object.create(null),Object.create(null),Object.create(null),n,i,d]),!be)){const m=r.initFocus(setTimeout.bind(G,St.bind(G,s,zt))),p=r.initReconnect(setTimeout.bind(G,St.bind(G,s,Xt)));a=()=>{m&&m(),p&&p(),le.delete(e)}}};return f(),[e,n,f,a]}return[e,le.get(e)[4]]},Bs=(e,t,r,s,n)=>{const a=r.errorRetryCount,o=n.retryCount,d=~~((Math.random()+.5)*(1<<(o<8?o:8)))*r.errorRetryInterval;!T(a)&&o>a||setTimeout(s,d,n)},Ws=ze,[rr,Js]=$s(new Map),Us=pe({onLoadingSlow:ue,onSuccess:ue,onError:ue,onErrorRetry:Bs,onDiscarded:ue,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:It?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:It?5e3:3e3,compare:Ws,isPaused:()=>!1,cache:rr,mutate:Js,fallback:{}},Os),qs=(e,t)=>{const r=pe(e,t);if(t){const{use:s,fallback:n}=e,{use:a,fallback:o}=t;s&&a&&(r.use=s.concat(a)),n&&o&&(r.fallback=pe(n,o))}return r},Ys=g.createContext({}),Ks="$inf$",sr=Ne&&window.__SWR_DEVTOOLS_USE__,Gs=sr?window.__SWR_DEVTOOLS_USE__:[],Hs=()=>{sr&&(window.__SWR_DEVTOOLS_REACT__=at)},zs=e=>ae(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],Xs=()=>{const e=g.useContext(Ys);return g.useMemo(()=>pe(Us,e),[e])},Zs=e=>(t,r,s)=>e(t,r&&((...a)=>{const[o]=ut(t),[,,,d]=le.get(rr);if(o.startsWith(Ks))return r(...a);const i=d[o];return T(i)?r(...a):(delete d[o],i)}),s),Qs=Gs.concat(Zs),en=e=>function(...r){const s=Xs(),[n,a,o]=zs(r),d=qs(s,o);let i=e;const{use:f}=d,m=(f||[]).concat(Qs);for(let p=m.length;p--;)i=m[p](i);return i(n,a||d.fetcher||null,d)},tn=(e,t,r)=>{const s=t[e]||(t[e]=[]);return s.push(r),()=>{const n=s.indexOf(r);n>=0&&(s[n]=s[s.length-1],s.pop())}};Hs();const Je=at.use||(e=>
12{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}}),Ue={dedupe:!0},vt=Promise.resolve(G),rn=()=>ue,sn=(e,t,r)=>{const{cache:s,compare:n,suspense:a,fallbackData:o,revalidateOnMount:d,revalidateIfStale:i,refreshInterval:f,refreshWhenHidden:m,refreshWhenOffline:p,keepPreviousData:N,strictServerPrefetchWarning:_}=r,[v,C,P,R]=le.get(s),[h,$]=ut(e),k=g.useRef(!1),b=g.useRef(!1),c=g.useRef(h),E=g.useRef(t),y=g.useRef(r),l=()=>y.current,w=()=>l().isVisible()&&l().isOnline(),[V,J,x,I]=er(s,h),B=g.useRef({}).current,z=T(o)?T(r.fallback)?G:r.fallback[h]:o,se=(D,L)=>{for(const M in B){const j=M;if(j==="data"){if(!n(D[j],L[j])&&(!T(D[j])||!n(he,L[j])))return!1}else if(L[j]!==D[j])return!1}return!0},K=!k.current,O=g.useMemo(()=>{const D=V(),L=I(),M=W=>{const ee=pe(W);return delete ee._k,(()=>{if(!h||!t||l().isPaused())return!1;if(K&&!T(d))return d;const ce=T(z)?ee.data:z;return T(ce)||i})()?{isValidating:!0,isLoading:!0,...ee}:ee},j=M(D),X=D===L?j:M(L);let Z=j;return[()=>{const W=M(V());return se(W,Z)?(Z.data=W.data,Z.isLoading=W.isLoading,Z.isValidating=W.isValidating,Z.error=W.error,Z):(Z=W,W)},()=>X]},[s,h]),A=Et.useSyncExternalStore(g.useCallback(D=>x(h,(L,M)=>{se(M,L)||D()}),[s,h]),O[0],O[1]),ge=v[h]&&v[h].length>0,ne=A.data,te=T(ne)?z&&Qt(z)?Je(z):z:ne,oe=A.error,xe=g.useRef(te),he=N?T(ne)?T(xe.current)?te:xe.current:ne:te,Q=h&&T(te),ie=g.useRef(null);!be&&Et.useSyncExternalStore(rn,()=>(ie.current=!1,ie),()=>(ie.current=!0,ie));const Le=ie.current;_&&Le&&!a&&Q&&console.warn(`Missing pre-initiated data for serialized key "${h}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const Ce=!h||!t||l().isPaused()||ge&&!T(oe)?!1:K&&!T(d)?d:a?T(te)?!1:i:T(te)||i,ke=K&&Ce,S=T(A.isValidating)?ke:A.isValidating,q=T(A.isLoading)?ke:A.isLoading,F=g.useCallback(async D=>{const L=E.current;if(!h||!L||b.current||l().isPaused())return!1;let M,j,X=!0;const Z=D||{},W=!P[h]||!Z.dedupe,ee=()=>xt?!b.current&&h===c.current&&k.current:h===c.current,de={isValidating:!1,isLoading:!1},ce=()=>{J(de)},fe=()=>{const H=P[h];H&&H[1]===j&&delete P[h]},me={isValidating:!0};T(V().data)&&(me.isLoading=!0);try{if(W&&(J(me),r.loadingTimeout&&T(V().data)&&setTimeout(()=>{X&&ee()&&l().onLoadingSlow(h,r)},r.loadingTimeout),P[h]=[L($),st()]),[M,j]=P[h],M=await M,W&&setTimeout(fe,r.dedupingInterval),!P[h]||P[h][1]!==j)return W&&ee()&&l().onDiscarded(h),!1;de.error=G;const H=C[h];if(!T(H)&&(j<=H[0]||j<=H[1]||H[1]===0))return ce(),W&&ee()&&l().onDiscarded(h),!1;const re=V().data;de.data=n(re,M)?re:M,W&&ee()&&l().onSuccess(M,h,r)}catch(H){fe();const re=l(),{shouldRetryOnError:ye}=re;re.isPaused()||(de.error=H,W&&ee()&&(re.onError(H,h,re),(ye===!0||ae(ye)&&ye(H))&&(!l().revalidateOnFocus||!l().revalidateOnReconnect||w())&&re.onErrorRetry(H,h,re,Ae=>{const Me=v[h];Me&&Me[0]&&Me[0](wt,Ae)},{retryCount:(Z.retryCount||0)+1,dedupe:!0})))}return X=!1,ce(),!0},[h,s]),Y=g.useCallback((...D)=>tr(s,c.current,...D),[]);if($e(()=>{E.current=t,y.current=r,T(ne)||(xe.current=ne)}),$e(()=>{if(!h)return;const D=F.bind(G,Ue);let L=0;l().revalidateOnFocus&&(L=Date.now()+l().focusThrottleInterval);const j=tn(h,v,(X,Z={})=>{if(X==zt){const W=Date.now();l().revalidateOnFocus&&W>L&&w()&&(L=W+l().focusThrottleInterval,D())}else if(X==Xt)l().revalidateOnReconnect&&w()&&D();else{if(X==Zt)return F();if(X==wt)return F(Z)}});return b.current=!1,c.current=h,k.current=!0,J({_k:$}),Ce&&(P[h]||(T(te)||be?D():Ms(D))),()=>{b.current=!0,j()}},[h]),$e(()=>{let D;function L(){const j=ae(f)?f(V().data):f;j&&D!==-1&&(D=setTimeout(M,j))}function M(){!V().error&&(m||l().isVisible())&&(p||l().isOnline())?F(Ue).then(L):L()}return L(),()=>{D&&(clearTimeout(D),D=-1)}},[f,m,p,h]),g.useDebugValue(he),a){if(!xt&&be&&Q)throw new Error("Fallback data is required when using Suspense in SSR.");Q&&(E.current=t,y.current=r,b.current=!1);const D=R[h],L=!T(D)&&Q?Y(D):vt;if(Je(L),!T(oe)&&Q)throw oe;const M=Q?F(Ue):vt;!T(he)&&Q&&(M.status="fulfilled",M.value=!0),Je(M)}return{mutate:Y,get data(){return B.data=!0,he},get error(){return B.error=!0,oe},get isValidating(){return B.isValidating=!0,S},get isLoading(){return B.isLoading=!0,q}}},Oe=en(sn);function nn(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r,s=0;return function(...a){clearTimeout(r);const o=Date.now(),d=o-s,i=t-d;i<=0?(s=o,e.apply(this,a)):r=setTimeout(()=>{s=Date.now(),e.apply(this,a)},i)}}var an=nn;const on=Nt(an);function Rt(e,t){return t!=null?on(e,t):e}function cn(e){const[t,r]=g.useState(e);return g.useEffect(()=>{He(e,t)||r(e)},[e,t]),t}function ln({api:e="/api/chat",id:t,initialMessages:r,initialInput:s="",sendExtraMessageFields:n,onToolCall:a,experimental_prepareRequestBody:o,maxSteps:d=1,streamProtocol:i="data",onResponse:f,onFinish:m,onError:p,credentials:N,headers:_,body:v,generateId:C=it,fetch:P,keepLastMessageOnError:R=!0,experimental_throttle:h}={}){const[$]=g.useState(C),k=t??$,b=typeof e=="string"?[e,k]:k,c=cn(r??[]),E=g.useMemo(()=>Pe(c),[c]),{data:y,mutate:l}=Oe([b,"messages"],null,{fallbackData:E}),w=g.useRef(y||[]);g.useEffect(()=>{w.current=y||[]},[y]);const{data:V,mutate:J}=Oe([b,"streamData"],null),x=g.useRef(V);g.useEffect(()=>{x.current=V},[V]);const{data:I="ready",mutate:B}=Oe([b,"status"],null),{data:z=void 0,mutate:se}=Oe([b,"error"],null),K=g.useRef(null),O=g.useRef({credentials:N,headers:_,body:v});g.useEffect(()=>{O.current={credentials:N,headers:_,body:v}},[N,_,v]);const A=g.useCallback(async(S,q="generate")=>{var F,Y;B("submitted"),se(void 0);const U=Pe(S.messages),D=U.length,L=Ge((F=U[U.length-1])==null?void 0:F.toolInvocations);try{const j=new AbortController;K.current=j;const X=Rt(l,h),Z=Rt(J,h),W=w.current;X(U,!1);const ee=n?U:U.map(({role:ce,content:fe,experimental_attachments:me,data:
12H,annotations:re,toolInvocations:ye,parts:Ae})=>({role:ce,content:fe,...me!==void 0&&{experimental_attachments:me},...H!==void 0&&{data:H},...re!==void 0&&{annotations:re},...ye!==void 0&&{toolInvocations:ye},...Ae!==void 0&&{parts:Ae}})),de=x.current;await hs({api:e,body:(Y=o==null?void 0:o({id:k,messages:U,requestData:S.data,requestBody:S.body}))!=null?Y:{id:k,messages:ee,data:S.data,...O.current.body,...S.body},streamProtocol:i,credentials:O.current.credentials,headers:{...O.current.headers,...S.headers},abortController:()=>K.current,restoreMessagesOnFailure(){R||X(W,!1)},onResponse:f,onUpdate({message:ce,data:fe,replaceLastMessage:me}){B("streaming"),X([...me?U.slice(0,U.length-1):U,ce],!1),fe!=null&&fe.length&&Z([...de??[],...fe],!1)},onToolCall:a,onFinish:m,generateId:C,fetch:P,lastMessage:U[U.length-1],requestType:q}),K.current=null,B("ready")}catch(j){if(j.name==="AbortError")return K.current=null,B("ready"),null;p&&j instanceof Error&&p(j),se(j),B("error")}const M=w.current;ys({originalMaxToolInvocationStep:L,originalMessageCount:D,maxSteps:d,messages:M})&&await A({messages:M})},[l,B,e,O,f,m,p,se,J,x,i,n,o,a,d,w,K,C,P,R,h,k]),ge=g.useCallback(async(S,{data:q,headers:F,body:Y,experimental_attachments:U=S.experimental_attachments}={})=>{var D,L;const M=await bt(U),j=w.current.concat({...S,id:(D=S.id)!=null?D:C(),createdAt:(L=S.createdAt)!=null?L:new Date,experimental_attachments:M.length>0?M:void 0,parts:Yt(S)});return A({messages:j,headers:F,body:Y,data:q})},[A,C]),ne=g.useCallback(async({data:S,headers:q,body:F}={})=>{const Y=w.current;if(Y.length===0)return null;const U=Y[Y.length-1];return A({messages:U.role==="assistant"?Y.slice(0,-1):Y,headers:q,body:F,data:S})},[A]),te=g.useCallback(()=>{K.current&&(K.current.abort(),K.current=null)},[]),oe=g.useCallback(async()=>{const S=w.current;A({messages:S},"resume")},[A]),xe=g.useCallback(S=>{typeof S=="function"&&(S=S(w.current));const q=Pe(S);l(q,!1),w.current=q},[l]),he=g.useCallback(S=>{typeof S=="function"&&(S=S(x.current)),J(S,!1),x.current=S},[J]),[Q,ie]=g.useState(s),Le=g.useCallback(async(S,q={},F)=>{var Y;if((Y=S==null?void 0:S.preventDefault)==null||Y.call(S),!Q&&!q.allowEmptySubmit)return;F&&(O.current={...O.current,...F});const U=await bt(q.experimental_attachments),L={messages:w.current.concat({id:C(),createdAt:new Date,role:"user",content:Q,experimental_attachments:U.length>0?U:void 0,parts:[{type:"text",text:Q}]}),headers:q.headers,body:q.body,data:q.data};A(L),ie("")},[Q,C,A]),Ce=S=>{ie(S.target.value)},ke=g.useCallback(({toolCallId:S,result:q})=>{const F=w.current;if(bs({messages:F,toolCallId:S,toolResult:q}),l([...F.slice(0,F.length-1),{...F[F.length-1]}],!1),I==="submitted"||I==="streaming")return;const Y=F[F.length-1];Kt(Y)&&A({messages:F})},[l,I,A]);return{messages:y??[],id:k,setMessages:xe,data:V,setData:he,error:z,append:ge,reload:ne,stop:te,experimental_resume:oe,input:Q,setInput:ie,handleInputChange:Ce,handleSubmit:Le,isLoading:I==="submitted"||I==="streaming",status:I,addToolResult:ke}}function un(e){const t=new Map,r=[];for(const s of e)if(s.kind==="orchestrator_step")r.push(s.step);else if(s.kind==="subagent_start")t.set(s.id,{id:s.id,role:s.role,task:s.task,model:s.model,status:"running",toolCalls:[]});else if(s.kind==="subagent_tool_call"){const n=t.get(s.id);if(!n)continue;n.toolCalls.push({tool:s.tool,args_preview:s.args_preview})}else if(s.kind==="subagent_tool_result"){const n=t.get(s.id);if(!n)continue;const a=[...n.toolCalls].reverse().find(o=>o.tool===s.tool&&o.ms===void 0);a&&(a.ms=s.ms,a.ok=s.ok,a.scanned=s.scanned)}else if(s.kind==="subagent_done"){const n=t.get(s.id);if(!n)continue;n.status="done",n.ms=s.ms,n.scanned=s.scanned,n.summary=s.summary_preview}else if(s.kind==="subagent_error"){const n=t.get(s.id);if(!n)continue;n.status="error",n.error=s.message}return{cards:Array.from(t.values()),orchestratorSteps:r}}function nt(e){return e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}const dn={orchestrator:"Wayfinder",sales:"Sales",accounting:"Accounting",dispatch:"Dispatch",memberships:"Memberships",marketing:"Marketing",getcomms:"GetComms",getclarity:"GetClarity",getquote:"GetQuote",st_generic:"ServiceTitan"};function fn({card:e}){const[t,r]=g.useState(e.status==="running"),s=e.status==="running"?qe:e.status==="done"?fr:pr,n=e.status==="running"?"text-primary animate-spin":e.status==="done"?"text-emerald-500":"text-destructive";return u.jsxs("div",{className:"rounded-md border border-border/60 bg-background/40",children:[u.jsxs("button",{type:"button",onClick:()=>r(a=>!a),className:"w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-background/60 rounded-md",children:[t?u.jsx(kt,{className:"h-3.5 w-3.5 opacity-60"}):u.jsx(Ct,{className:"h-3.5 w-3.5 opacity-60"}),u.jsx(s,{className:`h-3.5 w-3.5 ${n}`}),u.jsx("span",{className:"text-xs font-semibold",children:dn[e.role]??e.role}),u.jsx("span",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:e.model.replace(/^openai\//,"").replace(/^google\//,"")}),u.jsxs("span",{className:"text-[11px] text-muted-foreground ml-auto",children:[nt(e.ms),e.scanned!=null&&e.scanned>0?` · scanned ${e.scanned}`:"",e.status==="running"?" · running":""]})]}),t&&u.jsxs("div",{className:"px-3 pb-2 pt-1 space-y-1.5 text-[11px]",children:[u.jsxs("div",{className:"text-muted-foreground italic line-clamp-2",children:['"',e.task,'"']}),e.toolCalls.map((a,o)=>u.jsxs("div",{className:"flex items-start gap-2 font-mono",children:[u.jsx(mr,{className:"h-3 w-3 mt-0.5 shrink-0 opacity-60"}),u.jsxs("div",{className:"flex-1 min-w-0",children:[u.jsxs("div",{className:"truncate",children:[u.jsx("span",{className:"text-foreground
12/90",children:a.tool}),a.args_preview?u.jsxs("span",{className:"text-muted-foreground",children:[" ",a.args_preview]}):null]}),a.ms!=null&&u.jsxs("div",{className:"text-muted-foreground",children:[a.ok?"✓":"✗"," ",nt(a.ms),a.scanned!=null&&a.scanned>0?` · scanned ${a.scanned}`:""]})]})]},o)),e.summary&&u.jsx("div",{className:"text-foreground/80 border-l-2 border-primary/40 pl-2 mt-1",children:e.summary}),e.error&&u.jsxs("div",{className:"text-destructive",children:["Error: ",e.error]})]})]})}function Tt({events:e,live:t}){const{cards:r,orchestratorSteps:s}=g.useMemo(()=>un(e),[e]),[n,a]=g.useState(!1);if(r.length===0&&s.length===0)return null;const o=r.filter(m=>m.role!=="orchestrator"),d=r.reduce((m,p)=>Math.max(m,p.ms??0),0),i=r.reduce((m,p)=>m+(p.scanned??0),0),f=o.filter(m=>m.status!=="running").length;return u.jsxs("div",{className:"mb-3 rounded-lg border border-border/60 bg-muted/40",children:[u.jsxs("button",{type:"button",onClick:()=>a(m=>!m),className:"w-full flex items-center gap-2 px-3 py-2 text-left",children:[u.jsx(dr,{className:`h-3.5 w-3.5 ${t?"text-primary animate-pulse":"text-primary"}`}),u.jsx("span",{className:"text-xs font-semibold",children:t?"Wayfinder is working":o.length>0?`Wayfinder used ${o.length} helper${o.length===1?"":"s"}`:"Wayfinder activity"}),u.jsxs("span",{className:"text-[11px] text-muted-foreground ml-auto",children:[o.length>0?`${f}/${o.length} done`:"",d>0?` · ${nt(d)}`:"",i>0?` · scanned ${i}`:""]}),n?u.jsx(Ct,{className:"h-3.5 w-3.5 opacity-60"}):u.jsx(kt,{className:"h-3.5 w-3.5 opacity-60"})]}),!n&&u.jsx("div",{className:"px-3 pb-3 space-y-2",children:r.map(m=>u.jsx(fn,{card:m},m.id))})]})}const pn="tzrkxgscwfjeaontrovh",mn=`https://${pn}.supabase.co/functions/v1/wayfinder-chat`;function gn(e){if(!e||typeof e!="string")return e??"";let t=e;return/\|\s*:?-{3,}/.test(t)&&(t=t.replace(/(\|[^\n|]*\|[^\n|]*\|[^\n]*?)(\s*)(\|\s*:?-{3,}[-:\s|]*\|)/g,`$1
13$3`),t=t.replace(/(\|[^\n]*?\|)\s*(\|[^\n|]+\|)/g,(r,s,n)=>`${s}
14${n}`)),t=t.split(`
15`).map(r=>r.trimStart().startsWith("|")&&/<[^>]+>/.test(r)?r.replace(/<[^>]+>/g," ").replace(/[ \t]{2,}/g," "):r).join(`
16`),t}function zn(){const{tenant:e}=nr(),t=ar(),{threadId:r}=or(),[s,n]=g.useState([]),[a,o]=g.useState(!1),[d,i]=g.useState({}),f=g.useRef(null),m=g.useRef(null),p=g.useRef("ready"),N=async(y,l)=>{var B;const{data:w}=await dt.auth.getSession(),V=(B=w.session)==null?void 0:B.access_token,J=new Headers(l==null?void 0:l.headers);V&&J.set("Authorization",`Bearer ${V}`);const x=await fetch(y,{...l,headers:J}),I=x.headers.get("X-Thread-Id");return I&&(m.current=I),x},{messages:_,input:v,handleInputChange:C,handleSubmit:P,status:R,setMessages:h,data:$,setData:k}=ln({id:r??"new",api:mn,fetch:N,body:{threadId:r},initialMessages:s,onResponse:y=>{const l=y.headers.get("X-Thread-Id");l&&l!==r&&(e!=null&&e.slug)&&t(`/${e.slug}/wayfinder/chat/${l}`,{replace:!0})},onError:y=>cr.error(y.message||"Chat failed")}),b=$??[];g.useEffect(()=>{p.current=R},[R]),g.useEffect(()=>{if(!r){n([]),m.current=null;return}if(R==="submitted"||R==="streaming"||m.current===r)return;let y=!1;return o(!0),dt.from("wayfinder_chat_messages").select("id, role, content, created_at, activity").eq("thread_id",r).order("created_at",{ascending:!0}).then(({data:l})=>{if(y)return;const w=(l??[]).filter(x=>x.role==="user"||x.role==="assistant"),V=w.map(x=>{var I;return{id:x.id,role:x.role,content:typeof x.content=="string"?x.content:((I=x.content)==null?void 0:I.text)??""}}),J={};for(const x of w)x.role==="assistant"&&Array.isArray(x.activity)&&x.activity.length>0&&(J[x.id]=x.activity);n(V),i(J),o(!1)}),()=>{y=!0}},[r,R]);const c=g.useRef("ready");g.useEffect(()=>{const y=c.current;if(c.current=R,(y==="streaming"||y==="submitted")&&R==="ready"){const l=[..._].reverse().find(w=>w.role==="assistant");l&&b.length>0&&i(w=>({...w,[l.id]:b})),k==null||k([])}},[R]),g.useEffect(()=>{r&&m.current!==r&&(R==="submitted"||R==="streaming"||s.length!==0&&(_.length>s.length||(h(s),m.current=r)))},[s,r,R]),g.useEffect(()=>{var y;(y=f.current)==null||y.scrollTo({top:f.current.scrollHeight,behavior:"smooth"})},[_,R]);const E=R==="submitted"||R==="streaming";return u.jsxs(ur,{className:"h-[calc(100vh-100px)] flex flex-col",children:[u.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border",children:[u.jsx("div",{className:"text-xs text-muted-foreground",children:r?`Thread ${r.slice(0,8)}…`:"New conversation"}),u.jsxs(ft,{size:"sm",variant:"ghost",onClick:()=>(e==null?void 0:e.slug)&&t(`/${e.slug}/wayfinder/chat`),children:[u.jsx(gr,{className:"h-4 w-4 mr-1"})," New chat"]})]}),u.jsxs("div",{ref:f,className:"flex-1 overflow-y-auto p-4 space-y-4",children:[a&&u.jsx("div",{className:"flex justify-center",children:u.jsx(qe,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!a&&_.length===0&&u.jsxs("div",{className:"text-center text-muted-foreground py-12",children:[u.jsx(hr,{className:"h-10 w-10 mx-auto mb-3 opacity-50"}),u.jsx("p",{children:"Ask Wayfinder anything. It can remember what you tell it."})]}),(()=>{var l;const y=(l=[..._].reverse().find(w=>w.role==="assistant"))==null?void 0:l.id;return _.map(w=>{const V=w.role==="assistant"&&w.id===y&&E,J=w.role==="assistant"?V&&b.length>0?b:d[w.id]??[]:[];return u.jsx("div",{className:`flex ${w.role==="user"?"justify-end":"justify-start"}`,children:u.jsxs("div",{className:`${w.role==="user"?"max-w-[80%]":"max-w-[88%]"} ${w.role==="user"?"rounded-lg px-4 py-2 bg-primary text-primary-foreground":"w-full"}`,children:[J.length>0&&u.jsx(Tt,{events:J,live:V}),u.jsx("div",{className:w.role==="assistant"?"rounded-lg px-4 py-2 bg-muted text-foreground":"",children:u.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none break-words prose-headings:mt-3 prose-headings:mb-1 prose-p:my-2 prose-ul:my-2 prose-ol:my-2 prose-li:my-0 prose-li:leading-snug prose-blockquote:my-2 prose-blockquote:border-l-2 prose-blockquote:border-primary/40 prose-blockquote:pl-3 prose-blockquote:not-italic prose-blockquote:text-foreground
16/90 prose-code:rounded prose-code:bg-background/60 prose-code:px-1 prose-code:py-0.5 prose-code:text-[0.85em] prose-code:before:content-none prose-code:after:content-none",children:u.jsx(yr,{remarkPlugins:[br],components:{a:({node:x,href:I,children:B,...z})=>{const se=A=>A==null||A===!1?"":typeof A=="string"?A:typeof A=="number"?String(A):Array.isArray(A)?A.map(se).join(""):typeof A=="object"&&A.props?se(A.props.children):"",K=se(B).trim();if(K.startsWith("!button:")&&I){const A=K.slice(8).trim(),ge=I.startsWith("/")||/\/getcomms\b/.test(I),ne=ge?wr:_r,te="inline-flex items-center gap-1.5 h-8 px-3 rounded-full text-xs font-semibold no-underline shadow-sm transition-all "+(ge?"bg-gradient-to-r from-primary to-primary/80 text-primary-foreground hover:opacity-90 hover:shadow":"bg-foreground text-background hover:bg-foreground/90 hover:shadow"),oe=u.jsxs(u.Fragment,{children:[u.jsx(ne,{className:"h-3.5 w-3.5"}),A]});return I.startsWith("/")?u.jsx(ir,{to:I,className:te,children:oe}):u.jsx("a",{href:I,target:"_blank",rel:"noopener noreferrer",className:te,children:oe})}return u.jsx("a",{...z,href:I,target:"_blank",rel:"noopener noreferrer",className:"text-primary underline underline-offset-2 hover:opacity-80",children:B})},p:({node:x,children:I,...B})=>{const z=O=>O==null||O===!1?"":typeof O=="string"?O:typeof O=="number"?String(O):Array.isArray(O)?O.map(z).join(""):typeof O=="object"&&O.props?z(O.props.children):"";return(Array.isArray(I)?I:[I]).some(O=>O&&typeof O=="object"&&O.props&&z(O.props.children).trim().startsWith("!button:"))?u.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:I}):u.jsx("p",{...B,children:I})},table:({children:x})=>u.jsx("div",{className:"my-3 overflow-x-auto rounded-md border border-border/60",children:u.jsx("table",{className:"w-full text-xs border-collapse",children:x})}),thead:({children:x})=>u.jsx("thead",{className:"bg-background/60",children:x}),th:({children:x,style:I})=>u.jsx("th",{style:I,className:"text-left font-semibold px-3 py-2 border-b border-border/60 whitespace-nowrap",children:x}),td:({children:x,style:I})=>u.jsx("td",{style:I,className:"px-3 py-2 align-top border-b border-border/40 last:border-b-0",children:x}),tr:({children:x})=>u.jsx("tr",{className:"last:[&>td]:border-b-0",children:x})},children:w.role==="assistant"?gn(w.content):w.content})})})]})},w.id)})})(),R==="submitted"&&u.jsx("div",{className:"flex justify-start",children:u.jsxs("div",{className:"w-full max-w-[88%]",children:[b.length>0&&u.jsx(Tt,{events:b,live:!0}),u.jsxs("div",{className:"bg-muted rounded-lg px-4 py-3 flex items-center gap-1.5 w-fit",children:[u.jsx("span",{className:"h-2 w-2 rounded-full bg-foreground
16/60 animate-bounce [animation-delay:-0.3s]"}),u.jsx("span",{className:"h-2 w-2 rounded-full bg-foreground/60 animate-bounce [animation-delay:-0.15s]"}),u.jsx("span",{className:"h-2 w-2 rounded-full bg-foreground/60 animate-bounce"})]})]})})]}),u.jsxs("form",{onSubmit:P,className:"border-t border-border p-3 flex gap-2",children:[u.jsx(lr,{value:v,onChange:C,placeholder:"Message Wayfinder…",rows:2,className:"resize-none",onKeyDown:y=>{y.key==="Enter"&&!y.shiftKey&&(y.preventDefault(),!E&&v.trim()&&P(y))}}),u.jsx(ft,{type:"submit",disabled:E||!v.trim(),children:E?u.jsx(qe,{className:"h-4 w-4 animate-spin"}):u.jsx(Er,{className:"h-4 w-4"})})]})]})}export{zn as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.