tarsk 0.6.88 → 0.6.89

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 (96) hide show
  1. package/README.md +63 -24
  2. package/dist/index.js +787 -738
  3. package/dist/node_modules/@libsql/darwin-x64/README.md +3 -0
  4. package/dist/node_modules/@libsql/{darwin-arm64 → darwin-x64}/index.node +0 -0
  5. package/dist/node_modules/@libsql/{darwin-arm64 → darwin-x64}/package.json +6 -6
  6. package/dist/public/assets/api-8Rp2LlXt.js +1 -0
  7. package/dist/public/assets/api-Cp9I7CxD.js +2 -0
  8. package/dist/public/assets/{async-error-boundary-FT8_xvjy.js → async-error-boundary-CFVUPiuG.js} +1 -1
  9. package/dist/public/assets/{browser-tab-DCjHytQ8.js → browser-tab-CPPorbL6.js} +2 -2
  10. package/dist/public/assets/{chat-dock-context-a2bV9cnz.js → chat-dock-context-DbiJNr3O.js} +1 -1
  11. package/dist/public/assets/chat-handlers-context-DYU2LQ5V.js +9 -0
  12. package/dist/public/assets/{commit-dialog-C1oUFznJ.js → commit-dialog-DPaci3dp.js} +1 -1
  13. package/dist/public/assets/{commit-error-dialog--NTHg7Aw.js → commit-error-dialog-Dnlkgb_H.js} +1 -1
  14. package/dist/public/assets/{conversation-history-view-CdfE7JTD.js → conversation-history-view-CqIugfyO.js} +1 -1
  15. package/dist/public/assets/{create-project-dialog-BdR6iQE9.js → create-project-dialog-DStWPoDE.js} +2 -2
  16. package/dist/public/assets/{create-project-workspace-DSTTGom_.js → create-project-workspace-CJ94yHAB.js} +2 -2
  17. package/dist/public/assets/{create-repo-dialog-gw-8Rpdm.js → create-repo-dialog-B_QiEz-v.js} +1 -1
  18. package/dist/public/assets/diff-view-4koPcOcE.js +4 -0
  19. package/dist/public/assets/{explorer-file-drop-CzyAqZgf.js → explorer-file-drop-DAP7ha-E.js} +1 -1
  20. package/dist/public/assets/explorer-tab-view-Bt9hRZUm.js +2 -0
  21. package/dist/public/assets/explorer-tree-CAs89lPz.js +1 -0
  22. package/dist/public/assets/{explorer-view-Daxl93oM.js → explorer-view-B1JuejkU.js} +2 -2
  23. package/dist/public/assets/index-CcAwxnT5.js +97 -0
  24. package/dist/public/assets/index-dNrgKdYv.css +1 -0
  25. package/dist/public/assets/{markdown-renderer-D2VcKU4g.js → markdown-renderer-DQONI6WG.js} +3 -3
  26. package/dist/public/assets/{mcp-manager-D1HmLT3t.js → mcp-manager-D2FG-h2e.js} +1 -1
  27. package/dist/public/assets/{model-list-controls-rXmaDp2r.js → model-list-controls-B6ofHWh3.js} +1 -1
  28. package/dist/public/assets/{onboarding-dialog-DSqBJyBa.js → onboarding-dialog-DAut3X4K.js} +1 -1
  29. package/dist/public/assets/{pill-tabs-DtdTmrg7.js → pill-tabs-BAhOHad7.js} +1 -1
  30. package/dist/public/assets/{project-coding-view-DP4qKePE.js → project-coding-view-B2FpHeiO.js} +1 -1
  31. package/dist/public/assets/{project-danger-zone-view-CGxIenpr.js → project-danger-zone-view-BqP1dcRT.js} +1 -1
  32. package/dist/public/assets/{project-env-vars-view-DKyQkh7h.js → project-env-vars-view-zhigkQFG.js} +1 -1
  33. package/dist/public/assets/{project-model-aliases-view-BewwJZAx.js → project-model-aliases-view-APAVFfym.js} +1 -1
  34. package/dist/public/assets/{project-settings-view-CE4nAz5B.js → project-settings-view-FnK-LRsv.js} +1 -1
  35. package/dist/public/assets/project-tools-view-Dmp5ViRC.js +1 -0
  36. package/dist/public/assets/providers-list-view-Clbp73Hh.js +1 -0
  37. package/dist/public/assets/{pull-request-dialog-nKYATjbm.js → pull-request-dialog-D40BQPMk.js} +1 -1
  38. package/dist/public/assets/{pull-with-changes-dialog-zzoFzCv4.js → pull-with-changes-dialog-pkXK-VP2.js} +1 -1
  39. package/dist/public/assets/query-keys-CcnonAAG.js +1 -0
  40. package/dist/public/assets/{remote-media-url-CyuN31H_.js → remote-media-url-C-GdJb-D.js} +1 -1
  41. package/dist/public/assets/{scroll-area-CGEZ1gAL.js → scroll-area-DGF9wUqQ.js} +1 -1
  42. package/dist/public/assets/{select-BR2pG61R.js → select-DMcNYwgt.js} +1 -1
  43. package/dist/public/assets/{settings-general-tabs-view-BWR0UX2P.js → settings-general-tabs-view-DBZQbihJ.js} +2 -2
  44. package/dist/public/assets/settings-general-view-0dhBET2R.js +1 -0
  45. package/dist/public/assets/{settings-list-Dgip9HpD.js → settings-list-Co3JPr9w.js} +1 -1
  46. package/dist/public/assets/{settings-logs-view-CS29x4VT.js → settings-logs-view-DvHXUDko.js} +2 -2
  47. package/dist/public/assets/settings-mcp-servers-view-414Dt5py.js +5 -0
  48. package/dist/public/assets/{settings-models-view-DS7nm54P.js → settings-models-view-ByeR7Enb.js} +1 -1
  49. package/dist/public/assets/{settings-plugins-view-avaUE36r.js → settings-plugins-view-8te2MPyh.js} +2 -2
  50. package/dist/public/assets/{settings-providers-view-B39k1iRQ.js → settings-providers-view-BAuv9gam.js} +2 -2
  51. package/dist/public/assets/{settings-remote-machines-view-BXondQG_.js → settings-remote-machines-view-CHyywazU.js} +1 -1
  52. package/dist/public/assets/{settings-setup-view-I5MGUi_D.js → settings-setup-view-Btp46Vh_.js} +2 -2
  53. package/dist/public/assets/{settings-skills-view-BKrUABbi.js → settings-skills-view-BNVx4bZl.js} +2 -2
  54. package/dist/public/assets/{settings-slack-view-B0p-96GC.js → settings-slack-view-Caly5yGt.js} +1 -1
  55. package/dist/public/assets/settings-slash-commands-view-m6mp1knu.js +1 -0
  56. package/dist/public/assets/{settings-statistics-view-B3g6BD7p.js → settings-statistics-view-BnOxr4sZ.js} +1 -1
  57. package/dist/public/assets/settings-storage-view-Dg8xfpTG.js +1 -0
  58. package/dist/public/assets/{settings-subagents-view-BziLwvNq.js → settings-subagents-view-CucwEk2A.js} +1 -1
  59. package/dist/public/assets/{settings-system-prompt-view-BqAk56cD.js → settings-system-prompt-view-CEDU2saT.js} +1 -1
  60. package/dist/public/assets/{settings-tab-bar-DYzU_lmi.js → settings-tab-bar-CdIbQ0WI.js} +1 -1
  61. package/dist/public/assets/settings-view-XcJhRclT.js +2 -0
  62. package/dist/public/assets/task-utils-Cnq9Eszt.js +1 -0
  63. package/dist/public/assets/tasks-view-B8_jkq_a.js +1 -0
  64. package/dist/public/assets/{terminal-panel-Bm_ZelN-.js → terminal-panel-xoLVfA-h.js} +1 -1
  65. package/dist/public/assets/{use-account-settings-query-C-zOdREq.js → use-account-settings-query-D_qL1I4w.js} +1 -1
  66. package/dist/public/assets/{use-active-dock-panel-instance-4Ss8lB9K.js → use-active-dock-panel-instance-kmJOnmL7.js} +1 -1
  67. package/dist/public/assets/use-git-check-BD9gdXpK.js +1 -0
  68. package/dist/public/assets/{use-installed-ai-files-DQey9Zm3.js → use-installed-ai-files-Nn-sN_V2.js} +1 -1
  69. package/dist/public/assets/{use-open-chat-dock-panel-DqfWJ8e8.js → use-open-chat-dock-panel-CXzpgxVs.js} +1 -1
  70. package/dist/public/assets/use-projects-B0xTjTaA.js +2 -0
  71. package/dist/public/assets/{web-CGP-jEpi.js → web-C1tBQoCB.js} +1 -1
  72. package/dist/public/assets/{web-CKC9gpFi.js → web-cJXG33sT.js} +1 -1
  73. package/dist/public/index.html +18 -18
  74. package/package.json +4 -4
  75. package/dist/node_modules/@libsql/darwin-arm64/README.md +0 -3
  76. package/dist/public/assets/account-view-DkuCOxkE.js +0 -1
  77. package/dist/public/assets/api-B_GSyYGh.js +0 -1
  78. package/dist/public/assets/api-C4ukGdyH.js +0 -2
  79. package/dist/public/assets/chat-handlers-context-2xSKzkKa.js +0 -9
  80. package/dist/public/assets/diff-view-B6JJNyn1.js +0 -4
  81. package/dist/public/assets/explorer-tab-view-CiUPh4uK.js +0 -2
  82. package/dist/public/assets/explorer-tree-BA12VLz_.js +0 -1
  83. package/dist/public/assets/index-CoY8DilQ.js +0 -97
  84. package/dist/public/assets/index-D14wLW4o.css +0 -1
  85. package/dist/public/assets/project-tools-view-CbDfst02.js +0 -1
  86. package/dist/public/assets/providers-list-view-BtwccvX2.js +0 -1
  87. package/dist/public/assets/query-keys-BwswkbMn.js +0 -1
  88. package/dist/public/assets/settings-general-view-BhtrDmJH.js +0 -1
  89. package/dist/public/assets/settings-mcp-servers-view-B5ithpfh.js +0 -5
  90. package/dist/public/assets/settings-slash-commands-view-DA1scWv1.js +0 -1
  91. package/dist/public/assets/settings-storage-view-BJvjhI4f.js +0 -1
  92. package/dist/public/assets/settings-view-zjMs7jNe.js +0 -2
  93. package/dist/public/assets/task-utils-BZPVmvY4.js +0 -1
  94. package/dist/public/assets/tasks-view-wFf77AQX.js +0 -1
  95. package/dist/public/assets/use-git-check-CumqGAvN.js +0 -1
  96. package/dist/public/assets/use-projects-CizIH2Fa.js +0 -2
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{r as a}from"./store-W78TGOIO.js";import{E as o,L as s,Wt as c,kr as l,wr as u}from"./api-C4ukGdyH.js";import{c as d,t as f}from"./utils-CqsIXqSC.js";import{t as p}from"./circle-DQwOli2u.js";import{r as m,t as h}from"./dialog-D_12AsZd.js";import{t as g}from"./button-DDaJhJP1.js";import{g as _,h as v,n as y,t as b,u as x}from"./dist-AbkJBHH5.js";import{o as S}from"./dist-2xH_pFmV.js";import{t as C}from"./label-BCs5CZEs.js";import{t as w}from"./dist-Dx8OsX8-.js";import{n as T,r as E,t as D}from"./dist-pCVg1Jdl.js";import{t as O}from"./use-toast-CKgZ8YeP.js";import{n as k}from"./explorer-tab-context-BwR8CM8l.js";import{t as A}from"./use-open-chat-dock-panel-DqfWJ8e8.js";import{t as j}from"./dist-CkGJjZXY.js";import{Tn as M,at as N,ft as P,gn as F,gt as ee,ht as I,it as te,lt as ne,nt as L,pt as re,tt as R}from"./index-CoY8DilQ.js";import{t as ie}from"./delete-confirm-dialog-D1N86piR.js";import{t as z}from"./use-settings-page-loading-B5WU5d1c.js";import{i as ae,r as oe,s as se}from"./settings-list-Dgip9HpD.js";import{i as B,n as V,r as H}from"./slug-utils-CO6nui1C.js";var U=t(),W=e(n(),1),G=r(),K=`Radio`,[q,J]=v(K),[Y,ce]=q(K),X=W.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:i=!1,required:a,disabled:o,value:s=`on`,onCheck:c,form:l,...u}=e,[f,p]=W.useState(null),m=d(t,e=>p(e)),h=W.useRef(!1),g=!f||l||!!f.closest(`form`);return(0,G.jsxs)(Y,{scope:n,checked:i,disabled:o,children:[(0,G.jsx)(x.button,{type:`button`,role:`radio`,"aria-checked":i,"data-state":pe(i),"data-disabled":o?``:void 0,disabled:o,value:s,...u,ref:m,onClick:_(e.onClick,e=>{i||c?.(),g&&(h.current=e.isPropagationStopped(),h.current||e.stopPropagation())})}),g&&(0,G.jsx)(fe,{control:f,bubbles:!h.current,name:r,value:s,checked:i,required:a,disabled:o,form:l,style:{transform:`translateX(-100%)`}})]})});X.displayName=K;var le=`RadioIndicator`,ue=W.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=ce(le,n);return(0,G.jsx)(y,{present:r||a.checked,children:(0,G.jsx)(x.span,{"data-state":pe(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});ue.displayName=le;var de=`RadioBubbleInput`,fe=W.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=W.useRef(null),s=d(o,a),c=j(n),l=S(t);return W.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,G.jsx)(x.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});fe.displayName=de;function pe(e){return e?`checked`:`unchecked`}var me=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],Z=`RadioGroup`,[he,ge]=v(Z,[E,J]),_e=E(),ve=J(),[ye,be]=he(Z),xe=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:s=!1,orientation:c,dir:l,loop:u=!0,onValueChange:d,...f}=e,p=_e(n),m=w(l),[h,g]=b({prop:a,defaultProp:i??null,onChange:d,caller:Z});return(0,G.jsx)(ye,{scope:n,name:r,required:o,disabled:s,value:h,onValueChange:g,children:(0,G.jsx)(T,{asChild:!0,...p,orientation:c,dir:m,loop:u,children:(0,G.jsx)(x.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":c,"data-disabled":s?``:void 0,dir:m,...f,ref:t})})})});xe.displayName=Z;var Se=`RadioGroupItem`,Ce=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...i}=e,a=be(Se,n),o=a.disabled||r,s=_e(n),c=ve(n),l=W.useRef(null),u=d(t,l),f=a.value===i.value,p=W.useRef(!1);return W.useEffect(()=>{let e=e=>{me.includes(e.key)&&(p.current=!0)},t=()=>p.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,G.jsx)(D,{asChild:!0,...s,focusable:!o,active:f,children:(0,G.jsx)(X,{disabled:o,required:a.required,checked:f,...c,...i,name:a.name,ref:u,onCheck:()=>a.onValueChange(i.value),onKeyDown:_(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:_(i.onFocus,()=>{p.current&&l.current?.click()})})})});Ce.displayName=Se;var we=`RadioGroupIndicator`,Te=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e,i=ve(n);return(0,G.jsx)(ue,{...i,...r,ref:t})});Te.displayName=we;var Ee=xe,De=Ce,Oe=Te,ke=W.forwardRef((e,t)=>{let n=(0,U.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=f(`grid gap-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,G.jsx)(Ee,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});ke.displayName=Ee.displayName;var Q=W.forwardRef((e,t)=>{let n=(0,U.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=f(`aspect-square h-4 w-4 rounded-full border border-brand text-brand ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,G.jsx)(Oe,{className:`flex items-center justify-center`,children:(0,G.jsx)(p,{className:`h-2.5 w-2.5 fill-current text-current`})}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,G.jsx)(De,{ref:t,className:a,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});Q.displayName=De.displayName;function Ae({projectId:e,threadId:t,onCommandCreated:n}){let[r,a]=(0,W.useState)(``),[s,c]=(0,W.useState)(``),[l,u]=(0,W.useState)(``),[d,p]=(0,W.useState)(`default`),[m,h]=(0,W.useState)(!1),g=H(r),_=V(g),v=async()=>{if(_&&e){h(!0);try{let e={description:s.trim()||void 0,argumentHint:l.trim()||void 0,mode:d===`plan`?`plan`:void 0};await o(g,``,e,`project`,t??void 0),O({title:`Command created`,description:`Command '/${g}' was created successfully.`}),a(``),c(``),u(``),p(`default`),n?.(g)}catch(e){O({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{h(!1)}}};return e?(0,G.jsx)(I,{children:(0,G.jsxs)(R,{children:[(0,G.jsx)(N,{title:`Add Slash Command`,description:`Saved as a .md file in .agents/commands in the selected project workspace.`,sticky:!0,className:`pr-10`}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(L,{title:`Command Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,G.jsx)(F,{id:`commandName`,value:r,onChange:e=>a(e.target.value),placeholder:`e.g. review`,disabled:m}),r?(0,G.jsxs)(`p`,{className:f(i.caption,`mt-2`),children:[`Command: `,(0,G.jsxs)(`span`,{className:`font-mono`,children:[`/`,g||`...`]})]}):null]}),(0,G.jsx)(L,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,G.jsx)(F,{id:`commandDescription`,value:s,onChange:e=>c(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:m})}),(0,G.jsx)(L,{title:`Argument Hint`,description:`Shows after the command name to guide users what to type`,controlLayout:`stack`,className:`pt-6`,children:(0,G.jsx)(F,{id:`argumentHint`,value:l,onChange:e=>u(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:m})}),(0,G.jsx)(L,{title:`Mode`,description:d==="default"?`Standard chat mode`:`Activates plan mode when this command is used`,controlLayout:`stack`,className:`pt-6`,children:(0,G.jsxs)(ke,{value:d,onValueChange:e=>p(e),className:`flex gap-4`,disabled:m,children:[(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(Q,{value:`default`,id:`mode-default`}),(0,G.jsx)(C,{htmlFor:`mode-default`,className:f(i.labelNormal,`cursor-pointer`),children:`Default`})]}),(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(Q,{value:`plan`,id:`mode-plan`}),(0,G.jsx)(C,{htmlFor:`mode-plan`,className:f(i.labelNormal,`cursor-pointer`),children:`Plan`})]})]})}),(0,G.jsx)(B,{onContinue:()=>void v(),disabled:!_,creating:m})]})]})}):(0,G.jsx)(P,{title:`No project selected`,children:`Please select a project to add a slash command.`})}function je(e,t){let[n,r]=(0,W.useState)([]),[i,a]=(0,W.useState)(!0),[o,s]=(0,W.useState)(new Map),l=(0,W.useCallback)(async()=>{if(!t){a(!1),r([]),s(new Map);return}a(!0);try{let e=(await c(t)).filter(function(e){return e.scope===`project`&&!e.isBuiltIn});r(e),s(new Map(e.map(e=>[e.name,e.filePath])))}catch{r([]),s(new Map)}finally{a(!1)}},[t]);return(0,W.useLayoutEffect)(()=>{t&&a(!0)},[e,t]),(0,W.useEffect)(()=>{l()},[l]),{commands:n,loading:i,installedCommands:o,setInstalledCommands:s,loadCommands:l}}function Me(){let e=(0,U.c)(6),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,W.useState)(t),[i,a]=(0,W.useState)(!0),o,s;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{a(!0),u().then(r).catch(()=>r([])).finally(()=>a(!1))},s=[],e[1]=o,e[2]=s):(o=e[1],s=e[2]),(0,W.useEffect)(o,s);let c;return e[3]!==i||e[4]!==n?(c={popularCommands:n,loadingPopularCommands:i},e[3]=i,e[4]=n,e[5]=c):c=e[5],c}function Ne(e){let t=e.metadata?.description?.trim();return t&&t.length>0?t:`No description`}function Pe(e,t){return e.filter(e=>!t.has(e.name))}function Fe(e,t){let n=(0,U.c)(3),r;return n[0]!==t||n[1]!==e?(r=function(n){e(n),t(`explorer`)},n[0]=t,n[1]=e,n[2]=r):r=n[2],r}function Ie(e){return(0,W.useCallback)(async function(t){e.setDeleting(!0);try{if(!e.selectedThreadId)return;await s(t.filePath,e.selectedThreadId),e.setExplorerClearPath(t.filePath),e.triggerExplorerRefresh(),e.setInstalledCommands(e=>{let n=new Map(e);return n.delete(t.name),n}),O({title:`Command removed`,description:`/${t.name}`}),e.setDeleteConfirm(null),await e.loadCommands()}catch(e){O({title:`Error`,description:e instanceof Error?e.message:`Failed to remove command`,variant:`destructive`})}finally{e.setDeleting(!1)}},[e.loadCommands,e.selectedThreadId,e.triggerExplorerRefresh,e.setExplorerClearPath])}function Le(e){return(0,W.useCallback)(async function(t){if(e.selectedThreadId&&!e.installedCommands.has(t.name))try{if(t.gitHubRepo&&t.gitHubFolder){let n=`.agents/commands`;await l(e.selectedThreadId,t.gitHubRepo,t.gitHubFolder,n);let r=`${n}/${t.name}.md`;e.setInstalledCommands(e=>new Map(e).set(t.name,r))}else{let n=await o(t.name,t.content,{description:t.description,argumentHint:t.argumentHint},`project`,e.selectedThreadId);e.setInstalledCommands(e=>new Map(e).set(t.name,n.filePath))}e.triggerExplorerRefresh(),e.loadCommands(),O({title:`Command installed`,description:`/${t.name}`})}catch(e){O({title:`Error`,description:e instanceof Error?e.message:`Failed to install command`,variant:`destructive`})}},[e.selectedThreadId,e.installedCommands,e.triggerExplorerRefresh,e.loadCommands])}function Re(){let e=(0,U.c)(7),t=a(Be),n=a(ze),{openChatDockPanel:r}=A(),{setPendingExplorerPath:i,triggerExplorerRefresh:o,setExplorerClearPath:s}=k(),c;return e[0]!==r||e[1]!==t||e[2]!==n||e[3]!==s||e[4]!==i||e[5]!==o?(c={selectedProjectId:t,selectedThreadId:n,openChatDockPanel:r,setPendingExplorerPath:i,triggerExplorerRefresh:o,setExplorerClearPath:s},e[0]=r,e[1]=t,e[2]=n,e[3]=s,e[4]=i,e[5]=o,e[6]=c):c=e[6],c}function ze(e){return e.selectedThreadId}function Be(e){return e.selectedProjectId}function Ve(){let e=(0,U.c)(5),[t,n]=(0,W.useState)(!1),[r,i]=(0,W.useState)(null),[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(``),l;return e[0]!==s||e[1]!==r||e[2]!==a||e[3]!==t?(l={showAddDialog:t,setShowAddDialog:n,deleteConfirm:r,setDeleteConfirm:i,deleting:a,setDeleting:o,availableSearch:s,setAvailableSearch:c},e[0]=s,e[1]=r,e[2]=a,e[3]=t,e[4]=l):l=e[4],l}function He(e,t){return e?`${e}:${t??``}`:null}function Ue(){let e=(0,U.c)(41),t=Re(),n=Ve(),{selectedProjectId:r,selectedThreadId:i,openChatDockPanel:a,setPendingExplorerPath:o,triggerExplorerRefresh:s,setExplorerClearPath:c}=t,{showAddDialog:l,setShowAddDialog:u,deleteConfirm:d,setDeleteConfirm:f,deleting:p,setDeleting:m,availableSearch:h,setAvailableSearch:g}=n,{commands:_,loading:v,installedCommands:y,setInstalledCommands:b,loadCommands:x}=je(r,i),{popularCommands:S,loadingPopularCommands:C}=Me(),w;e[0]!==r||e[1]!==i?(w=He(r,i),e[0]=r,e[1]=i,e[2]=w):w=e[2];let T;e[3]!==v||e[4]!==C?(T=[v,C],e[3]=v,e[4]=C,e[5]=T):T=e[5];let E=z(w,T),D=Fe(o,a),O;e[6]!==x||e[7]!==i||e[8]!==f||e[9]!==m||e[10]!==c||e[11]!==b||e[12]!==s?(O={selectedThreadId:i,loadCommands:x,triggerExplorerRefresh:s,setExplorerClearPath:c,setDeleting:m,setDeleteConfirm:f,setInstalledCommands:b},e[6]=x,e[7]=i,e[8]=f,e[9]=m,e[10]=c,e[11]=b,e[12]=s,e[13]=O):O=e[13];let k=Ie(O),A;e[14]!==y||e[15]!==x||e[16]!==i||e[17]!==b||e[18]!==s?(A={selectedThreadId:i,installedCommands:y,setInstalledCommands:b,triggerExplorerRefresh:s,loadCommands:x},e[14]=y,e[15]=x,e[16]=i,e[17]=b,e[18]=s,e[19]=A):A=e[19];let j=Le(A),M;e[20]!==y||e[21]!==S?(M=Pe(S,y),e[20]=y,e[21]=S,e[22]=M):M=e[22];let N=M,P;return e[23]!==N||e[24]!==h||e[25]!==_||e[26]!==d||e[27]!==p||e[28]!==k||e[29]!==j||e[30]!==D||e[31]!==x||e[32]!==E||e[33]!==r||e[34]!==i||e[35]!==g||e[36]!==f||e[37]!==u||e[38]!==l||e[39]!==s?(P={selectedProjectId:r,selectedThreadId:i,commands:_,showAddDialog:l,setShowAddDialog:u,deleteConfirm:d,setDeleteConfirm:f,deleting:p,availableSearch:h,setAvailableSearch:g,pageLoading:E,availableCommands:N,handleDelete:k,handleOpenInExplorer:D,getCommandSubtitle:Ne,handleInstallPopular:j,loadCommands:x,triggerExplorerRefresh:s},e[23]=N,e[24]=h,e[25]=_,e[26]=d,e[27]=p,e[28]=k,e[29]=j,e[30]=D,e[31]=x,e[32]=E,e[33]=r,e[34]=i,e[35]=g,e[36]=f,e[37]=u,e[38]=l,e[39]=s,e[40]=P):P=e[40],P}function $(){let e=(0,U.c)(63),{selectedProjectId:t,selectedThreadId:n,commands:r,showAddDialog:a,setShowAddDialog:o,deleteConfirm:s,setDeleteConfirm:c,deleting:l,availableSearch:u,setAvailableSearch:d,pageLoading:p,availableCommands:_,handleDelete:v,handleOpenInExplorer:y,getCommandSubtitle:b,handleInstallPopular:x,loadCommands:S,triggerExplorerRefresh:C}=Ue();if(!t){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,G.jsx)(P,{children:`Select a project to manage slash commands.`}),e[0]=t):t=e[0],t}let w;e[1]===o?w=e[2]:(w=()=>o(!0),e[1]=o,e[2]=w);let T=!n,E;e[3]!==w||e[4]!==T?(E=(0,G.jsx)(se,{title:`Installed Slash Commands`,tooltip:`Project slash commands you run with / in chat.`,action:(0,G.jsx)(g,{onClick:w,disabled:T,children:`Add Command`})}),e[3]=w,e[4]=T,e[5]=E):E=e[5];let D;e[6]===n?D=e[7]:(D=!n&&(0,G.jsx)(te,{children:`Select a thread to add or install slash commands.`}),e[6]=n,e[7]=D);let O;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O={icon:M,title:`No slash commands installed`,description:`Add slash commands to create quick actions in chat.`},e[8]=O):O=e[8];let k;e[9]===b?k=e[10]:(k=e=>(0,G.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,G.jsxs)(`div`,{className:f(i.body,`truncate`),children:[`/`,e.name]}),(0,G.jsx)(`div`,{className:f(i.compact,`truncate text-muted-foreground`),children:b(e)})]}),e[9]=b,e[10]=k);let A;e[11]===y?A=e[12]:(A=e=>y(e.filePath),e[11]=y,e[12]=A);let j;e[13]!==r||e[14]!==c||e[15]!==k||e[16]!==A?(j=(0,G.jsx)(oe,{showHeader:!1,loading:!1,items:r,emptyState:O,getKey:Xe,columnsClassName:`grid-cols-[minmax(0,1fr)_auto_1.75rem]`,renderContent:k,renderMiddle:Ye,onItemClick:A,itemClickLabel:Je,onDelete:c,deleteAriaLabel:qe,deleteTooltip:`Remove this slash command from the project`}),e[13]=r,e[14]=c,e[15]=k,e[16]=A,e[17]=j):j=e[17];let N;e[18]!==D||e[19]!==j?(N=(0,G.jsxs)(re,{className:`pt-6`,children:[D,j]}),e[18]=D,e[19]=j,e[20]=N):N=e[20];let F;e[21]!==E||e[22]!==N?(F=(0,G.jsxs)(ee,{className:`shrink-0`,children:[E,N]}),e[21]=E,e[22]=N,e[23]=F):F=e[23];let I;e[24]!==x||e[25]!==n?(I=e=>(0,G.jsx)(g,{type:`button`,variant:`outline`,size:`sm`,className:`opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,disabled:!n,onClick:()=>void x(e),children:`Install`}),e[24]=x,e[25]=n,e[26]=I):I=e[26];let L;e[27]!==_||e[28]!==u||e[29]!==d||e[30]!==I?(L=(0,G.jsx)(ae,{title:`Available Slash Commands`,tooltip:`Browse and install slash commands from the catalog.`,emptyLabel:`No available commands found.`,searchValue:u,onSearchChange:d,items:_,getKey:Ke,renderName:Ge,getSubtitle:We,renderAction:I}),e[27]=_,e[28]=u,e[29]=d,e[30]=I,e[31]=L):L=e[31];let R;e[32]!==p||e[33]!==L||e[34]!==F?(R=(0,G.jsxs)(ne,{loading:p,children:[F,L]}),e[32]=p,e[33]=L,e[34]=F,e[35]=R):R=e[35];let z;e[36]!==S||e[37]!==o||e[38]!==C?(z=()=>{o(!1),S(),C()},e[36]=S,e[37]=o,e[38]=C,e[39]=z):z=e[39];let B;e[40]!==t||e[41]!==n||e[42]!==z?(B=(0,G.jsx)(m,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,G.jsx)(Ae,{projectId:t,threadId:n,onCommandCreated:z})}),e[40]=t,e[41]=n,e[42]=z,e[43]=B):B=e[43];let V;e[44]!==o||e[45]!==a||e[46]!==B?(V=(0,G.jsx)(h,{open:a,onOpenChange:o,children:B}),e[44]=o,e[45]=a,e[46]=B,e[47]=V):V=e[47];let H=s!==null,W;e[48]===c?W=e[49]:(W=e=>!e&&c(null),e[48]=c,e[49]=W);let K=`Are you sure you want to delete "/${s?.name}"? This action cannot be undone.`,q;e[50]!==s||e[51]!==v?(q=()=>{s&&v(s)},e[50]=s,e[51]=v,e[52]=q):q=e[52];let J;e[53]!==l||e[54]!==H||e[55]!==W||e[56]!==K||e[57]!==q?(J=(0,G.jsx)(ie,{open:H,onOpenChange:W,title:`Delete Slash Command`,description:K,onConfirm:q,confirming:l}),e[53]=l,e[54]=H,e[55]=W,e[56]=K,e[57]=q,e[58]=J):J=e[58];let Y;return e[59]!==R||e[60]!==V||e[61]!==J?(Y=(0,G.jsxs)(G.Fragment,{children:[R,V,J]}),e[59]=R,e[60]=V,e[61]=J,e[62]=Y):Y=e[62],Y}function We(e){return e.description}function Ge(e){return`/${e.name}`}function Ke(e){return e.id}function qe(e){return`Delete /${e.name}`}function Je(e){return`Open /${e.name} in Files`}function Ye(e){return e.metadata?.mode?(0,G.jsx)(`span`,{className:f(i.compact,`bg-muted px-1.5 py-0.5 rounded flex-shrink-0`),children:e.metadata.mode}):(0,G.jsx)(`div`,{})}function Xe(e){return e.filePath}export{$ as SettingsSlashCommandsView,$ as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{n as i}from"./QueryClientProvider-CYXTUmYo.js";import{U as a}from"./dist-v_MvKS2-.js";import{U as o,q as s,r as c}from"./store-W78TGOIO.js";import{l,qt as u}from"./api-C4ukGdyH.js";import{p as d,t as f}from"./utils-CqsIXqSC.js";import{t as p}from"./loader-circle-CrqRIqdA.js";import{t as m}from"./button-DDaJhJP1.js";import{i as h,n as g,t as _}from"./tooltip-CqwCZ7wt.js";import{t as v}from"./label-BCs5CZEs.js";import{n as y}from"./use-toast-CKgZ8YeP.js";import{t as b}from"./progress-indicator-hJ74ac5W.js";import{a as x,c as S,i as C,n as w,o as T,r as E,s as D,t as O}from"./alert-dialog-BcZULJsX.js";import{n as ee}from"./use-projects-CizIH2Fa.js";import{c as te}from"./api-B_GSyYGh.js";import{Ar as k,D as ne,Dr as A,Et as j,at as re,gn as M,pt as ie,sr as ae,wn as N}from"./index-CoY8DilQ.js";import{t as P}from"./delete-confirm-dialog-D1N86piR.js";import{i as F,r as I}from"./table-CQMqIW_-.js";import{t as L}from"./settings-list-Dgip9HpD.js";var R=[`KB`,`MB`,`GB`,`TB`];function z(e){if(!Number.isFinite(e)||e<=0)return`0 KB`;let t=e/1024,n=R[0];for(let e=0;e<R.length&&(n=R[e],!(t<1024||e===R.length-1));e++)t/=1024;return`${t>=100?Math.round(t):Math.round(t*10)/10} ${n}`}var B=`{tarsk}`;function V(e,t){let n=e.replace(/\/$/,``);if(t===n)return B;let r=`${n}/`;return t.startsWith(r)?`${B}/${t.slice(r.length)}`:t}var H=t(),U=e(n(),1),W=r(),G=36,K=`table-fixed`,q=`h-9 w-48 bg-transparent py-2`,J=`h-9 bg-transparent py-2`,oe=`h-9 w-32 bg-transparent py-2`,se=`h-9 w-10 bg-transparent py-2`,ce=f(a.bodyMuted,`w-48 truncate py-1.5`),le=f(a.body,`truncate py-1.5`),ue=f(a.bodyMuted,`w-32 truncate py-1.5`),de=`w-10 py-1.5`,fe={column:`project`,direction:`asc`},Y=`7`,X=3650;function pe(e){let t=(0,H.c)(11),n,r;t[0]===e?(n=t[1],r=t[2]):({style:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===r?i=t[4]:(i={...r,width:`100%`},t[3]=r,t[4]=i);let o;t[5]===n.className?o=t[6]:(o=f(`w-full caption-bottom`,K,a.body,n.className),t[5]=n.className,t[6]=o);let s;return t[7]!==n||t[8]!==i||t[9]!==o?(s=(0,W.jsx)(`table`,{...n,style:i,className:o}),t[7]=n,t[8]=i,t[9]=o,t[10]=s):s=t[10],s}function me(e){let t=(0,H.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,W.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function he(e){let t=(0,H.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,W.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function ge(e){let t=(0,H.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,W.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function Z(e,t){return t?V(t,e):e}function Q(e,t,n){switch(t){case`project`:return e.projectName;case`path`:return Z(e.path,n);case`branch`:return e.branch}}function _e(e){let t=[];for(let n of e){let e=d(n);for(let r of n.threads)t.push({threadId:r.threadId,projectId:n.projectId,projectName:e,path:r.path,branch:r.currentBranch||r.title})}return t}function ve(e,t,n,r){return[...e].sort((e,i)=>{let a=Q(e,t,r).localeCompare(Q(i,t,r),void 0,{sensitivity:`base`});return n===`asc`?a:-a})}function $(e){let t=(0,H.c)(17),{label:n,column:r,sortColumn:i,sortDirection:a,className:o,onSort:s}=e,c=i===r,l=a===`asc`?A:k,u=c?`text-foreground`:`text-muted-foreground`,d;t[0]===u?d=t[1]:(d=f(`inline-flex items-center gap-1 transition-colors hover:text-foreground`,u),t[0]=u,t[1]=d);let p;t[2]!==r||t[3]!==s?(p=()=>s(r),t[2]=r,t[3]=s,t[4]=p):p=t[4];let m=c?a===`asc`?`ascending`:`descending`:`none`,h;t[5]!==l||t[6]!==c?(h=c?(0,W.jsx)(l,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":`true`}):null,t[5]=l,t[6]=c,t[7]=h):h=t[7];let g;t[8]!==n||t[9]!==d||t[10]!==p||t[11]!==m||t[12]!==h?(g=(0,W.jsxs)(`button`,{type:`button`,className:d,onClick:p,"aria-sort":m,children:[n,h]}),t[8]=n,t[9]=d,t[10]=p,t[11]=m,t[12]=h,t[13]=g):g=t[13];let _;return t[14]!==o||t[15]!==g?(_=(0,W.jsx)(F,{className:o,children:g}),t[14]=o,t[15]=g,t[16]=_):_=t[16],_}function ye(e){return e.deletingThreadIds.includes(e.threadId)?`deleting`:s(e.threadId,e.processingThreadIds,e.streamingSignature,e.pendingChatMessage)||e.completedThreadIds.includes(e.threadId)?`locked`:`deletable`}var be=`999.9 GB free`;function xe(e){u().then(function(t){e(t.freeBytes)}).catch(function(){e(null)})}function Se(e){let t=(0,H.c)(5),{freeBytes:n}=e;if(n===void 0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,W.jsx)(`span`,{className:`block invisible`,"aria-hidden":`true`,children:be}),t[0]=e):e=t[0],e}if(n===null)return null;let r;t[1]===n?r=t[2]:(r=z(n),t[1]=n,t[2]=r);let i=`${r} free`,a;return t[3]===i?a=t[4]:(a=(0,W.jsx)(`span`,{className:`block`,children:i}),t[3]=i,t[4]=a),a}function Ce(e,t){return e===0?`No archived chats older than ${t} days.`:`Cleared history for ${e} archived ${e===1?`chat`:`chats`} older than ${t} days.`}function we(e){let t=(0,H.c)(12),{sortColumn:n,sortDirection:r,onSort:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=f(`w-full caption-bottom`,K,a.body),t[0]=o):o=t[0];let s,c,l;t[1]!==i||t[2]!==n||t[3]!==r?(s=(0,W.jsx)($,{label:`Project`,column:`project`,sortColumn:n,sortDirection:r,className:q,onSort:i}),c=(0,W.jsx)($,{label:`Path`,column:`path`,sortColumn:n,sortDirection:r,className:J,onSort:i}),l=(0,W.jsx)($,{label:`Branch`,column:`branch`,sortColumn:n,sortDirection:r,className:oe,onSort:i}),t[1]=i,t[2]=n,t[3]=r,t[4]=s,t[5]=c,t[6]=l):(s=t[4],c=t[5],l=t[6]);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,W.jsx)(F,{className:se,children:(0,W.jsx)(`span`,{className:`sr-only`,children:`Actions`})}),t[7]=u):u=t[7];let d;return t[8]!==s||t[9]!==c||t[10]!==l?(d=(0,W.jsx)(`table`,{className:o,children:(0,W.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,W.jsxs)(`tr`,{children:[s,c,l,u]})})}),t[8]=s,t[9]=c,t[10]=l,t[11]=d):d=t[11],d}function Te(e){let t=(0,H.c)(10),{status:n,onDeleteRequest:r}=e;if(n===`deleting`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,W.jsx)(p,{className:`h-4 w-4 animate-spin text-muted-foreground`,"aria-label":`Deleting`}),t[0]=e):e=t[0],e}if(n===`locked`)return null;let i;t[1]===r?i=t[2]:(i=e=>{e.stopPropagation(),r()},t[1]=r,t[2]=i);let a,o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,W.jsx)(N,{}),o=(0,W.jsx)(`span`,{className:`sr-only`,children:`Delete workspace`}),t[3]=a,t[4]=o):(a=t[3],o=t[4]);let s;t[5]===i?s=t[6]:(s=(0,W.jsx)(h,{asChild:!0,children:(0,W.jsxs)(m,{variant:`ghost`,size:`icon-sm`,className:L,onClick:i,children:[a,o]})}),t[5]=i,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,W.jsx)(g,{side:`left`,children:`Delete branch and files from the repo`}),t[7]=c):c=t[7];let l;return t[8]===s?l=t[9]:(l=(0,W.jsxs)(_,{children:[s,c]}),t[8]=s,t[9]=l),l}function Ee(e){let t=(0,H.c)(20),{row:n,displayPath:r,fileManagerLabel:i,deleteStatus:o,onOpenPath:s,onDeleteRequest:c}=e,l;t[0]===n.projectName?l=t[1]:(l=(0,W.jsx)(I,{className:ce,children:n.projectName}),t[0]=n.projectName,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=f(a.body,`block w-full truncate text-left hover:underline`),t[2]=u):u=t[2];let d=`${n.path}\nOpen in ${i}`,p;t[3]!==s||t[4]!==n?(p=()=>s(n),t[3]=s,t[4]=n,t[5]=p):p=t[5];let m;t[6]!==r||t[7]!==d||t[8]!==p?(m=(0,W.jsx)(I,{className:le,children:(0,W.jsx)(`button`,{type:`button`,className:u,title:d,onClick:p,children:r})}),t[6]=r,t[7]=d,t[8]=p,t[9]=m):m=t[9];let h;t[10]===n.branch?h=t[11]:(h=(0,W.jsx)(I,{className:ue,children:n.branch}),t[10]=n.branch,t[11]=h);let g;t[12]!==o||t[13]!==c?(g=(0,W.jsx)(I,{className:de,children:(0,W.jsx)(`div`,{className:`ml-auto flex h-7 w-7 items-center justify-center`,children:(0,W.jsx)(Te,{status:o,onDeleteRequest:c})})}),t[12]=o,t[13]=c,t[14]=g):g=t[14];let _;return t[15]!==l||t[16]!==m||t[17]!==h||t[18]!==g?(_=(0,W.jsxs)(W.Fragment,{children:[l,m,h,g]}),t[15]=l,t[16]=m,t[17]=h,t[18]=g,t[19]=_):_=t[19],_}function De(e){let t=(0,H.c)(7),{loading:n,rows:r,virtuosoComponents:i,renderRow:o}=e;if(n&&r.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,W.jsx)(b,{centered:!0,label:`Loading workspaces...`,size:`lg`}),t[0]=e):e=t[0],e}if(r.length===0){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,W.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,W.jsx)(`h3`,{className:a.emptyStateTitle,children:`No workspaces`}),(0,W.jsx)(`p`,{className:a.bodyMuted,children:`No branches or workspaces found yet.`})]})}),t[1]=e):e=t[1],e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s={height:`100%`},t[2]=s):s=t[2];let c;return t[3]!==o||t[4]!==r||t[5]!==i?(c=(0,W.jsx)(j,{style:s,data:r,computeItemKey:Oe,itemContent:o,defaultItemHeight:G,increaseViewportBy:180,components:i}),t[3]=o,t[4]=r,t[5]=i,t[6]=c):c=t[6],c}function Oe(e,t){return t.threadId}function ke(e){let t=(0,H.c)(16),{loading:n,rows:r,cloneRootPath:i,fileManagerLabel:a,onDeleteRequest:o,onOpenPath:s}=e,l=c(Pe),u=c(Ne),d=c(Me),p=c(je),m=c(Ae),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=function(e){let{...t}=e;return(0,W.jsx)(`tr`,{...t,className:f(`group border-0 transition-colors hover:bg-muted/50`,t.className)})},t[0]=h):h=t[0];let g=h,_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_={Table:pe,TableHead:me,TableBody:he,TableRow:g,Scroller:ge},t[1]=_):_=t[1];let v=_,y;t[2]!==i||t[3]!==d||t[4]!==l||t[5]!==a||t[6]!==o||t[7]!==s||t[8]!==m||t[9]!==u||t[10]!==p?(y=function(e,t){let n=ye({threadId:t.threadId,deletingThreadIds:l,processingThreadIds:u,completedThreadIds:d,streamingSignature:p,pendingChatMessage:m});return(0,W.jsx)(Ee,{row:t,displayPath:Z(t.path,i),fileManagerLabel:a,deleteStatus:n,onOpenPath:s,onDeleteRequest:()=>o(t)})},t[2]=i,t[3]=d,t[4]=l,t[5]=a,t[6]=o,t[7]=s,t[8]=m,t[9]=u,t[10]=p,t[11]=y):y=t[11];let b=y,x;return t[12]!==n||t[13]!==b||t[14]!==r?(x=(0,W.jsx)(De,{loading:n,rows:r,virtuosoComponents:v,renderRow:b}),t[12]=n,t[13]=b,t[14]=r,t[15]=x):x=t[15],x}function Ae(e){return e.pendingChatMessage}function je(e){return o(e.threadStreamingStates)}function Me(e){return e.completedThreadIds}function Ne(e){return e.processingThreadIds}function Pe(e){return e.deletingThreadIds}function Fe(e){let t=(0,H.c)(10),{pendingDelete:n,cloneRootPath:r,onClose:i,onConfirm:a}=e,o=n!==null,s;t[0]===i?s=t[1]:(s=e=>{e||i()},t[0]=i,t[1]=s);let c;t[2]!==r||t[3]!==n?(c=n?`Are you sure you want to delete the workspace at "${Z(n.path,r)}"? This removes the branch and all its files. This action cannot be undone.`:``,t[2]=r,t[3]=n,t[4]=c):c=t[4];let l;return t[5]!==a||t[6]!==o||t[7]!==s||t[8]!==c?(l=(0,W.jsx)(P,{open:o,onOpenChange:s,title:`Delete workspace?`,description:c,onConfirm:a,confirmLabel:`Delete`,confirmingLabel:`Deleting...`}),t[5]=a,t[6]=o,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function Ie({open:e,onOpenChange:t}){let{toast:n}=y(),r=i(),[o,s]=(0,U.useState)(Y),[c,u]=(0,U.useState)(!1),d=Number.parseInt(o,10),p=Number.isInteger(d)&&d>=0&&d<=X;function m(e){!e&&!c?(s(Y),t(!1)):e&&t(!0)}async function h(){if(p&&!c){u(!0);try{let e=await l(d);await r.invalidateQueries({queryKey:[`conversations`]}),t(!1),n({title:`Archived chat history cleared`,description:Ce(e.purgedCount,d)})}catch(e){n({title:`Failed to clear archived history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{u(!1)}}}return(0,W.jsx)(O,{open:e,onOpenChange:m,children:(0,W.jsxs)(C,{children:[(0,W.jsxs)(D,{children:[(0,W.jsx)(S,{children:`Clear archived chat history?`}),(0,W.jsx)(x,{children:`This permanently clears conversation history for archived chats older than the retention below. Active chats are never touched. This action cannot be undone.`})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-3 py-1`,children:[(0,W.jsx)(v,{htmlFor:`archived-history-retention`,className:`shrink-0`,children:`Keep history (days)`}),(0,W.jsx)(M,{id:`archived-history-retention`,type:`number`,min:0,max:X,step:1,inputMode:`numeric`,value:o,disabled:c,onChange:e=>s(e.target.value),className:`w-28`})]}),p?null:(0,W.jsxs)(`p`,{className:f(a.bodyMuted,`text-destructive`),children:[`Enter whole days between 0 and `,X,`.`]}),(0,W.jsxs)(T,{children:[(0,W.jsx)(E,{disabled:c,children:`Cancel`}),(0,W.jsx)(w,{onClick:e=>{e.preventDefault(),h()},disabled:!p||c,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:c?`Clearing...`:`Clear history`})]})]})})}function Le(){let e=(0,H.c)(50),t=c(Ve),n=c(Be),r=c(ze),i=c(Re),{handleDeleteThread:a,refreshWorkspaces:o}=ee(),{toast:s}=y(),[l,u]=(0,U.useState)(null),[d,f]=(0,U.useState)(fe),[p,h]=(0,U.useState)(!1),[g,_]=(0,U.useState)(void 0),v=(0,U.useRef)(0),b=ne()?`Finder`:`Explorer`,x,S;e[0]===o?(x=e[1],S=e[2]):(x=()=>{o()},S=[o],e[0]=o,e[1]=x,e[2]=S),(0,U.useEffect)(x,S);let C,w;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(C=function(){xe(_)},w=[],e[3]=C,e[4]=w):(C=e[3],w=e[4]),(0,U.useEffect)(C,w);let T;e[5]===i.length?T=e[6]:(T=function(){let e=i.length,t=v.current>0&&e===0;v.current=e,t&&xe(_)},e[5]=i.length,e[6]=T);let E;e[7]===i?E=e[8]:(E=[i],e[7]=i,e[8]=E),(0,U.useEffect)(T,E);let D;e[9]!==n||e[10]!==t||e[11]!==d.column||e[12]!==d.direction?(D=ve(_e(t),d.column,d.direction,n),e[9]=n,e[10]=t,e[11]=d.column,e[12]=d.direction,e[13]=D):D=e[13];let O=D,k;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(k=function(e){f(t=>t.column===e?{column:e,direction:t.direction===`asc`?`desc`:`asc`}:{column:e,direction:`asc`})},e[14]=k):k=e[14];let A=k,j;e[15]!==a||e[16]!==l?(j=function(){if(!l)return;let{projectId:e,threadId:t}=l;u(null),a(e,t)},e[15]=a,e[16]=l,e[17]=j):j=e[17];let M=j,N;e[18]===s?N=e[19]:(N=async function(e){try{await te(e.threadId,`.`)}catch{s({title:`Error`,description:`Failed to open folder in ${b}.`,variant:`destructive`})}},e[18]=s,e[19]=N);let P=N,F;e[20]===g?F=e[21]:(F=(0,W.jsxs)(W.Fragment,{children:[`Workspaces and branches stored on disk across all projects.`,(0,W.jsx)(Se,{freeBytes:g})]}),e[20]=g,e[21]=F);let I;e[22]!==O.length||e[23]!==d.column||e[24]!==d.direction?(I=O.length>0?(0,W.jsx)(we,{sortColumn:d.column,sortDirection:d.direction,onSort:A}):void 0,e[22]=O.length,e[23]=d.column,e[24]=d.direction,e[25]=I):I=e[25];let L;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,W.jsxs)(m,{type:`button`,variant:`outline`,size:`sm`,className:`gap-2`,onClick:()=>h(!0),children:[(0,W.jsx)(ae,{className:`h-4 w-4`,"aria-hidden":`true`}),`Clear archived history`]}),e[26]=L):L=e[26];let R;e[27]!==F||e[28]!==I?(R=(0,W.jsx)(re,{title:`Storage`,description:F,tableHeader:I,action:L}),e[27]=F,e[28]=I,e[29]=R):R=e[29];let z;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(z=e=>u(e),e[30]=z):z=e[30];let B;e[31]!==n||e[32]!==P||e[33]!==r||e[34]!==O?(B=(0,W.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,W.jsx)(ke,{loading:r,rows:O,cloneRootPath:n,fileManagerLabel:b,onDeleteRequest:z,onOpenPath:P})}),e[31]=n,e[32]=P,e[33]=r,e[34]=O,e[35]=B):B=e[35];let V;e[36]!==R||e[37]!==B?(V=(0,W.jsxs)(ie,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[R,B]}),e[36]=R,e[37]=B,e[38]=V):V=e[38];let G;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>u(null),e[39]=G):G=e[39];let K;e[40]!==n||e[41]!==M||e[42]!==l?(K=(0,W.jsx)(Fe,{pendingDelete:l,cloneRootPath:n,onClose:G,onConfirm:M}),e[40]=n,e[41]=M,e[42]=l,e[43]=K):K=e[43];let q;e[44]===p?q=e[45]:(q=(0,W.jsx)(Ie,{open:p,onOpenChange:h}),e[44]=p,e[45]=q);let J;return e[46]!==V||e[47]!==K||e[48]!==q?(J=(0,W.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[V,K,q]}),e[46]=V,e[47]=K,e[48]=q,e[49]=J):J=e[49],J}function Re(e){return e.deletingThreadIds}function ze(e){return e.projectsLoading}function Be(e){return e.cloneRootPath}function Ve(e){return e.projects}export{Le as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-general-tabs-view-BWR0UX2P.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/react-vendor-D61Uve5n.js","assets/chunk-QFMPRPBF-Cy-_pFSM.js","assets/dist-v_MvKS2-.js","assets/progress-indicator-hJ74ac5W.js","assets/utils-CqsIXqSC.js","assets/settings-tab-bar-DYzU_lmi.js","assets/pill-tabs-DtdTmrg7.js","assets/tooltip-CqwCZ7wt.js","assets/dist-AbkJBHH5.js","assets/dist-2xH_pFmV.js","assets/index-CoY8DilQ.js","assets/useBaseQuery-yghQO052.js","assets/QueryClientProvider-CYXTUmYo.js","assets/useInfiniteQuery-BpKy1sCq.js","assets/use-account-settings-query-C-zOdREq.js","assets/useQuery-DWt09r77.js","assets/api-C4ukGdyH.js","assets/query-keys-BwswkbMn.js","assets/store-W78TGOIO.js","assets/chat-handlers-context-2xSKzkKa.js","assets/create-project-workspace-DSTTGom_.js","assets/terminal-output-activity-D_FxlE-L.js","assets/task-utils-BZPVmvY4.js","assets/suspense-resource-DzlMlIgR.js","assets/random-uuid-Dc3UrwVo.js","assets/use-toast-CKgZ8YeP.js","assets/remote-media-url-CyuN31H_.js","assets/use-open-chat-dock-panel-DqfWJ8e8.js","assets/chat-dock-context-a2bV9cnz.js","assets/explorer-tab-context-BwR8CM8l.js","assets/main-tab-context-Dsp4OYi9.js","assets/dist-CgbWuuq4.js","assets/markdown-renderer-D2VcKU4g.js","assets/explorer-media-CRzhs0NW.js","assets/check-skFQ1X72.js","assets/createLucideIcon-2A3hmV_e.js","assets/copy-bi9iX3xn.js","assets/download-CWhQNGlF.js","assets/external-link-Dcikmdm_.js","assets/minus-CgQcbBQT.js","assets/dialog-D_12AsZd.js","assets/x-ByOPrz5I.js","assets/dist-DfnQ9YJh.js","assets/es2015-eNVkKfFF.js","assets/use-browser-overlay-block-CO1pUEAZ.js","assets/play-Dn1mbRpD.js","assets/plus-DoMzejDu.js","assets/rotate-ccw-Dthg8Pv6.js","assets/button-DDaJhJP1.js","assets/chevron-down-Bpo4ncEN.js","assets/chevron-right-Dga3q1bZ.js","assets/chevron-up-BxgjX7B3.js","assets/circle-alert-CC2eO3yt.js","assets/circle-DQwOli2u.js","assets/grip-vertical-_jCIw8Mw.js","assets/loader-circle-CrqRIqdA.js","assets/square-CtxvwmM2.js","assets/dist-B-h6Wj39.js","assets/label-BCs5CZEs.js","assets/dist-Dx8OsX8-.js","assets/dist-pCVg1Jdl.js","assets/dist-DOz2WXwX.js","assets/dist-JGbQ_EJY.js","assets/scroll-area-CGEZ1gAL.js","assets/alert-dialog-BcZULJsX.js","assets/use-projects-CizIH2Fa.js","assets/use-suspense-resource-uCX26gOk.js","assets/explorer-file-drop-CzyAqZgf.js","assets/api-B_GSyYGh.js","assets/dist-CkGJjZXY.js","assets/select-BR2pG61R.js","assets/mcp-manager-D1HmLT3t.js","assets/index-D14wLW4o.css","assets/project-settings-view-CE4nAz5B.js","assets/use-settings-page-loading-B5WU5d1c.js","assets/settings-setup-view-I5MGUi_D.js","assets/project-env-vars-view-DKyQkh7h.js","assets/project-danger-zone-view-CGxIenpr.js","assets/project-model-aliases-view-BewwJZAx.js","assets/table-CQMqIW_-.js","assets/settings-plugins-view-avaUE36r.js","assets/settings-providers-view-B39k1iRQ.js","assets/settings-remote-machines-view-BXondQG_.js","assets/account-view-DkuCOxkE.js","assets/delete-confirm-dialog-D1N86piR.js"])))=>i.map(i=>d[i]);
2
- import{i as e,n as t}from"./rolldown-runtime-Dd_uD5pT.js";import{n,o as r,r as i,t as a}from"./react-vendor-D61Uve5n.js";import{c as o,o as s,s as c}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{U as l,x as u}from"./dist-v_MvKS2-.js";import{Z as d,n as f,r as p}from"./store-W78TGOIO.js";import{Nt as m,nn as h,wn as g}from"./api-C4ukGdyH.js";import{p as _,t as v}from"./utils-CqsIXqSC.js";import{t as y}from"./x-ByOPrz5I.js";import{t as b}from"./button-DDaJhJP1.js";import{n as x}from"./scroll-area-CGEZ1gAL.js";import{t as S}from"./progress-indicator-hJ74ac5W.js";import{$n as C,At as w,Cn as T,Er as E,Fn as D,Hn as O,It as k,Jn as A,Lt as j,Tr as M,Ut as N,Yt as P,bn as F,ft as I,jt as ee,kt as L,xr as R,zt as z}from"./index-CoY8DilQ.js";var B=[{value:`providers`,label:`Providers`},{value:`model-aliases`,label:`Default Models`},{value:`models`,label:`List`}];function V(e){let t=e.replace(/\/+$/,``);return t===`/settings/providers`||t.startsWith(`/settings/providers/`)?`providers`:t===`/settings/models`?`models`:t===`/settings/model-aliases`?`model-aliases`:null}var H=[{value:`general`,label:`General`},{value:`history`,label:`History`},{value:`storage`,label:`Storage`},{value:`statistics`,label:`Statistics`},{value:`logs`,label:`Logs`},{value:`slack`,label:`Slack`}];function U(e){let t=e.replace(/\/+$/,``);if(t===`/settings/general`)return`general`;for(let e of H)if(t===`/settings/general/${e.value}`||e.value!==`general`&&t===`/settings/${e.value}`)return e.value;return null}var W=[{value:`skills`,label:`Skills`},{value:`mcp-servers`,label:`MCP`},{value:`system-prompt`,label:`System Prompt`},{value:`tools`,label:`Tools`},{value:`slash-commands`,label:`Slash Commands`},{value:`subagents`,label:`Subagents`}];function G(e){let t=e.replace(/\/+$/,``);if(/^\/settings\/project\/[^/]+\/plugins$/.test(t)||t===`/settings/plugins`)return`skills`;if(/^\/settings\/project\/[^/]+\/tools$/.test(t))return`tools`;for(let e of W)if(RegExp(`^/settings/project/[^/]+/plugins/${e.value}$`).test(t)||t===`/settings/plugins/${e.value}`||e.value!==`tools`&&t===`/settings/${e.value}`)return e.value;return null}var K=n(),q=e(r(),1),J=a(),te=(0,q.forwardRef)(function(e,t){let n=(0,K.c)(29),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:u,className:d,onCollapse:f,onExpand:p,isMobile:m,mobileShowSidebar:h,sidebarClassName:g}=e,_=a===void 0?25:a,y=o===void 0?20:o,b=s===void 0?30:s,x=c===void 0?40:c,S=l!==void 0&&l,C=u===void 0?0:u,T=d===void 0?``:d,E=m!==void 0&&m,D=h===void 0||h,O=E&&!D,k=E&&D,A=`h-full ${T}`,j=E?100:_,M=E?50:y,N=E?100:b,P=O&&`hidden`,F;n[0]!==g||n[1]!==P?(F=v(`border-r border-transparent`,P,g),n[0]=g,n[1]=P,n[2]=F):F=n[2];let I;n[3]!==C||n[4]!==S||n[5]!==f||n[6]!==p||n[7]!==t||n[8]!==r||n[9]!==j||n[10]!==M||n[11]!==N||n[12]!==F?(I=(0,J.jsx)(w,{ref:t,defaultSize:j,minSize:M,maxSize:N,collapsible:S,collapsedSize:C,onCollapse:f,onExpand:p,className:F,children:r}),n[3]=C,n[4]=S,n[5]=f,n[6]=p,n[7]=t,n[8]=r,n[9]=j,n[10]=M,n[11]=N,n[12]=F,n[13]=I):I=n[13];let R;n[14]===E?R=n[15]:(R=!E&&(0,J.jsx)(L,{withHandle:!0,className:`ml-[-10px]`}),n[14]=E,n[15]=R);let z=k&&`hidden`,B;n[16]===z?B=n[17]:(B=v(`overflow-hidden`,z),n[16]=z,n[17]=B);let V;n[18]!==i||n[19]!==x||n[20]!==B?(V=(0,J.jsx)(w,{minSize:x,className:B,children:i}),n[18]=i,n[19]=x,n[20]=B,n[21]=V):V=n[21];let H;n[22]!==I||n[23]!==R||n[24]!==V?(H=(0,J.jsxs)(ee,{direction:`horizontal`,className:`h-full`,children:[I,R,V]}),n[22]=I,n[23]=R,n[24]=V,n[25]=H):H=n[25];let U;return n[26]!==A||n[27]!==H?(U=(0,J.jsx)(`div`,{className:A,children:H}),n[26]=A,n[27]=H,n[28]=U):U=n[28],U});function ne(e){return e.startsWith(`/settings/project/`)?e.endsWith(`/model-aliases`)?`project-model-aliases`:e.endsWith(`/env-vars`)?`project-env-vars`:/^\/settings\/project\/[^/]+\/coding(?:\/[^/]+)?\/?$/.test(e)?`project-coding`:e.endsWith(`/danger-zone`)?`project-danger-zone`:`project`:null}function re(e,t){if(G(e))return`project-plugins`;if(U(e))return`general`;if(V(e))return`providers`;let n=ne(e);if(n)return n;for(let n of t)if(e.startsWith(n.route))return n.id;return`general`}var Y=[{id:`project-plugins`,label:`Plugins`,icon:(0,J.jsx)(O,{className:`h-4 w-4`}),route:`/settings/plugins`},{id:`general`,label:`Settings`,icon:(0,J.jsx)(D,{className:`h-4 w-4`}),route:`/settings/general`},{id:`providers`,label:`Providers`,icon:(0,J.jsx)(M,{className:`h-4 w-4`}),route:`/settings/providers`},{id:`remote-machines`,label:`Remote Access`,icon:(0,J.jsx)(C,{className:`h-4 w-4`}),route:`/settings/remote-machines`},{id:`account`,label:`Account`,icon:(0,J.jsx)(F,{className:`h-4 w-4`}),route:`/settings/account`}],ie=new Set([`project`,`project-coding`,`project-danger-zone`,`project-env-vars`,`project-plugins`]),ae=new Set([`general`,`providers`,`remote-machines`,`account`]);function oe(e){return ie.has(e)?`project`:`general`}function se(e){let t=(0,K.c)(18),{label:n,items:r,activeTabId:i,onItemClick:a,showSeparator:o,className:s}=e,c=o===void 0||o;if(r.length===0)return null;let l;t[0]===n?l=t[1]:(l=n?(0,J.jsx)(k,{className:`text-xs`,children:n}):null,t[0]=n,t[1]=l);let u;if(t[2]!==i||t[3]!==r||t[4]!==a){let e;t[6]!==i||t[7]!==a?(e=e=>(0,J.jsx)(N,{selected:i===e.id,asChild:!0,children:(0,J.jsx)(`button`,{className:`justify-start`,onClick:()=>a(e),children:(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,J.jsx)(`span`,{children:e.label})]})})},e.id),t[6]=i,t[7]=a,t[8]=e):e=t[8],u=r.map(e),t[2]=i,t[3]=r,t[4]=a,t[5]=u}else u=t[5];let d;t[9]===u?d=t[10]:(d=(0,J.jsx)(`div`,{className:`space-y-1`,children:u}),t[9]=u,t[10]=d);let f;t[11]===c?f=t[12]:(f=c?(0,J.jsx)(z,{className:`my-2`}):null,t[11]=c,t[12]=f);let p;return t[13]!==s||t[14]!==l||t[15]!==d||t[16]!==f?(p=(0,J.jsxs)(`div`,{className:s,children:[l,d,f]}),t[13]=s,t[14]=l,t[15]=d,t[16]=f,t[17]=p):p=t[17],p}function ce(e){let t=[...Y];if(!e)return t;let n=t.findIndex(e=>e.id===`project-plugins`);n!==-1&&t.splice(n,1);let r=t.findIndex(e=>e.id===`general`);return t.splice(r,0,{id:`project`,label:`Settings`,icon:(0,J.jsx)(D,{className:`h-4 w-4`}),route:`/settings/project/${e}`},{id:`project-plugins`,label:`Plugins`,icon:(0,J.jsx)(O,{className:`h-4 w-4`}),route:`/settings/project/${e}/plugins`},{id:`project-coding`,label:`Setup`,icon:(0,J.jsx)(R,{className:`h-4 w-4`}),route:`/settings/project/${e}/coding`},{id:`project-env-vars`,label:`Variables`,icon:(0,J.jsx)(E,{className:`h-4 w-4`}),route:`/settings/project/${e}/env-vars`},{id:`project-danger-zone`,label:`Danger Zone`,icon:(0,J.jsx)(T,{className:`h-4 w-4`}),route:`/settings/project/${e}/danger-zone`}),t}function le(e){let t=(0,K.c)(32),{className:n,selectedProjectId:r,onResetOnboarding:i,onNavItemSelect:a}=e,o=c(),l=s(),u=(0,q.useRef)(0),d=(0,q.useRef)(null),f,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>()=>{d.current&&clearTimeout(d.current)},p=[],t[0]=f,t[1]=p):(f=t[0],p=t[1]),(0,q.useEffect)(f,p);let m=j(),h;t[2]===r?h=t[3]:(h=ce(r),t[2]=r,t[3]=h);let g=h,_;t[4]!==m||t[5]!==g?(_=m?g.filter(fe):g,t[4]=m,t[5]=g,t[6]=_):_=t[6];let y=_,b;t[7]!==l.pathname||t[8]!==y?(b=re(l.pathname,y),t[7]=l.pathname,t[8]=y,t[9]=b):b=t[9];let x=b,S;t[10]!==o||t[11]!==a||t[12]!==i?(S=function(e){e.id===`general`&&i&&(d.current&&clearTimeout(d.current),u.current+=1,u.current>=3?(u.current=0,i()):d.current=setTimeout(()=>{u.current=0},1500)),a?.(),o(e.route)},t[10]=o,t[11]=a,t[12]=i,t[13]=S):S=t[13];let C=S,w;t[14]===y?w=t[15]:(w=y.filter(de),t[14]=y,t[15]=w);let T=w,E;t[16]===y?E=t[17]:(E=y.filter(ue),t[16]=y,t[17]=E);let D=E,O;t[18]===n?O=t[19]:(O=v(`space-y-1`,n),t[18]=n,t[19]=O);let k;t[20]!==x||t[21]!==D||t[22]!==C?(k=(0,J.jsx)(se,{label:`General`,items:D,activeTabId:x,onItemClick:C,showSeparator:!1}),t[20]=x,t[21]=D,t[22]=C,t[23]=k):k=t[23];let A;t[24]!==x||t[25]!==C||t[26]!==T?(A=(0,J.jsx)(se,{label:`Project`,items:T,activeTabId:x,onItemClick:C,showSeparator:!1,className:`pt-3`}),t[24]=x,t[25]=C,t[26]=T,t[27]=A):A=t[27];let M;return t[28]!==k||t[29]!==A||t[30]!==O?(M=(0,J.jsxs)(`div`,{className:O,children:[k,A]}),t[28]=k,t[29]=A,t[30]=O,t[31]=M):M=t[31],M}function ue(e){return ae.has(e.id)}function de(e){return ie.has(e.id)}function fe(e){return e.id!==`account`}var pe=t({SettingsContent:()=>Qe,default:()=>$e,getActiveTab:()=>X,resolveActiveNavTabId:()=>Ne,resolveActiveSectionLabel:()=>Ie,resolveSettingsContentView:()=>Xe}),me=u(`app.settings-view.ui`),he=`frosted-surface backdrop-blur-2xl`,ge=(0,q.lazy)(function(){return i(()=>import(`./settings-general-tabs-view-BWR0UX2P.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]))}),_e=(0,q.lazy)(()=>i(()=>import(`./project-settings-view-CE4nAz5B.js`),__vite__mapDeps([75,1,2,3,4,20,6,18,57,37,50,9,10,11,27,12,13,14,15,16,17,19,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,5,66,67,68,69,70,71,72,73,74,76]))),ve=(0,q.lazy)(function(){return i(()=>import(`./settings-setup-view-I5MGUi_D.js`),__vite__mapDeps([77,1,2,3,4,20,6,5,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,10,45,46,47,48,49,50,9,11,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,7,8]))}),ye=(0,q.lazy)(()=>i(()=>import(`./project-env-vars-view-DKyQkh7h.js`),__vite__mapDeps([78,1,2,3,4,18,6,57,37,43,50,27,12,13,14,15,16,17,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,38,39,40,41,42,44,10,45,46,47,48,49,9,11,51,52,53,54,55,56,58,59,60,61,62,63,64,65,5,66,67,68,69,70,71,72,73,74,76]))),be=(0,q.lazy)(()=>i(()=>import(`./project-danger-zone-view-CGxIenpr.js`),__vite__mapDeps([79,2,1,4,20,6,50,12,3,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,10,45,46,47,48,49,9,11,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,5,66,67,68,69,70,71,72,73,74]))),xe=(0,q.lazy)(()=>i(()=>import(`./project-model-aliases-view-BewwJZAx.js`),__vite__mapDeps([80,1,2,16,13,14,17,4,18,19,6,50,27,72,36,37,51,53,10,11,9,45,63,61,65,71,12,3,15,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,38,39,40,41,42,43,44,46,47,48,49,52,54,55,56,57,58,59,60,62,64,5,66,67,68,69,70,73,74,81,76]))),Se=(0,q.lazy)(function(){return i(()=>import(`./settings-plugins-view-avaUE36r.js`),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]))}),Ce=(0,q.lazy)(function(){return i(()=>import(`./settings-providers-view-B39k1iRQ.js`),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]))}),we=(0,q.lazy)(function(){return i(()=>import(`./settings-remote-machines-view-BXondQG_.js`),__vite__mapDeps([84,1,2,16,13,14,17,4,18,19,6,36,37,38,57,42,43,44,10,45,46,48,50,9,11,60,59,27,66,12,3,15,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,39,40,41,47,49,51,52,53,54,55,56,58,61,62,63,64,65,5,67,68,69,70,71,72,73,74,76]))}),Te=(0,q.lazy)(()=>i(()=>import(`./account-view-DkuCOxkE.js`),__vite__mapDeps([85,1,2,3,14,17,13,4,20,6,18,36,37,50,27,19,12,15,16,21,22,23,24,25,26,28,29,30,31,32,33,34,35,38,39,40,41,42,43,44,10,45,46,47,48,49,9,11,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,5,66,67,68,69,70,71,72,73,74,86]))),Ee=[`plugins`,`general`,`providers`,`remote-machines`,`models`,`model-aliases`,`skills`,`slash-commands`,`subagents`,`system-prompt`,`mcp-servers`,`slack`,`logs`,`statistics`,`history`,`storage`,`account`];function De(e){let t=(0,K.c)(2),{title:n}=e,r;return t[0]===n?r=t[1]:(r=(0,J.jsx)(I,{title:n,children:`Content coming soon...`}),t[0]=n,t[1]=r),r}function X(e){return G(e)?`plugins`:U(e)?`general`:V(e)?`providers`:e.startsWith(`/settings/skills`)?`skills`:e.startsWith(`/settings/slash-commands`)?`slash-commands`:e.startsWith(`/settings/subagents`)?`subagents`:e.startsWith(`/settings/system-prompt`)?`system-prompt`:e.startsWith(`/settings/mcp-servers`)?`mcp-servers`:e.startsWith(`/settings/slack`)?`slack`:e.startsWith(`/settings/logs`)?`logs`:e.startsWith(`/settings/statistics`)?`statistics`:e.startsWith(`/settings/history`)?`history`:e.startsWith(`/settings/storage`)?`storage`:e.startsWith(`/settings/account`)?`account`:e.startsWith(`/settings/remote-machines`)?`remote-machines`:`general`}function Oe(e){let t=e.match(/^\/settings\/providers\/([^/]+)$/);return t?decodeURIComponent(t[1]):null}function ke(e,t,n){return e&&Ee.includes(e)?e:t&&Ee.includes(t)?t:X(n)}var Z=new Set([`plugins`,`skills`,`mcp-servers`,`system-prompt`,`slash-commands`,`subagents`]),Q=new Set([`general`,`history`,`storage`,`statistics`,`logs`,`slack`]),Ae=new Set([`providers`,`models`,`model-aliases`]);function je(e){return[[e.isProjectToolsRoute,`project-plugins`],[e.isProjectModelAliasesRoute,`project-model-aliases`],[e.isProjectEnvVarsRoute,`project-env-vars`],[e.isProjectCodingRoute,`project-coding`],[e.isProjectDangerZoneRoute,`project-danger-zone`],[e.isProjectRoute,`project`]].find(function([e]){return e})?.[1]}function Me(e){return Q.has(e)?`general`:Ae.has(e)?`providers`:e}function Ne(e){return Z.has(e.activeTab)?`project-plugins`:je(e)??Me(e.activeTab)}function Pe(e){return[[e.isProjectToolsRoute,`Plugins`],[e.isProjectModelAliasesRoute,`Default Models`],[e.isProjectEnvVarsRoute,`Variables`],[e.isProjectCodingRoute,`Setup`],[e.isProjectDangerZoneRoute,`Danger Zone`],[e.isProjectSettingsRoute,`Project`]].find(function([e]){return e})?.[1]}function Fe(e){return Q.has(e)?`Settings`:Ae.has(e)?`Providers`:Y.find(t=>t.id===e)?.label??`Settings`}function Ie(e){return Z.has(e.activeTab)?`Plugins`:Pe(e)??Fe(e.activeTab)}function Le(e,t){return e===`/settings`||e===`/settings/project`||[`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`,`/settings/rules`].some(t=>e.startsWith(t))||t&&e.startsWith(`/settings/account`)}function Re(e){return!e.endsWith(`/tools`)&&!/\/plugins(?:\/[^/]+)?\/?$/.test(e)&&!e.endsWith(`/model-aliases`)&&!e.endsWith(`/env-vars`)&&!/\/coding(?:\/[^/]+)?\/?$/.test(e)&&!e.endsWith(`/danger-zone`)}function ze(e,t){let n=!!e&&t.startsWith(`/settings/project/`);return{isProjectRoute:n,isProjectToolsRoute:n&&t.endsWith(`/tools`),isProjectPluginsRoute:n&&/\/plugins(?:\/[^/]+)?\/?$/.test(t),isProjectModelAliasesRoute:n&&t.endsWith(`/model-aliases`),isProjectEnvVarsRoute:n&&t.endsWith(`/env-vars`),isProjectCodingRoute:n&&/\/coding(?:\/[^/]+)?\/?$/.test(t),isProjectDangerZoneRoute:n&&t.endsWith(`/danger-zone`),isProjectSettingsRoute:n&&Re(t)}}function Be(e,t){let n=(0,K.c)(5),r;n[0]!==t||n[1]!==e?(r=()=>{let n=e.current;if(!n)return;let r=function(e){if(e.key!==`Escape`)return;let n=document.activeElement;if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLElement&&n.isContentEditable){n.blur();return}t()};return n.addEventListener(`keydown`,r),()=>n.removeEventListener(`keydown`,r)},n[0]=t,n[1]=e,n[2]=r):r=n[2];let i;n[3]===t?i=n[4]:(i=[t],n[3]=t,n[4]=i),(0,q.useEffect)(r,i)}function Ve(e){let t=(0,K.c)(7),{selectedProjectId:n,onResetOnboarding:r,onNavItemSelect:i,header:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,J.jsx)(`div`,{className:`min-h-0 flex-1 p-2.5`,children:(0,J.jsx)(x,{className:`h-full`,children:(0,J.jsx)(`div`,{className:`py-2`,children:(0,J.jsx)(le,{selectedProjectId:n,onResetOnboarding:r,onNavItemSelect:i})})})}),t[0]=i,t[1]=r,t[2]=n,t[3]=o):o=t[3];let s;return t[4]!==a||t[5]!==o?(s=(0,J.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6],s}function He(e){let t=(0,K.c)(16),{settingsHeaderTitle:n,isProjectSettingsScope:r,selectedProject:i,onRequestClose:a}=e,o;t[0]!==r||t[1]!==i?(o=r&&i?(0,J.jsx)(P,{project:i,className:`h-7 w-7 shrink-0 rounded-md`,iconClassName:`h-3.5 w-3.5`}):(0,J.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border shadow-sm`,children:(0,J.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full`})}),t[0]=r,t[1]=i,t[2]=o):o=t[2];let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=v(l.sectionTitle,`min-w-0 truncate`),t[3]=s):s=t[3];let c;t[4]===n?c=t[5]:(c=(0,J.jsx)(`span`,{className:s,children:n}),t[4]=n,t[5]=c);let u;t[6]!==o||t[7]!==c?(u=(0,J.jsxs)(`div`,{className:`col-start-2 flex min-w-0 max-w-full items-center gap-2 justify-self-center electrobun-webkit-app-region-no-drag`,children:[o,c]}),t[6]=o,t[7]=c,t[8]=u):u=t[8];let d,f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(y,{className:`h-4 w-4`}),f=(0,J.jsx)(`span`,{className:`sr-only`,children:`Close`}),t[9]=d,t[10]=f):(d=t[9],f=t[10]);let p;t[11]===a?p=t[12]:(p=(0,J.jsx)(`div`,{className:`col-start-3 flex items-center justify-self-end electrobun-webkit-app-region-no-drag`,children:(0,J.jsxs)(b,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:a,children:[d,f]})}),t[11]=a,t[12]=p);let m;return t[13]!==u||t[14]!==p?(m=(0,J.jsxs)(`div`,{className:`grid h-14 shrink-0 grid-cols-[2.75rem_minmax(0,1fr)_2.75rem] items-center px-4 electrobun-webkit-app-region-drag`,children:[u,p]}),t[13]=u,t[14]=p,t[15]=m):m=t[15],m}function Ue(e){let t=(0,K.c)(10),{isMobile:n,mobileShowSidebar:r,isProviderDetailRoute:i,activeSectionLabel:a,onShowSidebar:o}=e;if(!n||r||i)return null;let s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(A,{className:`h-4 w-4`}),c=(0,J.jsx)(`span`,{className:`sr-only`,children:`Show settings menu`}),t[0]=s,t[1]=c):(s=t[0],c=t[1]);let u;t[2]===o?u=t[3]:(u=(0,J.jsxs)(b,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:o,children:[s,c]}),t[2]=o,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=v(l.sectionTitle,`truncate text-foreground`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,J.jsx)(`span`,{className:d,children:a}),t[5]=a,t[6]=f);let p;return t[7]!==u||t[8]!==f?(p=(0,J.jsx)(`div`,{className:`px-6 pb-0 pt-6`,children:(0,J.jsxs)(`div`,{className:`mb-4 flex min-w-0 items-center gap-2`,children:[u,f]})}),t[7]=u,t[8]=f,t[9]=p):p=t[9],p}var We=new Set([`skills`,`mcp-servers`,`system-prompt`,`slash-commands`,`subagents`]);function Ge(e){return e.isProjectToolsRoute||e.isProjectPluginsRoute}function Ke(e){return We.has(e)?e:void 0}function qe(e,t){return e.isProjectCodingRoute?{kind:`project-coding`,projectId:t}:e.isProjectDangerZoneRoute?{kind:`project-danger-zone`,projectId:t}:e.selectedProjectId!==t&&Ge(e)?{kind:`project-plugins-loading`}:void 0}function Je(e,t){return e.isProjectModelAliasesRoute?{kind:`project-model-aliases`}:e.isProjectEnvVarsRoute?{kind:`project-env-vars`,projectId:t}:e.isProjectSettingsRoute?{kind:`project-settings`,projectId:t}:void 0}function Ye(e){let{projectId:t}=e;return(t?qe(e,t):void 0)||(Ge(e)||Z.has(e.activeTab)?{kind:`plugins`,projectId:t??e.selectedProjectId,fallbackTab:Ke(e.activeTab)}:t?Je(e,t):void 0)}function Xe(e){return Ye(e)||(Q.has(e.activeTab)?{kind:`general`,fallbackTab:e.activeTab}:Ae.has(e.activeTab)?{kind:`providers`,fallbackTab:e.activeTab}:e.activeTab===`remote-machines`?{kind:`remote-machines`}:e.activeTab===`account`?{kind:`account`}:{kind:`blank`})}function $(e){let t=(0,K.c)(2),{label:n}=e,r;return t[0]===n?r=t[1]:(r=(0,J.jsx)(S,{centered:!0,containerClassName:`min-h-0 flex-1`,label:n,size:`lg`}),t[0]=n,t[1]=r),r}function Ze(){let e=(0,K.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)($,{label:`Loading Provider Settings`}),e[0]=t):t=e[0],t}function Qe(e){let t=(0,K.c)(33),n;t[0]===e?n=t[1]:(n=Xe(e),t[0]=e,t[1]=n);let r=n;switch(r.kind){case`project-coding`:{let n;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)($,{label:`Loading Coding Settings`}),t[2]=n):n=t[2];let i;return t[3]!==e.handleProjectUpdated||t[4]!==r.projectId?(i=(0,J.jsx)(q.Suspense,{fallback:n,children:(0,J.jsx)(ve,{projectId:r.projectId,onProjectUpdated:e.handleProjectUpdated})}),t[3]=e.handleProjectUpdated,t[4]=r.projectId,t[5]=i):i=t[5],i}case`project-danger-zone`:{let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)($,{label:`Loading Danger Zone`}),t[6]=e):e=t[6];let n;return t[7]===r.projectId?n=t[8]:(n=(0,J.jsx)(q.Suspense,{fallback:e,children:(0,J.jsx)(be,{projectId:r.projectId})}),t[7]=r.projectId,t[8]=n),n}case`project-plugins-loading`:{let e;return t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)($,{label:`Loading Project Plugins`}),t[9]=e):e=t[9],e}case`plugins`:{let n;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)($,{label:`Loading Plugin Settings`}),t[10]=n):n=t[10];let i;return t[11]!==e.handleProjectUpdated||t[12]!==r.fallbackTab||t[13]!==r.projectId?(i=(0,J.jsx)(q.Suspense,{fallback:n,children:(0,J.jsx)(Se,{projectId:r.projectId,fallbackTab:r.fallbackTab,onProjectUpdated:e.handleProjectUpdated})}),t[11]=e.handleProjectUpdated,t[12]=r.fallbackTab,t[13]=r.projectId,t[14]=i):i=t[14],i}case`project-model-aliases`:{let e;return t[15]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)($,{label:`Loading Project Model Aliases`}),children:(0,J.jsx)(xe,{})}),t[15]=e):e=t[15],e}case`project-env-vars`:{let e;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)($,{label:`Loading Environment Variables`}),t[16]=e):e=t[16];let n;return t[17]===r.projectId?n=t[18]:(n=(0,J.jsx)(q.Suspense,{fallback:e,children:(0,J.jsx)(ye,{projectId:r.projectId})}),t[17]=r.projectId,t[18]=n),n}case`project-settings`:{let n;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)($,{label:`Loading Project Settings`}),t[19]=n):n=t[19];let i;return t[20]!==e.handleProjectUpdated||t[21]!==r.projectId?(i=(0,J.jsx)(q.Suspense,{fallback:n,children:(0,J.jsx)(_e,{projectId:r.projectId,onProjectUpdated:e.handleProjectUpdated})}),t[20]=e.handleProjectUpdated,t[21]=r.projectId,t[22]=i):i=t[22],i}case`general`:{let n;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)($,{label:`Loading General Settings`}),t[23]=n):n=t[23];let i;return t[24]!==e.onboardingResetSignal||t[25]!==r.fallbackTab?(i=(0,J.jsx)(q.Suspense,{fallback:n,children:(0,J.jsx)(ge,{fallbackTab:r.fallbackTab,onboardingResetSignal:e.onboardingResetSignal})}),t[24]=e.onboardingResetSignal,t[25]=r.fallbackTab,t[26]=i):i=t[26],i}case`providers`:{let e;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(Ze,{}),t[27]=e):e=t[27];let n;return t[28]===r.fallbackTab?n=t[29]:(n=(0,J.jsx)(q.Suspense,{fallback:e,children:(0,J.jsx)(Ce,{fallbackTab:r.fallbackTab})}),t[28]=r.fallbackTab,t[29]=n),n}case`remote-machines`:{let e;return t[30]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)($,{label:`Loading Remote Machines`}),children:(0,J.jsx)(we,{})}),t[30]=e):e=t[30],e}case`account`:{let e;return t[31]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)($,{label:`Loading Account Settings`}),children:(0,J.jsx)(Te,{})}),t[31]=e):e=t[31],e}case`blank`:{let e;return t[32]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(De,{title:`Settings`}),t[32]=e):e=t[32],e}}}function $e({onRequestClose:e}){let{tab:t,projectId:n}=o(),r=c(),i=s(),a=f(),l=p(e=>e.selectedProjectId),u=p(e=>e.projects),{isProjectRoute:y,isProjectToolsRoute:b,isProjectPluginsRoute:x,isProjectModelAliasesRoute:S,isProjectEnvVarsRoute:C,isProjectCodingRoute:w,isProjectDangerZoneRoute:T,isProjectSettingsRoute:E}=ze(n,i.pathname),D=Oe(i.pathname)!==null,O=ke(new URLSearchParams(i.search).get(`tab`),t,i.pathname),k=j();(0,q.useEffect)(()=>{n&&l!==n&&a({type:d.SelectProject,projectId:n})},[a,n,l]);let[A,M]=(0,q.useState)(!0),[N,P]=(0,q.useState)(0),F=(0,q.useRef)(null),I=(0,q.useRef)(null),ee=Ne({isProjectToolsRoute:b,isProjectModelAliasesRoute:S,isProjectEnvVarsRoute:C,isProjectCodingRoute:w,isProjectDangerZoneRoute:T,isProjectRoute:y,activeTab:O}),L=(0,q.useMemo)(()=>u.find(e=>e.projectId===l)??null,[u,l]),R=oe(ee)===`project`&&L!==null,z=R?`${_(L)} Settings`:`General Settings`,B=(0,q.useMemo)(()=>Ie({isProjectToolsRoute:b,isProjectModelAliasesRoute:S,isProjectEnvVarsRoute:C,isProjectCodingRoute:w,isProjectDangerZoneRoute:T,isProjectSettingsRoute:E,activeTab:O}),[O,w,T,C,S,E,b]),V=(0,q.useCallback)(()=>{k&&M(!1)},[k]),H=(0,q.useCallback)(()=>{M(!0)},[]),U=(0,q.useCallback)(async()=>{try{await g(),P(e=>e+1)}catch(e){me.error(`Failed to reset onboarding:`,e)}},[]),W=(0,q.useCallback)(async()=>{h(n??l??void 0);try{let e=await m();a({type:d.SetProjects,projects:e.projects,cloneRootPath:e.cloneRootPath})}catch(e){throw me.error(`Failed to refresh projects after settings update:`,e),e}},[a,n,l]);(0,q.useEffect)(()=>{if(S){r(`/settings/model-aliases`,{replace:!0});return}Le(i.pathname,k)&&r(`/settings/general`,{replace:!0})},[S,i.pathname,r,k]),Be(I,e);function G(){return(0,J.jsx)(He,{settingsHeaderTitle:z,isProjectSettingsScope:R,selectedProject:L,onRequestClose:e})}function K(){return k?G():(0,J.jsx)(`div`,{"aria-hidden":`true`,className:`h-14 shrink-0 electrobun-webkit-app-region-drag`})}function ne(){return(0,J.jsx)(Ve,{selectedProjectId:l,onResetOnboarding:U,onNavItemSelect:V,header:K()})}function re(){return(0,J.jsx)(Qe,{isProjectToolsRoute:b,isProjectPluginsRoute:x,isProjectModelAliasesRoute:S,isProjectEnvVarsRoute:C,isProjectCodingRoute:w,isProjectDangerZoneRoute:T,isProjectSettingsRoute:E,projectId:n,selectedProjectId:l,activeTab:O,onboardingResetSignal:N,handleProjectUpdated:W})}function Y(){return(0,J.jsx)(Ue,{isMobile:k,mobileShowSidebar:A,isProviderDetailRoute:D,activeSectionLabel:B,onShowSidebar:H})}return(0,J.jsx)(`div`,{ref:I,role:`dialog`,"aria-modal":`true`,"aria-label":`Settings`,className:v(`rounded-2xl border border-border shadow-lg`,he,`flex h-full w-full flex-col overflow-hidden md:h-[95vh] md:w-[80vw] md:max-w-[1400px]`),children:(0,J.jsx)(te,{ref:F,collapsible:!0,isMobile:k,mobileShowSidebar:A,sidebarClassName:v(`overflow-hidden border-r border-divider`,he),sidebar:ne(),children:(0,J.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[G(),(0,J.jsxs)(`div`,{className:v(`relative flex min-h-0 flex-1 flex-col overflow-hidden py-2.5 pl-2.5`,k?null:`ml-2.5`),children:[Y(),re()]})]})})})}export{Qe as SettingsContent,U as a,$e as default,X as getActiveTab,H as i,W as n,B as o,G as r,Ne as resolveActiveNavTabId,Ie as resolveActiveSectionLabel,Xe as resolveSettingsContentView,V as s,pe as t};
@@ -1 +0,0 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,u as d,x as f}from"./dist-v_MvKS2-.js";import{Z as p}from"./store-W78TGOIO.js";import{Jt as ee,Nt as te,ai as m,ci as h,ii as g,li as _,nn as ne,ri as v}from"./api-C4ukGdyH.js";import{h as y}from"./create-project-workspace-DSTTGom_.js";import{r as b}from"./suspense-resource-DzlMlIgR.js";var re=[`security`,`feature`,`fix`,`important`],x=[`#EF4444`,`#F97316`,`#EAB308`,`#22C55E`,`#14B8A6`,`#06B6D4`,`#3B82F6`,`#8B5CF6`,`#EC4899`,`#78716C`],ie=/[\p{Cc}\p{Cf}]/u;function ae(e){return e.trim().replace(/\s+/g,` `)}function S(e){return e.toLowerCase()}function oe(e){return e?Array.from(e).length>40?`Tag name must be 40 characters or fewer`:ie.test(e)?`Tag name must not contain control characters`:null:`Tag name is required`}function se(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function ce(e){return x[se(e)%x.length]??x[0]}function C(e){return[...e].sort(function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:`base`})})}async function w(e){return m(`api/projects/${g(e)}/tasks`)}async function T(e,t){return m(`api/projects/${g(e)}/tasks/${g(t)}/runs`)}async function E(e,t,n){return _(`api/projects/${g(e)}/tasks`,{description:t,threadId:n?.threadId,provider:n?.provider,model:n?.model,tags:n?.tags,triggerType:n?.triggerType,scheduledAt:n?.scheduledAt,scheduleCron:n?.scheduleCron,timezone:n?.timezone,enabled:n?.enabled,eventKey:n?.eventKey})}async function D(e,t,n){return _(`api/projects/${g(e)}/tasks/${g(t)}/generate-title`,{threadId:n?.threadId,provider:n?.provider,model:n?.model,expectedTitle:n?.expectedTitle})}async function O(e,t,n){return h(`api/projects/${g(e)}/tasks/${g(t)}`,n)}async function k(e,t){return h(`api/projects/${g(e)}/tasks/${g(t)}`,{runNow:!0})}async function A(e,t,n,r){return h(`api/projects/${g(e)}/tasks/${g(t)}`,{startInNewWorkspace:!0,model:n?.model,provider:n?.provider,...r?{workspaceThreadId:r}:{}})}async function j(e,t,n){return _(`api/projects/${g(e)}/events/dispatch`,{eventKey:t,payload:n})}async function M(e,t){await v(`api/projects/${g(e)}/tasks/${g(t)}`)}async function N(e){return C(await m(`api/projects/${g(e)}/tags`))}async function P(e,t,n){return h(`api/projects/${g(e)}/tags/${g(t)}`,{name:n})}async function F(e,t){return _(`api/projects/${g(e)}/tags`,{name:t})}async function I(e,t){await v(`api/projects/${g(e)}/tags/${g(t)}`)}function L(e){return e.status!==`Done`&&!e.working}function R(e){return e.status!==`Done`&&!!e.triggerType}function z(e){return!!e.triggerType&&e.enabled===!1}function B(e,r=new Date){if(!e.triggerType)return null;let i=z(e)?`Paused · `:``;if(e.triggerType===`schedule`&&e.scheduledAt){let t=new Date(e.scheduledAt);if(!Number.isNaN(t.getTime()))return`${i}Scheduled ${t.toLocaleString()}`}if(e.triggerType===`schedule`&&e.scheduleCron&&e.timezone){let o=c(e.scheduleCron),s=o?t(o):e.scheduleCron,l=n(e.scheduleCron,e.timezone,r),u=l?a(l,r):null;return u?`${i}${s} · ${u}`:`${i}${s}`}return e.triggerType===`event`&&e.eventKey?`${i}Event: ${e.eventKey}`:null}function V(e){return[...e].sort((e,t)=>e.status===`Done`&&t.status!==`Done`?1:e.status!==`Done`&&t.status===`Done`||e.working&&!t.working?-1:!e.working&&t.working?1:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}var H=f(`app.project-tasks.store`),U=15e3;function W(e,t){return`project-tasks:${e}:${t}`}function G(e){b(`project-tasks:${e}:`)}async function le(e){ne(),b(`projects:bootstrap:`);let t=await te();e({type:p.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),e({type:p.SetProjectsLoading,projectsLoading:!1}),y(e)}async function ue(e){let t=Date.now(),n=setTimeout(function(){H.warn(`Project tasks fetch is still pending after 15s — tasks window keeps showing its spinner`,{projectId:e})},U);try{let n=await w(e),r=n.filter(e=>e.threadId&&e.status!==`Done`);return await Promise.all(r.map(async t=>{try{await ee(t.threadId)}catch(n){H.warn(`Failed to verify task thread during project tasks load; leaving task unchanged`,{projectId:e,taskId:t.id,threadId:t.threadId,error:n})}})),H.debug(`Loaded project tasks`,{projectId:e,taskCount:n.length,durationMs:Date.now()-t}),n}finally{clearTimeout(n)}}var K=`09:00`;function q(e){return String(e).padStart(2,`0`)}function de(){let e=new Date(Date.now()+36e5);return`${e.getFullYear()}-${q(e.getMonth()+1)}-${q(e.getDate())}T${q(e.getHours())}:${q(e.getMinutes())}`}function J(){return{kind:`manual`,scheduleMode:`once`,scheduledAtLocal:de(),preset:`daily`,presetTime:K,presetMinute:0,presetIntervalMinutes:5,dayOfWeek:new Date().getDay(),timezone:d(),enabled:!0,eventKey:``}}function fe(){return{...J(),kind:`schedule`}}function pe(e,t){let n=c(e.scheduleCron??``),r={kind:`schedule`,scheduleMode:`repeating`,scheduledAtLocal:t.scheduledAtLocal,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``};if(!n)return{...r,preset:`daily`,presetTime:K,presetMinute:0,presetIntervalMinutes:5,dayOfWeek:new Date().getDay()};let i=n.preset===`hourly`||n.preset===`interval`;return{...r,preset:n.preset,presetTime:i?K:n.time,presetMinute:n.minute??0,presetIntervalMinutes:n.intervalMinutes??5,dayOfWeek:n.dayOfWeek??new Date().getDay()}}function me(e,t){let n=new Date(e.scheduledAt??``);return{kind:`schedule`,scheduleMode:`once`,scheduledAtLocal:Number.isNaN(n.getTime())?t.scheduledAtLocal:`${n.getFullYear()}-${q(n.getMonth()+1)}-${q(n.getDate())}T${q(n.getHours())}:${q(n.getMinutes())}`,preset:t.preset,presetTime:t.presetTime,presetMinute:t.presetMinute,presetIntervalMinutes:t.presetIntervalMinutes,dayOfWeek:t.dayOfWeek,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}function Y(e){let t=J();if(e.triggerType===`schedule`){if(e.scheduleCron)return pe(e,t);if(e.scheduledAt)return me(e,t)}return e.triggerType===`event`?{...t,kind:`event`,enabled:e.enabled!==!1,eventKey:e.eventKey??``}:t}function he(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function X(t){return t.kind===`manual`?{triggerType:null,scheduledAt:null,scheduleCron:null,timezone:null,enabled:!0,eventKey:null}:t.kind===`event`?{triggerType:`event`,scheduledAt:null,scheduleCron:null,timezone:null,enabled:t.enabled,eventKey:t.eventKey.trim()||null}:t.scheduleMode===`once`?{triggerType:`schedule`,scheduledAt:he(t.scheduledAtLocal),scheduleCron:null,timezone:t.timezone,enabled:t.enabled,eventKey:null}:{triggerType:`schedule`,scheduledAt:null,scheduleCron:t.preset===`hourly`?e(t.presetMinute):t.preset===`interval`?s(t.presetIntervalMinutes):u(t.preset,t.presetTime,t.dayOfWeek),timezone:t.timezone,enabled:t.enabled,eventKey:null}}function ge(e){return e.kind!==`manual`}function _e(e){return e.kind===`manual`?null:e.kind===`schedule`&&e.scheduleMode===`repeating`&&e.preset===`interval`&&!r(e.presetIntervalMinutes)?`Interval must be a whole number between 1 and ${i} minutes`:l(X(e))}function ve(e,t){return e.kind===`schedule`?o(`schedule`,t):null}function Z(e){return e.replace(/^eventKey is required for event triggers$/,`Event key is required`).replace(/^eventKey must be (\d+) characters or fewer$/,`Event key must be $1 characters or fewer`).replace(/^eventKey may only contain letters, numbers, dots, colons, underscores, and hyphens$/,`Event key may only contain letters, numbers, dots, colons, underscores, and hyphens`)}function ye(e){return e.startsWith(`Event key`)}function be(e,t){return Z(e instanceof Error?e.message:t)}function Q(e,t){return JSON.stringify(e)===JSON.stringify(t)}function xe(e,t){let n=new Set((e??[]).map(e=>S(e.name))),r=new Set(t.map(e=>S(e)));if(n.size!==r.size)return!0;for(let e of r)if(!n.has(e))return!0;return!1}function Se(e){return{threadId:e.selectedThreadId??void 0,provider:e.selectedThreadModel?.provider??e.selectedThread?.modelProvider,model:e.selectedThreadModel?.id??e.selectedThread?.model}}function Ce(e){let t=e.description.trim(),n=t!==e.task.description.trim(),r=xe(e.task.tags,e.tagNames),i=!Q(Y(e.task),e.triggerForm),a=i?X(e.triggerForm):{};return!n&&!r&&!i?{kind:`unchanged`}:{kind:`update`,tagsChanged:r,payload:{description:n?t:void 0,threadId:e.thread.threadId,provider:e.thread.provider,model:e.thread.model,tags:r?e.tagNames:void 0,...a}}}function $(e){let t=e.triggerCollapsed?{}:X(e.triggerForm);return{description:e.description,context:{threadId:e.thread.threadId,provider:e.thread.provider,model:e.thread.model,tags:e.tagNames.length>0?e.tagNames:void 0,...t}}}function we(e){return e.status!==`Done`}function Te(e){return!!e.triggerType}function Ee(e){return!e.triggerType}function De(e,t,n,r=!0){let i=new Set((e.tags??[]).map(function(e){return e.id})),a=t.size===0||[...t].every(function(e){return i.has(e)}),o=n.trim().toLocaleLowerCase(),s=[e.title,e.description,...r?(e.tags??[]).map(function(e){return e.name}):[]].join(` `).toLocaleLowerCase(),c=!o||s.includes(o);return a&&c}function Oe(e,t){let n=V(e).filter(we),r=n.filter(t.automationsOnly?Te:Ee),i=t.automationsOnly?new Set:t.selectedTagIds,a=r.filter(e=>De(e,i,t.searchTerm,!t.automationsOnly)),o=t.projectName??`this project`;return{viewTasks:r,visibleTasks:a,emptyListMessage:t.automationsOnly?`No automations.`:n.length===0?`No active tasks yet. Add one to get started.`:`There are no tasks for ${o}. Click + to add a task.`,noMatchMessage:t.automationsOnly?`No automations match your search.`:`No tasks match the current filters.`}}function ke(e,t,n){let r=n.size===0?t:t.filter(function(e){return n.has(e.id)}),i=r.map(function(t){return{tag:t,tasks:e.filter(function(e){return(e.tags??[]).some(function(e){return e.id===t.id})})}}),a=e.filter(function(e){return r.every(function(t){return!(e.tags??[]).some(function(e){return e.id===t.id})})});return n.size===0&&a.length>0&&i.unshift({tag:null,tasks:a}),i}export{N as A,S as B,z as C,M as D,I as E,A as F,oe as H,O as I,C as L,w as M,P as N,j as O,k as P,re as R,B as S,E as T,ae as V,W as _,Se as a,L as b,be as c,ye as d,Y as f,ue as g,_e as h,Ce as i,T as j,D as k,Z as l,ve as m,Oe as n,J as o,Q as p,$ as r,fe as s,ke as t,ge as u,G as v,F as w,R as x,le as y,ce as z};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{n as i}from"./QueryClientProvider-CYXTUmYo.js";import{U as a,i as o,t as s,x as c}from"./dist-v_MvKS2-.js";import{Z as l,n as u,r as d}from"./store-W78TGOIO.js";import{Ki as f,Nt as p,Pi as m,fa as h,m as g,na as _,nn as v}from"./api-C4ukGdyH.js";import{A as y,B as b,C as x,D as S,E as C,H as w,I as T,L as E,M as D,N as O,P as k,R as A,S as ee,T as j,V as M,_ as N,a as P,b as F,c as I,d as L,f as R,g as te,h as ne,i as z,j as re,k as ie,l as ae,m as oe,n as se,o as ce,p as le,r as ue,s as de,t as fe,u as pe,v as me,w as he,x as ge,z as B}from"./task-utils-BZPVmvY4.js";import{p as _e,t as V}from"./utils-CqsIXqSC.js";import{t as ve}from"./check-skFQ1X72.js";import{t as H}from"./loader-circle-CrqRIqdA.js";import{a as ye,i as be,o as xe,r as Se,s as Ce,t as we}from"./dialog-D_12AsZd.js";import{t as Te}from"./play-Dn1mbRpD.js";import{t as Ee}from"./plus-DoMzejDu.js";import{t as De}from"./x-ByOPrz5I.js";import{t as U}from"./button-DDaJhJP1.js";import{i as Oe,n as ke,r as Ae,t as je}from"./tooltip-CqwCZ7wt.js";import{t as W}from"./label-BCs5CZEs.js";import{n as Me,r as Ne}from"./scroll-area-CGEZ1gAL.js";import{t as Pe}from"./use-toast-CKgZ8YeP.js";import{t as G}from"./progress-indicator-hJ74ac5W.js";import{t as Fe}from"./query-keys-BwswkbMn.js";import{a as Ie,c as Le,i as Re,n as ze,o as Be,r as Ve,s as He,t as Ue}from"./alert-dialog-BcZULJsX.js";import{a as We,n as Ge,t as Ke}from"./suspense-resource-DzlMlIgR.js";import{t as qe}from"./use-suspense-resource-uCX26gOk.js";import{a as K,n as Je,o as q,r as J,t as Ye}from"./select-BR2pG61R.js";import{Bt as Xe,Ct as Ze,En as Qe,F as $e,G as et,H as tt,Ht as nt,I as rt,L as it,Ln as at,Mn as ot,Mt as st,Nt as ct,Ot as lt,Pt as ut,R as dt,Sr as ft,St as pt,Vn as mt,Vt as ht,Wn as gt,_n as _t,_r as vt,br as yt,er as bt,gn as xt,hn as St,in as Y,j as Ct,jn as wt,nr as Tt,on as Et,qn as Dt,rn as Ot,rr as kt,s as At,tn as jt,un as Mt,w as Nt,wn as Pt,xt as Ft,yt as It,zn as Lt}from"./index-CoY8DilQ.js";import{t as Rt}from"./async-error-boundary-FT8_xvjy.js";var X=e(n(),1),Z=t(),Q=r();function zt(e){let t=(0,Z.c)(10),{tag:n,className:r}=e,i;t[0]===r?i=t[1]:(i=V(a.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let o;t[2]===n.color?o=t[3]:(o=(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:n.color}}),t[2]=n.color,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,Q.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=s);let c;return t[6]!==i||t[7]!==o||t[8]!==s?(c=(0,Q.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function Bt(e){let t=(0,Z.c)(6),{className:n}=e,r;t[0]===n?r=t[1]:(r=V(a.compact,`inline-flex items-center gap-1 rounded-full bg-red-500/15 px-2 py-0.5 text-red-600 dark:text-red-400`,n),t[0]=n,t[1]=r);let i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(Dt,{className:`h-3 w-3 shrink-0`,"aria-hidden":`true`}),o=(0,Q.jsx)(`span`,{className:`truncate`,children:`paused`}),t[2]=i,t[3]=o):(i=t[2],o=t[3]);let s;return t[4]===r?s=t[5]:(s=(0,Q.jsxs)(`span`,{className:r,children:[i,o]}),t[4]=r,t[5]=s),s}var Vt={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function Ht(e){let t=(0,Z.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=V(a.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let o=Vt[n],s;t[2]===o?s=t[3]:(s=(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:o}}),t[2]=o,t[3]=s);let c;t[4]===n?c=t[5]:(c=(0,Q.jsx)(`span`,{className:`truncate`,children:n}),t[4]=n,t[5]=c);let l;return t[6]!==i||t[7]!==s||t[8]!==c?(l=(0,Q.jsxs)(`span`,{className:i,children:[s,c]}),t[6]=i,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}var Ut=c(`app.run-history-dialog`),Wt={schedule:{label:`Schedule`,icon:ft},event:{label:`Event`,icon:_t},manual:{label:`Manual`,icon:Te}};function Gt(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`})}function Kt(e){let t=(0,Z.c)(6),{trigger:n}=e,r=Wt[n],i=r.icon,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=V(a.compact,`inline-flex shrink-0 items-center gap-1 rounded-full border border-border px-1.5 py-0.5 text-muted-foreground`),t[0]=o):o=t[0];let s;t[1]===i?s=t[2]:(s=(0,Q.jsx)(i,{className:`h-3 w-3`}),t[1]=i,t[2]=s);let c;return t[3]!==r.label||t[4]!==s?(c=(0,Q.jsxs)(`span`,{className:o,children:[s,r.label]}),t[3]=r.label,t[4]=s,t[5]=c):c=t[5],c}function qt(e){let t=(0,Z.c)(23),{run:n,canOpen:r,onOpenRun:i}=e,o=r?`hover:bg-accent/40`:`cursor-default`,s;t[0]===o?s=t[1]:(s=V(`flex w-full items-center gap-2 rounded-md px-2 py-2 text-left transition-colors`,o),t[0]=o,t[1]=s);let c;t[2]!==i||t[3]!==n?(c=()=>i(n),t[2]=i,t[3]=n,t[4]=c):c=t[4];let l=!r,u,d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(bt,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),d=V(a.body,`min-w-0 flex-1 truncate`),t[5]=u,t[6]=d):(u=t[5],d=t[6]);let f=n.threadTitle??`Conversation deleted`,p;t[7]===f?p=t[8]:(p=(0,Q.jsx)(`span`,{className:d,children:f}),t[7]=f,t[8]=p);let m;t[9]===n.trigger?m=t[10]:(m=(0,Q.jsx)(Kt,{trigger:n.trigger}),t[9]=n.trigger,t[10]=m);let h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=V(a.caption,`shrink-0 tabular-nums text-muted-foreground`),t[11]=h):h=t[11];let g;t[12]===n.createdAt?g=t[13]:(g=Gt(n.createdAt),t[12]=n.createdAt,t[13]=g);let _;t[14]===g?_=t[15]:(_=(0,Q.jsx)(`span`,{className:h,children:g}),t[14]=g,t[15]=_);let v;return t[16]!==_||t[17]!==s||t[18]!==c||t[19]!==l||t[20]!==p||t[21]!==m?(v=(0,Q.jsxs)(`button`,{type:`button`,className:s,onClick:c,disabled:l,children:[u,p,m,_]}),t[16]=_,t[17]=s,t[18]=c,t[19]=l,t[20]=p,t[21]=m,t[22]=v):v=t[22],v}function Jt(e){let t=(0,Z.c)(19),{open:n,onOpenChange:r,projectId:i,taskId:o,onOpenRun:s}=e,[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(null),m,h;t[0]!==n||t[1]!==i||t[2]!==o?(m=()=>{if(!n)return;let e=!1;return d(!0),p(null),re(i,o).then(t=>{e||l(t)}).catch(t=>{Ut.error(`Failed to load task run history:`,t),e||p(t instanceof Error?t.message:String(t))}).finally(()=>{e||d(!1)}),()=>{e=!0}},h=[n,i,o],t[0]=n,t[1]=i,t[2]=o,t[3]=m,t[4]=h):(m=t[3],h=t[4]),(0,X.useEffect)(m,h);let g=!!s,_;t[5]!==r||t[6]!==s?(_=function(e){s&&(r(!1),s(e.threadId))},t[5]=r,t[6]=s,t[7]=_):_=t[7];let v=_,y;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Q.jsxs)(xe,{children:[(0,Q.jsx)(Ce,{children:`Run History`}),(0,Q.jsx)(be,{children:`Conversations created when this task ran, newest first.`})]}),t[8]=y):y=t[8];let b;t[9]!==g||t[10]!==f||t[11]!==v||t[12]!==u||t[13]!==c?(b=(0,Q.jsxs)(Se,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-lg`,children:[y,u?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-muted-foreground`,children:[(0,Q.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{className:a.bodyMuted,children:`Loading runs…`})]}):f?(0,Q.jsxs)(`p`,{className:V(a.bodyMuted,`py-8 text-center text-destructive`),children:[`Failed to load run history: `,f]}):c&&c.length>0?(0,Q.jsx)(Ne,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{className:`space-y-1 py-2`,children:c.map(e=>(0,Q.jsx)(qt,{run:e,canOpen:g&&!!e.threadTitle,onOpenRun:v},e.id))})}):(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`py-8 text-center`),children:`No runs yet. Runs appear here after the task is triggered by its schedule, an event, or Run Now.`})]}),t[9]=g,t[10]=f,t[11]=v,t[12]=u,t[13]=c,t[14]=b):b=t[14];let x;return t[15]!==r||t[16]!==n||t[17]!==b?(x=(0,Q.jsx)(we,{open:n,onOpenChange:r,children:b}),t[15]=r,t[16]=n,t[17]=b,t[18]=x):x=t[18],x}function Yt(e){let t=(0,Z.c)(6);if(!e.show)return null;let n;return t[0]!==e.onOpenChange||t[1]!==e.onOpenRun||t[2]!==e.open||t[3]!==e.task.id||t[4]!==e.task.projectId?(n=(0,Q.jsx)(Jt,{open:e.open,onOpenChange:e.onOpenChange,projectId:e.task.projectId,taskId:e.task.id,onOpenRun:e.onOpenRun}),t[0]=e.onOpenChange,t[1]=e.onOpenRun,t[2]=e.open,t[3]=e.task.id,t[4]=e.task.projectId,t[5]=n):n=t[5],n}function Xt(e){let t=(0,Z.c)(3),{show:n,onSelect:r}=e;if(!n)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(Et,{}),t[0]=i):i=t[0];let a;return t[1]===r?a=t[2]:(a=(0,Q.jsxs)(Q.Fragment,{children:[i,(0,Q.jsx)(Y,{onClick:r,children:`Run History`})]}),t[1]=r,t[2]=a),a}function Zt({task:e,disabled:t=!1,showRunHistory:n=!1,triggerClassName:r,onStartInNewWorkspace:i,onMarkDone:a,onRunNow:o,onActingChange:s,onOpenRun:c}){let[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),p=F(e)&&!e.triggerType,m=e.status!==`Done`&&!e.triggerType,h=ge(e),g=t||l;async function _(e){u(!0),s?.(!0);try{await e()}finally{u(!1),s?.(!1)}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-1.5`,children:(0,Q.jsxs)(jt,{children:[(0,Q.jsx)(Mt,{asChild:!0,children:(0,Q.jsxs)(U,{variant:`outline`,size:`icon-md`,className:V(`shrink-0`,`sm:data-[state=open]:opacity-100 sm:data-[state=open]:pointer-events-auto`,e.working&&`text-primary`,r),disabled:g,children:[(0,Q.jsx)(vt,{className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,Q.jsxs)(Ot,{align:`end`,children:[h&&(0,Q.jsx)(Y,{onClick:()=>void _(()=>o(e)),children:`Run Now`}),p&&(0,Q.jsx)(Y,{onClick:()=>void _(()=>i(e)),children:`Start in a new workspace`}),m&&(0,Q.jsx)(Y,{onClick:()=>void _(()=>a(e)),children:`Mark as Done`}),(0,Q.jsx)(Xt,{show:n,onSelect:()=>f(!0)})]})]})}),(0,Q.jsx)(Yt,{show:n,open:d,onOpenChange:f,task:e,onOpenRun:c})]})}function Qt(e){return!!(e.tags&&e.tags.length>0)}var $t=`transition-opacity sm:opacity-0 sm:pointer-events-none sm:can-hover:group-hover/task-row:opacity-100 sm:can-hover:group-hover/task-row:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto`;function en(e,t=!1,n=!1){return e.status!==`Ready`||e.modified||!t&&!n&&Qt(e)||x(e)}function tn(e){let t=(0,Z.c)(16),{task:n,className:r,compact:i,hideTags:a}=e,o=i!==void 0&&i,s=a!==void 0&&a,c;t[0]===n.status?c=t[1]:(c=n.status!==`Ready`&&(0,Q.jsx)(Ht,{status:n.status}),t[0]=n.status,t[1]=c);let l;t[2]===n.modified?l=t[3]:(l=n.modified&&(0,Q.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),t[2]=n.modified,t[3]=l);let u;t[4]===n?u=t[5]:(u=x(n)&&(0,Q.jsx)(Bt,{}),t[4]=n,t[5]=u);let d;t[6]!==o||t[7]!==s||t[8]!==n.tags?(d=!o&&!s&&n.tags?.map(function(e){return(0,Q.jsx)(zt,{tag:e},e.id)}),t[6]=o,t[7]=s,t[8]=n.tags,t[9]=d):d=t[9];let f;return t[10]!==r||t[11]!==c||t[12]!==l||t[13]!==u||t[14]!==d?(f=(0,Q.jsxs)(`div`,{className:r,children:[c,l,u,d]}),t[10]=r,t[11]=c,t[12]=l,t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function nn(e){let t=(0,Z.c)(16),{icon:n,label:r,onClick:i,className:a}=e,o;t[0]===a?o=t[1]:(o=V(`shrink-0`,a),t[0]=a,t[1]=o);let s;t[2]===n?s=t[3]:(s=(0,Q.jsx)(n,{className:`h-4 w-4`}),t[2]=n,t[3]=s);let c;t[4]===r?c=t[5]:(c=(0,Q.jsx)(`span`,{className:`sr-only`,children:r}),t[4]=r,t[5]=c);let l;t[6]!==i||t[7]!==o||t[8]!==s||t[9]!==c?(l=(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsxs)(U,{variant:`outline`,size:`icon-md`,className:o,onClick:i,children:[s,c]})}),t[6]=i,t[7]=o,t[8]=s,t[9]=c,t[10]=l):l=t[10];let u;t[11]===r?u=t[12]:(u=(0,Q.jsx)(ke,{children:r}),t[11]=r,t[12]=u);let d;return t[13]!==l||t[14]!==u?(d=(0,Q.jsxs)(je,{children:[l,u]}),t[13]=l,t[14]=u,t[15]=d):d=t[15],d}function rn(e){let t=(0,Z.c)(6),{task:n,className:r,onThreadSelect:i}=e,a=n.threadId;if(!a||!i)return null;let o;t[0]!==i||t[1]!==a?(o=()=>i(a),t[0]=i,t[1]=a,t[2]=o):o=t[2];let s;return t[3]!==r||t[4]!==o?(s=(0,Q.jsx)(nn,{icon:ot,label:`Open chat`,className:r,onClick:o}),t[3]=r,t[4]=o,t[5]=s):s=t[5],s}function an(e){let t=(0,Z.c)(9),{task:n,onOpenEdit:r,onThreadSelect:i,className:a,hideOpenChat:o}=e,s=o!==void 0&&o,c=n.threadId;if(c&&i){if(s)return null;let e;t[0]!==i||t[1]!==c?(e=()=>i(c),t[0]=i,t[1]=c,t[2]=e):e=t[2];let n;return t[3]!==a||t[4]!==e?(n=(0,Q.jsx)(nn,{icon:ot,label:`Open chat`,className:a,onClick:e}),t[3]=a,t[4]=e,t[5]=n):n=t[5],n}let l;return t[6]!==r||t[7]!==n?(l=(0,Q.jsx)(nn,{icon:wt,label:`Edit task`,onClick:()=>r(n)}),t[6]=r,t[7]=n,t[8]=l):l=t[8],l}function on(e){let t=(0,Z.c)(20),{task:n,className:r,showRunHistory:i,showOpenChat:a,isActing:o,onActingChange:s,onThreadSelect:c,onStartInNewWorkspace:l,onMarkDone:u,onRunNow:d,onOpenRun:f}=e,p=(o||n.working)&&!i,m;t[0]===p?m=t[1]:(m=p&&(0,Q.jsx)(G,{size:`sm`}),t[0]=p,t[1]=m);let h;t[2]!==c||t[3]!==a||t[4]!==i||t[5]!==n?(h=a&&!i&&(0,Q.jsx)(rn,{task:n,className:$t,onThreadSelect:c}),t[2]=c,t[3]=a,t[4]=i,t[5]=n,t[6]=h):h=t[6];let g;t[7]!==s||t[8]!==u||t[9]!==f||t[10]!==d||t[11]!==l||t[12]!==i||t[13]!==n?(g=(0,Q.jsx)(Zt,{task:n,showRunHistory:i,onStartInNewWorkspace:l,onMarkDone:u,onRunNow:d,onActingChange:s,onOpenRun:f,triggerClassName:$t}),t[7]=s,t[8]=u,t[9]=f,t[10]=d,t[11]=l,t[12]=i,t[13]=n,t[14]=g):g=t[14];let _;return t[15]!==r||t[16]!==m||t[17]!==h||t[18]!==g?(_=(0,Q.jsxs)(`div`,{className:r,children:[m,h,g]}),t[15]=r,t[16]=m,t[17]=h,t[18]=g,t[19]=_):_=t[19],_}function sn(e){let t=(0,Z.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({viewMode:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i;return t[3]!==n||t[4]!==r?(i=r===`list`?(0,Q.jsx)(ln,{...n}):(0,Q.jsx)(cn,{...n}),t[3]=n,t[4]=r,t[5]=i):i=t[5],i}function cn(e){let t=(0,Z.c)(56),{task:n,now:r,onOpenEdit:i,showRunHistory:o,onThreadSelect:s,onStartInNewWorkspace:c,onMarkDone:l,onRunNow:u,onOpenRun:d,compact:f,hideTags:p}=e,m=f!==void 0&&f,h=p!==void 0&&p,g;t[0]!==r||t[1]!==n?(g=ee(n,r),t[0]=r,t[1]=n,t[2]=g):g=t[2];let _=g,[v,y]=(0,X.useState)(!1),b=!!o&&(v||n.working),x;t[3]!==i||t[4]!==n?(x=()=>i(n),t[3]=i,t[4]=n,t[5]=x):x=t[5];let S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=V(a.label,`truncate leading-normal`),t[6]=S):S=t[6];let C;t[7]===n.title?C=t[8]:(C=(0,Q.jsx)(`span`,{className:S,children:n.title}),t[7]=n.title,t[8]=C);let w;t[9]===b?w=t[10]:(w=b&&(0,Q.jsx)(G,{size:`sm`,className:`shrink-0`}),t[9]=b,t[10]=w);let T;t[11]!==C||t[12]!==w?(T=(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[C,w]}),t[11]=C,t[12]=w,t[13]=T):T=t[13];let E;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(E=V(a.caption,`mt-1 line-clamp-2 break-words text-muted-foreground max-sm:hidden`),t[14]=E):E=t[14];let D;t[15]===n.description?D=t[16]:(D=(0,Q.jsx)(`p`,{className:E,children:n.description}),t[15]=n.description,t[16]=D);let O;t[17]===_?O=t[18]:(O=_&&(0,Q.jsx)(`p`,{className:V(a.caption,`mt-1 text-muted-foreground`),children:_}),t[17]=_,t[18]=O);let k;t[19]!==m||t[20]!==h||t[21]!==n?(k=en(n,m,h)&&(0,Q.jsx)(tn,{task:n,compact:m,hideTags:h,className:`mt-2 flex flex-wrap gap-1`}),t[19]=m,t[20]=h,t[21]=n,t[22]=k):k=t[22];let A;t[23]!==D||t[24]!==O||t[25]!==k||t[26]!==x||t[27]!==T?(A=(0,Q.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:x,children:[T,D,O,k]}),t[23]=D,t[24]=O,t[25]=k,t[26]=x,t[27]=T,t[28]=A):A=t[28];let j;t[29]!==i||t[30]!==n?(j=()=>i(n),t[29]=i,t[30]=n,t[31]=j):j=t[31];let M;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(M=V(a.caption,`line-clamp-4 break-words text-muted-foreground`),t[32]=M):M=t[32];let N;t[33]===n.description?N=t[34]:(N=(0,Q.jsx)(`p`,{className:M,children:n.description}),t[33]=n.description,t[34]=N);let P;t[35]!==j||t[36]!==N?(P=(0,Q.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:j,children:N}),t[35]=j,t[36]=N,t[37]=P):P=t[37];let F;t[38]!==m||t[39]!==h||t[40]!==n?(F=en(n,m,h)&&(0,Q.jsx)(tn,{task:n,compact:m,hideTags:h,className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`}),t[38]=m,t[39]=h,t[40]=n,t[41]=F):F=t[41];let I;t[42]!==v||t[43]!==l||t[44]!==d||t[45]!==u||t[46]!==c||t[47]!==s||t[48]!==o||t[49]!==n?(I=(0,Q.jsx)(on,{task:n,className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start sm:absolute sm:right-4 sm:top-3 sm:z-10`,showRunHistory:o,showOpenChat:!0,isActing:v,onActingChange:y,onThreadSelect:s,onStartInNewWorkspace:c,onMarkDone:l,onRunNow:u,onOpenRun:d}),t[42]=v,t[43]=l,t[44]=d,t[45]=u,t[46]=c,t[47]=s,t[48]=o,t[49]=n,t[50]=I):I=t[50];let L;return t[51]!==A||t[52]!==P||t[53]!==F||t[54]!==I?(L=(0,Q.jsxs)(`div`,{className:`group/task-row relative grid min-w-0 grid-cols-[minmax(0,1fr)_auto] grid-rows-[auto_auto] gap-x-2 gap-y-1 px-4 py-3 hover:bg-accent/40 sm:flex sm:items-start sm:gap-4`,children:[A,P,F,I]}),t[51]=A,t[52]=P,t[53]=F,t[54]=I,t[55]=L):L=t[55],L}function ln(e){let t=(0,Z.c)(42),{task:n,onOpenEdit:r,showRunHistory:i,onThreadSelect:o,onStartInNewWorkspace:s,onMarkDone:c,onRunNow:l,onOpenRun:u,compact:d,hideTags:f}=e,p=d!==void 0&&d,m=f!==void 0&&f,[h,g]=(0,X.useState)(!1),_=!!i&&(h||n.working),v;t[0]!==p||t[1]!==r||t[2]!==o||t[3]!==i||t[4]!==n?(v=!p&&(0,Q.jsx)(an,{task:n,onOpenEdit:r,onThreadSelect:o,hideOpenChat:i}),t[0]=p,t[1]=r,t[2]=o,t[3]=i,t[4]=n,t[5]=v):v=t[5];let y;t[6]!==r||t[7]!==n?(y=()=>r(n),t[6]=r,t[7]=n,t[8]=y):y=t[8];let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=V(a.captionForeground,`truncate leading-normal`),t[9]=b):b=t[9];let S;t[10]===n.title?S=t[11]:(S=(0,Q.jsx)(`span`,{className:b,children:n.title}),t[10]=n.title,t[11]=S);let C;t[12]===_?C=t[13]:(C=_&&(0,Q.jsx)(G,{size:`sm`,className:`shrink-0`}),t[12]=_,t[13]=C);let w;t[14]!==S||t[15]!==C?(w=(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[S,C]}),t[14]=S,t[15]=C,t[16]=w):w=t[16];let T;t[17]!==y||t[18]!==w?(T=(0,Q.jsx)(`button`,{type:`button`,className:`block min-w-0 flex-1 overflow-hidden text-left`,onClick:y,children:w}),t[17]=y,t[18]=w,t[19]=T):T=t[19];let E;t[20]!==p||t[21]!==m||t[22]!==n?(E=(x(n)||!p&&!m&&Qt(n))&&(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[x(n)&&(0,Q.jsx)(Bt,{}),!p&&!m&&n.tags?.map(function(e){return(0,Q.jsx)(zt,{tag:e},e.id)})]}),t[20]=p,t[21]=m,t[22]=n,t[23]=E):E=t[23];let D=p&&`absolute right-2 top-1/2 z-10 -translate-y-1/2`,O;t[24]===D?O=t[25]:(O=V(`flex shrink-0 items-center gap-1.5`,D),t[24]=D,t[25]=O);let k;t[26]!==p||t[27]!==h||t[28]!==c||t[29]!==u||t[30]!==l||t[31]!==s||t[32]!==o||t[33]!==i||t[34]!==O||t[35]!==n?(k=(0,Q.jsx)(on,{task:n,className:O,showRunHistory:i,showOpenChat:p,isActing:h,onActingChange:g,onThreadSelect:o,onStartInNewWorkspace:s,onMarkDone:c,onRunNow:l,onOpenRun:u}),t[26]=p,t[27]=h,t[28]=c,t[29]=u,t[30]=l,t[31]=s,t[32]=o,t[33]=i,t[34]=O,t[35]=n,t[36]=k):k=t[36];let A;return t[37]!==E||t[38]!==k||t[39]!==v||t[40]!==T?(A=(0,Q.jsxs)(`div`,{className:`group/task-row relative flex min-w-0 items-center gap-3 px-4 py-2 hover:bg-accent/40`,children:[v,T,E,k]}),t[37]=E,t[38]=k,t[39]=v,t[40]=T,t[41]=A):A=t[41],A}function un(e){let t=(0,Z.c)(53),{task:n,now:r,showRunHistory:i,onOpenEdit:o,onThreadSelect:s,onStartInNewWorkspace:c,onMarkDone:l,onRunNow:u,onOpenRun:d,compact:f,hideTags:p}=e,m=f!==void 0&&f,h=p!==void 0&&p,[g,_]=(0,X.useState)(!1),v;t[0]!==m||t[1]!==h||t[2]!==n?(v=en(n,m,h),t[0]=m,t[1]=h,t[2]=n,t[3]=v):v=t[3];let y=v,b;t[4]!==r||t[5]!==n?(b=ee(n,r),t[4]=r,t[5]=n,t[6]=b):b=t[6];let x=b,S;t[7]!==o||t[8]!==n?(S=function(e){e.target.closest(`button`)||o(n)},t[7]=o,t[8]=n,t[9]=S):S=t[9];let C=S,w;t[10]!==o||t[11]!==n?(w=function(e){(e.key===`Enter`||e.key===` `)&&(e.target.closest(`button`)||(e.preventDefault(),o(n)))},t[10]=o,t[11]=n,t[12]=w):w=t[12];let T=w,E;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(E=V(a.captionForeground,`group/task-row relative w-full cursor-pointer rounded-xl border border-border bg-background p-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none`),t[13]=E):E=t[13];let D=n.status===`Done`?`bg-emerald-500`:`bg-accent`,O;t[14]===D?O=t[15]:(O=V(`size-2 shrink-0 rounded-full`,D),t[14]=D,t[15]=O);let k;t[16]===O?k=t[17]:(k=(0,Q.jsx)(`span`,{className:O}),t[16]=O,t[17]=k);let A;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(A=V(a.captionForeground,`min-w-0 flex-1 truncate`),t[18]=A):A=t[18];let j;t[19]===n.title?j=t[20]:(j=(0,Q.jsx)(`span`,{className:A,children:n.title}),t[19]=n.title,t[20]=j);let M;t[21]!==k||t[22]!==j?(M=(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 pr-20`,children:[k,j]}),t[21]=k,t[22]=j,t[23]=M):M=t[23];let N;t[24]!==g||t[25]!==l||t[26]!==d||t[27]!==u||t[28]!==c||t[29]!==s||t[30]!==i||t[31]!==n?(N=(0,Q.jsx)(on,{task:n,className:`absolute right-2 top-2 z-10 flex items-center gap-0.5`,showRunHistory:i,showOpenChat:!0,isActing:g,onActingChange:_,onThreadSelect:s,onStartInNewWorkspace:c,onMarkDone:l,onRunNow:u,onOpenRun:d}),t[24]=g,t[25]=l,t[26]=d,t[27]=u,t[28]=c,t[29]=s,t[30]=i,t[31]=n,t[32]=N):N=t[32];let P;t[33]===n.description?P=t[34]:(P=n.description?(0,Q.jsx)(`div`,{className:`mt-0.5 min-w-0`,children:(0,Q.jsx)(`span`,{className:V(a.caption,`line-clamp-2`),children:n.description})}):null,t[33]=n.description,t[34]=P);let F;t[35]!==m||t[36]!==y||t[37]!==h||t[38]!==n?(F=y?(0,Q.jsx)(`div`,{className:`mt-1 flex flex-wrap gap-1`,children:(0,Q.jsx)(tn,{task:n,compact:m,hideTags:h,className:`min-w-0`})}):null,t[35]=m,t[36]=y,t[37]=h,t[38]=n,t[39]=F):F=t[39];let I;t[40]===x?I=t[41]:(I=x?(0,Q.jsx)(`div`,{className:`mt-1`,children:(0,Q.jsx)(`span`,{className:V(a.bodyMuted,`text-xs`),children:x})}):null,t[40]=x,t[41]=I);let L;t[42]===g?L=t[43]:(L=g?(0,Q.jsx)(G,{className:`absolute inset-x-0 bottom-0`}):null,t[42]=g,t[43]=L);let R;return t[44]!==C||t[45]!==T||t[46]!==M||t[47]!==N||t[48]!==P||t[49]!==F||t[50]!==I||t[51]!==L?(R=(0,Q.jsxs)(`div`,{role:`button`,tabIndex:0,className:E,onClick:C,onKeyDown:T,children:[M,N,P,F,I,L]}),t[44]=C,t[45]=T,t[46]=M,t[47]=N,t[48]=P,t[49]=F,t[50]=I,t[51]=L,t[52]=R):R=t[52],R}function dn(e){let t=(0,Z.c)(42),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({column:n,hideTags:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let o=i!==void 0&&i,s=n.tag,c=n.tasks.length,l=o?`Automations column`:s?`${s.name} column`:`No tags column`,u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u={width:`17rem`},t[4]=u):u=t[4];let d;t[5]!==o||t[6]!==s?(d=!o&&s?(0,Q.jsx)(`span`,{className:`size-2 shrink-0 rounded-full`,style:{backgroundColor:s.color}}):null,t[5]=o,t[6]=s,t[7]=d):d=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=V(a.body,`truncate`),t[8]=f):f=t[8];let p=o?`Automations`:s?s.name:`No tags`,m;t[9]===p?m=t[10]:(m=(0,Q.jsx)(`span`,{className:f,children:p}),t[9]=p,t[10]=m);let h;t[11]!==d||t[12]!==m?(h=(0,Q.jsxs)(`span`,{className:`flex min-w-0 max-w-full items-center gap-2 px-7`,children:[d,m]}),t[11]=d,t[12]=m,t[13]=h):h=t[13];let g=`${c} ${c===1?`task`:`tasks`}`,_;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=V(a.compact,`absolute right-0 inline-flex h-5 min-w-5 items-center justify-center rounded-full border border-input bg-transparent px-1 text-center tabular-nums`),t[14]=_):_=t[14];let v;t[15]!==c||t[16]!==g?(v=(0,Q.jsx)(`span`,{"aria-label":g,className:_,children:c}),t[15]=c,t[16]=g,t[17]=v):v=t[17];let y;t[18]!==v||t[19]!==h?(y=(0,Q.jsxs)(`div`,{className:`relative flex items-center justify-center px-0.5`,children:[h,v]}),t[18]=v,t[19]=h,t[20]=y):y=t[20];let b=c===0&&`hidden`,x;t[21]===b?x=t[22]:(x=V(`flex flex-col gap-1.5`,b),t[21]=b,t[22]=x);let S;if(t[23]!==n.tasks||t[24]!==o||t[25]!==r){let e;t[27]!==o||t[28]!==r?(e=function(e){return(0,Q.jsx)(un,{task:e,hideTags:o,...r},e.id)},t[27]=o,t[28]=r,t[29]=e):e=t[29],S=n.tasks.map(e),t[23]=n.tasks,t[24]=o,t[25]=r,t[26]=S}else S=t[26];let C;t[30]!==x||t[31]!==S?(C=(0,Q.jsx)(`div`,{className:x,children:S}),t[30]=x,t[31]=S,t[32]=C):C=t[32];let w;t[33]===c?w=t[34]:(w=c===0?(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`p-2 pb-14 text-xs`),children:`No tasks`}):null,t[33]=c,t[34]=w);let T;t[35]!==C||t[36]!==w?(T=(0,Q.jsx)(`div`,{className:`mt-2 min-h-0 flex-1`,children:(0,Q.jsxs)(Me,{className:`h-full rounded-xl bg-muted p-1.5`,children:[C,w]})}),t[35]=C,t[36]=w,t[37]=T):T=t[37];let E;return t[38]!==y||t[39]!==T||t[40]!==l?(E=(0,Q.jsxs)(`section`,{"aria-label":l,className:`flex min-w-0 shrink-0 snap-start flex-col`,style:u,children:[y,T]}),t[38]=y,t[39]=T,t[40]=l,t[41]=E):E=t[41],E}function fn(e){let t=(0,Z.c)(10),n,r;t[0]===e?(n=t[1],r=t[2]):({columns:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;if(t[3]!==n||t[4]!==r){let e;t[6]===r?e=t[7]:(e=function(e){return(0,Q.jsx)(dn,{column:e,...r},e.tag?e.tag.id:`untagged`)},t[6]=r,t[7]=e),i=n.map(e),t[3]=n,t[4]=r,t[5]=i}else i=t[5];let a;return t[8]===i?a=t[9]:(a=(0,Q.jsx)(`div`,{className:`flex flex-1 snap-x snap-mandatory gap-3 overflow-x-auto scroll-smooth pb-14 pl-1 pt-1 motion-reduce:scroll-auto`,children:i}),t[8]=i,t[9]=a),a}function pn(e){let t=(0,Z.c)(32),{automationsOnly:n,onSearchTermChange:r}=e,[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(``),c;t[0]===r?c=t[1]:(c=function(e){s(e),r(e)},t[0]=r,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=function(){s(``),r(``),a(!1)},t[2]=r,t[3]=u);let d=u,f;t[4]!==d||t[5]!==i?(f=()=>{i?d():a(!0)},t[4]=d,t[5]=i,t[6]=f):f=t[6];let p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(at,{className:`h-4 w-4`}),t[7]=p):p=t[7];let m=n?`Search automations`:`Search tasks`,h;t[8]===m?h=t[9]:(h=(0,Q.jsx)(`span`,{className:`sr-only`,children:m}),t[8]=m,t[9]=h);let g;t[10]!==i||t[11]!==f||t[12]!==h?(g=(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsxs)(U,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:f,"aria-expanded":i,children:[p,h]})}),t[10]=i,t[11]=f,t[12]=h,t[13]=g):g=t[13];let _=n?`Search Automations`:`Search tasks`,v;t[14]===_?v=t[15]:(v=(0,Q.jsx)(ke,{children:_}),t[14]=_,t[15]=v);let y;t[16]!==g||t[17]!==v?(y=(0,Q.jsxs)(je,{children:[g,v]}),t[16]=g,t[17]=v,t[18]=y):y=t[18];let b=i?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,x;t[19]===b?x=t[20]:(x=V(`overflow-hidden transition-[width,opacity] duration-200`,b),t[19]=b,t[20]=x);let S;t[21]!==d||t[22]!==l||t[23]!==i||t[24]!==o?(S=i&&(0,Q.jsx)(xt,{type:`search`,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&d()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[21]=d,t[22]=l,t[23]=i,t[24]=o,t[25]=S):S=t[25];let C;t[26]!==x||t[27]!==S?(C=(0,Q.jsx)(`div`,{className:x,children:S}),t[26]=x,t[27]=S,t[28]=C):C=t[28];let w;return t[29]!==y||t[30]!==C?(w=(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[y,C]}),t[29]=y,t[30]=C,t[31]=w):w=t[31],w}var mn={summary:{next:`list`,icon:Tt,actionLabel:`Switch to list view`,tooltip:`List view`},list:{next:`kanban`,icon:yt,actionLabel:`Switch to kanban view`,tooltip:`Kanban view`},kanban:{next:`summary`,icon:Lt,actionLabel:`Switch to summary view`,tooltip:`Summary view`}};function hn(e){let t=(0,Z.c)(16),{automationsOnly:n,viewMode:r,onViewModeChange:i}=e,a=mn[n&&r===`list`?`kanban`:r],o=a.icon,s;t[0]!==i||t[1]!==a.next?(s=function(){i(a.next)},t[0]=i,t[1]=a.next,t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=(0,Q.jsx)(o,{className:`h-4 w-4`}),t[3]=o,t[4]=c);let l;t[5]===a.actionLabel?l=t[6]:(l=(0,Q.jsx)(`span`,{className:`sr-only`,children:a.actionLabel}),t[5]=a.actionLabel,t[6]=l);let u;t[7]!==s||t[8]!==c||t[9]!==l?(u=(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsxs)(U,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:s,children:[c,l]})}),t[7]=s,t[8]=c,t[9]=l,t[10]=u):u=t[10];let d;t[11]===a.tooltip?d=t[12]:(d=(0,Q.jsx)(ke,{children:a.tooltip}),t[11]=a.tooltip,t[12]=d);let f;return t[13]!==u||t[14]!==d?(f=(0,Q.jsxs)(je,{children:[u,d]}),t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function gn(e){let t=(0,Z.c)(19),{automationsOnly:n,compact:r,viewMode:i,projectTags:a,selectedTagIds:o,onToggleSelectedTag:s,onClearSelectedTags:c,onSearchTermChange:l,onViewModeChange:u,isRefreshing:d,onRefresh:f,onManageTags:p}=e,m=r!==void 0&&r,{setActions:h}=Nt(),g=o.size>0,_,v;t[0]!==n||t[1]!==m||t[2]!==g||t[3]!==d||t[4]!==c||t[5]!==p||t[6]!==f||t[7]!==l||t[8]!==s||t[9]!==u||t[10]!==a||t[11]!==o||t[12]!==h||t[13]!==i?(_=()=>{if(m){h(null);return}h((0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(pn,{automationsOnly:n,onSearchTermChange:l}),(0,Q.jsx)(hn,{automationsOnly:n,viewMode:i,onViewModeChange:u}),(0,Q.jsxs)(je,{children:[(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsxs)(U,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>f(),disabled:d,children:[(0,Q.jsx)(mt,{className:V(`h-4 w-4`,d&&`animate-spin`)}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,Q.jsx)(ke,{children:`Refresh`})]}),!n&&(0,Q.jsxs)(jt,{children:[(0,Q.jsxs)(je,{children:[(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsx)(Mt,{asChild:!0,children:(0,Q.jsxs)(U,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,Q.jsxs)(`span`,{className:`relative`,children:[(0,Q.jsx)(Qe,{className:`h-4 w-4`}),g&&(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`absolute -right-1 -top-1 h-1.5 w-1.5 rounded-full bg-primary`})]}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,Q.jsx)(ke,{children:`Tags`})]}),(0,Q.jsxs)(Ot,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[a.length===0?(0,Q.jsx)(Y,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(Y,{disabled:!g,className:V(!g&&`text-muted-foreground`),onSelect:function(e){e.preventDefault(),c()},children:[(0,Q.jsx)(kt,{className:`h-4 w-4`}),`Clear tags`]}),(0,Q.jsx)(Et,{}),a.map(function(e){let t=o.has(e.id);return(0,Q.jsxs)(Y,{className:`[&_svg]:size-6`,onSelect:function(t){t.preventDefault(),s(e.id)},children:[(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:V(`flex h-7 w-7 shrink-0 items-center justify-center rounded-full border shadow-sm`,t?`border-transparent bg-foreground text-background`:`border-border bg-muted`),children:t&&(0,Q.jsx)(ve,{className:`h-6 w-6`})})]},e.id)})]}),(0,Q.jsx)(Et,{}),(0,Q.jsxs)(Y,{onClick:p,children:[(0,Q.jsx)(gt,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]}))},v=[h,n,m,i,a,o,g,s,c,d,f,p,l,u],t[0]=n,t[1]=m,t[2]=g,t[3]=d,t[4]=c,t[5]=p,t[6]=f,t[7]=l,t[8]=s,t[9]=u,t[10]=a,t[11]=o,t[12]=h,t[13]=i,t[14]=_,t[15]=v):(_=t[14],v=t[15]),(0,X.useEffect)(_,v);let y,b;return t[16]===h?(y=t[17],b=t[18]):(y=()=>function(){h(null)},b=[h],t[16]=h,t[17]=y,t[18]=b),(0,X.useEffect)(y,b),null}function _n(e,t,n){if(e===`edit`&&t){let e=R(t);return{description:t.description,tags:t.tags??[],triggerForm:e,triggerCollapsed:!pe(e)}}return{description:``,tags:[],triggerForm:n?de():ce(),triggerCollapsed:!n}}function vn(e){if(e.mode===`edit`)return e.task?z({task:e.task,description:e.form.description,tagNames:e.form.tags.map(function(e){return e.name}),triggerForm:e.form.triggerForm,thread:e.thread}).kind!==`unchanged`:!1;let t=le(e.form.triggerForm,de());return!!(e.form.description.trim()||e.form.tags.length||!e.form.triggerCollapsed&&!t)}function yn(e,t){return e===`edit`?t?`Edit Automation`:`Edit Task`:t?`Add Automation`:`New Task`}var bn=[{value:`0`,label:`Sunday`},{value:`1`,label:`Monday`},{value:`2`,label:`Tuesday`},{value:`3`,label:`Wednesday`},{value:`4`,label:`Thursday`},{value:`5`,label:`Friday`},{value:`6`,label:`Saturday`}],xn=Array.from({length:60},function(e,t){return{value:String(t),label:String(t).padStart(2,`0`)}}),Sn=`Add automation`;function $(e,t){return{...e,...t}}function Cn(e){let t=(0,Z.c)(7),{value:n,onChange:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(W,{htmlFor:`schedule-once-at`,children:`Run at`}),t[0]=i):i=t[0];let a;t[1]!==r||t[2]!==n?(a=e=>r($(n,{scheduledAtLocal:e.target.value})),t[1]=r,t[2]=n,t[3]=a):a=t[3];let o;return t[4]!==a||t[5]!==n.scheduledAtLocal?(o=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[i,(0,Q.jsx)(xt,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:a})]}),t[4]=a,t[5]=n.scheduledAtLocal,t[6]=o):o=t[6],o}function wn(e){let t=e.trim();if(t===``)return NaN;let n=Number(t);return Number.isNaN(n)?NaN:n}function Tn(e){return Math.min(o,Math.max(1,e))}function En(e){let t=(0,Z.c)(9),{value:n,onChange:r}=e,i;t[0]!==r||t[1]!==n?(i=n.preset===`weekly`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(W,{children:`Day`}),(0,Q.jsxs)(Ye,{value:String(n.dayOfWeek),onValueChange:e=>r($(n,{dayOfWeek:Number(e)})),children:[(0,Q.jsx)(K,{children:(0,Q.jsx)(q,{})}),(0,Q.jsx)(Je,{children:bn.map(function(e){return(0,Q.jsx)(J,{value:e.value,children:e.label},e.value)})})]})]}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]!==r||t[4]!==n?(a=n.preset===`interval`?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(W,{htmlFor:`schedule-interval-minutes`,children:`Minutes`}),(0,Q.jsx)(xt,{id:`schedule-interval-minutes`,type:`number`,min:1,max:o,step:1,placeholder:`5`,value:Number.isNaN(n.presetIntervalMinutes)?``:String(n.presetIntervalMinutes),onChange:e=>r($(n,{presetIntervalMinutes:wn(e.target.value)})),onBlur:()=>{let e=n.presetIntervalMinutes;!Number.isNaN(e)&&e!==Tn(e)&&r($(n,{presetIntervalMinutes:Tn(e)}))}})]}):n.preset===`hourly`?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(W,{children:`Minute`}),(0,Q.jsxs)(Ye,{value:String(n.presetMinute),onValueChange:e=>r($(n,{presetMinute:Number(e)})),children:[(0,Q.jsx)(K,{children:(0,Q.jsx)(q,{})}),(0,Q.jsx)(Je,{children:xn.map(function(e){return(0,Q.jsx)(J,{value:e.value,children:e.label},e.value)})})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(W,{htmlFor:`schedule-time`,children:`Time`}),(0,Q.jsx)(xt,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r($(n,{presetTime:e.target.value}))})]}),t[3]=r,t[4]=n,t[5]=a):a=t[5];let s;return t[6]!==i||t[7]!==a?(s=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[i,a]}),t[6]=i,t[7]=a,t[8]=s):s=t[8],s}var Dn=`once`,On=`event`;function kn(e){let t=(0,Z.c)(16),{value:n,onChange:r,error:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(W,{children:`Trigger`}),t[0]=a):a=t[0];let o=n.kind===`event`?On:n.scheduleMode===`once`?Dn:n.preset,s;t[1]!==r||t[2]!==n?(s=e=>{r(e===On?$(n,{kind:`event`}):e===Dn?$(n,{kind:`schedule`,scheduleMode:`once`}):$(n,{kind:`schedule`,scheduleMode:`repeating`,preset:e}))},t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(K,{children:(0,Q.jsx)(q,{})}),t[4]=c):c=t[4];let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsxs)(Je,{children:[(0,Q.jsx)(J,{value:Dn,children:`Once`}),(0,Q.jsx)(J,{value:`interval`,children:`Interval`}),(0,Q.jsx)(J,{value:`hourly`,children:`Hourly`}),(0,Q.jsx)(J,{value:`daily`,children:`Daily`}),(0,Q.jsx)(J,{value:`weekdays`,children:`Weekdays`}),(0,Q.jsx)(J,{value:`weekly`,children:`Weekly`}),(0,Q.jsx)(J,{value:On,children:`Event`})]}),t[5]=l):l=t[5];let u;t[6]!==o||t[7]!==s?(u=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[a,(0,Q.jsxs)(Ye,{value:o,onValueChange:s,children:[c,l]})]}),t[6]=o,t[7]=s,t[8]=u):u=t[8];let d;t[9]!==i||t[10]!==r||t[11]!==n?(d=n.kind===`event`?(0,Q.jsx)(Nn,{value:n,onChange:r,error:i}):n.scheduleMode===`once`?(0,Q.jsx)(Cn,{value:n,onChange:r}):(0,Q.jsx)(En,{value:n,onChange:r}),t[9]=i,t[10]=r,t[11]=n,t[12]=d):d=t[12];let f;return t[13]!==u||t[14]!==d?(f=(0,Q.jsx)(`div`,{className:`space-y-3`,children:(0,Q.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[u,d]})}),t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function An(e){return!!(e&&L(e))}var jn=`custom`;function Mn(e){let t=s.find(t=>t.key===e.trim());return t?t.key:jn}function Nn(e){let t=(0,Z.c)(30),{value:n,onChange:r,error:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(W,{children:`Event type`}),t[0]=o):o=t[0];let c;t[1]===n.eventKey?c=t[2]:(c=Mn(n.eventKey),t[1]=n.eventKey,t[2]=c);let l;t[3]!==r||t[4]!==n?(l=e=>r($(n,{eventKey:e===jn?``:e})),t[3]=r,t[4]=n,t[5]=l):l=t[5];let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(K,{children:(0,Q.jsx)(q,{})}),t[6]=u):u=t[6];let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsxs)(Je,{children:[s.map(function(e){return(0,Q.jsx)(J,{value:e.key,children:e.label},e.key)}),(0,Q.jsx)(J,{value:jn,children:`Custom event key`})]}),t[7]=d):d=t[7];let f;t[8]!==c||t[9]!==l?(f=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[o,(0,Q.jsxs)(Ye,{value:c,onValueChange:l,children:[u,d]})]}),t[8]=c,t[9]=l,t[10]=f):f=t[10];let p;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(W,{htmlFor:`event-key`,children:`Event key`}),t[11]=p):p=t[11];let m=n.eventKey,h;t[12]===i?h=t[13]:(h=An(i),t[12]=i,t[13]=h);let g;t[14]!==r||t[15]!==n?(g=e=>r($(n,{eventKey:e.target.value})),t[14]=r,t[15]=n,t[16]=g):g=t[16];let _;t[17]!==g||t[18]!==h||t[19]!==n.eventKey?(_=(0,Q.jsx)(xt,{id:`event-key`,value:m,placeholder:`door.opened`,"aria-invalid":h,onChange:g}),t[17]=g,t[18]=h,t[19]=n.eventKey,t[20]=_):_=t[20];let v;t[21]!==i||t[22]!==n.eventKey?(v=An(i)?(0,Q.jsx)(`p`,{className:V(a.caption,`text-destructive`),children:i}):(0,Q.jsxs)(`p`,{className:V(a.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,Q.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]}),t[21]=i,t[22]=n.eventKey,t[23]=v):v=t[23];let y;t[24]!==_||t[25]!==v?(y=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[p,_,v]}),t[24]=_,t[25]=v,t[26]=y):y=t[26];let b;return t[27]!==y||t[28]!==f?(b=(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[f,y]}),t[27]=y,t[28]=f,t[29]=b):b=t[29],b}function Pn(e){let t=(0,Z.c)(3),{error:n,kind:r}=e;if(!n||r===`event`)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=V(a.caption,`text-destructive`),t[0]=i):i=t[0];let o;return t[1]===n?o=t[2]:(o=(0,Q.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=o),o}function Fn(e){let t=(0,Z.c)(14),{value:n,onChange:r,error:i}=e,o=i===void 0?null:i,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=(0,Q.jsx)(kn,{value:n,onChange:r,error:o}),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;t[4]!==o||t[5]!==n.kind?(c=(0,Q.jsx)(Pn,{error:o,kind:n.kind}),t[4]=o,t[5]=n.kind,t[6]=c):c=t[6];let l;t[7]!==r||t[8]!==n?(l=n.kind!==`manual`&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.kind!==`event`&&(0,Q.jsxs)(`p`,{className:V(a.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]}),(0,Q.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[(0,Q.jsx)(et,{id:`trigger-paused`,value:!n.enabled,onChange:function(e){r($(n,{enabled:!e}))},ariaLabel:n.enabled?`Pause automation`:`Resume automation`}),(0,Q.jsx)(W,{htmlFor:`trigger-paused`,className:V(a.labelNormal,`cursor-pointer`),children:`Paused`})]})]}),t[7]=r,t[8]=n,t[9]=l):l=t[9];let u;return t[10]!==s||t[11]!==c||t[12]!==l?(u=(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[s,c,l]}),t[10]=s,t[11]=c,t[12]=l,t[13]=u):u=t[13],u}function In(e){let t=(0,Z.c)(3),n;return t[0]!==e.controller.addTrigger||t[1]!==e.controller.isSaving?(n=(0,Q.jsx)(U,{type:`button`,variant:`outline`,disabled:e.controller.isSaving,onClick:e.controller.addTrigger,children:Sn}),t[0]=e.controller.addTrigger,t[1]=e.controller.isSaving,t[2]=n):n=t[2],n}function Ln(e){let t=(0,Z.c)(5),n;t[0]===e.controller?n=t[1]:(n=function(){e.controller.deleteTask()},t[0]=e.controller,t[1]=n);let r=n,i;return t[2]!==r||t[3]!==e.controller.isSaving?(i=(0,Q.jsx)(U,{variant:`destructive`,onClick:r,disabled:e.controller.isSaving,children:`Delete`}),t[2]=r,t[3]=e.controller.isSaving,t[4]=i):i=t[4],i}function Rn(e){let t=(0,Z.c)(9),n;t[0]===e.controller?n=t[1]:(n=function(){e.controller.runNow()},t[0]=e.controller,t[1]=n);let r=n,i;t[2]!==e.controller.form||t[3]!==e.controller.isSaving?(i=e.controller.isSaving||!e.controller.form.description.trim(),t[2]=e.controller.form,t[3]=e.controller.isSaving,t[4]=i):i=t[4];let a;return t[5]!==r||t[6]!==e.controller.isSaving||t[7]!==i?(a=(0,Q.jsx)(U,{type:`button`,variant:`outline`,onClick:r,disabled:i,"aria-busy":e.controller.isSaving,children:`Run Now`}),t[5]=r,t[6]=e.controller.isSaving,t[7]=i,t[8]=a):a=t[8],a}function zn(e){let t=(0,Z.c)(11),n=e.mode===`edit`,r;t[0]===e.controller?r=t[1]:(r=function(){e.controller.save()},t[0]=e.controller,t[1]=r);let i=r,a;t[2]!==e.controller.form||t[3]!==e.controller.isSaving?(a=e.controller.isSaving||!e.controller.form.description.trim(),t[2]=e.controller.form,t[3]=e.controller.isSaving,t[4]=a):a=t[4];let o=n?`w-auto`:void 0,s=n?`Save`:`Add`,c;return t[5]!==i||t[6]!==e.controller.isSaving||t[7]!==a||t[8]!==o||t[9]!==s?(c=(0,Q.jsx)(U,{onClick:i,disabled:a,"aria-busy":e.controller.isSaving,className:o,children:s}),t[5]=i,t[6]=e.controller.isSaving,t[7]=a,t[8]=o,t[9]=s,t[10]=c):c=t[10],c}function Bn(e){let t=(0,Z.c)(22),n=e.mode===`edit`,r=e.automationsOnly&&e.controller.form.triggerCollapsed,i=n?`flex-row shrink-0 justify-between gap-2 sm:justify-between sm:gap-0`:`shrink-0`,a=n?`flex items-center gap-2`:void 0,o;t[0]!==n||t[1]!==e.controller?(o=n?(0,Q.jsx)(Ln,{controller:e.controller}):null,t[0]=n,t[1]=e.controller,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==e.controller?(s=r?(0,Q.jsx)(In,{controller:e.controller}):null,t[3]=r,t[4]=e.controller,t[5]=s):s=t[5];let c;t[6]!==n||t[7]!==e.automationsOnly||t[8]!==e.controller?(c=n&&e.automationsOnly?(0,Q.jsx)(Rn,{controller:e.controller}):null,t[6]=n,t[7]=e.automationsOnly,t[8]=e.controller,t[9]=c):c=t[9];let l;t[10]!==e.controller||t[11]!==e.mode?(l=(0,Q.jsx)(zn,{mode:e.mode,controller:e.controller}),t[10]=e.controller,t[11]=e.mode,t[12]=l):l=t[12];let u;t[13]!==a||t[14]!==s||t[15]!==c||t[16]!==l?(u=(0,Q.jsxs)(`div`,{className:a,children:[s,c,l]}),t[13]=a,t[14]=s,t[15]=c,t[16]=l,t[17]=u):u=t[17];let d;return t[18]!==i||t[19]!==o||t[20]!==u?(d=(0,Q.jsxs)(ye,{className:i,children:[o,u]}),t[18]=i,t[19]=o,t[20]=u,t[21]=d):d=t[21],d}function Vn({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0,className:o}){let[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(0),p=(0,X.useRef)(null),h=(0,X.useMemo)(()=>new Set(e.map(e=>b(e.name))),[e]),g=e.length>=10,v=(0,X.useMemo)(()=>{let e=s.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=b(e.name);h.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of A){let t=b(e);!h.has(t)&&!r.has(t)&&r.set(t,{name:e,color:B(t)})}let a=(n?[...r.values()].filter(e=>e.name.toLowerCase().includes(n)):[...r.values()]).map(e=>({name:e.name,color:e.color,isCreate:!1}));if(e&&i&&!g){let t=M(e),n=b(t),i=h.has(n)||r.has(n),o=!w(t);!i&&o&&a.push({name:t,color:B(n),isCreate:!0})}return a},[s,t,h,g]);(0,X.useEffect)(()=>{f(0)},[s]),(0,X.useEffect)(function(){if(!l||g)return;let e=requestAnimationFrame(function(){p.current?.focus()});return function(){cancelAnimationFrame(e)}},[l,g]);function y(r){if(g)return;let i=M(r),a=b(i);if(h.has(a))return;let o=t.find(e=>b(e.name)===a)??{id:`new:${a}`,name:i,color:B(a)};n([...e,o]),_(o.name),c(``)}function x(){let e=m();if(!e)return null;let n=b(e);if(h.has(n))return null;let r=t.find(e=>b(e.name)===n);return r?r.name:A.find(e=>b(e)===n)||(i&&!w(M(e))?M(e):null)}function S(t){n(e.filter(e=>e.id!==t.id))}function C(e){let t=e.currentTarget;t.scrollHeight>t.clientHeight&&e.stopPropagation()}function T(t){if(t.key===`ArrowDown`)t.preventDefault(),l||u(!0),f(e=>(e+1)%Math.max(v.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),f(e=>(e-1+v.length)%Math.max(v.length,1));else if(t.key===`Enter`){t.preventDefault();let e=v[d];e&&y(e.name)}else t.key===`Backspace`&&!s&&e.length>0?S(e[e.length-1]):t.key===`Escape`&&(u(!1),p.current?.blur())}return(0,Q.jsxs)(Ft,{open:l,onOpenChange:function(e){u(e),c(e?x()??``:``)},children:[(0,Q.jsxs)(`div`,{className:V(`flex flex-wrap items-center gap-1.5`,o),children:[e.map(function(e){return(0,Q.jsxs)(jt,{children:[(0,Q.jsx)(Mt,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:`rounded-full outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,Q.jsx)(zt,{tag:e,className:`cursor-pointer transition-colors hover:border-border hover:bg-muted/40`})})}),(0,Q.jsx)(Ot,{align:`start`,sideOffset:6,children:(0,Q.jsx)(Y,{onSelect:()=>S(e),children:`Delete`})})]},e.id)}),(0,Q.jsx)(Ae,{children:(0,Q.jsxs)(je,{children:[(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsx)(Ze,{asChild:!0,children:(0,Q.jsx)(U,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:g,"aria-label":g?`Max 10 tags`:`Add tag`,className:V(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,g&&`opacity-50`),children:(0,Q.jsx)(Ee,{className:`h-3 w-3`})})})}),(0,Q.jsx)(ke,{children:`Add Tag`})]})})]}),(0,Q.jsxs)(pt,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Q.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,Q.jsx)(`input`,{ref:p,type:`text`,value:s,onChange:function(e){c(e.target.value)},onKeyDown:T,placeholder:g?`Max 10 tags`:r,disabled:g,className:V(a.body,`w-full rounded-md border border-input bg-background px-3 py-2 outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`)})}),(0,Q.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},onWheel:C,onTouchMove:C,children:v.length===0?(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`px-3 py-4 text-center`),children:g?`Tag limit reached`:`No tags found`}):v.map(function(e,t){return(0,Q.jsxs)(`button`,{type:`button`,className:V(a.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,d===t&&`bg-accent`),onClick:function(){y(e.name),u(!1)},children:[(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,Q.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,Q.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function Hn(e){let t=(0,Z.c)(34),{controller:n}=e,r;t[0]===n?r=t[1]:(r=function(e){n.setDescription(e.target.value)},t[0]=n,t[1]=r);let i=r,a;t[2]===n?a=t[3]:(a=function(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&n.save()},t[2]=n,t[3]=a);let o=a,s;t[4]===n.isSaving?s=t[5]:(s=function(e){return(0,Q.jsx)(U,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":e.label,onClick:e.onClick,disabled:e.disabled||n.isSaving,children:e.icon})},t[4]=n.isSaving,t[5]=s);let c=s,l;t[6]!==n.form.description||t[7]!==i||t[8]!==o?(l=(0,Q.jsx)(St,{placeholder:`Describe what needs to be done...`,value:n.form.description,onChange:i,rows:12,className:`max-h-[min(16rem,40svh)] resize-none pe-12 pb-10 text-base sm:max-h-none`,autoFocus:!0,onKeyDown:o}),t[6]=n.form.description,t[7]=i,t[8]=o,t[9]=l):l=t[9];let u;t[10]!==n.form.tags||t[11]!==n.setTags||t[12]!==e.hideTags||t[13]!==e.projectTags?(u=!e.hideTags&&(0,Q.jsx)(Vn,{selectedTags:n.form.tags,existingTags:e.projectTags,onChange:n.setTags,allowCreate:!1,className:`absolute bottom-3 start-3 max-w-[calc(100%-4rem)]`}),t[10]=n.form.tags,t[11]=n.setTags,t[12]=e.hideTags,t[13]=e.projectTags,t[14]=u):u=t[14];let d=e.thread.selectedThreadId??void 0,f=e.thread.selectedThreadModel?.provider,p=e.thread.selectedThreadModel?.id,m;t[15]!==n.handleSpeechTranscript||t[16]!==n.handleVoiceSessionStart||t[17]!==c||t[18]!==d||t[19]!==f||t[20]!==p?(m=(0,Q.jsx)(`div`,{className:`absolute bottom-3 end-3`,children:(0,Q.jsx)(tt,{onTranscript:n.handleSpeechTranscript,onVoiceSessionStart:n.handleVoiceSessionStart,threadId:d,provider:f,model:p,children:c})}),t[15]=n.handleSpeechTranscript,t[16]=n.handleVoiceSessionStart,t[17]=c,t[18]=d,t[19]=f,t[20]=p,t[21]=m):m=t[21];let h;t[22]!==l||t[23]!==u||t[24]!==m?(h=(0,Q.jsxs)(`div`,{className:`relative`,children:[l,u,m]}),t[22]=l,t[23]=u,t[24]=m,t[25]=h):h=t[25];let g;t[26]!==n.form.triggerCollapsed||t[27]!==n.form.triggerForm||t[28]!==n.handleTriggerChange||t[29]!==n.triggerError?(g=!n.form.triggerCollapsed&&(0,Q.jsx)(Fn,{value:n.form.triggerForm,onChange:n.handleTriggerChange,error:n.triggerError}),t[26]=n.form.triggerCollapsed,t[27]=n.form.triggerForm,t[28]=n.handleTriggerChange,t[29]=n.triggerError,t[30]=g):g=t[30];let _;return t[31]!==g||t[32]!==h?(_=(0,Q.jsx)(Ne,{type:`auto`,className:`min-h-0 flex-1`,children:(0,Q.jsxs)(`div`,{className:`py-2 pl-1`,children:[h,g]})}),t[31]=g,t[32]=h,t[33]=_):_=t[33],_}function Un(e){let t=(0,Z.c)(7);if(e.mode===`edit`){let n;return t[0]===e.title?n=t[1]:(n=(0,Q.jsx)(Ce,{children:e.title}),t[0]=e.title,t[1]=n),n}let n;t[2]===e.title?n=t[3]:(n=(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsx)(Ce,{className:`w-fit cursor-help`,children:e.title})}),t[2]=e.title,t[3]=n);let r;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(ke,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`}),t[4]=r):r=t[4];let i;return t[5]===n?i=t[6]:(i=(0,Q.jsxs)(je,{children:[n,r]}),t[5]=n,t[6]=i),i}function Wn(e){let t=(0,Z.c)(20),n=e.automationsOnly?`automation`:`task`,r=e.mode===`edit`?`Save your changes?`:`Save your ${n}?`,i;t[0]===r?i=t[1]:(i=(0,Q.jsx)(Le,{children:r}),t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Ie,{children:`You have unsaved changes. Would you like to save them before closing?`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,Q.jsxs)(He,{children:[i,a]}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(Ve,{children:`Keep editing`}),t[5]=s):s=t[5];let c;t[6]===e.controller.discardChanges?c=t[7]:(c=(0,Q.jsx)(ze,{onClick:e.controller.discardChanges,children:`Discard`}),t[6]=e.controller.discardChanges,t[7]=c);let l;t[8]===e.controller.saveBeforeClose?l=t[9]:(l=(0,Q.jsx)(ze,{onClick:e.controller.saveBeforeClose,children:`Save`}),t[8]=e.controller.saveBeforeClose,t[9]=l);let u;t[10]!==c||t[11]!==l?(u=(0,Q.jsxs)(Be,{children:[s,c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12];let d;t[13]!==o||t[14]!==u?(d=(0,Q.jsxs)(Re,{children:[o,u]}),t[13]=o,t[14]=u,t[15]=d):d=t[15];let f;return t[16]!==e.controller.confirmClose||t[17]!==e.controller.setConfirmClose||t[18]!==d?(f=(0,Q.jsx)(Ue,{open:e.controller.confirmClose,onOpenChange:e.controller.setConfirmClose,children:d}),t[16]=e.controller.confirmClose,t[17]=e.controller.setConfirmClose,t[18]=d,t[19]=f):f=t[19],f}var Gn=c(`app.task-list.dialog`);function Kn(e){return e.map(function(e){return e.name})}async function qn(e,t){let n=P({selectedThreadId:e.thread.selectedThreadId,selectedThreadModel:e.thread.selectedThreadModel,selectedThread:e.thread.selectedThread});if(e.mode===`edit`){if(!e.task)return{kind:`unchanged`};let r=z({task:e.task,description:t.description,tagNames:Kn(t.tags),triggerForm:t.triggerForm,thread:n});if(r.kind===`unchanged`)return r;let i=await T(e.projectId,e.task.id,r.payload);return{kind:`updated`,task:i,tagsChanged:r.tagsChanged,completedChanged:e.task.status===`Done`!=(i.status===`Done`)}}let r=ue({description:t.description,tagNames:Kn(t.tags),triggerCollapsed:t.triggerCollapsed,triggerForm:t.triggerForm,thread:n});return{kind:`created`,task:await j(e.projectId,r.description,r.context),generationContext:r.context}}function Jn(e,t){if(t.kind===`updated`){e.onTaskSaved?.(t.task,{tagsChanged:t.tagsChanged,completedChanged:t.completedChanged});return}t.kind===`created`&&(e.onTaskCreated?.(t.task),ie(e.projectId,t.task.id,{...t.generationContext,expectedTitle:t.task.title}).then(function(t){e.onTaskUpdated?.(t)}).catch(function(e){Gn.error(`Failed to generate task title:`,e)}))}function Yn(e){let t=e.task??null,[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)(ce),[c,l]=(0,X.useState)(!0),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(!1),g=(0,X.useRef)(``),_=(0,X.useRef)(it()),v={description:n,tags:i,triggerForm:o,triggerCollapsed:c};(0,X.useEffect)(function(){g.current=n},[n]),(0,X.useEffect)(function(){if(!e.open)return;let n=_n(e.mode,t,e.automationsOnly);r(n.description),a(n.tags),s(n.triggerForm),l(n.triggerCollapsed),d(null),p(!1),_.current=it()},[e.automationsOnly,e.mode,e.open,t]);function y(){return P({selectedThreadId:e.thread.selectedThreadId,selectedThreadModel:e.thread.selectedThreadModel,selectedThread:e.thread.selectedThread})}let b=(0,X.useCallback)(function(){_.current=it()},[]),x=(0,X.useCallback)(function(e,t){if(t?.replace){let t=_.current;r(n=>rt(n,t,e));return}let n=dt(_.current,g.current,e);r(t=>$e(t,e,n))},[]);function C(e){s(e),d(null)}function w(){l(!1),s(de())}function T(n){if(n){e.onOpenChange(!0);return}if(vn({mode:e.mode,task:t,form:v,thread:y()})){p(!0);return}d(null),e.onOpenChange(!1)}function E(){p(!1),e.onOpenChange(!1)}function D(){if(!n.trim())return!1;let t=e.getTriggerValidationError(c,o);return d(t),t===null}async function O(n=!1){if(n&&(!e.onRunNow||e.mode!==`edit`||!t)||!D())return!1;h(!0);try{let r=await qn(e,v);if(Jn(e,r),n&&e.onRunNow){let n=r.kind===`updated`?r.task:t;if(!n)return!1;await e.onRunNow(n)}return e.onOpenChange(!1),!0}catch(t){let r=n?`Failed to start automation`:e.mode===`edit`?`Failed to save task`:`Failed to add task`;return d(I(t,r)),Gn.error(`${r}:`,t),!1}finally{h(!1)}}async function k(e){e.preventDefault(),await O()&&p(!1)}async function A(){if(t&&e.mode===`edit`){h(!0);try{await S(e.projectId,t.id),e.onTaskDeleted?.(t.id),e.onOpenChange(!1)}catch(e){Gn.error(`Failed to delete task:`,e)}finally{h(!1)}}}return{form:v,triggerError:u,confirmClose:f,isSaving:m,setDescription:r,setTags:a,setTriggerForm:s,setConfirmClose:p,handleVoiceSessionStart:b,handleSpeechTranscript:x,handleTriggerChange:C,addTrigger:w,handleOpenChange:T,discardChanges:E,saveBeforeClose:k,save:O,runNow:()=>O(!0),deleteTask:A}}function Xn(e){let t=(0,Z.c)(28),n=Yn(e),r=e.task??null,i=e.mode===`edit`,a;t[0]!==e.automationsOnly||t[1]!==e.mode?(a=yn(e.mode,e.automationsOnly),t[0]=e.automationsOnly,t[1]=e.mode,t[2]=a):a=t[2];let o=a,s=e.open&&(!i||r!==null),c;t[3]!==e.mode||t[4]!==o?(c=(0,Q.jsx)(xe,{className:`shrink-0`,children:(0,Q.jsx)(Un,{mode:e.mode,title:o})}),t[3]=e.mode,t[4]=o,t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==e.automationsOnly||t[8]!==e.projectTags||t[9]!==e.thread?(l=(0,Q.jsx)(Hn,{controller:n,projectTags:e.projectTags,thread:e.thread,hideTags:e.automationsOnly}),t[6]=n,t[7]=e.automationsOnly,t[8]=e.projectTags,t[9]=e.thread,t[10]=l):l=t[10];let u;t[11]!==n||t[12]!==e.automationsOnly||t[13]!==e.mode?(u=(0,Q.jsx)(Bn,{mode:e.mode,automationsOnly:e.automationsOnly,controller:n}),t[11]=n,t[12]=e.automationsOnly,t[13]=e.mode,t[14]=u):u=t[14];let d;t[15]!==c||t[16]!==l||t[17]!==u?(d=(0,Q.jsxs)(Se,{maximize:!0,className:`max-w-2xl flex flex-col overflow-hidden max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 md:max-h-[calc(100svh-2rem)]`,children:[c,l,u]}),t[15]=c,t[16]=l,t[17]=u,t[18]=d):d=t[18];let f;t[19]!==n||t[20]!==e.automationsOnly||t[21]!==e.mode?(f=(0,Q.jsx)(Wn,{mode:e.mode,automationsOnly:e.automationsOnly,controller:n}),t[19]=n,t[20]=e.automationsOnly,t[21]=e.mode,t[22]=f):f=t[22];let p;return t[23]!==n.handleOpenChange||t[24]!==s||t[25]!==d||t[26]!==f?(p=(0,Q.jsxs)(we,{open:s,onOpenChange:n.handleOpenChange,children:[d,f]}),t[23]=n.handleOpenChange,t[24]=s,t[25]=d,t[26]=f,t[27]=p):p=t[27],p}function Zn({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(null);function b(e){s(e.id),l(e.name),_(null)}function x(){s(null),l(``),_(null)}async function S(){let e=u.trim();if(e){h(!0),_(null);try{let t=await he(n,e);i([...r,t]),d(``)}catch(e){_(e instanceof Error?e.message:`Failed to create tag`)}finally{h(!1)}}}async function w(e){let t=c.trim();if(t){p(!0),_(null);try{let a=await O(n,e,t);i(r.map(e=>e.id===a.id?{...e,name:a.name,color:a.color}:e)),x()}catch(e){_(e instanceof Error?e.message:`Failed to rename tag`)}finally{p(!1)}}}async function T(e){p(!0),_(null);try{await C(n,e),i(r.filter(t=>t.id!==e)),y(null),o===e&&x()}catch(e){_(e instanceof Error?e.message:`Failed to delete tag`)}finally{p(!1)}}return(0,Q.jsx)(we,{open:e,onOpenChange:t,children:(0,Q.jsxs)(Se,{className:`flex h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,Q.jsx)(xe,{children:(0,Q.jsx)(Ce,{children:`Manage Tags`})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,Q.jsx)(xt,{value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&S(),e.key===`Escape`&&d(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:m}),(0,Q.jsx)(U,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void S(),disabled:m||!u.trim(),children:m?(0,Q.jsx)(H,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,Q.jsx)(Ne,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=o===e.id,n=v===e.id;return(0,Q.jsx)(`div`,{className:V(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!f&&`cursor-pointer`),onClick:()=>{!f&&!t&&!n&&b(e)},children:t?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(xt,{value:c,onChange:e=>l(e.target.value),onKeyDown:t=>{t.key===`Enter`&&w(e.id),t.key===`Escape`&&x()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:f}),(0,Q.jsx)(U,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void w(e.id),disabled:f||!c.trim(),children:f?(0,Q.jsx)(H,{className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(ve,{className:`h-4 w-4`})}),(0,Q.jsx)(U,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:x,disabled:f,children:(0,Q.jsx)(De,{className:`h-4 w-4`})})]}):n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:V(a.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,Q.jsx)(U,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void T(e.id),disabled:f,children:f?(0,Q.jsx)(H,{className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(ve,{className:`h-4 w-4`})}),(0,Q.jsx)(U,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>y(null),disabled:f,children:(0,Q.jsx)(De,{className:`h-4 w-4`})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,Q.jsx)(`span`,{className:V(a.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,Q.jsxs)(`span`,{className:V(a.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,Q.jsx)(U,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive opacity-0 pointer-events-none transition-opacity can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto can-hover:hover:text-destructive`,onClick:t=>{t.stopPropagation(),e.taskCount===0?T(e.id):y(e.id)},disabled:f,"aria-label":`Delete ${e.name}`,children:(0,Q.jsx)(Pt,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),g&&(0,Q.jsx)(`p`,{className:V(a.caption,`text-destructive`),children:g})]})})}var Qn=c(`app.task-list.sync`);function $n(e,t){return e===void 0?{next:t,shouldRefetch:!1}:t===0?{next:0,shouldRefetch:!1}:e===t?null:{next:t,shouldRefetch:t>e}}function er(e,t){let n=At(function(n){n===e&&t()}),r=Ct(function(e){e===`tasks`&&t()});return function(){n(),r()}}function tr(){return(0,X.useSyncExternalStore)(ht,Xe,nr)}function nr(){return!1}function rr(e,t){let n=(0,Z.c)(4),r=(0,X.useRef)(e??0),i,a;n[0]!==t||n[1]!==e?(i=()=>{e!=null&&e!==r.current&&(r.current=e,t())},a=[e,t],n[0]=t,n[1]=e,n[2]=i,n[3]=a):(i=n[2],a=n[3]),(0,X.useEffect)(i,a)}function ir(e,t,n,r){let i=(0,Z.c)(9),a;i[0]!==e||i[1]!==t?(a={[e]:t},i[0]=e,i[1]=t,i[2]=a):a=i[2];let o=(0,X.useRef)(a),s,c;i[3]!==e||i[4]!==n||i[5]!==r||i[6]!==t?(s=()=>{let i=$n(o.current[e],t);i&&(o.current[e]=i.next,i.shouldRefetch&&!r&&n())},c=[t,e,n,r],i[3]=e,i[4]=n,i[5]=r,i[6]=t,i[7]=s,i[8]=c):(s=i[7],c=i[8]),(0,X.useEffect)(s,c)}function ar(e,t){let n=(0,Z.c)(8),r=tr(),i=nt(),a,o;n[0]!==i||n[1]!==e||n[2]!==t?(a=function(){if(i)return er(e,function(){t()})},o=[i,e,t],n[0]=i,n[1]=e,n[2]=t,n[3]=a,n[4]=o):(a=n[3],o=n[4]),(0,X.useEffect)(a,o);let s;return n[5]!==r||n[6]!==i?(s={preferControlChannel:i,controlChannelConnected:r},n[5]=r,n[6]=i,n[7]=s):s=n[7],s}function or(e,t){let n=setInterval(async()=>{try{t(await D(e))}catch(e){Qn.error(`Failed to poll project tasks:`,e)}},2e3);return function(){clearInterval(n)}}function sr(e,t,n,r,i){let a=(0,Z.c)(7),o,s;a[0]!==r||a[1]!==t||a[2]!==n||a[3]!==e||a[4]!==i?(o=()=>{if(t&&!(n&&r))return or(e,i)},s=[r,t,n,e,i],a[0]=r,a[1]=t,a[2]=n,a[3]=e,a[4]=i,a[5]=o,a[6]=s):(o=a[5],s=a[6]),(0,X.useEffect)(o,s)}function cr({projectId:e,initialTasks:t,refreshTrigger:n,project:r,onRefreshTags:i}){let a=u(),[o,s]=(0,X.useState)(t),[c,d]=(0,X.useState)(!1),f=r?.tasksModifiedCount??0,m=(0,X.useCallback)(async function(){try{let t=await D(e);s(t),i()}catch(e){Qn.error(`Failed to refresh project tasks:`,e)}},[e,i]),h=(0,X.useCallback)(async function(){d(!0);try{await g(e),await m(),v();let t=await p();a({type:l.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){Qn.error(`Failed to refresh project tasks:`,e)}finally{d(!1)}},[e,a,m]);(0,X.useEffect)(()=>{We(N(e,0),o)},[e,o]),rr(n,m);let{preferControlChannel:_,controlChannelConnected:y}=ar(e,m);return ir(e,f,m,_&&y),sr(e,o.some(e=>e.working),_,y,s),(0,X.useEffect)(()=>{s(t)},[t]),{tasks:o,setTasks:s,isRefreshing:c,handleRefreshTasks:h}}var lr=c(`app.task-list.ui`);function ur(e,t){let n=(0,Z.c)(25),r=t===void 0?`tasks`:t,i;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],n[0]=i):i=n[0];let[a,o]=(0,X.useState)(i),s;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(s=new Set,n[1]=s):s=n[1];let[c,l]=(0,X.useState)(s),[u,d]=(0,X.useState)(``),[p,m]=(0,X.useState)(!1),g;n[2]===r?g=n[3]:(g=function(){return f(r)},n[2]=r,n[3]=g);let[_,v]=(0,X.useState)(g),b,x;n[4]===r?(b=n[5],x=n[6]):(b=function(){v(f(r))},x=[r],n[4]=r,n[5]=b,n[6]=x),(0,X.useEffect)(b,x);let S,C;n[7]===e?(S=n[8],C=n[9]):(S=()=>{y(e).then(o).catch(fr)},C=[e],n[7]=e,n[8]=S,n[9]=C),(0,X.useEffect)(S,C);let w;n[10]===e?w=n[11]:(w=function(){y(e).then(o).catch(dr)},n[10]=e,n[11]=w);let T=w,E;n[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=function(e){l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},n[12]=E):E=n[12];let D=E,O;n[13]===Symbol.for(`react.memo_cache_sentinel`)?(O=function(){l(function(e){return e.size===0?e:new Set})},n[13]=O):O=n[13];let k=O,A;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=function(){m(!0)},n[14]=A):A=n[14];let ee=A,j;n[15]===r?j=n[16]:(j=function(e){h(r,e),v(f(r))},n[15]=r,n[16]=j);let M=j,N=r===`automations`&&_===`kanban`?`list`:_,P;return n[17]!==p||n[18]!==a||n[19]!==T||n[20]!==u||n[21]!==c||n[22]!==M||n[23]!==N?(P={projectTags:a,setProjectTags:o,selectedTagIds:c,setSelectedTagIds:l,searchTerm:u,setSearchTerm:d,viewMode:N,setViewMode:M,manageTagsOpen:p,setManageTagsOpen:m,refreshProjectTags:T,toggleSelectedTag:D,clearSelectedTags:k,openManageTags:ee},n[17]=p,n[18]=a,n[19]=T,n[20]=u,n[21]=c,n[22]=M,n[23]=N,n[24]=P):P=n[24],P}function dr(e){return lr.error(`Failed to refresh project tags:`,e)}function fr(e){return lr.error(`Failed to fetch project tags:`,e)}function pr(e){let t=(0,Z.c)(15),n=d(yr),r=d(vr),i=d(_r),a=d(gr),o=d(hr),s=d(mr),c,l;if(t[0]!==e||t[1]!==n||t[2]!==r){let i;t[5]===e?i=t[6]:(i=t=>t.projectId===e,t[5]=e,t[6]=i),c=n.find(i),l=c?.threads.find(e=>e.threadId===r),t[0]=e,t[1]=n,t[2]=r,t[3]=c,t[4]=l}else c=t[3],l=t[4];let u=l,f=r?s[r]:void 0,p;return t[7]!==a||t[8]!==i||t[9]!==c||t[10]!==o||t[11]!==u||t[12]!==r||t[13]!==f?(p={project:c,selectedThreadId:r,selectedThread:u,selectedThreadModel:f,processingThreadIds:i,pendingChatMessage:a,queuedChatMessages:o},t[7]=a,t[8]=i,t[9]=c,t[10]=o,t[11]=u,t[12]=r,t[13]=f,t[14]=p):p=t[14],p}function mr(e){return e.projectModelSelections}function hr(e){return e.queuedChatMessages}function gr(e){return e.pendingChatMessage}function _r(e){return e.processingThreadIds}function vr(e){return e.selectedThreadId}function yr(e){return e.projects}function br(){let e=(0,Z.c)(3),{modelAliases:t,isLoading:n}=It(),r;return e[0]!==t||e[1]!==n?(r=function(e,r){if(e)return null;let i=ne(r);if(i)return ae(i);if(n)return null;let a=oe(r,t);return a?ae(a):null},e[0]=t,e[1]=n,e[2]=r):r=e[2],r}function xr(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsxs)(`div`,{className:`text-center`,children:[(0,Q.jsx)(G,{className:`mx-auto`}),(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`mt-2`),children:`Loading tasks`})]})}),e[0]=t):t=e[0],t}function Sr(e){let t=(0,Z.c)(5),{projectId:n,resourceKey:r,children:i}=e,a;t[0]===n?a=t[1]:(a=function(){return te(n)},t[0]=n,t[1]=a);let o=qe(r,a),s;return t[2]!==i||t[3]!==o?(s=i(o),t[2]=i,t[3]=o,t[4]=s):s=t[4],s}function Cr({projectId:e,children:t}){let[n,r]=(0,X.useState)(0),i=N(e,n),a=(0,X.useRef)(null);a.current!==i&&(a.current=i,Ke(i)===`rejected`&&Ge(i));function o(){Ge(i),r(function(e){return e+1})}return(0,Q.jsx)(Rt,{fallbackTitle:`Failed to load tasks`,onRetry:o,children:(0,Q.jsx)(X.Suspense,{fallback:(0,Q.jsx)(xr,{}),children:(0,Q.jsx)(Sr,{projectId:e,resourceKey:i,children:t},i)})},e)}var wr=c(`app.task-list.ui`),Tr=new Set;function Er(e){let t=(0,Z.c)(3),{message:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=V(a.bodyMuted,`flex h-full items-center justify-center px-4 py-8 text-center`),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,Q.jsx)(`p`,{className:r,children:n}),t[1]=n,t[2]=i),i}function Dr(e){let t=(0,Z.c)(19),n,r,i,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],o=t[4],s=t[5],c=t[6]):({viewMode:o,viewTasks:s,visibleTasks:c,emptyListMessage:n,noMatchMessage:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=o,t[5]=s,t[6]=c);let l=s.length===0&&`h-full`,u;t[7]===l?u=t[8]:(u=V(`pb-14`,l),t[7]=l,t[8]=u);let d;t[9]!==n||t[10]!==r||t[11]!==i||t[12]!==o||t[13]!==s.length||t[14]!==c?(d=s.length===0?(0,Q.jsx)(Er,{message:n}):c.length===0?(0,Q.jsx)(`p`,{className:V(a.bodyMuted,`px-4 py-8 text-center`),children:i}):(0,Q.jsx)(`div`,{className:V(`min-w-0 w-full`,!r.compact&&`divide-y divide-border`),children:c.map(function(e){return(0,Q.jsx)(sn,{task:e,viewMode:o,...r},e.id)})}),t[9]=n,t[10]=r,t[11]=i,t[12]=o,t[13]=s.length,t[14]=c,t[15]=d):d=t[15];let f;return t[16]!==u||t[17]!==d?(f=(0,Q.jsx)(Me,{className:`min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Q.jsx)(`div`,{className:u,children:d})}),t[16]=u,t[17]=d,t[18]=f):f=t[18],f}function Or(e){let t=(0,Z.c)(12),n,r,i,a,o,s;if(t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({columns:n,visibleTasks:s,viewTasks:o,emptyListMessage:r,noMatchMessage:a,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s),s.length===0){let e=o.length===0?r:a,n;return t[7]===e?n=t[8]:(n=(0,Q.jsx)(Er,{message:e}),t[7]=e,t[8]=n),n}let c;return t[9]!==n||t[10]!==i?(c=(0,Q.jsx)(fn,{columns:n,...i}),t[9]=n,t[10]=i,t[11]=c):c=t[11],c}function kr(e){let t=(0,Z.c)(150),{projectId:n,onThreadSelect:r,initialTasks:a,refreshTrigger:o,automationsOnly:s,compact:c}=e,d=s!==void 0&&s,f=c!==void 0&&c,p=u(),{project:m,selectedThreadId:h,selectedThread:g,selectedThreadModel:_}=pr(n),[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(null),{projectTags:S,setProjectTags:C,selectedTagIds:w,setSelectedTagIds:O,searchTerm:A,setSearchTerm:ee,viewMode:j,setViewMode:M,manageTagsOpen:N,setManageTagsOpen:P,refreshProjectTags:F,toggleSelectedTag:I,clearSelectedTags:L,openManageTags:R}=ur(n,d?`automations`:`tasks`),te;t[0]!==a||t[1]!==m||t[2]!==n||t[3]!==F||t[4]!==o?(te={projectId:n,initialTasks:a,refreshTrigger:o,project:m,onRefreshTags:F},t[0]=a,t[1]=m,t[2]=n,t[3]=F,t[4]=o,t[5]=te):te=t[5];let{tasks:ne,setTasks:z,isRefreshing:re,handleRefreshTasks:ie}=cr(te),ae=d?Tr:w,oe=ut(ct,d),ce;t[6]!==oe||t[7]!==d?(ce=d?new Date(oe):void 0,t[6]=oe,t[7]=d,t[8]=ce):ce=t[8];let le=ce,ue=br(),de=i(),pe;t[9]===de?pe=t[10]:(pe=function(){de.invalidateQueries({queryKey:Fe.conversations.unreadAll()})},t[9]=de,t[10]=pe);let he=pe,ge;t[11]!==F||t[12]!==z||t[13]!==ne?(ge=function(e){let t=ne.find(t=>t.id===e.id);z(t=>t.map(t=>t.id===e.id?e:t)),t&&t.status===`Done`!=(e.status===`Done`)&&F()},t[11]=F,t[12]=z,t[13]=ne,t[14]=ge):ge=t[14];let B=ge,V;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(V=function(e){x({task:e})},t[15]=V):V=t[15];let ve=V,H;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(H=function(){x(null)},t[16]=H):H=t[16];let ye=H,be;t[17]!==n||t[18]!==F||t[19]!==z?(be=function(e){z(t=>[...t,e]),me(n),F()},t[17]=n,t[18]=F,t[19]=z,t[20]=be):be=t[20];let xe=be,Se;t[21]!==n||t[22]!==z?(Se=function(e){z(t=>t.map(t=>t.id===e.id?e:t)),me(n)},t[21]=n,t[22]=z,t[23]=Se):Se=t[23];let Ce=Se,we;t[24]!==n||t[25]!==F||t[26]!==z?(we=function(e,t){z(t=>t.map(t=>t.id===e.id?e:t)),me(n),(t.tagsChanged||t.completedChanged)&&F()},t[24]=n,t[25]=F,t[26]=z,t[27]=we):we=t[27];let Te=we,Ee;t[28]!==n||t[29]!==F||t[30]!==z?(Ee=function(e){z(t=>t.filter(t=>t.id!==e)),me(n),F()},t[28]=n,t[29]=F,t[30]=z,t[31]=Ee):Ee=t[31];let De=Ee,Ae;t[32]!==n||t[33]!==C||t[34]!==O||t[35]!==z?(Ae=function(e){let t=E(e),r=new Set(t.map(function(e){return e.id}));C(t),O(function(e){return new Set([...e].filter(e=>r.has(e)))}),D(n).then(z).catch(Ar)},t[32]=n,t[33]=C,t[34]=O,t[35]=z,t[36]=Ae):Ae=t[36];let W=Ae,Me;t[37]===r?Me=t[38]:(Me=async function(e){e&&r&&await r(e)},t[37]=r,t[38]=Me);let Ne=Me,G;t[39]!==p||t[40]!==B||t[41]!==Ne||t[42]!==m||t[43]!==n||t[44]!==he?(G=async function(e){try{let t=await lt({projectId:n,dispatch:p,onUpdate:B,project:m},e);he(),await Ne(t.threadId)}catch(e){let t=e;Pe({title:`Could not start the task`,description:t instanceof Error?t.message:String(t),variant:`destructive`})}},t[39]=p,t[40]=B,t[41]=Ne,t[42]=m,t[43]=n,t[44]=he,t[45]=G):G=t[45];let Ie=G,Le;t[46]!==B||t[47]!==n||t[48]!==he?(Le=async function(e){let t=await k(n,e.id);B(t),me(n),he()},t[46]=B,t[47]=n,t[48]=he,t[49]=Le):Le=t[49];let Re=Le,ze;t[50]===Re?ze=t[51]:(ze=async function(e){await Re(e),Pe({title:`Automation started`,description:`“${e.title}” is running.`})},t[50]=Re,t[51]=ze);let Be=ze,Ve;t[52]!==p||t[53]!==r||t[54]!==n?(Ve=async function(e){r?await r(e):p({type:l.SelectThread,threadId:e,projectId:n})},t[52]=p,t[53]=r,t[54]=n,t[55]=Ve):Ve=t[55];let He=Ve,Ue;t[56]!==B||t[57]!==n?(Ue=async function(e){let t=await T(n,e.id,{status:`Done`,working:!1});B(t),me(n)},t[56]=B,t[57]=n,t[58]=Ue):Ue=t[58];let We=Ue,Ge;t[59]!==g||t[60]!==h||t[61]!==_?(Ge={selectedThreadId:h,selectedThreadModel:_,selectedThread:g},t[59]=g,t[60]=h,t[61]=_,t[62]=Ge):Ge=t[62];let Ke=Ge,qe,K,Je,q,J;if(t[63]!==d||t[64]!==m||t[65]!==S||t[66]!==A||t[67]!==ne||t[68]!==ae){({viewTasks:q,visibleTasks:J,emptyListMessage:qe,noMatchMessage:K}=se(ne,{automationsOnly:d,selectedTagIds:ae,searchTerm:A,projectName:m?_e(m):void 0}));let e;t[74]!==d||t[75]!==S?(e=d?[]:S,t[74]=d,t[75]=S,t[76]=e):e=t[76],Je=fe(J,e,ae),t[63]=d,t[64]=m,t[65]=S,t[66]=A,t[67]=ne,t[68]=ae,t[69]=qe,t[70]=K,t[71]=Je,t[72]=q,t[73]=J}else qe=t[69],K=t[70],Je=t[71],q=t[72],J=t[73];let Ye=Je,Xe;t[77]!==le||t[78]!==d||t[79]!==f||t[80]!==qe||t[81]!==We||t[82]!==He||t[83]!==Re||t[84]!==Ie||t[85]!==K||t[86]!==r||t[87]!==q||t[88]!==J?(Xe={now:le,showRunHistory:d,viewTasks:q,visibleTasks:J,emptyListMessage:qe,noMatchMessage:K,compact:f,hideTags:d,onOpenEdit:ve,onThreadSelect:r,onStartInNewWorkspace:Ie,onMarkDone:We,onRunNow:Re,onOpenRun:He},t[77]=le,t[78]=d,t[79]=f,t[80]=qe,t[81]=We,t[82]=He,t[83]=Re,t[84]=Ie,t[85]=K,t[86]=r,t[87]=q,t[88]=J,t[89]=Xe):Xe=t[89];let Ze=Xe,Qe;t[90]!==d||t[91]!==L||t[92]!==f||t[93]!==ie||t[94]!==re||t[95]!==R||t[96]!==S||t[97]!==w||t[98]!==ee||t[99]!==M||t[100]!==I||t[101]!==j?(Qe=(0,Q.jsx)(gn,{automationsOnly:d,compact:f,viewMode:j,projectTags:S,selectedTagIds:w,onToggleSelectedTag:I,onClearSelectedTags:L,onSearchTermChange:ee,onViewModeChange:M,isRefreshing:re,onRefresh:ie,onManageTags:R}),t[90]=d,t[91]=L,t[92]=f,t[93]=ie,t[94]=re,t[95]=R,t[96]=S,t[97]=w,t[98]=ee,t[99]=M,t[100]=I,t[101]=j,t[102]=Qe):Qe=t[102];let $e;t[103]!==f||t[104]!==Ye||t[105]!==Ze||t[106]!==j?($e=j===`kanban`&&!f?(0,Q.jsx)(Or,{...Ze,columns:Ye}):(0,Q.jsx)(Dr,{...Ze,viewMode:f?`list`:j}),t[103]=f,t[104]=Ye,t[105]=Ze,t[106]=j,t[107]=$e):$e=t[107];let et=d?`New Automation`:`New Task`,tt;t[108]===Symbol.for(`react.memo_cache_sentinel`)?(tt=()=>y(!0),t[108]=tt):tt=t[108];let nt=d?`New Automation`:`New Task`,rt;t[109]!==et||t[110]!==nt?(rt=(0,Q.jsx)(Oe,{asChild:!0,children:(0,Q.jsx)(U,{type:`button`,"aria-label":et,className:`absolute bottom-6 left-1/2 z-10 h-10 -translate-x-1/2 rounded-full shadow-lg`,onClick:tt,children:nt})}),t[109]=et,t[110]=nt,t[111]=rt):rt=t[111];let it=d?`New Automation`:`New Task`,at;t[112]===it?at=t[113]:(at=(0,Q.jsx)(ke,{children:it}),t[112]=it,t[113]=at);let ot;t[114]!==rt||t[115]!==at?(ot=(0,Q.jsxs)(je,{children:[rt,at]}),t[114]=rt,t[115]=at,t[116]=ot):ot=t[116];let st;t[117]!==v||t[118]!==d||t[119]!==ue||t[120]!==xe||t[121]!==Ce||t[122]!==n||t[123]!==S||t[124]!==Ke?(st=(0,Q.jsx)(Xn,{mode:`add`,open:v,automationsOnly:d,projectId:n,projectTags:S,thread:Ke,getTriggerValidationError:ue,onOpenChange:y,onTaskCreated:xe,onTaskUpdated:Ce}),t[117]=v,t[118]=d,t[119]=ue,t[120]=xe,t[121]=Ce,t[122]=n,t[123]=S,t[124]=Ke,t[125]=st):st=t[125];let dt=b?.task??null,ft=b!==null,pt;t[126]!==d||t[127]!==ue||t[128]!==Be||t[129]!==De||t[130]!==Te||t[131]!==n||t[132]!==S||t[133]!==dt||t[134]!==ft||t[135]!==Ke?(pt=(0,Q.jsx)(Xn,{mode:`edit`,task:dt,open:ft,automationsOnly:d,projectId:n,projectTags:S,thread:Ke,getTriggerValidationError:ue,onOpenChange:ye,onTaskSaved:Te,onRunNow:Be,onTaskDeleted:De}),t[126]=d,t[127]=ue,t[128]=Be,t[129]=De,t[130]=Te,t[131]=n,t[132]=S,t[133]=dt,t[134]=ft,t[135]=Ke,t[136]=pt):pt=t[136];let mt;t[137]!==W||t[138]!==N||t[139]!==n||t[140]!==S||t[141]!==P?(mt=(0,Q.jsx)(Zn,{open:N,onOpenChange:P,projectId:n,tags:S,onTagsChanged:W}),t[137]=W,t[138]=N,t[139]=n,t[140]=S,t[141]=P,t[142]=mt):mt=t[142];let ht;return t[143]!==Qe||t[144]!==$e||t[145]!==ot||t[146]!==st||t[147]!==pt||t[148]!==mt?(ht=(0,Q.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[Qe,$e,ot,st,pt,mt]}),t[143]=Qe,t[144]=$e,t[145]=ot,t[146]=st,t[147]=pt,t[148]=mt,t[149]=ht):ht=t[149],ht}function Ar(e){return wr.error(`Failed to refresh tasks after tag change:`,e)}function jr(e){let t=(0,Z.c)(5),n;t[0]===e?n=t[1]:(n=function(t){return(0,Q.jsx)(kr,{...e,initialTasks:t})},t[0]=e,t[1]=n);let r=n,i;return t[2]!==e.projectId||t[3]!==r?(i=(0,Q.jsx)(Cr,{projectId:e.projectId,children:r}),t[2]=e.projectId,t[3]=r,t[4]=i):i=t[4],i}var Mr=c(`app.tasks-view.ui`);async function Nr(){return v(),p()}function Pr(e){let t=(0,Z.c)(14),{projectId:n,refreshTrigger:r,view:i,compact:a,onThreadSelect:o}=e,s=i===void 0?`tasks`:i,c=a!==void 0&&a,d=u(),{openConversation:f}=st(),p,m;t[0]===d?(p=t[1],m=t[2]):(p=()=>{let e=!1;return(async()=>{try{let t=await Nr();e||d({type:l.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){let t=e;Mr.error(`Failed to refresh projects on tasks view mount:`,t)}})(),()=>{e=!0}},m=[d],t[0]=d,t[1]=p,t[2]=m),(0,X.useEffect)(p,m);let h;t[3]!==d||t[4]!==o||t[5]!==f||t[6]!==n?(h=async function(e){try{let e=await Nr();d({type:l.SetProjects,projects:e.projects,cloneRootPath:e.cloneRootPath})}catch(e){let t=e;Mr.error(`Failed to refresh projects for thread selection:`,t)}if(o){await o(e);return}await f({projectId:n,threadId:e})},t[3]=d,t[4]=o,t[5]=f,t[6]=n,t[7]=h):h=t[7];let g=h,_=s===`automations`,v;return t[8]!==c||t[9]!==g||t[10]!==n||t[11]!==r||t[12]!==_?(v=(0,Q.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,Q.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,Q.jsx)(jr,{projectId:n,refreshTrigger:r,onThreadSelect:g,automationsOnly:_,compact:c})})}),t[8]=c,t[9]=g,t[10]=n,t[11]=r,t[12]=_,t[13]=v):v=t[13],v}export{Pr as TasksView};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i,x as a}from"./dist-v_MvKS2-.js";import{s as o,sn as s}from"./api-C4ukGdyH.js";import{t as c}from"./utils-CqsIXqSC.js";import{t as l}from"./check-skFQ1X72.js";import{t as u}from"./circle-alert-CC2eO3yt.js";import{t as d}from"./copy-bi9iX3xn.js";import{t as f}from"./external-link-Dcikmdm_.js";import{t as p}from"./loader-circle-CrqRIqdA.js";import{t as m}from"./button-DDaJhJP1.js";import{it as h,or as g}from"./index-CoY8DilQ.js";var _={darwin:`macOS`,win32:`Windows`,linux:`Linux`,unknown:`System`},v=t(),y=e(n(),1),b=r(),x=a(`app.git-setup-guide`);function S(e){let t=(0,v.c)(4),{version:n}=e,r,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,b.jsx)(l,{className:`h-5 w-5 text-brand flex-shrink-0 mt-0.5`}),a=(0,b.jsx)(`p`,{className:c(i.label,`text-brand`),children:`Git is installed`}),t[0]=r,t[1]=a):(r=t[0],a=t[1]);let o=n?`Detected Git ${n}. `:``,s;return t[2]===o?s=t[3]:(s=(0,b.jsxs)(h,{variant:`success`,className:`mb-0 flex items-start gap-3`,children:[r,(0,b.jsxs)(`div`,{children:[a,(0,b.jsxs)(`p`,{className:i.bodyMuted,children:[o,`You're all set to use Git features in Tarsk.`]})]})]}),t[2]=o,t[3]=s),s}function C(e){let t=(0,v.c)(27),{platform:n,plan:r,checking:a,onCheckAgain:o,className:s}=e,l;t[0]===s?l=t[1]:(l=c(`mb-0 flex items-start gap-3`,s),t[0]=s,t[1]=l);let d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,b.jsx)(u,{className:`h-5 w-5 text-yellow-600 flex-shrink-0 mt-0.5`}),t[2]=d):d=t[2];let f,g;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,b.jsx)(`p`,{className:i.label,children:`Git is not installed`}),g=c(i.bodyMuted,`mt-1`),t[3]=f,t[4]=g):(f=t[3],g=t[4]);let y=_[n],x;t[5]===y?x=t[6]:(x=(0,b.jsxs)(`p`,{className:g,children:[`Git is required for some features in Tarsk. Run the command below for`,` `,y,`, then check again.`]}),t[5]=y,t[6]=x);let S;t[7]===r?S=t[8]:(S=(0,b.jsx)(w,{plan:r}),t[7]=r,t[8]=S);let C;t[9]===a?C=t[10]:(C=a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Checking...`]}):`Check again`,t[9]=a,t[10]=C);let T;t[11]!==a||t[12]!==o||t[13]!==C?(T=(0,b.jsx)(m,{variant:`outline`,size:`sm`,onClick:o,disabled:a,className:`gap-2`,children:C}),t[11]=a,t[12]=o,t[13]=C,t[14]=T):T=t[14];let E=r?.url??null,O;t[15]===E?O=t[16]:(O=(0,b.jsx)(D,{url:E}),t[15]=E,t[16]=O);let k;t[17]!==O||t[18]!==T?(k=(0,b.jsxs)(`div`,{className:`mt-3 flex items-center gap-3`,children:[T,O]}),t[17]=O,t[18]=T,t[19]=k):k=t[19];let A;t[20]!==k||t[21]!==x||t[22]!==S?(A=(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[f,x,S,k]}),t[20]=k,t[21]=x,t[22]=S,t[23]=A):A=t[23];let j;return t[24]!==l||t[25]!==A?(j=(0,b.jsxs)(h,{variant:`hint`,className:l,children:[d,A]}),t[24]=l,t[25]=A,t[26]=j):j=t[26],j}function w(e){let t=(0,v.c)(11),{plan:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(i.labelMuted,`mb-2`),t[0]=r):r=t[0];let a;t[1]===n.label?a=t[2]:(a=(0,b.jsxs)(`p`,{className:r,children:[`Install with `,n.label]}),t[1]=n.label,t[2]=a);let o;t[3]===n.command?o=t[4]:(o=n.command?(0,b.jsx)(E,{command:n.command}):(0,b.jsx)(`p`,{className:i.bodyMuted,children:`No install command was detected for your system — use the download link below.`}),t[3]=n.command,t[4]=o);let s;t[5]===n.notes?s=t[6]:(s=n.notes.map(T),t[5]=n.notes,t[6]=s);let l;return t[7]!==a||t[8]!==o||t[9]!==s?(l=(0,b.jsxs)(`div`,{className:`mt-3 rounded-lg border border-border bg-background p-3`,children:[a,o,s]}),t[7]=a,t[8]=o,t[9]=s,t[10]=l):l=t[10],l}function T(e){return(0,b.jsxs)(`p`,{className:c(i.caption,`mt-2 flex items-start gap-1.5`),children:[(0,b.jsx)(g,{className:`h-3 w-3 mt-0.5 flex-shrink-0`}),e]},e)}function E(e){let t=(0,v.c)(15),{command:n}=e,[r,i]=(0,y.useState)(!1),a;t[0]===n?a=t[1]:(a=async function(){try{await navigator.clipboard.writeText(n),i(!0),window.setTimeout(()=>i(!1),2e3)}catch(e){let t=e;x.error(`Failed to copy git install command:`,t)}},t[0]=n,t[1]=a);let o=a,s;t[2]===n?s=t[3]:(s=(0,b.jsx)(`code`,{className:`flex-1 min-w-0 break-all rounded-md bg-muted px-3 py-2 font-mono`,children:n}),t[2]=n,t[3]=s);let c;t[4]===o?c=t[5]:(c=()=>void o(),t[4]=o,t[5]=c);let u=r?`Copied`:`Copy command`,f;t[6]===r?f=t[7]:(f=r?(0,b.jsx)(l,{className:`h-4 w-4 text-brand`}):(0,b.jsx)(d,{className:`h-4 w-4`}),t[6]=r,t[7]=f);let p;t[8]!==c||t[9]!==u||t[10]!==f?(p=(0,b.jsx)(m,{variant:`ghost`,size:`icon-sm`,onClick:c,"aria-label":u,children:f}),t[8]=c,t[9]=u,t[10]=f,t[11]=p):p=t[11];let h;return t[12]!==s||t[13]!==p?(h=(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[s,p]}),t[12]=s,t[13]=p,t[14]=h):h=t[14],h}function D(e){let t=(0,v.c)(7),{url:n}=e;if(!n)return null;let r;t[0]===n?r=t[1]:(r=function(e){e.preventDefault(),s(n??``)},t[0]=n,t[1]=r);let a=r,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(i.caption,`text-brand hover:underline inline-flex items-center gap-1`),t[2]=o):o=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,b.jsx)(f,{className:`h-3 w-3`}),t[3]=l):l=t[3];let u;return t[4]!==a||t[5]!==n?(u=(0,b.jsxs)(`a`,{href:n,onClick:a,className:o,children:[`Download installer `,l]}),t[4]=a,t[5]=n,t[6]=u):u=t[6],u}var O=a(`app.use-git-check`),k=4e3;function A(e={}){let{enabled:t=!0,pollWhileMissing:n=!0}=e,[r,i]=(0,y.useState)(null),[a,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(!1),d=(0,y.useCallback)(async(e={})=>{if(!u.current){u.current=!0,e.silent||s(!0);try{let e=await o();i(e)}catch(e){O.error(`Failed to check git installation:`,e),i(e=>e??{gitInstalled:!1,version:null,platform:`unknown`,install:null})}finally{u.current=!1,e.silent||s(!1),l(!0)}}},[]),f=(0,y.useRef)(d);return(0,y.useEffect)(()=>{f.current=d},[d]),(0,y.useEffect)(()=>{t&&f.current()},[t]),(0,y.useEffect)(()=>{if(!t||!n||r?.gitInstalled!==!1)return;let e=window.setInterval(()=>{f.current({silent:!0})},k);return()=>{window.clearInterval(e)}},[t,n,r]),{gitInstalled:r?.gitInstalled??null,version:r?.version??null,platform:r?.platform??`unknown`,plan:r?.install??null,loading:a,hasChecked:c,check:d}}export{S as n,C as r,A as t};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{a as t,n,o as r,t as i}from"./react-vendor-D61Uve5n.js";import{o as a,s as o}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{U as s,x as c}from"./dist-v_MvKS2-.js";import{Z as l,i as u,n as d,r as f}from"./store-W78TGOIO.js";import{C as p,N as m,Nt as h,Qr as g,R as _,S as v,b as y,cn as b,hr as x,ln as S,mn as C,nn as w,w as T,x as E,zn as D}from"./api-C4ukGdyH.js";import{c as O,h as k,i as A,l as j,m as M,n as N,o as P,p as ee,r as te,t as ne}from"./create-project-workspace-DSTTGom_.js";import{c as F,p as re,t as I}from"./utils-CqsIXqSC.js";import{t as ie}from"./check-skFQ1X72.js";import{t as L}from"./circle-alert-CC2eO3yt.js";import{t as ae}from"./loader-circle-CrqRIqdA.js";import{t as oe}from"./x-ByOPrz5I.js";import{r as se}from"./button-DDaJhJP1.js";import{a as ce,c as le,d as ue,g as R,h as de,l as z,n as fe,o as pe,r as me,t as he,u as B}from"./dist-AbkJBHH5.js";import{o as ge}from"./tooltip-CqwCZ7wt.js";import{t as _e}from"./dist-DOz2WXwX.js";import{n as ve,t as ye}from"./use-toast-CKgZ8YeP.js";import{n as be}from"./terminal-output-activity-D_FxlE-L.js";import{a as xe,c as Se,i as Ce,n as we,o as Te,r as Ee,s as De,t as Oe}from"./alert-dialog-BcZULJsX.js";import{r as ke}from"./suspense-resource-DzlMlIgR.js";import{t as Ae}from"./use-suspense-resource-uCX26gOk.js";var V=e(r(),1),H=n();function je(e,t,n){let r=n.find(e=>e.threadId!==t);return r?{type:l.SelectThread,projectId:e,threadId:r.threadId}:{type:l.SelectProject,projectId:e}}var Me=`root`,Ne=/^cd "([^"]+)" && (.+)$/;function Pe(e){let t=Ne.exec(e);return t?{script:e,command:t[2],folder:t[1],isRoot:!1}:{script:e,command:e,folder:Me,isRoot:!0}}function Fe(e){return e.map(e=>Pe(e))}function Ie(e){return Fe(e).filter(e=>e.isRoot).map(e=>e.script)}function Le(e,t){return Array.from(new Set([e,...t??[]]))}var U=i(),W=[`Removing threads`,`Deleting storage`,`Removing project`];function Re(e){let t=(0,H.c)(32),{progress:n,onRetry:r,onClose:i}=e;if(!n)return null;let{projectName:a,step:o,status:c,errorMessage:l}=n,u=W[Math.min(o,W.length-1)],d=c===`progressing`,f;t[0]!==d||t[1]!==i?(f=e=>{!e&&!d&&i()},t[0]=d,t[1]=i,t[2]=f):f=t[2];let p;t[3]===d?p=t[4]:(p=e=>{d&&e.preventDefault()},t[3]=d,t[4]=p);let m=c===`error`?`Delete Failed`:`Deleting Project`,h;t[5]===m?h=t[6]:(h=(0,U.jsx)(Se,{children:m}),t[5]=m,t[6]=h);let g;t[7]!==l||t[8]!==u||t[9]!==a||t[10]!==c?(g=(0,U.jsx)(xe,{children:c===`error`?(0,U.jsxs)(`span`,{className:`text-destructive`,children:[`Failed at: `,u,`. `,l??`An unexpected error occurred.`]}):(0,U.jsxs)(U.Fragment,{children:[`Deleting `,(0,U.jsxs)(`span`,{className:`font-semibold text-foreground`,children:[`"`,a,`"`]}),`. This cannot be undone.`]})}),t[7]=l,t[8]=u,t[9]=a,t[10]=c,t[11]=g):g=t[11];let _;t[12]!==h||t[13]!==g?(_=(0,U.jsxs)(De,{children:[h,g]}),t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==c||t[16]!==o?(v=W.map((e,t)=>{let n=c===`progressing`&&t===o,r=c===`done`,i=c===`error`&&t===o;return(0,U.jsxs)(`div`,{className:I(`flex items-center gap-2 text-sm`,n&&`text-foreground`,r&&`text-muted-foreground`,t<o&&`text-muted-foreground`),children:[r||t<o?(0,U.jsx)(ie,{className:`h-4 w-4 text-emerald-500`}):i?(0,U.jsx)(L,{className:`h-4 w-4 text-destructive`}):(0,U.jsx)(ae,{className:I(`h-4 w-4 text-muted-foreground`,n&&`animate-spin text-foreground`)}),(0,U.jsxs)(`span`,{className:I(s.body,n&&`font-medium`),children:[e,`…`]})]},e)}),t[15]=c,t[16]=o,t[17]=v):v=t[17];let y;t[18]===v?y=t[19]:(y=(0,U.jsx)(`div`,{className:`flex flex-col gap-2 py-2`,children:v}),t[18]=v,t[19]=y);let b;t[20]!==i||t[21]!==r||t[22]!==c?(b=c===`error`&&(0,U.jsxs)(Te,{children:[(0,U.jsx)(Ee,{onClick:i,children:`Close`}),(0,U.jsx)(we,{onClick:r,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:`Retry`})]}),t[20]=i,t[21]=r,t[22]=c,t[23]=b):b=t[23];let x;t[24]!==p||t[25]!==_||t[26]!==y||t[27]!==b?(x=(0,U.jsxs)(Ce,{onEscapeKeyDown:p,children:[_,y,b]}),t[24]=p,t[25]=_,t[26]=y,t[27]=b,t[28]=x):x=t[28];let S;return t[29]!==f||t[30]!==x?(S=(0,U.jsx)(Oe,{open:!0,onOpenChange:f,children:x}),t[29]=f,t[30]=x,t[31]=S):S=t[31],S}var ze=c(`app.use-projects.hook`);function Be(e,t){let n=e.find(e=>e.projectId===t);return{project:n,threadIds:n?.threads.map(e=>e.threadId)??[]}}function Ve(e,t,n){e({type:l.AddDeletingProject,projectId:t});for(let t of n)e({type:l.AddDeletingThread,threadId:t}),e({type:l.ClearChatInputDraft,threadId:t})}function He(e,t,n){e({type:l.RemoveDeletingProject,projectId:t});for(let t of n)e({type:l.RemoveDeletingThread,threadId:t})}function Ue(e){return e instanceof Error?e.message:`Failed to delete project`}async function We({dispatch:e,refreshProjects:t,navigate:n,location:r}){e({type:l.CloseProjectPanel}),e({type:l.SelectThread,threadId:``,projectId:``}),await t(),e({type:l.ConfigUpdated}),r.pathname.startsWith(`/settings/`)&&n(`/`)}async function Ge({projectId:e,projects:t,dispatch:n,refreshProjects:r,navigate:i,location:a,onProgress:o}){let{project:s,threadIds:c}=Be(t,e);Ve(n,e,c);let l=0;o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`});let u=window.setInterval(()=>{l=Math.min(l+1,W.length-1),o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`})},450);try{await m(e),window.clearInterval(u),await We({dispatch:n,refreshProjects:r,navigate:i,location:a}),o?.({projectId:e,projectName:s?.name??``,step:l,status:`done`})}catch(t){throw window.clearInterval(u),ze.error(`Failed to delete project:`,t),o?.({projectId:e,projectName:s?.name??``,step:l,status:`error`,errorMessage:Ue(t)}),t}finally{He(n,e,c)}}function Ke(e){return e instanceof Error?e.message:`Unknown error`}function qe(e,t){be(),e({type:l.AppendTerminalLine,line:t})}async function Je(e,t,n,r,i){let a=Pe(t).folder;i({type:`system`,content:`Installing package ${n+1}/${r} in ${a}...`}),i({type:`output`,content:`📦 Installing dependencies in ${a}: ${t}`});let o=await x(e,t,!0);o&&await M(o,{onOutput(e){i({type:`output`,content:e})},onError(e){i({type:`error`,content:e})}})}function Ye(e,t){t||(e({type:`system`,content:``}),e({type:`system`,content:`---`}),e({type:`system`,content:``}))}async function Xe({projectId:e,scripts:t,dispatch:n,refreshProjects:r}){function i(e){qe(n,e)}try{n({type:l.SetCreatingProject,isCreating:!0}),n({type:l.SetTerminalOpen,open:!0}),i({type:`system`,content:`Installing dependencies for ${t.length} package${t.length===1?``:`s`}...`});for(let n=0;n<t.length;n++)await Je(e,t[n],n,t.length,i),Ye(i,n===t.length-1);i({type:`system`,content:`All dependencies installed successfully!`}),n({type:l.SetCreatingProject,isCreating:!1}),await r()}catch(e){n({type:l.SetCreatingProject,isCreating:!1}),ze.error(`Failed to run setup script:`,e),i({type:`error`,content:`Failed to run setup script: ${Ke(e)}`})}}async function Ze({pending:e,selectedScripts:t,setPendingSetupScriptConfirmation:n,dispatch:r,refreshProjects:i}){n(null),e&&t.length!==0&&await Xe({projectId:e.projectId,scripts:t,dispatch:r,refreshProjects:i})}function Qe(e){let t=(0,H.c)(14),{dispatch:n,projects:r,refreshProjects:i,navigate:a,location:o,pendingSetupScriptConfirmation:s,setPendingSetupScriptConfirmation:c}=e,l;t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==r||t[4]!==i?(l=async(e,t)=>{await Ge({projectId:e,projects:r,dispatch:n,refreshProjects:i,navigate:a,location:o,onProgress:t})},t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=i,t[5]=l):l=t[5];let u=l,d;t[6]!==n||t[7]!==s||t[8]!==i||t[9]!==c?(d=async e=>{await Ze({pending:s,selectedScripts:e,setPendingSetupScriptConfirmation:c,dispatch:n,refreshProjects:i})},t[6]=n,t[7]=s,t[8]=i,t[9]=c,t[10]=d):d=t[10];let f=d,p;return t[11]!==u||t[12]!==f?(p={confirmDeleteProject:u,resolveSetupScriptConfirmation:f},t[11]=u,t[12]=f,t[13]=p):p=t[13],p}function $e(e){let t=(0,H.c)(32),{consumeProjectStream:n,activeCreationControllerRef:r,projects:i,dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c}=e,l;t[0]===n?l=t[1]:(l=async(e,t)=>{let r=e.split(`/`).pop()?.replace(`.git`,``)??`project`;await n({apiCall:n=>v(e,t,n),initialMessage:`Cloning repository: ${e}...`,optimisticProjectName:r,gitUrl:e,mode:`clone`,includeThreadPath:!0,handleSetupScript:!0,logTag:`create project`,catchErrorPrefix:`Failed to create project`})},t[0]=n,t[1]=l);let u=l,d;t[2]===r?d=t[3]:(d=()=>{r.current?.abort(),r.current=null},t[2]=r,t[3]=d);let f=d,m;t[4]===n?m=t[5]:(m=async(e,t,r)=>{await n({apiCall:n=>T(e,t,r,n),initialMessage:`Creating app "${e}"...`,optimisticProjectName:e,mode:`webapp`,handleSetupScript:!1,logTag:`create web app`,catchErrorPrefix:`Failed to create web app`})},t[4]=n,t[5]=m);let h=m,g;t[6]===n?g=t[7]:(g=async e=>{await n({apiCall:t=>E(e,t),initialMessage:`Creating folder "${e}"...`,optimisticProjectName:e,mode:`folder`,handleSetupScript:!1,logTag:`create folder`,catchErrorPrefix:`Failed to create folder`})},t[6]=n,t[7]=g);let _=g,x;t[8]===n?x=t[9]:(x=async e=>{await n({apiCall:t=>y(e,t),initialMessage:`Creating bot "${e}"...`,optimisticProjectName:e,mode:`folder`,projectType:`bot`,handleSetupScript:!1,logTag:`create bot`,catchErrorPrefix:`Failed to create bot`})},t[8]=n,t[9]=x);let C=x,w;t[10]===n?w=t[11]:(w=async(e,t,r)=>{let i=t.replace(/\.zip$/i,``)||`project`;await n({apiCall:n=>p(e,t,r,n),initialMessage:r?`Replacing project from "${t}"...`:`Creating project from "${t}"...`,optimisticProjectName:i,mode:`zip`,handleSetupScript:!1,logTag:`create project from zip`,catchErrorPrefix:`Failed to create project from zip`})},t[10]=n,t[11]=w);let D=w,O;t[12]!==a||t[13]!==c||t[14]!==i||t[15]!==s||t[16]!==o?(O=async(e,t,n)=>ne({projectId:e,title:t,project:i.find(t=>t.projectId===e),dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c,sourceThreadId:n?.sourceThreadId,remoteMachineId:n?.remoteMachineId}),t[12]=a,t[13]=c,t[14]=i,t[15]=s,t[16]=o,t[17]=O):O=t[17];let k=O,A;t[18]===n?A=t[19]:(A=async()=>{await n({apiCall:b,initialMessage:`Opening folder...`,optimisticProjectName:`Opening folder...`,mode:`folder`,handleSetupScript:!0,logTag:`open folder`,catchErrorPrefix:`Failed to open folder`})},t[18]=n,t[19]=A);let j=A,M;t[20]===n?M=t[21]:(M=async e=>{let t=e.split(/[/\\]/).filter(Boolean).pop()??`project`;await n({apiCall:t=>S(e,t),initialMessage:`Opening folder: ${e}...`,optimisticProjectName:t,mode:`folder`,handleSetupScript:!0,logTag:`open path`,catchErrorPrefix:`Failed to open folder path`})},t[20]=n,t[21]=M);let N=M,P;return t[22]!==f||t[23]!==C||t[24]!==_||t[25]!==u||t[26]!==k||t[27]!==h||t[28]!==D||t[29]!==j||t[30]!==N?(P={handleCreateProject:u,cancelProjectCreation:f,handleCreateWebApp:h,handleCreateFolder:_,handleCreateBot:C,handleCreateZip:D,handleCreateThread:k,handleOpenFolder:j,handleOpenPath:N},t[22]=f,t[23]=C,t[24]=_,t[25]=u,t[26]=k,t[27]=h,t[28]=D,t[29]=j,t[30]=N,t[31]=P):P=t[31],P}var et=e(t(),1),G=`ToastProvider`,[K,tt,nt]=_e(`Toast`),[rt,it]=de(`Toast`,[nt]),[at,q]=rt(G),ot=e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,children:o}=e,[s,c]=V.useState(null),[l,u]=V.useState(0),d=V.useRef(!1),f=V.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${G}\`. Expected non-empty \`string\`.`),(0,U.jsx)(K.Provider,{scope:t,children:(0,U.jsx)(at,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:l,viewport:s,onViewportChange:c,onToastAdd:V.useCallback(()=>u(e=>e+1),[]),onToastRemove:V.useCallback(()=>u(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:d,isClosePausedRef:f,children:o})})};ot.displayName=G;var st=`ToastViewport`,ct=[`F8`],J=`toast.viewportPause`,Y=`toast.viewportResume`,lt=V.forwardRef((e,t)=>{let{__scopeToast:n,hotkey:r=ct,label:i=`Notifications ({hotkey})`,...a}=e,o=q(st,n),s=tt(n),c=V.useRef(null),l=V.useRef(null),u=V.useRef(null),d=V.useRef(null),f=F(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;V.useEffect(()=>{let e=e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),V.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(J);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},r=()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Y);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},i=t=>{e.contains(t.relatedTarget)||r()},a=()=>{e.contains(document.activeElement)||r()};return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=V.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...Pt(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return V.useEffect(()=>{let e=d.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);Ft(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,U.jsxs)(pe,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,U.jsx)(dt,{ref:l,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`forwards`}))}}),(0,U.jsx)(K.Slot,{scope:n,children:(0,U.jsx)(B.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,U.jsx)(dt,{ref:u,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`backwards`}))}})]})});lt.displayName=st;var ut=`ToastFocusProxy`,dt=V.forwardRef((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=q(ut,n);return(0,U.jsx)(ge,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})});dt.displayName=ut;var X=`Toast`,ft=`toast.swipeStart`,pt=`toast.swipeMove`,mt=`toast.swipeCancel`,ht=`toast.swipeEnd`,gt=V.forwardRef((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=he({prop:r,defaultProp:i??!0,onChange:a,caller:X});return(0,U.jsx)(fe,{present:n||s,children:(0,U.jsx)(yt,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:z(e.onPause),onResume:z(e.onResume),onSwipeStart:R(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:R(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:R(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:R(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})});gt.displayName=X;var[_t,vt]=rt(X,{onClose(){}}),yt=V.forwardRef((e,t)=>{let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=q(X,n),[g,_]=V.useState(null),v=F(t,e=>_(e)),y=V.useRef(null),b=V.useRef(null),x=i||h.duration,S=V.useRef(0),C=V.useRef(x),w=V.useRef(0),{onToastAdd:T,onToastRemove:E}=h,D=z(()=>{g?.contains(document.activeElement)&&h.viewport?.focus(),o()}),O=V.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(w.current),S.current=new Date().getTime(),w.current=window.setTimeout(D,e))},[D]);V.useEffect(()=>{let e=h.viewport;if(e){let t=()=>{O(C.current),l?.()},n=()=>{let e=new Date().getTime()-S.current;C.current-=e,window.clearTimeout(w.current),c?.()};return e.addEventListener(J,n),e.addEventListener(Y,t),()=>{e.removeEventListener(J,n),e.removeEventListener(Y,t)}}},[h.viewport,x,c,l,O]),V.useEffect(()=>{a&&!h.isClosePausedRef.current&&O(x)},[a,x,h.isClosePausedRef,O]),V.useEffect(()=>(T(),()=>E()),[T,E]);let k=V.useMemo(()=>g?At(g):null,[g]);return h.viewport?(0,U.jsxs)(U.Fragment,{children:[k&&(0,U.jsx)(bt,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:k}),(0,U.jsx)(_t,{scope:n,onClose:D,children:et.createPortal((0,U.jsx)(K.ItemSlot,{scope:n,children:(0,U.jsx)(le,{asChild:!0,onEscapeKeyDown:R(s,()=>{h.isFocusedToastEscapeKeyDownRef.current||D(),h.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,U.jsx)(B.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:v,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:R(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||(h.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:R(e.onPointerDown,e=>{e.button===0&&(y.current={x:e.clientX,y:e.clientY})}),onPointerMove:R(e.onPointerMove,e=>{if(!y.current)return;let t=e.clientX-y.current.x,n=e.clientY-y.current.y,r=!!b.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(b.current=l,Z(pt,d,f,{discrete:!1})):jt(l,h.swipeDirection,c)?(b.current=l,Z(ft,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(y.current=null)}),onPointerUp:R(e.onPointerUp,e=>{let t=b.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),b.current=null,y.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};jt(t,h.swipeDirection,h.swipeThreshold)?Z(ht,p,r,{discrete:!0}):Z(mt,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null}),bt=e=>{let{__scopeToast:t,children:n,...r}=e,i=q(X,t),[a,o]=V.useState(!1),[s,c]=V.useState(!1);return Mt(()=>o(!0)),V.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,U.jsx)(me,{asChild:!0,children:(0,U.jsx)(ge,{...r,children:a&&(0,U.jsxs)(U.Fragment,{children:[i.label,` `,n]})})})},xt=`ToastTitle`,St=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});St.displayName=xt;var Ct=`ToastDescription`,wt=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});wt.displayName=Ct;var Tt=`ToastAction`,Et=V.forwardRef((e,t)=>{let{altText:n,...r}=e;return n.trim()?(0,U.jsx)(kt,{altText:n,asChild:!0,children:(0,U.jsx)(Ot,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Tt}\`. Expected non-empty \`string\`.`),null)});Et.displayName=Tt;var Dt=`ToastClose`,Ot=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e,i=vt(Dt,n);return(0,U.jsx)(kt,{asChild:!0,children:(0,U.jsx)(B.button,{type:`button`,...r,ref:t,onClick:R(e.onClick,i.onClose)})})});Ot.displayName=Dt;var kt=V.forwardRef((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,U.jsx)(B.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function At(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Nt(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...At(e))}}}),t}function Z(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?ue(i,a):i.dispatchEvent(a)}var jt=(e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n};function Mt(e=()=>{}){let t=z(e);ce(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}function Nt(e){return e.nodeType===e.ELEMENT_NODE}function Pt(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ft(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var It=ot,Lt=lt,Rt=gt,zt=St,Bt=wt,Vt=Et,Ht=Ot,Ut=It,Wt=V.forwardRef((e,t)=>{let n=(0,H.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=I(`fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Lt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Wt.displayName=Lt.displayName;var Gt=se(`group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),Kt=V.forwardRef((e,t)=>{let n=(0,H.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,variant:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]!==r||n[5]!==a?(o=I(Gt({variant:a}),r),n[4]=r,n[5]=a,n[6]=o):o=n[6];let s;return n[7]!==i||n[8]!==t||n[9]!==o?(s=(0,U.jsx)(Rt,{ref:t,className:o,...i}),n[7]=i,n[8]=t,n[9]=o,n[10]=s):s=n[10],s});Kt.displayName=Rt.displayName;var qt=V.forwardRef((e,t)=>{let n=(0,H.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=I(`inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive`,s.body,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Vt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qt.displayName=Vt.displayName;var Jt=V.forwardRef((e,t)=>{let n=(0,H.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=I(`absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,U.jsx)(oe,{className:`h-4 w-4`}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,U.jsx)(Ht,{ref:t,className:a,"toast-close":``,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});Jt.displayName=Ht.displayName;var Yt=V.forwardRef((e,t)=>{let n=(0,H.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=I(s.dialogTitle,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(zt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Yt.displayName=zt.displayName;var Xt=V.forwardRef((e,t)=>{let n=(0,H.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=I(s.body,`opacity-90 text-muted-foreground group-[.destructive]:text-destructive-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Bt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xt.displayName=Bt.displayName;function Zt(e){return(e?.match(/Removing (.+?)\.\.\./))?.[1]?.trim()||void 0}function Qt(e,t){let n=Zt(t),r=e.trim().toLowerCase();return g(e)&&n?{summary:`The connection dropped while Tarsk was deleting files on disk.`,cause:`Removing a large folder can take longer than the browser keeps the progress stream open. WebKit reports this as "Load failed" even though deletion may still be running or may already have finished on the server.`,guidance:[`Refresh the project list and check whether the thread is gone.`,`If the thread is still listed, try deleting again or remove the folder manually: ${n}`],removingPath:n}:g(e)?{summary:`The connection to Tarsk was lost during deletion.`,cause:`The progress stream closed before the server reported completion. This is usually a browser or network timeout, not a message from the delete operation itself.`,guidance:[`Refresh the project list and check whether the thread was removed.`,`Try deleting the thread again if it is still listed.`]}:r.includes(`not found`)?{summary:`Tarsk could not find that thread.`,cause:`The thread may have already been deleted in another window or by a previous attempt.`,guidance:[`Refresh the project list.`,`If the thread is gone, no further action is needed.`]}:r.includes(`failed to remove`)||r.includes(`eperm`)||r.includes(`ebusy`)?{summary:`Tarsk could not remove the thread folder from disk.`,cause:e,guidance:[n?`Close any apps using files in ${n}, then try again.`:`Close any apps using files in the thread folder, then try again.`,`If deletion keeps failing, remove the folder manually and refresh the project list.`],removingPath:n}:{summary:e||`Thread deletion failed for an unknown reason.`,cause:`See the progress output below for where deletion stopped.`,guidance:[`Try deleting the thread again.`,`If the problem persists, check Settings > Logs for details.`],removingPath:n}}function $t(e,t){return[`Thread deletion failed (${e})`,t.summary,`Cause: ${t.cause}`,`What to do: ${t.guidance.join(` `)}`].join(`
2
- `)}function en(e){return typeof e==`string`&&e.trim().length>0}function Q(e,t){let n=e[t];return en(n)?n:void 0}function tn(e,t){let n=Q(e,`stdout`);n!==void 0&&(t.stdout=n);let r=Q(e,`stderr`);r!==void 0&&(t.stderr=r)}function nn(e,t){let n=e.error;if(en(n)){t.details=n;return}if(!n||typeof n!=`object`)return;let r=n,i=Q(r,`message`);if(i!==void 0&&(t.details=i),t.stdout===void 0){let e=Q(r,`stdout`);e!==void 0&&(t.stdout=e)}if(t.stderr===void 0){let e=Q(r,`stderr`);e!==void 0&&(t.stderr=e)}}function rn(e){if(!e||typeof e!=`object`)return{};let t=e,n={};return tn(t,n),en(t.details)?n.details=t.details:nn(t,n),n}function an(e,t,n){let r=crypto.randomUUID(),i=n.message.trim()||`Unknown error`,a=Qt(i,n.progressOutput),o=$t(r,a),s={errorId:r,message:i,summary:a.summary,cause:a.cause,guidance:a.guidance,removingPath:a.removingPath,projectId:n.projectId,threadId:n.threadId,threadTitle:n.threadTitle,output:n.progressOutput,stdout:n.stdout,stderr:n.stderr,details:n.details,...n.cause===void 0?{}:{rawError:n.cause}};return e.error(o,s),C({level:`ERROR`,context:`app.use-projects.hook`,message:o,data:s}),ye({variant:`destructive`,title:`Failed to delete thread`,description:`Error ID: ${r}\n${a.summary}`,action:(0,U.jsx)(qt,{altText:`Go to Logs`,onClick:()=>{t(`/settings/logs?q=${encodeURIComponent(r)}`)},children:`Go to Logs`})}),r}var on=150,$=c(`app.use-projects.hook`),sn=0;function cn(){let e=Promise.resolve(),t=new Map;function n(n,r,i){let a=t.get(r);if(a)return a;i.reserve(r);let o=(async()=>{let a=e,o=()=>void 0;e=new Promise(e=>{o=e}),await a;try{return await i.deleteThread(n,r)}finally{t.delete(r),i.release(r),o()}})();return t.set(r,o),o}return{runQueuedDeletion:n}}var ln=cn();function un(){let e=(0,H.c)(20),t=d(),n=f(mn),r=f(pn),i=f(fn),a,o;e[0]===i?(a=e[1],o=e[2]):(a=()=>{i>0&&w()},o=[i],e[0]=i,e[1]=a,e[2]=o),(0,V.useLayoutEffect)(a,o);let s=Ae(`projects:bootstrap:${i}`,h),c=(0,V.useRef)(!1),u;e[3]!==s.cloneRootPath||e[4]!==s.projects||e[5]!==t?(u=()=>{t({type:l.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath}),t({type:l.SetProjectsLoading,projectsLoading:!1}),k(t)},e[3]=s.cloneRootPath,e[4]=s.projects,e[5]=t,e[6]=u):u=e[6];let p;e[7]!==s||e[8]!==t?(p=[s,t],e[7]=s,e[8]=t,e[9]=p):p=e[9],(0,V.useLayoutEffect)(u,p);let m;e[10]!==s.projects||e[11]!==t||e[12]!==r||e[13]!==n?(m=()=>{if(!c.current){if(n||r){c.current=!0;return}for(let e of s.projects){let n=e.threads.find(dn);if(n){t({type:l.SelectThread,threadId:n.threadId,projectId:e.projectId}),t({type:l.OpenProjectPanel,projectId:e.projectId}),c.current=!0;break}}}},e[10]=s.projects,e[11]=t,e[12]=r,e[13]=n,e[14]=m):m=e[14];let g;return e[15]!==s||e[16]!==t||e[17]!==r||e[18]!==n?(g=[s,t,n,r],e[15]=s,e[16]=t,e[17]=r,e[18]=n,e[19]=g):g=e[19],(0,V.useLayoutEffect)(m,g),null}function dn(e){return e.isSelected}function fn(e){return e.configUpdatedAt}function pn(e){return e.selectedProjectId}function mn(e){return e.selectedThreadId}async function hn(e,t){let{dispatch:n,toast:r,refreshProjects:i,onProjectCreated:a,setPendingSetupScriptConfirmation:o,activeCreationControllerRef:s}=t;n({type:l.SetCreatingProject,isCreating:!0});let c=new AbortController;s.current=c;let u={current:null},d=``,f=!1,p=[],m=null;function g(){if(m&&=(clearTimeout(m),null),p.length===0)return;let e=p.join(``);p.length=0;let t=u.current;t&&N(n,t.toolCallId,t.threadId,e)}function _(e){if(!e)return;let t=`${e}\n`;d+=t,p.push(t),m||=setTimeout(g,on)}let v=null,y=!1,b=null,x=null;function S(t,r){y=!0,b=t,x=r,n({type:l.AddCreatingProject,projectId:t,threadId:r,projectName:e.optimisticProjectName,gitUrl:e.gitUrl??``,projectType:e.projectType}),n({type:l.AddProcessingThread,threadId:r}),a?.(t);let i=te({mode:e.mode,threadId:r,projectId:t,projectName:e.optimisticProjectName});u.current=i,O(n,i,`${e.initialMessage}\n`)}function C(){y&&b&&(n({type:l.RemoveCreatingProject,projectId:b}),x&&n({type:l.RemoveProcessingThread,threadId:x}))}function T(e){!y&&typeof e.threadId==`string`&&typeof e.projectId==`string`&&S(e.projectId,e.threadId),_(typeof e.message==`string`?e.message:``)}function E(t){f=!0;let n=t.project;if(n){if(v=n.id,_(`Project created successfully at: ${e.includeThreadPath&&n.threads&&n.threads.length>0?`${n.path}/${n.threads[0]}`:n.path}`),u.current&&e.mode===`folder`){let t=n.path.split(/[/\\]/).filter(Boolean).pop();t&&t!==e.optimisticProjectName&&(u.current={...u.current,projectName:t})}e.handleSetupScript&&typeof t.suggestedSetupScript==`string`&&o({projectId:n.id,scripts:Le(t.suggestedSetupScript,n.pendingSetupScripts)})}}function D(e){let t=typeof e.message==`string`?e.message:`Unknown error`;C(),_(`Error: ${t}`),u.current||r({title:`Project Creation Failed`,description:t,variant:`destructive`})}function k(t){if(!t||typeof t!=`object`)return;let r=t;try{if(r.type===`progress`)T(r);else if(r.type===`complete`)n({type:l.SetGitAuthRequest,request:null}),E(r);else if(r.type===`error`)n({type:l.SetGitAuthRequest,request:null}),D(r);else if(r.type===`auth_required`){let e=r.auth;e&&n({type:l.SetGitAuthRequest,request:e})}}catch(t){$.error(`Failed to parse ${e.logTag} event`,t)}}async function A(e){if(!v)return;let t=e.projects.find(e=>e.projectId===v);if(t&&t.threads.length>0){let e=t.threads[0].threadId;u.current?.threadId===e?n({type:l.FocusChatInput}):n({type:l.SelectThread,threadId:e,projectId:v,focusInput:!0})}a?.(v)}async function j(){g(),n({type:l.SetCreatingProject,isCreating:!1});let e=u.current;e&&(P(n,e,d,{isError:!f}),n({type:l.RemoveProcessingThread,threadId:e.threadId})),w();let t=await h();n({type:l.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),n({type:l.SetProjectsLoading,projectsLoading:!1}),await A(t)}function M(t){$.error(`Failed to ${e.logTag}:`,t);let i=t instanceof Error&&t.name===`AbortError`;g(),n({type:l.SetCreatingProject,isCreating:!1});let a=u.current;if(i){f||C(),a&&(n({type:l.RemoveProcessingThread,threadId:a.threadId}),n({type:l.ClearToolCallProgress,toolCallId:a.toolCallId}));return}let o=`${e.catchErrorPrefix}: ${t instanceof Error?t.message:`Unknown error`}`;a?(_(o),P(n,a,d,{isError:!0}),n({type:l.RemoveProcessingThread,threadId:a.threadId})):r({title:`Project Creation Failed`,description:o,variant:`destructive`})}try{let t=await e.apiCall(c.signal);if(!t){g(),s.current=null,n({type:l.SetCreatingProject,isCreating:!1}),await i();return}await ee(t,k),await j()}catch(e){M(e)}finally{s.current===c&&(s.current=null),n({type:l.SetGitAuthRequest,request:null})}}function gn(e){let t=d(),n=f(e=>e.projects),r=f(e=>e.selectedProjectId),i=f(e=>e.selectedThreadId),{toast:s}=ve(),c=o(),p=a(),[m,v]=(0,V.useState)(null),y=(0,V.useRef)(null),b=(0,V.useCallback)(async()=>{let e=++sn;try{t({type:l.SetProjectsLoading,projectsLoading:!0}),w(),ke(`projects:bootstrap:`);let n=await h();return e===sn?(t({type:l.SetProjects,projects:n.projects,cloneRootPath:n.cloneRootPath}),k(t),n.projects):n.projects}catch(e){return $.error(`Failed to refresh projects:`,e),[]}finally{e===sn&&t({type:l.SetProjectsLoading,projectsLoading:!1})}},[t]),x=(0,V.useCallback)(async()=>{let e=await b();if(t({type:l.ConfigUpdated}),!r||!i)return e;let n=e.find(e=>e.projectId===r);return n?(n.threads.some(e=>e.threadId===i)||(t({type:l.ClearThreadCreationSummary,threadId:i}),t(je(r,i,n.threads))),e):(t({type:l.ClearSelection}),e)},[t,b,r,i]),S=u(),C=(0,V.useCallback)((e,n)=>{let{selectedThreadId:r,selectedProjectId:i}=S.getState();(r!==n||i!==e)&&t({type:l.SelectThread,threadId:n,projectId:e}),t({type:l.ClearUnreadAutomatedChat,threadId:n}),D(e,n).catch(e=>{$.error(`Failed to select thread:`,e)})},[t,S]),{handleCreateProject:T,cancelProjectCreation:E,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleCreateThread:F,handleOpenFolder:I,handleOpenPath:ie}=$e({consumeProjectStream:(0,V.useCallback)(async n=>{await hn(n,{dispatch:t,toast:s,refreshProjects:b,onProjectCreated:e?.onProjectCreated,setPendingSetupScriptConfirmation:v,activeCreationControllerRef:y})},[t,b,e?.onProjectCreated,s]),activeCreationControllerRef:y,projects:n,dispatch:t,toast:s,refreshProjects:b,onThreadCreateStart:e?.onThreadCreateStart}),L=(0,V.useCallback)(async(e,r)=>{t({type:l.AddDeletingThread,threadId:r}),t({type:l.ClearChatInputDraft,threadId:r});let i=n.find(t=>t.projectId===e),a=i?re(i):`project`,o=i?.threads.find(e=>e.threadId===r)?.title??`thread`,s=S.getState().selectedThreadId===r?A({threadId:r,projectId:e,projectName:a}):null,u=``,d=!0;function f(e){e.trim()&&(u+=`${e}\n`,s&&N(t,s.toolCallId,s.threadId,`${e}\n`))}function p(e){s&&P(t,s,u,{isError:e})}function m(){let n=je(e,r,i?.threads??[]);if(n.type===l.SelectThread){C(n.projectId,n.threadId);return}t(n)}function h(){let n=S.getState().selectedThreadId===r;t({type:l.RemoveThread,projectId:e,threadId:r}),n&&m()}async function v(e){await b(),e&&t({type:l.ConfigUpdated})}s&&j(t,s,`Deleting thread "${o}"...\n`);try{let n=await _(e,r);return n&&await ee(n,t=>{if(!t||typeof t!=`object`)return;let n=t;if(n.type===`progress`)f(typeof n.message==`string`?n.message:``);else if(n.type===`error`){let t=typeof n.message==`string`?n.message:`Unknown error`,i=rn(n);f(`Error: ${t}`),an($,c,{projectId:e,threadId:r,threadTitle:o,message:t,progressOutput:u,...i}),d=!1}}),p(!d),d&&(t({type:l.ClearThreadCreationSummary,threadId:r}),h()),await v(!0),d}catch(t){let n=t instanceof Error?t.message:`Unknown error`,i=rn(t);return g(n)?(f(`Deletion is still running on the server. Open Workspaces to refresh the list.`),p(!1),$.info(`Thread deletion stream disconnected before completion`,{projectId:e,threadId:r,message:n,...i}),!1):n.toLowerCase().includes(`not found`)?(h(),await v(!1),!0):(f(`Error: ${n}`),p(!0),an($,c,{projectId:e,threadId:r,threadTitle:o,message:n,progressOutput:u,cause:t,...i}),!1)}finally{t({type:l.RemoveDeletingThread,threadId:r})}},[C,b,t,c,n,S]),{confirmDeleteProject:ae,resolveSetupScriptConfirmation:oe}=Qe({dispatch:t,projects:n,refreshProjects:b,navigate:c,location:p,pendingSetupScriptConfirmation:m,setPendingSetupScriptConfirmation:v});return{projects:n,selectedProjectId:r,selectedThreadId:i,refreshProjects:b,refreshWorkspaces:x,handleSelectThread:C,handleCreateProject:T,cancelProjectCreation:E,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleOpenFolder:I,handleOpenPath:ie,handleCreateThread:F,handleDeleteThread:(0,V.useCallback)(async(e,n)=>ln.runQueuedDeletion(e,n,{reserve(e){t({type:l.AddDeletingThread,threadId:e})},release(e){t({type:l.RemoveDeletingThread,threadId:e})},deleteThread:L}),[t,L]),confirmDeleteProject:ae,pendingSetupScriptConfirmation:m,resolveSetupScriptConfirmation:oe}}export{Jt as a,Yt as c,Ie as d,Fe as f,qt as i,Wt as l,gn as n,Xt as o,Kt as r,Ut as s,un as t,Re as u};