tarsk 0.5.69 → 0.5.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/index.js +276 -165
  2. package/dist/public/assets/{account-view-Chzj6v7a.js → account-view-B3-h2Omm.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-CLYxQdrK.js → alert-dialog-hMK0ERPv.js} +1 -1
  4. package/dist/public/assets/{async-error-boundary-CM6LU7nT.js → async-error-boundary-Ca8lx8YM.js} +1 -1
  5. package/dist/public/assets/{browser-tab--1iEoJGu.js → browser-tab-C6INAmPZ.js} +1 -1
  6. package/dist/public/assets/{chat-dock-context-Gg1jpamu.js → chat-dock-context-CjVDawH_.js} +1 -1
  7. package/dist/public/assets/{commit-dialog-BfdxNX_T.js → commit-dialog-ClrhP7Jd.js} +1 -1
  8. package/dist/public/assets/{commit-error-dialog-DrsDKL-B.js → commit-error-dialog-Clt0BgiE.js} +1 -1
  9. package/dist/public/assets/{commit-method-fields-o-xw2faT.js → commit-method-fields-BwX9cAYJ.js} +1 -1
  10. package/dist/public/assets/{context-menu-BLvLpqq7.js → context-menu-C5sSYyMw.js} +1 -1
  11. package/dist/public/assets/{conversation-history-view-ukfe_7qw.js → conversation-history-view-CcBBgh8V.js} +1 -1
  12. package/dist/public/assets/create-project-dialog-CPz95RZY.js +6 -0
  13. package/dist/public/assets/{create-repo-dialog-CkFACtMf.js → create-repo-dialog-CUm5YAtV.js} +1 -1
  14. package/dist/public/assets/{delete-confirm-dialog-D1zjctrX.js → delete-confirm-dialog-CUm3m7WO.js} +1 -1
  15. package/dist/public/assets/{diff-view-Cxf7v9t1.js → diff-view-BJga_mCE.js} +1 -1
  16. package/dist/public/assets/{explorer-tab-view-LkT0bDcR.js → explorer-tab-view-D9bH6cb1.js} +2 -2
  17. package/dist/public/assets/{explorer-tree-B6EZUVTn.js → explorer-tree-Bciwq7MW.js} +1 -1
  18. package/dist/public/assets/{explorer-view-D5y8Uxoi.js → explorer-view-Ufv--EPU.js} +1 -1
  19. package/dist/public/assets/{git-history-dialog-X6sVwgPT.js → git-history-dialog-NdDkNMAP.js} +1 -1
  20. package/dist/public/assets/{index-CJCQ4bTo.js → index-CsUbYVa9.js} +16 -16
  21. package/dist/public/assets/{mcp-server-card-DPakHrG9.js → mcp-server-card-CzXVgu1Z.js} +1 -1
  22. package/dist/public/assets/{merged-pr-dialog-C3euJvCu.js → merged-pr-dialog-ClxYJI_m.js} +1 -1
  23. package/dist/public/assets/{model-list-controls-2JtkzWsp.js → model-list-controls-KE0f0BLj.js} +1 -1
  24. package/dist/public/assets/{monaco-setup-b-rhUj5t.js → monaco-setup-Bpe6FBYw.js} +1 -1
  25. package/dist/public/assets/{onboarding-KBcwP-kU.js → onboarding-DTF0L4Nt.js} +1 -1
  26. package/dist/public/assets/{project-env-vars-view-D60J_-qQ.js → project-env-vars-view-xuiGkrnJ.js} +1 -1
  27. package/dist/public/assets/{project-model-aliases-view-EClnOgBH.js → project-model-aliases-view-BdbzKmYL.js} +1 -1
  28. package/dist/public/assets/{project-settings-view-Cb0iiyad.js → project-settings-view-CuwlpN98.js} +1 -1
  29. package/dist/public/assets/{project-tools-view-B_WnVICB.js → project-tools-view-kZysTxYq.js} +1 -1
  30. package/dist/public/assets/{providers-list-view-CYy82_hl.js → providers-list-view-BF3ctCjJ.js} +1 -1
  31. package/dist/public/assets/{pull-request-dialog-CitbRcub.js → pull-request-dialog-BC_tPcL-.js} +1 -1
  32. package/dist/public/assets/{pull-with-changes-dialog-CpgHqvKf.js → pull-with-changes-dialog-CaOxy8gu.js} +1 -1
  33. package/dist/public/assets/{push-before-pr-dialog-CrcNZDLb.js → push-before-pr-dialog-GZEUiZUR.js} +1 -1
  34. package/dist/public/assets/{react-vendor-7n7LyU5o.js → react-vendor-CCZMLxmy.js} +1 -1
  35. package/dist/public/assets/{settings-general-view-72s5xgPj.js → settings-general-view-CscBURgS.js} +1 -1
  36. package/dist/public/assets/{settings-instructions-view-DN4-73KP.js → settings-instructions-view-DcmFP_43.js} +1 -1
  37. package/dist/public/assets/{settings-list-CWdsaJKC.js → settings-list-XkmhqNbT.js} +1 -1
  38. package/dist/public/assets/{settings-logs-view-CkkVgGvv.js → settings-logs-view-CcjSlyGf.js} +1 -1
  39. package/dist/public/assets/{settings-mcp-servers-view-B8_vnfl6.js → settings-mcp-servers-view-dtuAjs13.js} +1 -1
  40. package/dist/public/assets/{settings-models-view-xIRY7PvW.js → settings-models-view-BxcooRk0.js} +1 -1
  41. package/dist/public/assets/{settings-rules-view-DIk0ghSW.js → settings-rules-view-C-ykSCar.js} +1 -1
  42. package/dist/public/assets/{settings-skills-view-qWbr0Vl2.js → settings-skills-view-B3mgDInQ.js} +1 -1
  43. package/dist/public/assets/{settings-slack-view-RFLP0USW.js → settings-slack-view-CppRZhMV.js} +1 -1
  44. package/dist/public/assets/{settings-slash-commands-view-zFWoR_R7.js → settings-slash-commands-view-DTjTThgi.js} +1 -1
  45. package/dist/public/assets/{settings-statistics-view-BgrzVn4R.js → settings-statistics-view-B88qkfOC.js} +1 -1
  46. package/dist/public/assets/{settings-storage-view-BS2k7E74.js → settings-storage-view-DR7vf1Zh.js} +1 -1
  47. package/dist/public/assets/{settings-subagents-view-BZr1NkVp.js → settings-subagents-view-B7vHT4_J.js} +1 -1
  48. package/dist/public/assets/{settings-system-prompt-view-mQErde93.js → settings-system-prompt-view-D5fjsQT6.js} +1 -1
  49. package/dist/public/assets/{settings-view-D4-XZz2V.js → settings-view-DOMStvOg.js} +2 -2
  50. package/dist/public/assets/{tasks-view-DgkXglqW.js → tasks-view-KcH0lX_t.js} +2 -2
  51. package/dist/public/assets/{terminal-panel-DCaBWV04.js → terminal-panel-ozKXkKxm.js} +1 -1
  52. package/dist/public/assets/{ui-components-1WsgZqWa.js → ui-components-D63KPVFX.js} +1 -1
  53. package/dist/public/assets/{use-active-dock-panel-instance-B9ao_JH2.js → use-active-dock-panel-instance-CN8Djesu.js} +1 -1
  54. package/dist/public/assets/{use-installed-ai-files-GpG9ZL8U.js → use-installed-ai-files-Bx9lPbQB.js} +1 -1
  55. package/dist/public/assets/{web-D7CwlITA.js → web-BdMnTk6x.js} +1 -1
  56. package/dist/public/assets/{web-BuYdGVW8.js → web-Brg1tgLR.js} +1 -1
  57. package/dist/public/assets/{web-CEfF0992.js → web-DUuz6a51.js} +1 -1
  58. package/dist/public/assets/{web-yeAPC2wm.js → web-DdKg_e2t.js} +1 -1
  59. package/dist/public/index.html +5 -5
  60. package/package.json +1 -1
  61. package/dist/public/assets/create-project-dialog-DrXo61FQ.js +0 -6
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,f as i,hr as a,i as o,ki as s,nn as c,rn as l,yt as u}from"./interactive-BrHVRHmQ.js";import{Wt as d}from"./react-vendor-7n7LyU5o.js";import{Ci as f,Eo as p,dt as m,mt as h,rt as g,st as _,ur as v,ut as y,x as b}from"./onboarding-KBcwP-kU.js";import{t as x}from"./use-toast-hxHsVv6a.js";import{t as S}from"./use-settings-page-loading-BU2CDnfE.js";var C=n(),w=e(s(),1),T=t();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:s}=e,u=a(n.name),[d,f]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{u||f(!1)},[u]);let g=b,_=u&&!d?`password`:`text`,v=n.value,y;t[0]!==r||t[1]!==s?(y=e=>s(r,e.target.value),t[0]=r,t[1]=s,t[2]=y):y=t[2];let x=o(`font-mono`,u&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==y||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:v,onChange:y,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=y,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==u||t[13]!==i||t[14]!==f||t[15]!==d?(E=u?(0,T.jsx)(p,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>f(D),disabled:i||!m,children:d?(0,T.jsx)(l,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=u,t[13]=i,t[14]=f,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O({projectId:e}){let t=d(),[n,a]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await v(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));a(t),s(t)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[c]);function A(){a(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){a(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){a(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){a(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){D(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await f(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}return e?(0,T.jsx)(_,{loading:k,children:(0,T.jsxs)(h,{className:`shrink-0`,children:[(0,T.jsx)(g,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(p,{variant:`ghost`,size:`sm`,onClick:A,disabled:c,children:`Add variable`}),(0,T.jsx)(p,{onClick:()=>void F(),disabled:C||c,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(m,{className:`max-w-none pt-6`,children:n.length===0?(0,T.jsx)(`p`,{className:r.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(b,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(p,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||C,children:(0,T.jsx)(i,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(y,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,f as i,hr as a,i as o,ki as s,nn as c,rn as l,yt as u}from"./interactive-BrHVRHmQ.js";import{Wt as d}from"./react-vendor-CCZMLxmy.js";import{Ci as f,Eo as p,dt as m,mt as h,rt as g,st as _,ur as v,ut as y,x as b}from"./onboarding-DTF0L4Nt.js";import{t as x}from"./use-toast-hxHsVv6a.js";import{t as S}from"./use-settings-page-loading-BU2CDnfE.js";var C=n(),w=e(s(),1),T=t();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:s}=e,u=a(n.name),[d,f]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{u||f(!1)},[u]);let g=b,_=u&&!d?`password`:`text`,v=n.value,y;t[0]!==r||t[1]!==s?(y=e=>s(r,e.target.value),t[0]=r,t[1]=s,t[2]=y):y=t[2];let x=o(`font-mono`,u&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==y||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:v,onChange:y,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=y,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==u||t[13]!==i||t[14]!==f||t[15]!==d?(E=u?(0,T.jsx)(p,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>f(D),disabled:i||!m,children:d?(0,T.jsx)(l,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=u,t[13]=i,t[14]=f,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O({projectId:e}){let t=d(),[n,a]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await v(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));a(t),s(t)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[c]);function A(){a(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){a(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){a(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){a(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){D(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await f(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}return e?(0,T.jsx)(_,{loading:k,children:(0,T.jsxs)(h,{className:`shrink-0`,children:[(0,T.jsx)(g,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(p,{variant:`ghost`,size:`sm`,onClick:A,disabled:c,children:`Add variable`}),(0,T.jsx)(p,{onClick:()=>void F(),disabled:C||c,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(m,{className:`max-w-none pt-6`,children:n.length===0?(0,T.jsx)(`p`,{className:r.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(b,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(p,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||C,children:(0,T.jsx)(i,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(y,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Di as n,Oi as r,Rr as i,Ti as a,_i as o,gi as s,hi as c,i as l,ki as u,mi as d,pi as f,wi as p,yt as m}from"./interactive-BrHVRHmQ.js";import{Wt as h}from"./react-vendor-7n7LyU5o.js";import{Eo as g,Ti as _,Wn as v,_ as y,cr as b,dt as x,g as S,h as C,lt as w,m as T,mt as E,p as D,rt as O,st as k,tt as A,ut as j,v as M,w as N}from"./onboarding-KBcwP-kU.js";import{t as P}from"./use-toast-hxHsVv6a.js";import{t as F}from"./use-settings-page-loading-BU2CDnfE.js";var I=e(u(),1),L=r(),R=n(),z=`__unspecified__`,B=`__default__`;function V(e){let t=(0,L.c)(20),{value:n,onChange:r,enabledModels:i,disabled:l}=e,u=l===void 0?!1:l,m;if(t[0]!==i){m=new Map;for(let e of i){let t=e.provider??`other`,n=m.get(t);n?n.push(e):m.set(t,[e])}t[0]=i,t[1]=m}else m=t[1];let h=m,g;t[2]!==r||t[3]!==n?(g=function(e,t){let i={...n};if(t===z){delete i[e],r(i);return}let a=s(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=g):g=t[4];let _=g,v;t[5]===i?v=t[6]:(v=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=v);let b=v,x;t[7]!==r||t[8]!==n?(x=function(e,t){let i=n[e];if(!i)return;let o={...i};if(t===B)delete o.reasoningEffort;else if(a(t))o.reasoningEffort=t;else return;r({...n,[e]:o})},t[7]=r,t[8]=n,t[9]=x):x=t[9];let E=x,O;t[10]!==u||t[11]!==i||t[12]!==b||t[13]!==_||t[14]!==E||t[15]!==h||t[16]!==n?(O=c.map(e=>{let t=n[e],r=t?o(t):z,a=b(t)?.supportedReasoningEfforts??[];return(0,R.jsx)(A,{title:d[e],description:f[e],children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsxs)(D,{value:r,onValueChange:t=>_(e,t),disabled:u,children:[(0,R.jsx)(y,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,R.jsx)(M,{placeholder:`Unspecified`})}),(0,R.jsxs)(T,{children:[(0,R.jsx)(C,{value:z,children:`Unspecified`}),i.length>0&&(0,R.jsx)(S,{}),[...h.entries()].map(U)]})]}),t&&a.length>0&&(0,R.jsxs)(D,{value:t.reasoningEffort??B,onValueChange:t=>E(e,t),disabled:u,children:[(0,R.jsx)(y,{id:`model-alias-${e}-reasoning`,className:`w-full min-w-0`,children:(0,R.jsx)(M,{placeholder:`Model default`})}),(0,R.jsxs)(T,{children:[(0,R.jsx)(C,{value:B,children:`Model default`}),(0,R.jsx)(C,{value:`off`,children:p(`off`)}),a.map(H)]})]})]})},e)}),t[10]=u,t[11]=i,t[12]=b,t[13]=_,t[14]=E,t[15]=h,t[16]=n,t[17]=O):O=t[17];let k;return t[18]===O?k=t[19]:(k=(0,R.jsx)(w,{id:`model-aliases`,children:O}),t[18]=O,t[19]=k),k}function H(e){return(0,R.jsx)(C,{value:e,children:p(e)},e)}function U(e){let[t,n]=e;return(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:l(i.dropdownGroupHeading,`px-2 py-1.5 uppercase`),children:t}),n.map(e=>{let n=o({provider:e.provider??t,model:e.id});return(0,R.jsx)(C,{value:n,children:N(e.id)},n)})]},t)}function W(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?N(e.id).localeCompare(N(t.id)):n})}function G({projectId:e,onProjectUpdated:n}){let r=h(),[i,a]=(0,I.useState)({}),[o,s]=(0,I.useState)({}),[c,l]=(0,I.useState)([]),[u,d]=(0,I.useState)(!0),[f,p]=(0,I.useState)(!1),y=(0,I.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let[t,n]=await Promise.all([b(e),v().catch(()=>({}))]),r=t.modelAliases??{};l(W(Object.values(n).flat())),a(r),s(r)}catch(e){P({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{d(!1)}},[e]);(0,I.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,I.useEffect)(()=>{y()},[y]);let S=F(e,[u]);function C(){return JSON.stringify(i)!==JSON.stringify(o)}async function w(){if(!(!e||!C())){p(!0);try{let a=Object.keys(i).length>0?i:void 0;if(a){let e=await v();t(a,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await _(e,{modelAliases:a??null}),s(i),n&&await n(),await y(),r(`/`)}catch(e){P({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{p(!1)}}}return e?(0,R.jsx)(k,{loading:S,children:(0,R.jsxs)(E,{className:`shrink-0`,children:[(0,R.jsx)(O,{title:`Model Aliases`,description:`Map 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,R.jsx)(g,{onClick:()=>void w(),disabled:f||u,children:f?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(m,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,R.jsx)(x,{className:`max-w-none pt-6`,children:(0,R.jsx)(V,{value:i,onChange:a,enabledModels:c,disabled:u||f})})]})}):(0,R.jsx)(j,{title:`No project selected`,children:`Please select a project from the sidebar to configure model aliases.`})}export{G as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ci as t,Di as n,Oi as r,Rr as i,Ti as a,_i as o,gi as s,hi as c,i as l,ki as u,mi as d,pi as f,wi as p,yt as m}from"./interactive-BrHVRHmQ.js";import{Wt as h}from"./react-vendor-CCZMLxmy.js";import{Eo as g,Ti as _,Wn as v,_ as y,cr as b,dt as x,g as S,h as C,lt as w,m as T,mt as E,p as D,rt as O,st as k,tt as A,ut as j,v as M,w as N}from"./onboarding-DTF0L4Nt.js";import{t as P}from"./use-toast-hxHsVv6a.js";import{t as F}from"./use-settings-page-loading-BU2CDnfE.js";var I=e(u(),1),L=r(),R=n(),z=`__unspecified__`,B=`__default__`;function V(e){let t=(0,L.c)(20),{value:n,onChange:r,enabledModels:i,disabled:l}=e,u=l===void 0?!1:l,m;if(t[0]!==i){m=new Map;for(let e of i){let t=e.provider??`other`,n=m.get(t);n?n.push(e):m.set(t,[e])}t[0]=i,t[1]=m}else m=t[1];let h=m,g;t[2]!==r||t[3]!==n?(g=function(e,t){let i={...n};if(t===z){delete i[e],r(i);return}let a=s(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=g):g=t[4];let _=g,v;t[5]===i?v=t[6]:(v=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=v);let b=v,x;t[7]!==r||t[8]!==n?(x=function(e,t){let i=n[e];if(!i)return;let o={...i};if(t===B)delete o.reasoningEffort;else if(a(t))o.reasoningEffort=t;else return;r({...n,[e]:o})},t[7]=r,t[8]=n,t[9]=x):x=t[9];let E=x,O;t[10]!==u||t[11]!==i||t[12]!==b||t[13]!==_||t[14]!==E||t[15]!==h||t[16]!==n?(O=c.map(e=>{let t=n[e],r=t?o(t):z,a=b(t)?.supportedReasoningEfforts??[];return(0,R.jsx)(A,{title:d[e],description:f[e],children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsxs)(D,{value:r,onValueChange:t=>_(e,t),disabled:u,children:[(0,R.jsx)(y,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,R.jsx)(M,{placeholder:`Unspecified`})}),(0,R.jsxs)(T,{children:[(0,R.jsx)(C,{value:z,children:`Unspecified`}),i.length>0&&(0,R.jsx)(S,{}),[...h.entries()].map(U)]})]}),t&&a.length>0&&(0,R.jsxs)(D,{value:t.reasoningEffort??B,onValueChange:t=>E(e,t),disabled:u,children:[(0,R.jsx)(y,{id:`model-alias-${e}-reasoning`,className:`w-full min-w-0`,children:(0,R.jsx)(M,{placeholder:`Model default`})}),(0,R.jsxs)(T,{children:[(0,R.jsx)(C,{value:B,children:`Model default`}),(0,R.jsx)(C,{value:`off`,children:p(`off`)}),a.map(H)]})]})]})},e)}),t[10]=u,t[11]=i,t[12]=b,t[13]=_,t[14]=E,t[15]=h,t[16]=n,t[17]=O):O=t[17];let k;return t[18]===O?k=t[19]:(k=(0,R.jsx)(w,{id:`model-aliases`,children:O}),t[18]=O,t[19]=k),k}function H(e){return(0,R.jsx)(C,{value:e,children:p(e)},e)}function U(e){let[t,n]=e;return(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:l(i.dropdownGroupHeading,`px-2 py-1.5 uppercase`),children:t}),n.map(e=>{let n=o({provider:e.provider??t,model:e.id});return(0,R.jsx)(C,{value:n,children:N(e.id)},n)})]},t)}function W(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?N(e.id).localeCompare(N(t.id)):n})}function G({projectId:e,onProjectUpdated:n}){let r=h(),[i,a]=(0,I.useState)({}),[o,s]=(0,I.useState)({}),[c,l]=(0,I.useState)([]),[u,d]=(0,I.useState)(!0),[f,p]=(0,I.useState)(!1),y=(0,I.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let[t,n]=await Promise.all([b(e),v().catch(()=>({}))]),r=t.modelAliases??{};l(W(Object.values(n).flat())),a(r),s(r)}catch(e){P({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{d(!1)}},[e]);(0,I.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,I.useEffect)(()=>{y()},[y]);let S=F(e,[u]);function C(){return JSON.stringify(i)!==JSON.stringify(o)}async function w(){if(!(!e||!C())){p(!0);try{let a=Object.keys(i).length>0?i:void 0;if(a){let e=await v();t(a,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await _(e,{modelAliases:a??null}),s(i),n&&await n(),await y(),r(`/`)}catch(e){P({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{p(!1)}}}return e?(0,R.jsx)(k,{loading:S,children:(0,R.jsxs)(E,{className:`shrink-0`,children:[(0,R.jsx)(O,{title:`Model Aliases`,description:`Map 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,R.jsx)(g,{onClick:()=>void w(),disabled:f||u,children:f?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(m,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,R.jsx)(x,{className:`max-w-none pt-6`,children:(0,R.jsx)(V,{value:i,onChange:a,enabledModels:c,disabled:u||f})})]})}):(0,R.jsx)(j,{title:`No project selected`,children:`Please select a project from the sidebar to configure model aliases.`})}export{G as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,Rt as i,i as a,ii as o,ki as s,yt as c}from"./interactive-BrHVRHmQ.js";import{Wt as l}from"./react-vendor-7n7LyU5o.js";import{Ca as u,Ei as d,Eo as f,Si as p,Ti as m,b as h,cr as g,dt as ee,it as te,lt as ne,mt as re,rt as ie,st as ae,tt as _,ut as oe,x as se}from"./onboarding-KBcwP-kU.js";import{t as v}from"./use-toast-hxHsVv6a.js";import{U as ce,ft as le,i as ue,o as y}from"./index-CJCQ4bTo.js";import{i as de}from"./commit-method-fields-o-xw2faT.js";import{a as fe,n as b,r as pe,t as x}from"./context-menu-BLvLpqq7.js";import{t as me}from"./use-settings-page-loading-BU2CDnfE.js";var S=n(),C=e(s(),1),w=t();function he(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 ge(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await g(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setValue(n.setupScript??``),t.setValidationScript(n.validationScript??``),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.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalProjectIcon(n.projectIcon??null)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function T(e,t){try{let n=await he(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){v({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function _e(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await T(r,t)}finally{URL.revokeObjectURL(r)}}async function ve(e,t,n){n(!0);try{let n=await p(e);n.runCommand?(t(n.runCommand),v({title:`Success`,description:`Suggested: ${n.runCommand}`})):v({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function E(e,t,n){t!==n&&await d(e,t)}async function ye(e,t,n,r,i){await m(e,{setupScript:t.trim()||null,validationScript:n.trim()||null,runCommand:r.trim()||null,commitMethod:i})}async function be(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await m(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function xe(e,t,n){t!==n&&await m(e,{useBuiltInBrowser:t})}async function D(e,t,n){t!==n&&await m(e,{projectIcon:t})}async function Se(e,t,n,r,i,a){n.setSaving(!0);try{await E(e,t.name,t.originalName),await ye(e,t.value,t.validationScript,t.runCmd,t.commitMethod),await be(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await xe(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),await D(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function Ce(e){let t=(0,S.c)(10),{allowAllCommands:n,patterns:i,disabled:o,onRemove:s}=e;if(n||i.length===0)return null;let c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,w.jsx)(h,{children:`Allowed command patterns`}),t[0]=c):c=t[0];let l;if(t[1]!==o||t[2]!==s||t[3]!==i){let e;t[5]!==o||t[6]!==s?(e=e=>(0,w.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,w.jsx)(`code`,{className:a(r.mono,r.bodyMuted),children:e}),(0,w.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,disabled:o,onClick:()=>s(e),children:`Remove`})]},e),t[5]=o,t[6]=s,t[7]=e):e=t[7],l=i.map(e),t[1]=o,t[2]=s,t[3]=i,t[4]=l}else l=t[4];let u;return t[8]===l?u=t[9]:(u=(0,w.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[c,(0,w.jsx)(`ul`,{className:`space-y-1`,children:l})]}),t[8]=l,t[9]=u),u}function we(e){let t=(0,S.c)(21),{projectIcon:n,disabled:r,inputRef:a,onFileChange:o,onButtonClick:s,onRemove:c}=e,l;t[0]!==r||t[1]!==a||t[2]!==o?(l=(0,w.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:r}),t[0]=r,t[1]=a,t[2]=o,t[3]=l):l=t[3];let u=n?`Change project icon`:`Choose project icon`,d;t[4]===n?d=t[5]:(d=n?(0,w.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,w.jsx)(i,{className:`h-4 w-4 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=d);let f;t[6]!==r||t[7]!==s||t[8]!==u||t[9]!==d?(f=(0,w.jsx)(fe,{asChild:!0,children:(0,w.jsx)(`button`,{type:`button`,className:`flex h-8 w-8 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:s,disabled:r,"aria-label":u,children:d})}),t[6]=r,t[7]=s,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]!==r||t[12]!==c||t[13]!==n?(p=n&&(0,w.jsx)(b,{children:(0,w.jsx)(pe,{disabled:r,onSelect:c,children:`Remove`})}),t[11]=r,t[12]=c,t[13]=n,t[14]=p):p=t[14];let m;t[15]!==f||t[16]!==p?(m=(0,w.jsxs)(x,{children:[f,p]}),t[15]=f,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==l||t[19]!==m?(h=(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,m]}),t[18]=l,t[19]=m,t[20]=h):h=t[20],h}function Te(e){let t=(0,S.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,w.jsxs)(w.Fragment,{children:[(0,w.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,w.jsx)(f,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Ee(e,t,n){let r=(0,S.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return T(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!u())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,C.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return _e(t,e)},r[5]=e,r[6]=c);let l=c,d;r[7]!==n||r[8]!==t?(d=function(){u()&&t?y(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=d):d=r[9];let f=d,p;return r[10]!==f||r[11]!==l?(p={handleProjectIconChange:l,handleProjectIconButtonClick:f},r[10]=f,r[11]=l,r[12]=p):p=r[12],p}function De(e){let t=(0,S.c)(117),{projectId:n,onProjectUpdated:i}=e,s=l(),u=ue(),[d,p]=(0,C.useState)(``),[m,h]=(0,C.useState)(``),[g,v]=(0,C.useState)(``),[y,fe]=(0,C.useState)(o.PullRequest),[b,pe]=(0,C.useState)(``),[x,he]=(0,C.useState)(!1),[T,_e]=(0,C.useState)(!1),[E,ye]=(0,C.useState)(!0),[be,xe]=(0,C.useState)(``),[D,De]=(0,C.useState)(!0),Oe;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=[],t[0]=Oe):Oe=t[0];let[O,ke]=(0,C.useState)(Oe),[Ae,je]=(0,C.useState)(!0),Me;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(Me=[],t[1]=Me):Me=t[1];let[Ne,Pe]=(0,C.useState)(Me),[k,Fe]=(0,C.useState)(!0),[Ie,Le]=(0,C.useState)(!0),[A,Re]=(0,C.useState)(null),[ze,Be]=(0,C.useState)(null),[Ve,He]=(0,C.useState)(null),Ue=(0,C.useRef)(null),We;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(We={setProjectPath:He,setName:p,setValue:h,setRunCmd:v,setCommitMethod:fe,setValidationScript:pe,setAllowAllCommands:De,setAllowedCommandPatterns:ke,setUseBuiltInBrowser:Fe,setProjectIcon:Re,setOriginalName:xe,setOriginalAllowAllCommands:je,setOriginalAllowedCommandPatterns:Pe,setOriginalUseBuiltInBrowser:Le,setOriginalProjectIcon:Be,setLoading:ye,setSaving:he},t[2]=We):We=t[2];let Ge=We,j;t[3]===n?j=t[4]:(j=()=>ge(n,Ge),t[3]=n,t[4]=j);let M=j,Ke,qe;t[5]===n?(Ke=t[6],qe=t[7]):(Ke=()=>{n&&ye(!0)},qe=[n],t[5]=n,t[6]=Ke,t[7]=qe),(0,C.useLayoutEffect)(Ke,qe);let Je,Ye;t[8]===M?(Je=t[9],Ye=t[10]):(Je=()=>{M()},Ye=[M],t[8]=M,t[9]=Je,t[10]=Ye),(0,C.useEffect)(Je,Ye);let Xe;t[11]===E?Xe=t[12]:(Xe=[E],t[11]=E,t[12]=Xe);let Ze=me(n,Xe),Qe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=function(e){fe(e)},t[13]=Qe):Qe=t[13];let $e=Qe,{handleProjectIconChange:et,handleProjectIconButtonClick:tt}=Ee(Re,Ve,Ue),nt;t[14]===n?nt=t[15]:(nt=async()=>{n&&await ve(n,v,_e)},t[14]=n,t[15]=nt);let rt=nt,it;t[16]!==D||t[17]!==O||t[18]!==y||t[19]!==M||t[20]!==d||t[21]!==s||t[22]!==i||t[23]!==Ae||t[24]!==Ne||t[25]!==be||t[26]!==ze||t[27]!==Ie||t[28]!==A||t[29]!==n||t[30]!==g||t[31]!==k||t[32]!==b||t[33]!==m?(it=async()=>{n&&await Se(n,{name:d,value:m,runCmd:g,commitMethod:y,validationScript:b,allowAllCommands:D,allowedCommandPatterns:O,useBuiltInBrowser:k,projectIcon:A,originalName:be,originalAllowAllCommands:Ae,originalAllowedCommandPatterns:Ne,originalUseBuiltInBrowser:Ie,originalProjectIcon:ze},Ge,i,s,M)},t[16]=D,t[17]=O,t[18]=y,t[19]=M,t[20]=d,t[21]=s,t[22]=i,t[23]=Ae,t[24]=Ne,t[25]=be,t[26]=ze,t[27]=Ie,t[28]=A,t[29]=n,t[30]=g,t[31]=k,t[32]=b,t[33]=m,t[34]=it):it=t[34];let at=it,N=E||x,ot=E||T;if(!n){let e;return t[35]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,w.jsx)(oe,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[35]=e):e=t[35],e}let P;t[36]!==N||t[37]!==at||t[38]!==x?(P=(0,w.jsx)(ie,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,w.jsx)(Te,{saving:x,disabled:N,onClick:at}),sticky:!1}),t[36]=N,t[37]=at,t[38]=x,t[39]=P):P=t[39];let st;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(st=e=>p(e.target.value),t[40]=st):st=t[40];let F;t[41]!==E||t[42]!==d?(F=(0,w.jsx)(_,{title:`Project Name`,children:(0,w.jsx)(se,{id:`projectName`,value:d,onChange:st,placeholder:`Enter project name`,disabled:E})}),t[41]=E,t[42]=d,t[43]=F):F=t[43];let ct;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ct=e=>h(e.target.value),t[44]=ct):ct=t[44];let I;t[45]!==E||t[46]!==m?(I=(0,w.jsx)(_,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,w.jsx)(ce,{id:`setupScript`,value:m,onChange:ct,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:E})}),t[45]=E,t[46]=m,t[47]=I):I=t[47];let lt;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(lt=e=>pe(e.target.value),t[48]=lt):lt=t[48];let L;t[49]!==E||t[50]!==b?(L=(0,w.jsx)(_,{title:`Validation Script`,description:`This script runs after each chat response. If it fails, Tarsk will try to fix issues automatically up to the retry limit.`,children:(0,w.jsx)(ce,{id:`validationScript`,value:b,onChange:lt,placeholder:`e.g. npm run lint && npm test`,className:`font-mono min-h-[80px] resize-none`,disabled:E})}),t[49]=E,t[50]=b,t[51]=L):L=t[51];let ut;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ut=e=>v(e.target.value),t[52]=ut):ut=t[52];let R;t[53]!==E||t[54]!==g?(R=(0,w.jsx)(se,{id:`runCommand`,value:g,onChange:ut,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:E}),t[53]=E,t[54]=g,t[55]=R):R=t[55];let z;t[56]===T?z=t[57]:(z=T?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(c,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[56]=T,t[57]=z);let B;t[58]!==rt||t[59]!==ot||t[60]!==z?(B=(0,w.jsx)(f,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:rt,disabled:ot,children:z}),t[58]=rt,t[59]=ot,t[60]=z,t[61]=B):B=t[61];let V;t[62]!==R||t[63]!==B?(V=(0,w.jsx)(_,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,w.jsxs)(`div`,{className:`relative`,children:[R,B]})}),t[62]=R,t[63]=B,t[64]=V):V=t[64];let dt=y===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,H;t[65]!==y||t[66]!==E?(H=(0,w.jsx)(de,{commitMethod:y,onCommitMethodChange:$e,disabled:E}),t[65]=y,t[66]=E,t[67]=H):H=t[67];let U;t[68]!==dt||t[69]!==H?(U=(0,w.jsx)(_,{title:`Commit Method`,description:dt,controlLayout:`row-end`,action:H}),t[68]=dt,t[69]=H,t[70]=U):U=t[70];let ft=!D,pt;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(pt=e=>De(!e),t[71]=pt):pt=t[71];let W;t[72]!==E||t[73]!==ft?(W=(0,w.jsx)(le,{value:ft,onChange:pt,disabled:E,ariaLabel:`Confirm Commands`}),t[72]=E,t[73]=ft,t[74]=W):W=t[74];let G;t[75]!==D||t[76]!==O||t[77]!==N?(G=!D&&O.length>0&&(0,w.jsx)(Ce,{allowAllCommands:D,patterns:O,disabled:N,onRemove:e=>ke(t=>t.filter(t=>t!==e))}),t[75]=D,t[76]=O,t[77]=N,t[78]=G):G=t[78];let K;t[79]!==W||t[80]!==G?(K=(0,w.jsx)(_,{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:W,children:G}),t[79]=W,t[80]=G,t[81]=K):K=t[81];let q;t[82]!==N||t[83]!==k?(q=(0,w.jsx)(_,{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,w.jsx)(le,{value:k,onChange:Fe,disabled:N,ariaLabel:`Built-in Browser`})}),t[82]=N,t[83]=k,t[84]=q):q=t[84];let mt;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(mt=()=>Re(null),t[85]=mt):mt=t[85];let J;t[86]!==N||t[87]!==tt||t[88]!==et||t[89]!==A?(J=(0,w.jsx)(_,{title:`Project Icon`,description:`Choose an image to use for this project on the Projects page. It will be center-cropped to a 256×256 PNG.`,controlLayout:`row-end`,action:(0,w.jsx)(we,{projectIcon:A,disabled:N,inputRef:Ue,onFileChange:et,onButtonClick:tt,onRemove:mt})}),t[86]=N,t[87]=tt,t[88]=et,t[89]=A,t[90]=J):J=t[90];let Y;t[91]!==F||t[92]!==I||t[93]!==L||t[94]!==V||t[95]!==U||t[96]!==K||t[97]!==q||t[98]!==J?(Y=(0,w.jsx)(ee,{className:`max-w-none pt-6`,children:(0,w.jsxs)(ne,{children:[F,I,L,V,U,K,q,J]})}),t[91]=F,t[92]=I,t[93]=L,t[94]=V,t[95]=U,t[96]=K,t[97]=q,t[98]=J,t[99]=Y):Y=t[99];let X;t[100]!==P||t[101]!==Y?(X=(0,w.jsxs)(re,{className:`shrink-0`,children:[P,Y]}),t[100]=P,t[101]=Y,t[102]=X):X=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,w.jsx)(te,{title:`Delete Project`}),t[103]=ht):ht=t[103];let gt;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(gt=(0,w.jsx)(`div`,{className:`min-w-0`,children:(0,w.jsx)(`p`,{className:a(r.bodyMuted),children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`})}),t[104]=gt):gt=t[104];let Z;t[105]!==d||t[106]!==n||t[107]!==u?(Z=()=>{n&&u({id:n,name:d})},t[105]=d,t[106]=n,t[107]=u,t[108]=Z):Z=t[108];let Q;t[109]!==N||t[110]!==Z?(Q=(0,w.jsxs)(re,{className:`shrink-0 rounded-none border-t border-table-border pt-6 mt-8`,children:[ht,(0,w.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[gt,(0,w.jsx)(f,{type:`button`,variant:`destructive`,disabled:N,onClick:Z,children:`Delete Project`})]})]}),t[109]=N,t[110]=Z,t[111]=Q):Q=t[111];let $;return t[112]!==Ze||t[113]!==n||t[114]!==X||t[115]!==Q?($=(0,w.jsxs)(ae,{loading:Ze,children:[X,Q]},n),t[112]=Ze,t[113]=n,t[114]=X,t[115]=Q,t[116]=$):$=t[116],$}export{De as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,Rt as i,i as a,ii as o,ki as s,yt as c}from"./interactive-BrHVRHmQ.js";import{Wt as l}from"./react-vendor-CCZMLxmy.js";import{Ca as u,Ei as d,Eo as f,Si as p,Ti as m,b as h,cr as g,dt as ee,it as te,lt as ne,mt as re,rt as ie,st as ae,tt as _,ut as oe,x as se}from"./onboarding-DTF0L4Nt.js";import{t as v}from"./use-toast-hxHsVv6a.js";import{U as ce,ft as le,i as ue,o as y}from"./index-CsUbYVa9.js";import{i as de}from"./commit-method-fields-BwX9cAYJ.js";import{a as fe,n as b,r as pe,t as x}from"./context-menu-C5sSYyMw.js";import{t as me}from"./use-settings-page-loading-BU2CDnfE.js";var S=n(),C=e(s(),1),w=t();function he(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 ge(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await g(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setValue(n.setupScript??``),t.setValidationScript(n.validationScript??``),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.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalProjectIcon(n.projectIcon??null)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function T(e,t){try{let n=await he(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){v({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function _e(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await T(r,t)}finally{URL.revokeObjectURL(r)}}async function ve(e,t,n){n(!0);try{let n=await p(e);n.runCommand?(t(n.runCommand),v({title:`Success`,description:`Suggested: ${n.runCommand}`})):v({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function E(e,t,n){t!==n&&await d(e,t)}async function ye(e,t,n,r,i){await m(e,{setupScript:t.trim()||null,validationScript:n.trim()||null,runCommand:r.trim()||null,commitMethod:i})}async function be(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await m(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function xe(e,t,n){t!==n&&await m(e,{useBuiltInBrowser:t})}async function D(e,t,n){t!==n&&await m(e,{projectIcon:t})}async function Se(e,t,n,r,i,a){n.setSaving(!0);try{await E(e,t.name,t.originalName),await ye(e,t.value,t.validationScript,t.runCmd,t.commitMethod),await be(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await xe(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),await D(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function Ce(e){let t=(0,S.c)(10),{allowAllCommands:n,patterns:i,disabled:o,onRemove:s}=e;if(n||i.length===0)return null;let c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,w.jsx)(h,{children:`Allowed command patterns`}),t[0]=c):c=t[0];let l;if(t[1]!==o||t[2]!==s||t[3]!==i){let e;t[5]!==o||t[6]!==s?(e=e=>(0,w.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,w.jsx)(`code`,{className:a(r.mono,r.bodyMuted),children:e}),(0,w.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,disabled:o,onClick:()=>s(e),children:`Remove`})]},e),t[5]=o,t[6]=s,t[7]=e):e=t[7],l=i.map(e),t[1]=o,t[2]=s,t[3]=i,t[4]=l}else l=t[4];let u;return t[8]===l?u=t[9]:(u=(0,w.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[c,(0,w.jsx)(`ul`,{className:`space-y-1`,children:l})]}),t[8]=l,t[9]=u),u}function we(e){let t=(0,S.c)(21),{projectIcon:n,disabled:r,inputRef:a,onFileChange:o,onButtonClick:s,onRemove:c}=e,l;t[0]!==r||t[1]!==a||t[2]!==o?(l=(0,w.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:r}),t[0]=r,t[1]=a,t[2]=o,t[3]=l):l=t[3];let u=n?`Change project icon`:`Choose project icon`,d;t[4]===n?d=t[5]:(d=n?(0,w.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,w.jsx)(i,{className:`h-4 w-4 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=d);let f;t[6]!==r||t[7]!==s||t[8]!==u||t[9]!==d?(f=(0,w.jsx)(fe,{asChild:!0,children:(0,w.jsx)(`button`,{type:`button`,className:`flex h-8 w-8 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:s,disabled:r,"aria-label":u,children:d})}),t[6]=r,t[7]=s,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]!==r||t[12]!==c||t[13]!==n?(p=n&&(0,w.jsx)(b,{children:(0,w.jsx)(pe,{disabled:r,onSelect:c,children:`Remove`})}),t[11]=r,t[12]=c,t[13]=n,t[14]=p):p=t[14];let m;t[15]!==f||t[16]!==p?(m=(0,w.jsxs)(x,{children:[f,p]}),t[15]=f,t[16]=p,t[17]=m):m=t[17];let h;return t[18]!==l||t[19]!==m?(h=(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,m]}),t[18]=l,t[19]=m,t[20]=h):h=t[20],h}function Te(e){let t=(0,S.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,w.jsxs)(w.Fragment,{children:[(0,w.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,w.jsx)(f,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function Ee(e,t,n){let r=(0,S.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return T(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!u())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,C.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return _e(t,e)},r[5]=e,r[6]=c);let l=c,d;r[7]!==n||r[8]!==t?(d=function(){u()&&t?y(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=d):d=r[9];let f=d,p;return r[10]!==f||r[11]!==l?(p={handleProjectIconChange:l,handleProjectIconButtonClick:f},r[10]=f,r[11]=l,r[12]=p):p=r[12],p}function De(e){let t=(0,S.c)(117),{projectId:n,onProjectUpdated:i}=e,s=l(),u=ue(),[d,p]=(0,C.useState)(``),[m,h]=(0,C.useState)(``),[g,v]=(0,C.useState)(``),[y,fe]=(0,C.useState)(o.PullRequest),[b,pe]=(0,C.useState)(``),[x,he]=(0,C.useState)(!1),[T,_e]=(0,C.useState)(!1),[E,ye]=(0,C.useState)(!0),[be,xe]=(0,C.useState)(``),[D,De]=(0,C.useState)(!0),Oe;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=[],t[0]=Oe):Oe=t[0];let[O,ke]=(0,C.useState)(Oe),[Ae,je]=(0,C.useState)(!0),Me;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(Me=[],t[1]=Me):Me=t[1];let[Ne,Pe]=(0,C.useState)(Me),[k,Fe]=(0,C.useState)(!0),[Ie,Le]=(0,C.useState)(!0),[A,Re]=(0,C.useState)(null),[ze,Be]=(0,C.useState)(null),[Ve,He]=(0,C.useState)(null),Ue=(0,C.useRef)(null),We;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(We={setProjectPath:He,setName:p,setValue:h,setRunCmd:v,setCommitMethod:fe,setValidationScript:pe,setAllowAllCommands:De,setAllowedCommandPatterns:ke,setUseBuiltInBrowser:Fe,setProjectIcon:Re,setOriginalName:xe,setOriginalAllowAllCommands:je,setOriginalAllowedCommandPatterns:Pe,setOriginalUseBuiltInBrowser:Le,setOriginalProjectIcon:Be,setLoading:ye,setSaving:he},t[2]=We):We=t[2];let Ge=We,j;t[3]===n?j=t[4]:(j=()=>ge(n,Ge),t[3]=n,t[4]=j);let M=j,Ke,qe;t[5]===n?(Ke=t[6],qe=t[7]):(Ke=()=>{n&&ye(!0)},qe=[n],t[5]=n,t[6]=Ke,t[7]=qe),(0,C.useLayoutEffect)(Ke,qe);let Je,Ye;t[8]===M?(Je=t[9],Ye=t[10]):(Je=()=>{M()},Ye=[M],t[8]=M,t[9]=Je,t[10]=Ye),(0,C.useEffect)(Je,Ye);let Xe;t[11]===E?Xe=t[12]:(Xe=[E],t[11]=E,t[12]=Xe);let Ze=me(n,Xe),Qe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=function(e){fe(e)},t[13]=Qe):Qe=t[13];let $e=Qe,{handleProjectIconChange:et,handleProjectIconButtonClick:tt}=Ee(Re,Ve,Ue),nt;t[14]===n?nt=t[15]:(nt=async()=>{n&&await ve(n,v,_e)},t[14]=n,t[15]=nt);let rt=nt,it;t[16]!==D||t[17]!==O||t[18]!==y||t[19]!==M||t[20]!==d||t[21]!==s||t[22]!==i||t[23]!==Ae||t[24]!==Ne||t[25]!==be||t[26]!==ze||t[27]!==Ie||t[28]!==A||t[29]!==n||t[30]!==g||t[31]!==k||t[32]!==b||t[33]!==m?(it=async()=>{n&&await Se(n,{name:d,value:m,runCmd:g,commitMethod:y,validationScript:b,allowAllCommands:D,allowedCommandPatterns:O,useBuiltInBrowser:k,projectIcon:A,originalName:be,originalAllowAllCommands:Ae,originalAllowedCommandPatterns:Ne,originalUseBuiltInBrowser:Ie,originalProjectIcon:ze},Ge,i,s,M)},t[16]=D,t[17]=O,t[18]=y,t[19]=M,t[20]=d,t[21]=s,t[22]=i,t[23]=Ae,t[24]=Ne,t[25]=be,t[26]=ze,t[27]=Ie,t[28]=A,t[29]=n,t[30]=g,t[31]=k,t[32]=b,t[33]=m,t[34]=it):it=t[34];let at=it,N=E||x,ot=E||T;if(!n){let e;return t[35]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,w.jsx)(oe,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[35]=e):e=t[35],e}let P;t[36]!==N||t[37]!==at||t[38]!==x?(P=(0,w.jsx)(ie,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,w.jsx)(Te,{saving:x,disabled:N,onClick:at}),sticky:!1}),t[36]=N,t[37]=at,t[38]=x,t[39]=P):P=t[39];let st;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(st=e=>p(e.target.value),t[40]=st):st=t[40];let F;t[41]!==E||t[42]!==d?(F=(0,w.jsx)(_,{title:`Project Name`,children:(0,w.jsx)(se,{id:`projectName`,value:d,onChange:st,placeholder:`Enter project name`,disabled:E})}),t[41]=E,t[42]=d,t[43]=F):F=t[43];let ct;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ct=e=>h(e.target.value),t[44]=ct):ct=t[44];let I;t[45]!==E||t[46]!==m?(I=(0,w.jsx)(_,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,w.jsx)(ce,{id:`setupScript`,value:m,onChange:ct,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:E})}),t[45]=E,t[46]=m,t[47]=I):I=t[47];let lt;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(lt=e=>pe(e.target.value),t[48]=lt):lt=t[48];let L;t[49]!==E||t[50]!==b?(L=(0,w.jsx)(_,{title:`Validation Script`,description:`This script runs after each chat response. If it fails, Tarsk will try to fix issues automatically up to the retry limit.`,children:(0,w.jsx)(ce,{id:`validationScript`,value:b,onChange:lt,placeholder:`e.g. npm run lint && npm test`,className:`font-mono min-h-[80px] resize-none`,disabled:E})}),t[49]=E,t[50]=b,t[51]=L):L=t[51];let ut;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ut=e=>v(e.target.value),t[52]=ut):ut=t[52];let R;t[53]!==E||t[54]!==g?(R=(0,w.jsx)(se,{id:`runCommand`,value:g,onChange:ut,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:E}),t[53]=E,t[54]=g,t[55]=R):R=t[55];let z;t[56]===T?z=t[57]:(z=T?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(c,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[56]=T,t[57]=z);let B;t[58]!==rt||t[59]!==ot||t[60]!==z?(B=(0,w.jsx)(f,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:rt,disabled:ot,children:z}),t[58]=rt,t[59]=ot,t[60]=z,t[61]=B):B=t[61];let V;t[62]!==R||t[63]!==B?(V=(0,w.jsx)(_,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,w.jsxs)(`div`,{className:`relative`,children:[R,B]})}),t[62]=R,t[63]=B,t[64]=V):V=t[64];let dt=y===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,H;t[65]!==y||t[66]!==E?(H=(0,w.jsx)(de,{commitMethod:y,onCommitMethodChange:$e,disabled:E}),t[65]=y,t[66]=E,t[67]=H):H=t[67];let U;t[68]!==dt||t[69]!==H?(U=(0,w.jsx)(_,{title:`Commit Method`,description:dt,controlLayout:`row-end`,action:H}),t[68]=dt,t[69]=H,t[70]=U):U=t[70];let ft=!D,pt;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(pt=e=>De(!e),t[71]=pt):pt=t[71];let W;t[72]!==E||t[73]!==ft?(W=(0,w.jsx)(le,{value:ft,onChange:pt,disabled:E,ariaLabel:`Confirm Commands`}),t[72]=E,t[73]=ft,t[74]=W):W=t[74];let G;t[75]!==D||t[76]!==O||t[77]!==N?(G=!D&&O.length>0&&(0,w.jsx)(Ce,{allowAllCommands:D,patterns:O,disabled:N,onRemove:e=>ke(t=>t.filter(t=>t!==e))}),t[75]=D,t[76]=O,t[77]=N,t[78]=G):G=t[78];let K;t[79]!==W||t[80]!==G?(K=(0,w.jsx)(_,{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:W,children:G}),t[79]=W,t[80]=G,t[81]=K):K=t[81];let q;t[82]!==N||t[83]!==k?(q=(0,w.jsx)(_,{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,w.jsx)(le,{value:k,onChange:Fe,disabled:N,ariaLabel:`Built-in Browser`})}),t[82]=N,t[83]=k,t[84]=q):q=t[84];let mt;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(mt=()=>Re(null),t[85]=mt):mt=t[85];let J;t[86]!==N||t[87]!==tt||t[88]!==et||t[89]!==A?(J=(0,w.jsx)(_,{title:`Project Icon`,description:`Choose an image to use for this project on the Projects page. It will be center-cropped to a 256×256 PNG.`,controlLayout:`row-end`,action:(0,w.jsx)(we,{projectIcon:A,disabled:N,inputRef:Ue,onFileChange:et,onButtonClick:tt,onRemove:mt})}),t[86]=N,t[87]=tt,t[88]=et,t[89]=A,t[90]=J):J=t[90];let Y;t[91]!==F||t[92]!==I||t[93]!==L||t[94]!==V||t[95]!==U||t[96]!==K||t[97]!==q||t[98]!==J?(Y=(0,w.jsx)(ee,{className:`max-w-none pt-6`,children:(0,w.jsxs)(ne,{children:[F,I,L,V,U,K,q,J]})}),t[91]=F,t[92]=I,t[93]=L,t[94]=V,t[95]=U,t[96]=K,t[97]=q,t[98]=J,t[99]=Y):Y=t[99];let X;t[100]!==P||t[101]!==Y?(X=(0,w.jsxs)(re,{className:`shrink-0`,children:[P,Y]}),t[100]=P,t[101]=Y,t[102]=X):X=t[102];let ht;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,w.jsx)(te,{title:`Delete Project`}),t[103]=ht):ht=t[103];let gt;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(gt=(0,w.jsx)(`div`,{className:`min-w-0`,children:(0,w.jsx)(`p`,{className:a(r.bodyMuted),children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`})}),t[104]=gt):gt=t[104];let Z;t[105]!==d||t[106]!==n||t[107]!==u?(Z=()=>{n&&u({id:n,name:d})},t[105]=d,t[106]=n,t[107]=u,t[108]=Z):Z=t[108];let Q;t[109]!==N||t[110]!==Z?(Q=(0,w.jsxs)(re,{className:`shrink-0 rounded-none border-t border-table-border pt-6 mt-8`,children:[ht,(0,w.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[gt,(0,w.jsx)(f,{type:`button`,variant:`destructive`,disabled:N,onClick:Z,children:`Delete Project`})]})]}),t[109]=N,t[110]=Z,t[111]=Q):Q=t[111];let $;return t[112]!==Ze||t[113]!==n||t[114]!==X||t[115]!==Q?($=(0,w.jsxs)(ae,{loading:Ze,children:[X,Q]},n),t[112]=Ze,t[113]=n,t[114]=X,t[115]=Q,t[116]=$):$=t[116],$}export{De as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Or as r,Rr as i,i as a,ki as o,yt as s}from"./interactive-BrHVRHmQ.js";import{Wt as c}from"./react-vendor-7n7LyU5o.js";import{Eo as l,Ti as u,cr as d,dt as f,mt as p,rt as m,st as h,tt as g,ut as _}from"./onboarding-KBcwP-kU.js";import{t as v}from"./use-toast-hxHsVv6a.js";import{ft as y}from"./index-CJCQ4bTo.js";import{t as b}from"./use-settings-page-loading-BU2CDnfE.js";var x=e(o(),1),S=n(),C=t(),w=r(),T=Math.ceil(w.length/2),E=[w.slice(0,T),w.slice(T)];function D(e){let t=(0,S.c)(14),{tool:n,enabled:r,disabled:o,onToggle:s}=e,c;t[0]!==s||t[1]!==n.name?(c=e=>s(n.name,e),t[0]=s,t[1]=n.name,t[2]=c):c=t[2];let l;t[3]!==o||t[4]!==r||t[5]!==c||t[6]!==n.displayName?(l=(0,C.jsx)(y,{value:r,onChange:c,disabled:o,ariaLabel:n.displayName}),t[3]=o,t[4]=r,t[5]=c,t[6]=n.displayName,t[7]=l):l=t[7];let u;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(i.body,`truncate`),t[8]=u):u=t[8];let d;t[9]===n.displayName?d=t[10]:(d=(0,C.jsx)(`span`,{className:u,children:n.displayName}),t[9]=n.displayName,t[10]=d);let f;return t[11]!==l||t[12]!==d?(f=(0,C.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[l,d]}),t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function O(e){let t=(0,S.c)(13),{tools:n,disabledTools:r,disabled:i,forceEnabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,C.jsx)(D,{tool:e,enabled:!r.includes(e.name),disabled:i||a.has(e.name),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,C.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function k(e){let t=(0,S.c)(23),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=new Set((a??[]).map(A)),t[0]=a,t[1]=s);let c=s,l;t[2]!==n||t[3]!==c||t[4]!==r?(l=function(e,t){let i=e.toLowerCase();if(!(c.has(i)&&!t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},t[2]=n,t[3]=c,t[4]=r,t[5]=l):l=t[5];let u=l,d;t[6]!==o||t[7]!==n||t[8]!==c||t[9]!==u?(d=w.map(e=>(0,C.jsx)(D,{tool:e,enabled:!n.includes(e.name),disabled:o||c.has(e.name),onToggle:u},e.name)),t[6]=o,t[7]=n,t[8]=c,t[9]=u,t[10]=d):d=t[10];let f;t[11]===d?f=t[12]:(f=(0,C.jsx)(`div`,{className:`divide-y divide-table-border @md/settings-page:hidden`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==u?(p=E.map((e,t)=>(0,C.jsx)(O,{tools:e,disabledTools:n,disabled:o,forceEnabledTools:c,onToggle:u},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=u,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,C.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:p}),t[18]=p,t[19]=m);let h;return t[20]!==f||t[21]!==m?(h=(0,C.jsxs)(C.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function A(e){return e.toLowerCase()}function j({projectId:e,onProjectUpdated:t}){let n=c(),[r,i]=(0,x.useState)([]),[a,o]=(0,x.useState)([]),[S,w]=(0,x.useState)(!1),[T,E]=(0,x.useState)(!1),[D,O]=(0,x.useState)(!0),[A,j]=(0,x.useState)(!1),M=(0,x.useCallback)(async()=>{if(!e){O(!1);return}O(!0);try{let t=await d(e),n=t.disabledTools??[],r=t.smartJsEnabled===!0;i(n),o(n),w(r),E(r)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{O(!1)}},[e]);(0,x.useLayoutEffect)(()=>{e&&O(!0)},[e]),(0,x.useEffect)(()=>{M()},[M]);let N=b(e,[D]);function P(){return JSON.stringify([...r].sort())!==JSON.stringify([...a].sort())}function F(){return P()||S!==T}async function I(){if(!(!e||!F())){j(!0);try{let i={};P()&&(i.disabledTools=r.length>0?r:null),S!==T&&(i.smartJsEnabled=S),await u(e,i),o(r),E(S),t&&await t(),await M(),n(`/`)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{j(!1)}}}function L(e){w(e),e&&i(e=>e.filter(e=>e!==`run_js`))}return e?(0,C.jsx)(h,{loading:N,children:(0,C.jsxs)(p,{className:`shrink-0`,children:[(0,C.jsx)(m,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,C.jsx)(l,{onClick:()=>void I(),disabled:A||D,children:A?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,C.jsxs)(f,{className:`max-w-none pt-6`,children:[(0,C.jsx)(g,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,C.jsx)(y,{value:S,onChange:L,disabled:D||A,ariaLabel:`Smart JS`})}),(0,C.jsx)(`div`,{className:`mt-8`,children:(0,C.jsx)(k,{disabledTools:r,onChange:i,disabled:D||A,forceEnabledTools:S?[`run_js`]:void 0})})]})]})}):(0,C.jsx)(_,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{j as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Or as r,Rr as i,i as a,ki as o,yt as s}from"./interactive-BrHVRHmQ.js";import{Wt as c}from"./react-vendor-CCZMLxmy.js";import{Eo as l,Ti as u,cr as d,dt as f,mt as p,rt as m,st as h,tt as g,ut as _}from"./onboarding-DTF0L4Nt.js";import{t as v}from"./use-toast-hxHsVv6a.js";import{ft as y}from"./index-CsUbYVa9.js";import{t as b}from"./use-settings-page-loading-BU2CDnfE.js";var x=e(o(),1),S=n(),C=t(),w=r(),T=Math.ceil(w.length/2),E=[w.slice(0,T),w.slice(T)];function D(e){let t=(0,S.c)(14),{tool:n,enabled:r,disabled:o,onToggle:s}=e,c;t[0]!==s||t[1]!==n.name?(c=e=>s(n.name,e),t[0]=s,t[1]=n.name,t[2]=c):c=t[2];let l;t[3]!==o||t[4]!==r||t[5]!==c||t[6]!==n.displayName?(l=(0,C.jsx)(y,{value:r,onChange:c,disabled:o,ariaLabel:n.displayName}),t[3]=o,t[4]=r,t[5]=c,t[6]=n.displayName,t[7]=l):l=t[7];let u;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=a(i.body,`truncate`),t[8]=u):u=t[8];let d;t[9]===n.displayName?d=t[10]:(d=(0,C.jsx)(`span`,{className:u,children:n.displayName}),t[9]=n.displayName,t[10]=d);let f;return t[11]!==l||t[12]!==d?(f=(0,C.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[l,d]}),t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function O(e){let t=(0,S.c)(13),{tools:n,disabledTools:r,disabled:i,forceEnabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,C.jsx)(D,{tool:e,enabled:!r.includes(e.name),disabled:i||a.has(e.name),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,C.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function k(e){let t=(0,S.c)(23),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a}=e,o=i===void 0?!1:i,s;t[0]===a?s=t[1]:(s=new Set((a??[]).map(A)),t[0]=a,t[1]=s);let c=s,l;t[2]!==n||t[3]!==c||t[4]!==r?(l=function(e,t){let i=e.toLowerCase();if(!(c.has(i)&&!t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},t[2]=n,t[3]=c,t[4]=r,t[5]=l):l=t[5];let u=l,d;t[6]!==o||t[7]!==n||t[8]!==c||t[9]!==u?(d=w.map(e=>(0,C.jsx)(D,{tool:e,enabled:!n.includes(e.name),disabled:o||c.has(e.name),onToggle:u},e.name)),t[6]=o,t[7]=n,t[8]=c,t[9]=u,t[10]=d):d=t[10];let f;t[11]===d?f=t[12]:(f=(0,C.jsx)(`div`,{className:`divide-y divide-table-border @md/settings-page:hidden`,children:d}),t[11]=d,t[12]=f);let p;t[13]!==o||t[14]!==n||t[15]!==c||t[16]!==u?(p=E.map((e,t)=>(0,C.jsx)(O,{tools:e,disabledTools:n,disabled:o,forceEnabledTools:c,onToggle:u},t)),t[13]=o,t[14]=n,t[15]=c,t[16]=u,t[17]=p):p=t[17];let m;t[18]===p?m=t[19]:(m=(0,C.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:p}),t[18]=p,t[19]=m);let h;return t[20]!==f||t[21]!==m?(h=(0,C.jsxs)(C.Fragment,{children:[f,m]}),t[20]=f,t[21]=m,t[22]=h):h=t[22],h}function A(e){return e.toLowerCase()}function j({projectId:e,onProjectUpdated:t}){let n=c(),[r,i]=(0,x.useState)([]),[a,o]=(0,x.useState)([]),[S,w]=(0,x.useState)(!1),[T,E]=(0,x.useState)(!1),[D,O]=(0,x.useState)(!0),[A,j]=(0,x.useState)(!1),M=(0,x.useCallback)(async()=>{if(!e){O(!1);return}O(!0);try{let t=await d(e),n=t.disabledTools??[],r=t.smartJsEnabled===!0;i(n),o(n),w(r),E(r)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{O(!1)}},[e]);(0,x.useLayoutEffect)(()=>{e&&O(!0)},[e]),(0,x.useEffect)(()=>{M()},[M]);let N=b(e,[D]);function P(){return JSON.stringify([...r].sort())!==JSON.stringify([...a].sort())}function F(){return P()||S!==T}async function I(){if(!(!e||!F())){j(!0);try{let i={};P()&&(i.disabledTools=r.length>0?r:null),S!==T&&(i.smartJsEnabled=S),await u(e,i),o(r),E(S),t&&await t(),await M(),n(`/`)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{j(!1)}}}function L(e){w(e),e&&i(e=>e.filter(e=>e!==`run_js`))}return e?(0,C.jsx)(h,{loading:N,children:(0,C.jsxs)(p,{className:`shrink-0`,children:[(0,C.jsx)(m,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,C.jsx)(l,{onClick:()=>void I(),disabled:A||D,children:A?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,C.jsxs)(f,{className:`max-w-none pt-6`,children:[(0,C.jsx)(g,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,C.jsx)(y,{value:S,onChange:L,disabled:D||A,ariaLabel:`Smart JS`})}),(0,C.jsx)(`div`,{className:`mt-8`,children:(0,C.jsx)(k,{disabledTools:r,onChange:i,disabled:D||A,forceEnabledTools:S?[`run_js`]:void 0})})]})]})}):(0,C.jsx)(_,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{j as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{B as t,Cr as n,Di as r,K as i,Lr as a,Oi as o,Rr as s,Tt as c,a as l,bn as u,f as d,i as f,ki as p,nn as m,rn as h,tr as g,yt as _}from"./interactive-BrHVRHmQ.js";import{Gt as v,Wt as y}from"./react-vendor-7n7LyU5o.js";import{An as b,Ct as x,Eo as S,Fn as C,Kr as ee,On as te,Oo as w,Pn as T,St as E,Tt as D,Wn as O,_r as ne,ai as re,bt as k,c as ie,ct as A,d as ae,dt as j,hr as oe,jn as se,kn as ce,l as le,lt as M,mt as ue,n as de,nt as N,oi as fe,r as P,rt as F,s as I,u as L,ut as pe,w as me,wt as R,x as z}from"./onboarding-KBcwP-kU.js";import{J as B,n as he}from"./store-B_cK-gsT.js";import{n as V,t as H}from"./use-suspense-resource-CExc4Svq.js";import{A as ge,M as U,N as W,j as _e}from"./index-CJCQ4bTo.js";import{t as G}from"./async-error-boundary-CM6LU7nT.js";import{o as K}from"./settings-list-CWdsaJKC.js";import{t as q}from"./use-deferred-search-0sV7mSzX.js";import{n as J,r as Y,t as X}from"./model-list-controls-2JtkzWsp.js";var Z=o(),Q=e(p(),1),$=r(),ve=w(f(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 ye(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=f(ve({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}var be=g(`app.use-provider-details.hook`);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({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:r}){let i=he(),[a,o]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)([]),[_,v]=(0,Q.useState)(new Set),[y,x]=(0,Q.useState)(new Set),[S,w]=(0,Q.useState)(new Map),{query:E,setQuery:D,deferredQuery:O}=q(),[k,ie]=(0,Q.useState)(`alphabetical`),[A,ae]=(0,Q.useState)(`all`),[j,M]=(0,Q.useState)(!1),[ue,N]=(0,Q.useState)(``),[F,I]=(0,Q.useState)(``),[L,pe]=(0,Q.useState)(``),[R,z]=(0,Q.useState)(`coding`),[V,H]=(0,Q.useState)([]),[ge,U]=(0,Q.useState)(new Set),[W,_e]=(0,Q.useState)(new Set),[G,K]=(0,Q.useState)(new Map),[J,Y]=(0,Q.useState)({}),X=e=>me(e.id);(0,Q.useEffect)(()=>{(async()=>{if(m(``),r&&(t&&r.slug===t||e&&r.name===e)){o(r),pe(r.apiKey??``),c(r.apiKey??``),Y(r.envValues??{}),ye(r.slug),Z(r.slug);return}try{let n=xe(await ne(),e,t);o(n),pe(n?.apiKey??``),c(n?.apiKey??``),Y(n?.envValues??{}),n&&(ye(n.slug),Z(n.slug))}catch(e){m(e instanceof Error?e.message:`Failed to load providers`)}})()},[e,t,r]);let Z=async e=>{f(null);try{let t=await oe(e);t.status===`success`&&f(t.balance)}catch(t){be.error(`Failed to load balance for ${e}:`,t)}};function $(){g([]),H([]),v(new Set),x(new Set),U(new Set),_e(new Set),w(new Map),K(new Map)}function ve(e){return e instanceof Error?e.message:`Failed to load models from local API`}let ye=async e=>{u(!0),I(``),D(``),ie(`alphabetical`),ae(`all`),z(`coding`);try{let[t,n]=await Promise.all([C(e),T(e)]);g(t.models),H(n.models);let r=new Set(t.enabledModelIds);v(r),x(r);let i=new Set(n.enabledModelIds);U(i),_e(i),w(new Map),K(new Map)}catch(t){be.error(`Failed to load models for ${e}:`,t),$(),I(ve(t))}finally{u(!1)}};async function Se(e){u(!0),I(``);try{await ee(e),await ye(e),i({type:B.ConfigUpdated})}catch(t){be.error(`Failed to refresh models for ${e}:`,t),$(),I(ve(t)),u(!1)}}let Ce=(e,t)=>{a?.name===e&&(c(t),Te(t))},we=(e,t)=>{Y(n=>({...n,[e]:t})),a&&(async()=>{try{await re({[e]:t}),i({type:B.ConfigUpdated}),N(`${le(e)} saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save provider settings`);return}n(a.slug)&&e===`LOCAL_API_URL`&&t.trim()&&await Se(a.slug)})()},Te=async e=>{if(!(!a||e===L))try{await fe(a.slug,e),i({type:B.ConfigUpdated}),pe(e),N(`API key saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save API key`)}},Ee=(e,t)=>{t===`image`?K(t=>{let n=new Map(t),r=ge.has(e),i=n.has(e),a=n.get(e),o=!(i?a:r);return o===r?n.delete(e):n.set(e,o),De(e,(n.has(e)?n.get(e):r)??!1,`image`),n}):w(t=>{let n=de(t,e,_);return De(e,(n.has(e)?n.get(e):_.has(e))??!1,`coding`),n})},De=async(e,t,n=`coding`)=>{if(a)try{n===`image`?(t?(await b(a.slug,e),U(t=>new Set([...t,e]))):(await te(a.slug,e),U(t=>{let n=new Set(t);return n.delete(e),n})),K(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await se(a.slug,e),v(t=>new Set([...t,e]))):(await ce(a.slug,e),v(t=>{let n=new Set(t);return n.delete(e),n})),w(t=>{let n=new Map(t);return n.delete(e),n})),i({type:B.ConfigUpdated}),N(`Model preferences saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save model changes`)}};async function Oe(e,t=`coding`){let n=t===`image`?V:h,r=t===`image`?ge:_;(t===`image`?K:w)(t=>{let i=new Map(t);for(let t of n)r.has(t.id)===e?i.delete(t.id):i.set(t.id,e);return i});for(let i of n)r.has(i.id)!==e&&await De(i.id,e,t)}let ke=s!==void 0&&s.trim().length>0;return{selectedProvider:a,error:p,balance:d,displayApiKey:s,showApiKey:j,setShowApiKey:M,providerEnvValues:J,modelsLoading:l,modelsError:F,saveStatus:ue,modelTab:R,setModelTab:z,modelSearchQuery:E,setModelSearchQuery:D,modelSortBy:k,setModelSortBy:ie,modelFilter:A,setModelFilter:ae,availableModels:h,enabledModelIds:_,pendingChanges:S,filteredAndSortedModels:(0,Q.useMemo)(()=>P({models:h,query:O,sortBy:k,getDisplayName:X,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!y.has(e.id)}),[h,O,A,y,k,X]),availableImageModels:V,enabledImageModelIds:ge,pendingImageChanges:G,filteredAndSortedImageModels:(0,Q.useMemo)(()=>P({models:V,query:O,sortBy:k===`coding-index`||k===`intelligence-by-price`?`alphabetical`:k,getDisplayName:X,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!W.has(e.id)}),[V,O,A,W,k,X]),hasApiKey:ke,getModelDisplayName:X,handleUpdateKeyLocal:Ce,handleUpdateProviderEnv:we,refreshLocalProviderModels:Se,handleToggleModel:Ee,handleToggleAllModels:Oe}}function Ce(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)(ie,{url:n.url,className:f(s.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(S,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(d,{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 we(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=f(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=l(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 Te(e){let t=(0,Z.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=f(s.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(D,{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)(x,{children:r}),t[3]=r,t[4]=o);let c;return t[5]!==a||t[6]!==o?(c=(0,$.jsx)(R,{children:(0,$.jsxs)(E,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=c):c=t[7],c}function Ee(e){let t=(0,Z.c)(10),{provider:r,displayApiKey:a,showApiKey:o,onToggleShowApiKey:s,onUpdateKey:l,providerEnvValues:u,onUpdateEnv:d,modelsLoading:f,onRefreshModels:p}=e,g;return t[0]!==a||t[1]!==f||t[2]!==p||t[3]!==s||t[4]!==d||t[5]!==l||t[6]!==r||t[7]!==u||t[8]!==o?(g=(0,$.jsx)($.Fragment,{children:r.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(M,{children:[(0,$.jsx)(A,{label:(0,$.jsx)(Te,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(c,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(z,{type:o?`text`:`password`,placeholder:r.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:a,onChange:e=>{l(r.name,e.target.value)}}),(0,$.jsx)(S,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:s,disabled:!a,children:o?(0,$.jsx)(h,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(m,{className:`h-4 w-4 text-muted-foreground`})})]})}),L(r).map(e=>(0,$.jsx)(A,{label:(0,$.jsx)(Te,{title:le(e),tooltip:e}),control:n(r.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(z,{id:e,value:u[e]??``,onChange:t=>d(e,t.target.value),placeholder:r.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(R,{children:(0,$.jsxs)(E,{children:[(0,$.jsx)(D,{asChild:!0,children:(0,$.jsx)(S,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{p(r.slug)},disabled:f,children:f?(0,$.jsx)(_,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(i,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(x,{children:`Refresh models`})]})})]}):(0,$.jsx)(z,{id:e,value:u[e]??``,onChange:t=>d(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)(N,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(S,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,r.name]})]})}),t[0]=a,t[1]=f,t[2]=p,t[3]=s,t[4]=d,t[5]=l,t[6]=r,t[7]=u,t[8]=o,t[9]=g):g=t[9],g}function De(e){let t=(0,Z.c)(22),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:c,onToggle:u}=e,d=r.pricing,p=n===`image`?`image-${r.id}`:r.id,m=r.id,h=!o&&`opacity-25`,g;t[0]===h?g=t[1]:(g=f(`flex cursor-default items-center space-x-3 p-3 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]!==u?(y=()=>u(r.id),t[2]=r.id,t[3]=u,t[4]=y):y=t[4];let b;t[5]!==p||t[6]!==_||t[7]!==v||t[8]!==y?(b=(0,$.jsx)(I,{id:p,disabled:_,checked:v,onCheckedChange:y,className:`mt-0`}),t[5]=p,t[6]=_,t[7]=v,t[8]=y,t[9]=b):b=t[9];let x;t[10]!==p||t[11]!==i||t[12]!==r.coding_index||t[13]!==d||t[14]!==c||t[15]!==n?(x=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:p,className:f(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)(Y,{codingIndex:r.coding_index,modelName:i}),d&&(0,$.jsx)(`span`,{className:f(s.caption,`whitespace-nowrap`),children:(d.prompt??0)===0&&(d.completion??0)===0?``:`$${l(d.prompt??0)} in | $${l(d.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:p,className:f(s.label,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),d&&(0,$.jsx)(`span`,{className:f(s.caption,`whitespace-nowrap flex-shrink-0`),children:(d.prompt??0)===0&&(d.completion??0)===0?``:`$${l(d.prompt??0)} in | $${l(d.completion??0)} out`})]}),t[10]=p,t[11]=i,t[12]=r.coding_index,t[13]=d,t[14]=c,t[15]=n,t[16]=x):x=t[16];let S;return t[17]!==r.id||t[18]!==g||t[19]!==b||t[20]!==x?(S=(0,$.jsxs)(`div`,{className:g,children:[b,x]},m),t[17]=r.id,t[18]=g,t[19]=b,t[20]=x,t[21]=S):S=t[21],S}function Oe(e){let t=(0,Z.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:o,modelsError:c,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:p,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]!==p||t[7]!==r||t[8]!==o||t[9]!==h||t[10]!==d||t[11]!==n?(y=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:o?(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)(R,{children:(0,$.jsx)(`div`,{className:f(`grid grid-cols-1 gap-0`,a.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)(De,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:l,showStarRating:g&&(p===`coding-index`||p===`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]=p,t[7]=r,t[8]=o,t[9]=h,t[10]=d,t[11]=n,t[12]=y):y=t[12],y}function ke(e){let n=(0,Z.c)(22),{tab:r,showImageTab:i,modelsLoading:a,models:o,hasApiKey:s,enabledModelIds:c,pendingChanges:l,modelSearchQuery:u,onModelSearchQueryChange:d,modelSortBy:p,onModelSortByChange:m,onToggleAllModels:h}=e,g=r===`coding`,_=g?`select-all-models`:`select-all-image-models`,v=!a&&o.length>0,y=v&&!s&&`opacity-25`,b;n[0]===y?b=n[1]:(b=f(`flex flex-col gap-2 md:flex-row md:items-center`,y),n[0]=y,n[1]=b);let x;n[2]===i?x=n[3]:(x=i?(0,$.jsxs)(U,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(W,{value:`coding`,children:`Coding`}),(0,$.jsx)(W,{value:`image`,children:`Image`})]}):null,n[2]=i,n[3]=x);let S;n[4]!==c||n[5]!==s||n[6]!==g||n[7]!==u||n[8]!==p||n[9]!==o||n[10]!==d||n[11]!==m||n[12]!==h||n[13]!==l||n[14]!==_||n[15]!==v||n[16]!==r?(S=v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(t,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(z,{placeholder:`Search`,className:`pl-10 h-8`,value:u,onChange:e=>d(e.target.value),disabled:!s})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(X,{id:_,disabled:!s,checked:o.every(e=>{let t=l.has(e.id),n=l.get(e.id);return t?n:c.has(e.id)}),onChange:e=>{h(e,r)}}),(0,$.jsx)(J,{sortBy:p,showCodingIndex:g,showIntelligenceByPrice:g,onSortByChange:m})]})]}):null,n[4]=c,n[5]=s,n[6]=g,n[7]=u,n[8]=p,n[9]=o,n[10]=d,n[11]=m,n[12]=h,n[13]=l,n[14]=_,n[15]=v,n[16]=r,n[17]=S):S=n[17];let C;return n[18]!==b||n[19]!==x||n[20]!==S?(C=(0,$.jsxs)(`div`,{className:b,children:[x,S]}),n[18]=b,n[19]=x,n[20]=S,n[21]=C):C=n[21],C}function Ae(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)(ue,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function je(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:d,error:p,balance:m,displayApiKey:h,showApiKey:g,setShowApiKey:_,providerEnvValues:v,modelsLoading:y,modelsError:b,saveStatus:x,modelTab:C,setModelTab:ee,modelSearchQuery:te,setModelSearchQuery:w,modelSortBy:T,setModelSortBy:E,availableModels:D,enabledModelIds:O,pendingChanges:ne,filteredAndSortedModels:re,availableImageModels:k,enabledImageModelIds:ie,pendingImageChanges:A,filteredAndSortedImageModels:ae,hasApiKey:j,getModelDisplayName:oe,handleUpdateKeyLocal:se,handleUpdateProviderEnv:ce,refreshLocalProviderModels:le,handleToggleModel:M,handleToggleAllModels:ue}=Se(l);if(p){let e;t[4]===o?e=t[5]:(e=f(`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]===p?n=t[7]:(n=(0,$.jsx)(N,{variant:`error`,className:`mb-0`,children:p}),t[6]=p,t[7]=n);let r;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(S,{variant:`outline`,size:`sm`,onClick:Me,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(!d){let e;t[12]===o?e=t[13]:(e=f(`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)(S,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(u,{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)(pe,{title:n,action:r,children:i}),t[16]=n,t[17]=r,t[18]=i,t[19]=l):l=t[19];let d;return t[20]!==e||t[21]!==l?(d=(0,$.jsx)(`div`,{className:e,children:l}),t[20]=e,t[21]=l,t[22]=d):d=t[22],d}let de;t[23]===o?de=t[24]:(de=f(`h-full min-h-0`,o),t[23]=o,t[24]=de);let fe;t[25]!==a||t[26]!==d?(fe=(0,$.jsx)(Ce,{provider:d,onBack:a}),t[25]=a,t[26]=d,t[27]=fe):fe=t[27];let P;t[28]!==_||t[29]!==g?(P=()=>_(!g),t[28]=_,t[29]=g,t[30]=P):P=t[30];let F;t[31]!==h||t[32]!==se||t[33]!==ce||t[34]!==y||t[35]!==v||t[36]!==le||t[37]!==d||t[38]!==g||t[39]!==P?(F=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Ee,{provider:d,displayApiKey:h,showApiKey:g,onToggleShowApiKey:P,onUpdateKey:se,providerEnvValues:v,onUpdateEnv:ce,modelsLoading:y,onRefreshModels:le})}),t[31]=h,t[32]=se,t[33]=ce,t[34]=y,t[35]=v,t[36]=le,t[37]=d,t[38]=g,t[39]=P,t[40]=F):F=t[40];let I;t[41]!==d.name||t[42]!==fe||t[43]!==F?(I=(0,$.jsx)(Ae,{title:d.name,description:`Configure API keys and connection settings for this provider.`,action:fe,children:F}),t[41]=d.name,t[42]=fe,t[43]=F,t[44]=I):I=t[44];let L;t[45]!==w||t[46]!==E||t[47]!==ee?(L=e=>{ee(e),w(``),E(`alphabetical`)},t[45]=w,t[46]=E,t[47]=ee,t[48]=L):L=t[48];let me;t[49]===m?me=t[50]:(me=(0,$.jsx)(we,{balance:m}),t[49]=m,t[50]=me);let R;t[51]===d.name?R=t[52]:(R=d.name.toLowerCase(),t[51]=d.name,t[52]=R);let z=R===`openrouter`,B=C===`coding`?D:k,he=C===`coding`?O:ie,V=C===`coding`?ne:A,H;t[53]!==ue||t[54]!==j||t[55]!==te||t[56]!==T||t[57]!==C||t[58]!==y||t[59]!==w||t[60]!==E||t[61]!==z||t[62]!==B||t[63]!==he||t[64]!==V?(H=(0,$.jsx)(ke,{tab:C,showImageTab:z,modelsLoading:y,models:B,hasApiKey:j,enabledModelIds:he,pendingChanges:V,modelSearchQuery:te,onModelSearchQueryChange:w,modelSortBy:T,onModelSortByChange:E,onToggleAllModels:ue}),t[53]=ue,t[54]=j,t[55]=te,t[56]=T,t[57]=C,t[58]=y,t[59]=w,t[60]=E,t[61]=z,t[62]=B,t[63]=he,t[64]=V,t[65]=H):H=t[65];let U;t[66]===b?U=t[67]:(U=b?(0,$.jsx)(N,{variant:`error`,className:`mb-4`,children:b}):null,t[66]=b,t[67]=U);let W;t[68]!==D||t[69]!==O||t[70]!==re||t[71]!==oe||t[72]!==M||t[73]!==j||t[74]!==T||t[75]!==b||t[76]!==y||t[77]!==ne||t[78]!==d?(W=(0,$.jsx)(_e,{value:`coding`,children:(0,$.jsx)(Oe,{tab:`coding`,provider:d,models:D,filteredModels:re,modelsLoading:y,modelsError:b,hasApiKey:j,enabledModelIds:O,pendingChanges:ne,modelSortBy:T,getModelDisplayName:oe,onToggleModel:M})}),t[68]=D,t[69]=O,t[70]=re,t[71]=oe,t[72]=M,t[73]=j,t[74]=T,t[75]=b,t[76]=y,t[77]=ne,t[78]=d,t[79]=W):W=t[79];let G;t[80]!==k||t[81]!==ie||t[82]!==ae||t[83]!==oe||t[84]!==M||t[85]!==j||t[86]!==T||t[87]!==b||t[88]!==y||t[89]!==A||t[90]!==d?(G=(0,$.jsx)(_e,{value:`image`,children:(0,$.jsx)(Oe,{tab:`image`,provider:d,models:k,filteredModels:ae,modelsLoading:y,modelsError:b,hasApiKey:j,enabledModelIds:ie,pendingChanges:A,modelSortBy:T,getModelDisplayName:oe,onToggleModel:M})}),t[80]=k,t[81]=ie,t[82]=ae,t[83]=oe,t[84]=M,t[85]=j,t[86]=T,t[87]=b,t[88]=y,t[89]=A,t[90]=d,t[91]=G):G=t[91];let K;t[92]===x?K=t[93]:(K=x?(0,$.jsx)(N,{variant:x.includes(`error`)||x.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:x}):null,t[92]=x,t[93]=K);let q;t[94]!==me||t[95]!==H||t[96]!==U||t[97]!==W||t[98]!==G||t[99]!==K?(q=(0,$.jsxs)(Ae,{title:`Models`,description:`Enable coding and image models for this provider.`,action:me,tableHeader:H,children:[U,W,G,K]}),t[94]=me,t[95]=H,t[96]=U,t[97]=W,t[98]=G,t[99]=K,t[100]=q):q=t[100];let J;t[101]!==C||t[102]!==q||t[103]!==L?(J=(0,$.jsx)(ge,{value:C,onValueChange:L,children:q}),t[101]=C,t[102]=q,t[103]=L,t[104]=J):J=t[104];let Y;t[105]!==J||t[106]!==I?(Y=(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:[I,J]})}),t[105]=J,t[106]=I,t[107]=Y):Y=t[107];let X;return t[108]!==Y||t[109]!==de?(X=(0,$.jsx)(`div`,{className:de,children:Y}),t[108]=Y,t[109]=de,t[110]=X):X=t[110],X}function Me(){return window.location.reload()}function Ne(e){return`providers:list:${e}`}async function Pe(){let[e,t]=await Promise.all([ne(),O().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Fe=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Ie=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Le(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)(j,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(ue,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Re(e){let t=(0,Z.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=q(),c;t[0]===n?c=t[1]:(c=Ne(n),t[0]=n,t[1]=c);let{providers:l,enabledModelCounts:u}=H(c,Pe),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(Ve).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let p=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(Be).filter(e).sort(ze),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)(K,{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]!==p||t[19]!==u||t[20]!==r||t[21]!==i?(_=p.length===0?(0,$.jsx)(`p`,{className:f(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:Ie,children:p.map(e=>(0,$.jsx)(Je,{provider:e,modelCount:u[e.slug]??0,onClick:r},e.name))}),t[18]=p,t[19]=u,t[20]=r,t[21]=i,t[22]=_):_=t[22];let v;t[23]!==g||t[24]!==_?(v=(0,$.jsx)(Le,{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)(Le,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:h.length===0?(0,$.jsx)(`p`,{className:f(s.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Ie,children:h.map(e=>(0,$.jsx)(Ye,{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 ze(e,t){return e.name.localeCompare(t.name)}function Be(e){return!e.apiKey}function Ve(e){return e.apiKey}function He(){let e=(0,Z.c)(21),t=y(),{providerSlug:n}=v(),[r,i]=(0,Q.useState)(0),a=(0,Q.useRef)(n),o,s;e[0]!==r||e[1]!==n?(o=()=>{a.current&&!n&&(V(Ne(r)),i(Ke)),a.current=n},s=[n,r],e[0]=r,e[1]=n,e[2]=o,e[3]=s):(o=e[2],s=e[3]),(0,Q.useEffect)(o,s);let c;e[4]===t?c=e[5]:(c=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=c);let l=c,u;e[6]!==r||e[7]!==t?(u=()=>{t(`/settings/providers`),V(Ne(r)),i(Ge)},e[6]=r,e[7]=t,e[8]=u):u=e[8];let d=u,f;e[9]===r?f=e[10]:(f=function(){V(Ne(r)),i(We)},e[9]=r,e[10]=f);let p=f;if(n){let t=decodeURIComponent(n),r;return e[11]!==d||e[12]!==t?(r=(0,$.jsx)(je,{selectedProviderSlug:t,onBack:d}),e[11]=d,e[12]=t,e[13]=r):r=e[13],r}let m;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(k,{label:`Loading providers...`,size:`lg`}),e[14]=m):m=e[14];let h;e[15]!==l||e[16]!==r?(h=(0,$.jsx)(Q.Suspense,{fallback:m,children:(0,$.jsx)(Re,{loadVersion:r,onProviderClick:l},r)}),e[15]=l,e[16]=r,e[17]=h):h=e[17];let g;return e[18]!==p||e[19]!==h?(g=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:p,renderFallback:Ue,children:h})}),e[18]=p,e[19]=h,e[20]=g):g=e[20],g}function Ue(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(ue,{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)(N,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(S,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function We(e){return e+1}function Ge(e){return e+1}function Ke(e){return e+1}function qe(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function Je(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=>qe(e,o),t[3]=o,t[4]=c);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(ae,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=f(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 p;t[10]!==l||t[11]!==d?(p=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=p):p=t[12];let m;t[13]===n.isEnv?m=t[14]:(m=n.isEnv?(0,$.jsx)(ye,{variant:`secondary`,className:f(s.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(ye,{variant:`secondary`,className:f(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)(ye,{variant:`default`,className:f(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]!==p||t[23]!==g?(_=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:o,onKeyDown:c,children:[p,g]}),t[20]=o,t[21]=c,t[22]=p,t[23]=g,t[24]=_):_=t[24],_}function Ye(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=>qe(e,a),t[3]=a,t[4]=o);let c;t[5]===n?c=t[6]:(c=(0,$.jsx)(ae,{provider:n}),t[5]=n,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(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 p;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(`span`,{className:f(s.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=p):p=t[13];let m;return t[14]!==a||t[15]!==o||t[16]!==d?(m=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:a,onKeyDown:o,children:[d,p]}),t[14]=a,t[15]=o,t[16]=d,t[17]=m):m=t[17],m}export{He as ProvidersListView,He as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{B as t,Cr as n,Di as r,K as i,Lr as a,Oi as o,Rr as s,Tt as c,a as l,bn as u,f as d,i as f,ki as p,nn as m,rn as h,tr as g,yt as _}from"./interactive-BrHVRHmQ.js";import{Gt as v,Wt as y}from"./react-vendor-CCZMLxmy.js";import{An as b,Ct as x,Eo as S,Fn as C,Kr as ee,On as te,Oo as w,Pn as T,St as E,Tt as D,Wn as O,_r as ne,ai as re,bt as k,c as ie,ct as A,d as ae,dt as j,hr as oe,jn as se,kn as ce,l as le,lt as M,mt as ue,n as de,nt as N,oi as fe,r as P,rt as F,s as I,u as L,ut as pe,w as me,wt as R,x as z}from"./onboarding-DTF0L4Nt.js";import{J as B,n as he}from"./store-B_cK-gsT.js";import{n as V,t as H}from"./use-suspense-resource-CExc4Svq.js";import{A as ge,M as U,N as W,j as _e}from"./index-CsUbYVa9.js";import{t as G}from"./async-error-boundary-Ca8lx8YM.js";import{o as K}from"./settings-list-XkmhqNbT.js";import{t as q}from"./use-deferred-search-0sV7mSzX.js";import{n as J,r as Y,t as X}from"./model-list-controls-KE0f0BLj.js";var Z=o(),Q=e(p(),1),$=r(),ve=w(f(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 ye(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=f(ve({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}var be=g(`app.use-provider-details.hook`);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({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:r}){let i=he(),[a,o]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(``),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)([]),[_,v]=(0,Q.useState)(new Set),[y,x]=(0,Q.useState)(new Set),[S,w]=(0,Q.useState)(new Map),{query:E,setQuery:D,deferredQuery:O}=q(),[k,ie]=(0,Q.useState)(`alphabetical`),[A,ae]=(0,Q.useState)(`all`),[j,M]=(0,Q.useState)(!1),[ue,N]=(0,Q.useState)(``),[F,I]=(0,Q.useState)(``),[L,pe]=(0,Q.useState)(``),[R,z]=(0,Q.useState)(`coding`),[V,H]=(0,Q.useState)([]),[ge,U]=(0,Q.useState)(new Set),[W,_e]=(0,Q.useState)(new Set),[G,K]=(0,Q.useState)(new Map),[J,Y]=(0,Q.useState)({}),X=e=>me(e.id);(0,Q.useEffect)(()=>{(async()=>{if(m(``),r&&(t&&r.slug===t||e&&r.name===e)){o(r),pe(r.apiKey??``),c(r.apiKey??``),Y(r.envValues??{}),ye(r.slug),Z(r.slug);return}try{let n=xe(await ne(),e,t);o(n),pe(n?.apiKey??``),c(n?.apiKey??``),Y(n?.envValues??{}),n&&(ye(n.slug),Z(n.slug))}catch(e){m(e instanceof Error?e.message:`Failed to load providers`)}})()},[e,t,r]);let Z=async e=>{f(null);try{let t=await oe(e);t.status===`success`&&f(t.balance)}catch(t){be.error(`Failed to load balance for ${e}:`,t)}};function $(){g([]),H([]),v(new Set),x(new Set),U(new Set),_e(new Set),w(new Map),K(new Map)}function ve(e){return e instanceof Error?e.message:`Failed to load models from local API`}let ye=async e=>{u(!0),I(``),D(``),ie(`alphabetical`),ae(`all`),z(`coding`);try{let[t,n]=await Promise.all([C(e),T(e)]);g(t.models),H(n.models);let r=new Set(t.enabledModelIds);v(r),x(r);let i=new Set(n.enabledModelIds);U(i),_e(i),w(new Map),K(new Map)}catch(t){be.error(`Failed to load models for ${e}:`,t),$(),I(ve(t))}finally{u(!1)}};async function Se(e){u(!0),I(``);try{await ee(e),await ye(e),i({type:B.ConfigUpdated})}catch(t){be.error(`Failed to refresh models for ${e}:`,t),$(),I(ve(t)),u(!1)}}let Ce=(e,t)=>{a?.name===e&&(c(t),Te(t))},we=(e,t)=>{Y(n=>({...n,[e]:t})),a&&(async()=>{try{await re({[e]:t}),i({type:B.ConfigUpdated}),N(`${le(e)} saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save provider settings`);return}n(a.slug)&&e===`LOCAL_API_URL`&&t.trim()&&await Se(a.slug)})()},Te=async e=>{if(!(!a||e===L))try{await fe(a.slug,e),i({type:B.ConfigUpdated}),pe(e),N(`API key saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save API key`)}},Ee=(e,t)=>{t===`image`?K(t=>{let n=new Map(t),r=ge.has(e),i=n.has(e),a=n.get(e),o=!(i?a:r);return o===r?n.delete(e):n.set(e,o),De(e,(n.has(e)?n.get(e):r)??!1,`image`),n}):w(t=>{let n=de(t,e,_);return De(e,(n.has(e)?n.get(e):_.has(e))??!1,`coding`),n})},De=async(e,t,n=`coding`)=>{if(a)try{n===`image`?(t?(await b(a.slug,e),U(t=>new Set([...t,e]))):(await te(a.slug,e),U(t=>{let n=new Set(t);return n.delete(e),n})),K(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await se(a.slug,e),v(t=>new Set([...t,e]))):(await ce(a.slug,e),v(t=>{let n=new Set(t);return n.delete(e),n})),w(t=>{let n=new Map(t);return n.delete(e),n})),i({type:B.ConfigUpdated}),N(`Model preferences saved successfully`),setTimeout(()=>N(``),3e3)}catch(e){N(e instanceof Error?e.message:`Failed to save model changes`)}};async function Oe(e,t=`coding`){let n=t===`image`?V:h,r=t===`image`?ge:_;(t===`image`?K:w)(t=>{let i=new Map(t);for(let t of n)r.has(t.id)===e?i.delete(t.id):i.set(t.id,e);return i});for(let i of n)r.has(i.id)!==e&&await De(i.id,e,t)}let ke=s!==void 0&&s.trim().length>0;return{selectedProvider:a,error:p,balance:d,displayApiKey:s,showApiKey:j,setShowApiKey:M,providerEnvValues:J,modelsLoading:l,modelsError:F,saveStatus:ue,modelTab:R,setModelTab:z,modelSearchQuery:E,setModelSearchQuery:D,modelSortBy:k,setModelSortBy:ie,modelFilter:A,setModelFilter:ae,availableModels:h,enabledModelIds:_,pendingChanges:S,filteredAndSortedModels:(0,Q.useMemo)(()=>P({models:h,query:O,sortBy:k,getDisplayName:X,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!y.has(e.id)}),[h,O,A,y,k,X]),availableImageModels:V,enabledImageModelIds:ge,pendingImageChanges:G,filteredAndSortedImageModels:(0,Q.useMemo)(()=>P({models:V,query:O,sortBy:k===`coding-index`||k===`intelligence-by-price`?`alphabetical`:k,getDisplayName:X,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!W.has(e.id)}),[V,O,A,W,k,X]),hasApiKey:ke,getModelDisplayName:X,handleUpdateKeyLocal:Ce,handleUpdateProviderEnv:we,refreshLocalProviderModels:Se,handleToggleModel:Ee,handleToggleAllModels:Oe}}function Ce(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)(ie,{url:n.url,className:f(s.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(S,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(d,{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 we(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=f(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=l(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 Te(e){let t=(0,Z.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=f(s.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(D,{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)(x,{children:r}),t[3]=r,t[4]=o);let c;return t[5]!==a||t[6]!==o?(c=(0,$.jsx)(R,{children:(0,$.jsxs)(E,{children:[a,o]})}),t[5]=a,t[6]=o,t[7]=c):c=t[7],c}function Ee(e){let t=(0,Z.c)(10),{provider:r,displayApiKey:a,showApiKey:o,onToggleShowApiKey:s,onUpdateKey:l,providerEnvValues:u,onUpdateEnv:d,modelsLoading:f,onRefreshModels:p}=e,g;return t[0]!==a||t[1]!==f||t[2]!==p||t[3]!==s||t[4]!==d||t[5]!==l||t[6]!==r||t[7]!==u||t[8]!==o?(g=(0,$.jsx)($.Fragment,{children:r.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(M,{children:[(0,$.jsx)(A,{label:(0,$.jsx)(Te,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(c,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(z,{type:o?`text`:`password`,placeholder:r.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:a,onChange:e=>{l(r.name,e.target.value)}}),(0,$.jsx)(S,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:s,disabled:!a,children:o?(0,$.jsx)(h,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(m,{className:`h-4 w-4 text-muted-foreground`})})]})}),L(r).map(e=>(0,$.jsx)(A,{label:(0,$.jsx)(Te,{title:le(e),tooltip:e}),control:n(r.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(z,{id:e,value:u[e]??``,onChange:t=>d(e,t.target.value),placeholder:r.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(R,{children:(0,$.jsxs)(E,{children:[(0,$.jsx)(D,{asChild:!0,children:(0,$.jsx)(S,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{p(r.slug)},disabled:f,children:f?(0,$.jsx)(_,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(i,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(x,{children:`Refresh models`})]})})]}):(0,$.jsx)(z,{id:e,value:u[e]??``,onChange:t=>d(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)(N,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(S,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,r.name]})]})}),t[0]=a,t[1]=f,t[2]=p,t[3]=s,t[4]=d,t[5]=l,t[6]=r,t[7]=u,t[8]=o,t[9]=g):g=t[9],g}function De(e){let t=(0,Z.c)(22),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:o,showStarRating:c,onToggle:u}=e,d=r.pricing,p=n===`image`?`image-${r.id}`:r.id,m=r.id,h=!o&&`opacity-25`,g;t[0]===h?g=t[1]:(g=f(`flex cursor-default items-center space-x-3 p-3 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]!==u?(y=()=>u(r.id),t[2]=r.id,t[3]=u,t[4]=y):y=t[4];let b;t[5]!==p||t[6]!==_||t[7]!==v||t[8]!==y?(b=(0,$.jsx)(I,{id:p,disabled:_,checked:v,onCheckedChange:y,className:`mt-0`}),t[5]=p,t[6]=_,t[7]=v,t[8]=y,t[9]=b):b=t[9];let x;t[10]!==p||t[11]!==i||t[12]!==r.coding_index||t[13]!==d||t[14]!==c||t[15]!==n?(x=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:p,className:f(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)(Y,{codingIndex:r.coding_index,modelName:i}),d&&(0,$.jsx)(`span`,{className:f(s.caption,`whitespace-nowrap`),children:(d.prompt??0)===0&&(d.completion??0)===0?``:`$${l(d.prompt??0)} in | $${l(d.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:p,className:f(s.label,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),d&&(0,$.jsx)(`span`,{className:f(s.caption,`whitespace-nowrap flex-shrink-0`),children:(d.prompt??0)===0&&(d.completion??0)===0?``:`$${l(d.prompt??0)} in | $${l(d.completion??0)} out`})]}),t[10]=p,t[11]=i,t[12]=r.coding_index,t[13]=d,t[14]=c,t[15]=n,t[16]=x):x=t[16];let S;return t[17]!==r.id||t[18]!==g||t[19]!==b||t[20]!==x?(S=(0,$.jsxs)(`div`,{className:g,children:[b,x]},m),t[17]=r.id,t[18]=g,t[19]=b,t[20]=x,t[21]=S):S=t[21],S}function Oe(e){let t=(0,Z.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:o,modelsError:c,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:p,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]!==p||t[7]!==r||t[8]!==o||t[9]!==h||t[10]!==d||t[11]!==n?(y=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:o?(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)(R,{children:(0,$.jsx)(`div`,{className:f(`grid grid-cols-1 gap-0`,a.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)(De,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:l,showStarRating:g&&(p===`coding-index`||p===`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]=p,t[7]=r,t[8]=o,t[9]=h,t[10]=d,t[11]=n,t[12]=y):y=t[12],y}function ke(e){let n=(0,Z.c)(22),{tab:r,showImageTab:i,modelsLoading:a,models:o,hasApiKey:s,enabledModelIds:c,pendingChanges:l,modelSearchQuery:u,onModelSearchQueryChange:d,modelSortBy:p,onModelSortByChange:m,onToggleAllModels:h}=e,g=r===`coding`,_=g?`select-all-models`:`select-all-image-models`,v=!a&&o.length>0,y=v&&!s&&`opacity-25`,b;n[0]===y?b=n[1]:(b=f(`flex flex-col gap-2 md:flex-row md:items-center`,y),n[0]=y,n[1]=b);let x;n[2]===i?x=n[3]:(x=i?(0,$.jsxs)(U,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(W,{value:`coding`,children:`Coding`}),(0,$.jsx)(W,{value:`image`,children:`Image`})]}):null,n[2]=i,n[3]=x);let S;n[4]!==c||n[5]!==s||n[6]!==g||n[7]!==u||n[8]!==p||n[9]!==o||n[10]!==d||n[11]!==m||n[12]!==h||n[13]!==l||n[14]!==_||n[15]!==v||n[16]!==r?(S=v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(t,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(z,{placeholder:`Search`,className:`pl-10 h-8`,value:u,onChange:e=>d(e.target.value),disabled:!s})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(X,{id:_,disabled:!s,checked:o.every(e=>{let t=l.has(e.id),n=l.get(e.id);return t?n:c.has(e.id)}),onChange:e=>{h(e,r)}}),(0,$.jsx)(J,{sortBy:p,showCodingIndex:g,showIntelligenceByPrice:g,onSortByChange:m})]})]}):null,n[4]=c,n[5]=s,n[6]=g,n[7]=u,n[8]=p,n[9]=o,n[10]=d,n[11]=m,n[12]=h,n[13]=l,n[14]=_,n[15]=v,n[16]=r,n[17]=S):S=n[17];let C;return n[18]!==b||n[19]!==x||n[20]!==S?(C=(0,$.jsxs)(`div`,{className:b,children:[x,S]}),n[18]=b,n[19]=x,n[20]=S,n[21]=C):C=n[21],C}function Ae(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)(ue,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function je(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:d,error:p,balance:m,displayApiKey:h,showApiKey:g,setShowApiKey:_,providerEnvValues:v,modelsLoading:y,modelsError:b,saveStatus:x,modelTab:C,setModelTab:ee,modelSearchQuery:te,setModelSearchQuery:w,modelSortBy:T,setModelSortBy:E,availableModels:D,enabledModelIds:O,pendingChanges:ne,filteredAndSortedModels:re,availableImageModels:k,enabledImageModelIds:ie,pendingImageChanges:A,filteredAndSortedImageModels:ae,hasApiKey:j,getModelDisplayName:oe,handleUpdateKeyLocal:se,handleUpdateProviderEnv:ce,refreshLocalProviderModels:le,handleToggleModel:M,handleToggleAllModels:ue}=Se(l);if(p){let e;t[4]===o?e=t[5]:(e=f(`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]===p?n=t[7]:(n=(0,$.jsx)(N,{variant:`error`,className:`mb-0`,children:p}),t[6]=p,t[7]=n);let r;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(S,{variant:`outline`,size:`sm`,onClick:Me,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(!d){let e;t[12]===o?e=t[13]:(e=f(`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)(S,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(u,{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)(pe,{title:n,action:r,children:i}),t[16]=n,t[17]=r,t[18]=i,t[19]=l):l=t[19];let d;return t[20]!==e||t[21]!==l?(d=(0,$.jsx)(`div`,{className:e,children:l}),t[20]=e,t[21]=l,t[22]=d):d=t[22],d}let de;t[23]===o?de=t[24]:(de=f(`h-full min-h-0`,o),t[23]=o,t[24]=de);let fe;t[25]!==a||t[26]!==d?(fe=(0,$.jsx)(Ce,{provider:d,onBack:a}),t[25]=a,t[26]=d,t[27]=fe):fe=t[27];let P;t[28]!==_||t[29]!==g?(P=()=>_(!g),t[28]=_,t[29]=g,t[30]=P):P=t[30];let F;t[31]!==h||t[32]!==se||t[33]!==ce||t[34]!==y||t[35]!==v||t[36]!==le||t[37]!==d||t[38]!==g||t[39]!==P?(F=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(Ee,{provider:d,displayApiKey:h,showApiKey:g,onToggleShowApiKey:P,onUpdateKey:se,providerEnvValues:v,onUpdateEnv:ce,modelsLoading:y,onRefreshModels:le})}),t[31]=h,t[32]=se,t[33]=ce,t[34]=y,t[35]=v,t[36]=le,t[37]=d,t[38]=g,t[39]=P,t[40]=F):F=t[40];let I;t[41]!==d.name||t[42]!==fe||t[43]!==F?(I=(0,$.jsx)(Ae,{title:d.name,description:`Configure API keys and connection settings for this provider.`,action:fe,children:F}),t[41]=d.name,t[42]=fe,t[43]=F,t[44]=I):I=t[44];let L;t[45]!==w||t[46]!==E||t[47]!==ee?(L=e=>{ee(e),w(``),E(`alphabetical`)},t[45]=w,t[46]=E,t[47]=ee,t[48]=L):L=t[48];let me;t[49]===m?me=t[50]:(me=(0,$.jsx)(we,{balance:m}),t[49]=m,t[50]=me);let R;t[51]===d.name?R=t[52]:(R=d.name.toLowerCase(),t[51]=d.name,t[52]=R);let z=R===`openrouter`,B=C===`coding`?D:k,he=C===`coding`?O:ie,V=C===`coding`?ne:A,H;t[53]!==ue||t[54]!==j||t[55]!==te||t[56]!==T||t[57]!==C||t[58]!==y||t[59]!==w||t[60]!==E||t[61]!==z||t[62]!==B||t[63]!==he||t[64]!==V?(H=(0,$.jsx)(ke,{tab:C,showImageTab:z,modelsLoading:y,models:B,hasApiKey:j,enabledModelIds:he,pendingChanges:V,modelSearchQuery:te,onModelSearchQueryChange:w,modelSortBy:T,onModelSortByChange:E,onToggleAllModels:ue}),t[53]=ue,t[54]=j,t[55]=te,t[56]=T,t[57]=C,t[58]=y,t[59]=w,t[60]=E,t[61]=z,t[62]=B,t[63]=he,t[64]=V,t[65]=H):H=t[65];let U;t[66]===b?U=t[67]:(U=b?(0,$.jsx)(N,{variant:`error`,className:`mb-4`,children:b}):null,t[66]=b,t[67]=U);let W;t[68]!==D||t[69]!==O||t[70]!==re||t[71]!==oe||t[72]!==M||t[73]!==j||t[74]!==T||t[75]!==b||t[76]!==y||t[77]!==ne||t[78]!==d?(W=(0,$.jsx)(_e,{value:`coding`,children:(0,$.jsx)(Oe,{tab:`coding`,provider:d,models:D,filteredModels:re,modelsLoading:y,modelsError:b,hasApiKey:j,enabledModelIds:O,pendingChanges:ne,modelSortBy:T,getModelDisplayName:oe,onToggleModel:M})}),t[68]=D,t[69]=O,t[70]=re,t[71]=oe,t[72]=M,t[73]=j,t[74]=T,t[75]=b,t[76]=y,t[77]=ne,t[78]=d,t[79]=W):W=t[79];let G;t[80]!==k||t[81]!==ie||t[82]!==ae||t[83]!==oe||t[84]!==M||t[85]!==j||t[86]!==T||t[87]!==b||t[88]!==y||t[89]!==A||t[90]!==d?(G=(0,$.jsx)(_e,{value:`image`,children:(0,$.jsx)(Oe,{tab:`image`,provider:d,models:k,filteredModels:ae,modelsLoading:y,modelsError:b,hasApiKey:j,enabledModelIds:ie,pendingChanges:A,modelSortBy:T,getModelDisplayName:oe,onToggleModel:M})}),t[80]=k,t[81]=ie,t[82]=ae,t[83]=oe,t[84]=M,t[85]=j,t[86]=T,t[87]=b,t[88]=y,t[89]=A,t[90]=d,t[91]=G):G=t[91];let K;t[92]===x?K=t[93]:(K=x?(0,$.jsx)(N,{variant:x.includes(`error`)||x.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:x}):null,t[92]=x,t[93]=K);let q;t[94]!==me||t[95]!==H||t[96]!==U||t[97]!==W||t[98]!==G||t[99]!==K?(q=(0,$.jsxs)(Ae,{title:`Models`,description:`Enable coding and image models for this provider.`,action:me,tableHeader:H,children:[U,W,G,K]}),t[94]=me,t[95]=H,t[96]=U,t[97]=W,t[98]=G,t[99]=K,t[100]=q):q=t[100];let J;t[101]!==C||t[102]!==q||t[103]!==L?(J=(0,$.jsx)(ge,{value:C,onValueChange:L,children:q}),t[101]=C,t[102]=q,t[103]=L,t[104]=J):J=t[104];let Y;t[105]!==J||t[106]!==I?(Y=(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:[I,J]})}),t[105]=J,t[106]=I,t[107]=Y):Y=t[107];let X;return t[108]!==Y||t[109]!==de?(X=(0,$.jsx)(`div`,{className:de,children:Y}),t[108]=Y,t[109]=de,t[110]=X):X=t[110],X}function Me(){return window.location.reload()}function Ne(e){return`providers:list:${e}`}async function Pe(){let[e,t]=await Promise.all([ne(),O().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Fe=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Ie=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Le(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)(j,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(ue,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function Re(e){let t=(0,Z.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:o}=q(),c;t[0]===n?c=t[1]:(c=Ne(n),t[0]=n,t[1]=c);let{providers:l,enabledModelCounts:u}=H(c,Pe),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(Ve).filter(e).sort(n),t[2]=o,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let p=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(Be).filter(e).sort(ze),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)(K,{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]!==p||t[19]!==u||t[20]!==r||t[21]!==i?(_=p.length===0?(0,$.jsx)(`p`,{className:f(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:Ie,children:p.map(e=>(0,$.jsx)(Je,{provider:e,modelCount:u[e.slug]??0,onClick:r},e.name))}),t[18]=p,t[19]=u,t[20]=r,t[21]=i,t[22]=_):_=t[22];let v;t[23]!==g||t[24]!==_?(v=(0,$.jsx)(Le,{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)(Le,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:h.length===0?(0,$.jsx)(`p`,{className:f(s.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Ie,children:h.map(e=>(0,$.jsx)(Ye,{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 ze(e,t){return e.name.localeCompare(t.name)}function Be(e){return!e.apiKey}function Ve(e){return e.apiKey}function He(){let e=(0,Z.c)(21),t=y(),{providerSlug:n}=v(),[r,i]=(0,Q.useState)(0),a=(0,Q.useRef)(n),o,s;e[0]!==r||e[1]!==n?(o=()=>{a.current&&!n&&(V(Ne(r)),i(Ke)),a.current=n},s=[n,r],e[0]=r,e[1]=n,e[2]=o,e[3]=s):(o=e[2],s=e[3]),(0,Q.useEffect)(o,s);let c;e[4]===t?c=e[5]:(c=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=c);let l=c,u;e[6]!==r||e[7]!==t?(u=()=>{t(`/settings/providers`),V(Ne(r)),i(Ge)},e[6]=r,e[7]=t,e[8]=u):u=e[8];let d=u,f;e[9]===r?f=e[10]:(f=function(){V(Ne(r)),i(We)},e[9]=r,e[10]=f);let p=f;if(n){let t=decodeURIComponent(n),r;return e[11]!==d||e[12]!==t?(r=(0,$.jsx)(je,{selectedProviderSlug:t,onBack:d}),e[11]=d,e[12]=t,e[13]=r):r=e[13],r}let m;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(k,{label:`Loading providers...`,size:`lg`}),e[14]=m):m=e[14];let h;e[15]!==l||e[16]!==r?(h=(0,$.jsx)(Q.Suspense,{fallback:m,children:(0,$.jsx)(Re,{loadVersion:r,onProviderClick:l},r)}),e[15]=l,e[16]=r,e[17]=h):h=e[17];let g;return e[18]!==p||e[19]!==h?(g=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:p,renderFallback:Ue,children:h})}),e[18]=p,e[19]=h,e[20]=g):g=e[20],g}function Ue(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(ue,{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)(N,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(S,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function We(e){return e+1}function Ge(e){return e+1}function Ke(e){return e+1}function qe(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function Je(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=>qe(e,o),t[3]=o,t[4]=c);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(ae,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=f(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 p;t[10]!==l||t[11]!==d?(p=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=p):p=t[12];let m;t[13]===n.isEnv?m=t[14]:(m=n.isEnv?(0,$.jsx)(ye,{variant:`secondary`,className:f(s.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(ye,{variant:`secondary`,className:f(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)(ye,{variant:`default`,className:f(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]!==p||t[23]!==g?(_=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:o,onKeyDown:c,children:[p,g]}),t[20]=o,t[21]=c,t[22]=p,t[23]=g,t[24]=_):_=t[24],_}function Ye(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=>qe(e,a),t[3]=a,t[4]=o);let c;t[5]===n?c=t[6]:(c=(0,$.jsx)(ae,{provider:n}),t[5]=n,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(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 p;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(`span`,{className:f(s.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=p):p=t[13];let m;return t[14]!==a||t[15]!==o||t[16]!==d?(m=(0,$.jsxs)(`div`,{className:Fe,role:`button`,tabIndex:0,onClick:a,onKeyDown:o,children:[d,p]}),t[14]=a,t[15]=o,t[16]=d,t[17]=m):m=t[17],m}export{He as ProvidersListView,He as default};
@@ -1 +1 @@
1
- import{Di as e,Oi as t,Rr as ee,k as te}from"./interactive-BrHVRHmQ.js";import{A as ne,Ct as re,D as ie,Eo as n,O as ae,St as oe,T as se,Tt as ce,b as r,j as le,k as ue,s as i,wt as de,x as fe}from"./onboarding-KBcwP-kU.js";import{Mt as a,U as pe}from"./index-CJCQ4bTo.js";var me=t(),o=e();function s(e){let t=(0,me.c)(71),{open:s,onOpenChange:c,prTitle:l,onPrTitleChange:u,prDescription:d,onPrDescriptionChange:f,isGeneratingPRInfo:p,isLoading:m,onGeneratePRInfo:h,onCreatePR:g,currentBranch:_,autoGeneratePRInfo:v,onAutoGeneratePRInfoChange:y,createBranchAfterPR:b,onCreateBranchAfterPRChange:x}=e,S;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,o.jsx)(le,{children:`Create Pull Request`}),t[0]=S):S=t[0];let C;t[1]===_?C=t[2]:(C=(0,o.jsxs)(ne,{children:[S,(0,o.jsxs)(ae,{children:[`Create a pull request for branch `,_]})]}),t[1]=_,t[2]=C);let w;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,o.jsx)(r,{htmlFor:`pr-title`,children:`Title`}),t[3]=w):w=t[3];let T=_||`Enter PR title...`,E;t[4]===u?E=t[5]:(E=e=>u(e.target.value),t[4]=u,t[5]=E);let D;t[6]!==p||t[7]!==l||t[8]!==T||t[9]!==E?(D=(0,o.jsxs)(`div`,{className:`grid gap-2`,children:[w,(0,o.jsx)(fe,{id:`pr-title`,placeholder:T,value:l,onChange:E,disabled:p})]}),t[6]=p,t[7]=l,t[8]=T,t[9]=E,t[10]=D):D=t[10];let O;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,o.jsx)(r,{htmlFor:`pr-description`,children:`Description`}),t[11]=O):O=t[11];let k;t[12]===f?k=t[13]:(k=e=>f(e.target.value),t[12]=f,t[13]=k);let A;t[14]!==p||t[15]!==d||t[16]!==k?(A=(0,o.jsx)(pe,{id:`pr-description`,placeholder:`Enter PR description...`,value:d,onChange:k,disabled:p,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=p,t[15]=d,t[16]=k,t[17]=A):A=t[17];let j=p||m,M;t[18]===p?M=t[19]:(M=p?(0,o.jsx)(a,{}):(0,o.jsx)(te,{className:`h-3.5 w-3.5`}),t[18]=p,t[19]=M);let N;t[20]!==h||t[21]!==j||t[22]!==M?(N=(0,o.jsx)(ce,{asChild:!0,children:(0,o.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:h,disabled:j,children:M})}),t[20]=h,t[21]=j,t[22]=M,t[23]=N):N=t[23];let P=p?`Generating PR description...`:`Generate PR title and description with AI`,F;t[24]===P?F=t[25]:(F=(0,o.jsx)(re,{children:P}),t[24]=P,t[25]=F);let I;t[26]!==N||t[27]!==F?(I=(0,o.jsx)(de,{children:(0,o.jsxs)(oe,{children:[N,F]})}),t[26]=N,t[27]=F,t[28]=I):I=t[28];let L;t[29]!==I||t[30]!==A?(L=(0,o.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[O,(0,o.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[A,I]})]}),t[29]=I,t[30]=A,t[31]=L):L=t[31];let R;t[32]!==L||t[33]!==D?(R=(0,o.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[D,L]}),t[32]=L,t[33]=D,t[34]=R):R=t[34];let z;t[35]===y?z=t[36]:(z=e=>y(e===!0),t[35]=y,t[36]=z);let B;t[37]!==v||t[38]!==z?(B=(0,o.jsx)(i,{id:`auto-generate-pr`,checked:v,onCheckedChange:z}),t[37]=v,t[38]=z,t[39]=B):B=t[39];let V;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,o.jsx)(r,{htmlFor:`auto-generate-pr`,className:ee.labelNormal,children:`Auto generate PR title and description`}),t[40]=V):V=t[40];let H;t[41]===B?H=t[42]:(H=(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[B,V]}),t[41]=B,t[42]=H);let U;t[43]===x?U=t[44]:(U=e=>x(e===!0),t[43]=x,t[44]=U);let W;t[45]!==b||t[46]!==U?(W=(0,o.jsx)(i,{id:`create-branch-after-pr`,checked:b,onCheckedChange:U}),t[45]=b,t[46]=U,t[47]=W):W=t[47];let G;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,o.jsx)(r,{htmlFor:`create-branch-after-pr`,className:ee.labelNormal,children:`Stack the next PR on this branch`}),t[48]=G):G=t[48];let K;t[49]===W?K=t[50]:(K=(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[W,G]}),t[49]=W,t[50]=K);let q;t[51]!==H||t[52]!==K?(q=(0,o.jsxs)(`div`,{className:`mr-auto grid gap-2`,children:[H,K]}),t[51]=H,t[52]=K,t[53]=q):q=t[53];let J=m||p,Y;t[54]===m?Y=t[55]:(Y=m?(0,o.jsxs)(o.Fragment,{children:[`Create PR`,(0,o.jsx)(a,{size:`sm`})]}):`Create PR`,t[54]=m,t[55]=Y);let X;t[56]!==g||t[57]!==J||t[58]!==Y?(X=(0,o.jsx)(n,{className:`ml-auto`,onClick:g,disabled:J,children:Y}),t[56]=g,t[57]=J,t[58]=Y,t[59]=X):X=t[59];let Z;t[60]!==q||t[61]!==X?(Z=(0,o.jsxs)(ue,{className:`w-full items-end gap-4`,children:[q,X]}),t[60]=q,t[61]=X,t[62]=Z):Z=t[62];let Q;t[63]!==R||t[64]!==C||t[65]!==Z?(Q=(0,o.jsxs)(ie,{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:[C,R,Z]}),t[63]=R,t[64]=C,t[65]=Z,t[66]=Q):Q=t[66];let $;return t[67]!==c||t[68]!==s||t[69]!==Q?($=(0,o.jsx)(se,{open:s,onOpenChange:c,children:Q}),t[67]=c,t[68]=s,t[69]=Q,t[70]=$):$=t[70],$}export{s as PullRequestDialog};
1
+ import{Di as e,Oi as t,Rr as ee,k as te}from"./interactive-BrHVRHmQ.js";import{A as ne,Ct as re,D as ie,Eo as n,O as ae,St as oe,T as se,Tt as ce,b as r,j as le,k as ue,s as i,wt as de,x as fe}from"./onboarding-DTF0L4Nt.js";import{Mt as a,U as pe}from"./index-CsUbYVa9.js";var me=t(),o=e();function s(e){let t=(0,me.c)(71),{open:s,onOpenChange:c,prTitle:l,onPrTitleChange:u,prDescription:d,onPrDescriptionChange:f,isGeneratingPRInfo:p,isLoading:m,onGeneratePRInfo:h,onCreatePR:g,currentBranch:_,autoGeneratePRInfo:v,onAutoGeneratePRInfoChange:y,createBranchAfterPR:b,onCreateBranchAfterPRChange:x}=e,S;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,o.jsx)(le,{children:`Create Pull Request`}),t[0]=S):S=t[0];let C;t[1]===_?C=t[2]:(C=(0,o.jsxs)(ne,{children:[S,(0,o.jsxs)(ae,{children:[`Create a pull request for branch `,_]})]}),t[1]=_,t[2]=C);let w;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,o.jsx)(r,{htmlFor:`pr-title`,children:`Title`}),t[3]=w):w=t[3];let T=_||`Enter PR title...`,E;t[4]===u?E=t[5]:(E=e=>u(e.target.value),t[4]=u,t[5]=E);let D;t[6]!==p||t[7]!==l||t[8]!==T||t[9]!==E?(D=(0,o.jsxs)(`div`,{className:`grid gap-2`,children:[w,(0,o.jsx)(fe,{id:`pr-title`,placeholder:T,value:l,onChange:E,disabled:p})]}),t[6]=p,t[7]=l,t[8]=T,t[9]=E,t[10]=D):D=t[10];let O;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,o.jsx)(r,{htmlFor:`pr-description`,children:`Description`}),t[11]=O):O=t[11];let k;t[12]===f?k=t[13]:(k=e=>f(e.target.value),t[12]=f,t[13]=k);let A;t[14]!==p||t[15]!==d||t[16]!==k?(A=(0,o.jsx)(pe,{id:`pr-description`,placeholder:`Enter PR description...`,value:d,onChange:k,disabled:p,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=p,t[15]=d,t[16]=k,t[17]=A):A=t[17];let j=p||m,M;t[18]===p?M=t[19]:(M=p?(0,o.jsx)(a,{}):(0,o.jsx)(te,{className:`h-3.5 w-3.5`}),t[18]=p,t[19]=M);let N;t[20]!==h||t[21]!==j||t[22]!==M?(N=(0,o.jsx)(ce,{asChild:!0,children:(0,o.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:h,disabled:j,children:M})}),t[20]=h,t[21]=j,t[22]=M,t[23]=N):N=t[23];let P=p?`Generating PR description...`:`Generate PR title and description with AI`,F;t[24]===P?F=t[25]:(F=(0,o.jsx)(re,{children:P}),t[24]=P,t[25]=F);let I;t[26]!==N||t[27]!==F?(I=(0,o.jsx)(de,{children:(0,o.jsxs)(oe,{children:[N,F]})}),t[26]=N,t[27]=F,t[28]=I):I=t[28];let L;t[29]!==I||t[30]!==A?(L=(0,o.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[O,(0,o.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[A,I]})]}),t[29]=I,t[30]=A,t[31]=L):L=t[31];let R;t[32]!==L||t[33]!==D?(R=(0,o.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[D,L]}),t[32]=L,t[33]=D,t[34]=R):R=t[34];let z;t[35]===y?z=t[36]:(z=e=>y(e===!0),t[35]=y,t[36]=z);let B;t[37]!==v||t[38]!==z?(B=(0,o.jsx)(i,{id:`auto-generate-pr`,checked:v,onCheckedChange:z}),t[37]=v,t[38]=z,t[39]=B):B=t[39];let V;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,o.jsx)(r,{htmlFor:`auto-generate-pr`,className:ee.labelNormal,children:`Auto generate PR title and description`}),t[40]=V):V=t[40];let H;t[41]===B?H=t[42]:(H=(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[B,V]}),t[41]=B,t[42]=H);let U;t[43]===x?U=t[44]:(U=e=>x(e===!0),t[43]=x,t[44]=U);let W;t[45]!==b||t[46]!==U?(W=(0,o.jsx)(i,{id:`create-branch-after-pr`,checked:b,onCheckedChange:U}),t[45]=b,t[46]=U,t[47]=W):W=t[47];let G;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,o.jsx)(r,{htmlFor:`create-branch-after-pr`,className:ee.labelNormal,children:`Stack the next PR on this branch`}),t[48]=G):G=t[48];let K;t[49]===W?K=t[50]:(K=(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[W,G]}),t[49]=W,t[50]=K);let q;t[51]!==H||t[52]!==K?(q=(0,o.jsxs)(`div`,{className:`mr-auto grid gap-2`,children:[H,K]}),t[51]=H,t[52]=K,t[53]=q):q=t[53];let J=m||p,Y;t[54]===m?Y=t[55]:(Y=m?(0,o.jsxs)(o.Fragment,{children:[`Create PR`,(0,o.jsx)(a,{size:`sm`})]}):`Create PR`,t[54]=m,t[55]=Y);let X;t[56]!==g||t[57]!==J||t[58]!==Y?(X=(0,o.jsx)(n,{className:`ml-auto`,onClick:g,disabled:J,children:Y}),t[56]=g,t[57]=J,t[58]=Y,t[59]=X):X=t[59];let Z;t[60]!==q||t[61]!==X?(Z=(0,o.jsxs)(ue,{className:`w-full items-end gap-4`,children:[q,X]}),t[60]=q,t[61]=X,t[62]=Z):Z=t[62];let Q;t[63]!==R||t[64]!==C||t[65]!==Z?(Q=(0,o.jsxs)(ie,{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:[C,R,Z]}),t[63]=R,t[64]=C,t[65]=Z,t[66]=Q):Q=t[66];let $;return t[67]!==c||t[68]!==s||t[69]!==Q?($=(0,o.jsx)(se,{open:s,onOpenChange:c,children:Q}),t[67]=c,t[68]=s,t[69]=Q,t[70]=$):$=t[70],$}export{s as PullRequestDialog};
@@ -1 +1 @@
1
- import{Di as e,It as t,Oi as n,Rr as r,ot as i,y as a}from"./interactive-BrHVRHmQ.js";import{A as o,D as s,Eo as c,O as l,T as u,j as d,k as f,nt as p}from"./onboarding-KBcwP-kU.js";var m=n(),h=e();function g(e){let n=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(o,{children:[(0,h.jsxs)(d,{className:`flex items-center gap-2`,children:[(0,h.jsx)(a,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(l,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),n[0]=C):C=n[0];let w;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:r.bodyMuted,children:`Choose how you want to proceed:`}),n[1]=w):w=n[1];let T;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(t,{className:`h-4 w-4 mr-2`}),n[2]=T):T=n[2];let E;n[3]!==S||n[4]!==v?(E=(0,h.jsxs)(c,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),n[3]=S,n[4]=v,n[5]=E):E=n[5];let D;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(i,{className:`h-4 w-4 mr-2`}),n[6]=D):D=n[6];let O;n[7]!==S||n[8]!==y?(O=(0,h.jsxs)(c,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),n[7]=S,n[8]=y,n[9]=O):O=n[9];let k;n[10]!==E||n[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),n[10]=E,n[11]=O,n[12]=k):k=n[12];let A;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),n[13]=A):A=n[13];let j;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(p,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),n[14]=j):j=n[14];let M;n[15]===k?M=n[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),n[15]=k,n[16]=M);let N;n[17]!==S||n[18]!==b?(N=(0,h.jsx)(f,{children:(0,h.jsx)(c,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),n[17]=S,n[18]=b,n[19]=N):N=n[19];let P;n[20]!==M||n[21]!==N?(P=(0,h.jsxs)(s,{className:`sm:max-w-[425px]`,children:[C,M,N]}),n[20]=M,n[21]=N,n[22]=P):P=n[22];let F;return n[23]!==_||n[24]!==g||n[25]!==P?(F=(0,h.jsx)(u,{open:g,onOpenChange:_,children:P}),n[23]=_,n[24]=g,n[25]=P,n[26]=F):F=n[26],F}export{g as PullWithChangesDialog};
1
+ import{Di as e,It as t,Oi as n,Rr as r,ot as i,y as a}from"./interactive-BrHVRHmQ.js";import{A as o,D as s,Eo as c,O as l,T as u,j as d,k as f,nt as p}from"./onboarding-DTF0L4Nt.js";var m=n(),h=e();function g(e){let n=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(o,{children:[(0,h.jsxs)(d,{className:`flex items-center gap-2`,children:[(0,h.jsx)(a,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(l,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),n[0]=C):C=n[0];let w;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:r.bodyMuted,children:`Choose how you want to proceed:`}),n[1]=w):w=n[1];let T;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(t,{className:`h-4 w-4 mr-2`}),n[2]=T):T=n[2];let E;n[3]!==S||n[4]!==v?(E=(0,h.jsxs)(c,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),n[3]=S,n[4]=v,n[5]=E):E=n[5];let D;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(i,{className:`h-4 w-4 mr-2`}),n[6]=D):D=n[6];let O;n[7]!==S||n[8]!==y?(O=(0,h.jsxs)(c,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),n[7]=S,n[8]=y,n[9]=O):O=n[9];let k;n[10]!==E||n[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),n[10]=E,n[11]=O,n[12]=k):k=n[12];let A;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),n[13]=A):A=n[13];let j;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(p,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),n[14]=j):j=n[14];let M;n[15]===k?M=n[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),n[15]=k,n[16]=M);let N;n[17]!==S||n[18]!==b?(N=(0,h.jsx)(f,{children:(0,h.jsx)(c,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),n[17]=S,n[18]=b,n[19]=N):N=n[19];let P;n[20]!==M||n[21]!==N?(P=(0,h.jsxs)(s,{className:`sm:max-w-[425px]`,children:[C,M,N]}),n[20]=M,n[21]=N,n[22]=P):P=n[22];let F;return n[23]!==_||n[24]!==g||n[25]!==P?(F=(0,h.jsx)(u,{open:g,onOpenChange:_,children:P}),n[23]=_,n[24]=g,n[25]=P,n[26]=F):F=n[26],F}export{g as PullWithChangesDialog};
@@ -1 +1 @@
1
- import{Di as e,Oi as t}from"./interactive-BrHVRHmQ.js";import{A as n,D as r,Eo as i,O as a,T as o,j as s,k as c}from"./onboarding-KBcwP-kU.js";var l=t(),u=e();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(n,{children:[(0,u.jsx)(s,{children:`Push Branch First`}),(0,u.jsx)(a,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(i,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(i,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(r,{children:[g,(0,u.jsxs)(c,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(o,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};
1
+ import{Di as e,Oi as t}from"./interactive-BrHVRHmQ.js";import{A as n,D as r,Eo as i,O as a,T as o,j as s,k as c}from"./onboarding-DTF0L4Nt.js";var l=t(),u=e();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(n,{children:[(0,u.jsx)(s,{children:`Push Branch First`}),(0,u.jsx)(a,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(i,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(i,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(r,{children:[g,(0,u.jsxs)(c,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(o,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};
@@ -1,4 +1,4 @@
1
- import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{Di as n,ki as r}from"./interactive-BrHVRHmQ.js";import{$ as i,Ao as a,At as o,B as s,Bt as c,C as l,Dt as u,Et as d,F as f,Ft as p,Gt as m,Ht as h,I as g,It as _,J as v,K as y,Kt as b,L as x,Lt as S,M as C,Mo as w,Mt as T,N as E,Nt as D,Ot as O,P as ee,Pt as te,Q as ne,R as re,Rt as ie,Ut as ae,V as k,Vt as A,Wt as oe,X as se,Y as ce,Z as le,_t as ue,jo as j,jt as de,kt as fe,q as pe,qt as M,vt as me,y as he,z as ge,zt as _e}from"./onboarding-KBcwP-kU.js";import{l as ve,o as ye}from"./monaco-D1hpqXQ0.js";var be=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&ne(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ne(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var ee=new MessageChannel,te=ee.port2;ee.port1.onmessage=D,O=function(){te.postMessage(null)}}else O=function(){_(D,0)};function ne(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,ne(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),xe=t(((e,t)=>{t.exports=be()})),Se=t((e=>{var t=xe(),n=r(),i=w();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),ee=Symbol.for(`react.memo_cache_sentinel`),te=Symbol.iterator;function ne(e){return typeof e!=`object`||!e?null:(e=te&&e[te]||e[`@@iterator`],typeof e==`function`?e:null)}var re=Symbol.for(`react.client.reference`);function ie(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===re?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return t=e.displayName||null,t===null?ie(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return ie(e(t))}catch{}}return null}var ae=Array.isArray,k=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe={pending:!1,data:null,method:null,action:null},se=[],ce=-1;function le(e){return{current:e}}function ue(e){0>ce||(e.current=se[ce],se[ce]=null,ce--)}function j(e,t){ce++,se[ce]=e.current,e.current=t}var de=le(null),fe=le(null),pe=le(null),M=le(null);function me(e,t){switch(j(pe,t),j(fe,e),j(de,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ue(de),j(de,e)}function he(){ue(de),ue(fe),ue(pe)}function ge(e){e.memoizedState!==null&&j(M,e);var t=de.current,n=Ud(t,e.type);t!==n&&(j(fe,e),j(de,n))}function _e(e){fe.current===e&&(ue(de),ue(fe)),M.current===e&&(ue(M),$f._currentValue=oe)}var ve,ye;function be(e){if(ve===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ve=t&&t[1]||``,ye=-1<e.stack.indexOf(`
1
+ import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";import{Di as n,ki as r}from"./interactive-BrHVRHmQ.js";import{$ as i,Ao as a,At as o,B as s,Bt as c,C as l,Dt as u,Et as d,F as f,Ft as p,Gt as m,Ht as h,I as g,It as _,J as v,K as y,Kt as b,L as x,Lt as S,M as C,Mo as w,Mt as T,N as E,Nt as D,Ot as O,P as ee,Pt as te,Q as ne,R as re,Rt as ie,Ut as ae,V as k,Vt as A,Wt as oe,X as se,Y as ce,Z as le,_t as ue,jo as j,jt as de,kt as fe,q as pe,qt as M,vt as me,y as he,z as ge,zt as _e}from"./onboarding-DTF0L4Nt.js";import{l as ve,o as ye}from"./monaco-D1hpqXQ0.js";var be=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&ne(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ne(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var ee=new MessageChannel,te=ee.port2;ee.port1.onmessage=D,O=function(){te.postMessage(null)}}else O=function(){_(D,0)};function ne(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,ne(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),xe=t(((e,t)=>{t.exports=be()})),Se=t((e=>{var t=xe(),n=r(),i=w();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),ee=Symbol.for(`react.memo_cache_sentinel`),te=Symbol.iterator;function ne(e){return typeof e!=`object`||!e?null:(e=te&&e[te]||e[`@@iterator`],typeof e==`function`?e:null)}var re=Symbol.for(`react.client.reference`);function ie(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===re?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return t=e.displayName||null,t===null?ie(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return ie(e(t))}catch{}}return null}var ae=Array.isArray,k=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe={pending:!1,data:null,method:null,action:null},se=[],ce=-1;function le(e){return{current:e}}function ue(e){0>ce||(e.current=se[ce],se[ce]=null,ce--)}function j(e,t){ce++,se[ce]=e.current,e.current=t}var de=le(null),fe=le(null),pe=le(null),M=le(null);function me(e,t){switch(j(pe,t),j(fe,e),j(de,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ue(de),j(de,e)}function he(){ue(de),ue(fe),ue(pe)}function ge(e){e.memoizedState!==null&&j(M,e);var t=de.current,n=Ud(t,e.type);t!==n&&(j(fe,e),j(de,n))}function _e(e){fe.current===e&&(ue(de),ue(fe)),M.current===e&&(ue(M),$f._currentValue=oe)}var ve,ye;function be(e){if(ve===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ve=t&&t[1]||``,ye=-1<e.stack.indexOf(`
2
2
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
3
  `+ve+e+ye}var Se=!1;function Ce(e,t){if(!e||Se)return``;Se=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
4
  `),l=s.split(`
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,E as n,Et as r,Nn as i,Oi as a,Rr as o,Sn as s,T as c,W as l,_n as u,ct as d,dn as f,gn as p,i as m,ki as h,lt as ee,mn as g,tr as _,yt as te}from"./interactive-BrHVRHmQ.js";import{c as v,l as y,o as ne,s as re,u as ie}from"./react-vendor-7n7LyU5o.js";import{Ct as ae,Eo as oe,Hn as b,St as se,Tt as ce,a as le,bo as x,dt as ue,eo as S,ha as C,lt as de,mt as fe,o as pe,rt as me,st as he,tt as w,wi as T,x as ge,ya as _e}from"./onboarding-KBcwP-kU.js";import{t as ve}from"./use-toast-hxHsVv6a.js";import{n as ye}from"./utils-SsF94Pkg.js";import{L as be,dt as xe,ft as Se,k as Ce,n as we,r as Te,t as Ee,ut as De}from"./index-CJCQ4bTo.js";import{t as Oe}from"./use-settings-page-loading-BU2CDnfE.js";import{t as E}from"./is-macos-client-BIb4ZSEa.js";var ke=a(),D=e(h(),1),O=t(),Ae=D.forwardRef((e,t)=>{let n=(0,ke.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,s]=D.useState(!1),[c,l]=D.useState(!1),u,d;n[4]===c?(u=n[5],d=n[6]):(u=()=>{if(!c)return;let e=function(){l(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},d=[c],n[4]=c,n[5]=u,n[6]=d),D.useEffect(u,d);let f;n[7]===a?f=n[8]:(f=(0,O.jsx)(y,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,onPointerDown:()=>{a!=null&&(l(!0),s(!0))}}),n[7]=a,n[8]=f);let p=f,h;n[9]===r?h=n[10]:(h=m(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=h);let ee;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,O.jsx)(ie,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,O.jsx)(re,{className:`absolute h-full bg-primary`})}),n[11]=ee):ee=n[11];let g;n[12]!==c||n[13]!==o||n[14]!==p||n[15]!==a?(g=a==null?p:(0,O.jsxs)(se,{open:o||c,onOpenChange:s,children:[(0,O.jsx)(ce,{asChild:!0,children:p}),(0,O.jsx)(ae,{side:`top`,children:a})]}),n[12]=c,n[13]=o,n[14]=p,n[15]=a,n[16]=g):g=n[16];let _;return n[17]!==i||n[18]!==t||n[19]!==h||n[20]!==g?(_=(0,O.jsxs)(v,{ref:t,className:h,...i,children:[ee,g]}),n[17]=i,n[18]=t,n[19]=h,n[20]=g,n[21]=_):_=n[21],_});Ae.displayName=v.displayName;var je=_(`app.use-maximum-turn-count.hook`),k=100;function Me(){let[e,t]=(0,D.useState)(k),[n,r]=(0,D.useState)(k.toString()),[i,a]=(0,D.useState)(!0),[o,s]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){je.error(`Failed to load maximum turn count:`,e)}finally{e||a(!1)}}return n(),()=>{e=!0}},[]);function c(e){r(e)}async function l(e){s(!0);try{let n=await T({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw je.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:k,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var A=_(`app.use-screen-recording-permission.hook`),j={isMacOS:!1,granted:!1,available:!1,message:``};function Ne(){return{...j,isMacOS:E()}}function Pe(){let[e,t]=(0,D.useState)(Ne),[n,r]=(0,D.useState)(!0),[i,a]=(0,D.useState)(null),[o,s]=(0,D.useState)(!1),[c,l]=(0,D.useState)(null),u=(0,D.useCallback)(async()=>{r(!0),a(null);try{t(await C(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...j,isMacOS:e?.isMacOS??E(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,D.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,D.useCallback)(async()=>{s(!0),l(null);try{let e=await _e(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var Fe=_(`app.use-server-bind-mode.hook`),Ie=`local`,M=`tarsk-server-bind-mode-changed`;function Le(e){x(e)}function N(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(M)===`true`}catch{return!1}}function P(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(M,`true`):sessionStorage.removeItem(M)}catch{}}function Re(){let[e,t]=(0,D.useState)(()=>S()?.serverBindMode??Ie),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(()=>S()?.networkAddresses??[]),[o,s]=(0,D.useState)(()=>S()===null),[c,l]=(0,D.useState)(!1),[u,d]=(0,D.useState)(N);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){Fe.error(`Failed to load server bind mode:`,e)}finally{e||s(!1)}}return n(),()=>{e=!0}},[]);async function f(e){l(!0);try{let n=await T({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),P(!0)}catch(e){throw Fe.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:Ie,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var F=_(`app.use-logging.hook`);function ze(){let[e,t]=(0,D.useState)(!1),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(!1),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(!0),[u,d]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){F.error(`Failed to load logging setting:`,e)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);async function f(e){d(!0);try{let n=await T({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw F.error(`Failed to update logging setting:`,e),e}finally{d(!1)}}return{ingestingHost:o,isEnabled:e,isEnvConfigured:i,isLoading:c,isSaving:u,logPath:n,updateIsEnabled:f}}var Be=[{value:`light`,label:`Light`,icon:c},{value:`dark`,label:`Dark`,icon:d},{value:`system`,label:`System`,icon:n}],Ve=[{value:`image`,label:`Image`,icon:r},{value:`background`,label:`Background`,icon:i}],He=`flex h-7 w-7 min-h-0 min-w-0 items-center justify-center rounded-full border-0 bg-background p-0 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`,Ue=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,We=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,Ge=600;function Ke(e){let t=(0,ke.c)(224),{onboardingResetSignal:n}=e,r=n===void 0?0:n,[i,a]=(0,D.useState)(!1),{theme:c,setTheme:d}=ye(),{scale:h,updateScale:_,min:v,max:y}=Te(),{opacity:re,updateOpacity:ie,min:b,max:x}=we(),{mode:S,color:C,updateMode:T,updateColor:_e}=be(),{color:E,updateColor:je,resetColor:k}=Ee(),{defaultMaximumTurnCount:A,draftMaximumTurnCount:j,isLoading:Ne,isSaving:Fe,resetDraftMaximumTurnCount:Ie,setDraftMaximumTurnCount:M,updateMaximumTurnCount:Le}=Me(),{status:N,isLoading:P,isOpeningSettings:F,openSettingsError:Ke,refresh:Xe,openSystemSettings:Ze}=Pe(),{isLoading:Qe,isSaving:$e,needsRestart:I,networkAddresses:L,serverBindMode:R,updateServerBindMode:et}=Re(),{isEnabled:tt,isLoading:nt,isSaving:rt,updateIsEnabled:it}=De(),{isEnabled:at,isLoading:ot,isSaving:st,updateIsEnabled:ct}=Ce(),{isEnabled:lt,isSupported:ut,isHealthy:z,statusMessage:dt,isLoading:B,isSaving:ft,updateIsEnabled:pt}=xe(),{isEnabled:V,logPath:H,isEnvConfigured:mt,ingestingHost:ht,isLoading:gt,isSaving:_t,updateIsEnabled:vt}=ze(),yt;t[0]!==gt||t[1]!==Ne||t[2]!==P||t[3]!==B||t[4]!==Qe||t[5]!==ot||t[6]!==nt?(yt=[Ne,P,Qe,nt,ot,B,gt],t[0]=gt,t[1]=Ne,t[2]=P,t[3]=B,t[4]=Qe,t[5]=ot,t[6]=nt,t[7]=yt):yt=t[7];let bt=Oe(`general`,yt),xt,St;t[8]===r?(xt=t[9],St=t[10]):(xt=()=>{if(r===0)return;a(!0);let e=setTimeout(()=>{a(!1)},Ge);return()=>{clearTimeout(e)}},St=[r],t[8]=r,t[9]=xt,t[10]=St),(0,D.useEffect)(xt,St);let Ct;t[11]===M?Ct=t[12]:(Ct=function(e){M(e.target.value)},t[11]=M,t[12]=Ct);let wt=Ct,Tt;t[13]!==A||t[14]!==j||t[15]!==Ie||t[16]!==Le?(Tt=async function(){let e=Number.parseInt(j,10),t=Number.isFinite(e)&&e>0?e:A;try{await Le(t)}catch{Ie()}},t[13]=A,t[14]=j,t[15]=Ie,t[16]=Le,t[17]=Tt):Tt=t[17];let Et=Tt,Dt;t[18]===_?Dt=t[19]:(Dt=function(e){e.length>0&&_(e[0])},t[18]=_,t[19]=Dt);let Ot=Dt,kt;t[20]===ie?kt=t[21]:(kt=function(e){e.length>0&&ie(e[0])},t[20]=ie,t[21]=kt);let At=kt,jt;t[22]===H?jt=t[23]:(jt=async function(){if(H)try{await navigator.clipboard.writeText(H),ve({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[22]=H,t[23]=jt);let Mt=jt,[Nt,Pt]=(0,D.useState)(!1),U,W,G;t[24]!==L||t[25]!==R?(U=async function(){if(W)try{await navigator.clipboard.writeText(W),Pt(!0),ve({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{Pt(!1)},1500)}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},G=R===`network`&&L.length>0,W=G?`http://${L[0]}:${We}`:null,t[24]=L,t[25]=R,t[26]=U,t[27]=W,t[28]=G):(U=t[26],W=t[27],G=t[28]);let Ft=G&&W,It=i&&`animate-headline-reset`,K;t[29]===It?K=t[30]:(K=m(It),t[29]=It,t[30]=K);let q;t[31]===K?q=t[32]:(q=(0,O.jsx)(me,{title:`Appearance`,titleClassName:K,className:`[&>div:first-child]:py-2`,sticky:!1}),t[31]=K,t[32]=q);let J;t[33]===v?J=t[34]:(J=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[v,`%`]}),t[33]=v,t[34]=J);let Y;t[35]===h?Y=t[36]:(Y=[h],t[35]=h,t[36]=Y);let Lt=`${h}%`,X;t[37]!==Ot||t[38]!==y||t[39]!==v||t[40]!==Y||t[41]!==Lt?(X=(0,O.jsx)(Ae,{value:Y,min:v,max:y,step:5,onValueChange:Ot,"aria-label":`Font size`,valueTooltip:Lt}),t[37]=Ot,t[38]=y,t[39]=v,t[40]=Y,t[41]=Lt,t[42]=X):X=t[42];let Z;t[43]===y?Z=t[44]:(Z=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[y,`%`]}),t[43]=y,t[44]=Z);let Rt;t[45]!==J||t[46]!==X||t[47]!==Z?(Rt=(0,O.jsx)(w,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[J,X,Z]})}),t[45]=J,t[46]=X,t[47]=Z,t[48]=Rt):Rt=t[48];let zt;t[49]===b?zt=t[50]:(zt=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[b,`%`]}),t[49]=b,t[50]=zt);let Bt;t[51]===re?Bt=t[52]:(Bt=[re],t[51]=re,t[52]=Bt);let Vt=`${re}%`,Ht;t[53]!==x||t[54]!==b||t[55]!==At||t[56]!==Bt||t[57]!==Vt?(Ht=(0,O.jsx)(Ae,{value:Bt,min:b,max:x,step:5,onValueChange:At,"aria-label":`Panel opacity`,valueTooltip:Vt}),t[53]=x,t[54]=b,t[55]=At,t[56]=Bt,t[57]=Vt,t[58]=Ht):Ht=t[58];let Ut;t[59]===x?Ut=t[60]:(Ut=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[x,`%`]}),t[59]=x,t[60]=Ut);let Wt;t[61]!==zt||t[62]!==Ht||t[63]!==Ut?(Wt=(0,O.jsx)(w,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[zt,Ht,Ut]})}),t[61]=zt,t[62]=Ht,t[63]=Ut,t[64]=Wt):Wt=t[64];let Gt;t[65]===d?Gt=t[66]:(Gt=e=>{(e===`light`||e===`dark`||e===`system`)&&d(e)},t[65]=d,t[66]=Gt);let Kt;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Kt=Be.map(Ye),t[67]=Kt):Kt=t[67];let qt;t[68]!==Gt||t[69]!==c?(qt=(0,O.jsx)(w,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,O.jsx)(le,{type:`single`,value:c,onValueChange:Gt,"aria-label":`Appearance`,className:Ue,children:Kt})}),t[68]=Gt,t[69]=c,t[70]=qt):qt=t[70];let Jt;t[71]===T?Jt=t[72]:(Jt=e=>{(e===`image`||e===`background`||e===`color`)&&T(e)},t[71]=T,t[72]=Jt);let Yt;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(Yt=Ve.map(Je),t[73]=Yt):Yt=t[73];let Xt;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Xt=m(He,`relative overflow-hidden`),t[74]=Xt):Xt=t[74];let Zt;t[75]===C?Zt=t[76]:(Zt=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:C},"aria-hidden":`true`}),t[75]=C,t[76]=Zt);let Qt;t[77]===T?Qt=t[78]:(Qt=()=>{T(`color`)},t[77]=T,t[78]=Qt);let $t;t[79]!==_e||t[80]!==T?($t=e=>{_e(e.target.value),T(`color`)},t[79]=_e,t[80]=T,t[81]=$t):$t=t[81];let en;t[82]!==Qt||t[83]!==$t||t[84]!==C?(en=(0,O.jsx)(`input`,{type:`color`,value:C,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:Qt,onChange:$t}),t[82]=Qt,t[83]=$t,t[84]=C,t[85]=en):en=t[85];let tn;t[86]!==Zt||t[87]!==en?(tn=(0,O.jsxs)(pe,{value:`color`,"aria-label":`Custom color`,className:Xt,children:[Zt,en]}),t[86]=Zt,t[87]=en,t[88]=tn):tn=t[88];let nn;t[89]!==Jt||t[90]!==tn||t[91]!==S?(nn=(0,O.jsx)(w,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,O.jsxs)(le,{type:`single`,value:S,onValueChange:Jt,"aria-label":`Wallpaper`,className:Ue,children:[Yt,tn]})}),t[89]=Jt,t[90]=tn,t[91]=S,t[92]=nn):nn=t[92];let rn;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(rn=m(He,`relative cursor-pointer overflow-hidden`),t[93]=rn):rn=t[93];let an;t[94]===E?an=t[95]:(an=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:E},"aria-hidden":`true`}),t[94]=E,t[95]=an);let on;t[96]===je?on=t[97]:(on=e=>{je(e.target.value)},t[96]=je,t[97]=on);let sn;t[98]!==E||t[99]!==on?(sn=(0,O.jsx)(`input`,{type:`color`,value:E,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:on}),t[98]=E,t[99]=on,t[100]=sn):sn=t[100];let cn;t[101]!==an||t[102]!==sn?(cn=(0,O.jsx)(`div`,{className:Ue,children:(0,O.jsxs)(`label`,{className:rn,children:[an,sn]})}),t[101]=an,t[102]=sn,t[103]=cn):cn=t[103];let ln;t[104]!==k||t[105]!==cn?(ln=(0,O.jsx)(w,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:k,action:cn}),t[104]=k,t[105]=cn,t[106]=ln):ln=t[106];let un;t[107]!==Rt||t[108]!==Wt||t[109]!==qt||t[110]!==nn||t[111]!==ln?(un=(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[Rt,Wt,qt,nn,ln]})}),t[107]=Rt,t[108]=Wt,t[109]=qt,t[110]=nn,t[111]=ln,t[112]=un):un=t[112];let dn;t[113]!==q||t[114]!==un?(dn=(0,O.jsxs)(fe,{className:`shrink-0`,children:[q,un]}),t[113]=q,t[114]=un,t[115]=dn):dn=t[115];let fn;t[116]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,O.jsx)(me,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[116]=fn):fn=t[116];let pn=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${A} turns.`,mn;t[117]===Et?mn=t[118]:(mn=()=>{Et()},t[117]=Et,t[118]=mn);let hn=Ne||Fe,gn;t[119]!==j||t[120]!==wt||t[121]!==mn||t[122]!==hn?(gn=(0,O.jsx)(ge,{type:`number`,min:1,step:1,value:j,onChange:wt,onBlur:mn,disabled:hn,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[119]=j,t[120]=wt,t[121]=mn,t[122]=hn,t[123]=gn):gn=t[123];let _n;t[124]!==pn||t[125]!==gn?(_n=(0,O.jsx)(w,{title:`Maximum Turn Count`,description:pn,controlLayout:`row-end`,action:gn}),t[124]=pn,t[125]=gn,t[126]=_n):_n=t[126];let vn;t[127]===it?vn=t[128]:(vn=e=>{it(e)},t[127]=it,t[128]=vn);let yn=nt||rt,bn;t[129]!==vn||t[130]!==yn||t[131]!==tt?(bn=(0,O.jsx)(w,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:tt,onChange:vn,disabled:yn,ariaLabel:`AI Voice Cleanup`})}),t[129]=vn,t[130]=yn,t[131]=tt,t[132]=bn):bn=t[132];let xn;t[133]===ct?xn=t[134]:(xn=e=>{ct(e)},t[133]=ct,t[134]=xn);let Sn=ot||st,Cn;t[135]!==at||t[136]!==xn||t[137]!==Sn?(Cn=(0,O.jsx)(w,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:at,onChange:xn,disabled:Sn,ariaLabel:`Spend`})}),t[135]=at,t[136]=xn,t[137]=Sn,t[138]=Cn):Cn=t[138];let wn;t[139]!==F||t[140]!==P||t[141]!==Ze||t[142]!==Xe||t[143]!==Ke||t[144]!==N?.granted||t[145]!==N?.isMacOS||t[146]!==N?.message?(wn=N?.isMacOS&&(0,O.jsx)(w,{title:`Screen & Audio Recording`,description:`Tarsk needs this macOS permission to capture screen content for browser tools and screen sharing features.`,controlLayout:`row-end`,action:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!P&&N?.granted?(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(p,{className:`h-4 w-4 text-green-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}):P?null:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(g,{className:`h-4 w-4 text-amber-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),(0,O.jsxs)(oe,{variant:`ghost`,size:`icon-sm`,className:`h-7 w-7 shrink-0 rounded-full border-0 bg-background hover:bg-background hover:text-foreground`,onClick:()=>void Xe(),disabled:P,children:[P?(0,O.jsx)(te,{className:`h-3.5 w-3.5 animate-spin`}):(0,O.jsx)(l,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`})]})]}),children:!P&&!N?.granted?(0,O.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,O.jsx)(`p`,{className:o.bodyMuted,children:N?.message??`Tarsk needs Screen & Audio Recording permission to use browser tools.`}),(0,O.jsx)(oe,{size:`sm`,onClick:()=>void Ze(),disabled:F,className:`w-fit`,children:F?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(te,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ee,{className:`h-4 w-4 mr-2`}),`Open System Settings`]})}),Ke&&(0,O.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[(0,O.jsx)(u,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(`p`,{className:o.body,children:`Failed to open System Settings`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:Ke}),(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Please open it manually:`,` `,(0,O.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]})]})]})]}):null}),t[139]=F,t[140]=P,t[141]=Ze,t[142]=Xe,t[143]=Ke,t[144]=N?.granted,t[145]=N?.isMacOS,t[146]=N?.message,t[147]=wn):wn=t[147];let Tn;t[148]!==B||t[149]!==ft||t[150]!==lt||t[151]!==z||t[152]!==dt||t[153]!==ut||t[154]!==pt?(Tn=ut&&(0,O.jsx)(w,{title:`Sandbox`,description:`Sandbox tools like bash and skill script execution to allow running and testing code safely without risking your system, files, or data.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:lt&&z,onChange:e=>{e&&!z||pt(e).catch(qe)},disabled:B||ft,disableOn:!z,ariaLabel:`Sandbox`}),children:!B&&!z?(0,O.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,O.jsx)(g,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:dt||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null}),t[148]=B,t[149]=ft,t[150]=lt,t[151]=z,t[152]=dt,t[153]=ut,t[154]=pt,t[155]=Tn):Tn=t[155];let En;t[156]===vt?En=t[157]:(En=e=>{vt(e)},t[156]=vt,t[157]=En);let Dn=gt||_t,Q;t[158]!==V||t[159]!==En||t[160]!==Dn?(Q=(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsx)(`span`,{className:`inline-flex`,children:(0,O.jsx)(Se,{value:V,onChange:En,disabled:Dn,ariaLabel:`Logging`})})}),t[158]=V,t[159]=En,t[160]=Dn,t[161]=Q):Q=t[161];let On=V&&H?`max-w-sm cursor-pointer`:`max-w-sm`,kn;t[162]!==Mt||t[163]!==V||t[164]!==H?(kn=V&&H?()=>void Mt():void 0,t[162]=Mt,t[163]=V,t[164]=H,t[165]=kn):kn=t[165];let An;t[166]!==V||t[167]!==H?(An=V&&H?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`p`,{children:`Click to copy log file path`}),(0,O.jsx)(`p`,{className:m(o.mono,`mt-1 break-all`),children:H})]}):(0,O.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[166]=V,t[167]=H,t[168]=An):An=t[168];let jn;t[169]!==On||t[170]!==kn||t[171]!==An?(jn=(0,O.jsx)(ae,{className:On,onClick:kn,children:An}),t[169]=On,t[170]=kn,t[171]=An,t[172]=jn):jn=t[172];let Mn;t[173]!==Q||t[174]!==jn?(Mn=(0,O.jsxs)(se,{children:[Q,jn]}),t[173]=Q,t[174]=jn,t[175]=Mn):Mn=t[175];let Nn;t[176]!==ht||t[177]!==mt||t[178]!==V?(Nn=V&&mt&&ht&&(0,O.jsxs)(`p`,{className:`${o.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,O.jsx)(`span`,{className:o.mono,children:ht})]}),t[176]=ht,t[177]=mt,t[178]=V,t[179]=Nn):Nn=t[179];let Pn;t[180]!==Mn||t[181]!==Nn?(Pn=(0,O.jsx)(w,{title:`Logging`,description:`Write verbose application logs to a local file. When Better Stack environment variables are configured, logs are sent there too.`,controlLayout:`row-end`,action:Mn,children:Nn}),t[180]=Mn,t[181]=Nn,t[182]=Pn):Pn=t[182];let Fn=R===`network`,In;t[183]===et?In=t[184]:(In=e=>{et(e?`network`:`local`)},t[183]=et,t[184]=In);let Ln=Qe||$e,Rn;t[185]!==Fn||t[186]!==In||t[187]!==Ln?(Rn=(0,O.jsx)(Se,{value:Fn,onChange:In,disabled:Ln,ariaLabel:`Mobile & Network Access`}),t[185]=Fn,t[186]=In,t[187]=Ln,t[188]=Rn):Rn=t[188];let zn;t[189]!==Nt||t[190]!==U||t[191]!==W||t[192]!==I||t[193]!==G?(zn=G&&W&&(0,O.jsxs)(`div`,{className:`mt-3`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Available on the network at:`,` `,(0,O.jsx)(`span`,{className:o.mono,children:W})]}),(0,O.jsxs)(se,{children:[(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsxs)(`button`,{type:`button`,onClick:()=>void U(),className:`inline-flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm transition-colors hover:bg-background`,children:[Nt?(0,O.jsx)(s,{className:`h-3.5 w-3.5 text-green-500`}):(0,O.jsx)(f,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,O.jsx)(ae,{children:Nt?`Copied!`:`Copy to clipboard`})]})]}),I&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[189]=Nt,t[190]=U,t[191]=W,t[192]=I,t[193]=G,t[194]=zn):zn=t[194];let Bn;t[195]!==L||t[196]!==R?(Bn=R===`network`&&L.length===0&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[195]=L,t[196]=R,t[197]=Bn):Bn=t[197];let Vn;t[198]!==I||t[199]!==R?(Vn=I&&R===`local`&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[198]=I,t[199]=R,t[200]=Vn):Vn=t[200];let Hn;t[201]!==Rn||t[202]!==zn||t[203]!==Bn||t[204]!==Vn?(Hn=(0,O.jsxs)(w,{title:`Mobile & Network Access`,description:`Allow the Tarsk mobile app or other web browsers to access Tarsk on the wifi network.`,controlLayout:`row-end`,action:Rn,children:[zn,Bn,Vn]}),t[201]=Rn,t[202]=zn,t[203]=Bn,t[204]=Vn,t[205]=Hn):Hn=t[205];let Un;t[206]!==_n||t[207]!==bn||t[208]!==Cn||t[209]!==wn||t[210]!==Tn||t[211]!==Pn||t[212]!==Hn?(Un=(0,O.jsxs)(fe,{className:`shrink-0`,children:[fn,(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[_n,bn,Cn,wn,Tn,Pn,Hn]})})]}),t[206]=_n,t[207]=bn,t[208]=Cn,t[209]=wn,t[210]=Tn,t[211]=Pn,t[212]=Hn,t[213]=Un):Un=t[213];let Wn;t[214]!==W||t[215]!==Ft?(Wn=Ft?(0,O.jsxs)(fe,{className:`shrink-0`,children:[(0,O.jsx)(me,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),(0,O.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,O.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,O.jsx)(ne,{value:W,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}):null,t[214]=W,t[215]=Ft,t[216]=Wn):Wn=t[216];let $;t[217]!==dn||t[218]!==Un||t[219]!==Wn?($=(0,O.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[dn,Un,Wn]}),t[217]=dn,t[218]=Un,t[219]=Wn,t[220]=$):$=t[220];let Gn;return t[221]!==bt||t[222]!==$?(Gn=(0,O.jsx)(he,{loading:bt,children:$}),t[221]=bt,t[222]=$,t[223]=Gn):Gn=t[223],Gn}function qe(){}function Je(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Ye(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}export{Ke as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,E as n,Et as r,Nn as i,Oi as a,Rr as o,Sn as s,T as c,W as l,_n as u,ct as d,dn as f,gn as p,i as m,ki as h,lt as ee,mn as g,tr as _,yt as te}from"./interactive-BrHVRHmQ.js";import{c as v,l as y,o as ne,s as re,u as ie}from"./react-vendor-CCZMLxmy.js";import{Ct as ae,Eo as oe,Hn as b,St as se,Tt as ce,a as le,bo as x,dt as ue,eo as S,ha as C,lt as de,mt as fe,o as pe,rt as me,st as he,tt as w,wi as T,x as ge,ya as _e}from"./onboarding-DTF0L4Nt.js";import{t as ve}from"./use-toast-hxHsVv6a.js";import{n as ye}from"./utils-SsF94Pkg.js";import{L as be,dt as xe,ft as Se,k as Ce,n as we,r as Te,t as Ee,ut as De}from"./index-CsUbYVa9.js";import{t as Oe}from"./use-settings-page-loading-BU2CDnfE.js";import{t as E}from"./is-macos-client-BIb4ZSEa.js";var ke=a(),D=e(h(),1),O=t(),Ae=D.forwardRef((e,t)=>{let n=(0,ke.c)(22),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,valueTooltip:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[o,s]=D.useState(!1),[c,l]=D.useState(!1),u,d;n[4]===c?(u=n[5],d=n[6]):(u=()=>{if(!c)return;let e=function(){l(!1)};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e)}},d=[c],n[4]=c,n[5]=u,n[6]=d),D.useEffect(u,d);let f;n[7]===a?f=n[8]:(f=(0,O.jsx)(y,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,onPointerDown:()=>{a!=null&&(l(!0),s(!0))}}),n[7]=a,n[8]=f);let p=f,h;n[9]===r?h=n[10]:(h=m(`relative flex w-full touch-none select-none items-center`,r),n[9]=r,n[10]=h);let ee;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,O.jsx)(ie,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,O.jsx)(re,{className:`absolute h-full bg-primary`})}),n[11]=ee):ee=n[11];let g;n[12]!==c||n[13]!==o||n[14]!==p||n[15]!==a?(g=a==null?p:(0,O.jsxs)(se,{open:o||c,onOpenChange:s,children:[(0,O.jsx)(ce,{asChild:!0,children:p}),(0,O.jsx)(ae,{side:`top`,children:a})]}),n[12]=c,n[13]=o,n[14]=p,n[15]=a,n[16]=g):g=n[16];let _;return n[17]!==i||n[18]!==t||n[19]!==h||n[20]!==g?(_=(0,O.jsxs)(v,{ref:t,className:h,...i,children:[ee,g]}),n[17]=i,n[18]=t,n[19]=h,n[20]=g,n[21]=_):_=n[21],_});Ae.displayName=v.displayName;var je=_(`app.use-maximum-turn-count.hook`),k=100;function Me(){let[e,t]=(0,D.useState)(k),[n,r]=(0,D.useState)(k.toString()),[i,a]=(0,D.useState)(!0),[o,s]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.maximumTurnCount),r(n.maximumTurnCount.toString()))}catch(e){je.error(`Failed to load maximum turn count:`,e)}finally{e||a(!1)}}return n(),()=>{e=!0}},[]);function c(e){r(e)}async function l(e){s(!0);try{let n=await T({maximumTurnCount:e});t(n.maximumTurnCount),r(n.maximumTurnCount.toString())}catch(e){throw je.error(`Failed to update maximum turn count:`,e),e}finally{s(!1)}}function u(){r(e.toString())}return{defaultMaximumTurnCount:k,draftMaximumTurnCount:n,isLoading:i,isSaving:o,maximumTurnCount:e,resetDraftMaximumTurnCount:u,setDraftMaximumTurnCount:c,updateMaximumTurnCount:l}}var A=_(`app.use-screen-recording-permission.hook`),j={isMacOS:!1,granted:!1,available:!1,message:``};function Ne(){return{...j,isMacOS:E()}}function Pe(){let[e,t]=(0,D.useState)(Ne),[n,r]=(0,D.useState)(!0),[i,a]=(0,D.useState)(null),[o,s]=(0,D.useState)(!1),[c,l]=(0,D.useState)(null),u=(0,D.useCallback)(async()=>{r(!0),a(null);try{t(await C(`api/system-permissions/screen-recording`))}catch(e){a(e instanceof Error?e.message:`Failed to check screen recording permission`),t(e=>({...j,isMacOS:e?.isMacOS??E(),message:`Unable to check permission status.`}))}finally{r(!1)}},[]);return(0,D.useEffect)(()=>{u()},[u]),{status:e,isLoading:n,error:i,isOpeningSettings:o,openSettingsError:c,refresh:u,openSystemSettings:(0,D.useCallback)(async()=>{s(!0),l(null);try{let e=await _e(`api/system-permissions/screen-recording/open-settings`,{});if(!e.success){let t=e.message||`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] ${t}`,e.error),l(t)}}catch(e){let t=e instanceof Error?e.message:`Failed to open System Settings`;A.error(`[useScreenRecordingPermission] Error opening System Settings:`,e),l(t)}finally{s(!1)}},[])}}var Fe=_(`app.use-server-bind-mode.hook`),Ie=`local`,M=`tarsk-server-bind-mode-changed`;function Le(e){x(e)}function N(){if(typeof window>`u`)return!1;try{return sessionStorage.getItem(M)===`true`}catch{return!1}}function P(e){if(!(typeof window>`u`))try{e?sessionStorage.setItem(M,`true`):sessionStorage.removeItem(M)}catch{}}function Re(){let[e,t]=(0,D.useState)(()=>S()?.serverBindMode??Ie),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(()=>S()?.networkAddresses??[]),[o,s]=(0,D.useState)(()=>S()===null),[c,l]=(0,D.useState)(!1),[u,d]=(0,D.useState)(N);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.serverBindMode),r(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}))}catch(e){Fe.error(`Failed to load server bind mode:`,e)}finally{e||s(!1)}}return n(),()=>{e=!0}},[]);async function f(e){l(!0);try{let n=await T({serverBindMode:e});t(n.serverBindMode),a(n.networkAddresses),Le({networkAddresses:n.networkAddresses,serverBindMode:n.serverBindMode}),d(!0),P(!0)}catch(e){throw Fe.error(`Failed to update server bind mode:`,e),e}finally{l(!1)}}let p=n!==null&&e!==n;return{defaultServerBindMode:Ie,hasServerBindModeChanged:p,isLoading:o,isSaving:c,needsRestart:p||u,networkAddresses:i,serverBindMode:e,updateServerBindMode:f}}var F=_(`app.use-logging.hook`);function ze(){let[e,t]=(0,D.useState)(!1),[n,r]=(0,D.useState)(null),[i,a]=(0,D.useState)(!1),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(!0),[u,d]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let e=!1;async function n(){try{let n=await b();e||(t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost))}catch(e){F.error(`Failed to load logging setting:`,e)}finally{e||l(!1)}}return n(),()=>{e=!0}},[]);async function f(e){d(!0);try{let n=await T({loggingEnabled:e});t(n.loggingEnabled),r(n.fileLoggingPath),a(n.betterStackEnvConfigured),s(n.betterStackIngestingHost)}catch(e){throw F.error(`Failed to update logging setting:`,e),e}finally{d(!1)}}return{ingestingHost:o,isEnabled:e,isEnvConfigured:i,isLoading:c,isSaving:u,logPath:n,updateIsEnabled:f}}var Be=[{value:`light`,label:`Light`,icon:c},{value:`dark`,label:`Dark`,icon:d},{value:`system`,label:`System`,icon:n}],Ve=[{value:`image`,label:`Image`,icon:r},{value:`background`,label:`Background`,icon:i}],He=`flex h-7 w-7 min-h-0 min-w-0 items-center justify-center rounded-full border-0 bg-background p-0 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`,Ue=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,We=[`462`,`8100`].includes(typeof document<`u`?document.location.port:``)?`462`:`641`,Ge=600;function Ke(e){let t=(0,ke.c)(224),{onboardingResetSignal:n}=e,r=n===void 0?0:n,[i,a]=(0,D.useState)(!1),{theme:c,setTheme:d}=ye(),{scale:h,updateScale:_,min:v,max:y}=Te(),{opacity:re,updateOpacity:ie,min:b,max:x}=we(),{mode:S,color:C,updateMode:T,updateColor:_e}=be(),{color:E,updateColor:je,resetColor:k}=Ee(),{defaultMaximumTurnCount:A,draftMaximumTurnCount:j,isLoading:Ne,isSaving:Fe,resetDraftMaximumTurnCount:Ie,setDraftMaximumTurnCount:M,updateMaximumTurnCount:Le}=Me(),{status:N,isLoading:P,isOpeningSettings:F,openSettingsError:Ke,refresh:Xe,openSystemSettings:Ze}=Pe(),{isLoading:Qe,isSaving:$e,needsRestart:I,networkAddresses:L,serverBindMode:R,updateServerBindMode:et}=Re(),{isEnabled:tt,isLoading:nt,isSaving:rt,updateIsEnabled:it}=De(),{isEnabled:at,isLoading:ot,isSaving:st,updateIsEnabled:ct}=Ce(),{isEnabled:lt,isSupported:ut,isHealthy:z,statusMessage:dt,isLoading:B,isSaving:ft,updateIsEnabled:pt}=xe(),{isEnabled:V,logPath:H,isEnvConfigured:mt,ingestingHost:ht,isLoading:gt,isSaving:_t,updateIsEnabled:vt}=ze(),yt;t[0]!==gt||t[1]!==Ne||t[2]!==P||t[3]!==B||t[4]!==Qe||t[5]!==ot||t[6]!==nt?(yt=[Ne,P,Qe,nt,ot,B,gt],t[0]=gt,t[1]=Ne,t[2]=P,t[3]=B,t[4]=Qe,t[5]=ot,t[6]=nt,t[7]=yt):yt=t[7];let bt=Oe(`general`,yt),xt,St;t[8]===r?(xt=t[9],St=t[10]):(xt=()=>{if(r===0)return;a(!0);let e=setTimeout(()=>{a(!1)},Ge);return()=>{clearTimeout(e)}},St=[r],t[8]=r,t[9]=xt,t[10]=St),(0,D.useEffect)(xt,St);let Ct;t[11]===M?Ct=t[12]:(Ct=function(e){M(e.target.value)},t[11]=M,t[12]=Ct);let wt=Ct,Tt;t[13]!==A||t[14]!==j||t[15]!==Ie||t[16]!==Le?(Tt=async function(){let e=Number.parseInt(j,10),t=Number.isFinite(e)&&e>0?e:A;try{await Le(t)}catch{Ie()}},t[13]=A,t[14]=j,t[15]=Ie,t[16]=Le,t[17]=Tt):Tt=t[17];let Et=Tt,Dt;t[18]===_?Dt=t[19]:(Dt=function(e){e.length>0&&_(e[0])},t[18]=_,t[19]=Dt);let Ot=Dt,kt;t[20]===ie?kt=t[21]:(kt=function(e){e.length>0&&ie(e[0])},t[20]=ie,t[21]=kt);let At=kt,jt;t[22]===H?jt=t[23]:(jt=async function(){if(H)try{await navigator.clipboard.writeText(H),ve({title:`Copied`,description:`Log file path copied to clipboard.`})}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the log file path.`,variant:`destructive`})}},t[22]=H,t[23]=jt);let Mt=jt,[Nt,Pt]=(0,D.useState)(!1),U,W,G;t[24]!==L||t[25]!==R?(U=async function(){if(W)try{await navigator.clipboard.writeText(W),Pt(!0),ve({title:`Copied`,description:`Network URL copied to clipboard.`}),window.setTimeout(()=>{Pt(!1)},1500)}catch(e){let t=e;ve({title:`Copy failed`,description:t instanceof Error?t.message:`Could not copy the network URL.`,variant:`destructive`})}},G=R===`network`&&L.length>0,W=G?`http://${L[0]}:${We}`:null,t[24]=L,t[25]=R,t[26]=U,t[27]=W,t[28]=G):(U=t[26],W=t[27],G=t[28]);let Ft=G&&W,It=i&&`animate-headline-reset`,K;t[29]===It?K=t[30]:(K=m(It),t[29]=It,t[30]=K);let q;t[31]===K?q=t[32]:(q=(0,O.jsx)(me,{title:`Appearance`,titleClassName:K,className:`[&>div:first-child]:py-2`,sticky:!1}),t[31]=K,t[32]=q);let J;t[33]===v?J=t[34]:(J=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[v,`%`]}),t[33]=v,t[34]=J);let Y;t[35]===h?Y=t[36]:(Y=[h],t[35]=h,t[36]=Y);let Lt=`${h}%`,X;t[37]!==Ot||t[38]!==y||t[39]!==v||t[40]!==Y||t[41]!==Lt?(X=(0,O.jsx)(Ae,{value:Y,min:v,max:y,step:5,onValueChange:Ot,"aria-label":`Font size`,valueTooltip:Lt}),t[37]=Ot,t[38]=y,t[39]=v,t[40]=Y,t[41]=Lt,t[42]=X):X=t[42];let Z;t[43]===y?Z=t[44]:(Z=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[y,`%`]}),t[43]=y,t[44]=Z);let Rt;t[45]!==J||t[46]!==X||t[47]!==Z?(Rt=(0,O.jsx)(w,{title:`Font Size`,description:`Adjust the text size across the entire application.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[J,X,Z]})}),t[45]=J,t[46]=X,t[47]=Z,t[48]=Rt):Rt=t[48];let zt;t[49]===b?zt=t[50]:(zt=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-8 shrink-0 text-right`,children:[b,`%`]}),t[49]=b,t[50]=zt);let Bt;t[51]===re?Bt=t[52]:(Bt=[re],t[51]=re,t[52]=Bt);let Vt=`${re}%`,Ht;t[53]!==x||t[54]!==b||t[55]!==At||t[56]!==Bt||t[57]!==Vt?(Ht=(0,O.jsx)(Ae,{value:Bt,min:b,max:x,step:5,onValueChange:At,"aria-label":`Panel opacity`,valueTooltip:Vt}),t[53]=x,t[54]=b,t[55]=At,t[56]=Bt,t[57]=Vt,t[58]=Ht):Ht=t[58];let Ut;t[59]===x?Ut=t[60]:(Ut=(0,O.jsxs)(`span`,{className:`${o.bodyMuted} w-9 shrink-0`,children:[x,`%`]}),t[59]=x,t[60]=Ut);let Wt;t[61]!==zt||t[62]!==Ht||t[63]!==Ut?(Wt=(0,O.jsx)(w,{title:`Panel Opacity`,description:`Adjust how opaque the frosted panels are over the wallpaper.`,children:(0,O.jsxs)(`div`,{className:`ml-auto flex w-1/2 items-center gap-3`,children:[zt,Ht,Ut]})}),t[61]=zt,t[62]=Ht,t[63]=Ut,t[64]=Wt):Wt=t[64];let Gt;t[65]===d?Gt=t[66]:(Gt=e=>{(e===`light`||e===`dark`||e===`system`)&&d(e)},t[65]=d,t[66]=Gt);let Kt;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Kt=Be.map(Ye),t[67]=Kt):Kt=t[67];let qt;t[68]!==Gt||t[69]!==c?(qt=(0,O.jsx)(w,{title:`Appearance`,description:`Choose your preferred color scheme.`,controlLayout:`row-end`,action:(0,O.jsx)(le,{type:`single`,value:c,onValueChange:Gt,"aria-label":`Appearance`,className:Ue,children:Kt})}),t[68]=Gt,t[69]=c,t[70]=qt):qt=t[70];let Jt;t[71]===T?Jt=t[72]:(Jt=e=>{(e===`image`||e===`background`||e===`color`)&&T(e)},t[71]=T,t[72]=Jt);let Yt;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(Yt=Ve.map(Je),t[73]=Yt):Yt=t[73];let Xt;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Xt=m(He,`relative overflow-hidden`),t[74]=Xt):Xt=t[74];let Zt;t[75]===C?Zt=t[76]:(Zt=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:C},"aria-hidden":`true`}),t[75]=C,t[76]=Zt);let Qt;t[77]===T?Qt=t[78]:(Qt=()=>{T(`color`)},t[77]=T,t[78]=Qt);let $t;t[79]!==_e||t[80]!==T?($t=e=>{_e(e.target.value),T(`color`)},t[79]=_e,t[80]=T,t[81]=$t):$t=t[81];let en;t[82]!==Qt||t[83]!==$t||t[84]!==C?(en=(0,O.jsx)(`input`,{type:`color`,value:C,"aria-label":`Choose wallpaper color`,className:`absolute inset-0 cursor-pointer opacity-0`,onPointerDown:Qt,onChange:$t}),t[82]=Qt,t[83]=$t,t[84]=C,t[85]=en):en=t[85];let tn;t[86]!==Zt||t[87]!==en?(tn=(0,O.jsxs)(pe,{value:`color`,"aria-label":`Custom color`,className:Xt,children:[Zt,en]}),t[86]=Zt,t[87]=en,t[88]=tn):tn=t[88];let nn;t[89]!==Jt||t[90]!==tn||t[91]!==S?(nn=(0,O.jsx)(w,{title:`Wallpaper`,description:`Choose a scenic image, the theme background, or a custom color.`,controlLayout:`row-end`,action:(0,O.jsxs)(le,{type:`single`,value:S,onValueChange:Jt,"aria-label":`Wallpaper`,className:Ue,children:[Yt,tn]})}),t[89]=Jt,t[90]=tn,t[91]=S,t[92]=nn):nn=t[92];let rn;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(rn=m(He,`relative cursor-pointer overflow-hidden`),t[93]=rn):rn=t[93];let an;t[94]===E?an=t[95]:(an=(0,O.jsx)(`span`,{className:`pointer-events-none h-4 w-4 rounded-full border border-black/25 dark:border-white/25`,style:{backgroundColor:E},"aria-hidden":`true`}),t[94]=E,t[95]=an);let on;t[96]===je?on=t[97]:(on=e=>{je(e.target.value)},t[96]=je,t[97]=on);let sn;t[98]!==E||t[99]!==on?(sn=(0,O.jsx)(`input`,{type:`color`,value:E,"aria-label":`Primary color`,className:`absolute inset-0 cursor-pointer opacity-0`,onChange:on}),t[98]=E,t[99]=on,t[100]=sn):sn=t[100];let cn;t[101]!==an||t[102]!==sn?(cn=(0,O.jsx)(`div`,{className:Ue,children:(0,O.jsxs)(`label`,{className:rn,children:[an,sn]})}),t[101]=an,t[102]=sn,t[103]=cn):cn=t[103];let ln;t[104]!==k||t[105]!==cn?(ln=(0,O.jsx)(w,{title:`Primary Color`,description:`Choose the primary accent color used across the app. Click the label to reset to default.`,controlLayout:`row-end`,onTitleClick:k,action:cn}),t[104]=k,t[105]=cn,t[106]=ln):ln=t[106];let un;t[107]!==Rt||t[108]!==Wt||t[109]!==qt||t[110]!==nn||t[111]!==ln?(un=(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[Rt,Wt,qt,nn,ln]})}),t[107]=Rt,t[108]=Wt,t[109]=qt,t[110]=nn,t[111]=ln,t[112]=un):un=t[112];let dn;t[113]!==q||t[114]!==un?(dn=(0,O.jsxs)(fe,{className:`shrink-0`,children:[q,un]}),t[113]=q,t[114]=un,t[115]=dn):dn=t[115];let fn;t[116]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,O.jsx)(me,{title:`Settings`,className:`[&>div:first-child]:py-2`,sticky:!1}),t[116]=fn):fn=t[116];let pn=`Set how many turns a long-running agent chat can take before Tarsk asks whether to continue. Default: ${A} turns.`,mn;t[117]===Et?mn=t[118]:(mn=()=>{Et()},t[117]=Et,t[118]=mn);let hn=Ne||Fe,gn;t[119]!==j||t[120]!==wt||t[121]!==mn||t[122]!==hn?(gn=(0,O.jsx)(ge,{type:`number`,min:1,step:1,value:j,onChange:wt,onBlur:mn,disabled:hn,"aria-label":`Maximum turn count`,className:`w-28 text-right font-mono tabular-nums flex-shrink-0`}),t[119]=j,t[120]=wt,t[121]=mn,t[122]=hn,t[123]=gn):gn=t[123];let _n;t[124]!==pn||t[125]!==gn?(_n=(0,O.jsx)(w,{title:`Maximum Turn Count`,description:pn,controlLayout:`row-end`,action:gn}),t[124]=pn,t[125]=gn,t[126]=_n):_n=t[126];let vn;t[127]===it?vn=t[128]:(vn=e=>{it(e)},t[127]=it,t[128]=vn);let yn=nt||rt,bn;t[129]!==vn||t[130]!==yn||t[131]!==tt?(bn=(0,O.jsx)(w,{title:`AI Voice Cleanup`,description:`After stopping voice recording, run the transcription through AI to remove filler words, false starts, and repetitions.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:tt,onChange:vn,disabled:yn,ariaLabel:`AI Voice Cleanup`})}),t[129]=vn,t[130]=yn,t[131]=tt,t[132]=bn):bn=t[132];let xn;t[133]===ct?xn=t[134]:(xn=e=>{ct(e)},t[133]=ct,t[134]=xn);let Sn=ot||st,Cn;t[135]!==at||t[136]!==xn||t[137]!==Sn?(Cn=(0,O.jsx)(w,{title:`Spend`,description:`Show an estimated spend counter in the chat header.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:at,onChange:xn,disabled:Sn,ariaLabel:`Spend`})}),t[135]=at,t[136]=xn,t[137]=Sn,t[138]=Cn):Cn=t[138];let wn;t[139]!==F||t[140]!==P||t[141]!==Ze||t[142]!==Xe||t[143]!==Ke||t[144]!==N?.granted||t[145]!==N?.isMacOS||t[146]!==N?.message?(wn=N?.isMacOS&&(0,O.jsx)(w,{title:`Screen & Audio Recording`,description:`Tarsk needs this macOS permission to capture screen content for browser tools and screen sharing features.`,controlLayout:`row-end`,action:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!P&&N?.granted?(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(p,{className:`h-4 w-4 text-green-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-green-600 dark:text-green-400`),children:`Permission granted`})]}):P?null:(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(g,{className:`h-4 w-4 text-amber-500`}),(0,O.jsx)(`span`,{className:m(o.body,`text-amber-600 dark:text-amber-400`),children:`Permission not granted`})]}),(0,O.jsxs)(oe,{variant:`ghost`,size:`icon-sm`,className:`h-7 w-7 shrink-0 rounded-full border-0 bg-background hover:bg-background hover:text-foreground`,onClick:()=>void Xe(),disabled:P,children:[P?(0,O.jsx)(te,{className:`h-3.5 w-3.5 animate-spin`}):(0,O.jsx)(l,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Refresh permission status`})]})]}),children:!P&&!N?.granted?(0,O.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,O.jsx)(`p`,{className:o.bodyMuted,children:N?.message??`Tarsk needs Screen & Audio Recording permission to use browser tools.`}),(0,O.jsx)(oe,{size:`sm`,onClick:()=>void Ze(),disabled:F,className:`w-fit`,children:F?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(te,{className:`h-4 w-4 mr-2 animate-spin`}),`Opening Settings...`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ee,{className:`h-4 w-4 mr-2`}),`Open System Settings`]})}),Ke&&(0,O.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-md bg-destructive/10 text-destructive`,children:[(0,O.jsx)(u,{className:`h-4 w-4 mt-0.5 flex-shrink-0`}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,O.jsx)(`p`,{className:o.body,children:`Failed to open System Settings`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:Ke}),(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Please open it manually:`,` `,(0,O.jsx)(`strong`,{children:`System Settings > Privacy & Security > Screen & System Audio Recording`})]})]})]})]}):null}),t[139]=F,t[140]=P,t[141]=Ze,t[142]=Xe,t[143]=Ke,t[144]=N?.granted,t[145]=N?.isMacOS,t[146]=N?.message,t[147]=wn):wn=t[147];let Tn;t[148]!==B||t[149]!==ft||t[150]!==lt||t[151]!==z||t[152]!==dt||t[153]!==ut||t[154]!==pt?(Tn=ut&&(0,O.jsx)(w,{title:`Sandbox`,description:`Sandbox tools like bash and skill script execution to allow running and testing code safely without risking your system, files, or data.`,controlLayout:`row-end`,action:(0,O.jsx)(Se,{value:lt&&z,onChange:e=>{e&&!z||pt(e).catch(qe)},disabled:B||ft,disableOn:!z,ariaLabel:`Sandbox`}),children:!B&&!z?(0,O.jsxs)(`div`,{className:`flex items-start gap-2 text-destructive`,children:[(0,O.jsx)(g,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,O.jsx)(`p`,{className:o.bodyMuted,children:dt||`Seatbelt sandbox failed its health check and cannot be enabled.`})]}):null}),t[148]=B,t[149]=ft,t[150]=lt,t[151]=z,t[152]=dt,t[153]=ut,t[154]=pt,t[155]=Tn):Tn=t[155];let En;t[156]===vt?En=t[157]:(En=e=>{vt(e)},t[156]=vt,t[157]=En);let Dn=gt||_t,Q;t[158]!==V||t[159]!==En||t[160]!==Dn?(Q=(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsx)(`span`,{className:`inline-flex`,children:(0,O.jsx)(Se,{value:V,onChange:En,disabled:Dn,ariaLabel:`Logging`})})}),t[158]=V,t[159]=En,t[160]=Dn,t[161]=Q):Q=t[161];let On=V&&H?`max-w-sm cursor-pointer`:`max-w-sm`,kn;t[162]!==Mt||t[163]!==V||t[164]!==H?(kn=V&&H?()=>void Mt():void 0,t[162]=Mt,t[163]=V,t[164]=H,t[165]=kn):kn=t[165];let An;t[166]!==V||t[167]!==H?(An=V&&H?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`p`,{children:`Click to copy log file path`}),(0,O.jsx)(`p`,{className:m(o.mono,`mt-1 break-all`),children:H})]}):(0,O.jsx)(`p`,{children:`Enable logging to write to a local file.`}),t[166]=V,t[167]=H,t[168]=An):An=t[168];let jn;t[169]!==On||t[170]!==kn||t[171]!==An?(jn=(0,O.jsx)(ae,{className:On,onClick:kn,children:An}),t[169]=On,t[170]=kn,t[171]=An,t[172]=jn):jn=t[172];let Mn;t[173]!==Q||t[174]!==jn?(Mn=(0,O.jsxs)(se,{children:[Q,jn]}),t[173]=Q,t[174]=jn,t[175]=Mn):Mn=t[175];let Nn;t[176]!==ht||t[177]!==mt||t[178]!==V?(Nn=V&&mt&&ht&&(0,O.jsxs)(`p`,{className:`${o.bodyMuted} mt-3`,children:[`Also sending logs to Better Stack at`,` `,(0,O.jsx)(`span`,{className:o.mono,children:ht})]}),t[176]=ht,t[177]=mt,t[178]=V,t[179]=Nn):Nn=t[179];let Pn;t[180]!==Mn||t[181]!==Nn?(Pn=(0,O.jsx)(w,{title:`Logging`,description:`Write verbose application logs to a local file. When Better Stack environment variables are configured, logs are sent there too.`,controlLayout:`row-end`,action:Mn,children:Nn}),t[180]=Mn,t[181]=Nn,t[182]=Pn):Pn=t[182];let Fn=R===`network`,In;t[183]===et?In=t[184]:(In=e=>{et(e?`network`:`local`)},t[183]=et,t[184]=In);let Ln=Qe||$e,Rn;t[185]!==Fn||t[186]!==In||t[187]!==Ln?(Rn=(0,O.jsx)(Se,{value:Fn,onChange:In,disabled:Ln,ariaLabel:`Mobile & Network Access`}),t[185]=Fn,t[186]=In,t[187]=Ln,t[188]=Rn):Rn=t[188];let zn;t[189]!==Nt||t[190]!==U||t[191]!==W||t[192]!==I||t[193]!==G?(zn=G&&W&&(0,O.jsxs)(`div`,{className:`mt-3`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsxs)(`p`,{className:o.bodyMuted,children:[`Available on the network at:`,` `,(0,O.jsx)(`span`,{className:o.mono,children:W})]}),(0,O.jsxs)(se,{children:[(0,O.jsx)(ce,{asChild:!0,children:(0,O.jsxs)(`button`,{type:`button`,onClick:()=>void U(),className:`inline-flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm transition-colors hover:bg-background`,children:[Nt?(0,O.jsx)(s,{className:`h-3.5 w-3.5 text-green-500`}):(0,O.jsx)(f,{className:`h-3.5 w-3.5`}),(0,O.jsx)(`span`,{className:`sr-only`,children:`Copy network URL`})]})}),(0,O.jsx)(ae,{children:Nt?`Copied!`:`Copy to clipboard`})]})]}),I&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-1`,children:`You will need to restart for this setting to take effect.`})]}),t[189]=Nt,t[190]=U,t[191]=W,t[192]=I,t[193]=G,t[194]=zn):zn=t[194];let Bn;t[195]!==L||t[196]!==R?(Bn=R===`network`&&L.length===0&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`No network IP addresses were detected on this computer.`}),t[195]=L,t[196]=R,t[197]=Bn):Bn=t[197];let Vn;t[198]!==I||t[199]!==R?(Vn=I&&R===`local`&&(0,O.jsx)(`p`,{className:`${o.bodyMuted} mt-3`,children:`You will need to restart for this setting to take effect.`}),t[198]=I,t[199]=R,t[200]=Vn):Vn=t[200];let Hn;t[201]!==Rn||t[202]!==zn||t[203]!==Bn||t[204]!==Vn?(Hn=(0,O.jsxs)(w,{title:`Mobile & Network Access`,description:`Allow the Tarsk mobile app or other web browsers to access Tarsk on the wifi network.`,controlLayout:`row-end`,action:Rn,children:[zn,Bn,Vn]}),t[201]=Rn,t[202]=zn,t[203]=Bn,t[204]=Vn,t[205]=Hn):Hn=t[205];let Un;t[206]!==_n||t[207]!==bn||t[208]!==Cn||t[209]!==wn||t[210]!==Tn||t[211]!==Pn||t[212]!==Hn?(Un=(0,O.jsxs)(fe,{className:`shrink-0`,children:[fn,(0,O.jsx)(ue,{className:`max-w-none pt-0`,children:(0,O.jsxs)(de,{children:[_n,bn,Cn,wn,Tn,Pn,Hn]})})]}),t[206]=_n,t[207]=bn,t[208]=Cn,t[209]=wn,t[210]=Tn,t[211]=Pn,t[212]=Hn,t[213]=Un):Un=t[213];let Wn;t[214]!==W||t[215]!==Ft?(Wn=Ft?(0,O.jsxs)(fe,{className:`shrink-0`,children:[(0,O.jsx)(me,{title:`Mobile App`,description:`Scan this code with the Tarsk mobile app to connect on your Wi-Fi network.`,sticky:!1}),(0,O.jsx)(`div`,{className:`flex flex-col items-center px-6 pb-6 pt-6`,children:(0,O.jsx)(`div`,{className:`rounded-lg bg-background p-3`,children:(0,O.jsx)(ne,{value:W,size:128,bgColor:`hsl(var(--background))`,fgColor:`hsl(var(--foreground))`,level:`M`})})})]}):null,t[214]=W,t[215]=Ft,t[216]=Wn):Wn=t[216];let $;t[217]!==dn||t[218]!==Un||t[219]!==Wn?($=(0,O.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[dn,Un,Wn]}),t[217]=dn,t[218]=Un,t[219]=Wn,t[220]=$):$=t[220];let Gn;return t[221]!==bt||t[222]!==$?(Gn=(0,O.jsx)(he,{loading:bt,children:$}),t[221]=bt,t[222]=$,t[223]=Gn):Gn=t[223],Gn}function qe(){}function Je(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}function Ye(e){let t=e.icon;return(0,O.jsx)(pe,{value:e.value,"aria-label":e.label,className:He,children:(0,O.jsx)(t,{className:`h-4 w-4`,"aria-hidden":`true`})},e.value)}export{Ke as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Rr as n,i as r,ki as i,yt as a}from"./interactive-BrHVRHmQ.js";import{Dr as o,Eo as s,at as c,dt as l,ot as u,rt as d,si as f,ut as p}from"./onboarding-KBcwP-kU.js";import{r as m}from"./store-B_cK-gsT.js";import{t as h}from"./use-toast-hxHsVv6a.js";import{U as g}from"./index-CJCQ4bTo.js";import{t as _}from"./use-settings-page-loading-BU2CDnfE.js";var v=e(i(),1),y=t();function b(){let e=m(e=>e.selectedThreadId),[t,i]=(0,v.useState)(``),[b,x]=(0,v.useState)(!0),[S,C]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{e&&x(!0)},[e]),(0,v.useEffect)(()=>{if(!e){x(!1);return}x(!0),o(e,`AGENTS.md`).then(e=>i(e.content)).catch(()=>i(``)).finally(()=>x(!1))},[e]);let w=_(e,[b]);async function T(){if(e){C(!0);try{await f(e,`AGENTS.md`,t),h({title:`Instructions saved`})}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save instructions`,variant:`destructive`})}finally{C(!1)}}}return e?(0,y.jsx)(u,{loading:w,children:(0,y.jsx)(c,{children:(0,y.jsxs)(l,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,y.jsx)(d,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md.`,sticky:!1,action:(0,y.jsx)(s,{onClick:T,disabled:S,children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,y.jsx)(g,{value:t,onChange:e=>i(e.target.value),className:r(n.mono,`frosted-scrollbar flex-1 min-h-0 resize-none`),placeholder:`Add instructions for your agent in AGENTS.md...`,disabled:S})]})})}):(0,y.jsx)(p,{children:`Select a thread to edit instructions.`})}export{b as SettingsInstructionsView,b as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Rr as n,i as r,ki as i,yt as a}from"./interactive-BrHVRHmQ.js";import{Dr as o,Eo as s,at as c,dt as l,ot as u,rt as d,si as f,ut as p}from"./onboarding-DTF0L4Nt.js";import{r as m}from"./store-B_cK-gsT.js";import{t as h}from"./use-toast-hxHsVv6a.js";import{U as g}from"./index-CsUbYVa9.js";import{t as _}from"./use-settings-page-loading-BU2CDnfE.js";var v=e(i(),1),y=t();function b(){let e=m(e=>e.selectedThreadId),[t,i]=(0,v.useState)(``),[b,x]=(0,v.useState)(!0),[S,C]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{e&&x(!0)},[e]),(0,v.useEffect)(()=>{if(!e){x(!1);return}x(!0),o(e,`AGENTS.md`).then(e=>i(e.content)).catch(()=>i(``)).finally(()=>x(!1))},[e]);let w=_(e,[b]);async function T(){if(e){C(!0);try{await f(e,`AGENTS.md`,t),h({title:`Instructions saved`})}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save instructions`,variant:`destructive`})}finally{C(!1)}}}return e?(0,y.jsx)(u,{loading:w,children:(0,y.jsx)(c,{children:(0,y.jsxs)(l,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,y.jsx)(d,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md.`,sticky:!1,action:(0,y.jsx)(s,{onClick:T,disabled:S,children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,y.jsx)(g,{value:t,onChange:e=>i(e.target.value),className:r(n.mono,`frosted-scrollbar flex-1 min-h-0 resize-none`),placeholder:`Add instructions for your agent in AGENTS.md...`,disabled:S})]})})}):(0,y.jsx)(p,{children:`Select a thread to edit instructions.`})}export{b as SettingsInstructionsView,b as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime-aKtaBQYM.js";import{B as e,Di as t,Oi as n,Rr as r,b as i,i as a,ki as o}from"./interactive-BrHVRHmQ.js";import{Ct as s,Eo as c,St as l,Tt as u,it as d,wt as f,x as p}from"./onboarding-KBcwP-kU.js";import{t as m}from"./skeleton-CJSNEi3C.js";import"./card-BDQUHsPD.js";var h=n();o();var g=t();function _(e){let t=(0,h.c)(14),{icon:n,title:i,description:o,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=a(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,g.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=a(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===i?f=t[6]:(f=(0,g.jsx)(`h3`,{className:d,children:i}),t[5]=i,t[6]=f);let p;t[7]===o?p=t[8]:(p=o?(0,g.jsx)(`p`,{className:a(r.bodyMuted,`mb-3`),children:o}):null,t[7]=o,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function v(t){let n=(0,h.c)(12),{placeholder:r,value:i,onChange:o,className:s}=t,c=s??`mb-4`,l;n[0]===c?l=n[1]:(l=a(`relative`,c),n[0]=c,n[1]=l);let u;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(e,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),n[2]=u):u=n[2];let d;n[3]===o?d=n[4]:(d=e=>o(e.target.value),n[3]=o,n[4]=d);let f;n[5]!==r||n[6]!==d||n[7]!==i?(f=(0,g.jsx)(p,{placeholder:r,value:i,onChange:d,className:`pl-8`}),n[5]=r,n[6]=d,n[7]=i,n[8]=f):f=n[8];let m;return n[9]!==l||n[10]!==f?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f]}),n[9]=l,n[10]=f,n[11]=m):m=n[11],m}function y(e){let t=(0,h.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,g.jsx)(`div`,{className:`grid gap-2 [grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))]`,children:n}),t[0]=n,t[1]=r),r}function b(e){let t=(0,h.c)(3),{searchQuery:n,emptyLabel:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=a(r.bodyMuted,`text-center py-8`),t[0]=o):o=t[0];let s=n.trim()?`No results for "${n}"`:i,c;return t[1]===s?c=t[2]:(c=(0,g.jsx)(`p`,{className:o,children:s}),t[1]=s,t[2]=c),c}function x(e){let t=(0,h.c)(3),{message:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(r.bodyMuted,`text-center py-8`),t[0]=i):i=t[0];let o;return t[1]===n?o=t[2]:(o=(0,g.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=o),o}var S=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function C(e){let t=(0,h.c)(19),{loading:n,items:r,emptyState:o,getKey:p,columnsClassName:v,compact:y,showHeader:b,renderContent:x,renderMiddle:C,onItemClick:w,itemClickLabel:T,onDelete:E,deleteAriaLabel:D,deleteTooltip:O}=e,k=v===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:v,A=y===void 0?!1:y,j=b===void 0?!0:b,M;t[0]===j?M=t[1]:(M=j?(0,g.jsx)(d,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==D||t[5]!==O||t[6]!==o||t[7]!==p||t[8]!==T||t[9]!==r||t[10]!==n||t[11]!==E||t[12]!==w||t[13]!==x||t[14]!==C?(N=n?(0,g.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,g.jsx)(m,{className:a(`w-full`,A?`h-9`:`h-12`)}),(0,g.jsx)(m,{className:a(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,g.jsx)(_,{...o}):(0,g.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,g.jsxs)(`div`,{className:a(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,w&&`cursor-pointer`),role:w?`button`:void 0,tabIndex:w?0:void 0,"aria-label":w?T?.(e):void 0,onClick:w?()=>w(e):void 0,onKeyDown:w?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),w(e))}:void 0,children:[x(e),C?.(e),(0,g.jsx)(f,{children:(0,g.jsxs)(l,{children:[(0,g.jsx)(u,{asChild:!0,children:(0,g.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:S,onClick:t=>{t.stopPropagation(),E(e)},"aria-label":D(e),children:(0,g.jsx)(i,{className:`h-4 w-4`})})}),(0,g.jsx)(s,{children:O})]})})]},p(e)))}),t[2]=k,t[3]=A,t[4]=D,t[5]=O,t[6]=o,t[7]=p,t[8]=T,t[9]=r,t[10]=n,t[11]=E,t[12]=w,t[13]=x,t[14]=C,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,g.jsxs)(g.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{b as a,y as i,_ as n,v as o,C as r,x as s,S as t};
1
+ import"./rolldown-runtime-aKtaBQYM.js";import{B as e,Di as t,Oi as n,Rr as r,b as i,i as a,ki as o}from"./interactive-BrHVRHmQ.js";import{Ct as s,Eo as c,St as l,Tt as u,it as d,wt as f,x as p}from"./onboarding-DTF0L4Nt.js";import{t as m}from"./skeleton-CJSNEi3C.js";import"./card-BDQUHsPD.js";var h=n();o();var g=t();function _(e){let t=(0,h.c)(14),{icon:n,title:i,description:o,bordered:s}=e,c=(s===void 0?!0:s)&&`border border-dashed rounded-lg`,l;t[0]===c?l=t[1]:(l=a(`text-center py-12 mb-8`,c),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,g.jsx)(n,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),t[2]=n,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=a(r.emptyStateTitle,`mb-1`),t[4]=d):d=t[4];let f;t[5]===i?f=t[6]:(f=(0,g.jsx)(`h3`,{className:d,children:i}),t[5]=i,t[6]=f);let p;t[7]===o?p=t[8]:(p=o?(0,g.jsx)(`p`,{className:a(r.bodyMuted,`mb-3`),children:o}):null,t[7]=o,t[8]=p);let m;return t[9]!==l||t[10]!==u||t[11]!==f||t[12]!==p?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f,p]}),t[9]=l,t[10]=u,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function v(t){let n=(0,h.c)(12),{placeholder:r,value:i,onChange:o,className:s}=t,c=s??`mb-4`,l;n[0]===c?l=n[1]:(l=a(`relative`,c),n[0]=c,n[1]=l);let u;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,g.jsx)(e,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),n[2]=u):u=n[2];let d;n[3]===o?d=n[4]:(d=e=>o(e.target.value),n[3]=o,n[4]=d);let f;n[5]!==r||n[6]!==d||n[7]!==i?(f=(0,g.jsx)(p,{placeholder:r,value:i,onChange:d,className:`pl-8`}),n[5]=r,n[6]=d,n[7]=i,n[8]=f):f=n[8];let m;return n[9]!==l||n[10]!==f?(m=(0,g.jsxs)(`div`,{className:l,children:[u,f]}),n[9]=l,n[10]=f,n[11]=m):m=n[11],m}function y(e){let t=(0,h.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,g.jsx)(`div`,{className:`grid gap-2 [grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))]`,children:n}),t[0]=n,t[1]=r),r}function b(e){let t=(0,h.c)(3),{searchQuery:n,emptyLabel:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=a(r.bodyMuted,`text-center py-8`),t[0]=o):o=t[0];let s=n.trim()?`No results for "${n}"`:i,c;return t[1]===s?c=t[2]:(c=(0,g.jsx)(`p`,{className:o,children:s}),t[1]=s,t[2]=c),c}function x(e){let t=(0,h.c)(3),{message:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=a(r.bodyMuted,`text-center py-8`),t[0]=i):i=t[0];let o;return t[1]===n?o=t[2]:(o=(0,g.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=o),o}var S=`shrink-0 items-center justify-center text-muted-foreground opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto can-hover:hover:bg-destructive can-hover:hover:text-destructive-foreground transition-[opacity,color,background-color]`;function C(e){let t=(0,h.c)(19),{loading:n,items:r,emptyState:o,getKey:p,columnsClassName:v,compact:y,showHeader:b,renderContent:x,renderMiddle:C,onItemClick:w,itemClickLabel:T,onDelete:E,deleteAriaLabel:D,deleteTooltip:O}=e,k=v===void 0?`grid-cols-[minmax(0,1fr)_1.75rem]`:v,A=y===void 0?!1:y,j=b===void 0?!0:b,M;t[0]===j?M=t[1]:(M=j?(0,g.jsx)(d,{title:`Installed`}):null,t[0]=j,t[1]=M);let N;t[2]!==k||t[3]!==A||t[4]!==D||t[5]!==O||t[6]!==o||t[7]!==p||t[8]!==T||t[9]!==r||t[10]!==n||t[11]!==E||t[12]!==w||t[13]!==x||t[14]!==C?(N=n?(0,g.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,g.jsx)(m,{className:a(`w-full`,A?`h-9`:`h-12`)}),(0,g.jsx)(m,{className:a(`w-full`,A?`h-9`:`h-12`)})]}):r.length===0?(0,g.jsx)(_,{...o}):(0,g.jsx)(`div`,{className:`divide-y divide-table-border`,children:r.map(e=>(0,g.jsxs)(`div`,{className:a(`group grid items-center gap-3 px-3 hover:bg-muted/30`,A?`min-h-10 py-2`:`min-h-13 py-3`,k,w&&`cursor-pointer`),role:w?`button`:void 0,tabIndex:w?0:void 0,"aria-label":w?T?.(e):void 0,onClick:w?()=>w(e):void 0,onKeyDown:w?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),w(e))}:void 0,children:[x(e),C?.(e),(0,g.jsx)(f,{children:(0,g.jsxs)(l,{children:[(0,g.jsx)(u,{asChild:!0,children:(0,g.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:S,onClick:t=>{t.stopPropagation(),E(e)},"aria-label":D(e),children:(0,g.jsx)(i,{className:`h-4 w-4`})})}),(0,g.jsx)(s,{children:O})]})})]},p(e)))}),t[2]=k,t[3]=A,t[4]=D,t[5]=O,t[6]=o,t[7]=p,t[8]=T,t[9]=r,t[10]=n,t[11]=E,t[12]=w,t[13]=x,t[14]=C,t[15]=N):N=t[15];let P;return t[16]!==M||t[17]!==N?(P=(0,g.jsxs)(g.Fragment,{children:[M,N]}),t[16]=M,t[17]=N,t[18]=P):P=t[18],P}export{b as a,y as i,_ as n,v as o,C as r,x as s,S as t};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$n as t,Di as n,Oi as r,Qn as i,Rr as a,Sn as o,dn as s,i as c,ki as l,nr as u,yt as d}from"./interactive-BrHVRHmQ.js";import{Kt as f,rt as p}from"./react-vendor-7n7LyU5o.js";import{Ct as m,Eo as h,St as g,Tt as _,a as v,dt as y,gt as b,hi as x,la as S,o as C,rn as w,rt as T,wt as E,x as D}from"./onboarding-KBcwP-kU.js";import{t as O}from"./use-toast-hxHsVv6a.js";var k=r(),A=e(l(),1),j=n(),M=1e3,N=[t.INFO,t.WARN,t.ERROR],ee=[...N],te=`inline-flex h-11 shrink-0 rounded-full border bg-muted/40 p-2`,ne=c(a.compact,`h-7 min-w-0 rounded-full border-0 px-2.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`);function P(e,t){return t?[e.event,e.message,I(e.level),e.data===void 0?``:L(e.data)].join(` `).toLowerCase().includes(t):!0}function F(e){let n=typeof e==`number`?e:Number(e);return n===t.DEBUG||n===t.INFO||n===t.WARN||n===t.ERROR?n:null}function I(e){let t=F(e);return t===null?String(e):u(t)}function re(e,t){let n=F(e.level);return n!==null&&t.has(n)}function L(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function R(e){switch(F(e)??e){case t.ERROR:return`text-destructive`;case t.WARN:return`text-amber-600 dark:text-amber-400`;case t.INFO:return`text-foreground`;default:return`text-muted-foreground`}}function z(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function B(e){let t=[`${e.ts} ${I(e.level)} ${e.event}`,e.message];return e.data!==void 0&&t.push(L(e.data)),t.join(`
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$n as t,Di as n,Oi as r,Qn as i,Rr as a,Sn as o,dn as s,i as c,ki as l,nr as u,yt as d}from"./interactive-BrHVRHmQ.js";import{Kt as f,rt as p}from"./react-vendor-CCZMLxmy.js";import{Ct as m,Eo as h,St as g,Tt as _,a as v,dt as y,gt as b,hi as x,la as S,o as C,rn as w,rt as T,wt as E,x as D}from"./onboarding-DTF0L4Nt.js";import{t as O}from"./use-toast-hxHsVv6a.js";var k=r(),A=e(l(),1),j=n(),M=1e3,N=[t.INFO,t.WARN,t.ERROR],ee=[...N],te=`inline-flex h-11 shrink-0 rounded-full border bg-muted/40 p-2`,ne=c(a.compact,`h-7 min-w-0 rounded-full border-0 px-2.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`);function P(e,t){return t?[e.event,e.message,I(e.level),e.data===void 0?``:L(e.data)].join(` `).toLowerCase().includes(t):!0}function F(e){let n=typeof e==`number`?e:Number(e);return n===t.DEBUG||n===t.INFO||n===t.WARN||n===t.ERROR?n:null}function I(e){let t=F(e);return t===null?String(e):u(t)}function re(e,t){let n=F(e.level);return n!==null&&t.has(n)}function L(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function R(e){switch(F(e)??e){case t.ERROR:return`text-destructive`;case t.WARN:return`text-amber-600 dark:text-amber-400`;case t.INFO:return`text-foreground`;default:return`text-muted-foreground`}}function z(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function B(e){let t=[`${e.ts} ${I(e.level)} ${e.event}`,e.message];return e.data!==void 0&&t.push(L(e.data)),t.join(`
2
2
  `)}var ie=(0,A.memo)(function(e){let t=(0,k.c)(40),{entry:n,copied:r,onCopy:i}=e,a;t[0]!==n||t[1]!==i?(a=()=>i(n),t[0]=n,t[1]=i,t[2]=a):a=t[2];let l;t[3]===r?l=t[4]:(l=r?(0,j.jsx)(o,{className:`h-3.5 w-3.5 text-green-500`}):(0,j.jsx)(s,{className:`h-3.5 w-3.5`}),t[3]=r,t[4]=l);let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,j.jsx)(`span`,{className:`sr-only`,children:`Copy log entry`}),t[5]=u):u=t[5];let d;t[6]!==a||t[7]!==l?(d=(0,j.jsx)(_,{asChild:!0,children:(0,j.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-7 w-7 items-center justify-center rounded-md border border-border bg-background/90 text-foreground shadow-sm hover:bg-background`,children:[l,u]})}),t[6]=a,t[7]=l,t[8]=d):d=t[8];let f=r?`Copied!`:`Copy to clipboard`,p;t[9]===f?p=t[10]:(p=(0,j.jsx)(m,{children:f}),t[9]=f,t[10]=p);let h;t[11]!==d||t[12]!==p?(h=(0,j.jsx)(`div`,{className:`absolute top-2 right-2 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`,children:(0,j.jsxs)(g,{children:[d,p]})}),t[11]=d,t[12]=p,t[13]=h):h=t[13];let v;t[14]===n.ts?v=t[15]:(v=z(n.ts),t[14]=n.ts,t[15]=v);let y;t[16]===v?y=t[17]:(y=(0,j.jsx)(`span`,{className:`text-muted-foreground tabular-nums`,children:v}),t[16]=v,t[17]=y);let b;t[18]===n.level?b=t[19]:(b=c(`font-semibold`,R(n.level)),t[18]=n.level,t[19]=b);let x;t[20]===n.level?x=t[21]:(x=I(n.level),t[20]=n.level,t[21]=x);let S;t[22]!==b||t[23]!==x?(S=(0,j.jsx)(`span`,{className:b,children:x}),t[22]=b,t[23]=x,t[24]=S):S=t[24];let C;t[25]===n.event?C=t[26]:(C=(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:n.event}),t[25]=n.event,t[26]=C);let w;t[27]!==S||t[28]!==C||t[29]!==y?(w=(0,j.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[y,S,C]}),t[27]=S,t[28]=C,t[29]=y,t[30]=w):w=t[30];let T;t[31]===n.message?T=t[32]:(T=(0,j.jsx)(`p`,{className:`mt-0.5 whitespace-pre-wrap break-words text-foreground`,children:n.message}),t[31]=n.message,t[32]=T);let E;t[33]===n.data?E=t[34]:(E=n.data===void 0?null:(0,j.jsx)(`pre`,{className:`mt-1 max-h-40 overflow-auto whitespace-pre-wrap break-words text-muted-foreground`,children:L(n.data)}),t[33]=n.data,t[34]=E);let D;return t[35]!==w||t[36]!==T||t[37]!==E||t[38]!==h?(D=(0,j.jsxs)(`li`,{className:`group relative min-w-0 px-3 py-2 pr-10 hover:bg-muted/40 select-text`,children:[h,w,T,E]}),t[35]=w,t[36]=T,t[37]=E,t[38]=h,t[39]=D):D=t[39],D});function V(){let[e]=f(),t=e.get(`q`)??``,[n,r]=(0,A.useState)([]),[l,k]=(0,A.useState)(t),[F,I]=(0,A.useState)(ee),[L,R]=(0,A.useState)(!0),[z,V]=(0,A.useState)(!1),[H,U]=(0,A.useState)(null),[W,G]=(0,A.useState)(!1),[K,q]=(0,A.useState)(null),J=(0,A.useRef)(null),Y=(0,A.useRef)(null);(0,A.useEffect)(()=>{t&&k(t)},[t]),(0,A.useEffect)(()=>{let e=!1,t=null,n=null,a=new AbortController,o=!1,s=!1;function c(){e||n||(R(!0),n=setTimeout(()=>{n=null,l()},M))}async function l(){if(!e){R(!0);try{let n=await x({signal:a.signal});if(!n||e){n&&e&&n.cancel().catch(()=>{});return}t=n.getReader();let s=new TextDecoder,l=``;for(o=!0,R(!1);!e;){let{done:e,value:n}=await t.read();if(e)break;l+=s.decode(n,{stream:!0});let a=l.split(`
3
3
  `);l=a.pop()??``;for(let e of a){let t=e.trim();if(!t)continue;let n;try{n=JSON.parse(t)}catch{continue}if(n.type!==`ping`){if(n.type===`snapshot`){r(n.entries);continue}if(n.type===`cleared`){r([]);continue}r(e=>{let t=[...e,n.entry];return t.length>5e3?t.slice(t.length-i):t})}}}e||c()}catch(t){if(e||a.signal.aborted)return;let n=t instanceof Error?t.message:String(t);if(S(n)||o){c();return}R(!1),s||(s=!0,O({title:`Failed to connect to log feed`,description:n,variant:`destructive`})),c()}}}return l(),()=>{e=!0,a.abort(),n&&clearTimeout(n),t?.cancel().catch(()=>{})}},[]),(0,A.useEffect)(()=>()=>{J.current&&clearTimeout(J.current),Y.current&&clearTimeout(Y.current)},[]);let X=(0,A.useCallback)(async e=>{try{await navigator.clipboard.writeText(B(e)),U(e.id),J.current&&clearTimeout(J.current),J.current=setTimeout(()=>{U(null),J.current=null},1500)}catch(e){O({title:`Failed to copy log entry`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}},[]);async function ae(e){if(e.length!==0)try{await navigator.clipboard.writeText(e.map(e=>B(e)).join(`
4
4