@recombine-ai/bosun 0.8.2 → 0.8.3

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.
Files changed (98) hide show
  1. package/build/client/_app/immutable/chunks/{aFZ7RY4i.js → 0e_4hQ6g.js} +1 -1
  2. package/build/client/_app/immutable/chunks/0e_4hQ6g.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/0e_4hQ6g.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{2QZUjt52.js → Qml5ZyeD.js} +1 -1
  5. package/build/client/_app/immutable/chunks/Qml5ZyeD.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/Qml5ZyeD.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{CYF48L9_.js → yPd1epTY.js} +1 -1
  8. package/build/client/_app/immutable/chunks/yPd1epTY.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/yPd1epTY.js.gz +0 -0
  10. package/build/client/_app/immutable/entry/{app.CBFo0y_h.js → app.Bpgxjy-s.js} +2 -2
  11. package/build/client/_app/immutable/entry/app.Bpgxjy-s.js.br +0 -0
  12. package/build/client/_app/immutable/entry/app.Bpgxjy-s.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/start.gcze8Gig.js +1 -0
  14. package/build/client/_app/immutable/entry/start.gcze8Gig.js.br +2 -0
  15. package/build/client/_app/immutable/entry/start.gcze8Gig.js.gz +0 -0
  16. package/build/client/_app/immutable/nodes/{0.BS46Erbu.js → 0.B_DUfle6.js} +1 -1
  17. package/build/client/_app/immutable/nodes/0.B_DUfle6.js.br +0 -0
  18. package/build/client/_app/immutable/nodes/0.B_DUfle6.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/{1.BkQc4vam.js → 1.BMRtiAgG.js} +1 -1
  20. package/build/client/_app/immutable/nodes/1.BMRtiAgG.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/1.BMRtiAgG.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{17.C7bkiGOl.js → 17.Bn7AdwZ5.js} +1 -1
  23. package/build/client/_app/immutable/nodes/17.Bn7AdwZ5.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/17.Bn7AdwZ5.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{18.CjBHM2ng.js → 18.D6rkjSXS.js} +1 -1
  26. package/build/client/_app/immutable/nodes/18.D6rkjSXS.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/18.D6rkjSXS.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{2.CAYQyVDJ.js → 2.DuwVz5hs.js} +1 -1
  29. package/build/client/_app/immutable/nodes/2.DuwVz5hs.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/2.DuwVz5hs.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{3.CoWzFM8T.js → 3.CWbDFdJc.js} +1 -1
  32. package/build/client/_app/immutable/nodes/3.CWbDFdJc.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/3.CWbDFdJc.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{4.BC-cU8Pp.js → 4.BKfSk-la.js} +1 -1
  35. package/build/client/_app/immutable/nodes/4.BKfSk-la.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/4.BKfSk-la.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{6.D4x8Wh9M.js → 6.BBELyzrl.js} +1 -1
  38. package/build/client/_app/immutable/nodes/6.BBELyzrl.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/6.BBELyzrl.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{9.BwiEOYkX.js → 9.B5srlcvO.js} +1 -1
  41. package/build/client/_app/immutable/nodes/9.B5srlcvO.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/9.B5srlcvO.js.gz +0 -0
  43. package/build/client/_app/version.json +1 -1
  44. package/build/client/_app/version.json.br +0 -0
  45. package/build/client/_app/version.json.gz +0 -0
  46. package/build/server/chunks/{0-6QwqOuSN.js → 0-DQYiSkTc.js} +2 -2
  47. package/build/server/chunks/{0-6QwqOuSN.js.map → 0-DQYiSkTc.js.map} +1 -1
  48. package/build/server/chunks/{1-BqEYCSqb.js → 1-DhkFWhdS.js} +2 -2
  49. package/build/server/chunks/{1-BqEYCSqb.js.map → 1-DhkFWhdS.js.map} +1 -1
  50. package/build/server/chunks/{17-C5jRC6rL.js → 17-spCxnu0D.js} +2 -2
  51. package/build/server/chunks/{17-C5jRC6rL.js.map → 17-spCxnu0D.js.map} +1 -1
  52. package/build/server/chunks/{18-BzERVoaR.js → 18-5ywopQxh.js} +2 -2
  53. package/build/server/chunks/{18-BzERVoaR.js.map → 18-5ywopQxh.js.map} +1 -1
  54. package/build/server/chunks/{2-DTdewCMV.js → 2-DHZvoK0l.js} +2 -2
  55. package/build/server/chunks/{2-DTdewCMV.js.map → 2-DHZvoK0l.js.map} +1 -1
  56. package/build/server/chunks/{3-Xnzo0PPo.js → 3-C4s3Ddrr.js} +2 -2
  57. package/build/server/chunks/{3-Xnzo0PPo.js.map → 3-C4s3Ddrr.js.map} +1 -1
  58. package/build/server/chunks/{4-BKFeDeOj.js → 4-8t7YAnVi.js} +2 -2
  59. package/build/server/chunks/{4-BKFeDeOj.js.map → 4-8t7YAnVi.js.map} +1 -1
  60. package/build/server/chunks/{6-CYC178cM.js → 6-B-5Y3vyU.js} +2 -2
  61. package/build/server/chunks/{6-CYC178cM.js.map → 6-B-5Y3vyU.js.map} +1 -1
  62. package/build/server/chunks/{9-COYHphb5.js → 9-CXFkFySA.js} +2 -2
  63. package/build/server/chunks/{9-COYHphb5.js.map → 9-CXFkFySA.js.map} +1 -1
  64. package/build/server/index.js +1 -1
  65. package/build/server/index.js.map +1 -1
  66. package/build/server/manifest.js +10 -10
  67. package/build/server/manifest.js.map +1 -1
  68. package/package.json +1 -1
  69. package/src/backend/tests/emulate-agents.ts +4 -8
  70. package/build/client/_app/immutable/chunks/2QZUjt52.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/2QZUjt52.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/CYF48L9_.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/CYF48L9_.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/aFZ7RY4i.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/aFZ7RY4i.js.gz +0 -0
  76. package/build/client/_app/immutable/entry/app.CBFo0y_h.js.br +0 -0
  77. package/build/client/_app/immutable/entry/app.CBFo0y_h.js.gz +0 -0
  78. package/build/client/_app/immutable/entry/start.B7Oj0YZC.js +0 -1
  79. package/build/client/_app/immutable/entry/start.B7Oj0YZC.js.br +0 -2
  80. package/build/client/_app/immutable/entry/start.B7Oj0YZC.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/0.BS46Erbu.js.br +0 -0
  82. package/build/client/_app/immutable/nodes/0.BS46Erbu.js.gz +0 -0
  83. package/build/client/_app/immutable/nodes/1.BkQc4vam.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/1.BkQc4vam.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/17.C7bkiGOl.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/17.C7bkiGOl.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/18.CjBHM2ng.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/18.CjBHM2ng.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/2.CAYQyVDJ.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/2.CAYQyVDJ.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/3.CoWzFM8T.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/3.CoWzFM8T.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/4.BC-cU8Pp.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/4.BC-cU8Pp.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/6.D4x8Wh9M.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/6.D4x8Wh9M.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/9.BwiEOYkX.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/9.BwiEOYkX.js.gz +0 -0
