@erdoai/ui 0.1.43 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -23,4 +23,4 @@ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Col
|
|
|
23
23
|
$bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"}],ip:1,op:54,st:0,ct:1,bm:0}]},{id:"comp_3",nm:"mask-1",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"NULL 2",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:11,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:17.25,s:[-30]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:23.5,s:[30]},{i:{x:[.16],y:[1]},o:{x:[.333],y:[0]},t:31,s:[-30]},{t:46,s:[0]}],ix:10},p:{a:0,k:[250,284,0],ix:2,l:2},a:{a:0,k:[50,50,0],ix:1,l:2},s:{a:1,k:[{i:{x:[0,0,.2],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[1,1,.8],y:[0,0,0]},t:16,s:[180,180,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[.7,.7,.7],y:[0,0,0]},t:35,s:[180,180,100]},{t:58,s:[100,100,100]}],ix:6,l:2}},ao:0,ip:0,op:53,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.005,120.173,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,0],[0,0]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[52]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[52]}],ix:5},lc:2,lj:1,ml:10,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.004,10.799,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:1},o:{x:.333,y:0},t:0,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]},{i:{x:0,y:1},o:{x:1,y:0},t:10,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{i:{x:.833,y:.833},o:{x:1,y:0},t:29,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{t:53,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[42]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[42]}],ix:5},lc:2,lj:2,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,-14.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0}]}],layers:[{ddd:0,ind:1,ty:3,nm:"control",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ef:[{ty:5,nm:"primary",np:3,mn:"ADBE Color Control",ix:1,en:1,ef:[{ty:2,nm:"Color",mn:"ADBE Color Control-0001",ix:1,v:{a:0,k:[.071,.075,.192],ix:1}}]}],ip:0,op:131,st:0,bm:0},{ddd:0,ind:3,ty:0,nm:"hover-warning",refId:"comp_2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:0,op:70,st:0,bm:0}],markers:[{tm:0,cm:"default:hover-warning",dr:60}],props:{}};var ir=null,he=null,rn=new Set;function na(){return he||(typeof window>"u"?Promise.resolve():(he=import('@lordicon/react').then(t=>{ir=t.Player,rn.forEach(e=>e());}),he))}typeof window<"u"&&na();function ra(t){return rn.add(t),()=>rn.delete(t)}function oa(){return ir}function aa(){return null}function sa(){let[t,e]=at.useState("#000000");return at.useEffect(()=>{if(typeof window>"u")return;let n=()=>{let r=document.documentElement.classList.contains("dark");e(r?"#ffffff":"#000000");};n();let o=new MutationObserver(r=>{r.forEach(a=>{a.attributeName==="class"&&n();});});return o.observe(document.documentElement,{attributes:true}),()=>o.disconnect()},[]),t}function mt({status:t,color:e,size:n=16,className:o}){let r=at.useRef(null),a=at.useRef(null),i=at.useRef(null),s=at.useSyncExternalStore(ra,oa,aa),l=sa(),c=e||l;return at.useEffect(()=>{s&&(t==="loading"?r.current?.playFromBeginning?.():t==="finished"?(r.current?.pause?.(),a.current?.playFromBeginning?.()):t==="failed"&&(r.current?.pause?.(),i.current?.playFromBeginning?.()));},[t,s]),s?jsxRuntime.jsxs("div",{className:o,style:{width:n,height:n,position:"relative"},children:[jsxRuntime.jsx("div",{style:{position:"absolute",opacity:t==="loading"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsxRuntime.jsx(s,{ref:r,size:n,icon:rr,colorize:c,onComplete:()=>r.current?.playFromBeginning?.()})}),jsxRuntime.jsx("div",{style:{position:"absolute",opacity:t==="finished"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsxRuntime.jsx(s,{ref:a,size:n,icon:or,colorize:c})}),jsxRuntime.jsx("div",{style:{position:"absolute",opacity:t==="failed"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsxRuntime.jsx(s,{ref:i,size:n,icon:ar,colorize:c})})]}):jsxRuntime.jsx("div",{className:o,style:{width:n,height:n}})}function Yt(t,e){return t==="json"||e==="json"}var lr=(l=>(l.Pending="pending",l.Running="running",l.Success="success",l.Error="error",l.RequiresInfo="requires info",l.GoToStep="go to step",l.Skipped="skipped",l.Break="break",l))(lr||{}),on=(a=>(a.Initializing="initializing",a.Running="running",a.ProcessingDatasets="processing datasets",a.Completed="completed",a.Failed="failed",a))(on||{});var cr={Finished:"step finished",Failed:"step error"};function xe({step:t}){let e=R(t.action_type)||"step",n=t.currentStatus;if(!n)return null;let o="loading";n.status===cr.Finished||n.status==="completed"?o="finished":(n.status===cr.Failed||n.status==="failed")&&(o="failed");let r,a=R(n.message);return a?r=a:o==="finished"?r=R(t.finished_message)||`Finished ${e}`:o==="failed"?r=`Failed: ${e}`:r=R(t.running_message)||`Running ${e}...`,jsxRuntime.jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsxRuntime.jsx(mt,{status:o}),r]})}function ke({step:t,ContentComponent:e}){if(R(t.user_output_visibility)!=="visible")return null;let n=R(t.action_type);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[n!=="bot.invoke"&&n!=="invoke_bot"&&jsxRuntime.jsx(xe,{step:t}),jsxRuntime.jsx(Bt,{eventsByID:t.eventsByID,ContentComponent:e})]})}function be({event:t,ContentComponent:e}){let n=L(),o=e??n?.ContentComponent;if(!t)return null;switch(t.type){case "output":return t.Output?jsxRuntime.jsx(ye,{output:t.Output,ContentComponent:o}):null;case "step":return t.Step?jsxRuntime.jsx(ke,{step:t.Step,ContentComponent:o}):null;default:return null}}function Bt({eventsByID:t,ContentComponent:e}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Object.values(t).map(n=>jsxRuntime.jsx(be,{event:n,ContentComponent:e},n.id))})}function Xt({content:t,className:e}){return t?.length?jsxRuntime.jsx("div",{className:e||"prose dark:prose-invert max-w-4xl w-full leading-normal",children:jsxRuntime.jsx("p",{style:{whiteSpace:"pre-wrap"},children:t})}):null}function ma(t){let e=[],n=t;for(;n.length>0;){let o=n.indexOf("{"),r=n.indexOf("["),a=-1,i=true;if(o>=0&&(r<0||o<r)?(a=o,i=true):r>=0&&(a=r,i=false),a<0){n.trim()&&e.push({type:"text",content:n});break}if(a>0){let d=n.slice(0,a);d.trim()&&e.push({type:"text",content:d});}let s=0,l=a,c=i?"{":"[",u=i?"}":"]";for(let d=a;d<n.length;d++)if(n[d]===c&&s++,n[d]===u&&s--,s===0){l=d+1;break}let p=n.slice(a,l);try{let d=JSON.parse(p);e.push({type:"json",content:d});}catch{e.push({type:"text",content:p});}n=n.slice(l);}return e}function fa(t){switch(t){case "muted":return "text-gray-500";case "error":return "text-red-500";case "warning":return "text-yellow-600";case "success":return "text-green-600";default:return ""}}function st({content:t,className:e}){let n=at.useMemo(()=>t==null?"":typeof t=="string"?t:JSON.stringify(t,null,2),[t]),o=at.useMemo(()=>ma(n),[n]);return n?.length?jsxRuntime.jsx("div",{className:e||"prose dark:prose-invert leading-normal",children:o.map((r,a)=>{if(r.type==="json"){let i=r.content;return i.message&&typeof i.message=="string"?jsxRuntime.jsx("p",{className:fa(i.style),children:i.message},a):jsxRuntime.jsx("pre",{className:"bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto text-sm",children:JSON.stringify(i,null,2)},a)}return jsxRuntime.jsx("p",{children:r.content},a)})}):null}function Pt({config:t,data:e,className:n}){let o=at.useMemo(()=>!t?.chart_type||!t?.chart_title||!t?.series?.length||!t?.y_axes?.length?null:{chartType:t.chart_type,title:t.chart_title,xAxis:{label:t.x_axis.axis_label,key:t.x_axis.key,maxValue:t.x_axis.max_value,minValue:t.x_axis.min_value,type:t.x_axis.value_type,format:t.x_axis.format},yAxes:t.y_axes.map(s=>({label:s.axis_label,key:s.key,maxValue:s.max_value,minValue:s.min_value,type:s.value_type,format:s.format})),series:t.series.map(s=>({key:s.key,name:s.series_name,color:s.color,axisIndex:s.axis_index,filters:s.filters})),dataReduction:t.data_reduction,stacked:t.stacked,sort:t.sort},[t]);if(!o)return jsxRuntime.jsx("div",{className:"text-red-500",children:"Invalid chart configuration"});if(!e||e.length===0)return jsxRuntime.jsx("div",{className:"text-gray-500",children:"No data available for chart"});let r=null;switch(o.chartType){case "bar":case "histogram":r=dt;break;case "line":r=St;break;case "pie":r=wt;break;case "scatter":r=Nt;break;case "heatmap":r=It;break}if(!r)return jsxRuntime.jsxs("div",{className:"text-red-500",children:["Unsupported chart type: ",o.chartType]});let a={[o.xAxis.key]:{label:o.xAxis.label,format:o.xAxis.format,type:o.xAxis.type},...o.series.reduce((s,l)=>(s[l.key]={label:l.name,color:l.color},s),{})},i={chartType:o.chartType,xAxis:o.xAxis,yAxes:o.yAxes,series:o.series};return jsxRuntime.jsx("div",{className:n||"w-full max-w-3xl",children:jsxRuntime.jsx(r,{title:o.title,data:e,displayConfig:a,dataConfig:i,stacked:o.stacked,disableAnimation:e.length>100})})}function Rt({title:t,columns:e,data:n,className:o,maxRows:r=100}){let a=at.useMemo(()=>!n||n.length===0?[]:r?n.slice(0,r):n,[n,r]);return !e||e.length===0?jsxRuntime.jsx("div",{className:"text-gray-500",children:"No columns defined"}):!n||n.length===0?jsxRuntime.jsx("div",{className:"text-gray-500",children:"No data available"}):jsxRuntime.jsxs("div",{className:o||"w-full",children:[t&&jsxRuntime.jsx("h3",{className:"text-lg font-medium mb-3",children:t}),jsxRuntime.jsx("div",{className:"relative w-full overflow-x-auto rounded-lg border border-border",children:jsxRuntime.jsxs("table",{className:"w-full caption-bottom text-sm",children:[jsxRuntime.jsx("thead",{className:"[&_tr]:border-b",children:jsxRuntime.jsx("tr",{className:"border-b transition-colors bg-muted/50",children:e.map(i=>jsxRuntime.jsx("th",{className:"h-10 px-3 text-left align-middle font-medium text-muted-foreground",children:i.column_name},i.key))})}),jsxRuntime.jsx("tbody",{className:"[&_tr:last-child]:border-0",children:a.map((i,s)=>jsxRuntime.jsx("tr",{className:"border-b transition-colors hover:bg-muted/50",children:e.map(l=>jsxRuntime.jsx("td",{className:"p-3 align-middle text-foreground",children:z(i[l.key],l.format,l.value_type)},l.key))},s))})]})}),n.length>r&&jsxRuntime.jsxs("p",{className:"text-sm text-muted-foreground mt-2",children:["Showing ",r," of ",n.length," rows"]})]})}function ba(){return t=>{let e=[];unistUtilVisit.visit(t,"code",(n,o,r)=>{let a=n;(!a.value||a.value.trim()==="")&&r&&typeof o=="number"&&e.push({parent:r,index:o});}),unistUtilVisit.visit(t,"text",(n,o,r)=>{let i=n.value?.trim();i&&/^```[a-zA-Z]*$/.test(i)&&r&&typeof o=="number"&&e.push({parent:r,index:o});}),e.sort((n,o)=>o.index-n.index).forEach(({parent:n,index:o})=>{n.children.splice(o,1);});}}function O({content:t,className:e}){return t?.length?jsxRuntime.jsx("div",{className:G("prose dark:prose-invert leading-tight",e),children:jsxRuntime.jsx(xa__default.default,{remarkPlugins:[ka__default.default,ba],children:t})}):null}async function Sa(t,e,n,o,r){let a=new URLSearchParams({ThreadID:n}),i=`${t}/datasets/${encodeURIComponent(e)}?${a}`,s={};o?s.Authorization=`Bearer ${o}`:r&&(s["X-Erdo-Token"]=r);let l=await fetch(i,{headers:s});if(!l.ok)return null;let c=await l.json();return {id:c.id,name:R(c.name)||"dataset"}}async function wa(t,e,n,o){let r=`${t}/datasets/${encodeURIComponent(e)}/download`,a={};n?a.Authorization=`Bearer ${n}`:o&&(a["X-Erdo-Token"]=o);let i=await fetch(r,{headers:a});if(!i.ok)throw new Error(`Download failed: ${i.statusText}`);return i.blob()}function Na(t,e){let n=window.URL.createObjectURL(t),o=document.createElement("a");o.style.display="none",o.href=n,o.download=e,document.body.appendChild(o),o.click(),window.URL.revokeObjectURL(n),document.body.removeChild(o);}function At({slug:t,invocationId:e,threadId:n,className:o}){let r=L(),[a,i]=at.useState(false),[s,l]=at.useState(null),[c,u]=at.useState(true),p=n||r?.threadId;at.useEffect(()=>{if(!t||!p){u(false);return}let f=false;async function m(){try{let g=null;r?.dataFetcher?.getDatasetDetails?g=await r.dataFetcher.getDatasetDetails(t,p):r?.baseUrl&&(g=await Sa(r.baseUrl,t,p,r.authToken,r.token)),f||l(g);}catch(g){console.error("Failed to fetch dataset details:",g);}finally{f||u(false);}}return m(),()=>{f=true;}},[t,p,r]);let d=at.useCallback(async f=>{if(f.preventDefault(),!(!s?.id||a)){i(true);try{let m;if(r?.dataFetcher?.downloadDataset)m=await r.dataFetcher.downloadDataset(s.id);else if(r?.baseUrl)m=await wa(r.baseUrl,s.id,r.authToken,r.token);else throw new Error("No download method available");let g=`${s.name||"dataset"}.csv`;Na(m,g);}catch(m){console.error("Download failed:",m);}finally{i(false);}}},[s,a,r]);return c||!s?.id?null:jsxRuntime.jsxs("a",{href:"#",onClick:d,className:`inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors ${o||""}`,children:[jsxRuntime.jsx(lucideReact.Download,{className:"h-4 w-4"}),a?"Downloading...":"Download",jsxRuntime.jsx("span",{className:"font-medium",children:s.name||"dataset"})]})}function ln({node:t,index:e,className:n,invocationId:o}){let r=t.content;if(!r)return null;let a=r.series||[],i=[...new Set(a.map(s=>s.dataset_slug).filter(s=>!!s))];return jsxRuntime.jsxs("div",{className:"my-4",children:[jsxRuntime.jsx(Pt,{config:{chart_type:r.chart_type,chart_title:r.chart_title,x_axis:r.x_axis,y_axes:r.y_axes,series:r.series,data_reduction:r.data_reduction,stacked:r.stacked,sort:r.sort},data:[],className:n}),i.length>0&&jsxRuntime.jsx("div",{className:"flex gap-4 mt-2",children:i.map(s=>jsxRuntime.jsx(At,{slug:s,invocationId:o},s))})]},`chart-${e}`)}function cn({node:t,index:e,className:n,invocationId:o}){let r=t.content;if(!r)return null;let a=r.dataset_slug;return jsxRuntime.jsxs("div",{className:"my-4",children:[jsxRuntime.jsx(Rt,{title:r.table_title,columns:r.columns,data:[],className:n}),a&&jsxRuntime.jsx("div",{className:"mt-2",children:jsxRuntime.jsx(At,{slug:a,invocationId:o})})]},`table-${e}`)}function un({node:t,index:e,className:n}){let o=t.content;return jsxRuntime.jsx("div",{className:"my-2",children:jsxRuntime.jsx(O,{content:o?.text||"",className:n})},`text-${e}`)}function dn({node:t,index:e,className:n,invocationId:o}){let a=t.content?.dataset_slug;return a?jsxRuntime.jsx("div",{className:"my-2",children:jsxRuntime.jsx(At,{slug:a,invocationId:o,className:n})},`download-${e}`):null}function pn({node:t,index:e,onSuggestionClick:n}){let r=t.content?.suggestions||[];return r.length?jsxRuntime.jsx("div",{className:"flex flex-col gap-2 my-4",children:r.map((a,i)=>jsxRuntime.jsx("button",{onClick:n?()=>n(a):void 0,disabled:!n,className:"text-left px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded hover:bg-gray-200 dark:hover:bg-gray-700 text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:a},i))},`suggestions-${e}`):null}var mn={Chart:ln,Table:cn,TextMarkdown:un,DownloadButton:dn,Suggestions:pn};function Ot({nodes:t,className:e,invocationId:n,onSuggestionClick:o,nodeComponents:r}){if(!t||!Array.isArray(t))return null;let a={...mn,...r};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map((i,s)=>{let l=i;if(!l?._type)return null;let c=a[l._type];return c?jsxRuntime.jsx(c,{node:l,index:s,className:e,invocationId:n,onSuggestionClick:o},`${l._type}-${s}`):null})})}function _e({item:t,className:e}){let[n,o]=at.useState(false),r=t.content_type==="redacted_thinking",a="";typeof t.content=="string"?a=t.content:t.content&&typeof t.content=="object"&&(r?a=t.content.data||"Some of Claude's internal reasoning has been automatically encrypted for safety reasons. This doesn't affect the quality of responses.":a=t.content.thinking||"");let i=r?"border-amber-200 bg-amber-50 dark:bg-amber-900/20 dark:border-amber-700":"border-gray-200 bg-gray-50 dark:bg-gray-800 dark:border-gray-700",s=r?"hover:bg-amber-100 dark:hover:bg-amber-800/30":"hover:bg-gray-100 dark:hover:bg-gray-700",l=r?"text-amber-700 dark:text-amber-300":"text-gray-600 dark:text-gray-400",c=r?"text-amber-800 dark:text-amber-200 italic":"text-gray-700 dark:text-gray-300",u=r?"border-amber-200 dark:border-amber-700":"border-gray-200 dark:border-gray-700";return jsxRuntime.jsxs("div",{className:`my-2 border rounded-lg ${i} ${e||""}`,children:[jsxRuntime.jsxs("button",{onClick:()=>o(!n),className:`w-full px-3 py-2 flex items-center gap-2 text-left transition-colors rounded-lg ${s}`,children:[n?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-4 w-4 text-gray-500"}):jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4 text-gray-500"}),jsxRuntime.jsx("span",{className:`text-sm font-medium ${l}`,children:r?"Encrypted Thinking...":"Thinking..."}),!n&&jsxRuntime.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-500 ml-auto",children:"Click to expand"})]}),n&&jsxRuntime.jsx("div",{className:`px-3 pb-3 border-t ${u}`,children:jsxRuntime.jsx("div",{className:`mt-2 text-sm whitespace-pre-wrap ${c}`,children:a})})]})}function br(t){try{return JSON.parse(t)}catch{return t}}function Pa(t){if(!t)return "";try{return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return ""}}function fn({log:t}){let e=typeof t.message=="string"?br(t.message):t.message,n=Pa(t.timestamp),o="text-xs font-mono py-0.5 px-1.5 rounded flex items-start",r="";switch(t.level){case "error":o+=" bg-red-50/50 dark:bg-red-950/30 text-red-600 dark:text-red-400 border-l-2 border-red-400 dark:border-red-600",r="text-red-500 dark:text-red-400";break;case "requires_info":o+=" bg-yellow-50/50 dark:bg-yellow-950/30 text-yellow-600 dark:text-yellow-400 border-l-2 border-yellow-400 dark:border-yellow-600",r="text-yellow-500 dark:text-yellow-400";break;default:o+=" bg-blue-50/40 dark:bg-blue-900/20 text-blue-500/90 dark:text-blue-300/80 border-l-2 border-blue-300 dark:border-blue-600/50",r="text-blue-400 dark:text-blue-400/70";}return jsxRuntime.jsx("div",{className:"my-0.5",children:jsxRuntime.jsx("div",{className:o,children:jsxRuntime.jsxs("div",{className:"flex items-start gap-2",children:[n&&jsxRuntime.jsx("span",{className:"text-[10px] opacity-60 whitespace-nowrap w-16 flex-shrink-0 pt-0.5",children:n}),t.level==="error"&&jsxRuntime.jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsxRuntime.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",clipRule:"evenodd"})})}),t.level==="requires_info"&&jsxRuntime.jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsxRuntime.jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})})}),t.level==="info"&&jsxRuntime.jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsxRuntime.jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})})}),jsxRuntime.jsx("div",{className:"flex-1 break-words whitespace-pre-wrap",children:String(e)})]})})})}function Se({item:t,className:e}){let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=br(n),r={level:o.level||"info",message:o.message||n,timestamp:o.timestamp};return jsxRuntime.jsx("div",{className:e,children:jsxRuntime.jsx(fn,{log:r})})}function we({item:t,className:e}){let n=t.content;return n?.results?.length?jsxRuntime.jsx("div",{className:`max-w-2xl ${e||""}`,children:jsxRuntime.jsx("div",{className:"space-y-1",children:n.results.map((o,r)=>jsxRuntime.jsx("div",{className:"group hover:shadow-sm transition-shadow rounded-sm py-2 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900",children:jsxRuntime.jsx("div",{className:"px-4",children:jsxRuntime.jsx("div",{className:"flex items-start justify-between gap-2",children:jsxRuntime.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntime.jsxs("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 font-medium text-xs leading-tight truncate text-gray-900 dark:text-gray-100 hover:text-blue-600 dark:hover:text-blue-400 hover:underline",children:[jsxRuntime.jsx("span",{children:o.title}),jsxRuntime.jsxs("span",{className:"text-xs text-gray-500/60 dark:text-gray-400/60 flex-shrink-0",children:["(",new URL(o.url).hostname,")"]})]}),jsxRuntime.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 truncate leading-tight mt-0.5",children:o.description})]})})})},r))})}):null}function Ne({item:t,className:e}){let n=t.content;return n?.content?.length?jsxRuntime.jsxs("div",{className:`max-w-4xl border border-gray-200 dark:border-gray-700 rounded-lg bg-white dark:bg-gray-900 ${e||""}`,children:[jsxRuntime.jsx("div",{className:"p-4 border-b border-gray-200 dark:border-gray-700",children:jsxRuntime.jsxs("div",{className:"flex items-start justify-between",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("h3",{className:"flex items-center gap-2 text-lg font-semibold text-gray-900 dark:text-gray-100",children:[jsxRuntime.jsx(lucideReact.Globe,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"}),n.title||"Parsed Website Content"]}),n.description&&jsxRuntime.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 leading-relaxed",children:n.description})]}),n.url&&jsxRuntime.jsxs("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 transition-colors font-medium",children:[jsxRuntime.jsx(lucideReact.ExternalLink,{className:"h-3 w-3"}),"Visit"]})]})}),jsxRuntime.jsx("div",{className:"p-4",children:jsxRuntime.jsx(O,{content:n.content,className:"prose dark:prose-invert max-w-none leading-relaxed prose-sm"})})]}):null}var Wa=reactSyntaxHighlighter.Prism;function $t({language:t,value:e,defaultOpen:n=false,title:o="View code",closeTitle:r="Hide code",className:a,theme:i="auto"}){let[s,l]=at.useState(n),[c,u]=at.useState(false),p=at.useRef(null);at.useEffect(()=>{if(!s){let b=p.current;b&&(b.scrollTop=b.scrollHeight);}},[s,e]);let d=at.useMemo(()=>i!=="auto"?i:typeof window>"u"?"light":document.documentElement.classList.contains("dark")||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[i]),f=at.useMemo(()=>d==="dark"?prism.oneDark:prism.oneLight,[d]),m=async()=>{try{await navigator.clipboard.writeText(e),u(!0),setTimeout(()=>u(!1),2e3);}catch{let b=document.createElement("textarea");b.value=e,document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),u(true),setTimeout(()=>u(false),2e3);}},g=at.useMemo(()=>({margin:0,width:"100%",background:"transparent",padding:"1rem 0.5rem",fontSize:"0.825rem",maxWidth:"100vw",overflow:"auto"}),[]),h=at.useMemo(()=>({userSelect:"none",minWidth:"2.5em",paddingRight:"1em",color:"rgb(161 161 170)",opacity:"0.5"}),[]),x=at.useMemo(()=>({style:{fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre",wordBreak:"break-word"}}),[]);return jsxRuntime.jsx(Ft__namespace.Root,{open:s,onOpenChange:l,className:a,children:jsxRuntime.jsxs("div",{className:"relative w-full font-sans rounded-lg overflow-hidden border border-zinc-200 dark:border-zinc-800",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between w-full px-4 py-1.5 bg-white/80 dark:bg-zinc-800/80 text-zinc-600 dark:text-zinc-100 backdrop-blur-sm border-b border-zinc-200 dark:border-zinc-800",children:[jsxRuntime.jsx("span",{className:"text-xs font-medium lowercase text-zinc-400 dark:text-zinc-500",children:t}),jsxRuntime.jsx("button",{onClick:m,className:"h-6 w-6 flex items-center justify-center rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-700 transition-colors",children:c?jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3 text-zinc-400 dark:text-zinc-500"})})]}),jsxRuntime.jsxs("div",{ref:p,className:`${s?"max-h-96":"max-h-[200px]"} overflow-auto relative`,children:[jsxRuntime.jsx("div",{className:"bg-zinc-50/50 dark:bg-zinc-950/70",children:jsxRuntime.jsx(Wa,{language:t,style:f,PreTag:"div",showLineNumbers:true,wrapLines:false,wrapLongLines:false,startingLineNumber:1,className:"not-prose",customStyle:g,lineNumberStyle:h,codeTagProps:x,children:e})}),!s&&jsxRuntime.jsx("div",{className:"absolute bottom-0 inset-x-0 h-24 pointer-events-none bg-gradient-to-t from-zinc-50 dark:from-zinc-950 to-transparent",style:{marginBottom:"1.5rem"}})]}),jsxRuntime.jsx(Ft__namespace.Trigger,{className:"absolute bottom-0 inset-x-0 flex items-center gap-2 text-sm text-zinc-400 dark:text-zinc-500 hover:text-zinc-600 dark:hover:text-zinc-300 p-2 justify-start bg-zinc-50/80 dark:bg-zinc-950/80 backdrop-blur-sm border-t border-zinc-200 dark:border-zinc-800 cursor-pointer",children:s?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.ChevronUp,{className:"h-4 w-4"}),r]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-4 w-4"}),o]})})]})})}var Lt=Symbol("parsing"),it=class{result;stack;key;state;stringBuffer;numberBuffer;quoteBuffer;escapeNext;unicode;isInTripleQuotes;constructor(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}reset(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}parse(e){return this.reset(),this.add(e)}add(e){for(let n=0;n<e.length;n++){let o=e[n];this.processChar(o);}return this.result}processChar(e){switch(this.state){case "START":this.handleStartState(e);break;case "IN_OBJECT":this.handleObjectState(e);break;case "IN_ARRAY":this.handleArrayState(e);break;case "IN_OBJECT_KEY":this.handleObjectKeyState(e);break;case "AFTER_KEY":this.handleAfterKeyState(e);break;case "IN_OBJECT_VALUE":this.handleObjectValueState(e);break;case "IN_STRING":this.handleStringState(e);break;case "IN_NUMBER":this.handleNumberState(e);break;case "IN_TRUE":this.handleLiteralState(e,"true");break;case "IN_FALSE":this.handleLiteralState(e,"false");break;case "IN_NULL":this.handleLiteralState(e,"null");break;case "IN_UNICODE":this.handleUnicodeState(e);break}}handleStartState(e){if(e==="{")this.startObject();else if(e==="[")this.startArray();else if(!this.isWhitespace(e))throw this.error("must start with { or [","start")}error(e,n){return new Error(`Invalid JSON in ${n}: ${e}`)}handleObjectState(e){if(e==="}")this.endObject();else if(e==='"')this.state="IN_OBJECT_KEY",this.stringBuffer="",this.key=void 0,this.quoteBuffer="";else if(e===",")this.key=void 0;else if(!this.isWhitespace(e))throw this.error(`Invalid character in object: ${e}`,"object")}handleArrayState(e){e==="]"?this.endArray():e===","||this.isWhitespace(e)||this.startValue(e);}handleObjectKeyState(e){e==='"'?(this.state="AFTER_KEY",this.key=this.stringBuffer,this.stringBuffer=""):(this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer));}handleAfterKeyState(e){e===":"?this.state="IN_OBJECT_VALUE":this.isWhitespace(e)||this.isWhitespace(e)||(this.key=this.key+e);}handleObjectValueState(e){this.isWhitespace(e)||this.startValue(e);}handleStringState(e){if(this.escapeNext)this.handleEscapeChar(e);else if(e==="\\")this.escapeNext=true;else if(e==='"'){if(this.quoteBuffer+='"',this.stringBuffer===""&&this.quoteBuffer==='""')this.quoteBuffer="",this.isInTripleQuotes=true;else if(this.stringBuffer&&this.quoteBuffer==='"""'){this.quoteBuffer="",this.isInTripleQuotes=false,this.stringBuffer=this.stringBuffer.replace(/^\n+/,"").replace(/\n+$/,"").trim(),this.endString();return}}else {if(this.quoteBuffer){if(this.quoteBuffer==='"'&&!this.isInTripleQuotes){this.quoteBuffer="",this.endString(),this.processChar(e);return}else if(this.quoteBuffer==='"""'&&this.isInTripleQuotes){this.quoteBuffer="",this.isInTripleQuotes=false,this.endString(),this.processChar(e);return}this.stringBuffer+=this.quoteBuffer,this.quoteBuffer="";}this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer);}}handleNumberState(e){e.match(/[0-9.eE+-]/)?(this.numberBuffer+=e,this.updateValueInParent(parseFloat(this.numberBuffer))):(this.endNumber(),this.processChar(e));}handleLiteralState(e,n){let o=n[this.stringBuffer.length];if(e===o)this.stringBuffer+=e,this.stringBuffer===n?this.endLiteral(n):this.updateValueInParent(this.stringBuffer);else throw this.error(`Invalid literal: expected ${n}`,"literal")}handleUnicodeState(e){if(this.unicode+=e,this.unicode.length===4){let n=parseInt(this.unicode,16);this.stringBuffer+=String.fromCharCode(n),this.unicode="",this.state="IN_STRING";}}handleEscapeChar(e){switch(e){case '"':case "\\":case "/":this.stringBuffer+=e;break;case "b":this.stringBuffer+="\b";break;case "f":this.stringBuffer+="\f";break;case "n":this.stringBuffer+=`
|
|
24
24
|
`;break;case "r":this.stringBuffer+="\r";break;case "t":this.stringBuffer+=" ";break;case "u":this.unicode="",this.state="IN_UNICODE";break;case "`":this.stringBuffer+="`";break;default:throw this.error("Invalid escape character","string")}this.escapeNext=false;}startObject(){let e={[Lt]:true};this.addValueToParent(e),this.stack.push({value:e,key:this.key}),this.key=void 0,this.state="IN_OBJECT";}endObject(){let{value:e,key:n,index:o}=this.stack.pop();if(delete e[Lt],this.stack.length===0)this.state="END",this.result={...e};else {let{value:r}=this.stack[this.stack.length-1];if(Array.isArray(r))o!==void 0?r[o]={...e}:r[r.length-1]={...e};else if(n!==void 0)r[n]={...e};else throw this.error("Key is undefined","object");this.state=this.getParentState();}}startArray(){let e=[];e[Lt]=true,this.addValueToParent(e),this.stack.push({value:e,key:this.key,index:0}),this.key=void 0,this.state="IN_ARRAY";}endArray(){let{value:e,key:n,index:o}=this.stack.pop();if(delete e[Lt],this.stack.length===0)if(this.state="END",Array.isArray(e))this.result=[...e];else throw this.error("Expected array at root level","array");else {let{value:r}=this.stack[this.stack.length-1];Array.isArray(r)?o!==void 0?r[o]=Array.isArray(e)?[...e]:e:r[r.length-1]=Array.isArray(e)?[...e]:e:n!==void 0&&(r[n]=Array.isArray(e)?[...e]:e),this.state=this.getParentState();}}startValue(e){if(e==='"')this.state="IN_STRING",this.stringBuffer="",this.quoteBuffer="",this.addValueToParent("");else if(e.match(/[0-9-]/))this.state="IN_NUMBER",this.numberBuffer=e,this.addValueToParent(parseFloat(e));else if(e==="t")this.state="IN_TRUE",this.stringBuffer="t",this.addValueToParent("t");else if(e==="f")this.state="IN_FALSE",this.stringBuffer="f",this.addValueToParent("f");else if(e==="n")this.state="IN_NULL",this.stringBuffer="n",this.addValueToParent("n");else if(e==="{")this.startObject();else if(e==="[")this.startArray();else throw this.error(`Invalid value start: ${e}`,"value")}endString(){let e=this.stringBuffer;this.stringBuffer="",this.updateValueInParent(e),this.state=this.getParentState();}endNumber(){let e=parseFloat(this.numberBuffer);this.updateValueInParent(e),this.numberBuffer="",this.state=this.getParentState();}endLiteral(e){let n;switch(e){case "true":n=true;break;case "false":n=false;break;case "null":n=null;break;default:throw this.error("Invalid literal","literal")}this.updateValueInParent(n),this.stringBuffer="",this.state=this.getParentState();}addValueToParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:o}=n;if(Array.isArray(o))o.push(e),n.index!==void 0&&n.index++;else if(this.state==="IN_OBJECT_KEY")this.key=e,o[this.key]="";else {if(this.key===void 0)throw this.error("Key is undefined","object");o[this.key]=e;}}}updateValueInParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:o}=n;if(Array.isArray(o))n.index!==void 0?o[n.index-1]=e:o[o.length-1]=e;else if(this.key!==void 0)o[this.key]=e;else if(this.state!=="IN_OBJECT_KEY")throw this.error("Key is undefined","object")}}isWhitespace(e){return e===" "||e===" "||e===`
|
|
25
25
|
`||e==="\r"}getParentState(){return this.stack.length===0?"END":Array.isArray(this.stack[this.stack.length-1].value)?"IN_ARRAY":"IN_OBJECT"}};function qa(t){let e=t.trim();try{return JSON.parse(e)}catch{try{return new it().parse(e)}catch(o){return console.log("content",e),console.error("Error parsing JSON",o),null}}}function Ee(t){return t===" "||t===`
|
|
26
|
-
`||t===" "||t==="\r"}function Ha(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!Ee(t[n]))return t[n];return ""}function Y(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n([\s\S]*?)(?:(?:\n)?```|$)/g,o=n.test(t);if(n.lastIndex=0,o){let r=0,a;for(;(a=n.exec(t))!==null;){let s=t.substring(r,a.index).trim();s&&e.push({content:s,type:"text"});let l=a[1];try{let c=JSON.parse(l);e.push({content:c,type:"json"});}catch{try{let p=new it().parse(l);p?e.push({content:p,type:"json"}):e.push({content:a[0],type:"text"});}catch{e.push({content:a[0],type:"text"});}}r=a.index+a[0].length;}let i=t.substring(r).trim();i&&e.push({content:i,type:"text"});}else {let r="",a=null,i=false,s=0;for(let l=0;l<t.length;l++){let c=t[l],u=Ha(t,l);if(!i&&(c==="{"&&u==='"'||c==="["&&u==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),i=true,a=new it,r=""),i){let p;try{p=a.add(c);}catch(d){if(console.log("currentChunk",r),console.log("currentResult",a?.result),console.warn("Error parsing JSON",d),s>3){i=false,a=null,s=0,r+=c;continue}s++;continue}r+=c,a.state==="END"&&(e.push({content:p,type:"json"}),i=false,a=null,r="");}else r+=c;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function za(t){return t&&typeof t=="object"&&!t[Lt]}function yn(t){return t&&typeof t=="object"&&t[Lt]===true}function De({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(l){console.error("Failed to parse SQL content:",l),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(l=>l.type==="json"):o?.[0];if(!r)return jsxRuntime.jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Error"}),jsxRuntime.jsx("div",{children:n})]});let{thinking:a,sql_query:i,error:s}=r?.content||{};return s?jsxRuntime.jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Error"}),jsxRuntime.jsx("div",{children:s})]}):i?jsxRuntime.jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx(O,{content:a,className:"text-sm max-w-none"})}),i&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx($t,{language:"sql",value:i,defaultOpen:false})})]}):null}function Ut({children:t,defaultOpen:e=false,wrapperType:n="standard",compact:o=false,className:r}){let[a,i]=at.useState(e),[s,l]=at.useState(false),c=at.useRef(null);at.useEffect(()=>{let d=c.current;d&&(a||(d.scrollTop=d.scrollHeight),l(d.scrollHeight>d.clientHeight));},[a,t]);let u={standard:"bg-muted/30 border-border",info:"bg-info/10 border-info/30",warning:"bg-warning/10 border-warning/30"},p={standard:"text-muted-foreground hover:text-foreground",info:"text-info hover:text-info/80",warning:"text-warning hover:text-warning/80"};return jsxRuntime.jsx("div",{className:`relative text-sm ${o?"":"mb-2"} ${r||""}`,children:jsxRuntime.jsx(Ft__namespace.Root,{open:a,onOpenChange:i,className:`border rounded-sm ${u[n]}`,children:jsxRuntime.jsxs("div",{ref:c,className:`overflow-y-auto ${a?"":"max-h-[200px]"}`,children:[s&&jsxRuntime.jsx(Ft__namespace.Trigger,{className:`sticky top-0 text-center text-xs py-1 transition-opacity w-full cursor-pointer ${p[n]}`,children:a?"Less \u2193":"More \u2191"}),jsxRuntime.jsx("div",{className:`${o?"px-2 py-1":"p-2"} m-0 overflow-x-auto break-words whitespace-pre-wrap`,children:t})]})})})}function xn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Be({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-muted-foreground/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-foreground/80",children:t})]})}function Gt({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-info/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-info/90",children:t})]})}function Pe({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-warning/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-warning/90",children:t})]})}function Ae({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(u){console.error("Failed to parse codegen content:",u),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(u=>u.type==="json"):o?.[0],{step_by_step:a,thinking:i,code:s,warnings:l,error:c}=r?.content||{};return c?jsxRuntime.jsx(Ut,{wrapperType:"info",className:e,children:jsxRuntime.jsx(Gt,{children:c})}):!a&&!s?null:jsxRuntime.jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsxRuntime.jsx(O,{content:a,className:"text-sm max-w-none"}),i&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx(O,{content:i,className:"text-sm max-w-none"})}),s&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx($t,{language:"python",value:s,defaultOpen:false})}),l&&jsxRuntime.jsxs("div",{className:"text-sm text-warning",children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Warnings"}),jsxRuntime.jsx(O,{content:l,className:"text-sm max-w-none"})]})]})}function Oe({item:t,className:e}){let n=t.parsedJson;if(!n?.length)return null;let o=n.map(s=>s.message?.trim()?{level:s.level,message:s.message,timestamp:s.timestamp,index:s.index}:null).filter(s=>s!==null);if(o.sort((s,l)=>s.index-l.index),o.length===0)return null;let r=o.some(s=>s.level==="error"),a=o.some(s=>s.level==="warning"),i=r?"info":a?"warning":"standard";return jsxRuntime.jsx("div",{className:`text-foreground leading-normal ${e||""}`,children:jsxRuntime.jsx(Ut,{wrapperType:i,compact:true,children:o.map((s,l)=>jsxRuntime.jsx(Qa,{output:s},`${s.level}-${l}`))})})}function Qa({output:t}){switch(t.level){case "output":return jsxRuntime.jsx(Be,{timestamp:t.timestamp,children:t.message});case "error":return jsxRuntime.jsx(Gt,{timestamp:t.timestamp,children:t.message});case "warning":return jsxRuntime.jsx(Pe,{timestamp:t.timestamp,children:t.message});default:return jsxRuntime.jsx("div",{className:"text-muted-foreground",children:t.message})}}var es={"websearch.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched web for "${n}"`:`Failed to search web for "${n}"`:`Searching web for "${n}"...`:"Web search"}},"webparser.parse":{icon:lucideReact.Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"siteparser.parse":{icon:lucideReact.Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"resource_definitions.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched resources for "${n}"`:`Failed to search resources for "${n}"`:`Searching resources for "${n}"...`:"Search resources"}},"memory.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched memories for "${n}"`:`Failed to search memories for "${n}"`:`Searching memories for "${n}"...`:"Search memories"}}};function Nr(t){return t&&es[t]||null}function ns(t){if(!t?.result||t.status==="error")return false;let e=t.result;if(typeof e=="string"){let n=e.trim();return n!==""&&n!=="{}"&&n!=="[]"}if(Array.isArray(e))return e.length>0;if(typeof e=="object"&&e!==null){let n=Object.keys(e);return n.length===0?false:n.some(o=>{let r=e[o];return r==null?false:typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:typeof r=="object"?Object.keys(r).length>0:true})}return true}function rs({actionType:t}){let n=Nr(t)?.icon||lucideReact.Wrench;return jsxRuntime.jsx(n,{className:"h-4 w-4"})}function os({actionType:t,input:e,name:n,result:o,invocation:r}){if(o?.finished_message)return jsxRuntime.jsx("span",{children:o.finished_message});if(o?.running_message)return jsxRuntime.jsx("span",{children:o.running_message});if(!o&&r?.running_message)return jsxRuntime.jsx("span",{children:r.running_message});let a=Nr(t);if(a)return jsxRuntime.jsx("span",{children:a.getLabel(e,o?.status)});let i=o?`Completed ${n}`:`Running ${n}...`;return jsxRuntime.jsx("span",{children:i})}function Jt({toolGroup:t,ContentComponent:e,className:n}){let[o,r]=at.useState(false),a=L(),i=e??a?.ContentComponent,s=t.invocation,l=t.result,c=ns(l),u=s?.action_type||l?.action_type,p=s?.input||l?.input,d=s?.name||l?.name,f=l?.status==="error"?"text-gray-500/80 dark:text-gray-400/80":"text-gray-500 dark:text-gray-400";return jsxRuntime.jsxs(Ft__namespace.Root,{open:o,onOpenChange:r,className:`relative w-full max-w-4xl space-y-2 leading-normal ${n||""}`,children:[jsxRuntime.jsxs(Ft__namespace.Trigger,{className:`flex items-center gap-2 text-sm transition-colors w-full ${f} ${c?"hover:text-gray-900 dark:hover:text-gray-100 cursor-pointer":"cursor-default"}`,disabled:!c,children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(rs,{actionType:u}),jsxRuntime.jsx(os,{actionType:u,input:p,name:d,result:l,invocation:s})]}),c&&jsxRuntime.jsx(lucideReact.ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${o?"rotate-180":""}`})]}),c&&l&&jsxRuntime.jsx(Ft__namespace.Content,{children:jsxRuntime.jsx("div",{className:"pl-6 mt-2",children:i?jsxRuntime.jsx(i,{content:{content:l.result,content_type:l.ui_content_type||"text",ui_content_type:l.ui_content_type||"text"}}):jsxRuntime.jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(l.result,null,2)})})})]})}var ht={Success:"success",Error:"error",RequiresInfo:"requires info"};function ls(t){return t?t===ht.Success?"finished":t===ht.Error||t===ht.RequiresInfo?"failed":"loading":"loading"}function Dr(t){return t?t!==ht.Success&&t!==ht.Error&&t!==ht.RequiresInfo:true}function cs(t,e){let n=e||"agent",o=R(t?.message);return o||(t?.status===ht.Success?`Finished ${n}`:`Running ${n}...`)}function Ve({content:t,botInvocation:e,isLoading:n=false,defaultOpen:o,adminLinkHref:r,adminLinkText:a="Open in Agent Designer",showAdminLink:i=false,onAdminClick:s,onExpand:l,EventsComponent:c,ContentComponent:u,className:p}){let d=()=>o!==void 0?o:e?.currentStatus?Dr(e.currentStatus.status):false,[f,m]=at.useState(d),[g,h]=at.useState(false),x=at.useRef(null);if(at.useEffect(()=>{if(e?.currentStatus){let I=e.currentStatus.status;if(x.current!==I&&(x.current=I,!g)){let J=Dr(I);J&&!f?m(true):!J&&f&&m(false);}}},[e,g,f]),at.useEffect(()=>{f&&e&&l&&l(t.invocation_id,t.bot_id,t.bot_name);},[f,e,l,t]),n&&!e)return jsxRuntime.jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${p||""}`,children:[jsxRuntime.jsx(mt,{status:"loading"}),jsxRuntime.jsxs("span",{children:["Loading ",t.bot_name,"..."]})]});if(!e)return null;let b=ls(e.currentStatus?.status),k=cs(e.currentStatus,t.bot_name),T=I=>{m(I),h(true);},C=I=>{s&&(I.preventDefault(),s(t.invocation_id,t.bot_id));},E=e.eventsByID&&Object.keys(e.eventsByID).length>0;return jsxRuntime.jsxs(Ft__namespace.Root,{open:f,onOpenChange:T,className:`relative w-full max-w-4xl space-y-2 leading-normal bot-invocation-content ${p||""}`,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsxs(Ft__namespace.Trigger,{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[jsxRuntime.jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsxRuntime.jsx(mt,{status:b}),k]}),jsxRuntime.jsx(lucideReact.ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${f?"transform rotate-180":""}`})]}),i&&(r||s)&&jsxRuntime.jsxs("a",{href:r||"#",onClick:s?C:void 0,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[a,jsxRuntime.jsx(lucideReact.ArrowUpRight,{className:"h-3.5 w-3.5"})]})]}),jsxRuntime.jsx(Ft__namespace.Content,{children:jsxRuntime.jsx("div",{className:"space-y-2 max-w-3xl",children:E?c?jsxRuntime.jsx(c,{eventsByID:e.eventsByID,defaultOpen:f}):jsxRuntime.jsx(Bt,{eventsByID:e.eventsByID,ContentComponent:u}):jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:"No events to display"})})})]})}function vn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"q"in t)o=t.q;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.q&&Array.isArray(a.q)&&(o=a.q);}catch{o=[t];}let r=o.filter(a=>a&&a.trim()!=="");return r.length===0?null:jsxRuntime.jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxRuntime.jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsxRuntime.jsx(lucideReact.Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsxRuntime.jsx(lucideReact.Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsxRuntime.jsx("span",{className:"line-clamp-1",children:a})]},i))})}function Cn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"integration_queries"in t)o=t.integration_queries;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.integration_queries&&Array.isArray(a.integration_queries)&&(o=a.integration_queries);}catch{return null}let r=o.filter(a=>a&&a.query&&a.query.trim()!=="");return r.length===0?null:jsxRuntime.jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxRuntime.jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsxRuntime.jsx(lucideReact.Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsxRuntime.jsx(lucideReact.Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsxRuntime.jsx("span",{className:"line-clamp-1",children:a.query})]},i))})}function Sn(){return jsxRuntime.jsxs("span",{className:"inline-flex gap-1 text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"0ms"},children:"\u25CF"}),jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"150ms"},children:"\u25CF"}),jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"300ms"},children:"\u25CF"})]})}function wn(){return jsxRuntime.jsx("div",{className:"flex items-center justify-center py-8",children:jsxRuntime.jsx(lucideReact.Loader2,{className:"animate-spin text-muted-foreground",size:24})})}function xs(t){if(t.content_type==="bot_invocation"||t.content_type==="bot_invocation_result"||t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;if(t.content_type==="tool_invocation")return "tool_invocation";if(t.content_type==="tool_result")return "tool_result";if(!t.content||typeof t.content!="object")return null;let e=t.content;return "action_type"in e&&"name"in e&&"input"in e&&e.action_type!=="bot.invoke"?"result"in e?"tool_result":"tool_invocation":null}function re({content:t,className:e,components:n}){let r=L()?.onSuggestionClick,a=at.useMemo(()=>c=>jsxRuntime.jsx(re,{...c,components:n}),[n]);if(t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;let i=xs(t),s;i?s=i:(s=R(t.ui_content_type)||t.content_type,s!=="ui_generation"&&typeof t.content=="string"&&(t.content.includes('{"children":')||t.content.includes('"children":'))&&(s="ui_generation"));let l=n?.[s];if(l)return jsxRuntime.jsx(l,{content:t,className:e});switch(s){case "text":return jsxRuntime.jsx(Xt,{content:_n(t),className:e});case "markdown":return jsxRuntime.jsx(O,{content:_n(t),className:e});case "thinking":case "redacted_thinking":return jsxRuntime.jsx(_e,{item:t,className:e});case "json":return jsxRuntime.jsx(st,{content:t.content,className:e});case "codegen_json":return jsxRuntime.jsx(Ae,{item:t,className:e});case "sql_generation":return jsxRuntime.jsx(De,{item:t,className:e});case "codeexec_output":return jsxRuntime.jsx(Oe,{item:t,className:e});case "log":return jsxRuntime.jsx(Se,{item:t,className:e});case "websearch":case "websearch_output":case "web_search":return jsxRuntime.jsx(we,{item:t,className:e});case "search_queries":return jsxRuntime.jsx(vn,{content:t.content,className:e});case "integration_queries":return jsxRuntime.jsx(Cn,{content:t.content,className:e});case "webparse":case "webparse_output":case "web_parse":return jsxRuntime.jsx(Ne,{item:t,className:e});case "tool_group":return jsxRuntime.jsx(Jt,{toolGroup:t.content,ContentComponent:a,className:e});case "bot_invocation":{let c=t.content,u=t.botInvocation;return jsxRuntime.jsx(Ve,{content:c,botInvocation:u,ContentComponent:a,className:e})}case "chart":case "ui_generation":{let c=t.invocation_id;if(t.chartConfig&&t.chartData)return jsxRuntime.jsx(Pt,{config:t.chartConfig,data:t.chartData,className:e});let u=t.parsedJson;if(u&&Array.isArray(u)&&u.length>0)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:u.map((d,f)=>{if(d.type==="text"){let m=d.content;return jsxRuntime.jsx(O,{content:m,className:e},`${f}-${m.length}`)}else if(d.type==="json"){let m=d.content;return yn(m)?m?.children?.some(x=>x?._type==="TextMarkdown")?jsxRuntime.jsx(Sn,{},f):jsxRuntime.jsx(wn,{},f):m?.children&&Array.isArray(m.children)?jsxRuntime.jsx(at__namespace.default.Fragment,{children:jsxRuntime.jsx(Ot,{nodes:m.children,className:e,invocationId:c,onSuggestionClick:r})},`${f}-${m.children.length}`):jsxRuntime.jsx(st,{content:m,className:e},`${f}-json`)}return null})});let p=typeof t.content=="string"?t.content:null;if(p){let d=Y(p);if(Array.isArray(d))return jsxRuntime.jsx(jsxRuntime.Fragment,{children:d.map((f,m)=>{if(f.type==="text"){let g=f.content;return jsxRuntime.jsx(O,{content:g,className:e},`${m}-${g.length}`)}else if(f.type==="json"){let g=f.content;return g?.children&&Array.isArray(g.children)?jsxRuntime.jsx(at__namespace.default.Fragment,{children:jsxRuntime.jsx(Ot,{nodes:g.children,className:e,invocationId:c,onSuggestionClick:r})},`${m}-${g.children.length}`):jsxRuntime.jsx(st,{content:g,className:e},`${m}-json`)}return null})})}if(typeof t.content=="object"&&t.content!==null){let d=t.content;if(d?.children&&Array.isArray(d.children))return jsxRuntime.jsx(Ot,{nodes:d.children,className:e,invocationId:c,onSuggestionClick:r})}return jsxRuntime.jsx(st,{content:t.content,className:e})}case "table":return t.tableColumns&&t.tableData?jsxRuntime.jsx(Rt,{columns:t.tableColumns,data:t.tableData,className:e}):jsxRuntime.jsx(st,{content:t.content,className:e});case "bot_invocation_result":case "security_check_json":return null;case "tool_invocation":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{},id:c.id||"",name:c.name||"",input:c.input||{},description:c.description,action_type:c.action_type,running_message:c.running_message}};return jsxRuntime.jsx(Jt,{toolGroup:u,ContentComponent:a,className:e})}case "tool_result":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{}},result:{invocation_id:c.id||"",result:c.result}},p={...u,invocation:{...u.invocation,id:c.id||"",name:c.name||"",input:c.input||{},action_type:c.action_type,description:c.description},result:{...u.result,id:c.id||"",name:c.name||"",input:c.input||{},result:c.result,status:c.status||"success",action_type:c.action_type,description:c.description,ui_content_type:c.ui_content_type}};return jsxRuntime.jsx(Jt,{toolGroup:p,ContentComponent:a,className:e})}default:return jsxRuntime.jsx(Xt,{content:_n(t),className:e})}}function _n(t){return typeof t.content=="string"?t.content:JSON.stringify(t.content)}function bs({result:t,isStreaming:e,className:n,components:o,streamingText:r}){let a=t?Pr(t):[];return r&&a.length===0?jsxRuntime.jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsxRuntime.jsx("span",{className:"text-sm text-gray-500",children:"Streaming response..."})]}),jsxRuntime.jsx("div",{className:"border rounded-lg p-4 whitespace-pre-wrap",children:r})]}):a.length===0&&!e?null:jsxRuntime.jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[a.map((i,s)=>jsxRuntime.jsx("div",{children:jsxRuntime.jsx(re,{content:i,components:o})},i.id||s)),e&&a.length===0&&!r&&jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsxRuntime.jsx("span",{className:"text-sm text-gray-500",children:"Processing..."})]})]})}function Pr(t){let e=[],n=new Set;if(t.events)for(let o of t.events){let r=o.metadata,a=o.payload;if(r?.user_visibility==="visible"&&a?.status==="success"&&a?.output){let i=a.output;if(i.content&&Array.isArray(i.content))for(let s=0;s<i.content.length;s++){let l=i.content[s],c=l.id||`event-result-${s}`;if(n.has(c))continue;n.add(c);let u=r?.ui_content_type;if(!u&&typeof l.content=="string")try{JSON.parse(l.content)?.children&&(u="ui_generation");}catch{(l.content.includes('{"children":')||l.content.includes('{ "children":'))&&(u="ui_generation");}e.push({id:c,content_type:l.content_type||"text",ui_content_type:u,content:l.content,data:l.data,chartConfig:l.chartConfig,chartData:l.chartData,tableColumns:l.tableColumns,tableData:l.tableData});}}}if(e.length===0&&t.result?.output?.content){let o=t.result.output.content;if(Array.isArray(o))for(let r=0;r<o.length;r++){let a=o[r],i=a.id||`result-${r}`;if(n.has(i))continue;n.add(i);let s=a.ui_content_type;if(!s&&typeof a.content=="string")try{JSON.parse(a.content)?.children&&(s="ui_generation");}catch{(a.content.includes('{"children":')||a.content.includes('{ "children":'))&&(s="ui_generation");}e.push({...a,id:i,ui_content_type:s});}}return e}function V(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function vs(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function Vr(t){return t.contents.length===0?null:t.contents[0]||null}function En(t,e){let n=V(t);switch(n){case "message":return t;case "step":let o=t;if(e){let i=o.eventsByID[e]?.Message;return i||Lr({},"",e)}let a=Object.keys(o.eventsByID).reverse();for(let i of a){let s=o.eventsByID[i];if(s&&s.Message)return s.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function Cs(t,e){switch(V(t)){case "message_content":return t;case "output_content":return t;case "message":return Wt(t,e);case "output":return qt(t,e);case "step":let o=Ge(t,e);return o?qt(o,e):null;default:return null}}function Wt(t,e){let n=V(t);switch(n){case "message_content":return t;case "message":let o=En(t);if(!o)throw new Error("Unable to find message to add content to");return e?o.contentsByID[e]:vs(o);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function qt(t,e){let n=V(t);switch(n){case "output_content":return t;case "output":let o=t;return e?o.contentsByID[e]||null:o.contents.length<=0?null:o.contents[o.contents.length-1]||null;case "step":let a=Ge(t,e);return a?qt(a):null;case "invocation":if(!e)return null;let i=t.eventsByID[e];return !i||!i.Output?null:qt(i.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function Dn(t,e){let n=V(t),o=null;switch(n){case "invocation":return t;case "message_content":if(o=t.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message content");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return o;case "message":if(o=Vr(t)?.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return o;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function Ge(t,e){let n=V(t);switch(n){case "output":return t;case "step":let o=t;if(e){let s=o.eventsByID[e]?.Output;if(!s)throw new Error("Unable to find output with id "+e);return s}let a=Object.keys(o.eventsByID).reverse();for(let s of a){let l=o.eventsByID[s];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Mr(t,e){let n=V(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let o=t.eventsByID[e];if(!o||!o.type||o.type!=="result_handler"||!o.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return o.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function $r(t,e){let n=V(t),o=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");o=t;let r=o.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let i=t.eventsByID[e];if(!i)throw new Error("Unable to find step on result handler with id "+e);if(!i.Step)throw new Error("Unable to find step on result handler with id "+e);return i.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Nn=class extends Error{};function _s(t,e,n){let o=null,r=e[0],a=e[1];n[r]=a;try{switch(r){case "message":o=En(t,a);break;case "content":o=Wt(t,a);break;case "step":o=$r(t,a);break;case "output":o=Ge(t,a);break;case "output_content":o=qt(t,a);break;case "invocation":o=Dn(t,a);break;case "result_handler":o=Mr(t,a);break}}catch(i){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),i}if(!o)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",o),new Nn(`Unable to find next entity for path ${e.join("/")}`);return o}function Lr(t,e,n,o){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Ss(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function ws(t,e){let n=t.metadata?.ui_content_type,o=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;if(Yt(t.metadata.content_type,n))try{r=Y(o);}catch(a){console.error("Failed to parse message content as JSON:",a),r=[{content:o,type:"text"}];}return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:o,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function Ns(t,e,n){let o=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:o.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:o.action_type,Valid:true},key:{String:o.key,Valid:true},bot_id:o.bot_id,result_handler_id:"",step_order:{Int32:o.step_order,Valid:true},output_content_type:{String:o.content_type,Valid:true},execution_mode:{String:o.execution_mode,Valid:true},output_behaviour:{String:o.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:o.output_channels||[],running_message:{String:o.running_message||"",Valid:!!o.running_message},finished_message:{String:o.finished_message||"",Valid:!!o.finished_message},depends_on:[],eventsByID:{},currentStatus:null}}function Is(t,e,n){let o=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:o.result_handler_id||e,step_invocation_id:o.step_invocation_id||"",type:o.type||"",if_conditions:o.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:o.output_content_type||"",result_handler_order:o.result_handler_order||0,eventsByID:{}}}function Es(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Rr(t,e,n,o=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:o??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Ar(t,e,n,o=null){let r=null,a=t.metadata?.ui_content_type;if(Yt(t.metadata.content_type,a))try{r=Y(t.payload);}catch(i){console.error("Failed to parse step output content as JSON:",i),r=[{content:t.payload,type:"text"}];}return {_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:o||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:a?{String:a,Valid:true}:{String:"",Valid:false},output:null}}function Ds(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function oe(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Ur(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function Tn(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function Bn(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function Ts(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function Bs(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}var Ps=new Set(["=","("]);function Rs(t){if(!t||t.length===0)return true;let e=t[t.length-1];return !Ps.has(e)}function Pn(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!Yt(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){let o=t.content.slice(0,-1);if(Rs(o)){t._charBuffer="{";continue}}if(t._charBuffer&&Ee(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new it;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson=[...t.parsedJson.slice(0,-1),r]):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let o=t._jsonParser.add(n);t._currentContent.content=o,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(o){if(console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",o),t._isInJson=false,t._jsonParser=void 0,t.parsedJson&&t.parsedJson.length>0){let r=t.parsedJson[t.parsedJson.length-1];if(r.type==="json"){let a=t.content.lastIndexOf("{"),i=t.content.slice(a);r.type="text",r.content=i,t._currentContent=r;}}}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function As(t,e){return Pn(t,e)}function Or(t,e){return Pn(t,e)}function In(t,e){let n=V(t);switch(n){case "message":return tt(t,e);case "message_content":return Ue(t,e);case "step":return Vs(t,e);case "output":return Ms(t,e);case "output_content":return $s(t,e);case "invocation":return ae(t,e);case "result_handler":return Ls(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function Os(t,e){for(let n of e)t=In(t,n);return t}function tt(t,e){let n=En(t);if(!n)throw new Error("Unable to find message to add content to");let o=V(e),r=null;switch(o){case "message_content":if(r=e,!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let s=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,s),r,...n.contents.slice(s+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let a=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=Ue(n.contents[0],a),tt(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let i=Dn(r);if(!i)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=ae(i,e),tt(n,r);case "status":if(n.contents.length>0){let s=n.contents[0];if(s?.botInvocation){let l=Ue(s,e);return tt(n,l)}}return {...n};default:throw new Error(`Unable to add update message child for child type ${o}`)}}function Ue(t,e){let n=Wt(t);if(!n)throw new Error("Unable to find message content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};case "status":return n.botInvocation&&(n.botInvocation=ae(n.botInvocation,e)),{...n};default:throw new Error(`Unable to add update message content child for child type ${o}`)}}function Vs(t,e){let n=$r(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let o=V(e),r=null;switch(o){case "output":let a=e;return r=Tn(a),n.eventsByID={...n.eventsByID,[a.output.id]:r},{...n};case "message":let i=e;return r=Ts(i),n.eventsByID={...n.eventsByID,[i.message.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "result_handler":let l=e;return r=Bs(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${o}`)}}function Ms(t,e){let n=Ge(t);if(!n)throw new Error("Unable to find step output to add content to");let o=V(e);switch(o){case "output_content":let r=e;if(!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let a=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,a),r,...n.contents.slice(a+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${o}`)}}function $s(t,e){let n=qt(t);if(!n)throw new Error("Unable to find step output content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${o}`)}}function ae(t,e){let n=Dn(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let o=V(e),r;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},n.currentStatus=s,{...n};default:throw new Error(`Unable to add update invocation for entity type ${o}`)}}function Ls(t,e){let n=Mr(t);if(!n)throw new Error("Unable to find result handler to add content to");let o=V(e),r=null;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${o}`)}}function Us(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Fe(t,e,n,o,r,a=null,i=[],s={}){if(!a&&Object.keys(r).length>0){let p,d;if(n.length>=2&&n[0]==="message"?(d=n[1],p=r[d],p||(p=Object.values(r)[0],d=Object.keys(r)[0])):(p=Object.values(r)[Object.values(r).length-1],d=Object.keys(r)[Object.keys(r).length-1]),s.message=d,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(p.contentsByID).length>0&&e.metadata.message_content_id){let f=e.metadata.message_content_id,m=p.contentsByID[f];m&&(a=m);}a?i=[p]:a=p;}if(n.length<=2&&Us(t)){let p=n[1],d=[],f,m,g,h,x;switch(t){case "bot started":case "bot resumed":if(!a)throw new Error("Unable to find message to add content to");let b=Ds(e);if(a._type==="message_content"){if(m=a,!m.id)throw new Error("Unable to find message content id");if(g=r[m.message_id],!g)throw new Error("Unable to find message to add content to");if(h=Wt(g,m.id),!h)throw new Error("Unable to find message content to add content to");let E=Ue(h,b);r[m.message_id]={...tt(g,E)};}d.push(b);break;case "message created":return r[p]=Lr(e,o,p),null;case "create message content":if(!a)throw new Error("Unable to find message to add content to");if(x=Ss(e,s),a._type==="output"){f=a,d.push(Rr(e,p,s,"hidden"));let E=e.payload.message_id;if(E||(E=i[0].message.id),g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(f=a,g=r[f.message_id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(f=a,g=r[f.message.id],!g)throw new Error("Unable to find message to add content to");d.push(x);}r[g.message.id]={...tt(g,x)};break;case "message content result":if(!a)throw new Error("Unable to find message to add content to");let k=null;if(a._type==="output"){d.push(Ar(e,p,s,"hidden"));let E=e.payload.message_id||s.message;if(E?k=i.find(I=>I.message.id===E):k=i[0],g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(k=i[0],g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(k=a,g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}let T=e.metadata.message_content_id;if(!T)throw new Error("Unable to find message content id");let C=Wt(k,T);if(C){C.state="completed";let E=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;C.content=E,r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);}else C=ws(e,s),r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);break;case "step started":d.push(Ns(e,p,s));break;case "result handler started":d.push(Is(e,p));break;case "step output created":d.push(Es(e,p,a));break;case "create step output content":d.push(Rr(e,p,s));break;case "step output content result":d.push(Ar(e,p,s));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return d.length?!a||a._type==="message_content"&&d.length===1&&d[0]._type==="message_content"?d[0]:Os(a,d):null}if(!a)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let p=null;try{p=Cs(a);}catch{}switch(t){case "message content delta":if(!p)throw new Error("Unable to find message content");let d=null,f=null,m=null;if(a._type==="output_content"){d=Or(a,e.payload);let b=e.metadata.message_content_id;if(!b)throw new Error("Unable to find message content id from entity ids");let k=s.message;if(m=i.find(T=>T.message.id===k),!m)throw new Error("Unable to find message to add content to");f=Wt(m,b);}else {if(f=p,m=i[i.length-1],!m)throw new Error("Unable to find message to add content to");if(m._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!f)throw new Error("Unable to find message content");let g=r[m.message.id];if(!g)throw new Error("Unable to find message to add content to");let h=As(f,e.payload);return r[g.message.id]={...tt(g,h)},a._type==="message_content"&&(d=h),d;case "step output content delta":return Or(p,e.payload);case "status":if(a._type==="step"&&(a.currentStatus=oe(e)),a._type==="invocation"&&(a.currentStatus=oe(e)),a._type==="message_content"){let x=a;if(x.botInvocation)return x.botInvocation.currentStatus=oe(e),{...x}}if(a._type==="message"){let x=a,b=Vr(x);if(b?.botInvocation)return b.botInvocation.currentStatus=oe(e),tt(x,b)}return In(a,oe(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),c=_s(a,n,s),u=Fe(t,e,l,o,r,c,[...i,a],s);return u?In(a,{...u}):a}function Fs(t){return t.split("/").filter(Boolean)}function Fr(t={}){let e=bt(),[n,o]=at.useState(null),[r,a]=at.useState(false),[i,s]=at.useState(null),[l,c]=at.useState([]),u=at.useRef(null),p=at.useRef(t.threadId);t.threadId!==p.current&&(p.current=t.threadId);let d=at.useCallback(()=>{u.current&&(u.current.abort(),u.current=null);},[]),f=at.useCallback(h=>{o(h),p.current=h.id;},[]),m=at.useCallback(async h=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useThread.");if(!e.client.sendMessage)throw new Error("ErdoClient does not support sendMessage. Make sure you are using @erdoai/server client.");if(!e.client.createThread)throw new Error("ErdoClient does not support createThread. Make sure you are using @erdoai/server client.");d(),u.current=new AbortController,a(true),s(null),c([]);let x={};try{let b=p.current;if(!b){let C=await e.client.createThread();o(C),p.current=C.id,b=C.id;}for await(let C of e.client.sendMessage(b,{content:h,botKey:t.botKey})){if(u.current?.signal.aborted)break;t.onEvent?.(C);let E=C.type||"",I=C.metadata||{},J=Fs(I.path||""),A={payload:C.payload,metadata:{path:I.path||"",...I}};try{Fe(E,A,J,b,x);}catch(kt){console.error("Error handling SSE event:",kt,E);}c(Object.values(x));}let k=Object.values(x);c(k);let T=k.flatMap(C=>C.contents||[]).filter(C=>C.user_visibility==="visible").map(C=>({id:C.id,content_type:C.content_type,ui_content_type:R(C.ui_content_type),content:C.content,parsedJson:C.parsedJson,botInvocation:C.botInvocation}));t.onFinish?.(T);}catch(b){let k=b instanceof Error?b:new Error(String(b));throw s(k),t.onError?.(k),k}finally{a(false),u.current=null;}},[e.client,t,d]),g=at.useMemo(()=>{let h=l.flatMap(k=>k.contents||[]).filter(k=>k.user_visibility==="visible");return ge(h).map(k=>({id:k.id,content_type:k.content_type,ui_content_type:R(k.ui_content_type),content:k.content,parsedJson:k.parsedJson,botInvocation:k.botInvocation}))},[l]);return {thread:n,isStreaming:r,error:i,activeMessages:l,streamingContents:g,sendMessage:m,cancel:d,setThread:f}}exports.BarChart=dt;exports.BotInvocationContent=Ve;exports.Chart=K;exports.ChartContainer=Ht;exports.ChartContent=Pt;exports.ChartLegend=Ke;exports.ChartLegendContent=Ze;exports.ChartStyle=$n;exports.ChartTooltip=He;exports.ChartTooltipContent=ze;exports.CodeexecContent=Oe;exports.CodegenContent=Ae;exports.CollapsibleCodeBlock=$t;exports.Content=re;exports.DatasetChart=Zn;exports.DatasetDownload=At;exports.DatasetTable=Yn;exports.DefaultChartNode=ln;exports.DefaultDownloadButtonNode=dn;exports.DefaultSuggestionsNode=pn;exports.DefaultTableNode=cn;exports.DefaultTextMarkdownNode=un;exports.ErdoProvider=On;exports.ErdoUI=bs;exports.ErrorBoundary=ut;exports.ExecutionStatus=on;exports.ExpandableOutputContent=Ut;exports.HeatmapChart=It;exports.InvocationEvent=be;exports.InvocationEvents=Bt;exports.InvocationStatus=lr;exports.JSONStreamParser=it;exports.JsonContent=st;exports.LineChart=St;exports.Loader=wn;exports.Log=fn;exports.LogContent=Se;exports.MarkdownContent=O;exports.Output=ye;exports.PieChart=wt;exports.ScatterChart=Nt;exports.SqlContent=De;exports.StatusSpinner=mt;exports.StderrText=Gt;exports.StdoutText=Be;exports.StdwarnText=Pe;exports.StepInvocation=ke;exports.StepInvocationStatus=xe;exports.TableContent=Rt;exports.TextContent=Xt;exports.ThinkingContent=_e;exports.ToolGroupContent=Jt;exports.UIGenerationNodes=Ot;exports.WebParseContent=Ne;exports.WebSearchContent=we;exports.WritingLoader=Sn;exports.cn=G;exports.defaultNodeComponents=mn;exports.extractContentItems=Pr;exports.formatValue=z;exports.handleIncrementalMixedJsonParsing=Pn;exports.handleSSEEvent=Fe;exports.isJsonLike=Yt;exports.isNullString=nr;exports.isParsingComplete=za;exports.isParsingInProgress=yn;exports.isWhitespaceChar=Ee;exports.parseCompleteJson=qa;exports.parseMixedJson=Y;exports.parseToDate=Ln;exports.resolveKeyFromData=Dt;exports.toSnakeCase=Hn;exports.unwrapNullString=R;exports.unwrapNullStringOr=Zo;exports.useChartZoom=ce;exports.useDatasetContents=de;exports.useErdoConfig=bt;exports.useErdoConfigOptional=L;exports.useMultipleDatasetContents=pe;exports.useThread=Fr;
|
|
26
|
+
`||t===" "||t==="\r"}function Ha(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!Ee(t[n]))return t[n];return ""}function Y(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n/g,o=n.test(t);if(n.lastIndex=0,o){let r=0,a;for(;(a=n.exec(t))!==null;){let s=t.substring(r,a.index).trim();s&&e.push({content:s,type:"text"});let l=a.index+a[0].length,c=[],u=l;for(;;){let f=t.indexOf("```",u);if(f===-1)break;c.push(f),u=f+3;}let p=null,d=t.length;for(let f of c){let m=t.substring(l,f);try{p=JSON.parse(m),d=f+3;break}catch{try{let g=new it,h=g.parse(m);if(h&&g.state==="END"){p=h,d=f+3;break}}catch{}}}if(p)e.push({content:p,type:"json"});else {let f=t.substring(a.index,d);e.push({content:f,type:"text"});}r=d,n.lastIndex=d;}let i=t.substring(r).trim();i&&e.push({content:i,type:"text"});}else {let r="",a=null,i=false,s=0;for(let l=0;l<t.length;l++){let c=t[l],u=Ha(t,l);if(!i&&(c==="{"&&u==='"'||c==="["&&u==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),i=true,a=new it,r=""),i){let p;try{p=a.add(c);}catch(d){if(console.log("currentChunk",r),console.log("currentResult",a?.result),console.warn("Error parsing JSON",d),s>3){i=false,a=null,s=0,r+=c;continue}s++;continue}r+=c,a.state==="END"&&(e.push({content:p,type:"json"}),i=false,a=null,r="");}else r+=c;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function za(t){return t&&typeof t=="object"&&!t[Lt]}function yn(t){return t&&typeof t=="object"&&t[Lt]===true}function De({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(l){console.error("Failed to parse SQL content:",l),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(l=>l.type==="json"):o?.[0];if(!r)return jsxRuntime.jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Error"}),jsxRuntime.jsx("div",{children:n})]});let{thinking:a,sql_query:i,error:s}=r?.content||{};return s?jsxRuntime.jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Error"}),jsxRuntime.jsx("div",{children:s})]}):i?jsxRuntime.jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx(O,{content:a,className:"text-sm max-w-none"})}),i&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx($t,{language:"sql",value:i,defaultOpen:false})})]}):null}function Ut({children:t,defaultOpen:e=false,wrapperType:n="standard",compact:o=false,className:r}){let[a,i]=at.useState(e),[s,l]=at.useState(false),c=at.useRef(null);at.useEffect(()=>{let d=c.current;d&&(a||(d.scrollTop=d.scrollHeight),l(d.scrollHeight>d.clientHeight));},[a,t]);let u={standard:"bg-muted/30 border-border",info:"bg-info/10 border-info/30",warning:"bg-warning/10 border-warning/30"},p={standard:"text-muted-foreground hover:text-foreground",info:"text-info hover:text-info/80",warning:"text-warning hover:text-warning/80"};return jsxRuntime.jsx("div",{className:`relative text-sm ${o?"":"mb-2"} ${r||""}`,children:jsxRuntime.jsx(Ft__namespace.Root,{open:a,onOpenChange:i,className:`border rounded-sm ${u[n]}`,children:jsxRuntime.jsxs("div",{ref:c,className:`overflow-y-auto ${a?"":"max-h-[200px]"}`,children:[s&&jsxRuntime.jsx(Ft__namespace.Trigger,{className:`sticky top-0 text-center text-xs py-1 transition-opacity w-full cursor-pointer ${p[n]}`,children:a?"Less \u2193":"More \u2191"}),jsxRuntime.jsx("div",{className:`${o?"px-2 py-1":"p-2"} m-0 overflow-x-auto break-words whitespace-pre-wrap`,children:t})]})})})}function xn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Be({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-muted-foreground/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-foreground/80",children:t})]})}function Gt({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-info/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-info/90",children:t})]})}function Pe({children:t,timestamp:e}){return jsxRuntime.jsxs("div",{className:"flex",children:[e&&jsxRuntime.jsx("span",{className:"text-warning/60 mr-2 select-none",children:xn(e)}),jsxRuntime.jsx("span",{className:"text-warning/90",children:t})]})}function Ae({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(u){console.error("Failed to parse codegen content:",u),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(u=>u.type==="json"):o?.[0],{step_by_step:a,thinking:i,code:s,warnings:l,error:c}=r?.content||{};return c?jsxRuntime.jsx(Ut,{wrapperType:"info",className:e,children:jsxRuntime.jsx(Gt,{children:c})}):!a&&!s?null:jsxRuntime.jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsxRuntime.jsx(O,{content:a,className:"text-sm max-w-none"}),i&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx(O,{content:i,className:"text-sm max-w-none"})}),s&&jsxRuntime.jsx("div",{className:"mb-2",children:jsxRuntime.jsx($t,{language:"python",value:s,defaultOpen:false})}),l&&jsxRuntime.jsxs("div",{className:"text-sm text-warning",children:[jsxRuntime.jsx("div",{className:"font-medium",children:"Warnings"}),jsxRuntime.jsx(O,{content:l,className:"text-sm max-w-none"})]})]})}function Oe({item:t,className:e}){let n=t.parsedJson;if(!n?.length)return null;let o=n.map(s=>s.message?.trim()?{level:s.level,message:s.message,timestamp:s.timestamp,index:s.index}:null).filter(s=>s!==null);if(o.sort((s,l)=>s.index-l.index),o.length===0)return null;let r=o.some(s=>s.level==="error"),a=o.some(s=>s.level==="warning"),i=r?"info":a?"warning":"standard";return jsxRuntime.jsx("div",{className:`text-foreground leading-normal ${e||""}`,children:jsxRuntime.jsx(Ut,{wrapperType:i,compact:true,children:o.map((s,l)=>jsxRuntime.jsx(Qa,{output:s},`${s.level}-${l}`))})})}function Qa({output:t}){switch(t.level){case "output":return jsxRuntime.jsx(Be,{timestamp:t.timestamp,children:t.message});case "error":return jsxRuntime.jsx(Gt,{timestamp:t.timestamp,children:t.message});case "warning":return jsxRuntime.jsx(Pe,{timestamp:t.timestamp,children:t.message});default:return jsxRuntime.jsx("div",{className:"text-muted-foreground",children:t.message})}}var es={"websearch.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched web for "${n}"`:`Failed to search web for "${n}"`:`Searching web for "${n}"...`:"Web search"}},"webparser.parse":{icon:lucideReact.Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"siteparser.parse":{icon:lucideReact.Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"resource_definitions.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched resources for "${n}"`:`Failed to search resources for "${n}"`:`Searching resources for "${n}"...`:"Search resources"}},"memory.search":{icon:lucideReact.Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched memories for "${n}"`:`Failed to search memories for "${n}"`:`Searching memories for "${n}"...`:"Search memories"}}};function Nr(t){return t&&es[t]||null}function ns(t){if(!t?.result||t.status==="error")return false;let e=t.result;if(typeof e=="string"){let n=e.trim();return n!==""&&n!=="{}"&&n!=="[]"}if(Array.isArray(e))return e.length>0;if(typeof e=="object"&&e!==null){let n=Object.keys(e);return n.length===0?false:n.some(o=>{let r=e[o];return r==null?false:typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:typeof r=="object"?Object.keys(r).length>0:true})}return true}function rs({actionType:t}){let n=Nr(t)?.icon||lucideReact.Wrench;return jsxRuntime.jsx(n,{className:"h-4 w-4"})}function os({actionType:t,input:e,name:n,result:o,invocation:r}){if(o?.finished_message)return jsxRuntime.jsx("span",{children:o.finished_message});if(o?.running_message)return jsxRuntime.jsx("span",{children:o.running_message});if(!o&&r?.running_message)return jsxRuntime.jsx("span",{children:r.running_message});let a=Nr(t);if(a)return jsxRuntime.jsx("span",{children:a.getLabel(e,o?.status)});let i=o?`Completed ${n}`:`Running ${n}...`;return jsxRuntime.jsx("span",{children:i})}function Jt({toolGroup:t,ContentComponent:e,className:n}){let[o,r]=at.useState(false),a=L(),i=e??a?.ContentComponent,s=t.invocation,l=t.result,c=ns(l),u=s?.action_type||l?.action_type,p=s?.input||l?.input,d=s?.name||l?.name,f=l?.status==="error"?"text-gray-500/80 dark:text-gray-400/80":"text-gray-500 dark:text-gray-400";return jsxRuntime.jsxs(Ft__namespace.Root,{open:o,onOpenChange:r,className:`relative w-full max-w-4xl space-y-2 leading-normal ${n||""}`,children:[jsxRuntime.jsxs(Ft__namespace.Trigger,{className:`flex items-center gap-2 text-sm transition-colors w-full ${f} ${c?"hover:text-gray-900 dark:hover:text-gray-100 cursor-pointer":"cursor-default"}`,disabled:!c,children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(rs,{actionType:u}),jsxRuntime.jsx(os,{actionType:u,input:p,name:d,result:l,invocation:s})]}),c&&jsxRuntime.jsx(lucideReact.ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${o?"rotate-180":""}`})]}),c&&l&&jsxRuntime.jsx(Ft__namespace.Content,{children:jsxRuntime.jsx("div",{className:"pl-6 mt-2",children:i?jsxRuntime.jsx(i,{content:{content:l.result,content_type:l.ui_content_type||"text",ui_content_type:l.ui_content_type||"text"}}):jsxRuntime.jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(l.result,null,2)})})})]})}var ht={Success:"success",Error:"error",RequiresInfo:"requires info"};function ls(t){return t?t===ht.Success?"finished":t===ht.Error||t===ht.RequiresInfo?"failed":"loading":"loading"}function Dr(t){return t?t!==ht.Success&&t!==ht.Error&&t!==ht.RequiresInfo:true}function cs(t,e){let n=e||"agent",o=R(t?.message);return o||(t?.status===ht.Success?`Finished ${n}`:`Running ${n}...`)}function Ve({content:t,botInvocation:e,isLoading:n=false,defaultOpen:o,adminLinkHref:r,adminLinkText:a="Open in Agent Designer",showAdminLink:i=false,onAdminClick:s,onExpand:l,EventsComponent:c,ContentComponent:u,className:p}){let d=()=>o!==void 0?o:e?.currentStatus?Dr(e.currentStatus.status):false,[f,m]=at.useState(d),[g,h]=at.useState(false),x=at.useRef(null);if(at.useEffect(()=>{if(e?.currentStatus){let I=e.currentStatus.status;if(x.current!==I&&(x.current=I,!g)){let J=Dr(I);J&&!f?m(true):!J&&f&&m(false);}}},[e,g,f]),at.useEffect(()=>{f&&e&&l&&l(t.invocation_id,t.bot_id,t.bot_name);},[f,e,l,t]),n&&!e)return jsxRuntime.jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${p||""}`,children:[jsxRuntime.jsx(mt,{status:"loading"}),jsxRuntime.jsxs("span",{children:["Loading ",t.bot_name,"..."]})]});if(!e)return null;let b=ls(e.currentStatus?.status),k=cs(e.currentStatus,t.bot_name),T=I=>{m(I),h(true);},C=I=>{s&&(I.preventDefault(),s(t.invocation_id,t.bot_id));},E=e.eventsByID&&Object.keys(e.eventsByID).length>0;return jsxRuntime.jsxs(Ft__namespace.Root,{open:f,onOpenChange:T,className:`relative w-full max-w-4xl space-y-2 leading-normal bot-invocation-content ${p||""}`,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsxs(Ft__namespace.Trigger,{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[jsxRuntime.jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsxRuntime.jsx(mt,{status:b}),k]}),jsxRuntime.jsx(lucideReact.ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${f?"transform rotate-180":""}`})]}),i&&(r||s)&&jsxRuntime.jsxs("a",{href:r||"#",onClick:s?C:void 0,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[a,jsxRuntime.jsx(lucideReact.ArrowUpRight,{className:"h-3.5 w-3.5"})]})]}),jsxRuntime.jsx(Ft__namespace.Content,{children:jsxRuntime.jsx("div",{className:"space-y-2 max-w-3xl",children:E?c?jsxRuntime.jsx(c,{eventsByID:e.eventsByID,defaultOpen:f}):jsxRuntime.jsx(Bt,{eventsByID:e.eventsByID,ContentComponent:u}):jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:"No events to display"})})})]})}function vn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"q"in t)o=t.q;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.q&&Array.isArray(a.q)&&(o=a.q);}catch{o=[t];}let r=o.filter(a=>a&&a.trim()!=="");return r.length===0?null:jsxRuntime.jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxRuntime.jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsxRuntime.jsx(lucideReact.Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsxRuntime.jsx(lucideReact.Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsxRuntime.jsx("span",{className:"line-clamp-1",children:a})]},i))})}function Cn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"integration_queries"in t)o=t.integration_queries;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.integration_queries&&Array.isArray(a.integration_queries)&&(o=a.integration_queries);}catch{return null}let r=o.filter(a=>a&&a.query&&a.query.trim()!=="");return r.length===0?null:jsxRuntime.jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxRuntime.jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsxRuntime.jsx(lucideReact.Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsxRuntime.jsx(lucideReact.Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsxRuntime.jsx("span",{className:"line-clamp-1",children:a.query})]},i))})}function Sn(){return jsxRuntime.jsxs("span",{className:"inline-flex gap-1 text-muted-foreground",children:[jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"0ms"},children:"\u25CF"}),jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"150ms"},children:"\u25CF"}),jsxRuntime.jsx("span",{className:"animate-bounce",style:{animationDelay:"300ms"},children:"\u25CF"})]})}function wn(){return jsxRuntime.jsx("div",{className:"flex items-center justify-center py-8",children:jsxRuntime.jsx(lucideReact.Loader2,{className:"animate-spin text-muted-foreground",size:24})})}function xs(t){if(t.content_type==="bot_invocation"||t.content_type==="bot_invocation_result"||t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;if(t.content_type==="tool_invocation")return "tool_invocation";if(t.content_type==="tool_result")return "tool_result";if(!t.content||typeof t.content!="object")return null;let e=t.content;return "action_type"in e&&"name"in e&&"input"in e&&e.action_type!=="bot.invoke"?"result"in e?"tool_result":"tool_invocation":null}function re({content:t,className:e,components:n}){let r=L()?.onSuggestionClick,a=at.useMemo(()=>c=>jsxRuntime.jsx(re,{...c,components:n}),[n]);if(t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;let i=xs(t),s;i?s=i:(s=R(t.ui_content_type)||t.content_type,s!=="ui_generation"&&typeof t.content=="string"&&(t.content.includes('{"children":')||t.content.includes('"children":'))&&(s="ui_generation"));let l=n?.[s];if(l)return jsxRuntime.jsx(l,{content:t,className:e});switch(s){case "text":return jsxRuntime.jsx(Xt,{content:_n(t),className:e});case "markdown":return jsxRuntime.jsx(O,{content:_n(t),className:e});case "thinking":case "redacted_thinking":return jsxRuntime.jsx(_e,{item:t,className:e});case "json":return jsxRuntime.jsx(st,{content:t.content,className:e});case "codegen_json":return jsxRuntime.jsx(Ae,{item:t,className:e});case "sql_generation":return jsxRuntime.jsx(De,{item:t,className:e});case "codeexec_output":return jsxRuntime.jsx(Oe,{item:t,className:e});case "log":return jsxRuntime.jsx(Se,{item:t,className:e});case "websearch":case "websearch_output":case "web_search":return jsxRuntime.jsx(we,{item:t,className:e});case "search_queries":return jsxRuntime.jsx(vn,{content:t.content,className:e});case "integration_queries":return jsxRuntime.jsx(Cn,{content:t.content,className:e});case "webparse":case "webparse_output":case "web_parse":return jsxRuntime.jsx(Ne,{item:t,className:e});case "tool_group":return jsxRuntime.jsx(Jt,{toolGroup:t.content,ContentComponent:a,className:e});case "bot_invocation":{let c=t.content,u=t.botInvocation;return jsxRuntime.jsx(Ve,{content:c,botInvocation:u,ContentComponent:a,className:e})}case "chart":case "ui_generation":{let c=t.invocation_id;if(t.chartConfig&&t.chartData)return jsxRuntime.jsx(Pt,{config:t.chartConfig,data:t.chartData,className:e});let u=t.parsedJson;if(u&&Array.isArray(u)&&u.length>0)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:u.map((d,f)=>{if(d.type==="text"){let m=d.content;return jsxRuntime.jsx(O,{content:m,className:e},`${f}-${m.length}`)}else if(d.type==="json"){let m=d.content;return yn(m)?m?.children?.some(x=>x?._type==="TextMarkdown")?jsxRuntime.jsx(Sn,{},f):jsxRuntime.jsx(wn,{},f):m?.children&&Array.isArray(m.children)?jsxRuntime.jsx(at__namespace.default.Fragment,{children:jsxRuntime.jsx(Ot,{nodes:m.children,className:e,invocationId:c,onSuggestionClick:r})},`${f}-${m.children.length}`):jsxRuntime.jsx(st,{content:m,className:e},`${f}-json`)}return null})});let p=typeof t.content=="string"?t.content:null;if(p){let d=Y(p);if(Array.isArray(d))return jsxRuntime.jsx(jsxRuntime.Fragment,{children:d.map((f,m)=>{if(f.type==="text"){let g=f.content;return jsxRuntime.jsx(O,{content:g,className:e},`${m}-${g.length}`)}else if(f.type==="json"){let g=f.content;return g?.children&&Array.isArray(g.children)?jsxRuntime.jsx(at__namespace.default.Fragment,{children:jsxRuntime.jsx(Ot,{nodes:g.children,className:e,invocationId:c,onSuggestionClick:r})},`${m}-${g.children.length}`):jsxRuntime.jsx(st,{content:g,className:e},`${m}-json`)}return null})})}if(typeof t.content=="object"&&t.content!==null){let d=t.content;if(d?.children&&Array.isArray(d.children))return jsxRuntime.jsx(Ot,{nodes:d.children,className:e,invocationId:c,onSuggestionClick:r})}return jsxRuntime.jsx(st,{content:t.content,className:e})}case "table":return t.tableColumns&&t.tableData?jsxRuntime.jsx(Rt,{columns:t.tableColumns,data:t.tableData,className:e}):jsxRuntime.jsx(st,{content:t.content,className:e});case "bot_invocation_result":case "security_check_json":return null;case "tool_invocation":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{},id:c.id||"",name:c.name||"",input:c.input||{},description:c.description,action_type:c.action_type,running_message:c.running_message}};return jsxRuntime.jsx(Jt,{toolGroup:u,ContentComponent:a,className:e})}case "tool_result":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{}},result:{invocation_id:c.id||"",result:c.result}},p={...u,invocation:{...u.invocation,id:c.id||"",name:c.name||"",input:c.input||{},action_type:c.action_type,description:c.description},result:{...u.result,id:c.id||"",name:c.name||"",input:c.input||{},result:c.result,status:c.status||"success",action_type:c.action_type,description:c.description,ui_content_type:c.ui_content_type}};return jsxRuntime.jsx(Jt,{toolGroup:p,ContentComponent:a,className:e})}default:return jsxRuntime.jsx(Xt,{content:_n(t),className:e})}}function _n(t){return typeof t.content=="string"?t.content:JSON.stringify(t.content)}function bs({result:t,isStreaming:e,className:n,components:o,streamingText:r}){let a=t?Pr(t):[];return r&&a.length===0?jsxRuntime.jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsxRuntime.jsx("span",{className:"text-sm text-gray-500",children:"Streaming response..."})]}),jsxRuntime.jsx("div",{className:"border rounded-lg p-4 whitespace-pre-wrap",children:r})]}):a.length===0&&!e?null:jsxRuntime.jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[a.map((i,s)=>jsxRuntime.jsx("div",{children:jsxRuntime.jsx(re,{content:i,components:o})},i.id||s)),e&&a.length===0&&!r&&jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsxRuntime.jsx("span",{className:"text-sm text-gray-500",children:"Processing..."})]})]})}function Pr(t){let e=[],n=new Set;if(t.events)for(let o of t.events){let r=o.metadata,a=o.payload;if(r?.user_visibility==="visible"&&a?.status==="success"&&a?.output){let i=a.output;if(i.content&&Array.isArray(i.content))for(let s=0;s<i.content.length;s++){let l=i.content[s],c=l.id||`event-result-${s}`;if(n.has(c))continue;n.add(c);let u=r?.ui_content_type;if(!u&&typeof l.content=="string")try{JSON.parse(l.content)?.children&&(u="ui_generation");}catch{(l.content.includes('{"children":')||l.content.includes('{ "children":'))&&(u="ui_generation");}e.push({id:c,content_type:l.content_type||"text",ui_content_type:u,content:l.content,data:l.data,chartConfig:l.chartConfig,chartData:l.chartData,tableColumns:l.tableColumns,tableData:l.tableData});}}}if(e.length===0&&t.result?.output?.content){let o=t.result.output.content;if(Array.isArray(o))for(let r=0;r<o.length;r++){let a=o[r],i=a.id||`result-${r}`;if(n.has(i))continue;n.add(i);let s=a.ui_content_type;if(!s&&typeof a.content=="string")try{JSON.parse(a.content)?.children&&(s="ui_generation");}catch{(a.content.includes('{"children":')||a.content.includes('{ "children":'))&&(s="ui_generation");}e.push({...a,id:i,ui_content_type:s});}}return e}function V(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function vs(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function Vr(t){return t.contents.length===0?null:t.contents[0]||null}function En(t,e){let n=V(t);switch(n){case "message":return t;case "step":let o=t;if(e){let i=o.eventsByID[e]?.Message;return i||Lr({},"",e)}let a=Object.keys(o.eventsByID).reverse();for(let i of a){let s=o.eventsByID[i];if(s&&s.Message)return s.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function Cs(t,e){switch(V(t)){case "message_content":return t;case "output_content":return t;case "message":return Wt(t,e);case "output":return qt(t,e);case "step":let o=Ge(t,e);return o?qt(o,e):null;default:return null}}function Wt(t,e){let n=V(t);switch(n){case "message_content":return t;case "message":let o=En(t);if(!o)throw new Error("Unable to find message to add content to");return e?o.contentsByID[e]:vs(o);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function qt(t,e){let n=V(t);switch(n){case "output_content":return t;case "output":let o=t;return e?o.contentsByID[e]||null:o.contents.length<=0?null:o.contents[o.contents.length-1]||null;case "step":let a=Ge(t,e);return a?qt(a):null;case "invocation":if(!e)return null;let i=t.eventsByID[e];return !i||!i.Output?null:qt(i.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function Dn(t,e){let n=V(t),o=null;switch(n){case "invocation":return t;case "message_content":if(o=t.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message content");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return o;case "message":if(o=Vr(t)?.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return o;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function Ge(t,e){let n=V(t);switch(n){case "output":return t;case "step":let o=t;if(e){let s=o.eventsByID[e]?.Output;if(!s)throw new Error("Unable to find output with id "+e);return s}let a=Object.keys(o.eventsByID).reverse();for(let s of a){let l=o.eventsByID[s];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Mr(t,e){let n=V(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let o=t.eventsByID[e];if(!o||!o.type||o.type!=="result_handler"||!o.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return o.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function $r(t,e){let n=V(t),o=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");o=t;let r=o.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let i=t.eventsByID[e];if(!i)throw new Error("Unable to find step on result handler with id "+e);if(!i.Step)throw new Error("Unable to find step on result handler with id "+e);return i.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Nn=class extends Error{};function _s(t,e,n){let o=null,r=e[0],a=e[1];n[r]=a;try{switch(r){case "message":o=En(t,a);break;case "content":o=Wt(t,a);break;case "step":o=$r(t,a);break;case "output":o=Ge(t,a);break;case "output_content":o=qt(t,a);break;case "invocation":o=Dn(t,a);break;case "result_handler":o=Mr(t,a);break}}catch(i){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),i}if(!o)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",o),new Nn(`Unable to find next entity for path ${e.join("/")}`);return o}function Lr(t,e,n,o){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Ss(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function ws(t,e){let n=t.metadata?.ui_content_type,o=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;if(Yt(t.metadata.content_type,n))try{r=Y(o);}catch(a){console.error("Failed to parse message content as JSON:",a),r=[{content:o,type:"text"}];}return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:o,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function Ns(t,e,n){let o=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:o.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:o.action_type,Valid:true},key:{String:o.key,Valid:true},bot_id:o.bot_id,result_handler_id:"",step_order:{Int32:o.step_order,Valid:true},output_content_type:{String:o.content_type,Valid:true},execution_mode:{String:o.execution_mode,Valid:true},output_behaviour:{String:o.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:o.output_channels||[],running_message:{String:o.running_message||"",Valid:!!o.running_message},finished_message:{String:o.finished_message||"",Valid:!!o.finished_message},depends_on:[],eventsByID:{},currentStatus:null}}function Is(t,e,n){let o=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:o.result_handler_id||e,step_invocation_id:o.step_invocation_id||"",type:o.type||"",if_conditions:o.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:o.output_content_type||"",result_handler_order:o.result_handler_order||0,eventsByID:{}}}function Es(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Rr(t,e,n,o=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:o??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Ar(t,e,n,o=null){let r=null,a=t.metadata?.ui_content_type;if(Yt(t.metadata.content_type,a))try{r=Y(t.payload);}catch(i){console.error("Failed to parse step output content as JSON:",i),r=[{content:t.payload,type:"text"}];}return {_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:o||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:a?{String:a,Valid:true}:{String:"",Valid:false},output:null}}function Ds(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function oe(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Ur(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function Tn(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function Bn(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function Ts(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function Bs(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}var Ps=new Set(["=","("]);function Rs(t){if(!t||t.length===0)return true;let e=t[t.length-1];return !Ps.has(e)}function Pn(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!Yt(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){let o=t.content.slice(0,-1);if(Rs(o)){t._charBuffer="{";continue}}if(t._charBuffer&&Ee(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new it;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson=[...t.parsedJson.slice(0,-1),r]):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let o=t._jsonParser.add(n);t._currentContent.content=o,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(o){if(console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",o),t._isInJson=false,t._jsonParser=void 0,t.parsedJson&&t.parsedJson.length>0){let r=t.parsedJson[t.parsedJson.length-1];if(r.type==="json"){let a=t.content.lastIndexOf("{"),i=t.content.slice(a);r.type="text",r.content=i,t._currentContent=r;}}}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function As(t,e){return Pn(t,e)}function Or(t,e){return Pn(t,e)}function In(t,e){let n=V(t);switch(n){case "message":return tt(t,e);case "message_content":return Ue(t,e);case "step":return Vs(t,e);case "output":return Ms(t,e);case "output_content":return $s(t,e);case "invocation":return ae(t,e);case "result_handler":return Ls(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function Os(t,e){for(let n of e)t=In(t,n);return t}function tt(t,e){let n=En(t);if(!n)throw new Error("Unable to find message to add content to");let o=V(e),r=null;switch(o){case "message_content":if(r=e,!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let s=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,s),r,...n.contents.slice(s+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let a=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=Ue(n.contents[0],a),tt(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let i=Dn(r);if(!i)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=ae(i,e),tt(n,r);case "status":if(n.contents.length>0){let s=n.contents[0];if(s?.botInvocation){let l=Ue(s,e);return tt(n,l)}}return {...n};default:throw new Error(`Unable to add update message child for child type ${o}`)}}function Ue(t,e){let n=Wt(t);if(!n)throw new Error("Unable to find message content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};case "status":return n.botInvocation&&(n.botInvocation=ae(n.botInvocation,e)),{...n};default:throw new Error(`Unable to add update message content child for child type ${o}`)}}function Vs(t,e){let n=$r(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let o=V(e),r=null;switch(o){case "output":let a=e;return r=Tn(a),n.eventsByID={...n.eventsByID,[a.output.id]:r},{...n};case "message":let i=e;return r=Ts(i),n.eventsByID={...n.eventsByID,[i.message.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "result_handler":let l=e;return r=Bs(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${o}`)}}function Ms(t,e){let n=Ge(t);if(!n)throw new Error("Unable to find step output to add content to");let o=V(e);switch(o){case "output_content":let r=e;if(!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let a=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,a),r,...n.contents.slice(a+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${o}`)}}function $s(t,e){let n=qt(t);if(!n)throw new Error("Unable to find step output content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${o}`)}}function ae(t,e){let n=Dn(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let o=V(e),r;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},n.currentStatus=s,{...n};default:throw new Error(`Unable to add update invocation for entity type ${o}`)}}function Ls(t,e){let n=Mr(t);if(!n)throw new Error("Unable to find result handler to add content to");let o=V(e),r=null;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${o}`)}}function Us(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Fe(t,e,n,o,r,a=null,i=[],s={}){if(!a&&Object.keys(r).length>0){let p,d;if(n.length>=2&&n[0]==="message"?(d=n[1],p=r[d],p||(p=Object.values(r)[0],d=Object.keys(r)[0])):(p=Object.values(r)[Object.values(r).length-1],d=Object.keys(r)[Object.keys(r).length-1]),s.message=d,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(p.contentsByID).length>0&&e.metadata.message_content_id){let f=e.metadata.message_content_id,m=p.contentsByID[f];m&&(a=m);}a?i=[p]:a=p;}if(n.length<=2&&Us(t)){let p=n[1],d=[],f,m,g,h,x;switch(t){case "bot started":case "bot resumed":if(!a)throw new Error("Unable to find message to add content to");let b=Ds(e);if(a._type==="message_content"){if(m=a,!m.id)throw new Error("Unable to find message content id");if(g=r[m.message_id],!g)throw new Error("Unable to find message to add content to");if(h=Wt(g,m.id),!h)throw new Error("Unable to find message content to add content to");let E=Ue(h,b);r[m.message_id]={...tt(g,E)};}d.push(b);break;case "message created":return r[p]=Lr(e,o,p),null;case "create message content":if(!a)throw new Error("Unable to find message to add content to");if(x=Ss(e,s),a._type==="output"){f=a,d.push(Rr(e,p,s,"hidden"));let E=e.payload.message_id;if(E||(E=i[0].message.id),g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(f=a,g=r[f.message_id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(f=a,g=r[f.message.id],!g)throw new Error("Unable to find message to add content to");d.push(x);}r[g.message.id]={...tt(g,x)};break;case "message content result":if(!a)throw new Error("Unable to find message to add content to");let k=null;if(a._type==="output"){d.push(Ar(e,p,s,"hidden"));let E=e.payload.message_id||s.message;if(E?k=i.find(I=>I.message.id===E):k=i[0],g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(k=i[0],g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(k=a,g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}let T=e.metadata.message_content_id;if(!T)throw new Error("Unable to find message content id");let C=Wt(k,T);if(C){C.state="completed";let E=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;C.content=E,r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);}else C=ws(e,s),r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);break;case "step started":d.push(Ns(e,p,s));break;case "result handler started":d.push(Is(e,p));break;case "step output created":d.push(Es(e,p,a));break;case "create step output content":d.push(Rr(e,p,s));break;case "step output content result":d.push(Ar(e,p,s));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return d.length?!a||a._type==="message_content"&&d.length===1&&d[0]._type==="message_content"?d[0]:Os(a,d):null}if(!a)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let p=null;try{p=Cs(a);}catch{}switch(t){case "message content delta":if(!p)throw new Error("Unable to find message content");let d=null,f=null,m=null;if(a._type==="output_content"){d=Or(a,e.payload);let b=e.metadata.message_content_id;if(!b)throw new Error("Unable to find message content id from entity ids");let k=s.message;if(m=i.find(T=>T.message.id===k),!m)throw new Error("Unable to find message to add content to");f=Wt(m,b);}else {if(f=p,m=i[i.length-1],!m)throw new Error("Unable to find message to add content to");if(m._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!f)throw new Error("Unable to find message content");let g=r[m.message.id];if(!g)throw new Error("Unable to find message to add content to");let h=As(f,e.payload);return r[g.message.id]={...tt(g,h)},a._type==="message_content"&&(d=h),d;case "step output content delta":return Or(p,e.payload);case "status":if(a._type==="step"&&(a.currentStatus=oe(e)),a._type==="invocation"&&(a.currentStatus=oe(e)),a._type==="message_content"){let x=a;if(x.botInvocation)return x.botInvocation.currentStatus=oe(e),{...x}}if(a._type==="message"){let x=a,b=Vr(x);if(b?.botInvocation)return b.botInvocation.currentStatus=oe(e),tt(x,b)}return In(a,oe(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),c=_s(a,n,s),u=Fe(t,e,l,o,r,c,[...i,a],s);return u?In(a,{...u}):a}function Fs(t){return t.split("/").filter(Boolean)}function Fr(t={}){let e=bt(),[n,o]=at.useState(null),[r,a]=at.useState(false),[i,s]=at.useState(null),[l,c]=at.useState([]),u=at.useRef(null),p=at.useRef(t.threadId);t.threadId!==p.current&&(p.current=t.threadId);let d=at.useCallback(()=>{u.current&&(u.current.abort(),u.current=null);},[]),f=at.useCallback(h=>{o(h),p.current=h.id;},[]),m=at.useCallback(async h=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useThread.");if(!e.client.sendMessage)throw new Error("ErdoClient does not support sendMessage. Make sure you are using @erdoai/server client.");if(!e.client.createThread)throw new Error("ErdoClient does not support createThread. Make sure you are using @erdoai/server client.");d(),u.current=new AbortController,a(true),s(null),c([]);let x={};try{let b=p.current;if(!b){let C=await e.client.createThread();o(C),p.current=C.id,b=C.id;}for await(let C of e.client.sendMessage(b,{content:h,botKey:t.botKey})){if(u.current?.signal.aborted)break;t.onEvent?.(C);let E=C.type||"",I=C.metadata||{},J=Fs(I.path||""),A={payload:C.payload,metadata:{path:I.path||"",...I}};try{Fe(E,A,J,b,x);}catch(kt){console.error("Error handling SSE event:",kt,E);}c(Object.values(x));}let k=Object.values(x);c(k);let T=k.flatMap(C=>C.contents||[]).filter(C=>C.user_visibility==="visible").map(C=>({id:C.id,content_type:C.content_type,ui_content_type:R(C.ui_content_type),content:C.content,parsedJson:C.parsedJson,botInvocation:C.botInvocation}));t.onFinish?.(T);}catch(b){let k=b instanceof Error?b:new Error(String(b));throw s(k),t.onError?.(k),k}finally{a(false),u.current=null;}},[e.client,t,d]),g=at.useMemo(()=>{let h=l.flatMap(k=>k.contents||[]).filter(k=>k.user_visibility==="visible");return ge(h).map(k=>({id:k.id,content_type:k.content_type,ui_content_type:R(k.ui_content_type),content:k.content,parsedJson:k.parsedJson,botInvocation:k.botInvocation}))},[l]);return {thread:n,isStreaming:r,error:i,activeMessages:l,streamingContents:g,sendMessage:m,cancel:d,setThread:f}}exports.BarChart=dt;exports.BotInvocationContent=Ve;exports.Chart=K;exports.ChartContainer=Ht;exports.ChartContent=Pt;exports.ChartLegend=Ke;exports.ChartLegendContent=Ze;exports.ChartStyle=$n;exports.ChartTooltip=He;exports.ChartTooltipContent=ze;exports.CodeexecContent=Oe;exports.CodegenContent=Ae;exports.CollapsibleCodeBlock=$t;exports.Content=re;exports.DatasetChart=Zn;exports.DatasetDownload=At;exports.DatasetTable=Yn;exports.DefaultChartNode=ln;exports.DefaultDownloadButtonNode=dn;exports.DefaultSuggestionsNode=pn;exports.DefaultTableNode=cn;exports.DefaultTextMarkdownNode=un;exports.ErdoProvider=On;exports.ErdoUI=bs;exports.ErrorBoundary=ut;exports.ExecutionStatus=on;exports.ExpandableOutputContent=Ut;exports.HeatmapChart=It;exports.InvocationEvent=be;exports.InvocationEvents=Bt;exports.InvocationStatus=lr;exports.JSONStreamParser=it;exports.JsonContent=st;exports.LineChart=St;exports.Loader=wn;exports.Log=fn;exports.LogContent=Se;exports.MarkdownContent=O;exports.Output=ye;exports.PieChart=wt;exports.ScatterChart=Nt;exports.SqlContent=De;exports.StatusSpinner=mt;exports.StderrText=Gt;exports.StdoutText=Be;exports.StdwarnText=Pe;exports.StepInvocation=ke;exports.StepInvocationStatus=xe;exports.TableContent=Rt;exports.TextContent=Xt;exports.ThinkingContent=_e;exports.ToolGroupContent=Jt;exports.UIGenerationNodes=Ot;exports.WebParseContent=Ne;exports.WebSearchContent=we;exports.WritingLoader=Sn;exports.cn=G;exports.defaultNodeComponents=mn;exports.extractContentItems=Pr;exports.formatValue=z;exports.handleIncrementalMixedJsonParsing=Pn;exports.handleSSEEvent=Fe;exports.isJsonLike=Yt;exports.isNullString=nr;exports.isParsingComplete=za;exports.isParsingInProgress=yn;exports.isWhitespaceChar=Ee;exports.parseCompleteJson=qa;exports.parseMixedJson=Y;exports.parseToDate=Ln;exports.resolveKeyFromData=Dt;exports.toSnakeCase=Hn;exports.unwrapNullString=R;exports.unwrapNullStringOr=Zo;exports.useChartZoom=ce;exports.useDatasetContents=de;exports.useErdoConfig=bt;exports.useErdoConfigOptional=L;exports.useMultipleDatasetContents=pe;exports.useThread=Fr;
|
package/dist/index.js
CHANGED
|
@@ -23,4 +23,4 @@ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Col
|
|
|
23
23
|
$bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"}],ip:1,op:54,st:0,ct:1,bm:0}]},{id:"comp_3",nm:"mask-1",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"NULL 2",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:11,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:17.25,s:[-30]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:23.5,s:[30]},{i:{x:[.16],y:[1]},o:{x:[.333],y:[0]},t:31,s:[-30]},{t:46,s:[0]}],ix:10},p:{a:0,k:[250,284,0],ix:2,l:2},a:{a:0,k:[50,50,0],ix:1,l:2},s:{a:1,k:[{i:{x:[0,0,.2],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[1,1,.8],y:[0,0,0]},t:16,s:[180,180,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[.7,.7,.7],y:[0,0,0]},t:35,s:[180,180,100]},{t:58,s:[100,100,100]}],ix:6,l:2}},ao:0,ip:0,op:53,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.005,120.173,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,0],[0,0]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[52]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[52]}],ix:5},lc:2,lj:1,ml:10,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.004,10.799,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:1},o:{x:.333,y:0},t:0,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]},{i:{x:0,y:1},o:{x:1,y:0},t:10,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{i:{x:.833,y:.833},o:{x:1,y:0},t:29,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{t:53,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[42]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[42]}],ix:5},lc:2,lj:2,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,-14.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0}]}],layers:[{ddd:0,ind:1,ty:3,nm:"control",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ef:[{ty:5,nm:"primary",np:3,mn:"ADBE Color Control",ix:1,en:1,ef:[{ty:2,nm:"Color",mn:"ADBE Color Control-0001",ix:1,v:{a:0,k:[.071,.075,.192],ix:1}}]}],ip:0,op:131,st:0,bm:0},{ddd:0,ind:3,ty:0,nm:"hover-warning",refId:"comp_2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:0,op:70,st:0,bm:0}],markers:[{tm:0,cm:"default:hover-warning",dr:60}],props:{}};var ir=null,he=null,rn=new Set;function na(){return he||(typeof window>"u"?Promise.resolve():(he=import('@lordicon/react').then(t=>{ir=t.Player,rn.forEach(e=>e());}),he))}typeof window<"u"&&na();function ra(t){return rn.add(t),()=>rn.delete(t)}function oa(){return ir}function aa(){return null}function sa(){let[t,e]=useState("#000000");return useEffect(()=>{if(typeof window>"u")return;let n=()=>{let r=document.documentElement.classList.contains("dark");e(r?"#ffffff":"#000000");};n();let o=new MutationObserver(r=>{r.forEach(a=>{a.attributeName==="class"&&n();});});return o.observe(document.documentElement,{attributes:true}),()=>o.disconnect()},[]),t}function mt({status:t,color:e,size:n=16,className:o}){let r=useRef(null),a=useRef(null),i=useRef(null),s=useSyncExternalStore(ra,oa,aa),l=sa(),c=e||l;return useEffect(()=>{s&&(t==="loading"?r.current?.playFromBeginning?.():t==="finished"?(r.current?.pause?.(),a.current?.playFromBeginning?.()):t==="failed"&&(r.current?.pause?.(),i.current?.playFromBeginning?.()));},[t,s]),s?jsxs("div",{className:o,style:{width:n,height:n,position:"relative"},children:[jsx("div",{style:{position:"absolute",opacity:t==="loading"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(s,{ref:r,size:n,icon:rr,colorize:c,onComplete:()=>r.current?.playFromBeginning?.()})}),jsx("div",{style:{position:"absolute",opacity:t==="finished"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(s,{ref:a,size:n,icon:or,colorize:c})}),jsx("div",{style:{position:"absolute",opacity:t==="failed"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(s,{ref:i,size:n,icon:ar,colorize:c})})]}):jsx("div",{className:o,style:{width:n,height:n}})}function Yt(t,e){return t==="json"||e==="json"}var lr=(l=>(l.Pending="pending",l.Running="running",l.Success="success",l.Error="error",l.RequiresInfo="requires info",l.GoToStep="go to step",l.Skipped="skipped",l.Break="break",l))(lr||{}),on=(a=>(a.Initializing="initializing",a.Running="running",a.ProcessingDatasets="processing datasets",a.Completed="completed",a.Failed="failed",a))(on||{});var cr={Finished:"step finished",Failed:"step error"};function xe({step:t}){let e=R(t.action_type)||"step",n=t.currentStatus;if(!n)return null;let o="loading";n.status===cr.Finished||n.status==="completed"?o="finished":(n.status===cr.Failed||n.status==="failed")&&(o="failed");let r,a=R(n.message);return a?r=a:o==="finished"?r=R(t.finished_message)||`Finished ${e}`:o==="failed"?r=`Failed: ${e}`:r=R(t.running_message)||`Running ${e}...`,jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsx(mt,{status:o}),r]})}function ke({step:t,ContentComponent:e}){if(R(t.user_output_visibility)!=="visible")return null;let n=R(t.action_type);return jsxs(Fragment,{children:[n!=="bot.invoke"&&n!=="invoke_bot"&&jsx(xe,{step:t}),jsx(Bt,{eventsByID:t.eventsByID,ContentComponent:e})]})}function be({event:t,ContentComponent:e}){let n=L(),o=e??n?.ContentComponent;if(!t)return null;switch(t.type){case "output":return t.Output?jsx(ye,{output:t.Output,ContentComponent:o}):null;case "step":return t.Step?jsx(ke,{step:t.Step,ContentComponent:o}):null;default:return null}}function Bt({eventsByID:t,ContentComponent:e}){return jsx(Fragment,{children:Object.values(t).map(n=>jsx(be,{event:n,ContentComponent:e},n.id))})}function Xt({content:t,className:e}){return t?.length?jsx("div",{className:e||"prose dark:prose-invert max-w-4xl w-full leading-normal",children:jsx("p",{style:{whiteSpace:"pre-wrap"},children:t})}):null}function ma(t){let e=[],n=t;for(;n.length>0;){let o=n.indexOf("{"),r=n.indexOf("["),a=-1,i=true;if(o>=0&&(r<0||o<r)?(a=o,i=true):r>=0&&(a=r,i=false),a<0){n.trim()&&e.push({type:"text",content:n});break}if(a>0){let d=n.slice(0,a);d.trim()&&e.push({type:"text",content:d});}let s=0,l=a,c=i?"{":"[",u=i?"}":"]";for(let d=a;d<n.length;d++)if(n[d]===c&&s++,n[d]===u&&s--,s===0){l=d+1;break}let p=n.slice(a,l);try{let d=JSON.parse(p);e.push({type:"json",content:d});}catch{e.push({type:"text",content:p});}n=n.slice(l);}return e}function fa(t){switch(t){case "muted":return "text-gray-500";case "error":return "text-red-500";case "warning":return "text-yellow-600";case "success":return "text-green-600";default:return ""}}function st({content:t,className:e}){let n=useMemo(()=>t==null?"":typeof t=="string"?t:JSON.stringify(t,null,2),[t]),o=useMemo(()=>ma(n),[n]);return n?.length?jsx("div",{className:e||"prose dark:prose-invert leading-normal",children:o.map((r,a)=>{if(r.type==="json"){let i=r.content;return i.message&&typeof i.message=="string"?jsx("p",{className:fa(i.style),children:i.message},a):jsx("pre",{className:"bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto text-sm",children:JSON.stringify(i,null,2)},a)}return jsx("p",{children:r.content},a)})}):null}function Pt({config:t,data:e,className:n}){let o=useMemo(()=>!t?.chart_type||!t?.chart_title||!t?.series?.length||!t?.y_axes?.length?null:{chartType:t.chart_type,title:t.chart_title,xAxis:{label:t.x_axis.axis_label,key:t.x_axis.key,maxValue:t.x_axis.max_value,minValue:t.x_axis.min_value,type:t.x_axis.value_type,format:t.x_axis.format},yAxes:t.y_axes.map(s=>({label:s.axis_label,key:s.key,maxValue:s.max_value,minValue:s.min_value,type:s.value_type,format:s.format})),series:t.series.map(s=>({key:s.key,name:s.series_name,color:s.color,axisIndex:s.axis_index,filters:s.filters})),dataReduction:t.data_reduction,stacked:t.stacked,sort:t.sort},[t]);if(!o)return jsx("div",{className:"text-red-500",children:"Invalid chart configuration"});if(!e||e.length===0)return jsx("div",{className:"text-gray-500",children:"No data available for chart"});let r=null;switch(o.chartType){case "bar":case "histogram":r=dt;break;case "line":r=St;break;case "pie":r=wt;break;case "scatter":r=Nt;break;case "heatmap":r=It;break}if(!r)return jsxs("div",{className:"text-red-500",children:["Unsupported chart type: ",o.chartType]});let a={[o.xAxis.key]:{label:o.xAxis.label,format:o.xAxis.format,type:o.xAxis.type},...o.series.reduce((s,l)=>(s[l.key]={label:l.name,color:l.color},s),{})},i={chartType:o.chartType,xAxis:o.xAxis,yAxes:o.yAxes,series:o.series};return jsx("div",{className:n||"w-full max-w-3xl",children:jsx(r,{title:o.title,data:e,displayConfig:a,dataConfig:i,stacked:o.stacked,disableAnimation:e.length>100})})}function Rt({title:t,columns:e,data:n,className:o,maxRows:r=100}){let a=useMemo(()=>!n||n.length===0?[]:r?n.slice(0,r):n,[n,r]);return !e||e.length===0?jsx("div",{className:"text-gray-500",children:"No columns defined"}):!n||n.length===0?jsx("div",{className:"text-gray-500",children:"No data available"}):jsxs("div",{className:o||"w-full",children:[t&&jsx("h3",{className:"text-lg font-medium mb-3",children:t}),jsx("div",{className:"relative w-full overflow-x-auto rounded-lg border border-border",children:jsxs("table",{className:"w-full caption-bottom text-sm",children:[jsx("thead",{className:"[&_tr]:border-b",children:jsx("tr",{className:"border-b transition-colors bg-muted/50",children:e.map(i=>jsx("th",{className:"h-10 px-3 text-left align-middle font-medium text-muted-foreground",children:i.column_name},i.key))})}),jsx("tbody",{className:"[&_tr:last-child]:border-0",children:a.map((i,s)=>jsx("tr",{className:"border-b transition-colors hover:bg-muted/50",children:e.map(l=>jsx("td",{className:"p-3 align-middle text-foreground",children:z(i[l.key],l.format,l.value_type)},l.key))},s))})]})}),n.length>r&&jsxs("p",{className:"text-sm text-muted-foreground mt-2",children:["Showing ",r," of ",n.length," rows"]})]})}function ba(){return t=>{let e=[];visit(t,"code",(n,o,r)=>{let a=n;(!a.value||a.value.trim()==="")&&r&&typeof o=="number"&&e.push({parent:r,index:o});}),visit(t,"text",(n,o,r)=>{let i=n.value?.trim();i&&/^```[a-zA-Z]*$/.test(i)&&r&&typeof o=="number"&&e.push({parent:r,index:o});}),e.sort((n,o)=>o.index-n.index).forEach(({parent:n,index:o})=>{n.children.splice(o,1);});}}function O({content:t,className:e}){return t?.length?jsx("div",{className:G("prose dark:prose-invert leading-tight",e),children:jsx(xa,{remarkPlugins:[ka,ba],children:t})}):null}async function Sa(t,e,n,o,r){let a=new URLSearchParams({ThreadID:n}),i=`${t}/datasets/${encodeURIComponent(e)}?${a}`,s={};o?s.Authorization=`Bearer ${o}`:r&&(s["X-Erdo-Token"]=r);let l=await fetch(i,{headers:s});if(!l.ok)return null;let c=await l.json();return {id:c.id,name:R(c.name)||"dataset"}}async function wa(t,e,n,o){let r=`${t}/datasets/${encodeURIComponent(e)}/download`,a={};n?a.Authorization=`Bearer ${n}`:o&&(a["X-Erdo-Token"]=o);let i=await fetch(r,{headers:a});if(!i.ok)throw new Error(`Download failed: ${i.statusText}`);return i.blob()}function Na(t,e){let n=window.URL.createObjectURL(t),o=document.createElement("a");o.style.display="none",o.href=n,o.download=e,document.body.appendChild(o),o.click(),window.URL.revokeObjectURL(n),document.body.removeChild(o);}function At({slug:t,invocationId:e,threadId:n,className:o}){let r=L(),[a,i]=useState(false),[s,l]=useState(null),[c,u]=useState(true),p=n||r?.threadId;useEffect(()=>{if(!t||!p){u(false);return}let f=false;async function m(){try{let g=null;r?.dataFetcher?.getDatasetDetails?g=await r.dataFetcher.getDatasetDetails(t,p):r?.baseUrl&&(g=await Sa(r.baseUrl,t,p,r.authToken,r.token)),f||l(g);}catch(g){console.error("Failed to fetch dataset details:",g);}finally{f||u(false);}}return m(),()=>{f=true;}},[t,p,r]);let d=useCallback(async f=>{if(f.preventDefault(),!(!s?.id||a)){i(true);try{let m;if(r?.dataFetcher?.downloadDataset)m=await r.dataFetcher.downloadDataset(s.id);else if(r?.baseUrl)m=await wa(r.baseUrl,s.id,r.authToken,r.token);else throw new Error("No download method available");let g=`${s.name||"dataset"}.csv`;Na(m,g);}catch(m){console.error("Download failed:",m);}finally{i(false);}}},[s,a,r]);return c||!s?.id?null:jsxs("a",{href:"#",onClick:d,className:`inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors ${o||""}`,children:[jsx(Download,{className:"h-4 w-4"}),a?"Downloading...":"Download",jsx("span",{className:"font-medium",children:s.name||"dataset"})]})}function ln({node:t,index:e,className:n,invocationId:o}){let r=t.content;if(!r)return null;let a=r.series||[],i=[...new Set(a.map(s=>s.dataset_slug).filter(s=>!!s))];return jsxs("div",{className:"my-4",children:[jsx(Pt,{config:{chart_type:r.chart_type,chart_title:r.chart_title,x_axis:r.x_axis,y_axes:r.y_axes,series:r.series,data_reduction:r.data_reduction,stacked:r.stacked,sort:r.sort},data:[],className:n}),i.length>0&&jsx("div",{className:"flex gap-4 mt-2",children:i.map(s=>jsx(At,{slug:s,invocationId:o},s))})]},`chart-${e}`)}function cn({node:t,index:e,className:n,invocationId:o}){let r=t.content;if(!r)return null;let a=r.dataset_slug;return jsxs("div",{className:"my-4",children:[jsx(Rt,{title:r.table_title,columns:r.columns,data:[],className:n}),a&&jsx("div",{className:"mt-2",children:jsx(At,{slug:a,invocationId:o})})]},`table-${e}`)}function un({node:t,index:e,className:n}){let o=t.content;return jsx("div",{className:"my-2",children:jsx(O,{content:o?.text||"",className:n})},`text-${e}`)}function dn({node:t,index:e,className:n,invocationId:o}){let a=t.content?.dataset_slug;return a?jsx("div",{className:"my-2",children:jsx(At,{slug:a,invocationId:o,className:n})},`download-${e}`):null}function pn({node:t,index:e,onSuggestionClick:n}){let r=t.content?.suggestions||[];return r.length?jsx("div",{className:"flex flex-col gap-2 my-4",children:r.map((a,i)=>jsx("button",{onClick:n?()=>n(a):void 0,disabled:!n,className:"text-left px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded hover:bg-gray-200 dark:hover:bg-gray-700 text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:a},i))},`suggestions-${e}`):null}var mn={Chart:ln,Table:cn,TextMarkdown:un,DownloadButton:dn,Suggestions:pn};function Ot({nodes:t,className:e,invocationId:n,onSuggestionClick:o,nodeComponents:r}){if(!t||!Array.isArray(t))return null;let a={...mn,...r};return jsx(Fragment,{children:t.map((i,s)=>{let l=i;if(!l?._type)return null;let c=a[l._type];return c?jsx(c,{node:l,index:s,className:e,invocationId:n,onSuggestionClick:o},`${l._type}-${s}`):null})})}function _e({item:t,className:e}){let[n,o]=useState(false),r=t.content_type==="redacted_thinking",a="";typeof t.content=="string"?a=t.content:t.content&&typeof t.content=="object"&&(r?a=t.content.data||"Some of Claude's internal reasoning has been automatically encrypted for safety reasons. This doesn't affect the quality of responses.":a=t.content.thinking||"");let i=r?"border-amber-200 bg-amber-50 dark:bg-amber-900/20 dark:border-amber-700":"border-gray-200 bg-gray-50 dark:bg-gray-800 dark:border-gray-700",s=r?"hover:bg-amber-100 dark:hover:bg-amber-800/30":"hover:bg-gray-100 dark:hover:bg-gray-700",l=r?"text-amber-700 dark:text-amber-300":"text-gray-600 dark:text-gray-400",c=r?"text-amber-800 dark:text-amber-200 italic":"text-gray-700 dark:text-gray-300",u=r?"border-amber-200 dark:border-amber-700":"border-gray-200 dark:border-gray-700";return jsxs("div",{className:`my-2 border rounded-lg ${i} ${e||""}`,children:[jsxs("button",{onClick:()=>o(!n),className:`w-full px-3 py-2 flex items-center gap-2 text-left transition-colors rounded-lg ${s}`,children:[n?jsx(ChevronDown,{className:"h-4 w-4 text-gray-500"}):jsx(ChevronRight,{className:"h-4 w-4 text-gray-500"}),jsx("span",{className:`text-sm font-medium ${l}`,children:r?"Encrypted Thinking...":"Thinking..."}),!n&&jsx("span",{className:"text-xs text-gray-500 dark:text-gray-500 ml-auto",children:"Click to expand"})]}),n&&jsx("div",{className:`px-3 pb-3 border-t ${u}`,children:jsx("div",{className:`mt-2 text-sm whitespace-pre-wrap ${c}`,children:a})})]})}function br(t){try{return JSON.parse(t)}catch{return t}}function Pa(t){if(!t)return "";try{return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return ""}}function fn({log:t}){let e=typeof t.message=="string"?br(t.message):t.message,n=Pa(t.timestamp),o="text-xs font-mono py-0.5 px-1.5 rounded flex items-start",r="";switch(t.level){case "error":o+=" bg-red-50/50 dark:bg-red-950/30 text-red-600 dark:text-red-400 border-l-2 border-red-400 dark:border-red-600",r="text-red-500 dark:text-red-400";break;case "requires_info":o+=" bg-yellow-50/50 dark:bg-yellow-950/30 text-yellow-600 dark:text-yellow-400 border-l-2 border-yellow-400 dark:border-yellow-600",r="text-yellow-500 dark:text-yellow-400";break;default:o+=" bg-blue-50/40 dark:bg-blue-900/20 text-blue-500/90 dark:text-blue-300/80 border-l-2 border-blue-300 dark:border-blue-600/50",r="text-blue-400 dark:text-blue-400/70";}return jsx("div",{className:"my-0.5",children:jsx("div",{className:o,children:jsxs("div",{className:"flex items-start gap-2",children:[n&&jsx("span",{className:"text-[10px] opacity-60 whitespace-nowrap w-16 flex-shrink-0 pt-0.5",children:n}),t.level==="error"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",clipRule:"evenodd"})})}),t.level==="requires_info"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})})}),t.level==="info"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})})}),jsx("div",{className:"flex-1 break-words whitespace-pre-wrap",children:String(e)})]})})})}function Se({item:t,className:e}){let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=br(n),r={level:o.level||"info",message:o.message||n,timestamp:o.timestamp};return jsx("div",{className:e,children:jsx(fn,{log:r})})}function we({item:t,className:e}){let n=t.content;return n?.results?.length?jsx("div",{className:`max-w-2xl ${e||""}`,children:jsx("div",{className:"space-y-1",children:n.results.map((o,r)=>jsx("div",{className:"group hover:shadow-sm transition-shadow rounded-sm py-2 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900",children:jsx("div",{className:"px-4",children:jsx("div",{className:"flex items-start justify-between gap-2",children:jsxs("div",{className:"flex-1 min-w-0",children:[jsxs("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 font-medium text-xs leading-tight truncate text-gray-900 dark:text-gray-100 hover:text-blue-600 dark:hover:text-blue-400 hover:underline",children:[jsx("span",{children:o.title}),jsxs("span",{className:"text-xs text-gray-500/60 dark:text-gray-400/60 flex-shrink-0",children:["(",new URL(o.url).hostname,")"]})]}),jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 truncate leading-tight mt-0.5",children:o.description})]})})})},r))})}):null}function Ne({item:t,className:e}){let n=t.content;return n?.content?.length?jsxs("div",{className:`max-w-4xl border border-gray-200 dark:border-gray-700 rounded-lg bg-white dark:bg-gray-900 ${e||""}`,children:[jsx("div",{className:"p-4 border-b border-gray-200 dark:border-gray-700",children:jsxs("div",{className:"flex items-start justify-between",children:[jsxs("div",{className:"space-y-2",children:[jsxs("h3",{className:"flex items-center gap-2 text-lg font-semibold text-gray-900 dark:text-gray-100",children:[jsx(Globe,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"}),n.title||"Parsed Website Content"]}),n.description&&jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 leading-relaxed",children:n.description})]}),n.url&&jsxs("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 transition-colors font-medium",children:[jsx(ExternalLink,{className:"h-3 w-3"}),"Visit"]})]})}),jsx("div",{className:"p-4",children:jsx(O,{content:n.content,className:"prose dark:prose-invert max-w-none leading-relaxed prose-sm"})})]}):null}var Wa=Prism;function $t({language:t,value:e,defaultOpen:n=false,title:o="View code",closeTitle:r="Hide code",className:a,theme:i="auto"}){let[s,l]=useState(n),[c,u]=useState(false),p=useRef(null);useEffect(()=>{if(!s){let b=p.current;b&&(b.scrollTop=b.scrollHeight);}},[s,e]);let d=useMemo(()=>i!=="auto"?i:typeof window>"u"?"light":document.documentElement.classList.contains("dark")||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[i]),f=useMemo(()=>d==="dark"?oneDark:oneLight,[d]),m=async()=>{try{await navigator.clipboard.writeText(e),u(!0),setTimeout(()=>u(!1),2e3);}catch{let b=document.createElement("textarea");b.value=e,document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),u(true),setTimeout(()=>u(false),2e3);}},g=useMemo(()=>({margin:0,width:"100%",background:"transparent",padding:"1rem 0.5rem",fontSize:"0.825rem",maxWidth:"100vw",overflow:"auto"}),[]),h=useMemo(()=>({userSelect:"none",minWidth:"2.5em",paddingRight:"1em",color:"rgb(161 161 170)",opacity:"0.5"}),[]),x=useMemo(()=>({style:{fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre",wordBreak:"break-word"}}),[]);return jsx(Ft.Root,{open:s,onOpenChange:l,className:a,children:jsxs("div",{className:"relative w-full font-sans rounded-lg overflow-hidden border border-zinc-200 dark:border-zinc-800",children:[jsxs("div",{className:"flex items-center justify-between w-full px-4 py-1.5 bg-white/80 dark:bg-zinc-800/80 text-zinc-600 dark:text-zinc-100 backdrop-blur-sm border-b border-zinc-200 dark:border-zinc-800",children:[jsx("span",{className:"text-xs font-medium lowercase text-zinc-400 dark:text-zinc-500",children:t}),jsx("button",{onClick:m,className:"h-6 w-6 flex items-center justify-center rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-700 transition-colors",children:c?jsx(Check,{className:"h-3 w-3 text-green-500"}):jsx(Copy,{className:"h-3 w-3 text-zinc-400 dark:text-zinc-500"})})]}),jsxs("div",{ref:p,className:`${s?"max-h-96":"max-h-[200px]"} overflow-auto relative`,children:[jsx("div",{className:"bg-zinc-50/50 dark:bg-zinc-950/70",children:jsx(Wa,{language:t,style:f,PreTag:"div",showLineNumbers:true,wrapLines:false,wrapLongLines:false,startingLineNumber:1,className:"not-prose",customStyle:g,lineNumberStyle:h,codeTagProps:x,children:e})}),!s&&jsx("div",{className:"absolute bottom-0 inset-x-0 h-24 pointer-events-none bg-gradient-to-t from-zinc-50 dark:from-zinc-950 to-transparent",style:{marginBottom:"1.5rem"}})]}),jsx(Ft.Trigger,{className:"absolute bottom-0 inset-x-0 flex items-center gap-2 text-sm text-zinc-400 dark:text-zinc-500 hover:text-zinc-600 dark:hover:text-zinc-300 p-2 justify-start bg-zinc-50/80 dark:bg-zinc-950/80 backdrop-blur-sm border-t border-zinc-200 dark:border-zinc-800 cursor-pointer",children:s?jsxs(Fragment,{children:[jsx(ChevronUp,{className:"h-4 w-4"}),r]}):jsxs(Fragment,{children:[jsx(ChevronDown,{className:"h-4 w-4"}),o]})})]})})}var Lt=Symbol("parsing"),it=class{result;stack;key;state;stringBuffer;numberBuffer;quoteBuffer;escapeNext;unicode;isInTripleQuotes;constructor(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}reset(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}parse(e){return this.reset(),this.add(e)}add(e){for(let n=0;n<e.length;n++){let o=e[n];this.processChar(o);}return this.result}processChar(e){switch(this.state){case "START":this.handleStartState(e);break;case "IN_OBJECT":this.handleObjectState(e);break;case "IN_ARRAY":this.handleArrayState(e);break;case "IN_OBJECT_KEY":this.handleObjectKeyState(e);break;case "AFTER_KEY":this.handleAfterKeyState(e);break;case "IN_OBJECT_VALUE":this.handleObjectValueState(e);break;case "IN_STRING":this.handleStringState(e);break;case "IN_NUMBER":this.handleNumberState(e);break;case "IN_TRUE":this.handleLiteralState(e,"true");break;case "IN_FALSE":this.handleLiteralState(e,"false");break;case "IN_NULL":this.handleLiteralState(e,"null");break;case "IN_UNICODE":this.handleUnicodeState(e);break}}handleStartState(e){if(e==="{")this.startObject();else if(e==="[")this.startArray();else if(!this.isWhitespace(e))throw this.error("must start with { or [","start")}error(e,n){return new Error(`Invalid JSON in ${n}: ${e}`)}handleObjectState(e){if(e==="}")this.endObject();else if(e==='"')this.state="IN_OBJECT_KEY",this.stringBuffer="",this.key=void 0,this.quoteBuffer="";else if(e===",")this.key=void 0;else if(!this.isWhitespace(e))throw this.error(`Invalid character in object: ${e}`,"object")}handleArrayState(e){e==="]"?this.endArray():e===","||this.isWhitespace(e)||this.startValue(e);}handleObjectKeyState(e){e==='"'?(this.state="AFTER_KEY",this.key=this.stringBuffer,this.stringBuffer=""):(this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer));}handleAfterKeyState(e){e===":"?this.state="IN_OBJECT_VALUE":this.isWhitespace(e)||this.isWhitespace(e)||(this.key=this.key+e);}handleObjectValueState(e){this.isWhitespace(e)||this.startValue(e);}handleStringState(e){if(this.escapeNext)this.handleEscapeChar(e);else if(e==="\\")this.escapeNext=true;else if(e==='"'){if(this.quoteBuffer+='"',this.stringBuffer===""&&this.quoteBuffer==='""')this.quoteBuffer="",this.isInTripleQuotes=true;else if(this.stringBuffer&&this.quoteBuffer==='"""'){this.quoteBuffer="",this.isInTripleQuotes=false,this.stringBuffer=this.stringBuffer.replace(/^\n+/,"").replace(/\n+$/,"").trim(),this.endString();return}}else {if(this.quoteBuffer){if(this.quoteBuffer==='"'&&!this.isInTripleQuotes){this.quoteBuffer="",this.endString(),this.processChar(e);return}else if(this.quoteBuffer==='"""'&&this.isInTripleQuotes){this.quoteBuffer="",this.isInTripleQuotes=false,this.endString(),this.processChar(e);return}this.stringBuffer+=this.quoteBuffer,this.quoteBuffer="";}this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer);}}handleNumberState(e){e.match(/[0-9.eE+-]/)?(this.numberBuffer+=e,this.updateValueInParent(parseFloat(this.numberBuffer))):(this.endNumber(),this.processChar(e));}handleLiteralState(e,n){let o=n[this.stringBuffer.length];if(e===o)this.stringBuffer+=e,this.stringBuffer===n?this.endLiteral(n):this.updateValueInParent(this.stringBuffer);else throw this.error(`Invalid literal: expected ${n}`,"literal")}handleUnicodeState(e){if(this.unicode+=e,this.unicode.length===4){let n=parseInt(this.unicode,16);this.stringBuffer+=String.fromCharCode(n),this.unicode="",this.state="IN_STRING";}}handleEscapeChar(e){switch(e){case '"':case "\\":case "/":this.stringBuffer+=e;break;case "b":this.stringBuffer+="\b";break;case "f":this.stringBuffer+="\f";break;case "n":this.stringBuffer+=`
|
|
24
24
|
`;break;case "r":this.stringBuffer+="\r";break;case "t":this.stringBuffer+=" ";break;case "u":this.unicode="",this.state="IN_UNICODE";break;case "`":this.stringBuffer+="`";break;default:throw this.error("Invalid escape character","string")}this.escapeNext=false;}startObject(){let e={[Lt]:true};this.addValueToParent(e),this.stack.push({value:e,key:this.key}),this.key=void 0,this.state="IN_OBJECT";}endObject(){let{value:e,key:n,index:o}=this.stack.pop();if(delete e[Lt],this.stack.length===0)this.state="END",this.result={...e};else {let{value:r}=this.stack[this.stack.length-1];if(Array.isArray(r))o!==void 0?r[o]={...e}:r[r.length-1]={...e};else if(n!==void 0)r[n]={...e};else throw this.error("Key is undefined","object");this.state=this.getParentState();}}startArray(){let e=[];e[Lt]=true,this.addValueToParent(e),this.stack.push({value:e,key:this.key,index:0}),this.key=void 0,this.state="IN_ARRAY";}endArray(){let{value:e,key:n,index:o}=this.stack.pop();if(delete e[Lt],this.stack.length===0)if(this.state="END",Array.isArray(e))this.result=[...e];else throw this.error("Expected array at root level","array");else {let{value:r}=this.stack[this.stack.length-1];Array.isArray(r)?o!==void 0?r[o]=Array.isArray(e)?[...e]:e:r[r.length-1]=Array.isArray(e)?[...e]:e:n!==void 0&&(r[n]=Array.isArray(e)?[...e]:e),this.state=this.getParentState();}}startValue(e){if(e==='"')this.state="IN_STRING",this.stringBuffer="",this.quoteBuffer="",this.addValueToParent("");else if(e.match(/[0-9-]/))this.state="IN_NUMBER",this.numberBuffer=e,this.addValueToParent(parseFloat(e));else if(e==="t")this.state="IN_TRUE",this.stringBuffer="t",this.addValueToParent("t");else if(e==="f")this.state="IN_FALSE",this.stringBuffer="f",this.addValueToParent("f");else if(e==="n")this.state="IN_NULL",this.stringBuffer="n",this.addValueToParent("n");else if(e==="{")this.startObject();else if(e==="[")this.startArray();else throw this.error(`Invalid value start: ${e}`,"value")}endString(){let e=this.stringBuffer;this.stringBuffer="",this.updateValueInParent(e),this.state=this.getParentState();}endNumber(){let e=parseFloat(this.numberBuffer);this.updateValueInParent(e),this.numberBuffer="",this.state=this.getParentState();}endLiteral(e){let n;switch(e){case "true":n=true;break;case "false":n=false;break;case "null":n=null;break;default:throw this.error("Invalid literal","literal")}this.updateValueInParent(n),this.stringBuffer="",this.state=this.getParentState();}addValueToParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:o}=n;if(Array.isArray(o))o.push(e),n.index!==void 0&&n.index++;else if(this.state==="IN_OBJECT_KEY")this.key=e,o[this.key]="";else {if(this.key===void 0)throw this.error("Key is undefined","object");o[this.key]=e;}}}updateValueInParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:o}=n;if(Array.isArray(o))n.index!==void 0?o[n.index-1]=e:o[o.length-1]=e;else if(this.key!==void 0)o[this.key]=e;else if(this.state!=="IN_OBJECT_KEY")throw this.error("Key is undefined","object")}}isWhitespace(e){return e===" "||e===" "||e===`
|
|
25
25
|
`||e==="\r"}getParentState(){return this.stack.length===0?"END":Array.isArray(this.stack[this.stack.length-1].value)?"IN_ARRAY":"IN_OBJECT"}};function qa(t){let e=t.trim();try{return JSON.parse(e)}catch{try{return new it().parse(e)}catch(o){return console.log("content",e),console.error("Error parsing JSON",o),null}}}function Ee(t){return t===" "||t===`
|
|
26
|
-
`||t===" "||t==="\r"}function Ha(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!Ee(t[n]))return t[n];return ""}function Y(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n([\s\S]*?)(?:(?:\n)?```|$)/g,o=n.test(t);if(n.lastIndex=0,o){let r=0,a;for(;(a=n.exec(t))!==null;){let s=t.substring(r,a.index).trim();s&&e.push({content:s,type:"text"});let l=a[1];try{let c=JSON.parse(l);e.push({content:c,type:"json"});}catch{try{let p=new it().parse(l);p?e.push({content:p,type:"json"}):e.push({content:a[0],type:"text"});}catch{e.push({content:a[0],type:"text"});}}r=a.index+a[0].length;}let i=t.substring(r).trim();i&&e.push({content:i,type:"text"});}else {let r="",a=null,i=false,s=0;for(let l=0;l<t.length;l++){let c=t[l],u=Ha(t,l);if(!i&&(c==="{"&&u==='"'||c==="["&&u==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),i=true,a=new it,r=""),i){let p;try{p=a.add(c);}catch(d){if(console.log("currentChunk",r),console.log("currentResult",a?.result),console.warn("Error parsing JSON",d),s>3){i=false,a=null,s=0,r+=c;continue}s++;continue}r+=c,a.state==="END"&&(e.push({content:p,type:"json"}),i=false,a=null,r="");}else r+=c;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function za(t){return t&&typeof t=="object"&&!t[Lt]}function yn(t){return t&&typeof t=="object"&&t[Lt]===true}function De({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(l){console.error("Failed to parse SQL content:",l),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(l=>l.type==="json"):o?.[0];if(!r)return jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:n})]});let{thinking:a,sql_query:i,error:s}=r?.content||{};return s?jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:s})]}):i?jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsx("div",{className:"mb-2",children:jsx(O,{content:a,className:"text-sm max-w-none"})}),i&&jsx("div",{className:"mb-2",children:jsx($t,{language:"sql",value:i,defaultOpen:false})})]}):null}function Ut({children:t,defaultOpen:e=false,wrapperType:n="standard",compact:o=false,className:r}){let[a,i]=useState(e),[s,l]=useState(false),c=useRef(null);useEffect(()=>{let d=c.current;d&&(a||(d.scrollTop=d.scrollHeight),l(d.scrollHeight>d.clientHeight));},[a,t]);let u={standard:"bg-muted/30 border-border",info:"bg-info/10 border-info/30",warning:"bg-warning/10 border-warning/30"},p={standard:"text-muted-foreground hover:text-foreground",info:"text-info hover:text-info/80",warning:"text-warning hover:text-warning/80"};return jsx("div",{className:`relative text-sm ${o?"":"mb-2"} ${r||""}`,children:jsx(Ft.Root,{open:a,onOpenChange:i,className:`border rounded-sm ${u[n]}`,children:jsxs("div",{ref:c,className:`overflow-y-auto ${a?"":"max-h-[200px]"}`,children:[s&&jsx(Ft.Trigger,{className:`sticky top-0 text-center text-xs py-1 transition-opacity w-full cursor-pointer ${p[n]}`,children:a?"Less \u2193":"More \u2191"}),jsx("div",{className:`${o?"px-2 py-1":"p-2"} m-0 overflow-x-auto break-words whitespace-pre-wrap`,children:t})]})})})}function xn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Be({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-muted-foreground/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-foreground/80",children:t})]})}function Gt({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-info/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-info/90",children:t})]})}function Pe({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-warning/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-warning/90",children:t})]})}function Ae({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(u){console.error("Failed to parse codegen content:",u),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(u=>u.type==="json"):o?.[0],{step_by_step:a,thinking:i,code:s,warnings:l,error:c}=r?.content||{};return c?jsx(Ut,{wrapperType:"info",className:e,children:jsx(Gt,{children:c})}):!a&&!s?null:jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsx(O,{content:a,className:"text-sm max-w-none"}),i&&jsx("div",{className:"mb-2",children:jsx(O,{content:i,className:"text-sm max-w-none"})}),s&&jsx("div",{className:"mb-2",children:jsx($t,{language:"python",value:s,defaultOpen:false})}),l&&jsxs("div",{className:"text-sm text-warning",children:[jsx("div",{className:"font-medium",children:"Warnings"}),jsx(O,{content:l,className:"text-sm max-w-none"})]})]})}function Oe({item:t,className:e}){let n=t.parsedJson;if(!n?.length)return null;let o=n.map(s=>s.message?.trim()?{level:s.level,message:s.message,timestamp:s.timestamp,index:s.index}:null).filter(s=>s!==null);if(o.sort((s,l)=>s.index-l.index),o.length===0)return null;let r=o.some(s=>s.level==="error"),a=o.some(s=>s.level==="warning"),i=r?"info":a?"warning":"standard";return jsx("div",{className:`text-foreground leading-normal ${e||""}`,children:jsx(Ut,{wrapperType:i,compact:true,children:o.map((s,l)=>jsx(Qa,{output:s},`${s.level}-${l}`))})})}function Qa({output:t}){switch(t.level){case "output":return jsx(Be,{timestamp:t.timestamp,children:t.message});case "error":return jsx(Gt,{timestamp:t.timestamp,children:t.message});case "warning":return jsx(Pe,{timestamp:t.timestamp,children:t.message});default:return jsx("div",{className:"text-muted-foreground",children:t.message})}}var es={"websearch.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched web for "${n}"`:`Failed to search web for "${n}"`:`Searching web for "${n}"...`:"Web search"}},"webparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"siteparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"resource_definitions.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched resources for "${n}"`:`Failed to search resources for "${n}"`:`Searching resources for "${n}"...`:"Search resources"}},"memory.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched memories for "${n}"`:`Failed to search memories for "${n}"`:`Searching memories for "${n}"...`:"Search memories"}}};function Nr(t){return t&&es[t]||null}function ns(t){if(!t?.result||t.status==="error")return false;let e=t.result;if(typeof e=="string"){let n=e.trim();return n!==""&&n!=="{}"&&n!=="[]"}if(Array.isArray(e))return e.length>0;if(typeof e=="object"&&e!==null){let n=Object.keys(e);return n.length===0?false:n.some(o=>{let r=e[o];return r==null?false:typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:typeof r=="object"?Object.keys(r).length>0:true})}return true}function rs({actionType:t}){let n=Nr(t)?.icon||Wrench;return jsx(n,{className:"h-4 w-4"})}function os({actionType:t,input:e,name:n,result:o,invocation:r}){if(o?.finished_message)return jsx("span",{children:o.finished_message});if(o?.running_message)return jsx("span",{children:o.running_message});if(!o&&r?.running_message)return jsx("span",{children:r.running_message});let a=Nr(t);if(a)return jsx("span",{children:a.getLabel(e,o?.status)});let i=o?`Completed ${n}`:`Running ${n}...`;return jsx("span",{children:i})}function Jt({toolGroup:t,ContentComponent:e,className:n}){let[o,r]=useState(false),a=L(),i=e??a?.ContentComponent,s=t.invocation,l=t.result,c=ns(l),u=s?.action_type||l?.action_type,p=s?.input||l?.input,d=s?.name||l?.name,f=l?.status==="error"?"text-gray-500/80 dark:text-gray-400/80":"text-gray-500 dark:text-gray-400";return jsxs(Ft.Root,{open:o,onOpenChange:r,className:`relative w-full max-w-4xl space-y-2 leading-normal ${n||""}`,children:[jsxs(Ft.Trigger,{className:`flex items-center gap-2 text-sm transition-colors w-full ${f} ${c?"hover:text-gray-900 dark:hover:text-gray-100 cursor-pointer":"cursor-default"}`,disabled:!c,children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx(rs,{actionType:u}),jsx(os,{actionType:u,input:p,name:d,result:l,invocation:s})]}),c&&jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${o?"rotate-180":""}`})]}),c&&l&&jsx(Ft.Content,{children:jsx("div",{className:"pl-6 mt-2",children:i?jsx(i,{content:{content:l.result,content_type:l.ui_content_type||"text",ui_content_type:l.ui_content_type||"text"}}):jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(l.result,null,2)})})})]})}var ht={Success:"success",Error:"error",RequiresInfo:"requires info"};function ls(t){return t?t===ht.Success?"finished":t===ht.Error||t===ht.RequiresInfo?"failed":"loading":"loading"}function Dr(t){return t?t!==ht.Success&&t!==ht.Error&&t!==ht.RequiresInfo:true}function cs(t,e){let n=e||"agent",o=R(t?.message);return o||(t?.status===ht.Success?`Finished ${n}`:`Running ${n}...`)}function Ve({content:t,botInvocation:e,isLoading:n=false,defaultOpen:o,adminLinkHref:r,adminLinkText:a="Open in Agent Designer",showAdminLink:i=false,onAdminClick:s,onExpand:l,EventsComponent:c,ContentComponent:u,className:p}){let d=()=>o!==void 0?o:e?.currentStatus?Dr(e.currentStatus.status):false,[f,m]=useState(d),[g,h]=useState(false),x=useRef(null);if(useEffect(()=>{if(e?.currentStatus){let I=e.currentStatus.status;if(x.current!==I&&(x.current=I,!g)){let J=Dr(I);J&&!f?m(true):!J&&f&&m(false);}}},[e,g,f]),useEffect(()=>{f&&e&&l&&l(t.invocation_id,t.bot_id,t.bot_name);},[f,e,l,t]),n&&!e)return jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${p||""}`,children:[jsx(mt,{status:"loading"}),jsxs("span",{children:["Loading ",t.bot_name,"..."]})]});if(!e)return null;let b=ls(e.currentStatus?.status),k=cs(e.currentStatus,t.bot_name),T=I=>{m(I),h(true);},C=I=>{s&&(I.preventDefault(),s(t.invocation_id,t.bot_id));},E=e.eventsByID&&Object.keys(e.eventsByID).length>0;return jsxs(Ft.Root,{open:f,onOpenChange:T,className:`relative w-full max-w-4xl space-y-2 leading-normal bot-invocation-content ${p||""}`,children:[jsxs("div",{className:"flex items-center justify-between",children:[jsxs(Ft.Trigger,{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsx(mt,{status:b}),k]}),jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${f?"transform rotate-180":""}`})]}),i&&(r||s)&&jsxs("a",{href:r||"#",onClick:s?C:void 0,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[a,jsx(ArrowUpRight,{className:"h-3.5 w-3.5"})]})]}),jsx(Ft.Content,{children:jsx("div",{className:"space-y-2 max-w-3xl",children:E?c?jsx(c,{eventsByID:e.eventsByID,defaultOpen:f}):jsx(Bt,{eventsByID:e.eventsByID,ContentComponent:u}):jsx("span",{className:"text-sm text-muted-foreground",children:"No events to display"})})})]})}function vn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"q"in t)o=t.q;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.q&&Array.isArray(a.q)&&(o=a.q);}catch{o=[t];}let r=o.filter(a=>a&&a.trim()!=="");return r.length===0?null:jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsx(Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsx(Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsx("span",{className:"line-clamp-1",children:a})]},i))})}function Cn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"integration_queries"in t)o=t.integration_queries;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.integration_queries&&Array.isArray(a.integration_queries)&&(o=a.integration_queries);}catch{return null}let r=o.filter(a=>a&&a.query&&a.query.trim()!=="");return r.length===0?null:jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsx(Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsx(Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsx("span",{className:"line-clamp-1",children:a.query})]},i))})}function Sn(){return jsxs("span",{className:"inline-flex gap-1 text-muted-foreground",children:[jsx("span",{className:"animate-bounce",style:{animationDelay:"0ms"},children:"\u25CF"}),jsx("span",{className:"animate-bounce",style:{animationDelay:"150ms"},children:"\u25CF"}),jsx("span",{className:"animate-bounce",style:{animationDelay:"300ms"},children:"\u25CF"})]})}function wn(){return jsx("div",{className:"flex items-center justify-center py-8",children:jsx(Loader2,{className:"animate-spin text-muted-foreground",size:24})})}function xs(t){if(t.content_type==="bot_invocation"||t.content_type==="bot_invocation_result"||t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;if(t.content_type==="tool_invocation")return "tool_invocation";if(t.content_type==="tool_result")return "tool_result";if(!t.content||typeof t.content!="object")return null;let e=t.content;return "action_type"in e&&"name"in e&&"input"in e&&e.action_type!=="bot.invoke"?"result"in e?"tool_result":"tool_invocation":null}function re({content:t,className:e,components:n}){let r=L()?.onSuggestionClick,a=useMemo(()=>c=>jsx(re,{...c,components:n}),[n]);if(t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;let i=xs(t),s;i?s=i:(s=R(t.ui_content_type)||t.content_type,s!=="ui_generation"&&typeof t.content=="string"&&(t.content.includes('{"children":')||t.content.includes('"children":'))&&(s="ui_generation"));let l=n?.[s];if(l)return jsx(l,{content:t,className:e});switch(s){case "text":return jsx(Xt,{content:_n(t),className:e});case "markdown":return jsx(O,{content:_n(t),className:e});case "thinking":case "redacted_thinking":return jsx(_e,{item:t,className:e});case "json":return jsx(st,{content:t.content,className:e});case "codegen_json":return jsx(Ae,{item:t,className:e});case "sql_generation":return jsx(De,{item:t,className:e});case "codeexec_output":return jsx(Oe,{item:t,className:e});case "log":return jsx(Se,{item:t,className:e});case "websearch":case "websearch_output":case "web_search":return jsx(we,{item:t,className:e});case "search_queries":return jsx(vn,{content:t.content,className:e});case "integration_queries":return jsx(Cn,{content:t.content,className:e});case "webparse":case "webparse_output":case "web_parse":return jsx(Ne,{item:t,className:e});case "tool_group":return jsx(Jt,{toolGroup:t.content,ContentComponent:a,className:e});case "bot_invocation":{let c=t.content,u=t.botInvocation;return jsx(Ve,{content:c,botInvocation:u,ContentComponent:a,className:e})}case "chart":case "ui_generation":{let c=t.invocation_id;if(t.chartConfig&&t.chartData)return jsx(Pt,{config:t.chartConfig,data:t.chartData,className:e});let u=t.parsedJson;if(u&&Array.isArray(u)&&u.length>0)return jsx(Fragment,{children:u.map((d,f)=>{if(d.type==="text"){let m=d.content;return jsx(O,{content:m,className:e},`${f}-${m.length}`)}else if(d.type==="json"){let m=d.content;return yn(m)?m?.children?.some(x=>x?._type==="TextMarkdown")?jsx(Sn,{},f):jsx(wn,{},f):m?.children&&Array.isArray(m.children)?jsx(at__default.Fragment,{children:jsx(Ot,{nodes:m.children,className:e,invocationId:c,onSuggestionClick:r})},`${f}-${m.children.length}`):jsx(st,{content:m,className:e},`${f}-json`)}return null})});let p=typeof t.content=="string"?t.content:null;if(p){let d=Y(p);if(Array.isArray(d))return jsx(Fragment,{children:d.map((f,m)=>{if(f.type==="text"){let g=f.content;return jsx(O,{content:g,className:e},`${m}-${g.length}`)}else if(f.type==="json"){let g=f.content;return g?.children&&Array.isArray(g.children)?jsx(at__default.Fragment,{children:jsx(Ot,{nodes:g.children,className:e,invocationId:c,onSuggestionClick:r})},`${m}-${g.children.length}`):jsx(st,{content:g,className:e},`${m}-json`)}return null})})}if(typeof t.content=="object"&&t.content!==null){let d=t.content;if(d?.children&&Array.isArray(d.children))return jsx(Ot,{nodes:d.children,className:e,invocationId:c,onSuggestionClick:r})}return jsx(st,{content:t.content,className:e})}case "table":return t.tableColumns&&t.tableData?jsx(Rt,{columns:t.tableColumns,data:t.tableData,className:e}):jsx(st,{content:t.content,className:e});case "bot_invocation_result":case "security_check_json":return null;case "tool_invocation":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{},id:c.id||"",name:c.name||"",input:c.input||{},description:c.description,action_type:c.action_type,running_message:c.running_message}};return jsx(Jt,{toolGroup:u,ContentComponent:a,className:e})}case "tool_result":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{}},result:{invocation_id:c.id||"",result:c.result}},p={...u,invocation:{...u.invocation,id:c.id||"",name:c.name||"",input:c.input||{},action_type:c.action_type,description:c.description},result:{...u.result,id:c.id||"",name:c.name||"",input:c.input||{},result:c.result,status:c.status||"success",action_type:c.action_type,description:c.description,ui_content_type:c.ui_content_type}};return jsx(Jt,{toolGroup:p,ContentComponent:a,className:e})}default:return jsx(Xt,{content:_n(t),className:e})}}function _n(t){return typeof t.content=="string"?t.content:JSON.stringify(t.content)}function bs({result:t,isStreaming:e,className:n,components:o,streamingText:r}){let a=t?Pr(t):[];return r&&a.length===0?jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsx("span",{className:"text-sm text-gray-500",children:"Streaming response..."})]}),jsx("div",{className:"border rounded-lg p-4 whitespace-pre-wrap",children:r})]}):a.length===0&&!e?null:jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[a.map((i,s)=>jsx("div",{children:jsx(re,{content:i,components:o})},i.id||s)),e&&a.length===0&&!r&&jsxs("div",{className:"flex items-center gap-2",children:[jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsx("span",{className:"text-sm text-gray-500",children:"Processing..."})]})]})}function Pr(t){let e=[],n=new Set;if(t.events)for(let o of t.events){let r=o.metadata,a=o.payload;if(r?.user_visibility==="visible"&&a?.status==="success"&&a?.output){let i=a.output;if(i.content&&Array.isArray(i.content))for(let s=0;s<i.content.length;s++){let l=i.content[s],c=l.id||`event-result-${s}`;if(n.has(c))continue;n.add(c);let u=r?.ui_content_type;if(!u&&typeof l.content=="string")try{JSON.parse(l.content)?.children&&(u="ui_generation");}catch{(l.content.includes('{"children":')||l.content.includes('{ "children":'))&&(u="ui_generation");}e.push({id:c,content_type:l.content_type||"text",ui_content_type:u,content:l.content,data:l.data,chartConfig:l.chartConfig,chartData:l.chartData,tableColumns:l.tableColumns,tableData:l.tableData});}}}if(e.length===0&&t.result?.output?.content){let o=t.result.output.content;if(Array.isArray(o))for(let r=0;r<o.length;r++){let a=o[r],i=a.id||`result-${r}`;if(n.has(i))continue;n.add(i);let s=a.ui_content_type;if(!s&&typeof a.content=="string")try{JSON.parse(a.content)?.children&&(s="ui_generation");}catch{(a.content.includes('{"children":')||a.content.includes('{ "children":'))&&(s="ui_generation");}e.push({...a,id:i,ui_content_type:s});}}return e}function V(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function vs(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function Vr(t){return t.contents.length===0?null:t.contents[0]||null}function En(t,e){let n=V(t);switch(n){case "message":return t;case "step":let o=t;if(e){let i=o.eventsByID[e]?.Message;return i||Lr({},"",e)}let a=Object.keys(o.eventsByID).reverse();for(let i of a){let s=o.eventsByID[i];if(s&&s.Message)return s.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function Cs(t,e){switch(V(t)){case "message_content":return t;case "output_content":return t;case "message":return Wt(t,e);case "output":return qt(t,e);case "step":let o=Ge(t,e);return o?qt(o,e):null;default:return null}}function Wt(t,e){let n=V(t);switch(n){case "message_content":return t;case "message":let o=En(t);if(!o)throw new Error("Unable to find message to add content to");return e?o.contentsByID[e]:vs(o);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function qt(t,e){let n=V(t);switch(n){case "output_content":return t;case "output":let o=t;return e?o.contentsByID[e]||null:o.contents.length<=0?null:o.contents[o.contents.length-1]||null;case "step":let a=Ge(t,e);return a?qt(a):null;case "invocation":if(!e)return null;let i=t.eventsByID[e];return !i||!i.Output?null:qt(i.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function Dn(t,e){let n=V(t),o=null;switch(n){case "invocation":return t;case "message_content":if(o=t.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message content");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return o;case "message":if(o=Vr(t)?.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return o;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function Ge(t,e){let n=V(t);switch(n){case "output":return t;case "step":let o=t;if(e){let s=o.eventsByID[e]?.Output;if(!s)throw new Error("Unable to find output with id "+e);return s}let a=Object.keys(o.eventsByID).reverse();for(let s of a){let l=o.eventsByID[s];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Mr(t,e){let n=V(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let o=t.eventsByID[e];if(!o||!o.type||o.type!=="result_handler"||!o.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return o.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function $r(t,e){let n=V(t),o=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");o=t;let r=o.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let i=t.eventsByID[e];if(!i)throw new Error("Unable to find step on result handler with id "+e);if(!i.Step)throw new Error("Unable to find step on result handler with id "+e);return i.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Nn=class extends Error{};function _s(t,e,n){let o=null,r=e[0],a=e[1];n[r]=a;try{switch(r){case "message":o=En(t,a);break;case "content":o=Wt(t,a);break;case "step":o=$r(t,a);break;case "output":o=Ge(t,a);break;case "output_content":o=qt(t,a);break;case "invocation":o=Dn(t,a);break;case "result_handler":o=Mr(t,a);break}}catch(i){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),i}if(!o)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",o),new Nn(`Unable to find next entity for path ${e.join("/")}`);return o}function Lr(t,e,n,o){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Ss(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function ws(t,e){let n=t.metadata?.ui_content_type,o=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;if(Yt(t.metadata.content_type,n))try{r=Y(o);}catch(a){console.error("Failed to parse message content as JSON:",a),r=[{content:o,type:"text"}];}return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:o,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function Ns(t,e,n){let o=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:o.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:o.action_type,Valid:true},key:{String:o.key,Valid:true},bot_id:o.bot_id,result_handler_id:"",step_order:{Int32:o.step_order,Valid:true},output_content_type:{String:o.content_type,Valid:true},execution_mode:{String:o.execution_mode,Valid:true},output_behaviour:{String:o.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:o.output_channels||[],running_message:{String:o.running_message||"",Valid:!!o.running_message},finished_message:{String:o.finished_message||"",Valid:!!o.finished_message},depends_on:[],eventsByID:{},currentStatus:null}}function Is(t,e,n){let o=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:o.result_handler_id||e,step_invocation_id:o.step_invocation_id||"",type:o.type||"",if_conditions:o.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:o.output_content_type||"",result_handler_order:o.result_handler_order||0,eventsByID:{}}}function Es(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Rr(t,e,n,o=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:o??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Ar(t,e,n,o=null){let r=null,a=t.metadata?.ui_content_type;if(Yt(t.metadata.content_type,a))try{r=Y(t.payload);}catch(i){console.error("Failed to parse step output content as JSON:",i),r=[{content:t.payload,type:"text"}];}return {_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:o||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:a?{String:a,Valid:true}:{String:"",Valid:false},output:null}}function Ds(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function oe(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Ur(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function Tn(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function Bn(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function Ts(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function Bs(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}var Ps=new Set(["=","("]);function Rs(t){if(!t||t.length===0)return true;let e=t[t.length-1];return !Ps.has(e)}function Pn(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!Yt(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){let o=t.content.slice(0,-1);if(Rs(o)){t._charBuffer="{";continue}}if(t._charBuffer&&Ee(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new it;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson=[...t.parsedJson.slice(0,-1),r]):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let o=t._jsonParser.add(n);t._currentContent.content=o,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(o){if(console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",o),t._isInJson=false,t._jsonParser=void 0,t.parsedJson&&t.parsedJson.length>0){let r=t.parsedJson[t.parsedJson.length-1];if(r.type==="json"){let a=t.content.lastIndexOf("{"),i=t.content.slice(a);r.type="text",r.content=i,t._currentContent=r;}}}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function As(t,e){return Pn(t,e)}function Or(t,e){return Pn(t,e)}function In(t,e){let n=V(t);switch(n){case "message":return tt(t,e);case "message_content":return Ue(t,e);case "step":return Vs(t,e);case "output":return Ms(t,e);case "output_content":return $s(t,e);case "invocation":return ae(t,e);case "result_handler":return Ls(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function Os(t,e){for(let n of e)t=In(t,n);return t}function tt(t,e){let n=En(t);if(!n)throw new Error("Unable to find message to add content to");let o=V(e),r=null;switch(o){case "message_content":if(r=e,!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let s=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,s),r,...n.contents.slice(s+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let a=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=Ue(n.contents[0],a),tt(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let i=Dn(r);if(!i)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=ae(i,e),tt(n,r);case "status":if(n.contents.length>0){let s=n.contents[0];if(s?.botInvocation){let l=Ue(s,e);return tt(n,l)}}return {...n};default:throw new Error(`Unable to add update message child for child type ${o}`)}}function Ue(t,e){let n=Wt(t);if(!n)throw new Error("Unable to find message content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};case "status":return n.botInvocation&&(n.botInvocation=ae(n.botInvocation,e)),{...n};default:throw new Error(`Unable to add update message content child for child type ${o}`)}}function Vs(t,e){let n=$r(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let o=V(e),r=null;switch(o){case "output":let a=e;return r=Tn(a),n.eventsByID={...n.eventsByID,[a.output.id]:r},{...n};case "message":let i=e;return r=Ts(i),n.eventsByID={...n.eventsByID,[i.message.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "result_handler":let l=e;return r=Bs(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${o}`)}}function Ms(t,e){let n=Ge(t);if(!n)throw new Error("Unable to find step output to add content to");let o=V(e);switch(o){case "output_content":let r=e;if(!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let a=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,a),r,...n.contents.slice(a+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${o}`)}}function $s(t,e){let n=qt(t);if(!n)throw new Error("Unable to find step output content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${o}`)}}function ae(t,e){let n=Dn(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let o=V(e),r;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},n.currentStatus=s,{...n};default:throw new Error(`Unable to add update invocation for entity type ${o}`)}}function Ls(t,e){let n=Mr(t);if(!n)throw new Error("Unable to find result handler to add content to");let o=V(e),r=null;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${o}`)}}function Us(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Fe(t,e,n,o,r,a=null,i=[],s={}){if(!a&&Object.keys(r).length>0){let p,d;if(n.length>=2&&n[0]==="message"?(d=n[1],p=r[d],p||(p=Object.values(r)[0],d=Object.keys(r)[0])):(p=Object.values(r)[Object.values(r).length-1],d=Object.keys(r)[Object.keys(r).length-1]),s.message=d,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(p.contentsByID).length>0&&e.metadata.message_content_id){let f=e.metadata.message_content_id,m=p.contentsByID[f];m&&(a=m);}a?i=[p]:a=p;}if(n.length<=2&&Us(t)){let p=n[1],d=[],f,m,g,h,x;switch(t){case "bot started":case "bot resumed":if(!a)throw new Error("Unable to find message to add content to");let b=Ds(e);if(a._type==="message_content"){if(m=a,!m.id)throw new Error("Unable to find message content id");if(g=r[m.message_id],!g)throw new Error("Unable to find message to add content to");if(h=Wt(g,m.id),!h)throw new Error("Unable to find message content to add content to");let E=Ue(h,b);r[m.message_id]={...tt(g,E)};}d.push(b);break;case "message created":return r[p]=Lr(e,o,p),null;case "create message content":if(!a)throw new Error("Unable to find message to add content to");if(x=Ss(e,s),a._type==="output"){f=a,d.push(Rr(e,p,s,"hidden"));let E=e.payload.message_id;if(E||(E=i[0].message.id),g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(f=a,g=r[f.message_id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(f=a,g=r[f.message.id],!g)throw new Error("Unable to find message to add content to");d.push(x);}r[g.message.id]={...tt(g,x)};break;case "message content result":if(!a)throw new Error("Unable to find message to add content to");let k=null;if(a._type==="output"){d.push(Ar(e,p,s,"hidden"));let E=e.payload.message_id||s.message;if(E?k=i.find(I=>I.message.id===E):k=i[0],g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(k=i[0],g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(k=a,g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}let T=e.metadata.message_content_id;if(!T)throw new Error("Unable to find message content id");let C=Wt(k,T);if(C){C.state="completed";let E=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;C.content=E,r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);}else C=ws(e,s),r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);break;case "step started":d.push(Ns(e,p,s));break;case "result handler started":d.push(Is(e,p));break;case "step output created":d.push(Es(e,p,a));break;case "create step output content":d.push(Rr(e,p,s));break;case "step output content result":d.push(Ar(e,p,s));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return d.length?!a||a._type==="message_content"&&d.length===1&&d[0]._type==="message_content"?d[0]:Os(a,d):null}if(!a)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let p=null;try{p=Cs(a);}catch{}switch(t){case "message content delta":if(!p)throw new Error("Unable to find message content");let d=null,f=null,m=null;if(a._type==="output_content"){d=Or(a,e.payload);let b=e.metadata.message_content_id;if(!b)throw new Error("Unable to find message content id from entity ids");let k=s.message;if(m=i.find(T=>T.message.id===k),!m)throw new Error("Unable to find message to add content to");f=Wt(m,b);}else {if(f=p,m=i[i.length-1],!m)throw new Error("Unable to find message to add content to");if(m._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!f)throw new Error("Unable to find message content");let g=r[m.message.id];if(!g)throw new Error("Unable to find message to add content to");let h=As(f,e.payload);return r[g.message.id]={...tt(g,h)},a._type==="message_content"&&(d=h),d;case "step output content delta":return Or(p,e.payload);case "status":if(a._type==="step"&&(a.currentStatus=oe(e)),a._type==="invocation"&&(a.currentStatus=oe(e)),a._type==="message_content"){let x=a;if(x.botInvocation)return x.botInvocation.currentStatus=oe(e),{...x}}if(a._type==="message"){let x=a,b=Vr(x);if(b?.botInvocation)return b.botInvocation.currentStatus=oe(e),tt(x,b)}return In(a,oe(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),c=_s(a,n,s),u=Fe(t,e,l,o,r,c,[...i,a],s);return u?In(a,{...u}):a}function Fs(t){return t.split("/").filter(Boolean)}function Fr(t={}){let e=bt(),[n,o]=useState(null),[r,a]=useState(false),[i,s]=useState(null),[l,c]=useState([]),u=useRef(null),p=useRef(t.threadId);t.threadId!==p.current&&(p.current=t.threadId);let d=useCallback(()=>{u.current&&(u.current.abort(),u.current=null);},[]),f=useCallback(h=>{o(h),p.current=h.id;},[]),m=useCallback(async h=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useThread.");if(!e.client.sendMessage)throw new Error("ErdoClient does not support sendMessage. Make sure you are using @erdoai/server client.");if(!e.client.createThread)throw new Error("ErdoClient does not support createThread. Make sure you are using @erdoai/server client.");d(),u.current=new AbortController,a(true),s(null),c([]);let x={};try{let b=p.current;if(!b){let C=await e.client.createThread();o(C),p.current=C.id,b=C.id;}for await(let C of e.client.sendMessage(b,{content:h,botKey:t.botKey})){if(u.current?.signal.aborted)break;t.onEvent?.(C);let E=C.type||"",I=C.metadata||{},J=Fs(I.path||""),A={payload:C.payload,metadata:{path:I.path||"",...I}};try{Fe(E,A,J,b,x);}catch(kt){console.error("Error handling SSE event:",kt,E);}c(Object.values(x));}let k=Object.values(x);c(k);let T=k.flatMap(C=>C.contents||[]).filter(C=>C.user_visibility==="visible").map(C=>({id:C.id,content_type:C.content_type,ui_content_type:R(C.ui_content_type),content:C.content,parsedJson:C.parsedJson,botInvocation:C.botInvocation}));t.onFinish?.(T);}catch(b){let k=b instanceof Error?b:new Error(String(b));throw s(k),t.onError?.(k),k}finally{a(false),u.current=null;}},[e.client,t,d]),g=useMemo(()=>{let h=l.flatMap(k=>k.contents||[]).filter(k=>k.user_visibility==="visible");return ge(h).map(k=>({id:k.id,content_type:k.content_type,ui_content_type:R(k.ui_content_type),content:k.content,parsedJson:k.parsedJson,botInvocation:k.botInvocation}))},[l]);return {thread:n,isStreaming:r,error:i,activeMessages:l,streamingContents:g,sendMessage:m,cancel:d,setThread:f}}export{dt as BarChart,Ve as BotInvocationContent,K as Chart,Ht as ChartContainer,Pt as ChartContent,Ke as ChartLegend,Ze as ChartLegendContent,$n as ChartStyle,He as ChartTooltip,ze as ChartTooltipContent,Oe as CodeexecContent,Ae as CodegenContent,$t as CollapsibleCodeBlock,re as Content,Zn as DatasetChart,At as DatasetDownload,Yn as DatasetTable,ln as DefaultChartNode,dn as DefaultDownloadButtonNode,pn as DefaultSuggestionsNode,cn as DefaultTableNode,un as DefaultTextMarkdownNode,On as ErdoProvider,bs as ErdoUI,ut as ErrorBoundary,on as ExecutionStatus,Ut as ExpandableOutputContent,It as HeatmapChart,be as InvocationEvent,Bt as InvocationEvents,lr as InvocationStatus,it as JSONStreamParser,st as JsonContent,St as LineChart,wn as Loader,fn as Log,Se as LogContent,O as MarkdownContent,ye as Output,wt as PieChart,Nt as ScatterChart,De as SqlContent,mt as StatusSpinner,Gt as StderrText,Be as StdoutText,Pe as StdwarnText,ke as StepInvocation,xe as StepInvocationStatus,Rt as TableContent,Xt as TextContent,_e as ThinkingContent,Jt as ToolGroupContent,Ot as UIGenerationNodes,Ne as WebParseContent,we as WebSearchContent,Sn as WritingLoader,G as cn,mn as defaultNodeComponents,Pr as extractContentItems,z as formatValue,Pn as handleIncrementalMixedJsonParsing,Fe as handleSSEEvent,Yt as isJsonLike,nr as isNullString,za as isParsingComplete,yn as isParsingInProgress,Ee as isWhitespaceChar,qa as parseCompleteJson,Y as parseMixedJson,Ln as parseToDate,Dt as resolveKeyFromData,Hn as toSnakeCase,R as unwrapNullString,Zo as unwrapNullStringOr,ce as useChartZoom,de as useDatasetContents,bt as useErdoConfig,L as useErdoConfigOptional,pe as useMultipleDatasetContents,Fr as useThread};
|
|
26
|
+
`||t===" "||t==="\r"}function Ha(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!Ee(t[n]))return t[n];return ""}function Y(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n/g,o=n.test(t);if(n.lastIndex=0,o){let r=0,a;for(;(a=n.exec(t))!==null;){let s=t.substring(r,a.index).trim();s&&e.push({content:s,type:"text"});let l=a.index+a[0].length,c=[],u=l;for(;;){let f=t.indexOf("```",u);if(f===-1)break;c.push(f),u=f+3;}let p=null,d=t.length;for(let f of c){let m=t.substring(l,f);try{p=JSON.parse(m),d=f+3;break}catch{try{let g=new it,h=g.parse(m);if(h&&g.state==="END"){p=h,d=f+3;break}}catch{}}}if(p)e.push({content:p,type:"json"});else {let f=t.substring(a.index,d);e.push({content:f,type:"text"});}r=d,n.lastIndex=d;}let i=t.substring(r).trim();i&&e.push({content:i,type:"text"});}else {let r="",a=null,i=false,s=0;for(let l=0;l<t.length;l++){let c=t[l],u=Ha(t,l);if(!i&&(c==="{"&&u==='"'||c==="["&&u==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),i=true,a=new it,r=""),i){let p;try{p=a.add(c);}catch(d){if(console.log("currentChunk",r),console.log("currentResult",a?.result),console.warn("Error parsing JSON",d),s>3){i=false,a=null,s=0,r+=c;continue}s++;continue}r+=c,a.state==="END"&&(e.push({content:p,type:"json"}),i=false,a=null,r="");}else r+=c;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function za(t){return t&&typeof t=="object"&&!t[Lt]}function yn(t){return t&&typeof t=="object"&&t[Lt]===true}function De({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(l){console.error("Failed to parse SQL content:",l),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(l=>l.type==="json"):o?.[0];if(!r)return jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:n})]});let{thinking:a,sql_query:i,error:s}=r?.content||{};return s?jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:s})]}):i?jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsx("div",{className:"mb-2",children:jsx(O,{content:a,className:"text-sm max-w-none"})}),i&&jsx("div",{className:"mb-2",children:jsx($t,{language:"sql",value:i,defaultOpen:false})})]}):null}function Ut({children:t,defaultOpen:e=false,wrapperType:n="standard",compact:o=false,className:r}){let[a,i]=useState(e),[s,l]=useState(false),c=useRef(null);useEffect(()=>{let d=c.current;d&&(a||(d.scrollTop=d.scrollHeight),l(d.scrollHeight>d.clientHeight));},[a,t]);let u={standard:"bg-muted/30 border-border",info:"bg-info/10 border-info/30",warning:"bg-warning/10 border-warning/30"},p={standard:"text-muted-foreground hover:text-foreground",info:"text-info hover:text-info/80",warning:"text-warning hover:text-warning/80"};return jsx("div",{className:`relative text-sm ${o?"":"mb-2"} ${r||""}`,children:jsx(Ft.Root,{open:a,onOpenChange:i,className:`border rounded-sm ${u[n]}`,children:jsxs("div",{ref:c,className:`overflow-y-auto ${a?"":"max-h-[200px]"}`,children:[s&&jsx(Ft.Trigger,{className:`sticky top-0 text-center text-xs py-1 transition-opacity w-full cursor-pointer ${p[n]}`,children:a?"Less \u2193":"More \u2191"}),jsx("div",{className:`${o?"px-2 py-1":"p-2"} m-0 overflow-x-auto break-words whitespace-pre-wrap`,children:t})]})})})}function xn(t){return new Date(t).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Be({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-muted-foreground/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-foreground/80",children:t})]})}function Gt({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-info/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-info/90",children:t})]})}function Pe({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-warning/60 mr-2 select-none",children:xn(e)}),jsx("span",{className:"text-warning/90",children:t})]})}function Ae({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),o=t.parsedJson;if(!o)try{o=Y(n);}catch(u){console.error("Failed to parse codegen content:",u),o=[{content:n||"",type:"text"}];}let r=Array.isArray(o)?o.find(u=>u.type==="json"):o?.[0],{step_by_step:a,thinking:i,code:s,warnings:l,error:c}=r?.content||{};return c?jsx(Ut,{wrapperType:"info",className:e,children:jsx(Gt,{children:c})}):!a&&!s?null:jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[a&&jsx(O,{content:a,className:"text-sm max-w-none"}),i&&jsx("div",{className:"mb-2",children:jsx(O,{content:i,className:"text-sm max-w-none"})}),s&&jsx("div",{className:"mb-2",children:jsx($t,{language:"python",value:s,defaultOpen:false})}),l&&jsxs("div",{className:"text-sm text-warning",children:[jsx("div",{className:"font-medium",children:"Warnings"}),jsx(O,{content:l,className:"text-sm max-w-none"})]})]})}function Oe({item:t,className:e}){let n=t.parsedJson;if(!n?.length)return null;let o=n.map(s=>s.message?.trim()?{level:s.level,message:s.message,timestamp:s.timestamp,index:s.index}:null).filter(s=>s!==null);if(o.sort((s,l)=>s.index-l.index),o.length===0)return null;let r=o.some(s=>s.level==="error"),a=o.some(s=>s.level==="warning"),i=r?"info":a?"warning":"standard";return jsx("div",{className:`text-foreground leading-normal ${e||""}`,children:jsx(Ut,{wrapperType:i,compact:true,children:o.map((s,l)=>jsx(Qa,{output:s},`${s.level}-${l}`))})})}function Qa({output:t}){switch(t.level){case "output":return jsx(Be,{timestamp:t.timestamp,children:t.message});case "error":return jsx(Gt,{timestamp:t.timestamp,children:t.message});case "warning":return jsx(Pe,{timestamp:t.timestamp,children:t.message});default:return jsx("div",{className:"text-muted-foreground",children:t.message})}}var es={"websearch.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched web for "${n}"`:`Failed to search web for "${n}"`:`Searching web for "${n}"...`:"Web search"}},"webparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"siteparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"resource_definitions.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched resources for "${n}"`:`Failed to search resources for "${n}"`:`Searching resources for "${n}"...`:"Search resources"}},"memory.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched memories for "${n}"`:`Failed to search memories for "${n}"`:`Searching memories for "${n}"...`:"Search memories"}}};function Nr(t){return t&&es[t]||null}function ns(t){if(!t?.result||t.status==="error")return false;let e=t.result;if(typeof e=="string"){let n=e.trim();return n!==""&&n!=="{}"&&n!=="[]"}if(Array.isArray(e))return e.length>0;if(typeof e=="object"&&e!==null){let n=Object.keys(e);return n.length===0?false:n.some(o=>{let r=e[o];return r==null?false:typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:typeof r=="object"?Object.keys(r).length>0:true})}return true}function rs({actionType:t}){let n=Nr(t)?.icon||Wrench;return jsx(n,{className:"h-4 w-4"})}function os({actionType:t,input:e,name:n,result:o,invocation:r}){if(o?.finished_message)return jsx("span",{children:o.finished_message});if(o?.running_message)return jsx("span",{children:o.running_message});if(!o&&r?.running_message)return jsx("span",{children:r.running_message});let a=Nr(t);if(a)return jsx("span",{children:a.getLabel(e,o?.status)});let i=o?`Completed ${n}`:`Running ${n}...`;return jsx("span",{children:i})}function Jt({toolGroup:t,ContentComponent:e,className:n}){let[o,r]=useState(false),a=L(),i=e??a?.ContentComponent,s=t.invocation,l=t.result,c=ns(l),u=s?.action_type||l?.action_type,p=s?.input||l?.input,d=s?.name||l?.name,f=l?.status==="error"?"text-gray-500/80 dark:text-gray-400/80":"text-gray-500 dark:text-gray-400";return jsxs(Ft.Root,{open:o,onOpenChange:r,className:`relative w-full max-w-4xl space-y-2 leading-normal ${n||""}`,children:[jsxs(Ft.Trigger,{className:`flex items-center gap-2 text-sm transition-colors w-full ${f} ${c?"hover:text-gray-900 dark:hover:text-gray-100 cursor-pointer":"cursor-default"}`,disabled:!c,children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx(rs,{actionType:u}),jsx(os,{actionType:u,input:p,name:d,result:l,invocation:s})]}),c&&jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${o?"rotate-180":""}`})]}),c&&l&&jsx(Ft.Content,{children:jsx("div",{className:"pl-6 mt-2",children:i?jsx(i,{content:{content:l.result,content_type:l.ui_content_type||"text",ui_content_type:l.ui_content_type||"text"}}):jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(l.result,null,2)})})})]})}var ht={Success:"success",Error:"error",RequiresInfo:"requires info"};function ls(t){return t?t===ht.Success?"finished":t===ht.Error||t===ht.RequiresInfo?"failed":"loading":"loading"}function Dr(t){return t?t!==ht.Success&&t!==ht.Error&&t!==ht.RequiresInfo:true}function cs(t,e){let n=e||"agent",o=R(t?.message);return o||(t?.status===ht.Success?`Finished ${n}`:`Running ${n}...`)}function Ve({content:t,botInvocation:e,isLoading:n=false,defaultOpen:o,adminLinkHref:r,adminLinkText:a="Open in Agent Designer",showAdminLink:i=false,onAdminClick:s,onExpand:l,EventsComponent:c,ContentComponent:u,className:p}){let d=()=>o!==void 0?o:e?.currentStatus?Dr(e.currentStatus.status):false,[f,m]=useState(d),[g,h]=useState(false),x=useRef(null);if(useEffect(()=>{if(e?.currentStatus){let I=e.currentStatus.status;if(x.current!==I&&(x.current=I,!g)){let J=Dr(I);J&&!f?m(true):!J&&f&&m(false);}}},[e,g,f]),useEffect(()=>{f&&e&&l&&l(t.invocation_id,t.bot_id,t.bot_name);},[f,e,l,t]),n&&!e)return jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${p||""}`,children:[jsx(mt,{status:"loading"}),jsxs("span",{children:["Loading ",t.bot_name,"..."]})]});if(!e)return null;let b=ls(e.currentStatus?.status),k=cs(e.currentStatus,t.bot_name),T=I=>{m(I),h(true);},C=I=>{s&&(I.preventDefault(),s(t.invocation_id,t.bot_id));},E=e.eventsByID&&Object.keys(e.eventsByID).length>0;return jsxs(Ft.Root,{open:f,onOpenChange:T,className:`relative w-full max-w-4xl space-y-2 leading-normal bot-invocation-content ${p||""}`,children:[jsxs("div",{className:"flex items-center justify-between",children:[jsxs(Ft.Trigger,{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsx(mt,{status:b}),k]}),jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${f?"transform rotate-180":""}`})]}),i&&(r||s)&&jsxs("a",{href:r||"#",onClick:s?C:void 0,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[a,jsx(ArrowUpRight,{className:"h-3.5 w-3.5"})]})]}),jsx(Ft.Content,{children:jsx("div",{className:"space-y-2 max-w-3xl",children:E?c?jsx(c,{eventsByID:e.eventsByID,defaultOpen:f}):jsx(Bt,{eventsByID:e.eventsByID,ContentComponent:u}):jsx("span",{className:"text-sm text-muted-foreground",children:"No events to display"})})})]})}function vn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"q"in t)o=t.q;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.q&&Array.isArray(a.q)&&(o=a.q);}catch{o=[t];}let r=o.filter(a=>a&&a.trim()!=="");return r.length===0?null:jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsx(Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsx(Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsx("span",{className:"line-clamp-1",children:a})]},i))})}function Cn({content:t,isSearching:e=false,className:n}){let o=[];if(Array.isArray(t))o=t;else if(typeof t=="object"&&t!==null&&"integration_queries"in t)o=t.integration_queries;else if(typeof t=="string")try{let a=JSON.parse(t);Array.isArray(a)?o=a:a.integration_queries&&Array.isArray(a.integration_queries)&&(o=a.integration_queries);}catch{return null}let r=o.filter(a=>a&&a.query&&a.query.trim()!=="");return r.length===0?null:jsx("div",{className:`flex flex-wrap gap-2 ${n||""}`,children:r.map((a,i)=>jsxs("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg text-sm bg-muted/50 text-foreground border border-border/30",children:[e?jsx(Loader2,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0 animate-spin"}):jsx(Search,{className:"h-3 w-3 mr-2 text-muted-foreground flex-shrink-0"}),jsx("span",{className:"line-clamp-1",children:a.query})]},i))})}function Sn(){return jsxs("span",{className:"inline-flex gap-1 text-muted-foreground",children:[jsx("span",{className:"animate-bounce",style:{animationDelay:"0ms"},children:"\u25CF"}),jsx("span",{className:"animate-bounce",style:{animationDelay:"150ms"},children:"\u25CF"}),jsx("span",{className:"animate-bounce",style:{animationDelay:"300ms"},children:"\u25CF"})]})}function wn(){return jsx("div",{className:"flex items-center justify-center py-8",children:jsx(Loader2,{className:"animate-spin text-muted-foreground",size:24})})}function xs(t){if(t.content_type==="bot_invocation"||t.content_type==="bot_invocation_result"||t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;if(t.content_type==="tool_invocation")return "tool_invocation";if(t.content_type==="tool_result")return "tool_result";if(!t.content||typeof t.content!="object")return null;let e=t.content;return "action_type"in e&&"name"in e&&"input"in e&&e.action_type!=="bot.invoke"?"result"in e?"tool_result":"tool_invocation":null}function re({content:t,className:e,components:n}){let r=L()?.onSuggestionClick,a=useMemo(()=>c=>jsx(re,{...c,components:n}),[n]);if(t.content&&typeof t.content=="object"&&t.content.action_type==="bot.invoke")return null;let i=xs(t),s;i?s=i:(s=R(t.ui_content_type)||t.content_type,s!=="ui_generation"&&typeof t.content=="string"&&(t.content.includes('{"children":')||t.content.includes('"children":'))&&(s="ui_generation"));let l=n?.[s];if(l)return jsx(l,{content:t,className:e});switch(s){case "text":return jsx(Xt,{content:_n(t),className:e});case "markdown":return jsx(O,{content:_n(t),className:e});case "thinking":case "redacted_thinking":return jsx(_e,{item:t,className:e});case "json":return jsx(st,{content:t.content,className:e});case "codegen_json":return jsx(Ae,{item:t,className:e});case "sql_generation":return jsx(De,{item:t,className:e});case "codeexec_output":return jsx(Oe,{item:t,className:e});case "log":return jsx(Se,{item:t,className:e});case "websearch":case "websearch_output":case "web_search":return jsx(we,{item:t,className:e});case "search_queries":return jsx(vn,{content:t.content,className:e});case "integration_queries":return jsx(Cn,{content:t.content,className:e});case "webparse":case "webparse_output":case "web_parse":return jsx(Ne,{item:t,className:e});case "tool_group":return jsx(Jt,{toolGroup:t.content,ContentComponent:a,className:e});case "bot_invocation":{let c=t.content,u=t.botInvocation;return jsx(Ve,{content:c,botInvocation:u,ContentComponent:a,className:e})}case "chart":case "ui_generation":{let c=t.invocation_id;if(t.chartConfig&&t.chartData)return jsx(Pt,{config:t.chartConfig,data:t.chartData,className:e});let u=t.parsedJson;if(u&&Array.isArray(u)&&u.length>0)return jsx(Fragment,{children:u.map((d,f)=>{if(d.type==="text"){let m=d.content;return jsx(O,{content:m,className:e},`${f}-${m.length}`)}else if(d.type==="json"){let m=d.content;return yn(m)?m?.children?.some(x=>x?._type==="TextMarkdown")?jsx(Sn,{},f):jsx(wn,{},f):m?.children&&Array.isArray(m.children)?jsx(at__default.Fragment,{children:jsx(Ot,{nodes:m.children,className:e,invocationId:c,onSuggestionClick:r})},`${f}-${m.children.length}`):jsx(st,{content:m,className:e},`${f}-json`)}return null})});let p=typeof t.content=="string"?t.content:null;if(p){let d=Y(p);if(Array.isArray(d))return jsx(Fragment,{children:d.map((f,m)=>{if(f.type==="text"){let g=f.content;return jsx(O,{content:g,className:e},`${m}-${g.length}`)}else if(f.type==="json"){let g=f.content;return g?.children&&Array.isArray(g.children)?jsx(at__default.Fragment,{children:jsx(Ot,{nodes:g.children,className:e,invocationId:c,onSuggestionClick:r})},`${m}-${g.children.length}`):jsx(st,{content:g,className:e},`${m}-json`)}return null})})}if(typeof t.content=="object"&&t.content!==null){let d=t.content;if(d?.children&&Array.isArray(d.children))return jsx(Ot,{nodes:d.children,className:e,invocationId:c,onSuggestionClick:r})}return jsx(st,{content:t.content,className:e})}case "table":return t.tableColumns&&t.tableData?jsx(Rt,{columns:t.tableColumns,data:t.tableData,className:e}):jsx(st,{content:t.content,className:e});case "bot_invocation_result":case "security_check_json":return null;case "tool_invocation":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{},id:c.id||"",name:c.name||"",input:c.input||{},description:c.description,action_type:c.action_type,running_message:c.running_message}};return jsx(Jt,{toolGroup:u,ContentComponent:a,className:e})}case "tool_result":{let c=t.content,u={invocation:{invocation_id:c.id||"",action:c.action_type||"",params:c.input||{}},result:{invocation_id:c.id||"",result:c.result}},p={...u,invocation:{...u.invocation,id:c.id||"",name:c.name||"",input:c.input||{},action_type:c.action_type,description:c.description},result:{...u.result,id:c.id||"",name:c.name||"",input:c.input||{},result:c.result,status:c.status||"success",action_type:c.action_type,description:c.description,ui_content_type:c.ui_content_type}};return jsx(Jt,{toolGroup:p,ContentComponent:a,className:e})}default:return jsx(Xt,{content:_n(t),className:e})}}function _n(t){return typeof t.content=="string"?t.content:JSON.stringify(t.content)}function bs({result:t,isStreaming:e,className:n,components:o,streamingText:r}){let a=t?Pr(t):[];return r&&a.length===0?jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsx("span",{className:"text-sm text-gray-500",children:"Streaming response..."})]}),jsx("div",{className:"border rounded-lg p-4 whitespace-pre-wrap",children:r})]}):a.length===0&&!e?null:jsxs("div",{className:n?`erdo-ui ${n}`:"erdo-ui space-y-4",children:[a.map((i,s)=>jsx("div",{children:jsx(re,{content:i,components:o})},i.id||s)),e&&a.length===0&&!r&&jsxs("div",{className:"flex items-center gap-2",children:[jsx("div",{className:"animate-pulse w-2 h-2 bg-blue-500 rounded-full"}),jsx("span",{className:"text-sm text-gray-500",children:"Processing..."})]})]})}function Pr(t){let e=[],n=new Set;if(t.events)for(let o of t.events){let r=o.metadata,a=o.payload;if(r?.user_visibility==="visible"&&a?.status==="success"&&a?.output){let i=a.output;if(i.content&&Array.isArray(i.content))for(let s=0;s<i.content.length;s++){let l=i.content[s],c=l.id||`event-result-${s}`;if(n.has(c))continue;n.add(c);let u=r?.ui_content_type;if(!u&&typeof l.content=="string")try{JSON.parse(l.content)?.children&&(u="ui_generation");}catch{(l.content.includes('{"children":')||l.content.includes('{ "children":'))&&(u="ui_generation");}e.push({id:c,content_type:l.content_type||"text",ui_content_type:u,content:l.content,data:l.data,chartConfig:l.chartConfig,chartData:l.chartData,tableColumns:l.tableColumns,tableData:l.tableData});}}}if(e.length===0&&t.result?.output?.content){let o=t.result.output.content;if(Array.isArray(o))for(let r=0;r<o.length;r++){let a=o[r],i=a.id||`result-${r}`;if(n.has(i))continue;n.add(i);let s=a.ui_content_type;if(!s&&typeof a.content=="string")try{JSON.parse(a.content)?.children&&(s="ui_generation");}catch{(a.content.includes('{"children":')||a.content.includes('{ "children":'))&&(s="ui_generation");}e.push({...a,id:i,ui_content_type:s});}}return e}function V(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function vs(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function Vr(t){return t.contents.length===0?null:t.contents[0]||null}function En(t,e){let n=V(t);switch(n){case "message":return t;case "step":let o=t;if(e){let i=o.eventsByID[e]?.Message;return i||Lr({},"",e)}let a=Object.keys(o.eventsByID).reverse();for(let i of a){let s=o.eventsByID[i];if(s&&s.Message)return s.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function Cs(t,e){switch(V(t)){case "message_content":return t;case "output_content":return t;case "message":return Wt(t,e);case "output":return qt(t,e);case "step":let o=Ge(t,e);return o?qt(o,e):null;default:return null}}function Wt(t,e){let n=V(t);switch(n){case "message_content":return t;case "message":let o=En(t);if(!o)throw new Error("Unable to find message to add content to");return e?o.contentsByID[e]:vs(o);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function qt(t,e){let n=V(t);switch(n){case "output_content":return t;case "output":let o=t;return e?o.contentsByID[e]||null:o.contents.length<=0?null:o.contents[o.contents.length-1]||null;case "step":let a=Ge(t,e);return a?qt(a):null;case "invocation":if(!e)return null;let i=t.eventsByID[e];return !i||!i.Output?null:qt(i.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function Dn(t,e){let n=V(t),o=null;switch(n){case "invocation":return t;case "message_content":if(o=t.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message content");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return o;case "message":if(o=Vr(t)?.botInvocation||null,!o)throw new Error("Unable to find bot invocation for message");if(e&&o.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return o;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function Ge(t,e){let n=V(t);switch(n){case "output":return t;case "step":let o=t;if(e){let s=o.eventsByID[e]?.Output;if(!s)throw new Error("Unable to find output with id "+e);return s}let a=Object.keys(o.eventsByID).reverse();for(let s of a){let l=o.eventsByID[s];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Mr(t,e){let n=V(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let o=t.eventsByID[e];if(!o||!o.type||o.type!=="result_handler"||!o.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return o.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function $r(t,e){let n=V(t),o=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");o=t;let r=o.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let i=t.eventsByID[e];if(!i)throw new Error("Unable to find step on result handler with id "+e);if(!i.Step)throw new Error("Unable to find step on result handler with id "+e);return i.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Nn=class extends Error{};function _s(t,e,n){let o=null,r=e[0],a=e[1];n[r]=a;try{switch(r){case "message":o=En(t,a);break;case "content":o=Wt(t,a);break;case "step":o=$r(t,a);break;case "output":o=Ge(t,a);break;case "output_content":o=qt(t,a);break;case "invocation":o=Dn(t,a);break;case "result_handler":o=Mr(t,a);break}}catch(i){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),i}if(!o)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",o),new Nn(`Unable to find next entity for path ${e.join("/")}`);return o}function Lr(t,e,n,o){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Ss(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function ws(t,e){let n=t.metadata?.ui_content_type,o=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;if(Yt(t.metadata.content_type,n))try{r=Y(o);}catch(a){console.error("Failed to parse message content as JSON:",a),r=[{content:o,type:"text"}];}return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:o,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function Ns(t,e,n){let o=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:o.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:o.action_type,Valid:true},key:{String:o.key,Valid:true},bot_id:o.bot_id,result_handler_id:"",step_order:{Int32:o.step_order,Valid:true},output_content_type:{String:o.content_type,Valid:true},execution_mode:{String:o.execution_mode,Valid:true},output_behaviour:{String:o.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:o.output_channels||[],running_message:{String:o.running_message||"",Valid:!!o.running_message},finished_message:{String:o.finished_message||"",Valid:!!o.finished_message},depends_on:[],eventsByID:{},currentStatus:null}}function Is(t,e,n){let o=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:o.result_handler_id||e,step_invocation_id:o.step_invocation_id||"",type:o.type||"",if_conditions:o.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:o.output_content_type||"",result_handler_order:o.result_handler_order||0,eventsByID:{}}}function Es(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Rr(t,e,n,o=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:o??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Ar(t,e,n,o=null){let r=null,a=t.metadata?.ui_content_type;if(Yt(t.metadata.content_type,a))try{r=Y(t.payload);}catch(i){console.error("Failed to parse step output content as JSON:",i),r=[{content:t.payload,type:"text"}];}return {_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:o||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:a?{String:a,Valid:true}:{String:"",Valid:false},output:null}}function Ds(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function oe(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Ur(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function Tn(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function Bn(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function Ts(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function Bs(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}var Ps=new Set(["=","("]);function Rs(t){if(!t||t.length===0)return true;let e=t[t.length-1];return !Ps.has(e)}function Pn(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!Yt(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){let o=t.content.slice(0,-1);if(Rs(o)){t._charBuffer="{";continue}}if(t._charBuffer&&Ee(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new it;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson=[...t.parsedJson.slice(0,-1),r]):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let o=t._jsonParser.add(n);t._currentContent.content=o,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(o){if(console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",o),t._isInJson=false,t._jsonParser=void 0,t.parsedJson&&t.parsedJson.length>0){let r=t.parsedJson[t.parsedJson.length-1];if(r.type==="json"){let a=t.content.lastIndexOf("{"),i=t.content.slice(a);r.type="text",r.content=i,t._currentContent=r;}}}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function As(t,e){return Pn(t,e)}function Or(t,e){return Pn(t,e)}function In(t,e){let n=V(t);switch(n){case "message":return tt(t,e);case "message_content":return Ue(t,e);case "step":return Vs(t,e);case "output":return Ms(t,e);case "output_content":return $s(t,e);case "invocation":return ae(t,e);case "result_handler":return Ls(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function Os(t,e){for(let n of e)t=In(t,n);return t}function tt(t,e){let n=En(t);if(!n)throw new Error("Unable to find message to add content to");let o=V(e),r=null;switch(o){case "message_content":if(r=e,!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let s=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,s),r,...n.contents.slice(s+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let a=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=Ue(n.contents[0],a),tt(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let i=Dn(r);if(!i)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=ae(i,e),tt(n,r);case "status":if(n.contents.length>0){let s=n.contents[0];if(s?.botInvocation){let l=Ue(s,e);return tt(n,l)}}return {...n};default:throw new Error(`Unable to add update message child for child type ${o}`)}}function Ue(t,e){let n=Wt(t);if(!n)throw new Error("Unable to find message content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};case "status":return n.botInvocation&&(n.botInvocation=ae(n.botInvocation,e)),{...n};default:throw new Error(`Unable to add update message content child for child type ${o}`)}}function Vs(t,e){let n=$r(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let o=V(e),r=null;switch(o){case "output":let a=e;return r=Tn(a),n.eventsByID={...n.eventsByID,[a.output.id]:r},{...n};case "message":let i=e;return r=Ts(i),n.eventsByID={...n.eventsByID,[i.message.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "result_handler":let l=e;return r=Bs(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${o}`)}}function Ms(t,e){let n=Ge(t);if(!n)throw new Error("Unable to find step output to add content to");let o=V(e);switch(o){case "output_content":let r=e;if(!n.contentsByID[r.id])n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r];else {let a=n.contentIDToIdx[r.id];n.contents=[...n.contents.slice(0,a),r,...n.contents.slice(a+1)];}return n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${o}`)}}function $s(t,e){let n=qt(t);if(!n)throw new Error("Unable to find step output content to add content to");let o=V(e);switch(o){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=ae(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${o}`)}}function ae(t,e){let n=Dn(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let o=V(e),r;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID={...n.eventsByID,[s.id]:r},n.currentStatus=s,{...n};default:throw new Error(`Unable to add update invocation for entity type ${o}`)}}function Ls(t,e){let n=Mr(t);if(!n)throw new Error("Unable to find result handler to add content to");let o=V(e),r=null;switch(o){case "step":let a=e;return r=Ur(a),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[a.id]:r},{...n};case "output":let i=e;return r=Tn(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.output.id]:r},{...n};case "status":let s=e;return r=Bn(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${o}`)}}function Us(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Fe(t,e,n,o,r,a=null,i=[],s={}){if(!a&&Object.keys(r).length>0){let p,d;if(n.length>=2&&n[0]==="message"?(d=n[1],p=r[d],p||(p=Object.values(r)[0],d=Object.keys(r)[0])):(p=Object.values(r)[Object.values(r).length-1],d=Object.keys(r)[Object.keys(r).length-1]),s.message=d,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(p.contentsByID).length>0&&e.metadata.message_content_id){let f=e.metadata.message_content_id,m=p.contentsByID[f];m&&(a=m);}a?i=[p]:a=p;}if(n.length<=2&&Us(t)){let p=n[1],d=[],f,m,g,h,x;switch(t){case "bot started":case "bot resumed":if(!a)throw new Error("Unable to find message to add content to");let b=Ds(e);if(a._type==="message_content"){if(m=a,!m.id)throw new Error("Unable to find message content id");if(g=r[m.message_id],!g)throw new Error("Unable to find message to add content to");if(h=Wt(g,m.id),!h)throw new Error("Unable to find message content to add content to");let E=Ue(h,b);r[m.message_id]={...tt(g,E)};}d.push(b);break;case "message created":return r[p]=Lr(e,o,p),null;case "create message content":if(!a)throw new Error("Unable to find message to add content to");if(x=Ss(e,s),a._type==="output"){f=a,d.push(Rr(e,p,s,"hidden"));let E=e.payload.message_id;if(E||(E=i[0].message.id),g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(f=a,g=r[f.message_id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(f=a,g=r[f.message.id],!g)throw new Error("Unable to find message to add content to");d.push(x);}r[g.message.id]={...tt(g,x)};break;case "message content result":if(!a)throw new Error("Unable to find message to add content to");let k=null;if(a._type==="output"){d.push(Ar(e,p,s,"hidden"));let E=e.payload.message_id||s.message;if(E?k=i.find(I=>I.message.id===E):k=i[0],g=r[E],!g)throw new Error("Unable to find message to add content to")}else if(a._type==="message_content"){if(k=i[0],g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}else {if(a._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${a._type}`);if(k=a,g=r[k.message.id],!g)throw new Error("Unable to find message to add content to")}let T=e.metadata.message_content_id;if(!T)throw new Error("Unable to find message content id");let C=Wt(k,T);if(C){C.state="completed";let E=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;C.content=E,r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);}else C=ws(e,s),r[g.message.id]={...tt(g,C)},(a._type==="message"||a._type==="message_content")&&d.push(C);break;case "step started":d.push(Ns(e,p,s));break;case "result handler started":d.push(Is(e,p));break;case "step output created":d.push(Es(e,p,a));break;case "create step output content":d.push(Rr(e,p,s));break;case "step output content result":d.push(Ar(e,p,s));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return d.length?!a||a._type==="message_content"&&d.length===1&&d[0]._type==="message_content"?d[0]:Os(a,d):null}if(!a)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let p=null;try{p=Cs(a);}catch{}switch(t){case "message content delta":if(!p)throw new Error("Unable to find message content");let d=null,f=null,m=null;if(a._type==="output_content"){d=Or(a,e.payload);let b=e.metadata.message_content_id;if(!b)throw new Error("Unable to find message content id from entity ids");let k=s.message;if(m=i.find(T=>T.message.id===k),!m)throw new Error("Unable to find message to add content to");f=Wt(m,b);}else {if(f=p,m=i[i.length-1],!m)throw new Error("Unable to find message to add content to");if(m._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!f)throw new Error("Unable to find message content");let g=r[m.message.id];if(!g)throw new Error("Unable to find message to add content to");let h=As(f,e.payload);return r[g.message.id]={...tt(g,h)},a._type==="message_content"&&(d=h),d;case "step output content delta":return Or(p,e.payload);case "status":if(a._type==="step"&&(a.currentStatus=oe(e)),a._type==="invocation"&&(a.currentStatus=oe(e)),a._type==="message_content"){let x=a;if(x.botInvocation)return x.botInvocation.currentStatus=oe(e),{...x}}if(a._type==="message"){let x=a,b=Vr(x);if(b?.botInvocation)return b.botInvocation.currentStatus=oe(e),tt(x,b)}return In(a,oe(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),c=_s(a,n,s),u=Fe(t,e,l,o,r,c,[...i,a],s);return u?In(a,{...u}):a}function Fs(t){return t.split("/").filter(Boolean)}function Fr(t={}){let e=bt(),[n,o]=useState(null),[r,a]=useState(false),[i,s]=useState(null),[l,c]=useState([]),u=useRef(null),p=useRef(t.threadId);t.threadId!==p.current&&(p.current=t.threadId);let d=useCallback(()=>{u.current&&(u.current.abort(),u.current=null);},[]),f=useCallback(h=>{o(h),p.current=h.id;},[]),m=useCallback(async h=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useThread.");if(!e.client.sendMessage)throw new Error("ErdoClient does not support sendMessage. Make sure you are using @erdoai/server client.");if(!e.client.createThread)throw new Error("ErdoClient does not support createThread. Make sure you are using @erdoai/server client.");d(),u.current=new AbortController,a(true),s(null),c([]);let x={};try{let b=p.current;if(!b){let C=await e.client.createThread();o(C),p.current=C.id,b=C.id;}for await(let C of e.client.sendMessage(b,{content:h,botKey:t.botKey})){if(u.current?.signal.aborted)break;t.onEvent?.(C);let E=C.type||"",I=C.metadata||{},J=Fs(I.path||""),A={payload:C.payload,metadata:{path:I.path||"",...I}};try{Fe(E,A,J,b,x);}catch(kt){console.error("Error handling SSE event:",kt,E);}c(Object.values(x));}let k=Object.values(x);c(k);let T=k.flatMap(C=>C.contents||[]).filter(C=>C.user_visibility==="visible").map(C=>({id:C.id,content_type:C.content_type,ui_content_type:R(C.ui_content_type),content:C.content,parsedJson:C.parsedJson,botInvocation:C.botInvocation}));t.onFinish?.(T);}catch(b){let k=b instanceof Error?b:new Error(String(b));throw s(k),t.onError?.(k),k}finally{a(false),u.current=null;}},[e.client,t,d]),g=useMemo(()=>{let h=l.flatMap(k=>k.contents||[]).filter(k=>k.user_visibility==="visible");return ge(h).map(k=>({id:k.id,content_type:k.content_type,ui_content_type:R(k.ui_content_type),content:k.content,parsedJson:k.parsedJson,botInvocation:k.botInvocation}))},[l]);return {thread:n,isStreaming:r,error:i,activeMessages:l,streamingContents:g,sendMessage:m,cancel:d,setThread:f}}export{dt as BarChart,Ve as BotInvocationContent,K as Chart,Ht as ChartContainer,Pt as ChartContent,Ke as ChartLegend,Ze as ChartLegendContent,$n as ChartStyle,He as ChartTooltip,ze as ChartTooltipContent,Oe as CodeexecContent,Ae as CodegenContent,$t as CollapsibleCodeBlock,re as Content,Zn as DatasetChart,At as DatasetDownload,Yn as DatasetTable,ln as DefaultChartNode,dn as DefaultDownloadButtonNode,pn as DefaultSuggestionsNode,cn as DefaultTableNode,un as DefaultTextMarkdownNode,On as ErdoProvider,bs as ErdoUI,ut as ErrorBoundary,on as ExecutionStatus,Ut as ExpandableOutputContent,It as HeatmapChart,be as InvocationEvent,Bt as InvocationEvents,lr as InvocationStatus,it as JSONStreamParser,st as JsonContent,St as LineChart,wn as Loader,fn as Log,Se as LogContent,O as MarkdownContent,ye as Output,wt as PieChart,Nt as ScatterChart,De as SqlContent,mt as StatusSpinner,Gt as StderrText,Be as StdoutText,Pe as StdwarnText,ke as StepInvocation,xe as StepInvocationStatus,Rt as TableContent,Xt as TextContent,_e as ThinkingContent,Jt as ToolGroupContent,Ot as UIGenerationNodes,Ne as WebParseContent,we as WebSearchContent,Sn as WritingLoader,G as cn,mn as defaultNodeComponents,Pr as extractContentItems,z as formatValue,Pn as handleIncrementalMixedJsonParsing,Fe as handleSSEEvent,Yt as isJsonLike,nr as isNullString,za as isParsingComplete,yn as isParsingInProgress,Ee as isWhitespaceChar,qa as parseCompleteJson,Y as parseMixedJson,Ln as parseToDate,Dt as resolveKeyFromData,Hn as toSnakeCase,R as unwrapNullString,Zo as unwrapNullStringOr,ce as useChartZoom,de as useDatasetContents,bt as useErdoConfig,L as useErdoConfigOptional,pe as useMultipleDatasetContents,Fr as useThread};
|