tarsk 0.5.76 → 0.5.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +861 -186
- package/dist/public/assets/account-view-Bzv2EHnc.js +1 -0
- package/dist/public/assets/api-OO3KSG8d.js +2 -0
- package/dist/public/assets/{async-error-boundary-BX1G17o9.js → async-error-boundary-Dll_zcqr.js} +1 -1
- package/dist/public/assets/browser-tab-Cwa1TB3I.js +12 -0
- package/dist/public/assets/button-B5aMz2Rk.js +1 -0
- package/dist/public/assets/card-DRr14MEQ.js +1 -0
- package/dist/public/assets/chat-dock-context-Cnq0BWgm.js +1 -0
- package/dist/public/assets/commit-dialog-C-JfaoS6.js +1 -0
- package/dist/public/assets/commit-error-dialog-VXqZLeta.js +1 -0
- package/dist/public/assets/commit-method-fields-DAd1unUF.js +1 -0
- package/dist/public/assets/context-menu-BKOotkeD.js +1 -0
- package/dist/public/assets/conversation-history-view-CcdQRxoP.js +1 -0
- package/dist/public/assets/{create-project-dialog-a6Wgq-Z8.js → create-project-dialog-D1VaSgqh.js} +2 -2
- package/dist/public/assets/create-repo-dialog-mBGGkX-g.js +1 -0
- package/dist/public/assets/delete-confirm-dialog-Cx9nT7Xd.js +1 -0
- package/dist/public/assets/diff-view-CyOnLSEA.js +4 -0
- package/dist/public/assets/{dist-DsmF-KJ-.js → dist-COfI64N5.js} +1 -1
- package/dist/public/assets/dist-CWYnBq-n.js +1 -0
- package/dist/public/assets/dist-DDYi9MQo.js +1 -0
- package/dist/public/assets/dist-DNkA3vYh.js +2 -0
- package/dist/public/assets/dist-DwblUvSf.js +1 -0
- package/dist/public/assets/dist-T8-4ZfS0.js +1 -0
- package/dist/public/assets/dist-TCNzmc2V.js +5 -0
- package/dist/public/assets/dist-sThe8WYP.js +1 -0
- package/dist/public/assets/es2015-Bu0NIPbn.js +41 -0
- package/dist/public/assets/{explorer-monaco-editor-BdZ_bBqh.js → explorer-monaco-editor-q8CnSwWA.js} +1 -1
- package/dist/public/assets/explorer-tab-view-G2HmkQyY.js +2 -0
- package/dist/public/assets/explorer-tree-DAuc2Npx.js +1 -0
- package/dist/public/assets/explorer-view-BDMlnV3f.js +76 -0
- package/dist/public/assets/git-history-dialog-XEr5pugf.js +1 -0
- package/dist/public/assets/index-C4WzOmf3.css +1 -0
- package/dist/public/assets/index-DD_a7tQU.js +3665 -0
- package/dist/public/assets/lucide-react-B-115rul.js +1 -0
- package/dist/public/assets/main-tab-context-CNgxXqnH.js +1 -0
- package/dist/public/assets/model-list-controls-DAZM0NBC.js +1 -0
- package/dist/public/assets/onboarding-dialog-Dd9hiOOf.js +1 -0
- package/dist/public/assets/pill-tabs-QsjH027B.js +1 -0
- package/dist/public/assets/progress-indicator-C01aPXIe.js +1 -0
- package/dist/public/assets/project-coding-view-DbKI7sbW.js +1 -0
- package/dist/public/assets/project-danger-zone-view-BaSu793w.js +1 -0
- package/dist/public/assets/project-env-vars-view-BB66j52E.js +1 -0
- package/dist/public/assets/project-model-aliases-view-o1-Z2es5.js +1 -0
- package/dist/public/assets/project-settings-view-BKjvtOtk.js +1 -0
- package/dist/public/assets/project-tools-view-CZbblznF.js +1 -0
- package/dist/public/assets/providers-list-view-ChY2DXYc.js +1 -0
- package/dist/public/assets/pull-request-dialog-BZgY4vrw.js +1 -0
- package/dist/public/assets/pull-with-changes-dialog-DDp_srHq.js +1 -0
- package/dist/public/assets/{push-before-pr-dialog-CarrD3y2.js → push-before-pr-dialog-Bt0BChlV.js} +1 -1
- package/dist/public/assets/scroll-area-DwRwR2nQ.js +1 -0
- package/dist/public/assets/settings-general-tabs-view-BH7AaXyP.js +2 -0
- package/dist/public/assets/settings-general-view-B-t99LmD.js +1 -0
- package/dist/public/assets/settings-list-Dn4CHP4Z.js +1 -0
- package/dist/public/assets/{settings-logs-view-DbKM1SNk.js → settings-logs-view-BCRjz-Fr.js} +3 -3
- package/dist/public/assets/settings-mcp-servers-view-xv9D4DPO.js +5 -0
- package/dist/public/assets/settings-models-view-rUeqlE4k.js +1 -0
- package/dist/public/assets/settings-plugins-view-qnWmII61.js +2 -0
- package/dist/public/assets/settings-providers-view-DsxTdBEQ.js +2 -0
- package/dist/public/assets/settings-setup-view-ew5KW8gL.js +2 -0
- package/dist/public/assets/settings-skills-view-C4NxP4gI.js +3 -0
- package/dist/public/assets/settings-slack-view-BNT5ervf.js +1 -0
- package/dist/public/assets/settings-slash-commands-view-CE7FT3dB.js +1 -0
- package/dist/public/assets/settings-statistics-view-jKPoSWBs.js +1 -0
- package/dist/public/assets/settings-storage-view-C_Rs-9Hw.js +1 -0
- package/dist/public/assets/settings-subagents-view-DHVSAmCY.js +2 -0
- package/dist/public/assets/settings-system-prompt-view-B_nF2HUy.js +1 -0
- package/dist/public/assets/settings-tab-bar-DAHxT5KE.js +1 -0
- package/dist/public/assets/settings-view-BY6OO-xy.js +2 -0
- package/dist/public/assets/slug-utils-BQZ6c2py.js +1 -0
- package/dist/public/assets/store-B7EgrEO7.js +9 -0
- package/dist/public/assets/suspense-resource-DzlMlIgR.js +1 -0
- package/dist/public/assets/table-7hMwxpkF.js +1 -0
- package/dist/public/assets/tasks-view-Dc7sthjm.js +1 -0
- package/dist/public/assets/terminal-output-activity-B1bjjsl7.js +1 -0
- package/dist/public/assets/terminal-panel-BNOIOh8z.js +38 -0
- package/dist/public/assets/toggle-group-UiksQ0n9.js +1 -0
- package/dist/public/assets/tooltip-Dvmz78Z_.js +1 -0
- package/dist/public/assets/{use-active-dock-panel-instance-DRfRj6MV.js → use-active-dock-panel-instance-2LfvItRH.js} +1 -1
- package/dist/public/assets/use-installed-ai-files-BkpswqGI.js +1 -0
- package/dist/public/assets/{useBaseQuery-34f0-SVd.js → useBaseQuery-D5as4SgS.js} +1 -1
- package/dist/public/assets/utils-B-qS8qMg.js +1 -0
- package/dist/public/assets/{web-C2KGFouM.js → web-B9ndApmi.js} +1 -1
- package/dist/public/assets/{web-DycfRH4j.js → web-BkuMY08B.js} +1 -1
- package/dist/public/assets/{web-Dk3GAfTy.js → web-DyqJbQ3L.js} +1 -1
- package/dist/public/assets/{web-Bn9n5e7r.js → web-gEWIDddb.js} +1 -1
- package/dist/public/index.html +26 -28
- package/package.json +1 -1
- package/dist/public/assets/account-view-CWtpznW2.js +0 -1
- package/dist/public/assets/alert-dialog-BxMfaLuO.js +0 -7
- package/dist/public/assets/api-DX1ny6q-.js +0 -2
- package/dist/public/assets/async-loading-fallback-V0EaQ_Kn.js +0 -1
- package/dist/public/assets/browser-tab-D_5MLhxE.js +0 -12
- package/dist/public/assets/button-kWtLAMpB.js +0 -1
- package/dist/public/assets/card-B_EASkic.js +0 -1
- package/dist/public/assets/chat-dock-context-8K8Ikjgy.js +0 -1
- package/dist/public/assets/commit-dialog-CSXPoomw.js +0 -1
- package/dist/public/assets/commit-error-dialog-CdcGI69P.js +0 -1
- package/dist/public/assets/commit-method-fields-BtEHb0_G.js +0 -1
- package/dist/public/assets/context-menu-BcM6I0Sx.js +0 -1
- package/dist/public/assets/conversation-history-view-CuzU9qF6.js +0 -1
- package/dist/public/assets/create-project-workspace-Dv_lEfZx.js +0 -2
- package/dist/public/assets/create-repo-dialog-BTIQ5Nw4.js +0 -1
- package/dist/public/assets/delete-confirm-dialog-Dl76vaxb.js +0 -1
- package/dist/public/assets/diff-view-DA1uT9tc.js +0 -4
- package/dist/public/assets/dist-C2G92uPn.js +0 -1
- package/dist/public/assets/dist-CHhgoHp6.js +0 -1
- package/dist/public/assets/dist-CTLFS4dn.js +0 -2
- package/dist/public/assets/dist-D-2G8xGB.js +0 -5
- package/dist/public/assets/dist-DD4GtbiM.js +0 -1
- package/dist/public/assets/dist-DoxvnNEY.js +0 -1
- package/dist/public/assets/dist-c_QADQ5u.js +0 -1
- package/dist/public/assets/dist-yM5kyz9Q.js +0 -1
- package/dist/public/assets/es2015-BlPKkFZZ.js +0 -41
- package/dist/public/assets/explorer-tab-view-CewTYYOm.js +0 -2
- package/dist/public/assets/explorer-tree-C0VDhihz.js +0 -1
- package/dist/public/assets/explorer-view-RCfDm3p5.js +0 -76
- package/dist/public/assets/git-history-dialog-DL0Trxiz.js +0 -1
- package/dist/public/assets/index-B3-5kIOf.js +0 -3658
- package/dist/public/assets/index-BLNUy5nZ.css +0 -1
- package/dist/public/assets/main-tab-context-Byl1LybL.js +0 -1
- package/dist/public/assets/merged-pr-dialog-BzND8nzx.js +0 -1
- package/dist/public/assets/model-list-controls-I67L2x3H.js +0 -1
- package/dist/public/assets/onboarding-dialog-DY8v11hv.js +0 -1
- package/dist/public/assets/project-coding-view-DxOwsjtt.js +0 -1
- package/dist/public/assets/project-danger-zone-view-CkvKOQrl.js +0 -1
- package/dist/public/assets/project-env-vars-view-DYLWA7s0.js +0 -1
- package/dist/public/assets/project-model-aliases-view-DWu9khLA.js +0 -1
- package/dist/public/assets/project-settings-view-DJfmaWn6.js +0 -1
- package/dist/public/assets/project-tools-view-BEjBkghz.js +0 -1
- package/dist/public/assets/providers-list-view-jMEPJCci.js +0 -1
- package/dist/public/assets/pull-request-dialog-B_JCqT53.js +0 -1
- package/dist/public/assets/pull-with-changes-dialog-V3_km2zQ.js +0 -1
- package/dist/public/assets/radio-group-Dn_pN-pn.js +0 -1
- package/dist/public/assets/scroll-area-lkVMElz5.js +0 -1
- package/dist/public/assets/settings-general-view-BhrfHGfQ.js +0 -1
- package/dist/public/assets/settings-list-DiiYzOxn.js +0 -1
- package/dist/public/assets/settings-mcp-servers-view-4FpPIeYV.js +0 -5
- package/dist/public/assets/settings-models-view-CJVeo9ad.js +0 -1
- package/dist/public/assets/settings-skills-view-DoRPGbHG.js +0 -3
- package/dist/public/assets/settings-slack-view-Cc1NgVkx.js +0 -1
- package/dist/public/assets/settings-slash-commands-view-CmlWqqmi.js +0 -1
- package/dist/public/assets/settings-statistics-view-DRuyEbcN.js +0 -1
- package/dist/public/assets/settings-storage-view-DihbtUYb.js +0 -1
- package/dist/public/assets/settings-subagents-view-B2RvxDZI.js +0 -2
- package/dist/public/assets/settings-system-prompt-view-CvVbgjNN.js +0 -1
- package/dist/public/assets/settings-view-CPUAjTMa.js +0 -2
- package/dist/public/assets/slug-utils-CQ8PMWUL.js +0 -1
- package/dist/public/assets/store-BSzKIu5G.js +0 -9
- package/dist/public/assets/suspense-resource-BFrb_XJX.js +0 -1
- package/dist/public/assets/table-A3cgauiZ.js +0 -1
- package/dist/public/assets/tasks-view-CvFFLPeD.js +0 -1
- package/dist/public/assets/terminal-panel-DIh6it7K.js +0 -38
- package/dist/public/assets/toggle-group-Q36wRGKA.js +0 -1
- package/dist/public/assets/tooltip-Db8UeYxm.js +0 -1
- package/dist/public/assets/use-installed-ai-files-C8nNWGC7.js +0 -1
- package/dist/public/assets/use-suspense-resource-Dakt9lfT.js +0 -1
- package/dist/public/assets/use-toast-xpb5jNtN.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
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{d as i,r as a}from"./button-kWtLAMpB.js";import{a as o,g as s,h as c,l,n as u,u as d}from"./dist-c_QADQ5u.js";import{t as f}from"./dist-OixawqbU.js";var p=e(n(),1),m=t();function h(e,[t,n]){return Math.min(n,Math.max(t,e))}var g=r();function _(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var v=`ScrollArea`,[y,b]=c(v),[x,S]=y(v),C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=p.useState(null),[u,m]=p.useState(null),[h,_]=p.useState(null),[v,y]=p.useState(null),[b,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>l(e)),M=f(a);return(0,g.jsx)(x,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:_,scrollbarX:v,onScrollbarXChange:y,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:b,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,g.jsx)(d.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});C.displayName=v;var w=`ScrollAreaViewport`,T=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=S(w,n),c=i(t,p.useRef(null),s.onViewportChange);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,g.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,g.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});T.displayName=w;var E=`ScrollAreaScrollbar`,D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,g.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,g.jsx)(k,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,g.jsx)(A,{...r,ref:t,forceMount:n}):i.type===`always`?(0,g.jsx)(j,{...r,ref:t}):null});D.displayName=E;var O=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,g.jsx)(u,{present:n||a,children:(0,g.jsx)(A,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),k=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=S(E,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>l(`SCROLL_END`),100),[c,l]=_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(c===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,g.jsx)(u,{present:n||c!==`hidden`,children:(0,g.jsx)(j,{"data-state":c===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:s(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:s(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),A=p.forwardRef((e,t)=>{let n=S(E,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,g.jsx)(u,{present:r||a,children:(0,g.jsx)(j,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),j=p.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=S(E,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=B(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return ie(e,o.current,s,t)}return n===`horizontal`?(0,g.jsx)(M,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=H(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,g.jsx)(ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=H(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),M=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ee=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=S(E,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,g.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":V(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),W(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[te,N]=y(E),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:h,onResize:_,...v}=e,y=S(E,n),[b,x]=p.useState(null),C=i(t,e=>x(e)),w=p.useRef(null),T=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=l(h),A=l(f),j=G(_,10);function M(e){w.current&&m({x:e.clientX-w.current.left,y:e.clientY-w.current.top})}return p.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,b,O,k]),p.useEffect(A,[r,A]),K(b,j),K(y.content,j),(0,g.jsx)(te,{scope:n,scrollbar:b,hasThumb:a,onThumbChange:l(o),onThumbPointerUp:l(c),onThumbPositionChange:A,onThumbPointerDown:l(u),children:(0,g.jsx)(d.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:s(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),w.current=b.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),M(e))}),onPointerMove:s(e.onPointerMove,M),onPointerUp:s(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,y.viewport&&(y.viewport.style.scrollBehavior=``),w.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,g.jsx)(u,{present:n||i.hasThumb,children:(0,g.jsx)(ne,{ref:t,...r})})}),ne=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=S(F,n),c=N(F,n),{onThumbPositionChange:l}=c,u=i(t,e=>c.onThumbChange(e)),f=p.useRef(void 0),m=G(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{m(),f.current||(f.current=ae(e,l),l())};return l(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,m,l]),(0,g.jsx)(d.div,{"data-state":c.hasThumb?`visible`:`hidden`,...a,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:s(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;c.onThumbPointerDown({x:n,y:r})}),onPointerUp:s(e.onPointerUp,c.onThumbPointerUp)})});I.displayName=F;var L=`ScrollAreaCorner`,R=p.forwardRef((e,t)=>{let n=S(L,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,g.jsx)(re,{...e,ref:t}):null});R.displayName=L;var re=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=S(L,n),[a,o]=p.useState(0),[s,c]=p.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,g.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function B(e,t){let n=e/t;return isNaN(n)?0:n}function V(e){let t=B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function ie(e,t,n,r=`ltr`){let i=V(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return U([c,l],d)(e)}function H(e,t,n=`ltr`){let r=V(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=h(e,n===`ltr`?[0,o]:[o*-1,0]);return U([0,o],[0,s])(c)}function U(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 W(e,t){return e>0&&e<t}var ae=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=l(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=l(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var q=C,J=T,Y=R,X=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(Z,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});X.displayName=q.displayName;var Z=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-border`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Z.displayName=D.displayName;var oe=`[&>div]:!box-border [&>div]:!pr-4`,Q=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`right-0 h-full w-2.5 p-0.5`,l=s===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none transition-colors`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/20 can-hover:hover:bg-foreground/35`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Q.displayName=`SettingsScrollBar`;var $=p.forwardRef((e,t)=>{let n=(0,m.c)(20),r,i,o,s,c;n[0]===e?(r=n[1],i=n[2],o=n[3],s=n[4],c=n[5]):({className:i,children:r,viewportRef:c,onViewportScroll:o,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o,n[4]=s,n[5]=c);let l;n[6]===i?l=n[7]:(l=a(`relative overflow-hidden`,i),n[6]=i,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(`h-full w-full rounded-[inherit]`,oe),n[8]=u):u=n[8];let d;n[9]!==r||n[10]!==o||n[11]!==c?(d=(0,g.jsx)(J,{ref:c,onScroll:o,className:u,children:r}),n[9]=r,n[10]=o,n[11]=c,n[12]=d):d=n[12];let f,p;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,g.jsx)(Q,{}),p=(0,g.jsx)(Y,{}),n[13]=f,n[14]=p):(f=n[13],p=n[14]);let h;return n[15]!==s||n[16]!==t||n[17]!==l||n[18]!==d?(h=(0,g.jsxs)(q,{ref:t,className:l,...s,children:[d,f,p]}),n[15]=s,n[16]=t,n[17]=l,n[18]=d,n[19]=h):h=n[19],h});$.displayName=`SettingsScrollArea`;var se=p.forwardRef((e,t)=>{let n=(0,m.c)(14),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,orientation:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?`vertical`:o,c=s===`vertical`&&`h-full w-2 p-0.5`,l=s===`horizontal`&&`h-2 w-full flex-col p-0.5`,u;n[4]!==r||n[5]!==c||n[6]!==l?(u=a(`flex touch-none select-none bg-transparent`,c,l,r),n[4]=r,n[5]=c,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,g.jsx)(I,{className:`relative flex-1 rounded-full bg-foreground/35 can-hover:hover:bg-foreground/50`}),n[8]=d):d=n[8];let f;return n[9]!==s||n[10]!==i||n[11]!==t||n[12]!==u?(f=(0,g.jsx)(D,{ref:t,orientation:s,className:u,...i,children:d}),n[9]=s,n[10]=i,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});se.displayName=`FrostedScrollBar`;var ce=p.forwardRef((e,t)=>{let n=(0,m.c)(15),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:i,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s;n[4]===i?s=n[5]:(s=a(`relative overflow-hidden`,i),n[4]=i,n[5]=s);let c;n[6]===r?c=n[7]:(c=(0,g.jsx)(J,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=c);let l,u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,g.jsx)(se,{}),u=(0,g.jsx)(Y,{}),n[8]=l,n[9]=u):(l=n[8],u=n[9]);let d;return n[10]!==o||n[11]!==t||n[12]!==s||n[13]!==c?(d=(0,g.jsxs)(q,{ref:t,className:s,...o,children:[c,l,u]}),n[10]=o,n[11]=t,n[12]=s,n[13]=c,n[14]=d):d=n[14],d});ce.displayName=`FrostedScrollArea`;export{h as i,X as n,$ as r,ce as t};
|
|
@@ -1 +0,0 @@
|
|
|
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{Dt as i,N as a}from"./dist-CTLFS4dn.js";import{d as o,r as s,t as c}from"./button-kWtLAMpB.js";import{En as l,Ft as u,M as d,N as f,On as p,Ot as m,Pn as h,Wn as g,Z as _,bn as v,g as y,gt as b,h as x,ht as S,kn as C,t as w,u as T}from"./dist-c_QADQ5u.js";import{t as ee}from"./dist-DoxvnNEY.js";import{i as E,n as te,t as ne}from"./tooltip-Db8UeYxm.js";import{$ as re,Br as ie,Gn as ae,Ir as oe,Li as se,yi as ce}from"./api-DX1ny6q-.js";import{t as le}from"./dist-DD4GtbiM.js";import{t as ue}from"./dist-OixawqbU.js";import{i as de}from"./scroll-area-lkVMElz5.js";import{t as fe}from"./use-toast-xpb5jNtN.js";import{t as D}from"./dist-CSssbxDI.js";import{At as pe,Ct as me,Dt as he,F as ge,P as O,Tt as _e,Yn as ve,_t as k,at as ye,fr as be,k as xe,n as Se,ot as Ce,r as we,st as Te,t as Ee,yt as De}from"./index-B3-5kIOf.js";import{n as A,t as Oe}from"./toggle-group-Q36wRGKA.js";import{t as ke}from"./use-settings-page-loading-BTySlInF.js";var j=t(),M=e(n(),1),N=r(),Ae=[`PageUp`,`PageDown`],je=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],Me={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},P=`Slider`,[Ne,Pe,Fe]=le(P),[Ie,Le]=x(P,[Fe]),[Re,ze]=Ie(P),Be=M.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=M.useRef(new Set),_=M.useRef(0),v=o===`horizontal`?He:Ue,[b=[],x]=w({prop:u,defaultProp:l,onChange:e=>{[...g.current][_.current]?.focus(),d(e)}}),S=M.useRef(b);function C(e){E(e,nt(b,e))}function T(e){E(e,_.current)}function ee(){let e=S.current[_.current];b[_.current]!==e&&f(b)}function E(e,t,{commit:n}={commit:!1}){let o=R(a),s=de(z(Math.round((e-r)/a)*a+r,o),[r,i]);x((e=[])=>{let r=$e(e,s,t);if(at(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,N.jsx)(Re,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:_,thumbs:g.current,values:b,orientation:o,form:m,children:(0,N.jsx)(Ne.Provider,{scope:e.__scopeSlider,children:(0,N.jsx)(Ne.Slot,{scope:e.__scopeSlider,children:(0,N.jsx)(v,{"aria-disabled":s,"data-disabled":s?``:void 0,...h,ref:t,onPointerDown:y(h.onPointerDown,()=>{s||(S.current=b)}),min:r,max:i,inverted:p,onSlideStart:s?void 0:C,onSlideMove:s?void 0:T,onSlideEnd:s?void 0:ee,onHomeKeyDown:()=>!s&&E(r,0,{commit:!0}),onEndKeyDown:()=>!s&&E(i,b.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!s){let n=Ae.includes(e.key)||e.shiftKey&&je.includes(e.key)?10:1,r=_.current,i=b[r];E(i+a*n*t,r,{commit:!0})}}})})})})});Be.displayName=P;var[Ve,F]=Ie(P,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),He=M.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:a,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,p]=M.useState(null),m=o(t,e=>p(e)),h=M.useRef(void 0),g=ue(i),_=g===`ltr`,v=_&&!a||!_&&a;function y(e){let t=h.current||f.getBoundingClientRect(),i=L([0,t.width],v?[n,r]:[r,n]);return h.current=t,i(e-t.left)}return(0,N.jsx)(Ve,{scope:e.__scopeSlider,startEdge:v?`left`:`right`,endEdge:v?`right`:`left`,direction:v?1:-1,size:`width`,children:(0,N.jsx)(I,{dir:g,"data-orientation":`horizontal`,...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=y(e.clientX);s?.(t)},onSlideMove:e=>{let t=y(e.clientX);c?.(t)},onSlideEnd:()=>{h.current=void 0,l?.()},onStepKeyDown:e=>{let t=Me[v?`from-left`:`from-right`].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),Ue=M.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:a,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=M.useRef(null),f=o(t,d),p=M.useRef(void 0),m=!i;function h(e){let t=p.current||d.current.getBoundingClientRect(),i=L([0,t.height],m?[r,n]:[n,r]);return p.current=t,i(e-t.top)}return(0,N.jsx)(Ve,{scope:e.__scopeSlider,startEdge:m?`bottom`:`top`,endEdge:m?`top`:`bottom`,size:`height`,direction:m?1:-1,children:(0,N.jsx)(I,{"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);s?.(t)},onSlideEnd:()=>{p.current=void 0,c?.()},onStepKeyDown:e=>{let t=Me[m?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),I=M.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=ze(P,n);return(0,N.jsx)(T.span,{...l,ref:t,onKeyDown:y(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(s(e),e.preventDefault()):Ae.concat(je).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:y(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:y(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:y(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),We=`SliderTrack`,Ge=M.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=ze(We,n);return(0,N.jsx)(T.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});Ge.displayName=We;var Ke=`SliderRange`,qe=M.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=ze(Ke,n),a=F(Ke,n),s=o(t,M.useRef(null)),c=i.values.length,l=i.values.map(e=>et(e,i.min,i.max)),u=c>1?Math.min(...l):0,d=100-Math.max(...l);return(0,N.jsx)(T.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,ref:s,style:{...e.style,[a.startEdge]:u+`%`,[a.endEdge]:d+`%`}})});qe.displayName=Ke;var Je=`SliderThumb`,Ye=M.forwardRef((e,t)=>{let n=Pe(e.__scopeSlider),[r,i]=M.useState(null),a=o(t,e=>i(e)),s=M.useMemo(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,N.jsx)(Xe,{...e,ref:a,index:s})}),Xe=M.forwardRef((e,t)=>{let{__scopeSlider:n,index:r,name:i,...a}=e,s=ze(Je,n),c=F(Je,n),[l,u]=M.useState(null),d=o(t,e=>u(e)),f=l?s.form||!!l.closest(`form`):!0,p=ee(l),m=s.values[r],h=m===void 0?0:et(m,s.min,s.max),g=tt(r,s.values.length),_=p?.[c.size],v=_?rt(_,h,c.direction):0;return M.useEffect(()=>{if(l)return s.thumbs.add(l),()=>{s.thumbs.delete(l)}},[l,s.thumbs]),(0,N.jsxs)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[c.startEdge]:`calc(${h}% + ${v}px)`},children:[(0,N.jsx)(Ne.ItemSlot,{scope:e.__scopeSlider,children:(0,N.jsx)(T.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":s.min,"aria-valuenow":m,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?``:void 0,tabIndex:s.disabled?void 0:0,...a,ref:d,style:m===void 0?{display:`none`}:e.style,onFocus:y(e.onFocus,()=>{s.valueIndexToChangeRef.current=r})})}),f&&(0,N.jsx)(Qe,{name:i??(s.name?s.name+(s.values.length>1?`[]`:``):void 0),form:s.form,value:m},r)]})});Ye.displayName=Je;var Ze=`RadioBubbleInput`,Qe=M.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{let i=M.useRef(null),a=o(i,r),s=D(t);return M.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(s!==t&&r){let n=new Event(`input`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[s,t]),(0,N.jsx)(T.input,{style:{display:`none`},...n,ref:a,defaultValue:t})});Qe.displayName=Ze;function $e(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function et(e,t,n){return de(100/(n-t)*(e-t),[0,100])}function tt(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function nt(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 rt(e,t,n){let r=e/2;return(r-L([0,50],[0,r])(t)*n)*n}function it(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function at(e,t){if(t>0){let n=it(e);return Math.min(...n)>=t}return!0}function L(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 R(e){return(String(e).split(`.`)[1]||``).length}function z(e,t){let n=10**t;return Math.round(e*n)/n}var ot=Be,st=Ge,ct=qe,lt=Ye,ut=M.forwardRef((e,t)=>{let n=(0,j.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,c]=M.useState(!1),[l,u]=M.useState(!1),d,f;n[4]===l?(d=n[5],f=n[6]):(d=()=>{if(!l)return;let e=function(){u(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},f=[l],n[4]=l,n[5]=d,n[6]=f),M.useEffect(d,f);let p;n[7]===a?p=n[8]:(p=(0,N.jsx)(lt,{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),c(!0))}}),n[7]=a,n[8]=p);let m=p,h;n[9]===r?h=n[10]:(h=s(`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,N.jsx)(st,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,N.jsx)(ct,{className:`absolute h-full bg-primary`})}),n[11]=g):g=n[11];let _;n[12]!==l||n[13]!==o||n[14]!==m||n[15]!==a?(_=a==null?m:(0,N.jsxs)(ne,{open:o||l,onOpenChange:c,children:[(0,N.jsx)(E,{asChild:!0,children:m}),(0,N.jsx)(te,{side:`top`,children:a})]}),n[12]=l,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,N.jsxs)(ot,{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});ut.displayName=ot.displayName;var B=a(`app.use-maximum-turn-count.hook`),dt=100;function ft(){let[e,t]=(0,M.useState)(dt),[n,r]=(0,M.useState)(dt.toString()),[i,a]=(0,M.useState)(!0),[o,s]=(0,M.useState)(!1);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await re();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){B.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 ae({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw B.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:dt,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var V=a(`app.use-screen-recording-permission.hook`),H={isMacOS:!1,granted:!1,available:!1,message:``};function pt(){return{...H,isMacOS:O()}}function mt(){let[e,t]=(0,M.useState)(pt),[n,r]=(0,M.useState)(!0),[i,a]=(0,M.useState)(null),[o,s]=(0,M.useState)(!1),[c,l]=(0,M.useState)(null),u=(0,M.useCallback)(async()=>{r(!0),a(null);try{t(await oe(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...H,isMacOS:e?.isMacOS??O(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,M.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,M.useCallback)(async()=>{s(!0),l(null);try{let e=await ie(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;V.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;V.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var U=a(`app.use-server-bind-mode.hook`),W=`local`,ht=`tarsk-server-bind-mode-changed`;function G(e){se(e)}function gt(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(ht)===`true`}catch{return!1}}function _t(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(ht,`true`):sessionStorage.removeItem(ht)}catch{}}function vt(){let[e,t]=(0,M.useState)(()=>ce()?.serverBindMode??W),[n,r]=(0,M.useState)(null),[i,a]=(0,M.useState)(()=>ce()?.networkAddresses??[]),[o,s]=(0,M.useState)(()=>ce()===null),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(gt);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await re();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),G({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){U.error(`Failed to load server bind mode:`,e)}finally{e||s(!1)}}return n(),()=>{e=!0}},[]);async function f(e){l(!0);try{let n=await ae({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),G({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),_t(!0)}catch(e){throw U.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:W,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var K=a(`app.use-logging.hook`);function yt(){let[e,t]=(0,M.useState)(!1),[n,r]=(0,M.useState)(null),[i,a]=(0,M.useState)(!1),[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(!0),[u,d]=(0,M.useState)(!1);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await re();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){K.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 ae({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw K.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 bt=Object.defineProperty,q=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Ct=(e,t,n)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t)=>{for(var n in t||={})xt.call(t,n)&&Ct(e,n,t[n]);if(q)for(var n of q(t))St.call(t,n)&&Ct(e,n,t[n]);return e},Y=(e,t)=>{var n={};for(var r in e)xt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&q)for(var r of q(e))t.indexOf(r)<0&&St.call(e,r)&&(n[r]=e[r]);return n},X;(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})(X||={}),(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||={})})(X||={}),(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||={})})(X||={});var Z=X,wt={L:Z.QrCode.Ecc.LOW,M:Z.QrCode.Ecc.MEDIUM,Q:Z.QrCode.Ecc.QUARTILE,H:Z.QrCode.Ecc.HIGH},Tt=128,Et=`L`,Q=`#FFFFFF`,Dt=`#000000`,Ot=!1,$=1,kt=4,At=0,jt=.1;function Mt(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 Nt(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 Pt(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*jt),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 Ft(e,t){return t==null?e?kt:At:Math.max(Math.floor(t),0)}function It({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=M.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...Z.QrSegment.makeSegments(t)),e),[]);return Z.QrCode.encodeSegments(r,wt[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=M.useMemo(()=>{let e=c.getModules(),t=Ft(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Pt(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Lt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Rt=M.forwardRef(function(e,t){let n=e,{value:r,size:i=Tt,level:a=Et,bgColor:o=Q,fgColor:s=Dt,includeMargin:c=Ot,minVersion:l=$,boostLevel:u,marginSize:d,imageSettings:f}=n,p=Y(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=Y(p,[`style`]),g=f?.src,_=M.useRef(null),v=M.useRef(null),y=M.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=M.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=It({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});M.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=Nt(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,Lt?t.fill(new Path2D(Mt(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)}}),M.useEffect(()=>{x(!1)},[g]);let ee=J({height:i,width:i},m),E=null;return g!=null&&(E=M.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),M.createElement(M.Fragment,null,M.createElement(`canvas`,J({style:ee,height:i,width:i,ref:y,role:`img`},h)),E)});Rt.displayName=`QRCodeCanvas`;var zt=M.forwardRef(function(e,t){let n=e,{value:r,size:i=Tt,level:a=Et,bgColor:o=Q,fgColor:s=Dt,includeMargin:c=Ot,minVersion:l=$,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=Y(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=It({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=Nt(g,v.excavation)),b=M.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=Mt(y,h);return M.createElement(`svg`,J({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&M.createElement(`title`,null,d),M.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),M.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});zt.displayName=`QRCodeSVG`;var Bt=[{value:`light`,label:`Light`,icon:d},{value:`dark`,label:`Dark`,icon:S},{value:`system`,label:`System`,icon:f}],Vt=[{value:`image`,label:`Image`,icon:u},{value:`background`,label:`Background`,icon:g}],Ht=`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`,Ut=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,Wt=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,Gt=600;function Kt(e){let t=(0,j.c)(159),{onboardingResetSignal:n}=e,r=qt(n===void 0?0:n),{theme:a,setTheme:o}=xe(),{scale:c,updateScale:l,min:u,max:d}=we(),{opacity:f,updateOpacity:p,min:m,max:h}=Se(),{mode:g,color:_,updateMode:v,updateColor:y}=ge(),{color:b,updateColor:x,resetColor:S}=Ee(),{defaultMaximumTurnCount:C,draftMaximumTurnCount:w,isLoading:T,isSaving:ee,resetDraftMaximumTurnCount:E,setDraftMaximumTurnCount:te,updateMaximumTurnCount:ne}=ft(),{status:re,isLoading:ie,isOpeningSettings:ae,openSettingsError:oe,refresh:se,openSystemSettings:ce}=mt(),{isLoading:le,isSaving:ue,needsRestart:de,networkAddresses:D,serverBindMode:O,updateServerBindMode:be}=vt(),{isEnabled:Te,isLoading:A,isSaving:Oe,updateIsEnabled:Ae}=ye(),{isEnabled:je,isLoading:Me,isSaving:P,updateIsEnabled:Ne}=ve(),{isEnabled:Pe,isSupported:Fe,isHealthy:Ie,statusMessage:Le,isLoading:Re,isSaving:ze,updateIsEnabled:Be}=Ce(),{isEnabled:Ve,logPath:F,isEnvConfigured:He,ingestingHost:Ue,isLoading:I,isSaving:We,updateIsEnabled:Ge}=yt(),Ke;t[0]!==I||t[1]!==T||t[2]!==ie||t[3]!==Re||t[4]!==le||t[5]!==Me||t[6]!==A?(Ke=[T,ie,le,A,Me,Re,I],t[0]=I,t[1]=T,t[2]=ie,t[3]=Re,t[4]=le,t[5]=Me,t[6]=A,t[7]=Ke):Ke=t[7];let qe=ke(`general`,Ke),Je;t[8]===te?Je=t[9]:(Je=function(e){te(e.target.value)},t[8]=te,t[9]=Je);let Ye=Je,Xe;t[10]!==C||t[11]!==w||t[12]!==E||t[13]!==ne?(Xe=async function(){let e=Number.parseInt(w,10),t=Number.isFinite(e)&&e>0?e:C;try{await ne(t)}catch{E()}},t[10]=C,t[11]=w,t[12]=E,t[13]=ne,t[14]=Xe):Xe=t[14];let Ze=Xe,Qe;t[15]===l?Qe=t[16]:(Qe=function(e){e.length>0&&l(e[0])},t[15]=l,t[16]=Qe);let $e=Qe,et;t[17]===p?et=t[18]:(et=function(e){e.length>0&&p(e[0])},t[17]=p,t[18]=et);let tt=et,nt;t[19]===F?nt=t[20]:(nt=async function(){if(F)try{await navigator.clipboard.writeText(F),fe({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;fe({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[19]=F,t[20]=nt);let rt=nt,[it,at]=(0,M.useState)(!1),L,R,z;t[21]!==D||t[22]!==O?(L=async function(){if(R)try{await navigator.clipboard.writeText(R),at(!0),fe({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{at(!1)},1500)}catch(e){let t=e;fe({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},z=O===`network`&&D.length>0,R=z?`http://${D[0]}:${Wt}`:null,t[21]=D,t[22]=O,t[23]=L,t[24]=R,t[25]=z):(L=t[23],R=t[24],z=t[25]);let ot=r&&`animate-headline-reset`,st;t[26]===ot?st=t[27]:(st=s(ot),t[26]=ot,t[27]=st);let ct;t[28]===st?ct=t[29]:(ct=(0,N.jsx)(De,{title:`Appearance`,titleClassName:st,className:`[&>div:first-child]:py-2`,sticky:!1}),t[28]=st,t[29]=ct);let lt;t[30]===u?lt=t[31]:(lt=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-8 shrink-0 text-right`,children:[u,`%`]}),t[30]=u,t[31]=lt);let B;t[32]===c?B=t[33]:(B=[c],t[32]=c,t[33]=B);let dt=`${c}%`,V;t[34]!==$e||t[35]!==d||t[36]!==u||t[37]!==B||t[38]!==dt?(V=(0,N.jsx)(ut,{value:B,min:u,max:d,step:5,onValueChange:$e,"aria-label":`Font size`,valueTooltip:dt}),t[34]=$e,t[35]=d,t[36]=u,t[37]=B,t[38]=dt,t[39]=V):V=t[39];let H;t[40]===d?H=t[41]:(H=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-9 shrink-0`,children:[d,`%`]}),t[40]=d,t[41]=H);let pt;t[42]!==lt||t[43]!==V||t[44]!==H?(pt=(0,N.jsx)(k,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,N.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[lt,V,H]})}),t[42]=lt,t[43]=V,t[44]=H,t[45]=pt):pt=t[45];let U;t[46]===m?U=t[47]:(U=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-8 shrink-0 text-right`,children:[m,`%`]}),t[46]=m,t[47]=U);let W;t[48]===f?W=t[49]:(W=[f],t[48]=f,t[49]=W);let ht=`${f}%`,G;t[50]!==h||t[51]!==m||t[52]!==tt||t[53]!==W||t[54]!==ht?(G=(0,N.jsx)(ut,{value:W,min:m,max:h,step:5,onValueChange:tt,"aria-label":`Panel opacity`,valueTooltip:ht}),t[50]=h,t[51]=m,t[52]=tt,t[53]=W,t[54]=ht,t[55]=G):G=t[55];let gt;t[56]===h?gt=t[57]:(gt=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-9 shrink-0`,children:[h,`%`]}),t[56]=h,t[57]=gt);let _t;t[58]!==U||t[59]!==G||t[60]!==gt?(_t=(0,N.jsx)(k,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,N.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[U,G,gt]})}),t[58]=U,t[59]=G,t[60]=gt,t[61]=_t):_t=t[61];let K;t[62]!==o||t[63]!==a?(K=(0,N.jsx)(Jt,{theme:a,onThemeChange:o}),t[62]=o,t[63]=a,t[64]=K):K=t[64];let bt;t[65]!==y||t[66]!==v||t[67]!==_||t[68]!==g?(bt=(0,N.jsx)(Xt,{wallpaperMode:g,wallpaperColor:_,onModeChange:v,onColorChange:y}),t[65]=y,t[66]=v,t[67]=_,t[68]=g,t[69]=bt):bt=t[69];let q;t[70]!==b||t[71]!==S||t[72]!==x?(q=(0,N.jsx)(Qt,{brandColor:b,onColorChange:x,onReset:S}),t[70]=b,t[71]=S,t[72]=x,t[73]=q):q=t[73];let xt;t[74]!==pt||t[75]!==_t||t[76]!==K||t[77]!==bt||t[78]!==q?(xt=(0,N.jsx)(he,{className:`max-w-none pt-0`,children:(0,N.jsxs)(_e,{children:[pt,_t,K,bt,q]})}),t[74]=pt,t[75]=_t,t[76]=K,t[77]=bt,t[78]=q,t[79]=xt):xt=t[79];let St;t[80]!==ct||t[81]!==xt?(St=(0,N.jsxs)(pe,{className:`shrink-0`,children:[ct,xt]}),t[80]=ct,t[81]=xt,t[82]=St):St=t[82];let Ct;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,N.jsx)(De,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[83]=Ct):Ct=t[83];let J;t[84]!==C||t[85]!==w||t[86]!==Ze||t[87]!==Ye||t[88]!==T||t[89]!==ee?(J=(0,N.jsx)($t,{draftValue:w,defaultTurnCount:C,isLoading:T,isSaving:ee,onChange:Ye,onBlur:Ze}),t[84]=C,t[85]=w,t[86]=Ze,t[87]=Ye,t[88]=T,t[89]=ee,t[90]=J):J=t[90];let Y;t[91]===Ae?Y=t[92]:(Y=e=>{Ae(e)},t[91]=Ae,t[92]=Y);let X;t[93]!==A||t[94]!==Oe||t[95]!==Y||t[96]!==Te?(X=(0,N.jsx)(en,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,value:Te,isLoading:A,isSaving:Oe,ariaLabel:`AI Voice Cleanup`,onChange:Y}),t[93]=A,t[94]=Oe,t[95]=Y,t[96]=Te,t[97]=X):X=t[97];let Z;t[98]===Ne?Z=t[99]:(Z=e=>{Ne(e)},t[98]=Ne,t[99]=Z);let wt;t[100]!==Me||t[101]!==P||t[102]!==je||t[103]!==Z?(wt=(0,N.jsx)(en,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,value:je,isLoading:Me,isSaving:P,ariaLabel:`Spend`,onChange:Z}),t[100]=Me,t[101]=P,t[102]=je,t[103]=Z,t[104]=wt):wt=t[104];let Tt;t[105]!==ae||t[106]!==ie||t[107]!==ce||t[108]!==se||t[109]!==oe||t[110]!==re?(Tt=(0,N.jsx)(tn,{status:re,isLoading:ie,isOpeningSettings:ae,openSettingsError:oe,onRefresh:se,onOpenSettings:ce}),t[105]=ae,t[106]=ie,t[107]=ce,t[108]=se,t[109]=oe,t[110]=re,t[111]=Tt):Tt=t[111];let Et;t[112]!==Re||t[113]!==ze||t[114]!==Pe||t[115]!==Ie||t[116]!==Le||t[117]!==Fe||t[118]!==Be?(Et=(0,N.jsx)(nn,{supported:Fe,enabled:Pe,healthy:Ie,message:Le,isLoading:Re,isSaving:ze,onChange:Be}),t[112]=Re,t[113]=ze,t[114]=Pe,t[115]=Ie,t[116]=Le,t[117]=Fe,t[118]=Be,t[119]=Et):Et=t[119];let Q;t[120]===Ge?Q=t[121]:(Q=e=>{Ge(e)},t[120]=Ge,t[121]=Q);let Dt;t[122]!==Ue||t[123]!==rt||t[124]!==He||t[125]!==I||t[126]!==We||t[127]!==Ve||t[128]!==F||t[129]!==Q?(Dt=(0,N.jsx)(an,{enabled:Ve,logPath:F,isEnvConfigured:He,ingestingHost:Ue,isLoading:I,isSaving:We,onChange:Q,onCopyPath:rt}),t[122]=Ue,t[123]=rt,t[124]=He,t[125]=I,t[126]=We,t[127]=Ve,t[128]=F,t[129]=Q,t[130]=Dt):Dt=t[130];let Ot;t[131]!==it||t[132]!==L||t[133]!==le||t[134]!==ue||t[135]!==R||t[136]!==de||t[137]!==D||t[138]!==O||t[139]!==z||t[140]!==be?(Ot=(0,N.jsx)(on,{bindMode:O,isLoading:le,isSaving:ue,networkAddresses:D,needsRestart:de,showMobileQrCode:z,mobileNetworkUrl:R,copiedUrl:it,onChangeMode:be,onCopyUrl:L}),t[131]=it,t[132]=L,t[133]=le,t[134]=ue,t[135]=R,t[136]=de,t[137]=D,t[138]=O,t[139]=z,t[140]=be,t[141]=Ot):Ot=t[141];let $;t[142]!==J||t[143]!==X||t[144]!==wt||t[145]!==Tt||t[146]!==Et||t[147]!==Dt||t[148]!==Ot?($=(0,N.jsxs)(pe,{className:`shrink-0`,children:[Ct,(0,N.jsx)(he,{className:`max-w-none pt-0`,children:(0,N.jsxs)(_e,{children:[J,X,wt,Tt,Et,Dt,Ot]})})]}),t[142]=J,t[143]=X,t[144]=wt,t[145]=Tt,t[146]=Et,t[147]=Dt,t[148]=Ot,t[149]=$):$=t[149];let kt;t[150]===R?kt=t[151]:(kt=(0,N.jsx)(sn,{url:R}),t[150]=R,t[151]=kt);let At;t[152]!==St||t[153]!==$||t[154]!==kt?(At=(0,N.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[St,$,kt]}),t[152]=St,t[153]=$,t[154]=kt,t[155]=At):At=t[155];let jt;return t[156]!==qe||t[157]!==At?(jt=(0,N.jsx)(me,{loading:qe,children:At}),t[156]=qe,t[157]=At,t[158]=jt):jt=t[158],jt}function qt(e){let t=(0,j.c)(3),[n,r]=(0,M.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)},Gt);return()=>{clearTimeout(t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,M.useEffect)(i,a),n}function Jt(e){let t=(0,j.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=Bt.map(Yt),t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==n?(o=(0,N.jsx)(k,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,N.jsx)(Oe,{type:`single`,value:n,onValueChange:i,"aria-label":`Appearance`,className:Ut,children:a})}),t[3]=i,t[4]=n,t[5]=o):o=t[5],o}function Yt(e){let t=e.icon;return(0,N.jsx)(A,{value:e.value,"aria-label":e.label,className:Ht,children:(0,N.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Xt(e){let t=(0,j.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 c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=Vt.map(Zt),t[2]=c):c=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=s(Ht,`relative overflow-hidden`),t[3]=l):l=t[3];let u;t[4]===r?u=t[5]:(u=(0,N.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,N.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,N.jsxs)(A,{value:`color`,"aria-label":`Custom color`,className:l,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,N.jsx)(k,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,N.jsxs)(Oe,{type:`single`,value:n,onValueChange:o,"aria-label":`Wallpaper`,className:Ut,children:[c,m]})}),t[18]=o,t[19]=m,t[20]=n,t[21]=h):h=t[21],h}function Zt(e){let t=e.icon;return(0,N.jsx)(A,{value:e.value,"aria-label":e.label,className:Ht,children:(0,N.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Qt(e){let t=(0,j.c)(14),{brandColor:n,onColorChange:r,onReset:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=s(Ht,`relative cursor-pointer overflow-hidden`),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,N.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 c;t[3]===r?c=t[4]:(c=e=>{r(e.target.value)},t[3]=r,t[4]=c);let l;t[5]!==n||t[6]!==c?(l=(0,N.jsx)(`input`,{type:`color`,value:n,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:c}),t[5]=n,t[6]=c,t[7]=l):l=t[7];let u;t[8]!==o||t[9]!==l?(u=(0,N.jsx)(`div`,{className:Ut,children:(0,N.jsxs)(`label`,{className:a,children:[o,l]})}),t[8]=o,t[9]=l,t[10]=u):u=t[10];let d;return t[11]!==i||t[12]!==u?(d=(0,N.jsx)(k,{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 $t(e){let t=(0,j.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,N.jsx)(be,{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,N.jsx)(k,{title:`Maximum Turn Count`,description:c,controlLayout:`row-end`,action:d}),t[7]=c,t[8]=d,t[9]=f):f=t[9],f}function en(e){let t=(0,j.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,N.jsx)(Te,{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,N.jsx)(k,{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}function tn(e){let t=(0,j.c)(25),{status:n,isLoading:r,isOpeningSettings:a,openSettingsError:o,onRefresh:u,onOpenSettings:d}=e;if(!n?.isMacOS)return null;let f;t[0]!==r||t[1]!==n?.granted?(f=!r&&n?.granted?(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(p,{className:`h-4 w-4 text-green-500`}),(0,N.jsx)(`span`,{className:s(i.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}):r?null:(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(l,{className:`h-4 w-4 text-amber-500`}),(0,N.jsx)(`span`,{className:s(i.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),t[0]=r,t[1]=n?.granted,t[2]=f):f=t[2];let h;t[3]===u?h=t[4]:(h=()=>void u(),t[3]=u,t[4]=h);let g;t[5]===r?g=t[6]:(g=r?(0,N.jsx)(m,{className:`h-3.5 w-3.5 animate-spin`}):(0,N.jsx)(_,{className:`h-3.5 w-3.5`}),t[5]=r,t[6]=g);let v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,N.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`}),t[7]=v):v=t[7];let y;t[8]!==r||t[9]!==h||t[10]!==g?(y=(0,N.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:h,disabled:r,children:[g,v]}),t[8]=r,t[9]=h,t[10]=g,t[11]=y):y=t[11];let x;t[12]!==f||t[13]!==y?(x=(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[f,y]}),t[12]=f,t[13]=y,t[14]=x):x=t[14];let S;t[15]!==r||t[16]!==a||t[17]!==d||t[18]!==o||t[19]!==n?.granted||t[20]!==n?.message?(S=!r&&!n?.granted?(0,N.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,N.jsx)(`p`,{className:i.bodyMuted,children:n?.message??`Tarsk needs Screen & Audio Recording permission to use browser tools.`}),(0,N.jsx)(c,{size:`sm`,onClick:()=>void d(),disabled:a,className:`w-fit`,children:a?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(m,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(b,{className:`h-4 w-4 mr-2`}),`Open System Settings`]})}),o&&(0,N.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[(0,N.jsx)(C,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),(0,N.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,N.jsx)(`p`,{className:i.body,children:`Failed to open System Settings`}),(0,N.jsx)(`p`,{className:i.bodyMuted,children:o}),(0,N.jsxs)(`p`,{className:i.bodyMuted,children:[`Please open it manually:`,` `,(0,N.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]})]})]})]}):null,t[15]=r,t[16]=a,t[17]=d,t[18]=o,t[19]=n?.granted,t[20]=n?.message,t[21]=S):S=t[21];let w;return t[22]!==x||t[23]!==S?(w=(0,N.jsx)(k,{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:x,children:S}),t[22]=x,t[23]=S,t[24]=w):w=t[24],w}function nn(e){let t=(0,j.c)(15),{supported:n,enabled:r,healthy:a,message:o,isLoading:s,isSaving:c,onChange:u}=e;if(!n)return null;let d=r&&a,f;t[0]!==a||t[1]!==u?(f=e=>{e&&!a||u(e).catch(rn)},t[0]=a,t[1]=u,t[2]=f):f=t[2];let p=s||c,m=!a,h;t[3]!==d||t[4]!==f||t[5]!==p||t[6]!==m?(h=(0,N.jsx)(Te,{value:d,onChange:f,disabled:p,disableOn:m,ariaLabel:`Sandbox`}),t[3]=d,t[4]=f,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g;t[8]!==a||t[9]!==s||t[10]!==o?(g=!s&&!a?(0,N.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,N.jsx)(l,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,N.jsx)(`p`,{className:i.bodyMuted,children:o||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null,t[8]=a,t[9]=s,t[10]=o,t[11]=g):g=t[11];let _;return t[12]!==h||t[13]!==g?(_=(0,N.jsx)(k,{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:h,children:g}),t[12]=h,t[13]=g,t[14]=_):_=t[14],_}function rn(){}function an(e){let t=(0,j.c)(25),{enabled:n,logPath:r,isEnvConfigured:a,ingestingHost:o,isLoading:c,isSaving:l,onChange:u,onCopyPath:d}=e,f=c||l,p;t[0]!==n||t[1]!==u||t[2]!==f?(p=(0,N.jsx)(E,{asChild:!0,children:(0,N.jsx)(`span`,{className:`inline-flex`,children:(0,N.jsx)(Te,{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,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`p`,{children:`Click to copy log file path`}),(0,N.jsx)(`p`,{className:s(i.mono,`mt-1 break-all`),children:r})]}):(0,N.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,N.jsx)(te,{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,N.jsxs)(ne,{children:[p,_]}),t[15]=p,t[16]=_,t[17]=v):v=t[17];let y;t[18]!==n||t[19]!==o||t[20]!==a?(y=n&&a&&o&&(0,N.jsxs)(`p`,{className:`${i.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,N.jsx)(`span`,{className:i.mono,children:o})]}),t[18]=n,t[19]=o,t[20]=a,t[21]=y):y=t[21];let b;return t[22]!==v||t[23]!==y?(b=(0,N.jsx)(k,{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 on(e){let t=(0,j.c)(23),{bindMode:n,isLoading:r,isSaving:a,networkAddresses:o,needsRestart:s,showMobileQrCode:c,mobileNetworkUrl:l,copiedUrl:u,onChangeMode:d,onCopyUrl:f}=e,p=n===`network`,m;t[0]===d?m=t[1]:(m=e=>{d(e?`network`:`local`)},t[0]=d,t[1]=m);let g=r||a,_;t[2]!==p||t[3]!==m||t[4]!==g?(_=(0,N.jsx)(Te,{value:p,onChange:m,disabled:g,ariaLabel:`Mobile & Network Access`}),t[2]=p,t[3]=m,t[4]=g,t[5]=_):_=t[5];let y;t[6]!==u||t[7]!==l||t[8]!==s||t[9]!==f||t[10]!==c?(y=c&&l&&(0,N.jsxs)(`div`,{className:`mt-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsxs)(`p`,{className:i.bodyMuted,children:[`Available on the network at:`,` `,(0,N.jsx)(`span`,{className:i.mono,children:l})]}),(0,N.jsxs)(ne,{children:[(0,N.jsx)(E,{asChild:!0,children:(0,N.jsxs)(`button`,{type:`button`,onClick:()=>void f(),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:[u?(0,N.jsx)(h,{className:`h-3.5 w-3.5 text-green-500`}):(0,N.jsx)(v,{className:`h-3.5 w-3.5`}),(0,N.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,N.jsx)(te,{children:u?`Copied!`:`Copy to clipboard`})]})]}),s&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[6]=u,t[7]=l,t[8]=s,t[9]=f,t[10]=c,t[11]=y):y=t[11];let b;t[12]!==n||t[13]!==o?(b=n===`network`&&o.length===0&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[12]=n,t[13]=o,t[14]=b):b=t[14];let x;t[15]!==n||t[16]!==s?(x=s&&n===`local`&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[15]=n,t[16]=s,t[17]=x):x=t[17];let S;return t[18]!==_||t[19]!==y||t[20]!==b||t[21]!==x?(S=(0,N.jsxs)(k,{title:`Mobile & Network Access`,description:`Allow the Tarsk mobile app or other web browsers to access Tarsk on the wifi network.`,controlLayout:`row-end`,action:_,children:[y,b,x]}),t[18]=_,t[19]=y,t[20]=b,t[21]=x,t[22]=S):S=t[22],S}function sn(e){let t=(0,j.c)(3),{url:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsx)(De,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,N.jsxs)(pe,{className:`shrink-0`,children:[r,(0,N.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,N.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,N.jsx)(zt,{value:n,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}),t[1]=n,t[2]=i),i}export{Kt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-aKtaBQYM.js";import{n as e,o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Dt as r}from"./dist-CTLFS4dn.js";import{r as i,t as a}from"./button-kWtLAMpB.js";import{D as o,q as s}from"./dist-c_QADQ5u.js";import{i as c,n as l,r as u,t as d}from"./tooltip-Db8UeYxm.js";import{Wn as f,bt as p,fr as m}from"./index-B3-5kIOf.js";import"./card-B_EASkic.js";var h=e();t();var g=n();function _(e){let t=(0,h.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,g.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,g.jsx)(`h3`,{className:d,children:a}),t[5]=a,t[6]=f);let p;t[7]===o?p=t[8]:(p=o?(0,g.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,g.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 v(e){let t=(0,h.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,g.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,g.jsx)(m,{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,g.jsxs)(`div`,{className:l,children:[u,f]}),t[9]=l,t[10]=f,t[11]=p):p=t[11],p}function y(e){let t=(0,h.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,g.jsx)(`p`,{className:o,children:s}),t[1]=s,t[2]=c),c}function b(e){let t=(0,h.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,g.jsx)(`p`,{className:a,children:n}),t[1]=n,t[2]=o),o}var x=`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 S(e){let t=(0,h.c)(19),{loading:n,items:r,emptyState:s,getKey:m,columnsClassName:v,compact:y,showHeader:b,renderContent:S,renderMiddle:C,onItemClick:w,itemClickLabel:T,onDelete:E,deleteAriaLabel:D,deleteTooltip:O}=e,k=v===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:v,A=y===void 0?!1:y,j=b===void 0?!0:b,M;t[0]===j?M=t[1]:(M=j?(0,g.jsx)(p,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==D||t[5]!==O||t[6]!==s||t[7]!==m||t[8]!==T||t[9]!==r||t[10]!==n||t[11]!==E||t[12]!==w||t[13]!==S||t[14]!==C?(N=n?(0,g.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,g.jsx)(f,{className:i(`w-full`,A?`h-9`:`h-12`)}),(0,g.jsx)(f,{className:i(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,g.jsx)(_,{...s}):(0,g.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,g.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,w&&`cursor-pointer`),role:w?`button`:void 0,tabIndex:w?0:void 0,"aria-label":w?T?.(e):void 0,onClick:w?()=>w(e):void 0,onKeyDown:w?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),w(e))}:void 0,children:[S(e),C?.(e),(0,g.jsx)(u,{children:(0,g.jsxs)(d,{children:[(0,g.jsx)(c,{asChild:!0,children:(0,g.jsx)(a,{type:`button`,variant:`ghost`,size:`icon-sm`,className:x,onClick:t=>{t.stopPropagation(),E(e)},"aria-label":D(e),children:(0,g.jsx)(o,{className:`h-4 w-4`})})}),(0,g.jsx)(l,{children:O})]})})]},m(e)))}),t[2]=k,t[3]=A,t[4]=D,t[5]=O,t[6]=s,t[7]=m,t[8]=T,t[9]=r,t[10]=n,t[11]=E,t[12]=w,t[13]=S,t[14]=C,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,g.jsxs)(g.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{v as a,y as i,_ as n,b as o,S as r,x as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
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{Dt as i}from"./dist-CTLFS4dn.js";import{r as a}from"./store-BSzKIu5G.js";import{d as o,r as s,t as c}from"./button-kWtLAMpB.js";import{$ as l,D as u,G as d,Nn as f,Pn as p,ct as m,fn as h,g,h as _,rt as v,t as y,u as b,y as x}from"./dist-c_QADQ5u.js";import{t as S}from"./dist-DoxvnNEY.js";import{i as C,n as ee,r as w,t as T}from"./tooltip-Db8UeYxm.js";import{Qt as E,ft as D,i as O,mn as k}from"./api-DX1ny6q-.js";import{t as A}from"./use-toast-xpb5jNtN.js";import{n as j}from"./explorer-tab-context-BxUVwWQQ.js";import{t as M}from"./dist-CSssbxDI.js";import{$n as N,At as P,C as F,Ct as I,D as L,Dt as R,E as z,Et as B,Ft as V,It as H,Jn as U,Ln as te,Mt as W,Nt as ne,Qn as G,S as K,T as re,Xn as q,Zn as J,_t as Y,cr as ie,fr as X,gt as ae,ir as oe,jt as se,kt as ce,lr as le,mr as ue,or as de,pr as fe,rr as pe,sr as me,tr as he,ur as ge,w as _e,yt as ve}from"./index-B3-5kIOf.js";import{t as ye}from"./delete-confirm-dialog-Dl76vaxb.js";import{t as be}from"./use-settings-page-loading-BTySlInF.js";import{n as xe}from"./settings-list-DiiYzOxn.js";var Z=t(),Q=e(n(),1),$=r(),Se=`Switch`,[Ce,we]=_(Se),[Te,Ee]=Ce(Se),De=Q.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]=Q.useState(null),h=o(t,e=>m(e)),_=Q.useRef(!1),v=p?d||!!p.closest(`form`):!0,[x,S]=y({prop:i,defaultProp:a??!1,onChange:u,caller:Se});return(0,$.jsxs)(Te,{scope:n,checked:x,disabled:c,children:[(0,$.jsx)(b.button,{type:`button`,role:`switch`,"aria-checked":x,"aria-required":s,"data-state":Me(x),"data-disabled":c?``:void 0,disabled:c,value:l,...f,ref:h,onClick:g(e.onClick,e=>{S(e=>!e),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,$.jsx)(je,{control:p,bubbles:!_.current,name:r,value:l,checked:x,required:s,disabled:c,form:d,style:{transform:`translateX(-100%)`}})]})});De.displayName=Se;var Oe=`SwitchThumb`,ke=Q.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Ee(Oe,n);return(0,$.jsx)(b.span,{"data-state":Me(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});ke.displayName=Oe;var Ae=`SwitchBubbleInput`,je=Q.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let s=Q.useRef(null),c=o(s,a),l=M(n),u=S(t);return Q.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,$.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}})});je.displayName=Ae;function Me(e){return e?`checked`:`unchecked`}var Ne=De,Pe=ke,Fe=Q.forwardRef((e,t)=>{let n=(0,Z.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,$.jsx)(Pe,{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,$.jsx)(Ne,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=c):c=n[9],c});Fe.displayName=Ne.displayName;var Ie={key:``,value:``},Le={serverType:`local`,name:``,command:``,argsText:``,serverUrl:``,transport:`sse`,oauthClientId:``,oauthClientSecret:``,oauthCallbackPort:``,defer:!0},Re=[e=>e.name,e=>e.command,e=>e.argsText,e=>e.serverUrl,e=>e.oauthClientId,e=>e.oauthClientSecret,e=>e.oauthCallbackPort];function ze(e,t){return e??t}function Be(e){return e?.url?`remote`:`local`}function Ve(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}function He(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 Ue(e){return(e??[]).join(`
|
|
2
|
-
`)}function We(e){return e.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean)}function Ge(e){return e===void 0?``:String(e)}function Ke(e){return{oauthClientId:ze(e?.clientId,``),oauthClientSecret:ze(e?.clientSecret,``),oauthCallbackPort:Ge(e?.callbackPort)}}function qe(e,t){return{...Le,name:e,serverType:Be(t),command:ze(t.command,``),argsText:Ue(t.args),serverUrl:ze(t.url,``),transport:ze(t.transport,`sse`),...Ke(t.oauth),defer:t.defer!==!1}}function Je(e,t,n){return JSON.stringify({name:e,type:t,config:n})}function Ye(e){if(!e)return;let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>0?t:void 0}function Xe(e){let t={};for(let[n,r]of Object.entries(e))r!==``&&r!==void 0&&(t[n]=r);return t}function Ze(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function Qe(e,t,n){return e!==``||t!==``||n!==void 0}function $e(e){let t=e.oauthClientId.trim(),n=e.oauthClientSecret.trim(),r=Ye(e.oauthCallbackPort.trim());if(!Qe(t,n,r))return;let i=Xe({clientId:t,clientSecret:n,callbackPort:r});if(Object.keys(i).length!==0)return i}function et(e,t,n){return Ze({url:e.serverUrl.trim(),transport:e.transport,headers:He(n),env:He(t),oauth:$e(e),defer:e.defer?void 0:!1})}function tt(e,t){return Ze({command:e.command.trim(),args:We(e.argsText),env:He(t),defer:e.defer?void 0:!1})}function nt(e,t,n){return e.serverType===`remote`?et(e,t,n):tt(e,t)}function rt(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 it(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 at(e){return e.oauthClientSecret.trim()&&!e.oauthClientId.trim()?`OAuth client ID is required when a client secret is set`:null}function ot(e){return rt(e.serverUrl)??it(e.oauthCallbackPort)??at(e)}function st(e){return e.trim()?null:`Command is required`}function ct(e,t){return t.name.trim()?e===`remote`?ot(t):st(t.command):`Server name is required`}function lt(e,t,n){return Re.some(t=>t(e).trim()!==``)||t.length>0||n.length>0||!e.defer}function ut(e){return e.isEditing?e.currentSnapshot!==e.originalSnapshot:lt(e.form,e.envEntries,e.headerEntries)}function dt(e){if(e.isEditing&&e.serverName)return e.installedServers.find(t=>t.name===e.serverName);if(e.initialConfig)return{name:ze(e.initialName,``),config:e.initialConfig}}function ft(e,t){return e instanceof Error?e.message:t}function pt(e,t){return e?t?`Saving...`:`Adding...`:t?`Save`:`Add`}function mt(e,t){return e?`MCP server saved · ${F(t.catalog)}`:`MCP server added · ${F(t.catalog)}`}function ht(e,t){return{title:e?t:`Add MCP Server`,description:e?`Edit MCP Server configuration.`:`Configure a new MCP Server.`}}function gt(){let e=(0,Z.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={env:[],header:[]},e[0]=t):t=e[0];let[n,r]=(0,Q.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,_t)},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 _t(e){return[...e,Ie]}function vt(e){async function t(){if(!e.projectPath)throw Error(`No project path`);let t=await re(e.projectPath,e.originalName||e.form.name.trim(),nt(e.form,e.envEntries,e.headerEntries));A({title:`Success`,description:mt(e.isEditing,t)}),e.onBack()}async function n(){e.setError(null);let n=ct(e.form.serverType,e.form);if(n){e.setError(n);return}e.setSaving(!0);try{await t()}catch(t){e.setError(ft(t,`Failed to save server`))}finally{e.setSaving(!1)}}async function r(){if(e.projectPath){e.setDeleting(!0);try{await K(e.projectPath,e.originalName),A({title:`Success`,description:`MCP server removed`}),e.onBack()}catch(t){e.setError(ft(t,`Failed to delete server`))}finally{e.setDeleting(!1)}}}return{handleSave:n,handleDelete:r}}function yt(e){let{installedServers:t}=L(e.projectPath),n=!!e.serverName,[r,i]=(0,Q.useState)(Le),{lists:a,setEntryLists:o,addEntry:s,removeEntry:c,updateEntry:l}=gt(),[u,d]=(0,Q.useState)({name:``,snapshot:``}),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(null),[v,y]=(0,Q.useState)(n);(0,Q.useEffect)(()=>{let r=dt({isEditing:n,serverName:e.serverName,initialName:e.initialName,initialConfig:e.initialConfig,installedServers:t});r&&(i(qe(r.name,r.config)),o({env:Ve(r.config.env),header:Ve(r.config.headers)}),d({name:r.name,snapshot:Je(r.name,Be(r.config),r.config)})),(!n||r)&&y(!1)},[t,e.serverName,e.initialName,e.initialConfig,o,n]);function b(e){i(t=>({...t,...e}))}return{form:r,patchForm:b,lists:a,addEntry:s,removeEntry:c,updateEntry:l,original:u,saving:f,deleting:m,error:g,loading:v,actions:vt({projectPath:e.projectPath,isEditing:n,form:r,envEntries:a.env,headerEntries:a.header,originalName:u.name,onBack:e.onBack,setError:_,setSaving:p,setDeleting:h})}}function bt(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,$.jsx)(`p`,{className:i.bodyMuted,children:`Loading server configuration...`})}),e[0]=t):t=e[0],t}function xt(e){let t=(0,Z.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,$.jsx)(X,{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,$.jsx)(Y,{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 St(e){let t=(0,Z.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,$.jsx)(Y,{title:`Command`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(X,{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,$.jsx)(Y,{title:`Arguments`,description:`One argument per line`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(U,{id:`server-args`,placeholder:`-y
|
|
4
|
-
@modelcontextprotocol/server-filesystem
|
|
5
|
-
/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,$.jsxs)($.Fragment,{children:[a,s]}),t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function Ct(e){let t=(0,Z.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,$.jsx)(X,{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,$.jsx)(X,{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,$.jsx)(X,{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,$.jsx)(Y,{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,$.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 wt(e){let t=(0,Z.c)(15),{entries:n,emptyMessage:r,keyPlaceholder:a,valuePlaceholder:o,onUpdate:s,onRemove:l}=e;if(n.length===0){let e;return t[0]===r?e=t[1]:(e=(0,$.jsx)(`p`,{className:i.caption,children:r}),t[0]=r,t[1]=e),e}let u;if(t[2]!==n||t[3]!==a||t[4]!==l||t[5]!==s||t[6]!==o){let e;t[8]!==a||t[9]!==l||t[10]!==s||t[11]!==o?(e=(e,t)=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(X,{placeholder:a,value:e.key,onChange:e=>s(t,{key:e.target.value}),className:`font-mono w-[35%]`}),(0,$.jsx)(X,{placeholder:o,value:e.value,onChange:e=>s(t,{value:e.target.value}),className:`font-mono flex-1`}),(0,$.jsx)(c,{variant:`ghost`,size:`icon`,onClick:()=>l(t),className:`h-9 w-9 flex-shrink-0`,children:(0,$.jsx)(x,{className:`h-3.5 w-3.5`})})]},t),t[8]=a,t[9]=l,t[10]=s,t[11]=o,t[12]=e):e=t[12],u=n.map(e),t[2]=n,t[3]=a,t[4]=l,t[5]=s,t[6]=o,t[7]=u}else u=t[7];let d;return t[13]===u?d=t[14]:(d=(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:u}),t[13]=u,t[14]=d),d}function Tt(e){let t=(0,Z.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,$.jsx)(v,{className:`h-3 w-3 mr-1`}),t[0]=p):p=t[0];let m;t[1]!==i||t[2]!==u?(m=(0,$.jsxs)(c,{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,$.jsx)(wt,{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,$.jsx)(Y,{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 Et(e){let t=(0,Z.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,$.jsx)(Tt,{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 Dt(e){let t=(0,Z.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,$.jsx)(Fe,{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,$.jsx)(Y,{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 Ot(e){let t=(0,Z.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,$.jsx)(Y,{title:`Server URL`,description:`Paste the MCP endpoint URL from your provider.`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(X,{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,$.jsx)(V,{children:(0,$.jsx)(H,{})}),t[7]=d):d=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsxs)(W,{children:[(0,$.jsx)(ne,{value:`sse`,children:`SSE (Server-Sent Events)`}),(0,$.jsx)(ne,{value:`streamableHttp`,children:`Streamable HTTP`})]}),t[8]=f):f=t[8];let p;t[9]!==n.transport||t[10]!==u?(p=(0,$.jsx)(Y,{title:`Transport`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsxs)(se,{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,$.jsx)(Ct,{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,$.jsx)(Tt,{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,$.jsxs)($.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 kt(e){let t=(0,Z.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,$.jsxs)(G,{className:`grid w-full grid-cols-2`,children:[(0,$.jsx)(N,{value:`local`,children:`Local (stdio)`}),(0,$.jsx)(N,{value:`remote`,children:`Remote (HTTP/SSE)`})]}),t[2]=l):l=t[2];let u;t[3]!==n||t[4]!==r?(u=(0,$.jsx)(J,{value:`local`,children:(0,$.jsx)(St,{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,$.jsx)(J,{value:`remote`,children:(0,$.jsx)(Ot,{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,$.jsxs)(q,{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}function At(e){let t=(0,Z.c)(5),{isEditing:n,busy:r,deleting:i,onDelete:a}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`div`,{}),t[0]=e):e=t[0],e}let o=i?`Removing...`:`Remove`,s;return t[1]!==r||t[2]!==a||t[3]!==o?(s=(0,$.jsx)(c,{variant:`destructive`,onClick:a,disabled:r,children:o}),t[1]=r,t[2]=a,t[3]=o,t[4]=s):s=t[4],s}function jt(e){let t=(0,Z.c)(7),{busy:n,hasChanges:r,saving:i,isEditing:a,onSave:o}=e,s=n||!r,l;t[0]!==a||t[1]!==i?(l=pt(i,a),t[0]=a,t[1]=i,t[2]=l):l=t[2];let u;return t[3]!==o||t[4]!==s||t[5]!==l?(u=(0,$.jsx)(c,{onClick:o,disabled:s,children:l}),t[3]=o,t[4]=s,t[5]=l,t[6]=u):u=t[6],u}function Mt(e){let t=(0,Z.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,$.jsx)(At,{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,$.jsx)(jt,{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,$.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 Nt(e){let t=(0,Z.c)(74),{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,original:h,saving:g,deleting:_,error:v,loading:y,actions:b}=yt(c),x=!!r,S=g||_,C;t[6]!==l||t[7]!==x||t[8]!==d.env||t[9]!==d.header||t[10]!==h.snapshot?(C=ut({isEditing:x,currentSnapshot:Je(l.name.trim(),l.serverType,nt(l,d.env,d.header)),originalSnapshot:h.snapshot,form:l,envEntries:d.env,headerEntries:d.header}),t[6]=l,t[7]=x,t[8]=d.env,t[9]=d.header,t[10]=h.snapshot,t[11]=C):C=t[11];let ee=C;if(y){let e;return t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(bt,{}),t[12]=e):e=t[12],e}let w;t[13]!==l.name||t[14]!==x?(w=ht(x,l.name),t[13]=l.name,t[14]=x,t[15]=w):w=t[15];let T;t[16]===w?T=t[17]:(T=(0,$.jsx)(ve,{...w,sticky:!0,className:`pr-10`}),t[16]=w,t[17]=T);let E;t[18]===u?E=t[19]:(E=e=>u({name:e}),t[18]=u,t[19]=E);let D;t[20]!==l.name||t[21]!==x||t[22]!==E?(D=(0,$.jsx)(xt,{isEditing:x,name:l.name,onNameChange:E}),t[20]=l.name,t[21]=x,t[22]=E,t[23]=D):D=t[23];let O;t[24]===f?O=t[25]:(O=()=>f(`header`),t[24]=f,t[25]=O);let k;t[26]===p?k=t[27]:(k=e=>p(`header`,e),t[26]=p,t[27]=k);let A;t[28]===m?A=t[29]:(A=(e,t)=>m(`header`,e,t),t[28]=m,t[29]=A);let j;t[30]!==l||t[31]!==d.header||t[32]!==u||t[33]!==O||t[34]!==k||t[35]!==A?(j=(0,$.jsx)(kt,{form:l,onFormChange:u,headerEntries:d.header,onHeaderAdd:O,onHeaderRemove:k,onHeaderUpdate:A}),t[30]=l,t[31]=d.header,t[32]=u,t[33]=O,t[34]=k,t[35]=A,t[36]=j):j=t[36];let M;t[37]===u?M=t[38]:(M=e=>u({defer:e}),t[37]=u,t[38]=M);let N;t[39]!==l.defer||t[40]!==M?(N=(0,$.jsx)(Dt,{defer:l.defer,onDeferChange:M}),t[39]=l.defer,t[40]=M,t[41]=N):N=t[41];let P;t[42]===f?P=t[43]:(P=()=>f(`env`),t[42]=f,t[43]=P);let F;t[44]===p?F=t[45]:(F=e=>p(`env`,e),t[44]=p,t[45]=F);let I;t[46]===m?I=t[47]:(I=(e,t)=>m(`env`,e,t),t[46]=m,t[47]=I);let L;t[48]!==l.serverType||t[49]!==d.env||t[50]!==P||t[51]!==F||t[52]!==I?(L=(0,$.jsx)(Et,{serverType:l.serverType,entries:d.env,onAdd:P,onRemove:F,onUpdate:I}),t[48]=l.serverType,t[49]=d.env,t[50]=P,t[51]=F,t[52]=I,t[53]=L):L=t[53];let R;t[54]===v?R=t[55]:(R=v&&(0,$.jsx)(`p`,{className:i.error,children:v}),t[54]=v,t[55]=R);let z;t[56]!==b.handleDelete||t[57]!==b.handleSave||t[58]!==S||t[59]!==_||t[60]!==ee||t[61]!==x||t[62]!==g?(z=(0,$.jsx)(Mt,{isEditing:x,busy:S,saving:g,deleting:_,hasChanges:ee,onSave:b.handleSave,onDelete:b.handleDelete}),t[56]=b.handleDelete,t[57]=b.handleSave,t[58]=S,t[59]=_,t[60]=ee,t[61]=x,t[62]=g,t[63]=z):z=t[63];let B;t[64]!==j||t[65]!==N||t[66]!==L||t[67]!==R||t[68]!==z||t[69]!==D?(B=(0,$.jsxs)(`div`,{children:[D,j,N,L,R,z]}),t[64]=j,t[65]=N,t[66]=L,t[67]=R,t[68]=z,t[69]=D,t[70]=B):B=t[70];let V;return t[71]!==B||t[72]!==T?(V=(0,$.jsx)(ce,{children:(0,$.jsxs)(ae,{children:[T,B]})}),t[71]=B,t[72]=T,t[73]=V):V=t[73],V}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,Z.c)(69),{name:n,config:r,catalog:a,remote:o,authorized:d,oauthBusy:p,refreshing:m,onEdit:h,onRefresh:g,onDelete:_,onSignIn:v,onSignOut:y}=e,[b,x]=(0,Q.useState)(!1),S;if(t[0]!==d||t[1]!==a||t[2]!==r.args||t[3]!==r.command||t[4]!==r.url||t[5]!==b||t[6]!==n||t[7]!==p||t[8]!==_||t[9]!==h||t[10]!==g||t[11]!==v||t[12]!==y||t[13]!==m||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,$.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,$.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,$.jsx)(`div`,{className:M,children:N}),t[29]=N,t[30]=P);let F;t[31]!==h||t[32]!==k||t[33]!==j||t[34]!==P?(F=(0,$.jsxs)(`button`,{type:`button`,onClick:h,className:`min-w-0 text-left`,children:[k,j,P]}),t[31]=h,t[32]=k,t[33]=j,t[34]=P,t[35]=F):F=t[35];let I;t[36]!==d||t[37]!==p||t[38]!==v||t[39]!==y||t[40]!==o?(I=o&&(0,$.jsx)(c,{type:`button`,variant:d?`outline`:`secondary`,size:`sm`,disabled:p,onClick:()=>{d?y():v()},children:p?`Working…`:d?`Sign out`:`Sign in`}),t[36]=d,t[37]=p,t[38]=v,t[39]=y,t[40]=o,t[41]=I):I=t[41];let L=`Refresh ${n} tools`,R=m&&`animate-spin`,z;t[42]===R?z=t[43]:(z=s(`h-4 w-4`,R),t[42]=R,t[43]=z);let B;t[44]===z?B=t[45]:(B=(0,$.jsx)(l,{className:z}),t[44]=z,t[45]=B);let V;t[46]!==g||t[47]!==m||t[48]!==L||t[49]!==B?(V=(0,$.jsx)(C,{asChild:!0,children:(0,$.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:m,onClick:g,"aria-label":L,children:B})}),t[46]=g,t[47]=m,t[48]=L,t[49]=B,t[50]=V):V=t[50];let H;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,$.jsx)(ee,{children:`Refresh tools`}),t[51]=H):H=t[51];let U;t[52]===V?U=t[53]:(U=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[V,H]})}),t[52]=V,t[53]=U);let te=e.length>0&&(0,$.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-expanded":b,"aria-label":b?`Hide tools`:`Show tools`,onClick:()=>x(Rt),children:(0,$.jsx)(f,{className:s(`h-4 w-4 transition-transform`,b&&`rotate-180`)})}),W;t[54]!==I||t[55]!==U||t[56]!==te?(W=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[I,U,te]}),t[54]=I,t[55]=U,t[56]=te,t[57]=W):W=t[57];let ne=`Delete ${n}`,G;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(u,{className:`h-4 w-4`}),t[58]=G):G=t[58];let K;t[59]!==_||t[60]!==ne?(K=(0,$.jsx)(C,{asChild:!0,children:(0,$.jsx)(c,{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:_,"aria-label":ne,children:G})}),t[59]=_,t[60]=ne,t[61]=K):K=t[61];let re;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,$.jsx)(ee,{children:`Remove this MCP server from the project`}),t[62]=re):re=t[62];let q;t[63]===K?q=t[64]:(q=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[K,re]})}),t[63]=K,t[64]=q);let J;t[65]!==F||t[66]!==W||t[67]!==q?(J=(0,$.jsxs)(`div`,{className:`grid min-h-13 grid-cols-[minmax(0,1fr)_auto_1.75rem] items-center gap-3`,children:[F,W,q]}),t[65]=F,t[66]=W,t[67]=q,t[68]=J):J=t[68],S=(0,$.jsxs)(`div`,{className:`group px-3 py-3 hover:bg-muted/30`,children:[J,b&&e.length>0&&(0,$.jsx)(`ul`,{className:s(i.caption,`mt-2 space-y-1 pl-1 text-muted-foreground`),children:e.map(Lt)})]}),t[0]=d,t[1]=a,t[2]=r.args,t[3]=r.command,t[4]=r.url,t[5]=b,t[6]=n,t[7]=p,t[8]=_,t[9]=h,t[10]=g,t[11]=v,t[12]=y,t[13]=m,t[14]=o,t[15]=S}else S=t[15];return S}function Lt(e){return(0,$.jsx)(`li`,{className:`font-mono truncate`,children:e},e)}function Rt(e){return!e}function zt(e){return e.name}var Bt=`https://tarsk.io/skills/mcp/`;function Vt(e){return e.name.toLowerCase().replace(/\s+/g,`-`)}function Ht(e){return typeof e.url==`string`&&e.url.trim().length>0}function Ut(){let e=a(e=>e.selectedProjectId),t=a(e=>e.projects).find(t=>t.projectId===e)?.projectPath,{installedServers:n,catalog:r,loadingConfig:o,loadInstalledServers:u}=L(t),{popularServers:g,loadingPopular:_}=z(),{openChatDockPanel:v}=te(),{setPendingExplorerPath:y,triggerExplorerRefresh:b}=j(),[x,S]=(0,Q.useState)(!1),[M,N]=(0,Q.useState)(null),[V,H]=(0,Q.useState)(null),[U,W]=(0,Q.useState)(null),[ne,G]=(0,Q.useState)(!1),[q,J]=(0,Q.useState)({}),[Y,X]=(0,Q.useState)(null),[ae,se]=(0,Q.useState)(null),ce=(0,Q.useCallback)(async()=>{if(!t){J({});return}let e=n.filter(e=>Ht(e.config));if(e.length===0){J({});return}let r=await Promise.all(e.map(async e=>{try{let n=await D(t,e.name);return[e.name,n.authorized]}catch{return[e.name,!1]}}));J(Object.fromEntries(r))},[t,n]);(0,Q.useEffect)(()=>{ce()},[ce]);let Z=(0,Q.useCallback)(async e=>{if(t){G(!0);try{await K(t,e),await u(),b(),A({title:`MCP server removed`,description:e}),W(null)}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to remove server`,variant:`destructive`})}finally{G(!1)}}},[t,u,b]),Se=(0,Q.useCallback)(async e=>{if(t){X(e);try{let n=await O(t,e);await ce(),await u(),A({title:`Signed in`,description:n.catalog?`${e} · ${F(n.catalog)}`:`Connected to ${e}`})}catch(e){A({title:`Sign in failed`,description:e instanceof Error?e.message:`OAuth authorization failed`,variant:`destructive`})}finally{X(null)}}},[t,ce,u]),Ce=(0,Q.useCallback)(async e=>{if(t){X(e);try{await k(t,e),await ce(),await u(),A({title:`Signed out`,description:e})}catch(e){A({title:`Sign out failed`,description:e instanceof Error?e.message:`Failed to revoke OAuth credentials`,variant:`destructive`})}finally{X(null)}}},[t,ce,u]),we=(0,Q.useCallback)(async e=>{if(t){se(e??`all`);try{let n=await _e(t,e);await u();let r=Object.values(n.catalog),[i]=r;if(i)A({title:`Tools refreshed`,description:`${i.serverName} · ${F(i)}`});else{let e=r.filter(e=>e.state===`ok`).length;A({title:`Tools refreshed`,description:`${e}/${r.length} servers loaded`})}}catch(e){A({title:`Refresh failed`,description:e instanceof Error?e.message:`Could not refresh MCP tools`,variant:`destructive`})}finally{se(null)}}},[t,u]),Te=(0,Q.useCallback)(()=>{y(`.agents/mcp.json`),v(`explorer`)},[y,v]),Ee=(0,Q.useCallback)(async e=>{if(!t)return;let r=Vt(e);if(!n.some(t=>t.name===r||t.name===e.id)){if(e.url!==void 0){if(!e.url.trim()){N({name:r,config:{url:``,transport:e.transport??`sse`,...Object.keys(e.env??{}).length>0?{env:e.env}:{}}}),S(!0);return}try{let n=await re(t,r,{url:e.url,transport:e.transport??`sse`,...Object.keys(e.env??{}).length>0?{env:e.env}:{}});await u(),b(),A({title:`MCP server installed`,description:`${e.name} · ${F(n.catalog)}`})}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}return}if(!e.command){A({title:`Error`,description:`This server is missing install configuration.`,variant:`destructive`});return}try{let n=await re(t,r,{command:e.command,args:e.args??[],...Object.keys(e.env??{}).length>0?{env:e.env}:{}});await u(),b(),A({title:`MCP server installed`,description:`${e.name} · ${F(n.catalog)}`})}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}}},[t,n,u,b]),De=be(e,[o,_]);return e?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(I,{loading:De,children:(0,$.jsxs)(P,{className:`shrink-0`,children:[(0,$.jsx)(ve,{title:`Installed MCP Servers`,description:`MCP servers configured for this project.`,action:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(c,{variant:`ghost`,onClick:Te,children:`Config`}),n.length>=2&&(0,$.jsxs)(c,{variant:`ghost`,className:`gap-1`,disabled:ae!==null,onClick:()=>void we(),children:[(0,$.jsx)(l,{className:s(`h-4 w-4`,ae===`all`&&`animate-spin`)}),`Refresh all`]}),(0,$.jsxs)(he,{children:[(0,$.jsx)(ge,{asChild:!0,children:(0,$.jsxs)(c,{className:`gap-1`,children:[`Add Server`,(0,$.jsx)(f,{className:`h-4 w-4 opacity-70`})]})}),(0,$.jsxs)(pe,{align:`end`,className:`w-56`,children:[(0,$.jsxs)(oe,{className:s(i.body,`gap-2`),onSelect:()=>S(!0),children:[(0,$.jsx)(m,{className:`h-4 w-4 shrink-0`}),`Manual Entry`]}),(0,$.jsxs)(me,{children:[(0,$.jsxs)(le,{className:s(i.body,`gap-2`),children:[(0,$.jsx)(d,{className:`h-4 w-4 shrink-0`}),`Popular`]}),(0,$.jsx)(ie,{className:`w-80 max-h-80 overflow-y-auto`,children:_?(0,$.jsx)(oe,{disabled:!0,className:i.bodyMuted,children:`Loading…`}):g.length===0?(0,$.jsx)(oe,{disabled:!0,className:i.bodyMuted,children:`No available servers`}):[...g].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>{let t=Vt(e),r=n.some(n=>n.name===t||n.name===e.id);return(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(C,{asChild:!0,children:(0,$.jsxs)(oe,{className:s(i.body,`gap-2`,r&&`opacity-50 cursor-not-allowed`),onSelect:()=>{r||Ee(e)},children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),r&&(0,$.jsx)(p,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,$.jsx)(ee,{side:`right`,className:`max-w-64`,children:e.description})]})},e.id)})})]}),(0,$.jsx)(de,{}),(0,$.jsxs)(oe,{className:s(i.body,`gap-2`),onSelect:()=>void E(Bt),children:[(0,$.jsx)(h,{className:`h-4 w-4 shrink-0`}),`Marketplace`]})]})]})]}),sticky:!1}),(0,$.jsx)(R,{className:`pt-6`,children:n.length===0?(0,$.jsx)(xe,{icon:d,title:`Connect your agent to tools, APIs, and data sources`,bordered:!1}):(0,$.jsx)(`div`,{className:`divide-y divide-table-border`,children:n.map(e=>(0,$.jsx)(It,{name:e.name,config:e.config,catalog:r[e.name],remote:Ht(e.config),authorized:q[e.name]===!0,oauthBusy:Y===e.name,refreshing:ae===e.name||ae===`all`,onEdit:()=>H(e.name),onRefresh:()=>void we(e.name),onDelete:()=>W(e.name),onSignIn:()=>void Se(e.name),onSignOut:()=>void Ce(e.name)},e.name))})})]})}),(0,$.jsx)(fe,{open:x,onOpenChange:e=>{S(e),e||N(null)},children:(0,$.jsx)(ue,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,$.jsx)(Nt,{projectPath:t,initialName:M?.name,initialConfig:M?.config,onBack:()=>{S(!1),N(null),u(),b()}})})}),(0,$.jsx)(fe,{open:V!==null,onOpenChange:e=>{e||H(null)},children:(0,$.jsx)(ue,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,$.jsx)(Nt,{projectPath:t,serverName:V??void 0,onBack:()=>{H(null),u(),b()}})})}),(0,$.jsx)(ye,{open:U!==null,onOpenChange:e=>!e&&W(null),title:`Delete MCP Server`,description:`Are you sure you want to delete the server "${U}"? This action cannot be undone.`,onConfirm:()=>{U&&Z(U)},confirming:ne})]}):(0,$.jsx)(B,{children:`Select a project to manage MCP servers.`})}export{Ut as SettingsMCPServersView,Ut as default};
|
|
@@ -1 +0,0 @@
|
|
|
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{Dt as i}from"./dist-CTLFS4dn.js";import{$ as a,n as o}from"./store-BSzKIu5G.js";import{a as s,r as c,t as l}from"./button-kWtLAMpB.js";import{r as u}from"./tooltip-Db8UeYxm.js";import{B as d,L as f,R as p,U as m,V as h,jt as g}from"./api-DX1ny6q-.js";import{t as _}from"./suspense-resource-BFrb_XJX.js";import{t as v}from"./use-suspense-resource-Dakt9lfT.js";import{At as y,Ct as b,Dt as ee,Et as x,Vn as S,Xn as C,Zn as w,ht as T,kn as te,st as E,vt as ne,yt as D,zt as O}from"./index-B3-5kIOf.js";import{a as k,i as A,n as j,r as M,t as N}from"./table-A3cgauiZ.js";import{n as P,t as F}from"./toggle-group-Q36wRGKA.js";import{n as I,t as re}from"./commit-method-fields-BtEHb0_G.js";import{t as L}from"./async-error-boundary-BX1G17o9.js";import{t as ie}from"./sorting-DqwxPMRN.js";import{a as ae,o as R}from"./settings-list-DiiYzOxn.js";import{t as oe}from"./use-deferred-search-Dgxosq55.js";import{n as se,r as z,t as B}from"./model-list-controls-I67L2x3H.js";var V=e(n(),1),H=t();function U(e){return`settings-models:coding:${e}`}function W(e){return`settings-models:image:${e}`}async function G(){let e=(await g()).filter(e=>e.apiKey),t=await m(`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 ce(e){let t=e.filter(e=>e.name.toLowerCase()===`openrouter`),n=await m(`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 K=r();function q(e){let t=(0,H.c)(8),{label:n,large:r}=e,a=r===void 0?!1:r,o=a?`md`:`sm`,s=a?`h-8 w-8`:void 0,l;t[0]!==o||t[1]!==s?(l=(0,K.jsx)(S,{size:o,className:s}),t[0]=o,t[1]=s,t[2]=l):l=t[2];let u;t[3]===n?u=t[4]:(u=n?(0,K.jsx)(`p`,{className:c(i.bodyMuted,`mt-2`),children:n}):null,t[3]=n,t[4]=u);let d;return t[5]!==l||t[6]!==u?(d=(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center py-12`,children:(0,K.jsxs)(`div`,{className:`text-center`,children:[l,u]})}),t[5]=l,t[6]=u,t[7]=d):d=t[7],d}var J=`table-fixed`,le=`h-9`,ue=c(i.body,`py-1.5`),de=`w-10 py-1.5`,fe=`w-24 py-1.5 text-right`,pe=c(i.body,`w-20 py-1.5 text-right text-muted-foreground tabular-nums`),me=c(i.body,`w-48 py-1.5 text-right text-muted-foreground whitespace-nowrap tabular-nums`),he=`h-9 w-24 bg-transparent py-2 text-right`,ge=`h-9 w-20 bg-transparent py-2 text-right`,_e=`h-9 w-48 bg-transparent py-2 text-right`;function Y(e){return!e||(e.prompt??0)===0&&(e.completion??0)===0?``:`$${s(e.prompt??0)} in | $${s(e.completion??0)} out`}function ve(e){return e==null||!Number.isFinite(e)||e<=0?``:e>=100?Math.round(e).toLocaleString():e.toFixed(1)}function X(e){let t=(0,H.c)(9),{showIntelligence:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(`w-full caption-bottom`,J,i.body),t[0]=r):r=t[0];let a,o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,K.jsx)(A,{className:`h-9 w-10 bg-transparent py-2`}),o=(0,K.jsx)(A,{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,K.jsx)(A,{className:he,children:`Intelligence`}):null,t[3]=n,t[4]=s);let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,K.jsx)(A,{className:ge,children:`TPS`}),u=(0,K.jsx)(A,{className:_e,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,K.jsx)(`table`,{className:r,children:(0,K.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,K.jsxs)(`tr`,{children:[a,o,s,l,u]})})}),t[7]=s,t[8]=d),d}function Z(e){let t=(0,H.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,K.jsxs)(k,{className:le,children:[(0,K.jsx)(M,{className:de,children:(0,K.jsx)(E,{id:t,value:n,onChange:()=>l(e.id),ariaLabel:`${s(e)} ${n?`enabled`:`disabled`}`})}),(0,K.jsx)(M,{className:ue,children:(0,K.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,K.jsx)(M,{className:fe,children:(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(z,{codingIndex:e.coding_index,modelName:s(e)})})}):null,(0,K.jsx)(M,{className:pe,children:ve(e.avgTPS)}),(0,K.jsx)(M,{className:me,children:Y(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,K.jsx)(N,{className:J,children:(0,K.jsx)(j,{children:u})}),t[13]=u,t[14]=d),d}function Q(e){let t=(0,H.c)(25),{providerName:n,providerSlug:r,action:a,tableHeader:o,children:s}=e,l;t[0]!==n||t[1]!==r?(l=(0,K.jsx)(T,{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,K.jsx)(`h2`,{className:u,children:n}),t[4]=n,t[5]=d);let f;t[6]!==l||t[7]!==d?(f=(0,K.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,K.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,K.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,K.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,K.jsx)(`div`,{className:_,children:s}),t[18]=s,t[19]=_,t[20]=v):v=t[20];let b;return t[21]!==v||t[22]!==m||t[23]!==h?(b=(0,K.jsxs)(y,{className:`shrink-0`,children:[m,h,v]}),t[21]=v,t[22]=m,t[23]=h,t[24]=b):b=t[24],b}function ye({providers:e,globalSearchQuery:t,modelSortBy:n,filterAndSortModels:r,getModelDisplayName:i,onSaveStatus:s}){let c=o(),l=v(W(0),()=>ce(e)),[p]=(0,V.useState)(l.allImageModels),[m,h]=(0,V.useState)(l.enabledImageModelIds);async function g(e,t){try{m[e]?.has(t)?(await f(e,t),h(n=>{let r=new Set(n[e]??[]);return r.delete(t),{...n,[e]:r}})):(await d(e,t),h(n=>({...n,[e]:new Set([...n[e]||[],t])}))),c({type:a.ConfigUpdated}),s(`Model preferences saved successfully`)}catch(e){s(e instanceof Error?e.message:`Failed to save model changes`)}}async function _(e,t){let n=p[e],r=m[e];if(n)for(let i of n)r?.has(i.id)!==t&&await g(e,i.id)}return(0,K.jsx)(K.Fragment,{children:e.filter(e=>e.name.toLowerCase()===`openrouter`).map(e=>{let a=p[e.slug]||[],o=m[e.slug]||new Set,s=r(a,o,n);return s.length===0&&t?null:(0,K.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:s.length>0?(0,K.jsx)(B,{id:`select-all-image-${e.slug}`,checked:s.every(e=>o.has(e.id)),onChange:t=>void _(e.slug,t)}):null,tableHeader:s.length>0?(0,K.jsx)(X,{showIntelligence:!1}):void 0,children:s.length===0?(0,K.jsx)(R,{message:t?`No models matching your search.`:`No image models available for this provider.`}):(0,K.jsx)(u,{children:(0,K.jsx)(Z,{models:s,enabledIds:o,checkboxIdPrefix:`image-`,showIntelligence:!1,getModelDisplayName:i,onToggleModel:t=>void g(e.slug,t)})})},e.slug)})})}function be({loadVersion:e}){let t=o(),n=v(U(e),()=>G()),r=n.providers,[s]=(0,V.useState)(n.allModels),[l,d]=(0,V.useState)(n.enabledModelIds),[f,m]=(0,V.useState)(`coding`),{query:g,setQuery:_,deferredQuery:S}=oe(),[T,E]=(0,V.useState)(`alphabetical`),[k,A]=(0,V.useState)(``),j=e=>te(e.id),M=async(e,n)=>{try{l[e]?.has(n)?(await p(e,n),d(t=>{let r=new Set(t[e]??[]);return r.delete(n),{...t,[e]:r}})):(await h(e,n),d(t=>({...t,[e]:new Set([...t[e]||[],n])}))),O(),t({type:a.ConfigUpdated}),A(`Model preferences saved successfully`),setTimeout(()=>A(``),3e3)}catch(e){A(e instanceof Error?e.message:`Failed to save model changes`)}},N=async(e,t)=>{let n=s[e],r=l[e];if(n)for(let i of n)r?.has(i.id)!==t&&await M(e,i.id)},L=(e,t,n)=>ie({models:e,query:S,sortBy:n,getDisplayName:j,getPriority:e=>+!t.has(e.id)});if(r.length===0)return(0,K.jsx)(x,{title:`No providers configured`,children:`Configure a provider with an API key to view available models.`});let z=r.some(e=>e.name.toLowerCase()===`openrouter`);return(0,K.jsx)(b,{loading:!1,children:(0,K.jsxs)(C,{value:f,className:`flex flex-col gap-2.5`,children:[(0,K.jsxs)(y,{className:`shrink-0`,children:[(0,K.jsx)(D,{title:`Models`,description:`View and manage available models from your configured providers.`,action:(0,K.jsx)(ae,{placeholder:`Search`,value:g,onChange:_,className:`mb-0 w-64`}),sticky:!1}),(0,K.jsx)(ee,{className:`max-w-none pt-6`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[z?(0,K.jsxs)(F,{type:`single`,value:f,onValueChange:e=>{(e===`coding`||e===`image`)&&(m(e),_(``))},"aria-label":`Model type`,className:c(re,`shrink-0`),children:[(0,K.jsx)(P,{value:`coding`,"aria-label":`Coding`,className:c(i.body,I),children:`Coding`}),(0,K.jsx)(P,{value:`image`,"aria-label":`Image`,className:c(i.body,I),children:`Image`})]}):null,k?(0,K.jsx)(ne,{variant:k.includes(`error`)||k.includes(`Failed`)?`error`:`success`,className:`mb-0 shrink-0`,children:k}):null,(0,K.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,K.jsx)(se,{sortBy:T,showCodingIndex:f===`coding`,showIntelligenceByPrice:f===`coding`,onSortByChange:E})})]})})]}),(0,K.jsx)(w,{value:`coding`,className:`mt-0 flex flex-col gap-2.5`,children:r.map(e=>{let t=s[e.slug]||[],n=l[e.slug]||new Set,r=L(t,n,T);return r.length===0&&g?null:(0,K.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:r.length>0?(0,K.jsx)(B,{id:`select-all-${e.slug}`,checked:r.every(e=>n.has(e.id)),onChange:t=>void N(e.slug,t)}):null,tableHeader:r.length>0?(0,K.jsx)(X,{showIntelligence:T===`coding-index`||T===`intelligence-by-price`}):void 0,children:r.length===0?(0,K.jsx)(R,{message:g?`No models matching your search.`:`No models available for this provider.`}):(0,K.jsx)(u,{children:(0,K.jsx)(Z,{models:r,enabledIds:n,checkboxIdPrefix:``,showIntelligence:T===`coding-index`||T===`intelligence-by-price`,getModelDisplayName:j,onToggleModel:t=>void M(e.slug,t)})})},e.slug)})}),(0,K.jsx)(w,{value:`image`,className:`mt-0 flex flex-col gap-2.5`,children:f===`image`?(0,K.jsx)(V.Suspense,{fallback:(0,K.jsx)(q,{}),children:(0,K.jsx)(ye,{providers:r,globalSearchQuery:g,modelSortBy:T,filterAndSortModels:L,getModelDisplayName:j,onSaveStatus:e=>{A(e),e.includes(`Failed`)||setTimeout(()=>A(``),3e3)}})}):null})]})})}function $(){let e=(0,H.c)(8),[t,n]=(0,V.useState)(0),r;e[0]===t?r=e[1]:(r=function(){_(U(t)),n(Se)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,K.jsx)(q,{label:`Loading models...`,large:!0}),e[2]=a):a=e[2];let o;e[3]===t?o=e[4]:(o=(0,K.jsx)(V.Suspense,{fallback:a,children:(0,K.jsx)(be,{loadVersion:t},t)}),e[3]=t,e[4]=o);let s;return e[5]!==i||e[6]!==o?(s=(0,K.jsx)(`div`,{className:`h-full min-h-0`,children:(0,K.jsx)(L,{fallbackTitle:`Failed to load models`,onRetry:i,renderFallback:xe,children:o})}),e[5]=i,e[6]=o,e[7]=s):s=e[7],s}function xe(e,t){return(0,K.jsx)(x,{title:`Failed to load models`,action:(0,K.jsx)(l,{variant:`outline`,onClick:t,children:`Retry`}),children:e.message})}function Se(e){return e+1}export{$ as SettingsModelsView,$ as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
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{Dt as i,F as a}from"./dist-CTLFS4dn.js";import{r as o}from"./store-BSzKIu5G.js";import{m as s,r as c,t as l}from"./button-kWtLAMpB.js";import{Mt as u,Nn as d,Ot as f,Yt as p,fn as m,hn as h,ot as g,rt as _,st as v,x as y}from"./dist-c_QADQ5u.js";import{i as b,n as x,r as S,t as C}from"./tooltip-Db8UeYxm.js";import{$n as w,Ii as T,Qn as E,Qt as D,T as O,Tn as k,ar as A,di as j,er as M,ii as N,ir as P,lr as F,nr as I,or as L,ri as R,sr as z,ur as B,vi as V,xi as H,zi as ee}from"./api-DX1ny6q-.js";import{t as U}from"./use-toast-xpb5jNtN.js";import{a as W,c as te,i as G,n as ne,o as re,r as ie,s as ae,t as oe}from"./alert-dialog-BxMfaLuO.js";import{n as K}from"./async-loading-fallback-V0EaQ_Kn.js";import{An as se,At as ce,Ct as le,Dt as ue,Et as de,Ft as fe,It as pe,Jn as me,Kn as he,Mt as ge,Nt as _e,_r as ve,_t as ye,a as be,dr as xe,fr as q,gr as Se,gt as Ce,hr as J,ir as we,jt as Te,kt as Ee,mr as Y,or as De,pr as X,rr as Oe,tr as ke,ur as Ae,vr as je,vt as Me,yt as Ne}from"./index-B3-5kIOf.js";import{t as Pe}from"./delete-confirm-dialog-Dl76vaxb.js";import{t as Fe}from"./use-settings-page-loading-BTySlInF.js";import{a as Ie,i as Le,r as Re}from"./settings-list-DiiYzOxn.js";import{t as ze}from"./use-deferred-search-Dgxosq55.js";import{t as Be}from"./use-installed-ai-files-C8nNWGC7.js";import{i as Ve,n as He,r as Ue,t as We}from"./slug-utils-CQ8PMWUL.js";var Z=t(),Q=e(n(),1),$=r();function Ge({threadId:e,onSkillCreated:t}){let[n,r]=(0,Q.useState)(``),[a,o]=(0,Q.useState)(``),[s,l]=(0,Q.useState)(!1),u=Ue(n),d=He(u),f=async()=>{if(!(!d||!a.trim()||!e)){l(!0);try{let n=await O(e,u,a.trim());U({title:`Skill created`,description:`Skill '${u}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){U({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{l(!1)}}};return e?(0,$.jsx)(Ee,{children:(0,$.jsxs)(Ce,{children:[(0,$.jsx)(Ne,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(ye,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,$.jsx)(q,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,$.jsxs)(`p`,{className:c(i.caption,`mt-2`),children:[`Folder name: `,(0,$.jsx)(`span`,{className:`font-mono`,children:u||`...`})]}):null]}),(0,$.jsx)(ye,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(me,{id:`skillDescription`,value:a,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:s})}),(0,$.jsx)(Ve,{onContinue:()=>void f(),disabled:!d||!a.trim(),creating:s})]})]})}):(0,$.jsx)(de,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}function Ke(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 qe(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function Je(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function Ye(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function Xe({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:a}){let[o,s]=(0,Q.useState)([]),[u,d]=(0,Q.useState)(null),[f,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(!1),C=Ye(n,r),T=!!C;(0,Q.useEffect)(()=>{if(!e||!n)return;let t=n,i=Ye(t,r),a=!1;async function o(){g(!0),b(null),s([]),d(null),m(``);try{if(i){let e=await M(i,t.id);if(a)return;s(e.files),d(Je(e.files))}else{if(a)return;s([`SKILL.md`]),d(`SKILL.md`),m(Ke(t))}}catch(e){if(a)return;b(e instanceof Error?e.message:`Failed to load skill files`)}finally{a||g(!1)}}return o(),()=>{a=!0}},[e,n,r]),(0,Q.useEffect)(()=>{if(!e||!n||!u||!T||!C)return;let t=n,r=u,i=!1;async function a(){v(!0),b(null);try{let e=await w(C,t.id,r);if(i)return;m(e.content)}catch(e){if(i)return;b(e instanceof Error?e.message:`Failed to load file`),m(``)}finally{i||v(!1)}}return a(),()=>{i=!0}},[e,n,u,T,C]);let E=(0,Q.useCallback)(async()=>{if(!n)return;let e=C?{...n,sourceId:C}:n;S(!0);try{await a(e),t(!1)}finally{S(!1)}},[n,C,a,t]),D=h||T&&_,O=u?qe(u):!1,k=(0,Q.useMemo)(()=>o.map(e=>(0,$.jsxs)(he,{selected:e===u,onClick:()=>d(e),className:`gap-2 cursor-pointer`,children:[(0,$.jsx)(p,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:c(i.caption,`truncate`),children:e})]},e)),[o,u]);return(0,$.jsx)(X,{open:e,onOpenChange:t,children:(0,$.jsxs)(Y,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,$.jsxs)(ve,{className:`border-b border-border px-6 py-4`,children:[(0,$.jsx)(je,{children:n?.name??`Review skill`}),n?.description?(0,$.jsx)(J,{children:n.description}):null]}),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row`,children:[(0,$.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,$.jsx)(`div`,{className:c(i.labelMuted,`px-3 py-2`),children:`Files`}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:h?(0,$.jsx)(K,{className:`py-8`,label:`Loading files...`}):o.length===0?(0,$.jsx)(`p`,{className:c(i.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):k})]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:y?(0,$.jsx)(`p`,{className:c(i.body,`text-destructive`),children:y}):D?(0,$.jsx)(K,{className:`py-12`,label:`Loading preview...`}):O?(0,$.jsx)(se,{content:f,enableMermaid:!1}):(0,$.jsx)(`pre`,{className:c(i.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:f})})]}),(0,$.jsxs)(Se,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,$.jsx)(l,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,$.jsx)(l,{type:`button`,onClick:()=>void E(),disabled:x||!n,children:x?`Installing...`:`Install`})]})]})})}var Ze=new Map;function Qe(e){let t=Ze.get(e);if(t)return t;let n=P(e).finally(()=>{Ze.delete(e)});return Ze.set(e,n),n}function $e(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function et(){let e=(0,Z.c)(18),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Q.useState)(t),[i,a]=(0,Q.useState)(V),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[1]=o):o=e[1];let[s,c]=(0,Q.useState)(o),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=async()=>{try{r(await A())}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=j();if(e.length>0)try{await L(e),R()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,Q.useEffect)(h,g);let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{a(e),T(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(nt)),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(tt)),N(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)),N(e),a(t=>t===e?(T(`default`),`default`):t)},e[8]=C):C=e[8];let w=C,E,D;e[9]===i?(E=e[10],D=e[11]):(D=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=H(i);e?.skills?(c($e(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),Qe(i).then(e=>{if(t)return;let n=$e(i,e);c(n),ee(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),U({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},E=[i],e[9]=i,e[10]=E,e[11]=D),(0,Q.useEffect)(D,E);let O;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(O={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]=O):O=e[17],O}function tt(e,t){return e.title.localeCompare(t.title)}function nt(e,t){return e.title.localeCompare(t.title)}function rt({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:a,onSourceDeleted:o}){let[s,u]=(0,Q.useState)(``),[d,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(!1),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(!1),S=n!=null;function C(){u(``),p(``),h(null),_(!1),y(!1),x(!1)}function w(e){e||C(),t(e)}(0,Q.useEffect)(()=>{if(e){if(n){u(n.title),p(n.url),h(null);return}u(``),p(``),h(null)}},[e,n]);async function T(){let e=s.trim(),t=d.trim();if(!e||!t){h(`Title and URL are required.`);return}_(!0),h(null);try{if(S&&n){let r=await F(n.id,e,t);a?.(r.source)}else r((await B(e,t)).source);w(!1)}catch(e){h(e instanceof Error?e.message:`Failed to verify skill source`)}finally{_(!1)}}async function D(){if(n){y(!0),h(null);try{await E(n.id),o?.(n.id),x(!1),w(!1)}catch(e){h(e instanceof Error?e.message:`Failed to delete skill source`),x(!1)}finally{y(!1)}}}return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(X,{open:e,onOpenChange:w,children:(0,$.jsxs)(Y,{className:`sm:max-w-lg`,children:[(0,$.jsxs)(ve,{children:[(0,$.jsx)(je,{children:S?`Edit Skill Source`:`Add Skill Source`}),(0,$.jsx)(J,{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,$.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[(0,$.jsx)(xe,{htmlFor:`skill-source-title`,children:`Title`}),(0,$.jsx)(q,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>u(e.target.value),disabled:g||v,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[(0,$.jsx)(xe,{htmlFor:`skill-source-url`,children:`URL`}),(0,$.jsx)(q,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:d,onChange:e=>p(e.target.value),disabled:g||v})]}),m?(0,$.jsx)(`p`,{className:c(i.caption,`text-destructive`),children:m}):null]}),(0,$.jsxs)(Se,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[S?(0,$.jsx)(l,{type:`button`,variant:`destructive`,onClick:()=>x(!0),disabled:g||v,children:`Delete`}):(0,$.jsx)(`div`,{className:`hidden sm:block`}),(0,$.jsxs)(`div`,{className:`flex w-full flex-col-reverse gap-2 sm:w-auto sm:flex-row`,children:[(0,$.jsx)(l,{variant:`outline`,onClick:()=>w(!1),disabled:g||v,children:`Cancel`}),(0,$.jsx)(l,{onClick:()=>void T(),disabled:g||v||!s.trim()||!d.trim(),children:g?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):S?`Save Changes`:`Add Source`})]})]})]})}),(0,$.jsx)(oe,{open:b,onOpenChange:x,children:(0,$.jsxs)(G,{children:[(0,$.jsxs)(ae,{children:[(0,$.jsx)(te,{children:`Delete Skill Source`}),(0,$.jsxs)(W,{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,$.jsxs)(re,{children:[(0,$.jsx)(ie,{disabled:v,children:`Cancel`}),(0,$.jsx)(ne,{onClick:()=>void D(),disabled:v,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:v?`Deleting...`:`Delete`})]})]})})]})}var it=`https://tarsk.io/skills/list/`;function at(e){let t=(0,Z.c)(20),{onSelectMode:n,manualDisabled:r}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(Ae,{asChild:!0,children:(0,$.jsxs)(l,{className:`gap-1`,children:[`Add Skill`,(0,$.jsx)(d,{className:`h-4 w-4 opacity-70`})]})}),t[0]=a):a=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(i.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 f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(v,{className:`h-4 w-4 shrink-0`}),t[4]=f):f=t[4];let p;t[5]!==r||t[6]!==s?(p=(0,$.jsxs)(we,{className:o,disabled:r,onSelect:s,children:[f,`Manually Enter`]}),t[5]=r,t[6]=s,t[7]=p):p=t[7];let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=c(i.body,`gap-2`),t[8]=h):h=t[8];let g;t[9]===n?g=t[10]:(g=()=>n(`url`),t[9]=n,t[10]=g);let _;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(u,{className:`h-4 w-4 shrink-0`}),t[11]=_):_=t[11];let y;t[12]===g?y=t[13]:(y=(0,$.jsxs)(we,{className:h,onSelect:g,children:[_,`Via URL`]}),t[12]=g,t[13]=y);let b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(De,{}),t[14]=b):b=t[14];let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=c(i.body,`gap-2`),t[15]=x):x=t[15];let S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsxs)(we,{className:x,onSelect:ot,children:[(0,$.jsx)(m,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=S):S=t[16];let C;return t[17]!==p||t[18]!==y?(C=(0,$.jsxs)(ke,{children:[a,(0,$.jsxs)(Oe,{align:`end`,className:`w-44`,children:[p,y,b,S]})]}),t[17]=p,t[18]=y,t[19]=C):C=t[19],C}function ot(){D(it)}function st(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 ct(e){let t=(0,Z.c)(40),{open:n,onOpenChange:r,onSubmit:a}=e,[o,s]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(null),f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f=function(){s(``),d(null)},t[0]=f):f=t[0];let p=f,m;t[1]===r?m=t[2]:(m=function(e){e||p(),r(e)},t[1]=r,t[2]=m);let h=m,g,_;t[3]===n?(g=t[4],_=t[5]):(g=()=>{n&&p()},_=[n],t[3]=n,t[4]=g,t[5]=_),(0,Q.useEffect)(g,_);let v;t[6]!==h||t[7]!==a||t[8]!==o?(v=function(){let e=st(o);if(!e){d(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}a(e),h(!1)},t[6]=h,t[7]=a,t[8]=o,t[9]=v):v=t[9];let y=v,b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsxs)(ve,{children:[(0,$.jsx)(je,{children:`Add Skill via URL`}),(0,$.jsx)(J,{children:`Paste the URL of a plugin archive. Its skills and MCP servers are installed into this project.`})]}),t[10]=b):b=t[10];let x;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(xe,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=x):x=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]===y?C=t[14]:(C=e=>{e.key===`Enter`&&(e.preventDefault(),y())},t[13]=y,t[14]=C);let w;t[15]!==C||t[16]!==o?(w=(0,$.jsx)(q,{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]===u?T=t[19]:(T=u?(0,$.jsx)(`p`,{className:c(i.caption,`text-destructive`),children:u}):null,t[18]=u,t[19]=T);let E;t[20]!==w||t[21]!==T?(E=(0,$.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[x,w,T]})}),t[20]=w,t[21]=T,t[22]=E):E=t[22];let D;t[23]===h?D=t[24]:(D=(0,$.jsx)(l,{variant:`outline`,onClick:()=>h(!1),children:`Cancel`}),t[23]=h,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]!==y||t[28]!==k?(A=(0,$.jsx)(l,{onClick:y,disabled:k,children:`Continue`}),t[27]=y,t[28]=k,t[29]=A):A=t[29];let j;t[30]!==D||t[31]!==A?(j=(0,$.jsxs)(Se,{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,$.jsxs)(Y,{className:`sm:max-w-lg`,children:[b,E,j]}),t[33]=E,t[34]=j,t[35]=M):M=t[35];let N;return t[36]!==h||t[37]!==n||t[38]!==M?(N=(0,$.jsx)(X,{open:n,onOpenChange:h,children:M}),t[36]=h,t[37]=n,t[38]=M,t[39]=N):N=t[39],N}function lt(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(...lt(n.children))}return t}function ut(e){return`.agents/skills/${e}/SKILL.md`}function dt(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 ft(e){let t=(0,Z.c)(7),{items:n,onPreview:r}=e,a;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>{let t=We(e.name);return(0,$.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,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:c(i.label,`truncate`),children:t}),(0,$.jsx)(`p`,{className:c(i.caption,`truncate`),children:e.description})]}),(0,$.jsx)(S,{delayDuration:300,children:(0,$.jsxs)(C,{children:[(0,$.jsx)(b,{asChild:!0,children:(0,$.jsx)(l,{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,$.jsx)(h,{className:`h-4 w-4`})})}),(0,$.jsx)(x,{children:`Install skill`})]})})]},e.id)},t[3]=r,t[4]=e),a=n.map(e),t[0]=n,t[1]=r,t[2]=a}else a=t[2];let o;return t[5]===a?o=t[6]:(o=(0,$.jsx)(`div`,{className:`divide-y divide-table-border`,children:a}),t[5]=a,t[6]=o),o}function pt(e){let t=(0,Z.c)(21),{skills:n,threadId:r,onOpenSkill:i,onDelete:a,onAddManual:o,onAddUrl:s}=e,c=!r,l;t[0]!==o||t[1]!==s?(l=e=>{e===`manual`?o():s()},t[0]=o,t[1]=s,t[2]=l):l=t[2];let u;t[3]!==c||t[4]!==l?(u=(0,$.jsx)(Ne,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,$.jsx)(at,{manualDisabled:c,onSelectMode:l}),sticky:!1}),t[3]=c,t[4]=l,t[5]=u):u=t[5];let d;t[6]===r?d=t[7]:(d=!r&&(0,$.jsx)(Me,{children:`Select a thread to add or install skills.`}),t[6]=r,t[7]=d);let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f={icon:y,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=f):f=t[8];let p;t[9]===i?p=t[10]:(p=e=>i(e.path),t[9]=i,t[10]=p);let m;t[11]!==a||t[12]!==n||t[13]!==p?(m=(0,$.jsx)(Re,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:f,getKey:_t,renderContent:gt,onItemClick:p,itemClickLabel:ht,onDelete:a,deleteAriaLabel:mt,deleteTooltip:`Remove this skill from the project`}),t[11]=a,t[12]=n,t[13]=p,t[14]=m):m=t[14];let h;t[15]!==d||t[16]!==m?(h=(0,$.jsxs)(ue,{className:`pt-6`,children:[d,m]}),t[15]=d,t[16]=m,t[17]=h):h=t[17];let g;return t[18]!==u||t[19]!==h?(g=(0,$.jsxs)(ce,{className:`shrink-0`,children:[u,h]}),t[18]=u,t[19]=h,t[20]=g):g=t[20],g}function mt(e){return`Delete ${e.name}`}function ht(e){return`Open ${e.name} in Files`}function gt(e){return(0,$.jsx)(`span`,{className:c(i.body,`truncate text-left`),children:e.name})}function _t(e){return e.id}function vt(e){let t=(0,Z.c)(50),{availableSearch:n,onSearchChange:r,selectedSourceId:i,onSourceChange:a,sources:o,selectedCustomSource:s,availableCatalogLoading:c,isDefaultSource:u,filteredPopular:d,filteredCatalog:f,installedFilePaths:p,onPreviewPopular:m,onPreviewCatalog:h,onAddSource:v}=e,y;if(t[0]!==d||t[1]!==p){let e;t[3]===p?e=t[4]:(e=e=>!p.has(ut(e.id)),t[3]=p,t[4]=e),y=d.filter(e),t[0]=d,t[1]=p,t[2]=y}else y=t[2];let w=y,T;if(t[5]!==f||t[6]!==p){let e;t[8]===p?e=t[9]:(e=e=>!p.has(ut(e.id)),t[8]=p,t[9]=e),T=f.filter(e),t[5]=f,t[6]=p,t[7]=T}else T=t[7];let E=T,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(S,{children:(0,$.jsxs)(C,{children:[(0,$.jsx)(b,{asChild:!0,children:(0,$.jsx)(`span`,{className:`cursor-help`,children:`Available Skills`})}),(0,$.jsx)(x,{children:`Browse and install skills from the catalog.`})]})}),t[10]=D):D=t[10];let O;t[11]!==n||t[12]!==r?(O=(0,$.jsx)(Ie,{placeholder:`Search`,value:n,onChange:r,className:`mb-0 w-64`}),t[11]=n,t[12]=r,t[13]=O):O=t[13];let k;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(fe,{className:`w-40`,"aria-label":`Skill source`,children:(0,$.jsx)(pe,{placeholder:`Default`})}),t[14]=k):k=t[14];let A;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(_e,{value:`default`,children:`Default`}),t[15]=A):A=t[15];let j;t[16]===o?j=t[17]:(j=o.map(yt),t[16]=o,t[17]=j);let M;t[18]===j?M=t[19]:(M=(0,$.jsxs)(ge,{children:[A,j]}),t[18]=j,t[19]=M);let N;t[20]!==a||t[21]!==i||t[22]!==M?(N=(0,$.jsxs)(Te,{value:i,onValueChange:a,children:[k,M]}),t[20]=a,t[21]=i,t[22]=M,t[23]=N):N=t[23];let P=s?`Edit skill source`:`Add skill source`,F;t[24]===s?F=t[25]:(F=s?(0,$.jsx)(g,{className:`h-4 w-4`}):(0,$.jsx)(_,{className:`h-4 w-4`}),t[24]=s,t[25]=F);let I;t[26]!==v||t[27]!==P||t[28]!==F?(I=(0,$.jsx)(b,{asChild:!0,children:(0,$.jsx)(l,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:v,"aria-label":P,children:F})}),t[26]=v,t[27]=P,t[28]=F,t[29]=I):I=t[29];let L=s?`Edit this custom skill source`:`Add a custom skill source`,R;t[30]===L?R=t[31]:(R=(0,$.jsx)(x,{children:L}),t[30]=L,t[31]=R);let z;t[32]!==I||t[33]!==R?(z=(0,$.jsx)(S,{children:(0,$.jsxs)(C,{children:[I,R]})}),t[32]=I,t[33]=R,t[34]=z):z=t[34];let B;t[35]!==z||t[36]!==O||t[37]!==N?(B=(0,$.jsx)(Ne,{title:D,action:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[O,N,z]}),sticky:!1}),t[35]=z,t[36]=O,t[37]=N,t[38]=B):B=t[38];let V;t[39]!==E||t[40]!==c||t[41]!==w||t[42]!==n||t[43]!==u||t[44]!==h||t[45]!==m?(V=(0,$.jsx)(ue,{className:`pt-6`,children:c?(0,$.jsx)(K,{className:`py-12`,label:`Loading skills...`}):u?w.length===0?(0,$.jsx)(Le,{searchQuery:n,emptyLabel:`No available skills found.`}):(0,$.jsx)(ft,{items:w,onPreview:m}):E.length===0?(0,$.jsx)(Le,{searchQuery:n,emptyLabel:`No available skills found.`}):(0,$.jsx)(ft,{items:E,onPreview:h})}),t[39]=E,t[40]=c,t[41]=w,t[42]=n,t[43]=u,t[44]=h,t[45]=m,t[46]=V):V=t[46];let H;return t[47]!==B||t[48]!==V?(H=(0,$.jsxs)(ce,{className:`shrink-0`,children:[B,V]}),t[47]=B,t[48]=V,t[49]=H):H=t[49],H}function yt(e){return(0,$.jsx)(_e,{value:e.id,children:e.title},e.id)}function bt(){let{selectedProjectId:e,selectedThreadId:t,items:n,loading:r,deleteConfirm:i,setDeleteConfirm:c,deleting:l,installedFilePaths:u,setInstalledFilePaths:d,loadItems:f,handleDelete:p,handleOpenInExplorer:m,triggerExplorerRefresh:h}=Be({findItems:lt,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`}),g=o(e=>e.projects),_=(0,Q.useMemo)(()=>g.find(t=>t.projectId===e)??null,[g,e]),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(null),[w,T]=(0,Q.useState)([]),[E,D]=(0,Q.useState)(!0),[O,A]=(0,Q.useState)(null),[j,M]=(0,Q.useState)(!1),{query:N,setQuery:P,deferredQuery:F}=ze(),{sources:L,selectedSourceId:R,setSelectedSourceId:B,addSource:V,updateSource:H,removeSource:ee,catalogSkills:W,isLoadingCatalog:te}=et(),G=R==="default",ne=(0,Q.useMemo)(()=>a(R)?L.find(e=>e.id===R)??null:null,[R,L]);(0,Q.useEffect)(()=>{D(!0),I().then(T).catch(()=>T([])).finally(()=>D(!1))},[]);let re=Fe(e?`${e}:${t??``}`:null,[r,E]),ie=(0,Q.useCallback)(async e=>{let n=`.agents/skills/${e.id}/SKILL.md`;if(!t||u.has(n))return;let r=e.sourceId??(R==="default"?void 0:R);try{if(r)await z(t,r,e.id,`.agents/skills/${e.id}`);else{let r=[`---`,`name: ${e.id}`,`description: ${e.description}`];e.allowedTools&&r.push(`allowed-tools: ${e.allowedTools}`),e.license&&r.push(`license: ${e.license}`),r.push(`---`,``,e.instructions??``),await k(t,n,r.join(`
|
|
3
|
-
`))}d(e=>new Set(e).add(n)),h(),f(),U({title:`Skill installed`,description:e.name})}catch(e){throw U({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}},[t,R,u,h,f]),ae=(0,Q.useMemo)(()=>dt(w,F),[w,F]),oe=(0,Q.useMemo)(()=>dt(W,F),[W,F]),K=!G&&te&&W.length===0;return e?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(le,{loading:re,children:[(0,$.jsx)(pt,{skills:n,threadId:t,onOpenSkill:m,onDelete:c,onAddManual:()=>y(!0),onAddUrl:()=>x(!0)}),(0,$.jsx)(vt,{availableSearch:N,onSearchChange:P,selectedSourceId:R,onSourceChange:B,sources:L,selectedCustomSource:ne,availableCatalogLoading:K,isDefaultSource:G,filteredPopular:ae,filteredCatalog:oe,installedFilePaths:u,onPreviewPopular:e=>A(e),onPreviewCatalog:e=>A({...e,sourceId:e.sourceId??R}),onAddSource:()=>M(!0)})]}),(0,$.jsx)(Xe,{open:O!==null,onOpenChange:e=>{e||A(null)},skill:O,catalogSourceId:G?void 0:R,onInstall:ie}),(0,$.jsx)(rt,{open:j,onOpenChange:M,editingSource:ne,onSourceAdded:e=>{V(e),U({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},onSourceUpdated:e=>{H(e),U({title:`Skill source updated`,description:`${e.title} has been saved.`})},onSourceDeleted:e=>{ee(e),U({title:`Skill source removed`,description:`The custom source has been deleted.`})}}),(0,$.jsx)(X,{open:v,onOpenChange:y,children:(0,$.jsx)(Y,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,$.jsx)(Ge,{threadId:t,onSkillCreated:()=>{y(!1),f(),h()}})})}),(0,$.jsx)(ct,{open:b,onOpenChange:x,onSubmit:e=>C(e)}),(0,$.jsx)(be,{url:S,projectId:e,projectName:_?s(_):null,projects:g,onSelectProject:()=>{},onClose:()=>C(null),onInstalled:({mcpOnly:e})=>{f(),h(),U({title:e?`MCP server installed`:`Plugin installed`,description:e?`Its MCP servers were added to this project.`:`Its skills and MCP servers were added to this project.`})}}),(0,$.jsx)(Pe,{open:i!==null,onOpenChange:e=>!e&&c(null),title:`Delete Skill`,description:`Are you sure you want to delete the skill "${i?.name}"? This action cannot be undone.`,onConfirm:()=>{i&&p(i)},confirming:l})]}):(0,$.jsx)(de,{children:`Select a project to manage skills.`})}export{bt as SettingsSkillsView,bt as default};
|
|
@@ -1 +0,0 @@
|
|
|
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{Dt as i}from"./dist-CTLFS4dn.js";import{r as a,t as o}from"./button-kWtLAMpB.js";import{D as s,Ot as c,bn as l,hn as u}from"./dist-c_QADQ5u.js";import{Dt as d,It as f,Lt as p,M as m,f as h,kn as g,x as _}from"./api-DX1ny6q-.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{Ft as y,It as b,Mt as x,Nt as S,Ot as C,Tt as w,_t as T,bt as E,fr as D,jt as O}from"./index-B3-5kIOf.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,t){return t.find(t=>t.projectId===e.projectId)?.name||e.projectId}function N(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)(o,{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)(o,{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)(u,{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)(T,{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)(T,{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)(T,{title:`Bot Token`,description:`Bot User OAuth Token from your Slack app (starts with xoxb-).`,children:(0,A.jsx)(D,{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)(T,{title:`App-Level Token`,description:`App-Level Token with connections:write for Socket Mode (starts with xapp-).`,children:(0,A.jsx)(D,{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)(o,{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)(o,{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)(T,{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)(w,{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 P(e){let t=(0,k.c)(20),{binding:n,projects:r,onDelete:c}=e,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=a(i.compact),t[0]=l):l=t[0];let u=n.slackChannelName||n.slackChannelId,d;t[1]===u?d=t[2]:(d=(0,A.jsx)(`div`,{className:`font-medium`,children:u}),t[1]=u,t[2]=d);let f;t[3]!==n||t[4]!==r?(f=M(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:l,children:[d,p]}),t[8]=d,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n||t[12]!==c?(h=()=>void c(n),t[11]=n,t[12]=c,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)(o,{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:s,isSavingBinding:l,onDraftChange:u,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]!==s.channelId||t[2]!==p||t[3]!==u||t[4]!==n.channels?(g=(0,A.jsx)(T,{title:`Slack Channel`,description:`Invite the bot to the channel first. Only channels the bot can see are listed.`,children:p?(0,A.jsxs)(O,{value:s.channelId||void 0,onValueChange:e=>u(`channelId`,e),children:[(0,A.jsx)(y,{id:`slack-channel`,"aria-label":`Slack Channel`,children:(0,A.jsx)(b,{placeholder:`Select a channel…`})}),(0,A.jsx)(x,{children:n.channels.map(L)})]}):(0,A.jsx)(D,{id:`slack-channel`,placeholder:`Channel ID (C…)`,value:s.channelId,onChange:e=>u(`channelId`,e.target.value)})}),t[1]=s.channelId,t[2]=p,t[3]=u,t[4]=n.channels,t[5]=g):g=t[5];let _=s.projectId||void 0,v;t[6]===u?v=t[7]:(v=e=>u(`projectId`,e),t[6]=u,t[7]=v);let S=!m,C=m?`Select a project…`:`No projects`,j;t[8]===C?j=t[9]:(j=(0,A.jsx)(y,{id:`slack-project`,"aria-label":`Tarsk Project`,children:(0,A.jsx)(b,{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)(T,{title:`Tarsk Project`,description:`Each Slack channel maps to one Tarsk project.`,children:(0,A.jsxs)(O,{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]!==s.channelId||t[23]!==s.projectId||t[24]!==l?(z=l||!s.channelId.trim()||!s.projectId,t[22]=s.channelId,t[23]=s.projectId,t[24]=l,t[25]=z):z=t[25];let B;t[26]===l?B=t[27]:(B=l?(0,A.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,t[26]=l,t[27]=B);let V;t[28]!==R||t[29]!==z||t[30]!==B?(V=(0,A.jsx)(T,{title:`Bind`,description:`Create a channel ↔ project binding.`,controlLayout:`row-end`,action:(0,A.jsxs)(o,{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)(w,{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(),d()]);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(),d(),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 g({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 h(),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 _({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)(N,{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 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Dt as r}from"./dist-CTLFS4dn.js";import{r as i}from"./store-BSzKIu5G.js";import{r as a,t as o}from"./button-kWtLAMpB.js";import{Pt as s,k as c}from"./dist-c_QADQ5u.js";import{i as l,n as u,r as d,t as f}from"./tooltip-Db8UeYxm.js";import{N as p,Rt as m,S as h,cr as g,rr as _}from"./api-DX1ny6q-.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{n as y}from"./explorer-tab-context-BxUVwWQQ.js";import{At as b,Ct as ee,Dt as x,Et as S,Ln as te,_t as C,dr as w,fr as T,gt as E,kt as D,mr as O,pr as ne,vt as re,yt as k}from"./index-B3-5kIOf.js";import{t as ie}from"./delete-confirm-dialog-Dl76vaxb.js";import{n as A,t as j}from"./radio-group-Dn_pN-pn.js";import{t as M}from"./use-settings-page-loading-BTySlInF.js";import{a as N,i as P,r as ae}from"./settings-list-DiiYzOxn.js";import{i as F,n as I,r as L}from"./slug-utils-CQ8PMWUL.js";var R=e(t(),1),z=n();function oe({projectId:e,threadId:t,onCommandCreated:n}){let[i,o]=(0,R.useState)(``),[s,c]=(0,R.useState)(``),[l,u]=(0,R.useState)(``),[d,f]=(0,R.useState)(`default`),[p,m]=(0,R.useState)(!1),g=L(i),_=I(g),y=async()=>{if(!(!_||!e)){m(!0);try{await h(g,``,{description:s.trim()||void 0,argumentHint:l.trim()||void 0,mode:d===`plan`?`plan`:void 0},`project`,t??void 0),v({title:`Command created`,description:`Command '/${g}' was created successfully.`}),o(``),c(``),u(``),f(`default`),n?.(g)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{m(!1)}}};return e?(0,z.jsx)(D,{children:(0,z.jsxs)(E,{children:[(0,z.jsx)(k,{title:`Add Slash Command`,description:`Saved as a .md file in ~/.agents/commands.`,sticky:!0,className:`pr-10`}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(C,{title:`Command Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,z.jsx)(T,{id:`commandName`,value:i,onChange:e=>o(e.target.value),placeholder:`e.g. review`,disabled:p}),i?(0,z.jsxs)(`p`,{className:a(r.caption,`mt-2`),children:[`Command: `,(0,z.jsxs)(`span`,{className:`font-mono`,children:[`/`,g||`...`]})]}):null]}),(0,z.jsx)(C,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,z.jsx)(T,{id:`commandDescription`,value:s,onChange:e=>c(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:p})}),(0,z.jsx)(C,{title:`Argument Hint`,description:`Shows after the command name to guide users what to type`,controlLayout:`stack`,className:`pt-6`,children:(0,z.jsx)(T,{id:`argumentHint`,value:l,onChange:e=>u(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:p})}),(0,z.jsx)(C,{title:`Mode`,description:d==="default"?`Standard chat mode`:`Activates plan mode when this command is used`,controlLayout:`stack`,className:`pt-6`,children:(0,z.jsxs)(j,{value:d,onValueChange:e=>f(e),className:`flex gap-4`,disabled:p,children:[(0,z.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,z.jsx)(A,{value:`default`,id:`mode-default`}),(0,z.jsx)(w,{htmlFor:`mode-default`,className:a(r.labelNormal,`cursor-pointer`),children:`Default`})]}),(0,z.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,z.jsx)(A,{value:`plan`,id:`mode-plan`}),(0,z.jsx)(w,{htmlFor:`mode-plan`,className:a(r.labelNormal,`cursor-pointer`),children:`Plan`})]})]})}),(0,z.jsx)(F,{onContinue:()=>void y(),disabled:!_,creating:p})]})]})}):(0,z.jsx)(S,{title:`No project selected`,children:`Please select a project to add a slash command.`})}function B(){let e=i(e=>e.selectedProjectId),t=i(e=>e.selectedThreadId),{openChatDockPanel:n}=te(),{setPendingExplorerPath:C,triggerExplorerRefresh:w,setExplorerClearPath:T}=y(),[E,D]=(0,R.useState)([]),[A,j]=(0,R.useState)(!0),[F,I]=(0,R.useState)(!1),[L,B]=(0,R.useState)(null),[V,H]=(0,R.useState)(!1),[U,W]=(0,R.useState)([]),[G,K]=(0,R.useState)(!0),[q,J]=(0,R.useState)(new Map),[Y,se]=(0,R.useState)(``),X=(0,R.useCallback)(async()=>{if(!t){j(!1),D([]),J(new Map);return}j(!0);try{let e=await m(t);D(e.filter(e=>!e.isBuiltIn)),J(new Map(e.map(e=>[e.name,e.filePath])))}catch{D([]),J(new Map)}finally{j(!1)}},[t]);(0,R.useLayoutEffect)(()=>{t&&j(!0)},[e,t]),(0,R.useEffect)(()=>{X()},[X]),(0,R.useEffect)(()=>{K(!0),_().then(W).catch(()=>W([])).finally(()=>K(!1))},[]);let ce=M(e?`${e}:${t??``}`:null,[A,G]),le=(0,R.useCallback)(async e=>{H(!0);try{if(!t)return;await p(e.filePath,t),T(e.filePath),w(),J(t=>{let n=new Map(t);return n.delete(e.name),n}),v({title:`Command removed`,description:`/${e.name}`}),B(null),await X()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to remove command`,variant:`destructive`})}finally{H(!1)}},[X,t,w,T]),ue=(0,R.useCallback)(e=>{C(e),n(`explorer`)},[C,n]),de=(0,R.useCallback)(e=>{let t=e.metadata?.description?.trim();return t&&t.length>0?t:`No description`},[]),Z=(0,R.useCallback)(async e=>{if(!(!t||q.has(e.name)))try{if(e.gitHubRepo&&e.gitHubFolder){let n=`.agents/commands`;await g(t,e.gitHubRepo,e.gitHubFolder,n);let r=`${n}/${e.name}.md`;J(t=>new Map(t).set(e.name,r))}else{let n=await h(e.name,e.content,{description:e.description,argumentHint:e.argumentHint},`project`,t);J(t=>new Map(t).set(e.name,n.filePath))}w(),X(),v({title:`Command installed`,description:`/${e.name}`})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to install command`,variant:`destructive`})}},[t,q,w,X]),Q=U.filter(e=>!q.has(e.name)),$=Y.trim()?Q.filter(e=>e.name.toLowerCase().includes(Y.toLowerCase())||e.description.toLowerCase().includes(Y.toLowerCase())):Q;return e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(ee,{loading:ce,children:[(0,z.jsxs)(b,{className:`shrink-0`,children:[(0,z.jsx)(k,{title:(0,z.jsx)(d,{children:(0,z.jsxs)(f,{children:[(0,z.jsx)(l,{asChild:!0,children:(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[`Installed Slash Commands`,(0,z.jsx)(s,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`})]})}),(0,z.jsx)(u,{children:`Project slash commands you run with / in chat.`})]})}),action:(0,z.jsx)(o,{onClick:()=>I(!0),disabled:!t,children:`Add Command`}),sticky:!1}),(0,z.jsxs)(x,{className:`pt-6`,children:[!t&&(0,z.jsx)(re,{children:`Select a thread to add or install slash commands.`}),(0,z.jsx)(ae,{showHeader:!1,loading:!1,items:E,emptyState:{icon:c,title:`No slash commands installed`,description:`Add slash commands to create quick actions in chat.`},getKey:e=>e.filePath,columnsClassName:`grid-cols-[minmax(0,1fr)_auto_1.75rem]`,renderContent:e=>(0,z.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,z.jsxs)(`div`,{className:a(r.body,`truncate`),children:[`/`,e.name]}),(0,z.jsx)(`div`,{className:a(r.compact,`truncate text-muted-foreground`),children:de(e)})]}),renderMiddle:e=>e.metadata?.mode?(0,z.jsx)(`span`,{className:a(r.compact,`bg-muted px-1.5 py-0.5 rounded flex-shrink-0`),children:e.metadata.mode}):(0,z.jsx)(`div`,{}),onItemClick:e=>ue(e.filePath),itemClickLabel:e=>`Open /${e.name} in Files`,onDelete:B,deleteAriaLabel:e=>`Delete /${e.name}`,deleteTooltip:`Remove this slash command from the project`})]})]}),(0,z.jsxs)(b,{className:`shrink-0`,children:[(0,z.jsx)(k,{title:(0,z.jsx)(d,{children:(0,z.jsxs)(f,{children:[(0,z.jsx)(l,{asChild:!0,children:(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[`Available Slash Commands`,(0,z.jsx)(s,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`})]})}),(0,z.jsx)(u,{children:`Browse and install slash commands from the catalog.`})]})}),action:(0,z.jsx)(N,{placeholder:`Search`,value:Y,onChange:se,className:`mb-0 w-64`}),sticky:!1}),(0,z.jsx)(x,{className:`pt-6`,children:$.length===0?(0,z.jsx)(P,{searchQuery:Y,emptyLabel:`No available commands found.`}):(0,z.jsx)(`div`,{className:`divide-y divide-table-border`,children:$.map(e=>(0,z.jsxs)(`div`,{className:`group flex min-h-13 items-center justify-between gap-3 px-3 py-3 hover:bg-muted/30`,children:[(0,z.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,z.jsxs)(`div`,{className:a(r.body,`truncate`),children:[`/`,e.name]}),(0,z.jsx)(`div`,{className:a(r.compact,`truncate text-muted-foreground`),children:e.description})]}),(0,z.jsx)(o,{type:`button`,variant:`outline`,size:`sm`,className:`opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,disabled:!t,onClick:()=>void Z(e),children:`Install`})]},e.id))})})]})]}),(0,z.jsx)(ne,{open:F,onOpenChange:I,children:(0,z.jsx)(O,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,z.jsx)(oe,{projectId:e,threadId:t,onCommandCreated:()=>{I(!1),X(),w()}})})}),(0,z.jsx)(ie,{open:L!==null,onOpenChange:e=>!e&&B(null),title:`Delete Slash Command`,description:`Are you sure you want to delete "/${L?.name}"? This action cannot be undone.`,onConfirm:()=>{L&&le(L)},confirming:V})]}):(0,z.jsx)(S,{children:`Select a project to manage slash commands.`})}export{B as SettingsSlashCommandsView,B as default};
|
|
@@ -1 +0,0 @@
|
|
|
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{Dt as i,N as a}from"./dist-CTLFS4dn.js";import{r as o,t as s}from"./button-kWtLAMpB.js";import{Z as c}from"./dist-c_QADQ5u.js";import{dn as l,ut as u}from"./api-DX1ny6q-.js";import{n as d}from"./use-toast-xpb5jNtN.js";import{Ot as f}from"./index-B3-5kIOf.js";import{t as p}from"./delete-confirm-dialog-Dl76vaxb.js";import{a as m,i as h,n as g,r as _,t as v}from"./table-A3cgauiZ.js";import{n as y,t as ee}from"./toggle-group-Q36wRGKA.js";var b=t(),x=e(n(),1),S=a(`app.use-latency-stats.hook`),C={tools:[],models:[]};function w(){let[e,t]=(0,x.useState)([]),[n,r]=(0,x.useState)([]),[i,a]=(0,x.useState)(!0),[o,s]=(0,x.useState)(!1),[c,d]=(0,x.useState)(null),f=(0,x.useCallback)(async function(){try{d(null);let e=await u();t(e.tools??C.tools),r(e.models??C.models)}catch(e){S.error(`Failed to load latency statistics`,e),d(e instanceof Error?e.message:`Failed to load statistics`)}finally{a(!1)}},[]),p=(0,x.useCallback)(async function(){s(!0);try{return d(null),await l(),t(C.tools),r(C.models),!0}catch(e){return S.error(`Failed to reset latency statistics`,e),d(e instanceof Error?e.message:`Failed to reset statistics`),!1}finally{s(!1)}},[]);return(0,x.useEffect)(()=>{f()},[f]),{tools:e,models:n,isLoading:i,isResetting:o,error:c,refresh:f,reset:p}}var T=r(),E=[{value:`tools`,label:`Tools`},{value:`models`,label:`Models`}],D=`inline-flex rounded-full border bg-muted/40 p-1`,O=`rounded-full border-0 px-4 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`,te=`flex items-center gap-2`,ne=`gap-1.5 text-muted-foreground hover:text-foreground`,k=`h-9`,A=`table-fixed`,j=o(i.body,`py-1.5`),M=o(i.body,`w-28 py-1.5 text-right tabular-nums`),N=o(i.body,`w-32 py-1.5 text-right tabular-nums`),P=`h-9 w-28 bg-transparent py-2 text-right`,F=`h-9 w-32 bg-transparent py-2 text-right`;function I(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1e3)return`${Math.round(e)}ms`;let t=e/1e3;return t<10?`${t.toFixed(1)}s`:`${Math.round(t)}s`}function L(e){let t=(0,b.c)(3),{view:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=o(`w-full caption-bottom`,A,i.body),t[0]=r):r=t[0];let a;return t[1]===n?a=t[2]:(a=(0,T.jsx)(`table`,{className:r,children:(0,T.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,T.jsx)(`tr`,{children:n===`tools`?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(h,{className:`h-9 bg-transparent py-2`,children:`Tool`}),(0,T.jsx)(h,{className:P,children:`Calls`}),(0,T.jsx)(h,{className:F,children:`Latency`})]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(h,{className:`h-9 bg-transparent py-2`,children:`Model`}),(0,T.jsx)(h,{className:P,children:`Requests`}),(0,T.jsx)(h,{className:F,children:`Latency`})]})})})}),t[1]=n,t[2]=a),a}function R(){let e=(0,b.c)(38),{tools:t,models:n,isLoading:r,isResetting:a,error:l,reset:u}=w(),{toast:m}=d(),[h,_]=(0,x.useState)(`tools`),[y,S]=(0,x.useState)(!1),C=h===`tools`&&!r&&t.length>0,O=h===`models`&&!r&&n.length>0,k=C||O,j=t.length>0||n.length>0,M;e[0]!==u||e[1]!==m?(M=async function(){if(S(!1),await u()){m({title:`Statistics cleared`,description:`All tool and model latency data has been reset.`});return}m({title:`Error`,description:`Failed to reset statistics. Please try again.`,variant:`destructive`})},e[0]=u,e[1]=m,e[2]=M):M=e[2];let N=M,P;e[3]!==k||e[4]!==h?(P=k?(0,T.jsx)(L,{view:h}):void 0,e[3]=k,e[4]=h,e[5]=P):P=e[5];let F;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(F=e=>{(e===`tools`||e===`models`)&&_(e)},e[6]=F):F=e[6];let I;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(I=E.map(V),e[7]=I):I=e[7];let R;e[8]===h?R=e[9]:(R=(0,T.jsx)(ee,{type:`single`,value:h,onValueChange:F,"aria-label":`Statistics view`,variant:`outline`,className:D,children:I}),e[8]=h,e[9]=R);let H=r||a||!j,U,W;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>S(!0),W=(0,T.jsx)(c,{}),e[10]=U,e[11]=W):(U=e[10],W=e[11]);let G=a?`Resetting...`:`Reset`,K;e[12]!==H||e[13]!==G?(K=(0,T.jsxs)(s,{variant:`outline`,size:`sm`,className:ne,disabled:H,onClick:U,children:[W,G]}),e[12]=H,e[13]=G,e[14]=K):K=e[14];let q;e[15]!==R||e[16]!==K?(q=(0,T.jsxs)(`div`,{className:te,children:[R,K]}),e[15]=R,e[16]=K,e[17]=q):q=e[17];let J;e[18]===l?J=e[19]:(J=l?(0,T.jsx)(`p`,{className:o(i.bodyMuted,`mb-6 text-destructive`),children:l}):null,e[18]=l,e[19]=J);let Y;e[20]!==r||e[21]!==n||e[22]!==t||e[23]!==h?(Y=h===`tools`?r?(0,T.jsx)(`p`,{className:i.bodyMuted,children:`Loading…`}):t.length===0?(0,T.jsx)(`p`,{className:i.bodyMuted,children:`No tool call timings recorded yet. Stats appear after agent tool calls complete.`}):(0,T.jsx)(v,{className:A,children:(0,T.jsx)(g,{children:t.map(B)})}):r?(0,T.jsx)(`p`,{className:i.bodyMuted,children:`Loading…`}):n.length===0?(0,T.jsx)(`p`,{className:i.bodyMuted,children:`No model timings recorded yet. Stats appear after assistant responses complete.`}):(0,T.jsx)(v,{className:A,children:(0,T.jsx)(g,{children:n.map(z)})}),e[20]=r,e[21]=n,e[22]=t,e[23]=h,e[24]=Y):Y=e[24];let X;e[25]!==P||e[26]!==q||e[27]!==J||e[28]!==Y?(X=(0,T.jsxs)(f,{title:`Statistics`,description:`Average latency and request counts for tool calls and model responses.`,tableHeader:P,action:q,children:[J,Y]}),e[25]=P,e[26]=q,e[27]=J,e[28]=Y,e[29]=X):X=e[29];let Z;e[30]===N?Z=e[31]:(Z=()=>void N(),e[30]=N,e[31]=Z);let Q;e[32]!==y||e[33]!==Z?(Q=(0,T.jsx)(p,{open:y,onOpenChange:S,title:`Reset statistics?`,description:`This clears all recorded tool call and model response latency data. This action cannot be undone.`,onConfirm:Z,confirmLabel:`Reset`,confirmingLabel:`Resetting...`}),e[32]=y,e[33]=Z,e[34]=Q):Q=e[34];let $;return e[35]!==X||e[36]!==Q?($=(0,T.jsxs)(T.Fragment,{children:[X,Q]}),e[35]=X,e[36]=Q,e[37]=$):$=e[37],$}function z(e){return(0,T.jsxs)(m,{className:k,children:[(0,T.jsx)(_,{className:j,children:e.modelId}),(0,T.jsx)(_,{className:M,children:e.requestCount.toLocaleString()}),(0,T.jsx)(_,{className:N,children:I(e.averageDurationMs)})]},e.modelId)}function B(e){return(0,T.jsxs)(m,{className:k,children:[(0,T.jsx)(_,{className:j,children:e.toolName}),(0,T.jsx)(_,{className:M,children:e.callCount.toLocaleString()}),(0,T.jsx)(_,{className:N,children:I(e.averageDurationMs)})]},e.toolName)}function V(e){return(0,T.jsx)(y,{value:e.value,"aria-label":e.label,className:O,children:e.label},e.value)}export{R as default};
|
|
@@ -1 +0,0 @@
|
|
|
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{Dt as i,c as a}from"./dist-CTLFS4dn.js";import{W as o,Y as s,r as c}from"./store-BSzKIu5G.js";import{m as l,r as u,t as d}from"./button-kWtLAMpB.js";import{D as f,Hn as p,Ot as m,zn as h}from"./dist-c_QADQ5u.js";import{i as g,n as _,t as v}from"./tooltip-Db8UeYxm.js";import{n as y}from"./use-toast-xpb5jNtN.js";import{n as ee}from"./async-loading-fallback-V0EaQ_Kn.js";import{Bn as te,Dt as ne,Mn as re,P as ie,et as ae,yt as oe}from"./index-B3-5kIOf.js";import{t as se}from"./delete-confirm-dialog-Dl76vaxb.js";import{i as ce,r as b}from"./table-A3cgauiZ.js";import{t as le}from"./settings-list-DiiYzOxn.js";var x=t(),S=e(n(),1),C=r(),ue=36,de=`table-fixed`,fe=`h-9 w-48 bg-transparent py-2`,pe=`h-9 bg-transparent py-2`,me=`h-9 w-32 bg-transparent py-2`,he=`h-9 w-10 bg-transparent py-2`,ge=u(i.bodyMuted,`w-48 truncate py-1.5`),_e=u(i.body,`truncate py-1.5`),ve=u(i.bodyMuted,`w-32 truncate py-1.5`),ye=`w-10 py-1.5`,be={column:`project`,direction:`asc`};function xe(e){let t=(0,x.c)(4),n;if(t[0]!==e){let{style:r,...a}=e,o;t[2]===r?o=t[3]:(o={...r,width:`100%`},t[2]=r,t[3]=o),n=(0,C.jsx)(`table`,{...a,style:o,className:u(`w-full caption-bottom`,de,i.body,a.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function Se(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=u(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function Ce(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=u(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function we(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=u(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function w(e,t){return t?a(t,e):e}function T(e,t,n){switch(t){case`project`:return e.projectName;case`path`:return w(e.path,n);case`branch`:return e.branch}}function Te(e){let t=[];for(let n of e){let e=l(n);for(let r of n.threads)t.push({threadId:r.threadId,projectId:n.projectId,projectName:e,path:r.path,branch:r.currentBranch||r.title})}return t}function Ee(e,t,n,r){return[...e].sort((e,i)=>{let a=T(e,t,r).localeCompare(T(i,t,r),void 0,{sensitivity:`base`});return n===`asc`?a:-a})}function E(e){let t=(0,x.c)(17),{label:n,column:r,sortColumn:i,sortDirection:a,className:o,onSort:s}=e,c=i===r,l=a===`asc`?h:p,d=c?`text-foreground`:`text-muted-foreground`,f;t[0]===d?f=t[1]:(f=u(`inline-flex items-center gap-1 transition-colors hover:text-foreground`,d),t[0]=d,t[1]=f);let m;t[2]!==r||t[3]!==s?(m=()=>s(r),t[2]=r,t[3]=s,t[4]=m):m=t[4];let g=c?a===`asc`?`ascending`:`descending`:`none`,_;t[5]!==l||t[6]!==c?(_=c?(0,C.jsx)(l,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":`true`}):null,t[5]=l,t[6]=c,t[7]=_):_=t[7];let v;t[8]!==n||t[9]!==f||t[10]!==m||t[11]!==g||t[12]!==_?(v=(0,C.jsxs)(`button`,{type:`button`,className:f,onClick:m,"aria-sort":g,children:[n,_]}),t[8]=n,t[9]=f,t[10]=m,t[11]=g,t[12]=_,t[13]=v):v=t[13];let y;return t[14]!==o||t[15]!==v?(y=(0,C.jsx)(ce,{className:o,children:v}),t[14]=o,t[15]=v,t[16]=y):y=t[16],y}function D(){let e=(0,x.c)(55),t=c(Fe),n=c(Pe),r=c(Ne),a=c(Me),o=c(je),l=c(Ae),p=c(ke),h=c(Oe),{handleDeleteThread:T,refreshWorkspaces:D}=te(),{toast:O}=y(),[k,Ie]=(0,S.useState)(null),[A,Le]=(0,S.useState)(be),Re=ie()?`Finder`:`Explorer`,j,M;e[0]===D?(j=e[1],M=e[2]):(j=()=>{D()},M=[D],e[0]=D,e[1]=j,e[2]=M),(0,S.useEffect)(j,M);let N;e[3]!==n||e[4]!==t||e[5]!==A.column||e[6]!==A.direction?(N=Ee(Te(t),A.column,A.direction,n),e[3]=n,e[4]=t,e[5]=A.column,e[6]=A.direction,e[7]=N):N=e[7];let P=N,F;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(F=function(e){Le(t=>t.column===e?{column:e,direction:t.direction===`asc`?`desc`:`asc`}:{column:e,direction:`asc`})},e[8]=F):F=e[8];let ze=F,I;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(I=function(e){let{...t}=e;return(0,C.jsx)(`tr`,{...t,className:u(`group border-0 transition-colors hover:bg-muted/50`,t.className)})},e[9]=I):I=e[9];let Be=I,L;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(L={Table:xe,TableHead:Se,TableBody:Ce,TableRow:Be,Scroller:we},e[10]=L):L=e[10];let Ve=L,R;e[11]!==T||e[12]!==k?(R=function(){if(!k)return;let{projectId:e,threadId:t}=k;Ie(null),T(e,t)},e[11]=T,e[12]=k,e[13]=R):R=e[13];let He=R,z;e[14]===O?z=e[15]:(z=async function(e){try{await ae(e.threadId,`.`)}catch{O({title:`Error`,description:`Failed to open folder in ${Re}.`,variant:`destructive`})}},e[14]=O,e[15]=z);let Ue=z,B;e[16]!==n||e[17]!==l||e[18]!==a||e[19]!==Ue||e[20]!==h||e[21]!==o||e[22]!==p?(B=function(e,t){let r=a.includes(t.threadId),c=s(t.threadId,o,p,h),y=l.includes(t.threadId),ee=!c&&!r&&!y,te=w(t.path,n);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(b,{className:ge,children:t.projectName}),(0,C.jsx)(b,{className:_e,children:(0,C.jsx)(`button`,{type:`button`,className:u(i.body,`block w-full truncate text-left hover:underline`),title:`${t.path}\nOpen in ${Re}`,onClick:()=>void Ue(t),children:te})}),(0,C.jsx)(b,{className:ve,children:t.branch}),(0,C.jsx)(b,{className:ye,children:(0,C.jsx)(`div`,{className:`ml-auto flex h-7 w-7 items-center justify-center`,children:r?(0,C.jsx)(m,{className:`h-4 w-4 animate-spin text-muted-foreground`,"aria-label":`Deleting`}):ee?(0,C.jsxs)(v,{children:[(0,C.jsx)(g,{asChild:!0,children:(0,C.jsxs)(d,{variant:`ghost`,size:`icon-sm`,className:le,onClick:e=>{e.stopPropagation(),Ie(t)},children:[(0,C.jsx)(f,{}),(0,C.jsx)(`span`,{className:`sr-only`,children:`Delete workspace`})]})}),(0,C.jsx)(_,{side:`left`,children:`Delete branch and files from the repo`})]}):null})})]})},e[16]=n,e[17]=l,e[18]=a,e[19]=Ue,e[20]=h,e[21]=o,e[22]=p,e[23]=B):B=e[23];let We=B,V;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(V=u(`w-full caption-bottom`,de,i.body),e[24]=V):V=e[24];let H,U,W;e[25]!==A.column||e[26]!==A.direction?(H=(0,C.jsx)(E,{label:`Project`,column:`project`,sortColumn:A.column,sortDirection:A.direction,className:fe,onSort:ze}),U=(0,C.jsx)(E,{label:`Path`,column:`path`,sortColumn:A.column,sortDirection:A.direction,className:pe,onSort:ze}),W=(0,C.jsx)(E,{label:`Branch`,column:`branch`,sortColumn:A.column,sortDirection:A.direction,className:me,onSort:ze}),e[25]=A.column,e[26]=A.direction,e[27]=H,e[28]=U,e[29]=W):(H=e[27],U=e[28],W=e[29]);let G;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,C.jsx)(ce,{className:he,children:(0,C.jsx)(`span`,{className:`sr-only`,children:`Actions`})}),e[30]=G):G=e[30];let K;e[31]!==H||e[32]!==U||e[33]!==W?(K=(0,C.jsx)(`table`,{className:V,children:(0,C.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,C.jsxs)(`tr`,{children:[H,U,W,G]})})}),e[31]=H,e[32]=U,e[33]=W,e[34]=K):K=e[34];let Ge=K,Ke=P.length>0?Ge:void 0,q;e[35]===Ke?q=e[36]:(q=(0,C.jsx)(oe,{title:`Storage`,description:`Workspaces and branches stored on disk across all projects.`,tableHeader:Ke}),e[35]=Ke,e[36]=q);let J;e[37]!==r||e[38]!==We||e[39]!==P?(J=(0,C.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:r&&P.length===0?(0,C.jsx)(ee,{label:`Loading workspaces...`,size:`lg`}):P.length===0?(0,C.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,C.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,C.jsx)(`h3`,{className:i.emptyStateTitle,children:`No workspaces`}),(0,C.jsx)(`p`,{className:i.bodyMuted,children:`No branches or workspaces found yet.`})]})}):(0,C.jsx)(re,{style:{height:`100%`},data:P,computeItemKey:De,itemContent:We,defaultItemHeight:ue,increaseViewportBy:ue*5,components:Ve})}),e[37]=r,e[38]=We,e[39]=P,e[40]=J):J=e[40];let Y;e[41]!==q||e[42]!==J?(Y=(0,C.jsxs)(ne,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[q,J]}),e[41]=q,e[42]=J,e[43]=Y):Y=e[43];let qe=k!==null,X;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(X=e=>{e||Ie(null)},e[44]=X):X=e[44];let Z;e[45]!==n||e[46]!==k?(Z=k?`Are you sure you want to delete the workspace at "${w(k.path,n)}"? This removes the branch and all its files. This action cannot be undone.`:``,e[45]=n,e[46]=k,e[47]=Z):Z=e[47];let Q;e[48]!==He||e[49]!==qe||e[50]!==Z?(Q=(0,C.jsx)(se,{open:qe,onOpenChange:X,title:`Delete workspace?`,description:Z,onConfirm:He,confirmLabel:`Delete`,confirmingLabel:`Deleting...`}),e[48]=He,e[49]=qe,e[50]=Z,e[51]=Q):Q=e[51];let $;return e[52]!==Y||e[53]!==Q?($=(0,C.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[Y,Q]}),e[52]=Y,e[53]=Q,e[54]=$):$=e[54],$}function De(e,t){return t.threadId}function Oe(e){return e.pendingChatMessage}function ke(e){return o(e.threadStreamingStates)}function Ae(e){return e.completedThreadIds}function je(e){return e.processingThreadIds}function Me(e){return e.deletingThreadIds}function Ne(e){return e.projectsLoading}function Pe(e){return e.cloneRootPath}function Fe(e){return e.projects}export{D as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Dt as r}from"./dist-CTLFS4dn.js";import{r as i,t as a}from"./button-kWtLAMpB.js";import{Pt as o,S as s}from"./dist-c_QADQ5u.js";import{i as c,n as l,r as u,t as d}from"./tooltip-Db8UeYxm.js";import{Tn as f,cr as p,tr as m,w as h}from"./api-DX1ny6q-.js";import{t as g}from"./use-toast-xpb5jNtN.js";import{At as _,Ct as v,Dt as y,Et as b,Jn as x,_t as S,fr as C,gt as w,kt as T,mr as E,pr as D,vt as O,yt as k}from"./index-B3-5kIOf.js";import{t as A}from"./delete-confirm-dialog-Dl76vaxb.js";import{t as j}from"./use-settings-page-loading-BTySlInF.js";import{a as M,i as N,r as P}from"./settings-list-DiiYzOxn.js";import{t as F}from"./use-installed-ai-files-C8nNWGC7.js";import{i as I,n as L,r as R}from"./slug-utils-CQ8PMWUL.js";var z=e(t(),1),B=n();function V({threadId:e,onAgentCreated:t}){let[n,a]=(0,z.useState)(``),[o,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(``),[u,d]=(0,z.useState)(!1),f=R(n),p=L(f),m=async()=>{if(!(!p||!o.trim()||!e)){d(!0);try{let n=await h(e,f,o.trim(),c.trim()||void 0);g({title:`Agent created`,description:`Agent '${f}' was created successfully.`}),a(``),s(``),l(``),t?.(n.path,`AGENTS.md`)}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to create agent`,variant:`destructive`})}finally{d(!1)}}};return e?(0,B.jsx)(T,{children:(0,B.jsxs)(w,{children:[(0,B.jsx)(k,{title:`Add Agent`,description:`Saved as AGENT.md in .agents/agents.`,sticky:!0,className:`pr-10`}),(0,B.jsxs)(`div`,{children:[(0,B.jsxs)(S,{title:`Agent Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,B.jsx)(C,{id:`agentName`,value:n,onChange:e=>a(e.target.value),placeholder:`e.g. Code Reviewer`,disabled:u}),n?(0,B.jsxs)(`p`,{className:i(r.caption,`mt-2`),children:[`Folder name: `,(0,B.jsx)(`span`,{className:`font-mono`,children:f||`...`})]}):null]}),(0,B.jsx)(S,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,B.jsx)(x,{id:`agentDescription`,value:o,onChange:e=>s(e.target.value),placeholder:`Describe the agent's purpose and behavior...`,className:`resize-none min-h-[120px]`,disabled:u})}),(0,B.jsx)(S,{title:`Tools`,description:`Optional space-separated list of tools this agent can use`,controlLayout:`stack`,className:`pt-6`,children:(0,B.jsx)(C,{id:`agentTools`,value:c,onChange:e=>l(e.target.value),placeholder:`e.g. read grep glob`,disabled:u})}),(0,B.jsx)(I,{onContinue:()=>void m(),disabled:!p||!o.trim(),creating:u})]})]})}):(0,B.jsx)(b,{title:`No thread selected`,children:`Please select a thread to add an agent.`})}function H(e){let t=[];for(let n of e)n.path.startsWith(`.agents/agents/`)&&n.type===`folder`&&t.push(n),n.children&&n.children.length>0&&t.push(...H(n.children));return t}function U(){let{selectedProjectId:e,selectedThreadId:t,items:n,loading:h,deleteConfirm:x,setDeleteConfirm:S,deleting:C,installedFilePaths:w,setInstalledFilePaths:T,loadItems:I,handleDelete:L,handleOpenInExplorer:R,triggerExplorerRefresh:U}=F({findItems:H,installedPathSuffix:`/AGENT.md`,explorerPathSuffix:`/AGENT.md`,sortByName:!0,removedToastTitle:`Agent removed`}),[W,G]=(0,z.useState)(!1),[K,q]=(0,z.useState)([]),[J,Y]=(0,z.useState)(!0),[X,Z]=(0,z.useState)(``);(0,z.useEffect)(()=>{Y(!0),m().then(q).catch(()=>q([])).finally(()=>Y(!1))},[]);let Q=j(e?`${e}:${t??``}`:null,[h,J]),ee=(0,z.useCallback)(async e=>{let n=`.agents/agents/${e.id}/AGENT.md`;if(!(!t||w.has(n)))try{if(e.gitHubRepo&&e.gitHubFolder)await p(t,e.gitHubRepo,e.gitHubFolder,`.agents/agents/${e.id}`);else{let r=[`---`,`name: ${e.id}`,`description: ${e.description}`];e.tools&&r.push(`tools: ${e.tools}`),r.push(`---`,``,e.systemPrompt),await f(t,n,r.join(`
|
|
2
|
-
`))}T(e=>new Set(e).add(n)),U(),I(),g({title:`Agent installed`,description:e.name})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to install agent`,variant:`destructive`})}},[t,w,U,I]),$=X.trim()?K.filter(e=>e.name.toLowerCase().includes(X.toLowerCase())||e.description.toLowerCase().includes(X.toLowerCase())):K;return e?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(v,{loading:Q,children:[(0,B.jsxs)(_,{className:`shrink-0`,children:[(0,B.jsx)(k,{title:(0,B.jsx)(u,{children:(0,B.jsxs)(d,{children:[(0,B.jsx)(c,{asChild:!0,children:(0,B.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[`Installed Subagents`,(0,B.jsx)(o,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`})]})}),(0,B.jsx)(l,{children:`Project subagents available for focused tasks.`})]})}),action:(0,B.jsx)(a,{onClick:()=>G(!0),disabled:!t,children:`Add Subagent`}),sticky:!1}),(0,B.jsxs)(y,{className:`pt-6`,children:[!t&&(0,B.jsx)(O,{children:`Select a thread to add or install subagents.`}),(0,B.jsx)(P,{showHeader:!1,loading:!1,items:n,emptyState:{icon:s,title:`No subagents installed`,description:`Add subagents for specialized, focused tasks.`,bordered:!1},getKey:e=>e.id,columnsClassName:`grid-cols-[minmax(0,1fr)_1.75rem]`,renderContent:e=>(0,B.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,B.jsx)(`div`,{className:i(r.body,`truncate`),children:e.name}),(0,B.jsx)(`div`,{className:i(r.compact,`truncate text-muted-foreground`),children:e.path})]}),onItemClick:e=>R(e.path),itemClickLabel:e=>`Open ${e.name} in Files`,onDelete:S,deleteAriaLabel:e=>`Delete ${e.name}`,deleteTooltip:`Remove this subagent from the project`})]})]}),(0,B.jsxs)(_,{className:`shrink-0`,children:[(0,B.jsx)(k,{title:(0,B.jsx)(u,{children:(0,B.jsxs)(d,{children:[(0,B.jsx)(c,{asChild:!0,children:(0,B.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[`Available Subagents`,(0,B.jsx)(o,{"aria-hidden":`true`,className:`h-4 w-4 text-muted-foreground`})]})}),(0,B.jsx)(l,{children:`Browse and install subagents from the catalog.`})]})}),action:(0,B.jsx)(M,{placeholder:`Search`,value:X,onChange:Z,className:`mb-0 w-64`}),sticky:!1}),(0,B.jsx)(y,{className:`pt-6`,children:$.length===0?(0,B.jsx)(N,{searchQuery:X,emptyLabel:`No available subagents found.`}):(0,B.jsx)(`div`,{className:`divide-y divide-table-border`,children:$.map(e=>{let n=`.agents/agents/${e.id}/AGENT.md`,o=w.has(n);return(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:e.name}),(0,B.jsx)(`div`,{className:i(r.compact,`truncate text-muted-foreground`),children:e.description})]}),(0,B.jsx)(a,{type:`button`,variant:`outline`,size:`sm`,className:`opacity-100 transition-opacity can-hover:opacity-0 can-hover:group-hover:opacity-100 focus-visible:opacity-100`,disabled:!t||o,onClick:()=>void ee(e),children:o?`Installed`:`Install`})]},e.id)})})})]})]}),(0,B.jsx)(D,{open:W,onOpenChange:G,children:(0,B.jsx)(E,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,B.jsx)(V,{threadId:t,onAgentCreated:()=>{G(!1),I(),U()}})})}),(0,B.jsx)(A,{open:x!==null,onOpenChange:e=>!e&&S(null),title:`Delete Subagent`,description:`Are you sure you want to delete the subagent "${x?.name}"? This action cannot be undone.`,onConfirm:()=>{x&&L(x)},confirming:C})]}):(0,B.jsx)(b,{children:`Select a project to manage subagents.`})}export{U as SettingsSubagentsView,U as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{Dt as r}from"./dist-CTLFS4dn.js";import{r as i}from"./store-BSzKIu5G.js";import{r as a,t as ee}from"./button-kWtLAMpB.js";import{Ot as o}from"./dist-c_QADQ5u.js";import{i as s,n as c,t as l}from"./tooltip-Db8UeYxm.js";import{Jt as u,Kn as d,Tt as f}from"./api-DX1ny6q-.js";import{t as p}from"./use-toast-xpb5jNtN.js";import{a as m,c as h,i as g,n as _,o as v,r as y,s as b,t as x}from"./alert-dialog-BxMfaLuO.js";import{Dt as S,Et as C,Jn as w,St as T,st as E,xt as D,yt as O}from"./index-B3-5kIOf.js";import{t as k}from"./use-settings-page-loading-BTySlInF.js";var A=e(t(),1),j=n();function M(){let e=i(e=>e.selectedProjectId),[t,n]=(0,A.useState)(``),[M,N]=(0,A.useState)(``),[P,F]=(0,A.useState)(!0),[I,L]=(0,A.useState)(!1),[R,z]=(0,A.useState)(``),[B,V]=(0,A.useState)(!0),[H,U]=(0,A.useState)(!1),[W,G]=(0,A.useState)(!1);(0,A.useLayoutEffect)(()=>{e&&V(!0)},[e]),(0,A.useEffect)(()=>{if(!e){V(!1);return}V(!0),f(e).then(e=>{let t=e.useCustomSystemPrompt;n(e.generatedPrompt),L(t),z(e.customSystemPrompt),F(!t),N(t?e.customSystemPrompt:e.generatedPrompt)}).catch(()=>{n(``),N(``),F(!0),L(!1),z(``)}).finally(()=>V(!1))},[e]);let K=k(e,[B]);function q(){return P?I:M.trim()!==R.trim()}function J(e){N(e),P&&F(!1)}function Y(){N(t),F(!0)}function X(e){if(!e){F(!1);return}if(M===t){Y();return}G(!0)}function Z(){Y(),G(!1)}function Q(){G(!1)}async function $(){if(e){if(!P&&!M.trim()){p({title:`System prompt required`,description:`Enter a system prompt or enable Generated.`,variant:`destructive`});return}U(!0);try{await d(e,{customSystemPrompt:P?null:M.trim(),useCustomSystemPrompt:!P}),u(),L(!P),z(P?``:M.trim()),p({title:`System prompt settings saved`})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to save system prompt settings`,variant:`destructive`})}finally{U(!1)}}}return e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(T,{loading:K,children:(0,j.jsx)(D,{children:(0,j.jsxs)(S,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,j.jsx)(O,{title:`System Prompt`,description:`View the default system prompt or override it for this project.`,sticky:!1,action:(0,j.jsx)(ee,{onClick:$,disabled:H||!q(),children:H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(o,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,j.jsxs)(`div`,{className:`mb-4 flex w-full items-center justify-end gap-2`,children:[(0,j.jsxs)(l,{children:[(0,j.jsx)(s,{asChild:!0,children:(0,j.jsx)(`span`,{tabIndex:0,className:a(r.label,`cursor-help`),children:`Generated`})}),(0,j.jsx)(c,{side:`top`,className:`max-w-xs`,children:`Use the auto-generated system prompt instead of a custom override.`})]}),(0,j.jsx)(E,{value:P,onChange:X,disabled:H,ariaLabel:`Generated system prompt`})]}),(0,j.jsx)(w,{value:M,onChange:e=>J(e.target.value),className:a(r.mono,`flex-1 min-h-0 resize-none`),placeholder:`System prompt will appear here...`,disabled:H})]})})}),(0,j.jsx)(x,{open:W,onOpenChange:G,children:(0,j.jsxs)(g,{children:[(0,j.jsxs)(b,{children:[(0,j.jsx)(h,{children:`Overwrite custom system prompt?`}),(0,j.jsx)(m,{children:`This will replace your custom system prompt with the generated default. You can save the change after confirming.`})]}),(0,j.jsxs)(v,{children:[(0,j.jsx)(y,{onClick:Q,children:`No`}),(0,j.jsx)(_,{onClick:Z,children:`Yes`})]})]})})]}):(0,j.jsx)(C,{children:`Select a project to edit the system prompt.`})}export{M as SettingsSystemPromptView,M as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-general-view-BhrfHGfQ.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-B3-5kIOf.js","assets/react-vendor-Ee0-5T4I.js","assets/alert-dialog-BxMfaLuO.js","assets/button-kWtLAMpB.js","assets/dist-CTLFS4dn.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-c_QADQ5u.js","assets/dist-D-2G8xGB.js","assets/es2015-BlPKkFZZ.js","assets/async-loading-fallback-V0EaQ_Kn.js","assets/scroll-area-lkVMElz5.js","assets/dist-OixawqbU.js","assets/tooltip-Db8UeYxm.js","assets/dist-C2G92uPn.js","assets/dist-DoxvnNEY.js","assets/use-toast-xpb5jNtN.js","assets/chat-dock-context-8K8Ikjgy.js","assets/api-DX1ny6q-.js","assets/store-BSzKIu5G.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/main-tab-context-Byl1LybL.js","assets/use-suspense-resource-Dakt9lfT.js","assets/suspense-resource-BFrb_XJX.js","assets/create-project-workspace-Dv_lEfZx.js","assets/dist-DD4GtbiM.js","assets/dist-yM5kyz9Q.js","assets/dist-CHhgoHp6.js","assets/dist-DsmF-KJ-.js","assets/dist-CSssbxDI.js","assets/useBaseQuery-34f0-SVd.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/index-BLNUy5nZ.css","assets/toggle-group-Q36wRGKA.js","assets/use-settings-page-loading-BTySlInF.js","assets/project-settings-view-DJfmaWn6.js","assets/context-menu-BcM6I0Sx.js","assets/project-coding-view-DxOwsjtt.js","assets/commit-method-fields-BtEHb0_G.js","assets/project-env-vars-view-DYLWA7s0.js","assets/project-danger-zone-view-CkvKOQrl.js","assets/project-model-aliases-view-DWu9khLA.js","assets/project-tools-view-BEjBkghz.js","assets/providers-list-view-jMEPJCci.js","assets/model-list-controls-I67L2x3H.js","assets/sorting-DqwxPMRN.js","assets/async-error-boundary-BX1G17o9.js","assets/card-B_EASkic.js","assets/settings-list-DiiYzOxn.js","assets/use-deferred-search-Dgxosq55.js","assets/pending-changes-Bn-0ak1d.js","assets/settings-models-view-CJVeo9ad.js","assets/table-A3cgauiZ.js","assets/settings-mcp-servers-view-4FpPIeYV.js","assets/delete-confirm-dialog-Dl76vaxb.js","assets/settings-slack-view-Cc1NgVkx.js","assets/settings-logs-view-DbKM1SNk.js","assets/settings-skills-view-DoRPGbHG.js","assets/slug-utils-CQ8PMWUL.js","assets/use-installed-ai-files-C8nNWGC7.js","assets/settings-slash-commands-view-CmlWqqmi.js","assets/radio-group-Dn_pN-pn.js","assets/settings-subagents-view-B2RvxDZI.js","assets/settings-system-prompt-view-CvVbgjNN.js","assets/account-view-CWtpznW2.js","assets/conversation-history-view-CuzU9qF6.js","assets/settings-storage-view-DihbtUYb.js","assets/settings-statistics-view-DRuyEbcN.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{c as a,o,s}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as c,N as l}from"./dist-CTLFS4dn.js";import{$ as u,n as d,r as f}from"./store-BSzKIu5G.js";import{m as p,r as m,t as h}from"./button-kWtLAMpB.js";import{A as g,C as _,Cn as v,E as y,Fn as b,G as x,I as S,In as C,Ln as w,Lt as T,Rt as E,S as D,Tt as O,U as k,b as A,dt as j,k as M,x as N,y as P,yn as F}from"./dist-c_QADQ5u.js";import{Dt as I,Jt as L,fn as R}from"./api-DX1ny6q-.js";import{n as z}from"./scroll-area-lkVMElz5.js";import{n as B}from"./async-loading-fallback-V0EaQ_Kn.js";import{Et as V,Fn as H,Gn as U,Hn as W,Kn as G,N as K,Nn as ee,Pn as te,Un as q,er as ne}from"./index-B3-5kIOf.js";var J=t(),Y=e(n(),1),X=i(),re=(0,Y.forwardRef)(function(e,t){let n=(0,J.c)(29),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:u,className:d,onCollapse:f,onExpand:p,isMobile:h,mobileShowSidebar:g,sidebarClassName:_}=e,v=a===void 0?25:a,y=o===void 0?20:o,b=s===void 0?30:s,x=c===void 0?40:c,S=l===void 0?!1:l,C=u===void 0?0:u,w=d===void 0?``:d,T=h===void 0?!1:h,E=g===void 0?!0:g,D=T&&!E,O=T&&E,k=`h-full ${w}`,A=T?100:v,j=T?50:y,M=T?100:b,N=D&&`hidden`,P;n[0]!==_||n[1]!==N?(P=m(`border-r border-transparent`,N,_),n[0]=_,n[1]=N,n[2]=P):P=n[2];let F;n[3]!==C||n[4]!==S||n[5]!==f||n[6]!==p||n[7]!==t||n[8]!==r||n[9]!==A||n[10]!==j||n[11]!==M||n[12]!==P?(F=(0,X.jsx)(te,{ref:t,defaultSize:A,minSize:j,maxSize:M,collapsible:S,collapsedSize:C,onCollapse:f,onExpand:p,className:P,children:r}),n[3]=C,n[4]=S,n[5]=f,n[6]=p,n[7]=t,n[8]=r,n[9]=A,n[10]=j,n[11]=M,n[12]=P,n[13]=F):F=n[13];let I;n[14]===T?I=n[15]:(I=!T&&(0,X.jsx)(ee,{withHandle:!0,className:`ml-[-10px]`}),n[14]=T,n[15]=I);let L=O&&`hidden`,R;n[16]===L?R=n[17]:(R=m(`overflow-hidden`,L),n[16]=L,n[17]=R);let z;n[18]!==i||n[19]!==x||n[20]!==R?(z=(0,X.jsx)(te,{minSize:x,className:R,children:i}),n[18]=i,n[19]=x,n[20]=R,n[21]=z):z=n[21];let B;n[22]!==F||n[23]!==I||n[24]!==z?(B=(0,X.jsxs)(H,{direction:`horizontal`,className:`h-full`,children:[F,I,z]}),n[22]=F,n[23]=I,n[24]=z,n[25]=B):B=n[25];let V;return n[26]!==k||n[27]!==B?(V=(0,X.jsx)(`div`,{className:k,children:B}),n[26]=k,n[27]=B,n[28]=V):V=n[28],V});function ie(e){let t=(0,J.c)(5),{className:n}=e,r;t[0]===n?r=t[1]:(r=m(`h-4 w-4`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,X.jsx)(`path`,{d:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.528 2.528 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.528 2.528 0 0 1-2.52-2.523 2.528 2.528 0 0 1 2.52-2.52h6.313A2.528 2.528 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,className:r,children:i}),t[3]=r,t[4]=a),a}var Z=[{id:`skills`,label:`Skills`,icon:(0,X.jsx)(N,{className:`h-4 w-4`}),route:`/settings/skills`},{id:`slash-commands`,label:`Slash Commands`,icon:(0,X.jsx)(M,{className:`h-4 w-4`}),route:`/settings/slash-commands`},{id:`subagents`,label:`Subagents`,icon:(0,X.jsx)(D,{className:`h-4 w-4`}),route:`/settings/subagents`},{id:`system-prompt`,label:`System Prompt`,icon:(0,X.jsx)(S,{className:`h-4 w-4`}),route:`/settings/system-prompt`},{id:`mcp-servers`,label:`MCP Servers`,icon:(0,X.jsx)(x,{className:`h-4 w-4`}),route:`/settings/mcp-servers`},{id:`general`,label:`Settings`,icon:(0,X.jsx)(k,{className:`h-4 w-4`}),route:`/settings/general`},{id:`logs`,label:`Logs`,icon:(0,X.jsx)(O,{className:`h-4 w-4`}),route:`/settings/logs`},{id:`slack`,label:`Slack`,icon:(0,X.jsx)(ie,{}),route:`/settings/slack`},{id:`providers`,label:`Providers`,icon:(0,X.jsx)(F,{className:`h-4 w-4`}),route:`/settings/providers`},{id:`models`,label:`Models`,icon:(0,X.jsx)(C,{className:`h-4 w-4`}),route:`/settings/models`},{id:`model-aliases`,label:`Model Aliases`,icon:(0,X.jsx)(g,{className:`h-4 w-4`}),route:`/settings/model-aliases`},{id:`statistics`,label:`Statistics`,icon:(0,X.jsx)(b,{className:`h-4 w-4`}),route:`/settings/statistics`},{id:`history`,label:`History`,icon:(0,X.jsx)(T,{className:`h-4 w-4`}),route:`/settings/history`},{id:`storage`,label:`Storage`,icon:(0,X.jsx)(E,{className:`h-4 w-4`}),route:`/settings/storage`},{id:`account`,label:`Account`,icon:(0,X.jsx)(_,{className:`h-4 w-4`}),route:`/settings/account`}],Q=new Set([`project`,`project-coding`,`project-danger-zone`,`project-env-vars`,`project-tools`,`skills`,`slash-commands`,`subagents`,`system-prompt`,`mcp-servers`]),ae=new Set([`project`,`skills`,`mcp-servers`]),oe=new Set([`project-coding`,`project-env-vars`]),se=new Set([`system-prompt`,`project-tools`,`slash-commands`,`subagents`,`project-danger-zone`]),ce=new Set([`general`,`logs`,`slack`,`providers`,`models`,`model-aliases`,`statistics`,`history`,`storage`,`account`]);function le(e){return Q.has(e)?`project`:`general`}function $(e){let t=(0,J.c)(18),{label:n,items:r,activeTabId:i,onItemClick:a,showSeparator:o,className:s}=e,c=o===void 0?!0:o;if(r.length===0)return null;let l;t[0]===n?l=t[1]:(l=n?(0,X.jsx)(W,{className:`text-xs`,children:n}):null,t[0]=n,t[1]=l);let u;if(t[2]!==i||t[3]!==r||t[4]!==a){let e;t[6]!==i||t[7]!==a?(e=e=>(0,X.jsx)(G,{selected:i===e.id,asChild:!0,children:(0,X.jsx)(`button`,{className:`justify-start`,onClick:()=>a(e),children:(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,X.jsx)(`span`,{children:e.label})]})})},e.id),t[6]=i,t[7]=a,t[8]=e):e=t[8],u=r.map(e),t[2]=i,t[3]=r,t[4]=a,t[5]=u}else u=t[5];let d;t[9]===u?d=t[10]:(d=(0,X.jsx)(`div`,{className:`space-y-1`,children:u}),t[9]=u,t[10]=d);let f;t[11]===c?f=t[12]:(f=c?(0,X.jsx)(U,{className:`my-2`}):null,t[11]=c,t[12]=f);let p;return t[13]!==s||t[14]!==l||t[15]!==d||t[16]!==f?(p=(0,X.jsxs)(`div`,{className:s,children:[l,d,f]}),t[13]=s,t[14]=l,t[15]=d,t[16]=f,t[17]=p):p=t[17],p}function ue(e){let t=[...Z];if(!e)return t;let n=t.findIndex(e=>e.id===`skills`);t.splice(n,0,{id:`project`,label:`Settings`,icon:(0,X.jsx)(k,{className:`h-4 w-4`}),route:`/settings/project/${e}`});let r=t.findIndex(e=>e.id===`project`);t.splice(r+1,0,{id:`project-coding`,label:`Repo`,icon:(0,X.jsx)(v,{className:`h-4 w-4`}),route:`/settings/project/${e}/coding`});let i=t.findIndex(e=>e.id===`system-prompt`),a=i===-1?null:t.splice(i,1)[0],o=t.findIndex(e=>e.id===`slash-commands`),s=o===-1?null:t.splice(o,1)[0],c=t.findIndex(e=>e.id===`subagents`),l=c===-1?null:t.splice(c,1)[0],u=t.findIndex(e=>e.id===`mcp-servers`);return u!==-1&&t.splice(u+1,0,...a?[a]:[],{id:`project-tools`,label:`Tools`,icon:(0,X.jsx)(A,{className:`h-4 w-4`}),route:`/settings/project/${e}/tools`},...s?[s]:[],...l?[l]:[],{id:`project-env-vars`,label:`Variables`,icon:(0,X.jsx)(w,{className:`h-4 w-4`}),route:`/settings/project/${e}/env-vars`},{id:`project-danger-zone`,label:`Danger Zone`,icon:(0,X.jsx)(y,{className:`h-4 w-4`}),route:`/settings/project/${e}/danger-zone`}),t}function de(e){let t=(0,J.c)(48),{className:n,selectedProjectId:r,settingsScope:i,onResetOnboarding:a,onNavItemSelect:c}=e,l=s(),u=o(),d=(0,Y.useRef)(0),f=(0,Y.useRef)(null),p,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{f.current&&clearTimeout(f.current)},h=[],t[0]=p,t[1]=h):(p=t[0],h=t[1]),(0,Y.useEffect)(p,h);let g=q(),_;t[2]===r?_=t[3]:(_=ue(r),t[2]=r,t[3]=_);let v=_,y;t[4]!==g||t[5]!==v?(y=g?v.filter(ve):v,t[4]=g,t[5]=v,t[6]=y):y=t[6];let b=y,x;t[7]!==u.pathname||t[8]!==b?(x=function(){let e=u.pathname;if(e.endsWith(`/tools`)&&e.startsWith(`/settings/project/`))return`project-tools`;if(e.endsWith(`/model-aliases`)&&e.startsWith(`/settings/project/`))return`project-model-aliases`;if(e.endsWith(`/env-vars`)&&e.startsWith(`/settings/project/`))return`project-env-vars`;if(e.endsWith(`/coding`)&&e.startsWith(`/settings/project/`))return`project-coding`;if(e.endsWith(`/danger-zone`)&&e.startsWith(`/settings/project/`))return`project-danger-zone`;if(e.startsWith(`/settings/project/`))return`project`;for(let t of b)if(e.startsWith(t.route))return t.id;return`general`}(),t[7]=u.pathname,t[8]=b,t[9]=x):x=t[9];let S=x,C,w,T,E,D,O,k,A,j;if(t[10]!==S||t[11]!==n||t[12]!==b||t[13]!==l||t[14]!==c||t[15]!==a||t[16]!==r||t[17]!==i){w=function(e){e.id===`general`&&a&&(f.current&&clearTimeout(f.current),d.current+=1,d.current>=3?(d.current=0,a()):f.current=setTimeout(()=>{d.current=0},1500)),c?.(),l(e.route)};let e=!!r;O=!e||i!==`project`,k=e&&i!==`general`;let o=b.filter(_e);D=o.filter(ge),E=o.filter(he),T=o.filter(me);let s;t[27]===b?s=t[28]:(s=b.filter(pe),t[27]=b,t[28]=s),C=s;let u=e?[]:o.filter(fe);t[29]===n?A=t[30]:(A=m(`space-y-1`,n),t[29]=n,t[30]=A),j=u.length>0?(0,X.jsxs)(X.Fragment,{children:[u.map(e=>(0,X.jsx)(G,{selected:S===e.id,asChild:!0,children:(0,X.jsx)(`button`,{className:`justify-start`,onClick:()=>w(e),children:(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,X.jsx)(`span`,{children:e.label})]})})},e.id)),(0,X.jsx)(U,{className:`my-2`})]}):null,t[10]=S,t[11]=n,t[12]=b,t[13]=l,t[14]=c,t[15]=a,t[16]=r,t[17]=i,t[18]=C,t[19]=w,t[20]=T,t[21]=E,t[22]=D,t[23]=O,t[24]=k,t[25]=A,t[26]=j}else C=t[18],w=t[19],T=t[20],E=t[21],D=t[22],O=t[23],k=t[24],A=t[25],j=t[26];let M;t[31]!==S||t[32]!==w||t[33]!==T||t[34]!==E||t[35]!==D||t[36]!==k?(M=k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)($,{label:`Project`,items:D,activeTabId:S,onItemClick:w,showSeparator:!1}),(0,X.jsx)($,{label:`Coding`,items:E,activeTabId:S,onItemClick:w,showSeparator:!1,className:`pt-3`}),(0,X.jsx)($,{label:`Advanced`,items:T,activeTabId:S,onItemClick:w,showSeparator:!1,className:`pt-3`})]}):null,t[31]=S,t[32]=w,t[33]=T,t[34]=E,t[35]=D,t[36]=k,t[37]=M):M=t[37];let N;t[38]!==S||t[39]!==C||t[40]!==w||t[41]!==O?(N=O?(0,X.jsx)($,{items:C,activeTabId:S,onItemClick:w,showSeparator:!1}):null,t[38]=S,t[39]=C,t[40]=w,t[41]=O,t[42]=N):N=t[42];let P;return t[43]!==A||t[44]!==j||t[45]!==M||t[46]!==N?(P=(0,X.jsxs)(`div`,{className:A,children:[j,M,N]}),t[43]=A,t[44]=j,t[45]=M,t[46]=N,t[47]=P):P=t[47],P}function fe(e){return e.id!==`project`}function pe(e){return ce.has(e.id)}function me(e){return se.has(e.id)}function he(e){return oe.has(e.id)}function ge(e){return ae.has(e.id)}function _e(e){return Q.has(e.id)}function ve(e){return e.id!==`account`}var ye=l(`app.settings-view.ui`),be=[{value:`project`,label:`Project`},{value:`general`,label:`General`}],xe=`frosted-surface backdrop-blur-2xl`,Se=(0,Y.lazy)(()=>r(()=>import(`./settings-general-view-BhrfHGfQ.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]))),Ce=(0,Y.lazy)(()=>r(()=>import(`./project-settings-view-DJfmaWn6.js`),__vite__mapDeps([37,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,38,36]))),we=(0,Y.lazy)(()=>r(()=>import(`./project-coding-view-DxOwsjtt.js`),__vite__mapDeps([39,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,40,35,36]))),Te=(0,Y.lazy)(()=>r(()=>import(`./project-env-vars-view-DYLWA7s0.js`),__vite__mapDeps([41,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,36]))),Ee=(0,Y.lazy)(()=>r(()=>import(`./project-danger-zone-view-CkvKOQrl.js`),__vite__mapDeps([42,2,1,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]))),De=(0,Y.lazy)(()=>r(()=>import(`./project-model-aliases-view-DWu9khLA.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,36]))),Oe=(0,Y.lazy)(()=>r(()=>import(`./project-tools-view-BEjBkghz.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,36]))),ke=(0,Y.lazy)(()=>r(()=>import(`./providers-list-view-jMEPJCci.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,46,47,48,49,50,51,52]))),Ae=(0,Y.lazy)(()=>r(()=>import(`./settings-models-view-CJVeo9ad.js`),__vite__mapDeps([53,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,40,35,46,47,48,49,50,54,51]))),je=(0,Y.lazy)(()=>r(()=>import(`./settings-mcp-servers-view-4FpPIeYV.js`),__vite__mapDeps([55,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,56,50,49,36]))),Me=(0,Y.lazy)(()=>r(()=>import(`./settings-slack-view-Cc1NgVkx.js`),__vite__mapDeps([57,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]))),Ne=(0,Y.lazy)(()=>r(()=>import(`./settings-logs-view-DbKM1SNk.js`),__vite__mapDeps([58,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]))),Pe=(0,Y.lazy)(()=>r(()=>import(`./settings-skills-view-DoRPGbHG.js`),__vite__mapDeps([59,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,56,60,50,49,51,61,36]))),Fe=(0,Y.lazy)(()=>r(()=>import(`./settings-slash-commands-view-CmlWqqmi.js`),__vite__mapDeps([62,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,56,60,63,50,49,36]))),Ie=(0,Y.lazy)(()=>r(()=>import(`./settings-subagents-view-B2RvxDZI.js`),__vite__mapDeps([64,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,56,60,50,49,61,36]))),Le=(0,Y.lazy)(()=>r(()=>import(`./settings-system-prompt-view-CvVbgjNN.js`),__vite__mapDeps([65,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,36]))),Re=(0,Y.lazy)(()=>r(()=>import(`./account-view-CWtpznW2.js`),__vite__mapDeps([66,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,56]))),ze=(0,Y.lazy)(()=>r(()=>import(`./conversation-history-view-CuzU9qF6.js`),__vite__mapDeps([67,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,56,54]))),Be=(0,Y.lazy)(()=>r(()=>import(`./settings-storage-view-DihbtUYb.js`),__vite__mapDeps([68,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,56,50,49,54]))),Ve=(0,Y.lazy)(()=>r(()=>import(`./settings-statistics-view-DRuyEbcN.js`),__vite__mapDeps([69,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,56,54,35]))),He=[`general`,`providers`,`models`,`model-aliases`,`skills`,`slash-commands`,`subagents`,`system-prompt`,`mcp-servers`,`slack`,`logs`,`statistics`,`history`,`storage`,`account`];function Ue(e){let t=(0,J.c)(2),{title:n}=e,r;return t[0]===n?r=t[1]:(r=(0,X.jsx)(V,{title:n,children:`Content coming soon...`}),t[0]=n,t[1]=r),r}function We(e){return e.startsWith(`/settings/general`)?`general`:e.startsWith(`/settings/providers`)?`providers`:e.startsWith(`/settings/models`)?`models`:e.startsWith(`/settings/model-aliases`)?`model-aliases`:e.startsWith(`/settings/skills`)?`skills`:e.startsWith(`/settings/slash-commands`)?`slash-commands`:e.startsWith(`/settings/subagents`)?`subagents`:e.startsWith(`/settings/system-prompt`)?`system-prompt`:e.startsWith(`/settings/mcp-servers`)?`mcp-servers`:e.startsWith(`/settings/slack`)?`slack`:e.startsWith(`/settings/logs`)?`logs`:e.startsWith(`/settings/statistics`)?`statistics`:e.startsWith(`/settings/history`)?`history`:e.startsWith(`/settings/storage`)?`storage`:e.startsWith(`/settings/account`)?`account`:`general`}function Ge(e){let t=e.match(/^\/settings\/providers\/([^/]+)$/);return t?decodeURIComponent(t[1]):null}function Ke(e,t,n){return e&&He.includes(e)?e:t&&He.includes(t)?t:We(n)}function qe(e,t,n,r,i,a,o){return e?`project-tools`:t?`project-model-aliases`:n?`project-env-vars`:r?`project-coding`:i?`project-danger-zone`:a?`project`:o}function Je(e,t,n,r,i,a,o){return e?`Tools`:t?`Model Aliases`:n?`Variables`:r?`Repo`:i?`Danger Zone`:a?`Project`:Z.find(e=>e.id===o)?.label??`Settings`}function Ye(e,t){return e===`/settings`||e===`/settings/project`||[`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`,`/settings/rules`].some(t=>e.startsWith(t))||t&&e.startsWith(`/settings/account`)}function Xe(e,t){let n=!!e&&t.startsWith(`/settings/project/`),r=n&&t.endsWith(`/tools`),i=n&&t.endsWith(`/model-aliases`),a=n&&t.endsWith(`/env-vars`),o=n&&t.endsWith(`/coding`),s=n&&t.endsWith(`/danger-zone`);return{isProjectRoute:n,isProjectToolsRoute:r,isProjectModelAliasesRoute:i,isProjectEnvVarsRoute:a,isProjectCodingRoute:o,isProjectDangerZoneRoute:s,isProjectSettingsRoute:n&&!a&&!i&&!o&&!s&&!r}}function Ze(e,t){let n=(0,J.c)(5),r;n[0]!==t||n[1]!==e?(r=()=>{let n=e.current;if(!n)return;let r=function(e){if(e.key!==`Escape`)return;let n=document.activeElement;if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLElement&&n.isContentEditable){n.blur();return}t()};return n.addEventListener(`keydown`,r),()=>n.removeEventListener(`keydown`,r)},n[0]=t,n[1]=e,n[2]=r):r=n[2];let i;n[3]===t?i=n[4]:(i=[t],n[3]=t,n[4]=i),(0,Y.useEffect)(r,i)}function Qe(e){let t=(0,J.c)(5),{selectedProjectId:n,settingsScope:r,onResetOnboarding:i,onNavItemSelect:a}=e,o=n?r:void 0,s;return t[0]!==a||t[1]!==i||t[2]!==n||t[3]!==o?(s=(0,X.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden p-2.5`,children:(0,X.jsx)(z,{className:`min-h-0 flex-1`,children:(0,X.jsx)(`div`,{className:`py-2`,children:(0,X.jsx)(de,{selectedProjectId:n,settingsScope:o,onResetOnboarding:i,onNavItemSelect:a})})})}),t[0]=a,t[1]=i,t[2]=n,t[3]=o,t[4]=s):s=t[4],s}function $e(e){let t=(0,J.c)(21),{settingsHeaderTitle:n,isProjectSettingsScope:r,selectedProject:i,selectedProjectId:a,settingsScope:o,onScopeChange:s,onRequestClose:l}=e,u;t[0]!==r||t[1]!==i?(u=r&&i?(0,X.jsx)(ne,{project:i,className:`h-7 w-7 shrink-0 rounded-md`,iconClassName:`h-3.5 w-3.5`}):(0,X.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border shadow-sm`,children:(0,X.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full`})}),t[0]=r,t[1]=i,t[2]=u):u=t[2];let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=m(c.sectionTitle,`truncate`),t[3]=d):d=t[3];let f;t[4]===n?f=t[5]:(f=(0,X.jsx)(`span`,{className:d,children:n}),t[4]=n,t[5]=f);let p;t[6]!==u||t[7]!==f?(p=(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 electrobun-webkit-app-region-no-drag`,children:[u,f]}),t[6]=u,t[7]=f,t[8]=p):p=t[8];let g;t[9]!==s||t[10]!==a||t[11]!==o?(g=a?(0,X.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-4 flex justify-center`,children:(0,X.jsx)(K,{className:`pointer-events-auto electrobun-webkit-app-region-no-drag`,value:o,onValueChange:s,options:be})}):null,t[9]=s,t[10]=a,t[11]=o,t[12]=g):g=t[12];let _,v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,X.jsx)(P,{className:`h-4 w-4`}),v=(0,X.jsx)(`span`,{className:`sr-only`,children:`Close`}),t[13]=_,t[14]=v):(_=t[13],v=t[14]);let y;t[15]===l?y=t[16]:(y=(0,X.jsx)(`div`,{className:`ml-auto flex items-center gap-2 electrobun-webkit-app-region-no-drag`,children:(0,X.jsxs)(h,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:l,children:[_,v]})}),t[15]=l,t[16]=y);let b;return t[17]!==p||t[18]!==g||t[19]!==y?(b=(0,X.jsxs)(`div`,{className:`relative flex h-14 shrink-0 items-start px-4 pt-4 pb-2 electrobun-webkit-app-region-drag`,children:[p,g,y]}),t[17]=p,t[18]=g,t[19]=y,t[20]=b):b=t[20],b}function et(e){let t=(0,J.c)(10),{isMobile:n,mobileShowSidebar:r,isProviderDetailRoute:i,activeSectionLabel:a,onShowSidebar:o}=e;if(!n||r||i)return null;let s,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,X.jsx)(j,{className:`h-4 w-4`}),l=(0,X.jsx)(`span`,{className:`sr-only`,children:`Show settings menu`}),t[0]=s,t[1]=l):(s=t[0],l=t[1]);let u;t[2]===o?u=t[3]:(u=(0,X.jsxs)(h,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:o,children:[s,l]}),t[2]=o,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=m(c.sectionTitle,`truncate text-foreground`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,X.jsx)(`span`,{className:d,children:a}),t[5]=a,t[6]=f);let p;return t[7]!==u||t[8]!==f?(p=(0,X.jsx)(`div`,{className:`px-6 pb-0 pt-6`,children:(0,X.jsxs)(`div`,{className:`mb-4 flex min-w-0 items-center gap-2`,children:[u,f]})}),t[7]=u,t[8]=f,t[9]=p):p=t[9],p}function tt(e){let t=(0,J.c)(22),{isProjectToolsRoute:n,isProjectModelAliasesRoute:r,isProjectEnvVarsRoute:i,isProjectCodingRoute:a,isProjectDangerZoneRoute:o,isProjectSettingsRoute:s,projectId:c,activeTab:l,locationKey:u,onboardingResetSignal:d,handleProjectUpdated:f}=e;if(a&&c){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(B,{}),t[0]=e):e=t[0];let n;return t[1]===c?n=t[2]:(n=(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(we,{projectId:c})}),t[1]=c,t[2]=n),n}if(o&&c){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(B,{}),t[3]=e):e=t[3];let n;return t[4]===c?n=t[5]:(n=(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(Ee,{projectId:c})}),t[4]=c,t[5]=n),n}if(n&&c){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(B,{}),t[6]=e):e=t[6];let n;return t[7]!==f||t[8]!==c?(n=(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(Oe,{projectId:c,onProjectUpdated:f})}),t[7]=f,t[8]=c,t[9]=n):n=t[9],n}if(r&&c){let e;return t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(De,{})}),t[10]=e):e=t[10],e}if(i&&c){let e;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(B,{}),t[11]=e):e=t[11];let n;return t[12]===c?n=t[13]:(n=(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(Te,{projectId:c})}),t[12]=c,t[13]=n),n}if(s&&c){let e;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,X.jsx)(B,{}),t[14]=e):e=t[14];let n;return t[15]!==f||t[16]!==c?(n=(0,X.jsx)(Y.Suspense,{fallback:e,children:(0,X.jsx)(Ce,{projectId:c,onProjectUpdated:f})}),t[15]=f,t[16]=c,t[17]=n):n=t[17],n}let p;return t[18]!==l||t[19]!==u||t[20]!==d?(p=nt(l,u,d),t[18]=l,t[19]=u,t[20]=d,t[21]=p):p=t[21],p}function nt(e,t,n){return{general:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Se,{onboardingResetSignal:n})}),providers:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{label:`Loading providers...`,size:`lg`}),children:(0,X.jsx)(ke,{})}),models:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{label:`Loading models...`,size:`lg`}),children:(0,X.jsx)(Ae,{})}),"model-aliases":(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(De,{})}),skills:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Pe,{},t)}),"slash-commands":(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Fe,{})}),subagents:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Ie,{})}),"system-prompt":(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Le,{})}),"mcp-servers":(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(je,{})}),slack:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Me,{})}),logs:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Ne,{})}),statistics:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Ve,{})}),history:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(ze,{})}),storage:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Be,{})}),account:(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(B,{}),children:(0,X.jsx)(Re,{})})}[e]??(0,X.jsx)(Ue,{title:`Settings`})}function rt({onRequestClose:e}){let{tab:t,projectId:n}=a(),r=s(),i=o(),c=d(),l=f(e=>e.selectedProjectId),h=f(e=>e.projects),{isProjectRoute:g,isProjectToolsRoute:_,isProjectModelAliasesRoute:v,isProjectEnvVarsRoute:y,isProjectCodingRoute:b,isProjectDangerZoneRoute:x,isProjectSettingsRoute:S}=Xe(n,i.pathname),C=Ge(i.pathname)!==null,w=Ke(new URLSearchParams(i.search).get(`tab`),t,i.pathname),T=q(),[E,D]=(0,Y.useState)(!0),[O,k]=(0,Y.useState)(0),A=(0,Y.useRef)(null),j=(0,Y.useRef)(null),M=qe(_,v,y,b,x,g,w),[N,P]=(0,Y.useState)(()=>le(M));(0,Y.useEffect)(()=>{P(le(M))},[M]);let F=(0,Y.useCallback)(e=>{if(P(e),e===`project`&&l){r(`/settings/project/${l}`);return}e===`general`&&r(`/settings/general`)},[r,l]),z=(0,Y.useMemo)(()=>h.find(e=>e.projectId===l)??null,[h,l]),B=N===`project`&&z!==null,V=B?`${p(z)} Settings`:`General Settings`,H=(0,Y.useMemo)(()=>Je(_,v,y,b,x,S,w),[w,b,x,y,v,S,_]),U=(0,Y.useCallback)(()=>{T&&D(!1)},[T]),W=(0,Y.useCallback)(()=>{D(!0)},[]),G=(0,Y.useCallback)(async()=>{try{await R(),k(e=>e+1)}catch(e){ye.error(`Failed to reset onboarding:`,e)}},[]),K=(0,Y.useCallback)(async()=>{L(n);try{let e=await I();c({type:u.SetProjects,projects:e.projects,cloneRootPath:e.cloneRootPath})}catch(e){throw ye.error(`Failed to refresh projects after settings update:`,e),e}},[c,n]);return(0,Y.useEffect)(()=>{if(v){r(`/settings/model-aliases`,{replace:!0});return}Ye(i.pathname,T)&&r(`/settings/general`,{replace:!0})},[v,i.pathname,r,T]),Ze(j,e),(0,X.jsxs)(`div`,{ref:j,role:`dialog`,"aria-modal":`true`,"aria-label":`Settings`,className:m(`rounded-2xl border border-border shadow-lg`,xe,`flex h-full w-full flex-col overflow-hidden md:h-[95vh] md:w-[80vw] md:max-w-[1400px]`),children:[(0,X.jsx)($e,{settingsHeaderTitle:V,isProjectSettingsScope:B,selectedProject:z,selectedProjectId:l,settingsScope:N,onScopeChange:F,onRequestClose:e}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,X.jsx)(re,{ref:A,collapsible:!0,isMobile:T,mobileShowSidebar:E,sidebarClassName:m(`overflow-hidden rounded-tr-2xl`,xe),sidebar:(0,X.jsx)(Qe,{selectedProjectId:l,settingsScope:N,onResetOnboarding:G,onNavItemSelect:U}),children:(0,X.jsxs)(`div`,{className:m(`relative flex h-full min-h-0 flex-col overflow-hidden py-2.5 pl-2.5`,T?null:`ml-2.5`),children:[(0,X.jsx)(et,{isMobile:T,mobileShowSidebar:E,isProviderDetailRoute:C,activeSectionLabel:H,onShowSidebar:W}),(0,X.jsx)(tt,{isProjectToolsRoute:_,isProjectModelAliasesRoute:v,isProjectEnvVarsRoute:y,isProjectCodingRoute:b,isProjectDangerZoneRoute:x,isProjectSettingsRoute:S,projectId:n,activeTab:w,locationKey:i.key,onboardingResetSignal:O,handleProjectUpdated:K})]})})})]})}export{rt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-kWtLAMpB.js";import{Ot as r,jn as i}from"./dist-c_QADQ5u.js";var a=e(),o=t();function s(e){let t=(0,a.c)(6),{onContinue:s,disabled:c,creating:l}=e,u=c||l,d;t[0]===l?d=t[1]:(d=l?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,o.jsxs)(o.Fragment,{children:[`Continue`,(0,o.jsx)(i,{className:`ml-2 h-4 w-4`})]}),t[0]=l,t[1]=d);let f;return t[2]!==s||t[3]!==u||t[4]!==d?(f=(0,o.jsx)(`div`,{className:`mt-6 border-t pt-4 flex justify-end`,children:(0,o.jsx)(n,{onClick:s,disabled:u,children:d})}),t[2]=s,t[3]=u,t[4]=d,t[5]=f):f=t[5],f}function c(e){return e.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function l(e){return e.replace(/-/g,` `).split(/\s+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function u(e){return e.length>0&&e.length<=64}export{s as i,u as n,c as r,l as t};
|