@ironmussa/funny 0.1.6 → 0.1.8

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 (88) hide show
  1. package/README.md +5 -6
  2. package/bin/funny.js +88 -26
  3. package/package.json +8 -2
  4. package/packages/client/dist/assets/{AcceptInvitePage-Dy5B7DII.js → AcceptInvitePage-rU3bsShb.js} +1 -1
  5. package/packages/client/dist/assets/{ActivityPane-CV-MhQ_w.js → ActivityPane-_esdCTUa.js} +1 -1
  6. package/packages/client/dist/assets/{AddProjectView-CtW0xjNI.js → AddProjectView-DbYb4Fj3.js} +1 -1
  7. package/packages/client/dist/assets/{AllThreadsView-Cf2UKLJT.js → AllThreadsView-BydYhYmA.js} +1 -1
  8. package/packages/client/dist/assets/{AnalyticsView-YsDXUQUQ.js → AnalyticsView-BB2Ry67l.js} +1 -1
  9. package/packages/client/dist/assets/{App-C4O1uemY.js → App-DUg9Ibif.js} +3 -3
  10. package/packages/client/dist/assets/{AutomationInboxView-Cj4jEXBW.js → AutomationInboxView-BwTXxoaj.js} +1 -1
  11. package/packages/client/dist/assets/{BrowserPanel-CDhQ4pqq.js → BrowserPanel-DQ8qgIKh.js} +1 -1
  12. package/packages/client/dist/assets/{BrowserPreview-mlb1GznK.js → BrowserPreview-CYbez9uL.js} +1 -1
  13. package/packages/client/dist/assets/{CircuitBreakerDialog-IM7SsKrh.js → CircuitBreakerDialog-DWNXYG6L.js} +1 -1
  14. package/packages/client/dist/assets/{CommandPalette-DeUqe9ev.js → CommandPalette-Xtu8FVFI.js} +1 -1
  15. package/packages/client/dist/assets/{CommentsPane-D6mo7vNO.js → CommentsPane-BbeD18iG.js} +1 -1
  16. package/packages/client/dist/assets/{CsvTable-Bmlrdqi0.js → CsvTable-CRwHp6ct.js} +1 -1
  17. package/packages/client/dist/assets/{FileSearchDialog-DOht2aCz.js → FileSearchDialog-BHaSfVdS.js} +1 -1
  18. package/packages/client/dist/assets/{FileTree-C-k9qiIl.js → FileTree-Dnh5srh4.js} +1 -1
  19. package/packages/client/dist/assets/{FolderPicker-Ccn8T963.js → FolderPicker-BBAhdFeF.js} +1 -1
  20. package/packages/client/dist/assets/{GeneralSettingsView-70nd75Ez.js → GeneralSettingsView-Q-zEISEg.js} +2 -2
  21. package/packages/client/dist/assets/{GitProgressModal-D0sRB_fY.js → GitProgressModal-2BUdcYw_.js} +1 -1
  22. package/packages/client/dist/assets/{LiveColumnsView-Dtj6sjhY.js → LiveColumnsView-CWo09zTG.js} +1 -1
  23. package/packages/client/dist/assets/{LoginPage-CX5SoY9d.js → LoginPage-BPM6y1Yj.js} +1 -1
  24. package/packages/client/dist/assets/{MediaPreview-CSLd2xQQ.js → MediaPreview-JO18IhtD.js} +1 -1
  25. package/packages/client/dist/assets/{MediaPreviewDialog-b3uRxGUy.js → MediaPreviewDialog-HOtpKIQD.js} +1 -1
  26. package/packages/client/dist/assets/{MermaidBlock--PnCK6OJ.js → MermaidBlock-DxJPnpCS.js} +1 -1
  27. package/packages/client/dist/assets/{MobilePage-Z6RW3JRa.js → MobilePage-B9LixzUJ.js} +2 -2
  28. package/packages/client/dist/assets/{MonacoEditorDialog-W6AzCK4P.js → MonacoEditorDialog-BGuOUdlF.js} +1 -1
  29. package/packages/client/dist/assets/{OrchestratorView-Bk_chlQ2.js → OrchestratorView-BiNJtR8P.js} +1 -1
  30. package/packages/client/dist/assets/{PreferencesPanel-aHOy4y8T.js → PreferencesPanel-DEJ3B3Mx.js} +1 -1
  31. package/packages/client/dist/assets/{PreviewBrowser-C2HgO5nb.js → PreviewBrowser-pI5xiPAQ.js} +1 -1
  32. package/packages/client/dist/assets/{ProjectFilesPane-B3eZDUID.js → ProjectFilesPane-H9zl1XxW.js} +1 -1
  33. package/packages/client/dist/assets/{ProjectHeader-D8OTTLq1.js → ProjectHeader-CewLbcv6.js} +1 -1
  34. package/packages/client/dist/assets/{ProjectHooksSettings-oE9zynCA.js → ProjectHooksSettings-Dz9pRWek.js} +1 -1
  35. package/packages/client/dist/assets/{ReviewPane-DodN13Ot.js → ReviewPane-CdspHwl1.js} +1 -1
  36. package/packages/client/dist/assets/{SearchablePicker-BRZ5MGoM.js → SearchablePicker-BlagKlJZ.js} +1 -1
  37. package/packages/client/dist/assets/{SettingsDetailView-1z4FmtOi.js → SettingsDetailView-DdyYDZde.js} +1 -1
  38. package/packages/client/dist/assets/{SettingsPageContent-CypV-sTN.js → SettingsPageContent-ChL9gIzA.js} +3 -3
  39. package/packages/client/dist/assets/{SetupWizard-DCtmS7Go.js → SetupWizard-B3KuWJkX.js} +1 -1
  40. package/packages/client/dist/assets/{Sidebar-DG8RI-WX.js → Sidebar-Cp0Ic-cc.js} +1 -1
  41. package/packages/client/dist/assets/{StashTab-CH8c3zKD.js → StashTab-CAqDgV-y.js} +1 -1
  42. package/packages/client/dist/assets/{TestRunnerPane-Dx19F3V9.js → TestRunnerPane-RwW_FDpa.js} +1 -1
  43. package/packages/client/dist/assets/{TextSearchDialog-CLPa_FJZ.js → TextSearchDialog-Q9Pvzolm.js} +1 -1
  44. package/packages/client/dist/assets/{ThreadPowerline-zo87eggE.js → ThreadPowerline-DVWTyxRC.js} +1 -1
  45. package/packages/client/dist/assets/{ThreadStatusPin-DQr-M4nV.js → ThreadStatusPin-CsUuwM1e.js} +1 -1
  46. package/packages/client/dist/assets/{ThreadView-42eEYL7W.js → ThreadView-PbhTHc_b.js} +1 -1
  47. package/packages/client/dist/assets/{app-store-CfgpkFla.js → app-store-DjqdXPml.js} +1 -1
  48. package/packages/client/dist/assets/{automation-store-CeG5quCS.js → automation-store-CN7G1rmj.js} +1 -1
  49. package/packages/client/dist/assets/{browser-panel-store-NtcEgowi.js → browser-panel-store-BrY0M-3u.js} +2 -2
  50. package/packages/client/dist/assets/{button-CZ967bB8.js → button-DqIT3IPY.js} +1 -1
  51. package/packages/client/dist/assets/{combine-BhTXrTft.js → combine-DMf_Pe7m.js} +1 -1
  52. package/packages/client/dist/assets/{comment-store-CK5G8WPn.js → comment-store-BLJA7qy5.js} +1 -1
  53. package/packages/client/dist/assets/{diff-parse-PPACfn0L.js → diff-parse-DoxsYsvR.js} +1 -1
  54. package/packages/client/dist/assets/{element-A6J8F7_i.js → element-CWNkjFyh.js} +1 -1
  55. package/packages/client/dist/assets/{go-to-thread-BNBZv0ib.js → go-to-thread-1QCGvOr9.js} +1 -1
  56. package/packages/client/dist/assets/{index-DCJpZz6M.js → index-CmX0PQ41.js} +2 -2
  57. package/packages/client/dist/assets/{input-C2LWQS5Y.js → input-Bi-kCBn4.js} +1 -1
  58. package/packages/client/dist/assets/{items-azeOGVff.js → items-z89mbR0g.js} +1 -1
  59. package/packages/client/dist/assets/{job-store-Bxebwj0k.js → job-store-C6L3TZ6m.js} +1 -1
  60. package/packages/client/dist/assets/{kbd-GnT1qEi9.js → kbd-CYltzHK-.js} +1 -1
  61. package/packages/client/dist/assets/{loading-state-CZgfErMi.js → loading-state-CuNSmah_.js} +1 -1
  62. package/packages/client/dist/assets/{markdown-components-gp0WAMTj.js → markdown-components-CDAAlOfJ.js} +1 -1
  63. package/packages/client/dist/assets/{native-git-store-KpsndLzH.js → native-git-store-BRK3QIOm.js} +1 -1
  64. package/packages/client/dist/assets/{orchestrator-store-CgmJPyrE.js → orchestrator-store-CpN46D7d.js} +1 -1
  65. package/packages/client/dist/assets/{pipeline-approval-store-B7WMnOHB.js → pipeline-approval-store-L_CnXcgU.js} +1 -1
  66. package/packages/client/dist/assets/{pr-detail-store-DetZmOmN.js → pr-detail-store-9Jf4dkle.js} +1 -1
  67. package/packages/client/dist/assets/{providers-tWTQl7V7.js → providers-CDWMbzb0.js} +1 -1
  68. package/packages/client/dist/assets/{sidebar-D6F-jed-.js → sidebar-thesisNh.js} +1 -1
  69. package/packages/client/dist/assets/{tabs-DK0DleVt.js → tabs-D2Tzh6Ge.js} +1 -1
  70. package/packages/client/dist/assets/{test-store-20Ippy2V.js → test-store-BIzIn_1p.js} +1 -1
  71. package/packages/client/dist/assets/{tooltip-icon-button-DD8fKyR8.js → tooltip-icon-button-pAxgBlHP.js} +1 -1
  72. package/packages/client/dist/assets/use-active-thread-id-BBsLXIrt.js +1 -0
  73. package/packages/client/dist/assets/{use-branch-switch-DiWo4rV_.js → use-branch-switch-Z5J9CKxB.js} +1 -1
  74. package/packages/client/dist/assets/{use-image-lightbox-Wc7UJrhB.js → use-image-lightbox-Bu7huixI.js} +1 -1
  75. package/packages/client/dist/assets/{use-stable-navigate-skK7Gqvr.js → use-stable-navigate-D0phYEEB.js} +1 -1
  76. package/packages/client/dist/assets/{use-terminal-scope-CFAKbZrD.js → use-terminal-scope-CWqnHWM0.js} +1 -1
  77. package/packages/client/dist/assets/{use-thread-creation-O-5GoSUZ.js → use-thread-creation-d4X0pWGi.js} +1 -1
  78. package/packages/client/dist/assets/{use-thread-search-BvRo6Jmy.js → use-thread-search-BGPGuqA-.js} +1 -1
  79. package/packages/client/dist/assets/{use-todo-panel-DE66QQ1x.js → use-todo-panel-Dh6mAnT6.js} +1 -1
  80. package/packages/client/dist/assets/{use-unified-prompt-model-groups-BFPXD7t_.js → use-unified-prompt-model-groups-DK1DksUz.js} +1 -1
  81. package/packages/client/dist/assets/{use-ws-DSu9Bw5F.js → use-ws-Dne_mRf6.js} +3 -3
  82. package/packages/client/dist/assets/{visualizer-loader-Dsa-0UOJ.js → visualizer-loader-Di5LNXnx.js} +1 -1
  83. package/packages/client/dist/assets/{watcher-store-CPHW6IK4.js → watcher-store-CwGkvZwT.js} +1 -1
  84. package/packages/client/dist/index.html +1 -1
  85. package/packages/runtime/dist/index.js +2 -2
  86. package/packages/runtime/dist/index.js.map +1 -1
  87. package/packages/runtime/dist/pty-daemon.ts +508 -0
  88. package/packages/client/dist/assets/use-active-thread-id-E8-K63Gj.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{$ as t,F as n,Lt as r,sr as i,un as a,yn as o,zr as s}from"./icons-sqwAEN28.js";import{o as c}from"./markdown-DBtwZWLP.js";import{a as l,c as u,n as d,r as f,t as p}from"./use-image-lightbox-Wc7UJrhB.js";import{t as m}from"./useTranslation-DAPPK3Hy.js";import{G as h,P as g,W as _,_t as v,f as y,gt as b,j as x,k as S,lt as C,mt as w,q as T}from"./index-DCJpZz6M.js";import{t as E}from"./button-CZ967bB8.js";import{$r as D,Cr as O,Dr as k,Gr as A,Ir as ee,Jr as j,Lr as M,Lt as N,Pr as P,Rt as F,St as te,Ur as I,Wn as L,Wt as R,Xr as z,Yr as B,at as V,jr as H,mn as U,qr as ne,wt as re,xt as ie,yr as W,yt as ae}from"./items-azeOGVff.js";import{t as oe}from"./loading-state-CZgfErMi.js";import{n as G}from"./review-pane-store-B31R8Yhv.js";import{t as se}from"./use-todo-panel-DE66QQ1x.js";import{n as ce,r as K,t as q}from"./use-thread-creation-O-5GoSUZ.js";var J=e(s(),1);function Y(e){let t=v(),n=b(),[r,i]=(0,J.useState)(`idle`),a=(0,J.useRef)(null),o=(0,J.useRef)(e);o.current=e;let s=(0,J.useRef)(n.pathname);s.current=n.pathname;let c=(0,J.useRef)(!1),l=(0,J.useCallback)(()=>{let e=a.current;a.current=null,i(`idle`),e&&(c.current=!0,t(e),setTimeout(()=>{c.current=!1},0))},[t]),u=(0,J.useCallback)(()=>{a.current=null,i(`idle`)},[]);return(0,J.useEffect)(()=>{let e=(e,t)=>c.current?!1:o.current(e,t),t=t=>{let n=t.target.closest(`a`);if(!n)return;let r=n.getAttribute(`href`);!r||r.startsWith(`http`)||r.startsWith(`//`)||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey||e(s.current,r)&&(t.preventDefault(),t.stopPropagation(),a.current=r,i(`blocked`))},n=()=>{e(s.current,window.location.pathname)&&(window.history.pushState(null,``,s.current),a.current=window.location.pathname,i(`blocked`))},r=window.history.pushState.bind(window.history),l=window.history.replaceState.bind(window.history);return window.history.pushState=function(t,n,o){let c=o?new URL(o,window.location.origin).pathname:s.current;if(e(s.current,c)){a.current=c,i(`blocked`);return}return r(t,n,o)},window.history.replaceState=function(t,n,r){let o=r?new URL(r,window.location.origin).pathname:s.current;if(e(s.current,o)){a.current=o,i(`blocked`);return}return l(t,n,r)},document.addEventListener(`click`,t,!0),window.addEventListener(`popstate`,n),()=>{document.removeEventListener(`click`,t,!0),window.removeEventListener(`popstate`,n),window.history.pushState=r,window.history.replaceState=l}},[]),{state:r,proceed:l,reset:u}}function le({effectiveProjectId:e,defaultThreadMode:t,latestPromptTextRef:n,hasContentRef:r,justSubmittedRef:i}){let{t:a}=m(),o=N(e=>e.loadThreadsForProject),[s,c]=(0,J.useState)(!1),l=Y((e,t)=>i.current||e===t?!1:r.current);return{blocker:l,savingBacklog:s,handleSaveToBacklog:(0,J.useCallback)(async()=>{if(!e)return;let r=n.current.trim();if(!r){l.proceed?.();return}c(!0);let i=await g.createIdleThread({projectId:e,title:r.slice(0,200),mode:t,prompt:r});if(c(!1),i.isErr()){L(i.error,`createThread`);return}await o(e),I.success(a(`toast.threadCreated`,{title:r.slice(0,200)})),l.proceed?.()},[e,t,o,l,n,a]),handleDiscard:(0,J.useCallback)(()=>{l.proceed?.()},[l]),handleCancel:(0,J.useCallback)(()=>{l.reset?.()},[l])}}function ue(e){return!(e.disabled||e.status===`error`)}var X=e(c(),1);function de(e){return F(e?`/projects/${e}/settings/mcp-server`:`/settings/mcp-server`)}var fe={stdio:`Local command`,http:`Remote HTTP`,sse:`Streaming SSE`},Z={project:`Project`,user:`User`};function pe(e){return e.url?e.url:e.command?[e.command,...e.args??[]].join(` `):null}function me({projectPath:e,projectId:i,provider:a=`claude`,className:o}){let{t:s}=m(),[c,l]=(0,J.useState)([]),[u,d]=(0,J.useState)(!1),f=(0,J.useRef)(void 0),p=(0,J.useCallback)(async()=>{if(!e){l([]);return}d(!0);let t=await g.listMcpServers(e,a);l(t.isOk()?t.value.servers:[]),d(!1)},[e,a]);if((0,J.useEffect)(()=>{let t=e?`${e}:${a}`:void 0;t!==f.current&&(f.current=t,p())},[e,a,p]),!e)return null;let v=c.filter(ue);return(0,X.jsxs)(`div`,{className:C(`mt-2 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,o),"data-testid":`available-mcp-servers`,children:[(0,X.jsxs)(w,{to:de(i),className:`hover:bg-muted hover:text-foreground inline-flex shrink-0 items-center gap-1 rounded px-1 py-0.5 transition-colors`,"data-testid":`available-mcp-settings-link`,"aria-label":s(`newThread.configureMcp`),children:[(0,X.jsx)(t,{className:`size-3.5`}),(0,X.jsx)(`span`,{children:s(`newThread.availableMcp`)})]}),u?(0,X.jsx)(r,{className:`icon-xs animate-spin`,"data-testid":`available-mcp-loading`}):v.length===0?(0,X.jsx)(`span`,{className:`text-muted-foreground/60`,"data-testid":`available-mcp-empty`,children:s(`newThread.noMcpServers`)}):v.map(e=>{let t=e.status===`needs_auth`,r=pe(e),i=s(`mcp.transport.${e.type}`,fe[e.type]),a=e.source?s(`mcp.source.${e.source}`,Z[e.source]):s(`mcp.source.unknown`,`Unknown`),o=t?s(`mcp.needsAuth`):s(`mcp.status.ready`,`Ready`);return(0,X.jsxs)(_,{children:[(0,X.jsx)(T,{asChild:!0,children:(0,X.jsxs)(V,{variant:`outline`,size:`xs`,"data-testid":`available-mcp-${e.name}`,"aria-label":t?`${e.name}: ${s(`mcp.needsAuth`)}`:e.name,className:C(t&&`border-amber-500/50 bg-amber-500/10 text-amber-300`),children:[t&&(0,X.jsx)(n,{"aria-hidden":`true`}),e.name]})}),(0,X.jsxs)(h,{side:`bottom`,align:`start`,className:`w-72 p-3 text-left`,children:[(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,X.jsx)(`p`,{className:`min-w-0 truncate font-medium text-gray-950`,children:e.name}),(0,X.jsx)(`span`,{className:`shrink-0 rounded-full border border-gray-200 bg-gray-50 px-1.5 py-0.5 font-mono text-[10px] leading-none text-gray-600 uppercase`,children:e.type})]}),(0,X.jsxs)(`dl`,{className:`mt-2 space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.transport`,`Transport`)}),(0,X.jsx)(`dd`,{className:`truncate text-gray-900`,children:i})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.scope`,`Scope`)}),(0,X.jsx)(`dd`,{className:`truncate text-gray-900`,children:a})]}),r&&(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:e.url?s(`mcp.tooltip.endpoint`,`Endpoint`):s(`mcp.tooltip.command`,`Command`)}),(0,X.jsx)(`dd`,{className:`truncate font-mono text-[11px] text-gray-900`,children:r})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.status`,`Status`)}),(0,X.jsx)(`dd`,{className:C(`truncate text-gray-900`,t&&`text-amber-700`),children:o})]})]}),t&&(0,X.jsx)(`div`,{className:`mt-2 rounded border border-amber-500/30 bg-amber-50 px-2 py-1.5`,children:(0,X.jsx)(`p`,{className:`text-amber-800`,children:s(`mcp.authHint`)})})]})]},e.name)})]})}function he({open:e,loading:t,onSave:n,onDiscard:i,onCancel:a}){let{t:o}=m();return(0,X.jsx)(A,{open:e,onOpenChange:e=>!e&&a(),children:(0,X.jsxs)(ne,{className:`sm:max-w-xs`,"data-testid":`save-backlog-dialog`,children:[(0,X.jsxs)(z,{children:[(0,X.jsx)(D,{children:o(`saveBacklog.title`)}),(0,X.jsx)(j,{children:o(`saveBacklog.description`)})]}),(0,X.jsxs)(B,{className:`flex-col gap-1.5 sm:flex-col sm:justify-stretch sm:space-x-0`,children:[(0,X.jsxs)(E,{"data-testid":`save-backlog-save`,variant:`default`,size:`sm`,className:`w-full`,onClick:n,disabled:t,children:[t&&(0,X.jsx)(r,{className:`icon-sm mr-1.5 animate-spin`}),o(`saveBacklog.save`)]}),(0,X.jsx)(E,{"data-testid":`save-backlog-discard`,variant:`secondary`,size:`sm`,className:`w-full`,onClick:i,disabled:t,children:o(`saveBacklog.discard`)}),(0,X.jsx)(E,{"data-testid":`save-backlog-cancel`,variant:`ghost`,size:`sm`,className:`w-full`,onClick:a,disabled:t,children:o(`saveBacklog.cancel`)})]})]})})}function ge(e,t=40){return e.toLowerCase().replace(/[^a-z0-9\s-]/g,``).trim().replace(/\s+/g,`-`).replace(/-+/g,`-`).slice(0,t).replace(/-$/,``)||`thread`}function _e({projectIdOverride:e,isScratchOverride:t,onCreated:n,onCancel:r}={}){let s=v(),{t:c}=m(),l=W(e=>e.newThreadProjectId),u=W(e=>e.newThreadIsScratch),d=t??u,f=k(e=>e.selectedProjectId),p=e||f||l,h=W(e=>e.newThreadIdleOnly),g=N(e=>e.addScratchThread),_=W(e=>e.activeDesignId),b=W(e=>e.newThreadIssueContext),x=W(e=>e.clearIssueContext),S=W(e=>e.composePrefillPrompt),C=W(e=>e.setComposePrefillPrompt),w=(0,J.useRef)(S);(0,J.useEffect)(()=>{S!==null&&C(null)},[]);let T=W(e=>e.cancelNewThread),D=r??T,O=W(e=>e.setReviewPaneOpen),A=N(e=>e.loadThreadsForProject),j=k(e=>e.projects),M=p?j.find(e=>e.id===p):void 0,P=M?.defaultMode??`local`,te=y(e=>e.toolPermissions),L=(0,J.useMemo)(()=>M?.path??``,[M?.path]),R=M?.defaultProvider??`claude`,[z,B]=(0,J.useState)(R);(0,J.useEffect)(()=>{B(R)},[R]);let[V,H]=(0,J.useState)(null),[U,ne]=(0,J.useState)(P===`worktree`),re=(0,J.useRef)(!1),ie=(0,J.useRef)(``),ae=(0,J.useRef)(!1),G=(0,J.useCallback)((e,t)=>{re.current=e,ie.current=t,e&&t.trim()?H(`${ge(M?.name||`project`)}/${ge(t.slice(0,200))}-xxxxxx`):H(null)},[M?.name]),{blocker:se,savingBacklog:Y,handleSaveToBacklog:ue,handleDiscard:de,handleCancel:fe}=le({effectiveProjectId:p??void 0,defaultThreadMode:P,latestPromptTextRef:ie,hasContentRef:re,justSubmittedRef:ae}),[Z,pe]=(0,J.useState)(null),_e=(0,J.useRef)(``),[Q,ve]=(0,J.useState)(!1),{creating:$,createThread:ye}=q({projectId:d?null:p??null,defaultThreadMode:P,toolPermissions:te,isScratch:d,forceIdle:h,designId:_??void 0,onSuccess:async(e,t,r)=>{if((t===`scratch`||t===`normal`)&&(ae.current=!0),O(!1),t===`scratch`){g(r),n?n(e):(N.setState({selectedThreadId:e}),D(),s(F(ee(r))));return}if(p&&await A(p),t===`idle`){I.success(c(`toast.threadCreated`,{title:r?.title??``})),n?n(e):D();return}n?n(e):(N.setState({selectedThreadId:e}),D(),!_&&p&&s(F(`/projects/${p}/threads/${e}`)))}}),be=(0,J.useCallback)(async(e,t,r)=>{pe(null),_e.current=e;let i=await ye(e,t,r);return i?(!n&&!h&&(d||!_)&&ve(!0),i):(pe(_e.current),i)},[ye,n,h,d,_]);if($||Q)return(0,X.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,children:(0,X.jsx)(oe,{testId:`new-thread-creating`,label:c(`common.preparing`,`Preparing…`)})});if(d)return(0,X.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,"data-testid":`new-thread-scratch`,children:(0,X.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[(0,X.jsx)(`div`,{className:`text-muted-foreground mb-3 flex h-9 items-center gap-2 text-base`,"data-testid":`new-thread-context-bar`,children:(0,X.jsxs)(`span`,{className:`flex h-9 shrink-0 items-center gap-1.5 px-2 py-1`,children:[(0,X.jsx)(o,{className:`size-5 shrink-0`}),(0,X.jsx)(`span`,{className:`truncate font-medium`,"data-testid":`new-thread-scratch-label`,children:c(`scratch.composeTitle`,{defaultValue:`New scratch thread`})})]})}),(0,X.jsx)(`div`,{"data-testid":`new-thread-scratch-prompt`,children:(0,X.jsx)(K,{onSubmit:be,loading:$,isNewThread:!0,isScratch:!0,onContentChange:G,initialPrompt:Z??void 0},`scratch`)})]})});let xe=(0,X.jsx)(ce,{projectId:p||void 0});return(0,X.jsxs)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,children:[(0,X.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[b&&(0,X.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-1.5 rounded-md border border-emerald-500/20 bg-emerald-500/5 px-2 py-1 text-xs`,"data-testid":`issue-context-banner`,children:[(0,X.jsx)(i,{className:`size-3.5 shrink-0 text-emerald-500`}),(0,X.jsx)(`span`,{className:`text-muted-foreground truncate`,children:c(`issues.creatingFromIssue`,{title:b.title})}),(0,X.jsx)(E,{variant:`ghost`,size:`sm`,className:`ml-auto h-5 px-1 text-[10px]`,onClick:x,"data-testid":`issue-context-dismiss`,children:c(`common.dismiss`)})]}),U&&V&&(0,X.jsxs)(`div`,{className:`text-muted-foreground/60 mb-1.5 flex items-center gap-1.5 text-[10px]`,"data-testid":`worktree-preview`,children:[(0,X.jsx)(a,{className:`size-3 shrink-0`}),(0,X.jsx)(`span`,{className:`truncate font-mono`,children:V})]}),(0,X.jsx)(K,{onSubmit:be,loading:$,isNewThread:!0,showBacklog:!0,newThreadContextBar:xe,projectId:p||void 0,initialPrompt:b?.prompt??w.current??Z??void 0,onContentChange:G,onWorktreeModeChange:ne,onProviderChange:B},b?`${p}-issue`:w.current?`${p}-prefill-${w.current.length}`:p),(0,X.jsx)(me,{projectPath:L||void 0,projectId:p||void 0,provider:z})]}),(0,X.jsx)(he,{open:se.state===`blocked`,loading:Y,onSave:ue,onDiscard:de,onCancel:fe})]})}var Q=x(`ThreadCheckpoints`);function ve(e){let{t}=m(),n=v(),[r,i]=(0,J.useState)(null);return{forkingMessageId:r,handleFork:(0,J.useCallback)(async a=>{let o=e.activeThreadRef.current;if(!(!o||r)){i(a);try{let e=await g.forkThread(o.id,a);if(e.isErr()){Q.error(`forkThread failed`,{threadId:o.id,messageId:a,error:e.error.message}),I.error(t(`thread.forkFailed`,`Failed to fork conversation`));return}let r=e.value;N.setState({selectedThreadId:r.id}),await N.getState().loadThreadsForProject(o.projectId),n(F(`/projects/${o.projectId}/threads/${r.id}`)),I.success(t(`thread.forkSuccess`,`Forked conversation`))}finally{i(null)}}},[r,n,e,t]),handleRewind:(0,J.useCallback)(async n=>{let a=e.activeThreadRef.current;if(!(!a||r)){i(n);try{let e=await g.rewindCode(a.id,n);if(e.isErr()){Q.error(`rewindCode failed`,{threadId:a.id,messageId:n,error:e.error.message}),I.error(e.error.type===`INTERNAL`?t(`thread.rewindFailed`,`Failed to rewind code`):t(`thread.rewindFailedGeneric`,{error:e.error.message}));return}R(a.id),O(),await N.getState().selectThread(a.id);let r=e.value.rewind.filesChanged?.length??0;I.success(t(`thread.rewindSuccess`,{count:r,defaultValue_one:`Rewound 1 file`,defaultValue_other:`Rewound {{count}} files`,defaultValue:`Code rewound`}))}finally{i(null)}}},[r,e,t]),handleForkAndRewind:(0,J.useCallback)(async a=>{let o=e.activeThreadRef.current;if(!(!o||r)){i(a);try{let e=await g.forkAndRewind(o.id,a);if(e.isErr()){Q.error(`forkAndRewind failed`,{threadId:o.id,messageId:a,error:e.error.message}),I.error(t(`thread.forkAndRewindFailed`,`Failed to fork and rewind`));return}let r=e.value.thread;N.setState({selectedThreadId:r.id}),await N.getState().loadThreadsForProject(o.projectId),n(F(`/projects/${o.projectId}/threads/${r.id}`)),I.success(t(`thread.forkAndRewindSuccess`,`Forked and rewound code`))}finally{i(null)}}},[r,n,e,t])}}function $(e){let t=new Map;if(!e)return t;for(let n of e){if(n.type!==`changed_files_summary`)continue;let e=null;try{e=typeof n.data==`string`?JSON.parse(n.data):n.data}catch{e=null}!e?.userMessageId||!Array.isArray(e.files)||t.set(e.userMessageId,e.files)}return t}function ye({streamRef:e,searchBar:t,onOpenLightbox:n,enablePagination:r=!1,onVisibleMessageChange:i,className:a}){let{t:o}=m(),s=u(),c=S(e=>e.user?.id??null),h=ie(),g=re(),_=te(),v=ae(),y=N(e=>e.loadOlderMessages),b=N(e=>e.loadNewerMessages),x=G(e=>e.notifyDirty),w=M(h,c)&&!P(h,c),T=(0,J.useRef)(null),E=(0,J.useRef)(h);E.current=h;let{sending:D,handleSend:O,handleStop:A,handlePermissionApproval:ee,handleToolRespond:j}=d({activeThreadRef:E,sendingRef:(0,J.useRef)(!1),streamRef:e}),{handleFork:F,handleRewind:I,handleForkAndRewind:L,forkingMessageId:R}=ve({activeThreadRef:E}),z=(0,J.useRef)(null);z.current===null&&(z.current=new Set);let B=(0,J.useRef)(null);if(h&&h.id!==B.current){B.current=h.id;let e=new Set;if(g){for(let t of g)if(e.add(t.id),t.toolCalls)for(let n of t.toolCalls)e.add(n.id)}z.current=e}let V=se(),U=(0,J.useRef)(null);U.current===null&&(U.current=new Map);let ne=(0,J.useMemo)(()=>{let e=new Map;V.forEach((t,n)=>e.set(t.toolCallId,n));let t=U.current;return t.size===e.size&&[...e].every(([e,n])=>t.get(e)===n)?t:(U.current=e,e)},[V]),oe=p(),ce=n??oe.openLightbox,q=h?.provider===`external`,Y=!!h&&H(h)&&!q,le=(0,J.useMemo)(()=>Y?$(_):void 0,[Y,_]);if(!h)return null;let ue=h.queuedCount??0,de=h.status===`running`||ue>0,fe=(k.getState().projects.find(e=>e.id===h.projectId)?.followUpMode||`queue`)===`queue`,Z=H(h);return(0,X.jsxs)(`div`,{className:C(`relative flex min-h-0 min-w-0 flex-1 flex-col`,a),children:[t,(0,X.jsx)(f,{ref:e,threadId:h.id,status:h.status,messages:g??l,leadingUserMessage:h.leadingUserMessage,threadEvents:_,compactionEvents:v,initInfo:h.initInfo,resultInfo:h.resultInfo,waitingReason:h.waitingReason,pendingPermission:h.pendingPermission,isExternal:q,model:h.model,permissionMode:h.permissionMode,sessionChanges:le,onSessionReverted:()=>x(h.id),onSend:O,onPermissionApproval:ee,onToolRespond:j,onFork:Z?F:void 0,onRewind:Z?I:void 0,onForkAndRewind:Z?L:void 0,forkingMessageId:R,rewindDisabled:h.provider!==`claude`||!h.fileCheckpointingEnabled,rewindDisabledReason:h.provider===`claude`?o(`thread.rewindNoCheckpoints`,`This thread was started without file checkpointing`):o(`thread.rewindNotSupportedProvider`,`Rewind is only available for Claude threads`),pagination:r?{hasMore:h.hasMore??!1,hasMoreAfter:h.hasMoreAfter??!1,loadingMore:h.loadingMore??!1,load:y,loadAfter:b,total:h.totalMessages??0,windowStart:h.windowStart??0}:void 0,createdAt:h.createdAt,snapshotMap:ne,knownIds:z.current,onOpenLightbox:ce,onVisibleMessageChange:i,prefersReducedMotion:s,className:`min-h-0 flex-1`,footer:w?(0,X.jsxs)(`div`,{className:`text-muted-foreground border-border border-t px-4 py-3 text-center text-xs`,"data-testid":`thread-readonly-share-notice`,children:[o(`thread.readOnlyShare`,`You're viewing a shared thread — read-only. Only the owner can send messages.`),` `,(0,X.jsx)(`button`,{type:`button`,className:`text-status-info hover:underline`,onClick:()=>W.getState().setCommentsPaneOpen(!0),"data-testid":`thread-readonly-open-comments`,children:o(`thread.readOnlyShareComment`,`Open Comments to leave a note.`)})]}):h.waitingReason===`plan`?null:(0,X.jsx)(K,{onSubmit:O,onStop:A,loading:D,running:de&&!q,isQueueMode:fe,queuedCount:h.queuedCount??0,queuedNextMessage:h.queuedNextMessage,setPromptRef:T,placeholder:o(`thread.nextPrompt`)})}),!n&&oe.lightbox]})}function be(e,t,n){if(!t)return 0;let r=n?e:e.toLowerCase(),i=n?t:t.toLowerCase(),a=0,o=0;for(;;){let e=r.indexOf(i,o);if(e===-1)break;a++,o=e+i.length}return a}function xe({threadId:e,open:t,onClose:n,onNavigateToMessage:r,testIdPrefix:i=`thread-search`,className:a=`absolute right-4 top-0 z-30 gap-1.5 rounded-b-lg border border-t-0 border-border bg-popover px-2 py-1.5 shadow-md`}){let{t:o}=m(),[s,c]=(0,J.useState)(``),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)([]),[p,h]=(0,J.useState)(null),[_,v]=(0,J.useState)(!1),[y,b]=(0,J.useState)(new Map),x=(0,J.useRef)(null),S=(0,J.useRef)(null),C=(0,J.useRef)(0),w=(0,J.useCallback)((e,t)=>{b(n=>{if(n.get(e)===t)return n;let r=new Map(n);return r.set(e,t),r}),h(n=>!n||n.messageId!==e?n:t>0&&n.withinIdx>=t?{messageId:e,withinIdx:t-1}:n)},[]),T=(0,J.useCallback)((e,t,n)=>{let i=r(e,t,n,w);if(i&&typeof i.then==`function`){let e=++C.current;v(!0),i.finally(()=>{C.current===e&&v(!1)})}},[r,w]),E=(0,J.useMemo)(()=>{let e=s.trim();if(!e||d.length===0)return[];let t=[];for(let n of d){let r=y.get(n.messageId)??be(n.content,e,l);if(!(r<=0))for(let e=0;e<r;e++)t.push({messageId:n.messageId,withinIdx:e})}return t},[d,s,l,y]),D=(0,J.useMemo)(()=>!p||E.length===0?-1:E.findIndex(e=>e.messageId===p.messageId&&e.withinIdx===p.withinIdx),[p,E]);(0,J.useEffect)(()=>{t||(c(``),u(!1),f([]),h(null),b(new Map),v(!1))},[t,e]);let O=(0,J.useCallback)(async(t,n)=>{if(S.current&&S.current.abort(),!t.trim()){f([]),h(null),b(new Map),v(!1);return}v(!0);let r=new AbortController;S.current=r;try{let i=await g.searchThreadMessages(e,t.trim(),100,n);if(r.signal.aborted)return;if(i.isOk()){let{results:e}=i.value;f(e),b(new Map),e.length>0?(h({messageId:e[0].messageId,withinIdx:0}),T(e[0].messageId,t.trim(),0)):h(null)}else f([]),h(null)}catch{r.signal.aborted||(f([]),h(null))}finally{r.signal.aborted||v(!1)}},[e,T]);(0,J.useEffect)(()=>{if(!t)return;let n=W.getState(),r=n.pendingThreadSearch;!r||r.threadId!==e||(n.setPendingThreadSearch(null),c(r.query),u(r.caseSensitive),O(r.query,r.caseSensitive))},[t,e,O]);let k=e=>{c(e),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>O(e,l),300)},A=e=>{u(e),x.current&&clearTimeout(x.current),O(s,e)},ee=(0,J.useCallback)(()=>{if(E.length===0)return;let e=D<0?0:D,t=E[e<=0?E.length-1:e-1];h(t),T(t.messageId,s.trim(),t.withinIdx)},[E,D,s,T]),j=(0,J.useCallback)(()=>{if(E.length===0)return;let e=D<0?-1:D,t=E[e>=E.length-1?0:e+1];h(t),T(t.messageId,s.trim(),t.withinIdx)},[E,D,s,T]);return t?(0,X.jsx)(U,{query:s,onQueryChange:k,caseSensitive:l,onCaseSensitiveChange:A,currentIndex:Math.max(0,D),totalMatches:E.length,onPrev:ee,onNext:j,onClose:n,loading:_,placeholder:o(`thread.searchPlaceholder`,`Search in thread...`),showIcon:!1,testIdPrefix:i,className:a}):null}function Se(e,t){let[n,r]=(0,J.useState)(!1),i=(0,J.useRef)(null),a=(0,J.useRef)(``),o=(0,J.useRef)(0),s=(0,J.useRef)(t);s.current=t;let c=(0,J.useCallback)(()=>{let t=e.current?.scrollViewport;t&&t.querySelectorAll(`mark[data-search-hl]`).forEach(e=>{let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||``),e),t.normalize())})},[e]),l=(0,J.useCallback)((e,t)=>{if(!t)return;let n=t.toLowerCase(),r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:t=>{let n=t.parentNode;for(;n&&n!==e;){if(n instanceof Element&&n.hasAttribute(`data-search-hl`))return NodeFilter.FILTER_REJECT;n=n.parentNode}return NodeFilter.FILTER_ACCEPT}}),i=[],a;for(;a=r.nextNode();){let e=a.textContent||``,t=e.toLowerCase().indexOf(n);for(;t!==-1;)i.push({node:a,index:t}),t=e.toLowerCase().indexOf(n,t+n.length)}for(let e=i.length-1;e>=0;e--){let{node:t,index:r}=i[e];t.splitText(r+n.length);let a=t.splitText(r),o=document.createElement(`mark`);o.setAttribute(`data-search-hl`,``),o.style.cssText=`background-color:#FFE500;color:black`,o.className=`rounded-sm px-px font-semibold`,o.textContent=a.textContent,a.parentNode.replaceChild(o,a)}},[]);return{searchOpen:n,setSearchOpen:r,handleSearchNavigate:(0,J.useCallback)((t,n,r,u)=>{let d=++o.current,f=i.current!==t||a.current!==n;f&&(c(),i.current=t,a.current=n),e.current?.expandToItem(t);let p=()=>{let i=e.current?.scrollViewport?.querySelector(`[data-item-key="${CSS.escape(t)}"]`);if(!i)return!1;f&&l(i,n);let a=i.querySelectorAll(`mark[data-search-hl]`);if(u?.(t,a.length),a.length===0)return i.scrollIntoView({behavior:`smooth`,block:`center`}),!0;a.forEach(e=>{let t=e;t.removeAttribute(`data-search-current`),Object.assign(t.style,{backgroundColor:`#FFE500`,boxShadow:``})});let o=a[Math.max(0,Math.min(r,a.length-1))];return o&&(o.setAttribute(`data-search-current`,``),o.style.backgroundColor=`#FF8A00`,o.scrollIntoView({behavior:`smooth`,block:`center`})),!0},m=n=>new Promise(r=>{let i=n=>{if(o.current!==d)return r(!1);if(e.current?.expandToItem(t),p())return r(!0);if(n<=0)return r(!1);requestAnimationFrame(()=>i(n-1))};i(n)}),h=()=>{let n=e.current?.scrollViewport;if(!n)return;let r=!1,i=()=>{r=!0};n.addEventListener(`wheel`,i,{passive:!0}),n.addEventListener(`touchstart`,i,{passive:!0});let a=()=>{n.removeEventListener(`wheel`,i),n.removeEventListener(`touchstart`,i)},s=[600,1300,2200];s.forEach((e,i)=>{setTimeout(()=>{let e=i===s.length-1;if(r||o.current!==d){e&&a();return}let c=n.querySelector(`mark[data-search-current]`)??n.querySelector(`[data-item-key="${CSS.escape(t)}"]`);if(c instanceof HTMLElement){let e=n.getBoundingClientRect(),t=c.getBoundingClientRect();Math.abs(t.top+t.height/2-(e.top+e.height/2))>e.height*.3&&c.scrollIntoView({behavior:`auto`,block:`center`})}e&&a()},e)})};if(p()){h();return}return(async()=>{if(await m(2)){h();return}let e=s.current;if(!e)return;let n=N.getState();!(n.threadDataById[e]?.messages.some(e=>e.id===t)??!1)&&(!await n.loadMessagesUntil(e,t)||o.current!==d)||await m(10)&&h()})()},[c,l,e]),handleSearchClose:(0,J.useCallback)(()=>{r(!1),c(),i.current=null,a.current=``},[c])}}export{me as a,_e as i,xe as n,ye as r,Se as t};
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{$ as t,F as n,Lt as r,sr as i,un as a,yn as o,zr as s}from"./icons-sqwAEN28.js";import{o as c}from"./markdown-DBtwZWLP.js";import{a as l,c as u,n as d,r as f,t as p}from"./use-image-lightbox-Bu7huixI.js";import{t as m}from"./useTranslation-DAPPK3Hy.js";import{G as h,P as g,W as _,_t as v,f as y,gt as b,j as x,k as S,lt as C,mt as w,q as T}from"./index-CmX0PQ41.js";import{t as E}from"./button-DqIT3IPY.js";import{$r as D,Cr as O,Dr as k,Gr as A,Ir as ee,Jr as j,Lr as M,Lt as N,Pr as P,Rt as F,St as te,Ur as I,Wn as L,Wt as R,Xr as z,Yr as B,at as V,jr as H,mn as U,qr as ne,wt as re,xt as ie,yr as W,yt as ae}from"./items-z89mbR0g.js";import{t as oe}from"./loading-state-CuNSmah_.js";import{n as G}from"./review-pane-store-B31R8Yhv.js";import{t as se}from"./use-todo-panel-Dh6mAnT6.js";import{n as ce,r as K,t as q}from"./use-thread-creation-d4X0pWGi.js";var J=e(s(),1);function Y(e){let t=v(),n=b(),[r,i]=(0,J.useState)(`idle`),a=(0,J.useRef)(null),o=(0,J.useRef)(e);o.current=e;let s=(0,J.useRef)(n.pathname);s.current=n.pathname;let c=(0,J.useRef)(!1),l=(0,J.useCallback)(()=>{let e=a.current;a.current=null,i(`idle`),e&&(c.current=!0,t(e),setTimeout(()=>{c.current=!1},0))},[t]),u=(0,J.useCallback)(()=>{a.current=null,i(`idle`)},[]);return(0,J.useEffect)(()=>{let e=(e,t)=>c.current?!1:o.current(e,t),t=t=>{let n=t.target.closest(`a`);if(!n)return;let r=n.getAttribute(`href`);!r||r.startsWith(`http`)||r.startsWith(`//`)||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey||e(s.current,r)&&(t.preventDefault(),t.stopPropagation(),a.current=r,i(`blocked`))},n=()=>{e(s.current,window.location.pathname)&&(window.history.pushState(null,``,s.current),a.current=window.location.pathname,i(`blocked`))},r=window.history.pushState.bind(window.history),l=window.history.replaceState.bind(window.history);return window.history.pushState=function(t,n,o){let c=o?new URL(o,window.location.origin).pathname:s.current;if(e(s.current,c)){a.current=c,i(`blocked`);return}return r(t,n,o)},window.history.replaceState=function(t,n,r){let o=r?new URL(r,window.location.origin).pathname:s.current;if(e(s.current,o)){a.current=o,i(`blocked`);return}return l(t,n,r)},document.addEventListener(`click`,t,!0),window.addEventListener(`popstate`,n),()=>{document.removeEventListener(`click`,t,!0),window.removeEventListener(`popstate`,n),window.history.pushState=r,window.history.replaceState=l}},[]),{state:r,proceed:l,reset:u}}function le({effectiveProjectId:e,defaultThreadMode:t,latestPromptTextRef:n,hasContentRef:r,justSubmittedRef:i}){let{t:a}=m(),o=N(e=>e.loadThreadsForProject),[s,c]=(0,J.useState)(!1),l=Y((e,t)=>i.current||e===t?!1:r.current);return{blocker:l,savingBacklog:s,handleSaveToBacklog:(0,J.useCallback)(async()=>{if(!e)return;let r=n.current.trim();if(!r){l.proceed?.();return}c(!0);let i=await g.createIdleThread({projectId:e,title:r.slice(0,200),mode:t,prompt:r});if(c(!1),i.isErr()){L(i.error,`createThread`);return}await o(e),I.success(a(`toast.threadCreated`,{title:r.slice(0,200)})),l.proceed?.()},[e,t,o,l,n,a]),handleDiscard:(0,J.useCallback)(()=>{l.proceed?.()},[l]),handleCancel:(0,J.useCallback)(()=>{l.reset?.()},[l])}}function ue(e){return!(e.disabled||e.status===`error`)}var X=e(c(),1);function de(e){return F(e?`/projects/${e}/settings/mcp-server`:`/settings/mcp-server`)}var fe={stdio:`Local command`,http:`Remote HTTP`,sse:`Streaming SSE`},Z={project:`Project`,user:`User`};function pe(e){return e.url?e.url:e.command?[e.command,...e.args??[]].join(` `):null}function me({projectPath:e,projectId:i,provider:a=`claude`,className:o}){let{t:s}=m(),[c,l]=(0,J.useState)([]),[u,d]=(0,J.useState)(!1),f=(0,J.useRef)(void 0),p=(0,J.useCallback)(async()=>{if(!e){l([]);return}d(!0);let t=await g.listMcpServers(e,a);l(t.isOk()?t.value.servers:[]),d(!1)},[e,a]);if((0,J.useEffect)(()=>{let t=e?`${e}:${a}`:void 0;t!==f.current&&(f.current=t,p())},[e,a,p]),!e)return null;let v=c.filter(ue);return(0,X.jsxs)(`div`,{className:C(`mt-2 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,o),"data-testid":`available-mcp-servers`,children:[(0,X.jsxs)(w,{to:de(i),className:`hover:bg-muted hover:text-foreground inline-flex shrink-0 items-center gap-1 rounded px-1 py-0.5 transition-colors`,"data-testid":`available-mcp-settings-link`,"aria-label":s(`newThread.configureMcp`),children:[(0,X.jsx)(t,{className:`size-3.5`}),(0,X.jsx)(`span`,{children:s(`newThread.availableMcp`)})]}),u?(0,X.jsx)(r,{className:`icon-xs animate-spin`,"data-testid":`available-mcp-loading`}):v.length===0?(0,X.jsx)(`span`,{className:`text-muted-foreground/60`,"data-testid":`available-mcp-empty`,children:s(`newThread.noMcpServers`)}):v.map(e=>{let t=e.status===`needs_auth`,r=pe(e),i=s(`mcp.transport.${e.type}`,fe[e.type]),a=e.source?s(`mcp.source.${e.source}`,Z[e.source]):s(`mcp.source.unknown`,`Unknown`),o=t?s(`mcp.needsAuth`):s(`mcp.status.ready`,`Ready`);return(0,X.jsxs)(_,{children:[(0,X.jsx)(T,{asChild:!0,children:(0,X.jsxs)(V,{variant:`outline`,size:`xs`,"data-testid":`available-mcp-${e.name}`,"aria-label":t?`${e.name}: ${s(`mcp.needsAuth`)}`:e.name,className:C(t&&`border-amber-500/50 bg-amber-500/10 text-amber-300`),children:[t&&(0,X.jsx)(n,{"aria-hidden":`true`}),e.name]})}),(0,X.jsxs)(h,{side:`bottom`,align:`start`,className:`w-72 p-3 text-left`,children:[(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,X.jsx)(`p`,{className:`min-w-0 truncate font-medium text-gray-950`,children:e.name}),(0,X.jsx)(`span`,{className:`shrink-0 rounded-full border border-gray-200 bg-gray-50 px-1.5 py-0.5 font-mono text-[10px] leading-none text-gray-600 uppercase`,children:e.type})]}),(0,X.jsxs)(`dl`,{className:`mt-2 space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.transport`,`Transport`)}),(0,X.jsx)(`dd`,{className:`truncate text-gray-900`,children:i})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.scope`,`Scope`)}),(0,X.jsx)(`dd`,{className:`truncate text-gray-900`,children:a})]}),r&&(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:e.url?s(`mcp.tooltip.endpoint`,`Endpoint`):s(`mcp.tooltip.command`,`Command`)}),(0,X.jsx)(`dd`,{className:`truncate font-mono text-[11px] text-gray-900`,children:r})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[74px_minmax(0,1fr)] gap-2`,children:[(0,X.jsx)(`dt`,{className:`text-gray-500`,children:s(`mcp.tooltip.status`,`Status`)}),(0,X.jsx)(`dd`,{className:C(`truncate text-gray-900`,t&&`text-amber-700`),children:o})]})]}),t&&(0,X.jsx)(`div`,{className:`mt-2 rounded border border-amber-500/30 bg-amber-50 px-2 py-1.5`,children:(0,X.jsx)(`p`,{className:`text-amber-800`,children:s(`mcp.authHint`)})})]})]},e.name)})]})}function he({open:e,loading:t,onSave:n,onDiscard:i,onCancel:a}){let{t:o}=m();return(0,X.jsx)(A,{open:e,onOpenChange:e=>!e&&a(),children:(0,X.jsxs)(ne,{className:`sm:max-w-xs`,"data-testid":`save-backlog-dialog`,children:[(0,X.jsxs)(z,{children:[(0,X.jsx)(D,{children:o(`saveBacklog.title`)}),(0,X.jsx)(j,{children:o(`saveBacklog.description`)})]}),(0,X.jsxs)(B,{className:`flex-col gap-1.5 sm:flex-col sm:justify-stretch sm:space-x-0`,children:[(0,X.jsxs)(E,{"data-testid":`save-backlog-save`,variant:`default`,size:`sm`,className:`w-full`,onClick:n,disabled:t,children:[t&&(0,X.jsx)(r,{className:`icon-sm mr-1.5 animate-spin`}),o(`saveBacklog.save`)]}),(0,X.jsx)(E,{"data-testid":`save-backlog-discard`,variant:`secondary`,size:`sm`,className:`w-full`,onClick:i,disabled:t,children:o(`saveBacklog.discard`)}),(0,X.jsx)(E,{"data-testid":`save-backlog-cancel`,variant:`ghost`,size:`sm`,className:`w-full`,onClick:a,disabled:t,children:o(`saveBacklog.cancel`)})]})]})})}function ge(e,t=40){return e.toLowerCase().replace(/[^a-z0-9\s-]/g,``).trim().replace(/\s+/g,`-`).replace(/-+/g,`-`).slice(0,t).replace(/-$/,``)||`thread`}function _e({projectIdOverride:e,isScratchOverride:t,onCreated:n,onCancel:r}={}){let s=v(),{t:c}=m(),l=W(e=>e.newThreadProjectId),u=W(e=>e.newThreadIsScratch),d=t??u,f=k(e=>e.selectedProjectId),p=e||f||l,h=W(e=>e.newThreadIdleOnly),g=N(e=>e.addScratchThread),_=W(e=>e.activeDesignId),b=W(e=>e.newThreadIssueContext),x=W(e=>e.clearIssueContext),S=W(e=>e.composePrefillPrompt),C=W(e=>e.setComposePrefillPrompt),w=(0,J.useRef)(S);(0,J.useEffect)(()=>{S!==null&&C(null)},[]);let T=W(e=>e.cancelNewThread),D=r??T,O=W(e=>e.setReviewPaneOpen),A=N(e=>e.loadThreadsForProject),j=k(e=>e.projects),M=p?j.find(e=>e.id===p):void 0,P=M?.defaultMode??`local`,te=y(e=>e.toolPermissions),L=(0,J.useMemo)(()=>M?.path??``,[M?.path]),R=M?.defaultProvider??`claude`,[z,B]=(0,J.useState)(R);(0,J.useEffect)(()=>{B(R)},[R]);let[V,H]=(0,J.useState)(null),[U,ne]=(0,J.useState)(P===`worktree`),re=(0,J.useRef)(!1),ie=(0,J.useRef)(``),ae=(0,J.useRef)(!1),G=(0,J.useCallback)((e,t)=>{re.current=e,ie.current=t,e&&t.trim()?H(`${ge(M?.name||`project`)}/${ge(t.slice(0,200))}-xxxxxx`):H(null)},[M?.name]),{blocker:se,savingBacklog:Y,handleSaveToBacklog:ue,handleDiscard:de,handleCancel:fe}=le({effectiveProjectId:p??void 0,defaultThreadMode:P,latestPromptTextRef:ie,hasContentRef:re,justSubmittedRef:ae}),[Z,pe]=(0,J.useState)(null),_e=(0,J.useRef)(``),[Q,ve]=(0,J.useState)(!1),{creating:$,createThread:ye}=q({projectId:d?null:p??null,defaultThreadMode:P,toolPermissions:te,isScratch:d,forceIdle:h,designId:_??void 0,onSuccess:async(e,t,r)=>{if((t===`scratch`||t===`normal`)&&(ae.current=!0),O(!1),t===`scratch`){g(r),n?n(e):(N.setState({selectedThreadId:e}),D(),s(F(ee(r))));return}if(p&&await A(p),t===`idle`){I.success(c(`toast.threadCreated`,{title:r?.title??``})),n?n(e):D();return}n?n(e):(N.setState({selectedThreadId:e}),D(),!_&&p&&s(F(`/projects/${p}/threads/${e}`)))}}),be=(0,J.useCallback)(async(e,t,r)=>{pe(null),_e.current=e;let i=await ye(e,t,r);return i?(!n&&!h&&(d||!_)&&ve(!0),i):(pe(_e.current),i)},[ye,n,h,d,_]);if($||Q)return(0,X.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,children:(0,X.jsx)(oe,{testId:`new-thread-creating`,label:c(`common.preparing`,`Preparing…`)})});if(d)return(0,X.jsx)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,"data-testid":`new-thread-scratch`,children:(0,X.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[(0,X.jsx)(`div`,{className:`text-muted-foreground mb-3 flex h-9 items-center gap-2 text-base`,"data-testid":`new-thread-context-bar`,children:(0,X.jsxs)(`span`,{className:`flex h-9 shrink-0 items-center gap-1.5 px-2 py-1`,children:[(0,X.jsx)(o,{className:`size-5 shrink-0`}),(0,X.jsx)(`span`,{className:`truncate font-medium`,"data-testid":`new-thread-scratch-label`,children:c(`scratch.composeTitle`,{defaultValue:`New scratch thread`})})]})}),(0,X.jsx)(`div`,{"data-testid":`new-thread-scratch-prompt`,children:(0,X.jsx)(K,{onSubmit:be,loading:$,isNewThread:!0,isScratch:!0,onContentChange:G,initialPrompt:Z??void 0},`scratch`)})]})});let xe=(0,X.jsx)(ce,{projectId:p||void 0});return(0,X.jsxs)(`div`,{className:`text-muted-foreground flex flex-1 items-center justify-center px-4`,children:[(0,X.jsxs)(`div`,{className:`w-full max-w-3xl`,children:[b&&(0,X.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-1.5 rounded-md border border-emerald-500/20 bg-emerald-500/5 px-2 py-1 text-xs`,"data-testid":`issue-context-banner`,children:[(0,X.jsx)(i,{className:`size-3.5 shrink-0 text-emerald-500`}),(0,X.jsx)(`span`,{className:`text-muted-foreground truncate`,children:c(`issues.creatingFromIssue`,{title:b.title})}),(0,X.jsx)(E,{variant:`ghost`,size:`sm`,className:`ml-auto h-5 px-1 text-[10px]`,onClick:x,"data-testid":`issue-context-dismiss`,children:c(`common.dismiss`)})]}),U&&V&&(0,X.jsxs)(`div`,{className:`text-muted-foreground/60 mb-1.5 flex items-center gap-1.5 text-[10px]`,"data-testid":`worktree-preview`,children:[(0,X.jsx)(a,{className:`size-3 shrink-0`}),(0,X.jsx)(`span`,{className:`truncate font-mono`,children:V})]}),(0,X.jsx)(K,{onSubmit:be,loading:$,isNewThread:!0,showBacklog:!0,newThreadContextBar:xe,projectId:p||void 0,initialPrompt:b?.prompt??w.current??Z??void 0,onContentChange:G,onWorktreeModeChange:ne,onProviderChange:B},b?`${p}-issue`:w.current?`${p}-prefill-${w.current.length}`:p),(0,X.jsx)(me,{projectPath:L||void 0,projectId:p||void 0,provider:z})]}),(0,X.jsx)(he,{open:se.state===`blocked`,loading:Y,onSave:ue,onDiscard:de,onCancel:fe})]})}var Q=x(`ThreadCheckpoints`);function ve(e){let{t}=m(),n=v(),[r,i]=(0,J.useState)(null);return{forkingMessageId:r,handleFork:(0,J.useCallback)(async a=>{let o=e.activeThreadRef.current;if(!(!o||r)){i(a);try{let e=await g.forkThread(o.id,a);if(e.isErr()){Q.error(`forkThread failed`,{threadId:o.id,messageId:a,error:e.error.message}),I.error(t(`thread.forkFailed`,`Failed to fork conversation`));return}let r=e.value;N.setState({selectedThreadId:r.id}),await N.getState().loadThreadsForProject(o.projectId),n(F(`/projects/${o.projectId}/threads/${r.id}`)),I.success(t(`thread.forkSuccess`,`Forked conversation`))}finally{i(null)}}},[r,n,e,t]),handleRewind:(0,J.useCallback)(async n=>{let a=e.activeThreadRef.current;if(!(!a||r)){i(n);try{let e=await g.rewindCode(a.id,n);if(e.isErr()){Q.error(`rewindCode failed`,{threadId:a.id,messageId:n,error:e.error.message}),I.error(e.error.type===`INTERNAL`?t(`thread.rewindFailed`,`Failed to rewind code`):t(`thread.rewindFailedGeneric`,{error:e.error.message}));return}R(a.id),O(),await N.getState().selectThread(a.id);let r=e.value.rewind.filesChanged?.length??0;I.success(t(`thread.rewindSuccess`,{count:r,defaultValue_one:`Rewound 1 file`,defaultValue_other:`Rewound {{count}} files`,defaultValue:`Code rewound`}))}finally{i(null)}}},[r,e,t]),handleForkAndRewind:(0,J.useCallback)(async a=>{let o=e.activeThreadRef.current;if(!(!o||r)){i(a);try{let e=await g.forkAndRewind(o.id,a);if(e.isErr()){Q.error(`forkAndRewind failed`,{threadId:o.id,messageId:a,error:e.error.message}),I.error(t(`thread.forkAndRewindFailed`,`Failed to fork and rewind`));return}let r=e.value.thread;N.setState({selectedThreadId:r.id}),await N.getState().loadThreadsForProject(o.projectId),n(F(`/projects/${o.projectId}/threads/${r.id}`)),I.success(t(`thread.forkAndRewindSuccess`,`Forked and rewound code`))}finally{i(null)}}},[r,n,e,t])}}function $(e){let t=new Map;if(!e)return t;for(let n of e){if(n.type!==`changed_files_summary`)continue;let e=null;try{e=typeof n.data==`string`?JSON.parse(n.data):n.data}catch{e=null}!e?.userMessageId||!Array.isArray(e.files)||t.set(e.userMessageId,e.files)}return t}function ye({streamRef:e,searchBar:t,onOpenLightbox:n,enablePagination:r=!1,onVisibleMessageChange:i,className:a}){let{t:o}=m(),s=u(),c=S(e=>e.user?.id??null),h=ie(),g=re(),_=te(),v=ae(),y=N(e=>e.loadOlderMessages),b=N(e=>e.loadNewerMessages),x=G(e=>e.notifyDirty),w=M(h,c)&&!P(h,c),T=(0,J.useRef)(null),E=(0,J.useRef)(h);E.current=h;let{sending:D,handleSend:O,handleStop:A,handlePermissionApproval:ee,handleToolRespond:j}=d({activeThreadRef:E,sendingRef:(0,J.useRef)(!1),streamRef:e}),{handleFork:F,handleRewind:I,handleForkAndRewind:L,forkingMessageId:R}=ve({activeThreadRef:E}),z=(0,J.useRef)(null);z.current===null&&(z.current=new Set);let B=(0,J.useRef)(null);if(h&&h.id!==B.current){B.current=h.id;let e=new Set;if(g){for(let t of g)if(e.add(t.id),t.toolCalls)for(let n of t.toolCalls)e.add(n.id)}z.current=e}let V=se(),U=(0,J.useRef)(null);U.current===null&&(U.current=new Map);let ne=(0,J.useMemo)(()=>{let e=new Map;V.forEach((t,n)=>e.set(t.toolCallId,n));let t=U.current;return t.size===e.size&&[...e].every(([e,n])=>t.get(e)===n)?t:(U.current=e,e)},[V]),oe=p(),ce=n??oe.openLightbox,q=h?.provider===`external`,Y=!!h&&H(h)&&!q,le=(0,J.useMemo)(()=>Y?$(_):void 0,[Y,_]);if(!h)return null;let ue=h.queuedCount??0,de=h.status===`running`||ue>0,fe=(k.getState().projects.find(e=>e.id===h.projectId)?.followUpMode||`queue`)===`queue`,Z=H(h);return(0,X.jsxs)(`div`,{className:C(`relative flex min-h-0 min-w-0 flex-1 flex-col`,a),children:[t,(0,X.jsx)(f,{ref:e,threadId:h.id,status:h.status,messages:g??l,leadingUserMessage:h.leadingUserMessage,threadEvents:_,compactionEvents:v,initInfo:h.initInfo,resultInfo:h.resultInfo,waitingReason:h.waitingReason,pendingPermission:h.pendingPermission,isExternal:q,model:h.model,permissionMode:h.permissionMode,sessionChanges:le,onSessionReverted:()=>x(h.id),onSend:O,onPermissionApproval:ee,onToolRespond:j,onFork:Z?F:void 0,onRewind:Z?I:void 0,onForkAndRewind:Z?L:void 0,forkingMessageId:R,rewindDisabled:h.provider!==`claude`||!h.fileCheckpointingEnabled,rewindDisabledReason:h.provider===`claude`?o(`thread.rewindNoCheckpoints`,`This thread was started without file checkpointing`):o(`thread.rewindNotSupportedProvider`,`Rewind is only available for Claude threads`),pagination:r?{hasMore:h.hasMore??!1,hasMoreAfter:h.hasMoreAfter??!1,loadingMore:h.loadingMore??!1,load:y,loadAfter:b,total:h.totalMessages??0,windowStart:h.windowStart??0}:void 0,createdAt:h.createdAt,snapshotMap:ne,knownIds:z.current,onOpenLightbox:ce,onVisibleMessageChange:i,prefersReducedMotion:s,className:`min-h-0 flex-1`,footer:w?(0,X.jsxs)(`div`,{className:`text-muted-foreground border-border border-t px-4 py-3 text-center text-xs`,"data-testid":`thread-readonly-share-notice`,children:[o(`thread.readOnlyShare`,`You're viewing a shared thread — read-only. Only the owner can send messages.`),` `,(0,X.jsx)(`button`,{type:`button`,className:`text-status-info hover:underline`,onClick:()=>W.getState().setCommentsPaneOpen(!0),"data-testid":`thread-readonly-open-comments`,children:o(`thread.readOnlyShareComment`,`Open Comments to leave a note.`)})]}):h.waitingReason===`plan`?null:(0,X.jsx)(K,{onSubmit:O,onStop:A,loading:D,running:de&&!q,isQueueMode:fe,queuedCount:h.queuedCount??0,queuedNextMessage:h.queuedNextMessage,setPromptRef:T,placeholder:o(`thread.nextPrompt`)})}),!n&&oe.lightbox]})}function be(e,t,n){if(!t)return 0;let r=n?e:e.toLowerCase(),i=n?t:t.toLowerCase(),a=0,o=0;for(;;){let e=r.indexOf(i,o);if(e===-1)break;a++,o=e+i.length}return a}function xe({threadId:e,open:t,onClose:n,onNavigateToMessage:r,testIdPrefix:i=`thread-search`,className:a=`absolute right-4 top-0 z-30 gap-1.5 rounded-b-lg border border-t-0 border-border bg-popover px-2 py-1.5 shadow-md`}){let{t:o}=m(),[s,c]=(0,J.useState)(``),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)([]),[p,h]=(0,J.useState)(null),[_,v]=(0,J.useState)(!1),[y,b]=(0,J.useState)(new Map),x=(0,J.useRef)(null),S=(0,J.useRef)(null),C=(0,J.useRef)(0),w=(0,J.useCallback)((e,t)=>{b(n=>{if(n.get(e)===t)return n;let r=new Map(n);return r.set(e,t),r}),h(n=>!n||n.messageId!==e?n:t>0&&n.withinIdx>=t?{messageId:e,withinIdx:t-1}:n)},[]),T=(0,J.useCallback)((e,t,n)=>{let i=r(e,t,n,w);if(i&&typeof i.then==`function`){let e=++C.current;v(!0),i.finally(()=>{C.current===e&&v(!1)})}},[r,w]),E=(0,J.useMemo)(()=>{let e=s.trim();if(!e||d.length===0)return[];let t=[];for(let n of d){let r=y.get(n.messageId)??be(n.content,e,l);if(!(r<=0))for(let e=0;e<r;e++)t.push({messageId:n.messageId,withinIdx:e})}return t},[d,s,l,y]),D=(0,J.useMemo)(()=>!p||E.length===0?-1:E.findIndex(e=>e.messageId===p.messageId&&e.withinIdx===p.withinIdx),[p,E]);(0,J.useEffect)(()=>{t||(c(``),u(!1),f([]),h(null),b(new Map),v(!1))},[t,e]);let O=(0,J.useCallback)(async(t,n)=>{if(S.current&&S.current.abort(),!t.trim()){f([]),h(null),b(new Map),v(!1);return}v(!0);let r=new AbortController;S.current=r;try{let i=await g.searchThreadMessages(e,t.trim(),100,n);if(r.signal.aborted)return;if(i.isOk()){let{results:e}=i.value;f(e),b(new Map),e.length>0?(h({messageId:e[0].messageId,withinIdx:0}),T(e[0].messageId,t.trim(),0)):h(null)}else f([]),h(null)}catch{r.signal.aborted||(f([]),h(null))}finally{r.signal.aborted||v(!1)}},[e,T]);(0,J.useEffect)(()=>{if(!t)return;let n=W.getState(),r=n.pendingThreadSearch;!r||r.threadId!==e||(n.setPendingThreadSearch(null),c(r.query),u(r.caseSensitive),O(r.query,r.caseSensitive))},[t,e,O]);let k=e=>{c(e),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>O(e,l),300)},A=e=>{u(e),x.current&&clearTimeout(x.current),O(s,e)},ee=(0,J.useCallback)(()=>{if(E.length===0)return;let e=D<0?0:D,t=E[e<=0?E.length-1:e-1];h(t),T(t.messageId,s.trim(),t.withinIdx)},[E,D,s,T]),j=(0,J.useCallback)(()=>{if(E.length===0)return;let e=D<0?-1:D,t=E[e>=E.length-1?0:e+1];h(t),T(t.messageId,s.trim(),t.withinIdx)},[E,D,s,T]);return t?(0,X.jsx)(U,{query:s,onQueryChange:k,caseSensitive:l,onCaseSensitiveChange:A,currentIndex:Math.max(0,D),totalMatches:E.length,onPrev:ee,onNext:j,onClose:n,loading:_,placeholder:o(`thread.searchPlaceholder`,`Search in thread...`),showIcon:!1,testIdPrefix:i,className:a}):null}function Se(e,t){let[n,r]=(0,J.useState)(!1),i=(0,J.useRef)(null),a=(0,J.useRef)(``),o=(0,J.useRef)(0),s=(0,J.useRef)(t);s.current=t;let c=(0,J.useCallback)(()=>{let t=e.current?.scrollViewport;t&&t.querySelectorAll(`mark[data-search-hl]`).forEach(e=>{let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||``),e),t.normalize())})},[e]),l=(0,J.useCallback)((e,t)=>{if(!t)return;let n=t.toLowerCase(),r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:t=>{let n=t.parentNode;for(;n&&n!==e;){if(n instanceof Element&&n.hasAttribute(`data-search-hl`))return NodeFilter.FILTER_REJECT;n=n.parentNode}return NodeFilter.FILTER_ACCEPT}}),i=[],a;for(;a=r.nextNode();){let e=a.textContent||``,t=e.toLowerCase().indexOf(n);for(;t!==-1;)i.push({node:a,index:t}),t=e.toLowerCase().indexOf(n,t+n.length)}for(let e=i.length-1;e>=0;e--){let{node:t,index:r}=i[e];t.splitText(r+n.length);let a=t.splitText(r),o=document.createElement(`mark`);o.setAttribute(`data-search-hl`,``),o.style.cssText=`background-color:#FFE500;color:black`,o.className=`rounded-sm px-px font-semibold`,o.textContent=a.textContent,a.parentNode.replaceChild(o,a)}},[]);return{searchOpen:n,setSearchOpen:r,handleSearchNavigate:(0,J.useCallback)((t,n,r,u)=>{let d=++o.current,f=i.current!==t||a.current!==n;f&&(c(),i.current=t,a.current=n),e.current?.expandToItem(t);let p=()=>{let i=e.current?.scrollViewport?.querySelector(`[data-item-key="${CSS.escape(t)}"]`);if(!i)return!1;f&&l(i,n);let a=i.querySelectorAll(`mark[data-search-hl]`);if(u?.(t,a.length),a.length===0)return i.scrollIntoView({behavior:`smooth`,block:`center`}),!0;a.forEach(e=>{let t=e;t.removeAttribute(`data-search-current`),Object.assign(t.style,{backgroundColor:`#FFE500`,boxShadow:``})});let o=a[Math.max(0,Math.min(r,a.length-1))];return o&&(o.setAttribute(`data-search-current`,``),o.style.backgroundColor=`#FF8A00`,o.scrollIntoView({behavior:`smooth`,block:`center`})),!0},m=n=>new Promise(r=>{let i=n=>{if(o.current!==d)return r(!1);if(e.current?.expandToItem(t),p())return r(!0);if(n<=0)return r(!1);requestAnimationFrame(()=>i(n-1))};i(n)}),h=()=>{let n=e.current?.scrollViewport;if(!n)return;let r=!1,i=()=>{r=!0};n.addEventListener(`wheel`,i,{passive:!0}),n.addEventListener(`touchstart`,i,{passive:!0});let a=()=>{n.removeEventListener(`wheel`,i),n.removeEventListener(`touchstart`,i)},s=[600,1300,2200];s.forEach((e,i)=>{setTimeout(()=>{let e=i===s.length-1;if(r||o.current!==d){e&&a();return}let c=n.querySelector(`mark[data-search-current]`)??n.querySelector(`[data-item-key="${CSS.escape(t)}"]`);if(c instanceof HTMLElement){let e=n.getBoundingClientRect(),t=c.getBoundingClientRect();Math.abs(t.top+t.height/2-(e.top+e.height/2))>e.height*.3&&c.scrollIntoView({behavior:`auto`,block:`center`})}e&&a()},e)})};if(p()){h();return}return(async()=>{if(await m(2)){h();return}let e=s.current;if(!e)return;let n=N.getState();!(n.threadDataById[e]?.messages.some(e=>e.id===t)??!1)&&(!await n.loadMessagesUntil(e,t)||o.current!==d)||await m(10)&&h()})()},[c,l,e]),handleSearchClose:(0,J.useCallback)(()=>{r(!1),c(),i.current=null,a.current=``},[c])}}export{me as a,_e as i,xe as n,ye as r,Se as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{Dr as n,Et as r,Ot as i,Tt as a,wt as o}from"./items-azeOGVff.js";import{a as s,d as c,p as l}from"./diff-parse-PPACfn0L.js";var u=e(t(),1);function d(){let e=a(),t=i(),r=n(e=>e.projects);return(0,u.useMemo)(()=>t||r.find(t=>t.id===e)?.path,[r,e,t])}function f(){let e=r(e=>e?.provider)??void 0,t=r(e=>e?.model)??void 0;return(0,u.useMemo)(()=>({provider:e,model:t}),[e,t])}function p(e,t){if(!t)return e;let n=e.replace(/\\/g,`/`),r=t.replace(/\\/g,`/`).replace(/\/$/,``);return n.startsWith(r+`/`)?n.slice(r.length+1):e}function m(){let e=(0,u.useRef)([]),t=o();return(0,u.useMemo)(()=>{if(!t)return e.current.length===0||(e.current=[]),e.current;let n=[];for(let e of t)for(let t of e.toolCalls??[])l(t.name)&&n.push(t);let r=e.current;return r.length===n.length&&n.every((e,t)=>e===r[t])?r:(e.current=n,n)},[t])}function h(){let e=m();return(0,u.useMemo)(()=>{if(e.length===0)return[];let t=[];for(let n of e){let e=c(s(n.input));if(e&&e.length>0){let r=e.filter(e=>e.status===`completed`).length;t.push({todos:e,toolCallId:n.id,progress:{completed:r,total:e.length},parentToolCallId:n.parentToolCallId})}}return t},[e])}function g(){let e=h();return(0,u.useMemo)(()=>{let t=null,n=new Map;for(let r of e)r.parentToolCallId?n.set(r.parentToolCallId,r):t=r;return{mainAgent:t,bySubAgent:n}},[e])}export{f as a,d as i,g as n,p as r,h as t};
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{Dr as n,Et as r,Ot as i,Tt as a,wt as o}from"./items-z89mbR0g.js";import{a as s,d as c,p as l}from"./diff-parse-DoxsYsvR.js";var u=e(t(),1);function d(){let e=a(),t=i(),r=n(e=>e.projects);return(0,u.useMemo)(()=>t||r.find(t=>t.id===e)?.path,[r,e,t])}function f(){let e=r(e=>e?.provider)??void 0,t=r(e=>e?.model)??void 0;return(0,u.useMemo)(()=>({provider:e,model:t}),[e,t])}function p(e,t){if(!t)return e;let n=e.replace(/\\/g,`/`),r=t.replace(/\\/g,`/`).replace(/\/$/,``);return n.startsWith(r+`/`)?n.slice(r.length+1):e}function m(){let e=(0,u.useRef)([]),t=o();return(0,u.useMemo)(()=>{if(!t)return e.current.length===0||(e.current=[]),e.current;let n=[];for(let e of t)for(let t of e.toolCalls??[])l(t.name)&&n.push(t);let r=e.current;return r.length===n.length&&n.every((e,t)=>e===r[t])?r:(e.current=n,n)},[t])}function h(){let e=m();return(0,u.useMemo)(()=>{if(e.length===0)return[];let t=[];for(let n of e){let e=c(s(n.input));if(e&&e.length>0){let r=e.filter(e=>e.status===`completed`).length;t.push({todos:e,toolCallId:n.id,progress:{completed:r,total:e.length},parentToolCallId:n.parentToolCallId})}}return t},[e])}function g(){let e=h();return(0,u.useMemo)(()=>{let t=null,n=new Map;for(let r of e)r.parentToolCallId?n.set(r.parentToolCallId,r):t=r;return{mainAgent:t,bySubAgent:n}},[e])}export{f as a,d as i,g as n,p as r,h as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{t as n}from"./useTranslation-DAPPK3Hy.js";import{t as r}from"./react-B8mHUpgK.js";import{E as i,L as a,T as o,j as s}from"./index-DCJpZz6M.js";import{s as c,u as l}from"./providers-tWTQl7V7.js";var u=e(t(),1),d=s(`PromptInputAcpModels`),f=new Set(o);function p(e){let{t}=n(),r=l(e=>e.byProvider),i=l(e=>e.fetch);(0,u.useEffect)(()=>{for(let e of o)i(e)},[i]);let a=(0,u.useRef)({});return(0,u.useEffect)(()=>{for(let e of o){let t=r[e];if(!t||t.status!==`error`||!t.message)continue;let n=`${t.reason??`unknown`}|${t.message}`;a.current[e]!==n&&(a.current[e]=n,d.warn(`acp model discovery failed`,{provider:e,reason:t.reason??`unknown`,message:t.message}))}},[r]),(0,u.useMemo)(()=>{let n=(e,n)=>{let r=`thread.model.${e}`,i=t(r);return i===r?n:i};return e.map(e=>{if(!f.has(e.provider))return e;let t=e.provider,i=r[t],a=n(`${t}Default`,`${e.providerLabel} (configured default)`),o=[{value:`${t}:default`,label:a}];if(i?.status===`ready`&&i.models.length>0)for(let e of i.models)o.push({value:`${t}:${e.modelId}`,label:e.name||e.modelId});else if(i?.status===`error`){let e=i.reason===`auth_required`?n(`${t}AuthRequired`,`${t}: configurar (autenticar en el runner)`):i.reason===`sdk_missing`?n(`${t}SdkMissing`,`${t}: SDK no instalado`):i.reason===`no_models`?n(`${t}NoModels`,`${t}: no hay modelos configurados`):i.reason===`spawn_failed`?n(`${t}SpawnFailed`,`${t}: no se pudo iniciar`):i.reason===`timeout`?n(`${t}Timeout`,`${t}: tiempo de espera agotado`):n(`${t}Error`,`${t}: error de descubrimiento`);o.push({value:`${t}:__configure__`,label:e})}else i?.status===`loading`&&o.push({value:`${t}:__loading__`,label:n(`${t}Loading`,`Cargando modelos…`)});return{...e,models:o}})},[e,r,t])}var m=s(`runner-providers-store`),h=6e4,g=r((e,t)=>({providers:[],activeBuiltins:null,availableProviders:null,hasRunner:!1,loadedAt:0,loading:!1,fetch:async(n=!1)=>{let r=t();if(r.loading||!n&&r.loadedAt&&Date.now()-r.loadedAt<h)return;e({loading:!0});let i=await a.getProviders();if(i.isErr()){m.warn(`failed to load runner providers`,{error:i.error.message}),e({loading:!1,loadedAt:Date.now()});return}e({providers:i.value.providers,activeBuiltins:i.value.activeBuiltins,availableProviders:i.value.availableProviders,hasRunner:i.value.hasRunner,loading:!1,loadedAt:Date.now()})},setActiveBuiltins:t=>e({activeBuiltins:t})})),_=new Set(i);function v(e,t){let{providers:n,activeBuiltins:r,availableProviders:i,hasRunner:a}=t,o=r?new Set(r):null,s=o?e.filter(e=>!_.has(e.provider)||o.has(e.provider)):e,c=new Set(s.map(e=>e.provider)),l=n.filter(e=>!c.has(e.id)).map(e=>{let t=e.models.kind===`static`&&e.models.entries&&e.models.entries.length>0?e.models.entries.map(t=>({value:`${e.id}:${t.id}`,label:t.label})):[{value:`${e.id}:${e.models.defaultModel}`,label:`${e.label} (configured default)`}];return{provider:e.id,providerLabel:e.label,models:t}}),u=l.length>0?[...s,...l]:s;if(!a)return u.map(e=>y(e,`no-runner`));if(!i)return u;let d=new Set(i);return u.map(e=>d.has(e.provider)?e:y(e,`not-installed`))}function y(e,t){return{...e,disabled:!0,disabledReason:t,models:e.models.map(e=>({...e,disabled:!0}))}}function b(e){let t=g(e=>e.providers),n=g(e=>e.activeBuiltins),r=g(e=>e.availableProviders),i=g(e=>e.hasRunner),a=g(e=>e.fetch);return(0,u.useEffect)(()=>{a()},[a]),(0,u.useMemo)(()=>v(e,{providers:t,activeBuiltins:n,availableProviders:r,hasRunner:i}),[e,t,n,r,i])}function x(){let{t:e}=n();return b(p((0,u.useMemo)(()=>c(e),[e])))}export{g as n,x as t};
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{t as n}from"./useTranslation-DAPPK3Hy.js";import{t as r}from"./react-B8mHUpgK.js";import{E as i,L as a,T as o,j as s}from"./index-CmX0PQ41.js";import{s as c,u as l}from"./providers-CDWMbzb0.js";var u=e(t(),1),d=s(`PromptInputAcpModels`),f=new Set(o);function p(e){let{t}=n(),r=l(e=>e.byProvider),i=l(e=>e.fetch);(0,u.useEffect)(()=>{for(let e of o)i(e)},[i]);let a=(0,u.useRef)({});return(0,u.useEffect)(()=>{for(let e of o){let t=r[e];if(!t||t.status!==`error`||!t.message)continue;let n=`${t.reason??`unknown`}|${t.message}`;a.current[e]!==n&&(a.current[e]=n,d.warn(`acp model discovery failed`,{provider:e,reason:t.reason??`unknown`,message:t.message}))}},[r]),(0,u.useMemo)(()=>{let n=(e,n)=>{let r=`thread.model.${e}`,i=t(r);return i===r?n:i};return e.map(e=>{if(!f.has(e.provider))return e;let t=e.provider,i=r[t],a=n(`${t}Default`,`${e.providerLabel} (configured default)`),o=[{value:`${t}:default`,label:a}];if(i?.status===`ready`&&i.models.length>0)for(let e of i.models)o.push({value:`${t}:${e.modelId}`,label:e.name||e.modelId});else if(i?.status===`error`){let e=i.reason===`auth_required`?n(`${t}AuthRequired`,`${t}: configurar (autenticar en el runner)`):i.reason===`sdk_missing`?n(`${t}SdkMissing`,`${t}: SDK no instalado`):i.reason===`no_models`?n(`${t}NoModels`,`${t}: no hay modelos configurados`):i.reason===`spawn_failed`?n(`${t}SpawnFailed`,`${t}: no se pudo iniciar`):i.reason===`timeout`?n(`${t}Timeout`,`${t}: tiempo de espera agotado`):n(`${t}Error`,`${t}: error de descubrimiento`);o.push({value:`${t}:__configure__`,label:e})}else i?.status===`loading`&&o.push({value:`${t}:__loading__`,label:n(`${t}Loading`,`Cargando modelos…`)});return{...e,models:o}})},[e,r,t])}var m=s(`runner-providers-store`),h=6e4,g=r((e,t)=>({providers:[],activeBuiltins:null,availableProviders:null,hasRunner:!1,loadedAt:0,loading:!1,fetch:async(n=!1)=>{let r=t();if(r.loading||!n&&r.loadedAt&&Date.now()-r.loadedAt<h)return;e({loading:!0});let i=await a.getProviders();if(i.isErr()){m.warn(`failed to load runner providers`,{error:i.error.message}),e({loading:!1,loadedAt:Date.now()});return}e({providers:i.value.providers,activeBuiltins:i.value.activeBuiltins,availableProviders:i.value.availableProviders,hasRunner:i.value.hasRunner,loading:!1,loadedAt:Date.now()})},setActiveBuiltins:t=>e({activeBuiltins:t})})),_=new Set(i);function v(e,t){let{providers:n,activeBuiltins:r,availableProviders:i,hasRunner:a}=t,o=r?new Set(r):null,s=o?e.filter(e=>!_.has(e.provider)||o.has(e.provider)):e,c=new Set(s.map(e=>e.provider)),l=n.filter(e=>!c.has(e.id)).map(e=>{let t=e.models.kind===`static`&&e.models.entries&&e.models.entries.length>0?e.models.entries.map(t=>({value:`${e.id}:${t.id}`,label:t.label})):[{value:`${e.id}:${e.models.defaultModel}`,label:`${e.label} (configured default)`}];return{provider:e.id,providerLabel:e.label,models:t}}),u=l.length>0?[...s,...l]:s;if(!a)return u.map(e=>y(e,`no-runner`));if(!i)return u;let d=new Set(i);return u.map(e=>d.has(e.provider)?e:y(e,`not-installed`))}function y(e,t){return{...e,disabled:!0,disabledReason:t,models:e.models.map(e=>({...e,disabled:!0}))}}function b(e){let t=g(e=>e.providers),n=g(e=>e.activeBuiltins),r=g(e=>e.availableProviders),i=g(e=>e.hasRunner),a=g(e=>e.fetch);return(0,u.useEffect)(()=>{a()},[a]),(0,u.useMemo)(()=>v(e,{providers:t,activeBuiltins:n,availableProviders:r,hasRunner:i}),[e,t,n,r,i])}function x(){let{t:e}=n();return b(p((0,u.useMemo)(()=>c(e),[e])))}export{g as n,x as t};
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/browser-panel-store-NtcEgowi.js","assets/index-DCJpZz6M.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/mermaid-DOtnPRYX.js","assets/dist-9FgEnJXd.js","assets/dist-Bdl9_5dx.js","assets/dist-D13Y8-qe.js","assets/icons-sqwAEN28.js","assets/tiptap-ByTP6yRf.js","assets/markdown-DBtwZWLP.js","assets/clsx-CjueKrWZ.js","assets/motion-622LpYRB.js","assets/_core-lD_pNs53.js","assets/initReactI18next-Dr0vnWXF.js","assets/auth-events-BAwnCYTy.js","assets/telemetry-BE4cJhqj.js","assets/circuit-breaker-store-DR3Dx8rQ.js","assets/react-B8mHUpgK.js","assets/index-CD_81O-J.css","assets/BrowserPreview-mlb1GznK.js","assets/items-azeOGVff.js","assets/button-CZ967bB8.js","assets/syntax-C54GZp2G.js","assets/useTranslation-DAPPK3Hy.js","assets/input-C2LWQS5Y.js","assets/tabs-DK0DleVt.js","assets/loading-state-CZgfErMi.js","assets/tooltip-icon-button-DD8fKyR8.js","assets/test-store-20Ippy2V.js","assets/review-pane-store-B31R8Yhv.js","assets/native-git-store-KpsndLzH.js","assets/automation-store-CeG5quCS.js","assets/watcher-store-CPHW6IK4.js","assets/job-store-Bxebwj0k.js","assets/pipeline-store-DwtuAtoc.js","assets/pipeline-approval-store-B7WMnOHB.js","assets/orchestrator-store-CgmJPyrE.js","assets/comment-store-CK5G8WPn.js","assets/presence-store-ESqUr2xn.js","assets/pr-detail-store-DetZmOmN.js"])))=>i.map(i=>d[i]);
2
- import{a as e,r as t}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as n}from"./icons-sqwAEN28.js";import{At as r}from"./mermaid-DOtnPRYX.js";import{n as i}from"./_core-lD_pNs53.js";import{n as a,t as o}from"./telemetry-BE4cJhqj.js";import{t as s}from"./circuit-breaker-store-DR3Dx8rQ.js";import{j as c}from"./index-DCJpZz6M.js";import{C as l,I as u,Ir as ee,Lt as d,M as te,O as ne,P as f,Rt as re,Sr as ie,Un as p,Ur as m,Ut as ae,Vn as oe,br as se,j as h}from"./items-azeOGVff.js";var g=Object.create(null);g.open=`0`,g.close=`1`,g.ping=`2`,g.pong=`3`,g.message=`4`,g.upgrade=`5`,g.noop=`6`;var _=Object.create(null);Object.keys(g).forEach(e=>{_[g[e]]=e});var ce={type:`error`,data:`parser error`},le=typeof Blob==`function`||typeof Blob<`u`&&Object.prototype.toString.call(Blob)===`[object BlobConstructor]`,ue=typeof ArrayBuffer==`function`,de=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,fe=({type:e,data:t},n,r)=>le&&t instanceof Blob?n?r(t):pe(t,r):ue&&(t instanceof ArrayBuffer||de(t))?n?r(t):pe(new Blob([t]),r):r(g[e]+(t||``)),pe=(e,t)=>{let n=new FileReader;return n.onload=function(){let e=n.result.split(`,`)[1];t(`b`+(e||``))},n.readAsDataURL(e)};function me(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var he;function ge(e,t){if(le&&e.data instanceof Blob)return e.data.arrayBuffer().then(me).then(t);if(ue&&(e.data instanceof ArrayBuffer||de(e.data)))return t(me(e.data));fe(e,!1,e=>{he||=new TextEncoder,t(he.encode(e))})}var _e=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,v=typeof Uint8Array>`u`?[]:new Uint8Array(256);for(let e=0;e<64;e++)v[_e.charCodeAt(e)]=e;var ve=e=>{let t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);let l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=v[e.charCodeAt(r)],o=v[e.charCodeAt(r+1)],s=v[e.charCodeAt(r+2)],c=v[e.charCodeAt(r+3)],u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l},ye=typeof ArrayBuffer==`function`,be=(e,t)=>{if(typeof e!=`string`)return{type:`message`,data:Se(e,t)};let n=e.charAt(0);return n===`b`?{type:`message`,data:xe(e.substring(1),t)}:_[n]?e.length>1?{type:_[n],data:e.substring(1)}:{type:_[n]}:ce},xe=(e,t)=>ye?Se(ve(e),t):{base64:!0,data:e},Se=(e,t)=>{switch(t){case`blob`:return e instanceof Blob?e:new Blob([e]);default:return e instanceof ArrayBuffer?e:e.buffer}},Ce=``,we=(e,t)=>{let n=e.length,r=Array(n),i=0;e.forEach((e,a)=>{fe(e,!1,e=>{r[a]=e,++i===n&&t(r.join(Ce))})})},Te=(e,t)=>{let n=e.split(Ce),r=[];for(let e=0;e<n.length;e++){let i=be(n[e],t);if(r.push(i),i.type===`error`)break}return r};function Ee(){return new TransformStream({transform(e,t){ge(e,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);let e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!=`string`&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}var De;function y(e){return e.reduce((e,t)=>e+t.length,0)}function b(e,t){if(e[0].length===t)return e.shift();let n=new Uint8Array(t),r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function Oe(e,t){De||=new TextDecoder;let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(y(n)<1)break;let e=b(n,1);a=(e[0]&128)==128,i=e[0]&127,r=i<126?3:i===126?1:2}else if(r===1){if(y(n)<2)break;let e=b(n,2);i=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),r=3}else if(r===2){if(y(n)<8)break;let e=b(n,8),t=new DataView(e.buffer,e.byteOffset,e.length),a=t.getUint32(0);if(a>2**21-1){s.enqueue(ce);break}i=a*2**32+t.getUint32(4),r=3}else{if(y(n)<i)break;let e=b(n,i);s.enqueue(be(a?e:De.decode(e),t)),r=0}if(i===0||i>e){s.enqueue(ce);break}}}})}function x(e){if(e)return ke(e)}function ke(e){for(var t in x.prototype)e[t]=x.prototype[t];return e}x.prototype.on=x.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[`$`+e]=this._callbacks[`$`+e]||[]).push(t),this},x.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},x.prototype.off=x.prototype.removeListener=x.prototype.removeAllListeners=x.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks[`$`+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks[`$`+e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks[`$`+e],this},x.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=Array(arguments.length-1),n=this._callbacks[`$`+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},x.prototype.emitReserved=x.prototype.emit,x.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[`$`+e]||[]},x.prototype.hasListeners=function(e){return!!this.listeners(e).length};var S=typeof Promise==`function`&&typeof Promise.resolve==`function`?e=>Promise.resolve().then(e):(e,t)=>t(e,0),C=typeof self<`u`?self:typeof window<`u`?window:Function(`return this`)(),Ae=`arraybuffer`;function je(e,...t){return t.reduce((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t),{})}var Me=C.setTimeout,Ne=C.clearTimeout;function w(e,t){t.useNativeTimers?(e.setTimeoutFn=Me.bind(C),e.clearTimeoutFn=Ne.bind(C)):(e.setTimeoutFn=C.setTimeout.bind(C),e.clearTimeoutFn=C.clearTimeout.bind(C))}var Pe=1.33;function Fe(e){return typeof e==`string`?Ie(e):Math.ceil((e.byteLength||e.size)*Pe)}function Ie(e){let t=0,n=0;for(let r=0,i=e.length;r<i;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function Le(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Re(e){let t=``;for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+=`&`),t+=encodeURIComponent(n)+`=`+encodeURIComponent(e[n]));return t}function ze(e){let t={},n=e.split(`&`);for(let e=0,r=n.length;e<r;e++){let r=n[e].split(`=`);t[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return t}var Be=class extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type=`TransportError`}},Ve=class extends x{constructor(e){super(),this.writable=!1,w(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,n){return super.emitReserved(`error`,new Be(e,t,n)),this}open(){return this.readyState=`opening`,this.doOpen(),this}close(){return(this.readyState===`opening`||this.readyState===`open`)&&(this.doClose(),this.onClose()),this}send(e){this.readyState===`open`&&this.write(e)}onOpen(){this.readyState=`open`,this.writable=!0,super.emitReserved(`open`)}onData(e){let t=be(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved(`packet`,e)}onClose(e){this.readyState=`closed`,super.emitReserved(`close`,e)}pause(e){}createUri(e,t={}){return e+`://`+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){let e=this.opts.hostname;return e.indexOf(`:`)===-1?e:`[`+e+`]`}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?`:`+this.opts.port:``}_query(e){let t=Re(e);return t.length?`?`+t:``}},He=class extends Ve{constructor(){super(...arguments),this._polling=!1}get name(){return`polling`}doOpen(){this._poll()}pause(e){this.readyState=`pausing`;let t=()=>{this.readyState=`paused`,e()};if(this._polling||!this.writable){let e=0;this._polling&&(e++,this.once(`pollComplete`,function(){--e||t()})),this.writable||(e++,this.once(`drain`,function(){--e||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved(`poll`)}onData(e){Te(e,this.socket.binaryType).forEach(e=>{if(this.readyState===`opening`&&e.type===`open`&&this.onOpen(),e.type===`close`)return this.onClose({description:`transport closed by the server`}),!1;this.onPacket(e)}),this.readyState!==`closed`&&(this._polling=!1,this.emitReserved(`pollComplete`),this.readyState===`open`&&this._poll())}doClose(){let e=()=>{this.write([{type:`close`}])};this.readyState===`open`?e():this.once(`open`,e)}write(e){this.writable=!1,we(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved(`drain`)})})}uri(){let e=this.opts.secure?`https`:`http`,t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=Le()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}},Ue=!1;try{Ue=typeof XMLHttpRequest<`u`&&`withCredentials`in new XMLHttpRequest}catch{}var We=Ue;function Ge(){}var Ke=class extends He{constructor(e){if(super(e),typeof location<`u`){let t=location.protocol===`https:`,n=location.port;n||=t?`443`:`80`,this.xd=typeof location<`u`&&e.hostname!==location.hostname||n!==e.port}}doWrite(e,t){let n=this.request({method:`POST`,data:e});n.on(`success`,t),n.on(`error`,(e,t)=>{this.onError(`xhr post error`,e,t)})}doPoll(){let e=this.request();e.on(`data`,this.onData.bind(this)),e.on(`error`,(e,t)=>{this.onError(`xhr poll error`,e,t)}),this.pollXhr=e}},T=class e extends x{constructor(e,t,n){super(),this.createRequest=e,w(this,n),this._opts=n,this._method=n.method||`GET`,this._uri=t,this._data=n.data===void 0?null:n.data,this._create()}_create(){var t;let n=je(this._opts,`agent`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`autoUnref`);n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let e in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(e)&&r.setRequestHeader(e,this._opts.extraHeaders[e])}}catch{}if(this._method===`POST`)try{r.setRequestHeader(`Content-type`,`text/plain;charset=UTF-8`)}catch{}try{r.setRequestHeader(`Accept`,`*/*`)}catch{}(t=this._opts.cookieJar)==null||t.addCookies(r),`withCredentials`in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var e;r.readyState===3&&((e=this._opts.cookieJar)==null||e.parseCookies(r.getResponseHeader(`set-cookie`))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status==`number`?r.status:0)},0))},r.send(this._data)}catch(e){this.setTimeoutFn(()=>{this._onError(e)},0);return}typeof document<`u`&&(this._index=e.requestsCount++,e.requests[this._index]=this)}_onError(e){this.emitReserved(`error`,e,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(this._xhr===void 0||this._xhr===null)){if(this._xhr.onreadystatechange=Ge,t)try{this._xhr.abort()}catch{}typeof document<`u`&&delete e.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved(`data`,e),this.emitReserved(`success`),this._cleanup())}abort(){this._cleanup()}};if(T.requestsCount=0,T.requests={},typeof document<`u`){if(typeof attachEvent==`function`)attachEvent(`onunload`,qe);else if(typeof addEventListener==`function`){let e=`onpagehide`in C?`pagehide`:`unload`;addEventListener(e,qe,!1)}}function qe(){for(let e in T.requests)T.requests.hasOwnProperty(e)&&T.requests[e].abort()}var Je=(function(){let e=Xe({xdomain:!1});return e&&e.responseType!==null})(),Ye=class extends Ke{constructor(e){super(e);let t=e&&e.forceBase64;this.supportsBinary=Je&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new T(Xe,this.uri(),e)}};function Xe(e){let t=e.xdomain;try{if(typeof XMLHttpRequest<`u`&&(!t||We))return new XMLHttpRequest}catch{}if(!t)try{return new C[[`Active`,`Object`].join(`X`)](`Microsoft.XMLHTTP`)}catch{}}var Ze=typeof navigator<`u`&&typeof navigator.product==`string`&&navigator.product.toLowerCase()===`reactnative`,Qe=class extends Ve{get name(){return`websocket`}doOpen(){let e=this.uri(),t=this.opts.protocols,n=Ze?{}:je(this.opts,`agent`,`perMessageDeflate`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`localAddress`,`protocolVersion`,`origin`,`maxPayload`,`family`,`checkServerIdentity`);this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,n)}catch(e){return this.emitReserved(`error`,e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:`websocket connection closed`,context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError(`websocket error`,e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;fe(n,this.supportsBinary,e=>{try{this.doWrite(n,e)}catch{}r&&S(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){this.ws!==void 0&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?`wss`:`ws`,t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Le()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},$e=C.WebSocket||C.MozWebSocket,et={websocket:class extends Qe{createSocket(e,t,n){return Ze?new $e(e,t,n):t?new $e(e,t):new $e(e)}doWrite(e,t){this.ws.send(t)}},webtransport:class extends Ve{get name(){return`webtransport`}doOpen(){try{this._transport=new WebTransport(this.createUri(`https`),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved(`error`,e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError(`webtransport error`,e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let t=Oe(2**53-1,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),r=Ee();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();let i=()=>{n.read().then(({done:e,value:t})=>{e||(this.onPacket(t),i())}).catch(e=>{})};i();let a={type:`open`};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;this._writer.write(n).then(()=>{r&&S(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)==null||e.close()}},polling:Ye},tt=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,nt=[`source`,`protocol`,`authority`,`userInfo`,`user`,`password`,`host`,`port`,`relative`,`path`,`directory`,`file`,`query`,`anchor`];function rt(e){if(e.length>8e3)throw`URI too long`;let t=e,n=e.indexOf(`[`),r=e.indexOf(`]`);n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,`;`)+e.substring(r,e.length));let i=tt.exec(e||``),a={},o=14;for(;o--;)a[nt[o]]=i[o]||``;return n!=-1&&r!=-1&&(a.source=t,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,`:`),a.authority=a.authority.replace(`[`,``).replace(`]`,``).replace(/;/g,`:`),a.ipv6uri=!0),a.pathNames=it(a,a.path),a.queryKey=at(a,a.query),a}function it(e,t){let n=t.replace(/\/{2,9}/g,`/`).split(`/`);return(t.slice(0,1)==`/`||t.length===0)&&n.splice(0,1),t.slice(-1)==`/`&&n.splice(n.length-1,1),n}function at(e,t){let n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,r){t&&(n[t]=r)}),n}var ot=typeof addEventListener==`function`&&typeof removeEventListener==`function`,E=[];ot&&addEventListener(`offline`,()=>{E.forEach(e=>e())},!1);var D=class e extends x{constructor(e,t){if(super(),this.binaryType=Ae,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e==`object`&&(t=e,e=null),e){let n=rt(e);t.hostname=n.host,t.secure=n.protocol===`https`||n.protocol===`wss`,t.port=n.port,n.query&&(t.query=n.query)}else t.host&&(t.hostname=rt(t.host).host);w(this,t),this.secure=t.secure==null?typeof location<`u`&&location.protocol===`https:`:t.secure,t.hostname&&!t.port&&(t.port=this.secure?`443`:`80`),this.hostname=t.hostname||(typeof location<`u`?location.hostname:`localhost`),this.port=t.port||(typeof location<`u`&&location.port?location.port:this.secure?`443`:`80`),this.transports=[],this._transportsByName={},t.transports.forEach(e=>{let t=e.prototype.name;this.transports.push(t),this._transportsByName[t]=e}),this.opts=Object.assign({path:`/engine.io`,agent:!1,withCredentials:!1,upgrade:!0,timestampParam:`t`,rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,``)+(this.opts.addTrailingSlash?`/`:``),typeof this.opts.query==`string`&&(this.opts.query=ze(this.opts.query)),ot&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener(`beforeunload`,this._beforeunloadEventListener,!1)),this.hostname!==`localhost`&&(this._offlineEventListener=()=>{this._onClose(`transport close`,{description:`network connection lost`})},E.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);let n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](n)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved(`error`,`No transports available`)},0);return}let t=this.opts.rememberUpgrade&&e.priorWebsocketSuccess&&this.transports.indexOf(`websocket`)!==-1?`websocket`:this.transports[0];this.readyState=`opening`;let n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on(`drain`,this._onDrain.bind(this)).on(`packet`,this._onPacket.bind(this)).on(`error`,this._onError.bind(this)).on(`close`,e=>this._onClose(`transport close`,e))}onOpen(){this.readyState=`open`,e.priorWebsocketSuccess=this.transport.name===`websocket`,this.emitReserved(`open`),this.flush()}_onPacket(e){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`)switch(this.emitReserved(`packet`,e),this.emitReserved(`heartbeat`),e.type){case`open`:this.onHandshake(JSON.parse(e.data));break;case`ping`:this._sendPacket(`pong`),this.emitReserved(`ping`),this.emitReserved(`pong`),this._resetPingTimeout();break;case`error`:let t=Error(`server error`);t.code=e.data,this._onError(t);break;case`message`:this.emitReserved(`data`,e.data),this.emitReserved(`message`,e.data);break}}onHandshake(e){this.emitReserved(`handshake`,e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!==`closed`&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose(`ping timeout`)},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved(`drain`):this.flush()}flush(){if(this.readyState!==`closed`&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved(`flush`)}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name===`polling`&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let t=0;t<this.writeBuffer.length;t++){let n=this.writeBuffer[t].data;if(n&&(e+=Fe(n)),t>0&&e>this._maxPayload)return this.writeBuffer.slice(0,t);e+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,S(()=>{this._onClose(`ping timeout`)},this.setTimeoutFn)),e}write(e,t,n){return this._sendPacket(`message`,e,t,n),this}send(e,t,n){return this._sendPacket(`message`,e,t,n),this}_sendPacket(e,t,n,r){if(typeof t==`function`&&(r=t,t=void 0),typeof n==`function`&&(r=n,n=null),this.readyState===`closing`||this.readyState===`closed`)return;n||={},n.compress=!1!==n.compress;let i={type:e,data:t,options:n};this.emitReserved(`packetCreate`,i),this.writeBuffer.push(i),r&&this.once(`flush`,r),this.flush()}close(){let e=()=>{this._onClose(`forced close`),this.transport.close()},t=()=>{this.off(`upgrade`,t),this.off(`upgradeError`,t),e()},n=()=>{this.once(`upgrade`,t),this.once(`upgradeError`,t)};return(this.readyState===`opening`||this.readyState===`open`)&&(this.readyState=`closing`,this.writeBuffer.length?this.once(`drain`,()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}_onError(t){if(e.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState===`opening`)return this.transports.shift(),this._open();this.emitReserved(`error`,t),this._onClose(`transport error`,t)}_onClose(e,t){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners(`close`),this.transport.close(),this.transport.removeAllListeners(),ot&&(this._beforeunloadEventListener&&removeEventListener(`beforeunload`,this._beforeunloadEventListener,!1),this._offlineEventListener)){let e=E.indexOf(this._offlineEventListener);e!==-1&&E.splice(e,1)}this.readyState=`closed`,this.id=null,this.emitReserved(`close`,e,t),this.writeBuffer=[],this._prevBufferLen=0}}};D.protocol=4;var st=class extends D{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState===`open`&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),n=!1;D.priorWebsocketSuccess=!1;let r=()=>{n||(t.send([{type:`ping`,data:`probe`}]),t.once(`packet`,e=>{if(!n)if(e.type===`pong`&&e.data===`probe`){if(this.upgrading=!0,this.emitReserved(`upgrading`,t),!t)return;D.priorWebsocketSuccess=t.name===`websocket`,this.transport.pause(()=>{n||this.readyState!==`closed`&&(l(),this.setTransport(t),t.send([{type:`upgrade`}]),this.emitReserved(`upgrade`,t),t=null,this.upgrading=!1,this.flush())})}else{let e=Error(`probe error`);e.transport=t.name,this.emitReserved(`upgradeError`,e)}}))};function i(){n||(n=!0,l(),t.close(),t=null)}let a=e=>{let n=Error(`probe error: `+e);n.transport=t.name,i(),this.emitReserved(`upgradeError`,n)};function o(){a(`transport closed`)}function s(){a(`socket closed`)}function c(e){t&&e.name!==t.name&&i()}let l=()=>{t.removeListener(`open`,r),t.removeListener(`error`,a),t.removeListener(`close`,o),this.off(`close`,s),this.off(`upgrading`,c)};t.once(`open`,r),t.once(`error`,a),t.once(`close`,o),this.once(`close`,s),this.once(`upgrading`,c),this._upgrades.indexOf(`webtransport`)!==-1&&e!==`webtransport`?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let t=[];for(let n=0;n<e.length;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}},ct=class extends st{constructor(e,t={}){let n=typeof e==`object`?e:t;(!n.transports||n.transports&&typeof n.transports[0]==`string`)&&(n.transports=(n.transports||[`polling`,`websocket`,`webtransport`]).map(e=>et[e]).filter(e=>!!e)),super(e,n)}};ct.protocol;function lt(e,t=``,n){let r=e;n||=typeof location<`u`&&location,e??=n.protocol+`//`+n.host,typeof e==`string`&&(e.charAt(0)===`/`&&(e=e.charAt(1)===`/`?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=n===void 0?`https://`+e:n.protocol+`//`+e),r=rt(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=`80`:/^(http|ws)s$/.test(r.protocol)&&(r.port=`443`)),r.path=r.path||`/`;let i=r.host.indexOf(`:`)===-1?r.host:`[`+r.host+`]`;return r.id=r.protocol+`://`+i+`:`+r.port+t,r.href=r.protocol+`://`+i+(n&&n.port===r.port?``:`:`+r.port),r}var ut=typeof ArrayBuffer==`function`,dt=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,ft=Object.prototype.toString,pt=typeof Blob==`function`||typeof Blob<`u`&&ft.call(Blob)===`[object BlobConstructor]`,mt=typeof File==`function`||typeof File<`u`&&ft.call(File)===`[object FileConstructor]`;function O(e){return ut&&(e instanceof ArrayBuffer||dt(e))||pt&&e instanceof Blob||mt&&e instanceof File}function k(e,t){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(k(e[t]))return!0;return!1}if(O(e))return!0;if(e.toJSON&&typeof e.toJSON==`function`&&arguments.length===1)return k(e.toJSON(),!0);for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&k(e[t]))return!0;return!1}function ht(e){let t=[],n=e.data,r=e;return r.data=gt(n,t),r.attachments=t.length,{packet:r,buffers:t}}function gt(e,t){if(!e)return e;if(O(e)){let n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=gt(e[r],t);return n}else if(typeof e==`object`&&!(e instanceof Date)){let n={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=gt(e[r],t));return n}return e}function _t(e,t){return e.data=vt(e.data,t),delete e.attachments,e}function vt(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num==`number`&&e.num>=0&&e.num<t.length)return t[e.num];throw Error(`illegal attachments`)}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=vt(e[n],t);else if(typeof e==`object`)for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=vt(e[n],t));return e}var yt=t({Decoder:()=>St,Encoder:()=>xt,PacketType:()=>A,isPacketValid:()=>Ot,protocol:()=>5}),bt=[`connect`,`connect_error`,`disconnect`,`disconnecting`,`newListener`,`removeListener`],A;(function(e){e[e.CONNECT=0]=`CONNECT`,e[e.DISCONNECT=1]=`DISCONNECT`,e[e.EVENT=2]=`EVENT`,e[e.ACK=3]=`ACK`,e[e.CONNECT_ERROR=4]=`CONNECT_ERROR`,e[e.BINARY_EVENT=5]=`BINARY_EVENT`,e[e.BINARY_ACK=6]=`BINARY_ACK`})(A||={});var xt=class{constructor(e){this.replacer=e}encode(e){return(e.type===A.EVENT||e.type===A.ACK)&&k(e)?this.encodeAsBinary({type:e.type===A.EVENT?A.BINARY_EVENT:A.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=``+e.type;return(e.type===A.BINARY_EVENT||e.type===A.BINARY_ACK)&&(t+=e.attachments+`-`),e.nsp&&e.nsp!==`/`&&(t+=e.nsp+`,`),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){let t=ht(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}},St=class e extends x{constructor(e){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof e==`function`?{reviver:e}:e)}add(e){let t;if(typeof e==`string`){if(this.reconstructor)throw Error(`got plaintext data when reconstructing a packet`);t=this.decodeString(e);let n=t.type===A.BINARY_EVENT;n||t.type===A.BINARY_ACK?(t.type=n?A.EVENT:A.ACK,this.reconstructor=new Ct(t),t.attachments===0&&super.emitReserved(`decoded`,t)):super.emitReserved(`decoded`,t)}else if(O(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved(`decoded`,t));else throw Error(`got binary data when not reconstructing a packet`);else throw Error(`Unknown type: `+e)}decodeString(t){let n=0,r={type:Number(t.charAt(0))};if(A[r.type]===void 0)throw Error(`unknown packet type `+r.type);if(r.type===A.BINARY_EVENT||r.type===A.BINARY_ACK){let e=n+1;for(;t.charAt(++n)!==`-`&&n!=t.length;);let i=t.substring(e,n);if(i!=Number(i)||t.charAt(n)!==`-`)throw Error(`Illegal attachments`);let a=Number(i);if(!Tt(a)||a<0)throw Error(`Illegal attachments`);if(a>this.opts.maxAttachments)throw Error(`too many attachments`);r.attachments=a}if(t.charAt(n+1)===`/`){let e=n+1;for(;++n&&!(t.charAt(n)===`,`||n===t.length););r.nsp=t.substring(e,n)}else r.nsp=`/`;let i=t.charAt(n+1);if(i!==``&&Number(i)==i){let e=n+1;for(;++n;){let e=t.charAt(n);if(e==null||Number(e)!=e){--n;break}if(n===t.length)break}r.id=Number(t.substring(e,n+1))}if(t.charAt(++n)){let i=this.tryParse(t.substr(n));if(e.isPayloadValid(r.type,i))r.data=i;else throw Error(`invalid payload`)}return r}tryParse(e){try{return JSON.parse(e,this.opts.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case A.CONNECT:return j(t);case A.DISCONNECT:return t===void 0;case A.CONNECT_ERROR:return typeof t==`string`||j(t);case A.EVENT:case A.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&bt.indexOf(t[0])===-1);case A.ACK:case A.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&=(this.reconstructor.finishedReconstruction(),null)}},Ct=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let e=_t(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function wt(e){return typeof e==`string`}var Tt=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e};function Et(e){return e===void 0||Tt(e)}function j(e){return Object.prototype.toString.call(e)===`[object Object]`}function Dt(e,t){switch(e){case A.CONNECT:return t===void 0||j(t);case A.DISCONNECT:return t===void 0;case A.EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&bt.indexOf(t[0])===-1);case A.ACK:return Array.isArray(t);case A.CONNECT_ERROR:return typeof t==`string`||j(t);default:return!1}}function Ot(e){return wt(e.nsp)&&Et(e.id)&&Dt(e.type,e.data)}function M(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var kt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),At=class extends x{constructor(e,t,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[M(e,`open`,this.onopen.bind(this)),M(e,`packet`,this.onpacket.bind(this)),M(e,`error`,this.onerror.bind(this)),M(e,`close`,this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState===`open`&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift(`message`),this.emit.apply(this,e),this}emit(e,...t){if(kt.hasOwnProperty(e))throw Error(`"`+e.toString()+`" is a reserved event name`);if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;let n={type:A.EVENT,data:t};if(n.options={},n.options.compress=this.flags.compress!==!1,typeof t[t.length-1]==`function`){let e=this.ids++,r=t.pop();this._registerAckCallback(e,r),n.id=e}let r=this.io.engine?.transport?.writable,i=this.connected&&!this.io.engine?._hasPingExpired();return this.flags.volatile&&!r||(i?(this.notifyOutgoingListeners(n),this.packet(n)):this.sendBuffer.push(n)),this.flags={},this}_registerAckCallback(e,t){let n=this.flags.timeout??this._opts.ackTimeout;if(n===void 0){this.acks[e]=t;return}let r=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let t=0;t<this.sendBuffer.length;t++)this.sendBuffer[t].id===e&&this.sendBuffer.splice(t,1);t.call(this,Error(`operation has timed out`))},n),i=(...e)=>{this.io.clearTimeoutFn(r),t.apply(this,e)};i.withError=!0,this.acks[e]=i}emitWithAck(e,...t){return new Promise((n,r)=>{let i=(e,t)=>e?r(e):n(t);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]==`function`&&(t=e.pop());let n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...r)=>(this._queue[0],e===null?(this._queue.shift(),t&&t(null,...r)):n.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;let t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth==`function`?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:A.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved(`connect_error`,e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved(`disconnect`,e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(t=>String(t.id)===e)){let t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,Error(`socket has been disconnected`))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case A.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved(`connect_error`,Error(`It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)`));break;case A.EVENT:case A.BINARY_EVENT:this.onevent(e);break;case A.ACK:case A.BINARY_ACK:this.onack(e);break;case A.DISCONNECT:this.ondisconnect();break;case A.CONNECT_ERROR:this.destroy();let t=Error(e.data.message);t.data=e.data.data,this.emitReserved(`connect_error`,t);break}}onevent(e){let t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let t=this._anyListeners.slice();for(let n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]==`string`&&(this._lastOffset=e[e.length-1])}ack(e){let t=this,n=!1;return function(...r){n||(n=!0,t.packet({type:A.ACK,id:e,data:r}))}}onack(e){let t=this.acks[e.id];typeof t==`function`&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved(`connect`)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose(`io server disconnect`)}destroy(){this.subs&&=(this.subs.forEach(e=>e()),void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:A.DISCONNECT}),this.destroy(),this.connected&&this.onclose(`io client disconnect`),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let n of t)n.apply(this,e.data)}}};function N(e){e||={},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}N.prototype.duration=function(){var e=this.ms*this.factor**+ this.attempts++;if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0},N.prototype.reset=function(){this.attempts=0},N.prototype.setMin=function(e){this.ms=e},N.prototype.setMax=function(e){this.max=e},N.prototype.setJitter=function(e){this.jitter=e};var jt=class extends x{constructor(e,t){super(),this.nsps={},this.subs=[],e&&typeof e==`object`&&(t=e,e=void 0),t||={},t.path=t.path||`/socket.io`,this.opts=t,w(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor??.5),this.backoff=new N({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState=`closed`,this.uri=e;let n=t.parser||yt;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)==null||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)==null||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)==null||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf(`open`))return this;this.engine=new ct(this.uri,this.opts);let t=this.engine,n=this;this._readyState=`opening`,this.skipReconnect=!1;let r=M(t,`open`,function(){n.onopen(),e&&e()}),i=t=>{this.cleanup(),this._readyState=`closed`,this.emitReserved(`error`,t),e?e(t):this.maybeReconnectOnOpen()},a=M(t,`error`,i);if(!1!==this._timeout){let e=this._timeout,n=this.setTimeoutFn(()=>{r(),i(Error(`timeout`)),t.close()},e);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}return this.subs.push(r),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState=`open`,this.emitReserved(`open`);let e=this.engine;this.subs.push(M(e,`ping`,this.onping.bind(this)),M(e,`data`,this.ondata.bind(this)),M(e,`error`,this.onerror.bind(this)),M(e,`close`,this.onclose.bind(this)),M(this.decoder,`decoded`,this.ondecoded.bind(this)))}onping(){this.emitReserved(`ping`)}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose(`parse error`,e)}}ondecoded(e){S(()=>{this.emitReserved(`packet`,e)},this.setTimeoutFn)}onerror(e){this.emitReserved(`error`,e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new At(this,e,t),this.nsps[e]=n),n}_destroy(e){let t=Object.keys(this.nsps);for(let e of t)if(this.nsps[e].active)return;this._close()}_packet(e){let t=this.encoder.encode(e);for(let n=0;n<t.length;n++)this.engine.write(t[n],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose(`forced close`)}disconnect(){return this._close()}onclose(e,t){var n;this.cleanup(),(n=this.engine)==null||n.close(),this.backoff.reset(),this._readyState=`closed`,this.emitReserved(`close`,e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved(`reconnect_failed`),this._reconnecting=!1;else{let t=this.backoff.duration();this._reconnecting=!0;let n=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved(`reconnect_attempt`,e.backoff.attempts),!e.skipReconnect&&e.open(t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved(`reconnect_error`,t)):e.onreconnect()}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved(`reconnect`,e)}},P={};function F(e,t){typeof e==`object`&&(t=e,e=void 0),t||={};let n=lt(e,t.path||`/socket.io`),r=n.source,i=n.id,a=n.path,o=P[i]&&a in P[i].nsps,s=t.forceNew||t[`force new connection`]||!1===t.multiplex||o,c;return s?c=new jt(r,t):(P[i]||(P[i]=new jt(r,t)),c=P[i]),n.query&&!t.query&&(t.query=n.queryKey),c.socket(n.path,t)}Object.assign(F,{Manager:jt,Socket:At,io:F,connect:F});var Mt=t({browserSessionClient:()=>Rt,resolveBrowserSessionRequest:()=>Lt}),Nt=c(`browser-session`),I=new Map,Pt=5e3,Ft=0;function It(){return Ft=(Ft+1)%(2**53-1),`bs-${Date.now().toString(36)}-${Ft.toString(36)}`}function Lt(e,t,n,r){let i=I.get(e);i&&(I.delete(e),clearTimeout(i.timer),t?i.resolve(n):i.reject(Error(r??`unknown error`)))}function L(e,t,n){return new Promise((r,i)=>{let a=wn();if(!a||!a.connected){i(Error(`ws-not-connected`));return}let o=It(),s=setTimeout(()=>{I.delete(o),i(Error(`timeout`))},Pt);I.set(o,{resolve:r,reject:i,timer:s}),a.emit(e,{sessionId:t,requestId:o,...n})})}function R(e,t,n={}){let r=wn();!r||!r.connected||r.emit(e,{sessionId:t,...n})}var Rt={open(e,t){Nt.info(`open`,{sessionId:e,url:t}),R(`browser-session:open`,e,{url:t})},navigate(e,t){R(`browser-session:navigate`,e,{url:t})},input(e,t){R(`browser-session:input`,e,t)},inspectAt(e,t,n){return L(`browser-session:inspect-at`,e,{x:t,y:n})},inspectRect(e,t,n,r,i){return L(`browser-session:inspect-rect`,e,{x:t,y:n,w:r,h:i})},screenshot(e){return L(`browser-session:screenshot`,e,{})},execute(e,t){return L(`browser-session:execute`,e,{expression:t})},nav(e,t){return L(`browser-session:nav`,e,{action:t})},heartbeat(e){R(`browser-session:heartbeat`,e)},close(e,t=`user`){Nt.info(`close`,{sessionId:e,reason:t}),R(`browser-session:close`,e,{reason:t})}},z=c(`browser-session`);function zt(e,t){switch(e){case`browser-session:frame`:{let e=t;return l(e.sessionId,e.data),!0}case`browser-session:ready`:{let e=t;return r(async()=>{let{useBrowserPanelStore:e}=await import(`./browser-panel-store-NtcEgowi.js`);return{useBrowserPanelStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useBrowserPanelStore:t})=>{let n=t.getState();n.sessionId===e.sessionId&&n.setSessionStatus(`ready`,null)}),!0}case`browser-session:result`:{let e=t;return Lt(e.requestId,e.ok,e.value,e.error),!0}case`browser-session:console`:return z.debug(`console`,t),!0;case`browser-session:error`:{let e=t;return z.warn(`page error`,e),!0}case`browser-session:closed`:{let e=t;return z.info(`session closed`,e),r(async()=>{let{useBrowserPanelStore:e}=await import(`./browser-panel-store-NtcEgowi.js`);return{useBrowserPanelStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useBrowserPanelStore:t})=>{let n=t.getState();if(n.sessionId===e.sessionId){let t=e.reason===`too_many_sessions`?`too-many-sessions`:`disconnected`;n.setSessionStatus(t,e.message??null)}}),!0}default:return!1}}function Bt(e,t){switch(e){case`test:frame`:return r(async()=>{let{renderFrame:e}=await import(`./BrowserPreview-mlb1GznK.js`);return{renderFrame:e}},__vite__mapDeps([19,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28])).then(({renderFrame:e})=>{e(t.data)}),r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().addFrameToHistory(t.data,t.timestamp)}),!0;case`test:output`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestOutput(t)}),!0;case`test:status`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestStatus(t)}),!0;case`test:console`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestConsole(t)}),!0;case`test:network`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestNetwork(t)}),!0;case`test:error`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestError(t)}),!0;case`test:action`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-20Ippy2V.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestAction(t)}),!0;default:return!1}}var B=e(n(),1),V=c(`ws`);function Vt(e,t){d.setState(n=>ae(n,e,e=>({...e,commentCount:Math.max(0,(e.commentCount??0)+t)})))}var H=new Map,U=new Map,Ht=!1,W=new Map,G=[],K=new Map,q=null;function Ut(e,t){return`${e}:${t?.messageId??``}`}var J=new Map,Wt=new Set([`Write`,`Edit`,`Bash`]);function Gt(){q=null;let e=Array.from(W.values()),t=G.slice(),n=Array.from(K.values());W.clear(),G=[],K.clear();let r=e.length+t.length+n.length;if(r===0)return;let i=a(`ws.flushBatch`,{attributes:{"batch.messages":e.length,"batch.tool_outputs":t.length,"batch.statuses":n.length}}),s=performance.now();(0,B.startTransition)(()=>{let r=d.getState();for(let e of n)r.handleWSStatus(e.threadId,e.data);for(let t of e)r.handleWSMessage(t.threadId,t.data);for(let e of t)r.handleWSToolOutput(e.threadId,e.data)});let c=performance.now()-s;i.end(),o(`ws.flushBatch.size`,r,{type:`gauge`}),c>16&&o(`ws.flushBatch.slow`,1,{type:`sum`,attributes:{reason:`over-1-frame`}})}function Kt(){q===null&&(q=requestAnimationFrame(Gt))}function qt(e,t,n){switch(e){case`agent:message`:{let e=Ut(t,n),r=W.has(e);V.info(`agent:message received`,{threadId:t,messageId:n?.messageId??``,role:n?.role??``,contentChars:String(n?.content?.length??0),collapsedPrevious:String(r)}),W.set(e,{threadId:t,data:n}),Kt();break}case`agent:tool_output`:G.push({threadId:t,data:n}),Kt();break;case`agent:init`:(0,B.startTransition)(()=>{d.getState().handleWSInit(t,n)});break;case`agent:status`:{let e=`${n.status}|${n.waitingReason??``}|${n.permissionRequest?.toolName??``}|${n.stage??``}|${n.permissionMode??``}`;if(J.get(t)===e)break;J.set(t,e),V.info(`agent:status`,{threadId:t,status:n.status,waitingReason:n.waitingReason??``,permissionRequest:n.permissionRequest?.toolName??``}),n.status===`waiting`||n.permissionRequest?(0,B.startTransition)(()=>{d.getState().handleWSStatus(t,n)}):(K.set(t,{threadId:t,data:n}),Kt());break}case`agent:result`:{J.delete(t);let e=String(n.status??``);V.info(`agent:result`,{threadId:t,status:e,cost:String(n.cost??``),errorReason:n.errorReason??``,isWaiting:String(n.status===`waiting`)}),o(`ws.result_received`,1,{attributes:{status:e}});let i=a(`ws.dispatch_result`,{attributes:{status:e}});q!==null&&(cancelAnimationFrame(q),q=null);let s=Array.from(W.values()),c=G.slice(),l=Array.from(K.values());if(W.clear(),G=[],K.clear(),l.length>0||s.length>0||c.length>0){let e=d.getState();for(let t of l)e.handleWSStatus(t.threadId,t.data);for(let t of s)e.handleWSMessage(t.threadId,t.data);for(let t of c)e.handleWSToolOutput(t.threadId,t.data)}(0,B.startTransition)(()=>{d.getState().handleWSResult(t,n),i.end(`OK`)}),r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)}),Xt(t,n);break}case`agent:tool_call`:{(n.name===`AskUserQuestion`||n.name===`ExitPlanMode`)&&V.info(`interactive tool_call received`,{threadId:t,toolName:n.name,toolCallId:n.toolCallId??``});let e=W.size>0;e&&q!==null&&(cancelAnimationFrame(q),q=null),(0,B.startTransition)(()=>{if(e){let e=Array.from(W.values());W.clear();let t=d.getState();for(let n of e)t.handleWSMessage(n.threadId,n.data)}d.getState().handleWSToolCall(t,n)}),Wt.has(n.name)&&r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)});break}case`agent:error`:V.error(`agent:error`,{threadId:t,error:n.error??`unknown`}),(0,B.startTransition)(()=>{d.getState().handleWSError(t,n)});break;case`agent:compact_boundary`:(0,B.startTransition)(()=>{d.getState().handleWSCompactBoundary(t,n)});break;case`agent:context_usage`:(0,B.startTransition)(()=>{d.getState().handleWSContextUsage(t,n)});break;case`command:output`:f.getState().appendCommandOutput(n.commandId,n.data);break;case`command:status`:(n.status===`exited`||n.status===`stopped`)&&(f.getState().markCommandExited(n.commandId),ne(n.commandId));break;case`command:metrics`:f.getState().updateCommandMetrics(n);break;case`native-git:build_output`:case`native-git:build_status`:r(async()=>{let{useNativeGitStore:e}=await import(`./native-git-store-KpsndLzH.js`).then(e=>e.t);return{useNativeGitStore:e}},__vite__mapDeps([30,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useNativeGitStore:t})=>{let r=t.getState();e===`native-git:build_output`?r.appendBuildOutput(n.text):r.setBuildStatus(n.status,n.exitCode)});break;case`automation:run_started`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CeG5quCS.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().handleRunStarted({...n,threadId:t})});break;case`automation:run_completed`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CeG5quCS.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().handleRunCompleted(n)});break;case`automation:run_updated`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CeG5quCS.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().loadInbox()});break;case`watcher:created`:case`watcher:fired`:case`watcher:rescheduled`:case`watcher:completed`:case`watcher:cancelled`:r(async()=>{let{useWatcherStore:e}=await import(`./watcher-store-CPHW6IK4.js`).then(e=>e.n);return{useWatcherStore:e}},__vite__mapDeps([32,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useWatcherStore:e})=>{n?.watcher&&e.getState().upsert(n.watcher)});break;case`job:created`:case`job:exited`:case`job:killed`:case`job:cancelled`:r(async()=>{let{useJobStore:e}=await import(`./job-store-Bxebwj0k.js`).then(e=>e.t);return{useJobStore:e}},__vite__mapDeps([33,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24])).then(({useJobStore:e})=>{n?.job&&e.getState().upsert(n.job)});break;case`pipeline:run_started`:case`pipeline:stage_update`:case`pipeline:run_completed`:r(async()=>{let{usePipelineStore:e}=await import(`./pipeline-store-DwtuAtoc.js`).then(e=>e.t);return{usePipelineStore:e}},__vite__mapDeps([34,2,17,7])).then(({usePipelineStore:t})=>{let r=t.getState();e===`pipeline:run_started`?r.handlePipelineStarted(n):e===`pipeline:stage_update`?r.handlePipelineStageUpdate(n):e===`pipeline:run_completed`&&r.handlePipelineCompleted(n)});break;case`pipeline:approval_requested`:case`pipeline:approval_resolved`:r(async()=>{let{usePipelineApprovalStore:e}=await import(`./pipeline-approval-store-B7WMnOHB.js`).then(e=>e.t);return{usePipelineApprovalStore:e}},__vite__mapDeps([35,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({usePipelineApprovalStore:t})=>{let r=t.getState();e===`pipeline:approval_requested`?r.handleApprovalRequested(n):r.handleApprovalResolved(n)});break;case`thread:claimed`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CgmJPyrE.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleClaimed(t,n)});break;case`thread:dispatched`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CgmJPyrE.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleDispatched(t,n)});break;case`thread:retry-queued`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CgmJPyrE.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleRetryQueued(t,n)});break;case`thread:released`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CgmJPyrE.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleReleased(t)});break;case`thread:created`:n.projectId&&d.getState().loadThreadsForProject(n.projectId);break;case`thread:comment`:n.comment&&(r(async()=>{let{useCommentStore:e}=await import(`./comment-store-CK5G8WPn.js`);return{useCommentStore:e}},__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useCommentStore:e})=>{e.getState().applyAdded(t,n.comment)}),Vt(t,1));break;case`thread:comment_deleted`:if(n.commentId)r(async()=>{let{useCommentStore:e}=await import(`./comment-store-CK5G8WPn.js`);return{useCommentStore:e}},__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useCommentStore:e})=>{e.getState().applyDeleted(t,n.commentId)}),Vt(t,-1);else{let e=d.getState();(ie()??e.selectedThreadId)===t&&e.refreshActiveThread()}break;case`thread:stage-changed`:d.getState().handleWSStageChanged(t,{fromStage:n.fromStage??null,toStage:n.toStage,projectId:n.projectId});break;case`thread:updated`:{let e=d.getState();n.status&&e.handleWSStatus(t,{status:n.status}),n.archived&&e.refreshAllLoadedThreads(),(n.branch||n.worktreePath||n.containerUrl||n.mergedAt||n.mode)&&(e.refreshAllLoadedThreads(),(ie()??e.selectedThreadId)===t&&e.refreshActiveThread()),n.permissionMode&&e.activeThread?.id===t&&d.setState({activeThread:{...e.activeThread,permissionMode:n.permissionMode}});break}case`presence:sync`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().setRoster(t,n.viewers??[])});break;case`presence:join`:n.viewer&&r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().upsertViewer(t,n.viewer)});break;case`presence:leave`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().removeViewer(t,n.clientId)});break;case`thread:share-revoked`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().clearThread(t)}),d.getState().handleShareRevoked(t);break;case`thread:share-granted`:d.getState().loadSharedThreads();break;case`git:status`:{p.getState().updateFromWS(n.statuses);let e=n.statuses.map(e=>e.branchKey);e.length>0&&oe(e),r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)});break}case`git:refs-updated`:{let e=p.getState();oe([n.projectId]);let t=ie()??d.getState().selectedThreadId;t&&e.fetchForThread(t,!0),e.fetchProjectStatus(n.projectId,!0),e.fetchForProject(n.projectId);break}case`git:workflow_progress`:Zt(t,n);break;case`thread:event`:Qt(t,n);break;case`pty:data`:f.getState().emitPtyData(n.ptyId,n.data);break;case`pty:exit`:f.getState().removeTab(n.ptyId);break;case`pty:error`:f.getState().setTabError(n.ptyId,n.error??`Failed to create terminal`),m.error(n.error??`Failed to create terminal`);break;case`runner:status`:$t(n);break;case`pty:env_activated`:{let e=n.activations.map(e=>`${e.kind}: ${e.detail}`);m.success(`Activated environment`,{description:e.join(`
3
- `)});break}case`thread:queue_update`:d.getState().handleWSQueueUpdate(t,n);break;case`test:frame`:case`test:output`:case`test:status`:case`test:console`:case`test:network`:case`test:error`:case`test:action`:Bt(e,n);break;case`browser-session:frame`:case`browser-session:ready`:case`browser-session:result`:case`browser-session:console`:case`browser-session:error`:case`browser-session:closed`:zt(e,n);break;case`clone:progress`:window.dispatchEvent(new CustomEvent(`clone:progress`,{detail:n}));break;case`worktree:setup`:window.dispatchEvent(new CustomEvent(`worktree:setup`,{detail:{threadId:t,...n}})),d.getState().handleWSWorktreeSetup(t,n);break;case`worktree:setup_complete`:d.getState().handleWSWorktreeSetupComplete(t,n);break}}function Jt(e){let t=d.getState();if(t.activeThread?.id===e)return{title:t.activeThread.title,branch:t.activeThread.branch,projectId:t.activeThread.projectId,isScratch:t.activeThread.isScratch};let n=t.threadsById[e];return n?{title:n.title,branch:n.branch,projectId:n.projectId,isScratch:!!n.isScratch}:{}}function Yt(e){let t=[`funny`];return e.branch&&t.push(e.branch),e.title&&t.push(e.title),t.join(` — `)}function Xt(e,t){let n=t.status,r=Jt(e),i=Yt(r),a=()=>{let t=se();t&&(r.isScratch?t(re(ee({id:e,projectId:``,isScratch:!0}))):r.projectId&&t(re(ee({id:e,projectId:r.projectId}))))};n===`completed`?u(i,`Agent finished`,{tag:`agent-result-${e}`,skipIfViewingThreadId:e,onClick:a}):(n===`failed`||n===`error`)&&u(i,`Agent failed${t.errorReason?` — ${t.errorReason}`:``}`,{tag:`agent-result-${e}`,skipIfViewingThreadId:e,onClick:a})}function Zt(e,t){r(async()=>{let{useCommitProgressStore:e}=await import(`./items-azeOGVff.js`).then(e=>e.Br);return{useCommitProgressStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])).then(({useCommitProgressStore:n})=>{let r=n.getState(),{status:i,title:a,action:o,steps:s,workflowId:c}=t;if(i===`started`)r.startCommit(e,a,s,o,c);else if(i===`step_update`){r.replaceSteps(e,s);let t=s?.find(e=>e.id===`hooks`&&e.status===`failed`);t&&m.error(`Pre-commit hook failed`,{description:t.error?t.error.slice(0,120):`A pre-commit hook did not pass`})}else i===`completed`?(r.replaceSteps(e,s),o===`push`&&m.success(`Pushed successfully`),setTimeout(()=>r.finishCommit(e),1500)):i===`failed`&&(r.replaceSteps(e,s),r.setFailedWorkflow({title:a||`Git operation failed`,steps:s??[],action:o??``}),r.finishCommit(e))}),(t.status===`completed`||t.status===`failed`)&&r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:t})=>{t.getState().notifyDirty(e)}),t.status===`completed`&&(t.action===`push`||t.action===`create-pr`||t.action===`commit-pr`||t.action===`commit-merge`)&&r(async()=>{let{usePRDetailStore:e}=await import(`./pr-detail-store-DetZmOmN.js`).then(e=>e.t);return{usePRDetailStore:e}},__vite__mapDeps([39,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({usePRDetailStore:e})=>{let{activeThread:t}=d.getState();if(t){let n=p.getState(),r=n.threadToBranchKey[t.id]??`${t.projectId}:${t.branch??``}`,i=n.statusByBranch[r]?.prNumber;i&&e.getState().invalidate(t.projectId,i)}})}function Qt(e,t){(0,B.startTransition)(()=>{let n=d.getState().activeThread;if(n&&n.id===e){let e=n.threadEvents??[];if(t.event?.id&&e.some(e=>e.id===t.event.id))return;d.setState({activeThread:{...n,threadEvents:[...e,t.event]}})}})}function $t(e){let t=e?.status;t!==`online`&&t!==`offline`||r(async()=>{let{useRunnerStatusStore:e}=await import(`./items-azeOGVff.js`).then(e=>e.A);return{useRunnerStatusStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])).then(({useRunnerStatusStore:e})=>{e.getState().setStatus(t)})}function en(e){let{type:t,threadId:n,data:r}=JSON.parse(e.data);qt(t,n,r)}var tn=`agent:message.agent:tool_output.agent:init.agent:status.agent:result.agent:tool_call.agent:error.agent:compact_boundary.agent:context_usage.command:output.command:status.command:metrics.automation:run_started.automation:run_completed.automation:run_updated.watcher:created.watcher:fired.watcher:rescheduled.watcher:completed.watcher:cancelled.job:created.job:exited.job:killed.job:cancelled.pipeline:run_started.pipeline:stage_update.pipeline:run_completed.pipeline:approval_requested.pipeline:approval_resolved.thread:claimed.thread:dispatched.thread:retry-queued.thread:released.thread:created.thread:comment.thread:comment_deleted.thread:stage-changed.thread:updated.presence:sync.presence:join.presence:leave.thread:share-revoked.thread:share-granted.git:status.git:refs-updated.git:workflow_progress.thread:event.pty:data.pty:exit.pty:error.pty:env_activated.thread:queue_update.test:frame.test:output.test:status.test:console.test:network.test:error.test:action.clone:progress.worktree:setup.worktree:setup_complete.native-git:build_output.native-git:build_status.runner:status.browser-session:ready.browser-session:frame.browser-session:result.browser-session:console.browser-session:error.browser-session:closed`.split(`.`),nn=new Map;function rn(e){let t=[];for(let n of tn){let r=e=>{qt(n,e.threadId??``,e.data??e)};e.on(n,r),t.push({event:n,handler:r})}nn.set(e,t)}function an(e){let t=nn.get(e);if(t){for(let{event:n,handler:r}of t)e.off(n,r);nn.delete(e)}}function on(e){if(Ht||H.has(e))return;let t=i(e);if(!t){V.warn(`refusing remote WS — invalid containerUrl`,{containerUrl:e});return}let n=`${t.replace(/^http/,`ws`)}/ws`;V.info(`connecting remote WS`,{containerUrl:t});let r=new WebSocket(n);H.set(e,r),r.onopen=()=>{V.info(`remote WS connected`,{containerUrl:e})},r.onmessage=en,r.onclose=()=>{if(H.delete(e),Ht)return;let t=setTimeout(()=>{U.delete(e);let t=d.getState().activeThread;t?.runtime===`remote`&&t?.containerUrl===e&&on(e)},3e3);U.set(e,t)},r.onerror=()=>{r.close()}}function sn(e){let t=U.get(e);t&&(clearTimeout(t),U.delete(e));let n=H.get(e);n&&(n.onmessage=null,n.onclose=null,n.onerror=null,n.close(),H.delete(e))}function cn(){for(let e of[...H.keys()])sn(e)}function ln(){q!==null&&(cancelAnimationFrame(q),q=null),W.clear(),G=[],K.clear(),J.clear()}function un(e){Ht=e}var Y=c(`ws`),X=null,Z=0,dn=!1,Q,$=null,fn=100;function pn(){un(!1);let e=F(window.__TAURI_INTERNALS__?`http://localhost:5002`:window.location.origin,{withCredentials:!0,reconnection:!0,reconnectionDelay:2e3,reconnectionDelayMax:1e4,transports:[`websocket`,`polling`]});X=e,e.on(`connect`,()=>{let t=e.io.engine?.transport?.name??`unknown`;Y.info(`Socket.IO connected`,{transport:t}),o(`ws.connected`,1,{attributes:{transport:t}}),e.io.engine?.on(`upgrade`,e=>{let t=typeof e==`string`?e:e?.name??`unknown`;Y.info(`Socket.IO transport upgraded`,{transport:t}),o(`ws.transport_upgrade`,1,{attributes:{transport:t}})}),s.getState().recordSuccess();let n=dn;dn=!0,vn(n,window.location.pathname)&&d.getState().refreshAllLoadedThreads();let i=Object.keys(d.getState().threadIdsByProject);for(let e of i)p.getState().fetchForProject(e);f.getState().resetSessionsChecked(),h.getState().reset(),Q&&e.emit(`thread:open`,{threadId:Q});let a=!1,c=async()=>{if(!a){a=!0;try{let t=await e.timeout(7e3).emitWithAck(`pty:list`,{}),n=Array.isArray(t?.sessions)?t.sessions:[];if(t?.status===`ok`&&n.length>0){let{useProjectStore:e}=await r(async()=>{let{useProjectStore:e}=await import(`./items-azeOGVff.js`).then(e=>e.Er);return{useProjectStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])),t=e.getState().projects;f.getState().restoreTabs(n,t.map(e=>({id:e.id,path:e.path})))}else f.getState().markSessionsChecked();Y.info(`pty:list RPC completed`,{status:t?.status??`unknown`,count:n.length})}catch(e){Y.warn(`pty:list RPC failed`,{error:e.message}),f.getState().markSessionsChecked()}finally{a=!1}}},l=h.subscribe((e,t)=>{e.status===`online`&&t.status!==`online`&&c()});h.getState().status===`online`&&c(),e.once(`disconnect`,()=>{l()})}),e.on(`disconnect`,e=>{Y.info(`Socket.IO disconnected`,{reason:e}),h.getState().reset(),e===`io server disconnect`&&r(async()=>{let{useAuthStore:e}=await import(`./index-DCJpZz6M.js`).then(e=>e.O);return{useAuthStore:e}},__vite__mapDeps([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAuthStore:e})=>{e.getState().logout()})}),e.on(`connect_error`,e=>{Y.error(`Socket.IO connect error`,{error:e.message})}),rn(e)}function mn(){un(!0),cn(),ln(),X&&=(an(X),X.disconnect(),null)}var hn=2e3,gn=0;function _n(e){let t=te(e);return!(t.settingsPage||t.preferencesPage||t.addProject||t.scratchNew)}function vn(e,t){return e&&_n(t)}var yn=new Set([`setting_up`,`pending`,`running`,`waiting`]);function bn(e){let t=[];for(let[n,r]of Object.entries(e.threadIdsByProject))r.some(t=>yn.has(e.threadsById[t]?.status))&&t.push(n);return{projectIds:t,scratch:e.scratchThreadIds.some(t=>yn.has(e.threadsById[t]?.status)),shared:e.sharedThreadIds.some(t=>yn.has(e.threadsById[t]?.status))}}function xn(e){let t=bn(e);for(let n of t.projectIds)e.loadThreadsForProject(n);t.scratch&&e.loadScratchThreads(),t.shared&&e.loadSharedThreads()}function Sn(e){if(typeof document<`u`&&document.visibilityState===`hidden`||!X?.connected)return;let t=Date.now();if(t-gn<hn)return;if(!_n(window.location.pathname)){Y.debug(`Skipping focus resync — route does not display thread data`,{reason:e});return}gn=t,Y.info(`Tab regained focus — resyncing threads`,{reason:e});let n=d.getState();n.activeThread?(n.refreshActiveThread(),xn(n)):n.refreshAllLoadedThreads()}function Cn(){(0,B.useEffect)(()=>{$&&=(clearTimeout($),null),Z++,Z===1&&!X&&pn();let e,t=d.subscribe(t=>{let n=t.activeThread,r=n?.id;r!==Q&&(Q&&X?.emit(`thread:close`,{threadId:Q}),r&&X?.emit(`thread:open`,{threadId:r}),Q=r);let i=n?.runtime===`remote`?n.containerUrl:void 0;i!==e&&(e&&sn(e),i&&on(i),e=i)}),n=()=>Sn(`visibility`),r=()=>Sn(`focus`);return document.addEventListener(`visibilitychange`,n),window.addEventListener(`focus`,r),()=>{t(),document.removeEventListener(`visibilitychange`,n),window.removeEventListener(`focus`,r),Z--,Z===0&&($&&clearTimeout($),$=setTimeout(()=>{$=null,Z===0&&mn()},fn))}},[])}function wn(){return X}export{Mt as i,Cn as n,Rt as r,wn as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/browser-panel-store-BrY0M-3u.js","assets/index-CmX0PQ41.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/mermaid-DOtnPRYX.js","assets/dist-9FgEnJXd.js","assets/dist-Bdl9_5dx.js","assets/dist-D13Y8-qe.js","assets/icons-sqwAEN28.js","assets/tiptap-ByTP6yRf.js","assets/markdown-DBtwZWLP.js","assets/clsx-CjueKrWZ.js","assets/motion-622LpYRB.js","assets/_core-lD_pNs53.js","assets/initReactI18next-Dr0vnWXF.js","assets/auth-events-BAwnCYTy.js","assets/telemetry-BE4cJhqj.js","assets/circuit-breaker-store-DR3Dx8rQ.js","assets/react-B8mHUpgK.js","assets/index-CD_81O-J.css","assets/BrowserPreview-CYbez9uL.js","assets/items-z89mbR0g.js","assets/button-DqIT3IPY.js","assets/syntax-C54GZp2G.js","assets/useTranslation-DAPPK3Hy.js","assets/input-Bi-kCBn4.js","assets/tabs-D2Tzh6Ge.js","assets/loading-state-CuNSmah_.js","assets/tooltip-icon-button-pAxgBlHP.js","assets/test-store-BIzIn_1p.js","assets/review-pane-store-B31R8Yhv.js","assets/native-git-store-BRK3QIOm.js","assets/automation-store-CN7G1rmj.js","assets/watcher-store-CwGkvZwT.js","assets/job-store-C6L3TZ6m.js","assets/pipeline-store-DwtuAtoc.js","assets/pipeline-approval-store-L_CnXcgU.js","assets/orchestrator-store-CpN46D7d.js","assets/comment-store-BLJA7qy5.js","assets/presence-store-ESqUr2xn.js","assets/pr-detail-store-9Jf4dkle.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,r as t}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as n}from"./icons-sqwAEN28.js";import{At as r}from"./mermaid-DOtnPRYX.js";import{n as i}from"./_core-lD_pNs53.js";import{n as a,t as o}from"./telemetry-BE4cJhqj.js";import{t as s}from"./circuit-breaker-store-DR3Dx8rQ.js";import{j as c}from"./index-CmX0PQ41.js";import{C as l,I as u,Ir as ee,Lt as d,M as te,O as ne,P as f,Rt as re,Sr as ie,Un as p,Ur as m,Ut as ae,Vn as oe,br as se,j as h}from"./items-z89mbR0g.js";var g=Object.create(null);g.open=`0`,g.close=`1`,g.ping=`2`,g.pong=`3`,g.message=`4`,g.upgrade=`5`,g.noop=`6`;var _=Object.create(null);Object.keys(g).forEach(e=>{_[g[e]]=e});var ce={type:`error`,data:`parser error`},le=typeof Blob==`function`||typeof Blob<`u`&&Object.prototype.toString.call(Blob)===`[object BlobConstructor]`,ue=typeof ArrayBuffer==`function`,de=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,fe=({type:e,data:t},n,r)=>le&&t instanceof Blob?n?r(t):pe(t,r):ue&&(t instanceof ArrayBuffer||de(t))?n?r(t):pe(new Blob([t]),r):r(g[e]+(t||``)),pe=(e,t)=>{let n=new FileReader;return n.onload=function(){let e=n.result.split(`,`)[1];t(`b`+(e||``))},n.readAsDataURL(e)};function me(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var he;function ge(e,t){if(le&&e.data instanceof Blob)return e.data.arrayBuffer().then(me).then(t);if(ue&&(e.data instanceof ArrayBuffer||de(e.data)))return t(me(e.data));fe(e,!1,e=>{he||=new TextEncoder,t(he.encode(e))})}var _e=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,v=typeof Uint8Array>`u`?[]:new Uint8Array(256);for(let e=0;e<64;e++)v[_e.charCodeAt(e)]=e;var ve=e=>{let t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);let l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=v[e.charCodeAt(r)],o=v[e.charCodeAt(r+1)],s=v[e.charCodeAt(r+2)],c=v[e.charCodeAt(r+3)],u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l},ye=typeof ArrayBuffer==`function`,be=(e,t)=>{if(typeof e!=`string`)return{type:`message`,data:Se(e,t)};let n=e.charAt(0);return n===`b`?{type:`message`,data:xe(e.substring(1),t)}:_[n]?e.length>1?{type:_[n],data:e.substring(1)}:{type:_[n]}:ce},xe=(e,t)=>ye?Se(ve(e),t):{base64:!0,data:e},Se=(e,t)=>{switch(t){case`blob`:return e instanceof Blob?e:new Blob([e]);default:return e instanceof ArrayBuffer?e:e.buffer}},Ce=``,we=(e,t)=>{let n=e.length,r=Array(n),i=0;e.forEach((e,a)=>{fe(e,!1,e=>{r[a]=e,++i===n&&t(r.join(Ce))})})},Te=(e,t)=>{let n=e.split(Ce),r=[];for(let e=0;e<n.length;e++){let i=be(n[e],t);if(r.push(i),i.type===`error`)break}return r};function Ee(){return new TransformStream({transform(e,t){ge(e,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);let e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!=`string`&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}var De;function y(e){return e.reduce((e,t)=>e+t.length,0)}function b(e,t){if(e[0].length===t)return e.shift();let n=new Uint8Array(t),r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function Oe(e,t){De||=new TextDecoder;let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(y(n)<1)break;let e=b(n,1);a=(e[0]&128)==128,i=e[0]&127,r=i<126?3:i===126?1:2}else if(r===1){if(y(n)<2)break;let e=b(n,2);i=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),r=3}else if(r===2){if(y(n)<8)break;let e=b(n,8),t=new DataView(e.buffer,e.byteOffset,e.length),a=t.getUint32(0);if(a>2**21-1){s.enqueue(ce);break}i=a*2**32+t.getUint32(4),r=3}else{if(y(n)<i)break;let e=b(n,i);s.enqueue(be(a?e:De.decode(e),t)),r=0}if(i===0||i>e){s.enqueue(ce);break}}}})}function x(e){if(e)return ke(e)}function ke(e){for(var t in x.prototype)e[t]=x.prototype[t];return e}x.prototype.on=x.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[`$`+e]=this._callbacks[`$`+e]||[]).push(t),this},x.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},x.prototype.off=x.prototype.removeListener=x.prototype.removeAllListeners=x.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks[`$`+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks[`$`+e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks[`$`+e],this},x.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=Array(arguments.length-1),n=this._callbacks[`$`+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},x.prototype.emitReserved=x.prototype.emit,x.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[`$`+e]||[]},x.prototype.hasListeners=function(e){return!!this.listeners(e).length};var S=typeof Promise==`function`&&typeof Promise.resolve==`function`?e=>Promise.resolve().then(e):(e,t)=>t(e,0),C=typeof self<`u`?self:typeof window<`u`?window:Function(`return this`)(),Ae=`arraybuffer`;function je(e,...t){return t.reduce((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t),{})}var Me=C.setTimeout,Ne=C.clearTimeout;function w(e,t){t.useNativeTimers?(e.setTimeoutFn=Me.bind(C),e.clearTimeoutFn=Ne.bind(C)):(e.setTimeoutFn=C.setTimeout.bind(C),e.clearTimeoutFn=C.clearTimeout.bind(C))}var Pe=1.33;function Fe(e){return typeof e==`string`?Ie(e):Math.ceil((e.byteLength||e.size)*Pe)}function Ie(e){let t=0,n=0;for(let r=0,i=e.length;r<i;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function Le(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Re(e){let t=``;for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+=`&`),t+=encodeURIComponent(n)+`=`+encodeURIComponent(e[n]));return t}function ze(e){let t={},n=e.split(`&`);for(let e=0,r=n.length;e<r;e++){let r=n[e].split(`=`);t[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return t}var Be=class extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type=`TransportError`}},Ve=class extends x{constructor(e){super(),this.writable=!1,w(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,n){return super.emitReserved(`error`,new Be(e,t,n)),this}open(){return this.readyState=`opening`,this.doOpen(),this}close(){return(this.readyState===`opening`||this.readyState===`open`)&&(this.doClose(),this.onClose()),this}send(e){this.readyState===`open`&&this.write(e)}onOpen(){this.readyState=`open`,this.writable=!0,super.emitReserved(`open`)}onData(e){let t=be(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved(`packet`,e)}onClose(e){this.readyState=`closed`,super.emitReserved(`close`,e)}pause(e){}createUri(e,t={}){return e+`://`+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){let e=this.opts.hostname;return e.indexOf(`:`)===-1?e:`[`+e+`]`}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?`:`+this.opts.port:``}_query(e){let t=Re(e);return t.length?`?`+t:``}},He=class extends Ve{constructor(){super(...arguments),this._polling=!1}get name(){return`polling`}doOpen(){this._poll()}pause(e){this.readyState=`pausing`;let t=()=>{this.readyState=`paused`,e()};if(this._polling||!this.writable){let e=0;this._polling&&(e++,this.once(`pollComplete`,function(){--e||t()})),this.writable||(e++,this.once(`drain`,function(){--e||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved(`poll`)}onData(e){Te(e,this.socket.binaryType).forEach(e=>{if(this.readyState===`opening`&&e.type===`open`&&this.onOpen(),e.type===`close`)return this.onClose({description:`transport closed by the server`}),!1;this.onPacket(e)}),this.readyState!==`closed`&&(this._polling=!1,this.emitReserved(`pollComplete`),this.readyState===`open`&&this._poll())}doClose(){let e=()=>{this.write([{type:`close`}])};this.readyState===`open`?e():this.once(`open`,e)}write(e){this.writable=!1,we(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved(`drain`)})})}uri(){let e=this.opts.secure?`https`:`http`,t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=Le()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}},Ue=!1;try{Ue=typeof XMLHttpRequest<`u`&&`withCredentials`in new XMLHttpRequest}catch{}var We=Ue;function Ge(){}var Ke=class extends He{constructor(e){if(super(e),typeof location<`u`){let t=location.protocol===`https:`,n=location.port;n||=t?`443`:`80`,this.xd=typeof location<`u`&&e.hostname!==location.hostname||n!==e.port}}doWrite(e,t){let n=this.request({method:`POST`,data:e});n.on(`success`,t),n.on(`error`,(e,t)=>{this.onError(`xhr post error`,e,t)})}doPoll(){let e=this.request();e.on(`data`,this.onData.bind(this)),e.on(`error`,(e,t)=>{this.onError(`xhr poll error`,e,t)}),this.pollXhr=e}},T=class e extends x{constructor(e,t,n){super(),this.createRequest=e,w(this,n),this._opts=n,this._method=n.method||`GET`,this._uri=t,this._data=n.data===void 0?null:n.data,this._create()}_create(){var t;let n=je(this._opts,`agent`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`autoUnref`);n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let e in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(e)&&r.setRequestHeader(e,this._opts.extraHeaders[e])}}catch{}if(this._method===`POST`)try{r.setRequestHeader(`Content-type`,`text/plain;charset=UTF-8`)}catch{}try{r.setRequestHeader(`Accept`,`*/*`)}catch{}(t=this._opts.cookieJar)==null||t.addCookies(r),`withCredentials`in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var e;r.readyState===3&&((e=this._opts.cookieJar)==null||e.parseCookies(r.getResponseHeader(`set-cookie`))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status==`number`?r.status:0)},0))},r.send(this._data)}catch(e){this.setTimeoutFn(()=>{this._onError(e)},0);return}typeof document<`u`&&(this._index=e.requestsCount++,e.requests[this._index]=this)}_onError(e){this.emitReserved(`error`,e,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(this._xhr===void 0||this._xhr===null)){if(this._xhr.onreadystatechange=Ge,t)try{this._xhr.abort()}catch{}typeof document<`u`&&delete e.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved(`data`,e),this.emitReserved(`success`),this._cleanup())}abort(){this._cleanup()}};if(T.requestsCount=0,T.requests={},typeof document<`u`){if(typeof attachEvent==`function`)attachEvent(`onunload`,qe);else if(typeof addEventListener==`function`){let e=`onpagehide`in C?`pagehide`:`unload`;addEventListener(e,qe,!1)}}function qe(){for(let e in T.requests)T.requests.hasOwnProperty(e)&&T.requests[e].abort()}var Je=(function(){let e=Xe({xdomain:!1});return e&&e.responseType!==null})(),Ye=class extends Ke{constructor(e){super(e);let t=e&&e.forceBase64;this.supportsBinary=Je&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new T(Xe,this.uri(),e)}};function Xe(e){let t=e.xdomain;try{if(typeof XMLHttpRequest<`u`&&(!t||We))return new XMLHttpRequest}catch{}if(!t)try{return new C[[`Active`,`Object`].join(`X`)](`Microsoft.XMLHTTP`)}catch{}}var Ze=typeof navigator<`u`&&typeof navigator.product==`string`&&navigator.product.toLowerCase()===`reactnative`,Qe=class extends Ve{get name(){return`websocket`}doOpen(){let e=this.uri(),t=this.opts.protocols,n=Ze?{}:je(this.opts,`agent`,`perMessageDeflate`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`localAddress`,`protocolVersion`,`origin`,`maxPayload`,`family`,`checkServerIdentity`);this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,n)}catch(e){return this.emitReserved(`error`,e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:`websocket connection closed`,context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError(`websocket error`,e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;fe(n,this.supportsBinary,e=>{try{this.doWrite(n,e)}catch{}r&&S(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){this.ws!==void 0&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?`wss`:`ws`,t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Le()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},$e=C.WebSocket||C.MozWebSocket,et={websocket:class extends Qe{createSocket(e,t,n){return Ze?new $e(e,t,n):t?new $e(e,t):new $e(e)}doWrite(e,t){this.ws.send(t)}},webtransport:class extends Ve{get name(){return`webtransport`}doOpen(){try{this._transport=new WebTransport(this.createUri(`https`),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved(`error`,e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError(`webtransport error`,e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let t=Oe(2**53-1,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),r=Ee();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();let i=()=>{n.read().then(({done:e,value:t})=>{e||(this.onPacket(t),i())}).catch(e=>{})};i();let a={type:`open`};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;this._writer.write(n).then(()=>{r&&S(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)==null||e.close()}},polling:Ye},tt=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,nt=[`source`,`protocol`,`authority`,`userInfo`,`user`,`password`,`host`,`port`,`relative`,`path`,`directory`,`file`,`query`,`anchor`];function rt(e){if(e.length>8e3)throw`URI too long`;let t=e,n=e.indexOf(`[`),r=e.indexOf(`]`);n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,`;`)+e.substring(r,e.length));let i=tt.exec(e||``),a={},o=14;for(;o--;)a[nt[o]]=i[o]||``;return n!=-1&&r!=-1&&(a.source=t,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,`:`),a.authority=a.authority.replace(`[`,``).replace(`]`,``).replace(/;/g,`:`),a.ipv6uri=!0),a.pathNames=it(a,a.path),a.queryKey=at(a,a.query),a}function it(e,t){let n=t.replace(/\/{2,9}/g,`/`).split(`/`);return(t.slice(0,1)==`/`||t.length===0)&&n.splice(0,1),t.slice(-1)==`/`&&n.splice(n.length-1,1),n}function at(e,t){let n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,r){t&&(n[t]=r)}),n}var ot=typeof addEventListener==`function`&&typeof removeEventListener==`function`,E=[];ot&&addEventListener(`offline`,()=>{E.forEach(e=>e())},!1);var D=class e extends x{constructor(e,t){if(super(),this.binaryType=Ae,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e==`object`&&(t=e,e=null),e){let n=rt(e);t.hostname=n.host,t.secure=n.protocol===`https`||n.protocol===`wss`,t.port=n.port,n.query&&(t.query=n.query)}else t.host&&(t.hostname=rt(t.host).host);w(this,t),this.secure=t.secure==null?typeof location<`u`&&location.protocol===`https:`:t.secure,t.hostname&&!t.port&&(t.port=this.secure?`443`:`80`),this.hostname=t.hostname||(typeof location<`u`?location.hostname:`localhost`),this.port=t.port||(typeof location<`u`&&location.port?location.port:this.secure?`443`:`80`),this.transports=[],this._transportsByName={},t.transports.forEach(e=>{let t=e.prototype.name;this.transports.push(t),this._transportsByName[t]=e}),this.opts=Object.assign({path:`/engine.io`,agent:!1,withCredentials:!1,upgrade:!0,timestampParam:`t`,rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,``)+(this.opts.addTrailingSlash?`/`:``),typeof this.opts.query==`string`&&(this.opts.query=ze(this.opts.query)),ot&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener(`beforeunload`,this._beforeunloadEventListener,!1)),this.hostname!==`localhost`&&(this._offlineEventListener=()=>{this._onClose(`transport close`,{description:`network connection lost`})},E.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);let n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](n)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved(`error`,`No transports available`)},0);return}let t=this.opts.rememberUpgrade&&e.priorWebsocketSuccess&&this.transports.indexOf(`websocket`)!==-1?`websocket`:this.transports[0];this.readyState=`opening`;let n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on(`drain`,this._onDrain.bind(this)).on(`packet`,this._onPacket.bind(this)).on(`error`,this._onError.bind(this)).on(`close`,e=>this._onClose(`transport close`,e))}onOpen(){this.readyState=`open`,e.priorWebsocketSuccess=this.transport.name===`websocket`,this.emitReserved(`open`),this.flush()}_onPacket(e){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`)switch(this.emitReserved(`packet`,e),this.emitReserved(`heartbeat`),e.type){case`open`:this.onHandshake(JSON.parse(e.data));break;case`ping`:this._sendPacket(`pong`),this.emitReserved(`ping`),this.emitReserved(`pong`),this._resetPingTimeout();break;case`error`:let t=Error(`server error`);t.code=e.data,this._onError(t);break;case`message`:this.emitReserved(`data`,e.data),this.emitReserved(`message`,e.data);break}}onHandshake(e){this.emitReserved(`handshake`,e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!==`closed`&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose(`ping timeout`)},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved(`drain`):this.flush()}flush(){if(this.readyState!==`closed`&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved(`flush`)}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name===`polling`&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let t=0;t<this.writeBuffer.length;t++){let n=this.writeBuffer[t].data;if(n&&(e+=Fe(n)),t>0&&e>this._maxPayload)return this.writeBuffer.slice(0,t);e+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,S(()=>{this._onClose(`ping timeout`)},this.setTimeoutFn)),e}write(e,t,n){return this._sendPacket(`message`,e,t,n),this}send(e,t,n){return this._sendPacket(`message`,e,t,n),this}_sendPacket(e,t,n,r){if(typeof t==`function`&&(r=t,t=void 0),typeof n==`function`&&(r=n,n=null),this.readyState===`closing`||this.readyState===`closed`)return;n||={},n.compress=!1!==n.compress;let i={type:e,data:t,options:n};this.emitReserved(`packetCreate`,i),this.writeBuffer.push(i),r&&this.once(`flush`,r),this.flush()}close(){let e=()=>{this._onClose(`forced close`),this.transport.close()},t=()=>{this.off(`upgrade`,t),this.off(`upgradeError`,t),e()},n=()=>{this.once(`upgrade`,t),this.once(`upgradeError`,t)};return(this.readyState===`opening`||this.readyState===`open`)&&(this.readyState=`closing`,this.writeBuffer.length?this.once(`drain`,()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}_onError(t){if(e.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState===`opening`)return this.transports.shift(),this._open();this.emitReserved(`error`,t),this._onClose(`transport error`,t)}_onClose(e,t){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners(`close`),this.transport.close(),this.transport.removeAllListeners(),ot&&(this._beforeunloadEventListener&&removeEventListener(`beforeunload`,this._beforeunloadEventListener,!1),this._offlineEventListener)){let e=E.indexOf(this._offlineEventListener);e!==-1&&E.splice(e,1)}this.readyState=`closed`,this.id=null,this.emitReserved(`close`,e,t),this.writeBuffer=[],this._prevBufferLen=0}}};D.protocol=4;var st=class extends D{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState===`open`&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),n=!1;D.priorWebsocketSuccess=!1;let r=()=>{n||(t.send([{type:`ping`,data:`probe`}]),t.once(`packet`,e=>{if(!n)if(e.type===`pong`&&e.data===`probe`){if(this.upgrading=!0,this.emitReserved(`upgrading`,t),!t)return;D.priorWebsocketSuccess=t.name===`websocket`,this.transport.pause(()=>{n||this.readyState!==`closed`&&(l(),this.setTransport(t),t.send([{type:`upgrade`}]),this.emitReserved(`upgrade`,t),t=null,this.upgrading=!1,this.flush())})}else{let e=Error(`probe error`);e.transport=t.name,this.emitReserved(`upgradeError`,e)}}))};function i(){n||(n=!0,l(),t.close(),t=null)}let a=e=>{let n=Error(`probe error: `+e);n.transport=t.name,i(),this.emitReserved(`upgradeError`,n)};function o(){a(`transport closed`)}function s(){a(`socket closed`)}function c(e){t&&e.name!==t.name&&i()}let l=()=>{t.removeListener(`open`,r),t.removeListener(`error`,a),t.removeListener(`close`,o),this.off(`close`,s),this.off(`upgrading`,c)};t.once(`open`,r),t.once(`error`,a),t.once(`close`,o),this.once(`close`,s),this.once(`upgrading`,c),this._upgrades.indexOf(`webtransport`)!==-1&&e!==`webtransport`?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let t=[];for(let n=0;n<e.length;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}},ct=class extends st{constructor(e,t={}){let n=typeof e==`object`?e:t;(!n.transports||n.transports&&typeof n.transports[0]==`string`)&&(n.transports=(n.transports||[`polling`,`websocket`,`webtransport`]).map(e=>et[e]).filter(e=>!!e)),super(e,n)}};ct.protocol;function lt(e,t=``,n){let r=e;n||=typeof location<`u`&&location,e??=n.protocol+`//`+n.host,typeof e==`string`&&(e.charAt(0)===`/`&&(e=e.charAt(1)===`/`?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=n===void 0?`https://`+e:n.protocol+`//`+e),r=rt(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=`80`:/^(http|ws)s$/.test(r.protocol)&&(r.port=`443`)),r.path=r.path||`/`;let i=r.host.indexOf(`:`)===-1?r.host:`[`+r.host+`]`;return r.id=r.protocol+`://`+i+`:`+r.port+t,r.href=r.protocol+`://`+i+(n&&n.port===r.port?``:`:`+r.port),r}var ut=typeof ArrayBuffer==`function`,dt=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,ft=Object.prototype.toString,pt=typeof Blob==`function`||typeof Blob<`u`&&ft.call(Blob)===`[object BlobConstructor]`,mt=typeof File==`function`||typeof File<`u`&&ft.call(File)===`[object FileConstructor]`;function O(e){return ut&&(e instanceof ArrayBuffer||dt(e))||pt&&e instanceof Blob||mt&&e instanceof File}function k(e,t){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(k(e[t]))return!0;return!1}if(O(e))return!0;if(e.toJSON&&typeof e.toJSON==`function`&&arguments.length===1)return k(e.toJSON(),!0);for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&k(e[t]))return!0;return!1}function ht(e){let t=[],n=e.data,r=e;return r.data=gt(n,t),r.attachments=t.length,{packet:r,buffers:t}}function gt(e,t){if(!e)return e;if(O(e)){let n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=gt(e[r],t);return n}else if(typeof e==`object`&&!(e instanceof Date)){let n={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=gt(e[r],t));return n}return e}function _t(e,t){return e.data=vt(e.data,t),delete e.attachments,e}function vt(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num==`number`&&e.num>=0&&e.num<t.length)return t[e.num];throw Error(`illegal attachments`)}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=vt(e[n],t);else if(typeof e==`object`)for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=vt(e[n],t));return e}var yt=t({Decoder:()=>St,Encoder:()=>xt,PacketType:()=>A,isPacketValid:()=>Ot,protocol:()=>5}),bt=[`connect`,`connect_error`,`disconnect`,`disconnecting`,`newListener`,`removeListener`],A;(function(e){e[e.CONNECT=0]=`CONNECT`,e[e.DISCONNECT=1]=`DISCONNECT`,e[e.EVENT=2]=`EVENT`,e[e.ACK=3]=`ACK`,e[e.CONNECT_ERROR=4]=`CONNECT_ERROR`,e[e.BINARY_EVENT=5]=`BINARY_EVENT`,e[e.BINARY_ACK=6]=`BINARY_ACK`})(A||={});var xt=class{constructor(e){this.replacer=e}encode(e){return(e.type===A.EVENT||e.type===A.ACK)&&k(e)?this.encodeAsBinary({type:e.type===A.EVENT?A.BINARY_EVENT:A.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=``+e.type;return(e.type===A.BINARY_EVENT||e.type===A.BINARY_ACK)&&(t+=e.attachments+`-`),e.nsp&&e.nsp!==`/`&&(t+=e.nsp+`,`),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){let t=ht(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}},St=class e extends x{constructor(e){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof e==`function`?{reviver:e}:e)}add(e){let t;if(typeof e==`string`){if(this.reconstructor)throw Error(`got plaintext data when reconstructing a packet`);t=this.decodeString(e);let n=t.type===A.BINARY_EVENT;n||t.type===A.BINARY_ACK?(t.type=n?A.EVENT:A.ACK,this.reconstructor=new Ct(t),t.attachments===0&&super.emitReserved(`decoded`,t)):super.emitReserved(`decoded`,t)}else if(O(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved(`decoded`,t));else throw Error(`got binary data when not reconstructing a packet`);else throw Error(`Unknown type: `+e)}decodeString(t){let n=0,r={type:Number(t.charAt(0))};if(A[r.type]===void 0)throw Error(`unknown packet type `+r.type);if(r.type===A.BINARY_EVENT||r.type===A.BINARY_ACK){let e=n+1;for(;t.charAt(++n)!==`-`&&n!=t.length;);let i=t.substring(e,n);if(i!=Number(i)||t.charAt(n)!==`-`)throw Error(`Illegal attachments`);let a=Number(i);if(!Tt(a)||a<0)throw Error(`Illegal attachments`);if(a>this.opts.maxAttachments)throw Error(`too many attachments`);r.attachments=a}if(t.charAt(n+1)===`/`){let e=n+1;for(;++n&&!(t.charAt(n)===`,`||n===t.length););r.nsp=t.substring(e,n)}else r.nsp=`/`;let i=t.charAt(n+1);if(i!==``&&Number(i)==i){let e=n+1;for(;++n;){let e=t.charAt(n);if(e==null||Number(e)!=e){--n;break}if(n===t.length)break}r.id=Number(t.substring(e,n+1))}if(t.charAt(++n)){let i=this.tryParse(t.substr(n));if(e.isPayloadValid(r.type,i))r.data=i;else throw Error(`invalid payload`)}return r}tryParse(e){try{return JSON.parse(e,this.opts.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case A.CONNECT:return j(t);case A.DISCONNECT:return t===void 0;case A.CONNECT_ERROR:return typeof t==`string`||j(t);case A.EVENT:case A.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&bt.indexOf(t[0])===-1);case A.ACK:case A.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&=(this.reconstructor.finishedReconstruction(),null)}},Ct=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let e=_t(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function wt(e){return typeof e==`string`}var Tt=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e};function Et(e){return e===void 0||Tt(e)}function j(e){return Object.prototype.toString.call(e)===`[object Object]`}function Dt(e,t){switch(e){case A.CONNECT:return t===void 0||j(t);case A.DISCONNECT:return t===void 0;case A.EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&bt.indexOf(t[0])===-1);case A.ACK:return Array.isArray(t);case A.CONNECT_ERROR:return typeof t==`string`||j(t);default:return!1}}function Ot(e){return wt(e.nsp)&&Et(e.id)&&Dt(e.type,e.data)}function M(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var kt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),At=class extends x{constructor(e,t,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[M(e,`open`,this.onopen.bind(this)),M(e,`packet`,this.onpacket.bind(this)),M(e,`error`,this.onerror.bind(this)),M(e,`close`,this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState===`open`&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift(`message`),this.emit.apply(this,e),this}emit(e,...t){if(kt.hasOwnProperty(e))throw Error(`"`+e.toString()+`" is a reserved event name`);if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;let n={type:A.EVENT,data:t};if(n.options={},n.options.compress=this.flags.compress!==!1,typeof t[t.length-1]==`function`){let e=this.ids++,r=t.pop();this._registerAckCallback(e,r),n.id=e}let r=this.io.engine?.transport?.writable,i=this.connected&&!this.io.engine?._hasPingExpired();return this.flags.volatile&&!r||(i?(this.notifyOutgoingListeners(n),this.packet(n)):this.sendBuffer.push(n)),this.flags={},this}_registerAckCallback(e,t){let n=this.flags.timeout??this._opts.ackTimeout;if(n===void 0){this.acks[e]=t;return}let r=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let t=0;t<this.sendBuffer.length;t++)this.sendBuffer[t].id===e&&this.sendBuffer.splice(t,1);t.call(this,Error(`operation has timed out`))},n),i=(...e)=>{this.io.clearTimeoutFn(r),t.apply(this,e)};i.withError=!0,this.acks[e]=i}emitWithAck(e,...t){return new Promise((n,r)=>{let i=(e,t)=>e?r(e):n(t);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]==`function`&&(t=e.pop());let n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...r)=>(this._queue[0],e===null?(this._queue.shift(),t&&t(null,...r)):n.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;let t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth==`function`?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:A.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved(`connect_error`,e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved(`disconnect`,e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(t=>String(t.id)===e)){let t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,Error(`socket has been disconnected`))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case A.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved(`connect_error`,Error(`It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)`));break;case A.EVENT:case A.BINARY_EVENT:this.onevent(e);break;case A.ACK:case A.BINARY_ACK:this.onack(e);break;case A.DISCONNECT:this.ondisconnect();break;case A.CONNECT_ERROR:this.destroy();let t=Error(e.data.message);t.data=e.data.data,this.emitReserved(`connect_error`,t);break}}onevent(e){let t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let t=this._anyListeners.slice();for(let n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]==`string`&&(this._lastOffset=e[e.length-1])}ack(e){let t=this,n=!1;return function(...r){n||(n=!0,t.packet({type:A.ACK,id:e,data:r}))}}onack(e){let t=this.acks[e.id];typeof t==`function`&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved(`connect`)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose(`io server disconnect`)}destroy(){this.subs&&=(this.subs.forEach(e=>e()),void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:A.DISCONNECT}),this.destroy(),this.connected&&this.onclose(`io client disconnect`),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let n of t)n.apply(this,e.data)}}};function N(e){e||={},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}N.prototype.duration=function(){var e=this.ms*this.factor**+ this.attempts++;if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0},N.prototype.reset=function(){this.attempts=0},N.prototype.setMin=function(e){this.ms=e},N.prototype.setMax=function(e){this.max=e},N.prototype.setJitter=function(e){this.jitter=e};var jt=class extends x{constructor(e,t){super(),this.nsps={},this.subs=[],e&&typeof e==`object`&&(t=e,e=void 0),t||={},t.path=t.path||`/socket.io`,this.opts=t,w(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor??.5),this.backoff=new N({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState=`closed`,this.uri=e;let n=t.parser||yt;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)==null||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)==null||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)==null||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf(`open`))return this;this.engine=new ct(this.uri,this.opts);let t=this.engine,n=this;this._readyState=`opening`,this.skipReconnect=!1;let r=M(t,`open`,function(){n.onopen(),e&&e()}),i=t=>{this.cleanup(),this._readyState=`closed`,this.emitReserved(`error`,t),e?e(t):this.maybeReconnectOnOpen()},a=M(t,`error`,i);if(!1!==this._timeout){let e=this._timeout,n=this.setTimeoutFn(()=>{r(),i(Error(`timeout`)),t.close()},e);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}return this.subs.push(r),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState=`open`,this.emitReserved(`open`);let e=this.engine;this.subs.push(M(e,`ping`,this.onping.bind(this)),M(e,`data`,this.ondata.bind(this)),M(e,`error`,this.onerror.bind(this)),M(e,`close`,this.onclose.bind(this)),M(this.decoder,`decoded`,this.ondecoded.bind(this)))}onping(){this.emitReserved(`ping`)}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose(`parse error`,e)}}ondecoded(e){S(()=>{this.emitReserved(`packet`,e)},this.setTimeoutFn)}onerror(e){this.emitReserved(`error`,e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new At(this,e,t),this.nsps[e]=n),n}_destroy(e){let t=Object.keys(this.nsps);for(let e of t)if(this.nsps[e].active)return;this._close()}_packet(e){let t=this.encoder.encode(e);for(let n=0;n<t.length;n++)this.engine.write(t[n],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose(`forced close`)}disconnect(){return this._close()}onclose(e,t){var n;this.cleanup(),(n=this.engine)==null||n.close(),this.backoff.reset(),this._readyState=`closed`,this.emitReserved(`close`,e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved(`reconnect_failed`),this._reconnecting=!1;else{let t=this.backoff.duration();this._reconnecting=!0;let n=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved(`reconnect_attempt`,e.backoff.attempts),!e.skipReconnect&&e.open(t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved(`reconnect_error`,t)):e.onreconnect()}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved(`reconnect`,e)}},P={};function F(e,t){typeof e==`object`&&(t=e,e=void 0),t||={};let n=lt(e,t.path||`/socket.io`),r=n.source,i=n.id,a=n.path,o=P[i]&&a in P[i].nsps,s=t.forceNew||t[`force new connection`]||!1===t.multiplex||o,c;return s?c=new jt(r,t):(P[i]||(P[i]=new jt(r,t)),c=P[i]),n.query&&!t.query&&(t.query=n.queryKey),c.socket(n.path,t)}Object.assign(F,{Manager:jt,Socket:At,io:F,connect:F});var Mt=t({browserSessionClient:()=>Rt,resolveBrowserSessionRequest:()=>Lt}),Nt=c(`browser-session`),I=new Map,Pt=5e3,Ft=0;function It(){return Ft=(Ft+1)%(2**53-1),`bs-${Date.now().toString(36)}-${Ft.toString(36)}`}function Lt(e,t,n,r){let i=I.get(e);i&&(I.delete(e),clearTimeout(i.timer),t?i.resolve(n):i.reject(Error(r??`unknown error`)))}function L(e,t,n){return new Promise((r,i)=>{let a=wn();if(!a||!a.connected){i(Error(`ws-not-connected`));return}let o=It(),s=setTimeout(()=>{I.delete(o),i(Error(`timeout`))},Pt);I.set(o,{resolve:r,reject:i,timer:s}),a.emit(e,{sessionId:t,requestId:o,...n})})}function R(e,t,n={}){let r=wn();!r||!r.connected||r.emit(e,{sessionId:t,...n})}var Rt={open(e,t){Nt.info(`open`,{sessionId:e,url:t}),R(`browser-session:open`,e,{url:t})},navigate(e,t){R(`browser-session:navigate`,e,{url:t})},input(e,t){R(`browser-session:input`,e,t)},inspectAt(e,t,n){return L(`browser-session:inspect-at`,e,{x:t,y:n})},inspectRect(e,t,n,r,i){return L(`browser-session:inspect-rect`,e,{x:t,y:n,w:r,h:i})},screenshot(e){return L(`browser-session:screenshot`,e,{})},execute(e,t){return L(`browser-session:execute`,e,{expression:t})},nav(e,t){return L(`browser-session:nav`,e,{action:t})},heartbeat(e){R(`browser-session:heartbeat`,e)},close(e,t=`user`){Nt.info(`close`,{sessionId:e,reason:t}),R(`browser-session:close`,e,{reason:t})}},z=c(`browser-session`);function zt(e,t){switch(e){case`browser-session:frame`:{let e=t;return l(e.sessionId,e.data),!0}case`browser-session:ready`:{let e=t;return r(async()=>{let{useBrowserPanelStore:e}=await import(`./browser-panel-store-BrY0M-3u.js`);return{useBrowserPanelStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useBrowserPanelStore:t})=>{let n=t.getState();n.sessionId===e.sessionId&&n.setSessionStatus(`ready`,null)}),!0}case`browser-session:result`:{let e=t;return Lt(e.requestId,e.ok,e.value,e.error),!0}case`browser-session:console`:return z.debug(`console`,t),!0;case`browser-session:error`:{let e=t;return z.warn(`page error`,e),!0}case`browser-session:closed`:{let e=t;return z.info(`session closed`,e),r(async()=>{let{useBrowserPanelStore:e}=await import(`./browser-panel-store-BrY0M-3u.js`);return{useBrowserPanelStore:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useBrowserPanelStore:t})=>{let n=t.getState();if(n.sessionId===e.sessionId){let t=e.reason===`too_many_sessions`?`too-many-sessions`:`disconnected`;n.setSessionStatus(t,e.message??null)}}),!0}default:return!1}}function Bt(e,t){switch(e){case`test:frame`:return r(async()=>{let{renderFrame:e}=await import(`./BrowserPreview-CYbez9uL.js`);return{renderFrame:e}},__vite__mapDeps([19,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28])).then(({renderFrame:e})=>{e(t.data)}),r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().addFrameToHistory(t.data,t.timestamp)}),!0;case`test:output`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestOutput(t)}),!0;case`test:status`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestStatus(t)}),!0;case`test:console`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestConsole(t)}),!0;case`test:network`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestNetwork(t)}),!0;case`test:error`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestError(t)}),!0;case`test:action`:return r(async()=>{let{useTestStore:e}=await import(`./test-store-BIzIn_1p.js`);return{useTestStore:e}},__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useTestStore:e})=>{e.getState().handleTestAction(t)}),!0;default:return!1}}var B=e(n(),1),V=c(`ws`);function Vt(e,t){d.setState(n=>ae(n,e,e=>({...e,commentCount:Math.max(0,(e.commentCount??0)+t)})))}var H=new Map,U=new Map,Ht=!1,W=new Map,G=[],K=new Map,q=null;function Ut(e,t){return`${e}:${t?.messageId??``}`}var J=new Map,Wt=new Set([`Write`,`Edit`,`Bash`]);function Gt(){q=null;let e=Array.from(W.values()),t=G.slice(),n=Array.from(K.values());W.clear(),G=[],K.clear();let r=e.length+t.length+n.length;if(r===0)return;let i=a(`ws.flushBatch`,{attributes:{"batch.messages":e.length,"batch.tool_outputs":t.length,"batch.statuses":n.length}}),s=performance.now();(0,B.startTransition)(()=>{let r=d.getState();for(let e of n)r.handleWSStatus(e.threadId,e.data);for(let t of e)r.handleWSMessage(t.threadId,t.data);for(let e of t)r.handleWSToolOutput(e.threadId,e.data)});let c=performance.now()-s;i.end(),o(`ws.flushBatch.size`,r,{type:`gauge`}),c>16&&o(`ws.flushBatch.slow`,1,{type:`sum`,attributes:{reason:`over-1-frame`}})}function Kt(){q===null&&(q=requestAnimationFrame(Gt))}function qt(e,t,n){switch(e){case`agent:message`:{let e=Ut(t,n),r=W.has(e);V.info(`agent:message received`,{threadId:t,messageId:n?.messageId??``,role:n?.role??``,contentChars:String(n?.content?.length??0),collapsedPrevious:String(r)}),W.set(e,{threadId:t,data:n}),Kt();break}case`agent:tool_output`:G.push({threadId:t,data:n}),Kt();break;case`agent:init`:(0,B.startTransition)(()=>{d.getState().handleWSInit(t,n)});break;case`agent:status`:{let e=`${n.status}|${n.waitingReason??``}|${n.permissionRequest?.toolName??``}|${n.stage??``}|${n.permissionMode??``}`;if(J.get(t)===e)break;J.set(t,e),V.info(`agent:status`,{threadId:t,status:n.status,waitingReason:n.waitingReason??``,permissionRequest:n.permissionRequest?.toolName??``}),n.status===`waiting`||n.permissionRequest?(0,B.startTransition)(()=>{d.getState().handleWSStatus(t,n)}):(K.set(t,{threadId:t,data:n}),Kt());break}case`agent:result`:{J.delete(t);let e=String(n.status??``);V.info(`agent:result`,{threadId:t,status:e,cost:String(n.cost??``),errorReason:n.errorReason??``,isWaiting:String(n.status===`waiting`)}),o(`ws.result_received`,1,{attributes:{status:e}});let i=a(`ws.dispatch_result`,{attributes:{status:e}});q!==null&&(cancelAnimationFrame(q),q=null);let s=Array.from(W.values()),c=G.slice(),l=Array.from(K.values());if(W.clear(),G=[],K.clear(),l.length>0||s.length>0||c.length>0){let e=d.getState();for(let t of l)e.handleWSStatus(t.threadId,t.data);for(let t of s)e.handleWSMessage(t.threadId,t.data);for(let t of c)e.handleWSToolOutput(t.threadId,t.data)}(0,B.startTransition)(()=>{d.getState().handleWSResult(t,n),i.end(`OK`)}),r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)}),Xt(t,n);break}case`agent:tool_call`:{(n.name===`AskUserQuestion`||n.name===`ExitPlanMode`)&&V.info(`interactive tool_call received`,{threadId:t,toolName:n.name,toolCallId:n.toolCallId??``});let e=W.size>0;e&&q!==null&&(cancelAnimationFrame(q),q=null),(0,B.startTransition)(()=>{if(e){let e=Array.from(W.values());W.clear();let t=d.getState();for(let n of e)t.handleWSMessage(n.threadId,n.data)}d.getState().handleWSToolCall(t,n)}),Wt.has(n.name)&&r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)});break}case`agent:error`:V.error(`agent:error`,{threadId:t,error:n.error??`unknown`}),(0,B.startTransition)(()=>{d.getState().handleWSError(t,n)});break;case`agent:compact_boundary`:(0,B.startTransition)(()=>{d.getState().handleWSCompactBoundary(t,n)});break;case`agent:context_usage`:(0,B.startTransition)(()=>{d.getState().handleWSContextUsage(t,n)});break;case`command:output`:f.getState().appendCommandOutput(n.commandId,n.data);break;case`command:status`:(n.status===`exited`||n.status===`stopped`)&&(f.getState().markCommandExited(n.commandId),ne(n.commandId));break;case`command:metrics`:f.getState().updateCommandMetrics(n);break;case`native-git:build_output`:case`native-git:build_status`:r(async()=>{let{useNativeGitStore:e}=await import(`./native-git-store-BRK3QIOm.js`).then(e=>e.t);return{useNativeGitStore:e}},__vite__mapDeps([30,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useNativeGitStore:t})=>{let r=t.getState();e===`native-git:build_output`?r.appendBuildOutput(n.text):r.setBuildStatus(n.status,n.exitCode)});break;case`automation:run_started`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CN7G1rmj.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().handleRunStarted({...n,threadId:t})});break;case`automation:run_completed`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CN7G1rmj.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().handleRunCompleted(n)});break;case`automation:run_updated`:r(async()=>{let{useAutomationStore:e}=await import(`./automation-store-CN7G1rmj.js`).then(e=>e.t);return{useAutomationStore:e}},__vite__mapDeps([31,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAutomationStore:e})=>{e.getState().loadInbox()});break;case`watcher:created`:case`watcher:fired`:case`watcher:rescheduled`:case`watcher:completed`:case`watcher:cancelled`:r(async()=>{let{useWatcherStore:e}=await import(`./watcher-store-CwGkvZwT.js`).then(e=>e.n);return{useWatcherStore:e}},__vite__mapDeps([32,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useWatcherStore:e})=>{n?.watcher&&e.getState().upsert(n.watcher)});break;case`job:created`:case`job:exited`:case`job:killed`:case`job:cancelled`:r(async()=>{let{useJobStore:e}=await import(`./job-store-C6L3TZ6m.js`).then(e=>e.t);return{useJobStore:e}},__vite__mapDeps([33,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24])).then(({useJobStore:e})=>{n?.job&&e.getState().upsert(n.job)});break;case`pipeline:run_started`:case`pipeline:stage_update`:case`pipeline:run_completed`:r(async()=>{let{usePipelineStore:e}=await import(`./pipeline-store-DwtuAtoc.js`).then(e=>e.t);return{usePipelineStore:e}},__vite__mapDeps([34,2,17,7])).then(({usePipelineStore:t})=>{let r=t.getState();e===`pipeline:run_started`?r.handlePipelineStarted(n):e===`pipeline:stage_update`?r.handlePipelineStageUpdate(n):e===`pipeline:run_completed`&&r.handlePipelineCompleted(n)});break;case`pipeline:approval_requested`:case`pipeline:approval_resolved`:r(async()=>{let{usePipelineApprovalStore:e}=await import(`./pipeline-approval-store-L_CnXcgU.js`).then(e=>e.t);return{usePipelineApprovalStore:e}},__vite__mapDeps([35,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({usePipelineApprovalStore:t})=>{let r=t.getState();e===`pipeline:approval_requested`?r.handleApprovalRequested(n):r.handleApprovalResolved(n)});break;case`thread:claimed`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CpN46D7d.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleClaimed(t,n)});break;case`thread:dispatched`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CpN46D7d.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleDispatched(t,n)});break;case`thread:retry-queued`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CpN46D7d.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleRetryQueued(t,n)});break;case`thread:released`:r(async()=>{let{useOrchestratorStore:e}=await import(`./orchestrator-store-CpN46D7d.js`);return{useOrchestratorStore:e}},__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useOrchestratorStore:e})=>{e.getState().handleReleased(t)});break;case`thread:created`:n.projectId&&d.getState().loadThreadsForProject(n.projectId);break;case`thread:comment`:n.comment&&(r(async()=>{let{useCommentStore:e}=await import(`./comment-store-BLJA7qy5.js`);return{useCommentStore:e}},__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useCommentStore:e})=>{e.getState().applyAdded(t,n.comment)}),Vt(t,1));break;case`thread:comment_deleted`:if(n.commentId)r(async()=>{let{useCommentStore:e}=await import(`./comment-store-BLJA7qy5.js`);return{useCommentStore:e}},__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useCommentStore:e})=>{e.getState().applyDeleted(t,n.commentId)}),Vt(t,-1);else{let e=d.getState();(ie()??e.selectedThreadId)===t&&e.refreshActiveThread()}break;case`thread:stage-changed`:d.getState().handleWSStageChanged(t,{fromStage:n.fromStage??null,toStage:n.toStage,projectId:n.projectId});break;case`thread:updated`:{let e=d.getState();n.status&&e.handleWSStatus(t,{status:n.status}),n.archived&&e.refreshAllLoadedThreads(),(n.branch||n.worktreePath||n.containerUrl||n.mergedAt||n.mode)&&(e.refreshAllLoadedThreads(),(ie()??e.selectedThreadId)===t&&e.refreshActiveThread()),n.permissionMode&&e.activeThread?.id===t&&d.setState({activeThread:{...e.activeThread,permissionMode:n.permissionMode}});break}case`presence:sync`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().setRoster(t,n.viewers??[])});break;case`presence:join`:n.viewer&&r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().upsertViewer(t,n.viewer)});break;case`presence:leave`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().removeViewer(t,n.clientId)});break;case`thread:share-revoked`:r(async()=>{let{usePresenceStore:e}=await import(`./presence-store-ESqUr2xn.js`);return{usePresenceStore:e}},__vite__mapDeps([38,17,2,7])).then(({usePresenceStore:e})=>{e.getState().clearThread(t)}),d.getState().handleShareRevoked(t);break;case`thread:share-granted`:d.getState().loadSharedThreads();break;case`git:status`:{p.getState().updateFromWS(n.statuses);let e=n.statuses.map(e=>e.branchKey);e.length>0&&oe(e),r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:e})=>{e.getState().notifyDirty(t)});break}case`git:refs-updated`:{let e=p.getState();oe([n.projectId]);let t=ie()??d.getState().selectedThreadId;t&&e.fetchForThread(t,!0),e.fetchProjectStatus(n.projectId,!0),e.fetchForProject(n.projectId);break}case`git:workflow_progress`:Zt(t,n);break;case`thread:event`:Qt(t,n);break;case`pty:data`:f.getState().emitPtyData(n.ptyId,n.data);break;case`pty:exit`:f.getState().removeTab(n.ptyId);break;case`pty:error`:f.getState().setTabError(n.ptyId,n.error??`Failed to create terminal`),m.error(n.error??`Failed to create terminal`);break;case`runner:status`:$t(n);break;case`pty:env_activated`:{let e=n.activations.map(e=>`${e.kind}: ${e.detail}`);m.success(`Activated environment`,{description:e.join(`
3
+ `)});break}case`thread:queue_update`:d.getState().handleWSQueueUpdate(t,n);break;case`test:frame`:case`test:output`:case`test:status`:case`test:console`:case`test:network`:case`test:error`:case`test:action`:Bt(e,n);break;case`browser-session:frame`:case`browser-session:ready`:case`browser-session:result`:case`browser-session:console`:case`browser-session:error`:case`browser-session:closed`:zt(e,n);break;case`clone:progress`:window.dispatchEvent(new CustomEvent(`clone:progress`,{detail:n}));break;case`worktree:setup`:window.dispatchEvent(new CustomEvent(`worktree:setup`,{detail:{threadId:t,...n}})),d.getState().handleWSWorktreeSetup(t,n);break;case`worktree:setup_complete`:d.getState().handleWSWorktreeSetupComplete(t,n);break}}function Jt(e){let t=d.getState();if(t.activeThread?.id===e)return{title:t.activeThread.title,branch:t.activeThread.branch,projectId:t.activeThread.projectId,isScratch:t.activeThread.isScratch};let n=t.threadsById[e];return n?{title:n.title,branch:n.branch,projectId:n.projectId,isScratch:!!n.isScratch}:{}}function Yt(e){let t=[`funny`];return e.branch&&t.push(e.branch),e.title&&t.push(e.title),t.join(` — `)}function Xt(e,t){let n=t.status,r=Jt(e),i=Yt(r),a=()=>{let t=se();t&&(r.isScratch?t(re(ee({id:e,projectId:``,isScratch:!0}))):r.projectId&&t(re(ee({id:e,projectId:r.projectId}))))};n===`completed`?u(i,`Agent finished`,{tag:`agent-result-${e}`,skipIfViewingThreadId:e,onClick:a}):(n===`failed`||n===`error`)&&u(i,`Agent failed${t.errorReason?` — ${t.errorReason}`:``}`,{tag:`agent-result-${e}`,skipIfViewingThreadId:e,onClick:a})}function Zt(e,t){r(async()=>{let{useCommitProgressStore:e}=await import(`./items-z89mbR0g.js`).then(e=>e.Br);return{useCommitProgressStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])).then(({useCommitProgressStore:n})=>{let r=n.getState(),{status:i,title:a,action:o,steps:s,workflowId:c}=t;if(i===`started`)r.startCommit(e,a,s,o,c);else if(i===`step_update`){r.replaceSteps(e,s);let t=s?.find(e=>e.id===`hooks`&&e.status===`failed`);t&&m.error(`Pre-commit hook failed`,{description:t.error?t.error.slice(0,120):`A pre-commit hook did not pass`})}else i===`completed`?(r.replaceSteps(e,s),o===`push`&&m.success(`Pushed successfully`),setTimeout(()=>r.finishCommit(e),1500)):i===`failed`&&(r.replaceSteps(e,s),r.setFailedWorkflow({title:a||`Git operation failed`,steps:s??[],action:o??``}),r.finishCommit(e))}),(t.status===`completed`||t.status===`failed`)&&r(async()=>{let{useReviewPaneStore:e}=await import(`./review-pane-store-B31R8Yhv.js`).then(e=>e.t);return{useReviewPaneStore:e}},__vite__mapDeps([29,2,17,7])).then(({useReviewPaneStore:t})=>{t.getState().notifyDirty(e)}),t.status===`completed`&&(t.action===`push`||t.action===`create-pr`||t.action===`commit-pr`||t.action===`commit-merge`)&&r(async()=>{let{usePRDetailStore:e}=await import(`./pr-detail-store-9Jf4dkle.js`).then(e=>e.t);return{usePRDetailStore:e}},__vite__mapDeps([39,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({usePRDetailStore:e})=>{let{activeThread:t}=d.getState();if(t){let n=p.getState(),r=n.threadToBranchKey[t.id]??`${t.projectId}:${t.branch??``}`,i=n.statusByBranch[r]?.prNumber;i&&e.getState().invalidate(t.projectId,i)}})}function Qt(e,t){(0,B.startTransition)(()=>{let n=d.getState().activeThread;if(n&&n.id===e){let e=n.threadEvents??[];if(t.event?.id&&e.some(e=>e.id===t.event.id))return;d.setState({activeThread:{...n,threadEvents:[...e,t.event]}})}})}function $t(e){let t=e?.status;t!==`online`&&t!==`offline`||r(async()=>{let{useRunnerStatusStore:e}=await import(`./items-z89mbR0g.js`).then(e=>e.A);return{useRunnerStatusStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])).then(({useRunnerStatusStore:e})=>{e.getState().setStatus(t)})}function en(e){let{type:t,threadId:n,data:r}=JSON.parse(e.data);qt(t,n,r)}var tn=`agent:message.agent:tool_output.agent:init.agent:status.agent:result.agent:tool_call.agent:error.agent:compact_boundary.agent:context_usage.command:output.command:status.command:metrics.automation:run_started.automation:run_completed.automation:run_updated.watcher:created.watcher:fired.watcher:rescheduled.watcher:completed.watcher:cancelled.job:created.job:exited.job:killed.job:cancelled.pipeline:run_started.pipeline:stage_update.pipeline:run_completed.pipeline:approval_requested.pipeline:approval_resolved.thread:claimed.thread:dispatched.thread:retry-queued.thread:released.thread:created.thread:comment.thread:comment_deleted.thread:stage-changed.thread:updated.presence:sync.presence:join.presence:leave.thread:share-revoked.thread:share-granted.git:status.git:refs-updated.git:workflow_progress.thread:event.pty:data.pty:exit.pty:error.pty:env_activated.thread:queue_update.test:frame.test:output.test:status.test:console.test:network.test:error.test:action.clone:progress.worktree:setup.worktree:setup_complete.native-git:build_output.native-git:build_status.runner:status.browser-session:ready.browser-session:frame.browser-session:result.browser-session:console.browser-session:error.browser-session:closed`.split(`.`),nn=new Map;function rn(e){let t=[];for(let n of tn){let r=e=>{qt(n,e.threadId??``,e.data??e)};e.on(n,r),t.push({event:n,handler:r})}nn.set(e,t)}function an(e){let t=nn.get(e);if(t){for(let{event:n,handler:r}of t)e.off(n,r);nn.delete(e)}}function on(e){if(Ht||H.has(e))return;let t=i(e);if(!t){V.warn(`refusing remote WS — invalid containerUrl`,{containerUrl:e});return}let n=`${t.replace(/^http/,`ws`)}/ws`;V.info(`connecting remote WS`,{containerUrl:t});let r=new WebSocket(n);H.set(e,r),r.onopen=()=>{V.info(`remote WS connected`,{containerUrl:e})},r.onmessage=en,r.onclose=()=>{if(H.delete(e),Ht)return;let t=setTimeout(()=>{U.delete(e);let t=d.getState().activeThread;t?.runtime===`remote`&&t?.containerUrl===e&&on(e)},3e3);U.set(e,t)},r.onerror=()=>{r.close()}}function sn(e){let t=U.get(e);t&&(clearTimeout(t),U.delete(e));let n=H.get(e);n&&(n.onmessage=null,n.onclose=null,n.onerror=null,n.close(),H.delete(e))}function cn(){for(let e of[...H.keys()])sn(e)}function ln(){q!==null&&(cancelAnimationFrame(q),q=null),W.clear(),G=[],K.clear(),J.clear()}function un(e){Ht=e}var Y=c(`ws`),X=null,Z=0,dn=!1,Q,$=null,fn=100;function pn(){un(!1);let e=F(window.__TAURI_INTERNALS__?`http://localhost:5002`:window.location.origin,{withCredentials:!0,reconnection:!0,reconnectionDelay:2e3,reconnectionDelayMax:1e4,transports:[`websocket`,`polling`]});X=e,e.on(`connect`,()=>{let t=e.io.engine?.transport?.name??`unknown`;Y.info(`Socket.IO connected`,{transport:t}),o(`ws.connected`,1,{attributes:{transport:t}}),e.io.engine?.on(`upgrade`,e=>{let t=typeof e==`string`?e:e?.name??`unknown`;Y.info(`Socket.IO transport upgraded`,{transport:t}),o(`ws.transport_upgrade`,1,{attributes:{transport:t}})}),s.getState().recordSuccess();let n=dn;dn=!0,vn(n,window.location.pathname)&&d.getState().refreshAllLoadedThreads();let i=Object.keys(d.getState().threadIdsByProject);for(let e of i)p.getState().fetchForProject(e);f.getState().resetSessionsChecked(),h.getState().reset(),Q&&e.emit(`thread:open`,{threadId:Q});let a=!1,c=async()=>{if(!a){a=!0;try{let t=await e.timeout(7e3).emitWithAck(`pty:list`,{}),n=Array.isArray(t?.sessions)?t.sessions:[];if(t?.status===`ok`&&n.length>0){let{useProjectStore:e}=await r(async()=>{let{useProjectStore:e}=await import(`./items-z89mbR0g.js`).then(e=>e.Er);return{useProjectStore:e}},__vite__mapDeps([20,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24])),t=e.getState().projects;f.getState().restoreTabs(n,t.map(e=>({id:e.id,path:e.path})))}else f.getState().markSessionsChecked();Y.info(`pty:list RPC completed`,{status:t?.status??`unknown`,count:n.length})}catch(e){Y.warn(`pty:list RPC failed`,{error:e.message}),f.getState().markSessionsChecked()}finally{a=!1}}},l=h.subscribe((e,t)=>{e.status===`online`&&t.status!==`online`&&c()});h.getState().status===`online`&&c(),e.once(`disconnect`,()=>{l()})}),e.on(`disconnect`,e=>{Y.info(`Socket.IO disconnected`,{reason:e}),h.getState().reset(),e===`io server disconnect`&&r(async()=>{let{useAuthStore:e}=await import(`./index-CmX0PQ41.js`).then(e=>e.O);return{useAuthStore:e}},__vite__mapDeps([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])).then(({useAuthStore:e})=>{e.getState().logout()})}),e.on(`connect_error`,e=>{Y.error(`Socket.IO connect error`,{error:e.message})}),rn(e)}function mn(){un(!0),cn(),ln(),X&&=(an(X),X.disconnect(),null)}var hn=2e3,gn=0;function _n(e){let t=te(e);return!(t.settingsPage||t.preferencesPage||t.addProject||t.scratchNew)}function vn(e,t){return e&&_n(t)}var yn=new Set([`setting_up`,`pending`,`running`,`waiting`]);function bn(e){let t=[];for(let[n,r]of Object.entries(e.threadIdsByProject))r.some(t=>yn.has(e.threadsById[t]?.status))&&t.push(n);return{projectIds:t,scratch:e.scratchThreadIds.some(t=>yn.has(e.threadsById[t]?.status)),shared:e.sharedThreadIds.some(t=>yn.has(e.threadsById[t]?.status))}}function xn(e){let t=bn(e);for(let n of t.projectIds)e.loadThreadsForProject(n);t.scratch&&e.loadScratchThreads(),t.shared&&e.loadSharedThreads()}function Sn(e){if(typeof document<`u`&&document.visibilityState===`hidden`||!X?.connected)return;let t=Date.now();if(t-gn<hn)return;if(!_n(window.location.pathname)){Y.debug(`Skipping focus resync — route does not display thread data`,{reason:e});return}gn=t,Y.info(`Tab regained focus — resyncing threads`,{reason:e});let n=d.getState();n.activeThread?(n.refreshActiveThread(),xn(n)):n.refreshAllLoadedThreads()}function Cn(){(0,B.useEffect)(()=>{$&&=(clearTimeout($),null),Z++,Z===1&&!X&&pn();let e,t=d.subscribe(t=>{let n=t.activeThread,r=n?.id;r!==Q&&(Q&&X?.emit(`thread:close`,{threadId:Q}),r&&X?.emit(`thread:open`,{threadId:r}),Q=r);let i=n?.runtime===`remote`?n.containerUrl:void 0;i!==e&&(e&&sn(e),i&&on(i),e=i)}),n=()=>Sn(`visibility`),r=()=>Sn(`focus`);return document.addEventListener(`visibilitychange`,n),window.addEventListener(`focus`,r),()=>{t(),document.removeEventListener(`visibilitychange`,n),window.removeEventListener(`focus`,r),Z--,Z===0&&($&&clearTimeout($),$=setTimeout(()=>{$=null,Z===0&&mn()},fn))}},[])}function wn(){return X}export{Mt as i,Cn as n,Rt as r,wn as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Kn as t,R as n,yr as r,zr as i}from"./icons-sqwAEN28.js";import{At as a}from"./mermaid-DOtnPRYX.js";import{o}from"./markdown-DBtwZWLP.js";import{j as s,lt as c}from"./index-DCJpZz6M.js";import{t as l}from"./button-CZ967bB8.js";import{G as u,Ur as d}from"./items-azeOGVff.js";var f=e(i(),1),p=e(o(),1);function m({showSteps:e=!0,className:i}){let[a,o]=(0,f.useState)(!1),s=`bunx @ironmussa/funny --team ${window.location.origin}`;return(0,p.jsxs)(`div`,{className:c(`space-y-3`,i),"data-testid":`connect-runner-card`,children:[e&&(0,p.jsxs)(`ol`,{className:`text-muted-foreground space-y-1.5 text-xs`,children:[(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`1.`}),(0,p.jsxs)(`span`,{children:[`Install Bun on the machine that will run your agents:`,` `,(0,p.jsx)(`code`,{className:`bg-muted rounded px-1 py-0.5`,children:`curl -fsSL https://bun.sh/install | bash`})]})]}),(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`2.`}),(0,p.jsx)(`span`,{children:`Run the command below on that machine. It will print a short code.`})]}),(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`3.`}),(0,p.jsx)(`span`,{children:`Enter that code under “Link a runner” below to approve it. It appears as “online” within a few seconds.`})]})]}),(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`code`,{className:`bg-muted text-foreground flex-1 truncate rounded px-3 py-2 font-mono text-xs`,"data-testid":`connect-runner-command`,children:s}),(0,p.jsx)(l,{size:`sm`,variant:`outline`,onClick:()=>{navigator.clipboard.writeText(s),o(!0),setTimeout(()=>o(!1),2e3),d.success(`Command copied`)},className:`shrink-0`,"data-testid":`connect-runner-copy`,children:a?(0,p.jsx)(r,{className:`icon-sm`}):(0,p.jsx)(t,{className:`icon-sm`})})]}),null,(0,p.jsxs)(`p`,{className:`text-muted-foreground text-xs`,children:[(0,p.jsx)(n,{className:`icon-xs mr-1 inline`}),`No token or shared secret needed — you approve the runner from this page.`]})]})}var h=s(`visualizers`),g=e=>a(()=>import(e),[]);function _(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.Component==`function`}async function v(e=fetch,t=g){let n;try{let t=await e(`/api/extensions`);if(!t.ok){h.warn(`extension manifest fetch failed`,{status:t.status});return}n=await t.json()}catch(e){h.error(`extension manifest fetch errored`,{error:String(e)});return}!Array.isArray(n)||n.length===0||await Promise.all(n.map(async e=>{try{let n=await t(e.entryUrl),r=n.default??n.plugin;if(!_(r)){h.error(`extension did not export a valid visualizer plugin`,{id:e.id});return}u(r),h.info(`loaded installed visualizer`,{id:r.id,version:r.version})}catch(t){h.error(`failed to load installed visualizer`,{id:e.id,error:String(t)})}}))}export{m as n,v as t};
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Kn as t,R as n,yr as r,zr as i}from"./icons-sqwAEN28.js";import{At as a}from"./mermaid-DOtnPRYX.js";import{o}from"./markdown-DBtwZWLP.js";import{j as s,lt as c}from"./index-CmX0PQ41.js";import{t as l}from"./button-DqIT3IPY.js";import{G as u,Ur as d}from"./items-z89mbR0g.js";var f=e(i(),1),p=e(o(),1);function m({showSteps:e=!0,className:i}){let[a,o]=(0,f.useState)(!1),s=`bunx @ironmussa/funny --team ${window.location.origin}`;return(0,p.jsxs)(`div`,{className:c(`space-y-3`,i),"data-testid":`connect-runner-card`,children:[e&&(0,p.jsxs)(`ol`,{className:`text-muted-foreground space-y-1.5 text-xs`,children:[(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`1.`}),(0,p.jsxs)(`span`,{children:[`Install Bun on the machine that will run your agents:`,` `,(0,p.jsx)(`code`,{className:`bg-muted rounded px-1 py-0.5`,children:`curl -fsSL https://bun.sh/install | bash`})]})]}),(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`2.`}),(0,p.jsx)(`span`,{children:`Run the command below on that machine. It will print a short code.`})]}),(0,p.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,p.jsx)(`span`,{className:`text-primary mt-0.5 font-mono`,children:`3.`}),(0,p.jsx)(`span`,{children:`Enter that code under “Link a runner” below to approve it. It appears as “online” within a few seconds.`})]})]}),(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`code`,{className:`bg-muted text-foreground flex-1 truncate rounded px-3 py-2 font-mono text-xs`,"data-testid":`connect-runner-command`,children:s}),(0,p.jsx)(l,{size:`sm`,variant:`outline`,onClick:()=>{navigator.clipboard.writeText(s),o(!0),setTimeout(()=>o(!1),2e3),d.success(`Command copied`)},className:`shrink-0`,"data-testid":`connect-runner-copy`,children:a?(0,p.jsx)(r,{className:`icon-sm`}):(0,p.jsx)(t,{className:`icon-sm`})})]}),null,(0,p.jsxs)(`p`,{className:`text-muted-foreground text-xs`,children:[(0,p.jsx)(n,{className:`icon-xs mr-1 inline`}),`No token or shared secret needed — you approve the runner from this page.`]})]})}var h=s(`visualizers`),g=e=>a(()=>import(e),[]);function _(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.Component==`function`}async function v(e=fetch,t=g){let n;try{let t=await e(`/api/extensions`);if(!t.ok){h.warn(`extension manifest fetch failed`,{status:t.status});return}n=await t.json()}catch(e){h.error(`extension manifest fetch errored`,{error:String(e)});return}!Array.isArray(n)||n.length===0||await Promise.all(n.map(async e=>{try{let n=await t(e.entryUrl),r=n.default??n.plugin;if(!_(r)){h.error(`extension did not export a valid visualizer plugin`,{id:e.id});return}u(r),h.info(`loaded installed visualizer`,{id:r.id,version:r.version})}catch(t){h.error(`failed to load installed visualizer`,{id:e.id,error:String(t)})}}))}export{m as n,v as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{t}from"./_core-lD_pNs53.js";import{t as n}from"./react-B8mHUpgK.js";import{j as r,k as i}from"./index-DCJpZz6M.js";var a={listWatchers:()=>t(`/watchers`),cancelWatcher:e=>t(`/watchers/${e}/cancel`,{method:`POST`})},o=e({useWatcherStore:()=>c}),s=r(`watcher-store`),c=n((e,t)=>({watchersById:{},loadWatchers:async()=>{i.getState().isAuthenticated&&(await a.listWatchers()).match(t=>e({watchersById:Object.fromEntries(t.map(e=>[e.id,e]))}),e=>s.warn(`Failed to load watchers`,{error:e.message}))},cancelWatcher:async n=>{let r=t().watchersById[n];r&&e(e=>({watchersById:{...e.watchersById,[n]:{...r,status:`cancelled`}}})),(await a.cancelWatcher(n)).match(t=>e(e=>({watchersById:{...e.watchersById,[t.id]:t}})),t=>{s.warn(`Failed to cancel watcher`,{error:t.message}),r&&e(e=>({watchersById:{...e.watchersById,[n]:r}}))})},upsert:t=>e(e=>({watchersById:{...e.watchersById,[t.id]:t}}))}));export{o as n,c as t};
1
+ import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{t}from"./_core-lD_pNs53.js";import{t as n}from"./react-B8mHUpgK.js";import{j as r,k as i}from"./index-CmX0PQ41.js";var a={listWatchers:()=>t(`/watchers`),cancelWatcher:e=>t(`/watchers/${e}/cancel`,{method:`POST`})},o=e({useWatcherStore:()=>c}),s=r(`watcher-store`),c=n((e,t)=>({watchersById:{},loadWatchers:async()=>{i.getState().isAuthenticated&&(await a.listWatchers()).match(t=>e({watchersById:Object.fromEntries(t.map(e=>[e.id,e]))}),e=>s.warn(`Failed to load watchers`,{error:e.message}))},cancelWatcher:async n=>{let r=t().watchersById[n];r&&e(e=>({watchersById:{...e.watchersById,[n]:{...r,status:`cancelled`}}})),(await a.cancelWatcher(n)).match(t=>e(e=>({watchersById:{...e.watchersById,[t.id]:t}})),t=>{s.warn(`Failed to cancel watcher`,{error:t.message}),r&&e(e=>({watchersById:{...e.watchersById,[n]:r}}))})},upsert:t=>e(e=>({watchersById:{...e.watchersById,[t.id]:t}}))}));export{o as n,c as t};
@@ -8,7 +8,7 @@
8
8
  <title>funny</title>
9
9
  <link rel="preconnect" href="/api" />
10
10
  <script type="importmap">{"imports":{"react":"/vendor/funny-react.mjs","react/jsx-runtime":"/vendor/funny-react-jsx-runtime.mjs","react-dom":"/vendor/funny-react-dom.mjs","@funny/plugin-sdk":"/vendor/funny-plugin-sdk.mjs","@funny/host":"/vendor/funny-host.mjs"}}</script>
11
- <script type="module" crossorigin src="/assets/index-DCJpZz6M.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-CmX0PQ41.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Cyuzqnbw.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/mermaid-DOtnPRYX.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/dist-9FgEnJXd.js">
@@ -480274,7 +480274,7 @@ function registerSystemRoutes(app7) {
480274
480274
  }
480275
480275
 
480276
480276
  // src/lib/build-info.ts
480277
- var BUILD_INFO = { version: "0.1.6", commit: "fbcacb63", build: 1436, dirty: true, label: "0.1.6 (fbcacb63+)" };
480277
+ var BUILD_INFO = { version: "0.1.8", commit: "fbcacb63", build: 1436, dirty: true, label: "0.1.8 (fbcacb63+)" };
480278
480278
 
480279
480279
  // src/index.ts
480280
480280
  init_logger();
@@ -480378,4 +480378,4 @@ log.info(`Runner listening on http://${host2}:${server.port} (${BUILD_INFO.label
480378
480378
  version: BUILD_INFO.version
480379
480379
  });
480380
480380
 
480381
- //# debugId=B290DB8E561AE8EA64756E2164756E21
480381
+ //# debugId=87C3D7258344323564756E2164756E21