tarsk 0.5.74 → 0.5.76

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 (167) hide show
  1. package/dist/bundled-skills/skill-creator/scripts/__tests__/quick_validate.test.js +79 -0
  2. package/dist/bundled-skills/skill-creator/scripts/quick_validate.js +78 -65
  3. package/dist/index.js +21828 -13103
  4. package/dist/jelly.webp +0 -0
  5. package/dist/public/assets/account-view-CWtpznW2.js +1 -0
  6. package/dist/public/assets/alert-dialog-BxMfaLuO.js +7 -0
  7. package/dist/public/assets/api-DX1ny6q-.js +2 -0
  8. package/dist/public/assets/async-error-boundary-BX1G17o9.js +1 -0
  9. package/dist/public/assets/async-loading-fallback-V0EaQ_Kn.js +1 -0
  10. package/dist/public/assets/browser-tab-D_5MLhxE.js +12 -0
  11. package/dist/public/assets/button-kWtLAMpB.js +1 -0
  12. package/dist/public/assets/card-B_EASkic.js +1 -0
  13. package/dist/public/assets/chat-dock-context-8K8Ikjgy.js +1 -0
  14. package/dist/public/assets/commit-dialog-CSXPoomw.js +1 -0
  15. package/dist/public/assets/commit-error-dialog-CdcGI69P.js +1 -0
  16. package/dist/public/assets/commit-method-fields-BtEHb0_G.js +1 -0
  17. package/dist/public/assets/context-menu-BcM6I0Sx.js +1 -0
  18. package/dist/public/assets/conversation-history-view-CuzU9qF6.js +1 -0
  19. package/dist/public/assets/create-project-dialog-a6Wgq-Z8.js +2 -0
  20. package/dist/public/assets/create-project-workspace-Dv_lEfZx.js +2 -0
  21. package/dist/public/assets/create-repo-dialog-BTIQ5Nw4.js +1 -0
  22. package/dist/public/assets/{delete-confirm-dialog-3DX1u0Dg.js → delete-confirm-dialog-Dl76vaxb.js} +1 -1
  23. package/dist/public/assets/diff-view-DA1uT9tc.js +4 -0
  24. package/dist/public/assets/dist-C2G92uPn.js +1 -0
  25. package/dist/public/assets/dist-CHhgoHp6.js +1 -0
  26. package/dist/public/assets/dist-CTLFS4dn.js +2 -0
  27. package/dist/public/assets/dist-D-2G8xGB.js +5 -0
  28. package/dist/public/assets/dist-DD4GtbiM.js +1 -0
  29. package/dist/public/assets/{dist-rO95BjzU.js → dist-DoxvnNEY.js} +1 -1
  30. package/dist/public/assets/dist-DsmF-KJ-.js +1 -0
  31. package/dist/public/assets/dist-c_QADQ5u.js +1 -0
  32. package/dist/public/assets/dist-yM5kyz9Q.js +1 -0
  33. package/dist/public/assets/es2015-BlPKkFZZ.js +41 -0
  34. package/dist/public/assets/explorer-monaco-editor-BdZ_bBqh.js +1 -0
  35. package/dist/public/assets/explorer-tab-view-CewTYYOm.js +2 -0
  36. package/dist/public/assets/explorer-tree-C0VDhihz.js +1 -0
  37. package/dist/public/assets/explorer-view-RCfDm3p5.js +76 -0
  38. package/dist/public/assets/git-history-dialog-DL0Trxiz.js +1 -0
  39. package/dist/public/assets/index-B3-5kIOf.js +3658 -0
  40. package/dist/public/assets/index-BLNUy5nZ.css +1 -0
  41. package/dist/public/assets/merged-pr-dialog-BzND8nzx.js +1 -0
  42. package/dist/public/assets/model-list-controls-I67L2x3H.js +1 -0
  43. package/dist/public/assets/onboarding-dialog-DY8v11hv.js +1 -0
  44. package/dist/public/assets/project-coding-view-DxOwsjtt.js +1 -0
  45. package/dist/public/assets/project-danger-zone-view-CkvKOQrl.js +1 -0
  46. package/dist/public/assets/project-env-vars-view-DYLWA7s0.js +1 -0
  47. package/dist/public/assets/project-model-aliases-view-DWu9khLA.js +1 -0
  48. package/dist/public/assets/project-settings-view-DJfmaWn6.js +1 -0
  49. package/dist/public/assets/project-tools-view-BEjBkghz.js +1 -0
  50. package/dist/public/assets/providers-list-view-jMEPJCci.js +1 -0
  51. package/dist/public/assets/pull-request-dialog-B_JCqT53.js +1 -0
  52. package/dist/public/assets/pull-with-changes-dialog-V3_km2zQ.js +1 -0
  53. package/dist/public/assets/push-before-pr-dialog-CarrD3y2.js +1 -0
  54. package/dist/public/assets/radio-group-Dn_pN-pn.js +1 -0
  55. package/dist/public/assets/scroll-area-lkVMElz5.js +1 -0
  56. package/dist/public/assets/settings-general-view-BhrfHGfQ.js +1 -0
  57. package/dist/public/assets/settings-list-DiiYzOxn.js +1 -0
  58. package/dist/public/assets/settings-logs-view-DbKM1SNk.js +5 -0
  59. package/dist/public/assets/settings-mcp-servers-view-4FpPIeYV.js +5 -0
  60. package/dist/public/assets/settings-models-view-CJVeo9ad.js +1 -0
  61. package/dist/public/assets/settings-skills-view-DoRPGbHG.js +3 -0
  62. package/dist/public/assets/settings-slack-view-Cc1NgVkx.js +1 -0
  63. package/dist/public/assets/settings-slash-commands-view-CmlWqqmi.js +1 -0
  64. package/dist/public/assets/settings-statistics-view-DRuyEbcN.js +1 -0
  65. package/dist/public/assets/settings-storage-view-DihbtUYb.js +1 -0
  66. package/dist/public/assets/settings-subagents-view-B2RvxDZI.js +2 -0
  67. package/dist/public/assets/settings-system-prompt-view-CvVbgjNN.js +1 -0
  68. package/dist/public/assets/settings-view-CPUAjTMa.js +2 -0
  69. package/dist/public/assets/slug-utils-CQ8PMWUL.js +1 -0
  70. package/dist/public/assets/store-BSzKIu5G.js +9 -0
  71. package/dist/public/assets/suspense-resource-BFrb_XJX.js +1 -0
  72. package/dist/public/assets/table-A3cgauiZ.js +1 -0
  73. package/dist/public/assets/tasks-view-CvFFLPeD.js +1 -0
  74. package/dist/public/assets/{terminal-panel-DHDoOXAH.js → terminal-panel-DIh6it7K.js} +3 -3
  75. package/dist/public/assets/toggle-group-Q36wRGKA.js +1 -0
  76. package/dist/public/assets/tooltip-Db8UeYxm.js +1 -0
  77. package/dist/public/assets/{use-active-dock-panel-instance-cO_DR87G.js → use-active-dock-panel-instance-DRfRj6MV.js} +1 -1
  78. package/dist/public/assets/use-installed-ai-files-C8nNWGC7.js +1 -0
  79. package/dist/public/assets/{use-suspense-resource-Dkz6ddFN.js → use-suspense-resource-Dakt9lfT.js} +1 -1
  80. package/dist/public/assets/useBaseQuery-34f0-SVd.js +1 -0
  81. package/dist/public/assets/{web-C7jr0n2X.js → web-Bn9n5e7r.js} +1 -1
  82. package/dist/public/assets/{web-D0nlJHDu.js → web-C2KGFouM.js} +1 -1
  83. package/dist/public/assets/{web-jJ1krOD-.js → web-Dk3GAfTy.js} +1 -1
  84. package/dist/public/assets/{web-DPW3m0cL.js → web-DycfRH4j.js} +1 -1
  85. package/dist/public/browser-preview-rpc.js +107 -82
  86. package/dist/public/index.html +26 -33
  87. package/dist/recommended-models.txt +2 -2
  88. package/package.json +6 -6
  89. package/dist/public/assets/Combination-BdvBzSm4.js +0 -41
  90. package/dist/public/assets/account-view-c-UG0JKH.js +0 -1
  91. package/dist/public/assets/alert-dialog-DAHkynVZ.js +0 -7
  92. package/dist/public/assets/api-D1GxdEEp.js +0 -2
  93. package/dist/public/assets/async-error-boundary-DNJqC4BV.js +0 -1
  94. package/dist/public/assets/async-loading-fallback-D2X0o4Qa.js +0 -1
  95. package/dist/public/assets/browser-tab-BKQJKTg8.js +0 -12
  96. package/dist/public/assets/button-B6HDsfd5.js +0 -1
  97. package/dist/public/assets/card-DZGd45nw.js +0 -1
  98. package/dist/public/assets/chat-dock-context-8_5G30KG.js +0 -1
  99. package/dist/public/assets/commit-dialog-OQFa4W6i.js +0 -1
  100. package/dist/public/assets/commit-error-dialog-BFByxoUG.js +0 -1
  101. package/dist/public/assets/commit-method-fields-BihSf23f.js +0 -1
  102. package/dist/public/assets/context-menu-e5jeH0Jl.js +0 -1
  103. package/dist/public/assets/conversation-history-view-BUlO9oJ6.js +0 -1
  104. package/dist/public/assets/create-project-dialog-CY5wIGQV.js +0 -2
  105. package/dist/public/assets/create-project-workspace-ClILToZd.js +0 -1
  106. package/dist/public/assets/create-repo-dialog-CKUQoOaX.js +0 -1
  107. package/dist/public/assets/dialog--0foS3aw.js +0 -1
  108. package/dist/public/assets/diff-view-DLPu21IR.js +0 -4
  109. package/dist/public/assets/dist-Bxyh1Ml_.js +0 -1
  110. package/dist/public/assets/dist-CFXDhuA_.js +0 -5
  111. package/dist/public/assets/dist-CNOCRPxn.js +0 -1
  112. package/dist/public/assets/dist-Cda_ffeR.js +0 -1
  113. package/dist/public/assets/dist-CkQILg8A.js +0 -1
  114. package/dist/public/assets/dist-CqGsum35.js +0 -1
  115. package/dist/public/assets/dist-DjiNKpTV.js +0 -2
  116. package/dist/public/assets/dist-eMdiO0P3.js +0 -1
  117. package/dist/public/assets/explorer-tab-view-nzl0M0Vm.js +0 -2
  118. package/dist/public/assets/explorer-tree-Bkb6dzmf.js +0 -1
  119. package/dist/public/assets/explorer-view-NcArt0_H.js +0 -75
  120. package/dist/public/assets/git-history-dialog-rWkjoaR5.js +0 -1
  121. package/dist/public/assets/index-BOB3ZUQs.js +0 -3386
  122. package/dist/public/assets/index-BdGMz8sL.css +0 -1
  123. package/dist/public/assets/markdown-renderer-BkKibNMs.js +0 -8
  124. package/dist/public/assets/mcp-server-card-DFT7uyRh.js +0 -1
  125. package/dist/public/assets/merged-pr-dialog-BOrFaYk6.js +0 -1
  126. package/dist/public/assets/model-list-controls-CpQjn6i7.js +0 -1
  127. package/dist/public/assets/ndjson-stream-DeGpE5o5.js +0 -2
  128. package/dist/public/assets/onboarding-dialog-HJpyzVWa.js +0 -1
  129. package/dist/public/assets/project-env-vars-view-C9VTTfTo.js +0 -1
  130. package/dist/public/assets/project-model-aliases-view-DKRoV7Gc.js +0 -1
  131. package/dist/public/assets/project-settings-view-BDYqpibk.js +0 -1
  132. package/dist/public/assets/project-tools-view-9WUc4Yca.js +0 -1
  133. package/dist/public/assets/providers-list-view-BgvIWP_0.js +0 -1
  134. package/dist/public/assets/pull-request-dialog-BM1dkFpK.js +0 -1
  135. package/dist/public/assets/pull-with-changes-dialog-Bjl_esir.js +0 -1
  136. package/dist/public/assets/push-before-pr-dialog-Cbc_zaI8.js +0 -1
  137. package/dist/public/assets/query-keys-5QPW6Dv-.js +0 -1
  138. package/dist/public/assets/radio-group-CMW5ku-w.js +0 -1
  139. package/dist/public/assets/scenic-chrome-CbN3vum7.js +0 -1
  140. package/dist/public/assets/scroll-area-BMQFeWmq.js +0 -1
  141. package/dist/public/assets/settings-general-view-BaMVw6kD.js +0 -1
  142. package/dist/public/assets/settings-instructions-view-BRE87H2U.js +0 -1
  143. package/dist/public/assets/settings-list-BpPbGcpS.js +0 -1
  144. package/dist/public/assets/settings-logs-view-Bbue8ZOn.js +0 -5
  145. package/dist/public/assets/settings-mcp-servers-view-BiMCy8sH.js +0 -5
  146. package/dist/public/assets/settings-models-view-BkZtGcUP.js +0 -1
  147. package/dist/public/assets/settings-rules-view-TK7LEC-0.js +0 -8
  148. package/dist/public/assets/settings-skills-view-Bv9Kn55r.js +0 -3
  149. package/dist/public/assets/settings-slack-view-Dy2bFJqU.js +0 -1
  150. package/dist/public/assets/settings-slash-commands-view-DiR1IyMF.js +0 -1
  151. package/dist/public/assets/settings-statistics-view-DX1UVeCJ.js +0 -1
  152. package/dist/public/assets/settings-storage-view-D8tHP8XT.js +0 -1
  153. package/dist/public/assets/settings-subagents-view-Bz7jBhbB.js +0 -2
  154. package/dist/public/assets/settings-system-prompt-view-VHGAqfQk.js +0 -1
  155. package/dist/public/assets/settings-view-QBOhYAyv.js +0 -2
  156. package/dist/public/assets/skeleton-DvLd14RU.js +0 -1
  157. package/dist/public/assets/store-CHF6tOp2.js +0 -9
  158. package/dist/public/assets/suspense-resource-DnYnmTbs.js +0 -1
  159. package/dist/public/assets/switch-P5m18oUl.js +0 -1
  160. package/dist/public/assets/table-MUx4ZxvS.js +0 -1
  161. package/dist/public/assets/tasks-view-l00Nc2fV.js +0 -2
  162. package/dist/public/assets/toggle-group-DMR7z3pz.js +0 -1
  163. package/dist/public/assets/tooltip-BtJG5fZl.js +0 -1
  164. package/dist/public/assets/use-installed-ai-files-CJr_PVcY.js +0 -1
  165. package/dist/public/assets/use-open-chat-dock-panel-B31lwcQF.js +0 -1
  166. package/dist/public/assets/useInfiniteQuery-DUeUxDcu.js +0 -1
  167. package/dist/public/assets/utils-CT-Dw22R.js +0 -1
