tarsk 0.5.82 → 0.5.83

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 (119) hide show
  1. package/dist/index.js +1115 -236
  2. package/dist/public/assets/{account-view-CC_IRw14.js → account-view-CJyN7iRT.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-CVooKafv.js → alert-dialog-Dq9tEk9t.js} +1 -1
  4. package/dist/public/assets/api-CX0sFbpL.js +2 -0
  5. package/dist/public/assets/{async-error-boundary-Did-c5sq.js → async-error-boundary-BS6v_PGo.js} +1 -1
  6. package/dist/public/assets/browser-tab-Cj4ztL1i.js +12 -0
  7. package/dist/public/assets/{button-DVIjvd2G.js → button-zYjzm__g.js} +1 -1
  8. package/dist/public/assets/{card-DaHPdrGh.js → card-CpchkvHM.js} +1 -1
  9. package/dist/public/assets/chat-dock-context-DQmDS2i8.js +1 -0
  10. package/dist/public/assets/{commit-dialog-29_bboof.js → commit-dialog-D6hchKSJ.js} +1 -1
  11. package/dist/public/assets/{commit-error-dialog-ASd71LX_.js → commit-error-dialog-f7e8Qzpk.js} +1 -1
  12. package/dist/public/assets/{commit-method-fields-Bylj8VjO.js → commit-method-fields-6Ag-XY8a.js} +1 -1
  13. package/dist/public/assets/conversation-history-view-Dd6vfz4F.js +1 -0
  14. package/dist/public/assets/create-project-dialog-DkxC6wM-.js +2 -0
  15. package/dist/public/assets/{create-repo-dialog-DKcWU21A.js → create-repo-dialog-Y8dcOitj.js} +1 -1
  16. package/dist/public/assets/{delete-confirm-dialog-C9CQzpYL.js → delete-confirm-dialog-DvJ5VuAy.js} +1 -1
  17. package/dist/public/assets/diff-view-L1jxq-Ig.js +4 -0
  18. package/dist/public/assets/{dist-VhqWx9-S.js → dist-B-I0i8QZ.js} +1 -1
  19. package/dist/public/assets/{dist-GRNTsriM.js → dist-B6u0s1jB.js} +1 -1
  20. package/dist/public/assets/{dist-BYYtqVYm.js → dist-BJaGHz0F.js} +1 -1
  21. package/dist/public/assets/{dist-DqKWH8sc.js → dist-BhdiICUV.js} +1 -1
  22. package/dist/public/assets/{dist-BVQgAd-x.js → dist-CPtOAqwP.js} +1 -1
  23. package/dist/public/assets/{dist-BI_HNW9c.js → dist-CX9ud_WC.js} +1 -1
  24. package/dist/public/assets/dist-FJzwWcMv.js +2 -0
  25. package/dist/public/assets/{dist-BKsOX8kk.js → dist-lnsB93_y.js} +1 -1
  26. package/dist/public/assets/{es2015-CxOm1WGv.js → es2015-D67vh4rt.js} +1 -1
  27. package/dist/public/assets/{explorer-monaco-editor-DMvtDzfX.js → explorer-monaco-editor-C9uTsYgh.js} +1 -1
  28. package/dist/public/assets/explorer-tab-view-BD924tmt.js +2 -0
  29. package/dist/public/assets/explorer-tree-Cn6lp8jD.js +1 -0
  30. package/dist/public/assets/explorer-view-5wUektaN.js +76 -0
  31. package/dist/public/assets/{git-history-dialog-C3tayM-K.js → git-history-dialog-CgH_0Ho0.js} +1 -1
  32. package/dist/public/assets/index-DCWejG57.css +1 -0
  33. package/dist/public/assets/index-DpDgcOE9.js +114 -0
  34. package/dist/public/assets/{lucide-react-C-dX1rVz.js → lucide-react-CMzSV2MP.js} +1 -1
  35. package/dist/public/assets/{model-list-controls-Yu77SyTe.js → model-list-controls-ueD5Yk6B.js} +1 -1
  36. package/dist/public/assets/onboarding-dialog-pDK_d92N.js +1 -0
  37. package/dist/public/assets/{pill-tabs-B_YP0wlG.js → pill-tabs-CVcpOO4f.js} +1 -1
  38. package/dist/public/assets/{progress-indicator-QgGbLfer.js → progress-indicator-_fEKurQg.js} +1 -1
  39. package/dist/public/assets/project-coding-view-CCT83rVv.js +1 -0
  40. package/dist/public/assets/{project-danger-zone-view-y2DDNkUE.js → project-danger-zone-view-CtOeSKHP.js} +1 -1
  41. package/dist/public/assets/{project-env-vars-view-BAiGaui1.js → project-env-vars-view-D8zFtC0r.js} +1 -1
  42. package/dist/public/assets/project-model-aliases-view-t1nijA2C.js +1 -0
  43. package/dist/public/assets/project-settings-view-C4kg3nDX.js +1 -0
  44. package/dist/public/assets/project-tools-view-DrwiTff5.js +1 -0
  45. package/dist/public/assets/providers-list-view-DXRbYpKr.js +1 -0
  46. package/dist/public/assets/pull-request-dialog-D4JEkCWC.js +1 -0
  47. package/dist/public/assets/{pull-with-changes-dialog-DqH8eFaG.js → pull-with-changes-dialog-Mrdm4wbB.js} +1 -1
  48. package/dist/public/assets/{push-before-pr-dialog-CxdsKSp0.js → push-before-pr-dialog-Ce8MMKT-.js} +1 -1
  49. package/dist/public/assets/query-keys-C2vEjHA1.js +1 -0
  50. package/dist/public/assets/{scroll-area-DnAXfBMQ.js → scroll-area-BTpvIsIG.js} +1 -1
  51. package/dist/public/assets/settings-general-tabs-view-Cg4sWryU.js +2 -0
  52. package/dist/public/assets/settings-general-view-Cl1qPgIX.js +1 -0
  53. package/dist/public/assets/{settings-list-CvCGue_y.js → settings-list-DajPoFxt.js} +1 -1
  54. package/dist/public/assets/settings-logs-view-C2SUOaIF.js +5 -0
  55. package/dist/public/assets/settings-mcp-servers-view-BuGFdY9u.js +5 -0
  56. package/dist/public/assets/settings-models-view-Dh8eZR6v.js +1 -0
  57. package/dist/public/assets/settings-plugins-view-CJvYXOb6.js +2 -0
  58. package/dist/public/assets/settings-providers-view-CxZnVxuu.js +2 -0
  59. package/dist/public/assets/settings-setup-view-0NvbMts_.js +2 -0
  60. package/dist/public/assets/settings-skills-view-DT6Ldvfn.js +2 -0
  61. package/dist/public/assets/{settings-slack-view-xWc3HZl5.js → settings-slack-view-DH7r2apv.js} +1 -1
  62. package/dist/public/assets/settings-slash-commands-view-DxlXk7eT.js +1 -0
  63. package/dist/public/assets/{settings-statistics-view-BhrL3BwB.js → settings-statistics-view-mlcoR26Q.js} +1 -1
  64. package/dist/public/assets/settings-storage-view-DuN42zRw.js +1 -0
  65. package/dist/public/assets/{settings-subagents-view-C1WIOO6x.js → settings-subagents-view-C1r3Jtpe.js} +2 -2
  66. package/dist/public/assets/{settings-system-prompt-view-b3IaVlp1.js → settings-system-prompt-view-DcbUbDfa.js} +1 -1
  67. package/dist/public/assets/{settings-tab-bar-cx4BrJIY.js → settings-tab-bar-T8v2_Dfk.js} +1 -1
  68. package/dist/public/assets/settings-view-Bv5QDh0H.js +2 -0
  69. package/dist/public/assets/{slug-utils-D5qfm2sn.js → slug-utils-DhQjuU2J.js} +1 -1
  70. package/dist/public/assets/{store-CEYCdhjW.js → store-DCnnNgwq.js} +3 -3
  71. package/dist/public/assets/{table-DHvBIex4.js → table-DuD2DtkR.js} +1 -1
  72. package/dist/public/assets/tasks-view-D_TwmLgM.js +1 -0
  73. package/dist/public/assets/{terminal-panel-2T2Kc4CN.js → terminal-panel-BmphDRj0.js} +3 -3
  74. package/dist/public/assets/{toggle-group-DaT4acSz.js → toggle-group-D0gDKZ9x.js} +1 -1
  75. package/dist/public/assets/{tooltip-Cqmpv-M5.js → tooltip-6qlOE6WT.js} +1 -1
  76. package/dist/public/assets/{use-active-dock-panel-instance-CuYvC5Us.js → use-active-dock-panel-instance-CDcYJhbD.js} +1 -1
  77. package/dist/public/assets/{use-git-check-CmtXehtR.js → use-git-check-CZxYYnQ8.js} +1 -1
  78. package/dist/public/assets/{use-installed-ai-files-Cdzy29ie.js → use-installed-ai-files-uH9h6W5v.js} +1 -1
  79. package/dist/public/assets/useBaseQuery-DqLwB2Sq.js +1 -0
  80. package/dist/public/assets/{utils-CWTBjUlE.js → utils-uGptTPGm.js} +1 -1
  81. package/dist/public/assets/{web-bYOmn95I.js → web-B5i03FJP.js} +1 -1
  82. package/dist/public/assets/{web-CsChMX5V.js → web-CutQ8Xsm.js} +1 -1
  83. package/dist/public/assets/{web-BlBW8SWJ.js → web-D8PJDFGq.js} +1 -1
  84. package/dist/public/assets/{web-CIGP6pa8.js → web-Us0pibUb.js} +1 -1
  85. package/dist/public/index.html +23 -22
  86. package/package.json +1 -1
  87. package/dist/public/assets/api-IMkL19mR.js +0 -2
  88. package/dist/public/assets/browser-tab-CjdUnNr2.js +0 -12
  89. package/dist/public/assets/chat-dock-context-BA8EIToZ.js +0 -1
  90. package/dist/public/assets/conversation-history-view-CXHmQEA6.js +0 -1
  91. package/dist/public/assets/create-project-dialog-CtEUqqAd.js +0 -2
  92. package/dist/public/assets/diff-view-eYW3Jliv.js +0 -4
  93. package/dist/public/assets/dist-Ch137qdo.js +0 -2
  94. package/dist/public/assets/explorer-tab-view-CPN5epzi.js +0 -2
  95. package/dist/public/assets/explorer-tree-EjBLSWxV.js +0 -1
  96. package/dist/public/assets/explorer-view-DZh1FGrc.js +0 -76
  97. package/dist/public/assets/index-C3E_66vw.js +0 -114
  98. package/dist/public/assets/index-D42A6A6A.css +0 -1
  99. package/dist/public/assets/onboarding-dialog-C3vpTe8y.js +0 -1
  100. package/dist/public/assets/project-coding-view-DXtPNlL1.js +0 -1
  101. package/dist/public/assets/project-model-aliases-view-z5KtzKTK.js +0 -1
  102. package/dist/public/assets/project-settings-view-CvNtaVMG.js +0 -1
  103. package/dist/public/assets/project-tools-view-D3j7nVpp.js +0 -1
  104. package/dist/public/assets/providers-list-view-BY11UIaf.js +0 -1
  105. package/dist/public/assets/pull-request-dialog-D7Tc-DZW.js +0 -1
  106. package/dist/public/assets/settings-general-tabs-view-YngdB7te.js +0 -2
  107. package/dist/public/assets/settings-general-view-BLovSe8Y.js +0 -1
  108. package/dist/public/assets/settings-logs-view-B2vFqetG.js +0 -5
  109. package/dist/public/assets/settings-mcp-servers-view-BiWEZyG-.js +0 -5
  110. package/dist/public/assets/settings-models-view-B7STNfBy.js +0 -1
  111. package/dist/public/assets/settings-plugins-view-D8wypO3V.js +0 -2
  112. package/dist/public/assets/settings-providers-view-C5x9gCg7.js +0 -2
  113. package/dist/public/assets/settings-setup-view-VuWyf9Ey.js +0 -2
  114. package/dist/public/assets/settings-skills-view-cu2mzI28.js +0 -2
  115. package/dist/public/assets/settings-slash-commands-view-C9slbf4z.js +0 -1
  116. package/dist/public/assets/settings-storage-view-y4GyGxD-.js +0 -1
  117. package/dist/public/assets/settings-view-C_ggbCIB.js +0 -2
  118. package/dist/public/assets/tasks-view-DFBi6JaW.js +0 -1
  119. package/dist/public/assets/useBaseQuery-D6c39Xb1.js +0 -1
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{W as i,Wt as a,i as o,s}from"./dist-FJzwWcMv.js";import{s as c,t as l}from"./utils-uGptTPGm.js";import{$ as u,Dn as d,P as f,_ as p,_n as m,dn as h,dt as g,et as _,fn as v,g as y,ln as b,rn as x,vt as S}from"./lucide-react-CMzSV2MP.js";import{t as C}from"./button-zYjzm__g.js";import{g as w,h as T,t as E,u as D}from"./dist-BhdiICUV.js";import{o as O}from"./dist-lnsB93_y.js";import{i as k,n as A,t as j}from"./tooltip-6qlOE6WT.js";import{Zi as M,Zr as ee,et as N,ji as P,qr as te,tr as F}from"./api-CX0sFbpL.js";import{t as ne}from"./dist-BJaGHz0F.js";import{t as re}from"./dist-OixawqbU.js";import{i as ie,r as I}from"./scroll-area-BTpvIsIG.js";import{t as ae}from"./use-toast-xpb5jNtN.js";import{t as oe}from"./dist-CSssbxDI.js";import{Ar as se,At as L,Dr as ce,Er as le,F as ue,Ft as R,I as de,L as fe,Mt as pe,Or as me,Ot as he,Tr as ge,cr as _e,ct as ve,jr as ye,k as be,lt as xe,n as Se,r as Ce,sr as we,t as Te,ut as z,wr as B,wt as V,xt as H}from"./index-DpDgcOE9.js";import{n as U,t as W}from"./toggle-group-D0gDKZ9x.js";import{n as Ee,t as De}from"./commit-method-fields-6Ag-XY8a.js";import{n as G,r as Oe,t as ke}from"./use-git-check-CZxYYnQ8.js";import{t as Ae}from"./use-settings-page-loading-CpaBd260.js";var K=t(),q=`flex h-7 w-7 min-h-0 min-w-0 items-center justify-center rounded-full border-0 bg-background p-0 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`,je=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,J=r(),Me=[{value:`light`,label:`Light`,icon:y},{value:`dark`,label:`Dark`,icon:u},{value:`system`,label:`System`,icon:p}];function Ne(e){let t=(0,K.c)(6),{theme:n,onThemeChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>{(e===`light`||e===`dark`||e===`system`)&&r(e)},t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=Me.map(Pe),t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==n?(o=(0,J.jsx)(H,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,J.jsx)(W,{type:`single`,value:n,onValueChange:i,"aria-label":`Appearance`,className:je,children:a})}),t[3]=i,t[4]=n,t[5]=o):o=t[5],o}function Pe(e){let t=e.icon;return(0,J.jsx)(U,{value:e.value,"aria-label":e.label,className:q,children:(0,J.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}var Y=e(n(),1),Fe=[`PageUp`,`PageDown`],Ie=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],Le={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},X=`Slider`,[Z,Re,ze]=ne(X),[Be,Ve]=T(X,[ze]),[He,Q]=Be(X),Ue=Y.forwardRef((e,t)=>{let{name:n,min:r=0,max:i=100,step:a=1,orientation:o=`horizontal`,disabled:s=!1,minStepsBetweenThumbs:c=0,defaultValue:l=[r],value:u,onValueChange:d=()=>{},onValueCommit:f=()=>{},inverted:p=!1,form:m,...h}=e,g=Y.useRef(new Set),_=Y.useRef(0),v=o===`horizontal`?Ke:qe,[y=[],b]=E({prop:u,defaultProp:l,onChange:e=>{[...g.current][_.current]?.focus(),d(e)}}),x=Y.useRef(y);function S(e){D(e,ot(y,e))}function C(e){D(e,_.current)}function T(){let e=x.current[_.current];y[_.current]!==e&&f(y)}function D(e,t,{commit:n}={commit:!1}){let o=dt(a),s=ie(ft(Math.round((e-r)/a)*a+r,o),[r,i]);b((e=[])=>{let r=rt(e,s,t);if(lt(r,c*a)){_.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&f(r),t?r:e}else return e})}return(0,J.jsx)(He,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:_,thumbs:g.current,values:y,orientation:o,form:m,children:(0,J.jsx)(Z.Provider,{scope:e.__scopeSlider,children:(0,J.jsx)(Z.Slot,{scope:e.__scopeSlider,children:(0,J.jsx)(v,{"aria-disabled":s,"data-disabled":s?``:void 0,...h,ref:t,onPointerDown:w(h.onPointerDown,()=>{s||(x.current=y)}),min:r,max:i,inverted:p,onSlideStart:s?void 0:S,onSlideMove:s?void 0:C,onSlideEnd:s?void 0:T,onHomeKeyDown:()=>!s&&D(r,0,{commit:!0}),onEndKeyDown:()=>!s&&D(i,y.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!s){let n=Fe.includes(e.key)||e.shiftKey&&Ie.includes(e.key)?10:1,r=_.current,i=y[r];D(i+a*n*t,r,{commit:!0})}}})})})})});Ue.displayName=X;var[We,Ge]=Be(X,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),Ke=Y.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,p]=Y.useState(null),m=c(t,e=>p(e)),h=Y.useRef(void 0),g=re(i),_=g===`ltr`,v=_&&!a||!_&&a;function y(e){let t=h.current||f.getBoundingClientRect(),i=ut([0,t.width],v?[n,r]:[r,n]);return h.current=t,i(e-t.left)}return(0,J.jsx)(We,{scope:e.__scopeSlider,startEdge:v?`left`:`right`,endEdge:v?`right`:`left`,direction:v?1:-1,size:`width`,children:(0,J.jsx)(Je,{dir:g,"data-orientation":`horizontal`,...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=y(e.clientX);o?.(t)},onSlideMove:e=>{let t=y(e.clientX);s?.(t)},onSlideEnd:()=>{h.current=void 0,l?.()},onStepKeyDown:e=>{let t=Le[v?`from-left`:`from-right`].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),qe=Y.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:a,onSlideMove:o,onSlideEnd:s,onStepKeyDown:l,...u}=e,d=Y.useRef(null),f=c(t,d),p=Y.useRef(void 0),m=!i;function h(e){let t=p.current||d.current.getBoundingClientRect(),i=ut([0,t.height],m?[r,n]:[n,r]);return p.current=t,i(e-t.top)}return(0,J.jsx)(We,{scope:e.__scopeSlider,startEdge:m?`bottom`:`top`,endEdge:m?`top`:`bottom`,size:`height`,direction:m?1:-1,children:(0,J.jsx)(Je,{"data-orientation":`vertical`,...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=h(e.clientY);a?.(t)},onSlideMove:e=>{let t=h(e.clientY);o?.(t)},onSlideEnd:()=>{p.current=void 0,s?.()},onStepKeyDown:e=>{let t=Le[m?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),Je=Y.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=Q(X,n);return(0,J.jsx)(D.span,{...l,ref:t,onKeyDown:w(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(s(e),e.preventDefault()):Fe.concat(Ie).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:w(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:w(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:w(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),Ye=`SliderTrack`,Xe=Y.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=Q(Ye,n);return(0,J.jsx)(D.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});Xe.displayName=Ye;var Ze=`SliderRange`,Qe=Y.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=Q(Ze,n),a=Ge(Ze,n),o=c(t,Y.useRef(null)),s=i.values.length,l=i.values.map(e=>it(e,i.min,i.max)),u=s>1?Math.min(...l):0,d=100-Math.max(...l);return(0,J.jsx)(D.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,ref:o,style:{...e.style,[a.startEdge]:u+`%`,[a.endEdge]:d+`%`}})});Qe.displayName=Ze;var $=`SliderThumb`,$e=Y.forwardRef((e,t)=>{let n=Re(e.__scopeSlider),[r,i]=Y.useState(null),a=c(t,e=>i(e)),o=Y.useMemo(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,J.jsx)(et,{...e,ref:a,index:o})}),et=Y.forwardRef((e,t)=>{let{__scopeSlider:n,index:r,name:i,...a}=e,o=Q($,n),s=Ge($,n),[l,u]=Y.useState(null),d=c(t,e=>u(e)),f=l?o.form||!!l.closest(`form`):!0,p=O(l),m=o.values[r],h=m===void 0?0:it(m,o.min,o.max),g=at(r,o.values.length),_=p?.[s.size],v=_?st(_,h,s.direction):0;return Y.useEffect(()=>{if(l)return o.thumbs.add(l),()=>{o.thumbs.delete(l)}},[l,o.thumbs]),(0,J.jsxs)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[s.startEdge]:`calc(${h}% + ${v}px)`},children:[(0,J.jsx)(Z.ItemSlot,{scope:e.__scopeSlider,children:(0,J.jsx)(D.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":o.min,"aria-valuenow":m,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,tabIndex:o.disabled?void 0:0,...a,ref:d,style:m===void 0?{display:`none`}:e.style,onFocus:w(e.onFocus,()=>{o.valueIndexToChangeRef.current=r})})}),f&&(0,J.jsx)(nt,{name:i??(o.name?o.name+(o.values.length>1?`[]`:``):void 0),form:o.form,value:m},r)]})});$e.displayName=$;var tt=`RadioBubbleInput`,nt=Y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{let i=Y.useRef(null),a=c(i,r),o=oe(t);return Y.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`input`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,J.jsx)(D.input,{style:{display:`none`},...n,ref:a,defaultValue:t})});nt.displayName=tt;function rt(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function it(e,t,n){return ie(100/(n-t)*(e-t),[0,100])}function at(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function ot(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function st(e,t,n){let r=e/2;return(r-ut([0,50],[0,r])(t)*n)*n}function ct(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function lt(e,t){if(t>0){let n=ct(e);return Math.min(...n)>=t}return!0}function ut(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function dt(e){return(String(e).split(`.`)[1]||``).length}function ft(e,t){let n=10**t;return Math.round(e*n)/n}var pt=Ue,mt=Xe,ht=Qe,gt=$e,_t=Y.forwardRef((e,t)=>{let n=(0,K.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,s]=Y.useState(!1),[c,u]=Y.useState(!1),d,f;n[4]===c?(d=n[5],f=n[6]):(d=()=>{if(!c)return;let e=function(){u(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},f=[c],n[4]=c,n[5]=d,n[6]=f),Y.useEffect(d,f);let p;n[7]===a?p=n[8]:(p=(0,J.jsx)(gt,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,onPointerDown:()=>{a!=null&&(u(!0),s(!0))}}),n[7]=a,n[8]=p);let m=p,h;n[9]===r?h=n[10]:(h=l(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=h);let g;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(mt,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,J.jsx)(ht,{className:`absolute h-full bg-primary`})}),n[11]=g):g=n[11];let _;n[12]!==c||n[13]!==o||n[14]!==m||n[15]!==a?(_=a==null?m:(0,J.jsxs)(j,{open:o||c,onOpenChange:s,children:[(0,J.jsx)(k,{asChild:!0,children:m}),(0,J.jsx)(A,{side:`top`,children:a})]}),n[12]=c,n[13]=o,n[14]=m,n[15]=a,n[16]=_):_=n[16];let v;return n[17]!==i||n[18]!==t||n[19]!==h||n[20]!==_?(v=(0,J.jsxs)(pt,{ref:t,className:h,...i,children:[g,_]}),n[17]=i,n[18]=t,n[19]=h,n[20]=_,n[21]=v):v=n[21],v});_t.displayName=pt.displayName;function vt(e){let t=(0,K.c)(16),{scale:n,min:r,max:i,onChange:o}=e,s;t[0]===r?s=t[1]:(s=(0,J.jsxs)(`span`,{className:`${a.bodyMuted} w-8 shrink-0 text-right`,children:[r,`%`]}),t[0]=r,t[1]=s);let c;t[2]===n?c=t[3]:(c=[n],t[2]=n,t[3]=c);let l=`${n}%`,u;t[4]!==i||t[5]!==r||t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,J.jsx)(_t,{value:c,min:r,max:i,step:5,onValueChange:o,"aria-label":`Font size`,valueTooltip:l}),t[4]=i,t[5]=r,t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i?d=t[11]:(d=(0,J.jsxs)(`span`,{className:`${a.bodyMuted} w-9 shrink-0`,children:[i,`%`]}),t[10]=i,t[11]=d);let f;return t[12]!==s||t[13]!==u||t[14]!==d?(f=(0,J.jsx)(H,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,J.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[s,u,d]})}),t[12]=s,t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function yt(e){let t=(0,K.c)(11),{open:n,onOpenChange:r}=e,i;t[0]===n?i=t[1]:(i={enabled:n,pollWhileMissing:!0},t[0]=n,t[1]=i);let a=ke(i),o;t[2]===a?o=t[3]:(o=function(){return a.gitInstalled===null?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(g,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):a.gitInstalled?(0,J.jsx)(G,{version:a.version}):(0,J.jsx)(Oe,{platform:a.platform,plan:a.plan,checking:a.loading,onCheckAgain:()=>void a.check()})},t[2]=a,t[3]=o);let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsxs)(se,{children:[(0,J.jsx)(ye,{children:`Git setup`}),(0,J.jsx)(me,{children:`Git powers version-control features in Tarsk. Install it here if it's missing.`})]}),t[4]=c):c=t[4];let l;t[5]===s?l=t[6]:(l=(0,J.jsxs)(ce,{className:`max-w-lg`,children:[c,(0,J.jsx)(I,{className:`max-h-[60dvh]`,children:s()})]}),t[5]=s,t[6]=l);let u;return t[7]!==r||t[8]!==n||t[9]!==l?(u=(0,J.jsx)(le,{open:n,onOpenChange:r,children:l}),t[7]=r,t[8]=n,t[9]=l,t[10]=u):u=t[10],u}function bt(){let e=(0,K.c)(6),[t,n]=(0,Y.useState)(!1),r;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={pollWhileMissing:!0},e[0]=r):r=e[0],ke(r).gitInstalled!==!1)return null;let i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(V,{title:`Git`,className:`[&>div:first-child]:py-2`,sticky:!1}),e[1]=i):i=e[1];let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(`span`,{className:`${a.bodyMuted} text-right`,children:`Not installed`}),e[2]=o):o=e[2];let s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(pe,{className:`max-w-none pt-0`,children:(0,J.jsx)(L,{children:(0,J.jsx)(H,{title:`Git Installation`,description:`Git powers version-control features in Tarsk, like commits and branch history.`,children:(0,J.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center justify-end gap-3`,children:[o,(0,J.jsx)(C,{variant:`outline`,onClick:()=>n(!0),children:`Setup guide`})]})})})}),e[3]=s):s=e[3];let c;return e[4]===t?c=e[5]:(c=(0,J.jsxs)(R,{className:`shrink-0`,children:[i,s,(0,J.jsx)(yt,{open:t,onOpenChange:n})]}),e[4]=t,e[5]=c),c}function xt(e){let t=(0,K.c)(25),{enabled:n,logPath:r,isEnvConfigured:i,ingestingHost:o,isLoading:s,isSaving:c,onChange:u,onCopyPath:d}=e,f=s||c,p;t[0]!==n||t[1]!==u||t[2]!==f?(p=(0,J.jsx)(k,{asChild:!0,children:(0,J.jsx)(`span`,{className:`inline-flex`,children:(0,J.jsx)(z,{value:n,onChange:u,disabled:f,ariaLabel:`Logging`})})}),t[0]=n,t[1]=u,t[2]=f,t[3]=p):p=t[3];let m=n&&r?`max-w-sm cursor-pointer`:`max-w-sm`,h;t[4]!==n||t[5]!==r||t[6]!==d?(h=n&&r?()=>void d():void 0,t[4]=n,t[5]=r,t[6]=d,t[7]=h):h=t[7];let g;t[8]!==n||t[9]!==r?(g=n&&r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{children:`Click to copy log file path`}),(0,J.jsx)(`p`,{className:l(a.mono,`mt-1 break-all`),children:r})]}):(0,J.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[8]=n,t[9]=r,t[10]=g):g=t[10];let _;t[11]!==m||t[12]!==h||t[13]!==g?(_=(0,J.jsx)(A,{className:m,onClick:h,children:g}),t[11]=m,t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==p||t[16]!==_?(v=(0,J.jsxs)(j,{children:[p,_]}),t[15]=p,t[16]=_,t[17]=v):v=t[17];let y;t[18]!==n||t[19]!==o||t[20]!==i?(y=n&&i&&o?(0,J.jsxs)(`p`,{className:`${a.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at `,(0,J.jsx)(`span`,{className:a.mono,children:o})]}):null,t[18]=n,t[19]=o,t[20]=i,t[21]=y):y=t[21];let b;return t[22]!==v||t[23]!==y?(b=(0,J.jsx)(H,{title:`Logging`,description:`Write verbose application logs to a local file. When Better Stack environment variables are configured, logs are sent there too.`,controlLayout:`row-end`,action:v,children:y}),t[22]=v,t[23]=y,t[24]=b):b=t[24],b}function St(e){let t=(0,K.c)(10),{draftValue:n,defaultTurnCount:r,isLoading:i,isSaving:a,onChange:o,onBlur:s}=e,c=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${r} turns.`,l;t[0]===s?l=t[1]:(l=()=>{s()},t[0]=s,t[1]=l);let u=i||a,d;t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==u?(d=(0,J.jsx)(ge,{type:`number`,min:1,step:1,value:n,onChange:o,onBlur:l,disabled:u,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[2]=n,t[3]=o,t[4]=l,t[5]=u,t[6]=d):d=t[6];let f;return t[7]!==c||t[8]!==d?(f=(0,J.jsx)(H,{title:`Maximum Turn Count`,description:c,controlLayout:`row-end`,action:d}),t[7]=c,t[8]=d,t[9]=f):f=t[9],f}var Ct=Object.defineProperty,wt=Object.getOwnPropertySymbols,Tt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable,Dt=(e,t,n)=>t in e?Ct(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ot=(e,t)=>{for(var n in t||={})Tt.call(t,n)&&Dt(e,n,t[n]);if(wt)for(var n of wt(t))Et.call(t,n)&&Dt(e,n,t[n]);return e},kt=(e,t)=>{var n={};for(var r in e)Tt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&wt)for(var r of wt(e))t.indexOf(r)<0&&Et.call(e,r)&&(n[r]=e[r]);return n},At;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(At||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(At||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(At||={});var jt=At,Mt={L:jt.QrCode.Ecc.LOW,M:jt.QrCode.Ecc.MEDIUM,Q:jt.QrCode.Ecc.QUARTILE,H:jt.QrCode.Ecc.HIGH},Nt=128,Pt=`L`,Ft=`#FFFFFF`,It=`#000000`,Lt=!1,Rt=1,zt=4,Bt=0,Vt=.1;function Ht(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Ut(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Wt(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Vt),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Gt(e,t){return t==null?e?zt:Bt:Math.max(Math.floor(t),0)}function Kt({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=Y.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...jt.QrSegment.makeSegments(t)),e),[]);return jt.QrCode.encodeSegments(r,Mt[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=Y.useMemo(()=>{let e=c.getModules(),t=Gt(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Wt(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var qt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Jt=Y.forwardRef(function(e,t){let n=e,{value:r,size:i=Nt,level:a=Pt,bgColor:o=Ft,fgColor:s=It,includeMargin:c=Lt,minVersion:l=Rt,boostLevel:u,marginSize:d,imageSettings:f}=n,p=kt(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=kt(p,[`style`]),g=f?.src,_=Y.useRef(null),v=Y.useRef(null),y=Y.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=Y.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Kt({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});Y.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Ut(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,qt?t.fill(new Path2D(Ht(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),Y.useEffect(()=>{x(!1)},[g]);let E=Ot({height:i,width:i},m),D=null;return g!=null&&(D=Y.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),Y.createElement(Y.Fragment,null,Y.createElement(`canvas`,Ot({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Jt.displayName=`QRCodeCanvas`;var Yt=Y.forwardRef(function(e,t){let n=e,{value:r,size:i=Nt,level:a=Pt,bgColor:o=Ft,fgColor:s=It,includeMargin:c=Lt,minVersion:l=Rt,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=kt(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Kt({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Ut(g,v.excavation)),b=Y.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Ht(y,h);return Y.createElement(`svg`,Ot({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&Y.createElement(`title`,null,d),Y.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),Y.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Yt.displayName=`QRCodeSVG`;function Xt(e){try{return s(new URL(e).hostname)}catch{return!1}}function Zt(e){let t=(0,K.c)(7),{url:n}=e;if(!n)return null;let r=Xt(n)?`Scan this code with the Tarsk mobile app to open the public address.`:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,i;t[0]===r?i=t[1]:(i=(0,J.jsx)(V,{title:`Mobile App`,description:r,sticky:!1}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=(0,J.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,J.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,J.jsx)(Yt,{value:n,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(R,{className:`shrink-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Qt(e){let t=(0,K.c)(15),{copied:n,label:r,onCopy:i}=e,a;t[0]===i?a=t[1]:(a=function(){i()},t[0]=i,t[1]=a);let o=a,s;t[2]===n?s=t[3]:(s=n?(0,J.jsx)(m,{className:`h-3.5 w-3.5 text-green-500`}):(0,J.jsx)(x,{className:`h-3.5 w-3.5`}),t[2]=n,t[3]=s);let c;t[4]===r?c=t[5]:(c=(0,J.jsx)(`span`,{className:`sr-only`,children:r}),t[4]=r,t[5]=c);let l;t[6]!==o||t[7]!==s||t[8]!==c?(l=(0,J.jsx)(k,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`inline-flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm transition-colors hover:bg-background`,children:[s,c]})}),t[6]=o,t[7]=s,t[8]=c,t[9]=l):l=t[9];let u=n?`Copied!`:`Copy to clipboard`,d;t[10]===u?d=t[11]:(d=(0,J.jsx)(A,{children:u}),t[10]=u,t[11]=d);let f;return t[12]!==l||t[13]!==d?(f=(0,J.jsxs)(j,{children:[l,d]}),t[12]=l,t[13]=d,t[14]=f):f=t[14],f}function $t(e){let t=(0,K.c)(12),{label:n,url:r,copied:i,onCopy:o}=e,s;t[0]===r?s=t[1]:(s=(0,J.jsx)(`span`,{className:a.mono,children:r}),t[0]=r,t[1]=s);let c;t[2]!==n||t[3]!==s?(c=(0,J.jsxs)(`p`,{className:a.bodyMuted,children:[n,` `,s]}),t[2]=n,t[3]=s,t[4]=c):c=t[4];let l=`Copy ${n}`,u;t[5]!==i||t[6]!==o||t[7]!==l?(u=(0,J.jsx)(Qt,{copied:i,label:l,onCopy:o}),t[5]=i,t[6]=o,t[7]=l,t[8]=u):u=t[8];let d;return t[9]!==c||t[10]!==u?(d=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,u]}),t[9]=c,t[10]=u,t[11]=d):d=t[11],d}function en(e){let t=(0,K.c)(27),{bindMode:n,signedIn:r,isLoading:i,isSaving:s,needsRestart:c,tunnelUrl:l,tunnelStatus:u,tunnelError:d,copiedTunnelUrl:f,onChangeMode:p,onCopyTunnelUrl:m}=e,h=!!(l||u===`starting`||d),g;t[0]===p?g=t[1]:(g=function(e){p(e?`network`:`local`)},t[0]=p,t[1]=g);let _=g,v=n===`network`,y=i||s,b=!r,x;t[2]!==_||t[3]!==v||t[4]!==y||t[5]!==b?(x=(0,J.jsx)(z,{value:v,onChange:_,disabled:y,disableOn:b,ariaLabel:`Mobile & Network Access`}),t[2]=_,t[3]=v,t[4]=y,t[5]=b,t[6]=x):x=t[6];let S;t[7]!==n||t[8]!==f||t[9]!==m||t[10]!==h||t[11]!==d||t[12]!==u||t[13]!==l?(S=h?(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2`,children:[l?(0,J.jsx)($t,{label:`Public address:`,url:l,copied:f,onCopy:m}):null,l?(0,J.jsx)(`p`,{className:a.bodyMuted,children:`Anyone who opens this address must sign in as you. Tarsk keeps this address for this computer.`}):null,n===`network`&&!l&&u===`starting`?(0,J.jsx)(`p`,{className:a.bodyMuted,children:`Starting a public address…`}):null,n===`network`&&u===`error`&&d?(0,J.jsx)(`p`,{className:a.bodyMuted,children:d}):null]}):null,t[7]=n,t[8]=f,t[9]=m,t[10]=h,t[11]=d,t[12]=u,t[13]=l,t[14]=S):S=t[14];let C;t[15]!==n||t[16]!==r?(C=!r&&n!==`network`?(0,J.jsx)(`p`,{className:`${a.bodyMuted} mt-3`,children:`Log in before turning this on.`}):null,t[15]=n,t[16]=r,t[17]=C):C=t[17];let w;t[18]!==n||t[19]!==c||t[20]!==l?(w=c?(0,J.jsxs)(`p`,{className:`${a.bodyMuted} mt-3`,children:[`You will need to restart for this setting to take effect.`,n===`network`&&!l?` The public address appears after restart.`:``]}):null,t[18]=n,t[19]=c,t[20]=l,t[21]=w):w=t[21];let T;return t[22]!==x||t[23]!==S||t[24]!==C||t[25]!==w?(T=(0,J.jsxs)(H,{title:`Mobile & Network Access`,description:`Reach Tarsk from a phone or another computer. Tarsk opens a public address at https://<id>.${o} when this is on. You must be signed in.`,controlLayout:`row-end`,action:x,children:[S,C,w]}),t[22]=x,t[23]=S,t[24]=C,t[25]=w,t[26]=T):T=t[26],T}function tn(e){let t=(0,K.c)(16),{opacity:n,min:r,max:i,onChange:o}=e,s;t[0]===r?s=t[1]:(s=(0,J.jsxs)(`span`,{className:`${a.bodyMuted} w-8 shrink-0 text-right`,children:[r,`%`]}),t[0]=r,t[1]=s);let c;t[2]===n?c=t[3]:(c=[n],t[2]=n,t[3]=c);let l=`${n}%`,u;t[4]!==i||t[5]!==r||t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,J.jsx)(_t,{value:c,min:r,max:i,step:5,onValueChange:o,"aria-label":`Panel opacity`,valueTooltip:l}),t[4]=i,t[5]=r,t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i?d=t[11]:(d=(0,J.jsxs)(`span`,{className:`${a.bodyMuted} w-9 shrink-0`,children:[i,`%`]}),t[10]=i,t[11]=d);let f;return t[12]!==s||t[13]!==u||t[14]!==d?(f=(0,J.jsx)(H,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,J.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[s,u,d]})}),t[12]=s,t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function nn(e){let t=(0,K.c)(14),{brandColor:n,onColorChange:r,onReset:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=l(q,`relative cursor-pointer overflow-hidden`),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,J.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:n},"aria-hidden":`true`}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=e=>{r(e.target.value)},t[3]=r,t[4]=s);let c;t[5]!==n||t[6]!==s?(c=(0,J.jsx)(`input`,{type:`color`,value:n,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:s}),t[5]=n,t[6]=s,t[7]=c):c=t[7];let u;t[8]!==o||t[9]!==c?(u=(0,J.jsx)(`div`,{className:je,children:(0,J.jsxs)(`label`,{className:a,children:[o,c]})}),t[8]=o,t[9]=c,t[10]=u):u=t[10];let d;return t[11]!==i||t[12]!==u?(d=(0,J.jsx)(H,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:i,action:u}),t[11]=i,t[12]=u,t[13]=d):d=t[13],d}function rn(e){let t=(0,K.c)(7),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(v,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(`p`,{className:a.body,children:`Failed to open System Settings`}),t[1]=i):i=t[1];let o;t[2]===n?o=t[3]:(o=(0,J.jsx)(`p`,{className:a.bodyMuted,children:n}),t[2]=n,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsxs)(`p`,{className:a.bodyMuted,children:[`Please open it manually:`,` `,(0,J.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,J.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[r,(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,o,s]})]}),t[5]=o,t[6]=c),c}function an(e){let t=(0,K.c)(16),{message:n,isOpeningSettings:r,openSettingsError:i,onOpenSettings:o}=e,s=n??`Tarsk needs Screen & Audio Recording permission to use browser tools.`,c;t[0]===s?c=t[1]:(c=(0,J.jsx)(`p`,{className:a.bodyMuted,children:s}),t[0]=s,t[1]=c);let l;t[2]===o?l=t[3]:(l=()=>void o(),t[2]=o,t[3]=l);let u;t[4]===r?u=t[5]:(u=r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(_,{className:`h-4 w-4 mr-2`}),`Open System Settings`]}),t[4]=r,t[5]=u);let d;t[6]!==r||t[7]!==l||t[8]!==u?(d=(0,J.jsx)(C,{size:`sm`,onClick:l,disabled:r,className:`w-fit`,children:u}),t[6]=r,t[7]=l,t[8]=u,t[9]=d):d=t[9];let f;t[10]===i?f=t[11]:(f=i?(0,J.jsx)(rn,{error:i}):null,t[10]=i,t[11]=f);let p;return t[12]!==c||t[13]!==d||t[14]!==f?(p=(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[c,d,f]}),t[12]=c,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function on(e){let t=(0,K.c)(2),{granted:n}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(h,{className:`h-4 w-4 text-green-500`}),(0,J.jsx)(`span`,{className:l(a.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}),t[0]=e):e=t[0],e}let r;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(b,{className:`h-4 w-4 text-amber-500`}),(0,J.jsx)(`span`,{className:l(a.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),t[1]=r):r=t[1],r}function sn(e){let t=(0,K.c)(24),{status:n,isLoading:r,isOpeningSettings:i,openSettingsError:a,onRefresh:o,onOpenSettings:s}=e;if(!n?.isMacOS)return null;let c;t[0]!==r||t[1]!==n?(c=r?null:(0,J.jsx)(on,{granted:!!n.granted}),t[0]=r,t[1]=n,t[2]=c):c=t[2];let l;t[3]===o?l=t[4]:(l=()=>void o(),t[3]=o,t[4]=l);let u;t[5]===r?u=t[6]:(u=r?(0,J.jsx)(g,{className:`h-3.5 w-3.5 animate-spin`}):(0,J.jsx)(f,{className:`h-3.5 w-3.5`}),t[5]=r,t[6]=u);let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`}),t[7]=d):d=t[7];let p;t[8]!==r||t[9]!==l||t[10]!==u?(p=(0,J.jsxs)(C,{variant:`ghost`,size:`icon-sm`,className:`h-7 w-7 shrink-0 rounded-full border-0 bg-background hover:bg-background hover:text-foreground`,onClick:l,disabled:r,children:[u,d]}),t[8]=r,t[9]=l,t[10]=u,t[11]=p):p=t[11];let m;t[12]!==c||t[13]!==p?(m=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,p]}),t[12]=c,t[13]=p,t[14]=m):m=t[14];let h;t[15]!==r||t[16]!==i||t[17]!==s||t[18]!==a||t[19]!==n?(h=!r&&!n.granted?(0,J.jsx)(an,{message:n.message,isOpeningSettings:i,openSettingsError:a,onOpenSettings:s}):null,t[15]=r,t[16]=i,t[17]=s,t[18]=a,t[19]=n,t[20]=h):h=t[20];let _;return t[21]!==m||t[22]!==h?(_=(0,J.jsx)(H,{title:`Screen & Audio Recording`,description:`Tarsk needs this macOS permission to capture screen content for browser tools and screen sharing features.`,controlLayout:`row-end`,action:m,children:h}),t[21]=m,t[22]=h,t[23]=_):_=t[23],_}function cn(e){let t=(0,K.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:o}=e;if(n||r.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(B,{children:`Allowed command patterns`}),t[0]=s):s=t[0];let c;if(t[1]!==i||t[2]!==o||t[3]!==r){let e;t[5]!==i||t[6]!==o?(e=e=>(0,J.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,J.jsx)(`code`,{className:l(a.mono,a.bodyMuted),children:e}),(0,J.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o(e),children:`Remove`})]},e),t[5]=i,t[6]=o,t[7]=e):e=t[7],c=r.map(e),t[1]=i,t[2]=o,t[3]=r,t[4]=c}else c=t[4];let u;return t[8]===c?u=t[9]:(u=(0,J.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[s,(0,J.jsx)(`ul`,{className:`space-y-1`,children:c})]}),t[8]=c,t[9]=u),u}function ln(e){let t=(0,K.c)(15),{allowAllCommands:n,allowedCommandPatterns:r,isLoading:i,isSaving:a,onConfirmCommandsChange:o,onPatternsChange:s}=e,c=i||a,l=!n,u;t[0]!==c||t[1]!==o||t[2]!==l?(u=(0,J.jsx)(z,{value:l,onChange:o,disabled:c,ariaLabel:`Confirm Commands`}),t[0]=c,t[1]=o,t[2]=l,t[3]=u):u=t[3];let d;t[4]!==r||t[5]!==s?(d=e=>s(r.filter(t=>t!==e)),t[4]=r,t[5]=s,t[6]=d):d=t[6];let f;t[7]!==n||t[8]!==r||t[9]!==c||t[10]!==d?(f=(0,J.jsx)(cn,{allowAllCommands:n,patterns:r,disabled:c,onRemove:d}),t[7]=n,t[8]=r,t[9]=c,t[10]=d,t[11]=f):f=t[11];let p;return t[12]!==u||t[13]!==f?(p=(0,J.jsx)(H,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:u,children:f}),t[12]=u,t[13]=f,t[14]=p):p=t[14],p}var un=[{value:`full`,label:`Full`},{value:`minimal`,label:`Minimal`}];function dn(e){let t=(0,K.c)(6),{level:n,onChange:r}=e,i;t[0]===r?i=t[1]:(i=function(e){(e===`full`||e===`minimal`)&&r(e)},t[0]=r,t[1]=i);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=un.map(function(e){return(0,J.jsx)(U,{value:e.value,"aria-label":e.label,className:l(a.body,Ee),children:e.label},e.value)}),t[2]=o):o=t[2];let s;return t[3]!==n||t[4]!==i?(s=(0,J.jsx)(H,{title:`Conversation Level`,description:`Minimal shows each prompt and the final reply. Full includes tool activity.`,controlLayout:`row-end`,action:(0,J.jsx)(W,{type:`single`,value:n,onValueChange:i,"aria-label":`Conversation Level`,className:De,children:o})}),t[3]=n,t[4]=i,t[5]=s):s=t[5],s}function fn(e){let t=(0,K.c)(15),{supported:n,enabled:r,healthy:i,message:o,isLoading:s,isSaving:c,onChange:l}=e;if(!n)return null;let u=r&&i,d;t[0]!==i||t[1]!==l?(d=e=>{e&&!i||l(e).catch(pn)},t[0]=i,t[1]=l,t[2]=d):d=t[2];let f=s||c,p=!i,m;t[3]!==u||t[4]!==d||t[5]!==f||t[6]!==p?(m=(0,J.jsx)(z,{value:u,onChange:d,disabled:f,disableOn:p,ariaLabel:`Sandbox`}),t[3]=u,t[4]=d,t[5]=f,t[6]=p,t[7]=m):m=t[7];let h;t[8]!==i||t[9]!==s||t[10]!==o?(h=!s&&!i?(0,J.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,J.jsx)(b,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,J.jsx)(`p`,{className:a.bodyMuted,children:o||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null,t[8]=i,t[9]=s,t[10]=o,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,J.jsx)(H,{title:`Sandbox`,description:`Sandbox tools like bash and skill script execution to allow running and testing code safely without risking your system, files, or data.`,controlLayout:`row-end`,action:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function pn(){}function mn(e){let t=(0,K.c)(9),{title:n,description:r,value:i,isLoading:a,isSaving:o,ariaLabel:s,onChange:c}=e,l=a||o,u;t[0]!==s||t[1]!==c||t[2]!==l||t[3]!==i?(u=(0,J.jsx)(z,{value:i,onChange:c,disabled:l,ariaLabel:s}),t[0]=s,t[1]=c,t[2]=l,t[3]=i,t[4]=u):u=t[4];let d;return t[5]!==r||t[6]!==u||t[7]!==n?(d=(0,J.jsx)(H,{title:n,description:r,controlLayout:`row-end`,action:u}),t[5]=r,t[6]=u,t[7]=n,t[8]=d):d=t[8],d}var hn=i(`app.use-maximum-turn-count.hook`),gn=100;function _n(){let[e,t]=(0,Y.useState)(gn),[n,r]=(0,Y.useState)(gn.toString()),[i,a]=(0,Y.useState)(!0),[o,s]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=!1;async function n(){try{let n=await N();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){hn.error(`Failed to load maximum turn count:`,e)}finally{e||a(!1)}}return n(),()=>{e=!0}},[]);function c(e){r(e)}async function l(e){s(!0);try{let n=await F({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw hn.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:gn,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var vn=i(`app.use-screen-recording-permission.hook`),yn={isMacOS:!1,granted:!1,available:!1,message:``};function bn(){return{...yn,isMacOS:ue()}}function xn(){let[e,t]=(0,Y.useState)(bn),[n,r]=(0,Y.useState)(!0),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(!1),[c,l]=(0,Y.useState)(null),u=(0,Y.useCallback)(async()=>{r(!0),a(null);try{t(await te(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...yn,isMacOS:e?.isMacOS??ue(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,Y.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,Y.useCallback)(async()=>{s(!0),l(null);try{let e=await ee(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;vn.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;vn.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var Sn=i(`app.use-server-bind-mode.hook`),Cn=`local`,wn=`tarsk-server-bind-mode-changed`;function Tn(e){M(e)}function En(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(wn)===`true`}catch{return!1}}function Dn(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(wn,`true`):sessionStorage.removeItem(wn)}catch{}}function On(){let{session:e,isLoading:t}=we(),n=e?`${e.email}\n${e.jti}`:``,[r,i]=(0,Y.useState)(()=>P()?.serverBindMode??Cn),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(()=>P()?.networkAddresses??[]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(`off`),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(()=>P()===null),[_,v]=(0,Y.useState)(!1),[y,b]=(0,Y.useState)(En);function x(e){u(e.tunnelUrl),f(e.tunnelStatus),m(e.tunnelError)}(0,Y.useEffect)(()=>{if(t)return;let e=!1;async function n(){try{let t=await N();e||(i(t.serverBindMode),o(t.serverBindMode),c(t.networkAddresses),x(t),Tn({networkAddresses:t.networkAddresses,serverBindMode:t.serverBindMode}))}catch(e){Sn.error(`Failed to load server bind mode:`,e)}finally{e||g(!1)}}return n(),function(){e=!0}},[t,n]);async function S(e){v(!0);try{let t=await F({serverBindMode:e});i(t.serverBindMode),c(t.networkAddresses),x(t),Tn({networkAddresses:t.networkAddresses,serverBindMode:t.serverBindMode}),b(!0),Dn(!0)}catch(e){throw Sn.error(`Failed to update server bind mode:`,e),ae({title:`Could not update network access`,description:e instanceof Error?e.message:`Could not update network access.`,variant:`destructive`}),e}finally{v(!1)}}let C=a!==null&&r!==a,w=C||y,T=r===`network`&&(d===`starting`||d===`off`&&!w);return(0,Y.useEffect)(()=>{if(h||!T)return;let e=0,t=!1,n=setInterval(function(){if(e+=1,e>20){clearInterval(n);return}N().then(function(e){t||x(e)}).catch(function(){})},2e3);return function(){t=!0,clearInterval(n)}},[h,T]),{defaultServerBindMode:Cn,hasServerBindModeChanged:C,isLoading:h,isSaving:_,needsRestart:w,networkAddresses:s,serverBindMode:r,tunnelError:p,tunnelStatus:d,tunnelUrl:l,updateServerBindMode:S}}var kn=i(`app.use-logging.hook`);function An(){let[e,t]=(0,Y.useState)(!1),[n,r]=(0,Y.useState)(null),[i,a]=(0,Y.useState)(!1),[o,s]=(0,Y.useState)(null),[c,l]=(0,Y.useState)(!0),[u,d]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=!1;async function n(){try{let n=await N();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){kn.error(`Failed to load logging setting:`,e)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);async function f(e){d(!0);try{let n=await F({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw kn.error(`Failed to update logging setting:`,e),e}finally{d(!1)}}return{ingestingHost:o,isEnabled:e,isEnvConfigured:i,isLoading:c,isSaving:u,logPath:n,updateIsEnabled:f}}var jn=i(`app.use-confirm-commands.hook`);function Mn(){let[e,t]=(0,Y.useState)(!0),[n,r]=(0,Y.useState)([]),[i,a]=(0,Y.useState)(!0),[o,s]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=!1;async function n(){try{let n=await N();e||(t(n.allowAllCommands!==!1),r(n.allowedCommandPatterns??[]))}catch(e){jn.error(`Failed to load confirm commands setting:`,e)}finally{e||a(!1)}}return n(),()=>{e=!0}},[]);async function c(e){s(!0);try{let n=await F({allowAllCommands:!e});t(n.allowAllCommands!==!1),r(n.allowedCommandPatterns??[])}catch(e){throw jn.error(`Failed to update confirm commands setting:`,e),e}finally{s(!1)}}async function l(e){s(!0);try{let n=await F({allowedCommandPatterns:e});t(n.allowAllCommands!==!1),r(n.allowedCommandPatterns??[])}catch(e){throw jn.error(`Failed to update allowed command patterns:`,e),e}finally{s(!1)}}return{allowAllCommands:e,allowedCommandPatterns:n,isLoading:i,isSaving:o,updateConfirmCommandsEnabled:c,updateAllowedCommandPatterns:l}}var Nn=600;function Pn(e){let t=(0,K.c)(3),[n,r]=(0,Y.useState)(!1),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e===0)return;r(!0);let t=setTimeout(()=>{r(!1)},Nn);return()=>{clearTimeout(t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,Y.useEffect)(i,a),n}function Fn(e){let t=(0,K.c)(100),n=Pn(e),{theme:r,setTheme:i}=be(),{scale:a,updateScale:o,min:s,max:c}=Ce(),{opacity:l,updateOpacity:u,min:d,max:f}=Se(),{mode:p,color:m,updateMode:h,updateColor:g}=de(),{color:_,updateColor:v,resetColor:y}=Te(),{defaultMaximumTurnCount:b,draftMaximumTurnCount:x,isLoading:S,isSaving:C,resetDraftMaximumTurnCount:w,setDraftMaximumTurnCount:T,updateMaximumTurnCount:E}=_n(),{status:D,isLoading:O,isOpeningSettings:k,openSettingsError:A,refresh:j,openSystemSettings:M}=xn(),{session:ee,isLoading:N}=we(),{isLoading:P,isSaving:te,needsRestart:F,serverBindMode:ne,tunnelError:re,tunnelStatus:ie,tunnelUrl:I,updateServerBindMode:oe}=On(),{isEnabled:se,isLoading:L,isSaving:ce,updateIsEnabled:le}=ve(),{isEnabled:ue,isLoading:R,isSaving:pe,updateIsEnabled:me}=_e(),{isEnabled:he,isSupported:ge,isHealthy:ye,statusMessage:z,isLoading:B,isSaving:V,updateIsEnabled:H}=xe(),{isEnabled:U,logPath:W,isEnvConfigured:Ee,ingestingHost:De,isLoading:G,isSaving:Oe,updateIsEnabled:ke}=An(),{allowAllCommands:q,allowedCommandPatterns:je,isLoading:J,isSaving:Me,updateConfirmCommandsEnabled:Ne,updateAllowedCommandPatterns:Pe}=Mn(),{level:Fe,updateLevel:Ie}=fe(),Le;t[0]!==J||t[1]!==G||t[2]!==S||t[3]!==O||t[4]!==B||t[5]!==P||t[6]!==R||t[7]!==L?(Le=[S,O,P,L,R,B,G,J],t[0]=J,t[1]=G,t[2]=S,t[3]=O,t[4]=B,t[5]=P,t[6]=R,t[7]=L,t[8]=Le):Le=t[8];let X=Ae(`general`,Le),Z;t[9]===T?Z=t[10]:(Z=function(e){T(e.target.value)},t[9]=T,t[10]=Z);let Re=Z,ze;t[11]!==b||t[12]!==x||t[13]!==w||t[14]!==E?(ze=async function(){let e=Number.parseInt(x,10),t=Number.isFinite(e)&&e>0?e:b;try{await E(t)}catch{w()}},t[11]=b,t[12]=x,t[13]=w,t[14]=E,t[15]=ze):ze=t[15];let Be=ze,Ve;t[16]===o?Ve=t[17]:(Ve=function(e){e.length>0&&o(e[0])},t[16]=o,t[17]=Ve);let He=Ve,Q;t[18]===u?Q=t[19]:(Q=function(e){e.length>0&&u(e[0])},t[18]=u,t[19]=Q);let Ue=Q,We;t[20]===W?We=t[21]:(We=async function(){if(W)try{await navigator.clipboard.writeText(W),ae({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;ae({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[20]=W,t[21]=We);let Ge=We,[Ke,qe]=(0,Y.useState)(!1),Je=ne===`network`?I:null,Ye=Je!==null,Xe;t[22]===I?Xe=t[23]:(Xe=async function(){if(I)try{await navigator.clipboard.writeText(I),qe(!0),ae({title:`Copied`,description:`Public address copied to clipboard.`}),window.setTimeout(function(){qe(!1)},1500)}catch(e){let t=e;ae({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the address.`,variant:`destructive`})}},t[22]=I,t[23]=Xe);let Ze=Xe,Qe=!N&&ee!==null,$;return t[24]!==q||t[25]!==je||t[26]!==n||t[27]!==De||t[28]!==_||t[29]!==Fe||t[30]!==Ke||t[31]!==b||t[32]!==x||t[33]!==f||t[34]!==d||t[35]!==l||t[36]!==Ge||t[37]!==Ze||t[38]!==Ue||t[39]!==Be||t[40]!==Re||t[41]!==He||t[42]!==Ee||t[43]!==J||t[44]!==Me||t[45]!==G||t[46]!==Oe||t[47]!==S||t[48]!==C||t[49]!==k||t[50]!==O||t[51]!==B||t[52]!==V||t[53]!==P||t[54]!==te||t[55]!==R||t[56]!==pe||t[57]!==L||t[58]!==ce||t[59]!==U||t[60]!==W||t[61]!==c||t[62]!==s||t[63]!==Je||t[64]!==F||t[65]!==M||t[66]!==X||t[67]!==j||t[68]!==y||t[69]!==a||t[70]!==A||t[71]!==D||t[72]!==he||t[73]!==ye||t[74]!==z||t[75]!==ge||t[76]!==ne||t[77]!==i||t[78]!==ue||t[79]!==Ye||t[80]!==Qe||t[81]!==r||t[82]!==re||t[83]!==ie||t[84]!==I||t[85]!==Pe||t[86]!==v||t[87]!==Ne||t[88]!==Ie||t[89]!==ke||t[90]!==H||t[91]!==oe||t[92]!==me||t[93]!==le||t[94]!==g||t[95]!==h||t[96]!==se||t[97]!==m||t[98]!==p?($={animateTitle:n,pageLoading:X,theme:r,setTheme:i,scale:a,min:s,max:c,handleSliderChange:He,frostedOpacity:l,frostedMin:d,frostedMax:f,handleFrostedOpacityChange:Ue,wallpaperMode:p,wallpaperColor:m,updateWallpaperMode:h,updateWallpaperColor:g,brandColor:_,updateBrandColor:v,resetBrandColor:y,conversationLevel:Fe,updateConversationLevel:Ie,draftMaximumTurnCount:x,defaultMaximumTurnCount:b,isMaximumTurnCountLoading:S,isMaximumTurnCountSaving:C,handleMaximumTurnCountChange:Re,handleMaximumTurnCountBlur:Be,voiceAiProcessing:se,isVoiceAiProcessingLoading:L,isVoiceAiProcessingSaving:ce,updateVoiceAiProcessing:le,showDailySpend:ue,isShowDailySpendLoading:R,isShowDailySpendSaving:pe,updateShowDailySpend:me,screenRecordingStatus:D,isScreenRecordingLoading:O,isOpeningScreenRecordingSettings:k,screenRecordingOpenSettingsError:A,refreshScreenRecording:j,openScreenRecordingSettings:M,seatbeltSandboxSupported:ge,seatbeltSandboxEnabled:he,seatbeltSandboxHealthy:ye,seatbeltSandboxMessage:z,isSeatbeltSandboxLoading:B,isSeatbeltSandboxSaving:V,updateSeatbeltSandbox:H,allowAllCommands:q,allowedCommandPatterns:je,isConfirmCommandsLoading:J,isConfirmCommandsSaving:Me,updateConfirmCommandsEnabled:Ne,updateAllowedCommandPatterns:Pe,loggingEnabled:U,loggingPath:W,isBetterStackEnvConfigured:Ee,betterStackIngestingHost:De,isLoggingLoading:G,isLoggingSaving:Oe,updateLogging:ke,handleCopyLoggingPath:Ge,serverBindMode:ne,signedIn:Qe,isServerBindModeLoading:P,isServerBindModeSaving:te,needsRestart:F,showMobileQrCode:Ye,tunnelUrl:I,tunnelStatus:ie,tunnelError:re,mobileNetworkUrl:Je,copiedTunnelUrl:Ke,updateServerBindMode:oe,handleCopyTunnelUrl:Ze},t[24]=q,t[25]=je,t[26]=n,t[27]=De,t[28]=_,t[29]=Fe,t[30]=Ke,t[31]=b,t[32]=x,t[33]=f,t[34]=d,t[35]=l,t[36]=Ge,t[37]=Ze,t[38]=Ue,t[39]=Be,t[40]=Re,t[41]=He,t[42]=Ee,t[43]=J,t[44]=Me,t[45]=G,t[46]=Oe,t[47]=S,t[48]=C,t[49]=k,t[50]=O,t[51]=B,t[52]=V,t[53]=P,t[54]=te,t[55]=R,t[56]=pe,t[57]=L,t[58]=ce,t[59]=U,t[60]=W,t[61]=c,t[62]=s,t[63]=Je,t[64]=F,t[65]=M,t[66]=X,t[67]=j,t[68]=y,t[69]=a,t[70]=A,t[71]=D,t[72]=he,t[73]=ye,t[74]=z,t[75]=ge,t[76]=ne,t[77]=i,t[78]=ue,t[79]=Ye,t[80]=Qe,t[81]=r,t[82]=re,t[83]=ie,t[84]=I,t[85]=Pe,t[86]=v,t[87]=Ne,t[88]=Ie,t[89]=ke,t[90]=H,t[91]=oe,t[92]=me,t[93]=le,t[94]=g,t[95]=h,t[96]=se,t[97]=m,t[98]=p,t[99]=$):$=t[99],$}var In=[{value:`image`,label:`Image`,icon:S},{value:`background`,label:`Background`,icon:d}];function Ln(e){let t=(0,K.c)(22),{wallpaperMode:n,wallpaperColor:r,onModeChange:i,onColorChange:a}=e,o;t[0]===i?o=t[1]:(o=e=>{(e===`image`||e===`background`||e===`color`)&&i(e)},t[0]=i,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=In.map(Rn),t[2]=s):s=t[2];let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=l(q,`relative overflow-hidden`),t[3]=c):c=t[3];let u;t[4]===r?u=t[5]:(u=(0,J.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:r},"aria-hidden":`true`}),t[4]=r,t[5]=u);let d;t[6]===i?d=t[7]:(d=()=>{i(`color`)},t[6]=i,t[7]=d);let f;t[8]!==a||t[9]!==i?(f=e=>{a(e.target.value),i(`color`)},t[8]=a,t[9]=i,t[10]=f):f=t[10];let p;t[11]!==d||t[12]!==f||t[13]!==r?(p=(0,J.jsx)(`input`,{type:`color`,value:r,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:d,onChange:f}),t[11]=d,t[12]=f,t[13]=r,t[14]=p):p=t[14];let m;t[15]!==u||t[16]!==p?(m=(0,J.jsxs)(U,{value:`color`,"aria-label":`Custom color`,className:c,children:[u,p]}),t[15]=u,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==o||t[19]!==m||t[20]!==n?(h=(0,J.jsx)(H,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,J.jsxs)(W,{type:`single`,value:n,onValueChange:o,"aria-label":`Wallpaper`,className:je,children:[s,m]})}),t[18]=o,t[19]=m,t[20]=n,t[21]=h):h=t[21],h}function Rn(e){let t=e.icon;return(0,J.jsx)(U,{value:e.value,"aria-label":e.label,className:q,children:(0,J.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function zn(e){let t=(0,K.c)(128),{onboardingResetSignal:n}=e,r=Fn(n===void 0?0:n),i=r.pageLoading,a=r.animateTitle&&`animate-headline-reset`,o;t[0]===a?o=t[1]:(o=l(a),t[0]=a,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,J.jsx)(V,{title:`Appearance`,titleClassName:o,className:`[&>div:first-child]:py-2`,sticky:!1}),t[2]=o,t[3]=s);let c;t[4]!==r.handleSliderChange||t[5]!==r.max||t[6]!==r.min||t[7]!==r.scale?(c=(0,J.jsx)(vt,{scale:r.scale,min:r.min,max:r.max,onChange:r.handleSliderChange}),t[4]=r.handleSliderChange,t[5]=r.max,t[6]=r.min,t[7]=r.scale,t[8]=c):c=t[8];let u;t[9]!==r.frostedMax||t[10]!==r.frostedMin||t[11]!==r.frostedOpacity||t[12]!==r.handleFrostedOpacityChange?(u=(0,J.jsx)(tn,{opacity:r.frostedOpacity,min:r.frostedMin,max:r.frostedMax,onChange:r.handleFrostedOpacityChange}),t[9]=r.frostedMax,t[10]=r.frostedMin,t[11]=r.frostedOpacity,t[12]=r.handleFrostedOpacityChange,t[13]=u):u=t[13];let d;t[14]!==r.setTheme||t[15]!==r.theme?(d=(0,J.jsx)(Ne,{theme:r.theme,onThemeChange:r.setTheme}),t[14]=r.setTheme,t[15]=r.theme,t[16]=d):d=t[16];let f;t[17]!==r.updateWallpaperColor||t[18]!==r.updateWallpaperMode||t[19]!==r.wallpaperColor||t[20]!==r.wallpaperMode?(f=(0,J.jsx)(Ln,{wallpaperMode:r.wallpaperMode,wallpaperColor:r.wallpaperColor,onModeChange:r.updateWallpaperMode,onColorChange:r.updateWallpaperColor}),t[17]=r.updateWallpaperColor,t[18]=r.updateWallpaperMode,t[19]=r.wallpaperColor,t[20]=r.wallpaperMode,t[21]=f):f=t[21];let p;t[22]!==r.brandColor||t[23]!==r.resetBrandColor||t[24]!==r.updateBrandColor?(p=(0,J.jsx)(nn,{brandColor:r.brandColor,onColorChange:r.updateBrandColor,onReset:r.resetBrandColor}),t[22]=r.brandColor,t[23]=r.resetBrandColor,t[24]=r.updateBrandColor,t[25]=p):p=t[25];let m;t[26]!==p||t[27]!==c||t[28]!==u||t[29]!==d||t[30]!==f?(m=(0,J.jsx)(pe,{className:`max-w-none pt-0`,children:(0,J.jsxs)(L,{children:[c,u,d,f,p]})}),t[26]=p,t[27]=c,t[28]=u,t[29]=d,t[30]=f,t[31]=m):m=t[31];let h;t[32]!==m||t[33]!==s?(h=(0,J.jsxs)(R,{className:`shrink-0`,children:[s,m]}),t[32]=m,t[33]=s,t[34]=h):h=t[34];let g;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(V,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[35]=g):g=t[35];let _;t[36]!==r.conversationLevel||t[37]!==r.updateConversationLevel?(_=(0,J.jsx)(dn,{level:r.conversationLevel,onChange:r.updateConversationLevel}),t[36]=r.conversationLevel,t[37]=r.updateConversationLevel,t[38]=_):_=t[38];let v;t[39]!==r.defaultMaximumTurnCount||t[40]!==r.draftMaximumTurnCount||t[41]!==r.handleMaximumTurnCountBlur||t[42]!==r.handleMaximumTurnCountChange||t[43]!==r.isMaximumTurnCountLoading||t[44]!==r.isMaximumTurnCountSaving?(v=(0,J.jsx)(St,{draftValue:r.draftMaximumTurnCount,defaultTurnCount:r.defaultMaximumTurnCount,isLoading:r.isMaximumTurnCountLoading,isSaving:r.isMaximumTurnCountSaving,onChange:r.handleMaximumTurnCountChange,onBlur:r.handleMaximumTurnCountBlur}),t[39]=r.defaultMaximumTurnCount,t[40]=r.draftMaximumTurnCount,t[41]=r.handleMaximumTurnCountBlur,t[42]=r.handleMaximumTurnCountChange,t[43]=r.isMaximumTurnCountLoading,t[44]=r.isMaximumTurnCountSaving,t[45]=v):v=t[45];let y;t[46]===r?y=t[47]:(y=e=>{r.updateVoiceAiProcessing(e)},t[46]=r,t[47]=y);let b;t[48]!==r.isVoiceAiProcessingLoading||t[49]!==r.isVoiceAiProcessingSaving||t[50]!==r.voiceAiProcessing||t[51]!==y?(b=(0,J.jsx)(mn,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,value:r.voiceAiProcessing,isLoading:r.isVoiceAiProcessingLoading,isSaving:r.isVoiceAiProcessingSaving,ariaLabel:`AI Voice Cleanup`,onChange:y}),t[48]=r.isVoiceAiProcessingLoading,t[49]=r.isVoiceAiProcessingSaving,t[50]=r.voiceAiProcessing,t[51]=y,t[52]=b):b=t[52];let x;t[53]===r?x=t[54]:(x=e=>{r.updateShowDailySpend(e)},t[53]=r,t[54]=x);let S;t[55]!==r.isShowDailySpendLoading||t[56]!==r.isShowDailySpendSaving||t[57]!==r.showDailySpend||t[58]!==x?(S=(0,J.jsx)(mn,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,value:r.showDailySpend,isLoading:r.isShowDailySpendLoading,isSaving:r.isShowDailySpendSaving,ariaLabel:`Spend`,onChange:x}),t[55]=r.isShowDailySpendLoading,t[56]=r.isShowDailySpendSaving,t[57]=r.showDailySpend,t[58]=x,t[59]=S):S=t[59];let C;t[60]!==r.isOpeningScreenRecordingSettings||t[61]!==r.isScreenRecordingLoading||t[62]!==r.openScreenRecordingSettings||t[63]!==r.refreshScreenRecording||t[64]!==r.screenRecordingOpenSettingsError||t[65]!==r.screenRecordingStatus?(C=(0,J.jsx)(sn,{status:r.screenRecordingStatus,isLoading:r.isScreenRecordingLoading,isOpeningSettings:r.isOpeningScreenRecordingSettings,openSettingsError:r.screenRecordingOpenSettingsError,onRefresh:r.refreshScreenRecording,onOpenSettings:r.openScreenRecordingSettings}),t[60]=r.isOpeningScreenRecordingSettings,t[61]=r.isScreenRecordingLoading,t[62]=r.openScreenRecordingSettings,t[63]=r.refreshScreenRecording,t[64]=r.screenRecordingOpenSettingsError,t[65]=r.screenRecordingStatus,t[66]=C):C=t[66];let w,T;t[67]===r?(w=t[68],T=t[69]):(w=e=>{r.updateConfirmCommandsEnabled(e)},T=e=>{r.updateAllowedCommandPatterns(e)},t[67]=r,t[68]=w,t[69]=T);let E;t[70]!==r.allowAllCommands||t[71]!==r.allowedCommandPatterns||t[72]!==r.isConfirmCommandsLoading||t[73]!==r.isConfirmCommandsSaving||t[74]!==w||t[75]!==T?(E=(0,J.jsx)(ln,{allowAllCommands:r.allowAllCommands,allowedCommandPatterns:r.allowedCommandPatterns,isLoading:r.isConfirmCommandsLoading,isSaving:r.isConfirmCommandsSaving,onConfirmCommandsChange:w,onPatternsChange:T}),t[70]=r.allowAllCommands,t[71]=r.allowedCommandPatterns,t[72]=r.isConfirmCommandsLoading,t[73]=r.isConfirmCommandsSaving,t[74]=w,t[75]=T,t[76]=E):E=t[76];let D;t[77]!==r.isSeatbeltSandboxLoading||t[78]!==r.isSeatbeltSandboxSaving||t[79]!==r.seatbeltSandboxEnabled||t[80]!==r.seatbeltSandboxHealthy||t[81]!==r.seatbeltSandboxMessage||t[82]!==r.seatbeltSandboxSupported||t[83]!==r.updateSeatbeltSandbox?(D=(0,J.jsx)(fn,{supported:r.seatbeltSandboxSupported,enabled:r.seatbeltSandboxEnabled,healthy:r.seatbeltSandboxHealthy,message:r.seatbeltSandboxMessage,isLoading:r.isSeatbeltSandboxLoading,isSaving:r.isSeatbeltSandboxSaving,onChange:r.updateSeatbeltSandbox}),t[77]=r.isSeatbeltSandboxLoading,t[78]=r.isSeatbeltSandboxSaving,t[79]=r.seatbeltSandboxEnabled,t[80]=r.seatbeltSandboxHealthy,t[81]=r.seatbeltSandboxMessage,t[82]=r.seatbeltSandboxSupported,t[83]=r.updateSeatbeltSandbox,t[84]=D):D=t[84];let O;t[85]===r?O=t[86]:(O=e=>{r.updateLogging(e)},t[85]=r,t[86]=O);let k;t[87]!==r.betterStackIngestingHost||t[88]!==r.handleCopyLoggingPath||t[89]!==r.isBetterStackEnvConfigured||t[90]!==r.isLoggingLoading||t[91]!==r.isLoggingSaving||t[92]!==r.loggingEnabled||t[93]!==r.loggingPath||t[94]!==O?(k=(0,J.jsx)(xt,{enabled:r.loggingEnabled,logPath:r.loggingPath,isEnvConfigured:r.isBetterStackEnvConfigured,ingestingHost:r.betterStackIngestingHost,isLoading:r.isLoggingLoading,isSaving:r.isLoggingSaving,onChange:O,onCopyPath:r.handleCopyLoggingPath}),t[87]=r.betterStackIngestingHost,t[88]=r.handleCopyLoggingPath,t[89]=r.isBetterStackEnvConfigured,t[90]=r.isLoggingLoading,t[91]=r.isLoggingSaving,t[92]=r.loggingEnabled,t[93]=r.loggingPath,t[94]=O,t[95]=k):k=t[95];let A;t[96]!==r.copiedTunnelUrl||t[97]!==r.handleCopyTunnelUrl||t[98]!==r.isServerBindModeLoading||t[99]!==r.isServerBindModeSaving||t[100]!==r.needsRestart||t[101]!==r.serverBindMode||t[102]!==r.signedIn||t[103]!==r.tunnelError||t[104]!==r.tunnelStatus||t[105]!==r.tunnelUrl||t[106]!==r.updateServerBindMode?(A=(0,J.jsx)(en,{bindMode:r.serverBindMode,signedIn:r.signedIn,isLoading:r.isServerBindModeLoading,isSaving:r.isServerBindModeSaving,needsRestart:r.needsRestart,tunnelUrl:r.tunnelUrl,tunnelStatus:r.tunnelStatus,tunnelError:r.tunnelError,copiedTunnelUrl:r.copiedTunnelUrl,onChangeMode:r.updateServerBindMode,onCopyTunnelUrl:r.handleCopyTunnelUrl}),t[96]=r.copiedTunnelUrl,t[97]=r.handleCopyTunnelUrl,t[98]=r.isServerBindModeLoading,t[99]=r.isServerBindModeSaving,t[100]=r.needsRestart,t[101]=r.serverBindMode,t[102]=r.signedIn,t[103]=r.tunnelError,t[104]=r.tunnelStatus,t[105]=r.tunnelUrl,t[106]=r.updateServerBindMode,t[107]=A):A=t[107];let j;t[108]!==_||t[109]!==v||t[110]!==b||t[111]!==S||t[112]!==C||t[113]!==E||t[114]!==D||t[115]!==k||t[116]!==A?(j=(0,J.jsxs)(R,{className:`shrink-0`,children:[g,(0,J.jsx)(pe,{className:`max-w-none pt-0`,children:(0,J.jsxs)(L,{children:[_,v,b,S,C,E,D,k,A]})})]}),t[108]=_,t[109]=v,t[110]=b,t[111]=S,t[112]=C,t[113]=E,t[114]=D,t[115]=k,t[116]=A,t[117]=j):j=t[117];let M;t[118]===r.mobileNetworkUrl?M=t[119]:(M=(0,J.jsx)(Zt,{url:r.mobileNetworkUrl}),t[118]=r.mobileNetworkUrl,t[119]=M);let ee;t[120]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,J.jsx)(bt,{}),t[120]=ee):ee=t[120];let N;t[121]!==h||t[122]!==j||t[123]!==M?(N=(0,J.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[h,j,M,ee]}),t[121]=h,t[122]=j,t[123]=M,t[124]=N):N=t[124];let P;return t[125]!==r.pageLoading||t[126]!==N?(P=(0,J.jsx)(he,{loading:i,children:N}),t[125]=r.pageLoading,t[126]=N,t[127]=P):P=t[127],P}export{zn as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-aKtaBQYM.js";import{n as e,o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Ut as r}from"./dist-Ch137qdo.js";import{t as i}from"./utils-CWTBjUlE.js";import{_t as a,d as o,k as s}from"./lucide-react-C-dX1rVz.js";import{t as c}from"./button-DVIjvd2G.js";import{i as l,n as u,r as d,t as f}from"./tooltip-Cqmpv-M5.js";import{Ct as p,Pt as m,jt as h,nr as g,wr as _,wt as v}from"./index-C3E_66vw.js";import"./card-DaHPdrGh.js";var y=e();t();var b=n();function x(e){let t=(0,y.c)(14),{icon:n,title:a,description:o,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=i(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,b.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=i(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,b.jsx)(`h3`,{className:d,children:a}),t[5]=a,t[6]=f);let p;t[7]===o?p=t[8]:(p=o?(0,b.jsx)(`p`,{className:i(r.bodyMuted,`mb-3`),children:o}):null,t[7]=o,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,b.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function S(e){let t=(0,y.c)(12),{placeholder:n,value:r,onChange:a,className:o}=e,c=o??`mb-4`,l;t[0]===c?l=t[1]:(l=i(`relative`,c),t[0]=c,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,b.jsx)(s,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),t[2]=u):u=t[2];let d;t[3]===a?d=t[4]:(d=e=>a(e.target.value),t[3]=a,t[4]=d);let f;t[5]!==n||t[6]!==d||t[7]!==r?(f=(0,b.jsx)(_,{placeholder:n,value:r,onChange:d,className:`pl-8`}),t[5]=n,t[6]=d,t[7]=r,t[8]=f):f=t[8];let p;return t[9]!==l||t[10]!==f?(p=(0,b.jsxs)(`div`,{className:l,children:[u,f]}),t[9]=l,t[10]=f,t[11]=p):p=t[11],p}function C(e){let t=(0,y.c)(3),{searchQuery:n,emptyLabel:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=i(r.bodyMuted,`text-center py-8`),t[0]=o):o=t[0];let s=n.trim()?`No results for "${n}"`:a,c;return t[1]===s?c=t[2]:(c=(0,b.jsx)(`p`,{className:o,children:s}),t[1]=s,t[2]=c),c}function w(e){let t=(0,y.c)(11),{title:n,tooltip:r,action:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,b.jsx)(a,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,b.jsx)(l,{asChild:!0,children:(0,b.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[n,o]})}),t[1]=n,t[2]=s);let c;t[3]===r?c=t[4]:(c=(0,b.jsx)(u,{children:r}),t[3]=r,t[4]=c);let m;t[5]!==s||t[6]!==c?(m=(0,b.jsx)(d,{children:(0,b.jsxs)(f,{children:[s,c]})}),t[5]=s,t[6]=c,t[7]=m):m=t[7];let h;return t[8]!==i||t[9]!==m?(h=(0,b.jsx)(p,{title:m,action:i,sticky:!1}),t[8]=i,t[9]=m,t[10]=h):h=t[10],h}function T(e,t){let n=t.trim();if(!n)return e;let r=n.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r))}function E(e){let t=(0,y.c)(32),{title:n,tooltip:a,emptyLabel:o,searchValue:s,onSearchChange:c,items:l,getKey:u,renderName:d,getSubtitle:f,renderAction:p}=e,g,_,v,x,E,D;if(t[0]!==o||t[1]!==u||t[2]!==f||t[3]!==l||t[4]!==c||t[5]!==p||t[6]!==d||t[7]!==s||t[8]!==n||t[9]!==a){let e=T(l,s);_=m,E=`shrink-0`;let y;t[16]!==c||t[17]!==s?(y=(0,b.jsx)(S,{placeholder:`Search`,value:s,onChange:c,className:`mb-0 w-64`}),t[16]=c,t[17]=s,t[18]=y):y=t[18],t[19]!==y||t[20]!==n||t[21]!==a?(D=(0,b.jsx)(w,{title:n,tooltip:a,action:y}),t[19]=y,t[20]=n,t[21]=a,t[22]=D):D=t[22],g=h,v=`pt-6`,x=e.length===0?(0,b.jsx)(C,{searchQuery:s,emptyLabel:o}):(0,b.jsx)(`div`,{className:`divide-y divide-table-border`,children:e.map(e=>(0,b.jsxs)(`div`,{className:`group flex min-h-13 items-center justify-between gap-3 px-3 py-3 hover:bg-muted/30`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,b.jsx)(`div`,{className:i(r.body,`truncate`),children:d(e)}),(0,b.jsx)(`div`,{className:i(r.compact,`truncate text-muted-foreground`),children:f(e)})]}),p(e)]},u(e)))}),t[0]=o,t[1]=u,t[2]=f,t[3]=l,t[4]=c,t[5]=p,t[6]=d,t[7]=s,t[8]=n,t[9]=a,t[10]=g,t[11]=_,t[12]=v,t[13]=x,t[14]=E,t[15]=D}else g=t[10],_=t[11],v=t[12],x=t[13],E=t[14],D=t[15];let O;t[23]!==g||t[24]!==v||t[25]!==x?(O=(0,b.jsx)(g,{className:v,children:x}),t[23]=g,t[24]=v,t[25]=x,t[26]=O):O=t[26];let k;return t[27]!==_||t[28]!==E||t[29]!==D||t[30]!==O?(k=(0,b.jsxs)(_,{className:E,children:[D,O]}),t[27]=_,t[28]=E,t[29]=D,t[30]=O,t[31]=k):k=t[31],k}function D(e){let t=(0,y.c)(3),{message:n}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=i(r.bodyMuted,`text-center py-8`),t[0]=a):a=t[0];let o;return t[1]===n?o=t[2]:(o=(0,b.jsx)(`p`,{className:a,children:n}),t[1]=n,t[2]=o),o}var O=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function k(e){let t=(0,y.c)(19),{loading:n,items:r,emptyState:a,getKey:s,columnsClassName:p,compact:m,showHeader:h,renderContent:_,renderMiddle:S,onItemClick:C,itemClickLabel:w,onDelete:T,deleteAriaLabel:E,deleteTooltip:D}=e,k=p===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:p,A=m===void 0?!1:m,j=h===void 0?!0:h,M;t[0]===j?M=t[1]:(M=j?(0,b.jsx)(v,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==E||t[5]!==D||t[6]!==a||t[7]!==s||t[8]!==w||t[9]!==r||t[10]!==n||t[11]!==T||t[12]!==C||t[13]!==_||t[14]!==S?(N=n?(0,b.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,b.jsx)(g,{className:i(`w-full`,A?`h-9`:`h-12`)}),(0,b.jsx)(g,{className:i(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,b.jsx)(x,{...a}):(0,b.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,b.jsxs)(`div`,{className:i(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,C&&`cursor-pointer`),role:C?`button`:void 0,tabIndex:C?0:void 0,"aria-label":C?w?.(e):void 0,onClick:C?()=>C(e):void 0,onKeyDown:C?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),C(e))}:void 0,children:[_(e),S?.(e),(0,b.jsx)(d,{children:(0,b.jsxs)(f,{children:[(0,b.jsx)(l,{asChild:!0,children:(0,b.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:O,onClick:t=>{t.stopPropagation(),T(e)},"aria-label":E(e),children:(0,b.jsx)(o,{className:`h-4 w-4`})})}),(0,b.jsx)(u,{children:D})]})})]},s(e)))}),t[2]=k,t[3]=A,t[4]=E,t[5]=D,t[6]=a,t[7]=s,t[8]=w,t[9]=r,t[10]=n,t[11]=T,t[12]=C,t[13]=_,t[14]=S,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,b.jsxs)(b.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{C as a,D as c,E as i,x as n,S as o,k as r,w as s,O as t};
1
+ import"./rolldown-runtime-aKtaBQYM.js";import{n as e,o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Wt as r}from"./dist-FJzwWcMv.js";import{t as i}from"./utils-uGptTPGm.js";import{_t as a,d as o,k as s}from"./lucide-react-CMzSV2MP.js";import{t as c}from"./button-zYjzm__g.js";import{i as l,n as u,r as d,t as f}from"./tooltip-6qlOE6WT.js";import{Ft as p,Mt as m,Tr as h,Tt as g,rr as _,wt as v}from"./index-DpDgcOE9.js";import"./card-CpchkvHM.js";var y=e();t();var b=n();function x(e){let t=(0,y.c)(14),{icon:n,title:a,description:o,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=i(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,b.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=i(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,b.jsx)(`h3`,{className:d,children:a}),t[5]=a,t[6]=f);let p;t[7]===o?p=t[8]:(p=o?(0,b.jsx)(`p`,{className:i(r.bodyMuted,`mb-3`),children:o}):null,t[7]=o,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,b.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function S(e){let t=(0,y.c)(12),{placeholder:n,value:r,onChange:a,className:o}=e,c=o??`mb-4`,l;t[0]===c?l=t[1]:(l=i(`relative`,c),t[0]=c,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,b.jsx)(s,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),t[2]=u):u=t[2];let d;t[3]===a?d=t[4]:(d=e=>a(e.target.value),t[3]=a,t[4]=d);let f;t[5]!==n||t[6]!==d||t[7]!==r?(f=(0,b.jsx)(h,{placeholder:n,value:r,onChange:d,className:`pl-8`}),t[5]=n,t[6]=d,t[7]=r,t[8]=f):f=t[8];let p;return t[9]!==l||t[10]!==f?(p=(0,b.jsxs)(`div`,{className:l,children:[u,f]}),t[9]=l,t[10]=f,t[11]=p):p=t[11],p}function C(e){let t=(0,y.c)(3),{searchQuery:n,emptyLabel:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=i(r.bodyMuted,`text-center py-8`),t[0]=o):o=t[0];let s=n.trim()?`No results for "${n}"`:a,c;return t[1]===s?c=t[2]:(c=(0,b.jsx)(`p`,{className:o,children:s}),t[1]=s,t[2]=c),c}function w(e){let t=(0,y.c)(11),{title:n,tooltip:r,action:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,b.jsx)(a,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,b.jsx)(l,{asChild:!0,children:(0,b.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[n,o]})}),t[1]=n,t[2]=s);let c;t[3]===r?c=t[4]:(c=(0,b.jsx)(u,{children:r}),t[3]=r,t[4]=c);let p;t[5]!==s||t[6]!==c?(p=(0,b.jsx)(d,{children:(0,b.jsxs)(f,{children:[s,c]})}),t[5]=s,t[6]=c,t[7]=p):p=t[7];let m;return t[8]!==i||t[9]!==p?(m=(0,b.jsx)(v,{title:p,action:i,sticky:!1}),t[8]=i,t[9]=p,t[10]=m):m=t[10],m}function T(e,t){let n=t.trim();if(!n)return e;let r=n.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r))}function E(e){let t=(0,y.c)(32),{title:n,tooltip:a,emptyLabel:o,searchValue:s,onSearchChange:c,items:l,getKey:u,renderName:d,getSubtitle:f,renderAction:h}=e,g,_,v,x,E,D;if(t[0]!==o||t[1]!==u||t[2]!==f||t[3]!==l||t[4]!==c||t[5]!==h||t[6]!==d||t[7]!==s||t[8]!==n||t[9]!==a){let e=T(l,s);_=p,E=`shrink-0`;let y;t[16]!==c||t[17]!==s?(y=(0,b.jsx)(S,{placeholder:`Search`,value:s,onChange:c,className:`mb-0 w-64`}),t[16]=c,t[17]=s,t[18]=y):y=t[18],t[19]!==y||t[20]!==n||t[21]!==a?(D=(0,b.jsx)(w,{title:n,tooltip:a,action:y}),t[19]=y,t[20]=n,t[21]=a,t[22]=D):D=t[22],g=m,v=`pt-6`,x=e.length===0?(0,b.jsx)(C,{searchQuery:s,emptyLabel:o}):(0,b.jsx)(`div`,{className:`divide-y divide-table-border`,children:e.map(e=>(0,b.jsxs)(`div`,{className:`group flex min-h-13 items-center justify-between gap-3 px-3 py-3 hover:bg-muted/30`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,b.jsx)(`div`,{className:i(r.body,`truncate`),children:d(e)}),(0,b.jsx)(`div`,{className:i(r.compact,`truncate text-muted-foreground`),children:f(e)})]}),h(e)]},u(e)))}),t[0]=o,t[1]=u,t[2]=f,t[3]=l,t[4]=c,t[5]=h,t[6]=d,t[7]=s,t[8]=n,t[9]=a,t[10]=g,t[11]=_,t[12]=v,t[13]=x,t[14]=E,t[15]=D}else g=t[10],_=t[11],v=t[12],x=t[13],E=t[14],D=t[15];let O;t[23]!==g||t[24]!==v||t[25]!==x?(O=(0,b.jsx)(g,{className:v,children:x}),t[23]=g,t[24]=v,t[25]=x,t[26]=O):O=t[26];let k;return t[27]!==_||t[28]!==E||t[29]!==D||t[30]!==O?(k=(0,b.jsxs)(_,{className:E,children:[D,O]}),t[27]=_,t[28]=E,t[29]=D,t[30]=O,t[31]=k):k=t[31],k}function D(e){let t=(0,y.c)(3),{message:n}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=i(r.bodyMuted,`text-center py-8`),t[0]=a):a=t[0];let o;return t[1]===n?o=t[2]:(o=(0,b.jsx)(`p`,{className:a,children:n}),t[1]=n,t[2]=o),o}var O=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function k(e){let t=(0,y.c)(19),{loading:n,items:r,emptyState:a,getKey:s,columnsClassName:p,compact:m,showHeader:h,renderContent:v,renderMiddle:S,onItemClick:C,itemClickLabel:w,onDelete:T,deleteAriaLabel:E,deleteTooltip:D}=e,k=p===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:p,A=m===void 0?!1:m,j=h===void 0?!0:h,M;t[0]===j?M=t[1]:(M=j?(0,b.jsx)(g,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==E||t[5]!==D||t[6]!==a||t[7]!==s||t[8]!==w||t[9]!==r||t[10]!==n||t[11]!==T||t[12]!==C||t[13]!==v||t[14]!==S?(N=n?(0,b.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,b.jsx)(_,{className:i(`w-full`,A?`h-9`:`h-12`)}),(0,b.jsx)(_,{className:i(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,b.jsx)(x,{...a}):(0,b.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,b.jsxs)(`div`,{className:i(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,C&&`cursor-pointer`),role:C?`button`:void 0,tabIndex:C?0:void 0,"aria-label":C?w?.(e):void 0,onClick:C?()=>C(e):void 0,onKeyDown:C?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),C(e))}:void 0,children:[v(e),S?.(e),(0,b.jsx)(d,{children:(0,b.jsxs)(f,{children:[(0,b.jsx)(l,{asChild:!0,children:(0,b.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:O,onClick:t=>{t.stopPropagation(),T(e)},"aria-label":E(e),children:(0,b.jsx)(o,{className:`h-4 w-4`})})}),(0,b.jsx)(u,{children:D})]})})]},s(e)))}),t[2]=k,t[3]=A,t[4]=E,t[5]=D,t[6]=a,t[7]=s,t[8]=w,t[9]=r,t[10]=n,t[11]=T,t[12]=C,t[13]=v,t[14]=S,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,b.jsxs)(b.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{C as a,D as c,E as i,x as n,S as o,k as r,w as s,O as t};
@@ -0,0 +1,5 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{l as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{G as a,H as o,V as s,Wt as c}from"./dist-FJzwWcMv.js";import{t as l}from"./utils-uGptTPGm.js";import{_n as u,dt as d,rn as f}from"./lucide-react-CMzSV2MP.js";import{t as p}from"./button-zYjzm__g.js";import{i as m,n as h,r as g,t as _}from"./tooltip-6qlOE6WT.js";import{Br as v,Wn as y,u as b}from"./api-CX0sFbpL.js";import{r as x}from"./scroll-area-BTpvIsIG.js";import{t as S}from"./use-toast-xpb5jNtN.js";import{Mt as C,Tr as w,tn as T,wt as E}from"./index-DpDgcOE9.js";import{n as D,t as O}from"./toggle-group-D0gDKZ9x.js";var k=e(n(),1),A=t();function j(e,t){let n=[...e,t];return n.length>5e3?n.slice(n.length-s):n}function M(e,t){if(e.type!==`ping`){if(e.type===`snapshot`){t(e.entries);return}if(e.type===`cleared`){t([]);return}t(t=>j(t,e.entry))}}function N(e,t){if(t.isCancelled()||t.isAborted())return;let n=e instanceof Error?e.message:String(e);if(v(n)||t.sawSuccessfulStream){t.scheduleReconnect();return}t.setConnecting(!1),t.reportHardFailure(n),t.scheduleReconnect()}function P(e,t,n){let r=(t+e).split(`
2
+ `),i=r.pop()??``;for(let e of r){let t=e.trim();if(!t)continue;let r;try{r=JSON.parse(t)}catch{continue}n(r)}return i}var F=r(),I=1e3,L=[o.INFO,o.WARN,o.ERROR],R=[...L],z=`inline-flex h-11 shrink-0 rounded-full border bg-muted/40 p-2`,B=l(c.compact,`h-7 min-w-0 rounded-full border-0 px-2.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`);function V(e,t){return t?[e.event,e.message,U(e.level),e.data===void 0?``:G(e.data)].join(` `).toLowerCase().includes(t):!0}function H(e){let t=typeof e==`number`?e:Number(e);return t===o.DEBUG||t===o.INFO||t===o.WARN||t===o.ERROR?t:null}function U(e){let t=H(e);return t===null?String(e):a(t)}function W(e,t){let n=H(e.level);return n!==null&&t.has(n)}function G(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function K(e){switch(H(e)??e){case o.ERROR:return`text-destructive`;case o.WARN:return`text-amber-600 dark:text-amber-400`;case o.INFO:return`text-foreground`;default:return`text-muted-foreground`}}function q(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function J(e){let t=[`${e.ts} ${U(e.level)} ${e.event}`,e.message];return e.data!==void 0&&t.push(G(e.data)),t.join(`
3
+ `)}var Y=(0,k.memo)(function(e){let t=(0,A.c)(40),{entry:n,copied:r,onCopy:i}=e,a;t[0]!==n||t[1]!==i?(a=()=>i(n),t[0]=n,t[1]=i,t[2]=a):a=t[2];let o;t[3]===r?o=t[4]:(o=r?(0,F.jsx)(u,{className:`h-3.5 w-3.5 text-green-500`}):(0,F.jsx)(f,{className:`h-3.5 w-3.5`}),t[3]=r,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,F.jsx)(`span`,{className:`sr-only`,children:`Copy log entry`}),t[5]=s):s=t[5];let c;t[6]!==a||t[7]!==o?(c=(0,F.jsx)(m,{asChild:!0,children:(0,F.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm hover:bg-background`,children:[o,s]})}),t[6]=a,t[7]=o,t[8]=c):c=t[8];let d=r?`Copied!`:`Copy to clipboard`,p;t[9]===d?p=t[10]:(p=(0,F.jsx)(h,{children:d}),t[9]=d,t[10]=p);let g;t[11]!==c||t[12]!==p?(g=(0,F.jsx)(`div`,{className:`absolute top-2 right-2 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`,children:(0,F.jsxs)(_,{children:[c,p]})}),t[11]=c,t[12]=p,t[13]=g):g=t[13];let v;t[14]===n.ts?v=t[15]:(v=q(n.ts),t[14]=n.ts,t[15]=v);let y;t[16]===v?y=t[17]:(y=(0,F.jsx)(`span`,{className:`text-muted-foreground tabular-nums`,children:v}),t[16]=v,t[17]=y);let b;t[18]===n.level?b=t[19]:(b=l(`font-semibold`,K(n.level)),t[18]=n.level,t[19]=b);let x;t[20]===n.level?x=t[21]:(x=U(n.level),t[20]=n.level,t[21]=x);let S;t[22]!==b||t[23]!==x?(S=(0,F.jsx)(`span`,{className:b,children:x}),t[22]=b,t[23]=x,t[24]=S):S=t[24];let C;t[25]===n.event?C=t[26]:(C=(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:n.event}),t[25]=n.event,t[26]=C);let w;t[27]!==S||t[28]!==C||t[29]!==y?(w=(0,F.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[y,S,C]}),t[27]=S,t[28]=C,t[29]=y,t[30]=w):w=t[30];let T;t[31]===n.message?T=t[32]:(T=(0,F.jsx)(`p`,{className:`mt-0.5 whitespace-pre-wrap break-words text-foreground`,children:n.message}),t[31]=n.message,t[32]=T);let E;t[33]===n.data?E=t[34]:(E=n.data===void 0?null:(0,F.jsx)(`pre`,{className:`mt-1 max-h-40 overflow-auto whitespace-pre-wrap break-words text-muted-foreground`,children:G(n.data)}),t[33]=n.data,t[34]=E);let D;return t[35]!==w||t[36]!==T||t[37]!==E||t[38]!==g?(D=(0,F.jsxs)(`li`,{className:`group relative min-w-0 px-3 py-2 pr-10 hover:bg-muted/40 select-text`,children:[g,w,T,E]}),t[35]=w,t[36]=T,t[37]=E,t[38]=g,t[39]=D):D=t[39],D});function X(e,t){let n=(0,A.c)(4),r,i;n[0]!==e||n[1]!==t?(r=()=>{let n=!1,r=null,i=null,a=new AbortController,o=!1,s=!1,c=function(){n||i||(t(!0),i=setTimeout(()=>{i=null,d()},I))},l=function(t){M(t,e)},u=function(e){N(e,{isCancelled:()=>n,isAborted:()=>a.signal.aborted,sawSuccessfulStream:o,scheduleReconnect:c,setConnecting:t,reportHardFailure:e=>{s||(s=!0,S({title:`Failed to connect to log feed`,description:e,variant:`destructive`}))}})};async function d(){if(!n){t(!0);try{let e=await y({signal:a.signal});if(!e||n){e&&n&&e.cancel().catch(Q);return}r=e.getReader();let i=new TextDecoder,s=``;for(o=!0,t(!1);!n;){let{done:e,value:t}=await r.read();if(e)break;s=P(i.decode(t,{stream:!0}),s,l)}n||c()}catch(e){u(e)}}}return d(),()=>{n=!0,a.abort(),i&&clearTimeout(i),r?.cancel().catch(Z)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),(0,k.useEffect)(r,i)}function Z(){}function Q(){}function $(){let e=(0,A.c)(7),[t,n]=(0,k.useState)(null),[r,i]=(0,k.useState)(!1),a=(0,k.useRef)(null),o=(0,k.useRef)(null),s,c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>()=>{a.current&&clearTimeout(a.current),o.current&&clearTimeout(o.current)},c=[],e[0]=s,e[1]=c):(s=e[0],c=e[1]),(0,k.useEffect)(s,c);let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=async e=>{try{await navigator.clipboard.writeText(J(e)),n(e.id),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{n(null),a.current=null},1500)}catch(e){let t=e;S({title:`Failed to copy log entry`,description:t instanceof Error?t.message:String(t),variant:`destructive`})}},e[2]=l):l=e[2];let u=l,d;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=async function(e){if(e.length!==0)try{await navigator.clipboard.writeText(e.map(ee).join(`
4
+
5
+ `)),i(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{i(!1),o.current=null},1500)}catch(e){let t=e;S({title:`Failed to copy logs`,description:t instanceof Error?t.message:String(t),variant:`destructive`})}},e[3]=d):d=e[3];let f=d,p;return e[4]!==r||e[5]!==t?(p={copiedEntryId:t,copiedAll:r,handleCopyEntry:u,handleCopyVisibleEntries:f},e[4]=r,e[5]=t,e[6]=p):p=e[6],p}function ee(e){return J(e)}function te(){let[e,t]=(0,k.useState)(!1);async function n(){t(!0);try{await b()}catch(e){S({title:`Failed to clear logs`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{t(!1)}}return{isClearing:e,handleClear:n}}function ne(){let e=(0,A.c)(41),[t]=i(),n;e[0]===t?n=e[1]:(n=t.get(`q`)??``,e[0]=t,e[1]=n);let r=n,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=[],e[2]=a):a=e[2];let[o,s]=(0,k.useState)(a),[c,l]=(0,k.useState)(r),[u,d]=(0,k.useState)(R),[f,p]=(0,k.useState)(!0),[m,h]=(0,k.useState)(null),{isClearing:g,handleClear:_}=te(),{copiedEntryId:v,copiedAll:y,handleCopyEntry:b,handleCopyVisibleEntries:x}=$(),S,w;e[3]===r?(S=e[4],w=e[5]):(S=()=>{r&&l(r)},w=[r],e[3]=r,e[4]=S,e[5]=w),(0,k.useEffect)(S,w),X(s,p);let T,E,D;if(e[6]!==v||e[7]!==u||e[8]!==o||e[9]!==b||e[10]!==c){let t=c.trim().toLowerCase(),n=new Set(u);D=o.filter(e=>W(e,n)&&V(e,t));let r;e[14]!==v||e[15]!==b?(r=(e,t)=>(0,F.jsx)(Y,{entry:t,copied:v===t.id,onCopy:b}),e[14]=v,e[15]=b,e[16]=r):r=e[16],T=r,E=re(u.length,t,o.length),e[6]=v,e[7]=u,e[8]=o,e[9]=b,e[10]=c,e[11]=T,e[12]=E,e[13]=D}else T=e[11],E=e[12],D=e[13];let O=E,j=o.length>0,M;e[17]!==_||e[18]!==g||e[19]!==j?(M=(0,F.jsx)(ie,{isClearing:g,hasEntries:j,onClear:_}),e[17]=_,e[18]=g,e[19]=j,e[20]=M):M=e[20];let N;e[21]!==x||e[22]!==D?(N=()=>void x(D),e[21]=x,e[22]=D,e[23]=N):N=e[23];let P;e[24]!==y||e[25]!==u||e[26]!==c||e[27]!==N||e[28]!==D?(P=(0,F.jsx)(ae,{search:c,onSearchChange:l,enabledLevels:u,onEnabledLevelsChange:d,visibleEntries:D,copiedAll:y,onCopyVisible:N}),e[24]=y,e[25]=u,e[26]=c,e[27]=N,e[28]=D,e[29]=P):P=e[29];let I=o.length>0,L;e[30]!==O||e[31]!==f||e[32]!==T||e[33]!==m||e[34]!==I||e[35]!==D?(L=(0,F.jsx)(ce,{isConnecting:f,hasEntries:I,visibleEntries:D,emptyMessage:O,scrollParent:m,onScrollParentChange:h,renderLogEntryRow:T}),e[30]=O,e[31]=f,e[32]=T,e[33]=m,e[34]=I,e[35]=D,e[36]=L):L=e[36];let z;return e[37]!==L||e[38]!==M||e[39]!==P?(z=(0,F.jsx)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:(0,F.jsxs)(C,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[M,P,L]})}),e[37]=L,e[38]=M,e[39]=P,e[40]=z):z=e[40],z}function re(e,t,n){return e===0?`No log levels selected.`:t?`No logs match this search.`:n===0?`No logs in the buffer yet.`:`No logs match the selected levels.`}function ie(e){let t=(0,A.c)(8),{isClearing:n,hasEntries:r,onClear:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o=n||!r,s;t[2]===n?s=t[3]:(s=n?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(d,{className:`mr-2 h-4 w-4 animate-spin`}),`Clearing...`]}):`Clear`,t[2]=n,t[3]=s);let c;return t[4]!==a||t[5]!==o||t[6]!==s?(c=(0,F.jsx)(E,{title:`Logs`,description:`Live in memory feed of events`,action:(0,F.jsx)(p,{type:`button`,onClick:a,disabled:o,children:s})}),t[4]=a,t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function ae(e){let t=(0,A.c)(29),{search:n,onSearchChange:r,enabledLevels:i,onEnabledLevelsChange:o,visibleEntries:s,copiedAll:c,onCopyVisible:l}=e,d;t[0]===r?d=t[1]:(d=e=>r(e.target.value),t[0]=r,t[1]=d);let v;t[2]!==n||t[3]!==d?(v=(0,F.jsx)(w,{value:n,onChange:d,placeholder:`Search`,className:`min-w-0 flex-1`,"aria-label":`Search logs`}),t[2]=n,t[3]=d,t[4]=v):v=t[4];let y;t[5]===i?y=t[6]:(y=i.map(se),t[5]=i,t[6]=y);let b;t[7]===o?b=t[8]:(b=e=>{o(L.filter(t=>e.includes(a(t))))},t[7]=o,t[8]=b);let x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(x=L.map(oe),t[9]=x):x=t[9];let S;t[10]!==y||t[11]!==b?(S=(0,F.jsx)(O,{type:`multiple`,value:y,onValueChange:b,"aria-label":`Log levels`,variant:`outline`,size:`sm`,className:z,children:x}),t[10]=y,t[11]=b,t[12]=S):S=t[12];let C=s.length===0,T;t[13]===c?T=t[14]:(T=c?(0,F.jsx)(u,{className:`h-3.5 w-3.5 text-green-500`}):(0,F.jsx)(f,{className:`h-3.5 w-3.5`}),t[13]=c,t[14]=T);let E;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,F.jsx)(`span`,{className:`sr-only`,children:`Copy visible logs`}),t[15]=E):E=t[15];let D;t[16]!==l||t[17]!==C||t[18]!==T?(D=(0,F.jsx)(m,{asChild:!0,children:(0,F.jsxs)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:l,disabled:C,children:[T,E]})}),t[16]=l,t[17]=C,t[18]=T,t[19]=D):D=t[19];let k=c?`Copied!`:`Copy visible logs to clipboard`,j;t[20]===k?j=t[21]:(j=(0,F.jsx)(h,{children:k}),t[20]=k,t[21]=j);let M;t[22]!==D||t[23]!==j?(M=(0,F.jsx)(g,{children:(0,F.jsxs)(_,{children:[D,j]})}),t[22]=D,t[23]=j,t[24]=M):M=t[24];let N;return t[25]!==M||t[26]!==v||t[27]!==S?(N=(0,F.jsxs)(`div`,{className:`mb-4 mt-4 flex w-full min-w-0 items-center gap-3 electrobun-webkit-app-region-no-drag`,children:[v,S,M]}),t[25]=M,t[26]=v,t[27]=S,t[28]=N):N=t[28],N}function oe(e){return(0,F.jsx)(D,{value:a(e),"aria-label":a(e),className:B,children:a(e)},e)}function se(e){return a(e)}function ce(e){let t=(0,A.c)(10),{isConnecting:n,hasEntries:r,visibleEntries:i,emptyMessage:a,scrollParent:o,onScrollParentChange:s,renderLogEntryRow:u}=e,f;t[0]!==a||t[1]!==r||t[2]!==n||t[3]!==u||t[4]!==o||t[5]!==i?(f=n&&!r?(0,F.jsxs)(`div`,{className:`flex items-center gap-2 p-4 text-muted-foreground`,children:[(0,F.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Connecting…`]}):i.length===0?(0,F.jsx)(`p`,{className:l(c.bodyMuted,`p-4 font-sans`),children:a}):(0,F.jsx)(g,{children:(0,F.jsx)(T,{data:i,computeItemKey:ue,customScrollParent:o??void 0,itemContent:u,followOutput:le,overscan:500,className:`w-full min-w-0`})}),t[0]=a,t[1]=r,t[2]=n,t[3]=u,t[4]=o,t[5]=i,t[6]=f):f=t[6];let p;return t[7]!==s||t[8]!==f?(p=(0,F.jsx)(x,{viewportRef:s,className:`mb-6 w-full min-h-0 min-w-0 flex-1 rounded-md border bg-background font-mono text-xs`,children:f}),t[7]=s,t[8]=f,t[9]=p):p=t[9],p}function le(e){return e?`auto`:!1}function ue(e,t){return t.id}export{ne as default};
@@ -0,0 +1,5 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{r as a}from"./store-DCnnNgwq.js";import{s as o,t as s}from"./utils-uGptTPGm.js";import{B as c,F as l,G as u,O as d,Yt as f,_n as p,d as m,gn as h,r as g}from"./lucide-react-CMzSV2MP.js";import{t as _}from"./button-zYjzm__g.js";import{g as v,h as y,t as b,u as ee}from"./dist-BhdiICUV.js";import{o as x}from"./dist-lnsB93_y.js";import{i as S,n as C,r as w,t as T}from"./tooltip-6qlOE6WT.js";import{$t as E,i as D,mt as O,yn as k}from"./api-CX0sFbpL.js";import{n as A}from"./explorer-tab-context-BxUVwWQQ.js";import{t as j}from"./use-toast-xpb5jNtN.js";import{t as M}from"./dist-CSssbxDI.js";import{Bt as N,Cr as P,Dr as F,Er as I,Ft as L,It as R,Lt as z,Mt as te,Ot as ne,Pt as re,Rt as B,Sr as ie,Tr as V,V as H,Vt as U,_ as ae,_r as W,br as oe,bt as G,dr as se,er as ce,fr as le,g as ue,gr as de,h as fe,jt as pe,lr as me,m as K,mr as he,p as ge,ur as _e,v as ve,wt as ye,xr as be,xt as q,yr as xe}from"./index-DpDgcOE9.js";import{t as Se}from"./delete-confirm-dialog-DvJ5VuAy.js";import{t as Ce}from"./use-settings-page-loading-CpaBd260.js";import{n as we}from"./settings-list-DajPoFxt.js";var J=t(),Y=e(n(),1),X=r(),Z=`Switch`,[Te,Ee]=y(Z),[De,Oe]=Te(Z),Q=Y.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:s,disabled:c,value:l=`on`,onCheckedChange:u,form:d,...f}=e,[p,m]=Y.useState(null),h=o(t,e=>m(e)),g=Y.useRef(!1),_=p?d||!!p.closest(`form`):!0,[y,x]=b({prop:i,defaultProp:a??!1,onChange:u,caller:Z});return(0,X.jsxs)(De,{scope:n,checked:y,disabled:c,children:[(0,X.jsx)(ee.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":s,"data-state":Ne(y),"data-disabled":c?``:void 0,disabled:c,value:l,...f,ref:h,onClick:v(e.onClick,e=>{x(e=>!e),_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),_&&(0,X.jsx)(Me,{control:p,bubbles:!g.current,name:r,value:l,checked:y,required:s,disabled:c,form:d,style:{transform:`translateX(-100%)`}})]})});Q.displayName=Z;var ke=`SwitchThumb`,Ae=Y.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Oe(ke,n);return(0,X.jsx)(ee.span,{"data-state":Ne(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Ae.displayName=ke;var je=`SwitchBubbleInput`,Me=Y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let s=Y.useRef(null),c=o(s,a),l=M(n),u=x(t);return Y.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[l,n,r]),(0,X.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:c,style:{...i.style,...u,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});Me.displayName=je;function Ne(e){return e?`checked`:`unchecked`}var Pe=Q,Fe=Ae,Ie=Y.forwardRef((e,t)=>{let n=(0,J.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,X.jsx)(Fe,{className:s(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let c;return n[6]!==i||n[7]!==t||n[8]!==a?(c=(0,X.jsx)(Pe,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=c):c=n[9],c});Ie.displayName=Pe.displayName;function Le(e){let t=(0,J.c)(6),{defer:n,onDeferChange:r}=e,i=n?`Tool definitions load on demand via tool_search to keep the initial prompt small.`:`Tool definitions are always injected into the initial prompt, even when not used. Useful when this server's tools are needed in nearly every conversation, but they consume context.`,a;t[0]!==n||t[1]!==r?(a=(0,X.jsx)(Ie,{id:`defer-tools`,checked:n,onCheckedChange:r,"aria-label":`Deferred`}),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,X.jsx)(q,{title:`Deferred`,description:i,controlLayout:`stack`,className:`pt-6`,action:a}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Re(e){let t=(0,J.c)(15),{entries:n,emptyMessage:r,keyPlaceholder:a,valuePlaceholder:o,onUpdate:s,onRemove:c}=e;if(n.length===0){let e;return t[0]===r?e=t[1]:(e=(0,X.jsx)(`p`,{className:i.caption,children:r}),t[0]=r,t[1]=e),e}let l;if(t[2]!==n||t[3]!==a||t[4]!==c||t[5]!==s||t[6]!==o){let e;t[8]!==a||t[9]!==c||t[10]!==s||t[11]!==o?(e=(e,t)=>(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(V,{placeholder:a,value:e.key,onChange:e=>s(t,{key:e.target.value}),className:`font-mono w-[35%]`}),(0,X.jsx)(V,{placeholder:o,value:e.value,onChange:e=>s(t,{value:e.target.value}),className:`font-mono flex-1`}),(0,X.jsx)(_,{variant:`ghost`,size:`icon`,onClick:()=>c(t),className:`h-9 w-9 flex-shrink-0`,children:(0,X.jsx)(g,{className:`h-3.5 w-3.5`})})]},t),t[8]=a,t[9]=c,t[10]=s,t[11]=o,t[12]=e):e=t[12],l=n.map(e),t[2]=n,t[3]=a,t[4]=c,t[5]=s,t[6]=o,t[7]=l}else l=t[7];let u;return t[13]===l?u=t[14]:(u=(0,X.jsx)(`div`,{className:`flex flex-col gap-2`,children:l}),t[13]=l,t[14]=u),u}function ze(e){let t=(0,J.c)(16),{title:n,description:r,actionLabel:i,emptyMessage:a,keyPlaceholder:o,valuePlaceholder:s,entries:l,onAdd:u,onRemove:d,onUpdate:f}=e,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,X.jsx)(c,{className:`h-3 w-3 mr-1`}),t[0]=p):p=t[0];let m;t[1]!==i||t[2]!==u?(m=(0,X.jsxs)(_,{variant:`ghost`,size:`sm`,onClick:u,children:[p,i]}),t[1]=i,t[2]=u,t[3]=m):m=t[3];let h;t[4]!==a||t[5]!==l||t[6]!==o||t[7]!==d||t[8]!==f||t[9]!==s?(h=(0,X.jsx)(Re,{entries:l,emptyMessage:a,keyPlaceholder:o,valuePlaceholder:s,onUpdate:f,onRemove:d}),t[4]=a,t[5]=l,t[6]=o,t[7]=d,t[8]=f,t[9]=s,t[10]=h):h=t[10];let g;return t[11]!==r||t[12]!==m||t[13]!==h||t[14]!==n?(g=(0,X.jsx)(q,{title:n,description:r,controlLayout:`stack`,className:`pt-6`,action:m,children:h}),t[11]=r,t[12]=m,t[13]=h,t[14]=n,t[15]=g):g=t[15],g}function Be(e){let t=(0,J.c)(6),{serverType:n,entries:r,onAdd:i,onRemove:a,onUpdate:o}=e,s=n===`remote`?`Optional metadata for local tooling.`:void 0,c;return t[0]!==r||t[1]!==i||t[2]!==a||t[3]!==o||t[4]!==s?(c=(0,X.jsx)(ze,{title:`Environment variables`,description:s,actionLabel:`Add variable`,emptyMessage:`No environment variables configured`,keyPlaceholder:`KEY`,valuePlaceholder:`value`,entries:r,onAdd:i,onRemove:a,onUpdate:o}),t[0]=r,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=c):c=t[5],c}function Ve(){let e=(0,J.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,X.jsx)(`p`,{className:i.bodyMuted,children:`Loading server configuration...`})}),e[0]=t):t=e[0],t}function He(e){let t=(0,J.c)(7),{isEditing:n,busy:r,deleting:i,onDelete:a}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(`div`,{}),t[0]=e):e=t[0],e}let o;t[1]===a?o=t[2]:(o=()=>void a(),t[1]=a,t[2]=o);let s=i?`Removing...`:`Remove`,c;return t[3]!==r||t[4]!==o||t[5]!==s?(c=(0,X.jsx)(_,{variant:`destructive`,onClick:o,disabled:r,children:s}),t[3]=r,t[4]=o,t[5]=s,t[6]=c):c=t[6],c}function Ue(e,t){return e?t?`Saving...`:`Adding...`:t?`Save`:`Add`}function We(e){let t=(0,J.c)(9),{busy:n,hasChanges:r,saving:i,isEditing:a,onSave:o}=e,s;t[0]===o?s=t[1]:(s=()=>void o(),t[0]=o,t[1]=s);let c=n||!r,l;t[2]!==a||t[3]!==i?(l=Ue(i,a),t[2]=a,t[3]=i,t[4]=l):l=t[4];let u;return t[5]!==s||t[6]!==c||t[7]!==l?(u=(0,X.jsx)(_,{onClick:s,disabled:c,children:l}),t[5]=s,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function Ge(e){let t=(0,J.c)(14),{isEditing:n,busy:r,saving:i,deleting:a,hasChanges:o,onSave:s,onDelete:c}=e,l;t[0]!==r||t[1]!==a||t[2]!==n||t[3]!==c?(l=(0,X.jsx)(He,{isEditing:n,busy:r,deleting:a,onDelete:c}),t[0]=r,t[1]=a,t[2]=n,t[3]=c,t[4]=l):l=t[4];let u;t[5]!==r||t[6]!==o||t[7]!==n||t[8]!==s||t[9]!==i?(u=(0,X.jsx)(We,{busy:r,hasChanges:o,saving:i,isEditing:n,onSave:s}),t[5]=r,t[6]=o,t[7]=n,t[8]=s,t[9]=i,t[10]=u):u=t[10];let d;return t[11]!==l||t[12]!==u?(d=(0,X.jsxs)(`div`,{className:`mt-6 border-t pt-4 flex items-center justify-between`,children:[l,u]}),t[11]=l,t[12]=u,t[13]=d):d=t[13],d}function Ke(e){let t=(0,J.c)(9),{isEditing:n,name:r,onNameChange:i}=e,a=n?`Server name cannot be changed`:void 0,o;t[0]===i?o=t[1]:(o=e=>i(e.target.value),t[0]=i,t[1]=o);let s;t[2]!==n||t[3]!==r||t[4]!==o?(s=(0,X.jsx)(V,{id:`server-name`,placeholder:`e.g. filesystem`,value:r,onChange:o,disabled:n}),t[2]=n,t[3]=r,t[4]=o,t[5]=s):s=t[5];let c;return t[6]!==a||t[7]!==s?(c=(0,X.jsx)(q,{title:`Server name`,description:a,controlLayout:`stack`,className:`pt-6`,children:s}),t[6]=a,t[7]=s,t[8]=c):c=t[8],c}function qe(e){let t=(0,J.c)(13),{form:n,onFormChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>r({command:e.target.value}),t[0]=r,t[1]=i);let a;t[2]!==n.command||t[3]!==i?(a=(0,X.jsx)(q,{title:`Command`,controlLayout:`stack`,className:`pt-6`,children:(0,X.jsx)(V,{id:`server-command`,placeholder:`e.g. npx`,value:n.command,onChange:i})}),t[2]=n.command,t[3]=i,t[4]=a):a=t[4];let o;t[5]===r?o=t[6]:(o=e=>r({argsText:e.target.value}),t[5]=r,t[6]=o);let s;t[7]!==n.argsText||t[8]!==o?(s=(0,X.jsx)(q,{title:`Arguments`,description:`One argument per line`,controlLayout:`stack`,className:`pt-6`,children:(0,X.jsx)(H,{id:`server-args`,placeholder:`-y
2
+ @modelcontextprotocol/server-filesystem
3
+ /path/to/dir`,value:n.argsText,onChange:o,className:`font-mono min-h-[80px] resize-none`})}),t[7]=n.argsText,t[8]=o,t[9]=s):s=t[9];let c;return t[10]!==a||t[11]!==s?(c=(0,X.jsxs)(X.Fragment,{children:[a,s]}),t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function Je(e){let t=(0,J.c)(19),{form:n,onFormChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>r({oauthClientId:e.target.value}),t[0]=r,t[1]=i);let a;t[2]!==n.oauthClientId||t[3]!==i?(a=(0,X.jsx)(V,{id:`oauth-client-id`,placeholder:`Client ID`,value:n.oauthClientId,onChange:i,className:`font-mono`}),t[2]=n.oauthClientId,t[3]=i,t[4]=a):a=t[4];let o;t[5]===r?o=t[6]:(o=e=>r({oauthClientSecret:e.target.value}),t[5]=r,t[6]=o);let s;t[7]!==n.oauthClientSecret||t[8]!==o?(s=(0,X.jsx)(V,{id:`oauth-client-secret`,placeholder:`Client secret`,type:`password`,value:n.oauthClientSecret,onChange:o,className:`font-mono`}),t[7]=n.oauthClientSecret,t[8]=o,t[9]=s):s=t[9];let c;t[10]===r?c=t[11]:(c=e=>r({oauthCallbackPort:e.target.value}),t[10]=r,t[11]=c);let l;t[12]!==n.oauthCallbackPort||t[13]!==c?(l=(0,X.jsx)(V,{id:`oauth-callback-port`,placeholder:`Callback port (e.g. 3118)`,value:n.oauthCallbackPort,onChange:c,className:`font-mono`}),t[12]=n.oauthCallbackPort,t[13]=c,t[14]=l):l=t[14];let u;return t[15]!==a||t[16]!==s||t[17]!==l?(u=(0,X.jsx)(q,{title:`OAuth client`,description:`Required for servers without dynamic client registration (e.g. GitHub Copilot MCP). Create an OAuth App, set callback to http://localhost:<port>/callback, then Sign in.`,controlLayout:`stack`,className:`pt-6`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a,s,l]})}),t[15]=a,t[16]=s,t[17]=l,t[18]=u):u=t[18],u}function Ye(e){let t=(0,J.c)(25),{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s}=e,c;t[0]===r?c=t[1]:(c=e=>r({serverUrl:e.target.value}),t[0]=r,t[1]=c);let l;t[2]!==n.serverUrl||t[3]!==c?(l=(0,X.jsx)(q,{title:`Server URL`,description:`Paste the MCP endpoint URL from your provider.`,controlLayout:`stack`,className:`pt-6`,children:(0,X.jsx)(V,{id:`server-url`,placeholder:`https://example.com/mcp`,value:n.serverUrl,onChange:c,className:`font-mono`})}),t[2]=n.serverUrl,t[3]=c,t[4]=l):l=t[4];let u;t[5]===r?u=t[6]:(u=e=>r({transport:e}),t[5]=r,t[6]=u);let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,X.jsx)(N,{children:(0,X.jsx)(U,{})}),t[7]=d):d=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,X.jsxs)(z,{children:[(0,X.jsx)(B,{value:`sse`,children:`SSE (Server-Sent Events)`}),(0,X.jsx)(B,{value:`streamableHttp`,children:`Streamable HTTP`})]}),t[8]=f):f=t[8];let p;t[9]!==n.transport||t[10]!==u?(p=(0,X.jsx)(q,{title:`Transport`,controlLayout:`stack`,className:`pt-6`,children:(0,X.jsxs)(R,{value:n.transport,onValueChange:u,children:[d,f]})}),t[9]=n.transport,t[10]=u,t[11]=p):p=t[11];let m;t[12]!==n||t[13]!==r?(m=(0,X.jsx)(Je,{form:n,onFormChange:r}),t[12]=n,t[13]=r,t[14]=m):m=t[14];let h;t[15]!==i||t[16]!==a||t[17]!==o||t[18]!==s?(h=(0,X.jsx)(ze,{title:`HTTP headers`,description:`Optional headers for authentication.`,actionLabel:`Add header`,emptyMessage:`No headers configured`,keyPlaceholder:`Authorization`,valuePlaceholder:`Bearer ...`,entries:i,onAdd:a,onRemove:o,onUpdate:s}),t[15]=i,t[16]=a,t[17]=o,t[18]=s,t[19]=h):h=t[19];let g;return t[20]!==l||t[21]!==p||t[22]!==m||t[23]!==h?(g=(0,X.jsxs)(X.Fragment,{children:[l,p,m,h]}),t[20]=l,t[21]=p,t[22]=m,t[23]=h,t[24]=g):g=t[24],g}function Xe(e){let t=(0,J.c)(18),{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s}=e,c;t[0]===r?c=t[1]:(c=e=>r({serverType:e}),t[0]=r,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsxs)(se,{className:`grid w-full grid-cols-2`,children:[(0,X.jsx)(le,{value:`local`,children:`Local (stdio)`}),(0,X.jsx)(le,{value:`remote`,children:`Remote (HTTP/SSE)`})]}),t[2]=l):l=t[2];let u;t[3]!==n||t[4]!==r?(u=(0,X.jsx)(_e,{value:`local`,children:(0,X.jsx)(qe,{form:n,onFormChange:r})}),t[3]=n,t[4]=r,t[5]=u):u=t[5];let d;t[6]!==n||t[7]!==i||t[8]!==r||t[9]!==a||t[10]!==o||t[11]!==s?(d=(0,X.jsx)(_e,{value:`remote`,children:(0,X.jsx)(Ye,{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s})}),t[6]=n,t[7]=i,t[8]=r,t[9]=a,t[10]=o,t[11]=s,t[12]=d):d=t[12];let f;return t[13]!==n.serverType||t[14]!==c||t[15]!==u||t[16]!==d?(f=(0,X.jsxs)(me,{value:n.serverType,onValueChange:c,className:`w-full pt-6`,children:[l,u,d]}),t[13]=n.serverType,t[14]=c,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}var Ze={key:``,value:``},Qe={serverType:`local`,name:``,command:``,argsText:``,serverUrl:``,transport:`sse`,oauthClientId:``,oauthClientSecret:``,oauthCallbackPort:``,defer:!0},$e=[e=>e.name,e=>e.command,e=>e.argsText,e=>e.serverUrl,e=>e.oauthClientId,e=>e.oauthClientSecret,e=>e.oauthCallbackPort];function $(e,t){return e??t}function et(e){return e?.url?`remote`:`local`}function tt(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}function nt(e){let t={};for(let{key:n,value:r}of e)n.trim()&&(t[n.trim()]=r);return Object.keys(t).length>0?t:void 0}function rt(e){return(e??[]).join(`
4
+ `)}function it(e){return e.split(`
5
+ `).map(e=>e.trim()).filter(Boolean)}function at(e){return e===void 0?``:String(e)}function ot(e){return{oauthClientId:$(e?.clientId,``),oauthClientSecret:$(e?.clientSecret,``),oauthCallbackPort:at(e?.callbackPort)}}function st(e,t){return{...Qe,name:e,serverType:et(t),command:$(t.command,``),argsText:rt(t.args),serverUrl:$(t.url,``),transport:$(t.transport,`sse`),...ot(t.oauth),defer:t.defer!==!1}}function ct(e,t,n){return JSON.stringify({name:e,type:t,config:n})}function lt(e){if(!e)return;let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>0?t:void 0}function ut(e){let t={};for(let[n,r]of Object.entries(e))r!==``&&r!==void 0&&(t[n]=r);return t}function dt(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function ft(e,t,n){return e!==``||t!==``||n!==void 0}function pt(e){let t=e.oauthClientId.trim(),n=e.oauthClientSecret.trim(),r=lt(e.oauthCallbackPort.trim());if(!ft(t,n,r))return;let i=ut({clientId:t,clientSecret:n,callbackPort:r});if(Object.keys(i).length!==0)return i}function mt(e,t,n){return dt({url:e.serverUrl.trim(),transport:e.transport,headers:nt(n),env:nt(t),oauth:pt(e),defer:e.defer?void 0:!1})}function ht(e,t){return dt({command:e.command.trim(),args:it(e.argsText),env:nt(t),defer:e.defer?void 0:!1})}function gt(e,t,n){return e.serverType===`remote`?mt(e,t,n):ht(e,t)}function _t(e){let t=e.trim();if(!t)return`Server URL is required`;try{new URL(t)}catch{return`Server URL must be a valid URL`}return null}function vt(e){if(!e.trim())return null;let t=Number.parseInt(e.trim(),10);return Number.isInteger(t)&&t>0?null:`OAuth callback port must be a positive integer`}function yt(e){return e.oauthClientSecret.trim()&&!e.oauthClientId.trim()?`OAuth client ID is required when a client secret is set`:null}function bt(e){return _t(e.serverUrl)??vt(e.oauthCallbackPort)??yt(e)}function xt(e){return e.trim()?null:`Command is required`}function St(e,t){return t.name.trim()?e===`remote`?bt(t):xt(t.command):`Server name is required`}function Ct(e,t,n){return $e.some(t=>t(e).trim()!==``)||t.length>0||n.length>0||!e.defer}function wt(e){return e.isEditing?e.currentSnapshot!==e.originalSnapshot:Ct(e.form,e.envEntries,e.headerEntries)}function Tt(e){if(e.isEditing&&e.serverName)return e.installedServers.find(t=>t.name===e.serverName);if(e.initialConfig)return{name:$(e.initialName,``),config:e.initialConfig}}function Et(e,t){return e instanceof Error?e.message:t}function Dt(e,t){return e?`MCP server saved · ${K(t.catalog)}`:`MCP server added · ${K(t.catalog)}`}function Ot(e,t){return{title:e?t:`Add MCP Server`,description:e?`Edit MCP Server configuration.`:`Configure a new MCP Server.`}}function kt(){let e=(0,J.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={env:[],header:[]},e[0]=t):t=e[0];let[n,r]=(0,Y.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=function(e,t){r(n=>({...n,[e]:t(n[e])}))},e[1]=i):i=e[1];let a=i,o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=function(e){a(e,At)},e[2]=o):o=e[2];let s=o,c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=function(e,t){a(e,e=>e.filter((e,n)=>n!==t))},e[3]=c):c=e[3];let l=c,u;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=function(e,t,n){a(e,e=>e.map((e,r)=>r===t?{...e,...n}:e))},e[4]=u):u=e[4];let d=u,f;return e[5]===n?f=e[6]:(f={lists:n,setEntryLists:r,addEntry:s,removeEntry:l,updateEntry:d},e[5]=n,e[6]=f),f}function At(e){return[...e,Ze]}function jt(e){async function t(){if(!e.projectPath)throw Error(`No project path`);let t=await ue(e.projectPath,e.originalName||e.form.name.trim(),gt(e.form,e.envEntries,e.headerEntries));j({title:`Success`,description:Dt(e.isEditing,t)}),e.onBack()}async function n(){e.setError(null);let n=St(e.form.serverType,e.form);if(n){e.setError(n);return}e.setSaving(!0);try{await t()}catch(t){e.setError(Et(t,`Failed to save server`))}finally{e.setSaving(!1)}}async function r(){if(e.projectPath){e.setDeleting(!0);try{await ge(e.projectPath,e.originalName),j({title:`Success`,description:`MCP server removed`}),e.onBack()}catch(t){e.setError(Et(t,`Failed to delete server`))}finally{e.setDeleting(!1)}}}return{handleSave:n,handleDelete:r}}function Mt(e){let{installedServers:t}=ve(e.projectPath),n=!!e.serverName,[r,i]=(0,Y.useState)(Qe),{lists:a,setEntryLists:o,addEntry:s,removeEntry:c,updateEntry:l}=kt(),[u,d]=(0,Y.useState)({name:``,snapshot:``}),[f,p]=(0,Y.useState)(!1),[m,h]=(0,Y.useState)(!1),[g,_]=(0,Y.useState)(null),[v,y]=(0,Y.useState)(n);(0,Y.useEffect)(()=>{let r=Tt({isEditing:n,serverName:e.serverName,initialName:e.initialName,initialConfig:e.initialConfig,installedServers:t});r&&(i(st(r.name,r.config)),o({env:tt(r.config.env),header:tt(r.config.headers)}),d({name:r.name,snapshot:ct(r.name,et(r.config),r.config)})),(!n||r)&&y(!1)},[t,e.serverName,e.initialName,e.initialConfig,o,n]);function b(e){i(t=>({...t,...e}))}let ee=jt({projectPath:e.projectPath,isEditing:n,form:r,envEntries:a.env,headerEntries:a.header,originalName:u.name,onBack:e.onBack,setError:_,setSaving:p,setDeleting:h});return{form:r,patchForm:b,lists:a,addEntry:s,removeEntry:c,updateEntry:l,saving:f,deleting:m,error:g,loading:v,isEditing:n,busy:f||m,hasChanges:wt({isEditing:n,currentSnapshot:ct(r.name.trim(),r.serverType,gt(r,a.env,a.header)),originalSnapshot:u.snapshot,form:r,envEntries:a.env,headerEntries:a.header}),header:Ot(n,r.name),actions:ee}}function Nt(e){let t=(0,J.c)(65),{projectPath:n,serverName:r,initialName:a,initialConfig:o,onBack:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==s||t[3]!==n||t[4]!==r?(c={projectPath:n,serverName:r,initialName:a,initialConfig:o,onBack:s},t[0]=o,t[1]=a,t[2]=s,t[3]=n,t[4]=r,t[5]=c):c=t[5];let{form:l,patchForm:u,lists:d,addEntry:f,removeEntry:p,updateEntry:m,saving:h,deleting:g,error:_,loading:v,isEditing:y,busy:b,hasChanges:ee,header:x,actions:S}=Mt(c);if(v){let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(Ve,{}),t[6]=e):e=t[6],e}let C;t[7]===x?C=t[8]:(C=(0,X.jsx)(ye,{...x,sticky:!0,className:`pr-10`}),t[7]=x,t[8]=C);let w;t[9]===u?w=t[10]:(w=e=>u({name:e}),t[9]=u,t[10]=w);let T;t[11]!==l.name||t[12]!==y||t[13]!==w?(T=(0,X.jsx)(Ke,{isEditing:y,name:l.name,onNameChange:w}),t[11]=l.name,t[12]=y,t[13]=w,t[14]=T):T=t[14];let E;t[15]===f?E=t[16]:(E=()=>f(`header`),t[15]=f,t[16]=E);let D;t[17]===p?D=t[18]:(D=e=>p(`header`,e),t[17]=p,t[18]=D);let O;t[19]===m?O=t[20]:(O=(e,t)=>m(`header`,e,t),t[19]=m,t[20]=O);let k;t[21]!==l||t[22]!==d.header||t[23]!==u||t[24]!==E||t[25]!==D||t[26]!==O?(k=(0,X.jsx)(Xe,{form:l,onFormChange:u,headerEntries:d.header,onHeaderAdd:E,onHeaderRemove:D,onHeaderUpdate:O}),t[21]=l,t[22]=d.header,t[23]=u,t[24]=E,t[25]=D,t[26]=O,t[27]=k):k=t[27];let A;t[28]===u?A=t[29]:(A=e=>u({defer:e}),t[28]=u,t[29]=A);let j;t[30]!==l.defer||t[31]!==A?(j=(0,X.jsx)(Le,{defer:l.defer,onDeferChange:A}),t[30]=l.defer,t[31]=A,t[32]=j):j=t[32];let M;t[33]===f?M=t[34]:(M=()=>f(`env`),t[33]=f,t[34]=M);let N;t[35]===p?N=t[36]:(N=e=>p(`env`,e),t[35]=p,t[36]=N);let P;t[37]===m?P=t[38]:(P=(e,t)=>m(`env`,e,t),t[37]=m,t[38]=P);let F;t[39]!==l.serverType||t[40]!==d.env||t[41]!==M||t[42]!==N||t[43]!==P?(F=(0,X.jsx)(Be,{serverType:l.serverType,entries:d.env,onAdd:M,onRemove:N,onUpdate:P}),t[39]=l.serverType,t[40]=d.env,t[41]=M,t[42]=N,t[43]=P,t[44]=F):F=t[44];let I;t[45]===_?I=t[46]:(I=_?(0,X.jsx)(`p`,{className:i.error,children:_}):null,t[45]=_,t[46]=I);let L;t[47]!==S.handleDelete||t[48]!==S.handleSave||t[49]!==b||t[50]!==g||t[51]!==ee||t[52]!==y||t[53]!==h?(L=(0,X.jsx)(Ge,{isEditing:y,busy:b,saving:h,deleting:g,hasChanges:ee,onSave:S.handleSave,onDelete:S.handleDelete}),t[47]=S.handleDelete,t[48]=S.handleSave,t[49]=b,t[50]=g,t[51]=ee,t[52]=y,t[53]=h,t[54]=L):L=t[54];let R;t[55]!==j||t[56]!==F||t[57]!==I||t[58]!==L||t[59]!==T||t[60]!==k?(R=(0,X.jsxs)(`div`,{children:[T,k,j,F,I,L]}),t[55]=j,t[56]=F,t[57]=I,t[58]=L,t[59]=T,t[60]=k,t[61]=R):R=t[61];let z;return t[62]!==R||t[63]!==C?(z=(0,X.jsx)(re,{children:(0,X.jsxs)(G,{children:[C,R]})}),t[62]=R,t[63]=C,t[64]=z):z=t[64],z}function Pt(e){if(!e)return null;let t=new Date(e).getTime();if(Number.isNaN(t))return null;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`just now`;let r=Math.round(n/60);if(r<60)return`${r}m ago`;let i=Math.round(r/60);return i<24?`${i}h ago`:new Date(e).toLocaleDateString()}function Ft(e){if(!e||e.state===`missing`||e.state===`stale`)return`Refresh to load tools`;if(e.state===`needs_auth`)return`Sign in required`;if(e.state===`error`)return e.error??`Could not load tools`;let t=e.tools.length,n=t===1?`1 tool`:`${t} tools`,r=Pt(e.refreshedAt);return r?`${n} · refreshed ${r}`:n}function It(e){let t=(0,J.c)(69),{name:n,config:r,catalog:a,remote:o,authorized:c,oauthBusy:u,refreshing:d,onEdit:f,onRefresh:p,onDelete:g,onSignIn:v,onSignOut:y}=e,[b,ee]=(0,Y.useState)(!1),x;if(t[0]!==c||t[1]!==a||t[2]!==r.args||t[3]!==r.command||t[4]!==r.url||t[5]!==b||t[6]!==n||t[7]!==u||t[8]!==g||t[9]!==f||t[10]!==p||t[11]!==v||t[12]!==y||t[13]!==d||t[14]!==o){let e=a?.state===`ok`?a.tools.map(zt):[],E;t[16]!==r.args||t[17]!==r.command||t[18]!==r.url?(E=r.url?r.url:`${r.command??``} ${r.args?.join(` `)??``}`.trim(),t[16]=r.args,t[17]=r.command,t[18]=r.url,t[19]=E):E=t[19];let D=E,O;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=s(i.body,`truncate`),t[20]=O):O=t[20];let k;t[21]===n?k=t[22]:(k=(0,X.jsx)(`div`,{className:O,children:n}),t[21]=n,t[22]=k);let A;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(A=s(i.compact,`truncate text-muted-foreground font-mono`),t[23]=A):A=t[23];let j;t[24]===D?j=t[25]:(j=(0,X.jsx)(`div`,{className:A,children:D}),t[24]=D,t[25]=j);let M;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(M=s(i.caption,`truncate text-muted-foreground`),t[26]=M):M=t[26];let N;t[27]===a?N=t[28]:(N=Ft(a),t[27]=a,t[28]=N);let P;t[29]===N?P=t[30]:(P=(0,X.jsx)(`div`,{className:M,children:N}),t[29]=N,t[30]=P);let F;t[31]!==f||t[32]!==k||t[33]!==j||t[34]!==P?(F=(0,X.jsxs)(`button`,{type:`button`,onClick:f,className:`min-w-0 text-left`,children:[k,j,P]}),t[31]=f,t[32]=k,t[33]=j,t[34]=P,t[35]=F):F=t[35];let I;t[36]!==c||t[37]!==u||t[38]!==v||t[39]!==y||t[40]!==o?(I=o&&(0,X.jsx)(_,{type:`button`,variant:c?`outline`:`secondary`,size:`sm`,disabled:u,onClick:()=>{c?y():v()},children:u?`Working…`:c?`Sign out`:`Sign in`}),t[36]=c,t[37]=u,t[38]=v,t[39]=y,t[40]=o,t[41]=I):I=t[41];let L=`Refresh ${n} tools`,R=d&&`animate-spin`,z;t[42]===R?z=t[43]:(z=s(`h-4 w-4`,R),t[42]=R,t[43]=z);let te;t[44]===z?te=t[45]:(te=(0,X.jsx)(l,{className:z}),t[44]=z,t[45]=te);let ne;t[46]!==p||t[47]!==d||t[48]!==L||t[49]!==te?(ne=(0,X.jsx)(S,{asChild:!0,children:(0,X.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:d,onClick:p,"aria-label":L,children:te})}),t[46]=p,t[47]=d,t[48]=L,t[49]=te,t[50]=ne):ne=t[50];let re;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,X.jsx)(C,{children:`Refresh tools`}),t[51]=re):re=t[51];let B;t[52]===ne?B=t[53]:(B=(0,X.jsx)(w,{children:(0,X.jsxs)(T,{children:[ne,re]})}),t[52]=ne,t[53]=B);let ie=e.length>0&&(0,X.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-expanded":b,"aria-label":b?`Hide tools`:`Show tools`,onClick:()=>ee(Rt),children:(0,X.jsx)(h,{className:s(`h-4 w-4 transition-transform`,b&&`rotate-180`)})}),V;t[54]!==I||t[55]!==B||t[56]!==ie?(V=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[I,B,ie]}),t[54]=I,t[55]=B,t[56]=ie,t[57]=V):V=t[57];let H=`Delete ${n}`,U;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,X.jsx)(m,{className:`h-4 w-4`}),t[58]=U):U=t[58];let ae;t[59]!==g||t[60]!==H?(ae=(0,X.jsx)(S,{asChild:!0,children:(0,X.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`,onClick:g,"aria-label":H,children:U})}),t[59]=g,t[60]=H,t[61]=ae):ae=t[61];let W;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,X.jsx)(C,{children:`Remove this MCP server from the project`}),t[62]=W):W=t[62];let oe;t[63]===ae?oe=t[64]:(oe=(0,X.jsx)(w,{children:(0,X.jsxs)(T,{children:[ae,W]})}),t[63]=ae,t[64]=oe);let G;t[65]!==F||t[66]!==V||t[67]!==oe?(G=(0,X.jsxs)(`div`,{className:`grid min-h-13 grid-cols-[minmax(0,1fr)_auto_1.75rem] items-center gap-3`,children:[F,V,oe]}),t[65]=F,t[66]=V,t[67]=oe,t[68]=G):G=t[68],x=(0,X.jsxs)(`div`,{className:`group px-3 py-3 hover:bg-muted/30`,children:[G,b&&e.length>0&&(0,X.jsx)(`ul`,{className:s(i.caption,`mt-2 space-y-1 pl-1 text-muted-foreground`),children:e.map(Lt)})]}),t[0]=c,t[1]=a,t[2]=r.args,t[3]=r.command,t[4]=r.url,t[5]=b,t[6]=n,t[7]=u,t[8]=g,t[9]=f,t[10]=p,t[11]=v,t[12]=y,t[13]=d,t[14]=o,t[15]=x}else x=t[15];return x}function Lt(e){return(0,X.jsx)(`li`,{className:`font-mono truncate`,children:e},e)}function Rt(e){return!e}function zt(e){return e.name}function Bt(e){return Object.keys(e.env??{}).length>0?{env:e.env}:{}}function Vt(e){return e.name.toLowerCase().replace(/\s+/g,`-`)}function Ht(e,t){let n=Vt(e);return t.some(function(t){return t.name===n||t.name===e.id})}function Ut(e){let t=Vt(e),n=Bt(e);if(e.url!==void 0){let r={url:e.url,transport:e.transport??`sse`,...n};return e.url.trim()?{kind:`automatic`,name:t,config:r}:{kind:`manual`,prefill:{name:t,config:r}}}return e.command?{kind:`automatic`,name:t,config:{command:e.command,args:e.args??[],...n}}:{kind:`invalid`}}async function Wt(e){let t=await ue(e.projectPath,e.serverName,e.config);return await e.loadInstalledServers(),e.triggerExplorerRefresh(),t.catalog}function Gt(e){j({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}function Kt(){j({title:`Error`,description:`This server is missing install configuration.`,variant:`destructive`})}function qt(e){let t=(0,J.c)(15),{projectPath:n,installedServers:r,loadInstalledServers:i,triggerExplorerRefresh:a}=e,[o,s]=(0,Y.useState)(!1),[c,l]=(0,Y.useState)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=function(){s(!1),l(null)},t[0]=u):u=t[0];let d=u,f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=function(){l(null),s(!0)},t[1]=f):f=t[1];let p=f,m;t[2]!==i||t[3]!==a?(m=function(){d(),i(),a()},t[2]=i,t[3]=a,t[4]=m):m=t[4];let h=m,g;t[5]!==r||t[6]!==i||t[7]!==n||t[8]!==a?(g=async function(e){if(!n||Ht(e,r))return;let t=Ut(e);if(t.kind===`manual`){l(t.prefill),s(!0);return}if(t.kind===`invalid`){Kt();return}try{let r=await Wt({projectPath:n,serverName:t.name,config:t.config,loadInstalledServers:i,triggerExplorerRefresh:a});j({title:`MCP server installed`,description:`${e.name} · ${K(r)}`})}catch(e){Gt(e)}},t[5]=r,t[6]=i,t[7]=n,t[8]=a,t[9]=g):g=t[9];let _=g,v;return t[10]!==h||t[11]!==_||t[12]!==c||t[13]!==o?(v={showAddDialog:o,prefillServer:c,installPopularServer:_,openManualAddDialog:p,closeAddDialog:d,completeServerEdit:h},t[10]=h,t[11]=_,t[12]=c,t[13]=o,t[14]=v):v=t[14],v}var Jt=`https://tarsk.io/skills/mcp/`;function Yt(e){return typeof e.url==`string`&&e.url.trim().length>0}function Xt(e,t,n,r,i,a){let[o,s]=(0,Y.useState)(null),[c,l]=(0,Y.useState)(null),[u,d]=(0,Y.useState)(!1),[f,p]=(0,Y.useState)({}),[m,h]=(0,Y.useState)(null),[g,_]=(0,Y.useState)(null),v=(0,Y.useCallback)(async()=>{if(!e){p({});return}let n=t.filter(e=>Yt(e.config));if(n.length===0){p({});return}let r=await Promise.all(n.map(async t=>{try{let n=await O(e,t.name);return[t.name,n.authorized]}catch{return[t.name,!1]}}));p(Object.fromEntries(r))},[e,t]);return(0,Y.useEffect)(()=>{v()},[v]),{editingServer:o,setEditingServer:s,deleteConfirm:c,setDeleteConfirm:l,deleting:u,oauthAuthorized:f,oauthBusy:m,refreshing:g,handleDelete:(0,Y.useCallback)(async t=>{if(e){d(!0);try{await ge(e,t),await n(),r(),j({title:`MCP server removed`,description:t}),l(null)}catch(e){j({title:`Error`,description:e instanceof Error?e.message:`Failed to remove server`,variant:`destructive`})}finally{d(!1)}}},[e,n,r]),handleOAuthSignIn:(0,Y.useCallback)(async t=>{if(e){h(t);try{let r=await D(e,t);await v(),await n(),j({title:`Signed in`,description:r.catalog?`${t} · ${K(r.catalog)}`:`Connected to ${t}`})}catch(e){j({title:`Sign in failed`,description:e instanceof Error?e.message:`OAuth authorization failed`,variant:`destructive`})}finally{h(null)}}},[e,v,n]),handleOAuthSignOut:(0,Y.useCallback)(async t=>{if(e){h(t);try{await k(e,t),await v(),await n(),j({title:`Signed out`,description:t})}catch(e){j({title:`Sign out failed`,description:e instanceof Error?e.message:`Failed to revoke OAuth credentials`,variant:`destructive`})}finally{h(null)}}},[e,v,n]),handleRefreshCatalog:(0,Y.useCallback)(async t=>{if(e){_(t??`all`);try{let r=await fe(e,t);await n();let i=Object.values(r.catalog),[a]=i;if(a)j({title:`Tools refreshed`,description:`${a.serverName} · ${K(a)}`});else{let e=i.filter(e=>e.state===`ok`).length;j({title:`Tools refreshed`,description:`${e}/${i.length} servers loaded`})}}catch(e){j({title:`Refresh failed`,description:e instanceof Error?e.message:`Could not refresh MCP tools`,variant:`destructive`})}finally{_(null)}}},[e,n]),handleOpenInExplorer:(0,Y.useCallback)(()=>{i(`.agents/mcp.json`),a(`explorer`)},[i,a])}}function Zt(){let e=(0,J.c)(102),t=a(tn),n=a(en),r;if(e[0]!==n||e[1]!==t){let i;e[3]===t?i=e[4]:(i=e=>e.projectId===t,e[3]=t,e[4]=i),r=n.find(i),e[0]=n,e[1]=t,e[2]=r}else r=e[2];let o=r?.projectPath,{installedServers:c,catalog:m,loadingConfig:g,loadInstalledServers:v}=ve(o),{popularServers:y,loadingPopular:b}=ae(),{openChatDockPanel:ee}=ce(),{setPendingExplorerPath:x,triggerExplorerRefresh:E}=A(),{editingServer:D,setEditingServer:O,deleteConfirm:k,setDeleteConfirm:j,deleting:M,oauthAuthorized:N,oauthBusy:R,refreshing:z,handleDelete:re,handleOAuthSignIn:B,handleOAuthSignOut:V,handleRefreshCatalog:H,handleOpenInExplorer:U}=Xt(o,c,v,E,x,ee),G;e[5]!==c||e[6]!==v||e[7]!==o||e[8]!==E?(G={projectPath:o,installedServers:c,loadInstalledServers:v,triggerExplorerRefresh:E},e[5]=c,e[6]=v,e[7]=o,e[8]=E,e[9]=G):G=e[9];let{showAddDialog:se,prefillServer:le,installPopularServer:ue,openManualAddDialog:fe,closeAddDialog:me,completeServerEdit:K}=qt(G),ge;e[10]!==g||e[11]!==b?(ge=[g,b],e[10]=g,e[11]=b,e[12]=ge):ge=e[12];let _e=Ce(t,ge);if(!t){let t;return e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(pe,{children:`Select a project to manage MCP servers.`}),e[13]=t):t=e[13],t}let q;e[14]===U?q=e[15]:(q=(0,X.jsx)(_,{variant:`ghost`,onClick:U,children:`Config`}),e[14]=U,e[15]=q);let Y;e[16]!==H||e[17]!==c.length||e[18]!==z?(Y=c.length>=2&&(0,X.jsxs)(_,{variant:`ghost`,className:`gap-1`,disabled:z!==null,onClick:()=>void H(),children:[(0,X.jsx)(l,{className:s(`h-4 w-4`,z===`all`&&`animate-spin`)}),`Refresh all`]}),e[16]=H,e[17]=c.length,e[18]=z,e[19]=Y):Y=e[19];let Z;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,X.jsx)(P,{asChild:!0,children:(0,X.jsxs)(_,{className:`gap-1`,children:[`Add Server`,(0,X.jsx)(h,{className:`h-4 w-4 opacity-70`})]})}),e[20]=Z):Z=e[20];let Te;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(Te=s(i.body,`gap-2`),e[21]=Te):Te=e[21];let Ee;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,X.jsx)(u,{className:`h-4 w-4 shrink-0`}),e[22]=Ee):Ee=e[22];let De;e[23]===fe?De=e[24]:(De=(0,X.jsxs)(W,{className:Te,onSelect:fe,children:[Ee,`Manual Entry`]}),e[23]=fe,e[24]=De);let Oe;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,X.jsxs)(ie,{className:s(i.body,`gap-2`),children:[(0,X.jsx)(d,{className:`h-4 w-4 shrink-0`}),`Popular`]}),e[25]=Oe):Oe=e[25];let Q;e[26]!==ue||e[27]!==c||e[28]!==b||e[29]!==y?(Q=b?(0,X.jsx)(W,{disabled:!0,className:i.bodyMuted,children:`Loading…`}):y.length===0?(0,X.jsx)(W,{disabled:!0,className:i.bodyMuted,children:`No available servers`}):[...y].sort($t).map(e=>{let t=Ht(e,c);return(0,X.jsx)(w,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(S,{asChild:!0,children:(0,X.jsxs)(W,{className:s(i.body,`gap-2`,t&&`opacity-50 cursor-not-allowed`),onSelect:()=>{t||ue(e)},children:[(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),t&&(0,X.jsx)(p,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,X.jsx)(C,{side:`right`,className:`max-w-64`,children:e.description})]})},e.id)}),e[26]=ue,e[27]=c,e[28]=b,e[29]=y,e[30]=Q):Q=e[30];let ke;e[31]===Q?ke=e[32]:(ke=(0,X.jsxs)(oe,{children:[Oe,(0,X.jsx)(be,{className:`w-80 max-h-80 overflow-y-auto`,children:Q})]}),e[31]=Q,e[32]=ke);let Ae;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,X.jsx)(xe,{}),e[33]=Ae):Ae=e[33];let je;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(je=s(i.body,`gap-2`),e[34]=je):je=e[34];let Me;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,X.jsxs)(W,{className:je,onSelect:Qt,children:[(0,X.jsx)(f,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),e[35]=Me):Me=e[35];let Ne;e[36]!==ke||e[37]!==De?(Ne=(0,X.jsxs)(he,{children:[Z,(0,X.jsxs)(de,{align:`end`,className:`w-56`,children:[De,ke,Ae,Me]})]}),e[36]=ke,e[37]=De,e[38]=Ne):Ne=e[38];let Pe;e[39]!==Ne||e[40]!==q||e[41]!==Y?(Pe=(0,X.jsx)(ye,{title:`Installed MCP Servers`,description:`MCP servers configured for this project.`,action:(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[q,Y,Ne]}),sticky:!1}),e[39]=Ne,e[40]=q,e[41]=Y,e[42]=Pe):Pe=e[42];let Fe;e[43]!==m||e[44]!==B||e[45]!==V||e[46]!==H||e[47]!==c||e[48]!==N||e[49]!==R||e[50]!==z||e[51]!==j||e[52]!==O?(Fe=(0,X.jsx)(te,{className:`pt-6`,children:c.length===0?(0,X.jsx)(we,{icon:d,title:`Connect your agent to tools, APIs, and data sources`,bordered:!1}):(0,X.jsx)(`div`,{className:`divide-y divide-table-border`,children:c.map(e=>(0,X.jsx)(It,{name:e.name,config:e.config,catalog:m[e.name],remote:Yt(e.config),authorized:N[e.name]===!0,oauthBusy:R===e.name,refreshing:z===e.name||z===`all`,onEdit:()=>O(e.name),onRefresh:()=>void H(e.name),onDelete:()=>j(e.name),onSignIn:()=>void B(e.name),onSignOut:()=>void V(e.name)},e.name))})}),e[43]=m,e[44]=B,e[45]=V,e[46]=H,e[47]=c,e[48]=N,e[49]=R,e[50]=z,e[51]=j,e[52]=O,e[53]=Fe):Fe=e[53];let Ie;e[54]!==Pe||e[55]!==Fe?(Ie=(0,X.jsxs)(L,{className:`shrink-0`,children:[Pe,Fe]}),e[54]=Pe,e[55]=Fe,e[56]=Ie):Ie=e[56];let Le;e[57]!==_e||e[58]!==Ie?(Le=(0,X.jsx)(ne,{loading:_e,children:Ie}),e[57]=_e,e[58]=Ie,e[59]=Le):Le=e[59];let Re;e[60]!==me||e[61]!==fe?(Re=e=>{e?fe():me()},e[60]=me,e[61]=fe,e[62]=Re):Re=e[62];let ze=le?.name,Be=le?.config,Ve;e[63]!==K||e[64]!==o||e[65]!==ze||e[66]!==Be?(Ve=(0,X.jsx)(F,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,X.jsx)(Nt,{projectPath:o,initialName:ze,initialConfig:Be,onBack:K})}),e[63]=K,e[64]=o,e[65]=ze,e[66]=Be,e[67]=Ve):Ve=e[67];let He;e[68]!==se||e[69]!==Re||e[70]!==Ve?(He=(0,X.jsx)(I,{open:se,onOpenChange:Re,children:Ve}),e[68]=se,e[69]=Re,e[70]=Ve,e[71]=He):He=e[71];let Ue=D!==null,We;e[72]===O?We=e[73]:(We=e=>{e||O(null)},e[72]=O,e[73]=We);let Ge=D??void 0,Ke;e[74]!==v||e[75]!==O||e[76]!==E?(Ke=()=>{O(null),v(),E()},e[74]=v,e[75]=O,e[76]=E,e[77]=Ke):Ke=e[77];let qe;e[78]!==o||e[79]!==Ge||e[80]!==Ke?(qe=(0,X.jsx)(F,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,X.jsx)(Nt,{projectPath:o,serverName:Ge,onBack:Ke})}),e[78]=o,e[79]=Ge,e[80]=Ke,e[81]=qe):qe=e[81];let Je;e[82]!==Ue||e[83]!==We||e[84]!==qe?(Je=(0,X.jsx)(I,{open:Ue,onOpenChange:We,children:qe}),e[82]=Ue,e[83]=We,e[84]=qe,e[85]=Je):Je=e[85];let Ye=k!==null,Xe;e[86]===j?Xe=e[87]:(Xe=e=>!e&&j(null),e[86]=j,e[87]=Xe);let Ze=`Are you sure you want to delete the server "${k}"? This action cannot be undone.`,Qe;e[88]!==k||e[89]!==re?(Qe=()=>{k&&re(k)},e[88]=k,e[89]=re,e[90]=Qe):Qe=e[90];let $e;e[91]!==M||e[92]!==Ye||e[93]!==Xe||e[94]!==Ze||e[95]!==Qe?($e=(0,X.jsx)(Se,{open:Ye,onOpenChange:Xe,title:`Delete MCP Server`,description:Ze,onConfirm:Qe,confirming:M}),e[91]=M,e[92]=Ye,e[93]=Xe,e[94]=Ze,e[95]=Qe,e[96]=$e):$e=e[96];let $;return e[97]!==Le||e[98]!==He||e[99]!==Je||e[100]!==$e?($=(0,X.jsxs)(X.Fragment,{children:[Le,He,Je,$e]}),e[97]=Le,e[98]=He,e[99]=Je,e[100]=$e,e[101]=$):$=e[101],$}function Qt(){E(Jt)}function $t(e,t){return e.name.localeCompare(t.name)}function en(e){return e.projects}function tn(e){return e.selectedProjectId}export{Zt as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{n as a,tt as o}from"./store-DCnnNgwq.js";import{r as s,t as c}from"./utils-uGptTPGm.js";import{t as l}from"./button-zYjzm__g.js";import{r as u}from"./tooltip-6qlOE6WT.js";import{B as d,I as f,L as p,Nt as m,U as h,z as g}from"./api-CX0sFbpL.js";import{t as _}from"./progress-indicator-_fEKurQg.js";import{n as v}from"./suspense-resource-DzlMlIgR.js";import{Ct as y,Ft as b,Kn as x,Mt as S,Ot as ee,Wt as te,en as C,jt as ne,lr as re,ur as w,ut as T,wt as ie,yt as E}from"./index-DpDgcOE9.js";import{i as D,n as O,o as k,r as A,t as j}from"./table-DuD2DtkR.js";import{n as M,t as ae}from"./toggle-group-D0gDKZ9x.js";import{n as N,t as oe}from"./commit-method-fields-6Ag-XY8a.js";import{t as P}from"./async-error-boundary-BS6v_PGo.js";import{t as se}from"./sorting-DqwxPMRN.js";import{c as F,o as ce}from"./settings-list-DajPoFxt.js";import{t as le}from"./use-deferred-search-Dgxosq55.js";import{n as ue,r as I,t as L}from"./model-list-controls-ueD5Yk6B.js";var R=t(),z=e(n(),1);function B(e){let t=(0,R.c)(5),[n,r]=(0,z.useState)(e),i;t[0]===n?i=t[1]:(i=async function(e,t,i,a){if(n[e]?.has(t)){await a(e,t),r(n=>{let r=new Set(n[e]??[]);return r.delete(t),{...n,[e]:r}});return}await i(e,t),r(n=>({...n,[e]:new Set([...n[e]||[],t])}))},t[0]=n,t[1]=i);let a=i,o;return t[2]!==n||t[3]!==a?(o={enabledByProvider:n,toggleModel:a},t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function de(){let e=(0,R.c)(5),t=a(),n;e[0]===t?n=e[1]:(n=function(e){te(),t({type:o.ConfigUpdated}),e(`Model preferences saved successfully`),setTimeout(()=>e(``),3e3)},e[0]=t,e[1]=n);let r=n,i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=function(e,t){e(t instanceof Error?t.message:`Failed to save model changes`)},e[2]=i):i=e[2];let s=i,c;return e[3]===r?c=e[4]:(c={markSaved:r,markFailed:s},e[3]=r,e[4]=c),c}function V(e){let t=(0,R.c)(8),n=a(),r;t[0]!==n||t[1]!==e?(r=function(){n({type:o.ConfigUpdated}),e(`Model preferences saved successfully`)},t[0]=n,t[1]=e,t[2]=r):r=t[2];let i=r,s;t[3]===e?s=t[4]:(s=function(t){e(t instanceof Error?t.message:`Failed to save model changes`)},t[3]=e,t[4]=s);let c=s,l;return t[5]!==c||t[6]!==i?(l={markSaved:i,markFailed:c},t[5]=c,t[6]=i,t[7]=l):l=t[7],l}function fe(e){return`settings-models:coding:${e}`}function H(e){return`settings-models:image:${e}`}async function U(){let e=(await m()).filter(e=>e.apiKey),t=await h(`coding`),n={},r={};for(let i of e){let e=t[i.slug];n[i.slug]=e?.models??[],r[i.slug]=new Set(e?.enabledModelIds??[])}return{providers:e,allModels:n,enabledModelIds:r}}async function W(e){let t=e.filter(e=>e.name.toLowerCase()===`openrouter`),n=await h(`image`),r={},i={};for(let e of t){let t=n[e.slug];r[e.slug]=t?.models??[],i[e.slug]=new Set(t?.enabledModelIds??[])}return{allImageModels:r,enabledImageModelIds:i}}var G=r();function pe(e){let t=(0,R.c)(3),{label:n,large:r}=e,i=r!==void 0&&r?`lg`:`sm`,a;return t[0]!==n||t[1]!==i?(a=(0,G.jsx)(_,{centered:!0,containerClassName:`py-12`,label:n,size:i}),t[0]=n,t[1]=i,t[2]=a):a=t[2],a}var K=`table-fixed`,q=`h-9`,J=c(i.body,`py-1.5`),Y=`w-10 py-1.5`,X=`w-24 py-1.5 text-right`,Z=c(i.body,`w-20 py-1.5 text-right text-muted-foreground tabular-nums`),Q=c(i.body,`w-48 py-1.5 text-right text-muted-foreground whitespace-nowrap tabular-nums`),$=`h-9 w-24 bg-transparent py-2 text-right`,me=`h-9 w-20 bg-transparent py-2 text-right`,he=`h-9 w-48 bg-transparent py-2 text-right`;function ge(e){return!e||(e.prompt??0)===0&&(e.completion??0)===0?``:`$${s(e.prompt??0)} in | $${s(e.completion??0)} out`}function _e(e){return e==null||!Number.isFinite(e)||e<=0?``:e>=100?Math.round(e).toLocaleString():e.toFixed(1)}function ve(e){let t=(0,R.c)(9),{showIntelligence:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(`w-full caption-bottom`,K,i.body),t[0]=r):r=t[0];let a,o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,G.jsx)(D,{className:`h-9 w-10 bg-transparent py-2`}),o=(0,G.jsx)(D,{className:`h-9 bg-transparent py-2`,children:`Model`}),t[1]=a,t[2]=o):(a=t[1],o=t[2]);let s;t[3]===n?s=t[4]:(s=n?(0,G.jsx)(D,{className:$,children:`Intelligence`}):null,t[3]=n,t[4]=s);let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,G.jsx)(D,{className:me,children:`TPS`}),u=(0,G.jsx)(D,{className:he,children:`Pricing`}),t[5]=l,t[6]=u):(l=t[5],u=t[6]);let d;return t[7]===s?d=t[8]:(d=(0,G.jsx)(`table`,{className:r,children:(0,G.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,G.jsxs)(`tr`,{children:[a,o,s,l,u]})})}),t[7]=s,t[8]=d),d}function ye(e){let t=(0,R.c)(15),{models:n,enabledIds:r,checkboxIdPrefix:a,showIntelligence:o,getModelDisplayName:s,onToggleModel:l}=e,u;if(t[0]!==a||t[1]!==r||t[2]!==s||t[3]!==n||t[4]!==l||t[5]!==o){let e;t[7]!==a||t[8]!==r||t[9]!==s||t[10]!==l||t[11]!==o?(e=e=>{let t=`${a}${e.id}`,n=r.has(e.id);return(0,G.jsxs)(k,{className:q,children:[(0,G.jsx)(A,{className:Y,children:(0,G.jsx)(T,{id:t,value:n,onChange:()=>l(e.id),ariaLabel:`${s(e)} ${n?`enabled`:`disabled`}`})}),(0,G.jsx)(A,{className:J,children:(0,G.jsx)(`label`,{htmlFor:t,className:c(i.body,`cursor-pointer truncate peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),children:s(e)})}),o?(0,G.jsx)(A,{className:X,children:(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(I,{codingIndex:e.coding_index,modelName:s(e)})})}):null,(0,G.jsx)(A,{className:Z,children:_e(e.avgTPS)}),(0,G.jsx)(A,{className:Q,children:ge(e.pricing)})]},e.id)},t[7]=a,t[8]=r,t[9]=s,t[10]=l,t[11]=o,t[12]=e):e=t[12],u=n.map(e),t[0]=a,t[1]=r,t[2]=s,t[3]=n,t[4]=l,t[5]=o,t[6]=u}else u=t[6];let d;return t[13]===u?d=t[14]:(d=(0,G.jsx)(j,{className:K,children:(0,G.jsx)(O,{children:u})}),t[13]=u,t[14]=d),d}function be(e){let t=(0,R.c)(25),{providerName:n,providerSlug:r,action:a,tableHeader:o,children:s}=e,l;t[0]!==n||t[1]!==r?(l=(0,G.jsx)(E,{provider:{name:n,slug:r}}),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=c(i.pageTitle,`truncate`),t[3]=u):u=t[3];let d;t[4]===n?d=t[5]:(d=(0,G.jsx)(`h2`,{className:u,children:n}),t[4]=n,t[5]=d);let f;t[6]!==l||t[7]!==d?(f=(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[6]=l,t[7]=d,t[8]=f):f=t[8];let p;t[9]===a?p=t[10]:(p=a?(0,G.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag shrink-0`,children:a}):null,t[9]=a,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-divider px-6 py-4 electrobun-webkit-app-region-drag`,children:[f,p]}),t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;t[14]===o?h=t[15]:(h=o?(0,G.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag px-6 pb-2 pt-4`,children:o}):null,t[14]=o,t[15]=h);let g=o?`pt-0`:`pt-6`,_;t[16]===g?_=t[17]:(_=c(`px-6 pb-6`,g),t[16]=g,t[17]=_);let v;t[18]!==s||t[19]!==_?(v=(0,G.jsx)(`div`,{className:_,children:s}),t[18]=s,t[19]=_,t[20]=v):v=t[20];let y;return t[21]!==v||t[22]!==m||t[23]!==h?(y=(0,G.jsxs)(b,{className:`shrink-0`,children:[m,h,v]}),t[21]=v,t[22]=m,t[23]=h,t[24]=y):y=t[24],y}function xe(e){let t=(0,R.c)(23),{provider:n,filteredAndSortedModels:r,enabledIds:i,globalSearchQuery:a,getModelDisplayName:o,selectAllId:s,checkboxIdPrefix:c,showIntelligence:l,noModelsMessage:d,onToggleAll:f,onToggleModel:p}=e;if(r.length===0&&a)return null;let m;t[0]!==i||t[1]!==r||t[2]!==f||t[3]!==s?(m=r.length>0?(0,G.jsx)(L,{id:s,checked:r.every(e=>i.has(e.id)),onChange:f}):null,t[0]=i,t[1]=r,t[2]=f,t[3]=s,t[4]=m):m=t[4];let h;t[5]!==r.length||t[6]!==l?(h=r.length>0?(0,G.jsx)(ve,{showIntelligence:l}):void 0,t[5]=r.length,t[6]=l,t[7]=h):h=t[7];let g;t[8]!==c||t[9]!==i||t[10]!==r||t[11]!==o||t[12]!==a||t[13]!==d||t[14]!==p||t[15]!==l?(g=r.length===0?(0,G.jsx)(F,{message:a?`No models matching your search.`:d}):(0,G.jsx)(u,{children:(0,G.jsx)(ye,{models:r,enabledIds:i,checkboxIdPrefix:c,showIntelligence:l,getModelDisplayName:o,onToggleModel:p})}),t[8]=c,t[9]=i,t[10]=r,t[11]=o,t[12]=a,t[13]=d,t[14]=p,t[15]=l,t[16]=g):g=t[16];let _;return t[17]!==n.name||t[18]!==n.slug||t[19]!==m||t[20]!==h||t[21]!==g?(_=(0,G.jsx)(be,{providerName:n.name,providerSlug:n.slug,action:m,tableHeader:h,children:g},n.slug),t[17]=n.name,t[18]=n.slug,t[19]=m,t[20]=h,t[21]=g,t[22]=_):_=t[22],_}function Se(e){let t=(0,R.c)(31),{providers:n,globalSearchQuery:r,modelSortBy:i,filterAndSortModels:a,getModelDisplayName:o,onSaveStatus:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=H(0),t[0]=c):c=t[0];let l;t[1]===n?l=t[2]:(l=()=>W(n),t[1]=n,t[2]=l);let u=x(c,l),[d]=(0,z.useState)(u.allImageModels),p=B(u.enabledImageModelIds),m=V(s),h;t[3]!==m||t[4]!==p?(h=async function(e,t){try{await p.toggleModel(e,t,g,f),m.markSaved()}catch(e){let t=e;m.markFailed(t)}},t[3]=m,t[4]=p,t[5]=h):h=t[5];let _=h,v;t[6]!==d||t[7]!==_||t[8]!==p?(v=async function(e,t){let n=d[e];if(!n)return;let r=p.enabledByProvider[e];for(let i of n)r?.has(i.id)!==t&&await _(e,i.id)},t[6]=d,t[7]=_,t[8]=p,t[9]=v):v=t[9];let y=v,b;if(t[10]!==d||t[11]!==a||t[12]!==o||t[13]!==r||t[14]!==y||t[15]!==_||t[16]!==p||t[17]!==i||t[18]!==n){let e;t[20]!==d||t[21]!==a||t[22]!==o||t[23]!==r||t[24]!==y||t[25]!==_||t[26]!==p||t[27]!==i?(e=e=>{let t=d[e.slug]||[],n=p.enabledByProvider[e.slug]||new Set;return(0,G.jsx)(xe,{provider:e,filteredAndSortedModels:a(t,n,i),enabledIds:n,globalSearchQuery:r,getModelDisplayName:o,selectAllId:`select-all-image-${e.slug}`,checkboxIdPrefix:`image-`,showIntelligence:!1,noModelsMessage:`No image models available for this provider.`,onToggleAll:t=>void y(e.slug,t),onToggleModel:t=>void _(e.slug,t)},e.slug)},t[20]=d,t[21]=a,t[22]=o,t[23]=r,t[24]=y,t[25]=_,t[26]=p,t[27]=i,t[28]=e):e=t[28],b=n.filter(Ce).map(e),t[10]=d,t[11]=a,t[12]=o,t[13]=r,t[14]=y,t[15]=_,t[16]=p,t[17]=i,t[18]=n,t[19]=b}else b=t[19];let S;return t[29]===b?S=t[30]:(S=(0,G.jsx)(G.Fragment,{children:b}),t[29]=b,t[30]=S),S}function Ce(e){return e.name.toLowerCase()===`openrouter`}function we(e){let t=(0,R.c)(66),{loadVersion:n}=e,r;t[0]===n?r=t[1]:(r=fe(n),t[0]=n,t[1]=r);let a=x(r,De),o=a.providers,[s]=(0,z.useState)(a.allModels),l=B(a.enabledModelIds),u=de(),[f,m]=(0,z.useState)(`coding`),{query:h,setQuery:g,deferredQuery:_}=le(),[v,te]=(0,z.useState)(`alphabetical`),[C,T]=(0,z.useState)(``),E=Ee,D;t[2]!==u||t[3]!==l?(D=async function(e,t){try{await l.toggleModel(e,t,d,p),u.markSaved(T)}catch(e){let t=e;u.markFailed(T,t)}},t[2]=u,t[3]=l,t[4]=D):D=t[4];let O=D,k;t[5]!==s||t[6]!==l||t[7]!==O?(k=async function(e,t){let n=s[e];if(!n)return;let r=l.enabledByProvider[e];for(let i of n)r?.has(i.id)!==t&&await O(e,i.id)},t[5]=s,t[6]=l,t[7]=O,t[8]=k):k=t[8];let A=k,j;t[9]===_?j=t[10]:(j=(e,t,n)=>se({models:e,query:_,sortBy:n,getDisplayName:E,getPriority:e=>+!t.has(e.id)}),t[9]=_,t[10]=j);let P=j;if(o.length===0){let e;return t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,G.jsx)(ne,{title:`No providers configured`,children:`Configure a provider with an API key to view available models.`}),t[11]=e):e=t[11],e}let F;t[12]===o?F=t[13]:(F=o.some(Te),t[12]=o,t[13]=F);let I=F,L;t[14]!==h||t[15]!==g?(L=(0,G.jsx)(ie,{title:`Models`,description:`View and manage available models from your configured providers.`,action:(0,G.jsx)(ce,{placeholder:`Search`,value:h,onChange:g,className:`mb-0 w-64`}),sticky:!1}),t[14]=h,t[15]=g,t[16]=L):L=t[16];let V;t[17]!==f||t[18]!==g||t[19]!==I?(V=I?(0,G.jsxs)(ae,{type:`single`,value:f,onValueChange:e=>{(e===`coding`||e===`image`)&&(m(e),g(``))},"aria-label":`Model type`,className:c(oe,`shrink-0`),children:[(0,G.jsx)(M,{value:`coding`,"aria-label":`Coding`,className:c(i.body,N),children:`Coding`}),(0,G.jsx)(M,{value:`image`,"aria-label":`Image`,className:c(i.body,N),children:`Image`})]}):null,t[17]=f,t[18]=g,t[19]=I,t[20]=V):V=t[20];let H;t[21]===C?H=t[22]:(H=C?(0,G.jsx)(y,{variant:C.includes(`error`)||C.includes(`Failed`)?`error`:`success`,className:`mb-0 shrink-0`,children:C}):null,t[21]=C,t[22]=H);let U=f===`coding`,W=f===`coding`,K;t[23]!==v||t[24]!==W||t[25]!==U?(K=(0,G.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,G.jsx)(ue,{sortBy:v,showCodingIndex:U,showIntelligenceByPrice:W,onSortByChange:te})}),t[23]=v,t[24]=W,t[25]=U,t[26]=K):K=t[26];let q;t[27]!==K||t[28]!==V||t[29]!==H?(q=(0,G.jsx)(S,{className:`max-w-none pt-6`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[V,H,K]})}),t[27]=K,t[28]=V,t[29]=H,t[30]=q):q=t[30];let J;t[31]!==q||t[32]!==L?(J=(0,G.jsxs)(b,{className:`shrink-0`,children:[L,q]}),t[31]=q,t[32]=L,t[33]=J):J=t[33];let Y;if(t[34]!==s||t[35]!==l||t[36]!==P||t[37]!==h||t[38]!==A||t[39]!==O||t[40]!==v||t[41]!==o){let e;t[43]!==s||t[44]!==l||t[45]!==P||t[46]!==h||t[47]!==A||t[48]!==O||t[49]!==v?(e=e=>{let t=s[e.slug]||[],n=l.enabledByProvider[e.slug]||new Set;return(0,G.jsx)(xe,{provider:e,filteredAndSortedModels:P(t,n,v),enabledIds:n,globalSearchQuery:h,getModelDisplayName:E,selectAllId:`select-all-${e.slug}`,checkboxIdPrefix:``,showIntelligence:v===`coding-index`||v===`intelligence-by-price`,noModelsMessage:`No models available for this provider.`,onToggleAll:t=>void A(e.slug,t),onToggleModel:t=>void O(e.slug,t)},e.slug)},t[43]=s,t[44]=l,t[45]=P,t[46]=h,t[47]=A,t[48]=O,t[49]=v,t[50]=e):e=t[50],Y=o.map(e),t[34]=s,t[35]=l,t[36]=P,t[37]=h,t[38]=A,t[39]=O,t[40]=v,t[41]=o,t[42]=Y}else Y=t[42];let X;t[51]===Y?X=t[52]:(X=(0,G.jsx)(w,{value:`coding`,className:`mt-0 flex flex-col gap-2.5`,children:Y}),t[51]=Y,t[52]=X);let Z;t[53]!==P||t[54]!==h||t[55]!==v||t[56]!==f||t[57]!==o?(Z=f===`image`?(0,G.jsx)(z.Suspense,{fallback:(0,G.jsx)(pe,{}),children:(0,G.jsx)(Se,{providers:o,globalSearchQuery:h,modelSortBy:v,filterAndSortModels:P,getModelDisplayName:E,onSaveStatus:e=>{T(e),e.includes(`Failed`)||setTimeout(()=>T(``),3e3)}})}):null,t[53]=P,t[54]=h,t[55]=v,t[56]=f,t[57]=o,t[58]=Z):Z=t[58];let Q;t[59]===Z?Q=t[60]:(Q=(0,G.jsx)(w,{value:`image`,className:`mt-0 flex flex-col gap-2.5`,children:Z}),t[59]=Z,t[60]=Q);let $;return t[61]!==f||t[62]!==J||t[63]!==X||t[64]!==Q?($=(0,G.jsx)(ee,{loading:!1,children:(0,G.jsxs)(re,{value:f,className:`flex flex-col gap-2.5`,children:[J,X,Q]})}),t[61]=f,t[62]=J,t[63]=X,t[64]=Q,t[65]=$):$=t[65],$}function Te(e){return e.name.toLowerCase()===`openrouter`}function Ee(e){return C(e.id)}function De(){return U()}function Oe(){let e=(0,R.c)(8),[t,n]=(0,z.useState)(0),r;e[0]===t?r=e[1]:(r=function(){v(fe(t)),n(Ae)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,G.jsx)(pe,{label:`Loading models...`,large:!0}),e[2]=a):a=e[2];let o;e[3]===t?o=e[4]:(o=(0,G.jsx)(z.Suspense,{fallback:a,children:(0,G.jsx)(we,{loadVersion:t},t)}),e[3]=t,e[4]=o);let s;return e[5]!==i||e[6]!==o?(s=(0,G.jsx)(`div`,{className:`h-full min-h-0`,children:(0,G.jsx)(P,{fallbackTitle:`Failed to load models`,onRetry:i,renderFallback:ke,children:o})}),e[5]=i,e[6]=o,e[7]=s):s=e[7],s}function ke(e,t){return(0,G.jsx)(ne,{title:`Failed to load models`,action:(0,G.jsx)(l,{variant:`outline`,onClick:t,children:`Retry`}),children:e.message})}function Ae(e){return e+1}export{Oe as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-skills-view-DT6Ldvfn.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-DpDgcOE9.js","assets/react-vendor-Ee0-5T4I.js","assets/progress-indicator-_fEKurQg.js","assets/utils-uGptTPGm.js","assets/dist-FJzwWcMv.js","assets/alert-dialog-Dq9tEk9t.js","assets/button-zYjzm__g.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-BhdiICUV.js","assets/dist-CPtOAqwP.js","assets/es2015-D67vh4rt.js","assets/scroll-area-BTpvIsIG.js","assets/dist-OixawqbU.js","assets/tooltip-6qlOE6WT.js","assets/dist-lnsB93_y.js","assets/use-toast-xpb5jNtN.js","assets/chat-dock-context-DQmDS2i8.js","assets/api-CX0sFbpL.js","assets/store-DCnnNgwq.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/main-tab-context-CNgxXqnH.js","assets/terminal-output-activity-B1bjjsl7.js","assets/query-keys-C2vEjHA1.js","assets/suspense-resource-DzlMlIgR.js","assets/dist-BJaGHz0F.js","assets/dist-B-I0i8QZ.js","assets/dist-B6u0s1jB.js","assets/dist-CX9ud_WC.js","assets/dist-CSssbxDI.js","assets/useBaseQuery-DqLwB2Sq.js","assets/lucide-react-CMzSV2MP.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/index-DCWejG57.css","assets/delete-confirm-dialog-DvJ5VuAy.js","assets/slug-utils-DhQjuU2J.js","assets/settings-list-DajPoFxt.js","assets/card-CpchkvHM.js","assets/use-deferred-search-Dgxosq55.js","assets/use-installed-ai-files-uH9h6W5v.js","assets/use-settings-page-loading-CpaBd260.js","assets/settings-mcp-servers-view-BuGFdY9u.js","assets/settings-system-prompt-view-DcbUbDfa.js","assets/project-tools-view-DrwiTff5.js","assets/settings-slash-commands-view-DxlXk7eT.js","assets/settings-subagents-view-C1r3Jtpe.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{o as a,s as o}from"./chunk-QFMPRPBF-COsSkB7x.js";import{_t as s,vt as c}from"./dist-FJzwWcMv.js";import{t as l}from"./progress-indicator-_fEKurQg.js";import{t as u}from"./settings-tab-bar-T8v2_Dfk.js";var d=t(),f=e(n(),1),p=i(),m=(0,f.lazy)(function(){return r(()=>import(`./settings-skills-view-DT6Ldvfn.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]))}),h=(0,f.lazy)(function(){return r(()=>import(`./settings-mcp-servers-view-BuGFdY9u.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,38,39,42]))}),g=(0,f.lazy)(function(){return r(()=>import(`./settings-system-prompt-view-DcbUbDfa.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,42]))}),_=(0,f.lazy)(function(){return r(()=>import(`./project-tools-view-DrwiTff5.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,42]))}),v=(0,f.lazy)(function(){return r(()=>import(`./settings-slash-commands-view-DxlXk7eT.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,42]))}),y=(0,f.lazy)(function(){return r(()=>import(`./settings-subagents-view-C1r3Jtpe.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41,42]))});function b(e){let t=(0,d.c)(35),{projectId:n,fallbackTab:r,onProjectUpdated:i}=e,b=r===void 0?`skills`:r,x=a(),S=o(),C;t[0]!==b||t[1]!==x?(C=b===`skills`?c(x.pathname)??b:b,t[0]=b,t[1]=x,t[2]=C):C=t[2];let w=C,T;t[3]!==S||t[4]!==n?(T=function(e){if(n){S(`/settings/project/${n}/plugins/${e}`);return}S(`/settings/plugins/${e}`)},t[3]=S,t[4]=n,t[5]=T):T=t[5];let E=T,D;t[6]!==w||t[7]!==E?(D=(0,p.jsx)(u,{value:w,onValueChange:E,options:s}),t[6]=w,t[7]=E,t[8]=D):D=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(l,{centered:!0,label:`Loading plugin settings...`}),t[9]=O):O=t[9];let k;t[10]!==w||t[11]!==x?(k=w===`skills`&&(0,p.jsx)(m,{},x.key),t[10]=w,t[11]=x,t[12]=k):k=t[12];let A;t[13]===w?A=t[14]:(A=w===`mcp-servers`&&(0,p.jsx)(h,{}),t[13]=w,t[14]=A);let j;t[15]===w?j=t[16]:(j=w===`system-prompt`&&(0,p.jsx)(g,{}),t[15]=w,t[16]=j);let M;t[17]!==w||t[18]!==i||t[19]!==n?(M=w===`tools`&&(0,p.jsx)(_,{projectId:n,onProjectUpdated:i}),t[17]=w,t[18]=i,t[19]=n,t[20]=M):M=t[20];let N;t[21]===w?N=t[22]:(N=w===`slash-commands`&&(0,p.jsx)(v,{}),t[21]=w,t[22]=N);let P;t[23]===w?P=t[24]:(P=w===`subagents`&&(0,p.jsx)(y,{}),t[23]=w,t[24]=P);let F;t[25]!==N||t[26]!==P||t[27]!==k||t[28]!==A||t[29]!==j||t[30]!==M?(F=(0,p.jsx)(`div`,{className:`min-h-0 flex-1`,role:`region`,"aria-label":`Plugin settings`,children:(0,p.jsxs)(f.Suspense,{fallback:O,children:[k,A,j,M,N,P]})}),t[25]=N,t[26]=P,t[27]=k,t[28]=A,t[29]=j,t[30]=M,t[31]=F):F=t[31];let I;return t[32]!==F||t[33]!==D?(I=(0,p.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[D,F]}),t[32]=F,t[33]=D,t[34]=I):I=t[34],I}export{b as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/providers-list-view-DXRbYpKr.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-DpDgcOE9.js","assets/react-vendor-Ee0-5T4I.js","assets/progress-indicator-_fEKurQg.js","assets/utils-uGptTPGm.js","assets/dist-FJzwWcMv.js","assets/alert-dialog-Dq9tEk9t.js","assets/button-zYjzm__g.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-BhdiICUV.js","assets/dist-CPtOAqwP.js","assets/es2015-D67vh4rt.js","assets/scroll-area-BTpvIsIG.js","assets/dist-OixawqbU.js","assets/tooltip-6qlOE6WT.js","assets/dist-lnsB93_y.js","assets/use-toast-xpb5jNtN.js","assets/chat-dock-context-DQmDS2i8.js","assets/api-CX0sFbpL.js","assets/store-DCnnNgwq.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/main-tab-context-CNgxXqnH.js","assets/terminal-output-activity-B1bjjsl7.js","assets/query-keys-C2vEjHA1.js","assets/suspense-resource-DzlMlIgR.js","assets/dist-BJaGHz0F.js","assets/dist-B-I0i8QZ.js","assets/dist-B6u0s1jB.js","assets/dist-CX9ud_WC.js","assets/dist-CSssbxDI.js","assets/useBaseQuery-DqLwB2Sq.js","assets/lucide-react-CMzSV2MP.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/index-DCWejG57.css","assets/model-list-controls-ueD5Yk6B.js","assets/sorting-DqwxPMRN.js","assets/async-error-boundary-BS6v_PGo.js","assets/card-CpchkvHM.js","assets/settings-list-DajPoFxt.js","assets/use-deferred-search-Dgxosq55.js","assets/pending-changes-Bn-0ak1d.js","assets/settings-models-view-Dh8eZR6v.js","assets/commit-method-fields-6Ag-XY8a.js","assets/toggle-group-D0gDKZ9x.js","assets/table-DuD2DtkR.js","assets/project-model-aliases-view-t1nijA2C.js","assets/use-settings-page-loading-CpaBd260.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{o as a,s as o}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Ct as s,St as c}from"./dist-FJzwWcMv.js";import{t as l}from"./progress-indicator-_fEKurQg.js";import{t as u}from"./settings-tab-bar-T8v2_Dfk.js";var d=t(),f=e(n(),1),p=i(),m=(0,f.lazy)(function(){return r(()=>import(`./providers-list-view-DXRbYpKr.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]))}),h=(0,f.lazy)(function(){return r(()=>import(`./settings-models-view-Dh8eZR6v.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,44,45,36,37,38,39,40,46,41]))}),g=(0,f.lazy)(function(){return r(()=>import(`./project-model-aliases-view-t1nijA2C.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,46,48]))});function _(e){let t=(0,d.c)(22),{fallbackTab:n}=e,r=n===void 0?`providers`:n,i=a(),_=o(),v;t[0]!==r||t[1]!==i?(v=r===`providers`?s(i.pathname)??r:r,t[0]=r,t[1]=i,t[2]=v):v=t[2];let y=v,b;t[3]===_?b=t[4]:(b=function(e){_(`/settings/${e}`)},t[3]=_,t[4]=b);let x=b,S;t[5]!==y||t[6]!==x?(S=(0,p.jsx)(u,{value:y,onValueChange:x,options:c}),t[5]=y,t[6]=x,t[7]=S):S=t[7];let C;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,p.jsx)(l,{centered:!0,label:`Loading provider settings...`}),t[8]=C):C=t[8];let w;t[9]===y?w=t[10]:(w=y===`providers`&&(0,p.jsx)(m,{}),t[9]=y,t[10]=w);let T;t[11]===y?T=t[12]:(T=y===`models`&&(0,p.jsx)(h,{}),t[11]=y,t[12]=T);let E;t[13]===y?E=t[14]:(E=y===`model-aliases`&&(0,p.jsx)(g,{}),t[13]=y,t[14]=E);let D;t[15]!==w||t[16]!==T||t[17]!==E?(D=(0,p.jsx)(`div`,{className:`min-h-0 flex-1`,role:`region`,"aria-label":`Provider settings`,children:(0,p.jsxs)(f.Suspense,{fallback:C,children:[w,T,E]})}),t[15]=w,t[16]=T,t[17]=E,t[18]=D):D=t[18];let O;return t[19]!==S||t[20]!==D?(O=(0,p.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[S,D]}),t[19]=S,t[20]=D,t[21]=O):O=t[21],O}export{_ as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/project-coding-view-CCT83rVv.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-DpDgcOE9.js","assets/react-vendor-Ee0-5T4I.js","assets/progress-indicator-_fEKurQg.js","assets/utils-uGptTPGm.js","assets/dist-FJzwWcMv.js","assets/alert-dialog-Dq9tEk9t.js","assets/button-zYjzm__g.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-BhdiICUV.js","assets/dist-CPtOAqwP.js","assets/es2015-D67vh4rt.js","assets/scroll-area-BTpvIsIG.js","assets/dist-OixawqbU.js","assets/tooltip-6qlOE6WT.js","assets/dist-lnsB93_y.js","assets/use-toast-xpb5jNtN.js","assets/chat-dock-context-DQmDS2i8.js","assets/api-CX0sFbpL.js","assets/store-DCnnNgwq.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/main-tab-context-CNgxXqnH.js","assets/terminal-output-activity-B1bjjsl7.js","assets/query-keys-C2vEjHA1.js","assets/suspense-resource-DzlMlIgR.js","assets/dist-BJaGHz0F.js","assets/dist-B-I0i8QZ.js","assets/dist-B6u0s1jB.js","assets/dist-CX9ud_WC.js","assets/dist-CSssbxDI.js","assets/useBaseQuery-DqLwB2Sq.js","assets/lucide-react-CMzSV2MP.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/index-DCWejG57.css","assets/commit-method-fields-6Ag-XY8a.js","assets/toggle-group-D0gDKZ9x.js","assets/use-settings-page-loading-CpaBd260.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{o as a,s as o}from"./chunk-QFMPRPBF-COsSkB7x.js";import{gt as s,ht as c}from"./dist-FJzwWcMv.js";import{n as l,r as u,tt as d}from"./store-DCnnNgwq.js";import{t as f}from"./progress-indicator-_fEKurQg.js";import{B as p,Ft as m,Mt as h,wt as g}from"./index-DpDgcOE9.js";import{t as _}from"./settings-tab-bar-T8v2_Dfk.js";var v=e(n(),1),y=t(),b=i();function x(e){let t=(0,y.c)(9),{projectId:n}=e,r=l(),i;t[0]===n?i=t[1]:(i=function(e){return e.projects.find(e=>e.projectId===n)?.commands??[]},t[0]=n,t[1]=i);let a=u(i),o;t[2]===r?o=t[3]:(o=function(){r({type:d.ConfigUpdated})},t[2]=r,t[3]=o);let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,b.jsx)(g,{title:`Project Commands`,description:`Create and manage reusable commands for this project.`}),t[4]=c):c=t[4];let f;return t[5]!==a||t[6]!==s||t[7]!==n?(f=(0,b.jsx)(m,{className:`shrink-0`,children:(0,b.jsxs)(h,{children:[c,(0,b.jsx)(p,{embedded:!0,open:!0,projectId:n,commands:a,onRefresh:s})]})}),t[5]=a,t[6]=s,t[7]=n,t[8]=f):f=t[8],f}var S=(0,v.lazy)(function(){return r(()=>import(`./project-coding-view-CCT83rVv.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]))});function C(e){let t=(0,y.c)(22),{projectId:n,onProjectUpdated:r}=e,i=a(),l=o(),u;t[0]===i.pathname?u=t[1]:(u=s(i.pathname)??`setup`,t[0]=i.pathname,t[1]=u);let d=u,p;t[2]!==l||t[3]!==n?(p=function(e){l(e===`setup`?`/settings/project/${n}/coding`:`/settings/project/${n}/coding/${e}`)},t[2]=l,t[3]=n,t[4]=p):p=t[4];let m=p,h;t[5]!==d||t[6]!==m?(h=(0,b.jsx)(_,{value:d,onValueChange:m,options:c}),t[5]=d,t[6]=m,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,b.jsx)(f,{centered:!0,label:`Loading project setup...`}),t[8]=g):g=t[8];let C;t[9]!==d||t[10]!==r||t[11]!==n?(C=d===`setup`&&(0,b.jsx)(S,{projectId:n,onProjectUpdated:r}),t[9]=d,t[10]=r,t[11]=n,t[12]=C):C=t[12];let w;t[13]!==d||t[14]!==n?(w=d===`commands`&&(0,b.jsx)(x,{projectId:n}),t[13]=d,t[14]=n,t[15]=w):w=t[15];let T;t[16]!==C||t[17]!==w?(T=(0,b.jsx)(`div`,{className:`min-h-0 flex-1`,role:`region`,"aria-label":`Project setup`,children:(0,b.jsxs)(v.Suspense,{fallback:g,children:[C,w]})}),t[16]=C,t[17]=w,t[18]=T):T=t[18];let E;return t[19]!==h||t[20]!==T?(E=(0,b.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[h,T]}),t[19]=h,t[20]=T,t[21]=E):E=t[21],E}export{C as default};
@@ -0,0 +1,2 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{K as i,Wt as a,fn as o}from"./dist-FJzwWcMv.js";import{r as s}from"./store-DCnnNgwq.js";import{t as c,u as l}from"./utils-uGptTPGm.js";import{B as u,L as d,Mt as f,Qt as p,U as m,W as h,Yt as g,a as _,dt as v,gn as y,ht as b}from"./lucide-react-CMzSV2MP.js";import{t as x}from"./button-zYjzm__g.js";import{i as S,n as C,r as w,t as T}from"./tooltip-6qlOE6WT.js";import{$i as E,$t as D,Ai as O,Ci as k,E as A,Fn as j,Ln as M,Ni as N,Xi as P,_r as F,br as I,cr as ee,fr as te,gr as ne,hi as re,hr as ie,kn as ae,lr as oe,mi as se,mr as ce,ur as le,yr as ue}from"./api-CX0sFbpL.js";import{t as L}from"./progress-indicator-_fEKurQg.js";import{a as de,c as fe,i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./alert-dialog-Dq9tEk9t.js";import{t as R}from"./use-toast-xpb5jNtN.js";import{Ar as z,Bn as ye,Bt as be,Cr as xe,Ct as Se,Dr as B,Er as V,Ft as Ce,It as we,Lt as Te,Mt as Ee,Or as H,Ot as De,Pt as Oe,Rt as ke,Tr as U,V as Ae,Vt as je,_r as W,a as Me,ar as Ne,bt as Pe,gr as Fe,jr as G,jt as Ie,kr as K,mr as Le,wr as q,wt as J,xt as Re,yr as ze}from"./index-DpDgcOE9.js";import{t as Be}from"./delete-confirm-dialog-DvJ5VuAy.js";import{t as Ve}from"./use-settings-page-loading-CpaBd260.js";import{a as He,o as Ue,r as We}from"./settings-list-DajPoFxt.js";import{t as Ge}from"./use-deferred-search-Dgxosq55.js";import{i as Ke,n as qe,r as Je,t as Ye}from"./slug-utils-DhQjuU2J.js";import{i as Xe,n as Ze,r as Qe,t as $e}from"./use-installed-ai-files-uH9h6W5v.js";var Y=t(),X=e(n(),1),Z=r();function et({threadId:e,onSkillCreated:t}){let[n,r]=(0,X.useState)(``),[i,o]=(0,X.useState)(``),[s,l]=(0,X.useState)(!1),u=Je(n),d=qe(u),f=async()=>{if(!(!d||!i.trim()||!e)){l(!0);try{let n=await A(e,u,i.trim());R({title:`Skill created`,description:`Skill '${u}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{l(!1)}}};return e?(0,Z.jsx)(Oe,{children:(0,Z.jsxs)(Pe,{children:[(0,Z.jsx)(J,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(Re,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,Z.jsx)(U,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,Z.jsxs)(`p`,{className:c(a.caption,`mt-2`),children:[`Folder name: `,(0,Z.jsx)(`span`,{className:`font-mono`,children:u||`...`})]}):null]}),(0,Z.jsx)(Re,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,Z.jsx)(Ae,{id:`skillDescription`,value:i,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:s})}),(0,Z.jsx)(Ke,{onContinue:()=>void f(),disabled:!d||!i.trim(),creating:s})]})]})}):(0,Z.jsx)(Ie,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}var tt=`.agents/skills`;function nt(e){return`${tt}/${e}`}function rt(e){return`${nt(e)}/SKILL.md`}function it(e,t){let n=t.trim();if(!n)return e;let r=n.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r))}function at(e){let t=[`---`,`name: ${e.id}`,`description: ${e.description}`];return e.allowedTools&&t.push(`allowed-tools: ${e.allowedTools}`),e.license&&t.push(`license: ${e.license}`),t.push(`---`,``,e.instructions??``),t.join(`
2
+ `)}function ot(e,t,n){return it(e,t).filter(e=>!n.has(rt(e.id)))}function st(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function ct(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function lt(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function ut(e,t,n){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(null),h=lt(t,n),g=!!h;return(0,X.useEffect)(()=>{if(!e||!t)return;let r=t,a=lt(r,n),s=!1;async function l(){u(!0),m(null),i([]),o(null),c(``);try{if(a){let e=await le(a,r.id);if(s)return;i(e.files),o(ct(e.files))}else{if(s)return;i([`SKILL.md`]),o(`SKILL.md`),c(at(r))}}catch(e){if(s)return;m(e instanceof Error?e.message:`Failed to load skill files`)}finally{s||u(!1)}}return l(),()=>{s=!0}},[e,t,n]),(0,X.useEffect)(()=>{if(!e||!t||!a||!g||!h)return;let n=t,r=a,i=!1;async function o(){f(!0),m(null);try{let e=await oe(h,n.id,r);if(i)return;c(e.content)}catch(e){if(i)return;m(e instanceof Error?e.message:`Failed to load file`),c(``)}finally{i||f(!1)}}return o(),()=>{i=!0}},[e,t,a,g,h]),{files:r,selectedFile:a,setSelectedFile:o,fileContent:s,loadingFiles:l,contentLoading:l||g&&d,loadError:p,isCatalogSkill:g,effectiveSourceId:h}}function dt({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:i}){let[o,s]=(0,X.useState)(!1),{files:l,selectedFile:u,setSelectedFile:d,fileContent:p,loadingFiles:m,contentLoading:h,loadError:g,effectiveSourceId:_}=ut(e,n,r),v=(0,X.useCallback)(async()=>{if(!n)return;let e=_?{...n,sourceId:_}:n;s(!0);try{await i(e),t(!1)}finally{s(!1)}},[n,_,i,t]),y=u?st(u):!1,b=(0,X.useMemo)(()=>l.map(e=>(0,Z.jsxs)(Ne,{selected:e===u,onClick:()=>d(e),className:`gap-2 cursor-pointer`,children:[(0,Z.jsx)(f,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:c(a.caption,`truncate`),children:e})]},e)),[l,u]);return(0,Z.jsx)(V,{open:e,onOpenChange:t,children:(0,Z.jsxs)(B,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,Z.jsxs)(z,{className:`border-b border-border px-6 py-4`,children:[(0,Z.jsx)(G,{children:n?.name??`Review skill`}),n?.description?(0,Z.jsx)(H,{children:n.description}):null]}),(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row`,children:[(0,Z.jsxs)(`div`,{className:`flex max-h-40 shrink-0 flex-col border-b border-border sm:max-h-none sm:w-56 sm:border-b-0 sm:border-r`,children:[(0,Z.jsx)(`div`,{className:c(a.labelMuted,`px-3 py-2`),children:`Files`}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:m?(0,Z.jsx)(L,{centered:!0,containerClassName:`py-8`,label:`Loading files...`}):l.length===0?(0,Z.jsx)(`p`,{className:c(a.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):b})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:g?(0,Z.jsx)(`p`,{className:c(a.body,`text-destructive`),children:g}):h?(0,Z.jsx)(L,{centered:!0,containerClassName:`py-12`,label:`Loading preview...`}):y?(0,Z.jsx)(ye,{content:p,enableMermaid:!1}):(0,Z.jsx)(`pre`,{className:c(a.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:p})})]}),(0,Z.jsxs)(K,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,Z.jsx)(x,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,Z.jsx)(x,{type:`button`,onClick:()=>void v(),disabled:o||!n,children:o?`Installing...`:`Install`})]})]})})}function ft({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:i,onSourceDeleted:o}){let[s,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(null),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),S=n!=null;function C(){l(``),d(``),p(null),h(!1),_(!1),b(!1)}function w(e){e||C(),t(e)}(0,X.useEffect)(()=>{if(e){if(n){l(n.title),d(n.url),p(null);return}l(``),d(``),p(null)}},[e,n]);async function T(){let e=s.trim(),t=u.trim();if(!e||!t){p(`Title and URL are required.`);return}h(!0),p(null);try{if(S&&n){let r=await ue(n.id,e,t);i?.(r.source)}else r((await I(e,t)).source);w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to verify skill source`)}finally{h(!1)}}async function E(){if(n){_(!0),p(null);try{await ee(n.id),o?.(n.id),b(!1),w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to delete skill source`),b(!1)}finally{_(!1)}}}return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(V,{open:e,onOpenChange:w,children:(0,Z.jsxs)(B,{className:`sm:max-w-lg`,children:[(0,Z.jsxs)(z,{children:[(0,Z.jsx)(G,{children:S?`Edit Skill Source`:`Add Skill Source`}),(0,Z.jsx)(H,{children:S?`Update the title or GitHub skills folder URL for this custom source.`:`Add a GitHub skills folder URL. The source is verified by loading at least one skill from the repository.`})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(q,{htmlFor:`skill-source-title`,children:`Title`}),(0,Z.jsx)(U,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>l(e.target.value),disabled:m||g,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(q,{htmlFor:`skill-source-url`,children:`URL`}),(0,Z.jsx)(U,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:u,onChange:e=>d(e.target.value),disabled:m||g})]}),f?(0,Z.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:f}):null]}),(0,Z.jsxs)(K,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[S?(0,Z.jsx)(x,{type:`button`,variant:`destructive`,onClick:()=>b(!0),disabled:m||g,children:`Delete`}):(0,Z.jsx)(`div`,{className:`hidden sm:block`}),(0,Z.jsxs)(`div`,{className:`flex w-full flex-col-reverse gap-2 sm:w-auto sm:flex-row`,children:[(0,Z.jsx)(x,{variant:`outline`,onClick:()=>w(!1),disabled:m||g,children:`Cancel`}),(0,Z.jsx)(x,{onClick:()=>void T(),disabled:m||g||!s.trim()||!u.trim(),children:m?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(v,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):S?`Save Changes`:`Add Source`})]})]})]})}),(0,Z.jsx)(ve,{open:y,onOpenChange:b,children:(0,Z.jsxs)(pe,{children:[(0,Z.jsxs)(_e,{children:[(0,Z.jsx)(fe,{children:`Delete Skill Source`}),(0,Z.jsxs)(de,{children:[`Are you sure you want to delete "`,n?.title,`"? This removes the source from your list but does not uninstall skills you already added.`]})]}),(0,Z.jsxs)(he,{children:[(0,Z.jsx)(ge,{disabled:g,children:`Cancel`}),(0,Z.jsx)(me,{onClick:()=>void E(),disabled:g,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:g?`Deleting...`:`Delete`})]})]})})]})}function pt(e){let t=e.trim();if(!t)return null;if(/^https?:\/\//i.test(t))try{return new URL(t),t}catch{return null}if(t.startsWith(`tarsk://`))try{let e=new URL(`https://tarsk.invalid/${t.slice(8)}`);if(e.pathname===`/skill-install`&&e.searchParams.get(`url`))return e.searchParams.get(`url`)}catch{return null}return null}function mt(e){let t=(0,Y.c)(40),{open:n,onOpenChange:r,onSubmit:i}=e,[o,s]=(0,X.useState)(``),[l,u]=(0,X.useState)(null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=function(){s(``),u(null)},t[0]=d):d=t[0];let f=d,p;t[1]===r?p=t[2]:(p=function(e){e||f(),r(e)},t[1]=r,t[2]=p);let m=p,h,g;t[3]===n?(h=t[4],g=t[5]):(h=()=>{n&&f()},g=[n],t[3]=n,t[4]=h,t[5]=g),(0,X.useEffect)(h,g);let _;t[6]!==m||t[7]!==i||t[8]!==o?(_=function(){let e=pt(o);if(!e){u(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}i(e),m(!1)},t[6]=m,t[7]=i,t[8]=o,t[9]=_):_=t[9];let v=_,y;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsxs)(z,{children:[(0,Z.jsx)(G,{children:`Add Skill via URL`}),(0,Z.jsx)(H,{children:`Paste the URL of a plugin archive. Its skills and MCP servers are installed into this project.`})]}),t[10]=y):y=t[10];let b;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(q,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=b):b=t[11];let S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>s(e.target.value),t[12]=S):S=t[12];let C;t[13]===v?C=t[14]:(C=e=>{e.key===`Enter`&&(e.preventDefault(),v())},t[13]=v,t[14]=C);let w;t[15]!==C||t[16]!==o?(w=(0,Z.jsx)(U,{id:`add-skill-url`,placeholder:`https://example.com/my-plugin.zip`,value:o,onChange:S,autoFocus:!0,onKeyDown:C}),t[15]=C,t[16]=o,t[17]=w):w=t[17];let T;t[18]===l?T=t[19]:(T=l?(0,Z.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:l}):null,t[18]=l,t[19]=T);let E;t[20]!==w||t[21]!==T?(E=(0,Z.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[b,w,T]})}),t[20]=w,t[21]=T,t[22]=E):E=t[22];let D;t[23]===m?D=t[24]:(D=(0,Z.jsx)(x,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),t[23]=m,t[24]=D);let O;t[25]===o?O=t[26]:(O=o.trim(),t[25]=o,t[26]=O);let k=!O,A;t[27]!==v||t[28]!==k?(A=(0,Z.jsx)(x,{onClick:v,disabled:k,children:`Continue`}),t[27]=v,t[28]=k,t[29]=A):A=t[29];let j;t[30]!==D||t[31]!==A?(j=(0,Z.jsxs)(K,{children:[D,A]}),t[30]=D,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==E||t[34]!==j?(M=(0,Z.jsxs)(B,{className:`sm:max-w-lg`,children:[y,E,j]}),t[33]=E,t[34]=j,t[35]=M):M=t[35];let N;return t[36]!==m||t[37]!==n||t[38]!==M?(N=(0,Z.jsx)(V,{open:n,onOpenChange:m,children:M}),t[36]=m,t[37]=n,t[38]=M,t[39]=N):N=t[39],N}function ht(e){let t=(0,Y.c)(7),{items:n,onPreview:r}=e,i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>{let t=Ye(e.name);return(0,Z.jsxs)(`div`,{className:`group flex min-h-13 items-center gap-3 px-3 py-2`,role:`button`,tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),r(e))},children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:c(a.label,`truncate`),children:t}),(0,Z.jsx)(`p`,{className:c(a.caption,`truncate`),children:e.description})]}),(0,Z.jsx)(w,{delayDuration:300,children:(0,Z.jsxs)(T,{children:[(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(x,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0 opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto`,"aria-label":`Install ${t}`,onClick:t=>{t.stopPropagation(),r(e)},children:(0,Z.jsx)(p,{className:`h-4 w-4`})})}),(0,Z.jsx)(C,{children:`Install skill`})]})})]},e.id)},t[3]=r,t[4]=e),i=n.map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let o;return t[5]===i?o=t[6]:(o=(0,Z.jsx)(`div`,{className:`divide-y divide-table-border`,children:i}),t[5]=i,t[6]=o),o}function gt(e){let t=(0,Y.c)(11),{searchQuery:n,isLoadingCatalog:r,isDefaultSource:i,availablePopular:a,availableCatalog:o,onPreviewPopular:s,onPreviewCatalog:c}=e;if(r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(L,{centered:!0,containerClassName:`py-12`,label:`Loading skills...`}),t[0]=e):e=t[0],e}if(i){if(a.length===0){let e;return t[1]===n?e=t[2]:(e=(0,Z.jsx)(He,{searchQuery:n,emptyLabel:`No available skills found.`}),t[1]=n,t[2]=e),e}let e;return t[3]!==a||t[4]!==s?(e=(0,Z.jsx)(ht,{items:a,onPreview:s}),t[3]=a,t[4]=s,t[5]=e):e=t[5],e}if(o.length===0){let e;return t[6]===n?e=t[7]:(e=(0,Z.jsx)(He,{searchQuery:n,emptyLabel:`No available skills found.`}),t[6]=n,t[7]=e),e}let l;return t[8]!==o||t[9]!==c?(l=(0,Z.jsx)(ht,{items:o,onPreview:c}),t[8]=o,t[9]=c,t[10]=l):l=t[10],l}function _t(e){return e?{ariaLabel:`Edit skill source`,tooltip:`Edit this custom skill source`,icon:m}:{ariaLabel:`Add skill source`,tooltip:`Add a custom skill source`,icon:u}}function vt(e){let t=(0,Y.c)(42),{availableSearch:n,onSearchChange:r,selectedSourceId:i,onSourceChange:a,sources:o,selectedCustomSource:s,availableCatalogLoading:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p,onAddSource:m}=e,h;t[0]===s?h=t[1]:(h=_t(s),t[0]=s,t[1]=h);let g=h,_=g.icon,v;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(w,{children:(0,Z.jsxs)(T,{children:[(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(`span`,{className:`cursor-help`,children:`Available Skills`})}),(0,Z.jsx)(C,{children:`Browse and install skills from the catalog.`})]})}),t[2]=v):v=t[2];let y;t[3]!==n||t[4]!==r?(y=(0,Z.jsx)(Ue,{placeholder:`Search`,value:n,onChange:r,className:`mb-0 w-64`}),t[3]=n,t[4]=r,t[5]=y):y=t[5];let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(be,{className:`w-40`,"aria-label":`Skill source`,children:(0,Z.jsx)(je,{placeholder:`Default`})}),t[6]=b):b=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(ke,{value:`default`,children:`Default`}),t[7]=E):E=t[7];let D;t[8]===o?D=t[9]:(D=o.map(yt),t[8]=o,t[9]=D);let O;t[10]===D?O=t[11]:(O=(0,Z.jsxs)(Te,{children:[E,D]}),t[10]=D,t[11]=O);let k;t[12]!==a||t[13]!==i||t[14]!==O?(k=(0,Z.jsxs)(we,{value:i,onValueChange:a,children:[b,O]}),t[12]=a,t[13]=i,t[14]=O,t[15]=k):k=t[15];let A;t[16]===_?A=t[17]:(A=(0,Z.jsx)(_,{className:`h-4 w-4`}),t[16]=_,t[17]=A);let j;t[18]!==m||t[19]!==g.ariaLabel||t[20]!==A?(j=(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(x,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:m,"aria-label":g.ariaLabel,children:A})}),t[18]=m,t[19]=g.ariaLabel,t[20]=A,t[21]=j):j=t[21];let M;t[22]===g.tooltip?M=t[23]:(M=(0,Z.jsx)(C,{children:g.tooltip}),t[22]=g.tooltip,t[23]=M);let N;t[24]!==j||t[25]!==M?(N=(0,Z.jsx)(w,{children:(0,Z.jsxs)(T,{children:[j,M]})}),t[24]=j,t[25]=M,t[26]=N):N=t[26];let P;t[27]!==N||t[28]!==y||t[29]!==k?(P=(0,Z.jsx)(J,{title:v,action:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y,k,N]}),sticky:!1}),t[27]=N,t[28]=y,t[29]=k,t[30]=P):P=t[30];let F;t[31]!==d||t[32]!==c||t[33]!==u||t[34]!==n||t[35]!==l||t[36]!==p||t[37]!==f?(F=(0,Z.jsx)(Ee,{className:`pt-6`,children:(0,Z.jsx)(gt,{searchQuery:n,isLoadingCatalog:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p})}),t[31]=d,t[32]=c,t[33]=u,t[34]=n,t[35]=l,t[36]=p,t[37]=f,t[38]=F):F=t[38];let I;return t[39]!==P||t[40]!==F?(I=(0,Z.jsxs)(Ce,{className:`shrink-0`,children:[P,F]}),t[39]=P,t[40]=F,t[41]=I):I=t[41],I}function yt(e){return(0,Z.jsx)(ke,{value:e.id,children:e.title},e.id)}var bt=`https://tarsk.io/skills/list/`;function xt(e){let t=(0,Y.c)(20),{onSelectMode:n,manualDisabled:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(xe,{asChild:!0,children:(0,Z.jsxs)(x,{className:`gap-1`,children:[`Add Skill`,(0,Z.jsx)(y,{className:`h-4 w-4 opacity-70`})]})}),t[0]=i):i=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(a.body,`gap-2`),t[1]=o):o=t[1];let s;t[2]===n?s=t[3]:(s=()=>n(`manual`),t[2]=n,t[3]=s);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(h,{className:`h-4 w-4 shrink-0`}),t[4]=l):l=t[4];let u;t[5]!==r||t[6]!==s?(u=(0,Z.jsxs)(W,{className:o,disabled:r,onSelect:s,children:[l,`Manually Enter`]}),t[5]=r,t[6]=s,t[7]=u):u=t[7];let d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=c(a.body,`gap-2`),t[8]=d):d=t[8];let f;t[9]===n?f=t[10]:(f=()=>n(`url`),t[9]=n,t[10]=f);let p;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(b,{className:`h-4 w-4 shrink-0`}),t[11]=p):p=t[11];let m;t[12]===f?m=t[13]:(m=(0,Z.jsxs)(W,{className:d,onSelect:f,children:[p,`Via URL`]}),t[12]=f,t[13]=m);let _;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsx)(ze,{}),t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=c(a.body,`gap-2`),t[15]=v):v=t[15];let S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsxs)(W,{className:v,onSelect:St,children:[(0,Z.jsx)(g,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=S):S=t[16];let C;return t[17]!==u||t[18]!==m?(C=(0,Z.jsxs)(Le,{children:[i,(0,Z.jsxs)(Fe,{align:`end`,className:`w-44`,children:[u,m,_,S]})]}),t[17]=u,t[18]=m,t[19]=C):C=t[19],C}function St(){D(bt)}var Ct=`This skill uses no additional context as it is manually invoked`;function wt(e){return e.builtIn?`text-muted-foreground/50`:e.disableModelInvocation?`text-brand`:`text-foreground`}function Tt(e){return e.disableModelInvocation?Ct:`≈${o(e.description)} tokens of context`}function Et(e){let t=(0,Y.c)(22),n,r,i,a,o,s;if(t[0]!==e){let{onClick:l,ariaLabel:u,...f}=e,p=(0,Z.jsx)(d,{className:c(`h-4 w-4 shrink-0`,wt(f)),"aria-hidden":`true`});i=w,s=300,r=T,t[7]!==u||t[8]!==p||t[9]!==l?(o=(0,Z.jsx)(S,{asChild:!0,children:l?(0,Z.jsx)(`button`,{type:`button`,"aria-label":u,className:`shrink-0 cursor-pointer rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:e=>{e.stopPropagation(),l()},onKeyDown:Dt,children:p}):p}),t[7]=u,t[8]=p,t[9]=l,t[10]=o):o=t[10],n=C,a=Tt(f),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6];let l;t[11]!==n||t[12]!==a?(l=(0,Z.jsx)(n,{children:a}),t[11]=n,t[12]=a,t[13]=l):l=t[13];let u;t[14]!==r||t[15]!==o||t[16]!==l?(u=(0,Z.jsxs)(r,{children:[o,l]}),t[14]=r,t[15]=o,t[16]=l,t[17]=u):u=t[17];let f;return t[18]!==i||t[19]!==s||t[20]!==u?(f=(0,Z.jsx)(i,{delayDuration:s,children:u}),t[18]=i,t[19]=s,t[20]=u,t[21]=f):f=t[21],f}function Dt(e){(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}function Ot(e){let t=[];for(let n of e){if(n.path===`.agents/skills`&&n.type===`folder`&&n.children)for(let e of n.children)e.type===`folder`&&t.push(e);n.children&&n.children.length>0&&t.push(...Ot(n.children))}return t}function kt(e){return`${e.disableModelInvocation?`Enable`:`Disable`} model invocation for ${e.name}`}function At(e){return e?{title:`MCP server installed`,description:`Its MCP servers were added to this project.`}:{title:`Plugin installed`,description:`Its skills and MCP servers were added to this project.`}}function jt(e){return e?.disableModelInvocation?{title:`Enable model invocation?`,description:`"${e.name}" will be offered to the model automatically again, so its description counts towards the context window.`,actionLabel:`Enable`,nextDisableModelInvocation:!1}:{title:`Disable model invocation?`,description:`"${e?.name}" will no longer be offered to the model automatically, so its description stops counting towards the context window. Invoke it manually with /${e?.name}.`,actionLabel:`Disable`,nextDisableModelInvocation:!0}}function Mt(e){let t=(0,Y.c)(24),{skills:n,threadId:r,onOpenSkill:i,onDelete:o,onAddManual:s,onAddUrl:l,onChangeModelInvocation:u}=e,d=!r,f;t[0]!==s||t[1]!==l?(f=e=>{e===`manual`?s():l()},t[0]=s,t[1]=l,t[2]=f):f=t[2];let p;t[3]!==d||t[4]!==f?(p=(0,Z.jsx)(J,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,Z.jsx)(xt,{manualDisabled:d,onSelectMode:f}),sticky:!1}),t[3]=d,t[4]=f,t[5]=p):p=t[5];let m;t[6]===r?m=t[7]:(m=!r&&(0,Z.jsx)(Se,{children:`Select a thread to add or install skills.`}),t[6]=r,t[7]=m);let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h={icon:_,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=h):h=t[8];let g;t[9]===u?g=t[10]:(g=e=>(0,Z.jsxs)(`span`,{className:c(a.body,`flex min-w-0 items-center gap-2 text-left`),children:[(0,Z.jsx)(Et,{description:e.description,disableModelInvocation:e.disableModelInvocation,builtIn:e.virtual,onClick:e.virtual?void 0:()=>u(e),ariaLabel:kt(e)}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.name})]}),t[9]=u,t[10]=g);let v;t[11]===i?v=t[12]:(v=e=>i(e.path),t[11]=i,t[12]=v);let y;t[13]!==o||t[14]!==n||t[15]!==g||t[16]!==v?(y=(0,Z.jsx)(We,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:h,getKey:Ft,renderContent:g,onItemClick:v,itemClickLabel:Pt,onDelete:o,deleteAriaLabel:Nt,deleteTooltip:`Remove this skill from the project`}),t[13]=o,t[14]=n,t[15]=g,t[16]=v,t[17]=y):y=t[17];let b;t[18]!==m||t[19]!==y?(b=(0,Z.jsxs)(Ee,{className:`pt-6`,children:[m,y]}),t[18]=m,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==p||t[22]!==b?(x=(0,Z.jsxs)(Ce,{className:`shrink-0`,children:[p,b]}),t[21]=p,t[22]=b,t[23]=x):x=t[23],x}function Nt(e){return`Delete ${e.name}`}function Pt(e){return`Open ${e.name} in Files`}function Ft(e){return e.id}function It(e){let t=(0,Y.c)(24),{open:n,onOpenChange:r,skill:i,onConfirm:a}=e,o;t[0]===i?o=t[1]:(o=jt(i),t[0]=i,t[1]=o);let s=o,c;t[2]===s.title?c=t[3]:(c=(0,Z.jsx)(fe,{children:s.title}),t[2]=s.title,t[3]=c);let l;t[4]===s.description?l=t[5]:(l=(0,Z.jsx)(de,{children:s.description}),t[4]=s.description,t[5]=l);let u;t[6]!==c||t[7]!==l?(u=(0,Z.jsxs)(_e,{children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(ge,{children:`Cancel`}),t[9]=d):d=t[9];let f;t[10]!==s.nextDisableModelInvocation||t[11]!==a||t[12]!==i?(f=()=>{i&&a(i,s.nextDisableModelInvocation)},t[10]=s.nextDisableModelInvocation,t[11]=a,t[12]=i,t[13]=f):f=t[13];let p;t[14]!==s.actionLabel||t[15]!==f?(p=(0,Z.jsxs)(he,{children:[d,(0,Z.jsx)(me,{onClick:f,children:s.actionLabel})]}),t[14]=s.actionLabel,t[15]=f,t[16]=p):p=t[16];let m;t[17]!==u||t[18]!==p?(m=(0,Z.jsxs)(pe,{children:[u,p]}),t[17]=u,t[18]=p,t[19]=m):m=t[19];let h;return t[20]!==r||t[21]!==n||t[22]!==m?(h=(0,Z.jsx)(ve,{open:n,onOpenChange:r,children:m}),t[20]=r,t[21]=n,t[22]=m,t[23]=h):h=t[23],h}function Lt(){let e=(0,Y.c)(10),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(null),[p,m]=(0,X.useState)(!1),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=function(e){f(e),m(!0)},e[0]=h):h=e[0];let g=h,_;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=function(e){e||u(null)},e[1]=_):_=e[1];let v=_,y;return e[2]!==d||e[3]!==s||e[4]!==l||e[5]!==t||e[6]!==a||e[7]!==p||e[8]!==r?(y={showAddDialog:t,setShowAddDialog:n,showUrlDialog:r,setShowUrlDialog:i,showAddSourceDialog:a,setShowAddSourceDialog:o,pluginImportUrl:s,setPluginImportUrl:c,previewSkill:l,setPreviewSkill:u,invocationSkill:d,showInvocationDialog:p,setShowInvocationDialog:m,openInvocationDialog:g,handlePreviewDialogOpenChange:v},e[2]=d,e[3]=s,e[4]=l,e[5]=t,e[6]=a,e[7]=p,e[8]=r,e[9]=y):y=e[9],y}var Q=`skills:popular`;function Rt(e){return e.map(e=>`${e.id}~${e.name}~${e.description}`).join(`|`)}function zt(){let e=(0,Y.c)(5),[t,n]=(0,X.useState)(Ht),[r,i]=(0,X.useState)(Vt),a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{te().then(e=>{Xe(Q,e),n(t=>Rt(t)===Rt(e)?t:e)}).catch(Bt).finally(()=>i(!1))},o=[],e[0]=a,e[1]=o):(a=e[0],o=e[1]),(0,X.useEffect)(a,o);let s;return e[2]!==r||e[3]!==t?(s={popularSkills:t,loadingPopularSkills:r},e[2]=r,e[3]=t,e[4]=s):s=e[4],s}function Bt(){}function Vt(){return!Ze(Q)}function Ht(){return Qe(Q)??[]}var $=new Map;function Ut(e){let t=$.get(e);if(t)return t;let n=ce(e).finally(()=>{$.delete(e)});return $.set(e,n),n}function Wt(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function Gt(){let e=(0,Y.c)(18),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,X.useState)(t),[i,a]=(0,X.useState)(O),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[1]=o):o=e[1];let[s,c]=(0,X.useState)(o),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=async()=>{try{r(await ie())}catch{r([])}},e[2]=p):p=e[2];let m=p,h,g;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{(async function(){let e=k();if(e.length>0)try{await ne(e),se()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,X.useEffect)(h,g);let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{a(e),P(e)},e[5]=_):_=e[5];let v=_,y;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{r(t=>[...t.filter(t=>t.id!==e.id),e].sort(qt)),v(e.id)},e[6]=y):y=e[6];let b=y,x;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{r(t=>t.map(t=>t.id===e.id?e:t).sort(Kt)),re(e.id)},e[7]=x):x=e[7];let S=x,C;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{r(t=>t.filter(t=>t.id!==e)),re(e),a(t=>t===e?(P(`default`),`default`):t)},e[8]=C):C=e[8];let w=C,T,D;e[9]===i?(T=e[10],D=e[11]):(D=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=N(i);e?.skills?(c(Wt(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),Ut(i).then(e=>{if(t)return;let n=Wt(i,e);c(n),E(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),R({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},T=[i],e[9]=i,e[10]=T,e[11]=D),(0,X.useEffect)(D,T);let A;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(A={sources:n,selectedSourceId:i,setSelectedSourceId:v,addSource:b,updateSource:S,removeSource:w,reloadSources:m,catalogSkills:s,isLoadingCatalog:l,isRefreshingCatalog:d},e[12]=s,e[13]=l,e[14]=d,e[15]=i,e[16]=n,e[17]=A):A=e[17],A}function Kt(e,t){return e.title.localeCompare(t.title)}function qt(e,t){return e.title.localeCompare(t.title)}function Jt(e){let t=(0,Y.c)(26),{popularSkills:n,loadingPopularSkills:r}=zt(),{sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,catalogSkills:d,isLoadingCatalog:f}=Gt(),{query:p,setQuery:m,deferredQuery:h}=Ge(),g=o==="default",_;t[0]!==o||t[1]!==a?(_=i(o)?a.find(e=>e.id===o)??null:null,t[0]=o,t[1]=a,t[2]=_):_=t[2];let v=_,y=!g&&f&&d.length===0,b;t[3]!==h||t[4]!==e||t[5]!==n?(b=ot(n,h,e),t[3]=h,t[4]=e,t[5]=n,t[6]=b):b=t[6];let x=b,S;t[7]!==d||t[8]!==h||t[9]!==e?(S=ot(d,h,e),t[7]=d,t[8]=h,t[9]=e,t[10]=S):S=t[10];let C=S,w;return t[11]!==c||t[12]!==C||t[13]!==y||t[14]!==x||t[15]!==p||t[16]!==g||t[17]!==r||t[18]!==u||t[19]!==v||t[20]!==o||t[21]!==m||t[22]!==s||t[23]!==a||t[24]!==l?(w={availableSearch:p,setAvailableSearch:m,availablePopular:x,availableCatalog:C,availableCatalogLoading:y,isDefaultSource:g,selectedCustomSource:v,sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,loadingPopularSkills:r},t[11]=c,t[12]=C,t[13]=y,t[14]=x,t[15]=p,t[16]=g,t[17]=r,t[18]=u,t[19]=v,t[20]=o,t[21]=m,t[22]=s,t[23]=a,t[24]=l,t[25]=w):w=t[25],w}async function Yt(e,t){let n=rt(t.id);if(!e.threadId||e.installedFilePaths.has(n))return;let r=t.sourceId??(e.selectedSourceId==="default"?void 0:e.selectedSourceId);try{r?await F(e.threadId,r,t.id,nt(t.id)):await ae(e.threadId,n,at(t)),e.setInstalledFilePaths(e=>new Set(e).add(n)),e.triggerExplorerRefresh(),e.reloadSkills(),R({title:`Skill installed`,description:t.name})}catch(e){throw R({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}}async function Xt(e,t,n){if(e.projectId)try{try{await j(e.projectId,t.name,n)}catch{if(!e.threadId)throw Error(`No thread selected to update this skill`);await M(e.threadId,t.name,n)}e.triggerExplorerRefresh(),await e.reloadSkills(),R({title:n?`Model invocation disabled`:`Model invocation enabled`,description:n?`${t.name} is now invoked manually with /${t.name}.`:`${t.name} is offered to the model again.`})}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to update skill`,variant:`destructive`})}}function Zt(){let e=(0,Y.c)(34),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={findItems:Ot,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`},e[0]=t):t=e[0];let n=$e(t),r=s(Qt),i=r.find(e=>e.projectId===n.selectedProjectId)??null,a=Lt(),o=Jt(n.installedFilePaths),c;e[1]!==o.loadingPopularSkills||e[2]!==n.loading?(c=[n.loading,o.loadingPopularSkills],e[1]=o.loadingPopularSkills,e[2]=n.loading,e[3]=c):c=e[3];let u=Ve(n.selectedProjectId?`${n.selectedProjectId}:${n.selectedThreadId??``}`:null,c),d;e[4]!==o.selectedSourceId||e[5]!==n.installedFilePaths||e[6]!==n.loadItems||e[7]!==n.selectedThreadId||e[8]!==n.setInstalledFilePaths||e[9]!==n.triggerExplorerRefresh?(d=function(e){return Yt({threadId:n.selectedThreadId,selectedSourceId:o.selectedSourceId,installedFilePaths:n.installedFilePaths,setInstalledFilePaths:n.setInstalledFilePaths,triggerExplorerRefresh:n.triggerExplorerRefresh,reloadSkills:n.loadItems},e)},e[4]=o.selectedSourceId,e[5]=n.installedFilePaths,e[6]=n.loadItems,e[7]=n.selectedThreadId,e[8]=n.setInstalledFilePaths,e[9]=n.triggerExplorerRefresh,e[10]=d):d=e[10];let f=d,p;e[11]!==n.loadItems||e[12]!==n.selectedProjectId||e[13]!==n.selectedThreadId||e[14]!==n.triggerExplorerRefresh?(p=function(e,t){return Xt({projectId:n.selectedProjectId,threadId:n.selectedThreadId,triggerExplorerRefresh:n.triggerExplorerRefresh,reloadSkills:n.loadItems},e,t)},e[11]=n.loadItems,e[12]=n.selectedProjectId,e[13]=n.selectedThreadId,e[14]=n.triggerExplorerRefresh,e[15]=p):p=e[15];let m=p,h;e[16]===n?h=e[17]:(h=function(e){e||n.setDeleteConfirm(null)},e[16]=n,e[17]=h);let g=h,_;e[18]===n?_=e[19]:(_=function(){n.deleteConfirm&&n.handleDelete(n.deleteConfirm)},e[18]=n,e[19]=_);let v=_,y;e[20]===n?y=e[21]:(y=function(e){n.loadItems(),n.triggerExplorerRefresh(),R(At(e))},e[20]=n,e[21]=y);let b=y,x=i?l(i):null,S;return e[22]!==o||e[23]!==a||e[24]!==m||e[25]!==v||e[26]!==g||e[27]!==f||e[28]!==b||e[29]!==n||e[30]!==u||e[31]!==r||e[32]!==x?(S={installed:n,projects:r,selectedProjectName:x,dialogs:a,available:o,pageLoading:u,handleInstallPreviewSkill:f,handleConfirmModelInvocation:m,handleDeleteDialogOpenChange:g,handleDeleteConfirm:v,handlePluginInstalled:b},e[22]=o,e[23]=a,e[24]=m,e[25]=v,e[26]=g,e[27]=f,e[28]=b,e[29]=n,e[30]=u,e[31]=r,e[32]=x,e[33]=S):S=e[33],S}function Qt(e){return e.projects}function $t(){let e=(0,Y.c)(101),t=Zt(),{installed:n,dialogs:r,available:i}=t;if(!n.selectedProjectId){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(Ie,{children:`Select a project to manage skills.`}),e[0]=t):t=e[0],t}let a,o;e[1]===r?(a=e[2],o=e[3]):(a=()=>r.setShowAddDialog(!0),o=()=>r.setShowUrlDialog(!0),e[1]=r,e[2]=a,e[3]=o);let s;e[4]!==r.openInvocationDialog||e[5]!==n.handleOpenInExplorer||e[6]!==n.items||e[7]!==n.selectedThreadId||e[8]!==n.setDeleteConfirm||e[9]!==a||e[10]!==o?(s=(0,Z.jsx)(Mt,{skills:n.items,threadId:n.selectedThreadId,onOpenSkill:n.handleOpenInExplorer,onDelete:n.setDeleteConfirm,onAddManual:a,onAddUrl:o,onChangeModelInvocation:r.openInvocationDialog}),e[4]=r.openInvocationDialog,e[5]=n.handleOpenInExplorer,e[6]=n.items,e[7]=n.selectedThreadId,e[8]=n.setDeleteConfirm,e[9]=a,e[10]=o,e[11]=s):s=e[11];let c;e[12]===r?c=e[13]:(c=e=>r.setPreviewSkill(e),e[12]=r,e[13]=c);let l;e[14]!==i.selectedSourceId||e[15]!==r?(l=e=>r.setPreviewSkill({...e,sourceId:e.sourceId??i.selectedSourceId}),e[14]=i.selectedSourceId,e[15]=r,e[16]=l):l=e[16];let u;e[17]===r?u=e[18]:(u=()=>r.setShowAddSourceDialog(!0),e[17]=r,e[18]=u);let d;e[19]!==i.availableCatalog||e[20]!==i.availableCatalogLoading||e[21]!==i.availablePopular||e[22]!==i.availableSearch||e[23]!==i.isDefaultSource||e[24]!==i.selectedCustomSource||e[25]!==i.selectedSourceId||e[26]!==i.setAvailableSearch||e[27]!==i.setSelectedSourceId||e[28]!==i.sources||e[29]!==c||e[30]!==l||e[31]!==u?(d=(0,Z.jsx)(vt,{availableSearch:i.availableSearch,onSearchChange:i.setAvailableSearch,selectedSourceId:i.selectedSourceId,onSourceChange:i.setSelectedSourceId,sources:i.sources,selectedCustomSource:i.selectedCustomSource,availableCatalogLoading:i.availableCatalogLoading,isDefaultSource:i.isDefaultSource,availablePopular:i.availablePopular,availableCatalog:i.availableCatalog,onPreviewPopular:c,onPreviewCatalog:l,onAddSource:u}),e[19]=i.availableCatalog,e[20]=i.availableCatalogLoading,e[21]=i.availablePopular,e[22]=i.availableSearch,e[23]=i.isDefaultSource,e[24]=i.selectedCustomSource,e[25]=i.selectedSourceId,e[26]=i.setAvailableSearch,e[27]=i.setSelectedSourceId,e[28]=i.sources,e[29]=c,e[30]=l,e[31]=u,e[32]=d):d=e[32];let f;e[33]!==t.pageLoading||e[34]!==s||e[35]!==d?(f=(0,Z.jsxs)(De,{loading:t.pageLoading,children:[s,d]}),e[33]=t.pageLoading,e[34]=s,e[35]=d,e[36]=f):f=e[36];let p=r.previewSkill!==null,m=i.isDefaultSource?void 0:i.selectedSourceId,h;e[37]!==r.handlePreviewDialogOpenChange||e[38]!==r.previewSkill||e[39]!==t.handleInstallPreviewSkill||e[40]!==p||e[41]!==m?(h=(0,Z.jsx)(dt,{open:p,onOpenChange:r.handlePreviewDialogOpenChange,skill:r.previewSkill,catalogSourceId:m,onInstall:t.handleInstallPreviewSkill}),e[37]=r.handlePreviewDialogOpenChange,e[38]=r.previewSkill,e[39]=t.handleInstallPreviewSkill,e[40]=p,e[41]=m,e[42]=h):h=e[42];let g;e[43]!==r.invocationSkill||e[44]!==r.setShowInvocationDialog||e[45]!==r.showInvocationDialog||e[46]!==t.handleConfirmModelInvocation?(g=(0,Z.jsx)(It,{open:r.showInvocationDialog,onOpenChange:r.setShowInvocationDialog,skill:r.invocationSkill,onConfirm:t.handleConfirmModelInvocation}),e[43]=r.invocationSkill,e[44]=r.setShowInvocationDialog,e[45]=r.showInvocationDialog,e[46]=t.handleConfirmModelInvocation,e[47]=g):g=e[47];let _,v,y;e[48]===i?(_=e[49],v=e[50],y=e[51]):(_=e=>{i.addSource(e),R({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},v=e=>{i.updateSource(e),R({title:`Skill source updated`,description:`${e.title} has been saved.`})},y=e=>{i.removeSource(e),R({title:`Skill source removed`,description:`The custom source has been deleted.`})},e[48]=i,e[49]=_,e[50]=v,e[51]=y);let b;e[52]!==i.selectedCustomSource||e[53]!==r.setShowAddSourceDialog||e[54]!==r.showAddSourceDialog||e[55]!==_||e[56]!==v||e[57]!==y?(b=(0,Z.jsx)(ft,{open:r.showAddSourceDialog,onOpenChange:r.setShowAddSourceDialog,editingSource:i.selectedCustomSource,onSourceAdded:_,onSourceUpdated:v,onSourceDeleted:y}),e[52]=i.selectedCustomSource,e[53]=r.setShowAddSourceDialog,e[54]=r.showAddSourceDialog,e[55]=_,e[56]=v,e[57]=y,e[58]=b):b=e[58];let x;e[59]!==r||e[60]!==n?(x=()=>{r.setShowAddDialog(!1),n.loadItems(),n.triggerExplorerRefresh()},e[59]=r,e[60]=n,e[61]=x):x=e[61];let S;e[62]!==n.selectedThreadId||e[63]!==x?(S=(0,Z.jsx)(B,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,Z.jsx)(et,{threadId:n.selectedThreadId,onSkillCreated:x})}),e[62]=n.selectedThreadId,e[63]=x,e[64]=S):S=e[64];let C;e[65]!==r.setShowAddDialog||e[66]!==r.showAddDialog||e[67]!==S?(C=(0,Z.jsx)(V,{open:r.showAddDialog,onOpenChange:r.setShowAddDialog,children:S}),e[65]=r.setShowAddDialog,e[66]=r.showAddDialog,e[67]=S,e[68]=C):C=e[68];let w;e[69]===r?w=e[70]:(w=e=>r.setPluginImportUrl(e),e[69]=r,e[70]=w);let T;e[71]!==r.setShowUrlDialog||e[72]!==r.showUrlDialog||e[73]!==w?(T=(0,Z.jsx)(mt,{open:r.showUrlDialog,onOpenChange:r.setShowUrlDialog,onSubmit:w}),e[71]=r.setShowUrlDialog,e[72]=r.showUrlDialog,e[73]=w,e[74]=T):T=e[74];let E;e[75]===r?E=e[76]:(E=()=>r.setPluginImportUrl(null),e[75]=r,e[76]=E);let D;e[77]===t?D=e[78]:(D=e=>{let{mcpOnly:n}=e;t.handlePluginInstalled(n)},e[77]=t,e[78]=D);let O;e[79]!==r.pluginImportUrl||e[80]!==n.selectedProjectId||e[81]!==t.projects||e[82]!==t.selectedProjectName||e[83]!==E||e[84]!==D?(O=(0,Z.jsx)(Me,{url:r.pluginImportUrl,projectId:n.selectedProjectId,projectName:t.selectedProjectName,projects:t.projects,onSelectProject:en,onClose:E,onInstalled:D}),e[79]=r.pluginImportUrl,e[80]=n.selectedProjectId,e[81]=t.projects,e[82]=t.selectedProjectName,e[83]=E,e[84]=D,e[85]=O):O=e[85];let k=n.deleteConfirm!==null,A=`Are you sure you want to delete the skill "${n.deleteConfirm?.name}"? This action cannot be undone.`,j;e[86]!==n.deleting||e[87]!==t.handleDeleteConfirm||e[88]!==t.handleDeleteDialogOpenChange||e[89]!==k||e[90]!==A?(j=(0,Z.jsx)(Be,{open:k,onOpenChange:t.handleDeleteDialogOpenChange,title:`Delete Skill`,description:A,onConfirm:t.handleDeleteConfirm,confirming:n.deleting}),e[86]=n.deleting,e[87]=t.handleDeleteConfirm,e[88]=t.handleDeleteDialogOpenChange,e[89]=k,e[90]=A,e[91]=j):j=e[91];let M;return e[92]!==h||e[93]!==g||e[94]!==b||e[95]!==C||e[96]!==T||e[97]!==O||e[98]!==j||e[99]!==f?(M=(0,Z.jsxs)(Z.Fragment,{children:[f,h,g,b,C,T,O,j]}),e[92]=h,e[93]=g,e[94]=b,e[95]=C,e[96]=T,e[97]=O,e[98]=j,e[99]=f,e[100]=M):M=e[100],M}function en(){}export{$t as SettingsSkillsView,$t as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Ut as i}from"./dist-Ch137qdo.js";import{t as a}from"./utils-CWTBjUlE.js";import{Zt as o,d as s,dt as c,nn as l}from"./lucide-react-C-dX1rVz.js";import{t as u}from"./button-DVIjvd2G.js";import{Fn as d,It as f,Lt as p,M as m,Ot as h,S as g,p as _}from"./api-IMkL19mR.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{Bt as y,Ft as b,It as x,Lt as S,Mt as C,bt as w,kt as T,wr as E,wt as D,zt as O}from"./index-C3E_66vw.js";var k=t(),A=r();function j(e){return e.configured?[e.botUsername?`@${e.botUsername}`:e.botTokenPreview,`Bridge ${e.bridgeRunning?`running`:`stopped`}`,e.teamName].filter(Boolean).join(` · `):`Not configured`}function M(e){let t=(0,k.c)(51),{settings:n,drafts:r,isSavingTokens:s,onDraftChange:d,onSaveTokens:f,onClearTokens:p,onCopyManifest:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,A.jsx)(D,{title:`Slack App`}),t[0]=h):h=t[0];let g;t[1]===m?g=t[2]:(g=()=>void m(),t[1]=m,t[2]=g);let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,A.jsx)(l,{className:`mr-2 h-4 w-4`}),t[3]=_):_=t[3];let v;t[4]===g?v=t[5]:(v=(0,A.jsxs)(u,{type:`button`,variant:`outline`,size:`sm`,onClick:g,children:[_,`Copy app manifest`]}),t[4]=g,t[5]=v);let y;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,A.jsx)(u,{type:`button`,variant:`outline`,size:`sm`,asChild:!0,children:(0,A.jsxs)(`a`,{href:`/slack-app-icon.png`,download:`tarsk-slack-app-icon.png`,children:[(0,A.jsx)(o,{className:`mr-2 h-4 w-4`}),`Download app icon`]})}),t[6]=y):y=t[6];let b;t[7]===v?b=t[8]:(b=(0,A.jsx)(w,{title:`App Manifest`,description:`Create a Slack app from this manifest, enable Socket Mode, then paste the Bot and App-Level tokens below. The Slack manifest cannot include an app icon — download the Tarsk logo and upload it under Basic Information after creating the app.`,controlLayout:`row-end`,action:(0,A.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[v,y]})}),t[7]=v,t[8]=b);let x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(x=a(`text-muted-foreground`,i.bodyMuted),t[9]=x):x=t[9];let S;t[10]===n?S=t[11]:(S=j(n),t[10]=n,t[11]=S);let C;t[12]===S?C=t[13]:(C=(0,A.jsx)(w,{title:`Status`,description:`Bot identity and Socket Mode bridge status.`,children:(0,A.jsx)(`span`,{className:x,children:S})}),t[12]=S,t[13]=C);let O=n.botTokenPreview||`xoxb-…`,M;t[14]===d?M=t[15]:(M=e=>d(`botToken`,e.target.value),t[14]=d,t[15]=M);let N;t[16]!==r.botToken||t[17]!==O||t[18]!==M?(N=(0,A.jsx)(w,{title:`Bot Token`,description:`Bot User OAuth Token from your Slack app (starts with xoxb-).`,children:(0,A.jsx)(E,{id:`slack-bot-token`,type:`password`,autoComplete:`off`,placeholder:O,value:r.botToken,onChange:M})}),t[16]=r.botToken,t[17]=O,t[18]=M,t[19]=N):N=t[19];let P=n.appTokenPreview||`xapp-…`,F;t[20]===d?F=t[21]:(F=e=>d(`appToken`,e.target.value),t[20]=d,t[21]=F);let I;t[22]!==r.appToken||t[23]!==P||t[24]!==F?(I=(0,A.jsx)(w,{title:`App-Level Token`,description:`App-Level Token with connections:write for Socket Mode (starts with xapp-).`,children:(0,A.jsx)(E,{id:`slack-app-token`,type:`password`,autoComplete:`off`,placeholder:P,value:r.appToken,onChange:F})}),t[22]=r.appToken,t[23]=P,t[24]=F,t[25]=I):I=t[25];let L;t[26]===f?L=t[27]:(L=()=>void f(),t[26]=f,t[27]=L);let R;t[28]!==r.appToken||t[29]!==r.botToken||t[30]!==s?(R=s||!r.botToken.trim()||!r.appToken.trim(),t[28]=r.appToken,t[29]=r.botToken,t[30]=s,t[31]=R):R=t[31];let z;t[32]===s?z=t[33]:(z=s?(0,A.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,t[32]=s,t[33]=z);let B;t[34]!==L||t[35]!==R||t[36]!==z?(B=(0,A.jsxs)(u,{type:`button`,onClick:L,disabled:R,children:[z,`Save`]}),t[34]=L,t[35]=R,t[36]=z,t[37]=B):B=t[37];let V;t[38]!==s||t[39]!==p||t[40]!==n.configured?(V=n.configured?(0,A.jsx)(u,{type:`button`,variant:`outline`,onClick:()=>void p(),disabled:s,children:`Clear`}):null,t[38]=s,t[39]=p,t[40]=n.configured,t[41]=V):V=t[41];let H;t[42]!==B||t[43]!==V?(H=(0,A.jsx)(w,{title:`Tokens`,description:`Save both tokens to start the bridge, or clear them to disconnect.`,controlLayout:`row-end`,action:(0,A.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[B,V]})}),t[42]=B,t[43]=V,t[44]=H):H=t[44];let U;return t[45]!==N||t[46]!==I||t[47]!==H||t[48]!==b||t[49]!==C?(U=(0,A.jsxs)(`div`,{children:[h,(0,A.jsxs)(T,{children:[b,C,N,I,H]})]}),t[45]=N,t[46]=I,t[47]=H,t[48]=b,t[49]=C,t[50]=U):U=t[50],U}function N(e,t){return t.find(t=>t.projectId===e.projectId)?.name||e.projectId}function P(e){let t=(0,k.c)(20),{binding:n,projects:r,onDelete:o}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=a(i.compact),t[0]=c):c=t[0];let l=n.slackChannelName||n.slackChannelId,d;t[1]===l?d=t[2]:(d=(0,A.jsx)(`div`,{className:`font-medium`,children:l}),t[1]=l,t[2]=d);let f;t[3]!==n||t[4]!==r?(f=N(n,r),t[3]=n,t[4]=r,t[5]=f):f=t[5];let p;t[6]===f?p=t[7]:(p=(0,A.jsx)(`div`,{className:`text-muted-foreground`,children:f}),t[6]=f,t[7]=p);let m;t[8]!==d||t[9]!==p?(m=(0,A.jsxs)(`div`,{className:c,children:[d,p]}),t[8]=d,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n||t[12]!==o?(h=()=>void o(n),t[11]=n,t[12]=o,t[13]=h):h=t[13];let g;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(s,{className:`h-4 w-4`}),t[14]=g):g=t[14];let _;t[15]===h?_=t[16]:(_=(0,A.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,onClick:h,"aria-label":`Remove binding`,children:g}),t[15]=h,t[16]=_);let v;return t[17]!==m||t[18]!==_?(v=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border px-3 py-2`,children:[m,_]}),t[17]=m,t[18]=_,t[19]=v):v=t[19],v}function F(e){let t=(0,k.c)(45),{settings:n,projects:r,drafts:o,isSavingBinding:s,onDraftChange:l,onAddBinding:d,onDeleteBinding:f}=e,p=n.channels.length>0,m=r.length>0,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,A.jsx)(D,{title:`Channel Bindings`}),t[0]=h):h=t[0];let g;t[1]!==o.channelId||t[2]!==p||t[3]!==l||t[4]!==n.channels?(g=(0,A.jsx)(w,{title:`Slack Channel`,description:`Invite the bot to the channel first. Only channels the bot can see are listed.`,children:p?(0,A.jsxs)(b,{value:o.channelId||void 0,onValueChange:e=>l(`channelId`,e),children:[(0,A.jsx)(O,{id:`slack-channel`,"aria-label":`Slack Channel`,children:(0,A.jsx)(y,{placeholder:`Select a channel…`})}),(0,A.jsx)(x,{children:n.channels.map(L)})]}):(0,A.jsx)(E,{id:`slack-channel`,placeholder:`Channel ID (C…)`,value:o.channelId,onChange:e=>l(`channelId`,e.target.value)})}),t[1]=o.channelId,t[2]=p,t[3]=l,t[4]=n.channels,t[5]=g):g=t[5];let _=o.projectId||void 0,v;t[6]===l?v=t[7]:(v=e=>l(`projectId`,e),t[6]=l,t[7]=v);let S=!m,C=m?`Select a project…`:`No projects`,j;t[8]===C?j=t[9]:(j=(0,A.jsx)(O,{id:`slack-project`,"aria-label":`Tarsk Project`,children:(0,A.jsx)(y,{placeholder:C})}),t[8]=C,t[9]=j);let M;t[10]===r?M=t[11]:(M=r.map(I),t[10]=r,t[11]=M);let N;t[12]===M?N=t[13]:(N=(0,A.jsx)(x,{children:M}),t[12]=M,t[13]=N);let F;t[14]!==_||t[15]!==v||t[16]!==S||t[17]!==j||t[18]!==N?(F=(0,A.jsx)(w,{title:`Tarsk Project`,description:`Each Slack channel maps to one Tarsk project.`,children:(0,A.jsxs)(b,{value:_,onValueChange:v,disabled:S,children:[j,N]})}),t[14]=_,t[15]=v,t[16]=S,t[17]=j,t[18]=N,t[19]=F):F=t[19];let R;t[20]===d?R=t[21]:(R=()=>void d(),t[20]=d,t[21]=R);let z;t[22]!==o.channelId||t[23]!==o.projectId||t[24]!==s?(z=s||!o.channelId.trim()||!o.projectId,t[22]=o.channelId,t[23]=o.projectId,t[24]=s,t[25]=z):z=t[25];let B;t[26]===s?B=t[27]:(B=s?(0,A.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,t[26]=s,t[27]=B);let V;t[28]!==R||t[29]!==z||t[30]!==B?(V=(0,A.jsx)(w,{title:`Bind`,description:`Create a channel ↔ project binding.`,controlLayout:`row-end`,action:(0,A.jsxs)(u,{type:`button`,onClick:R,disabled:z,children:[B,`Bind channel`]})}),t[28]=R,t[29]=z,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==F||t[33]!==V||t[34]!==g?(H=(0,A.jsxs)(T,{children:[g,F,V]}),t[32]=F,t[33]=V,t[34]=g,t[35]=H):H=t[35];let U;t[36]!==f||t[37]!==r||t[38]!==n.bindings?(U=n.bindings.length===0?(0,A.jsx)(`p`,{className:a(`text-muted-foreground`,i.compact),children:`No bindings yet.`}):n.bindings.map(e=>(0,A.jsx)(P,{binding:e,projects:r,onDelete:f},`${e.slackTeamId}:${e.slackChannelId}`)),t[36]=f,t[37]=r,t[38]=n.bindings,t[39]=U):U=t[39];let W;t[40]===U?W=t[41]:(W=(0,A.jsx)(`div`,{className:`mt-4 flex flex-col gap-2`,children:U}),t[40]=U,t[41]=W);let G;return t[42]!==H||t[43]!==W?(G=(0,A.jsxs)(`div`,{children:[h,H,W]}),t[42]=H,t[43]=W,t[44]=G):G=t[44],G}function I(e){return(0,A.jsx)(S,{value:e.projectId,children:e.name},e.projectId)}function L(e){return(0,A.jsx)(S,{value:e.id,children:e.name},e.id)}var R=e(n(),1),z={botToken:``,appToken:``,channelId:``,projectId:``},B={tokens:!1,binding:!1};function V(e,t){v({title:e,description:t instanceof Error?t.message:String(t),variant:`destructive`})}function H(){let[e,t]=(0,R.useState)(null),[n,r]=(0,R.useState)([]),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(z),[c,l]=(0,R.useState)(!0),[u,y]=(0,R.useState)(B),b=(0,R.useCallback)(async()=>{let[e,n]=await Promise.all([p(),h()]);t(e),r(n.projects)},[]);(0,R.useEffect)(()=>{let e=!1;async function n(){l(!0);try{let[n,i,o]=await Promise.all([p(),h(),f()]);e||(t(n),r(i.projects),a(o.manifest),i.projects[0]&&s(e=>e.projectId?e:{...e,projectId:i.projects[0].projectId}))}catch(t){e||V(`Failed to load Slack settings`,t)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);function x(e,t){s(n=>({...n,[e]:t}))}function S(e,t){y(n=>({...n,[e]:t}))}async function C(){let e=o.botToken.trim(),t=o.appToken.trim();if(!(!e||!t)){S(`tokens`,!0);try{await d({botToken:e,appToken:t}),s(e=>({...e,botToken:``,appToken:``})),await b(),v({title:`Slack tokens saved`})}catch(e){V(`Failed to save tokens`,e)}finally{S(`tokens`,!1)}}}async function w(){S(`tokens`,!0);try{await _(),await b(),v({title:`Slack tokens cleared`})}catch(e){V(`Failed to clear tokens`,e)}finally{S(`tokens`,!1)}}async function T(){let t=o.channelId.trim();if(!(!t||!o.projectId)){S(`binding`,!0);try{let n=e?.channels.find(e=>e.id===t);await g({slackChannelId:t,projectId:o.projectId,...n?{slackChannelName:n.name}:{}}),s(e=>({...e,channelId:``})),await b(),v({title:`Channel bound`})}catch(e){V(`Failed to bind channel`,e)}finally{S(`binding`,!1)}}}async function E(e){try{await m(e.slackTeamId,e.slackChannelId),await b(),v({title:`Binding removed`})}catch(e){V(`Failed to remove binding`,e)}}async function D(){try{await navigator.clipboard.writeText(i||(await f()).manifest),v({title:`Manifest copied`})}catch(e){V(`Failed to copy manifest`,e)}}return{settings:e,projects:n,manifest:i,drafts:o,isLoading:c,saving:u,setDraft:x,saveTokens:C,clearTokens:w,addBinding:T,deleteBinding:E,copyManifest:D}}function U(){let e=(0,k.c)(20),t=H();if(t.isLoading||!t.settings){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(C,{title:`Slack`,description:`Loading Slack settings…`,children:(0,A.jsxs)(`div`,{className:a(`flex items-center gap-2 text-muted-foreground`,i.compact),children:[(0,A.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Loading Slack settings…`]})}),e[0]=t):t=e[0],t}let n;e[1]!==t.clearTokens||e[2]!==t.copyManifest||e[3]!==t.drafts||e[4]!==t.saveTokens||e[5]!==t.saving.tokens||e[6]!==t.setDraft||e[7]!==t.settings?(n=(0,A.jsx)(M,{settings:t.settings,drafts:t.drafts,isSavingTokens:t.saving.tokens,onDraftChange:t.setDraft,onSaveTokens:t.saveTokens,onClearTokens:t.clearTokens,onCopyManifest:t.copyManifest}),e[1]=t.clearTokens,e[2]=t.copyManifest,e[3]=t.drafts,e[4]=t.saveTokens,e[5]=t.saving.tokens,e[6]=t.setDraft,e[7]=t.settings,e[8]=n):n=e[8];let r;e[9]!==t.addBinding||e[10]!==t.deleteBinding||e[11]!==t.drafts||e[12]!==t.projects||e[13]!==t.saving.binding||e[14]!==t.setDraft||e[15]!==t.settings?(r=(0,A.jsx)(F,{settings:t.settings,projects:t.projects,drafts:t.drafts,isSavingBinding:t.saving.binding,onDraftChange:t.setDraft,onAddBinding:t.addBinding,onDeleteBinding:t.deleteBinding}),e[9]=t.addBinding,e[10]=t.deleteBinding,e[11]=t.drafts,e[12]=t.projects,e[13]=t.saving.binding,e[14]=t.setDraft,e[15]=t.settings,e[16]=r):r=e[16];let o;return e[17]!==n||e[18]!==r?(o=(0,A.jsx)(C,{title:`Slack`,description:`Connect a Slack app (Socket Mode) and bind channels to Tarsk projects.`,children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[n,r]})}),e[17]=n,e[18]=r,e[19]=o):o=e[19],o}export{U as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{t as a}from"./utils-uGptTPGm.js";import{Qt as o,d as s,dt as c,rn as l}from"./lucide-react-CMzSV2MP.js";import{t as u}from"./button-zYjzm__g.js";import{In as d,Lt as f,M as p,Rt as m,S as h,f as g,kt as _}from"./api-CX0sFbpL.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{At as y,Bt as b,It as x,Lt as S,Nt as C,Rt as w,Tr as T,Tt as E,Vt as D,xt as O}from"./index-DpDgcOE9.js";var k=t(),A=r();function j(e){return e.configured?[e.botUsername?`@${e.botUsername}`:e.botTokenPreview,`Bridge ${e.bridgeRunning?`running`:`stopped`}`,e.teamName].filter(Boolean).join(` · `):`Not configured`}function M(e){let t=(0,k.c)(51),{settings:n,drafts:r,isSavingTokens:s,onDraftChange:d,onSaveTokens:f,onClearTokens:p,onCopyManifest:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,A.jsx)(E,{title:`Slack App`}),t[0]=h):h=t[0];let g;t[1]===m?g=t[2]:(g=()=>void m(),t[1]=m,t[2]=g);let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,A.jsx)(l,{className:`mr-2 h-4 w-4`}),t[3]=_):_=t[3];let v;t[4]===g?v=t[5]:(v=(0,A.jsxs)(u,{type:`button`,variant:`outline`,size:`sm`,onClick:g,children:[_,`Copy app manifest`]}),t[4]=g,t[5]=v);let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,A.jsx)(u,{type:`button`,variant:`outline`,size:`sm`,asChild:!0,children:(0,A.jsxs)(`a`,{href:`/slack-app-icon.png`,download:`tarsk-slack-app-icon.png`,children:[(0,A.jsx)(o,{className:`mr-2 h-4 w-4`}),`Download app icon`]})}),t[6]=b):b=t[6];let x;t[7]===v?x=t[8]:(x=(0,A.jsx)(O,{title:`App Manifest`,description:`Create a Slack app from this manifest, enable Socket Mode, then paste the Bot and App-Level tokens below. The Slack manifest cannot include an app icon — download the Tarsk logo and upload it under Basic Information after creating the app.`,controlLayout:`row-end`,action:(0,A.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[v,b]})}),t[7]=v,t[8]=x);let S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=a(`text-muted-foreground`,i.bodyMuted),t[9]=S):S=t[9];let C;t[10]===n?C=t[11]:(C=j(n),t[10]=n,t[11]=C);let w;t[12]===C?w=t[13]:(w=(0,A.jsx)(O,{title:`Status`,description:`Bot identity and Socket Mode bridge status.`,children:(0,A.jsx)(`span`,{className:S,children:C})}),t[12]=C,t[13]=w);let D=n.botTokenPreview||`xoxb-…`,M;t[14]===d?M=t[15]:(M=e=>d(`botToken`,e.target.value),t[14]=d,t[15]=M);let N;t[16]!==r.botToken||t[17]!==D||t[18]!==M?(N=(0,A.jsx)(O,{title:`Bot Token`,description:`Bot User OAuth Token from your Slack app (starts with xoxb-).`,children:(0,A.jsx)(T,{id:`slack-bot-token`,type:`password`,autoComplete:`off`,placeholder:D,value:r.botToken,onChange:M})}),t[16]=r.botToken,t[17]=D,t[18]=M,t[19]=N):N=t[19];let P=n.appTokenPreview||`xapp-…`,F;t[20]===d?F=t[21]:(F=e=>d(`appToken`,e.target.value),t[20]=d,t[21]=F);let I;t[22]!==r.appToken||t[23]!==P||t[24]!==F?(I=(0,A.jsx)(O,{title:`App-Level Token`,description:`App-Level Token with connections:write for Socket Mode (starts with xapp-).`,children:(0,A.jsx)(T,{id:`slack-app-token`,type:`password`,autoComplete:`off`,placeholder:P,value:r.appToken,onChange:F})}),t[22]=r.appToken,t[23]=P,t[24]=F,t[25]=I):I=t[25];let L;t[26]===f?L=t[27]:(L=()=>void f(),t[26]=f,t[27]=L);let R;t[28]!==r.appToken||t[29]!==r.botToken||t[30]!==s?(R=s||!r.botToken.trim()||!r.appToken.trim(),t[28]=r.appToken,t[29]=r.botToken,t[30]=s,t[31]=R):R=t[31];let z;t[32]===s?z=t[33]:(z=s?(0,A.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,t[32]=s,t[33]=z);let B;t[34]!==L||t[35]!==R||t[36]!==z?(B=(0,A.jsxs)(u,{type:`button`,onClick:L,disabled:R,children:[z,`Save`]}),t[34]=L,t[35]=R,t[36]=z,t[37]=B):B=t[37];let V;t[38]!==s||t[39]!==p||t[40]!==n.configured?(V=n.configured?(0,A.jsx)(u,{type:`button`,variant:`outline`,onClick:()=>void p(),disabled:s,children:`Clear`}):null,t[38]=s,t[39]=p,t[40]=n.configured,t[41]=V):V=t[41];let H;t[42]!==B||t[43]!==V?(H=(0,A.jsx)(O,{title:`Tokens`,description:`Save both tokens to start the bridge, or clear them to disconnect.`,controlLayout:`row-end`,action:(0,A.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[B,V]})}),t[42]=B,t[43]=V,t[44]=H):H=t[44];let U;return t[45]!==N||t[46]!==I||t[47]!==H||t[48]!==x||t[49]!==w?(U=(0,A.jsxs)(`div`,{children:[h,(0,A.jsxs)(y,{children:[x,w,N,I,H]})]}),t[45]=N,t[46]=I,t[47]=H,t[48]=x,t[49]=w,t[50]=U):U=t[50],U}function N(e,t){return t.find(t=>t.projectId===e.projectId)?.name||e.projectId}function P(e){let t=(0,k.c)(20),{binding:n,projects:r,onDelete:o}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=a(i.compact),t[0]=c):c=t[0];let l=n.slackChannelName||n.slackChannelId,d;t[1]===l?d=t[2]:(d=(0,A.jsx)(`div`,{className:`font-medium`,children:l}),t[1]=l,t[2]=d);let f;t[3]!==n||t[4]!==r?(f=N(n,r),t[3]=n,t[4]=r,t[5]=f):f=t[5];let p;t[6]===f?p=t[7]:(p=(0,A.jsx)(`div`,{className:`text-muted-foreground`,children:f}),t[6]=f,t[7]=p);let m;t[8]!==d||t[9]!==p?(m=(0,A.jsxs)(`div`,{className:c,children:[d,p]}),t[8]=d,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n||t[12]!==o?(h=()=>void o(n),t[11]=n,t[12]=o,t[13]=h):h=t[13];let g;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(s,{className:`h-4 w-4`}),t[14]=g):g=t[14];let _;t[15]===h?_=t[16]:(_=(0,A.jsx)(u,{type:`button`,variant:`ghost`,size:`icon`,onClick:h,"aria-label":`Remove binding`,children:g}),t[15]=h,t[16]=_);let v;return t[17]!==m||t[18]!==_?(v=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border px-3 py-2`,children:[m,_]}),t[17]=m,t[18]=_,t[19]=v):v=t[19],v}function F(e){let t=(0,k.c)(45),{settings:n,projects:r,drafts:o,isSavingBinding:s,onDraftChange:l,onAddBinding:d,onDeleteBinding:f}=e,p=n.channels.length>0,m=r.length>0,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,A.jsx)(E,{title:`Channel Bindings`}),t[0]=h):h=t[0];let g;t[1]!==o.channelId||t[2]!==p||t[3]!==l||t[4]!==n.channels?(g=(0,A.jsx)(O,{title:`Slack Channel`,description:`Invite the bot to the channel first. Only channels the bot can see are listed.`,children:p?(0,A.jsxs)(x,{value:o.channelId||void 0,onValueChange:e=>l(`channelId`,e),children:[(0,A.jsx)(b,{id:`slack-channel`,"aria-label":`Slack Channel`,children:(0,A.jsx)(D,{placeholder:`Select a channel…`})}),(0,A.jsx)(S,{children:n.channels.map(L)})]}):(0,A.jsx)(T,{id:`slack-channel`,placeholder:`Channel ID (C…)`,value:o.channelId,onChange:e=>l(`channelId`,e.target.value)})}),t[1]=o.channelId,t[2]=p,t[3]=l,t[4]=n.channels,t[5]=g):g=t[5];let _=o.projectId||void 0,v;t[6]===l?v=t[7]:(v=e=>l(`projectId`,e),t[6]=l,t[7]=v);let C=!m,w=m?`Select a project…`:`No projects`,j;t[8]===w?j=t[9]:(j=(0,A.jsx)(b,{id:`slack-project`,"aria-label":`Tarsk Project`,children:(0,A.jsx)(D,{placeholder:w})}),t[8]=w,t[9]=j);let M;t[10]===r?M=t[11]:(M=r.map(I),t[10]=r,t[11]=M);let N;t[12]===M?N=t[13]:(N=(0,A.jsx)(S,{children:M}),t[12]=M,t[13]=N);let F;t[14]!==_||t[15]!==v||t[16]!==C||t[17]!==j||t[18]!==N?(F=(0,A.jsx)(O,{title:`Tarsk Project`,description:`Each Slack channel maps to one Tarsk project.`,children:(0,A.jsxs)(x,{value:_,onValueChange:v,disabled:C,children:[j,N]})}),t[14]=_,t[15]=v,t[16]=C,t[17]=j,t[18]=N,t[19]=F):F=t[19];let R;t[20]===d?R=t[21]:(R=()=>void d(),t[20]=d,t[21]=R);let z;t[22]!==o.channelId||t[23]!==o.projectId||t[24]!==s?(z=s||!o.channelId.trim()||!o.projectId,t[22]=o.channelId,t[23]=o.projectId,t[24]=s,t[25]=z):z=t[25];let B;t[26]===s?B=t[27]:(B=s?(0,A.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,t[26]=s,t[27]=B);let V;t[28]!==R||t[29]!==z||t[30]!==B?(V=(0,A.jsx)(O,{title:`Bind`,description:`Create a channel ↔ project binding.`,controlLayout:`row-end`,action:(0,A.jsxs)(u,{type:`button`,onClick:R,disabled:z,children:[B,`Bind channel`]})}),t[28]=R,t[29]=z,t[30]=B,t[31]=V):V=t[31];let H;t[32]!==F||t[33]!==V||t[34]!==g?(H=(0,A.jsxs)(y,{children:[g,F,V]}),t[32]=F,t[33]=V,t[34]=g,t[35]=H):H=t[35];let U;t[36]!==f||t[37]!==r||t[38]!==n.bindings?(U=n.bindings.length===0?(0,A.jsx)(`p`,{className:a(`text-muted-foreground`,i.compact),children:`No bindings yet.`}):n.bindings.map(e=>(0,A.jsx)(P,{binding:e,projects:r,onDelete:f},`${e.slackTeamId}:${e.slackChannelId}`)),t[36]=f,t[37]=r,t[38]=n.bindings,t[39]=U):U=t[39];let W;t[40]===U?W=t[41]:(W=(0,A.jsx)(`div`,{className:`mt-4 flex flex-col gap-2`,children:U}),t[40]=U,t[41]=W);let G;return t[42]!==H||t[43]!==W?(G=(0,A.jsxs)(`div`,{children:[h,H,W]}),t[42]=H,t[43]=W,t[44]=G):G=t[44],G}function I(e){return(0,A.jsx)(w,{value:e.projectId,children:e.name},e.projectId)}function L(e){return(0,A.jsx)(w,{value:e.id,children:e.name},e.id)}var R=e(n(),1),z={botToken:``,appToken:``,channelId:``,projectId:``},B={tokens:!1,binding:!1};function V(e,t){v({title:e,description:t instanceof Error?t.message:String(t),variant:`destructive`})}function H(){let[e,t]=(0,R.useState)(null),[n,r]=(0,R.useState)([]),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(z),[c,l]=(0,R.useState)(!0),[u,y]=(0,R.useState)(B),b=(0,R.useCallback)(async()=>{let[e,n]=await Promise.all([m(),_()]);t(e),r(n.projects)},[]);(0,R.useEffect)(()=>{let e=!1;async function n(){l(!0);try{let[n,i,o]=await Promise.all([m(),_(),f()]);e||(t(n),r(i.projects),a(o.manifest),i.projects[0]&&s(e=>e.projectId?e:{...e,projectId:i.projects[0].projectId}))}catch(t){e||V(`Failed to load Slack settings`,t)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);function x(e,t){s(n=>({...n,[e]:t}))}function S(e,t){y(n=>({...n,[e]:t}))}async function C(){let e=o.botToken.trim(),t=o.appToken.trim();if(!(!e||!t)){S(`tokens`,!0);try{await d({botToken:e,appToken:t}),s(e=>({...e,botToken:``,appToken:``})),await b(),v({title:`Slack tokens saved`})}catch(e){V(`Failed to save tokens`,e)}finally{S(`tokens`,!1)}}}async function w(){S(`tokens`,!0);try{await g(),await b(),v({title:`Slack tokens cleared`})}catch(e){V(`Failed to clear tokens`,e)}finally{S(`tokens`,!1)}}async function T(){let t=o.channelId.trim();if(!(!t||!o.projectId)){S(`binding`,!0);try{let n=e?.channels.find(e=>e.id===t);await h({slackChannelId:t,projectId:o.projectId,...n?{slackChannelName:n.name}:{}}),s(e=>({...e,channelId:``})),await b(),v({title:`Channel bound`})}catch(e){V(`Failed to bind channel`,e)}finally{S(`binding`,!1)}}}async function E(e){try{await p(e.slackTeamId,e.slackChannelId),await b(),v({title:`Binding removed`})}catch(e){V(`Failed to remove binding`,e)}}async function D(){try{await navigator.clipboard.writeText(i||(await f()).manifest),v({title:`Manifest copied`})}catch(e){V(`Failed to copy manifest`,e)}}return{settings:e,projects:n,manifest:i,drafts:o,isLoading:c,saving:u,setDraft:x,saveTokens:C,clearTokens:w,addBinding:T,deleteBinding:E,copyManifest:D}}function U(){let e=(0,k.c)(20),t=H();if(t.isLoading||!t.settings){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(C,{title:`Slack`,description:`Loading Slack settings…`,children:(0,A.jsxs)(`div`,{className:a(`flex items-center gap-2 text-muted-foreground`,i.compact),children:[(0,A.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Loading Slack settings…`]})}),e[0]=t):t=e[0],t}let n;e[1]!==t.clearTokens||e[2]!==t.copyManifest||e[3]!==t.drafts||e[4]!==t.saveTokens||e[5]!==t.saving.tokens||e[6]!==t.setDraft||e[7]!==t.settings?(n=(0,A.jsx)(M,{settings:t.settings,drafts:t.drafts,isSavingTokens:t.saving.tokens,onDraftChange:t.setDraft,onSaveTokens:t.saveTokens,onClearTokens:t.clearTokens,onCopyManifest:t.copyManifest}),e[1]=t.clearTokens,e[2]=t.copyManifest,e[3]=t.drafts,e[4]=t.saveTokens,e[5]=t.saving.tokens,e[6]=t.setDraft,e[7]=t.settings,e[8]=n):n=e[8];let r;e[9]!==t.addBinding||e[10]!==t.deleteBinding||e[11]!==t.drafts||e[12]!==t.projects||e[13]!==t.saving.binding||e[14]!==t.setDraft||e[15]!==t.settings?(r=(0,A.jsx)(F,{settings:t.settings,projects:t.projects,drafts:t.drafts,isSavingBinding:t.saving.binding,onDraftChange:t.setDraft,onAddBinding:t.addBinding,onDeleteBinding:t.deleteBinding}),e[9]=t.addBinding,e[10]=t.deleteBinding,e[11]=t.drafts,e[12]=t.projects,e[13]=t.saving.binding,e[14]=t.setDraft,e[15]=t.settings,e[16]=r):r=e[16];let o;return e[17]!==n||e[18]!==r?(o=(0,A.jsx)(C,{title:`Slack`,description:`Connect a Slack app (Socket Mode) and bind channels to Tarsk projects.`,children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[n,r]})}),e[17]=n,e[18]=r,e[19]=o):o=e[19],o}export{U as default};