tarsk 0.4.20 → 0.4.22

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 (50) hide show
  1. package/dist/index.js +78 -165
  2. package/dist/public/assets/{account-view-D1kGyryt.js → account-view-pOQZWJfl.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-Bk7neo_n.js → alert-dialog-BeLER45U.js} +1 -1
  4. package/dist/public/assets/{api-DL5XaoTS.js → api-Bagaj1rQ.js} +1 -1
  5. package/dist/public/assets/{browser-tab-Cz-q-Pvk.js → browser-tab-DmootUHa.js} +1 -1
  6. package/dist/public/assets/chat-input-container-CfXgimBQ.js +1 -0
  7. package/dist/public/assets/context-menu-BlG_bTqN.js +1 -0
  8. package/dist/public/assets/conversation-history-view-DjO711iz.js +1 -0
  9. package/dist/public/assets/{dialogs-config-DmDjliuA.js → dialogs-config-Dwpv4SNp.js} +1 -1
  10. package/dist/public/assets/{diff-view-VbYca6ii.js → diff-view-B8Grak1p.js} +2 -2
  11. package/dist/public/assets/{explorer-tab-view-uSxyCL34.js → explorer-tab-view-lFzzjVe8.js} +2 -2
  12. package/dist/public/assets/explorer-tree-CyWyxQvY.js +1 -0
  13. package/dist/public/assets/{explorer-view-B0uaxiLf.js → explorer-view-DjN4dtgh.js} +1 -1
  14. package/dist/public/assets/{history-view-BOjZoBCb.js → history-view-BvAOaO8q.js} +1 -1
  15. package/dist/public/assets/index-BPF49zet.css +1 -0
  16. package/dist/public/assets/index-C7dA1l3u.js +50 -0
  17. package/dist/public/assets/onboarding-dialog-DSmKEXk4.js +1 -0
  18. package/dist/public/assets/onboarding-vGz3IczM.js +1 -0
  19. package/dist/public/assets/{page-toolbar-CvreDTwj.js → page-toolbar-CBE5_3E3.js} +1 -1
  20. package/dist/public/assets/{project-settings-view-BJYR_l3u.js → project-settings-view-B13GlkU6.js} +1 -1
  21. package/dist/public/assets/{provider-details-view-B1eTEo0M.js → provider-details-view-BQQKYvR8.js} +1 -1
  22. package/dist/public/assets/providers-sidebar-C2RknYQn.js +1 -0
  23. package/dist/public/assets/react-vendor-CYvpNUsM.js +17 -0
  24. package/dist/public/assets/{resizable-DJ5w1ZWX.js → resizable-C82J5y6K.js} +1 -1
  25. package/dist/public/assets/{run-stop-button-Z7jiLiq7.js → run-stop-button-1ECLRujs.js} +2 -2
  26. package/dist/public/assets/{settings-view-C38jeeqJ.js → settings-view-CxiVTevy.js} +2 -2
  27. package/dist/public/assets/{side-panel-container-BqWSTCOr.js → side-panel-container-B9Dn9qD2.js} +2 -2
  28. package/dist/public/assets/{standard-list-item-CpBjveM0.js → standard-list-item-BJWg4I9s.js} +1 -1
  29. package/dist/public/assets/store-Cn1lT5YJ.js +2 -0
  30. package/dist/public/assets/{tab-context-Bmd79Rk0.js → tab-context-COCYkRNN.js} +1 -1
  31. package/dist/public/assets/{tabs-DEmnnGvq.js → tabs-M7nUZf6O.js} +1 -1
  32. package/dist/public/assets/{terminal-panel-D6GPXaCe.js → terminal-panel-Cea0pLdX.js} +2 -2
  33. package/dist/public/assets/{textarea-BjfyGfGR.js → textarea-C5IMo2ya.js} +1 -1
  34. package/dist/public/assets/todos-view-DDVfCfgF.js +1 -0
  35. package/dist/public/assets/{use-toast-C9B1H3P9.js → use-toast-rlEtMnzM.js} +1 -1
  36. package/dist/public/assets/{utils-BG_JNnOl.js → utils-C3gmypZX.js} +1 -1
  37. package/dist/public/index.html +19 -19
  38. package/package.json +1 -1
  39. package/dist/public/assets/chat-input-container-0T-khQfd.js +0 -1
  40. package/dist/public/assets/context-menu-DHHElhQ1.js +0 -1
  41. package/dist/public/assets/conversation-history-view-HVFzgO9e.js +0 -1
  42. package/dist/public/assets/explorer-tree-DOg67ane.js +0 -1
  43. package/dist/public/assets/index-BE8v6oQ0.js +0 -50
  44. package/dist/public/assets/index-DVUFB7SX.css +0 -1
  45. package/dist/public/assets/onboarding-BgEjTEKs.js +0 -1
  46. package/dist/public/assets/onboarding-dialog-EiVl-ynw.js +0 -1
  47. package/dist/public/assets/providers-sidebar-Df50eL_5.js +0 -1
  48. package/dist/public/assets/react-vendor-CaS5zjF7.js +0 -17
  49. package/dist/public/assets/store-CLOSXq_q.js +0 -2
  50. package/dist/public/assets/todos-view-yPftPooW.js +0 -1
