tarsk 0.5.52 → 0.5.53

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 (78) hide show
  1. package/dist/index.js +1550 -1796
  2. package/dist/public/assets/{account-view-C5bYplbC.js → account-view-5qdPli2O.js} +1 -1
  3. package/dist/public/assets/{api-DDjBQKVp.js → api-DM6LtnPA.js} +1 -1
  4. package/dist/public/assets/browser-tab-B9KCHZ2L.js +8 -0
  5. package/dist/public/assets/commit-dialog-DeVXqj1Z.js +1 -0
  6. package/dist/public/assets/{context-menu-CyWNCdS8.js → context-menu-CHJI6MbC.js} +1 -1
  7. package/dist/public/assets/create-repo-dialog-ByIjJnh7.js +1 -0
  8. package/dist/public/assets/dialogs-config-DAMqiy-4.js +51 -0
  9. package/dist/public/assets/{diff-view-CUydKAcj.js → diff-view-DxSswxah.js} +2 -2
  10. package/dist/public/assets/{explorer-tab-view-DImsoaa7.js → explorer-tab-view-DMt-0Zcl.js} +2 -2
  11. package/dist/public/assets/{explorer-tree-C3N9yUX2.js → explorer-tree-D3nyQX1f.js} +1 -1
  12. package/dist/public/assets/explorer-view-BRBtKxsw.js +75 -0
  13. package/dist/public/assets/git-history-dialog-DJfkffd6.js +1 -0
  14. package/dist/public/assets/git-ops-button-0DrfLBkC.js +2 -0
  15. package/dist/public/assets/history-view-lvvTzW7O.js +9 -0
  16. package/dist/public/assets/index-C_iiobDl.js +81 -0
  17. package/dist/public/assets/index-DhnUeGIU.css +1 -0
  18. package/dist/public/assets/{mcp-server-card-euln08CV.js → mcp-server-card-DPMxJJU6.js} +1 -1
  19. package/dist/public/assets/merged-pr-dialog-BC9NMIet.js +1 -0
  20. package/dist/public/assets/model-star-rating-C4Ugsik_.js +1 -0
  21. package/dist/public/assets/onboarding-dys9Rwb5.js +1 -0
  22. package/dist/public/assets/project-settings-view-XGHhtLr_.js +1 -0
  23. package/dist/public/assets/providers-list-view-Cbndeobz.js +1 -0
  24. package/dist/public/assets/pull-request-dialog-kuaKjUle.js +1 -0
  25. package/dist/public/assets/pull-with-changes-dialog-CoxkFsGu.js +1 -0
  26. package/dist/public/assets/push-before-pr-dialog-C4cbgPuA.js +1 -0
  27. package/dist/public/assets/{radio-group-DZUWbeu6.js → radio-group-C6EDTFov.js} +1 -1
  28. package/dist/public/assets/{react-vendor-G5EdW8A3.js → react-vendor-U9lUQswz.js} +5 -5
  29. package/dist/public/assets/settings-general-view-BHj9qn0K.js +1 -0
  30. package/dist/public/assets/{settings-instructions-view-DdZptx3T.js → settings-instructions-view-CRUCeWUk.js} +1 -1
  31. package/dist/public/assets/{settings-list-CKN-l-Ee.js → settings-list-BapKAJV3.js} +1 -1
  32. package/dist/public/assets/settings-mcp-servers-view-M2DQPcpo.js +5 -0
  33. package/dist/public/assets/{settings-models-skeleton-bDHbKptW.js → settings-models-skeleton-B7TMwjxe.js} +1 -1
  34. package/dist/public/assets/{settings-models-view-Dm63snYH.js → settings-models-view-ObE_ktqH.js} +1 -1
  35. package/dist/public/assets/settings-rules-view-BhRBowk9.js +8 -0
  36. package/dist/public/assets/{settings-skills-view-DUq0nOrv.js → settings-skills-view-MZQjnD_g.js} +3 -3
  37. package/dist/public/assets/{settings-slash-commands-view-3UGw-rg7.js → settings-slash-commands-view-BYHthCEM.js} +1 -1
  38. package/dist/public/assets/settings-subagents-view-CmrFQcUF.js +2 -0
  39. package/dist/public/assets/{settings-system-prompt-view-C5zpTiRs.js → settings-system-prompt-view-CZe9uYNN.js} +1 -1
  40. package/dist/public/assets/{settings-view-BqDpwOQy.js → settings-view-BQL9vEvw.js} +2 -2
  41. package/dist/public/assets/{skeleton-jLDiBDMB.js → skeleton-rEPpLCqo.js} +1 -1
  42. package/dist/public/assets/{slug-utils-CKHx-ORv.js → slug-utils-DZ59sTAJ.js} +1 -1
  43. package/dist/public/assets/{tabs-BDis0z_E.js → tabs-D57g7ER1.js} +1 -1
  44. package/dist/public/assets/tasks-view-Bn9GiPNp.js +3 -0
  45. package/dist/public/assets/{terminal-panel-qSiost2C.js → terminal-panel-CrBP1KEj.js} +2 -2
  46. package/dist/public/assets/{ui-components-CxpS-7ye.js → ui-components-BPFbmhJA.js} +1 -1
  47. package/dist/public/assets/{use-deferred-search-BqzgL9XK.js → use-deferred-search-Bi99md6l.js} +1 -1
  48. package/dist/public/assets/{utils-DKzTCvnZ.js → utils-C-7eVelM.js} +1 -1
  49. package/dist/public/assets/{vosk-speech-Im3i-XDL.js → vosk-speech-DC3I453R.js} +1 -1
  50. package/dist/public/assets/{web-DE8zJOsF.js → web-CHeXRjkl.js} +1 -1
  51. package/dist/public/assets/{web-CY9AvMQI.js → web-DbVs7vzI.js} +1 -1
  52. package/dist/public/assets/{web-CtID-CpM.js → web-GowI_ZaX.js} +1 -1
  53. package/dist/public/assets/{web-D7a-Gt-K.js → web-t7m2rd8w.js} +1 -1
  54. package/dist/public/index.html +8 -8
  55. package/package.json +3 -3
  56. package/dist/public/assets/browser-tab-BLzy-OnY.js +0 -8
  57. package/dist/public/assets/commit-dialog-VaKgg0v7.js +0 -1
  58. package/dist/public/assets/create-repo-dialog-CxeBrzuI.js +0 -1
  59. package/dist/public/assets/dialogs-config-sFb6rmoV.js +0 -51
  60. package/dist/public/assets/explorer-view-t0Ubx-_E.js +0 -75
  61. package/dist/public/assets/git-history-dialog-BdFqU3-t.js +0 -1
  62. package/dist/public/assets/git-ops-button-DREYFquW.js +0 -2
  63. package/dist/public/assets/history-view-BaNsCvOG.js +0 -9
  64. package/dist/public/assets/index-BabXMhGR.js +0 -81
  65. package/dist/public/assets/index-CouJM3yT.css +0 -1
  66. package/dist/public/assets/merged-pr-dialog-CU3eepWu.js +0 -1
  67. package/dist/public/assets/model-star-rating-BeaqZyyn.js +0 -1
  68. package/dist/public/assets/onboarding-BtDZI4KL.js +0 -1
  69. package/dist/public/assets/project-settings-view-nULqYl1Q.js +0 -1
  70. package/dist/public/assets/providers-list-view-C_I7apJ0.js +0 -1
  71. package/dist/public/assets/pull-request-dialog-DPoyoAzR.js +0 -1
  72. package/dist/public/assets/pull-with-changes-dialog-BWeBUSvR.js +0 -1
  73. package/dist/public/assets/push-before-pr-dialog-CelqoZ3J.js +0 -1
  74. package/dist/public/assets/settings-general-view-BIpRxHjN.js +0 -1
  75. package/dist/public/assets/settings-mcp-servers-view-DThIXFIU.js +0 -5
  76. package/dist/public/assets/settings-rules-view-C8EhiuF6.js +0 -8
  77. package/dist/public/assets/settings-subagents-view-DjY_-Vkl.js +0 -2
  78. package/dist/public/assets/tasks-view-Chkg_CWm.js +0 -3
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-config-sFb6rmoV.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ba as t,Br as n,D as r,Dt as i,Fo as a,Ii as o,Kn as s,Ko as c,Lr as l,Lt as u,Ms as d,Pi as f,Ps as p,Qr as m,Rr as h,Sa as ee,Xn as g,Yn as te,Zn as _,bo as ne,c as re,ei as v,er as y,fs as b,ii as x,js as S,ni as ie,ri as C,rn as w,tr as T,xt as E}from"./dialogs-config-sFb6rmoV.js";import{r as D}from"./monaco-CZnIWXyV.js";import{a as O,l as k,n as A,o as j,s as M}from"./history-view-BaNsCvOG.js";import{A as N,D as P,E as F,F as I,H as L,K as R,T as z,U as ae,W as B}from"./index-BabXMhGR.js";var V=e(p(),1),H=d();async function U(e){return _(`api/projects/${g(e)}/tasks`)}async function oe(e,t,n){return T(`api/projects/${g(e)}/tasks`,{description:t,threadId:n?.threadId,provider:n?.provider,model:n?.model})}async function W(e,t,n){return y(`api/projects/${g(e)}/tasks/${g(t)}`,n)}async function se(e,t){await te(`api/projects/${g(e)}/tasks/${g(t)}`)}function G(e,t){return`project-tasks:${e}:${t}`}function K(e){return e.status===`Done`?`Done`:e.working?`Working`:`Ready`}function q(e){return e.status!==`Done`&&!e.working}function ce(e,t){if(t)return t;let n=e?.threads.map(e=>e.title)??[],r=/^thread-(\d+)$/i,i=0;for(let e of n){let t=e.match(r);t&&(i=Math.max(i,parseInt(t[1],10)))}return`thread-${i+1}`}async function le(e){w(),M(`projects:bootstrap:`);let t=await i();e({type:R.SetProjects,projects:t.projects}),e({type:R.SetProjectsLoading,projectsLoading:!1})}async function J(e){let t=await U(e),n=t.filter(e=>e.threadId&&e.status!==`Done`),r=[...t];return await Promise.all(n.map(async t=>{try{await u(t.threadId)}catch(n){if(n instanceof Error&&n.message.includes(`not found`)){let n=await W(e,t.id,{status:`Done`}),i=r.findIndex(e=>e.id===t.id);i!==-1&&(r[i]=n)}}})),r}async function ue(e,t){let n=e.getReader(),r=new TextDecoder,i=``,a=null;try{for(;;){let{done:e,value:o}=await n.read();if(e)break;i+=r.decode(o,{stream:!0});let s=i.split(`
3
- `);i=s.pop()??``;for(let e of s){let n=e.trim();if(n)try{let e=JSON.parse(n);e.type===`progress`&&typeof e.threadId==`string`&&!a&&(a=e.threadId,t(a))}catch{}}}}catch{}return a}function de(e){return[...e].sort((e,t)=>e.status===`Done`&&t.status!==`Done`?1:e.status!==`Done`&&t.status===`Done`||e.working&&!t.working?-1:!e.working&&t.working?1:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime())}var Y=c(`app.task-agent-run.ui`);async function fe(e,t){let n=await u(t),r=n.model,i=n.modelProvider;if(r&&i)return{model:r,provider:i};try{let t=(await _(`api/threads?projectId=${encodeURIComponent(e)}`)||[]).map(e=>{let t=e;return{model:t.model??void 0,modelProvider:t.modelProvider??void 0}}).find(e=>e.model&&e.modelProvider);if(t?.model&&t.modelProvider)return{model:t.model,provider:t.modelProvider}}catch(e){Y.error(`Failed to get project threads:`,e)}return null}function X(e,t,n,r){e({type:R.SetProjectModel,threadId:t,model:{id:n,provider:r,name:n,description:``}}),s(t,{model:n,modelProvider:r})}async function pe(e,t,n,r,i,a){i||a(await W(e,t.id,{status:n,working:!0,threadId:r}))}var Z=S();function me({task:e,disabled:n=!1,onImplementInNewThread:r,onImplementInThisThread:i,onMarkDone:s}){let[c,l]=(0,V.useState)(!1),u=K(e),d=q(e),p=e.status!==`Done`,m=n||c||!d&&!p;async function h(e){l(!0);try{await e()}finally{l(!1)}}return(0,Z.jsxs)(z,{children:[(0,Z.jsx)(N,{asChild:!0,children:(0,Z.jsxs)(f,{variant:`outline`,size:`sm`,className:o(`shrink-0 gap-1.5`,e.working&&`border-primary/50`),disabled:m,children:[(c||e.working)&&(0,Z.jsx)(t,{className:`h-3.5 w-3.5 animate-spin`}),(0,Z.jsx)(`span`,{children:u}),!m&&(0,Z.jsx)(a,{className:`h-3.5 w-3.5 opacity-60`})]})}),(0,Z.jsxs)(F,{align:`end`,children:[d&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(P,{onClick:()=>void h(()=>r(e)),children:`Implement in New Thread`}),(0,Z.jsx)(P,{onClick:()=>void h(()=>i(e)),children:`Implement in this thread`})]}),p&&(0,Z.jsx)(P,{onClick:()=>void h(()=>s(e)),children:`Mark done`})]})]})}var Q=c(`app.task-list.ui`);function he({projectId:e,onThreadSelect:i,initialTasks:a}){let s=ae(),c=B(e=>e.projects),u=B(e=>e.selectedThreadId),d=B(e=>e.processingThreadIds),p=B(e=>e.pendingChatMessage),g=B(e=>e.queuedChatMessages),te=B(e=>e.projectModelSelections),_=c.find(t=>t.projectId===e),y=_?.threads.find(e=>e.threadId===u),S=u?te[u]:void 0,[w,T]=(0,V.useState)(a),[E,D]=(0,V.useState)(!1),[O,k]=(0,V.useState)(null),[A,j]=(0,V.useState)(``),[M,N]=(0,V.useState)(!1);(0,V.useEffect)(()=>{if(!w.some(e=>e.working))return;let t=setInterval(async()=>{try{let n=await U(e);T(n),n.some(e=>e.working)||clearInterval(t)}catch(e){Q.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[w,e]),(0,V.useEffect)(()=>{T(a)},[a]),(0,V.useEffect)(()=>{E&&j(``)},[E]);function P(e){T(t=>t.map(t=>t.id===e.id?e:t))}function F(e){j(e.description),k({task:e})}function I(){k(null),j(``)}async function z(){if(A.trim()){N(!0);try{let t=await oe(e,A,{threadId:u??void 0,provider:S?.provider??y?.modelProvider,model:S?.id??y?.model});T(e=>[...e,t]),D(!1),j(``)}finally{N(!1)}}}async function H(){if(!(!A.trim()||!O)){N(!0);try{let t=await W(e,O.task.id,{description:A,threadId:u??void 0,provider:S?.provider??y?.modelProvider,model:S?.id??y?.model});T(e=>e.map(e=>e.id===t.id?t:e)),I()}finally{N(!1)}}}async function G(){if(O){N(!0);try{await se(e,O.task.id),T(e=>e.filter(e=>e.id!==O.task.id)),I()}finally{N(!1)}}}async function K(t){let n=await r(e);if(!n)return;let a=null,o=null,c=await ue(n,n=>{o||(o=n,s({type:R.AddCreatingThread,projectId:e,threadId:n,title:ce(_)}),s({type:R.AddProcessingThread,threadId:n})),W(e,t.id,{status:`Build`,working:!0,threadId:n}).then(e=>{a=e,P(e)})});if(!c){o&&(s({type:R.RemoveCreatingThread,projectId:e,threadId:o}),s({type:R.RemoveProcessingThread,threadId:o}));return}s({type:R.RemoveProcessingThread,threadId:c});try{await le(s)}catch(e){Q.error(`Failed to refresh projects after task thread creation:`,e)}await pe(e,t,`Build`,c,a,P);let l=await fe(e,c);if(!l){Q.error(`No model configuration found. Please configure a model and provider for this project first.`);return}X(s,c,l.model,l.provider),i?await i(c):s({type:R.SelectThread,threadId:c,projectId:e}),s({type:R.SetPendingChatMessage,message:{threadId:c,message:t.description,model:l.model,provider:l.provider}})}async function q(t){if(!u){Q.error(`No selected thread found for project task implementation.`);return}let n=await fe(e,u);if(!n){Q.error(`No model configuration found. Please configure a model and provider for this project first.`);return}if(X(s,u,n.model,n.provider),P(await W(e,t.id,{status:`Build`,working:!0,threadId:u})),i?await i(u):s({type:R.SelectThread,threadId:u,projectId:e}),d.includes(u)||p?.threadId===u||g.some(e=>e.threadId===u)){s({type:R.EnqueueChatMessage,message:{id:crypto.randomUUID(),threadId:u,paneId:`primary`,message:t.description,model:n.model,attachments:[],provider:n.provider}});return}s({type:R.SetPendingChatMessage,message:{threadId:u,message:t.description,model:n.model,provider:n.provider}})}async function J(t){P(await W(e,t.id,{status:`Done`,working:!1}))}let Y=de(w);return(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[(0,Z.jsx)(re,{className:`min-h-0 min-w-0 flex-1 overflow-hidden pb-24`,children:Y.length===0?(0,Z.jsx)(`p`,{className:o(b.bodyMuted,`px-4 py-8 text-center`),children:`No tasks yet. Add one to get started.`}):(0,Z.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:Y.map(e=>(0,Z.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(0,1fr)_auto] grid-rows-[auto_auto] gap-x-2 gap-y-1 px-4 py-3 hover:bg-accent/40 sm:flex sm:items-start sm:gap-4`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:()=>F(e),children:[(0,Z.jsx)(`p`,{className:o(b.label,`truncate`),children:e.title}),(0,Z.jsx)(`p`,{className:o(b.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),children:e.description})]}),(0,Z.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:()=>F(e),children:(0,Z.jsx)(`p`,{className:o(b.caption,`line-clamp-4 break-all text-muted-foreground`),children:e.description})}),(0,Z.jsxs)(`div`,{className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start`,children:[e.threadId&&i&&(0,Z.jsxs)(l,{children:[(0,Z.jsx)(n,{asChild:!0,children:(0,Z.jsxs)(f,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>i(e.threadId),children:[(0,Z.jsx)(ne,{className:`h-4 w-4`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Open thread`})]})}),(0,Z.jsx)(h,{children:`Open thread`})]}),(0,Z.jsx)(me,{task:e,onImplementInNewThread:K,onImplementInThisThread:q,onMarkDone:J})]})]},e.id))})}),(0,Z.jsxs)(l,{children:[(0,Z.jsx)(n,{asChild:!0,children:(0,Z.jsxs)(f,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-14 w-14 rounded-full shadow-lg`,onClick:()=>D(!0),children:[(0,Z.jsx)(ee,{className:`h-6 w-6`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Add task`})]})}),(0,Z.jsx)(h,{children:`Add task`})]}),(0,Z.jsx)(m,{open:E,onOpenChange:D,children:(0,Z.jsxs)(v,{className:`sm:max-w-2xl`,children:[(0,Z.jsx)(C,{children:(0,Z.jsx)(x,{children:`Add Task`})}),(0,Z.jsxs)(`div`,{className:`py-2`,children:[(0,Z.jsx)(L,{placeholder:`Describe what needs to be done...`,value:A,onChange:e=>j(e.target.value),rows:12,className:`resize-none text-base`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&z()}}),(0,Z.jsx)(`p`,{className:o(b.caption,`mt-1.5`),children:`A title will be generated automatically from your description.`})]}),(0,Z.jsx)(ie,{children:(0,Z.jsx)(f,{onClick:()=>void z(),disabled:M||!A.trim(),children:M?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(t,{className:`mr-1 h-3 w-3 animate-spin`}),`Generating title...`]}):`Add`})})]})}),(0,Z.jsx)(m,{open:O!==null,onOpenChange:e=>!e&&I(),children:(0,Z.jsxs)(v,{className:`max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:max-h-[calc(100svh-2rem)]`,children:[(0,Z.jsx)(C,{children:(0,Z.jsx)(x,{children:`Edit Task`})}),(0,Z.jsx)(`div`,{className:`py-2`,children:(0,Z.jsx)(L,{placeholder:`Describe what needs to be done...`,value:A,onChange:e=>j(e.target.value),rows:12,className:`max-h-[min(16rem,40svh)] resize-none text-base sm:max-h-none`,autoFocus:!0,onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&H()}})}),(0,Z.jsxs)(ie,{className:`flex-row justify-between gap-2 sm:gap-0`,children:[(0,Z.jsx)(f,{variant:`destructive`,onClick:()=>void G(),disabled:M,children:`Delete`}),(0,Z.jsx)(f,{onClick:()=>void H(),disabled:M||!A.trim(),className:`w-auto`,children:M?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(t,{className:`mr-1 h-3 w-3 animate-spin`}),`Saving...`]}):`Save`})]})]})})]})}function ge(e){let t=(0,H.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({projectId:r,loadVersion:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==r?(a=G(r,n),t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;t[7]===r?o=t[8]:(o=()=>J(r),t[7]=r,t[8]=o);let s=O(a,o),c;return t[9]!==s||t[10]!==r||t[11]!==i?(c=(0,Z.jsx)(he,{projectId:r,initialTasks:s,...i}),t[9]=s,t[10]=r,t[11]=i,t[12]=c):c=t[12],c}function _e(e){let t=(0,H.c)(18),n,r;t[0]===e?(n=t[1],r=t[2]):({refreshTrigger:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,[a,o]=(0,V.useState)(0),s,c;t[3]!==n.projectId||t[4]!==i?(s=()=>{i!==0&&o(e=>(j(G(n.projectId,e)),e+1))},c=[i,n.projectId],t[3]=n.projectId,t[4]=i,t[5]=s,t[6]=c):(s=t[5],c=t[6]),(0,V.useEffect)(s,c);let l;t[7]!==a||t[8]!==n.projectId?(l=function(){j(G(n.projectId,a)),o(ve)},t[7]=a,t[8]=n.projectId,t[9]=l):l=t[9];let u=l,d;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(k,{className:`h-64`}),t[10]=d):d=t[10];let f=`${n.projectId}:${a}`,p;t[11]!==a||t[12]!==n||t[13]!==f?(p=(0,Z.jsx)(V.Suspense,{fallback:d,children:(0,Z.jsx)(ge,{...n,loadVersion:a},f)}),t[11]=a,t[12]=n,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==u||t[16]!==p?(m=(0,Z.jsx)(A,{fallbackTitle:`Failed to load tasks`,onRetry:u,children:p}),t[15]=u,t[16]=p,t[17]=m):m=t[17],m}function ve(e){return e+1}var $=c(`app.tasks-view.ui`);function ye({projectId:e,refreshTrigger:t}){let n=ae(),r=B(e=>e.projects),i=B(e=>e.selectedThreadId),a=B(e=>e.selectedProjectId),{setActiveMainTab:o}=I();async function s(t){if(r.find(t=>t.projectId===e)){o(`chat`);try{let{getProjects:r,invalidateProjectsCache:o}=await D(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./dialogs-config-sFb6rmoV.js`).then(e=>e.f);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1]));o();let s=await r();n({type:R.SetProjects,projects:s.projects});let c=s.projects.find(t=>t.projectId===e);if(c&&c.threads.find(e=>e.threadId===t)){(i!==t||a!==e)&&n({type:R.SelectThread,threadId:t,projectId:e});try{let e=await E();n({type:R.SetProcessingThreads,threadIds:e})}catch(e){$.error(`Failed to fetch processing threads after thread selection:`,e)}}}catch(r){$.error(`Failed to refresh projects for thread selection:`,r),(i!==t||a!==e)&&n({type:R.SelectThread,threadId:t,projectId:e});try{let e=await E();n({type:R.SetProcessingThreads,threadIds:e})}catch(e){$.error(`Failed to fetch processing threads after fallback thread selection:`,e)}}}}return(0,Z.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,Z.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden pt-8`,children:(0,Z.jsx)(_e,{projectId:e,refreshTrigger:t,onThreadSelect:s})})})}export{ye as TasksView};