@@ -1,3 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{t as i}from"./markdown-renderer-BkKibNMs.js";import{ot as a,w as o}from"./dist-DjiNKpTV.js";import{r as s}from"./store-CHF6tOp2.js";import{An as c,At as l,Et as u,ot as d,qt as f,rt as p,st as m,un as h,x as g}from"./dist-CNOCRPxn.js";import{a as _,t as v}from"./utils-CT-Dw22R.js";import{t as y}from"./button-B6HDsfd5.js";import{$n as b,$r as x,Ii as S,Jn as C,Kn as w,Ni as T,Qr as E,T as D,Xt as O,Zn as k,_i as A,ar as j,bn as M,er as N,ir as ee,mi as te,nr as ne,qn as P,si as F,tr as I}from"./api-D1GxdEEp.js";import{i as re,n as ie,r as ae,t as oe}from"./tooltip-BtJG5fZl.js";import{n as L}from"./async-loading-fallback-D2X0o4Qa.js";import{t as R}from"./use-toast-xpb5jNtN.js";import{a as z,i as B,o as V,r as H,s as U,t as W}from"./dialog--0foS3aw.js";import{a as se,c as ce,i as le,n as ue,o as de,r as fe,s as pe,t as me}from"./alert-dialog-DAHkynVZ.js";import{At as he,Ft as G,In as ge,It as K,Ln as q,Mn as _e,Nt as ve,On as ye,Ot as be,Pn as xe,Pt as Se,Tn as Ce,Un as we,X as Te,a as Ee,bn as De,jn as Oe,jt as ke,kn as J,kt as Ae,vn as je,xn as Y,yn as Me,zn as Ne}from"./index-BOB3ZUQs.js";import{t as Pe}from"./delete-confirm-dialog-3DX1u0Dg.js";import{t as Fe}from"./use-settings-page-loading-BTySlInF.js";import{a as Ie,i as Le,o as Re,r as ze}from"./settings-list-BpPbGcpS.js";import{t as Be}from"./use-deferred-search-Dgxosq55.js";import{a as Ve,i as He,n as Ue,r as We,t as Ge}from"./mcp-server-card-DFT7uyRh.js";import{t as Ke}from"./use-installed-ai-files-CJr_PVcY.js";var X=t(),Z=e(n(),1),Q=r();function qe({threadId:e,onSkillCreated:t}){let[n,r]=(0,Z.useState)(``),[i,o]=(0,Z.useState)(``),[s,c]=(0,Z.useState)(!1),l=He(n),u=We(l),d=async()=>{if(!(!u||!i.trim()||!e)){c(!0);try{let n=await D(e,l,i.trim());R({title:`Skill created`,description:`Skill '${l}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{c(!1)}}};return e?(0,Q.jsx)(Oe,{children:(0,Q.jsxs)(je,{children:[(0,Q.jsx)(Y,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(Me,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,Q.jsx)(K,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,Q.jsxs)(`p`,{className:v(a.caption,`mt-2`),children:[`Folder name: `,(0,Q.jsx)(`span`,{className:`font-mono`,children:l||`...`})]}):null]}),(0,Q.jsx)(Me,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,Q.jsx)(Te,{id:`skillDescription`,value:i,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:s})}),(0,Q.jsx)(Ve,{onContinue:()=>void d(),disabled:!u||!i.trim(),creating:s})]})]})}):(0,Q.jsx)(ye,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}function Je(e){let t=[`---`,`name: ${e.id}`,`description: ${e.description}`];return e.allowedTools&&t.push(`allowed-tools: ${e.allowedTools}`),e.license&&t.push(`license: ${e.license}`),t.push(`---`,``,e.instructions??``),t.join(`
2
- `)}function Ye(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function Xe(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function Ze(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function Qe({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:o}){let[s,c]=(0,Z.useState)([]),[l,u]=(0,Z.useState)(null),[d,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(null),[S,w]=(0,Z.useState)(!1),T=Ze(n,r),E=!!T;(0,Z.useEffect)(()=>{if(!e||!n)return;let t=n,i=Ze(t,r),a=!1;async function o(){h(!0),x(null),c([]),u(null),p(``);try{if(i){let e=await C(i,t.id);if(a)return;c(e.files),u(Xe(e.files))}else{if(a)return;c([`SKILL.md`]),u(`SKILL.md`),p(Je(t))}}catch(e){if(a)return;x(e instanceof Error?e.message:`Failed to load skill files`)}finally{a||h(!1)}}return o(),()=>{a=!0}},[e,n,r]),(0,Z.useEffect)(()=>{if(!e||!n||!l||!E||!T)return;let t=n,r=l,i=!1;async function a(){_(!0),x(null);try{let e=await P(T,t.id,r);if(i)return;p(e.content)}catch(e){if(i)return;x(e instanceof Error?e.message:`Failed to load file`),p(``)}finally{i||_(!1)}}return a(),()=>{i=!0}},[e,n,l,E,T]);let D=(0,Z.useCallback)(async()=>{if(!n)return;let e=T?{...n,sourceId:T}:n;w(!0);try{await o(e),t(!1)}finally{w(!1)}},[n,T,o,t]),O=m||E&&g,k=l?Ye(l):!1,A=(0,Z.useMemo)(()=>s.map(e=>(0,Q.jsxs)(be,{selected:e===l,onClick:()=>u(e),className:`gap-2 cursor-pointer`,children:[(0,Q.jsx)(f,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:v(a.caption,`truncate`),children:e})]},e)),[s,l]);return(0,Q.jsx)(W,{open:e,onOpenChange:t,children:(0,Q.jsxs)(H,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,Q.jsxs)(V,{className:`border-b border-border px-6 py-4`,children:[(0,Q.jsx)(U,{children:n?.name??`Review skill`}),n?.description?(0,Q.jsx)(B,{children:n.description}):null]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row`,children:[(0,Q.jsxs)(`div`,{className:`flex max-h-40 shrink-0 flex-col border-b border-border sm:max-h-none sm:w-56 sm:border-b-0 sm:border-r`,children:[(0,Q.jsx)(`div`,{className:v(a.labelMuted,`px-3 py-2`),children:`Files`}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:m?(0,Q.jsx)(L,{className:`py-8`,label:`Loading files...`}):s.length===0?(0,Q.jsx)(`p`,{className:v(a.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):A})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:b?(0,Q.jsx)(`p`,{className:v(a.body,`text-destructive`),children:b}):O?(0,Q.jsx)(L,{className:`py-12`,label:`Loading preview...`}):k?(0,Q.jsx)(i,{content:d,enableMermaid:!1}):(0,Q.jsx)(`pre`,{className:v(a.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:d})})]}),(0,Q.jsxs)(z,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,Q.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,Q.jsx)(y,{type:`button`,onClick:()=>void D(),disabled:S||!n,children:S?`Installing...`:`Install`})]})]})})}var $=new Map;function $e(e){let t=$.get(e);if(t)return t;let n=b(e).finally(()=>{$.delete(e)});return $.set(e,n),n}function et(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function tt(){let e=(0,X.c)(18),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,Z.useState)(t),[i,a]=(0,Z.useState)(te),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[1]=o):o=e[1];let[s,c]=(0,Z.useState)(o),[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(!1),p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=async()=>{try{r(await N())}catch{r([])}},e[2]=p):p=e[2];let m=p,h,g;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{(async function(){let e=F();if(e.length>0)try{await I(e),E()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,Z.useEffect)(h,g);let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{a(e),T(e)},e[5]=_):_=e[5];let v=_,y;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{r(t=>[...t.filter(t=>t.id!==e.id),e].sort(rt)),v(e.id)},e[6]=y):y=e[6];let b=y,C;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{r(t=>t.map(t=>t.id===e.id?e:t).sort(nt)),x(e.id)},e[7]=C):C=e[7];let w=C,D;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>{r(t=>t.filter(t=>t.id!==e)),x(e),a(t=>t===e?(T(`default`),`default`):t)},e[8]=D):D=e[8];let O=D,k,j;e[9]===i?(k=e[10],j=e[11]):(j=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=A(i);e?.skills?(c(et(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),$e(i).then(e=>{if(t)return;let n=et(i,e);c(n),S(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),R({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},k=[i],e[9]=i,e[10]=k,e[11]=j),(0,Z.useEffect)(j,k);let M;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(M={sources:n,selectedSourceId:i,setSelectedSourceId:v,addSource:b,updateSource:w,removeSource:O,reloadSources:m,catalogSkills:s,isLoadingCatalog:l,isRefreshingCatalog:d},e[12]=s,e[13]=l,e[14]=d,e[15]=i,e[16]=n,e[17]=M):M=e[17],M}function nt(e,t){return e.title.localeCompare(t.title)}function rt(e,t){return e.title.localeCompare(t.title)}function it({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:i,onSourceDeleted:o}){let[s,c]=(0,Z.useState)(``),[l,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),S=n!=null;function C(){c(``),d(``),p(null),h(!1),_(!1),x(!1)}function T(e){e||C(),t(e)}(0,Z.useEffect)(()=>{if(e){if(n){c(n.title),d(n.url),p(null);return}c(``),d(``),p(null)}},[e,n]);async function E(){let e=s.trim(),t=l.trim();if(!e||!t){p(`Title and URL are required.`);return}h(!0),p(null);try{if(S&&n){let r=await ee(n.id,e,t);i?.(r.source)}else r((await j(e,t)).source);T(!1)}catch(e){p(e instanceof Error?e.message:`Failed to verify skill source`)}finally{h(!1)}}async function D(){if(n){_(!0),p(null);try{await w(n.id),o?.(n.id),x(!1),T(!1)}catch(e){p(e instanceof Error?e.message:`Failed to delete skill source`),x(!1)}finally{_(!1)}}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(W,{open:e,onOpenChange:T,children:(0,Q.jsxs)(H,{className:`sm:max-w-lg`,children:[(0,Q.jsxs)(V,{children:[(0,Q.jsx)(U,{children:S?`Edit Skill Source`:`Add Skill Source`}),(0,Q.jsx)(B,{children:S?`Update the title or GitHub skills folder URL for this custom source.`:`Add a GitHub skills folder URL. The source is verified by loading at least one skill from the repository.`})]}),(0,Q.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,Q.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Q.jsx)(G,{htmlFor:`skill-source-title`,children:`Title`}),(0,Q.jsx)(K,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>c(e.target.value),disabled:m||g,autoFocus:!0})]}),(0,Q.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Q.jsx)(G,{htmlFor:`skill-source-url`,children:`URL`}),(0,Q.jsx)(K,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:l,onChange:e=>d(e.target.value),disabled:m||g})]}),f?(0,Q.jsx)(`p`,{className:v(a.caption,`text-destructive`),children:f}):null]}),(0,Q.jsxs)(z,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[S?(0,Q.jsx)(y,{type:`button`,variant:`destructive`,onClick:()=>x(!0),disabled:m||g,children:`Delete`}):(0,Q.jsx)(`div`,{className:`hidden sm:block`}),(0,Q.jsxs)(`div`,{className:`flex w-full flex-col-reverse gap-2 sm:w-auto sm:flex-row`,children:[(0,Q.jsx)(y,{variant:`outline`,onClick:()=>T(!1),disabled:m||g,children:`Cancel`}),(0,Q.jsx)(y,{onClick:()=>void E(),disabled:m||g||!s.trim()||!l.trim(),children:m?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):S?`Save Changes`:`Add Source`})]})]})]})}),(0,Q.jsx)(me,{open:b,onOpenChange:x,children:(0,Q.jsxs)(le,{children:[(0,Q.jsxs)(pe,{children:[(0,Q.jsx)(ce,{children:`Delete Skill Source`}),(0,Q.jsxs)(se,{children:[`Are you sure you want to delete "`,n?.title,`"? This removes the source from your list but does not uninstall skills you already added.`]})]}),(0,Q.jsxs)(de,{children:[(0,Q.jsx)(fe,{disabled:g,children:`Cancel`}),(0,Q.jsx)(ue,{onClick:()=>void D(),disabled:g,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:g?`Deleting...`:`Delete`})]})]})})]})}var at=`https://tarsk.io/skills/list/`;function ot(e){let t=(0,X.c)(20),{onSelectMode:n,manualDisabled:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(we,{asChild:!0,children:(0,Q.jsxs)(y,{className:`gap-1`,children:[`Add Skill`,(0,Q.jsx)(c,{className:`h-4 w-4 opacity-70`})]})}),t[0]=i):i=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=v(a.body,`gap-2`),t[1]=o):o=t[1];let s;t[2]===n?s=t[3]:(s=()=>n(`manual`),t[2]=n,t[3]=s);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(m,{className:`h-4 w-4 shrink-0`}),t[4]=u):u=t[4];let d;t[5]!==r||t[6]!==s?(d=(0,Q.jsxs)(q,{className:o,disabled:r,onSelect:s,children:[u,`Manually Enter`]}),t[5]=r,t[6]=s,t[7]=d):d=t[7];let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=v(a.body,`gap-2`),t[8]=f):f=t[8];let p;t[9]===n?p=t[10]:(p=()=>n(`url`),t[9]=n,t[10]=p);let g;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(l,{className:`h-4 w-4 shrink-0`}),t[11]=g):g=t[11];let _;t[12]===p?_=t[13]:(_=(0,Q.jsxs)(q,{className:f,onSelect:p,children:[g,`Via URL`]}),t[12]=p,t[13]=_);let b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(Ne,{}),t[14]=b):b=t[14];let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=v(a.body,`gap-2`),t[15]=x):x=t[15];let S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsxs)(q,{className:x,onSelect:st,children:[(0,Q.jsx)(h,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=S):S=t[16];let C;return t[17]!==d||t[18]!==_?(C=(0,Q.jsxs)(xe,{children:[i,(0,Q.jsxs)(ge,{align:`end`,className:`w-44`,children:[d,_,b,S]})]}),t[17]=d,t[18]=_,t[19]=C):C=t[19],C}function st(){O(at)}function ct(e){let t=e.trim();if(!t)return null;if(/^https?:\/\//i.test(t))try{return new URL(t),t}catch{return null}if(t.startsWith(`tarsk://`))try{let e=new URL(`https://tarsk.invalid/${t.slice(8)}`);if(e.pathname===`/skill-install`&&e.searchParams.get(`url`))return e.searchParams.get(`url`)}catch{return null}return null}function lt(e){let t=(0,X.c)(40),{open:n,onOpenChange:r,onSubmit:i}=e,[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(null),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=function(){s(``),l(null)},t[0]=u):u=t[0];let d=u,f;t[1]===r?f=t[2]:(f=function(e){e||d(),r(e)},t[1]=r,t[2]=f);let p=f,m,h;t[3]===n?(m=t[4],h=t[5]):(m=()=>{n&&d()},h=[n],t[3]=n,t[4]=m,t[5]=h),(0,Z.useEffect)(m,h);let g;t[6]!==p||t[7]!==i||t[8]!==o?(g=function(){let e=ct(o);if(!e){l(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}i(e),p(!1)},t[6]=p,t[7]=i,t[8]=o,t[9]=g):g=t[9];let _=g,b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsxs)(V,{children:[(0,Q.jsx)(U,{children:`Add Skill via URL`}),(0,Q.jsx)(B,{children:`Paste the URL of a plugin archive. Its skills and MCP servers are installed into this project.`})]}),t[10]=b):b=t[10];let x;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Q.jsx)(G,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=x):x=t[11];let S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>s(e.target.value),t[12]=S):S=t[12];let C;t[13]===_?C=t[14]:(C=e=>{e.key===`Enter`&&(e.preventDefault(),_())},t[13]=_,t[14]=C);let w;t[15]!==C||t[16]!==o?(w=(0,Q.jsx)(K,{id:`add-skill-url`,placeholder:`https://example.com/my-plugin.zip`,value:o,onChange:S,autoFocus:!0,onKeyDown:C}),t[15]=C,t[16]=o,t[17]=w):w=t[17];let T;t[18]===c?T=t[19]:(T=c?(0,Q.jsx)(`p`,{className:v(a.caption,`text-destructive`),children:c}):null,t[18]=c,t[19]=T);let E;t[20]!==w||t[21]!==T?(E=(0,Q.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,Q.jsxs)(`div`,{className:`grid gap-2`,children:[x,w,T]})}),t[20]=w,t[21]=T,t[22]=E):E=t[22];let D;t[23]===p?D=t[24]:(D=(0,Q.jsx)(y,{variant:`outline`,onClick:()=>p(!1),children:`Cancel`}),t[23]=p,t[24]=D);let O;t[25]===o?O=t[26]:(O=o.trim(),t[25]=o,t[26]=O);let k=!O,A;t[27]!==_||t[28]!==k?(A=(0,Q.jsx)(y,{onClick:_,disabled:k,children:`Continue`}),t[27]=_,t[28]=k,t[29]=A):A=t[29];let j;t[30]!==D||t[31]!==A?(j=(0,Q.jsxs)(z,{children:[D,A]}),t[30]=D,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==E||t[34]!==j?(M=(0,Q.jsxs)(H,{className:`sm:max-w-lg`,children:[b,E,j]}),t[33]=E,t[34]=j,t[35]=M):M=t[35];let N;return t[36]!==p||t[37]!==n||t[38]!==M?(N=(0,Q.jsx)(W,{open:n,onOpenChange:p,children:M}),t[36]=p,t[37]=n,t[38]=M,t[39]=N):N=t[39],N}function ut(e){let t=[];for(let n of e){if(n.path===`.agents/skills`&&n.type===`folder`&&n.children)for(let e of n.children)e.type===`folder`&&t.push(e);n.children&&n.children.length>0&&t.push(...ut(n.children))}return t}function dt(e){return`.agents/skills/${e}/SKILL.md`}function ft(e,t){let n=t.trim();if(!n)return e;let r=n.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r))}function pt(e){let t=(0,X.c)(9),{items:n,installedFilePaths:r,onPreview:i}=e,a;if(t[0]!==r||t[1]!==n||t[2]!==i){let e;t[4]!==r||t[5]!==i?(e=e=>{let t=dt(e.id),n=r.has(t);return(0,Q.jsx)(Ge,{className:`bg-background hover:bg-background`,name:Ue(e.name),description:e.description,installed:n,onClick:()=>{n||i(e)},showInstalledControls:!1},e.id)},t[4]=r,t[5]=i,t[6]=e):e=t[6],a=n.map(e),t[0]=r,t[1]=n,t[2]=i,t[3]=a}else a=t[3];let o;return t[7]===a?o=t[8]:(o=(0,Q.jsx)(Le,{children:a}),t[7]=a,t[8]=o),o}function mt(e){let t=(0,X.c)(21),{skills:n,threadId:r,onOpenSkill:i,onDelete:a,onAddManual:o,onAddUrl:s}=e,c=!r,l;t[0]!==o||t[1]!==s?(l=e=>{e===`manual`?o():s()},t[0]=o,t[1]=s,t[2]=l):l=t[2];let u;t[3]!==c||t[4]!==l?(u=(0,Q.jsx)(Y,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,Q.jsx)(ot,{manualDisabled:c,onSelectMode:l}),sticky:!1}),t[3]=c,t[4]=l,t[5]=u):u=t[5];let d;t[6]===r?d=t[7]:(d=!r&&(0,Q.jsx)(De,{children:`Select a thread to add or install skills.`}),t[6]=r,t[7]=d);let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f={icon:g,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=f):f=t[8];let p;t[9]===i?p=t[10]:(p=e=>i(e.path),t[9]=i,t[10]=p);let m;t[11]!==a||t[12]!==n||t[13]!==p?(m=(0,Q.jsx)(ze,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:f,getKey:vt,renderContent:_t,onItemClick:p,itemClickLabel:gt,onDelete:a,deleteAriaLabel:ht,deleteTooltip:`Remove this skill from the project`}),t[11]=a,t[12]=n,t[13]=p,t[14]=m):m=t[14];let h;t[15]!==d||t[16]!==m?(h=(0,Q.jsxs)(J,{className:`pt-6`,children:[d,m]}),t[15]=d,t[16]=m,t[17]=h):h=t[17];let _;return t[18]!==u||t[19]!==h?(_=(0,Q.jsxs)(_e,{className:`shrink-0`,children:[u,h]}),t[18]=u,t[19]=h,t[20]=_):_=t[20],_}function ht(e){return`Delete ${e.name}`}function gt(e){return`Open ${e.name} in Files`}function _t(e){return(0,Q.jsx)(`span`,{className:v(a.body,`truncate text-left`),children:e.name})}function vt(e){return e.id}function yt(e){let t=(0,X.c)(40),{availableSearch:n,onSearchChange:r,selectedSourceId:i,onSourceChange:a,sources:o,selectedCustomSource:s,availableCatalogLoading:c,isDefaultSource:l,filteredPopular:u,filteredCatalog:f,installedFilePaths:m,onPreviewPopular:h,onPreviewCatalog:g,onAddSource:_}=e,v;t[0]!==n||t[1]!==r?(v=(0,Q.jsx)(Re,{placeholder:`Search`,value:n,onChange:r,className:`mb-0 w-64`}),t[0]=n,t[1]=r,t[2]=v):v=t[2];let b;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(ve,{className:`w-40`,"aria-label":`Skill source`,children:(0,Q.jsx)(Se,{placeholder:`Default`})}),t[3]=b):b=t[3];let x;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Q.jsx)(ke,{value:`default`,children:`Default`}),t[4]=x):x=t[4];let S;t[5]===o?S=t[6]:(S=o.map(bt),t[5]=o,t[6]=S);let C;t[7]===S?C=t[8]:(C=(0,Q.jsxs)(he,{children:[x,S]}),t[7]=S,t[8]=C);let w;t[9]!==a||t[10]!==i||t[11]!==C?(w=(0,Q.jsxs)(Ae,{value:i,onValueChange:a,children:[b,C]}),t[9]=a,t[10]=i,t[11]=C,t[12]=w):w=t[12];let T=s?`Edit skill source`:`Add skill source`,E;t[13]===s?E=t[14]:(E=s?(0,Q.jsx)(d,{className:`h-4 w-4`}):(0,Q.jsx)(p,{className:`h-4 w-4`}),t[13]=s,t[14]=E);let D;t[15]!==_||t[16]!==T||t[17]!==E?(D=(0,Q.jsx)(re,{asChild:!0,children:(0,Q.jsx)(y,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:_,"aria-label":T,children:E})}),t[15]=_,t[16]=T,t[17]=E,t[18]=D):D=t[18];let O=s?`Edit this custom skill source`:`Add a custom skill source`,k;t[19]===O?k=t[20]:(k=(0,Q.jsx)(ie,{children:O}),t[19]=O,t[20]=k);let A;t[21]!==k||t[22]!==D?(A=(0,Q.jsx)(ae,{children:(0,Q.jsxs)(oe,{children:[D,k]})}),t[21]=k,t[22]=D,t[23]=A):A=t[23];let j;t[24]!==v||t[25]!==A||t[26]!==w?(j=(0,Q.jsx)(Y,{title:`Available Skills`,description:`Browse and install skills from the catalog.`,action:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[v,w,A]}),sticky:!1}),t[24]=v,t[25]=A,t[26]=w,t[27]=j):j=t[27];let M;t[28]!==c||t[29]!==n||t[30]!==f||t[31]!==u||t[32]!==m||t[33]!==l||t[34]!==g||t[35]!==h?(M=(0,Q.jsx)(J,{className:`pt-6`,children:c?(0,Q.jsx)(L,{className:`py-12`,label:`Loading skills...`}):l?u.length===0?(0,Q.jsx)(Ie,{searchQuery:n,emptyLabel:`No available skills found.`}):(0,Q.jsx)(pt,{items:u,installedFilePaths:m,onPreview:h}):f.length===0?(0,Q.jsx)(Ie,{searchQuery:n,emptyLabel:`No available skills found.`}):(0,Q.jsx)(pt,{items:f,installedFilePaths:m,onPreview:g})}),t[28]=c,t[29]=n,t[30]=f,t[31]=u,t[32]=m,t[33]=l,t[34]=g,t[35]=h,t[36]=M):M=t[36];let N;return t[37]!==j||t[38]!==M?(N=(0,Q.jsxs)(_e,{className:`shrink-0`,children:[j,M]}),t[37]=j,t[38]=M,t[39]=N):N=t[39],N}function bt(e){return(0,Q.jsx)(ke,{value:e.id,children:e.title},e.id)}function xt(){let{selectedProjectId:e,selectedThreadId:t,items:n,loading:r,deleteConfirm:i,setDeleteConfirm:a,deleting:c,installedFilePaths:l,setInstalledFilePaths:u,loadItems:d,handleDelete:f,handleOpenInExplorer:p,triggerExplorerRefresh:m}=Ke({findItems:ut,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`}),h=s(e=>e.projects),g=(0,Z.useMemo)(()=>h.find(t=>t.projectId===e)??null,[h,e]),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),[w,T]=(0,Z.useState)([]),[E,D]=(0,Z.useState)(!0),[O,A]=(0,Z.useState)(null),[j,N]=(0,Z.useState)(!1),{query:ee,setQuery:te,deferredQuery:P}=Be(),{sources:F,selectedSourceId:I,setSelectedSourceId:re,addSource:ie,updateSource:ae,removeSource:oe,catalogSkills:L,isLoadingCatalog:z}=tt(),B=I==="default",V=(0,Z.useMemo)(()=>o(I)?F.find(e=>e.id===I)??null:null,[I,F]);(0,Z.useEffect)(()=>{D(!0),k().then(T).catch(()=>T([])).finally(()=>D(!1))},[]);let U=Fe(e?`${e}:${t??``}`:null,[r,E]),se=(0,Z.useCallback)(async e=>{let n=`.agents/skills/${e.id}/SKILL.md`;if(!t||l.has(n))return;let r=e.sourceId??(I==="default"?void 0:I);try{if(r)await ne(t,r,e.id,`.agents/skills/${e.id}`);else{let r=[`---`,`name: ${e.id}`,`description: ${e.description}`];e.allowedTools&&r.push(`allowed-tools: ${e.allowedTools}`),e.license&&r.push(`license: ${e.license}`),r.push(`---`,``,e.instructions??``),await M(t,n,r.join(`
3
- `))}u(e=>new Set(e).add(n)),m(),d(),R({title:`Skill installed`,description:e.name})}catch(e){throw R({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}},[t,I,l,m,d]),ce=(0,Z.useMemo)(()=>ft(w,P),[w,P]),le=(0,Z.useMemo)(()=>ft(L,P),[L,P]),ue=!B&&z&&L.length===0;return e?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(Ce,{loading:U,children:[(0,Q.jsx)(mt,{skills:n,threadId:t,onOpenSkill:p,onDelete:a,onAddManual:()=>y(!0),onAddUrl:()=>x(!0)}),(0,Q.jsx)(yt,{availableSearch:ee,onSearchChange:te,selectedSourceId:I,onSourceChange:re,sources:F,selectedCustomSource:V,availableCatalogLoading:ue,isDefaultSource:B,filteredPopular:ce,filteredCatalog:le,installedFilePaths:l,onPreviewPopular:e=>A(e),onPreviewCatalog:e=>A({...e,sourceId:e.sourceId??I}),onAddSource:()=>N(!0)})]}),(0,Q.jsx)(Qe,{open:O!==null,onOpenChange:e=>{e||A(null)},skill:O,catalogSourceId:B?void 0:I,onInstall:se}),(0,Q.jsx)(it,{open:j,onOpenChange:N,editingSource:V,onSourceAdded:e=>{ie(e),R({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},onSourceUpdated:e=>{ae(e),R({title:`Skill source updated`,description:`${e.title} has been saved.`})},onSourceDeleted:e=>{oe(e),R({title:`Skill source removed`,description:`The custom source has been deleted.`})}}),(0,Q.jsx)(W,{open:v,onOpenChange:y,children:(0,Q.jsx)(H,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,Q.jsx)(qe,{threadId:t,onSkillCreated:()=>{y(!1),d(),m()}})})}),(0,Q.jsx)(lt,{open:b,onOpenChange:x,onSubmit:e=>C(e)}),(0,Q.jsx)(Ee,{url:S,projectId:e,projectName:g?_(g):null,projects:h,onSelectProject:()=>{},onClose:()=>C(null),onInstalled:({mcpOnly:e})=>{d(),m(),R({title:e?`MCP server installed`:`Plugin installed`,description:e?`Its MCP servers were added to this project.`:`Its skills and MCP servers were added to this project.`})}}),(0,Q.jsx)(Pe,{open:i!==null,onOpenChange:e=>!e&&a(null),title:`Delete Skill`,description:`Are you sure you want to delete the skill "${i?.name}"? This action cannot be undone.`,onConfirm:()=>{i&&f(i)},confirming:c})]}):(0,Q.jsx)(ye,{children:`Select a project to manage skills.`})}export{xt as SettingsSkillsView,xt as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{D as i,Et as a,pn as o,vn as s}from"./dist-CNOCRPxn.js";import{t as c}from"./utils-CT-Dw22R.js";import{t as l}from"./button-B6HDsfd5.js";import{Ft as u,M as d,Pt as f,Tt as p,p as m,wn as h,x as g}from"./api-D1GxdEEp.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{An as v,At as y,Dn as b,It as x,Nt as S,Pt as C,Sn as w,jt as T,kt as E,yn as D}from"./index-BOB3ZUQs.js";var O=e(t(),1),k=n();function A(){let[e,t]=(0,O.useState)(null),[n,A]=(0,O.useState)([]),[j,M]=(0,O.useState)(``),[N,P]=(0,O.useState)(``),[F,I]=(0,O.useState)(``),[L,R]=(0,O.useState)(``),[z,B]=(0,O.useState)(``),[V,H]=(0,O.useState)(!0),[U,W]=(0,O.useState)(!1),[G,K]=(0,O.useState)(!1),q=(0,O.useCallback)(async()=>{let[e,n]=await Promise.all([u(),p()]);t(e),A(n.projects)},[]);(0,O.useEffect)(()=>{let e=!1;async function n(){H(!0);try{let[n,r,i]=await Promise.all([u(),p(),f()]);e||(t(n),A(r.projects),B(i.manifest),r.projects[0]&&!L&&R(r.projects[0].projectId))}catch(e){_({title:`Failed to load Slack settings`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{e||H(!1)}}return n(),()=>{e=!0}},[]);async function J(){if(!(!j.trim()||!N.trim())){W(!0);try{await h({botToken:j.trim(),appToken:N.trim()}),M(``),P(``),await q(),_({title:`Slack tokens saved`})}catch(e){_({title:`Failed to save tokens`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{W(!1)}}}async function Y(){W(!0);try{await m(),await q(),_({title:`Slack tokens cleared`})}catch(e){_({title:`Failed to clear tokens`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{W(!1)}}async function X(){let t=F.trim();if(!(!t||!L)){K(!0);try{let n=e?.channels.find(e=>e.id===t);await g({slackChannelId:t,projectId:L,...n?{slackChannelName:n.name}:{}}),I(``),await q(),_({title:`Channel bound`})}catch(e){_({title:`Failed to bind channel`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{K(!1)}}}async function Z(e){try{await d(e.slackTeamId,e.slackChannelId),await q(),_({title:`Binding removed`})}catch(e){_({title:`Failed to remove binding`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}}async function Q(){try{await navigator.clipboard.writeText(z||(await f()).manifest),_({title:`Manifest copied`})}catch(e){_({title:`Failed to copy manifest`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}}if(V||!e)return(0,k.jsx)(v,{title:`Slack`,description:`Loading Slack settings…`,children:(0,k.jsxs)(`div`,{className:c(`flex items-center gap-2 text-muted-foreground`,r.compact),children:[(0,k.jsx)(a,{className:`h-4 w-4 animate-spin`}),`Loading Slack settings…`]})});let $=e.configured?[e.botUsername?`@${e.botUsername}`:e.botTokenPreview,`Bridge ${e.bridgeRunning?`running`:`stopped`}`,e.teamName].filter(Boolean).join(` · `):`Not configured`;return(0,k.jsx)(v,{title:`Slack`,description:`Connect a Slack app (Socket Mode) and bind channels to Tarsk projects.`,children:(0,k.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(w,{title:`Slack App`}),(0,k.jsxs)(b,{children:[(0,k.jsx)(D,{title:`App Manifest`,description:`Create a Slack app from this manifest, enable Socket Mode, then paste the Bot and App-Level tokens below. The Slack manifest cannot include an app icon — download the Tarsk logo and upload it under Basic Information after creating the app.`,controlLayout:`row-end`,action:(0,k.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>void Q(),children:[(0,k.jsx)(s,{className:`mr-2 h-4 w-4`}),`Copy app manifest`]}),(0,k.jsx)(l,{type:`button`,variant:`outline`,size:`sm`,asChild:!0,children:(0,k.jsxs)(`a`,{href:`/slack-app-icon.png`,download:`tarsk-slack-app-icon.png`,children:[(0,k.jsx)(o,{className:`mr-2 h-4 w-4`}),`Download app icon`]})})]})}),(0,k.jsx)(D,{title:`Status`,description:`Bot identity and Socket Mode bridge status.`,children:(0,k.jsx)(`span`,{className:c(`text-muted-foreground`,r.bodyMuted),children:$})}),(0,k.jsx)(D,{title:`Bot Token`,description:`Bot User OAuth Token from your Slack app (starts with xoxb-).`,children:(0,k.jsx)(x,{id:`slack-bot-token`,type:`password`,autoComplete:`off`,placeholder:e.botTokenPreview||`xoxb-…`,value:j,onChange:e=>M(e.target.value)})}),(0,k.jsx)(D,{title:`App-Level Token`,description:`App-Level Token with connections:write for Socket Mode (starts with xapp-).`,children:(0,k.jsx)(x,{id:`slack-app-token`,type:`password`,autoComplete:`off`,placeholder:e.appTokenPreview||`xapp-…`,value:N,onChange:e=>P(e.target.value)})}),(0,k.jsx)(D,{title:`Tokens`,description:`Save both tokens to start the bridge, or clear them to disconnect.`,controlLayout:`row-end`,action:(0,k.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsxs)(l,{type:`button`,onClick:()=>void J(),disabled:U||!j.trim()||!N.trim(),children:[U?(0,k.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}):null,`Save`]}),e.configured?(0,k.jsx)(l,{type:`button`,variant:`outline`,onClick:()=>void Y(),disabled:U,children:`Clear`}):null]})})]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(w,{title:`Channel Bindings`}),(0,k.jsxs)(b,{children:[(0,k.jsx)(D,{title:`Slack Channel`,description:`Invite the bot to the channel first. Only channels the bot can see are listed.`,children:e.channels.length>0?(0,k.jsxs)(E,{value:F||void 0,onValueChange:I,children:[(0,k.jsx)(S,{id:`slack-channel`,"aria-label":`Slack Channel`,children:(0,k.jsx)(C,{placeholder:`Select a channel…`})}),(0,k.jsx)(y,{children:e.channels.map(e=>(0,k.jsx)(T,{value:e.id,children:e.name},e.id))})]}):(0,k.jsx)(x,{id:`slack-channel`,placeholder:`Channel ID (C…)`,value:F,onChange:e=>I(e.target.value)})}),(0,k.jsx)(D,{title:`Tarsk Project`,description:`Each Slack channel maps to one Tarsk project.`,children:(0,k.jsxs)(E,{value:L||void 0,onValueChange:R,disabled:n.length===0,children:[(0,k.jsx)(S,{id:`slack-project`,"aria-label":`Tarsk Project`,children:(0,k.jsx)(C,{placeholder:n.length===0?`No projects`:`Select a project…`})}),(0,k.jsx)(y,{children:n.map(e=>(0,k.jsx)(T,{value:e.projectId,children:e.name},e.projectId))})]})}),(0,k.jsx)(D,{title:`Bind`,description:`Create a channel ↔ project binding.`,controlLayout:`row-end`,action:(0,k.jsxs)(l,{type:`button`,onClick:()=>void X(),disabled:G||!F.trim()||!L,children:[G?(0,k.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}):null,`Bind channel`]})})]}),(0,k.jsx)(`div`,{className:`mt-4 flex flex-col gap-2`,children:e.bindings.length===0?(0,k.jsx)(`p`,{className:c(`text-muted-foreground`,r.compact),children:`No bindings yet.`}):e.bindings.map(e=>{let t=n.find(t=>t.projectId===e.projectId)?.name||e.projectId;return(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border px-3 py-2`,children:[(0,k.jsxs)(`div`,{className:c(r.compact),children:[(0,k.jsx)(`div`,{className:`font-medium`,children:e.slackChannelName||e.slackChannelId}),(0,k.jsx)(`div`,{className:`text-muted-foreground`,children:t})]}),(0,k.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>void Z(e),"aria-label":`Remove binding`,children:(0,k.jsx)(i,{className:`h-4 w-4`})})]},`${e.slackTeamId}:${e.slackChannelId}`)})})]})]})})}export{A as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{r as i}from"./store-CHF6tOp2.js";import{k as a}from"./dist-CNOCRPxn.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-B6HDsfd5.js";import{It as c,N as l,Qn as u,S as d,rr as f}from"./api-D1GxdEEp.js";import{t as p}from"./use-toast-xpb5jNtN.js";import{r as m,t as h}from"./dialog--0foS3aw.js";import{n as g}from"./explorer-tab-context-BxUVwWQQ.js";import{t as _}from"./use-open-chat-dock-panel-B31lwcQF.js";import{Ft as v,It as y,Mn as b,On as x,Tn as S,bn as ee,jn as C,kn as w,vn as T,xn as E,yn as D}from"./index-BOB3ZUQs.js";import{t as O}from"./delete-confirm-dialog-3DX1u0Dg.js";import{n as k,t as A}from"./radio-group-CMW5ku-w.js";import{t as j}from"./use-settings-page-loading-BTySlInF.js";import{a as M,i as N,o as te,r as P}from"./settings-list-BpPbGcpS.js";import{a as F,i as I,r as L,t as R}from"./mcp-server-card-DFT7uyRh.js";var z=e(t(),1),B=n();function V({projectId:e,threadId:t,onCommandCreated:n}){let[i,a]=(0,z.useState)(``),[s,c]=(0,z.useState)(``),[l,u]=(0,z.useState)(``),[f,m]=(0,z.useState)(`default`),[h,g]=(0,z.useState)(!1),_=I(i),b=L(_),S=async()=>{if(!(!b||!e)){g(!0);try{await d(_,``,{description:s.trim()||void 0,argumentHint:l.trim()||void 0,mode:f===`plan`?`plan`:void 0},`project`,t??void 0),p({title:`Command created`,description:`Command '/${_}' was created successfully.`}),a(``),c(``),u(``),m(`default`),n?.(_)}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{g(!1)}}};return e?(0,B.jsx)(C,{children:(0,B.jsxs)(T,{children:[(0,B.jsx)(E,{title:`Add Slash Command`,description:`Saved as a .md file in ~/.agents/commands.`,sticky:!0,className:`pr-10`}),(0,B.jsxs)(`div`,{children:[(0,B.jsxs)(D,{title:`Command Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,B.jsx)(y,{id:`commandName`,value:i,onChange:e=>a(e.target.value),placeholder:`e.g. review`,disabled:h}),i?(0,B.jsxs)(`p`,{className:o(r.caption,`mt-2`),children:[`Command: `,(0,B.jsxs)(`span`,{className:`font-mono`,children:[`/`,_||`...`]})]}):null]}),(0,B.jsx)(D,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,B.jsx)(y,{id:`commandDescription`,value:s,onChange:e=>c(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:h})}),(0,B.jsx)(D,{title:`Argument Hint`,description:`Shows after the command name to guide users what to type`,controlLayout:`stack`,className:`pt-6`,children:(0,B.jsx)(y,{id:`argumentHint`,value:l,onChange:e=>u(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:h})}),(0,B.jsx)(D,{title:`Mode`,description:f==="default"?`Standard chat mode`:`Activates plan mode when this command is used`,controlLayout:`stack`,className:`pt-6`,children:(0,B.jsxs)(A,{value:f,onValueChange:e=>m(e),className:`flex gap-4`,disabled:h,children:[(0,B.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,B.jsx)(k,{value:`default`,id:`mode-default`}),(0,B.jsx)(v,{htmlFor:`mode-default`,className:o(r.labelNormal,`cursor-pointer`),children:`Default`})]}),(0,B.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,B.jsx)(k,{value:`plan`,id:`mode-plan`}),(0,B.jsx)(v,{htmlFor:`mode-plan`,className:o(r.labelNormal,`cursor-pointer`),children:`Plan`})]})]})}),(0,B.jsx)(F,{onContinue:()=>void S(),disabled:!b,creating:h})]})]})}):(0,B.jsx)(x,{title:`No project selected`,children:`Please select a project to add a slash command.`})}function H(){let e=i(e=>e.selectedProjectId),t=i(e=>e.selectedThreadId),{openChatDockPanel:n}=_(),{setPendingExplorerPath:v,triggerExplorerRefresh:y,setExplorerClearPath:C}=g(),[T,D]=(0,z.useState)([]),[k,A]=(0,z.useState)(!0),[F,I]=(0,z.useState)(!1),[L,H]=(0,z.useState)(null),[U,W]=(0,z.useState)(!1),[G,K]=(0,z.useState)([]),[q,J]=(0,z.useState)(!0),[Y,X]=(0,z.useState)(new Map),[Z,ne]=(0,z.useState)(``),Q=(0,z.useCallback)(async()=>{if(!t){A(!1),D([]),X(new Map);return}A(!0);try{let e=await c(t);D(e.filter(e=>!e.isBuiltIn)),X(new Map(e.map(e=>[e.name,e.filePath])))}catch{D([]),X(new Map)}finally{A(!1)}},[t]);(0,z.useLayoutEffect)(()=>{t&&A(!0)},[e,t]),(0,z.useEffect)(()=>{Q()},[Q]),(0,z.useEffect)(()=>{J(!0),u().then(K).catch(()=>K([])).finally(()=>J(!1))},[]);let re=j(e?`${e}:${t??``}`:null,[k,q]),ie=(0,z.useCallback)(async e=>{W(!0);try{await l(e.filePath),C(e.filePath),y(),X(t=>{let n=new Map(t);return n.delete(e.name),n}),p({title:`Command removed`,description:`/${e.name}`}),H(null),await Q()}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to remove command`,variant:`destructive`})}finally{W(!1)}},[Q,y,C]),ae=(0,z.useCallback)(e=>{v(e),n(`explorer`)},[v,n]),oe=(0,z.useCallback)(e=>{let t=e.metadata?.description?.trim();return t&&t.length>0?t:`No description`},[]),se=(0,z.useCallback)(async e=>{if(!(!t||Y.has(e.name)))try{if(e.gitHubRepo&&e.gitHubFolder){let n=`.agents/commands`;await f(t,e.gitHubRepo,e.gitHubFolder,n);let r=`${n}/${e.name}.md`;X(t=>new Map(t).set(e.name,r))}else{let n=await d(e.name,e.content,{description:e.description,argumentHint:e.argumentHint},`project`,t);X(t=>new Map(t).set(e.name,n.filePath))}y(),Q(),p({title:`Command installed`,description:`/${e.name}`})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to install command`,variant:`destructive`})}},[t,Y,y,Q]),$=Z.trim()?G.filter(e=>e.name.toLowerCase().includes(Z.toLowerCase())||e.description.toLowerCase().includes(Z.toLowerCase())):G;return e?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(S,{loading:re,children:[(0,B.jsxs)(b,{className:`shrink-0`,children:[(0,B.jsx)(E,{title:`Installed Slash Commands`,description:`Project slash commands you run with / in chat.`,action:(0,B.jsx)(s,{onClick:()=>I(!0),disabled:!t,children:`Add Command`}),sticky:!1}),(0,B.jsxs)(w,{className:`pt-6`,children:[!t&&(0,B.jsx)(ee,{children:`Select a thread to add or install slash commands.`}),(0,B.jsx)(P,{showHeader:!1,loading:!1,items:T,emptyState:{icon:a,title:`No slash commands installed`,description:`Add slash commands to create quick actions in chat.`},getKey:e=>e.filePath,columnsClassName:`grid-cols-[minmax(0,1fr)_auto_1.75rem]`,renderContent:e=>(0,B.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,B.jsxs)(`div`,{className:o(r.body,`truncate`),children:[`/`,e.name]}),(0,B.jsx)(`div`,{className:o(r.compact,`truncate text-muted-foreground`),children:oe(e)})]}),renderMiddle:e=>e.metadata?.mode?(0,B.jsx)(`span`,{className:o(r.compact,`bg-muted px-1.5 py-0.5 rounded flex-shrink-0`),children:e.metadata.mode}):(0,B.jsx)(`div`,{}),onItemClick:e=>ae(e.filePath),itemClickLabel:e=>`Open /${e.name} in Files`,onDelete:H,deleteAriaLabel:e=>`Delete /${e.name}`,deleteTooltip:`Remove this slash command from the project`})]})]}),(0,B.jsxs)(b,{className:`shrink-0`,children:[(0,B.jsx)(E,{title:`Available Slash Commands`,description:`Browse and install slash commands from the catalog.`,action:(0,B.jsx)(te,{placeholder:`Search`,value:Z,onChange:ne,className:`mb-0 w-64`}),sticky:!1}),(0,B.jsx)(w,{className:`pt-6`,children:$.length===0?(0,B.jsx)(M,{searchQuery:Z,emptyLabel:`No available commands found.`}):(0,B.jsx)(N,{children:$.map(e=>{let t=Y.has(e.name);return(0,B.jsx)(R,{className:`bg-background hover:bg-background`,name:`/${e.name}`,description:e.description,installed:t,onClick:()=>{t||se(e)},showInstalledControls:!1},e.id)})})})]})]}),(0,B.jsx)(h,{open:F,onOpenChange:I,children:(0,B.jsx)(m,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,B.jsx)(V,{projectId:e,threadId:t,onCommandCreated:()=>{I(!1),Q(),y()}})})}),(0,B.jsx)(O,{open:L!==null,onOpenChange:e=>!e&&H(null),title:`Delete Slash Command`,description:`Are you sure you want to delete "/${L?.name}"? This action cannot be undone.`,onConfirm:()=>{L&&ie(L)},confirming:U})]}):(0,B.jsx)(x,{children:`Select a project to manage slash commands.`})}export{H as SettingsSlashCommandsView,H as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{S as i,ot as a}from"./dist-DjiNKpTV.js";import{t as o}from"./utils-CT-Dw22R.js";import{ut as s}from"./api-D1GxdEEp.js";import{An as c}from"./index-BOB3ZUQs.js";import{a as l,i as u,n as d,r as f,t as p}from"./table-MUx4ZxvS.js";import{n as m,t as h}from"./toggle-group-DMR7z3pz.js";var g=t(),_=e(n(),1),v=i(`app.use-latency-stats.hook`),y={tools:[],models:[]};function b(){let[e,t]=(0,_.useState)([]),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)(!0),[o,c]=(0,_.useState)(null),l=(0,_.useCallback)(async function(){try{c(null);let e=await s();t(e.tools??y.tools),r(e.models??y.models)}catch(e){v.error(`Failed to load latency statistics`,e),c(e instanceof Error?e.message:`Failed to load statistics`)}finally{a(!1)}},[]);return(0,_.useEffect)(()=>{l()},[l]),{tools:e,models:n,isLoading:i,error:o,refresh:l}}var x=r(),S=[{value:`tools`,label:`Tools`},{value:`models`,label:`Models`}],C=`inline-flex rounded-full border bg-muted/40 p-1`,w=`rounded-full border-0 px-4 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`,T=`h-9`,E=`table-fixed`,D=o(a.body,`py-1.5`),O=o(a.body,`w-28 py-1.5 text-right tabular-nums`),k=o(a.body,`w-32 py-1.5 text-right tabular-nums`),A=`h-9 w-28 bg-transparent py-2 text-right`,j=`h-9 w-32 bg-transparent py-2 text-right`;function M(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1e3)return`${Math.round(e)}ms`;let t=e/1e3;return t<10?`${t.toFixed(1)}s`:`${Math.round(t)}s`}function N(e){let t=(0,g.c)(3),{view:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=o(`w-full caption-bottom`,E,a.body),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,x.jsx)(`table`,{className:r,children:(0,x.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,x.jsx)(`tr`,{children:n===`tools`?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(u,{className:`h-9 bg-transparent py-2`,children:`Tool`}),(0,x.jsx)(u,{className:A,children:`Calls`}),(0,x.jsx)(u,{className:j,children:`Latency`})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(u,{className:`h-9 bg-transparent py-2`,children:`Model`}),(0,x.jsx)(u,{className:A,children:`Requests`}),(0,x.jsx)(u,{className:j,children:`Latency`})]})})})}),t[1]=n,t[2]=i),i}function P(){let e=(0,g.c)(19),{tools:t,models:n,isLoading:r,error:i}=b(),[s,l]=(0,_.useState)(`tools`),u=s===`tools`&&!r&&t.length>0,f=s===`models`&&!r&&n.length>0,m=u||f,v;e[0]!==m||e[1]!==s?(v=m?(0,x.jsx)(N,{view:s}):void 0,e[0]=m,e[1]=s,e[2]=v):v=e[2];let y;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{(e===`tools`||e===`models`)&&l(e)},e[3]=y):y=e[3];let w;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(w=S.map(L),e[4]=w):w=e[4];let T;e[5]===s?T=e[6]:(T=(0,x.jsx)(h,{type:`single`,value:s,onValueChange:y,"aria-label":`Statistics view`,variant:`outline`,className:C,children:w}),e[5]=s,e[6]=T);let D;e[7]===i?D=e[8]:(D=i?(0,x.jsx)(`p`,{className:o(a.bodyMuted,`mb-6 text-destructive`),children:i}):null,e[7]=i,e[8]=D);let O;e[9]!==r||e[10]!==n||e[11]!==t||e[12]!==s?(O=s===`tools`?r?(0,x.jsx)(`p`,{className:a.bodyMuted,children:`Loading…`}):t.length===0?(0,x.jsx)(`p`,{className:a.bodyMuted,children:`No tool call timings recorded yet. Stats appear after agent tool calls complete.`}):(0,x.jsx)(p,{className:E,children:(0,x.jsx)(d,{children:t.map(I)})}):r?(0,x.jsx)(`p`,{className:a.bodyMuted,children:`Loading…`}):n.length===0?(0,x.jsx)(`p`,{className:a.bodyMuted,children:`No model timings recorded yet. Stats appear after assistant responses complete.`}):(0,x.jsx)(p,{className:E,children:(0,x.jsx)(d,{children:n.map(F)})}),e[9]=r,e[10]=n,e[11]=t,e[12]=s,e[13]=O):O=e[13];let k;return e[14]!==v||e[15]!==T||e[16]!==D||e[17]!==O?(k=(0,x.jsxs)(c,{title:`Statistics`,description:`Average latency and request counts for tool calls and model responses.`,tableHeader:v,action:T,children:[D,O]}),e[14]=v,e[15]=T,e[16]=D,e[17]=O,e[18]=k):k=e[18],k}function F(e){return(0,x.jsxs)(l,{className:T,children:[(0,x.jsx)(f,{className:D,children:e.modelId}),(0,x.jsx)(f,{className:O,children:e.requestCount.toLocaleString()}),(0,x.jsx)(f,{className:k,children:M(e.averageDurationMs)})]},e.modelId)}function I(e){return(0,x.jsxs)(l,{className:T,children:[(0,x.jsx)(f,{className:D,children:e.toolName}),(0,x.jsx)(f,{className:O,children:e.callCount.toLocaleString()}),(0,x.jsx)(f,{className:k,children:M(e.averageDurationMs)})]},e.toolName)}function L(e){return(0,x.jsx)(m,{value:e.value,"aria-label":e.label,className:w,children:e.label},e.value)}export{P as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{o as i,ot as a}from"./dist-DjiNKpTV.js";import{J as o,U as s,r as c}from"./store-CHF6tOp2.js";import{Bn as l,D as u,Et as d,Ln as f}from"./dist-CNOCRPxn.js";import{a as p,t as m}from"./utils-CT-Dw22R.js";import{t as h}from"./button-B6HDsfd5.js";import{i as g,n as _,t as v}from"./tooltip-BtJG5fZl.js";import{n as y}from"./async-loading-fallback-D2X0o4Qa.js";import{n as ee}from"./use-toast-xpb5jNtN.js";import{U as te,_n as ne,et as re,kn as ie,pt as ae,xn as oe}from"./index-BOB3ZUQs.js";import{t as se}from"./delete-confirm-dialog-3DX1u0Dg.js";import{i as ce,r as b}from"./table-MUx4ZxvS.js";import{t as le}from"./settings-list-BpPbGcpS.js";var x=t(),S=e(n(),1),C=r(),ue=36,de=`table-fixed`,fe=`h-9 w-48 bg-transparent py-2`,pe=`h-9 bg-transparent py-2`,me=`h-9 w-32 bg-transparent py-2`,he=`h-9 w-10 bg-transparent py-2`,ge=m(a.bodyMuted,`w-48 truncate py-1.5`),_e=m(a.body,`truncate py-1.5`),ve=m(a.bodyMuted,`w-32 truncate py-1.5`),ye=`w-10 py-1.5`,be={column:`project`,direction:`asc`};function xe(e){let t=(0,x.c)(4),n;if(t[0]!==e){let{style:r,...i}=e,o;t[2]===r?o=t[3]:(o={...r,width:`100%`},t[2]=r,t[3]=o),n=(0,C.jsx)(`table`,{...i,style:o,className:m(`w-full caption-bottom`,de,a.body,i.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function Se(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=m(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function Ce(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=m(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function we(e){let t=(0,x.c)(5),n;t[0]===e.className?n=t[1]:(n=m(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,C.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function w(e,t){return t?i(t,e):e}function T(e,t,n){switch(t){case`project`:return e.projectName;case`path`:return w(e.path,n);case`branch`:return e.branch}}function Te(e){let t=[];for(let n of e){let e=p(n);for(let r of n.threads)t.push({threadId:r.threadId,projectId:n.projectId,projectName:e,path:r.path,branch:r.currentBranch||r.title})}return t}function Ee(e,t,n,r){return[...e].sort((e,i)=>{let a=T(e,t,r).localeCompare(T(i,t,r),void 0,{sensitivity:`base`});return n===`asc`?a:-a})}function E(e){let t=(0,x.c)(17),{label:n,column:r,sortColumn:i,sortDirection:a,className:o,onSort:s}=e,c=i===r,u=a===`asc`?f:l,d=c?`text-foreground`:`text-muted-foreground`,p;t[0]===d?p=t[1]:(p=m(`inline-flex items-center gap-1 transition-colors hover:text-foreground`,d),t[0]=d,t[1]=p);let h;t[2]!==r||t[3]!==s?(h=()=>s(r),t[2]=r,t[3]=s,t[4]=h):h=t[4];let g=c?a===`asc`?`ascending`:`descending`:`none`,_;t[5]!==u||t[6]!==c?(_=c?(0,C.jsx)(u,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":`true`}):null,t[5]=u,t[6]=c,t[7]=_):_=t[7];let v;t[8]!==n||t[9]!==p||t[10]!==h||t[11]!==g||t[12]!==_?(v=(0,C.jsxs)(`button`,{type:`button`,className:p,onClick:h,"aria-sort":g,children:[n,_]}),t[8]=n,t[9]=p,t[10]=h,t[11]=g,t[12]=_,t[13]=v):v=t[13];let y;return t[14]!==o||t[15]!==v?(y=(0,C.jsx)(ce,{className:o,children:v}),t[14]=o,t[15]=v,t[16]=y):y=t[16],y}function D(){let e=(0,x.c)(55),t=c(Fe),n=c(Pe),r=c(Ne),i=c(Me),s=c(je),l=c(Ae),f=c(ke),p=c(Oe),{handleDeleteThread:T,refreshWorkspaces:D}=re(),{toast:O}=ee(),[k,Ie]=(0,S.useState)(null),[A,Le]=(0,S.useState)(be),Re=te()?`Finder`:`Explorer`,j,M;e[0]===D?(j=e[1],M=e[2]):(j=()=>{D()},M=[D],e[0]=D,e[1]=j,e[2]=M),(0,S.useEffect)(j,M);let N;e[3]!==n||e[4]!==t||e[5]!==A.column||e[6]!==A.direction?(N=Ee(Te(t),A.column,A.direction,n),e[3]=n,e[4]=t,e[5]=A.column,e[6]=A.direction,e[7]=N):N=e[7];let P=N,F;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(F=function(e){Le(t=>t.column===e?{column:e,direction:t.direction===`asc`?`desc`:`asc`}:{column:e,direction:`asc`})},e[8]=F):F=e[8];let ze=F,I;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(I=function(e){let{...t}=e;return(0,C.jsx)(`tr`,{...t,className:m(`group border-0 transition-colors hover:bg-muted/50`,t.className)})},e[9]=I):I=e[9];let Be=I,L;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(L={Table:xe,TableHead:Se,TableBody:Ce,TableRow:Be,Scroller:we},e[10]=L):L=e[10];let Ve=L,R;e[11]!==T||e[12]!==k?(R=function(){if(!k)return;let{projectId:e,threadId:t}=k;Ie(null),T(e,t)},e[11]=T,e[12]=k,e[13]=R):R=e[13];let He=R,z;e[14]===O?z=e[15]:(z=async function(e){try{await ae(e.threadId,`.`)}catch{O({title:`Error`,description:`Failed to open folder in ${Re}.`,variant:`destructive`})}},e[14]=O,e[15]=z);let Ue=z,B;e[16]!==n||e[17]!==l||e[18]!==i||e[19]!==Ue||e[20]!==p||e[21]!==s||e[22]!==f?(B=function(e,t){let r=i.includes(t.threadId),c=o(t.threadId,s,f,p),y=l.includes(t.threadId),ee=!c&&!r&&!y,te=w(t.path,n);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(b,{className:ge,children:t.projectName}),(0,C.jsx)(b,{className:_e,children:(0,C.jsx)(`button`,{type:`button`,className:m(a.body,`block w-full truncate text-left hover:underline`),title:`${t.path}\nOpen in ${Re}`,onClick:()=>void Ue(t),children:te})}),(0,C.jsx)(b,{className:ve,children:t.branch}),(0,C.jsx)(b,{className:ye,children:(0,C.jsx)(`div`,{className:`ml-auto flex h-7 w-7 items-center justify-center`,children:r?(0,C.jsx)(d,{className:`h-4 w-4 animate-spin text-muted-foreground`,"aria-label":`Deleting`}):ee?(0,C.jsxs)(v,{children:[(0,C.jsx)(g,{asChild:!0,children:(0,C.jsxs)(h,{variant:`ghost`,size:`icon-sm`,className:le,onClick:e=>{e.stopPropagation(),Ie(t)},children:[(0,C.jsx)(u,{}),(0,C.jsx)(`span`,{className:`sr-only`,children:`Delete workspace`})]})}),(0,C.jsx)(_,{side:`left`,children:`Delete branch and files from the repo`})]}):null})})]})},e[16]=n,e[17]=l,e[18]=i,e[19]=Ue,e[20]=p,e[21]=s,e[22]=f,e[23]=B):B=e[23];let We=B,V;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(V=m(`w-full caption-bottom`,de,a.body),e[24]=V):V=e[24];let H,U,W;e[25]!==A.column||e[26]!==A.direction?(H=(0,C.jsx)(E,{label:`Project`,column:`project`,sortColumn:A.column,sortDirection:A.direction,className:fe,onSort:ze}),U=(0,C.jsx)(E,{label:`Path`,column:`path`,sortColumn:A.column,sortDirection:A.direction,className:pe,onSort:ze}),W=(0,C.jsx)(E,{label:`Branch`,column:`branch`,sortColumn:A.column,sortDirection:A.direction,className:me,onSort:ze}),e[25]=A.column,e[26]=A.direction,e[27]=H,e[28]=U,e[29]=W):(H=e[27],U=e[28],W=e[29]);let G;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,C.jsx)(ce,{className:he,children:(0,C.jsx)(`span`,{className:`sr-only`,children:`Actions`})}),e[30]=G):G=e[30];let K;e[31]!==H||e[32]!==U||e[33]!==W?(K=(0,C.jsx)(`table`,{className:V,children:(0,C.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,C.jsxs)(`tr`,{children:[H,U,W,G]})})}),e[31]=H,e[32]=U,e[33]=W,e[34]=K):K=e[34];let Ge=K,Ke=P.length>0?Ge:void 0,q;e[35]===Ke?q=e[36]:(q=(0,C.jsx)(oe,{title:`Storage`,description:`Workspaces and branches stored on disk across all projects.`,tableHeader:Ke}),e[35]=Ke,e[36]=q);let J;e[37]!==r||e[38]!==We||e[39]!==P?(J=(0,C.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:r&&P.length===0?(0,C.jsx)(y,{label:`Loading workspaces...`,size:`lg`}):P.length===0?(0,C.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,C.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,C.jsx)(`h3`,{className:a.emptyStateTitle,children:`No workspaces`}),(0,C.jsx)(`p`,{className:a.bodyMuted,children:`No branches or workspaces found yet.`})]})}):(0,C.jsx)(ne,{style:{height:`100%`},data:P,computeItemKey:De,itemContent:We,defaultItemHeight:ue,increaseViewportBy:ue*5,components:Ve})}),e[37]=r,e[38]=We,e[39]=P,e[40]=J):J=e[40];let Y;e[41]!==q||e[42]!==J?(Y=(0,C.jsxs)(ie,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[q,J]}),e[41]=q,e[42]=J,e[43]=Y):Y=e[43];let qe=k!==null,X;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(X=e=>{e||Ie(null)},e[44]=X):X=e[44];let Z;e[45]!==n||e[46]!==k?(Z=k?`Are you sure you want to delete the workspace at "${w(k.path,n)}"? This removes the branch and all its files. This action cannot be undone.`:``,e[45]=n,e[46]=k,e[47]=Z):Z=e[47];let Q;e[48]!==He||e[49]!==qe||e[50]!==Z?(Q=(0,C.jsx)(se,{open:qe,onOpenChange:X,title:`Delete workspace?`,description:Z,onConfirm:He,confirmLabel:`Delete`,confirmingLabel:`Deleting...`}),e[48]=He,e[49]=qe,e[50]=Z,e[51]=Q):Q=e[51];let $;return e[52]!==Y||e[53]!==Q?($=(0,C.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[Y,Q]}),e[52]=Y,e[53]=Q,e[54]=$):$=e[54],$}function De(e,t){return t.threadId}function Oe(e){return e.pendingChatMessage}function ke(e){return s(e.threadStreamingStates)}function Ae(e){return e.completedThreadIds}function je(e){return e.processingThreadIds}function Me(e){return e.deletingThreadIds}function Ne(e){return e.projectsLoading}function Pe(e){return e.cloneRootPath}function Fe(e){return e.projects}export{D as default};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{S as i}from"./dist-CNOCRPxn.js";import{t as a}from"./utils-CT-Dw22R.js";import{t as o}from"./button-B6HDsfd5.js";import{Yn as s,bn as c,rr as l,w as u}from"./api-D1GxdEEp.js";import{t as d}from"./use-toast-xpb5jNtN.js";import{r as f,t as p}from"./dialog--0foS3aw.js";import{It as m,Mn as h,On as g,Tn as _,X as v,bn as y,jn as b,kn as x,vn as S,xn as C,yn as w}from"./index-BOB3ZUQs.js";import{t as T}from"./delete-confirm-dialog-3DX1u0Dg.js";import{t as E}from"./use-settings-page-loading-BTySlInF.js";import{a as D,i as O,o as k,r as A}from"./settings-list-BpPbGcpS.js";import{a as j,i as M,r as N,t as P}from"./mcp-server-card-DFT7uyRh.js";import{t as F}from"./use-installed-ai-files-CJr_PVcY.js";var I=e(t(),1),L=n();function R({threadId:e,onAgentCreated:t}){let[n,i]=(0,I.useState)(``),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(``),[f,p]=(0,I.useState)(!1),h=M(n),_=N(h),y=async()=>{if(!(!_||!o.trim()||!e)){p(!0);try{let n=await u(e,h,o.trim(),c.trim()||void 0);d({title:`Agent created`,description:`Agent '${h}' was created successfully.`}),i(``),s(``),l(``),t?.(n.path,`AGENTS.md`)}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to create agent`,variant:`destructive`})}finally{p(!1)}}};return e?(0,L.jsx)(b,{children:(0,L.jsxs)(S,{children:[(0,L.jsx)(C,{title:`Add Agent`,description:`Saved as AGENT.md in .agents/agents.`,sticky:!0,className:`pr-10`}),(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(w,{title:`Agent Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,L.jsx)(m,{id:`agentName`,value:n,onChange:e=>i(e.target.value),placeholder:`e.g. Code Reviewer`,disabled:f}),n?(0,L.jsxs)(`p`,{className:a(r.caption,`mt-2`),children:[`Folder name: `,(0,L.jsx)(`span`,{className:`font-mono`,children:h||`...`})]}):null]}),(0,L.jsx)(w,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,L.jsx)(v,{id:`agentDescription`,value:o,onChange:e=>s(e.target.value),placeholder:`Describe the agent's purpose and behavior...`,className:`resize-none min-h-[120px]`,disabled:f})}),(0,L.jsx)(w,{title:`Tools`,description:`Optional space-separated list of tools this agent can use`,controlLayout:`stack`,className:`pt-6`,children:(0,L.jsx)(m,{id:`agentTools`,value:c,onChange:e=>l(e.target.value),placeholder:`e.g. read grep glob`,disabled:f})}),(0,L.jsx)(j,{onContinue:()=>void y(),disabled:!_||!o.trim(),creating:f})]})]})}):(0,L.jsx)(g,{title:`No thread selected`,children:`Please select a thread to add an agent.`})}function z(e){let t=[];for(let n of e)n.path.startsWith(`.agents/agents/`)&&n.type===`folder`&&t.push(n),n.children&&n.children.length>0&&t.push(...z(n.children));return t}function B(){let{selectedProjectId:e,selectedThreadId:t,items:n,loading:u,deleteConfirm:m,setDeleteConfirm:v,deleting:b,installedFilePaths:S,setInstalledFilePaths:w,loadItems:j,handleDelete:M,handleOpenInExplorer:N,triggerExplorerRefresh:B}=F({findItems:z,installedPathSuffix:`/AGENT.md`,explorerPathSuffix:`/AGENT.md`,sortByName:!0,removedToastTitle:`Agent removed`}),[V,H]=(0,I.useState)(!1),[U,W]=(0,I.useState)([]),[G,K]=(0,I.useState)(!0),[q,J]=(0,I.useState)(``);(0,I.useEffect)(()=>{K(!0),s().then(W).catch(()=>W([])).finally(()=>K(!1))},[]);let Y=E(e?`${e}:${t??``}`:null,[u,G]),X=(0,I.useCallback)(async e=>{let n=`.agents/agents/${e.id}/AGENT.md`;if(!(!t||S.has(n)))try{if(e.gitHubRepo&&e.gitHubFolder)await l(t,e.gitHubRepo,e.gitHubFolder,`.agents/agents/${e.id}`);else{let r=[`---`,`name: ${e.id}`,`description: ${e.description}`];e.tools&&r.push(`tools: ${e.tools}`),r.push(`---`,``,e.systemPrompt),await c(t,n,r.join(`
2
- `))}w(e=>new Set(e).add(n)),B(),j(),d({title:`Agent installed`,description:e.name})}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to install agent`,variant:`destructive`})}},[t,S,B,j]),Z=q.trim()?U.filter(e=>e.name.toLowerCase().includes(q.toLowerCase())||e.description.toLowerCase().includes(q.toLowerCase())):U;return e?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(_,{loading:Y,children:[(0,L.jsxs)(h,{className:`shrink-0`,children:[(0,L.jsx)(C,{title:`Installed Subagents`,description:`Specialized agents for focused tasks in this project.`,action:(0,L.jsx)(o,{onClick:()=>H(!0),disabled:!t,children:`Add Subagent`}),sticky:!1}),(0,L.jsxs)(x,{className:`pt-6`,children:[!t&&(0,L.jsx)(y,{children:`Select a thread to add or install subagents.`}),(0,L.jsx)(A,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:{icon:i,title:`No subagents installed`,description:`Add subagents for specialized, focused tasks.`,bordered:!1},getKey:e=>e.id,renderContent:e=>(0,L.jsx)(`span`,{className:a(r.body,`truncate text-left`),children:e.name}),onItemClick:e=>N(e.path),itemClickLabel:e=>`Open ${e.name} in Files`,onDelete:v,deleteAriaLabel:e=>`Delete ${e.name}`,deleteTooltip:`Remove this subagent from the project`})]})]}),(0,L.jsxs)(h,{className:`shrink-0`,children:[(0,L.jsx)(C,{title:`Available Subagents`,description:`Browse and install subagents from the catalog.`,action:(0,L.jsx)(k,{placeholder:`Search`,value:q,onChange:J,className:`mb-0 w-64`}),sticky:!1}),(0,L.jsx)(x,{className:`pt-6`,children:Z.length===0?(0,L.jsx)(D,{searchQuery:q,emptyLabel:`No available subagents found.`}):(0,L.jsx)(O,{children:Z.map(e=>{let t=`.agents/agents/${e.id}/AGENT.md`,n=S.has(t);return(0,L.jsx)(P,{className:`bg-background hover:bg-background`,name:e.name,description:e.description,installed:n,onClick:()=>{n||X(e)},showInstalledControls:!1},e.id)})})})]})]}),(0,L.jsx)(p,{open:V,onOpenChange:H,children:(0,L.jsx)(f,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,L.jsx)(R,{threadId:t,onAgentCreated:()=>{H(!1),j(),B()}})})}),(0,L.jsx)(T,{open:m!==null,onOpenChange:e=>!e&&v(null),title:`Delete Subagent`,description:`Are you sure you want to delete the subagent "${m?.name}"? This action cannot be undone.`,onConfirm:()=>{m&&M(m)},confirming:b})]}):(0,L.jsx)(g,{children:`Select a project to manage subagents.`})}export{B as SettingsSubagentsView,B as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t,t as n}from"./react-vendor-Ee0-5T4I.js";import{ot as r}from"./dist-DjiNKpTV.js";import{r as i}from"./store-CHF6tOp2.js";import{Et as a}from"./dist-CNOCRPxn.js";import{t as o}from"./utils-CT-Dw22R.js";import{t as s}from"./button-B6HDsfd5.js";import{Bn as c,Ct as l,qt as ee}from"./api-D1GxdEEp.js";import{i as u,n as d,t as f}from"./tooltip-BtJG5fZl.js";import{t as p}from"./use-toast-xpb5jNtN.js";import{a as m,c as h,i as g,n as _,o as v,r as y,s as b,t as x}from"./alert-dialog-DAHkynVZ.js";import{Cn as S,On as C,X as w,kn as T,wn as E,xn as D,yt as O}from"./index-BOB3ZUQs.js";import{t as k}from"./use-settings-page-loading-BTySlInF.js";var A=e(t(),1),j=n();function M(){let e=i(e=>e.selectedProjectId),[t,n]=(0,A.useState)(``),[M,N]=(0,A.useState)(``),[P,F]=(0,A.useState)(!0),[I,L]=(0,A.useState)(!1),[R,z]=(0,A.useState)(``),[B,V]=(0,A.useState)(!0),[H,U]=(0,A.useState)(!1),[W,G]=(0,A.useState)(!1);(0,A.useLayoutEffect)(()=>{e&&V(!0)},[e]),(0,A.useEffect)(()=>{if(!e){V(!1);return}V(!0),l(e).then(e=>{let t=e.useCustomSystemPrompt;n(e.generatedPrompt),L(t),z(e.customSystemPrompt),F(!t),N(t?e.customSystemPrompt:e.generatedPrompt)}).catch(()=>{n(``),N(``),F(!0),L(!1),z(``)}).finally(()=>V(!1))},[e]);let K=k(e,[B]);function q(){return P?I:M.trim()!==R.trim()}function J(e){N(e),P&&F(!1)}function Y(){N(t),F(!0)}function X(e){if(!e){F(!1);return}if(M===t){Y();return}G(!0)}function Z(){Y(),G(!1)}function Q(){G(!1)}async function $(){if(e){if(!P&&!M.trim()){p({title:`System prompt required`,description:`Enter a system prompt or enable Generated.`,variant:`destructive`});return}U(!0);try{await c(e,{customSystemPrompt:P?null:M.trim(),useCustomSystemPrompt:!P}),ee(),L(!P),z(P?``:M.trim()),p({title:`System prompt settings saved`})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to save system prompt settings`,variant:`destructive`})}finally{U(!1)}}}return e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(E,{loading:K,children:(0,j.jsx)(S,{children:(0,j.jsxs)(T,{className:`w-full flex-1 flex flex-col min-h-0 pt-0`,children:[(0,j.jsx)(D,{title:`System Prompt`,description:`View the default system prompt or override it for this project.`,sticky:!1,action:(0,j.jsx)(s,{onClick:$,disabled:H||!q(),children:H?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(a,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})}),(0,j.jsxs)(`div`,{className:`mb-4 flex w-full items-center justify-end gap-2`,children:[(0,j.jsxs)(f,{children:[(0,j.jsx)(u,{asChild:!0,children:(0,j.jsx)(`span`,{tabIndex:0,className:o(r.label,`cursor-help`),children:`Generated`})}),(0,j.jsx)(d,{side:`top`,className:`max-w-xs`,children:`Use the auto-generated system prompt instead of a custom override.`})]}),(0,j.jsx)(O,{value:P,onChange:X,disabled:H,ariaLabel:`Generated system prompt`})]}),(0,j.jsx)(w,{value:M,onChange:e=>J(e.target.value),className:o(r.mono,`flex-1 min-h-0 resize-none`),placeholder:`System prompt will appear here...`,disabled:H})]})})}),(0,j.jsx)(x,{open:W,onOpenChange:G,children:(0,j.jsxs)(g,{children:[(0,j.jsxs)(b,{children:[(0,j.jsx)(h,{children:`Overwrite custom system prompt?`}),(0,j.jsx)(m,{children:`This will replace your custom system prompt with the generated default. You can save the change after confirming.`})]}),(0,j.jsxs)(v,{children:[(0,j.jsx)(y,{onClick:Q,children:`No`}),(0,j.jsx)(_,{onClick:Z,children:`Yes`})]})]})})]}):(0,j.jsx)(C,{children:`Select a project to edit the system prompt.`})}export{M as SettingsSystemPromptView,M as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-general-view-BaMVw6kD.js","assets/rolldown-runtime-aKtaBQYM.js","assets/index-BOB3ZUQs.js","assets/react-vendor-Ee0-5T4I.js","assets/markdown-renderer-BkKibNMs.js","assets/button-B6HDsfd5.js","assets/utils-CT-Dw22R.js","assets/dist-DjiNKpTV.js","assets/dialog--0foS3aw.js","assets/use-browser-overlay-block-DyprQSIG.js","assets/browser-overlay-block-CiDtkfup.js","assets/dist-CNOCRPxn.js","assets/dist-CFXDhuA_.js","assets/Combination-BdvBzSm4.js","assets/tooltip-BtJG5fZl.js","assets/dist-Cda_ffeR.js","assets/dist-rO95BjzU.js","assets/use-toast-xpb5jNtN.js","assets/explorer-tab-context-BxUVwWQQ.js","assets/use-open-chat-dock-panel-B31lwcQF.js","assets/chat-dock-context-8_5G30KG.js","assets/api-D1GxdEEp.js","assets/store-CHF6tOp2.js","assets/main-tab-context-Byl1LybL.js","assets/chunk-QFMPRPBF-COsSkB7x.js","assets/query-keys-5QPW6Dv-.js","assets/alert-dialog-DAHkynVZ.js","assets/async-loading-fallback-D2X0o4Qa.js","assets/scroll-area-BMQFeWmq.js","assets/dist-OixawqbU.js","assets/use-suspense-resource-Dkz6ddFN.js","assets/suspense-resource-DnYnmTbs.js","assets/create-project-workspace-ClILToZd.js","assets/ndjson-stream-DeGpE5o5.js","assets/scenic-chrome-CbN3vum7.js","assets/dist-CkQILg8A.js","assets/dist-CqGsum35.js","assets/dist-Bxyh1Ml_.js","assets/dist-eMdiO0P3.js","assets/dist-CSssbxDI.js","assets/useInfiniteQuery-DUeUxDcu.js","assets/index-BdGMz8sL.css","assets/toggle-group-DMR7z3pz.js","assets/use-settings-page-loading-BTySlInF.js","assets/project-settings-view-BDYqpibk.js","assets/commit-method-fields-BihSf23f.js","assets/context-menu-e5jeH0Jl.js","assets/project-env-vars-view-C9VTTfTo.js","assets/project-model-aliases-view-DKRoV7Gc.js","assets/project-tools-view-9WUc4Yca.js","assets/providers-list-view-BgvIWP_0.js","assets/model-list-controls-CpQjn6i7.js","assets/sorting-DqwxPMRN.js","assets/async-error-boundary-DNJqC4BV.js","assets/card-DZGd45nw.js","assets/settings-list-BpPbGcpS.js","assets/skeleton-DvLd14RU.js","assets/use-deferred-search-Dgxosq55.js","assets/pending-changes-Bn-0ak1d.js","assets/settings-models-view-BkZtGcUP.js","assets/table-MUx4ZxvS.js","assets/settings-mcp-servers-view-BiMCy8sH.js","assets/delete-confirm-dialog-3DX1u0Dg.js","assets/switch-P5m18oUl.js","assets/settings-slack-view-Dy2bFJqU.js","assets/settings-logs-view-Bbue8ZOn.js","assets/settings-skills-view-Bv9Kn55r.js","assets/mcp-server-card-DFT7uyRh.js","assets/use-installed-ai-files-CJr_PVcY.js","assets/settings-rules-view-TK7LEC-0.js","assets/settings-slash-commands-view-DiR1IyMF.js","assets/radio-group-CMW5ku-w.js","assets/settings-subagents-view-Bz7jBhbB.js","assets/settings-instructions-view-BRE87H2U.js","assets/settings-system-prompt-view-VHGAqfQk.js","assets/account-view-c-UG0JKH.js","assets/conversation-history-view-BUlO9oJ6.js","assets/settings-storage-view-D8tHP8XT.js","assets/settings-statistics-view-DX1UVeCJ.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{c as a,o,s}from"./chunk-QFMPRPBF-COsSkB7x.js";import{S as c,ot as l}from"./dist-DjiNKpTV.js";import{Q as u,n as d,r as f}from"./store-CHF6tOp2.js";import{A as p,C as m,Fn as h,Ft as g,G as _,I as v,It as y,J as b,Mn as x,Nn as S,Pn as C,S as w,Tt as T,U as E,_n as D,b as O,dt as k,k as A,x as j,y as M}from"./dist-CNOCRPxn.js";import{a as N,o as P,t as F}from"./utils-CT-Dw22R.js";import{r as I,t as L}from"./button-B6HDsfd5.js";import{Tt as R,ln as z,qt as B}from"./api-D1GxdEEp.js";import{i as V,n as H,r as U,t as W}from"./tooltip-BtJG5fZl.js";import{n as G}from"./async-loading-fallback-D2X0o4Qa.js";import{n as ee}from"./scroll-area-BMQFeWmq.js";import{a as te,i as K,n as ne,o as re,r as ie,s as ae,t as oe}from"./dist-CFXDhuA_.js";import{I as se,It as ce,Lt as q,On as le,Ot as ue,R as de,Wn as fe,c as J,d as pe,l as me,u as he,z as ge}from"./index-BOB3ZUQs.js";import{t as _e}from"./skeleton-DvLd14RU.js";var Y=t(),X=e(n(),1),Z=i(),ve=(0,X.forwardRef)(function(e,t){let n=(0,Y.c)(29),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:u,className:d,onCollapse:f,onExpand:p,isMobile:m,mobileShowSidebar:h,sidebarClassName:g}=e,_=a===void 0?25:a,v=o===void 0?20:o,y=s===void 0?30:s,b=c===void 0?40:c,x=l===void 0?!1:l,S=u===void 0?0:u,C=d===void 0?``:d,w=m===void 0?!1:m,T=h===void 0?!0:h,E=w&&!T,D=w&&T,O=`h-full ${C}`,k=w?100:_,A=w?50:v,j=w?100:y,M=E&&`hidden`,N;n[0]!==g||n[1]!==M?(N=F(`border-r border-transparent`,M,g),n[0]=g,n[1]=M,n[2]=N):N=n[2];let P;n[3]!==S||n[4]!==x||n[5]!==f||n[6]!==p||n[7]!==t||n[8]!==r||n[9]!==k||n[10]!==A||n[11]!==j||n[12]!==N?(P=(0,Z.jsx)(he,{ref:t,defaultSize:k,minSize:A,maxSize:j,collapsible:x,collapsedSize:S,onCollapse:f,onExpand:p,className:N,children:r}),n[3]=S,n[4]=x,n[5]=f,n[6]=p,n[7]=t,n[8]=r,n[9]=k,n[10]=A,n[11]=j,n[12]=N,n[13]=P):P=n[13];let I;n[14]===w?I=n[15]:(I=!w&&(0,Z.jsx)(me,{withHandle:!0,className:`ml-[-10px]`}),n[14]=w,n[15]=I);let L=D&&`hidden`,R;n[16]===L?R=n[17]:(R=F(`overflow-hidden`,L),n[16]=L,n[17]=R);let z;n[18]!==i||n[19]!==b||n[20]!==R?(z=(0,Z.jsx)(he,{minSize:b,className:R,children:i}),n[18]=i,n[19]=b,n[20]=R,n[21]=z):z=n[21];let B;n[22]!==P||n[23]!==I||n[24]!==z?(B=(0,Z.jsxs)(pe,{direction:`horizontal`,className:`h-full`,children:[P,I,z]}),n[22]=P,n[23]=I,n[24]=z,n[25]=B):B=n[25];let V;return n[26]!==O||n[27]!==B?(V=(0,Z.jsx)(`div`,{className:O,children:B}),n[26]=O,n[27]=B,n[28]=V):V=n[28],V});function ye(e){let t=(0,Y.c)(5),{className:n}=e,r;t[0]===n?r=t[1]:(r=F(`h-4 w-4`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(`path`,{d:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.528 2.528 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.528 2.528 0 0 1-2.52-2.523 2.528 2.528 0 0 1 2.52-2.52h6.313A2.528 2.528 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,Z.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,className:r,children:i}),t[3]=r,t[4]=a),a}var be=re,xe=te,Se=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(K,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Se.displayName=K.displayName;var Ce=P(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),we=X.forwardRef((e,t)=>{let n=(0,Y.c)(15),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({side:o,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=o===void 0?`right`:o,c;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(Se,{}),n[5]=c):c=n[5];let l;n[6]!==i||n[7]!==s?(l=F(Ce({side:s}),i),n[6]=i,n[7]=s,n[8]=l):l=n[8];let u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Z.jsxs)(oe,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,Z.jsx)(M,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[9]=u):u=n[9];let d;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l?(d=(0,Z.jsxs)(xe,{children:[c,(0,Z.jsxs)(ne,{ref:t,className:l,...a,children:[r,u]})]}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=d):d=n[14],d});we.displayName=ne.displayName;var Te=e=>{let t=(0,Y.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=F(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Z.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};Te.displayName=`SheetHeader`;var Ee=e=>{let t=(0,Y.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=F(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Z.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};Ee.displayName=`SheetFooter`;var De=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(l.dialogTitle,`text-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(ae,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});De.displayName=ae.displayName;var Oe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(l.dialogDescription,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(ie,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Oe.displayName=ie.displayName;var ke=`sidebar:state`,Ae=3600*24*7,je=`16rem`,Me=`18rem`,Ne=`3rem`,Pe=X.createContext(null);function Q(){let e=X.useContext(Pe);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}var Fe=X.forwardRef((e,t)=>{let n=(0,Y.c)(37),r,i,a,o,s,c,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7]):({defaultOpen:l,open:a,onOpenChange:s,className:i,style:c,children:r,...o}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l);let u=l===void 0?!0:l,d=J(),[f,p]=X.useState(!1),[m,h]=X.useState(u),g=a??m,_;n[8]!==g||n[9]!==s?(_=e=>{let t=typeof e==`function`?e(g):e;s?s(t):h(t),document.cookie=`${ke}=${t}; path=/; max-age=${Ae}`},n[8]=g,n[9]=s,n[10]=_):_=n[10];let v=_,y;n[11]!==d||n[12]!==v?(y=()=>d?p(Ie):v(Le),n[11]=d,n[12]=v,n[13]=y):y=n[13];let b=y,x,S;n[14]===b?(x=n[15],S=n[16]):(x=()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},S=[b],n[14]=b,n[15]=x,n[16]=S),X.useEffect(x,S);let C=g?`expanded`:`collapsed`,w;n[17]!==d||n[18]!==g||n[19]!==f||n[20]!==v||n[21]!==C||n[22]!==b?(w={state:C,open:g,setOpen:v,isMobile:d,openMobile:f,setOpenMobile:p,toggleSidebar:b},n[17]=d,n[18]=g,n[19]=f,n[20]=v,n[21]=C,n[22]=b,n[23]=w):w=n[23];let T=w,E;n[24]===c?E=n[25]:(E={"--sidebar-width":je,"--sidebar-width-icon":Ne,...c},n[24]=c,n[25]=E);let D=E,O;n[26]===i?O=n[27]:(O=F(`group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar`,i),n[26]=i,n[27]=O);let k;n[28]!==r||n[29]!==o||n[30]!==t||n[31]!==D||n[32]!==O?(k=(0,Z.jsx)(U,{delayDuration:0,children:(0,Z.jsx)(`div`,{style:D,className:O,ref:t,...o,children:r})}),n[28]=r,n[29]=o,n[30]=t,n[31]=D,n[32]=O,n[33]=k):k=n[33];let A;return n[34]!==T||n[35]!==k?(A=(0,Z.jsx)(Pe.Provider,{value:T,children:k}),n[34]=T,n[35]=k,n[36]=A):A=n[36],A});Fe.displayName=`SidebarProvider`;function Ie(e){return!e}function Le(e){return!e}var Re=X.forwardRef((e,t)=>{let n=(0,Y.c)(47),r,i,a,o,s,c;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6]):({side:o,variant:s,collapsible:c,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c);let l=o===void 0?`left`:o,u=s===void 0?`sidebar`:s,d=c===void 0?`offcanvas`:c,{isMobile:f,state:p,openMobile:m,setOpenMobile:h}=Q();if(d===`none`){let e;n[7]===i?e=n[8]:(e=F(`flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground`,i),n[7]=i,n[8]=e);let o;return n[9]!==r||n[10]!==a||n[11]!==t||n[12]!==e?(o=(0,Z.jsx)(`div`,{className:e,ref:t,...a,children:r}),n[9]=r,n[10]=a,n[11]=t,n[12]=e,n[13]=o):o=n[13],o}if(f){let e;n[14]===Symbol.for(`react.memo_cache_sentinel`)?(e={"--sidebar-width":Me},n[14]=e):e=n[14];let t;n[15]===r?t=n[16]:(t=(0,Z.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:r}),n[15]=r,n[16]=t);let i;n[17]!==l||n[18]!==t?(i=(0,Z.jsx)(we,{"data-sidebar":`sidebar`,"data-mobile":`true`,className:`w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:e,side:l,children:t}),n[17]=l,n[18]=t,n[19]=i):i=n[19];let o;return n[20]!==m||n[21]!==a||n[22]!==h||n[23]!==i?(o=(0,Z.jsx)(be,{open:m,onOpenChange:h,...a,children:i}),n[20]=m,n[21]=a,n[22]=h,n[23]=i,n[24]=o):o=n[24],o}let g=p===`collapsed`?d:``,_=u===`floating`||u===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]`:`group-data-[collapsible=icon]:w-[--sidebar-width-icon]`,v;n[25]===_?v=n[26]:(v=F(`relative h-svh w-[--sidebar-width] bg-transparent`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,_),n[25]=_,n[26]=v);let y;n[27]===v?y=n[28]:(y=(0,Z.jsx)(`div`,{className:v}),n[27]=v,n[28]=y);let b=l===`left`?`left-0`:`right-0`,x=u===`floating`||u===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]`:`group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l`,S;n[29]!==i||n[30]!==b||n[31]!==x?(S=F(`fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] md:flex`,b,`group-data-[collapsible=offcanvas]:hidden`,x,i),n[29]=i,n[30]=b,n[31]=x,n[32]=S):S=n[32];let C;n[33]===r?C=n[34]:(C=(0,Z.jsx)(`div`,{"data-sidebar":`sidebar`,className:`flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow`,children:r}),n[33]=r,n[34]=C);let w;n[35]!==a||n[36]!==S||n[37]!==C?(w=(0,Z.jsx)(`div`,{className:S,...a,children:C}),n[35]=a,n[36]=S,n[37]=C,n[38]=w):w=n[38];let T;return n[39]!==t||n[40]!==l||n[41]!==p||n[42]!==w||n[43]!==g||n[44]!==y||n[45]!==u?(T=(0,Z.jsxs)(`div`,{ref:t,className:`group peer hidden md:block text-sidebar-foreground`,"data-state":p,"data-collapsible":g,"data-variant":u,"data-side":l,children:[y,w]}),n[39]=t,n[40]=l,n[41]=p,n[42]=w,n[43]=g,n[44]=y,n[45]=u,n[46]=T):T=n[46],T});Re.displayName=`Sidebar`;var ze=X.forwardRef((e,t)=>{let n=(0,Y.c)(16),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onClick:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let{toggleSidebar:o}=Q(),s;n[4]===r?s=n[5]:(s=F(`h-7 w-7`,r),n[4]=r,n[5]=s);let c;n[6]!==i||n[7]!==o?(c=e=>{i?.(e),o()},n[6]=i,n[7]=o,n[8]=c):c=n[8];let l,u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(k,{}),u=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`}),n[9]=l,n[10]=u):(l=n[9],u=n[10]);let d;return n[11]!==a||n[12]!==t||n[13]!==s||n[14]!==c?(d=(0,Z.jsxs)(L,{ref:t,"data-sidebar":`trigger`,variant:`ghost`,size:`icon`,className:s,onClick:c,...a,children:[l,u]}),n[11]=a,n[12]=t,n[13]=s,n[14]=c,n[15]=d):d=n[15],d});ze.displayName=`SidebarTrigger`;var Be=X.forwardRef((e,t)=>{let n=(0,Y.c)(13),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let{toggleSidebar:a}=Q(),o;n[3]===r?o=n[4]:(o=F(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex`,`[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,r),n[3]=r,n[4]=o);let s;n[5]!==i||n[6]!==t||n[7]!==o||n[8]!==a?(s=(0,Z.jsx)(V,{asChild:!0,children:(0,Z.jsx)(`button`,{ref:t,"data-sidebar":`rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:a,className:o,...i})}),n[5]=i,n[6]=t,n[7]=o,n[8]=a,n[9]=s):s=n[9];let c;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(H,{children:`Toggle Sidebar`}),n[10]=c):c=n[10];let l;return n[11]===s?l=n[12]:(l=(0,Z.jsxs)(W,{children:[s,c]}),n[11]=s,n[12]=l),l});Be.displayName=`SidebarRail`;var Ve=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`relative flex min-h-svh flex-1 flex-col bg-background`,`peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`main`,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ve.displayName=`SidebarInset`;var He=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(ce,{ref:t,"data-sidebar":`input`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});He.displayName=`SidebarInput`;var Ue=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`flex flex-col gap-2 p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`header`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ue.displayName=`SidebarHeader`;var We=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`flex flex-col gap-2 p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`footer`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});We.displayName=`SidebarFooter`;var Ge=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`mx-2 w-auto bg-divider`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(q,{ref:t,"data-sidebar":`separator`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ge.displayName=`SidebarSeparator`;var Ke=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`content`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ke.displayName=`SidebarContent`;var qe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`relative flex w-full min-w-0 flex-col p-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`group`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qe.displayName=`SidebarGroup`;var Je=X.forwardRef((e,t)=>{let n=(0,Y.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,asChild:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a!==void 0&&a?I:`div`,s;n[4]===r?s=n[5]:(s=F(`duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-base font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0`,r),n[4]=r,n[5]=s);let c;return n[6]!==o||n[7]!==i||n[8]!==t||n[9]!==s?(c=(0,Z.jsx)(o,{ref:t,"data-sidebar":`group-label`,className:s,...i}),n[6]=o,n[7]=i,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});Je.displayName=`SidebarGroupLabel`;var Ye=X.forwardRef((e,t)=>{let n=(0,Y.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,asChild:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a!==void 0&&a?I:`button`,s;n[4]===r?s=n[5]:(s=F(`absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`group-data-[collapsible=icon]:hidden`,r),n[4]=r,n[5]=s);let c;return n[6]!==o||n[7]!==i||n[8]!==t||n[9]!==s?(c=(0,Z.jsx)(o,{ref:t,"data-sidebar":`group-action`,className:s,...i}),n[6]=o,n[7]=i,n[8]=t,n[9]=s,n[10]=c):c=n[10],c});Ye.displayName=`SidebarGroupAction`;var Xe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`w-full`,l.compact,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`group-content`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xe.displayName=`SidebarGroupContent`;var Ze=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`flex w-full min-w-0 flex-col gap-1`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`ul`,{ref:t,"data-sidebar":`menu`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Ze.displayName=`SidebarMenu`;var Qe=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`group/menu-item relative`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`li`,{ref:t,"data-sidebar":`menu-item`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Qe.displayName=`SidebarMenuItem`;var $e=P(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left ${l.compact} outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8`,sm:`h-7`,lg:`h-12 group-data-[collapsible=icon]:!p-0`}},defaultVariants:{variant:`default`,size:`default`}}),et=X.forwardRef((e,t)=>{let n=(0,Y.c)(29),r,i,a,o,s,c,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7]):({asChild:a,isActive:o,variant:s,size:c,tooltip:l,className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l);let u=a===void 0?!1:a,d=o===void 0?!1:o,f=s===void 0?`default`:s,p=c===void 0?`default`:c,m=u?I:`button`,{isMobile:h,state:g}=Q(),_;n[8]!==r||n[9]!==p||n[10]!==f?(_=F($e({variant:f,size:p}),r),n[8]=r,n[9]=p,n[10]=f,n[11]=_):_=n[11];let v;n[12]!==m||n[13]!==d||n[14]!==i||n[15]!==t||n[16]!==p||n[17]!==_?(v=(0,Z.jsx)(m,{ref:t,"data-sidebar":`menu-button`,"data-size":p,"data-active":d,className:_,...i}),n[12]=m,n[13]=d,n[14]=i,n[15]=t,n[16]=p,n[17]=_,n[18]=v):v=n[18];let y=v;if(!l)return y;if(typeof l==`string`){let e;n[19]===l?e=n[20]:(e={children:l},n[19]=l,n[20]=e),l=e}let b;n[21]===y?b=n[22]:(b=(0,Z.jsx)(V,{asChild:!0,children:y}),n[21]=y,n[22]=b);let x=g!==`collapsed`||h,S;n[23]!==x||n[24]!==l?(S=(0,Z.jsx)(H,{side:`right`,align:`center`,hidden:x,...l}),n[23]=x,n[24]=l,n[25]=S):S=n[25];let C;return n[26]!==b||n[27]!==S?(C=(0,Z.jsxs)(W,{children:[b,S]}),n[26]=b,n[27]=S,n[28]=C):C=n[28],C});et.displayName=`SidebarMenuButton`;var tt=X.forwardRef((e,t)=>{let n=(0,Y.c)(13),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,asChild:a,showOnHover:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=a===void 0?!1:a,c=o===void 0?!1:o,l=s?I:`button`,u=c&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0`,d;n[5]!==r||n[6]!==u?(d=F(`absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,u,r),n[5]=r,n[6]=u,n[7]=d):d=n[7];let f;return n[8]!==l||n[9]!==i||n[10]!==t||n[11]!==d?(f=(0,Z.jsx)(l,{ref:t,"data-sidebar":`menu-action`,className:d,...i}),n[8]=l,n[9]=i,n[10]=t,n[11]=d,n[12]=f):f=n[12],f});tt.displayName=`SidebarMenuAction`;var nt=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`div`,{ref:t,"data-sidebar":`menu-badge`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});nt.displayName=`SidebarMenuBadge`;var rt=X.forwardRef((e,t)=>{let n=(0,Y.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,showIcon:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?!1:a,s=`${Math.floor(Math.random()*40)+50}%`,c;n[4]===r?c=n[5]:(c=F(`rounded-md h-8 flex gap-2 px-2 items-center`,r),n[4]=r,n[5]=c);let l;n[6]===o?l=n[7]:(l=o&&(0,Z.jsx)(_e,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),n[6]=o,n[7]=l);let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u={"--skeleton-width":s},n[8]=u):u=n[8];let d;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(_e,{className:`h-4 flex-1 max-w-[--skeleton-width]`,"data-sidebar":`menu-skeleton-text`,style:u}),n[9]=d):d=n[9];let f;return n[10]!==i||n[11]!==t||n[12]!==c||n[13]!==l?(f=(0,Z.jsxs)(`div`,{ref:t,"data-sidebar":`menu-skeleton`,className:c,...i,children:[l,d]}),n[10]=i,n[11]=t,n[12]=c,n[13]=l,n[14]=f):f=n[14],f});rt.displayName=`SidebarMenuSkeleton`;var it=X.forwardRef((e,t)=>{let n=(0,Y.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=F(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Z.jsx)(`ul`,{ref:t,"data-sidebar":`menu-sub`,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});it.displayName=`SidebarMenuSub`;var at=X.forwardRef((e,t)=>{let n=(0,Y.c)(5),r;n[0]===e?r=n[1]:({...r}=e,n[0]=e,n[1]=r);let i;return n[2]!==r||n[3]!==t?(i=(0,Z.jsx)(`li`,{ref:t,...r}),n[2]=r,n[3]=t,n[4]=i):i=n[4],i});at.displayName=`SidebarMenuSubItem`;var ot=X.forwardRef((e,t)=>{let n=(0,Y.c)(17),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({asChild:o,size:s,isActive:i,className:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c=o===void 0?!1:o,u=s===void 0?`md`:s,d=c?I:`a`,f=u===`sm`&&l.compact,p=u===`md`&&l.compact,m;n[6]!==r||n[7]!==f||n[8]!==p?(m=F(`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground`,f,p,`group-data-[collapsible=icon]:hidden`,r),n[6]=r,n[7]=f,n[8]=p,n[9]=m):m=n[9];let h;return n[10]!==d||n[11]!==i||n[12]!==a||n[13]!==t||n[14]!==u||n[15]!==m?(h=(0,Z.jsx)(d,{ref:t,"data-sidebar":`menu-sub-button`,"data-size":u,"data-active":i,className:m,...a}),n[10]=d,n[11]=i,n[12]=a,n[13]=t,n[14]=u,n[15]=m,n[16]=h):h=n[16],h});ot.displayName=`SidebarMenuSubButton`;var st=[{id:`skills`,label:`Skills`,icon:(0,Z.jsx)(j,{className:`h-4 w-4`}),route:`/settings/skills`},{id:`rules`,label:`Rules`,icon:(0,Z.jsx)(b,{className:`h-4 w-4`}),route:`/settings/rules`},{id:`slash-commands`,label:`Slash Commands`,icon:(0,Z.jsx)(A,{className:`h-4 w-4`}),route:`/settings/slash-commands`},{id:`subagents`,label:`Subagents`,icon:(0,Z.jsx)(w,{className:`h-4 w-4`}),route:`/settings/subagents`},{id:`instructions`,label:`Instructions`,icon:(0,Z.jsx)(h,{className:`h-4 w-4`}),route:`/settings/instructions`},{id:`system-prompt`,label:`System Prompt`,icon:(0,Z.jsx)(v,{className:`h-4 w-4`}),route:`/settings/system-prompt`},{id:`mcp-servers`,label:`MCP Servers`,icon:(0,Z.jsx)(_,{className:`h-4 w-4`}),route:`/settings/mcp-servers`},{id:`general`,label:`Settings`,icon:(0,Z.jsx)(E,{className:`h-4 w-4`}),route:`/settings/general`},{id:`logs`,label:`Logs`,icon:(0,Z.jsx)(T,{className:`h-4 w-4`}),route:`/settings/logs`},{id:`slack`,label:`Slack`,icon:(0,Z.jsx)(ye,{}),route:`/settings/slack`},{id:`providers`,label:`Providers`,icon:(0,Z.jsx)(D,{className:`h-4 w-4`}),route:`/settings/providers`},{id:`models`,label:`Models`,icon:(0,Z.jsx)(S,{className:`h-4 w-4`}),route:`/settings/models`},{id:`model-aliases`,label:`Model Aliases`,icon:(0,Z.jsx)(p,{className:`h-4 w-4`}),route:`/settings/model-aliases`},{id:`statistics`,label:`Statistics`,icon:(0,Z.jsx)(x,{className:`h-4 w-4`}),route:`/settings/statistics`},{id:`history`,label:`History`,icon:(0,Z.jsx)(g,{className:`h-4 w-4`}),route:`/settings/history`},{id:`storage`,label:`Storage`,icon:(0,Z.jsx)(y,{className:`h-4 w-4`}),route:`/settings/storage`},{id:`account`,label:`Account`,icon:(0,Z.jsx)(m,{className:`h-4 w-4`}),route:`/settings/account`}],ct=new Set([`project`,`project-env-vars`,`project-tools`,`skills`,`rules`,`slash-commands`,`subagents`,`instructions`,`system-prompt`,`mcp-servers`]),lt=new Set([`project`,`instructions`,`project-env-vars`]),ut=new Set([`skills`,`rules`,`slash-commands`,`subagents`,`mcp-servers`]),dt=new Set([`system-prompt`,`project-tools`]),ft=new Set([`general`,`logs`,`slack`,`providers`,`models`,`model-aliases`,`statistics`,`history`,`storage`,`account`]);function pt(e){return ct.has(e)?`project`:`general`}function $(e){let t=(0,Y.c)(18),{label:n,items:r,activeTabId:i,onItemClick:a,showSeparator:o,className:s}=e,c=o===void 0?!0:o;if(r.length===0)return null;let l;t[0]===n?l=t[1]:(l=n?(0,Z.jsx)(Je,{children:n}):null,t[0]=n,t[1]=l);let u;if(t[2]!==i||t[3]!==r||t[4]!==a){let e;t[6]!==i||t[7]!==a?(e=e=>(0,Z.jsx)(ue,{selected:i===e.id,asChild:!0,children:(0,Z.jsx)(`button`,{className:`justify-start`,onClick:()=>a(e),children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,Z.jsx)(`span`,{children:e.label})]})})},e.id),t[6]=i,t[7]=a,t[8]=e):e=t[8],u=r.map(e),t[2]=i,t[3]=r,t[4]=a,t[5]=u}else u=t[5];let d;t[9]===u?d=t[10]:(d=(0,Z.jsx)(`div`,{className:`space-y-1`,children:u}),t[9]=u,t[10]=d);let f;t[11]===c?f=t[12]:(f=c?(0,Z.jsx)(q,{className:`my-2`}):null,t[11]=c,t[12]=f);let p;return t[13]!==s||t[14]!==l||t[15]!==d||t[16]!==f?(p=(0,Z.jsxs)(`div`,{className:s,children:[l,d,f]}),t[13]=s,t[14]=l,t[15]=d,t[16]=f,t[17]=p):p=t[17],p}function mt(e){let t=[...st];if(!e)return t;let n=t.findIndex(e=>e.id===`skills`);t.splice(n,0,{id:`project`,label:`Settings`,icon:(0,Z.jsx)(E,{className:`h-4 w-4`}),route:`/settings/project/${e}`},{id:`project-env-vars`,label:`Environment Variables`,icon:(0,Z.jsx)(C,{className:`h-4 w-4`}),route:`/settings/project/${e}/env-vars`});let r=t.findIndex(e=>e.id===`instructions`),i=t.findIndex(e=>e.id===`project`);if(r!==-1&&i!==-1){let[e]=t.splice(r,1);t.splice(i+1,0,e)}let a=t.findIndex(e=>e.id===`system-prompt`),o=a===-1?null:t.splice(a,1)[0],s=t.findIndex(e=>e.id===`mcp-servers`);return s!==-1&&t.splice(s+1,0,...o?[o]:[],{id:`project-tools`,label:`Tools`,icon:(0,Z.jsx)(O,{className:`h-4 w-4`}),route:`/settings/project/${e}/tools`}),t}function ht(e){let t=(0,Y.c)(48),{className:n,selectedProjectId:r,settingsScope:i,onResetOnboarding:a,onNavItemSelect:c}=e,l=s(),u=o(),d=(0,X.useRef)(0),f=(0,X.useRef)(null),p,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{f.current&&clearTimeout(f.current)},m=[],t[0]=p,t[1]=m):(p=t[0],m=t[1]),(0,X.useEffect)(p,m);let h=J(),g;t[2]===r?g=t[3]:(g=mt(r),t[2]=r,t[3]=g);let _=g,v;t[4]!==h||t[5]!==_?(v=h?_.filter(St):_,t[4]=h,t[5]=_,t[6]=v):v=t[6];let y=v,b;t[7]!==u.pathname||t[8]!==y?(b=function(){let e=u.pathname;if(e.endsWith(`/tools`)&&e.startsWith(`/settings/project/`))return`project-tools`;if(e.endsWith(`/model-aliases`)&&e.startsWith(`/settings/project/`))return`project-model-aliases`;if(e.endsWith(`/env-vars`)&&e.startsWith(`/settings/project/`))return`project-env-vars`;if(e.startsWith(`/settings/project/`))return`project`;for(let t of y)if(e.startsWith(t.route))return t.id;return`general`}(),t[7]=u.pathname,t[8]=y,t[9]=b):b=t[9];let x=b,S,C,w,T,E,D,O,k,A;if(t[10]!==x||t[11]!==n||t[12]!==y||t[13]!==l||t[14]!==c||t[15]!==a||t[16]!==r||t[17]!==i){C=function(e){e.id===`general`&&a&&(f.current&&clearTimeout(f.current),d.current+=1,d.current>=3?(d.current=0,a()):f.current=setTimeout(()=>{d.current=0},1500)),c?.(),l(e.route)};let e=!!r;D=!e||i!==`project`,O=e&&i!==`general`;let o=y.filter(xt);E=o.filter(bt),T=o.filter(yt),w=o.filter(vt);let s;t[27]===y?s=t[28]:(s=y.filter(_t),t[27]=y,t[28]=s),S=s;let u=e?[]:o.filter(gt);t[29]===n?k=t[30]:(k=F(`space-y-1`,n),t[29]=n,t[30]=k),A=u.length>0?(0,Z.jsxs)(Z.Fragment,{children:[u.map(e=>(0,Z.jsx)(ue,{selected:x===e.id,asChild:!0,children:(0,Z.jsx)(`button`,{className:`justify-start`,onClick:()=>C(e),children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,Z.jsx)(`span`,{children:e.label})]})})},e.id)),(0,Z.jsx)(q,{className:`my-2`})]}):null,t[10]=x,t[11]=n,t[12]=y,t[13]=l,t[14]=c,t[15]=a,t[16]=r,t[17]=i,t[18]=S,t[19]=C,t[20]=w,t[21]=T,t[22]=E,t[23]=D,t[24]=O,t[25]=k,t[26]=A}else S=t[18],C=t[19],w=t[20],T=t[21],E=t[22],D=t[23],O=t[24],k=t[25],A=t[26];let j;t[31]!==x||t[32]!==C||t[33]!==w||t[34]!==T||t[35]!==E||t[36]!==O?(j=O?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)($,{label:`Project`,items:E,activeTabId:x,onItemClick:C,showSeparator:!1}),(0,Z.jsx)($,{label:`Customize`,items:T,activeTabId:x,onItemClick:C,showSeparator:!1,className:`pt-3`}),(0,Z.jsx)($,{label:`Advanced`,items:w,activeTabId:x,onItemClick:C,showSeparator:!1,className:`pt-3`})]}):null,t[31]=x,t[32]=C,t[33]=w,t[34]=T,t[35]=E,t[36]=O,t[37]=j):j=t[37];let M;t[38]!==x||t[39]!==S||t[40]!==C||t[41]!==D?(M=D?(0,Z.jsx)($,{items:S,activeTabId:x,onItemClick:C,showSeparator:!1}):null,t[38]=x,t[39]=S,t[40]=C,t[41]=D,t[42]=M):M=t[42];let N;return t[43]!==k||t[44]!==A||t[45]!==j||t[46]!==M?(N=(0,Z.jsxs)(`div`,{className:k,children:[A,j,M]}),t[43]=k,t[44]=A,t[45]=j,t[46]=M,t[47]=N):N=t[47],N}function gt(e){return e.id!==`project`}function _t(e){return ft.has(e.id)}function vt(e){return dt.has(e.id)}function yt(e){return ut.has(e.id)}function bt(e){return lt.has(e.id)}function xt(e){return ct.has(e.id)}function St(e){return e.id!==`account`}var Ct=c(`app.settings-view.ui`),wt=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,Tt=`h-7 rounded-full px-4 data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:shadow-sm`,Et=`frosted-surface backdrop-blur-2xl`,Dt=(0,X.lazy)(()=>r(()=>import(`./settings-general-view-BaMVw6kD.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]))),Ot=(0,X.lazy)(()=>r(()=>import(`./project-settings-view-BDYqpibk.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,45,42,46,43]))),kt=(0,X.lazy)(()=>r(()=>import(`./project-env-vars-view-C9VTTfTo.js`),__vite__mapDeps([47,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,43]))),At=(0,X.lazy)(()=>r(()=>import(`./project-model-aliases-view-DKRoV7Gc.js`),__vite__mapDeps([48,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,43]))),jt=(0,X.lazy)(()=>r(()=>import(`./project-tools-view-9WUc4Yca.js`),__vite__mapDeps([49,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,43]))),Mt=(0,X.lazy)(()=>r(()=>import(`./providers-list-view-BgvIWP_0.js`),__vite__mapDeps([50,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,51,52,53,54,55,56,57,58]))),Nt=(0,X.lazy)(()=>r(()=>import(`./settings-models-view-BkZtGcUP.js`),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,45,42,51,52,53,54,55,56,60,57]))),Pt=(0,X.lazy)(()=>r(()=>import(`./settings-mcp-servers-view-BiMCy8sH.js`),__vite__mapDeps([61,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,62,55,54,56,63,43]))),Ft=(0,X.lazy)(()=>r(()=>import(`./settings-slack-view-Dy2bFJqU.js`),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]))),It=(0,X.lazy)(()=>r(()=>import(`./settings-logs-view-Bbue8ZOn.js`),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]))),Lt=(0,X.lazy)(()=>r(()=>import(`./settings-skills-view-Bv9Kn55r.js`),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,67,62,55,54,56,57,68,43]))),Rt=(0,X.lazy)(()=>r(()=>import(`./settings-rules-view-TK7LEC-0.js`),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,67,62,55,54,56,63,57,68,43]))),zt=(0,X.lazy)(()=>r(()=>import(`./settings-slash-commands-view-DiR1IyMF.js`),__vite__mapDeps([70,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,67,62,71,55,54,56,43]))),Bt=(0,X.lazy)(()=>r(()=>import(`./settings-subagents-view-Bz7jBhbB.js`),__vite__mapDeps([72,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,67,62,55,54,56,68,43]))),Vt=(0,X.lazy)(()=>r(()=>import(`./settings-instructions-view-BRE87H2U.js`),__vite__mapDeps([73,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,43]))),Ht=(0,X.lazy)(()=>r(()=>import(`./settings-system-prompt-view-VHGAqfQk.js`),__vite__mapDeps([74,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,43]))),Ut=(0,X.lazy)(()=>r(()=>import(`./account-view-c-UG0JKH.js`),__vite__mapDeps([75,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,62,56]))),Wt=(0,X.lazy)(()=>r(()=>import(`./conversation-history-view-BUlO9oJ6.js`),__vite__mapDeps([76,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,62,60]))),Gt=(0,X.lazy)(()=>r(()=>import(`./settings-storage-view-D8tHP8XT.js`),__vite__mapDeps([77,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,62,55,54,56,60]))),Kt=(0,X.lazy)(()=>r(()=>import(`./settings-statistics-view-DX1UVeCJ.js`),__vite__mapDeps([78,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,60,42]))),qt=[`general`,`providers`,`models`,`model-aliases`,`skills`,`rules`,`slash-commands`,`subagents`,`instructions`,`system-prompt`,`mcp-servers`,`slack`,`logs`,`statistics`,`history`,`storage`,`account`];function Jt(e){let t=(0,Y.c)(2),{title:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Z.jsx)(le,{title:n,children:`Content coming soon...`}),t[0]=n,t[1]=r),r}function Yt(e){return e.startsWith(`/settings/general`)?`general`:e.startsWith(`/settings/providers`)?`providers`:e.startsWith(`/settings/models`)?`models`:e.startsWith(`/settings/model-aliases`)?`model-aliases`:e.startsWith(`/settings/skills`)?`skills`:e.startsWith(`/settings/rules`)?`rules`:e.startsWith(`/settings/slash-commands`)?`slash-commands`:e.startsWith(`/settings/subagents`)?`subagents`:e.startsWith(`/settings/instructions`)?`instructions`:e.startsWith(`/settings/system-prompt`)?`system-prompt`:e.startsWith(`/settings/mcp-servers`)?`mcp-servers`:e.startsWith(`/settings/slack`)?`slack`:e.startsWith(`/settings/logs`)?`logs`:e.startsWith(`/settings/statistics`)?`statistics`:e.startsWith(`/settings/history`)?`history`:e.startsWith(`/settings/storage`)?`storage`:e.startsWith(`/settings/account`)?`account`:`general`}function Xt(e){let t=e.match(/^\/settings\/providers\/([^/]+)$/);return t?decodeURIComponent(t[1]):null}function Zt(e,t,n){return e&&qt.includes(e)?e:t&&qt.includes(t)?t:Yt(n)}function Qt(e,t,n,r,i){return e?`project-tools`:t?`project-model-aliases`:n?`project-env-vars`:r?`project`:i}function $t(e,t,n,r,i){return e?`Tools`:t?`Model Aliases`:n?`Environment Variables`:r?`Project`:st.find(e=>e.id===i)?.label??`Settings`}function en(e,t){return e===`/settings`||e===`/settings/project`||[`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`].some(t=>e.startsWith(t))||t&&e.startsWith(`/settings/account`)}function tn(e,t){let n=!!e&&t.startsWith(`/settings/project/`),r=n&&t.endsWith(`/tools`),i=n&&t.endsWith(`/model-aliases`),a=n&&t.endsWith(`/env-vars`);return{isProjectRoute:n,isProjectToolsRoute:r,isProjectModelAliasesRoute:i,isProjectEnvVarsRoute:a,isProjectSettingsRoute:n&&!a&&!i&&!r}}function nn(e,t){let n=(0,Y.c)(5),r;n[0]!==t||n[1]!==e?(r=()=>{let n=e.current;if(!n)return;let r=function(e){if(e.key!==`Escape`)return;let n=document.activeElement;if(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLElement&&n.isContentEditable){n.blur();return}t()};return n.addEventListener(`keydown`,r),()=>n.removeEventListener(`keydown`,r)},n[0]=t,n[1]=e,n[2]=r):r=n[2];let i;n[3]===t?i=n[4]:(i=[t],n[3]=t,n[4]=i),(0,X.useEffect)(r,i)}function rn(e){let t=(0,Y.c)(5),{selectedProjectId:n,settingsScope:r,onResetOnboarding:i,onNavItemSelect:a}=e,o=n?r:void 0,s;return t[0]!==a||t[1]!==i||t[2]!==n||t[3]!==o?(s=(0,Z.jsx)(`div`,{className:`flex h-full flex-col overflow-hidden p-2.5`,children:(0,Z.jsx)(ee,{className:`min-h-0 flex-1`,children:(0,Z.jsx)(`div`,{className:`py-2`,children:(0,Z.jsx)(ht,{selectedProjectId:n,settingsScope:o,onResetOnboarding:i,onNavItemSelect:a})})})}),t[0]=a,t[1]=i,t[2]=n,t[3]=o,t[4]=s):s=t[4],s}function an(e){let t=(0,Y.c)(21),{settingsHeaderTitle:n,isProjectSettingsScope:r,selectedProject:i,selectedProjectId:a,settingsScope:o,onScopeChange:s,onRequestClose:c}=e,u;t[0]!==r||t[1]!==i?(u=r&&i?(0,Z.jsx)(fe,{project:i,className:`h-7 w-7 shrink-0 rounded-md`,iconClassName:`h-3.5 w-3.5`}):(0,Z.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border shadow-sm`,children:(0,Z.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full`})}),t[0]=r,t[1]=i,t[2]=u):u=t[2];let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=F(l.sectionTitle,`truncate`),t[3]=d):d=t[3];let f;t[4]===n?f=t[5]:(f=(0,Z.jsx)(`span`,{className:d,children:n}),t[4]=n,t[5]=f);let p;t[6]!==u||t[7]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 electrobun-webkit-app-region-no-drag`,children:[u,f]}),t[6]=u,t[7]=f,t[8]=p):p=t[8];let m;t[9]!==s||t[10]!==a||t[11]!==o?(m=a?(0,Z.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-4 flex justify-center`,children:(0,Z.jsx)(se,{value:o,onValueChange:e=>{(e===`project`||e===`general`)&&s(e)},className:`pointer-events-auto electrobun-webkit-app-region-no-drag`,children:(0,Z.jsxs)(de,{className:wt,children:[(0,Z.jsx)(ge,{value:`project`,className:Tt,children:`Project`}),(0,Z.jsx)(ge,{value:`general`,className:Tt,children:`General`})]})})}):null,t[9]=s,t[10]=a,t[11]=o,t[12]=m):m=t[12];let h,g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Z.jsx)(M,{className:`h-4 w-4`}),g=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Close`}),t[13]=h,t[14]=g):(h=t[13],g=t[14]);let _;t[15]===c?_=t[16]:(_=(0,Z.jsx)(`div`,{className:`ml-auto flex items-center gap-2 electrobun-webkit-app-region-no-drag`,children:(0,Z.jsxs)(L,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:c,children:[h,g]})}),t[15]=c,t[16]=_);let v;return t[17]!==p||t[18]!==m||t[19]!==_?(v=(0,Z.jsxs)(`div`,{className:`relative flex h-14 shrink-0 items-start px-4 pt-4 pb-2 electrobun-webkit-app-region-drag`,children:[p,m,_]}),t[17]=p,t[18]=m,t[19]=_,t[20]=v):v=t[20],v}function on(e){let t=(0,Y.c)(10),{isMobile:n,mobileShowSidebar:r,isProviderDetailRoute:i,activeSectionLabel:a,onShowSidebar:o}=e;if(!n||r||i)return null;let s,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(k,{className:`h-4 w-4`}),c=(0,Z.jsx)(`span`,{className:`sr-only`,children:`Show settings menu`}),t[0]=s,t[1]=c):(s=t[0],c=t[1]);let u;t[2]===o?u=t[3]:(u=(0,Z.jsxs)(L,{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=F(l.sectionTitle,`truncate text-foreground`),t[4]=d):d=t[4];let f;t[5]===a?f=t[6]:(f=(0,Z.jsx)(`span`,{className:d,children:a}),t[5]=a,t[6]=f);let p;return t[7]!==u||t[8]!==f?(p=(0,Z.jsx)(`div`,{className:`px-6 pb-0 pt-6`,children:(0,Z.jsxs)(`div`,{className:`mb-4 flex min-w-0 items-center gap-2`,children:[u,f]})}),t[7]=u,t[8]=f,t[9]=p):p=t[9],p}function sn(e){let t=(0,Y.c)(16),{isProjectToolsRoute:n,isProjectModelAliasesRoute:r,isProjectEnvVarsRoute:i,isProjectSettingsRoute:a,projectId:o,activeTab:s,locationKey:c,onboardingResetSignal:l,handleProjectUpdated:u}=e;if(n&&o){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(G,{}),t[0]=e):e=t[0];let n;return t[1]!==u||t[2]!==o?(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(jt,{projectId:o,onProjectUpdated:u})}),t[1]=u,t[2]=o,t[3]=n):n=t[3],n}if(r&&o){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(At,{})}),t[4]=e):e=t[4],e}if(i&&o){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(G,{}),t[5]=e):e=t[5];let n;return t[6]===o?n=t[7]:(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(kt,{projectId:o})}),t[6]=o,t[7]=n),n}if(a&&o){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(G,{}),t[8]=e):e=t[8];let n;return t[9]!==u||t[10]!==o?(n=(0,Z.jsx)(X.Suspense,{fallback:e,children:(0,Z.jsx)(Ot,{projectId:o,onProjectUpdated:u})}),t[9]=u,t[10]=o,t[11]=n):n=t[11],n}let d;return t[12]!==s||t[13]!==c||t[14]!==l?(d=cn(s,c,l),t[12]=s,t[13]=c,t[14]=l,t[15]=d):d=t[15],d}function cn(e,t,n){return{general:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Dt,{onboardingResetSignal:n})}),providers:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{label:`Loading providers...`,size:`lg`}),children:(0,Z.jsx)(Mt,{})}),models:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{label:`Loading models...`,size:`lg`}),children:(0,Z.jsx)(Nt,{})}),"model-aliases":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(At,{})}),skills:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Lt,{},t)}),rules:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Rt,{})}),"slash-commands":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(zt,{})}),subagents:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Bt,{})}),instructions:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Vt,{})}),"system-prompt":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Ht,{})}),"mcp-servers":(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Pt,{})}),slack:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Ft,{})}),logs:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(It,{})}),statistics:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Kt,{})}),history:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Wt,{})}),storage:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Gt,{})}),account:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(G,{}),children:(0,Z.jsx)(Ut,{})})}[e]??(0,Z.jsx)(Jt,{title:`Settings`})}function ln({onRequestClose:e}){let{tab:t,projectId:n}=a(),r=s(),i=o(),c=d(),l=f(e=>e.selectedProjectId),p=f(e=>e.projects),{isProjectRoute:m,isProjectToolsRoute:h,isProjectModelAliasesRoute:g,isProjectEnvVarsRoute:_,isProjectSettingsRoute:v}=tn(n,i.pathname),y=Xt(i.pathname)!==null,b=Zt(new URLSearchParams(i.search).get(`tab`),t,i.pathname),x=J(),[S,C]=(0,X.useState)(!0),[w,T]=(0,X.useState)(0),E=(0,X.useRef)(null),D=(0,X.useRef)(null),O=Qt(h,g,_,m,b),[k,A]=(0,X.useState)(()=>pt(O));(0,X.useEffect)(()=>{A(pt(O))},[O]);let j=(0,X.useCallback)(e=>{if(A(e),e===`project`&&l){r(`/settings/project/${l}`);return}e===`general`&&r(`/settings/general`)},[r,l]),M=(0,X.useMemo)(()=>p.find(e=>e.projectId===l)??null,[p,l]),P=k===`project`&&M!==null,I=P?`${N(M)} Settings`:`General Settings`,L=(0,X.useMemo)(()=>$t(h,g,_,v,b),[b,_,g,v,h]),V=(0,X.useCallback)(()=>{x&&C(!1)},[x]),H=(0,X.useCallback)(()=>{C(!0)},[]),U=(0,X.useCallback)(async()=>{try{await z(),T(e=>e+1)}catch(e){Ct.error(`Failed to reset onboarding:`,e)}},[]),W=(0,X.useCallback)(async()=>{B(n);try{let e=await R();c({type:u.SetProjects,projects:e.projects,cloneRootPath:e.cloneRootPath})}catch(e){throw Ct.error(`Failed to refresh projects after settings update:`,e),e}},[c,n]);return(0,X.useEffect)(()=>{if(g){r(`/settings/model-aliases`,{replace:!0});return}en(i.pathname,x)&&r(`/settings/general`,{replace:!0})},[g,i.pathname,r,x]),nn(D,e),(0,Z.jsxs)(`div`,{ref:D,role:`dialog`,"aria-modal":`true`,"aria-label":`Settings`,className:F(`rounded-2xl border border-border shadow-lg`,Et,`flex h-full w-full flex-col overflow-hidden md:h-[95vh] md:w-[80vw] md:max-w-[1400px]`),children:[(0,Z.jsx)(an,{settingsHeaderTitle:I,isProjectSettingsScope:P,selectedProject:M,selectedProjectId:l,settingsScope:k,onScopeChange:j,onRequestClose:e}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,Z.jsx)(ve,{ref:E,collapsible:!0,isMobile:x,mobileShowSidebar:S,sidebarClassName:F(`overflow-hidden rounded-tr-2xl`,Et),sidebar:(0,Z.jsx)(rn,{selectedProjectId:l,settingsScope:k,onResetOnboarding:U,onNavItemSelect:V}),children:(0,Z.jsxs)(`div`,{className:F(`relative flex h-full min-h-0 flex-col overflow-hidden py-2.5 pl-2.5`,x?null:`ml-2.5`),children:[(0,Z.jsx)(on,{isMobile:x,mobileShowSidebar:S,isProviderDetailRoute:y,activeSectionLabel:L,onShowSidebar:H}),(0,Z.jsx)(sn,{isProjectToolsRoute:h,isProjectModelAliasesRoute:g,isProjectEnvVarsRoute:_,isProjectSettingsRoute:v,projectId:n,activeTab:b,locationKey:i.key,onboardingResetSignal:w,handleProjectUpdated:W})]})})})]})}export{ln as default};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./utils-CT-Dw22R.js";var r=e(),i=t();function a(e){let t=(0,r.c)(8),a,o;t[0]===e?(a=t[1],o=t[2]):({className:a,...o}=e,t[0]=e,t[1]=a,t[2]=o);let s;t[3]===a?s=t[4]:(s=n(`animate-pulse rounded-md bg-muted`,a),t[3]=a,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,i.jsx)(`div`,{className:s,...o}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}export{a as t};
@@ -1,9 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n}from"./react-vendor-Ee0-5T4I.js";import{$ as r,I as i,Q as a,S as o,Z as s,et as c,nt as l,tt as u}from"./dist-DjiNKpTV.js";var d=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,e.SelectProject=`SELECT_PROJECT`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetStreamAgentMode=`SET_STREAM_AGENT_MODE`,e.SetContextUsage=`SET_CONTEXT_USAGE`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.CloseSidebar=`CLOSE_SIDEBAR`,e.OpenProjectPanel=`OPEN_PROJECT_PANEL`,e.CloseProjectPanel=`CLOSE_PROJECT_PANEL`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.RemoveThread=`REMOVE_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.ClearPaneCompleted=`CLEAR_PANE_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.UpdateChatTitle=`UPDATE_CHAT_TITLE`,e.FocusChatInput=`FOCUS_CHAT_INPUT`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateMessage=`UPDATE_MESSAGE`,e.UpdateMessageCheckpointRef=`UPDATE_MESSAGE_CHECKPOINT_REF`,e.SetDevServerToolSession=`SET_DEV_SERVER_TOOL_SESSION`,e.SetThreadToolSession=`SET_THREAD_TOOL_SESSION`,e.ClearThreadToolSession=`CLEAR_THREAD_TOOL_SESSION`,e.SetThreadCreationSummary=`SET_THREAD_CREATION_SUMMARY`,e.ClearThreadCreationSummary=`CLEAR_THREAD_CREATION_SUMMARY`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.UpdateToolExecutionOutput=`UPDATE_TOOL_EXECUTION_OUTPUT`,e.AppendToolExecutionOutput=`APPEND_TOOL_EXECUTION_OUTPUT`,e.AppendSubagentEvent=`APPEND_SUBAGENT_EVENT`,e.ClearToolCallProgress=`CLEAR_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.IncrementStreamEventCount=`INCREMENT_STREAM_EVENT_COUNT`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e.ClearSelection=`CLEAR_SELECTION`,e.SetChatInputDraft=`SET_CHAT_INPUT_DRAFT`,e.ClearChatInputDraft=`CLEAR_CHAT_INPUT_DRAFT`,e.StartAutoRoute=`START_AUTO_ROUTE`,e.EndAutoRoute=`END_AUTO_ROUTE`,e.AddChatPane=`ADD_CHAT_PANE`,e.RemoveChatPane=`REMOVE_CHAT_PANE`,e.SetFocusedPane=`SET_FOCUSED_PANE`,e.SetNewChatStarting=`SET_NEW_CHAT_STARTING`,e.SetPrimaryConversationId=`SET_PRIMARY_CONVERSATION_ID`,e.SetPaneConversationId=`SET_PANE_CONVERSATION_ID`,e.SetPaneMessages=`SET_PANE_MESSAGES`,e.AddPaneMessage=`ADD_PANE_MESSAGE`,e.SetActiveStreamPane=`SET_ACTIVE_STREAM_PANE`,e.HydrateProjectChatPanes=`HYDRATE_PROJECT_CHAT_PANES`,e}({}),f=i,p={projects:[],cloneRootPath:null,projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:0,primaryConversationId:void 0,queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingEventCount:0,threadStreamingStates:{},threadMultiPaneStates:{},projectModelSelections:{},paneModelSelections:{},sidebarOpen:!0,projectPanelView:`projects`,projectPanelProjectId:null,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],processingRuns:[],completedThreadIds:[],completedThreadPaneIds:{},completedPaneIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},subagentTranscripts:{},devServerToolSession:null,threadToolSessions:{},threadCreationSummaries:{},pendingChatMessage:null,diffComments:{},chatInputDrafts:{},pendingAutoRoutes:{},focusedPane:`primary`,extraChatPanes:{},activeStreamPane:null},m={open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};function h(e,t){return`${e}:${t}`}function ee(e,t,n=f){return t?e[h(t,n)]??null:null}function te(e,t){switch(t.type){case d.StartAutoRoute:{let n=h(t.route.threadId,t.route.paneId);return{...e,pendingAutoRoutes:{...e.pendingAutoRoutes,[n]:t.route}}}case d.EndAutoRoute:{let n=h(t.threadId,t.paneId);if(!e.pendingAutoRoutes[n])return e;let{[n]:r,...i}=e.pendingAutoRoutes;return{...e,pendingAutoRoutes:i}}default:return null}}function ne(e,t){let n=`${t}:`,r=new Set([f]);for(let t of Object.keys(e))t.startsWith(n)&&r.add(t.slice(n.length));return[...r]}function re(e,t){let n=t?`${t}:`:null,r=``;for(let t of Object.keys(e))n&&!t.startsWith(n)||e[t].isStreaming&&(r+=`${t}\n`);return r}function ie(e,t,n=f){return e.includes(`${y(t,n)}\n`)}function ae(e,t){return e.includes(`${t}:`)}function oe(e,t,n,r){return t.includes(e)||ae(n,e)?!0:r?.threadId===e}var g={isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingEventCount:0},_=g;function v(){return{...g,streamingSegments:[]}}function y(e,t=f){return`${e}:${t}`}function b(e,t,n=f){return t?e[y(t,n)]??_:_}function se(e,t){let n=new Set([f,...t.sessionPaneIds??[],...ne(t.streamingStates,e)]);for(let r of n)if(t.hasSession(r)||b(t.streamingStates,e,r).isStreaming)return!0;return!1}function x(e,t){return t.threadId??e.selectedThreadId}function ce(e){return e??f}function le(e,t,n,r){return!n||!t.includes(n)?!1:ce(e)===r}function ue(e,t,n){return t?b(e.threadStreamingStates,t,n).isStreaming?!0:le(e.activeStreamPane,e.processingThreadIds,t,n):!1}function S(e,t){return t.paneId??e.activeStreamPane??f}function de(e,t,n){return t===e.selectedThreadId?e.activeStreamPane===null?n===f:e.activeStreamPane===n:!1}function C(e,t,n,r,i=!1){if(!t)return{...e,...r,toolCallProgress:i?{}:e.toolCallProgress};let a=y(t,n),o={...e.threadStreamingStates,[a]:r};return de(e,t,n)?{...e,...r,threadStreamingStates:o,toolCallProgress:i?{}:e.toolCallProgress}:{...e,threadStreamingStates:o}}function fe(){return{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1}}var w={focusedPane:f,extraChatPanes:{},activeStreamPane:null};function pe(){return{focusedPane:f,extraChatPanes:{},activeStreamPane:null}}function T(e){return{focusedPane:e.focusedPane,extraChatPanes:e.extraChatPanes,activeStreamPane:e.activeStreamPane}}function me(e,t){return t?e[t]??w:w}function he(e){let t={};for(let[n,r]of Object.entries(e))t[n]={...r,messages:[...r.messages]};return t}function E(e){return{...e,extraChatPanes:he(e.extraChatPanes)}}function D(e,t,n){let r=E(n),i=t===null?e.threadMultiPaneStates:{...e.threadMultiPaneStates,[t]:r};return t===e.selectedThreadId?{...e,...r,threadMultiPaneStates:i}:{...e,threadMultiPaneStates:i}}function O(e,t,n){let r=e.threadMultiPaneStates;return t&&(r={...r,[t]:E(T(e))}),{...E(me(r,n)),threadMultiPaneStates:r}}function k(e,t){return D(e,e.selectedThreadId,{...T(e),...t})}function ge(e,t){let n=e.chatPanesByThread[t];if(!n)return E(w);let r={};for(let e of n.panes)r[e.paneId]={conversationId:e.conversationId,messages:[],messagesLoaded:!1};return{focusedPane:n.focusedPaneId,extraChatPanes:r,activeStreamPane:null}}function _e(e,t){if(!t)return e;let n=he(e.extraChatPanes);for(let[e,r]of Object.entries(t.extraChatPanes)){let t=n[e];if(!t){n[e]=r;continue}r.messagesLoaded&&(n[e]={...t,messages:r.messages,messagesLoaded:!0})}let r=t.focusedPane in n&&!(t.focusedPane in e.extraChatPanes);return{...e,extraChatPanes:n,focusedPane:r?t.focusedPane:e.focusedPane}}function ve(e,t){return t===f?e.messages:e.extraChatPanes[t]?.messages??[]}function ye(e,t){return t===f?e.primaryConversationId:e.extraChatPanes[t]?.conversationId}function be(e,t){return t===f?e.messagesLoaded:e.extraChatPanes[t]?.messagesLoaded??!1}function xe(e){return Object.keys(e.extraChatPanes)}function Se(e,t){let n=new Set(t.threadIds),r={...e.threadMultiPaneStates};for(let n of t.threadIds)r[n]=_e(ge(t,n),n===e.selectedThreadId?T(e):e.threadMultiPaneStates[n]);return!e.selectedThreadId||!n.has(e.selectedThreadId)?{...e,threadMultiPaneStates:r}:{...e,...r[e.selectedThreadId],threadMultiPaneStates:r}}function Ce(e,t){return t.paneId===f?e:e.extraChatPanes[t.paneId]?k(e,{focusedPane:t.paneId}):k(e,{focusedPane:t.paneId,extraChatPanes:{...e.extraChatPanes,[t.paneId]:{conversationId:t.conversationId,messages:[],messagesLoaded:!1}}})}function we(e,t){if(t.paneId===f||!e.extraChatPanes[t.paneId])return e;let{[t.paneId]:n,...r}=e.extraChatPanes;return k(e,{extraChatPanes:r,focusedPane:e.focusedPane===t.paneId?f:e.focusedPane,activeStreamPane:e.activeStreamPane===t.paneId?null:e.activeStreamPane})}function Te(e,t){if(t.paneId===f)return{...e,messages:t.messages,messagesLoaded:!0};let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:t.messages,messagesLoaded:!0}}}):e}function Ee(e,t){if(t.paneId===f)return e;let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,conversationId:t.conversationId,messages:[],messagesLoaded:!0}}}):e}function De(e,t){if(t.paneId===f)return{...e,messages:[...e.messages,t.message]};let n=e.extraChatPanes[t.paneId];return n?k(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:[...n.messages,t.message]}}}):e}function Oe(e,t){if(!e.selectedThreadId||t.paneId===null)return k(e,{activeStreamPane:null});let n=b(e.threadStreamingStates,e.selectedThreadId,t.paneId);return{...k(e,{activeStreamPane:t.paneId}),...n}}function ke(e,t){switch(t.type){case d.HydrateProjectChatPanes:return Se(e,t);case d.AddChatPane:return Ce(e,t);case d.RemoveChatPane:return we(e,t);case d.SetFocusedPane:return k(e,{focusedPane:t.paneId});case d.SetPaneConversationId:return Ee(e,t);case d.SetPaneMessages:return Te(e,t);case d.AddPaneMessage:return De(e,t);case d.SetActiveStreamPane:return Oe(e,t);default:return null}}function Ae(e,t){return!!(t.historyEpoch!==void 0&&t.historyEpoch!==e.chatHistoryEpoch||t.conversationId&&e.primaryConversationId&&t.conversationId!==e.primaryConversationId)}function A(e,t){let n=e.selectedThreadId?e.threadCreationSummaries[e.selectedThreadId]:void 0;return!n||t.some(e=>e.messageId===n.messageId)?t:[n,...t]}function je(e,t){let n=t.paneId??f;if(n!==f){if(t.threadId&&t.threadId!==e.selectedThreadId)return e;let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:[...r.messages,t.message]}}}):e}return t.threadId&&t.threadId!==e.selectedThreadId?e:{...e,messages:[...e.messages,t.message]}}function Me(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=e.messages.some(e=>e.messageId===t.messageId)?e.messages.map(e=>e.messageId===t.messageId?{...e,content:t.content}:e):[...e.messages,{messageId:t.messageId,sender:`agent`,content:t.content,contentType:`markdown`,timestamp:new Date().toISOString(),isThinking:!1}];return{...e,messages:n}}function Ne(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=t.paneId??f;if(n!==f){let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:r.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}}):e}return{...e,messages:e.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}function Pe(e,t){if(!e.threadToolSessions[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadToolSessions;return{...e,threadToolSessions:r}}function Fe(e,t){if(!e.threadCreationSummaries[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadCreationSummaries;return{...e,threadCreationSummaries:r}}function Ie(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??``,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:t.executionOutput}}}}function Le(e,t){let n=e.toolCallProgress[t.toolCallId],r=n?.executionOutput??``;return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??`agent`,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:r+t.delta}}}}function Re(e,t){if(!t.toolCallId)return{...e,toolCallProgress:{}};let{[t.toolCallId]:n,...r}=e.toolCallProgress;return{...e,toolCallProgress:r}}function ze(e,t){let{[t.threadId]:n,...r}=e.chatInputDrafts;return{...e,chatInputDrafts:r}}function Be(e,t){let n=new Set(e.startingNewChatPaneIds);return t.isStarting?n.add(t.paneId):n.delete(t.paneId),{...e,startingNewChatPaneIds:[...n]}}function Ve(e,t){let n=O(e,e.selectedThreadId,t.threadId),r=b(e.threadStreamingStates,t.threadId,f);return{...e,...r,...n,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:t.focusInput??!1,subagentTranscripts:{}}}function He(e,t){let n=O(e,e.selectedThreadId,``);return{...e,...v(),...n,selectedThreadId:null,selectedProjectId:t.projectId,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:!1,subagentTranscripts:{}}}function Ue(e,t){return Ae(e,t)?e:{...e,messages:A(e,t.messages),messagesLoaded:!0}}function We(e,t){let n=t.conversationId?.trim()||void 0;return e.primaryConversationId===n?e:{...e,primaryConversationId:n}}function Ge(e,t){return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]}}function Ke(e,t){return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)}}function qe(e,t){let n=t.conversationId?.trim()||void 0;return{...e,messages:A(e,[]),messagesLoaded:!0,chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:n}}function Je(e,t){return{...e,devServerToolSession:t.session}}function Ye(e,t){return{...e,threadToolSessions:{...e.threadToolSessions,[t.session.threadId]:t.session}}}function Xe(e,t){return{...e,threadCreationSummaries:{...e.threadCreationSummaries,[t.threadId]:t.message}}}function Ze(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{...n,...t.progress}}}}function Qe(e,t){let n=e.subagentTranscripts[t.toolCallId]??[];return{...e,subagentTranscripts:{...e.subagentTranscripts,[t.toolCallId]:[...n,t.event]}}}function $e(e,t){return{...e,pendingChatMessage:t.message}}function et(e,t){return{...e,pendingChatMessage:null}}function tt(e,t){return{...e,chatInputDrafts:{...e.chatInputDrafts,[t.threadId]:t.draft}}}function nt(e,t){return{...e,...v(),selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,...pe()}}var rt={[d.SetMessages]:Ue,[d.SetPrimaryConversationId]:We,[d.AddMessage]:je,[d.EnqueueChatMessage]:Ge,[d.RemoveQueuedChatMessage]:Ke,[d.ClearMessages]:qe,[d.UpdateMessage]:Me,[d.UpdateMessageCheckpointRef]:Ne,[d.SetDevServerToolSession]:Je,[d.SetThreadToolSession]:Ye,[d.ClearThreadToolSession]:Pe,[d.SetThreadCreationSummary]:Xe,[d.ClearThreadCreationSummary]:Fe,[d.UpdateToolCallProgress]:Ze,[d.UpdateToolExecutionOutput]:Ie,[d.AppendToolExecutionOutput]:Le,[d.AppendSubagentEvent]:Qe,[d.ClearToolCallProgress]:Re,[d.SetPendingChatMessage]:$e,[d.ClearPendingChatMessage]:et,[d.SetChatInputDraft]:tt,[d.ClearChatInputDraft]:ze,[d.SetNewChatStarting]:Be,[d.SelectThread]:Ve,[d.SelectProject]:He,[d.ClearSelection]:nt};function it(e,t){let n=rt[t.type];return n?n(e,t):null}var at=o(`store.project`);function ot(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function st(e,t){return e.length===t.length&&e.every((e,n)=>e.threadId===t[n]?.threadId&&e.conversationId===t[n]?.conversationId)}function ct(e,t,n){return e?{id:t,provider:n,name:e.name??t,description:e.description??``,context_length:e.context_length,contextWindow:e.contextWindow,features:e.features,input_modalities:e.input_modalities,max_output:e.max_output,pricing:e.pricing,tarsk_use:e.tarsk_use,coding_index:e.coding_index,supportsImages:e.supportsImages}:{id:t,provider:n,name:t,description:``}}function lt(e,t){switch(t.type){case d.SetProjects:{let n={...e.projectModelSelections};for(let e of t.projects)for(let t of e.threads)t.model&&(n[t.threadId]=ct(n[t.threadId],t.model,t.modelProvider));return{...e,projects:t.projects,cloneRootPath:t.cloneRootPath===void 0?e.cloneRootPath:t.cloneRootPath,projectModelSelections:n}}case d.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};default:return null}}function ut(e,t){switch(t.type){case d.SetProjectModel:{at.debug(`Set project model`,{threadId:t.threadId,paneId:t.paneId,model:{id:t.model.id,provider:t.model.provider}});let n=t.paneId??null;return{...e,projects:e.projects.map(e=>{let n=e.threads.some(e=>e.threadId===t.threadId);return{...e,...t.paneId&&n?{lastSelectedModel:t.model.id,lastSelectedModelProvider:t.model.provider}:{},threads:e.threads.map(e=>e.threadId===t.threadId?{...e,model:t.model.id,modelProvider:t.model.provider}:e)}}),projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model},paneModelSelections:n?{...e.paneModelSelections,[n]:t.model}:e.paneModelSelections}}default:return null}}function dt(e,t){switch(t.type){case d.SetProcessingThreads:{let n=t.processingRuns??e.processingRuns.filter(e=>t.threadIds.includes(e.threadId));return ot(e.processingThreadIds,t.threadIds)&&st(e.processingRuns,n)?e:{...e,processingThreadIds:t.threadIds,processingRuns:n}}case d.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case d.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId),processingRuns:e.processingRuns.filter(e=>e.threadId!==t.threadId)};default:return null}}function ft(e,t){switch(t.type){case d.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case d.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case d.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};default:return null}}function pt(e,t){switch(t.type){case d.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case d.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case d.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case d.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};default:return null}}function mt(e,t){switch(t.type){case d.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case d.RemoveThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case d.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case d.UpdateChatTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,chatTitles:{...e.chatTitles,[t.paneId]:t.title}}:e)}:e)};default:return null}}function ht(e,t){switch(t.type){case d.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId],completedThreadPaneIds:t.paneId===void 0?e.completedThreadPaneIds:{...e.completedThreadPaneIds,[t.threadId]:t.paneId},completedPaneIds:t.paneId===void 0||t.paneId===e.focusedPane||e.completedPaneIds.includes(t.paneId)?e.completedPaneIds:[...e.completedPaneIds,t.paneId]};case d.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case d.ClearPaneCompleted:{let n=Object.entries(e.completedThreadPaneIds).filter(([,e])=>e===t.paneId).map(([e])=>e);return{...e,completedThreadIds:e.completedThreadIds.filter(e=>!n.includes(e)),completedThreadPaneIds:Object.fromEntries(Object.entries(e.completedThreadPaneIds).filter(([,e])=>e!==t.paneId)),completedPaneIds:e.completedPaneIds.filter(e=>e!==t.paneId)}}default:return null}}function gt(e,t){return lt(e,t)??ut(e,t)??dt(e,t)??ft(e,t)??pt(e,t)??mt(e,t)??ht(e,t)}function _t(e){return e.type===`tool-call-group`}function vt(e){let t=/\[([A-Za-z]+)\]\s*/g,n,r=0;for(let i of e.matchAll(t))n=i[1],r=i.index+i[0].length;return{label:n,contentStart:r}}function yt(e,t,n,r){try{let i=JSON.parse(e.slice(t,n+1));if(Array.isArray(i)){for(let e of i)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&r.push(e)}}return!0}catch{return!1}}function bt(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let{label:n,contentStart:r}=vt(t);if(n){let e=t.slice(r);if(e)return[{type:`reasoning`,text:e,label:n}]}let i=[],a=0;for(;a<t.length;){let e=t.indexOf(`[`,a);if(e===-1){let e=t.slice(a).trim();e&&i.push({type:`reasoning`,text:e});break}let n=t.slice(a,e).trim();n&&i.push({type:`reasoning`,text:n});let r=xt(t,e);if(r===-1){let n=t.slice(e).trim();n&&i.push({type:`reasoning`,text:n});break}if(!yt(t,e,r,i)){let n=t.slice(e,r+1).trim();n&&i.push({type:`reasoning`,text:n})}a=r+1}return i.length>0?i:null}function xt(e,t){let n=0,r=!1,i=!1;for(let a=t;a<e.length;a++){let t=e[a];if(r){i?i=!1:t===`\\`?i=!0:t===`"`&&(r=!1);continue}if(t===`"`){r=!0;continue}if(t===`[`)n++;else if(t===`]`&&(n--,n===0))return a}return-1}function St(e,t=0){let n=[],r=t;for(;r<e.length;){for(;r<e.length&&/\s/.test(e.charAt(r));)r++;if(r>=e.length||e.charAt(r)!==`[`)break;let t=xt(e,r);if(t===-1)break;try{let i=JSON.parse(e.slice(r,t+1));if(!Array.isArray(i))break;n.push(...j(i))}catch{break}r=t+1}return n.length===0?null:{blocks:n,nextIndex:r}}function j(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function Ct(e){return Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e&&typeof e.label==`string`&&typeof e.pattern==`string`&&(e.scope===`session`||e.scope===`project`)):[]}function wt(e){if(e.type!==`long_running_confirmation`||typeof e.prompt!=`object`||e.prompt===null||typeof e.prompt.question!=`string`||!Array.isArray(e.prompt.options))return[];let t=e.prompt;return[{type:`long_running_confirmation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:void 0,question:t.question,options:t.options.filter(e=>typeof e==`string`),context:typeof t.context==`string`?t.context:void 0}}]}function Tt(e){if(e.type!==`shell_permission`||typeof e.shellPermission!=`object`||e.shellPermission===null||typeof e.shellPermission.command!=`string`)return[];let t=e.shellPermission;return[{type:`shell_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`shell-permission`,command:t.command,source:t.source===`bash`||t.source===`skill_script`||t.source===`browser_js`?t.source:`bash`,wildcardOptions:Ct(t.wildcardOptions)}}]}function Et(e){if(e.type!==`seatbelt_escalation`||typeof e.seatbeltEscalation!=`object`||e.seatbeltEscalation===null)return[];let t=e.seatbeltEscalation;return typeof t.command==`string`?[{type:`seatbelt_escalation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`seatbelt-escalation`,command:t.command,projectId:typeof t.projectId==`string`?t.projectId:``,scopes:[`once`,`project`,`session`]}}]:[]}function Dt(e){if(e.type!==`web_fetch_permission`||typeof e.webFetchPermission!=`object`||e.webFetchPermission===null||typeof e.webFetchPermission.hostname!=`string`)return[];let t=e.webFetchPermission;return[{type:`web_fetch_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`web-fetch-permission`,hostname:t.hostname,url:typeof t.url==`string`?t.url:``,wildcardOptions:Ct(t.wildcardOptions)}}]}function Ot(e){let t=[...wt(e),...Tt(e),...Et(e),...Dt(e)];if(t.length>0)return t;e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function kt(e){return N(e)?.some(e=>e.type===`tool_use`||e.type===`tool-result`)??!1}var M=/^```+|^~~~+/;function At(e){let t=e.indexOf(`{`),n=e.indexOf(`[`);return t===-1?n:n===-1?t:Math.min(t,n)}function jt(e,t){if(t&&t.fixedIndex>=0)return{index:t.fixedIndex,scan:t};let n=t?.resumeOffset??0;n>e.length&&(n=0);let r=n===0?!1:t?.inFence??!1,i=n;for(;;){let t=e.indexOf(`
2
- `,i);if(t===-1){let t=e.slice(i),n=M.test(t.trimStart()),a=r||n?-1:At(t);return{index:a===-1?-1:i+a,scan:{fixedIndex:-1,resumeOffset:i,inFence:r}}}let n=e.slice(i,t);if(M.test(n.trimStart()))r=!r;else if(!r){let e=At(n);if(e!==-1){let t=i+e;return{index:t,scan:{fixedIndex:t,resumeOffset:i,inFence:r}}}}i=t+1}}function Mt(e){return jt(e).index}function Nt(e){try{let t=JSON.parse(e);return Array.isArray(t)?j(t):typeof t==`object`&&t?Ot(t):null}catch{return e.startsWith(`[`)?Pt(e):null}}function Pt(e){let t=St(e);if(!t)return null;let n=e.slice(t.nextIndex).trim();return n?[...t.blocks,{type:`text`,text:n}]:t.blocks}function Ft(e){let t=Math.max(e.lastIndexOf(`]`),e.lastIndexOf(`}`));if(t===-1)return null;let n=e.substring(0,t+1);try{let r=JSON.parse(n),i=Array.isArray(r)?j(r):Ot(r),a=e.substring(t+1).trim();return a&&i.push({type:`text`,text:a}),i}catch{return null}}function N(e){return e?P(e,Mt(e)):null}function P(e,t){if(!e)return null;let n=e.trim();if(n.startsWith(`{`)||n.startsWith(`[`)){let e=Nt(n);if(e)return e}let r=[];if(t===-1)return null;let i=e.slice(0,t).trim();i&&r.push({type:`text`,text:i});let a=e.slice(t),o=Pt(a);if(o)return r.push(...o),r;let s=Ft(a);return s?(r.push(...s),r):null}function F(e){return e.type===`tool_use`}function I(e){return e.type===`tool-result`}function L(e){return e.type===`text`}function R(e){return typeof e==`string`?e.replace(/\\n/g,`
3
- `).replace(/✅/g,`✓`):``}function It(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];if(!r||!L(r))break;t+=1}return t}function Lt(e){let t=It(e);return t===0?null:e.slice(e.length-t).filter(L).map(e=>R(e.text).trim()).filter(e=>e.length>0).join(`
4
-
5
- `).trim()||null}function Rt(e){let t=N(e);return t?Lt(t):R(e).trim()||null}function z(e,t){let n=[...e];for(let e of t){if(e.type===`tool_use`){let t=n.findIndex(t=>t.type===`tool_use`&&t.id===e.id);t>=0?n[t]=e:n.push(e);continue}if(e.type===`tool-result`){let t=n.findIndex(t=>t.type===`tool-result`&&t.toolCallId===e.toolCallId);t>=0?n[t]=e:n.push(e);continue}n.push(e)}return n}function B(e,t,n){let r=e[e.length-1];return r?.type===t?(r.chunks.push(n),[...e]):[...e,{type:t,chunks:[n]}]}function zt(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n){if(n.type===`content`)return t;if(n.type!==`thinking`)return-1}}return-1}function Bt(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type===`content`)return t;return-1}function V(e){let t=e.chunks.join(``);return N(t)??(t.trim()?[{type:`text`,text:t}]:[])}function H(e){return e.some(e=>e.type===`tool_use`||e.type===`tool-result`)}function U(e){let t=new Set,n=new Set,r=[];for(let i=e.length-1;i>=0;i--){let a=e[i];if(a){if(a.type===`tool_use`){if(t.has(a.id))continue;t.add(a.id),r.push(a);continue}if(a.type===`tool-result`){if(n.has(a.toolCallId))continue;n.add(a.toolCallId),r.push(a);continue}r.push(a)}}return r.reverse(),r}function Vt(e,t){let n=Bt(e);if(n===-1)return[...e,{type:`content`,chunks:[t]}];let r=e[n],i=t;if(r?.type===`content`){let e=N(t),n=V(r);e&&H(e)&&H(n)&&(i=JSON.stringify(z(n,e)))}return[...e.slice(0,n),{type:`content`,chunks:[i]},...e.slice(n+1)]}function Ht(e,t){let n=N(t);if(!n?.some(e=>e.type===`tool_use`||e.type===`tool-result`))return B(e,`content`,t);let r=zt(e),i=n;if(r>=0){let t=e[r];t?.type===`content`&&(i=z(V(t),n))}let a=JSON.stringify(i);return r>=0?[...e.slice(0,r),{type:`content`,chunks:[a]},...e.slice(r+1)]:[...e,{type:`content`,chunks:[a]}]}function Ut(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`content`)return n.chunks.join(``)}return``}function Wt(e,t){return[...e,{type:`long_running_confirmation`,prompt:t}]}function Gt(e,t){return[...e,{type:`shell_permission`,prompt:t}]}function Kt(e,t){return[...e,{type:`seatbelt_escalation`,prompt:t}]}function qt(e,t){return[...e,{type:`web_fetch_permission`,prompt:t}]}var Jt=new WeakMap;function Yt(e,t,n){if(t.length<n)return!1;for(let r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0}function Xt(e){let t=Jt.get(e),n=t?Yt(t.chunks,e.chunks,t.chunkCount):!1;if(t&&n&&e.chunks.length===t.chunkCount)return t.blocks;let r=t!==void 0&&n,i=r?t.text+e.chunks.slice(t.chunkCount).join(``):e.chunks.join(``),a,o;if(e.type===`thinking`)a=bt(i)??[];else{let e=jt(i,r?t.scan:void 0);o=e.scan,a=P(i,e.index)??(i.trim()?[{type:`text`,text:i}]:[])}return Jt.set(e,{chunks:e.chunks,chunkCount:e.chunks.length,text:i,scan:o,blocks:a}),a}function W(e){let t=[];for(let n of e){if(n.type===`long_running_confirmation`){t.push({type:`long_running_confirmation`,prompt:n.prompt});continue}if(n.type===`shell_permission`){t.push({type:`shell_permission`,prompt:n.prompt});continue}if(n.type===`seatbelt_escalation`){t.push({type:`seatbelt_escalation`,prompt:n.prompt});continue}if(n.type===`web_fetch_permission`){t.push({type:`web_fetch_permission`,prompt:n.prompt});continue}t.push(...Xt(n))}return U(t)}function G(e){return e.type===`thinking-group`}function Zt(e,t=!1){let n=[],r=[],i,a=()=>{r.length>0&&(n.push({type:`thinking-group`,text:r.join(`
6
-
7
- `),label:i,isCurrentlyStreaming:!1}),r=[],i=void 0)};for(let t of e)if(t.type===`reasoning`&&`text`in t){let e=t;r.push(e.text),e.label&&(i=e.label)}else a(),n.push(t);if(a(),t&&n.length>0){let e=n[n.length-1];if(e.type===`thinking-group`){let t=e;t.label!==`Validated`&&(t.isCurrentlyStreaming=!0)}}return n}var Qt=new Set([`todo`]),K=new Set([`todo`,`ask_user`]),$t=new Map(u.map((e,t)=>[e.id,t]));function en(e){if(G(e))return!1;switch(e.type){case`text`:return e.text.trim().length>0;case`shell_permission`:case`seatbelt_escalation`:case`web_fetch_permission`:case`long_running_confirmation`:return!0;case`tool_use`:return e.name===`ask_user`;case`tool-result`:return!1}}function tn(e){return G(e)?!1:e.type===`tool_use`?!Qt.has(e.name):e.type===`tool-result`?!K.has(e.toolName):!1}function nn(e){let t=[],n=[];function r(){n.some(tn)?t.push({type:`tool-call-group`,items:n}):t.push(...n),n=[]}for(let i of e)en(i)?(n.length>0&&r(),t.push(i)):n.push(i);return n.length>0&&r(),t}function q(e){return e.length===0?0:e.split(`
8
- `).length}function rn(e){let t=0,n=0;if(Array.isArray(e.replacements)){for(let r of e.replacements)if(r&&typeof r==`object`){let e=r;typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText))}return{added:t,removed:n}}return typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText)),{added:t,removed:n}}function an(e){let t=new Set;for(let n of e)(n.type===`shell_permission`||n.type===`web_fetch_permission`||n.type===`long_running_confirmation`&&n.prompt.toolCallId)&&t.add(n.prompt.toolCallId);return t}function on(e){let t=typeof e.path==`string`&&e.path?e.path:null;return t?t.split(`/`).pop()??t:null}function sn(e){let t=typeof e.description==`string`?e.description.trim():``;return t?`${t}…`:null}function cn(e){return(typeof e.intention==`string`?e.intention.trim():``)||null}function ln(e){let t=cn(e);return t?`${t}…`:null}function un(e){let t=e.toLowerCase();return t===`run_js`||t===`run_web_worker`}function dn(e){return c(e.name,e.input)?r(`subagents`):a(e.name)}function fn(e){return e.filter(e=>e===`subagents`).length}function pn(e,t){let n=e[0];return r(n!==void 0&&e.every(e=>e===n)?n:`other`).formatNeutral(t)}function J(e){return e.charAt(0).toUpperCase()+e.slice(1)}function mn(){return{categoryCounts:new Map,editedPaths:new Set,completedCommandBlocks:[],linesAdded:0,linesRemoved:0}}function hn(e){let t=[],n=new Map;for(let r of e)G(r)||(F(r)?t.push(r):I(r)&&n.set(r.toolCallId,r));return{toolUses:t,groupResults:n,groupToolUseIds:new Set(t.map(e=>e.id))}}function gn(e,t){let n=dn(e);t.categoryCounts.set(n.id,(t.categoryCounts.get(n.id)??0)+1),n.id===`commands`&&t.completedCommandBlocks.push(e);let r=e.name.toLowerCase();if(r===`edit`||r===`write`){let n=typeof e.input.path==`string`&&e.input.path?e.input.path:e.id;if(t.editedPaths.add(n),r===`edit`){let n=rn(e.input);t.linesAdded+=n.added,t.linesRemoved+=n.removed}else typeof e.input.content==`string`&&(t.linesAdded+=q(e.input.content))}}function _n(e,t,n,r,i){let a=[],o=0,s=null;for(let c of e){if(Qt.has(c.name))continue;let e=t.has(c.id),l=r?.has(c.id)||n.some(e=>I(e)&&e.toolCallId===c.id&&!K.has(e.toolName));e?gn(c,i):l||(o+=1,a.push(dn(c).id),s=c)}return{pendingCount:o,pendingCategoryIds:a,lastPending:s}}function vn(e,t,n,r){let i=0;for(let a of e.values())if(!K.has(a.toolName)&&(a.isError===!0&&(i+=1),!t.has(a.toolCallId))){let e=n.find(e=>F(e)&&e.id===a.toolCallId);e?gn(e,r):r.categoryCounts.set(`other`,(r.categoryCounts.get(`other`)??0)+1)}return i}function yn(e,t){let n=[];for(let[r,i]of e)r===`other`||i===0||n.push({id:r,count:r===`files`?t.size:i});return n.sort((e,t)=>($t.get(e.id)??2**53-1)-($t.get(t.id)??2**53-1)),n}function bn(e,t,n,r){if(!e)return null;if(r.has(e.id))return`Awaiting permission · ${pn(n,t)}`;if(c(e.name,e.input))return sn(e.input)??`${e.activeDisplayName??l(e.name)}…`;if(un(e.name))return ln(e.input)??`${e.activeDisplayName??l(e.name)}…`;let i=e.activeDisplayName??l(e.name),a=on(e.input);return a?`${i} ${a}…`:`${i}…`}function xn(e){if(e.length!==1)return null;let t=e[0];return t&&un(t.name)?cn(t.input):null}function Sn(e){return e.toLowerCase()===`bash`}var Cn=2e3,wn=/(?<!\d)(\d{1,3})(?:\.\d+)?%(?!\d)/g;function Tn(e){if(!e)return null;let t=e.length>Cn?e.slice(-2e3):e,n=null;for(let e of t.matchAll(wn)){let t=Number(e[1]);t>=0&&t<=100&&(n=t)}return n}function En(e,t,n){let{toolUses:r,groupResults:i,groupToolUseIds:a}=hn(e),o=an(t),s=mn(),{pendingCount:c,pendingCategoryIds:l,lastPending:u}=_n(r,i,t,n,s),d=vn(i,a,t,s),f=yn(s.categoryCounts,s.editedPaths),p=s.editedPaths.size,m=bn(u,c,l,o),h=xn(s.completedCommandBlocks),ee=u&&Sn(u.name)?u.id:null;return{categories:f,distinctFiles:p,otherCount:s.categoryCounts.get(`other`)??0,pendingCount:c,pendingCategoryIds:l,linesAdded:s.linesAdded,linesRemoved:s.linesRemoved,errorCount:d,activeLabel:m,pendingCommandToolId:ee,singleCommandTitle:h}}function Y(e,t){let n=e.categories.slice(0,3),i=e.categories.slice(3).reduce((e,t)=>e+t.count,0),a=e.otherCount+i,o=n.map(t=>t.id===`commands`&&t.count===1&&e.singleCommandTitle?e.singleCommandTitle:r(t.id).formatPhrase(t.count)),c=``;o.length>0?(c=o.join(`, `),a>0&&(c+=`, and ${a} more`),c=J(c)):a>0&&(c=J(r(`other`).formatPhrase(a)));let l=fn(e.pendingCategoryIds);if(l>0){let e=s(l);c=c?`${c} · ${e}`:J(e)}let u=t.showActive&&e.activeLabel!==null,d=e.pendingCount-l;if(!u&&d>0){let t=pn(e.pendingCategoryIds.filter(e=>e!==`subagents`),d);c=c?`${c} · ${t}`:J(t)}let f=e.linesAdded+e.linesRemoved>0?`+${e.linesAdded} −${e.linesRemoved}`:null,p=t.runningCommandProgress,m=u&&p!=null&&e.pendingCommandToolId!==null?`Running Command ${p}%`:u?e.activeLabel:null;return{text:c,lineStats:f,errorCount:e.errorCount,activeLabel:m}}function Dn(e){let t=nn(Zt(e,!0));for(let n=t.length-1;n>=0;n--){let r=t[n];if(!_t(r))continue;let i=Y(En(r.items,e),{showActive:!0});if(i.activeLabel!==null)return i.activeLabel}return null}function On(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`long_running_confirmation`||n.type===`shell_permission`||n.type===`web_fetch_permission`)return t}return-1}function kn(e){return e.type===`content`||e.type===`thinking`?e.chunks.some(e=>e.trim().length>0):!1}function An(e){let t=W(e),n=t.some(e=>F(e)&&e.name===`ask_user`),r=t.some(e=>I(e)&&e.toolName===`ask_user`);if(n&&!r)return!0;let i=On(e);return i===-1?!1:!e.slice(i+1).some(kn)}function jn(e){let t=W(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var Mn=5e3;function Nn(){return{scan:{scannedText:``,processedOffset:0,inFence:!1,boundaryEnd:0},pendingStartedAt:null,revealed:!1,pendingText:``}}function Pn(e,t){t.startsWith(e.scannedText)||(e.scannedText=``,e.processedOffset=0,e.inFence=!1,e.boundaryEnd=0);let n=e.processedOffset;for(;;){let r=t.indexOf(`
9
- `,n);if(r===-1)break;let i=t.slice(n,r);M.test(i.trimStart())?e.inFence=!e.inFence:!e.inFence&&i.trim()===``&&(e.boundaryEnd=r+1),n=r+1}e.processedOffset=n,e.scannedText=t}function Fn(e,t,n){Pn(e.scan,t);let r=t.slice(e.scan.boundaryEnd),i=t.slice(0,e.scan.boundaryEnd);return r===``?(e.pendingStartedAt=null,e.revealed=!1):e.pendingText!==``&&r.startsWith(e.pendingText)||(e.pendingStartedAt=n,e.revealed=!1),e.pendingText=r,!e.revealed&&e.pendingStartedAt!==null&&n-e.pendingStartedAt>=5e3&&(e.revealed=!0),{committedText:i,pendingText:r,revealed:e.revealed}}function In(e,t){switch(t.type){case d.SetStreaming:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:t.isStreaming})}case d.AppendStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingContent:i.streamingContent+t.content})}case d.SetStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r),a=Vt(i.streamingSegments,t.content);return C(e,n,r,{...i,streamingContent:t.content,streamingSegments:a})}case d.AppendStreamThinking:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingThinking:i.streamingThinking+t.content})}case d.IncrementStreamEventCount:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingEventCount:i.streamingEventCount+1})}case d.AppendStreamChunk:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?i.streamingContent+t.content:i.streamingContent,streamingThinking:t.chunkType===`thinking`?i.streamingThinking+t.content:i.streamingThinking})}case d.SetStreamModel:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingModel:t.model})}case d.SetStreamAgentMode:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingAgentMode:t.mode})}case d.SetContextUsage:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),contextUsage:t.contextUsage})}case d.ResetStream:return C(e,x(e,t),S(e,t),v(),!0);case d.StopStream:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:!1})}default:return null}}function X(e,t){return e.terminalStates[t]??fe()}function Ln(e,t){switch(t.type){case d.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case d.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case d.ClearCommandOutput:return{...e,commandOutput:``};case d.ToggleTerminal:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,open:!n.open}}}}case d.SetTerminalOpen:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case d.QueueTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case d.ClearQueuedTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:null}}}}case d.AppendTerminalLine:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case d.ClearTerminalOutput:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case d.SetTerminalHeight:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,height:t.height}}}}case d.SetTerminalCwd:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,cwd:t.cwd}}}}case d.SetTerminalRunning:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,isRunning:t.isRunning}}}}case d.SetTerminalHistory:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,history:t.history}}}}case d.SetTerminalHistoryIndex:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,historyIndex:t.index}}}}default:return null}}function Rn(e,t){switch(t.type){case d.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case d.CloseSidebar:return e.sidebarOpen?{...e,sidebarOpen:!1}:e;case d.OpenProjectPanel:return{...e,projectPanelView:`actions`,projectPanelProjectId:t.projectId};case d.CloseProjectPanel:return{...e,projectPanelView:`projects`,projectPanelProjectId:null};case d.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case d.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case d.FocusChatInput:return{...e,focusChatInput:!0};case d.ClearFocusChatInput:return{...e,focusChatInput:!1};case d.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};default:return null}}var zn=[In,te,it,ke,gt,Ln,Rn];function Bn(e,t){for(let n of zn){let r=n(e,t);if(r!==null)return r}return e}var Vn=new Set([d.AppendStreamChunk,d.IncrementStreamEventCount,d.SetStreamModel,d.AppendStreamContent,d.AppendStreamThinking,d.SetStreamContent,d.AppendSubagentEvent,d.AppendToolExecutionOutput,d.UpdateToolCallProgress,d.UpdateToolExecutionOutput]);function Z(e){return`${`threadId`in e&&typeof e.threadId==`string`?e.threadId:``}:${`paneId`in e&&typeof e.paneId==`string`?e.paneId:``}`}function Hn(){return{appendChunkByPane:new Map,eventCountByPane:new Map,modelByPane:new Map,contentByPane:new Map,thinkingByPane:new Map,setContentByPane:new Map,lastSegmentActionByPane:new Map,toolProgressById:new Map,toolOutputById:new Map,other:[]}}function Un(e,t){let n=Z(t),r=e.appendChunkByPane.get(n);if(!r){e.appendChunkByPane.set(n,{thinkingContent:t.chunkType===`thinking`?t.content:``,contentContent:t.chunkType===`content`?t.content:``,lastAction:t});return}t.chunkType===`thinking`?r.thinkingContent+=t.content:t.chunkType===`content`&&(r.contentContent+=t.content),r.lastAction=t}function Wn(e,t){let n=Z(t),r=e.get(n);if(!r){e.set(n,{value:t.content,last:t});return}r.value+=t.content,r.last=t}function Gn(e){let t=Hn();for(let n of e)switch(n.type){case d.AppendStreamChunk:Un(t,n),t.lastSegmentActionByPane.set(Z(n),`append-chunk`);break;case d.IncrementStreamEventCount:t.eventCountByPane.set(Z(n),n);break;case d.SetStreamModel:t.modelByPane.set(Z(n),n);break;case d.AppendStreamContent:Wn(t.contentByPane,n);break;case d.AppendStreamThinking:Wn(t.thinkingByPane,n);break;case d.SetStreamContent:t.setContentByPane.set(Z(n),n),t.lastSegmentActionByPane.set(Z(n),`set-content`);break;case d.UpdateToolCallProgress:t.toolProgressById.set(n.toolCallId,n);break;case d.UpdateToolExecutionOutput:t.toolOutputById.set(n.toolCallId,n);break;default:t.other.push(n);break}return t}function Kn(e,t,n){for(let{value:r,last:i}of t.values())i.type===n&&e.push({...i,content:r})}function qn(e){let t=[],{thinkingContent:n,contentContent:r,lastAction:i}=e;return n&&t.push({...i,chunkType:`thinking`,content:n,segments:i.segments}),r&&t.push({...i,chunkType:`content`,content:r,segments:i.segments}),!n&&!r&&t.push(i),t}function Jn(e,t){let n=new Set([...t.setContentByPane.keys(),...t.appendChunkByPane.keys()]);for(let r of n){let n=t.setContentByPane.get(r),i=t.appendChunkByPane.get(r),a=i?qn(i):[];t.lastSegmentActionByPane.get(r)===`set-content`?(e.push(...a),n&&e.push(n)):(n&&e.push(n),e.push(...a))}}function Yn(e){let t=[];for(let n of e.modelByPane.values())t.push(n);for(let n of e.eventCountByPane.values())t.push(n);Kn(t,e.contentByPane,d.AppendStreamContent),Kn(t,e.thinkingByPane,d.AppendStreamThinking),Jn(t,e);for(let n of e.toolProgressById.values())t.push(n);for(let n of e.toolOutputById.values())t.push(n);return t.push(...e.other),t}function Xn(e){return e.length<=1?e:Yn(Gn(e))}function Zn(e=p){let t=e,n=new Set,r=0,i=[];function a(){return t}function o(){for(let e of n)e()}function s(e){let n=Bn(t,e);n!==t&&(t=n)}function c(){if(r=0,i.length===0)return;let e=i.splice(0,i.length);for(let t of Xn(e))s(t);o()}function l(e){if(Vn.has(e.type)){i.push(e),r===0&&(r=requestAnimationFrame(c));return}i.length>0&&(r!==0&&(cancelAnimationFrame(r),r=0),c()),s(e),o()}function u(e){return n.add(e),function(){n.delete(e)}}return{getState:a,dispatch:l,subscribe:u}}var Qn=t(),Q=e(n(),1),$n=(0,Q.createContext)(null);function $(){let e=(0,Q.useContext)($n);if(!e)throw Error(`useAppStore must be used within an AppStoreContext.Provider`);return e}function er(e){let t=(0,Qn.c)(3),n=$(),r;t[0]!==e||t[1]!==n?(r=function(){return e(n.getState())},t[0]=e,t[1]=n,t[2]=r):r=t[2];let i=r;return(0,Q.useSyncExternalStore)(n.subscribe,i,i)}function tr(){return $().dispatch}function nr(e){let t=(0,Qn.c)(8),n=tr(),r;t[0]===e?r=t[1]:(r=t=>(e?t.terminalStates[e]:void 0)??m,t[0]=e,t[1]=r);let i=er(r),a;t[2]!==n||t[3]!==e?(a=t=>{e&&n({...t,threadId:e})},t[2]=n,t[3]=e,t[4]=a):a=t[4];let o=a,s;return t[5]!==o||t[6]!==i?(s={terminalState:i,dispatch:o},t[5]=o,t[6]=i,t[7]=s):s=t[7],s}export{f as $,Rt as A,ve as B,B as C,Vt as D,Kt as E,N as F,b as G,y as H,bt as I,oe as J,le as K,_t as L,F as M,R as N,Gt as O,kt as P,d as Q,xe as R,W as S,Ht as T,re as U,be as V,ne as W,ie as X,se as Y,ee as Z,Zt as _,nr as a,Xt as b,Fn as c,An as d,Tn as f,En as g,nn as h,$ as i,I as j,qt as k,Nn as l,Dn as m,tr as n,Zn as o,Y as p,ue as q,er as r,Mn as s,$n as t,jn as u,G as v,Wt as w,Ut as x,U as y,ye as z};
@@ -1 +0,0 @@
1
- var e=new Map;function t(t,n){let r=e.get(t);return r||(r={promise:n().catch(n=>{throw e.delete(t),n})},e.set(t,r)),r.promise}function n(t){e.delete(t)}function r(t){for(let n of e.keys())n.startsWith(t)&&e.delete(n)}export{r as n,t as r,n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{g as i,h as a,t as o,u as s}from"./dist-CNOCRPxn.js";import{c,t as l}from"./utils-CT-Dw22R.js";import{t as u}from"./dist-rO95BjzU.js";import{t as d}from"./dist-CSssbxDI.js";var f=t(),p=e(n(),1),m=r(),h=`Switch`,[g,_]=a(h),[v,y]=g(h),b=p.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:a,defaultChecked:l,required:u,disabled:d,value:f=`on`,onCheckedChange:g,form:_,...y}=e,[b,x]=p.useState(null),S=c(t,e=>x(e)),C=p.useRef(!1),E=b?_||!!b.closest(`form`):!0,[D,O]=o({prop:a,defaultProp:l??!1,onChange:g,caller:h});return(0,m.jsxs)(v,{scope:n,checked:D,disabled:d,children:[(0,m.jsx)(s.button,{type:`button`,role:`switch`,"aria-checked":D,"aria-required":u,"data-state":T(D),"data-disabled":d?``:void 0,disabled:d,value:f,...y,ref:S,onClick:i(e.onClick,e=>{O(e=>!e),E&&(C.current=e.isPropagationStopped(),C.current||e.stopPropagation())})}),E&&(0,m.jsx)(w,{control:b,bubbles:!C.current,name:r,value:f,checked:D,required:u,disabled:d,form:_,style:{transform:`translateX(-100%)`}})]})});b.displayName=h;var x=`SwitchThumb`,S=p.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=y(x,n);return(0,m.jsx)(s.span,{"data-state":T(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});S.displayName=x;var C=`SwitchBubbleInput`,w=p.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=p.useRef(null),s=c(o,a),l=d(n),f=u(t);return p.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[l,n,r]),(0,m.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...f,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});w.displayName=C;function T(e){return e?`checked`:`unchecked`}var E=b,D=S,O=p.forwardRef((e,t)=>{let n=(0,f.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=l(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,m.jsx)(D,{className:l(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,m.jsx)(E,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});O.displayName=E.displayName;export{O as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ot as i}from"./dist-DjiNKpTV.js";import{t as a}from"./utils-CT-Dw22R.js";var o=t(),s=e(n(),1),c=r(),l=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(`w-full caption-bottom`,i.body,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,c.jsx)(`table`,{ref:t,className:l,...s})}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});l.displayName=`Table`;var u=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`[&_tr]:border-b`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`thead`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});u.displayName=`TableHeader`;var d=s.forwardRef((e,t)=>{let n=(0,o.c)(7),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;return n[3]!==r||n[4]!==i||n[5]!==t?(a=(0,c.jsx)(`tbody`,{ref:t,className:r,...i}),n[3]=r,n[4]=i,n[5]=t,n[6]=a):a=n[6],a});d.displayName=`TableBody`;var f=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`border-t font-medium [&>tr]:last:border-b-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`tfoot`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});f.displayName=`TableFooter`;var p=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`tr`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});p.displayName=`TableRow`;var m=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`th`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});m.displayName=`TableHead`;var h=s.forwardRef((e,t)=>{let n=(0,o.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 s;n[3]===r?s=n[4]:(s=a(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`td`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});h.displayName=`TableCell`;var g=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.caption,`mt-4`,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`caption`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});g.displayName=`TableCaption`;export{p as a,m as i,d as n,h as r,l as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-D1GxdEEp.js","assets/rolldown-runtime-aKtaBQYM.js","assets/dist-DjiNKpTV.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,r,t as i}from"./react-vendor-Ee0-5T4I.js";import{A as a,I as o,M as s,N as c,S as l,c as u,d,j as f,k as p,ot as m,p as h,s as g,v as _}from"./dist-DjiNKpTV.js";import{Q as v,n as y,r as b}from"./store-CHF6tOp2.js";import{$ as x,A as S,D as C,Et as w,fn as T,jn as E,ot as ee,q as te,rt as ne,un as re,y as D}from"./dist-CNOCRPxn.js";import{t as O}from"./utils-CT-Dw22R.js";import{t as k}from"./button-B6HDsfd5.js";import{C as ie,Tt as ae,f as oe,qt as se,vt as A}from"./api-D1GxdEEp.js";import{i as j,n as M,t as N}from"./tooltip-BtJG5fZl.js";import{n as P}from"./async-loading-fallback-D2X0o4Qa.js";import{n as ce}from"./scroll-area-BMQFeWmq.js";import{a as le,o as ue,r as de,s as fe,t as pe}from"./dialog--0foS3aw.js";import{n as F}from"./chat-dock-context-8_5G30KG.js";import{n as me,t as I}from"./suspense-resource-DnYnmTbs.js";import{t as he}from"./use-suspense-resource-Dkz6ddFN.js";import{$t as ge,At as L,Fn as _e,Ft as R,Gt as ve,In as ye,It as z,J as be,Jt as xe,Kt as Se,Ln as B,Nt as Ce,Pn as we,Pt as Te,Qt as Ee,Un as De,Ut as Oe,V as ke,Wt as Ae,X as je,Xt as Me,Y as Ne,Yt as Pe,Zt as Fe,an as Ie,dn as Le,en as Re,in as ze,jt as V,kt as H,ln as Be,nn as Ve,on as He,q as Ue,qt as We,rn as Ge,tn as Ke,un as qe,zn as Je}from"./index-BOB3ZUQs.js";import{n as U,t as Ye}from"./toggle-group-DMR7z3pz.js";import{n as W,t as Xe}from"./commit-method-fields-BihSf23f.js";import{t as G}from"./async-error-boundary-DNJqC4BV.js";var K=t(),q=e(n(),1),J=i();function Ze({task:e,disabled:t=!1,onImplementInNewThread:n,onImplementInThisThread:r,onMarkDone:i,onRunNow:a}){let[o,s]=(0,q.useState)(!1),c=xe(e),l=e.status!==`Done`,u=Pe(e),d=t||o||!c&&!l&&!u;async function f(e){s(!0);try{await e()}finally{s(!1)}}return(0,J.jsxs)(we,{children:[(0,J.jsx)(De,{asChild:!0,children:(0,J.jsxs)(k,{variant:`ghost`,size:`icon`,className:O(`h-8 w-8 shrink-0`,e.working&&`text-primary`),disabled:d,children:[o||e.working?(0,J.jsx)(w,{className:`h-4 w-4 animate-spin`}):(0,J.jsx)(T,{className:`h-4 w-4`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,J.jsxs)(ye,{align:`end`,children:[c&&(0,J.jsx)(B,{onClick:()=>void f(()=>r(e)),children:`Do This`}),u&&(0,J.jsx)(B,{onClick:()=>void f(()=>a(e)),children:`Run Now`}),c&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Je,{}),(0,J.jsx)(B,{onClick:()=>void f(()=>n(e)),children:`Do this in a new workspace`})]}),l&&(0,J.jsx)(B,{onClick:()=>void f(()=>i(e)),children:`Mark as Done`})]})]})}function Qe(e){let t=(0,K.c)(14),{tag:n,onRemove:r,className:i}=e,a;t[0]===i?a=t[1]:(a=O(m.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,i),t[0]=i,t[1]=a);let o;t[2]===n.color?o=t[3]:(o=(0,J.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,J.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]!==r||t[7]!==n.name?(c=r&&(0,J.jsx)(`button`,{type:`button`,className:`ml-0.5 shrink-0 rounded-full opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r()},"aria-label":`Remove ${n.name}`,children:(0,J.jsxs)(`svg`,{className:`h-3 w-3`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,J.jsx)(`line`,{x1:`3`,y1:`3`,x2:`9`,y2:`9`}),(0,J.jsx)(`line`,{x1:`9`,y1:`3`,x2:`3`,y2:`9`})]})}),t[6]=r,t[7]=n.name,t[8]=c):c=t[8];let l;return t[9]!==a||t[10]!==o||t[11]!==s||t[12]!==c?(l=(0,J.jsxs)(`span`,{className:a,children:[o,s,c]}),t[9]=a,t[10]=o,t[11]=s,t[12]=c,t[13]=l):l=t[13],l}var $e={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function et(e){let t=(0,K.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=O(m.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let a=$e[n],o;t[2]===a?o=t[3]:(o=(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:a}}),t[2]=a,t[3]=o);let s;t[4]===n?s=t[5]:(s=(0,J.jsx)(`span`,{className:`truncate`,children:n}),t[4]=n,t[5]=s);let c;return t[6]!==i||t[7]!==o||t[8]!==s?(c=(0,J.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function tt({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0}){let[o,l]=(0,q.useState)(``),[u,d]=(0,q.useState)(!1),[h,g]=(0,q.useState)(0),_=(0,q.useRef)(null),v=(0,q.useMemo)(()=>new Set(e.map(e=>f(e.name))),[e]),y=e.length>=10,b=(0,q.useMemo)(()=>{let e=o.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=f(e.name);v.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of p){let t=f(e);!v.has(t)&&!r.has(t)&&r.set(t,{name:e,color:a(t)})}let l=(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&&!y){let t=s(e),n=f(t),i=v.has(n)||r.has(n),o=!c(t);!i&&o&&l.push({name:t,color:a(n),isCreate:!0})}return l},[o,t,v,y]);(0,q.useEffect)(()=>{g(0)},[o]),(0,q.useEffect)(function(){if(!u||y)return;let e=requestAnimationFrame(function(){_.current?.focus()});return function(){cancelAnimationFrame(e)}},[u,y]);function x(r){if(y)return;let i=s(r),o=f(i);if(v.has(o))return;let c=t.find(e=>f(e.name)===o)??{id:`new:${o}`,name:i,color:a(o)};n([...e,c]),l(``)}function S(t){n(e.filter(e=>e.id!==t.id))}function C(t){if(t.key===`ArrowDown`)t.preventDefault(),u||d(!0),g(e=>(e+1)%Math.max(b.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),g(e=>(e-1+b.length)%Math.max(b.length,1));else if(t.key===`Enter`){t.preventDefault();let e=b[h];e&&x(e.name)}else t.key===`Backspace`&&!o&&e.length>0?S(e[e.length-1]):t.key===`Escape`&&(d(!1),_.current?.blur())}return(0,J.jsxs)(Be,{open:u,onOpenChange:function(e){d(e),e||l(``)},children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[e.map(function(e){return(0,J.jsx)(Qe,{tag:e,onRemove:()=>S(e)},e.id)}),(0,J.jsx)(Le,{asChild:!0,children:(0,J.jsx)(k,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:y,"aria-label":y?`Max 10 tags`:`Add tag`,className:O(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,y&&`opacity-50`),children:(0,J.jsx)(ne,{className:`h-3 w-3`})})})]}),(0,J.jsxs)(qe,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,J.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,J.jsx)(`input`,{ref:_,type:`text`,value:o,onChange:function(e){l(e.target.value)},onKeyDown:C,placeholder:y?`Max 10 tags`:r,disabled:y,className:O(m.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,J.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},children:b.length===0?(0,J.jsx)(`p`,{className:O(m.bodyMuted,`px-3 py-4 text-center`),children:y?`Tag limit reached`:`No tags found`}):b.map(function(e,t){return(0,J.jsxs)(`button`,{type:`button`,className:O(m.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,h===t&&`bg-accent`),onClick:function(){x(e.name),_.current?.focus()},children:[(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,J.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,J.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function nt({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[a,o]=(0,q.useState)(null),[s,c]=(0,q.useState)(``),[l,u]=(0,q.useState)(``),[d,f]=(0,q.useState)(!1),[p,h]=(0,q.useState)(!1),[g,_]=(0,q.useState)(null),[v,y]=(0,q.useState)(null);function b(e){o(e.id),c(e.name),_(null)}function x(){o(null),c(``),_(null)}async function S(){let e=l.trim();if(e){h(!0),_(null);try{let t=await Ee(n,e);i([...r,t]),u(``)}catch(e){_(e instanceof Error?e.message:`Failed to create tag`)}finally{h(!1)}}}async function T(e){let t=s.trim();if(t){f(!0),_(null);try{let a=await ze(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{f(!1)}}}async function ee(e){f(!0),_(null);try{await Re(n,e),i(r.filter(t=>t.id!==e)),y(null),a===e&&x()}catch(e){_(e instanceof Error?e.message:`Failed to delete tag`)}finally{f(!1)}}return(0,J.jsx)(pe,{open:e,onOpenChange:t,children:(0,J.jsxs)(de,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,J.jsx)(ue,{children:(0,J.jsx)(fe,{children:`Manage Tags`})}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,J.jsx)(z,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&S(),e.key===`Escape`&&u(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:p}),(0,J.jsx)(k,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void S(),disabled:p||!l.trim(),children:p?(0,J.jsx)(w,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,J.jsx)(`p`,{className:O(m.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,J.jsx)(ce,{className:`min-h-0 flex-1`,children:(0,J.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=a===e.id,n=v===e.id;return(0,J.jsx)(`div`,{className:O(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!d&&`cursor-pointer`),onClick:()=>{!d&&!t&&!n&&b(e)},children:t?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(z,{value:s,onChange:e=>c(e.target.value),onKeyDown:t=>{t.key===`Enter`&&T(e.id),t.key===`Escape`&&x()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:d}),(0,J.jsx)(k,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void T(e.id),disabled:d||!s.trim(),children:d?(0,J.jsx)(w,{className:`h-4 w-4 animate-spin`}):(0,J.jsx)(E,{className:`h-4 w-4`})}),(0,J.jsx)(k,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:x,disabled:d,children:(0,J.jsx)(D,{className:`h-4 w-4`})})]}):n?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:O(m.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,J.jsx)(k,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void ee(e.id),disabled:d,children:d?(0,J.jsx)(w,{className:`h-4 w-4 animate-spin`}):(0,J.jsx)(E,{className:`h-4 w-4`})}),(0,J.jsx)(k,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>y(null),disabled:d,children:(0,J.jsx)(D,{className:`h-4 w-4`})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,J.jsx)(`span`,{className:O(m.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,J.jsxs)(`span`,{className:O(m.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,J.jsx)(k,{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(),y(e.id)},disabled:d,"aria-label":`Delete ${e.name}`,children:(0,J.jsx)(C,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),g&&(0,J.jsx)(`p`,{className:O(m.caption,`text-destructive`),children:g})]})})}var rt=`09:00`;function Y(e){return String(e).padStart(2,`0`)}function it(){let e=new Date(Date.now()+3600*1e3);return`${e.getFullYear()}-${Y(e.getMonth()+1)}-${Y(e.getDate())}T${Y(e.getHours())}:${Y(e.getMinutes())}`}function at(){return{kind:`manual`,scheduleMode:`once`,scheduledAtLocal:it(),preset:`daily`,presetTime:rt,dayOfWeek:new Date().getDay(),timezone:d(),enabled:!0,eventKey:``}}function ot(e){let t=at();if(e.triggerType===`schedule`){if(e.scheduleCron){let n=h(e.scheduleCron);return{kind:`schedule`,scheduleMode:`repeating`,scheduledAtLocal:t.scheduledAtLocal,preset:n?.preset??`daily`,presetTime:n?.time??rt,dayOfWeek:n?.dayOfWeek??new Date().getDay(),timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}if(e.scheduledAt){let n=new Date(e.scheduledAt);return{kind:`schedule`,scheduleMode:`once`,scheduledAtLocal:Number.isNaN(n.getTime())?t.scheduledAtLocal:`${n.getFullYear()}-${Y(n.getMonth()+1)}-${Y(n.getDate())}T${Y(n.getHours())}:${Y(n.getMinutes())}`,preset:t.preset,presetTime:t.presetTime,dayOfWeek:t.dayOfWeek,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}}return e.triggerType===`event`?{...t,kind:`event`,enabled:e.enabled!==!1,eventKey:e.eventKey??``}:t}function st(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function ct(e){return e.kind===`manual`?{triggerType:null,scheduledAt:null,scheduleCron:null,timezone:null,enabled:!0,eventKey:null}:e.kind===`event`?{triggerType:`event`,scheduledAt:null,scheduleCron:null,timezone:null,enabled:e.enabled,eventKey:e.eventKey.trim()||null}:e.scheduleMode===`once`?{triggerType:`schedule`,scheduledAt:st(e.scheduledAtLocal),scheduleCron:null,timezone:e.timezone,enabled:e.enabled,eventKey:null}:{triggerType:`schedule`,scheduledAt:null,scheduleCron:u(e.preset,e.presetTime,e.dayOfWeek),timezone:e.timezone,enabled:e.enabled,eventKey:null}}function lt(e){return e.kind!==`manual`}function ut(e){return e.kind===`manual`?null:g(ct(e))}function dt(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 X(e){return e.startsWith(`Event key`)}function ft(e,t){return JSON.stringify(e)===JSON.stringify(t)}var pt=[{value:`0`,label:`Sunday`},{value:`1`,label:`Monday`},{value:`2`,label:`Tuesday`},{value:`3`,label:`Wednesday`},{value:`4`,label:`Thursday`},{value:`5`,label:`Friday`},{value:`6`,label:`Saturday`}];function Z(e,t){return{...e,...t}}function mt(e){let t=(0,K.c)(42),{value:n,onChange:r,collapsed:i,onCollapsedChange:a,showCollapseControl:o,error:s}=e,c=i===void 0?!1:i,l=o===void 0?!1:o,u=s===void 0?null:s,d;t[0]!==r||t[1]!==n?(d=function(e){r(Z(n,{kind:e}))},t[0]=r,t[1]=n,t[2]=d):d=t[2];let f=d,p;t[3]!==r||t[4]!==n?(p=function(e){r(Z(n,{scheduleMode:e}))},t[3]=r,t[4]=n,t[5]=p):p=t[5];let h=p;if(l&&c){let e;return t[6]===a?e=t[7]:(e=(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(k,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a?.(!1),children:`Add schedule or event trigger`})}),t[6]=a,t[7]=e),e}let g;t[8]!==r||t[9]!==a||t[10]!==l||t[11]!==n?(g=l&&(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,J.jsx)(`p`,{className:O(m.label),children:`Trigger`}),(0,J.jsxs)(k,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:()=>{r(Z(n,{kind:`manual`})),a?.(!0)},children:[(0,J.jsx)(D,{className:`h-4 w-4`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Remove trigger`})]})]}),t[8]=r,t[9]=a,t[10]=l,t[11]=n,t[12]=g):g=t[12];let _;t[13]===f?_=t[14]:(_=e=>{(e===`manual`||e===`schedule`||e===`event`)&&f(e)},t[13]=f,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,J.jsx)(U,{value:`manual`,"aria-label":`Manual`,className:O(m.body,W),children:`Manual`}),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(U,{value:`schedule`,"aria-label":`Schedule`,className:O(m.body,W),children:`Schedule`}),t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,J.jsx)(U,{value:`event`,"aria-label":`Event`,className:O(m.body,W),children:`Event`}),t[17]=b):b=t[17];let x;t[18]!==_||t[19]!==n.kind?(x=(0,J.jsxs)(Ye,{type:`single`,value:n.kind,onValueChange:_,"aria-label":`Trigger type`,className:Xe,children:[v,y,b]}),t[18]=_,t[19]=n.kind,t[20]=x):x=t[20];let S;t[21]!==r||t[22]!==h||t[23]!==n?(S=n.kind===`schedule`&&(0,J.jsxs)(`div`,{className:`space-y-4 border-t border-border pt-4`,children:[(0,J.jsxs)(Ye,{type:`single`,value:n.scheduleMode,onValueChange:e=>{(e===`once`||e===`repeating`)&&h(e)},"aria-label":`Schedule mode`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,J.jsx)(U,{value:`once`,"aria-label":`Once`,className:O(m.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Once`}),(0,J.jsx)(U,{value:`repeating`,"aria-label":`Repeating`,className:O(m.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Repeating`})]}),n.scheduleMode===`once`?(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(R,{htmlFor:`schedule-once-at`,children:`Run at`}),(0,J.jsx)(z,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:e=>r(Z(n,{scheduledAtLocal:e.target.value}))})]}):(0,J.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(R,{children:`Preset`}),(0,J.jsxs)(H,{value:n.preset,onValueChange:e=>r(Z(n,{preset:e})),children:[(0,J.jsx)(Ce,{children:(0,J.jsx)(Te,{})}),(0,J.jsxs)(L,{children:[(0,J.jsx)(V,{value:`daily`,children:`Daily`}),(0,J.jsx)(V,{value:`weekdays`,children:`Weekdays`}),(0,J.jsx)(V,{value:`weekly`,children:`Weekly`})]})]})]}),n.preset===`weekly`&&(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(R,{children:`Day`}),(0,J.jsxs)(H,{value:String(n.dayOfWeek),onValueChange:e=>r(Z(n,{dayOfWeek:Number(e)})),children:[(0,J.jsx)(Ce,{children:(0,J.jsx)(Te,{})}),(0,J.jsx)(L,{children:pt.map(function(e){return(0,J.jsx)(V,{value:e.value,children:e.label},e.value)})})]})]}),(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(R,{htmlFor:`schedule-time`,children:`Time`}),(0,J.jsx)(z,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r(Z(n,{presetTime:e.target.value}))})]})]}),(0,J.jsxs)(`p`,{className:O(m.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]})]}),t[21]=r,t[22]=h,t[23]=n,t[24]=S):S=t[24];let C;t[25]!==u||t[26]!==r||t[27]!==n?(C=n.kind===`event`&&(0,J.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,J.jsx)(R,{htmlFor:`event-key`,children:`Event Key`}),(0,J.jsx)(z,{id:`event-key`,value:n.eventKey,placeholder:`door.opened`,"aria-invalid":!!(u&&X(u)),onChange:e=>r(Z(n,{eventKey:e.target.value}))}),u&&X(u)?(0,J.jsx)(`p`,{className:O(m.caption,`text-destructive`),children:u}):(0,J.jsxs)(`p`,{className:O(m.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,J.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]})]}),t[25]=u,t[26]=r,t[27]=n,t[28]=C):C=t[28];let w;t[29]!==u||t[30]!==n.kind?(w=u&&n.kind!==`event`?(0,J.jsx)(`p`,{className:O(m.caption,`text-destructive`),children:u}):null,t[29]=u,t[30]=n.kind,t[31]=w):w=t[31];let T;t[32]!==r||t[33]!==n?(T=n.kind!==`manual`&&(0,J.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,J.jsx)(R,{children:`Status`}),(0,J.jsxs)(Ye,{type:`single`,value:n.enabled?`active`:`paused`,onValueChange:e=>{(e===`active`||e===`paused`)&&r(Z(n,{enabled:e===`active`}))},"aria-label":`Trigger status`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,J.jsx)(U,{value:`active`,"aria-label":`Active`,className:O(m.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Active`}),(0,J.jsx)(U,{value:`paused`,"aria-label":`Paused`,className:O(m.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Paused`})]})]}),t[32]=r,t[33]=n,t[34]=T):T=t[34];let E;return t[35]!==x||t[36]!==S||t[37]!==C||t[38]!==w||t[39]!==T||t[40]!==g?(E=(0,J.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[g,x,S,C,w,T]}),t[35]=x,t[36]=S,t[37]=C,t[38]=w,t[39]=T,t[40]=g,t[41]=E):E=t[41],E}var Q=l(`app.task-list.ui`);function ht(e){let t=(0,K.c)(28),{onSearchTermChange:n}=e,[r,i]=(0,q.useState)(!1),[a,o]=(0,q.useState)(``),s;t[0]===n?s=t[1]:(s=function(e){o(e),n(e)},t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=function(){o(``),n(``),i(!1)},t[2]=n,t[3]=l);let u=l,d;t[4]!==u||t[5]!==r?(d=()=>{r?u():i(!0)},t[4]=u,t[5]=r,t[6]=d):d=t[6];let f,p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,J.jsx)(te,{className:`h-4 w-4`}),p=(0,J.jsx)(`span`,{className:`sr-only`,children:`Search tasks`}),t[7]=f,t[8]=p):(f=t[7],p=t[8]);let m;t[9]!==r||t[10]!==d?(m=(0,J.jsx)(j,{asChild:!0,children:(0,J.jsxs)(k,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:d,"aria-expanded":r,children:[f,p]})}),t[9]=r,t[10]=d,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(M,{children:`Search tasks`}),t[12]=h):h=t[12];let g;t[13]===m?g=t[14]:(g=(0,J.jsxs)(N,{children:[m,h]}),t[13]=m,t[14]=g);let _=r?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,v;t[15]===_?v=t[16]:(v=O(`overflow-hidden transition-[width,opacity] duration-200`,_),t[15]=_,t[16]=v);let y;t[17]!==u||t[18]!==c||t[19]!==r||t[20]!==a?(y=r&&(0,J.jsx)(z,{type:`search`,value:a,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Escape`&&u()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[17]=u,t[18]=c,t[19]=r,t[20]=a,t[21]=y):y=t[21];let b;t[22]!==v||t[23]!==y?(b=(0,J.jsx)(`div`,{className:v,children:y}),t[22]=v,t[23]=y,t[24]=b):b=t[24];let x;return t[25]!==b||t[26]!==g?(x=(0,J.jsxs)(`div`,{className:`flex items-center`,children:[g,b]}),t[25]=b,t[26]=g,t[27]=x):x=t[27],x}function gt({projectId:e,onThreadSelect:t,initialTasks:n}){let r=y(),i=b(e=>e.projects),a=b(e=>e.selectedThreadId),o=b(e=>e.processingThreadIds),s=b(e=>e.pendingChatMessage),c=b(e=>e.queuedChatMessages),l=b(e=>e.projectModelSelections),u=i.find(t=>t.projectId===e),d=u?.threads.find(e=>e.threadId===a),p=a?l[a]:void 0,[h,g]=(0,q.useState)(n),[C,T]=(0,q.useState)(!1),[E,te]=(0,q.useState)(null),[D,A]=(0,q.useState)(``),[P,F]=(0,q.useState)(!1),[I,he]=(0,q.useState)([]),[L,R]=(0,q.useState)(new Set),[ve,z]=(0,q.useState)(``),[xe,Ce]=(0,q.useState)(!1),[Te,Ee]=(0,q.useState)(!1),[Ae,Pe]=(0,q.useState)([]),[Le,Re]=(0,q.useState)([]),[ze,V]=(0,q.useState)(at),[H,Be]=(0,q.useState)(at),[qe,U]=(0,q.useState)(!0),[Ye,W]=(0,q.useState)(null),[Xe,G]=(0,q.useState)(null);(0,q.useEffect)(()=>{Ve(e).then(he).catch(e=>Q.error(`Failed to fetch project tags:`,e))},[e]);let{setActions:K}=ke(),$e=(0,q.useCallback)(function(e){R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),rt=(0,q.useCallback)(async function(){Ee(!0);try{await oe(e),g(await Ge(e)),Y(),$(),se();let t=await ae();r({type:v.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){Q.error(`Failed to refresh project tasks:`,e)}finally{Ee(!1)}},[e,r]);(0,q.useEffect)(()=>(K((0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(ht,{onSearchTermChange:z}),(0,J.jsxs)(N,{children:[(0,J.jsx)(j,{asChild:!0,children:(0,J.jsxs)(k,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>void rt(),disabled:Te,children:[(0,J.jsx)(x,{className:O(`h-4 w-4`,Te&&`animate-spin`)}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,J.jsx)(M,{children:`Refresh`})]}),(0,J.jsxs)(we,{children:[(0,J.jsxs)(N,{children:[(0,J.jsx)(j,{asChild:!0,children:(0,J.jsx)(De,{asChild:!0,children:(0,J.jsxs)(k,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,J.jsx)(S,{className:`h-4 w-4`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,J.jsx)(M,{children:`Tags`})]}),(0,J.jsxs)(ye,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[I.length===0?(0,J.jsx)(B,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):I.map(function(e){return(0,J.jsxs)(_e,{checked:L.has(e.id),onCheckedChange:()=>$e(e.id),onSelect:e=>e.preventDefault(),children:[(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,J.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)}),(0,J.jsx)(Je,{}),(0,J.jsxs)(B,{onClick:()=>Ce(!0),children:[(0,J.jsx)(ee,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]})),()=>K(null)),[K,I,L,$e,Te,rt]);function Y(){me(`project-tasks:${e}:`)}let it=u?.tasksModifiedCount??0,st=(0,q.useRef)({});(0,q.useEffect)(()=>{let t=st.current[e]??0;if(it===0){st.current[e]=0;return}t!==it&&(st.current[e]=it,it>t&&rt())},[it,e,rt]),(0,q.useEffect)(()=>{if(!h.some(e=>e.working))return;let t=setInterval(async()=>{try{let n=await Ge(e);g(n),n.some(e=>e.working)||clearInterval(t)}catch(e){Q.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[h,e]),(0,q.useEffect)(()=>{g(n)},[n]),(0,q.useEffect)(()=>{C&&(A(``),Pe([]),V(at()),U(!0))},[C]),(0,q.useEffect)(()=>{E&&(Re(E.task.tags??[]),Be(ot(E.task)))},[E]);function X(e){g(t=>t.map(t=>t.id===e.id?e:t))}function pt(e){A(e.description),te({task:e}),G(null)}function Z(){te(null),A(``),G(null)}function gt(e,t){if(e)return null;let n=ut(t);return n?dt(n):null}async function _t(){if(!D.trim())return;let t=gt(qe,ze);if(t){W(t);return}W(null),F(!0);try{let t=Ae.map(e=>e.name),n=qe?{}:ct(ze),r=await ge(e,D,{threadId:a??void 0,provider:p?.provider??d?.modelProvider,model:p?.id??d?.model,tags:t.length>0?t:void 0,...n});g(e=>[...e,r]),Y(),$(),T(!1),A(``),Pe([]),W(null)}catch(e){W(dt(e instanceof Error?e.message:`Failed to add task`)),Q.error(`Failed to add task:`,e)}finally{F(!1)}}async function vt(){if(!D.trim()||!E)return;let t=gt(!lt(H),H);if(t){G(t);return}G(null),F(!0);try{let t=D.trim(),n=t!==E.task.description.trim(),r=Le.map(e=>e.name),i=new Set((E.task.tags??[]).map(e=>f(e.name))),o=new Set(r.map(e=>f(e))),s=i.size!==o.size||[...o].some(e=>!i.has(e)),c=!ft(ot(E.task),H),l=c?ct(H):{};if(!n&&!s&&!c){Z();return}let u=await He(e,E.task.id,{description:n?t:void 0,threadId:a??void 0,provider:p?.provider??d?.modelProvider,model:p?.id??d?.model,tags:s?r:void 0,...l});g(e=>e.map(e=>e.id===u.id?u:e)),Y(),s&&$(),Z()}catch(e){G(dt(e instanceof Error?e.message:`Failed to save task`)),Q.error(`Failed to save task:`,e)}finally{F(!1)}}async function yt(){if(E){F(!0);try{await Ke(e,E.task.id),g(e=>e.filter(e=>e.id!==E.task.id)),Y(),$(),Z()}catch(e){Q.error(`Failed to delete task:`,e)}finally{F(!1)}}}function $(){Ve(e).then(he).catch(e=>Q.error(`Failed to refresh project tags:`,e))}function bt(t){let n=new Set(t.map(function(e){return e.id}));he(t),R(function(e){return new Set([...e].filter(e=>n.has(e)))}),Ge(e).then(g).catch(e=>Q.error(`Failed to refresh tasks after tag change:`,e))}async function xt(n){let i=await ie(e);if(!i)return;let a=null,o=null,s=await Oe(i,t=>{o||(o=t,r({type:v.AddCreatingThread,projectId:e,threadId:t,title:We(u)}),r({type:v.AddProcessingThread,threadId:t})),He(e,n.id,{status:`Build`,working:!0,threadId:t}).then(e=>{a=e,X(e)})});if(!s){o&&(r({type:v.RemoveCreatingThread,projectId:e,threadId:o}),r({type:v.RemoveProcessingThread,threadId:o}));return}r({type:v.RemoveProcessingThread,threadId:s});try{await Se(r)}catch(e){Q.error(`Failed to refresh projects after task thread creation:`,e)}await be(e,n,`Build`,s,a,X);let c=await Ne(e,s);if(!c){Q.error(`No model configuration found. Please configure a model and provider for this project first.`);return}Ue(r,s,c.model,c.provider),t?await t(s):r({type:v.SelectThread,threadId:s,projectId:e}),r({type:v.SetPendingChatMessage,message:{threadId:s,message:n.description,model:c.model,provider:c.provider}})}async function St(n){if(!a){Q.error(`No selected thread found for project task implementation.`);return}let i=await Ne(e,a);if(!i){Q.error(`No model configuration found. Please configure a model and provider for this project first.`);return}if(Ue(r,a,i.model,i.provider),X(await He(e,n.id,{status:`Build`,working:!0,threadId:a})),t?await t(a):r({type:v.SelectThread,threadId:a,projectId:e}),o.includes(a)||s?.threadId===a||c.some(e=>e.threadId===a)){r({type:v.EnqueueChatMessage,message:{id:_(),threadId:a,paneId:`primary`,message:n.description,model:i.model,attachments:[],provider:i.provider}});return}r({type:v.SetPendingChatMessage,message:{threadId:a,message:n.description,model:i.model,provider:i.provider}})}async function Ct(t){X(await Ie(e,t.id)),Y()}async function wt(t){X(await He(e,t.id,{status:`Done`,working:!1})),Y()}let Tt=Fe(h).filter(function(e){return e.status!==`Done`}),Et=ve.trim().toLocaleLowerCase(),Dt=Tt.filter(e=>{let t=new Set((e.tags??[]).map(function(e){return e.id})),n=L.size===0||[...L].every(e=>t.has(e)),r=[e.title,e.description,...(e.tags??[]).map(function(e){return e.name})].join(` `).toLocaleLowerCase(),i=!Et||r.includes(Et);return n&&i});return(0,J.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[(0,J.jsx)(ce,{className:`min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,J.jsx)(`div`,{className:`pb-14`,children:Tt.length===0?(0,J.jsx)(`p`,{className:O(m.bodyMuted,`px-4 py-8 text-center`),children:`No active tasks yet. Add one to get started.`}):Dt.length===0?(0,J.jsx)(`p`,{className:O(m.bodyMuted,`px-4 py-8 text-center`),children:`No tasks match the current filters.`}):(0,J.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:Dt.map(e=>(0,J.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(0,1fr)_auto] grid-rows-[auto_auto] gap-x-2 gap-y-1 px-4 py-3 hover:bg-accent/40 sm:flex sm:items-start sm:gap-4`,children:[(0,J.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:()=>pt(e),children:[(0,J.jsx)(`p`,{className:O(m.label,`truncate leading-normal`),children:e.title}),(0,J.jsx)(`p`,{className:O(m.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),children:e.description}),Me(e)&&(0,J.jsx)(`p`,{className:O(m.caption,`mt-1 text-muted-foreground`),children:Me(e)}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,J.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[e.status!==`Ready`&&(0,J.jsx)(et,{status:e.status}),e.modified&&(0,J.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,J.jsx)(Qe,{tag:e},e.id)})]})]}),(0,J.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:()=>pt(e),children:(0,J.jsx)(`p`,{className:O(m.caption,`line-clamp-4 break-all text-muted-foreground`),children:e.description})}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,J.jsxs)(`div`,{className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`,children:[e.status!==`Ready`&&(0,J.jsx)(et,{status:e.status}),e.modified&&(0,J.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,J.jsx)(Qe,{tag:e},e.id)})]}),(0,J.jsxs)(`div`,{className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start`,children:[e.threadId&&t&&(0,J.jsxs)(N,{children:[(0,J.jsx)(j,{asChild:!0,children:(0,J.jsxs)(k,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>t(e.threadId),children:[(0,J.jsx)(re,{className:`h-4 w-4`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Open thread`})]})}),(0,J.jsx)(M,{children:`Open thread`})]}),(0,J.jsx)(Ze,{task:e,onImplementInNewThread:xt,onImplementInThisThread:St,onMarkDone:wt,onRunNow:Ct})]})]},e.id))})})}),(0,J.jsxs)(N,{children:[(0,J.jsx)(j,{asChild:!0,children:(0,J.jsxs)(k,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-10 w-10 rounded-full shadow-lg`,onClick:()=>T(!0),children:[(0,J.jsx)(ne,{className:`h-5 w-5`}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Add task`})]})}),(0,J.jsx)(M,{children:`Add task`})]}),(0,J.jsx)(pe,{open:C,onOpenChange:e=>{T(e),e||W(null)},children:(0,J.jsxs)(de,{className:`max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:max-h-[calc(100svh-2rem)]`,children:[(0,J.jsx)(ue,{children:(0,J.jsxs)(N,{children:[(0,J.jsx)(j,{asChild:!0,children:(0,J.jsx)(fe,{className:`w-fit cursor-help`,children:`Add Task`})}),(0,J.jsx)(M,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`})]})}),(0,J.jsxs)(`div`,{className:`py-2`,children:[(0,J.jsx)(je,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>A(e.target.value),rows:12,className:`max-h-[min(16rem,40svh)] resize-none text-base sm:max-h-none`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&_t()}}),(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(tt,{selectedTags:Ae,existingTags:I,onChange:Pe,allowCreate:!1})}),(0,J.jsx)(mt,{value:ze,onChange:e=>{V(e),W(null)},collapsed:qe,onCollapsedChange:U,showCollapseControl:!0,error:Ye})]}),(0,J.jsx)(le,{children:(0,J.jsx)(k,{onClick:()=>void _t(),disabled:P||!D.trim(),children:P?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(w,{className:`mr-1 h-3 w-3 animate-spin`}),`Generating title...`]}):`Add`})})]})}),(0,J.jsx)(pe,{open:E!==null,onOpenChange:e=>!e&&Z(),children:(0,J.jsxs)(de,{className:`max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:max-h-[calc(100svh-2rem)]`,children:[(0,J.jsx)(ue,{children:(0,J.jsx)(fe,{children:`Edit Task`})}),(0,J.jsxs)(`div`,{className:`py-2`,children:[(0,J.jsx)(je,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>A(e.target.value),rows:12,className:`max-h-[min(16rem,40svh)] resize-none text-base sm:max-h-none`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&vt()}}),(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(tt,{selectedTags:Le,existingTags:I,onChange:Re,allowCreate:!1})}),(0,J.jsx)(mt,{value:H,onChange:e=>{Be(e),G(null)},showCollapseControl:!0,collapsed:!lt(H),onCollapsedChange:e=>{e&&Be(at()),G(null)},error:Xe})]}),(0,J.jsxs)(le,{className:`flex-row justify-between gap-2 sm:gap-0`,children:[(0,J.jsx)(k,{variant:`destructive`,onClick:()=>void yt(),disabled:P,children:`Delete`}),(0,J.jsx)(k,{onClick:()=>void vt(),disabled:P||!D.trim(),className:`w-auto`,children:P?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(w,{className:`mr-1 h-3 w-3 animate-spin`}),`Saving...`]}):`Save`})]})]})}),(0,J.jsx)(nt,{open:xe,onOpenChange:Ce,projectId:e,tags:I,onTagsChanged:bt})]})}function _t(e){let t=(0,K.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({projectId:r,loadVersion:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==r?(a=ve(r,n),t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;t[7]===r?o=t[8]:(o=()=>Ae(r),t[7]=r,t[8]=o);let s=he(a,o),c;return t[9]!==s||t[10]!==r||t[11]!==i?(c=(0,J.jsx)(gt,{projectId:r,initialTasks:s,...i}),t[9]=s,t[10]=r,t[11]=i,t[12]=c):c=t[12],c}function vt(e){let t=(0,K.c)(18),n,r;t[0]===e?(n=t[1],r=t[2]):({refreshTrigger:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,[a,o]=(0,q.useState)(0),s,c;t[3]!==n.projectId||t[4]!==i?(s=()=>{i!==0&&o(e=>(I(ve(n.projectId,e)),e+1))},c=[i,n.projectId],t[3]=n.projectId,t[4]=i,t[5]=s,t[6]=c):(s=t[5],c=t[6]),(0,q.useEffect)(s,c);let l;t[7]!==a||t[8]!==n.projectId?(l=function(){I(ve(n.projectId,a)),o(yt)},t[7]=a,t[8]=n.projectId,t[9]=l):l=t[9];let u=l,d;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(P,{className:`h-64`}),t[10]=d):d=t[10];let f=`${n.projectId}:${a}`,p;t[11]!==a||t[12]!==n||t[13]!==f?(p=(0,J.jsx)(q.Suspense,{fallback:d,children:(0,J.jsx)(_t,{...n,loadVersion:a},f)}),t[11]=a,t[12]=n,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==u||t[16]!==p?(m=(0,J.jsx)(G,{fallbackTitle:`Failed to load tasks`,onRetry:u,children:p}),t[15]=u,t[16]=p,t[17]=m):m=t[17],m}function yt(e){return e+1}var $=l(`app.tasks-view.ui`);function bt({projectId:e,refreshTrigger:t}){let n=y(),i=b(e=>e.projects),a=b(e=>e.selectedThreadId),s=b(e=>e.selectedProjectId),{expandWindow:c,hasOpenWindows:l}=F();(0,q.useEffect)(()=>{let e=!1;return(async()=>{try{let{getProjects:t,invalidateProjectsCache:i}=await r(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./api-D1GxdEEp.js`).then(e=>e.r);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));i();let a=await t();e||n({type:v.SetProjects,projects:a.projects,cloneRootPath:a.cloneRootPath})}catch(e){$.error(`Failed to refresh projects on tasks view mount:`,e)}})(),()=>{e=!0}},[n]);async function u(t){if(i.find(t=>t.projectId===e)){l&&c(o);try{let{getProjects:i,invalidateProjectsCache:o}=await r(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./api-D1GxdEEp.js`).then(e=>e.r);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));o();let c=await i();n({type:v.SetProjects,projects:c.projects,cloneRootPath:c.cloneRootPath});let l=c.projects.find(t=>t.projectId===e);if(l&&l.threads.find(e=>e.threadId===t)){(a!==t||s!==e)&&n({type:v.SelectThread,threadId:t,projectId:e});try{let e=await A();n({type:v.SetProcessingThreads,threadIds:e})}catch(e){$.error(`Failed to fetch processing threads after thread selection:`,e)}}}catch(r){$.error(`Failed to refresh projects for thread selection:`,r),(a!==t||s!==e)&&n({type:v.SelectThread,threadId:t,projectId:e});try{let e=await A();n({type:v.SetProcessingThreads,threadIds:e})}catch(e){$.error(`Failed to fetch processing threads after fallback thread selection:`,e)}}}}return(0,J.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,J.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,J.jsx)(vt,{projectId:e,refreshTrigger:t,onThreadSelect:u})})})}export{bt as TasksView};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{ot as i}from"./dist-DjiNKpTV.js";import{g as a,h as o,t as s,u as c}from"./dist-CNOCRPxn.js";import{o as l,t as u}from"./utils-CT-Dw22R.js";import{t as d}from"./dist-OixawqbU.js";import{n as f,r as p,t as m}from"./dist-Bxyh1Ml_.js";var h=t(),g=e(n(),1),_=r(),v=`Toggle`,y=g.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[l,u]=s({prop:n,onChange:i,defaultProp:r??!1,caller:v});return(0,_.jsx)(c.button,{type:`button`,"aria-pressed":l,"data-state":l?`on`:`off`,"data-disabled":e.disabled?``:void 0,...o,ref:t,onClick:a(e.onClick,()=>{e.disabled||u(!l)})})});y.displayName=v;var b=y,x=`ToggleGroup`,[S,C]=o(x,[p]),w=p(),T=g.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,_.jsx)(O,{...r,ref:t});if(n===`multiple`)return(0,_.jsx)(k,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${x}\``)});T.displayName=x;var[E,D]=S(x),O=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??``,onChange:i,caller:x});return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`single`,value:g.useMemo(()=>o?[o]:[],[o]),onItemActivate:c,onItemDeactivate:g.useCallback(()=>c(``),[c]),children:(0,_.jsx)(M,{...a,ref:t})})}),k=g.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??[],onChange:i,caller:x}),l=g.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=g.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,_.jsx)(E,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:l,onItemDeactivate:u,children:(0,_.jsx)(M,{...a,ref:t})})});T.displayName=x;var[A,j]=S(x),M=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...l}=e,u=w(n),p=d(o),m={role:`group`,dir:p,...l};return(0,_.jsx)(A,{scope:n,rovingFocus:i,disabled:r,children:i?(0,_.jsx)(f,{asChild:!0,...u,orientation:a,dir:p,loop:s,children:(0,_.jsx)(c.div,{...m,ref:t})}):(0,_.jsx)(c.div,{...m,ref:t})})}),N=`ToggleGroupItem`,P=g.forwardRef((e,t)=>{let n=D(N,e.__scopeToggleGroup),r=j(N,e.__scopeToggleGroup),i=w(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=g.useRef(null);return r.rovingFocus?(0,_.jsx)(m,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,_.jsx)(F,{...s,ref:t})}):(0,_.jsx)(F,{...s,ref:t})});P.displayName=N;var F=g.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=D(N,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,_.jsx)(y,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),I=T,L=P,R=l(`inline-flex items-center justify-center rounded-md ${i.body} font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},size:{default:`h-10 px-3 min-w-10`,sm:`h-9 px-2.5 min-w-9`,lg:`h-11 px-5 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),z=g.forwardRef((e,t)=>{let n=(0,h.c)(13),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,variant:o,size:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s;n[5]!==r||n[6]!==a||n[7]!==o?(s=u(R({variant:o,size:a,className:r})),n[5]=r,n[6]=a,n[7]=o,n[8]=s):s=n[8];let c;return n[9]!==i||n[10]!==t||n[11]!==s?(c=(0,_.jsx)(b,{ref:t,className:s,...i}),n[9]=i,n[10]=t,n[11]=s,n[12]=c):c=n[12],c});z.displayName=b.displayName;var B=g.createContext({size:`default`,variant:`default`}),V=g.forwardRef((e,t)=>{let n=(0,h.c)(19),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,variant:s,size:o,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c;n[6]===i?c=n[7]:(c=u(`flex items-center justify-center gap-1`,i),n[6]=i,n[7]=c);let l;n[8]!==o||n[9]!==s?(l={variant:s,size:o},n[8]=o,n[9]=s,n[10]=l):l=n[10];let d;n[11]!==r||n[12]!==l?(d=(0,_.jsx)(B.Provider,{value:l,children:r}),n[11]=r,n[12]=l,n[13]=d):d=n[13];let f;return n[14]!==a||n[15]!==t||n[16]!==c||n[17]!==d?(f=(0,_.jsx)(I,{ref:t,className:c,...a,children:d}),n[14]=a,n[15]=t,n[16]=c,n[17]=d,n[18]=f):f=n[18],f});V.displayName=I.displayName;var H=g.forwardRef((e,t)=>{let n=(0,h.c)(17),r,i,a,o,s;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5]):({className:i,children:r,variant:s,size:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s);let c=g.useContext(B),l;n[6]!==i||n[7]!==c.size||n[8]!==c.variant||n[9]!==o||n[10]!==s?(l=u(R({variant:c.variant||s,size:c.size||o}),i),n[6]=i,n[7]=c.size,n[8]=c.variant,n[9]=o,n[10]=s,n[11]=l):l=n[11];let d;return n[12]!==r||n[13]!==a||n[14]!==t||n[15]!==l?(d=(0,_.jsx)(L,{ref:t,className:l,...a,children:r}),n[12]=r,n[13]=a,n[14]=t,n[15]=l,n[16]=d):d=n[16],d});H.displayName=L.displayName;export{H as n,V as t};