tarsk 0.5.69 → 0.5.71
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 +130206 -129441
- package/dist/public/assets/{account-view-Chzj6v7a.js → account-view-P4Y5-Gf7.js} +1 -1
- package/dist/public/assets/{alert-dialog-CLYxQdrK.js → alert-dialog-CQsuxtcP.js} +1 -1
- package/dist/public/assets/{async-error-boundary-CM6LU7nT.js → async-error-boundary-DajcyqVg.js} +1 -1
- package/dist/public/assets/{browser-tab--1iEoJGu.js → browser-tab-DLvnuyhT.js} +2 -2
- package/dist/public/assets/{chat-dock-context-Gg1jpamu.js → chat-dock-context-CUdrQKFm.js} +1 -1
- package/dist/public/assets/{commit-dialog-BfdxNX_T.js → commit-dialog-C98fYJ1d.js} +1 -1
- package/dist/public/assets/{commit-error-dialog-DrsDKL-B.js → commit-error-dialog-DjFWRUYh.js} +1 -1
- package/dist/public/assets/{commit-method-fields-o-xw2faT.js → commit-method-fields-CPKi4MLF.js} +1 -1
- package/dist/public/assets/{context-menu-BLvLpqq7.js → context-menu-D4UmleM5.js} +1 -1
- package/dist/public/assets/conversation-history-view-CFq844ge.js +1 -0
- package/dist/public/assets/create-project-dialog-Du4yuSgt.js +6 -0
- package/dist/public/assets/create-project-workspace-Cw58bBNY.js +1 -0
- package/dist/public/assets/{create-repo-dialog-CkFACtMf.js → create-repo-dialog-DaCI6QrX.js} +1 -1
- package/dist/public/assets/{delete-confirm-dialog-D1zjctrX.js → delete-confirm-dialog-V9X76h-2.js} +1 -1
- package/dist/public/assets/diff-view-CzWiyJDW.js +4 -0
- package/dist/public/assets/explorer-tab-view-BbukFEig.js +2 -0
- package/dist/public/assets/explorer-tree-CKwkrTpU.js +1 -0
- package/dist/public/assets/explorer-view-DxvRAs1j.js +75 -0
- package/dist/public/assets/{git-history-dialog-X6sVwgPT.js → git-history-dialog-BIl7cN5L.js} +1 -1
- package/dist/public/assets/index-BH6Ht-w_.js +3356 -0
- package/dist/public/assets/{index-Cndc50ux.css → index-DpGlIV5v.css} +1 -1
- package/dist/public/assets/markdown-renderer-BcGbfUdk.js +8 -0
- package/dist/public/assets/{mcp-server-card-DPakHrG9.js → mcp-server-card-D8gWLGuB.js} +1 -1
- package/dist/public/assets/{merged-pr-dialog-C3euJvCu.js → merged-pr-dialog-BcMvxAAS.js} +1 -1
- package/dist/public/assets/{model-list-controls-2JtkzWsp.js → model-list-controls-8f6YNzoF.js} +1 -1
- package/dist/public/assets/{monaco-setup-b-rhUj5t.js → monaco-setup-B_kQVsDW.js} +1 -1
- package/dist/public/assets/onboarding-CQV3cOCc.js +46 -0
- package/dist/public/assets/{project-env-vars-view-D60J_-qQ.js → project-env-vars-view-DHLrARmp.js} +1 -1
- package/dist/public/assets/{project-model-aliases-view-EClnOgBH.js → project-model-aliases-view-NaGeOnLB.js} +1 -1
- package/dist/public/assets/project-settings-view-DYx0Ejz_.js +1 -0
- package/dist/public/assets/{project-tools-view-B_WnVICB.js → project-tools-view-Dwh-9yLK.js} +1 -1
- package/dist/public/assets/providers-list-view-BgHPRsyZ.js +1 -0
- package/dist/public/assets/{pull-request-dialog-CitbRcub.js → pull-request-dialog-jiDTjl9S.js} +1 -1
- package/dist/public/assets/{pull-with-changes-dialog-CpgHqvKf.js → pull-with-changes-dialog-tz5BKYLX.js} +1 -1
- package/dist/public/assets/{push-before-pr-dialog-CrcNZDLb.js → push-before-pr-dialog-CsCEcu3D.js} +1 -1
- package/dist/public/assets/query-keys-CbACxUOr.js +1 -0
- package/dist/public/assets/react-vendor-CVjuv5OI.js +22 -0
- package/dist/public/assets/scenic-chrome-CbN3vum7.js +1 -0
- package/dist/public/assets/settings-general-view-DFuR-GEd.js +1 -0
- package/dist/public/assets/{settings-instructions-view-DN4-73KP.js → settings-instructions-view-DyHQ7P84.js} +1 -1
- package/dist/public/assets/{settings-list-CWdsaJKC.js → settings-list-CqAk8BOe.js} +1 -1
- package/dist/public/assets/{settings-logs-view-CkkVgGvv.js → settings-logs-view-NuI1wC43.js} +4 -4
- package/dist/public/assets/settings-mcp-servers-view-CzbsCA0X.js +5 -0
- package/dist/public/assets/settings-models-view-DC-v64Ua.js +1 -0
- package/dist/public/assets/{settings-rules-view-DIk0ghSW.js → settings-rules-view-F1cdLdbY.js} +3 -3
- package/dist/public/assets/settings-skills-view-Ba8LIeWY.js +3 -0
- package/dist/public/assets/{settings-slack-view-RFLP0USW.js → settings-slack-view-DQUSFcUo.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-BRBxLk4J.js +1 -0
- package/dist/public/assets/{settings-statistics-view-BgrzVn4R.js → settings-statistics-view-4uiJ9rwT.js} +1 -1
- package/dist/public/assets/{settings-storage-view-BS2k7E74.js → settings-storage-view-CuAI5fWL.js} +1 -1
- package/dist/public/assets/{settings-subagents-view-BZr1NkVp.js → settings-subagents-view-pSxxHmFV.js} +2 -2
- package/dist/public/assets/{settings-system-prompt-view-mQErde93.js → settings-system-prompt-view-CrFpAHz1.js} +1 -1
- package/dist/public/assets/settings-view-_YIXCuoG.js +2 -0
- package/dist/public/assets/store-fffs6-y9.js +8 -0
- package/dist/public/assets/suspense-resource-DnYnmTbs.js +1 -0
- package/dist/public/assets/tasks-view-f5xX4AVx.js +2 -0
- package/dist/public/assets/{terminal-panel-DCaBWV04.js → terminal-panel-CiCkzKHm.js} +3 -3
- package/dist/public/assets/{ui-components-1WsgZqWa.js → ui-components-DioWsrht.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-B9ao_JH2.js → use-active-dock-panel-instance-BAHb-cSH.js} +1 -1
- package/dist/public/assets/use-installed-ai-files-D7Y1gZYc.js +1 -0
- package/dist/public/assets/use-open-chat-dock-panel-zpT9rr8C.js +1 -0
- package/dist/public/assets/use-suspense-resource-BxOFFoEK.js +1 -0
- package/dist/public/assets/{web-CEfF0992.js → web-2RomPZ8n.js} +1 -1
- package/dist/public/assets/{web-BuYdGVW8.js → web-BRo_4CM5.js} +1 -1
- package/dist/public/assets/{web-yeAPC2wm.js → web-CkSlG6TA.js} +1 -1
- package/dist/public/assets/{web-D7CwlITA.js → web-DGsiH272.js} +1 -1
- package/dist/public/index.html +14 -9
- package/package.json +1 -1
- package/dist/public/assets/conversation-history-view-ukfe_7qw.js +0 -1
- package/dist/public/assets/create-project-dialog-DrXo61FQ.js +0 -6
- package/dist/public/assets/diff-view-Cxf7v9t1.js +0 -4
- package/dist/public/assets/explorer-tab-view-LkT0bDcR.js +0 -2
- package/dist/public/assets/explorer-tree-B6EZUVTn.js +0 -1
- package/dist/public/assets/explorer-view-D5y8Uxoi.js +0 -75
- package/dist/public/assets/index-CJCQ4bTo.js +0 -3359
- package/dist/public/assets/onboarding-KBcwP-kU.js +0 -46
- package/dist/public/assets/project-settings-view-Cb0iiyad.js +0 -1
- package/dist/public/assets/providers-list-view-CYy82_hl.js +0 -1
- package/dist/public/assets/react-vendor-7n7LyU5o.js +0 -22
- package/dist/public/assets/settings-general-view-72s5xgPj.js +0 -1
- package/dist/public/assets/settings-mcp-servers-view-B8_vnfl6.js +0 -5
- package/dist/public/assets/settings-models-view-xIRY7PvW.js +0 -1
- package/dist/public/assets/settings-skills-view-qWbr0Vl2.js +0 -3
- package/dist/public/assets/settings-slash-commands-view-zFWoR_R7.js +0 -1
- package/dist/public/assets/settings-view-D4-XZz2V.js +0 -2
- package/dist/public/assets/store-B_cK-gsT.js +0 -8
- package/dist/public/assets/tasks-view-DgkXglqW.js +0 -2
- package/dist/public/assets/thread-tool-blocks-D9HUkPHB.js +0 -1
- package/dist/public/assets/use-installed-ai-files-GpG9ZL8U.js +0 -1
- package/dist/public/assets/use-suspense-resource-CExc4Svq.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,E as n,Et as r,Nn as i,Oi as a,Rr as o,Sn as s,T as c,W as l,_n as u,ct as d,dn as f,gn as p,i as m,ki as h,lt as ee,mn as g,tr as _,yt as te}from"./interactive-BrHVRHmQ.js";import{c as v,l as y,o as ne,s as re,u as ie}from"./react-vendor-7n7LyU5o.js";import{Ct as ae,Eo as oe,Hn as b,St as se,Tt as ce,a as le,bo as x,dt as ue,eo as S,ha as C,lt as de,mt as fe,o as pe,rt as me,st as he,tt as w,wi as T,x as ge,ya as _e}from"./onboarding-KBcwP-kU.js";import{t as ve}from"./use-toast-hxHsVv6a.js";import{n as ye}from"./utils-SsF94Pkg.js";import{L as be,dt as xe,ft as Se,k as Ce,n as we,r as Te,t as Ee,ut as De}from"./index-CJCQ4bTo.js";import{t as Oe}from"./use-settings-page-loading-BU2CDnfE.js";import{t as E}from"./is-macos-client-BIb4ZSEa.js";var ke=a(),D=e(h(),1),O=t(),Ae=D.forwardRef((e,t)=>{let n=(0,ke.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,s]=D.useState(!1),[c,l]=D.useState(!1),u,d;n[4]===c?(u=n[5],d=n[6]):(u=()=>{if(!c)return;let e=function(){l(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},d=[c],n[4]=c,n[5]=u,n[6]=d),D.useEffect(u,d);let f;n[7]===a?f=n[8]:(f=(0,O.jsx)(y,{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&&(l(!0),s(!0))}}),n[7]=a,n[8]=f);let p=f,h;n[9]===r?h=n[10]:(h=m(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=h);let ee;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,O.jsx)(ie,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,O.jsx)(re,{className:`absolute h-full bg-primary`})}),n[11]=ee):ee=n[11];let g;n[12]!==c||n[13]!==o||n[14]!==p||n[15]!==a?(g=a==null?p:(0,O.jsxs)(se,{open:o||c,onOpenChange:s,children:[(0,O.jsx)(ce,{asChild:!0,children:p}),(0,O.jsx)(ae,{side:`top`,children:a})]}),n[12]=c,n[13]=o,n[14]=p,n[15]=a,n[16]=g):g=n[16];let _;return n[17]!==i||n[18]!==t||n[19]!==h||n[20]!==g?(_=(0,O.jsxs)(v,{ref:t,className:h,...i,children:[ee,g]}),n[17]=i,n[18]=t,n[19]=h,n[20]=g,n[21]=_):_=n[21],_});Ae.displayName=v.displayName;var je=_(`app.use-maximum-turn-count.hook`),k=100;function Me(){let[e,t]=(0,D.useState)(k),[n,r]=(0,D.useState)(k.toString()),[i,a]=(0,D.useState)(!0),[o,s]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){je.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 T({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw je.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:k,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var A=_(`app.use-screen-recording-permission.hook`),j={isMacOS:!1,granted:!1,available:!1,message:``};function Ne(){return{...j,isMacOS:E()}}function Pe(){let[e,t]=(0,D.useState)(Ne),[n,r]=(0,D.useState)(!0),[i,a]=(0,D.useState)(null),[o,s]=(0,D.useState)(!1),[c,l]=(0,D.useState)(null),u=(0,D.useCallback)(async()=>{r(!0),a(null);try{t(await C(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...j,isMacOS:e?.isMacOS??E(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,D.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,D.useCallback)(async()=>{s(!0),l(null);try{let e=await _e(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var Fe=_(`app.use-server-bind-mode.hook`),Ie=`local`,M=`tarsk-server-bind-mode-changed`;function Le(e){x(e)}function N(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(M)===`true`}catch{return!1}}function P(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(M,`true`):sessionStorage.removeItem(M)}catch{}}function Re(){let[e,t]=(0,D.useState)(()=>S()?.serverBindMode??Ie),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(()=>S()?.networkAddresses??[]),[o,s]=(0,D.useState)(()=>S()===null),[c,l]=(0,D.useState)(!1),[u,d]=(0,D.useState)(N);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){Fe.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 T({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),P(!0)}catch(e){throw Fe.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:Ie,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var F=_(`app.use-logging.hook`);function ze(){let[e,t]=(0,D.useState)(!1),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(!1),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(!0),[u,d]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){F.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 T({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw F.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 Be=[{value:`light`,label:`Light`,icon:c},{value:`dark`,label:`Dark`,icon:d},{value:`system`,label:`System`,icon:n}],Ve=[{value:`image`,label:`Image`,icon:r},{value:`background`,label:`Background`,icon:i}],He=`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`,Ue=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,We=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,Ge=600;function Ke(e){let t=(0,ke.c)(224),{onboardingResetSignal:n}=e,r=n===void 0?0:n,[i,a]=(0,D.useState)(!1),{theme:c,setTheme:d}=ye(),{scale:h,updateScale:_,min:v,max:y}=Te(),{opacity:re,updateOpacity:ie,min:b,max:x}=we(),{mode:S,color:C,updateMode:T,updateColor:_e}=be(),{color:E,updateColor:je,resetColor:k}=Ee(),{defaultMaximumTurnCount:A,draftMaximumTurnCount:j,isLoading:Ne,isSaving:Fe,resetDraftMaximumTurnCount:Ie,setDraftMaximumTurnCount:M,updateMaximumTurnCount:Le}=Me(),{status:N,isLoading:P,isOpeningSettings:F,openSettingsError:Ke,refresh:Xe,openSystemSettings:Ze}=Pe(),{isLoading:Qe,isSaving:$e,needsRestart:I,networkAddresses:L,serverBindMode:R,updateServerBindMode:et}=Re(),{isEnabled:tt,isLoading:nt,isSaving:rt,updateIsEnabled:it}=De(),{isEnabled:at,isLoading:ot,isSaving:st,updateIsEnabled:ct}=Ce(),{isEnabled:lt,isSupported:ut,isHealthy:z,statusMessage:dt,isLoading:B,isSaving:ft,updateIsEnabled:pt}=xe(),{isEnabled:V,logPath:H,isEnvConfigured:mt,ingestingHost:ht,isLoading:gt,isSaving:_t,updateIsEnabled:vt}=ze(),yt;t[0]!==gt||t[1]!==Ne||t[2]!==P||t[3]!==B||t[4]!==Qe||t[5]!==ot||t[6]!==nt?(yt=[Ne,P,Qe,nt,ot,B,gt],t[0]=gt,t[1]=Ne,t[2]=P,t[3]=B,t[4]=Qe,t[5]=ot,t[6]=nt,t[7]=yt):yt=t[7];let bt=Oe(`general`,yt),xt,St;t[8]===r?(xt=t[9],St=t[10]):(xt=()=>{if(r===0)return;a(!0);let e=setTimeout(()=>{a(!1)},Ge);return()=>{clearTimeout(e)}},St=[r],t[8]=r,t[9]=xt,t[10]=St),(0,D.useEffect)(xt,St);let Ct;t[11]===M?Ct=t[12]:(Ct=function(e){M(e.target.value)},t[11]=M,t[12]=Ct);let wt=Ct,Tt;t[13]!==A||t[14]!==j||t[15]!==Ie||t[16]!==Le?(Tt=async function(){let e=Number.parseInt(j,10),t=Number.isFinite(e)&&e>0?e:A;try{await Le(t)}catch{Ie()}},t[13]=A,t[14]=j,t[15]=Ie,t[16]=Le,t[17]=Tt):Tt=t[17];let Et=Tt,Dt;t[18]===_?Dt=t[19]:(Dt=function(e){e.length>0&&_(e[0])},t[18]=_,t[19]=Dt);let Ot=Dt,kt;t[20]===ie?kt=t[21]:(kt=function(e){e.length>0&&ie(e[0])},t[20]=ie,t[21]=kt);let At=kt,jt;t[22]===H?jt=t[23]:(jt=async function(){if(H)try{await navigator.clipboard.writeText(H),ve({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[22]=H,t[23]=jt);let Mt=jt,[Nt,Pt]=(0,D.useState)(!1),U,W,G;t[24]!==L||t[25]!==R?(U=async function(){if(W)try{await navigator.clipboard.writeText(W),Pt(!0),ve({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{Pt(!1)},1500)}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},G=R===`network`&&L.length>0,W=G?`http://${L[0]}:${We}`:null,t[24]=L,t[25]=R,t[26]=U,t[27]=W,t[28]=G):(U=t[26],W=t[27],G=t[28]);let Ft=G&&W,It=i&&`animate-headline-reset`,K;t[29]===It?K=t[30]:(K=m(It),t[29]=It,t[30]=K);let q;t[31]===K?q=t[32]:(q=(0,O.jsx)(me,{title:`Appearance`,titleClassName:K,className:`[&>div:first-child]:py-2`,sticky:!1}),t[31]=K,t[32]=q);let J;t[33]===v?J=t[34]:(J=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[v,`%`]}),t[33]=v,t[34]=J);let Y;t[35]===h?Y=t[36]:(Y=[h],t[35]=h,t[36]=Y);let Lt=`${h}%`,X;t[37]!==Ot||t[38]!==y||t[39]!==v||t[40]!==Y||t[41]!==Lt?(X=(0,O.jsx)(Ae,{value:Y,min:v,max:y,step:5,onValueChange:Ot,"aria-label":`Font size`,valueTooltip:Lt}),t[37]=Ot,t[38]=y,t[39]=v,t[40]=Y,t[41]=Lt,t[42]=X):X=t[42];let Z;t[43]===y?Z=t[44]:(Z=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[y,`%`]}),t[43]=y,t[44]=Z);let Rt;t[45]!==J||t[46]!==X||t[47]!==Z?(Rt=(0,O.jsx)(w,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[J,X,Z]})}),t[45]=J,t[46]=X,t[47]=Z,t[48]=Rt):Rt=t[48];let zt;t[49]===b?zt=t[50]:(zt=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[b,`%`]}),t[49]=b,t[50]=zt);let Bt;t[51]===re?Bt=t[52]:(Bt=[re],t[51]=re,t[52]=Bt);let Vt=`${re}%`,Ht;t[53]!==x||t[54]!==b||t[55]!==At||t[56]!==Bt||t[57]!==Vt?(Ht=(0,O.jsx)(Ae,{value:Bt,min:b,max:x,step:5,onValueChange:At,"aria-label":`Panel opacity`,valueTooltip:Vt}),t[53]=x,t[54]=b,t[55]=At,t[56]=Bt,t[57]=Vt,t[58]=Ht):Ht=t[58];let Ut;t[59]===x?Ut=t[60]:(Ut=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[x,`%`]}),t[59]=x,t[60]=Ut);let Wt;t[61]!==zt||t[62]!==Ht||t[63]!==Ut?(Wt=(0,O.jsx)(w,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[zt,Ht,Ut]})}),t[61]=zt,t[62]=Ht,t[63]=Ut,t[64]=Wt):Wt=t[64];let Gt;t[65]===d?Gt=t[66]:(Gt=e=>{(e===`light`||e===`dark`||e===`system`)&&d(e)},t[65]=d,t[66]=Gt);let Kt;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Kt=Be.map(Ye),t[67]=Kt):Kt=t[67];let qt;t[68]!==Gt||t[69]!==c?(qt=(0,O.jsx)(w,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,O.jsx)(le,{type:`single`,value:c,onValueChange:Gt,"aria-label":`Appearance`,className:Ue,children:Kt})}),t[68]=Gt,t[69]=c,t[70]=qt):qt=t[70];let Jt;t[71]===T?Jt=t[72]:(Jt=e=>{(e===`image`||e===`background`||e===`color`)&&T(e)},t[71]=T,t[72]=Jt);let Yt;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(Yt=Ve.map(Je),t[73]=Yt):Yt=t[73];let Xt;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Xt=m(He,`relative overflow-hidden`),t[74]=Xt):Xt=t[74];let Zt;t[75]===C?Zt=t[76]:(Zt=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:C},"aria-hidden":`true`}),t[75]=C,t[76]=Zt);let Qt;t[77]===T?Qt=t[78]:(Qt=()=>{T(`color`)},t[77]=T,t[78]=Qt);let $t;t[79]!==_e||t[80]!==T?($t=e=>{_e(e.target.value),T(`color`)},t[79]=_e,t[80]=T,t[81]=$t):$t=t[81];let en;t[82]!==Qt||t[83]!==$t||t[84]!==C?(en=(0,O.jsx)(`input`,{type:`color`,value:C,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:Qt,onChange:$t}),t[82]=Qt,t[83]=$t,t[84]=C,t[85]=en):en=t[85];let tn;t[86]!==Zt||t[87]!==en?(tn=(0,O.jsxs)(pe,{value:`color`,"aria-label":`Custom color`,className:Xt,children:[Zt,en]}),t[86]=Zt,t[87]=en,t[88]=tn):tn=t[88];let nn;t[89]!==Jt||t[90]!==tn||t[91]!==S?(nn=(0,O.jsx)(w,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,O.jsxs)(le,{type:`single`,value:S,onValueChange:Jt,"aria-label":`Wallpaper`,className:Ue,children:[Yt,tn]})}),t[89]=Jt,t[90]=tn,t[91]=S,t[92]=nn):nn=t[92];let rn;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(rn=m(He,`relative cursor-pointer overflow-hidden`),t[93]=rn):rn=t[93];let an;t[94]===E?an=t[95]:(an=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:E},"aria-hidden":`true`}),t[94]=E,t[95]=an);let on;t[96]===je?on=t[97]:(on=e=>{je(e.target.value)},t[96]=je,t[97]=on);let sn;t[98]!==E||t[99]!==on?(sn=(0,O.jsx)(`input`,{type:`color`,value:E,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:on}),t[98]=E,t[99]=on,t[100]=sn):sn=t[100];let cn;t[101]!==an||t[102]!==sn?(cn=(0,O.jsx)(`div`,{className:Ue,children:(0,O.jsxs)(`label`,{className:rn,children:[an,sn]})}),t[101]=an,t[102]=sn,t[103]=cn):cn=t[103];let ln;t[104]!==k||t[105]!==cn?(ln=(0,O.jsx)(w,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:k,action:cn}),t[104]=k,t[105]=cn,t[106]=ln):ln=t[106];let un;t[107]!==Rt||t[108]!==Wt||t[109]!==qt||t[110]!==nn||t[111]!==ln?(un=(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[Rt,Wt,qt,nn,ln]})}),t[107]=Rt,t[108]=Wt,t[109]=qt,t[110]=nn,t[111]=ln,t[112]=un):un=t[112];let dn;t[113]!==q||t[114]!==un?(dn=(0,O.jsxs)(fe,{className:`shrink-0`,children:[q,un]}),t[113]=q,t[114]=un,t[115]=dn):dn=t[115];let fn;t[116]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,O.jsx)(me,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[116]=fn):fn=t[116];let pn=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${A} turns.`,mn;t[117]===Et?mn=t[118]:(mn=()=>{Et()},t[117]=Et,t[118]=mn);let hn=Ne||Fe,gn;t[119]!==j||t[120]!==wt||t[121]!==mn||t[122]!==hn?(gn=(0,O.jsx)(ge,{type:`number`,min:1,step:1,value:j,onChange:wt,onBlur:mn,disabled:hn,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[119]=j,t[120]=wt,t[121]=mn,t[122]=hn,t[123]=gn):gn=t[123];let _n;t[124]!==pn||t[125]!==gn?(_n=(0,O.jsx)(w,{title:`Maximum Turn Count`,description:pn,controlLayout:`row-end`,action:gn}),t[124]=pn,t[125]=gn,t[126]=_n):_n=t[126];let vn;t[127]===it?vn=t[128]:(vn=e=>{it(e)},t[127]=it,t[128]=vn);let yn=nt||rt,bn;t[129]!==vn||t[130]!==yn||t[131]!==tt?(bn=(0,O.jsx)(w,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:tt,onChange:vn,disabled:yn,ariaLabel:`AI Voice Cleanup`})}),t[129]=vn,t[130]=yn,t[131]=tt,t[132]=bn):bn=t[132];let xn;t[133]===ct?xn=t[134]:(xn=e=>{ct(e)},t[133]=ct,t[134]=xn);let Sn=ot||st,Cn;t[135]!==at||t[136]!==xn||t[137]!==Sn?(Cn=(0,O.jsx)(w,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:at,onChange:xn,disabled:Sn,ariaLabel:`Spend`})}),t[135]=at,t[136]=xn,t[137]=Sn,t[138]=Cn):Cn=t[138];let wn;t[139]!==F||t[140]!==P||t[141]!==Ze||t[142]!==Xe||t[143]!==Ke||t[144]!==N?.granted||t[145]!==N?.isMacOS||t[146]!==N?.message?(wn=N?.isMacOS&&(0,O.jsx)(w,{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:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!P&&N?.granted?(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(p,{className:`h-4 w-4 text-green-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}):P?null:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(g,{className:`h-4 w-4 text-amber-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),(0,O.jsxs)(oe,{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:()=>void Xe(),disabled:P,children:[P?(0,O.jsx)(te,{className:`h-3.5 w-3.5 animate-spin`}):(0,O.jsx)(l,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`})]})]}),children:!P&&!N?.granted?(0,O.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,O.jsx)(`p`,{className:o.bodyMuted,children:N?.message??`Tarsk needs Screen & Audio Recording permission to use browser tools.`}),(0,O.jsx)(oe,{size:`sm`,onClick:()=>void Ze(),disabled:F,className:`w-fit`,children:F?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(te,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ee,{className:`h-4 w-4 mr-2`}),`Open System Settings`]})}),Ke&&(0,O.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[(0,O.jsx)(u,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(`p`,{className:o.body,children:`Failed to open System Settings`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:Ke}),(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Please open it manually:`,` `,(0,O.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]})]})]})]}):null}),t[139]=F,t[140]=P,t[141]=Ze,t[142]=Xe,t[143]=Ke,t[144]=N?.granted,t[145]=N?.isMacOS,t[146]=N?.message,t[147]=wn):wn=t[147];let Tn;t[148]!==B||t[149]!==ft||t[150]!==lt||t[151]!==z||t[152]!==dt||t[153]!==ut||t[154]!==pt?(Tn=ut&&(0,O.jsx)(w,{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:(0,O.jsx)(Se,{value:lt&&z,onChange:e=>{e&&!z||pt(e).catch(qe)},disabled:B||ft,disableOn:!z,ariaLabel:`Sandbox`}),children:!B&&!z?(0,O.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,O.jsx)(g,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:dt||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null}),t[148]=B,t[149]=ft,t[150]=lt,t[151]=z,t[152]=dt,t[153]=ut,t[154]=pt,t[155]=Tn):Tn=t[155];let En;t[156]===vt?En=t[157]:(En=e=>{vt(e)},t[156]=vt,t[157]=En);let Dn=gt||_t,Q;t[158]!==V||t[159]!==En||t[160]!==Dn?(Q=(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsx)(`span`,{className:`inline-flex`,children:(0,O.jsx)(Se,{value:V,onChange:En,disabled:Dn,ariaLabel:`Logging`})})}),t[158]=V,t[159]=En,t[160]=Dn,t[161]=Q):Q=t[161];let On=V&&H?`max-w-sm cursor-pointer`:`max-w-sm`,kn;t[162]!==Mt||t[163]!==V||t[164]!==H?(kn=V&&H?()=>void Mt():void 0,t[162]=Mt,t[163]=V,t[164]=H,t[165]=kn):kn=t[165];let An;t[166]!==V||t[167]!==H?(An=V&&H?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`p`,{children:`Click to copy log file path`}),(0,O.jsx)(`p`,{className:m(o.mono,`mt-1 break-all`),children:H})]}):(0,O.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[166]=V,t[167]=H,t[168]=An):An=t[168];let jn;t[169]!==On||t[170]!==kn||t[171]!==An?(jn=(0,O.jsx)(ae,{className:On,onClick:kn,children:An}),t[169]=On,t[170]=kn,t[171]=An,t[172]=jn):jn=t[172];let Mn;t[173]!==Q||t[174]!==jn?(Mn=(0,O.jsxs)(se,{children:[Q,jn]}),t[173]=Q,t[174]=jn,t[175]=Mn):Mn=t[175];let Nn;t[176]!==ht||t[177]!==mt||t[178]!==V?(Nn=V&&mt&&ht&&(0,O.jsxs)(`p`,{className:`${o.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,O.jsx)(`span`,{className:o.mono,children:ht})]}),t[176]=ht,t[177]=mt,t[178]=V,t[179]=Nn):Nn=t[179];let Pn;t[180]!==Mn||t[181]!==Nn?(Pn=(0,O.jsx)(w,{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:Mn,children:Nn}),t[180]=Mn,t[181]=Nn,t[182]=Pn):Pn=t[182];let Fn=R===`network`,In;t[183]===et?In=t[184]:(In=e=>{et(e?`network`:`local`)},t[183]=et,t[184]=In);let Ln=Qe||$e,Rn;t[185]!==Fn||t[186]!==In||t[187]!==Ln?(Rn=(0,O.jsx)(Se,{value:Fn,onChange:In,disabled:Ln,ariaLabel:`Mobile & Network Access`}),t[185]=Fn,t[186]=In,t[187]=Ln,t[188]=Rn):Rn=t[188];let zn;t[189]!==Nt||t[190]!==U||t[191]!==W||t[192]!==I||t[193]!==G?(zn=G&&W&&(0,O.jsxs)(`div`,{className:`mt-3`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Available on the network at:`,` `,(0,O.jsx)(`span`,{className:o.mono,children:W})]}),(0,O.jsxs)(se,{children:[(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsxs)(`button`,{type:`button`,onClick:()=>void U(),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:[Nt?(0,O.jsx)(s,{className:`h-3.5 w-3.5 text-green-500`}):(0,O.jsx)(f,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,O.jsx)(ae,{children:Nt?`Copied!`:`Copy to clipboard`})]})]}),I&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[189]=Nt,t[190]=U,t[191]=W,t[192]=I,t[193]=G,t[194]=zn):zn=t[194];let Bn;t[195]!==L||t[196]!==R?(Bn=R===`network`&&L.length===0&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[195]=L,t[196]=R,t[197]=Bn):Bn=t[197];let Vn;t[198]!==I||t[199]!==R?(Vn=I&&R===`local`&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[198]=I,t[199]=R,t[200]=Vn):Vn=t[200];let Hn;t[201]!==Rn||t[202]!==zn||t[203]!==Bn||t[204]!==Vn?(Hn=(0,O.jsxs)(w,{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:Rn,children:[zn,Bn,Vn]}),t[201]=Rn,t[202]=zn,t[203]=Bn,t[204]=Vn,t[205]=Hn):Hn=t[205];let Un;t[206]!==_n||t[207]!==bn||t[208]!==Cn||t[209]!==wn||t[210]!==Tn||t[211]!==Pn||t[212]!==Hn?(Un=(0,O.jsxs)(fe,{className:`shrink-0`,children:[fn,(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[_n,bn,Cn,wn,Tn,Pn,Hn]})})]}),t[206]=_n,t[207]=bn,t[208]=Cn,t[209]=wn,t[210]=Tn,t[211]=Pn,t[212]=Hn,t[213]=Un):Un=t[213];let Wn;t[214]!==W||t[215]!==Ft?(Wn=Ft?(0,O.jsxs)(fe,{className:`shrink-0`,children:[(0,O.jsx)(me,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),(0,O.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,O.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,O.jsx)(ne,{value:W,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}):null,t[214]=W,t[215]=Ft,t[216]=Wn):Wn=t[216];let $;t[217]!==dn||t[218]!==Un||t[219]!==Wn?($=(0,O.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[dn,Un,Wn]}),t[217]=dn,t[218]=Un,t[219]=Wn,t[220]=$):$=t[220];let Gn;return t[221]!==bt||t[222]!==$?(Gn=(0,O.jsx)(he,{loading:bt,children:$}),t[221]=bt,t[222]=$,t[223]=Gn):Gn=t[223],Gn}function qe(){}function Je(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Ye(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}export{Ke as default};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,R as n,Rr as r,Sn as i,X as a,b as o,f as ee,i as s,in as c,ki as l,tt as te,xn as u}from"./interactive-BrHVRHmQ.js";import{Ct as d,D as f,Eo as p,Lr as ne,Qt as m,St as h,T as g,Tt as _,Zr as v,_ as y,dt as b,et as x,h as S,m as C,mt as w,p as T,pt as re,rt as ie,st as ae,tr as E,tt as D,ut as oe,v as O,wt as k,x as A}from"./onboarding-KBcwP-kU.js";import{r as j}from"./store-B_cK-gsT.js";import{t as M}from"./use-toast-hxHsVv6a.js";import{n as N}from"./explorer-tab-context-BdjTEbFh.js";import{A as P,Bt as F,C as se,E as ce,Gt as I,Ht as L,Kt as R,Lt as z,M as B,N as V,Nt as H,T as U,U as W,Ut as G,Wt as K,j as le,w as q,zt as ue}from"./index-CJCQ4bTo.js";import{t as de}from"./delete-confirm-dialog-D1zjctrX.js";import{t as fe}from"./use-settings-page-loading-BU2CDnfE.js";import{n as pe}from"./settings-list-CWdsaJKC.js";var J=e(l(),1),Y=t();function me(e){return e?.url?`remote`:`local`}function he(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}function ge({projectPath:e,serverName:t,initialName:n,initialConfig:i,onBack:o}){let{installedServers:s}=ce(e),c=!!t,[l,te]=(0,J.useState)(`local`),[u,d]=(0,J.useState)(``),[f,ne]=(0,J.useState)(``),[m,h]=(0,J.useState)(``),[g,_]=(0,J.useState)(``),[v,b]=(0,J.useState)(`sse`),[w,ae]=(0,J.useState)(``),[E,oe]=(0,J.useState)(``),[k,j]=(0,J.useState)(``),[N,F]=(0,J.useState)([]),[I,L]=(0,J.useState)([]),[R,z]=(0,J.useState)(!1),[H,U]=(0,J.useState)(!1),[G,K]=(0,J.useState)(null),[ue,de]=(0,J.useState)(c),[fe,pe]=(0,J.useState)(``),[ge,_e]=(0,J.useState)(``);function X(e,t){let n=me(t);te(n),d(e),ne(t.command??``),h((t.args??[]).join(`
|
|
2
|
-
`)),_(t.url??``),b(t.transport??`sse`),ae(t.oauth?.clientId??``),oe(t.oauth?.clientSecret??``),j(t.oauth?.callbackPort===void 0?``:String(t.oauth.callbackPort)),F(he(t.env)),L(he(t.headers)),pe(e),_e(JSON.stringify({name:e,type:n,config:t}))}(0,J.useEffect)(()=>{if(c&&t){let e=s.find(e=>e.name===t);e&&(X(e.name,e.config),de(!1))}else i&&X(n??``,i),de(!1)},[s,t,c,i,n]);let ve=(0,J.useCallback)(()=>{F(e=>[...e,{key:``,value:``}])},[]),ye=(0,J.useCallback)(e=>{F(t=>t.filter((t,n)=>n!==e))},[]),Z=(0,J.useCallback)((e,t)=>{F(n=>n.map((n,r)=>r===e?{...n,key:t}:n))},[]),be=(0,J.useCallback)((e,t)=>{F(n=>n.map((n,r)=>r===e?{...n,value:t}:n))},[]),Q=(0,J.useCallback)(()=>{L(e=>[...e,{key:``,value:``}])},[]),$=(0,J.useCallback)(e=>{L(t=>t.filter((t,n)=>n!==e))},[]),xe=(0,J.useCallback)((e,t)=>{L(n=>n.map((n,r)=>r===e?{...n,key:t}:n))},[]),Se=(0,J.useCallback)((e,t)=>{L(n=>n.map((n,r)=>r===e?{...n,value:t}:n))},[]);function Ce(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 we(){let e=Ce(N);if(l===`remote`){let t=Ce(I),n=w.trim(),r=E.trim(),i=k.trim(),a=i?Number.parseInt(i,10):void 0,o=n||r||a?{...n?{clientId:n}:{},...r?{clientSecret:r}:{},...a&&Number.isInteger(a)&&a>0?{callbackPort:a}:{}}:void 0;return{url:g.trim(),transport:v,...t?{headers:t}:{},...e?{env:e}:{},...o&&Object.keys(o).length>0?{oauth:o}:{}}}let t=m.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean);return{command:f.trim(),args:t,...e?{env:e}:{}}}let Te=JSON.stringify({name:u.trim(),type:l,config:we()}),Ee=async()=>{K(null);let t=u.trim();if(!t){K(`Server name is required`);return}if(l===`remote`){if(!g.trim()){K(`Server URL is required`);return}try{new URL(g.trim())}catch{K(`Server URL must be a valid URL`);return}if(k.trim()){let e=Number.parseInt(k.trim(),10);if(!Number.isInteger(e)||e<=0){K(`OAuth callback port must be a positive integer`);return}}if(E.trim()&&!w.trim()){K(`OAuth client ID is required when a client secret is set`);return}}else if(!f.trim()){K(`Command is required`);return}z(!0);try{if(!e)throw Error(`No project path`);await q(e,fe||t,we()),M({title:`Success`,description:c?`MCP server configuration saved`:`MCP server added`}),o()}catch(e){K(e instanceof Error?e.message:`Failed to save server`)}finally{z(!1)}},De=async()=>{if(e){U(!0);try{await se(e,fe),M({title:`Success`,description:`MCP server removed`}),o()}catch(e){K(e instanceof Error?e.message:`Failed to delete server`)}finally{U(!1)}}},Oe=c?Te!==ge:u.trim()!==``||f.trim()!==``||m.trim()!==``||g.trim()!==``||w.trim()!==``||E.trim()!==``||k.trim()!==``||N.length>0||I.length>0;return ue?(0,Y.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,Y.jsx)(`p`,{className:r.bodyMuted,children:`Loading server configuration...`})}):(0,Y.jsx)(re,{children:(0,Y.jsxs)(x,{children:[(0,Y.jsx)(ie,{title:c?u:`Add MCP Server`,description:c?`Edit MCP Server configuration.`:`Configure a new MCP Server.`,sticky:!0,className:`pr-10`}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(D,{title:`Server name`,description:c?`Server name cannot be changed`:void 0,controlLayout:`stack`,className:`pt-6`,children:(0,Y.jsx)(A,{id:`server-name`,placeholder:`e.g. filesystem`,value:u,onChange:e=>d(e.target.value),disabled:c})}),(0,Y.jsxs)(P,{value:l,onValueChange:e=>te(e),className:`w-full pt-6`,children:[(0,Y.jsxs)(B,{className:`grid w-full grid-cols-2`,children:[(0,Y.jsx)(V,{value:`local`,children:`Local (stdio)`}),(0,Y.jsx)(V,{value:`remote`,children:`Remote (HTTP/SSE)`})]}),(0,Y.jsxs)(le,{value:`local`,children:[(0,Y.jsx)(D,{title:`Command`,controlLayout:`stack`,className:`pt-6`,children:(0,Y.jsx)(A,{id:`server-command`,placeholder:`e.g. npx`,value:f,onChange:e=>ne(e.target.value)})}),(0,Y.jsx)(D,{title:`Arguments`,description:`One argument per line`,controlLayout:`stack`,className:`pt-6`,children:(0,Y.jsx)(W,{id:`server-args`,placeholder:`-y
|
|
4
|
-
@modelcontextprotocol/server-filesystem
|
|
5
|
-
/path/to/dir`,value:m,onChange:e=>h(e.target.value),className:`font-mono min-h-[80px] resize-none`})})]}),(0,Y.jsxs)(le,{value:`remote`,children:[(0,Y.jsx)(D,{title:`Server URL`,description:`Paste the MCP endpoint URL from your provider.`,controlLayout:`stack`,className:`pt-6`,children:(0,Y.jsx)(A,{id:`server-url`,placeholder:`https://example.com/mcp`,value:g,onChange:e=>_(e.target.value),className:`font-mono`})}),(0,Y.jsx)(D,{title:`Transport`,controlLayout:`stack`,className:`pt-6`,children:(0,Y.jsxs)(T,{value:v,onValueChange:e=>b(e),children:[(0,Y.jsx)(y,{children:(0,Y.jsx)(O,{})}),(0,Y.jsxs)(C,{children:[(0,Y.jsx)(S,{value:`sse`,children:`SSE (Server-Sent Events)`}),(0,Y.jsx)(S,{value:`streamableHttp`,children:`Streamable HTTP`})]})]})}),(0,Y.jsx)(D,{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,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(A,{id:`oauth-client-id`,placeholder:`Client ID`,value:w,onChange:e=>ae(e.target.value),className:`font-mono`}),(0,Y.jsx)(A,{id:`oauth-client-secret`,placeholder:`Client secret`,type:`password`,value:E,onChange:e=>oe(e.target.value),className:`font-mono`}),(0,Y.jsx)(A,{id:`oauth-callback-port`,placeholder:`Callback port (e.g. 3118)`,value:k,onChange:e=>j(e.target.value),className:`font-mono`})]})}),(0,Y.jsx)(D,{title:`HTTP headers`,description:`Optional headers for authentication.`,controlLayout:`stack`,className:`pt-6`,action:(0,Y.jsxs)(p,{variant:`ghost`,size:`sm`,onClick:Q,children:[(0,Y.jsx)(a,{className:`h-3 w-3 mr-1`}),`Add header`]}),children:I.length===0?(0,Y.jsx)(`p`,{className:r.caption,children:`No headers configured`}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-2`,children:I.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(A,{placeholder:`Authorization`,value:e.key,onChange:e=>xe(t,e.target.value),className:`font-mono w-[35%]`}),(0,Y.jsx)(A,{placeholder:`Bearer ...`,value:e.value,onChange:e=>Se(t,e.target.value),className:`font-mono flex-1`}),(0,Y.jsx)(p,{variant:`ghost`,size:`icon`,onClick:()=>$(t),className:`h-9 w-9 flex-shrink-0`,children:(0,Y.jsx)(ee,{className:`h-3.5 w-3.5`})})]},t))})})]})]}),(0,Y.jsx)(D,{title:`Environment variables`,description:l===`remote`?`Optional metadata for local tooling.`:void 0,controlLayout:`stack`,className:`pt-6`,action:(0,Y.jsxs)(p,{variant:`ghost`,size:`sm`,onClick:ve,children:[(0,Y.jsx)(a,{className:`h-3 w-3 mr-1`}),`Add variable`]}),children:N.length===0?(0,Y.jsx)(`p`,{className:r.caption,children:`No environment variables configured`}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-2`,children:N.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(A,{placeholder:`KEY`,value:e.key,onChange:e=>Z(t,e.target.value),className:`font-mono w-[35%]`}),(0,Y.jsx)(A,{placeholder:`value`,value:e.value,onChange:e=>be(t,e.target.value),className:`font-mono flex-1`}),(0,Y.jsx)(p,{variant:`ghost`,size:`icon`,onClick:()=>ye(t),className:`h-9 w-9 flex-shrink-0`,children:(0,Y.jsx)(ee,{className:`h-3.5 w-3.5`})})]},t))})}),G&&(0,Y.jsx)(`p`,{className:r.error,children:G}),(0,Y.jsxs)(`div`,{className:`mt-6 border-t pt-4 flex items-center justify-between`,children:[c&&(0,Y.jsx)(p,{variant:`destructive`,onClick:De,disabled:H||R,children:H?`Removing...`:`Remove`}),!c&&(0,Y.jsx)(`div`,{}),(0,Y.jsx)(p,{onClick:Ee,disabled:R||H||!Oe,children:R?c?`Saving...`:`Adding...`:c?`Save`:`Add`})]})]})]})})}var _e=`https://tarsk.io/skills/mcp/`;function X(e){return e.name.toLowerCase().replace(/\s+/g,`-`)}function ve(e){return e.url?e.url:`${e.command??``} ${e.args?.join(` `)??``}`.trim()}function ye(e){return typeof e.url==`string`&&e.url.trim().length>0}function Z(){let e=j(e=>e.selectedProjectId),t=j(e=>e.projects).find(t=>t.projectId===e)?.projectPath,{installedServers:a,loadingConfig:ee,loadInstalledServers:l}=ce(t),{popularServers:y,loadingPopular:x}=U(),{openChatDockPanel:S}=H(),{setPendingExplorerPath:C,triggerExplorerRefresh:T}=N(),[re,D]=(0,J.useState)(!1),[O,A]=(0,J.useState)(null),[P,B]=(0,J.useState)(null),[V,W]=(0,J.useState)(null),[le,me]=(0,J.useState)(!1),[he,Z]=(0,J.useState)({}),[be,Q]=(0,J.useState)(null),$=(0,J.useCallback)(async()=>{if(!t){Z({});return}let e=a.filter(e=>ye(e.config));if(e.length===0){Z({});return}let n=await Promise.all(e.map(async e=>{try{let n=await E(t,e.name);return[e.name,n.authorized]}catch{return[e.name,!1]}}));Z(Object.fromEntries(n))},[t,a]);(0,J.useEffect)(()=>{$()},[$]);let xe=(0,J.useCallback)(async e=>{if(t){me(!0);try{await se(t,e),await l(),T(),M({title:`MCP server removed`,description:e}),W(null)}catch(e){M({title:`Error`,description:e instanceof Error?e.message:`Failed to remove server`,variant:`destructive`})}finally{me(!1)}}},[t,l,T]),Se=(0,J.useCallback)(async e=>{if(t){Q(e);try{await m(t,e),await $(),M({title:`Signed in`,description:`Connected to ${e}. Start a new chat to use its tools.`})}catch(e){M({title:`Sign in failed`,description:e instanceof Error?e.message:`OAuth authorization failed`,variant:`destructive`})}finally{Q(null)}}},[t,$]),Ce=(0,J.useCallback)(async e=>{if(t){Q(e);try{await v(t,e),await $(),M({title:`Signed out`,description:e})}catch(e){M({title:`Sign out failed`,description:e instanceof Error?e.message:`Failed to revoke OAuth credentials`,variant:`destructive`})}finally{Q(null)}}},[t,$]),we=(0,J.useCallback)(()=>{C(`.agents/mcp.json`),S(`explorer`)},[C,S]),Te=(0,J.useCallback)(async e=>{if(!t)return;let n=X(e);if(!a.some(t=>t.name===n||t.name===e.id)){if(e.url!==void 0){if(!e.url.trim()){A({name:n,config:{url:``,transport:e.transport??`sse`,...Object.keys(e.env??{}).length>0?{env:e.env}:{}}}),D(!0);return}try{await q(t,n,{url:e.url,transport:e.transport??`sse`,...Object.keys(e.env??{}).length>0?{env:e.env}:{}}),await l(),T(),M({title:`MCP server installed`,description:e.name})}catch(e){M({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}return}if(!e.command){M({title:`Error`,description:`This server is missing install configuration.`,variant:`destructive`});return}try{await q(t,n,{command:e.command,args:e.args??[],...Object.keys(e.env??{}).length>0?{env:e.env}:{}}),await l(),T(),M({title:`MCP server installed`,description:e.name})}catch(e){M({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}}},[t,a,l,T]),Ee=fe(e,[ee,x]);return e?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ae,{loading:Ee,children:(0,Y.jsxs)(w,{className:`shrink-0`,children:[(0,Y.jsx)(ie,{title:`Installed MCP Servers`,description:`MCP servers configured for this project.`,action:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(p,{variant:`ghost`,onClick:we,children:`Config`}),(0,Y.jsxs)(z,{children:[(0,Y.jsx)(R,{asChild:!0,children:(0,Y.jsxs)(p,{className:`gap-1`,children:[`Add Server`,(0,Y.jsx)(u,{className:`h-4 w-4 opacity-70`})]})}),(0,Y.jsxs)(ue,{align:`end`,className:`w-56`,children:[(0,Y.jsxs)(F,{className:s(r.body,`gap-2`),onSelect:()=>D(!0),children:[(0,Y.jsx)(te,{className:`h-4 w-4 shrink-0`}),`Manual Entry`]}),(0,Y.jsxs)(G,{children:[(0,Y.jsxs)(I,{className:s(r.body,`gap-2`),children:[(0,Y.jsx)(n,{className:`h-4 w-4 shrink-0`}),`Popular`]}),(0,Y.jsx)(K,{className:`w-80 max-h-80 overflow-y-auto`,children:x?(0,Y.jsx)(F,{disabled:!0,className:r.bodyMuted,children:`Loading…`}):y.length===0?(0,Y.jsx)(F,{disabled:!0,className:r.bodyMuted,children:`No available servers`}):[...y].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>{let t=X(e),n=a.some(n=>n.name===t||n.name===e.id);return(0,Y.jsx)(k,{children:(0,Y.jsxs)(h,{children:[(0,Y.jsx)(_,{asChild:!0,children:(0,Y.jsxs)(F,{className:s(r.body,`gap-2`,n&&`opacity-50 cursor-not-allowed`),onSelect:()=>{n||Te(e)},children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),n&&(0,Y.jsx)(i,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,Y.jsx)(d,{side:`right`,className:`max-w-64`,children:e.description})]})},e.id)})})]}),(0,Y.jsx)(L,{}),(0,Y.jsxs)(F,{className:s(r.body,`gap-2`),onSelect:()=>void ne(_e),children:[(0,Y.jsx)(c,{className:`h-4 w-4 shrink-0`}),`Marketplace`]})]})]})]}),sticky:!1}),(0,Y.jsx)(b,{className:`pt-6`,children:a.length===0?(0,Y.jsx)(pe,{icon:n,title:`Connect your agent to tools, APIs, and data sources`,bordered:!1}):(0,Y.jsx)(`div`,{className:`divide-y divide-table-border`,children:a.map(e=>{let t=ye(e.config),n=he[e.name]===!0,i=be===e.name;return(0,Y.jsxs)(`div`,{className:`group grid min-h-13 grid-cols-[minmax(0,1fr)_auto_1.75rem] items-center gap-3 px-3 py-3 hover:bg-muted/30`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>B(e.name),className:`min-w-0 text-left`,children:[(0,Y.jsx)(`div`,{className:s(r.body,`truncate`),children:e.name}),(0,Y.jsx)(`div`,{className:s(r.compact,`truncate text-muted-foreground font-mono`),children:ve(e.config)})]}),(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:t&&(0,Y.jsx)(p,{type:`button`,variant:n?`outline`:`secondary`,size:`sm`,disabled:i,onClick:()=>{n?Ce(e.name):Se(e.name)},children:i?`Working…`:n?`Sign out`:`Sign in`})}),(0,Y.jsx)(k,{children:(0,Y.jsxs)(h,{children:[(0,Y.jsx)(_,{asChild:!0,children:(0,Y.jsx)(p,{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:()=>W(e.name),"aria-label":`Delete ${e.name}`,children:(0,Y.jsx)(o,{className:`h-4 w-4`})})}),(0,Y.jsx)(d,{children:`Remove this MCP server from the project`})]})})]},e.name)})})})]})}),(0,Y.jsx)(g,{open:re,onOpenChange:e=>{D(e),e||A(null)},children:(0,Y.jsx)(f,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,Y.jsx)(ge,{projectPath:t,initialName:O?.name,initialConfig:O?.config,onBack:()=>{D(!1),A(null),l(),T()}})})}),(0,Y.jsx)(g,{open:P!==null,onOpenChange:e=>{e||B(null)},children:(0,Y.jsx)(f,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,Y.jsx)(ge,{projectPath:t,serverName:P??void 0,onBack:()=>{B(null),l(),T()}})})}),(0,Y.jsx)(de,{open:V!==null,onOpenChange:e=>!e&&W(null),title:`Delete MCP Server`,description:`Are you sure you want to delete the server "${V}"? This action cannot be undone.`,onConfirm:()=>{V&&xe(V)},confirming:le})]}):(0,Y.jsx)(oe,{children:`Select a project to manage MCP servers.`})}export{Z as SettingsMCPServersView,Z as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,a as i,i as a,ki as o}from"./interactive-BrHVRHmQ.js";import{An as s,Eo as c,Nn as l,On as u,_r as d,a as f,bt as p,d as m,dt as h,jn as g,kn as _,mt as v,nt as y,o as b,r as x,rt as ee,s as S,st as te,ut as C,w as ne,wt as w}from"./onboarding-KBcwP-kU.js";import{J as T,n as E}from"./store-B_cK-gsT.js";import{n as D,t as O}from"./use-suspense-resource-CExc4Svq.js";import{A as k,j as A}from"./index-CJCQ4bTo.js";import{a as j,i as M,n as N,r as P,t as F}from"./table-Cb2C1rQy.js";import{n as I,t as re}from"./commit-method-fields-o-xw2faT.js";import{t as L}from"./async-error-boundary-CM6LU7nT.js";import{o as ie,s as R}from"./settings-list-CWdsaJKC.js";import{t as ae}from"./use-deferred-search-0sV7mSzX.js";import{n as oe,r as z,t as B}from"./model-list-controls-2JtkzWsp.js";var V=e(o(),1),H=n();function U(e){return`settings-models:coding:${e}`}function W(e){return`settings-models:image:${e}`}async function G(){let e=(await d()).filter(e=>e.apiKey),t=await l(`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 K(e){let t=e.filter(e=>e.name.toLowerCase()===`openrouter`),n=await l(`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 q=t(),J=`table-fixed`,se=`h-9`,ce=a(r.body,`py-1.5`),le=`w-10 py-1.5`,ue=`w-24 py-1.5 text-right`,de=a(r.body,`w-20 py-1.5 text-right text-muted-foreground tabular-nums`),fe=a(r.body,`w-48 py-1.5 text-right text-muted-foreground whitespace-nowrap tabular-nums`),pe=`h-9 w-24 bg-transparent py-2 text-right`,me=`h-9 w-20 bg-transparent py-2 text-right`,he=`h-9 w-48 bg-transparent py-2 text-right`;function ge(e){return!e||(e.prompt??0)===0&&(e.completion??0)===0?``:`$${i(e.prompt??0)} in | $${i(e.completion??0)} out`}function Y(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,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(`w-full caption-bottom`,J,r.body),t[0]=i):i=t[0];let o,s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,q.jsx)(M,{className:`h-9 w-10 bg-transparent py-2`}),s=(0,q.jsx)(M,{className:`h-9 bg-transparent py-2`,children:`Model`}),t[1]=o,t[2]=s):(o=t[1],s=t[2]);let c;t[3]===n?c=t[4]:(c=n?(0,q.jsx)(M,{className:pe,children:`Intelligence`}):null,t[3]=n,t[4]=c);let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsx)(M,{className:me,children:`TPS`}),u=(0,q.jsx)(M,{className:he,children:`Pricing`}),t[5]=l,t[6]=u):(l=t[5],u=t[6]);let d;return t[7]===c?d=t[8]:(d=(0,q.jsx)(`table`,{className:i,children:(0,q.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,q.jsxs)(`tr`,{children:[o,s,c,l,u]})})}),t[7]=c,t[8]=d),d}function Z(e){let t=(0,H.c)(15),{models:n,enabledIds:i,checkboxIdPrefix:o,showIntelligence:s,getModelDisplayName:c,onToggleModel:l}=e,u;if(t[0]!==o||t[1]!==i||t[2]!==c||t[3]!==n||t[4]!==l||t[5]!==s){let e;t[7]!==o||t[8]!==i||t[9]!==c||t[10]!==l||t[11]!==s?(e=e=>{let t=`${o}${e.id}`;return(0,q.jsxs)(j,{className:se,children:[(0,q.jsx)(P,{className:le,children:(0,q.jsx)(S,{id:t,checked:i.has(e.id),onCheckedChange:()=>l(e.id),className:`mt-0`})}),(0,q.jsx)(P,{className:ce,children:(0,q.jsx)(`label`,{htmlFor:t,className:a(r.body,`cursor-pointer truncate peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),children:c(e)})}),s?(0,q.jsx)(P,{className:ue,children:(0,q.jsx)(`div`,{className:`flex justify-end`,children:(0,q.jsx)(z,{codingIndex:e.coding_index,modelName:c(e)})})}):null,(0,q.jsx)(P,{className:de,children:Y(e.avgTPS)}),(0,q.jsx)(P,{className:fe,children:ge(e.pricing)})]},e.id)},t[7]=o,t[8]=i,t[9]=c,t[10]=l,t[11]=s,t[12]=e):e=t[12],u=n.map(e),t[0]=o,t[1]=i,t[2]=c,t[3]=n,t[4]=l,t[5]=s,t[6]=u}else u=t[6];let d;return t[13]===u?d=t[14]:(d=(0,q.jsx)(F,{className:J,children:(0,q.jsx)(N,{children:u})}),t[13]=u,t[14]=d),d}function Q(e){let t=(0,H.c)(25),{providerName:n,providerSlug:i,action:o,tableHeader:s,children:c}=e,l;t[0]!==n||t[1]!==i?(l=(0,q.jsx)(m,{provider:{name:n,slug:i}}),t[0]=n,t[1]=i,t[2]=l):l=t[2];let u;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(r.pageTitle,`truncate`),t[3]=u):u=t[3];let d;t[4]===n?d=t[5]:(d=(0,q.jsx)(`h2`,{className:u,children:n}),t[4]=n,t[5]=d);let f;t[6]!==l||t[7]!==d?(f=(0,q.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]===o?p=t[10]:(p=o?(0,q.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag shrink-0`,children:o}):null,t[9]=o,t[10]=p);let h;t[11]!==f||t[12]!==p?(h=(0,q.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]=h):h=t[13];let g;t[14]===s?g=t[15]:(g=s?(0,q.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag px-6 pb-2 pt-4`,children:s}):null,t[14]=s,t[15]=g);let _=s?`pt-0`:`pt-6`,y;t[16]===_?y=t[17]:(y=a(`px-6 pb-6`,_),t[16]=_,t[17]=y);let b;t[18]!==c||t[19]!==y?(b=(0,q.jsx)(`div`,{className:y,children:c}),t[18]=c,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==h||t[23]!==g?(x=(0,q.jsxs)(v,{className:`shrink-0`,children:[h,g,b]}),t[21]=b,t[22]=h,t[23]=g,t[24]=x):x=t[24],x}function _e({providers:e,globalSearchQuery:t,modelSortBy:n,filterAndSortModels:r,getModelDisplayName:i,onSaveStatus:a}){let o=E(),c=O(W(0),()=>K(e)),[l]=(0,V.useState)(c.allImageModels),[d,f]=(0,V.useState)(c.enabledImageModelIds);async function p(e,t){try{d[e]?.has(t)?(await u(e,t),f(n=>{let r=new Set(n[e]??[]);return r.delete(t),{...n,[e]:r}})):(await s(e,t),f(n=>({...n,[e]:new Set([...n[e]||[],t])}))),o({type:T.ConfigUpdated}),a(`Model preferences saved successfully`)}catch(e){a(e instanceof Error?e.message:`Failed to save model changes`)}}async function m(e,t){let n=l[e],r=d[e];if(n)for(let i of n)r?.has(i.id)!==t&&await p(e,i.id)}return(0,q.jsx)(q.Fragment,{children:e.filter(e=>e.name.toLowerCase()===`openrouter`).map(e=>{let a=l[e.slug]||[],o=d[e.slug]||new Set,s=r(a,o,n);return s.length===0&&t?null:(0,q.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:s.length>0?(0,q.jsx)(B,{id:`select-all-image-${e.slug}`,checked:s.every(e=>o.has(e.id)),onChange:t=>void m(e.slug,t)}):null,tableHeader:s.length>0?(0,q.jsx)(X,{showIntelligence:!1}):void 0,children:s.length===0?(0,q.jsx)(R,{message:t?`No models matching your search.`:`No image models available for this provider.`}):(0,q.jsx)(w,{children:(0,q.jsx)(Z,{models:s,enabledIds:o,checkboxIdPrefix:`image-`,showIntelligence:!1,getModelDisplayName:i,onToggleModel:t=>void p(e.slug,t)})})},e.slug)})})}function ve({loadVersion:e}){let t=E(),n=O(U(e),()=>G()),i=n.providers,[o]=(0,V.useState)(n.allModels),[s,c]=(0,V.useState)(n.enabledModelIds),[l,u]=(0,V.useState)(`coding`),{query:d,setQuery:m,deferredQuery:S}=ae(),[D,j]=(0,V.useState)(`alphabetical`),[M,N]=(0,V.useState)(``),P=e=>ne(e.id),F=async(e,n)=>{try{s[e]?.has(n)?(await _(e,n),c(t=>{let r=new Set(t[e]??[]);return r.delete(n),{...t,[e]:r}})):(await g(e,n),c(t=>({...t,[e]:new Set([...t[e]||[],n])}))),t({type:T.ConfigUpdated}),N(`Model preferences saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save model changes`)}},L=async(e,t)=>{let n=o[e],r=s[e];if(n)for(let i of n)r?.has(i.id)!==t&&await F(e,i.id)},z=(e,t,n)=>x({models:e,query:S,sortBy:n,getDisplayName:P,getPriority:e=>+!t.has(e.id)});if(i.length===0)return(0,q.jsx)(C,{title:`No providers configured`,children:`Configure a provider with an API key to view available models.`});let H=i.some(e=>e.name.toLowerCase()===`openrouter`);return(0,q.jsx)(te,{loading:!1,children:(0,q.jsxs)(k,{value:l,className:`flex flex-col gap-2.5`,children:[(0,q.jsxs)(v,{className:`shrink-0`,children:[(0,q.jsx)(ee,{title:`Models`,description:`View and manage available models from your configured providers.`,action:(0,q.jsx)(ie,{placeholder:`Search`,value:d,onChange:m,className:`mb-0 w-64`}),sticky:!1}),(0,q.jsx)(h,{className:`max-w-none pt-6`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[H?(0,q.jsxs)(f,{type:`single`,value:l,onValueChange:e=>{(e===`coding`||e===`image`)&&(u(e),m(``))},"aria-label":`Model type`,className:a(re,`shrink-0`),children:[(0,q.jsx)(b,{value:`coding`,"aria-label":`Coding`,className:a(r.body,I),children:`Coding`}),(0,q.jsx)(b,{value:`image`,"aria-label":`Image`,className:a(r.body,I),children:`Image`})]}):null,M?(0,q.jsx)(y,{variant:M.includes(`error`)||M.includes(`Failed`)?`error`:`success`,className:`mb-0 shrink-0`,children:M}):null,(0,q.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,q.jsx)(oe,{sortBy:D,showCodingIndex:l===`coding`,showIntelligenceByPrice:l===`coding`,onSortByChange:j})})]})})]}),(0,q.jsx)(A,{value:`coding`,className:`mt-0 flex flex-col gap-2.5`,children:i.map(e=>{let t=o[e.slug]||[],n=s[e.slug]||new Set,r=z(t,n,D);return r.length===0&&d?null:(0,q.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:r.length>0?(0,q.jsx)(B,{id:`select-all-${e.slug}`,checked:r.every(e=>n.has(e.id)),onChange:t=>void L(e.slug,t)}):null,tableHeader:r.length>0?(0,q.jsx)(X,{showIntelligence:D===`coding-index`||D===`intelligence-by-price`}):void 0,children:r.length===0?(0,q.jsx)(R,{message:d?`No models matching your search.`:`No models available for this provider.`}):(0,q.jsx)(w,{children:(0,q.jsx)(Z,{models:r,enabledIds:n,checkboxIdPrefix:``,showIntelligence:D===`coding-index`||D===`intelligence-by-price`,getModelDisplayName:P,onToggleModel:t=>void F(e.slug,t)})})},e.slug)})}),(0,q.jsx)(A,{value:`image`,className:`mt-0 flex flex-col gap-2.5`,children:l===`image`?(0,q.jsx)(V.Suspense,{fallback:(0,q.jsx)(p,{className:`py-12`,size:`sm`}),children:(0,q.jsx)(_e,{providers:i,globalSearchQuery:d,modelSortBy:D,filterAndSortModels:z,getModelDisplayName:P,onSaveStatus:e=>{N(e),e.includes(`Failed`)||setTimeout(()=>N(``),3e3)}})}):null})]})})}function $(){let e=(0,H.c)(8),[t,n]=(0,V.useState)(0),r;e[0]===t?r=e[1]:(r=function(){D(U(t)),n(be)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(p,{label:`Loading models...`,size:`lg`}),e[2]=a):a=e[2];let o;e[3]===t?o=e[4]:(o=(0,q.jsx)(V.Suspense,{fallback:a,children:(0,q.jsx)(ve,{loadVersion:t},t)}),e[3]=t,e[4]=o);let s;return e[5]!==i||e[6]!==o?(s=(0,q.jsx)(`div`,{className:`h-full min-h-0`,children:(0,q.jsx)(L,{fallbackTitle:`Failed to load models`,onRetry:i,renderFallback:ye,children:o})}),e[5]=i,e[6]=o,e[7]=s):s=e[7],s}function ye(e,t){return(0,q.jsx)(C,{title:`Failed to load models`,action:(0,q.jsx)(c,{variant:`outline`,onClick:t,children:`Retry`}),children:e.message})}function be(e){return e+1}export{$ as SettingsModelsView,$ as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,Ct as n,Di as r,Oi as i,Rr as a,Vt as o,X as s,c,et as l,i as u,in as d,ki as f,m as p,rr as m,xn as h,yt as g}from"./interactive-BrHVRHmQ.js";import{$a as _,A as v,Bi as y,Ct as b,D as x,Eo as S,Ga as C,Ia as w,Ii as T,La as E,Lr as D,Mi as O,Ni as k,O as A,Ri as j,So as M,St as N,T as P,Tt as F,Ui as I,Vi as L,Wi as R,_ as z,b as B,bt as V,dt as ee,et as te,f as H,gn as ne,h as U,j as W,ji as re,k as G,m as ie,mt as K,no as ae,nt as oe,p as se,pt as ce,rt as q,si as le,st as ue,tt as de,ut as fe,v as pe,wt as me,x as J,yo as he,zi as ge}from"./onboarding-KBcwP-kU.js";import{r as _e}from"./store-B_cK-gsT.js";import{t as Y}from"./use-toast-hxHsVv6a.js";import{a as ve,c as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./alert-dialog-CLYxQdrK.js";import{Bt as X,Ht as Ee,It as De,Kt as Oe,Lt as ke,U as Ae,a as je,zt as Me}from"./index-CJCQ4bTo.js";import{t as Ne}from"./delete-confirm-dialog-D1zjctrX.js";import{t as Pe}from"./use-settings-page-loading-BU2CDnfE.js";import{a as Fe,i as Ie,o as Le,r as Re}from"./settings-list-CWdsaJKC.js";import{t as ze}from"./use-deferred-search-0sV7mSzX.js";import{a as Be,i as Ve,n as He,r as Ue,t as We}from"./mcp-server-card-DPakHrG9.js";import{t as Ge}from"./use-installed-ai-files-GpG9ZL8U.js";var Z=i(),Q=e(f(),1),$=r();function Ke({threadId:e,onSkillCreated:t}){let[n,r]=(0,Q.useState)(``),[i,o]=(0,Q.useState)(``),[s,c]=(0,Q.useState)(!1),l=Ve(n),d=Ue(l),f=async()=>{if(!(!d||!i.trim()||!e)){c(!0);try{let n=await ne(e,l,i.trim());Y({title:`Skill created`,description:`Skill '${l}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){Y({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{c(!1)}}};return e?(0,$.jsx)(ce,{children:(0,$.jsxs)(te,{children:[(0,$.jsx)(q,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(de,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,$.jsx)(J,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,$.jsxs)(`p`,{className:u(a.caption,`mt-2`),children:[`Folder name: `,(0,$.jsx)(`span`,{className:`font-mono`,children:l||`...`})]}):null]}),(0,$.jsx)(de,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(Ae,{id:`skillDescription`,value:i,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:s})}),(0,$.jsx)(Be,{onContinue:()=>void f(),disabled:!d||!i.trim(),creating:s})]})]})}):(0,$.jsx)(fe,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}function qe(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 Je(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function Ye(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function Xe(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function Ze({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:i}){let[s,c]=(0,Q.useState)([]),[l,d]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(null),[C,w]=(0,Q.useState)(!1),T=Xe(n,r),E=!!T;(0,Q.useEffect)(()=>{if(!e||!n)return;let t=n,i=Xe(t,r),a=!1;async function o(){h(!0),b(null),c([]),d(null),p(``);try{if(i){let e=await k(i,t.id);if(a)return;c(e.files),d(Ye(e.files))}else{if(a)return;c([`SKILL.md`]),d(`SKILL.md`),p(qe(t))}}catch(e){if(a)return;b(e instanceof Error?e.message:`Failed to load skill files`)}finally{a||h(!1)}}return o(),()=>{a=!0}},[e,n,r]),(0,Q.useEffect)(()=>{if(!e||!n||!l||!E||!T)return;let t=n,r=l,i=!1;async function a(){_(!0),b(null);try{let e=await O(T,t.id,r);if(i)return;p(e.content)}catch(e){if(i)return;b(e instanceof Error?e.message:`Failed to load file`),p(``)}finally{i||_(!1)}}return a(),()=>{i=!0}},[e,n,l,E,T]);let D=(0,Q.useCallback)(async()=>{if(!n)return;let e=T?{...n,sourceId:T}:n;w(!0);try{await i(e),t(!1)}finally{w(!1)}},[n,T,i,t]),j=m||E&&g,M=l?Je(l):!1,N=(0,Q.useMemo)(()=>s.map(e=>(0,$.jsxs)(H,{selected:e===l,onClick:()=>d(e),className:`gap-2 cursor-pointer`,children:[(0,$.jsx)(o,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:u(a.caption,`truncate`),children:e})]},e)),[s,l]);return(0,$.jsx)(P,{open:e,onOpenChange:t,children:(0,$.jsxs)(x,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,$.jsxs)(v,{className:`border-b border-border px-6 py-4`,children:[(0,$.jsx)(W,{children:n?.name??`Review skill`}),n?.description?(0,$.jsx)(A,{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:u(a.labelMuted,`px-3 py-2`),children:`Files`}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:m?(0,$.jsx)(V,{className:`py-8`,label:`Loading files...`}):s.length===0?(0,$.jsx)(`p`,{className:u(a.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):N})]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:y?(0,$.jsx)(`p`,{className:u(a.body,`text-destructive`),children:y}):j?(0,$.jsx)(V,{className:`py-12`,label:`Loading preview...`}):M?(0,$.jsx)(De,{content:f,enableMermaid:!1}):(0,$.jsx)(`pre`,{className:u(a.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:f})})]}),(0,$.jsxs)(G,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,$.jsx)(S,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,$.jsx)(S,{type:`button`,onClick:()=>void D(),disabled:C||!n,children:C?`Installing...`:`Install`})]})]})})}var Qe=new Map;function $e(e){let t=Qe.get(e);if(t)return t;let n=j(e).finally(()=>{Qe.delete(e)});return Qe.set(e,n),n}function et(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function tt(){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)(_),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 ge())}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=C();if(e.length>0)try{await y(e),w()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,Q.useEffect)(h,g);let v;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{a(e),he(e)},e[5]=v):v=e[5];let b=v,x;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{r(t=>[...t.filter(t=>t.id!==e.id),e].sort(rt)),b(e.id)},e[6]=x):x=e[6];let S=x,T;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>{r(t=>t.map(t=>t.id===e.id?e:t).sort(nt)),E(e.id)},e[7]=T):T=e[7];let D=T,O;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>{r(t=>t.filter(t=>t.id!==e)),E(e),a(t=>t===e?(he(`default`),`default`):t)},e[8]=O):O=e[8];let k=O,A,j;e[9]===i?(A=e[10],j=e[11]):(j=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=ae(i);e?.skills?(c(et(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),$e(i).then(e=>{if(t)return;let n=et(i,e);c(n),M(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),Y({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},A=[i],e[9]=i,e[10]=A,e[11]=j),(0,Q.useEffect)(j,A);let N;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(N={sources:n,selectedSourceId:i,setSelectedSourceId:b,addSource:S,updateSource:D,removeSource:k,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]=N):N=e[17],N}function nt(e,t){return e.title.localeCompare(t.title)}function rt(e,t){return e.title.localeCompare(t.title)}function it({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:i,onSourceDeleted:o}){let[s,c]=(0,Q.useState)(``),[l,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(!1),[_,y]=(0,Q.useState)(!1),[b,C]=(0,Q.useState)(!1),w=n!=null;function T(){c(``),d(``),p(null),h(!1),y(!1),C(!1)}function E(e){e||T(),t(e)}(0,Q.useEffect)(()=>{if(e){if(n){c(n.title),d(n.url),p(null);return}c(``),d(``),p(null)}},[e,n]);async function D(){let e=s.trim(),t=l.trim();if(!e||!t){p(`Title and URL are required.`);return}h(!0),p(null);try{if(w&&n){let r=await I(n.id,e,t);i?.(r.source)}else r((await R(e,t)).source);E(!1)}catch(e){p(e instanceof Error?e.message:`Failed to verify skill source`)}finally{h(!1)}}async function O(){if(n){y(!0),p(null);try{await re(n.id),o?.(n.id),C(!1),E(!1)}catch(e){p(e instanceof Error?e.message:`Failed to delete skill source`),C(!1)}finally{y(!1)}}}return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{open:e,onOpenChange:E,children:(0,$.jsxs)(x,{className:`sm:max-w-lg`,children:[(0,$.jsxs)(v,{children:[(0,$.jsx)(W,{children:w?`Edit Skill Source`:`Add Skill Source`}),(0,$.jsx)(A,{children:w?`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)(B,{htmlFor:`skill-source-title`,children:`Title`}),(0,$.jsx)(J,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>c(e.target.value),disabled:m||_,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[(0,$.jsx)(B,{htmlFor:`skill-source-url`,children:`URL`}),(0,$.jsx)(J,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:l,onChange:e=>d(e.target.value),disabled:m||_})]}),f?(0,$.jsx)(`p`,{className:u(a.caption,`text-destructive`),children:f}):null]}),(0,$.jsxs)(G,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[w?(0,$.jsx)(S,{type:`button`,variant:`destructive`,onClick:()=>C(!0),disabled:m||_,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)(S,{variant:`outline`,onClick:()=>E(!1),disabled:m||_,children:`Cancel`}),(0,$.jsx)(S,{onClick:()=>void D(),disabled:m||_||!s.trim()||!l.trim(),children:m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(g,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):w?`Save Changes`:`Add Source`})]})]})]})}),(0,$.jsx)(Te,{open:b,onOpenChange:C,children:(0,$.jsxs)(be,{children:[(0,$.jsxs)(we,{children:[(0,$.jsx)(ye,{children:`Delete Skill Source`}),(0,$.jsxs)(ve,{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)(Se,{children:[(0,$.jsx)(Ce,{disabled:_,children:`Cancel`}),(0,$.jsx)(xe,{onClick:()=>void O(),disabled:_,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:_?`Deleting...`:`Delete`})]})]})})]})}var at=`https://tarsk.io/skills/list/`;function ot(e){let t=(0,Z.c)(20),{onSelectMode:r,manualDisabled:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(Oe,{asChild:!0,children:(0,$.jsxs)(S,{className:`gap-1`,children:[`Add Skill`,(0,$.jsx)(h,{className:`h-4 w-4 opacity-70`})]})}),t[0]=o):o=t[0];let s;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=u(a.body,`gap-2`),t[1]=s):s=t[1];let c;t[2]===r?c=t[3]:(c=()=>r(`manual`),t[2]=r,t[3]=c);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(l,{className:`h-4 w-4 shrink-0`}),t[4]=f):f=t[4];let p;t[5]!==i||t[6]!==c?(p=(0,$.jsxs)(X,{className:s,disabled:i,onSelect:c,children:[f,`Manually Enter`]}),t[5]=i,t[6]=c,t[7]=p):p=t[7];let m;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(m=u(a.body,`gap-2`),t[8]=m):m=t[8];let g;t[9]===r?g=t[10]:(g=()=>r(`url`),t[9]=r,t[10]=g);let _;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(n,{className:`h-4 w-4 shrink-0`}),t[11]=_):_=t[11];let v;t[12]===g?v=t[13]:(v=(0,$.jsxs)(X,{className:m,onSelect:g,children:[_,`Via URL`]}),t[12]=g,t[13]=v);let y;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(Ee,{}),t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=u(a.body,`gap-2`),t[15]=b):b=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsxs)(X,{className:b,onSelect:st,children:[(0,$.jsx)(d,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=x):x=t[16];let C;return t[17]!==p||t[18]!==v?(C=(0,$.jsxs)(ke,{children:[o,(0,$.jsxs)(Me,{align:`end`,className:`w-44`,children:[p,v,y,x]})]}),t[17]=p,t[18]=v,t[19]=C):C=t[19],C}function st(){D(at)}function ct(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 lt(e){let t=(0,Z.c)(40),{open:n,onOpenChange:r,onSubmit:i}=e,[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=function(){s(``),l(null)},t[0]=d):d=t[0];let f=d,p;t[1]===r?p=t[2]:(p=function(e){e||f(),r(e)},t[1]=r,t[2]=p);let m=p,h,g;t[3]===n?(h=t[4],g=t[5]):(h=()=>{n&&f()},g=[n],t[3]=n,t[4]=h,t[5]=g),(0,Q.useEffect)(h,g);let _;t[6]!==m||t[7]!==i||t[8]!==o?(_=function(){let e=ct(o);if(!e){l(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}i(e),m(!1)},t[6]=m,t[7]=i,t[8]=o,t[9]=_):_=t[9];let y=_,b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsxs)(v,{children:[(0,$.jsx)(W,{children:`Add Skill via URL`}),(0,$.jsx)(A,{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 C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(B,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>s(e.target.value),t[12]=w):w=t[12];let T;t[13]===y?T=t[14]:(T=e=>{e.key===`Enter`&&(e.preventDefault(),y())},t[13]=y,t[14]=T);let E;t[15]!==T||t[16]!==o?(E=(0,$.jsx)(J,{id:`add-skill-url`,placeholder:`https://example.com/my-plugin.zip`,value:o,onChange:w,autoFocus:!0,onKeyDown:T}),t[15]=T,t[16]=o,t[17]=E):E=t[17];let D;t[18]===c?D=t[19]:(D=c?(0,$.jsx)(`p`,{className:u(a.caption,`text-destructive`),children:c}):null,t[18]=c,t[19]=D);let O;t[20]!==E||t[21]!==D?(O=(0,$.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[C,E,D]})}),t[20]=E,t[21]=D,t[22]=O):O=t[22];let k;t[23]===m?k=t[24]:(k=(0,$.jsx)(S,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),t[23]=m,t[24]=k);let j;t[25]===o?j=t[26]:(j=o.trim(),t[25]=o,t[26]=j);let M=!j,N;t[27]!==y||t[28]!==M?(N=(0,$.jsx)(S,{onClick:y,disabled:M,children:`Continue`}),t[27]=y,t[28]=M,t[29]=N):N=t[29];let F;t[30]!==k||t[31]!==N?(F=(0,$.jsxs)(G,{children:[k,N]}),t[30]=k,t[31]=N,t[32]=F):F=t[32];let I;t[33]!==O||t[34]!==F?(I=(0,$.jsxs)(x,{className:`sm:max-w-lg`,children:[b,O,F]}),t[33]=O,t[34]=F,t[35]=I):I=t[35];let L;return t[36]!==m||t[37]!==n||t[38]!==I?(L=(0,$.jsx)(P,{open:n,onOpenChange:m,children:I}),t[36]=m,t[37]=n,t[38]=I,t[39]=L):L=t[39],L}function ut(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(...ut(n.children))}return t}function dt(e){return`.agents/skills/${e}/SKILL.md`}function ft(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 pt(e){let t=(0,Z.c)(9),{items:n,installedFilePaths:r,onPreview:i}=e,a;if(t[0]!==r||t[1]!==n||t[2]!==i){let e;t[4]!==r||t[5]!==i?(e=e=>{let t=dt(e.id),n=r.has(t);return(0,$.jsx)(We,{className:`bg-background hover:bg-background`,name:He(e.name),description:e.description,installed:n,onClick:()=>{n||i(e)},showInstalledControls:!1},e.id)},t[4]=r,t[5]=i,t[6]=e):e=t[6],a=n.map(e),t[0]=r,t[1]=n,t[2]=i,t[3]=a}else a=t[3];let o;return t[7]===a?o=t[8]:(o=(0,$.jsx)(Ie,{children:a}),t[7]=a,t[8]=o),o}function mt(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)(q,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,$.jsx)(ot,{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)(oe,{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:p,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=f):f=t[8];let m;t[9]===i?m=t[10]:(m=e=>i(e.path),t[9]=i,t[10]=m);let h;t[11]!==a||t[12]!==n||t[13]!==m?(h=(0,$.jsx)(Re,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:f,getKey:vt,renderContent:_t,onItemClick:m,itemClickLabel:gt,onDelete:a,deleteAriaLabel:ht,deleteTooltip:`Remove this skill from the project`}),t[11]=a,t[12]=n,t[13]=m,t[14]=h):h=t[14];let g;t[15]!==d||t[16]!==h?(g=(0,$.jsxs)(ee,{className:`pt-6`,children:[d,h]}),t[15]=d,t[16]=h,t[17]=g):g=t[17];let _;return t[18]!==u||t[19]!==g?(_=(0,$.jsxs)(K,{className:`shrink-0`,children:[u,g]}),t[18]=u,t[19]=g,t[20]=_):_=t[20],_}function ht(e){return`Delete ${e.name}`}function gt(e){return`Open ${e.name} in Files`}function _t(e){return(0,$.jsx)(`span`,{className:u(a.body,`truncate text-left`),children:e.name})}function vt(e){return e.id}function yt(e){let n=(0,Z.c)(40),{availableSearch:r,onSearchChange:i,selectedSourceId:a,onSourceChange:o,sources:c,selectedCustomSource:l,availableCatalogLoading:u,isDefaultSource:d,filteredPopular:f,filteredCatalog:p,installedFilePaths:m,onPreviewPopular:h,onPreviewCatalog:g,onAddSource:_}=e,v;n[0]!==r||n[1]!==i?(v=(0,$.jsx)(Le,{placeholder:`Search`,value:r,onChange:i,className:`mb-0 w-64`}),n[0]=r,n[1]=i,n[2]=v):v=n[2];let y;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(z,{className:`w-40`,"aria-label":`Skill source`,children:(0,$.jsx)(pe,{placeholder:`Default`})}),n[3]=y):y=n[3];let x;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(U,{value:`default`,children:`Default`}),n[4]=x):x=n[4];let C;n[5]===c?C=n[6]:(C=c.map(bt),n[5]=c,n[6]=C);let w;n[7]===C?w=n[8]:(w=(0,$.jsxs)(ie,{children:[x,C]}),n[7]=C,n[8]=w);let T;n[9]!==o||n[10]!==a||n[11]!==w?(T=(0,$.jsxs)(se,{value:a,onValueChange:o,children:[y,w]}),n[9]=o,n[10]=a,n[11]=w,n[12]=T):T=n[12];let E=l?`Edit skill source`:`Add skill source`,D;n[13]===l?D=n[14]:(D=l?(0,$.jsx)(t,{className:`h-4 w-4`}):(0,$.jsx)(s,{className:`h-4 w-4`}),n[13]=l,n[14]=D);let O;n[15]!==_||n[16]!==E||n[17]!==D?(O=(0,$.jsx)(F,{asChild:!0,children:(0,$.jsx)(S,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:_,"aria-label":E,children:D})}),n[15]=_,n[16]=E,n[17]=D,n[18]=O):O=n[18];let k=l?`Edit this custom skill source`:`Add a custom skill source`,A;n[19]===k?A=n[20]:(A=(0,$.jsx)(b,{children:k}),n[19]=k,n[20]=A);let j;n[21]!==A||n[22]!==O?(j=(0,$.jsx)(me,{children:(0,$.jsxs)(N,{children:[O,A]})}),n[21]=A,n[22]=O,n[23]=j):j=n[23];let M;n[24]!==v||n[25]!==j||n[26]!==T?(M=(0,$.jsx)(q,{title:`Available Skills`,description:`Browse and install skills from the catalog.`,action:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[v,T,j]}),sticky:!1}),n[24]=v,n[25]=j,n[26]=T,n[27]=M):M=n[27];let P;n[28]!==u||n[29]!==r||n[30]!==p||n[31]!==f||n[32]!==m||n[33]!==d||n[34]!==g||n[35]!==h?(P=(0,$.jsx)(ee,{className:`pt-6`,children:u?(0,$.jsx)(V,{className:`py-12`,label:`Loading skills...`}):d?f.length===0?(0,$.jsx)(Fe,{searchQuery:r,emptyLabel:`No available skills found.`}):(0,$.jsx)(pt,{items:f,installedFilePaths:m,onPreview:h}):p.length===0?(0,$.jsx)(Fe,{searchQuery:r,emptyLabel:`No available skills found.`}):(0,$.jsx)(pt,{items:p,installedFilePaths:m,onPreview:g})}),n[28]=u,n[29]=r,n[30]=p,n[31]=f,n[32]=m,n[33]=d,n[34]=g,n[35]=h,n[36]=P):P=n[36];let I;return n[37]!==M||n[38]!==P?(I=(0,$.jsxs)(K,{className:`shrink-0`,children:[M,P]}),n[37]=M,n[38]=P,n[39]=I):I=n[39],I}function bt(e){return(0,$.jsx)(U,{value:e.id,children:e.title},e.id)}function xt(){let{selectedProjectId:e,selectedThreadId:t,items:n,loading:r,deleteConfirm:i,setDeleteConfirm:a,deleting:o,installedFilePaths:s,setInstalledFilePaths:l,loadItems:u,handleDelete:d,handleOpenInExplorer:f,triggerExplorerRefresh:p}=Ge({findItems:ut,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`}),h=_e(e=>e.projects),g=(0,Q.useMemo)(()=>h.find(t=>t.projectId===e)??null,[h,e]),[_,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(null),[w,E]=(0,Q.useState)([]),[D,O]=(0,Q.useState)(!0),[k,A]=(0,Q.useState)(null),[j,M]=(0,Q.useState)(!1),{query:N,setQuery:F,deferredQuery:I}=ze(),{sources:R,selectedSourceId:z,setSelectedSourceId:B,addSource:V,updateSource:ee,removeSource:te,catalogSkills:H,isLoadingCatalog:ne}=tt(),U=z==="default",W=(0,Q.useMemo)(()=>m(z)?R.find(e=>e.id===z)??null:null,[z,R]);(0,Q.useEffect)(()=>{O(!0),T().then(E).catch(()=>E([])).finally(()=>O(!1))},[]);let re=Pe(e?`${e}:${t??``}`:null,[r,D]),G=(0,Q.useCallback)(async e=>{let n=`.agents/skills/${e.id}/SKILL.md`;if(!t||s.has(n))return;let r=e.sourceId??(z==="default"?void 0:z);try{if(r)await L(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 le(t,n,r.join(`
|
|
3
|
-
`))}l(e=>new Set(e).add(n)),p(),u(),Y({title:`Skill installed`,description:e.name})}catch(e){throw Y({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}},[t,z,s,p,u]),ie=(0,Q.useMemo)(()=>ft(w,I),[w,I]),K=(0,Q.useMemo)(()=>ft(H,I),[H,I]),ae=!U&&ne&&H.length===0;return e?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(ue,{loading:re,children:[(0,$.jsx)(mt,{skills:n,threadId:t,onOpenSkill:f,onDelete:a,onAddManual:()=>v(!0),onAddUrl:()=>b(!0)}),(0,$.jsx)(yt,{availableSearch:N,onSearchChange:F,selectedSourceId:z,onSourceChange:B,sources:R,selectedCustomSource:W,availableCatalogLoading:ae,isDefaultSource:U,filteredPopular:ie,filteredCatalog:K,installedFilePaths:s,onPreviewPopular:e=>A(e),onPreviewCatalog:e=>A({...e,sourceId:e.sourceId??z}),onAddSource:()=>M(!0)})]}),(0,$.jsx)(Ze,{open:k!==null,onOpenChange:e=>{e||A(null)},skill:k,catalogSourceId:U?void 0:z,onInstall:G}),(0,$.jsx)(it,{open:j,onOpenChange:M,editingSource:W,onSourceAdded:e=>{V(e),Y({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},onSourceUpdated:e=>{ee(e),Y({title:`Skill source updated`,description:`${e.title} has been saved.`})},onSourceDeleted:e=>{te(e),Y({title:`Skill source removed`,description:`The custom source has been deleted.`})}}),(0,$.jsx)(P,{open:_,onOpenChange:v,children:(0,$.jsx)(x,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,$.jsx)(Ke,{threadId:t,onSkillCreated:()=>{v(!1),u(),p()}})})}),(0,$.jsx)(lt,{open:y,onOpenChange:b,onSubmit:e=>C(e)}),(0,$.jsx)(je,{url:S,projectId:e,projectName:g?c(g):null,projects:h,onSelectProject:()=>{},onClose:()=>C(null),onInstalled:({mcpOnly:e})=>{u(),p(),Y({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)(Ne,{open:i!==null,onOpenChange:e=>!e&&a(null),title:`Delete Skill`,description:`Are you sure you want to delete the skill "${i?.name}"? This action cannot be undone.`,onConfirm:()=>{i&&d(i)},confirming:o})]}):(0,$.jsx)(fe,{children:`Select a project to manage skills.`})}export{xt as SettingsSkillsView,xt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,S as i,i as a,ki as o,pn as s}from"./interactive-BrHVRHmQ.js";import{n as c,r as l,t as u}from"./react-vendor-7n7LyU5o.js";import{Cr as d,D as f,Eo as p,Hi as m,Li as h,T as g,b as _,dt as v,et as y,mt as b,nt as x,pn as S,pt as C,rt as w,st as T,tt as E,ut as D,wn as ee,x as O}from"./onboarding-KBcwP-kU.js";import{r as k}from"./store-B_cK-gsT.js";import{t as A}from"./use-toast-hxHsVv6a.js";import{n as j}from"./explorer-tab-context-BdjTEbFh.js";import{Nt as M}from"./index-CJCQ4bTo.js";import{t as N}from"./delete-confirm-dialog-D1zjctrX.js";import{t as P}from"./use-settings-page-loading-BU2CDnfE.js";import{a as F,i as I,o as L,r as R}from"./settings-list-CWdsaJKC.js";import{a as z,i as B,r as V,t as te}from"./mcp-server-card-DPakHrG9.js";var H=n(),U=e(o(),1),W=t(),G=U.forwardRef((e,t)=>{let n=(0,H.c)(9),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 o;n[3]===r?o=n[4]:(o=a(`grid gap-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==i||n[6]!==t||n[7]!==o?(s=(0,W.jsx)(l,{className:o,...i,ref:t}),n[5]=i,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});G.displayName=l.displayName;var K=U.forwardRef((e,t)=>{let n=(0,H.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 o;n[3]===r?o=n[4]:(o=a(`aspect-square h-4 w-4 rounded-full border border-brand text-brand ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,r),n[3]=r,n[4]=o);let l;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,W.jsx)(u,{className:`flex items-center justify-center`,children:(0,W.jsx)(s,{className:`h-2.5 w-2.5 fill-current text-current`})}),n[5]=l):l=n[5];let d;return n[6]!==i||n[7]!==t||n[8]!==o?(d=(0,W.jsx)(c,{ref:t,className:o,...i,children:l}),n[6]=i,n[7]=t,n[8]=o,n[9]=d):d=n[9],d});K.displayName=c.displayName;function q({projectId:e,threadId:t,onCommandCreated:n}){let[i,o]=(0,U.useState)(``),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(`default`),[p,m]=(0,U.useState)(!1),h=B(i),g=V(h),v=async()=>{if(!(!g||!e)){m(!0);try{await S(h,``,{description:s.trim()||void 0,argumentHint:l.trim()||void 0,mode:d===`plan`?`plan`:void 0},`project`,t??void 0),A({title:`Command created`,description:`Command '/${h}' was created successfully.`}),o(``),c(``),u(``),f(`default`),n?.(h)}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{m(!1)}}};return e?(0,W.jsx)(C,{children:(0,W.jsxs)(y,{children:[(0,W.jsx)(w,{title:`Add Slash Command`,description:`Saved as a .md file in ~/.agents/commands.`,sticky:!0,className:`pr-10`}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(E,{title:`Command Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,W.jsx)(O,{id:`commandName`,value:i,onChange:e=>o(e.target.value),placeholder:`e.g. review`,disabled:p}),i?(0,W.jsxs)(`p`,{className:a(r.caption,`mt-2`),children:[`Command: `,(0,W.jsxs)(`span`,{className:`font-mono`,children:[`/`,h||`...`]})]}):null]}),(0,W.jsx)(E,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,W.jsx)(O,{id:`commandDescription`,value:s,onChange:e=>c(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:p})}),(0,W.jsx)(E,{title:`Argument Hint`,description:`Shows after the command name to guide users what to type`,controlLayout:`stack`,className:`pt-6`,children:(0,W.jsx)(O,{id:`argumentHint`,value:l,onChange:e=>u(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:p})}),(0,W.jsx)(E,{title:`Mode`,description:d==="default"?`Standard chat mode`:`Activates plan mode when this command is used`,controlLayout:`stack`,className:`pt-6`,children:(0,W.jsxs)(G,{value:d,onValueChange:e=>f(e),className:`flex gap-4`,disabled:p,children:[(0,W.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,W.jsx)(K,{value:`default`,id:`mode-default`}),(0,W.jsx)(_,{htmlFor:`mode-default`,className:a(r.labelNormal,`cursor-pointer`),children:`Default`})]}),(0,W.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,W.jsx)(K,{value:`plan`,id:`mode-plan`}),(0,W.jsx)(_,{htmlFor:`mode-plan`,className:a(r.labelNormal,`cursor-pointer`),children:`Plan`})]})]})}),(0,W.jsx)(z,{onContinue:()=>void v(),disabled:!g,creating:p})]})]})}):(0,W.jsx)(D,{title:`No project selected`,children:`Please select a project to add a slash command.`})}function J(){let e=k(e=>e.selectedProjectId),t=k(e=>e.selectedThreadId),{openChatDockPanel:n}=M(),{setPendingExplorerPath:o,triggerExplorerRefresh:s,setExplorerClearPath:c}=j(),[l,u]=(0,U.useState)([]),[_,y]=(0,U.useState)(!0),[C,E]=(0,U.useState)(!1),[O,z]=(0,U.useState)(null),[B,V]=(0,U.useState)(!1),[H,G]=(0,U.useState)([]),[K,J]=(0,U.useState)(!0),[Y,X]=(0,U.useState)(new Map),[Z,ne]=(0,U.useState)(``),Q=(0,U.useCallback)(async()=>{if(!t){y(!1),u([]),X(new Map);return}y(!0);try{let e=await d(t);u(e.filter(e=>!e.isBuiltIn)),X(new Map(e.map(e=>[e.name,e.filePath])))}catch{u([]),X(new Map)}finally{y(!1)}},[t]);(0,U.useLayoutEffect)(()=>{t&&y(!0)},[e,t]),(0,U.useEffect)(()=>{Q()},[Q]),(0,U.useEffect)(()=>{J(!0),h().then(G).catch(()=>G([])).finally(()=>J(!1))},[]);let re=P(e?`${e}:${t??``}`:null,[_,K]),ie=(0,U.useCallback)(async e=>{V(!0);try{await ee(e.filePath),c(e.filePath),s(),X(t=>{let n=new Map(t);return n.delete(e.name),n}),A({title:`Command removed`,description:`/${e.name}`}),z(null),await Q()}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to remove command`,variant:`destructive`})}finally{V(!1)}},[Q,s,c]),ae=(0,U.useCallback)(e=>{o(e),n(`explorer`)},[o,n]),oe=(0,U.useCallback)(e=>{let t=e.metadata?.description?.trim();return t&&t.length>0?t:`No description`},[]),se=(0,U.useCallback)(async e=>{if(!(!t||Y.has(e.name)))try{if(e.gitHubRepo&&e.gitHubFolder){let n=`.agents/commands`;await m(t,e.gitHubRepo,e.gitHubFolder,n);let r=`${n}/${e.name}.md`;X(t=>new Map(t).set(e.name,r))}else{let n=await S(e.name,e.content,{description:e.description,argumentHint:e.argumentHint},`project`,t);X(t=>new Map(t).set(e.name,n.filePath))}s(),Q(),A({title:`Command installed`,description:`/${e.name}`})}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to install command`,variant:`destructive`})}},[t,Y,s,Q]),$=Z.trim()?H.filter(e=>e.name.toLowerCase().includes(Z.toLowerCase())||e.description.toLowerCase().includes(Z.toLowerCase())):H;return e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(T,{loading:re,children:[(0,W.jsxs)(b,{className:`shrink-0`,children:[(0,W.jsx)(w,{title:`Installed Slash Commands`,description:`Project slash commands you run with / in chat.`,action:(0,W.jsx)(p,{onClick:()=>E(!0),disabled:!t,children:`Add Command`}),sticky:!1}),(0,W.jsxs)(v,{className:`pt-6`,children:[!t&&(0,W.jsx)(x,{children:`Select a thread to add or install slash commands.`}),(0,W.jsx)(R,{showHeader:!1,loading:!1,items:l,emptyState:{icon:i,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,W.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,W.jsxs)(`div`,{className:a(r.body,`truncate`),children:[`/`,e.name]}),(0,W.jsx)(`div`,{className:a(r.compact,`truncate text-muted-foreground`),children:oe(e)})]}),renderMiddle:e=>e.metadata?.mode?(0,W.jsx)(`span`,{className:a(r.compact,`bg-muted px-1.5 py-0.5 rounded flex-shrink-0`),children:e.metadata.mode}):(0,W.jsx)(`div`,{}),onItemClick:e=>ae(e.filePath),itemClickLabel:e=>`Open /${e.name} in Files`,onDelete:z,deleteAriaLabel:e=>`Delete /${e.name}`,deleteTooltip:`Remove this slash command from the project`})]})]}),(0,W.jsxs)(b,{className:`shrink-0`,children:[(0,W.jsx)(w,{title:`Available Slash Commands`,description:`Browse and install slash commands from the catalog.`,action:(0,W.jsx)(L,{placeholder:`Search`,value:Z,onChange:ne,className:`mb-0 w-64`}),sticky:!1}),(0,W.jsx)(v,{className:`pt-6`,children:$.length===0?(0,W.jsx)(F,{searchQuery:Z,emptyLabel:`No available commands found.`}):(0,W.jsx)(I,{children:$.map(e=>{let t=Y.has(e.name);return(0,W.jsx)(te,{className:`bg-background hover:bg-background`,name:`/${e.name}`,description:e.description,installed:t,onClick:()=>{t||se(e)},showInstalledControls:!1},e.id)})})})]})]}),(0,W.jsx)(g,{open:C,onOpenChange:E,children:(0,W.jsx)(f,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,W.jsx)(q,{projectId:e,threadId:t,onCommandCreated:()=>{E(!1),Q(),s()}})})}),(0,W.jsx)(N,{open:O!==null,onOpenChange:e=>!e&&z(null),title:`Delete Slash Command`,description:`Are you sure you want to delete "/${O?.name}"? This action cannot be undone.`,onConfirm:()=>{O&&ie(O)},confirming:B})]}):(0,W.jsx)(D,{children:`Select a project to manage slash commands.`})}export{J as SettingsSlashCommandsView,J as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-general-view-72s5xgPj.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-CJCQ4bTo.js","assets/monaco-D1hpqXQ0.js","assets/monaco-BQve5vfS.css","assets/onboarding-KBcwP-kU.js","assets/interactive-BrHVRHmQ.js","assets/alert-dialog-CLYxQdrK.js","assets/react-vendor-7n7LyU5o.js","assets/use-toast-hxHsVv6a.js","assets/chat-dock-context-Gg1jpamu.js","assets/store-B_cK-gsT.js","assets/explorer-tab-context-BdjTEbFh.js","assets/main-tab-context-zQSuRQQG.js","assets/use-suspense-resource-CExc4Svq.js","assets/thread-tool-blocks-D9HUkPHB.js","assets/ndjson-stream-DeGpE5o5.js","assets/utils-SsF94Pkg.js","assets/index-Cndc50ux.css","assets/use-settings-page-loading-BU2CDnfE.js","assets/is-macos-client-BIb4ZSEa.js","assets/project-settings-view-Cb0iiyad.js","assets/commit-method-fields-o-xw2faT.js","assets/context-menu-BLvLpqq7.js","assets/project-env-vars-view-D60J_-qQ.js","assets/project-model-aliases-view-EClnOgBH.js","assets/project-tools-view-B_WnVICB.js","assets/providers-list-view-CYy82_hl.js","assets/model-list-controls-2JtkzWsp.js","assets/async-error-boundary-CM6LU7nT.js","assets/card-BDQUHsPD.js","assets/settings-list-CWdsaJKC.js","assets/skeleton-CJSNEi3C.js","assets/use-deferred-search-0sV7mSzX.js","assets/settings-models-view-xIRY7PvW.js","assets/table-Cb2C1rQy.js","assets/settings-mcp-servers-view-B8_vnfl6.js","assets/delete-confirm-dialog-D1zjctrX.js","assets/settings-slack-view-RFLP0USW.js","assets/settings-logs-view-CkkVgGvv.js","assets/settings-skills-view-qWbr0Vl2.js","assets/mcp-server-card-DPakHrG9.js","assets/use-installed-ai-files-GpG9ZL8U.js","assets/settings-rules-view-DIk0ghSW.js","assets/settings-slash-commands-view-zFWoR_R7.js","assets/settings-subagents-view-BZr1NkVp.js","assets/settings-instructions-view-DN4-73KP.js","assets/settings-system-prompt-view-mQErde93.js","assets/account-view-Chzj6v7a.js","assets/conversation-history-view-ukfe_7qw.js","assets/settings-storage-view-BS2k7E74.js","assets/settings-statistics-view-BgrzVn4R.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{At as t,C as n,Cn as r,Di as i,En as a,I as o,Oi as s,R as c,Rr as l,S as u,Tn as d,V as f,c as p,f as m,g as h,h as g,i as _,it as v,k as y,ki as b,kt as x,m as S,p as C,tr as w,un as T,vt as E,wn as D}from"./interactive-BrHVRHmQ.js";import{Gt as O,Ut as k,Wt as A}from"./react-vendor-7n7LyU5o.js";import{Ct as j,Eo as M,F as N,I as P,L as F,M as I,N as L,Oo as R,P as z,Pr as B,R as V,S as H,St as ee,Tt as te,Xr as ne,bt as U,f as W,ht as re,ko as G,mr as ie,ut as ae,wt as oe,x as se}from"./onboarding-KBcwP-kU.js";import{l as K}from"./monaco-D1hpqXQ0.js";import{J as ce,n as le,r as q}from"./store-B_cK-gsT.js";import{A as ue,Jt as de,M as fe,N as pe,c as me,l as he,s as J,u as ge}from"./index-CJCQ4bTo.js";import{t as _e}from"./skeleton-CJSNEi3C.js";var Y=s(),X=e(b(),1),Z=i(),ve=(0,X.forwardRef)(function(e,t){let n=(0,Y.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:m,mobileShowSidebar:h,sidebarClassName:g}=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=m===void 0?!1:m,E=h===void 0?!0:h,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]!==g||n[1]!==N?(P=_(`border-r border-transparent`,N,g),n[0]=g,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,Z.jsx)(he,{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,Z.jsx)(me,{withHandle:!0,className:`ml-[-10px]`}),n[14]=T,n[15]=I);let L=O&&`hidden`,R;n[16]===L?R=n[17]:(R=_(`overflow-hidden`,L),n[16]=L,n[17]=R);let z;n[18]!==i||n[19]!==x||n[20]!==R?(z=(0,Z.jsx)(he,{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,Z.jsxs)(ge,{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,Z.jsx)(`div`,{className:k,children:B}),n[26]=k,n[27]=B,n[28]=V):V=n[28],V});function ye(e){let t=(0,Y.c)(5),{className:n}=e,r;t[0]===n?r=t[1]:(r=_(`h-4 w-4`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.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,Z.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 be=F,xe=P,Se=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(N,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Se.displayName=N.displayName;var Ce=R(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),we=X.forwardRef((e,t)=>{let n=(0,Y.c)(15),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({side:o,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=o===void 0?`right`:o,c;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(Se,{}),n[5]=c):c=n[5];let l;n[6]!==i||n[7]!==s?(l=_(Ce({side:s}),i),n[6]=i,n[7]=s,n[8]=l):l=n[8];let u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Z.jsxs)(I,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,Z.jsx)(m,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[9]=u):u=n[9];let d;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l?(d=(0,Z.jsxs)(xe,{children:[c,(0,Z.jsxs)(L,{ref:t,className:l,...a,children:[r,u]})]}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=d):d=n[14],d});we.displayName=L.displayName;var Te=e=>{let t=(0,Y.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=_(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Z.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};Te.displayName=`SheetHeader`;var Ee=e=>{let t=(0,Y.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=_(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Z.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};Ee.displayName=`SheetFooter`;var De=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(l.dialogTitle,`text-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(V,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});De.displayName=V.displayName;var Oe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(l.dialogDescription,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(z,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Oe.displayName=z.displayName;var ke=`sidebar:state`,Ae=3600*24*7,je=`16rem`,Me=`18rem`,Ne=`3rem`,Pe=X.createContext(null);function Q(){let e=X.useContext(Pe);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}var Fe=X.forwardRef((e,t)=>{let n=(0,Y.c)(37),r,i,a,o,s,c,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7]):({defaultOpen:l,open:a,onOpenChange:s,className:i,style:c,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l);let u=l===void 0?!0:l,d=J(),[f,p]=X.useState(!1),[m,h]=X.useState(u),g=a??m,v;n[8]!==g||n[9]!==s?(v=e=>{let t=typeof e==`function`?e(g):e;s?s(t):h(t),document.cookie=`${ke}=${t}; path=/; max-age=${Ae}`},n[8]=g,n[9]=s,n[10]=v):v=n[10];let y=v,b;n[11]!==d||n[12]!==y?(b=()=>d?p(Ie):y(Le),n[11]=d,n[12]=y,n[13]=b):b=n[13];let x=b,S,C;n[14]===x?(S=n[15],C=n[16]):(S=()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),x())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},C=[x],n[14]=x,n[15]=S,n[16]=C),X.useEffect(S,C);let w=g?`expanded`:`collapsed`,T;n[17]!==d||n[18]!==g||n[19]!==f||n[20]!==y||n[21]!==w||n[22]!==x?(T={state:w,open:g,setOpen:y,isMobile:d,openMobile:f,setOpenMobile:p,toggleSidebar:x},n[17]=d,n[18]=g,n[19]=f,n[20]=y,n[21]=w,n[22]=x,n[23]=T):T=n[23];let E=T,D;n[24]===c?D=n[25]:(D={"--sidebar-width":je,"--sidebar-width-icon":Ne,...c},n[24]=c,n[25]=D);let O=D,k;n[26]===i?k=n[27]:(k=_(`group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar`,i),n[26]=i,n[27]=k);let A;n[28]!==r||n[29]!==o||n[30]!==t||n[31]!==O||n[32]!==k?(A=(0,Z.jsx)(oe,{delayDuration:0,children:(0,Z.jsx)(`div`,{style:O,className:k,ref:t,...o,children:r})}),n[28]=r,n[29]=o,n[30]=t,n[31]=O,n[32]=k,n[33]=A):A=n[33];let j;return n[34]!==E||n[35]!==A?(j=(0,Z.jsx)(Pe.Provider,{value:E,children:A}),n[34]=E,n[35]=A,n[36]=j):j=n[36],j});Fe.displayName=`SidebarProvider`;function Ie(e){return!e}function Le(e){return!e}var Re=X.forwardRef((e,t)=>{let n=(0,Y.c)(47),r,i,a,o,s,c;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6]):({side:o,variant:s,collapsible:c,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c);let l=o===void 0?`left`:o,u=s===void 0?`sidebar`:s,d=c===void 0?`offcanvas`:c,{isMobile:f,state:p,openMobile:m,setOpenMobile:h}=Q();if(d===`none`){let e;n[7]===i?e=n[8]:(e=_(`flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground`,i),n[7]=i,n[8]=e);let o;return n[9]!==r||n[10]!==a||n[11]!==t||n[12]!==e?(o=(0,Z.jsx)(`div`,{className:e,ref:t,...a,children:r}),n[9]=r,n[10]=a,n[11]=t,n[12]=e,n[13]=o):o=n[13],o}if(f){let e;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(e={"--sidebar-width":Me},n[14]=e):e=n[14];let t;n[15]===r?t=n[16]:(t=(0,Z.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:r}),n[15]=r,n[16]=t);let i;n[17]!==l||n[18]!==t?(i=(0,Z.jsx)(we,{"data-sidebar":`sidebar`,"data-mobile":`true`,className:`w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:e,side:l,children:t}),n[17]=l,n[18]=t,n[19]=i):i=n[19];let o;return n[20]!==m||n[21]!==a||n[22]!==h||n[23]!==i?(o=(0,Z.jsx)(be,{open:m,onOpenChange:h,...a,children:i}),n[20]=m,n[21]=a,n[22]=h,n[23]=i,n[24]=o):o=n[24],o}let g=p===`collapsed`?d:``,v=u===`floating`||u===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]`:`group-data-[collapsible=icon]:w-[--sidebar-width-icon]`,y;n[25]===v?y=n[26]:(y=_(`relative h-svh w-[--sidebar-width] bg-transparent`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,v),n[25]=v,n[26]=y);let b;n[27]===y?b=n[28]:(b=(0,Z.jsx)(`div`,{className:y}),n[27]=y,n[28]=b);let x=l===`left`?`left-0`:`right-0`,S=u===`floating`||u===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]`:`group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l`,C;n[29]!==i||n[30]!==x||n[31]!==S?(C=_(`fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] md:flex`,x,`group-data-[collapsible=offcanvas]:hidden`,S,i),n[29]=i,n[30]=x,n[31]=S,n[32]=C):C=n[32];let w;n[33]===r?w=n[34]:(w=(0,Z.jsx)(`div`,{"data-sidebar":`sidebar`,className:`flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow`,children:r}),n[33]=r,n[34]=w);let T;n[35]!==a||n[36]!==C||n[37]!==w?(T=(0,Z.jsx)(`div`,{className:C,...a,children:w}),n[35]=a,n[36]=C,n[37]=w,n[38]=T):T=n[38];let E;return n[39]!==t||n[40]!==l||n[41]!==p||n[42]!==T||n[43]!==g||n[44]!==b||n[45]!==u?(E=(0,Z.jsxs)(`div`,{ref:t,className:`group peer hidden md:block text-sidebar-foreground`,"data-state":p,"data-collapsible":g,"data-variant":u,"data-side":l,children:[b,T]}),n[39]=t,n[40]=l,n[41]=p,n[42]=T,n[43]=g,n[44]=b,n[45]=u,n[46]=E):E=n[46],E});Re.displayName=`Sidebar`;var ze=X.forwardRef((e,t)=>{let n=(0,Y.c)(16),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onClick:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let{toggleSidebar:o}=Q(),s;n[4]===r?s=n[5]:(s=_(`h-7 w-7`,r),n[4]=r,n[5]=s);let c;n[6]!==i||n[7]!==o?(c=e=>{i?.(e),o()},n[6]=i,n[7]=o,n[8]=c):c=n[8];let l,u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(v,{}),u=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`}),n[9]=l,n[10]=u):(l=n[9],u=n[10]);let d;return n[11]!==a||n[12]!==t||n[13]!==s||n[14]!==c?(d=(0,Z.jsxs)(M,{ref:t,"data-sidebar":`trigger`,variant:`ghost`,size:`icon`,className:s,onClick:c,...a,children:[l,u]}),n[11]=a,n[12]=t,n[13]=s,n[14]=c,n[15]=d):d=n[15],d});ze.displayName=`SidebarTrigger`;var Be=X.forwardRef((e,t)=>{let n=(0,Y.c)(13),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{toggleSidebar:a}=Q(),o;n[3]===r?o=n[4]:(o=_(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex`,`[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,r),n[3]=r,n[4]=o);let s;n[5]!==i||n[6]!==t||n[7]!==o||n[8]!==a?(s=(0,Z.jsx)(te,{asChild:!0,children:(0,Z.jsx)(`button`,{ref:t,"data-sidebar":`rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:a,className:o,...i})}),n[5]=i,n[6]=t,n[7]=o,n[8]=a,n[9]=s):s=n[9];let c;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(j,{children:`Toggle Sidebar`}),n[10]=c):c=n[10];let l;return n[11]===s?l=n[12]:(l=(0,Z.jsxs)(ee,{children:[s,c]}),n[11]=s,n[12]=l),l});Be.displayName=`SidebarRail`;var Ve=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`relative flex min-h-svh flex-1 flex-col bg-background`,`peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`main`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ve.displayName=`SidebarInset`;var He=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(se,{ref:t,"data-sidebar":`input`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});He.displayName=`SidebarInput`;var Ue=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`flex flex-col gap-2 p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`header`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ue.displayName=`SidebarHeader`;var We=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`flex flex-col gap-2 p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`footer`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});We.displayName=`SidebarFooter`;var Ge=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`mx-2 w-auto bg-divider`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(H,{ref:t,"data-sidebar":`separator`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ge.displayName=`SidebarSeparator`;var Ke=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`content`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ke.displayName=`SidebarContent`;var qe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`relative flex w-full min-w-0 flex-col p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`group`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qe.displayName=`SidebarGroup`;var Je=X.forwardRef((e,t)=>{let n=(0,Y.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,asChild:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a!==void 0&&a?G:`div`,s;n[4]===r?s=n[5]:(s=_(`duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-base font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0`,r),n[4]=r,n[5]=s);let c;return n[6]!==o||n[7]!==i||n[8]!==t||n[9]!==s?(c=(0,Z.jsx)(o,{ref:t,"data-sidebar":`group-label`,className:s,...i}),n[6]=o,n[7]=i,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});Je.displayName=`SidebarGroupLabel`;var Ye=X.forwardRef((e,t)=>{let n=(0,Y.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,asChild:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a!==void 0&&a?G:`button`,s;n[4]===r?s=n[5]:(s=_(`absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`group-data-[collapsible=icon]:hidden`,r),n[4]=r,n[5]=s);let c;return n[6]!==o||n[7]!==i||n[8]!==t||n[9]!==s?(c=(0,Z.jsx)(o,{ref:t,"data-sidebar":`group-action`,className:s,...i}),n[6]=o,n[7]=i,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});Ye.displayName=`SidebarGroupAction`;var Xe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`w-full`,l.compact,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`group-content`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xe.displayName=`SidebarGroupContent`;var Ze=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`flex w-full min-w-0 flex-col gap-1`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`ul`,{ref:t,"data-sidebar":`menu`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ze.displayName=`SidebarMenu`;var Qe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`group/menu-item relative`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`li`,{ref:t,"data-sidebar":`menu-item`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Qe.displayName=`SidebarMenuItem`;var $e=R(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left ${l.compact} outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8`,sm:`h-7`,lg:`h-12 group-data-[collapsible=icon]:!p-0`}},defaultVariants:{variant:`default`,size:`default`}}),et=X.forwardRef((e,t)=>{let n=(0,Y.c)(29),r,i,a,o,s,c,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7]):({asChild:a,isActive:o,variant:s,size:c,tooltip:l,className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l);let u=a===void 0?!1:a,d=o===void 0?!1:o,f=s===void 0?`default`:s,p=c===void 0?`default`:c,m=u?G:`button`,{isMobile:h,state:g}=Q(),v;n[8]!==r||n[9]!==p||n[10]!==f?(v=_($e({variant:f,size:p}),r),n[8]=r,n[9]=p,n[10]=f,n[11]=v):v=n[11];let y;n[12]!==m||n[13]!==d||n[14]!==i||n[15]!==t||n[16]!==p||n[17]!==v?(y=(0,Z.jsx)(m,{ref:t,"data-sidebar":`menu-button`,"data-size":p,"data-active":d,className:v,...i}),n[12]=m,n[13]=d,n[14]=i,n[15]=t,n[16]=p,n[17]=v,n[18]=y):y=n[18];let b=y;if(!l)return b;if(typeof l==`string`){let e;n[19]===l?e=n[20]:(e={children:l},n[19]=l,n[20]=e),l=e}let x;n[21]===b?x=n[22]:(x=(0,Z.jsx)(te,{asChild:!0,children:b}),n[21]=b,n[22]=x);let S=g!==`collapsed`||h,C;n[23]!==S||n[24]!==l?(C=(0,Z.jsx)(j,{side:`right`,align:`center`,hidden:S,...l}),n[23]=S,n[24]=l,n[25]=C):C=n[25];let w;return n[26]!==x||n[27]!==C?(w=(0,Z.jsxs)(ee,{children:[x,C]}),n[26]=x,n[27]=C,n[28]=w):w=n[28],w});et.displayName=`SidebarMenuButton`;var tt=X.forwardRef((e,t)=>{let n=(0,Y.c)(13),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,asChild:a,showOnHover:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=a===void 0?!1:a,c=o===void 0?!1:o,l=s?G:`button`,u=c&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0`,d;n[5]!==r||n[6]!==u?(d=_(`absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,u,r),n[5]=r,n[6]=u,n[7]=d):d=n[7];let f;return n[8]!==l||n[9]!==i||n[10]!==t||n[11]!==d?(f=(0,Z.jsx)(l,{ref:t,"data-sidebar":`menu-action`,className:d,...i}),n[8]=l,n[9]=i,n[10]=t,n[11]=d,n[12]=f):f=n[12],f});tt.displayName=`SidebarMenuAction`;var nt=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`menu-badge`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});nt.displayName=`SidebarMenuBadge`;var rt=X.forwardRef((e,t)=>{let n=(0,Y.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,showIcon:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?!1:a,s=`${Math.floor(Math.random()*40)+50}%`,c;n[4]===r?c=n[5]:(c=_(`rounded-md h-8 flex gap-2 px-2 items-center`,r),n[4]=r,n[5]=c);let l;n[6]===o?l=n[7]:(l=o&&(0,Z.jsx)(_e,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),n[6]=o,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u={"--skeleton-width":s},n[8]=u):u=n[8];let d;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(_e,{className:`h-4 flex-1 max-w-[--skeleton-width]`,"data-sidebar":`menu-skeleton-text`,style:u}),n[9]=d):d=n[9];let f;return n[10]!==i||n[11]!==t||n[12]!==c||n[13]!==l?(f=(0,Z.jsxs)(`div`,{ref:t,"data-sidebar":`menu-skeleton`,className:c,...i,children:[l,d]}),n[10]=i,n[11]=t,n[12]=c,n[13]=l,n[14]=f):f=n[14],f});rt.displayName=`SidebarMenuSkeleton`;var it=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),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=_(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`ul`,{ref:t,"data-sidebar":`menu-sub`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});it.displayName=`SidebarMenuSub`;var at=X.forwardRef((e,t)=>{let n=(0,Y.c)(5),r;n[0]===e?r=n[1]:({...r}=e,n[0]=e,n[1]=r);let i;return n[2]!==r||n[3]!==t?(i=(0,Z.jsx)(`li`,{ref:t,...r}),n[2]=r,n[3]=t,n[4]=i):i=n[4],i});at.displayName=`SidebarMenuSubItem`;var ot=X.forwardRef((e,t)=>{let n=(0,Y.c)(17),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({asChild:o,size:s,isActive:i,className:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c=o===void 0?!1:o,u=s===void 0?`md`:s,d=c?G:`a`,f=u===`sm`&&l.compact,p=u===`md`&&l.compact,m;n[6]!==r||n[7]!==f||n[8]!==p?(m=_(`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground`,f,p,`group-data-[collapsible=icon]:hidden`,r),n[6]=r,n[7]=f,n[8]=p,n[9]=m):m=n[9];let h;return n[10]!==d||n[11]!==i||n[12]!==a||n[13]!==t||n[14]!==u||n[15]!==m?(h=(0,Z.jsx)(d,{ref:t,"data-sidebar":`menu-sub-button`,"data-size":u,"data-active":i,className:m,...a}),n[10]=d,n[11]=i,n[12]=a,n[13]=t,n[14]=u,n[15]=m,n[16]=h):h=n[16],h});ot.displayName=`SidebarMenuSubButton`;var st=[{id:`skills`,label:`Skills`,icon:(0,Z.jsx)(S,{className:`h-4 w-4`}),route:`/settings/skills`},{id:`rules`,label:`Rules`,icon:(0,Z.jsx)(f,{className:`h-4 w-4`}),route:`/settings/rules`},{id:`slash-commands`,label:`Slash Commands`,icon:(0,Z.jsx)(u,{className:`h-4 w-4`}),route:`/settings/slash-commands`},{id:`subagents`,label:`Subagents`,icon:(0,Z.jsx)(g,{className:`h-4 w-4`}),route:`/settings/subagents`},{id:`instructions`,label:`Instructions`,icon:(0,Z.jsx)(a,{className:`h-4 w-4`}),route:`/settings/instructions`},{id:`system-prompt`,label:`System Prompt`,icon:(0,Z.jsx)(y,{className:`h-4 w-4`}),route:`/settings/system-prompt`},{id:`mcp-servers`,label:`MCP Servers`,icon:(0,Z.jsx)(c,{className:`h-4 w-4`}),route:`/settings/mcp-servers`},{id:`general`,label:`Settings`,icon:(0,Z.jsx)(o,{className:`h-4 w-4`}),route:`/settings/general`},{id:`logs`,label:`Logs`,icon:(0,Z.jsx)(E,{className:`h-4 w-4`}),route:`/settings/logs`},{id:`slack`,label:`Slack`,icon:(0,Z.jsx)(ye,{}),route:`/settings/slack`},{id:`providers`,label:`Providers`,icon:(0,Z.jsx)(T,{className:`h-4 w-4`}),route:`/settings/providers`},{id:`models`,label:`Models`,icon:(0,Z.jsx)(D,{className:`h-4 w-4`}),route:`/settings/models`},{id:`statistics`,label:`Statistics`,icon:(0,Z.jsx)(r,{className:`h-4 w-4`}),route:`/settings/statistics`},{id:`history`,label:`History`,icon:(0,Z.jsx)(x,{className:`h-4 w-4`}),route:`/settings/history`},{id:`storage`,label:`Storage`,icon:(0,Z.jsx)(t,{className:`h-4 w-4`}),route:`/settings/storage`},{id:`account`,label:`Account`,icon:(0,Z.jsx)(h,{className:`h-4 w-4`}),route:`/settings/account`}],ct=new Set([`project`,`project-env-vars`,`project-model-aliases`,`project-tools`,`skills`,`rules`,`slash-commands`,`subagents`,`instructions`,`system-prompt`,`mcp-servers`]),lt=new Set([`project`,`instructions`,`project-env-vars`]),ut=new Set([`skills`,`rules`,`slash-commands`,`subagents`,`mcp-servers`]),dt=new Set([`system-prompt`,`project-model-aliases`,`project-tools`]),ft=new Set([`general`,`logs`,`slack`,`providers`,`models`,`statistics`,`history`,`storage`,`account`]);function pt(e){return ct.has(e)?`project`:`general`}function $(e){let t=(0,Y.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,Z.jsx)(Je,{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,Z.jsx)(W,{selected:i===e.id,asChild:!0,children:(0,Z.jsx)(`button`,{className:`justify-start`,onClick:()=>a(e),children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,Z.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,Z.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,Z.jsx)(H,{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,Z.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 mt(e){let t=[...st];if(!e)return t;let r=t.findIndex(e=>e.id===`skills`);t.splice(r,0,{id:`project`,label:`Settings`,icon:(0,Z.jsx)(o,{className:`h-4 w-4`}),route:`/settings/project/${e}`},{id:`project-env-vars`,label:`Environment Variables`,icon:(0,Z.jsx)(d,{className:`h-4 w-4`}),route:`/settings/project/${e}/env-vars`});let i=t.findIndex(e=>e.id===`instructions`),a=t.findIndex(e=>e.id===`project`);if(i!==-1&&a!==-1){let[e]=t.splice(i,1);t.splice(a+1,0,e)}let s=t.findIndex(e=>e.id===`system-prompt`),c=s===-1?null:t.splice(s,1)[0],l=t.findIndex(e=>e.id===`mcp-servers`);return l!==-1&&t.splice(l+1,0,...c?[c]:[],{id:`project-model-aliases`,label:`Model Aliases`,icon:(0,Z.jsx)(n,{className:`h-4 w-4`}),route:`/settings/project/${e}/model-aliases`},{id:`project-tools`,label:`Tools`,icon:(0,Z.jsx)(C,{className:`h-4 w-4`}),route:`/settings/project/${e}/tools`}),t}function ht(e){let t=(0,Y.c)(48),{className:n,selectedProjectId:r,settingsScope:i,onResetOnboarding:a,onNavItemSelect:o}=e,s=A(),c=k(),l=(0,X.useRef)(0),u=(0,X.useRef)(null),d,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>()=>{u.current&&clearTimeout(u.current)},f=[],t[0]=d,t[1]=f):(d=t[0],f=t[1]),(0,X.useEffect)(d,f);let p=J(),m;t[2]===r?m=t[3]:(m=mt(r),t[2]=r,t[3]=m);let h=m,g;t[4]!==p||t[5]!==h?(g=p?h.filter(St):h,t[4]=p,t[5]=h,t[6]=g):g=t[6];let v=g,y;t[7]!==c.pathname||t[8]!==v?(y=function(){let e=c.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.startsWith(`/settings/project/`))return`project`;for(let t of v)if(e.startsWith(t.route))return t.id;return`general`}(),t[7]=c.pathname,t[8]=v,t[9]=y):y=t[9];let b=y,x,S,C,w,T,E,D,O,j;if(t[10]!==b||t[11]!==n||t[12]!==v||t[13]!==s||t[14]!==o||t[15]!==a||t[16]!==r||t[17]!==i){S=function(e){e.id===`general`&&a&&(u.current&&clearTimeout(u.current),l.current+=1,l.current>=3?(l.current=0,a()):u.current=setTimeout(()=>{l.current=0},1500)),o?.(),s(e.route)};let e=!!r;E=!e||i!==`project`,D=e&&i!==`general`;let c=v.filter(xt);T=c.filter(bt),w=c.filter(yt),C=c.filter(vt);let d;t[27]===v?d=t[28]:(d=v.filter(_t),t[27]=v,t[28]=d),x=d;let f=e?[]:c.filter(gt);t[29]===n?O=t[30]:(O=_(`space-y-1`,n),t[29]=n,t[30]=O),j=f.length>0?(0,Z.jsxs)(Z.Fragment,{children:[f.map(e=>(0,Z.jsx)(W,{selected:b===e.id,asChild:!0,children:(0,Z.jsx)(`button`,{className:`justify-start`,onClick:()=>S(e),children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,Z.jsx)(`span`,{children:e.label})]})})},e.id)),(0,Z.jsx)(H,{className:`my-2`})]}):null,t[10]=b,t[11]=n,t[12]=v,t[13]=s,t[14]=o,t[15]=a,t[16]=r,t[17]=i,t[18]=x,t[19]=S,t[20]=C,t[21]=w,t[22]=T,t[23]=E,t[24]=D,t[25]=O,t[26]=j}else x=t[18],S=t[19],C=t[20],w=t[21],T=t[22],E=t[23],D=t[24],O=t[25],j=t[26];let M;t[31]!==b||t[32]!==S||t[33]!==C||t[34]!==w||t[35]!==T||t[36]!==D?(M=D?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`Project`,items:T,activeTabId:b,onItemClick:S,showSeparator:!1}),(0,Z.jsx)($,{label:`Customize`,items:w,activeTabId:b,onItemClick:S,showSeparator:!1,className:`pt-3`}),(0,Z.jsx)($,{label:`Advanced`,items:C,activeTabId:b,onItemClick:S,showSeparator:!1,className:`pt-3`})]}):null,t[31]=b,t[32]=S,t[33]=C,t[34]=w,t[35]=T,t[36]=D,t[37]=M):M=t[37];let N;t[38]!==b||t[39]!==x||t[40]!==S||t[41]!==E?(N=E?(0,Z.jsx)($,{items:x,activeTabId:b,onItemClick:S,showSeparator:!1}):null,t[38]=b,t[39]=x,t[40]=S,t[41]=E,t[42]=N):N=t[42];let P;return t[43]!==O||t[44]!==j||t[45]!==M||t[46]!==N?(P=(0,Z.jsxs)(`div`,{className:O,children:[j,M,N]}),t[43]=O,t[44]=j,t[45]=M,t[46]=N,t[47]=P):P=t[47],P}function gt(e){return e.id!==`project`}function _t(e){return ft.has(e.id)}function vt(e){return dt.has(e.id)}function yt(e){return ut.has(e.id)}function bt(e){return lt.has(e.id)}function xt(e){return ct.has(e.id)}function St(e){return e.id!==`account`}var Ct=w(`app.settings-view.ui`),wt=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,Tt=`h-7 rounded-full px-4 data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:shadow-sm`,Et=`frosted-surface backdrop-blur-2xl`,Dt=(0,X.lazy)(()=>K(()=>import(`./settings-general-view-72s5xgPj.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]))),Ot=(0,X.lazy)(()=>K(()=>import(`./project-settings-view-Cb0iiyad.js`),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,19]))),kt=(0,X.lazy)(()=>K(()=>import(`./project-env-vars-view-D60J_-qQ.js`),__vite__mapDeps([24,1,5,6,9,19,8,3,4]))),At=(0,X.lazy)(()=>K(()=>import(`./project-model-aliases-view-EClnOgBH.js`),__vite__mapDeps([25,1,5,6,9,19,8,3,4]))),jt=(0,X.lazy)(()=>K(()=>import(`./project-tools-view-B_WnVICB.js`),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))),Mt=(0,X.lazy)(()=>K(()=>import(`./providers-list-view-CYy82_hl.js`),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,28,29,30,31,32,33]))),Nt=(0,X.lazy)(()=>K(()=>import(`./settings-models-view-xIRY7PvW.js`),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,28,29,30,31,32,35,33]))),Pt=(0,X.lazy)(()=>K(()=>import(`./settings-mcp-servers-view-B8_vnfl6.js`),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,37,31,30,32,19]))),Ft=(0,X.lazy)(()=>K(()=>import(`./settings-slack-view-RFLP0USW.js`),__vite__mapDeps([38,1,5,6,9]))),It=(0,X.lazy)(()=>K(()=>import(`./settings-logs-view-CkkVgGvv.js`),__vite__mapDeps([39,1,5,6,9,8,3,4]))),Lt=(0,X.lazy)(()=>K(()=>import(`./settings-skills-view-qWbr0Vl2.js`),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,41,37,31,30,32,33,42,19]))),Rt=(0,X.lazy)(()=>K(()=>import(`./settings-rules-view-DIk0ghSW.js`),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,41,37,31,30,32,33,42,19]))),zt=(0,X.lazy)(()=>K(()=>import(`./settings-slash-commands-view-zFWoR_R7.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,41,37,31,30,32,19]))),Bt=(0,X.lazy)(()=>K(()=>import(`./settings-subagents-view-BZr1NkVp.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,41,37,31,30,32,42,19]))),Vt=(0,X.lazy)(()=>K(()=>import(`./settings-instructions-view-DN4-73KP.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))),Ht=(0,X.lazy)(()=>K(()=>import(`./settings-system-prompt-view-mQErde93.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))),Ut=(0,X.lazy)(()=>K(()=>import(`./account-view-Chzj6v7a.js`),__vite__mapDeps([48,1,5,6,37,7,8,3,4,32,9,11]))),Wt=(0,X.lazy)(()=>K(()=>import(`./conversation-history-view-ukfe_7qw.js`),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,37,35]))),Gt=(0,X.lazy)(()=>K(()=>import(`./settings-storage-view-BS2k7E74.js`),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,37,31,30,32,35,20]))),Kt=(0,X.lazy)(()=>K(()=>import(`./settings-statistics-view-BgrzVn4R.js`),__vite__mapDeps([51,1,5,6,35]))),qt=[`general`,`providers`,`models`,`skills`,`rules`,`slash-commands`,`subagents`,`instructions`,`system-prompt`,`mcp-servers`,`slack`,`logs`,`statistics`,`history`,`storage`,`account`];function Jt(e){let t=(0,Y.c)(2),{title:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Z.jsx)(ae,{title:n,children:`Content coming soon...`}),t[0]=n,t[1]=r),r}function Yt(e){return e.startsWith(`/settings/general`)?`general`:e.startsWith(`/settings/providers`)?`providers`:e.startsWith(`/settings/models`)?`models`:e.startsWith(`/settings/skills`)?`skills`:e.startsWith(`/settings/rules`)?`rules`:e.startsWith(`/settings/slash-commands`)?`slash-commands`:e.startsWith(`/settings/subagents`)?`subagents`:e.startsWith(`/settings/instructions`)?`instructions`: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 Xt(e){let t=e.match(/^\/settings\/providers\/([^/]+)$/);return t?decodeURIComponent(t[1]):null}function Zt(e,t,n){return e&&qt.includes(e)?e:t&&qt.includes(t)?t:Yt(n)}function Qt(e,t,n,r,i){return e?`project-tools`:t?`project-model-aliases`:n?`project-env-vars`:r?`project`:i}function $t(e,t,n,r,i){return e?`Tools`:t?`Model Aliases`:n?`Environment Variables`:r?`Project`:st.find(e=>e.id===i)?.label??`Settings`}function en(e,t){return e===`/settings`||e===`/settings/project`||[`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`].some(t=>e.startsWith(t))||t&&e.startsWith(`/settings/account`)}function tn(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`);return{isProjectRoute:n,isProjectToolsRoute:r,isProjectModelAliasesRoute:i,isProjectEnvVarsRoute:a,isProjectSettingsRoute:n&&!a&&!i&&!r}}function nn(e,t){let n=(0,Y.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,X.useEffect)(r,i)}function rn(e){let t=(0,Y.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,Z.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden p-2.5`,children:(0,Z.jsx)(re,{className:`min-h-0 flex-1`,children:(0,Z.jsx)(`div`,{className:`py-2`,children:(0,Z.jsx)(ht,{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 an(e){let t=(0,Y.c)(21),{settingsHeaderTitle:n,isProjectSettingsScope:r,selectedProject:i,selectedProjectId:a,settingsScope:o,onScopeChange:s,onRequestClose:c}=e,u;t[0]!==r||t[1]!==i?(u=r&&i?(0,Z.jsx)(de,{project:i,elevated:!1,className:`h-7 w-7 shrink-0 rounded-md`,iconClassName:`h-3.5 w-3.5`}):(0,Z.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,Z.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=_(l.sectionTitle,`truncate`),t[3]=d):d=t[3];let f;t[4]===n?f=t[5]:(f=(0,Z.jsx)(`span`,{className:d,children:n}),t[4]=n,t[5]=f);let p;t[6]!==u||t[7]!==f?(p=(0,Z.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 h;t[9]!==s||t[10]!==a||t[11]!==o?(h=a?(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-4 flex justify-center`,children:(0,Z.jsx)(ue,{value:o,onValueChange:e=>{(e===`project`||e===`general`)&&s(e)},className:`pointer-events-auto electrobun-webkit-app-region-no-drag`,children:(0,Z.jsxs)(fe,{className:wt,children:[(0,Z.jsx)(pe,{value:`project`,className:Tt,children:`Project`}),(0,Z.jsx)(pe,{value:`general`,className:Tt,children:`General`})]})})}):null,t[9]=s,t[10]=a,t[11]=o,t[12]=h):h=t[12];let g,v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsx)(m,{className:`h-4 w-4`}),v=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Close`}),t[13]=g,t[14]=v):(g=t[13],v=t[14]);let y;t[15]===c?y=t[16]:(y=(0,Z.jsx)(`div`,{className:`ml-auto flex items-center gap-2 electrobun-webkit-app-region-no-drag`,children:(0,Z.jsxs)(M,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:c,children:[g,v]})}),t[15]=c,t[16]=y);let b;return t[17]!==p||t[18]!==h||t[19]!==y?(b=(0,Z.jsxs)(`div`,{className:`relative flex h-14 shrink-0 items-start px-4 pt-4 pb-2 electrobun-webkit-app-region-drag`,children:[p,h,y]}),t[17]=p,t[18]=h,t[19]=y,t[20]=b):b=t[20],b}function on(e){let t=(0,Y.c)(10),{isMobile:n,mobileShowSidebar:r,isProviderDetailRoute:i,activeSectionLabel:a,onShowSidebar:o}=e;if(!n||r||i)return null;let s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(v,{className:`h-4 w-4`}),c=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Show settings menu`}),t[0]=s,t[1]=c):(s=t[0],c=t[1]);let u;t[2]===o?u=t[3]:(u=(0,Z.jsxs)(M,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:o,children:[s,c]}),t[2]=o,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=_(l.sectionTitle,`truncate text-foreground`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,Z.jsx)(`span`,{className:d,children:a}),t[5]=a,t[6]=f);let p;return t[7]!==u||t[8]!==f?(p=(0,Z.jsx)(`div`,{className:`px-6 pb-0 pt-6`,children:(0,Z.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 sn(e){let t=(0,Y.c)(19),{isProjectToolsRoute:n,isProjectModelAliasesRoute:r,isProjectEnvVarsRoute:i,isProjectSettingsRoute:a,projectId:o,activeTab:s,locationKey:c,onboardingResetSignal:l,handleProjectUpdated:u}=e;if(n&&o){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(U,{}),t[0]=e):e=t[0];let n;return t[1]!==u||t[2]!==o?(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(jt,{projectId:o,onProjectUpdated:u})}),t[1]=u,t[2]=o,t[3]=n):n=t[3],n}if(r&&o){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(U,{}),t[4]=e):e=t[4];let n;return t[5]!==u||t[6]!==o?(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(At,{projectId:o,onProjectUpdated:u})}),t[5]=u,t[6]=o,t[7]=n):n=t[7],n}if(i&&o){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(U,{}),t[8]=e):e=t[8];let n;return t[9]===o?n=t[10]:(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(kt,{projectId:o})}),t[9]=o,t[10]=n),n}if(a&&o){let e;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(U,{}),t[11]=e):e=t[11];let n;return t[12]!==u||t[13]!==o?(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(Ot,{projectId:o,onProjectUpdated:u})}),t[12]=u,t[13]=o,t[14]=n):n=t[14],n}let d;return t[15]!==s||t[16]!==c||t[17]!==l?(d=cn(s,c,l),t[15]=s,t[16]=c,t[17]=l,t[18]=d):d=t[18],d}function cn(e,t,n){return{general:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Dt,{onboardingResetSignal:n})}),providers:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{label:`Loading providers...`,size:`lg`}),children:(0,Z.jsx)(Mt,{})}),models:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{label:`Loading models...`,size:`lg`}),children:(0,Z.jsx)(Nt,{})}),skills:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Lt,{},t)}),rules:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Rt,{})}),"slash-commands":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(zt,{})}),subagents:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Bt,{})}),instructions:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Vt,{})}),"system-prompt":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Ht,{})}),"mcp-servers":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Pt,{})}),slack:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Ft,{})}),logs:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(It,{})}),statistics:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Kt,{})}),history:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Wt,{})}),storage:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Gt,{})}),account:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(U,{}),children:(0,Z.jsx)(Ut,{})})}[e]??(0,Z.jsx)(Jt,{title:`Settings`})}function ln({onRequestClose:e}){let{tab:t,projectId:n}=O(),r=A(),i=k(),a=le(),o=q(e=>e.selectedProjectId),s=q(e=>e.projects),{isProjectRoute:c,isProjectToolsRoute:l,isProjectModelAliasesRoute:u,isProjectEnvVarsRoute:d,isProjectSettingsRoute:f}=tn(n,i.pathname),m=Xt(i.pathname)!==null,h=Zt(new URLSearchParams(i.search).get(`tab`),t,i.pathname),g=J(),[v,y]=(0,X.useState)(!0),[b,x]=(0,X.useState)(0),S=(0,X.useRef)(null),C=(0,X.useRef)(null),w=Qt(l,u,d,c,h),[T,E]=(0,X.useState)(()=>pt(w));(0,X.useEffect)(()=>{E(pt(w))},[w]);let D=(0,X.useCallback)(e=>{if(E(e),e===`project`&&o){r(`/settings/project/${o}`);return}e===`general`&&r(`/settings/general`)},[r,o]),j=(0,X.useMemo)(()=>s.find(e=>e.projectId===o)??null,[s,o]),M=T===`project`&&j!==null,N=M?`${p(j)} Settings`:`General Settings`,P=(0,X.useMemo)(()=>$t(l,u,d,f,h),[h,d,u,f,l]),F=(0,X.useCallback)(()=>{g&&y(!1)},[g]),I=(0,X.useCallback)(()=>{y(!0)},[]),L=(0,X.useCallback)(async()=>{try{await ne(),x(e=>e+1)}catch(e){Ct.error(`Failed to reset onboarding:`,e)}},[]),R=(0,X.useCallback)(async()=>{B(n);try{let e=await ie();a({type:ce.SetProjects,projects:e.projects,cloneRootPath:e.cloneRootPath})}catch(e){throw Ct.error(`Failed to refresh projects after settings update:`,e),e}},[a,n]);return(0,X.useEffect)(()=>{en(i.pathname,g)&&r(`/settings/general`,{replace:!0})},[i.pathname,r,g]),nn(C,e),(0,Z.jsxs)(`div`,{ref:C,role:`dialog`,"aria-modal":`true`,"aria-label":`Settings`,className:_(`rounded-2xl border border-border shadow-lg`,Et,`flex h-full w-full flex-col overflow-hidden md:h-[95vh] md:w-[80vw] md:max-w-[1400px]`),children:[(0,Z.jsx)(an,{settingsHeaderTitle:N,isProjectSettingsScope:M,selectedProject:j,selectedProjectId:o,settingsScope:T,onScopeChange:D,onRequestClose:e}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,Z.jsx)(ve,{ref:S,collapsible:!0,isMobile:g,mobileShowSidebar:v,sidebarClassName:_(`overflow-hidden rounded-tr-2xl`,Et),sidebar:(0,Z.jsx)(rn,{selectedProjectId:o,settingsScope:T,onResetOnboarding:L,onNavItemSelect:F}),children:(0,Z.jsxs)(`div`,{className:_(`relative flex h-full min-h-0 flex-col overflow-hidden py-2.5 pl-2.5`,g?null:`ml-2.5`),children:[(0,Z.jsx)(on,{isMobile:g,mobileShowSidebar:v,isProviderDetailRoute:m,activeSectionLabel:P,onShowSidebar:I}),(0,Z.jsx)(sn,{isProjectToolsRoute:l,isProjectModelAliasesRoute:u,isProjectEnvVarsRoute:d,isProjectSettingsRoute:f,projectId:n,activeTab:h,locationKey:i.key,onboardingResetSignal:b,handleProjectUpdated:R})]})})})]})}export{ln as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ar as t,Mr as n,Nr as r,Oi as i,Pr as a,jr as o,ki as s,kr as c,mr as l,tr as u}from"./interactive-BrHVRHmQ.js";var d=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,e.SelectProject=`SELECT_PROJECT`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetStreamAgentMode=`SET_STREAM_AGENT_MODE`,e.SetContextUsage=`SET_CONTEXT_USAGE`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.CloseSidebar=`CLOSE_SIDEBAR`,e.OpenProjectPanel=`OPEN_PROJECT_PANEL`,e.CloseProjectPanel=`CLOSE_PROJECT_PANEL`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.RemoveThread=`REMOVE_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.ClearPaneCompleted=`CLEAR_PANE_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.UpdateChatTitle=`UPDATE_CHAT_TITLE`,e.FocusChatInput=`FOCUS_CHAT_INPUT`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateMessage=`UPDATE_MESSAGE`,e.UpdateMessageCheckpointRef=`UPDATE_MESSAGE_CHECKPOINT_REF`,e.SetDevServerToolSession=`SET_DEV_SERVER_TOOL_SESSION`,e.SetThreadToolSession=`SET_THREAD_TOOL_SESSION`,e.ClearThreadToolSession=`CLEAR_THREAD_TOOL_SESSION`,e.SetThreadCreationSummary=`SET_THREAD_CREATION_SUMMARY`,e.ClearThreadCreationSummary=`CLEAR_THREAD_CREATION_SUMMARY`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.UpdateToolExecutionOutput=`UPDATE_TOOL_EXECUTION_OUTPUT`,e.AppendToolExecutionOutput=`APPEND_TOOL_EXECUTION_OUTPUT`,e.AppendSubagentEvent=`APPEND_SUBAGENT_EVENT`,e.ClearToolCallProgress=`CLEAR_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.IncrementStreamEventCount=`INCREMENT_STREAM_EVENT_COUNT`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e.ClearSelection=`CLEAR_SELECTION`,e.SetChatInputDraft=`SET_CHAT_INPUT_DRAFT`,e.ClearChatInputDraft=`CLEAR_CHAT_INPUT_DRAFT`,e.StartAutoRoute=`START_AUTO_ROUTE`,e.EndAutoRoute=`END_AUTO_ROUTE`,e.AddChatPane=`ADD_CHAT_PANE`,e.RemoveChatPane=`REMOVE_CHAT_PANE`,e.SetFocusedPane=`SET_FOCUSED_PANE`,e.SetNewChatStarting=`SET_NEW_CHAT_STARTING`,e.SetPrimaryConversationId=`SET_PRIMARY_CONVERSATION_ID`,e.SetPaneConversationId=`SET_PANE_CONVERSATION_ID`,e.SetPaneMessages=`SET_PANE_MESSAGES`,e.AddPaneMessage=`ADD_PANE_MESSAGE`,e.SetActiveStreamPane=`SET_ACTIVE_STREAM_PANE`,e.HydrateProjectChatPanes=`HYDRATE_PROJECT_CHAT_PANES`,e}({}),f=l,p={projects:[],cloneRootPath:null,projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:0,primaryConversationId:void 0,queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingEventCount:0,threadStreamingStates:{},threadMultiPaneStates:{},projectModelSelections:{},paneModelSelections:{},sidebarOpen:!0,projectPanelView:`projects`,projectPanelProjectId:null,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],processingRuns:[],completedThreadIds:[],completedThreadPaneIds:{},completedPaneIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},subagentTranscripts:{},devServerToolSession:null,threadToolSessions:{},threadCreationSummaries:{},pendingChatMessage:null,diffComments:{},chatInputDrafts:{},pendingAutoRoutes:{},focusedPane:`primary`,extraChatPanes:{},activeStreamPane:null},m={open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};function h(e,t){return`${e}:${t}`}function ee(e,t,n=f){return t?e[h(t,n)]??null:null}function te(e,t){switch(t.type){case d.StartAutoRoute:{let n=h(t.route.threadId,t.route.paneId);return{...e,pendingAutoRoutes:{...e.pendingAutoRoutes,[n]:t.route}}}case d.EndAutoRoute:{let n=h(t.threadId,t.paneId);if(!e.pendingAutoRoutes[n])return e;let{[n]:r,...i}=e.pendingAutoRoutes;return{...e,pendingAutoRoutes:i}}default:return null}}function g(e,t){let n=`${t}:`,r=new Set([f]);for(let t of Object.keys(e))t.startsWith(n)&&r.add(t.slice(n.length));return[...r]}function ne(e,t){let n=t?`${t}:`:null,r=``;for(let t of Object.keys(e))n&&!t.startsWith(n)||e[t].isStreaming&&(r+=`${t}\n`);return r}function re(e,t,n=f){return e.includes(`${y(t,n)}\n`)}function ie(e,t){return e.includes(`${t}:`)}function ae(e,t,n,r){return t.includes(e)||ie(n,e)?!0:r?.threadId===e}var oe={isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingEventCount:0},_=oe;function v(){return{...oe,streamingSegments:[]}}function y(e,t=f){return`${e}:${t}`}function b(e,t,n=f){return t?e[y(t,n)]??_:_}function se(e,t){let n=new Set([f,...t.sessionPaneIds??[],...g(t.streamingStates,e)]);for(let r of n)if(t.hasSession(r)||b(t.streamingStates,e,r).isStreaming)return!0;return!1}function x(e,t){return t.threadId??e.selectedThreadId}function ce(e){return e??f}function le(e,t,n,r){return!n||!t.includes(n)?!1:ce(e)===r}function ue(e,t,n){return t?b(e.threadStreamingStates,t,n).isStreaming?!0:le(e.activeStreamPane,e.processingThreadIds,t,n):!1}function S(e,t){return t.paneId??e.activeStreamPane??f}function de(e,t,n){return t===e.selectedThreadId?e.activeStreamPane===null?n===f:e.activeStreamPane===n:!1}function C(e,t,n,r,i=!1){if(!t)return{...e,...r,toolCallProgress:i?{}:e.toolCallProgress};let a=y(t,n),o={...e.threadStreamingStates,[a]:r};return de(e,t,n)?{...e,...r,threadStreamingStates:o,toolCallProgress:i?{}:e.toolCallProgress}:{...e,threadStreamingStates:o}}function fe(){return{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1}}var w={focusedPane:f,extraChatPanes:{},activeStreamPane:null};function pe(){return{focusedPane:f,extraChatPanes:{},activeStreamPane:null}}function T(e){return{focusedPane:e.focusedPane,extraChatPanes:e.extraChatPanes,activeStreamPane:e.activeStreamPane}}function me(e,t){return t?e[t]??w:w}function he(e){let t={};for(let[n,r]of Object.entries(e))t[n]={...r,messages:[...r.messages]};return t}function E(e){return{...e,extraChatPanes:he(e.extraChatPanes)}}function D(e,t,n){let r=E(n),i=t===null?e.threadMultiPaneStates:{...e.threadMultiPaneStates,[t]:r};return t===e.selectedThreadId?{...e,...r,threadMultiPaneStates:i}:{...e,threadMultiPaneStates:i}}function O(e,t,n){let r=e.threadMultiPaneStates;return t&&(r={...r,[t]:E(T(e))}),{...E(me(r,n)),threadMultiPaneStates:r}}function k(e,t){return D(e,e.selectedThreadId,{...T(e),...t})}function ge(e,t){let n=e.chatPanesByThread[t];if(!n)return E(w);let r={};for(let e of n.panes)r[e.paneId]={conversationId:e.conversationId,messages:[],messagesLoaded:!1};return{focusedPane:n.focusedPaneId,extraChatPanes:r,activeStreamPane:null}}function _e(e,t){if(!t)return e;let n=he(e.extraChatPanes);for(let[e,r]of Object.entries(t.extraChatPanes)){let t=n[e];if(!t){n[e]=r;continue}r.messagesLoaded&&(n[e]={...t,messages:r.messages,messagesLoaded:!0})}let r=t.focusedPane in n&&!(t.focusedPane in e.extraChatPanes);return{...e,extraChatPanes:n,focusedPane:r?t.focusedPane:e.focusedPane}}function ve(e,t){return t===f?e.messages:e.extraChatPanes[t]?.messages??[]}function ye(e,t){return t===f?e.primaryConversationId:e.extraChatPanes[t]?.conversationId}function be(e,t){return t===f?e.messagesLoaded:e.extraChatPanes[t]?.messagesLoaded??!1}function xe(e){return Object.keys(e.extraChatPanes)}function Se(e,t){let n=new Set(t.threadIds),r={...e.threadMultiPaneStates};for(let n of t.threadIds)r[n]=_e(ge(t,n),n===e.selectedThreadId?T(e):e.threadMultiPaneStates[n]);return!e.selectedThreadId||!n.has(e.selectedThreadId)?{...e,threadMultiPaneStates:r}:{...e,...r[e.selectedThreadId],threadMultiPaneStates:r}}function Ce(e,t){return t.paneId===f?e:e.extraChatPanes[t.paneId]?k(e,{focusedPane:t.paneId}):k(e,{focusedPane:t.paneId,extraChatPanes:{...e.extraChatPanes,[t.paneId]:{conversationId:t.conversationId,messages:[],messagesLoaded:!1}}})}function we(e,t){if(t.paneId===f||!e.extraChatPanes[t.paneId])return e;let{[t.paneId]:n,...r}=e.extraChatPanes;return k(e,{extraChatPanes:r,focusedPane:e.focusedPane===t.paneId?f:e.focusedPane,activeStreamPane:e.activeStreamPane===t.paneId?null:e.activeStreamPane})}function Te(e,t){if(t.paneId===f)return{...e,messages:t.messages,messagesLoaded:!0};let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:t.messages,messagesLoaded:!0}}}):e}function Ee(e,t){if(t.paneId===f)return e;let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,conversationId:t.conversationId,messages:[],messagesLoaded:!0}}}):e}function De(e,t){if(t.paneId===f)return{...e,messages:[...e.messages,t.message]};let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:[...n.messages,t.message]}}}):e}function Oe(e,t){if(!e.selectedThreadId||t.paneId===null)return k(e,{activeStreamPane:null});let n=b(e.threadStreamingStates,e.selectedThreadId,t.paneId);return{...k(e,{activeStreamPane:t.paneId}),...n}}function ke(e,t){switch(t.type){case d.HydrateProjectChatPanes:return Se(e,t);case d.AddChatPane:return Ce(e,t);case d.RemoveChatPane:return we(e,t);case d.SetFocusedPane:return k(e,{focusedPane:t.paneId});case d.SetPaneConversationId:return Ee(e,t);case d.SetPaneMessages:return Te(e,t);case d.AddPaneMessage:return De(e,t);case d.SetActiveStreamPane:return Oe(e,t);default:return null}}function Ae(e,t){return!!(t.historyEpoch!==void 0&&t.historyEpoch!==e.chatHistoryEpoch||t.conversationId&&e.primaryConversationId&&t.conversationId!==e.primaryConversationId)}function A(e,t){let n=e.selectedThreadId?e.threadCreationSummaries[e.selectedThreadId]:void 0;return!n||t.some(e=>e.messageId===n.messageId)?t:[n,...t]}function je(e,t){let n=t.paneId??f;if(n!==f){if(t.threadId&&t.threadId!==e.selectedThreadId)return e;let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:[...r.messages,t.message]}}}):e}return t.threadId&&t.threadId!==e.selectedThreadId?e:{...e,messages:[...e.messages,t.message]}}function Me(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=e.messages.some(e=>e.messageId===t.messageId)?e.messages.map(e=>e.messageId===t.messageId?{...e,content:t.content}:e):[...e.messages,{messageId:t.messageId,sender:`agent`,content:t.content,contentType:`markdown`,timestamp:new Date().toISOString(),isThinking:!1}];return{...e,messages:n}}function Ne(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=t.paneId??f;if(n!==f){let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:r.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}}):e}return{...e,messages:e.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}function Pe(e,t){if(!e.threadToolSessions[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadToolSessions;return{...e,threadToolSessions:r}}function Fe(e,t){if(!e.threadCreationSummaries[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadCreationSummaries;return{...e,threadCreationSummaries:r}}function Ie(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??``,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:t.executionOutput}}}}function Le(e,t){let n=e.toolCallProgress[t.toolCallId],r=n?.executionOutput??``;return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??`agent`,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:r+t.delta}}}}function Re(e,t){if(!t.toolCallId)return{...e,toolCallProgress:{}};let{[t.toolCallId]:n,...r}=e.toolCallProgress;return{...e,toolCallProgress:r}}function ze(e,t){let{[t.threadId]:n,...r}=e.chatInputDrafts;return{...e,chatInputDrafts:r}}function Be(e,t){let n=new Set(e.startingNewChatPaneIds);return t.isStarting?n.add(t.paneId):n.delete(t.paneId),{...e,startingNewChatPaneIds:[...n]}}function Ve(e,t){let n=O(e,e.selectedThreadId,t.threadId),r=b(e.threadStreamingStates,t.threadId,f);return{...e,...r,...n,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:t.focusInput??!1,subagentTranscripts:{}}}function He(e,t){let n=O(e,e.selectedThreadId,``);return{...e,...v(),...n,selectedThreadId:null,selectedProjectId:t.projectId,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:!1,subagentTranscripts:{}}}function Ue(e,t){return Ae(e,t)?e:{...e,messages:A(e,t.messages),messagesLoaded:!0}}function We(e,t){let n=t.conversationId?.trim()||void 0;return e.primaryConversationId===n?e:{...e,primaryConversationId:n}}function Ge(e,t){return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]}}function Ke(e,t){return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)}}function qe(e,t){let n=t.conversationId?.trim()||void 0;return{...e,messages:A(e,[]),messagesLoaded:!0,chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:n}}function Je(e,t){return{...e,devServerToolSession:t.session}}function Ye(e,t){return{...e,threadToolSessions:{...e.threadToolSessions,[t.session.threadId]:t.session}}}function Xe(e,t){return{...e,threadCreationSummaries:{...e.threadCreationSummaries,[t.threadId]:t.message}}}function Ze(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{...n,...t.progress}}}}function Qe(e,t){let n=e.subagentTranscripts[t.toolCallId]??[];return{...e,subagentTranscripts:{...e.subagentTranscripts,[t.toolCallId]:[...n,t.event]}}}function $e(e,t){return{...e,pendingChatMessage:t.message}}function et(e,t){return{...e,pendingChatMessage:null}}function tt(e,t){return{...e,chatInputDrafts:{...e.chatInputDrafts,[t.threadId]:t.draft}}}function nt(e,t){return{...e,...v(),selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,...pe()}}var rt={[d.SetMessages]:Ue,[d.SetPrimaryConversationId]:We,[d.AddMessage]:je,[d.EnqueueChatMessage]:Ge,[d.RemoveQueuedChatMessage]:Ke,[d.ClearMessages]:qe,[d.UpdateMessage]:Me,[d.UpdateMessageCheckpointRef]:Ne,[d.SetDevServerToolSession]:Je,[d.SetThreadToolSession]:Ye,[d.ClearThreadToolSession]:Pe,[d.SetThreadCreationSummary]:Xe,[d.ClearThreadCreationSummary]:Fe,[d.UpdateToolCallProgress]:Ze,[d.UpdateToolExecutionOutput]:Ie,[d.AppendToolExecutionOutput]:Le,[d.AppendSubagentEvent]:Qe,[d.ClearToolCallProgress]:Re,[d.SetPendingChatMessage]:$e,[d.ClearPendingChatMessage]:et,[d.SetChatInputDraft]:tt,[d.ClearChatInputDraft]:ze,[d.SetNewChatStarting]:Be,[d.SelectThread]:Ve,[d.SelectProject]:He,[d.ClearSelection]:nt};function it(e,t){let n=rt[t.type];return n?n(e,t):null}var at=u(`store.project`);function ot(e,t){switch(t.type){case d.SetProjects:{let n={...e.projectModelSelections};for(let e of t.projects)for(let t of e.threads){if(!t.model)continue;let e=n[t.threadId];n[t.threadId]={id:t.model,provider:t.modelProvider,name:e?.name??t.model,description:e?.description??``,context_length:e?.context_length,contextWindow:e?.contextWindow,features:e?.features,input_modalities:e?.input_modalities,max_output:e?.max_output,pricing:e?.pricing,tarsk_use:e?.tarsk_use,coding_index:e?.coding_index,supportsImages:e?.supportsImages}}return{...e,projects:t.projects,cloneRootPath:t.cloneRootPath===void 0?e.cloneRootPath:t.cloneRootPath,projectModelSelections:n}}case d.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case d.SetProjectModel:{at.debug(`Set project model`,{threadId:t.threadId,paneId:t.paneId,model:{id:t.model.id,provider:t.model.provider}});let n=t.paneId??null;return{...e,projects:e.projects.map(e=>{let n=e.threads.some(e=>e.threadId===t.threadId);return{...e,...t.paneId&&n?{lastSelectedModel:t.model.id,lastSelectedModelProvider:t.model.provider}:{},threads:e.threads.map(e=>e.threadId===t.threadId?{...e,model:t.model.id,modelProvider:t.model.provider}:e)}}),projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model},paneModelSelections:n?{...e.paneModelSelections,[n]:t.model}:e.paneModelSelections}}case d.SetProcessingThreads:return{...e,processingThreadIds:t.threadIds,processingRuns:t.processingRuns??e.processingRuns.filter(e=>t.threadIds.includes(e.threadId))};case d.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case d.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId),processingRuns:e.processingRuns.filter(e=>e.threadId!==t.threadId)};case d.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case d.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case d.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};case d.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case d.RemoveThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case d.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId],completedThreadPaneIds:t.paneId===void 0?e.completedThreadPaneIds:{...e.completedThreadPaneIds,[t.threadId]:t.paneId},completedPaneIds:t.paneId===void 0||t.paneId===e.focusedPane||e.completedPaneIds.includes(t.paneId)?e.completedPaneIds:[...e.completedPaneIds,t.paneId]};case d.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case d.ClearPaneCompleted:{let n=Object.entries(e.completedThreadPaneIds).filter(([,e])=>e===t.paneId).map(([e])=>e);return{...e,completedThreadIds:e.completedThreadIds.filter(e=>!n.includes(e)),completedThreadPaneIds:Object.fromEntries(Object.entries(e.completedThreadPaneIds).filter(([,e])=>e!==t.paneId)),completedPaneIds:e.completedPaneIds.filter(e=>e!==t.paneId)}}case d.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case d.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case d.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case d.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};case d.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case d.UpdateChatTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,chatTitles:{...e.chatTitles,[t.paneId]:t.title}}:e)}:e)};default:return null}}function j(e){return e.type===`tool_use`}function M(e){return e.type===`tool-result`}function N(e){return e.type===`text`}function P(e){return typeof e==`string`?e.replace(/\\n/g,`
|
|
2
|
-
`).replace(/✅/g,`✓`):``}function st(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];if(!r||!N(r))break;t+=1}return t}function ct(e){let t=st(e);return t===0?null:e.slice(e.length-t).filter(N).map(e=>P(e.text).trim()).filter(e=>e.length>0).join(`
|
|
3
|
-
|
|
4
|
-
`).trim()||null}function lt(e){let t=U(e);return t?ct(t):P(e).trim()||null}function ut(e){let t=/\[([A-Za-z]+)\]\s*/g,n,r=0;for(let i of e.matchAll(t))n=i[1],r=i.index+i[0].length;return{label:n,contentStart:r}}function dt(e,t,n,r){try{let i=JSON.parse(e.slice(t,n+1));if(Array.isArray(i)){for(let e of i)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&r.push(e)}}return!0}catch{return!1}}function F(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let{label:n,contentStart:r}=ut(t);if(n){let e=t.slice(r);if(e)return[{type:`reasoning`,text:e,label:n}]}let i=[],a=0;for(;a<t.length;){let e=t.indexOf(`[`,a);if(e===-1){let e=t.slice(a).trim();e&&i.push({type:`reasoning`,text:e});break}let n=t.slice(a,e).trim();n&&i.push({type:`reasoning`,text:n});let r=I(t,e);if(r===-1){let n=t.slice(e).trim();n&&i.push({type:`reasoning`,text:n});break}if(!dt(t,e,r,i)){let n=t.slice(e,r+1).trim();n&&i.push({type:`reasoning`,text:n})}a=r+1}return i.length>0?i:null}function I(e,t){let n=0,r=!1,i=!1;for(let a=t;a<e.length;a++){let t=e[a];if(r){i?i=!1:t===`\\`?i=!0:t===`"`&&(r=!1);continue}if(t===`"`){r=!0;continue}if(t===`[`)n++;else if(t===`]`&&(n--,n===0))return a}return-1}function ft(e,t=0){let n=[],r=t;for(;r<e.length;){for(;r<e.length&&/\s/.test(e.charAt(r));)r++;if(r>=e.length||e.charAt(r)!==`[`)break;let t=I(e,r);if(t===-1)break;try{let i=JSON.parse(e.slice(r,t+1));if(!Array.isArray(i))break;n.push(...R(i))}catch{break}r=t+1}return n.length===0?null:{blocks:n,nextIndex:r}}function L(e,t){let n=[...e];for(let e of t){if(e.type===`tool_use`){let t=n.findIndex(t=>t.type===`tool_use`&&t.id===e.id);t>=0?n[t]=e:n.push(e);continue}if(e.type===`tool-result`){let t=n.findIndex(t=>t.type===`tool-result`&&t.toolCallId===e.toolCallId);t>=0?n[t]=e:n.push(e);continue}n.push(e)}return n}function R(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function z(e){return Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e&&typeof e.label==`string`&&typeof e.pattern==`string`&&(e.scope===`session`||e.scope===`project`)):[]}function pt(e){if(e.type!==`long_running_confirmation`||typeof e.prompt!=`object`||e.prompt===null||typeof e.prompt.question!=`string`||!Array.isArray(e.prompt.options))return[];let t=e.prompt;return[{type:`long_running_confirmation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:void 0,question:t.question,options:t.options.filter(e=>typeof e==`string`),context:typeof t.context==`string`?t.context:void 0}}]}function mt(e){if(e.type!==`shell_permission`||typeof e.shellPermission!=`object`||e.shellPermission===null||typeof e.shellPermission.command!=`string`)return[];let t=e.shellPermission;return[{type:`shell_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`shell-permission`,command:t.command,source:t.source===`bash`||t.source===`skill_script`||t.source===`browser_js`?t.source:`bash`,wildcardOptions:z(t.wildcardOptions)}}]}function ht(e){if(e.type!==`seatbelt_escalation`||typeof e.seatbeltEscalation!=`object`||e.seatbeltEscalation===null)return[];let t=e.seatbeltEscalation;return typeof t.command==`string`?[{type:`seatbelt_escalation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`seatbelt-escalation`,command:t.command,projectId:typeof t.projectId==`string`?t.projectId:``,scopes:[`once`,`project`,`session`]}}]:[]}function gt(e){if(e.type!==`web_fetch_permission`||typeof e.webFetchPermission!=`object`||e.webFetchPermission===null||typeof e.webFetchPermission.hostname!=`string`)return[];let t=e.webFetchPermission;return[{type:`web_fetch_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`web-fetch-permission`,hostname:t.hostname,url:typeof t.url==`string`?t.url:``,wildcardOptions:z(t.wildcardOptions)}}]}function B(e){let t=[...pt(e),...mt(e),...ht(e),...gt(e)];if(t.length>0)return t;e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function _t(e){return U(e)?.some(e=>e.type===`tool_use`||e.type===`tool-result`)??!1}var V=/^```+|^~~~+/;function H(e){let t=e.indexOf(`{`),n=e.indexOf(`[`);return t===-1?n:n===-1?t:Math.min(t,n)}function vt(e,t){if(t&&t.fixedIndex>=0)return{index:t.fixedIndex,scan:t};let n=t?.resumeOffset??0;n>e.length&&(n=0);let r=n===0?!1:t?.inFence??!1,i=n;for(;;){let t=e.indexOf(`
|
|
5
|
-
`,i);if(t===-1){let t=e.slice(i),n=V.test(t.trimStart()),a=r||n?-1:H(t);return{index:a===-1?-1:i+a,scan:{fixedIndex:-1,resumeOffset:i,inFence:r}}}let n=e.slice(i,t);if(V.test(n.trimStart()))r=!r;else if(!r){let e=H(n);if(e!==-1){let t=i+e;return{index:t,scan:{fixedIndex:t,resumeOffset:i,inFence:r}}}}i=t+1}}function yt(e){return vt(e).index}function bt(e){try{let t=JSON.parse(e);return Array.isArray(t)?R(t):typeof t==`object`&&t?B(t):null}catch{return e.startsWith(`[`)?xt(e):null}}function xt(e){let t=ft(e);if(!t)return null;let n=e.slice(t.nextIndex).trim();return n?[...t.blocks,{type:`text`,text:n}]:t.blocks}function St(e){let t=Math.max(e.lastIndexOf(`]`),e.lastIndexOf(`}`));if(t===-1)return null;let n=e.substring(0,t+1);try{let r=JSON.parse(n),i=Array.isArray(r)?R(r):B(r),a=e.substring(t+1).trim();return a&&i.push({type:`text`,text:a}),i}catch{return null}}function U(e){return e?Ct(e,yt(e)):null}function Ct(e,t){if(!e)return null;let n=e.trim();if(n.startsWith(`{`)||n.startsWith(`[`)){let e=bt(n);if(e)return e}let r=[];if(t===-1)return null;let i=e.slice(0,t).trim();i&&r.push({type:`text`,text:i});let a=e.slice(t),o=xt(a);if(o)return r.push(...o),r;let s=St(a);return s&&r.push(...s),r.length>0?r:null}function wt(e,t,n){let r=e[e.length-1];return r?.type===t?[...e.slice(0,-1),{type:t,chunks:[...r.chunks,n]}]:[...e,{type:t,chunks:[n]}]}function Tt(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n){if(n.type===`content`)return t;if(n.type!==`thinking`)return-1}}return-1}function Et(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type===`content`)return t;return-1}function Dt(e){let t=e.chunks.join(``);return U(t)??(t.trim()?[{type:`text`,text:t}]:[])}function Ot(e){return e.some(e=>e.type===`tool_use`||e.type===`tool-result`)}function kt(e){let t=new Set,n=new Set,r=[];for(let i=e.length-1;i>=0;i--){let a=e[i];if(a){if(a.type===`tool_use`){if(t.has(a.id))continue;t.add(a.id),r.push(a);continue}if(a.type===`tool-result`){if(n.has(a.toolCallId))continue;n.add(a.toolCallId),r.push(a);continue}r.push(a)}}return r.reverse(),r}function At(e,t){let n=Et(e);if(n===-1)return[...e,{type:`content`,chunks:[t]}];let r=e[n],i=t;if(r?.type===`content`){let e=U(t),n=Dt(r);e&&Ot(e)&&Ot(n)&&(i=JSON.stringify(L(n,e)))}return[...e.slice(0,n),{type:`content`,chunks:[i]},...e.slice(n+1)]}function jt(e,t){let n=U(t);if(!n?.some(e=>e.type===`tool_use`||e.type===`tool-result`))return wt(e,`content`,t);let r=Tt(e),i=n;if(r>=0){let t=e[r];t?.type===`content`&&(i=L(Dt(t),n))}let a=JSON.stringify(i);return r>=0?[...e.slice(0,r),{type:`content`,chunks:[a]},...e.slice(r+1)]:[...e,{type:`content`,chunks:[a]}]}function Mt(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`content`)return n.chunks.join(``)}return``}function Nt(e,t){return[...e,{type:`long_running_confirmation`,prompt:t}]}function Pt(e,t){return[...e,{type:`shell_permission`,prompt:t}]}function Ft(e,t){return[...e,{type:`seatbelt_escalation`,prompt:t}]}function It(e,t){return[...e,{type:`web_fetch_permission`,prompt:t}]}var Lt=new WeakMap;function Rt(e,t,n){if(t.length<n)return!1;for(let r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0}function zt(e){let t=Lt.get(e),n=t?Rt(t.chunks,e.chunks,t.chunkCount):!1;if(t&&n&&e.chunks.length===t.chunkCount)return t.blocks;let r=t!==void 0&&n,i=r?t.text+e.chunks.slice(t.chunkCount).join(``):e.chunks.join(``),a,o;if(e.type===`thinking`)a=F(i)??[];else{let e=vt(i,r?t.scan:void 0);o=e.scan,a=Ct(i,e.index)??(i.trim()?[{type:`text`,text:i}]:[])}return Lt.set(e,{chunks:e.chunks,chunkCount:e.chunks.length,text:i,scan:o,blocks:a}),a}function W(e){let t=[];for(let n of e){if(n.type===`long_running_confirmation`){t.push({type:`long_running_confirmation`,prompt:n.prompt});continue}if(n.type===`shell_permission`){t.push({type:`shell_permission`,prompt:n.prompt});continue}if(n.type===`seatbelt_escalation`){t.push({type:`seatbelt_escalation`,prompt:n.prompt});continue}if(n.type===`web_fetch_permission`){t.push({type:`web_fetch_permission`,prompt:n.prompt});continue}t.push(...zt(n))}return kt(t)}function G(e){return e.type===`thinking-group`}function Bt(e,t=!1){let n=[],r=[],i,a=()=>{r.length>0&&(n.push({type:`thinking-group`,text:r.join(`
|
|
6
|
-
|
|
7
|
-
`),label:i,isCurrentlyStreaming:!1}),r=[],i=void 0)};for(let t of e)if(t.type===`reasoning`&&`text`in t){let e=t;r.push(e.text),e.label&&(i=e.label)}else a(),n.push(t);if(a(),t&&n.length>0){let e=n[n.length-1];if(e.type===`thinking-group`){let t=e;t.label!==`Validated`&&(t.isCurrentlyStreaming=!0)}}return n}function Vt(e){return e.type===`tool-call-group`}var Ht=new Set([`todo`]),K=new Set([`todo`,`ask_user`]),Ut=new Map(r.map((e,t)=>[e.id,t]));function Wt(e){if(G(e))return!1;switch(e.type){case`text`:return e.text.trim().length>0;case`shell_permission`:case`seatbelt_escalation`:case`web_fetch_permission`:case`long_running_confirmation`:return!0;case`tool_use`:return e.name===`ask_user`;case`tool-result`:return!1}}function Gt(e){return G(e)?!1:e.type===`tool_use`?!Ht.has(e.name):e.type===`tool-result`?!K.has(e.toolName):!1}function Kt(e){let t=[],n=[];function r(){n.some(Gt)?t.push({type:`tool-call-group`,items:n}):t.push(...n),n=[]}for(let i of e)Wt(i)?(n.length>0&&r(),t.push(i)):n.push(i);return n.length>0&&r(),t}function q(e){return e.length===0?0:e.split(`
|
|
8
|
-
`).length}function qt(e){let t=0,n=0;if(Array.isArray(e.replacements)){for(let r of e.replacements)if(r&&typeof r==`object`){let e=r;typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText))}return{added:t,removed:n}}return typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText)),{added:t,removed:n}}function Jt(e){let t=new Set;for(let n of e)(n.type===`shell_permission`||n.type===`web_fetch_permission`||n.type===`long_running_confirmation`&&n.prompt.toolCallId)&&t.add(n.prompt.toolCallId);return t}function Yt(e){let t=typeof e.path==`string`&&e.path?e.path:null;return t?t.split(`/`).pop()??t:null}function Xt(e){let t=typeof e.description==`string`?e.description.trim():``;return t?`${t}…`:null}function Zt(e){return(typeof e.intention==`string`?e.intention.trim():``)||null}function Qt(e){let t=Zt(e);return t?`${t}…`:null}function $t(e){let t=e.toLowerCase();return t===`run_js`||t===`run_web_worker`}function en(e){return n(e.name,e.input)?o(`subagents`):t(e.name)}function tn(e){return e.filter(e=>e===`subagents`).length}function nn(e,t){let n=e[0];return o(n!==void 0&&e.every(e=>e===n)?n:`other`).formatNeutral(t)}function J(e){return e.charAt(0).toUpperCase()+e.slice(1)}function rn(){return{categoryCounts:new Map,editedPaths:new Set,completedCommandBlocks:[],linesAdded:0,linesRemoved:0}}function an(e){let t=[],n=new Map;for(let r of e)G(r)||(j(r)?t.push(r):M(r)&&n.set(r.toolCallId,r));return{toolUses:t,groupResults:n,groupToolUseIds:new Set(t.map(e=>e.id))}}function on(e,t){let n=en(e);t.categoryCounts.set(n.id,(t.categoryCounts.get(n.id)??0)+1),n.id===`commands`&&t.completedCommandBlocks.push(e);let r=e.name.toLowerCase();if(r===`edit`||r===`write`){let n=typeof e.input.path==`string`&&e.input.path?e.input.path:e.id;if(t.editedPaths.add(n),r===`edit`){let n=qt(e.input);t.linesAdded+=n.added,t.linesRemoved+=n.removed}else typeof e.input.content==`string`&&(t.linesAdded+=q(e.input.content))}}function sn(e,t,n,r,i){let a=[],o=0,s=null;for(let c of e){if(Ht.has(c.name))continue;let e=t.has(c.id),l=r?.has(c.id)||n.some(e=>M(e)&&e.toolCallId===c.id&&!K.has(e.toolName));e?on(c,i):l||(o+=1,a.push(en(c).id),s=c)}return{pendingCount:o,pendingCategoryIds:a,lastPending:s}}function cn(e,t,n,r){let i=0;for(let a of e.values())if(!K.has(a.toolName)&&(a.isError===!0&&(i+=1),!t.has(a.toolCallId))){let e=n.find(e=>j(e)&&e.id===a.toolCallId);e?on(e,r):r.categoryCounts.set(`other`,(r.categoryCounts.get(`other`)??0)+1)}return i}function ln(e,t){let n=[];for(let[r,i]of e)r===`other`||i===0||n.push({id:r,count:r===`files`?t.size:i});return n.sort((e,t)=>(Ut.get(e.id)??2**53-1)-(Ut.get(t.id)??2**53-1)),n}function un(e,t,r,i){if(!e)return null;if(i.has(e.id))return`Awaiting permission · ${nn(r,t)}`;if(n(e.name,e.input))return Xt(e.input)??`${e.activeDisplayName??a(e.name)}…`;if($t(e.name))return Qt(e.input)??`${e.activeDisplayName??a(e.name)}…`;let o=e.activeDisplayName??a(e.name),s=Yt(e.input);return s?`${o} ${s}…`:`${o}…`}function dn(e){if(e.length!==1)return null;let t=e[0];return t&&$t(t.name)?Zt(t.input):null}function Y(e,t,n){let{toolUses:r,groupResults:i,groupToolUseIds:a}=an(e),o=Jt(t),s=rn(),{pendingCount:c,pendingCategoryIds:l,lastPending:u}=sn(r,i,t,n,s),d=cn(i,a,t,s),f=ln(s.categoryCounts,s.editedPaths),p=s.editedPaths.size,m=un(u,c,l,o),h=dn(s.completedCommandBlocks);return{categories:f,distinctFiles:p,otherCount:s.categoryCounts.get(`other`)??0,pendingCount:c,pendingCategoryIds:l,linesAdded:s.linesAdded,linesRemoved:s.linesRemoved,errorCount:d,activeLabel:m,singleCommandTitle:h}}function fn(e,t){let n=e.categories.slice(0,3),r=e.categories.slice(3).reduce((e,t)=>e+t.count,0),i=e.otherCount+r,a=n.map(t=>t.id===`commands`&&t.count===1&&e.singleCommandTitle?e.singleCommandTitle:o(t.id).formatPhrase(t.count)),s=``;a.length>0?(s=a.join(`, `),i>0&&(s+=`, and ${i} more`),s=J(s)):i>0&&(s=J(o(`other`).formatPhrase(i)));let l=tn(e.pendingCategoryIds);if(l>0){let e=c(l);s=s?`${s} · ${e}`:J(e)}let u=t.showActive&&e.activeLabel!==null,d=e.pendingCount-l;if(!u&&d>0){let t=nn(e.pendingCategoryIds.filter(e=>e!==`subagents`),d);s=s?`${s} · ${t}`:J(t)}let f=e.linesAdded+e.linesRemoved>0?`+${e.linesAdded} −${e.linesRemoved}`:null;return{text:s,lineStats:f,errorCount:e.errorCount,activeLabel:u?e.activeLabel:null}}function pn(e){let t=Kt(Bt(e,!0));for(let n=t.length-1;n>=0;n--){let r=t[n];if(!Vt(r))continue;let i=fn(Y(r.items,e),{showActive:!0});if(i.activeLabel!==null)return i.activeLabel}return null}function mn(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`long_running_confirmation`||n.type===`shell_permission`||n.type===`web_fetch_permission`)return t}return-1}function hn(e){return e.type===`content`||e.type===`thinking`?e.chunks.some(e=>e.trim().length>0):!1}function gn(e){let t=W(e),n=t.some(e=>j(e)&&e.name===`ask_user`),r=t.some(e=>M(e)&&e.toolName===`ask_user`);if(n&&!r)return!0;let i=mn(e);return i===-1?!1:!e.slice(i+1).some(hn)}function _n(e){let t=W(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}function vn(e,t){switch(t.type){case d.SetStreaming:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:t.isStreaming})}case d.AppendStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingContent:i.streamingContent+t.content})}case d.SetStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r),a=At(i.streamingSegments,t.content);return C(e,n,r,{...i,streamingContent:t.content,streamingSegments:a})}case d.AppendStreamThinking:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingThinking:i.streamingThinking+t.content})}case d.IncrementStreamEventCount:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingEventCount:i.streamingEventCount+1})}case d.AppendStreamChunk:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?i.streamingContent+t.content:i.streamingContent,streamingThinking:t.chunkType===`thinking`?i.streamingThinking+t.content:i.streamingThinking})}case d.SetStreamModel:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingModel:t.model})}case d.SetStreamAgentMode:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingAgentMode:t.mode})}case d.SetContextUsage:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),contextUsage:t.contextUsage})}case d.ResetStream:return C(e,x(e,t),S(e,t),v(),!0);case d.StopStream:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:!1})}default:return null}}function X(e,t){return e.terminalStates[t]??fe()}function yn(e,t){switch(t.type){case d.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case d.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case d.ClearCommandOutput:return{...e,commandOutput:``};case d.ToggleTerminal:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,open:!n.open}}}}case d.SetTerminalOpen:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case d.QueueTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case d.ClearQueuedTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:null}}}}case d.AppendTerminalLine:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case d.ClearTerminalOutput:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case d.SetTerminalHeight:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,height:t.height}}}}case d.SetTerminalCwd:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,cwd:t.cwd}}}}case d.SetTerminalRunning:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,isRunning:t.isRunning}}}}case d.SetTerminalHistory:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,history:t.history}}}}case d.SetTerminalHistoryIndex:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,historyIndex:t.index}}}}default:return null}}function bn(e,t){switch(t.type){case d.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case d.CloseSidebar:return e.sidebarOpen?{...e,sidebarOpen:!1}:e;case d.OpenProjectPanel:return{...e,projectPanelView:`actions`,projectPanelProjectId:t.projectId};case d.CloseProjectPanel:return{...e,projectPanelView:`projects`,projectPanelProjectId:null};case d.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case d.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case d.FocusChatInput:return{...e,focusChatInput:!0};case d.ClearFocusChatInput:return{...e,focusChatInput:!1};case d.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};default:return null}}var xn=[vn,te,it,ke,ot,yn,bn];function Sn(e,t){for(let n of xn){let r=n(e,t);if(r!==null)return r}return e}var Cn=new Set([d.AppendStreamChunk,d.IncrementStreamEventCount,d.SetStreamModel,d.AppendStreamContent,d.AppendStreamThinking,d.SetStreamContent,d.AppendSubagentEvent,d.AppendToolExecutionOutput,d.UpdateToolCallProgress,d.UpdateToolExecutionOutput]);function Z(e){return`${`threadId`in e&&typeof e.threadId==`string`?e.threadId:``}:${`paneId`in e&&typeof e.paneId==`string`?e.paneId:``}`}function wn(e){if(e.length<=1)return e;let t=[],n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=new Map,l=new Map,u=new Map,f=[];for(let t of e)switch(t.type){case d.AppendStreamChunk:{let e=Z(t),r=n.get(e);r?(t.chunkType===`thinking`?r.thinkingContent+=t.content:t.chunkType===`content`&&(r.contentContent+=t.content),r.lastAction=t):n.set(e,{thinkingContent:t.chunkType===`thinking`?t.content:``,contentContent:t.chunkType===`content`?t.content:``,lastAction:t}),c.set(e,`append-chunk`);break}case d.IncrementStreamEventCount:r.set(Z(t),t);break;case d.SetStreamModel:i.set(Z(t),t);break;case d.AppendStreamContent:{let e=Z(t),n=a.get(e);n?(n.value+=t.content,n.last=t):a.set(e,{value:t.content,last:t});break}case d.AppendStreamThinking:{let e=Z(t),n=o.get(e);n?(n.value+=t.content,n.last=t):o.set(e,{value:t.content,last:t});break}case d.SetStreamContent:{let e=Z(t);s.set(e,t),c.set(e,`set-content`);break}case d.UpdateToolCallProgress:l.set(t.toolCallId,t);break;case d.UpdateToolExecutionOutput:u.set(t.toolCallId,t);break;default:f.push(t);break}for(let e of i.values())t.push(e);for(let e of r.values())t.push(e);for(let{value:e,last:n}of a.values())n.type===d.AppendStreamContent&&t.push({...n,content:e});for(let{value:e,last:n}of o.values())n.type===d.AppendStreamThinking&&t.push({...n,content:e});let p=new Set([...s.keys(),...n.keys()]);for(let e of p){let r=s.get(e),i=n.get(e),a=[];if(i){let{thinkingContent:e,contentContent:t,lastAction:n}=i;e&&a.push({...n,chunkType:`thinking`,content:e,segments:n.segments}),t&&a.push({...n,chunkType:`content`,content:t,segments:n.segments}),!e&&!t&&a.push(n)}c.get(e)===`set-content`?(t.push(...a),r&&t.push(r)):(r&&t.push(r),t.push(...a))}for(let e of l.values())t.push(e);for(let e of u.values())t.push(e);return t.push(...f),t}function Tn(e=p){let t=e,n=new Set,r=0,i=[];function a(){return t}function o(){for(let e of n)e()}function s(e){let n=Sn(t,e);n!==t&&(t=n)}function c(){if(r=0,i.length===0)return;let e=i.splice(0,i.length);for(let t of wn(e))s(t);o()}function l(e){if(Cn.has(e.type)){i.push(e),r===0&&(r=requestAnimationFrame(c));return}i.length>0&&(r!==0&&(cancelAnimationFrame(r),r=0),c()),s(e),o()}function u(e){return n.add(e),function(){n.delete(e)}}return{getState:a,dispatch:l,subscribe:u}}var En=i(),Q=e(s(),1),Dn=(0,Q.createContext)(null);function $(){let e=(0,Q.useContext)(Dn);if(!e)throw Error(`useAppStore must be used within an AppStoreContext.Provider`);return e}function On(e){let t=(0,En.c)(3),n=$(),r;t[0]!==e||t[1]!==n?(r=function(){return e(n.getState())},t[0]=e,t[1]=n,t[2]=r):r=t[2];let i=r;return(0,Q.useSyncExternalStore)(n.subscribe,i,i)}function kn(){return $().dispatch}function An(e){let t=(0,En.c)(8),n=kn(),r;t[0]===e?r=t[1]:(r=t=>(e?t.terminalStates[e]:void 0)??m,t[0]=e,t[1]=r);let i=On(r),a;t[2]!==n||t[3]!==e?(a=t=>{e&&n({...t,threadId:e})},t[2]=n,t[3]=e,t[4]=a):a=t[4];let o=a,s;return t[5]!==o||t[6]!==i?(s={terminalState:i,dispatch:o},t[5]=o,t[6]=i,t[7]=s):s=t[7],s}export{P as A,g as B,Bt as C,Vt as D,G as E,ye as F,se as G,le as H,ve as I,d as J,re as K,be as L,F as M,Y as N,M as O,xe as P,y as R,It as S,gn as T,ue as U,b as V,ae as W,f as Y,Nt as _,An as a,At as b,_t as c,pn as d,zt as f,wt as g,W as h,$ as i,U as j,j as k,kt as l,lt as m,kn as n,Tn as o,Mt as p,ee as q,On as r,_n as s,Dn as t,fn as u,jt as v,Kt as w,Pt as x,Ft as y,ne as z};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-KBcwP-kU.js","assets/rolldown-runtime-aKtaBQYM.js","assets/interactive-BrHVRHmQ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,B as n,Bn as r,C as i,Di as a,Gn as o,Hn as s,K as c,Kn as l,Oi as u,Rr as d,Sn as f,Un as p,Vn as m,Wn as h,X as g,Zn as _,b as v,cr as y,dr as b,f as x,fr as S,i as C,in as w,ki as T,lr as E,mr as D,on as O,tr as k,ur as A,yt as j}from"./interactive-BrHVRHmQ.js";import{A as ee,Ct as M,D as te,Eo as N,Er as P,Pr as ne,St as F,T as re,Tt as ie,_ as I,a as ae,b as L,bt as oe,h as se,ht as ce,in as le,j as ue,k as de,m as fe,mn as pe,mr as me,o as R,p as he,sr as ge,v as _e,x as z}from"./onboarding-KBcwP-kU.js";import{l as ve}from"./monaco-D1hpqXQ0.js";import{J as B,n as ye,r as V}from"./store-B_cK-gsT.js";import{n as be}from"./chat-dock-context-Gg1jpamu.js";import{n as xe,r as Se,t as Ce}from"./use-suspense-resource-CExc4Svq.js";import{t as we}from"./ndjson-stream-DeGpE5o5.js";import{At as H,B as Te,Bt as U,Ct as Ee,Et as De,F as Oe,H as ke,Ht as Ae,Kt as je,Lt as Me,Rt as Ne,St as Pe,Tt as Fe,U as Ie,V as Le,bt as Re,jt as ze,kt as Be,vt as Ve,wt as W,xt as He,yt as Ue,zt as We}from"./index-CJCQ4bTo.js";import{n as Ge,t as G}from"./commit-method-fields-o-xw2faT.js";import{t as Ke}from"./async-error-boundary-CM6LU7nT.js";var K=e(T(),1),q=u();function qe(e){return e.status!==`Done`&&!e.working}function J(e){return e.status!==`Done`&&!e.working&&!!e.triggerType}function Je(e){if(!e.triggerType)return null;let t=e.enabled===!1?`Paused · `:``;if(e.triggerType===`schedule`&&e.scheduledAt){let n=new Date(e.scheduledAt);if(!Number.isNaN(n.getTime()))return`${t}Scheduled ${n.toLocaleString()}`}if(e.triggerType===`schedule`&&e.scheduleCron&&e.timezone){let n=l(e.scheduleCron),r=n?s(n):e.scheduleCron,i=o(e.scheduleCron,e.timezone),a=i?p(i):null;return a?`${t}${r} · ${a}`:`${t}${r}`}return e.triggerType===`event`&&e.eventKey?`${t}Event: ${e.eventKey}`:null}function Ye(e){return[...e].sort((e,t)=>e.status===`Done`&&t.status!==`Done`?1:e.status!==`Done`&&t.status===`Done`||e.working&&!t.working?-1:!e.working&&t.working?1:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}function Xe(e,t){if(t)return t;let n=e?.threads.map(e=>e.title)??[],r=/^thread-(\d+)$/i,i=0;for(let e of n){let t=e.match(r);t&&(i=Math.max(i,parseInt(t[1],10)))}return`thread-${i+1}`}function Y(e,t){return`project-tasks:${e}:${t}`}async function Ze(e){ne(),Se(`projects:bootstrap:`);let t=await me();e({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),e({type:B.SetProjectsLoading,projectsLoading:!1})}async function Qe(e){let t=await Ee(e),n=t.filter(e=>e.threadId&&e.status!==`Done`),r=[...t];return await Promise.all(n.map(async t=>{try{await P(t.threadId)}catch(n){if(n instanceof Error&&n.message.includes(`not found`)){let n=await De(e,t.id,{status:`Done`}),i=r.findIndex(e=>e.id===t.id);i!==-1&&(r[i]=n)}}})),r}async function $e(e,t){let n=null;try{await we(e,e=>{if(!e||typeof e!=`object`)return;let r=e;r.type===`progress`&&typeof r.threadId==`string`&&!n&&(n=r.threadId,t(n))})}catch{}return n}var X=a();function et({task:e,disabled:t=!1,onImplementInNewThread:n,onImplementInThisThread:r,onMarkDone:i,onRunNow:a}){let[o,s]=(0,K.useState)(!1),c=qe(e),l=e.status!==`Done`,u=J(e),d=t||o||!c&&!l&&!u;async function f(e){s(!0);try{await e()}finally{s(!1)}}return(0,X.jsxs)(Me,{children:[(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:C(`h-8 w-8 shrink-0`,e.working&&`text-primary`),disabled:d,children:[o||e.working?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(O,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,X.jsxs)(We,{align:`end`,children:[c&&(0,X.jsx)(U,{onClick:()=>void f(()=>r(e)),children:`Do This`}),u&&(0,X.jsx)(U,{onClick:()=>void f(()=>a(e)),children:`Run Now`}),c&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ae,{}),(0,X.jsx)(U,{onClick:()=>void f(()=>n(e)),children:`Do this in a new thread`})]}),l&&(0,X.jsx)(U,{onClick:()=>void f(()=>i(e)),children:`Mark as Done`})]})]})}function tt(e){let t=(0,q.c)(14),{tag:n,onRemove:r,className:i}=e,a;t[0]===i?a=t[1]:(a=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,i),t[0]=i,t[1]=a);let o;t[2]===n.color?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:n.color}}),t[2]=n.color,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]!==r||t[7]!==n.name?(c=r&&(0,X.jsx)(`button`,{type:`button`,className:`ml-0.5 shrink-0 rounded-full opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r()},"aria-label":`Remove ${n.name}`,children:(0,X.jsxs)(`svg`,{className:`h-3 w-3`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,X.jsx)(`line`,{x1:`3`,y1:`3`,x2:`9`,y2:`9`}),(0,X.jsx)(`line`,{x1:`9`,y1:`3`,x2:`3`,y2:`9`})]})}),t[6]=r,t[7]=n.name,t[8]=c):c=t[8];let l;return t[9]!==a||t[10]!==o||t[11]!==s||t[12]!==c?(l=(0,X.jsxs)(`span`,{className:a,children:[o,s,c]}),t[9]=a,t[10]=o,t[11]=s,t[12]=c,t[13]=l):l=t[13],l}var nt={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function rt(e){let t=(0,q.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let a=nt[n],o;t[2]===a?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:a}}),t[2]=a,t[3]=o);let s;t[4]===n?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n}),t[4]=n,t[5]=s);let c;return t[6]!==i||t[7]!==o||t[8]!==s?(c=(0,X.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function it({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0}){let[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(0),f=(0,K.useRef)(null),p=(0,K.useMemo)(()=>new Set(e.map(e=>A(e.name))),[e]),m=e.length>=10,h=(0,K.useMemo)(()=>{let e=a.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=A(e.name);p.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of y){let t=A(e);!p.has(t)&&!r.has(t)&&r.set(t,{name:e,color:E(t)})}let o=(n?[...r.values()].filter(e=>e.name.toLowerCase().includes(n)):[...r.values()]).map(e=>({name:e.name,color:e.color,isCreate:!1}));if(e&&i&&!m){let t=b(e),n=A(t),i=p.has(n)||r.has(n),a=!S(t);!i&&a&&o.push({name:t,color:E(n),isCreate:!0})}return o},[a,t,p,m]);(0,K.useEffect)(()=>{u(0)},[a]),(0,K.useEffect)(function(){if(!s||m)return;let e=requestAnimationFrame(function(){f.current?.focus()});return function(){cancelAnimationFrame(e)}},[s,m]);function _(r){if(m)return;let i=b(r),a=A(i);if(p.has(a))return;let s=t.find(e=>A(e.name)===a)??{id:`new:${a}`,name:i,color:E(a)};n([...e,s]),o(``)}function v(t){n(e.filter(e=>e.id!==t.id))}function x(t){if(t.key===`ArrowDown`)t.preventDefault(),s||c(!0),u(e=>(e+1)%Math.max(h.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),u(e=>(e-1+h.length)%Math.max(h.length,1));else if(t.key===`Enter`){t.preventDefault();let e=h[l];e&&_(e.name)}else t.key===`Backspace`&&!a&&e.length>0?v(e[e.length-1]):t.key===`Escape`&&(c(!1),f.current?.blur())}return(0,X.jsxs)(Be,{open:s,onOpenChange:function(e){c(e),e||o(``)},children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[e.map(function(e){return(0,X.jsx)(tt,{tag:e,onRemove:()=>v(e)},e.id)}),(0,X.jsx)(ze,{asChild:!0,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:m,"aria-label":m?`Max 10 tags`:`Add tag`,className:C(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,m&&`opacity-50`),children:(0,X.jsx)(g,{className:`h-3 w-3`})})})]}),(0,X.jsxs)(H,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,X.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,X.jsx)(`input`,{ref:f,type:`text`,value:a,onChange:function(e){o(e.target.value)},onKeyDown:x,placeholder:m?`Max 10 tags`:r,disabled:m,className:C(d.body,`w-full rounded-md border border-input bg-background px-3 py-2 outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`)})}),(0,X.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},children:h.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-3 py-4 text-center`),children:m?`Tag limit reached`:`No tags found`}):h.map(function(e,t){return(0,X.jsxs)(`button`,{type:`button`,className:C(d.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,l===t&&`bg-accent`),onClick:function(){_(e.name),f.current?.focus()},children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,X.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function at({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(!1),[_,y]=(0,K.useState)(null),[b,S]=(0,K.useState)(null);function w(e){o(e.id),c(e.name),y(null)}function T(){o(null),c(``),y(null)}async function E(){let e=l.trim();if(e){g(!0),y(null);try{let t=await Ve(n,e);i([...r,t]),u(``)}catch(e){y(e instanceof Error?e.message:`Failed to create tag`)}finally{g(!1)}}}async function D(e){let t=s.trim();if(t){m(!0),y(null);try{let a=await W(n,e,t);i(r.map(e=>e.id===a.id?{...e,name:a.name,color:a.color}:e)),T()}catch(e){y(e instanceof Error?e.message:`Failed to rename tag`)}finally{m(!1)}}}async function O(e){m(!0),y(null);try{await Re(n,e),i(r.filter(t=>t.id!==e)),S(null),a===e&&T()}catch(e){y(e instanceof Error?e.message:`Failed to delete tag`)}finally{m(!1)}}return(0,X.jsx)(re,{open:e,onOpenChange:t,children:(0,X.jsxs)(te,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Manage Tags`})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,X.jsx)(z,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&E(),e.key===`Escape`&&u(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:h}),(0,X.jsx)(N,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void E(),disabled:h||!l.trim(),children:h?(0,X.jsx)(j,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,X.jsx)(ce,{className:`min-h-0 flex-1`,children:(0,X.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=a===e.id,n=b===e.id;return(0,X.jsx)(`div`,{className:C(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!p&&`cursor-pointer`),onClick:()=>{!p&&!t&&!n&&w(e)},children:t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(z,{value:s,onChange:e=>c(e.target.value),onKeyDown:t=>{t.key===`Enter`&&D(e.id),t.key===`Escape`&&T()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:p}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void D(e.id),disabled:p||!s.trim(),children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:T,disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:C(d.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void O(e.id),disabled:p,children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>S(null),disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:C(d.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,X.jsxs)(`span`,{className:C(d.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive opacity-0 pointer-events-none transition-opacity can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto can-hover:hover:text-destructive`,onClick:t=>{t.stopPropagation(),S(e.id)},disabled:p,"aria-label":`Delete ${e.name}`,children:(0,X.jsx)(v,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),_&&(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:_})]})})}var ot=`09:00`;function Z(e){return String(e).padStart(2,`0`)}function st(){let e=new Date(Date.now()+3600*1e3);return`${e.getFullYear()}-${Z(e.getMonth()+1)}-${Z(e.getDate())}T${Z(e.getHours())}:${Z(e.getMinutes())}`}function ct(){return{kind:`manual`,scheduleMode:`once`,scheduledAtLocal:st(),preset:`daily`,presetTime:ot,dayOfWeek:new Date().getDay(),timezone:h(),enabled:!0,eventKey:``}}function lt(e){let t=ct();if(e.triggerType===`schedule`){if(e.scheduleCron){let n=l(e.scheduleCron);return{kind:`schedule`,scheduleMode:`repeating`,scheduledAtLocal:t.scheduledAtLocal,preset:n?.preset??`daily`,presetTime:n?.time??ot,dayOfWeek:n?.dayOfWeek??new Date().getDay(),timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}if(e.scheduledAt){let n=new Date(e.scheduledAt);return{kind:`schedule`,scheduleMode:`once`,scheduledAtLocal:Number.isNaN(n.getTime())?t.scheduledAtLocal:`${n.getFullYear()}-${Z(n.getMonth()+1)}-${Z(n.getDate())}T${Z(n.getHours())}:${Z(n.getMinutes())}`,preset:t.preset,presetTime:t.presetTime,dayOfWeek:t.dayOfWeek,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}}return e.triggerType===`event`?{...t,kind:`event`,enabled:e.enabled!==!1,eventKey:e.eventKey??``}:t}function ut(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function dt(e){return e.kind===`manual`?{triggerType:null,scheduledAt:null,scheduleCron:null,timezone:null,enabled:!0,eventKey:null}:e.kind===`event`?{triggerType:`event`,scheduledAt:null,scheduleCron:null,timezone:null,enabled:e.enabled,eventKey:e.eventKey.trim()||null}:e.scheduleMode===`once`?{triggerType:`schedule`,scheduledAt:ut(e.scheduledAtLocal),scheduleCron:null,timezone:e.timezone,enabled:e.enabled,eventKey:null}:{triggerType:`schedule`,scheduledAt:null,scheduleCron:m(e.preset,e.presetTime,e.dayOfWeek),timezone:e.timezone,enabled:e.enabled,eventKey:null}}function ft(e){return e.kind!==`manual`}function pt(e){return e.kind===`manual`?null:r(dt(e))}function mt(e){return e.replace(/^eventKey is required for event triggers$/,`Event key is required`).replace(/^eventKey must be (\d+) characters or fewer$/,`Event key must be $1 characters or fewer`).replace(/^eventKey may only contain letters, numbers, dots, colons, underscores, and hyphens$/,`Event key may only contain letters, numbers, dots, colons, underscores, and hyphens`)}function ht(e){return e.startsWith(`Event key`)}function gt(e,t){return JSON.stringify(e)===JSON.stringify(t)}var _t=[{value:`0`,label:`Sunday`},{value:`1`,label:`Monday`},{value:`2`,label:`Tuesday`},{value:`3`,label:`Wednesday`},{value:`4`,label:`Thursday`},{value:`5`,label:`Friday`},{value:`6`,label:`Saturday`}];function Q(e,t){return{...e,...t}}function vt(e){let t=(0,q.c)(42),{value:n,onChange:r,collapsed:i,onCollapsedChange:a,showCollapseControl:o,error:s}=e,c=i===void 0?!1:i,l=o===void 0?!1:o,u=s===void 0?null:s,f;t[0]!==r||t[1]!==n?(f=function(e){r(Q(n,{kind:e}))},t[0]=r,t[1]=n,t[2]=f):f=t[2];let p=f,m;t[3]!==r||t[4]!==n?(m=function(e){r(Q(n,{scheduleMode:e}))},t[3]=r,t[4]=n,t[5]=m):m=t[5];let h=m;if(l&&c){let e;return t[6]===a?e=t[7]:(e=(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a?.(!1),children:`Add schedule or event trigger`})}),t[6]=a,t[7]=e),e}let g;t[8]!==r||t[9]!==a||t[10]!==l||t[11]!==n?(g=l&&(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`p`,{className:C(d.label),children:`Trigger`}),(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:()=>{r(Q(n,{kind:`manual`})),a?.(!0)},children:[(0,X.jsx)(x,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Remove trigger`})]})]}),t[8]=r,t[9]=a,t[10]=l,t[11]=n,t[12]=g):g=t[12];let _;t[13]===p?_=t[14]:(_=e=>{(e===`manual`||e===`schedule`||e===`event`)&&p(e)},t[13]=p,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,X.jsx)(R,{value:`manual`,"aria-label":`Manual`,className:C(d.body,Ge),children:`Manual`}),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,X.jsx)(R,{value:`schedule`,"aria-label":`Schedule`,className:C(d.body,Ge),children:`Schedule`}),t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(R,{value:`event`,"aria-label":`Event`,className:C(d.body,Ge),children:`Event`}),t[17]=b):b=t[17];let S;t[18]!==_||t[19]!==n.kind?(S=(0,X.jsxs)(ae,{type:`single`,value:n.kind,onValueChange:_,"aria-label":`Trigger type`,className:G,children:[v,y,b]}),t[18]=_,t[19]=n.kind,t[20]=S):S=t[20];let w;t[21]!==r||t[22]!==h||t[23]!==n?(w=n.kind===`schedule`&&(0,X.jsxs)(`div`,{className:`space-y-4 border-t border-border pt-4`,children:[(0,X.jsxs)(ae,{type:`single`,value:n.scheduleMode,onValueChange:e=>{(e===`once`||e===`repeating`)&&h(e)},"aria-label":`Schedule mode`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`once`,"aria-label":`Once`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 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`),children:`Once`}),(0,X.jsx)(R,{value:`repeating`,"aria-label":`Repeating`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 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`),children:`Repeating`})]}),n.scheduleMode===`once`?(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-once-at`,children:`Run at`}),(0,X.jsx)(z,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:e=>r(Q(n,{scheduledAtLocal:e.target.value}))})]}):(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Preset`}),(0,X.jsxs)(he,{value:n.preset,onValueChange:e=>r(Q(n,{preset:e})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsxs)(fe,{children:[(0,X.jsx)(se,{value:`daily`,children:`Daily`}),(0,X.jsx)(se,{value:`weekdays`,children:`Weekdays`}),(0,X.jsx)(se,{value:`weekly`,children:`Weekly`})]})]})]}),n.preset===`weekly`&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Day`}),(0,X.jsxs)(he,{value:String(n.dayOfWeek),onValueChange:e=>r(Q(n,{dayOfWeek:Number(e)})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsx)(fe,{children:_t.map(function(e){return(0,X.jsx)(se,{value:e.value,children:e.label},e.value)})})]})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-time`,children:`Time`}),(0,X.jsx)(z,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r(Q(n,{presetTime:e.target.value}))})]})]}),(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]})]}),t[21]=r,t[22]=h,t[23]=n,t[24]=w):w=t[24];let T;t[25]!==u||t[26]!==r||t[27]!==n?(T=n.kind===`event`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{htmlFor:`event-key`,children:`Event Key`}),(0,X.jsx)(z,{id:`event-key`,value:n.eventKey,placeholder:`door.opened`,"aria-invalid":!!(u&&ht(u)),onChange:e=>r(Q(n,{eventKey:e.target.value}))}),u&&ht(u)?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,X.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]})]}),t[25]=u,t[26]=r,t[27]=n,t[28]=T):T=t[28];let E;t[29]!==u||t[30]!==n.kind?(E=u&&n.kind!==`event`?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):null,t[29]=u,t[30]=n.kind,t[31]=E):E=t[31];let D;t[32]!==r||t[33]!==n?(D=n.kind!==`manual`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{children:`Status`}),(0,X.jsxs)(ae,{type:`single`,value:n.enabled?`active`:`paused`,onValueChange:e=>{(e===`active`||e===`paused`)&&r(Q(n,{enabled:e===`active`}))},"aria-label":`Trigger status`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`active`,"aria-label":`Active`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 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`),children:`Active`}),(0,X.jsx)(R,{value:`paused`,"aria-label":`Paused`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 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`),children:`Paused`})]})]}),t[32]=r,t[33]=n,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==w||t[37]!==T||t[38]!==E||t[39]!==D||t[40]!==g?(O=(0,X.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[g,S,w,T,E,D]}),t[35]=S,t[36]=w,t[37]=T,t[38]=E,t[39]=D,t[40]=g,t[41]=O):O=t[41],O}var $=k(`app.task-list.ui`);function yt(e){let t=(0,q.c)(28),{onSearchTermChange:r}=e,[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(``),c;t[0]===r?c=t[1]:(c=function(e){s(e),r(e)},t[0]=r,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=function(){s(``),r(``),a(!1)},t[2]=r,t[3]=u);let d=u,f;t[4]!==d||t[5]!==i?(f=()=>{i?d():a(!0)},t[4]=d,t[5]=i,t[6]=f):f=t[6];let p,m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,X.jsx)(n,{className:`h-4 w-4`}),m=(0,X.jsx)(`span`,{className:`sr-only`,children:`Search tasks`}),t[7]=p,t[8]=m):(p=t[7],m=t[8]);let h;t[9]!==i||t[10]!==f?(h=(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:f,"aria-expanded":i,children:[p,m]})}),t[9]=i,t[10]=f,t[11]=h):h=t[11];let g;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,X.jsx)(M,{children:`Search tasks`}),t[12]=g):g=t[12];let _;t[13]===h?_=t[14]:(_=(0,X.jsxs)(F,{children:[h,g]}),t[13]=h,t[14]=_);let v=i?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,y;t[15]===v?y=t[16]:(y=C(`overflow-hidden transition-[width,opacity] duration-200`,v),t[15]=v,t[16]=y);let b;t[17]!==d||t[18]!==l||t[19]!==i||t[20]!==o?(b=i&&(0,X.jsx)(z,{type:`search`,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&d()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[17]=d,t[18]=l,t[19]=i,t[20]=o,t[21]=b):b=t[21];let x;t[22]!==y||t[23]!==b?(x=(0,X.jsx)(`div`,{className:y,children:b}),t[22]=y,t[23]=b,t[24]=x):x=t[24];let S;return t[25]!==x||t[26]!==_?(S=(0,X.jsxs)(`div`,{className:`flex items-center`,children:[_,x]}),t[25]=x,t[26]=_,t[27]=S):S=t[27],S}function bt({projectId:e,onThreadSelect:n,initialTasks:r}){let a=ye(),o=V(e=>e.projects),s=V(e=>e.selectedThreadId),l=V(e=>e.processingThreadIds),u=V(e=>e.pendingChatMessage),f=V(e=>e.queuedChatMessages),p=V(e=>e.projectModelSelections),m=o.find(t=>t.projectId===e),h=m?.threads.find(e=>e.threadId===s),v=s?p[s]:void 0,[y,b]=(0,K.useState)(r),[x,S]=(0,K.useState)(!1),[T,E]=(0,K.useState)(null),[D,O]=(0,K.useState)(``),[k,P]=(0,K.useState)(!1),[I,ae]=(0,K.useState)([]),[L,oe]=(0,K.useState)(new Set),[se,fe]=(0,K.useState)(``),[R,he]=(0,K.useState)(!1),[ge,_e]=(0,K.useState)(!1),[z,ve]=(0,K.useState)([]),[be,xe]=(0,K.useState)([]),[Ce,we]=(0,K.useState)(ct),[H,Re]=(0,K.useState)(ct),[ze,Be]=(0,K.useState)(!0),[Ve,W]=(0,K.useState)(null),[Ge,G]=(0,K.useState)(null);(0,K.useEffect)(()=>{Pe(e).then(ae).catch(e=>$.error(`Failed to fetch project tags:`,e))},[e]);let{setActions:Ke}=Oe(),q=(0,K.useCallback)(function(e){oe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),qe=(0,K.useCallback)(async function(){_e(!0);try{await le(e),b(await Ee(e)),J(),Q(),ne();let t=await me();a({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){$.error(`Failed to refresh project tasks:`,e)}finally{_e(!1)}},[e,a]);(0,K.useEffect)(()=>(Ke((0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(yt,{onSearchTermChange:fe}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>void qe(),disabled:ge,children:[(0,X.jsx)(c,{className:C(`h-4 w-4`,ge&&`animate-spin`)}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,X.jsx)(M,{children:`Refresh`})]}),(0,X.jsxs)(Me,{children:[(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,X.jsx)(i,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,X.jsx)(M,{children:`Tags`})]}),(0,X.jsxs)(We,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[I.length===0?(0,X.jsx)(U,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):I.map(function(e){return(0,X.jsxs)(Ne,{checked:L.has(e.id),onCheckedChange:()=>q(e.id),onSelect:e=>e.preventDefault(),children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)}),(0,X.jsx)(Ae,{}),(0,X.jsxs)(U,{onClick:()=>he(!0),children:[(0,X.jsx)(t,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]})),()=>Ke(null)),[Ke,I,L,q,ge,qe]);function J(){Se(`project-tasks:${e}:`)}let Y=m?.tasksModifiedCount??0,Qe=(0,K.useRef)({});(0,K.useEffect)(()=>{let t=Qe.current[e]??0;if(Y===0){Qe.current[e]=0;return}t!==Y&&(Qe.current[e]=Y,Y>t&&qe())},[Y,e,qe]),(0,K.useEffect)(()=>{if(!y.some(e=>e.working))return;let t=setInterval(async()=>{try{let n=await Ee(e);b(n),n.some(e=>e.working)||clearInterval(t)}catch(e){$.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[y,e]),(0,K.useEffect)(()=>{b(r)},[r]),(0,K.useEffect)(()=>{x&&(O(``),ve([]),we(ct()),Be(!0))},[x]),(0,K.useEffect)(()=>{T&&(xe(T.task.tags??[]),Re(lt(T.task)))},[T]);function nt(e){b(t=>t.map(t=>t.id===e.id?e:t))}function ot(e){O(e.description),E({task:e}),G(null)}function Z(){E(null),O(``),G(null)}function st(e,t){if(e)return null;let n=pt(t);return n?mt(n):null}async function ut(){if(!D.trim())return;let t=st(ze,Ce);if(t){W(t);return}W(null),P(!0);try{let t=z.map(e=>e.name),n=ze?{}:dt(Ce),r=await Ue(e,D,{threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:t.length>0?t:void 0,...n});b(e=>[...e,r]),J(),Q(),S(!1),O(``),ve([]),W(null)}catch(e){W(mt(e instanceof Error?e.message:`Failed to add task`)),$.error(`Failed to add task:`,e)}finally{P(!1)}}async function ht(){if(!D.trim()||!T)return;let t=st(!ft(H),H);if(t){G(t);return}G(null),P(!0);try{let t=D.trim(),n=t!==T.task.description.trim(),r=be.map(e=>e.name),i=new Set((T.task.tags??[]).map(e=>A(e.name))),a=new Set(r.map(e=>A(e))),o=i.size!==a.size||[...a].some(e=>!i.has(e)),c=!gt(lt(T.task),H),l=c?dt(H):{};if(!n&&!o&&!c){Z();return}let u=await De(e,T.task.id,{description:n?t:void 0,threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:o?r:void 0,...l});b(e=>e.map(e=>e.id===u.id?u:e)),J(),o&&Q(),Z()}catch(e){G(mt(e instanceof Error?e.message:`Failed to save task`)),$.error(`Failed to save task:`,e)}finally{P(!1)}}async function _t(){if(T){P(!0);try{await He(e,T.task.id),b(e=>e.filter(e=>e.id!==T.task.id)),J(),Q(),Z()}catch(e){$.error(`Failed to delete task:`,e)}finally{P(!1)}}}function Q(){Pe(e).then(ae).catch(e=>$.error(`Failed to refresh project tags:`,e))}function bt(t){let n=new Set(t.map(function(e){return e.id}));ae(t),oe(function(e){return new Set([...e].filter(e=>n.has(e)))}),Ee(e).then(b).catch(e=>$.error(`Failed to refresh tasks after tag change:`,e))}async function xt(t){let r=await pe(e);if(!r)return;let i=null,o=null,s=await $e(r,n=>{o||(o=n,a({type:B.AddCreatingThread,projectId:e,threadId:n,title:Xe(m)}),a({type:B.AddProcessingThread,threadId:n})),De(e,t.id,{status:`Build`,working:!0,threadId:n}).then(e=>{i=e,nt(e)})});if(!s){o&&(a({type:B.RemoveCreatingThread,projectId:e,threadId:o}),a({type:B.RemoveProcessingThread,threadId:o}));return}a({type:B.RemoveProcessingThread,threadId:s});try{await Ze(a)}catch(e){$.error(`Failed to refresh projects after task thread creation:`,e)}await Le(e,t,`Build`,s,i,nt);let c=await ke(e,s);if(!c){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}Te(a,s,c.model,c.provider),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:c.model,provider:c.provider}})}async function St(t){if(!s){$.error(`No selected thread found for project task implementation.`);return}let r=await ke(e,s);if(!r){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}if(Te(a,s,r.model,r.provider),nt(await De(e,t.id,{status:`Build`,working:!0,threadId:s})),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),l.includes(s)||u?.threadId===s||f.some(e=>e.threadId===s)){a({type:B.EnqueueChatMessage,message:{id:_(),threadId:s,paneId:`primary`,message:t.description,model:r.model,attachments:[],provider:r.provider}});return}a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:r.model,provider:r.provider}})}async function Ct(t){nt(await Fe(e,t.id)),J()}async function wt(t){nt(await De(e,t.id,{status:`Done`,working:!1})),J()}let Tt=Ye(y).filter(function(e){return e.status!==`Done`}),Et=se.trim().toLocaleLowerCase(),Dt=Tt.filter(e=>{let t=new Set((e.tags??[]).map(function(e){return e.id})),n=L.size===0||[...L].every(e=>t.has(e)),r=[e.title,e.description,...(e.tags??[]).map(function(e){return e.name})].join(` `).toLocaleLowerCase(),i=!Et||r.includes(Et);return n&&i});return(0,X.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[(0,X.jsx)(ce,{className:`min-h-0 min-w-0 flex-1 overflow-hidden [&>[data-radix-scroll-area-viewport]>div]:block`,children:(0,X.jsx)(`div`,{className:`pb-14`,children:Tt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No active tasks yet. Add one to get started.`}):Dt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No tasks match the current filters.`}):(0,X.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:Dt.map(e=>(0,X.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(0,1fr)_auto] grid-rows-[auto_auto] gap-x-2 gap-y-1 px-4 py-3 hover:bg-accent/40 sm:flex sm:items-start sm:gap-4`,children:[(0,X.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:()=>ot(e),children:[(0,X.jsx)(`p`,{className:C(d.label,`truncate leading-normal`),children:e.title}),(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),children:e.description}),Je(e)&&(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 text-muted-foreground`),children:Je(e)}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]})]}),(0,X.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:()=>ot(e),children:(0,X.jsx)(`p`,{className:C(d.caption,`line-clamp-4 break-all text-muted-foreground`),children:e.description})}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]}),(0,X.jsxs)(`div`,{className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start`,children:[e.threadId&&n&&(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>n(e.threadId),children:[(0,X.jsx)(w,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Open thread`})]})}),(0,X.jsx)(M,{children:`Open thread`})]}),(0,X.jsx)(et,{task:e,onImplementInNewThread:xt,onImplementInThisThread:St,onMarkDone:wt,onRunNow:Ct})]})]},e.id))})})}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-10 w-10 rounded-full shadow-lg`,onClick:()=>S(!0),children:[(0,X.jsx)(g,{className:`h-5 w-5`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Add task`})]})}),(0,X.jsx)(M,{children:`Add task`})]}),(0,X.jsx)(re,{open:x,onOpenChange:e=>{S(e),e||W(null)},children:(0,X.jsxs)(te,{className:`max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:max-h-[calc(100svh-2rem)]`,children:[(0,X.jsx)(ee,{children:(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(ue,{className:`w-fit cursor-help`,children:`Add Task`})}),(0,X.jsx)(M,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`})]})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(e.target.value),rows:12,className:`max-h-[min(16rem,40svh)] resize-none text-base sm:max-h-none`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&ut()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:z,existingTags:I,onChange:ve,allowCreate:!1})}),(0,X.jsx)(vt,{value:Ce,onChange:e=>{we(e),W(null)},collapsed:ze,onCollapsedChange:Be,showCollapseControl:!0,error:Ve})]}),(0,X.jsx)(de,{children:(0,X.jsx)(N,{onClick:()=>void ut(),disabled:k||!D.trim(),children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Generating title...`]}):`Add`})})]})}),(0,X.jsx)(re,{open:T!==null,onOpenChange:e=>!e&&Z(),children:(0,X.jsxs)(te,{className:`max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:max-h-[calc(100svh-2rem)]`,children:[(0,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Edit Task`})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(e.target.value),rows:12,className:`max-h-[min(16rem,40svh)] resize-none text-base sm:max-h-none`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&ht()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:be,existingTags:I,onChange:xe,allowCreate:!1})}),(0,X.jsx)(vt,{value:H,onChange:e=>{Re(e),G(null)},showCollapseControl:!0,collapsed:!ft(H),onCollapsedChange:e=>{e&&Re(ct()),G(null)},error:Ge})]}),(0,X.jsxs)(de,{className:`flex-row justify-between gap-2 sm:gap-0`,children:[(0,X.jsx)(N,{variant:`destructive`,onClick:()=>void _t(),disabled:k,children:`Delete`}),(0,X.jsx)(N,{onClick:()=>void ht(),disabled:k||!D.trim(),className:`w-auto`,children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Saving...`]}):`Save`})]})]})}),(0,X.jsx)(at,{open:R,onOpenChange:he,projectId:e,tags:I,onTagsChanged:bt})]})}function xt(e){let t=(0,q.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({projectId:r,loadVersion:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==r?(a=Y(r,n),t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;t[7]===r?o=t[8]:(o=()=>Qe(r),t[7]=r,t[8]=o);let s=Ce(a,o),c;return t[9]!==s||t[10]!==r||t[11]!==i?(c=(0,X.jsx)(bt,{projectId:r,initialTasks:s,...i}),t[9]=s,t[10]=r,t[11]=i,t[12]=c):c=t[12],c}function St(e){let t=(0,q.c)(18),n,r;t[0]===e?(n=t[1],r=t[2]):({refreshTrigger:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,[a,o]=(0,K.useState)(0),s,c;t[3]!==n.projectId||t[4]!==i?(s=()=>{i!==0&&o(e=>(xe(Y(n.projectId,e)),e+1))},c=[i,n.projectId],t[3]=n.projectId,t[4]=i,t[5]=s,t[6]=c):(s=t[5],c=t[6]),(0,K.useEffect)(s,c);let l;t[7]!==a||t[8]!==n.projectId?(l=function(){xe(Y(n.projectId,a)),o(Ct)},t[7]=a,t[8]=n.projectId,t[9]=l):l=t[9];let u=l,d;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,X.jsx)(oe,{className:`h-64`}),t[10]=d):d=t[10];let f=`${n.projectId}:${a}`,p;t[11]!==a||t[12]!==n||t[13]!==f?(p=(0,X.jsx)(K.Suspense,{fallback:d,children:(0,X.jsx)(xt,{...n,loadVersion:a},f)}),t[11]=a,t[12]=n,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==u||t[16]!==p?(m=(0,X.jsx)(Ke,{fallbackTitle:`Failed to load tasks`,onRetry:u,children:p}),t[15]=u,t[16]=p,t[17]=m):m=t[17],m}function Ct(e){return e+1}var wt=k(`app.tasks-view.ui`);function Tt({projectId:e,refreshTrigger:t}){let n=ye(),r=V(e=>e.projects),i=V(e=>e.selectedThreadId),a=V(e=>e.selectedProjectId),{expandWindow:o,hasOpenWindows:s}=be();(0,K.useEffect)(()=>{let e=!1;return(async()=>{try{let{getProjects:t,invalidateProjectsCache:r}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-KBcwP-kU.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));r();let i=await t();e||n({type:B.SetProjects,projects:i.projects,cloneRootPath:i.cloneRootPath})}catch(e){wt.error(`Failed to refresh projects on tasks view mount:`,e)}})(),()=>{e=!0}},[n]);async function c(t){if(r.find(t=>t.projectId===e)){s&&o(D);try{let{getProjects:r,invalidateProjectsCache:o}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-KBcwP-kU.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));o();let s=await r();n({type:B.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath});let c=s.projects.find(t=>t.projectId===e);if(c&&c.threads.find(e=>e.threadId===t)){(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after thread selection:`,e)}}}catch(r){wt.error(`Failed to refresh projects for thread selection:`,r),(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after fallback thread selection:`,e)}}}}return(0,X.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,X.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,X.jsx)(St,{projectId:e,refreshTrigger:t,onThreadSelect:c})})})}export{Tt as TasksView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as e}from"./store-B_cK-gsT.js";function t(e,t,n){return JSON.stringify([{type:`tool_use`,name:`bash`,id:t,input:e===null?{}:{command:e},...n?.displayName?{displayName:n.displayName}:{},...n?.activeDisplayName?{activeDisplayName:n.activeDisplayName}:{}}])}function n(e,t,n,r){return JSON.stringify([{type:`tool-result`,toolCallId:e,toolName:`bash`,content:t,isError:n,...r?.displayName?{displayName:r.displayName}:{},...r?.activeDisplayName?{activeDisplayName:r.activeDisplayName}:{}}])}function r(e,t,r,i,a){return e+n(t,r,i,a)}function i(e){return{messageId:e.messageId,sender:`agent`,content:t(e.command,e.toolCallId,e.labels),contentType:`markdown`,timestamp:new Date().toISOString(),isThinking:!1}}var a={create:`Creating thread`,delete:`Deleting thread`},o={create:`Created thread`,delete:`Deleted thread`},s={create:`Thread creation failed`,delete:`Thread deletion failed`},c={webapp:`Creating app`,clone:`Cloning repository`,folder:`Creating project`,zip:`Creating project from zip`},l={webapp:`App creation failed`,clone:`Clone failed`,folder:`Project creation failed`,zip:`Project creation failed`};function u(e){return e?.kind===`create`||e?.kind===`create-project`}function d(e){return e.mode??`webapp`}function f(e){return e.kind===`create-project`?c[d(e)]:a[e.kind]}function p(e){return e.kind===`create-project`?l[d(e)]:s[e.kind]}function m(e){return{displayName:f(e),activeDisplayName:f(e)}}function h(e,t){return t?`The branch I created is ${t} and I'm ready to start working on ${e}.`:`I'm ready to start working on ${e}.`}function g(e,t){let n=`thread-${e}-${t.threadId}`;return{kind:e,...e===`create-project`?{mode:t.mode??`webapp`}:{},threadId:t.threadId,projectId:t.projectId,projectName:t.projectName,toolCallId:n,messageId:`msg-${n}`}}function _(e){return g(`create`,e)}function v(e){return g(`delete`,e)}function y(e){return g(`create-project`,e)}function b(e){return i({messageId:e.messageId,command:e.projectName,toolCallId:e.toolCallId,labels:m(e)})}function x(t,n,r){t({type:e.SetThreadToolSession,session:n}),t({type:e.UpdateToolExecutionOutput,toolCallId:n.toolCallId,threadId:n.threadId,toolName:`bash`,executionOutput:r})}function S(t,n,r){t({type:e.SetThreadToolSession,session:n}),t({type:e.SelectThread,threadId:n.threadId,projectId:n.projectId,focusInput:!0}),t({type:e.SetMessages,messages:[b(n)]}),x(t,n,r)}function C(t,n,r){t({type:e.AddMessage,message:b(n),threadId:n.threadId}),x(t,n,r)}function w(t,n,r,i){i&&t({type:e.AppendToolExecutionOutput,toolCallId:n,threadId:r,toolName:`bash`,delta:i})}function T(n,i,a,s){let c=s?.isError===!0,l=u(i),d=l?h(i.projectName,i.kind===`create`?s?.branch:void 0):o.delete,m={displayName:c?p(i):d,activeDisplayName:f(i)},g=r(t(!c&&l?null:i.projectName,i.toolCallId,m),i.toolCallId,a,c,m);n({type:e.UpdateMessage,messageId:i.messageId,threadId:i.threadId,content:g}),l&&!c&&n({type:e.SetThreadCreationSummary,threadId:i.threadId,message:{...b(i),content:g}}),n({type:e.ClearToolCallProgress,toolCallId:i.toolCallId}),n({type:e.ClearThreadToolSession,threadId:i.threadId})}export{b as a,S as c,t as d,i as f,v as i,C as l,y as n,T as o,_ as r,u as s,w as t,r as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";import{En as n,Or as r,Sn as i,lr as a}from"./onboarding-KBcwP-kU.js";import{J as o,n as s,r as c}from"./store-B_cK-gsT.js";import{t as l}from"./use-toast-hxHsVv6a.js";import{n as u}from"./explorer-tab-context-BdjTEbFh.js";import{Nt as d,q as f}from"./index-CJCQ4bTo.js";var p=e(t(),1);function m({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:m=``,sortByName:h=!1,removedToastTitle:g}){let _=s(),v=c(e=>e.projects),y=c(e=>e.selectedProjectId),b=c(e=>e.selectedThreadId),{handleSelectThread:x}=f(),{openChatDockPanel:S}=d(),{setPendingExplorerPath:C,triggerExplorerRefresh:w,setExplorerClearPath:T}=u(),[E,D]=(0,p.useState)([]),[O,k]=(0,p.useState)(!0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(new Set),I=(0,p.useCallback)(async()=>{if(!y){k(!1);return}k(!0);try{let n=e(await a(y));if(b)try{let t=e(await r(b)),i=new Set(n.map(e=>e.path));for(let e of t)i.has(e.path)||n.push(e)}catch{}h&&(n=[...n].sort((e,t)=>e.name.localeCompare(t.name))),D(n),F(new Set(n.map(e=>`${e.path}${t}`)))}catch{D([]),F(new Set)}finally{k(!1)}},[y,b,e,t,h]);return(0,p.useLayoutEffect)(()=>{y&&k(!0)},[y,b]),(0,p.useEffect)(()=>{I()},[I]),{selectedProjectId:y,selectedThreadId:b,items:E,loading:O,deleteConfirm:A,setDeleteConfirm:j,deleting:M,installedFilePaths:P,setInstalledFilePaths:F,loadItems:I,handleDelete:(0,p.useCallback)(async e=>{if(!y)return;let r=e.name,a=e.path;N(!0);try{try{await i(y,a)}catch{if(b)await n(b,a);else throw Error(`No thread selected to delete from`)}T(a),w(),F(e=>{let n=new Set(e);return n.delete(`${a}${t}`),n}),l({title:g,description:r}),j(null),await I()}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{N(!1)}},[y,b,I,w,T,t,g]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!y)return;let t=v.find(e=>e.projectId===y);if(t){if(_({type:o.OpenProjectPanel,projectId:y}),!t.threads.some(e=>e.threadId===b)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&x(y,e.threadId)}C(`${e}${m}`),S(`explorer`)}},[y,b,v,_,x,C,S,m]),triggerExplorerRefresh:w}}export{m as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";var n=e(t(),1),r=new Map;function i(e,t){let n=r.get(e);return n||(n={promise:t().catch(t=>{throw r.delete(e),t})},r.set(e,n)),n.promise}function a(e){r.delete(e)}function o(e){for(let t of r.keys())t.startsWith(e)&&r.delete(t)}function s(e,t){return(0,n.use)(i(e,t))}export{a as n,o as r,s as t};
|