tarsk 0.5.67 → 0.5.69

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 (60) hide show
  1. package/dist/index.js +3 -2
  2. package/dist/public/assets/{account-view-BlK6g38q.js → account-view-Chzj6v7a.js} +1 -1
  3. package/dist/public/assets/{alert-dialog-B6An1LDY.js → alert-dialog-CLYxQdrK.js} +1 -1
  4. package/dist/public/assets/{async-error-boundary-Rf-s2_Ez.js → async-error-boundary-CM6LU7nT.js} +1 -1
  5. package/dist/public/assets/{browser-tab-BJxPUVJi.js → browser-tab--1iEoJGu.js} +1 -1
  6. package/dist/public/assets/{chat-dock-context-DyKjqpND.js → chat-dock-context-Gg1jpamu.js} +1 -1
  7. package/dist/public/assets/{commit-dialog-CYb1kJCq.js → commit-dialog-BfdxNX_T.js} +1 -1
  8. package/dist/public/assets/{commit-error-dialog-DvxaNRcH.js → commit-error-dialog-DrsDKL-B.js} +1 -1
  9. package/dist/public/assets/{commit-method-fields-Dijc502F.js → commit-method-fields-o-xw2faT.js} +1 -1
  10. package/dist/public/assets/{context-menu-C51M1WGZ.js → context-menu-BLvLpqq7.js} +1 -1
  11. package/dist/public/assets/{conversation-history-view-w_6Jd3d-.js → conversation-history-view-ukfe_7qw.js} +1 -1
  12. package/dist/public/assets/{create-project-dialog-CSVkngnF.js → create-project-dialog-DrXo61FQ.js} +1 -1
  13. package/dist/public/assets/{create-repo-dialog-CcFA8pXz.js → create-repo-dialog-CkFACtMf.js} +1 -1
  14. package/dist/public/assets/{delete-confirm-dialog-uTSX_x-i.js → delete-confirm-dialog-D1zjctrX.js} +1 -1
  15. package/dist/public/assets/{diff-view-XN5G5F6E.js → diff-view-Cxf7v9t1.js} +1 -1
  16. package/dist/public/assets/{explorer-tab-view-A2ICDFPB.js → explorer-tab-view-LkT0bDcR.js} +2 -2
  17. package/dist/public/assets/{explorer-tree-B04Ba59E.js → explorer-tree-B6EZUVTn.js} +1 -1
  18. package/dist/public/assets/{explorer-view-CofaKFiu.js → explorer-view-D5y8Uxoi.js} +1 -1
  19. package/dist/public/assets/{git-history-dialog-V3kaff2G.js → git-history-dialog-X6sVwgPT.js} +1 -1
  20. package/dist/public/assets/{index-B0xy4BkI.js → index-CJCQ4bTo.js} +32 -33
  21. package/dist/public/assets/{mcp-server-card-DOsP-SQ8.js → mcp-server-card-DPakHrG9.js} +1 -1
  22. package/dist/public/assets/{merged-pr-dialog-BerRzLlh.js → merged-pr-dialog-C3euJvCu.js} +1 -1
  23. package/dist/public/assets/{model-list-controls-Dw98tMn7.js → model-list-controls-2JtkzWsp.js} +1 -1
  24. package/dist/public/assets/{monaco-setup-C87kBr4u.js → monaco-setup-b-rhUj5t.js} +1 -1
  25. package/dist/public/assets/{onboarding-DVc9-yKJ.js → onboarding-KBcwP-kU.js} +1 -1
  26. package/dist/public/assets/{project-env-vars-view-BQwUd7y6.js → project-env-vars-view-D60J_-qQ.js} +1 -1
  27. package/dist/public/assets/{project-model-aliases-view-CobSp09z.js → project-model-aliases-view-EClnOgBH.js} +1 -1
  28. package/dist/public/assets/{project-settings-view-CPTd5lEi.js → project-settings-view-Cb0iiyad.js} +1 -1
  29. package/dist/public/assets/{project-tools-view-DShQghoz.js → project-tools-view-B_WnVICB.js} +1 -1
  30. package/dist/public/assets/{providers-list-view-Da9VMcuP.js → providers-list-view-CYy82_hl.js} +1 -1
  31. package/dist/public/assets/{pull-request-dialog-BAarT9EM.js → pull-request-dialog-CitbRcub.js} +1 -1
  32. package/dist/public/assets/{pull-with-changes-dialog-BcF25mjQ.js → pull-with-changes-dialog-CpgHqvKf.js} +1 -1
  33. package/dist/public/assets/{push-before-pr-dialog-BF0NzV2u.js → push-before-pr-dialog-CrcNZDLb.js} +1 -1
  34. package/dist/public/assets/{react-vendor-B7jFrulV.js → react-vendor-7n7LyU5o.js} +1 -1
  35. package/dist/public/assets/{settings-general-view-DT4nElcL.js → settings-general-view-72s5xgPj.js} +1 -1
  36. package/dist/public/assets/{settings-instructions-view-Bsr8wRMf.js → settings-instructions-view-DN4-73KP.js} +1 -1
  37. package/dist/public/assets/{settings-list-B9wyVzKw.js → settings-list-CWdsaJKC.js} +1 -1
  38. package/dist/public/assets/{settings-logs-view-CyaGqUKH.js → settings-logs-view-CkkVgGvv.js} +1 -1
  39. package/dist/public/assets/{settings-mcp-servers-view-BTUWHB5K.js → settings-mcp-servers-view-B8_vnfl6.js} +1 -1
  40. package/dist/public/assets/{settings-models-view-DFwkVdt3.js → settings-models-view-xIRY7PvW.js} +1 -1
  41. package/dist/public/assets/{settings-rules-view-BhA9tjVh.js → settings-rules-view-DIk0ghSW.js} +1 -1
  42. package/dist/public/assets/{settings-skills-view-BFoO9oZk.js → settings-skills-view-qWbr0Vl2.js} +1 -1
  43. package/dist/public/assets/{settings-slack-view-D4mrQ9C9.js → settings-slack-view-RFLP0USW.js} +1 -1
  44. package/dist/public/assets/{settings-slash-commands-view-BLKPDUVG.js → settings-slash-commands-view-zFWoR_R7.js} +1 -1
  45. package/dist/public/assets/{settings-statistics-view-fa6iBiP8.js → settings-statistics-view-BgrzVn4R.js} +1 -1
  46. package/dist/public/assets/{settings-storage-view-LaiAi5gv.js → settings-storage-view-BS2k7E74.js} +1 -1
  47. package/dist/public/assets/{settings-subagents-view-BjMz2Ri_.js → settings-subagents-view-BZr1NkVp.js} +1 -1
  48. package/dist/public/assets/{settings-system-prompt-view-DNh1yqZh.js → settings-system-prompt-view-mQErde93.js} +1 -1
  49. package/dist/public/assets/{settings-view-BoC66Wji.js → settings-view-D4-XZz2V.js} +2 -2
  50. package/dist/public/assets/{tasks-view-B049aXpC.js → tasks-view-DgkXglqW.js} +2 -2
  51. package/dist/public/assets/{terminal-panel-Pv5xqCpm.js → terminal-panel-DCaBWV04.js} +1 -1
  52. package/dist/public/assets/{ui-components-DJLsrr5e.js → ui-components-1WsgZqWa.js} +1 -1
  53. package/dist/public/assets/{use-active-dock-panel-instance-BlRDPUlZ.js → use-active-dock-panel-instance-B9ao_JH2.js} +1 -1
  54. package/dist/public/assets/{use-installed-ai-files-DmLnugpj.js → use-installed-ai-files-GpG9ZL8U.js} +1 -1
  55. package/dist/public/assets/{web-BidDZaMC.js → web-BuYdGVW8.js} +1 -1
  56. package/dist/public/assets/{web-DHUv7oQP.js → web-CEfF0992.js} +1 -1
  57. package/dist/public/assets/{web-JMCxQg4N.js → web-D7CwlITA.js} +1 -1
  58. package/dist/public/assets/{web-C_HuLxHj.js → web-yeAPC2wm.js} +1 -1
  59. package/dist/public/index.html +5 -5
  60. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-DVc9-yKJ.js","assets/rolldown-runtime-aKtaBQYM.js","assets/interactive-BrHVRHmQ.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,B as n,Bn as r,C as i,Di as a,Gn as o,Hn as s,K as c,Kn as l,Oi as u,Rr as d,Sn as f,Un as p,Vn as m,Wn as h,X as g,Zn as _,b as v,cr as y,dr as b,f as x,fr as S,i as C,in as w,ki as T,lr as E,mr as D,on as O,tr as k,ur as A,yt as j}from"./interactive-BrHVRHmQ.js";import{A as ee,Ct as M,D as te,Eo as N,Er as P,Pr as ne,St as F,T as re,Tt as ie,_ as I,a as ae,b as L,bt as oe,h as se,ht as ce,in as le,j as ue,k as de,m as fe,mn as pe,mr as me,o as R,p as he,sr as ge,v as _e,x as z}from"./onboarding-DVc9-yKJ.js";import{l as ve}from"./monaco-D1hpqXQ0.js";import{J as B,n as ye,r as V}from"./store-B_cK-gsT.js";import{n as be}from"./chat-dock-context-DyKjqpND.js";import{n as xe,r as Se,t as Ce}from"./use-suspense-resource-CExc4Svq.js";import{t as we}from"./ndjson-stream-DeGpE5o5.js";import{At as H,B as Te,Bt as U,Ct as Ee,Et as De,F as Oe,H as ke,Ht as Ae,Kt as je,Lt as Me,Rt as Ne,St as Pe,Tt as Fe,U as Ie,V as Le,bt as Re,jt as ze,kt as Be,vt as Ve,wt as W,xt as He,yt as Ue,zt as We}from"./index-B0xy4BkI.js";import{n as Ge,t as G}from"./commit-method-fields-Dijc502F.js";import{t as Ke}from"./async-error-boundary-Rf-s2_Ez.js";var K=e(T(),1),q=u();function qe(e){return e.status!==`Done`&&!e.working}function J(e){return e.status!==`Done`&&!e.working&&!!e.triggerType}function Je(e){if(!e.triggerType)return null;let t=e.enabled===!1?`Paused · `:``;if(e.triggerType===`schedule`&&e.scheduledAt){let n=new Date(e.scheduledAt);if(!Number.isNaN(n.getTime()))return`${t}Scheduled ${n.toLocaleString()}`}if(e.triggerType===`schedule`&&e.scheduleCron&&e.timezone){let n=l(e.scheduleCron),r=n?s(n):e.scheduleCron,i=o(e.scheduleCron,e.timezone),a=i?p(i):null;return a?`${t}${r} · ${a}`:`${t}${r}`}return e.triggerType===`event`&&e.eventKey?`${t}Event: ${e.eventKey}`:null}function Ye(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())}function Xe(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}`}function Y(e,t){return`project-tasks:${e}:${t}`}async function Ze(e){ne(),Se(`projects:bootstrap:`);let t=await me();e({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),e({type:B.SetProjectsLoading,projectsLoading:!1})}async function Qe(e){let t=await Ee(e),n=t.filter(e=>e.threadId&&e.status!==`Done`),r=[...t];return await Promise.all(n.map(async t=>{try{await P(t.threadId)}catch(n){if(n instanceof Error&&n.message.includes(`not found`)){let n=await De(e,t.id,{status:`Done`}),i=r.findIndex(e=>e.id===t.id);i!==-1&&(r[i]=n)}}})),r}async function $e(e,t){let n=null;try{await we(e,e=>{if(!e||typeof e!=`object`)return;let r=e;r.type===`progress`&&typeof r.threadId==`string`&&!n&&(n=r.threadId,t(n))})}catch{}return n}var X=a();function et({task:e,disabled:t=!1,onImplementInNewThread:n,onImplementInThisThread:r,onMarkDone:i,onRunNow:a}){let[o,s]=(0,K.useState)(!1),c=qe(e),l=e.status!==`Done`,u=J(e),d=t||o||!c&&!l&&!u;async function f(e){s(!0);try{await e()}finally{s(!1)}}return(0,X.jsxs)(Me,{children:[(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:C(`h-8 w-8 shrink-0`,e.working&&`text-primary`),disabled:d,children:[o||e.working?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(O,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,X.jsxs)(We,{align:`end`,children:[c&&(0,X.jsx)(U,{onClick:()=>void f(()=>r(e)),children:`Do This`}),u&&(0,X.jsx)(U,{onClick:()=>void f(()=>a(e)),children:`Run Now`}),c&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ae,{}),(0,X.jsx)(U,{onClick:()=>void f(()=>n(e)),children:`Do this in a new thread`})]}),l&&(0,X.jsx)(U,{onClick:()=>void f(()=>i(e)),children:`Mark as Done`})]})]})}function tt(e){let t=(0,q.c)(14),{tag:n,onRemove:r,className:i}=e,a;t[0]===i?a=t[1]:(a=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,i),t[0]=i,t[1]=a);let o;t[2]===n.color?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:n.color}}),t[2]=n.color,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]!==r||t[7]!==n.name?(c=r&&(0,X.jsx)(`button`,{type:`button`,className:`ml-0.5 shrink-0 rounded-full opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r()},"aria-label":`Remove ${n.name}`,children:(0,X.jsxs)(`svg`,{className:`h-3 w-3`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,X.jsx)(`line`,{x1:`3`,y1:`3`,x2:`9`,y2:`9`}),(0,X.jsx)(`line`,{x1:`9`,y1:`3`,x2:`3`,y2:`9`})]})}),t[6]=r,t[7]=n.name,t[8]=c):c=t[8];let l;return t[9]!==a||t[10]!==o||t[11]!==s||t[12]!==c?(l=(0,X.jsxs)(`span`,{className:a,children:[o,s,c]}),t[9]=a,t[10]=o,t[11]=s,t[12]=c,t[13]=l):l=t[13],l}var nt={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function rt(e){let t=(0,q.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let a=nt[n],o;t[2]===a?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:a}}),t[2]=a,t[3]=o);let s;t[4]===n?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n}),t[4]=n,t[5]=s);let c;return t[6]!==i||t[7]!==o||t[8]!==s?(c=(0,X.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function it({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0}){let[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(0),f=(0,K.useRef)(null),p=(0,K.useMemo)(()=>new Set(e.map(e=>A(e.name))),[e]),m=e.length>=10,h=(0,K.useMemo)(()=>{let e=a.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=A(e.name);p.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of y){let t=A(e);!p.has(t)&&!r.has(t)&&r.set(t,{name:e,color:E(t)})}let o=(n?[...r.values()].filter(e=>e.name.toLowerCase().includes(n)):[...r.values()]).map(e=>({name:e.name,color:e.color,isCreate:!1}));if(e&&i&&!m){let t=b(e),n=A(t),i=p.has(n)||r.has(n),a=!S(t);!i&&a&&o.push({name:t,color:E(n),isCreate:!0})}return o},[a,t,p,m]);(0,K.useEffect)(()=>{u(0)},[a]),(0,K.useEffect)(function(){if(!s||m)return;let e=requestAnimationFrame(function(){f.current?.focus()});return function(){cancelAnimationFrame(e)}},[s,m]);function _(r){if(m)return;let i=b(r),a=A(i);if(p.has(a))return;let s=t.find(e=>A(e.name)===a)??{id:`new:${a}`,name:i,color:E(a)};n([...e,s]),o(``)}function v(t){n(e.filter(e=>e.id!==t.id))}function x(t){if(t.key===`ArrowDown`)t.preventDefault(),s||c(!0),u(e=>(e+1)%Math.max(h.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),u(e=>(e-1+h.length)%Math.max(h.length,1));else if(t.key===`Enter`){t.preventDefault();let e=h[l];e&&_(e.name)}else t.key===`Backspace`&&!a&&e.length>0?v(e[e.length-1]):t.key===`Escape`&&(c(!1),f.current?.blur())}return(0,X.jsxs)(Be,{open:s,onOpenChange:function(e){c(e),e||o(``)},children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[e.map(function(e){return(0,X.jsx)(tt,{tag:e,onRemove:()=>v(e)},e.id)}),(0,X.jsx)(ze,{asChild:!0,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:m,"aria-label":m?`Max 10 tags`:`Add tag`,className:C(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,m&&`opacity-50`),children:(0,X.jsx)(g,{className:`h-3 w-3`})})})]}),(0,X.jsxs)(H,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,X.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,X.jsx)(`input`,{ref:f,type:`text`,value:a,onChange:function(e){o(e.target.value)},onKeyDown:x,placeholder:m?`Max 10 tags`:r,disabled:m,className:C(d.body,`w-full rounded-md border border-input bg-background px-3 py-2 outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`)})}),(0,X.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},children:h.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-3 py-4 text-center`),children:m?`Tag limit reached`:`No tags found`}):h.map(function(e,t){return(0,X.jsxs)(`button`,{type:`button`,className:C(d.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,l===t&&`bg-accent`),onClick:function(){_(e.name),f.current?.focus()},children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,X.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function at({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(!1),[_,y]=(0,K.useState)(null),[b,S]=(0,K.useState)(null);function w(e){o(e.id),c(e.name),y(null)}function T(){o(null),c(``),y(null)}async function E(){let e=l.trim();if(e){g(!0),y(null);try{let t=await Ve(n,e);i([...r,t]),u(``)}catch(e){y(e instanceof Error?e.message:`Failed to create tag`)}finally{g(!1)}}}async function D(e){let t=s.trim();if(t){m(!0),y(null);try{let a=await W(n,e,t);i(r.map(e=>e.id===a.id?{...e,name:a.name,color:a.color}:e)),T()}catch(e){y(e instanceof Error?e.message:`Failed to rename tag`)}finally{m(!1)}}}async function O(e){m(!0),y(null);try{await Re(n,e),i(r.filter(t=>t.id!==e)),S(null),a===e&&T()}catch(e){y(e instanceof Error?e.message:`Failed to delete tag`)}finally{m(!1)}}return(0,X.jsx)(re,{open:e,onOpenChange:t,children:(0,X.jsxs)(te,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Manage Tags`})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,X.jsx)(z,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&E(),e.key===`Escape`&&u(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:h}),(0,X.jsx)(N,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void E(),disabled:h||!l.trim(),children:h?(0,X.jsx)(j,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,X.jsx)(ce,{className:`min-h-0 flex-1`,children:(0,X.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=a===e.id,n=b===e.id;return(0,X.jsx)(`div`,{className:C(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!p&&`cursor-pointer`),onClick:()=>{!p&&!t&&!n&&w(e)},children:t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(z,{value:s,onChange:e=>c(e.target.value),onKeyDown:t=>{t.key===`Enter`&&D(e.id),t.key===`Escape`&&T()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:p}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void D(e.id),disabled:p||!s.trim(),children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:T,disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:C(d.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void O(e.id),disabled:p,children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>S(null),disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:C(d.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,X.jsxs)(`span`,{className:C(d.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive opacity-0 pointer-events-none transition-opacity can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto can-hover:hover:text-destructive`,onClick:t=>{t.stopPropagation(),S(e.id)},disabled:p,"aria-label":`Delete ${e.name}`,children:(0,X.jsx)(v,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),_&&(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:_})]})})}var ot=`09:00`;function Z(e){return String(e).padStart(2,`0`)}function st(){let e=new Date(Date.now()+3600*1e3);return`${e.getFullYear()}-${Z(e.getMonth()+1)}-${Z(e.getDate())}T${Z(e.getHours())}:${Z(e.getMinutes())}`}function ct(){return{kind:`manual`,scheduleMode:`once`,scheduledAtLocal:st(),preset:`daily`,presetTime:ot,dayOfWeek:new Date().getDay(),timezone:h(),enabled:!0,eventKey:``}}function lt(e){let t=ct();if(e.triggerType===`schedule`){if(e.scheduleCron){let n=l(e.scheduleCron);return{kind:`schedule`,scheduleMode:`repeating`,scheduledAtLocal:t.scheduledAtLocal,preset:n?.preset??`daily`,presetTime:n?.time??ot,dayOfWeek:n?.dayOfWeek??new Date().getDay(),timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}if(e.scheduledAt){let n=new Date(e.scheduledAt);return{kind:`schedule`,scheduleMode:`once`,scheduledAtLocal:Number.isNaN(n.getTime())?t.scheduledAtLocal:`${n.getFullYear()}-${Z(n.getMonth()+1)}-${Z(n.getDate())}T${Z(n.getHours())}:${Z(n.getMinutes())}`,preset:t.preset,presetTime:t.presetTime,dayOfWeek:t.dayOfWeek,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}}return e.triggerType===`event`?{...t,kind:`event`,enabled:e.enabled!==!1,eventKey:e.eventKey??``}:t}function ut(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function dt(e){return e.kind===`manual`?{triggerType:null,scheduledAt:null,scheduleCron:null,timezone:null,enabled:!0,eventKey:null}:e.kind===`event`?{triggerType:`event`,scheduledAt:null,scheduleCron:null,timezone:null,enabled:e.enabled,eventKey:e.eventKey.trim()||null}:e.scheduleMode===`once`?{triggerType:`schedule`,scheduledAt:ut(e.scheduledAtLocal),scheduleCron:null,timezone:e.timezone,enabled:e.enabled,eventKey:null}:{triggerType:`schedule`,scheduledAt:null,scheduleCron:m(e.preset,e.presetTime,e.dayOfWeek),timezone:e.timezone,enabled:e.enabled,eventKey:null}}function ft(e){return e.kind!==`manual`}function pt(e){return e.kind===`manual`?null:r(dt(e))}function mt(e){return e.replace(/^eventKey is required for event triggers$/,`Event key is required`).replace(/^eventKey must be (\d+) characters or fewer$/,`Event key must be $1 characters or fewer`).replace(/^eventKey may only contain letters, numbers, dots, colons, underscores, and hyphens$/,`Event key may only contain letters, numbers, dots, colons, underscores, and hyphens`)}function ht(e){return e.startsWith(`Event key`)}function gt(e,t){return JSON.stringify(e)===JSON.stringify(t)}var _t=[{value:`0`,label:`Sunday`},{value:`1`,label:`Monday`},{value:`2`,label:`Tuesday`},{value:`3`,label:`Wednesday`},{value:`4`,label:`Thursday`},{value:`5`,label:`Friday`},{value:`6`,label:`Saturday`}];function Q(e,t){return{...e,...t}}function vt(e){let t=(0,q.c)(42),{value:n,onChange:r,collapsed:i,onCollapsedChange:a,showCollapseControl:o,error:s}=e,c=i===void 0?!1:i,l=o===void 0?!1:o,u=s===void 0?null:s,f;t[0]!==r||t[1]!==n?(f=function(e){r(Q(n,{kind:e}))},t[0]=r,t[1]=n,t[2]=f):f=t[2];let p=f,m;t[3]!==r||t[4]!==n?(m=function(e){r(Q(n,{scheduleMode:e}))},t[3]=r,t[4]=n,t[5]=m):m=t[5];let h=m;if(l&&c){let e;return t[6]===a?e=t[7]:(e=(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a?.(!1),children:`Add schedule or event trigger`})}),t[6]=a,t[7]=e),e}let g;t[8]!==r||t[9]!==a||t[10]!==l||t[11]!==n?(g=l&&(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`p`,{className:C(d.label),children:`Trigger`}),(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:()=>{r(Q(n,{kind:`manual`})),a?.(!0)},children:[(0,X.jsx)(x,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Remove trigger`})]})]}),t[8]=r,t[9]=a,t[10]=l,t[11]=n,t[12]=g):g=t[12];let _;t[13]===p?_=t[14]:(_=e=>{(e===`manual`||e===`schedule`||e===`event`)&&p(e)},t[13]=p,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,X.jsx)(R,{value:`manual`,"aria-label":`Manual`,className:C(d.body,Ge),children:`Manual`}),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,X.jsx)(R,{value:`schedule`,"aria-label":`Schedule`,className:C(d.body,Ge),children:`Schedule`}),t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(R,{value:`event`,"aria-label":`Event`,className:C(d.body,Ge),children:`Event`}),t[17]=b):b=t[17];let S;t[18]!==_||t[19]!==n.kind?(S=(0,X.jsxs)(ae,{type:`single`,value:n.kind,onValueChange:_,"aria-label":`Trigger type`,className:G,children:[v,y,b]}),t[18]=_,t[19]=n.kind,t[20]=S):S=t[20];let w;t[21]!==r||t[22]!==h||t[23]!==n?(w=n.kind===`schedule`&&(0,X.jsxs)(`div`,{className:`space-y-4 border-t border-border pt-4`,children:[(0,X.jsxs)(ae,{type:`single`,value:n.scheduleMode,onValueChange:e=>{(e===`once`||e===`repeating`)&&h(e)},"aria-label":`Schedule mode`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`once`,"aria-label":`Once`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Once`}),(0,X.jsx)(R,{value:`repeating`,"aria-label":`Repeating`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Repeating`})]}),n.scheduleMode===`once`?(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-once-at`,children:`Run at`}),(0,X.jsx)(z,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:e=>r(Q(n,{scheduledAtLocal:e.target.value}))})]}):(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Preset`}),(0,X.jsxs)(he,{value:n.preset,onValueChange:e=>r(Q(n,{preset:e})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsxs)(fe,{children:[(0,X.jsx)(se,{value:`daily`,children:`Daily`}),(0,X.jsx)(se,{value:`weekdays`,children:`Weekdays`}),(0,X.jsx)(se,{value:`weekly`,children:`Weekly`})]})]})]}),n.preset===`weekly`&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Day`}),(0,X.jsxs)(he,{value:String(n.dayOfWeek),onValueChange:e=>r(Q(n,{dayOfWeek:Number(e)})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsx)(fe,{children:_t.map(function(e){return(0,X.jsx)(se,{value:e.value,children:e.label},e.value)})})]})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-time`,children:`Time`}),(0,X.jsx)(z,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r(Q(n,{presetTime:e.target.value}))})]})]}),(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]})]}),t[21]=r,t[22]=h,t[23]=n,t[24]=w):w=t[24];let T;t[25]!==u||t[26]!==r||t[27]!==n?(T=n.kind===`event`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{htmlFor:`event-key`,children:`Event Key`}),(0,X.jsx)(z,{id:`event-key`,value:n.eventKey,placeholder:`door.opened`,"aria-invalid":!!(u&&ht(u)),onChange:e=>r(Q(n,{eventKey:e.target.value}))}),u&&ht(u)?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,X.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]})]}),t[25]=u,t[26]=r,t[27]=n,t[28]=T):T=t[28];let E;t[29]!==u||t[30]!==n.kind?(E=u&&n.kind!==`event`?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):null,t[29]=u,t[30]=n.kind,t[31]=E):E=t[31];let D;t[32]!==r||t[33]!==n?(D=n.kind!==`manual`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{children:`Status`}),(0,X.jsxs)(ae,{type:`single`,value:n.enabled?`active`:`paused`,onValueChange:e=>{(e===`active`||e===`paused`)&&r(Q(n,{enabled:e===`active`}))},"aria-label":`Trigger status`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`active`,"aria-label":`Active`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Active`}),(0,X.jsx)(R,{value:`paused`,"aria-label":`Paused`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Paused`})]})]}),t[32]=r,t[33]=n,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==w||t[37]!==T||t[38]!==E||t[39]!==D||t[40]!==g?(O=(0,X.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[g,S,w,T,E,D]}),t[35]=S,t[36]=w,t[37]=T,t[38]=E,t[39]=D,t[40]=g,t[41]=O):O=t[41],O}var $=k(`app.task-list.ui`);function yt(e){let t=(0,q.c)(28),{onSearchTermChange:r}=e,[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(``),c;t[0]===r?c=t[1]:(c=function(e){s(e),r(e)},t[0]=r,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=function(){s(``),r(``),a(!1)},t[2]=r,t[3]=u);let d=u,f;t[4]!==d||t[5]!==i?(f=()=>{i?d():a(!0)},t[4]=d,t[5]=i,t[6]=f):f=t[6];let p,m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,X.jsx)(n,{className:`h-4 w-4`}),m=(0,X.jsx)(`span`,{className:`sr-only`,children:`Search tasks`}),t[7]=p,t[8]=m):(p=t[7],m=t[8]);let h;t[9]!==i||t[10]!==f?(h=(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:f,"aria-expanded":i,children:[p,m]})}),t[9]=i,t[10]=f,t[11]=h):h=t[11];let g;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,X.jsx)(M,{children:`Search tasks`}),t[12]=g):g=t[12];let _;t[13]===h?_=t[14]:(_=(0,X.jsxs)(F,{children:[h,g]}),t[13]=h,t[14]=_);let v=i?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,y;t[15]===v?y=t[16]:(y=C(`overflow-hidden transition-[width,opacity] duration-200`,v),t[15]=v,t[16]=y);let b;t[17]!==d||t[18]!==l||t[19]!==i||t[20]!==o?(b=i&&(0,X.jsx)(z,{type:`search`,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&d()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[17]=d,t[18]=l,t[19]=i,t[20]=o,t[21]=b):b=t[21];let x;t[22]!==y||t[23]!==b?(x=(0,X.jsx)(`div`,{className:y,children:b}),t[22]=y,t[23]=b,t[24]=x):x=t[24];let S;return t[25]!==x||t[26]!==_?(S=(0,X.jsxs)(`div`,{className:`flex items-center`,children:[_,x]}),t[25]=x,t[26]=_,t[27]=S):S=t[27],S}function bt({projectId:e,onThreadSelect:n,initialTasks:r}){let a=ye(),o=V(e=>e.projects),s=V(e=>e.selectedThreadId),l=V(e=>e.processingThreadIds),u=V(e=>e.pendingChatMessage),f=V(e=>e.queuedChatMessages),p=V(e=>e.projectModelSelections),m=o.find(t=>t.projectId===e),h=m?.threads.find(e=>e.threadId===s),v=s?p[s]:void 0,[y,b]=(0,K.useState)(r),[x,S]=(0,K.useState)(!1),[T,E]=(0,K.useState)(null),[D,O]=(0,K.useState)(``),[k,P]=(0,K.useState)(!1),[I,ae]=(0,K.useState)([]),[L,oe]=(0,K.useState)(new Set),[se,fe]=(0,K.useState)(``),[R,he]=(0,K.useState)(!1),[ge,_e]=(0,K.useState)(!1),[z,ve]=(0,K.useState)([]),[be,xe]=(0,K.useState)([]),[Ce,we]=(0,K.useState)(ct),[H,Re]=(0,K.useState)(ct),[ze,Be]=(0,K.useState)(!0),[Ve,W]=(0,K.useState)(null),[Ge,G]=(0,K.useState)(null);(0,K.useEffect)(()=>{Pe(e).then(ae).catch(e=>$.error(`Failed to fetch project tags:`,e))},[e]);let{setActions:Ke}=Oe(),q=(0,K.useCallback)(function(e){oe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),qe=(0,K.useCallback)(async function(){_e(!0);try{await le(e),b(await Ee(e)),J(),Q(),ne();let t=await me();a({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){$.error(`Failed to refresh project tasks:`,e)}finally{_e(!1)}},[e,a]);(0,K.useEffect)(()=>(Ke((0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(yt,{onSearchTermChange:fe}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>void qe(),disabled:ge,children:[(0,X.jsx)(c,{className:C(`h-4 w-4`,ge&&`animate-spin`)}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,X.jsx)(M,{children:`Refresh`})]}),(0,X.jsxs)(Me,{children:[(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,X.jsx)(i,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,X.jsx)(M,{children:`Tags`})]}),(0,X.jsxs)(We,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[I.length===0?(0,X.jsx)(U,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):I.map(function(e){return(0,X.jsxs)(Ne,{checked:L.has(e.id),onCheckedChange:()=>q(e.id),onSelect:e=>e.preventDefault(),children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)}),(0,X.jsx)(Ae,{}),(0,X.jsxs)(U,{onClick:()=>he(!0),children:[(0,X.jsx)(t,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]})),()=>Ke(null)),[Ke,I,L,q,ge,qe]);function J(){Se(`project-tasks:${e}:`)}let Y=m?.tasksModifiedCount??0,Qe=(0,K.useRef)({});(0,K.useEffect)(()=>{let t=Qe.current[e]??0;if(Y===0){Qe.current[e]=0;return}t!==Y&&(Qe.current[e]=Y,Y>t&&qe())},[Y,e,qe]),(0,K.useEffect)(()=>{if(!y.some(e=>e.working))return;let t=setInterval(async()=>{try{let n=await Ee(e);b(n),n.some(e=>e.working)||clearInterval(t)}catch(e){$.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[y,e]),(0,K.useEffect)(()=>{b(r)},[r]),(0,K.useEffect)(()=>{x&&(O(``),ve([]),we(ct()),Be(!0))},[x]),(0,K.useEffect)(()=>{T&&(xe(T.task.tags??[]),Re(lt(T.task)))},[T]);function nt(e){b(t=>t.map(t=>t.id===e.id?e:t))}function ot(e){O(e.description),E({task:e}),G(null)}function Z(){E(null),O(``),G(null)}function st(e,t){if(e)return null;let n=pt(t);return n?mt(n):null}async function ut(){if(!D.trim())return;let t=st(ze,Ce);if(t){W(t);return}W(null),P(!0);try{let t=z.map(e=>e.name),n=ze?{}:dt(Ce),r=await Ue(e,D,{threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:t.length>0?t:void 0,...n});b(e=>[...e,r]),J(),Q(),S(!1),O(``),ve([]),W(null)}catch(e){W(mt(e instanceof Error?e.message:`Failed to add task`)),$.error(`Failed to add task:`,e)}finally{P(!1)}}async function ht(){if(!D.trim()||!T)return;let t=st(!ft(H),H);if(t){G(t);return}G(null),P(!0);try{let t=D.trim(),n=t!==T.task.description.trim(),r=be.map(e=>e.name),i=new Set((T.task.tags??[]).map(e=>A(e.name))),a=new Set(r.map(e=>A(e))),o=i.size!==a.size||[...a].some(e=>!i.has(e)),c=!gt(lt(T.task),H),l=c?dt(H):{};if(!n&&!o&&!c){Z();return}let u=await De(e,T.task.id,{description:n?t:void 0,threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:o?r:void 0,...l});b(e=>e.map(e=>e.id===u.id?u:e)),J(),o&&Q(),Z()}catch(e){G(mt(e instanceof Error?e.message:`Failed to save task`)),$.error(`Failed to save task:`,e)}finally{P(!1)}}async function _t(){if(T){P(!0);try{await He(e,T.task.id),b(e=>e.filter(e=>e.id!==T.task.id)),J(),Q(),Z()}catch(e){$.error(`Failed to delete task:`,e)}finally{P(!1)}}}function Q(){Pe(e).then(ae).catch(e=>$.error(`Failed to refresh project tags:`,e))}function bt(t){let n=new Set(t.map(function(e){return e.id}));ae(t),oe(function(e){return new Set([...e].filter(e=>n.has(e)))}),Ee(e).then(b).catch(e=>$.error(`Failed to refresh tasks after tag change:`,e))}async function xt(t){let r=await pe(e);if(!r)return;let i=null,o=null,s=await $e(r,n=>{o||(o=n,a({type:B.AddCreatingThread,projectId:e,threadId:n,title:Xe(m)}),a({type:B.AddProcessingThread,threadId:n})),De(e,t.id,{status:`Build`,working:!0,threadId:n}).then(e=>{i=e,nt(e)})});if(!s){o&&(a({type:B.RemoveCreatingThread,projectId:e,threadId:o}),a({type:B.RemoveProcessingThread,threadId:o}));return}a({type:B.RemoveProcessingThread,threadId:s});try{await Ze(a)}catch(e){$.error(`Failed to refresh projects after task thread creation:`,e)}await Le(e,t,`Build`,s,i,nt);let c=await ke(e,s);if(!c){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}Te(a,s,c.model,c.provider),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:c.model,provider:c.provider}})}async function St(t){if(!s){$.error(`No selected thread found for project task implementation.`);return}let r=await ke(e,s);if(!r){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}if(Te(a,s,r.model,r.provider),nt(await De(e,t.id,{status:`Build`,working:!0,threadId:s})),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),l.includes(s)||u?.threadId===s||f.some(e=>e.threadId===s)){a({type:B.EnqueueChatMessage,message:{id:_(),threadId:s,paneId:`primary`,message:t.description,model:r.model,attachments:[],provider:r.provider}});return}a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:r.model,provider:r.provider}})}async function Ct(t){nt(await Fe(e,t.id)),J()}async function wt(t){nt(await De(e,t.id,{status:`Done`,working:!1})),J()}let Tt=Ye(y).filter(function(e){return e.status!==`Done`}),Et=se.trim().toLocaleLowerCase(),Dt=Tt.filter(e=>{let t=new Set((e.tags??[]).map(function(e){return e.id})),n=L.size===0||[...L].every(e=>t.has(e)),r=[e.title,e.description,...(e.tags??[]).map(function(e){return e.name})].join(` `).toLocaleLowerCase(),i=!Et||r.includes(Et);return n&&i});return(0,X.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[(0,X.jsx)(ce,{className:`min-h-0 min-w-0 flex-1 overflow-hidden [&>[data-radix-scroll-area-viewport]>div]:block`,children:(0,X.jsx)(`div`,{className:`pb-14`,children:Tt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No active tasks yet. Add one to get started.`}):Dt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No tasks match the current filters.`}):(0,X.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:Dt.map(e=>(0,X.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,X.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:()=>ot(e),children:[(0,X.jsx)(`p`,{className:C(d.label,`truncate leading-normal`),children:e.title}),(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),children:e.description}),Je(e)&&(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 text-muted-foreground`),children:Je(e)}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]})]}),(0,X.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:()=>ot(e),children:(0,X.jsx)(`p`,{className:C(d.caption,`line-clamp-4 break-all text-muted-foreground`),children:e.description})}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]}),(0,X.jsxs)(`div`,{className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start`,children:[e.threadId&&n&&(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>n(e.threadId),children:[(0,X.jsx)(w,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Open thread`})]})}),(0,X.jsx)(M,{children:`Open thread`})]}),(0,X.jsx)(et,{task:e,onImplementInNewThread:xt,onImplementInThisThread:St,onMarkDone:wt,onRunNow:Ct})]})]},e.id))})})}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-10 w-10 rounded-full shadow-lg`,onClick:()=>S(!0),children:[(0,X.jsx)(g,{className:`h-5 w-5`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Add task`})]})}),(0,X.jsx)(M,{children:`Add task`})]}),(0,X.jsx)(re,{open:x,onOpenChange:e=>{S(e),e||W(null)},children:(0,X.jsxs)(te,{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,X.jsx)(ee,{children:(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(ue,{className:`w-fit cursor-help`,children:`Add Task`})}),(0,X.jsx)(M,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`})]})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(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)&&ut()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:z,existingTags:I,onChange:ve,allowCreate:!1})}),(0,X.jsx)(vt,{value:Ce,onChange:e=>{we(e),W(null)},collapsed:ze,onCollapsedChange:Be,showCollapseControl:!0,error:Ve})]}),(0,X.jsx)(de,{children:(0,X.jsx)(N,{onClick:()=>void ut(),disabled:k||!D.trim(),children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Generating title...`]}):`Add`})})]})}),(0,X.jsx)(re,{open:T!==null,onOpenChange:e=>!e&&Z(),children:(0,X.jsxs)(te,{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,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Edit Task`})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(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)&&ht()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:be,existingTags:I,onChange:xe,allowCreate:!1})}),(0,X.jsx)(vt,{value:H,onChange:e=>{Re(e),G(null)},showCollapseControl:!0,collapsed:!ft(H),onCollapsedChange:e=>{e&&Re(ct()),G(null)},error:Ge})]}),(0,X.jsxs)(de,{className:`flex-row justify-between gap-2 sm:gap-0`,children:[(0,X.jsx)(N,{variant:`destructive`,onClick:()=>void _t(),disabled:k,children:`Delete`}),(0,X.jsx)(N,{onClick:()=>void ht(),disabled:k||!D.trim(),className:`w-auto`,children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Saving...`]}):`Save`})]})]})}),(0,X.jsx)(at,{open:R,onOpenChange:he,projectId:e,tags:I,onTagsChanged:bt})]})}function xt(e){let t=(0,q.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=Y(r,n),t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;t[7]===r?o=t[8]:(o=()=>Qe(r),t[7]=r,t[8]=o);let s=Ce(a,o),c;return t[9]!==s||t[10]!==r||t[11]!==i?(c=(0,X.jsx)(bt,{projectId:r,initialTasks:s,...i}),t[9]=s,t[10]=r,t[11]=i,t[12]=c):c=t[12],c}function St(e){let t=(0,q.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,K.useState)(0),s,c;t[3]!==n.projectId||t[4]!==i?(s=()=>{i!==0&&o(e=>(xe(Y(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,K.useEffect)(s,c);let l;t[7]!==a||t[8]!==n.projectId?(l=function(){xe(Y(n.projectId,a)),o(Ct)},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,X.jsx)(oe,{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,X.jsx)(K.Suspense,{fallback:d,children:(0,X.jsx)(xt,{...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,X.jsx)(Ke,{fallbackTitle:`Failed to load tasks`,onRetry:u,children:p}),t[15]=u,t[16]=p,t[17]=m):m=t[17],m}function Ct(e){return e+1}var wt=k(`app.tasks-view.ui`);function Tt({projectId:e,refreshTrigger:t}){let n=ye(),r=V(e=>e.projects),i=V(e=>e.selectedThreadId),a=V(e=>e.selectedProjectId),{expandWindow:o,hasOpenWindows:s}=be();(0,K.useEffect)(()=>{let e=!1;return(async()=>{try{let{getProjects:t,invalidateProjectsCache:r}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-DVc9-yKJ.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));r();let i=await t();e||n({type:B.SetProjects,projects:i.projects,cloneRootPath:i.cloneRootPath})}catch(e){wt.error(`Failed to refresh projects on tasks view mount:`,e)}})(),()=>{e=!0}},[n]);async function c(t){if(r.find(t=>t.projectId===e)){s&&o(D);try{let{getProjects:r,invalidateProjectsCache:o}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-DVc9-yKJ.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));o();let s=await r();n({type:B.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath});let c=s.projects.find(t=>t.projectId===e);if(c&&c.threads.find(e=>e.threadId===t)){(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after thread selection:`,e)}}}catch(r){wt.error(`Failed to refresh projects for thread selection:`,r),(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after fallback thread selection:`,e)}}}}return(0,X.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,X.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,X.jsx)(St,{projectId:e,refreshTrigger:t,onThreadSelect:c})})})}export{Tt as TasksView};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-KBcwP-kU.js","assets/rolldown-runtime-aKtaBQYM.js","assets/interactive-BrHVRHmQ.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,B as n,Bn as r,C as i,Di as a,Gn as o,Hn as s,K as c,Kn as l,Oi as u,Rr as d,Sn as f,Un as p,Vn as m,Wn as h,X as g,Zn as _,b as v,cr as y,dr as b,f as x,fr as S,i as C,in as w,ki as T,lr as E,mr as D,on as O,tr as k,ur as A,yt as j}from"./interactive-BrHVRHmQ.js";import{A as ee,Ct as M,D as te,Eo as N,Er as P,Pr as ne,St as F,T as re,Tt as ie,_ as I,a as ae,b as L,bt as oe,h as se,ht as ce,in as le,j as ue,k as de,m as fe,mn as pe,mr as me,o as R,p as he,sr as ge,v as _e,x as z}from"./onboarding-KBcwP-kU.js";import{l as ve}from"./monaco-D1hpqXQ0.js";import{J as B,n as ye,r as V}from"./store-B_cK-gsT.js";import{n as be}from"./chat-dock-context-Gg1jpamu.js";import{n as xe,r as Se,t as Ce}from"./use-suspense-resource-CExc4Svq.js";import{t as we}from"./ndjson-stream-DeGpE5o5.js";import{At as H,B as Te,Bt as U,Ct as Ee,Et as De,F as Oe,H as ke,Ht as Ae,Kt as je,Lt as Me,Rt as Ne,St as Pe,Tt as Fe,U as Ie,V as Le,bt as Re,jt as ze,kt as Be,vt as Ve,wt as W,xt as He,yt as Ue,zt as We}from"./index-CJCQ4bTo.js";import{n as Ge,t as G}from"./commit-method-fields-o-xw2faT.js";import{t as Ke}from"./async-error-boundary-CM6LU7nT.js";var K=e(T(),1),q=u();function qe(e){return e.status!==`Done`&&!e.working}function J(e){return e.status!==`Done`&&!e.working&&!!e.triggerType}function Je(e){if(!e.triggerType)return null;let t=e.enabled===!1?`Paused · `:``;if(e.triggerType===`schedule`&&e.scheduledAt){let n=new Date(e.scheduledAt);if(!Number.isNaN(n.getTime()))return`${t}Scheduled ${n.toLocaleString()}`}if(e.triggerType===`schedule`&&e.scheduleCron&&e.timezone){let n=l(e.scheduleCron),r=n?s(n):e.scheduleCron,i=o(e.scheduleCron,e.timezone),a=i?p(i):null;return a?`${t}${r} · ${a}`:`${t}${r}`}return e.triggerType===`event`&&e.eventKey?`${t}Event: ${e.eventKey}`:null}function Ye(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())}function Xe(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}`}function Y(e,t){return`project-tasks:${e}:${t}`}async function Ze(e){ne(),Se(`projects:bootstrap:`);let t=await me();e({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),e({type:B.SetProjectsLoading,projectsLoading:!1})}async function Qe(e){let t=await Ee(e),n=t.filter(e=>e.threadId&&e.status!==`Done`),r=[...t];return await Promise.all(n.map(async t=>{try{await P(t.threadId)}catch(n){if(n instanceof Error&&n.message.includes(`not found`)){let n=await De(e,t.id,{status:`Done`}),i=r.findIndex(e=>e.id===t.id);i!==-1&&(r[i]=n)}}})),r}async function $e(e,t){let n=null;try{await we(e,e=>{if(!e||typeof e!=`object`)return;let r=e;r.type===`progress`&&typeof r.threadId==`string`&&!n&&(n=r.threadId,t(n))})}catch{}return n}var X=a();function et({task:e,disabled:t=!1,onImplementInNewThread:n,onImplementInThisThread:r,onMarkDone:i,onRunNow:a}){let[o,s]=(0,K.useState)(!1),c=qe(e),l=e.status!==`Done`,u=J(e),d=t||o||!c&&!l&&!u;async function f(e){s(!0);try{await e()}finally{s(!1)}}return(0,X.jsxs)(Me,{children:[(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:C(`h-8 w-8 shrink-0`,e.working&&`text-primary`),disabled:d,children:[o||e.working?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(O,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,X.jsxs)(We,{align:`end`,children:[c&&(0,X.jsx)(U,{onClick:()=>void f(()=>r(e)),children:`Do This`}),u&&(0,X.jsx)(U,{onClick:()=>void f(()=>a(e)),children:`Run Now`}),c&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ae,{}),(0,X.jsx)(U,{onClick:()=>void f(()=>n(e)),children:`Do this in a new thread`})]}),l&&(0,X.jsx)(U,{onClick:()=>void f(()=>i(e)),children:`Mark as Done`})]})]})}function tt(e){let t=(0,q.c)(14),{tag:n,onRemove:r,className:i}=e,a;t[0]===i?a=t[1]:(a=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,i),t[0]=i,t[1]=a);let o;t[2]===n.color?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:n.color}}),t[2]=n.color,t[3]=o);let s;t[4]===n.name?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=s);let c;t[6]!==r||t[7]!==n.name?(c=r&&(0,X.jsx)(`button`,{type:`button`,className:`ml-0.5 shrink-0 rounded-full opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r()},"aria-label":`Remove ${n.name}`,children:(0,X.jsxs)(`svg`,{className:`h-3 w-3`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,X.jsx)(`line`,{x1:`3`,y1:`3`,x2:`9`,y2:`9`}),(0,X.jsx)(`line`,{x1:`9`,y1:`3`,x2:`3`,y2:`9`})]})}),t[6]=r,t[7]=n.name,t[8]=c):c=t[8];let l;return t[9]!==a||t[10]!==o||t[11]!==s||t[12]!==c?(l=(0,X.jsxs)(`span`,{className:a,children:[o,s,c]}),t[9]=a,t[10]=o,t[11]=s,t[12]=c,t[13]=l):l=t[13],l}var nt={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function rt(e){let t=(0,q.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=C(d.compact,`inline-flex items-center gap-1 rounded-full border border-border/50 bg-background px-2 py-0.5`,r),t[0]=r,t[1]=i);let a=nt[n],o;t[2]===a?o=t[3]:(o=(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:a}}),t[2]=a,t[3]=o);let s;t[4]===n?s=t[5]:(s=(0,X.jsx)(`span`,{className:`truncate`,children:n}),t[4]=n,t[5]=s);let c;return t[6]!==i||t[7]!==o||t[8]!==s?(c=(0,X.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function it({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0}){let[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(0),f=(0,K.useRef)(null),p=(0,K.useMemo)(()=>new Set(e.map(e=>A(e.name))),[e]),m=e.length>=10,h=(0,K.useMemo)(()=>{let e=a.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=A(e.name);p.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of y){let t=A(e);!p.has(t)&&!r.has(t)&&r.set(t,{name:e,color:E(t)})}let o=(n?[...r.values()].filter(e=>e.name.toLowerCase().includes(n)):[...r.values()]).map(e=>({name:e.name,color:e.color,isCreate:!1}));if(e&&i&&!m){let t=b(e),n=A(t),i=p.has(n)||r.has(n),a=!S(t);!i&&a&&o.push({name:t,color:E(n),isCreate:!0})}return o},[a,t,p,m]);(0,K.useEffect)(()=>{u(0)},[a]),(0,K.useEffect)(function(){if(!s||m)return;let e=requestAnimationFrame(function(){f.current?.focus()});return function(){cancelAnimationFrame(e)}},[s,m]);function _(r){if(m)return;let i=b(r),a=A(i);if(p.has(a))return;let s=t.find(e=>A(e.name)===a)??{id:`new:${a}`,name:i,color:E(a)};n([...e,s]),o(``)}function v(t){n(e.filter(e=>e.id!==t.id))}function x(t){if(t.key===`ArrowDown`)t.preventDefault(),s||c(!0),u(e=>(e+1)%Math.max(h.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),u(e=>(e-1+h.length)%Math.max(h.length,1));else if(t.key===`Enter`){t.preventDefault();let e=h[l];e&&_(e.name)}else t.key===`Backspace`&&!a&&e.length>0?v(e[e.length-1]):t.key===`Escape`&&(c(!1),f.current?.blur())}return(0,X.jsxs)(Be,{open:s,onOpenChange:function(e){c(e),e||o(``)},children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[e.map(function(e){return(0,X.jsx)(tt,{tag:e,onRemove:()=>v(e)},e.id)}),(0,X.jsx)(ze,{asChild:!0,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:m,"aria-label":m?`Max 10 tags`:`Add tag`,className:C(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,m&&`opacity-50`),children:(0,X.jsx)(g,{className:`h-3 w-3`})})})]}),(0,X.jsxs)(H,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,X.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,X.jsx)(`input`,{ref:f,type:`text`,value:a,onChange:function(e){o(e.target.value)},onKeyDown:x,placeholder:m?`Max 10 tags`:r,disabled:m,className:C(d.body,`w-full rounded-md border border-input bg-background px-3 py-2 outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`)})}),(0,X.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},children:h.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-3 py-4 text-center`),children:m?`Tag limit reached`:`No tags found`}):h.map(function(e,t){return(0,X.jsxs)(`button`,{type:`button`,className:C(d.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,l===t&&`bg-accent`),onClick:function(){_(e.name),f.current?.focus()},children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,X.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function at({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(!1),[_,y]=(0,K.useState)(null),[b,S]=(0,K.useState)(null);function w(e){o(e.id),c(e.name),y(null)}function T(){o(null),c(``),y(null)}async function E(){let e=l.trim();if(e){g(!0),y(null);try{let t=await Ve(n,e);i([...r,t]),u(``)}catch(e){y(e instanceof Error?e.message:`Failed to create tag`)}finally{g(!1)}}}async function D(e){let t=s.trim();if(t){m(!0),y(null);try{let a=await W(n,e,t);i(r.map(e=>e.id===a.id?{...e,name:a.name,color:a.color}:e)),T()}catch(e){y(e instanceof Error?e.message:`Failed to rename tag`)}finally{m(!1)}}}async function O(e){m(!0),y(null);try{await Re(n,e),i(r.filter(t=>t.id!==e)),S(null),a===e&&T()}catch(e){y(e instanceof Error?e.message:`Failed to delete tag`)}finally{m(!1)}}return(0,X.jsx)(re,{open:e,onOpenChange:t,children:(0,X.jsxs)(te,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Manage Tags`})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,X.jsx)(z,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&E(),e.key===`Escape`&&u(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:h}),(0,X.jsx)(N,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void E(),disabled:h||!l.trim(),children:h?(0,X.jsx)(j,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,X.jsx)(ce,{className:`min-h-0 flex-1`,children:(0,X.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=a===e.id,n=b===e.id;return(0,X.jsx)(`div`,{className:C(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!p&&`cursor-pointer`),onClick:()=>{!p&&!t&&!n&&w(e)},children:t?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(z,{value:s,onChange:e=>c(e.target.value),onKeyDown:t=>{t.key===`Enter`&&D(e.id),t.key===`Escape`&&T()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:p}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void D(e.id),disabled:p||!s.trim(),children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:T,disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:C(d.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void O(e.id),disabled:p,children:p?(0,X.jsx)(j,{className:`h-4 w-4 animate-spin`}):(0,X.jsx)(f,{className:`h-4 w-4`})}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>S(null),disabled:p,children:(0,X.jsx)(x,{className:`h-4 w-4`})})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:C(d.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,X.jsxs)(`span`,{className:C(d.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,X.jsx)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive opacity-0 pointer-events-none transition-opacity can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto can-hover:hover:text-destructive`,onClick:t=>{t.stopPropagation(),S(e.id)},disabled:p,"aria-label":`Delete ${e.name}`,children:(0,X.jsx)(v,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),_&&(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:_})]})})}var ot=`09:00`;function Z(e){return String(e).padStart(2,`0`)}function st(){let e=new Date(Date.now()+3600*1e3);return`${e.getFullYear()}-${Z(e.getMonth()+1)}-${Z(e.getDate())}T${Z(e.getHours())}:${Z(e.getMinutes())}`}function ct(){return{kind:`manual`,scheduleMode:`once`,scheduledAtLocal:st(),preset:`daily`,presetTime:ot,dayOfWeek:new Date().getDay(),timezone:h(),enabled:!0,eventKey:``}}function lt(e){let t=ct();if(e.triggerType===`schedule`){if(e.scheduleCron){let n=l(e.scheduleCron);return{kind:`schedule`,scheduleMode:`repeating`,scheduledAtLocal:t.scheduledAtLocal,preset:n?.preset??`daily`,presetTime:n?.time??ot,dayOfWeek:n?.dayOfWeek??new Date().getDay(),timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}if(e.scheduledAt){let n=new Date(e.scheduledAt);return{kind:`schedule`,scheduleMode:`once`,scheduledAtLocal:Number.isNaN(n.getTime())?t.scheduledAtLocal:`${n.getFullYear()}-${Z(n.getMonth()+1)}-${Z(n.getDate())}T${Z(n.getHours())}:${Z(n.getMinutes())}`,preset:t.preset,presetTime:t.presetTime,dayOfWeek:t.dayOfWeek,timezone:e.timezone??t.timezone,enabled:e.enabled!==!1,eventKey:``}}}return e.triggerType===`event`?{...t,kind:`event`,enabled:e.enabled!==!1,eventKey:e.eventKey??``}:t}function ut(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}function dt(e){return e.kind===`manual`?{triggerType:null,scheduledAt:null,scheduleCron:null,timezone:null,enabled:!0,eventKey:null}:e.kind===`event`?{triggerType:`event`,scheduledAt:null,scheduleCron:null,timezone:null,enabled:e.enabled,eventKey:e.eventKey.trim()||null}:e.scheduleMode===`once`?{triggerType:`schedule`,scheduledAt:ut(e.scheduledAtLocal),scheduleCron:null,timezone:e.timezone,enabled:e.enabled,eventKey:null}:{triggerType:`schedule`,scheduledAt:null,scheduleCron:m(e.preset,e.presetTime,e.dayOfWeek),timezone:e.timezone,enabled:e.enabled,eventKey:null}}function ft(e){return e.kind!==`manual`}function pt(e){return e.kind===`manual`?null:r(dt(e))}function mt(e){return e.replace(/^eventKey is required for event triggers$/,`Event key is required`).replace(/^eventKey must be (\d+) characters or fewer$/,`Event key must be $1 characters or fewer`).replace(/^eventKey may only contain letters, numbers, dots, colons, underscores, and hyphens$/,`Event key may only contain letters, numbers, dots, colons, underscores, and hyphens`)}function ht(e){return e.startsWith(`Event key`)}function gt(e,t){return JSON.stringify(e)===JSON.stringify(t)}var _t=[{value:`0`,label:`Sunday`},{value:`1`,label:`Monday`},{value:`2`,label:`Tuesday`},{value:`3`,label:`Wednesday`},{value:`4`,label:`Thursday`},{value:`5`,label:`Friday`},{value:`6`,label:`Saturday`}];function Q(e,t){return{...e,...t}}function vt(e){let t=(0,q.c)(42),{value:n,onChange:r,collapsed:i,onCollapsedChange:a,showCollapseControl:o,error:s}=e,c=i===void 0?!1:i,l=o===void 0?!1:o,u=s===void 0?null:s,f;t[0]!==r||t[1]!==n?(f=function(e){r(Q(n,{kind:e}))},t[0]=r,t[1]=n,t[2]=f):f=t[2];let p=f,m;t[3]!==r||t[4]!==n?(m=function(e){r(Q(n,{scheduleMode:e}))},t[3]=r,t[4]=n,t[5]=m):m=t[5];let h=m;if(l&&c){let e;return t[6]===a?e=t[7]:(e=(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(N,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a?.(!1),children:`Add schedule or event trigger`})}),t[6]=a,t[7]=e),e}let g;t[8]!==r||t[9]!==a||t[10]!==l||t[11]!==n?(g=l&&(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsx)(`p`,{className:C(d.label),children:`Trigger`}),(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-muted-foreground`,onClick:()=>{r(Q(n,{kind:`manual`})),a?.(!0)},children:[(0,X.jsx)(x,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Remove trigger`})]})]}),t[8]=r,t[9]=a,t[10]=l,t[11]=n,t[12]=g):g=t[12];let _;t[13]===p?_=t[14]:(_=e=>{(e===`manual`||e===`schedule`||e===`event`)&&p(e)},t[13]=p,t[14]=_);let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,X.jsx)(R,{value:`manual`,"aria-label":`Manual`,className:C(d.body,Ge),children:`Manual`}),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,X.jsx)(R,{value:`schedule`,"aria-label":`Schedule`,className:C(d.body,Ge),children:`Schedule`}),t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,X.jsx)(R,{value:`event`,"aria-label":`Event`,className:C(d.body,Ge),children:`Event`}),t[17]=b):b=t[17];let S;t[18]!==_||t[19]!==n.kind?(S=(0,X.jsxs)(ae,{type:`single`,value:n.kind,onValueChange:_,"aria-label":`Trigger type`,className:G,children:[v,y,b]}),t[18]=_,t[19]=n.kind,t[20]=S):S=t[20];let w;t[21]!==r||t[22]!==h||t[23]!==n?(w=n.kind===`schedule`&&(0,X.jsxs)(`div`,{className:`space-y-4 border-t border-border pt-4`,children:[(0,X.jsxs)(ae,{type:`single`,value:n.scheduleMode,onValueChange:e=>{(e===`once`||e===`repeating`)&&h(e)},"aria-label":`Schedule mode`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`once`,"aria-label":`Once`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Once`}),(0,X.jsx)(R,{value:`repeating`,"aria-label":`Repeating`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Repeating`})]}),n.scheduleMode===`once`?(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-once-at`,children:`Run at`}),(0,X.jsx)(z,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:e=>r(Q(n,{scheduledAtLocal:e.target.value}))})]}):(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Preset`}),(0,X.jsxs)(he,{value:n.preset,onValueChange:e=>r(Q(n,{preset:e})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsxs)(fe,{children:[(0,X.jsx)(se,{value:`daily`,children:`Daily`}),(0,X.jsx)(se,{value:`weekdays`,children:`Weekdays`}),(0,X.jsx)(se,{value:`weekly`,children:`Weekly`})]})]})]}),n.preset===`weekly`&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{children:`Day`}),(0,X.jsxs)(he,{value:String(n.dayOfWeek),onValueChange:e=>r(Q(n,{dayOfWeek:Number(e)})),children:[(0,X.jsx)(I,{children:(0,X.jsx)(_e,{})}),(0,X.jsx)(fe,{children:_t.map(function(e){return(0,X.jsx)(se,{value:e.value,children:e.label},e.value)})})]})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(L,{htmlFor:`schedule-time`,children:`Time`}),(0,X.jsx)(z,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r(Q(n,{presetTime:e.target.value}))})]})]}),(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]})]}),t[21]=r,t[22]=h,t[23]=n,t[24]=w):w=t[24];let T;t[25]!==u||t[26]!==r||t[27]!==n?(T=n.kind===`event`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{htmlFor:`event-key`,children:`Event Key`}),(0,X.jsx)(z,{id:`event-key`,value:n.eventKey,placeholder:`door.opened`,"aria-invalid":!!(u&&ht(u)),onChange:e=>r(Q(n,{eventKey:e.target.value}))}),u&&ht(u)?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):(0,X.jsxs)(`p`,{className:C(d.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,X.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]})]}),t[25]=u,t[26]=r,t[27]=n,t[28]=T):T=t[28];let E;t[29]!==u||t[30]!==n.kind?(E=u&&n.kind!==`event`?(0,X.jsx)(`p`,{className:C(d.caption,`text-destructive`),children:u}):null,t[29]=u,t[30]=n.kind,t[31]=E):E=t[31];let D;t[32]!==r||t[33]!==n?(D=n.kind!==`manual`&&(0,X.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-4`,children:[(0,X.jsx)(L,{children:`Status`}),(0,X.jsxs)(ae,{type:`single`,value:n.enabled?`active`:`paused`,onValueChange:e=>{(e===`active`||e===`paused`)&&r(Q(n,{enabled:e===`active`}))},"aria-label":`Trigger status`,className:`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,children:[(0,X.jsx)(R,{value:`active`,"aria-label":`Active`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Active`}),(0,X.jsx)(R,{value:`paused`,"aria-label":`Paused`,className:C(d.body,`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`),children:`Paused`})]})]}),t[32]=r,t[33]=n,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==w||t[37]!==T||t[38]!==E||t[39]!==D||t[40]!==g?(O=(0,X.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[g,S,w,T,E,D]}),t[35]=S,t[36]=w,t[37]=T,t[38]=E,t[39]=D,t[40]=g,t[41]=O):O=t[41],O}var $=k(`app.task-list.ui`);function yt(e){let t=(0,q.c)(28),{onSearchTermChange:r}=e,[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(``),c;t[0]===r?c=t[1]:(c=function(e){s(e),r(e)},t[0]=r,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=function(){s(``),r(``),a(!1)},t[2]=r,t[3]=u);let d=u,f;t[4]!==d||t[5]!==i?(f=()=>{i?d():a(!0)},t[4]=d,t[5]=i,t[6]=f):f=t[6];let p,m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,X.jsx)(n,{className:`h-4 w-4`}),m=(0,X.jsx)(`span`,{className:`sr-only`,children:`Search tasks`}),t[7]=p,t[8]=m):(p=t[7],m=t[8]);let h;t[9]!==i||t[10]!==f?(h=(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:f,"aria-expanded":i,children:[p,m]})}),t[9]=i,t[10]=f,t[11]=h):h=t[11];let g;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,X.jsx)(M,{children:`Search tasks`}),t[12]=g):g=t[12];let _;t[13]===h?_=t[14]:(_=(0,X.jsxs)(F,{children:[h,g]}),t[13]=h,t[14]=_);let v=i?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,y;t[15]===v?y=t[16]:(y=C(`overflow-hidden transition-[width,opacity] duration-200`,v),t[15]=v,t[16]=y);let b;t[17]!==d||t[18]!==l||t[19]!==i||t[20]!==o?(b=i&&(0,X.jsx)(z,{type:`search`,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&d()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[17]=d,t[18]=l,t[19]=i,t[20]=o,t[21]=b):b=t[21];let x;t[22]!==y||t[23]!==b?(x=(0,X.jsx)(`div`,{className:y,children:b}),t[22]=y,t[23]=b,t[24]=x):x=t[24];let S;return t[25]!==x||t[26]!==_?(S=(0,X.jsxs)(`div`,{className:`flex items-center`,children:[_,x]}),t[25]=x,t[26]=_,t[27]=S):S=t[27],S}function bt({projectId:e,onThreadSelect:n,initialTasks:r}){let a=ye(),o=V(e=>e.projects),s=V(e=>e.selectedThreadId),l=V(e=>e.processingThreadIds),u=V(e=>e.pendingChatMessage),f=V(e=>e.queuedChatMessages),p=V(e=>e.projectModelSelections),m=o.find(t=>t.projectId===e),h=m?.threads.find(e=>e.threadId===s),v=s?p[s]:void 0,[y,b]=(0,K.useState)(r),[x,S]=(0,K.useState)(!1),[T,E]=(0,K.useState)(null),[D,O]=(0,K.useState)(``),[k,P]=(0,K.useState)(!1),[I,ae]=(0,K.useState)([]),[L,oe]=(0,K.useState)(new Set),[se,fe]=(0,K.useState)(``),[R,he]=(0,K.useState)(!1),[ge,_e]=(0,K.useState)(!1),[z,ve]=(0,K.useState)([]),[be,xe]=(0,K.useState)([]),[Ce,we]=(0,K.useState)(ct),[H,Re]=(0,K.useState)(ct),[ze,Be]=(0,K.useState)(!0),[Ve,W]=(0,K.useState)(null),[Ge,G]=(0,K.useState)(null);(0,K.useEffect)(()=>{Pe(e).then(ae).catch(e=>$.error(`Failed to fetch project tags:`,e))},[e]);let{setActions:Ke}=Oe(),q=(0,K.useCallback)(function(e){oe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),qe=(0,K.useCallback)(async function(){_e(!0);try{await le(e),b(await Ee(e)),J(),Q(),ne();let t=await me();a({type:B.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){$.error(`Failed to refresh project tasks:`,e)}finally{_e(!1)}},[e,a]);(0,K.useEffect)(()=>(Ke((0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(yt,{onSearchTermChange:fe}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>void qe(),disabled:ge,children:[(0,X.jsx)(c,{className:C(`h-4 w-4`,ge&&`animate-spin`)}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,X.jsx)(M,{children:`Refresh`})]}),(0,X.jsxs)(Me,{children:[(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(je,{asChild:!0,children:(0,X.jsxs)(N,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,X.jsx)(i,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,X.jsx)(M,{children:`Tags`})]}),(0,X.jsxs)(We,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[I.length===0?(0,X.jsx)(U,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):I.map(function(e){return(0,X.jsxs)(Ne,{checked:L.has(e.id),onCheckedChange:()=>q(e.id),onSelect:e=>e.preventDefault(),children:[(0,X.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)}),(0,X.jsx)(Ae,{}),(0,X.jsxs)(U,{onClick:()=>he(!0),children:[(0,X.jsx)(t,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]})),()=>Ke(null)),[Ke,I,L,q,ge,qe]);function J(){Se(`project-tasks:${e}:`)}let Y=m?.tasksModifiedCount??0,Qe=(0,K.useRef)({});(0,K.useEffect)(()=>{let t=Qe.current[e]??0;if(Y===0){Qe.current[e]=0;return}t!==Y&&(Qe.current[e]=Y,Y>t&&qe())},[Y,e,qe]),(0,K.useEffect)(()=>{if(!y.some(e=>e.working))return;let t=setInterval(async()=>{try{let n=await Ee(e);b(n),n.some(e=>e.working)||clearInterval(t)}catch(e){$.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[y,e]),(0,K.useEffect)(()=>{b(r)},[r]),(0,K.useEffect)(()=>{x&&(O(``),ve([]),we(ct()),Be(!0))},[x]),(0,K.useEffect)(()=>{T&&(xe(T.task.tags??[]),Re(lt(T.task)))},[T]);function nt(e){b(t=>t.map(t=>t.id===e.id?e:t))}function ot(e){O(e.description),E({task:e}),G(null)}function Z(){E(null),O(``),G(null)}function st(e,t){if(e)return null;let n=pt(t);return n?mt(n):null}async function ut(){if(!D.trim())return;let t=st(ze,Ce);if(t){W(t);return}W(null),P(!0);try{let t=z.map(e=>e.name),n=ze?{}:dt(Ce),r=await Ue(e,D,{threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:t.length>0?t:void 0,...n});b(e=>[...e,r]),J(),Q(),S(!1),O(``),ve([]),W(null)}catch(e){W(mt(e instanceof Error?e.message:`Failed to add task`)),$.error(`Failed to add task:`,e)}finally{P(!1)}}async function ht(){if(!D.trim()||!T)return;let t=st(!ft(H),H);if(t){G(t);return}G(null),P(!0);try{let t=D.trim(),n=t!==T.task.description.trim(),r=be.map(e=>e.name),i=new Set((T.task.tags??[]).map(e=>A(e.name))),a=new Set(r.map(e=>A(e))),o=i.size!==a.size||[...a].some(e=>!i.has(e)),c=!gt(lt(T.task),H),l=c?dt(H):{};if(!n&&!o&&!c){Z();return}let u=await De(e,T.task.id,{description:n?t:void 0,threadId:s??void 0,provider:v?.provider??h?.modelProvider,model:v?.id??h?.model,tags:o?r:void 0,...l});b(e=>e.map(e=>e.id===u.id?u:e)),J(),o&&Q(),Z()}catch(e){G(mt(e instanceof Error?e.message:`Failed to save task`)),$.error(`Failed to save task:`,e)}finally{P(!1)}}async function _t(){if(T){P(!0);try{await He(e,T.task.id),b(e=>e.filter(e=>e.id!==T.task.id)),J(),Q(),Z()}catch(e){$.error(`Failed to delete task:`,e)}finally{P(!1)}}}function Q(){Pe(e).then(ae).catch(e=>$.error(`Failed to refresh project tags:`,e))}function bt(t){let n=new Set(t.map(function(e){return e.id}));ae(t),oe(function(e){return new Set([...e].filter(e=>n.has(e)))}),Ee(e).then(b).catch(e=>$.error(`Failed to refresh tasks after tag change:`,e))}async function xt(t){let r=await pe(e);if(!r)return;let i=null,o=null,s=await $e(r,n=>{o||(o=n,a({type:B.AddCreatingThread,projectId:e,threadId:n,title:Xe(m)}),a({type:B.AddProcessingThread,threadId:n})),De(e,t.id,{status:`Build`,working:!0,threadId:n}).then(e=>{i=e,nt(e)})});if(!s){o&&(a({type:B.RemoveCreatingThread,projectId:e,threadId:o}),a({type:B.RemoveProcessingThread,threadId:o}));return}a({type:B.RemoveProcessingThread,threadId:s});try{await Ze(a)}catch(e){$.error(`Failed to refresh projects after task thread creation:`,e)}await Le(e,t,`Build`,s,i,nt);let c=await ke(e,s);if(!c){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}Te(a,s,c.model,c.provider),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:c.model,provider:c.provider}})}async function St(t){if(!s){$.error(`No selected thread found for project task implementation.`);return}let r=await ke(e,s);if(!r){$.error(`No model configuration found. Please configure a model and provider for this project first.`);return}if(Te(a,s,r.model,r.provider),nt(await De(e,t.id,{status:`Build`,working:!0,threadId:s})),n?await n(s):a({type:B.SelectThread,threadId:s,projectId:e}),l.includes(s)||u?.threadId===s||f.some(e=>e.threadId===s)){a({type:B.EnqueueChatMessage,message:{id:_(),threadId:s,paneId:`primary`,message:t.description,model:r.model,attachments:[],provider:r.provider}});return}a({type:B.SetPendingChatMessage,message:{threadId:s,message:t.description,model:r.model,provider:r.provider}})}async function Ct(t){nt(await Fe(e,t.id)),J()}async function wt(t){nt(await De(e,t.id,{status:`Done`,working:!1})),J()}let Tt=Ye(y).filter(function(e){return e.status!==`Done`}),Et=se.trim().toLocaleLowerCase(),Dt=Tt.filter(e=>{let t=new Set((e.tags??[]).map(function(e){return e.id})),n=L.size===0||[...L].every(e=>t.has(e)),r=[e.title,e.description,...(e.tags??[]).map(function(e){return e.name})].join(` `).toLocaleLowerCase(),i=!Et||r.includes(Et);return n&&i});return(0,X.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,children:[(0,X.jsx)(ce,{className:`min-h-0 min-w-0 flex-1 overflow-hidden [&>[data-radix-scroll-area-viewport]>div]:block`,children:(0,X.jsx)(`div`,{className:`pb-14`,children:Tt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No active tasks yet. Add one to get started.`}):Dt.length===0?(0,X.jsx)(`p`,{className:C(d.bodyMuted,`px-4 py-8 text-center`),children:`No tasks match the current filters.`}):(0,X.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:Dt.map(e=>(0,X.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,X.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:()=>ot(e),children:[(0,X.jsx)(`p`,{className:C(d.label,`truncate leading-normal`),children:e.title}),(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),children:e.description}),Je(e)&&(0,X.jsx)(`p`,{className:C(d.caption,`mt-1 text-muted-foreground`),children:Je(e)}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]})]}),(0,X.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:()=>ot(e),children:(0,X.jsx)(`p`,{className:C(d.caption,`line-clamp-4 break-all text-muted-foreground`),children:e.description})}),(e.status!==`Ready`||(e.tags?.length??0)>0||e.modified)&&(0,X.jsxs)(`div`,{className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`,children:[e.status!==`Ready`&&(0,X.jsx)(rt,{status:e.status}),e.modified&&(0,X.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),e.tags?.map(function(e){return(0,X.jsx)(tt,{tag:e},e.id)})]}),(0,X.jsxs)(`div`,{className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start`,children:[e.threadId&&n&&(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>n(e.threadId),children:[(0,X.jsx)(w,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Open thread`})]})}),(0,X.jsx)(M,{children:`Open thread`})]}),(0,X.jsx)(et,{task:e,onImplementInNewThread:xt,onImplementInThisThread:St,onMarkDone:wt,onRunNow:Ct})]})]},e.id))})})}),(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsxs)(N,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-10 w-10 rounded-full shadow-lg`,onClick:()=>S(!0),children:[(0,X.jsx)(g,{className:`h-5 w-5`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Add task`})]})}),(0,X.jsx)(M,{children:`Add task`})]}),(0,X.jsx)(re,{open:x,onOpenChange:e=>{S(e),e||W(null)},children:(0,X.jsxs)(te,{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,X.jsx)(ee,{children:(0,X.jsxs)(F,{children:[(0,X.jsx)(ie,{asChild:!0,children:(0,X.jsx)(ue,{className:`w-fit cursor-help`,children:`Add Task`})}),(0,X.jsx)(M,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`})]})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(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)&&ut()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:z,existingTags:I,onChange:ve,allowCreate:!1})}),(0,X.jsx)(vt,{value:Ce,onChange:e=>{we(e),W(null)},collapsed:ze,onCollapsedChange:Be,showCollapseControl:!0,error:Ve})]}),(0,X.jsx)(de,{children:(0,X.jsx)(N,{onClick:()=>void ut(),disabled:k||!D.trim(),children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Generating title...`]}):`Add`})})]})}),(0,X.jsx)(re,{open:T!==null,onOpenChange:e=>!e&&Z(),children:(0,X.jsxs)(te,{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,X.jsx)(ee,{children:(0,X.jsx)(ue,{children:`Edit Task`})}),(0,X.jsxs)(`div`,{className:`py-2`,children:[(0,X.jsx)(Ie,{placeholder:`Describe what needs to be done...`,value:D,onChange:e=>O(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)&&ht()}}),(0,X.jsx)(`div`,{className:`mt-4`,children:(0,X.jsx)(it,{selectedTags:be,existingTags:I,onChange:xe,allowCreate:!1})}),(0,X.jsx)(vt,{value:H,onChange:e=>{Re(e),G(null)},showCollapseControl:!0,collapsed:!ft(H),onCollapsedChange:e=>{e&&Re(ct()),G(null)},error:Ge})]}),(0,X.jsxs)(de,{className:`flex-row justify-between gap-2 sm:gap-0`,children:[(0,X.jsx)(N,{variant:`destructive`,onClick:()=>void _t(),disabled:k,children:`Delete`}),(0,X.jsx)(N,{onClick:()=>void ht(),disabled:k||!D.trim(),className:`w-auto`,children:k?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(j,{className:`mr-1 h-3 w-3 animate-spin`}),`Saving...`]}):`Save`})]})]})}),(0,X.jsx)(at,{open:R,onOpenChange:he,projectId:e,tags:I,onTagsChanged:bt})]})}function xt(e){let t=(0,q.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=Y(r,n),t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;t[7]===r?o=t[8]:(o=()=>Qe(r),t[7]=r,t[8]=o);let s=Ce(a,o),c;return t[9]!==s||t[10]!==r||t[11]!==i?(c=(0,X.jsx)(bt,{projectId:r,initialTasks:s,...i}),t[9]=s,t[10]=r,t[11]=i,t[12]=c):c=t[12],c}function St(e){let t=(0,q.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,K.useState)(0),s,c;t[3]!==n.projectId||t[4]!==i?(s=()=>{i!==0&&o(e=>(xe(Y(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,K.useEffect)(s,c);let l;t[7]!==a||t[8]!==n.projectId?(l=function(){xe(Y(n.projectId,a)),o(Ct)},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,X.jsx)(oe,{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,X.jsx)(K.Suspense,{fallback:d,children:(0,X.jsx)(xt,{...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,X.jsx)(Ke,{fallbackTitle:`Failed to load tasks`,onRetry:u,children:p}),t[15]=u,t[16]=p,t[17]=m):m=t[17],m}function Ct(e){return e+1}var wt=k(`app.tasks-view.ui`);function Tt({projectId:e,refreshTrigger:t}){let n=ye(),r=V(e=>e.projects),i=V(e=>e.selectedThreadId),a=V(e=>e.selectedProjectId),{expandWindow:o,hasOpenWindows:s}=be();(0,K.useEffect)(()=>{let e=!1;return(async()=>{try{let{getProjects:t,invalidateProjectsCache:r}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-KBcwP-kU.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));r();let i=await t();e||n({type:B.SetProjects,projects:i.projects,cloneRootPath:i.cloneRootPath})}catch(e){wt.error(`Failed to refresh projects on tasks view mount:`,e)}})(),()=>{e=!0}},[n]);async function c(t){if(r.find(t=>t.projectId===e)){s&&o(D);try{let{getProjects:r,invalidateProjectsCache:o}=await ve(async()=>{let{getProjects:e,invalidateProjectsCache:t}=await import(`./onboarding-KBcwP-kU.js`).then(e=>e.Xt);return{getProjects:e,invalidateProjectsCache:t}},__vite__mapDeps([0,1,2]));o();let s=await r();n({type:B.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath});let c=s.projects.find(t=>t.projectId===e);if(c&&c.threads.find(e=>e.threadId===t)){(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after thread selection:`,e)}}}catch(r){wt.error(`Failed to refresh projects for thread selection:`,r),(i!==t||a!==e)&&n({type:B.SelectThread,threadId:t,projectId:e});try{let e=await ge();n({type:B.SetProcessingThreads,threadIds:e})}catch(e){wt.error(`Failed to fetch processing threads after fallback thread selection:`,e)}}}}return(0,X.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,X.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,X.jsx)(St,{projectId:e,refreshTrigger:t,onThreadSelect:c})})})}export{Tt as TasksView};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,i,ki as a}from"./interactive-BrHVRHmQ.js";import{Eo as o,Lr as s,ga as c}from"./onboarding-DVc9-yKJ.js";import{J as l,a as u,r as d}from"./store-B_cK-gsT.js";import{n as f}from"./main-tab-context-zQSuRQQG.js";import{n as p}from"./chat-dock-context-DyKjqpND.js";import{t as m}from"./use-active-dock-panel-instance-BlRDPUlZ.js";var h=e(a(),1),g=n(),_=2,v=1,ee=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(_,Math.floor(u/e.css.cell.width)),rows:Math.max(v,Math.floor(l/e.css.cell.height))}}},te=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=re.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function ne(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var re=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!ne(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}},ie=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function y(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var ae=class{constructor(e=y,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||ie;this._linkProvider=this._terminal.registerLinkProvider(new te(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},oe=Object.defineProperty,b=Object.getOwnPropertyDescriptor,se=(e,t)=>{for(var n in t)oe(e,n,{get:t[n],enumerable:!0})},x=(e,t,n,r)=>{for(var i=r>1?void 0:r?b(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&oe(t,n,i),i},S=(e,t)=>(n,r)=>t(n,r,e),ce=`Terminal input`,le={get:()=>ce,set:e=>ce=e},C=`Too much output to announce, navigate to rows manually to read`,ue={get:()=>C,set:e=>C=e};function de(e){return e.replace(/\r?\n/g,`\r`)}function fe(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function pe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function me(e,t,n,r){e.stopPropagation(),e.clipboardData&&w(e.clipboardData.getData(`text/plain`),t,n,r)}function w(e,t,n,r){e=de(e),e=fe(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function he(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ge(e,t,n,r,i){he(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function _e(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ve(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var ye=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},be=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},xe=``,Se=` `,Ce=class e{constructor(){this.fg=0,this.bg=0,this.extended=new we}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},we=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Te=class e extends Ce{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new we,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?_e(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Ee=`di$target`,De=`di$dependencies`,Oe=new Map;function ke(e){return e[De]||[]}function T(e){if(Oe.has(e))return Oe.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Ae(t,e,r)};return t._id=e,Oe.set(e,t),t}function Ae(e,t,n){t[Ee]===t?t[De].push({id:e,index:n}):(t[De]=[{id:e,index:n}],t[Ee]=t)}var E=T(`BufferService`),je=T(`CoreMouseService`),Me=T(`CoreService`),Ne=T(`CharsetService`),Pe=T(`InstantiationService`),Fe=T(`LogService`),D=T(`OptionsService`),Ie=T(`OscLinkService`),Le=T(`UnicodeService`),Re=T(`DecorationService`),ze=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Te,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Be(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};ze=x([S(0,E),S(1,D),S(2,Ie)],ze);function Be(e,t){if(confirm(`Do you want to navigate to ${t}?
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Di as t,Oi as n,Rr as r,i,ki as a}from"./interactive-BrHVRHmQ.js";import{Eo as o,Lr as s,ga as c}from"./onboarding-KBcwP-kU.js";import{J as l,a as u,r as d}from"./store-B_cK-gsT.js";import{n as f}from"./main-tab-context-zQSuRQQG.js";import{n as p}from"./chat-dock-context-Gg1jpamu.js";import{t as m}from"./use-active-dock-panel-instance-B9ao_JH2.js";var h=e(a(),1),g=n(),_=2,v=1,ee=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(_,Math.floor(u/e.css.cell.width)),rows:Math.max(v,Math.floor(l/e.css.cell.height))}}},te=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=re.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function ne(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var re=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!ne(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}},ie=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function y(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var ae=class{constructor(e=y,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||ie;this._linkProvider=this._terminal.registerLinkProvider(new te(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},oe=Object.defineProperty,b=Object.getOwnPropertyDescriptor,se=(e,t)=>{for(var n in t)oe(e,n,{get:t[n],enumerable:!0})},x=(e,t,n,r)=>{for(var i=r>1?void 0:r?b(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&oe(t,n,i),i},S=(e,t)=>(n,r)=>t(n,r,e),ce=`Terminal input`,le={get:()=>ce,set:e=>ce=e},C=`Too much output to announce, navigate to rows manually to read`,ue={get:()=>C,set:e=>C=e};function de(e){return e.replace(/\r?\n/g,`\r`)}function fe(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function pe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function me(e,t,n,r){e.stopPropagation(),e.clipboardData&&w(e.clipboardData.getData(`text/plain`),t,n,r)}function w(e,t,n,r){e=de(e),e=fe(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function he(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ge(e,t,n,r,i){he(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function _e(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ve(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var ye=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},be=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},xe=``,Se=` `,Ce=class e{constructor(){this.fg=0,this.bg=0,this.extended=new we}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},we=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Te=class e extends Ce{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new we,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?_e(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Ee=`di$target`,De=`di$dependencies`,Oe=new Map;function ke(e){return e[De]||[]}function T(e){if(Oe.has(e))return Oe.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Ae(t,e,r)};return t._id=e,Oe.set(e,t),t}function Ae(e,t,n){t[Ee]===t?t[De].push({id:e,index:n}):(t[De]=[{id:e,index:n}],t[Ee]=t)}var E=T(`BufferService`),je=T(`CoreMouseService`),Me=T(`CoreService`),Ne=T(`CharsetService`),Pe=T(`InstantiationService`),Fe=T(`LogService`),D=T(`OptionsService`),Ie=T(`OscLinkService`),Le=T(`UnicodeService`),Re=T(`DecorationService`),ze=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Te,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Be(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};ze=x([S(0,E),S(1,D),S(2,Ie)],ze);function Be(e,t){if(confirm(`Do you want to navigate to ${t}?
2
2
 
3
3
  WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var Ve=T(`CharSizeService`),He=T(`CoreBrowserService`),Ue=T(`MouseService`),We=T(`RenderService`),Ge=T(`SelectionService`),Ke=T(`CharacterJoinerService`),qe=T(`ThemeService`),Je=T(`LinkProviderService`),Ye=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?tt.isErrorNoTelemetry(e)?new tt(e.message+`
4
4
 
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";import{Ao as n,C as r,F as i,I as a,It as o,L as s,N as c}from"./onboarding-DVc9-yKJ.js";var l=1,u=.9,d=.8,f=.17,p=.1,m=.999,h=.9999,g=.99,_=/[\\\/_+.#"@\[\(\{&]/,v=/[\\\/_+.#"@\[\(\{&]/g,y=/[\s-]/,b=/[\s-]/g;function x(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?l:g;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),S=n.indexOf(c,i),C=0,w,T,E,D;S>=0;)w=x(e,t,n,r,S+1,a+1,o),w>C&&(S===i?w*=l:_.test(e.charAt(S-1))?(w*=d,E=e.slice(i,S-1).match(v),E&&i>0&&(w*=m**+E.length)):y.test(e.charAt(S-1))?(w*=u,D=e.slice(i,S-1).match(b),D&&i>0&&(w*=m**+D.length)):(w*=f,i>0&&(w*=m**+(S-i))),e.charAt(S)!==t.charAt(a)&&(w*=h)),(w<p&&n.charAt(S-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(S-1)!==r.charAt(a))&&(T=x(e,t,n,r,S+1,a+2,o),T*p>w&&(w=T*p)),w>C&&(C=w),S=n.indexOf(c,S+1);return o[s]=C,C}function S(e){return e.toLowerCase().replace(b,` `)}function C(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,x(e,t,S(e),S(t),0,0,{})}var w=e(t(),1),T=`[cmdk-group=""]`,E=`[cmdk-group-items=""]`,D=`[cmdk-group-heading=""]`,O=`[cmdk-item=""]`,k=`${O}:not([aria-disabled="true"])`,A=`cmdk-item-select`,j=`data-value`,ee=(e,t,n)=>C(e,t,n),M=w.createContext(void 0),N=()=>w.useContext(M),P=w.createContext(void 0),F=()=>w.useContext(P),I=w.createContext(void 0),L=w.forwardRef((e,t)=>{let n=Y(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),i=Y(()=>new Set),a=Y(()=>new Map),s=Y(()=>new Map),c=Y(()=>new Set),l=q(e),{label:u,children:d,value:f,onValueChange:p,filter:m,shouldFilter:h,loop:g,disablePointerSelection:_=!1,vimBindings:v=!0,...y}=e,b=o(),x=o(),S=o(),C=w.useRef(null),N=re();J(()=>{if(f!==void 0){let e=f.trim();n.current.value=e,F.emit()}},[f]),J(()=>{N(6,V)},[]);let F=w.useMemo(()=>({subscribe:e=>(c.current.add(e),()=>c.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)B(),R(),N(1,z);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(S);e?e.focus():(i=document.getElementById(b))==null||i.focus()}if(N(7,()=>{n.current.selectedItemId=H()?.id,F.emit()}),r||N(5,V),l.current?.value!==void 0){let e=t??``;(o=(a=l.current).onValueChange)==null||o.call(a,e);return}}F.emit()}},emit:()=>{c.current.forEach(e=>e())}}),[]),I=w.useMemo(()=>({value:(e,t,r)=>{t!==s.current.get(e)?.value&&(s.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,L(t,r)),N(2,()=>{R(),F.emit()}))},item:(e,t)=>(i.current.add(e),t&&(a.current.has(t)?a.current.get(t).add(e):a.current.set(t,new Set([e]))),N(3,()=>{B(),R(),n.current.value||z(),F.emit()}),()=>{s.current.delete(e),i.current.delete(e),n.current.filtered.items.delete(e);let t=H();N(4,()=>{B(),t?.getAttribute(`id`)===e&&z(),F.emit()})}),group:e=>(a.current.has(e)||a.current.set(e,new Set),()=>{s.current.delete(e),a.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e[`aria-label`],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:b,inputId:S,labelId:x,listInnerRef:C}),[]);function L(e,t){let r=l.current?.filter??ee;return e?r(e,n.current.search,t):0}function R(){if(!n.current.search||l.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=a.current.get(n),i=0;r.forEach(t=>{let n=e.get(t);i=Math.max(n,i)}),t.push([n,i])});let r=C.current;U().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(E);t?t.appendChild(e.parentElement===t?e:e.closest(`${E} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${E} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=C.current?.querySelector(`${T}[${j}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function z(){let e=U().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(j);F.setState(`value`,e||void 0)}function B(){if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=i.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of i.current){let r=L(s.current.get(t)?.value??``,s.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of a.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function V(){var e;let t=H();t&&(t.parentElement?.firstChild===t&&((e=t.closest(T)?.querySelector(D))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function H(){return C.current?.querySelector(`${O}[aria-selected="true"]`)}function U(){return Array.from(C.current?.querySelectorAll(k)||[])}function W(e){let t=U()[e];t&&F.setState(`value`,t.getAttribute(j))}function G(e){var t;let n=H(),r=U(),i=r.findIndex(e=>e===n),a=r[i+e];(t=l.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&F.setState(`value`,a.getAttribute(j))}function K(e){let t=H()?.closest(T),n;for(;t&&!n;)t=e>0?te(t,T):ne(t,T),n=t?.querySelector(k);n?F.setState(`value`,n.getAttribute(j)):G(e)}let X=()=>W(U().length-1),Z=e=>{e.preventDefault(),e.metaKey?X():e.altKey?K(1):G(1)},Q=e=>{e.preventDefault(),e.metaKey?W(0):e.altKey?K(-1):G(-1)};return w.createElement(r.div,{ref:t,tabIndex:-1,...y,"cmdk-root":``,onKeyDown:e=>{var t;(t=y.onKeyDown)==null||t.call(y,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:v&&e.ctrlKey&&Z(e);break;case`ArrowDown`:Z(e);break;case`p`:case`k`:v&&e.ctrlKey&&Q(e);break;case`ArrowUp`:Q(e);break;case`Home`:e.preventDefault(),W(0);break;case`End`:e.preventDefault(),X();break;case`Enter`:{e.preventDefault();let t=H();if(t){let e=new Event(A);t.dispatchEvent(e)}}}}},w.createElement(`label`,{"cmdk-label":``,htmlFor:I.inputId,id:I.labelId,style:ie},u),$(e,e=>w.createElement(P.Provider,{value:F},w.createElement(M.Provider,{value:I},e))))}),R=w.forwardRef((e,t)=>{let i=o(),a=w.useRef(null),s=w.useContext(I),c=N(),l=q(e),u=l.current?.forceMount??s?.forceMount;J(()=>{if(!u)return c.item(i,s?.id)},[u]);let d=Z(i,a,[e.value,e.children,a],e.keywords),f=F(),p=X(e=>e.value&&e.value===d.current),m=X(e=>u||c.filter()===!1?!0:e.search?e.filtered.items.get(i)>0:!0);w.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(A,h),()=>t.removeEventListener(A,h)},[m,e.onSelect,e.disabled]);function h(){var e,t;g(),(t=(e=l.current).onSelect)==null||t.call(e,d.current)}function g(){f.setState(`value`,d.current,!0)}if(!m)return null;let{disabled:_,value:v,onSelect:y,forceMount:b,keywords:x,...S}=e;return w.createElement(r.div,{ref:n(a,t),...S,id:i,"cmdk-item":``,role:`option`,"aria-disabled":!!_,"aria-selected":!!p,"data-disabled":!!_,"data-selected":!!p,onPointerMove:_||c.getDisablePointerSelection()?void 0:g,onClick:_?void 0:h},e.children)}),z=w.forwardRef((e,t)=>{let{heading:i,children:a,forceMount:s,...c}=e,l=o(),u=w.useRef(null),d=w.useRef(null),f=o(),p=N(),m=X(e=>s||p.filter()===!1?!0:e.search?e.filtered.groups.has(l):!0);J(()=>p.group(l),[]),Z(l,u,[e.value,e.heading,d]);let h=w.useMemo(()=>({id:l,forceMount:s}),[s]);return w.createElement(r.div,{ref:n(u,t),...c,"cmdk-group":``,role:`presentation`,hidden:m?void 0:!0},i&&w.createElement(`div`,{ref:d,"cmdk-group-heading":``,"aria-hidden":!0,id:f},i),$(e,e=>w.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":i?f:void 0},w.createElement(I.Provider,{value:h},e))))}),B=w.forwardRef((e,t)=>{let{alwaysRender:i,...a}=e,o=w.useRef(null),s=X(e=>!e.search);return!i&&!s?null:w.createElement(r.div,{ref:n(o,t),...a,"cmdk-separator":``,role:`separator`})}),V=w.forwardRef((e,t)=>{let{onValueChange:n,...i}=e,a=e.value!=null,o=F(),s=X(e=>e.search),c=X(e=>e.selectedItemId),l=N();return w.useEffect(()=>{e.value!=null&&o.setState(`search`,e.value)},[e.value]),w.createElement(r.input,{ref:t,...i,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":c,id:l.inputId,type:`text`,value:a?e.value:s,onChange:e=>{a||o.setState(`search`,e.target.value),n?.(e.target.value)}})}),H=w.forwardRef((e,t)=>{let{children:i,label:a=`Suggestions`,...o}=e,s=w.useRef(null),c=w.useRef(null),l=X(e=>e.selectedItemId),u=N();return w.useEffect(()=>{if(c.current&&s.current){let e=c.current,t=s.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),w.createElement(r.div,{ref:n(s,t),...o,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":l,"aria-label":a,id:u.listId},$(e,e=>w.createElement(`div`,{ref:n(c,u.listInnerRef),"cmdk-list-sizer":``},e)))}),U=w.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:l,container:u,...d}=e;return w.createElement(s,{open:n,onOpenChange:r},w.createElement(a,{container:u},w.createElement(i,{"cmdk-overlay":``,className:o}),w.createElement(c,{"aria-label":e.label,"cmdk-dialog":``,className:l},w.createElement(L,{ref:t,...d}))))}),W=w.forwardRef((e,t)=>X(e=>e.filtered.count===0)?w.createElement(r.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),G=w.forwardRef((e,t)=>{let{progress:n,children:i,label:a=`Loading...`,...o}=e;return w.createElement(r.div,{ref:t,...o,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},$(e,e=>w.createElement(`div`,{"aria-hidden":!0},e)))}),K=Object.assign(L,{List:H,Item:R,Input:V,Group:z,Separator:B,Dialog:U,Empty:W,Loading:G});function te(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function ne(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function q(e){let t=w.useRef(e);return J(()=>{t.current=e}),t}var J=typeof window>`u`?w.useEffect:w.useLayoutEffect;function Y(e){let t=w.useRef();return t.current===void 0&&(t.current=e()),t}function X(e){let t=F(),n=()=>e(t.snapshot());return w.useSyncExternalStore(t.subscribe,n,n)}function Z(e,t,n,r=[]){let i=w.useRef(),a=N();return J(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(j,s),i.current=s}),i}var re=()=>{let[e,t]=w.useState(),n=Y(()=>new Map);return J(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Q(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $({asChild:e,children:t},n){return e&&w.isValidElement(t)?w.cloneElement(Q(t),{ref:t.ref},n(t.props.children)):n(t)}var ie={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};export{K as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";import{Ao as n,C as r,F as i,I as a,It as o,L as s,N as c}from"./onboarding-KBcwP-kU.js";var l=1,u=.9,d=.8,f=.17,p=.1,m=.999,h=.9999,g=.99,_=/[\\\/_+.#"@\[\(\{&]/,v=/[\\\/_+.#"@\[\(\{&]/g,y=/[\s-]/,b=/[\s-]/g;function x(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?l:g;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),S=n.indexOf(c,i),C=0,w,T,E,D;S>=0;)w=x(e,t,n,r,S+1,a+1,o),w>C&&(S===i?w*=l:_.test(e.charAt(S-1))?(w*=d,E=e.slice(i,S-1).match(v),E&&i>0&&(w*=m**+E.length)):y.test(e.charAt(S-1))?(w*=u,D=e.slice(i,S-1).match(b),D&&i>0&&(w*=m**+D.length)):(w*=f,i>0&&(w*=m**+(S-i))),e.charAt(S)!==t.charAt(a)&&(w*=h)),(w<p&&n.charAt(S-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(S-1)!==r.charAt(a))&&(T=x(e,t,n,r,S+1,a+2,o),T*p>w&&(w=T*p)),w>C&&(C=w),S=n.indexOf(c,S+1);return o[s]=C,C}function S(e){return e.toLowerCase().replace(b,` `)}function C(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,x(e,t,S(e),S(t),0,0,{})}var w=e(t(),1),T=`[cmdk-group=""]`,E=`[cmdk-group-items=""]`,D=`[cmdk-group-heading=""]`,O=`[cmdk-item=""]`,k=`${O}:not([aria-disabled="true"])`,A=`cmdk-item-select`,j=`data-value`,ee=(e,t,n)=>C(e,t,n),M=w.createContext(void 0),N=()=>w.useContext(M),P=w.createContext(void 0),F=()=>w.useContext(P),I=w.createContext(void 0),L=w.forwardRef((e,t)=>{let n=Y(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),i=Y(()=>new Set),a=Y(()=>new Map),s=Y(()=>new Map),c=Y(()=>new Set),l=q(e),{label:u,children:d,value:f,onValueChange:p,filter:m,shouldFilter:h,loop:g,disablePointerSelection:_=!1,vimBindings:v=!0,...y}=e,b=o(),x=o(),S=o(),C=w.useRef(null),N=re();J(()=>{if(f!==void 0){let e=f.trim();n.current.value=e,F.emit()}},[f]),J(()=>{N(6,V)},[]);let F=w.useMemo(()=>({subscribe:e=>(c.current.add(e),()=>c.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)B(),R(),N(1,z);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(S);e?e.focus():(i=document.getElementById(b))==null||i.focus()}if(N(7,()=>{n.current.selectedItemId=H()?.id,F.emit()}),r||N(5,V),l.current?.value!==void 0){let e=t??``;(o=(a=l.current).onValueChange)==null||o.call(a,e);return}}F.emit()}},emit:()=>{c.current.forEach(e=>e())}}),[]),I=w.useMemo(()=>({value:(e,t,r)=>{t!==s.current.get(e)?.value&&(s.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,L(t,r)),N(2,()=>{R(),F.emit()}))},item:(e,t)=>(i.current.add(e),t&&(a.current.has(t)?a.current.get(t).add(e):a.current.set(t,new Set([e]))),N(3,()=>{B(),R(),n.current.value||z(),F.emit()}),()=>{s.current.delete(e),i.current.delete(e),n.current.filtered.items.delete(e);let t=H();N(4,()=>{B(),t?.getAttribute(`id`)===e&&z(),F.emit()})}),group:e=>(a.current.has(e)||a.current.set(e,new Set),()=>{s.current.delete(e),a.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e[`aria-label`],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:b,inputId:S,labelId:x,listInnerRef:C}),[]);function L(e,t){let r=l.current?.filter??ee;return e?r(e,n.current.search,t):0}function R(){if(!n.current.search||l.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=a.current.get(n),i=0;r.forEach(t=>{let n=e.get(t);i=Math.max(n,i)}),t.push([n,i])});let r=C.current;U().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(E);t?t.appendChild(e.parentElement===t?e:e.closest(`${E} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${E} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=C.current?.querySelector(`${T}[${j}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function z(){let e=U().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(j);F.setState(`value`,e||void 0)}function B(){if(!n.current.search||l.current.shouldFilter===!1){n.current.filtered.count=i.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of i.current){let r=L(s.current.get(t)?.value??``,s.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of a.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function V(){var e;let t=H();t&&(t.parentElement?.firstChild===t&&((e=t.closest(T)?.querySelector(D))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function H(){return C.current?.querySelector(`${O}[aria-selected="true"]`)}function U(){return Array.from(C.current?.querySelectorAll(k)||[])}function W(e){let t=U()[e];t&&F.setState(`value`,t.getAttribute(j))}function G(e){var t;let n=H(),r=U(),i=r.findIndex(e=>e===n),a=r[i+e];(t=l.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&F.setState(`value`,a.getAttribute(j))}function K(e){let t=H()?.closest(T),n;for(;t&&!n;)t=e>0?te(t,T):ne(t,T),n=t?.querySelector(k);n?F.setState(`value`,n.getAttribute(j)):G(e)}let X=()=>W(U().length-1),Z=e=>{e.preventDefault(),e.metaKey?X():e.altKey?K(1):G(1)},Q=e=>{e.preventDefault(),e.metaKey?W(0):e.altKey?K(-1):G(-1)};return w.createElement(r.div,{ref:t,tabIndex:-1,...y,"cmdk-root":``,onKeyDown:e=>{var t;(t=y.onKeyDown)==null||t.call(y,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:v&&e.ctrlKey&&Z(e);break;case`ArrowDown`:Z(e);break;case`p`:case`k`:v&&e.ctrlKey&&Q(e);break;case`ArrowUp`:Q(e);break;case`Home`:e.preventDefault(),W(0);break;case`End`:e.preventDefault(),X();break;case`Enter`:{e.preventDefault();let t=H();if(t){let e=new Event(A);t.dispatchEvent(e)}}}}},w.createElement(`label`,{"cmdk-label":``,htmlFor:I.inputId,id:I.labelId,style:ie},u),$(e,e=>w.createElement(P.Provider,{value:F},w.createElement(M.Provider,{value:I},e))))}),R=w.forwardRef((e,t)=>{let i=o(),a=w.useRef(null),s=w.useContext(I),c=N(),l=q(e),u=l.current?.forceMount??s?.forceMount;J(()=>{if(!u)return c.item(i,s?.id)},[u]);let d=Z(i,a,[e.value,e.children,a],e.keywords),f=F(),p=X(e=>e.value&&e.value===d.current),m=X(e=>u||c.filter()===!1?!0:e.search?e.filtered.items.get(i)>0:!0);w.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(A,h),()=>t.removeEventListener(A,h)},[m,e.onSelect,e.disabled]);function h(){var e,t;g(),(t=(e=l.current).onSelect)==null||t.call(e,d.current)}function g(){f.setState(`value`,d.current,!0)}if(!m)return null;let{disabled:_,value:v,onSelect:y,forceMount:b,keywords:x,...S}=e;return w.createElement(r.div,{ref:n(a,t),...S,id:i,"cmdk-item":``,role:`option`,"aria-disabled":!!_,"aria-selected":!!p,"data-disabled":!!_,"data-selected":!!p,onPointerMove:_||c.getDisablePointerSelection()?void 0:g,onClick:_?void 0:h},e.children)}),z=w.forwardRef((e,t)=>{let{heading:i,children:a,forceMount:s,...c}=e,l=o(),u=w.useRef(null),d=w.useRef(null),f=o(),p=N(),m=X(e=>s||p.filter()===!1?!0:e.search?e.filtered.groups.has(l):!0);J(()=>p.group(l),[]),Z(l,u,[e.value,e.heading,d]);let h=w.useMemo(()=>({id:l,forceMount:s}),[s]);return w.createElement(r.div,{ref:n(u,t),...c,"cmdk-group":``,role:`presentation`,hidden:m?void 0:!0},i&&w.createElement(`div`,{ref:d,"cmdk-group-heading":``,"aria-hidden":!0,id:f},i),$(e,e=>w.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":i?f:void 0},w.createElement(I.Provider,{value:h},e))))}),B=w.forwardRef((e,t)=>{let{alwaysRender:i,...a}=e,o=w.useRef(null),s=X(e=>!e.search);return!i&&!s?null:w.createElement(r.div,{ref:n(o,t),...a,"cmdk-separator":``,role:`separator`})}),V=w.forwardRef((e,t)=>{let{onValueChange:n,...i}=e,a=e.value!=null,o=F(),s=X(e=>e.search),c=X(e=>e.selectedItemId),l=N();return w.useEffect(()=>{e.value!=null&&o.setState(`search`,e.value)},[e.value]),w.createElement(r.input,{ref:t,...i,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":c,id:l.inputId,type:`text`,value:a?e.value:s,onChange:e=>{a||o.setState(`search`,e.target.value),n?.(e.target.value)}})}),H=w.forwardRef((e,t)=>{let{children:i,label:a=`Suggestions`,...o}=e,s=w.useRef(null),c=w.useRef(null),l=X(e=>e.selectedItemId),u=N();return w.useEffect(()=>{if(c.current&&s.current){let e=c.current,t=s.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),w.createElement(r.div,{ref:n(s,t),...o,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":l,"aria-label":a,id:u.listId},$(e,e=>w.createElement(`div`,{ref:n(c,u.listInnerRef),"cmdk-list-sizer":``},e)))}),U=w.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:l,container:u,...d}=e;return w.createElement(s,{open:n,onOpenChange:r},w.createElement(a,{container:u},w.createElement(i,{"cmdk-overlay":``,className:o}),w.createElement(c,{"aria-label":e.label,"cmdk-dialog":``,className:l},w.createElement(L,{ref:t,...d}))))}),W=w.forwardRef((e,t)=>X(e=>e.filtered.count===0)?w.createElement(r.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),G=w.forwardRef((e,t)=>{let{progress:n,children:i,label:a=`Loading...`,...o}=e;return w.createElement(r.div,{ref:t,...o,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},$(e,e=>w.createElement(`div`,{"aria-hidden":!0},e)))}),K=Object.assign(L,{List:H,Item:R,Input:V,Group:z,Separator:B,Dialog:U,Empty:W,Loading:G});function te(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function ne(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function q(e){let t=w.useRef(e);return J(()=>{t.current=e}),t}var J=typeof window>`u`?w.useEffect:w.useLayoutEffect;function Y(e){let t=w.useRef();return t.current===void 0&&(t.current=e()),t}function X(e){let t=F(),n=()=>e(t.snapshot());return w.useSyncExternalStore(t.subscribe,n,n)}function Z(e,t,n,r=[]){let i=w.useRef(),a=N();return J(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(j,s),i.current=s}),i}var re=()=>{let[e,t]=w.useState(),n=Y(()=>new Map);return J(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Q(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $({asChild:e,children:t},n){return e&&w.isValidElement(t)?w.cloneElement(Q(t),{ref:t.ref},n(t.props.children)):n(t)}var ie={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};export{K as t};
@@ -1 +1 @@
1
- import{Oi as e}from"./interactive-BrHVRHmQ.js";import{n as t}from"./chat-dock-context-DyKjqpND.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
1
+ import{Oi as e}from"./interactive-BrHVRHmQ.js";import{n as t}from"./chat-dock-context-Gg1jpamu.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";import{En as n,Or as r,Sn as i,lr as a}from"./onboarding-DVc9-yKJ.js";import{J as o,n as s,r as c}from"./store-B_cK-gsT.js";import{t as l}from"./use-toast-hxHsVv6a.js";import{n as u}from"./explorer-tab-context-BdjTEbFh.js";import{Nt as d,q as f}from"./index-B0xy4BkI.js";var p=e(t(),1);function m({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:m=``,sortByName:h=!1,removedToastTitle:g}){let _=s(),v=c(e=>e.projects),y=c(e=>e.selectedProjectId),b=c(e=>e.selectedThreadId),{handleSelectThread:x}=f(),{openChatDockPanel:S}=d(),{setPendingExplorerPath:C,triggerExplorerRefresh:w,setExplorerClearPath:T}=u(),[E,D]=(0,p.useState)([]),[O,k]=(0,p.useState)(!0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(new Set),I=(0,p.useCallback)(async()=>{if(!y){k(!1);return}k(!0);try{let n=e(await a(y));if(b)try{let t=e(await r(b)),i=new Set(n.map(e=>e.path));for(let e of t)i.has(e.path)||n.push(e)}catch{}h&&(n=[...n].sort((e,t)=>e.name.localeCompare(t.name))),D(n),F(new Set(n.map(e=>`${e.path}${t}`)))}catch{D([]),F(new Set)}finally{k(!1)}},[y,b,e,t,h]);return(0,p.useLayoutEffect)(()=>{y&&k(!0)},[y,b]),(0,p.useEffect)(()=>{I()},[I]),{selectedProjectId:y,selectedThreadId:b,items:E,loading:O,deleteConfirm:A,setDeleteConfirm:j,deleting:M,installedFilePaths:P,setInstalledFilePaths:F,loadItems:I,handleDelete:(0,p.useCallback)(async e=>{if(!y)return;let r=e.name,a=e.path;N(!0);try{try{await i(y,a)}catch{if(b)await n(b,a);else throw Error(`No thread selected to delete from`)}T(a),w(),F(e=>{let n=new Set(e);return n.delete(`${a}${t}`),n}),l({title:g,description:r}),j(null),await I()}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{N(!1)}},[y,b,I,w,T,t,g]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!y)return;let t=v.find(e=>e.projectId===y);if(t){if(_({type:o.OpenProjectPanel,projectId:y}),!t.threads.some(e=>e.threadId===b)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&x(y,e.threadId)}C(`${e}${m}`),S(`explorer`)}},[y,b,v,_,x,C,S,m]),triggerExplorerRefresh:w}}export{m as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ki as t}from"./interactive-BrHVRHmQ.js";import{En as n,Or as r,Sn as i,lr as a}from"./onboarding-KBcwP-kU.js";import{J as o,n as s,r as c}from"./store-B_cK-gsT.js";import{t as l}from"./use-toast-hxHsVv6a.js";import{n as u}from"./explorer-tab-context-BdjTEbFh.js";import{Nt as d,q as f}from"./index-CJCQ4bTo.js";var p=e(t(),1);function m({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:m=``,sortByName:h=!1,removedToastTitle:g}){let _=s(),v=c(e=>e.projects),y=c(e=>e.selectedProjectId),b=c(e=>e.selectedThreadId),{handleSelectThread:x}=f(),{openChatDockPanel:S}=d(),{setPendingExplorerPath:C,triggerExplorerRefresh:w,setExplorerClearPath:T}=u(),[E,D]=(0,p.useState)([]),[O,k]=(0,p.useState)(!0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(new Set),I=(0,p.useCallback)(async()=>{if(!y){k(!1);return}k(!0);try{let n=e(await a(y));if(b)try{let t=e(await r(b)),i=new Set(n.map(e=>e.path));for(let e of t)i.has(e.path)||n.push(e)}catch{}h&&(n=[...n].sort((e,t)=>e.name.localeCompare(t.name))),D(n),F(new Set(n.map(e=>`${e.path}${t}`)))}catch{D([]),F(new Set)}finally{k(!1)}},[y,b,e,t,h]);return(0,p.useLayoutEffect)(()=>{y&&k(!0)},[y,b]),(0,p.useEffect)(()=>{I()},[I]),{selectedProjectId:y,selectedThreadId:b,items:E,loading:O,deleteConfirm:A,setDeleteConfirm:j,deleting:M,installedFilePaths:P,setInstalledFilePaths:F,loadItems:I,handleDelete:(0,p.useCallback)(async e=>{if(!y)return;let r=e.name,a=e.path;N(!0);try{try{await i(y,a)}catch{if(b)await n(b,a);else throw Error(`No thread selected to delete from`)}T(a),w(),F(e=>{let n=new Set(e);return n.delete(`${a}${t}`),n}),l({title:g,description:r}),j(null),await I()}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{N(!1)}},[y,b,I,w,T,t,g]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!y)return;let t=v.find(e=>e.projectId===y);if(t){if(_({type:o.OpenProjectPanel,projectId:y}),!t.threads.some(e=>e.threadId===b)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&x(y,e.threadId)}C(`${e}${m}`),S(`explorer`)}},[y,b,v,_,x,C,S,m]),triggerExplorerRefresh:w}}export{m as t};
@@ -1 +1 @@
1
- import{Ot as e,h as t,m as n,p as r}from"./index-B0xy4BkI.js";var i=class extends e{async stopAndHideScanner(){console.log(window.OSBarcodeWebScanner),window.OSBarcodeWebScanner&&(await window.OSBarcodeWebScanner.stop(),window.OSBarcodeWebScanner=null),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`none`}buildScannerElement(){if(document.getElementById(`cap-os-barcode-scanner-container`)){document.getElementById(`cap-os-barcode-scanner-container`).className=`scanner-container-display`;return}let e=document.body.appendChild(document.createElement(`div`));e.id=`cap-os-barcode-scanner-container`;let t=document.createElement(`div`);t.id=`cap-os-barcode-scanner-container-dialog`,t.className=`scanner-dialog`;let n=document.createElement(`div`);n.className=`scanner-dialog-inner`;let r=document.createElement(`span`);r.id=`cap-os-barcode-scanner-close-button`,r.className=`close-button`,r.innerHTML=`&times;`,n.appendChild(r);let i=document.createElement(`p`);i.innerHTML=`&nbsp;`,n.appendChild(i);let a=document.createElement(`div`);a.className=`scanner-container-full-width`,a.id=`cap-os-barcode-scanner-container-scanner`,n.appendChild(a),t.appendChild(n),e.appendChild(t)}async scanBarcode(e){return this.buildScannerElement(),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`block`,new Promise((i,a)=>{let o={facingMode:e.cameraDirection===1?`environment`:`user`,hasScannerButton:!1,scanButton:e.scanButton===void 0?!1:e.scanButton,showScanLine:!1,scanInstructions:e.scanInstructions?e.scanInstructions:``,orientation:e.scanOrientation?e.scanOrientation:r.PORTRAIT,showCameraSelection:e.web?.showCameraSelection?e.web.showCameraSelection:!1,typeHint:e.hint===17?void 0:e.hint,scannerFPS:e.web?.scannerFPS?e.web.scannerFPS:50},s=!1,c=document.getElementById(`cap-os-barcode-scanner-close-button`);c&&(c.onclick=async()=>{s||(s=!0,await this.stopAndHideScanner(),a(Error(`Couldn’t scan because the process was cancelled.`)))});let l=document.getElementById(`cap-os-barcode-scanner-container-scanner`);if(!l)throw Error(`Scanner Element is required for web`);window.OSBarcodeWebScanner=new t(l.id,{formatsToSupport:o.typeHint===void 0?void 0:[o.typeHint],verbose:void 0});let u={fps:o.scannerFPS,qrbox:l.getBoundingClientRect().width*(9/16)-10,aspectRatio:16/9,videoConstraints:{focusMode:`continuous`,height:{min:576,ideal:1920},deviceId:void 0,facingMode:o.facingMode}};window.OSBarcodeWebScanner.start({facingMode:o.facingMode},u,(e,t)=>{this.stopAndHideScanner(),i({ScanResult:e,format:t.result.format?.format??n.ALL})},e=>{[`NotFoundException`,`No barcode or QR code detected`,`No MultiFormat Readers were able to detect the code`].find(t=>e.indexOf(t)!==-1)||(this.stopAndHideScanner(),console.error(`[Scanner Web Error] ${e}`),a(e))})})}};export{i as CapacitorBarcodeScannerWeb};
1
+ import{Ot as e,h as t,m as n,p as r}from"./index-CJCQ4bTo.js";var i=class extends e{async stopAndHideScanner(){console.log(window.OSBarcodeWebScanner),window.OSBarcodeWebScanner&&(await window.OSBarcodeWebScanner.stop(),window.OSBarcodeWebScanner=null),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`none`}buildScannerElement(){if(document.getElementById(`cap-os-barcode-scanner-container`)){document.getElementById(`cap-os-barcode-scanner-container`).className=`scanner-container-display`;return}let e=document.body.appendChild(document.createElement(`div`));e.id=`cap-os-barcode-scanner-container`;let t=document.createElement(`div`);t.id=`cap-os-barcode-scanner-container-dialog`,t.className=`scanner-dialog`;let n=document.createElement(`div`);n.className=`scanner-dialog-inner`;let r=document.createElement(`span`);r.id=`cap-os-barcode-scanner-close-button`,r.className=`close-button`,r.innerHTML=`&times;`,n.appendChild(r);let i=document.createElement(`p`);i.innerHTML=`&nbsp;`,n.appendChild(i);let a=document.createElement(`div`);a.className=`scanner-container-full-width`,a.id=`cap-os-barcode-scanner-container-scanner`,n.appendChild(a),t.appendChild(n),e.appendChild(t)}async scanBarcode(e){return this.buildScannerElement(),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`block`,new Promise((i,a)=>{let o={facingMode:e.cameraDirection===1?`environment`:`user`,hasScannerButton:!1,scanButton:e.scanButton===void 0?!1:e.scanButton,showScanLine:!1,scanInstructions:e.scanInstructions?e.scanInstructions:``,orientation:e.scanOrientation?e.scanOrientation:r.PORTRAIT,showCameraSelection:e.web?.showCameraSelection?e.web.showCameraSelection:!1,typeHint:e.hint===17?void 0:e.hint,scannerFPS:e.web?.scannerFPS?e.web.scannerFPS:50},s=!1,c=document.getElementById(`cap-os-barcode-scanner-close-button`);c&&(c.onclick=async()=>{s||(s=!0,await this.stopAndHideScanner(),a(Error(`Couldn’t scan because the process was cancelled.`)))});let l=document.getElementById(`cap-os-barcode-scanner-container-scanner`);if(!l)throw Error(`Scanner Element is required for web`);window.OSBarcodeWebScanner=new t(l.id,{formatsToSupport:o.typeHint===void 0?void 0:[o.typeHint],verbose:void 0});let u={fps:o.scannerFPS,qrbox:l.getBoundingClientRect().width*(9/16)-10,aspectRatio:16/9,videoConstraints:{focusMode:`continuous`,height:{min:576,ideal:1920},deviceId:void 0,facingMode:o.facingMode}};window.OSBarcodeWebScanner.start({facingMode:o.facingMode},u,(e,t)=>{this.stopAndHideScanner(),i({ScanResult:e,format:t.result.format?.format??n.ALL})},e=>{[`NotFoundException`,`No barcode or QR code detected`,`No MultiFormat Readers were able to detect the code`].find(t=>e.indexOf(t)!==-1)||(this.stopAndHideScanner(),console.error(`[Scanner Web Error] ${e}`),a(e))})})}};export{i as CapacitorBarcodeScannerWeb};
@@ -1 +1 @@
1
- import{Ot as e}from"./index-B0xy4BkI.js";var t=class extends e{constructor(){super(...arguments),this.wakeLock=null,this._isSupported=typeof navigator<`u`&&`wakeLock`in navigator,this.handleVisibilityChange=()=>{document.visibilityState===`visible`&&this.keepAwake()}}async keepAwake(){this._isSupported||this.throwUnsupportedError(),this.wakeLock&&await this.allowSleep(),this.wakeLock=await navigator.wakeLock.request(`screen`),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange)}async allowSleep(){var e;this._isSupported||this.throwUnsupportedError(),(e=this.wakeLock)==null||e.release(),this.wakeLock=null,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange)}async isSupported(){return{isSupported:this._isSupported}}async isKeptAwake(){return this._isSupported||this.throwUnsupportedError(),{isKeptAwake:!!this.wakeLock}}throwUnsupportedError(){throw this.unavailable(`Screen Wake Lock API not available in this browser.`)}};export{t as KeepAwakeWeb};
1
+ import{Ot as e}from"./index-CJCQ4bTo.js";var t=class extends e{constructor(){super(...arguments),this.wakeLock=null,this._isSupported=typeof navigator<`u`&&`wakeLock`in navigator,this.handleVisibilityChange=()=>{document.visibilityState===`visible`&&this.keepAwake()}}async keepAwake(){this._isSupported||this.throwUnsupportedError(),this.wakeLock&&await this.allowSleep(),this.wakeLock=await navigator.wakeLock.request(`screen`),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange)}async allowSleep(){var e;this._isSupported||this.throwUnsupportedError(),(e=this.wakeLock)==null||e.release(),this.wakeLock=null,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange)}async isSupported(){return{isSupported:this._isSupported}}async isKeptAwake(){return this._isSupported||this.throwUnsupportedError(),{isKeptAwake:!!this.wakeLock}}throwUnsupportedError(){throw this.unavailable(`Screen Wake Lock API not available in this browser.`)}};export{t as KeepAwakeWeb};
@@ -1 +1 @@
1
- import{G as e,K as t,Ot as n}from"./index-B0xy4BkI.js";var r=class extends n{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(t=e.Heavy){return t===e.Medium?[43]:t===e.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
1
+ import{G as e,K as t,Ot as n}from"./index-CJCQ4bTo.js";var r=class extends n{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(t=e.Heavy){return t===e.Medium?[43]:t===e.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
@@ -1 +1 @@
1
- import{Ot as e}from"./index-B0xy4BkI.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
1
+ import{Ot as e}from"./index-CJCQ4bTo.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
@@ -22,16 +22,16 @@
22
22
  <meta name="apple-mobile-web-app-title" content="Tarsk" />
23
23
 
24
24
  <title>Tarsk</title>
25
- <script type="module" crossorigin src="/assets/index-B0xy4BkI.js"></script>
25
+ <script type="module" crossorigin src="/assets/index-CJCQ4bTo.js"></script>
26
26
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
27
27
  <link rel="modulepreload" crossorigin href="/assets/monaco-D1hpqXQ0.js">
28
28
  <link rel="modulepreload" crossorigin href="/assets/interactive-BrHVRHmQ.js">
29
- <link rel="modulepreload" crossorigin href="/assets/onboarding-DVc9-yKJ.js">
30
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-B7jFrulV.js">
31
- <link rel="modulepreload" crossorigin href="/assets/alert-dialog-B6An1LDY.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/onboarding-KBcwP-kU.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-7n7LyU5o.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/alert-dialog-CLYxQdrK.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/use-toast-hxHsVv6a.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/store-B_cK-gsT.js">
34
- <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-DyKjqpND.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-Gg1jpamu.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/explorer-tab-context-BdjTEbFh.js">
36
36
  <link rel="modulepreload" crossorigin href="/assets/main-tab-context-zQSuRQQG.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/use-suspense-resource-CExc4Svq.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.5.67",
3
+ "version": "0.5.69",
4
4
  "description": "CLI for Tarsk - Project Threads Manager",
5
5
  "keywords": [
6
6
  "cli",