@neuralnomads/codenomad-dev 0.20.0-dev-20260911-ea37f97b → 0.20.0-dev-20260917-aa51cbb9

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 (191) hide show
  1. package/README.md +2 -2
  2. package/dist/api-types.js.map +1 -1
  3. package/dist/opencode/automation-plugin.test.js +32 -38
  4. package/dist/opencode/automation-plugin.test.js.map +1 -1
  5. package/dist/opencode/compatibility/contract-fixture.js +15 -0
  6. package/dist/opencode/compatibility/contract-fixture.js.map +1 -0
  7. package/dist/opencode/compatibility/events.js +9 -0
  8. package/dist/opencode/compatibility/events.js.map +1 -0
  9. package/dist/opencode/compatibility/location.js +89 -0
  10. package/dist/opencode/compatibility/location.js.map +1 -0
  11. package/dist/opencode/compatibility/location.test.js +92 -0
  12. package/dist/opencode/compatibility/location.test.js.map +1 -0
  13. package/dist/opencode/compatibility/negotiate.js +73 -0
  14. package/dist/opencode/compatibility/negotiate.js.map +1 -0
  15. package/dist/opencode/compatibility/negotiate.test.js +61 -0
  16. package/dist/opencode/compatibility/negotiate.test.js.map +1 -0
  17. package/dist/opencode/compatibility/proxy-locations.js +137 -0
  18. package/dist/opencode/compatibility/proxy-locations.js.map +1 -0
  19. package/dist/opencode/compatibility/proxy-locations.test.js +42 -0
  20. package/dist/opencode/compatibility/proxy-locations.test.js.map +1 -0
  21. package/dist/opencode/compatibility/proxy.js +60 -0
  22. package/dist/opencode/compatibility/proxy.js.map +1 -0
  23. package/dist/opencode/compatibility/proxy.test.js +47 -0
  24. package/dist/opencode/compatibility/proxy.test.js.map +1 -0
  25. package/dist/opencode/compatibility/requests.js +54 -0
  26. package/dist/opencode/compatibility/requests.js.map +1 -0
  27. package/dist/opencode/compatibility/runtime.js +26 -0
  28. package/dist/opencode/compatibility/runtime.js.map +1 -0
  29. package/dist/opencode/compatibility/transport.js +112 -0
  30. package/dist/opencode/compatibility/transport.js.map +1 -0
  31. package/dist/opencode/compatibility/transport.test.js +83 -0
  32. package/dist/opencode/compatibility/transport.test.js.map +1 -0
  33. package/dist/opencode/session-pruning/location.js +16 -0
  34. package/dist/opencode/session-pruning/location.js.map +1 -0
  35. package/dist/opencode/session-pruning/package.test.js +37 -0
  36. package/dist/opencode/session-pruning/package.test.js.map +1 -0
  37. package/dist/opencode/session-pruning/plugin.js +5 -2
  38. package/dist/opencode/session-pruning/plugin.js.map +1 -1
  39. package/dist/opencode/session-pruning/preview-store.js +3 -2
  40. package/dist/opencode/session-pruning/preview-store.js.map +1 -1
  41. package/dist/opencode/session-pruning/pruning.test.js +7 -5
  42. package/dist/opencode/session-pruning/pruning.test.js.map +1 -1
  43. package/dist/opencode/session-pruning/service.js +5 -4
  44. package/dist/opencode/session-pruning/service.js.map +1 -1
  45. package/dist/opencode/session-pruning/service.test.js +65 -53
  46. package/dist/opencode/session-pruning/service.test.js.map +1 -1
  47. package/dist/permissions/opencode-replier.js +2 -2
  48. package/dist/permissions/opencode-replier.js.map +1 -1
  49. package/dist/permissions/opencode-replier.test.js +1 -1
  50. package/dist/permissions/opencode-replier.test.js.map +1 -1
  51. package/dist/permissions/opencode-yolo-metadata.js.map +1 -1
  52. package/dist/permissions/opencode-yolo-metadata.test.js.map +1 -1
  53. package/dist/plugins/session-pruning/plugin.mjs +422 -271
  54. package/dist/server/__tests__/instance-proxy-legacy.test.js +111 -0
  55. package/dist/server/__tests__/instance-proxy-legacy.test.js.map +1 -0
  56. package/dist/server/__tests__/instance-proxy.test.js +95 -34
  57. package/dist/server/__tests__/instance-proxy.test.js.map +1 -1
  58. package/dist/server/http-server.js +147 -237
  59. package/dist/server/http-server.js.map +1 -1
  60. package/dist/server/routes/session-pruning.js +4 -2
  61. package/dist/server/routes/session-pruning.js.map +1 -1
  62. package/dist/server/routes/session-pruning.test.js +16 -2
  63. package/dist/server/routes/session-pruning.test.js.map +1 -1
  64. package/dist/server/routes/worktrees.js +1 -0
  65. package/dist/server/routes/worktrees.js.map +1 -1
  66. package/dist/server/routes/worktrees.test.js +54 -1
  67. package/dist/server/routes/worktrees.test.js.map +1 -1
  68. package/dist/workspaces/host-opencode-service.test.js +56 -7
  69. package/dist/workspaces/host-opencode-service.test.js.map +1 -1
  70. package/dist/workspaces/instance-client.js.map +1 -1
  71. package/dist/workspaces/instance-events.js +71 -57
  72. package/dist/workspaces/instance-events.js.map +1 -1
  73. package/dist/workspaces/instance-events.test.js +122 -9
  74. package/dist/workspaces/instance-events.test.js.map +1 -1
  75. package/dist/workspaces/manager.js +24 -39
  76. package/dist/workspaces/manager.js.map +1 -1
  77. package/dist/workspaces/manager.test.js +43 -7
  78. package/dist/workspaces/manager.test.js.map +1 -1
  79. package/dist/workspaces/opencode-cli-service.js +56 -29
  80. package/dist/workspaces/opencode-cli-service.js.map +1 -1
  81. package/dist/workspaces/opencode-connection-generation.test.js +57 -0
  82. package/dist/workspaces/opencode-connection-generation.test.js.map +1 -0
  83. package/dist/workspaces/opencode-service.js +70 -16
  84. package/dist/workspaces/opencode-service.js.map +1 -1
  85. package/dist/workspaces/opencode-service.test.js +3 -4
  86. package/dist/workspaces/opencode-service.test.js.map +1 -1
  87. package/dist/workspaces/worktree-session-evacuation.js +31 -11
  88. package/dist/workspaces/worktree-session-evacuation.js.map +1 -1
  89. package/dist/workspaces/worktree-session-evacuation.test.js +211 -0
  90. package/dist/workspaces/worktree-session-evacuation.test.js.map +1 -1
  91. package/dist/workspaces/wsl-opencode-service.test.js +64 -24
  92. package/dist/workspaces/wsl-opencode-service.test.js.map +1 -1
  93. package/package.json +3 -3
  94. package/public/assets/App-BROhwPo9.js +54 -0
  95. package/public/assets/App-BROhwPo9.js.map +1 -0
  96. package/public/assets/{FilesTab-CRpGDs1B.js → FilesTab-DY3Vr-3r.js} +3 -3
  97. package/public/assets/{FilesTab-CRpGDs1B.js.map → FilesTab-DY3Vr-3r.js.map} +1 -1
  98. package/public/assets/{GitChangesTab-DxFebTiq.js → GitChangesTab-BD6CJngE.js} +3 -3
  99. package/public/assets/{GitChangesTab-DxFebTiq.js.map → GitChangesTab-BD6CJngE.js.map} +1 -1
  100. package/public/assets/{SplitFilePanel-DgTMrrO-.js → SplitFilePanel-BdY6d_6m.js} +2 -2
  101. package/public/assets/{SplitFilePanel-DgTMrrO-.js.map → SplitFilePanel-BdY6d_6m.js.map} +1 -1
  102. package/public/assets/StatusTab-C-_2yaPa.js +2 -0
  103. package/public/assets/StatusTab-C-_2yaPa.js.map +1 -0
  104. package/public/assets/{align-justify-v_yPXSys.js → align-justify-DI8VTZ4G.js} +2 -2
  105. package/public/assets/{align-justify-v_yPXSys.js.map → align-justify-DI8VTZ4G.js.map} +1 -1
  106. package/public/assets/{bundle-full-HzL_Jtqk.js → bundle-full-D_M65Eb_.js} +2 -2
  107. package/public/assets/{bundle-full-HzL_Jtqk.js.map → bundle-full-D_M65Eb_.js.map} +1 -1
  108. package/public/assets/{client-state-CF-PJ0GG.js → client-state-CWCzCOz6.js} +2 -2
  109. package/public/assets/{client-state-CF-PJ0GG.js.map → client-state-CWCzCOz6.js.map} +1 -1
  110. package/public/assets/{diff-viewer-BFDQBDVy.js → diff-viewer-CGPsYEr3.js} +2 -2
  111. package/public/assets/{diff-viewer-BFDQBDVy.js.map → diff-viewer-CGPsYEr3.js.map} +1 -1
  112. package/public/assets/index-B8-lAqjr.js +2 -0
  113. package/public/assets/index-B8-lAqjr.js.map +1 -0
  114. package/public/assets/index-BeUewQym.js +2 -0
  115. package/public/assets/index-BeUewQym.js.map +1 -0
  116. package/public/assets/index-BxRFHpJd.js +2 -0
  117. package/public/assets/{index-D2UHSOG5.js.map → index-BxRFHpJd.js.map} +1 -1
  118. package/public/assets/index-Bzv1kU-S.js +2 -0
  119. package/public/assets/{index-CTKYD_VJ.js.map → index-Bzv1kU-S.js.map} +1 -1
  120. package/public/assets/index-C9tI4CRG.js +2 -0
  121. package/public/assets/index-C9tI4CRG.js.map +1 -0
  122. package/public/assets/index-CGYHFZ6F.js +2 -0
  123. package/public/assets/index-CGYHFZ6F.js.map +1 -0
  124. package/public/assets/{index-CHYmKl10.js → index-CMEAjBFp.js} +2 -2
  125. package/public/assets/index-CMEAjBFp.js.map +1 -0
  126. package/public/assets/index-Cazypvyc.js +2 -0
  127. package/public/assets/index-Cazypvyc.js.map +1 -0
  128. package/public/assets/index-CwqzofWP.js +2 -0
  129. package/public/assets/index-CwqzofWP.js.map +1 -0
  130. package/public/assets/index-Da9yOa6q.js +2 -0
  131. package/public/assets/index-Da9yOa6q.js.map +1 -0
  132. package/public/assets/{index-RK9gf0uk.js → index-Ddjkirek.js} +2 -2
  133. package/public/assets/{index-RK9gf0uk.js.map → index-Ddjkirek.js.map} +1 -1
  134. package/public/assets/index-HHgvEOAH.js +3 -0
  135. package/public/assets/index-HHgvEOAH.js.map +1 -0
  136. package/public/assets/index-MeFffHqb.css +1 -0
  137. package/public/assets/loading-CdhHiSED.css +1 -0
  138. package/public/assets/{loading-BSB82snY.js → loading-Gqh6NPUr.js} +2 -2
  139. package/public/assets/{loading-BSB82snY.js.map → loading-Gqh6NPUr.js.map} +1 -1
  140. package/public/assets/main-Cbx7KdTr.js +38 -0
  141. package/public/assets/main-Cbx7KdTr.js.map +1 -0
  142. package/public/assets/{markdown-DtidoL2Z.js → markdown-BWnjyvnX.js} +4 -4
  143. package/public/assets/{markdown-DtidoL2Z.js.map → markdown-BWnjyvnX.js.map} +1 -1
  144. package/public/assets/monaco-viewer-BEJIiZWL.js +27 -0
  145. package/public/assets/monaco-viewer-BEJIiZWL.js.map +1 -0
  146. package/public/assets/{startup-state-settings-card-BY741Rt0.js → startup-state-settings-card-C4E2Itop.js} +2 -2
  147. package/public/assets/{startup-state-settings-card-BY741Rt0.js.map → startup-state-settings-card-C4E2Itop.js.map} +1 -1
  148. package/public/assets/{terminal-square-BdC_jwm3.js → terminal-square-C3wutdV0.js} +2 -2
  149. package/public/assets/{terminal-square-BdC_jwm3.js.map → terminal-square-C3wutdV0.js.map} +1 -1
  150. package/public/assets/tool-call-DNsAQ_m4.js +60 -0
  151. package/public/assets/tool-call-DNsAQ_m4.js.map +1 -0
  152. package/public/assets/{unified-picker-C0eo1chJ.js → unified-picker-tB7y17Qz.js} +2 -2
  153. package/public/assets/unified-picker-tB7y17Qz.js.map +1 -0
  154. package/public/assets/{wrap-text-BuMtdvMx.js → wrap-text-CkBxzt04.js} +2 -2
  155. package/public/assets/{wrap-text-BuMtdvMx.js.map → wrap-text-CkBxzt04.js.map} +1 -1
  156. package/public/index.html +4 -4
  157. package/public/loading.html +5 -5
  158. package/public/sw.js +1 -1
  159. package/public/sw.js.map +1 -1
  160. package/public/assets/App-0-FcHzPS.js +0 -44
  161. package/public/assets/App-0-FcHzPS.js.map +0 -1
  162. package/public/assets/StatusTab-LKUA9cbH.js +0 -2
  163. package/public/assets/StatusTab-LKUA9cbH.js.map +0 -1
  164. package/public/assets/index-8iPlm2r0.js +0 -2
  165. package/public/assets/index-8iPlm2r0.js.map +0 -1
  166. package/public/assets/index-B185mC7m.js +0 -2
  167. package/public/assets/index-B185mC7m.js.map +0 -1
  168. package/public/assets/index-Bbj1xF8i.js +0 -2
  169. package/public/assets/index-Bbj1xF8i.js.map +0 -1
  170. package/public/assets/index-BsmFN3k1.js +0 -2
  171. package/public/assets/index-BsmFN3k1.js.map +0 -1
  172. package/public/assets/index-Bz_OQJYA.css +0 -1
  173. package/public/assets/index-C52CfqK3.js +0 -2
  174. package/public/assets/index-C52CfqK3.js.map +0 -1
  175. package/public/assets/index-CHYmKl10.js.map +0 -1
  176. package/public/assets/index-CTKYD_VJ.js +0 -2
  177. package/public/assets/index-D2UHSOG5.js +0 -2
  178. package/public/assets/index-DDoB_Z36.js +0 -2
  179. package/public/assets/index-DDoB_Z36.js.map +0 -1
  180. package/public/assets/index-DcwAtZw-.js +0 -3
  181. package/public/assets/index-DcwAtZw-.js.map +0 -1
  182. package/public/assets/index-DxUD3RYr.js +0 -2
  183. package/public/assets/index-DxUD3RYr.js.map +0 -1
  184. package/public/assets/loading-CmEVQgyj.css +0 -1
  185. package/public/assets/main-CZztwrfv.js +0 -48
  186. package/public/assets/main-CZztwrfv.js.map +0 -1
  187. package/public/assets/monaco-viewer-CpxDfB-6.js +0 -27
  188. package/public/assets/monaco-viewer-CpxDfB-6.js.map +0 -1
  189. package/public/assets/tool-call-DbtCsJ4x.js +0 -60
  190. package/public/assets/tool-call-DbtCsJ4x.js.map +0 -1
  191. package/public/assets/unified-picker-C0eo1chJ.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{m as te,P as it,j as Re,t as k,i as g,a as Fe,f as De,d as J,A as at,x as Le,r as lt,e as He,u as ct}from"./monaco-viewer-CpxDfB-6.js";import{k as d,p as U,t as pe,s as B,e as M,d as F,o as L,c as I,l as fe,S as O,m as he,n as dt,x as ye,a as ne,F as we,u as ut}from"./git-diff-vendor-ChbWBukG.js";import{e as gt,f as pt,g as oe,h as ft,i as ht,D as mt,j as vt,k as bt,l as xt,I as Oe,m as yt,n as wt}from"./App-0-FcHzPS.js";import{I as Be,aY as je,as as z,aH as Ke,aR as Ne,at as Se,eP as St,aL as be,aE as ge,aF as me,aO as We,ay as ae,aC as le,aP as Ct,aQ as Ce,aW as $t,eQ as kt,aI as N,aX as $e,az as _t,aS as Pt,aM as Tt,aB as W,aA as It,dp as Dt,eR as Ot,eS as Mt,dh as At,D as re,eT as Et,eU as Ut,C as Rt,eV as Ft,T as Lt,eW as Ht,eX as Bt,dr as jt,Q as Kt,a as Nt}from"./main-CZztwrfv.js";import{u as ke}from"./index-DcwAtZw-.js";import{T as Wt}from"./terminal-square-BdC_jwm3.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./client-state-CF-PJ0GG.js";const zt=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],Vt=e=>d(Be,U(e,{name:"GripVertical",iconNode:zt})),qt=[["polygon",{points:"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2",key:"h1p8hx"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],Xt=e=>d(Be,U(e,{name:"XOctagon",iconNode:qt}));var Yt={};$e(Yt,{Arrow:()=>je,Content:()=>Ve,Portal:()=>qe,Root:()=>Xe,Tooltip:()=>ie,Trigger:()=>Ye,useTooltipContext:()=>ve});var ze=fe();function ve(){const e=he(ze);if(e===void 0)throw new Error("[kobalte]: `useTooltipContext` must be used within a `Tooltip` component");return e}function Ve(e){const o=ve(),i=z({id:o.generateId("content")},e),[s,t]=B(i,["ref","style"]);return F(()=>L(o.registerContentId(t.id))),d(O,{get when(){return o.contentPresent()},get children(){return d(We.Positioner,{get children(){return d(Ct,U({ref(r){var l=ae(u=>{o.setContentRef(u)},s.ref);typeof l=="function"&&l(r)},role:"tooltip",disableOutsidePointerEvents:!1,get style(){return Ce({"--kb-tooltip-content-transform-origin":"var(--kb-popper-content-transform-origin)",position:"relative"},s.style)},onFocusOutside:r=>r.preventDefault(),onDismiss:()=>o.hideTooltip(!0)},()=>o.dataset(),t))}})}})}function qe(e){const o=ve();return d(O,{get when(){return o.contentPresent()},get children(){return d(it,e)}})}function Gt(e,o,i){const s=e.split("-")[0],t=o.getBoundingClientRect(),r=i.getBoundingClientRect(),l=[],u=t.left+t.width/2,v=t.top+t.height/2;switch(s){case"top":l.push([t.left,v]),l.push([r.left,r.bottom]),l.push([r.left,r.top]),l.push([r.right,r.top]),l.push([r.right,r.bottom]),l.push([t.right,v]);break;case"right":l.push([u,t.top]),l.push([r.left,r.top]),l.push([r.right,r.top]),l.push([r.right,r.bottom]),l.push([r.left,r.bottom]),l.push([u,t.bottom]);break;case"bottom":l.push([t.left,v]),l.push([r.left,r.top]),l.push([r.left,r.bottom]),l.push([r.right,r.bottom]),l.push([r.right,r.top]),l.push([t.right,v]);break;case"left":l.push([u,t.top]),l.push([r.right,r.top]),l.push([r.left,r.top]),l.push([r.left,r.bottom]),l.push([r.right,r.bottom]),l.push([u,t.bottom]);break}return l}var X={},Qt=0,Y=!1,K,se,G;function Xe(e){const o=`tooltip-${pe()}`,i=`${++Qt}`,s=z({id:o,openDelay:700,closeDelay:300,skipDelayDuration:300},e),[t,r]=B(s,["id","open","defaultOpen","onOpenChange","disabled","triggerOnFocusOnly","openDelay","closeDelay","skipDelayDuration","ignoreSafeArea","forceMount"]);let l;const[u,v]=M(),[b,S]=M(),[C,h]=M(),[m,f]=M(r.placement),a=Ke({open:()=>t.open,defaultOpen:()=>t.defaultOpen,onOpenChange:$=>{var A;return(A=t.onOpenChange)==null?void 0:A.call(t,$)}}),{present:c}=Ne({show:()=>t.forceMount||a.isOpen(),element:()=>C()??null}),n=()=>{X[i]=x},p=()=>{for(const $ in X)$!==i&&(X[$](!0),delete X[$])},x=($=!1)=>{$||t.closeDelay&&t.closeDelay<=0?(window.clearTimeout(l),l=void 0,a.close()):l||(l=window.setTimeout(()=>{l=void 0,a.close()},t.closeDelay)),window.clearTimeout(K),K=void 0,t.skipDelayDuration&&t.skipDelayDuration>=0&&(G=window.setTimeout(()=>{window.clearTimeout(G),G=void 0},t.skipDelayDuration)),Y&&(window.clearTimeout(se),se=window.setTimeout(()=>{delete X[i],se=void 0,Y=!1},t.closeDelay))},y=()=>{clearTimeout(l),l=void 0,p(),n(),Y=!0,a.open(),window.clearTimeout(K),K=void 0,window.clearTimeout(se),se=void 0,window.clearTimeout(G),G=void 0},_=()=>{p(),n(),!a.isOpen()&&!K&&!Y?K=window.setTimeout(()=>{K=void 0,Y=!0,y()},t.openDelay):a.isOpen()||y()},D=($=!1)=>{!$&&t.openDelay&&t.openDelay>0&&!l&&!G?_():y()},H=()=>{window.clearTimeout(K),K=void 0,Y=!1},j=()=>{window.clearTimeout(l),l=void 0},R=$=>be(b(),$)||be(C(),$),V=$=>{const A=b(),E=C();if(!(!A||!E))return Gt($,A,E)},T=$=>{const A=$.target;if(R(A)){j();return}if(!t.ignoreSafeArea){const E=V(m());if(E&&$t(kt($),E)){j();return}}l||x()};F(()=>{if(!a.isOpen())return;const $=Se();$.addEventListener("pointermove",T,!0),L(()=>{$.removeEventListener("pointermove",T,!0)})}),F(()=>{const $=b();if(!$||!a.isOpen())return;const A=q=>{const st=q.target;be(st,$)&&x(!0)},E=St();E.addEventListener("scroll",A,{capture:!0}),L(()=>{E.removeEventListener("scroll",A,{capture:!0})})}),L(()=>{clearTimeout(l),X[i]&&delete X[i]});const w={dataset:I(()=>({"data-expanded":a.isOpen()?"":void 0,"data-closed":a.isOpen()?void 0:""})),isOpen:a.isOpen,isDisabled:()=>t.disabled??!1,triggerOnFocusOnly:()=>t.triggerOnFocusOnly??!1,contentId:u,contentPresent:c,openTooltip:D,hideTooltip:x,cancelOpening:H,generateId:me(()=>s.id),registerContentId:ge(v),isTargetOnTooltip:R,setTriggerRef:S,setContentRef:h};return d(ze.Provider,{value:w,get children(){return d(We,U({anchorRef:b,contentRef:C,onCurrentPlacementChange:f},r))}})}function Ye(e){let o;const i=ve(),[s,t]=B(e,["ref","onPointerEnter","onPointerLeave","onPointerDown","onClick","onFocus","onBlur"]);let r=!1,l=!1,u=!1;const v=()=>{r=!1},b=()=>{!i.isOpen()&&(l||u)&&i.openTooltip(u)},S=n=>{i.isOpen()&&!l&&!u&&i.hideTooltip(n)},C=n=>{N(n,s.onPointerEnter),!(n.pointerType==="touch"||i.triggerOnFocusOnly()||i.isDisabled()||n.defaultPrevented)&&(l=!0,b())},h=n=>{N(n,s.onPointerLeave),n.pointerType!=="touch"&&(l=!1,u=!1,i.isOpen()?S():i.cancelOpening())},m=n=>{N(n,s.onPointerDown),r=!0,Se(o).addEventListener("pointerup",v,{once:!0})},f=n=>{N(n,s.onClick),l=!1,u=!1,S(!0)},a=n=>{N(n,s.onFocus),!(i.isDisabled()||n.defaultPrevented||r)&&(u=!0,b())},c=n=>{N(n,s.onBlur);const p=n.relatedTarget;i.isTargetOnTooltip(p)||(l=!1,u=!1,S(!0))};return L(()=>{Se(o).removeEventListener("pointerup",v)}),d(le,U({as:"button",ref(n){var p=ae(x=>{i.setTriggerRef(x),o=x},s.ref);typeof p=="function"&&p(n)},get"aria-describedby"(){return te(()=>!!i.isOpen())()?i.contentId():void 0},onPointerEnter:C,onPointerLeave:h,onPointerDown:m,onClick:f,onFocus:a,onBlur:c},()=>i.dataset(),t))}var ie=Object.assign(Xe,{Arrow:je,Content:Ve,Portal:qe,Trigger:Ye}),Zt={};$e(Zt,{Collapsible:()=>Jt,Content:()=>_e,Root:()=>Pe,Trigger:()=>Te,useCollapsibleContext:()=>ce});var Ge=fe();function ce(){const e=he(Ge);if(e===void 0)throw new Error("[kobalte]: `useCollapsibleContext` must be used within a `Collapsible.Root` component");return e}function _e(e){const[o,i]=M(),s=ce(),t=z({id:s.generateId("content")},e),[r,l]=B(t,["ref","id","style"]),{present:u}=Ne({show:s.shouldMount,element:()=>o()??null}),[v,b]=M(0),[S,C]=M(0);let m=s.isOpen()||u();return dt(()=>{const f=requestAnimationFrame(()=>{m=!1});L(()=>{cancelAnimationFrame(f)})}),F(ye(u,()=>{if(!o())return;o().style.transitionDuration="0s",o().style.animationName="none";const f=o().getBoundingClientRect();b(f.height),C(f.width),m||(o().style.transitionDuration="",o().style.animationName="")})),F(ye(s.isOpen,f=>{!f&&o()&&(o().style.transitionDuration="",o().style.animationName="")},{defer:!0})),F(()=>L(s.registerContentId(r.id))),d(O,{get when(){return u()},get children(){return d(le,U({as:"div",ref(f){var a=ae(i,r.ref);typeof a=="function"&&a(f)},get id(){return r.id},get style(){return Ce({"--kb-collapsible-content-height":v()?`${v()}px`:void 0,"--kb-collapsible-content-width":S()?`${S()}px`:void 0},r.style)}},()=>s.dataset(),l))}})}function Pe(e){const o=`collapsible-${pe()}`,i=z({id:o},e),[s,t]=B(i,["open","defaultOpen","onOpenChange","disabled","forceMount"]),[r,l]=M(),u=Ke({open:()=>s.open,defaultOpen:()=>s.defaultOpen,onOpenChange:S=>{var C;return(C=s.onOpenChange)==null?void 0:C.call(s,S)}}),v=I(()=>({"data-expanded":u.isOpen()?"":void 0,"data-closed":u.isOpen()?void 0:"","data-disabled":s.disabled?"":void 0})),b={dataset:v,isOpen:u.isOpen,disabled:()=>s.disabled??!1,shouldMount:()=>s.forceMount||u.isOpen(),contentId:r,toggle:u.toggle,generateId:me(()=>t.id),registerContentId:ge(l)};return d(Ge.Provider,{value:b,get children(){return d(le,U({as:"div"},v,t))}})}function Te(e){const o=ce(),[i,s]=B(e,["onClick"]);return d(_t,U({get"aria-expanded"(){return o.isOpen()},get"aria-controls"(){return te(()=>!!o.isOpen())()?o.contentId():void 0},get disabled(){return o.disabled()},onClick:r=>{N(r,i.onClick),o.toggle()}},()=>o.dataset(),s))}var Jt=Object.assign(Pe,{Content:_e,Trigger:Te}),Z={};$e(Z,{Accordion:()=>en,Content:()=>Je,Header:()=>et,Item:()=>nt,Root:()=>ot,Trigger:()=>rt,useAccordionContext:()=>Ie});var Qe=fe();function Ze(){const e=he(Qe);if(e===void 0)throw new Error("[kobalte]: `useAccordionItemContext` must be used within a `Accordion.Item` component");return e}function Je(e){const o=Ze(),i=o.generateId("content"),s=z({id:i},e),[t,r]=B(s,["id","style"]);return F(()=>L(o.registerContentId(t.id))),d(_e,U({role:"region",get"aria-labelledby"(){return o.triggerId()},get style(){return Ce({"--kb-accordion-content-height":"var(--kb-collapsible-content-height)","--kb-accordion-content-width":"var(--kb-collapsible-content-width)"},t.style)}},r))}function et(e){const o=ce();return d(le,U({as:"h3"},()=>o.dataset(),e))}var tt=fe();function Ie(){const e=he(tt);if(e===void 0)throw new Error("[kobalte]: `useAccordionContext` must be used within a `Accordion.Root` component");return e}function nt(e){const o=Ie(),i=`${o.generateId("item")}-${pe()}`,s=z({id:i},e),[t,r]=B(s,["value","disabled"]),[l,u]=M(),[v,b]=M(),S=()=>o.listState().selectionManager(),C=()=>S().isSelected(t.value),h={value:()=>t.value,triggerId:l,contentId:v,generateId:me(()=>r.id),registerTriggerId:ge(u),registerContentId:ge(b)};return d(Qe.Provider,{value:h,get children(){return d(Pe,U({get open(){return C()},get disabled(){return t.disabled}},r))}})}function ot(e){let o;const i=`accordion-${pe()}`,s=z({id:i,multiple:!1,collapsible:!1,shouldFocusWrap:!0},e),[t,r]=B(s,["id","ref","value","defaultValue","onChange","multiple","collapsible","shouldFocusWrap","onKeyDown","onMouseDown","onFocusIn","onFocusOut"]),[l,u]=M([]),{DomCollectionProvider:v}=gt({items:l,onItemsChange:u}),b=Pt({selectedKeys:()=>t.value,defaultSelectedKeys:()=>t.defaultValue,onSelectionChange:h=>{var m;return(m=t.onChange)==null?void 0:m.call(t,Array.from(h))},disallowEmptySelection:()=>!t.multiple&&!t.collapsible,selectionMode:()=>t.multiple?"multiple":"single",dataSource:l});b.selectionManager().setFocusedKey("item-1");const S=Tt({selectionManager:()=>b.selectionManager(),collection:()=>b.collection(),disallowEmptySelection:()=>b.selectionManager().disallowEmptySelection(),shouldFocusWrap:()=>t.shouldFocusWrap,disallowTypeAhead:!0,allowsTabNavigation:!0},()=>o),C={listState:()=>b,generateId:me(()=>t.id)};return d(v,{get children(){return d(tt.Provider,{value:C,get children(){return d(le,U({as:"div",get id(){return t.id},ref(h){var m=ae(f=>o=f,t.ref);typeof m=="function"&&m(h)},get onKeyDown(){return W([t.onKeyDown,S.onKeyDown])},get onMouseDown(){return W([t.onMouseDown,S.onMouseDown])},get onFocusIn(){return W([t.onFocusIn])},get onFocusOut(){return W([t.onFocusOut,S.onFocusOut])}},r))}})}})}function rt(e){let o;const i=Ie(),s=Ze(),t=ce(),r=s.generateId("trigger"),l=z({id:r},e),[u,v]=B(l,["ref","onPointerDown","onPointerUp","onClick","onKeyDown","onMouseDown","onFocus"]);pt({getItem:()=>({ref:()=>o,type:"item",key:s.value(),textValue:"",disabled:t.disabled()})});const b=It({key:()=>s.value(),selectionManager:()=>i.listState().selectionManager(),disabled:()=>t.disabled(),shouldSelectOnPressUp:!0},()=>o),S=C=>{["Enter"," "].includes(C.key)&&C.preventDefault(),N(C,u.onKeyDown),N(C,b.onKeyDown)};return F(()=>L(s.registerTriggerId(v.id))),d(Te,U({ref(C){var h=ae(m=>o=m,u.ref);typeof h=="function"&&h(C)},get"data-key"(){return b.dataKey()},get onPointerDown(){return W([u.onPointerDown,b.onPointerDown])},get onPointerUp(){return W([u.onPointerUp,b.onPointerUp])},get onClick(){return W([u.onClick,b.onClick])},onKeyDown:S,get onMouseDown(){return W([u.onMouseDown,b.onMouseDown])},get onFocus(){return W([u.onFocus,b.onFocus])}},v))}var en=Object.assign(ot,{Content:Je,Header:et,Item:nt,Trigger:rt}),de=k('<div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary">'),tn=k('<div><div class="flex flex-wrap items-center gap-2 text-xs text-primary"><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary"></span></div><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary"></span></div><div class="inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary"><span class="uppercase text-[10px] tracking-wide text-muted"></span><span class="font-semibold text-primary">');const nn=e=>{const{t:o}=ke(),{preferences:i}=Re(),s=I(()=>i().showUsageMetrics??!0),t=I(()=>Dt(e.instanceId,e.sessionId)??{cost:0,contextWindow:0,isSubscriptionModel:!1,inputTokens:0,outputTokens:0,reasoningTokens:0,actualUsageTokens:0,modelOutputLimit:0,contextAvailableTokens:null}),r=I(()=>Ot(e.instanceId,e.sessionId)),l=I(()=>r().length>0),u=I(()=>l()?Mt(e.instanceId,e.sessionId)??{cost:0,inputTokens:0,outputTokens:0,reasoningTokens:0}:{cost:0,inputTokens:0,outputTokens:0,reasoningTokens:0}),v=I(()=>`$${u().cost.toFixed(2)}`),b=I(()=>u().inputTokens),S=I(()=>u().outputTokens),C=I(()=>u().reasoningTokens),h=I(()=>t().inputTokens??0),m=I(()=>t().outputTokens??0),f=I(()=>{const c=t().isSubscriptionModel?0:t().cost;return c>0?c:0}),a=I(()=>t().isSubscriptionModel?o("contextUsagePanel.included"):`$${f().toFixed(2)}`);return(()=>{var c=tn(),n=c.firstChild,p=n.firstChild,x=p.firstChild,y=x.nextSibling,_=p.nextSibling,D=_.firstChild,H=D.nextSibling,j=_.nextSibling,R=j.firstChild,V=R.nextSibling;return g(x,()=>o("contextUsagePanel.labels.input")),g(y,()=>oe(h())),g(D,()=>o("contextUsagePanel.labels.output")),g(H,()=>oe(m())),g(R,()=>o("contextUsagePanel.labels.cost")),g(V,a),g(n,d(O,{get when(){return te(()=>!!l())()&&s()},get children(){return[(()=>{var T=de(),P=T.firstChild,w=P.nextSibling;return g(P,()=>o("contextUsagePanel.labels.totalInput")),g(w,()=>oe(b())),T})(),(()=>{var T=de(),P=T.firstChild,w=P.nextSibling;return g(P,()=>o("contextUsagePanel.labels.totalOutput")),g(w,()=>oe(S())),T})(),(()=>{var T=de(),P=T.firstChild,w=P.nextSibling;return g(P,()=>o("contextUsagePanel.labels.totalCost")),g(w,v),T})(),(()=>{var T=de(),P=T.firstChild,w=P.nextSibling;return g(P,()=>o("contextUsagePanel.labels.totalReasoning")),g(w,()=>oe(C())),T})()]}}),null),ne(()=>Fe(c,`session-context-panel px-4 py-2 ${e.class??""}`)),c})()};var on=k('<div class="mt-2 truncate text-right text-sm font-semibold text-secondary">'),rn=k("<div>"),xe=k("<div class=right-panel-empty-text>"),sn=k("<div class=space-y-2>"),an=k('<div class="h-2 overflow-hidden border border-base"style=background-color:var(--surface-base)><div class="h-full transition-[width] duration-300"role=progressbar aria-valuemin=0 aria-valuemax=100>'),ln=k('<div><div class="mb-1 flex items-baseline justify-between gap-2 text-[11px] text-primary"><span class=font-medium></span><div class="flex min-w-0 items-baseline gap-1.5 text-right"><span class="shrink-0 font-medium">'),cn=k("<span class=text-tertiary aria-hidden=true>·"),dn=k('<span class="truncate text-[10px] text-tertiary">');const Me=6e4,ue=new Map,un=(e,o)=>e!=="credits_balance"||o,gn=e=>{var c;const{t:o}=ke(),{preferences:i}=Re(),s=I(()=>{const n=e.providerId.trim();if(!n)return null;const p=e.modelId.trim();return{providerId:n,modelId:p,key:`${n}\0${p}`}}),t=s(),[r,l]=M(t?(c=ue.get(t.key))==null?void 0:c.value:void 0);let u=0;const v=async(n,p,x,y)=>{const _=++u;y&&l(void 0);try{const D=await at.fetchProviderUsage(n,p);ue.set(x,{value:D,updatedAt:Date.now()}),_===u&&l(D)}catch{_===u&&r()===void 0&&(ue.set(x,{value:null,updatedAt:Date.now()}),l(null))}};F(()=>{const n=s();if(!n){u+=1,l(void 0);return}const p=ue.get(n.key);l(p==null?void 0:p.value),(!p||Date.now()-p.updatedAt>=Me)&&v(n.providerId,n.modelId,n.key,p===void 0)});const b=setInterval(()=>{const n=s();n&&v(n.providerId,n.modelId,n.key,!1)},Me);L(()=>{u+=1,clearInterval(b)});const S=I(()=>{var n;return Object.entries(((n=r())==null?void 0:n.windows)??{})}),C=I(()=>S().filter(([n])=>un(n,i().showProviderUsageCreditBalance))),h=n=>{const p={"5h":"fiveHours","7d":"sevenDays","7d-sonnet":"sevenDaysSonnet","7d-opus":"sevenDaysOpus",weekly:"weekly",daily:"daily",monthly:"monthly",credits:"credits",credits_balance:"credits",billing_cycle:"billingCycle",session:"session",premium:"premium",chat:"chat",completions:"completions","mcp-tools":"mcpTools"}[n];return p?o(`providerUsage.windows.${p}`):n},m=n=>n.valueLabel?n.valueLabel:n.usedPercent===null?o("providerUsage.unavailableValue"):o("providerUsage.usedPercent",{percent:Math.round(n.usedPercent)}),f=n=>{if(!n)return null;const p=new Date(n);return Number.isFinite(p.getTime())?o("providerUsage.resets",{time:p.toLocaleString([],{dateStyle:"short",timeStyle:"short"})}):null},a=n=>n!==null&&n>=80?"var(--status-error)":n!==null&&n>=50?"var(--status-warning)":"var(--status-success)";return(()=>{var n=rn();return g(n,d(O,{get when(){return r()!==void 0},get fallback(){return(()=>{var p=xe();return g(p,()=>o("providerUsage.loading")),p})()},get children(){return d(O,{get when(){return r()},get fallback(){return(()=>{var p=xe();return g(p,()=>o("providerUsage.unavailable")),p})()},children:p=>d(O,{get when(){return te(()=>!!(p().supported&&p().configured&&p().ok))()&&S().length>0},get fallback(){return(()=>{var x=xe();return g(x,()=>o(p().supported?p().configured?"providerUsage.unavailable":"providerUsage.notConfigured":"providerUsage.unsupported")),x})()},get children(){var x=sn();return g(x,d(we,{get each(){return C()},children:([y,_])=>(()=>{var D=ln(),H=D.firstChild,j=H.firstChild,R=j.nextSibling,V=R.firstChild;return g(j,()=>h(y)),g(V,()=>m(_)),g(R,d(O,{get when(){return f(_.resetAt)},children:T=>[cn(),(()=>{var P=dn();return g(P,T),P})()]}),null),g(D,d(O,{get when(){return _.usedPercent!==null},get children(){var T=an(),P=T.firstChild;return ne(w=>{var $=`${Math.max(0,Math.min(100,_.usedPercent??0))}%`,A=a(_.usedPercent),E=o("providerUsage.progressLabel",{window:h(y)}),q=Math.round(_.usedPercent??0);return $!==w.e&&De(P,"width",w.e=$),A!==w.t&&De(P,"background-color",w.t=A),E!==w.a&&J(P,"aria-label",w.a=E),q!==w.o&&J(P,"aria-valuenow",w.o=q),w},{e:void 0,t:void 0,a:void 0,o:void 0}),T}}),null),D})()})),x}})})}}),null),g(n,d(O,{get when(){return te(()=>{var p,x,y;return!!((p=r())!=null&&p.supported&&((x=r())!=null&&x.configured)&&((y=r())!=null&&y.ok))})()&&S().length>0},get children(){var p=on();return g(p,()=>{var x;return((x=r())==null?void 0:x.providerName)??e.providerId}),p}}),null),n})()},Ae=4*1024*1024;function pn(e,o){const i=e+o;if(i.length<=Ae)return{output:i,truncated:!1};let s=i.length-Ae;i.charCodeAt(s)>=56320&&i.charCodeAt(s)<=57343&&(s+=1),i[s]==="\x1B"&&i[s+1]==="\\"?s+=2:i[s]==="\\"&&i[s-1]==="\x1B"&&(s+=1);const t=i.lastIndexOf("\x1B",s);if(t>=0){let r=-1,l=!1;if(i[t+1]==="["){l=!0;for(let u=t+2;u<i.length;u+=1){const v=i.charCodeAt(u);if(v===24||v===26){r=u+1;break}if(v>=64&&v<=126){r=u+1;break}}}else if(i[t+1]==="]"){l=!0;const u=i.indexOf("\x07",t+2),v=i.indexOf("\x1B\\",t+2),b=i.slice(t+2).search(/[\u0018\u001a]/),S=[u<0?1/0:u+1,v<0?1/0:v+2,b<0?1/0:t+3+b];r=Math.min(...S),Number.isFinite(r)||(r=-1)}else if(["P","X","^","_"].includes(i[t+1]??"")){l=!0;const u=i.indexOf("\x1B\\",t+2),v=i.slice(t+2).search(/[\u0018\u001a]/);r=Math.min(u<0?1/0:u+2,v<0?1/0:t+3+v),Number.isFinite(r)||(r=-1)}l&&r>=s?s=r:l&&r<0&&t<s&&(s=i.length)}return{output:i.slice(s),truncated:!0}}const Ee={items:[],loading:!1,failed:!1},fn=new Set(["shell.created","shell.exited","shell.deleted","server.connected"]);function hn(e){const o=i=>({directory:i});return{list:async i=>(await e.shell.list({location:o(i)})).data,remove:(i,s)=>e.shell.remove({id:s,location:o(i)}),output:async(i,s,t=0)=>(await e.shell.output({id:s,location:o(i),cursor:t,limit:1024*1024})).data}}function mn(e){const[o,i]=M(new Map),s=new Map,t=(h,m)=>`${h}\0${m}`,r=(h,m)=>i(f=>new Map(f).set(h,m)),l=h=>ut(()=>o().get(h)??Ee),u=async(h,m)=>{if(!h||!m)return;const f=t(h,m),a=(s.get(f)??0)+1;s.set(f,a),r(f,{...l(f),loading:!0,failed:!1});try{const c=await e(h).list(m);s.get(f)===a&&r(f,{items:c,loading:!1,failed:!1})}catch{s.get(f)===a&&r(f,{...l(f),loading:!1,failed:!0})}};return{getState:(h,m)=>o().get(t(h,m))??Ee,load:u,refreshForEvent:async(h,m)=>{var n,p,x;if(!fn.has(m.type))return;const f=((n=m.location)==null?void 0:n.directory)??((x=(p=m.data)==null?void 0:p.info)==null?void 0:x.cwd),a=Array.from(o().keys()).map(y=>y.split("\0")).filter(([y])=>y===h),c=f?a.filter(([,y])=>vn(y,f)):a;await Promise.all((c.length?c:a).map(([,y])=>u(h,y)))},remove:async(h,m,f)=>{try{return await e(h).remove(m,f),await u(h,m),!0}catch{return!1}},output:(h,m,f,a)=>e(h).output(m,f,a)}}function vn(e,o){const i=s=>{const t=s.replace(/\\/g,"/").replace(/\/+$/,"");return/^[A-Za-z]:\//.test(t)||t.startsWith("//")?t.toLowerCase():t};return i(e)===i(o)}const ee=mn(e=>hn(At(e)));Le.on("instance.event",e=>{e.type!=="instance.event"||!e.event.type.startsWith("shell.")||ee.refreshForEvent(e.instanceId,e.event)});Le.on("instance.eventStatus",e=>{e.type!=="instance.eventStatus"||e.status!=="connected"||ee.refreshForEvent(e.instanceId,{type:"server.connected"})});var bn=k('<div class=window-header><div class="min-w-0 flex-1"><span class="block truncate text-xs text-secondary"></span></div><button type=button class="button-tertiary shrink-0">'),xn=k('<p class="text-xs text-secondary">'),yn=k('<p class="mb-2 text-xs text-secondary">'),wn=k('<pre class="border border-base bg-surface-secondary p-4 font-mono text-xs text-primary whitespace-pre-wrap break-all">'),Sn=k("<div class=window-body>"),Cn=k('<div class="fixed inset-0 z-50 flex items-center justify-center p-4">');function $n(e){const{t:o}=ke(),[i,s]=M(""),[t,r]=M(""),[l,u]=M(!1),[v,b]=M(!1),[S,C]=M(!1);return F(()=>{const h=e.shell,m=e.directory;if(!e.open||!h||!m)return;let f=!0,a=0,c="",n;const p=()=>{const y=Et(c);if(u(y),!y)return r("");const _=Ut();r(_.render(c))},x=async()=>{try{const y=await ee.output(e.instanceId,m,h.id,a);if(!f)return;if(a=y.cursor,y.output){const _=pn(c,y.output);c=_.output,s(c),b(D=>D||y.truncated||_.truncated),p()}else y.truncated&&b(!0)}catch{if(!f)return;s(o("backgroundProcessOutputDialog.loadErrorFallback"))}finally{if(!f)return;C(!1),n=setTimeout(x,1e3)}};s(""),r(""),u(!1),b(!1),C(!0),x(),L(()=>{f=!1,n&&clearTimeout(n)})}),d(re,{get open(){return e.open},onOpenChange:h=>!h&&e.onClose(),modal:!0,get children(){return d(re.Portal,{get children(){return[d(re.Overlay,{class:"modal-overlay"}),(()=>{var h=Cn();return g(h,d(re.Content,{class:"modal-surface flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden",get children(){return[(()=>{var m=bn(),f=m.firstChild,a=f.firstChild,c=f.nextSibling;return g(f,d(re.Title,{class:"window-title",get children(){return o("backgroundProcessOutputDialog.title")}}),a),g(a,()=>{var n;return(n=e.shell)==null?void 0:n.command}),lt(c,"click",e.onClose,!0),g(c,()=>o("backgroundProcessOutputDialog.actions.close")),ne(()=>{var n;return J(a,"title",(n=e.shell)==null?void 0:n.command)}),m})(),(()=>{var m=Sn();return g(m,d(O,{get when(){return S()},get children(){var f=xn();return g(f,()=>o("backgroundProcessOutputDialog.loading")),f}}),null),g(m,d(O,{get when(){return v()},get children(){var f=yn();return g(f,()=>o("backgroundProcessOutputDialog.truncatedNotice")),f}}),null),g(m,d(O,{get when(){return!S()},get children(){var f=wn();return g(f,(()=>{var a=te(()=>!!l());return()=>a()?void 0:i()})()),ne(()=>f.innerHTML=l()?t():void 0),f}}),null),m})()]}})),h})()]}})}})}He(["click"]);var kn=k("<span class=section-left><span class=section-label>"),_n=k("<div>"),Q=k('<div class="right-panel-empty right-panel-empty--left"><span class=text-xs>'),Pn=k('<div class="flex items-center justify-between gap-2 border border-base bg-surface-secondary px-3 py-2"><p class="min-w-0 text-xs leading-5 text-secondary"></p><div class="-mr-2 shrink-0">'),Tn=k('<div class="flex flex-col gap-1">'),Ue=k("<span>"),In=k('<article class=status-process-card><div class="flex items-start justify-between gap-2"><div class="min-w-0 flex-1"><h4 class="truncate text-xs font-medium text-primary"></h4><code class="mt-1 block truncate text-xs text-secondary"></code></div></div><div class="mt-1 flex flex-wrap gap-x-2 gap-y-1 text-xs text-tertiary"><span></span></div><div class="mt-1 truncate text-xs text-tertiary"></div><div class=status-process-actions><button type=button class="button-tertiary inline-flex w-full items-center justify-center gap-1 p-1"></button><button type=button class="button-tertiary inline-flex w-full items-center justify-center gap-1 p-1">'),Dn=k("<div class=right-panel-empty-text>"),On=k('<div class="border border-base bg-surface-secondary px-3 py-2">'),Mn=k("<div class=status-tab-container>");const An=e=>{const o=yt(e.section.id);return(()=>{var i=_n();return ct(o,i),g(i,d(Z.Item,{get value(){return e.section.id},class:"right-panel-accordion-item",get children(){return[d(Z.Header,{class:"right-panel-accordion-header-row",get children(){return[d(Z.Trigger,{class:"right-panel-accordion-trigger",get children(){var s=kn(),t=s.firstChild;return g(s,d(Rt,{class:"right-panel-accordion-chevron disclosure-chevron"}),t),g(t,()=>e.t(e.section.labelKey)),s}}),d(ie,{openDelay:200,gutter:4,placement:"top",get children(){return[d(ie.Trigger,{as:"button",type:"button",class:"section-info-trigger",get"aria-label"(){return e.t(e.section.tooltipKey)},get children(){return d(Ft,{class:"section-info-icon"})}}),d(ie.Portal,{get children(){return d(ie.Content,{class:"section-info-tooltip",get children(){return e.t(e.section.tooltipKey)}})}})]}}),d(Vt,{class:"right-panel-section-grip","aria-hidden":"true"})]}}),d(Z.Content,{class:"right-panel-accordion-content",get children(){return e.section.render()}})]}})),ne(()=>Fe(i,`right-panel-section-draggable ${o.isActiveDraggable?"right-panel-section-draggable-active":""}`)),i})()},Nn=e=>{const o=a=>e.expandedItems().includes(a),i=I(()=>{var a;return((a=e.activeSession())==null?void 0:a.location.directory)??e.instance.folder}),s=I(()=>ee.getState(e.instanceId,i())),[t,r]=M(null);F(ye(()=>[e.instanceId,i()],([a,c])=>void ee.load(a,c)));const l=()=>{const a=e.activeSession();return a?(()=>{var c=Pn(),n=c.firstChild,p=n.nextSibling;return g(n,()=>e.t("instanceShell.yoloMode.description")),g(p,d(wt,{get checked(){return jt(e.instanceId,a.id)},size:"small",sx:{"& .MuiSwitch-switchBase.Mui-checked":{color:"var(--session-yolo-accent)"},"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track":{backgroundColor:"var(--session-yolo-accent)"}},get inputProps(){return{"aria-label":e.t("instanceShell.yoloMode.title")}},onChange:()=>Bt(e.instanceId,a.id)})),c})():(()=>{var c=Q(),n=c.firstChild;return g(n,()=>e.t("instanceShell.yoloMode.noSessionSelected")),c})()},u=()=>{const a=e.activeSessionId();if(!a||a==="info")return(()=>{var n=Q(),p=n.firstChild;return g(p,()=>e.t("instanceShell.plan.noSessionSelected")),n})();const c=e.latestTodoState();return c?d(Ht,{state:c,get emptyLabel(){return e.t("instanceShell.plan.empty")},showStatusLabel:!1}):(()=>{var n=Q(),p=n.firstChild;return g(p,()=>e.t("instanceShell.plan.empty")),n})()},v=async(a,c,n)=>{await Kt(e.t("instanceShell.backgroundProcesses.remove.message",{title:c}),{title:e.t("instanceShell.backgroundProcesses.remove.title"),confirmLabel:e.t(n?"instanceShell.backgroundProcesses.actions.stopRemove":"instanceShell.backgroundProcesses.actions.remove")})&&!await ee.remove(e.instanceId,i(),a)&&Nt({message:e.t("instanceShell.backgroundProcesses.error"),variant:"error"})},b=()=>d(O,{get when(){return!s().failed},get fallback(){return(()=>{var a=Q(),c=a.firstChild;return g(c,()=>e.t("instanceShell.backgroundProcesses.error")),a})()},get children(){return d(O,{get when(){return!s().loading||s().items.length>0},get fallback(){return(()=>{var a=Q(),c=a.firstChild;return g(c,()=>e.t("instanceShell.backgroundProcesses.loading")),a})()},get children(){return d(O,{get when(){return s().items.length>0},get fallback(){return(()=>{var a=Q(),c=a.firstChild;return g(c,()=>e.t("instanceShell.backgroundProcesses.empty")),a})()},get children(){var a=Tn();return g(a,d(we,{get each(){return s().items},children:c=>{const n=()=>c.status==="running";return(()=>{var p=In(),x=p.firstChild,y=x.firstChild,_=y.firstChild,D=_.nextSibling,H=x.nextSibling,j=H.firstChild,R=H.nextSibling,V=R.nextSibling,T=V.firstChild,P=T.nextSibling;return g(_,()=>c.command),g(D,()=>c.shell),g(j,()=>e.t(`instanceShell.backgroundProcesses.status.${c.status}`)),g(H,d(O,{get when(){return c.pid!==void 0},get children(){var w=Ue();return g(w,()=>e.t("instanceShell.backgroundProcesses.pid",{pid:c.pid})),w}}),null),g(H,d(O,{get when(){return c.exit!==void 0},get children(){var w=Ue();return g(w,()=>e.t("instanceShell.backgroundProcesses.exitCode",{code:c.exit})),w}}),null),g(R,()=>c.cwd),T.$$click=()=>r(c),g(T,d(Wt,{class:"h-3.5 w-3.5","aria-hidden":"true"}),null),g(T,()=>e.t("instanceShell.backgroundProcesses.actions.output"),null),P.$$click=()=>void v(c.id,c.command,n()),g(P,d(O,{get when(){return n()},get fallback(){return d(Lt,{class:"h-3.5 w-3.5","aria-hidden":"true"})},get children(){return d(Xt,{class:"h-3.5 w-3.5","aria-hidden":"true"})}}),null),g(P,()=>e.t(n()?"instanceShell.backgroundProcesses.actions.stopRemove":"instanceShell.backgroundProcesses.actions.remove"),null),ne(w=>{var $=c.command,A=c.shell,E=c.cwd,q=s().loading;return $!==w.e&&J(_,"title",w.e=$),A!==w.t&&J(D,"title",w.t=A),E!==w.a&&J(R,"title",w.a=E),q!==w.o&&(P.disabled=w.o=q),w},{e:void 0,t:void 0,a:void 0,o:void 0}),p})()}})),a}})}})}}),S=()=>{const a=e.activeSession();return a?(()=>{var c=On();return g(c,d(gn,{get providerId(){return a.model.providerId},get modelId(){return a.model.modelId}})),c})():(()=>{var c=Dn();return g(c,()=>e.t("providerUsage.noSession")),c})()},C=I(()=>[...ft({renderYoloModeSection:l,renderProviderUsage:S,renderPlanSectionContent:u,renderBackgroundProcesses:b,renderMcpStatus:()=>d(Oe,{get initialInstance(){return e.instance},sections:["mcp"],showSectionHeadings:!1,class:"space-y-2"}),renderPluginStatus:()=>d(Oe,{get initialInstance(){return e.instance},sections:["plugins"],showSectionHeadings:!1,class:"space-y-2"})}).statusSections??[],...e.extraSections??[]]),h=I(()=>ht(C(),e.customization().statusSectionOrder,e.customization().hiddenStatusSectionIds)),m=(a,c)=>{if(!a||a===c)return;const n=h().map(D=>D.id),p=n.indexOf(a),x=n.indexOf(c);if(p===-1||x===-1)return;const y=[...n],[_]=y.splice(p,1);y.splice(x,0,_),e.onCustomizationChange(D=>({...D,statusSectionOrder:y}))},f=({draggable:a,droppable:c})=>{c&&m(String(a.id),String(c.id))};return(()=>{var a=Mn();return g(a,d(O,{get when(){var c;return(c=e.activeSession())==null?void 0:c.id},get children(){return d(nn,{get instanceId(){return e.instanceId},get sessionId(){return e.activeSession().id},class:"status-tab-context-panel"})}}),null),g(a,d(Z.Root,{class:"right-panel-accordion",collapsible:!0,multiple:!0,get value(){return e.expandedItems()},get onChange(){return e.onExpandedItemsChange},get children(){return d(mt,{collisionDetector:vt,onDragEnd:f,get children(){return d(bt,{get children(){return d(xt,{get ids(){return h().map(c=>c.id)},get children(){return d(we,{get each(){return h()},children:c=>d(An,{section:c,get expanded(){return o(c.id)},get t(){return e.t}})})}})}})}})}}),null),g(a,d($n,{get open(){return!!t()},get instanceId(){return e.instanceId},get directory(){return i()},get shell(){return t()},onClose:()=>r(null)}),null),a})()};He(["click"]);export{Nn as default};
2
- //# sourceMappingURL=StatusTab-LKUA9cbH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusTab-LKUA9cbH.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/grip-vertical.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/x-octagon.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/2N4PRSLE.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/UGE6PPGT.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/PYUMFHDL.jsx","../../../components/session/context-usage-panel.tsx","../../../components/session/provider-usage-panel.tsx","../../../stores/shell-store.ts","../../../stores/shells.ts","../../../components/shell-output-dialog.tsx","../../../components/instance/shell/right-panel/tabs/StatusTab.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '9', cy: '12', r: '1', key: '1vctgf' }],\n ['circle', { cx: '9', cy: '5', r: '1', key: 'hp0tcf' }],\n ['circle', { cx: '9', cy: '19', r: '1', key: 'fkjjf6' }],\n ['circle', { cx: '15', cy: '12', r: '1', key: '1tmaij' }],\n ['circle', { cx: '15', cy: '5', r: '1', key: '19l28e' }],\n ['circle', { cx: '15', cy: '19', r: '1', key: 'f4zoj3' }],\n];\nconst GripVertical = (props) => (<Icon {...props} name=\"GripVertical\" iconNode={iconNode}/>);\nexport default GripVertical;\n","import Icon from '../Icon';\nconst iconNode = [\n [\n 'polygon',\n {\n points: '7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2',\n key: 'h1p8hx',\n },\n ],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n];\nconst XOctagon = (props) => <Icon {...props} name=\"XOctagon\" iconNode={iconNode}/>;\nexport default XOctagon;\n","import {\n Popper,\n PopperArrow\n} from \"./2CTBMVJ4.jsx\";\nimport {\n DismissableLayer\n} from \"./3VFJM5NZ.jsx\";\nimport {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/tooltip/index.tsx\nvar tooltip_exports = {};\n__export(tooltip_exports, {\n Arrow: () => PopperArrow,\n Content: () => TooltipContent,\n Portal: () => TooltipPortal,\n Root: () => TooltipRoot,\n Tooltip: () => Tooltip,\n Trigger: () => TooltipTrigger,\n useTooltipContext: () => useTooltipContext\n});\n\n// src/tooltip/tooltip-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/tooltip/tooltip-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar TooltipContext = createContext();\nfunction useTooltipContext() {\n const context = useContext(TooltipContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useTooltipContext` must be used within a `Tooltip` component\"\n );\n }\n return context;\n}\n\n// src/tooltip/tooltip-content.tsx\nfunction TooltipContent(props) {\n const context = useTooltipContext();\n const mergedProps = mergeDefaultProps(\n {\n id: context.generateId(\"content\")\n },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\"]);\n createEffect(() => onCleanup(context.registerContentId(others.id)));\n return <Show when={context.contentPresent()}><Popper.Positioner><DismissableLayer\n ref={mergeRefs((el) => {\n context.setContentRef(el);\n }, local.ref)}\n role=\"tooltip\"\n disableOutsidePointerEvents={false}\n style={combineStyle(\n {\n \"--kb-tooltip-content-transform-origin\": \"var(--kb-popper-content-transform-origin)\",\n position: \"relative\"\n },\n local.style\n )}\n onFocusOutside={(e) => e.preventDefault()}\n onDismiss={() => context.hideTooltip(true)}\n {...context.dataset()}\n {...others}\n /></Popper.Positioner></Show>;\n}\n\n// src/tooltip/tooltip-portal.tsx\nimport { Show as Show2 } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nfunction TooltipPortal(props) {\n const context = useTooltipContext();\n return <Show2 when={context.contentPresent()}><Portal {...props} /></Show2>;\n}\n\n// src/tooltip/tooltip-root.tsx\nimport {\n contains,\n createGenerateId,\n getDocument,\n getEventPoint,\n getWindow,\n isPointInPolygon,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup as onCleanup2,\n splitProps as splitProps2\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport createPresence from \"solid-presence\";\n\n// src/tooltip/utils.ts\nfunction getTooltipSafeArea(placement, anchorEl, floatingEl) {\n const basePlacement = placement.split(\"-\")[0];\n const anchorRect = anchorEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n const polygon = [];\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\n const anchorCenterY = anchorRect.top + anchorRect.height / 2;\n switch (basePlacement) {\n case \"top\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"right\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n case \"bottom\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"left\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n }\n return polygon;\n}\n\n// src/tooltip/tooltip-root.tsx\nvar tooltips = {};\nvar tooltipsCounter = 0;\nvar globalWarmedUp = false;\nvar globalWarmUpTimeout;\nvar globalCoolDownTimeout;\nvar globalSkipDelayTimeout;\nfunction TooltipRoot(props) {\n const defaultId = `tooltip-${createUniqueId()}`;\n const tooltipId = `${++tooltipsCounter}`;\n const mergedProps = mergeDefaultProps2(\n {\n id: defaultId,\n openDelay: 700,\n closeDelay: 300,\n skipDelayDuration: 300\n },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"id\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"triggerOnFocusOnly\",\n \"openDelay\",\n \"closeDelay\",\n \"skipDelayDuration\",\n \"ignoreSafeArea\",\n \"forceMount\"\n ]);\n let closeTimeoutId;\n const [contentId, setContentId] = createSignal();\n const [triggerRef, setTriggerRef] = createSignal();\n const [contentRef, setContentRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(\n others.placement\n );\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const { present: contentPresent } = createPresence({\n show: () => local.forceMount || disclosureState.isOpen(),\n element: () => contentRef() ?? null\n });\n const ensureTooltipEntry = () => {\n tooltips[tooltipId] = hideTooltip;\n };\n const closeOpenTooltips = () => {\n for (const hideTooltipId in tooltips) {\n if (hideTooltipId !== tooltipId) {\n tooltips[hideTooltipId](true);\n delete tooltips[hideTooltipId];\n }\n }\n };\n const hideTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (immediate || local.closeDelay && local.closeDelay <= 0) {\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n disclosureState.close();\n } else if (!closeTimeoutId) {\n closeTimeoutId = window.setTimeout(() => {\n closeTimeoutId = void 0;\n disclosureState.close();\n }, local.closeDelay);\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n if (local.skipDelayDuration && local.skipDelayDuration >= 0) {\n globalSkipDelayTimeout = window.setTimeout(() => {\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n }, local.skipDelayDuration);\n }\n if (globalWarmedUp) {\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = window.setTimeout(() => {\n delete tooltips[tooltipId];\n globalCoolDownTimeout = void 0;\n globalWarmedUp = false;\n }, local.closeDelay);\n }\n };\n const showTooltip = () => {\n if (isServer) {\n return;\n }\n clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n closeOpenTooltips();\n ensureTooltipEntry();\n globalWarmedUp = true;\n disclosureState.open();\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = void 0;\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n };\n const warmupTooltip = () => {\n if (isServer) {\n return;\n }\n closeOpenTooltips();\n ensureTooltipEntry();\n if (!disclosureState.isOpen() && !globalWarmUpTimeout && !globalWarmedUp) {\n globalWarmUpTimeout = window.setTimeout(() => {\n globalWarmUpTimeout = void 0;\n globalWarmedUp = true;\n showTooltip();\n }, local.openDelay);\n } else if (!disclosureState.isOpen()) {\n showTooltip();\n }\n };\n const openTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (!immediate && local.openDelay && local.openDelay > 0 && !closeTimeoutId && !globalSkipDelayTimeout) {\n warmupTooltip();\n } else {\n showTooltip();\n }\n };\n const cancelOpening = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n globalWarmedUp = false;\n };\n const cancelClosing = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n };\n const isTargetOnTooltip = (target) => {\n return contains(triggerRef(), target) || contains(contentRef(), target);\n };\n const getPolygonSafeArea = (placement) => {\n const triggerEl = triggerRef();\n const contentEl = contentRef();\n if (!triggerEl || !contentEl) {\n return;\n }\n return getTooltipSafeArea(placement, triggerEl, contentEl);\n };\n const onHoverOutside = (event) => {\n const target = event.target;\n if (isTargetOnTooltip(target)) {\n cancelClosing();\n return;\n }\n if (!local.ignoreSafeArea) {\n const polygon = getPolygonSafeArea(currentPlacement());\n if (polygon && isPointInPolygon(getEventPoint(event), polygon)) {\n cancelClosing();\n return;\n }\n }\n if (closeTimeoutId) {\n return;\n }\n hideTooltip();\n };\n createEffect2(() => {\n if (isServer) {\n return;\n }\n if (!disclosureState.isOpen()) {\n return;\n }\n const doc = getDocument();\n doc.addEventListener(\"pointermove\", onHoverOutside, true);\n onCleanup2(() => {\n doc.removeEventListener(\"pointermove\", onHoverOutside, true);\n });\n });\n createEffect2(() => {\n const trigger = triggerRef();\n if (!trigger || !disclosureState.isOpen()) {\n return;\n }\n const handleScroll = (event) => {\n const target = event.target;\n if (contains(target, trigger)) {\n hideTooltip(true);\n }\n };\n const win = getWindow();\n win.addEventListener(\"scroll\", handleScroll, { capture: true });\n onCleanup2(() => {\n win.removeEventListener(\"scroll\", handleScroll, { capture: true });\n });\n });\n onCleanup2(() => {\n clearTimeout(closeTimeoutId);\n const tooltip = tooltips[tooltipId];\n if (tooltip) {\n delete tooltips[tooltipId];\n }\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n isDisabled: () => local.disabled ?? false,\n triggerOnFocusOnly: () => local.triggerOnFocusOnly ?? false,\n contentId,\n contentPresent,\n openTooltip,\n hideTooltip,\n cancelOpening,\n generateId: createGenerateId(() => mergedProps.id),\n registerContentId: createRegisterId(setContentId),\n isTargetOnTooltip,\n setTriggerRef,\n setContentRef\n };\n return <TooltipContext.Provider value={context}><Popper\n anchorRef={triggerRef}\n contentRef={contentRef}\n onCurrentPlacementChange={setCurrentPlacement}\n {...others}\n /></TooltipContext.Provider>;\n}\n\n// src/tooltip/tooltip-trigger.tsx\nimport { callHandler, getDocument as getDocument2, mergeRefs as mergeRefs2 } from \"@kobalte/utils\";\nimport { onCleanup as onCleanup3, splitProps as splitProps3 } from \"solid-js\";\nimport { isServer as isServer2 } from \"solid-js/web\";\nfunction TooltipTrigger(props) {\n let ref;\n const context = useTooltipContext();\n const [local, others] = splitProps3(props, [\n \"ref\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerDown\",\n \"onClick\",\n \"onFocus\",\n \"onBlur\"\n ]);\n let isPointerDown = false;\n let isHovered = false;\n let isFocused = false;\n const handlePointerUp = () => {\n isPointerDown = false;\n };\n const handleShow = () => {\n if (!context.isOpen() && (isHovered || isFocused)) {\n context.openTooltip(isFocused);\n }\n };\n const handleHide = (immediate) => {\n if (context.isOpen() && !isHovered && !isFocused) {\n context.hideTooltip(immediate);\n }\n };\n const onPointerEnter = (e) => {\n callHandler(e, local.onPointerEnter);\n if (e.pointerType === \"touch\" || context.triggerOnFocusOnly() || context.isDisabled() || e.defaultPrevented) {\n return;\n }\n isHovered = true;\n handleShow();\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType === \"touch\") {\n return;\n }\n isHovered = false;\n isFocused = false;\n if (context.isOpen()) {\n handleHide();\n } else {\n context.cancelOpening();\n }\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n isPointerDown = true;\n getDocument2(ref).addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n };\n const onClick = (e) => {\n callHandler(e, local.onClick);\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n if (context.isDisabled() || e.defaultPrevented || isPointerDown) {\n return;\n }\n isFocused = true;\n handleShow();\n };\n const onBlur = (e) => {\n callHandler(e, local.onBlur);\n const relatedTarget = e.relatedTarget;\n if (context.isTargetOnTooltip(relatedTarget)) {\n return;\n }\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n onCleanup3(() => {\n if (isServer2) {\n return;\n }\n getDocument2(ref).removeEventListener(\"pointerup\", handlePointerUp);\n });\n return <Polymorphic\n as=\"button\"\n ref={mergeRefs2((el) => {\n context.setTriggerRef(el);\n ref = el;\n }, local.ref)}\n aria-describedby={context.isOpen() ? context.contentId() : void 0}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n onPointerDown={onPointerDown}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/tooltip/index.tsx\nvar Tooltip = Object.assign(TooltipRoot, {\n Arrow: PopperArrow,\n Content: TooltipContent,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger\n});\n\nexport {\n useTooltipContext,\n TooltipContent,\n TooltipPortal,\n TooltipRoot,\n TooltipTrigger,\n Tooltip,\n tooltip_exports\n};\n","import {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n ButtonRoot\n} from \"./UKTBL2JL.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/collapsible/index.tsx\nvar collapsible_exports = {};\n__export(collapsible_exports, {\n Collapsible: () => Collapsible,\n Content: () => CollapsibleContent,\n Root: () => CollapsibleRoot,\n Trigger: () => CollapsibleTrigger,\n useCollapsibleContext: () => useCollapsibleContext\n});\n\n// src/collapsible/collapsible-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n createSignal,\n on,\n onCleanup,\n onMount,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\nimport createPresence from \"solid-presence\";\n\n// src/collapsible/collapsible-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar CollapsibleContext = createContext();\nfunction useCollapsibleContext() {\n const context = useContext(CollapsibleContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useCollapsibleContext` must be used within a `Collapsible.Root` component\"\n );\n }\n return context;\n}\n\n// src/collapsible/collapsible-content.tsx\nfunction CollapsibleContent(props) {\n const [ref, setRef] = createSignal();\n const context = useCollapsibleContext();\n const mergedProps = mergeDefaultProps(\n { id: context.generateId(\"content\") },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"style\"]);\n const { present } = createPresence({\n show: context.shouldMount,\n element: () => ref() ?? null\n });\n const [height, setHeight] = createSignal(0);\n const [width, setWidth] = createSignal(0);\n const isOpen = () => context.isOpen() || present();\n let isMountAnimationPrevented = isOpen();\n onMount(() => {\n const raf = requestAnimationFrame(() => {\n isMountAnimationPrevented = false;\n });\n onCleanup(() => {\n cancelAnimationFrame(raf);\n });\n });\n createEffect(\n on(\n /**\n * depends on `present` because it will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n present,\n () => {\n if (!ref()) {\n return;\n }\n ref().style.transitionDuration = \"0s\";\n ref().style.animationName = \"none\";\n const rect = ref().getBoundingClientRect();\n setHeight(rect.height);\n setWidth(rect.width);\n if (!isMountAnimationPrevented) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n }\n )\n );\n createEffect(\n on(\n context.isOpen,\n (open) => {\n if (!open && ref()) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n },\n { defer: true }\n )\n );\n createEffect(() => onCleanup(context.registerContentId(local.id)));\n return <Show when={present()}><Polymorphic\n as=\"div\"\n ref={mergeRefs(setRef, local.ref)}\n id={local.id}\n style={combineStyle(\n {\n \"--kb-collapsible-content-height\": height() ? `${height()}px` : void 0,\n \"--kb-collapsible-content-width\": width() ? `${width()}px` : void 0\n },\n local.style\n )}\n {...context.dataset()}\n {...others}\n /></Show>;\n}\n\n// src/collapsible/collapsible-root.tsx\nimport {\n createGenerateId,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createMemo,\n createSignal as createSignal2,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\nfunction CollapsibleRoot(props) {\n const defaultId = `collapsible-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"forceMount\"\n ]);\n const [contentId, setContentId] = createSignal2();\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0,\n \"data-disabled\": local.disabled ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n disabled: () => local.disabled ?? false,\n shouldMount: () => local.forceMount || disclosureState.isOpen(),\n contentId,\n toggle: disclosureState.toggle,\n generateId: createGenerateId(() => others.id),\n registerContentId: createRegisterId(setContentId)\n };\n return <CollapsibleContext.Provider value={context}><Polymorphic\n as=\"div\"\n {...dataset()}\n {...others}\n /></CollapsibleContext.Provider>;\n}\n\n// src/collapsible/collapsible-trigger.tsx\nimport { callHandler } from \"@kobalte/utils\";\nimport {\n splitProps as splitProps3\n} from \"solid-js\";\nfunction CollapsibleTrigger(props) {\n const context = useCollapsibleContext();\n const [local, others] = splitProps3(props, [\"onClick\"]);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n context.toggle();\n };\n return <ButtonRoot\n aria-expanded={context.isOpen()}\n aria-controls={context.isOpen() ? context.contentId() : void 0}\n disabled={context.disabled()}\n onClick={onClick}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/collapsible/index.tsx\nvar Collapsible = Object.assign(CollapsibleRoot, {\n Content: CollapsibleContent,\n Trigger: CollapsibleTrigger\n});\n\nexport {\n useCollapsibleContext,\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n Collapsible,\n collapsible_exports\n};\n","import {\n createSelectableList\n} from \"./N3GAC5SS.jsx\";\nimport {\n createListState,\n createSelectableItem\n} from \"./QZDH5R5B.jsx\";\nimport {\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n useCollapsibleContext\n} from \"./UGE6PPGT.jsx\";\nimport {\n createDomCollection,\n createDomCollectionItem\n} from \"./SOM3K36D.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/accordion/index.tsx\nvar accordion_exports = {};\n__export(accordion_exports, {\n Accordion: () => Accordion,\n Content: () => AccordionContent,\n Header: () => AccordionHeader,\n Item: () => AccordionItem,\n Root: () => AccordionRoot,\n Trigger: () => AccordionTrigger,\n useAccordionContext: () => useAccordionContext\n});\n\n// src/accordion/accordion-content.tsx\nimport { mergeDefaultProps } from \"@kobalte/utils\";\nimport {\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/accordion/accordion-item-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar AccordionItemContext = createContext();\nfunction useAccordionItemContext() {\n const context = useContext(AccordionItemContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionItemContext` must be used within a `Accordion.Item` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-content.tsx\nfunction AccordionContent(props) {\n const itemContext = useAccordionItemContext();\n const defaultId = itemContext.generateId(\"content\");\n const mergedProps = mergeDefaultProps(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"id\", \"style\"]);\n createEffect(() => onCleanup(itemContext.registerContentId(local.id)));\n return <CollapsibleContent\n role=\"region\"\n aria-labelledby={itemContext.triggerId()}\n style={combineStyle(\n {\n \"--kb-accordion-content-height\": \"var(--kb-collapsible-content-height)\",\n \"--kb-accordion-content-width\": \"var(--kb-collapsible-content-width)\"\n },\n local.style\n )}\n {...others}\n />;\n}\n\n// src/accordion/accordion-header.tsx\nfunction AccordionHeader(props) {\n const context = useCollapsibleContext();\n return <Polymorphic\n as=\"h3\"\n {...context.dataset()}\n {...props}\n />;\n}\n\n// src/accordion/accordion-item.tsx\nimport { createGenerateId, mergeDefaultProps as mergeDefaultProps2 } from \"@kobalte/utils\";\nimport {\n createSignal,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\n\n// src/accordion/accordion-context.tsx\nimport { createContext as createContext2, useContext as useContext2 } from \"solid-js\";\nvar AccordionContext = createContext2();\nfunction useAccordionContext() {\n const context = useContext2(AccordionContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionContext` must be used within a `Accordion.Root` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-item.tsx\nfunction AccordionItem(props) {\n const accordionContext = useAccordionContext();\n const defaultId = `${accordionContext.generateId(\n \"item\"\n )}-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\"value\", \"disabled\"]);\n const [triggerId, setTriggerId] = createSignal();\n const [contentId, setContentId] = createSignal();\n const selectionManager = () => accordionContext.listState().selectionManager();\n const isExpanded = () => {\n return selectionManager().isSelected(local.value);\n };\n const context = {\n value: () => local.value,\n triggerId,\n contentId,\n generateId: createGenerateId(() => others.id),\n registerTriggerId: createRegisterId(setTriggerId),\n registerContentId: createRegisterId(setContentId)\n };\n return <AccordionItemContext.Provider value={context}><CollapsibleRoot\n open={isExpanded()}\n disabled={local.disabled}\n {...others}\n /></AccordionItemContext.Provider>;\n}\n\n// src/accordion/accordion-root.tsx\nimport {\n composeEventHandlers,\n createGenerateId as createGenerateId2,\n mergeDefaultProps as mergeDefaultProps3,\n mergeRefs\n} from \"@kobalte/utils\";\nimport {\n createSignal as createSignal2,\n createUniqueId as createUniqueId2,\n splitProps as splitProps3\n} from \"solid-js\";\nfunction AccordionRoot(props) {\n let ref;\n const defaultId = `accordion-${createUniqueId2()}`;\n const mergedProps = mergeDefaultProps3(\n {\n id: defaultId,\n multiple: false,\n collapsible: false,\n shouldFocusWrap: true\n },\n props\n );\n const [local, others] = splitProps3(mergedProps, [\n \"id\",\n \"ref\",\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"multiple\",\n \"collapsible\",\n \"shouldFocusWrap\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocusIn\",\n // TODO: remove next breaking\n \"onFocusOut\"\n ]);\n const [items, setItems] = createSignal2([]);\n const { DomCollectionProvider } = createDomCollection({\n items,\n onItemsChange: setItems\n });\n const listState = createListState({\n selectedKeys: () => local.value,\n defaultSelectedKeys: () => local.defaultValue,\n onSelectionChange: (value) => local.onChange?.(Array.from(value)),\n disallowEmptySelection: () => !local.multiple && !local.collapsible,\n selectionMode: () => local.multiple ? \"multiple\" : \"single\",\n dataSource: items\n });\n listState.selectionManager().setFocusedKey(\"item-1\");\n const selectableList = createSelectableList(\n {\n selectionManager: () => listState.selectionManager(),\n collection: () => listState.collection(),\n disallowEmptySelection: () => listState.selectionManager().disallowEmptySelection(),\n shouldFocusWrap: () => local.shouldFocusWrap,\n disallowTypeAhead: true,\n allowsTabNavigation: true\n },\n () => ref\n );\n const context = {\n listState: () => listState,\n generateId: createGenerateId2(() => local.id)\n };\n return <DomCollectionProvider><AccordionContext.Provider value={context}><Polymorphic\n as=\"div\"\n id={local.id}\n ref={mergeRefs((el) => ref = el, local.ref)}\n onKeyDown={composeEventHandlers([\n local.onKeyDown,\n selectableList.onKeyDown\n ])}\n onMouseDown={composeEventHandlers([\n local.onMouseDown,\n selectableList.onMouseDown\n ])}\n onFocusIn={composeEventHandlers([\n local.onFocusIn\n // TODO: remove next breaking\n ])}\n onFocusOut={composeEventHandlers([\n local.onFocusOut,\n selectableList.onFocusOut\n ])}\n {...others}\n /></AccordionContext.Provider></DomCollectionProvider>;\n}\n\n// src/accordion/accordion-trigger.tsx\nimport {\n callHandler,\n composeEventHandlers as composeEventHandlers2,\n mergeDefaultProps as mergeDefaultProps4,\n mergeRefs as mergeRefs2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n onCleanup as onCleanup2,\n splitProps as splitProps4\n} from \"solid-js\";\nfunction AccordionTrigger(props) {\n let ref;\n const accordionContext = useAccordionContext();\n const itemContext = useAccordionItemContext();\n const collapsibleContext = useCollapsibleContext();\n const defaultId = itemContext.generateId(\"trigger\");\n const mergedProps = mergeDefaultProps4(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps4(mergedProps, [\n \"ref\",\n \"onPointerDown\",\n \"onPointerUp\",\n \"onClick\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocus\"\n ]);\n createDomCollectionItem({\n getItem: () => ({\n ref: () => ref,\n type: \"item\",\n key: itemContext.value(),\n textValue: \"\",\n // not applicable here\n disabled: collapsibleContext.disabled()\n })\n });\n const selectableItem = createSelectableItem(\n {\n key: () => itemContext.value(),\n selectionManager: () => accordionContext.listState().selectionManager(),\n disabled: () => collapsibleContext.disabled(),\n shouldSelectOnPressUp: true\n },\n () => ref\n );\n const onKeyDown = (e) => {\n if ([\"Enter\", \" \"].includes(e.key)) {\n e.preventDefault();\n }\n callHandler(e, local.onKeyDown);\n callHandler(e, selectableItem.onKeyDown);\n };\n createEffect2(() => onCleanup2(itemContext.registerTriggerId(others.id)));\n return <CollapsibleTrigger\n ref={mergeRefs2((el) => ref = el, local.ref)}\n data-key={selectableItem.dataKey()}\n onPointerDown={composeEventHandlers2([\n local.onPointerDown,\n selectableItem.onPointerDown\n ])}\n onPointerUp={composeEventHandlers2([\n local.onPointerUp,\n selectableItem.onPointerUp\n ])}\n onClick={composeEventHandlers2([local.onClick, selectableItem.onClick])}\n onKeyDown={onKeyDown}\n onMouseDown={composeEventHandlers2([\n local.onMouseDown,\n selectableItem.onMouseDown\n ])}\n onFocus={composeEventHandlers2([local.onFocus, selectableItem.onFocus])}\n {...others}\n />;\n}\n\n// src/accordion/index.tsx\nvar Accordion = Object.assign(AccordionRoot, {\n Content: AccordionContent,\n Header: AccordionHeader,\n Item: AccordionItem,\n Trigger: AccordionTrigger\n});\n\nexport {\n AccordionContent,\n AccordionHeader,\n useAccordionContext,\n AccordionItem,\n AccordionRoot,\n AccordionTrigger,\n Accordion,\n accordion_exports\n};\n","import { createMemo, Show, type Component } from \"solid-js\"\nimport { getChildSessions, getSessionInfo, getThreadTotals } from \"../../stores/sessions\"\nimport { formatTokenTotal } from \"../../lib/formatters\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ContextUsagePanelProps {\n instanceId: string\n sessionId: string\n class?: string\n}\n\nconst chipClass = \"inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary\"\nconst chipLabelClass = \"uppercase text-[10px] tracking-wide text-muted\"\n\nconst ContextUsagePanel: Component<ContextUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const showUsage = createMemo(() => preferences().showUsageMetrics ?? true)\n const info = createMemo(\n () =>\n getSessionInfo(props.instanceId, props.sessionId) ?? {\n cost: 0,\n contextWindow: 0,\n isSubscriptionModel: false,\n inputTokens: 0,\n outputTokens: 0,\n reasoningTokens: 0,\n actualUsageTokens: 0,\n modelOutputLimit: 0,\n contextAvailableTokens: null,\n },\n )\n\n const children = createMemo(() => getChildSessions(props.instanceId, props.sessionId))\n const hasChildren = createMemo(() => children().length > 0)\n\n const threadTotals = createMemo(() => {\n if (!hasChildren()) return { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n return getThreadTotals(props.instanceId, props.sessionId) ?? { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n })\n\n const totalCostDisplay = createMemo(() => `$${threadTotals().cost.toFixed(2)}`)\n\n const totalInputTokens = createMemo(() => threadTotals().inputTokens)\n const totalOutputTokens = createMemo(() => threadTotals().outputTokens)\n const totalReasoningTokens = createMemo(() => threadTotals().reasoningTokens)\n\n const inputTokens = createMemo(() => info().inputTokens ?? 0)\n const outputTokens = createMemo(() => info().outputTokens ?? 0)\n const costValue = createMemo(() => {\n const value = info().isSubscriptionModel ? 0 : info().cost\n return value > 0 ? value : 0\n })\n\n const costDisplay = createMemo(() => info().isSubscriptionModel ? t(\"contextUsagePanel.included\") : `$${costValue().toFixed(2)}`)\n\n return (\n <div class={`session-context-panel px-4 py-2 ${props.class ?? \"\"}`}>\n <div class=\"flex flex-wrap items-center gap-2 text-xs text-primary\">\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.input\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(inputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.output\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(outputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.cost\")}</span>\n <span class=\"font-semibold text-primary\">{costDisplay()}</span>\n </div>\n <Show when={hasChildren() && showUsage()}>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalInput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalInputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalOutput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalOutputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalCost\")}</span>\n <span class=\"font-semibold text-primary\">{totalCostDisplay()}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalReasoning\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalReasoningTokens())}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n}\n\nexport default ContextUsagePanel\n","import { For, Show, createEffect, createMemo, createSignal, onCleanup, type Component } from \"solid-js\"\n\nimport type { ProviderUsageResponse, ProviderUsageWindow } from \"../../../../server/src/api-types\"\nimport { serverApi } from \"../../lib/api-client\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ProviderUsagePanelProps {\n providerId: string\n modelId: string\n}\n\nconst REFRESH_INTERVAL_MS = 60_000\nconst usageCache = new Map<string, { value: ProviderUsageResponse | null; updatedAt: number }>()\n\nexport const shouldShowProviderUsageWindow = (label: string, showCreditBalance: boolean) =>\n label !== \"credits_balance\" || showCreditBalance\n\nconst ProviderUsagePanel: Component<ProviderUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const source = createMemo(() => {\n const providerId = props.providerId.trim()\n if (!providerId) return null\n const modelId = props.modelId.trim()\n return { providerId, modelId, key: `${providerId}\\0${modelId}` }\n })\n const initialSource = source()\n const [usage, setUsage] = createSignal<ProviderUsageResponse | null | undefined>(\n initialSource ? usageCache.get(initialSource.key)?.value : undefined,\n )\n let requestId = 0\n\n const refreshUsage = async (providerId: string, modelId: string, key: string, clear: boolean) => {\n const currentRequestId = ++requestId\n if (clear) setUsage(undefined)\n try {\n const response = await serverApi.fetchProviderUsage(providerId, modelId)\n usageCache.set(key, { value: response, updatedAt: Date.now() })\n if (currentRequestId === requestId) setUsage(response)\n } catch {\n if (currentRequestId === requestId && usage() === undefined) {\n usageCache.set(key, { value: null, updatedAt: Date.now() })\n setUsage(null)\n }\n }\n }\n\n createEffect(() => {\n const current = source()\n if (!current) {\n requestId += 1\n setUsage(undefined)\n return\n }\n const cached = usageCache.get(current.key)\n setUsage(cached?.value)\n if (!cached || Date.now() - cached.updatedAt >= REFRESH_INTERVAL_MS) {\n void refreshUsage(current.providerId, current.modelId, current.key, cached === undefined)\n }\n })\n\n const refreshTimer = setInterval(() => {\n const current = source()\n if (current) void refreshUsage(current.providerId, current.modelId, current.key, false)\n }, REFRESH_INTERVAL_MS)\n onCleanup(() => {\n requestId += 1\n clearInterval(refreshTimer)\n })\n\n const entries = createMemo(() => Object.entries(usage()?.windows ?? {}))\n const displayedEntries = createMemo(() =>\n entries().filter(([label]) => shouldShowProviderUsageWindow(label, preferences().showProviderUsageCreditBalance)),\n )\n\n const windowLabel = (label: string) => {\n const key = ({\n \"5h\": \"fiveHours\",\n \"7d\": \"sevenDays\",\n \"7d-sonnet\": \"sevenDaysSonnet\",\n \"7d-opus\": \"sevenDaysOpus\",\n weekly: \"weekly\",\n daily: \"daily\",\n monthly: \"monthly\",\n credits: \"credits\",\n credits_balance: \"credits\",\n billing_cycle: \"billingCycle\",\n session: \"session\",\n premium: \"premium\",\n chat: \"chat\",\n completions: \"completions\",\n \"mcp-tools\": \"mcpTools\",\n } as Record<string, string>)[label]\n return key ? t(`providerUsage.windows.${key}`) : label\n }\n\n const displayValue = (window: ProviderUsageWindow) => {\n if (window.valueLabel) return window.valueLabel\n if (window.usedPercent === null) return t(\"providerUsage.unavailableValue\")\n return t(\"providerUsage.usedPercent\", { percent: Math.round(window.usedPercent) })\n }\n\n const resetLabel = (resetAt: number | null) => {\n if (!resetAt) return null\n const date = new Date(resetAt)\n if (!Number.isFinite(date.getTime())) return null\n return t(\"providerUsage.resets\", { time: date.toLocaleString([], { dateStyle: \"short\", timeStyle: \"short\" }) })\n }\n\n const barColor = (percent: number | null) => {\n if (percent !== null && percent >= 80) return \"var(--status-error)\"\n if (percent !== null && percent >= 50) return \"var(--status-warning)\"\n return \"var(--status-success)\"\n }\n\n return (\n <div>\n <Show when={usage() !== undefined} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.loading\")}</div>}>\n <Show when={usage()} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.unavailable\")}</div>}>\n {(data) => (\n <Show\n when={data().supported && data().configured && data().ok && entries().length > 0}\n fallback={\n <div class=\"right-panel-empty-text\">\n {t(\n !data().supported\n ? \"providerUsage.unsupported\"\n : !data().configured\n ? \"providerUsage.notConfigured\"\n : \"providerUsage.unavailable\",\n )}\n </div>\n }\n >\n <div class=\"space-y-2\">\n <For each={displayedEntries()}>\n {([label, window]) => (\n <div>\n <div class=\"mb-1 flex items-baseline justify-between gap-2 text-[11px] text-primary\">\n <span class=\"font-medium\">{windowLabel(label)}</span>\n <div class=\"flex min-w-0 items-baseline gap-1.5 text-right\">\n <span class=\"shrink-0 font-medium\">{displayValue(window)}</span>\n <Show when={resetLabel(window.resetAt)}>\n {(reset) => (\n <>\n <span class=\"text-tertiary\" aria-hidden=\"true\">·</span>\n <span class=\"truncate text-[10px] text-tertiary\">{reset()}</span>\n </>\n )}\n </Show>\n </div>\n </div>\n <Show when={window.usedPercent !== null}>\n <div class=\"h-2 overflow-hidden border border-base\" style={{ \"background-color\": \"var(--surface-base)\" }}>\n <div\n class=\"h-full transition-[width] duration-300\"\n style={{ width: `${Math.max(0, Math.min(100, window.usedPercent ?? 0))}%`, \"background-color\": barColor(window.usedPercent) }}\n role=\"progressbar\"\n aria-label={t(\"providerUsage.progressLabel\", { window: windowLabel(label) })}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(window.usedPercent ?? 0)}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n )}\n </Show>\n </Show>\n <Show when={usage()?.supported && usage()?.configured && usage()?.ok && entries().length > 0}>\n <div class=\"mt-2 truncate text-right text-sm font-semibold text-secondary\">{usage()?.providerName ?? props.providerId}</div>\n </Show>\n </div>\n )\n}\n\nexport default ProviderUsagePanel\n","import { createSignal, untrack } from \"solid-js\"\nimport type { OpenCodeClient, ShellInfo } from \"@opencode-ai/client\"\n\nconst MAX_SHELL_OUTPUT_DISPLAY_CHARS = 4 * 1024 * 1024\n\nexport function appendShellOutput(current: string, chunk: string): { output: string; truncated: boolean } {\n const output = current + chunk\n if (output.length <= MAX_SHELL_OUTPUT_DISPLAY_CHARS) return { output, truncated: false }\n\n let start = output.length - MAX_SHELL_OUTPUT_DISPLAY_CHARS\n if (output.charCodeAt(start) >= 0xdc00 && output.charCodeAt(start) <= 0xdfff) start += 1\n if (output[start] === \"\\u001b\" && output[start + 1] === \"\\\\\") start += 2\n else if (output[start] === \"\\\\\" && output[start - 1] === \"\\u001b\") start += 1\n const escape = output.lastIndexOf(\"\\u001b\", start)\n if (escape >= 0) {\n let end = -1\n let controlSequence = false\n if (output[escape + 1] === \"[\") {\n controlSequence = true\n for (let index = escape + 2; index < output.length; index += 1) {\n const code = output.charCodeAt(index)\n if (code === 0x18 || code === 0x1a) {\n end = index + 1\n break\n }\n if (code >= 0x40 && code <= 0x7e) {\n end = index + 1\n break\n }\n }\n } else if (output[escape + 1] === \"]\") {\n controlSequence = true\n const bell = output.indexOf(\"\\u0007\", escape + 2)\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n const terminators = [bell < 0 ? Infinity : bell + 1, stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel]\n end = Math.min(...terminators)\n if (!Number.isFinite(end)) end = -1\n } else if ([\"P\", \"X\", \"^\", \"_\"].includes(output[escape + 1] ?? \"\")) {\n controlSequence = true\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n end = Math.min(stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel)\n if (!Number.isFinite(end)) end = -1\n }\n if (controlSequence && end >= start) start = end\n else if (controlSequence && end < 0 && escape < start) start = output.length\n }\n return { output: output.slice(start), truncated: true }\n}\n\nexport interface ShellApi {\n list(directory: string): Promise<ShellInfo[]>\n remove(directory: string, shellId: string): Promise<void>\n output(directory: string, shellId: string, cursor?: number): Promise<{ output: string; cursor: number; size: number; truncated: boolean }>\n}\n\nexport interface ShellState {\n items: ShellInfo[]\n loading: boolean\n failed: boolean\n}\n\nexport interface ShellRefreshEvent {\n type: string\n location?: { directory?: string }\n data?: { info?: { cwd?: string } }\n}\n\nconst EMPTY_STATE: ShellState = { items: [], loading: false, failed: false }\nconst SHELL_EVENTS = new Set([\"shell.created\", \"shell.exited\", \"shell.deleted\", \"server.connected\"])\n\nexport function createShellApi(client: OpenCodeClient): ShellApi {\n const location = (directory: string) => ({ directory })\n return {\n list: async (directory) => (await client.shell.list({ location: location(directory) })).data,\n remove: (directory, shellId) => client.shell.remove({ id: shellId, location: location(directory) }),\n output: async (directory, shellId, cursor = 0) => (await client.shell.output({\n id: shellId,\n location: location(directory),\n cursor,\n limit: 1024 * 1024,\n })).data,\n }\n}\n\nexport function createShellStore(apiForInstance: (instanceId: string) => ShellApi) {\n const [states, setStates] = createSignal<Map<string, ShellState>>(new Map())\n const generations = new Map<string, number>()\n const key = (instanceId: string, directory: string) => `${instanceId}\\0${directory}`\n const setState = (stateKey: string, state: ShellState) => setStates((current) => new Map(current).set(stateKey, state))\n const readState = (stateKey: string): ShellState => untrack(() => states().get(stateKey) ?? EMPTY_STATE)\n\n const load = async (instanceId: string, directory: string): Promise<void> => {\n if (!instanceId || !directory) return\n const stateKey = key(instanceId, directory)\n const generation = (generations.get(stateKey) ?? 0) + 1\n generations.set(stateKey, generation)\n setState(stateKey, { ...readState(stateKey), loading: true, failed: false })\n try {\n const items = await apiForInstance(instanceId).list(directory)\n if (generations.get(stateKey) === generation) setState(stateKey, { items, loading: false, failed: false })\n } catch {\n if (generations.get(stateKey) === generation) setState(stateKey, { ...readState(stateKey), loading: false, failed: true })\n }\n }\n\n const refreshForEvent = async (instanceId: string, event: ShellRefreshEvent): Promise<void> => {\n if (!SHELL_EVENTS.has(event.type)) return\n const eventDirectory = event.location?.directory ?? event.data?.info?.cwd\n const tracked = Array.from(states().keys())\n .map((stateKey) => stateKey.split(\"\\0\") as [string, string])\n .filter(([trackedInstanceId]) => trackedInstanceId === instanceId)\n const matching = eventDirectory ? tracked.filter(([, directory]) => sameDirectory(directory, eventDirectory)) : tracked\n await Promise.all((matching.length ? matching : tracked).map(([, directory]) => load(instanceId, directory)))\n }\n\n const remove = async (instanceId: string, directory: string, shellId: string): Promise<boolean> => {\n try {\n await apiForInstance(instanceId).remove(directory, shellId)\n await load(instanceId, directory)\n return true\n } catch { return false }\n }\n\n const output = (instanceId: string, directory: string, shellId: string, cursor?: number) =>\n apiForInstance(instanceId).output(directory, shellId, cursor)\n const getState = (instanceId: string, directory: string): ShellState => states().get(key(instanceId, directory)) ?? EMPTY_STATE\n return { getState, load, refreshForEvent, remove, output }\n}\n\nfunction sameDirectory(left: string, right: string): boolean {\n const normalize = (value: string) => {\n const normalized = value.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\")\n return /^[A-Za-z]:\\//.test(normalized) || normalized.startsWith(\"//\") ? normalized.toLowerCase() : normalized\n }\n return normalize(left) === normalize(right)\n}\n","import { serverEvents } from \"../lib/server-events\"\nimport { getRootClient } from \"./opencode-client\"\nimport { createShellApi, createShellStore, type ShellRefreshEvent } from \"./shell-store\"\n\nconst shellStore = createShellStore((instanceId) => createShellApi(getRootClient(instanceId)))\n\nserverEvents.on(\"instance.event\", (event) => {\n if (event.type !== \"instance.event\" || !event.event.type.startsWith(\"shell.\")) return\n void shellStore.refreshForEvent(event.instanceId, event.event as ShellRefreshEvent)\n})\n\nserverEvents.on(\"instance.eventStatus\", (event) => {\n if (event.type !== \"instance.eventStatus\" || event.status !== \"connected\") return\n void shellStore.refreshForEvent(event.instanceId, { type: \"server.connected\" })\n})\n\nexport { shellStore }\n","import { Dialog } from \"@kobalte/core/dialog\"\nimport { Show, createEffect, createSignal, onCleanup } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\n\nimport { createAnsiStreamRenderer, hasAnsi } from \"../lib/ansi\"\nimport { useI18n } from \"../lib/i18n\"\nimport { appendShellOutput } from \"../stores/shell-store\"\nimport { shellStore } from \"../stores/shells\"\n\ninterface ShellOutputDialogProps {\n open: boolean\n instanceId: string\n directory: string\n shell: ShellInfo | null\n onClose: () => void\n}\n\nexport function ShellOutputDialog(props: ShellOutputDialogProps) {\n const { t } = useI18n()\n const [output, setOutput] = createSignal(\"\")\n const [outputHtml, setOutputHtml] = createSignal(\"\")\n const [ansiEnabled, setAnsiEnabled] = createSignal(false)\n const [truncated, setTruncated] = createSignal(false)\n const [loading, setLoading] = createSignal(false)\n\n createEffect(() => {\n const shell = props.shell\n const directory = props.directory\n if (!props.open || !shell || !directory) return\n\n let active = true\n let cursor = 0\n let raw = \"\"\n let timer: ReturnType<typeof setTimeout> | undefined\n const render = () => {\n const ansi = hasAnsi(raw)\n setAnsiEnabled(ansi)\n if (!ansi) return setOutputHtml(\"\")\n const renderer = createAnsiStreamRenderer()\n setOutputHtml(renderer.render(raw))\n }\n const poll = async () => {\n try {\n const result = await shellStore.output(props.instanceId, directory, shell.id, cursor)\n if (!active) return\n cursor = result.cursor\n if (result.output) {\n const next = appendShellOutput(raw, result.output)\n raw = next.output\n setOutput(raw)\n setTruncated((current) => current || result.truncated || next.truncated)\n render()\n } else if (result.truncated) {\n setTruncated(true)\n }\n } catch {\n if (!active) return\n setOutput(t(\"backgroundProcessOutputDialog.loadErrorFallback\"))\n } finally {\n if (!active) return\n setLoading(false)\n timer = setTimeout(poll, 1000)\n }\n }\n\n setOutput(\"\")\n setOutputHtml(\"\")\n setAnsiEnabled(false)\n setTruncated(false)\n setLoading(true)\n void poll()\n onCleanup(() => {\n active = false\n if (timer) clearTimeout(timer)\n })\n })\n\n return (\n <Dialog open={props.open} onOpenChange={(open) => !open && props.onClose()} modal>\n <Dialog.Portal>\n <Dialog.Overlay class=\"modal-overlay\" />\n <div class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <Dialog.Content class=\"modal-surface flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden\">\n <div class=\"window-header\">\n <div class=\"min-w-0 flex-1\">\n <Dialog.Title class=\"window-title\">{t(\"backgroundProcessOutputDialog.title\")}</Dialog.Title>\n <span class=\"block truncate text-xs text-secondary\" title={props.shell?.command}>{props.shell?.command}</span>\n </div>\n <button type=\"button\" class=\"button-tertiary shrink-0\" onClick={props.onClose}>\n {t(\"backgroundProcessOutputDialog.actions.close\")}\n </button>\n </div>\n <div class=\"window-body\">\n <Show when={loading()}><p class=\"text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.loading\")}</p></Show>\n <Show when={truncated()}><p class=\"mb-2 text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.truncatedNotice\")}</p></Show>\n <Show when={!loading()}>\n <pre\n class=\"border border-base bg-surface-secondary p-4 font-mono text-xs text-primary whitespace-pre-wrap break-all\"\n innerHTML={ansiEnabled() ? outputHtml() : undefined}\n >{ansiEnabled() ? undefined : output()}</pre>\n </Show>\n </div>\n </Dialog.Content>\n </div>\n </Dialog.Portal>\n </Dialog>\n )\n}\n","import { For, Show, createEffect, createMemo, createSignal, on, type Accessor, type Component } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\nimport type { ToolState } from \"../../../../../types/tool-state\"\nimport {\n DragDropProvider,\n DragDropSensors,\n SortableProvider,\n closestCenter,\n createSortable,\n type DragEvent as SolidDndDragEvent,\n} from \"@thisbeyond/solid-dnd\"\nimport { Accordion } from \"@kobalte/core\"\nimport { Tooltip } from \"@kobalte/core/tooltip\"\nimport Switch from \"@suid/material/Switch\"\n\nimport { ChevronRight, GripVertical, Info, TerminalSquare, Trash2, XOctagon } from \"lucide-solid\"\n\nimport type { Instance } from \"../../../../../types/instance\"\nimport type { Session } from \"../../../../../types/session\"\n\nimport ContextUsagePanel from \"../../../../session/context-usage-panel\"\nimport ProviderUsagePanel from \"../../../../session/provider-usage-panel\"\nimport { TodoListView } from \"../../../../tool-call/renderers/todo\"\nimport InstanceServiceStatus from \"../../../../instance-service-status\"\nimport { togglePermissionAutoAcceptForSession } from \"../../../../../stores/instances\"\nimport { isPermissionAutoAcceptEnabled } from \"../../../../../stores/permission-auto-accept\"\nimport { applyRightPanelItemCustomization, type RightPanelCustomization, type RightPanelSectionModule } from \"../registry\"\nimport { createCoreStatusSectionManifest } from \"../core-plugin\"\nimport { shellStore } from \"../../../../../stores/shells\"\nimport { showConfirmDialog } from \"../../../../../stores/alerts\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { ShellOutputDialog } from \"../../../../shell-output-dialog\"\n\ninterface StatusTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n instanceId: string\n instance: Instance\n\n activeSessionId: Accessor<string | null>\n activeSession: Accessor<Session | null>\n\n latestTodoState: Accessor<ToolState | null>\n\n expandedItems: Accessor<string[]>\n onExpandedItemsChange: (values: string[]) => void\n customization: Accessor<RightPanelCustomization>\n onCustomizationChange: (updater: (current: RightPanelCustomization) => RightPanelCustomization) => void\n extraSections?: readonly RightPanelSectionModule[]\n}\n\ninterface SortableStatusSectionProps {\n section: RightPanelSectionModule\n expanded: boolean\n t: (key: string, vars?: Record<string, any>) => string\n}\n\nconst SortableStatusSection: Component<SortableStatusSectionProps> = (props) => {\n const sortable = createSortable(props.section.id)\n return (\n <div ref={sortable} class={`right-panel-section-draggable ${sortable.isActiveDraggable ? \"right-panel-section-draggable-active\" : \"\"}`}>\n <Accordion.Item value={props.section.id} class=\"right-panel-accordion-item\">\n <Accordion.Header class=\"right-panel-accordion-header-row\">\n <Accordion.Trigger class=\"right-panel-accordion-trigger\">\n <span class=\"section-left\">\n <ChevronRight class=\"right-panel-accordion-chevron disclosure-chevron\" />\n <span class=\"section-label\">{props.t(props.section.labelKey)}</span>\n </span>\n </Accordion.Trigger>\n <Tooltip openDelay={200} gutter={4} placement=\"top\">\n <Tooltip.Trigger as=\"button\" type=\"button\" class=\"section-info-trigger\" aria-label={props.t(props.section.tooltipKey)}>\n <Info class=\"section-info-icon\" />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content class=\"section-info-tooltip\">{props.t(props.section.tooltipKey)}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip>\n <GripVertical class=\"right-panel-section-grip\" aria-hidden=\"true\" />\n </Accordion.Header>\n <Accordion.Content class=\"right-panel-accordion-content\">{props.section.render()}</Accordion.Content>\n </Accordion.Item>\n </div>\n )\n}\n\nconst StatusTab: Component<StatusTabProps> = (props) => {\n const isSectionExpanded = (id: string) => props.expandedItems().includes(id)\n const shellDirectory = createMemo(() => props.activeSession()?.location.directory ?? props.instance.folder)\n const shellState = createMemo(() => shellStore.getState(props.instanceId, shellDirectory()))\n const [outputShell, setOutputShell] = createSignal<ShellInfo | null>(null)\n\n createEffect(on(\n () => [props.instanceId, shellDirectory()] as const,\n ([instanceId, directory]) => void shellStore.load(instanceId, directory),\n ))\n\n const renderYoloModeSection = () => {\n const session = props.activeSession()\n if (!session) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.yoloMode.noSessionSelected\")}</span>\n </div>\n )\n }\n\n return (\n <div class=\"flex items-center justify-between gap-2 border border-base bg-surface-secondary px-3 py-2\">\n <p class=\"min-w-0 text-xs leading-5 text-secondary\">{props.t(\"instanceShell.yoloMode.description\")}</p>\n <div class=\"-mr-2 shrink-0\">\n <Switch\n checked={isPermissionAutoAcceptEnabled(props.instanceId, session.id)}\n size=\"small\"\n sx={{\n \"& .MuiSwitch-switchBase.Mui-checked\": { color: \"var(--session-yolo-accent)\" },\n \"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track\": { backgroundColor: \"var(--session-yolo-accent)\" },\n }}\n inputProps={{ \"aria-label\": props.t(\"instanceShell.yoloMode.title\") }}\n onChange={() => togglePermissionAutoAcceptForSession(props.instanceId, session.id)}\n />\n </div>\n </div>\n )\n }\n\n const renderPlanSectionContent = () => {\n const sessionId = props.activeSessionId()\n if (!sessionId || sessionId === \"info\") {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.noSessionSelected\")}</span>\n </div>\n )\n }\n const todoState = props.latestTodoState()\n if (!todoState) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.empty\")}</span>\n </div>\n )\n }\n return <TodoListView state={todoState} emptyLabel={props.t(\"instanceShell.plan.empty\")} showStatusLabel={false} />\n }\n\n const removeShell = async (shellId: string, command: string, running: boolean) => {\n const confirmed = await showConfirmDialog(\n props.t(\"instanceShell.backgroundProcesses.remove.message\", { title: command }),\n {\n title: props.t(\"instanceShell.backgroundProcesses.remove.title\"),\n confirmLabel: props.t(running\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\"),\n },\n )\n if (confirmed && !await shellStore.remove(props.instanceId, shellDirectory(), shellId)) {\n showToastNotification({ message: props.t(\"instanceShell.backgroundProcesses.error\"), variant: \"error\" })\n }\n }\n\n const renderBackgroundProcesses = () => (\n <Show\n when={!shellState().failed}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.error\")}</span></div>}\n >\n <Show\n when={!shellState().loading || shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.loading\")}</span></div>}\n >\n <Show\n when={shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.empty\")}</span></div>}\n >\n <div class=\"flex flex-col gap-1\">\n <For each={shellState().items}>\n {(shell) => {\n const running = () => shell.status === \"running\"\n return (\n <article class=\"status-process-card\">\n <div class=\"flex items-start justify-between gap-2\">\n <div class=\"min-w-0 flex-1\">\n <h4 class=\"truncate text-xs font-medium text-primary\" title={shell.command}>{shell.command}</h4>\n <code class=\"mt-1 block truncate text-xs text-secondary\" title={shell.shell}>{shell.shell}</code>\n </div>\n </div>\n <div class=\"mt-1 flex flex-wrap gap-x-2 gap-y-1 text-xs text-tertiary\">\n <span>{props.t(`instanceShell.backgroundProcesses.status.${shell.status}`)}</span>\n <Show when={shell.pid !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.pid\", { pid: shell.pid })}</span>\n </Show>\n <Show when={shell.exit !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.exitCode\", { code: shell.exit })}</span>\n </Show>\n </div>\n <div class=\"mt-1 truncate text-xs text-tertiary\" title={shell.cwd}>{shell.cwd}</div>\n <div class=\"status-process-actions\">\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n onClick={() => setOutputShell(shell)}\n >\n <TerminalSquare class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n {props.t(\"instanceShell.backgroundProcesses.actions.output\")}\n </button>\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n disabled={shellState().loading}\n onClick={() => void removeShell(shell.id, shell.command, running())}\n >\n <Show when={running()} fallback={<Trash2 class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}>\n <XOctagon class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n </Show>\n {props.t(running()\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\")}\n </button>\n </div>\n </article>\n )\n }}\n </For>\n </div>\n </Show>\n </Show>\n </Show>\n )\n\n const renderProviderUsage = () => {\n const session = props.activeSession()\n if (!session) {\n return <div class=\"right-panel-empty-text\">{props.t(\"providerUsage.noSession\")}</div>\n }\n return (\n <div class=\"border border-base bg-surface-secondary px-3 py-2\">\n <ProviderUsagePanel providerId={session.model.providerId} modelId={session.model.modelId} />\n </div>\n )\n }\n\n const allStatusSections = createMemo<RightPanelSectionModule[]>(() => {\n const sections = createCoreStatusSectionManifest({\n renderYoloModeSection,\n renderProviderUsage,\n renderPlanSectionContent,\n renderBackgroundProcesses,\n renderMcpStatus: () => <InstanceServiceStatus initialInstance={props.instance} sections={[\"mcp\"]} showSectionHeadings={false} class=\"space-y-2\" />,\n renderPluginStatus: () => (\n <InstanceServiceStatus initialInstance={props.instance} sections={[\"plugins\"]} showSectionHeadings={false} class=\"space-y-2\" />\n ),\n }).statusSections ?? []\n\n return [...sections, ...(props.extraSections ?? [])]\n })\n const statusSections = createMemo<RightPanelSectionModule[]>(() =>\n applyRightPanelItemCustomization(\n allStatusSections(),\n props.customization().statusSectionOrder,\n props.customization().hiddenStatusSectionIds,\n ),\n )\n\n const moveSection = (sourceId: string, targetId: string) => {\n if (!sourceId || sourceId === targetId) return\n const ids = statusSections().map((section) => section.id)\n const sourceIndex = ids.indexOf(sourceId)\n const targetIndex = ids.indexOf(targetId)\n if (sourceIndex === -1 || targetIndex === -1) return\n const next = [...ids]\n const [moved] = next.splice(sourceIndex, 1)\n next.splice(targetIndex, 0, moved)\n props.onCustomizationChange((current) => ({ ...current, statusSectionOrder: next }))\n }\n\n const handleSectionDragEnd = ({ draggable, droppable }: SolidDndDragEvent) => {\n if (!droppable) return\n moveSection(String(draggable.id), String(droppable.id))\n }\n\n return (\n <div class=\"status-tab-container\">\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} class=\"status-tab-context-panel\" />\n </Show>\n\n <Accordion.Root\n class=\"right-panel-accordion\"\n collapsible\n multiple\n value={props.expandedItems()}\n onChange={props.onExpandedItemsChange}\n >\n <DragDropProvider collisionDetector={closestCenter} onDragEnd={handleSectionDragEnd}>\n <DragDropSensors>\n <SortableProvider ids={statusSections().map((section) => section.id)}>\n <For each={statusSections()}>\n {(section) => <SortableStatusSection section={section} expanded={isSectionExpanded(section.id)} t={props.t} />}\n </For>\n </SortableProvider>\n </DragDropSensors>\n </DragDropProvider>\n </Accordion.Root>\n <ShellOutputDialog\n open={Boolean(outputShell())}\n instanceId={props.instanceId}\n directory={shellDirectory()}\n shell={outputShell()}\n onClose={() => setOutputShell(null)}\n />\n </div>\n )\n}\n\nexport default StatusTab\n"],"names":["iconNode","cx","cy","r","key","GripVertical","props","_$createComponent","Icon","_$mergeProps","name","points","d","XOctagon","tooltip_exports","__export","Arrow","PopperArrow","Content","TooltipContent","Portal","TooltipPortal","Root","TooltipRoot","Tooltip","Trigger","TooltipTrigger","useTooltipContext","TooltipContext","createContext","context","useContext","Error","mergedProps","mergeDefaultProps","id","generateId","local","others","splitProps","createEffect","onCleanup","registerContentId","Show","when","contentPresent","children","Popper","Positioner","DismissableLayer","ref","r$","_ref$","mergeRefs","el","setContentRef","role","disableOutsidePointerEvents","style","combineStyle","position","onFocusOutside","e","preventDefault","onDismiss","hideTooltip","dataset","Show2","getTooltipSafeArea","placement","anchorEl","floatingEl","basePlacement","split","anchorRect","getBoundingClientRect","floatingRect","polygon","anchorCenterX","left","width","anchorCenterY","top","height","push","bottom","right","tooltips","tooltipsCounter","globalWarmedUp","globalWarmUpTimeout","globalCoolDownTimeout","globalSkipDelayTimeout","defaultId","createUniqueId","tooltipId","mergeDefaultProps2","openDelay","closeDelay","skipDelayDuration","splitProps2","closeTimeoutId","contentId","setContentId","createSignal","triggerRef","setTriggerRef","contentRef","currentPlacement","setCurrentPlacement","disclosureState","createDisclosureState","open","defaultOpen","onOpenChange","isOpen","present","createPresence","show","forceMount","element","ensureTooltipEntry","closeOpenTooltips","hideTooltipId","immediate","window","clearTimeout","close","setTimeout","showTooltip","warmupTooltip","openTooltip","cancelOpening","cancelClosing","isTargetOnTooltip","target","contains","getPolygonSafeArea","triggerEl","contentEl","onHoverOutside","event","ignoreSafeArea","isPointInPolygon","getEventPoint","createEffect2","doc","getDocument","addEventListener","onCleanup2","removeEventListener","trigger","handleScroll","win","getWindow","capture","createMemo","isDisabled","disabled","triggerOnFocusOnly","createGenerateId","createRegisterId","Provider","value","anchorRef","onCurrentPlacementChange","splitProps3","isPointerDown","isHovered","isFocused","handlePointerUp","handleShow","handleHide","onPointerEnter","callHandler","pointerType","defaultPrevented","onPointerLeave","onPointerDown","getDocument2","once","onClick","onFocus","onBlur","relatedTarget","onCleanup3","Polymorphic","as","_ref$2","mergeRefs2","_$memo","Object","assign","collapsible_exports","Collapsible","CollapsibleContent","CollapsibleRoot","CollapsibleTrigger","useCollapsibleContext","CollapsibleContext","setRef","shouldMount","setHeight","setWidth","isMountAnimationPrevented","onMount","raf","requestAnimationFrame","cancelAnimationFrame","on","transitionDuration","animationName","rect","defer","createSignal2","toggle","ButtonRoot","accordion_exports","Accordion","AccordionContent","Header","AccordionHeader","Item","AccordionItem","AccordionRoot","AccordionTrigger","useAccordionContext","AccordionItemContext","useAccordionItemContext","itemContext","triggerId","AccordionContext","createContext2","useContext2","accordionContext","setTriggerId","selectionManager","listState","isExpanded","isSelected","registerTriggerId","createUniqueId2","mergeDefaultProps3","multiple","collapsible","shouldFocusWrap","items","setItems","DomCollectionProvider","createDomCollection","onItemsChange","createListState","selectedKeys","defaultSelectedKeys","defaultValue","onSelectionChange","onChange","Array","from","disallowEmptySelection","selectionMode","dataSource","setFocusedKey","selectableList","createSelectableList","collection","disallowTypeAhead","allowsTabNavigation","createGenerateId2","onKeyDown","composeEventHandlers","onMouseDown","onFocusIn","onFocusOut","collapsibleContext","mergeDefaultProps4","splitProps4","createDomCollectionItem","getItem","type","textValue","selectableItem","createSelectableItem","shouldSelectOnPressUp","includes","dataKey","composeEventHandlers2","onPointerUp","ContextUsagePanel","t","useI18n","preferences","useConfig","showUsage","showUsageMetrics","info","getSessionInfo","instanceId","sessionId","cost","contextWindow","isSubscriptionModel","inputTokens","outputTokens","reasoningTokens","actualUsageTokens","modelOutputLimit","contextAvailableTokens","getChildSessions","hasChildren","length","threadTotals","getThreadTotals","totalCostDisplay","toFixed","totalInputTokens","totalOutputTokens","totalReasoningTokens","costValue","costDisplay","_el$","_tmpl$2","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_$insert","formatTokenTotal","_el$10","_tmpl$","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_$effect","_$className","class","REFRESH_INTERVAL_MS","usageCache","Map","shouldShowProviderUsageWindow","label","showCreditBalance","ProviderUsagePanel","source","providerId","trim","modelId","initialSource","usage","setUsage","get","undefined","requestId","refreshUsage","clear","currentRequestId","response","serverApi","fetchProviderUsage","set","updatedAt","Date","now","current","cached","refreshTimer","setInterval","clearInterval","entries","windows","displayedEntries","filter","showProviderUsageCreditBalance","windowLabel","weekly","daily","monthly","credits","credits_balance","billing_cycle","session","premium","chat","completions","displayValue","valueLabel","usedPercent","percent","Math","round","resetLabel","resetAt","date","Number","isFinite","getTime","time","toLocaleString","dateStyle","timeStyle","barColor","fallback","_tmpl$3","data","supported","configured","ok","_tmpl$4","For","each","_tmpl$6","reset","_tmpl$7","_tmpl$8","_tmpl$5","_p$","_v$","max","min","_v$2","_v$3","_v$4","_$setStyleProperty","a","_$setAttribute","o","providerName","MAX_SHELL_OUTPUT_DISPLAY_CHARS","appendShellOutput","chunk","output","start","escape","end","controlSequence","index","code","bell","stringTerminator","cancel","terminators","EMPTY_STATE","SHELL_EVENTS","createShellApi","client","location","directory","shellId","cursor","createShellStore","apiForInstance","states","setStates","generations","setState","stateKey","state","readState","untrack","load","generation","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","normalize","normalized","shellStore","getRootClient","serverEvents","ShellOutputDialog","setOutput","outputHtml","setOutputHtml","ansiEnabled","setAnsiEnabled","truncated","setTruncated","loading","setLoading","shell","active","raw","timer","render","ansi","hasAnsi","renderer","createAnsiStreamRenderer","poll","result","next","Dialog","onClose","modal","Overlay","Title","command","_$addEventListener","_c$","innerHTML","_$delegateEvents","SortableStatusSection","sortable","createSortable","section","_$use","ChevronRight","labelKey","gutter","tooltipKey","Info","isActiveDraggable","StatusTab","isSectionExpanded","expandedItems","shellDirectory","activeSession","instance","folder","shellState","getState","outputShell","setOutputShell","renderYoloModeSection","Switch","checked","isPermissionAutoAcceptEnabled","size","sx","color","backgroundColor","inputProps","togglePermissionAutoAcceptForSession","renderPlanSectionContent","activeSessionId","todoState","latestTodoState","TodoListView","emptyLabel","showStatusLabel","removeShell","running","showConfirmDialog","title","confirmLabel","remove","showToastNotification","message","variant","renderBackgroundProcesses","failed","status","_el$22","_el$23","_el$24","_el$27","_el$28","_el$29","_el$30","pid","_el$25","exit","_el$26","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$32","_tmpl$9","model","_el$31","allStatusSections","createCoreStatusSectionManifest","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","map","sourceIndex","indexOf","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","String","_el$33","_tmpl$0","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider","expanded","Boolean"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}