@@ -1 +1 @@
1
- import{Ci as e,Cr as t,Wn as n,sa as r}from"./dialogs-config-DmDjliuA.js";import{D as i,E as a,T as o}from"./react-vendor-CaS5zjF7.js";var s=r(),c=t(),l=e=>{let t=(0,s.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let o;t[3]===r?o=t[4]:(o=n(`flex h-full w-full data-[panel-group-direction=vertical]:flex-col`,r),t[3]=r,t[4]=o);let l;return t[5]!==i||t[6]!==o?(l=(0,c.jsx)(a,{className:o,...i}),t[5]=i,t[6]=o,t[7]=l):l=t[7],l},u=o,d=t=>{let r=(0,s.c)(12),a,o,l;r[0]===t?(a=r[1],o=r[2],l=r[3]):({withHandle:l,className:a,...o}=t,r[0]=t,r[1]=a,r[2]=o,r[3]=l);let u;r[4]===a?u=r[5]:(u=n(`relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90`,a),r[4]=a,r[5]=u);let d;r[6]===l?d=r[7]:(d=l&&(0,c.jsx)(`div`,{className:`hidden z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border`,children:(0,c.jsx)(e,{className:`h-2.5 w-2.5`})}),r[6]=l,r[7]=d);let f;return r[8]!==o||r[9]!==u||r[10]!==d?(f=(0,c.jsx)(i,{className:u,...o,children:d}),r[8]=o,r[9]=u,r[10]=d,r[11]=f):f=r[11],f};export{u as n,l as r,d as t};
1
+ import{Ci as e,Cr as t,Wn as n,ca as r}from"./dialogs-config-Dwpv4SNp.js";import{D as i,E as a,T as o}from"./react-vendor-CYvpNUsM.js";var s=r(),c=t(),l=e=>{let t=(0,s.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let o;t[3]===r?o=t[4]:(o=n(`flex h-full w-full data-[panel-group-direction=vertical]:flex-col`,r),t[3]=r,t[4]=o);let l;return t[5]!==i||t[6]!==o?(l=(0,c.jsx)(a,{className:o,...i}),t[5]=i,t[6]=o,t[7]=l):l=t[7],l},u=o,d=t=>{let r=(0,s.c)(12),a,o,l;r[0]===t?(a=r[1],o=r[2],l=r[3]):({withHandle:l,className:a,...o}=t,r[0]=t,r[1]=a,r[2]=o,r[3]=l);let u;r[4]===a?u=r[5]:(u=n(`relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90`,a),r[4]=a,r[5]=u);let d;r[6]===l?d=r[7]:(d=l&&(0,c.jsx)(`div`,{className:`hidden z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border`,children:(0,c.jsx)(e,{className:`h-2.5 w-2.5`})}),r[6]=l,r[7]=d);let f;return r[8]!==o||r[9]!==u||r[10]!==d?(f=(0,c.jsx)(i,{className:u,...o,children:d}),r[8]=o,r[9]=u,r[10]=d,r[11]=f):f=r[11],f};export{u as n,l as r,d as t};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$r as t,Cr as n,Pn as r,Vr as i,Wt as a,hi as o,la as s,ln as c,sn as l}from"./dialogs-config-DmDjliuA.js";import{a as u,o as d,t as f}from"./store-CLOSXq_q.js";import{c as p,l as m,s as h,u as g}from"./history-view-BOjZoBCb.js";import{t as _}from"./use-toast-C9B1H3P9.js";import{n as v}from"./tab-context-Bmd79Rk0.js";var y=e(s(),1);function b(){let{state:e}=u(),{selectedThreadId:t}=e,{dispatch:n}=d(t),{setActiveMainTab:r,setDevServerUrl:i,setDevServerRunning:a,setDevServerLoading:o}=v();return{startServer:async e=>{if(!e?.runCommand||!e?.projectId)return;o(!0),n({type:f.ClearTerminalOutput}),n({type:f.SetTerminalOpen,open:!1}),n({type:f.AppendTerminalLine,line:{type:`system`,content:`Starting dev server: ${e.runCommand}`}});let s=!1,c=setTimeout(()=>{s=!0,n({type:f.SetTerminalOpen,open:!0})},3e3);try{let u=await l(e.projectId,t??void 0);if(!u){clearTimeout(c),n({type:f.AppendTerminalLine,line:{type:`error`,content:`Failed to start dev server`}}),o(!1);return}let d=u.getReader(),p=new TextDecoder;a(!0),o(!1);let m=!1,h=!1;for(;;){let{done:e,value:t}=await d.read();if(e)break;let a=p.decode(t,{stream:!0});try{let e=a.split(`
2
- `).filter(e=>e.trim());for(let t of e)try{let e=JSON.parse(t);h||(h=!0,o(!1)),e.type===`url`&&e.url&&(clearTimeout(c),n({type:f.AppendTerminalLine,line:{type:`system`,content:`✓ Server running at: ${e.url}`}}),i(e.url),r(`browser`),s&&setTimeout(()=>{n({type:f.SetTerminalOpen,open:!1})},100),m=!0)}catch{}}catch{}}m||n({type:f.AppendTerminalLine,line:{type:`system`,content:`Server is running but URL could not be detected`}})}catch(e){console.error(`Failed to start dev server:`,e),o(!1),n({type:f.AppendTerminalLine,line:{type:`error`,content:`Failed to start dev server`}})}},setServerUrl:i}}var x=n();function S({projectId:e,runCommand:n,large:s}){let{state:l}=u(),{selectedThreadId:S}=l,{dispatch:C}=d(S),{setDevServerUrl:w,devServerRunning:T,setDevServerRunning:E,devServerLoading:D,setDevServerLoading:O}=v(),{startServer:k}=b(),A=(0,y.useRef)(!1);(0,y.useEffect)(()=>{(async()=>{try{E((await a(e)).isRunning)}catch{E(!1)}})()},[e]);let j=()=>{k({projectId:e,runCommand:n||``})},M=async()=>{A.current=!0,O(!0);try{await c(e),E(!1),w(null),C({type:f.AppendTerminalLine,line:{type:`system`,content:`Server stopped`}})}catch(e){let t=e instanceof Error?e.message:`Failed to stop dev server`;C({type:f.AppendTerminalLine,line:{type:`error`,content:t}}),_({title:`Error`,description:t,variant:`destructive`})}finally{O(!1)}},N=!!n;return s?(0,x.jsxs)(`button`,{onClick:T?M:j,disabled:D||!T&&!N,className:`flex flex-col items-center gap-3 group disabled:opacity-40 disabled:cursor-not-allowed ${T?`text-orange-500`:`text-muted-foreground`}`,children:[D?(0,x.jsx)(o,{className:`h-10 w-10 animate-spin`}):T?(0,x.jsx)(i,{className:`h-10 w-10 fill-current`}):(0,x.jsx)(t,{className:`h-10 w-10 fill-current group-hover:text-foreground transition-colors`}),(0,x.jsx)(`span`,{className:`text-sm group-hover:text-foreground transition-colors`,children:D?`Starting...`:T?`Stop dev server`:`Start dev server`})]}):(0,x.jsx)(x.Fragment,{children:(0,x.jsx)(m,{children:(0,x.jsxs)(h,{children:[(0,x.jsx)(g,{asChild:!0,children:(0,x.jsxs)(r,{variant:`ghost`,size:`icon`,className:`h-8 w-8 ${T?`text-orange-500 bg-orange-500/10`:`text-muted-foreground`}`,onClick:T?M:j,disabled:D||!T&&!N,children:[D?(0,x.jsx)(o,{className:`h-4 w-4 animate-spin`}):T?(0,x.jsx)(i,{className:`h-4 w-4 fill-current`}):(0,x.jsx)(t,{className:`h-4 w-4`}),(0,x.jsx)(`span`,{className:`sr-only`,children:T?`Stop dev server`:`Start dev server`})]})}),(0,x.jsx)(p,{children:T?`Stop dev server`:N?`Start dev server: ${n}`:`Set run command in project settings`})]})})})}export{b as n,S as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$r as t,Cr as n,Pn as r,Vr as i,Wt as a,hi as o,ln as s,sn as c,ua as l}from"./dialogs-config-Dwpv4SNp.js";import{a as u,o as d,t as f}from"./store-Cn1lT5YJ.js";import{c as p,l as m,s as h,u as g}from"./history-view-BvAOaO8q.js";import{t as _}from"./use-toast-rlEtMnzM.js";import{n as v}from"./tab-context-COCYkRNN.js";var y=e(l(),1);function b(){let{state:e}=u(),{selectedThreadId:t}=e,{dispatch:n}=d(t),{setActiveMainTab:r,setDevServerUrl:i,setDevServerRunning:a,setDevServerLoading:o}=v();return{startServer:async e=>{if(!e?.runCommand||!e?.projectId)return;o(!0),n({type:f.ClearTerminalOutput}),n({type:f.SetTerminalOpen,open:!1}),n({type:f.AppendTerminalLine,line:{type:`system`,content:`Starting dev server: ${e.runCommand}`}});let s=!1,l=setTimeout(()=>{s=!0,n({type:f.SetTerminalOpen,open:!0})},3e3);try{let u=await c(e.projectId,t??void 0);if(!u){clearTimeout(l),n({type:f.AppendTerminalLine,line:{type:`error`,content:`Failed to start dev server`}}),o(!1);return}let d=u.getReader(),p=new TextDecoder;a(!0),o(!1);let m=!1,h=!1;for(;;){let{done:e,value:t}=await d.read();if(e)break;let a=p.decode(t,{stream:!0});try{let e=a.split(`
2
+ `).filter(e=>e.trim());for(let t of e)try{let e=JSON.parse(t);h||(h=!0,o(!1)),e.type===`url`&&e.url&&(clearTimeout(l),n({type:f.AppendTerminalLine,line:{type:`system`,content:`✓ Server running at: ${e.url}`}}),i(e.url),r(`browser`),s&&setTimeout(()=>{n({type:f.SetTerminalOpen,open:!1})},100),m=!0)}catch{}}catch{}}m||n({type:f.AppendTerminalLine,line:{type:`system`,content:`Server is running but URL could not be detected`}})}catch(e){console.error(`Failed to start dev server:`,e),o(!1),n({type:f.AppendTerminalLine,line:{type:`error`,content:`Failed to start dev server`}})}},setServerUrl:i}}var x=n();function S({projectId:e,runCommand:n,large:c}){let{state:l}=u(),{selectedThreadId:S}=l,{dispatch:C}=d(S),{setDevServerUrl:w,devServerRunning:T,setDevServerRunning:E,devServerLoading:D,setDevServerLoading:O}=v(),{startServer:k}=b(),A=(0,y.useRef)(!1);(0,y.useEffect)(()=>{(async()=>{try{E((await a(e)).isRunning)}catch{E(!1)}})()},[e]);let j=()=>{k({projectId:e,runCommand:n||``})},M=async()=>{A.current=!0,O(!0);try{await s(e),E(!1),w(null),C({type:f.AppendTerminalLine,line:{type:`system`,content:`Server stopped`}})}catch(e){let t=e instanceof Error?e.message:`Failed to stop dev server`;C({type:f.AppendTerminalLine,line:{type:`error`,content:t}}),_({title:`Error`,description:t,variant:`destructive`})}finally{O(!1)}},N=!!n;return c?(0,x.jsxs)(`button`,{onClick:T?M:j,disabled:D||!T&&!N,className:`flex flex-col items-center gap-3 group disabled:opacity-40 disabled:cursor-not-allowed ${T?`text-orange-500`:`text-muted-foreground`}`,children:[D?(0,x.jsx)(o,{className:`h-10 w-10 animate-spin`}):T?(0,x.jsx)(i,{className:`h-10 w-10 fill-current`}):(0,x.jsx)(t,{className:`h-10 w-10 fill-current group-hover:text-foreground transition-colors`}),(0,x.jsx)(`span`,{className:`text-sm group-hover:text-foreground transition-colors`,children:D?`Starting...`:T?`Stop dev server`:`Start dev server`})]}):(0,x.jsx)(x.Fragment,{children:(0,x.jsx)(m,{children:(0,x.jsxs)(h,{children:[(0,x.jsx)(g,{asChild:!0,children:(0,x.jsxs)(r,{variant:`ghost`,size:`icon`,className:`h-8 w-8 ${T?`text-orange-500 bg-orange-500/10`:`text-muted-foreground`}`,onClick:T?M:j,disabled:D||!T&&!N,children:[D?(0,x.jsx)(o,{className:`h-4 w-4 animate-spin`}):T?(0,x.jsx)(i,{className:`h-4 w-4 fill-current`}):(0,x.jsx)(t,{className:`h-4 w-4`}),(0,x.jsx)(`span`,{className:`sr-only`,children:T?`Stop dev server`:`Start dev server`})]})}),(0,x.jsx)(p,{children:T?`Stop dev server`:N?`Start dev server: ${n}`:`Set run command in project settings`})]})})})}export{b as n,S as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/providers-sidebar-Df50eL_5.js","assets/rolldown-runtime-B1FJdls4.js","assets/dialogs-config-DmDjliuA.js","assets/standard-list-item-CpBjveM0.js","assets/provider-details-view-B1eTEo0M.js","assets/history-view-BOjZoBCb.js","assets/onboarding-BgEjTEKs.js","assets/tabs-DEmnnGvq.js","assets/react-vendor-CaS5zjF7.js","assets/monaco-c-HyCuEi.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Xt as n,la as r,sa as i}from"./dialogs-config-DmDjliuA.js";import{_t as a,gt as o,ht as s,vt as c}from"./react-vendor-CaS5zjF7.js";import{t as l}from"./side-panel-container-BqWSTCOr.js";import{n as u,r as d,t as f}from"./resizable-DJ5w1ZWX.js";var p=i(),m=e(r(),1),h=t(),g=(0,m.forwardRef)(function(e,t){let n=(0,p.c)(20),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:m,className:g,onCollapse:_,onExpand:v}=e,y=a===void 0?25:a,b=o===void 0?20:o,x=s===void 0?30:s,S=c===void 0?40:c,C=l===void 0?!1:l,w=m===void 0?0:m,T=`h-full ${g===void 0?``:g}`,E;n[0]!==w||n[1]!==C||n[2]!==y||n[3]!==x||n[4]!==b||n[5]!==_||n[6]!==v||n[7]!==t||n[8]!==r?(E=(0,h.jsx)(u,{ref:t,defaultSize:y,minSize:b,maxSize:x,collapsible:C,collapsedSize:w,onCollapse:_,onExpand:v,className:`border-r border-transparent`,children:r}),n[0]=w,n[1]=C,n[2]=y,n[3]=x,n[4]=b,n[5]=_,n[6]=v,n[7]=t,n[8]=r,n[9]=E):E=n[9];let D;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(f,{withHandle:!0,className:`ml-[-40px]`}),n[10]=D):D=n[10];let O;n[11]!==i||n[12]!==S?(O=(0,h.jsx)(u,{minSize:S,className:`overflow-hidden`,children:i}),n[11]=i,n[12]=S,n[13]=O):O=n[13];let k;n[14]!==O||n[15]!==E?(k=(0,h.jsxs)(d,{direction:`horizontal`,className:`h-full`,children:[E,D,O]}),n[14]=O,n[15]=E,n[16]=k):k=n[16];let A;return n[17]!==k||n[18]!==T?(A=(0,h.jsx)(`div`,{className:T,children:k}),n[17]=k,n[18]=T,n[19]=A):A=n[19],A}),_=(0,m.lazy)(()=>c(()=>import(`./providers-sidebar-Df50eL_5.js`),__vite__mapDeps([0,1,2,3]))),v=(0,m.lazy)(()=>c(()=>import(`./provider-details-view-B1eTEo0M.js`),__vite__mapDeps([4,1,5,2,6,7,8,9]))),y=[`providers`];function b(e){let t=(0,p.c)(5),{title:n}=e,r;t[0]===n?r=t[1]:(r=(0,h.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:n}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Content coming soon...`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,h.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,h.jsxs)(`div`,{className:`text-center`,children:[r,i]})}),t[3]=r,t[4]=a),a}function x(){let e=(0,p.c)(30),{tab:t}=a(),n=o(),r=s(),i;if(e[0]!==r.search||e[1]!==t){let n=new URLSearchParams(r.search).get(`tab`);i=n&&y.includes(n)?n:t&&y.includes(t)?t:`providers`,e[0]=r.search,e[1]=t,e[2]=i}else i=e[2];let c=i,[u,d]=(0,m.useState)(!1),f=(0,m.useRef)(null),[x,C]=(0,m.useState)(null),w=S,T;e[3]===n?T=e[4]:(T=()=>{n(`/`)},e[3]=n,e[4]=T);let E=T,D;e[5]===n?D=e[6]:(D=e=>{C(e),n(`/settings?tab=providers`,{replace:!0})},e[5]=n,e[6]=D);let O=D,k,A;e[7]!==r.pathname||e[8]!==n?(k=()=>{[`/settings/account`,`/settings/project`,`/settings/mcp-servers`,`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`].some(e=>r.pathname.startsWith(e))&&n(`/settings/providers`,{replace:!0})},A=[r.pathname,n],e[7]=r.pathname,e[8]=n,e[9]=k,e[10]=A):(k=e[9],A=e[10]),(0,m.useEffect)(k,A);let j;e[11]!==E||e[12]!==O||e[13]!==x?(j=()=>(0,h.jsx)(l,{onTitleClose:E,subtitle:`Model Providers`,onResetOnboarding:w,children:(0,h.jsx)(`div`,{className:`px-2 py-2`,children:(0,h.jsx)(m.Suspense,{fallback:(0,h.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,h.jsx)(_,{selectedProvider:x,onProviderSelect:O})})})}),e[11]=E,e[12]=O,e[13]=x,e[14]=j):j=e[14];let M=j,N;e[15]!==c||e[16]!==x?(N=()=>{switch(c){case`providers`:return(0,h.jsx)(m.Suspense,{fallback:(0,h.jsx)(b,{title:`Provider Details`}),children:(0,h.jsx)(v,{selectedProviderName:x})});default:return(0,h.jsx)(b,{title:`Settings`})}},e[15]=c,e[16]=x,e[17]=N):N=e[17];let P=N,F,I;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>d(!0),I=()=>d(!1),e[18]=F,e[19]=I):(F=e[18],I=e[19]);let L;e[20]===M?L=e[21]:(L=M(),e[20]=M,e[21]=L);let R=`h-full overflow-auto ${u?`ml-[40px]`:``}`,z;e[22]===P?z=e[23]:(z=P(),e[22]=P,e[23]=z);let B;e[24]!==R||e[25]!==z?(B=(0,h.jsx)(`div`,{className:R,children:z}),e[24]=R,e[25]=z,e[26]=B):B=e[26];let V;return e[27]!==B||e[28]!==L?(V=(0,h.jsx)(g,{ref:f,collapsible:!0,onCollapse:F,onExpand:I,sidebar:L,children:B}),e[27]=B,e[28]=L,e[29]=V):V=e[29],V}async function S(){try{await n()}catch(e){console.error(`Failed to reset onboarding:`,e)}}export{x as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/providers-sidebar-C2RknYQn.js","assets/rolldown-runtime-B1FJdls4.js","assets/dialogs-config-Dwpv4SNp.js","assets/standard-list-item-BJWg4I9s.js","assets/provider-details-view-BQQKYvR8.js","assets/history-view-BvAOaO8q.js","assets/onboarding-vGz3IczM.js","assets/tabs-M7nUZf6O.js","assets/react-vendor-CYvpNUsM.js","assets/monaco-c-HyCuEi.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Xt as n,ca as r,ua as i}from"./dialogs-config-Dwpv4SNp.js";import{_t as a,gt as o,ht as s,vt as c}from"./react-vendor-CYvpNUsM.js";import{t as l}from"./side-panel-container-B9Dn9qD2.js";import{n as u,r as d,t as f}from"./resizable-C82J5y6K.js";var p=r(),m=e(i(),1),h=t(),g=(0,m.forwardRef)(function(e,t){let n=(0,p.c)(20),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:m,className:g,onCollapse:_,onExpand:v}=e,y=a===void 0?25:a,b=o===void 0?20:o,x=s===void 0?30:s,S=c===void 0?40:c,C=l===void 0?!1:l,w=m===void 0?0:m,T=`h-full ${g===void 0?``:g}`,E;n[0]!==w||n[1]!==C||n[2]!==y||n[3]!==x||n[4]!==b||n[5]!==_||n[6]!==v||n[7]!==t||n[8]!==r?(E=(0,h.jsx)(u,{ref:t,defaultSize:y,minSize:b,maxSize:x,collapsible:C,collapsedSize:w,onCollapse:_,onExpand:v,className:`border-r border-transparent`,children:r}),n[0]=w,n[1]=C,n[2]=y,n[3]=x,n[4]=b,n[5]=_,n[6]=v,n[7]=t,n[8]=r,n[9]=E):E=n[9];let D;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(f,{withHandle:!0,className:`ml-[-40px]`}),n[10]=D):D=n[10];let O;n[11]!==i||n[12]!==S?(O=(0,h.jsx)(u,{minSize:S,className:`overflow-hidden`,children:i}),n[11]=i,n[12]=S,n[13]=O):O=n[13];let k;n[14]!==O||n[15]!==E?(k=(0,h.jsxs)(d,{direction:`horizontal`,className:`h-full`,children:[E,D,O]}),n[14]=O,n[15]=E,n[16]=k):k=n[16];let A;return n[17]!==k||n[18]!==T?(A=(0,h.jsx)(`div`,{className:T,children:k}),n[17]=k,n[18]=T,n[19]=A):A=n[19],A}),_=(0,m.lazy)(()=>c(()=>import(`./providers-sidebar-C2RknYQn.js`),__vite__mapDeps([0,1,2,3]))),v=(0,m.lazy)(()=>c(()=>import(`./provider-details-view-BQQKYvR8.js`),__vite__mapDeps([4,1,5,2,6,7,8,9]))),y=[`providers`];function b(e){let t=(0,p.c)(5),{title:n}=e,r;t[0]===n?r=t[1]:(r=(0,h.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:n}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,h.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Content coming soon...`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,h.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,h.jsxs)(`div`,{className:`text-center`,children:[r,i]})}),t[3]=r,t[4]=a),a}function x(){let e=(0,p.c)(30),{tab:t}=a(),n=o(),r=s(),i;if(e[0]!==r.search||e[1]!==t){let n=new URLSearchParams(r.search).get(`tab`);i=n&&y.includes(n)?n:t&&y.includes(t)?t:`providers`,e[0]=r.search,e[1]=t,e[2]=i}else i=e[2];let c=i,[u,d]=(0,m.useState)(!1),f=(0,m.useRef)(null),[x,C]=(0,m.useState)(null),w=S,T;e[3]===n?T=e[4]:(T=()=>{n(`/`)},e[3]=n,e[4]=T);let E=T,D;e[5]===n?D=e[6]:(D=e=>{C(e),n(`/settings?tab=providers`,{replace:!0})},e[5]=n,e[6]=D);let O=D,k,A;e[7]!==r.pathname||e[8]!==n?(k=()=>{[`/settings/account`,`/settings/project`,`/settings/mcp-servers`,`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`].some(e=>r.pathname.startsWith(e))&&n(`/settings/providers`,{replace:!0})},A=[r.pathname,n],e[7]=r.pathname,e[8]=n,e[9]=k,e[10]=A):(k=e[9],A=e[10]),(0,m.useEffect)(k,A);let j;e[11]!==E||e[12]!==O||e[13]!==x?(j=()=>(0,h.jsx)(l,{onTitleClose:E,subtitle:`Model Providers`,onResetOnboarding:w,children:(0,h.jsx)(`div`,{className:`px-2 py-2`,children:(0,h.jsx)(m.Suspense,{fallback:(0,h.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,h.jsx)(_,{selectedProvider:x,onProviderSelect:O})})})}),e[11]=E,e[12]=O,e[13]=x,e[14]=j):j=e[14];let M=j,N;e[15]!==c||e[16]!==x?(N=()=>{switch(c){case`providers`:return(0,h.jsx)(m.Suspense,{fallback:(0,h.jsx)(b,{title:`Provider Details`}),children:(0,h.jsx)(v,{selectedProviderName:x})});default:return(0,h.jsx)(b,{title:`Settings`})}},e[15]=c,e[16]=x,e[17]=N):N=e[17];let P=N,F,I;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>d(!0),I=()=>d(!1),e[18]=F,e[19]=I):(F=e[18],I=e[19]);let L;e[20]===M?L=e[21]:(L=M(),e[20]=M,e[21]=L);let R=`h-full overflow-auto ${u?`ml-[40px]`:``}`,z;e[22]===P?z=e[23]:(z=P(),e[22]=P,e[23]=z);let B;e[24]!==R||e[25]!==z?(B=(0,h.jsx)(`div`,{className:R,children:z}),e[24]=R,e[25]=z,e[26]=B):B=e[26];let V;return e[27]!==B||e[28]!==L?(V=(0,h.jsx)(g,{ref:f,collapsible:!0,onCollapse:F,onExpand:I,sidebar:L,children:B}),e[27]=B,e[28]=L,e[29]=V):V=e[29],V}async function S(){try{await n()}catch(e){console.error(`Failed to reset onboarding:`,e)}}export{x as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-config-DmDjliuA.js","assets/rolldown-runtime-B1FJdls4.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Pn as n,Xi as r,kn as i,kr as a,la as o}from"./dialogs-config-DmDjliuA.js";import{vt as s}from"./react-vendor-CaS5zjF7.js";var c=e(o(),1),l=t();function u({children:e,collapsed:t,title:o,onTitleClose:u,subtitle:d,headerAction:f,footer:p,onResetOnboarding:m,onLogoClick:h}){let g=(0,c.useRef)(0),_=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]),(0,l.jsxs)(`div`,{className:`flex flex-col bg-sidebar text-sidebar-foreground mx-2.5 mt-8 mr-10 rounded-3xl shadow-2xl overflow-hidden`,style:{containerType:`inline-size`,height:`calc(100% - 32px)`},children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between border-b border-sidebar-border px-4 py-3 h-[61px]`,children:[(0,l.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,l.jsx)(`div`,{className:`flex h-7 w-7 items-center justify-center overflow-hidden rounded-md border border-sidebar-border shadow-sm`,children:(0,l.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full cursor-pointer`,onClick:m||h?async()=>{if(h?.(),m)if(_.current&&clearTimeout(_.current),g.current+=1,g.current>=3){g.current=0;let{resetOnboarding:e}=await s(async()=>{let{resetOnboarding:e}=await import(`./dialogs-config-DmDjliuA.js`).then(e=>e.b);return{resetOnboarding:e}},__vite__mapDeps([0,1]));e()}else _.current=setTimeout(()=>{g.current=0},500)}:void 0})}),!t&&(0,l.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,l.jsx)(`span`,{className:`text-sm font-semibold tracking-tight`,children:`Tarsk`}),d&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r,{className:`h-3 w-3 text-sidebar-foreground/60`}),(0,l.jsx)(`span`,{className:`text-sm font-medium text-sidebar-foreground/80`,children:d})]})]})]}),(o??u??f)&&(0,l.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[f&&!t&&f,o&&(0,l.jsx)(`span`,{className:`text-xs font-medium text-sidebar-foreground/80`,children:o}),u&&(0,l.jsxs)(n,{variant:`ghost`,size:`icon`,className:`h-7 w-7 text-sidebar-foreground`,onClick:u,children:[(0,l.jsx)(a,{className:`h-4 w-4`}),(0,l.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}),(0,l.jsx)(i,{className:`flex-1`,children:e}),p&&(0,l.jsx)(`div`,{className:`border-t border-sidebar-border`,children:p})]})}export{u as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-config-Dwpv4SNp.js","assets/rolldown-runtime-B1FJdls4.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Pn as n,Zi as r,kn as i,kr as a,ua as o}from"./dialogs-config-Dwpv4SNp.js";import{vt as s}from"./react-vendor-CYvpNUsM.js";var c=e(o(),1),l=t();function u({children:e,collapsed:t,title:o,onTitleClose:u,subtitle:d,headerAction:f,footer:p,onResetOnboarding:m,onLogoClick:h}){let g=(0,c.useRef)(0),_=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]),(0,l.jsxs)(`div`,{className:`flex flex-col bg-sidebar text-sidebar-foreground mx-2.5 mt-8 mr-10 rounded-3xl shadow-2xl overflow-hidden`,style:{containerType:`inline-size`,height:`calc(100% - 32px)`},children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between border-b border-sidebar-border px-4 py-3 h-[61px]`,children:[(0,l.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,l.jsx)(`div`,{className:`flex h-7 w-7 items-center justify-center overflow-hidden rounded-md border border-sidebar-border shadow-sm`,children:(0,l.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full cursor-pointer`,onClick:m||h?async()=>{if(h?.(),m)if(_.current&&clearTimeout(_.current),g.current+=1,g.current>=3){g.current=0;let{resetOnboarding:e}=await s(async()=>{let{resetOnboarding:e}=await import(`./dialogs-config-Dwpv4SNp.js`).then(e=>e.b);return{resetOnboarding:e}},__vite__mapDeps([0,1]));e()}else _.current=setTimeout(()=>{g.current=0},500)}:void 0})}),!t&&(0,l.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,l.jsx)(`span`,{className:`text-sm font-semibold tracking-tight`,children:`Tarsk`}),d&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r,{className:`h-3 w-3 text-sidebar-foreground/60`}),(0,l.jsx)(`span`,{className:`text-sm font-medium text-sidebar-foreground/80`,children:d})]})]})]}),(o??u??f)&&(0,l.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[f&&!t&&f,o&&(0,l.jsx)(`span`,{className:`text-xs font-medium text-sidebar-foreground/80`,children:o}),u&&(0,l.jsxs)(n,{variant:`ghost`,size:`icon`,className:`h-7 w-7 text-sidebar-foreground`,onClick:u,children:[(0,l.jsx)(a,{className:`h-4 w-4`}),(0,l.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}),(0,l.jsx)(i,{className:`flex-1`,children:e}),p&&(0,l.jsx)(`div`,{className:`border-t border-sidebar-border`,children:p})]})}export{u as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Ln as n,Wn as r,la as i,sa as a}from"./dialogs-config-DmDjliuA.js";var o=a(),s=e(i(),1),c=t(),l=s.forwardRef((e,t)=>{let i=(0,o.c)(23),a,s,l,u,d,f,p,m,h;i[0]===e?(a=i[1],s=i[2],l=i[3],u=i[4],d=i[5],f=i[6],p=i[7],m=i[8],h=i[9]):({className:s,selected:f,noBackground:u,level:l,basePadding:a,indentSize:m,asChild:h,style:p,...d}=e,i[0]=e,i[1]=a,i[2]=s,i[3]=l,i[4]=u,i[5]=d,i[6]=f,i[7]=p,i[8]=m,i[9]=h);let g=m===void 0?20:m,_=h===void 0?!1:h,v=l===void 0?void 0:(a??12)+l*g,y=_?n:`div`,b=f&&!u&&`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,x=f&&u&&`font-bold text-foreground`,S;i[10]!==s||i[11]!==b||i[12]!==x?(S=r(`flex items-center gap-2 w-full min-w-0 justify-start px-3 py-2 cursor-pointer rounded-full text-sm transition-colors group overflow-hidden`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,b,x,s),i[10]=s,i[11]=b,i[12]=x,i[13]=S):S=i[13];let C=v===void 0?void 0:`${v}px`,w;i[14]!==p||i[15]!==C?(w={paddingLeft:C,...p},i[14]=p,i[15]=C,i[16]=w):w=i[16];let T;return i[17]!==y||i[18]!==d||i[19]!==t||i[20]!==S||i[21]!==w?(T=(0,c.jsx)(y,{ref:t,className:S,style:w,...d}),i[17]=y,i[18]=d,i[19]=t,i[20]=S,i[21]=w,i[22]=T):T=i[22],T});l.displayName=`StandardListItem`;export{l as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Ln as n,Wn as r,ca as i,ua as a}from"./dialogs-config-Dwpv4SNp.js";var o=i(),s=e(a(),1),c=t(),l=s.forwardRef((e,t)=>{let i=(0,o.c)(23),a,s,l,u,d,f,p,m,h;i[0]===e?(a=i[1],s=i[2],l=i[3],u=i[4],d=i[5],f=i[6],p=i[7],m=i[8],h=i[9]):({className:s,selected:f,noBackground:u,level:l,basePadding:a,indentSize:m,asChild:h,style:p,...d}=e,i[0]=e,i[1]=a,i[2]=s,i[3]=l,i[4]=u,i[5]=d,i[6]=f,i[7]=p,i[8]=m,i[9]=h);let g=m===void 0?20:m,_=h===void 0?!1:h,v=l===void 0?void 0:(a??12)+l*g,y=_?n:`div`,b=f&&!u&&`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,x=f&&u&&`font-bold text-foreground`,S;i[10]!==s||i[11]!==b||i[12]!==x?(S=r(`flex items-center gap-2 w-full min-w-0 justify-start px-3 py-2 cursor-pointer rounded-full text-sm transition-colors group overflow-hidden`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,b,x,s),i[10]=s,i[11]=b,i[12]=x,i[13]=S):S=i[13];let C=v===void 0?void 0:`${v}px`,w;i[14]!==p||i[15]!==C?(w={paddingLeft:C,...p},i[14]=p,i[15]=C,i[16]=w):w=i[16];let T;return i[17]!==y||i[18]!==d||i[19]!==t||i[20]!==S||i[21]!==w?(T=(0,c.jsx)(y,{ref:t,className:S,style:w,...d}),i[17]=y,i[18]=d,i[19]=t,i[20]=S,i[21]=w,i[22]=T):T=i[22],T});l.displayName=`StandardListItem`;export{l as t};
@@ -0,0 +1,2 @@
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{ca as t,ua as n}from"./dialogs-config-Dwpv4SNp.js";var r=e(n(),1),i=t();function a(e){return typeof e==`string`?e.replace(/\\n/g,`
2
+ `).replace(/✅/g,`✓`):``}function o(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=/\[([A-Za-z]+)\]\s*/g,r,i=0;for(let e of t.matchAll(n))r=e[1],i=e.index+e[0].length;let a=r,o=a?t.slice(i):t;if(a&&o)return[{type:`reasoning`,text:o,label:a}];let s=[],c=0;for(;c<t.length;){let e=t.indexOf(`[`,c);if(e===-1){let e=t.slice(c).trim();e&&s.push({type:`reasoning`,text:e});break}let n=t.slice(c,e).trim();n&&s.push({type:`reasoning`,text:n});let r=0,i=-1;for(let n=e;n<t.length;n++)if(t[n]===`[`)r++;else if(t[n]===`]`&&(r--,r===0)){i=n;break}if(i===-1){let n=t.slice(e).trim();n&&s.push({type:`reasoning`,text:n});break}try{let n=JSON.parse(t.slice(e,i+1));if(Array.isArray(n)){for(let e of n)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&s.push(e)}}}catch{let n=t.slice(e,i+1).trim();n&&s.push({type:`reasoning`,text:n})}c=i+1}return s.length>0?s:null}function s(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 c(e){let 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 l(e){if(!e)return null;let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);if(Array.isArray(e))return s(e);if(typeof e==`object`&&e)return c(e)}catch{}let n=[],r=e.indexOf(`{`),i=e.indexOf(`[`),a=r===-1?i:i===-1?r:Math.min(r,i);if(a!==-1){let t=e.slice(a),r=Math.max(t.lastIndexOf(`]`),t.lastIndexOf(`}`));if(r!==-1){let e=t.substring(0,r+1);try{let i=JSON.parse(e);Array.isArray(i)?n.push(...s(i)):n.push(...c(i));let a=t.substring(r+1).trim();return a&&n.push({type:`text`,text:a}),n}catch{}}}return null}function u(e,t,n){let r=e[e.length-1];return r?.type===t?[...e.slice(0,-1),{type:t,chunks:[...r.chunks,n]}]:[...e,{type:t,chunks:[n]}]}function d(e,t){return e[e.length-1]?.type===`content`?[...e.slice(0,-1),{type:`content`,chunks:[t]}]:[...e,{type:`content`,chunks:[t]}]}function f(e){let t=[];for(let n of e){let e=n.chunks.join(``);if(n.type===`thinking`){let n=o(e)??[];t.push(...n)}else{let n=l(e)??(e.trim()?[{type:`text`,text:e}]:[]);t.push(...n)}}return t}function p(e){let t=f(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var m=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,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.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,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.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_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.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e.ClearSelection=`CLEAR_SELECTION`,e}({}),h={projects:[],projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,projectModelSelections:{},sidebarOpen:!0,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],completedThreadIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},pendingChatMessage:null,diffComments:{}};function g(e,t){switch(t.type){case m.SetProjects:{let n={...e.projectModelSelections};for(let e of t.projects)for(let t of e.threads){if(!t.model)continue;let e=n[t.threadId];n[t.threadId]={id:t.model,provider:t.modelProvider,name:e?.name??t.model,description:e?.description??``,context_length:e?.context_length,features:e?.features,input_modalities:e?.input_modalities,max_output:e?.max_output,pricing:e?.pricing,tarsk_use:e?.tarsk_use,coding_index:e?.coding_index,supportsImages:e?.supportsImages}}return{...e,projects:t.projects,projectModelSelections:n}}case m.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case m.SelectThread:return{...e,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],focusChatInput:t.focusInput??!1};case m.ClearSelection:return{...e,selectedThreadId:null,selectedProjectId:null,messages:[]};case m.SetMessages:return{...e,messages:t.messages};case m.AddMessage:return{...e,messages:[...e.messages,t.message]};case m.EnqueueChatMessage:return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]};case m.RemoveQueuedChatMessage:return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)};case m.SetStreaming:return{...e,isStreaming:t.isStreaming};case m.AppendStreamContent:return{...e,streamingContent:e.streamingContent+t.content};case m.SetStreamContent:{let n=d(e.streamingSegments,t.content);return{...e,streamingContent:t.content,streamingSegments:n}}case m.AppendStreamThinking:return{...e,streamingThinking:e.streamingThinking+t.content};case m.AppendStreamChunk:return{...e,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?e.streamingContent+t.content:e.streamingContent,streamingThinking:t.chunkType===`thinking`?e.streamingThinking+t.content:e.streamingThinking};case m.SetStreamModel:return{...e,streamingModel:t.model};case m.SetProjectModel:return console.log(`[Store] SetProjectModel action:`,{threadId:t.threadId,model:{id:t.model.id,provider:t.model.provider}}),{...e,projects:e.projects.map(e=>({...e,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}};case m.ResetStream:return{...e,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,isStreaming:!1,toolCallProgress:{}};case m.StopStream:return{...e,isStreaming:!1};case m.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case m.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case m.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case m.SetProcessingThreads:return{...e,processingThreadIds:t.threadIds};case m.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case m.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId)};case m.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 m.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 m.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};case m.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case m.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId]};case m.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case m.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case m.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};case m.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case m.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case m.ClearCommandOutput:return{...e,commandOutput:``};case m.ToggleTerminal:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:!r.open}}}}case m.SetTerminalOpen:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case m.QueueTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case m.ClearQueuedTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:null}}}}case m.AppendTerminalLine:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case m.ClearTerminalOutput:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case m.SetTerminalHeight:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,height:t.height}}}}case m.SetTerminalCwd:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,cwd:t.cwd}}}}case m.SetTerminalRunning:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,isRunning:t.isRunning}}}}case m.SetTerminalHistory:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,history:t.history}}}}case m.SetTerminalHistoryIndex:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,historyIndex:t.index}}}}case m.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 m.ClearFocusChatInput:return{...e,focusChatInput:!1};case m.ClearMessages:return{...e,messages:[]};case m.UpdateToolCallProgress:return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:t.progress}};case m.SetPendingChatMessage:return{...e,pendingChatMessage:t.message};case m.ClearPendingChatMessage:return{...e,pendingChatMessage:null};case m.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};default:return e}}var _=(0,r.createContext)({state:h,dispatch:()=>{}});function v(){return(0,r.useContext)(_)}function y(e){let t=(0,i.c)(11),{state:n,dispatch:r}=v();if(!e){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0];let n;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={terminalState:{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:e,height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},dispatch:b},t[1]=n):n=t[1],n}let a;t[2]!==n.terminalStates||t[3]!==e?(a=n.terminalStates[e]||{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},t[2]=n.terminalStates,t[3]=e,t[4]=a):a=t[4];let o=a,s;t[5]!==r||t[6]!==e?(s=t=>{r({...t,threadId:e})},t[5]=r,t[6]=e,t[7]=s):s=t[7];let c=s,l;return t[8]!==c||t[9]!==o?(l={terminalState:o,dispatch:c},t[8]=c,t[9]=o,t[10]=l):l=t[10],l}function b(){}export{v as a,f as c,a as d,l as f,h as i,u as l,_ as n,y as o,o as p,g as r,p as s,m as t,d as u};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{la as t}from"./dialogs-config-DmDjliuA.js";var n=e(t(),1),r=(0,n.createContext)({activeMainTab:`chat`,setActiveMainTab:()=>{},devServerUrl:null,setDevServerUrl:()=>{},devServerRunning:!1,setDevServerRunning:()=>{},devServerLoading:!1,setDevServerLoading:()=>{},terminalNotification:!1,setTerminalNotification:()=>{},pendingExplorerPath:null,setPendingExplorerPath:()=>{},explorerRefreshTick:0,triggerExplorerRefresh:()=>{},explorerClearPath:null,setExplorerClearPath:()=>{},browserResetTrigger:0,triggerBrowserReset:()=>{}});function i(){return(0,n.useContext)(r)}export{i as n,r as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{ua as t}from"./dialogs-config-Dwpv4SNp.js";var n=e(t(),1),r=(0,n.createContext)({activeMainTab:`chat`,setActiveMainTab:()=>{},devServerUrl:null,setDevServerUrl:()=>{},devServerRunning:!1,setDevServerRunning:()=>{},devServerLoading:!1,setDevServerLoading:()=>{},terminalNotification:!1,setTerminalNotification:()=>{},pendingExplorerPath:null,setPendingExplorerPath:()=>{},explorerRefreshTick:0,triggerExplorerRefresh:()=>{},explorerClearPath:null,setExplorerClearPath:()=>{},browserResetTrigger:0,triggerBrowserReset:()=>{}});function i(){return(0,n.useContext)(r)}export{i as n,r as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Wn as n,la as r,sa as i}from"./dialogs-config-DmDjliuA.js";import{J as a,X as o,Y as s,Z as c}from"./react-vendor-CaS5zjF7.js";var l=i(),u=e(r(),1),d=t(),f=o,p=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,a;r[0]===e?(i=r[1],a=r[2]):({className:i,...a}=e,r[0]=e,r[1]=i,r[2]=a);let o;r[3]===i?o=r[4]:(o=n(`inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground`,i),r[3]=i,r[4]=o);let c;return r[5]!==a||r[6]!==t||r[7]!==o?(c=(0,d.jsx)(s,{ref:t,className:o,...a}),r[5]=a,r[6]=t,r[7]=o,r[8]=c):c=r[8],c});p.displayName=s.displayName;var m=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,a;r[0]===e?(i=r[1],a=r[2]):({className:i,...a}=e,r[0]=e,r[1]=i,r[2]=a);let o;r[3]===i?o=r[4]:(o=n(`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all 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=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm`,i),r[3]=i,r[4]=o);let s;return r[5]!==a||r[6]!==t||r[7]!==o?(s=(0,d.jsx)(c,{ref:t,className:o,...a}),r[5]=a,r[6]=t,r[7]=o,r[8]=s):s=r[8],s});m.displayName=c.displayName;var h=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,o;r[0]===e?(i=r[1],o=r[2]):({className:i,...o}=e,r[0]=e,r[1]=i,r[2]=o);let s;r[3]===i?s=r[4]:(s=n(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,i),r[3]=i,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,d.jsx)(a,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});h.displayName=a.displayName;export{m as i,h as n,p as r,f as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Wn as n,ca as r,ua as i}from"./dialogs-config-Dwpv4SNp.js";import{J as a,X as o,Y as s,Z as c}from"./react-vendor-CYvpNUsM.js";var l=r(),u=e(i(),1),d=t(),f=o,p=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,a;r[0]===e?(i=r[1],a=r[2]):({className:i,...a}=e,r[0]=e,r[1]=i,r[2]=a);let o;r[3]===i?o=r[4]:(o=n(`inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground`,i),r[3]=i,r[4]=o);let c;return r[5]!==a||r[6]!==t||r[7]!==o?(c=(0,d.jsx)(s,{ref:t,className:o,...a}),r[5]=a,r[6]=t,r[7]=o,r[8]=c):c=r[8],c});p.displayName=s.displayName;var m=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,a;r[0]===e?(i=r[1],a=r[2]):({className:i,...a}=e,r[0]=e,r[1]=i,r[2]=a);let o;r[3]===i?o=r[4]:(o=n(`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all 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=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm`,i),r[3]=i,r[4]=o);let s;return r[5]!==a||r[6]!==t||r[7]!==o?(s=(0,d.jsx)(c,{ref:t,className:o,...a}),r[5]=a,r[6]=t,r[7]=o,r[8]=s):s=r[8],s});m.displayName=c.displayName;var h=u.forwardRef((e,t)=>{let r=(0,l.c)(9),i,o;r[0]===e?(i=r[1],o=r[2]):({className:i,...o}=e,r[0]=e,r[1]=i,r[2]=o);let s;r[3]===i?s=r[4]:(s=n(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,i),r[3]=i,r[4]=s);let c;return r[5]!==o||r[6]!==t||r[7]!==s?(c=(0,d.jsx)(a,{ref:t,className:s,...o}),r[5]=o,r[6]=t,r[7]=s,r[8]=c):c=r[8],c});h.displayName=a.displayName;export{m as i,h as n,p as r,f as t};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Qt as n,Vi as r,Xi as i,la as a}from"./dialogs-config-DmDjliuA.js";import{a as o,o as s,t as c}from"./store-CLOSXq_q.js";import{n as l}from"./tab-context-Bmd79Rk0.js";var u=e(a(),1),d=t();function f(){let e=o().state,{selectedProjectId:t,selectedThreadId:a}=e,{terminalState:f,dispatch:p}=s(a),{queuedCommand:m,queuedRelativeFolder:h,outputLines:g,history:_,historyIndex:v,cwd:y,isRunning:b}=f,[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)([]),T=e.projects.flatMap(e=>e.threads).find(e=>e.threadId===a)?.path??null,E=!y||y===`.`||y===`./`?T:y,D=!E||E===T,{activeMainTab:O}=l(),k=(0,u.useRef)(null),A=(0,u.useRef)(null),j=(0,u.useRef)(0);(0,u.useEffect)(()=>{k.current&&(k.current.scrollTop=k.current.scrollHeight)},[C]),(0,u.useEffect)(()=>{w(g),j.current=g.length},[a,g]),(0,u.useEffect)(()=>{if(g.length===0)w([]),j.current=0;else if(g.length>j.current){let e=g.slice(j.current);w(t=>[...t,...e]),j.current=g.length}},[g]),(0,u.useEffect)(()=>{b||A.current?.focus()},[b]),(0,u.useEffect)(()=>{O===`terminal`&&A.current?.focus()},[O]);let M=(0,u.useCallback)(async(e,r)=>{if(!(!t||!a||!e.trim())){p({type:c.AppendTerminalLine,line:{type:`input`,content:e}}),p({type:c.SetTerminalHistory,history:[e,..._.filter(t=>t!==e)].slice(0,50)}),p({type:c.SetTerminalHistoryIndex,index:-1}),S(``),p({type:c.SetTerminalRunning,isRunning:!0});try{let i=await n(t,a,e,r??void 0);if(!i){p({type:c.AppendTerminalLine,line:{type:`system`,content:`Command started but no output stream received.`}}),p({type:c.SetTerminalRunning,isRunning:!1});return}let o=i.getReader(),s=new TextDecoder,l=``;for(;;){let{done:e,value:t}=await o.read();if(e)break;l+=s.decode(t,{stream:!0});let n=l.split(`
2
- `);l=n.pop()??``;for(let e of n)if(e.trim())try{let t=JSON.parse(e);typeof t==`string`?p({type:c.AppendTerminalLine,line:{type:`output`,content:t}}):t.type===`error`?p({type:c.AppendTerminalLine,line:{type:`error`,content:t.message}}):t.type===`cwd`&&p({type:c.SetTerminalCwd,cwd:t.path})}catch{p({type:c.AppendTerminalLine,line:{type:`output`,content:e}})}}if(l.trim())try{let e=JSON.parse(l);typeof e==`string`?p({type:c.AppendTerminalLine,line:{type:`output`,content:e}}):e.type===`error`?p({type:c.AppendTerminalLine,line:{type:`error`,content:e.message}}):e.type===`cwd`&&p({type:c.SetTerminalCwd,cwd:e.path})}catch{p({type:c.AppendTerminalLine,line:{type:`output`,content:l}})}}catch(e){p({type:c.AppendTerminalLine,line:{type:`error`,content:e instanceof Error?e.message:`Failed to run command`}})}finally{p({type:c.SetTerminalRunning,isRunning:!1})}}},[t,a,p,_]);return(0,u.useEffect)(()=>{m&&!b&&(M(m,h??void 0),p({type:c.ClearQueuedTerminalCommand}))},[m,h,b,p,M]),(0,d.jsxs)(`div`,{className:`flex flex-col h-full bg-neutral-950 text-neutral-200 font-mono text-sm overflow-hidden`,children:[(0,d.jsxs)(`div`,{ref:k,className:`flex-1 overflow-y-auto p-4 space-y-0.5 terminal-scrollbar`,onClick:e=>{e.target===e.currentTarget&&A.current?.focus()},children:[C.length===0&&!b&&(0,d.jsx)(`div`,{className:`text-neutral-600 italic text-xs`,children:`Enter your commands below...`}),C.map((e,t)=>(0,d.jsxs)(`div`,{className:`whitespace-pre-wrap break-all leading-6 ${e.type===`input`?`flex items-start gap-2 text-neutral-200`:e.type===`error`?`text-red-400`:e.type===`system`?`text-blue-400`:``}`,children:[e.type===`input`&&(0,d.jsx)(i,{className:`h-4 w-4 mt-1 shrink-0 text-blue-400/70`}),(0,d.jsx)(`span`,{children:e.content})]},t))]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 border-t border-white/5 bg-white/5`,children:[!D&&(0,d.jsx)(`span`,{className:`text-blue-400 text-xs font-bold whitespace-nowrap`,children:E.split(`/`).pop()}),(0,d.jsx)(i,{className:`h-4 w-4 text-blue-400 ${D?``:`-ml-1`}`}),(0,d.jsx)(`input`,{ref:A,type:`text`,className:`flex-1 bg-transparent border-none outline-none text-neutral-200 placeholder:text-neutral-700 h-6`,placeholder:b?`Running...`:`Type a command...`,value:x,onChange:e=>S(e.target.value),onKeyDown:e=>{if(e.key===`Enter`)M(x);else if(e.key===`ArrowUp`){e.preventDefault();let t=v+1;t<_.length&&(p({type:c.SetTerminalHistoryIndex,index:t}),S(_[t]))}else if(e.key===`ArrowDown`){e.preventDefault();let t=v-1;t>=0?(p({type:c.SetTerminalHistoryIndex,index:t}),S(_[t])):(p({type:c.SetTerminalHistoryIndex,index:-1}),S(``))}},disabled:b}),(0,d.jsxs)(`div`,{className:`flex items-center gap-1 px-1.5 py-0.5 rounded border border-white/10 bg-white/5`,children:[(0,d.jsx)(r,{className:`h-3 w-3 text-neutral-600`}),(0,d.jsx)(`span`,{className:`text-[10px] text-neutral-600 uppercase font-bold`,children:`Enter`})]})]})]})}export{f as TerminalPanel};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Hi as n,Qt as r,Zi as i,ua as a}from"./dialogs-config-Dwpv4SNp.js";import{a as o,o as s,t as c}from"./store-Cn1lT5YJ.js";import{n as l}from"./tab-context-COCYkRNN.js";var u=e(a(),1),d=t();function f(){let e=o().state,{selectedProjectId:t,selectedThreadId:a}=e,{terminalState:f,dispatch:p}=s(a),{queuedCommand:m,queuedRelativeFolder:h,outputLines:g,history:_,historyIndex:v,cwd:y,isRunning:b}=f,[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)([]),T=e.projects.flatMap(e=>e.threads).find(e=>e.threadId===a)?.path??null,E=!y||y===`.`||y===`./`?T:y,D=!E||E===T,{activeMainTab:O}=l(),k=(0,u.useRef)(null),A=(0,u.useRef)(null),j=(0,u.useRef)(0);(0,u.useEffect)(()=>{k.current&&(k.current.scrollTop=k.current.scrollHeight)},[C]),(0,u.useEffect)(()=>{w(g),j.current=g.length},[a,g]),(0,u.useEffect)(()=>{if(g.length===0)w([]),j.current=0;else if(g.length>j.current){let e=g.slice(j.current);w(t=>[...t,...e]),j.current=g.length}},[g]),(0,u.useEffect)(()=>{b||A.current?.focus()},[b]),(0,u.useEffect)(()=>{O===`terminal`&&A.current?.focus()},[O]);let M=(0,u.useCallback)(async(e,n)=>{if(!(!t||!a||!e.trim())){p({type:c.AppendTerminalLine,line:{type:`input`,content:e}}),p({type:c.SetTerminalHistory,history:[e,..._.filter(t=>t!==e)].slice(0,50)}),p({type:c.SetTerminalHistoryIndex,index:-1}),S(``),p({type:c.SetTerminalRunning,isRunning:!0});try{let i=await r(t,a,e,n??void 0);if(!i){p({type:c.AppendTerminalLine,line:{type:`system`,content:`Command started but no output stream received.`}}),p({type:c.SetTerminalRunning,isRunning:!1});return}let o=i.getReader(),s=new TextDecoder,l=``;for(;;){let{done:e,value:t}=await o.read();if(e)break;l+=s.decode(t,{stream:!0});let n=l.split(`
2
+ `);l=n.pop()??``;for(let e of n)if(e.trim())try{let t=JSON.parse(e);typeof t==`string`?p({type:c.AppendTerminalLine,line:{type:`output`,content:t}}):t.type===`error`?p({type:c.AppendTerminalLine,line:{type:`error`,content:t.message}}):t.type===`cwd`&&p({type:c.SetTerminalCwd,cwd:t.path})}catch{p({type:c.AppendTerminalLine,line:{type:`output`,content:e}})}}if(l.trim())try{let e=JSON.parse(l);typeof e==`string`?p({type:c.AppendTerminalLine,line:{type:`output`,content:e}}):e.type===`error`?p({type:c.AppendTerminalLine,line:{type:`error`,content:e.message}}):e.type===`cwd`&&p({type:c.SetTerminalCwd,cwd:e.path})}catch{p({type:c.AppendTerminalLine,line:{type:`output`,content:l}})}}catch(e){p({type:c.AppendTerminalLine,line:{type:`error`,content:e instanceof Error?e.message:`Failed to run command`}})}finally{p({type:c.SetTerminalRunning,isRunning:!1})}}},[t,a,p,_]);return(0,u.useEffect)(()=>{m&&!b&&(M(m,h??void 0),p({type:c.ClearQueuedTerminalCommand}))},[m,h,b,p,M]),(0,d.jsxs)(`div`,{className:`flex flex-col h-full bg-neutral-950 text-neutral-200 font-mono text-sm overflow-hidden`,children:[(0,d.jsxs)(`div`,{ref:k,className:`flex-1 overflow-y-auto p-4 space-y-0.5 terminal-scrollbar`,onClick:e=>{e.target===e.currentTarget&&A.current?.focus()},children:[C.length===0&&!b&&(0,d.jsx)(`div`,{className:`text-neutral-600 italic text-xs`,children:`Enter your commands below...`}),C.map((e,t)=>(0,d.jsxs)(`div`,{className:`whitespace-pre-wrap break-all leading-6 ${e.type===`input`?`flex items-start gap-2 text-neutral-200`:e.type===`error`?`text-red-400`:e.type===`system`?`text-blue-400`:``}`,children:[e.type===`input`&&(0,d.jsx)(i,{className:`h-4 w-4 mt-1 shrink-0 text-blue-400/70`}),(0,d.jsx)(`span`,{children:e.content})]},t))]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 border-t border-white/5 bg-white/5`,children:[!D&&(0,d.jsx)(`span`,{className:`text-blue-400 text-xs font-bold whitespace-nowrap`,children:E.split(`/`).pop()}),(0,d.jsx)(i,{className:`h-4 w-4 text-blue-400 ${D?``:`-ml-1`}`}),(0,d.jsx)(`input`,{ref:A,type:`text`,className:`flex-1 bg-transparent border-none outline-none text-neutral-200 placeholder:text-neutral-700 h-6`,placeholder:b?`Running...`:`Type a command...`,value:x,onChange:e=>S(e.target.value),onKeyDown:e=>{if(e.key===`Enter`)M(x);else if(e.key===`ArrowUp`){e.preventDefault();let t=v+1;t<_.length&&(p({type:c.SetTerminalHistoryIndex,index:t}),S(_[t]))}else if(e.key===`ArrowDown`){e.preventDefault();let t=v-1;t>=0?(p({type:c.SetTerminalHistoryIndex,index:t}),S(_[t])):(p({type:c.SetTerminalHistoryIndex,index:-1}),S(``))}},disabled:b}),(0,d.jsxs)(`div`,{className:`flex items-center gap-1 px-1.5 py-0.5 rounded border border-white/10 bg-white/5`,children:[(0,d.jsx)(n,{className:`h-3 w-3 text-neutral-600`}),(0,d.jsx)(`span`,{className:`text-[10px] text-neutral-600 uppercase font-bold`,children:`Enter`})]})]})]})}export{f as TerminalPanel};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Wn as n,la as r,sa as i}from"./dialogs-config-DmDjliuA.js";var a=i(),o=e(r(),1),s=t(),c=o.forwardRef((e,t)=>{let r=(0,a.c)(9),i,o;r[0]===e?(i=r[1],o=r[2]):({className:i,...o}=e,r[0]=e,r[1]=i,r[2]=o);let c;r[3]===i?c=r[4]:(c=n(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,i),r[3]=i,r[4]=c);let l;return r[5]!==o||r[6]!==t||r[7]!==c?(l=(0,s.jsx)(`textarea`,{className:c,ref:t,...o}),r[5]=o,r[6]=t,r[7]=c,r[8]=l):l=r[8],l});c.displayName=`Textarea`;export{c as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Wn as n,ca as r,ua as i}from"./dialogs-config-Dwpv4SNp.js";var a=r(),o=e(i(),1),s=t(),c=o.forwardRef((e,t)=>{let r=(0,a.c)(9),i,o;r[0]===e?(i=r[1],o=r[2]):({className:i,...o}=e,r[0]=e,r[1]=i,r[2]=o);let c;r[3]===i?c=r[4]:(c=n(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,i),r[3]=i,r[4]=c);let l;return r[5]!==o||r[6]!==t||r[7]!==c?(l=(0,s.jsx)(`textarea`,{className:c,ref:t,...o}),r[5]=o,r[6]=t,r[7]=c,r[8]=l):l=r[8],l});c.displayName=`Textarea`;export{c as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./index-C7dA1l3u.js";export{e as TodosView};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{la as t,sa as n}from"./dialogs-config-DmDjliuA.js";var r=n(),i=e(t(),1),a=1,o=1e6,s=0;function c(){return s=(s+1)%(2**53-1),s.toString()}var l=new Map,u=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),m({type:`REMOVE_TOAST`,toastId:e})},o);l.set(e,t)},d=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,a)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?u(n):e.toasts.forEach(e=>{u(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||n===void 0?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},f=[],p={toasts:[]};function m(e){p=d(p,e),f.forEach(e=>{e(p)})}function h({...e}){let t=c(),n=e=>m({type:`UPDATE_TOAST`,toast:{...e,id:t}}),r=()=>m({type:`DISMISS_TOAST`,toastId:t});return m({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||r()}}}),{id:t,dismiss:r,update:n}}function g(){let e=(0,r.c)(5),[t,n]=i.useState(p),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>(f.push(n),()=>{let e=f.indexOf(n);e>-1&&f.splice(e,1)}),e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),i.useEffect(a,o);let s;return e[3]===t?s=e[4]:(s={...t,toast:h,dismiss:_},e[3]=t,e[4]=s),s}function _(e){return m({type:`DISMISS_TOAST`,toastId:e})}export{g as n,h as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{ca as t,ua as n}from"./dialogs-config-Dwpv4SNp.js";var r=t(),i=e(n(),1),a=1,o=1e6,s=0;function c(){return s=(s+1)%(2**53-1),s.toString()}var l=new Map,u=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),m({type:`REMOVE_TOAST`,toastId:e})},o);l.set(e,t)},d=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,a)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?u(n):e.toasts.forEach(e=>{u(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||n===void 0?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},f=[],p={toasts:[]};function m(e){p=d(p,e),f.forEach(e=>{e(p)})}function h({...e}){let t=c(),n=e=>m({type:`UPDATE_TOAST`,toast:{...e,id:t}}),r=()=>m({type:`DISMISS_TOAST`,toastId:t});return m({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||r()}}}),{id:t,dismiss:r,update:n}}function g(){let e=(0,r.c)(5),[t,n]=i.useState(p),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>(f.push(n),()=>{let e=f.indexOf(n);e>-1&&f.splice(e,1)}),e[0]=a):a=e[0];let o;e[1]===t?o=e[2]:(o=[t],e[1]=t,e[2]=o),i.useEffect(a,o);let s;return e[3]===t?s=e[4]:(s={...t,toast:h,dismiss:_},e[3]=t,e[4]=s),s}function _(e){return m({type:`DISMISS_TOAST`,toastId:e})}export{g as n,h as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{la as t}from"./dialogs-config-DmDjliuA.js";var n=e(t(),1),r=(e,t,n,r,i,a,o,s)=>{let c=document.documentElement,l=[`light`,`dark`];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n=e===`class`,r=n&&a?i.map(e=>a[e]||e):i;n?(c.classList.remove(...r),c.classList.add(a&&a[t]?a[t]:t)):c.setAttribute(e,t)}),d(t)}function d(e){s&&l.includes(e)&&(c.style.colorScheme=e)}function f(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}if(r)u(r);else try{let e=localStorage.getItem(t)||n;u(o&&e===`system`?f():e)}catch{}},i=[`light`,`dark`],a=`(prefers-color-scheme: dark)`,o=typeof window>`u`,s=n.createContext(void 0),c={setTheme:e=>{},themes:[]},l=()=>n.useContext(s)??c,u=e=>n.useContext(s)?n.createElement(n.Fragment,null,e.children):n.createElement(f,{...e}),d=[`light`,`dark`],f=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:r=!0,enableColorScheme:o=!0,storageKey:c=`theme`,themes:l=d,defaultTheme:u=r?`system`:`light`,attribute:f=`data-theme`,value:_,children:v,nonce:y,scriptProps:b})=>{let[x,S]=n.useState(()=>m(c,u)),[C,w]=n.useState(()=>x===`system`?g():x),T=_?Object.values(_):l,E=n.useCallback(e=>{let n=e;if(!n)return;e===`system`&&r&&(n=g());let a=_?_[n]:n,s=t?h(y):null,c=document.documentElement,l=e=>{e===`class`?(c.classList.remove(...T),a&&c.classList.add(a)):e.startsWith(`data-`)&&(a?c.setAttribute(e,a):c.removeAttribute(e))};if(Array.isArray(f)?f.forEach(l):l(f),o){let e=i.includes(u)?u:null,t=i.includes(n)?n:e;c.style.colorScheme=t}s?.()},[y]),D=n.useCallback(e=>{let t=typeof e==`function`?e(x):e;S(t);try{localStorage.setItem(c,t)}catch{}},[x]),O=n.useCallback(t=>{w(g(t)),x===`system`&&r&&!e&&E(`system`)},[x,e]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(O),O(e),()=>e.removeListener(O)},[O]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?S(e.newValue):D(u))};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[D]),n.useEffect(()=>{E(e??x)},[e,x]);let k=n.useMemo(()=>({theme:x,setTheme:D,forcedTheme:e,resolvedTheme:x===`system`?C:x,themes:r?[...l,`system`]:l,systemTheme:r?C:void 0}),[x,D,e,C,r,l]);return n.createElement(s.Provider,{value:k},n.createElement(p,{forcedTheme:e,storageKey:c,attribute:f,enableSystem:r,enableColorScheme:o,defaultTheme:u,value:_,themes:l,nonce:y,scriptProps:b}),v)},p=n.memo(({forcedTheme:e,storageKey:t,attribute:i,enableSystem:a,enableColorScheme:o,defaultTheme:s,value:c,themes:l,nonce:u,scriptProps:d})=>{let f=JSON.stringify([i,t,s,e,l,c,a,o]).slice(1,-1);return n.createElement(`script`,{...d,suppressHydrationWarning:!0,nonce:typeof window>`u`?u:``,dangerouslySetInnerHTML:{__html:`(${r.toString()})(${f})`}})}),m=(e,t)=>{if(o)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},h=e=>{let t=document.createElement(`style`);return e&&t.setAttribute(`nonce`,e),t.appendChild(document.createTextNode(`*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},g=e=>(e||=window.matchMedia(a),e.matches?`dark`:`light`);export{l as n,u as t};
1
+ import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{ua as t}from"./dialogs-config-Dwpv4SNp.js";var n=e(t(),1),r=(e,t,n,r,i,a,o,s)=>{let c=document.documentElement,l=[`light`,`dark`];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n=e===`class`,r=n&&a?i.map(e=>a[e]||e):i;n?(c.classList.remove(...r),c.classList.add(a&&a[t]?a[t]:t)):c.setAttribute(e,t)}),d(t)}function d(e){s&&l.includes(e)&&(c.style.colorScheme=e)}function f(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}if(r)u(r);else try{let e=localStorage.getItem(t)||n;u(o&&e===`system`?f():e)}catch{}},i=[`light`,`dark`],a=`(prefers-color-scheme: dark)`,o=typeof window>`u`,s=n.createContext(void 0),c={setTheme:e=>{},themes:[]},l=()=>n.useContext(s)??c,u=e=>n.useContext(s)?n.createElement(n.Fragment,null,e.children):n.createElement(f,{...e}),d=[`light`,`dark`],f=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:r=!0,enableColorScheme:o=!0,storageKey:c=`theme`,themes:l=d,defaultTheme:u=r?`system`:`light`,attribute:f=`data-theme`,value:_,children:v,nonce:y,scriptProps:b})=>{let[x,S]=n.useState(()=>m(c,u)),[C,w]=n.useState(()=>x===`system`?g():x),T=_?Object.values(_):l,E=n.useCallback(e=>{let n=e;if(!n)return;e===`system`&&r&&(n=g());let a=_?_[n]:n,s=t?h(y):null,c=document.documentElement,l=e=>{e===`class`?(c.classList.remove(...T),a&&c.classList.add(a)):e.startsWith(`data-`)&&(a?c.setAttribute(e,a):c.removeAttribute(e))};if(Array.isArray(f)?f.forEach(l):l(f),o){let e=i.includes(u)?u:null,t=i.includes(n)?n:e;c.style.colorScheme=t}s?.()},[y]),D=n.useCallback(e=>{let t=typeof e==`function`?e(x):e;S(t);try{localStorage.setItem(c,t)}catch{}},[x]),O=n.useCallback(t=>{w(g(t)),x===`system`&&r&&!e&&E(`system`)},[x,e]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(O),O(e),()=>e.removeListener(O)},[O]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?S(e.newValue):D(u))};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[D]),n.useEffect(()=>{E(e??x)},[e,x]);let k=n.useMemo(()=>({theme:x,setTheme:D,forcedTheme:e,resolvedTheme:x===`system`?C:x,themes:r?[...l,`system`]:l,systemTheme:r?C:void 0}),[x,D,e,C,r,l]);return n.createElement(s.Provider,{value:k},n.createElement(p,{forcedTheme:e,storageKey:c,attribute:f,enableSystem:r,enableColorScheme:o,defaultTheme:u,value:_,themes:l,nonce:y,scriptProps:b}),v)},p=n.memo(({forcedTheme:e,storageKey:t,attribute:i,enableSystem:a,enableColorScheme:o,defaultTheme:s,value:c,themes:l,nonce:u,scriptProps:d})=>{let f=JSON.stringify([i,t,s,e,l,c,a,o]).slice(1,-1);return n.createElement(`script`,{...d,suppressHydrationWarning:!0,nonce:typeof window>`u`?u:``,dangerouslySetInnerHTML:{__html:`(${r.toString()})(${f})`}})}),m=(e,t)=>{if(o)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},h=e=>{let t=document.createElement(`style`);return e&&t.setAttribute(`nonce`,e),t.appendChild(document.createTextNode(`*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},g=e=>(e||=window.matchMedia(a),e.matches?`dark`:`light`);export{l as n,u as t};
@@ -19,27 +19,27 @@
19
19
  <meta name="apple-mobile-web-app-title" content="Tarsk" />
20
20
 
21
21
  <title>Tarsk</title>
22
- <script type="module" crossorigin src="/assets/index-BE8v6oQ0.js"></script>
22
+ <script type="module" crossorigin src="/assets/index-C7dA1l3u.js"></script>
23
23
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-B1FJdls4.js">
24
- <link rel="modulepreload" crossorigin href="/assets/dialogs-config-DmDjliuA.js">
25
- <link rel="modulepreload" crossorigin href="/assets/history-view-BOjZoBCb.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/dialogs-config-Dwpv4SNp.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/history-view-BvAOaO8q.js">
26
26
  <link rel="modulepreload" crossorigin href="/assets/monaco-c-HyCuEi.js">
27
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-CaS5zjF7.js">
28
- <link rel="modulepreload" crossorigin href="/assets/onboarding-BgEjTEKs.js">
29
- <link rel="modulepreload" crossorigin href="/assets/alert-dialog-Bk7neo_n.js">
30
- <link rel="modulepreload" crossorigin href="/assets/store-CLOSXq_q.js">
31
- <link rel="modulepreload" crossorigin href="/assets/chat-input-container-0T-khQfd.js">
32
- <link rel="modulepreload" crossorigin href="/assets/page-toolbar-CvreDTwj.js">
33
- <link rel="modulepreload" crossorigin href="/assets/use-toast-C9B1H3P9.js">
34
- <link rel="modulepreload" crossorigin href="/assets/tab-context-Bmd79Rk0.js">
35
- <link rel="modulepreload" crossorigin href="/assets/run-stop-button-Z7jiLiq7.js">
36
- <link rel="modulepreload" crossorigin href="/assets/side-panel-container-BqWSTCOr.js">
37
- <link rel="modulepreload" crossorigin href="/assets/resizable-DJ5w1ZWX.js">
38
- <link rel="modulepreload" crossorigin href="/assets/standard-list-item-CpBjveM0.js">
39
- <link rel="modulepreload" crossorigin href="/assets/tabs-DEmnnGvq.js">
40
- <link rel="modulepreload" crossorigin href="/assets/textarea-BjfyGfGR.js">
41
- <link rel="modulepreload" crossorigin href="/assets/utils-BG_JNnOl.js">
42
- <link rel="stylesheet" crossorigin href="/assets/index-DVUFB7SX.css">
27
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-CYvpNUsM.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/onboarding-vGz3IczM.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/alert-dialog-BeLER45U.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/store-Cn1lT5YJ.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/tab-context-COCYkRNN.js">
32
+ <link rel="modulepreload" crossorigin href="/assets/chat-input-container-CfXgimBQ.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/page-toolbar-CBE5_3E3.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/use-toast-rlEtMnzM.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/run-stop-button-1ECLRujs.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/side-panel-container-B9Dn9qD2.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/resizable-C82J5y6K.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/standard-list-item-BJWg4I9s.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/tabs-M7nUZf6O.js">
40
+ <link rel="modulepreload" crossorigin href="/assets/textarea-C5IMo2ya.js">
41
+ <link rel="modulepreload" crossorigin href="/assets/utils-C3gmypZX.js">
42
+ <link rel="stylesheet" crossorigin href="/assets/index-BPF49zet.css">
43
43
  </head>
44
44
  <body class="font-sans antialiased">
45
45
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.4.20",
3
+ "version": "0.4.22",
4
4
  "description": "CLI for Tarsk - Project Threads Manager",
5
5
  "keywords": [
6
6
  "cli",
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$ as t,$i as n,Cr as r,D as i,Jr as a,Lr as o,Mi as s,Ni as c,Nr as l,Or as u,Pn as d,Q as f,Qr as p,Si as m,Tn as h,Tt as g,Vr as _,Wn as v,Y as y,Yi as b,Yt as x,_i as S,bi as C,bn as w,cn as T,d as E,di as D,fn as O,ki as k,kr as A,kt as ee,la as j,m as M,nt as N,on as P,pn as F,ra as I,sa as L,ti as R,tt as te,ui as ne,w as z,y as re}from"./dialogs-config-DmDjliuA.js";import{gt as B}from"./react-vendor-CaS5zjF7.js";import{a as ie,l as V,s as ae,t as H,u as U}from"./store-CLOSXq_q.js";import{c as W,s as G,u as K}from"./history-view-BOjZoBCb.js";import{a as q,c as J,i as oe,o as se,s as ce,t as le}from"./alert-dialog-Bk7neo_n.js";import{r as ue}from"./onboarding-BgEjTEKs.js";var Y=L(),X=e(j(),1),Z=r();function Q(e){let t=(0,Y.c)(24),{node:n,level:r,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l}=e,u=!!(n.children&&n.children.length>0),d=c[n.id]??a,f;t[0]!==n.id||t[1]!==l?(f=()=>l(n.id),t[0]=n.id,t[1]=l,t[2]=f):f=t[2];let p=f,m;t[3]!==u||t[4]!==d||t[5]!==r||t[6]!==n||t[7]!==i||t[8]!==p?(m=i(n,{isOpen:d,level:r,toggle:p,hasChildren:u}),t[3]=u,t[4]=d,t[5]=r,t[6]=n,t[7]=i,t[8]=p,t[9]=m):m=t[9];let h;t[10]!==s||t[11]!==a||t[12]!==u||t[13]!==o||t[14]!==d||t[15]!==r||t[16]!==n.children||t[17]!==l||t[18]!==c||t[19]!==i?(h=u&&d&&(0,Z.jsx)(`div`,{style:{paddingLeft:o},className:s,children:n.children.map(e=>(0,Z.jsx)(Q,{node:e,level:r+1,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l},e.id))}),t[10]=s,t[11]=a,t[12]=u,t[13]=o,t[14]=d,t[15]=r,t[16]=n.children,t[17]=l,t[18]=c,t[19]=i,t[20]=h):h=t[20];let g;return t[21]!==m||t[22]!==h?(g=(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[m,h]}),t[21]=m,t[22]=h,t[23]=g):g=t[23],g}function de(e){let t=(0,Y.c)(23),{nodes:n,renderNode:r,resetKey:i,defaultOpen:a,indent:o,childContainerClassName:s,className:c}=e,l=a===void 0?!1:a,u=o===void 0?16:o,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d={},t[0]=d):d=t[0];let[f,p]=(0,X.useState)(d),[m,h]=(0,X.useState)(i);i!==m&&(h(i),p({}));let g;t[1]===l?g=t[2]:(g=e=>{p(t=>({...t,[e]:!(t[e]??l)}))},t[1]=l,t[2]=g);let _=g,y;t[3]===c?y=t[4]:(y=v(`min-w-0`,c),t[3]=c,t[4]=y);let b;if(t[5]!==s||t[6]!==l||t[7]!==_||t[8]!==u||t[9]!==n||t[10]!==f||t[11]!==r){let e;t[13]!==s||t[14]!==l||t[15]!==_||t[16]!==u||t[17]!==f||t[18]!==r?(e=e=>(0,Z.jsx)(Q,{node:e,level:0,renderNode:r,defaultOpen:l,indent:u,childContainerClassName:s,openState:f,onToggle:_},e.id),t[13]=s,t[14]=l,t[15]=_,t[16]=u,t[17]=f,t[18]=r,t[19]=e):e=t[19],b=n.map(e),t[5]=s,t[6]=l,t[7]=_,t[8]=u,t[9]=n,t[10]=f,t[11]=r,t[12]=b}else b=t[12];let x;return t[20]!==y||t[21]!==b?(x=(0,Z.jsx)(`div`,{className:y,children:b}),t[20]=y,t[21]=b,t[22]=x):x=t[22],x}var fe=new Map,$=new Map;function pe(e){return fe.get(e)}function me(e,t){let n=$.get(e);return n||(n=new Set,$.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&$.delete(e)}}function he(e){let t=$.get(e);if(t)for(let e of t)e()}function ge(e,t){return async function(n,r){let i=await fetch(e+`/api/browser-js/execute-tool`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({threadId:t,toolName:n,params:r})});if(!i.ok){let e=await i.text();try{let t=JSON.parse(e).error||{};e=t.details||t.message||e}catch{}return{text:null,error:`Tool `+n+` failed: `+e}}let a=await i.json();return{text:a.content&&a.content[0]?a.content[0].text:null,error:null}}}function _e(e,t,n){if(fe.has(e))return;fe.set(e,{status:`running`}),he(e);let r=h();(async()=>{try{let i=ge(r,n),a=Object.getPrototypeOf(async function(){}).constructor,o=await new a(`callTool`,t)(i),s=o===void 0?null:o;fe.set(e,{status:`success`,result:s}),he(e),await O(e,s)}catch(t){let n=t instanceof Error?t.stack||t.message:String(t);fe.set(e,{status:`error`,error:n}),he(e);try{await O(e,{error:n})}catch(e){console.error(`[browser-js-executor] failed to submit error result`,e)}}})()}var ve=()=>{if(typeof window>`u`)return null;let e=window.SpeechRecognition||window.webkitSpeechRecognition;return e?new e:null};function ye(){let e=(0,Y.c)(14),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(``),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),l=(0,X.useRef)(null),u=(0,X.useRef)(``),d,f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{try{let e=ve();e?(e.continuous=!0,e.interimResults=!0,e.lang=`en-US`,e.onstart=()=>{n(!0),o(null),u.current=``},e.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let r=e.results[n][0].transcript;e.results[n].isFinal?i(e=>e+r+` `):t+=r}u.current=t},e.onerror=e=>{console.error(`Speech recognition error:`,e.error),o(e.error||`An error occurred during speech recognition`)},e.onend=()=>{n(!1)},l.current=e,c(!0)):(c(!1),o(`Speech Recognition API is not supported in your browser`))}catch(e){console.error(`Failed to initialize speech recognition:`,e),c(!1),o(`Failed to initialize speech recognition`)}return()=>{l.current&&l.current.abort()}},f=[],e[0]=d,e[1]=f):(d=e[0],f=e[1]),(0,X.useEffect)(d,f);let p;e[2]===t?p=e[3]:(p=()=>{l.current&&!t&&l.current.start()},e[2]=t,e[3]=p);let m=p,h;e[4]===t?h=e[5]:(h=()=>{l.current&&t&&l.current.stop()},e[4]=t,e[5]=h);let g=h,_;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>{i(``),u.current=``},e[6]=_):_=e[6];let v=_,y;return e[7]!==a||e[8]!==t||e[9]!==s||e[10]!==m||e[11]!==g||e[12]!==r?(y={isListening:t,transcript:r,error:a,startListening:m,stopListening:g,resetTranscript:v,isSupported:s},e[7]=a,e[8]=t,e[9]=s,e[10]=m,e[11]=g,e[12]=r,e[13]=y):y=e[13],y}function be({initialValue:e}={}){let{state:n,dispatch:r}=ie(),[i,a]=(0,X.useState)(e??``),[o,s]=(0,X.useState)(-1),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(0),[p,m]=(0,X.useState)([]),[h,_]=(0,X.useState)(()=>(n.selectedThreadId?n.projectModelSelections[n.selectedThreadId]:void 0)??null),v=(0,X.useRef)(h?.id??``),y=(0,X.useRef)(h?.provider??``),b=(0,X.useRef)(null),[x,S]=(0,X.useState)(!1),[C,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)([]),[O,k]=(0,X.useState)(!1),[A,ee]=(0,X.useState)(!1),[j,M]=(0,X.useState)([]),[N,P]=(0,X.useState)(null),[F,I]=(0,X.useState)([]),[L,R]=(0,X.useState)(!1),[ne,re]=(0,X.useState)(``),[B,V]=(0,X.useState)(0),[ae,U]=(0,X.useState)([]),[W,G]=(0,X.useState)([]),[K,q]=(0,X.useState)(!1),[J,oe]=(0,X.useState)(``),se=(0,X.useRef)(null),ce=(0,X.useRef)(null),le=(0,X.useRef)(null),ue=(0,X.useRef)(null),Y=(0,X.useRef)(null),Z=(0,X.useRef)(null);(0,X.useEffect)(()=>{v.current=h?.id??``,y.current=h?.provider??``},[h?.id,h?.provider]);let Q=(0,X.useCallback)((e,t)=>{_(e);let i=n.selectedThreadId;if(!i||(r({type:H.SetProjectModel,threadId:i,model:e}),t?.persist===!1))return;let a=`${i}:${e.provider??``}:${e.id}`;b.current!==a&&(b.current=a,console.log(`[useChatInputState] Persisting model to thread:`,{threadId:i,model:{id:e.id,provider:e.provider}}),w(i,{model:e.id,modelProvider:e.provider}).then(()=>{b.current===a&&(b.current=null),console.log(`[useChatInputState] Model persisted successfully`)}).catch(e=>{b.current===a&&(b.current=null),console.error(`Failed to save model to thread:`,e)}))},[n.selectedThreadId,r]);(0,X.useEffect)(()=>{(async()=>{let e=n.selectedProjectId?n.projects.find(e=>e.projectId===n.selectedProjectId)?.threads.find(e=>e.threadId===n.selectedThreadId):void 0,r=n.selectedThreadId?n.projectModelSelections[n.selectedThreadId]:void 0,i=e?.model??r?.id??null,a=e?.modelProvider??r?.provider??null;console.log(`[useChatInputState] Loading models for thread:`,{threadId:n.selectedThreadId,projectId:n.selectedProjectId,currentThread:e?{model:e.model,modelProvider:e.modelProvider}:void 0,storedModel:r?{id:r.id,provider:r.provider}:void 0,savedModelId:i,savedModelProvider:a});try{let e=await t(),n=Object.values(e).flat();if(n.length===0){m([]),_(null);return}m(n);let r=i&&a?n.find(e=>e.id===i&&e.provider===a)??null:null,o=n[0],s=r??o,c=!r&&!!(i||a),l=v.current===s.id&&y.current===s.provider;console.log(`[useChatInputState] Model selection decision:`,{matchedSavedModel:r?{id:r.id}:null,fallbackModel:{id:o.id},modelToSelect:{id:s.id},shouldPersistFallback:c,hasSameSelection:l,currentSelected:{id:v.current,provider:y.current}}),l||Q(s,{persist:c})}catch(e){console.error(`Failed to load enabled models:`,e)}})()},[n.selectedThreadId,n.selectedProjectId,n.projects,Q]);let de=(0,X.useRef)(Q);(0,X.useEffect)(()=>{de.current=Q},[Q]),(0,X.useEffect)(()=>{n.configUpdatedAt!==0&&(async()=>{try{let e=await t(),n=Object.values(e).flat();if(n.length>0){m(n);let e=v.current,t=y.current;n.some(n=>n.id===e&&n.provider===t)||de.current(n[0],{persist:!0})}}catch(e){console.error(`Failed to reload enabled models:`,e)}})()},[n.configUpdatedAt]),(0,X.useEffect)(()=>{!A||j.length>0||(async()=>{try{let e=await f(),t=Object.values(e).flat();t.length>0&&(M(t),P(e=>e??t[0]))}catch(e){console.error(`Failed to load image models:`,e)}})()},[A,j.length]);let[fe,$]=(0,X.useState)(n.selectedThreadId);return(0,X.useEffect)(()=>{n.selectedThreadId!==fe&&setTimeout(()=>{$(n.selectedThreadId),I([]),R(!1),U([]),G([]),q(!1),k(!1),ee(!1)},0)},[n.selectedThreadId,fe]),(0,X.useEffect)(()=>{n.selectedThreadId&&g(n.selectedThreadId).then(({commands:e,skills:t})=>{console.log(`Loaded slash commands:`,e,`skills:`,t),U(e),G(t)}).catch(e=>console.error(`Failed to load slash commands and skills:`,e))},[n.selectedThreadId]),(0,X.useEffect)(()=>{n.focusChatInput&&n.selectedThreadId&&!n.isStreaming&&(ce.current?.focus(),r({type:H.ClearFocusChatInput}))},[n.focusChatInput,n.selectedThreadId,n.isStreaming,r]),(0,X.useEffect)(()=>{let e=e=>{le.current&&!le.current.contains(e.target)&&S(!1),ue.current&&!ue.current.contains(e.target)&&T(!1)};if(x||C)return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[x,C]),{message:i,setMessage:a,historyIndex:o,setHistoryIndex:s,draftMessage:c,setDraftMessage:l,cursorPosition:u,setCursorPosition:d,availableModels:p,setAvailableModels:m,selectedModel:h,setSelectedModel:Q,selectedModelIdRef:v,showModelMenu:x,setShowModelMenu:S,showPlusMenu:C,setShowPlusMenu:T,attachments:E,setAttachments:D,planMode:O,setPlanMode:k,imageMode:A,setImageMode:ee,availableImageModels:j,setAvailableImageModels:M,selectedImageModel:N,setSelectedImageModel:P,allFiles:F,setAllFiles:I,showSuggestions:L,setShowSuggestions:R,suggestionQuery:ne,setSuggestionQuery:re,selectedIndex:B,setSelectedIndex:V,slashCommands:ae,setSlashCommands:U,skills:W,setSkills:G,showCommandSuggestions:K,setShowCommandSuggestions:q,commandQuery:J,setCommandQuery:oe,fileInputRef:se,textareaRef:ce,modelMenuRef:le,plusMenuRef:ue,suggestionsRef:Y,commandSuggestionsRef:Z,handleNewChat:async()=>{if(n.selectedThreadId)try{let e=await z(n.selectedThreadId);r({type:H.ClearMessages}),console.log(`New conversation started:`,e);let t=await te(n.selectedThreadId);r({type:H.SetMessages,messages:t.messages})}catch(e){console.error(`Failed to start new chat:`,e)}},state:n,dispatch:r}}var xe=e=>{E(e)};function Se(e){let t=(0,Y.c)(99),{message:n,setMessage:r,attachments:i,selectedModel:a,onSend:o,isStreaming:s,selectedThreadId:c,isListening:l,stopListening:u,resetTranscript:d,dispatch:f,historyIndex:p,setHistoryIndex:m,draftMessage:h,setDraftMessage:g,cursorPosition:_,setCursorPosition:v,showSuggestions:y,setShowSuggestions:b,suggestionQuery:x,setSuggestionQuery:S,allFiles:C,setAllFiles:w,selectedIndex:T,setSelectedIndex:E,showCommandSuggestions:D,setShowCommandSuggestions:O,commandQuery:k,setCommandQuery:A,slashCommands:j,skills:N,textareaRef:P,setAttachments:F,planMode:I,setPlanMode:L,imageMode:R,selectedImageModel:te}=e,ne;t[0]!==i||t[1]!==f||t[2]!==R||t[3]!==l||t[4]!==s||t[5]!==n||t[6]!==o||t[7]!==I||t[8]!==d||t[9]!==te||t[10]!==a||t[11]!==c||t[12]!==F||t[13]!==g||t[14]!==m||t[15]!==r||t[16]!==u||t[17]!==P?(ne=()=>{if(!n.trim()&&i.length===0||!c)return;let e=R?te:a;e&&(l&&(u(),d()),s?f({type:H.EnqueueChatMessage,message:{id:`queued-${Date.now()}`,threadId:c,message:n,model:e.id,attachments:i,provider:e.provider,planMode:I,imageMode:R}}):o(n,e.id,i,e.provider,I,R),xe(n),r(``),F([]),m(-1),g(``),P.current&&(P.current.style.height=`auto`))},t[0]=i,t[1]=f,t[2]=R,t[3]=l,t[4]=s,t[5]=n,t[6]=o,t[7]=I,t[8]=d,t[9]=te,t[10]=a,t[11]=c,t[12]=F,t[13]=g,t[14]=m,t[15]=r,t[16]=u,t[17]=P,t[18]=ne):ne=t[18];let z=ne,re;t[19]!==_||t[20]!==n||t[21]!==r||t[22]!==b||t[23]!==x||t[24]!==P?(re=e=>{let t=n.substring(0,_-x.length-1);r(`${t}${e} ${n.substring(_)}`),b(!1),setTimeout(()=>{if(P.current){P.current.focus();let n=t.length+e.length+1;P.current.setSelectionRange(n,n)}},0)},t[19]=_,t[20]=n,t[21]=r,t[22]=b,t[23]=x,t[24]=P,t[25]=re):re=t[25];let B=re,ie;t[26]!==k||t[27]!==_||t[28]!==n||t[29]!==r||t[30]!==L||t[31]!==O||t[32]!==P?(ie=e=>{let t=n.substring(0,_-k.length-1),i=n.substring(_);r(`${t}${e.content}${i}`),O(!1),setTimeout(()=>{if(P.current){P.current.focus();let n=t.length+e.content.length;P.current.setSelectionRange(n,n)}},0),e.metadata.mode===`plan`&&L(!0)},t[26]=k,t[27]=_,t[28]=n,t[29]=r,t[30]=L,t[31]=O,t[32]=P,t[33]=ie):ie=t[33];let V=ie,ae;t[34]!==k||t[35]!==_||t[36]!==n||t[37]!==r||t[38]!==O||t[39]!==P?(ae=e=>{let t=n.substring(0,_-k.length-1),i=n.substring(_),a=e.name.includes(` `)?`/"${e.name}"`:`/${e.name}`;r(`${t}${a}${i}`),O(!1),setTimeout(()=>{if(P.current){P.current.focus();let e=t.length+a.length;P.current.setSelectionRange(e,e)}},0)},t[34]=k,t[35]=_,t[36]=n,t[37]=r,t[38]=O,t[39]=P,t[40]=ae):ae=t[40];let U=ae,W,G,K,q;if(t[41]!==C||t[42]!==k||t[43]!==h||t[44]!==z||t[45]!==p||t[46]!==V||t[47]!==B||t[48]!==U||t[49]!==n||t[50]!==T||t[51]!==c||t[52]!==w||t[53]!==A||t[54]!==v||t[55]!==g||t[56]!==m||t[57]!==r||t[58]!==E||t[59]!==O||t[60]!==b||t[61]!==S||t[62]!==D||t[63]!==y||t[64]!==N||t[65]!==j||t[66]!==x){K=e=>{if(D){if(e.key===`ArrowDown`){e.preventDefault(),E((T+1)%W.length);return}if(e.key===`ArrowUp`){e.preventDefault(),E((T-1+W.length)%W.length);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let t=W[T];t&&(t.type===`command`?V(t.data):U(t.data));return}if(e.key===`Escape`){O(!1);return}}if(y){let t=G.length>0;if(e.key===`ArrowDown`&&t){e.preventDefault(),E((T+1)%G.length);return}if(e.key===`ArrowUp`&&t){e.preventDefault(),E((T-1+G.length)%G.length);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault(),G[T]&&B(G[T]);return}if(e.key===`Escape`){b(!1);return}}if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),z();return}let t=M();t.length!==0&&(e.key===`ArrowUp`?(e.preventDefault(),p===-1?(g(n),m(t.length-1),r(t[t.length-1])):p>0&&(m(p-1),r(t[p-1]))):e.key===`ArrowDown`&&(e.preventDefault(),p>0?(m(p-1),r(t[p-1])):p===0&&(m(-1),r(h))))};let e;t[71]!==C||t[72]!==c||t[73]!==w||t[74]!==A||t[75]!==v||t[76]!==r||t[77]!==E||t[78]!==O||t[79]!==b||t[80]!==S?(e=e=>{let t=e.target.value,n=e.target.selectionStart;r(t),v(n);let i=t.substring(0,n),a=i.lastIndexOf(`/`);if(a!==-1){let e=a>0?i[a-1]:``;if(a===0||/\s/.test(e)){let e=i.substring(a+1);e.includes(` `)?O(!1):(A(e),O(!0),b(!1),E(0))}else O(!1)}else{O(!1);let e=i.lastIndexOf(`#`);if(e!==-1){let t=e>0?i[e-1]:``;if(e===0||/\s/.test(t)){let t=i.substring(e+1);t.includes(` `)?b(!1):(S(t),b(!0),E(0),C.length===0&&c&&ee(c).then(e=>{w(e)}).catch(Te))}else b(!1)}else b(!1)}let o=e.target;o.style.height=`auto`,o.style.height=`${Math.min(o.scrollHeight,160)}px`},t[71]=C,t[72]=c,t[73]=w,t[74]=A,t[75]=v,t[76]=r,t[77]=E,t[78]=O,t[79]=b,t[80]=S,t[81]=e):e=t[81],q=e;let i;if(t[82]!==k||t[83]!==N||t[84]!==j){let e;t[86]===k?e=t[87]:(e=e=>e.name.toLowerCase().includes(k.toLowerCase()),t[86]=k,t[87]=e);let n=j.filter(e),r;t[88]===k?r=t[89]:(r=e=>e.name.toLowerCase().includes(k.toLowerCase()),t[88]=k,t[89]=r);let a=N.filter(r);i=[...n.map(we),...a.map(Ce)],t[82]=k,t[83]=N,t[84]=j,t[85]=i}else i=t[85];W=i.slice(0,10),G=y?C.filter(e=>e.toLowerCase().includes(x.toLowerCase())).slice(0,10):[],t[41]=C,t[42]=k,t[43]=h,t[44]=z,t[45]=p,t[46]=V,t[47]=B,t[48]=U,t[49]=n,t[50]=T,t[51]=c,t[52]=w,t[53]=A,t[54]=v,t[55]=g,t[56]=m,t[57]=r,t[58]=E,t[59]=O,t[60]=b,t[61]=S,t[62]=D,t[63]=y,t[64]=N,t[65]=j,t[66]=x,t[67]=W,t[68]=G,t[69]=K,t[70]=q}else W=t[67],G=t[68],K=t[69],q=t[70];let J;return t[90]!==W||t[91]!==G||t[92]!==K||t[93]!==z||t[94]!==q||t[95]!==V||t[96]!==B||t[97]!==U?(J={handleSend:z,handleKeyDown:K,handleTextareaInput:q,insertFileReference:B,insertCommand:V,insertSkill:U,allSuggestions:W,fileSuggestions:G},t[90]=W,t[91]=G,t[92]=K,t[93]=z,t[94]=q,t[95]=V,t[96]=B,t[97]=U,t[98]=J):J=t[98],J}function Ce(e){return{type:`skill`,data:e}}function we(e){return{type:`command`,data:e}}function Te(e){return console.error(`Failed to fetch files:`,e)}function Ee(e){let t=(0,Y.c)(21),{visible:n,commands:r,skills:i,query:a,selectedIndex:s,onSelectCommand:c,onSelectSkill:l,onMouseEnterSuggestion:d,containerRef:f}=e;if(!n)return null;let p;if(t[0]!==r||t[1]!==a||t[2]!==i){let e;t[4]===a?e=t[5]:(e=e=>e.name.toLowerCase().includes(a.toLowerCase()),t[4]=a,t[5]=e);let n=r.filter(e),o;t[6]===a?o=t[7]:(o=e=>e.name.toLowerCase().includes(a.toLowerCase()),t[6]=a,t[7]=o);let s=i.filter(o);p=[...n.map(Oe),...s.map(De)].slice(0,10),t[0]=r,t[1]=a,t[2]=i,t[3]=p}else p=t[3];let m=p,h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,Z.jsx)(o,{className:`h-3 w-3`}),t[8]=h):h=t[8];let g=a&&` matching "${a}"`,_;t[9]===g?_=t[10]:(_=(0,Z.jsxs)(`div`,{className:`px-2 py-1.5 text-xs font-semibold text-muted-foreground border-b border-border/50 mb-1 flex items-center gap-2`,children:[h,`Commands & Skills`,g]}),t[9]=g,t[10]=_);let y;t[11]!==m||t[12]!==d||t[13]!==c||t[14]!==l||t[15]!==s?(y=m.length>0?m.map((e,t)=>{let n=t===s;if(e.type===`command`){let r=e.data;return(0,Z.jsxs)(`button`,{type:`button`,className:v(`flex w-full flex-col gap-1 rounded-lg px-3 py-2 text-left transition-colors`,n?`bg-accent text-accent-foreground`:`text-popover-foreground hover:bg-accent/50`),onClick:()=>c(r),onMouseEnter:()=>d(t),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(o,{className:`h-3 w-3 text-muted-foreground`}),(0,Z.jsxs)(`span`,{className:`font-medium`,children:[`/`,r.name]}),r.metadata.argumentHint&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r.metadata.argumentHint}),r.scope===`project`&&(0,Z.jsx)(`span`,{className:`ml-auto text-[10px] rounded-full bg-primary/10 px-1.5 py-0.5 text-primary`,children:`project`})]}),r.metadata.description&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r.metadata.description})]},`cmd-${r.name}`)}else{let r=e.data;return(0,Z.jsxs)(`button`,{type:`button`,className:v(`flex w-full flex-col gap-1 rounded-lg px-3 py-2 text-left transition-colors`,n?`bg-accent text-accent-foreground`:`text-popover-foreground hover:bg-accent/50`),onClick:()=>l(r),onMouseEnter:()=>d(t),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(u,{className:`h-3 w-3 text-amber-500`}),(0,Z.jsxs)(`span`,{className:`font-medium`,children:[`/`,r.name]}),(0,Z.jsx)(`span`,{className:`ml-auto text-[10px] rounded-full bg-amber-500/10 px-1.5 py-0.5 text-amber-700 dark:text-amber-400`,children:`skill`}),r.scope===`project`&&(0,Z.jsx)(`span`,{className:`text-[10px] rounded-full bg-primary/10 px-1.5 py-0.5 text-primary`,children:`project`})]}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r.description})]},`skill-${r.name}`)}}):(0,Z.jsxs)(`div`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:[`No commands or skills found.`,(0,Z.jsx)(`br`,{}),(0,Z.jsxs)(`span`,{className:`text-[10px]`,children:[`Create commands in `,(0,Z.jsx)(`code`,{className:`bg-muted px-1 rounded`,children:`.agents/commands/`}),` or skills in `,(0,Z.jsx)(`code`,{className:`bg-muted px-1 rounded`,children:`.agents/skills/`})]})]}),t[11]=m,t[12]=d,t[13]=c,t[14]=l,t[15]=s,t[16]=y):y=t[16];let b;return t[17]!==f||t[18]!==_||t[19]!==y?(b=(0,Z.jsxs)(`div`,{ref:f,className:`absolute bottom-full left-0 mb-2 w-full max-h-64 overflow-y-auto rounded-xl border border-border bg-popover p-1 shadow-lg z-50 animate-in fade-in slide-in-from-bottom-2`,children:[_,y]}),t[17]=f,t[18]=_,t[19]=y,t[20]=b):b=t[20],b}function De(e){return{type:`skill`,data:e}}function Oe(e){return{type:`command`,data:e}}function ke(e){return e.startsWith(`image/`)}function Ae(e){let t=(0,Y.c)(7),{attachments:n,onRemove:r}=e;if(n.length===0)return null;let i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=(e,t)=>(0,Z.jsx)(`div`,{className:`group relative flex items-center gap-1 rounded-md bg-muted text-xs text-muted-foreground`,children:ke(e.mimeType)?(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(`img`,{src:`data:${e.mimeType};base64,${e.content}`,alt:e.fileName,className:`h-16 w-16 rounded-md object-cover`}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>r(t),className:`absolute -right-1.5 -top-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-foreground text-background opacity-0 transition-opacity group-hover:opacity-100`,children:[(0,Z.jsx)(A,{className:`h-2.5 w-2.5`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Remove attachment`})]})]}):(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1`,children:[(0,Z.jsx)(R,{className:`h-3 w-3`}),e.fileName,(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>r(t),className:`ml-1 hover:text-foreground`,children:[(0,Z.jsx)(A,{className:`h-3 w-3`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Remove attachment`})]})]})},t),t[3]=r,t[4]=e),i=n.map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let a;return t[5]===i?a=t[6]:(a=(0,Z.jsx)(`div`,{className:`mb-2 flex flex-wrap gap-1.5`,children:i}),t[5]=i,t[6]=a),a}function je(e,t){let n=e.target.files;if(!n||n.length===0)return;let r=Array.from(n),i=r.length,a=Array.from({length:i}),o=0;e.target.value=``,r.forEach((e,n)=>{let r=new FileReader;r.onload=()=>{let s=r.result.split(`,`)[1];a[n]={fileName:e.name,content:s,mimeType:e.type||`application/octet-stream`},o+=1,o===i&&t(a)},r.readAsDataURL(e)})}function Me(e){let t=(0,Y.c)(16),{showSuggestions:n,fileSuggestions:r,suggestionQuery:i,selectedIndex:o,onSelectFile:l,onMouseEnterSuggestion:u,containerRef:d}=e;if(!n||r.length===0)return null;let f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(a,{className:`h-3 w-3`}),t[0]=f):f=t[0];let p;t[1]===i?p=t[2]:(p=(0,Z.jsxs)(`div`,{className:`px-2 py-1.5 text-xs font-semibold text-muted-foreground border-b border-border/50 mb-1 flex items-center gap-2`,children:[f,`Files matching "`,i,`"`]}),t[1]=i,t[2]=p);let m;if(t[3]!==r||t[4]!==u||t[5]!==l||t[6]!==o){let e;t[8]!==u||t[9]!==l||t[10]!==o?(e=(e,t)=>{let n=e.split(`/`).pop()??e;return(0,Z.jsxs)(`button`,{type:`button`,className:v(`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-left transition-colors`,t===o?`bg-accent text-accent-foreground`:`text-popover-foreground hover:bg-accent/50`),onClick:()=>l(e),onMouseEnter:()=>u(t),children:[e.endsWith(`.ts`)||e.endsWith(`.tsx`)||e.endsWith(`.js`)||e.endsWith(`.jsx`)?(0,Z.jsx)(c,{className:`h-4 w-4 text-blue-500`}):(0,Z.jsx)(s,{className:`h-4 w-4 text-muted-foreground`}),(0,Z.jsxs)(`div`,{className:`flex flex-col overflow-hidden`,children:[(0,Z.jsx)(`span`,{className:`truncate font-medium`,children:n}),(0,Z.jsx)(`span`,{className:`truncate text-[10px] text-muted-foreground opacity-70`,children:e})]})]},e)},t[8]=u,t[9]=l,t[10]=o,t[11]=e):e=t[11],m=r.map(e),t[3]=r,t[4]=u,t[5]=l,t[6]=o,t[7]=m}else m=t[7];let h;return t[12]!==d||t[13]!==p||t[14]!==m?(h=(0,Z.jsxs)(`div`,{ref:d,className:`absolute bottom-full left-0 mb-2 w-full max-h-64 overflow-y-auto rounded-xl border border-border bg-popover p-1 shadow-lg z-50 animate-in fade-in slide-in-from-bottom-2`,children:[p,m]}),t[12]=d,t[13]=p,t[14]=m,t[15]=h):h=t[15],h}function Ne(e){let t=(0,Y.c)(3),{provider:n}=e;if(!n)return null;let r=`https://models.tarsk.io/svg/${n}.svg`,i=`${n} logo`,a;return t[0]!==r||t[1]!==i?(a=(0,Z.jsx)(`img`,{src:r,alt:i,className:`h-3.5 w-3.5 flex-shrink-0`,onError:Pe}),t[0]=r,t[1]=i,t[2]=a):a=t[2],a}function Pe(e){e.currentTarget.style.visibility=`hidden`}function Fe(e){let t=(0,Y.c)(26),{availableModels:n,selectedModel:r,onModelSelect:i}=e,[a,o]=X.useState(!1),s=X.useRef(null),c,l;t[0]===a?(c=t[1],l=t[2]):(c=()=>{let e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)};if(a)return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},l=[a],t[0]=a,t[1]=c,t[2]=l),X.useEffect(c,l);let u;t[3]===i?u=t[4]:(u=e=>{i(e),o(!1)},t[3]=i,t[4]=u);let f=u,p;t[5]===a?p=t[6]:(p=()=>o(!a),t[5]=a,t[6]=p);let m=r?.provider,h;t[7]===m?h=t[8]:(h=(0,Z.jsx)(Ne,{provider:m}),t[7]=m,t[8]=h);let g;t[9]===r?g=t[10]:(g=r?ue(r.id):`No model`,t[9]=r,t[10]=g);let _;t[11]===g?_=t[12]:(_=(0,Z.jsx)(`span`,{className:`text-xs font-medium`,children:g}),t[11]=g,t[12]=_);let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(b,{className:`h-3 w-3`}),t[13]=v):v=t[13];let y;t[14]!==p||t[15]!==h||t[16]!==_?(y=(0,Z.jsxs)(d,{variant:`action`,size:`icon-sm`,className:`gap-1 w-auto px-2`,onClick:p,children:[h,_,v]}),t[14]=p,t[15]=h,t[16]=_,t[17]=y):y=t[17];let x;t[18]!==n||t[19]!==f||t[20]!==r?.id||t[21]!==a?(x=a&&(0,Z.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 w-80 max-h-80 overflow-y-auto rounded-lg border border-border bg-popover p-1 shadow-md z-50`,children:Object.entries(n.reduce(Ie,{})).map(e=>{let[t,n]=e;return(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wide`,children:[(0,Z.jsx)(Ne,{provider:t}),t]}),n.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`flex w-full items-center whitespace-nowrap rounded-md px-3 py-1.5 pl-8 text-sm text-popover-foreground hover:bg-accent ${e.id===r?.id?`bg-accent font-medium`:``}`,onClick:()=>f(e),children:ue(e.id)},e.id))]},t)})}),t[18]=n,t[19]=f,t[20]=r?.id,t[21]=a,t[22]=x):x=t[22];let S;return t[23]!==y||t[24]!==x?(S=(0,Z.jsxs)(`div`,{className:`relative`,ref:s,children:[y,x]}),t[23]=y,t[24]=x,t[25]=S):S=t[25],S}function Ie(e,t){let n=t.provider??`Other`;return e[n]||(e[n]=[]),e[n].push(t),e}var Le=[{value:`build`,label:`Build`,icon:m},{value:`plan`,label:`Plan`,icon:S},{value:`image`,label:`Image`,icon:C}];function Re(e,t){return e?`plan`:t?`image`:`build`}function ze(e){let t=(0,Y.c)(29),{planMode:r,imageMode:i,setPlanMode:a,setImageMode:o}=e,[s,c]=X.useState(!1),l=X.useRef(null),u;t[0]!==i||t[1]!==r?(u=Re(r,i),t[0]=i,t[1]=r,t[2]=u):u=t[2];let f=u,p;t[3]===f?p=t[4]:(p=Le.find(e=>e.value===f),t[3]=f,t[4]=p);let m=p,h=m.icon,g,_;t[5]===s?(g=t[6],_=t[7]):(g=()=>{let e=function(e){l.current&&!l.current.contains(e.target)&&c(!1)};if(s)return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},_=[s],t[5]=s,t[6]=g,t[7]=_),X.useEffect(g,_);let v;t[8]!==o||t[9]!==a?(v=function(e){a(e===`plan`),o(e===`image`),c(!1)},t[8]=o,t[9]=a,t[10]=v):v=t[10];let y=v,x;t[11]===s?x=t[12]:(x=()=>c(!s),t[11]=s,t[12]=x);let S;t[13]===h?S=t[14]:(S=(0,Z.jsx)(h,{className:`h-3.5 w-3.5`}),t[13]=h,t[14]=S);let C;t[15]===m.label?C=t[16]:(C=(0,Z.jsx)(`span`,{className:`text-xs font-medium`,children:m.label}),t[15]=m.label,t[16]=C);let w;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsx)(b,{className:`h-3 w-3`}),t[17]=w):w=t[17];let T;t[18]!==x||t[19]!==S||t[20]!==C?(T=(0,Z.jsxs)(d,{variant:`action`,size:`icon-sm`,className:`gap-1 w-auto px-2`,onClick:x,children:[S,C,w]}),t[18]=x,t[19]=S,t[20]=C,t[21]=T):T=t[21];let E;t[22]!==f||t[23]!==s||t[24]!==y?(E=s&&(0,Z.jsx)(`div`,{className:`absolute bottom-full right-0 mb-1 w-40 rounded-lg border border-border bg-popover p-1 shadow-md z-50`,children:Le.map(e=>{let t=e.icon,r=e.value===f;return(0,Z.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm text-popover-foreground hover:bg-accent`,onClick:()=>y(e.value),children:[(0,Z.jsx)(t,{className:`h-3.5 w-3.5`}),e.label,r&&(0,Z.jsx)(n,{className:`ml-auto h-3.5 w-3.5`})]},e.value)})}),t[22]=f,t[23]=s,t[24]=y,t[25]=E):E=t[25];let D;return t[26]!==T||t[27]!==E?(D=(0,Z.jsxs)(`div`,{className:`relative`,ref:l,children:[T,E]}),t[26]=T,t[27]=E,t[28]=D):D=t[28],D}function Be(e){let t=(0,Y.c)(17),{onFileAttach:n}=e,[r,i]=X.useState(!1),a=X.useRef(null),o,s;t[0]===r?(o=t[1],s=t[2]):(o=()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};if(r)return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},s=[r],t[0]=r,t[1]=o,t[2]=s),X.useEffect(o,s);let c;t[3]===n?c=t[4]:(c=function(){n(),i(!1)},t[3]=n,t[4]=c);let l=c,u;t[5]===r?u=t[6]:(u=()=>i(!r),t[5]=r,t[6]=u);let f,m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(p,{}),m=(0,Z.jsx)(`span`,{className:`sr-only`,children:`More options`}),t[7]=f,t[8]=m):(f=t[7],m=t[8]);let h;t[9]===u?h=t[10]:(h=(0,Z.jsxs)(d,{variant:`action`,size:`icon-sm`,onClick:u,children:[f,m]}),t[9]=u,t[10]=h);let g;t[11]!==l||t[12]!==r?(g=r&&(0,Z.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 w-48 rounded-lg border border-border bg-popover p-1 shadow-md z-50`,children:(0,Z.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm text-popover-foreground hover:bg-accent`,onClick:l,children:[(0,Z.jsx)(R,{className:`h-3.5 w-3.5`}),`Attach File`]})}),t[11]=l,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==h||t[15]!==g?(_=(0,Z.jsxs)(`div`,{className:`relative`,ref:a,children:[h,g]}),t[14]=h,t[15]=g,t[16]=_):_=t[16],_}function Ve(e){let t=(0,Y.c)(14),{onToggleSpeech:n}=e,{isListening:r,isSupported:i}=ye();if(!i)return null;let a=r?`bg-red-500/20 text-red-500 hover:bg-red-500/30`:`text-muted-foreground hover:text-background`,o;t[0]===r?o=t[1]:(o=r?(0,Z.jsx)(D,{}):(0,Z.jsx)(ne,{}),t[0]=r,t[1]=o);let s=r?`Stop listening`:`Start listening`,c;t[2]===s?c=t[3]:(c=(0,Z.jsx)(`span`,{className:`sr-only`,children:s}),t[2]=s,t[3]=c);let l;t[4]!==n||t[5]!==a||t[6]!==o||t[7]!==c?(l=(0,Z.jsx)(K,{asChild:!0,children:(0,Z.jsxs)(d,{variant:`ghost`,size:`icon-sm`,className:a,onClick:n,children:[o,c]})}),t[4]=n,t[5]=a,t[6]=o,t[7]=c,t[8]=l):l=t[8];let u=r?`Stop listening`:`Start listening`,f;t[9]===u?f=t[10]:(f=(0,Z.jsx)(W,{side:`top`,className:`bg-popover text-popover-foreground`,children:u}),t[9]=u,t[10]=f);let p;return t[11]!==l||t[12]!==f?(p=(0,Z.jsxs)(G,{children:[l,f]}),t[11]=l,t[12]=f,t[13]=p):p=t[13],p}function He(e){let t=(0,Y.c)(8),{queuedMessages:n,onRemoveQueuedMessage:r}=e;if(n.length===0)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Queued messages`}),t[0]=i):i=t[0];let a;if(t[1]!==r||t[2]!==n){let e;t[4]===r?e=t[5]:(e=e=>(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm`,children:[(0,Z.jsx)(`p`,{className:`flex-1 whitespace-pre-wrap text-foreground`,children:e.message}),(0,Z.jsx)(`button`,{type:`button`,className:`rounded-full p-1 text-muted-foreground transition-colors hover:bg-foreground hover:text-background`,onClick:()=>r(e.id),"aria-label":`Remove queued message`,children:(0,Z.jsx)(A,{className:`h-3.5 w-3.5`})})]},e.id),t[4]=r,t[5]=e),a=n.map(e),t[1]=r,t[2]=n,t[3]=a}else a=t[3];let o;return t[6]===a?o=t[7]:(o=(0,Z.jsxs)(`div`,{className:`mb-3 rounded-lg border border-border/60 bg-muted/30 px-4 py-3`,children:[i,(0,Z.jsx)(`div`,{className:`mt-2 flex flex-col gap-2`,children:a})]}),t[6]=a,t[7]=o),o}function Ue(e){let t=(0,Y.c)(144),{onSend:n,onStop:r,isStreaming:i,disabled:a,initialValue:o,queuedMessages:s,onRemoveQueuedMessage:c,isOverlay:u}=e,f=i===void 0?!1:i,p=u===void 0?!1:u,{isListening:m,transcript:h,startListening:g,stopListening:v,resetTranscript:y}=ye(),b;t[0]===o?b=t[1]:(b={initialValue:o},t[0]=o,t[1]=b);let{message:x,setMessage:S,historyIndex:C,setHistoryIndex:w,draftMessage:T,setDraftMessage:E,cursorPosition:D,setCursorPosition:O,availableModels:k,selectedModel:A,setSelectedModel:ee,attachments:j,setAttachments:M,planMode:N,setPlanMode:P,imageMode:F,setImageMode:L,availableImageModels:R,selectedImageModel:te,setSelectedImageModel:ne,allFiles:z,setAllFiles:re,showSuggestions:B,setShowSuggestions:ie,suggestionQuery:V,setSuggestionQuery:ae,selectedIndex:H,setSelectedIndex:U,slashCommands:W,skills:G,showCommandSuggestions:K,setShowCommandSuggestions:q,commandQuery:J,setCommandQuery:oe,fileInputRef:se,textareaRef:ce,suggestionsRef:le,commandSuggestionsRef:ue,handleNewChat:Q,state:de,dispatch:fe}=be(b),$=F?te:A,pe=F?R:k,me=de.selectedThreadId??void 0,he;t[2]!==z||t[3]!==j||t[4]!==J||t[5]!==D||t[6]!==fe||t[7]!==T||t[8]!==C||t[9]!==F||t[10]!==m||t[11]!==f||t[12]!==x||t[13]!==n||t[14]!==N||t[15]!==y||t[16]!==te||t[17]!==H||t[18]!==A||t[19]!==re||t[20]!==M||t[21]!==oe||t[22]!==O||t[23]!==E||t[24]!==w||t[25]!==S||t[26]!==P||t[27]!==U||t[28]!==q||t[29]!==ie||t[30]!==ae||t[31]!==K||t[32]!==B||t[33]!==G||t[34]!==W||t[35]!==v||t[36]!==V||t[37]!==me||t[38]!==ce?(he={message:x,setMessage:S,attachments:j,selectedModel:A,onSend:n,isStreaming:f,selectedThreadId:me,isListening:m,stopListening:v,resetTranscript:y,dispatch:fe,historyIndex:C,setHistoryIndex:w,draftMessage:T,setDraftMessage:E,cursorPosition:D,setCursorPosition:O,showSuggestions:B,setShowSuggestions:ie,suggestionQuery:V,setSuggestionQuery:ae,allFiles:z,setAllFiles:re,selectedIndex:H,setSelectedIndex:U,showCommandSuggestions:K,setShowCommandSuggestions:q,commandQuery:J,setCommandQuery:oe,slashCommands:W,skills:G,textareaRef:ce,setAttachments:M,planMode:N,setPlanMode:P,imageMode:F,selectedImageModel:te},t[2]=z,t[3]=j,t[4]=J,t[5]=D,t[6]=fe,t[7]=T,t[8]=C,t[9]=F,t[10]=m,t[11]=f,t[12]=x,t[13]=n,t[14]=N,t[15]=y,t[16]=te,t[17]=H,t[18]=A,t[19]=re,t[20]=M,t[21]=oe,t[22]=O,t[23]=E,t[24]=w,t[25]=S,t[26]=P,t[27]=U,t[28]=q,t[29]=ie,t[30]=ae,t[31]=K,t[32]=B,t[33]=G,t[34]=W,t[35]=v,t[36]=V,t[37]=me,t[38]=ce,t[39]=he):he=t[39];let{handleSend:ge,handleKeyDown:_e,handleTextareaInput:ve,insertFileReference:xe,insertCommand:Ce,insertSkill:we,fileSuggestions:Te}=Se(he),De=X.useRef(``),Oe,ke;t[40]!==S||t[41]!==h?(Oe=()=>{if(h&&h!==De.current){let e=h.substring(De.current.length);S(t=>(t.endsWith(` `),t+e)),De.current=h}},ke=[h,S],t[40]=S,t[41]=h,t[42]=Oe,t[43]=ke):(Oe=t[42],ke=t[43]),X.useEffect(Oe,ke);let Ne;t[44]===M?Ne=t[45]:(Ne=e=>{let t=e.clipboardData?.items;if(!t)return;let n=Array.from(t).filter(Ge);if(n.length!==0){e.preventDefault();for(let e of n){let t=e.getAsFile();if(!t)continue;let n=new FileReader;n.onload=()=>{let e=n.result.split(`,`)[1];M(n=>[...n,{fileName:t.name||`pasted-image.${t.type.split(`/`)[1]||`png`}`,content:e,mimeType:t.type}])},n.readAsDataURL(t)}}},t[44]=M,t[45]=Ne);let Pe=Ne,Ie;t[46]!==m||t[47]!==y||t[48]!==g||t[49]!==v?(Ie=()=>{m?(v(),y()):(y(),g())},t[46]=m,t[47]=y,t[48]=g,t[49]=v,t[50]=Ie):Ie=t[50];let Le=Ie,Re=p?`absolute inset-x-0 bottom-0 mx-auto w-full max-w-3xl px-4 pb-4 pointer-events-none`:`relative mx-auto w-full max-w-3xl px-4 pb-4`,Ue=`flex flex-col rounded-2xl border focus-within:ring-2 focus-within:ring-brand pointer-events-auto ${p?`border-border/50 bg-background/80 shadow-lg backdrop-blur-sm`:`border-border bg-background shadow-2xl`}`,Ke;t[51]!==c||t[52]!==s?(Ke=(0,Z.jsx)(He,{queuedMessages:s,onRemoveQueuedMessage:c}),t[51]=c,t[52]=s,t[53]=Ke):Ke=t[53];let qe=N?`Describe what you want Tarsk to plan...`:F?`Describe the image you want to generate...`:`Ask Tarsk anything, # for files, / for commands & skills`,Je;t[54]!==a||t[55]!==_e||t[56]!==Pe||t[57]!==ve||t[58]!==x||t[59]!==qe||t[60]!==ce?(Je=(0,Z.jsx)(`textarea`,{ref:ce,value:x,onChange:ve,onKeyDown:_e,onPaste:Pe,placeholder:qe,rows:1,className:`w-full resize-none bg-transparent px-6 pt-4 pb-4 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none`,disabled:a}),t[54]=a,t[55]=_e,t[56]=Pe,t[57]=ve,t[58]=x,t[59]=qe,t[60]=ce,t[61]=Je):Je=t[61];let Ye;t[62]!==J||t[63]!==ue||t[64]!==Ce||t[65]!==we||t[66]!==H||t[67]!==U||t[68]!==K||t[69]!==G||t[70]!==W?(Ye=(0,Z.jsx)(Ee,{visible:K,commands:W,skills:G,query:J,selectedIndex:H,onSelectCommand:Ce,onSelectSkill:we,onMouseEnterSuggestion:U,containerRef:ue}),t[62]=J,t[63]=ue,t[64]=Ce,t[65]=we,t[66]=H,t[67]=U,t[68]=K,t[69]=G,t[70]=W,t[71]=Ye):Ye=t[71];let Xe;t[72]!==Te||t[73]!==xe||t[74]!==H||t[75]!==U||t[76]!==B||t[77]!==V||t[78]!==le?(Xe=(0,Z.jsx)(Me,{showSuggestions:B,fileSuggestions:Te,suggestionQuery:V,selectedIndex:H,onSelectFile:xe,onMouseEnterSuggestion:U,containerRef:le}),t[72]=Te,t[73]=xe,t[74]=H,t[75]=U,t[76]=B,t[77]=V,t[78]=le,t[79]=Xe):Xe=t[79];let Ze;t[80]!==j||t[81]!==A?.id||t[82]!==A?.name||t[83]!==A?.supportsImages||t[84]!==M?(Ze=j.length>0&&(0,Z.jsxs)(`div`,{className:`px-4`,children:[(0,Z.jsx)(Ae,{attachments:j,onRemove:e=>M(t=>t.filter((t,n)=>n!==e))}),j.some(We)&&A?.supportsImages===!1&&(0,Z.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-xs text-amber-500`,children:[(0,Z.jsx)(l,{className:`h-3 w-3 shrink-0`}),(0,Z.jsxs)(`span`,{children:[`Images are not supported by `,A?.name||A?.id]})]})]}),t[80]=j,t[81]=A?.id,t[82]=A?.name,t[83]=A?.supportsImages,t[84]=M,t[85]=Ze):Ze=t[85];let Qe;t[86]===se?Qe=t[87]:(Qe=(0,Z.jsx)(Be,{onFileAttach:()=>se.current?.click()}),t[86]=se,t[87]=Qe);let $e;t[88]===Le?$e=t[89]:($e=(0,Z.jsx)(Ve,{onToggleSpeech:Le}),t[88]=Le,t[89]=$e);let et;t[90]===Q?et=t[91]:(et=(0,Z.jsx)(d,{variant:`action`,size:`sm`,className:`h-7 text-xs`,onClick:Q,children:`New Chat`}),t[90]=Q,t[91]=et);let tt=F?ne:ee,nt;t[92]!==pe||t[93]!==$||t[94]!==tt?(nt=(0,Z.jsx)(Fe,{availableModels:pe,selectedModel:$,onModelSelect:tt}),t[92]=pe,t[93]=$,t[94]=tt,t[95]=nt):nt=t[95];let rt;t[96]!==Qe||t[97]!==$e||t[98]!==et||t[99]!==nt?(rt=(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[Qe,$e,et,nt]}),t[96]=Qe,t[97]=$e,t[98]=et,t[99]=nt,t[100]=rt):rt=t[100];let it;t[101]!==F||t[102]!==N||t[103]!==L||t[104]!==P?(it=(0,Z.jsx)(ze,{planMode:N,imageMode:F,setPlanMode:P,setImageMode:L}),t[101]=F,t[102]=N,t[103]=L,t[104]=P,t[105]=it):it=t[105];let at=f?r:ge,ot;t[106]!==j.length||t[107]!==a||t[108]!==$||t[109]!==f||t[110]!==x?(ot=!f&&((a??!1)||!x.trim()&&j.length===0||!$),t[106]=j.length,t[107]=a,t[108]=$,t[109]=f,t[110]=x,t[111]=ot):ot=t[111];let st;t[112]===f?st=t[113]:(st=f?(0,Z.jsx)(_,{className:`h-3 w-3 fill-current`}):(0,Z.jsx)(I,{className:`h-3 w-3`}),t[112]=f,t[113]=st);let ct=f?`Stop generation`:`Send message`,lt;t[114]===ct?lt=t[115]:(lt=(0,Z.jsx)(`span`,{className:`sr-only`,children:ct}),t[114]=ct,t[115]=lt);let ut;t[116]!==at||t[117]!==ot||t[118]!==st||t[119]!==lt?(ut=(0,Z.jsxs)(d,{size:`icon`,className:`h-7 w-7 rounded-full`,onClick:at,disabled:ot,children:[st,lt]}),t[116]=at,t[117]=ot,t[118]=st,t[119]=lt,t[120]=ut):ut=t[120];let dt;t[121]!==it||t[122]!==ut?(dt=(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[it,ut]}),t[121]=it,t[122]=ut,t[123]=dt):dt=t[123];let ft;t[124]!==rt||t[125]!==dt?(ft=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between px-3 pb-2`,children:[rt,dt]}),t[124]=rt,t[125]=dt,t[126]=ft):ft=t[126];let pt;t[127]!==Ue||t[128]!==Ke||t[129]!==Je||t[130]!==Ye||t[131]!==Xe||t[132]!==Ze||t[133]!==ft?(pt=(0,Z.jsxs)(`div`,{className:Ue,children:[Ke,Je,Ye,Xe,Ze,ft]}),t[127]=Ue,t[128]=Ke,t[129]=Je,t[130]=Ye,t[131]=Xe,t[132]=Ze,t[133]=ft,t[134]=pt):pt=t[134];let mt;t[135]===M?mt=t[136]:(mt=e=>je(e,e=>M(t=>[...t,...e])),t[135]=M,t[136]=mt);let ht;t[137]!==se||t[138]!==mt?(ht=(0,Z.jsx)(`input`,{ref:se,type:`file`,multiple:!0,className:`hidden`,onChange:mt}),t[137]=se,t[138]=mt,t[139]=ht):ht=t[139];let gt;return t[140]!==Re||t[141]!==pt||t[142]!==ht?(gt=(0,Z.jsxs)(`div`,{className:Re,children:[pt,ht]}),t[140]=Re,t[141]=pt,t[142]=ht,t[143]=gt):gt=t[143],gt}function We(e){return e.mimeType.startsWith(`image/`)}function Ge(e){return e.type.startsWith(`image/`)}function Ke({threadId:e}){let[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(null);return(0,X.useEffect)(()=>{e&&N(e).then(i).catch(()=>{})},[e]),(0,Z.jsx)(`div`,{className:`flex items-center justify-end gap-2 px-8 py-2 mt-[-1rem] min-h-[2.25rem]`,children:e&&(0,Z.jsxs)(G,{children:[(0,Z.jsx)(K,{asChild:!0,children:(0,Z.jsx)(d,{variant:`ghost`,size:`icon`,className:`h-6 w-6 opacity-50 hover:opacity-80`,onClick:async()=>{if(!(!e||t)){n(!0);try{let t=await N(e);await navigator.clipboard.writeText(t)}finally{n(!1)}}},disabled:t,"aria-label":`Copy repository folder path`,children:(0,Z.jsx)(k,{className:`h-3 w-3`})})}),(0,Z.jsxs)(W,{side:`top`,className:`bg-slate-900 text-white`,children:[(0,Z.jsx)(`div`,{children:`Copy repository folder path`}),r&&(0,Z.jsx)(`div`,{className:`opacity-70 text-xs`,children:r})]})]})})}function qe(e,t){if(!(!t||!e.includes(`"run_js"`)))try{let n=JSON.parse(e.trim());if(!Array.isArray(n))return;for(let e of n)e?.type===`tool_use`&&e?.name===`run_js`&&e?.id&&e?.input?.code&&_e(e.id,e.input.code,t)}catch{}}function Je(){let{state:e,dispatch:t}=ie(),[n,r]=(0,X.useState)(null),[a,o]=(0,X.useState)(!1),s=(0,X.useRef)(``),c=(0,X.useRef)(``),l=(0,X.useRef)([]),u=(0,X.useRef)(!1),d=(0,X.useRef)(null),f=(0,X.useRef)(null),p=(0,X.useRef)(()=>{}),[m,h]=(0,X.useState)(null),g=(0,X.useRef)(!1),_=(0,X.useRef)(!1),v=(0,X.useRef)(null),b=(0,X.useRef)(null),S=(0,X.useRef)(null),{selectedThreadId:C,selectedProjectId:E,messages:D,queuedChatMessages:O,isStreaming:k,streamingModel:A,processingThreadIds:ee}=e,j=!!(C&&ee.includes(C)),M=(0,X.useCallback)(n=>{if(d.current=null,f.current=null,g.current){g.current=!1;return}let r=l.current,i=ae(r)||`...`;if(v.current&&(r.length===0||i===`...`)){let r={messageId:`msg-${Date.now()}-error`,sender:`agent`,content:`Error: ${v.current}`,contentType:`text`,timestamp:new Date().toISOString(),model:e.streamingModel||n,isThinking:!1};t({type:H.AddMessage,message:r}),t({type:H.ResetStream}),C&&t({type:H.RemoveProcessingThread,threadId:C}),v.current=null;return}let a={messageId:`msg-${Date.now()}-agent`,sender:`agent`,content:i,contentType:`markdown`,timestamp:new Date().toISOString(),model:e.streamingModel||n,isThinking:!1};s.current=``,c.current=``,l.current=[],v.current=null,t({type:H.AddMessage,message:a}),t({type:H.ResetStream}),C&&(t({type:H.MarkThreadCompleted,threadId:C}),t({type:H.RemoveProcessingThread,threadId:C}))},[e.streamingModel,t,C]);(0,X.useEffect)(()=>{p.current=M},[M]);let N=(0,X.useCallback)(()=>{C&&h(C),g.current=!0,C&&T(C),d.current&&=(d.current.abort(),null),f.current&&=(f.current(),null),s.current=``,c.current=``,l.current=[],v.current=null;let n={messageId:`msg-${Date.now()}-stopped`,sender:`agent`,content:`I've stopped working on your request.`,contentType:`text`,timestamp:new Date().toISOString(),model:e.streamingModel||`default`,isThinking:!1};t({type:H.AddMessage,message:n}),t({type:H.ResetStream}),C&&(t({type:H.MarkThreadCompleted,threadId:C}),t({type:H.RemoveProcessingThread,threadId:C}))},[C,t,e.streamingModel]);(0,X.useEffect)(()=>{_.current&&!k&&d.current&&(d.current.abort(),d.current=null,f.current&&=(f.current(),null),p.current(A||`default`)),_.current=k},[k,A]),(0,X.useEffect)(()=>{if(b.current&&=(clearTimeout(b.current),null),k){let e=12e4,t=n=>{b.current&&=(clearTimeout(b.current),null),b.current=setTimeout(()=>{let n=Date.now(),r=S?.current??null;if(r!=null){let i=n-r;if(i<e){t(e-i);return}}console.warn(`[stream-safety] Streaming stuck for 2 minutes with no activity, auto-finalizing`),d.current&&=(d.current.abort(),null),f.current&&=(f.current(),null),p.current(A||`default`)},n)},n=e;if(S?.current!=null){let t=Date.now()-S.current;n=t>=e?0:e-t}t(n)}return()=>{b.current&&=(clearTimeout(b.current),null)}},[k,A]),(0,X.useEffect)(()=>()=>{d.current&&=(d.current.abort(),null),f.current&&=(f.current(),null),s.current=``,c.current=``,l.current=[],u.current=!1,v.current=null,t({type:H.ResetStream})},[C,t]),(0,X.useEffect)(()=>{if(!C)return;let e=!1;async function n(){try{let n=await te(C);e||t({type:H.SetMessages,messages:n.messages})}catch(n){console.error(`Failed to load chat history:`,n),e||t({type:H.SetMessages,messages:[]})}}return n(),()=>{e=!0}},[C,E,t]),(0,X.useEffect)(()=>{if(!C||!j||k)return;let e=new AbortController;return d.current=e,t({type:H.ResetStream}),t({type:H.SetStreaming,isStreaming:!0}),s.current=``,c.current=``,l.current=[],u.current=!1,v.current=null,F(C,e.signal).then(n=>{if(!n||e.signal.aborted){p.current(`default`);return}f.current=x(n,e=>{if(e.type===`error`){let t=e.content||`Unknown error occurred`;v.current=t,r(t);return}if(e.type!==`message`){if(e.type===`toolcall_delta`){e.partial?.content?.[0]?.id&&e.delta&&t({type:H.UpdateToolCallProgress,toolCallId:e.partial.content[0].id,progress:{toolCallId:e.partial.content[0].id,toolName:e.partial.content[0].name,delta:e.delta,partial:e.partial}});return}if(e.model&&t({type:H.SetStreamModel,model:e.model}),e.type===`thinking`||e.isThinking){let n=e.content??``;qe(n,C),c.current+=n;let r=V(l.current,`thinking`,n);l.current=r,t({type:H.AppendStreamChunk,chunkType:`thinking`,content:n,segments:r})}else if(e.type===`result`)u.current=!0,s.current=e.content??``,l.current=U(l.current,e.content??``),t({type:H.SetStreamContent,content:e.content??``});else{if(u.current)return;s.current+=e.content??``;let n=V(l.current,`content`,e.content??``);l.current=n,t({type:H.AppendStreamChunk,chunkType:`content`,content:e.content??``,segments:n})}}},()=>{p.current(`default`)},e=>{if(e.includes(`AbortError`)||e.includes(`canceled`)||e.includes(`BodyStreamBuffer was aborted`)){p.current(`default`);return}v.current=e,r(e)},e=>{if(e.role===`assistant`){let n=e.content??``,r=typeof n==`string`?n:JSON.stringify(n);if(e.isThinking??!1){c.current+=r;let e=V(l.current,`thinking`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`thinking`,content:r,segments:e});return}let i=!1;if(typeof n==`object`&&Array.isArray(n)&&n.length>0)i=!0;else if(typeof r==`string`&&r.trim().startsWith(`[`))try{let e=JSON.parse(r);i=Array.isArray(e)&&e.length>0}catch{}if(i)u.current=!0,s.current=r,l.current=U(l.current,r),t({type:H.SetStreamContent,content:r});else{s.current+=r;let e=V(l.current,`content`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`content`,content:r,segments:e})}}else if(e.role===`tool`){let n=e.content??``,r=typeof n==`string`?n:JSON.stringify(n);if(r){s.current+=r;let e=V(l.current,`content`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`content`,content:r,segments:e})}}})}).catch(e=>{if(e instanceof Error&&e.name===`AbortError`){t({type:H.ResetStream});return}if(e instanceof Error&&e.message.includes(`not currently processing`)){t({type:H.ResetStream});return}console.error(`Failed to subscribe to chat stream:`,e),t({type:H.ResetStream})}),()=>{e.abort(),f.current&&=(f.current(),null)}},[C,j]);let I=(0,X.useCallback)(async(n,a,m,g,_,b)=>{if(!C)return;r(null),h(null),d.current&&d.current.abort(),f.current&&f.current();let S=`msg-${Date.now()}`,T;try{let e=await i(C,S);e.success&&e.stashed&&e.checkpointRef&&(T=e.checkpointRef)}catch{}let D={messageId:S,sender:`user`,content:n,contentType:`text`,timestamp:new Date().toISOString(),model:a,attachments:m.map(e=>({fileName:e.fileName,content:e.content,mimeType:e.mimeType})),checkpointRef:T};t({type:H.AddMessage,message:D});let O=n.trim().replace(/\n/g,` `).slice(0,100);if(E&&C&&(w(C,{title:O}).catch(e=>{console.error(`Failed to update thread title:`,e)}),t({type:H.UpdateThreadTitle,projectId:E,threadId:C,title:O})),b){let e=g??void 0;if(!e&&typeof a==`string`){let t=a.split(/[:/]/)[0]?.trim();t&&(e=t)}if(!e){let e={messageId:`msg-${Date.now()}-error`,sender:`agent`,content:`Image generation is not available because no provider is configured for the selected model.`,contentType:`text`,timestamp:new Date().toISOString(),model:a,isThinking:!1};t({type:H.AddMessage,message:e}),t({type:H.ResetStream});return}t({type:H.SetStreaming,isStreaming:!0});try{let r=await y(n,a,e,C),i={messageId:`msg-${Date.now()}-agent`,sender:`agent`,content:n,contentType:`text`,timestamp:new Date().toISOString(),model:a,isThinking:!1,generatedImageUrl:r.imageUrl,generatedImageData:r.imageData};t({type:H.AddMessage,message:i})}catch(e){let n=e instanceof Error?e.message:`Image generation failed`,r={messageId:`msg-${Date.now()}-error`,sender:`agent`,content:`Error: ${n}`,contentType:`text`,timestamp:new Date().toISOString(),model:a,isThinking:!1};t({type:H.AddMessage,message:r})}finally{t({type:H.ResetStream})}return}t({type:H.ResetStream}),t({type:H.SetStreaming,isStreaming:!0}),s.current=``,u.current=!1;let k=new AbortController;d.current=k;try{let i=await P(C,n,a,m,k.signal,g,_);if(!i){p.current(a);return}f.current=x(i,n=>{if(n.type===`error`){let e=n.content||`Unknown error occurred`;v.current=e,r(e);return}if(n.type!==`message`){if(n.type===`toolcall_delta`){if(n.partial?.content?.[0]?.id&&n.delta){let e=n.partial.content[0].id,r=n.partial.content[0].name;t({type:H.UpdateToolCallProgress,toolCallId:e,progress:{toolCallId:e,toolName:r,delta:n.delta,partial:n.partial}})}return}if(n.model&&t({type:H.SetStreamModel,model:n.model}),n.type===`thinking`||n.isThinking){let r=n.content??``;qe(r,e.selectedThreadId),c.current+=r;let i=V(l.current,`thinking`,r);l.current=i,t({type:H.AppendStreamChunk,chunkType:`thinking`,content:r,segments:i})}else if(n.type===`result`)u.current=!0,s.current=n.content??``,l.current=U(l.current,n.content??``),t({type:H.SetStreamContent,content:n.content??``});else{if(u.current)return;s.current+=n.content??``;let e=V(l.current,`content`,n.content??``);l.current=e,t({type:H.AppendStreamChunk,chunkType:`content`,content:n.content??``,segments:e})}}},()=>{p.current(a)},e=>{if(e.includes(`AbortError`)||e.includes(`canceled`)||e.includes(`BodyStreamBuffer was aborted`)){p.current(a);return}v.current=e,r(e)},e=>{if(e.role===`assistant`){let n=e.content??``,r=typeof n==`string`?n:JSON.stringify(n);if(e.isThinking??!1){c.current+=r;let e=V(l.current,`thinking`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`thinking`,content:r,segments:e});return}let i=!1;if(typeof n==`object`&&Array.isArray(n)&&n.length>0)i=!0;else if(typeof r==`string`&&r.trim().startsWith(`[`))try{let e=JSON.parse(r);i=Array.isArray(e)&&e.length>0}catch{}if(i)u.current=!0,s.current=r,l.current=U(l.current,r),t({type:H.SetStreamContent,content:r});else{s.current+=r;let e=V(l.current,`content`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`content`,content:r,segments:e})}}else if(e.role===`tool`){let n=e.content??``,r=typeof n==`string`?n:JSON.stringify(n);if(r){s.current+=r;let e=V(l.current,`content`,r);l.current=e,t({type:H.AppendStreamChunk,chunkType:`content`,content:r,segments:e})}}})}catch(e){if(e instanceof Error&&e.name===`AbortError`||e instanceof Error&&e.message.includes(`BodyStreamBuffer was aborted`))return;if(e instanceof re){t({type:H.ResetStream}),o(!0);return}r(e instanceof Error?e.message:`Failed to send message. Please ensure the CLI server is running on localhost:641`),v.current=e instanceof Error?e.message:`Failed to send message. Please ensure the CLI server is running on localhost:641`,t({type:H.ResetStream})}},[C,E,t]);(0,X.useEffect)(()=>{let n=e.pendingChatMessage;if(!n||k||n.threadId!==C)return;let r=setTimeout(()=>{t({type:H.ClearPendingChatMessage}),I(n.message,n.model,[],n.provider)},100);return()=>clearTimeout(r)},[e.pendingChatMessage,k,C,t,I]);let L=(0,X.useMemo)(()=>C?O.filter(e=>e.threadId===C):[],[C,O]),R=(0,X.useRef)(!1);return(0,X.useEffect)(()=>{if(k||!C||L.length===0||R.current)return;let[e]=L;R.current=!0,t({type:H.RemoveQueuedChatMessage,queuedMessageId:e.id});let n=setTimeout(()=>{I(e.message,e.model,e.attachments,e.provider,e.planMode),R.current=!1},0);return()=>{clearTimeout(n),R.current=!1}},[t,I,k,L,C]),{error:n,setError:r,handleSend:I,handleStop:N,isStreaming:k,selectedThreadId:C,queuedMessagesForThread:L,handleRemoveQueuedMessage:(0,X.useCallback)(e=>{let n=L.find(t=>t.id===e);t({type:H.RemoveQueuedChatMessage,queuedMessageId:e}),!(!n||k||D.length>0||!C)&&I(n.message,n.model,n.attachments,n.provider,n.planMode)},[t,I,k,D.length,L,C]),showEmptyBalanceDialog:a,setShowEmptyBalanceDialog:o}}function Ye(e){let t=(0,Y.c)(10),{open:n,onClose:r}=e,i=B(),a;t[0]===r?a=t[1]:(a=e=>{e||r()},t[0]=r,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Z.jsxs)(ce,{children:[(0,Z.jsx)(J,{children:`Balance empty`}),(0,Z.jsx)(q,{children:`You have no prompts remaining. Purchase additional prompts to continue.`})]}),t[2]=o):o=t[2];let s;t[3]!==i||t[4]!==r?(s=(0,Z.jsxs)(oe,{children:[o,(0,Z.jsx)(se,{children:(0,Z.jsx)(d,{onClick:()=>{r(),i(`/settings/account`)},children:`Go to Account`})})]}),t[3]=i,t[4]=r,t[5]=s):s=t[5];let c;return t[6]!==n||t[7]!==a||t[8]!==s?(c=(0,Z.jsx)(le,{open:n,onOpenChange:a,children:s}),t[6]=n,t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function Xe(){let e=(0,Y.c)(20),{state:t}=ie(),{isCreatingProject:n}=t,{handleSend:r,handleStop:i,isStreaming:a,selectedThreadId:o,queuedMessagesForThread:s,handleRemoveQueuedMessage:c,showEmptyBalanceDialog:l,setShowEmptyBalanceDialog:u}=Je(),d=t.pendingChatMessage?.threadId===o,f=a||d,p;e[0]===u?p=e[1]:(p=()=>u(!1),e[0]=u,e[1]=p);let m;e[2]!==l||e[3]!==p?(m=(0,Z.jsx)(Ye,{open:l,onClose:p}),e[2]=l,e[3]=p,e[4]=m):m=e[4];let h=!o&&!n,g;e[5]!==f||e[6]!==c||e[7]!==r||e[8]!==i||e[9]!==s||e[10]!==h?(g=(0,Z.jsx)(Ue,{onSend:r,onStop:i,isStreaming:f,disabled:h,initialValue:``,queuedMessages:s,onRemoveQueuedMessage:c,isOverlay:!1}),e[5]=f,e[6]=c,e[7]=r,e[8]=i,e[9]=s,e[10]=h,e[11]=g):g=e[11];let _=o??void 0,v;e[12]===_?v=e[13]:(v=(0,Z.jsx)(Ke,{threadId:_}),e[12]=_,e[13]=v);let y;e[14]!==g||e[15]!==v?(y=(0,Z.jsxs)(`div`,{className:`relative mx-auto min-w-[400px] w-[90vw] max-w-3xl`,children:[g,v]}),e[14]=g,e[15]=v,e[16]=y):y=e[16];let b;return e[17]!==m||e[18]!==y?(b=(0,Z.jsxs)(Z.Fragment,{children:[m,y]}),e[17]=m,e[18]=y,e[19]=b):b=e[19],b}export{de as a,me as i,_e as n,pe as r,Xe as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$i as t,Cr as n,Gi as r,Wn as i,Xi as a,la as o,sa as s}from"./dialogs-config-DmDjliuA.js";import{a as c,d as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,s as _,t as v,u as y}from"./react-vendor-CaS5zjF7.js";var b=s(),x=e(o(),1),S=n(),C=y,w=u,T=x.forwardRef((e,t)=>{let n=(0,b.c)(14),r,o,s,c;n[0]===e?(r=n[1],o=n[2],s=n[3],c=n[4]):({className:o,inset:s,children:r,...c}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s,n[4]=c);let l=s&&`pl-8`,u;n[5]!==o||n[6]!==l?(u=i(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,l,o),n[5]=o,n[6]=l,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,S.jsx)(a,{className:`ml-auto h-4 w-4`}),n[8]=d):d=n[8];let f;return n[9]!==r||n[10]!==c||n[11]!==t||n[12]!==u?(f=(0,S.jsxs)(p,{ref:t,className:u,...c,children:[r,d]}),n[9]=r,n[10]=c,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});T.displayName=p.displayName;var E=x.forwardRef((e,t)=>{let n=(0,b.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,S.jsx)(g,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});E.displayName=g.displayName;var D=x.forwardRef((e,t)=>{let n=(0,b.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,S.jsx)(_,{children:(0,S.jsx)(m,{ref:t,className:o,...a})}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});D.displayName=m.displayName;var O=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:r,inset:a,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s=a&&`pl-8`,c;n[4]!==r||n[5]!==s?(c=i(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,s,r),n[4]=r,n[5]=s,n[6]=c):c=n[6];let l;return n[7]!==o||n[8]!==t||n[9]!==c?(l=(0,S.jsx)(d,{ref:t,className:c,...o}),n[7]=o,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});O.displayName=d.displayName;var k=x.forwardRef((e,n)=>{let r=(0,b.c)(14),a,o,s,l;r[0]===e?(a=r[1],o=r[2],s=r[3],l=r[4]):({className:s,children:o,checked:a,...l}=e,r[0]=e,r[1]=a,r[2]=o,r[3]=s,r[4]=l);let u;r[5]===s?u=r[6]:(u=i(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,s),r[5]=s,r[6]=u);let d;r[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,S.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,S.jsx)(c,{children:(0,S.jsx)(t,{className:`h-4 w-4`})})}),r[7]=d):d=r[7];let f;return r[8]!==a||r[9]!==o||r[10]!==l||r[11]!==n||r[12]!==u?(f=(0,S.jsxs)(v,{ref:n,className:u,checked:a,...l,children:[d,o]}),r[8]=a,r[9]=o,r[10]=l,r[11]=n,r[12]=u,r[13]=f):f=r[13],f});k.displayName=v.displayName;var A=x.forwardRef((e,t)=>{let n=(0,b.c)(12),a,o,s;n[0]===e?(a=n[1],o=n[2],s=n[3]):({className:o,children:a,...s}=e,n[0]=e,n[1]=a,n[2]=o,n[3]=s);let l;n[4]===o?l=n[5]:(l=i(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,o),n[4]=o,n[5]=l);let u;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,S.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,S.jsx)(c,{children:(0,S.jsx)(r,{className:`h-2 w-2 fill-current`})})}),n[6]=u):u=n[6];let d;return n[7]!==a||n[8]!==s||n[9]!==t||n[10]!==l?(d=(0,S.jsxs)(f,{ref:t,className:l,...s,children:[u,a]}),n[7]=a,n[8]=s,n[9]=t,n[10]=l,n[11]=d):d=n[11],d});A.displayName=f.displayName;var j=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:r,inset:a,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s=a&&`pl-8`,c;n[4]!==r||n[5]!==s?(c=i(`px-2 py-1.5 text-sm font-semibold text-foreground`,s,r),n[4]=r,n[5]=s,n[6]=c):c=n[6];let l;return n[7]!==o||n[8]!==t||n[9]!==c?(l=(0,S.jsx)(h,{ref:t,className:c,...o}),n[7]=o,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});j.displayName=h.displayName;var M=x.forwardRef((e,t)=>{let n=(0,b.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`-mx-1 my-1 h-px bg-border`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,S.jsx)(l,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});M.displayName=l.displayName;var N=e=>{let t=(0,b.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 a;t[3]===n?a=t[4]:(a=i(`ml-auto text-xs tracking-widest text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,S.jsx)(`span`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};N.displayName=`ContextMenuShortcut`;export{w as a,M as i,D as n,O as r,C as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./history-view-BOjZoBCb.js";export{e as ConversationHistoryView,e as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Cr as t,Oi as n,Qi as r,Xi as i,hi as a,ji as o,ki as s,la as c,sa as l}from"./dialogs-config-DmDjliuA.js";import{t as u}from"./use-toast-C9B1H3P9.js";import{t as d}from"./standard-list-item-CpBjveM0.js";import{a as f,c as p,i as m,n as h,r as g,t as _}from"./alert-dialog-Bk7neo_n.js";import{n as v}from"./tab-context-Bmd79Rk0.js";import{a as y,i as ee,n as b,r as x,t as S}from"./context-menu-DHHElhQ1.js";import{n as C,o as w,r as T,s as E,t as D}from"./api-DL5XaoTS.js";var O=l(),k=e(c(),1),A=t();function te(e){let t=(0,O.c)(17),{defaultValue:n,onCommit:r,onCancel:i,level:a,basePadding:o,icon:s}=e,c=(0,k.useRef)(null),l,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{c.current?.focus(),c.current?.select()},u=[],t[0]=l,t[1]=u):(l=t[0],u=t[1]),(0,k.useEffect)(l,u);let f;t[2]!==i||t[3]!==r?(f=function(e){if(e.key===`Enter`){let e=c.current?.value.trim()??``;e?r(e):i()}else e.key===`Escape`&&i()},t[2]=i,t[3]=r,t[4]=f):f=t[4];let p=f,m;t[5]!==i||t[6]!==r?(m=function(){let e=c.current?.value.trim()??``;e?r(e):i()},t[5]=i,t[6]=r,t[7]=m):m=t[7];let h=m,g;t[8]!==n||t[9]!==h||t[10]!==p?(g=(0,A.jsx)(`input`,{ref:c,defaultValue:n,onKeyDown:p,onBlur:h,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`,onClick:j}),t[8]=n,t[9]=h,t[10]=p,t[11]=g):g=t[11];let _;return t[12]!==o||t[13]!==s||t[14]!==a||t[15]!==g?(_=(0,A.jsxs)(d,{level:a,basePadding:o,children:[s,g]}),t[12]=o,t[13]=s,t[14]=a,t[15]=g,t[16]=_):_=t[16],_}function j(e){return e.stopPropagation()}function ne(e){let t=(0,O.c)(101),{node:c,level:l,selectedPath:u,expandedPaths:f,loadedDirs:p,loadingPaths:m,renamingPath:h,newItemIn:g,onToggleFolder:_,onSelectFile:v,onStartRename:C,onCommitRename:w,onCancelRename:T,onDelete:E,onNewFile:D,onNewFolder:k,onCommitNewItem:j,onCancelNewItem:P}=e,F;t[0]!==f||t[1]!==c.path?(F=f.has(c.path),t[0]=f,t[1]=c.path,t[2]=F):F=t[2];let I=F,L;t[3]!==m||t[4]!==c.path?(L=m.has(c.path),t[3]=m,t[4]=c.path,t[5]=L):L=t[5];let R=L,z,B;if(t[6]!==f||t[7]!==I||t[8]!==R||t[9]!==l||t[10]!==p||t[11]!==m||t[12]!==g||t[13]!==c||t[14]!==P||t[15]!==T||t[16]!==j||t[17]!==w||t[18]!==E||t[19]!==D||t[20]!==k||t[21]!==v||t[22]!==C||t[23]!==_||t[24]!==h||t[25]!==u){B=Symbol.for(`react.early_return_sentinel`);bb0:{let e=p.get(c.path)??[];z=h===c.path;let O=g?.dirPath===c.path&&I;if(c.type===`folder`){let M=c.ignored?`opacity-50`:void 0,F;t[28]!==c||t[29]!==_?(F=e=>{e.stopPropagation(),_(c)},t[28]=c,t[29]=_,t[30]=F):F=t[30];let L;t[31]!==I||t[32]!==R?(L=(0,A.jsx)(`span`,{className:`text-muted-foreground w-3 flex-shrink-0`,children:R?(0,A.jsx)(a,{className:`h-3 w-3 animate-spin`}):I?(0,A.jsx)(r,{className:`h-3 w-3`}):(0,A.jsx)(i,{className:`h-3 w-3`})}),t[31]=I,t[32]=R,t[33]=L):L=t[33];let V;t[34]!==I||t[35]!==z||t[36]!==c||t[37]!==T||t[38]!==w?(V=z?(0,A.jsxs)(A.Fragment,{children:[I?(0,A.jsx)(s,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(n,{className:`h-4 w-4 flex-shrink-0`}),(0,A.jsx)(`input`,{autoFocus:!0,defaultValue:c.name,onKeyDown:e=>{if(e.key===`Enter`){let t=e.target.value.trim();t?w(c,t):T()}else e.key===`Escape`&&T()},onBlur:e=>{let t=e.target.value.trim();t?w(c,t):T()},onClick:N,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`})]}):(0,A.jsxs)(A.Fragment,{children:[I?(0,A.jsx)(s,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(n,{className:`h-4 w-4 flex-shrink-0`}),(0,A.jsx)(`span`,{className:`flex-1 truncate`,children:c.name})]}),t[34]=I,t[35]=z,t[36]=c,t[37]=T,t[38]=w,t[39]=V):V=t[39];let H;t[40]!==l||t[41]!==M||t[42]!==F||t[43]!==L||t[44]!==V?(H=(0,A.jsxs)(d,{level:l,basePadding:10,className:M,onClick:F,children:[L,V]}),t[40]=l,t[41]=M,t[42]=F,t[43]=L,t[44]=V,t[45]=H):H=t[45];let U=I&&(0,A.jsx)(`div`,{children:R&&!p.has(c.path)?(0,A.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded mx-4 my-1`}):(0,A.jsxs)(A.Fragment,{children:[O&&(0,A.jsx)(te,{defaultValue:``,level:l+1,basePadding:g.type===`folder`?10:22,icon:g.type===`folder`?(0,A.jsx)(n,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(o,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:j,onCancel:P}),e.map(e=>(0,A.jsx)(ne,{node:e,level:l+1,selectedPath:u,expandedPaths:f,loadedDirs:p,loadingPaths:m,renamingPath:h,newItemIn:g,onToggleFolder:_,onSelectFile:v,onStartRename:C,onCommitRename:w,onCancelRename:T,onDelete:E,onNewFile:D,onNewFolder:k,onCommitNewItem:j,onCancelNewItem:P},e.path))]})}),W;t[46]!==H||t[47]!==U?(W=(0,A.jsxs)(`div`,{children:[H,U]}),t[46]=H,t[47]=U,t[48]=W):W=t[48];let G=W,K;t[49]===G?K=t[50]:(K=(0,A.jsx)(y,{asChild:!0,children:G}),t[49]=G,t[50]=K);let q;t[51]!==c.path||t[52]!==D?(q=(0,A.jsx)(x,{onSelect:()=>D(c.path),children:`New File...`}),t[51]=c.path,t[52]=D,t[53]=q):q=t[53];let J;t[54]!==c.path||t[55]!==k?(J=(0,A.jsx)(x,{onSelect:()=>k(c.path),children:`New Folder...`}),t[54]=c.path,t[55]=k,t[56]=J):J=t[56];let Y;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,A.jsx)(ee,{}),t[57]=Y):Y=t[57];let X;t[58]!==c||t[59]!==C?(X=(0,A.jsx)(x,{onSelect:()=>C(c),children:`Rename...`}),t[58]=c,t[59]=C,t[60]=X):X=t[60];let Z;t[61]!==c||t[62]!==E?(Z=(0,A.jsx)(x,{onSelect:()=>E(c),className:`text-destructive focus:text-destructive`,children:`Delete`}),t[61]=c,t[62]=E,t[63]=Z):Z=t[63];let Q;t[64]!==q||t[65]!==J||t[66]!==X||t[67]!==Z?(Q=(0,A.jsxs)(b,{children:[q,J,Y,X,Z]}),t[64]=q,t[65]=J,t[66]=X,t[67]=Z,t[68]=Q):Q=t[68];let $;t[69]!==K||t[70]!==Q?($=(0,A.jsxs)(S,{children:[K,Q]}),t[69]=K,t[70]=Q,t[71]=$):$=t[71],B=$;break bb0}}t[6]=f,t[7]=I,t[8]=R,t[9]=l,t[10]=p,t[11]=m,t[12]=g,t[13]=c,t[14]=P,t[15]=T,t[16]=j,t[17]=w,t[18]=E,t[19]=D,t[20]=k,t[21]=v,t[22]=C,t[23]=_,t[24]=h,t[25]=u,t[26]=z,t[27]=B}else z=t[26],B=t[27];if(B!==Symbol.for(`react.early_return_sentinel`))return B;let V=u===c.path,H=c.ignored?`opacity-50`:void 0,U;t[72]!==c||t[73]!==v?(U=()=>v(c),t[72]=c,t[73]=v,t[74]=U):U=t[74];let W;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,A.jsx)(o,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),t[75]=W):W=t[75];let G;t[76]!==z||t[77]!==c||t[78]!==T||t[79]!==w?(G=z?(0,A.jsx)(`input`,{autoFocus:!0,defaultValue:c.name,onKeyDown:e=>{if(e.key===`Enter`){let t=e.target.value.trim();t?w(c,t):T()}else e.key===`Escape`&&T()},onBlur:e=>{let t=e.target.value.trim();t?w(c,t):T()},onClick:M,className:`flex-1 min-w-0 bg-transparent outline-none border border-border rounded px-1 text-sm`}):(0,A.jsx)(`span`,{className:`flex-1 truncate`,children:c.name}),t[76]=z,t[77]=c,t[78]=T,t[79]=w,t[80]=G):G=t[80];let K;t[81]!==l||t[82]!==V||t[83]!==H||t[84]!==U||t[85]!==G?(K=(0,A.jsxs)(d,{level:l,basePadding:22,selected:V,className:H,onClick:U,children:[W,G]}),t[81]=l,t[82]=V,t[83]=H,t[84]=U,t[85]=G,t[86]=K):K=t[86];let q=K,J;t[87]===q?J=t[88]:(J=(0,A.jsx)(y,{asChild:!0,children:q}),t[87]=q,t[88]=J);let Y;t[89]!==c||t[90]!==C?(Y=(0,A.jsx)(x,{onSelect:()=>C(c),children:`Rename...`}),t[89]=c,t[90]=C,t[91]=Y):Y=t[91];let X;t[92]!==c||t[93]!==E?(X=(0,A.jsx)(x,{onSelect:()=>E(c),className:`text-destructive focus:text-destructive`,children:`Delete`}),t[92]=c,t[93]=E,t[94]=X):X=t[94];let Z;t[95]!==Y||t[96]!==X?(Z=(0,A.jsxs)(b,{children:[Y,X]}),t[95]=Y,t[96]=X,t[97]=Z):Z=t[97];let Q;return t[98]!==J||t[99]!==Z?(Q=(0,A.jsxs)(S,{children:[J,Z]}),t[98]=J,t[99]=Z,t[100]=Q):Q=t[100],Q}function M(e){return e.stopPropagation()}function N(e){return e.stopPropagation()}function P({threadId:e,selectedPath:t,onFileSelect:r}){let[i,a]=(0,k.useState)(new Map),[s,c]=(0,k.useState)(new Set),[l,d]=(0,k.useState)(new Set),[ee,O]=(0,k.useState)(null),[j,M]=(0,k.useState)(null),[N,P]=(0,k.useState)(null),{explorerRefreshTick:F,pendingExplorerPath:I}=v();async function L(t){if(!(!e||i.has(t))){d(e=>new Set(e).add(t));try{let n=await w(e,t);a(e=>new Map(e).set(t,n.entries))}catch{u({title:`Error`,description:`Failed to load directory`,variant:`destructive`})}finally{d(e=>{let n=new Set(e);return n.delete(t),n})}}}let R=(0,k.useCallback)(async t=>{if(e){d(e=>new Set(e).add(t));try{let n=await w(e,t);a(e=>new Map(e).set(t,n.entries))}catch{u({title:`Error`,description:`Failed to reload directory`,variant:`destructive`})}finally{d(e=>{let n=new Set(e);return n.delete(t),n})}}},[e]);(0,k.useEffect)(()=>{e&&(a(new Map),c(new Set),d(new Set),O(null),M(null),L(``))},[e]),(0,k.useEffect)(()=>{if(F>0&&e){R(``);for(let e of s)R(e)}},[F]),(0,k.useEffect)(()=>{if(!I||!e)return;let t=I.split(`/`);t.pop();let n=[],r=``;for(let e of t)r=r?`${r}/${e}`:e,n.push(r);if(n.length!==0){c(e=>{let t=new Set(e);for(let e of n)t.add(e);return t});for(let e of n)L(e)}},[I,e]);function z(e){s.has(e.path)?c(t=>{let n=new Set(t);return n.delete(e.path),n}):(c(t=>new Set(t).add(e.path)),L(e.path))}function B(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(0,t):``}function V(e){P(e)}async function H(){if(!N)return;let t=N;P(null);try{await T(e,t.path),await R(B(t.path)),c(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),a(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n})}catch{u({title:`Error`,description:`Failed to move "${t.name}" to trash`,variant:`destructive`})}}function U(e){M(null),O(e.path)}async function W(t,n){if(n===t.name){O(null);return}O(null);try{await E(e,t.path,n),await R(B(t.path)),t.type===`folder`&&(c(e=>{let n=new Set(e);for(let e of n)(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}),a(e=>{let n=new Map(e);for(let e of n.keys())(e===t.path||e.startsWith(t.path+`/`))&&n.delete(e);return n}))}catch{u({title:`Error`,description:`Failed to rename "${t.name}"`,variant:`destructive`})}}function G(e){O(null),s.has(e)||(c(t=>new Set(t).add(e)),L(e)),M({dirPath:e,type:`file`})}function K(e){O(null),s.has(e)||(c(t=>new Set(t).add(e)),L(e)),M({dirPath:e,type:`folder`})}async function q(t){if(!j)return;let{dirPath:n,type:r}=j;M(null);try{r===`file`?await D(e,n,t):await C(e,n,t),await R(n)}catch{u({title:`Error`,description:`Failed to create ${r} "${t}"`,variant:`destructive`})}}function J(){M(null)}let Y=i.get(``)??[],X=l.has(``),Z=j?.dirPath===``?(0,A.jsx)(te,{defaultValue:``,level:0,basePadding:j.type===`folder`?10:22,icon:j.type===`folder`?(0,A.jsx)(n,{className:`h-4 w-4 flex-shrink-0`}):(0,A.jsx)(o,{className:`h-4 w-4 flex-shrink-0 text-muted-foreground`}),onCommit:q,onCancel:J}):null;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(_,{open:N!==null,onOpenChange:e=>!e&&P(null),children:(0,A.jsxs)(m,{children:[(0,A.jsx)(p,{children:`Move to Trash`}),(0,A.jsxs)(f,{children:[`Move “`,N?.name,`” to trash?`]}),(0,A.jsxs)(`div`,{className:`flex gap-3 justify-end`,children:[(0,A.jsx)(g,{children:`Cancel`}),(0,A.jsx)(h,{onClick:()=>void H(),children:`Move to Trash`})]})]})}),(0,A.jsxs)(S,{children:[(0,A.jsx)(y,{asChild:!0,children:(0,A.jsx)(`div`,{className:`py-2 min-h-full`,children:X?(0,A.jsx)(`div`,{className:`space-y-1 px-2`,children:[1,2,3].map(e=>(0,A.jsx)(`div`,{className:`animate-pulse h-7 bg-muted rounded-full`},e))}):(0,A.jsxs)(A.Fragment,{children:[Z,Y.map(e=>(0,A.jsx)(ne,{node:e,level:0,selectedPath:t,expandedPaths:s,loadedDirs:i,loadingPaths:l,renamingPath:ee,newItemIn:j,onToggleFolder:z,onSelectFile:r,onStartRename:U,onCommitRename:W,onCancelRename:()=>O(null),onDelete:V,onNewFile:G,onNewFolder:K,onCommitNewItem:q,onCancelNewItem:J},e.path))]})})}),(0,A.jsxs)(b,{children:[(0,A.jsx)(x,{onSelect:()=>G(``),children:`New File...`}),(0,A.jsx)(x,{onSelect:()=>K(``),children:`New Folder...`})]})]})]})}export{P as default};