@@ -1,4 +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/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&apos;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
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/Qml5ZyeD.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&apos;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
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(`
3
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(`
4
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};
@@ -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/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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}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(/(&lt;[^&]*?&gt;)/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,`
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/yPd1epTY.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/0e_4hQ6g.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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}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(/(&lt;[^&]*?&gt;)/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(`
@@ -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
- var an=Object.defineProperty;var ln=(C,O,c)=>O in C?an(C,O,{enumerable:!0,configurable:!0,writable:!0,value:c}):C[O]=c;var Oe=(C,O,c)=>ln(C,typeof O!="symbol"?O+"":O,c);import"../chunks/CWj6FrbW.js";import{o as It,b as Gt,s as Fe,a as cn}from"../chunks/CB3MYTwM.js";import{p as gt,h as N,i as De,l as Se,k as He,f as me,d as se,r as re,b as oe,c as yt,e as Ft,s as ye,n as je,t as Ke,u as Pe,g as $e,q as tt,a as Re,_ as un,N as fn,br as pn,j as Bt}from"../chunks/BRMnbBOX.js";import{i as Ce}from"../chunks/BFchB-2I.js";import{k as hn,M as dn}from"../chunks/CJHvtD7r.js";import{e as ct,i as Nt}from"../chunks/D_iTaAhh.js";import{r as qt,d as vn}from"../chunks/3HVf2z3Q.js";import{s as mn}from"../chunks/DMtzEpj5.js";import{a as gn}from"../chunks/DAyj7AJo.js";import{P as mt,g as zt,s as yn}from"../chunks/Bk5z628g.js";import{B as Et}from"../chunks/C8-d_pGN.js";import{d as Mt,e as _n,f as xn,g as wn,D as bn}from"../chunks/DJH8-Pxb.js";import{I as En}from"../chunks/Bb9ZigkD.js";import{T as Pt,a as st}from"../chunks/C1rQHXql.js";import{p as At,l as kn,C as On,P as Kt}from"../chunks/CnRh8Bgk.js";import{g as vt,r as Sn}from"../chunks/CYF48L9_.js";import{p as qe}from"../chunks/2QZUjt52.js";import{t as ut}from"../chunks/BEJ5fU19.js";import{_ as Qt}from"../chunks/C1FmrZbK.js";import{b as Yt}from"../chunks/CmatTLDp.js";import{e as Jt,a as Xt,c as Ln}from"../chunks/BU7aeYn4.js";import{p as Ct}from"../chunks/DCT4VKzQ.js";import{A as Tn}from"../chunks/BiBGf8wR.js";import{g as An}from"../chunks/BmJonxL2.js";import"../chunks/B7r4ghJg.js";import{i as Cn}from"../chunks/rHISuZrQ.js";import{c as jt,a as Nn}from"../chunks/C3cmQ-ZQ.js";var Pn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rn(C){return C&&C.__esModule&&Object.prototype.hasOwnProperty.call(C,"default")?C.default:C}const In=globalThis.__sveltekit_1jzhmmp.env;class Fn{constructor(O){Oe(this,"ws",null);Oe(this,"openHandler",null);Oe(this,"closeHandler",null);Oe(this,"errorHandler",null);Oe(this,"messageHandler",null);Oe(this,"retries",0);Oe(this,"maxRetries",5);Oe(this,"retryDelay",500);Oe(this,"retryTimeout",null);Oe(this,"isOpen",!1);Oe(this,"isDestroyed",!1);Oe(this,"agentsLoaded",!1);Oe(this,"init",()=>{if(!this.isOpen){this.agentsLoaded=!1,console.log(`Initializing websocket connection with [${this.wsUrl}]`);try{this.ws=new WebSocket(this.wsUrl)}catch{this.retryConnect();return}this.isDestroyed=!1,this.ws.onmessage=O=>{var E,_,h,x,u,t,y,L;const c=JSON.parse(O.data);c.channel==="error"?(E=this.errorHandler)==null||E.call(this,c.message):c.channel==="app-events"?(console.log("MSG:",c.event.type),c.event.type==="agents-loaded"&&(this.agentsLoaded=!0)):c.channel==="log"?console.log(`MSG: log [${c.message.severity}]`,c.message.message):c.channel==="api-call-trace"?console.log("MSG: api-call-trace",(_=c.trace)==null?void 0:_.operationName,(h=c.trace)==null?void 0:h.method,(x=c.trace)==null?void 0:x.path):c.channel==="conversational-trace"&&console.log("MSG: conversational-trace",(u=c.trace)==null?void 0:u.eventName,(t=c.trace)==null?void 0:t.role,(y=c.trace)==null?void 0:y.medium),(L=this.messageHandler)==null||L.call(this,c)},this.ws.onerror=O=>{var c;console.error("Websocket error:",O),(c=this.ws)==null||c.close(),this.retryConnect()},this.ws.onclose=()=>{console.log("Websocket closed"),this.isOpen=!1,this.retryConnect()},this.ws.onopen=()=>{var O;this.retries=0,this.isOpen=!0,this.retryTimeout&&clearTimeout(this.retryTimeout),(O=this.openHandler)==null||O.call(this),console.log("Websocket connected")}}});Oe(this,"destroy",()=>{var O;this.isDestroyed=!0,(O=this.ws)==null||O.close()});Oe(this,"onOpen",O=>{this.openHandler=O,this.isOpen&&O()});Oe(this,"onClose",O=>{this.closeHandler=O,this.isOpen||O()});Oe(this,"onError",O=>{this.errorHandler=O});Oe(this,"onMessage",O=>{this.messageHandler=O});Oe(this,"sendMessage",O=>{var c;O.channel,(c=this.ws)==null||c.send(JSON.stringify(O))});Oe(this,"isReady",()=>this.isOpen&&this.agentsLoaded);Oe(this,"retryConnect",()=>{var O,c;this.isDestroyed||(!this.isOpen&&this.retries<this.maxRetries?(this.retries++,this.init(),this.retryTimeout=setTimeout(this.retryConnect,this.retryDelay)):((O=this.errorHandler)==null||O.call(this,"WebSocket Error, please reload the browser"),(c=this.closeHandler)==null||c.call(this)))});this.wsUrl=O}}const Bn=In.PUBLIC_WS_HOST??"ws://localhost:8080",ot=new Fn(Bn);var Mn=me('<div class="flex h-full flex-col"><div class="h-full w-full"></div></div>');function Kn(C,O){gt(O,!0);let c=De(null),E=null,_=[],h=!1,x;It(async()=>{if(!x)return;Jt();const u=await Qt(()=>import("../chunks/DLQqXQ6R.js").then(t=>t.e),__vite__mapDeps([0,1,2]),import.meta.url);h||(Xt(u),Se(c,u.editor.create(x,{value:O.schema??"",language:"typescript",theme:"bosun-dark",lineNumbers:"off",automaticLayout:!0,minimap:{enabled:!1},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),E=N(c).getModel(),_.push(N(c).onDidChangeModelContent(()=>{if(!N(c))return;const t=N(c).getValue();t!==O.schema&&O.onChange(t)})))}),Gt(()=>{h=!0;for(const t of _)try{t.dispose()}catch{}_=[];const u=E;E=null;try{if(N(c)){try{N(c).setModel(null)}catch{}N(c).dispose()}}finally{Se(c,null)}try{u==null||u.dispose()}catch{}}),He(()=>{if(!N(c))return;const u=O.schema??"";N(c).getValue()!==u&&N(c).setValue(u)}),mt(C,{get class(){return`overflow-hidden ${O.class??""}`},children:(u,t)=>{var y=Mn(),L=se(y);Yt(L,V=>x=V,()=>x),re(y),oe(u,y)}}),yt()}function jn(C,O){return C.languages.registerCompletionItemProvider("markdown",{triggerCharacters:[" ","."],provideCompletionItems:(c,E)=>{const _=c.getValueInRange({startLineNumber:E.lineNumber,startColumn:1,endLineNumber:E.lineNumber,endColumn:E.column}),h=_.match(/\{%\s*(if|elif|for)\s+([^%]*)$/),x=_.match(/\{\{\s*([^}]*)$/);if(h||x){let t="";h?t=h[2].trim():x&&(t=x[1].trim());const{keys:y,lastPartLength:L}=Dn(O,t);return{suggestions:y.map(D=>({label:D,kind:C.languages.CompletionItemKind.Variable,insertText:D,range:{startLineNumber:E.lineNumber,endLineNumber:E.lineNumber,startColumn:E.column-L,endColumn:E.column}}))}}const u=_.match(/\{%\s*([^%]*)$/);if(u){const t=u[1].trim();return{suggestions:Rt(["if","elif","else","endif","for","endfor"],t).map((L,V)=>({label:L,kind:C.languages.CompletionItemKind.Keyword,insertText:L,sortText:String(V).padStart(2,"0"),range:{startLineNumber:E.lineNumber,endLineNumber:E.lineNumber,startColumn:E.column-t.length,endColumn:E.column}}))}}return{suggestions:[]}}})}function Dn(C,O){let c=C,E=[],_=0;if(O==="")E=Object.keys(C??{}),_=0;else if(O.includes(".")){const h=O.split("."),x=h.pop()||"";_=x.length;for(const u of h)if(c&&typeof c=="object"&&u in c)c=c[u];else{c=null;break}c&&typeof c=="object"&&(E=Rt(Object.keys(c),x))}else _=O.length,E=Rt(Object.keys(C??{}),O);return{keys:E,lastPartLength:_}}function Rt(C,O){return O?C.map((c,E)=>({value:c,index:E,match:Vn(c,O)})).filter(c=>c.match!==null).sort((c,E)=>c.match.kindRank!==E.match.kindRank?c.match.kindRank-E.match.kindRank:c.match.span!==E.match.span?c.match.span-E.match.span:c.match.gapCount!==E.match.gapCount?c.match.gapCount-E.match.gapCount:c.match.start!==E.match.start?c.match.start-E.match.start:c.index-E.index).map(c=>c.value):C}function Vn(C,O){const c=C.toLowerCase(),E=O.toLowerCase();if(!E)return null;if(c.startsWith(E))return{kindRank:0,start:0,span:E.length,gapCount:0};const _=c.indexOf(E);if(_!==-1)return{kindRank:Hn(C,_,E.length),start:_,span:E.length,gapCount:0};const h=Un(c,E);return h?{kindRank:4,start:h.start,span:h.span,gapCount:h.gapCount}:null}function Un(C,O){if(!C||!O)return null;let c=null,E=0;for(;E<C.length;){let _=E,h=0;for(;_<C.length&&h<O.length;)C[_]===O[h]&&(h+=1),_+=1;if(h!==O.length)break;const x=new Array(O.length);let u=_-1;for(let L=O.length-1;L>=0;L--){for(;u>=0&&C[u]!==O[L];)u-=1;if(u<0)return c;x[L]=u,u-=1}let t=0;for(let L=1;L<x.length;L++)t+=x[L]-x[L-1]-1;const y={start:x[0],span:x[x.length-1]-x[0]+1,gapCount:t};(!c||y.span<c.span||y.span===c.span&&y.gapCount<c.gapCount||y.span===c.span&&y.gapCount===c.gapCount&&y.start<c.start)&&(c=y),E=x[0]+1}return c}function Wn(C,O){return O<=0?!0:/[\s._-]/.test(C[O-1]??"")}function $n(C,O){return O>=C.length?!0:/[\s._-]/.test(C[O]??"")}function Hn(C,O,c){const E=Wn(C,O),_=$n(C,O+c);return E&&_?1:E?2:3}const Gn=/^(#{1,6})\s/,qn=/^\s*\{%\s*(if|elif|elseif|else|endif|for|endfor)\b/,zn={provideFoldingRanges(C){return Yn(C)}},Qn={provideFoldingRanges(C){return Jn(C)}};function Yn(C){const O=[],c=C.getLineCount(),E=[];for(let _=1;_<=c;_++){const h=Gn.exec(C.getLineContent(_));h&&E.push({line:_,level:h[1].length})}for(let _=0;_<E.length;_++){const{line:h,level:x}=E[_];let u=c;for(let t=_+1;t<E.length;t++)if(E[t].level<=x){u=E[t].line-1;break}u=Zt(C,h,u),u>h&&O.push({start:h,end:u})}return O}function Jn(C){const O=[],c=[],E=C.getLineCount();for(let _=1;_<=E;_++){const h=qn.exec(C.getLineContent(_));if(!h)continue;const x=h[1];if(x==="if"){c.push({kind:"if",branchStarts:[_],startLine:_});continue}if(x==="for"){c.push({kind:"for",branchStarts:[_],startLine:_});continue}if(x==="elif"||x==="elseif"||x==="else"){const u=Xn(c,"if");if(!u)continue;bt(O,C,u.branchStarts.at(-1)??u.startLine,_-1),u.branchStarts.push(_);continue}if(x==="endif"){const u=Dt(c,"if");if(!u)continue;bt(O,C,u.branchStarts.at(-1)??u.startLine,_-1);continue}if(x==="endfor"){const u=Dt(c,"for");if(!u)continue;bt(O,C,u.startLine,_-1)}}for(const _ of c){const h=_.kind==="if"?_.branchStarts.at(-1)??_.startLine:_.startLine;bt(O,C,h,E)}return O}function Xn(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C[c];return null}function Dt(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C.splice(c,1)[0];return null}function bt(C,O,c,E){const _=Zt(O,c,E);_>c&&C.push({start:c,end:_})}function Zt(C,O,c){let E=c;for(;E>O&&C.getLineContent(E).trim()==="";)E-=1;return E}const Zn=/\{%[-\s]*(if|elif|elseif|else|endif|for|endfor)\b/,er={provideDocumentHighlights(C,O){const c=nr(C),E=O.lineNumber,_=O.column;for(const h of c)for(const x of h)if(x.line===E&&_>=x.startColumn&&_<=x.endColumn)return h.map(u=>({range:{startLineNumber:u.line,startColumn:u.startColumn,endLineNumber:u.line,endColumn:u.endColumn},kind:1}));return[]}};function tr(C,O){const c=C.getLineContent(O),E=Zn.exec(c);if(!E)return null;const _=E[1],h=E.index+E[0].length-_.length;return{line:O,startColumn:h+1,endColumn:h+_.length+1,keyword:_}}function nr(C){const O=[],c=C.getLineCount(),E=[];for(let _=1;_<=c;_++){const h=tr(C,_);if(!h)continue;const x=h.keyword;if(x==="if"){E.push({kind:"if",tags:[h]});continue}if(x==="for"){E.push({kind:"for",tags:[h]});continue}if(x==="elif"||x==="elseif"||x==="else"){const u=rr(E,"if");u&&u.tags.push(h);continue}if(x==="endif"){const u=Vt(E,"if");u&&(u.tags.push(h),O.push(u.tags));continue}if(x==="endfor"){const u=Vt(E,"for");u&&(u.tags.push(h),O.push(u.tags))}}return O}function rr(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C[c];return null}function Vt(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C.splice(c,1)[0];return null}var en={exports:{}};/*! Browser bundle of nunjucks 3.2.4 */(function(C,O){(function(E,_){C.exports=_()})(typeof self<"u"?self:Pn,function(){return function(c){var E={};function _(h){if(E[h])return E[h].exports;var x=E[h]={i:h,l:!1,exports:{}};return c[h].call(x.exports,x,x.exports,_),x.l=!0,x.exports}return _.m=c,_.c=E,_.d=function(h,x,u){_.o(h,x)||Object.defineProperty(h,x,{configurable:!1,enumerable:!0,get:u})},_.n=function(h){var x=h&&h.__esModule?function(){return h.default}:function(){return h};return _.d(x,"a",x),x},_.o=function(h,x){return Object.prototype.hasOwnProperty.call(h,x)},_.p="",_(_.s=11)}([function(c,y,_){var h=Array.prototype,x=Object.prototype,u={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","\\":"&#92;"},t=/[&"'<>\\]/g,y=c.exports={};function L(p,k){return x.hasOwnProperty.call(p,k)}y.hasOwnProp=L;function V(p){return u[p]}function D(p,k,K){if(K.Update||(K=new y.TemplateError(K)),K.Update(p),!k){var M=K;K=new Error(M.message),K.name=M.name}return K}y._prettifyError=D;function B(p,k,K){var M,z;p instanceof Error&&(z=p,p=z.name+": "+z.message),Object.setPrototypeOf?(M=new Error(p),Object.setPrototypeOf(M,B.prototype)):(M=this,Object.defineProperty(M,"message",{enumerable:!1,writable:!0,value:p})),Object.defineProperty(M,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(M,this.constructor);var ae;if(z){var Z=Object.getOwnPropertyDescriptor(z,"stack");ae=Z&&(Z.get||function(){return Z.value}),ae||(ae=function(){return z.stack})}else{var fe=new Error(p).stack;ae=function(){return fe}}return Object.defineProperty(M,"stack",{get:function(){return ae.call(M)}}),Object.defineProperty(M,"cause",{value:z}),M.lineno=k,M.colno=K,M.firstUpdate=!0,M.Update=function(q){var X="("+(q||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?X+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(X+=" [Line "+this.lineno+"]")),X+=`
2
+ var an=Object.defineProperty;var ln=(C,O,c)=>O in C?an(C,O,{enumerable:!0,configurable:!0,writable:!0,value:c}):C[O]=c;var Oe=(C,O,c)=>ln(C,typeof O!="symbol"?O+"":O,c);import"../chunks/CWj6FrbW.js";import{o as It,b as Gt,s as Fe,a as cn}from"../chunks/CB3MYTwM.js";import{p as gt,h as N,i as De,l as Se,k as He,f as me,d as se,r as re,b as oe,c as yt,e as Ft,s as ye,n as je,t as Ke,u as Pe,g as $e,q as tt,a as Re,_ as un,N as fn,br as pn,j as Bt}from"../chunks/BRMnbBOX.js";import{i as Ce}from"../chunks/BFchB-2I.js";import{k as hn,M as dn}from"../chunks/CJHvtD7r.js";import{e as ct,i as Nt}from"../chunks/D_iTaAhh.js";import{r as qt,d as vn}from"../chunks/3HVf2z3Q.js";import{s as mn}from"../chunks/DMtzEpj5.js";import{a as gn}from"../chunks/DAyj7AJo.js";import{P as mt,g as zt,s as yn}from"../chunks/Bk5z628g.js";import{B as Et}from"../chunks/C8-d_pGN.js";import{d as Mt,e as _n,f as xn,g as wn,D as bn}from"../chunks/DJH8-Pxb.js";import{I as En}from"../chunks/Bb9ZigkD.js";import{T as Pt,a as st}from"../chunks/C1rQHXql.js";import{p as At,l as kn,C as On,P as Kt}from"../chunks/CnRh8Bgk.js";import{g as vt,r as Sn}from"../chunks/yPd1epTY.js";import{p as qe}from"../chunks/Qml5ZyeD.js";import{t as ut}from"../chunks/BEJ5fU19.js";import{_ as Qt}from"../chunks/C1FmrZbK.js";import{b as Yt}from"../chunks/CmatTLDp.js";import{e as Jt,a as Xt,c as Ln}from"../chunks/BU7aeYn4.js";import{p as Ct}from"../chunks/DCT4VKzQ.js";import{A as Tn}from"../chunks/BiBGf8wR.js";import{g as An}from"../chunks/BmJonxL2.js";import"../chunks/B7r4ghJg.js";import{i as Cn}from"../chunks/rHISuZrQ.js";import{c as jt,a as Nn}from"../chunks/C3cmQ-ZQ.js";var Pn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rn(C){return C&&C.__esModule&&Object.prototype.hasOwnProperty.call(C,"default")?C.default:C}const In=globalThis.__sveltekit_1wsflj2.env;class Fn{constructor(O){Oe(this,"ws",null);Oe(this,"openHandler",null);Oe(this,"closeHandler",null);Oe(this,"errorHandler",null);Oe(this,"messageHandler",null);Oe(this,"retries",0);Oe(this,"maxRetries",5);Oe(this,"retryDelay",500);Oe(this,"retryTimeout",null);Oe(this,"isOpen",!1);Oe(this,"isDestroyed",!1);Oe(this,"agentsLoaded",!1);Oe(this,"init",()=>{if(!this.isOpen){this.agentsLoaded=!1,console.log(`Initializing websocket connection with [${this.wsUrl}]`);try{this.ws=new WebSocket(this.wsUrl)}catch{this.retryConnect();return}this.isDestroyed=!1,this.ws.onmessage=O=>{var E,_,h,x,u,t,y,L;const c=JSON.parse(O.data);c.channel==="error"?(E=this.errorHandler)==null||E.call(this,c.message):c.channel==="app-events"?(console.log("MSG:",c.event.type),c.event.type==="agents-loaded"&&(this.agentsLoaded=!0)):c.channel==="log"?console.log(`MSG: log [${c.message.severity}]`,c.message.message):c.channel==="api-call-trace"?console.log("MSG: api-call-trace",(_=c.trace)==null?void 0:_.operationName,(h=c.trace)==null?void 0:h.method,(x=c.trace)==null?void 0:x.path):c.channel==="conversational-trace"&&console.log("MSG: conversational-trace",(u=c.trace)==null?void 0:u.eventName,(t=c.trace)==null?void 0:t.role,(y=c.trace)==null?void 0:y.medium),(L=this.messageHandler)==null||L.call(this,c)},this.ws.onerror=O=>{var c;console.error("Websocket error:",O),(c=this.ws)==null||c.close(),this.retryConnect()},this.ws.onclose=()=>{console.log("Websocket closed"),this.isOpen=!1,this.retryConnect()},this.ws.onopen=()=>{var O;this.retries=0,this.isOpen=!0,this.retryTimeout&&clearTimeout(this.retryTimeout),(O=this.openHandler)==null||O.call(this),console.log("Websocket connected")}}});Oe(this,"destroy",()=>{var O;this.isDestroyed=!0,(O=this.ws)==null||O.close()});Oe(this,"onOpen",O=>{this.openHandler=O,this.isOpen&&O()});Oe(this,"onClose",O=>{this.closeHandler=O,this.isOpen||O()});Oe(this,"onError",O=>{this.errorHandler=O});Oe(this,"onMessage",O=>{this.messageHandler=O});Oe(this,"sendMessage",O=>{var c;O.channel,(c=this.ws)==null||c.send(JSON.stringify(O))});Oe(this,"isReady",()=>this.isOpen&&this.agentsLoaded);Oe(this,"retryConnect",()=>{var O,c;this.isDestroyed||(!this.isOpen&&this.retries<this.maxRetries?(this.retries++,this.init(),this.retryTimeout=setTimeout(this.retryConnect,this.retryDelay)):((O=this.errorHandler)==null||O.call(this,"WebSocket Error, please reload the browser"),(c=this.closeHandler)==null||c.call(this)))});this.wsUrl=O}}const Bn=In.PUBLIC_WS_HOST??"ws://localhost:8080",ot=new Fn(Bn);var Mn=me('<div class="flex h-full flex-col"><div class="h-full w-full"></div></div>');function Kn(C,O){gt(O,!0);let c=De(null),E=null,_=[],h=!1,x;It(async()=>{if(!x)return;Jt();const u=await Qt(()=>import("../chunks/DLQqXQ6R.js").then(t=>t.e),__vite__mapDeps([0,1,2]),import.meta.url);h||(Xt(u),Se(c,u.editor.create(x,{value:O.schema??"",language:"typescript",theme:"bosun-dark",lineNumbers:"off",automaticLayout:!0,minimap:{enabled:!1},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),E=N(c).getModel(),_.push(N(c).onDidChangeModelContent(()=>{if(!N(c))return;const t=N(c).getValue();t!==O.schema&&O.onChange(t)})))}),Gt(()=>{h=!0;for(const t of _)try{t.dispose()}catch{}_=[];const u=E;E=null;try{if(N(c)){try{N(c).setModel(null)}catch{}N(c).dispose()}}finally{Se(c,null)}try{u==null||u.dispose()}catch{}}),He(()=>{if(!N(c))return;const u=O.schema??"";N(c).getValue()!==u&&N(c).setValue(u)}),mt(C,{get class(){return`overflow-hidden ${O.class??""}`},children:(u,t)=>{var y=Mn(),L=se(y);Yt(L,V=>x=V,()=>x),re(y),oe(u,y)}}),yt()}function jn(C,O){return C.languages.registerCompletionItemProvider("markdown",{triggerCharacters:[" ","."],provideCompletionItems:(c,E)=>{const _=c.getValueInRange({startLineNumber:E.lineNumber,startColumn:1,endLineNumber:E.lineNumber,endColumn:E.column}),h=_.match(/\{%\s*(if|elif|for)\s+([^%]*)$/),x=_.match(/\{\{\s*([^}]*)$/);if(h||x){let t="";h?t=h[2].trim():x&&(t=x[1].trim());const{keys:y,lastPartLength:L}=Dn(O,t);return{suggestions:y.map(D=>({label:D,kind:C.languages.CompletionItemKind.Variable,insertText:D,range:{startLineNumber:E.lineNumber,endLineNumber:E.lineNumber,startColumn:E.column-L,endColumn:E.column}}))}}const u=_.match(/\{%\s*([^%]*)$/);if(u){const t=u[1].trim();return{suggestions:Rt(["if","elif","else","endif","for","endfor"],t).map((L,V)=>({label:L,kind:C.languages.CompletionItemKind.Keyword,insertText:L,sortText:String(V).padStart(2,"0"),range:{startLineNumber:E.lineNumber,endLineNumber:E.lineNumber,startColumn:E.column-t.length,endColumn:E.column}}))}}return{suggestions:[]}}})}function Dn(C,O){let c=C,E=[],_=0;if(O==="")E=Object.keys(C??{}),_=0;else if(O.includes(".")){const h=O.split("."),x=h.pop()||"";_=x.length;for(const u of h)if(c&&typeof c=="object"&&u in c)c=c[u];else{c=null;break}c&&typeof c=="object"&&(E=Rt(Object.keys(c),x))}else _=O.length,E=Rt(Object.keys(C??{}),O);return{keys:E,lastPartLength:_}}function Rt(C,O){return O?C.map((c,E)=>({value:c,index:E,match:Vn(c,O)})).filter(c=>c.match!==null).sort((c,E)=>c.match.kindRank!==E.match.kindRank?c.match.kindRank-E.match.kindRank:c.match.span!==E.match.span?c.match.span-E.match.span:c.match.gapCount!==E.match.gapCount?c.match.gapCount-E.match.gapCount:c.match.start!==E.match.start?c.match.start-E.match.start:c.index-E.index).map(c=>c.value):C}function Vn(C,O){const c=C.toLowerCase(),E=O.toLowerCase();if(!E)return null;if(c.startsWith(E))return{kindRank:0,start:0,span:E.length,gapCount:0};const _=c.indexOf(E);if(_!==-1)return{kindRank:Hn(C,_,E.length),start:_,span:E.length,gapCount:0};const h=Un(c,E);return h?{kindRank:4,start:h.start,span:h.span,gapCount:h.gapCount}:null}function Un(C,O){if(!C||!O)return null;let c=null,E=0;for(;E<C.length;){let _=E,h=0;for(;_<C.length&&h<O.length;)C[_]===O[h]&&(h+=1),_+=1;if(h!==O.length)break;const x=new Array(O.length);let u=_-1;for(let L=O.length-1;L>=0;L--){for(;u>=0&&C[u]!==O[L];)u-=1;if(u<0)return c;x[L]=u,u-=1}let t=0;for(let L=1;L<x.length;L++)t+=x[L]-x[L-1]-1;const y={start:x[0],span:x[x.length-1]-x[0]+1,gapCount:t};(!c||y.span<c.span||y.span===c.span&&y.gapCount<c.gapCount||y.span===c.span&&y.gapCount===c.gapCount&&y.start<c.start)&&(c=y),E=x[0]+1}return c}function Wn(C,O){return O<=0?!0:/[\s._-]/.test(C[O-1]??"")}function $n(C,O){return O>=C.length?!0:/[\s._-]/.test(C[O]??"")}function Hn(C,O,c){const E=Wn(C,O),_=$n(C,O+c);return E&&_?1:E?2:3}const Gn=/^(#{1,6})\s/,qn=/^\s*\{%\s*(if|elif|elseif|else|endif|for|endfor)\b/,zn={provideFoldingRanges(C){return Yn(C)}},Qn={provideFoldingRanges(C){return Jn(C)}};function Yn(C){const O=[],c=C.getLineCount(),E=[];for(let _=1;_<=c;_++){const h=Gn.exec(C.getLineContent(_));h&&E.push({line:_,level:h[1].length})}for(let _=0;_<E.length;_++){const{line:h,level:x}=E[_];let u=c;for(let t=_+1;t<E.length;t++)if(E[t].level<=x){u=E[t].line-1;break}u=Zt(C,h,u),u>h&&O.push({start:h,end:u})}return O}function Jn(C){const O=[],c=[],E=C.getLineCount();for(let _=1;_<=E;_++){const h=qn.exec(C.getLineContent(_));if(!h)continue;const x=h[1];if(x==="if"){c.push({kind:"if",branchStarts:[_],startLine:_});continue}if(x==="for"){c.push({kind:"for",branchStarts:[_],startLine:_});continue}if(x==="elif"||x==="elseif"||x==="else"){const u=Xn(c,"if");if(!u)continue;bt(O,C,u.branchStarts.at(-1)??u.startLine,_-1),u.branchStarts.push(_);continue}if(x==="endif"){const u=Dt(c,"if");if(!u)continue;bt(O,C,u.branchStarts.at(-1)??u.startLine,_-1);continue}if(x==="endfor"){const u=Dt(c,"for");if(!u)continue;bt(O,C,u.startLine,_-1)}}for(const _ of c){const h=_.kind==="if"?_.branchStarts.at(-1)??_.startLine:_.startLine;bt(O,C,h,E)}return O}function Xn(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C[c];return null}function Dt(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C.splice(c,1)[0];return null}function bt(C,O,c,E){const _=Zt(O,c,E);_>c&&C.push({start:c,end:_})}function Zt(C,O,c){let E=c;for(;E>O&&C.getLineContent(E).trim()==="";)E-=1;return E}const Zn=/\{%[-\s]*(if|elif|elseif|else|endif|for|endfor)\b/,er={provideDocumentHighlights(C,O){const c=nr(C),E=O.lineNumber,_=O.column;for(const h of c)for(const x of h)if(x.line===E&&_>=x.startColumn&&_<=x.endColumn)return h.map(u=>({range:{startLineNumber:u.line,startColumn:u.startColumn,endLineNumber:u.line,endColumn:u.endColumn},kind:1}));return[]}};function tr(C,O){const c=C.getLineContent(O),E=Zn.exec(c);if(!E)return null;const _=E[1],h=E.index+E[0].length-_.length;return{line:O,startColumn:h+1,endColumn:h+_.length+1,keyword:_}}function nr(C){const O=[],c=C.getLineCount(),E=[];for(let _=1;_<=c;_++){const h=tr(C,_);if(!h)continue;const x=h.keyword;if(x==="if"){E.push({kind:"if",tags:[h]});continue}if(x==="for"){E.push({kind:"for",tags:[h]});continue}if(x==="elif"||x==="elseif"||x==="else"){const u=rr(E,"if");u&&u.tags.push(h);continue}if(x==="endif"){const u=Vt(E,"if");u&&(u.tags.push(h),O.push(u.tags));continue}if(x==="endfor"){const u=Vt(E,"for");u&&(u.tags.push(h),O.push(u.tags))}}return O}function rr(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C[c];return null}function Vt(C,O){for(let c=C.length-1;c>=0;c--)if(C[c].kind===O)return C.splice(c,1)[0];return null}var en={exports:{}};/*! Browser bundle of nunjucks 3.2.4 */(function(C,O){(function(E,_){C.exports=_()})(typeof self<"u"?self:Pn,function(){return function(c){var E={};function _(h){if(E[h])return E[h].exports;var x=E[h]={i:h,l:!1,exports:{}};return c[h].call(x.exports,x,x.exports,_),x.l=!0,x.exports}return _.m=c,_.c=E,_.d=function(h,x,u){_.o(h,x)||Object.defineProperty(h,x,{configurable:!1,enumerable:!0,get:u})},_.n=function(h){var x=h&&h.__esModule?function(){return h.default}:function(){return h};return _.d(x,"a",x),x},_.o=function(h,x){return Object.prototype.hasOwnProperty.call(h,x)},_.p="",_(_.s=11)}([function(c,y,_){var h=Array.prototype,x=Object.prototype,u={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","\\":"&#92;"},t=/[&"'<>\\]/g,y=c.exports={};function L(p,k){return x.hasOwnProperty.call(p,k)}y.hasOwnProp=L;function V(p){return u[p]}function D(p,k,K){if(K.Update||(K=new y.TemplateError(K)),K.Update(p),!k){var M=K;K=new Error(M.message),K.name=M.name}return K}y._prettifyError=D;function B(p,k,K){var M,z;p instanceof Error&&(z=p,p=z.name+": "+z.message),Object.setPrototypeOf?(M=new Error(p),Object.setPrototypeOf(M,B.prototype)):(M=this,Object.defineProperty(M,"message",{enumerable:!1,writable:!0,value:p})),Object.defineProperty(M,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(M,this.constructor);var ae;if(z){var Z=Object.getOwnPropertyDescriptor(z,"stack");ae=Z&&(Z.get||function(){return Z.value}),ae||(ae=function(){return z.stack})}else{var fe=new Error(p).stack;ae=function(){return fe}}return Object.defineProperty(M,"stack",{get:function(){return ae.call(M)}}),Object.defineProperty(M,"cause",{value:z}),M.lineno=k,M.colno=K,M.firstUpdate=!0,M.Update=function(q){var X="("+(q||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?X+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(X+=" [Line "+this.lineno+"]")),X+=`
3
3
  `,this.firstUpdate&&(X+=" "),this.message=X+(this.message||""),this.firstUpdate=!1,this},M}Object.setPrototypeOf?Object.setPrototypeOf(B.prototype,Error.prototype):B.prototype=Object.create(Error.prototype,{constructor:{value:B}}),y.TemplateError=B;function S(p){return p.replace(t,V)}y.escape=S;function P(p){return x.toString.call(p)==="[object Function]"}y.isFunction=P;function e(p){return x.toString.call(p)==="[object Array]"}y.isArray=e;function r(p){return x.toString.call(p)==="[object String]"}y.isString=r;function i(p){return x.toString.call(p)==="[object Object]"}y.isObject=i;function g(p){return p?typeof p=="string"?p.split("."):[p]:[]}function f(p){var k=g(p);return function(M){for(var z=M,ae=0;ae<k.length;ae++){var Z=k[ae];if(L(z,Z))z=z[Z];else return}return z}}y.getAttrGetter=f;function m(p,k,K){for(var M={},z=P(k)?k:f(k),ae=0;ae<p.length;ae++){var Z=p[ae],fe=z(Z,ae);if(fe===void 0&&K===!0)throw new TypeError('groupby: attribute "'+k+'" resolved to undefined');(M[fe]||(M[fe]=[])).push(Z)}return M}y.groupBy=m;function n(p){return Array.prototype.slice.call(p)}y.toArray=n;function o(p){var k=[];if(!p)return k;for(var K=p.length,M=n(arguments).slice(1),z=-1;++z<K;)T(M,p[z])===-1&&k.push(p[z]);return k}y.without=o;function l(p,k){for(var K="",M=0;M<k;M++)K+=p;return K}y.repeat=l;function s(p,k,K){if(p!=null){if(h.forEach&&p.forEach===h.forEach)p.forEach(k,K);else if(p.length===+p.length)for(var M=0,z=p.length;M<z;M++)k.call(K,p[M],M,p)}}y.each=s;function a(p,k){var K=[];if(p==null)return K;if(h.map&&p.map===h.map)return p.map(k);for(var M=0;M<p.length;M++)K[K.length]=k(p[M],M);return p.length===+p.length&&(K.length=p.length),K}y.map=a;function d(p,k,K){var M=-1;function z(){M++,M<p.length?k(p[M],M,z,K):K()}z()}y.asyncIter=d;function v(p,k,K){var M=R(p||{}),z=M.length,ae=-1;function Z(){ae++;var fe=M[ae];ae<z?k(fe,p[fe],ae,z,Z):K()}Z()}y.asyncFor=v;function T(p,k,K){return Array.prototype.indexOf.call(p||[],k,K)}y.indexOf=T;function R(p){var k=[];for(var K in p)L(p,K)&&k.push(K);return k}y.keys=R;function I(p){return R(p).map(function(k){return[k,p[k]]})}y._entries=I;function F(p){return R(p).map(function(k){return p[k]})}y._values=F;function U(p,k){return p=p||{},R(k).forEach(function(K){p[K]=k[K]}),p}y._assign=y.extend=U;function w(p,k){if(e(k)||r(k))return k.indexOf(p)!==-1;if(i(k))return p in k;throw new Error('Cannot use "in" operator to search for "'+p+'" in unexpected types.')}y.inOperator=w},function(c,E,_){function h(r,i){for(var g=0;g<i.length;g++){var f=i[g];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(r,u(f.key),f)}}function x(r,i,g){return i&&h(r.prototype,i),Object.defineProperty(r,"prototype",{writable:!1}),r}function u(r){var i=t(r,"string");return typeof i=="symbol"?i:String(i)}function t(r,i){if(typeof r!="object"||r===null)return r;var g=r[Symbol.toPrimitive];if(g!==void 0){var f=g.call(r,i);if(typeof f!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function y(r,i){r.prototype=Object.create(i.prototype),r.prototype.constructor=r,L(r,i)}function L(r,i){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(f,m){return f.__proto__=m,f},L(r,i)}var V=_(16),D=_(0);function B(r,i){return typeof r!="function"||typeof i!="function"?i:function(){var f=this.parent;this.parent=r;var m=i.apply(this,arguments);return this.parent=f,m}}function S(r,i,g){g=g||{},D.keys(g).forEach(function(m){g[m]=B(r.prototype[m],g[m])});var f=function(m){y(n,m);function n(){return m.apply(this,arguments)||this}return x(n,[{key:"typename",get:function(){return i}}]),n}(r);return D._assign(f.prototype,g),f}var P=function(){function r(){this.init.apply(this,arguments)}var i=r.prototype;return i.init=function(){},r.extend=function(f,m){return typeof f=="object"&&(m=f,f="anonymous"),S(this,f,m)},x(r,[{key:"typename",get:function(){return this.constructor.name}}]),r}(),e=function(r){y(i,r);function i(){var f,m;return m=r.call(this)||this,(f=m).init.apply(f,arguments),m}var g=i.prototype;return g.init=function(){},i.extend=function(m,n){return typeof m=="object"&&(n=m,m="anonymous"),S(this,m,n)},x(i,[{key:"typename",get:function(){return this.constructor.name}}]),i}(V);c.exports={Obj:P,EmitterObj:e}},function(c,E,_){var h=_(0),x=Array.from,u=typeof Symbol=="function"&&Symbol.iterator&&typeof x=="function",t=function(){function a(v,T){this.variables=Object.create(null),this.parent=v,this.topLevel=!1,this.isolateWrites=T}var d=a.prototype;return d.set=function(T,R,I){var F=T.split("."),U=this.variables,w=this;if(I&&(w=this.resolve(F[0],!0))){w.set(T,R);return}for(var p=0;p<F.length-1;p++){var k=F[p];U[k]||(U[k]={}),U=U[k]}U[F[F.length-1]]=R},d.get=function(T){var R=this.variables[T];return R!==void 0?R:null},d.lookup=function(T){var R=this.parent,I=this.variables[T];return I!==void 0?I:R&&R.lookup(T)},d.resolve=function(T,R){var I=R&&this.isolateWrites?void 0:this.parent,F=this.variables[T];return F!==void 0?this:I&&I.resolve(T)},d.push=function(T){return new a(this,T)},d.pop=function(){return this.parent},a}();function y(a,d,v){return function(){for(var R=arguments.length,I=new Array(R),F=0;F<R;F++)I[F]=arguments[F];var U=B(I),w,p=D(I);if(U>a.length)w=I.slice(0,a.length),I.slice(w.length,U).forEach(function(M,z){z<d.length&&(p[d[z]]=M)}),w.push(p);else if(U<a.length){w=I.slice(0,U);for(var k=U;k<a.length;k++){var K=a[k];w.push(p[K]),delete p[K]}w.push(p)}else w=I;return v.apply(this,w)}}function L(a){return a.__keywords=!0,a}function V(a){return a&&Object.prototype.hasOwnProperty.call(a,"__keywords")}function D(a){var d=a.length;if(d){var v=a[d-1];if(V(v))return v}return{}}function B(a){var d=a.length;if(d===0)return 0;var v=a[d-1];return V(v)?d-1:d}function S(a){if(typeof a!="string")return a;this.val=a,this.length=a.length}S.prototype=Object.create(String.prototype,{length:{writable:!0,configurable:!0,value:0}}),S.prototype.valueOf=function(){return this.val},S.prototype.toString=function(){return this.val};function P(a,d){return a instanceof S?new S(d):d.toString()}function e(a){var d=typeof a;return d==="string"?new S(a):d!=="function"?a:function(T){var R=a.apply(this,arguments);return typeof R=="string"?new S(R):R}}function r(a,d){return a=a??"",d&&!(a instanceof S)&&(a=h.escape(a.toString())),a}function i(a,d,v){if(a==null)throw new h.TemplateError("attempted to output null or undefined value",d+1,v+1);return a}function g(a,d){if(a!=null)return typeof a[d]=="function"?function(){for(var v=arguments.length,T=new Array(v),R=0;R<v;R++)T[R]=arguments[R];return a[d].apply(a,T)}:a[d]}function f(a,d,v,T){if(a){if(typeof a!="function")throw new Error("Unable to call `"+d+"`, which is not a function")}else throw new Error("Unable to call `"+d+"`, which is undefined or falsey");return a.apply(v,T)}function m(a,d,v){var T=d.lookup(v);return T!==void 0?T:a.lookup(v)}function n(a,d,v){return a.lineno?a:new h.TemplateError(a,d,v)}function o(a,d,v,T){if(h.isArray(a)){var R=a.length;h.asyncIter(a,function(F,U,w){switch(d){case 1:v(F,U,R,w);break;case 2:v(F[0],F[1],U,R,w);break;case 3:v(F[0],F[1],F[2],U,R,w);break;default:F.push(U,R,w),v.apply(this,F)}},T)}else h.asyncFor(a,function(F,U,w,p,k){v(F,U,w,p,k)},T)}function l(a,d,v,T){var R=0,I,F;function U(z,ae){R++,F[z]=ae,R===I&&T(null,F.join(""))}if(h.isArray(a))if(I=a.length,F=new Array(I),I===0)T(null,"");else for(var w=0;w<a.length;w++){var p=a[w];switch(d){case 1:v(p,w,I,U);break;case 2:v(p[0],p[1],w,I,U);break;case 3:v(p[0],p[1],p[2],w,I,U);break;default:p.push(w,I,U),v.apply(this,p)}}else{var k=h.keys(a||{});if(I=k.length,F=new Array(I),I===0)T(null,"");else for(var K=0;K<k.length;K++){var M=k[K];v(M,a[M],K,I,U)}}}function s(a){return typeof a!="object"||a===null||h.isArray(a)?a:u&&Symbol.iterator in a?x(a):a}c.exports={Frame:t,makeMacro:y,makeKeywordArgs:L,numArgs:B,suppressValue:r,ensureDefined:i,memberLookup:g,contextOrFrameLookup:m,callWrap:f,handleError:n,isArray:h.isArray,keys:h.keys,SafeString:S,copySafeness:P,markSafe:e,asyncEach:o,asyncAll:l,inOperator:h.inOperator,fromIterator:s}},function(c,E,_){function h(te,ne){for(var ge=0;ge<ne.length;ge++){var he=ne[ge];he.enumerable=he.enumerable||!1,he.configurable=!0,"value"in he&&(he.writable=!0),Object.defineProperty(te,u(he.key),he)}}function x(te,ne,ge){return ne&&h(te.prototype,ne),Object.defineProperty(te,"prototype",{writable:!1}),te}function u(te){var ne=t(te,"string");return typeof ne=="symbol"?ne:String(ne)}function t(te,ne){if(typeof te!="object"||te===null)return te;var ge=te[Symbol.toPrimitive];if(ge!==void 0){var he=ge.call(te,ne);if(typeof he!="object")return he;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(te)}function y(te,ne){te.prototype=Object.create(ne.prototype),te.prototype.constructor=te,L(te,ne)}function L(te,ne){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(he,_e){return he.__proto__=_e,he},L(te,ne)}var V=_(1),D=V.Obj;function B(te,ne,ge){te instanceof ne&&ge.push(te),te instanceof S&&te.findAll(ne,ge)}var S=function(te){y(ne,te);function ne(){return te.apply(this,arguments)||this}var ge=ne.prototype;return ge.init=function(_e,ke){for(var Ie=arguments,We=this,Qe=arguments.length,St=new Array(Qe>2?Qe-2:0),nt=2;nt<Qe;nt++)St[nt-2]=arguments[nt];this.lineno=_e,this.colno=ke,this.fields.forEach(function(Lt,Tt){var dt=Ie[Tt+2];dt===void 0&&(dt=null),We[Lt]=dt})},ge.findAll=function(_e,ke){var Ie=this;return ke=ke||[],this instanceof e?this.children.forEach(function(We){return B(We,_e,ke)}):this.fields.forEach(function(We){return B(Ie[We],_e,ke)}),ke},ge.iterFields=function(_e){var ke=this;this.fields.forEach(function(Ie){_e(ke[Ie],Ie)})},ne}(D),P=function(te){y(ne,te);function ne(){return te.apply(this,arguments)||this}return x(ne,[{key:"typename",get:function(){return"Value"}},{key:"fields",get:function(){return["value"]}}]),ne}(S),e=function(te){y(ne,te);function ne(){return te.apply(this,arguments)||this}var ge=ne.prototype;return ge.init=function(_e,ke,Ie){te.prototype.init.call(this,_e,ke,Ie||[])},ge.addChild=function(_e){this.children.push(_e)},x(ne,[{key:"typename",get:function(){return"NodeList"}},{key:"fields",get:function(){return["children"]}}]),ne}(S),r=e.extend("Root"),i=P.extend("Literal"),g=P.extend("Symbol"),f=e.extend("Group"),m=e.extend("Array"),n=S.extend("Pair",{fields:["key","value"]}),o=e.extend("Dict"),l=S.extend("LookupVal",{fields:["target","val"]}),s=S.extend("If",{fields:["cond","body","else_"]}),a=s.extend("IfAsync"),d=S.extend("InlineIf",{fields:["cond","body","else_"]}),v=S.extend("For",{fields:["arr","name","body","else_"]}),T=v.extend("AsyncEach"),R=v.extend("AsyncAll"),I=S.extend("Macro",{fields:["name","args","body"]}),F=I.extend("Caller"),U=S.extend("Import",{fields:["template","target","withContext"]}),w=function(te){y(ne,te);function ne(){return te.apply(this,arguments)||this}var ge=ne.prototype;return ge.init=function(_e,ke,Ie,We,Qe){te.prototype.init.call(this,_e,ke,Ie,We||new e,Qe)},x(ne,[{key:"typename",get:function(){return"FromImport"}},{key:"fields",get:function(){return["template","names","withContext"]}}]),ne}(S),p=S.extend("FunCall",{fields:["name","args"]}),k=p.extend("Filter"),K=k.extend("FilterAsync",{fields:["name","args","symbol"]}),M=o.extend("KeywordArgs"),z=S.extend("Block",{fields:["name","body"]}),ae=S.extend("Super",{fields:["blockName","symbol"]}),Z=S.extend("TemplateRef",{fields:["template"]}),fe=Z.extend("Extends"),be=S.extend("Include",{fields:["template","ignoreMissing"]}),q=S.extend("Set",{fields:["targets","value"]}),X=S.extend("Switch",{fields:["expr","cases","default"]}),$=S.extend("Case",{fields:["cond","body"]}),Y=e.extend("Output"),J=S.extend("Capture",{fields:["body"]}),ce=i.extend("TemplateData"),pe=S.extend("UnaryOp",{fields:["target"]}),de=S.extend("BinOp",{fields:["left","right"]}),Le=de.extend("In"),b=de.extend("Is"),j=de.extend("Or"),G=de.extend("And"),H=pe.extend("Not"),ee=de.extend("Add"),ie=de.extend("Concat"),ve=de.extend("Sub"),ue=de.extend("Mul"),xe=de.extend("Div"),Be=de.extend("FloorDiv"),Me=de.extend("Mod"),Ue=de.extend("Pow"),ft=pe.extend("Neg"),pt=pe.extend("Pos"),kt=S.extend("Compare",{fields:["expr","ops"]}),_t=S.extend("CompareOperand",{fields:["expr","type"]}),ht=S.extend("CallExtension",{init:function(ne,ge,he,_e){this.parent(),this.extName=ne.__name||ne,this.prop=ge,this.args=he||new e,this.contentArgs=_e||[],this.autoescape=ne.autoescape},fields:["extName","prop","args","contentArgs"]}),Ot=ht.extend("CallExtensionAsync");function ze(te,ne,ge){var he=te.split(`
4
4
  `);he.forEach(function(_e,ke){_e&&(ge&&ke>0||!ge)&&process.stdout.write(" ".repeat(ne));var Ie=ke===he.length-1?"":`
5
5
  `;process.stdout.write(""+_e+Ie)})}function et(te,ne){if(ne=ne||0,ze(te.typename+": ",ne),te instanceof e)ze(`
@@ -1 +1 @@
1
- import"../chunks/CWj6FrbW.js";import{o as Mt,a as Ut,s as w}from"../chunks/CB3MYTwM.js";import{e as zt,p as Bt,i as d,j as be,k as qt,h as t,u as q,l as r,f as $,m as Ot,d as o,s as l,t as N,b as v,c as Rt,a as J,g as E,$ as Gt,n as D,r as s,q as Ke}from"../chunks/BRMnbBOX.js";import{i as O}from"../chunks/BFchB-2I.js";import{e as Xe,i as Ye}from"../chunks/D_iTaAhh.js";import{b as Ze,c as et}from"../chunks/3HVf2z3Q.js";import{s as Qt}from"../chunks/DMtzEpj5.js";import{p as Vt}from"../chunks/DCT4VKzQ.js";import{g as S}from"../chunks/CYF48L9_.js";import{p as I}from"../chunks/2QZUjt52.js";import{B as K}from"../chunks/C8-d_pGN.js";import{I as Wt}from"../chunks/Bb9ZigkD.js";import{I as Ht}from"../chunks/DT74mAuZ.js";import{m as Jt}from"../chunks/ddC1NP9R.js";import{T as Kt,p as at,g as Xt}from"../chunks/8mHyIC1B.js";import{T as Yt,a as tt}from"../chunks/C1rQHXql.js";import{A as Zt}from"../chunks/BiBGf8wR.js";import{g as ea}from"../chunks/BmJonxL2.js";import{t as ta}from"../chunks/BEJ5fU19.js";async function aa(u,g,m,k,f,x){const p=u.target.value;r(g,p,!0),at(p),m.setSourceId(p),r(k,null),await S(f()),await x()}function ra(u,g,m){const k=u.target.value;r(g,k,!0),r(m,parseInt(t(g),10)||20,!0)}async function sa(u,g,m,k,f){u==null||u.preventDefault(),u==null||u.stopPropagation(),r(g,""),r(m,[],!0),r(k,null),await f()}var oa=$("<!> <!>",1),na=$("<option> </option>"),la=$("<option> </option>"),ia=$('<button type="button" aria-label="Clear search" class="absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded p-1 text-rc-gray-200 hover:bg-rc-gray-600 hover:text-rc-gray-100 focus:outline-none"><!></button>'),ca=$('<p class="py-8 text-center text-rc-gray-200">Loading...</p>'),da=$('<p class="py-8 text-center text-rc-gray-300">No conversations found</p>'),va=(u,g,m)=>g(t(m),u),ua=$('<span class="text-rc-gray-200">, Agent Id:</span> <span class="text-rc-green-200"> </span>',1),pa=$('<li><div class="flex w-full flex-col gap-2"><div class="flex w-full items-center justify-between"><div class="text-gray-300"> </div> <div class="flex items-center gap-2"><span class="text-xs text-rc-gray-300"> </span> <span class="font-semibold text-rc-gray-100"> </span></div></div> <div class="flex items-center justify-between gap-4"><div class="text-sm"><span class="text-rc-gray-200">Conversation Id:</span> <span class="text-rc-green-200"> </span> <!></div> <p class="text-sm text-gray-400"> </p></div></div></li>'),fa=$('<ul class="space-y-2"></ul>'),ga=u=>u.stopPropagation(),ma=$('<div class="flex h-screen"><!> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none flex-col bg-rc-gray-980"><div class="flex items-center justify-center"><!></div> <div class="flex flex-wrap items-center gap-4"><div class="flex-1"><label class="block"><div class="flex gap-2"><select class="select svelte-1uk1thp" aria-label="Telescope source"><!></select> <div class="relative"><!><!></div> <!></div></label></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Sort:</div> <!></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Page size:</div> <select class="rounded-sm border border-rc-gray-300 bg-rc-gray-700 p-2 pr-8 text-rc-gray-100"><option>5</option><option>10</option><option>20</option><option>50</option></select></div> <div class="flex items-center gap-3"><div class="flex items-center gap-2"><!> <!> <div class="text-sm text-rc-gray-200"> </div></div></div> <div class="ml-auto whitespace-nowrap text-sm"><span class="text-gray-400">API Mode:</span> <span class="font-semibold text-rc-green-200"> </span></div></div></nav> <main class="flex flex-1 overflow-hidden"><div class="flex h-full w-1/3 flex-col"><div class="flex-none border-b border-rc-gray-300/40 p-4"><h2 class="text-lg font-semibold text-rc-gray-100">Conversations</h2></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll px-3 py-4"><!></div></div> <div class="flex h-full w-2/3 flex-col bg-rc-gray-980"><!></div></main></div></div>');function ja(u,g){Bt(g,!0);const m=new Kt(fetch);let k=d(be([])),f=d(void 0),x=d(null);const p=q(()=>(I.url.searchParams.get("agent")??"").trim());let F=d(""),X=d(20),Y=d("20"),R=d(!0),A=d(be([])),P=d(null),G=d(!1),Z=d(null),we=d(0),C=d(be([])),j=d(""),Q=d(!1),ee=d(null),Ie=d(!1),te=d(null),$e=Vt(g,"useMock",3,!1);const{onError:Ae}=ea();function rt(e){return new Date(e).toLocaleString()}function st(e){const a=Math.floor(e/60),n=e%60;return`${a}:${String(n).padStart(2,"0")}`}function Se(e=t(p)){const a=new URLSearchParams;e&&a.set("agent",e);const n=a.toString();return n?`?${n}`:""}function M(e=t(p)){return`${t(Pe)}/conversations${Se(e)}`}function ot(e,a=t(p)){return`${t(Pe)}/conversations/${e}/traces${Se(a)}`}async function nt(e,a=t(X),n,c){return $e()?Jt.fetchConversations(a,e,n??void 0):m.getConversations({phoneNumber:e,agentId:c,limit:Number(a),lastConversationId:n??void 0})}async function U(){r(A,[],!0),r(P,null),await ae()}async function lt(){r(Q,!0),r(ee,null);try{const e=await fetch("/traces/api/sources");if(!e.ok)throw new Error(`Failed to load sources (${e.status})`);const a=await e.json(),n=Array.isArray(a)?a:[];if(r(C,n.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string"),!0),!t(C).length)throw new Error("No sources returned");const c=Xt(),y=c&&t(C).some(i=>i.id===c)?c:t(C)[0].id;r(j,y,!0),at(y),m.setSourceId(y)}catch(e){console.error("Failed to load Telescope sources:",e),r(ee,(e==null?void 0:e.message)??"Failed to load Telescope sources",!0),r(C,[],!0),r(j,""),m.setSourceId(void 0)}finally{r(Q,!1)}}async function it(){try{r(k,await ta.agents.list.query(),!0)}catch(e){const a=e instanceof Error?e.message:e?String(e):"Unknown error";console.error("Failed to load agents:",e),Ae(`Failed to load agents: ${a}`)}}async function ae(){r(G,!0),r(Z,null);try{const e=await nt(t(F)||void 0,t(X),t(P)??void 0,t(p)||void 0);let a=Array.isArray(e.items)?e.items.slice():[];a=a.filter(n=>!!(n!=null&&n.phoneNumber)),r(f,{limit:e.limit,items:a,lastConversationId:e.lastConversationId},!0),r(we,a.length,!0),r(P,e.lastConversationId??null,!0),r(G,!1)}catch(e){r(G,!1),r(Z,e.message||"Unknown error",!0),Ae(`Error loading conversations: ${t(Z)}`),console.error("Load page error:",e)}}async function ct(){var e;(e=t(f))!=null&&e.lastConversationId&&(t(A).push(t(f).lastConversationId),r(P,t(f).lastConversationId,!0),await ae())}async function dt(){t(A).length&&(t(A).pop(),r(P,t(A).length?t(A)[t(A).length-1]:null,!0),await ae())}function vt(){var e;r(R,!t(R)),(e=t(f))!=null&&e.items&&t(f).items.sort((a,n)=>t(R)?n.createdAt-a.createdAt:a.createdAt-n.createdAt)}async function ut(e,a){var c;if(a==null||a.stopPropagation(),I.params.conversationId&&I.params.conversationId===e.conversationId||!I.params.conversationId&&((c=t(x))==null?void 0:c.conversationId)===e.conversationId){r(x,null),await S(M());return}r(x,e,!0),await S(ot(e.conversationId))}async function ke(){await U()}const Ce=q(()=>{const e=I.url.pathname.split("/")[1];return e==="traces"?"view":e}),Pe=q(()=>I.url.pathname.startsWith("/view")?"/view":"/traces");function pt({value:e}){if(e!==t(Ce)){if(e==="edit")return t(p)?S(`/edit/${encodeURIComponent(t(p))}/roleplay`):S("/edit");if(e==="view")return S(M());S("/"+e)}}async function ft(e,a){a==null||a.stopPropagation(),e!==t(p)&&(r(x,null),await S(M(e)))}async function gt(e){e==null||e.stopPropagation(),t(p)&&(r(x,null),await S(M("")))}qt(()=>{const e=t(p);t(Ie)&&e!==t(te)&&(r(te,e,!0),r(x,null),U())}),Mt(()=>{(async()=>(await Promise.all([it(),lt()]),await U(),r(te,t(p),!0),r(Ie,!0)))()});var re=ma();Ot(e=>{Gt.title="Bosun: Telescope"});var Te=o(re);Zt(Te,{get agents(){return t(k)},get currentAgent(){return t(p)},onAgentClick:ft,showAllAgentsOption:!0,onAllAgentsClick:gt,className:"flex-none"});var Le=l(Te,2),se=o(Le),oe=o(se),mt=o(oe);Yt(mt,{get value(){return t(Ce)},ariaLabel:"Top tabs",onChange:pt,children:(e,a)=>{var n=oa(),c=J(n);tt(c,{value:"edit",children:(i,_)=>{D();var b=E("Edit");v(i,b)},$$slots:{default:!0}});var y=l(c,2);tt(y,{value:"view",children:(i,_)=>{D();var b=E("View");v(i,b)},$$slots:{default:!0}}),v(e,n)},$$slots:{default:!0}}),s(oe);var Ne=l(oe,2),ne=o(Ne),Ee=o(ne),De=o(Ee),T=o(De);T.__change=[aa,j,m,x,M,U];var _t=o(T);{var ht=e=>{var a=Ke(),n=J(a);Xe(n,17,()=>t(C),Ye,(c,y)=>{var i=na(),_=o(i,!0);s(i);var b={};N(()=>{w(_,t(y).label),b!==(b=t(y).id)&&(i.value=(i.__value=t(y).id)??"")}),v(c,i)}),v(e,a)},xt=e=>{var a=la(),n=o(a,!0);s(a),a.value=a.__value="",N(()=>w(n,t(Q)?"Loading…":"No sources")),v(e,a)};O(_t,e=>{t(C).length?e(ht):e(xt,!1)})}s(T);var le=l(T,2),Fe=o(le);Ht(Fe,{class:"w-56 rounded-r-none !border !border-rc-gray-500 !p-2 !pr-8 hover:border-rc-gray-400",placeholder:"Search by phone...",onkeydown:e=>{e.key==="Enter"&&(e.preventDefault(),e.stopPropagation(),ke())},get value(){return t(F)},set value(e){r(F,e,!0)}});var yt=l(Fe);{var bt=e=>{var a=ia();a.__click=[sa,F,A,P,U];var n=o(a);Wt(n,{name:"close",width:18,height:18}),s(a),v(e,a)};O(yt,e=>{t(F)&&e(bt)})}s(le);var wt=l(le,2);K(wt,{onclick:ke,children:(e,a)=>{D();var n=E("Search");v(e,n)},$$slots:{default:!0}}),s(De),s(Ee),s(ne);var ie=l(ne,2),It=l(o(ie),2);K(It,{onclick:vt,children:(e,a)=>{D();var n=E();N(()=>w(n,t(R)?"Newest first":"Oldest first")),v(e,n)},$$slots:{default:!0}}),s(ie);var ce=l(ie,2),V=l(o(ce),2);V.__change=[ra,Y,X];var de=o(V);de.value=de.__value="5";var ve=l(de);ve.value=ve.__value="10";var ue=l(ve);ue.value=ue.__value="20";var je=l(ue);je.value=je.__value="50",s(V),s(ce);var pe=l(ce,2),Me=o(pe),Ue=o(Me);{let e=q(()=>t(A).length===0&&!t(P));K(Ue,{onclick:dt,get disabled(){return t(e)},children:(a,n)=>{D();var c=E("Prev");v(a,c)},$$slots:{default:!0}})}var ze=l(Ue,2);{let e=q(()=>{var a;return!((a=t(f))!=null&&a.items.length)});K(ze,{onclick:ct,get disabled(){return t(e)},children:(a,n)=>{D();var c=E("Next");v(a,c)},$$slots:{default:!0}})}var Be=l(ze,2),$t=o(Be);s(Be),s(Me),s(pe);var qe=l(pe,2),Oe=l(o(qe),2),At=o(Oe,!0);s(Oe),s(qe),s(Ne),s(se);var Re=l(se,2),fe=o(Re),Ge=l(o(fe),2),St=o(Ge);{var kt=e=>{var a=ca();v(e,a)},Ct=e=>{var a=Ke(),n=J(a);{var c=i=>{var _=da();v(i,_)},y=i=>{var _=fa();Xe(_,21,()=>t(f).items,Ye,(b,h)=>{var L=pa();L.__click=[va,ut,h];var Qe=o(L),me=o(Qe),_e=o(me),Tt=o(_e,!0);s(_e);var Ve=l(_e,2),he=o(Ve),Lt=o(he,!0);s(he);var We=l(he,2),Nt=o(We,!0);s(We),s(Ve),s(me);var He=l(me,2),xe=o(He),ye=l(o(xe),2),Et=o(ye,!0);s(ye);var Dt=l(ye,2);{var Ft=z=>{var W=ua(),B=l(J(W),2),H=o(B,!0);s(B),N(()=>w(H,t(h).agentId)),v(z,W)};O(Dt,z=>{!t(p)&&t(h).agentId&&z(Ft)})}s(xe);var Je=l(xe,2),jt=o(Je);s(Je),s(He),s(Qe),s(L),N((z,W)=>{var B,H;Qt(L,1,`cursor-pointer rounded-lg p-3 transition-colors ${(I.params.conversationId?t(h).conversationId===I.params.conversationId:t(h).conversationId===((B=t(x))==null?void 0:B.conversationId))?"bg-rc-gray-600":"bg-rc-gray-700 hover:bg-rc-gray-650"}`,"svelte-1uk1thp"),et(L,"aria-selected",I.params.conversationId?t(h).conversationId===I.params.conversationId:t(h).conversationId===((H=t(x))==null?void 0:H.conversationId)),w(Tt,z),w(Lt,t(h).medium),w(Nt,t(h).phoneNumber),w(Et,t(h).conversationId),w(jt,`Duration: ${W??""}`)},[()=>rt(t(h).createdAt),()=>st(t(h).duration??0)]),v(b,L)}),s(_),v(i,_)};O(n,i=>{var _,b;(b=(_=t(f))==null?void 0:_.items)!=null&&b.length?i(y,!1):i(c)},!0)}v(e,a)};O(St,e=>{t(G)?e(kt):e(Ct,!1)})}s(Ge),s(fe);var ge=l(fe,2);ge.__click=[ga];var Pt=o(ge);Ut(Pt,()=>g.children),s(ge),s(Re),s(Le),s(re),N(()=>{T.disabled=t(Q)||!t(C).length,et(T,"title",t(ee)??"Telescope source"),w($t,`Items: ${t(we)??""}`),w(At,$e()?"Mock (local)":"Live")}),Ze(T,()=>t(j),e=>r(j,e)),Ze(V,()=>t(Y),e=>r(Y,e)),v(u,re),Rt()}zt(["change","click"]);export{ja as component};
1
+ import"../chunks/CWj6FrbW.js";import{o as Mt,a as Ut,s as w}from"../chunks/CB3MYTwM.js";import{e as zt,p as Bt,i as d,j as be,k as qt,h as t,u as q,l as r,f as $,m as Ot,d as o,s as l,t as N,b as v,c as Rt,a as J,g as E,$ as Gt,n as D,r as s,q as Ke}from"../chunks/BRMnbBOX.js";import{i as O}from"../chunks/BFchB-2I.js";import{e as Xe,i as Ye}from"../chunks/D_iTaAhh.js";import{b as Ze,c as et}from"../chunks/3HVf2z3Q.js";import{s as Qt}from"../chunks/DMtzEpj5.js";import{p as Vt}from"../chunks/DCT4VKzQ.js";import{g as S}from"../chunks/yPd1epTY.js";import{p as I}from"../chunks/Qml5ZyeD.js";import{B as K}from"../chunks/C8-d_pGN.js";import{I as Wt}from"../chunks/Bb9ZigkD.js";import{I as Ht}from"../chunks/DT74mAuZ.js";import{m as Jt}from"../chunks/ddC1NP9R.js";import{T as Kt,p as at,g as Xt}from"../chunks/8mHyIC1B.js";import{T as Yt,a as tt}from"../chunks/C1rQHXql.js";import{A as Zt}from"../chunks/BiBGf8wR.js";import{g as ea}from"../chunks/BmJonxL2.js";import{t as ta}from"../chunks/BEJ5fU19.js";async function aa(u,g,m,k,f,x){const p=u.target.value;r(g,p,!0),at(p),m.setSourceId(p),r(k,null),await S(f()),await x()}function ra(u,g,m){const k=u.target.value;r(g,k,!0),r(m,parseInt(t(g),10)||20,!0)}async function sa(u,g,m,k,f){u==null||u.preventDefault(),u==null||u.stopPropagation(),r(g,""),r(m,[],!0),r(k,null),await f()}var oa=$("<!> <!>",1),na=$("<option> </option>"),la=$("<option> </option>"),ia=$('<button type="button" aria-label="Clear search" class="absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded p-1 text-rc-gray-200 hover:bg-rc-gray-600 hover:text-rc-gray-100 focus:outline-none"><!></button>'),ca=$('<p class="py-8 text-center text-rc-gray-200">Loading...</p>'),da=$('<p class="py-8 text-center text-rc-gray-300">No conversations found</p>'),va=(u,g,m)=>g(t(m),u),ua=$('<span class="text-rc-gray-200">, Agent Id:</span> <span class="text-rc-green-200"> </span>',1),pa=$('<li><div class="flex w-full flex-col gap-2"><div class="flex w-full items-center justify-between"><div class="text-gray-300"> </div> <div class="flex items-center gap-2"><span class="text-xs text-rc-gray-300"> </span> <span class="font-semibold text-rc-gray-100"> </span></div></div> <div class="flex items-center justify-between gap-4"><div class="text-sm"><span class="text-rc-gray-200">Conversation Id:</span> <span class="text-rc-green-200"> </span> <!></div> <p class="text-sm text-gray-400"> </p></div></div></li>'),fa=$('<ul class="space-y-2"></ul>'),ga=u=>u.stopPropagation(),ma=$('<div class="flex h-screen"><!> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none flex-col bg-rc-gray-980"><div class="flex items-center justify-center"><!></div> <div class="flex flex-wrap items-center gap-4"><div class="flex-1"><label class="block"><div class="flex gap-2"><select class="select svelte-1uk1thp" aria-label="Telescope source"><!></select> <div class="relative"><!><!></div> <!></div></label></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Sort:</div> <!></div> <div class="hidden items-center gap-2"><div class="text-rc-gray-200">Page size:</div> <select class="rounded-sm border border-rc-gray-300 bg-rc-gray-700 p-2 pr-8 text-rc-gray-100"><option>5</option><option>10</option><option>20</option><option>50</option></select></div> <div class="flex items-center gap-3"><div class="flex items-center gap-2"><!> <!> <div class="text-sm text-rc-gray-200"> </div></div></div> <div class="ml-auto whitespace-nowrap text-sm"><span class="text-gray-400">API Mode:</span> <span class="font-semibold text-rc-green-200"> </span></div></div></nav> <main class="flex flex-1 overflow-hidden"><div class="flex h-full w-1/3 flex-col"><div class="flex-none border-b border-rc-gray-300/40 p-4"><h2 class="text-lg font-semibold text-rc-gray-100">Conversations</h2></div> <div class="rc-scroll min-h-0 flex-1 overflow-scroll px-3 py-4"><!></div></div> <div class="flex h-full w-2/3 flex-col bg-rc-gray-980"><!></div></main></div></div>');function ja(u,g){Bt(g,!0);const m=new Kt(fetch);let k=d(be([])),f=d(void 0),x=d(null);const p=q(()=>(I.url.searchParams.get("agent")??"").trim());let F=d(""),X=d(20),Y=d("20"),R=d(!0),A=d(be([])),P=d(null),G=d(!1),Z=d(null),we=d(0),C=d(be([])),j=d(""),Q=d(!1),ee=d(null),Ie=d(!1),te=d(null),$e=Vt(g,"useMock",3,!1);const{onError:Ae}=ea();function rt(e){return new Date(e).toLocaleString()}function st(e){const a=Math.floor(e/60),n=e%60;return`${a}:${String(n).padStart(2,"0")}`}function Se(e=t(p)){const a=new URLSearchParams;e&&a.set("agent",e);const n=a.toString();return n?`?${n}`:""}function M(e=t(p)){return`${t(Pe)}/conversations${Se(e)}`}function ot(e,a=t(p)){return`${t(Pe)}/conversations/${e}/traces${Se(a)}`}async function nt(e,a=t(X),n,c){return $e()?Jt.fetchConversations(a,e,n??void 0):m.getConversations({phoneNumber:e,agentId:c,limit:Number(a),lastConversationId:n??void 0})}async function U(){r(A,[],!0),r(P,null),await ae()}async function lt(){r(Q,!0),r(ee,null);try{const e=await fetch("/traces/api/sources");if(!e.ok)throw new Error(`Failed to load sources (${e.status})`);const a=await e.json(),n=Array.isArray(a)?a:[];if(r(C,n.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string"),!0),!t(C).length)throw new Error("No sources returned");const c=Xt(),y=c&&t(C).some(i=>i.id===c)?c:t(C)[0].id;r(j,y,!0),at(y),m.setSourceId(y)}catch(e){console.error("Failed to load Telescope sources:",e),r(ee,(e==null?void 0:e.message)??"Failed to load Telescope sources",!0),r(C,[],!0),r(j,""),m.setSourceId(void 0)}finally{r(Q,!1)}}async function it(){try{r(k,await ta.agents.list.query(),!0)}catch(e){const a=e instanceof Error?e.message:e?String(e):"Unknown error";console.error("Failed to load agents:",e),Ae(`Failed to load agents: ${a}`)}}async function ae(){r(G,!0),r(Z,null);try{const e=await nt(t(F)||void 0,t(X),t(P)??void 0,t(p)||void 0);let a=Array.isArray(e.items)?e.items.slice():[];a=a.filter(n=>!!(n!=null&&n.phoneNumber)),r(f,{limit:e.limit,items:a,lastConversationId:e.lastConversationId},!0),r(we,a.length,!0),r(P,e.lastConversationId??null,!0),r(G,!1)}catch(e){r(G,!1),r(Z,e.message||"Unknown error",!0),Ae(`Error loading conversations: ${t(Z)}`),console.error("Load page error:",e)}}async function ct(){var e;(e=t(f))!=null&&e.lastConversationId&&(t(A).push(t(f).lastConversationId),r(P,t(f).lastConversationId,!0),await ae())}async function dt(){t(A).length&&(t(A).pop(),r(P,t(A).length?t(A)[t(A).length-1]:null,!0),await ae())}function vt(){var e;r(R,!t(R)),(e=t(f))!=null&&e.items&&t(f).items.sort((a,n)=>t(R)?n.createdAt-a.createdAt:a.createdAt-n.createdAt)}async function ut(e,a){var c;if(a==null||a.stopPropagation(),I.params.conversationId&&I.params.conversationId===e.conversationId||!I.params.conversationId&&((c=t(x))==null?void 0:c.conversationId)===e.conversationId){r(x,null),await S(M());return}r(x,e,!0),await S(ot(e.conversationId))}async function ke(){await U()}const Ce=q(()=>{const e=I.url.pathname.split("/")[1];return e==="traces"?"view":e}),Pe=q(()=>I.url.pathname.startsWith("/view")?"/view":"/traces");function pt({value:e}){if(e!==t(Ce)){if(e==="edit")return t(p)?S(`/edit/${encodeURIComponent(t(p))}/roleplay`):S("/edit");if(e==="view")return S(M());S("/"+e)}}async function ft(e,a){a==null||a.stopPropagation(),e!==t(p)&&(r(x,null),await S(M(e)))}async function gt(e){e==null||e.stopPropagation(),t(p)&&(r(x,null),await S(M("")))}qt(()=>{const e=t(p);t(Ie)&&e!==t(te)&&(r(te,e,!0),r(x,null),U())}),Mt(()=>{(async()=>(await Promise.all([it(),lt()]),await U(),r(te,t(p),!0),r(Ie,!0)))()});var re=ma();Ot(e=>{Gt.title="Bosun: Telescope"});var Te=o(re);Zt(Te,{get agents(){return t(k)},get currentAgent(){return t(p)},onAgentClick:ft,showAllAgentsOption:!0,onAllAgentsClick:gt,className:"flex-none"});var Le=l(Te,2),se=o(Le),oe=o(se),mt=o(oe);Yt(mt,{get value(){return t(Ce)},ariaLabel:"Top tabs",onChange:pt,children:(e,a)=>{var n=oa(),c=J(n);tt(c,{value:"edit",children:(i,_)=>{D();var b=E("Edit");v(i,b)},$$slots:{default:!0}});var y=l(c,2);tt(y,{value:"view",children:(i,_)=>{D();var b=E("View");v(i,b)},$$slots:{default:!0}}),v(e,n)},$$slots:{default:!0}}),s(oe);var Ne=l(oe,2),ne=o(Ne),Ee=o(ne),De=o(Ee),T=o(De);T.__change=[aa,j,m,x,M,U];var _t=o(T);{var ht=e=>{var a=Ke(),n=J(a);Xe(n,17,()=>t(C),Ye,(c,y)=>{var i=na(),_=o(i,!0);s(i);var b={};N(()=>{w(_,t(y).label),b!==(b=t(y).id)&&(i.value=(i.__value=t(y).id)??"")}),v(c,i)}),v(e,a)},xt=e=>{var a=la(),n=o(a,!0);s(a),a.value=a.__value="",N(()=>w(n,t(Q)?"Loading…":"No sources")),v(e,a)};O(_t,e=>{t(C).length?e(ht):e(xt,!1)})}s(T);var le=l(T,2),Fe=o(le);Ht(Fe,{class:"w-56 rounded-r-none !border !border-rc-gray-500 !p-2 !pr-8 hover:border-rc-gray-400",placeholder:"Search by phone...",onkeydown:e=>{e.key==="Enter"&&(e.preventDefault(),e.stopPropagation(),ke())},get value(){return t(F)},set value(e){r(F,e,!0)}});var yt=l(Fe);{var bt=e=>{var a=ia();a.__click=[sa,F,A,P,U];var n=o(a);Wt(n,{name:"close",width:18,height:18}),s(a),v(e,a)};O(yt,e=>{t(F)&&e(bt)})}s(le);var wt=l(le,2);K(wt,{onclick:ke,children:(e,a)=>{D();var n=E("Search");v(e,n)},$$slots:{default:!0}}),s(De),s(Ee),s(ne);var ie=l(ne,2),It=l(o(ie),2);K(It,{onclick:vt,children:(e,a)=>{D();var n=E();N(()=>w(n,t(R)?"Newest first":"Oldest first")),v(e,n)},$$slots:{default:!0}}),s(ie);var ce=l(ie,2),V=l(o(ce),2);V.__change=[ra,Y,X];var de=o(V);de.value=de.__value="5";var ve=l(de);ve.value=ve.__value="10";var ue=l(ve);ue.value=ue.__value="20";var je=l(ue);je.value=je.__value="50",s(V),s(ce);var pe=l(ce,2),Me=o(pe),Ue=o(Me);{let e=q(()=>t(A).length===0&&!t(P));K(Ue,{onclick:dt,get disabled(){return t(e)},children:(a,n)=>{D();var c=E("Prev");v(a,c)},$$slots:{default:!0}})}var ze=l(Ue,2);{let e=q(()=>{var a;return!((a=t(f))!=null&&a.items.length)});K(ze,{onclick:ct,get disabled(){return t(e)},children:(a,n)=>{D();var c=E("Next");v(a,c)},$$slots:{default:!0}})}var Be=l(ze,2),$t=o(Be);s(Be),s(Me),s(pe);var qe=l(pe,2),Oe=l(o(qe),2),At=o(Oe,!0);s(Oe),s(qe),s(Ne),s(se);var Re=l(se,2),fe=o(Re),Ge=l(o(fe),2),St=o(Ge);{var kt=e=>{var a=ca();v(e,a)},Ct=e=>{var a=Ke(),n=J(a);{var c=i=>{var _=da();v(i,_)},y=i=>{var _=fa();Xe(_,21,()=>t(f).items,Ye,(b,h)=>{var L=pa();L.__click=[va,ut,h];var Qe=o(L),me=o(Qe),_e=o(me),Tt=o(_e,!0);s(_e);var Ve=l(_e,2),he=o(Ve),Lt=o(he,!0);s(he);var We=l(he,2),Nt=o(We,!0);s(We),s(Ve),s(me);var He=l(me,2),xe=o(He),ye=l(o(xe),2),Et=o(ye,!0);s(ye);var Dt=l(ye,2);{var Ft=z=>{var W=ua(),B=l(J(W),2),H=o(B,!0);s(B),N(()=>w(H,t(h).agentId)),v(z,W)};O(Dt,z=>{!t(p)&&t(h).agentId&&z(Ft)})}s(xe);var Je=l(xe,2),jt=o(Je);s(Je),s(He),s(Qe),s(L),N((z,W)=>{var B,H;Qt(L,1,`cursor-pointer rounded-lg p-3 transition-colors ${(I.params.conversationId?t(h).conversationId===I.params.conversationId:t(h).conversationId===((B=t(x))==null?void 0:B.conversationId))?"bg-rc-gray-600":"bg-rc-gray-700 hover:bg-rc-gray-650"}`,"svelte-1uk1thp"),et(L,"aria-selected",I.params.conversationId?t(h).conversationId===I.params.conversationId:t(h).conversationId===((H=t(x))==null?void 0:H.conversationId)),w(Tt,z),w(Lt,t(h).medium),w(Nt,t(h).phoneNumber),w(Et,t(h).conversationId),w(jt,`Duration: ${W??""}`)},[()=>rt(t(h).createdAt),()=>st(t(h).duration??0)]),v(b,L)}),s(_),v(i,_)};O(n,i=>{var _,b;(b=(_=t(f))==null?void 0:_.items)!=null&&b.length?i(y,!1):i(c)},!0)}v(e,a)};O(St,e=>{t(G)?e(kt):e(Ct,!1)})}s(Ge),s(fe);var ge=l(fe,2);ge.__click=[ga];var Pt=o(ge);Ut(Pt,()=>g.children),s(ge),s(Re),s(Le),s(re),N(()=>{T.disabled=t(Q)||!t(C).length,et(T,"title",t(ee)??"Telescope source"),w($t,`Items: ${t(we)??""}`),w(At,$e()?"Mock (local)":"Live")}),Ze(T,()=>t(j),e=>r(j,e)),Ze(V,()=>t(Y),e=>r(Y,e)),v(u,re),Rt()}zt(["change","click"]);export{ja as component};
@@ -1 +1 @@
1
- import"../chunks/CWj6FrbW.js";import{e as L,p as U,f as y,b as t,c as B,a as R,g,s as $,h as l,u as _,d,n as b,r as v}from"../chunks/BRMnbBOX.js";import{a as W}from"../chunks/CB3MYTwM.js";import{g as j}from"../chunks/CYF48L9_.js";import{p as s}from"../chunks/2QZUjt52.js";import{T as q,a as x}from"../chunks/C1rQHXql.js";var z=o=>o.stopPropagation(),A=y("<!> <!>",1),D=y('<div class="flex h-full min-h-0 flex-col bg-rc-gray-980"><div class="flex-none border-b border-rc-gray-300/40 px-4 pt-3"><!></div> <div class="min-h-0 flex-1"><!></div></div>');function M(o,p){U(p,!0);const u=_(()=>s.url.pathname.split("/").at(-1)==="latency"?"latency":"traces"),w=_(()=>s.url.pathname.startsWith("/view")?"/view":"/traces");function T(a){const m=s.params.conversationId??"",r=s.url.search;return`${l(w)}/conversations/${encodeURIComponent(m)}/${a}${r}`}function C({value:a}){a!=="traces"&&a!=="latency"||a!==l(u)&&j(T(a))}var e=D();e.__click=[z];var n=d(e),P=d(n);q(P,{get value(){return l(u)},ariaLabel:"View conversation tabs",onChange:C,children:(a,m)=>{var r=A(),h=R(r);x(h,{value:"traces",children:(i,V)=>{b();var c=g("Traces");t(i,c)},$$slots:{default:!0}});var I=$(h,2);x(I,{value:"latency",children:(i,V)=>{b();var c=g("Latency");t(i,c)},$$slots:{default:!0}}),t(a,r)},$$slots:{default:!0}}),v(n);var f=$(n,2),k=d(f);W(k,()=>p.children),v(f),v(e),t(o,e),B()}L(["click"]);export{M as component};
1
+ import"../chunks/CWj6FrbW.js";import{e as L,p as U,f as y,b as t,c as B,a as R,g,s as $,h as l,u as _,d,n as b,r as v}from"../chunks/BRMnbBOX.js";import{a as W}from"../chunks/CB3MYTwM.js";import{g as j}from"../chunks/yPd1epTY.js";import{p as s}from"../chunks/Qml5ZyeD.js";import{T as q,a as x}from"../chunks/C1rQHXql.js";var z=o=>o.stopPropagation(),A=y("<!> <!>",1),D=y('<div class="flex h-full min-h-0 flex-col bg-rc-gray-980"><div class="flex-none border-b border-rc-gray-300/40 px-4 pt-3"><!></div> <div class="min-h-0 flex-1"><!></div></div>');function M(o,p){U(p,!0);const u=_(()=>s.url.pathname.split("/").at(-1)==="latency"?"latency":"traces"),w=_(()=>s.url.pathname.startsWith("/view")?"/view":"/traces");function T(a){const m=s.params.conversationId??"",r=s.url.search;return`${l(w)}/conversations/${encodeURIComponent(m)}/${a}${r}`}function C({value:a}){a!=="traces"&&a!=="latency"||a!==l(u)&&j(T(a))}var e=D();e.__click=[z];var n=d(e),P=d(n);q(P,{get value(){return l(u)},ariaLabel:"View conversation tabs",onChange:C,children:(a,m)=>{var r=A(),h=R(r);x(h,{value:"traces",children:(i,V)=>{b();var c=g("Traces");t(i,c)},$$slots:{default:!0}});var I=$(h,2);x(I,{value:"latency",children:(i,V)=>{b();var c=g("Latency");t(i,c)},$$slots:{default:!0}}),t(a,r)},$$slots:{default:!0}}),v(n);var f=$(n,2),k=d(f);W(k,()=>p.children),v(f),v(e),t(o,e),B()}L(["click"]);export{M as component};
@@ -1 +1 @@
1
- import"../chunks/CWj6FrbW.js";import{o as L}from"../chunks/CB3MYTwM.js";import{p as M,i as b,j as N,k as U,h as t,l as _,f as C,m as V,b as r,c as z,$ as D,d as i,s as y,a as G,g as A,u as H,n as l,r as c}from"../chunks/BRMnbBOX.js";import{g as d}from"../chunks/CYF48L9_.js";import{g as I}from"../chunks/BmJonxL2.js";import{t as J}from"../chunks/BEJ5fU19.js";import{A as K}from"../chunks/BiBGf8wR.js";import{T as O,a as T}from"../chunks/C1rQHXql.js";import{p as w}from"../chunks/2QZUjt52.js";var Q=C("<!> <!>",1),R=C('<div class="flex h-screen"><!> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none items-center justify-center bg-rc-gray-980"><!></nav> <main class="flex-1 pr-80 pt-40"><div class="flex h-full items-start justify-center text-rc-gray-200">Select an agent on the left panel to start editing</div></main></div></div>');function ne(S,k){M(k,!0);const{onAgentSelect:f,onError:E}=I();let a=b(N([])),p=b(!1);const g=H(()=>w.url.pathname.split("/")[1]);function j({value:e}){if(e!==t(g)){if(e==="edit")return d("/edit");if(e==="view")return d("/view");d("/"+e)}}function P(e){f(e)}U(()=>{t(p)||w.url.pathname==="/edit"&&t(a).length&&(_(p,!0),f(t(a)[0]))}),L(async()=>{try{_(a,await J.agents.list.query(),!0)}catch(e){const h=e instanceof Error?e.message:e?String(e):"Unknown error";console.error("Failed to load agents:",e),E(`Failed to load agents: ${h}`)}});var s=R();V(e=>{D.title="Bosun: Edit"});var u=i(s);K(u,{className:"flex-none",get agents(){return t(a)},currentAgent:"",onAgentClick:P});var m=y(u,2),v=i(m),F=i(v);O(F,{get value(){return t(g)},ariaLabel:"Top tabs",onChange:j,children:(e,h)=>{var $=Q(),x=G($);T(x,{value:"edit",children:(n,B)=>{l();var o=A("Edit");r(n,o)},$$slots:{default:!0}});var q=y(x,2);T(q,{value:"view",children:(n,B)=>{l();var o=A("View");r(n,o)},$$slots:{default:!0}}),r(e,$)},$$slots:{default:!0}}),c(v),l(2),c(m),c(s),r(S,s),z()}export{ne as component};
1
+ import"../chunks/CWj6FrbW.js";import{o as L}from"../chunks/CB3MYTwM.js";import{p as M,i as b,j as N,k as U,h as t,l as _,f as C,m as V,b as r,c as z,$ as D,d as i,s as y,a as G,g as A,u as H,n as l,r as c}from"../chunks/BRMnbBOX.js";import{g as d}from"../chunks/yPd1epTY.js";import{g as I}from"../chunks/BmJonxL2.js";import{t as J}from"../chunks/BEJ5fU19.js";import{A as K}from"../chunks/BiBGf8wR.js";import{T as O,a as T}from"../chunks/C1rQHXql.js";import{p as w}from"../chunks/Qml5ZyeD.js";var Q=C("<!> <!>",1),R=C('<div class="flex h-screen"><!> <div class="flex h-full min-w-0 flex-1 flex-col bg-rc-gray-980 pb-3 pr-4 pt-2"><nav class="flex flex-none items-center justify-center bg-rc-gray-980"><!></nav> <main class="flex-1 pr-80 pt-40"><div class="flex h-full items-start justify-center text-rc-gray-200">Select an agent on the left panel to start editing</div></main></div></div>');function ne(S,k){M(k,!0);const{onAgentSelect:f,onError:E}=I();let a=b(N([])),p=b(!1);const g=H(()=>w.url.pathname.split("/")[1]);function j({value:e}){if(e!==t(g)){if(e==="edit")return d("/edit");if(e==="view")return d("/view");d("/"+e)}}function P(e){f(e)}U(()=>{t(p)||w.url.pathname==="/edit"&&t(a).length&&(_(p,!0),f(t(a)[0]))}),L(async()=>{try{_(a,await J.agents.list.query(),!0)}catch(e){const h=e instanceof Error?e.message:e?String(e):"Unknown error";console.error("Failed to load agents:",e),E(`Failed to load agents: ${h}`)}});var s=R();V(e=>{D.title="Bosun: Edit"});var u=i(s);K(u,{className:"flex-none",get agents(){return t(a)},currentAgent:"",onAgentClick:P});var m=y(u,2),v=i(m),F=i(v);O(F,{get value(){return t(g)},ariaLabel:"Top tabs",onChange:j,children:(e,h)=>{var $=Q(),x=G($);T(x,{value:"edit",children:(n,B)=>{l();var o=A("Edit");r(n,o)},$$slots:{default:!0}});var q=y(x,2);T(q,{value:"view",children:(n,B)=>{l();var o=A("View");r(n,o)},$$slots:{default:!0}}),r(e,$)},$$slots:{default:!0}}),c(v),l(2),c(m),c(s),r(S,s),z()}export{ne as component};
@@ -1,2 +1,2 @@
1
- import"../chunks/CWj6FrbW.js";import{p as lt,f as N,d as C,a as ue,r as w,s as E,h as e,u as S,t as ce,b as p,l,i as j,c as ut,e as It,k as Ee,n as ze,g as be,j as yt,C as ht,q as Ae}from"../chunks/BRMnbBOX.js";import{i as z}from"../chunks/BFchB-2I.js";import{B as pe}from"../chunks/C8-d_pGN.js";import{D as Tt,c as re,i as _t,a as ot,b as De,d as Mt}from"../chunks/DJH8-Pxb.js";import{s as ke,o as Pt,a as At}from"../chunks/CB3MYTwM.js";import{e as Xe,i as bt}from"../chunks/D_iTaAhh.js";import{s as it,c as Nt}from"../chunks/DMtzEpj5.js";import{p as ye}from"../chunks/DCT4VKzQ.js";import{I as Ze}from"../chunks/Bb9ZigkD.js";import{t as $e}from"../chunks/BEJ5fU19.js";import{P as St,g as Rt}from"../chunks/Bk5z628g.js";import{c as Dt,s as Et}from"../chunks/3HVf2z3Q.js";import{b as Ct}from"../chunks/CmatTLDp.js";import{C as Ft,b as Ut,a as Ot}from"../chunks/aFZ7RY4i.js";import{I as wt}from"../chunks/DT74mAuZ.js";import{l as st,c as Ht}from"../chunks/C3cmQ-ZQ.js";var Vt=N('<span class="min-w-0 flex-1 truncate text-left"> </span> <!>',1),zt=N('<div class="truncate p-1 text-base font-semibold text-rc-green-200"> </div>'),Lt=N('<div class="truncate p-1 text-base font-semibold text-rc-gray-100"> </div>'),qt=N('<div class="flex items-start gap-2"><div class="min-w-0"><div class="truncate p-1 text-sm text-rc-gray-300 group-hover:text-rc-gray-200"> </div> <!></div></div>'),Bt=N('<div class="mt-1 max-h-96 w-max min-w-full max-w-[min(26rem,90vw)] overflow-y-auto overflow-x-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 backdrop-blur-2xl" role="listbox"></div>'),jt=N("<div><!> <!></div>");function Jt(s,n){lt(n,!0);let r=ye(n,"class",3,""),o=j(!1),f=j(null);const u=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function m(){l(o,!e(o))}function M(_){n.onSelectState(_),l(o,!1)}function g(_){const O=_.userMessage;return O==null?"No message":(typeof O=="string"?O:String(O)).trim()||"No message"}function d(_,O=50,I="…"){if(!_)return"";if(_.length<=O)return _;const x=_.slice(0,O+1),F=Math.max(x.lastIndexOf(" "),x.lastIndexOf(" "),x.lastIndexOf(" "),x.lastIndexOf(`
1
+ import"../chunks/CWj6FrbW.js";import{p as lt,f as N,d as C,a as ue,r as w,s as E,h as e,u as S,t as ce,b as p,l,i as j,c as ut,e as It,k as Ee,n as ze,g as be,j as yt,C as ht,q as Ae}from"../chunks/BRMnbBOX.js";import{i as z}from"../chunks/BFchB-2I.js";import{B as pe}from"../chunks/C8-d_pGN.js";import{D as Tt,c as re,i as _t,a as ot,b as De,d as Mt}from"../chunks/DJH8-Pxb.js";import{s as ke,o as Pt,a as At}from"../chunks/CB3MYTwM.js";import{e as Xe,i as bt}from"../chunks/D_iTaAhh.js";import{s as it,c as Nt}from"../chunks/DMtzEpj5.js";import{p as ye}from"../chunks/DCT4VKzQ.js";import{I as Ze}from"../chunks/Bb9ZigkD.js";import{t as $e}from"../chunks/BEJ5fU19.js";import{P as St,g as Rt}from"../chunks/Bk5z628g.js";import{c as Dt,s as Et}from"../chunks/3HVf2z3Q.js";import{b as Ct}from"../chunks/CmatTLDp.js";import{C as Ft,b as Ut,a as Ot}from"../chunks/0e_4hQ6g.js";import{I as wt}from"../chunks/DT74mAuZ.js";import{l as st,c as Ht}from"../chunks/C3cmQ-ZQ.js";var Vt=N('<span class="min-w-0 flex-1 truncate text-left"> </span> <!>',1),zt=N('<div class="truncate p-1 text-base font-semibold text-rc-green-200"> </div>'),Lt=N('<div class="truncate p-1 text-base font-semibold text-rc-gray-100"> </div>'),qt=N('<div class="flex items-start gap-2"><div class="min-w-0"><div class="truncate p-1 text-sm text-rc-gray-300 group-hover:text-rc-gray-200"> </div> <!></div></div>'),Bt=N('<div class="mt-1 max-h-96 w-max min-w-full max-w-[min(26rem,90vw)] overflow-y-auto overflow-x-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 backdrop-blur-2xl" role="listbox"></div>'),jt=N("<div><!> <!></div>");function Jt(s,n){lt(n,!0);let r=ye(n,"class",3,""),o=j(!1),f=j(null);const u=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function m(){l(o,!e(o))}function M(_){n.onSelectState(_),l(o,!1)}function g(_){const O=_.userMessage;return O==null?"No message":(typeof O=="string"?O:String(O)).trim()||"No message"}function d(_,O=50,I="…"){if(!_)return"";if(_.length<=O)return _;const x=_.slice(0,O+1),F=Math.max(x.lastIndexOf(" "),x.lastIndexOf(" "),x.lastIndexOf(" "),x.lastIndexOf(`
2
2
  `),x.lastIndexOf("\r"));return(F>0?x.slice(0,F):_.slice(0,O)).trimEnd()+I}function R(_){_.key==="ArrowDown"&&!e(o)?(l(o,!0),_.preventDefault()):_.key==="ArrowUp"&&e(o)&&(l(o,!1),_.preventDefault())}function de(_){const O=_.getDate(),I=u[_.getMonth()];let x=_.getHours();const F=x>=12?"PM":"AM";x=x%12,x===0&&(x=12);const oe=String(_.getMinutes()).padStart(2,"0"),_e=new Date,fe=_.getFullYear(),Se=fe!==_e.getFullYear()?` ${fe}`:"";return`${O} ${I}${Se}, ${x}:${oe} ${F}`}function V(_){const O=new Date(_.id);if(!Number.isNaN(O.getTime()))return de(O);const I=new Date(_.name);return Number.isNaN(I.getTime())?_.name||"History":de(I)}let G=S(()=>n.agentStates.find(_=>_.id===n.currentState)??null),$=S(()=>e(G)?V(e(G)):"History");var he=jt(),Z=C(he);pe(Z,{variant:"ghost",get"aria-expanded"(){return e(o)},"aria-haspopup":"listbox","aria-controls":"history-dropdown",onclick:m,onkeydown:R,class:"inline-flex w-40 items-center rounded-lg border border-transparent !bg-rc-gray-700 !px-3 !pb-1 !pt-[5px] text-rc-gray-200 hover:border hover:border-rc-gray-500 focus:outline-none focus:ring-0",get el(){return e(f)},set el(_){l(f,_,!0)},children:(_,O)=>{var I=Vt(),x=ue(I),F=C(x,!0);w(x);var oe=E(x,2);{let _e=S(()=>"size-7 shrink-0 text-rc-gray-500 transition-transform duration-200 "+(e(o)?"rotate-180":""));Ze(oe,{name:"chevron-down",get class(){return e(_e)}})}ce(()=>ke(F,e($))),p(_,I)},$$slots:{default:!0}});var xe=E(Z,2);Tt(xe,{id:"history-dropdown",get open(){return e(o)},onClose:()=>l(o,!1),get anchorEl(){return e(f)},placement:"bottom-start",offset:[0,1],children:O=>{var I=Bt();Xe(I,21,()=>n.agentStates.slice().reverse(),bt,(x,F)=>{{let oe=S(()=>e(F).id===n.currentState);pe(x,{variant:"ghost",size:"small",role:"option",get"aria-selected"(){return e(oe)},onclick:()=>M(e(F).id),class:"group w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl last:border-b-0 hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(_e,fe)=>{var Se=qt(),Fe=C(Se),Ue=C(Fe),Oe=C(Ue,!0);w(Ue);var He=E(Ue,2);{var Le=K=>{var se=zt(),Me=C(se,!0);w(se),ce(Ne=>ke(Me,Ne),[()=>d(g(e(F)))]),p(K,se)},Ve=K=>{var se=Lt(),Me=C(se,!0);w(se),ce(Ne=>ke(Me,Ne),[()=>d(g(e(F)))]),p(K,se)};z(He,K=>{e(F).id===n.currentState?K(Le):K(Ve,!1)})}w(Fe),w(Se),ce(K=>ke(Oe,K),[()=>V(e(F))]),p(_e,Se)},$$slots:{default:!0}})}}),w(I),p(O,I)},$$slots:{default:!0}}),w(he),ce(()=>it(he,1,`relative ${r()}`)),p(s,he),ut()}var Wt=N('<dialog class="dialog m-auto bg-transparent p-0 text-rc-gray-100 shadow-md svelte-jby388"><!> <!></dialog>');function Gt(s,n){lt(n,!0);let r,o=ye(n,"showCloseButton",3,!1),f=ye(n,"onClose",3,()=>{}),u=ye(n,"onOpen",3,()=>{}),m=ye(n,"isOpen",3,!1);Ee(()=>{m()?(console.log("show"),r==null||r.showModal(),u()()):r!=null&&r.open&&(console.log("close"),r.close())});function M(){f()()}Pt(()=>(r.addEventListener("close",M),()=>{r.removeEventListener("close",M)}));function g(G){G.target===r&&r.close()}var d=Wt();d.__mousedown=g;var R=C(d);At(R,()=>n.children);var de=E(R,2);{var V=G=>{pe(G,{variant:"ghost",onclick:()=>r.close(),class:"absolute right-2 top-2",children:($,he)=>{ze();var Z=be("✕");p($,Z)},$$slots:{default:!0}})};z(de,G=>{o()&&G(V)})}w(d),Ct(d,G=>r=G,()=>r),p(s,d),ut()}It(["mousedown"]);function Kt(s){if(!Array.isArray(s))return[];const n=[];for(const r of s){if(!r||typeof r!="object")continue;const o=r.text,f=r.lastSeen,u=r.uses;if(typeof o!="string"||typeof f!="number"||!Number.isFinite(f)||typeof u!="number"||!Number.isFinite(u))continue;const m=o.trim();m&&n.push({text:m,lastSeen:f,uses:u})}return n.sort((r,o)=>o.lastSeen-r.lastSeen),n}function Yt(s,n,r=2e3){var M;const o=n.trim();if(!o)return s;const f=(((M=s[0])==null?void 0:M.lastSeen)??0)+1,u=s.findIndex(g=>g.text===o);let m;if(u!==-1){const g=s[u];m=[{text:g.text,lastSeen:f,uses:(g.uses??0)+1},...s.slice(0,u),...s.slice(u+1)]}else m=[{text:o,lastSeen:f,uses:1},...s];return m.length>r?m.slice(0,r):m}function Xt(s,n,r=2e3){var M,g;if(!n.length)return s;if(!s.length)return n;const o=((M=s[0])==null?void 0:M.lastSeen)??0,u=(((g=n[0])==null?void 0:g.lastSeen)??0)>o?n:n.map((d,R)=>({...d,lastSeen:o+(n.length-R)})),m=new Map;for(const d of s)m.set(d.text,d);for(const d of u){const R=m.get(d.text);if(!R){m.set(d.text,d);continue}m.set(d.text,{text:d.text,lastSeen:Math.max(R.lastSeen,d.lastSeen),uses:R.uses+d.uses})}return Array.from(m.values()).sort((d,R)=>R.lastSeen-d.lastSeen).slice(0,r)}function Zt(s,n,r=5){if(!n.length)return[];const f=s.trim().toLowerCase(),u=xt(s,!1).text,m=/\s$/u.test(s);if(!xt(s,!0).text)return[];const M=[];for(const g of n){const d=xt(g.text);if(!d.text||g.text.trim().toLowerCase()===f)continue;const R=Qt(d,g.text,u,m);R&&M.push({item:g,match:R})}return M.sort((g,d)=>g.match.kindRank!==d.match.kindRank?g.match.kindRank-d.match.kindRank:g.match.span!==d.match.span?g.match.span-d.match.span:g.match.start!==d.match.start?g.match.start-d.match.start:g.item.lastSeen!==d.item.lastSeen?d.item.lastSeen-g.item.lastSeen:g.item.uses!==d.item.uses?d.item.uses-g.item.uses:g.item.text.length-d.item.text.length),M.slice(0,r).map(g=>({text:g.item.text,prefixEndIndex:g.match.prefixEndIndex,segments:on(g.item.text,g.match.ranges)}))}function xt(s,n=!0){const r=[],o=[];for(let f=0;f<s.length;f++){const u=$t(s[f]);if(u===" "){if(!r.length)continue;const m=r.length-1;if(r[m]===" "){o[m][1]=f+1;continue}}r.push(u),o.push([f,f+1])}return n&&r[r.length-1]===" "&&(r.pop(),o.pop()),{text:r.join(""),ranges:o}}function $t(s){if(/\s/u.test(s))return" ";try{return/[\p{P}\p{S}]/u.test(s)?" ":s.toLowerCase()}catch{return/[^a-z0-9\s]/i.test(s)?" ":s.toLowerCase()}}function Qt(s,n,r,o){if(!s.text)return null;if(s.text.startsWith(r)){const u=an(n,r,o)??n.length,m=Math.max(0,Math.min(n.length,u));return{kindRank:0,start:0,span:r.length,ranges:[[0,m]],prefixEndIndex:m}}const f=s.text.indexOf(r);return f!==-1?{kindRank:nn(s.text,f,r.length),start:f,span:r.length,ranges:rn(s,f,f+r.length),prefixEndIndex:n.length}:null}function en(s,n){return n<=0?!0:s[n-1]===" "}function tn(s,n){return n>=s.length?!0:s[n]===" "}function nn(s,n,r){const o=en(s,n),f=tn(s,n+r);return o&&f?1:o?2:3}function rn(s,n,r){const o=Math.max(0,Math.min(s.ranges.length,n)),f=Math.max(o,Math.min(s.ranges.length,r));return kt(s.ranges.slice(o,f))}function an(s,n,r){if(!n)return null;let o="",f=!0;for(let u=0;u<s.length;u++){const m=s[u];let M;if(/\s/u.test(m))M=" ";else try{M=/[\p{P}\p{S}]/u.test(m)?" ":m.toLowerCase()}catch{M=/[^a-z0-9\s]/i.test(m)?" ":m.toLowerCase()}if(M===" "){if(f)continue;o+=" ",f=!0}else o+=M,f=!1;if(o.length===n.length){if(o!==n)return null;let g=u+1;if(r&&n.endsWith(" ")){let d=g;for(;d<s.length;){const R=s[d];if(/\s/u.test(R)){d+=1;continue}try{if(/[\p{P}\p{S}]/u.test(R)){d+=1;continue}}catch{if(/[^a-z0-9\s]/i.test(R)){d+=1;continue}}break}g=d}return g}if(o.length>n.length)return null}return null}function on(s,n){const r=kt(n);if(!r.length)return[{text:s,matched:!1}];const o=[];let f=0;for(const[u,m]of r)u>f&&o.push({text:s.slice(f,u),matched:!1}),o.push({text:s.slice(u,m),matched:!0}),f=m;return f<s.length&&o.push({text:s.slice(f),matched:!1}),o.filter(u=>u.text.length>0)}function kt(s){if(!s.length)return[];const n=s.map(([o,f])=>[Math.max(0,o),Math.max(0,f)]).filter(([o,f])=>f>o).sort((o,f)=>o[0]-f[0]||o[1]-f[1]);if(!n.length)return[];const r=[[n[0][0],n[0][1]]];for(let o=1;o<n.length;o++){const[f,u]=n[o],m=r[r.length-1];if(f<=m[1]){m[1]=Math.max(m[1],u);continue}r.push([f,u])}return r}var sn=N('<form><h2 class="text-l mb-4 text-gray-300">Image URL</h2> <!> <!></form>'),ln=N('<div class="my-2 flex w-full justify-center"><div class="rounded-full border border-rc-gray-650 bg-rc-gray-800/40 px-3 py-1 text-xs text-rc-gray-200"> </div></div>'),un=N('<div class="rounded-lg border border-rc-green-450 bg-transparent px-3 py-2 text-sm text-rc-gray-300">Generating 9 more variants…</div>'),cn=N('<div class="rounded-lg border border-red-500/70 bg-red-950/20 px-3 py-2 text-sm text-red-200"> </div>'),dn=(s,n,r)=>{var o;return(o=n.onChooseVariant)==null?void 0:o.call(n,e(r).id)},fn=N('<button type="button"><div class="whitespace-pre-line break-words"> </div></button>'),gn=N('<div class="ml-7 mt-2 flex flex-col gap-2"><!> <!> <!></div>'),vn=N('<!> <div class="log-element"><div><!></div> <!></div>',1),mn=(s,n)=>{var r;return(r=n.onRegenerateVariants)==null?void 0:r.call(n)},pn=(s,n)=>{var r;return(r=n.onCancelVariants)==null?void 0:r.call(n)},hn=N('<div class="absolute bottom-2 left-2 right-2 z-10 flex items-center gap-3 rounded-lg border border-rc-green-450 bg-rc-gray-930/90 px-3 py-3 font-semibold text-rc-gray-100 shadow-inner-white-soft backdrop-blur-3xl"><span>Choose a variant above to continue</span> <button type="button" class="rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-300 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-100 focus:outline-none focus-visible:outline-none disabled:cursor-wait disabled:opacity-50">Regenerate</button> <button type="button" class="rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-300 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-100 focus:outline-none focus-visible:outline-none">Cancel</button></div>'),xn=(s,n,r)=>{s.preventDefault(),n(e(r))},bn=N("<span> </span>"),yn=N('<button type="button" role="option" tabindex="-1"></button>'),_n=N('<div class="absolute bottom-full left-0 right-0 mb-1 max-h-60 overflow-y-auto rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"></div>'),Sn=N('<div class="pointer-events-none absolute inset-0 z-10 overflow-hidden rounded-lg" aria-hidden="true"><div class="whitespace-pre text-rc-gray-400/70"><span class="invisible"> </span><span> </span></div></div>'),wn=N('<form><fieldset class="absolute bottom-2 left-2 right-2 z-10 flex gap-2 disabled:opacity-35"><div class="relative flex-1"><!> <!> <!></div> <!> <!></fieldset></form>'),In=N('<div class="rc-scroll min-h-0 flex-1 overflow-y-auto pr-1"></div> <!>',1),Tn=N("<!> <!>",1);function Cn(s,n){lt(n,!0);let r=ye(n,"analyzeDisabled",3,!1),o=ye(n,"variantSourceTrace",3,null),f=ye(n,"variantChoices",19,()=>[]),u=ye(n,"variantLoading",3,!1),m=ye(n,"variantApplyingId",3,null),M=ye(n,"variantError",3,null),g=yt(new Set),d=j(""),R=j(""),de=j(""),V,G=j(!1),$=j(null),he=j(""),Z=j(!1),xe=j(yt([])),_=j(null),O=j(!1),I=j(!1),x=j(null);const F=S(()=>Zt(e(d),e(xe))),oe=S(()=>e(x)==null?null:e(F)[e(x)]??null),_e=S(()=>e(oe)?e(oe).text.slice(e(oe).prefixEndIndex):""),fe=S(()=>!o()&&!e(de)&&e(d).trim().length===0);Ee(()=>{if(typeof window>"u")return;if(!e($)){l(he,"");return}const t=window.getComputedStyle(e($)),i=`calc(${t.paddingTop} + ${t.borderTopWidth})`,v=`calc(${t.paddingRight} + ${t.borderRightWidth})`,h=`calc(${t.paddingBottom} + ${t.borderBottomWidth})`,L=`calc(${t.paddingLeft} + ${t.borderLeftWidth})`;l(he,[`padding:${i} ${v} ${h} ${L}`,`font:${t.font}`,`letter-spacing:${t.letterSpacing}`,`line-height:${t.lineHeight}`,`text-indent:${t.textIndent}`,`text-transform:${t.textTransform}`,`text-align:${t.textAlign}`,`box-sizing:${t.boxSizing}`].join(";"),!0)}),Ee(()=>{e(x)!=null&&e(x)>=e(F).length&&l(x,null)});const Se=S(()=>o()||!e(O)||e(I)?!1:e(F).length>0);function Fe(t){l(d,t.text,!0),l(x,null),l(I,!0)}function Ue(){l(O,!0),l(I,!1)}function Oe(){l(O,!1),l(x,null),l(I,!1)}function He(){l(x,null),l(I,!1)}function Le(t){if(t.key==="Escape"){e(Se)&&t.preventDefault(),l(I,!0),l(x,null);return}if(t.key==="ArrowUp"||t.key==="ArrowDown"){if(!e(F).length)return;e(I)&&l(I,!1),t.preventDefault();const i=e(F).length-1;if(e(x)===null)l(x,t.key==="ArrowUp"?i:0,!0);else{const v=t.key==="ArrowUp"?-1:1;l(x,Math.max(0,Math.min(i,e(x)+v)),!0)}return}if(t.key==="Enter"||t.key==="Tab"&&!t.shiftKey){if(e(x)===null)return;const i=e(F)[e(x)];if(!i)return;t.preventDefault(),Fe(i);return}}let Ve=null,K=!1,se=0;function Me(){typeof window>"u"||V&&(!K&&g.has(V)||Ve==null&&(Ve=requestAnimationFrame(()=>{if(Ve=null,!V||!K&&g.has(V))return;const t=V.scrollHeight-(V.scrollTop+V.clientHeight),i=K||t>V.clientHeight?"auto":"smooth";V.scrollTo({top:V.scrollHeight,behavior:i}),K=!1})))}Ee(()=>{const t=re.length;t===0&&se>0&&(K=!0,V&&g.delete(V)),se=t,t>0&&Me()});function Ne(t){t.scrollTop+t.clientHeight+200>t.scrollHeight?g.delete(t):g.add(t)}function ct(t){if(t.preventDefault(),e(Z))return;(e(d).trim().length>0||e(de))&&(l(xe,Yt(e(xe),e(d)),!0),n.onmessage({sender:"user",text:e(d),imageUrl:e(de)}),l(de,""),l(d,""),l(I,!1),l(x,null))}function Qe(t){t.preventDefault(),l(de,e(R),!0),l(R,""),l(G,!1)}function et(t){return t&&typeof t.renderedPrompt=="string"?t.renderedPrompt:null}function dt(t,i){for(let v=i-1;v>=0;v--){const h=t[v];if(De(h)&&h.name==="main"&&et(h))return h}for(let v=i-1;v>=0;v--){const h=t[v];if(De(h)&&h.name==="prewarm"&&et(h))return h}return null}function ft(t){return t.eventName==="received-message"||t.eventName==="llm-handler-stream-requested"||t.eventName==="finished-main-streaming-step"||t.eventName==="sent-message"||t.eventName==="transfer-requested"||t.eventName==="hangup-requested"}function a(t){return!!(n.agentId&&n.agentId.trim())&&t.eventName!=="transfer-requested"&&(t.eventName==="finished-main-streaming-step"||t.eventName==="sent-message")}function c(t){const i=String(t??"").trim();return!i||/^\[image\]\s+/.test(i)?"":i}function b(t){if(!n.onRevertToState)return;const i=t==null?void 0:t.bosunPrevStateId,v=typeof i=="string"&&i.trim().length>0?i:null;n.onRevertToState(v);const h=typeof(t==null?void 0:t.bosunUserMessage)=="string"?t.bosunUserMessage:t.content;l(d,c(h),!0),requestAnimationFrame(()=>{var L,Ie;try{(L=e($))==null||L.focus(),(Ie=e($))==null||Ie.select()}catch{}})}function T(){var t;n.agentType==="text"?l(G,!0):n.agentType==="voice"&&((t=n.onHangup)==null||t.call(n))}const U=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(t){if(typeof t!="number"||!Number.isFinite(t))return null;const i=new Date(t);if(Number.isNaN(i.getTime()))return null;const v=i.getFullYear(),h=String(i.getMonth()+1).padStart(2,"0"),L=String(i.getDate()).padStart(2,"0");return`${v}-${h}-${L}`}function H(t){if(typeof t!="number"||!Number.isFinite(t))return null;const i=new Date(t);if(Number.isNaN(i.getTime()))return null;const v=i.getDate(),h=U[i.getMonth()],L=i.getFullYear();return`${v} ${h} ${L}`}const y=S(()=>re.filter(t=>_t(t)||De(t)?!0:ot(t)?ft(t):!1)),J=S(()=>{var t;return((t=re.findLast(i=>ot(i)))==null?void 0:t.eventName)==="hangup-requested"}),ge=S(()=>{for(let t=e(y).length-1;t>=0;t--){const i=e(y)[t];if(ot(i)&&a(i))return i}return null}),qe=S(()=>{const t=e(ge);if(!t)return null;try{const i=D(t);return{model:i.model,stringifiedConversation:i.stringifiedConversation,response:i.response}}catch{return null}});function Je(t){for(let i=t-1;i>=0;i--){const v=re[i];if(De(v)&&!(v.name!=="main"&&v.name!=="mainReply")&&typeof v.renderedPrompt=="string"&&v.renderedPrompt.trim())return v}for(let i=t+1;i<re.length;i++){const v=re[i];if(De(v)&&!(v.name!=="main"&&v.name!=="mainReply")&&typeof v.renderedPrompt=="string"&&v.renderedPrompt.trim())return v}return null}function we(t){for(let i=t-1;i>=0;i--){const v=re[i];if(!De(v)||typeof v.stringifiedConversation!="string")continue;const h=v.stringifiedConversation.trim();if(h)return h}return null}function D(t){if(!(n.agentId??"").trim())throw new Error("Agent id is not available; cannot analyze");const v=re.indexOf(t);if(v===-1)throw new Error("Could not locate trace in chat history");const h=Je(v);if(!h)throw new Error("Could not find main step trace for this message");const L=typeof h.renderedPrompt=="string"?h.renderedPrompt:"";if(!L.trim())throw new Error("Main step rendered prompt is missing");const Ie=typeof h.stringifiedConversation=="string"&&h.stringifiedConversation.trim()?h.stringifiedConversation:we(v)??"";if(!Ie.trim())throw new Error("Main step conversation is missing");const Be=String((t==null?void 0:t.content)??"");if(!Be.trim())throw new Error("Message content is missing");const W=typeof(h==null?void 0:h.model)=="string"?String(h.model):void 0,P=t==null?void 0:t.createdAt,Q=typeof P=="number"&&Number.isFinite(P)?P:void 0;return{trace:t,stepTrace:h,renderedPrompt:L,stringifiedConversation:Ie,response:Be,model:W,createdAt:Q}}function gt(t){if(n.onAnalyzeTrace)try{n.onAnalyzeTrace(D(t))}catch(i){console.error(i)}}async function vt(){if(e(Z))return;const t=e(qe);if(t){l(I,!0),l(x,null),l(Z,!0);try{const i=await $e.agents.generateUserResponse.mutate(t);l(d,i.text,!0),l(I,!0),l(x,null),requestAnimationFrame(()=>{var v,h;try{(v=e($))==null||v.focus(),(h=e($))==null||h.setSelectionRange(i.text.length,i.text.length)}catch{}})}catch(i){console.error("Failed to generate suggested user response",i)}finally{l(Z,!1)}}}Ee(()=>{if(typeof window>"u")return;const t=(n.agentId??"").trim();if(!t||t===e(_))return;l(_,t,!0),l(xe,[],!0);const i=t;$e.agents.userMessageHistory.query({agentId:i}).then(v=>{if(e(_)!==i)return;const h=Kt(v);l(xe,Xt(h,e(xe)),!0),l(x,null)}).catch(v=>{console.error("Failed to load user message history",v),e(_)===i&&(l(xe,[],!0),l(x,null))})}),Ee(()=>{const t=o(),i=f().length,v=u(),h=M(),L=m();!t&&!i&&!v&&!h&&!L||Me()});var tt=Tn(),Pe=ue(tt);Gt(Pe,{get isOpen(){return e(G)},onClose:()=>l(G,!1),showCloseButton:!0,children:(t,i)=>{St(t,{class:"p-4",children:(v,h)=>{var L=sn(),Ie=E(C(L),2);wt(Ie,{class:"mb-2 w-80",get value(){return e(R)},set value(W){l(R,W,!0)}});var Be=E(Ie,2);pe(Be,{variant:"secondary",type:"submit",class:"ml-2 p-2",children:(W,P)=>{ze();var Q=be("Attach");p(W,Q)},$$slots:{default:!0}}),w(L),ht("submit",L,Qe),p(v,L)}})},$$slots:{default:!0}});var We=E(Pe,2);St(We,{get class(){return`relative flex min-h-0 flex-col p-2 pb-16 ${n.class??""}`},children:(t,i)=>{var v=In(),h=ue(v);Xe(h,21,()=>e(y),bt,(W,P,Q)=>{const Re=S(()=>k(e(P).createdAt)),nt=S(()=>Q>0?k(e(y)[Q-1].createdAt):null),rt=S(()=>H(e(P).createdAt));var Ge=vn(),at=ue(Ge);{var mt=A=>{var q=ln(),B=C(q),te=C(B,!0);w(B),w(q),ce(()=>ke(te,e(rt))),p(A,q)};z(at,A=>{e(Re)&&e(rt)&&e(Re)!==e(nt)&&A(mt)})}var Ke=E(at,2),Ye=C(Ke),ee=C(Ye);{var Y=A=>{Ft(A,{get trace(){return e(P)}})},ve=A=>{var q=Ae(),B=ue(q);{var te=X=>{{let Ce=S(()=>n.onAnalyzeTrace?gt:void 0),ne=S(()=>n.onRevertToState?b:void 0),le=S(()=>!!n.onSeeVariants&&!o()&&e(P)===e(ge)),ae=S(()=>o()&&e(P)===o()?"source":"none"),je=S(()=>m()===null&&o()&&e(P)===o()?n.onChooseOriginalVariant:void 0),pt=S(()=>!!o()&&e(P)===o());Ut(X,{get trace(){return e(P)},get context(){return n.context},get agentId(){return n.agentId},get analyzeDisabled(){return r()},get onAnalyze(){return e(Ce)},get onRegenerate(){return n.onRegenerateTrace},get onRevert(){return e(ne)},get showSeeVariants(){return e(le)},get onSeeVariants(){return n.onSeeVariants},get variantSelectionState(){return e(ae)},get onSelectInVariantMode(){return e(je)},get suppressActionRow(){return e(pt)}})}},Te=X=>{var Ce=Ae(),ne=ue(Ce);{var le=ae=>{{let je=S(()=>e(P).name==="main"?dt(e(y),Q):null);Ot(ae,{get trace(){return e(P)},get compareTrace(){return e(je)}})}};z(ne,ae=>{De(e(P))&&ae(le)},!0)}p(X,Ce)};z(B,X=>{ot(e(P))?X(te):X(Te,!1)},!0)}p(A,q)};z(ee,A=>{_t(e(P))?A(Y):A(ve,!1)})}w(Ye);var ie=E(Ye,2);{var me=A=>{var q=gn(),B=C(q);{var te=ne=>{var le=un();p(ne,le)};z(B,ne=>{u()&&ne(te)})}var Te=E(B,2);{var X=ne=>{var le=cn(),ae=C(le,!0);w(le),ce(()=>ke(ae,M())),p(ne,le)};z(Te,ne=>{M()&&ne(X)})}var Ce=E(Te,2);Xe(Ce,17,f,ne=>ne.id,(ne,le)=>{var ae=fn();ae.__click=[dn,n,le];var je=C(ae),pt=C(je,!0);w(je),w(ae),ce(()=>{ae.disabled=m()!==null,it(ae,1,`w-full max-w-[83%] cursor-pointer rounded-lg border border-rc-green-450 bg-transparent p-2 pt-1 text-left text-rc-gray-100 backdrop-blur-md transition-colors hover:bg-rc-green-700 focus:outline-none focus-visible:outline-none disabled:cursor-wait disabled:opacity-70 ${m()===e(le).id?"bg-rc-green-700":""}`),ke(pt,e(le).text)}),p(ne,ae)}),w(q),p(A,q)};z(ie,A=>{o()&&e(P)===o()&&A(me)})}w(Ke),p(W,Ge)}),w(h),Ct(h,W=>V=W,()=>V);var L=E(h,2);{var Ie=W=>{var P=hn(),Q=E(C(P),2);Q.__click=[mn,n];var Re=E(Q,2);Re.__click=[pn,n],w(P),ce(()=>Q.disabled=!n.onRegenerateVariants||u()||m()!==null),p(W,P)},Be=W=>{var P=wn(),Q=C(P),Re=C(Q),nt=C(Re);{var rt=ee=>{var Y=_n();Xe(Y,23,()=>e(F),ve=>ve.text,(ve,ie,me)=>{var A=yn();A.__mousedown=[xn,Fe,ie],Xe(A,21,()=>e(ie).segments,bt,(q,B)=>{var te=bn(),Te=C(te,!0);w(te),ce(()=>{it(te,1,Nt(e(B).matched?"text-rc-green-200":"")),ke(Te,e(B).text)}),p(q,te)}),w(A),ce(()=>{Dt(A,"aria-selected",e(x)===e(me)),it(A,1,`w-full select-none border-b border-rc-gray-110 px-3 py-2 text-left font-semibold text-rc-gray-100 last:border-b-0 hover:bg-rc-gray-700/70 ${e(x)===e(me)?"bg-rc-gray-700/70":""}`)}),p(ve,A)}),w(Y),p(ee,Y)};z(nt,ee=>{e(Se)&&ee(rt)})}var Ge=E(nt,2);{let ee=S(()=>e(Z)?"Generating":"Enter user's message...");wt(Ge,{variant:"chat",get placeholder(){return e(ee)},autocomplete:"off",get readonly(){return e(Z)},onfocus:Ue,onblur:Oe,oninput:He,onkeydown:Le,get value(){return e(d)},set value(Y){l(d,Y,!0)},get el(){return e($)},set el(Y){l($,Y,!0)}})}var at=E(Ge,2);{var mt=ee=>{var Y=Sn(),ve=C(Y),ie=C(ve),me=C(ie,!0);w(ie);var A=E(ie),q=C(A,!0);w(A),w(ve),w(Y),ce(()=>{Et(ve,e(he)),ke(me,e(d)),ke(q,e(_e))}),p(ee,Y)};z(at,ee=>{e(x)!==null&&e(_e)&&ee(mt)})}w(Re);var Ke=E(Re,2);{let ee=S(()=>e(Z)||!n.agentType);pe(Ke,{size:"small",variant:"secondary",get disabled(){return e(ee)},onclick:T,children:(Y,ve)=>{var ie=Ae(),me=ue(ie);{var A=B=>{Ze(B,{name:"paperclip"})},q=B=>{var te=Ae(),Te=ue(te);{var X=Ce=>{Ze(Ce,{name:"hangup"})};z(Te,Ce=>{n.agentType==="voice"&&Ce(X)},!0)}p(B,te)};z(me,B=>{n.agentType==="text"?B(A):B(q,!1)})}p(Y,ie)},$$slots:{default:!0}})}var Ye=E(Ke,2);{let ee=S(()=>e(fe)?"button":"submit"),Y=S(()=>e(fe)?"Generate response":void 0),ve=S(()=>e(fe)?"Generate response":"Send message"),ie=S(()=>e(Z)||e(fe)&&!e(qe));pe(Ye,{size:"small",get type(){return e(ee)},get title(){return e(Y)},get"aria-label"(){return e(ve)},get disabled(){return e(ie)},onclick:me=>{e(fe)&&(me.preventDefault(),vt())},children:(me,A)=>{var q=Ae(),B=ue(q);{var te=X=>{Ze(X,{name:"sparkles"})},Te=X=>{Ze(X,{name:"send"})};z(B,X=>{e(fe)?X(te):X(Te,!1)})}p(me,q)},$$slots:{default:!0}})}w(Q),w(P),ce(()=>Q.disabled=e(J)),ht("submit",P,ct),p(W,P)};z(L,W=>{o()?W(Ie):W(Be,!1)})}ht("scroll",h,W=>Ne(W.target)),p(t,v)}}),p(s,tt),ut()}It(["click","mousedown"]);var kn=N('<div class="mt-1 w-max overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"><!> <!> <!></div>'),Mn=N('<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Connecting…</div>'),Pn=N('<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Select an agent to start chatting</div>'),An=N('<div class="h-full min-h-0 p-2"><!></div>'),Nn=N('<div class="relative flex h-full min-h-0 flex-col"><div class="flex flex-none flex-nowrap items-center gap-2 p-2"><!> <div class="ml-auto flex flex-none flex-nowrap items-center gap-2"><!> <!> <!> <!></div></div> <div class="min-h-0 flex-1"><!></div></div>');function Yn(s,n){lt(n,!0);const{state:r,actions:o}=Rt();let f=j(!1),u=j(null),m=j(null),M=null,g=j(!1),d=j(null);Ee(()=>{!re.length&&!st.length&&e(g)&&l(g,!1)});function R(a){const c=(a||"").trim();return c?c.split("/").at(-1)??c:"Agent"}function de(a){if(typeof a!="number"||!Number.isFinite(a))return null;const c=new Date(a);if(Number.isNaN(c.getTime()))return null;const b=String(c.getHours()).padStart(2,"0"),T=String(c.getMinutes()).padStart(2,"0"),U=String(c.getSeconds()).padStart(2,"0");return`${b}:${T}:${U}`}async function V(a){var k,H;if(e(f))return;l(f,!0);const c=o.openPopover("analyze"),b=de(a.createdAt),T=b?` • ${b}`:"",U=`Analysis — ${R(r.agentId)}${T}`;try{const y=await $e.agents.analyzeTrace.mutate({agentId:r.agentId,traceId:(k=a.trace)==null?void 0:k.traceId,eventName:a.trace.eventName,createdAt:a.createdAt,model:a.model,renderedPrompt:a.renderedPrompt,stringifiedConversation:a.stringifiedConversation,response:a.response,stepTrace:a.stepTrace});if(((H=r.edit.popover)==null?void 0:H.requestId)!==c)return;o.setHighlightQuotes(y.quotes);let J=null;try{J=JSON.stringify(y.raw,null,2)}catch{J=null}o.setPopoverReady(c,{title:U,quotes:y.quotes,rationales:y.rationales,parallelCalls:y.parallelCalls,raw:J})}catch(y){console.error(y);const J=typeof(y==null?void 0:y.message)=="string"?y.message:(()=>{try{return JSON.stringify(y)}catch{return String(y)}})();o.setPopoverError(c,J||"Failed to analyze this response",{raw:J})}finally{l(f,!1)}}function G(a){return a?re:re.map(c=>{if(!De(c))return c;const{receivedPrompt:b,renderedPrompt:T,...U}=c;return U})}function $(a){l(m,a,!0),M&&clearTimeout(M),M=window.setTimeout(()=>{l(m,null),M=null},2e3)}async function he(){try{await navigator.clipboard.writeText(JSON.stringify(st,null,2)),$("logs")}catch(a){console.error("Failed to copy logs",a)}}async function Z(a){try{await navigator.clipboard.writeText(JSON.stringify(G(a),null,2)),$(a?"with-prompts":"without-prompts")}catch(c){console.error("Failed to copy traces",c)}}function xe(){I(),o.closePopover(),o.closeContextPopover(),o.selectState(null)}function _(a){const c=String(a??"").trim();if(!c)return null;const b=/^\[image\]\s+(.+)$/.exec(c);if(b){const T=(b[1]??"").trim();return T?{text:"",imageUrl:T}:null}return{text:c}}function O(a){I();const c=a==null?void 0:a.bosunPrevStateId,b=typeof c=="string"&&c.trim()?c:null,T=typeof(a==null?void 0:a.bosunUserMessage)=="string"&&a.bosunUserMessage||null;let U=T?_(T):null;if(!U){const k=a==null?void 0:a.bosunStateId;if(typeof k=="string"&&k.trim()){const H=r.agentStates.find(y=>y.id===k);U=_((H==null?void 0:H.userMessage)??"")}}U&&(o.selectState(b),o.sendChatMessage({sender:"user",text:U.text,imageUrl:U.imageUrl}))}function I(){l(u,null)}function x(){var b,T;const a=(T=(b=r.currentStep)==null?void 0:b.name)==null?void 0:T.trim();if(!a)return null;const c=r.promptDrafts[a];return typeof c!="string"?null:{step:a,prompt:c}}function F(a){const c=typeof(a==null?void 0:a.bosunUserMessage)=="string"?a.bosunUserMessage:null;if(c&&c.trim())return c;const b=a==null?void 0:a.bosunStateId;if(typeof b!="string"||!b.trim())return null;const T=r.agentStates.find(k=>k.id===b);return(typeof(T==null?void 0:T.userMessage)=="string"?T.userMessage.trim():"")||null}async function oe(a){const c=typeof(a==null?void 0:a.bosunStateId)=="string"&&a.bosunStateId.trim()?a.bosunStateId.trim():null;if(!r.agentId||!c)return;const b=F(a);if(!b)return;const T=typeof(a==null?void 0:a.bosunPrevStateId)=="string"&&a.bosunPrevStateId.trim()?a.bosunPrevStateId.trim():null,U=x();await o.flushPromptSave(),l(u,{sourceTrace:a,targetStateId:c,choices:[],loading:!0,applyingId:null,error:null},!0);try{const k=await $e.agents.generateVariants.mutate({agentId:r.agentId,region:r.region,prevStateId:T,rawUserMessage:b,context:r.context,promptUpdate:U,count:9});if(!e(u)||e(u).sourceTrace!==a||e(u).targetStateId!==c)return;l(u,{...e(u),choices:k,loading:!1,error:null},!0)}catch(k){if(console.error("Failed to generate variants",k),!e(u)||e(u).sourceTrace!==a||e(u).targetStateId!==c)return;l(u,{...e(u),choices:[],loading:!1,error:typeof(k==null?void 0:k.message)=="string"?k.message:"Failed to generate variants"},!0)}}function _e(a){oe(a)}function fe(){o.hangup()}function Se(){var c;const a=(c=e(u))==null?void 0:c.sourceTrace;a&&oe(a)}async function Fe(a){if(!e(u)||!r.agentId)return;const c=e(u).choices.find(b=>b.id===a);if(c){l(u,{...e(u),applyingId:a,error:null},!0);try{await $e.agents.commitVariant.mutate({agentId:r.agentId,region:r.region,targetStateId:e(u).targetStateId,state:c.state}),I(),Mt(),Ht(),o.sendAppEvent({type:"reload-project"})}catch(b){if(console.error("Failed to apply variant",b),!e(u))return;l(u,{...e(u),applyingId:null,error:typeof(b==null?void 0:b.message)=="string"?b.message:"Failed to apply variant"},!0)}}}function Ue(){I()}Ee(()=>{const a=e(u),c=r.agentId,b=a==null?void 0:a.sourceTrace;!a||!b||(!c||!re.includes(b))&&l(u,null)});var Oe=Nn(),He=C(Oe),Le=C(He);{var Ve=a=>{Jt(a,{get agentStates(){return r.agentStates},get currentState(){return r.currentState},class:"ml-9",onSelectState:c=>o.selectState(c)})};z(Le,a=>{r.agentStates.length>1&&a(Ve)})}var K=E(Le,2),se=C(K);{let a=S(()=>!r.agentId);pe(se,{variant:"secondary",size:"small",get disabled(){return e(a)},get"aria-expanded"(){return r.contextPopoverOpen},"aria-haspopup":"dialog",get onclick(){return o.toggleContextPopover},children:(c,b)=>{ze();var T=be("Edit context");p(c,T)},$$slots:{default:!0}})}var Me=E(se,2);{let a=S(()=>!re.length&&!st.length);pe(Me,{variant:"secondary",size:"small",get disabled(){return e(a)},get"aria-expanded"(){return e(g)},"aria-haspopup":"listbox","aria-controls":"roleplay-copy-dropdown",onclick:c=>{c.stopPropagation(),l(g,!e(g))},get el(){return e(d)},set el(c){l(d,c,!0)},children:(c,b)=>{var T=Ae(),U=ue(T);{var k=y=>{var J=be("Copied logs");p(y,J)},H=y=>{var J=Ae(),ge=ue(J);{var qe=we=>{var D=be("Copied traces (with prompts)");p(we,D)},Je=we=>{var D=Ae(),gt=ue(D);{var vt=Pe=>{var We=be("Copied traces (without prompts)");p(Pe,We)},tt=Pe=>{var We=be("Copy...");p(Pe,We)};z(gt,Pe=>{e(m)==="without-prompts"?Pe(vt):Pe(tt,!1)},!0)}p(we,D)};z(ge,we=>{e(m)==="with-prompts"?we(qe):we(Je,!1)},!0)}p(y,J)};z(U,y=>{e(m)==="logs"?y(k):y(H,!1)})}p(c,T)},$$slots:{default:!0}})}var Ne=E(Me,2);Tt(Ne,{id:"roleplay-copy-dropdown",get open(){return e(g)},onClose:()=>l(g,!1),get anchorEl(){return e(d)},placement:"bottom-end",offset:[0,1],children:c=>{var b=kn(),T=C(b);{let H=S(()=>!st.length);pe(T,{variant:"ghost",size:"small",role:"option",get disabled(){return e(H)},onclick:y=>{y.stopPropagation(),l(g,!1),he()},class:"block 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:(y,J)=>{ze();var ge=be("Copy logs");p(y,ge)},$$slots:{default:!0}})}var U=E(T,2);{let H=S(()=>!re.length);pe(U,{variant:"ghost",size:"small",role:"option",get disabled(){return e(H)},onclick:y=>{y.stopPropagation(),l(g,!1),Z(!0)},class:"block 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:(y,J)=>{ze();var ge=be("Copy traces with prompts");p(y,ge)},$$slots:{default:!0}})}var k=E(U,2);{let H=S(()=>!re.length);pe(k,{variant:"ghost",size:"small",role:"option",get disabled(){return e(H)},onclick:y=>{y.stopPropagation(),l(g,!1),Z(!1)},class:"block rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400",children:(y,J)=>{ze();var ge=be("Copy traces without prompts");p(y,ge)},$$slots:{default:!0}})}w(b),p(c,b)},$$slots:{default:!0}});var ct=E(Ne,2);pe(ct,{size:"small",onclick:xe,children:(a,c)=>{ze();var b=be("New chat");p(a,b)},$$slots:{default:!0}}),w(K),w(He);var Qe=E(He,2),et=C(Qe);{var dt=a=>{var c=Mn();p(a,c)},ft=a=>{var c=Ae(),b=ue(c);{var T=k=>{var H=Pn();p(k,H)},U=k=>{var H=An(),y=C(H);{let J=S(()=>{var D;return((D=e(u))==null?void 0:D.sourceTrace)??null}),ge=S(()=>{var D;return((D=e(u))==null?void 0:D.choices)??[]}),qe=S(()=>{var D;return((D=e(u))==null?void 0:D.loading)??!1}),Je=S(()=>{var D;return((D=e(u))==null?void 0:D.applyingId)??null}),we=S(()=>{var D;return((D=e(u))==null?void 0:D.error)??null});Cn(y,{class:"h-full min-w-0",get context(){return r.context},get agentId(){return r.agentId},get agentType(){return r.agentType},onmessage:D=>o.sendChatMessage(D),get analyzeDisabled(){return e(f)},onAnalyzeTrace:V,onRegenerateTrace:O,onRevertToState:D=>o.selectState(D),onSeeVariants:_e,onHangup:fe,get variantSourceTrace(){return e(J)},get variantChoices(){return e(ge)},get variantLoading(){return e(qe)},get variantApplyingId(){return e(Je)},get variantError(){return e(we)},onCancelVariants:I,onRegenerateVariants:Se,onChooseOriginalVariant:Ue,onChooseVariant:Fe})}w(H),p(k,H)};z(b,k=>{r.agentId?k(U,!1):k(T)},!0)}p(a,c)};z(et,a=>{!r.wsLoaded||!r.chatReady?a(dt):a(ft,!1)})}w(Qe),w(Oe),p(s,Oe),ut()}export{Yn as component};
@@ -1 +1 @@
1
- {"version":"1777841976979"}
1
+ {"version":"1778572095187"}
Binary file
Binary file
@@ -1,9 +1,9 @@
1
1
  const index = 0;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_layout.svelte-B3_pVwfN.js')).default;
4
- const imports = ["_app/immutable/nodes/0.BS46Erbu.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/CB3MYTwM.js","_app/immutable/chunks/BRMnbBOX.js","_app/immutable/chunks/BFchB-2I.js","_app/immutable/chunks/BmJonxL2.js","_app/immutable/chunks/2QZUjt52.js","_app/immutable/chunks/CYF48L9_.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/B394X4Dm.js"];
4
+ const imports = ["_app/immutable/nodes/0.B_DUfle6.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/CB3MYTwM.js","_app/immutable/chunks/BRMnbBOX.js","_app/immutable/chunks/BFchB-2I.js","_app/immutable/chunks/BmJonxL2.js","_app/immutable/chunks/Qml5ZyeD.js","_app/immutable/chunks/yPd1epTY.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/B394X4Dm.js"];
5
5
  const stylesheets = ["_app/immutable/assets/0.DkT7Ji57.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=0-6QwqOuSN.js.map
9
+ //# sourceMappingURL=0-DQYiSkTc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0-6QwqOuSN.js","sources":["../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.BS46Erbu.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/CB3MYTwM.js\",\"_app/immutable/chunks/BRMnbBOX.js\",\"_app/immutable/chunks/BFchB-2I.js\",\"_app/immutable/chunks/BmJonxL2.js\",\"_app/immutable/chunks/2QZUjt52.js\",\"_app/immutable/chunks/CYF48L9_.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/B394X4Dm.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.DkT7Ji57.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpX,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"0-DQYiSkTc.js","sources":["../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.B_DUfle6.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/CB3MYTwM.js\",\"_app/immutable/chunks/BRMnbBOX.js\",\"_app/immutable/chunks/BFchB-2I.js\",\"_app/immutable/chunks/BmJonxL2.js\",\"_app/immutable/chunks/Qml5ZyeD.js\",\"_app/immutable/chunks/yPd1epTY.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/B394X4Dm.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.DkT7Ji57.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpX,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 1;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./error.svelte-DZg1sSW2.js')).default;
4
- const imports = ["_app/immutable/nodes/1.BkQc4vam.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/B7r4ghJg.js","_app/immutable/chunks/BRMnbBOX.js","_app/immutable/chunks/CB3MYTwM.js","_app/immutable/chunks/rHISuZrQ.js","_app/immutable/chunks/2QZUjt52.js","_app/immutable/chunks/CYF48L9_.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/B394X4Dm.js"];
4
+ const imports = ["_app/immutable/nodes/1.BMRtiAgG.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/B7r4ghJg.js","_app/immutable/chunks/BRMnbBOX.js","_app/immutable/chunks/CB3MYTwM.js","_app/immutable/chunks/rHISuZrQ.js","_app/immutable/chunks/Qml5ZyeD.js","_app/immutable/chunks/yPd1epTY.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/B394X4Dm.js"];
5
5
  const stylesheets = [];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1-BqEYCSqb.js.map
9
+ //# sourceMappingURL=1-DhkFWhdS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1-BqEYCSqb.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.BkQc4vam.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/B7r4ghJg.js\",\"_app/immutable/chunks/BRMnbBOX.js\",\"_app/immutable/chunks/CB3MYTwM.js\",\"_app/immutable/chunks/rHISuZrQ.js\",\"_app/immutable/chunks/2QZUjt52.js\",\"_app/immutable/chunks/CYF48L9_.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/B394X4Dm.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpX,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1-DhkFWhdS.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.BMRtiAgG.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/B7r4ghJg.js\",\"_app/immutable/chunks/BRMnbBOX.js\",\"_app/immutable/chunks/CB3MYTwM.js\",\"_app/immutable/chunks/rHISuZrQ.js\",\"_app/immutable/chunks/Qml5ZyeD.js\",\"_app/immutable/chunks/yPd1epTY.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/B394X4Dm.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpX,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}