@recombine-ai/bosun 0.8.0 → 0.8.2
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/bin/bosun.js +8 -8
- package/build/client/_app/immutable/assets/{0.CeYdzR0K.css → 0.DkT7Ji57.css} +1 -1
- package/build/client/_app/immutable/assets/0.DkT7Ji57.css.br +0 -0
- package/build/client/_app/immutable/assets/{0.CeYdzR0K.css.gz → 0.DkT7Ji57.css.gz} +0 -0
- package/build/client/_app/immutable/assets/{Input.D_a_Hn-e.css → Input.CJ8KyccG.css} +1 -1
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.css.br +0 -0
- package/build/client/_app/immutable/assets/Input.CJ8KyccG.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{B5pH84aF.js → 2QZUjt52.js} +1 -1
- package/build/client/_app/immutable/chunks/2QZUjt52.js.br +0 -0
- package/build/client/_app/immutable/chunks/2QZUjt52.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CxPv-oiS.js → BU7aeYn4.js} +1 -1
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BU7aeYn4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BALCah_8.js → Bb9ZigkD.js} +2 -2
- package/build/client/_app/immutable/chunks/Bb9ZigkD.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bb9ZigkD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{De71gW9B.js → BiBGf8wR.js} +1 -1
- package/build/client/_app/immutable/chunks/BiBGf8wR.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiBGf8wR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DGK-Y22B.js → C8-d_pGN.js} +8 -5
- package/build/client/_app/immutable/chunks/C8-d_pGN.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8-d_pGN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BfU3a6pG.js → CYF48L9_.js} +1 -1
- package/build/client/_app/immutable/chunks/CYF48L9_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYF48L9_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js +33 -0
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js.br +0 -0
- package/build/client/_app/immutable/chunks/CnRh8Bgk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aFZ7RY4i.js +5 -0
- package/build/client/_app/immutable/chunks/aFZ7RY4i.js.br +0 -0
- package/build/client/_app/immutable/chunks/aFZ7RY4i.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.z0HZlVW2.js → app.CBFo0y_h.js} +2 -2
- package/build/client/_app/immutable/entry/app.CBFo0y_h.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CBFo0y_h.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B7Oj0YZC.js +1 -0
- package/build/client/_app/immutable/entry/start.B7Oj0YZC.js.br +2 -0
- package/build/client/_app/immutable/entry/start.B7Oj0YZC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.K529fk47.js → 0.BS46Erbu.js} +1 -1
- package/build/client/_app/immutable/nodes/0.BS46Erbu.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BS46Erbu.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Do0rKYuZ.js → 1.BkQc4vam.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BkQc4vam.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BkQc4vam.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.IAMYOUml.js → 10.CNlp77FZ.js} +3 -3
- package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.CNlp77FZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.DeKTr1ON.js → 17.C7bkiGOl.js} +2 -1
- package/build/client/_app/immutable/nodes/17.C7bkiGOl.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.C7bkiGOl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{18.CCXr28ln.js → 18.CjBHM2ng.js} +2 -2
- package/build/client/_app/immutable/nodes/18.CjBHM2ng.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.CjBHM2ng.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CAYQyVDJ.js +35 -0
- package/build/client/_app/immutable/nodes/2.CAYQyVDJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CAYQyVDJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.CFCUpmUO.js → 3.CoWzFM8T.js} +1 -1
- package/build/client/_app/immutable/nodes/3.CoWzFM8T.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CoWzFM8T.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.BYbOpI2z.js → 4.BC-cU8Pp.js} +1 -1
- package/build/client/_app/immutable/nodes/4.BC-cU8Pp.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BC-cU8Pp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.DPO0SD9J.js → 5.BqUmLlVD.js} +1 -1
- package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BqUmLlVD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BJVVMbLC.js → 6.D4x8Wh9M.js} +1 -1
- package/build/client/_app/immutable/nodes/6.D4x8Wh9M.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D4x8Wh9M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.BAyrbFTp.js → 8.CaESldgZ.js} +1 -1
- package/build/client/_app/immutable/nodes/8.CaESldgZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CaESldgZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BwiEOYkX.js +2 -0
- package/build/client/_app/immutable/nodes/9.BwiEOYkX.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BwiEOYkX.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-BAKgi60O.js → 0-6QwqOuSN.js} +3 -3
- package/build/server/chunks/{0-BAKgi60O.js.map → 0-6QwqOuSN.js.map} +1 -1
- package/build/server/chunks/{1-jYHJB-tb.js → 1-BqEYCSqb.js} +2 -2
- package/build/server/chunks/{1-jYHJB-tb.js.map → 1-BqEYCSqb.js.map} +1 -1
- package/build/server/chunks/{10-YF1bugMU.js → 10-BWSo2Lz2.js} +4 -4
- package/build/server/chunks/{10-YF1bugMU.js.map → 10-BWSo2Lz2.js.map} +1 -1
- package/build/server/chunks/{17-D9vMxjRh.js → 17-C5jRC6rL.js} +3 -3
- package/build/server/chunks/{17-D9vMxjRh.js.map → 17-C5jRC6rL.js.map} +1 -1
- package/build/server/chunks/{18-BLN7cTaf.js → 18-BzERVoaR.js} +3 -3
- package/build/server/chunks/{18-BLN7cTaf.js.map → 18-BzERVoaR.js.map} +1 -1
- package/build/server/chunks/{2-B4P_qP3q.js → 2-DTdewCMV.js} +3 -3
- package/build/server/chunks/{2-B4P_qP3q.js.map → 2-DTdewCMV.js.map} +1 -1
- package/build/server/chunks/{3-njAy3GOi.js → 3-Xnzo0PPo.js} +4 -4
- package/build/server/chunks/{3-njAy3GOi.js.map → 3-Xnzo0PPo.js.map} +1 -1
- package/build/server/chunks/{4-DPlYm_DX.js → 4-BKFeDeOj.js} +2 -2
- package/build/server/chunks/{4-DPlYm_DX.js.map → 4-BKFeDeOj.js.map} +1 -1
- package/build/server/chunks/{5-BcfdXwaX.js → 5-QQH3C-Ro.js} +3 -3
- package/build/server/chunks/{5-BcfdXwaX.js.map → 5-QQH3C-Ro.js.map} +1 -1
- package/build/server/chunks/{6-DtBEsI4e.js → 6-CYC178cM.js} +3 -3
- package/build/server/chunks/{6-DtBEsI4e.js.map → 6-CYC178cM.js.map} +1 -1
- package/build/server/chunks/{8-DVq9JSHT.js → 8-msXmgb8C.js} +2 -2
- package/build/server/chunks/{8-DVq9JSHT.js.map → 8-msXmgb8C.js.map} +1 -1
- package/build/server/chunks/{9-BMEiMRkj.js → 9-COYHphb5.js} +4 -4
- package/build/server/chunks/{9-BMEiMRkj.js.map → 9-COYHphb5.js.map} +1 -1
- package/build/server/chunks/{AgentSidebar-BYk5FBc0.js → AgentSidebar-DqMxRWln.js} +2 -2
- package/build/server/chunks/{AgentSidebar-BYk5FBc0.js.map → AgentSidebar-DqMxRWln.js.map} +1 -1
- package/build/server/chunks/{Button-CMHzABlu.js → Button-qfXYs6Cv.js} +5 -2
- package/build/server/chunks/Button-qfXYs6Cv.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-BWp_rIDm.js → ChatStepTrace-Bvxmgz7y.js} +12 -4
- package/build/server/chunks/ChatStepTrace-Bvxmgz7y.js.map +1 -0
- package/build/server/chunks/{ContextEditor-DwSmZH0Y.js → ContextEditor-CsiHhmH8.js} +30 -2
- package/build/server/chunks/ContextEditor-CsiHhmH8.js.map +1 -0
- package/build/server/chunks/{Icon-DdOrLZIU.js → Icon-SOvOgynh.js} +5 -1
- package/build/server/chunks/Icon-SOvOgynh.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-BxARmfhE.js → _layout.svelte-CqwbWo_W.js} +15 -5
- package/build/server/chunks/_layout.svelte-CqwbWo_W.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-BnR072vW.js → _layout.svelte-DuOlsMHY.js} +4 -4
- package/build/server/chunks/{_layout.svelte-BnR072vW.js.map → _layout.svelte-DuOlsMHY.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DKRvXTam.js → _page.svelte-B8NFVmqA.js} +3 -3
- package/build/server/chunks/{_page.svelte-DKRvXTam.js.map → _page.svelte-B8NFVmqA.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CoCvoIxm.js → _page.svelte-Ch8DnIjK.js} +5 -5
- package/build/server/chunks/_page.svelte-Ch8DnIjK.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CYLWOoKK.js → _page.svelte-DASkT6Tk.js} +4 -3
- package/build/server/chunks/_page.svelte-DASkT6Tk.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DYCzxw9U.js → _page.svelte-Tl1k8pGd.js} +3 -3
- package/build/server/chunks/{_page.svelte-DYCzxw9U.js.map → _page.svelte-Tl1k8pGd.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BzEHuU3o.js → _page.svelte-VFizsKQC.js} +2 -2
- package/build/server/chunks/{_page.svelte-BzEHuU3o.js.map → _page.svelte-VFizsKQC.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Bqd9YZKg.js → _page.svelte-c2LBV2K4.js} +39 -10
- package/build/server/chunks/_page.svelte-c2LBV2K4.js.map +1 -0
- package/build/server/chunks/{_server.ts-B-GidZqI.js → _server.ts-C8SkG6z-.js} +8 -3
- package/build/server/chunks/_server.ts-C8SkG6z-.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +14 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +16 -3
- package/src/backend/roleplay/agents.ts +18 -0
- package/src/backend/roleplay/old-server.ts +3 -0
- package/src/backend/tests/academy.ts +2 -2
- package/src/backend/traces/latency-recordings.ts +2 -4
- package/build/client/_app/immutable/assets/0.CeYdzR0K.css.br +0 -0
- package/build/client/_app/immutable/assets/Input.D_a_Hn-e.css.br +0 -0
- package/build/client/_app/immutable/assets/Input.D_a_Hn-e.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B5pH84aF.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5pH84aF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BALCah_8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BALCah_8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BfU3a6pG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BfU3a6pG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CMCi0U-6.js +0 -5
- package/build/client/_app/immutable/chunks/CMCi0U-6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CMCi0U-6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CxPv-oiS.js.br +0 -0
- package/build/client/_app/immutable/chunks/CxPv-oiS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DGK-Y22B.js.br +0 -0
- package/build/client/_app/immutable/chunks/DGK-Y22B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De71gW9B.js.br +0 -0
- package/build/client/_app/immutable/chunks/De71gW9B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dh5nRfGH.js +0 -33
- package/build/client/_app/immutable/chunks/Dh5nRfGH.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dh5nRfGH.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.z0HZlVW2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.z0HZlVW2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BI2d1Cy8.js +0 -1
- package/build/client/_app/immutable/entry/start.BI2d1Cy8.js.br +0 -2
- package/build/client/_app/immutable/entry/start.BI2d1Cy8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.K529fk47.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.K529fk47.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Do0rKYuZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Do0rKYuZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.IAMYOUml.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.IAMYOUml.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.DeKTr1ON.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.DeKTr1ON.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.CCXr28ln.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.CCXr28ln.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B6rYWR87.js +0 -35
- package/build/client/_app/immutable/nodes/2.B6rYWR87.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B6rYWR87.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CFCUpmUO.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CFCUpmUO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.BYbOpI2z.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BYbOpI2z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DPO0SD9J.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DPO0SD9J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BJVVMbLC.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BJVVMbLC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BAyrbFTp.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BAyrbFTp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BUcdtwTB.js +0 -2
- package/build/client/_app/immutable/nodes/9.BUcdtwTB.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BUcdtwTB.js.gz +0 -0
- package/build/server/chunks/Button-CMHzABlu.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-BWp_rIDm.js.map +0 -1
- package/build/server/chunks/ContextEditor-DwSmZH0Y.js.map +0 -1
- package/build/server/chunks/Icon-DdOrLZIU.js.map +0 -1
- package/build/server/chunks/_layout.svelte-BxARmfhE.js.map +0 -1
- package/build/server/chunks/_page.svelte-Bqd9YZKg.js.map +0 -1
- package/build/server/chunks/_page.svelte-CYLWOoKK.js.map +0 -1
- package/build/server/chunks/_page.svelte-CoCvoIxm.js.map +0 -1
- package/build/server/chunks/_server.ts-B-GidZqI.js.map +0 -1
- /package/build/client/_app/immutable/chunks/{CU1-H3C1.js → DT74mAuZ.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CU1-H3C1.js.br → DT74mAuZ.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CU1-H3C1.js.gz → DT74mAuZ.js.gz} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/DLQqXQ6R.js","../chunks/C1FmrZbK.js","../assets/editor.BMIWPGx3.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import"../chunks/CWj6FrbW.js";import{o as Yn,b as cn,s as ie}from"../chunks/CB3MYTwM.js";import{p as un,l as u,i as q,q as $t,a as _e,h as t,u as z,b as I,c as dn,aV as Zr,aq as Yr,d as b,r as m,f as O,k as jt,t as te,e as es,j as dt,m as ts,s as k,n as he,g as Me}from"../chunks/BRMnbBOX.js";import{i as Q}from"../chunks/BFchB-2I.js";import{M as On,k as ns}from"../chunks/CJHvtD7r.js";import{e as tn,i as rs}from"../chunks/D_iTaAhh.js";import{a as $n,s as er,r as ft,c as pt,b as ss}from"../chunks/3HVf2z3Q.js";import{s as Re}from"../chunks/DMtzEpj5.js";import{b as vt}from"../chunks/DAyj7AJo.js";import{g as is,P as os}from"../chunks/Bk5z628g.js";import{B as ke}from"../chunks/DGK-Y22B.js";import{C as Dn,P as as}from"../chunks/Dh5nRfGH.js";import{I as zn}from"../chunks/CU1-H3C1.js";import{h as ls,I as gt}from"../chunks/BALCah_8.js";import{r as cs,p as qn}from"../chunks/DCT4VKzQ.js";import{_ as Un}from"../chunks/C1FmrZbK.js";import{b as us}from"../chunks/CmatTLDp.js";import{e as ds,a as fs}from"../chunks/CxPv-oiS.js";import{t as ee}from"../chunks/BEJ5fU19.js";const tr=/^[a-z0-9]+(-[a-z0-9]+)*$/,zt=(e,n,r,i="")=>{const s=e.split(":");if(e.slice(0,1)==="@"){if(s.length<2||s.length>3)return null;i=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const d=s.pop(),p=s.pop(),_={provider:s.length>0?s[0]:i,prefix:p,name:d};return n&&!Ft(_)?null:_}const o=s[0],l=o.split("-");if(l.length>1){const d={provider:i,prefix:l.shift(),name:l.join("-")};return n&&!Ft(d)?null:d}if(r&&i===""){const d={provider:i,prefix:"",name:o};return n&&!Ft(d,r)?null:d}return null},Ft=(e,n)=>e?!!((n&&e.prefix===""||e.prefix)&&e.name):!1;function ps(e,n){const r=e.icons,i=e.aliases||Object.create(null),s=Object.create(null);function o(l){if(r[l])return s[l]=[];if(!(l in s)){s[l]=null;const d=i[l]&&i[l].parent,p=d&&o(d);p&&(s[l]=[d].concat(p))}return s[l]}return Object.keys(r).concat(Object.keys(i)).forEach(o),s}const nr=Object.freeze({left:0,top:0,width:16,height:16}),Dt=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),qt=Object.freeze({...nr,...Dt}),sn=Object.freeze({...qt,body:"",hidden:!1});function vs(e,n){const r={};!e.hFlip!=!n.hFlip&&(r.hFlip=!0),!e.vFlip!=!n.vFlip&&(r.vFlip=!0);const i=((e.rotate||0)+(n.rotate||0))%4;return i&&(r.rotate=i),r}function Vn(e,n){const r=vs(e,n);for(const i in sn)i in Dt?i in e&&!(i in r)&&(r[i]=Dt[i]):i in n?r[i]=n[i]:i in e&&(r[i]=e[i]);return r}function gs(e,n,r){const i=e.icons,s=e.aliases||Object.create(null);let o={};function l(d){o=Vn(i[d]||s[d],o)}return l(n),r.forEach(l),Vn(e,o)}function rr(e,n){const r=[];if(typeof e!="object"||typeof e.icons!="object")return r;e.not_found instanceof Array&&e.not_found.forEach(s=>{n(s,null),r.push(s)});const i=ps(e);for(const s in i){const o=i[s];o&&(n(s,gs(e,s,o)),r.push(s))}return r}const hs={provider:"",aliases:{},not_found:{},...nr};function nn(e,n){for(const r in n)if(r in e&&typeof e[r]!=typeof n[r])return!1;return!0}function sr(e){if(typeof e!="object"||e===null)return null;const n=e;if(typeof n.prefix!="string"||!e.icons||typeof e.icons!="object"||!nn(e,hs))return null;const r=n.icons;for(const s in r){const o=r[s];if(!s||typeof o.body!="string"||!nn(o,sn))return null}const i=n.aliases||Object.create(null);for(const s in i){const o=i[s],l=o.parent;if(!s||typeof l!="string"||!r[l]&&!i[l]||!nn(o,sn))return null}return n}const Bn=Object.create(null);function ms(e,n){return{provider:e,prefix:n,icons:Object.create(null),missing:new Set}}function Ge(e,n){const r=Bn[e]||(Bn[e]=Object.create(null));return r[n]||(r[n]=ms(e,n))}function ir(e,n){return sr(n)?rr(n,(r,i)=>{i?e.icons[r]=i:e.missing.add(r)}):[]}function _s(e,n,r){try{if(typeof r.body=="string")return e.icons[n]={...r},!0}catch{}return!1}let xt=!1;function or(e){return typeof e=="boolean"&&(xt=e),xt}function xs(e){const n=typeof e=="string"?zt(e,!0,xt):e;if(n){const r=Ge(n.provider,n.prefix),i=n.name;return r.icons[i]||(r.missing.has(i)?null:void 0)}}function bs(e,n){const r=zt(e,!0,xt);if(!r)return!1;const i=Ge(r.provider,r.prefix);return n?_s(i,r.name,n):(i.missing.add(r.name),!0)}function ys(e,n){if(typeof e!="object")return!1;if(typeof n!="string"&&(n=e.provider||""),xt&&!n&&!e.prefix){let s=!1;return sr(e)&&(e.prefix="",rr(e,(o,l)=>{bs(o,l)&&(s=!0)})),s}const r=e.prefix;if(!Ft({prefix:r,name:"a"}))return!1;const i=Ge(n,r);return!!ir(i,e)}const ar=Object.freeze({width:null,height:null}),lr=Object.freeze({...ar,...Dt}),ws=/(-?[0-9.]*[0-9]+[0-9.]*)/g,ks=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Hn(e,n,r){if(n===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*n*r)/r;if(typeof e!="string")return e;const i=e.split(ws);if(i===null||!i.length)return e;const s=[];let o=i.shift(),l=ks.test(o);for(;;){if(l){const d=parseFloat(o);isNaN(d)?s.push(o):s.push(Math.ceil(d*n*r)/r)}else s.push(o);if(o=i.shift(),o===void 0)return s.join("");l=!l}}function Cs(e,n="defs"){let r="";const i=e.indexOf("<"+n);for(;i>=0;){const s=e.indexOf(">",i),o=e.indexOf("</"+n);if(s===-1||o===-1)break;const l=e.indexOf(">",o);if(l===-1)break;r+=e.slice(s+1,o).trim(),e=e.slice(0,i).trim()+e.slice(l+1)}return{defs:r,content:e}}function Ss(e,n){return e?"<defs>"+e+"</defs>"+n:n}function Is(e,n,r){const i=Cs(e);return Ss(i.defs,n+i.content+r)}const Ts=e=>e==="unset"||e==="undefined"||e==="none";function Ps(e,n){const r={...qt,...e},i={...lr,...n},s={left:r.left,top:r.top,width:r.width,height:r.height};let o=r.body;[r,i].forEach(U=>{const S=[],j=U.hFlip,h=U.vFlip;let F=U.rotate;j?h?F+=2:(S.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),S.push("scale(-1 1)"),s.top=s.left=0):h&&(S.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),S.push("scale(1 -1)"),s.top=s.left=0);let $;switch(F<0&&(F-=Math.floor(F/4)*4),F=F%4,F){case 1:$=s.height/2+s.top,S.unshift("rotate(90 "+$.toString()+" "+$.toString()+")");break;case 2:S.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:$=s.width/2+s.left,S.unshift("rotate(-90 "+$.toString()+" "+$.toString()+")");break}F%2===1&&(s.left!==s.top&&($=s.left,s.left=s.top,s.top=$),s.width!==s.height&&($=s.width,s.width=s.height,s.height=$)),S.length&&(o=Is(o,'<g transform="'+S.join(" ")+'">',"</g>"))});const l=i.width,d=i.height,p=s.width,_=s.height;let w,T;l===null?(T=d===null?"1em":d==="auto"?_:d,w=Hn(T,p/_)):(w=l==="auto"?p:l,T=d===null?Hn(w,_/p):d==="auto"?_:d);const A={},N=(U,S)=>{Ts(S)||(A[U]=S.toString())};N("width",w),N("height",T);const R=[s.left,s.top,p,_];return A.viewBox=R.join(" "),{attributes:A,viewBox:R,body:o}}const Es=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Ms=0;function Rs(e,n=Ls){const r=[];let i;for(;i=Es.exec(e);)r.push(i[1]);if(!r.length)return e;const s="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(o=>{const l=typeof n=="function"?n(o):n+(Ms++).toString(),d=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+l+s+"$3")}),e=e.replace(new RegExp(s,"g"),""),e}const on=Object.create(null);function As(e,n){on[e]=n}function an(e){return on[e]||on[""]}function fn(e){let n;if(typeof e.resources=="string")n=[e.resources];else if(n=e.resources,!(n instanceof Array)||!n.length)return null;return{resources:n,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const pn=Object.create(null),ht=["https://api.simplesvg.com","https://api.unisvg.com"],Ot=[];for(;ht.length>0;)ht.length===1||Math.random()>.5?Ot.push(ht.shift()):Ot.push(ht.pop());pn[""]=fn({resources:["https://api.iconify.design"].concat(Ot)});function Ns(e,n){const r=fn(n);return r===null?!1:(pn[e]=r,!0)}function vn(e){return pn[e]}const js=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let Jn=js();function Fs(e,n){const r=vn(e);if(!r)return 0;let i;if(!r.maxURL)i=0;else{let s=0;r.resources.forEach(l=>{s=Math.max(s,l.length)});const o=n+".json?icons=";i=r.maxURL-s-r.path.length-o.length}return i}function Os(e){return e===404}const $s=(e,n,r)=>{const i=[],s=Fs(e,n),o="icons";let l={type:o,provider:e,prefix:n,icons:[]},d=0;return r.forEach((p,_)=>{d+=p.length+1,d>=s&&_>0&&(i.push(l),l={type:o,provider:e,prefix:n,icons:[]},d=p.length),l.icons.push(p)}),i.push(l),i};function Ds(e){if(typeof e=="string"){const n=vn(e);if(n)return n.path}return"/"}const zs=(e,n,r)=>{if(!Jn){r("abort",424);return}let i=Ds(n.provider);switch(n.type){case"icons":{const o=n.prefix,d=n.icons.join(","),p=new URLSearchParams({icons:d});i+=o+".json?"+p.toString();break}case"custom":{const o=n.uri;i+=o.slice(0,1)==="/"?o.slice(1):o;break}default:r("abort",400);return}let s=503;Jn(e+i).then(o=>{const l=o.status;if(l!==200){setTimeout(()=>{r(Os(l)?"abort":"next",l)});return}return s=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?r("abort",o):r("next",s)});return}setTimeout(()=>{r("success",o)})}).catch(()=>{r("next",s)})},qs={prepare:$s,send:zs};function cr(e,n){e.forEach(r=>{const i=r.loaderCallbacks;i&&(r.loaderCallbacks=i.filter(s=>s.id!==n))})}function Us(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const n=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!n.length)return;let r=!1;const i=e.provider,s=e.prefix;n.forEach(o=>{const l=o.icons,d=l.pending.length;l.pending=l.pending.filter(p=>{if(p.prefix!==s)return!0;const _=p.name;if(e.icons[_])l.loaded.push({provider:i,prefix:s,name:_});else if(e.missing.has(_))l.missing.push({provider:i,prefix:s,name:_});else return r=!0,!0;return!1}),l.pending.length!==d&&(r||cr([e],o.id),o.callback(l.loaded.slice(0),l.missing.slice(0),l.pending.slice(0),o.abort))})}))}let Vs=0;function Bs(e,n,r){const i=Vs++,s=cr.bind(null,r,i);if(!n.pending.length)return s;const o={id:i,icons:n,callback:e,abort:s};return r.forEach(l=>{(l.loaderCallbacks||(l.loaderCallbacks=[])).push(o)}),s}function Hs(e){const n={loaded:[],missing:[],pending:[]},r=Object.create(null);e.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let i={provider:"",prefix:"",name:""};return e.forEach(s=>{if(i.name===s.name&&i.prefix===s.prefix&&i.provider===s.provider)return;i=s;const o=s.provider,l=s.prefix,d=s.name,p=r[o]||(r[o]=Object.create(null)),_=p[l]||(p[l]=Ge(o,l));let w;d in _.icons?w=n.loaded:l===""||_.missing.has(d)?w=n.missing:w=n.pending;const T={provider:o,prefix:l,name:d};w.push(T)}),n}function Js(e,n=!0,r=!1){const i=[];return e.forEach(s=>{const o=typeof s=="string"?zt(s,n,r):s;o&&i.push(o)}),i}const Qs={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Ws(e,n,r,i){const s=e.resources.length,o=e.random?Math.floor(Math.random()*s):e.index;let l;if(e.random){let P=e.resources.slice(0);for(l=[];P.length>1;){const X=Math.floor(Math.random()*P.length);l.push(P[X]),P=P.slice(0,X).concat(P.slice(X+1))}l=l.concat(P)}else l=e.resources.slice(o).concat(e.resources.slice(0,o));const d=Date.now();let p="pending",_=0,w,T=null,A=[],N=[];typeof i=="function"&&N.push(i);function R(){T&&(clearTimeout(T),T=null)}function U(){p==="pending"&&(p="aborted"),R(),A.forEach(P=>{P.status==="pending"&&(P.status="aborted")}),A=[]}function S(P,X){X&&(N=[]),typeof P=="function"&&N.push(P)}function j(){return{startTime:d,payload:n,status:p,queriesSent:_,queriesPending:A.length,subscribe:S,abort:U}}function h(){p="failed",N.forEach(P=>{P(void 0,w)})}function F(){A.forEach(P=>{P.status==="pending"&&(P.status="aborted")}),A=[]}function $(P,X,xe){const L=X!=="success";switch(A=A.filter(V=>V!==P),p){case"pending":break;case"failed":if(L||!e.dataAfterTimeout)return;break;default:return}if(X==="abort"){w=xe,h();return}if(L){w=xe,A.length||(l.length?J():h());return}if(R(),F(),!e.random){const V=e.resources.indexOf(P.resource);V!==-1&&V!==e.index&&(e.index=V)}p="completed",N.forEach(V=>{V(xe)})}function J(){if(p!=="pending")return;R();const P=l.shift();if(P===void 0){if(A.length){T=setTimeout(()=>{R(),p==="pending"&&(F(),h())},e.timeout);return}h();return}const X={status:"pending",resource:P,callback:(xe,L)=>{$(X,xe,L)}};A.push(X),_++,T=setTimeout(J,e.rotate),r(P,n,X.callback)}return setTimeout(J),j}function ur(e){const n={...Qs,...e};let r=[];function i(){r=r.filter(d=>d().status==="pending")}function s(d,p,_){const w=Ws(n,d,p,(T,A)=>{i(),_&&_(T,A)});return r.push(w),w}function o(d){return r.find(p=>d(p))||null}return{query:s,find:o,setIndex:d=>{n.index=d},getIndex:()=>n.index,cleanup:i}}function Qn(){}const rn=Object.create(null);function Gs(e){if(!rn[e]){const n=vn(e);if(!n)return;const r=ur(n),i={config:n,redundancy:r};rn[e]=i}return rn[e]}function Ks(e,n,r){let i,s;if(typeof e=="string"){const o=an(e);if(!o)return r(void 0,424),Qn;s=o.send;const l=Gs(e);l&&(i=l.redundancy)}else{const o=fn(e);if(o){i=ur(o);const l=e.resources?e.resources[0]:"",d=an(l);d&&(s=d.send)}}return!i||!s?(r(void 0,424),Qn):i.query(n,s,r)().abort}function Wn(){}function Xs(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Us(e)}))}function Zs(e){const n=[],r=[];return e.forEach(i=>{(i.match(tr)?n:r).push(i)}),{valid:n,invalid:r}}function mt(e,n,r){function i(){const s=e.pendingIcons;n.forEach(o=>{s&&s.delete(o),e.icons[o]||e.missing.add(o)})}if(r&&typeof r=="object")try{if(!ir(e,r).length){i();return}}catch(s){console.error(s)}i(),Xs(e)}function Gn(e,n){e instanceof Promise?e.then(r=>{n(r)}).catch(()=>{n(null)}):n(e)}function Ys(e,n){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(n).sort():e.iconsToLoad=n,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:r,prefix:i}=e,s=e.iconsToLoad;if(delete e.iconsToLoad,!s||!s.length)return;const o=e.loadIcon;if(e.loadIcons&&(s.length>1||!o)){Gn(e.loadIcons(s,i,r),w=>{mt(e,s,w)});return}if(o){s.forEach(w=>{const T=o(w,i,r);Gn(T,A=>{const N=A?{prefix:i,icons:{[w]:A}}:null;mt(e,[w],N)})});return}const{valid:l,invalid:d}=Zs(s);if(d.length&&mt(e,d,null),!l.length)return;const p=i.match(tr)?an(r):null;if(!p){mt(e,l,null);return}p.prepare(r,i,l).forEach(w=>{Ks(r,w,T=>{mt(e,w.icons,T)})})}))}const ei=(e,n)=>{const r=Js(e,!0,or()),i=Hs(r);if(!i.pending.length){let p=!0;return n&&setTimeout(()=>{p&&n(i.loaded,i.missing,i.pending,Wn)}),()=>{p=!1}}const s=Object.create(null),o=[];let l,d;return i.pending.forEach(p=>{const{provider:_,prefix:w}=p;if(w===d&&_===l)return;l=_,d=w,o.push(Ge(_,w));const T=s[_]||(s[_]=Object.create(null));T[w]||(T[w]=[])}),i.pending.forEach(p=>{const{provider:_,prefix:w,name:T}=p,A=Ge(_,w),N=A.pendingIcons||(A.pendingIcons=new Set);N.has(T)||(N.add(T),s[_][w].push(T))}),o.forEach(p=>{const _=s[p.provider][p.prefix];_.length&&Ys(p,_)}),n?Bs(n,i,o):Wn};function ti(e,n){const r={...e};for(const i in n){const s=n[i],o=typeof s;i in ar?(s===null||s&&(o==="string"||o==="number"))&&(r[i]=s):o===typeof r[i]&&(r[i]=i==="rotate"?s%4:s)}return r}const ni=/[\s,]+/;function ri(e,n){n.split(ni).forEach(r=>{switch(r.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function si(e,n=0){const r=e.replace(/^-?[0-9.]*/,"");function i(s){for(;s<0;)s+=4;return s%4}if(r===""){const s=parseInt(e);return isNaN(s)?0:i(s)}else if(r!==e){let s=0;switch(r){case"%":s=25;break;case"deg":s=90}if(s){let o=parseFloat(e.slice(0,e.length-r.length));return isNaN(o)?0:(o=o/s,o%1===0?i(o):0)}}return n}function ii(e,n){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in n)r+=" "+i+'="'+n[i]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+e+"</svg>"}function oi(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function ai(e){return"data:image/svg+xml,"+oi(e)}function li(e){return'url("'+ai(e)+'")'}const Kn={...lr,inline:!1},ci={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},ui={display:"inline-block"},ln={"background-color":"currentColor"},dr={"background-color":"transparent"},Xn={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},Zn={"-webkit-mask":ln,mask:ln,background:dr};for(const e in Zn){const n=Zn[e];for(const r in Xn)n[e+"-"+r]=Xn[r]}function di(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}function fi(e,n){const r=ti(Kn,n),i=n.mode||"svg",s=i==="svg"?{...ci}:{};e.body.indexOf("xlink:")===-1&&delete s["xmlns:xlink"];let o=typeof n.style=="string"?n.style:"";for(let j in n){const h=n[j];if(h!==void 0)switch(j){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":r[j]=h===!0||h==="true"||h===1;break;case"flip":typeof h=="string"&&ri(r,h);break;case"color":o=o+(o.length>0&&o.trim().slice(-1)!==";"?";":"")+"color: "+h+"; ";break;case"rotate":typeof h=="string"?r[j]=si(h):typeof h=="number"&&(r[j]=h);break;case"ariaHidden":case"aria-hidden":h!==!0&&h!=="true"&&delete s["aria-hidden"];break;default:if(j.slice(0,3)==="on:")break;Kn[j]===void 0&&(s[j]=h)}}const l=Ps(e,r),d=l.attributes;if(r.inline&&(o="vertical-align: -0.125em; "+o),i==="svg"){Object.assign(s,d),o!==""&&(s.style=o);let j=0,h=n.id;return typeof h=="string"&&(h=h.replace(/-/g,"_")),{svg:!0,attributes:s,body:Rs(l.body,h?()=>h+"ID"+j++:"iconifySvelte")}}const{body:p,width:_,height:w}=e,T=i==="mask"||(i==="bg"?!1:p.indexOf("currentColor")!==-1),A=ii(p,{...d,width:_+"",height:w+""}),R={"--svg":li(A)},U=j=>{const h=d[j];h&&(R[j]=di(h))};U("width"),U("height"),Object.assign(R,ui,T?ln:dr);let S="";for(const j in R)S+=j+": "+R[j]+";";return s.style=S+o,{svg:!1,attributes:s}}or(!0);As("",qs);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const n=e.IconifyPreload,r="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!ys(i))&&console.error(r)}catch{console.error(r)}})}if(e.IconifyProviders!==void 0){const n=e.IconifyProviders;if(typeof n=="object"&&n!==null)for(let r in n){const i="IconifyProviders["+r+"] is invalid.";try{const s=n[r];if(typeof s!="object"||!s||s.resources===void 0)continue;Ns(r,s)||console.error(i)}catch{console.error(i)}}}}function pi(e,n,r,i,s){function o(){n.loading&&(n.loading.abort(),n.loading=null)}if(typeof e=="object"&&e!==null&&typeof e.body=="string")return n.name="",o(),{data:{...qt,...e}};let l;if(typeof e!="string"||(l=zt(e,!1,!0))===null)return o(),null;const d=xs(l);if(!d)return r&&(!n.loading||n.loading.name!==e)&&(o(),n.name="",n.loading={name:e,abort:ei([l],i)}),null;o(),n.name!==e&&(n.name=e,s&&!n.destroyed&&setTimeout(()=>{s(e)}));const p=["iconify"];return l.prefix!==""&&p.push("iconify--"+l.prefix),l.provider!==""&&p.push("iconify--"+l.provider),{data:d,classes:p}}function vi(e,n){return e?fi({...qt,...e},n):null}var gi=Yr("<svg><!></svg>"),hi=O("<span></span>");function _t(e,n){un(n,!0);const r={name:"",loading:null,destroyed:!1},i=cs(n,["$$slots","$$events","$$legacy"]);let s=q(!1),o=q(0),l=z(()=>!!n.ssr||t(s)),d=z(()=>(t(o),pi(n.icon,r,t(l),_,n.onload))),p=z(()=>{const N=t(d)?vi(t(d).data,i):null;return N&&t(d).classes&&(N.attributes.class=(typeof i.class=="string"?i.class+" ":"")+t(d).classes.join(" ")),N});function _(){Zr(o)}Yn(()=>{u(s,!0)}),cn(()=>{r.destroyed=!0,r.loading&&(r.loading.abort(),r.loading=null)});var w=$t(),T=_e(w);{var A=N=>{var R=$t(),U=_e(R);{var S=h=>{var F=gi();$n(F,()=>({...t(p).attributes}));var $=b(F);ls($,()=>t(p).body,!0),m(F),I(h,F)},j=h=>{var F=hi();$n(F,()=>({...t(p).attributes})),I(h,F)};Q(U,h=>{t(p).svg?h(S):h(j,!1)})}I(N,R)};Q(T,N=>{t(p)&&N(A)})}I(e,w),dn()}var mi=O('<div class="w-full"></div>');function _i(e,n){un(n,!0);let r=q(null),i=null,s=[],o=null,l=!1,d,p=qn(n,"language",3,"plaintext"),_=qn(n,"height",3,120),w=[],T=q(!1);function A(R){t(T)||R.stopPropagation()}Yn(async()=>{var F,$;if(!d)return;d.addEventListener("wheel",A,{capture:!0,passive:!0}),ds();const R=await Un(()=>import("../chunks/DLQqXQ6R.js").then(J=>J.e),__vite__mapDeps([0,1,2]),import.meta.url);if(l)return;o=R,fs(R);const U=p()==="json"?"json":p()==="markdown"?"markdown":"plaintext";u(r,R.editor.create(d,{value:n.value??"",language:U,theme:"bosun-dark",lineNumbers:"off",fontSize:14,fontFamily:'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',automaticLayout:!0,minimap:{enabled:!1},wordBasedSuggestions:"off",wordWrap:"bounded",wordWrapColumn:75,wrappingStrategy:"advanced",scrollbar:{vertical:"hidden",horizontal:"hidden"},overviewRulerLanes:0,renderLineHighlight:"none",folding:!1,renderWhitespace:"none",padding:{top:4,bottom:4},matchBrackets:"never",bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:"off",selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:"never"}),!0);const S=t(r);if(!S)return;i=S.getModel(),s.push(S.onDidFocusEditorText(()=>{u(T,!0)})),s.push(S.onDidChangeModelContent(()=>{var J;try{const P=S.getValue();if(P===n.value)return;(J=n.onChange)==null||J.call(n,P)}catch(P){console.error("MiniEditor change error",P)}})),s.push(S.onDidBlurEditorText(()=>{var J;u(T,!1);try{(J=n.onBlur)==null||J.call(n,S.getValue())}catch{}}));const j=(F=S.onDidFocusEditorWidget)==null?void 0:F.call(S,()=>{u(T,!0)});j&&s.push(j);const h=($=S.onDidBlurEditorWidget)==null?void 0:$.call(S,()=>{var J;u(T,!1);try{(J=n.onBlur)==null||J.call(n,S.getValue())}catch{}});h&&s.push(h)}),cn(()=>{l=!0;try{d.removeEventListener("wheel",A,{capture:!0})}catch{}for(const U of s)try{U.dispose()}catch{}s=[];const R=i;i=null;try{if(t(r)){try{t(r).setModel(null)}catch{}t(r).dispose()}}finally{u(r,null)}try{R==null||R.dispose()}catch{}o=null}),jt(()=>{if(!t(r))return;const R=p()==="json"?"json":p()==="markdown"?"markdown":"plaintext",U=t(r).getModel();if(!U||U.getLanguageId()===R)return;let S=!1;return(o?Promise.resolve(o):Un(()=>import("../chunks/DLQqXQ6R.js").then(h=>h.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(h=>{if(!S)try{h.editor.setModelLanguage(U,R)}catch{}}),()=>{S=!0}}),jt(()=>{t(r)&&n.value!==t(r).getValue()&&t(r).setValue(n.value??"")}),jt(()=>{const R=n.highlights;if(!t(r)||!i||!o)return;const U=o,S=i.getLineCount(),j=[];for(const h of R??[]){const F=Math.max(1,Math.min(S,Number(h.startLine)||1)),$=Math.max(F,Math.min(S,Number(h.endLine)||F)),J=i.getLineMaxColumn($);if(j.push({range:new U.Range(F,1,$,J),options:{inlineClassName:h.className}}),h.className==="test-expected-output")for(let P=F;P<=$;P++){const X=i.getLineContent(P),xe=/<\/?[A-Za-z][^>]*?>/g;let L;for(;L=xe.exec(X);){const V=(L.index??0)+1,Ce=Math.min(i.getLineMaxColumn(P),V+String(L[0]??"").length);Ce<=V||j.push({range:new U.Range(P,V,P,Ce),options:{inlineClassName:"test-expected-output-tag"}})}}}w=t(r).deltaDecorations(w,j)});var N=mi();us(N,R=>d=R,()=>d),te(()=>er(N,`height:${_()}px`)),I(e,N),dn()}var xi=O('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),bi=O("<!> <!>",1),yi=O('<div class="p-2 text-gray-300">Loading…</div>'),wi=O('<div class="p-2 text-red-400"> </div>'),ki=O('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),Ci=O('<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-3 py-1 text-white"> </span> <!></div>'),Si=O("<!> New test",1),Ii=O('<div class="pointer-events-none absolute -left-28 top-full mt-4 inline-flex -translate-x-1/2 flex-col items-center"><div class="relative w-50vw max-w-2xl"><img src="/ui/arrow_tests.svg" alt="Arrow" class="block h-auto w-full object-contain"/> <span class="absolute inset-0 mt-48 flex items-center justify-center text-center text-4xl font-extrabold text-rc-gray-200">No tests yet.<br/>Add the first one</span></div></div>'),Ti=async(e,n,r)=>{await n(!t(r))},Pi=O('<div class="p-3 text-gray-400">—</div>'),Ei=async(e,n,r,i,s)=>{const o=!t(n).pinned;u(r,t(r).map(l=>l.id===t(n).id?{...l,pinned:o}:l),!0),await i(s(t(n).id,{pinned:o?"TRUE":"FALSE"}))},Li=(e,n,r)=>n(t(r).id),Mi=(e,n,r)=>n(t(r).id,{scenario:t(r).scenario}),Ri=(e,n,r)=>n(t(r).id),Ai=O('<span class="ml-2 text-rc-gray-400"> </span>'),Ni=O('<span><!><span class="ml-1">significant</span></span>'),ji=O('<span class="text-rc-gray-200"> </span> <!> <!>',1),Fi=O('<span class="text-rc-gray-500">—</span>'),Oi=O('<div class="mt-1 px-1 text-sm font-semibold text-rc-gray-300"><!></div>'),$i=O('<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600">Invalid test: expected must be the last block (“Agent: …”)</div>'),Di=(e,n,r)=>n(t(r).id,{author:t(r).author||""}),zi=(e,n,r)=>n(t(r).id,{assertion_type:t(r).assertion_type}),qi=O("<option> </option>"),Ui=(e,n,r)=>n(t(r).id,{assertion_value:t(r).assertion_value}),Vi=(e,n,r,i)=>{t(n).timeout=r(+t(n).timeout||0,0,999),i(t(n).id,{timeout:String(t(n).timeout)})},Bi=(e,n,r,i)=>{t(n).similarity_threshold=r(+t(n).similarity_threshold||0,0,100),i(t(n).id,{similarity_threshold:String(t(n).similarity_threshold)})},Hi=O('<span class="ml-2 text-rc-gray-400"> </span>'),Ji=O('<span><!><span class="ml-1">significant</span></span>'),Qi=O('<div class="text-lg font-extrabold"><span class="text-rc-gray-200"> </span> <!> <!></div>'),Wi=(e,n,r)=>n("Rendered Prompt",t(r).links.renderedPrompt),Gi=(e,n,r)=>n("Received Prompt",t(r).links.receivedPrompt),Ki=(e,n,r)=>n("Conversation",t(r).links.conversation),Xi=(e,n,r)=>n("Context",t(r).links.context),Zi=(e,n,r)=>n("Logs",t(r).links.logs),Yi=(e,n,r)=>n("Errors",t(r).links.errors),eo=(e,n,r)=>n("Traces",t(r).links.traces),to=(e,n,r,i)=>n(t(r).scenario||"Test",t(i).index,t(i).links.renderedPrompt),no=O('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <div class="mt-1 flex flex-wrap items-center gap-x-4"><button type="button" class="pseudolink svelte-rdft55">Rendered prompt</button> <button type="button" class="pseudolink svelte-rdft55">Received prompt</button> <button type="button" class="pseudolink svelte-rdft55">Conversation</button> <button type="button" class="pseudolink svelte-rdft55">Context</button> <button type="button" class="pseudolink svelte-rdft55">Logs</button> <button type="button" class="pseudolink svelte-rdft55">Errors</button> <button type="button" class="pseudolink svelte-rdft55">Traces</button> <button type="button" class="pseudolink svelte-rdft55">Analyze</button></div></div></div>'),ro=O('<div class="mt-3 flex flex-col gap-4"></div>'),so=O('<div class="flex flex-col gap-2 p-2"><!> <input class="card-input-subtle svelte-rdft55" type="text" placeholder="Author"/> <div class="flex items-center gap-2"><select class="rc-scroll rc-input w-36 svelte-rdft55" aria-label="Assertion Type"></select> <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text" placeholder="Assertion value"/></div> <div class="flex flex-wrap items-center gap-3"><div class="flex items-center gap-2"><span class="text-rc-gray-300">Timeout (s)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="999" placeholder="Timeout"/></div> <div class="flex items-center gap-2"><span class="text-rc-gray-300">Similarity (%)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="100" placeholder="Similarity (%)"/></div> <!></div> <!></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2"><div class="flex flex-wrap items-center gap-3"><!> <!></div> <!></div>',1),io=O('<div class="border-b border-rc-gray-700 p-2"><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1"><button><!></button> <button title="Duplicate" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button> <button title="Delete" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <div class="min-w-0"><div><div><div class="grid grid-cols-[1fr,2.25rem] items-center gap-2"><input class="card-input-title svelte-rdft55" type="text" placeholder="Scenario"/> <button class="icon-btn justify-self-end text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <!></div> <!></div></div></div></div>'),oo=O('<div class="flex flex-col space-y-5"></div>'),ao=O('<div class="min-h-0 flex-1 overflow-hidden p-3"><!></div>'),lo=O('<div class="rc-scroll min-h-0 flex-1 overflow-auto"><div class="grid grid-cols-[2.25rem,1fr] items-center gap-2 border-b border-rc-gray-700 p-2"><button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button> <span class="text-left text-rc-gray-300"> </span></div> <!></div> <!>',1),co=O('<div class="flex h-full min-h-0 flex-col"><div class="flex flex-none items-center justify-between gap-3 p-2"><div class="flex flex-wrap items-center gap-3 pl-11"><div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> <!></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> <!></div></div> <div class="flex flex-wrap items-center gap-3"><!> <!> <div class="relative inline-flex items-center"><!> <!></div> <!></div></div> <div class="min-h-0 flex-1 overflow-hidden"><!></div></div>'),uo=O("<!> <!> <!>",1);function Mo(e,n){un(n,!0);const{state:r,actions:i}=is(),s=z(()=>r.agentId),o=z(()=>r.region);function l(a){try{return structuredClone(a)}catch{try{return JSON.parse(JSON.stringify(a))}catch{return a}}}function d(a,f,c){return Math.max(f,Math.min(c,a))}let p=q(1),_=q(1),w=q(dt({})),T=q(dt({})),A=q(!1),N=q(null),R=q(dt({})),U=q(!1),S=q(""),j=q(null),h=q(!1),F=q(null);async function $(a,f){u(S,a,!0),u(j,null),u(F,null),u(h,!0),u(U,!0);try{const c=await ee.tests.resultEntry.query({agent:f.agent,region:t(o),testId:f.id,resultKey:f.key,timestamp:f.timestamp,index:f.run});let g=c;try{const v=JSON.parse(c);g=JSON.stringify(v,null,2)}catch{}u(j,g,!0)}catch(c){console.error(c),u(F,"Failed to load content")}finally{u(h,!1)}}let J=q(!1);async function P(a,f,c){var C;if(t(J))return;u(J,!0);const g=i.openPopover("analyze"),v=`Analysis — ${a} (run ${f})`;try{const y=await ee.tests.analyzeRun.mutate({agent:c.agent,region:t(o),testId:c.id,index:c.run,timestamp:c.timestamp});if(((C=r.edit.popover)==null?void 0:C.requestId)!==g)return;i.setHighlightQuotes(y.quotes);let E=null;try{E=JSON.stringify(y.raw,null,2)}catch{E=null}i.setPopoverReady(g,{title:v,quotes:y.quotes,rationales:y.rationales,parallelCalls:y.parallelCalls,raw:E})}catch(y){console.error(y);const E=typeof(y==null?void 0:y.message)=="string"?y.message:(()=>{try{return JSON.stringify(y)}catch{return String(y)}})();i.setPopoverError(g,E||"Failed to analyze this response",{raw:E})}finally{u(J,!1)}}const X=[{value:"llm-rubric",label:"LLM"},{value:"answer-relevance",label:"Answer Relevance (LLM)"},{value:"context-faithfulness",label:"Context Faithfulness (LLM)"},{value:"context-recall",label:"Context Recall (LLM)"},{value:"context-relevance",label:"Context Relevance (LLM)"},{value:"model-graded-closedqa",label:"Model-Graded Closed QA"},{value:"model-graded-factuality",label:"Model-Graded Factuality"},{value:"moderation",label:"Moderation"},{value:"classifier",label:"Classifier"},{value:"g-eval",label:"G-Eval"},{value:"factuality",label:"Factuality"},{value:"conversation-relevance",label:"Conversation Relevance"},{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"icontains",label:"Contains (case-insensitive)"},{value:"contains-all",label:"Contains All"},{value:"contains-any",label:"Contains Any"},{value:"icontains-all",label:"Contains All (iCase)"},{value:"icontains-any",label:"Contains Any (iCase)"},{value:"starts-with",label:"Starts With"},{value:"regex",label:"Regex"},{value:"levenshtein",label:"Levenshtein Distance"},{value:"is-refusal",label:"Is Refusal"},{value:"is-html",label:"Is HTML"},{value:"contains-html",label:"Contains HTML"},{value:"is-json",label:"Is JSON"},{value:"contains-json",label:"Contains JSON"},{value:"is-xml",label:"Is XML"},{value:"contains-xml",label:"Contains XML"},{value:"is-sql",label:"Is SQL"},{value:"contains-sql",label:"Contains SQL"},{value:"similar",label:"Semantic Similarity"},{value:"rouge-n",label:"ROUGE-N"},{value:"bleu",label:"BLEU"},{value:"gleu",label:"GLEU"},{value:"meteor",label:"METEOR"},{value:"perplexity",label:"Perplexity"},{value:"perplexity-score",label:"Perplexity Score"},{value:"latency",label:"Latency"},{value:"cost",label:"Cost"},{value:"finish-reason",label:"Finish Reason"},{value:"trace-error-spans",label:"Trace Error Spans"},{value:"trace-span-count",label:"Trace Span Count"},{value:"trace-span-duration",label:"Trace Span Duration"},{value:"is-valid-function-call",label:"Is Valid Function Call"},{value:"is-valid-openai-function-call",label:"Is Valid OpenAI Function Call"},{value:"is-valid-openai-tools-call",label:"Is Valid OpenAI Tools Call"},{value:"guardrails",label:"Guardrails"},{value:"javascript",label:"JavaScript (custom)"},{value:"python",label:"Python (custom)"},{value:"webhook",label:"Webhook (custom)"},{value:"pi",label:"Pi Scorer"}],xe=[...X,...X.map(a=>({value:`not-${a.value}`,label:`Not ${a.label}`}))];let L=q(dt([])),V=q(!1),Ce=q(!1),ze=q(!1),Ke=q(null),bt=q(null),yt=q(0),Ut=q(0),Xe=q(1),Vt=!1,ne=null,Ze=0;const wt=new Set;let Ye=q(0);const me=z(()=>t(Ye)>0);let et=q(!1),Ae=q(dt([]));const gn=z(()=>new Set(t(Ae)));function Se(a){return wt.add(a),u(Ye,t(Ye)+1),a.finally(()=>{wt.delete(a),u(Ye,t(Ye)-1)}),a}function hn(a,f,c){const g=Array.isArray(c.results)?c.results:[],v=g.reduce((C,y)=>C+(y!=null&&y.success?1:0),0);return{success_rate:c.success_rate,successes:v,total_runs:g.length,isOld:!!c.is_old,previous:c.previous&&typeof c.previous=="object"?{success_count:Number(c.previous.success_count??0),total_runs:Number(c.previous.total_runs??0),report_timestamp:String(c.previous.report_timestamp??"")}:void 0,runs:g.map((C,y)=>{const E=c.report_timestamp,M={agent:a,id:f,timestamp:E,run:y};return{index:y+1,success:!!C.success,text:String(C.result||""),evaluation:String(C.evaluation||""),errors:String(C.errors||""),links:{renderedPrompt:{...M,key:"rendered_prompt"},receivedPrompt:{...M,key:"received_prompt"},conversation:{...M,key:"stringified_conversation"},context:{...M,key:"received_context"},logs:{...M,key:"logs"},errors:{...M,key:"errors"},traces:{...M,key:"traces"}}}}).reverse()}}async function qe(){const a=(t(s)??"").trim();if(a)try{const[{rows:f},c,g]=await Promise.all([ee.tests.list.query({agent:a,region:t(o)}),ee.tests.config.query({agent:a,region:t(o)}),ee.tests.latestResult.query({agent:a,region:t(o)})]);if((t(s)??"").trim()!==a)return;u(p,c.repeats??1,!0),u(_,c.concurrency??1,!0),u(w,c.defaultContext??{},!0),u(Ae,c.expandedTestIds??[],!0),u(L,f.map(v=>{const C=v.id,y=g[C];return{id:C,pinned:String(v.pinned).toUpperCase()==="TRUE",scenario:v.scenario||"",step:String(v.step??""),author:v.author||"",assertion_type:v.assertion_type||"llm-rubric",assertion_value:v.assertion_value||"",conversation:v.conversation||"",expected_output:v.expected_output||"",conversation_ui:xn(v.conversation||"",v.expected_output||""),timeout:Number(v.timeout??0),similarity_threshold:Number(v.similarity_threshold??60),context:JSON.stringify(v.context),result:y?hn(a,C,y):void 0}}),!0)}catch(f){if(console.error(f),(t(s)??"").trim()!==a)return;u(L,[],!0),u(p,1),u(_,1),u(w,{},!0),u(Ae,[],!0)}finally{(t(s)??"").trim()===a&&u(et,!0)}}async function kt(a){const f=(t(s)??"").trim();if(f&&!Vt){Vt=!0;try{const c=await ee.tests.latestResult.query({agent:f,region:t(o)});if(a!==Ze)return;const g=t(L).map(E=>{const M=c[E.id];return{...E,result:M?hn(f,E.id,M):void 0}});u(L,g,!0);const v=t(Ke),C=Math.max(1,Number(t(Xe))||1),y=g.reduce((E,M)=>v==="single"&&M.id!==t(bt)||v==="pinned"&&!M.pinned?E:M.result&&!M.result.isOld&&M.result.total_runs>=C?E+1:E,0);u(yt,y,!0)}catch(c){console.error(c)}finally{Vt=!1}}}async function fr(a){u(V,!0),u(ze,!1),u(Ke,a,!0),u(bt,null),u(Ut,a==="all"?t(L).length:t(L).filter(c=>c.pinned).length,!0),u(yt,0),u(Xe,Math.max(1,Number(t(p))||1),!0),Ze+=1;const f=Ze;await Promise.all([...wt]),ne&&clearInterval(ne),ne=setInterval(()=>kt(f),800),kt(f);try{await ee.tests.runTests.mutate({agent:t(s),region:t(o),scope:a})}finally{ne&&clearInterval(ne),ne=null;try{await qe()}finally{u(V,!1),u(Ke,null)}}}async function pr(a){if(!t(s))return;u(V,!0),u(ze,!1),u(Ke,"single"),u(bt,a,!0),u(Ut,1),u(yt,0),u(Xe,Math.max(1,Number(t(p))||1),!0),Ze+=1;const f=Ze;await Promise.all([...wt]),ne&&clearInterval(ne),ne=setInterval(()=>kt(f),800),kt(f);try{await ee.tests.runTests.mutate({agent:t(s),region:t(o),testId:a})}finally{ne&&clearInterval(ne),ne=null;try{await qe()}finally{u(V,!1),u(Ke,null),u(bt,null)}}}async function vr(){if(!(!t(V)||t(Ce)||t(ze))){u(Ce,!0);try{await ee.tests.cancelRun.mutate({agent:t(s),region:t(o)})&&u(ze,!0)}catch(a){console.error(a)}finally{u(Ce,!1)}}}async function gr(a){const f=a?"TRUE":"FALSE",c=t(L).filter(v=>v.pinned!==a).map(v=>v.id);if(c.length===0)return;const g=new Set(c);u(L,t(L).map(v=>g.has(v.id)?{...v,pinned:a}:v),!0);try{await Se(ee.tests.patchTestsBatch.mutate({agent:t(s),region:t(o),updates:c.map(v=>({id:v,patch:{pinned:f}}))}))}catch(v){console.error(v),await qe()}}let Bt=null;jt(()=>{const a=(t(s)??"").trim(),f=(t(o)??"").trim(),c=r.availableRegions,g=Array.isArray(c)&&c.length>0;if(!a){Bt=null,u(L,[],!0),u(Ae,[],!0),u(et,!1);return}if(g&&!f)return;const v=`${a}::${f}`;Bt!==v&&(Bt=v,u(L,[],!0),u(Ae,[],!0),u(et,!1)),qe()});const Ct=z(()=>t(L).filter(a=>a.pinned).length),tt=z(()=>t(Ct)>0),hr=z(()=>t(L).length>0&&t(Ct)===t(L).length);async function mr(){const a=await ee.tests.addTest.mutate({agent:t(s),region:t(o),seed:{},mergeContexts:!0}),f=mn(a);u(L,[f,...t(L)],!0),St(f.id,!0).catch(console.error)}function mn(a){return{...a,step:String(a.step??""),pinned:a.pinned==="TRUE",timeout:Number(a.timeout),similarity_threshold:Number(a.similarity_threshold),context:JSON.stringify(a.context),conversation_ui:xn(a.conversation||"",a.expected_output||"")}}function _r(a){const{conversation_ui:f,...c}=a;return{...c,pinned:a.pinned?"TRUE":"FALSE",timeout:String(a.timeout??0),similarity_threshold:String(a.similarity_threshold??60),context:JSON.parse(a.context)}}async function xr(a,f){const c=_r(a);c.id=crypto.randomUUID();const g=await ee.tests.addTest.mutate({agent:t(s),region:t(o),seed:c,mergeContexts:!0}),v=mn(g),C=t(L).slice();C.splice(f,0,v),u(L,C,!0),St(v.id,!0).catch(console.error),await ee.tests.reorder.mutate({agent:t(s),region:t(o),order:t(L).map(y=>y.id)})}function br(a){if(!a)return"";try{return a.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return a}}function yr(a){try{return a&&a.trim()?JSON.parse(a):{}}catch{return{}}}const _n=a=>a.match(/^\s*(agent|assistant|user|system)\s*:\s*(.*)$/i);function wr(a){const f=String(a??"").trimEnd();return f?/^\s*(agent|assistant)\s*:/i.test(f)?f:`Agent: ${f}`:""}function xn(a,f){const c=String(a??"").trimEnd(),g=wr(f);return g?c?`${c}
|
|
3
|
-
${g}`:g:c}function bn(a){const f=String(a??""),c=f.split(/\r?\n/),g=[];let v=null;for(let fe=0;fe<c.length;fe++){const
|
|
2
|
+
import"../chunks/CWj6FrbW.js";import{o as Yn,b as cn,s as ie}from"../chunks/CB3MYTwM.js";import{p as un,l as u,i as q,q as Dt,a as _e,h as t,u as O,b as I,c as dn,aV as Zr,aq as Yr,d as b,r as m,f as $,k as Ft,t as te,e as es,j as ft,m as ts,s as k,n as he,g as Me}from"../chunks/BRMnbBOX.js";import{i as Q}from"../chunks/BFchB-2I.js";import{M as On,k as ns}from"../chunks/CJHvtD7r.js";import{e as tn,i as rs}from"../chunks/D_iTaAhh.js";import{a as $n,s as er,r as pt,c as vt,b as ss}from"../chunks/3HVf2z3Q.js";import{s as Re}from"../chunks/DMtzEpj5.js";import{b as gt}from"../chunks/DAyj7AJo.js";import{g as is,P as os}from"../chunks/Bk5z628g.js";import{B as ke}from"../chunks/C8-d_pGN.js";import{C as Dn,P as as}from"../chunks/CnRh8Bgk.js";import{I as zn}from"../chunks/DT74mAuZ.js";import{h as ls,I as ht}from"../chunks/Bb9ZigkD.js";import{r as cs,p as qn}from"../chunks/DCT4VKzQ.js";import{_ as Un}from"../chunks/C1FmrZbK.js";import{b as us}from"../chunks/CmatTLDp.js";import{e as ds,a as fs}from"../chunks/BU7aeYn4.js";import{t as ee}from"../chunks/BEJ5fU19.js";const tr=/^[a-z0-9]+(-[a-z0-9]+)*$/,qt=(e,n,r,i="")=>{const s=e.split(":");if(e.slice(0,1)==="@"){if(s.length<2||s.length>3)return null;i=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const d=s.pop(),p=s.pop(),_={provider:s.length>0?s[0]:i,prefix:p,name:d};return n&&!Ot(_)?null:_}const o=s[0],l=o.split("-");if(l.length>1){const d={provider:i,prefix:l.shift(),name:l.join("-")};return n&&!Ot(d)?null:d}if(r&&i===""){const d={provider:i,prefix:"",name:o};return n&&!Ot(d,r)?null:d}return null},Ot=(e,n)=>e?!!((n&&e.prefix===""||e.prefix)&&e.name):!1;function ps(e,n){const r=e.icons,i=e.aliases||Object.create(null),s=Object.create(null);function o(l){if(r[l])return s[l]=[];if(!(l in s)){s[l]=null;const d=i[l]&&i[l].parent,p=d&&o(d);p&&(s[l]=[d].concat(p))}return s[l]}return Object.keys(r).concat(Object.keys(i)).forEach(o),s}const nr=Object.freeze({left:0,top:0,width:16,height:16}),zt=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ut=Object.freeze({...nr,...zt}),sn=Object.freeze({...Ut,body:"",hidden:!1});function vs(e,n){const r={};!e.hFlip!=!n.hFlip&&(r.hFlip=!0),!e.vFlip!=!n.vFlip&&(r.vFlip=!0);const i=((e.rotate||0)+(n.rotate||0))%4;return i&&(r.rotate=i),r}function Vn(e,n){const r=vs(e,n);for(const i in sn)i in zt?i in e&&!(i in r)&&(r[i]=zt[i]):i in n?r[i]=n[i]:i in e&&(r[i]=e[i]);return r}function gs(e,n,r){const i=e.icons,s=e.aliases||Object.create(null);let o={};function l(d){o=Vn(i[d]||s[d],o)}return l(n),r.forEach(l),Vn(e,o)}function rr(e,n){const r=[];if(typeof e!="object"||typeof e.icons!="object")return r;e.not_found instanceof Array&&e.not_found.forEach(s=>{n(s,null),r.push(s)});const i=ps(e);for(const s in i){const o=i[s];o&&(n(s,gs(e,s,o)),r.push(s))}return r}const hs={provider:"",aliases:{},not_found:{},...nr};function nn(e,n){for(const r in n)if(r in e&&typeof e[r]!=typeof n[r])return!1;return!0}function sr(e){if(typeof e!="object"||e===null)return null;const n=e;if(typeof n.prefix!="string"||!e.icons||typeof e.icons!="object"||!nn(e,hs))return null;const r=n.icons;for(const s in r){const o=r[s];if(!s||typeof o.body!="string"||!nn(o,sn))return null}const i=n.aliases||Object.create(null);for(const s in i){const o=i[s],l=o.parent;if(!s||typeof l!="string"||!r[l]&&!i[l]||!nn(o,sn))return null}return n}const Bn=Object.create(null);function ms(e,n){return{provider:e,prefix:n,icons:Object.create(null),missing:new Set}}function Ge(e,n){const r=Bn[e]||(Bn[e]=Object.create(null));return r[n]||(r[n]=ms(e,n))}function ir(e,n){return sr(n)?rr(n,(r,i)=>{i?e.icons[r]=i:e.missing.add(r)}):[]}function _s(e,n,r){try{if(typeof r.body=="string")return e.icons[n]={...r},!0}catch{}return!1}let bt=!1;function or(e){return typeof e=="boolean"&&(bt=e),bt}function xs(e){const n=typeof e=="string"?qt(e,!0,bt):e;if(n){const r=Ge(n.provider,n.prefix),i=n.name;return r.icons[i]||(r.missing.has(i)?null:void 0)}}function bs(e,n){const r=qt(e,!0,bt);if(!r)return!1;const i=Ge(r.provider,r.prefix);return n?_s(i,r.name,n):(i.missing.add(r.name),!0)}function ys(e,n){if(typeof e!="object")return!1;if(typeof n!="string"&&(n=e.provider||""),bt&&!n&&!e.prefix){let s=!1;return sr(e)&&(e.prefix="",rr(e,(o,l)=>{bs(o,l)&&(s=!0)})),s}const r=e.prefix;if(!Ot({prefix:r,name:"a"}))return!1;const i=Ge(n,r);return!!ir(i,e)}const ar=Object.freeze({width:null,height:null}),lr=Object.freeze({...ar,...zt}),ws=/(-?[0-9.]*[0-9]+[0-9.]*)/g,ks=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Hn(e,n,r){if(n===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*n*r)/r;if(typeof e!="string")return e;const i=e.split(ws);if(i===null||!i.length)return e;const s=[];let o=i.shift(),l=ks.test(o);for(;;){if(l){const d=parseFloat(o);isNaN(d)?s.push(o):s.push(Math.ceil(d*n*r)/r)}else s.push(o);if(o=i.shift(),o===void 0)return s.join("");l=!l}}function Cs(e,n="defs"){let r="";const i=e.indexOf("<"+n);for(;i>=0;){const s=e.indexOf(">",i),o=e.indexOf("</"+n);if(s===-1||o===-1)break;const l=e.indexOf(">",o);if(l===-1)break;r+=e.slice(s+1,o).trim(),e=e.slice(0,i).trim()+e.slice(l+1)}return{defs:r,content:e}}function Ss(e,n){return e?"<defs>"+e+"</defs>"+n:n}function Is(e,n,r){const i=Cs(e);return Ss(i.defs,n+i.content+r)}const Ts=e=>e==="unset"||e==="undefined"||e==="none";function Ps(e,n){const r={...Ut,...e},i={...lr,...n},s={left:r.left,top:r.top,width:r.width,height:r.height};let o=r.body;[r,i].forEach(U=>{const S=[],j=U.hFlip,h=U.vFlip;let F=U.rotate;j?h?F+=2:(S.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),S.push("scale(-1 1)"),s.top=s.left=0):h&&(S.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),S.push("scale(1 -1)"),s.top=s.left=0);let D;switch(F<0&&(F-=Math.floor(F/4)*4),F=F%4,F){case 1:D=s.height/2+s.top,S.unshift("rotate(90 "+D.toString()+" "+D.toString()+")");break;case 2:S.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:D=s.width/2+s.left,S.unshift("rotate(-90 "+D.toString()+" "+D.toString()+")");break}F%2===1&&(s.left!==s.top&&(D=s.left,s.left=s.top,s.top=D),s.width!==s.height&&(D=s.width,s.width=s.height,s.height=D)),S.length&&(o=Is(o,'<g transform="'+S.join(" ")+'">',"</g>"))});const l=i.width,d=i.height,p=s.width,_=s.height;let w,T;l===null?(T=d===null?"1em":d==="auto"?_:d,w=Hn(T,p/_)):(w=l==="auto"?p:l,T=d===null?Hn(w,_/p):d==="auto"?_:d);const A={},N=(U,S)=>{Ts(S)||(A[U]=S.toString())};N("width",w),N("height",T);const R=[s.left,s.top,p,_];return A.viewBox=R.join(" "),{attributes:A,viewBox:R,body:o}}const Es=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Ms=0;function Rs(e,n=Ls){const r=[];let i;for(;i=Es.exec(e);)r.push(i[1]);if(!r.length)return e;const s="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(o=>{const l=typeof n=="function"?n(o):n+(Ms++).toString(),d=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+l+s+"$3")}),e=e.replace(new RegExp(s,"g"),""),e}const on=Object.create(null);function As(e,n){on[e]=n}function an(e){return on[e]||on[""]}function fn(e){let n;if(typeof e.resources=="string")n=[e.resources];else if(n=e.resources,!(n instanceof Array)||!n.length)return null;return{resources:n,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const pn=Object.create(null),mt=["https://api.simplesvg.com","https://api.unisvg.com"],$t=[];for(;mt.length>0;)mt.length===1||Math.random()>.5?$t.push(mt.shift()):$t.push(mt.pop());pn[""]=fn({resources:["https://api.iconify.design"].concat($t)});function Ns(e,n){const r=fn(n);return r===null?!1:(pn[e]=r,!0)}function vn(e){return pn[e]}const js=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let Jn=js();function Fs(e,n){const r=vn(e);if(!r)return 0;let i;if(!r.maxURL)i=0;else{let s=0;r.resources.forEach(l=>{s=Math.max(s,l.length)});const o=n+".json?icons=";i=r.maxURL-s-r.path.length-o.length}return i}function Os(e){return e===404}const $s=(e,n,r)=>{const i=[],s=Fs(e,n),o="icons";let l={type:o,provider:e,prefix:n,icons:[]},d=0;return r.forEach((p,_)=>{d+=p.length+1,d>=s&&_>0&&(i.push(l),l={type:o,provider:e,prefix:n,icons:[]},d=p.length),l.icons.push(p)}),i.push(l),i};function Ds(e){if(typeof e=="string"){const n=vn(e);if(n)return n.path}return"/"}const zs=(e,n,r)=>{if(!Jn){r("abort",424);return}let i=Ds(n.provider);switch(n.type){case"icons":{const o=n.prefix,d=n.icons.join(","),p=new URLSearchParams({icons:d});i+=o+".json?"+p.toString();break}case"custom":{const o=n.uri;i+=o.slice(0,1)==="/"?o.slice(1):o;break}default:r("abort",400);return}let s=503;Jn(e+i).then(o=>{const l=o.status;if(l!==200){setTimeout(()=>{r(Os(l)?"abort":"next",l)});return}return s=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?r("abort",o):r("next",s)});return}setTimeout(()=>{r("success",o)})}).catch(()=>{r("next",s)})},qs={prepare:$s,send:zs};function cr(e,n){e.forEach(r=>{const i=r.loaderCallbacks;i&&(r.loaderCallbacks=i.filter(s=>s.id!==n))})}function Us(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const n=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!n.length)return;let r=!1;const i=e.provider,s=e.prefix;n.forEach(o=>{const l=o.icons,d=l.pending.length;l.pending=l.pending.filter(p=>{if(p.prefix!==s)return!0;const _=p.name;if(e.icons[_])l.loaded.push({provider:i,prefix:s,name:_});else if(e.missing.has(_))l.missing.push({provider:i,prefix:s,name:_});else return r=!0,!0;return!1}),l.pending.length!==d&&(r||cr([e],o.id),o.callback(l.loaded.slice(0),l.missing.slice(0),l.pending.slice(0),o.abort))})}))}let Vs=0;function Bs(e,n,r){const i=Vs++,s=cr.bind(null,r,i);if(!n.pending.length)return s;const o={id:i,icons:n,callback:e,abort:s};return r.forEach(l=>{(l.loaderCallbacks||(l.loaderCallbacks=[])).push(o)}),s}function Hs(e){const n={loaded:[],missing:[],pending:[]},r=Object.create(null);e.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let i={provider:"",prefix:"",name:""};return e.forEach(s=>{if(i.name===s.name&&i.prefix===s.prefix&&i.provider===s.provider)return;i=s;const o=s.provider,l=s.prefix,d=s.name,p=r[o]||(r[o]=Object.create(null)),_=p[l]||(p[l]=Ge(o,l));let w;d in _.icons?w=n.loaded:l===""||_.missing.has(d)?w=n.missing:w=n.pending;const T={provider:o,prefix:l,name:d};w.push(T)}),n}function Js(e,n=!0,r=!1){const i=[];return e.forEach(s=>{const o=typeof s=="string"?qt(s,n,r):s;o&&i.push(o)}),i}const Qs={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Ws(e,n,r,i){const s=e.resources.length,o=e.random?Math.floor(Math.random()*s):e.index;let l;if(e.random){let P=e.resources.slice(0);for(l=[];P.length>1;){const X=Math.floor(Math.random()*P.length);l.push(P[X]),P=P.slice(0,X).concat(P.slice(X+1))}l=l.concat(P)}else l=e.resources.slice(o).concat(e.resources.slice(0,o));const d=Date.now();let p="pending",_=0,w,T=null,A=[],N=[];typeof i=="function"&&N.push(i);function R(){T&&(clearTimeout(T),T=null)}function U(){p==="pending"&&(p="aborted"),R(),A.forEach(P=>{P.status==="pending"&&(P.status="aborted")}),A=[]}function S(P,X){X&&(N=[]),typeof P=="function"&&N.push(P)}function j(){return{startTime:d,payload:n,status:p,queriesSent:_,queriesPending:A.length,subscribe:S,abort:U}}function h(){p="failed",N.forEach(P=>{P(void 0,w)})}function F(){A.forEach(P=>{P.status==="pending"&&(P.status="aborted")}),A=[]}function D(P,X,xe){const L=X!=="success";switch(A=A.filter(V=>V!==P),p){case"pending":break;case"failed":if(L||!e.dataAfterTimeout)return;break;default:return}if(X==="abort"){w=xe,h();return}if(L){w=xe,A.length||(l.length?J():h());return}if(R(),F(),!e.random){const V=e.resources.indexOf(P.resource);V!==-1&&V!==e.index&&(e.index=V)}p="completed",N.forEach(V=>{V(xe)})}function J(){if(p!=="pending")return;R();const P=l.shift();if(P===void 0){if(A.length){T=setTimeout(()=>{R(),p==="pending"&&(F(),h())},e.timeout);return}h();return}const X={status:"pending",resource:P,callback:(xe,L)=>{D(X,xe,L)}};A.push(X),_++,T=setTimeout(J,e.rotate),r(P,n,X.callback)}return setTimeout(J),j}function ur(e){const n={...Qs,...e};let r=[];function i(){r=r.filter(d=>d().status==="pending")}function s(d,p,_){const w=Ws(n,d,p,(T,A)=>{i(),_&&_(T,A)});return r.push(w),w}function o(d){return r.find(p=>d(p))||null}return{query:s,find:o,setIndex:d=>{n.index=d},getIndex:()=>n.index,cleanup:i}}function Qn(){}const rn=Object.create(null);function Gs(e){if(!rn[e]){const n=vn(e);if(!n)return;const r=ur(n),i={config:n,redundancy:r};rn[e]=i}return rn[e]}function Ks(e,n,r){let i,s;if(typeof e=="string"){const o=an(e);if(!o)return r(void 0,424),Qn;s=o.send;const l=Gs(e);l&&(i=l.redundancy)}else{const o=fn(e);if(o){i=ur(o);const l=e.resources?e.resources[0]:"",d=an(l);d&&(s=d.send)}}return!i||!s?(r(void 0,424),Qn):i.query(n,s,r)().abort}function Wn(){}function Xs(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Us(e)}))}function Zs(e){const n=[],r=[];return e.forEach(i=>{(i.match(tr)?n:r).push(i)}),{valid:n,invalid:r}}function _t(e,n,r){function i(){const s=e.pendingIcons;n.forEach(o=>{s&&s.delete(o),e.icons[o]||e.missing.add(o)})}if(r&&typeof r=="object")try{if(!ir(e,r).length){i();return}}catch(s){console.error(s)}i(),Xs(e)}function Gn(e,n){e instanceof Promise?e.then(r=>{n(r)}).catch(()=>{n(null)}):n(e)}function Ys(e,n){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(n).sort():e.iconsToLoad=n,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:r,prefix:i}=e,s=e.iconsToLoad;if(delete e.iconsToLoad,!s||!s.length)return;const o=e.loadIcon;if(e.loadIcons&&(s.length>1||!o)){Gn(e.loadIcons(s,i,r),w=>{_t(e,s,w)});return}if(o){s.forEach(w=>{const T=o(w,i,r);Gn(T,A=>{const N=A?{prefix:i,icons:{[w]:A}}:null;_t(e,[w],N)})});return}const{valid:l,invalid:d}=Zs(s);if(d.length&&_t(e,d,null),!l.length)return;const p=i.match(tr)?an(r):null;if(!p){_t(e,l,null);return}p.prepare(r,i,l).forEach(w=>{Ks(r,w,T=>{_t(e,w.icons,T)})})}))}const ei=(e,n)=>{const r=Js(e,!0,or()),i=Hs(r);if(!i.pending.length){let p=!0;return n&&setTimeout(()=>{p&&n(i.loaded,i.missing,i.pending,Wn)}),()=>{p=!1}}const s=Object.create(null),o=[];let l,d;return i.pending.forEach(p=>{const{provider:_,prefix:w}=p;if(w===d&&_===l)return;l=_,d=w,o.push(Ge(_,w));const T=s[_]||(s[_]=Object.create(null));T[w]||(T[w]=[])}),i.pending.forEach(p=>{const{provider:_,prefix:w,name:T}=p,A=Ge(_,w),N=A.pendingIcons||(A.pendingIcons=new Set);N.has(T)||(N.add(T),s[_][w].push(T))}),o.forEach(p=>{const _=s[p.provider][p.prefix];_.length&&Ys(p,_)}),n?Bs(n,i,o):Wn};function ti(e,n){const r={...e};for(const i in n){const s=n[i],o=typeof s;i in ar?(s===null||s&&(o==="string"||o==="number"))&&(r[i]=s):o===typeof r[i]&&(r[i]=i==="rotate"?s%4:s)}return r}const ni=/[\s,]+/;function ri(e,n){n.split(ni).forEach(r=>{switch(r.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function si(e,n=0){const r=e.replace(/^-?[0-9.]*/,"");function i(s){for(;s<0;)s+=4;return s%4}if(r===""){const s=parseInt(e);return isNaN(s)?0:i(s)}else if(r!==e){let s=0;switch(r){case"%":s=25;break;case"deg":s=90}if(s){let o=parseFloat(e.slice(0,e.length-r.length));return isNaN(o)?0:(o=o/s,o%1===0?i(o):0)}}return n}function ii(e,n){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in n)r+=" "+i+'="'+n[i]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+e+"</svg>"}function oi(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function ai(e){return"data:image/svg+xml,"+oi(e)}function li(e){return'url("'+ai(e)+'")'}const Kn={...lr,inline:!1},ci={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},ui={display:"inline-block"},ln={"background-color":"currentColor"},dr={"background-color":"transparent"},Xn={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},Zn={"-webkit-mask":ln,mask:ln,background:dr};for(const e in Zn){const n=Zn[e];for(const r in Xn)n[e+"-"+r]=Xn[r]}function di(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}function fi(e,n){const r=ti(Kn,n),i=n.mode||"svg",s=i==="svg"?{...ci}:{};e.body.indexOf("xlink:")===-1&&delete s["xmlns:xlink"];let o=typeof n.style=="string"?n.style:"";for(let j in n){const h=n[j];if(h!==void 0)switch(j){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":r[j]=h===!0||h==="true"||h===1;break;case"flip":typeof h=="string"&&ri(r,h);break;case"color":o=o+(o.length>0&&o.trim().slice(-1)!==";"?";":"")+"color: "+h+"; ";break;case"rotate":typeof h=="string"?r[j]=si(h):typeof h=="number"&&(r[j]=h);break;case"ariaHidden":case"aria-hidden":h!==!0&&h!=="true"&&delete s["aria-hidden"];break;default:if(j.slice(0,3)==="on:")break;Kn[j]===void 0&&(s[j]=h)}}const l=Ps(e,r),d=l.attributes;if(r.inline&&(o="vertical-align: -0.125em; "+o),i==="svg"){Object.assign(s,d),o!==""&&(s.style=o);let j=0,h=n.id;return typeof h=="string"&&(h=h.replace(/-/g,"_")),{svg:!0,attributes:s,body:Rs(l.body,h?()=>h+"ID"+j++:"iconifySvelte")}}const{body:p,width:_,height:w}=e,T=i==="mask"||(i==="bg"?!1:p.indexOf("currentColor")!==-1),A=ii(p,{...d,width:_+"",height:w+""}),R={"--svg":li(A)},U=j=>{const h=d[j];h&&(R[j]=di(h))};U("width"),U("height"),Object.assign(R,ui,T?ln:dr);let S="";for(const j in R)S+=j+": "+R[j]+";";return s.style=S+o,{svg:!1,attributes:s}}or(!0);As("",qs);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const n=e.IconifyPreload,r="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!ys(i))&&console.error(r)}catch{console.error(r)}})}if(e.IconifyProviders!==void 0){const n=e.IconifyProviders;if(typeof n=="object"&&n!==null)for(let r in n){const i="IconifyProviders["+r+"] is invalid.";try{const s=n[r];if(typeof s!="object"||!s||s.resources===void 0)continue;Ns(r,s)||console.error(i)}catch{console.error(i)}}}}function pi(e,n,r,i,s){function o(){n.loading&&(n.loading.abort(),n.loading=null)}if(typeof e=="object"&&e!==null&&typeof e.body=="string")return n.name="",o(),{data:{...Ut,...e}};let l;if(typeof e!="string"||(l=qt(e,!1,!0))===null)return o(),null;const d=xs(l);if(!d)return r&&(!n.loading||n.loading.name!==e)&&(o(),n.name="",n.loading={name:e,abort:ei([l],i)}),null;o(),n.name!==e&&(n.name=e,s&&!n.destroyed&&setTimeout(()=>{s(e)}));const p=["iconify"];return l.prefix!==""&&p.push("iconify--"+l.prefix),l.provider!==""&&p.push("iconify--"+l.provider),{data:d,classes:p}}function vi(e,n){return e?fi({...Ut,...e},n):null}var gi=Yr("<svg><!></svg>"),hi=$("<span></span>");function xt(e,n){un(n,!0);const r={name:"",loading:null,destroyed:!1},i=cs(n,["$$slots","$$events","$$legacy"]);let s=q(!1),o=q(0),l=O(()=>!!n.ssr||t(s)),d=O(()=>(t(o),pi(n.icon,r,t(l),_,n.onload))),p=O(()=>{const N=t(d)?vi(t(d).data,i):null;return N&&t(d).classes&&(N.attributes.class=(typeof i.class=="string"?i.class+" ":"")+t(d).classes.join(" ")),N});function _(){Zr(o)}Yn(()=>{u(s,!0)}),cn(()=>{r.destroyed=!0,r.loading&&(r.loading.abort(),r.loading=null)});var w=Dt(),T=_e(w);{var A=N=>{var R=Dt(),U=_e(R);{var S=h=>{var F=gi();$n(F,()=>({...t(p).attributes}));var D=b(F);ls(D,()=>t(p).body,!0),m(F),I(h,F)},j=h=>{var F=hi();$n(F,()=>({...t(p).attributes})),I(h,F)};Q(U,h=>{t(p).svg?h(S):h(j,!1)})}I(N,R)};Q(T,N=>{t(p)&&N(A)})}I(e,w),dn()}var mi=$('<div class="w-full"></div>');function _i(e,n){un(n,!0);let r=q(null),i=null,s=[],o=null,l=!1,d,p=qn(n,"language",3,"plaintext"),_=qn(n,"height",3,120),w=[],T=q(!1);function A(R){t(T)||R.stopPropagation()}Yn(async()=>{var F,D;if(!d)return;d.addEventListener("wheel",A,{capture:!0,passive:!0}),ds();const R=await Un(()=>import("../chunks/DLQqXQ6R.js").then(J=>J.e),__vite__mapDeps([0,1,2]),import.meta.url);if(l)return;o=R,fs(R);const U=p()==="json"?"json":p()==="markdown"?"markdown":"plaintext";u(r,R.editor.create(d,{value:n.value??"",language:U,theme:"bosun-dark",lineNumbers:"off",fontSize:14,fontFamily:'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',automaticLayout:!0,minimap:{enabled:!1},wordBasedSuggestions:"off",wordWrap:"bounded",wordWrapColumn:75,wrappingStrategy:"advanced",scrollbar:{vertical:"hidden",horizontal:"hidden"},overviewRulerLanes:0,renderLineHighlight:"none",folding:!1,renderWhitespace:"none",padding:{top:4,bottom:4},matchBrackets:"never",bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:"off",selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:"never"}),!0);const S=t(r);if(!S)return;i=S.getModel(),s.push(S.onDidFocusEditorText(()=>{u(T,!0)})),s.push(S.onDidChangeModelContent(()=>{var J;try{const P=S.getValue();if(P===n.value)return;(J=n.onChange)==null||J.call(n,P)}catch(P){console.error("MiniEditor change error",P)}})),s.push(S.onDidBlurEditorText(()=>{var J;u(T,!1);try{(J=n.onBlur)==null||J.call(n,S.getValue())}catch{}}));const j=(F=S.onDidFocusEditorWidget)==null?void 0:F.call(S,()=>{u(T,!0)});j&&s.push(j);const h=(D=S.onDidBlurEditorWidget)==null?void 0:D.call(S,()=>{var J;u(T,!1);try{(J=n.onBlur)==null||J.call(n,S.getValue())}catch{}});h&&s.push(h)}),cn(()=>{l=!0;try{d.removeEventListener("wheel",A,{capture:!0})}catch{}for(const U of s)try{U.dispose()}catch{}s=[];const R=i;i=null;try{if(t(r)){try{t(r).setModel(null)}catch{}t(r).dispose()}}finally{u(r,null)}try{R==null||R.dispose()}catch{}o=null}),Ft(()=>{if(!t(r))return;const R=p()==="json"?"json":p()==="markdown"?"markdown":"plaintext",U=t(r).getModel();if(!U||U.getLanguageId()===R)return;let S=!1;return(o?Promise.resolve(o):Un(()=>import("../chunks/DLQqXQ6R.js").then(h=>h.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(h=>{if(!S)try{h.editor.setModelLanguage(U,R)}catch{}}),()=>{S=!0}}),Ft(()=>{t(r)&&n.value!==t(r).getValue()&&t(r).setValue(n.value??"")}),Ft(()=>{const R=n.highlights;if(!t(r)||!i||!o)return;const U=o,S=i.getLineCount(),j=[];for(const h of R??[]){const F=Math.max(1,Math.min(S,Number(h.startLine)||1)),D=Math.max(F,Math.min(S,Number(h.endLine)||F)),J=i.getLineMaxColumn(D);if(j.push({range:new U.Range(F,1,D,J),options:{inlineClassName:h.className}}),h.className==="test-expected-output")for(let P=F;P<=D;P++){const X=i.getLineContent(P),xe=/<\/?[A-Za-z][^>]*?>/g;let L;for(;L=xe.exec(X);){const V=(L.index??0)+1,Ce=Math.min(i.getLineMaxColumn(P),V+String(L[0]??"").length);Ce<=V||j.push({range:new U.Range(P,V,P,Ce),options:{inlineClassName:"test-expected-output-tag"}})}}}w=t(r).deltaDecorations(w,j)});var N=mi();us(N,R=>d=R,()=>d),te(()=>er(N,`height:${_()}px`)),I(e,N),dn()}var xi=$('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),bi=$("<!> <!>",1),yi=$('<div class="p-2 text-gray-300">Loading…</div>'),wi=$('<div class="p-2 text-red-400"> </div>'),ki=$('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),Ci=$('<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-3 py-1 text-white"> </span> <!></div>'),Si=$("<!> New test",1),Ii=$('<div class="pointer-events-none absolute -left-28 top-full mt-4 inline-flex -translate-x-1/2 flex-col items-center"><div class="relative w-50vw max-w-2xl"><img src="/ui/arrow_tests.svg" alt="Arrow" class="block h-auto w-full object-contain"/> <span class="absolute inset-0 mt-48 flex items-center justify-center text-center text-4xl font-extrabold text-rc-gray-200">No tests yet.<br/>Add the first one</span></div></div>'),Ti=async(e,n,r)=>{await n(!t(r))},Pi=$('<div class="p-3 text-gray-400">—</div>'),Ei=async(e,n,r,i,s)=>{const o=!t(n).pinned;u(r,t(r).map(l=>l.id===t(n).id?{...l,pinned:o}:l),!0),await i(s(t(n).id,{pinned:o?"TRUE":"FALSE"}))},Li=(e,n,r)=>n(t(r).id),Mi=(e,n,r)=>n(t(r).id,{scenario:t(r).scenario}),Ri=(e,n,r)=>n(t(r).id),Ai=$('<span class="ml-2 text-rc-gray-400"> </span>'),Ni=$('<span><!><span class="ml-1">significant</span></span>'),ji=$('<span class="text-rc-gray-200"> </span> <!> <!>',1),Fi=$('<span class="text-rc-gray-500">—</span>'),Oi=$('<div class="mt-1 px-1 text-sm font-semibold text-rc-gray-300"><!></div>'),$i=$('<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600">Invalid test: expected must be the last block (“Agent: …”)</div>'),Di=(e,n,r)=>n(t(r).id,{author:t(r).author||""}),zi=(e,n,r)=>n(t(r).id,{assertion_type:t(r).assertion_type}),qi=$("<option> </option>"),Ui=(e,n,r)=>n(t(r).id,{assertion_value:t(r).assertion_value}),Vi=(e,n,r,i)=>{t(n).timeout=r(+t(n).timeout||0,0,999),i(t(n).id,{timeout:String(t(n).timeout)})},Bi=(e,n,r,i)=>{t(n).similarity_threshold=r(+t(n).similarity_threshold||0,0,100),i(t(n).id,{similarity_threshold:String(t(n).similarity_threshold)})},Hi=$('<span class="ml-2 text-rc-gray-400"> </span>'),Ji=$('<span><!><span class="ml-1">significant</span></span>'),Qi=$('<div class="text-lg font-extrabold"><span class="text-rc-gray-200"> </span> <!> <!></div>'),Wi=(e,n,r)=>n("Rendered Prompt",t(r).links.renderedPrompt),Gi=(e,n,r)=>n("Received Prompt",t(r).links.receivedPrompt),Ki=(e,n,r)=>n("Conversation",t(r).links.conversation),Xi=(e,n,r)=>n("Context",t(r).links.context),Zi=(e,n,r)=>n("Logs",t(r).links.logs),Yi=(e,n,r)=>n("Errors",t(r).links.errors),eo=(e,n,r)=>n("Traces",t(r).links.traces),to=(e,n,r,i)=>n(t(r).scenario||"Test",t(i).index,t(i).links.renderedPrompt),no=$('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <div class="mt-1 flex flex-wrap items-center gap-x-4"><button type="button" class="pseudolink svelte-rdft55">Rendered prompt</button> <button type="button" class="pseudolink svelte-rdft55">Received prompt</button> <button type="button" class="pseudolink svelte-rdft55">Conversation</button> <button type="button" class="pseudolink svelte-rdft55">Context</button> <button type="button" class="pseudolink svelte-rdft55">Logs</button> <button type="button" class="pseudolink svelte-rdft55">Errors</button> <button type="button" class="pseudolink svelte-rdft55">Traces</button> <button type="button" class="pseudolink svelte-rdft55">Analyze</button></div></div></div>'),ro=$('<div class="mt-3 flex flex-col gap-4"></div>'),so=$('<div class="flex flex-col gap-2 p-2"><!> <input class="card-input-subtle svelte-rdft55" type="text" placeholder="Author"/> <div class="flex items-center gap-2"><select class="rc-scroll rc-input w-36 svelte-rdft55" aria-label="Assertion Type"></select> <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text" placeholder="Assertion value"/></div> <div class="flex flex-wrap items-center gap-3"><div class="flex items-center gap-2"><span class="text-rc-gray-300">Timeout (s)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="999" placeholder="Timeout"/></div> <div class="flex items-center gap-2"><span class="text-rc-gray-300">Similarity (%)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="100" placeholder="Similarity (%)"/></div> <!></div> <!></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2"><div class="flex flex-wrap items-center gap-3"><!> <!></div> <!></div>',1),io=$('<div class="border-b border-rc-gray-700 p-2"><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1"><button><!></button> <button title="Duplicate" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button> <button title="Delete" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <div class="min-w-0"><div><div><div class="grid grid-cols-[1fr,2.25rem] items-center gap-2"><input class="card-input-title svelte-rdft55" type="text" placeholder="Scenario"/> <button class="icon-btn justify-self-end text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <!></div> <!></div></div></div></div>'),oo=$('<div class="flex flex-col space-y-5"></div>'),ao=$('<div class="min-h-0 flex-1 overflow-hidden p-3"><!></div>'),lo=$('<div class="rc-scroll min-h-0 flex-1 overflow-auto"><div class="grid grid-cols-[2.25rem,1fr] items-center gap-2 border-b border-rc-gray-700 p-2"><button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button> <span class="text-left text-rc-gray-300"> </span></div> <!></div> <!>',1),co=$('<div class="flex h-full min-h-0 flex-col"><div class="flex flex-none items-center justify-between gap-3 p-2"><div class="flex flex-wrap items-center gap-3 pl-11"><div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> <!></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> <!></div></div> <div class="flex flex-wrap items-center gap-3"><!> <!> <div class="relative inline-flex items-center"><!> <!></div> <!></div></div> <div class="min-h-0 flex-1 overflow-hidden"><!></div></div>'),uo=$("<!> <!> <!>",1);function Mo(e,n){un(n,!0);const{state:r,actions:i}=is(),s=O(()=>r.agentId),o=O(()=>r.region);function l(a){try{return structuredClone(a)}catch{try{return JSON.parse(JSON.stringify(a))}catch{return a}}}function d(a,f,c){return Math.max(f,Math.min(c,a))}let p=q(1),_=q(1),w=q(ft({})),T=q(ft({})),A=q(!1),N=q(null),R=q(ft({})),U=q(!1),S=q(""),j=q(null),h=q(!1),F=q(null);async function D(a,f){u(S,a,!0),u(j,null),u(F,null),u(h,!0),u(U,!0);try{const c=await ee.tests.resultEntry.query({agent:f.agent,region:t(o),testId:f.id,resultKey:f.key,timestamp:f.timestamp,index:f.run});let g=c;try{const v=JSON.parse(c);g=JSON.stringify(v,null,2)}catch{}u(j,g,!0)}catch(c){console.error(c),u(F,"Failed to load content")}finally{u(h,!1)}}let J=q(!1);async function P(a,f,c){var C;if(t(J))return;u(J,!0);const g=i.openPopover("analyze"),v=`Analysis — ${a} (run ${f})`;try{const y=await ee.tests.analyzeRun.mutate({agent:c.agent,region:t(o),testId:c.id,index:c.run,timestamp:c.timestamp});if(((C=r.edit.popover)==null?void 0:C.requestId)!==g)return;i.setHighlightQuotes(y.quotes);let E=null;try{E=JSON.stringify(y.raw,null,2)}catch{E=null}i.setPopoverReady(g,{title:v,quotes:y.quotes,rationales:y.rationales,parallelCalls:y.parallelCalls,raw:E})}catch(y){console.error(y);const E=typeof(y==null?void 0:y.message)=="string"?y.message:(()=>{try{return JSON.stringify(y)}catch{return String(y)}})();i.setPopoverError(g,E||"Failed to analyze this response",{raw:E})}finally{u(J,!1)}}const X=[{value:"llm-rubric",label:"LLM"},{value:"answer-relevance",label:"Answer Relevance (LLM)"},{value:"context-faithfulness",label:"Context Faithfulness (LLM)"},{value:"context-recall",label:"Context Recall (LLM)"},{value:"context-relevance",label:"Context Relevance (LLM)"},{value:"model-graded-closedqa",label:"Model-Graded Closed QA"},{value:"model-graded-factuality",label:"Model-Graded Factuality"},{value:"moderation",label:"Moderation"},{value:"classifier",label:"Classifier"},{value:"g-eval",label:"G-Eval"},{value:"factuality",label:"Factuality"},{value:"conversation-relevance",label:"Conversation Relevance"},{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"icontains",label:"Contains (case-insensitive)"},{value:"contains-all",label:"Contains All"},{value:"contains-any",label:"Contains Any"},{value:"icontains-all",label:"Contains All (iCase)"},{value:"icontains-any",label:"Contains Any (iCase)"},{value:"starts-with",label:"Starts With"},{value:"regex",label:"Regex"},{value:"levenshtein",label:"Levenshtein Distance"},{value:"is-refusal",label:"Is Refusal"},{value:"is-html",label:"Is HTML"},{value:"contains-html",label:"Contains HTML"},{value:"is-json",label:"Is JSON"},{value:"contains-json",label:"Contains JSON"},{value:"is-xml",label:"Is XML"},{value:"contains-xml",label:"Contains XML"},{value:"is-sql",label:"Is SQL"},{value:"contains-sql",label:"Contains SQL"},{value:"similar",label:"Semantic Similarity"},{value:"rouge-n",label:"ROUGE-N"},{value:"bleu",label:"BLEU"},{value:"gleu",label:"GLEU"},{value:"meteor",label:"METEOR"},{value:"perplexity",label:"Perplexity"},{value:"perplexity-score",label:"Perplexity Score"},{value:"latency",label:"Latency"},{value:"cost",label:"Cost"},{value:"finish-reason",label:"Finish Reason"},{value:"trace-error-spans",label:"Trace Error Spans"},{value:"trace-span-count",label:"Trace Span Count"},{value:"trace-span-duration",label:"Trace Span Duration"},{value:"is-valid-function-call",label:"Is Valid Function Call"},{value:"is-valid-openai-function-call",label:"Is Valid OpenAI Function Call"},{value:"is-valid-openai-tools-call",label:"Is Valid OpenAI Tools Call"},{value:"guardrails",label:"Guardrails"},{value:"javascript",label:"JavaScript (custom)"},{value:"python",label:"Python (custom)"},{value:"webhook",label:"Webhook (custom)"},{value:"pi",label:"Pi Scorer"}],xe=[...X,...X.map(a=>({value:`not-${a.value}`,label:`Not ${a.label}`}))];let L=q(ft([])),V=q(!1),Ce=q(!1),ze=q(!1),Ke=q(null),yt=q(null),wt=q(0),Vt=q(0),Xe=q(1),Bt=!1,ne=null,Ze=0;const kt=new Set;let Ye=q(0);const me=O(()=>t(Ye)>0);let et=q(!1),Ae=q(ft([]));const gn=O(()=>new Set(t(Ae)));function Se(a){return kt.add(a),u(Ye,t(Ye)+1),a.finally(()=>{kt.delete(a),u(Ye,t(Ye)-1)}),a}function hn(a,f,c){const g=Array.isArray(c.results)?c.results:[],v=g.reduce((C,y)=>C+(y!=null&&y.success?1:0),0);return{success_rate:c.success_rate,successes:v,total_runs:g.length,isOld:!!c.is_old,previous:c.previous&&typeof c.previous=="object"?{success_count:Number(c.previous.success_count??0),total_runs:Number(c.previous.total_runs??0),report_timestamp:String(c.previous.report_timestamp??"")}:void 0,runs:g.map((C,y)=>{const E=c.report_timestamp,M={agent:a,id:f,timestamp:E,run:y};return{index:y+1,success:!!C.success,text:String(C.result||""),evaluation:String(C.evaluation||""),errors:String(C.errors||""),links:{renderedPrompt:{...M,key:"rendered_prompt"},receivedPrompt:{...M,key:"received_prompt"},conversation:{...M,key:"stringified_conversation"},context:{...M,key:"received_context"},logs:{...M,key:"logs"},errors:{...M,key:"errors"},traces:{...M,key:"traces"}}}}).reverse()}}async function qe(){const a=(t(s)??"").trim();if(a)try{const[{rows:f},c,g]=await Promise.all([ee.tests.list.query({agent:a,region:t(o)}),ee.tests.config.query({agent:a,region:t(o)}),ee.tests.latestResult.query({agent:a,region:t(o)})]);if((t(s)??"").trim()!==a)return;u(p,c.repeats??1,!0),u(_,c.concurrency??1,!0),u(w,c.defaultContext??{},!0),u(Ae,c.expandedTestIds??[],!0),u(L,f.map(v=>{const C=v.id,y=g[C];return{id:C,pinned:String(v.pinned).toUpperCase()==="TRUE",scenario:v.scenario||"",step:String(v.step??""),author:v.author||"",assertion_type:v.assertion_type||"llm-rubric",assertion_value:v.assertion_value||"",conversation:v.conversation||"",expected_output:v.expected_output||"",conversation_ui:xn(v.conversation||"",v.expected_output||""),timeout:Number(v.timeout??0),similarity_threshold:Number(v.similarity_threshold??60),context:JSON.stringify(v.context),result:y?hn(a,C,y):void 0}}),!0)}catch(f){if(console.error(f),(t(s)??"").trim()!==a)return;u(L,[],!0),u(p,1),u(_,1),u(w,{},!0),u(Ae,[],!0)}finally{(t(s)??"").trim()===a&&u(et,!0)}}async function Ct(a){const f=(t(s)??"").trim();if(f&&!Bt){Bt=!0;try{const c=await ee.tests.latestResult.query({agent:f,region:t(o)});if(a!==Ze)return;const g=t(L).map(E=>{const M=c[E.id];return{...E,result:M?hn(f,E.id,M):void 0}});u(L,g,!0);const v=t(Ke),C=Math.max(1,Number(t(Xe))||1),y=g.reduce((E,M)=>v==="single"&&M.id!==t(yt)||v==="pinned"&&!M.pinned?E:M.result&&!M.result.isOld&&M.result.total_runs>=C?E+1:E,0);u(wt,y,!0)}catch(c){console.error(c)}finally{Bt=!1}}}async function fr(a){u(V,!0),u(ze,!1),u(Ke,a,!0),u(yt,null),u(Vt,a==="all"?t(L).length:t(L).filter(c=>c.pinned).length,!0),u(wt,0),u(Xe,Math.max(1,Number(t(p))||1),!0),Ze+=1;const f=Ze;await Promise.all([...kt]),ne&&clearInterval(ne),ne=setInterval(()=>Ct(f),800),Ct(f);try{await ee.tests.runTests.mutate({agent:t(s),region:t(o),scope:a})}finally{ne&&clearInterval(ne),ne=null;try{await qe()}finally{u(V,!1),u(Ke,null)}}}async function pr(a){if(!t(s))return;u(V,!0),u(ze,!1),u(Ke,"single"),u(yt,a,!0),u(Vt,1),u(wt,0),u(Xe,Math.max(1,Number(t(p))||1),!0),Ze+=1;const f=Ze;await Promise.all([...kt]),ne&&clearInterval(ne),ne=setInterval(()=>Ct(f),800),Ct(f);try{await ee.tests.runTests.mutate({agent:t(s),region:t(o),testId:a})}finally{ne&&clearInterval(ne),ne=null;try{await qe()}finally{u(V,!1),u(Ke,null),u(yt,null)}}}async function vr(){if(!(!t(V)||t(Ce)||t(ze))){u(Ce,!0);try{await ee.tests.cancelRun.mutate({agent:t(s),region:t(o)})&&u(ze,!0)}catch(a){console.error(a)}finally{u(Ce,!1)}}}async function gr(a){const f=a?"TRUE":"FALSE",c=t(L).filter(v=>v.pinned!==a).map(v=>v.id);if(c.length===0)return;const g=new Set(c);u(L,t(L).map(v=>g.has(v.id)?{...v,pinned:a}:v),!0);try{await Se(ee.tests.patchTestsBatch.mutate({agent:t(s),region:t(o),updates:c.map(v=>({id:v,patch:{pinned:f}}))}))}catch(v){console.error(v),await qe()}}let Ht=null;Ft(()=>{const a=(t(s)??"").trim(),f=(t(o)??"").trim(),c=r.availableRegions,g=Array.isArray(c)&&c.length>0;if(!a){Ht=null,u(L,[],!0),u(Ae,[],!0),u(et,!1);return}if(g&&!f)return;const v=`${a}::${f}`;Ht!==v&&(Ht=v,u(L,[],!0),u(Ae,[],!0),u(et,!1)),qe()});const St=O(()=>t(L).filter(a=>a.pinned).length),tt=O(()=>t(St)>0),hr=O(()=>t(L).length>0&&t(St)===t(L).length);async function mr(){const a=await ee.tests.addTest.mutate({agent:t(s),region:t(o),seed:{},mergeContexts:!0}),f=mn(a);u(L,[f,...t(L)],!0),It(f.id,!0).catch(console.error)}function mn(a){return{...a,step:String(a.step??""),pinned:a.pinned==="TRUE",timeout:Number(a.timeout),similarity_threshold:Number(a.similarity_threshold),context:JSON.stringify(a.context),conversation_ui:xn(a.conversation||"",a.expected_output||"")}}function _r(a){const{conversation_ui:f,...c}=a;return{...c,pinned:a.pinned?"TRUE":"FALSE",timeout:String(a.timeout??0),similarity_threshold:String(a.similarity_threshold??60),context:JSON.parse(a.context)}}async function xr(a,f){const c=_r(a);c.id=crypto.randomUUID();const g=await ee.tests.addTest.mutate({agent:t(s),region:t(o),seed:c,mergeContexts:!0}),v=mn(g),C=t(L).slice();C.splice(f,0,v),u(L,C,!0),It(v.id,!0).catch(console.error),await ee.tests.reorder.mutate({agent:t(s),region:t(o),order:t(L).map(y=>y.id)})}function br(a){if(!a)return"";try{return a.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return a}}function yr(a){try{return a&&a.trim()?JSON.parse(a):{}}catch{return{}}}const _n=a=>a.match(/^\s*(agent|assistant|user|system)\s*:\s*(.*)$/i);function wr(a){const f=String(a??"").trimEnd();return f?/^\s*(agent|assistant)\s*:/i.test(f)?f:`Agent: ${f}`:""}function xn(a,f){const c=String(a??"").trimEnd(),g=wr(f);return g?c?`${c}
|
|
3
|
+
${g}`:g:c}function bn(a){const f=String(a??""),c=f.split(/\r?\n/),g=[];let v=null;for(let fe=0;fe<c.length;fe++){const Pt=_n(c[fe]);if(!Pt)continue;v&&g.push({...v,endLine:fe});const Et=String(Pt[1]??"").toLowerCase();v={role:Et==="assistant"?"agent":Et,startLine:fe+1}}v&&g.push({...v,endLine:c.length});const C=g.at(-1),y=(C==null?void 0:C.role)==="agent",E=y;if(!y||!C)return{valid:!1,expected:"",conversation:f.trimEnd()};const M=c.slice(C.startLine-1,C.endLine),Z=M[0]??"",de=_n(Z),oe=[de?de[2]??"":"",...M.slice(1)].join(`
|
|
4
4
|
`).trimEnd(),ae=c.slice(0,C.startLine-1).join(`
|
|
5
|
-
`).trimEnd();return{valid:E,expected:oe,conversation:ae,highlight:{startLine:C.startLine,endLine:C.endLine}}}function kr(a){const f=a<0?-1:1,c=Math.abs(a),g=.254829592,v=-.284496736,C=1.421413741,y=-1.453152027,E=1.061405429,Z=1/(1+.3275911*c),de=1-((((E*Z+y)*Z+C)*Z+v)*Z+g)*Z*Math.exp(-c*c);return f*de}function Cr(a){return .5*(1+kr(a/Math.SQRT2))}function Sr(a,f,c,g){if(!Number.isFinite(a)||!Number.isFinite(f)||!Number.isFinite(c)||!Number.isFinite(g)||f<=0||g<=0)return null;const v=a/f,C=c/g,y=(a+c)/(f+g),E=Math.sqrt(y*(1-y)*(1/f+1/g));if(!Number.isFinite(E)||E<=0)return null;const M=(C-v)/E,Z=2*(1-Cr(Math.abs(M)));return Math.max(0,Math.min(1,Z))}function yn(a,f){if(!a||a.isOld)return null;const c=a.total_runs;if(c<=0)return null;const g=a.previous,v=g&&g.total_runs>0?g.success_count/g.total_runs:null,C=a.successes/c,y=v===null||C>=v?"higher":"lower",E=(()=>{if(c<=5||!g||g.total_runs<=0)return!1;const de=Sr(g.success_count,g.total_runs,a.successes,c);return de!==null&&de<.05})(),M=Number.isFinite(f)&&f>0&&c<f;if(!M&&!E)return null;const Z=M?Math.round(a.successes/c*f):void 0;return{showExpected:M,expectedSuccesses:Z,expectedRuns:f,significant:E,direction:y}}async function be(a,f){await ee.tests.patchTest.mutate({agent:t(s),region:t(o),id:a,patch:f})}async function Ir(a){await ee.tests.deleteTest.mutate({agent:t(s),region:t(o),id:a});try{await St(a,!1)}catch(f){console.error(f)}await qe()}function St(a,f){if(!(t(s)??"").trim())return Promise.resolve();const g=String(a??"").trim();if(!g)return Promise.resolve();const v=new Set(t(Ae)),C=v.has(g);if(f===C)return Promise.resolve();f?v.add(g):v.delete(g);const y=Array.from(v);return u(Ae,y,!0),Se(It({expandedTestIds:y}))}function Tr(a){St(a,!t(gn).has(a)).catch(console.error)}function Pr(a){t(s)&&(u(N,a.id,!0),u(R,l(yr(a.context)),!0))}async function Er(){const a=t(N);if(!a||!t(s)){u(N,null);return}const f=l(t(R));u(N,null),u(L,t(L).map(c=>c.id===a?{...c,context:JSON.stringify(f)}:c),!0);try{await Se(be(a,{context:f}))}catch(c){console.error(c),await qe()}}async function It(a){await ee.tests.updateConfig.mutate({agent:t(s),region:t(o),cfg:a})}cn(()=>{ne&&clearInterval(ne)});var wn=uo();ts(a=>{var f=xi();I(a,f)});var kn=_e(wn);On(kn,{title:"Default Context",get open(){return t(A)},set open(c){u(A,c,!0)},children:c=>{Dn(c,{class:"h-[70vh]",get context(){return t(T)},onContextChanged:g=>u(T,g,!0),suppressErrors:!0,defaultFormat:"json",hideHeader:!0})},footer:c=>{var g=bi(),v=_e(g);ke(v,{variant:"outlined",size:"small",onclick:()=>u(A,!1),children:(y,E)=>{he();var M=Me("Cancel");I(y,M)},$$slots:{default:!0}});var C=k(v,2);ke(C,{size:"small",onclick:async()=>{u(w,t(T),!0),await Se(It({defaultContext:t(w)})),u(A,!1)},children:(y,E)=>{he();var M=Me("Save");I(y,M)},$$slots:{default:!0}}),I(c,g)},$$slots:{default:!0,footer:!0}});var Cn=k(kn,2);On(Cn,{get title(){return t(S)},class:"!w-[80vw] !max-w-5xl",get open(){return t(U)},set open(c){u(U,c,!0)},children:c=>{var g=$t(),v=_e(g);{var C=E=>{var M=yi();I(E,M)},y=E=>{var M=$t(),Z=_e(M);{var de=oe=>{var ae=wi(),fe=b(ae,!0);m(ae),te(()=>ie(fe,t(F))),I(oe,ae)},nt=oe=>{var ae=ki(),fe=b(ae,!0);m(ae),te(()=>ie(fe,t(j)||"—")),I(oe,ae)};Q(Z,oe=>{t(F)?oe(de):oe(nt,!1)},!0)}I(E,M)};Q(v,E=>{t(h)?E(C):E(y,!1)})}I(c,g)},footer:c=>{ke(c,{variant:"outlined",size:"small",onclick:()=>u(U,!1),children:(g,v)=>{he();var C=Me("Close");I(g,C)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var Lr=k(Cn,2);{var Mr=a=>{var f=co(),c=b(f),g=b(c),v=b(g),C=k(b(v),2);zn(C,{type:"number",min:"0",max:"500",class:"w-16",onchange:()=>{u(p,d(+t(p)||0,0,500),!0),Se(It({repeats:t(p)}))},get value(){return t(p)},set value(W){u(p,W,!0)}}),m(v);var y=k(v,2),E=k(b(y),2);zn(E,{type:"number",min:"0",max:"20",class:"w-16",onchange:()=>{u(_,d(+t(_)||0,0,20),!0),Se(It({concurrency:t(_)}))},get value(){return t(_)},set value(W){u(_,W,!0)}}),m(y),m(g);var M=k(g,2),Z=b(M);{var de=W=>{var le=Ci(),ye=b(le),re=b(ye);m(ye);var Ne=k(ye,2);{let Ie=z(()=>t(Ce)||t(ze));ke(Ne,{variant:"secondary",get disabled(){return t(Ie)},onclick:vr,children:(Jt,Qt)=>{he();var Et=Me();te(()=>ie(Et,t(ze)?"Cancel requested…":t(Ce)?"Canceling…":"Cancel")),I(Jt,Et)},$$slots:{default:!0}})}m(le),te(()=>ie(re,`Running… ${t(yt)??""}/${t(Ut)??""}`)),I(W,le)};Q(Z,W=>{t(V)&&W(de)})}var nt=k(Z,2);{let W=z(()=>t(V)||t(me)||!t(s));ke(nt,{variant:"secondary",get disabled(){return t(W)},onclick:()=>{u(T,l(t(w)),!0),u(A,!0)},children:(le,ye)=>{he();var re=Me("Edit context");I(le,re)},$$slots:{default:!0}})}var oe=k(nt,2),ae=b(oe);{let W=z(()=>t(me)||t(V)||!t(s));ke(ae,{variant:"secondary",onclick:mr,get disabled(){return t(W)},class:"inline-flex items-center gap-1",children:(le,ye)=>{var re=Si(),Ne=_e(re);_t(Ne,{icon:"mdi:plus-thick",width:18,height:18}),he(),I(le,re)},$$slots:{default:!0}})}var fe=k(ae,2);{var Tt=W=>{var le=Ii();I(W,le)};Q(fe,W=>{t(et)&&t(L).length===0&&W(Tt)})}m(oe);var Pt=k(oe,2);{let W=z(()=>t(V)||t(me)||t(L).length===0||t(tt)&&t(Ct)===0);ke(Pt,{class:"disabled:cursor-not-allowed disabled:opacity-50",get disabled(){return t(W)},onclick:()=>fr(t(tt)?"pinned":"all"),children:(le,ye)=>{he();var re=Me();te(()=>ie(re,`▶ ${t(tt)?"Run pinned":"Run all"}`)),I(le,re)},$$slots:{default:!0}})}m(M),m(c);var Ht=k(c,2),Rr=b(Ht);os(Rr,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(W,le)=>{var ye=lo(),re=_e(ye),Ne=b(re),Ie=b(Ne);Ie.__click=[Ti,gr,hr];var Jt=b(Ie);{let ce=z(()=>t(tt)?"mdi:pin":"mdi:pin-outline");_t(Jt,{class:"block",get icon(){return t(ce)},width:18,height:18})}m(Ie);var Qt=k(Ie,2),Et=b(Qt);m(Qt),m(Ne);var Ar=k(Ne,2);{var Nr=ce=>{var je=Pi();I(ce,je)},jr=ce=>{var je=oo();tn(je,23,()=>t(L),Fe=>Fe.id,(Fe,x,Ue)=>{const pe=z(()=>bn(t(x).conversation_ui)),Te=z(()=>t(gn).has(t(x).id));var Ve=io(),Lt=b(Ve),Wt=b(Lt),Pe=b(Wt);Pe.__click=[Ei,x,L,Se,be];var $r=b(Pe);{let se=z(()=>t(x).pinned?"mdi:pin":"mdi:pin-outline");_t($r,{class:"block",get icon(){return t(se)},width:18,height:18})}m(Pe);var rt=k(Pe,2);rt.__click=()=>xr(t(x),t(Ue));var Dr=b(rt);_t(Dr,{icon:"mdi:content-copy",width:18,height:18}),m(rt);var Mt=k(rt,2);Mt.__click=[Li,Ir,x];var zr=b(Mt);_t(zr,{icon:"mdi:trash-can-outline",width:18,height:18}),m(Mt),m(Wt);var Sn=k(Wt,2),Gt=b(Sn),Rt=b(Gt),Kt=b(Rt),At=b(Kt);ft(At),At.__change=[Mi,be,x];var Be=k(At,2);Be.__click=[Ri,Tr,x];var qr=b(Be);{let se=z(()=>t(Te)?"chevron-up":"chevron-down");gt(qr,{get name(){return t(se)},width:20,height:20,class:"block"})}m(Be),m(Kt);var Ur=k(Kt,2);{var Vr=se=>{var He=Oi(),st=b(He);{var Nt=ve=>{const ue=z(()=>yn(t(x).result,t(Xe)));var Ee=ji(),Oe=_e(Ee),it=b(Oe);m(Oe);var Je=k(Oe,2);{var ot=we=>{var Y=Ai(),Qe=b(Y);m(Y),te(()=>ie(Qe,`(${t(ue).expectedSuccesses??""}/${t(ue).expectedRuns??""} expected)`)),I(we,Y)};Q(Je,we=>{var Y;(Y=t(ue))!=null&&Y.showExpected&&we(ot)})}var at=k(Je,2);{var lt=we=>{var Y=Ni(),Qe=b(Y);{let ct=z(()=>t(ue).direction==="higher"?"chevron-up":"chevron-down");gt(Qe,{get name(){return t(ct)},width:16,height:16,class:"inline-block align-text-bottom"})}he(),m(Y),te(()=>Re(Y,1,`ml-2 whitespace-nowrap font-semibold ${t(ue).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55")),I(we,Y)};Q(at,we=>{var Y;(Y=t(ue))!=null&&Y.significant&&we(lt)})}te(()=>ie(it,`${t(x).result.successes??""}/${t(x).result.total_runs??""}`)),I(ve,Ee)},Xt=ve=>{var ue=Fi();I(ve,ue)};Q(st,ve=>{t(x).result?ve(Nt):ve(Xt,!1)})}m(He),I(se,He)};Q(Ur,se=>{t(Te)||se(Vr)})}m(Rt);var Br=k(Rt,2);{var Hr=se=>{var He=so(),st=_e(He),Nt=b(st);{var Xt=D=>{var H=$i();I(D,H)};Q(Nt,D=>{t(pe).valid||D(Xt)})}var ve=k(Nt,2);ft(ve),ve.__change=[Di,be,x];var ue=k(ve,2),Ee=b(ue);Ee.__change=[zi,be,x],tn(Ee,21,()=>xe,rs,(D,H)=>{var G=qi(),B=b(G,!0);m(G);var $e={};te(()=>{ie(B,t(H).label),$e!==($e=t(H).value)&&(G.value=(G.__value=t(H).value)??"")}),I(D,G)}),m(Ee);var Oe=k(Ee,2);ft(Oe),Oe.__change=[Ui,be,x],m(ue);var it=k(ue,2),Je=b(it),ot=k(b(Je),2);ft(ot),ot.__change=[Vi,x,d,be],m(Je);var at=k(Je,2),lt=k(b(at),2);ft(lt),lt.__change=[Bi,x,d,be],m(at);var we=k(at,2);{let D=z(()=>t(V)||t(me));ke(we,{variant:"secondary",size:"small",get disabled(){return t(D)},onclick:()=>Pr(t(x)),children:(H,G)=>{he();var B=Me("Edit context");I(H,B)},$$slots:{default:!0}})}m(it);var Y=k(it,2);{let D=z(()=>t(pe).highlight?[{startLine:t(pe).highlight.startLine,endLine:t(pe).highlight.endLine,className:"test-expected-output"}]:void 0);_i(Y,{get value(){return t(x).conversation_ui},onChange:H=>t(x).conversation_ui=H,onBlur:async H=>{if(!t(s))return;const G=bn(H);t(x).conversation=G.conversation,t(x).expected_output=G.expected,await Se(be(t(x).id,{conversation:t(x).conversation,expected_output:t(x).expected_output}))},get highlights(){return t(D)},language:"markdown",height:220})}m(st);var Qe=k(st,2),ct=b(Qe),In=b(ct);{let D=z(()=>t(V)||t(me)||!t(pe).valid),H=z(()=>t(pe).valid?"Run":"Expected must be the last block (“Agent: …”)");ke(In,{size:"small",get disabled(){return t(D)},get title(){return t(H)},onclick:()=>pr(t(x).id),children:(G,B)=>{he();var $e=Me("▶ Run");I(G,$e)},$$slots:{default:!0}})}var Jr=k(In,2);{var Qr=D=>{const H=z(()=>yn(t(x).result,t(Xe)));var G=Qi(),B=b(G),$e=b(B);m(B);var Zt=k(B,2);{var ut=ge=>{var K=Hi(),We=b(K);m(K),te(()=>ie(We,`(${t(H).expectedSuccesses??""}/${t(H).expectedRuns??""} expected)`)),I(ge,K)};Q(Zt,ge=>{var K;(K=t(H))!=null&&K.showExpected&&ge(ut)})}var De=k(Zt,2);{var Yt=ge=>{var K=Ji(),We=b(K);{let en=z(()=>t(H).direction==="higher"?"chevron-up":"chevron-down");gt(We,{get name(){return t(en)},width:18,height:18,class:"inline-block align-text-bottom"})}he(),m(K),te(()=>Re(K,1,`ml-2 whitespace-nowrap font-semibold ${t(H).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55")),I(ge,K)};Q(De,ge=>{var K;(K=t(H))!=null&&K.significant&&ge(Yt)})}m(G),te(()=>ie($e,`${t(x).result.successes??""}/${t(x).result.total_runs??""}`)),I(D,G)};Q(Jr,D=>{t(x).result&&D(Qr)})}m(ct);var Wr=k(ct,2);{var Gr=D=>{var H=ro();tn(H,21,()=>t(x).result.runs,G=>G.index,(G,B,$e,Zt)=>{var ut=no(),De=b(ut),Yt=b(De,!0);m(De);var ge=k(De,2),K=b(ge),We=b(K);{var en=Le=>{gt(Le,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Kr=Le=>{gt(Le,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};Q(We,Le=>{t(B).success?Le(en):Le(Kr,!1)})}var Tn=k(We,2),Xr=b(Tn,!0);m(Tn),m(K);var Pn=k(K,2),En=b(Pn);En.__click=[Wi,$,B];var Ln=k(En,2);Ln.__click=[Gi,$,B];var Mn=k(Ln,2);Mn.__click=[Ki,$,B];var Rn=k(Mn,2);Rn.__click=[Xi,$,B];var An=k(Rn,2);An.__click=[Zi,$,B];var Nn=k(An,2);Nn.__click=[Yi,$,B];var jn=k(Nn,2);jn.__click=[eo,$,B];var Fn=k(jn,2);Fn.__click=[to,P,x,B],m(Pn),m(ge),m(ut),te(Le=>{Re(De,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${t(B).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),er(De,t(B).success?"":"background-color: rgb(156 80 80)"),ie(Yt,t(B).text||t(B).errors||"—"),Re(ge,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${t(B).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),ie(Xr,Le),Fn.disabled=t(J)},[()=>t(B).success?"Pass":br(t(B).evaluation)||(t(B).errors||"").split(/\r?\n/)[0]||"Fail"]),I(G,ut)}),m(H),I(D,H)};Q(Wr,D=>{t(x).result&&D(Gr)})}m(Qe),vt(ve,()=>t(x).author,D=>t(x).author=D),ss(Ee,()=>t(x).assertion_type,D=>t(x).assertion_type=D),vt(Oe,()=>t(x).assertion_value,D=>t(x).assertion_value=D),vt(ot,()=>t(x).timeout,D=>t(x).timeout=D),vt(lt,()=>t(x).similarity_threshold,D=>t(x).similarity_threshold=D),I(se,He)};Q(Br,se=>{t(Te)&&se(Hr)})}m(Gt),m(Sn),m(Lt),m(Ve),te(()=>{pt(Ve,"data-id",t(x).id),Re(Pe,1,`icon-btn ${t(x).pinned?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),pt(Pe,"aria-label",t(x).pinned?"Unpin":"Pin"),pt(Pe,"title",t(x).pinned?"Unpin":"Pin"),Pe.disabled=t(V)||t(me),rt.disabled=t(V)||t(me),Mt.disabled=t(V)||t(me),Re(Gt,1,`left-details-bg flex flex-col rounded border ${t(pe).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),Re(Rt,1,`left-details-bg sticky top-0 z-10 rounded-t px-2 pt-2 ${t(Te)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),pt(Be,"aria-label",t(Te)?"Collapse test":"Expand test"),pt(Be,"title",t(Te)?"Collapse":"Expand"),Be.disabled=t(me)}),vt(At,()=>t(x).scenario,se=>t(x).scenario=se),I(Fe,Ve)}),m(je),I(ce,je)};Q(Ar,ce=>{t(L).length===0?ce(Nr):ce(jr,!1)})}m(re);var Fr=k(re,2);{var Or=ce=>{const je=z(()=>t(L).find(Fe=>Fe.id===t(N)));{const Fe=Ue=>{var pe=ao(),Te=b(pe);ns(Te,()=>t(N),Ve=>{Dn(Ve,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return t(R)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,onContextChanged:Lt=>u(R,Lt,!0)})}),m(pe),I(Ue,pe)};let x=z(()=>{var Ue;return`Test context — ${((Ue=t(je))==null?void 0:Ue.scenario)||"Test"}`});as(ce,{get title(){return t(x)},onClose:()=>void Er(),children:Fe})}};Q(Fr,ce=>{t(N)&&ce(Or)})}te(()=>{Re(Ie,1,`icon-btn justify-self-center ${t(tt)?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Ie.disabled=t(V)||t(me)||t(L).length===0,ie(Et,`Pinned: ${t(Ct)??""}/${t(L).length??""}`)}),I(W,ye)}}),m(Ht),m(f),I(a,f)};Q(Lr,a=>{t(et)&&a(Mr)})}I(e,wn),dn()}es(["click","change"]);export{Mo as component};
|
|
5
|
+
`).trimEnd();return{valid:E,expected:oe,conversation:ae,highlight:{startLine:C.startLine,endLine:C.endLine}}}function kr(a){const f=a<0?-1:1,c=Math.abs(a),g=.254829592,v=-.284496736,C=1.421413741,y=-1.453152027,E=1.061405429,Z=1/(1+.3275911*c),de=1-((((E*Z+y)*Z+C)*Z+v)*Z+g)*Z*Math.exp(-c*c);return f*de}function Cr(a){return .5*(1+kr(a/Math.SQRT2))}function Sr(a,f,c,g){if(!Number.isFinite(a)||!Number.isFinite(f)||!Number.isFinite(c)||!Number.isFinite(g)||f<=0||g<=0)return null;const v=a/f,C=c/g,y=(a+c)/(f+g),E=Math.sqrt(y*(1-y)*(1/f+1/g));if(!Number.isFinite(E)||E<=0)return null;const M=(C-v)/E,Z=2*(1-Cr(Math.abs(M)));return Math.max(0,Math.min(1,Z))}function yn(a,f){if(!a||a.isOld)return null;const c=a.total_runs;if(c<=0)return null;const g=a.previous,v=g&&g.total_runs>0?g.success_count/g.total_runs:null,C=a.successes/c,y=v===null||C>=v?"higher":"lower",E=(()=>{if(c<=5||!g||g.total_runs<=0)return!1;const de=Sr(g.success_count,g.total_runs,a.successes,c);return de!==null&&de<.05})(),M=Number.isFinite(f)&&f>0&&c<f;if(!M&&!E)return null;const Z=M?Math.round(a.successes/c*f):void 0;return{showExpected:M,expectedSuccesses:Z,expectedRuns:f,significant:E,direction:y}}async function be(a,f){await ee.tests.patchTest.mutate({agent:t(s),region:t(o),id:a,patch:f})}async function Ir(a){await ee.tests.deleteTest.mutate({agent:t(s),region:t(o),id:a});try{await It(a,!1)}catch(f){console.error(f)}await qe()}function It(a,f){if(!(t(s)??"").trim())return Promise.resolve();const g=String(a??"").trim();if(!g)return Promise.resolve();const v=new Set(t(Ae)),C=v.has(g);if(f===C)return Promise.resolve();f?v.add(g):v.delete(g);const y=Array.from(v);return u(Ae,y,!0),Se(Tt({expandedTestIds:y}))}function Tr(a){It(a,!t(gn).has(a)).catch(console.error)}function Pr(a){t(s)&&(u(N,a.id,!0),u(R,l(yr(a.context)),!0))}async function Er(){const a=t(N);if(!a||!t(s)){u(N,null);return}const f=l(t(R));u(N,null),u(L,t(L).map(c=>c.id===a?{...c,context:JSON.stringify(f)}:c),!0);try{await Se(be(a,{context:f}))}catch(c){console.error(c),await qe()}}async function Tt(a){await ee.tests.updateConfig.mutate({agent:t(s),region:t(o),cfg:a})}cn(()=>{ne&&clearInterval(ne)});var wn=uo();ts(a=>{var f=xi();I(a,f)});var kn=_e(wn);On(kn,{title:"Default Context",get open(){return t(A)},set open(c){u(A,c,!0)},children:c=>{{let g=O(()=>`editorState/context/${t(s)}/tests/default`);Dn(c,{class:"h-[70vh]",get context(){return t(T)},onContextChanged:v=>u(T,v,!0),get editorStateKey(){return t(g)},suppressErrors:!0,defaultFormat:"json",hideHeader:!0})}},footer:c=>{var g=bi(),v=_e(g);ke(v,{variant:"outlined",size:"small",onclick:()=>u(A,!1),children:(y,E)=>{he();var M=Me("Cancel");I(y,M)},$$slots:{default:!0}});var C=k(v,2);ke(C,{size:"small",onclick:async()=>{u(w,t(T),!0),await Se(Tt({defaultContext:t(w)})),u(A,!1)},children:(y,E)=>{he();var M=Me("Save");I(y,M)},$$slots:{default:!0}}),I(c,g)},$$slots:{default:!0,footer:!0}});var Cn=k(kn,2);On(Cn,{get title(){return t(S)},class:"!w-[80vw] !max-w-5xl",get open(){return t(U)},set open(c){u(U,c,!0)},children:c=>{var g=Dt(),v=_e(g);{var C=E=>{var M=yi();I(E,M)},y=E=>{var M=Dt(),Z=_e(M);{var de=oe=>{var ae=wi(),fe=b(ae,!0);m(ae),te(()=>ie(fe,t(F))),I(oe,ae)},nt=oe=>{var ae=ki(),fe=b(ae,!0);m(ae),te(()=>ie(fe,t(j)||"—")),I(oe,ae)};Q(Z,oe=>{t(F)?oe(de):oe(nt,!1)},!0)}I(E,M)};Q(v,E=>{t(h)?E(C):E(y,!1)})}I(c,g)},footer:c=>{ke(c,{variant:"outlined",size:"small",onclick:()=>u(U,!1),children:(g,v)=>{he();var C=Me("Close");I(g,C)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var Lr=k(Cn,2);{var Mr=a=>{var f=co(),c=b(f),g=b(c),v=b(g),C=k(b(v),2);zn(C,{type:"number",min:"0",max:"500",class:"w-16",onchange:()=>{u(p,d(+t(p)||0,0,500),!0),Se(Tt({repeats:t(p)}))},get value(){return t(p)},set value(W){u(p,W,!0)}}),m(v);var y=k(v,2),E=k(b(y),2);zn(E,{type:"number",min:"0",max:"20",class:"w-16",onchange:()=>{u(_,d(+t(_)||0,0,20),!0),Se(Tt({concurrency:t(_)}))},get value(){return t(_)},set value(W){u(_,W,!0)}}),m(y),m(g);var M=k(g,2),Z=b(M);{var de=W=>{var le=Ci(),ye=b(le),re=b(ye);m(ye);var Ne=k(ye,2);{let Ie=O(()=>t(Ce)||t(ze));ke(Ne,{variant:"secondary",get disabled(){return t(Ie)},onclick:vr,children:(Qt,Wt)=>{he();var Lt=Me();te(()=>ie(Lt,t(ze)?"Cancel requested…":t(Ce)?"Canceling…":"Cancel")),I(Qt,Lt)},$$slots:{default:!0}})}m(le),te(()=>ie(re,`Running… ${t(wt)??""}/${t(Vt)??""}`)),I(W,le)};Q(Z,W=>{t(V)&&W(de)})}var nt=k(Z,2);{let W=O(()=>t(V)||t(me)||!t(s));ke(nt,{variant:"secondary",get disabled(){return t(W)},onclick:()=>{u(T,l(t(w)),!0),u(A,!0)},children:(le,ye)=>{he();var re=Me("Edit context");I(le,re)},$$slots:{default:!0}})}var oe=k(nt,2),ae=b(oe);{let W=O(()=>t(me)||t(V)||!t(s));ke(ae,{variant:"secondary",onclick:mr,get disabled(){return t(W)},class:"inline-flex items-center gap-1",children:(le,ye)=>{var re=Si(),Ne=_e(re);xt(Ne,{icon:"mdi:plus-thick",width:18,height:18}),he(),I(le,re)},$$slots:{default:!0}})}var fe=k(ae,2);{var Pt=W=>{var le=Ii();I(W,le)};Q(fe,W=>{t(et)&&t(L).length===0&&W(Pt)})}m(oe);var Et=k(oe,2);{let W=O(()=>t(V)||t(me)||t(L).length===0||t(tt)&&t(St)===0);ke(Et,{class:"disabled:cursor-not-allowed disabled:opacity-50",get disabled(){return t(W)},onclick:()=>fr(t(tt)?"pinned":"all"),children:(le,ye)=>{he();var re=Me();te(()=>ie(re,`▶ ${t(tt)?"Run pinned":"Run all"}`)),I(le,re)},$$slots:{default:!0}})}m(M),m(c);var Jt=k(c,2),Rr=b(Jt);os(Rr,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(W,le)=>{var ye=lo(),re=_e(ye),Ne=b(re),Ie=b(Ne);Ie.__click=[Ti,gr,hr];var Qt=b(Ie);{let ce=O(()=>t(tt)?"mdi:pin":"mdi:pin-outline");xt(Qt,{class:"block",get icon(){return t(ce)},width:18,height:18})}m(Ie);var Wt=k(Ie,2),Lt=b(Wt);m(Wt),m(Ne);var Ar=k(Ne,2);{var Nr=ce=>{var je=Pi();I(ce,je)},jr=ce=>{var je=oo();tn(je,23,()=>t(L),Fe=>Fe.id,(Fe,x,Ue)=>{const pe=O(()=>bn(t(x).conversation_ui)),Te=O(()=>t(gn).has(t(x).id));var Ve=io(),Mt=b(Ve),rt=b(Mt),Pe=b(rt);Pe.__click=[Ei,x,L,Se,be];var $r=b(Pe);{let se=O(()=>t(x).pinned?"mdi:pin":"mdi:pin-outline");xt($r,{class:"block",get icon(){return t(se)},width:18,height:18})}m(Pe);var st=k(Pe,2);st.__click=()=>xr(t(x),t(Ue));var Dr=b(st);xt(Dr,{icon:"mdi:content-copy",width:18,height:18}),m(st);var Rt=k(st,2);Rt.__click=[Li,Ir,x];var zr=b(Rt);xt(zr,{icon:"mdi:trash-can-outline",width:18,height:18}),m(Rt),m(rt);var Sn=k(rt,2),Gt=b(Sn),At=b(Gt),Kt=b(At),Nt=b(Kt);pt(Nt),Nt.__change=[Mi,be,x];var Be=k(Nt,2);Be.__click=[Ri,Tr,x];var qr=b(Be);{let se=O(()=>t(Te)?"chevron-up":"chevron-down");ht(qr,{get name(){return t(se)},width:20,height:20,class:"block"})}m(Be),m(Kt);var Ur=k(Kt,2);{var Vr=se=>{var He=Oi(),it=b(He);{var jt=ve=>{const ue=O(()=>yn(t(x).result,t(Xe)));var Ee=ji(),Oe=_e(Ee),ot=b(Oe);m(Oe);var Je=k(Oe,2);{var at=we=>{var Y=Ai(),Qe=b(Y);m(Y),te(()=>ie(Qe,`(${t(ue).expectedSuccesses??""}/${t(ue).expectedRuns??""} expected)`)),I(we,Y)};Q(Je,we=>{var Y;(Y=t(ue))!=null&&Y.showExpected&&we(at)})}var lt=k(Je,2);{var ct=we=>{var Y=Ni(),Qe=b(Y);{let ut=O(()=>t(ue).direction==="higher"?"chevron-up":"chevron-down");ht(Qe,{get name(){return t(ut)},width:16,height:16,class:"inline-block align-text-bottom"})}he(),m(Y),te(()=>Re(Y,1,`ml-2 whitespace-nowrap font-semibold ${t(ue).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55")),I(we,Y)};Q(lt,we=>{var Y;(Y=t(ue))!=null&&Y.significant&&we(ct)})}te(()=>ie(ot,`${t(x).result.successes??""}/${t(x).result.total_runs??""}`)),I(ve,Ee)},Xt=ve=>{var ue=Fi();I(ve,ue)};Q(it,ve=>{t(x).result?ve(jt):ve(Xt,!1)})}m(He),I(se,He)};Q(Ur,se=>{t(Te)||se(Vr)})}m(At);var Br=k(At,2);{var Hr=se=>{var He=so(),it=_e(He),jt=b(it);{var Xt=z=>{var H=$i();I(z,H)};Q(jt,z=>{t(pe).valid||z(Xt)})}var ve=k(jt,2);pt(ve),ve.__change=[Di,be,x];var ue=k(ve,2),Ee=b(ue);Ee.__change=[zi,be,x],tn(Ee,21,()=>xe,rs,(z,H)=>{var G=qi(),B=b(G,!0);m(G);var $e={};te(()=>{ie(B,t(H).label),$e!==($e=t(H).value)&&(G.value=(G.__value=t(H).value)??"")}),I(z,G)}),m(Ee);var Oe=k(Ee,2);pt(Oe),Oe.__change=[Ui,be,x],m(ue);var ot=k(ue,2),Je=b(ot),at=k(b(Je),2);pt(at),at.__change=[Vi,x,d,be],m(Je);var lt=k(Je,2),ct=k(b(lt),2);pt(ct),ct.__change=[Bi,x,d,be],m(lt);var we=k(lt,2);{let z=O(()=>t(V)||t(me));ke(we,{variant:"secondary",size:"small",get disabled(){return t(z)},onclick:()=>Pr(t(x)),children:(H,G)=>{he();var B=Me("Edit context");I(H,B)},$$slots:{default:!0}})}m(ot);var Y=k(ot,2);{let z=O(()=>t(pe).highlight?[{startLine:t(pe).highlight.startLine,endLine:t(pe).highlight.endLine,className:"test-expected-output"}]:void 0);_i(Y,{get value(){return t(x).conversation_ui},onChange:H=>t(x).conversation_ui=H,onBlur:async H=>{if(!t(s))return;const G=bn(H);t(x).conversation=G.conversation,t(x).expected_output=G.expected,await Se(be(t(x).id,{conversation:t(x).conversation,expected_output:t(x).expected_output}))},get highlights(){return t(z)},language:"markdown",height:220})}m(it);var Qe=k(it,2),ut=b(Qe),In=b(ut);{let z=O(()=>t(V)||t(me)||!t(pe).valid),H=O(()=>t(pe).valid?"Run":"Expected must be the last block (“Agent: …”)");ke(In,{size:"small",get disabled(){return t(z)},get title(){return t(H)},onclick:()=>pr(t(x).id),children:(G,B)=>{he();var $e=Me("▶ Run");I(G,$e)},$$slots:{default:!0}})}var Jr=k(In,2);{var Qr=z=>{const H=O(()=>yn(t(x).result,t(Xe)));var G=Qi(),B=b(G),$e=b(B);m(B);var Zt=k(B,2);{var dt=ge=>{var K=Hi(),We=b(K);m(K),te(()=>ie(We,`(${t(H).expectedSuccesses??""}/${t(H).expectedRuns??""} expected)`)),I(ge,K)};Q(Zt,ge=>{var K;(K=t(H))!=null&&K.showExpected&&ge(dt)})}var De=k(Zt,2);{var Yt=ge=>{var K=Ji(),We=b(K);{let en=O(()=>t(H).direction==="higher"?"chevron-up":"chevron-down");ht(We,{get name(){return t(en)},width:18,height:18,class:"inline-block align-text-bottom"})}he(),m(K),te(()=>Re(K,1,`ml-2 whitespace-nowrap font-semibold ${t(H).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55")),I(ge,K)};Q(De,ge=>{var K;(K=t(H))!=null&&K.significant&&ge(Yt)})}m(G),te(()=>ie($e,`${t(x).result.successes??""}/${t(x).result.total_runs??""}`)),I(z,G)};Q(Jr,z=>{t(x).result&&z(Qr)})}m(ut);var Wr=k(ut,2);{var Gr=z=>{var H=ro();tn(H,21,()=>t(x).result.runs,G=>G.index,(G,B,$e,Zt)=>{var dt=no(),De=b(dt),Yt=b(De,!0);m(De);var ge=k(De,2),K=b(ge),We=b(K);{var en=Le=>{ht(Le,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Kr=Le=>{ht(Le,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};Q(We,Le=>{t(B).success?Le(en):Le(Kr,!1)})}var Tn=k(We,2),Xr=b(Tn,!0);m(Tn),m(K);var Pn=k(K,2),En=b(Pn);En.__click=[Wi,D,B];var Ln=k(En,2);Ln.__click=[Gi,D,B];var Mn=k(Ln,2);Mn.__click=[Ki,D,B];var Rn=k(Mn,2);Rn.__click=[Xi,D,B];var An=k(Rn,2);An.__click=[Zi,D,B];var Nn=k(An,2);Nn.__click=[Yi,D,B];var jn=k(Nn,2);jn.__click=[eo,D,B];var Fn=k(jn,2);Fn.__click=[to,P,x,B],m(Pn),m(ge),m(dt),te(Le=>{Re(De,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${t(B).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),er(De,t(B).success?"":"background-color: rgb(156 80 80)"),ie(Yt,t(B).text||t(B).errors||"—"),Re(ge,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${t(B).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),ie(Xr,Le),Fn.disabled=t(J)},[()=>t(B).success?"Pass":br(t(B).evaluation)||(t(B).errors||"").split(/\r?\n/)[0]||"Fail"]),I(G,dt)}),m(H),I(z,H)};Q(Wr,z=>{t(x).result&&z(Gr)})}m(Qe),gt(ve,()=>t(x).author,z=>t(x).author=z),ss(Ee,()=>t(x).assertion_type,z=>t(x).assertion_type=z),gt(Oe,()=>t(x).assertion_value,z=>t(x).assertion_value=z),gt(at,()=>t(x).timeout,z=>t(x).timeout=z),gt(ct,()=>t(x).similarity_threshold,z=>t(x).similarity_threshold=z),I(se,He)};Q(Br,se=>{t(Te)&&se(Hr)})}m(Gt),m(Sn),m(Mt),m(Ve),te(()=>{vt(Ve,"data-id",t(x).id),Re(Pe,1,`icon-btn ${t(x).pinned?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),vt(Pe,"aria-label",t(x).pinned?"Unpin":"Pin"),vt(Pe,"title",t(x).pinned?"Unpin":"Pin"),Pe.disabled=t(V)||t(me),st.disabled=t(V)||t(me),Rt.disabled=t(V)||t(me),Re(Gt,1,`left-details-bg flex flex-col rounded border ${t(pe).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55"),Re(At,1,`left-details-bg sticky top-0 z-10 rounded-t px-2 pt-2 ${t(Te)?"border-b border-rc-gray-700 pb-1":"pb-2"}`,"svelte-rdft55"),vt(Be,"aria-label",t(Te)?"Collapse test":"Expand test"),vt(Be,"title",t(Te)?"Collapse":"Expand"),Be.disabled=t(me)}),gt(Nt,()=>t(x).scenario,se=>t(x).scenario=se),I(Fe,Ve)}),m(je),I(ce,je)};Q(Ar,ce=>{t(L).length===0?ce(Nr):ce(jr,!1)})}m(re);var Fr=k(re,2);{var Or=ce=>{const je=O(()=>t(L).find(Fe=>Fe.id===t(N)));{const Fe=Ue=>{var pe=ao(),Te=b(pe);ns(Te,()=>t(N),Ve=>{{let Mt=O(()=>`editorState/context/${t(s)}/tests/${t(N)}`);Dn(Ve,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return t(R)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,get editorStateKey(){return t(Mt)},onContextChanged:rt=>u(R,rt,!0)})}}),m(pe),I(Ue,pe)};let x=O(()=>{var Ue;return`Test context — ${((Ue=t(je))==null?void 0:Ue.scenario)||"Test"}`});as(ce,{get title(){return t(x)},onClose:()=>void Er(),children:Fe})}};Q(Fr,ce=>{t(N)&&ce(Or)})}te(()=>{Re(Ie,1,`icon-btn justify-self-center ${t(tt)?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Ie.disabled=t(V)||t(me)||t(L).length===0,ie(Lt,`Pinned: ${t(St)??""}/${t(L).length??""}`)}),I(W,ye)}}),m(Jt),m(f),I(a,f)};Q(Lr,a=>{t(et)&&a(Mr)})}I(e,wn),dn()}es(["click","change"]);export{Mo as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{b as Gn,s as R}from"../chunks/CB3MYTwM.js";import{e as Zn,p as Jn,i as S,j as Oe,k as Et,h as n,u as F,l as i,f as w,a as K,d as m,t as k,b as g,c as Qn,s as v,g as Lt,r as u,n as Pt,q as Yt,C as Gt}from"../chunks/BRMnbBOX.js";import{i as D}from"../chunks/BFchB-2I.js";import{e as it,i as ta}from"../chunks/D_iTaAhh.js";import{s as ea,c as ra}from"../chunks/DMtzEpj5.js";import{s as Q}from"../chunks/3HVf2z3Q.js";import{b as Zt}from"../chunks/CmatTLDp.js";import{p as na}from"../chunks/B5pH84aF.js";import{B as Ct}from"../chunks/DGK-Y22B.js";import{P as aa}from"../chunks/Cob_zFH5.js";import{g as Pr,T as ia}from"../chunks/8mHyIC1B.js";function oa(W,ot,st,Y,gt,ht,Ot){if(W.button!==0||n(ot)==null||n(st)==null||n(Y)<=0)return;W.preventDefault(),i(gt,!0);const _t=W.clientX,I=n(ot),xt=n(st)-n(ot);ht({startEvent:W,onMove:kt=>{const yt=(kt.clientX-_t)/n(Y)*xt;Ot(I-yt,I-yt+xt)}})}function sa(W,ot,st,Y,gt,ht,Ot,_t,I,xt,kt,Jt){if(W.button!==0||!n(ot).exists||n(st)==null||n(Y)==null||n(gt)==null||n(ht)<=0)return;W.preventDefault(),i(Ot,null);const yt=W.currentTarget,Qt=W.clientX,Ut=n(ot).alignmentOffsetMs,lt=n(gt)-n(Y);_t({startEvent:W,activationDistancePx:6,onStart:()=>{i(I,!0)},onMove:B=>{const bt=(B.clientX-Qt)/n(ht)*lt;xt(Ut+bt)},onClick:B=>{kt(B.clientX,yt)},onEnd:({wasDrag:B})=>{B&&Jt()}})}var la=W=>W.stopPropagation(),ca=w('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),da=w('<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),ua=w('<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),fa=w('<div class="mt-2 text-sm text-rc-gray-400"> </div>'),va=w('<div class="mt-2 text-sm text-red-300"> </div>'),ma=w('<div class="mt-2 text-sm text-red-300"> </div>'),pa=w('<div class="mt-2 text-sm text-red-300"> </div>'),ga=w('<div class="mt-2 text-sm text-red-300"> </div>'),ha=w('<span class="mx-2">•</span> <span> </span>',1),_a=w('<div class="mt-1 text-xs text-rc-gray-300"><span class="font-mono text-rc-gray-100"> </span> <span class="mx-2">•</span> <span> </span> <span class="mx-2">•</span> <span> </span> <!></div>'),xa=w('<div class="mt-1 text-sm text-rc-gray-300">Upload a WAV recording to overlay the call waveform and persist it under this\n project's `data/` folder.</div>'),ya=w('<div class="mt-1 text-rc-gray-100">Saving alignment…</div>'),ba=w('<div class="text-sm text-rc-gray-300">Loading latency traces…</div>'),wa=w('<div class="text-sm text-rc-gray-300">No latency metrics were found on this call.</div>'),Ma=w('<div class="text-sm text-rc-gray-300">Preparing timeline…</div>'),Sa=w('<div class="flex h-10 items-center text-xs text-rc-gray-300"> </div>'),Ta=w('<div class="absolute -translate-x-1/2 border-l border-dashed"></div>'),Aa=w('<div class="absolute top-0 -translate-x-1/2 border-l-2 border-rc-green-200/90"></div> <div class="absolute top-1 h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"></div>',1),$a=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"> </div>',1),Ea=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),Pa=w('<div class="absolute top-1/2 h-5 -translate-y-1/2 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]"></div>'),ka=w('<div class="relative z-0 h-10 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/20"><!> <!></div>'),Ra=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Upload a WAV file to render the call waveform here.</div>'),Fa=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>'),Ia=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>'),Na=w('<canvas class="absolute inset-0 h-full w-full"></canvas>'),Da=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),La=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Waveform is outside the current viewport. Pan the timeline or reset the alignment.</div>'),Ca=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"> </div>',1),Oa=w('<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!> <div class="flex h-40 items-center text-xs text-rc-gray-300">Waveform</div> <div class="flex h-8 items-center text-xs text-rc-gray-300">Scale</div></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60 bg-rc-gray-800/30"></div> <!> <div class="relative z-0 h-40 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/30"><!> <!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60 bg-rc-gray-800/25"><div class="absolute left-3 top-1/2 -translate-y-1/2 rounded bg-rc-gray-900/80 px-2 py-0.5 text-[11px] text-rc-gray-300"> </div> <!></div></div></div>'),Ua=w("<div> </div>"),Wa=w('<div class="pointer-events-none z-popover max-w-[28rem] rounded-md border border-rc-gray-500/80 bg-rc-gray-900/95 px-3 py-2 text-xs text-rc-gray-100 shadow-2xl backdrop-blur-sm"></div>'),Va=w('<div class="flex h-full min-h-0 flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><div><h2 class="text-lg font-semibold text-rc-gray-100">Latency <!></h2> <div class="mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300"><div><span class="text-rc-gray-400">Latency traces:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Traces with metrics:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Recording offset:</span> <span class="font-mono text-rc-gray-100"> </span></div> <!> <!></div></div> <div class="flex flex-wrap items-center gap-2"><input type="file" accept=".wav,audio/wav,audio/x-wav" class="hidden"/> <!> <!> <!> <!> <!> <!></div></div> <!> <!> <!> <!> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-auto p-4"><div class="flex flex-col gap-4"><div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="flex flex-wrap items-start justify-between gap-3"><div><div class="text-sm font-semibold text-rc-gray-100">Recording</div> <!></div> <div class="text-xs text-rc-gray-300"><div>Drag the latency chart to pan the viewport.</div> <div>Scroll anywhere in the timeline to zoom traces and waveform together.</div> <div>Click the waveform to move the playhead.</div> <div>Press Space to play or pause.</div> <div>Drag the waveform itself to align the audio against the traces.</div> <!></div></div></div> <div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="mb-3 flex items-center justify-between gap-3"><div class="text-sm font-semibold text-rc-gray-100">Call timeline</div> <div class="text-xs text-rc-gray-400">Shared x-axis for traces and waveform</div></div> <!></div></div></div></div> <!>',1);function ti(W,ot){Jn(ot,!0);const st=32,Y=40,gt=160,ht=32,Ot=new Set(["VAD","TTS→Audio"]),_t=new ia(fetch),I={blue:"#569cd6",green:"#93FF6D",greenDark:"#00B58A",orange:"#ce9178",purple:"#81147D",red:"#FF6666",gray:"#767676"},xt=new Set(["vad.start_of_speech","vad.end_of_speech"]),kt=new Set(["stt.start_of_speech","stt.interim_transcript","stt.preflight_transcript","stt.final_transcript"]),Jt=new Set(["vad.user_speech","vad.endpointing","vad.trailing_silence","stt.endpointing","stt.transcription","stt.turn_commit","stt.until_turn_committed","stt.transcript_to_speech_created","stt.transcript_to_llm_request","stt.transcript_trigger_selected","stt.speech_end_to_trigger_transcript","stt.speech_end_to_final_transcript","stt.trigger_transcript_to_reply_trigger","stt.final_transcript_to_commit"]),yt=[{label:"VAD",names:[...xt]},{label:"STT",names:[...kt]},{label:"Trigger",component:"trigger"},{label:"LLM",names:["llm.request.ttft","llm.streaming"]},{label:"LLM→TTS",names:["llm_to_tts.buffering","llm_to_tts.streaming"]},{label:"TTS generation",names:["tts.generation"]},{label:"TTS→Audio",names:["tts_to_audio.buffering","tts_to_audio.streaming"]},{label:"LLM→Audio start",names:["llm_to_audio.latency"]},{label:"Other"}],Qt={"vad.user_speech":Z(I.purple,.35),"vad.endpointing":Z(I.purple,-.15),"llm.request":Z(I.blue,-.25),"llm.streaming":I.blue,"llm_to_tts.buffering":Z(I.orange,-.25),"llm_to_tts.streaming":I.orange,"tts.generation":Z(I.orange,.25),"tts_to_audio.buffering":Z(I.purple,-.25),"tts_to_audio.streaming":Z(I.purple,.25),"llm_to_audio.ok":I.green,"llm_to_audio.high":I.red,trigger:I.greenDark,stt:Z(I.purple,.2),other:I.gray};let Ut=S(Oe(Pr()??"")),lt=S(null),B=S(Oe([])),Rt=S(!1),bt=S(null),$=S(Oe({exists:!1,audioUrl:null,fileName:null,mimeType:null,size:null,uploadedAt:null,alignmentOffsetMs:0})),me=S(!1),wt=S(null),te=S(!1),C=S(null),Mt=S(!1),St=S(null),q=S(0),tt=S(!1),et=S(null),ee=S(!1),ct=S(null),dt=S(!1),y=S(null),M=S(null),pe=S(null),re=S(0),ge=S(null),he=S(null),Wt=S(0),_e=S(0),xe=S(null),Ft=S(null),Vt=S(null),ye=S(null),Ue=S(""),ne=0,ae=0,ie=0,ut=null,It=0,ft=null,G=null,Bt=null,zt=null,jt=null;const qt=F(()=>na.params.conversationId);function We(t,e){const r=new URLSearchParams;e&&r.set("source",e);const a=r.toString();return`/traces/api/latency/${encodeURIComponent(t)}${a?`?${a}`:""}`}const Ht=F(()=>n(qt)?We(n(qt),n(Ut)):""),Tt=F(()=>{var e;if(typeof((e=n(lt))==null?void 0:e.createdAt)=="number"&&Number.isFinite(n(lt).createdAt))return n(lt).createdAt;let t=Number.POSITIVE_INFINITY;for(const r of n(B))typeof r.createdAt!="number"||!Number.isFinite(r.createdAt)||(t=Math.min(t,r.createdAt));return Number.isFinite(t)?t:0}),oe=F(()=>Xr(n(B))),kr=F(()=>n(B).filter(t=>{const e=t==null?void 0:t.metrics;return!!e&&typeof e=="object"}).length),se=F(()=>{const t=new Map;for(const e of n(oe)){const r=t.get(e.row);r?r.push(e):t.set(e.row,[e])}return[...yt].reverse().map(e=>({label:e.label,segments:t.get(e.label)??[]})).filter(e=>e.segments.length>0)}),Rr=F(()=>Jr(n(se))),H=F(()=>n(C)?n(Tt)+n($).alignmentOffsetMs:null),Fr=F(()=>st+n(se).length*Y+gt+ht),be=F(()=>n(H)==null?null:n(H)+n(q)),le=F(()=>{const t=n(be);if(t==null||n(y)==null||n(M)==null)return null;const e=n(M)-n(y);return!Number.isFinite(e)||e<=0||t<n(y)||t>n(M)?null:{leftPercent:V((t-n(y))/e*100,0,100),heightPx:n(Fr)}}),Xt=F(()=>{let t=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY;for(const r of n(oe))t=Math.min(t,r.start),e=Math.max(e,r.end);return n(C)&&n(H)!=null&&(t=Math.min(t,n(H)),e=Math.max(e,n(H)+n(C).durationMs)),!Number.isFinite(t)||!Number.isFinite(e)||e<=t?null:{min:t,max:e}}),Ve=F(()=>{if(n(y)==null||n(M)==null)return null;const t=n(M)-n(y);return t>0?t:null}),ce=F(()=>n(y)==null||n(M)==null?[]:Qr(n(y),n(M),n(Tt))),Ir=F(()=>{if(n(y)==null||n(M)==null)return null;const t=n(M)-n(y);return!Number.isFinite(t)||t<=0?null:He(t)}),Nr=F(()=>!n(C)||n(H)==null||n(y)==null||n(M)==null?!1:n(H)+n(C).durationMs>n(y)&&n(H)<n(M)),Dr=F(()=>n(Ft)?Yr(n(Ft)).split(`
|
|
1
|
+
import"../chunks/CWj6FrbW.js";import{b as Gn,s as R}from"../chunks/CB3MYTwM.js";import{e as Zn,p as Jn,i as S,j as Oe,k as Et,h as n,u as F,l as i,f as w,a as K,d as m,t as k,b as g,c as Qn,s as v,g as Lt,r as u,n as Pt,q as Yt,C as Gt}from"../chunks/BRMnbBOX.js";import{i as D}from"../chunks/BFchB-2I.js";import{e as it,i as ta}from"../chunks/D_iTaAhh.js";import{s as ea,c as ra}from"../chunks/DMtzEpj5.js";import{s as Q}from"../chunks/3HVf2z3Q.js";import{b as Zt}from"../chunks/CmatTLDp.js";import{p as na}from"../chunks/2QZUjt52.js";import{B as Ct}from"../chunks/C8-d_pGN.js";import{P as aa}from"../chunks/Cob_zFH5.js";import{g as Pr,T as ia}from"../chunks/8mHyIC1B.js";function oa(W,ot,st,Y,gt,ht,Ot){if(W.button!==0||n(ot)==null||n(st)==null||n(Y)<=0)return;W.preventDefault(),i(gt,!0);const _t=W.clientX,I=n(ot),xt=n(st)-n(ot);ht({startEvent:W,onMove:kt=>{const yt=(kt.clientX-_t)/n(Y)*xt;Ot(I-yt,I-yt+xt)}})}function sa(W,ot,st,Y,gt,ht,Ot,_t,I,xt,kt,Jt){if(W.button!==0||!n(ot).exists||n(st)==null||n(Y)==null||n(gt)==null||n(ht)<=0)return;W.preventDefault(),i(Ot,null);const yt=W.currentTarget,Qt=W.clientX,Ut=n(ot).alignmentOffsetMs,lt=n(gt)-n(Y);_t({startEvent:W,activationDistancePx:6,onStart:()=>{i(I,!0)},onMove:B=>{const bt=(B.clientX-Qt)/n(ht)*lt;xt(Ut+bt)},onClick:B=>{kt(B.clientX,yt)},onEnd:({wasDrag:B})=>{B&&Jt()}})}var la=W=>W.stopPropagation(),ca=w('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),da=w('<div><span class="text-rc-gray-400">Playhead:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),ua=w('<div><span class="text-rc-gray-400">Viewport:</span> <span class="font-mono text-rc-gray-100"> </span></div>'),fa=w('<div class="mt-2 text-sm text-rc-gray-400"> </div>'),va=w('<div class="mt-2 text-sm text-red-300"> </div>'),ma=w('<div class="mt-2 text-sm text-red-300"> </div>'),pa=w('<div class="mt-2 text-sm text-red-300"> </div>'),ga=w('<div class="mt-2 text-sm text-red-300"> </div>'),ha=w('<span class="mx-2">•</span> <span> </span>',1),_a=w('<div class="mt-1 text-xs text-rc-gray-300"><span class="font-mono text-rc-gray-100"> </span> <span class="mx-2">•</span> <span> </span> <span class="mx-2">•</span> <span> </span> <!></div>'),xa=w('<div class="mt-1 text-sm text-rc-gray-300">Upload a WAV recording to overlay the call waveform and persist it under this\n project's `data/` folder.</div>'),ya=w('<div class="mt-1 text-rc-gray-100">Saving alignment…</div>'),ba=w('<div class="text-sm text-rc-gray-300">Loading latency traces…</div>'),wa=w('<div class="text-sm text-rc-gray-300">No latency metrics were found on this call.</div>'),Ma=w('<div class="text-sm text-rc-gray-300">Preparing timeline…</div>'),Sa=w('<div class="flex h-10 items-center text-xs text-rc-gray-300"> </div>'),Ta=w('<div class="absolute -translate-x-1/2 border-l border-dashed"></div>'),Aa=w('<div class="absolute top-0 -translate-x-1/2 border-l-2 border-rc-green-200/90"></div> <div class="absolute top-1 h-2 w-2 -translate-x-1/2 rounded-full bg-rc-green-200"></div>',1),$a=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/70"></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"> </div>',1),Ea=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),Pa=w('<div class="absolute top-1/2 h-5 -translate-y-1/2 rounded border shadow-[0_0_0_1px_rgba(0,0,0,0.12)]"></div>'),ka=w('<div class="relative z-0 h-10 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/20"><!> <!></div>'),Ra=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Upload a WAV file to render the call waveform here.</div>'),Fa=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Decoding waveform…</div>'),Ia=w('<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-red-300"> </div>'),Na=w('<canvas class="absolute inset-0 h-full w-full"></canvas>'),Da=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div>'),La=w(`<div class="absolute inset-0 flex items-center justify-center px-4 text-sm text-rc-gray-300">Waveform is outside the current viewport. Pan the timeline or reset the
|
|
2
|
+
alignment.</div>`),Ca=w('<div class="absolute inset-y-0 w-px bg-rc-gray-700/60"></div> <div class="absolute bottom-1 -translate-x-1/2 whitespace-nowrap text-[11px] text-rc-gray-400"> </div>',1),Oa=w('<div class="grid grid-cols-[140px_minmax(0,1fr)] gap-x-3"><div class="flex flex-col"><div class="h-8"></div> <!> <div class="flex h-40 items-center text-xs text-rc-gray-300">Waveform</div> <div class="flex h-8 items-center text-xs text-rc-gray-300">Scale</div></div> <div class="relative"><div class="pointer-events-none absolute inset-0 z-10 overflow-hidden"><!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-t border border-b-0 border-rc-gray-700/60 bg-rc-gray-800/30"></div> <!> <div class="relative z-0 h-40 overflow-hidden border-x border-t border-rc-gray-700/60 bg-rc-gray-800/30"><!> <!> <!></div> <div class="relative z-0 h-8 overflow-hidden rounded-b border-x border-b border-t border-rc-gray-700/60 bg-rc-gray-800/25"><div class="absolute left-3 top-1/2 -translate-y-1/2 rounded bg-rc-gray-900/80 px-2 py-0.5 text-[11px] text-rc-gray-300"> </div> <!></div></div></div>'),Ua=w("<div> </div>"),Wa=w('<div class="pointer-events-none z-popover max-w-[28rem] rounded-md border border-rc-gray-500/80 bg-rc-gray-900/95 px-3 py-2 text-xs text-rc-gray-100 shadow-2xl backdrop-blur-sm"></div>'),Va=w('<div class="flex h-full min-h-0 flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><div><h2 class="text-lg font-semibold text-rc-gray-100">Latency <!></h2> <div class="mt-2 flex flex-wrap gap-x-5 gap-y-1 text-xs text-rc-gray-300"><div><span class="text-rc-gray-400">Latency traces:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Traces with metrics:</span> <span class="font-mono text-rc-gray-100"> </span></div> <div><span class="text-rc-gray-400">Recording offset:</span> <span class="font-mono text-rc-gray-100"> </span></div> <!> <!></div></div> <div class="flex flex-wrap items-center gap-2"><input type="file" accept=".wav,audio/wav,audio/x-wav" class="hidden"/> <!> <!> <!> <!> <!> <!></div></div> <!> <!> <!> <!> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-auto p-4"><div class="flex flex-col gap-4"><div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="flex flex-wrap items-start justify-between gap-3"><div><div class="text-sm font-semibold text-rc-gray-100">Recording</div> <!></div> <div class="text-xs text-rc-gray-300"><div>Drag the latency chart to pan the viewport.</div> <div>Scroll anywhere in the timeline to zoom traces and waveform together.</div> <div>Click the waveform to move the playhead.</div> <div>Press Space to play or pause.</div> <div>Drag the waveform itself to align the audio against the traces.</div> <!></div></div></div> <div class="rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3"><div class="mb-3 flex items-center justify-between gap-3"><div class="text-sm font-semibold text-rc-gray-100">Call timeline</div> <div class="text-xs text-rc-gray-400">Shared x-axis for traces and waveform</div></div> <!></div></div></div></div> <!>',1);function ti(W,ot){Jn(ot,!0);const st=32,Y=40,gt=160,ht=32,Ot=new Set(["VAD","TTS→Audio"]),_t=new ia(fetch),I={blue:"#569cd6",green:"#93FF6D",greenDark:"#00B58A",orange:"#ce9178",purple:"#81147D",red:"#FF6666",gray:"#767676"},xt=new Set(["vad.start_of_speech","vad.end_of_speech"]),kt=new Set(["stt.start_of_speech","stt.interim_transcript","stt.preflight_transcript","stt.final_transcript"]),Jt=new Set(["vad.user_speech","vad.endpointing","vad.trailing_silence","stt.endpointing","stt.transcription","stt.turn_commit","stt.until_turn_committed","stt.transcript_to_speech_created","stt.transcript_to_llm_request","stt.transcript_trigger_selected","stt.speech_end_to_trigger_transcript","stt.speech_end_to_final_transcript","stt.trigger_transcript_to_reply_trigger","stt.final_transcript_to_commit"]),yt=[{label:"VAD",names:[...xt]},{label:"STT",names:[...kt]},{label:"Trigger",component:"trigger"},{label:"LLM",names:["llm.request.ttft","llm.streaming"]},{label:"LLM→TTS",names:["llm_to_tts.buffering","llm_to_tts.streaming"]},{label:"TTS generation",names:["tts.generation"]},{label:"TTS→Audio",names:["tts_to_audio.buffering","tts_to_audio.streaming"]},{label:"LLM→Audio start",names:["llm_to_audio.latency"]},{label:"Other"}],Qt={"vad.user_speech":Z(I.purple,.35),"vad.endpointing":Z(I.purple,-.15),"llm.request":Z(I.blue,-.25),"llm.streaming":I.blue,"llm_to_tts.buffering":Z(I.orange,-.25),"llm_to_tts.streaming":I.orange,"tts.generation":Z(I.orange,.25),"tts_to_audio.buffering":Z(I.purple,-.25),"tts_to_audio.streaming":Z(I.purple,.25),"llm_to_audio.ok":I.green,"llm_to_audio.high":I.red,trigger:I.greenDark,stt:Z(I.purple,.2),other:I.gray};let Ut=S(Oe(Pr()??"")),lt=S(null),B=S(Oe([])),Rt=S(!1),bt=S(null),$=S(Oe({exists:!1,audioUrl:null,fileName:null,mimeType:null,size:null,uploadedAt:null,alignmentOffsetMs:0})),me=S(!1),wt=S(null),te=S(!1),C=S(null),Mt=S(!1),St=S(null),q=S(0),tt=S(!1),et=S(null),ee=S(!1),ct=S(null),dt=S(!1),y=S(null),M=S(null),pe=S(null),re=S(0),ge=S(null),he=S(null),Wt=S(0),_e=S(0),xe=S(null),Ft=S(null),Vt=S(null),ye=S(null),Ue=S(""),ne=0,ae=0,ie=0,ut=null,It=0,ft=null,G=null,Bt=null,zt=null,jt=null;const qt=F(()=>na.params.conversationId);function We(t,e){const r=new URLSearchParams;e&&r.set("source",e);const a=r.toString();return`/traces/api/latency/${encodeURIComponent(t)}${a?`?${a}`:""}`}const Ht=F(()=>n(qt)?We(n(qt),n(Ut)):""),Tt=F(()=>{var e;if(typeof((e=n(lt))==null?void 0:e.createdAt)=="number"&&Number.isFinite(n(lt).createdAt))return n(lt).createdAt;let t=Number.POSITIVE_INFINITY;for(const r of n(B))typeof r.createdAt!="number"||!Number.isFinite(r.createdAt)||(t=Math.min(t,r.createdAt));return Number.isFinite(t)?t:0}),oe=F(()=>Xr(n(B))),kr=F(()=>n(B).filter(t=>{const e=t==null?void 0:t.metrics;return!!e&&typeof e=="object"}).length),se=F(()=>{const t=new Map;for(const e of n(oe)){const r=t.get(e.row);r?r.push(e):t.set(e.row,[e])}return[...yt].reverse().map(e=>({label:e.label,segments:t.get(e.label)??[]})).filter(e=>e.segments.length>0)}),Rr=F(()=>Jr(n(se))),H=F(()=>n(C)?n(Tt)+n($).alignmentOffsetMs:null),Fr=F(()=>st+n(se).length*Y+gt+ht),be=F(()=>n(H)==null?null:n(H)+n(q)),le=F(()=>{const t=n(be);if(t==null||n(y)==null||n(M)==null)return null;const e=n(M)-n(y);return!Number.isFinite(e)||e<=0||t<n(y)||t>n(M)?null:{leftPercent:V((t-n(y))/e*100,0,100),heightPx:n(Fr)}}),Xt=F(()=>{let t=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY;for(const r of n(oe))t=Math.min(t,r.start),e=Math.max(e,r.end);return n(C)&&n(H)!=null&&(t=Math.min(t,n(H)),e=Math.max(e,n(H)+n(C).durationMs)),!Number.isFinite(t)||!Number.isFinite(e)||e<=t?null:{min:t,max:e}}),Ve=F(()=>{if(n(y)==null||n(M)==null)return null;const t=n(M)-n(y);return t>0?t:null}),ce=F(()=>n(y)==null||n(M)==null?[]:Qr(n(y),n(M),n(Tt))),Ir=F(()=>{if(n(y)==null||n(M)==null)return null;const t=n(M)-n(y);return!Number.isFinite(t)||t<=0?null:He(t)}),Nr=F(()=>!n(C)||n(H)==null||n(y)==null||n(M)==null?!1:n(H)+n(C).durationMs>n(y)&&n(H)<n(M)),Dr=F(()=>n(Ft)?Yr(n(Ft)).split(`
|
|
2
3
|
`):[]);Et(()=>{const t=n(ye),e=n(Vt),r=n(Ft);n(y),n(M),!(!t||!e||!r)&&t.update()}),Gn(()=>{ut==null||ut(),Nt(!1),nn()}),Et(()=>{const t=n(qt),e=Pr()??"";if(e!==n(Ut)&&i(Ut,e,!0),!t)return;const r=`${t}::${e}`;r!==n(Ue)&&(i(Ue,r),i(dt,!1),i(bt,null),i(wt,null),i(ct,null),i(St,null),Nt(!1),ft=null,i(q,0),i(et,null),i(C,null),i(lt,null),i(B,[],!0),i(y,null),i(M,null),_t.setSourceId(e||void 0),fn(t),vn(We(t,e)))}),Et(()=>{n(Xt)&&(n(dt)||Qe(!1))}),Et(()=>{const t=n(pe);if(!t||typeof ResizeObserver>"u")return;i(re,t.clientWidth,!0);const e=new ResizeObserver(r=>{const a=r[0];a&&i(re,a.contentRect.width,!0)});return e.observe(t),()=>e.disconnect()}),Et(()=>{const t=n(ge);if(!t||typeof ResizeObserver>"u")return;i(Wt,t.clientWidth,!0),i(_e,t.clientHeight,!0);const e=new ResizeObserver(r=>{const a=r[0];a&&(i(Wt,a.contentRect.width,!0),i(_e,a.contentRect.height,!0))});return e.observe(t),()=>e.disconnect()}),Et(()=>{if(!n($).exists||typeof window>"u")return;const e=r=>{r.code==="Space"&&(r.metaKey||r.ctrlKey||r.altKey||r.shiftKey||cn(r.target)||(r.preventDefault(),Ge()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)}),Et(()=>{const t=n(he),e=n(C),r=n(H),a=n(y),s=n(M),o=n(Wt),c=n(_e);!t||!e||r==null||a==null||s==null||rn(t,{peaks:e,recordingStartMs:r,viewportStartMs:a,viewportEndMs:s,width:o,height:c})});function vt(t){if(typeof t!="string")return null;const e=t.trim();return e||null}function z(t){return typeof t=="number"&&Number.isFinite(t)?t:null}function we(t){return Math.max(0,Math.min(255,Math.round(t)))}function V(t,e,r){return Math.min(r,Math.max(e,t))}function Z(t,e){const r=(t??"").trim().replace(/^#/,""),a=r.length===3?r.split("").map(b=>`${b}${b}`).join(""):r;if(a.length!==6||!/^[0-9a-fA-F]+$/.test(a))return t;const s=parseInt(a.slice(0,2),16),o=parseInt(a.slice(2,4),16),c=parseInt(a.slice(4,6),16),h=Math.abs(Math.max(-1,Math.min(1,e))),T=e>=0?255:0;return`#${we(s+(T-s)*h).toString(16).padStart(2,"0")}${we(o+(T-o)*h).toString(16).padStart(2,"0")}${we(c+(T-c)*h).toString(16).padStart(2,"0")}`}function Lr(t){const e=z(t);return e==null?"—":`${Math.round(e)} ms`}function Cr(t){if(t==null||!Number.isFinite(t))return"0 ms";const e=Math.round(t);return e===0?"0 ms":`${e>0?"+":""}${e} ms`}function At(t){if(!Number.isFinite(t))return"—";const e=t<0?"-":"",r=Math.abs(t);if(r<1e4)return`${e}${(r/1e3).toFixed(1)}s`;if(r<6e4)return`${e}${(r/1e3).toFixed(2)}s`;const a=r/1e3,s=Math.floor(a/60),o=a-s*60;return`${e}${s}:${o.toFixed(1).padStart(4,"0")}`}function Or(t){return t==null||!Number.isFinite(t)||t<=0?"—":t<1e3?`${Math.round(t)} ms`:t<1e4?`${Math.round(t)} ms (${(t/1e3).toFixed(1)} s)`:`${Math.round(t)} ms (${(t/1e3).toFixed(2)} s)`}function Ur(t){if(!t)return"—";const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}function Wr(t){if(t==null||!Number.isFinite(t)||t<=0)return"—";const e=["B","KB","MB","GB"];let r=t,a=0;for(;r>=1024&&a<e.length-1;)r/=1024,a+=1;return`${r>=10||a===0?r.toFixed(0):r.toFixed(1)} ${e[a]}`}function Vr(t,e){const r=t==null?void 0:t.attributes;return!r||typeof r!="object"?null:r[`bosun.${e}`]??r[`anyvan.${e}`]??null}function Kt(t,e){return vt(Vr(t,e))}function Be(t){return Kt(t,"component")}function Br(t){const e=vt(t==null?void 0:t.name);return e?!!(Jt.has(e)||e.startsWith("vad.")&&!xt.has(e)||e.startsWith("stt.")&&!kt.has(e)):!1}function zr(t){const e=Kt(t,"label");return e||(typeof(t==null?void 0:t.name)=="string"&&t.name?t.name:"span")}function ze(t){const e=typeof t.createdAt=="number"&&Number.isFinite(t.createdAt)?new Date(t.createdAt).toLocaleTimeString():"unknown time";return t.traceType==="CONVERSATIONAL"?`Conversational • ${t.eventName} • ${e}`:t.traceType==="STEP"?`Step • ${t.name??"unknown"} • ${e}`:`API • ${t.operationName} • ${e}`}function jr(t){const e=typeof(t==null?void 0:t.name)=="string"?t.name:"";if(e==="vad.endpointing")return"vad.endpointing";if(e.startsWith("vad."))return"vad.user_speech";if(e==="llm.request.ttft")return"llm.request";if(e==="llm.streaming")return"llm.streaming";if(e==="llm_to_tts.buffering")return"llm_to_tts.buffering";if(e==="llm_to_tts.streaming")return"llm_to_tts.streaming";if(e==="tts.generation")return"tts.generation";if(e==="tts_to_audio.buffering")return"tts_to_audio.buffering";if(e==="tts_to_audio.streaming")return"tts_to_audio.streaming";if(e.startsWith("stt."))return"stt";if(e.startsWith("trigger."))return"trigger";const r=Be(t);return r==="vad"?"vad.user_speech":r==="stt"?"stt":r==="trigger"?"trigger":"other"}function je(t,e,r){return{name:t,startTimeUnixMs:e,endTimeUnixMs:e,durationMs:0,attributes:r}}function qr(t){var b,_,x;const e=(t==null?void 0:t.debug)??{},r=z((b=t==null?void 0:t.timing)==null?void 0:b.ttsAudioStartAtMs),a=l=>r==null||l<=r,s=[];let o=!1,c=!1;return(Array.isArray((_=e==null?void 0:e.vadEvents)==null?void 0:_.events)?e.vadEvents.events:[]).forEach((l,N)=>{const d=z(l==null?void 0:l.atMs),f=vt(l==null?void 0:l.type);d==null||!a(d)||f!=="start_of_speech"&&f!=="end_of_speech"||(o=!0,s.push(je(`vad.${f}`,d,{"anyvan.component":"vad","anyvan.label":f==="start_of_speech"?"VAD activated":"VAD deactivated","anyvan.description":f==="start_of_speech"?"Raw VAD START_OF_SPEECH event":"Raw VAD END_OF_SPEECH event","anyvan.eventIndex":N,"anyvan.samplesIndex":typeof(l==null?void 0:l.samplesIndex)=="number"?l.samplesIndex:void 0,"anyvan.speechDurationMs":typeof(l==null?void 0:l.speechDurationMs)=="number"?l.speechDurationMs:void 0,"anyvan.silenceDurationMs":typeof(l==null?void 0:l.silenceDurationMs)=="number"?l.silenceDurationMs:void 0})))}),(Array.isArray((x=e==null?void 0:e.sttEvents)==null?void 0:x.events)?e.sttEvents.events:[]).forEach((l,N)=>{const d=z(l==null?void 0:l.atMs),f=vt(l==null?void 0:l.type);if(d==null||!a(d)||f!=="start_of_speech"&&f!=="interim_transcript"&&f!=="preflight_transcript"&&f!=="final_transcript")return;c=!0;const P=f==="start_of_speech"?"STT start of speech":f==="interim_transcript"?"STT interim transcript":f==="preflight_transcript"?"STT preflight transcript":"STT final transcript";s.push(je(`stt.${f}`,d,{"anyvan.component":"stt","anyvan.label":P,"anyvan.description":`Raw STT ${f.toUpperCase()} event`,"anyvan.eventIndex":N,"anyvan.requestId":typeof(l==null?void 0:l.requestId)=="string"?l.requestId:void 0,"anyvan.text":vt(l==null?void 0:l.text),"anyvan.language":typeof(l==null?void 0:l.language)=="string"||(l==null?void 0:l.language)===null?l.language:void 0,"anyvan.speakerId":typeof(l==null?void 0:l.speakerId)=="string"||(l==null?void 0:l.speakerId)===null?l.speakerId:void 0}))}),{spans:s,hasRawVad:o,hasRawStt:c}}function Hr(t,e,r){const a=qr(e),s=Array.isArray(e==null?void 0:e.spans)?e.spans.filter(d=>{const f=vt(d==null?void 0:d.name);return f!=null&&f.startsWith("vad.")&&a.hasRawVad||f!=null&&f.startsWith("stt.")&&a.hasRawStt?!1:!Br(d)}):[],o=(e==null?void 0:e.summary)??{},c=(e==null?void 0:e.timing)??{},h=[...s,...a.spans].map((d,f)=>({span:d,index:f})),T=new Set,b=yt.filter(d=>d.label!=="LLM→Audio start"&&d.label!=="Other").map(d=>{const f=h.filter(({span:P,index:U})=>{if(T.has(U))return!1;const j=typeof(P==null?void 0:P.name)=="string"?P.name:"",rt=Be(P),Dt=Array.isArray(d.names)&&j!==""&&d.names.includes(j),mt=typeof d.component=="string"&&rt===d.component;return Dt||mt}).sort((P,U)=>(z(P.span.startTimeUnixMs)??0)-(z(U.span.startTimeUnixMs)??0));for(const P of f)T.add(P.index);return{label:d.label,spans:f.map(P=>P.span)}}).filter(d=>d.spans.length>0),_=h.filter(({index:d})=>!T.has(d)).map(d=>d.span).sort((d,f)=>(z(d.startTimeUnixMs)??0)-(z(f.startTimeUnixMs)??0));_.length&&b.push({label:"Other",spans:_});const x=[];for(const d of b)d.spans.forEach((f,P)=>{const U=z(f.startTimeUnixMs),j=z(f.endTimeUnixMs);U==null||j==null||j<U||x.push({id:`${r}:${d.label}:${f.name??"span"}:${U}:${j}:${P}`,row:d.label,start:U,end:j,durationMs:Math.max(0,j-U),colorKey:jr(f),label:zr(f),description:Kt(f,"description"),explain:Kt(f,"explain"),text:Kt(f,"text"),traceLabel:ze(t)})});const l=z(c==null?void 0:c.llmRequestStartAtMs),N=z(c==null?void 0:c.ttsAudioStartAtMs);if(l!=null&&N!=null&&N>=l){const d=N-l;x.push({id:`${r}:llm_to_audio:${l}:${N}`,row:"LLM→Audio start",start:l,end:N,durationMs:d,colorKey:d>800||o!=null&&o.problematic?"llm_to_audio.high":"llm_to_audio.ok",label:"LLM→Audio start",description:"LLM request start → agent speaking (first audio frame)",explain:d>800||o!=null&&o.problematic?"High latency (>800ms) or problematic timing":"OK",text:null,traceLabel:ze(t)})}return x}function Xr(t){const e=[];return t.forEach((r,a)=>{const s=r==null?void 0:r.metrics;if(!s||typeof s!="object")return;const o=vt(r==null?void 0:r.traceId)??`${r.traceType}:${r.createdAt}:${a}`;e.push(...Hr(r,s,o))}),e.sort((r,a)=>r.start-a.start||r.end-a.end||r.row.localeCompare(a.row))}function de(t){const e=t&&typeof t=="object"?t:{},r=typeof e.audioUrl=="string"&&e.audioUrl.trim()?e.audioUrl:null;return{exists:e.exists===!0&&r!=null,audioUrl:r,fileName:typeof e.fileName=="string"?e.fileName:null,mimeType:typeof e.mimeType=="string"?e.mimeType:null,size:typeof e.size=="number"&&Number.isFinite(e.size)?e.size:null,uploadedAt:typeof e.uploadedAt=="string"?e.uploadedAt:null,alignmentOffsetMs:typeof e.alignmentOffsetMs=="number"&&Number.isFinite(e.alignmentOffsetMs)?e.alignmentOffsetMs:0}}function Me(t,e){const r=t&&typeof t=="object"?t:{};return typeof r.error=="string"&&r.error.trim()?r.error:typeof r.message=="string"&&r.message.trim()?r.message:e}async function Se(t){var a,s;const e=t.headers.get("content-type")??"";if(e.includes("application/json"))return t.json().catch(()=>({}));const r=(await t.text().catch(()=>"")).trim();if(!r)return{};if(e.includes("text/html")){const o=r.match(/<title>([^<]+)<\/title>/i),c=r.match(/<h1[^>]*>([^<]+)<\/h1>/i);return{message:((a=o==null?void 0:o[1])==null?void 0:a.trim())||((s=c==null?void 0:c[1])==null?void 0:s.trim())||`${t.status} ${t.statusText}`.trim()}}return{message:r}}function Kr(t){if(n(y)==null||n(M)==null)return null;const e=n(M)-n(y);if(!Number.isFinite(e)||e<=0)return null;const r=Qt[t.colorKey]??I.gray,a=Z(r,-.25);if(t.end===t.start)return t.start<n(y)||t.start>n(M)?null:`left:calc(${V((t.start-n(y))/e*100,0,100)}% - 2px);width:4px;background:${r};border-color:${a};`;const s=Math.max(t.start,n(y)),o=Math.min(t.end,n(M));if(o<s)return null;const c=(s-n(y))/e*100,h=(o-s)/e*100;return`left:${c}%;width:max(${h}%,2px);background:${r};border-color:${a};`}function Yr(t){return[t.label,t.row!==t.label?t.row:"",`${At(t.start-n(Tt))} → ${At(t.end-n(Tt))} (${Lr(t.durationMs)})`,t.description??"",t.text?`Text: ${t.text}`:"",t.explain??"",t.traceLabel].filter(r=>r.trim()!=="").join(`
|
|
3
4
|
`)}function Gr(t,e){const r=e.currentTarget;r instanceof HTMLElement&&(i(Ft,t,!0),i(Vt,r,!0))}function qe(){i(Ft,null),i(Vt,null)}function Zr(t){return`left:${t.leftPercent}%;top:${t.topPx}px;height:${t.heightPx}px;border-color:${t.color};opacity:${t.opacity};`}function Jr(t){if(!n($).exists||n(y)==null||n(M)==null)return[];const e=n(y),r=n(M),a=r-e;if(!Number.isFinite(a)||a<=0)return[];const s=st+t.length*Y+gt+ht,o=new Set,c=[];return t.forEach((h,T)=>{if(!Ot.has(h.label))return;const _=st+T*Y+Math.round(Y/2);h.segments.forEach(x=>{const l=Z(Qt[x.colorKey]??I.gray,.15),N=x.end===x.start?x.start>=e&&x.start<=r?[x.start]:[]:(()=>{const d=Math.max(x.start,e),f=Math.min(x.end,r);return f<d?[]:[d,f]})();for(const d of N){const f=Math.round(d),P=`${h.label}:${f}`;if(o.has(P))continue;o.add(P);const U=V((d-e)/a*100,0,100);c.push({id:`${x.id}:${f}`,leftPercent:U,topPx:_,heightPx:Math.max(1,s-_),color:l,opacity:h.label==="VAD"?.62:.48})}})}),c}function He(t){const e=t/7,r=10**Math.floor(Math.log10(Math.max(1,e))),a=e/r;return a<=1?1*r:a<=2?2*r:a<=5?5*r:10*r}function Qr(t,e,r){const a=e-t;if(!Number.isFinite(a)||a<=0)return[];const s=He(a),o=Math.ceil((t-r)/s)*s+r,c=[];for(let h=o;h<=e;h+=s){const T=(h-t)/a*100;c.push({time:h,leftPercent:T,label:At(h-r)})}return c}function Xe(){const t=window.AudioContext??window.webkitAudioContext;if(!t)throw new Error("Web Audio is not available in this browser");return new t}function tn(t){if(t.length===0||t.duration===0)return{durationMs:0,binDurationMs:0,minPeaks:new Float32Array(0),maxPeaks:new Float32Array(0),channelCount:t.numberOfChannels,sampleRate:t.sampleRate};const e=V(Math.round(t.duration*200),8e3,6e4),r=Math.max(1,Math.min(e,t.length)),a=Math.max(1,Math.floor(t.length/r)),s=new Float32Array(r),o=new Float32Array(r);for(let c=0;c<r;c+=1){const h=c*a,T=c===r-1?t.length:Math.min(t.length,h+a);let b=1,_=-1;for(let x=0;x<t.numberOfChannels;x+=1){const l=t.getChannelData(x);for(let N=h;N<T;N+=1){const d=l[N]??0;d<b&&(b=d),d>_&&(_=d)}}_===-1&&b===1&&(b=0,_=0),s[c]=b,o[c]=_}return{durationMs:t.duration*1e3,binDurationMs:t.duration*1e3/r,minPeaks:s,maxPeaks:o,channelCount:t.numberOfChannels,sampleRate:t.sampleRate}}async function en(t){const e=await fetch(t,{cache:"no-store"});if(!e.ok)throw new Error(`Failed to load recording (${e.status})`);const r=await e.arrayBuffer(),a=Xe();try{const s=await a.decodeAudioData(r.slice(0));return{peaks:tn(s),audioBuffer:s}}finally{await a.close().catch(()=>{})}}function rn(t,e){const r=Math.max(1,Math.floor(e.width)),a=Math.max(1,Math.floor(e.height)),s=window.devicePixelRatio||1;t.width=Math.max(1,Math.round(r*s)),t.height=Math.max(1,Math.round(a*s)),t.style.width=`${r}px`,t.style.height=`${a}px`;const o=t.getContext("2d");if(!o)return;o.setTransform(s,0,0,s,0,0),o.clearRect(0,0,r,a),o.fillStyle="rgba(10, 10, 10, 0.2)",o.fillRect(0,0,r,a);const c=e.viewportEndMs-e.viewportStartMs;if(c<=0||e.peaks.minPeaks.length===0||e.peaks.binDurationMs<=0)return;const h=e.recordingStartMs+e.peaks.durationMs,T=Math.max(e.viewportStartMs,e.recordingStartMs),b=Math.min(e.viewportEndMs,h),_=a/2,x=a*.42;if(o.strokeStyle="rgba(147, 255, 109, 0.95)",o.lineWidth=1,o.beginPath(),b>T){const l=Math.max(0,Math.floor((T-e.recordingStartMs)/e.peaks.binDurationMs)),N=Math.min(e.peaks.minPeaks.length-1,Math.ceil((b-e.recordingStartMs)/e.peaks.binDurationMs));for(let d=l;d<=N;d+=1){const P=(e.recordingStartMs+d*e.peaks.binDurationMs-e.viewportStartMs)/c*r,U=e.peaks.minPeaks[d]??0,j=e.peaks.maxPeaks[d]??0,rt=_-j*x,Dt=_-U*x;o.moveTo(P,rt),o.lineTo(P,Dt)}}o.stroke(),o.strokeStyle="rgba(255, 255, 255, 0.18)",o.lineWidth=1,o.beginPath(),o.moveTo(0,_),o.lineTo(r,_),o.stroke()}function Te(){It&&(window.cancelAnimationFrame(It),It=0)}async function nn(){const t=G;G=null,t&&await t.close().catch(()=>{})}async function an(){return(!G||G.state==="closed")&&(G=Xe()),G.state==="suspended"&&await G.resume(),G}function Ke(){const t=Ye();if(n(tt)&&G&&zt!=null&&jt!=null){const e=(G.currentTime-jt)*1e3,r=zt+Math.max(0,e);return t>0?V(r,0,t):Math.max(0,r)}return t>0?V(n(q),0,t):Math.max(0,n(q))}function Nt(t=!0){t&&i(q,Ke(),!0);const e=Bt;if(Bt=null,zt=null,jt=null,i(tt,!1),Te(),!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}function on(){Te();const t=()=>{if(!n(tt)){It=0;return}i(q,Ke(),!0),It=window.requestAnimationFrame(t)};It=window.requestAnimationFrame(t)}function Ye(){return n(C)&&Number.isFinite(n(C).durationMs)?Math.max(0,n(C).durationMs):ft&&Number.isFinite(ft.duration)?Math.max(0,ft.duration*1e3):0}function sn(t){const e=Ye(),r=e>0?V(t,0,e):Math.max(0,t);i(q,r,!0),n(tt)&&Ze(r)}function ln(t,e){if(n(y)==null||n(M)==null||n(H)==null)return;const r=e.getBoundingClientRect(),a=V((t-r.left)/Math.max(1,r.width),0,1),s=n(y)+a*(n(M)-n(y));i(et,null),sn(s-n(H))}function cn(t){const e=t instanceof HTMLElement?t:null;if(!e)return!1;const r=e.tagName;return e.isContentEditable||r==="INPUT"||r==="TEXTAREA"||r==="SELECT"||r==="BUTTON"||r==="A"}async function Ge(){if(!(!n($).exists||!n($).audioUrl)){if(i(et,null),n(tt)){Nt(!0);return}await Ze(n(q))}}async function Ze(t){const e=ft;if(!e){i(et,n(Mt)?"Recording is still decoding":"Failed to decode recording for playback",!0);return}const r=Math.max(0,e.duration*1e3),a=r>0?t>=r?0:V(t,0,r):Math.max(0,t);Nt(!1),i(q,a,!0);try{const s=await an(),o=s.createBufferSource();o.buffer=e,o.connect(s.destination),o.onended=()=>{Bt===o&&(Bt=null,zt=null,jt=null,i(tt,!1),i(q,r,!0),Te())},Bt=o,zt=a,jt=s.currentTime,i(tt,!0),i(et,null),on(),o.start(0,a/1e3)}catch(s){Nt(!1),i(tt,!1),i(et,s instanceof Error?s.message:"Failed to play recording",!0)}}function dn(t){const e=new Set;return t.filter(r=>{const a=vt(r==null?void 0:r.traceId);return a?e.has(a)?!1:(e.add(a),!0):!0})}async function un(t){const e=[];let r;for(;;){const a=await _t.getTraces(t,100,r);if(e.push(...a.items??[]),r=a.lastTraceId,!r)break}return dn(e).slice().sort((a,s)=>a.createdAt-s.createdAt)}async function fn(t){const e=++ne;i(Rt,!0),i(bt,null);try{const[r,a]=await Promise.all([_t.getConversation(t).catch(s=>(console.error("Failed to load conversation details:",s),null)),un(t)]);if(e!==ne)return;i(lt,r,!0),i(B,a,!0)}catch(r){if(e!==ne)return;i(bt,r instanceof Error?r.message:String(r),!0),i(lt,null),i(B,[],!0)}finally{if(e!==ne)return;i(Rt,!1)}}async function Je(t){if(Nt(!1),i($,t,!0),i(ct,null),i(et,null),i(q,0),!t.exists||!t.audioUrl){ft=null,i(C,null),i(Mt,!1),i(St,null);return}const e=++ie;i(Mt,!0),i(St,null);try{const r=await en(t.audioUrl);if(e!==ie)return;i(C,r.peaks,!0),ft=r.audioBuffer}catch(r){if(e!==ie)return;ft=null,i(C,null),i(St,r instanceof Error?r.message:String(r),!0)}finally{if(e!==ie)return;i(Mt,!1)}}async function vn(t=n(Ht)){if(!t)return;const e=++ae;i(me,!0),i(wt,null);try{const r=await fetch(t,{cache:"no-store",headers:{accept:"application/json"}}),a=await Se(r);if(!r.ok)throw new Error(Me(a,"Failed to load recording metadata"));if(e!==ae)return;await Je(de(a))}catch(r){if(e!==ae)return;i(wt,r instanceof Error?r.message:String(r),!0),i($,de({}),!0),i(C,null),i(Mt,!1)}finally{if(e!==ae)return;i(me,!1)}}function Qe(t=!0){const e=n(Xt);if(!e)return;const r=Math.max(500,(e.max-e.min)*.05);i(y,e.min-r),i(M,e.max+r),i(dt,t,!0)}function mn(t,e){const r=n(Xt);if(!r)return{startMs:t,endMs:e};const a=e-t;if(a<=0)return{startMs:t,endMs:e};const s=Math.max(1e3,a*.25),o=r.min-s,c=r.max+s;return a>=c-o?{startMs:o,endMs:c}:(t<o&&(e+=o-t,t=o),e>c&&(t-=e-c,e=c),{startMs:t,endMs:e})}function tr(t,e){if(!Number.isFinite(t)||!Number.isFinite(e)||e<=t)return;const r=mn(t,e);i(y,r.startMs,!0),i(M,r.endMs,!0)}function ue(t,e=.5){if(n(y)==null||n(M)==null)return;const r=n(M)-n(y);if(!Number.isFinite(r)||r<=0)return;const a=n(Xt),s=a?a.max-a.min:r,o=Math.min(100,r),c=Math.max(s+Math.max(2e3,s*.1),5e3),h=V(r*t,o,c),T=V(e,0,1),_=n(y)+r*T-h*T;i(dt,!0),tr(_,_+h)}function er(t){if(n(re)<=0)return;t.preventDefault();const e=t.currentTarget.getBoundingClientRect(),r=V((t.clientX-e.left)/Math.max(1,e.width),0,1);ue(t.deltaY<0?.82:1.22,r)}function pn(t){if(n(Wt)<=0)return;t.preventDefault();const e=t.currentTarget.getBoundingClientRect(),r=V((t.clientX-e.left)/Math.max(1,e.width),0,1);ue(t.deltaY<0?.82:1.22,r)}function rr(t){var T;ut==null||ut();const e=Math.max(0,t.activationDistancePx??0);let r=e===0;r&&((T=t.onStart)==null||T.call(t));const a=b=>{var l;if(r)return!0;const _=b.clientX-t.startEvent.clientX,x=b.clientY-t.startEvent.clientY;return Math.hypot(_,x)<e?!1:(r=!0,(l=t.onStart)==null||l.call(t),!0)},s=b=>{a(b)&&t.onMove(b)},o=b=>{var _,x;window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",c),window.removeEventListener("pointercancel",h),ut=null,!r&&b&&((_=t.onClick)==null||_.call(t,b)),(x=t.onEnd)==null||x.call(t,{wasDrag:r,event:b})},c=b=>o(b),h=()=>o();window.addEventListener("pointermove",s),window.addEventListener("pointerup",c),window.addEventListener("pointercancel",h),ut=()=>o()}function nr(t){i($,{...n($),alignmentOffsetMs:Math.round(t)},!0)}async function ar(){if(!(!n($).exists||!n(Ht))){i(ee,!0),i(ct,null);try{const t=await fetch(n(Ht),{method:"PATCH",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({alignmentOffsetMs:n($).alignmentOffsetMs})}),e=await Se(t);if(!t.ok)throw new Error(Me(e,"Failed to save alignment offset"));i($,de(e),!0)}catch(t){i(ct,t instanceof Error?t.message:String(t),!0)}finally{i(ee,!1)}}}async function gn(){n($).exists&&(i(dt,!0),nr(0),await ar())}async function hn(t){var a;const e=t.currentTarget,r=(a=e.files)==null?void 0:a[0];if(e.value="",!(!r||!n(Ht))){i(te,!0),i(wt,null),i(ct,null);try{const s=new URL(n(Ht),window.location.origin);s.searchParams.set("filename",r.name);const o=await fetch(s,{method:"POST",headers:{accept:"application/json","content-type":r.type||"audio/wav"},body:r}),c=await Se(o);if(!o.ok)throw new Error(Me(c,"Failed to upload recording"));i(dt,!1),await Je(de(c))}catch(s){i(wt,s instanceof Error?s.message:String(s),!0)}finally{i(te,!1)}}}var ir=Va(),fe=K(ir);fe.__click=[la];var Ae=m(fe),$e=m(Ae),Ee=m($e),Pe=m(Ee),_n=v(m(Pe));{var xn=t=>{var e=ca(),r=v(K(e),2),a=m(r,!0);u(r),k(()=>R(a,n(qt))),g(t,e)};D(_n,t=>{n(qt)&&t(xn)})}u(Pe);var or=v(Pe,2),ke=m(or),sr=v(m(ke),2),yn=m(sr,!0);u(sr),u(ke);var Re=v(ke,2),lr=v(m(Re),2),bn=m(lr,!0);u(lr),u(Re);var Fe=v(Re,2),cr=v(m(Fe),2),wn=m(cr,!0);u(cr),u(Fe);var dr=v(Fe,2);{var Mn=t=>{var e=da(),r=v(m(e),2),a=m(r,!0);u(r),u(e),k(s=>R(a,s),[()=>At(n(be)-n(Tt))]),g(t,e)};D(dr,t=>{n($).exists&&n(be)!=null&&t(Mn)})}var Sn=v(dr,2);{var Tn=t=>{var e=ua(),r=v(m(e),2),a=m(r);u(r),u(e),k((s,o)=>R(a,`${s??""} → ${o??""}`),[()=>At(n(y)-n(Tt)),()=>At(n(M)-n(Tt))]),g(t,e)};D(Sn,t=>{n(y)!=null&&n(M)!=null&&t(Tn)})}u(or),u(Ee);var ur=v(Ee,2),Ie=m(ur);Ie.__change=hn,Zt(Ie,t=>i(xe,t),()=>n(xe));var fr=v(Ie,2);Ct(fr,{variant:"secondary",size:"small",get disabled(){return n(te)},onclick:()=>{var t;return(t=n(xe))==null?void 0:t.click()},children:(t,e)=>{Pt();var r=Lt();k(()=>R(r,n(te)?"Uploading…":n($).exists?"Replace WAV":"Upload WAV")),g(t,r)},$$slots:{default:!0}});var vr=v(fr,2);{let t=F(()=>!n($).exists);Ct(vr,{variant:"secondary",size:"small",get disabled(){return n(t)},onclick:()=>void Ge(),children:(e,r)=>{Pt();var a=Lt();k(()=>R(a,n(tt)?"Pause":"Play")),g(e,a)},$$slots:{default:!0}})}var mr=v(vr,2);{let t=F(()=>n(Ve)==null);Ct(mr,{variant:"secondary",size:"small",get disabled(){return n(t)},onclick:()=>ue(.8),children:(e,r)=>{Pt();var a=Lt("Zoom in");g(e,a)},$$slots:{default:!0}})}var pr=v(mr,2);{let t=F(()=>n(Ve)==null);Ct(pr,{variant:"secondary",size:"small",get disabled(){return n(t)},onclick:()=>ue(1.25),children:(e,r)=>{Pt();var a=Lt("Zoom out");g(e,a)},$$slots:{default:!0}})}var gr=v(pr,2);{let t=F(()=>!n(Xt));Ct(gr,{variant:"secondary",size:"small",get disabled(){return n(t)},onclick:()=>Qe(!0),children:(e,r)=>{Pt();var a=Lt("Fit call");g(e,a)},$$slots:{default:!0}})}var An=v(gr,2);{let t=F(()=>!n($).exists||n(ee));Ct(An,{variant:"secondary",size:"small",get disabled(){return n(t)},onclick:gn,children:(e,r)=>{Pt();var a=Lt("Reset alignment");g(e,a)},$$slots:{default:!0}})}u(ur),u($e);var hr=v($e,2);{var $n=t=>{var e=fa(),r=m(e,!0);u(e),k(()=>R(r,n(Rt)?"Loading call latency…":"Loading recording…")),g(t,e)};D(hr,t=>{(n(Rt)||n(me))&&t($n)})}var _r=v(hr,2);{var En=t=>{var e=va(),r=m(e);u(e),k(()=>R(r,`Failed to load latency traces: ${n(bt)??""}`)),g(t,e)};D(_r,t=>{n(bt)&&t(En)})}var xr=v(_r,2);{var Pn=t=>{var e=ma(),r=m(e);u(e),k(()=>R(r,`Recording error: ${n(wt)??""}`)),g(t,e)};D(xr,t=>{n(wt)&&t(Pn)})}var yr=v(xr,2);{var kn=t=>{var e=pa(),r=m(e);u(e),k(()=>R(r,`Alignment error: ${n(ct)??""}`)),g(t,e)};D(yr,t=>{n(ct)&&t(kn)})}var Rn=v(yr,2);{var Fn=t=>{var e=ga(),r=m(e);u(e),k(()=>R(r,`Playback error: ${n(et)??""}`)),g(t,e)};D(Rn,t=>{n(et)&&t(Fn)})}u(Ae);var br=v(Ae,2),wr=m(br),Ne=m(wr),Mr=m(Ne),De=m(Mr),In=v(m(De),2);{var Nn=t=>{var e=_a(),r=m(e),a=m(r,!0);u(r);var s=v(r,4),o=m(s,!0);u(s);var c=v(s,4),h=m(c);u(c);var T=v(c,2);{var b=_=>{var x=ha(),l=v(K(x),2),N=m(l,!0);u(l),k(d=>R(N,d),[()=>At(n(C).durationMs)]),g(_,x)};D(T,_=>{n(C)&&_(b)})}u(e),k((_,x)=>{R(a,n($).fileName??"recording.wav"),R(o,_),R(h,`uploaded ${x??""}`)},[()=>Wr(n($).size),()=>Ur(n($).uploadedAt)]),g(t,e)},Dn=t=>{var e=xa();g(t,e)};D(In,t=>{n($).exists?t(Nn):t(Dn,!1)})}u(De);var Sr=v(De,2),Ln=v(m(Sr),10);{var Cn=t=>{var e=ya();g(t,e)};D(Ln,t=>{n(ee)&&t(Cn)})}u(Sr),u(Mr),u(Ne);var Tr=v(Ne,2),On=v(m(Tr),2);{var Un=t=>{var e=ba();g(t,e)},Wn=t=>{var e=Yt(),r=K(e);{var a=o=>{var c=wa();g(o,c)},s=o=>{var c=Yt(),h=K(c);{var T=_=>{var x=Ma();g(_,x)},b=_=>{var x=Oa(),l=m(x),N=v(m(l),2);it(N,17,()=>n(se),p=>p.label,(p,E)=>{var A=Sa(),O=m(A,!0);u(A),k(()=>R(O,n(E).label)),g(p,A)}),Pt(4),u(l);var d=v(l,2),f=m(d),P=m(f);it(P,17,()=>n(Rr),p=>p.id,(p,E)=>{var A=Ta();k(O=>Q(A,O),[()=>Zr(n(E))]),g(p,A)});var U=v(P,2);{var j=p=>{var E=Aa(),A=K(E),O=v(A,2);k(()=>{Q(A,`left:${n(le).leftPercent}%;height:${n(le).heightPx}px;`),Q(O,`left:${n(le).leftPercent}%;`)}),g(p,E)};D(U,p=>{n(le)&&p(j)})}u(f);var rt=v(f,2);it(rt,21,()=>n(ce),p=>p.time,(p,E)=>{var A=$a(),O=K(A),X=v(O,2),L=m(X,!0);u(X),k(()=>{Q(O,`left:${n(E).leftPercent}%;`),Q(X,`left:${n(E).leftPercent}%;`),R(L,n(E).label)}),g(p,A)}),u(rt),Zt(rt,p=>i(pe,p),()=>n(pe));var Dt=v(rt,2);it(Dt,17,()=>n(se),p=>p.label,(p,E)=>{var A=ka();A.__pointerdown=[oa,y,M,re,dt,rr,tr];var O=m(A);it(O,17,()=>n(ce),L=>L.time,(L,nt)=>{var $t=Ea();k(()=>Q($t,`left:${n(nt).leftPercent}%;`)),g(L,$t)});var X=v(O,2);it(X,17,()=>n(E).segments,L=>L.id,(L,nt)=>{const $t=F(()=>Kr(n(nt)));var ve=Yt(),Ce=K(ve);{var pt=J=>{var at=Pa();at.__pointerdown=qe,k(()=>Q(at,n($t))),Gt("pointerenter",at,Yn=>Gr(n(nt),Yn)),Gt("pointerleave",at,qe),g(J,at)};D(Ce,J=>{n($t)&&J(pt)})}g(L,ve)}),u(A),Gt("wheel",A,er),g(p,A)});var mt=v(Dt,2);mt.__pointerdown=[sa,$,C,y,M,Wt,ct,rr,dt,nr,ln,ar];var Ar=m(mt);{var zn=p=>{var E=Ra();g(p,E)},jn=p=>{var E=Yt(),A=K(E);{var O=L=>{var nt=Fa();g(L,nt)},X=L=>{var nt=Yt(),$t=K(nt);{var ve=pt=>{var J=Ia(),at=m(J);u(J),k(()=>R(at,`Failed to decode waveform: ${n(St)??""}`)),g(pt,J)},Ce=pt=>{var J=Na();Zt(J,at=>i(he,at),()=>n(he)),g(pt,J)};D($t,pt=>{n(St)?pt(ve):pt(Ce,!1)},!0)}g(L,nt)};D(A,L=>{n(Mt)?L(O):L(X,!1)},!0)}g(p,E)};D(Ar,p=>{n($).exists?p(jn,!1):p(zn)})}var $r=v(Ar,2);it($r,17,()=>n(ce),p=>p.time,(p,E)=>{var A=Da();k(()=>Q(A,`left:${n(E).leftPercent}%;`)),g(p,A)});var qn=v($r,2);{var Hn=p=>{var E=La();g(p,E)};D(qn,p=>{n($).exists&&!n(Mt)&&!n(St)&&!n(Nr)&&p(Hn)})}u(mt),Zt(mt,p=>i(ge,p),()=>n(ge));var Er=v(mt,2),Le=m(Er),Xn=m(Le);u(Le);var Kn=v(Le,2);it(Kn,17,()=>n(ce),p=>p.time,(p,E)=>{var A=Ca(),O=K(A),X=v(O,2),L=m(X,!0);u(X),k(()=>{Q(O,`left:${n(E).leftPercent}%;`),Q(X,`left:${n(E).leftPercent}%;`),R(L,n(E).label)}),g(p,A)}),u(Er),u(d),u(x),k(p=>R(Xn,`Grid: ${p??""}`),[()=>Or(n(Ir))]),Gt("wheel",rt,er),Gt("wheel",mt,pn),g(_,x)};D(h,_=>{n(y)==null||n(M)==null?_(T):_(b,!1)},!0)}g(o,c)};D(r,o=>{n(oe).length?o(s,!1):o(a)},!0)}g(t,e)};D(On,t=>{n(Rt)?t(Un):t(Wn,!1)})}u(Tr),u(wr),u(br),u(fe);var Vn=v(fe,2);{var Bn=t=>{Zt(aa(t,{get referenceEl(){return n(Vt)},placement:"top-start",offset:[0,10],children:r=>{var a=Wa();it(a,21,()=>n(Dr),ta,(s,o,c)=>{var h=Ua();ea(h,1,ra(c===0?"font-semibold text-rc-gray-050":"mt-1 whitespace-pre-wrap break-words text-rc-gray-300"));var T=m(h,!0);u(h),k(()=>R(T,n(o))),g(s,h)}),u(a),g(r,a)},$$slots:{default:!0}}),r=>i(ye,r,!0),()=>n(ye))};D(Vn,t=>{n(Ft)&&n(Vt)&&t(Bn)})}k(t=>{R(yn,n(oe).length),R(bn,n(kr)),R(wn,t)},[()=>Cr(n($).alignmentOffsetMs)]),g(W,ir),Qn()}Zn(["click","change","pointerdown"]);export{ti as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import"../chunks/B7r4ghJg.js";import{s as K,o as Se}from"../chunks/CB3MYTwM.js";import{p as ae,k as $e,h as t,i as Wt,l as d,f as T,d as b,a as j,s as A,u as Ne,b as i,g as F,q as ut,r as y,c as ne,n as pt,e as fe,w as v,t as q,H as Jt,N as dt,aW as le,aX as Pe,m as ke,$ as Ae,_ as tt}from"../chunks/BRMnbBOX.js";import{i as h}from"../chunks/BFchB-2I.js";import{e as re,i as ce}from"../chunks/D_iTaAhh.js";import{c as Ce}from"../chunks/3HVf2z3Q.js";import{i as ve}from"../chunks/rHISuZrQ.js";import{p as V,s as Le,a as Ie}from"../chunks/DCT4VKzQ.js";import{s as Oe}from"../chunks/
|
|
1
|
+
import"../chunks/CWj6FrbW.js";import"../chunks/B7r4ghJg.js";import{s as K,o as Se}from"../chunks/CB3MYTwM.js";import{p as ae,k as $e,h as t,i as Wt,l as d,f as T,d as b,a as j,s as A,u as Ne,b as i,g as F,q as ut,r as y,c as ne,n as pt,e as fe,w as v,t as q,H as Jt,N as dt,aW as le,aX as Pe,m as ke,$ as Ae,_ as tt}from"../chunks/BRMnbBOX.js";import{i as h}from"../chunks/BFchB-2I.js";import{e as re,i as ce}from"../chunks/D_iTaAhh.js";import{c as Ce}from"../chunks/3HVf2z3Q.js";import{i as ve}from"../chunks/rHISuZrQ.js";import{p as V,s as Le,a as Ie}from"../chunks/DCT4VKzQ.js";import{s as Oe}from"../chunks/CYF48L9_.js";import{T as Me,g as Je}from"../chunks/8mHyIC1B.js";import{B as ct}from"../chunks/C8-d_pGN.js";import{D as Ee}from"../chunks/DJH8-Pxb.js";import{I as Re,h as ue}from"../chunks/Bb9ZigkD.js";import{M as de}from"../chunks/CJHvtD7r.js";import{m as je}from"../chunks/ddC1NP9R.js";import{C as Fe,a as ze,b as De}from"../chunks/aFZ7RY4i.js";import{s as Ct}from"../chunks/DMtzEpj5.js";const Ue=()=>{const M=Oe;return{page:{subscribe:M.page.subscribe},navigating:{subscribe:M.navigating.subscribe},updated:M.updated}},qe={subscribe(M){return Ue().page.subscribe(M)}};var We=T("<!> <!>",1),Be=T('<div class="mt-1 overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"><!> <!></div>'),He=T("<div><!> <!></div>");function Ke(M,S){ae(S,!0);let C=V(S,"disabled",3,!1),_t=V(S,"dropdownId",3,"copy-traces-dropdown"),J=Wt(!1),mt=Wt(null),et=Wt(null),E=Wt(null);$e(()=>{C()&&t(J)&&d(J,!1)});async function B(L){try{const W=L==="with-prompts"?S.getWithPromptsText():S.getWithoutPromptsText();await navigator.clipboard.writeText(W),d(et,L,!0),t(E)&&clearTimeout(t(E)),d(E,window.setTimeout(()=>{d(et,null),d(E,null)},2e3),!0)}catch(W){console.error("Failed to copy traces",W)}}var X=He(),rt=b(X);ct(rt,{variant:"secondary",size:"small",get disabled(){return C()},get"aria-expanded"(){return t(J)},"aria-haspopup":"listbox",get"aria-controls"(){return _t()},onclick:L=>{L.stopPropagation(),d(J,!t(J))},class:"flex items-center gap-1",get el(){return t(mt)},set el(L){d(mt,L,!0)},children:(L,W)=>{var w=We(),x=j(w);{var ft=P=>{var D=F("Copied traces (without prompts)");i(P,D)},z=P=>{var D=ut(),vt=j(D);{var yt=Q=>{var gt=F("Copied traces (with prompts)");i(Q,gt)},bt=Q=>{var gt=F("Copy traces");i(Q,gt)};h(vt,Q=>{t(et)==="with-prompts"?Q(yt):Q(bt,!1)},!0)}i(P,D)};h(x,P=>{t(et)==="without-prompts"?P(ft):P(z,!1)})}var Y=A(x,2);{let P=Ne(()=>"size-5 text-rc-gray-400 transition-transform duration-200 "+(t(J)?"rotate-180":""));Re(Y,{name:"chevron-down",get class(){return t(P)}})}i(L,w)},$$slots:{default:!0}});var at=A(rt,2);Ee(at,{get id(){return _t()},get open(){return t(J)},onClose:()=>d(J,!1),get anchorEl(){return t(mt)},placement:"bottom-end",offset:[0,1],children:W=>{var w=Be(),x=b(w);ct(x,{variant:"ghost",size:"small",role:"option",onclick:z=>{z.stopPropagation(),d(J,!1),B("without-prompts")},class:"w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(z,Y)=>{pt();var P=F("Without prompts");i(z,P)},$$slots:{default:!0}});var ft=A(x,2);ct(ft,{variant:"ghost",size:"small",role:"option",onclick:z=>{z.stopPropagation(),d(J,!1),B("with-prompts")},class:"w-full rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(z,Y)=>{pt();var P=F("With prompts");i(z,P)},$$slots:{default:!0}}),y(w),i(W,w)},$$slots:{default:!0}}),y(X),i(M,X),ne()}function Ye(M,S,C){S()&&M.stopPropagation(),C(!C())}function Ge(M,S){S()&&M.stopPropagation()}var Ve=T("<div> </div>"),Xe=T('<div class="mt-1 whitespace-pre-wrap break-words text-xs italic text-rc-gray-200"> </div>'),Qe=T("<div><!> <!> <!></div>"),Ze=T("<div><div><div> </div> <div><!> <!></div> <!></div></div>"),tr=T('<div class="space-y-3"></div>'),er=T('<div class="whitespace-pre-wrap break-words"><!></div>'),rr=T('<button class="inline-flex text-sm text-rc-green-200 hover:text-rc-green-100"> </button>'),ar=T('<div><span class="whitespace-pre-wrap break-words"><!></span> <!></div>');function nr(M,S){ae(S,!1);let C=V(S,"value",8,""),_t=V(S,"limit",8,200),J=V(S,"maxLines",8,null),mt=V(S,"className",8,""),et=V(S,"collapsedLabel",8,"...more"),E=V(S,"initiallyExpanded",8,!1),B=V(S,"stopPropagation",8,!0),X=V(S,"expanded",28,E),rt=V(S,"treatPlainText",8,!1),at=V(S,"highlightPrompt",8,!1);function L(o){return o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function W(o){const s=w(o);let r=L(s);const f=[];return r=r.replace(/(\{+[\s\S]*?\}+)/g,_=>{const p=f.length;return f.push(_),`__CURLY${p}__`}),r=r.replace(/^(\s*#.*)$/gm,'<span class="prompt-heading">$1</span>'),r=r.replace(/(<[^&]*?>)/g,'<span class="mtk8">$1</span>'),r=r.replace(/^(\s*)(\d+)([.)])(\s+)/gm,(_,p,$,H,m)=>`${p}<span class="mtk8">${$}${H}</span>${m}`),f.forEach((_,p)=>{const $=`<span class="mtk5">${_}</span>`;r=r.replace(`__CURLY${p}__`,$)}),r=r.replace(/\n/g,"<br/>"),r}function w(o){let s=o.replace(/\r\n/g,`
|
|
2
2
|
`);return s=s.replace(/\\n/g,`
|
|
3
3
|
`),s}function x(o){try{if(Array.isArray(o)){const s=o.map(r=>(r==null?void 0:r.text)??(r==null?void 0:r.content)??JSON.stringify(r)).join(" ");return w(s)}if(typeof o=="string")try{const s=JSON.parse(o);if(Array.isArray(s)){const r=s.map(f=>(f==null?void 0:f.text)??(f==null?void 0:f.content)??JSON.stringify(f)).join(" ");return w(r)}return w(o)}catch{return w(o)}return w(JSON.stringify(o))}catch{return w(String(o??""))}}function ft(o){try{if(Array.isArray(o)){const s=o.map(r=>(r==null?void 0:r.text)??(r==null?void 0:r.content)??JSON.stringify(r)).join(`
|
|
4
4
|
`);return w(s)}if(typeof o=="string")try{const s=JSON.parse(o);if(Array.isArray(s)){const r=s.map(f=>(f==null?void 0:f.text)??(f==null?void 0:f.content)??JSON.stringify(f)).join(`
|
|
@@ -8,4 +8,4 @@ import"../chunks/CWj6FrbW.js";import"../chunks/B7r4ghJg.js";import{s as K,o as S
|
|
|
8
8
|
`):o.slice(0,_t()):o};function Et(o){if(!o)return null;try{const s=new Date(o);return Number.isNaN(s.getTime())?o:s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return o}}function Rt(o){if(o==null||!Number.isFinite(o))return null;const s=Number(o),r=Math.floor(s),f=Math.floor(r/60),_=r%60,p=String(f).padStart(2,"0"),$=String(_).padStart(2,"0");return`${p}:${$}`}function jt(o){if(!o)return"Assistant";const s=o.trim();return s?s.charAt(0).toUpperCase()+s.slice(1):"Assistant"}function Bt(o){const s=(o==null?void 0:o.toLowerCase())??"";return s==="user"||s==="customer"||s==="caller"}function Ft(o){const s=[];return{main:o.replace(/<([^>]+)>/g,(f,_)=>{const p=String(_).trim();return p&&s.push(p),""}).trim(),system:s}}ve();var Lt=ut(),Ht=j(Lt);{var Kt=o=>{var s=ut(),r=j(s);{var f=p=>{var $=tr();re($,5,()=>v(yt),ce,(H,m)=>{const k=dt(()=>(t(m),v(()=>Bt(t(m).role)))),I=dt(()=>(t(m),v(()=>(t(m).role??"").toLowerCase()==="system"))),U=dt(()=>(t(m),v(()=>Ft(t(m).text)))),ot=dt(()=>(t(m),v(()=>Et(t(m).time)))),Tt=dt(()=>(t(m),v(()=>Rt(t(m).duration))));var wt=Ze(),It=b(wt),St=b(It),Gt=b(St,!0);y(St);var $t=A(St,2),Ot=b($t);{var Vt=G=>{var Z=Ve(),it=b(Z,!0);y(Z),q(()=>K(it,(Jt(t(U)),v(()=>t(U).main)))),i(G,Z)};h(Ot,G=>{Jt(t(U)),v(()=>t(U).main)&&G(Vt)})}var Xt=A(Ot,2);re(Xt,1,()=>(Jt(t(U)),v(()=>t(U).system)),ce,(G,Z)=>{var it=Xe(),e=b(it);y(it),q(()=>K(e,`<${t(Z)??""}>`)),i(G,it)}),y($t);var Qt=A($t,2);{var zt=G=>{var Z=Qe(),it=b(Z);{var e=u=>{var g=F();q(()=>K(g,t(ot))),i(u,g)};h(it,u=>{t(ot)&&u(e)})}var a=A(it,2);{var n=u=>{var g=F("·");i(u,g)};h(a,u=>{t(ot)&&t(Tt)&&u(n)})}var l=A(a,2);{var c=u=>{var g=F();q(()=>K(g,t(Tt))),i(u,g)};h(l,u=>{t(Tt)&&u(c)})}y(Z),q(()=>Ct(Z,1,`mt-1 text-xs text-rc-gray-300 ${t(k)?"text-right":"text-left"}`)),i(G,Z)};h(Qt,G=>{(t(ot)||t(Tt))&&G(zt)})}y(It),y(wt),q(G=>{Ct(wt,1,`flex ${t(k)?"justify-end":"justify-start"}`),Ct(It,1,`max-w-[70%] break-words rounded-md px-3 py-2 text-sm shadow-sm ${t(k)?"bg-rc-gray-600 text-rc-gray-100":"bg-rc-gray-700 text-rc-gray-100"}`),Ct(St,1,`my-1 text-xs font-semibold uppercase ${t(I)?"text-rc-blue "+(t(k)?"text-right":"text-left"):"text-rc-green-200 "+(t(k)?"text-right":"text-left")}`),K(Gt,G),Ct($t,1,`whitespace-pre-wrap break-words py-1 text-sm ${t(k)?"text-justify":"text-left"} ${t(I)?"italic text-rc-gray-200":""}`)},[()=>(t(m),v(()=>jt(t(m).role)))]),i(H,wt)}),y($),i(p,$)},_=p=>{var $=er(),H=b($);{var m=I=>{var U=ut(),ot=j(U);ue(ot,()=>v(()=>W(D()))),i(I,U)},k=I=>{var U=F();q(ot=>K(U,ot),[()=>v(D)]),i(I,U)};h(H,I=>{at()?I(m):I(k,!1)})}y($),i(p,$)};h(r,p=>{v(bt)?p(f):p(_,!1)})}i(o,s)},Yt=o=>{var s=ar();s.__click=[Ge,B];var r=b(s),f=b(r);{var _=m=>{var k=ut(),I=j(k);ue(I,()=>v(()=>W(gt()))),i(m,k)},p=m=>{var k=F();q(I=>K(k,I),[()=>v(gt)]),i(m,k)};h(f,m=>{at()?m(_):m(p,!1)})}y(r);var $=A(r,2);{var H=m=>{var k=rr();k.__click=[Ye,B,X];var I=b(k,!0);y(k),q(()=>K(I,et())),i(m,k)};h($,m=>{v(Q)&&m(H)})}y(s),q(()=>Ct(s,1,`mt-1 cursor-text select-text rounded bg-rc-gray-900 p-2 text-sm text-rc-gray-200 ${mt()}`)),i(o,s)};h(Ht,o=>{X()?o(Kt):o(Yt,!1)})}i(M,Lt),ne()}fe(["click"]);var or=M=>M.stopPropagation(),ir=T('<span class="text-rc-gray-100">for conversation Id:</span> <span class="text-rc-green-200"> </span>',1),sr=T('<div class="flex flex-wrap items-center gap-2"><!> <!> <!></div>'),lr=T('<div class="mt-2 text-sm text-rc-gray-400">Loading call details…</div>'),cr=T('<div class="mt-2 text-sm text-rc-gray-300"> </div>'),ur=T('<div class="py-8 text-center text-rc-gray-300">No conversation selected</div>'),dr=T('<div class="py-8 text-center text-rc-gray-200">Loading traces...</div>'),fr=T('<div class="z-50 py-8 text-center text-red-400"> </div>'),vr=T('<div class="py-8 text-center text-rc-gray-300">No traces found</div>'),pr=T('<div class="my-3 flex w-full justify-center"><div class="rounded-full border border-rc-gray-650 bg-rc-gray-900/40 px-3 py-1 text-xs text-rc-gray-200"> </div></div>'),mr=T("<!> <!>",1),gr=T('<div class="mt-3 flex justify-center"><!></div>'),_r=T("<div></div> <!>",1),yr=T('<audio class="w-full" controls></audio> <div class="mt-3 break-all text-sm text-rc-gray-300"> </div>',1),xr=T("<!> <!>",1),hr=T('<div class="rc-scroll flex max-h-[60vh] flex-col gap-4 overflow-scroll p-2"><!></div>'),br=T('<div class="flex w-full items-center justify-end gap-5"><!> <!></div>'),Tr=T('<div class="flex h-full w-full flex-col bg-rc-gray-700"><div class="flex-none border-b border-rc-gray-300/40 p-4"><div class="flex flex-wrap items-start justify-between gap-3"><h2 class="text-lg font-semibold text-rc-gray-100">Traces <!></h2> <!></div> <!></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll p-4"><!></div></div> <!> <!>',1);function Dr(M,S){ae(S,!1);const C=()=>Ie(qe,"$page",_t),[_t,J]=Le();let mt=V(S,"useMock",8,!1);const et=new Me(fetch);et.setSourceId(Je()??void 0);let E=tt([]),B=tt([]),X=tt(!1),rt=tt(!1),at=tt(null),L=tt(null),W=null,w=tt(!1),x=tt(null),ft=tt(!1),z=tt(null),Y=tt(!1),P=tt(!1),D=0,vt=0;const yt=new WeakMap;let bt=0;function Q(e){if(typeof e!="string")return null;const a=e.trim();return a||null}function gt(e){const a=Q(e==null?void 0:e.traceId);if(a)return a;const n=yt.get(e);if(n)return n;bt+=1;const l=`synthetic-${e.traceType}-${e.createdAt}-${bt}`;return yt.set(e,l),l}function Et(e){const a=new Set;return e.filter(n=>{const l=Q(n==null?void 0:n.traceId);return l?a.has(l)?!1:(a.add(l),!0):!0})}function Rt(e){return e?t(E):t(E).map(a=>{if(a.traceType!=="STEP")return a;const{receivedPrompt:n,renderedPrompt:l,...c}=a;return c})}function jt(e){return e&&typeof e.renderedPrompt=="string"?e.renderedPrompt:null}function Bt(e,a){for(let n=a-1;n>=0;n--){const l=e[n];if(l.traceType!=="STEP")continue;const c=l;if(c.name==="main"&&jt(c))return c}for(let n=a-1;n>=0;n--){const l=e[n];if(l.traceType!=="STEP")continue;const c=l;if(c.name==="prewarm"&&jt(c))return c}return null}function Ft(e){return!!(e!=null&&e.audioUrl&&String(e.audioUrl).trim())}function Lt(e){const a=e==null?void 0:e.transcript;return typeof a=="string"?a.trim()!=="":Array.isArray(a)?a.length>0:!1}function Ht(e){const a=e==null?void 0:e.transcript;return a?typeof a=="string"?a:Array.isArray(a)?a.map(n=>{const l=typeof(n==null?void 0:n.time)=="string"?n.time:"",c=typeof(n==null?void 0:n.role)=="string"?n.role:"",u=typeof(n==null?void 0:n.text)=="string"?n.text:"",g=[l,c].filter(Boolean).join(" • ");return g?`${g}
|
|
9
9
|
${u}`:u}).join(`
|
|
10
10
|
|
|
11
|
-
`):"":""}async function Kt(){try{await navigator.clipboard.writeText(Ht(t(x)))}catch(e){console.error("Failed to copy transcript",e)}}async function Yt(){var e;try{const a=(e=t(x))==null?void 0:e.audioUrl;if(!a)return;await navigator.clipboard.writeText(a)}catch(a){console.error("Failed to copy recording URL",a)}}function o(e){return e.traceType!=="CONVERSATIONAL"?!1:e.eventName==="received-message"||e.eventName==="llm-handler-stream-requested"||e.eventName==="finished-main-streaming-step"||e.eventName==="sent-message"||e.eventName==="transfer-requested"}const s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function r(e){if(typeof e!="number"||!Number.isFinite(e))return null;const a=new Date(e);if(Number.isNaN(a.getTime()))return null;const n=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${n}-${l}-${c}`}function f(e){if(typeof e!="number"||!Number.isFinite(e))return null;const a=new Date(e);if(Number.isNaN(a.getTime()))return null;const n=a.getDate(),l=s[a.getMonth()],c=a.getFullYear();return`${n} ${l} ${c}`}async function _(e){const a=++vt;d(ft,!0),d(z,null),d(x,null);try{if(mt())return;const n=await et.getConversation(e);if(a!==vt)return;d(x,n)}catch(n){if(a!==vt)return;d(z,n.message),d(x,null)}finally{if(a!==vt)return;d(ft,!1)}}async function p(e){if(!e||e===t(L))return;const a=++D;d(L,e),d(X,!0),d(rt,!1),d(at,null),W=null,d(w,!1),d(Y,!1),d(P,!1),_(e);try{let n=[],l=null,c=!1;if(mt())n=(await je.fetchTraces(e)).items??[];else{const u=await et.getTraces(e,100);n=u.items??[],l=u.lastTraceId??null,c=l!=null}if(a!==D)return;W=l,d(w,c),d(E,Et(n).slice().sort((u,g)=>u.createdAt-g.createdAt))}catch(n){if(a!==D)return;d(at,n.message),d(E,[]),console.error("Failed to load traces:",n)}finally{if(a!==D)return;d(X,!1)}}async function $(){if(!t(L)||!W||t(rt))return;const e=t(L),a=D;d(rt,!0),d(at,null);try{const n=await et.getTraces(e,100,W),l=n.items??[];if(e!==t(L)||a!==D)return;const c=n.lastTraceId??null;W=c,d(w,c!=null),d(E,Et(t(E).concat(l)).slice().sort((u,g)=>u.createdAt-g.createdAt))}catch(n){if(e!==t(L)||a!==D)return;d(at,n.message),console.error("Failed to load more traces:",n)}finally{if(e!==t(L)||a!==D)return;d(rt,!1)}}Se(()=>{const e=C().params.conversationId;e&&p(e)}),le(()=>t(E),()=>{d(B,t(E).filter(e=>e.traceType==="API_CALL"||e.traceType==="STEP"||o(e)))}),le(()=>(C(),t(L)),()=>{const e=C().params.conversationId;e&&e!==t(L)&&p(e)}),Pe(),ve();var H=Tr();ke(e=>{Ae.title="Bosun: Telescope"});var m=j(H);m.__click=[or];var k=b(m),I=b(k),U=b(I),ot=A(b(U));{var Tt=e=>{var a=ir(),n=A(j(a),2),l=b(n,!0);y(n),q(()=>K(l,(C(),v(()=>C().params.conversationId)))),i(e,a)};h(ot,e=>{C(),v(()=>C().params.conversationId)&&e(Tt)})}y(U);var wt=A(U,2);{var It=e=>{var a=sr(),n=b(a);{var l=N=>{ct(N,{variant:"secondary",size:"small",onclick:()=>d(Y,!0),children:(O,nt)=>{pt();var st=F("Recording");i(O,st)},$$slots:{default:!0}})};h(n,N=>{t(x),v(()=>Ft(t(x)))&&N(l)})}var c=A(n,2);{var u=N=>{ct(N,{variant:"secondary",size:"small",onclick:()=>d(P,!0),children:(O,nt)=>{pt();var st=F("Transcript");i(O,st)},$$slots:{default:!0}})};h(c,N=>{t(x),v(()=>Lt(t(x)))&&N(u)})}var g=A(c,2);{let N=dt(()=>(t(E),t(X),v(()=>!t(E).length||t(X))));Ke(g,{get disabled(){return t(N)},getWithPromptsText:()=>JSON.stringify(Rt(!0),null,2),getWithoutPromptsText:()=>JSON.stringify(Rt(!1),null,2)})}y(a),i(e,a)};h(wt,e=>{C(),v(()=>C().params.conversationId)&&e(It)})}y(I);var St=A(I,2);{var Gt=e=>{var a=lr();i(e,a)},$t=e=>{var a=ut(),n=j(a);{var l=c=>{var u=cr(),g=b(u);y(u),q(()=>K(g,`Call details unavailable: ${t(z)??""}`)),i(c,u)};h(n,c=>{t(z)&&c(l)},!0)}i(e,a)};h(St,e=>{t(ft)?e(Gt):e($t,!1)})}y(k);var Ot=A(k,2),Vt=b(Ot);{var Xt=e=>{var a=ur();i(e,a)},Qt=e=>{var a=ut(),n=j(a);{var l=u=>{var g=dr();i(u,g)},c=u=>{var g=ut(),N=j(g);{var O=st=>{var Nt=fr(),Zt=b(Nt);y(Nt),q(()=>K(Zt,`Error: ${t(at)??""}`)),i(st,Nt)},nt=st=>{var Nt=ut(),Zt=j(Nt);{var pe=Pt=>{var Dt=vr();i(Pt,Dt)},me=Pt=>{var Dt=_r(),te=j(Dt);re(te,7,()=>t(B),xt=>gt(xt),(xt,R,ht)=>{const Ut=dt(()=>(t(R),v(()=>r(t(R).createdAt)))),oe=dt(()=>(Jt(t(ht)),t(B),v(()=>t(ht)>0?r(t(B)[t(ht)-1].createdAt):null))),Mt=dt(()=>(t(R),v(()=>f(t(R).createdAt))));var ie=mr(),se=j(ie);{var ye=lt=>{var kt=pr(),qt=b(kt),ee=b(qt,!0);y(qt),y(kt),q(()=>K(ee,t(Mt))),i(lt,kt)};h(se,lt=>{t(Ut)&&t(Mt)&&t(Ut)!==t(oe)&<(ye)})}var xe=A(se,2);{var he=lt=>{Fe(lt,{get trace(){return t(R)}})},be=lt=>{var kt=ut(),qt=j(kt);{var ee=At=>{{let we=dt(()=>(t(R),t(B),Jt(t(ht)),v(()=>t(R).name==="main"?Bt(t(B),t(ht)):null)));ze(At,{get trace(){return t(R)},get compareTrace(){return t(we)}})}},Te=At=>{De(At,{get trace(){return t(R)},context:null,agentId:void 0})};h(qt,At=>{t(R),v(()=>t(R).traceType==="STEP")?At(ee):At(Te,!1)},!0)}i(lt,kt)};h(xe,lt=>{t(R),v(()=>t(R).traceType==="API_CALL")?lt(he):lt(be,!1)})}i(xt,ie)}),y(te);var ge=A(te,2);{var _e=xt=>{var R=gr(),ht=b(R);ct(ht,{variant:"secondary",size:"small",get disabled(){return t(rt)},onclick:$,children:(Ut,oe)=>{pt();var Mt=F();q(()=>K(Mt,t(rt)?"Loading more…":"Load more")),i(Ut,Mt)},$$slots:{default:!0}}),y(R),i(xt,R)};h(ge,xt=>{t(w)&&xt(_e)})}i(Pt,Dt)};h(Zt,Pt=>{t(B),v(()=>!t(B).length)?Pt(pe):Pt(me,!1)},!0)}i(st,Nt)};h(N,st=>{t(at)?st(O):st(nt,!1)},!0)}i(u,g)};h(n,u=>{t(X)?u(l):u(c,!1)},!0)}i(e,a)};h(Vt,e=>{C(),v(()=>!C().params.conversationId)?e(Xt):e(Qt,!1)})}y(Ot),y(m);var zt=A(m,2);{var G=e=>{de(e,{title:"Recording",class:"!max-w-3xl",get open(){return t(Y)},set open(l){d(Y,l)},children:l=>{var c=yr(),u=j(c),g=A(u,2),N=b(g,!0);y(g),q(()=>{Ce(u,"src",(t(x),v(()=>{var O;return(O=t(x))==null?void 0:O.audioUrl}))),K(N,(t(x),v(()=>{var O;return(O=t(x))==null?void 0:O.audioUrl})))}),i(l,c)},footer:l=>{var c=xr(),u=j(c);ct(u,{variant:"secondary",size:"small",onclick:Yt,children:(N,O)=>{pt();var nt=F("Copy URL");i(N,nt)},$$slots:{default:!0}});var g=A(u,2);ct(g,{variant:"secondary",size:"small",onclick:()=>d(Y,!1),children:(N,O)=>{pt();var nt=F("Close");i(N,nt)},$$slots:{default:!0}}),i(l,c)},$$slots:{default:!0,footer:!0},$$legacy:!0})};h(zt,e=>{t(Y),t(x),v(()=>t(Y)&&Ft(t(x)))&&e(G)})}var Z=A(zt,2);{var it=e=>{de(e,{title:"Transcript",class:"!max-w-4xl",get open(){return t(P)},set open(l){d(P,l)},children:l=>{var c=hr(),u=b(c);{var g=N=>{nr(N,{get value(){return t(x),v(()=>t(x).transcript)},limit:500,expanded:!0})};h(u,N=>{t(x),v(()=>{var O;return typeof((O=t(x))==null?void 0:O.transcript)=="string"})&&N(g)})}y(c),i(l,c)},footer:l=>{var c=br(),u=b(c);ct(u,{onclick:Kt,children:(N,O)=>{pt();var nt=F("Copy transcript");i(N,nt)},$$slots:{default:!0}});var g=A(u,2);ct(g,{variant:"secondary",onclick:()=>d(P,!1),children:(N,O)=>{pt();var nt=F("Close");i(N,nt)},$$slots:{default:!0}}),y(c),i(l,c)},$$slots:{default:!0,footer:!0},$$legacy:!0})};h(Z,e=>{t(P),t(x),v(()=>t(P)&&Lt(t(x)))&&e(it)})}i(M,H),ne(),J()}fe(["click"]);export{Dr as component};
|
|
11
|
+
`):"":""}async function Kt(){try{await navigator.clipboard.writeText(Ht(t(x)))}catch(e){console.error("Failed to copy transcript",e)}}async function Yt(){var e;try{const a=(e=t(x))==null?void 0:e.audioUrl;if(!a)return;await navigator.clipboard.writeText(a)}catch(a){console.error("Failed to copy recording URL",a)}}function o(e){return e.traceType!=="CONVERSATIONAL"?!1:e.eventName==="received-message"||e.eventName==="llm-handler-stream-requested"||e.eventName==="finished-main-streaming-step"||e.eventName==="sent-message"||e.eventName==="transfer-requested"||e.eventName==="hangup-requested"}const s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function r(e){if(typeof e!="number"||!Number.isFinite(e))return null;const a=new Date(e);if(Number.isNaN(a.getTime()))return null;const n=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${n}-${l}-${c}`}function f(e){if(typeof e!="number"||!Number.isFinite(e))return null;const a=new Date(e);if(Number.isNaN(a.getTime()))return null;const n=a.getDate(),l=s[a.getMonth()],c=a.getFullYear();return`${n} ${l} ${c}`}async function _(e){const a=++vt;d(ft,!0),d(z,null),d(x,null);try{if(mt())return;const n=await et.getConversation(e);if(a!==vt)return;d(x,n)}catch(n){if(a!==vt)return;d(z,n.message),d(x,null)}finally{if(a!==vt)return;d(ft,!1)}}async function p(e){if(!e||e===t(L))return;const a=++D;d(L,e),d(X,!0),d(rt,!1),d(at,null),W=null,d(w,!1),d(Y,!1),d(P,!1),_(e);try{let n=[],l=null,c=!1;if(mt())n=(await je.fetchTraces(e)).items??[];else{const u=await et.getTraces(e,100);n=u.items??[],l=u.lastTraceId??null,c=l!=null}if(a!==D)return;W=l,d(w,c),d(E,Et(n).slice().sort((u,g)=>u.createdAt-g.createdAt))}catch(n){if(a!==D)return;d(at,n.message),d(E,[]),console.error("Failed to load traces:",n)}finally{if(a!==D)return;d(X,!1)}}async function $(){if(!t(L)||!W||t(rt))return;const e=t(L),a=D;d(rt,!0),d(at,null);try{const n=await et.getTraces(e,100,W),l=n.items??[];if(e!==t(L)||a!==D)return;const c=n.lastTraceId??null;W=c,d(w,c!=null),d(E,Et(t(E).concat(l)).slice().sort((u,g)=>u.createdAt-g.createdAt))}catch(n){if(e!==t(L)||a!==D)return;d(at,n.message),console.error("Failed to load more traces:",n)}finally{if(e!==t(L)||a!==D)return;d(rt,!1)}}Se(()=>{const e=C().params.conversationId;e&&p(e)}),le(()=>t(E),()=>{d(B,t(E).filter(e=>e.traceType==="API_CALL"||e.traceType==="STEP"||o(e)))}),le(()=>(C(),t(L)),()=>{const e=C().params.conversationId;e&&e!==t(L)&&p(e)}),Pe(),ve();var H=Tr();ke(e=>{Ae.title="Bosun: Telescope"});var m=j(H);m.__click=[or];var k=b(m),I=b(k),U=b(I),ot=A(b(U));{var Tt=e=>{var a=ir(),n=A(j(a),2),l=b(n,!0);y(n),q(()=>K(l,(C(),v(()=>C().params.conversationId)))),i(e,a)};h(ot,e=>{C(),v(()=>C().params.conversationId)&&e(Tt)})}y(U);var wt=A(U,2);{var It=e=>{var a=sr(),n=b(a);{var l=N=>{ct(N,{variant:"secondary",size:"small",onclick:()=>d(Y,!0),children:(O,nt)=>{pt();var st=F("Recording");i(O,st)},$$slots:{default:!0}})};h(n,N=>{t(x),v(()=>Ft(t(x)))&&N(l)})}var c=A(n,2);{var u=N=>{ct(N,{variant:"secondary",size:"small",onclick:()=>d(P,!0),children:(O,nt)=>{pt();var st=F("Transcript");i(O,st)},$$slots:{default:!0}})};h(c,N=>{t(x),v(()=>Lt(t(x)))&&N(u)})}var g=A(c,2);{let N=dt(()=>(t(E),t(X),v(()=>!t(E).length||t(X))));Ke(g,{get disabled(){return t(N)},getWithPromptsText:()=>JSON.stringify(Rt(!0),null,2),getWithoutPromptsText:()=>JSON.stringify(Rt(!1),null,2)})}y(a),i(e,a)};h(wt,e=>{C(),v(()=>C().params.conversationId)&&e(It)})}y(I);var St=A(I,2);{var Gt=e=>{var a=lr();i(e,a)},$t=e=>{var a=ut(),n=j(a);{var l=c=>{var u=cr(),g=b(u);y(u),q(()=>K(g,`Call details unavailable: ${t(z)??""}`)),i(c,u)};h(n,c=>{t(z)&&c(l)},!0)}i(e,a)};h(St,e=>{t(ft)?e(Gt):e($t,!1)})}y(k);var Ot=A(k,2),Vt=b(Ot);{var Xt=e=>{var a=ur();i(e,a)},Qt=e=>{var a=ut(),n=j(a);{var l=u=>{var g=dr();i(u,g)},c=u=>{var g=ut(),N=j(g);{var O=st=>{var Nt=fr(),Zt=b(Nt);y(Nt),q(()=>K(Zt,`Error: ${t(at)??""}`)),i(st,Nt)},nt=st=>{var Nt=ut(),Zt=j(Nt);{var pe=Pt=>{var Dt=vr();i(Pt,Dt)},me=Pt=>{var Dt=_r(),te=j(Dt);re(te,7,()=>t(B),xt=>gt(xt),(xt,R,ht)=>{const Ut=dt(()=>(t(R),v(()=>r(t(R).createdAt)))),oe=dt(()=>(Jt(t(ht)),t(B),v(()=>t(ht)>0?r(t(B)[t(ht)-1].createdAt):null))),Mt=dt(()=>(t(R),v(()=>f(t(R).createdAt))));var ie=mr(),se=j(ie);{var ye=lt=>{var kt=pr(),qt=b(kt),ee=b(qt,!0);y(qt),y(kt),q(()=>K(ee,t(Mt))),i(lt,kt)};h(se,lt=>{t(Ut)&&t(Mt)&&t(Ut)!==t(oe)&<(ye)})}var xe=A(se,2);{var he=lt=>{Fe(lt,{get trace(){return t(R)}})},be=lt=>{var kt=ut(),qt=j(kt);{var ee=At=>{{let we=dt(()=>(t(R),t(B),Jt(t(ht)),v(()=>t(R).name==="main"?Bt(t(B),t(ht)):null)));ze(At,{get trace(){return t(R)},get compareTrace(){return t(we)}})}},Te=At=>{De(At,{get trace(){return t(R)},context:null,agentId:void 0})};h(qt,At=>{t(R),v(()=>t(R).traceType==="STEP")?At(ee):At(Te,!1)},!0)}i(lt,kt)};h(xe,lt=>{t(R),v(()=>t(R).traceType==="API_CALL")?lt(he):lt(be,!1)})}i(xt,ie)}),y(te);var ge=A(te,2);{var _e=xt=>{var R=gr(),ht=b(R);ct(ht,{variant:"secondary",size:"small",get disabled(){return t(rt)},onclick:$,children:(Ut,oe)=>{pt();var Mt=F();q(()=>K(Mt,t(rt)?"Loading more…":"Load more")),i(Ut,Mt)},$$slots:{default:!0}}),y(R),i(xt,R)};h(ge,xt=>{t(w)&&xt(_e)})}i(Pt,Dt)};h(Zt,Pt=>{t(B),v(()=>!t(B).length)?Pt(pe):Pt(me,!1)},!0)}i(st,Nt)};h(N,st=>{t(at)?st(O):st(nt,!1)},!0)}i(u,g)};h(n,u=>{t(X)?u(l):u(c,!1)},!0)}i(e,a)};h(Vt,e=>{C(),v(()=>!C().params.conversationId)?e(Xt):e(Qt,!1)})}y(Ot),y(m);var zt=A(m,2);{var G=e=>{de(e,{title:"Recording",class:"!max-w-3xl",get open(){return t(Y)},set open(l){d(Y,l)},children:l=>{var c=yr(),u=j(c),g=A(u,2),N=b(g,!0);y(g),q(()=>{Ce(u,"src",(t(x),v(()=>{var O;return(O=t(x))==null?void 0:O.audioUrl}))),K(N,(t(x),v(()=>{var O;return(O=t(x))==null?void 0:O.audioUrl})))}),i(l,c)},footer:l=>{var c=xr(),u=j(c);ct(u,{variant:"secondary",size:"small",onclick:Yt,children:(N,O)=>{pt();var nt=F("Copy URL");i(N,nt)},$$slots:{default:!0}});var g=A(u,2);ct(g,{variant:"secondary",size:"small",onclick:()=>d(Y,!1),children:(N,O)=>{pt();var nt=F("Close");i(N,nt)},$$slots:{default:!0}}),i(l,c)},$$slots:{default:!0,footer:!0},$$legacy:!0})};h(zt,e=>{t(Y),t(x),v(()=>t(Y)&&Ft(t(x)))&&e(G)})}var Z=A(zt,2);{var it=e=>{de(e,{title:"Transcript",class:"!max-w-4xl",get open(){return t(P)},set open(l){d(P,l)},children:l=>{var c=hr(),u=b(c);{var g=N=>{nr(N,{get value(){return t(x),v(()=>t(x).transcript)},limit:500,expanded:!0})};h(u,N=>{t(x),v(()=>{var O;return typeof((O=t(x))==null?void 0:O.transcript)=="string"})&&N(g)})}y(c),i(l,c)},footer:l=>{var c=br(),u=b(c);ct(u,{onclick:Kt,children:(N,O)=>{pt();var nt=F("Copy transcript");i(N,nt)},$$slots:{default:!0}});var g=A(u,2);ct(g,{variant:"secondary",onclick:()=>d(P,!1),children:(N,O)=>{pt();var nt=F("Close");i(N,nt)},$$slots:{default:!0}}),y(c),i(l,c)},$$slots:{default:!0,footer:!0},$$legacy:!0})};h(Z,e=>{t(P),t(x),v(()=>t(P)&&Lt(t(x)))&&e(it)})}i(M,H),ne(),J()}fe(["click"]);export{Dr as component};
|
|
Binary file
|
|
Binary file
|