tarsk 0.5.80 → 0.5.82
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/bundled-skills/skill-creator/scripts/quick_validate.js +28 -14
- package/dist/index.js +7448 -3994
- package/dist/public/assets/{account-view-DVfacvrH.js → account-view-CC_IRw14.js} +1 -1
- package/dist/public/assets/{alert-dialog-DTxl_mXc.js → alert-dialog-CVooKafv.js} +1 -1
- package/dist/public/assets/api-IMkL19mR.js +2 -0
- package/dist/public/assets/{async-error-boundary-DmJy8jgz.js → async-error-boundary-Did-c5sq.js} +1 -1
- package/dist/public/assets/{browser-tab-BZSxX4fR.js → browser-tab-CjdUnNr2.js} +2 -2
- package/dist/public/assets/{button-DhxraVUW.js → button-DVIjvd2G.js} +1 -1
- package/dist/public/assets/{card-DZy9jCWQ.js → card-DaHPdrGh.js} +1 -1
- package/dist/public/assets/chat-dock-context-BA8EIToZ.js +1 -0
- package/dist/public/assets/{commit-dialog-D0z3emO_.js → commit-dialog-29_bboof.js} +1 -1
- package/dist/public/assets/{commit-error-dialog-CVSOwpqp.js → commit-error-dialog-ASd71LX_.js} +1 -1
- package/dist/public/assets/{commit-method-fields-C7Du43jy.js → commit-method-fields-Bylj8VjO.js} +1 -1
- package/dist/public/assets/conversation-history-view-CXHmQEA6.js +1 -0
- package/dist/public/assets/create-project-dialog-CtEUqqAd.js +2 -0
- package/dist/public/assets/{create-repo-dialog-lS-Tko1c.js → create-repo-dialog-DKcWU21A.js} +1 -1
- package/dist/public/assets/{delete-confirm-dialog-Ciwqi6ts.js → delete-confirm-dialog-C9CQzpYL.js} +1 -1
- package/dist/public/assets/diff-view-eYW3Jliv.js +4 -0
- package/dist/public/assets/{dist-BZmr2Qex.js → dist-BI_HNW9c.js} +1 -1
- package/dist/public/assets/{dist-CA_zFhwJ.js → dist-BKsOX8kk.js} +1 -1
- package/dist/public/assets/{dist-BkOEUrQf.js → dist-BVQgAd-x.js} +1 -1
- package/dist/public/assets/{dist-Dj1qT-gv.js → dist-BYYtqVYm.js} +1 -1
- package/dist/public/assets/dist-Ch137qdo.js +2 -0
- package/dist/public/assets/{dist-iDwSbcD5.js → dist-DqKWH8sc.js} +1 -1
- package/dist/public/assets/{dist-Bihbg_hO.js → dist-GRNTsriM.js} +1 -1
- package/dist/public/assets/{dist-aB1qUwWW.js → dist-VhqWx9-S.js} +1 -1
- package/dist/public/assets/{es2015-B0KHrBGH.js → es2015-CxOm1WGv.js} +1 -1
- package/dist/public/assets/{explorer-monaco-editor-YoaTqh0f.js → explorer-monaco-editor-DMvtDzfX.js} +1 -1
- package/dist/public/assets/{explorer-tab-view-DlBIsvNp.js → explorer-tab-view-CPN5epzi.js} +2 -2
- package/dist/public/assets/explorer-tree-EjBLSWxV.js +1 -0
- package/dist/public/assets/explorer-view-DZh1FGrc.js +76 -0
- package/dist/public/assets/{git-history-dialog-DOcupC-P.js → git-history-dialog-C3tayM-K.js} +1 -1
- package/dist/public/assets/index-C3E_66vw.js +114 -0
- package/dist/public/assets/index-D42A6A6A.css +1 -0
- package/dist/public/assets/{lucide-react-CNNzKD4G.js → lucide-react-C-dX1rVz.js} +1 -1
- package/dist/public/assets/{model-list-controls-DOpHpzG8.js → model-list-controls-Yu77SyTe.js} +1 -1
- package/dist/public/assets/onboarding-dialog-C3vpTe8y.js +1 -0
- package/dist/public/assets/{pill-tabs-CiONEGsi.js → pill-tabs-B_YP0wlG.js} +1 -1
- package/dist/public/assets/{progress-indicator-C7Kj9U3t.js → progress-indicator-QgGbLfer.js} +1 -1
- package/dist/public/assets/project-coding-view-DXtPNlL1.js +1 -0
- package/dist/public/assets/{project-danger-zone-view-BfHTp5LI.js → project-danger-zone-view-y2DDNkUE.js} +1 -1
- package/dist/public/assets/{project-env-vars-view-QrpeAxIt.js → project-env-vars-view-BAiGaui1.js} +1 -1
- package/dist/public/assets/project-model-aliases-view-z5KtzKTK.js +1 -0
- package/dist/public/assets/project-settings-view-CvNtaVMG.js +1 -0
- package/dist/public/assets/{project-tools-view-0j2uWvRy.js → project-tools-view-D3j7nVpp.js} +1 -1
- package/dist/public/assets/providers-list-view-BY11UIaf.js +1 -0
- package/dist/public/assets/pull-request-dialog-D7Tc-DZW.js +1 -0
- package/dist/public/assets/{pull-with-changes-dialog-CFLl2SQP.js → pull-with-changes-dialog-DqH8eFaG.js} +1 -1
- package/dist/public/assets/{push-before-pr-dialog-CD1rZKan.js → push-before-pr-dialog-CxdsKSp0.js} +1 -1
- package/dist/public/assets/{scroll-area-BQ9bdsVQ.js → scroll-area-DnAXfBMQ.js} +1 -1
- package/dist/public/assets/{settings-general-tabs-view-CKaL-A9_.js → settings-general-tabs-view-YngdB7te.js} +2 -2
- package/dist/public/assets/settings-general-view-BLovSe8Y.js +1 -0
- package/dist/public/assets/{settings-list-n-CrPPNl.js → settings-list-CvCGue_y.js} +1 -1
- package/dist/public/assets/{settings-logs-view-CFD-_MKT.js → settings-logs-view-B2vFqetG.js} +4 -4
- package/dist/public/assets/settings-mcp-servers-view-BiWEZyG-.js +5 -0
- package/dist/public/assets/settings-models-view-B7STNfBy.js +1 -0
- package/dist/public/assets/{settings-plugins-view-fSxDPjsF.js → settings-plugins-view-D8wypO3V.js} +2 -2
- package/dist/public/assets/{settings-providers-view-Bj4-iemE.js → settings-providers-view-C5x9gCg7.js} +2 -2
- package/dist/public/assets/settings-setup-view-VuWyf9Ey.js +2 -0
- package/dist/public/assets/settings-skills-view-cu2mzI28.js +2 -0
- package/dist/public/assets/{settings-slack-view-Dx4Pdxjq.js → settings-slack-view-xWc3HZl5.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-C9slbf4z.js +1 -0
- package/dist/public/assets/{settings-statistics-view-B8YLP2Nb.js → settings-statistics-view-BhrL3BwB.js} +1 -1
- package/dist/public/assets/{settings-storage-view-Cnmt9-0H.js → settings-storage-view-y4GyGxD-.js} +1 -1
- package/dist/public/assets/{settings-subagents-view-Be7aa0Va.js → settings-subagents-view-C1WIOO6x.js} +2 -2
- package/dist/public/assets/{settings-system-prompt-view-KlPFbkat.js → settings-system-prompt-view-b3IaVlp1.js} +1 -1
- package/dist/public/assets/{settings-tab-bar-BJtpuIky.js → settings-tab-bar-cx4BrJIY.js} +1 -1
- package/dist/public/assets/{settings-view-dchqYhRC.js → settings-view-C_ggbCIB.js} +2 -2
- package/dist/public/assets/{slug-utils-Ccbyp4Mu.js → slug-utils-D5qfm2sn.js} +1 -1
- package/dist/public/assets/store-CEYCdhjW.js +9 -0
- package/dist/public/assets/{table-DCmeRDBK.js → table-DHvBIex4.js} +1 -1
- package/dist/public/assets/tasks-view-DFBi6JaW.js +1 -0
- package/dist/public/assets/{terminal-panel-DlfAu8U1.js → terminal-panel-2T2Kc4CN.js} +1 -1
- package/dist/public/assets/{toggle-group-Dl5P_F6a.js → toggle-group-DaT4acSz.js} +1 -1
- package/dist/public/assets/{tooltip-Cg_EhO9M.js → tooltip-Cqmpv-M5.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-iaFSG9kX.js → use-active-dock-panel-instance-CuYvC5Us.js} +1 -1
- package/dist/public/assets/{use-git-check-BfkMHX3g.js → use-git-check-CmtXehtR.js} +1 -1
- package/dist/public/assets/{use-installed-ai-files-BtR-wIuu.js → use-installed-ai-files-Cdzy29ie.js} +1 -1
- package/dist/public/assets/{useBaseQuery-ChJtNS_3.js → useBaseQuery-D6c39Xb1.js} +1 -1
- package/dist/public/assets/{utils-BCj_kT9l.js → utils-CWTBjUlE.js} +1 -1
- package/dist/public/assets/{web-BC7Gc4bP.js → web-BlBW8SWJ.js} +1 -1
- package/dist/public/assets/{web-C5YunZdw.js → web-CIGP6pa8.js} +1 -1
- package/dist/public/assets/{web-BdHVYPFA.js → web-CsChMX5V.js} +1 -1
- package/dist/public/assets/{web-BGZnt3gU.js → web-bYOmn95I.js} +1 -1
- package/dist/public/index.html +22 -22
- package/package.json +1 -1
- package/dist/public/assets/api-B_ZIptgC.js +0 -2
- package/dist/public/assets/chat-dock-context-DhO-jYMh.js +0 -1
- package/dist/public/assets/conversation-history-view-CkI6-Hvt.js +0 -1
- package/dist/public/assets/create-project-dialog-Ciiyx0LH.js +0 -2
- package/dist/public/assets/diff-view-DKEDlvjR.js +0 -4
- package/dist/public/assets/dist-DZtmmQ-F.js +0 -2
- package/dist/public/assets/explorer-tree-BWb4wB5M.js +0 -1
- package/dist/public/assets/explorer-view-qOBi4ACi.js +0 -76
- package/dist/public/assets/index-B3oaBks2.css +0 -1
- package/dist/public/assets/index-DdJcjvu2.js +0 -112
- package/dist/public/assets/onboarding-dialog-CfkWB6ST.js +0 -1
- package/dist/public/assets/project-coding-view-CrOGfL2D.js +0 -1
- package/dist/public/assets/project-model-aliases-view-D_pamHsA.js +0 -1
- package/dist/public/assets/project-settings-view-C04tQu0x.js +0 -1
- package/dist/public/assets/providers-list-view-4pcZxBFJ.js +0 -1
- package/dist/public/assets/pull-request-dialog-HXBislex.js +0 -1
- package/dist/public/assets/settings-general-view-ybttpP37.js +0 -1
- package/dist/public/assets/settings-mcp-servers-view-kTpnzhrf.js +0 -5
- package/dist/public/assets/settings-models-view-RmIvRn-i.js +0 -1
- package/dist/public/assets/settings-setup-view-ORNCF3ma.js +0 -2
- package/dist/public/assets/settings-skills-view-Dl38QbWw.js +0 -2
- package/dist/public/assets/settings-slash-commands-view-CSm-ZqwM.js +0 -1
- package/dist/public/assets/store-D4D62vkY.js +0 -9
- package/dist/public/assets/tasks-view-CRBklv4O.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Lt as i,R as a,vt as o}from"./dist-DZtmmQ-F.js";import{r as s,t as c}from"./utils-BCj_kT9l.js";import{$t as l,A as u,Sn as d,Tn as f,dt as p,gn as m}from"./lucide-react-CNNzKD4G.js";import{t as h}from"./button-DhxraVUW.js";import{i as g,n as _,r as v,t as y}from"./tooltip-Cg_EhO9M.js";import{$t as b,Dn as x,Ft as S,K as C,Nt as w,On as T,Rn as E,V as D,Vr as O,m as k}from"./api-B_ZIptgC.js";import{n as A}from"./scroll-area-BQ9bdsVQ.js";import{$t as j,Cr as M,Dr as N,Er as P,Or as F,Ot as I,Sr as L,St as R,Tr as ee,Ut as z,ft as te,gt as B,ht as V,kr as H,lt as U,mt as ne,pt as W,ut as G,wr as re}from"./index-DdJcjvu2.js";import{n as K,t as q}from"./toggle-group-Dl5P_F6a.js";import{t as J}from"./sorting-DqwxPMRN.js";import{t as ie}from"./pending-changes-Bn-0ak1d.js";import{n as ae,r as oe,t as se}from"./use-git-check-BfkMHX3g.js";var Y=e(n(),1),X=t(),Z=r();function ce(e){let t=(0,X.c)(34),{model:n,disabled:r,willBeEnabled:a,isRecommended:o,onToggle:l}=e,u;t[0]===n.id?u=t[1]:(u=j(n.id),t[0]=n.id,t[1]=u);let d=u,f=n.pricing,p=a&&o,m;t[2]!==n.id||t[3]!==l?(m=function(){l(n.id)},t[2]=n.id,t[3]=l,t[4]=m):m=t[4];let h=m,v=r&&`opacity-25`,b;t[5]===v?b=t[6]:(b=c(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,v),t[5]=v,t[6]=b);let x=`${d} ${a?`enabled`:`disabled`}`,S;t[7]!==r||t[8]!==h||t[9]!==n.id||t[10]!==x||t[11]!==a?(S=(0,Z.jsx)(U,{id:n.id,disabled:r,value:a,onChange:h,ariaLabel:x}),t[7]=r,t[8]=h,t[9]=n.id,t[10]=x,t[11]=a,t[12]=S):S=t[12];let C=n.id,w;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(w=c(i.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=w):w=t[13];let T;t[14]===p?T=t[15]:(T=p&&(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=p,t[15]=T);let E;t[16]!==d||t[17]!==n.id||t[18]!==T?(E=(0,Z.jsxs)(`label`,{htmlFor:C,className:w,children:[d,T]}),t[16]=d,t[17]=n.id,t[18]=T,t[19]=E):E=t[19];let D;t[20]===f?D=t[21]:(D=f&&(0,Z.jsx)(`span`,{className:c(i.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(f.prompt??0)<=0&&(f.completion??0)<=0?`Free`:`${s(f.prompt??0)} in | ${s(f.completion??0)} out`}),t[20]=f,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,Z.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==b||t[27]!==S?(k=(0,Z.jsx)(g,{asChild:!0,children:(0,Z.jsxs)(`div`,{className:b,children:[S,O]})}),t[25]=O,t[26]=b,t[27]=S,t[28]=k):k=t[28];let A;t[29]===n.description?A=t[30]:(A=n.description&&(0,Z.jsx)(_,{side:`top`,className:`max-w-xs`,children:(0,Z.jsx)(`p`,{className:i.body,children:n.description})}),t[29]=n.description,t[30]=A);let M;return t[31]!==k||t[32]!==A?(M=(0,Z.jsxs)(y,{children:[k,A]}),t[31]=k,t[32]=A,t[33]=M):M=t[33],M}function le(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function ue(e){return[j(e.id),e.name,le(e.name)]}function de(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return ue(e).some(e=>n.has(e.toLowerCase()))}function fe(e,t){return e.filter(e=>de(e,t)).map(e=>e.id)}var Q=a(`app.model-selector.ui`),pe=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function me({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:a=`grid`,autoSelectRecommended:o=!1}){let[s,d]=(0,Y.useState)([]),[m,h]=(0,Y.useState)(new Set),[g,_]=(0,Y.useState)(new Set),[y,b]=(0,Y.useState)(new Map),[x,w]=(0,Y.useState)(!1),[T,E]=(0,Y.useState)(``),[D,O]=(0,Y.useState)(`alphabetical`);(0,Y.useEffect)(()=>{k()},[e]);let k=async()=>{w(!0),E(``),O(`alphabetical`);try{let t=await C(e);d(t.models);let n=new Set(t.enabledModelIds);h(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await S();i=new Set(fe(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){Q.error(`Failed to load recommended models:`,e)}_(i),b(r),A(n,r,t.models)}catch(t){Q.error(`Failed to load models for ${e}:`,t),d([]),h(new Set),_(new Set)}finally{w(!1)}},A=(e,n,r=s)=>{let i=new Set(e);r.forEach(e=>{n.has(e.id)&&(n.get(e.id)?i.add(e.id):i.delete(e.id))}),t?.(i)},N=e=>{b(t=>{let n=ie(t,e,m);return A(m,n),n})},P=e=>{b(t=>{let n=new Map(t);return s.forEach(t=>{let r=m.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),A(m,n),n})},F=e=>j(e.id);function I(e,t=y){let n=t.has(e),r=t.get(e);return n?!!r:m.has(e)}let L=J({models:s,query:T,sortBy:D,getDisplayName:F,getPriority:e=>+!I(e.id)}),R=D===`alphabetical`?`alphabetical`:`price`;function ee(e){if(e===`alphabetical`){O(`alphabetical`);return}e===`price`&&O(`price-low`)}function z(){D!==`alphabetical`&&O(e=>e===`price-low`?`price-high`:`price-low`)}return x||n?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(p,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,Z.jsx)(`div`,{className:`text-center py-8`,children:(0,Z.jsx)(`p`,{className:i.bodyMuted,children:`No models available for this provider.`})}):a===`compact`?(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Z.jsxs)(`div`,{className:c(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Z.jsx)(U,{id:`select-all-models`,disabled:r,value:s.every(e=>I(e.id)),onChange:e=>P(e),ariaLabel:`Select all models`}),(0,Z.jsx)(`label`,{htmlFor:`select-all-models`,className:c(i.body,`cursor-pointer`),children:`Select all models`})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,Z.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,Z.jsx)(u,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,Z.jsx)(M,{placeholder:`Search models...`,value:T,onChange:e=>E(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,Z.jsxs)(q,{type:`single`,value:R,onValueChange:ee,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,Z.jsx)(K,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:pe,children:(0,Z.jsx)(f,{className:`h-4 w-4`})}),(0,Z.jsx)(K,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:pe,onClick:z,children:(0,Z.jsx)(l,{className:`h-4 w-4`})})]})]})]}),(0,Z.jsx)(v,{children:(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:L.length===0?(0,Z.jsx)(`div`,{className:`text-center py-4`,children:(0,Z.jsx)(`p`,{className:i.bodyMuted,children:T?`No models match your search.`:`No models available.`})}):L.map(e=>(0,Z.jsx)(ce,{model:e,disabled:r,willBeEnabled:I(e.id),isRecommended:g.has(e.id),onToggle:N},e.id))})})]}):null}var $=a(`app.onboarding-dialog.ui`);function he(e){let t=(0,X.c)(26),{currentStep:n}=e,r=e=>e===`provider-selection`&&n===`provider-selection`||n===`model-selection`,a=e=>n===e,o=a(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,o),t[0]=o,t[1]=s);let l;t[2]===s?l=t[3]:(l=(0,Z.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=l);let u=r(`provider-selection`)?`bg-primary`:`bg-muted`,d;t[4]===u?d=t[5]:(d=c(`h-0.5 flex-1`,u),t[4]=u,t[5]=d);let f;t[6]===d?f=t[7]:(f=(0,Z.jsx)(`div`,{className:d}),t[6]=d,t[7]=f);let p=a(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,m;t[8]===p?m=t[9]:(m=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,p),t[8]=p,t[9]=m);let h;t[10]===m?h=t[11]:(h=(0,Z.jsx)(`div`,{className:m,children:`2`}),t[10]=m,t[11]=h);let g=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===g?_=t[13]:(_=c(`h-0.5 flex-1`,g),t[12]=g,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,Z.jsx)(`div`,{className:_}),t[14]=_,t[15]=v);let y=a(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,b;t[16]===y?b=t[17]:(b=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,Z.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==l||t[23]!==f||t[24]!==h?(S=(0,Z.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[l,f,h,v,x]}),t[20]=v,t[21]=x,t[22]=l,t[23]=f,t[24]=h,t[25]=S):S=t[25],S}function ge(e){e.preventDefault()}function _e(e){let t=(0,X.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(H,{children:`Select an AI Provider`}),(0,Z.jsx)(P,{children:`Choose your preferred AI provider and enter your API key.`})]}),t[0]=e):e=t[0],e}if(n===`model-selection`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(H,{children:`Select Models`}),(0,Z.jsx)(P,{children:`Choose which models you want to use with this provider.`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(H,{children:`Let's get started`}),(0,Z.jsx)(P,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function ve(e){let t=(0,X.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(p,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,Z.jsx)(ae,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,Z.jsx)(oe,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}async function ye(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),O.invalidate(`providers`);let e=(await w()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function be(e){let t=(0,X.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:a,onApiKeyChange:s,validatingKey:l,connectingOpenRouter:u,savingOnboarding:d,providerEnvValues:f,onProviderEnvChange:p,keyError:m,onConnectOpenRouter:h}=e,g;t[0]!==u||t[1]!==d||t[2]!==l?(g=Se(d,l,u),t[0]=u,t[1]=d,t[2]=l,t[3]=g):g=t[3];let _=g,v;t[4]!==a||t[5]!==s||t[6]!==h||t[7]!==r||t[8]!==_||t[9]!==n?(v=(0,Z.jsx)(G,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:a,onApiKeyChange:s,variant:`dropdown`,isLoading:_,onConnectOpenRouter:h}),t[4]=a,t[5]=s,t[6]=h,t[7]=r,t[8]=_,t[9]=n,t[10]=v):v=t[10];let y;t[11]!==p||t[12]!==_||t[13]!==f||t[14]!==n?(y=n&&ne(n).map(e=>(0,Z.jsx)(I,{label:(0,Z.jsx)(L,{htmlFor:e,children:W(e)}),control:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`input`,{id:e,value:f[e]??``,onChange:t=>p(e,t.target.value),disabled:_,className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:o(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===V(n)||o(n.slug)&&e===`LOCAL_API_URL`?(0,Z.jsx)(`p`,{className:c(i.bodyMuted,`mt-2 break-all`),children:B(n,f)||n.api}):null]}),align:`start`},e)),t[11]=p,t[12]=_,t[13]=f,t[14]=n,t[15]=y):y=t[15];let b;t[16]===m?b=t[17]:(b=m&&(0,Z.jsx)(R,{variant:`error`,className:`mb-0`,children:m}),t[16]=m,t[17]=b);let x;return t[18]!==v||t[19]!==y||t[20]!==b?(x=(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[v,y,b]}),t[18]=v,t[19]=y,t[20]=b,t[21]=x):x=t[21],x}function xe(e){let t=(0,X.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,Z.jsx)(`div`,{className:`space-y-4`,children:(0,Z.jsx)(me,{provider:n,isLoading:r,displayMode:`compact`,disabled:!1,autoSelectRecommended:!0,onModelsChange:i})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function Se(e,t,n){return e||t||n}function Ce(e,t,n){return e||!t.trim()||!n}function we(e){let t=(0,X.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:u,onContinue:f,onValidate:g,onFinish:_}=e,v,y;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(v=Se(r,a,o),y=Ce(v,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=v,t[6]=y):(v=t[5],y=t[6]);let b=y,x;t[7]!==n||t[8]!==l||t[9]!==v?(x=n===`provider-selection`&&(0,Z.jsx)(h,{variant:`ghost`,onClick:l,disabled:v,children:`Skip for now`}),t[7]=n,t[8]=l,t[9]=v,t[10]=x):x=t[10];let S;t[11]===x?S=t[12]:(S=(0,Z.jsx)(`div`,{children:x}),t[11]=x,t[12]=S);let C;t[13]!==n||t[14]!==u||t[15]!==v?(C=n!==`git-check`&&(0,Z.jsx)(h,{variant:`outline`,onClick:u,disabled:v,children:`Back`}),t[13]=n,t[14]=u,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==i||t[19]!==f?(w=n===`git-check`&&(0,Z.jsxs)(h,{onClick:f,disabled:i,className:`gap-2`,children:[`Continue `,(0,Z.jsx)(d,{className:`h-4 w-4`})]}),t[17]=n,t[18]=i,t[19]=f,t[20]=w):w=t[20];let T;t[21]!==n||t[22]!==g||t[23]!==b||t[24]!==a?(T=n===`provider-selection`&&(0,Z.jsx)(h,{onClick:g,disabled:b,className:`gap-2`,children:a?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,Z.jsxs)(Z.Fragment,{children:[`Next `,(0,Z.jsx)(d,{className:`h-4 w-4`})]})}),t[21]=n,t[22]=g,t[23]=b,t[24]=a,t[25]=T):T=t[25];let E;t[26]!==n||t[27]!==_||t[28]!==r?(E=n===`model-selection`&&(0,Z.jsx)(h,{onClick:_,disabled:r,className:`gap-2`,children:r?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,Z.jsxs)(Z.Fragment,{children:[`Finish `,(0,Z.jsx)(m,{className:`h-4 w-4`})]})}),t[26]=n,t[27]=_,t[28]=r,t[29]=E):E=t[29];let D;t[30]!==C||t[31]!==w||t[32]!==T||t[33]!==E?(D=(0,Z.jsxs)(`div`,{className:`flex gap-3`,children:[C,w,T,E]}),t[30]=C,t[31]=w,t[32]=T,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==D?(O=(0,Z.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,Z.jsxs)(N,{className:`flex items-center justify-between`,children:[S,D]})}),t[35]=S,t[36]=D,t[37]=O):O=t[37],O}function Te({open:e,onOpenChange:t,onComplete:n}){let[r,i]=(0,Y.useState)(`git-check`),a=se({enabled:e&&r===`git-check`}),o=(0,Y.useRef)(!1),[s,c]=(0,Y.useState)([]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)({}),[_,v]=(0,Y.useState)(!1),[y,S]=(0,Y.useState)(``),[O,j]=(0,Y.useState)(new Set),[M,N]=(0,Y.useState)(!1),[P,I]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!o.current&&(o.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,Y.useEffect)(()=>{e&&r===`provider-selection`&&s.length===0&&L()},[e,r,s.length]),(0,Y.useEffect)(()=>{e&&r===`model-selection`&&l&&R()},[e,r,l]);let L=async()=>{try{let e=await w();if(c(e),e.length>0&&!l){let t=te(e);t&&(u(t),f(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}},R=async()=>{if(l){N(!0);try{await C(l.name),j(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{N(!1)}}},B=async()=>{if(!l||!d.trim()){S(`Please enter an API key`);return}let e=ne(l),t=e.find(e=>!h[e]?.trim());if(t){S(`Please enter ${W(t)}`);return}v(!0),S(``);try{e.length>0&&await x(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await T(l.slug,d),i(`model-selection`)}catch(e){S(e instanceof Error?e.message:`Failed to validate API key`)}finally{v(!1)}},V=async()=>{if(l){I(!0);try{for(let e of O)await D(l.slug,e);z(),await k(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{I(!1)}}},H=async()=>{I(!0);try{await k(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{I(!1)}},U=e=>{u(e),f(e.apiKey??``),g(e.envValues??{}),S(``)},G=(e,t)=>{g(n=>({...n,[e]:t}))},K=()=>{i(`provider-selection`)};async function q(){if(!p){m(!0),S(``);try{await b(await E());let e=await ye();if(!e){S(`OpenRouter connection timed out. You can enter an API key manually.`);return}u(e),f(e.apiKey??``),i(`model-selection`)}catch(e){S(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{m(!1)}}}function J(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return(0,Z.jsx)(re,{open:e,onOpenChange:t,children:(0,Z.jsxs)(ee,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:ge,children:[(0,Z.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[(0,Z.jsx)(he,{currentStep:r}),(0,Z.jsx)(F,{children:(0,Z.jsx)(_e,{currentStep:r})})]}),(0,Z.jsx)(A,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,Z.jsxs)(`div`,{className:`px-6 py-4`,children:[r===`git-check`&&(0,Z.jsx)(`div`,{className:`space-y-4`,children:(0,Z.jsx)(ve,{gitLoading:a.loading,gitInstalled:a.gitInstalled,version:a.version,platform:a.platform,plan:a.plan,onCheckAgain:()=>void a.check()})}),r===`provider-selection`&&(0,Z.jsx)(be,{selectedProvider:l,onProviderChange:U,apiKey:d,onApiKeyChange:f,validatingKey:_,connectingOpenRouter:p,savingOnboarding:P,providerEnvValues:h,onProviderEnvChange:G,keyError:y,onConnectOpenRouter:q}),r===`model-selection`&&l&&(0,Z.jsx)(xe,{providerSlug:l.slug,modelsLoading:M,onModelsChange:j})]})}),(0,Z.jsx)(we,{currentStep:r,savingOnboarding:P,gitLoading:a.loading,validatingKey:_,connectingOpenRouter:p,apiKey:d,hasProvider:!!l,onSkip:()=>void H(),onBack:J,onContinue:K,onValidate:()=>void B(),onFinish:()=>void V()})]})})}export{Te as OnboardingDialog,Te as default,we as OnboardingFooter};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Lt as a,fn as o}from"./dist-DZtmmQ-F.js";import{t as s}from"./utils-BCj_kT9l.js";import{dt as c}from"./lucide-react-CNNzKD4G.js";import{t as l}from"./button-DhxraVUW.js";import{$n as u,St as d,Yn as f}from"./api-B_ZIptgC.js";import{t as p}from"./use-toast-xpb5jNtN.js";import{At as m,B as h,Cr as g,Ct as _,Dt as v,Pt as y,Sr as b,bt as x,jt as S,kt as C,lt as w}from"./index-DdJcjvu2.js";import{i as T}from"./commit-method-fields-C7Du43jy.js";import{t as E}from"./use-settings-page-loading-CpaBd260.js";var D=t(),O=e(n(),1),k=r();async function A(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await d(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??o.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??o.PullRequest),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function ee(e,t,n){n(!0);try{let n=await f(e);n.runCommand?(t(n.runCommand),p({title:`Success`,description:`Suggested: ${n.runCommand}`})):p({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function j(e,t,n,r){await u(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function M(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await u(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function N(e,t,n){t!==n&&await u(e,{useBuiltInBrowser:t})}function P(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.allowAllCommands!==e.originalAllowAllCommands||JSON.stringify(e.allowedCommandPatterns)!==JSON.stringify(e.originalAllowedCommandPatterns)||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function F(e,t,n){n.setSaving(!0);try{return await j(e,t.value,t.runCmd,t.commitMethod),await M(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await N(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return p({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function I(e){let t=(0,D.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:o}=e;if(n||r.length===0)return null;let c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,k.jsx)(b,{children:`Allowed command patterns`}),t[0]=c):c=t[0];let u;if(t[1]!==i||t[2]!==o||t[3]!==r){let e;t[5]!==i||t[6]!==o?(e=e=>(0,k.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,k.jsx)(`code`,{className:s(a.mono,a.bodyMuted),children:e}),(0,k.jsx)(l,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o(e),children:`Remove`})]},e),t[5]=i,t[6]=o,t[7]=e):e=t[7],u=r.map(e),t[1]=i,t[2]=o,t[3]=r,t[4]=u}else u=t[4];let d;return t[8]===u?d=t[9]:(d=(0,k.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[c,(0,k.jsx)(`ul`,{className:`space-y-1`,children:u})]}),t[8]=u,t[9]=d),d}function L(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setAllowAllCommands:i,setAllowedCommandPatterns:a,setUseBuiltInBrowser:o,setOriginalValue:s,setOriginalRunCmd:c,setOriginalCommitMethod:l,setOriginalAllowAllCommands:u,setOriginalAllowedCommandPatterns:d,setOriginalUseBuiltInBrowser:f,setLoading:p,setSaving:m,setSuggestingCommand:h}=e;return e}function R(){let e=(0,D.c)(8),[t,n]=(0,O.useState)(``),[r,i]=(0,O.useState)(``),[a,s]=(0,O.useState)(o.PullRequest),[c,l]=(0,O.useState)(!0),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[0]=u):u=e[0];let[d,f]=(0,O.useState)(u),[p,m]=(0,O.useState)(!0),h;return e[1]!==c||e[2]!==d||e[3]!==a||e[4]!==r||e[5]!==p||e[6]!==t?(h={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:a,setCommitMethod:s,allowAllCommands:c,setAllowAllCommands:l,allowedCommandPatterns:d,setAllowedCommandPatterns:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m},e[1]=c,e[2]=d,e[3]=a,e[4]=r,e[5]=p,e[6]=t,e[7]=h):h=e[7],h}function z(){let e=(0,D.c)(8),[t,n]=(0,O.useState)(``),[r,i]=(0,O.useState)(``),[a,s]=(0,O.useState)(o.PullRequest),[c,l]=(0,O.useState)(!0),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[0]=u):u=e[0];let[d,f]=(0,O.useState)(u),[p,m]=(0,O.useState)(!0),h;return e[1]!==c||e[2]!==d||e[3]!==a||e[4]!==r||e[5]!==p||e[6]!==t?(h={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:a,setOriginalCommitMethod:s,originalAllowAllCommands:c,setOriginalAllowAllCommands:l,originalAllowedCommandPatterns:d,setOriginalAllowedCommandPatterns:f,originalUseBuiltInBrowser:p,setOriginalUseBuiltInBrowser:m},e[1]=c,e[2]=d,e[3]=a,e[4]=r,e[5]=p,e[6]=t,e[7]=h):h=e[7],h}function te(e){let t=(0,D.c)(80),n=i(),r=R(),a=z(),{value:o,setValue:s,runCmd:c,setRunCmd:l,commitMethod:u,setCommitMethod:d,allowAllCommands:f,setAllowAllCommands:p,allowedCommandPatterns:m,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=r,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalAllowAllCommands:w,setOriginalAllowAllCommands:T,originalAllowedCommandPatterns:k,setOriginalAllowedCommandPatterns:j,originalUseBuiltInBrowser:M,setOriginalUseBuiltInBrowser:N}=a,[I,te]=(0,O.useState)(!1),[B,ne]=(0,O.useState)(!1),[V,re]=(0,O.useState)(!0),H;t[0]!==p||t[1]!==h||t[2]!==d||t[3]!==T||t[4]!==j||t[5]!==C||t[6]!==x||t[7]!==N||t[8]!==y||t[9]!==l||t[10]!==_||t[11]!==s?(H={setValue:s,setRunCmd:l,setCommitMethod:d,setAllowAllCommands:p,setAllowedCommandPatterns:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalAllowAllCommands:T,setOriginalAllowedCommandPatterns:j,setOriginalUseBuiltInBrowser:N,setLoading:re,setSaving:te,setSuggestingCommand:ne},t[0]=p,t[1]=h,t[2]=d,t[3]=T,t[4]=j,t[5]=C,t[6]=x,t[7]=N,t[8]=y,t[9]=l,t[10]=_,t[11]=s,t[12]=H):H=t[12];let U=L(H),W;t[13]!==e||t[14]!==U?(W=()=>A(e,U),t[13]=e,t[14]=U,t[15]=W):W=t[15];let G=W,K,q;t[16]===e?(K=t[17],q=t[18]):(K=()=>{e&&re(!0)},q=[e],t[16]=e,t[17]=K,t[18]=q),(0,O.useLayoutEffect)(K,q);let J,Y;t[19]===G?(J=t[20],Y=t[21]):(J=()=>{G()},Y=[G],t[19]=G,t[20]=J,t[21]=Y),(0,O.useEffect)(J,Y);let X;t[22]===V?X=t[23]:(X=[V],t[22]=V,t[23]=X);let ie=E(e,X),Z;t[24]===d?Z=t[25]:(Z=function(e){d(e)},t[24]=d,t[25]=Z);let ae=Z,Q;t[26]!==e||t[27]!==l?(Q=async function(){e&&await ee(e,l,ne)},t[26]=e,t[27]=l,t[28]=Q):Q=t[28];let oe=Q,$;t[29]!==f||t[30]!==m||t[31]!==u||t[32]!==n||t[33]!==w||t[34]!==k||t[35]!==S||t[36]!==b||t[37]!==M||t[38]!==v||t[39]!==e||t[40]!==c||t[41]!==U||t[42]!==g||t[43]!==o?($=async function(){e&&await F(e,{value:o,runCmd:c,commitMethod:u,allowAllCommands:f,allowedCommandPatterns:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalAllowAllCommands:w,originalAllowedCommandPatterns:k,originalUseBuiltInBrowser:M},U)&&n(`/`)},t[29]=f,t[30]=m,t[31]=u,t[32]=n,t[33]=w,t[34]=k,t[35]=S,t[36]=b,t[37]=M,t[38]=v,t[39]=e,t[40]=c,t[41]=U,t[42]=g,t[43]=o,t[44]=$):$=t[44];let se=$,ce=V||I,le=V||B,ue;t[45]!==f||t[46]!==m||t[47]!==u||t[48]!==w||t[49]!==k||t[50]!==S||t[51]!==b||t[52]!==M||t[53]!==v||t[54]!==c||t[55]!==g||t[56]!==o?(ue=P({value:o,runCmd:c,commitMethod:u,allowAllCommands:f,allowedCommandPatterns:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalAllowAllCommands:w,originalAllowedCommandPatterns:k,originalUseBuiltInBrowser:M}),t[45]=f,t[46]=m,t[47]=u,t[48]=w,t[49]=k,t[50]=S,t[51]=b,t[52]=M,t[53]=v,t[54]=c,t[55]=g,t[56]=o,t[57]=ue):ue=t[57];let de=ue,fe;return t[58]!==f||t[59]!==m||t[60]!==u||t[61]!==ce||t[62]!==ae||t[63]!==se||t[64]!==oe||t[65]!==de||t[66]!==V||t[67]!==ie||t[68]!==c||t[69]!==I||t[70]!==p||t[71]!==h||t[72]!==l||t[73]!==_||t[74]!==s||t[75]!==le||t[76]!==B||t[77]!==g||t[78]!==o?(fe={value:o,setValue:s,runCmd:c,setRunCmd:l,commitMethod:u,saving:I,suggestingCommand:B,loading:V,allowAllCommands:f,setAllowAllCommands:p,allowedCommandPatterns:m,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:ie,handleCommitMethodChange:ae,handleSuggestCommand:oe,handleSave:se,controlsDisabled:ce,suggestDisabled:le,hasUnsavedChanges:de},t[58]=f,t[59]=m,t[60]=u,t[61]=ce,t[62]=ae,t[63]=se,t[64]=oe,t[65]=de,t[66]=V,t[67]=ie,t[68]=c,t[69]=I,t[70]=p,t[71]=h,t[72]=l,t[73]=_,t[74]=s,t[75]=le,t[76]=B,t[77]=g,t[78]=o,t[79]=fe):fe=t[79],fe}function B(e){let t=(0,D.c)(44),{projectId:n}=e,{value:r,setValue:i,runCmd:a,setRunCmd:o,commitMethod:s,saving:c,suggestingCommand:l,loading:u,allowAllCommands:d,setAllowAllCommands:f,allowedCommandPatterns:p,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:b,pageLoading:x,handleCommitMethodChange:w,handleSuggestCommand:T,handleSave:E,controlsDisabled:O,suggestDisabled:A,hasUnsavedChanges:ee}=te(n);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(m,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let j=O||!ee,M;t[1]!==E||t[2]!==c||t[3]!==j?(M=(0,k.jsx)(_,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,k.jsx)(ne,{saving:c,disabled:j,onSave:E}),sticky:!1}),t[1]=E,t[2]=c,t[3]=j,t[4]=M):M=t[4];let N;t[5]!==u||t[6]!==i||t[7]!==r?(N=(0,k.jsx)(V,{value:r,loading:u,onChange:i}),t[5]=u,t[6]=i,t[7]=r,t[8]=N):N=t[8];let P;t[9]!==T||t[10]!==u||t[11]!==a||t[12]!==o||t[13]!==A||t[14]!==l?(P=(0,k.jsx)(re,{runCmd:a,loading:u,suggestingCommand:l,suggestDisabled:A,onChange:o,onSuggest:T}),t[9]=T,t[10]=u,t[11]=a,t[12]=o,t[13]=A,t[14]=l,t[15]=P):P=t[15];let F;t[16]!==s||t[17]!==w||t[18]!==u?(F=(0,k.jsx)(U,{commitMethod:s,loading:u,onChange:w}),t[16]=s,t[17]=w,t[18]=u,t[19]=F):F=t[19];let I;t[20]!==d||t[21]!==p||t[22]!==O||t[23]!==u||t[24]!==f||t[25]!==h?(I=(0,k.jsx)(W,{allowAllCommands:d,allowedCommandPatterns:p,loading:u,controlsDisabled:O,onAllowAllChange:f,onPatternsChange:h}),t[20]=d,t[21]=p,t[22]=O,t[23]=u,t[24]=f,t[25]=h,t[26]=I):I=t[26];let L;t[27]!==O||t[28]!==b||t[29]!==g?(L=(0,k.jsx)(G,{useBuiltInBrowser:g,disabled:O,onChange:b}),t[27]=O,t[28]=b,t[29]=g,t[30]=L):L=t[30];let R;t[31]!==N||t[32]!==P||t[33]!==F||t[34]!==I||t[35]!==L?(R=(0,k.jsx)(S,{className:`max-w-none pt-6`,children:(0,k.jsxs)(C,{children:[N,P,F,I,L]})}),t[31]=N,t[32]=P,t[33]=F,t[34]=I,t[35]=L,t[36]=R):R=t[36];let z;t[37]!==M||t[38]!==R?(z=(0,k.jsxs)(y,{className:`shrink-0`,children:[M,R]}),t[37]=M,t[38]=R,t[39]=z):z=t[39];let B;return t[40]!==x||t[41]!==n||t[42]!==z?(B=(0,k.jsx)(v,{loading:x,children:z},n),t[40]=x,t[41]=n,t[42]=z,t[43]=B):B=t[43],B}function ne(e){let t=(0,D.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,k.jsx)(l,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function V(e){let t=(0,D.c)(6),{value:n,loading:r,onChange:i}=e,a;t[0]===i?a=t[1]:(a=e=>i(e.target.value),t[0]=i,t[1]=a);let o;return t[2]!==r||t[3]!==a||t[4]!==n?(o=(0,k.jsx)(x,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,k.jsx)(h,{id:`setupScript`,value:n,onChange:a,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:r})}),t[2]=r,t[3]=a,t[4]=n,t[5]=o):o=t[5],o}function re(e){let t=(0,D.c)(17),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,u;t[0]===o?u=t[1]:(u=e=>o(e.target.value),t[0]=o,t[1]=u);let d;t[2]!==r||t[3]!==n||t[4]!==u?(d=(0,k.jsx)(g,{id:`runCommand`,value:n,onChange:u,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:r}),t[2]=r,t[3]=n,t[4]=u,t[5]=d):d=t[5];let f;t[6]===s?f=t[7]:(f=()=>void s(),t[6]=s,t[7]=f);let p;t[8]===i?p=t[9]:(p=i?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(c,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[8]=i,t[9]=p);let m;t[10]!==a||t[11]!==f||t[12]!==p?(m=(0,k.jsx)(l,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:f,disabled:a,children:p}),t[10]=a,t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;return t[14]!==d||t[15]!==m?(h=(0,k.jsx)(x,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,k.jsxs)(`div`,{className:`relative`,children:[d,m]})}),t[14]=d,t[15]=m,t[16]=h):h=t[16],h}function H(e){return e===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function U(e){let t=(0,D.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=H(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,k.jsx)(T,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,k.jsx)(x,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function W(e){let t=(0,D.c)(16),{allowAllCommands:n,allowedCommandPatterns:r,loading:i,controlsDisabled:a,onAllowAllChange:o,onPatternsChange:s}=e,c=!n,l;t[0]===o?l=t[1]:(l=e=>o(!e),t[0]=o,t[1]=l);let u;t[2]!==i||t[3]!==c||t[4]!==l?(u=(0,k.jsx)(w,{value:c,onChange:l,disabled:i,ariaLabel:`Confirm Commands`}),t[2]=i,t[3]=c,t[4]=l,t[5]=u):u=t[5];let d;t[6]===s?d=t[7]:(d=e=>s(t=>t.filter(t=>t!==e)),t[6]=s,t[7]=d);let f;t[8]!==n||t[9]!==r||t[10]!==a||t[11]!==d?(f=(0,k.jsx)(I,{allowAllCommands:n,patterns:r,disabled:a,onRemove:d}),t[8]=n,t[9]=r,t[10]=a,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==u||t[14]!==f?(p=(0,k.jsx)(x,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:u,children:f}),t[13]=u,t[14]=f,t[15]=p):p=t[15],p}function G(e){let t=(0,D.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,k.jsx)(x,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,k.jsx)(w,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Cn as i,Dn as a,En as o,Fn as s,Lt as c,Nn as l,Pn as u,Tn as d,wn as f}from"./dist-DZtmmQ-F.js";import{t as p}from"./utils-BCj_kT9l.js";import{t as m}from"./button-DhxraVUW.js";import{Qn as h,et as g,nt as _}from"./api-B_ZIptgC.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{$t as y,Bt as b,Ct as x,Dt as S,Ft as C,Ht as w,It as T,Lt as E,Pt as D,Rt as O,_t as k,jt as A,xt as j,zt as M}from"./index-DdJcjvu2.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-DCmeRDBK.js";import{t as z}from"./use-settings-page-loading-CpaBd260.js";var B=e(n(),1),V=t(),H=r(),U=`__unspecified__`,W=`__default__`,G=`Unsupported`,K=`table-fixed`,q=`[&_tr]:border-b-0`,J=`h-9 px-0 py-2`,Y=p(J,`w-40`),X=p(J,`w-56`),Z=`py-2 pl-0 pr-4 align-middle`,Q=`py-2 pl-0 align-middle`;function $(e){let t=(0,V.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:o}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`span`,{className:c.bodyMuted,children:G}),t[0]=e):e=t[0],e}let s=r.reasoningEffort??W,l;t[1]!==n||t[2]!==o?(l=e=>o(n,e),t[1]=n,t[2]=o,t[3]=l):l=t[3];let d=`model-alias-${n}-reasoning`,p=`${f[n]} reasoning effort`,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,H.jsx)(b,{placeholder:`Model default`}),t[4]=m):m=t[4];let h;t[5]!==d||t[6]!==p?(h=(0,H.jsx)(M,{id:d,className:`w-full min-w-0`,"aria-label":p,children:m}),t[5]=d,t[6]=p,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,H.jsx)(E,{value:W,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(E,{value:`off`,children:u(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(ee),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,H.jsxs)(T,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==s||t[16]!==y||t[17]!==l||t[18]!==h?(x=(0,H.jsxs)(C,{value:s,onValueChange:l,disabled:a,children:[h,y]}),t[14]=a,t[15]=s,t[16]=y,t[17]=l,t[18]=h,t[19]=x):x=t[19],x}function ee(e){return(0,H.jsx)(E,{value:e,children:u(e)},e)}function te(e){let t=(0,V.c)(21),{value:n,onChange:r,enabledModels:c,disabled:l}=e,u=l===void 0?!1:l,p;if(t[0]!==c){p=new Map;for(let e of c){let t=e.provider??`other`,n=p.get(t);n?n.push(e):p.set(t,[e])}t[0]=c,t[1]=p}else p=t[1];let m=p,h;t[2]!==r||t[3]!==n?(h=function(e,t){let i={...n};if(t===U){delete i[e],r(i);return}let a=o(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=h):h=t[4];let g=h,_;t[5]===c?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return c.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=c,t[6]=_);let v=_,x;t[7]!==r||t[8]!==n?(x=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===W)delete a.reasoningEffort;else if(s(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=x):x=t[9];let S=x,w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,H.jsx)(N,{className:q,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(P,{className:Y,children:`Name`}),(0,H.jsx)(P,{className:J,children:`Model`}),(0,H.jsx)(P,{className:X,children:`Reasoning`})]})}),t[10]=w):w=t[10];let D;t[11]!==u||t[12]!==c||t[13]!==v||t[14]!==g||t[15]!==S||t[16]!==m||t[17]!==n?(D=d.map(e=>{let t=n[e],r=t?a(t):U,o=v(t)?.supportedReasoningEfforts??[];return(0,H.jsxs)(I,{className:`hover:bg-transparent`,children:[(0,H.jsx)(L,{className:Z,children:(0,H.jsx)(j,{title:f[e],description:i[e]})}),(0,H.jsx)(L,{className:Z,children:(0,H.jsxs)(C,{value:r,onValueChange:t=>g(e,t),disabled:u,children:[(0,H.jsx)(M,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,H.jsx)(b,{placeholder:`Unspecified`,children:t?(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(k,{providerSlug:t.provider}),(0,H.jsx)(`span`,{className:`truncate`,children:y(t.model)})]}):`Unspecified`})}),(0,H.jsxs)(T,{children:[(0,H.jsx)(E,{value:U,children:`Unspecified`}),c.length>0&&(0,H.jsx)(O,{}),[...m.entries()].map(ne)]})]})}),(0,H.jsx)(L,{className:Q,children:(0,H.jsx)($,{alias:e,target:t,supportedReasoningEfforts:o,disabled:u,onReasoningChange:S})})]},e)}),t[11]=u,t[12]=c,t[13]=v,t[14]=g,t[15]=S,t[16]=m,t[17]=n,t[18]=D):D=t[18];let A;return t[19]===D?A=t[20]:(A=(0,H.jsx)(`div`,{id:`model-aliases`,children:(0,H.jsxs)(R,{className:K,children:[w,(0,H.jsx)(F,{children:D})]})}),t[19]=D,t[20]=A),A}function ne(e){let[t,n]=e;return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:p(c.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,H.jsx)(k,{providerSlug:t}),t]}),n.map(e=>{let n=a({provider:e.provider??t,model:e.id});return(0,H.jsx)(E,{value:n,children:y(e.id)},n)})]},t)}function re(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?y(e.id).localeCompare(y(t.id)):n})}function ie(){let[e,t]=(0,B.useState)({}),[n,r]=(0,B.useState)({}),[i,a]=(0,B.useState)([]),[o,s]=(0,B.useState)(!0),[c,u]=(0,B.useState)(!1),d=(0,B.useCallback)(async()=>{s(!0);try{let[e,n]=await Promise.all([g(),_().catch(()=>({}))]),i=e.modelAliases??{};a(re(Object.values(n).flat())),t(i),r(i)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{s(!1)}},[]);(0,B.useEffect)(()=>{d()},[d]);let f=z(`model-aliases`,[o]);function p(){return JSON.stringify(e)!==JSON.stringify(n)}async function y(){if(p()){u(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();l(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await h({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(w)),await d()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{u(!1)}}}return(0,H.jsx)(S,{loading:f,children:(0,H.jsxs)(D,{className:`shrink-0`,children:[(0,H.jsx)(x,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,H.jsx)(m,{onClick:()=>void y(),disabled:o||c||!p(),children:`Save`}),sticky:!1}),(0,H.jsx)(A,{className:`max-w-none pt-6`,children:(0,H.jsx)(te,{value:e,onChange:t,enabledModels:i,disabled:o||c})})]})})}export{ie as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Ct as a}from"./dist-DZtmmQ-F.js";import{r as o}from"./store-D4D62vkY.js";import{Ot as s,dt as c}from"./lucide-react-CNNzKD4G.js";import{t as l}from"./button-DhxraVUW.js";import{i as u,n as d,r as f,t as p}from"./tooltip-Cg_EhO9M.js";import{$n as m,Ct as h,Qr as g,St as _,Tn as v,er as y}from"./api-B_ZIptgC.js";import{t as b}from"./use-toast-xpb5jNtN.js";import{At as x,B as S,Cr as ee,Ct as te,Dt as ne,Jn as re,Pt as ie,Qn as C,Xn as w,Yn as T,bt as ae,jt as oe,kt as se,o as ce}from"./index-DdJcjvu2.js";import{t as le}from"./use-settings-page-loading-CpaBd260.js";var E=t(),D=e(n(),1),O=r();function ue(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`The selected file is not a readable image.`)),r.src=e})}async function de(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await _(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await h(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function k(e,t){try{let n=await ue(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){b({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function A(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await k(r,t)}finally{URL.revokeObjectURL(r)}}async function j(e,t,n){t!==n&&await y(e,t)}async function fe(e,t,n){t!==n&&await v(e,`AGENTS.md`,t)}async function M(e,t,n){t!==n&&await m(e,{projectIcon:t})}async function pe(e,t,n,r,i,a){n.setSaving(!0);try{await j(e,t.name,t.originalName),await fe(e,t.instructions,t.originalInstructions),await M(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){b({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function me(e){let t=(0,E.c)(26),{projectIcon:n,entityNoun:r,disabled:i,inputRef:a,onFileChange:o,onButtonClick:c,onRemove:l}=e,m;t[0]!==i||t[1]!==a||t[2]!==o?(m=(0,O.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:i}),t[0]=i,t[1]=a,t[2]=o,t[3]=m):m=t[3];let h=n?`Change project icon`:`Choose project icon`,g;t[4]===n?g=t[5]:(g=n?(0,O.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,O.jsx)(s,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=g);let _;t[6]!==i||t[7]!==c||t[8]!==h||t[9]!==g?(_=(0,O.jsx)(C,{asChild:!0,children:(0,O.jsx)(u,{asChild:!0,children:(0,O.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:c,disabled:i,"aria-label":h,children:g})})}),t[6]=i,t[7]=c,t[8]=h,t[9]=g,t[10]=_):_=t[10];let v;t[11]===r?v=t[12]:(v=(0,O.jsxs)(d,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[11]=r,t[12]=v);let y;t[13]!==_||t[14]!==v?(y=(0,O.jsx)(f,{delayDuration:300,children:(0,O.jsxs)(p,{children:[_,v]})}),t[13]=_,t[14]=v,t[15]=y):y=t[15];let b;t[16]!==i||t[17]!==l||t[18]!==n?(b=n&&(0,O.jsx)(T,{children:(0,O.jsx)(w,{disabled:i,onSelect:l,children:`Remove`})}),t[16]=i,t[17]=l,t[18]=n,t[19]=b):b=t[19];let x;t[20]!==y||t[21]!==b?(x=(0,O.jsxs)(re,{children:[y,b]}),t[20]=y,t[21]=b,t[22]=x):x=t[22];let S;return t[23]!==m||t[24]!==x?(S=(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[m,x]}),t[23]=m,t[24]=x,t[25]=S):S=t[25],S}function he(e){let t=(0,E.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,O.jsx)(l,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function ge(e,t,n){let r=(0,E.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return k(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!g())return;let e=function(e){let t=e.detail.dataUrl;a(t)};return window.addEventListener(`tarsk:project-icon-selected`,e),()=>{window.removeEventListener(`tarsk:project-icon-selected`,e)}},s=[a],r[2]=a,r[3]=o,r[4]=s),(0,D.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return A(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){g()&&t?ce(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=u):u=r[9];let d=u,f;return r[10]!==d||r[11]!==l?(f={handleProjectIconChange:l,handleProjectIconButtonClick:d},r[10]=d,r[11]=l,r[12]=f):f=r[12],f}function N(e){let t=(0,E.c)(55),{projectId:n,onProjectUpdated:r}=e,s=i(),c;t[0]===n?c=t[1]:(c=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=c);let l=a({type:o(c)})?`bot`:`project`,[u,d]=(0,D.useState)(``),[f,p]=(0,D.useState)(``),[m,h]=(0,D.useState)(``),[g,_]=(0,D.useState)(!1),[v,y]=(0,D.useState)(!0),[b,re]=(0,D.useState)(``),[C,w]=(0,D.useState)(null),[T,ce]=(0,D.useState)(null),[ue,k]=(0,D.useState)(null),A=(0,D.useRef)(null),j;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(j={setProjectPath:k,setName:d,setInstructions:p,setProjectIcon:w,setOriginalName:re,setOriginalInstructions:h,setOriginalProjectIcon:ce,setLoading:y,setSaving:_},t[2]=j):j=t[2];let fe=j,M;t[3]===n?M=t[4]:(M=()=>de(n,fe),t[3]=n,t[4]=M);let N=M,P,F;t[5]===n?(P=t[6],F=t[7]):(P=()=>{n&&y(!0)},F=[n],t[5]=n,t[6]=P,t[7]=F),(0,D.useLayoutEffect)(P,F);let I,L;t[8]===N?(I=t[9],L=t[10]):(I=()=>{N()},L=[N],t[8]=N,t[9]=I,t[10]=L),(0,D.useEffect)(I,L);let R;t[11]===v?R=t[12]:(R=[v],t[11]=v,t[12]=R);let z=le(n,R),{handleProjectIconChange:B,handleProjectIconButtonClick:V}=ge(w,ue,A),H;t[13]!==f||t[14]!==N||t[15]!==u||t[16]!==s||t[17]!==r||t[18]!==m||t[19]!==b||t[20]!==T||t[21]!==C||t[22]!==n?(H=async()=>{n&&await pe(n,{name:u,instructions:f,projectIcon:C,originalName:b,originalInstructions:m,originalProjectIcon:T},fe,r,s,N)},t[13]=f,t[14]=N,t[15]=u,t[16]=s,t[17]=r,t[18]=m,t[19]=b,t[20]=T,t[21]=C,t[22]=n,t[23]=H):H=t[23];let _e=H,U=v||g,ve=u!==b||f!==m||C!==T;if(!n){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(x,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[24]=e):e=t[24],e}let ye=U||!ve,W;t[25]!==_e||t[26]!==g||t[27]!==ye?(W=(0,O.jsx)(te,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,O.jsx)(he,{saving:g,disabled:ye,onClick:_e}),sticky:!1}),t[25]=_e,t[26]=g,t[27]=ye,t[28]=W):W=t[28];let G;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>w(null),t[29]=G):G=t[29];let K;t[30]!==U||t[31]!==V||t[32]!==B||t[33]!==l||t[34]!==C?(K=(0,O.jsx)(`div`,{className:`flex justify-center`,children:(0,O.jsx)(me,{projectIcon:C,entityNoun:l,disabled:U,inputRef:A,onFileChange:B,onButtonClick:V,onRemove:G})}),t[30]=U,t[31]=V,t[32]=B,t[33]=l,t[34]=C,t[35]=K):K=t[35];let q;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>d(e.target.value),t[36]=q):q=t[36];let J;t[37]!==v||t[38]!==u?(J=(0,O.jsx)(ae,{title:`Name`,controlLayout:`stack`,children:(0,O.jsx)(ee,{id:`projectName`,value:u,onChange:q,placeholder:`Enter project name`,disabled:v})}),t[37]=v,t[38]=u,t[39]=J):J=t[39];let Y;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>p(e.target.value),t[40]=Y):Y=t[40];let X;t[41]!==f||t[42]!==v?(X=(0,O.jsx)(ae,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,O.jsx)(S,{id:`projectInstructions`,value:f,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:v})}),t[41]=f,t[42]=v,t[43]=X):X=t[43];let Z;t[44]!==K||t[45]!==J||t[46]!==X?(Z=(0,O.jsx)(oe,{className:`max-w-none pt-6`,children:(0,O.jsxs)(se,{children:[K,J,X]})}),t[44]=K,t[45]=J,t[46]=X,t[47]=Z):Z=t[47];let Q;t[48]!==W||t[49]!==Z?(Q=(0,O.jsxs)(ie,{className:`shrink-0`,children:[W,Z]}),t[48]=W,t[49]=Z,t[50]=Q):Q=t[50];let $;return t[51]!==z||t[52]!==n||t[53]!==Q?($=(0,O.jsx)(ne,{loading:z,children:Q},n),t[51]=z,t[52]=n,t[53]=Q,t[54]=$):$=t[54],$}export{N as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{c as i,s as a}from"./chunk-QFMPRPBF-COsSkB7x.js";import{It as o,Lt as s,R as c,vt as l}from"./dist-DZtmmQ-F.js";import{n as u,tt as d}from"./store-D4D62vkY.js";import{r as f,t as p}from"./utils-BCj_kT9l.js";import{A as m,F as h,Kt as g,dt as _,gt as v,mn as y,qt as b,r as x}from"./lucide-react-CNNzKD4G.js";import{r as S,t as C}from"./button-DhxraVUW.js";import{i as ee,n as te,r as w,t as T}from"./tooltip-Cg_EhO9M.js";import{At as E,B as D,Dn as ne,G as re,K as ie,L as ae,Nt as O,On as k,R as oe,V as A,nt as j,un as se}from"./api-B_ZIptgC.js";import{t as ce}from"./progress-indicator-C7Kj9U3t.js";import{n as M}from"./suspense-resource-DzlMlIgR.js";import{$t as N,At as le,Cr as P,Ct as F,Gn as I,Ot as L,Pt as R,St as ue,Ut as z,cr as de,dt as B,jt as V,kt as fe,lr as pe,lt as me,mt as he,pt as H,sr as ge,ur as U,vt as W}from"./index-DdJcjvu2.js";import{t as G}from"./async-error-boundary-DmJy8jgz.js";import{t as K}from"./sorting-DqwxPMRN.js";import{t as q}from"./pending-changes-Bn-0ak1d.js";import{o as J}from"./settings-list-n-CrPPNl.js";import{t as Y}from"./use-deferred-search-Dgxosq55.js";import{n as X,r as _e,t as ve}from"./model-list-controls-DOpHpzG8.js";var Z=t(),Q=e(n(),1),$=r(),ye=S(p(s.compact,`inline-flex items-center rounded-full border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`),{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function be(e){let t=(0,Z.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,variant:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==i?(a=p(ye({variant:i}),n),t[4]=n,t[5]=i,t[6]=a):a=t[6];let o;return t[7]!==r||t[8]!==a?(o=(0,$.jsx)(`div`,{className:a,...r}),t[7]=r,t[8]=a,t[9]=o):o=t[9],o}function xe(e,t,n){return n?e.find(e=>e.slug===n)??null:t?e.find(e=>e.name===t)??null:null}function Se(e,t,n){return e?!!(n&&e.slug===n||t&&e.name===t):!1}function Ce(e){return e instanceof Error?e.message:`Failed to load providers`}async function we({providerData:e,selectedProviderName:t,selectedProviderSlug:n,fetchProviders:r}){if(Se(e,t,n))return{provider:e};try{return{provider:xe(await r(),t,n)}}catch(e){return{error:Ce(e)}}}var Te=c(`app.use-provider-details.hook`);function Ee(){let e=(0,Z.c)(10),[t,n]=(0,Q.useState)(null),[r,i]=(0,Q.useState)(``),[a,o]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(``),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={},e[0]=h):h=e[0];let[g,_]=(0,Q.useState)(h),v;return e[1]!==a||e[2]!==r||e[3]!==s||e[4]!==p||e[5]!==g||e[6]!==d||e[7]!==t||e[8]!==l?(v={selectedProvider:t,setSelectedProvider:n,displayApiKey:r,setDisplayApiKey:i,balance:a,setBalance:o,error:s,setError:c,showApiKey:l,setShowApiKey:u,saveStatus:d,setSaveStatus:f,originalApiKey:p,setOriginalApiKey:m,providerEnvValues:g,setProviderEnvValues:_},e[1]=a,e[2]=r,e[3]=s,e[4]=p,e[5]=g,e[6]=d,e[7]=t,e[8]=l,e[9]=v):v=e[9],v}function De(){let e=(0,Z.c)(15),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Q.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Q.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Q.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Q.useState)(u),{query:p,setQuery:m,deferredQuery:h}=Y(),[g,_]=(0,Q.useState)(`alphabetical`),[v,y]=(0,Q.useState)(`all`),[b,x]=(0,Q.useState)(`coding`),S;return e[4]!==n||e[5]!==h||e[6]!==a||e[7]!==c||e[8]!==v||e[9]!==p||e[10]!==g||e[11]!==b||e[12]!==d||e[13]!==m?(S={availableModels:n,setAvailableModels:r,enabledModelIds:a,setEnabledModelIds:o,initialEnabledModelIds:c,setInitialEnabledModelIds:l,pendingChanges:d,setPendingChanges:f,modelSearchQuery:p,setModelSearchQuery:m,deferredModelSearchQuery:h,modelSortBy:g,setModelSortBy:_,modelFilter:v,setModelFilter:y,modelTab:b,setModelTab:x},e[4]=n,e[5]=h,e[6]=a,e[7]=c,e[8]=v,e[9]=p,e[10]=g,e[11]=b,e[12]=d,e[13]=m,e[14]=S):S=e[14],S}function Oe(){let e=(0,Z.c)(9),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Q.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Set,e[1]=i):i=e[1];let[a,o]=(0,Q.useState)(i),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,e[2]=s):s=e[2];let[c,l]=(0,Q.useState)(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[3]=u):u=e[3];let[d,f]=(0,Q.useState)(u),p;return e[4]!==n||e[5]!==a||e[6]!==c||e[7]!==d?(p={availableImageModels:n,setAvailableImageModels:r,enabledImageModelIds:a,setEnabledImageModelIds:o,initialEnabledImageModelIds:c,setInitialEnabledImageModelIds:l,pendingImageChanges:d,setPendingImageChanges:f},e[4]=n,e[5]=a,e[6]=c,e[7]=d,e[8]=p):p=e[8],p}function ke(){let e=(0,Z.c)(7),t=u(),[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)(``),o=Ee(),s=De(),c=Oe(),l;return e[0]!==t||e[1]!==i||e[2]!==n||e[3]!==o||e[4]!==s||e[5]!==c?(l={dispatch:t,modelsLoading:n,setModelsLoading:r,modelsError:i,setModelsError:a,...o,...s,...c},e[0]=t,e[1]=i,e[2]=n,e[3]=o,e[4]=s,e[5]=c,e[6]=l):l=e[6],l}function Ae({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:n}){let r=ke(),i=e=>N(e.id),a=(0,Q.useRef)(0);function o(){r.setAvailableModels([]),r.setAvailableImageModels([]),r.setEnabledModelIds(new Set),r.setInitialEnabledModelIds(new Set),r.setEnabledImageModelIds(new Set),r.setInitialEnabledImageModelIds(new Set),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}(0,Q.useEffect)(()=>{let i=++a.current;async function c(){r.setError(``);let c=await we({providerData:n,selectedProviderName:e,selectedProviderSlug:t,fetchProviders:O});if(i!==a.current)return;if(`error`in c){r.setError(c.error);return}let l=c.provider;r.setSelectedProvider(l),r.setOriginalApiKey(l?.apiKey??``),r.setDisplayApiKey(l?.apiKey??``),r.setProviderEnvValues(l?.envValues??{}),l?(u(l.slug,i),s(l.slug,i)):(o(),r.setBalance(null),r.setModelsLoading(!1),r.setModelsError(``))}c()},[e,t,n]);async function s(e,t=a.current){r.setBalance(null);try{let n=await E(e);if(t!==a.current)return;n.status===`success`&&r.setBalance(n.balance)}catch(t){Te.error(`Failed to load balance for ${e}:`,t)}}function c(e){return e instanceof Error?e.message:`Failed to load models from local API`}async function u(e,t=a.current){r.setModelsLoading(!0),r.setModelsError(``),r.setModelSearchQuery(``),r.setModelSortBy(`alphabetical`),r.setModelFilter(`all`),r.setModelTab(`coding`);try{let[n,i]=await Promise.all([ie(e),re(e)]);if(t!==a.current)return;r.setAvailableModels(n.models),r.setAvailableImageModels(i.models);let o=new Set(n.enabledModelIds);r.setEnabledModelIds(o),r.setInitialEnabledModelIds(o);let s=new Set(i.enabledModelIds);r.setEnabledImageModelIds(s),r.setInitialEnabledImageModelIds(s),r.setPendingChanges(new Map),r.setPendingImageChanges(new Map)}catch(n){if(t!==a.current)return;Te.error(`Failed to load models for ${e}:`,n),o(),r.setModelsError(c(n))}finally{t===a.current&&r.setModelsLoading(!1)}}async function f(e){let t=a.current;r.setModelsLoading(!0),r.setModelsError(``);try{if(await se(e),t!==a.current||(await u(e,t),t!==a.current))return;r.dispatch({type:d.ConfigUpdated})}catch(n){if(t!==a.current)return;Te.error(`Failed to refresh models for ${e}:`,n),o(),r.setModelsError(c(n)),r.setModelsLoading(!1)}}let p=(e,t)=>{r.selectedProvider?.name===e&&(r.setDisplayApiKey(t),h(t))},m=(e,t)=>{r.setProviderEnvValues(n=>({...n,[e]:t}));let n=r.selectedProvider?.slug;n&&(async()=>{try{await ne({[e]:t}),r.dispatch({type:d.ConfigUpdated}),r.setSaveStatus(`${H(e)} saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save provider settings`);return}l(n)&&e===`LOCAL_API_URL`&&t.trim()&&await f(n)})()},h=async e=>{if(!(!r.selectedProvider||e===r.originalApiKey))try{await k(r.selectedProvider.slug,e),r.dispatch({type:d.ConfigUpdated}),r.setOriginalApiKey(e),r.setSaveStatus(`API key saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save API key`)}},g=(e,t)=>{t===`image`?r.setPendingImageChanges(t=>{let n=new Map(t),i=r.enabledImageModelIds.has(e),a=n.has(e),o=n.get(e),s=!(a?o:i);return s===i?n.delete(e):n.set(e,s),_(e,(n.has(e)?n.get(e):i)??!1,`image`),n}):r.setPendingChanges(t=>{let n=q(t,e,r.enabledModelIds);return _(e,(n.has(e)?n.get(e):r.enabledModelIds.has(e))??!1,`coding`),n})},_=async(e,t,n=`coding`)=>{if(r.selectedProvider)try{n===`image`?(t?(await D(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>new Set([...t,e]))):(await ae(r.selectedProvider.slug,e),r.setEnabledImageModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingImageChanges(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await A(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>new Set([...t,e]))):(await oe(r.selectedProvider.slug,e),r.setEnabledModelIds(t=>{let n=new Set(t);return n.delete(e),n})),r.setPendingChanges(t=>{let n=new Map(t);return n.delete(e),n}),z()),r.dispatch({type:d.ConfigUpdated}),r.setSaveStatus(`Model preferences saved successfully`),setTimeout(()=>r.setSaveStatus(``),3e3)}catch(e){r.setSaveStatus(e instanceof Error?e.message:`Failed to save model changes`)}};async function v(e,t=`coding`){let n=t===`image`?r.availableImageModels:r.availableModels,i=t===`image`?r.enabledImageModelIds:r.enabledModelIds;(t===`image`?r.setPendingImageChanges:r.setPendingChanges)(t=>{let r=new Map(t);for(let t of n)i.has(t.id)===e?r.delete(t.id):r.set(t.id,e);return r});for(let r of n)i.has(r.id)!==e&&await _(r.id,e,t)}let y=r.displayApiKey!==void 0&&r.displayApiKey.trim().length>0,b=(0,Q.useMemo)(()=>K({models:r.availableModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledModelIds.has(e.id)}),[r.availableModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledModelIds,r.modelSortBy,i]),x=(0,Q.useMemo)(()=>K({models:r.availableImageModels,query:r.deferredModelSearchQuery,sortBy:r.modelSortBy===`coding-index`||r.modelSortBy===`intelligence-by-price`?`alphabetical`:r.modelSortBy,getDisplayName:i,freeOnly:r.modelFilter===`free`,groupByProvider:!0,getPriority:e=>+!r.initialEnabledImageModelIds.has(e.id)}),[r.availableImageModels,r.deferredModelSearchQuery,r.modelFilter,r.initialEnabledImageModelIds,r.modelSortBy,i]);return{selectedProvider:r.selectedProvider,error:r.error,balance:r.balance,displayApiKey:r.displayApiKey,showApiKey:r.showApiKey,setShowApiKey:r.setShowApiKey,providerEnvValues:r.providerEnvValues,modelsLoading:r.modelsLoading,modelsError:r.modelsError,saveStatus:r.saveStatus,modelTab:r.modelTab,setModelTab:r.setModelTab,modelSearchQuery:r.modelSearchQuery,setModelSearchQuery:r.setModelSearchQuery,modelSortBy:r.modelSortBy,setModelSortBy:r.setModelSortBy,modelFilter:r.modelFilter,setModelFilter:r.setModelFilter,availableModels:r.availableModels,enabledModelIds:r.enabledModelIds,pendingChanges:r.pendingChanges,filteredAndSortedModels:b,availableImageModels:r.availableImageModels,enabledImageModelIds:r.enabledImageModelIds,pendingImageChanges:r.pendingImageChanges,filteredAndSortedImageModels:x,hasApiKey:y,getModelDisplayName:i,handleUpdateKeyLocal:p,handleUpdateProviderEnv:m,refreshLocalProviderModels:f,handleToggleModel:g,handleToggleAllModels:v}}function je(e){let t=(0,Z.c)(7),{provider:n,onBack:r}=e;if(!r&&!n.url)return null;let i;t[0]===n.url?i=t[1]:(i=n.url?(0,$.jsx)(B,{url:n.url,className:p(s.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(C,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(x,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{className:`sr-only`,children:`Close provider details`})]}):null,t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Me(e){let t=(0,Z.c)(6),{balance:n}=e;if(n===null)return null;let r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=p(s.compact,`inline-flex shrink-0 items-center gap-1.5 font-medium`),i=(0,$.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-green-500`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=f(n),t[2]=n,t[3]=a);let o;return t[4]===a?o=t[5]:(o=(0,$.jsxs)(`span`,{className:r,children:[i,`$`,a,` balance`]}),t[4]=a,t[5]=o),o}function Ne(e){let t=(0,Z.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=p(s.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(ee,{asChild:!0,children:(0,$.jsx)(`span`,{className:i,children:n})}),t[1]=n,t[2]=a);let o;t[3]===r?o=t[4]:(o=(0,$.jsx)(te,{children:r}),t[3]=r,t[4]=o);let c;return t[5]!==a||t[6]!==o?(c=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=c):c=t[7],c}function Pe(e){let t=(0,Z.c)(10),{provider:n,displayApiKey:r,showApiKey:i,onToggleShowApiKey:a,onUpdateKey:o,providerEnvValues:s,onUpdateEnv:c,modelsLoading:u,onRefreshModels:d}=e,f;return t[0]!==r||t[1]!==u||t[2]!==d||t[3]!==a||t[4]!==c||t[5]!==o||t[6]!==n||t[7]!==s||t[8]!==i?(f=(0,$.jsx)($.Fragment,{children:n.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(fe,{children:[(0,$.jsx)(L,{label:(0,$.jsx)(Ne,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(v,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(P,{type:i?`text`:`password`,placeholder:n.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:r,onChange:e=>{o(n.name,e.target.value)}}),(0,$.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:a,disabled:!r,children:i?(0,$.jsx)(b,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(g,{className:`h-4 w-4 text-muted-foreground`})})]})}),he(n).map(e=>(0,$.jsx)(L,{label:(0,$.jsx)(Ne,{title:H(e),tooltip:e}),control:l(n.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(P,{id:e,value:s[e]??``,onChange:t=>c(e,t.target.value),placeholder:n.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(ee,{asChild:!0,children:(0,$.jsx)(C,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{d(n.slug)},disabled:u,children:u?(0,$.jsx)(_,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(h,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(te,{children:`Refresh models`})]})})]}):(0,$.jsx)(P,{id:e,value:s[e]??``,onChange:t=>c(e,t.target.value),placeholder:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`})},e))]})}):(0,$.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,$.jsx)(ue,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(C,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,n.name]})]})}),t[0]=r,t[1]=u,t[2]=d,t[3]=a,t[4]=c,t[5]=o,t[6]=n,t[7]=s,t[8]=i,t[9]=f):f=t[9],f}function Fe(e){let t=(0,Z.c)(23),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:c,onToggle:l}=e,u=r.pricing,d=n===`image`?`image-${r.id}`:r.id,m=r.id,h=!o&&`opacity-25`,g;t[0]===h?g=t[1]:(g=p(`flex cursor-default items-center space-x-3 px-3 py-2 transition-colors hover:bg-muted/30`,h),t[0]=h,t[1]=g);let _=!o,v=a??!1,y;t[2]!==r.id||t[3]!==l?(y=()=>l(r.id),t[2]=r.id,t[3]=l,t[4]=y):y=t[4];let b=`${i} ${a?`enabled`:`disabled`}`,x;t[5]!==d||t[6]!==_||t[7]!==v||t[8]!==y||t[9]!==b?(x=(0,$.jsx)(me,{id:d,disabled:_,value:v,onChange:y,ariaLabel:b}),t[5]=d,t[6]=_,t[7]=v,t[8]=y,t[9]=b,t[10]=x):x=t[10];let S;t[11]!==d||t[12]!==i||t[13]!==r.coding_index||t[14]!==u||t[15]!==c||t[16]!==n?(S=n===`coding`?(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:p(s.body,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[c&&(0,$.jsx)(_e,{codingIndex:r.coding_index,modelName:i}),u&&(0,$.jsx)(`span`,{className:p(s.caption,`whitespace-nowrap`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${f(u.prompt??0)} in | $${f(u.completion??0)} out`})]})]}):(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:p(s.label,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),u&&(0,$.jsx)(`span`,{className:p(s.caption,`whitespace-nowrap flex-shrink-0`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${f(u.prompt??0)} in | $${f(u.completion??0)} out`})]}),t[11]=d,t[12]=i,t[13]=r.coding_index,t[14]=u,t[15]=c,t[16]=n,t[17]=S):S=t[17];let C;return t[18]!==r.id||t[19]!==g||t[20]!==x||t[21]!==S?(C=(0,$.jsxs)(`div`,{className:g,children:[x,S]},m),t[18]=r.id,t[19]=g,t[20]=x,t[21]=S,t[22]=C):C=t[22],C}function Ie(e){let t=(0,Z.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:a,modelsError:c,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:f,getModelDisplayName:m,onToggleModel:h}=e,g=n===`coding`,v=g?c?`No models loaded.`:`No models available for this provider.`:`No image models available for this provider.`,y;return t[0]!==v||t[1]!==u||t[2]!==i||t[3]!==m||t[4]!==l||t[5]!==g||t[6]!==f||t[7]!==r||t[8]!==a||t[9]!==h||t[10]!==d||t[11]!==n?(y=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:a?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,$.jsx)(_,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):r.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:s.bodyMuted,children:v})}):(0,$.jsx)(w,{children:(0,$.jsx)(`div`,{className:p(`grid grid-cols-1 gap-0`,o.tableWrapper),children:i.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:s.bodyMuted,children:`No models matching your filters.`})}):i.map(e=>{let t=u.has(e.id),r=d.has(e.id),i=d.get(e.id),a=(r?i:t)??!1;return(0,$.jsx)(Fe,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:l,showStarRating:g&&(f===`coding-index`||f===`intelligence-by-price`),onToggle:e=>h(e,n)},e.id)})})})}),t[0]=v,t[1]=u,t[2]=i,t[3]=m,t[4]=l,t[5]=g,t[6]=f,t[7]=r,t[8]=a,t[9]=h,t[10]=d,t[11]=n,t[12]=y):y=t[12],y}function Le(e){let t=(0,Z.c)(22),{tab:n,showImageTab:r,modelsLoading:i,models:a,hasApiKey:o,enabledModelIds:s,pendingChanges:c,modelSearchQuery:l,onModelSearchQueryChange:u,modelSortBy:d,onModelSortByChange:f,onToggleAllModels:h}=e,g=n===`coding`,_=g?`select-all-models`:`select-all-image-models`,v=!i&&a.length>0,y=v&&!o&&`opacity-25`,b;t[0]===y?b=t[1]:(b=p(`flex flex-col gap-2 md:flex-row md:items-center`,y),t[0]=y,t[1]=b);let x;t[2]===r?x=t[3]:(x=r?(0,$.jsxs)(pe,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(U,{value:`coding`,children:`Coding`}),(0,$.jsx)(U,{value:`image`,children:`Image`})]}):null,t[2]=r,t[3]=x);let S;t[4]!==s||t[5]!==o||t[6]!==g||t[7]!==l||t[8]!==d||t[9]!==a||t[10]!==u||t[11]!==f||t[12]!==h||t[13]!==c||t[14]!==_||t[15]!==v||t[16]!==n?(S=v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(m,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(P,{placeholder:`Search`,className:`pl-10 h-8`,value:l,onChange:e=>u(e.target.value),disabled:!o})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(ve,{id:_,disabled:!o,checked:a.every(e=>{let t=c.has(e.id),n=c.get(e.id);return t?n:s.has(e.id)}),onChange:e=>{h(e,n)}}),(0,$.jsx)(X,{sortBy:d,showCodingIndex:g,showIntelligenceByPrice:g,onSortByChange:f})]})]}):null,t[4]=s,t[5]=o,t[6]=g,t[7]=l,t[8]=d,t[9]=a,t[10]=u,t[11]=f,t[12]=h,t[13]=c,t[14]=_,t[15]=v,t[16]=n,t[17]=S):S=t[17];let C;return t[18]!==b||t[19]!==x||t[20]!==S?(C=(0,$.jsxs)(`div`,{className:b,children:[x,S]}),t[18]=b,t[19]=x,t[20]=S,t[21]=C):C=t[21],C}function Re(e){let t=(0,Z.c)(10),{title:n,description:r,action:i,tableHeader:a,children:o}=e,s;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==n?(s=(0,$.jsx)(F,{title:n,description:r,action:i,sticky:!1,tableHeader:a}),t[0]=i,t[1]=r,t[2]=a,t[3]=n,t[4]=s):s=t[4];let c;t[5]===o?c=t[6]:(c=(0,$.jsx)(`div`,{className:`px-6 pb-6`,children:o}),t[5]=o,t[6]=c);let l;return t[7]!==s||t[8]!==c?(l=(0,$.jsxs)(R,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function ze(e){let t=(0,Z.c)(111),{selectedProviderName:n,selectedProviderSlug:r,providerData:i,onBack:a,className:o}=e,s=n===void 0?null:n,c=r===void 0?null:r,l;t[0]!==i||t[1]!==s||t[2]!==c?(l={selectedProviderName:s,selectedProviderSlug:c,providerData:i},t[0]=i,t[1]=s,t[2]=c,t[3]=l):l=t[3];let{selectedProvider:u,error:d,balance:f,displayApiKey:m,showApiKey:h,setShowApiKey:g,providerEnvValues:_,modelsLoading:v,modelsError:b,saveStatus:x,modelTab:S,setModelTab:ee,modelSearchQuery:te,setModelSearchQuery:w,modelSortBy:T,setModelSortBy:E,availableModels:D,enabledModelIds:ne,pendingChanges:re,filteredAndSortedModels:ie,availableImageModels:ae,enabledImageModelIds:O,pendingImageChanges:k,filteredAndSortedImageModels:oe,hasApiKey:A,getModelDisplayName:j,handleUpdateKeyLocal:se,handleUpdateProviderEnv:ce,refreshLocalProviderModels:M,handleToggleModel:N,handleToggleAllModels:P}=Ae(l);if(d){let e;t[4]===o?e=t[5]:(e=p(`flex h-full min-h-0 flex-col items-center justify-center gap-4 p-6`,o),t[4]=o,t[5]=e);let n;t[6]===d?n=t[7]:(n=(0,$.jsx)(ue,{variant:`error`,className:`mb-0`,children:d}),t[6]=d,t[7]=n);let r;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(C,{variant:`outline`,size:`sm`,onClick:Be,children:`Retry`}),t[8]=r):r=t[8];let i;return t[9]!==e||t[10]!==n?(i=(0,$.jsxs)(`div`,{className:e,children:[n,r]}),t[9]=e,t[10]=n,t[11]=i):i=t[11],i}if(!u){let e;t[12]===o?e=t[13]:(e=p(`flex h-full min-h-0 items-center justify-center`,o),t[12]=o,t[13]=e);let n=s||c?`Provider not found`:`Select a Provider`,r;t[14]===a?r=t[15]:(r=a?(0,$.jsxs)(C,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(y,{className:`h-4 w-4 mr-1`}),`Back to Providers`]}):void 0,t[14]=a,t[15]=r);let i=a?`This provider could not be found.`:`Choose a provider from the list to configure its settings.`,l;t[16]!==n||t[17]!==r||t[18]!==i?(l=(0,$.jsx)(le,{title:n,action:r,children:i}),t[16]=n,t[17]=r,t[18]=i,t[19]=l):l=t[19];let u;return t[20]!==e||t[21]!==l?(u=(0,$.jsx)(`div`,{className:e,children:l}),t[20]=e,t[21]=l,t[22]=u):u=t[22],u}let F;t[23]===o?F=t[24]:(F=p(`h-full min-h-0`,o),t[23]=o,t[24]=F);let I;t[25]!==a||t[26]!==u?(I=(0,$.jsx)(je,{provider:u,onBack:a}),t[25]=a,t[26]=u,t[27]=I):I=t[27];let L;t[28]!==g||t[29]!==h?(L=()=>g(!h),t[28]=g,t[29]=h,t[30]=L):L=t[30];let R;t[31]!==m||t[32]!==se||t[33]!==ce||t[34]!==v||t[35]!==_||t[36]!==M||t[37]!==u||t[38]!==h||t[39]!==L?(R=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Pe,{provider:u,displayApiKey:m,showApiKey:h,onToggleShowApiKey:L,onUpdateKey:se,providerEnvValues:_,onUpdateEnv:ce,modelsLoading:v,onRefreshModels:M})}),t[31]=m,t[32]=se,t[33]=ce,t[34]=v,t[35]=_,t[36]=M,t[37]=u,t[38]=h,t[39]=L,t[40]=R):R=t[40];let z;t[41]!==u.name||t[42]!==I||t[43]!==R?(z=(0,$.jsx)(Re,{title:u.name,description:`Configure API keys and connection settings for this provider.`,action:I,children:R}),t[41]=u.name,t[42]=I,t[43]=R,t[44]=z):z=t[44];let B;t[45]!==w||t[46]!==E||t[47]!==ee?(B=e=>{ee(e),w(``),E(`alphabetical`)},t[45]=w,t[46]=E,t[47]=ee,t[48]=B):B=t[48];let V;t[49]===f?V=t[50]:(V=(0,$.jsx)(Me,{balance:f}),t[49]=f,t[50]=V);let fe;t[51]===u.name?fe=t[52]:(fe=u.name.toLowerCase(),t[51]=u.name,t[52]=fe);let pe=fe===`openrouter`,me=S===`coding`?D:ae,he=S===`coding`?ne:O,H=S===`coding`?re:k,U;t[53]!==P||t[54]!==A||t[55]!==te||t[56]!==T||t[57]!==S||t[58]!==v||t[59]!==w||t[60]!==E||t[61]!==pe||t[62]!==me||t[63]!==he||t[64]!==H?(U=(0,$.jsx)(Le,{tab:S,showImageTab:pe,modelsLoading:v,models:me,hasApiKey:A,enabledModelIds:he,pendingChanges:H,modelSearchQuery:te,onModelSearchQueryChange:w,modelSortBy:T,onModelSortByChange:E,onToggleAllModels:P}),t[53]=P,t[54]=A,t[55]=te,t[56]=T,t[57]=S,t[58]=v,t[59]=w,t[60]=E,t[61]=pe,t[62]=me,t[63]=he,t[64]=H,t[65]=U):U=t[65];let W;t[66]===b?W=t[67]:(W=b?(0,$.jsx)(ue,{variant:`error`,className:`mb-4`,children:b}):null,t[66]=b,t[67]=W);let G;t[68]!==D||t[69]!==ne||t[70]!==ie||t[71]!==j||t[72]!==N||t[73]!==A||t[74]!==T||t[75]!==b||t[76]!==v||t[77]!==re||t[78]!==u?(G=(0,$.jsx)(de,{value:`coding`,children:(0,$.jsx)(Ie,{tab:`coding`,provider:u,models:D,filteredModels:ie,modelsLoading:v,modelsError:b,hasApiKey:A,enabledModelIds:ne,pendingChanges:re,modelSortBy:T,getModelDisplayName:j,onToggleModel:N})}),t[68]=D,t[69]=ne,t[70]=ie,t[71]=j,t[72]=N,t[73]=A,t[74]=T,t[75]=b,t[76]=v,t[77]=re,t[78]=u,t[79]=G):G=t[79];let K;t[80]!==ae||t[81]!==O||t[82]!==oe||t[83]!==j||t[84]!==N||t[85]!==A||t[86]!==T||t[87]!==b||t[88]!==v||t[89]!==k||t[90]!==u?(K=(0,$.jsx)(de,{value:`image`,children:(0,$.jsx)(Ie,{tab:`image`,provider:u,models:ae,filteredModels:oe,modelsLoading:v,modelsError:b,hasApiKey:A,enabledModelIds:O,pendingChanges:k,modelSortBy:T,getModelDisplayName:j,onToggleModel:N})}),t[80]=ae,t[81]=O,t[82]=oe,t[83]=j,t[84]=N,t[85]=A,t[86]=T,t[87]=b,t[88]=v,t[89]=k,t[90]=u,t[91]=K):K=t[91];let q;t[92]===x?q=t[93]:(q=x?(0,$.jsx)(ue,{variant:x.includes(`error`)||x.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:x}):null,t[92]=x,t[93]=q);let J;t[94]!==V||t[95]!==U||t[96]!==W||t[97]!==G||t[98]!==K||t[99]!==q?(J=(0,$.jsxs)(Re,{title:`Models`,description:`Enable coding and image models for this provider.`,action:V,tableHeader:U,children:[W,G,K,q]}),t[94]=V,t[95]=U,t[96]=W,t[97]=G,t[98]=K,t[99]=q,t[100]=J):J=t[100];let Y;t[101]!==S||t[102]!==J||t[103]!==B?(Y=(0,$.jsx)(ge,{value:S,onValueChange:B,children:J}),t[101]=S,t[102]=J,t[103]=B,t[104]=Y):Y=t[104];let X;t[105]!==Y||t[106]!==z?(X=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[z,Y]})}),t[105]=Y,t[106]=z,t[107]=X):X=t[107];let _e;return t[108]!==X||t[109]!==F?(_e=(0,$.jsx)(`div`,{className:F,children:X}),t[108]=X,t[109]=F,t[110]=_e):_e=t[110],_e}function Be(){return window.location.reload()}function Ve(e){return`providers:list:${e}`}async function He(){let[e,t]=await Promise.all([O(),j().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Ue=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,We=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Ge(e){let t=(0,Z.c)(9),{title:n,description:r,action:i,children:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,$.jsx)(F,{title:n,description:r,action:i,sticky:!1}),t[0]=i,t[1]=r,t[2]=n,t[3]=o):o=t[3];let s;t[4]===a?s=t[5]:(s=(0,$.jsx)(V,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(R,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Ke(e){let t=(0,Z.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=Y(),c;t[0]===n?c=t[1]:(c=Ve(n),t[0]=n,t[1]=c);let{providers:l,enabledModelCounts:u}=I(c,He),d;if(t[2]!==o||t[3]!==u||t[4]!==l){let e;t[6]===o?e=t[7]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[6]=o,t[7]=e);let n;t[8]===u?n=t[9]:(n=(e,t)=>{let n=(u[e.slug]??0)>0,r=(u[t.slug]??0)>0;return n&&!r?-1:!n&&r?1:e.name.localeCompare(t.name)},t[8]=u,t[9]=n),d=l.filter(Ye).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let f=d,m;if(t[10]!==o||t[11]!==l){let e;t[13]===o?e=t[14]:(e=e=>{let t=o.toLowerCase();return e.name.toLowerCase().includes(t)},t[13]=o,t[14]=e),m=l.filter(Je).filter(e).sort(qe),t[10]=o,t[11]=l,t[12]=m}else m=t[12];let h=m,g;t[15]!==i||t[16]!==a?(g=(0,$.jsx)(J,{placeholder:`Search`,value:i,onChange:a,className:`mb-0 w-64`}),t[15]=i,t[16]=a,t[17]=g):g=t[17];let _;t[18]!==f||t[19]!==u||t[20]!==r||t[21]!==i?(_=f.length===0?(0,$.jsx)(`p`,{className:p(s.bodyMuted,`py-4`),children:i?`No connected providers match your search.`:`No providers connected yet. Add an API key to get started.`}):(0,$.jsx)(`div`,{className:We,children:f.map(e=>(0,$.jsx)(nt,{provider:e,modelCount:u[e.slug]??0,onClick:r},e.name))}),t[18]=f,t[19]=u,t[20]=r,t[21]=i,t[22]=_):_=t[22];let v;t[23]!==g||t[24]!==_?(v=(0,$.jsx)(Ge,{title:`Connected Providers`,description:`Providers you've connected with an API key or environment variable.`,action:g,children:_}),t[23]=g,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==h||t[27]!==r||t[28]!==i?(y=(0,$.jsx)(Ge,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:h.length===0?(0,$.jsx)(`p`,{className:p(s.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:We,children:h.map(e=>(0,$.jsx)(rt,{provider:e,onClick:r},e.name))})}),t[26]=h,t[27]=r,t[28]=i,t[29]=y):y=t[29];let b;return t[30]!==v||t[31]!==y?(b=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[v,y]})}),t[30]=v,t[31]=y,t[32]=b):b=t[32],b}function qe(e,t){return e.name.localeCompare(t.name)}function Je(e){return!e.apiKey}function Ye(e){return e.apiKey}function Xe(){let e=(0,Z.c)(21),t=a(),{providerSlug:n}=i(),[r,o]=(0,Q.useState)(0),s=(0,Q.useRef)(n),c,l;e[0]!==r||e[1]!==n?(c=()=>{s.current&&!n&&(M(Ve(r)),o(et)),s.current=n},l=[n,r],e[0]=r,e[1]=n,e[2]=c,e[3]=l):(c=e[2],l=e[3]),(0,Q.useEffect)(c,l);let u;e[4]===t?u=e[5]:(u=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=u);let d=u,f;e[6]!==r||e[7]!==t?(f=()=>{t(`/settings/providers`),M(Ve(r)),o($e)},e[6]=r,e[7]=t,e[8]=f):f=e[8];let p=f,m;e[9]===r?m=e[10]:(m=function(){M(Ve(r)),o(Qe)},e[9]=r,e[10]=m);let h=m;if(n){let t=decodeURIComponent(n),r;return e[11]!==p||e[12]!==t?(r=(0,$.jsx)(ze,{selectedProviderSlug:t,onBack:p}),e[11]=p,e[12]=t,e[13]=r):r=e[13],r}let g;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(ce,{centered:!0,label:`Loading providers...`,size:`lg`}),e[14]=g):g=e[14];let _;e[15]!==d||e[16]!==r?(_=(0,$.jsx)(Q.Suspense,{fallback:g,children:(0,$.jsx)(Ke,{loadVersion:r,onProviderClick:d},r)}),e[15]=d,e[16]=r,e[17]=_):_=e[17];let v;return e[18]!==h||e[19]!==_?(v=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:h,renderFallback:Ze,children:_})}),e[18]=h,e[19]=_,e[20]=v):v=e[20],v}function Ze(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(R,{className:`shrink-0`,children:[(0,$.jsx)(F,{title:`Providers`,description:`Manage your AI provider connections and API keys.`,sticky:!1}),(0,$.jsx)(`div`,{className:`flex items-center justify-center px-6 pb-6 pt-6`,children:(0,$.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,$.jsx)(ue,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(C,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function Qe(e){return e+1}function $e(e){return e+1}function et(e){return e+1}function tt(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function nt(e){let t=(0,Z.c)(25),{provider:n,modelCount:r,onClick:i}=e,a;t[0]!==i||t[1]!==n?(a=function(){i(n)},t[0]=i,t[1]=n,t[2]=a):a=t[2];let o=a,c;t[3]===o?c=t[4]:(c=e=>tt(e,o),t[3]=o,t[4]=c);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(W,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=p(s.label,`truncate leading-normal`),t[7]=u):u=t[7];let d;t[8]===n.name?d=t[9]:(d=(0,$.jsx)(`span`,{className:u,children:n.name}),t[8]=n.name,t[9]=d);let f;t[10]!==l||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=f):f=t[12];let m;t[13]===n.isEnv?m=t[14]:(m=n.isEnv?(0,$.jsx)(be,{variant:`secondary`,className:p(s.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(be,{variant:`secondary`,className:p(s.compact,`px-2 py-0.5`),children:`API Key`}),t[13]=n.isEnv,t[14]=m);let h;t[15]===r?h=t[16]:(h=r>0&&(0,$.jsxs)(be,{variant:`default`,className:p(s.compact,`px-2 py-0.5`),children:[r,` `,r===1?`Model`:`Models`]}),t[15]=r,t[16]=h);let g;t[17]!==m||t[18]!==h?(g=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[m,h]}),t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==o||t[21]!==c||t[22]!==f||t[23]!==g?(_=(0,$.jsxs)(`div`,{className:Ue,role:`button`,tabIndex:0,onClick:o,onKeyDown:c,children:[f,g]}),t[20]=o,t[21]=c,t[22]=f,t[23]=g,t[24]=_):_=t[24],_}function rt(e){let t=(0,Z.c)(18),{provider:n,onClick:r}=e,i;t[0]!==r||t[1]!==n?(i=function(){r(n)},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;t[3]===a?o=t[4]:(o=e=>tt(e,a),t[3]=a,t[4]=o);let c;t[5]===n?c=t[6]:(c=(0,$.jsx)(W,{provider:n}),t[5]=n,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=p(s.label,`truncate leading-normal`),t[7]=l):l=t[7];let u;t[8]===n.name?u=t[9]:(u=(0,$.jsx)(`span`,{className:l,children:n.name}),t[8]=n.name,t[9]=u);let d;t[10]!==c||t[11]!==u?(d=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[c,u]}),t[10]=c,t[11]=u,t[12]=d):d=t[12];let f;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`span`,{className:p(s.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=f):f=t[13];let m;return t[14]!==a||t[15]!==o||t[16]!==d?(m=(0,$.jsxs)(`div`,{className:Ue,role:`button`,tabIndex:0,onClick:a,onKeyDown:o,children:[d,f]}),t[14]=a,t[15]=o,t[16]=d,t[17]=m):m=t[17],m}export{Xe as ProvidersListView,Xe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Lt as ee}from"./dist-DZtmmQ-F.js";import{b as te}from"./lucide-react-CNNzKD4G.js";import{t as n}from"./button-DhxraVUW.js";import{i as r,n as ne,r as i,t as a}from"./tooltip-Cg_EhO9M.js";import{t as o}from"./progress-indicator-C7Kj9U3t.js";import{B as s,Cr as c,Dr as l,Er as u,Or as d,Sr as f,Tr as p,kr as re,lt as ie,wr as ae}from"./index-DdJcjvu2.js";var oe=e(),m=t();function h(e){let t=(0,oe.c)(58),{open:h,onOpenChange:g,prTitle:_,onPrTitleChange:v,prDescription:y,onPrDescriptionChange:b,isGeneratingPRInfo:x,isLoading:S,onGeneratePRInfo:C,onCreatePR:w,currentBranch:T,createWorkspaceAfterPR:E,onCreateWorkspaceAfterPRChange:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,m.jsx)(re,{children:`Create Pull Request`}),t[0]=O):O=t[0];let k;t[1]===T?k=t[2]:(k=(0,m.jsxs)(d,{children:[O,(0,m.jsxs)(u,{children:[`Create a pull request for branch `,T]})]}),t[1]=T,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(f,{htmlFor:`pr-title`,children:`Title`}),t[3]=A):A=t[3];let j=T||`Enter PR title...`,M;t[4]===v?M=t[5]:(M=e=>v(e.target.value),t[4]=v,t[5]=M);let N;t[6]!==x||t[7]!==_||t[8]!==j||t[9]!==M?(N=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(c,{id:`pr-title`,placeholder:j,value:_,onChange:M,disabled:x})]}),t[6]=x,t[7]=_,t[8]=j,t[9]=M,t[10]=N):N=t[10];let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,m.jsx)(f,{htmlFor:`pr-description`,children:`Description`}),t[11]=P):P=t[11];let F;t[12]===b?F=t[13]:(F=e=>b(e.target.value),t[12]=b,t[13]=F);let I;t[14]!==x||t[15]!==y||t[16]!==F?(I=(0,m.jsx)(s,{id:`pr-description`,placeholder:`Enter PR description...`,value:y,onChange:F,disabled:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=x,t[15]=y,t[16]=F,t[17]=I):I=t[17];let L=x||S,R;t[18]===x?R=t[19]:(R=x?(0,m.jsx)(o,{}):(0,m.jsx)(te,{className:`h-3.5 w-3.5`}),t[18]=x,t[19]=R);let z;t[20]!==C||t[21]!==L||t[22]!==R?(z=(0,m.jsx)(r,{asChild:!0,children:(0,m.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:C,disabled:L,children:R})}),t[20]=C,t[21]=L,t[22]=R,t[23]=z):z=t[23];let B=x?`Generating PR description...`:`Generate PR title and description with AI`,V;t[24]===B?V=t[25]:(V=(0,m.jsx)(ne,{children:B}),t[24]=B,t[25]=V);let H;t[26]!==z||t[27]!==V?(H=(0,m.jsx)(i,{children:(0,m.jsxs)(a,{children:[z,V]})}),t[26]=z,t[27]=V,t[28]=H):H=t[28];let U;t[29]!==H||t[30]!==I?(U=(0,m.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,m.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]}),t[29]=H,t[30]=I,t[31]=U):U=t[31];let W;t[32]!==U||t[33]!==N?(W=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[N,U]}),t[32]=U,t[33]=N,t[34]=W):W=t[34];let G;t[35]!==E||t[36]!==D?(G=(0,m.jsx)(ie,{value:E,onChange:D,ariaLabel:`Create a new branch`}),t[35]=E,t[36]=D,t[37]=G):G=t[37];let K;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,m.jsx)(f,{className:ee.labelNormal,children:`Create a new branch`}),t[38]=K):K=t[38];let q;t[39]===G?q=t[40]:(q=(0,m.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[39]=G,t[40]=q);let J=S||x,Y;t[41]===S?Y=t[42]:(Y=S?(0,m.jsxs)(m.Fragment,{children:[`Create PR`,(0,m.jsx)(o,{size:`sm`})]}):`Create PR`,t[41]=S,t[42]=Y);let X;t[43]!==w||t[44]!==J||t[45]!==Y?(X=(0,m.jsx)(n,{className:`ml-auto`,onClick:w,disabled:J,children:Y}),t[43]=w,t[44]=J,t[45]=Y,t[46]=X):X=t[46];let Z;t[47]!==q||t[48]!==X?(Z=(0,m.jsxs)(l,{className:`w-full items-center gap-4`,children:[q,X]}),t[47]=q,t[48]=X,t[49]=Z):Z=t[49];let Q;t[50]!==W||t[51]!==k||t[52]!==Z?(Q=(0,m.jsxs)(p,{className:`flex 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:h-[min(36rem,85dvh)]`,children:[k,W,Z]}),t[50]=W,t[51]=k,t[52]=Z,t[53]=Q):Q=t[53];let $;return t[54]!==g||t[55]!==h||t[56]!==Q?($=(0,m.jsx)(ae,{open:h,onOpenChange:g,children:Q}),t[54]=g,t[55]=h,t[56]=Q,t[57]=$):$=t[57],$}export{h as PullRequestDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Lt as i,R as a}from"./dist-DZtmmQ-F.js";import{s as o,t as s}from"./utils-BCj_kT9l.js";import{$ as c,En as l,P as u,_ as d,cn as f,dn as p,dt as m,et as h,g,gn as _,nn as v,un as y,vt as b}from"./lucide-react-CNNzKD4G.js";import{t as x}from"./button-DhxraVUW.js";import{g as S,h as C,t as w,u as T}from"./dist-iDwSbcD5.js";import{o as ee}from"./dist-CA_zFhwJ.js";import{i as E,n as te,t as ne}from"./tooltip-Cg_EhO9M.js";import{Di as re,Gi as ie,Jr as ae,Qn as oe,Wr as se,et as ce}from"./api-B_ZIptgC.js";import{t as le}from"./dist-Dj1qT-gv.js";import{t as ue}from"./dist-OixawqbU.js";import{i as de,r as D}from"./scroll-area-BQ9bdsVQ.js";import{t as fe}from"./use-toast-xpb5jNtN.js";import{t as pe}from"./dist-CSssbxDI.js";import{Cr as me,Ct as he,Dt as ge,Er as _e,F as O,I as ve,Or as ye,Pt as be,Tr as xe,bt as k,ct as Se,jt as Ce,k as we,kr as Te,kt as Ee,lt as A,n as De,or as Oe,r as ke,st as Ae,t as je,wr as Me}from"./index-DdJcjvu2.js";import{n as Ne,t as Pe}from"./toggle-group-Dl5P_F6a.js";import{n as Fe,r as Ie,t as Le}from"./use-git-check-BfkMHX3g.js";import{t as Re}from"./use-settings-page-loading-CpaBd260.js";var j=t(),M=e(n(),1),N=r(),ze=[`PageUp`,`PageDown`],Be=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],Ve={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},P=`Slider`,[F,He,Ue]=le(P),[I,We]=C(P,[Ue]),[Ge,L]=I(P),Ke=M.forwardRef((e,t)=>{let{name:n,min:r=0,max:i=100,step:a=1,orientation:o=`horizontal`,disabled:s=!1,minStepsBetweenThumbs:c=0,defaultValue:l=[r],value:u,onValueChange:d=()=>{},onValueCommit:f=()=>{},inverted:p=!1,form:m,...h}=e,g=M.useRef(new Set),_=M.useRef(0),v=o===`horizontal`?Ye:Xe,[y=[],b]=w({prop:u,defaultProp:l,onChange:e=>{[...g.current][_.current]?.focus(),d(e)}}),x=M.useRef(y);function C(e){E(e,ct(y,e))}function T(e){E(e,_.current)}function ee(){let e=x.current[_.current];y[_.current]!==e&&f(y)}function E(e,t,{commit:n}={commit:!1}){let o=ft(a),s=de(pt(Math.round((e-r)/a)*a+r,o),[r,i]);b((e=[])=>{let r=z(e,s,t);if(dt(r,c*a)){_.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&f(r),t?r:e}else return e})}return(0,N.jsx)(Ge,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:_,thumbs:g.current,values:y,orientation:o,form:m,children:(0,N.jsx)(F.Provider,{scope:e.__scopeSlider,children:(0,N.jsx)(F.Slot,{scope:e.__scopeSlider,children:(0,N.jsx)(v,{"aria-disabled":s,"data-disabled":s?``:void 0,...h,ref:t,onPointerDown:S(h.onPointerDown,()=>{s||(x.current=y)}),min:r,max:i,inverted:p,onSlideStart:s?void 0:C,onSlideMove:s?void 0:T,onSlideEnd:s?void 0:ee,onHomeKeyDown:()=>!s&&E(r,0,{commit:!0}),onEndKeyDown:()=>!s&&E(i,y.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!s){let n=ze.includes(e.key)||e.shiftKey&&Be.includes(e.key)?10:1,r=_.current,i=y[r];E(i+a*n*t,r,{commit:!0})}}})})})})});Ke.displayName=P;var[qe,Je]=I(P,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),Ye=M.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:a,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,p]=M.useState(null),m=o(t,e=>p(e)),h=M.useRef(void 0),g=ue(i),_=g===`ltr`,v=_&&!a||!_&&a;function y(e){let t=h.current||f.getBoundingClientRect(),i=B([0,t.width],v?[n,r]:[r,n]);return h.current=t,i(e-t.left)}return(0,N.jsx)(qe,{scope:e.__scopeSlider,startEdge:v?`left`:`right`,endEdge:v?`right`:`left`,direction:v?1:-1,size:`width`,children:(0,N.jsx)(Ze,{dir:g,"data-orientation":`horizontal`,...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=y(e.clientX);s?.(t)},onSlideMove:e=>{let t=y(e.clientX);c?.(t)},onSlideEnd:()=>{h.current=void 0,l?.()},onStepKeyDown:e=>{let t=Ve[v?`from-left`:`from-right`].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),Xe=M.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:a,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=M.useRef(null),f=o(t,d),p=M.useRef(void 0),m=!i;function h(e){let t=p.current||d.current.getBoundingClientRect(),i=B([0,t.height],m?[r,n]:[n,r]);return p.current=t,i(e-t.top)}return(0,N.jsx)(qe,{scope:e.__scopeSlider,startEdge:m?`bottom`:`top`,endEdge:m?`top`:`bottom`,size:`height`,direction:m?1:-1,children:(0,N.jsx)(Ze,{"data-orientation":`vertical`,...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=h(e.clientY);a?.(t)},onSlideMove:e=>{let t=h(e.clientY);s?.(t)},onSlideEnd:()=>{p.current=void 0,c?.()},onStepKeyDown:e=>{let t=Ve[m?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),Ze=M.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=L(P,n);return(0,N.jsx)(T.span,{...l,ref:t,onKeyDown:S(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(s(e),e.preventDefault()):ze.concat(Be).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:S(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:S(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:S(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),Qe=`SliderTrack`,$e=M.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=L(Qe,n);return(0,N.jsx)(T.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});$e.displayName=Qe;var et=`SliderRange`,tt=M.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=L(et,n),a=Je(et,n),s=o(t,M.useRef(null)),c=i.values.length,l=i.values.map(e=>ot(e,i.min,i.max)),u=c>1?Math.min(...l):0,d=100-Math.max(...l);return(0,N.jsx)(T.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,ref:s,style:{...e.style,[a.startEdge]:u+`%`,[a.endEdge]:d+`%`}})});tt.displayName=et;var nt=`SliderThumb`,rt=M.forwardRef((e,t)=>{let n=He(e.__scopeSlider),[r,i]=M.useState(null),a=o(t,e=>i(e)),s=M.useMemo(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,N.jsx)(it,{...e,ref:a,index:s})}),it=M.forwardRef((e,t)=>{let{__scopeSlider:n,index:r,name:i,...a}=e,s=L(nt,n),c=Je(nt,n),[l,u]=M.useState(null),d=o(t,e=>u(e)),f=l?s.form||!!l.closest(`form`):!0,p=ee(l),m=s.values[r],h=m===void 0?0:ot(m,s.min,s.max),g=st(r,s.values.length),_=p?.[c.size],v=_?lt(_,h,c.direction):0;return M.useEffect(()=>{if(l)return s.thumbs.add(l),()=>{s.thumbs.delete(l)}},[l,s.thumbs]),(0,N.jsxs)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[c.startEdge]:`calc(${h}% + ${v}px)`},children:[(0,N.jsx)(F.ItemSlot,{scope:e.__scopeSlider,children:(0,N.jsx)(T.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":s.min,"aria-valuenow":m,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?``:void 0,tabIndex:s.disabled?void 0:0,...a,ref:d,style:m===void 0?{display:`none`}:e.style,onFocus:S(e.onFocus,()=>{s.valueIndexToChangeRef.current=r})})}),f&&(0,N.jsx)(R,{name:i??(s.name?s.name+(s.values.length>1?`[]`:``):void 0),form:s.form,value:m},r)]})});rt.displayName=nt;var at=`RadioBubbleInput`,R=M.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{let i=M.useRef(null),a=o(i,r),s=pe(t);return M.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(s!==t&&r){let n=new Event(`input`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[s,t]),(0,N.jsx)(T.input,{style:{display:`none`},...n,ref:a,defaultValue:t})});R.displayName=at;function z(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function ot(e,t,n){return de(100/(n-t)*(e-t),[0,100])}function st(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function ct(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function lt(e,t,n){let r=e/2;return(r-B([0,50],[0,r])(t)*n)*n}function ut(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function dt(e,t){if(t>0){let n=ut(e);return Math.min(...n)>=t}return!0}function B(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ft(e){return(String(e).split(`.`)[1]||``).length}function pt(e,t){let n=10**t;return Math.round(e*n)/n}var V=Ke,mt=$e,ht=tt,gt=rt,_t=M.forwardRef((e,t)=>{let n=(0,j.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,c]=M.useState(!1),[l,u]=M.useState(!1),d,f;n[4]===l?(d=n[5],f=n[6]):(d=()=>{if(!l)return;let e=function(){u(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},f=[l],n[4]=l,n[5]=d,n[6]=f),M.useEffect(d,f);let p;n[7]===a?p=n[8]:(p=(0,N.jsx)(gt,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,onPointerDown:()=>{a!=null&&(u(!0),c(!0))}}),n[7]=a,n[8]=p);let m=p,h;n[9]===r?h=n[10]:(h=s(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=h);let g;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,N.jsx)(mt,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,N.jsx)(ht,{className:`absolute h-full bg-primary`})}),n[11]=g):g=n[11];let _;n[12]!==l||n[13]!==o||n[14]!==m||n[15]!==a?(_=a==null?m:(0,N.jsxs)(ne,{open:o||l,onOpenChange:c,children:[(0,N.jsx)(E,{asChild:!0,children:m}),(0,N.jsx)(te,{side:`top`,children:a})]}),n[12]=l,n[13]=o,n[14]=m,n[15]=a,n[16]=_):_=n[16];let v;return n[17]!==i||n[18]!==t||n[19]!==h||n[20]!==_?(v=(0,N.jsxs)(V,{ref:t,className:h,...i,children:[g,_]}),n[17]=i,n[18]=t,n[19]=h,n[20]=_,n[21]=v):v=n[21],v});_t.displayName=V.displayName;var H=a(`app.use-maximum-turn-count.hook`),U=100;function vt(){let[e,t]=(0,M.useState)(U),[n,r]=(0,M.useState)(U.toString()),[i,a]=(0,M.useState)(!0),[o,s]=(0,M.useState)(!1);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await ce();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){H.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 oe({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw H.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:U,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var W=a(`app.use-screen-recording-permission.hook`),G={isMacOS:!1,granted:!1,available:!1,message:``};function yt(){return{...G,isMacOS:O()}}function bt(){let[e,t]=(0,M.useState)(yt),[n,r]=(0,M.useState)(!0),[i,a]=(0,M.useState)(null),[o,s]=(0,M.useState)(!1),[c,l]=(0,M.useState)(null),u=(0,M.useCallback)(async()=>{r(!0),a(null);try{t(await se(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...G,isMacOS:e?.isMacOS??O(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,M.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,M.useCallback)(async()=>{s(!0),l(null);try{let e=await ae(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;W.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;W.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var K=a(`app.use-server-bind-mode.hook`),q=`local`,xt=`tarsk-server-bind-mode-changed`;function J(e){ie(e)}function St(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(xt)===`true`}catch{return!1}}function Ct(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(xt,`true`):sessionStorage.removeItem(xt)}catch{}}function wt(){let[e,t]=(0,M.useState)(()=>re()?.serverBindMode??q),[n,r]=(0,M.useState)(null),[i,a]=(0,M.useState)(()=>re()?.networkAddresses??[]),[o,s]=(0,M.useState)(()=>re()===null),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(St);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await ce();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),J({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){K.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 oe({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),J({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),Ct(!0)}catch(e){throw K.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:q,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var Y=a(`app.use-logging.hook`);function Tt(){let[e,t]=(0,M.useState)(!1),[n,r]=(0,M.useState)(null),[i,a]=(0,M.useState)(!1),[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(!0),[u,d]=(0,M.useState)(!1);(0,M.useEffect)(()=>{let e=!1;async function n(){try{let n=await ce();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){Y.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 oe({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw Y.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}}function Et(e){let t=(0,j.c)(11),{open:n,onOpenChange:r}=e,i;t[0]===n?i=t[1]:(i={enabled:n,pollWhileMissing:!0},t[0]=n,t[1]=i);let a=Le(i),o;t[2]===a?o=t[3]:(o=function(){return a.gitInstalled===null?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,N.jsx)(m,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):a.gitInstalled?(0,N.jsx)(Fe,{version:a.version}):(0,N.jsx)(Ie,{platform:a.platform,plan:a.plan,checking:a.loading,onCheckAgain:()=>void a.check()})},t[2]=a,t[3]=o);let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,N.jsxs)(ye,{children:[(0,N.jsx)(Te,{children:`Git setup`}),(0,N.jsx)(_e,{children:`Git powers version-control features in Tarsk. Install it here if it's missing.`})]}),t[4]=c):c=t[4];let l;t[5]===s?l=t[6]:(l=(0,N.jsxs)(xe,{className:`max-w-lg`,children:[c,(0,N.jsx)(D,{className:`max-h-[60dvh]`,children:s()})]}),t[5]=s,t[6]=l);let u;return t[7]!==r||t[8]!==n||t[9]!==l?(u=(0,N.jsx)(Me,{open:n,onOpenChange:r,children:l}),t[7]=r,t[8]=n,t[9]=l,t[10]=u):u=t[10],u}var Dt=Object.defineProperty,X=Object.getOwnPropertySymbols,Ot=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,At=(e,t,n)=>t in e?Dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||={})Ot.call(t,n)&&At(e,n,t[n]);if(X)for(var n of X(t))kt.call(t,n)&&At(e,n,t[n]);return e},Q=(e,t)=>{var n={};for(var r in e)Ot.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&X)for(var r of X(e))t.indexOf(r)<0&&kt.call(e,r)&&(n[r]=e[r]);return n},jt;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(jt||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(jt||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(jt||={});var $=jt,Mt={L:$.QrCode.Ecc.LOW,M:$.QrCode.Ecc.MEDIUM,Q:$.QrCode.Ecc.QUARTILE,H:$.QrCode.Ecc.HIGH},Nt=128,Pt=`L`,Ft=`#FFFFFF`,It=`#000000`,Lt=!1,Rt=1,zt=4,Bt=0,Vt=.1;function Ht(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Ut(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Wt(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Vt),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Gt(e,t){return t==null?e?zt:Bt:Math.max(Math.floor(t),0)}function Kt({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=M.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...$.QrSegment.makeSegments(t)),e),[]);return $.QrCode.encodeSegments(r,Mt[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=M.useMemo(()=>{let e=c.getModules(),t=Gt(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Wt(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var qt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Jt=M.forwardRef(function(e,t){let n=e,{value:r,size:i=Nt,level:a=Pt,bgColor:o=Ft,fgColor:s=It,includeMargin:c=Lt,minVersion:l=Rt,boostLevel:u,marginSize:d,imageSettings:f}=n,p=Q(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=Q(p,[`style`]),g=f?.src,_=M.useRef(null),v=M.useRef(null),y=M.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=M.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Kt({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});M.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Ut(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,qt?t.fill(new Path2D(Ht(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),M.useEffect(()=>{x(!1)},[g]);let ee=Z({height:i,width:i},m),E=null;return g!=null&&(E=M.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),M.createElement(M.Fragment,null,M.createElement(`canvas`,Z({style:ee,height:i,width:i,ref:y,role:`img`},h)),E)});Jt.displayName=`QRCodeCanvas`;var Yt=M.forwardRef(function(e,t){let n=e,{value:r,size:i=Nt,level:a=Pt,bgColor:o=Ft,fgColor:s=It,includeMargin:c=Lt,minVersion:l=Rt,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=Q(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Kt({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Ut(g,v.excavation)),b=M.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Ht(y,h);return M.createElement(`svg`,Z({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&M.createElement(`title`,null,d),M.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),M.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Yt.displayName=`QRCodeSVG`;var Xt=[{value:`light`,label:`Light`,icon:g},{value:`dark`,label:`Dark`,icon:c},{value:`system`,label:`System`,icon:d}],Zt=[{value:`image`,label:`Image`,icon:b},{value:`background`,label:`Background`,icon:l}],Qt=`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`,$t=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,en=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,tn=600;function nn(e){let t=(0,j.c)(160),{onboardingResetSignal:n}=e,r=rn(n===void 0?0:n),{theme:a,setTheme:o}=we(),{scale:c,updateScale:l,min:u,max:d}=ke(),{opacity:f,updateOpacity:p,min:m,max:h}=De(),{mode:g,color:_,updateMode:v,updateColor:y}=ve(),{color:b,updateColor:x,resetColor:S}=je(),{defaultMaximumTurnCount:C,draftMaximumTurnCount:w,isLoading:T,isSaving:ee,resetDraftMaximumTurnCount:E,setDraftMaximumTurnCount:te,updateMaximumTurnCount:ne}=vt(),{status:re,isLoading:ie,isOpeningSettings:ae,openSettingsError:oe,refresh:se,openSystemSettings:ce}=bt(),{isLoading:le,isSaving:ue,needsRestart:de,networkAddresses:D,serverBindMode:pe,updateServerBindMode:me}=wt(),{isEnabled:_e,isLoading:O,isSaving:ye,updateIsEnabled:xe}=Ae(),{isEnabled:Te,isLoading:A,isSaving:Me,updateIsEnabled:Ne}=Oe(),{isEnabled:Pe,isSupported:Fe,isHealthy:Ie,statusMessage:Le,isLoading:ze,isSaving:Be,updateIsEnabled:Ve}=Se(),{isEnabled:P,logPath:F,isEnvConfigured:He,ingestingHost:Ue,isLoading:I,isSaving:We,updateIsEnabled:Ge}=Tt(),L;t[0]!==I||t[1]!==T||t[2]!==ie||t[3]!==ze||t[4]!==le||t[5]!==A||t[6]!==O?(L=[T,ie,le,O,A,ze,I],t[0]=I,t[1]=T,t[2]=ie,t[3]=ze,t[4]=le,t[5]=A,t[6]=O,t[7]=L):L=t[7];let Ke=Re(`general`,L),qe;t[8]===te?qe=t[9]:(qe=function(e){te(e.target.value)},t[8]=te,t[9]=qe);let Je=qe,Ye;t[10]!==C||t[11]!==w||t[12]!==E||t[13]!==ne?(Ye=async function(){let e=Number.parseInt(w,10),t=Number.isFinite(e)&&e>0?e:C;try{await ne(t)}catch{E()}},t[10]=C,t[11]=w,t[12]=E,t[13]=ne,t[14]=Ye):Ye=t[14];let Xe=Ye,Ze;t[15]===l?Ze=t[16]:(Ze=function(e){e.length>0&&l(e[0])},t[15]=l,t[16]=Ze);let Qe=Ze,$e;t[17]===p?$e=t[18]:($e=function(e){e.length>0&&p(e[0])},t[17]=p,t[18]=$e);let et=$e,tt;t[19]===F?tt=t[20]:(tt=async function(){if(F)try{await navigator.clipboard.writeText(F),fe({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;fe({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[19]=F,t[20]=tt);let nt=tt,[rt,it]=(0,M.useState)(!1),at,R,z;t[21]!==D||t[22]!==pe?(at=async function(){if(R)try{await navigator.clipboard.writeText(R),it(!0),fe({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{it(!1)},1500)}catch(e){let t=e;fe({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},z=pe===`network`&&D.length>0,R=z?`http://${D[0]}:${en}`:null,t[21]=D,t[22]=pe,t[23]=at,t[24]=R,t[25]=z):(at=t[23],R=t[24],z=t[25]);let ot=r&&`animate-headline-reset`,st;t[26]===ot?st=t[27]:(st=s(ot),t[26]=ot,t[27]=st);let ct;t[28]===st?ct=t[29]:(ct=(0,N.jsx)(he,{title:`Appearance`,titleClassName:st,className:`[&>div:first-child]:py-2`,sticky:!1}),t[28]=st,t[29]=ct);let lt;t[30]===u?lt=t[31]:(lt=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-8 shrink-0 text-right`,children:[u,`%`]}),t[30]=u,t[31]=lt);let ut;t[32]===c?ut=t[33]:(ut=[c],t[32]=c,t[33]=ut);let dt=`${c}%`,B;t[34]!==Qe||t[35]!==d||t[36]!==u||t[37]!==ut||t[38]!==dt?(B=(0,N.jsx)(_t,{value:ut,min:u,max:d,step:5,onValueChange:Qe,"aria-label":`Font size`,valueTooltip:dt}),t[34]=Qe,t[35]=d,t[36]=u,t[37]=ut,t[38]=dt,t[39]=B):B=t[39];let ft;t[40]===d?ft=t[41]:(ft=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-9 shrink-0`,children:[d,`%`]}),t[40]=d,t[41]=ft);let pt;t[42]!==lt||t[43]!==B||t[44]!==ft?(pt=(0,N.jsx)(k,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,N.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[lt,B,ft]})}),t[42]=lt,t[43]=B,t[44]=ft,t[45]=pt):pt=t[45];let V;t[46]===m?V=t[47]:(V=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-8 shrink-0 text-right`,children:[m,`%`]}),t[46]=m,t[47]=V);let mt;t[48]===f?mt=t[49]:(mt=[f],t[48]=f,t[49]=mt);let ht=`${f}%`,gt;t[50]!==h||t[51]!==m||t[52]!==et||t[53]!==mt||t[54]!==ht?(gt=(0,N.jsx)(_t,{value:mt,min:m,max:h,step:5,onValueChange:et,"aria-label":`Panel opacity`,valueTooltip:ht}),t[50]=h,t[51]=m,t[52]=et,t[53]=mt,t[54]=ht,t[55]=gt):gt=t[55];let H;t[56]===h?H=t[57]:(H=(0,N.jsxs)(`span`,{className:`${i.bodyMuted} w-9 shrink-0`,children:[h,`%`]}),t[56]=h,t[57]=H);let U;t[58]!==V||t[59]!==gt||t[60]!==H?(U=(0,N.jsx)(k,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,N.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[V,gt,H]})}),t[58]=V,t[59]=gt,t[60]=H,t[61]=U):U=t[61];let W;t[62]!==o||t[63]!==a?(W=(0,N.jsx)(an,{theme:a,onThemeChange:o}),t[62]=o,t[63]=a,t[64]=W):W=t[64];let G;t[65]!==y||t[66]!==v||t[67]!==_||t[68]!==g?(G=(0,N.jsx)(sn,{wallpaperMode:g,wallpaperColor:_,onModeChange:v,onColorChange:y}),t[65]=y,t[66]=v,t[67]=_,t[68]=g,t[69]=G):G=t[69];let yt;t[70]!==b||t[71]!==S||t[72]!==x?(yt=(0,N.jsx)(ln,{brandColor:b,onColorChange:x,onReset:S}),t[70]=b,t[71]=S,t[72]=x,t[73]=yt):yt=t[73];let K;t[74]!==pt||t[75]!==U||t[76]!==W||t[77]!==G||t[78]!==yt?(K=(0,N.jsx)(Ce,{className:`max-w-none pt-0`,children:(0,N.jsxs)(Ee,{children:[pt,U,W,G,yt]})}),t[74]=pt,t[75]=U,t[76]=W,t[77]=G,t[78]=yt,t[79]=K):K=t[79];let q;t[80]!==ct||t[81]!==K?(q=(0,N.jsxs)(be,{className:`shrink-0`,children:[ct,K]}),t[80]=ct,t[81]=K,t[82]=q):q=t[82];let xt;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(xt=(0,N.jsx)(he,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[83]=xt):xt=t[83];let J;t[84]!==C||t[85]!==w||t[86]!==Xe||t[87]!==Je||t[88]!==T||t[89]!==ee?(J=(0,N.jsx)(un,{draftValue:w,defaultTurnCount:C,isLoading:T,isSaving:ee,onChange:Je,onBlur:Xe}),t[84]=C,t[85]=w,t[86]=Xe,t[87]=Je,t[88]=T,t[89]=ee,t[90]=J):J=t[90];let St;t[91]===xe?St=t[92]:(St=e=>{xe(e)},t[91]=xe,t[92]=St);let Ct;t[93]!==O||t[94]!==ye||t[95]!==St||t[96]!==_e?(Ct=(0,N.jsx)(dn,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,value:_e,isLoading:O,isSaving:ye,ariaLabel:`AI Voice Cleanup`,onChange:St}),t[93]=O,t[94]=ye,t[95]=St,t[96]=_e,t[97]=Ct):Ct=t[97];let Y;t[98]===Ne?Y=t[99]:(Y=e=>{Ne(e)},t[98]=Ne,t[99]=Y);let Et;t[100]!==A||t[101]!==Me||t[102]!==Te||t[103]!==Y?(Et=(0,N.jsx)(dn,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,value:Te,isLoading:A,isSaving:Me,ariaLabel:`Spend`,onChange:Y}),t[100]=A,t[101]=Me,t[102]=Te,t[103]=Y,t[104]=Et):Et=t[104];let Dt;t[105]!==ae||t[106]!==ie||t[107]!==ce||t[108]!==se||t[109]!==oe||t[110]!==re?(Dt=(0,N.jsx)(hn,{status:re,isLoading:ie,isOpeningSettings:ae,openSettingsError:oe,onRefresh:se,onOpenSettings:ce}),t[105]=ae,t[106]=ie,t[107]=ce,t[108]=se,t[109]=oe,t[110]=re,t[111]=Dt):Dt=t[111];let X;t[112]!==ze||t[113]!==Be||t[114]!==Pe||t[115]!==Ie||t[116]!==Le||t[117]!==Fe||t[118]!==Ve?(X=(0,N.jsx)(gn,{supported:Fe,enabled:Pe,healthy:Ie,message:Le,isLoading:ze,isSaving:Be,onChange:Ve}),t[112]=ze,t[113]=Be,t[114]=Pe,t[115]=Ie,t[116]=Le,t[117]=Fe,t[118]=Ve,t[119]=X):X=t[119];let Ot;t[120]===Ge?Ot=t[121]:(Ot=e=>{Ge(e)},t[120]=Ge,t[121]=Ot);let kt;t[122]!==Ue||t[123]!==nt||t[124]!==He||t[125]!==I||t[126]!==We||t[127]!==P||t[128]!==F||t[129]!==Ot?(kt=(0,N.jsx)(vn,{enabled:P,logPath:F,isEnvConfigured:He,ingestingHost:Ue,isLoading:I,isSaving:We,onChange:Ot,onCopyPath:nt}),t[122]=Ue,t[123]=nt,t[124]=He,t[125]=I,t[126]=We,t[127]=P,t[128]=F,t[129]=Ot,t[130]=kt):kt=t[130];let At;t[131]!==rt||t[132]!==at||t[133]!==le||t[134]!==ue||t[135]!==R||t[136]!==de||t[137]!==D||t[138]!==pe||t[139]!==z||t[140]!==me?(At=(0,N.jsx)(yn,{bindMode:pe,isLoading:le,isSaving:ue,networkAddresses:D,needsRestart:de,showMobileQrCode:z,mobileNetworkUrl:R,copiedUrl:rt,onChangeMode:me,onCopyUrl:at}),t[131]=rt,t[132]=at,t[133]=le,t[134]=ue,t[135]=R,t[136]=de,t[137]=D,t[138]=pe,t[139]=z,t[140]=me,t[141]=At):At=t[141];let Z;t[142]!==J||t[143]!==Ct||t[144]!==Et||t[145]!==Dt||t[146]!==X||t[147]!==kt||t[148]!==At?(Z=(0,N.jsxs)(be,{className:`shrink-0`,children:[xt,(0,N.jsx)(Ce,{className:`max-w-none pt-0`,children:(0,N.jsxs)(Ee,{children:[J,Ct,Et,Dt,X,kt,At]})})]}),t[142]=J,t[143]=Ct,t[144]=Et,t[145]=Dt,t[146]=X,t[147]=kt,t[148]=At,t[149]=Z):Z=t[149];let Q;t[150]===R?Q=t[151]:(Q=(0,N.jsx)(bn,{url:R}),t[150]=R,t[151]=Q);let jt;t[152]===Symbol.for(`react.memo_cache_sentinel`)?(jt=(0,N.jsx)(xn,{}),t[152]=jt):jt=t[152];let $;t[153]!==q||t[154]!==Z||t[155]!==Q?($=(0,N.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[q,Z,Q,jt]}),t[153]=q,t[154]=Z,t[155]=Q,t[156]=$):$=t[156];let Mt;return t[157]!==Ke||t[158]!==$?(Mt=(0,N.jsx)(ge,{loading:Ke,children:$}),t[157]=Ke,t[158]=$,t[159]=Mt):Mt=t[159],Mt}function rn(e){let t=(0,j.c)(3),[n,r]=(0,M.useState)(!1),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e===0)return;r(!0);let t=setTimeout(()=>{r(!1)},tn);return()=>{clearTimeout(t)}},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,M.useEffect)(i,a),n}function an(e){let t=(0,j.c)(6),{theme:n,onThemeChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>{(e===`light`||e===`dark`||e===`system`)&&r(e)},t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=Xt.map(on),t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==n?(o=(0,N.jsx)(k,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,N.jsx)(Pe,{type:`single`,value:n,onValueChange:i,"aria-label":`Appearance`,className:$t,children:a})}),t[3]=i,t[4]=n,t[5]=o):o=t[5],o}function on(e){let t=e.icon;return(0,N.jsx)(Ne,{value:e.value,"aria-label":e.label,className:Qt,children:(0,N.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function sn(e){let t=(0,j.c)(22),{wallpaperMode:n,wallpaperColor:r,onModeChange:i,onColorChange:a}=e,o;t[0]===i?o=t[1]:(o=e=>{(e===`image`||e===`background`||e===`color`)&&i(e)},t[0]=i,t[1]=o);let c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=Zt.map(cn),t[2]=c):c=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=s(Qt,`relative overflow-hidden`),t[3]=l):l=t[3];let u;t[4]===r?u=t[5]:(u=(0,N.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:r},"aria-hidden":`true`}),t[4]=r,t[5]=u);let d;t[6]===i?d=t[7]:(d=()=>{i(`color`)},t[6]=i,t[7]=d);let f;t[8]!==a||t[9]!==i?(f=e=>{a(e.target.value),i(`color`)},t[8]=a,t[9]=i,t[10]=f):f=t[10];let p;t[11]!==d||t[12]!==f||t[13]!==r?(p=(0,N.jsx)(`input`,{type:`color`,value:r,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:d,onChange:f}),t[11]=d,t[12]=f,t[13]=r,t[14]=p):p=t[14];let m;t[15]!==u||t[16]!==p?(m=(0,N.jsxs)(Ne,{value:`color`,"aria-label":`Custom color`,className:l,children:[u,p]}),t[15]=u,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==o||t[19]!==m||t[20]!==n?(h=(0,N.jsx)(k,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,N.jsxs)(Pe,{type:`single`,value:n,onValueChange:o,"aria-label":`Wallpaper`,className:$t,children:[c,m]})}),t[18]=o,t[19]=m,t[20]=n,t[21]=h):h=t[21],h}function cn(e){let t=e.icon;return(0,N.jsx)(Ne,{value:e.value,"aria-label":e.label,className:Qt,children:(0,N.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function ln(e){let t=(0,j.c)(14),{brandColor:n,onColorChange:r,onReset:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=s(Qt,`relative cursor-pointer overflow-hidden`),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,N.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:n},"aria-hidden":`true`}),t[1]=n,t[2]=o);let c;t[3]===r?c=t[4]:(c=e=>{r(e.target.value)},t[3]=r,t[4]=c);let l;t[5]!==n||t[6]!==c?(l=(0,N.jsx)(`input`,{type:`color`,value:n,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:c}),t[5]=n,t[6]=c,t[7]=l):l=t[7];let u;t[8]!==o||t[9]!==l?(u=(0,N.jsx)(`div`,{className:$t,children:(0,N.jsxs)(`label`,{className:a,children:[o,l]})}),t[8]=o,t[9]=l,t[10]=u):u=t[10];let d;return t[11]!==i||t[12]!==u?(d=(0,N.jsx)(k,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:i,action:u}),t[11]=i,t[12]=u,t[13]=d):d=t[13],d}function un(e){let t=(0,j.c)(10),{draftValue:n,defaultTurnCount:r,isLoading:i,isSaving:a,onChange:o,onBlur:s}=e,c=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${r} turns.`,l;t[0]===s?l=t[1]:(l=()=>{s()},t[0]=s,t[1]=l);let u=i||a,d;t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==u?(d=(0,N.jsx)(me,{type:`number`,min:1,step:1,value:n,onChange:o,onBlur:l,disabled:u,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[2]=n,t[3]=o,t[4]=l,t[5]=u,t[6]=d):d=t[6];let f;return t[7]!==c||t[8]!==d?(f=(0,N.jsx)(k,{title:`Maximum Turn Count`,description:c,controlLayout:`row-end`,action:d}),t[7]=c,t[8]=d,t[9]=f):f=t[9],f}function dn(e){let t=(0,j.c)(9),{title:n,description:r,value:i,isLoading:a,isSaving:o,ariaLabel:s,onChange:c}=e,l=a||o,u;t[0]!==s||t[1]!==c||t[2]!==l||t[3]!==i?(u=(0,N.jsx)(A,{value:i,onChange:c,disabled:l,ariaLabel:s}),t[0]=s,t[1]=c,t[2]=l,t[3]=i,t[4]=u):u=t[4];let d;return t[5]!==r||t[6]!==u||t[7]!==n?(d=(0,N.jsx)(k,{title:n,description:r,controlLayout:`row-end`,action:u}),t[5]=r,t[6]=u,t[7]=n,t[8]=d):d=t[8],d}function fn(e){let t=(0,j.c)(2),{granted:n}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(y,{className:`h-4 w-4 text-green-500`}),(0,N.jsx)(`span`,{className:s(i.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}),t[0]=e):e=t[0],e}let r;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(f,{className:`h-4 w-4 text-amber-500`}),(0,N.jsx)(`span`,{className:s(i.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),t[1]=r):r=t[1],r}function pn(e){let t=(0,j.c)(7),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsx)(p,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),t[0]=r):r=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,N.jsx)(`p`,{className:i.body,children:`Failed to open System Settings`}),t[1]=a):a=t[1];let o;t[2]===n?o=t[3]:(o=(0,N.jsx)(`p`,{className:i.bodyMuted,children:n}),t[2]=n,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,N.jsxs)(`p`,{className:i.bodyMuted,children:[`Please open it manually:`,` `,(0,N.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,N.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[r,(0,N.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[a,o,s]})]}),t[5]=o,t[6]=c),c}function mn(e){let t=(0,j.c)(16),{message:n,isOpeningSettings:r,openSettingsError:a,onOpenSettings:o}=e,s=n??`Tarsk needs Screen & Audio Recording permission to use browser tools.`,c;t[0]===s?c=t[1]:(c=(0,N.jsx)(`p`,{className:i.bodyMuted,children:s}),t[0]=s,t[1]=c);let l;t[2]===o?l=t[3]:(l=()=>void o(),t[2]=o,t[3]=l);let u;t[4]===r?u=t[5]:(u=r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(m,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(h,{className:`h-4 w-4 mr-2`}),`Open System Settings`]}),t[4]=r,t[5]=u);let d;t[6]!==r||t[7]!==l||t[8]!==u?(d=(0,N.jsx)(x,{size:`sm`,onClick:l,disabled:r,className:`w-fit`,children:u}),t[6]=r,t[7]=l,t[8]=u,t[9]=d):d=t[9];let f;t[10]===a?f=t[11]:(f=a?(0,N.jsx)(pn,{error:a}):null,t[10]=a,t[11]=f);let p;return t[12]!==c||t[13]!==d||t[14]!==f?(p=(0,N.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[c,d,f]}),t[12]=c,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function hn(e){let t=(0,j.c)(24),{status:n,isLoading:r,isOpeningSettings:i,openSettingsError:a,onRefresh:o,onOpenSettings:s}=e;if(!n?.isMacOS)return null;let c;t[0]!==r||t[1]!==n?(c=r?null:(0,N.jsx)(fn,{granted:!!n.granted}),t[0]=r,t[1]=n,t[2]=c):c=t[2];let l;t[3]===o?l=t[4]:(l=()=>void o(),t[3]=o,t[4]=l);let d;t[5]===r?d=t[6]:(d=r?(0,N.jsx)(m,{className:`h-3.5 w-3.5 animate-spin`}):(0,N.jsx)(u,{className:`h-3.5 w-3.5`}),t[5]=r,t[6]=d);let f;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,N.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`}),t[7]=f):f=t[7];let p;t[8]!==r||t[9]!==l||t[10]!==d?(p=(0,N.jsxs)(x,{variant:`ghost`,size:`icon-sm`,className:`h-7 w-7 shrink-0 rounded-full border-0 bg-background hover:bg-background hover:text-foreground`,onClick:l,disabled:r,children:[d,f]}),t[8]=r,t[9]=l,t[10]=d,t[11]=p):p=t[11];let h;t[12]!==c||t[13]!==p?(h=(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,p]}),t[12]=c,t[13]=p,t[14]=h):h=t[14];let g;t[15]!==r||t[16]!==i||t[17]!==s||t[18]!==a||t[19]!==n?(g=!r&&!n.granted?(0,N.jsx)(mn,{message:n.message,isOpeningSettings:i,openSettingsError:a,onOpenSettings:s}):null,t[15]=r,t[16]=i,t[17]=s,t[18]=a,t[19]=n,t[20]=g):g=t[20];let _;return t[21]!==h||t[22]!==g?(_=(0,N.jsx)(k,{title:`Screen & Audio Recording`,description:`Tarsk needs this macOS permission to capture screen content for browser tools and screen sharing features.`,controlLayout:`row-end`,action:h,children:g}),t[21]=h,t[22]=g,t[23]=_):_=t[23],_}function gn(e){let t=(0,j.c)(15),{supported:n,enabled:r,healthy:a,message:o,isLoading:s,isSaving:c,onChange:l}=e;if(!n)return null;let u=r&&a,d;t[0]!==a||t[1]!==l?(d=e=>{e&&!a||l(e).catch(_n)},t[0]=a,t[1]=l,t[2]=d):d=t[2];let p=s||c,m=!a,h;t[3]!==u||t[4]!==d||t[5]!==p||t[6]!==m?(h=(0,N.jsx)(A,{value:u,onChange:d,disabled:p,disableOn:m,ariaLabel:`Sandbox`}),t[3]=u,t[4]=d,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g;t[8]!==a||t[9]!==s||t[10]!==o?(g=!s&&!a?(0,N.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,N.jsx)(f,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,N.jsx)(`p`,{className:i.bodyMuted,children:o||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null,t[8]=a,t[9]=s,t[10]=o,t[11]=g):g=t[11];let _;return t[12]!==h||t[13]!==g?(_=(0,N.jsx)(k,{title:`Sandbox`,description:`Sandbox tools like bash and skill script execution to allow running and testing code safely without risking your system, files, or data.`,controlLayout:`row-end`,action:h,children:g}),t[12]=h,t[13]=g,t[14]=_):_=t[14],_}function _n(){}function vn(e){let t=(0,j.c)(25),{enabled:n,logPath:r,isEnvConfigured:a,ingestingHost:o,isLoading:c,isSaving:l,onChange:u,onCopyPath:d}=e,f=c||l,p;t[0]!==n||t[1]!==u||t[2]!==f?(p=(0,N.jsx)(E,{asChild:!0,children:(0,N.jsx)(`span`,{className:`inline-flex`,children:(0,N.jsx)(A,{value:n,onChange:u,disabled:f,ariaLabel:`Logging`})})}),t[0]=n,t[1]=u,t[2]=f,t[3]=p):p=t[3];let m=n&&r?`max-w-sm cursor-pointer`:`max-w-sm`,h;t[4]!==n||t[5]!==r||t[6]!==d?(h=n&&r?()=>void d():void 0,t[4]=n,t[5]=r,t[6]=d,t[7]=h):h=t[7];let g;t[8]!==n||t[9]!==r?(g=n&&r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`p`,{children:`Click to copy log file path`}),(0,N.jsx)(`p`,{className:s(i.mono,`mt-1 break-all`),children:r})]}):(0,N.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[8]=n,t[9]=r,t[10]=g):g=t[10];let _;t[11]!==m||t[12]!==h||t[13]!==g?(_=(0,N.jsx)(te,{className:m,onClick:h,children:g}),t[11]=m,t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==p||t[16]!==_?(v=(0,N.jsxs)(ne,{children:[p,_]}),t[15]=p,t[16]=_,t[17]=v):v=t[17];let y;t[18]!==n||t[19]!==o||t[20]!==a?(y=n&&a&&o&&(0,N.jsxs)(`p`,{className:`${i.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,N.jsx)(`span`,{className:i.mono,children:o})]}),t[18]=n,t[19]=o,t[20]=a,t[21]=y):y=t[21];let b;return t[22]!==v||t[23]!==y?(b=(0,N.jsx)(k,{title:`Logging`,description:`Write verbose application logs to a local file. When Better Stack environment variables are configured, logs are sent there too.`,controlLayout:`row-end`,action:v,children:y}),t[22]=v,t[23]=y,t[24]=b):b=t[24],b}function yn(e){let t=(0,j.c)(23),{bindMode:n,isLoading:r,isSaving:a,networkAddresses:o,needsRestart:s,showMobileQrCode:c,mobileNetworkUrl:l,copiedUrl:u,onChangeMode:d,onCopyUrl:f}=e,p=n===`network`,m;t[0]===d?m=t[1]:(m=e=>{d(e?`network`:`local`)},t[0]=d,t[1]=m);let h=r||a,g;t[2]!==p||t[3]!==m||t[4]!==h?(g=(0,N.jsx)(A,{value:p,onChange:m,disabled:h,ariaLabel:`Mobile & Network Access`}),t[2]=p,t[3]=m,t[4]=h,t[5]=g):g=t[5];let y;t[6]!==u||t[7]!==l||t[8]!==s||t[9]!==f||t[10]!==c?(y=c&&l&&(0,N.jsxs)(`div`,{className:`mt-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsxs)(`p`,{className:i.bodyMuted,children:[`Available on the network at:`,` `,(0,N.jsx)(`span`,{className:i.mono,children:l})]}),(0,N.jsxs)(ne,{children:[(0,N.jsx)(E,{asChild:!0,children:(0,N.jsxs)(`button`,{type:`button`,onClick:()=>void f(),className:`inline-flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm transition-colors hover:bg-background`,children:[u?(0,N.jsx)(_,{className:`h-3.5 w-3.5 text-green-500`}):(0,N.jsx)(v,{className:`h-3.5 w-3.5`}),(0,N.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,N.jsx)(te,{children:u?`Copied!`:`Copy to clipboard`})]})]}),s&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[6]=u,t[7]=l,t[8]=s,t[9]=f,t[10]=c,t[11]=y):y=t[11];let b;t[12]!==n||t[13]!==o?(b=n===`network`&&o.length===0&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[12]=n,t[13]=o,t[14]=b):b=t[14];let x;t[15]!==n||t[16]!==s?(x=s&&n===`local`&&(0,N.jsx)(`p`,{className:`${i.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[15]=n,t[16]=s,t[17]=x):x=t[17];let S;return t[18]!==g||t[19]!==y||t[20]!==b||t[21]!==x?(S=(0,N.jsxs)(k,{title:`Mobile & Network Access`,description:`Allow the Tarsk mobile app or other web browsers to access Tarsk on the wifi network.`,controlLayout:`row-end`,action:g,children:[y,b,x]}),t[18]=g,t[19]=y,t[20]=b,t[21]=x,t[22]=S):S=t[22],S}function bn(e){let t=(0,j.c)(3),{url:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsx)(he,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,N.jsxs)(be,{className:`shrink-0`,children:[r,(0,N.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,N.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,N.jsx)(Yt,{value:n,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}),t[1]=n,t[2]=i),i}function xn(){let e=(0,j.c)(15),[t,n]=(0,M.useState)(!1),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={pollWhileMissing:!1},e[0]=r):r=e[0];let a=Le(r),o=a.gitInstalled===null?`Checking...`:a.gitInstalled?a.version?`Installed · ${a.version}`:`Installed`:`Not installed`,s;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,N.jsx)(he,{title:`Git`,className:`[&>div:first-child]:py-2`,sticky:!1}),e[1]=s):s=e[1];let c;e[2]===o?c=e[3]:(c=(0,N.jsx)(`span`,{className:`${i.bodyMuted} text-right`,children:o}),e[2]=o,e[3]=c);let l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>n(!0),e[4]=l):l=e[4];let u=a.gitInstalled?`View details`:`Setup guide`,d;e[5]===u?d=e[6]:(d=(0,N.jsx)(x,{variant:`outline`,onClick:l,children:u}),e[5]=u,e[6]=d);let f;e[7]!==c||e[8]!==d?(f=(0,N.jsx)(Ce,{className:`max-w-none pt-0`,children:(0,N.jsx)(Ee,{children:(0,N.jsx)(k,{title:`Git Installation`,description:`Git powers version-control features in Tarsk, like commits and branch history.`,children:(0,N.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center justify-end gap-3`,children:[c,d]})})})}),e[7]=c,e[8]=d,e[9]=f):f=e[9];let p;e[10]===t?p=e[11]:(p=(0,N.jsx)(Et,{open:t,onOpenChange:n}),e[10]=t,e[11]=p);let m;return e[12]!==f||e[13]!==p?(m=(0,N.jsxs)(be,{className:`shrink-0`,children:[s,f,p]}),e[12]=f,e[13]=p,e[14]=m):m=e[14],m}export{nn as default};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Lt as i}from"./dist-DZtmmQ-F.js";import{r as a}from"./store-D4D62vkY.js";import{s as o,t as s}from"./utils-BCj_kT9l.js";import{B as c,F as l,G as u,Jt as d,O as f,d as p,gn as m,hn as h,r as g}from"./lucide-react-CNNzKD4G.js";import{t as _}from"./button-DhxraVUW.js";import{g as v,h as y,t as b,u as x}from"./dist-iDwSbcD5.js";import{o as S}from"./dist-CA_zFhwJ.js";import{i as ee,n as te,r as C,t as w}from"./tooltip-Cg_EhO9M.js";import{$t as T,mt as E,r as D,yn as O}from"./api-B_ZIptgC.js";import{n as k}from"./explorer-tab-context-BxUVwWQQ.js";import{t as A}from"./use-toast-xpb5jNtN.js";import{t as j}from"./dist-CSssbxDI.js";import{$n as M,At as N,B as P,Bt as F,Cr as I,Ct as ne,Dt as L,Ft as R,It as z,Lt as B,Nt as V,Pt as re,Tr as H,_ as ie,_r as ae,br as oe,bt as U,cr as W,fr as se,g as ce,h as le,hr as ue,jt as de,lr as fe,m as G,mr as pe,p as me,sr as he,ur as ge,v as _e,vr as ve,wr as ye,xr as be,yr as xe,yt as Se,zt as Ce}from"./index-DdJcjvu2.js";import{t as we}from"./delete-confirm-dialog-Ciwqi6ts.js";import{t as Te}from"./use-settings-page-loading-CpaBd260.js";import{n as Ee}from"./settings-list-n-CrPPNl.js";var K=t(),q=e(n(),1),J=r(),Y=`Switch`,[De,Oe]=y(Y),[ke,Ae]=De(Y),X=q.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:s,disabled:c,value:l=`on`,onCheckedChange:u,form:d,...f}=e,[p,m]=q.useState(null),h=o(t,e=>m(e)),g=q.useRef(!1),_=p?d||!!p.closest(`form`):!0,[y,S]=b({prop:i,defaultProp:a??!1,onChange:u,caller:Y});return(0,J.jsxs)(ke,{scope:n,checked:y,disabled:c,children:[(0,J.jsx)(x.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":s,"data-state":Q(y),"data-disabled":c?``:void 0,disabled:c,value:l,...f,ref:h,onClick:v(e.onClick,e=>{S(e=>!e),_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),_&&(0,J.jsx)(Ne,{control:p,bubbles:!g.current,name:r,value:l,checked:y,required:s,disabled:c,form:d,style:{transform:`translateX(-100%)`}})]})});X.displayName=Y;var Z=`SwitchThumb`,je=q.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Ae(Z,n);return(0,J.jsx)(x.span,{"data-state":Q(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});je.displayName=Z;var Me=`SwitchBubbleInput`,Ne=q.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let s=q.useRef(null),c=o(s,a),l=j(n),u=S(t);return q.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[l,n,r]),(0,J.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:c,style:{...i.style,...u,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});Ne.displayName=Me;function Q(e){return e?`checked`:`unchecked`}var Pe=X,Fe=je,Ie=q.forwardRef((e,t)=>{let n=(0,K.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(Fe,{className:s(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let c;return n[6]!==i||n[7]!==t||n[8]!==a?(c=(0,J.jsx)(Pe,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=c):c=n[9],c});Ie.displayName=Pe.displayName;var Le={key:``,value:``},Re={serverType:`local`,name:``,command:``,argsText:``,serverUrl:``,transport:`sse`,oauthClientId:``,oauthClientSecret:``,oauthCallbackPort:``,defer:!0},ze=[e=>e.name,e=>e.command,e=>e.argsText,e=>e.serverUrl,e=>e.oauthClientId,e=>e.oauthClientSecret,e=>e.oauthCallbackPort];function $(e,t){return e??t}function Be(e){return e?.url?`remote`:`local`}function Ve(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}function He(e){let t={};for(let{key:n,value:r}of e)n.trim()&&(t[n.trim()]=r);return Object.keys(t).length>0?t:void 0}function Ue(e){return(e??[]).join(`
|
|
2
|
-
`)}function We(e){return e.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean)}function Ge(e){return e===void 0?``:String(e)}function Ke(e){return{oauthClientId:$(e?.clientId,``),oauthClientSecret:$(e?.clientSecret,``),oauthCallbackPort:Ge(e?.callbackPort)}}function qe(e,t){return{...Re,name:e,serverType:Be(t),command:$(t.command,``),argsText:Ue(t.args),serverUrl:$(t.url,``),transport:$(t.transport,`sse`),...Ke(t.oauth),defer:t.defer!==!1}}function Je(e,t,n){return JSON.stringify({name:e,type:t,config:n})}function Ye(e){if(!e)return;let t=Number.parseInt(e,10);return Number.isInteger(t)&&t>0?t:void 0}function Xe(e){let t={};for(let[n,r]of Object.entries(e))r!==``&&r!==void 0&&(t[n]=r);return t}function Ze(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function Qe(e,t,n){return e!==``||t!==``||n!==void 0}function $e(e){let t=e.oauthClientId.trim(),n=e.oauthClientSecret.trim(),r=Ye(e.oauthCallbackPort.trim());if(!Qe(t,n,r))return;let i=Xe({clientId:t,clientSecret:n,callbackPort:r});if(Object.keys(i).length!==0)return i}function et(e,t,n){return Ze({url:e.serverUrl.trim(),transport:e.transport,headers:He(n),env:He(t),oauth:$e(e),defer:e.defer?void 0:!1})}function tt(e,t){return Ze({command:e.command.trim(),args:We(e.argsText),env:He(t),defer:e.defer?void 0:!1})}function nt(e,t,n){return e.serverType===`remote`?et(e,t,n):tt(e,t)}function rt(e){let t=e.trim();if(!t)return`Server URL is required`;try{new URL(t)}catch{return`Server URL must be a valid URL`}return null}function it(e){if(!e.trim())return null;let t=Number.parseInt(e.trim(),10);return Number.isInteger(t)&&t>0?null:`OAuth callback port must be a positive integer`}function at(e){return e.oauthClientSecret.trim()&&!e.oauthClientId.trim()?`OAuth client ID is required when a client secret is set`:null}function ot(e){return rt(e.serverUrl)??it(e.oauthCallbackPort)??at(e)}function st(e){return e.trim()?null:`Command is required`}function ct(e,t){return t.name.trim()?e===`remote`?ot(t):st(t.command):`Server name is required`}function lt(e,t,n){return ze.some(t=>t(e).trim()!==``)||t.length>0||n.length>0||!e.defer}function ut(e){return e.isEditing?e.currentSnapshot!==e.originalSnapshot:lt(e.form,e.envEntries,e.headerEntries)}function dt(e){if(e.isEditing&&e.serverName)return e.installedServers.find(t=>t.name===e.serverName);if(e.initialConfig)return{name:$(e.initialName,``),config:e.initialConfig}}function ft(e,t){return e instanceof Error?e.message:t}function pt(e,t){return e?t?`Saving...`:`Adding...`:t?`Save`:`Add`}function mt(e,t){return e?`MCP server saved · ${G(t.catalog)}`:`MCP server added · ${G(t.catalog)}`}function ht(e,t){return{title:e?t:`Add MCP Server`,description:e?`Edit MCP Server configuration.`:`Configure a new MCP Server.`}}function gt(){let e=(0,K.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={env:[],header:[]},e[0]=t):t=e[0];let[n,r]=(0,q.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=function(e,t){r(n=>({...n,[e]:t(n[e])}))},e[1]=i):i=e[1];let a=i,o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=function(e){a(e,_t)},e[2]=o):o=e[2];let s=o,c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=function(e,t){a(e,e=>e.filter((e,n)=>n!==t))},e[3]=c):c=e[3];let l=c,u;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=function(e,t,n){a(e,e=>e.map((e,r)=>r===t?{...e,...n}:e))},e[4]=u):u=e[4];let d=u,f;return e[5]===n?f=e[6]:(f={lists:n,setEntryLists:r,addEntry:s,removeEntry:l,updateEntry:d},e[5]=n,e[6]=f),f}function _t(e){return[...e,Le]}function vt(e){async function t(){if(!e.projectPath)throw Error(`No project path`);let t=await ce(e.projectPath,e.originalName||e.form.name.trim(),nt(e.form,e.envEntries,e.headerEntries));A({title:`Success`,description:mt(e.isEditing,t)}),e.onBack()}async function n(){e.setError(null);let n=ct(e.form.serverType,e.form);if(n){e.setError(n);return}e.setSaving(!0);try{await t()}catch(t){e.setError(ft(t,`Failed to save server`))}finally{e.setSaving(!1)}}async function r(){if(e.projectPath){e.setDeleting(!0);try{await me(e.projectPath,e.originalName),A({title:`Success`,description:`MCP server removed`}),e.onBack()}catch(t){e.setError(ft(t,`Failed to delete server`))}finally{e.setDeleting(!1)}}}return{handleSave:n,handleDelete:r}}function yt(e){let{installedServers:t}=_e(e.projectPath),n=!!e.serverName,[r,i]=(0,q.useState)(Re),{lists:a,setEntryLists:o,addEntry:s,removeEntry:c,updateEntry:l}=gt(),[u,d]=(0,q.useState)({name:``,snapshot:``}),[f,p]=(0,q.useState)(!1),[m,h]=(0,q.useState)(!1),[g,_]=(0,q.useState)(null),[v,y]=(0,q.useState)(n);(0,q.useEffect)(()=>{let r=dt({isEditing:n,serverName:e.serverName,initialName:e.initialName,initialConfig:e.initialConfig,installedServers:t});r&&(i(qe(r.name,r.config)),o({env:Ve(r.config.env),header:Ve(r.config.headers)}),d({name:r.name,snapshot:Je(r.name,Be(r.config),r.config)})),(!n||r)&&y(!1)},[t,e.serverName,e.initialName,e.initialConfig,o,n]);function b(e){i(t=>({...t,...e}))}return{form:r,patchForm:b,lists:a,addEntry:s,removeEntry:c,updateEntry:l,original:u,saving:f,deleting:m,error:g,loading:v,actions:vt({projectPath:e.projectPath,isEditing:n,form:r,envEntries:a.env,headerEntries:a.header,originalName:u.name,onBack:e.onBack,setError:_,setSaving:p,setDeleting:h})}}function bt(){let e=(0,K.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,J.jsx)(`p`,{className:i.bodyMuted,children:`Loading server configuration...`})}),e[0]=t):t=e[0],t}function xt(e){let t=(0,K.c)(9),{isEditing:n,name:r,onNameChange:i}=e,a=n?`Server name cannot be changed`:void 0,o;t[0]===i?o=t[1]:(o=e=>i(e.target.value),t[0]=i,t[1]=o);let s;t[2]!==n||t[3]!==r||t[4]!==o?(s=(0,J.jsx)(I,{id:`server-name`,placeholder:`e.g. filesystem`,value:r,onChange:o,disabled:n}),t[2]=n,t[3]=r,t[4]=o,t[5]=s):s=t[5];let c;return t[6]!==a||t[7]!==s?(c=(0,J.jsx)(U,{title:`Server name`,description:a,controlLayout:`stack`,className:`pt-6`,children:s}),t[6]=a,t[7]=s,t[8]=c):c=t[8],c}function St(e){let t=(0,K.c)(13),{form:n,onFormChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>r({command:e.target.value}),t[0]=r,t[1]=i);let a;t[2]!==n.command||t[3]!==i?(a=(0,J.jsx)(U,{title:`Command`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsx)(I,{id:`server-command`,placeholder:`e.g. npx`,value:n.command,onChange:i})}),t[2]=n.command,t[3]=i,t[4]=a):a=t[4];let o;t[5]===r?o=t[6]:(o=e=>r({argsText:e.target.value}),t[5]=r,t[6]=o);let s;t[7]!==n.argsText||t[8]!==o?(s=(0,J.jsx)(U,{title:`Arguments`,description:`One argument per line`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsx)(P,{id:`server-args`,placeholder:`-y
|
|
4
|
-
@modelcontextprotocol/server-filesystem
|
|
5
|
-
/path/to/dir`,value:n.argsText,onChange:o,className:`font-mono min-h-[80px] resize-none`})}),t[7]=n.argsText,t[8]=o,t[9]=s):s=t[9];let c;return t[10]!==a||t[11]!==s?(c=(0,J.jsxs)(J.Fragment,{children:[a,s]}),t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function Ct(e){let t=(0,K.c)(19),{form:n,onFormChange:r}=e,i;t[0]===r?i=t[1]:(i=e=>r({oauthClientId:e.target.value}),t[0]=r,t[1]=i);let a;t[2]!==n.oauthClientId||t[3]!==i?(a=(0,J.jsx)(I,{id:`oauth-client-id`,placeholder:`Client ID`,value:n.oauthClientId,onChange:i,className:`font-mono`}),t[2]=n.oauthClientId,t[3]=i,t[4]=a):a=t[4];let o;t[5]===r?o=t[6]:(o=e=>r({oauthClientSecret:e.target.value}),t[5]=r,t[6]=o);let s;t[7]!==n.oauthClientSecret||t[8]!==o?(s=(0,J.jsx)(I,{id:`oauth-client-secret`,placeholder:`Client secret`,type:`password`,value:n.oauthClientSecret,onChange:o,className:`font-mono`}),t[7]=n.oauthClientSecret,t[8]=o,t[9]=s):s=t[9];let c;t[10]===r?c=t[11]:(c=e=>r({oauthCallbackPort:e.target.value}),t[10]=r,t[11]=c);let l;t[12]!==n.oauthCallbackPort||t[13]!==c?(l=(0,J.jsx)(I,{id:`oauth-callback-port`,placeholder:`Callback port (e.g. 3118)`,value:n.oauthCallbackPort,onChange:c,className:`font-mono`}),t[12]=n.oauthCallbackPort,t[13]=c,t[14]=l):l=t[14];let u;return t[15]!==a||t[16]!==s||t[17]!==l?(u=(0,J.jsx)(U,{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,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a,s,l]})}),t[15]=a,t[16]=s,t[17]=l,t[18]=u):u=t[18],u}function wt(e){let t=(0,K.c)(15),{entries:n,emptyMessage:r,keyPlaceholder:a,valuePlaceholder:o,onUpdate:s,onRemove:c}=e;if(n.length===0){let e;return t[0]===r?e=t[1]:(e=(0,J.jsx)(`p`,{className:i.caption,children:r}),t[0]=r,t[1]=e),e}let l;if(t[2]!==n||t[3]!==a||t[4]!==c||t[5]!==s||t[6]!==o){let e;t[8]!==a||t[9]!==c||t[10]!==s||t[11]!==o?(e=(e,t)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(I,{placeholder:a,value:e.key,onChange:e=>s(t,{key:e.target.value}),className:`font-mono w-[35%]`}),(0,J.jsx)(I,{placeholder:o,value:e.value,onChange:e=>s(t,{value:e.target.value}),className:`font-mono flex-1`}),(0,J.jsx)(_,{variant:`ghost`,size:`icon`,onClick:()=>c(t),className:`h-9 w-9 flex-shrink-0`,children:(0,J.jsx)(g,{className:`h-3.5 w-3.5`})})]},t),t[8]=a,t[9]=c,t[10]=s,t[11]=o,t[12]=e):e=t[12],l=n.map(e),t[2]=n,t[3]=a,t[4]=c,t[5]=s,t[6]=o,t[7]=l}else l=t[7];let u;return t[13]===l?u=t[14]:(u=(0,J.jsx)(`div`,{className:`flex flex-col gap-2`,children:l}),t[13]=l,t[14]=u),u}function Tt(e){let t=(0,K.c)(16),{title:n,description:r,actionLabel:i,emptyMessage:a,keyPlaceholder:o,valuePlaceholder:s,entries:l,onAdd:u,onRemove:d,onUpdate:f}=e,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(c,{className:`h-3 w-3 mr-1`}),t[0]=p):p=t[0];let m;t[1]!==i||t[2]!==u?(m=(0,J.jsxs)(_,{variant:`ghost`,size:`sm`,onClick:u,children:[p,i]}),t[1]=i,t[2]=u,t[3]=m):m=t[3];let h;t[4]!==a||t[5]!==l||t[6]!==o||t[7]!==d||t[8]!==f||t[9]!==s?(h=(0,J.jsx)(wt,{entries:l,emptyMessage:a,keyPlaceholder:o,valuePlaceholder:s,onUpdate:f,onRemove:d}),t[4]=a,t[5]=l,t[6]=o,t[7]=d,t[8]=f,t[9]=s,t[10]=h):h=t[10];let g;return t[11]!==r||t[12]!==m||t[13]!==h||t[14]!==n?(g=(0,J.jsx)(U,{title:n,description:r,controlLayout:`stack`,className:`pt-6`,action:m,children:h}),t[11]=r,t[12]=m,t[13]=h,t[14]=n,t[15]=g):g=t[15],g}function Et(e){let t=(0,K.c)(6),{serverType:n,entries:r,onAdd:i,onRemove:a,onUpdate:o}=e,s=n===`remote`?`Optional metadata for local tooling.`:void 0,c;return t[0]!==r||t[1]!==i||t[2]!==a||t[3]!==o||t[4]!==s?(c=(0,J.jsx)(Tt,{title:`Environment variables`,description:s,actionLabel:`Add variable`,emptyMessage:`No environment variables configured`,keyPlaceholder:`KEY`,valuePlaceholder:`value`,entries:r,onAdd:i,onRemove:a,onUpdate:o}),t[0]=r,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=c):c=t[5],c}function Dt(e){let t=(0,K.c)(6),{defer:n,onDeferChange:r}=e,i=n?`Tool definitions load on demand via tool_search to keep the initial prompt small.`:`Tool definitions are always injected into the initial prompt, even when not used. Useful when this server's tools are needed in nearly every conversation, but they consume context.`,a;t[0]!==n||t[1]!==r?(a=(0,J.jsx)(Ie,{id:`defer-tools`,checked:n,onCheckedChange:r,"aria-label":`Deferred`}),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,J.jsx)(U,{title:`Deferred`,description:i,controlLayout:`stack`,className:`pt-6`,action:a}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Ot(e){let t=(0,K.c)(25),{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s}=e,c;t[0]===r?c=t[1]:(c=e=>r({serverUrl:e.target.value}),t[0]=r,t[1]=c);let l;t[2]!==n.serverUrl||t[3]!==c?(l=(0,J.jsx)(U,{title:`Server URL`,description:`Paste the MCP endpoint URL from your provider.`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsx)(I,{id:`server-url`,placeholder:`https://example.com/mcp`,value:n.serverUrl,onChange:c,className:`font-mono`})}),t[2]=n.serverUrl,t[3]=c,t[4]=l):l=t[4];let u;t[5]===r?u=t[6]:(u=e=>r({transport:e}),t[5]=r,t[6]=u);let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(Ce,{children:(0,J.jsx)(F,{})}),t[7]=d):d=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsxs)(z,{children:[(0,J.jsx)(B,{value:`sse`,children:`SSE (Server-Sent Events)`}),(0,J.jsx)(B,{value:`streamableHttp`,children:`Streamable HTTP`})]}),t[8]=f):f=t[8];let p;t[9]!==n.transport||t[10]!==u?(p=(0,J.jsx)(U,{title:`Transport`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsxs)(R,{value:n.transport,onValueChange:u,children:[d,f]})}),t[9]=n.transport,t[10]=u,t[11]=p):p=t[11];let m;t[12]!==n||t[13]!==r?(m=(0,J.jsx)(Ct,{form:n,onFormChange:r}),t[12]=n,t[13]=r,t[14]=m):m=t[14];let h;t[15]!==i||t[16]!==a||t[17]!==o||t[18]!==s?(h=(0,J.jsx)(Tt,{title:`HTTP headers`,description:`Optional headers for authentication.`,actionLabel:`Add header`,emptyMessage:`No headers configured`,keyPlaceholder:`Authorization`,valuePlaceholder:`Bearer ...`,entries:i,onAdd:a,onRemove:o,onUpdate:s}),t[15]=i,t[16]=a,t[17]=o,t[18]=s,t[19]=h):h=t[19];let g;return t[20]!==l||t[21]!==p||t[22]!==m||t[23]!==h?(g=(0,J.jsxs)(J.Fragment,{children:[l,p,m,h]}),t[20]=l,t[21]=p,t[22]=m,t[23]=h,t[24]=g):g=t[24],g}function kt(e){let t=(0,K.c)(18),{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s}=e,c;t[0]===r?c=t[1]:(c=e=>r({serverType:e}),t[0]=r,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsxs)(fe,{className:`grid w-full grid-cols-2`,children:[(0,J.jsx)(ge,{value:`local`,children:`Local (stdio)`}),(0,J.jsx)(ge,{value:`remote`,children:`Remote (HTTP/SSE)`})]}),t[2]=l):l=t[2];let u;t[3]!==n||t[4]!==r?(u=(0,J.jsx)(W,{value:`local`,children:(0,J.jsx)(St,{form:n,onFormChange:r})}),t[3]=n,t[4]=r,t[5]=u):u=t[5];let d;t[6]!==n||t[7]!==i||t[8]!==r||t[9]!==a||t[10]!==o||t[11]!==s?(d=(0,J.jsx)(W,{value:`remote`,children:(0,J.jsx)(Ot,{form:n,onFormChange:r,headerEntries:i,onHeaderAdd:a,onHeaderRemove:o,onHeaderUpdate:s})}),t[6]=n,t[7]=i,t[8]=r,t[9]=a,t[10]=o,t[11]=s,t[12]=d):d=t[12];let f;return t[13]!==n.serverType||t[14]!==c||t[15]!==u||t[16]!==d?(f=(0,J.jsxs)(he,{value:n.serverType,onValueChange:c,className:`w-full pt-6`,children:[l,u,d]}),t[13]=n.serverType,t[14]=c,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function At(e){let t=(0,K.c)(5),{isEditing:n,busy:r,deleting:i,onDelete:a}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(`div`,{}),t[0]=e):e=t[0],e}let o=i?`Removing...`:`Remove`,s;return t[1]!==r||t[2]!==a||t[3]!==o?(s=(0,J.jsx)(_,{variant:`destructive`,onClick:a,disabled:r,children:o}),t[1]=r,t[2]=a,t[3]=o,t[4]=s):s=t[4],s}function jt(e){let t=(0,K.c)(7),{busy:n,hasChanges:r,saving:i,isEditing:a,onSave:o}=e,s=n||!r,c;t[0]!==a||t[1]!==i?(c=pt(i,a),t[0]=a,t[1]=i,t[2]=c):c=t[2];let l;return t[3]!==o||t[4]!==s||t[5]!==c?(l=(0,J.jsx)(_,{onClick:o,disabled:s,children:c}),t[3]=o,t[4]=s,t[5]=c,t[6]=l):l=t[6],l}function Mt(e){let t=(0,K.c)(14),{isEditing:n,busy:r,saving:i,deleting:a,hasChanges:o,onSave:s,onDelete:c}=e,l;t[0]!==r||t[1]!==a||t[2]!==n||t[3]!==c?(l=(0,J.jsx)(At,{isEditing:n,busy:r,deleting:a,onDelete:c}),t[0]=r,t[1]=a,t[2]=n,t[3]=c,t[4]=l):l=t[4];let u;t[5]!==r||t[6]!==o||t[7]!==n||t[8]!==s||t[9]!==i?(u=(0,J.jsx)(jt,{busy:r,hasChanges:o,saving:i,isEditing:n,onSave:s}),t[5]=r,t[6]=o,t[7]=n,t[8]=s,t[9]=i,t[10]=u):u=t[10];let d;return t[11]!==l||t[12]!==u?(d=(0,J.jsxs)(`div`,{className:`mt-6 border-t pt-4 flex items-center justify-between`,children:[l,u]}),t[11]=l,t[12]=u,t[13]=d):d=t[13],d}function Nt(e){let t=(0,K.c)(74),{projectPath:n,serverName:r,initialName:a,initialConfig:o,onBack:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==s||t[3]!==n||t[4]!==r?(c={projectPath:n,serverName:r,initialName:a,initialConfig:o,onBack:s},t[0]=o,t[1]=a,t[2]=s,t[3]=n,t[4]=r,t[5]=c):c=t[5];let{form:l,patchForm:u,lists:d,addEntry:f,removeEntry:p,updateEntry:m,original:h,saving:g,deleting:_,error:v,loading:y,actions:b}=yt(c),x=!!r,S=g||_,ee;t[6]!==l||t[7]!==x||t[8]!==d.env||t[9]!==d.header||t[10]!==h.snapshot?(ee=ut({isEditing:x,currentSnapshot:Je(l.name.trim(),l.serverType,nt(l,d.env,d.header)),originalSnapshot:h.snapshot,form:l,envEntries:d.env,headerEntries:d.header}),t[6]=l,t[7]=x,t[8]=d.env,t[9]=d.header,t[10]=h.snapshot,t[11]=ee):ee=t[11];let te=ee;if(y){let e;return t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(bt,{}),t[12]=e):e=t[12],e}let C;t[13]!==l.name||t[14]!==x?(C=ht(x,l.name),t[13]=l.name,t[14]=x,t[15]=C):C=t[15];let w;t[16]===C?w=t[17]:(w=(0,J.jsx)(ne,{...C,sticky:!0,className:`pr-10`}),t[16]=C,t[17]=w);let T;t[18]===u?T=t[19]:(T=e=>u({name:e}),t[18]=u,t[19]=T);let E;t[20]!==l.name||t[21]!==x||t[22]!==T?(E=(0,J.jsx)(xt,{isEditing:x,name:l.name,onNameChange:T}),t[20]=l.name,t[21]=x,t[22]=T,t[23]=E):E=t[23];let D;t[24]===f?D=t[25]:(D=()=>f(`header`),t[24]=f,t[25]=D);let O;t[26]===p?O=t[27]:(O=e=>p(`header`,e),t[26]=p,t[27]=O);let k;t[28]===m?k=t[29]:(k=(e,t)=>m(`header`,e,t),t[28]=m,t[29]=k);let A;t[30]!==l||t[31]!==d.header||t[32]!==u||t[33]!==D||t[34]!==O||t[35]!==k?(A=(0,J.jsx)(kt,{form:l,onFormChange:u,headerEntries:d.header,onHeaderAdd:D,onHeaderRemove:O,onHeaderUpdate:k}),t[30]=l,t[31]=d.header,t[32]=u,t[33]=D,t[34]=O,t[35]=k,t[36]=A):A=t[36];let j;t[37]===u?j=t[38]:(j=e=>u({defer:e}),t[37]=u,t[38]=j);let M;t[39]!==l.defer||t[40]!==j?(M=(0,J.jsx)(Dt,{defer:l.defer,onDeferChange:j}),t[39]=l.defer,t[40]=j,t[41]=M):M=t[41];let N;t[42]===f?N=t[43]:(N=()=>f(`env`),t[42]=f,t[43]=N);let P;t[44]===p?P=t[45]:(P=e=>p(`env`,e),t[44]=p,t[45]=P);let F;t[46]===m?F=t[47]:(F=(e,t)=>m(`env`,e,t),t[46]=m,t[47]=F);let I;t[48]!==l.serverType||t[49]!==d.env||t[50]!==N||t[51]!==P||t[52]!==F?(I=(0,J.jsx)(Et,{serverType:l.serverType,entries:d.env,onAdd:N,onRemove:P,onUpdate:F}),t[48]=l.serverType,t[49]=d.env,t[50]=N,t[51]=P,t[52]=F,t[53]=I):I=t[53];let L;t[54]===v?L=t[55]:(L=v&&(0,J.jsx)(`p`,{className:i.error,children:v}),t[54]=v,t[55]=L);let R;t[56]!==b.handleDelete||t[57]!==b.handleSave||t[58]!==S||t[59]!==_||t[60]!==te||t[61]!==x||t[62]!==g?(R=(0,J.jsx)(Mt,{isEditing:x,busy:S,saving:g,deleting:_,hasChanges:te,onSave:b.handleSave,onDelete:b.handleDelete}),t[56]=b.handleDelete,t[57]=b.handleSave,t[58]=S,t[59]=_,t[60]=te,t[61]=x,t[62]=g,t[63]=R):R=t[63];let z;t[64]!==A||t[65]!==M||t[66]!==I||t[67]!==L||t[68]!==R||t[69]!==E?(z=(0,J.jsxs)(`div`,{children:[E,A,M,I,L,R]}),t[64]=A,t[65]=M,t[66]=I,t[67]=L,t[68]=R,t[69]=E,t[70]=z):z=t[70];let B;return t[71]!==z||t[72]!==w?(B=(0,J.jsx)(V,{children:(0,J.jsxs)(Se,{children:[w,z]})}),t[71]=z,t[72]=w,t[73]=B):B=t[73],B}function Pt(e){if(!e)return null;let t=new Date(e).getTime();if(Number.isNaN(t))return null;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`just now`;let r=Math.round(n/60);if(r<60)return`${r}m ago`;let i=Math.round(r/60);return i<24?`${i}h ago`:new Date(e).toLocaleDateString()}function Ft(e){if(!e||e.state===`missing`||e.state===`stale`)return`Refresh to load tools`;if(e.state===`needs_auth`)return`Sign in required`;if(e.state===`error`)return e.error??`Could not load tools`;let t=e.tools.length,n=t===1?`1 tool`:`${t} tools`,r=Pt(e.refreshedAt);return r?`${n} · refreshed ${r}`:n}function It(e){let t=(0,K.c)(69),{name:n,config:r,catalog:a,remote:o,authorized:c,oauthBusy:u,refreshing:d,onEdit:f,onRefresh:m,onDelete:g,onSignIn:v,onSignOut:y}=e,[b,x]=(0,q.useState)(!1),S;if(t[0]!==c||t[1]!==a||t[2]!==r.args||t[3]!==r.command||t[4]!==r.url||t[5]!==b||t[6]!==n||t[7]!==u||t[8]!==g||t[9]!==f||t[10]!==m||t[11]!==v||t[12]!==y||t[13]!==d||t[14]!==o){let e=a?.state===`ok`?a.tools.map(zt):[],T;t[16]!==r.args||t[17]!==r.command||t[18]!==r.url?(T=r.url?r.url:`${r.command??``} ${r.args?.join(` `)??``}`.trim(),t[16]=r.args,t[17]=r.command,t[18]=r.url,t[19]=T):T=t[19];let E=T,D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=s(i.body,`truncate`),t[20]=D):D=t[20];let O;t[21]===n?O=t[22]:(O=(0,J.jsx)(`div`,{className:D,children:n}),t[21]=n,t[22]=O);let k;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(k=s(i.compact,`truncate text-muted-foreground font-mono`),t[23]=k):k=t[23];let A;t[24]===E?A=t[25]:(A=(0,J.jsx)(`div`,{className:k,children:E}),t[24]=E,t[25]=A);let j;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(j=s(i.caption,`truncate text-muted-foreground`),t[26]=j):j=t[26];let M;t[27]===a?M=t[28]:(M=Ft(a),t[27]=a,t[28]=M);let N;t[29]===M?N=t[30]:(N=(0,J.jsx)(`div`,{className:j,children:M}),t[29]=M,t[30]=N);let P;t[31]!==f||t[32]!==O||t[33]!==A||t[34]!==N?(P=(0,J.jsxs)(`button`,{type:`button`,onClick:f,className:`min-w-0 text-left`,children:[O,A,N]}),t[31]=f,t[32]=O,t[33]=A,t[34]=N,t[35]=P):P=t[35];let F;t[36]!==c||t[37]!==u||t[38]!==v||t[39]!==y||t[40]!==o?(F=o&&(0,J.jsx)(_,{type:`button`,variant:c?`outline`:`secondary`,size:`sm`,disabled:u,onClick:()=>{c?y():v()},children:u?`Working…`:c?`Sign out`:`Sign in`}),t[36]=c,t[37]=u,t[38]=v,t[39]=y,t[40]=o,t[41]=F):F=t[41];let I=`Refresh ${n} tools`,ne=d&&`animate-spin`,L;t[42]===ne?L=t[43]:(L=s(`h-4 w-4`,ne),t[42]=ne,t[43]=L);let R;t[44]===L?R=t[45]:(R=(0,J.jsx)(l,{className:L}),t[44]=L,t[45]=R);let z;t[46]!==m||t[47]!==d||t[48]!==I||t[49]!==R?(z=(0,J.jsx)(ee,{asChild:!0,children:(0,J.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:d,onClick:m,"aria-label":I,children:R})}),t[46]=m,t[47]=d,t[48]=I,t[49]=R,t[50]=z):z=t[50];let B;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,J.jsx)(te,{children:`Refresh tools`}),t[51]=B):B=t[51];let V;t[52]===z?V=t[53]:(V=(0,J.jsx)(C,{children:(0,J.jsxs)(w,{children:[z,B]})}),t[52]=z,t[53]=V);let re=e.length>0&&(0,J.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-expanded":b,"aria-label":b?`Hide tools`:`Show tools`,onClick:()=>x(Rt),children:(0,J.jsx)(h,{className:s(`h-4 w-4 transition-transform`,b&&`rotate-180`)})}),H;t[54]!==F||t[55]!==V||t[56]!==re?(H=(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[F,V,re]}),t[54]=F,t[55]=V,t[56]=re,t[57]=H):H=t[57];let ie=`Delete ${n}`,ae;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,J.jsx)(p,{className:`h-4 w-4`}),t[58]=ae):ae=t[58];let oe;t[59]!==g||t[60]!==ie?(oe=(0,J.jsx)(ee,{asChild:!0,children:(0,J.jsx)(_,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`,onClick:g,"aria-label":ie,children:ae})}),t[59]=g,t[60]=ie,t[61]=oe):oe=t[61];let U;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,J.jsx)(te,{children:`Remove this MCP server from the project`}),t[62]=U):U=t[62];let W;t[63]===oe?W=t[64]:(W=(0,J.jsx)(C,{children:(0,J.jsxs)(w,{children:[oe,U]})}),t[63]=oe,t[64]=W);let se;t[65]!==P||t[66]!==H||t[67]!==W?(se=(0,J.jsxs)(`div`,{className:`grid min-h-13 grid-cols-[minmax(0,1fr)_auto_1.75rem] items-center gap-3`,children:[P,H,W]}),t[65]=P,t[66]=H,t[67]=W,t[68]=se):se=t[68],S=(0,J.jsxs)(`div`,{className:`group px-3 py-3 hover:bg-muted/30`,children:[se,b&&e.length>0&&(0,J.jsx)(`ul`,{className:s(i.caption,`mt-2 space-y-1 pl-1 text-muted-foreground`),children:e.map(Lt)})]}),t[0]=c,t[1]=a,t[2]=r.args,t[3]=r.command,t[4]=r.url,t[5]=b,t[6]=n,t[7]=u,t[8]=g,t[9]=f,t[10]=m,t[11]=v,t[12]=y,t[13]=d,t[14]=o,t[15]=S}else S=t[15];return S}function Lt(e){return(0,J.jsx)(`li`,{className:`font-mono truncate`,children:e},e)}function Rt(e){return!e}function zt(e){return e.name}function Bt(e){return Object.keys(e.env??{}).length>0?{env:e.env}:{}}function Vt(e){return e.name.toLowerCase().replace(/\s+/g,`-`)}function Ht(e,t){let n=Vt(e);return t.some(function(t){return t.name===n||t.name===e.id})}function Ut(e){let t=Vt(e),n=Bt(e);if(e.url!==void 0){let r={url:e.url,transport:e.transport??`sse`,...n};return e.url.trim()?{kind:`automatic`,name:t,config:r}:{kind:`manual`,prefill:{name:t,config:r}}}return e.command?{kind:`automatic`,name:t,config:{command:e.command,args:e.args??[],...n}}:{kind:`invalid`}}async function Wt(e){let t=await ce(e.projectPath,e.serverName,e.config);return await e.loadInstalledServers(),e.triggerExplorerRefresh(),t.catalog}function Gt(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to install server`,variant:`destructive`})}function Kt(){A({title:`Error`,description:`This server is missing install configuration.`,variant:`destructive`})}function qt(e){let t=(0,K.c)(15),{projectPath:n,installedServers:r,loadInstalledServers:i,triggerExplorerRefresh:a}=e,[o,s]=(0,q.useState)(!1),[c,l]=(0,q.useState)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=function(){s(!1),l(null)},t[0]=u):u=t[0];let d=u,f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=function(){l(null),s(!0)},t[1]=f):f=t[1];let p=f,m;t[2]!==i||t[3]!==a?(m=function(){d(),i(),a()},t[2]=i,t[3]=a,t[4]=m):m=t[4];let h=m,g;t[5]!==r||t[6]!==i||t[7]!==n||t[8]!==a?(g=async function(e){if(!n||Ht(e,r))return;let t=Ut(e);if(t.kind===`manual`){l(t.prefill),s(!0);return}if(t.kind===`invalid`){Kt();return}try{let r=await Wt({projectPath:n,serverName:t.name,config:t.config,loadInstalledServers:i,triggerExplorerRefresh:a});A({title:`MCP server installed`,description:`${e.name} · ${G(r)}`})}catch(e){Gt(e)}},t[5]=r,t[6]=i,t[7]=n,t[8]=a,t[9]=g):g=t[9];let _=g,v;return t[10]!==h||t[11]!==_||t[12]!==c||t[13]!==o?(v={showAddDialog:o,prefillServer:c,installPopularServer:_,openManualAddDialog:p,closeAddDialog:d,completeServerEdit:h},t[10]=h,t[11]=_,t[12]=c,t[13]=o,t[14]=v):v=t[14],v}var Jt=`https://tarsk.io/skills/mcp/`;function Yt(e){return typeof e.url==`string`&&e.url.trim().length>0}function Xt(e,t,n,r,i,a){let[o,s]=(0,q.useState)(null),[c,l]=(0,q.useState)(null),[u,d]=(0,q.useState)(!1),[f,p]=(0,q.useState)({}),[m,h]=(0,q.useState)(null),[g,_]=(0,q.useState)(null),v=(0,q.useCallback)(async()=>{if(!e){p({});return}let n=t.filter(e=>Yt(e.config));if(n.length===0){p({});return}let r=await Promise.all(n.map(async t=>{try{let n=await E(e,t.name);return[t.name,n.authorized]}catch{return[t.name,!1]}}));p(Object.fromEntries(r))},[e,t]);return(0,q.useEffect)(()=>{v()},[v]),{editingServer:o,setEditingServer:s,deleteConfirm:c,setDeleteConfirm:l,deleting:u,oauthAuthorized:f,oauthBusy:m,refreshing:g,handleDelete:(0,q.useCallback)(async t=>{if(e){d(!0);try{await me(e,t),await n(),r(),A({title:`MCP server removed`,description:t}),l(null)}catch(e){A({title:`Error`,description:e instanceof Error?e.message:`Failed to remove server`,variant:`destructive`})}finally{d(!1)}}},[e,n,r]),handleOAuthSignIn:(0,q.useCallback)(async t=>{if(e){h(t);try{let r=await D(e,t);await v(),await n(),A({title:`Signed in`,description:r.catalog?`${t} · ${G(r.catalog)}`:`Connected to ${t}`})}catch(e){A({title:`Sign in failed`,description:e instanceof Error?e.message:`OAuth authorization failed`,variant:`destructive`})}finally{h(null)}}},[e,v,n]),handleOAuthSignOut:(0,q.useCallback)(async t=>{if(e){h(t);try{await O(e,t),await v(),await n(),A({title:`Signed out`,description:t})}catch(e){A({title:`Sign out failed`,description:e instanceof Error?e.message:`Failed to revoke OAuth credentials`,variant:`destructive`})}finally{h(null)}}},[e,v,n]),handleRefreshCatalog:(0,q.useCallback)(async t=>{if(e){_(t??`all`);try{let r=await le(e,t);await n();let i=Object.values(r.catalog),[a]=i;if(a)A({title:`Tools refreshed`,description:`${a.serverName} · ${G(a)}`});else{let e=i.filter(e=>e.state===`ok`).length;A({title:`Tools refreshed`,description:`${e}/${i.length} servers loaded`})}}catch(e){A({title:`Refresh failed`,description:e instanceof Error?e.message:`Could not refresh MCP tools`,variant:`destructive`})}finally{_(null)}}},[e,n]),handleOpenInExplorer:(0,q.useCallback)(()=>{i(`.agents/mcp.json`),a(`explorer`)},[i,a])}}function Zt(){let e=(0,K.c)(102),t=a(tn),n=a(en),r;if(e[0]!==n||e[1]!==t){let i;e[3]===t?i=e[4]:(i=e=>e.projectId===t,e[3]=t,e[4]=i),r=n.find(i),e[0]=n,e[1]=t,e[2]=r}else r=e[2];let o=r?.projectPath,{installedServers:c,catalog:p,loadingConfig:g,loadInstalledServers:v}=_e(o),{popularServers:y,loadingPopular:b}=ie(),{openChatDockPanel:x}=M(),{setPendingExplorerPath:S,triggerExplorerRefresh:T}=k(),{editingServer:E,setEditingServer:D,deleteConfirm:O,setDeleteConfirm:A,deleting:j,oauthAuthorized:P,oauthBusy:F,refreshing:I,handleDelete:R,handleOAuthSignIn:z,handleOAuthSignOut:B,handleRefreshCatalog:V,handleOpenInExplorer:U}=Xt(o,c,v,T,S,x),W;e[5]!==c||e[6]!==v||e[7]!==o||e[8]!==T?(W={projectPath:o,installedServers:c,loadInstalledServers:v,triggerExplorerRefresh:T},e[5]=c,e[6]=v,e[7]=o,e[8]=T,e[9]=W):W=e[9];let{showAddDialog:ce,prefillServer:le,installPopularServer:fe,openManualAddDialog:G,closeAddDialog:me,completeServerEdit:he}=qt(W),ge;e[10]!==g||e[11]!==b?(ge=[g,b],e[10]=g,e[11]=b,e[12]=ge):ge=e[12];let Se=Te(t,ge);if(!t){let t;return e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(N,{children:`Select a project to manage MCP servers.`}),e[13]=t):t=e[13],t}let Ce;e[14]===U?Ce=e[15]:(Ce=(0,J.jsx)(_,{variant:`ghost`,onClick:U,children:`Config`}),e[14]=U,e[15]=Ce);let q;e[16]!==V||e[17]!==c.length||e[18]!==I?(q=c.length>=2&&(0,J.jsxs)(_,{variant:`ghost`,className:`gap-1`,disabled:I!==null,onClick:()=>void V(),children:[(0,J.jsx)(l,{className:s(`h-4 w-4`,I===`all`&&`animate-spin`)}),`Refresh all`]}),e[16]=V,e[17]=c.length,e[18]=I,e[19]=q):q=e[19];let Y;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,J.jsx)(be,{asChild:!0,children:(0,J.jsxs)(_,{className:`gap-1`,children:[`Add Server`,(0,J.jsx)(h,{className:`h-4 w-4 opacity-70`})]})}),e[20]=Y):Y=e[20];let De;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(De=s(i.body,`gap-2`),e[21]=De):De=e[21];let Oe;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,J.jsx)(u,{className:`h-4 w-4 shrink-0`}),e[22]=Oe):Oe=e[22];let ke;e[23]===G?ke=e[24]:(ke=(0,J.jsxs)(ue,{className:De,onSelect:G,children:[Oe,`Manual Entry`]}),e[23]=G,e[24]=ke);let Ae;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,J.jsxs)(oe,{className:s(i.body,`gap-2`),children:[(0,J.jsx)(f,{className:`h-4 w-4 shrink-0`}),`Popular`]}),e[25]=Ae):Ae=e[25];let X;e[26]!==fe||e[27]!==c||e[28]!==b||e[29]!==y?(X=b?(0,J.jsx)(ue,{disabled:!0,className:i.bodyMuted,children:`Loading…`}):y.length===0?(0,J.jsx)(ue,{disabled:!0,className:i.bodyMuted,children:`No available servers`}):[...y].sort($t).map(e=>{let t=Ht(e,c);return(0,J.jsx)(C,{children:(0,J.jsxs)(w,{children:[(0,J.jsx)(ee,{asChild:!0,children:(0,J.jsxs)(ue,{className:s(i.body,`gap-2`,t&&`opacity-50 cursor-not-allowed`),onSelect:()=>{t||fe(e)},children:[(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),t&&(0,J.jsx)(m,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,J.jsx)(te,{side:`right`,className:`max-w-64`,children:e.description})]})},e.id)}),e[26]=fe,e[27]=c,e[28]=b,e[29]=y,e[30]=X):X=e[30];let Z;e[31]===X?Z=e[32]:(Z=(0,J.jsxs)(ve,{children:[Ae,(0,J.jsx)(xe,{className:`w-80 max-h-80 overflow-y-auto`,children:X})]}),e[31]=X,e[32]=Z);let je;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,J.jsx)(ae,{}),e[33]=je):je=e[33];let Me;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(Me=s(i.body,`gap-2`),e[34]=Me):Me=e[34];let Ne;e[35]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=(0,J.jsxs)(ue,{className:Me,onSelect:Qt,children:[(0,J.jsx)(d,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),e[35]=Ne):Ne=e[35];let Q;e[36]!==Z||e[37]!==ke?(Q=(0,J.jsxs)(se,{children:[Y,(0,J.jsxs)(pe,{align:`end`,className:`w-56`,children:[ke,Z,je,Ne]})]}),e[36]=Z,e[37]=ke,e[38]=Q):Q=e[38];let Pe;e[39]!==Q||e[40]!==Ce||e[41]!==q?(Pe=(0,J.jsx)(ne,{title:`Installed MCP Servers`,description:`MCP servers configured for this project.`,action:(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Ce,q,Q]}),sticky:!1}),e[39]=Q,e[40]=Ce,e[41]=q,e[42]=Pe):Pe=e[42];let Fe;e[43]!==p||e[44]!==z||e[45]!==B||e[46]!==V||e[47]!==c||e[48]!==P||e[49]!==F||e[50]!==I||e[51]!==A||e[52]!==D?(Fe=(0,J.jsx)(de,{className:`pt-6`,children:c.length===0?(0,J.jsx)(Ee,{icon:f,title:`Connect your agent to tools, APIs, and data sources`,bordered:!1}):(0,J.jsx)(`div`,{className:`divide-y divide-table-border`,children:c.map(e=>(0,J.jsx)(It,{name:e.name,config:e.config,catalog:p[e.name],remote:Yt(e.config),authorized:P[e.name]===!0,oauthBusy:F===e.name,refreshing:I===e.name||I===`all`,onEdit:()=>D(e.name),onRefresh:()=>void V(e.name),onDelete:()=>A(e.name),onSignIn:()=>void z(e.name),onSignOut:()=>void B(e.name)},e.name))})}),e[43]=p,e[44]=z,e[45]=B,e[46]=V,e[47]=c,e[48]=P,e[49]=F,e[50]=I,e[51]=A,e[52]=D,e[53]=Fe):Fe=e[53];let Ie;e[54]!==Pe||e[55]!==Fe?(Ie=(0,J.jsxs)(re,{className:`shrink-0`,children:[Pe,Fe]}),e[54]=Pe,e[55]=Fe,e[56]=Ie):Ie=e[56];let Le;e[57]!==Se||e[58]!==Ie?(Le=(0,J.jsx)(L,{loading:Se,children:Ie}),e[57]=Se,e[58]=Ie,e[59]=Le):Le=e[59];let Re;e[60]!==me||e[61]!==G?(Re=e=>{e?G():me()},e[60]=me,e[61]=G,e[62]=Re):Re=e[62];let ze=le?.name,$=le?.config,Be;e[63]!==he||e[64]!==o||e[65]!==ze||e[66]!==$?(Be=(0,J.jsx)(H,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,J.jsx)(Nt,{projectPath:o,initialName:ze,initialConfig:$,onBack:he})}),e[63]=he,e[64]=o,e[65]=ze,e[66]=$,e[67]=Be):Be=e[67];let Ve;e[68]!==ce||e[69]!==Re||e[70]!==Be?(Ve=(0,J.jsx)(ye,{open:ce,onOpenChange:Re,children:Be}),e[68]=ce,e[69]=Re,e[70]=Be,e[71]=Ve):Ve=e[71];let He=E!==null,Ue;e[72]===D?Ue=e[73]:(Ue=e=>{e||D(null)},e[72]=D,e[73]=Ue);let We=E??void 0,Ge;e[74]!==v||e[75]!==D||e[76]!==T?(Ge=()=>{D(null),v(),T()},e[74]=v,e[75]=D,e[76]=T,e[77]=Ge):Ge=e[77];let Ke;e[78]!==o||e[79]!==We||e[80]!==Ge?(Ke=(0,J.jsx)(H,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,J.jsx)(Nt,{projectPath:o,serverName:We,onBack:Ge})}),e[78]=o,e[79]=We,e[80]=Ge,e[81]=Ke):Ke=e[81];let qe;e[82]!==He||e[83]!==Ue||e[84]!==Ke?(qe=(0,J.jsx)(ye,{open:He,onOpenChange:Ue,children:Ke}),e[82]=He,e[83]=Ue,e[84]=Ke,e[85]=qe):qe=e[85];let Je=O!==null,Ye;e[86]===A?Ye=e[87]:(Ye=e=>!e&&A(null),e[86]=A,e[87]=Ye);let Xe=`Are you sure you want to delete the server "${O}"? This action cannot be undone.`,Ze;e[88]!==O||e[89]!==R?(Ze=()=>{O&&R(O)},e[88]=O,e[89]=R,e[90]=Ze):Ze=e[90];let Qe;e[91]!==j||e[92]!==Je||e[93]!==Ye||e[94]!==Xe||e[95]!==Ze?(Qe=(0,J.jsx)(we,{open:Je,onOpenChange:Ye,title:`Delete MCP Server`,description:Xe,onConfirm:Ze,confirming:j}),e[91]=j,e[92]=Je,e[93]=Ye,e[94]=Xe,e[95]=Ze,e[96]=Qe):Qe=e[96];let $e;return e[97]!==Le||e[98]!==Ve||e[99]!==qe||e[100]!==Qe?($e=(0,J.jsxs)(J.Fragment,{children:[Le,Ve,qe,Qe]}),e[97]=Le,e[98]=Ve,e[99]=qe,e[100]=Qe,e[101]=$e):$e=e[101],$e}function Qt(){T(Jt)}function $t(e,t){return e.name.localeCompare(t.name)}function en(e){return e.projects}function tn(e){return e.selectedProjectId}export{Zt as SettingsMCPServersView,Zt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Lt as i}from"./dist-DZtmmQ-F.js";import{n as a,tt as o}from"./store-D4D62vkY.js";import{r as s,t as c}from"./utils-BCj_kT9l.js";import{t as l}from"./button-DhxraVUW.js";import{r as u}from"./tooltip-Cg_EhO9M.js";import{B as d,L as f,Nt as p,R as m,V as h,W as g}from"./api-B_ZIptgC.js";import{t as _}from"./progress-indicator-C7Kj9U3t.js";import{n as v}from"./suspense-resource-DzlMlIgR.js";import{$t as y,At as b,Ct as ee,Dt as x,Gn as S,Pt as C,St as te,Ut as ne,cr as w,jt as T,lt as E,sr as D,vt as O}from"./index-DdJcjvu2.js";import{i as k,n as A,o as j,r as M,t as N}from"./table-DCmeRDBK.js";import{n as P,t as F}from"./toggle-group-Dl5P_F6a.js";import{n as I,t as L}from"./commit-method-fields-C7Du43jy.js";import{t as R}from"./async-error-boundary-DmJy8jgz.js";import{t as re}from"./sorting-DqwxPMRN.js";import{c as z,o as ie}from"./settings-list-n-CrPPNl.js";import{t as ae}from"./use-deferred-search-Dgxosq55.js";import{n as oe,r as B,t as V}from"./model-list-controls-DOpHpzG8.js";var H=e(n(),1),U=t();function W(e){return`settings-models:coding:${e}`}function G(e){return`settings-models:image:${e}`}async function K(){let e=(await p()).filter(e=>e.apiKey),t=await g(`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 se(e){let t=e.filter(e=>e.name.toLowerCase()===`openrouter`),n=await g(`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=r();function J(e){let t=(0,U.c)(3),{label:n,large:r}=e,i=r!==void 0&&r?`lg`:`sm`,a;return t[0]!==n||t[1]!==i?(a=(0,q.jsx)(_,{centered:!0,containerClassName:`py-12`,label:n,size:i}),t[0]=n,t[1]=i,t[2]=a):a=t[2],a}var Y=`table-fixed`,ce=`h-9`,le=c(i.body,`py-1.5`),ue=`w-10 py-1.5`,de=`w-24 py-1.5 text-right`,fe=c(i.body,`w-20 py-1.5 text-right text-muted-foreground tabular-nums`),pe=c(i.body,`w-48 py-1.5 text-right text-muted-foreground whitespace-nowrap tabular-nums`),me=`h-9 w-24 bg-transparent py-2 text-right`,he=`h-9 w-20 bg-transparent py-2 text-right`,ge=`h-9 w-48 bg-transparent py-2 text-right`;function _e(e){return!e||(e.prompt??0)===0&&(e.completion??0)===0?``:`$${s(e.prompt??0)} in | $${s(e.completion??0)} out`}function ve(e){return e==null||!Number.isFinite(e)||e<=0?``:e>=100?Math.round(e).toLocaleString():e.toFixed(1)}function X(e){let t=(0,U.c)(9),{showIntelligence:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(`w-full caption-bottom`,Y,i.body),t[0]=r):r=t[0];let a,o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(k,{className:`h-9 w-10 bg-transparent py-2`}),o=(0,q.jsx)(k,{className:`h-9 bg-transparent py-2`,children:`Model`}),t[1]=a,t[2]=o):(a=t[1],o=t[2]);let s;t[3]===n?s=t[4]:(s=n?(0,q.jsx)(k,{className:me,children:`Intelligence`}):null,t[3]=n,t[4]=s);let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsx)(k,{className:he,children:`TPS`}),u=(0,q.jsx)(k,{className:ge,children:`Pricing`}),t[5]=l,t[6]=u):(l=t[5],u=t[6]);let d;return t[7]===s?d=t[8]:(d=(0,q.jsx)(`table`,{className:r,children:(0,q.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,q.jsxs)(`tr`,{children:[a,o,s,l,u]})})}),t[7]=s,t[8]=d),d}function Z(e){let t=(0,U.c)(15),{models:n,enabledIds:r,checkboxIdPrefix:a,showIntelligence:o,getModelDisplayName:s,onToggleModel:l}=e,u;if(t[0]!==a||t[1]!==r||t[2]!==s||t[3]!==n||t[4]!==l||t[5]!==o){let e;t[7]!==a||t[8]!==r||t[9]!==s||t[10]!==l||t[11]!==o?(e=e=>{let t=`${a}${e.id}`,n=r.has(e.id);return(0,q.jsxs)(j,{className:ce,children:[(0,q.jsx)(M,{className:ue,children:(0,q.jsx)(E,{id:t,value:n,onChange:()=>l(e.id),ariaLabel:`${s(e)} ${n?`enabled`:`disabled`}`})}),(0,q.jsx)(M,{className:le,children:(0,q.jsx)(`label`,{htmlFor:t,className:c(i.body,`cursor-pointer truncate peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),children:s(e)})}),o?(0,q.jsx)(M,{className:de,children:(0,q.jsx)(`div`,{className:`flex justify-end`,children:(0,q.jsx)(B,{codingIndex:e.coding_index,modelName:s(e)})})}):null,(0,q.jsx)(M,{className:fe,children:ve(e.avgTPS)}),(0,q.jsx)(M,{className:pe,children:_e(e.pricing)})]},e.id)},t[7]=a,t[8]=r,t[9]=s,t[10]=l,t[11]=o,t[12]=e):e=t[12],u=n.map(e),t[0]=a,t[1]=r,t[2]=s,t[3]=n,t[4]=l,t[5]=o,t[6]=u}else u=t[6];let d;return t[13]===u?d=t[14]:(d=(0,q.jsx)(N,{className:Y,children:(0,q.jsx)(A,{children:u})}),t[13]=u,t[14]=d),d}function Q(e){let t=(0,U.c)(25),{providerName:n,providerSlug:r,action:a,tableHeader:o,children:s}=e,l;t[0]!==n||t[1]!==r?(l=(0,q.jsx)(O,{provider:{name:n,slug:r}}),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=c(i.pageTitle,`truncate`),t[3]=u):u=t[3];let d;t[4]===n?d=t[5]:(d=(0,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]===a?p=t[10]:(p=a?(0,q.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag shrink-0`,children:a}):null,t[9]=a,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,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]=m):m=t[13];let h;t[14]===o?h=t[15]:(h=o?(0,q.jsx)(`div`,{className:`electrobun-webkit-app-region-no-drag px-6 pb-2 pt-4`,children:o}):null,t[14]=o,t[15]=h);let g=o?`pt-0`:`pt-6`,_;t[16]===g?_=t[17]:(_=c(`px-6 pb-6`,g),t[16]=g,t[17]=_);let v;t[18]!==s||t[19]!==_?(v=(0,q.jsx)(`div`,{className:_,children:s}),t[18]=s,t[19]=_,t[20]=v):v=t[20];let y;return t[21]!==v||t[22]!==m||t[23]!==h?(y=(0,q.jsxs)(C,{className:`shrink-0`,children:[m,h,v]}),t[21]=v,t[22]=m,t[23]=h,t[24]=y):y=t[24],y}function ye({providers:e,globalSearchQuery:t,modelSortBy:n,filterAndSortModels:r,getModelDisplayName:i,onSaveStatus:s}){let c=a(),l=S(G(0),()=>se(e)),[p]=(0,H.useState)(l.allImageModels),[m,h]=(0,H.useState)(l.enabledImageModelIds);async function g(e,t){try{m[e]?.has(t)?(await f(e,t),h(n=>{let r=new Set(n[e]??[]);return r.delete(t),{...n,[e]:r}})):(await d(e,t),h(n=>({...n,[e]:new Set([...n[e]||[],t])}))),c({type:o.ConfigUpdated}),s(`Model preferences saved successfully`)}catch(e){s(e instanceof Error?e.message:`Failed to save model changes`)}}async function _(e,t){let n=p[e],r=m[e];if(n)for(let i of n)r?.has(i.id)!==t&&await g(e,i.id)}return(0,q.jsx)(q.Fragment,{children:e.filter(e=>e.name.toLowerCase()===`openrouter`).map(e=>{let a=p[e.slug]||[],o=m[e.slug]||new Set,s=r(a,o,n);return s.length===0&&t?null:(0,q.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:s.length>0?(0,q.jsx)(V,{id:`select-all-image-${e.slug}`,checked:s.every(e=>o.has(e.id)),onChange:t=>void _(e.slug,t)}):null,tableHeader:s.length>0?(0,q.jsx)(X,{showIntelligence:!1}):void 0,children:s.length===0?(0,q.jsx)(z,{message:t?`No models matching your search.`:`No image models available for this provider.`}):(0,q.jsx)(u,{children:(0,q.jsx)(Z,{models:s,enabledIds:o,checkboxIdPrefix:`image-`,showIntelligence:!1,getModelDisplayName:i,onToggleModel:t=>void g(e.slug,t)})})},e.slug)})})}function be({loadVersion:e}){let t=a(),n=S(W(e),()=>K()),r=n.providers,[s]=(0,H.useState)(n.allModels),[l,d]=(0,H.useState)(n.enabledModelIds),[f,p]=(0,H.useState)(`coding`),{query:g,setQuery:_,deferredQuery:v}=ae(),[E,O]=(0,H.useState)(`alphabetical`),[k,A]=(0,H.useState)(``),j=e=>y(e.id),M=async(e,n)=>{try{l[e]?.has(n)?(await m(e,n),d(t=>{let r=new Set(t[e]??[]);return r.delete(n),{...t,[e]:r}})):(await h(e,n),d(t=>({...t,[e]:new Set([...t[e]||[],n])}))),ne(),t({type:o.ConfigUpdated}),A(`Model preferences saved successfully`),setTimeout(()=>A(``),3e3)}catch(e){A(e instanceof Error?e.message:`Failed to save model changes`)}},N=async(e,t)=>{let n=s[e],r=l[e];if(n)for(let i of n)r?.has(i.id)!==t&&await M(e,i.id)},R=(e,t,n)=>re({models:e,query:v,sortBy:n,getDisplayName:j,getPriority:e=>+!t.has(e.id)});if(r.length===0)return(0,q.jsx)(b,{title:`No providers configured`,children:`Configure a provider with an API key to view available models.`});let B=r.some(e=>e.name.toLowerCase()===`openrouter`);return(0,q.jsx)(x,{loading:!1,children:(0,q.jsxs)(D,{value:f,className:`flex flex-col gap-2.5`,children:[(0,q.jsxs)(C,{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:g,onChange:_,className:`mb-0 w-64`}),sticky:!1}),(0,q.jsx)(T,{className:`max-w-none pt-6`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[B?(0,q.jsxs)(F,{type:`single`,value:f,onValueChange:e=>{(e===`coding`||e===`image`)&&(p(e),_(``))},"aria-label":`Model type`,className:c(L,`shrink-0`),children:[(0,q.jsx)(P,{value:`coding`,"aria-label":`Coding`,className:c(i.body,I),children:`Coding`}),(0,q.jsx)(P,{value:`image`,"aria-label":`Image`,className:c(i.body,I),children:`Image`})]}):null,k?(0,q.jsx)(te,{variant:k.includes(`error`)||k.includes(`Failed`)?`error`:`success`,className:`mb-0 shrink-0`,children:k}):null,(0,q.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,q.jsx)(oe,{sortBy:E,showCodingIndex:f===`coding`,showIntelligenceByPrice:f===`coding`,onSortByChange:O})})]})})]}),(0,q.jsx)(w,{value:`coding`,className:`mt-0 flex flex-col gap-2.5`,children:r.map(e=>{let t=s[e.slug]||[],n=l[e.slug]||new Set,r=R(t,n,E);return r.length===0&&g?null:(0,q.jsx)(Q,{providerName:e.name,providerSlug:e.slug,action:r.length>0?(0,q.jsx)(V,{id:`select-all-${e.slug}`,checked:r.every(e=>n.has(e.id)),onChange:t=>void N(e.slug,t)}):null,tableHeader:r.length>0?(0,q.jsx)(X,{showIntelligence:E===`coding-index`||E===`intelligence-by-price`}):void 0,children:r.length===0?(0,q.jsx)(z,{message:g?`No models matching your search.`:`No models available for this provider.`}):(0,q.jsx)(u,{children:(0,q.jsx)(Z,{models:r,enabledIds:n,checkboxIdPrefix:``,showIntelligence:E===`coding-index`||E===`intelligence-by-price`,getModelDisplayName:j,onToggleModel:t=>void M(e.slug,t)})})},e.slug)})}),(0,q.jsx)(w,{value:`image`,className:`mt-0 flex flex-col gap-2.5`,children:f===`image`?(0,q.jsx)(H.Suspense,{fallback:(0,q.jsx)(J,{}),children:(0,q.jsx)(ye,{providers:r,globalSearchQuery:g,modelSortBy:E,filterAndSortModels:R,getModelDisplayName:j,onSaveStatus:e=>{A(e),e.includes(`Failed`)||setTimeout(()=>A(``),3e3)}})}):null})]})})}function $(){let e=(0,U.c)(8),[t,n]=(0,H.useState)(0),r;e[0]===t?r=e[1]:(r=function(){v(W(t)),n(Se)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(J,{label:`Loading models...`,large:!0}),e[2]=a):a=e[2];let o;e[3]===t?o=e[4]:(o=(0,q.jsx)(H.Suspense,{fallback:a,children:(0,q.jsx)(be,{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)(R,{fallbackTitle:`Failed to load models`,onRetry:i,renderFallback:xe,children:o})}),e[5]=i,e[6]=o,e[7]=s):s=e[7],s}function xe(e,t){return(0,q.jsx)(b,{title:`Failed to load models`,action:(0,q.jsx)(l,{variant:`outline`,onClick:t,children:`Retry`}),children:e.message})}function Se(e){return e+1}export{$ as SettingsModelsView,$ as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/project-coding-view-CrOGfL2D.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-DdJcjvu2.js","assets/react-vendor-Ee0-5T4I.js","assets/progress-indicator-C7Kj9U3t.js","assets/utils-BCj_kT9l.js","assets/dist-DZtmmQ-F.js","assets/alert-dialog-DTxl_mXc.js","assets/button-DhxraVUW.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-iDwSbcD5.js","assets/dist-BkOEUrQf.js","assets/es2015-B0KHrBGH.js","assets/scroll-area-BQ9bdsVQ.js","assets/dist-OixawqbU.js","assets/tooltip-Cg_EhO9M.js","assets/dist-CA_zFhwJ.js","assets/use-toast-xpb5jNtN.js","assets/chat-dock-context-DhO-jYMh.js","assets/api-B_ZIptgC.js","assets/store-D4D62vkY.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/main-tab-context-CNgxXqnH.js","assets/terminal-output-activity-B1bjjsl7.js","assets/suspense-resource-DzlMlIgR.js","assets/dist-Dj1qT-gv.js","assets/dist-aB1qUwWW.js","assets/dist-Bihbg_hO.js","assets/dist-BZmr2Qex.js","assets/dist-CSssbxDI.js","assets/useBaseQuery-ChJtNS_3.js","assets/lucide-react-CNNzKD4G.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/index-B3oaBks2.css","assets/commit-method-fields-C7Du43jy.js","assets/toggle-group-Dl5P_F6a.js","assets/use-settings-page-loading-CpaBd260.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{o as a,s as o}from"./chunk-QFMPRPBF-COsSkB7x.js";import{ct as s,lt as c}from"./dist-DZtmmQ-F.js";import{n as l,r as u,tt as d}from"./store-D4D62vkY.js";import{t as f}from"./progress-indicator-C7Kj9U3t.js";import{Ct as p,Pt as m,jt as h,z as g}from"./index-DdJcjvu2.js";import{t as _}from"./settings-tab-bar-BJtpuIky.js";var v=e(n(),1),y=t(),b=i();function x(e){let t=(0,y.c)(9),{projectId:n}=e,r=l(),i;t[0]===n?i=t[1]:(i=function(e){return e.projects.find(e=>e.projectId===n)?.commands??[]},t[0]=n,t[1]=i);let a=u(i),o;t[2]===r?o=t[3]:(o=function(){r({type:d.ConfigUpdated})},t[2]=r,t[3]=o);let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,b.jsx)(p,{title:`Project Commands`,description:`Create and manage reusable commands for this project.`}),t[4]=c):c=t[4];let f;return t[5]!==a||t[6]!==s||t[7]!==n?(f=(0,b.jsx)(m,{className:`shrink-0`,children:(0,b.jsxs)(h,{children:[c,(0,b.jsx)(g,{embedded:!0,open:!0,projectId:n,commands:a,onRefresh:s})]})}),t[5]=a,t[6]=s,t[7]=n,t[8]=f):f=t[8],f}var S=(0,v.lazy)(function(){return r(()=>import(`./project-coding-view-CrOGfL2D.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))});function C(e){let t=(0,y.c)(21),{projectId:n}=e,r=a(),i=o(),l;t[0]===r.pathname?l=t[1]:(l=c(r.pathname)??`setup`,t[0]=r.pathname,t[1]=l);let u=l,d;t[2]!==i||t[3]!==n?(d=function(e){i(e===`setup`?`/settings/project/${n}/coding`:`/settings/project/${n}/coding/${e}`)},t[2]=i,t[3]=n,t[4]=d):d=t[4];let p=d,m;t[5]!==u||t[6]!==p?(m=(0,b.jsx)(_,{value:u,onValueChange:p,options:s}),t[5]=u,t[6]=p,t[7]=m):m=t[7];let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,b.jsx)(f,{centered:!0,label:`Loading project setup...`}),t[8]=h):h=t[8];let g;t[9]!==u||t[10]!==n?(g=u===`setup`&&(0,b.jsx)(S,{projectId:n}),t[9]=u,t[10]=n,t[11]=g):g=t[11];let C;t[12]!==u||t[13]!==n?(C=u===`commands`&&(0,b.jsx)(x,{projectId:n}),t[12]=u,t[13]=n,t[14]=C):C=t[14];let w;t[15]!==g||t[16]!==C?(w=(0,b.jsx)(`div`,{className:`min-h-0 flex-1`,role:`region`,"aria-label":`Project setup`,children:(0,b.jsxs)(v.Suspense,{fallback:h,children:[g,C]})}),t[15]=g,t[16]=C,t[17]=w):w=t[17];let T;return t[18]!==m||t[19]!==w?(T=(0,b.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[m,w]}),t[18]=m,t[19]=w,t[20]=T):T=t[20],T}export{C as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{B as i,Lt as a,in as o}from"./dist-DZtmmQ-F.js";import{r as s}from"./store-D4D62vkY.js";import{t as c,u as l}from"./utils-BCj_kT9l.js";import{B as u,Jt as d,L as f,U as p,W as m,Zt as h,a as g,dt as _,hn as v,ht as y,jt as b}from"./lucide-react-CNNzKD4G.js";import{t as x}from"./button-DhxraVUW.js";import{i as S,n as C,r as w,t as T}from"./tooltip-Cg_EhO9M.js";import{$t as E,Ei as D,In as O,Pn as k,T as A,Wi as j,_r as M,ar as N,di as P,dr as F,fi as I,fr as ee,gr as te,ki as ne,kn as re,lr as ie,mr as L,or as ae,pr as oe,qi as se,sr as ce,yi as le}from"./api-B_ZIptgC.js";import{t as ue}from"./progress-indicator-C7Kj9U3t.js";import{a as de,c as fe,i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./alert-dialog-DTxl_mXc.js";import{t as R}from"./use-toast-xpb5jNtN.js";import{At as ye,B as be,Bt as xe,Cr as z,Ct as B,Dr as V,Dt as Se,Er as H,Ft as Ce,It as we,Lt as U,Nt as Te,Or as Ee,Pt as W,Sr as G,St as De,Tr as Oe,_r as ke,a as Ae,bt as K,fr as je,hr as q,ir as Me,jt as J,kr as Y,mr as Ne,wr as Pe,xr as Fe,yt as Ie,zn as Le,zt as Re}from"./index-DdJcjvu2.js";import{t as ze}from"./delete-confirm-dialog-Ciwqi6ts.js";import{t as Be}from"./use-settings-page-loading-CpaBd260.js";import{a as X,o as Ve,r as He}from"./settings-list-n-CrPPNl.js";import{t as Ue}from"./use-deferred-search-Dgxosq55.js";import{i as We,n as Ge,r as Ke,t as qe}from"./use-installed-ai-files-BtR-wIuu.js";import{i as Je,n as Ye,r as Xe,t as Ze}from"./slug-utils-Ccbyp4Mu.js";var Z=t(),Q=e(n(),1);function Qe(){let e=(0,Z.c)(10),[t,n]=(0,Q.useState)(!1),[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(!1),[s,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(!1),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=function(e){f(e),m(!0)},e[0]=h):h=e[0];let g=h,_;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=function(e){e||u(null)},e[1]=_):_=e[1];let v=_,y;return e[2]!==d||e[3]!==s||e[4]!==l||e[5]!==t||e[6]!==a||e[7]!==p||e[8]!==r?(y={showAddDialog:t,setShowAddDialog:n,showUrlDialog:r,setShowUrlDialog:i,showAddSourceDialog:a,setShowAddSourceDialog:o,pluginImportUrl:s,setPluginImportUrl:c,previewSkill:l,setPreviewSkill:u,invocationSkill:d,showInvocationDialog:p,setShowInvocationDialog:m,openInvocationDialog:g,handlePreviewDialogOpenChange:v},e[2]=d,e[3]=s,e[4]=l,e[5]=t,e[6]=a,e[7]=p,e[8]=r,e[9]=y):y=e[9],y}var $=r();function $e({threadId:e,onSkillCreated:t}){let[n,r]=(0,Q.useState)(``),[i,o]=(0,Q.useState)(``),[s,l]=(0,Q.useState)(!1),u=Xe(n),d=Ye(u),f=async()=>{if(!(!d||!i.trim()||!e)){l(!0);try{let n=await A(e,u,i.trim());R({title:`Skill created`,description:`Skill '${u}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{l(!1)}}};return e?(0,$.jsx)(Te,{children:(0,$.jsxs)(Ie,{children:[(0,$.jsx)(B,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(K,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,$.jsx)(z,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,$.jsxs)(`p`,{className:c(a.caption,`mt-2`),children:[`Folder name: `,(0,$.jsx)(`span`,{className:`font-mono`,children:u||`...`})]}):null]}),(0,$.jsx)(K,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,$.jsx)(be,{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)(Je,{onContinue:()=>void f(),disabled:!d||!i.trim(),creating:s})]})]})}):(0,$.jsx)(ye,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}var et=`.agents/skills`;function tt(e){return`${et}/${e}`}function nt(e){return`${tt(e)}/SKILL.md`}function rt(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 it(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 at(e,t,n){return rt(e,t).filter(e=>!n.has(nt(e.id)))}function ot(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function st(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function ct(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function lt(e,t,n){let[r,i]=(0,Q.useState)([]),[a,o]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),[p,m]=(0,Q.useState)(null),h=ct(t,n),g=!!h;return(0,Q.useEffect)(()=>{if(!e||!t)return;let r=t,a=ct(r,n),s=!1;async function l(){u(!0),m(null),i([]),o(null),c(``);try{if(a){let e=await ce(a,r.id);if(s)return;i(e.files),o(st(e.files))}else{if(s)return;i([`SKILL.md`]),o(`SKILL.md`),c(it(r))}}catch(e){if(s)return;m(e instanceof Error?e.message:`Failed to load skill files`)}finally{s||u(!1)}}return l(),()=>{s=!0}},[e,t,n]),(0,Q.useEffect)(()=>{if(!e||!t||!a||!g||!h)return;let n=t,r=a,i=!1;async function o(){f(!0),m(null);try{let e=await ae(h,n.id,r);if(i)return;c(e.content)}catch(e){if(i)return;m(e instanceof Error?e.message:`Failed to load file`),c(``)}finally{i||f(!1)}}return o(),()=>{i=!0}},[e,t,a,g,h]),{files:r,selectedFile:a,setSelectedFile:o,fileContent:s,loadingFiles:l,contentLoading:l||g&&d,loadError:p,isCatalogSkill:g,effectiveSourceId:h}}function ut({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:i}){let[o,s]=(0,Q.useState)(!1),{files:l,selectedFile:u,setSelectedFile:d,fileContent:f,loadingFiles:p,contentLoading:m,loadError:h,effectiveSourceId:g}=lt(e,n,r),_=(0,Q.useCallback)(async()=>{if(!n)return;let e=g?{...n,sourceId:g}:n;s(!0);try{await i(e),t(!1)}finally{s(!1)}},[n,g,i,t]),v=u?ot(u):!1,y=(0,Q.useMemo)(()=>l.map(e=>(0,$.jsxs)(Me,{selected:e===u,onClick:()=>d(e),className:`gap-2 cursor-pointer`,children:[(0,$.jsx)(b,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,$.jsx)(`span`,{className:c(a.caption,`truncate`),children:e})]},e)),[l,u]);return(0,$.jsx)(Pe,{open:e,onOpenChange:t,children:(0,$.jsxs)(Oe,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,$.jsxs)(Ee,{className:`border-b border-border px-6 py-4`,children:[(0,$.jsx)(Y,{children:n?.name??`Review skill`}),n?.description?(0,$.jsx)(H,{children:n.description}):null]}),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row`,children:[(0,$.jsxs)(`div`,{className:`flex max-h-40 shrink-0 flex-col border-b border-border sm:max-h-none sm:w-56 sm:border-b-0 sm:border-r`,children:[(0,$.jsx)(`div`,{className:c(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:p?(0,$.jsx)(ue,{centered:!0,containerClassName:`py-8`,label:`Loading files...`}):l.length===0?(0,$.jsx)(`p`,{className:c(a.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):y})]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:h?(0,$.jsx)(`p`,{className:c(a.body,`text-destructive`),children:h}):m?(0,$.jsx)(ue,{centered:!0,containerClassName:`py-12`,label:`Loading preview...`}):v?(0,$.jsx)(Le,{content:f,enableMermaid:!1}):(0,$.jsx)(`pre`,{className:c(a.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:f})})]}),(0,$.jsxs)(V,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,$.jsx)(x,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,$.jsx)(x,{type:`button`,onClick:()=>void _(),disabled:o||!n,children:o?`Installing...`:`Install`})]})]})})}var dt=`skills:popular`;function ft(e){return e.map(e=>`${e.id}~${e.name}~${e.description}`).join(`|`)}function pt(){let e=(0,Z.c)(5),[t,n]=(0,Q.useState)(gt),[r,i]=(0,Q.useState)(ht),a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{ie().then(e=>{We(dt,e),n(t=>ft(t)===ft(e)?t:e)}).catch(mt).finally(()=>i(!1))},o=[],e[0]=a,e[1]=o):(a=e[0],o=e[1]),(0,Q.useEffect)(a,o);let s;return e[2]!==r||e[3]!==t?(s={popularSkills:t,loadingPopularSkills:r},e[2]=r,e[3]=t,e[4]=s):s=e[4],s}function mt(){}function ht(){return!Ge(dt)}function gt(){return Ke(dt)??[]}var _t=new Map;function vt(e){let t=_t.get(e);if(t)return t;let n=F(e).finally(()=>{_t.delete(e)});return _t.set(e,n),n}function yt(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function bt(){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)(D),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 ee())}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=le();if(e.length>0)try{await oe(e),P()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,Q.useEffect)(h,g);let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{a(e),j(e)},e[5]=_):_=e[5];let v=_,y;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{r(t=>[...t.filter(t=>t.id!==e.id),e].sort(St)),v(e.id)},e[6]=y):y=e[6];let b=y,x;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{r(t=>t.map(t=>t.id===e.id?e:t).sort(xt)),I(e.id)},e[7]=x):x=e[7];let S=x,C;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{r(t=>t.filter(t=>t.id!==e)),I(e),a(t=>t===e?(j(`default`),`default`):t)},e[8]=C):C=e[8];let w=C,T,E;e[9]===i?(T=e[10],E=e[11]):(E=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=ne(i);e?.skills?(c(yt(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),vt(i).then(e=>{if(t)return;let n=yt(i,e);c(n),se(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),R({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},T=[i],e[9]=i,e[10]=T,e[11]=E),(0,Q.useEffect)(E,T);let O;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(O={sources:n,selectedSourceId:i,setSelectedSourceId:v,addSource:b,updateSource:S,removeSource:w,reloadSources:m,catalogSkills:s,isLoadingCatalog:l,isRefreshingCatalog:d},e[12]=s,e[13]=l,e[14]=d,e[15]=i,e[16]=n,e[17]=O):O=e[17],O}function xt(e,t){return e.title.localeCompare(t.title)}function St(e,t){return e.title.localeCompare(t.title)}function Ct(e){let t=(0,Z.c)(26),{popularSkills:n,loadingPopularSkills:r}=pt(),{sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,catalogSkills:d,isLoadingCatalog:f}=bt(),{query:p,setQuery:m,deferredQuery:h}=Ue(),g=o==="default",_;t[0]!==o||t[1]!==a?(_=i(o)?a.find(e=>e.id===o)??null:null,t[0]=o,t[1]=a,t[2]=_):_=t[2];let v=_,y=!g&&f&&d.length===0,b;t[3]!==h||t[4]!==e||t[5]!==n?(b=at(n,h,e),t[3]=h,t[4]=e,t[5]=n,t[6]=b):b=t[6];let x=b,S;t[7]!==d||t[8]!==h||t[9]!==e?(S=at(d,h,e),t[7]=d,t[8]=h,t[9]=e,t[10]=S):S=t[10];let C=S,w;return t[11]!==c||t[12]!==C||t[13]!==y||t[14]!==x||t[15]!==p||t[16]!==g||t[17]!==r||t[18]!==u||t[19]!==v||t[20]!==o||t[21]!==m||t[22]!==s||t[23]!==a||t[24]!==l?(w={availableSearch:p,setAvailableSearch:m,availablePopular:x,availableCatalog:C,availableCatalogLoading:y,isDefaultSource:g,selectedCustomSource:v,sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,loadingPopularSkills:r},t[11]=c,t[12]=C,t[13]=y,t[14]=x,t[15]=p,t[16]=g,t[17]=r,t[18]=u,t[19]=v,t[20]=o,t[21]=m,t[22]=s,t[23]=a,t[24]=l,t[25]=w):w=t[25],w}function wt({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:i,onSourceDeleted:o}){let[s,l]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(!1),[g,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(!1),S=n!=null;function C(){l(``),d(``),p(null),h(!1),v(!1),b(!1)}function w(e){e||C(),t(e)}(0,Q.useEffect)(()=>{if(e){if(n){l(n.title),d(n.url),p(null);return}l(``),d(``),p(null)}},[e,n]);async function T(){let e=s.trim(),t=u.trim();if(!e||!t){p(`Title and URL are required.`);return}h(!0),p(null);try{if(S&&n){let r=await te(n.id,e,t);i?.(r.source)}else r((await M(e,t)).source);w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to verify skill source`)}finally{h(!1)}}async function E(){if(n){v(!0),p(null);try{await N(n.id),o?.(n.id),b(!1),w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to delete skill source`),b(!1)}finally{v(!1)}}}return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Pe,{open:e,onOpenChange:w,children:(0,$.jsxs)(Oe,{className:`sm:max-w-lg`,children:[(0,$.jsxs)(Ee,{children:[(0,$.jsx)(Y,{children:S?`Edit Skill Source`:`Add Skill Source`}),(0,$.jsx)(H,{children:S?`Update the title or GitHub skills folder URL for this custom source.`:`Add a GitHub skills folder URL. The source is verified by loading at least one skill from the repository.`})]}),(0,$.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[(0,$.jsx)(G,{htmlFor:`skill-source-title`,children:`Title`}),(0,$.jsx)(z,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>l(e.target.value),disabled:m||g,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[(0,$.jsx)(G,{htmlFor:`skill-source-url`,children:`URL`}),(0,$.jsx)(z,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:u,onChange:e=>d(e.target.value),disabled:m||g})]}),f?(0,$.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:f}):null]}),(0,$.jsxs)(V,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[S?(0,$.jsx)(x,{type:`button`,variant:`destructive`,onClick:()=>b(!0),disabled:m||g,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)(x,{variant:`outline`,onClick:()=>w(!1),disabled:m||g,children:`Cancel`}),(0,$.jsx)(x,{onClick:()=>void T(),disabled:m||g||!s.trim()||!u.trim(),children:m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):S?`Save Changes`:`Add Source`})]})]})]})}),(0,$.jsx)(ve,{open:y,onOpenChange:b,children:(0,$.jsxs)(pe,{children:[(0,$.jsxs)(_e,{children:[(0,$.jsx)(fe,{children:`Delete Skill Source`}),(0,$.jsxs)(de,{children:[`Are you sure you want to delete "`,n?.title,`"? This removes the source from your list but does not uninstall skills you already added.`]})]}),(0,$.jsxs)(he,{children:[(0,$.jsx)(ge,{disabled:g,children:`Cancel`}),(0,$.jsx)(me,{onClick:()=>void E(),disabled:g,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:g?`Deleting...`:`Delete`})]})]})})]})}var Tt=`https://tarsk.io/skills/list/`;function Et(e){let t=(0,Z.c)(20),{onSelectMode:n,manualDisabled:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(Fe,{asChild:!0,children:(0,$.jsxs)(x,{className:`gap-1`,children:[`Add Skill`,(0,$.jsx)(v,{className:`h-4 w-4 opacity-70`})]})}),t[0]=i):i=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(a.body,`gap-2`),t[1]=o):o=t[1];let s;t[2]===n?s=t[3]:(s=()=>n(`manual`),t[2]=n,t[3]=s);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(m,{className:`h-4 w-4 shrink-0`}),t[4]=l):l=t[4];let u;t[5]!==r||t[6]!==s?(u=(0,$.jsxs)(q,{className:o,disabled:r,onSelect:s,children:[l,`Manually Enter`]}),t[5]=r,t[6]=s,t[7]=u):u=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=c(a.body,`gap-2`),t[8]=f):f=t[8];let p;t[9]===n?p=t[10]:(p=()=>n(`url`),t[9]=n,t[10]=p);let h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(y,{className:`h-4 w-4 shrink-0`}),t[11]=h):h=t[11];let g;t[12]===p?g=t[13]:(g=(0,$.jsxs)(q,{className:f,onSelect:p,children:[h,`Via URL`]}),t[12]=p,t[13]=g);let _;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(ke,{}),t[14]=_):_=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=c(a.body,`gap-2`),t[15]=b):b=t[15];let S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsxs)(q,{className:b,onSelect:Dt,children:[(0,$.jsx)(d,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=S):S=t[16];let C;return t[17]!==u||t[18]!==g?(C=(0,$.jsxs)(je,{children:[i,(0,$.jsxs)(Ne,{align:`end`,className:`w-44`,children:[u,g,_,S]})]}),t[17]=u,t[18]=g,t[19]=C):C=t[19],C}function Dt(){E(Tt)}function Ot(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 kt(e){let t=(0,Z.c)(40),{open:n,onOpenChange:r,onSubmit:i}=e,[o,s]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=function(){s(``),u(null)},t[0]=d):d=t[0];let f=d,p;t[1]===r?p=t[2]:(p=function(e){e||f(),r(e)},t[1]=r,t[2]=p);let m=p,h,g;t[3]===n?(h=t[4],g=t[5]):(h=()=>{n&&f()},g=[n],t[3]=n,t[4]=h,t[5]=g),(0,Q.useEffect)(h,g);let _;t[6]!==m||t[7]!==i||t[8]!==o?(_=function(){let e=Ot(o);if(!e){u(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}i(e),m(!1)},t[6]=m,t[7]=i,t[8]=o,t[9]=_):_=t[9];let v=_,y;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsxs)(Ee,{children:[(0,$.jsx)(Y,{children:`Add Skill via URL`}),(0,$.jsx)(H,{children:`Paste the URL of a plugin archive. Its skills and MCP servers are installed into this project.`})]}),t[10]=y):y=t[10];let b;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(G,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=b):b=t[11];let S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>s(e.target.value),t[12]=S):S=t[12];let C;t[13]===v?C=t[14]:(C=e=>{e.key===`Enter`&&(e.preventDefault(),v())},t[13]=v,t[14]=C);let w;t[15]!==C||t[16]!==o?(w=(0,$.jsx)(z,{id:`add-skill-url`,placeholder:`https://example.com/my-plugin.zip`,value:o,onChange:S,autoFocus:!0,onKeyDown:C}),t[15]=C,t[16]=o,t[17]=w):w=t[17];let T;t[18]===l?T=t[19]:(T=l?(0,$.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:l}):null,t[18]=l,t[19]=T);let E;t[20]!==w||t[21]!==T?(E=(0,$.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,$.jsxs)(`div`,{className:`grid gap-2`,children:[b,w,T]})}),t[20]=w,t[21]=T,t[22]=E):E=t[22];let D;t[23]===m?D=t[24]:(D=(0,$.jsx)(x,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),t[23]=m,t[24]=D);let O;t[25]===o?O=t[26]:(O=o.trim(),t[25]=o,t[26]=O);let k=!O,A;t[27]!==v||t[28]!==k?(A=(0,$.jsx)(x,{onClick:v,disabled:k,children:`Continue`}),t[27]=v,t[28]=k,t[29]=A):A=t[29];let j;t[30]!==D||t[31]!==A?(j=(0,$.jsxs)(V,{children:[D,A]}),t[30]=D,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==E||t[34]!==j?(M=(0,$.jsxs)(Oe,{className:`sm:max-w-lg`,children:[y,E,j]}),t[33]=E,t[34]=j,t[35]=M):M=t[35];let N;return t[36]!==m||t[37]!==n||t[38]!==M?(N=(0,$.jsx)(Pe,{open:n,onOpenChange:m,children:M}),t[36]=m,t[37]=n,t[38]=M,t[39]=N):N=t[39],N}var At=`This skill uses no additional context as it is manually invoked`;function jt(e){return e.builtIn?`text-muted-foreground/50`:e.disableModelInvocation?`text-brand`:`text-foreground`}function Mt(e){return e.disableModelInvocation?At:`≈${o(e.description)} tokens of context`}function Nt(e){let t=(0,Z.c)(22),n,r,i,a,o,s;if(t[0]!==e){let{onClick:l,ariaLabel:u,...d}=e,p=(0,$.jsx)(f,{className:c(`h-4 w-4 shrink-0`,jt(d)),"aria-hidden":`true`});i=w,s=300,r=T,t[7]!==u||t[8]!==p||t[9]!==l?(o=(0,$.jsx)(S,{asChild:!0,children:l?(0,$.jsx)(`button`,{type:`button`,"aria-label":u,className:`shrink-0 cursor-pointer rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:e=>{e.stopPropagation(),l()},onKeyDown:Pt,children:p}):p}),t[7]=u,t[8]=p,t[9]=l,t[10]=o):o=t[10],n=C,a=Mt(d),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6];let l;t[11]!==n||t[12]!==a?(l=(0,$.jsx)(n,{children:a}),t[11]=n,t[12]=a,t[13]=l):l=t[13];let u;t[14]!==r||t[15]!==o||t[16]!==l?(u=(0,$.jsxs)(r,{children:[o,l]}),t[14]=r,t[15]=o,t[16]=l,t[17]=u):u=t[17];let d;return t[18]!==i||t[19]!==s||t[20]!==u?(d=(0,$.jsx)(i,{delayDuration:s,children:u}),t[18]=i,t[19]=s,t[20]=u,t[21]=d):d=t[21],d}function Pt(e){(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}function Ft(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(...Ft(n.children))}return t}function It(e){return`${e.disableModelInvocation?`Enable`:`Disable`} model invocation for ${e.name}`}function Lt(e){let t=(0,Z.c)(7),{items:n,onPreview:r}=e,i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>{let t=Ze(e.name);return(0,$.jsxs)(`div`,{className:`group flex min-h-13 items-center gap-3 px-3 py-2`,role:`button`,tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),r(e))},children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:c(a.label,`truncate`),children:t}),(0,$.jsx)(`p`,{className:c(a.caption,`truncate`),children:e.description})]}),(0,$.jsx)(w,{delayDuration:300,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(S,{asChild:!0,children:(0,$.jsx)(x,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0 opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto`,"aria-label":`Install ${t}`,onClick:t=>{t.stopPropagation(),r(e)},children:(0,$.jsx)(h,{className:`h-4 w-4`})})}),(0,$.jsx)(C,{children:`Install skill`})]})})]},e.id)},t[3]=r,t[4]=e),i=n.map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let o;return t[5]===i?o=t[6]:(o=(0,$.jsx)(`div`,{className:`divide-y divide-table-border`,children:i}),t[5]=i,t[6]=o),o}function Rt(e){let t=(0,Z.c)(24),{skills:n,threadId:r,onOpenSkill:i,onDelete:o,onAddManual:s,onAddUrl:l,onChangeModelInvocation:u}=e,d=!r,f;t[0]!==s||t[1]!==l?(f=e=>{e===`manual`?s():l()},t[0]=s,t[1]=l,t[2]=f):f=t[2];let p;t[3]!==d||t[4]!==f?(p=(0,$.jsx)(B,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,$.jsx)(Et,{manualDisabled:d,onSelectMode:f}),sticky:!1}),t[3]=d,t[4]=f,t[5]=p):p=t[5];let m;t[6]===r?m=t[7]:(m=!r&&(0,$.jsx)(De,{children:`Select a thread to add or install skills.`}),t[6]=r,t[7]=m);let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h={icon:g,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=h):h=t[8];let _;t[9]===u?_=t[10]:(_=e=>(0,$.jsxs)(`span`,{className:c(a.body,`flex min-w-0 items-center gap-2 text-left`),children:[(0,$.jsx)(Nt,{description:e.description,disableModelInvocation:e.disableModelInvocation,builtIn:e.virtual,onClick:e.virtual?void 0:()=>u(e),ariaLabel:It(e)}),(0,$.jsx)(`span`,{className:`truncate`,children:e.name})]}),t[9]=u,t[10]=_);let v;t[11]===i?v=t[12]:(v=e=>i(e.path),t[11]=i,t[12]=v);let y;t[13]!==o||t[14]!==n||t[15]!==_||t[16]!==v?(y=(0,$.jsx)(He,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:h,getKey:Vt,renderContent:_,onItemClick:v,itemClickLabel:Bt,onDelete:o,deleteAriaLabel:zt,deleteTooltip:`Remove this skill from the project`}),t[13]=o,t[14]=n,t[15]=_,t[16]=v,t[17]=y):y=t[17];let b;t[18]!==m||t[19]!==y?(b=(0,$.jsxs)(J,{className:`pt-6`,children:[m,y]}),t[18]=m,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==p||t[22]!==b?(x=(0,$.jsxs)(W,{className:`shrink-0`,children:[p,b]}),t[21]=p,t[22]=b,t[23]=x):x=t[23],x}function zt(e){return`Delete ${e.name}`}function Bt(e){return`Open ${e.name} in Files`}function Vt(e){return e.id}function Ht(e){let t=(0,Z.c)(42),{availableSearch:n,onSearchChange:r,selectedSourceId:i,onSourceChange:a,sources:o,selectedCustomSource:s,availableCatalogLoading:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p,onAddSource:m}=e,h;t[0]===s?h=t[1]:(h=Wt(s),t[0]=s,t[1]=h);let g=h,_=g.icon,v;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(S,{asChild:!0,children:(0,$.jsx)(`span`,{className:`cursor-help`,children:`Available Skills`})}),(0,$.jsx)(C,{children:`Browse and install skills from the catalog.`})]})}),t[2]=v):v=t[2];let y;t[3]!==n||t[4]!==r?(y=(0,$.jsx)(Ve,{placeholder:`Search`,value:n,onChange:r,className:`mb-0 w-64`}),t[3]=n,t[4]=r,t[5]=y):y=t[5];let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(Re,{className:`w-40`,"aria-label":`Skill source`,children:(0,$.jsx)(xe,{placeholder:`Default`})}),t[6]=b):b=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(U,{value:`default`,children:`Default`}),t[7]=E):E=t[7];let D;t[8]===o?D=t[9]:(D=o.map(Ut),t[8]=o,t[9]=D);let O;t[10]===D?O=t[11]:(O=(0,$.jsxs)(we,{children:[E,D]}),t[10]=D,t[11]=O);let k;t[12]!==a||t[13]!==i||t[14]!==O?(k=(0,$.jsxs)(Ce,{value:i,onValueChange:a,children:[b,O]}),t[12]=a,t[13]=i,t[14]=O,t[15]=k):k=t[15];let A;t[16]===_?A=t[17]:(A=(0,$.jsx)(_,{className:`h-4 w-4`}),t[16]=_,t[17]=A);let j;t[18]!==m||t[19]!==g.ariaLabel||t[20]!==A?(j=(0,$.jsx)(S,{asChild:!0,children:(0,$.jsx)(x,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:m,"aria-label":g.ariaLabel,children:A})}),t[18]=m,t[19]=g.ariaLabel,t[20]=A,t[21]=j):j=t[21];let M;t[22]===g.tooltip?M=t[23]:(M=(0,$.jsx)(C,{children:g.tooltip}),t[22]=g.tooltip,t[23]=M);let N;t[24]!==j||t[25]!==M?(N=(0,$.jsx)(w,{children:(0,$.jsxs)(T,{children:[j,M]})}),t[24]=j,t[25]=M,t[26]=N):N=t[26];let P;t[27]!==N||t[28]!==y||t[29]!==k?(P=(0,$.jsx)(B,{title:v,action:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y,k,N]}),sticky:!1}),t[27]=N,t[28]=y,t[29]=k,t[30]=P):P=t[30];let F;t[31]!==d||t[32]!==c||t[33]!==u||t[34]!==n||t[35]!==l||t[36]!==p||t[37]!==f?(F=(0,$.jsx)(J,{className:`pt-6`,children:(0,$.jsx)(Gt,{searchQuery:n,isLoadingCatalog:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p})}),t[31]=d,t[32]=c,t[33]=u,t[34]=n,t[35]=l,t[36]=p,t[37]=f,t[38]=F):F=t[38];let I;return t[39]!==P||t[40]!==F?(I=(0,$.jsxs)(W,{className:`shrink-0`,children:[P,F]}),t[39]=P,t[40]=F,t[41]=I):I=t[41],I}function Ut(e){return(0,$.jsx)(U,{value:e.id,children:e.title},e.id)}function Wt(e){return e?{ariaLabel:`Edit skill source`,tooltip:`Edit this custom skill source`,icon:p}:{ariaLabel:`Add skill source`,tooltip:`Add a custom skill source`,icon:u}}function Gt(e){let t=(0,Z.c)(11),{searchQuery:n,isLoadingCatalog:r,isDefaultSource:i,availablePopular:a,availableCatalog:o,onPreviewPopular:s,onPreviewCatalog:c}=e;if(r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ue,{centered:!0,containerClassName:`py-12`,label:`Loading skills...`}),t[0]=e):e=t[0],e}if(i){if(a.length===0){let e;return t[1]===n?e=t[2]:(e=(0,$.jsx)(X,{searchQuery:n,emptyLabel:`No available skills found.`}),t[1]=n,t[2]=e),e}let e;return t[3]!==a||t[4]!==s?(e=(0,$.jsx)(Lt,{items:a,onPreview:s}),t[3]=a,t[4]=s,t[5]=e):e=t[5],e}if(o.length===0){let e;return t[6]===n?e=t[7]:(e=(0,$.jsx)(X,{searchQuery:n,emptyLabel:`No available skills found.`}),t[6]=n,t[7]=e),e}let l;return t[8]!==o||t[9]!==c?(l=(0,$.jsx)(Lt,{items:o,onPreview:c}),t[8]=o,t[9]=c,t[10]=l):l=t[10],l}function Kt(e){return e?.disableModelInvocation?{title:`Enable model invocation?`,description:`"${e.name}" will be offered to the model automatically again, so its description counts towards the context window.`,actionLabel:`Enable`,nextDisableModelInvocation:!1}:{title:`Disable model invocation?`,description:`"${e?.name}" will no longer be offered to the model automatically, so its description stops counting towards the context window. Invoke it manually with /${e?.name}.`,actionLabel:`Disable`,nextDisableModelInvocation:!0}}function qt(e){let t=(0,Z.c)(24),{open:n,onOpenChange:r,skill:i,onConfirm:a}=e,o;t[0]===i?o=t[1]:(o=Kt(i),t[0]=i,t[1]=o);let s=o,c;t[2]===s.title?c=t[3]:(c=(0,$.jsx)(fe,{children:s.title}),t[2]=s.title,t[3]=c);let l;t[4]===s.description?l=t[5]:(l=(0,$.jsx)(de,{children:s.description}),t[4]=s.description,t[5]=l);let u;t[6]!==c||t[7]!==l?(u=(0,$.jsxs)(_e,{children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(ge,{children:`Cancel`}),t[9]=d):d=t[9];let f;t[10]!==s.nextDisableModelInvocation||t[11]!==a||t[12]!==i?(f=()=>{i&&a(i,s.nextDisableModelInvocation)},t[10]=s.nextDisableModelInvocation,t[11]=a,t[12]=i,t[13]=f):f=t[13];let p;t[14]!==s.actionLabel||t[15]!==f?(p=(0,$.jsxs)(he,{children:[d,(0,$.jsx)(me,{onClick:f,children:s.actionLabel})]}),t[14]=s.actionLabel,t[15]=f,t[16]=p):p=t[16];let m;t[17]!==u||t[18]!==p?(m=(0,$.jsxs)(pe,{children:[u,p]}),t[17]=u,t[18]=p,t[19]=m):m=t[19];let h;return t[20]!==r||t[21]!==n||t[22]!==m?(h=(0,$.jsx)(ve,{open:n,onOpenChange:r,children:m}),t[20]=r,t[21]=n,t[22]=m,t[23]=h):h=t[23],h}async function Jt(e,t){let n=nt(t.id);if(!e.threadId||e.installedFilePaths.has(n))return;let r=t.sourceId??(e.selectedSourceId==="default"?void 0:e.selectedSourceId);try{r?await L(e.threadId,r,t.id,tt(t.id)):await re(e.threadId,n,it(t)),e.setInstalledFilePaths(e=>new Set(e).add(n)),e.triggerExplorerRefresh(),e.reloadSkills(),R({title:`Skill installed`,description:t.name})}catch(e){throw R({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}}async function Yt(e,t,n){if(e.projectId)try{try{await k(e.projectId,t.name,n)}catch{if(!e.threadId)throw Error(`No thread selected to update this skill`);await O(e.threadId,t.name,n)}e.triggerExplorerRefresh(),await e.reloadSkills(),R({title:n?`Model invocation disabled`:`Model invocation enabled`,description:n?`${t.name} is now invoked manually with /${t.name}.`:`${t.name} is offered to the model again.`})}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to update skill`,variant:`destructive`})}}function Xt(e){return e?{title:`MCP server installed`,description:`Its MCP servers were added to this project.`}:{title:`Plugin installed`,description:`Its skills and MCP servers were added to this project.`}}function Zt(){let e=(0,Z.c)(128),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={findItems:Ft,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`},e[0]=t):t=e[0];let{selectedProjectId:n,selectedThreadId:r,items:i,loading:a,deleteConfirm:o,setDeleteConfirm:c,deleting:u,installedFilePaths:d,setInstalledFilePaths:f,loadItems:p,handleDelete:m,handleOpenInExplorer:h,triggerExplorerRefresh:g}=qe(t),_=s($t),v=_.find(e=>e.projectId===n)??null,{showAddDialog:y,setShowAddDialog:b,showUrlDialog:x,setShowUrlDialog:S,showAddSourceDialog:C,setShowAddSourceDialog:w,pluginImportUrl:T,setPluginImportUrl:E,previewSkill:D,setPreviewSkill:O,invocationSkill:k,showInvocationDialog:A,setShowInvocationDialog:j,openInvocationDialog:M,handlePreviewDialogOpenChange:N}=Qe(),{availableSearch:P,setAvailableSearch:F,availablePopular:I,availableCatalog:ee,availableCatalogLoading:te,isDefaultSource:ne,selectedCustomSource:re,sources:ie,selectedSourceId:L,setSelectedSourceId:ae,addSource:oe,updateSource:se,removeSource:ce,loadingPopularSkills:le}=Ct(d),ue;e[1]!==a||e[2]!==le?(ue=[a,le],e[1]=a,e[2]=le,e[3]=ue):ue=e[3];let de=Be(n?`${n}:${r??``}`:null,ue),fe;e[4]!==d||e[5]!==p||e[6]!==L||e[7]!==r||e[8]!==f||e[9]!==g?(fe=function(e){return Jt({threadId:r,selectedSourceId:L,installedFilePaths:d,setInstalledFilePaths:f,triggerExplorerRefresh:g,reloadSkills:p},e)},e[4]=d,e[5]=p,e[6]=L,e[7]=r,e[8]=f,e[9]=g,e[10]=fe):fe=e[10];let pe=fe,me;e[11]!==p||e[12]!==n||e[13]!==r||e[14]!==g?(me=function(e,t){return Yt({projectId:n,threadId:r,triggerExplorerRefresh:g,reloadSkills:p},e,t)},e[11]=p,e[12]=n,e[13]=r,e[14]=g,e[15]=me):me=e[15];let he=me,ge;e[16]===c?ge=e[17]:(ge=function(e){e||c(null)},e[16]=c,e[17]=ge);let _e=ge,ve;e[18]!==o||e[19]!==m?(ve=function(){o&&m(o)},e[18]=o,e[19]=m,e[20]=ve):ve=e[20];let be=ve;if(!n){let t;return e[21]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(ye,{children:`Select a project to manage skills.`}),e[21]=t):t=e[21],t}let xe;e[22]===b?xe=e[23]:(xe=()=>b(!0),e[22]=b,e[23]=xe);let z;e[24]===S?z=e[25]:(z=()=>S(!0),e[24]=S,e[25]=z);let B;e[26]!==h||e[27]!==M||e[28]!==r||e[29]!==c||e[30]!==i||e[31]!==xe||e[32]!==z?(B=(0,$.jsx)(Rt,{skills:i,threadId:r,onOpenSkill:h,onDelete:c,onAddManual:xe,onAddUrl:z,onChangeModelInvocation:M}),e[26]=h,e[27]=M,e[28]=r,e[29]=c,e[30]=i,e[31]=xe,e[32]=z,e[33]=B):B=e[33];let V;e[34]===O?V=e[35]:(V=e=>O(e),e[34]=O,e[35]=V);let H;e[36]!==L||e[37]!==O?(H=e=>O({...e,sourceId:e.sourceId??L}),e[36]=L,e[37]=O,e[38]=H):H=e[38];let Ce;e[39]===w?Ce=e[40]:(Ce=()=>w(!0),e[39]=w,e[40]=Ce);let we;e[41]!==ee||e[42]!==te||e[43]!==I||e[44]!==P||e[45]!==ne||e[46]!==re||e[47]!==L||e[48]!==F||e[49]!==ae||e[50]!==ie||e[51]!==H||e[52]!==Ce||e[53]!==V?(we=(0,$.jsx)(Ht,{availableSearch:P,onSearchChange:F,selectedSourceId:L,onSourceChange:ae,sources:ie,selectedCustomSource:re,availableCatalogLoading:te,isDefaultSource:ne,availablePopular:I,availableCatalog:ee,onPreviewPopular:V,onPreviewCatalog:H,onAddSource:Ce}),e[41]=ee,e[42]=te,e[43]=I,e[44]=P,e[45]=ne,e[46]=re,e[47]=L,e[48]=F,e[49]=ae,e[50]=ie,e[51]=H,e[52]=Ce,e[53]=V,e[54]=we):we=e[54];let U;e[55]!==de||e[56]!==we||e[57]!==B?(U=(0,$.jsxs)(Se,{loading:de,children:[B,we]}),e[55]=de,e[56]=we,e[57]=B,e[58]=U):U=e[58];let Te=D!==null,Ee=ne?void 0:L,W;e[59]!==pe||e[60]!==N||e[61]!==D||e[62]!==Te||e[63]!==Ee?(W=(0,$.jsx)(ut,{open:Te,onOpenChange:N,skill:D,catalogSourceId:Ee,onInstall:pe}),e[59]=pe,e[60]=N,e[61]=D,e[62]=Te,e[63]=Ee,e[64]=W):W=e[64];let G;e[65]!==he||e[66]!==k||e[67]!==j||e[68]!==A?(G=(0,$.jsx)(qt,{open:A,onOpenChange:j,skill:k,onConfirm:he}),e[65]=he,e[66]=k,e[67]=j,e[68]=A,e[69]=G):G=e[69];let De;e[70]===oe?De=e[71]:(De=e=>{oe(e),R({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},e[70]=oe,e[71]=De);let ke;e[72]===se?ke=e[73]:(ke=e=>{se(e),R({title:`Skill source updated`,description:`${e.title} has been saved.`})},e[72]=se,e[73]=ke);let K;e[74]===ce?K=e[75]:(K=e=>{ce(e),R({title:`Skill source removed`,description:`The custom source has been deleted.`})},e[74]=ce,e[75]=K);let je;e[76]!==re||e[77]!==w||e[78]!==C||e[79]!==De||e[80]!==ke||e[81]!==K?(je=(0,$.jsx)(wt,{open:C,onOpenChange:w,editingSource:re,onSourceAdded:De,onSourceUpdated:ke,onSourceDeleted:K}),e[76]=re,e[77]=w,e[78]=C,e[79]=De,e[80]=ke,e[81]=K,e[82]=je):je=e[82];let q;e[83]!==p||e[84]!==b||e[85]!==g?(q=()=>{b(!1),p(),g()},e[83]=p,e[84]=b,e[85]=g,e[86]=q):q=e[86];let Me;e[87]!==r||e[88]!==q?(Me=(0,$.jsx)(Oe,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,$.jsx)($e,{threadId:r,onSkillCreated:q})}),e[87]=r,e[88]=q,e[89]=Me):Me=e[89];let J;e[90]!==b||e[91]!==y||e[92]!==Me?(J=(0,$.jsx)(Pe,{open:y,onOpenChange:b,children:Me}),e[90]=b,e[91]=y,e[92]=Me,e[93]=J):J=e[93];let Y;e[94]===E?Y=e[95]:(Y=e=>E(e),e[94]=E,e[95]=Y);let Ne;e[96]!==S||e[97]!==x||e[98]!==Y?(Ne=(0,$.jsx)(kt,{open:x,onOpenChange:S,onSubmit:Y}),e[96]=S,e[97]=x,e[98]=Y,e[99]=Ne):Ne=e[99];let Fe=Ae,Ie=v?l(v):null,Le;e[100]===E?Le=e[101]:(Le=()=>E(null),e[100]=E,e[101]=Le);let Re;e[102]!==p||e[103]!==g?(Re=e=>{let{mcpOnly:t}=e;p(),g(),R(Xt(t))},e[102]=p,e[103]=g,e[104]=Re):Re=e[104];let X;e[105]!==Fe||e[106]!==T||e[107]!==_||e[108]!==n||e[109]!==Ie||e[110]!==Le||e[111]!==Re?(X=(0,$.jsx)(Fe,{url:T,projectId:n,projectName:Ie,projects:_,onSelectProject:Qt,onClose:Le,onInstalled:Re}),e[105]=Fe,e[106]=T,e[107]=_,e[108]=n,e[109]=Ie,e[110]=Le,e[111]=Re,e[112]=X):X=e[112];let Ve=o!==null,He=`Are you sure you want to delete the skill "${o?.name}"? This action cannot be undone.`,Ue;e[113]!==u||e[114]!==be||e[115]!==_e||e[116]!==Ve||e[117]!==He?(Ue=(0,$.jsx)(ze,{open:Ve,onOpenChange:_e,title:`Delete Skill`,description:He,onConfirm:be,confirming:u}),e[113]=u,e[114]=be,e[115]=_e,e[116]=Ve,e[117]=He,e[118]=Ue):Ue=e[118];let We;return e[119]!==U||e[120]!==W||e[121]!==G||e[122]!==je||e[123]!==J||e[124]!==Ne||e[125]!==X||e[126]!==Ue?(We=(0,$.jsxs)($.Fragment,{children:[U,W,G,je,J,Ne,X,Ue]}),e[119]=U,e[120]=W,e[121]=G,e[122]=je,e[123]=J,e[124]=Ne,e[125]=X,e[126]=Ue,e[127]=We):We=e[127],We}function Qt(){}function $t(e){return e.projects}export{Zt as SettingsSkillsView,Zt as default};
|