tarsk 0.5.83 → 0.6.84
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.
- package/dist/index.js +3505 -1220
- package/dist/public/assets/account-view-3IQai5GD.js +1 -0
- package/dist/public/assets/{alert-dialog-Dq9tEk9t.js → alert-dialog-L9wWQsMo.js} +1 -1
- package/dist/public/assets/api-BPfzuuZQ.js +2 -0
- package/dist/public/assets/{async-error-boundary-BS6v_PGo.js → async-error-boundary-CaqfvYIw.js} +1 -1
- package/dist/public/assets/browser-tab-VPXEbJGQ.js +12 -0
- package/dist/public/assets/{button-zYjzm__g.js → button-BRUlmKU9.js} +1 -1
- package/dist/public/assets/{card-CpchkvHM.js → card-m4ducAvD.js} +1 -1
- package/dist/public/assets/{chat-dock-context-DQmDS2i8.js → chat-dock-context-Br2lSNOf.js} +1 -1
- package/dist/public/assets/{commit-dialog-D6hchKSJ.js → commit-dialog-Ck94WauZ.js} +1 -1
- package/dist/public/assets/{commit-error-dialog-f7e8Qzpk.js → commit-error-dialog-B3Ba-TT-.js} +1 -1
- package/dist/public/assets/{commit-method-fields-6Ag-XY8a.js → commit-method-fields-BPRRj550.js} +1 -1
- package/dist/public/assets/conversation-history-view-Db-FOQwf.js +1 -0
- package/dist/public/assets/{create-project-dialog-DkxC6wM-.js → create-project-dialog-Chy1ooEs.js} +2 -2
- package/dist/public/assets/{create-repo-dialog-Y8dcOitj.js → create-repo-dialog-B8xz3jgU.js} +1 -1
- package/dist/public/assets/{delete-confirm-dialog-DvJ5VuAy.js → delete-confirm-dialog-Dg-9HMkY.js} +1 -1
- package/dist/public/assets/diff-view-CvrpMMk8.js +4 -0
- package/dist/public/assets/{dist-B-I0i8QZ.js → dist--8XEk-cL.js} +1 -1
- package/dist/public/assets/{dist-CX9ud_WC.js → dist-B_pwyFAz.js} +1 -1
- package/dist/public/assets/{dist-CPtOAqwP.js → dist-BrF4sqHu.js} +1 -1
- package/dist/public/assets/dist-C99qsdM0.js +2 -0
- package/dist/public/assets/{dist-lnsB93_y.js → dist-Cw2XrcBQ.js} +1 -1
- package/dist/public/assets/{dist-B6u0s1jB.js → dist-DPNQj0XL.js} +1 -1
- package/dist/public/assets/{dist-BJaGHz0F.js → dist-Dje5NBVh.js} +1 -1
- package/dist/public/assets/{dist-BhdiICUV.js → dist-DrOhoOxi.js} +1 -1
- package/dist/public/assets/{es2015-D67vh4rt.js → es2015-CkF7yGpJ.js} +1 -1
- package/dist/public/assets/{explorer-monaco-editor-C9uTsYgh.js → explorer-monaco-editor-mJ5cqcNE.js} +1 -1
- package/dist/public/assets/explorer-tab-view-CEWqpsav.js +2 -0
- package/dist/public/assets/explorer-tree-8N74JCtr.js +1 -0
- package/dist/public/assets/{explorer-view-5wUektaN.js → explorer-view-BdDHnhdp.js} +3 -3
- package/dist/public/assets/{git-history-dialog-CgH_0Ho0.js → git-history-dialog-DT0imFFW.js} +1 -1
- package/dist/public/assets/index-BlKnosL1.css +1 -0
- package/dist/public/assets/index-CU6xcKiy.js +114 -0
- package/dist/public/assets/{lucide-react-CMzSV2MP.js → lucide-react-DW-FYOQd.js} +1 -1
- package/dist/public/assets/{model-list-controls-ueD5Yk6B.js → model-list-controls-CfF-PN1k.js} +1 -1
- package/dist/public/assets/onboarding-dialog-CcTILQuy.js +1 -0
- package/dist/public/assets/{pill-tabs-CVcpOO4f.js → pill-tabs-C_XjoE72.js} +1 -1
- package/dist/public/assets/{progress-indicator-_fEKurQg.js → progress-indicator-EuomTuL6.js} +1 -1
- package/dist/public/assets/project-coding-view-37T_EVWc.js +1 -0
- package/dist/public/assets/{project-danger-zone-view-CtOeSKHP.js → project-danger-zone-view-B639X16E.js} +1 -1
- package/dist/public/assets/{project-env-vars-view-D8zFtC0r.js → project-env-vars-view-BB1ffcba.js} +1 -1
- package/dist/public/assets/project-model-aliases-view-CWhc457F.js +1 -0
- package/dist/public/assets/project-settings-view-BRTta676.js +1 -0
- package/dist/public/assets/{project-tools-view-DrwiTff5.js → project-tools-view-Ce73nfbH.js} +1 -1
- package/dist/public/assets/providers-list-view-DXk_pD4Y.js +1 -0
- package/dist/public/assets/pull-request-dialog-Cbg7Nmcx.js +1 -0
- package/dist/public/assets/{pull-with-changes-dialog-Mrdm4wbB.js → pull-with-changes-dialog-DZeHGFhc.js} +1 -1
- package/dist/public/assets/{push-before-pr-dialog-Ce8MMKT-.js → push-before-pr-dialog-D5fWfVUs.js} +1 -1
- package/dist/public/assets/{query-keys-C2vEjHA1.js → query-keys-C4ROIgnU.js} +1 -1
- package/dist/public/assets/{scroll-area-BTpvIsIG.js → scroll-area-jzW_lBt7.js} +1 -1
- package/dist/public/assets/{settings-general-tabs-view-Cg4sWryU.js → settings-general-tabs-view-DC6f8G1d.js} +2 -2
- package/dist/public/assets/settings-general-view-6TVzZ21Z.js +1 -0
- package/dist/public/assets/{settings-list-DajPoFxt.js → settings-list-DkQ2w1jX.js} +1 -1
- package/dist/public/assets/settings-logs-view-TPz2vcaO.js +5 -0
- package/dist/public/assets/settings-mcp-servers-view-CBGrusEF.js +5 -0
- package/dist/public/assets/settings-models-view-HZlhD_SR.js +1 -0
- package/dist/public/assets/{settings-plugins-view-CJvYXOb6.js → settings-plugins-view-B0FAYlr5.js} +2 -2
- package/dist/public/assets/settings-providers-view-sqm5pUAH.js +2 -0
- package/dist/public/assets/{settings-setup-view-0NvbMts_.js → settings-setup-view-C73a21hF.js} +2 -2
- package/dist/public/assets/settings-skills-view-BRYzGHT0.js +2 -0
- package/dist/public/assets/{settings-slack-view-DH7r2apv.js → settings-slack-view-By7cLQ_l.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-DFBRrsy5.js +1 -0
- package/dist/public/assets/{settings-statistics-view-mlcoR26Q.js → settings-statistics-view-C5e27kYx.js} +1 -1
- package/dist/public/assets/{settings-storage-view-DuN42zRw.js → settings-storage-view-qZyKd-8X.js} +1 -1
- package/dist/public/assets/{settings-subagents-view-C1r3Jtpe.js → settings-subagents-view-DpFwkfvX.js} +2 -2
- package/dist/public/assets/{settings-system-prompt-view-DcbUbDfa.js → settings-system-prompt-view-cMKBgBkJ.js} +1 -1
- package/dist/public/assets/{settings-tab-bar-T8v2_Dfk.js → settings-tab-bar-e6L6Mkoe.js} +1 -1
- package/dist/public/assets/{settings-view-Bv5QDh0H.js → settings-view-DHejRFnv.js} +2 -2
- package/dist/public/assets/{slug-utils-DhQjuU2J.js → slug-utils-CuSw2LoU.js} +1 -1
- package/dist/public/assets/store-HOyKbtQR.js +9 -0
- package/dist/public/assets/{table-DuD2DtkR.js → table-BIZvZqu5.js} +1 -1
- package/dist/public/assets/tasks-view-B0giBUuf.js +1 -0
- package/dist/public/assets/{terminal-panel-BmphDRj0.js → terminal-panel-dKlWiwk4.js} +3 -3
- package/dist/public/assets/{toggle-group-D0gDKZ9x.js → toggle-group-DP7rfPQH.js} +1 -1
- package/dist/public/assets/{tooltip-6qlOE6WT.js → tooltip-C0Zn4uFr.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-CDcYJhbD.js → use-active-dock-panel-instance-CKfR28OB.js} +1 -1
- package/dist/public/assets/{use-git-check-CZxYYnQ8.js → use-git-check-B94BHSs1.js} +1 -1
- package/dist/public/assets/use-installed-ai-files-CkWgs7ki.js +1 -0
- package/dist/public/assets/{useBaseQuery-DqLwB2Sq.js → useBaseQuery-LTUHnxp5.js} +1 -1
- package/dist/public/assets/{utils-uGptTPGm.js → utils-DIi62oP7.js} +1 -1
- package/dist/public/assets/{web-D8PJDFGq.js → web-C8RXkvWV.js} +1 -1
- package/dist/public/assets/{web-CutQ8Xsm.js → web-CTvU5lBF.js} +1 -1
- package/dist/public/assets/{web-Us0pibUb.js → web-DfgvqvRM.js} +1 -1
- package/dist/public/assets/{web-B5i03FJP.js → web-DjiMWZNY.js} +1 -1
- package/dist/public/index.html +23 -23
- package/dist/vosk-worker.js.gz +0 -0
- package/package.json +9 -7
- package/dist/public/assets/account-view-CJyN7iRT.js +0 -1
- package/dist/public/assets/api-CX0sFbpL.js +0 -2
- package/dist/public/assets/browser-tab-Cj4ztL1i.js +0 -12
- package/dist/public/assets/conversation-history-view-Dd6vfz4F.js +0 -1
- package/dist/public/assets/diff-view-L1jxq-Ig.js +0 -4
- package/dist/public/assets/dist-FJzwWcMv.js +0 -2
- package/dist/public/assets/explorer-tab-view-BD924tmt.js +0 -2
- package/dist/public/assets/explorer-tree-Cn6lp8jD.js +0 -1
- package/dist/public/assets/index-DCWejG57.css +0 -1
- package/dist/public/assets/index-DpDgcOE9.js +0 -114
- package/dist/public/assets/onboarding-dialog-pDK_d92N.js +0 -1
- package/dist/public/assets/project-coding-view-CCT83rVv.js +0 -1
- package/dist/public/assets/project-model-aliases-view-t1nijA2C.js +0 -1
- package/dist/public/assets/project-settings-view-C4kg3nDX.js +0 -1
- package/dist/public/assets/providers-list-view-DXRbYpKr.js +0 -1
- package/dist/public/assets/pull-request-dialog-D4JEkCWC.js +0 -1
- package/dist/public/assets/settings-general-view-Cl1qPgIX.js +0 -1
- package/dist/public/assets/settings-logs-view-C2SUOaIF.js +0 -5
- package/dist/public/assets/settings-mcp-servers-view-BuGFdY9u.js +0 -5
- package/dist/public/assets/settings-models-view-Dh8eZR6v.js +0 -1
- package/dist/public/assets/settings-providers-view-CxZnVxuu.js +0 -2
- package/dist/public/assets/settings-skills-view-DT6Ldvfn.js +0 -2
- package/dist/public/assets/settings-slash-commands-view-DxlXk7eT.js +0 -1
- package/dist/public/assets/store-DCnnNgwq.js +0 -9
- package/dist/public/assets/tasks-view-D_TwmLgM.js +0 -1
- package/dist/public/assets/use-installed-ai-files-uH9h6W5v.js +0 -1
- package/dist/public/assets/vosk-speech-Fi-g2v8n.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{K as i,Wt as a,fn as o}from"./dist-FJzwWcMv.js";import{r as s}from"./store-DCnnNgwq.js";import{t as c,u as l}from"./utils-uGptTPGm.js";import{B as u,L as d,Mt as f,Qt as p,U as m,W as h,Yt as g,a as _,dt as v,gn as y,ht as b}from"./lucide-react-CMzSV2MP.js";import{t as x}from"./button-zYjzm__g.js";import{i as S,n as C,r as w,t as T}from"./tooltip-6qlOE6WT.js";import{$i as E,$t as D,Ai as O,Ci as k,E as A,Fn as j,Ln as M,Ni as N,Xi as P,_r as F,br as I,cr as ee,fr as te,gr as ne,hi as re,hr as ie,kn as ae,lr as oe,mi as se,mr as ce,ur as le,yr as ue}from"./api-CX0sFbpL.js";import{t as L}from"./progress-indicator-_fEKurQg.js";import{a as de,c as fe,i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./alert-dialog-Dq9tEk9t.js";import{t as R}from"./use-toast-xpb5jNtN.js";import{Ar as z,Bn as ye,Bt as be,Cr as xe,Ct as Se,Dr as B,Er as V,Ft as Ce,It as we,Lt as Te,Mt as Ee,Or as H,Ot as De,Pt as Oe,Rt as ke,Tr as U,V as Ae,Vt as je,_r as W,a as Me,ar as Ne,bt as Pe,gr as Fe,jr as G,jt as Ie,kr as K,mr as Le,wr as q,wt as J,xt as Re,yr as ze}from"./index-DpDgcOE9.js";import{t as Be}from"./delete-confirm-dialog-DvJ5VuAy.js";import{t as Ve}from"./use-settings-page-loading-CpaBd260.js";import{a as He,o as Ue,r as We}from"./settings-list-DajPoFxt.js";import{t as Ge}from"./use-deferred-search-Dgxosq55.js";import{i as Ke,n as qe,r as Je,t as Ye}from"./slug-utils-DhQjuU2J.js";import{i as Xe,n as Ze,r as Qe,t as $e}from"./use-installed-ai-files-uH9h6W5v.js";var Y=t(),X=e(n(),1),Z=r();function et({threadId:e,onSkillCreated:t}){let[n,r]=(0,X.useState)(``),[i,o]=(0,X.useState)(``),[s,l]=(0,X.useState)(!1),u=Je(n),d=qe(u),f=async()=>{if(!(!d||!i.trim()||!e)){l(!0);try{let n=await A(e,u,i.trim());R({title:`Skill created`,description:`Skill '${u}' was created successfully.`}),r(``),o(``),t?.(n.path,`SKILL.md`)}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to create skill`,variant:`destructive`})}finally{l(!1)}}};return e?(0,Z.jsx)(Oe,{children:(0,Z.jsxs)(Pe,{children:[(0,Z.jsx)(J,{title:`Add Skill`,description:`Saved as SKILL.md in .agents/skills.`,sticky:!0,className:`pr-10`}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(Re,{title:`Skill Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,Z.jsx)(U,{id:`skillName`,value:n,onChange:e=>r(e.target.value),placeholder:`e.g. Code Review`,disabled:s}),n?(0,Z.jsxs)(`p`,{className:c(a.caption,`mt-2`),children:[`Folder name: `,(0,Z.jsx)(`span`,{className:`font-mono`,children:u||`...`})]}):null]}),(0,Z.jsx)(Re,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,Z.jsx)(Ae,{id:`skillDescription`,value:i,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this skill`,className:`resize-none min-h-[120px]`,disabled:s})}),(0,Z.jsx)(Ke,{onContinue:()=>void f(),disabled:!d||!i.trim(),creating:s})]})]})}):(0,Z.jsx)(Ie,{title:`No thread selected`,children:`Please select a thread to add a skill.`})}var tt=`.agents/skills`;function nt(e){return`${tt}/${e}`}function rt(e){return`${nt(e)}/SKILL.md`}function it(e,t){let n=t.trim();if(!n)return e;let r=n.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r))}function at(e){let t=[`---`,`name: ${e.id}`,`description: ${e.description}`];return e.allowedTools&&t.push(`allowed-tools: ${e.allowedTools}`),e.license&&t.push(`license: ${e.license}`),t.push(`---`,``,e.instructions??``),t.join(`
|
|
2
|
-
`)}function ot(e,t,n){return it(e,t).filter(e=>!n.has(rt(e.id)))}function st(e){return e.endsWith(`.md`)||e.endsWith(`.mdx`)}function ct(e){return e.includes(`SKILL.md`)?`SKILL.md`:e[0]??`SKILL.md`}function lt(e,t){let n=e?.sourceId??t;if(!(!n||n==="default"))return n}function ut(e,t,n){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(null),h=lt(t,n),g=!!h;return(0,X.useEffect)(()=>{if(!e||!t)return;let r=t,a=lt(r,n),s=!1;async function l(){u(!0),m(null),i([]),o(null),c(``);try{if(a){let e=await le(a,r.id);if(s)return;i(e.files),o(ct(e.files))}else{if(s)return;i([`SKILL.md`]),o(`SKILL.md`),c(at(r))}}catch(e){if(s)return;m(e instanceof Error?e.message:`Failed to load skill files`)}finally{s||u(!1)}}return l(),()=>{s=!0}},[e,t,n]),(0,X.useEffect)(()=>{if(!e||!t||!a||!g||!h)return;let n=t,r=a,i=!1;async function o(){f(!0),m(null);try{let e=await oe(h,n.id,r);if(i)return;c(e.content)}catch(e){if(i)return;m(e instanceof Error?e.message:`Failed to load file`),c(``)}finally{i||f(!1)}}return o(),()=>{i=!0}},[e,t,a,g,h]),{files:r,selectedFile:a,setSelectedFile:o,fileContent:s,loadingFiles:l,contentLoading:l||g&&d,loadError:p,isCatalogSkill:g,effectiveSourceId:h}}function dt({open:e,onOpenChange:t,skill:n,catalogSourceId:r,onInstall:i}){let[o,s]=(0,X.useState)(!1),{files:l,selectedFile:u,setSelectedFile:d,fileContent:p,loadingFiles:m,contentLoading:h,loadError:g,effectiveSourceId:_}=ut(e,n,r),v=(0,X.useCallback)(async()=>{if(!n)return;let e=_?{...n,sourceId:_}:n;s(!0);try{await i(e),t(!1)}finally{s(!1)}},[n,_,i,t]),y=u?st(u):!1,b=(0,X.useMemo)(()=>l.map(e=>(0,Z.jsxs)(Ne,{selected:e===u,onClick:()=>d(e),className:`gap-2 cursor-pointer`,children:[(0,Z.jsx)(f,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:c(a.caption,`truncate`),children:e})]},e)),[l,u]);return(0,Z.jsx)(V,{open:e,onOpenChange:t,children:(0,Z.jsxs)(B,{className:`flex max-h-[90vh] max-w-5xl flex-col gap-0 overflow-hidden p-0`,children:[(0,Z.jsxs)(z,{className:`border-b border-border px-6 py-4`,children:[(0,Z.jsx)(G,{children:n?.name??`Review skill`}),n?.description?(0,Z.jsx)(H,{children:n.description}):null]}),(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row`,children:[(0,Z.jsxs)(`div`,{className:`flex max-h-40 shrink-0 flex-col border-b border-border sm:max-h-none sm:w-56 sm:border-b-0 sm:border-r`,children:[(0,Z.jsx)(`div`,{className:c(a.labelMuted,`px-3 py-2`),children:`Files`}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:m?(0,Z.jsx)(L,{centered:!0,containerClassName:`py-8`,label:`Loading files...`}):l.length===0?(0,Z.jsx)(`p`,{className:c(a.caption,`px-3 py-2 text-muted-foreground`),children:`No files found.`}):b})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-4`,children:g?(0,Z.jsx)(`p`,{className:c(a.body,`text-destructive`),children:g}):h?(0,Z.jsx)(L,{centered:!0,containerClassName:`py-12`,label:`Loading preview...`}):y?(0,Z.jsx)(ye,{content:p,enableMermaid:!1}):(0,Z.jsx)(`pre`,{className:c(a.caption,`overflow-x-auto whitespace-pre-wrap font-mono`),children:p})})]}),(0,Z.jsxs)(K,{className:`border-t border-border px-6 py-4 sm:justify-between`,children:[(0,Z.jsx)(x,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,Z.jsx)(x,{type:`button`,onClick:()=>void v(),disabled:o||!n,children:o?`Installing...`:`Install`})]})]})})}function ft({open:e,onOpenChange:t,editingSource:n,onSourceAdded:r,onSourceUpdated:i,onSourceDeleted:o}){let[s,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(null),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),S=n!=null;function C(){l(``),d(``),p(null),h(!1),_(!1),b(!1)}function w(e){e||C(),t(e)}(0,X.useEffect)(()=>{if(e){if(n){l(n.title),d(n.url),p(null);return}l(``),d(``),p(null)}},[e,n]);async function T(){let e=s.trim(),t=u.trim();if(!e||!t){p(`Title and URL are required.`);return}h(!0),p(null);try{if(S&&n){let r=await ue(n.id,e,t);i?.(r.source)}else r((await I(e,t)).source);w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to verify skill source`)}finally{h(!1)}}async function E(){if(n){_(!0),p(null);try{await ee(n.id),o?.(n.id),b(!1),w(!1)}catch(e){p(e instanceof Error?e.message:`Failed to delete skill source`),b(!1)}finally{_(!1)}}}return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(V,{open:e,onOpenChange:w,children:(0,Z.jsxs)(B,{className:`sm:max-w-lg`,children:[(0,Z.jsxs)(z,{children:[(0,Z.jsx)(G,{children:S?`Edit Skill Source`:`Add Skill Source`}),(0,Z.jsx)(H,{children:S?`Update the title or GitHub skills folder URL for this custom source.`:`Add a GitHub skills folder URL. The source is verified by loading at least one skill from the repository.`})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(q,{htmlFor:`skill-source-title`,children:`Title`}),(0,Z.jsx)(U,{id:`skill-source-title`,placeholder:`e.g. My Team Skills`,value:s,onChange:e=>l(e.target.value),disabled:m||g,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(q,{htmlFor:`skill-source-url`,children:`URL`}),(0,Z.jsx)(U,{id:`skill-source-url`,placeholder:`https://github.com/org/repo or .../tree/main/skills`,value:u,onChange:e=>d(e.target.value),disabled:m||g})]}),f?(0,Z.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:f}):null]}),(0,Z.jsxs)(K,{className:`flex-col-reverse gap-2 sm:flex-row sm:justify-between`,children:[S?(0,Z.jsx)(x,{type:`button`,variant:`destructive`,onClick:()=>b(!0),disabled:m||g,children:`Delete`}):(0,Z.jsx)(`div`,{className:`hidden sm:block`}),(0,Z.jsxs)(`div`,{className:`flex w-full flex-col-reverse gap-2 sm:w-auto sm:flex-row`,children:[(0,Z.jsx)(x,{variant:`outline`,onClick:()=>w(!1),disabled:m||g,children:`Cancel`}),(0,Z.jsx)(x,{onClick:()=>void T(),disabled:m||g||!s.trim()||!u.trim(),children:m?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(v,{className:`mr-2 h-4 w-4 animate-spin`}),`Verifying...`]}):S?`Save Changes`:`Add Source`})]})]})]})}),(0,Z.jsx)(ve,{open:y,onOpenChange:b,children:(0,Z.jsxs)(pe,{children:[(0,Z.jsxs)(_e,{children:[(0,Z.jsx)(fe,{children:`Delete Skill Source`}),(0,Z.jsxs)(de,{children:[`Are you sure you want to delete "`,n?.title,`"? This removes the source from your list but does not uninstall skills you already added.`]})]}),(0,Z.jsxs)(he,{children:[(0,Z.jsx)(ge,{disabled:g,children:`Cancel`}),(0,Z.jsx)(me,{onClick:()=>void E(),disabled:g,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:g?`Deleting...`:`Delete`})]})]})})]})}function pt(e){let t=e.trim();if(!t)return null;if(/^https?:\/\//i.test(t))try{return new URL(t),t}catch{return null}if(t.startsWith(`tarsk://`))try{let e=new URL(`https://tarsk.invalid/${t.slice(8)}`);if(e.pathname===`/skill-install`&&e.searchParams.get(`url`))return e.searchParams.get(`url`)}catch{return null}return null}function mt(e){let t=(0,Y.c)(40),{open:n,onOpenChange:r,onSubmit:i}=e,[o,s]=(0,X.useState)(``),[l,u]=(0,X.useState)(null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=function(){s(``),u(null)},t[0]=d):d=t[0];let f=d,p;t[1]===r?p=t[2]:(p=function(e){e||f(),r(e)},t[1]=r,t[2]=p);let m=p,h,g;t[3]===n?(h=t[4],g=t[5]):(h=()=>{n&&f()},g=[n],t[3]=n,t[4]=h,t[5]=g),(0,X.useEffect)(h,g);let _;t[6]!==m||t[7]!==i||t[8]!==o?(_=function(){let e=pt(o);if(!e){u(`Enter a valid http(s) URL for the plugin archive or paste a tarsk:// install link.`);return}i(e),m(!1)},t[6]=m,t[7]=i,t[8]=o,t[9]=_):_=t[9];let v=_,y;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsxs)(z,{children:[(0,Z.jsx)(G,{children:`Add Skill via URL`}),(0,Z.jsx)(H,{children:`Paste the URL of a plugin archive. Its skills and MCP servers are installed into this project.`})]}),t[10]=y):y=t[10];let b;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(q,{htmlFor:`add-skill-url`,children:`URL`}),t[11]=b):b=t[11];let S;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>s(e.target.value),t[12]=S):S=t[12];let C;t[13]===v?C=t[14]:(C=e=>{e.key===`Enter`&&(e.preventDefault(),v())},t[13]=v,t[14]=C);let w;t[15]!==C||t[16]!==o?(w=(0,Z.jsx)(U,{id:`add-skill-url`,placeholder:`https://example.com/my-plugin.zip`,value:o,onChange:S,autoFocus:!0,onKeyDown:C}),t[15]=C,t[16]=o,t[17]=w):w=t[17];let T;t[18]===l?T=t[19]:(T=l?(0,Z.jsx)(`p`,{className:c(a.caption,`text-destructive`),children:l}):null,t[18]=l,t[19]=T);let E;t[20]!==w||t[21]!==T?(E=(0,Z.jsx)(`div`,{className:`grid gap-4 py-2`,children:(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[b,w,T]})}),t[20]=w,t[21]=T,t[22]=E):E=t[22];let D;t[23]===m?D=t[24]:(D=(0,Z.jsx)(x,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),t[23]=m,t[24]=D);let O;t[25]===o?O=t[26]:(O=o.trim(),t[25]=o,t[26]=O);let k=!O,A;t[27]!==v||t[28]!==k?(A=(0,Z.jsx)(x,{onClick:v,disabled:k,children:`Continue`}),t[27]=v,t[28]=k,t[29]=A):A=t[29];let j;t[30]!==D||t[31]!==A?(j=(0,Z.jsxs)(K,{children:[D,A]}),t[30]=D,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==E||t[34]!==j?(M=(0,Z.jsxs)(B,{className:`sm:max-w-lg`,children:[y,E,j]}),t[33]=E,t[34]=j,t[35]=M):M=t[35];let N;return t[36]!==m||t[37]!==n||t[38]!==M?(N=(0,Z.jsx)(V,{open:n,onOpenChange:m,children:M}),t[36]=m,t[37]=n,t[38]=M,t[39]=N):N=t[39],N}function ht(e){let t=(0,Y.c)(7),{items:n,onPreview:r}=e,i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>{let t=Ye(e.name);return(0,Z.jsxs)(`div`,{className:`group flex min-h-13 items-center gap-3 px-3 py-2`,role:`button`,tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),r(e))},children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:c(a.label,`truncate`),children:t}),(0,Z.jsx)(`p`,{className:c(a.caption,`truncate`),children:e.description})]}),(0,Z.jsx)(w,{delayDuration:300,children:(0,Z.jsxs)(T,{children:[(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(x,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0 opacity-0 pointer-events-none can-hover:group-hover:opacity-100 can-hover:group-hover:pointer-events-auto`,"aria-label":`Install ${t}`,onClick:t=>{t.stopPropagation(),r(e)},children:(0,Z.jsx)(p,{className:`h-4 w-4`})})}),(0,Z.jsx)(C,{children:`Install skill`})]})})]},e.id)},t[3]=r,t[4]=e),i=n.map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let o;return t[5]===i?o=t[6]:(o=(0,Z.jsx)(`div`,{className:`divide-y divide-table-border`,children:i}),t[5]=i,t[6]=o),o}function gt(e){let t=(0,Y.c)(11),{searchQuery:n,isLoadingCatalog:r,isDefaultSource:i,availablePopular:a,availableCatalog:o,onPreviewPopular:s,onPreviewCatalog:c}=e;if(r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(L,{centered:!0,containerClassName:`py-12`,label:`Loading skills...`}),t[0]=e):e=t[0],e}if(i){if(a.length===0){let e;return t[1]===n?e=t[2]:(e=(0,Z.jsx)(He,{searchQuery:n,emptyLabel:`No available skills found.`}),t[1]=n,t[2]=e),e}let e;return t[3]!==a||t[4]!==s?(e=(0,Z.jsx)(ht,{items:a,onPreview:s}),t[3]=a,t[4]=s,t[5]=e):e=t[5],e}if(o.length===0){let e;return t[6]===n?e=t[7]:(e=(0,Z.jsx)(He,{searchQuery:n,emptyLabel:`No available skills found.`}),t[6]=n,t[7]=e),e}let l;return t[8]!==o||t[9]!==c?(l=(0,Z.jsx)(ht,{items:o,onPreview:c}),t[8]=o,t[9]=c,t[10]=l):l=t[10],l}function _t(e){return e?{ariaLabel:`Edit skill source`,tooltip:`Edit this custom skill source`,icon:m}:{ariaLabel:`Add skill source`,tooltip:`Add a custom skill source`,icon:u}}function vt(e){let t=(0,Y.c)(42),{availableSearch:n,onSearchChange:r,selectedSourceId:i,onSourceChange:a,sources:o,selectedCustomSource:s,availableCatalogLoading:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p,onAddSource:m}=e,h;t[0]===s?h=t[1]:(h=_t(s),t[0]=s,t[1]=h);let g=h,_=g.icon,v;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(w,{children:(0,Z.jsxs)(T,{children:[(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(`span`,{className:`cursor-help`,children:`Available Skills`})}),(0,Z.jsx)(C,{children:`Browse and install skills from the catalog.`})]})}),t[2]=v):v=t[2];let y;t[3]!==n||t[4]!==r?(y=(0,Z.jsx)(Ue,{placeholder:`Search`,value:n,onChange:r,className:`mb-0 w-64`}),t[3]=n,t[4]=r,t[5]=y):y=t[5];let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(be,{className:`w-40`,"aria-label":`Skill source`,children:(0,Z.jsx)(je,{placeholder:`Default`})}),t[6]=b):b=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(ke,{value:`default`,children:`Default`}),t[7]=E):E=t[7];let D;t[8]===o?D=t[9]:(D=o.map(yt),t[8]=o,t[9]=D);let O;t[10]===D?O=t[11]:(O=(0,Z.jsxs)(Te,{children:[E,D]}),t[10]=D,t[11]=O);let k;t[12]!==a||t[13]!==i||t[14]!==O?(k=(0,Z.jsxs)(we,{value:i,onValueChange:a,children:[b,O]}),t[12]=a,t[13]=i,t[14]=O,t[15]=k):k=t[15];let A;t[16]===_?A=t[17]:(A=(0,Z.jsx)(_,{className:`h-4 w-4`}),t[16]=_,t[17]=A);let j;t[18]!==m||t[19]!==g.ariaLabel||t[20]!==A?(j=(0,Z.jsx)(S,{asChild:!0,children:(0,Z.jsx)(x,{type:`button`,variant:`outline`,size:`icon`,className:`shrink-0`,onClick:m,"aria-label":g.ariaLabel,children:A})}),t[18]=m,t[19]=g.ariaLabel,t[20]=A,t[21]=j):j=t[21];let M;t[22]===g.tooltip?M=t[23]:(M=(0,Z.jsx)(C,{children:g.tooltip}),t[22]=g.tooltip,t[23]=M);let N;t[24]!==j||t[25]!==M?(N=(0,Z.jsx)(w,{children:(0,Z.jsxs)(T,{children:[j,M]})}),t[24]=j,t[25]=M,t[26]=N):N=t[26];let P;t[27]!==N||t[28]!==y||t[29]!==k?(P=(0,Z.jsx)(J,{title:v,action:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y,k,N]}),sticky:!1}),t[27]=N,t[28]=y,t[29]=k,t[30]=P):P=t[30];let F;t[31]!==d||t[32]!==c||t[33]!==u||t[34]!==n||t[35]!==l||t[36]!==p||t[37]!==f?(F=(0,Z.jsx)(Ee,{className:`pt-6`,children:(0,Z.jsx)(gt,{searchQuery:n,isLoadingCatalog:c,isDefaultSource:l,availablePopular:u,availableCatalog:d,onPreviewPopular:f,onPreviewCatalog:p})}),t[31]=d,t[32]=c,t[33]=u,t[34]=n,t[35]=l,t[36]=p,t[37]=f,t[38]=F):F=t[38];let I;return t[39]!==P||t[40]!==F?(I=(0,Z.jsxs)(Ce,{className:`shrink-0`,children:[P,F]}),t[39]=P,t[40]=F,t[41]=I):I=t[41],I}function yt(e){return(0,Z.jsx)(ke,{value:e.id,children:e.title},e.id)}var bt=`https://tarsk.io/skills/list/`;function xt(e){let t=(0,Y.c)(20),{onSelectMode:n,manualDisabled:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(xe,{asChild:!0,children:(0,Z.jsxs)(x,{className:`gap-1`,children:[`Add Skill`,(0,Z.jsx)(y,{className:`h-4 w-4 opacity-70`})]})}),t[0]=i):i=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(a.body,`gap-2`),t[1]=o):o=t[1];let s;t[2]===n?s=t[3]:(s=()=>n(`manual`),t[2]=n,t[3]=s);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(h,{className:`h-4 w-4 shrink-0`}),t[4]=l):l=t[4];let u;t[5]!==r||t[6]!==s?(u=(0,Z.jsxs)(W,{className:o,disabled:r,onSelect:s,children:[l,`Manually Enter`]}),t[5]=r,t[6]=s,t[7]=u):u=t[7];let d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=c(a.body,`gap-2`),t[8]=d):d=t[8];let f;t[9]===n?f=t[10]:(f=()=>n(`url`),t[9]=n,t[10]=f);let p;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(b,{className:`h-4 w-4 shrink-0`}),t[11]=p):p=t[11];let m;t[12]===f?m=t[13]:(m=(0,Z.jsxs)(W,{className:d,onSelect:f,children:[p,`Via URL`]}),t[12]=f,t[13]=m);let _;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsx)(ze,{}),t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=c(a.body,`gap-2`),t[15]=v):v=t[15];let S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsxs)(W,{className:v,onSelect:St,children:[(0,Z.jsx)(g,{className:`h-4 w-4 shrink-0`}),`Marketplace`]}),t[16]=S):S=t[16];let C;return t[17]!==u||t[18]!==m?(C=(0,Z.jsxs)(Le,{children:[i,(0,Z.jsxs)(Fe,{align:`end`,className:`w-44`,children:[u,m,_,S]})]}),t[17]=u,t[18]=m,t[19]=C):C=t[19],C}function St(){D(bt)}var Ct=`This skill uses no additional context as it is manually invoked`;function wt(e){return e.builtIn?`text-muted-foreground/50`:e.disableModelInvocation?`text-brand`:`text-foreground`}function Tt(e){return e.disableModelInvocation?Ct:`≈${o(e.description)} tokens of context`}function Et(e){let t=(0,Y.c)(22),n,r,i,a,o,s;if(t[0]!==e){let{onClick:l,ariaLabel:u,...f}=e,p=(0,Z.jsx)(d,{className:c(`h-4 w-4 shrink-0`,wt(f)),"aria-hidden":`true`});i=w,s=300,r=T,t[7]!==u||t[8]!==p||t[9]!==l?(o=(0,Z.jsx)(S,{asChild:!0,children:l?(0,Z.jsx)(`button`,{type:`button`,"aria-label":u,className:`shrink-0 cursor-pointer rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:e=>{e.stopPropagation(),l()},onKeyDown:Dt,children:p}):p}),t[7]=u,t[8]=p,t[9]=l,t[10]=o):o=t[10],n=C,a=Tt(f),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6];let l;t[11]!==n||t[12]!==a?(l=(0,Z.jsx)(n,{children:a}),t[11]=n,t[12]=a,t[13]=l):l=t[13];let u;t[14]!==r||t[15]!==o||t[16]!==l?(u=(0,Z.jsxs)(r,{children:[o,l]}),t[14]=r,t[15]=o,t[16]=l,t[17]=u):u=t[17];let f;return t[18]!==i||t[19]!==s||t[20]!==u?(f=(0,Z.jsx)(i,{delayDuration:s,children:u}),t[18]=i,t[19]=s,t[20]=u,t[21]=f):f=t[21],f}function Dt(e){(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}function Ot(e){let t=[];for(let n of e){if(n.path===`.agents/skills`&&n.type===`folder`&&n.children)for(let e of n.children)e.type===`folder`&&t.push(e);n.children&&n.children.length>0&&t.push(...Ot(n.children))}return t}function kt(e){return`${e.disableModelInvocation?`Enable`:`Disable`} model invocation for ${e.name}`}function At(e){return e?{title:`MCP server installed`,description:`Its MCP servers were added to this project.`}:{title:`Plugin installed`,description:`Its skills and MCP servers were added to this project.`}}function jt(e){return e?.disableModelInvocation?{title:`Enable model invocation?`,description:`"${e.name}" will be offered to the model automatically again, so its description counts towards the context window.`,actionLabel:`Enable`,nextDisableModelInvocation:!1}:{title:`Disable model invocation?`,description:`"${e?.name}" will no longer be offered to the model automatically, so its description stops counting towards the context window. Invoke it manually with /${e?.name}.`,actionLabel:`Disable`,nextDisableModelInvocation:!0}}function Mt(e){let t=(0,Y.c)(24),{skills:n,threadId:r,onOpenSkill:i,onDelete:o,onAddManual:s,onAddUrl:l,onChangeModelInvocation:u}=e,d=!r,f;t[0]!==s||t[1]!==l?(f=e=>{e===`manual`?s():l()},t[0]=s,t[1]=l,t[2]=f):f=t[2];let p;t[3]!==d||t[4]!==f?(p=(0,Z.jsx)(J,{title:`Installed Skills`,description:`Reusable instruction sets that guide agent behavior in this project.`,action:(0,Z.jsx)(xt,{manualDisabled:d,onSelectMode:f}),sticky:!1}),t[3]=d,t[4]=f,t[5]=p):p=t[5];let m;t[6]===r?m=t[7]:(m=!r&&(0,Z.jsx)(Se,{children:`Select a thread to add or install skills.`}),t[6]=r,t[7]=m);let h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h={icon:_,title:`No skills installed`,description:`Add skills to extend agent capabilities with reusable instructions.`},t[8]=h):h=t[8];let g;t[9]===u?g=t[10]:(g=e=>(0,Z.jsxs)(`span`,{className:c(a.body,`flex min-w-0 items-center gap-2 text-left`),children:[(0,Z.jsx)(Et,{description:e.description,disableModelInvocation:e.disableModelInvocation,builtIn:e.virtual,onClick:e.virtual?void 0:()=>u(e),ariaLabel:kt(e)}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.name})]}),t[9]=u,t[10]=g);let v;t[11]===i?v=t[12]:(v=e=>i(e.path),t[11]=i,t[12]=v);let y;t[13]!==o||t[14]!==n||t[15]!==g||t[16]!==v?(y=(0,Z.jsx)(We,{showHeader:!1,compact:!0,loading:!1,items:n,emptyState:h,getKey:Ft,renderContent:g,onItemClick:v,itemClickLabel:Pt,onDelete:o,deleteAriaLabel:Nt,deleteTooltip:`Remove this skill from the project`}),t[13]=o,t[14]=n,t[15]=g,t[16]=v,t[17]=y):y=t[17];let b;t[18]!==m||t[19]!==y?(b=(0,Z.jsxs)(Ee,{className:`pt-6`,children:[m,y]}),t[18]=m,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==p||t[22]!==b?(x=(0,Z.jsxs)(Ce,{className:`shrink-0`,children:[p,b]}),t[21]=p,t[22]=b,t[23]=x):x=t[23],x}function Nt(e){return`Delete ${e.name}`}function Pt(e){return`Open ${e.name} in Files`}function Ft(e){return e.id}function It(e){let t=(0,Y.c)(24),{open:n,onOpenChange:r,skill:i,onConfirm:a}=e,o;t[0]===i?o=t[1]:(o=jt(i),t[0]=i,t[1]=o);let s=o,c;t[2]===s.title?c=t[3]:(c=(0,Z.jsx)(fe,{children:s.title}),t[2]=s.title,t[3]=c);let l;t[4]===s.description?l=t[5]:(l=(0,Z.jsx)(de,{children:s.description}),t[4]=s.description,t[5]=l);let u;t[6]!==c||t[7]!==l?(u=(0,Z.jsxs)(_e,{children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsx)(ge,{children:`Cancel`}),t[9]=d):d=t[9];let f;t[10]!==s.nextDisableModelInvocation||t[11]!==a||t[12]!==i?(f=()=>{i&&a(i,s.nextDisableModelInvocation)},t[10]=s.nextDisableModelInvocation,t[11]=a,t[12]=i,t[13]=f):f=t[13];let p;t[14]!==s.actionLabel||t[15]!==f?(p=(0,Z.jsxs)(he,{children:[d,(0,Z.jsx)(me,{onClick:f,children:s.actionLabel})]}),t[14]=s.actionLabel,t[15]=f,t[16]=p):p=t[16];let m;t[17]!==u||t[18]!==p?(m=(0,Z.jsxs)(pe,{children:[u,p]}),t[17]=u,t[18]=p,t[19]=m):m=t[19];let h;return t[20]!==r||t[21]!==n||t[22]!==m?(h=(0,Z.jsx)(ve,{open:n,onOpenChange:r,children:m}),t[20]=r,t[21]=n,t[22]=m,t[23]=h):h=t[23],h}function Lt(){let e=(0,Y.c)(10),[t,n]=(0,X.useState)(!1),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(null),[p,m]=(0,X.useState)(!1),h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=function(e){f(e),m(!0)},e[0]=h):h=e[0];let g=h,_;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=function(e){e||u(null)},e[1]=_):_=e[1];let v=_,y;return e[2]!==d||e[3]!==s||e[4]!==l||e[5]!==t||e[6]!==a||e[7]!==p||e[8]!==r?(y={showAddDialog:t,setShowAddDialog:n,showUrlDialog:r,setShowUrlDialog:i,showAddSourceDialog:a,setShowAddSourceDialog:o,pluginImportUrl:s,setPluginImportUrl:c,previewSkill:l,setPreviewSkill:u,invocationSkill:d,showInvocationDialog:p,setShowInvocationDialog:m,openInvocationDialog:g,handlePreviewDialogOpenChange:v},e[2]=d,e[3]=s,e[4]=l,e[5]=t,e[6]=a,e[7]=p,e[8]=r,e[9]=y):y=e[9],y}var Q=`skills:popular`;function Rt(e){return e.map(e=>`${e.id}~${e.name}~${e.description}`).join(`|`)}function zt(){let e=(0,Y.c)(5),[t,n]=(0,X.useState)(Ht),[r,i]=(0,X.useState)(Vt),a,o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{te().then(e=>{Xe(Q,e),n(t=>Rt(t)===Rt(e)?t:e)}).catch(Bt).finally(()=>i(!1))},o=[],e[0]=a,e[1]=o):(a=e[0],o=e[1]),(0,X.useEffect)(a,o);let s;return e[2]!==r||e[3]!==t?(s={popularSkills:t,loadingPopularSkills:r},e[2]=r,e[3]=t,e[4]=s):s=e[4],s}function Bt(){}function Vt(){return!Ze(Q)}function Ht(){return Qe(Q)??[]}var $=new Map;function Ut(e){let t=$.get(e);if(t)return t;let n=ce(e).finally(()=>{$.delete(e)});return $.set(e,n),n}function Wt(e,t){return t.map(t=>({...t,sourceId:t.sourceId??e}))}function Gt(){let e=(0,Y.c)(18),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,X.useState)(t),[i,a]=(0,X.useState)(O),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[1]=o):o=e[1];let[s,c]=(0,X.useState)(o),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=async()=>{try{r(await ie())}catch{r([])}},e[2]=p):p=e[2];let m=p,h,g;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{(async function(){let e=k();if(e.length>0)try{await ne(e),se()}catch{}await m()})()},g=[m],e[3]=h,e[4]=g):(h=e[3],g=e[4]),(0,X.useEffect)(h,g);let _;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{a(e),P(e)},e[5]=_):_=e[5];let v=_,y;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{r(t=>[...t.filter(t=>t.id!==e.id),e].sort(qt)),v(e.id)},e[6]=y):y=e[6];let b=y,x;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{r(t=>t.map(t=>t.id===e.id?e:t).sort(Kt)),re(e.id)},e[7]=x):x=e[7];let S=x,C;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>{r(t=>t.filter(t=>t.id!==e)),re(e),a(t=>t===e?(P(`default`),`default`):t)},e[8]=C):C=e[8];let w=C,T,D;e[9]===i?(T=e[10],D=e[11]):(D=()=>{if(i==="default"){c([]),u(!1),f(!1);return}let e=N(i);e?.skills?(c(Wt(i,e.skills)),u(!1)):(c([]),u(!0));let t=!1;return f(!!e?.skills),Ut(i).then(e=>{if(t)return;let n=Wt(i,e);c(n),E(i,{fetchedAt:Date.now(),skills:n})}).catch(n=>{t||(e?.skills||c([]),R({title:`Error`,description:n instanceof Error?n.message:`Failed to load skill catalog`,variant:`destructive`}))}).finally(()=>{t||(u(!1),f(!1))}),()=>{t=!0}},T=[i],e[9]=i,e[10]=T,e[11]=D),(0,X.useEffect)(D,T);let A;return e[12]!==s||e[13]!==l||e[14]!==d||e[15]!==i||e[16]!==n?(A={sources:n,selectedSourceId:i,setSelectedSourceId:v,addSource:b,updateSource:S,removeSource:w,reloadSources:m,catalogSkills:s,isLoadingCatalog:l,isRefreshingCatalog:d},e[12]=s,e[13]=l,e[14]=d,e[15]=i,e[16]=n,e[17]=A):A=e[17],A}function Kt(e,t){return e.title.localeCompare(t.title)}function qt(e,t){return e.title.localeCompare(t.title)}function Jt(e){let t=(0,Y.c)(26),{popularSkills:n,loadingPopularSkills:r}=zt(),{sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,catalogSkills:d,isLoadingCatalog:f}=Gt(),{query:p,setQuery:m,deferredQuery:h}=Ge(),g=o==="default",_;t[0]!==o||t[1]!==a?(_=i(o)?a.find(e=>e.id===o)??null:null,t[0]=o,t[1]=a,t[2]=_):_=t[2];let v=_,y=!g&&f&&d.length===0,b;t[3]!==h||t[4]!==e||t[5]!==n?(b=ot(n,h,e),t[3]=h,t[4]=e,t[5]=n,t[6]=b):b=t[6];let x=b,S;t[7]!==d||t[8]!==h||t[9]!==e?(S=ot(d,h,e),t[7]=d,t[8]=h,t[9]=e,t[10]=S):S=t[10];let C=S,w;return t[11]!==c||t[12]!==C||t[13]!==y||t[14]!==x||t[15]!==p||t[16]!==g||t[17]!==r||t[18]!==u||t[19]!==v||t[20]!==o||t[21]!==m||t[22]!==s||t[23]!==a||t[24]!==l?(w={availableSearch:p,setAvailableSearch:m,availablePopular:x,availableCatalog:C,availableCatalogLoading:y,isDefaultSource:g,selectedCustomSource:v,sources:a,selectedSourceId:o,setSelectedSourceId:s,addSource:c,updateSource:l,removeSource:u,loadingPopularSkills:r},t[11]=c,t[12]=C,t[13]=y,t[14]=x,t[15]=p,t[16]=g,t[17]=r,t[18]=u,t[19]=v,t[20]=o,t[21]=m,t[22]=s,t[23]=a,t[24]=l,t[25]=w):w=t[25],w}async function Yt(e,t){let n=rt(t.id);if(!e.threadId||e.installedFilePaths.has(n))return;let r=t.sourceId??(e.selectedSourceId==="default"?void 0:e.selectedSourceId);try{r?await F(e.threadId,r,t.id,nt(t.id)):await ae(e.threadId,n,at(t)),e.setInstalledFilePaths(e=>new Set(e).add(n)),e.triggerExplorerRefresh(),e.reloadSkills(),R({title:`Skill installed`,description:t.name})}catch(e){throw R({title:`Error`,description:e instanceof Error?e.message:`Failed to install skill`,variant:`destructive`}),e}}async function Xt(e,t,n){if(e.projectId)try{try{await j(e.projectId,t.name,n)}catch{if(!e.threadId)throw Error(`No thread selected to update this skill`);await M(e.threadId,t.name,n)}e.triggerExplorerRefresh(),await e.reloadSkills(),R({title:n?`Model invocation disabled`:`Model invocation enabled`,description:n?`${t.name} is now invoked manually with /${t.name}.`:`${t.name} is offered to the model again.`})}catch(e){R({title:`Error`,description:e instanceof Error?e.message:`Failed to update skill`,variant:`destructive`})}}function Zt(){let e=(0,Y.c)(34),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={findItems:Ot,installedPathSuffix:`/SKILL.md`,explorerPathSuffix:`/SKILL.md`,sortByName:!0,removedToastTitle:`Skill removed`},e[0]=t):t=e[0];let n=$e(t),r=s(Qt),i=r.find(e=>e.projectId===n.selectedProjectId)??null,a=Lt(),o=Jt(n.installedFilePaths),c;e[1]!==o.loadingPopularSkills||e[2]!==n.loading?(c=[n.loading,o.loadingPopularSkills],e[1]=o.loadingPopularSkills,e[2]=n.loading,e[3]=c):c=e[3];let u=Ve(n.selectedProjectId?`${n.selectedProjectId}:${n.selectedThreadId??``}`:null,c),d;e[4]!==o.selectedSourceId||e[5]!==n.installedFilePaths||e[6]!==n.loadItems||e[7]!==n.selectedThreadId||e[8]!==n.setInstalledFilePaths||e[9]!==n.triggerExplorerRefresh?(d=function(e){return Yt({threadId:n.selectedThreadId,selectedSourceId:o.selectedSourceId,installedFilePaths:n.installedFilePaths,setInstalledFilePaths:n.setInstalledFilePaths,triggerExplorerRefresh:n.triggerExplorerRefresh,reloadSkills:n.loadItems},e)},e[4]=o.selectedSourceId,e[5]=n.installedFilePaths,e[6]=n.loadItems,e[7]=n.selectedThreadId,e[8]=n.setInstalledFilePaths,e[9]=n.triggerExplorerRefresh,e[10]=d):d=e[10];let f=d,p;e[11]!==n.loadItems||e[12]!==n.selectedProjectId||e[13]!==n.selectedThreadId||e[14]!==n.triggerExplorerRefresh?(p=function(e,t){return Xt({projectId:n.selectedProjectId,threadId:n.selectedThreadId,triggerExplorerRefresh:n.triggerExplorerRefresh,reloadSkills:n.loadItems},e,t)},e[11]=n.loadItems,e[12]=n.selectedProjectId,e[13]=n.selectedThreadId,e[14]=n.triggerExplorerRefresh,e[15]=p):p=e[15];let m=p,h;e[16]===n?h=e[17]:(h=function(e){e||n.setDeleteConfirm(null)},e[16]=n,e[17]=h);let g=h,_;e[18]===n?_=e[19]:(_=function(){n.deleteConfirm&&n.handleDelete(n.deleteConfirm)},e[18]=n,e[19]=_);let v=_,y;e[20]===n?y=e[21]:(y=function(e){n.loadItems(),n.triggerExplorerRefresh(),R(At(e))},e[20]=n,e[21]=y);let b=y,x=i?l(i):null,S;return e[22]!==o||e[23]!==a||e[24]!==m||e[25]!==v||e[26]!==g||e[27]!==f||e[28]!==b||e[29]!==n||e[30]!==u||e[31]!==r||e[32]!==x?(S={installed:n,projects:r,selectedProjectName:x,dialogs:a,available:o,pageLoading:u,handleInstallPreviewSkill:f,handleConfirmModelInvocation:m,handleDeleteDialogOpenChange:g,handleDeleteConfirm:v,handlePluginInstalled:b},e[22]=o,e[23]=a,e[24]=m,e[25]=v,e[26]=g,e[27]=f,e[28]=b,e[29]=n,e[30]=u,e[31]=r,e[32]=x,e[33]=S):S=e[33],S}function Qt(e){return e.projects}function $t(){let e=(0,Y.c)(101),t=Zt(),{installed:n,dialogs:r,available:i}=t;if(!n.selectedProjectId){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(Ie,{children:`Select a project to manage skills.`}),e[0]=t):t=e[0],t}let a,o;e[1]===r?(a=e[2],o=e[3]):(a=()=>r.setShowAddDialog(!0),o=()=>r.setShowUrlDialog(!0),e[1]=r,e[2]=a,e[3]=o);let s;e[4]!==r.openInvocationDialog||e[5]!==n.handleOpenInExplorer||e[6]!==n.items||e[7]!==n.selectedThreadId||e[8]!==n.setDeleteConfirm||e[9]!==a||e[10]!==o?(s=(0,Z.jsx)(Mt,{skills:n.items,threadId:n.selectedThreadId,onOpenSkill:n.handleOpenInExplorer,onDelete:n.setDeleteConfirm,onAddManual:a,onAddUrl:o,onChangeModelInvocation:r.openInvocationDialog}),e[4]=r.openInvocationDialog,e[5]=n.handleOpenInExplorer,e[6]=n.items,e[7]=n.selectedThreadId,e[8]=n.setDeleteConfirm,e[9]=a,e[10]=o,e[11]=s):s=e[11];let c;e[12]===r?c=e[13]:(c=e=>r.setPreviewSkill(e),e[12]=r,e[13]=c);let l;e[14]!==i.selectedSourceId||e[15]!==r?(l=e=>r.setPreviewSkill({...e,sourceId:e.sourceId??i.selectedSourceId}),e[14]=i.selectedSourceId,e[15]=r,e[16]=l):l=e[16];let u;e[17]===r?u=e[18]:(u=()=>r.setShowAddSourceDialog(!0),e[17]=r,e[18]=u);let d;e[19]!==i.availableCatalog||e[20]!==i.availableCatalogLoading||e[21]!==i.availablePopular||e[22]!==i.availableSearch||e[23]!==i.isDefaultSource||e[24]!==i.selectedCustomSource||e[25]!==i.selectedSourceId||e[26]!==i.setAvailableSearch||e[27]!==i.setSelectedSourceId||e[28]!==i.sources||e[29]!==c||e[30]!==l||e[31]!==u?(d=(0,Z.jsx)(vt,{availableSearch:i.availableSearch,onSearchChange:i.setAvailableSearch,selectedSourceId:i.selectedSourceId,onSourceChange:i.setSelectedSourceId,sources:i.sources,selectedCustomSource:i.selectedCustomSource,availableCatalogLoading:i.availableCatalogLoading,isDefaultSource:i.isDefaultSource,availablePopular:i.availablePopular,availableCatalog:i.availableCatalog,onPreviewPopular:c,onPreviewCatalog:l,onAddSource:u}),e[19]=i.availableCatalog,e[20]=i.availableCatalogLoading,e[21]=i.availablePopular,e[22]=i.availableSearch,e[23]=i.isDefaultSource,e[24]=i.selectedCustomSource,e[25]=i.selectedSourceId,e[26]=i.setAvailableSearch,e[27]=i.setSelectedSourceId,e[28]=i.sources,e[29]=c,e[30]=l,e[31]=u,e[32]=d):d=e[32];let f;e[33]!==t.pageLoading||e[34]!==s||e[35]!==d?(f=(0,Z.jsxs)(De,{loading:t.pageLoading,children:[s,d]}),e[33]=t.pageLoading,e[34]=s,e[35]=d,e[36]=f):f=e[36];let p=r.previewSkill!==null,m=i.isDefaultSource?void 0:i.selectedSourceId,h;e[37]!==r.handlePreviewDialogOpenChange||e[38]!==r.previewSkill||e[39]!==t.handleInstallPreviewSkill||e[40]!==p||e[41]!==m?(h=(0,Z.jsx)(dt,{open:p,onOpenChange:r.handlePreviewDialogOpenChange,skill:r.previewSkill,catalogSourceId:m,onInstall:t.handleInstallPreviewSkill}),e[37]=r.handlePreviewDialogOpenChange,e[38]=r.previewSkill,e[39]=t.handleInstallPreviewSkill,e[40]=p,e[41]=m,e[42]=h):h=e[42];let g;e[43]!==r.invocationSkill||e[44]!==r.setShowInvocationDialog||e[45]!==r.showInvocationDialog||e[46]!==t.handleConfirmModelInvocation?(g=(0,Z.jsx)(It,{open:r.showInvocationDialog,onOpenChange:r.setShowInvocationDialog,skill:r.invocationSkill,onConfirm:t.handleConfirmModelInvocation}),e[43]=r.invocationSkill,e[44]=r.setShowInvocationDialog,e[45]=r.showInvocationDialog,e[46]=t.handleConfirmModelInvocation,e[47]=g):g=e[47];let _,v,y;e[48]===i?(_=e[49],v=e[50],y=e[51]):(_=e=>{i.addSource(e),R({title:`Skill source added`,description:`${e.title} is now available in the source list.`})},v=e=>{i.updateSource(e),R({title:`Skill source updated`,description:`${e.title} has been saved.`})},y=e=>{i.removeSource(e),R({title:`Skill source removed`,description:`The custom source has been deleted.`})},e[48]=i,e[49]=_,e[50]=v,e[51]=y);let b;e[52]!==i.selectedCustomSource||e[53]!==r.setShowAddSourceDialog||e[54]!==r.showAddSourceDialog||e[55]!==_||e[56]!==v||e[57]!==y?(b=(0,Z.jsx)(ft,{open:r.showAddSourceDialog,onOpenChange:r.setShowAddSourceDialog,editingSource:i.selectedCustomSource,onSourceAdded:_,onSourceUpdated:v,onSourceDeleted:y}),e[52]=i.selectedCustomSource,e[53]=r.setShowAddSourceDialog,e[54]=r.showAddSourceDialog,e[55]=_,e[56]=v,e[57]=y,e[58]=b):b=e[58];let x;e[59]!==r||e[60]!==n?(x=()=>{r.setShowAddDialog(!1),n.loadItems(),n.triggerExplorerRefresh()},e[59]=r,e[60]=n,e[61]=x):x=e[61];let S;e[62]!==n.selectedThreadId||e[63]!==x?(S=(0,Z.jsx)(B,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,Z.jsx)(et,{threadId:n.selectedThreadId,onSkillCreated:x})}),e[62]=n.selectedThreadId,e[63]=x,e[64]=S):S=e[64];let C;e[65]!==r.setShowAddDialog||e[66]!==r.showAddDialog||e[67]!==S?(C=(0,Z.jsx)(V,{open:r.showAddDialog,onOpenChange:r.setShowAddDialog,children:S}),e[65]=r.setShowAddDialog,e[66]=r.showAddDialog,e[67]=S,e[68]=C):C=e[68];let w;e[69]===r?w=e[70]:(w=e=>r.setPluginImportUrl(e),e[69]=r,e[70]=w);let T;e[71]!==r.setShowUrlDialog||e[72]!==r.showUrlDialog||e[73]!==w?(T=(0,Z.jsx)(mt,{open:r.showUrlDialog,onOpenChange:r.setShowUrlDialog,onSubmit:w}),e[71]=r.setShowUrlDialog,e[72]=r.showUrlDialog,e[73]=w,e[74]=T):T=e[74];let E;e[75]===r?E=e[76]:(E=()=>r.setPluginImportUrl(null),e[75]=r,e[76]=E);let D;e[77]===t?D=e[78]:(D=e=>{let{mcpOnly:n}=e;t.handlePluginInstalled(n)},e[77]=t,e[78]=D);let O;e[79]!==r.pluginImportUrl||e[80]!==n.selectedProjectId||e[81]!==t.projects||e[82]!==t.selectedProjectName||e[83]!==E||e[84]!==D?(O=(0,Z.jsx)(Me,{url:r.pluginImportUrl,projectId:n.selectedProjectId,projectName:t.selectedProjectName,projects:t.projects,onSelectProject:en,onClose:E,onInstalled:D}),e[79]=r.pluginImportUrl,e[80]=n.selectedProjectId,e[81]=t.projects,e[82]=t.selectedProjectName,e[83]=E,e[84]=D,e[85]=O):O=e[85];let k=n.deleteConfirm!==null,A=`Are you sure you want to delete the skill "${n.deleteConfirm?.name}"? This action cannot be undone.`,j;e[86]!==n.deleting||e[87]!==t.handleDeleteConfirm||e[88]!==t.handleDeleteDialogOpenChange||e[89]!==k||e[90]!==A?(j=(0,Z.jsx)(Be,{open:k,onOpenChange:t.handleDeleteDialogOpenChange,title:`Delete Skill`,description:A,onConfirm:t.handleDeleteConfirm,confirming:n.deleting}),e[86]=n.deleting,e[87]=t.handleDeleteConfirm,e[88]=t.handleDeleteDialogOpenChange,e[89]=k,e[90]=A,e[91]=j):j=e[91];let M;return e[92]!==h||e[93]!==g||e[94]!==b||e[95]!==C||e[96]!==T||e[97]!==O||e[98]!==j||e[99]!==f?(M=(0,Z.jsxs)(Z.Fragment,{children:[f,h,g,b,C,T,O,j]}),e[92]=h,e[93]=g,e[94]=b,e[95]=C,e[96]=T,e[97]=O,e[98]=j,e[99]=f,e[100]=M):M=e[100],M}function en(){}export{$t as SettingsSkillsView,$t as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Wt as i}from"./dist-FJzwWcMv.js";import{r as a}from"./store-DCnnNgwq.js";import{s as o,t as s}from"./utils-uGptTPGm.js";import{cn as c,p as l}from"./lucide-react-CMzSV2MP.js";import{t as u}from"./button-zYjzm__g.js";import{g as d,h as f,n as p,t as m,u as h}from"./dist-BhdiICUV.js";import{o as g}from"./dist-lnsB93_y.js";import{C as _,N as v,pr as y,vr as b,zt as x}from"./api-CX0sFbpL.js";import{t as S}from"./dist-OixawqbU.js";import{n as C,r as w,t as T}from"./dist-B6u0s1jB.js";import{n as E}from"./explorer-tab-context-BxUVwWQQ.js";import{t as D}from"./use-toast-xpb5jNtN.js";import{t as O}from"./dist-CSssbxDI.js";import{Ct as k,Dr as A,Er as j,Ft as M,Mt as N,Ot as P,Pt as F,Tr as I,bt as L,er as R,jt as ee,wr as z,wt as B,xt as V}from"./index-DpDgcOE9.js";import{t as te}from"./delete-confirm-dialog-DvJ5VuAy.js";import{t as H}from"./use-settings-page-loading-CpaBd260.js";import{i as ne,r as re,s as ie}from"./settings-list-DajPoFxt.js";import{i as U,n as W,r as G}from"./slug-utils-DhQjuU2J.js";var K=t(),q=e(n(),1),J=r(),Y=`Radio`,[X,Z]=f(Y),[Q,ae]=X(Y),oe=q.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:i=!1,required:a,disabled:s,value:c=`on`,onCheck:l,form:u,...f}=e,[p,m]=q.useState(null),g=o(t,e=>m(e)),_=q.useRef(!1),v=p?u||!!p.closest(`form`):!0;return(0,J.jsxs)(Q,{scope:n,checked:i,disabled:s,children:[(0,J.jsx)(h.button,{type:`button`,role:`radio`,"aria-checked":i,"data-state":de(i),"data-disabled":s?``:void 0,disabled:s,value:c,...f,ref:g,onClick:d(e.onClick,e=>{i||l?.(),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,J.jsx)(ue,{control:p,bubbles:!_.current,name:r,value:c,checked:i,required:a,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});oe.displayName=Y;var se=`RadioIndicator`,ce=q.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=ae(se,n);return(0,J.jsx)(p,{present:r||a.checked,children:(0,J.jsx)(h.span,{"data-state":de(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});ce.displayName=se;var le=`RadioBubbleInput`,ue=q.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let s=q.useRef(null),c=o(s,a),l=O(n),u=g(t);return q.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[l,n,r]),(0,J.jsx)(h.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:c,style:{...i.style,...u,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});ue.displayName=le;function de(e){return e?`checked`:`unchecked`}var fe=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],$=`RadioGroup`,[pe,me]=f($,[w,Z]),he=w(),ge=Z(),[_e,ve]=pe($),ye=q.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:s=!1,orientation:c,dir:l,loop:u=!0,onValueChange:d,...f}=e,p=he(n),g=S(l),[_,v]=m({prop:a,defaultProp:i??null,onChange:d,caller:$});return(0,J.jsx)(_e,{scope:n,name:r,required:o,disabled:s,value:_,onValueChange:v,children:(0,J.jsx)(C,{asChild:!0,...p,orientation:c,dir:g,loop:u,children:(0,J.jsx)(h.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":c,"data-disabled":s?``:void 0,dir:g,...f,ref:t})})})});ye.displayName=$;var be=`RadioGroupItem`,xe=q.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...i}=e,a=ve(be,n),s=a.disabled||r,c=he(n),l=ge(n),u=q.useRef(null),f=o(t,u),p=a.value===i.value,m=q.useRef(!1);return q.useEffect(()=>{let e=e=>{fe.includes(e.key)&&(m.current=!0)},t=()=>m.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,J.jsx)(T,{asChild:!0,...c,focusable:!s,active:p,children:(0,J.jsx)(oe,{disabled:s,required:a.required,checked:p,...l,...i,name:a.name,ref:f,onCheck:()=>a.onValueChange(i.value),onKeyDown:d(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:d(i.onFocus,()=>{m.current&&u.current?.click()})})})});xe.displayName=be;var Se=`RadioGroupIndicator`,Ce=q.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e;return(0,J.jsx)(ce,{...ge(n),...r,ref:t})});Ce.displayName=Se;var we=ye,Te=xe,Ee=Ce,De=q.forwardRef((e,t)=>{let n=(0,K.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`grid gap-2`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,J.jsx)(we,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});De.displayName=we.displayName;var Oe=q.forwardRef((e,t)=>{let n=(0,K.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`aspect-square h-4 w-4 rounded-full border border-brand text-brand ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(Ee,{className:`flex items-center justify-center`,children:(0,J.jsx)(c,{className:`h-2.5 w-2.5 fill-current text-current`})}),n[5]=o):o=n[5];let l;return n[6]!==i||n[7]!==t||n[8]!==a?(l=(0,J.jsx)(Te,{ref:t,className:a,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=l):l=n[9],l});Oe.displayName=Te.displayName;function ke({projectId:e,threadId:t,onCommandCreated:n}){let[r,a]=(0,q.useState)(``),[o,c]=(0,q.useState)(``),[l,u]=(0,q.useState)(``),[d,f]=(0,q.useState)(`default`),[p,m]=(0,q.useState)(!1),h=G(r),g=W(h),v=async()=>{if(!(!g||!e)){m(!0);try{await _(h,``,{description:o.trim()||void 0,argumentHint:l.trim()||void 0,mode:d===`plan`?`plan`:void 0},`project`,t??void 0),D({title:`Command created`,description:`Command '/${h}' was created successfully.`}),a(``),c(``),u(``),f(`default`),n?.(h)}catch(e){D({title:`Error`,description:e instanceof Error?e.message:`Failed to create command`,variant:`destructive`})}finally{m(!1)}}};return e?(0,J.jsx)(F,{children:(0,J.jsxs)(L,{children:[(0,J.jsx)(B,{title:`Add Slash Command`,description:`Saved as a .md file in .agents/commands in the selected project workspace.`,sticky:!0,className:`pr-10`}),(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(V,{title:`Command Name`,controlLayout:`stack`,className:`pt-6`,children:[(0,J.jsx)(I,{id:`commandName`,value:r,onChange:e=>a(e.target.value),placeholder:`e.g. review`,disabled:p}),r?(0,J.jsxs)(`p`,{className:s(i.caption,`mt-2`),children:[`Command: `,(0,J.jsxs)(`span`,{className:`font-mono`,children:[`/`,h||`...`]})]}):null]}),(0,J.jsx)(V,{title:`Description`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsx)(I,{id:`commandDescription`,value:o,onChange:e=>c(e.target.value),placeholder:`Brief description shown in autocomplete`,disabled:p})}),(0,J.jsx)(V,{title:`Argument Hint`,description:`Shows after the command name to guide users what to type`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsx)(I,{id:`argumentHint`,value:l,onChange:e=>u(e.target.value),placeholder:`e.g. <focus-area> or <branch-name>`,disabled:p})}),(0,J.jsx)(V,{title:`Mode`,description:d==="default"?`Standard chat mode`:`Activates plan mode when this command is used`,controlLayout:`stack`,className:`pt-6`,children:(0,J.jsxs)(De,{value:d,onValueChange:e=>f(e),className:`flex gap-4`,disabled:p,children:[(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(Oe,{value:`default`,id:`mode-default`}),(0,J.jsx)(z,{htmlFor:`mode-default`,className:s(i.labelNormal,`cursor-pointer`),children:`Default`})]}),(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(Oe,{value:`plan`,id:`mode-plan`}),(0,J.jsx)(z,{htmlFor:`mode-plan`,className:s(i.labelNormal,`cursor-pointer`),children:`Plan`})]})]})}),(0,J.jsx)(U,{onContinue:()=>void v(),disabled:!g,creating:p})]})]})}):(0,J.jsx)(ee,{title:`No project selected`,children:`Please select a project to add a slash command.`})}function Ae(e,t){let[n,r]=(0,q.useState)([]),[i,a]=(0,q.useState)(!0),[o,s]=(0,q.useState)(new Map),c=(0,q.useCallback)(async()=>{if(!t){a(!1),r([]),s(new Map);return}a(!0);try{let e=(await x(t)).filter(function(e){return e.scope===`project`&&!e.isBuiltIn});r(e),s(new Map(e.map(e=>[e.name,e.filePath])))}catch{r([]),s(new Map)}finally{a(!1)}},[t]);return(0,q.useLayoutEffect)(()=>{t&&a(!0)},[e,t]),(0,q.useEffect)(()=>{c()},[c]),{commands:n,loading:i,installedCommands:o,setInstalledCommands:s,loadCommands:c}}function je(){let e=(0,K.c)(6),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,q.useState)(t),[i,a]=(0,q.useState)(!0),o,s;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{a(!0),y().then(r).catch(()=>r([])).finally(()=>a(!1))},s=[],e[1]=o,e[2]=s):(o=e[1],s=e[2]),(0,q.useEffect)(o,s);let c;return e[3]!==i||e[4]!==n?(c={popularCommands:n,loadingPopularCommands:i},e[3]=i,e[4]=n,e[5]=c):c=e[5],c}function Me(e){let t=e.metadata?.description?.trim();return t&&t.length>0?t:`No description`}function Ne(e,t){return e.filter(e=>!t.has(e.name))}function Pe(e,t){let n=(0,K.c)(3),r;return n[0]!==t||n[1]!==e?(r=function(n){e(n),t(`explorer`)},n[0]=t,n[1]=e,n[2]=r):r=n[2],r}function Fe(e){return(0,q.useCallback)(async function(t){e.setDeleting(!0);try{if(!e.selectedThreadId)return;await v(t.filePath,e.selectedThreadId),e.setExplorerClearPath(t.filePath),e.triggerExplorerRefresh(),e.setInstalledCommands(e=>{let n=new Map(e);return n.delete(t.name),n}),D({title:`Command removed`,description:`/${t.name}`}),e.setDeleteConfirm(null),await e.loadCommands()}catch(e){D({title:`Error`,description:e instanceof Error?e.message:`Failed to remove command`,variant:`destructive`})}finally{e.setDeleting(!1)}},[e.loadCommands,e.selectedThreadId,e.triggerExplorerRefresh,e.setExplorerClearPath])}function Ie(e){return(0,q.useCallback)(async function(t){if(!(!e.selectedThreadId||e.installedCommands.has(t.name)))try{if(t.gitHubRepo&&t.gitHubFolder){let n=`.agents/commands`;await b(e.selectedThreadId,t.gitHubRepo,t.gitHubFolder,n);let r=`${n}/${t.name}.md`;e.setInstalledCommands(e=>new Map(e).set(t.name,r))}else{let n=await _(t.name,t.content,{description:t.description,argumentHint:t.argumentHint},`project`,e.selectedThreadId);e.setInstalledCommands(e=>new Map(e).set(t.name,n.filePath))}e.triggerExplorerRefresh(),e.loadCommands(),D({title:`Command installed`,description:`/${t.name}`})}catch(e){D({title:`Error`,description:e instanceof Error?e.message:`Failed to install command`,variant:`destructive`})}},[e.selectedThreadId,e.installedCommands,e.triggerExplorerRefresh,e.loadCommands])}function Le(){let e=(0,K.c)(7),t=a(ze),n=a(Re),{openChatDockPanel:r}=R(),{setPendingExplorerPath:i,triggerExplorerRefresh:o,setExplorerClearPath:s}=E(),c;return e[0]!==r||e[1]!==t||e[2]!==n||e[3]!==s||e[4]!==i||e[5]!==o?(c={selectedProjectId:t,selectedThreadId:n,openChatDockPanel:r,setPendingExplorerPath:i,triggerExplorerRefresh:o,setExplorerClearPath:s},e[0]=r,e[1]=t,e[2]=n,e[3]=s,e[4]=i,e[5]=o,e[6]=c):c=e[6],c}function Re(e){return e.selectedThreadId}function ze(e){return e.selectedProjectId}function Be(){let e=(0,K.c)(5),[t,n]=(0,q.useState)(!1),[r,i]=(0,q.useState)(null),[a,o]=(0,q.useState)(!1),[s,c]=(0,q.useState)(``),l;return e[0]!==s||e[1]!==r||e[2]!==a||e[3]!==t?(l={showAddDialog:t,setShowAddDialog:n,deleteConfirm:r,setDeleteConfirm:i,deleting:a,setDeleting:o,availableSearch:s,setAvailableSearch:c},e[0]=s,e[1]=r,e[2]=a,e[3]=t,e[4]=l):l=e[4],l}function Ve(e,t){return e?`${e}:${t??``}`:null}function He(){let e=(0,K.c)(41),t=Le(),n=Be(),{selectedProjectId:r,selectedThreadId:i,openChatDockPanel:a,setPendingExplorerPath:o,triggerExplorerRefresh:s,setExplorerClearPath:c}=t,{showAddDialog:l,setShowAddDialog:u,deleteConfirm:d,setDeleteConfirm:f,deleting:p,setDeleting:m,availableSearch:h,setAvailableSearch:g}=n,{commands:_,loading:v,installedCommands:y,setInstalledCommands:b,loadCommands:x}=Ae(r,i),{popularCommands:S,loadingPopularCommands:C}=je(),w;e[0]!==r||e[1]!==i?(w=Ve(r,i),e[0]=r,e[1]=i,e[2]=w):w=e[2];let T;e[3]!==v||e[4]!==C?(T=[v,C],e[3]=v,e[4]=C,e[5]=T):T=e[5];let E=H(w,T),D=Pe(o,a),O;e[6]!==x||e[7]!==i||e[8]!==f||e[9]!==m||e[10]!==c||e[11]!==b||e[12]!==s?(O={selectedThreadId:i,loadCommands:x,triggerExplorerRefresh:s,setExplorerClearPath:c,setDeleting:m,setDeleteConfirm:f,setInstalledCommands:b},e[6]=x,e[7]=i,e[8]=f,e[9]=m,e[10]=c,e[11]=b,e[12]=s,e[13]=O):O=e[13];let k=Fe(O),A;e[14]!==y||e[15]!==x||e[16]!==i||e[17]!==b||e[18]!==s?(A={selectedThreadId:i,installedCommands:y,setInstalledCommands:b,triggerExplorerRefresh:s,loadCommands:x},e[14]=y,e[15]=x,e[16]=i,e[17]=b,e[18]=s,e[19]=A):A=e[19];let j=Ie(A),M;e[20]!==y||e[21]!==S?(M=Ne(S,y),e[20]=y,e[21]=S,e[22]=M):M=e[22];let N=M,P;return e[23]!==N||e[24]!==h||e[25]!==_||e[26]!==d||e[27]!==p||e[28]!==k||e[29]!==j||e[30]!==D||e[31]!==x||e[32]!==E||e[33]!==r||e[34]!==i||e[35]!==g||e[36]!==f||e[37]!==u||e[38]!==l||e[39]!==s?(P={selectedProjectId:r,selectedThreadId:i,commands:_,showAddDialog:l,setShowAddDialog:u,deleteConfirm:d,setDeleteConfirm:f,deleting:p,availableSearch:h,setAvailableSearch:g,pageLoading:E,availableCommands:N,handleDelete:k,handleOpenInExplorer:D,getCommandSubtitle:Me,handleInstallPopular:j,loadCommands:x,triggerExplorerRefresh:s},e[23]=N,e[24]=h,e[25]=_,e[26]=d,e[27]=p,e[28]=k,e[29]=j,e[30]=D,e[31]=x,e[32]=E,e[33]=r,e[34]=i,e[35]=g,e[36]=f,e[37]=u,e[38]=l,e[39]=s,e[40]=P):P=e[40],P}function Ue(){let e=(0,K.c)(63),{selectedProjectId:t,selectedThreadId:n,commands:r,showAddDialog:a,setShowAddDialog:o,deleteConfirm:c,setDeleteConfirm:d,deleting:f,availableSearch:p,setAvailableSearch:m,pageLoading:h,availableCommands:g,handleDelete:_,handleOpenInExplorer:v,getCommandSubtitle:y,handleInstallPopular:b,loadCommands:x,triggerExplorerRefresh:S}=He();if(!t){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(ee,{children:`Select a project to manage slash commands.`}),e[0]=t):t=e[0],t}let C;e[1]===o?C=e[2]:(C=()=>o(!0),e[1]=o,e[2]=C);let w=!n,T;e[3]!==C||e[4]!==w?(T=(0,J.jsx)(ie,{title:`Installed Slash Commands`,tooltip:`Project slash commands you run with / in chat.`,action:(0,J.jsx)(u,{onClick:C,disabled:w,children:`Add Command`})}),e[3]=C,e[4]=w,e[5]=T):T=e[5];let E;e[6]===n?E=e[7]:(E=!n&&(0,J.jsx)(k,{children:`Select a thread to add or install slash commands.`}),e[6]=n,e[7]=E);let D;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(D={icon:l,title:`No slash commands installed`,description:`Add slash commands to create quick actions in chat.`},e[8]=D):D=e[8];let O;e[9]===y?O=e[10]:(O=e=>(0,J.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,J.jsxs)(`div`,{className:s(i.body,`truncate`),children:[`/`,e.name]}),(0,J.jsx)(`div`,{className:s(i.compact,`truncate text-muted-foreground`),children:y(e)})]}),e[9]=y,e[10]=O);let F;e[11]===v?F=e[12]:(F=e=>v(e.filePath),e[11]=v,e[12]=F);let I;e[13]!==r||e[14]!==d||e[15]!==O||e[16]!==F?(I=(0,J.jsx)(re,{showHeader:!1,loading:!1,items:r,emptyState:D,getKey:Xe,columnsClassName:`grid-cols-[minmax(0,1fr)_auto_1.75rem]`,renderContent:O,renderMiddle:Ye,onItemClick:F,itemClickLabel:Je,onDelete:d,deleteAriaLabel:qe,deleteTooltip:`Remove this slash command from the project`}),e[13]=r,e[14]=d,e[15]=O,e[16]=F,e[17]=I):I=e[17];let L;e[18]!==E||e[19]!==I?(L=(0,J.jsxs)(N,{className:`pt-6`,children:[E,I]}),e[18]=E,e[19]=I,e[20]=L):L=e[20];let R;e[21]!==T||e[22]!==L?(R=(0,J.jsxs)(M,{className:`shrink-0`,children:[T,L]}),e[21]=T,e[22]=L,e[23]=R):R=e[23];let z;e[24]!==b||e[25]!==n?(z=e=>(0,J.jsx)(u,{type:`button`,variant:`outline`,size:`sm`,className:`opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,disabled:!n,onClick:()=>void b(e),children:`Install`}),e[24]=b,e[25]=n,e[26]=z):z=e[26];let B;e[27]!==g||e[28]!==p||e[29]!==m||e[30]!==z?(B=(0,J.jsx)(ne,{title:`Available Slash Commands`,tooltip:`Browse and install slash commands from the catalog.`,emptyLabel:`No available commands found.`,searchValue:p,onSearchChange:m,items:g,getKey:Ke,renderName:Ge,getSubtitle:We,renderAction:z}),e[27]=g,e[28]=p,e[29]=m,e[30]=z,e[31]=B):B=e[31];let V;e[32]!==h||e[33]!==B||e[34]!==R?(V=(0,J.jsxs)(P,{loading:h,children:[R,B]}),e[32]=h,e[33]=B,e[34]=R,e[35]=V):V=e[35];let H;e[36]!==x||e[37]!==o||e[38]!==S?(H=()=>{o(!1),x(),S()},e[36]=x,e[37]=o,e[38]=S,e[39]=H):H=e[39];let U;e[40]!==t||e[41]!==n||e[42]!==H?(U=(0,J.jsx)(A,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,J.jsx)(ke,{projectId:t,threadId:n,onCommandCreated:H})}),e[40]=t,e[41]=n,e[42]=H,e[43]=U):U=e[43];let W;e[44]!==o||e[45]!==a||e[46]!==U?(W=(0,J.jsx)(j,{open:a,onOpenChange:o,children:U}),e[44]=o,e[45]=a,e[46]=U,e[47]=W):W=e[47];let G=c!==null,q;e[48]===d?q=e[49]:(q=e=>!e&&d(null),e[48]=d,e[49]=q);let Y=`Are you sure you want to delete "/${c?.name}"? This action cannot be undone.`,X;e[50]!==c||e[51]!==_?(X=()=>{c&&_(c)},e[50]=c,e[51]=_,e[52]=X):X=e[52];let Z;e[53]!==f||e[54]!==G||e[55]!==q||e[56]!==Y||e[57]!==X?(Z=(0,J.jsx)(te,{open:G,onOpenChange:q,title:`Delete Slash Command`,description:Y,onConfirm:X,confirming:f}),e[53]=f,e[54]=G,e[55]=q,e[56]=Y,e[57]=X,e[58]=Z):Z=e[58];let Q;return e[59]!==V||e[60]!==W||e[61]!==Z?(Q=(0,J.jsxs)(J.Fragment,{children:[V,W,Z]}),e[59]=V,e[60]=W,e[61]=Z,e[62]=Q):Q=e[62],Q}function We(e){return e.description}function Ge(e){return`/${e.name}`}function Ke(e){return e.id}function qe(e){return`Delete /${e.name}`}function Je(e){return`Open /${e.name} in Files`}function Ye(e){return e.metadata?.mode?(0,J.jsx)(`span`,{className:s(i.compact,`bg-muted px-1.5 py-0.5 rounded flex-shrink-0`),children:e.metadata.mode}):(0,J.jsx)(`div`,{})}function Xe(e){return e.filePath}export{Ue as SettingsSlashCommandsView,Ue as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n}from"./react-vendor-Ee0-5T4I.js";import{Ft as r,It as i,Lt as a,Pt as o,Rt as s,W as c,at as l,gn as u,pn as d,zt as f}from"./dist-FJzwWcMv.js";import{f as p}from"./utils-uGptTPGm.js";var m=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.ClearUnreadAutomatedChat=`CLEAR_UNREAD_AUTOMATED_CHAT`,e.SelectThread=`SELECT_THREAD`,e.SelectProject=`SELECT_PROJECT`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.RestoreQueuedChatMessage=`RESTORE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetStreamAgentMode=`SET_STREAM_AGENT_MODE`,e.SetStreamGoalRun=`SET_STREAM_GOAL_RUN`,e.SetContextUsage=`SET_CONTEXT_USAGE`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.OpenSidebar=`OPEN_SIDEBAR`,e.CloseSidebar=`CLOSE_SIDEBAR`,e.OpenProjectPanel=`OPEN_PROJECT_PANEL`,e.CloseProjectPanel=`CLOSE_PROJECT_PANEL`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.SetGitAuthRequest=`SET_GIT_AUTH_REQUEST`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.RemoveThread=`REMOVE_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.ClearPaneCompleted=`CLEAR_PANE_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.UpdateChatTitle=`UPDATE_CHAT_TITLE`,e.FocusChatInput=`FOCUS_CHAT_INPUT`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateMessage=`UPDATE_MESSAGE`,e.UpdateMessageCheckpointRef=`UPDATE_MESSAGE_CHECKPOINT_REF`,e.SetDevServerToolSession=`SET_DEV_SERVER_TOOL_SESSION`,e.SetThreadToolSession=`SET_THREAD_TOOL_SESSION`,e.ClearThreadToolSession=`CLEAR_THREAD_TOOL_SESSION`,e.SetThreadCreationSummary=`SET_THREAD_CREATION_SUMMARY`,e.ClearThreadCreationSummary=`CLEAR_THREAD_CREATION_SUMMARY`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.UpdateToolExecutionOutput=`UPDATE_TOOL_EXECUTION_OUTPUT`,e.AppendToolExecutionOutput=`APPEND_TOOL_EXECUTION_OUTPUT`,e.AppendSubagentEvent=`APPEND_SUBAGENT_EVENT`,e.AppendSubagentEvents=`APPEND_SUBAGENT_EVENTS`,e.ClearToolCallProgress=`CLEAR_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.IncrementStreamEventCount=`INCREMENT_STREAM_EVENT_COUNT`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e.ClearSelection=`CLEAR_SELECTION`,e.SetChatInputDraft=`SET_CHAT_INPUT_DRAFT`,e.ClearChatInputDraft=`CLEAR_CHAT_INPUT_DRAFT`,e.StartAutoRoute=`START_AUTO_ROUTE`,e.EndAutoRoute=`END_AUTO_ROUTE`,e.AddChatPane=`ADD_CHAT_PANE`,e.RemoveChatPane=`REMOVE_CHAT_PANE`,e.SetFocusedPane=`SET_FOCUSED_PANE`,e.SetNewChatStarting=`SET_NEW_CHAT_STARTING`,e.SetPrimaryConversationId=`SET_PRIMARY_CONVERSATION_ID`,e.SetPaneConversationId=`SET_PANE_CONVERSATION_ID`,e.SetPaneMessages=`SET_PANE_MESSAGES`,e.AddPaneMessage=`ADD_PANE_MESSAGE`,e.SetActiveStreamPane=`SET_ACTIVE_STREAM_PANE`,e.HydrateProjectChatPanes=`HYDRATE_PROJECT_CHAT_PANES`,e.SetRunCommandSaved=`SET_RUN_COMMAND_SAVED`,e.ClearRunCommandSaved=`CLEAR_RUN_COMMAND_SAVED`,e}({}),h=l,ee={projects:[],cloneRootPath:null,projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:0,primaryConversationId:void 0,queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingEventCount:0,threadStreamingStates:{},threadMultiPaneStates:{},projectModelSelections:{},conversationModelSelections:{},sidebarOpen:!0,projectPanelView:`projects`,projectPanelProjectId:null,savedRunCommandProjectId:null,isCreatingProject:!1,gitAuthRequest:null,configUpdatedAt:0,processingThreadIds:[],processingRuns:[],completedThreadIds:[],completedThreadPaneIds:{},completedPaneIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},subagentTranscripts:{},devServerToolSession:null,threadToolSessions:{},threadCreationSummaries:{},pendingChatMessage:null,diffComments:{},chatInputDrafts:{},pendingAutoRoutes:{},focusedPane:`primary`,extraChatPanes:{},activeStreamPane:null},te={open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};function g(e,t){return`${e}:${t}`}function ne(e,t,n=h){return t?e[g(t,n)]??null:null}function re(e,t){switch(t.type){case m.StartAutoRoute:{let n=g(t.route.threadId,t.route.paneId);return{...e,pendingAutoRoutes:{...e.pendingAutoRoutes,[n]:t.route}}}case m.EndAutoRoute:{let n=g(t.threadId,t.paneId);if(!e.pendingAutoRoutes[n])return e;let{[n]:r,...i}=e.pendingAutoRoutes;return{...e,pendingAutoRoutes:i}}default:return null}}function ie(e,t){let n=`${t}:`,r=new Set([h]);for(let t of Object.keys(e))t.startsWith(n)&&r.add(t.slice(n.length));return[...r]}function ae(e,t){let n=t?`${t}:`:null,r=``;for(let t of Object.keys(e))n&&!t.startsWith(n)||e[t].isStreaming&&(r+=`${t}\n`);return r}function oe(e,t,n=h){return e.includes(`${y(t,n)}\n`)}function se(e,t){return e.includes(`${t}:`)}function ce(e,t,n,r){return t.includes(e)||se(n,e)?!0:r?.threadId===e}var le={isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingAgentMode:null,streamingGoalRun:!1,streamingEventCount:0},_=le;function v(){return{...le,streamingSegments:[]}}function y(e,t=h){return`${e}:${t}`}function b(e,t,n=h){return t?e[y(t,n)]??_:_}function ue(e,t){let n=new Set([h,...t.sessionPaneIds??[],...ie(t.streamingStates,e)]);for(let r of n)if(t.hasSession(r)||b(t.streamingStates,e,r).isStreaming)return!0;return!1}function x(e,t){return t.threadId??e.selectedThreadId}function de(e){return e??h}function fe(e,t,n,r){return!n||!t.includes(n)?!1:de(e)===r}function pe(e,t,n){return t?b(e.threadStreamingStates,t,n).isStreaming?!0:fe(e.activeStreamPane,e.processingThreadIds,t,n):!1}function S(e,t){return t.paneId??e.activeStreamPane??h}function me(e,t,n){return t===e.selectedThreadId?e.activeStreamPane===null?n===h:e.activeStreamPane===n:!1}function C(e,t,n,r,i=!1){if(!t)return{...e,...r,toolCallProgress:i?{}:e.toolCallProgress};let a=y(t,n),o={...e.threadStreamingStates,[a]:r};return me(e,t,n)?{...e,...r,threadStreamingStates:o,toolCallProgress:i?{}:e.toolCallProgress}:{...e,threadStreamingStates:o}}function he(){return{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1}}var w={focusedPane:h,extraChatPanes:{},activeStreamPane:null};function ge(){return{focusedPane:h,extraChatPanes:{},activeStreamPane:null}}function T(e){return{focusedPane:e.focusedPane,extraChatPanes:e.extraChatPanes,activeStreamPane:e.activeStreamPane}}function _e(e,t){return t?e[t]??w:w}function ve(e){let t={};for(let[n,r]of Object.entries(e))t[n]={...r,messages:[...r.messages]};return t}function E(e){return{...e,extraChatPanes:ve(e.extraChatPanes)}}function D(e,t,n){let r=E(n),i=t===null?e.threadMultiPaneStates:{...e.threadMultiPaneStates,[t]:r};return t===e.selectedThreadId?{...e,...r,threadMultiPaneStates:i}:{...e,threadMultiPaneStates:i}}function ye(e,t,n){let r=e.threadMultiPaneStates;return t&&(r={...r,[t]:E(T(e))}),{...E(_e(r,n)),threadMultiPaneStates:r}}function O(e,t){return D(e,e.selectedThreadId,{...T(e),...t})}function be(e,t){let n=e.chatPanesByThread[t];if(!n)return E(w);let r={};for(let e of n.panes)r[e.paneId]={conversationId:e.conversationId,messages:[],messagesLoaded:!1};return{focusedPane:n.focusedPaneId,extraChatPanes:r,activeStreamPane:null}}function xe(e,t){if(!t)return e;let n=ve(e.extraChatPanes);for(let[e,r]of Object.entries(t.extraChatPanes)){let t=n[e];if(!t){n[e]=r;continue}r.messagesLoaded&&(n[e]={...t,messages:r.messages,messagesLoaded:!0})}let r=t.focusedPane in n&&!(t.focusedPane in e.extraChatPanes);return{...e,extraChatPanes:n,focusedPane:r?t.focusedPane:e.focusedPane}}var Se=[];function Ce(e,t){return t===h?e.messages:e.extraChatPanes[t]?.messages??Se}function we(e,t){return t===h?e.primaryConversationId:e.extraChatPanes[t]?.conversationId}function Te(e,t){return t===h?e.messagesLoaded:e.extraChatPanes[t]?.messagesLoaded??!1}function Ee(e,t){let n=new Set(t.threadIds),r={...e.threadMultiPaneStates};for(let n of t.threadIds)r[n]=xe(be(t,n),n===e.selectedThreadId?T(e):e.threadMultiPaneStates[n]);return!e.selectedThreadId||!n.has(e.selectedThreadId)?{...e,threadMultiPaneStates:r}:{...e,...r[e.selectedThreadId],threadMultiPaneStates:r}}function De(e,t){return t.paneId===h?e:e.extraChatPanes[t.paneId]?O(e,{focusedPane:t.paneId}):O(e,{focusedPane:t.paneId,extraChatPanes:{...e.extraChatPanes,[t.paneId]:{conversationId:t.conversationId,messages:[],messagesLoaded:!1}}})}function Oe(e,t){if(t.paneId===h||!e.extraChatPanes[t.paneId])return e;let{[t.paneId]:n,...r}=e.extraChatPanes;return O(e,{extraChatPanes:r,focusedPane:e.focusedPane===t.paneId?h:e.focusedPane,activeStreamPane:e.activeStreamPane===t.paneId?null:e.activeStreamPane})}function ke(e,t){if(t.paneId===h)return{...e,messages:t.messages,messagesLoaded:!0};let n=e.extraChatPanes[t.paneId];return n?O(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:t.messages,messagesLoaded:!0}}}):e}function Ae(e,t){if(t.paneId===h)return e;let n=e.extraChatPanes[t.paneId];return n?O(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,conversationId:t.conversationId,messages:[],messagesLoaded:!0}}}):e}function je(e,t){if(t.paneId===h)return{...e,messages:[...e.messages,t.message]};let n=e.extraChatPanes[t.paneId];return n?O(e,{extraChatPanes:{...e.extraChatPanes,[t.paneId]:{...n,messages:[...n.messages,t.message]}}}):e}function Me(e,t){if(!e.selectedThreadId||t.paneId===null)return O(e,{activeStreamPane:null});let n=b(e.threadStreamingStates,e.selectedThreadId,t.paneId);return{...O(e,{activeStreamPane:t.paneId}),...n}}function Ne(e,t){switch(t.type){case m.HydrateProjectChatPanes:return Ee(e,t);case m.AddChatPane:return De(e,t);case m.RemoveChatPane:return Oe(e,t);case m.SetFocusedPane:return O(e,{focusedPane:t.paneId});case m.SetPaneConversationId:return Ae(e,t);case m.SetPaneMessages:return ke(e,t);case m.AddPaneMessage:return je(e,t);case m.SetActiveStreamPane:return Me(e,t);default:return null}}function Pe(e,t){return!!(t.historyEpoch!==void 0&&t.historyEpoch!==e.chatHistoryEpoch||t.conversationId&&e.primaryConversationId&&t.conversationId!==e.primaryConversationId)}function Fe(e,t){let n=e.selectedThreadId?e.threadCreationSummaries[e.selectedThreadId]:void 0;return!n||t.some(e=>e.messageId===n.messageId)?t:[n,...t]}function Ie(e,t){let n=t.paneId??h;if(n!==h){if(t.threadId&&t.threadId!==e.selectedThreadId)return e;let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:[...r.messages,t.message]}}}):e}return t.threadId&&t.threadId!==e.selectedThreadId?e:{...e,messages:[...e.messages,t.message]}}function Le(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=e.messages.some(e=>e.messageId===t.messageId)?e.messages.map(e=>e.messageId===t.messageId?{...e,content:t.content}:e):[...e.messages,{messageId:t.messageId,sender:`agent`,content:t.content,contentType:`markdown`,timestamp:new Date().toISOString(),isThinking:!1}];return{...e,messages:n}}function Re(e,t){if(t.threadId!==e.selectedThreadId)return e;let n=t.paneId??h;if(n!==h){let r=e.extraChatPanes[n];return r?D(e,e.selectedThreadId,{...T(e),extraChatPanes:{...e.extraChatPanes,[n]:{...r,messages:r.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}}):e}return{...e,messages:e.messages.map(e=>e.messageId===t.messageId?{...e,checkpointRef:t.checkpointRef}:e)}}function ze(e,t){if(!e.threadToolSessions[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadToolSessions;return{...e,threadToolSessions:r}}function Be(e,t){if(!e.threadCreationSummaries[t.threadId])return e;let{[t.threadId]:n,...r}=e.threadCreationSummaries;return{...e,threadCreationSummaries:r}}function Ve(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??``,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:t.executionOutput}}}}function He(e,t){let n=e.toolCallProgress[t.toolCallId],r=n?.executionOutput??``;return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{toolCallId:t.toolCallId,threadId:t.threadId||(n?.threadId??``),toolName:t.toolName??n?.toolName??`agent`,delta:n?.delta??``,partial:n?.partial??{role:`tool`,content:[]},executionOutput:r+t.delta}}}}function Ue(e,t){if(!t.toolCallId)return{...e,toolCallProgress:{}};let{[t.toolCallId]:n,...r}=e.toolCallProgress;return{...e,toolCallProgress:r}}function We(e,t){let{[t.threadId]:n,...r}=e.chatInputDrafts;return{...e,chatInputDrafts:r}}function Ge(e,t){let n=new Set(e.startingNewChatPaneIds);return t.isStarting?n.add(t.paneId):n.delete(t.paneId),{...e,startingNewChatPaneIds:[...n]}}function Ke(e,t){if(e.selectedThreadId===t.threadId&&e.selectedProjectId===t.projectId&&t.initialMessages===void 0)return t.focusInput&&!e.focusChatInput?{...e,focusChatInput:!0}:e;let n=ye(e,e.selectedThreadId,t.threadId),r=b(e.threadStreamingStates,t.threadId,h);return{...e,...r,...n,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:t.focusInput??!1,subagentTranscripts:{}}}function qe(e,t){let n=ye(e,e.selectedThreadId,``);return{...e,...v(),...n,selectedThreadId:null,selectedProjectId:t.projectId,messages:[],messagesLoaded:!0,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,focusChatInput:t.focusInput??!1,subagentTranscripts:{}}}function Je(e,t){return Pe(e,t)?e:{...e,messages:Fe(e,t.messages),messagesLoaded:!0}}function Ye(e,t){let n=t.conversationId?.trim()||void 0;return e.primaryConversationId===n?e:{...e,primaryConversationId:n}}function Xe(e,t){return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]}}function Ze(e,t){return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)}}function Qe(e,t){let n=e.queuedChatMessages.filter(e=>e.id!==t.message.id),r=Math.min(Math.max(t.index,0),n.length),i=[...n];return i.splice(r,0,t.message),{...e,queuedChatMessages:i}}function $e(e,t){let n=t.conversationId?.trim()||void 0;return{...e,messages:Fe(e,[]),messagesLoaded:!0,chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:n}}function et(e,t){return{...e,devServerToolSession:t.session}}function tt(e,t){return{...e,threadToolSessions:{...e.threadToolSessions,[t.session.threadId]:t.session}}}function nt(e,t){return{...e,threadCreationSummaries:{...e.threadCreationSummaries,[t.threadId]:t.message}}}function rt(e,t){let n=e.toolCallProgress[t.toolCallId];return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:{...n,...t.progress}}}}function k(e,t,n){let r=e.subagentTranscripts[t]??[];return{...e,subagentTranscripts:{...e.subagentTranscripts,[t]:r.concat(n)}}}function it(e,t){return k(e,t.toolCallId,[t.event])}function at(e,t){return k(e,t.toolCallId,t.events)}function ot(e,t){return{...e,pendingChatMessage:t.message}}function st(e,t){return{...e,pendingChatMessage:null}}function ct(e,t){return{...e,chatInputDrafts:{...e.chatInputDrafts,[t.threadId]:t.draft}}}function lt(e,t){return{...e,...v(),selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,startingNewChatPaneIds:[],chatHistoryEpoch:e.chatHistoryEpoch+1,primaryConversationId:void 0,...ge()}}var ut={[m.SetMessages]:Je,[m.SetPrimaryConversationId]:Ye,[m.AddMessage]:Ie,[m.EnqueueChatMessage]:Xe,[m.RemoveQueuedChatMessage]:Ze,[m.RestoreQueuedChatMessage]:Qe,[m.ClearMessages]:$e,[m.UpdateMessage]:Le,[m.UpdateMessageCheckpointRef]:Re,[m.SetDevServerToolSession]:et,[m.SetThreadToolSession]:tt,[m.ClearThreadToolSession]:ze,[m.SetThreadCreationSummary]:nt,[m.ClearThreadCreationSummary]:Be,[m.UpdateToolCallProgress]:rt,[m.UpdateToolExecutionOutput]:Ve,[m.AppendToolExecutionOutput]:He,[m.AppendSubagentEvent]:it,[m.AppendSubagentEvents]:at,[m.ClearToolCallProgress]:Ue,[m.SetPendingChatMessage]:ot,[m.ClearPendingChatMessage]:st,[m.SetChatInputDraft]:ct,[m.ClearChatInputDraft]:We,[m.SetNewChatStarting]:Ge,[m.SelectThread]:Ke,[m.SelectProject]:qe,[m.ClearSelection]:lt};function dt(e,t){let n=ut[t.type];return n?n(e,t):null}var ft=c(`store.project`);function pt(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function mt(e,t){return e.length===t.length&&e.every((e,n)=>e.threadId===t[n]?.threadId&&e.conversationId===t[n]?.conversationId&&e.isAwaitingHuman===t[n]?.isAwaitingHuman)}function ht(e,t,n){return e.some(e=>e.threadId===t&&e.conversationId===n)?e:[...e,{threadId:t,conversationId:n}]}function gt(e,t,n){return e?{id:t,provider:n,name:e.name??t,description:e.description??``,contextWindow:e.contextWindow,pricing:e.pricing,tarsk_use:e.tarsk_use,coding_index:e.coding_index,supportsImages:e.supportsImages}:{id:t,provider:n,name:t,description:``}}function _t(e,t){let n={...e};for(let e of t)for(let t of e.threads)t.model&&(n[t.threadId]=gt(n[t.threadId],t.model,t.modelProvider));return n}function vt(e,t){let n={...e};for(let e of t)for(let t of e.threads)for(let[e,r]of Object.entries(t.conversationModels??{}))n[e]||(n[e]=gt(void 0,r.model,r.modelProvider??void 0));return n}function yt(e,t){switch(t.type){case m.SetProjects:return{...e,projects:p(e.projects,t.projects),cloneRootPath:t.cloneRootPath===void 0?e.cloneRootPath:t.cloneRootPath,projectModelSelections:_t(e.projectModelSelections,t.projects),conversationModelSelections:vt(e.conversationModelSelections,t.projects)};case m.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case m.ClearUnreadAutomatedChat:return e.projects.some(e=>e.threads.some(e=>e.threadId===t.threadId&&e.hasUnreadAutomatedChat===!0))?{...e,projects:e.projects.map(e=>({...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,hasUnreadAutomatedChat:!1}:e)}))}:e;default:return null}}function bt(e,t){return e?.id===t.id&&e?.provider===t.provider}function xt(e,t){switch(t.type){case m.SetProjectModel:{let n=t.conversationId??null,r=e.projectModelSelections[t.threadId],i=n?e.conversationModelSelections[n]:void 0,a=e.projects.some(e=>e.threads.some(e=>e.threadId===t.threadId&&e.model===t.model.id&&e.modelProvider===t.model.provider)),o=n===null||bt(i,t.model);return a&&bt(r,t.model)&&o?e:(ft.debug(`Set project model`,{threadId:t.threadId,conversationId:t.conversationId,model:{id:t.model.id,provider:t.model.provider}}),{...e,projects:e.projects.map(e=>{let n=e.threads.some(e=>e.threadId===t.threadId);return{...e,...t.conversationId&&n?{lastSelectedModel:t.model.id,lastSelectedModelProvider:t.model.provider}:{},threads:e.threads.map(e=>e.threadId===t.threadId?{...e,model:t.model.id,modelProvider:t.model.provider}:e)}}),projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model},conversationModelSelections:n?{...e.conversationModelSelections,[n]:t.model}:e.conversationModelSelections})}default:return null}}function St(e,t){switch(t.type){case m.SetProcessingThreads:{let n=t.processingRuns??e.processingRuns.filter(e=>t.threadIds.includes(e.threadId));return pt(e.processingThreadIds,t.threadIds)&&mt(e.processingRuns,n)?e:{...e,processingThreadIds:t.threadIds,processingRuns:n}}case m.AddProcessingThread:{let n=e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId],r=t.conversationId?.trim(),i=r?ht(e.processingRuns,t.threadId,r):e.processingRuns;return n===e.processingThreadIds&&i===e.processingRuns?e:{...e,processingThreadIds:n,processingRuns:i}}case m.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId),processingRuns:e.processingRuns.filter(e=>e.threadId!==t.threadId)};default:return null}}function Ct(e,t){switch(t.type){case m.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,type:t.projectType,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case m.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case m.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};default:return null}}function wt(e,t){switch(t.type){case m.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case m.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case m.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case m.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};default:return null}}function Tt(e,t){switch(t.type){case m.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case m.RemoveThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case m.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case m.UpdateChatTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,chatTitles:{...e.chatTitles,[t.paneId]:t.title}}:e)}:e)};default:return null}}function Et(e,t){switch(t.type){case m.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId],completedThreadPaneIds:t.paneId===void 0?e.completedThreadPaneIds:{...e.completedThreadPaneIds,[t.threadId]:t.paneId},completedPaneIds:t.paneId===void 0||t.paneId===e.focusedPane||e.completedPaneIds.includes(t.paneId)?e.completedPaneIds:[...e.completedPaneIds,t.paneId]};case m.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case m.ClearPaneCompleted:{let n=Object.entries(e.completedThreadPaneIds).filter(([,e])=>e===t.paneId).map(([e])=>e);return{...e,completedThreadIds:e.completedThreadIds.filter(e=>!n.includes(e)),completedThreadPaneIds:Object.fromEntries(Object.entries(e.completedThreadPaneIds).filter(([,e])=>e!==t.paneId)),completedPaneIds:e.completedPaneIds.filter(e=>e!==t.paneId)}}default:return null}}function Dt(e,t){return yt(e,t)??xt(e,t)??St(e,t)??Ct(e,t)??wt(e,t)??Tt(e,t)??Et(e,t)}function Ot(e){return e.projects.find(t=>t.projectId===e.selectedProjectId)}function kt(e){return Ot(e)?.threads.find(t=>t.threadId===e.selectedThreadId)?.path}function A(e){return e.type===`tool-call-group`}var At=91;function jt(e){return e>=65&&e<=90||e>=97&&e<=122}function Mt(e,t){let n=e.length-1;for(;n>=t&&jt(e.charCodeAt(n));)n--;return n>=t&&e.charCodeAt(n)===At?n:-1}function Nt(e,t){let n=t!==void 0&&t.labelResumeOffset<=e.length,r=n?t.labelResumeOffset:0,i=n?t.label:void 0,a=n?t.contentStart:0,o=-1,s=-1,c=/\[([A-Za-z]+)\]\s*/g;c.lastIndex=r;for(let t=c.exec(e);t!==null;t=c.exec(e))i=t[1],o=t.index,s=t.index+t[0].length,a=s;let l=e.length;s===e.length&&(l=o);let u=Mt(e,Math.max(r,s));return u!==-1&&(l=Math.min(l,u)),{label:i,contentStart:a,labelResumeOffset:l}}function Pt(e,t,n,r){try{let i=JSON.parse(e.slice(t,n+1));if(Array.isArray(i)){for(let e of i)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&r.push(e)}}return!0}catch{return!1}}function Ft(e,t,n){let r=e?.openArray;if(!(!r||r.start<t||r.offset>n))return r}function It(e,t){let n=t!==void 0&&t.committedPos<=e,r=n?t.committedBlocks.slice():[],i=n?t.committedPos:0;return{blocks:r,pos:i,committedPos:i,committedCount:r.length,openArray:n?Ft(t,i,e):void 0}}function j(e,t){let n=t.trim();n&&e.push({type:`reasoning`,text:n})}function Lt(e,t){e.pos=t,e.committedPos=t,e.committedCount=e.blocks.length}function Rt(e,t){let n=t.openArray?.start??e.indexOf(`[`,t.pos);if(n===-1)return j(t.blocks,e.slice(t.pos)),!1;j(t.blocks,e.slice(t.pos,n));let r=t.openArray??Ut(n),i=Wt(e,r);return i===-1?(t.openArray=r,j(t.blocks,e.slice(n)),!1):(t.openArray=void 0,Pt(e,n,i,t.blocks)||j(t.blocks,e.slice(n,i+1)),Lt(t,i+1),!0)}function zt(e){let t=e.committedCount===e.blocks.length?e.blocks:e.blocks.slice(0,e.committedCount);return{blocks:e.blocks,committedBlocks:t,committedPos:e.committedPos,openArray:e.openArray}}function Bt(e,t){let n=It(e.length,t);for(;n.pos<e.length&&Rt(e,n););return zt(n)}function Vt(e,t){if(!e||typeof e!=`string`)return{blocks:null,scan:void 0};let n=e.trim();if(!n)return{blocks:null,scan:void 0};let r=Nt(n,t);if(r.label){let e=n.slice(r.contentStart);if(e)return{blocks:[{type:`reasoning`,text:e,label:r.label}],scan:{...r,committedBlocks:t?.committedBlocks??[],committedPos:t?.committedPos??0,openArray:t?.openArray}}}let{blocks:i,committedBlocks:a,committedPos:o,openArray:s}=Bt(n,t);return{blocks:i.length>0?i:null,scan:{...r,committedBlocks:a,committedPos:o,openArray:s}}}function Ht(e){return Vt(e).blocks}function Ut(e){return{start:e,offset:e,depth:0,inString:!1,escape:!1}}function Wt(e,t){let{depth:n,inString:r,escape:i}=t,a=t.offset;for(;a<e.length;a++){let o=e[a];if(r){i?i=!1:o===`\\`?i=!0:o===`"`&&(r=!1);continue}if(o===`"`){r=!0;continue}if(o===`[`)n++;else if(o===`]`&&(n--,n===0))return t.offset=a+1,t.depth=0,t.inString=!1,t.escape=!1,a}return t.offset=a,t.depth=n,t.inString=r,t.escape=i,-1}function Gt(e,t){return Wt(e,Ut(t))}function Kt(e,t=0){let n=[],r=t;for(;r<e.length;){for(;r<e.length&&/\s/.test(e.charAt(r));)r++;if(r>=e.length||e.charAt(r)!==`[`)break;let t=Gt(e,r);if(t===-1)break;try{let i=JSON.parse(e.slice(r,t+1));if(!Array.isArray(i))break;n.push(...M(i))}catch{break}r=t+1}return n.length===0?null:{blocks:n,nextIndex:r}}function M(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function qt(e){return Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e&&typeof e.label==`string`&&typeof e.pattern==`string`&&(e.scope===`session`||e.scope===`project`)):[]}function Jt(e){if(e.type!==`long_running_confirmation`||typeof e.prompt!=`object`||e.prompt===null||typeof e.prompt.question!=`string`||!Array.isArray(e.prompt.options))return[];let t=e.prompt;return[{type:`long_running_confirmation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:void 0,question:t.question,options:t.options.filter(e=>typeof e==`string`),context:typeof t.context==`string`?t.context:void 0}}]}function Yt(e){if(e.type!==`shell_permission`||typeof e.shellPermission!=`object`||e.shellPermission===null||typeof e.shellPermission.command!=`string`)return[];let t=e.shellPermission;return[{type:`shell_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`shell-permission`,command:t.command,source:t.source===`bash`||t.source===`skill_script`||t.source===`browser_js`?t.source:`bash`,wildcardOptions:qt(t.wildcardOptions)}}]}function Xt(e){if(e.type!==`seatbelt_escalation`||typeof e.seatbeltEscalation!=`object`||e.seatbeltEscalation===null)return[];let t=e.seatbeltEscalation;return typeof t.command==`string`?[{type:`seatbelt_escalation`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`seatbelt-escalation`,command:t.command,projectId:typeof t.projectId==`string`?t.projectId:``,scopes:[`once`,`project`,`session`]}}]:[]}function Zt(e){if(e.type!==`web_fetch_permission`||typeof e.webFetchPermission!=`object`||e.webFetchPermission===null||typeof e.webFetchPermission.hostname!=`string`)return[];let t=e.webFetchPermission;return[{type:`web_fetch_permission`,prompt:{toolCallId:typeof t.toolCallId==`string`?t.toolCallId:`web-fetch-permission`,hostname:t.hostname,url:typeof t.url==`string`?t.url:``,wildcardOptions:qt(t.wildcardOptions)}}]}function Qt(e){let t=[...Jt(e),...Yt(e),...Xt(e),...Zt(e)];if(t.length>0)return t;e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function $t(e){return P(e)?.some(e=>e.type===`tool_use`||e.type===`tool-result`)??!1}var en=/^```+|^~~~+/;function tn(e){let t=e.indexOf(`{`),n=e.indexOf(`[`);return t===-1?n:n===-1?t:Math.min(t,n)}function N(e){return en.test(e.trimStart())}function nn(e,t){return!t||t.resumeOffset===0||t.resumeOffset>e?{offset:0,inFence:!1}:{offset:t.resumeOffset,inFence:t.inFence}}function rn(e,t,n){if(N(e))return{kind:`fence`,inFence:!n};if(n)return{kind:`skip`};let r=tn(e);if(r===-1)return{kind:`skip`};let i=t+r;return{kind:`json`,index:i,scan:{fixedIndex:i,resumeOffset:t,inFence:n}}}function an(e,t,n){let r=e.slice(t),i=n||N(r)?-1:tn(r);return{index:i===-1?-1:t+i,scan:{fixedIndex:-1,resumeOffset:t,inFence:n}}}function on(e,t){if(t&&t.fixedIndex>=0)return{index:t.fixedIndex,scan:t};let n=nn(e.length,t),r=n.offset,i=n.inFence;for(;;){let t=e.indexOf(`
|
|
2
|
-
`,r);if(t===-1)return an(e,r,i);let n=rn(e.slice(r,t),r,i);if(n.kind===`json`)return{index:n.index,scan:n.scan};n.kind===`fence`&&(i=n.inFence),r=t+1}}function sn(e){return on(e).index}function cn(e){try{let t=JSON.parse(e);return Array.isArray(t)?M(t):typeof t==`object`&&t?Qt(t):null}catch{return e.startsWith(`[`)?ln(e):null}}function ln(e){let t=Kt(e);if(!t)return null;let n=e.slice(t.nextIndex).trim();return n?[...t.blocks,{type:`text`,text:n}]:t.blocks}function un(e){let t=Math.max(e.lastIndexOf(`]`),e.lastIndexOf(`}`));if(t===-1)return null;let n=e.substring(0,t+1);try{let r=JSON.parse(n),i=Array.isArray(r)?M(r):Qt(r),a=e.substring(t+1).trim();return a&&i.push({type:`text`,text:a}),i}catch{return null}}function P(e){return e?dn(e,sn(e)):null}function dn(e,t){return e?hn(e,e.trim(),t):null}var fn={failedLength:-1,failedJsonStart:-1};function pn(e,t){return e.indexOf(`]`,t)!==-1||e.indexOf(`}`,t)!==-1}function mn(e,t,n){let r=e.trim();if(n&&n.failedLength>=0&&n.failedJsonStart===t&&n.failedLength<=r.length&&!pn(r,n.failedLength))return{blocks:null,scan:n};let i=e?hn(e,r,t):null;return{blocks:i,scan:i===null?{failedLength:r.length,failedJsonStart:t}:fn}}function hn(e,t,n){if(t.startsWith(`{`)||t.startsWith(`[`)){let e=cn(t);if(e)return e}let r=[];if(n===-1)return null;let i=e.slice(0,n).trim();i&&r.push({type:`text`,text:i});let a=e.slice(n),o=ln(a);if(o)return r.push(...o),r;let s=un(a);return s?(r.push(...s),r):null}function F(e){return e.type===`tool_use`}function I(e){return e.type===`tool-result`}function gn(e){return e.type===`text`}function L(e){return typeof e==`string`?e.replace(/\\n/g,`
|
|
3
|
-
`).replace(/✅/g,`✓`):``}function _n(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];if(!r||!gn(r))break;t+=1}return t}function vn(e){let t=_n(e);return t===0?null:e.slice(e.length-t).filter(gn).map(e=>L(e.text).trim()).filter(e=>e.length>0).join(`
|
|
4
|
-
|
|
5
|
-
`).trim()||null}function yn(e){let t=P(e);return t?vn(t):L(e).trim()||null}var R=new WeakMap,bn=new WeakMap;function xn(e,t){let n=e.blocks.length;e.blocks.push(t),e.serializedBlocks.push(JSON.stringify(t)),t.type===`tool_use`?e.toolUseIndex.has(t.id)||e.toolUseIndex.set(t.id,n):t.type===`tool-result`&&(e.toolResultIndex.has(t.toolCallId)||e.toolResultIndex.set(t.toolCallId,n))}function Sn(e){return`[${e.join(`,`)}]`}function z(e,t){let n={blocks:e?e.blocks.slice():[],serializedBlocks:e?e.serializedBlocks.slice():[],toolUseIndex:e?new Map(e.toolUseIndex):new Map,toolResultIndex:e?new Map(e.toolResultIndex):new Map,serialized:``};for(let e of t){let t=e.type===`tool_use`?n.toolUseIndex.get(e.id):e.type===`tool-result`?n.toolResultIndex.get(e.toolCallId):void 0;t===void 0?xn(n,e):(n.blocks[t]=e,n.serializedBlocks[t]=JSON.stringify(e))}return n.serialized=Sn(n.serializedBlocks),n}function Cn(e){return z(void 0,e)}function wn(e){let t=bn.get(e);if(!(!t||e.chunks.length!==1||e.chunks[0]!==t.serialized))return t}function Tn(e){let t={type:`content`,chunks:[e.serialized]};return bn.set(t,e),R.set(t,{chunks:t.chunks,chunkCount:1,text:e.serialized,scan:void 0,parseScan:void 0,thinkingScan:void 0,blocks:e.blocks}),t}function En(e,t){let n={type:`content`,chunks:[e]};return R.set(n,{chunks:n.chunks,chunkCount:1,text:e,scan:void 0,parseScan:void 0,thinkingScan:void 0,blocks:t??(e.trim()?[{type:`text`,text:e}]:[])}),n}function Dn(e,t,n){let r=e[e.length-1];return r?.type===t?(r.chunks.push(n),[...e]):[...e,{type:t,chunks:[n]}]}function On(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n){if(n.type===`content`)return t;if(n.type!==`thinking`)return-1}}return-1}function kn(e){for(let t=e.length-1;t>=0;t--)if(e[t]?.type===`content`)return t;return-1}function B(e){return e.some(e=>e.type===`tool_use`||e.type===`tool-result`)}function An(e){let t=new Set,n=new Set,r=[];for(let i=e.length-1;i>=0;i--){let a=e[i];if(a){if(a.type===`tool_use`){if(t.has(a.id))continue;t.add(a.id),r.push(a);continue}if(a.type===`tool-result`){if(n.has(a.toolCallId))continue;n.add(a.toolCallId),r.push(a);continue}r.push(a)}}return r.reverse(),r}function jn(e,t){let n=kn(e),r=P(t);if(n===-1)return[...e,En(t,r)];let i=e[n],a;if(i?.type===`content`&&r&&B(r)){let e=wn(i),t=e?.blocks??V(i);B(t)&&(a=Tn(z(e??Cn(t),r)))}return[...e.slice(0,n),a??En(t,r),...e.slice(n+1)]}function Mn(e,t){let n=P(t);if(!n||!B(n))return Dn(e,`content`,t);let r=On(e),i;if(r>=0){let t=e[r];t?.type===`content`&&(i=wn(t)??Cn(V(t)))}let a=Tn(z(i,n));return r>=0?[...e.slice(0,r),a,...e.slice(r+1)]:[...e,a]}function Nn(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`content`)return n.chunks.join(``)}return``}function Pn(e,t){return[...e,{type:`long_running_confirmation`,prompt:t}]}function Fn(e,t){return[...e,{type:`shell_permission`,prompt:t}]}function In(e,t){return[...e,{type:`seatbelt_escalation`,prompt:t}]}function Ln(e,t){return[...e,{type:`web_fetch_permission`,prompt:t}]}function Rn(e,t,n){if(t.length<n)return!1;for(let r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0}function V(e){let t=R.get(e),n=t?Rn(t.chunks,e.chunks,t.chunkCount):!1;if(t&&n&&e.chunks.length===t.chunkCount)return t.blocks;let r=t!==void 0&&n,i=r?t.text+e.chunks.slice(t.chunkCount).join(``):e.chunks.join(``),a,o,s,c;if(e.type===`thinking`){let e=Vt(i,r?t.thinkingScan:void 0);c=e.scan,a=e.blocks??[]}else{let e=on(i,r?t.scan:void 0);o=e.scan;let n=mn(i,e.index,r?t.parseScan:void 0);s=n.scan,a=n.blocks??(i.trim()?[{type:`text`,text:i}]:[])}return R.set(e,{chunks:e.chunks,chunkCount:e.chunks.length,text:i,scan:o,parseScan:s,thinkingScan:c,blocks:a}),a}function H(e){let t=[];for(let n of e){if(n.type===`long_running_confirmation`){t.push({type:`long_running_confirmation`,prompt:n.prompt});continue}if(n.type===`shell_permission`){t.push({type:`shell_permission`,prompt:n.prompt});continue}if(n.type===`seatbelt_escalation`){t.push({type:`seatbelt_escalation`,prompt:n.prompt});continue}if(n.type===`web_fetch_permission`){t.push({type:`web_fetch_permission`,prompt:n.prompt});continue}t.push(...V(n))}return An(t)}function U(e){return e.type===`thinking-group`}function W(e,t=!1){let n=[],r=[],i,a=()=>{r.length>0&&(n.push({type:`thinking-group`,text:r.join(`
|
|
6
|
-
|
|
7
|
-
`),label:i,isCurrentlyStreaming:!1}),r=[],i=void 0)};for(let t of e)if(t.type===`reasoning`&&`text`in t){let e=t;r.push(e.text),e.label&&(i=e.label)}else a(),n.push(t);if(a(),t&&n.length>0){let e=n[n.length-1];e.type===`thinking-group`&&(e.isCurrentlyStreaming=!0)}return n}function zn(e,t){let n=e>0?` (${u(e)} token${e===1?``:`s`})`:``;return t===`MCP`?`Connecting MCP servers...${n}`:`Thinking${n}`}function Bn(e){let t=W(e,!0),n=t[t.length-1];return!n||!U(n)||!n.isCurrentlyStreaming?null:zn(d(n.text),n.label)}var Vn=new Set([`todo`]),G=new Set([`todo`,`ask_user`]),Hn=new Map(s.map((e,t)=>[e.id,t]));function Un(e){if(U(e))return!1;switch(e.type){case`text`:return e.text.trim().length>0;case`shell_permission`:case`seatbelt_escalation`:case`web_fetch_permission`:case`long_running_confirmation`:return!0;case`tool_use`:return e.name===`ask_user`;case`tool-result`:return!1}}function Wn(e){return U(e)?!1:e.type===`tool_use`?!Vn.has(e.name):e.type===`tool-result`?!G.has(e.toolName):!1}function K(e){let t=[],n=[];function r(){n.some(Wn)?t.push({type:`tool-call-group`,items:n}):t.push(...n),n=[]}for(let i of e)Un(i)?(n.length>0&&r(),t.push(i)):n.push(i);return n.length>0&&r(),t}function q(e){return e.length===0?0:e.split(`
|
|
8
|
-
`).length}function Gn(e){let t=0,n=0;if(Array.isArray(e.replacements)){for(let r of e.replacements)if(r&&typeof r==`object`){let e=r;typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText))}return{added:t,removed:n}}return typeof e.newText==`string`&&(t+=q(e.newText)),typeof e.oldText==`string`&&(n+=q(e.oldText)),{added:t,removed:n}}var Kn=new WeakMap;function qn(e){let t=Kn.get(e);if(t&&t.blockCount===e.length)return t;let n={blockCount:e.length,toolUsesById:new Map,resultToolCallIds:new Set,permissionCallIds:new Set};for(let t of e)F(t)?n.toolUsesById.has(t.id)||n.toolUsesById.set(t.id,t):I(t)?G.has(t.toolName)||n.resultToolCallIds.add(t.toolCallId):(t.type===`shell_permission`||t.type===`web_fetch_permission`||t.type===`long_running_confirmation`&&t.prompt.toolCallId)&&n.permissionCallIds.add(t.prompt.toolCallId);return Kn.set(e,n),n}function Jn(e){let t=typeof e.path==`string`&&e.path?e.path:null;return t?t.split(`/`).pop()??t:null}function Yn(e){let t=typeof e.description==`string`?e.description.trim():``;return t?`${t}…`:null}function Xn(e){return(typeof e.intention==`string`?e.intention.trim():``)||null}function Zn(e){let t=Xn(e);return t?`${t}…`:null}function Qn(e){let t=e.toLowerCase();return t===`run_js`||t===`run_web_worker`}function $n(e){return a(e.name,e.input)?i(`subagents`):r(e.name)}function er(e){return e.filter(e=>e===`subagents`).length}function tr(e,t){let n=e[0];return i(n!==void 0&&e.every(e=>e===n)?n:`other`).formatNeutral(t)}function J(e){return e.charAt(0).toUpperCase()+e.slice(1)}function nr(){return{categoryCounts:new Map,editedPaths:new Set,completedCommandBlocks:[],linesAdded:0,linesRemoved:0}}function rr(e){let t=[],n=new Map;for(let r of e)U(r)||(F(r)?t.push(r):I(r)&&n.set(r.toolCallId,r));return{toolUses:t,groupResults:n,groupToolUseIds:new Set(t.map(e=>e.id))}}function ir(e,t){let n=$n(e);t.categoryCounts.set(n.id,(t.categoryCounts.get(n.id)??0)+1),n.id===`commands`&&t.completedCommandBlocks.push(e);let r=e.name.toLowerCase();if(r===`edit`||r===`write`){let n=typeof e.input.path==`string`&&e.input.path?e.input.path:e.id;if(t.editedPaths.add(n),r===`edit`){let n=Gn(e.input);t.linesAdded+=n.added,t.linesRemoved+=n.removed}else typeof e.input.content==`string`&&(t.linesAdded+=q(e.input.content))}}function ar(e,t,n,r,i){let a=[],o=0,s=null;for(let c of e){if(Vn.has(c.name))continue;let e=t.has(c.id),l=r?.has(c.id)||n.resultToolCallIds.has(c.id);e?ir(c,i):l||(o+=1,a.push($n(c).id),s=c)}return{pendingCount:o,pendingCategoryIds:a,lastPending:s}}function or(e,t,n,r){let i=0;for(let a of e.values())if(!G.has(a.toolName)&&(a.isError===!0&&(i+=1),!t.has(a.toolCallId))){let e=n.toolUsesById.get(a.toolCallId);e?ir(e,r):r.categoryCounts.set(`other`,(r.categoryCounts.get(`other`)??0)+1)}return i}function sr(e,t){let n=[];for(let[r,i]of e)r===`other`||i===0||n.push({id:r,count:r===`files`?t.size:i});return n.sort((e,t)=>(Hn.get(e.id)??2**53-1)-(Hn.get(t.id)??2**53-1)),n}function cr(e,t,n,r){if(!e)return null;if(r.has(e.id))return`Awaiting permission · ${tr(n,t)}`;if(a(e.name,e.input))return Yn(e.input)??`${e.activeDisplayName??f(e.name)}…`;if(Qn(e.name))return Zn(e.input)??`${e.activeDisplayName??f(e.name)}…`;let i=e.activeDisplayName??f(e.name),o=Jn(e.input);return o?`${i} ${o}…`:`${i}…`}function lr(e){if(e.length!==1)return null;let t=e[0];return t&&Qn(t.name)?Xn(t.input):null}function ur(e){return e.toLowerCase()===`bash`}var dr=2e3,fr=/(?<!\d)(\d{1,3})(?:\.\d+)?%(?!\d)/g;function pr(e){if(!e)return null;let t=e.length>dr?e.slice(-2e3):e,n=null;for(let e of t.matchAll(fr)){let t=Number(e[1]);t>=0&&t<=100&&(n=t)}return n}function Y(e,t,n){let{toolUses:r,groupResults:i,groupToolUseIds:a}=rr(e),o=qn(t),s=o.permissionCallIds,c=nr(),{pendingCount:l,pendingCategoryIds:u,lastPending:d}=ar(r,i,o,n,c),f=or(i,a,o,c),p=sr(c.categoryCounts,c.editedPaths),m=c.editedPaths.size,h=cr(d,l,u,s),ee=lr(c.completedCommandBlocks),te=d&&ur(d.name)&&!s.has(d.id)?d.id:null;return{categories:p,distinctFiles:m,otherCount:c.categoryCounts.get(`other`)??0,pendingCount:l,pendingCategoryIds:u,linesAdded:c.linesAdded,linesRemoved:c.linesRemoved,errorCount:f,activeLabel:h,pendingCommandToolId:te,singleCommandTitle:ee}}function mr(e,t){let n=e.categories.slice(0,3),r=e.categories.slice(3).reduce((e,t)=>e+t.count,0),a=e.otherCount+r,s=n.map(t=>t.id===`commands`&&t.count===1&&e.singleCommandTitle?e.singleCommandTitle:i(t.id).formatPhrase(t.count)),c=``;s.length>0?(c=s.join(`, `),a>0&&(c+=`, and ${a} more`),c=J(c)):a>0&&(c=J(i(`other`).formatPhrase(a)));let l=er(e.pendingCategoryIds);if(l>0){let e=o(l);c=c?`${c} · ${e}`:J(e)}let u=t.showActive&&e.activeLabel!==null,d=e.pendingCount-l;if(!u&&d>0){let t=tr(e.pendingCategoryIds.filter(e=>e!==`subagents`),d);c=c?`${c} · ${t}`:J(t)}let f=e.linesAdded+e.linesRemoved>0?`+${e.linesAdded} −${e.linesRemoved}`:null,p=t.runningCommandProgress,m=u&&p!=null&&e.pendingCommandToolId!==null?`Running ${p}%…`:u?e.activeLabel:null;return{text:c,lineStats:f,errorCount:e.errorCount,activeLabel:m}}function hr(e){let t=K(W(e,!0));for(let n=t.length-1;n>=0;n--){let r=t[n];if(!A(r))continue;let i=Y(r.items,e);if(i.activeLabel===null)continue;if(i.pendingCommandToolId===null)return null;let a=r.items.find(e=>e.type===`tool_use`&&e.id===i.pendingCommandToolId)?.input.command;return typeof a==`string`?{toolCallId:i.pendingCommandToolId,command:a}:null}return null}function gr(e,t){let n=K(W(e,!0));for(let r=n.length-1;r>=0;r--){let i=n[r];if(!A(i))continue;let a=mr(Y(i.items,e),{showActive:!0,runningCommandProgress:t});if(a.activeLabel!==null)return a.activeLabel}return null}function _r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`long_running_confirmation`||n.type===`shell_permission`||n.type===`web_fetch_permission`)return t}return-1}function vr(e){return e.type===`content`||e.type===`thinking`?e.chunks.some(e=>e.trim().length>0):!1}function yr(e){let t=H(e),n=t.some(e=>F(e)&&e.name===`ask_user`),r=t.some(e=>I(e)&&e.toolName===`ask_user`);if(n&&!r)return!0;let i=_r(e);return i===-1?!1:!e.slice(i+1).some(vr)}function br(e){let t=H(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var xr=5e3;function Sr(){return{scan:{scannedText:``,processedOffset:0,inFence:!1,boundaryEnd:0},pendingStartedAt:null,revealed:!1,pendingText:``}}function Cr(e,t){t.startsWith(e.scannedText)||(e.scannedText=``,e.processedOffset=0,e.inFence=!1,e.boundaryEnd=0);let n=e.processedOffset;for(;;){let r=t.indexOf(`
|
|
9
|
-
`,n);if(r===-1)break;let i=t.slice(n,r);N(i)?e.inFence=!e.inFence:!e.inFence&&i.trim()===``&&(e.boundaryEnd=r+1),n=r+1}e.processedOffset=n,e.scannedText=t}function wr(e,t,n){Cr(e.scan,t);let r=t.slice(e.scan.boundaryEnd),i=t.slice(0,e.scan.boundaryEnd);return r===``?(e.pendingStartedAt=null,e.revealed=!1):e.pendingText!==``&&r.startsWith(e.pendingText)||(e.pendingStartedAt=n,e.revealed=!1),e.pendingText=r,!e.revealed&&e.pendingStartedAt!==null&&n-e.pendingStartedAt>=5e3&&(e.revealed=!0),{committedText:i,pendingText:r,revealed:e.revealed}}function Tr(e,t){switch(t.type){case m.SetStreaming:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:t.isStreaming})}case m.AppendStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingContent:i.streamingContent+t.content})}case m.SetStreamContent:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r),a=jn(i.streamingSegments,t.content);return C(e,n,r,{...i,streamingContent:t.content,streamingSegments:a})}case m.AppendStreamThinking:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingThinking:i.streamingThinking+t.content})}case m.IncrementStreamEventCount:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingEventCount:i.streamingEventCount+1})}case m.AppendStreamChunk:{let n=x(e,t),r=S(e,t),i=b(e.threadStreamingStates,n,r);return C(e,n,r,{...i,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?i.streamingContent+t.content:i.streamingContent,streamingThinking:t.chunkType===`thinking`?i.streamingThinking+t.content:i.streamingThinking})}case m.SetStreamModel:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingModel:t.model})}case m.SetStreamAgentMode:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingAgentMode:t.mode})}case m.SetStreamGoalRun:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),streamingGoalRun:!0})}case m.SetContextUsage:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),contextUsage:t.contextUsage})}case m.ResetStream:return C(e,x(e,t),S(e,t),v(),!0);case m.StopStream:{let n=x(e,t),r=S(e,t);return C(e,n,r,{...b(e.threadStreamingStates,n,r),isStreaming:!1,streamingGoalRun:!1})}default:return null}}function X(e,t){return e.terminalStates[t]??he()}function Er(e,t){switch(t.type){case m.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case m.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case m.ClearCommandOutput:return{...e,commandOutput:``};case m.ToggleTerminal:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,open:!n.open}}}}case m.SetTerminalOpen:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case m.QueueTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case m.ClearQueuedTerminalCommand:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,queuedCommand:null}}}}case m.AppendTerminalLine:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case m.ClearTerminalOutput:{let n=t.threadId??`default`,r=X(e,n);return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case m.SetTerminalHeight:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,height:t.height}}}}case m.SetTerminalCwd:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,cwd:t.cwd}}}}case m.SetTerminalRunning:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,isRunning:t.isRunning}}}}case m.SetTerminalHistory:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,history:t.history}}}}case m.SetTerminalHistoryIndex:{let n=X(e,t.threadId);return{...e,terminalStates:{...e.terminalStates,[t.threadId]:{...n,historyIndex:t.index}}}}default:return null}}function Dr(e,t){switch(t.type){case m.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case m.OpenSidebar:return e.sidebarOpen?e:{...e,sidebarOpen:!0};case m.CloseSidebar:return e.sidebarOpen?{...e,sidebarOpen:!1}:e;case m.OpenProjectPanel:return{...e,projectPanelView:`actions`,projectPanelProjectId:t.projectId};case m.CloseProjectPanel:return{...e,projectPanelView:`projects`,projectPanelProjectId:null};case m.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case m.SetGitAuthRequest:return{...e,gitAuthRequest:t.request};case m.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case m.FocusChatInput:return{...e,focusChatInput:!0};case m.ClearFocusChatInput:return{...e,focusChatInput:!1};case m.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};case m.SetRunCommandSaved:return e.savedRunCommandProjectId===t.projectId?e:{...e,savedRunCommandProjectId:t.projectId};case m.ClearRunCommandSaved:return e.savedRunCommandProjectId===null?e:{...e,savedRunCommandProjectId:null};default:return null}}var Or=[Tr,re,dt,Ne,Dt,Er,Dr];function kr(e,t){for(let n of Or){let r=n(e,t);if(r!==null)return r}return e}var Ar=new Set([m.AppendStreamChunk,m.IncrementStreamEventCount,m.SetStreamModel,m.AppendStreamContent,m.AppendStreamThinking,m.SetStreamContent,m.AppendSubagentEvent,m.AppendToolExecutionOutput,m.UpdateToolCallProgress,m.UpdateToolExecutionOutput]);function Z(e){return`${`threadId`in e&&typeof e.threadId==`string`?e.threadId:``}:${`paneId`in e&&typeof e.paneId==`string`?e.paneId:``}`}function jr(){return{appendChunkByPane:new Map,eventCountByPane:new Map,modelByPane:new Map,contentByPane:new Map,thinkingByPane:new Map,setContentByPane:new Map,lastSegmentActionByPane:new Map,toolProgressById:new Map,toolOutputById:new Map,subagentEventsByToolCallId:new Map,other:[]}}function Mr(e,t){let n=Z(t),r=e.appendChunkByPane.get(n);if(!r){e.appendChunkByPane.set(n,{thinkingContent:t.chunkType===`thinking`?t.content:``,contentContent:t.chunkType===`content`?t.content:``,lastAction:t});return}t.chunkType===`thinking`?r.thinkingContent+=t.content:t.chunkType===`content`&&(r.contentContent+=t.content),r.lastAction=t}function Nr(e,t){let n=Z(t),r=e.get(n);if(!r){e.set(n,{value:t.content,last:t});return}r.value+=t.content,r.last=t}function Pr(e){let t=jr();for(let n of e)switch(n.type){case m.AppendStreamChunk:Mr(t,n),t.lastSegmentActionByPane.set(Z(n),`append-chunk`);break;case m.IncrementStreamEventCount:t.eventCountByPane.set(Z(n),n);break;case m.SetStreamModel:t.modelByPane.set(Z(n),n);break;case m.AppendStreamContent:Nr(t.contentByPane,n);break;case m.AppendStreamThinking:Nr(t.thinkingByPane,n);break;case m.SetStreamContent:t.setContentByPane.set(Z(n),n),t.lastSegmentActionByPane.set(Z(n),`set-content`);break;case m.UpdateToolCallProgress:t.toolProgressById.set(n.toolCallId,n);break;case m.UpdateToolExecutionOutput:t.toolOutputById.set(n.toolCallId,n);break;case m.AppendSubagentEvent:{let e=t.subagentEventsByToolCallId.get(n.toolCallId);e?e.push(n.event):t.subagentEventsByToolCallId.set(n.toolCallId,[n.event]);break}default:t.other.push(n);break}return t}function Fr(e,t,n){for(let{value:r,last:i}of t.values())i.type===n&&e.push({...i,content:r})}function Ir(e){let t=[],{thinkingContent:n,contentContent:r,lastAction:i}=e;return n&&t.push({...i,chunkType:`thinking`,content:n,segments:i.segments}),r&&t.push({...i,chunkType:`content`,content:r,segments:i.segments}),!n&&!r&&t.push(i),t}function Lr(e,t){let n=new Set([...t.setContentByPane.keys(),...t.appendChunkByPane.keys()]);for(let r of n){let n=t.setContentByPane.get(r),i=t.appendChunkByPane.get(r),a=i?Ir(i):[];t.lastSegmentActionByPane.get(r)===`set-content`?(e.push(...a),n&&e.push(n)):(n&&e.push(n),e.push(...a))}}function Rr(e){let t=[];for(let n of e.modelByPane.values())t.push(n);for(let n of e.eventCountByPane.values())t.push(n);Fr(t,e.contentByPane,m.AppendStreamContent),Fr(t,e.thinkingByPane,m.AppendStreamThinking),Lr(t,e);for(let n of e.toolProgressById.values())t.push(n);for(let n of e.toolOutputById.values())t.push(n);for(let[n,r]of e.subagentEventsByToolCallId)t.push({type:m.AppendSubagentEvents,toolCallId:n,events:r});return t.push(...e.other),t}function zr(e){return e.length<=1?e:Rr(Pr(e))}function Br(e=ee){let t=e,n=new Set,r=0,i=[];function a(){return t}function o(){for(let e of n)e()}function s(e){let n=kr(t,e);n!==t&&(t=n)}function c(){if(r=0,i.length===0)return;let e=i.splice(0,i.length);for(let t of zr(e))s(t);o()}function l(e){if(Ar.has(e.type)){i.push(e),r===0&&(r=requestAnimationFrame(c));return}i.length>0&&(r!==0&&(cancelAnimationFrame(r),r=0),c()),s(e),o()}function u(e){return n.add(e),function(){n.delete(e)}}return{getState:a,dispatch:l,subscribe:u}}var Vr=t(),Q=e(n(),1),Hr=(0,Q.createContext)(null);function $(){let e=(0,Q.useContext)(Hr);if(!e)throw Error(`useAppStore must be used within an AppStoreContext.Provider`);return e}function Ur(e){let t=(0,Vr.c)(3),n=$(),r;t[0]!==e||t[1]!==n?(r=function(){return e(n.getState())},t[0]=e,t[1]=n,t[2]=r):r=t[2];let i=r;return(0,Q.useSyncExternalStore)(n.subscribe,i,i)}function Wr(){return $().dispatch}function Gr(e){let t=(0,Vr.c)(8),n=Wr(),r;t[0]===e?r=t[1]:(r=t=>(e?t.terminalStates[e]:void 0)??te,t[0]=e,t[1]=r);let i=Ur(r),a;t[2]!==n||t[3]!==e?(a=t=>{e&&n({...t,threadId:e})},t[2]=n,t[3]=e,t[4]=a):a=t[4];let o=a,s;return t[5]!==o||t[6]!==i?(s={terminalState:i,dispatch:o},t[5]=o,t[6]=i,t[7]=s):s=t[7],s}export{oe as $,jn as A,A as B,V as C,Pn as D,Dn as E,F,Te as G,kt as H,L as I,b as J,y as K,$t as L,Ln as M,yn as N,Mn as O,I as P,ue as Q,P as R,An as S,H as T,we as U,Ot as V,Ce as W,pe as X,fe as Y,ce as Z,Y as _,Gr as a,W as b,wr as c,yr as d,ne as et,pr as f,K as g,gr as h,$ as i,Fn as j,In as k,Sr as l,hr as m,Wr as n,h as nt,Br as o,mr as p,ae as q,Ur as r,xr as s,Hr as t,m as tt,br as u,zn as v,Nn as w,U as x,Bn as y,Ht as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{r as i,t as a}from"./query-keys-C2vEjHA1.js";import{$ as o,Q as s,W as c,Wt as l,at as u,b as d,et as f,nt as p,tt as m}from"./dist-FJzwWcMv.js";import{n as h,r as g,tt as _}from"./store-DCnnNgwq.js";import{t as v,u as y}from"./utils-uGptTPGm.js";import{B as b,F as x,M as S,U as C,V as w,Yt as T,Zt as E,_n as D,d as O,dt as k,ft as ee,it as te,k as ne,m as re,mt as ie,n as A,r as ae,sn as oe}from"./lucide-react-CMzSV2MP.js";import{t as j}from"./button-zYjzm__g.js";import{i as M,n as N,r as se,t as P}from"./tooltip-6qlOE6WT.js";import{Pi as ce,Yt as F,d as I,ea as le,kt as ue,xt as de}from"./api-CX0sFbpL.js";import{n as fe,r as pe}from"./scroll-area-BTpvIsIG.js";import{n as me}from"./chat-dock-context-DQmDS2i8.js";import{t as L}from"./progress-indicator-_fEKurQg.js";import{a as he,c as ge,i as _e,n as ve,o as R,r as ye,s as be,t as xe}from"./alert-dialog-Dq9tEk9t.js";import{t as Se}from"./use-toast-xpb5jNtN.js";import{a as Ce,n as we,t as Te}from"./suspense-resource-DzlMlIgR.js";import{$t as Ee,An as De,Ar as Oe,Bt as ke,Cn as Ae,Cr as je,Dn as Me,Dr as Ne,En as Pe,Er as Fe,Fn as Ie,Gt as Le,In as Re,It as ze,Jn as Be,Kn as Ve,Ln as He,Lt as Ue,Mn as We,Nn as Ge,On as Ke,Or as qe,Pn as Je,Qt as Ye,Rn as z,Rt as B,Sn as V,Tn as Xe,Tr as H,V as Ze,Vt as U,Zt as Qe,_n as $e,_r as W,bn as et,cn as tt,dn as G,f as nt,fn as K,gn as rt,gr as it,hn as q,j as at,jn as ot,jr as J,kn as st,kr as ct,ln as lt,mn as ut,mr as dt,on as ft,pn as pt,qn as mt,sn as ht,st as gt,un as _t,vn as vt,wn as yt,wr as Y,xn as bt,yn as xt,yr as St,zn as Ct}from"./index-DpDgcOE9.js";import{t as wt}from"./async-error-boundary-BS6v_PGo.js";var X=e(n(),1),Z=t(),Q=r();function Tt(e){let t=(0,Z.c)(10),{tag:n,className:r}=e,i;t[0]===r?i=t[1]:(i=v(l.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;t[2]===n.color?a=t[3]:(a=(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:n.color}}),t[2]=n.color,t[3]=a);let o;t[4]===n.name?o=t[5]:(o=(0,Q.jsx)(`span`,{className:`truncate`,children:n.name}),t[4]=n.name,t[5]=o);let s;return t[6]!==i||t[7]!==a||t[8]!==o?(s=(0,Q.jsxs)(`span`,{className:i,children:[a,o]}),t[6]=i,t[7]=a,t[8]=o,t[9]=s):s=t[9],s}var Et={Plan:`#EAB308`,Build:`#3B82F6`,Test:`#8B5CF6`,Review:`#F97316`,Done:`#22C55E`};function Dt(e){let t=(0,Z.c)(10),{status:n,className:r}=e,i;t[0]===r?i=t[1]:(i=v(l.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=Et[n],o;t[2]===a?o=t[3]:(o=(0,Q.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,Q.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,Q.jsxs)(`span`,{className:i,children:[o,s]}),t[6]=i,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}var Ot=c(`app.run-history-dialog`),kt={schedule:{label:`Schedule`,icon:oe},event:{label:`Event`,icon:A},manual:{label:`Manual`,icon:w}};function At(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`})}function jt(e){let t=(0,Z.c)(6),{trigger:n}=e,r=kt[n],i=r.icon,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=v(l.compact,`inline-flex shrink-0 items-center gap-1 rounded-full border border-border px-1.5 py-0.5 text-muted-foreground`),t[0]=a):a=t[0];let o;t[1]===i?o=t[2]:(o=(0,Q.jsx)(i,{className:`h-3 w-3`}),t[1]=i,t[2]=o);let s;return t[3]!==r.label||t[4]!==o?(s=(0,Q.jsxs)(`span`,{className:a,children:[o,r.label]}),t[3]=r.label,t[4]=o,t[5]=s):s=t[5],s}function Mt(e){let t=(0,Z.c)(23),{run:n,canOpen:r,onOpenRun:i}=e,a=r?`hover:bg-accent/40`:`cursor-default`,o;t[0]===a?o=t[1]:(o=v(`flex w-full items-center gap-2 rounded-md px-2 py-2 text-left transition-colors`,a),t[0]=a,t[1]=o);let s;t[2]!==i||t[3]!==n?(s=()=>i(n),t[2]=i,t[3]=n,t[4]=s):s=t[4];let c=!r,u,d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(te,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),d=v(l.body,`min-w-0 flex-1 truncate`),t[5]=u,t[6]=d):(u=t[5],d=t[6]);let f=n.threadTitle??`Conversation deleted`,p;t[7]===f?p=t[8]:(p=(0,Q.jsx)(`span`,{className:d,children:f}),t[7]=f,t[8]=p);let m;t[9]===n.trigger?m=t[10]:(m=(0,Q.jsx)(jt,{trigger:n.trigger}),t[9]=n.trigger,t[10]=m);let h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=v(l.caption,`shrink-0 tabular-nums text-muted-foreground`),t[11]=h):h=t[11];let g;t[12]===n.createdAt?g=t[13]:(g=At(n.createdAt),t[12]=n.createdAt,t[13]=g);let _;t[14]===g?_=t[15]:(_=(0,Q.jsx)(`span`,{className:h,children:g}),t[14]=g,t[15]=_);let y;return t[16]!==_||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==p||t[21]!==m?(y=(0,Q.jsxs)(`button`,{type:`button`,className:o,onClick:s,disabled:c,children:[u,p,m,_]}),t[16]=_,t[17]=o,t[18]=s,t[19]=c,t[20]=p,t[21]=m,t[22]=y):y=t[22],y}function Nt(e){let t=(0,Z.c)(19),{open:n,onOpenChange:r,projectId:i,taskId:a,onOpenRun:o}=e,[s,c]=(0,X.useState)(null),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(null),m,h;t[0]!==n||t[1]!==i||t[2]!==a?(m=()=>{if(!n)return;let e=!1;return d(!0),p(null),De(i,a).then(t=>{e||c(t)}).catch(t=>{Ot.error(`Failed to load task run history:`,t),e||p(t instanceof Error?t.message:String(t))}).finally(()=>{e||d(!1)}),()=>{e=!0}},h=[n,i,a],t[0]=n,t[1]=i,t[2]=a,t[3]=m,t[4]=h):(m=t[3],h=t[4]),(0,X.useEffect)(m,h);let g=!!o,_;t[5]!==r||t[6]!==o?(_=function(e){o&&(r(!1),o(e.threadId))},t[5]=r,t[6]=o,t[7]=_):_=t[7];let y=_,b;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsxs)(Oe,{children:[(0,Q.jsx)(J,{children:`Run History`}),(0,Q.jsx)(qe,{children:`Conversations created when this task ran, newest first.`})]}),t[8]=b):b=t[8];let x;t[9]!==g||t[10]!==f||t[11]!==y||t[12]!==u||t[13]!==s?(x=(0,Q.jsxs)(Ne,{className:`flex max-h-[min(36rem,85vh)] flex-col sm:max-w-lg`,children:[b,u?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-muted-foreground`,children:[(0,Q.jsx)(k,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{className:l.bodyMuted,children:`Loading runs…`})]}):f?(0,Q.jsxs)(`p`,{className:v(l.bodyMuted,`py-8 text-center text-destructive`),children:[`Failed to load run history: `,f]}):s&&s.length>0?(0,Q.jsx)(pe,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{className:`space-y-1 py-2`,children:s.map(e=>(0,Q.jsx)(Mt,{run:e,canOpen:g&&!!e.threadTitle,onOpenRun:y},e.id))})}):(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`py-8 text-center`),children:`No runs yet. Runs appear here after the task is triggered by its schedule, an event, or Run Now.`})]}),t[9]=g,t[10]=f,t[11]=y,t[12]=u,t[13]=s,t[14]=x):x=t[14];let S;return t[15]!==r||t[16]!==n||t[17]!==x?(S=(0,Q.jsx)(Fe,{open:n,onOpenChange:r,children:x}),t[15]=r,t[16]=n,t[17]=x,t[18]=S):S=t[18],S}function Pt(e){let t=(0,Z.c)(6);if(!e.show)return null;let n;return t[0]!==e.onOpenChange||t[1]!==e.onOpenRun||t[2]!==e.open||t[3]!==e.task.id||t[4]!==e.task.projectId?(n=(0,Q.jsx)(Nt,{open:e.open,onOpenChange:e.onOpenChange,projectId:e.task.projectId,taskId:e.task.id,onOpenRun:e.onOpenRun}),t[0]=e.onOpenChange,t[1]=e.onOpenRun,t[2]=e.open,t[3]=e.task.id,t[4]=e.task.projectId,t[5]=n):n=t[5],n}function Ft(e){let t=(0,Z.c)(3),{show:n,onSelect:r}=e;if(!n)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(St,{}),t[0]=i):i=t[0];let a;return t[1]===r?a=t[2]:(a=(0,Q.jsxs)(Q.Fragment,{children:[i,(0,Q.jsx)(W,{onClick:r,children:`Run History`})]}),t[1]=r,t[2]=a),a}function It({task:e,disabled:t=!1,showRunHistory:n=!1,triggerClassName:r,onStartInNewWorkspace:i,onMarkDone:a,onRunNow:o,onActingChange:s,onOpenRun:c}){let[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),p=Re(e)&&!e.triggerType,m=e.status!==`Done`&&!e.triggerType,h=He(e),g=t||l;async function _(e){u(!0),s?.(!0);try{await e()}finally{u(!1),s?.(!1)}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-1.5`,children:(0,Q.jsxs)(dt,{children:[(0,Q.jsx)(je,{asChild:!0,children:(0,Q.jsxs)(j,{variant:`ghost`,size:`icon`,className:v(`h-8 w-8 shrink-0`,`sm:data-[state=open]:opacity-100 sm:data-[state=open]:pointer-events-auto`,e.working&&`text-primary`,r),disabled:g,children:[(0,Q.jsx)(E,{className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Task actions`})]})}),(0,Q.jsxs)(it,{align:`end`,children:[h&&(0,Q.jsx)(W,{onClick:()=>void _(()=>o(e)),children:`Run Now`}),p&&(0,Q.jsx)(W,{onClick:()=>void _(()=>i(e)),children:`Start in a new workspace`}),m&&(0,Q.jsx)(W,{onClick:()=>void _(()=>a(e)),children:`Mark as Done`}),(0,Q.jsx)(Ft,{show:n,onSelect:()=>f(!0)})]})]})}),(0,Q.jsx)(Pt,{show:n,open:d,onOpenChange:f,task:e,onOpenRun:c})]})}function Lt(e){return!!(e.tags&&e.tags.length>0)}var Rt=`transition-opacity sm:opacity-0 sm:pointer-events-none sm:can-hover:group-hover/task-row:opacity-100 sm:can-hover:group-hover/task-row:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto`;function zt(e){return e.status!==`Ready`||e.modified||Lt(e)||Ct(e)}function Bt(e){let t=(0,Z.c)(14),{task:n,className:r}=e,i;t[0]===n.status?i=t[1]:(i=n.status!==`Ready`&&(0,Q.jsx)(Dt,{status:n.status}),t[0]=n.status,t[1]=i);let a;t[2]===n.modified?a=t[3]:(a=n.modified&&(0,Q.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-brand/15 px-2 py-0.5 text-[11px] font-medium leading-none text-brand`,children:`modified`}),t[2]=n.modified,t[3]=a);let o;t[4]===n?o=t[5]:(o=Ct(n)&&(0,Q.jsx)(`span`,{className:`inline-flex items-center rounded-full bg-red-500/15 px-2 py-0.5 text-[11px] font-medium leading-none text-red-600 dark:text-red-400`,children:`paused`}),t[4]=n,t[5]=o);let s;t[6]===n.tags?s=t[7]:(s=n.tags?.map(function(e){return(0,Q.jsx)(Tt,{tag:e},e.id)}),t[6]=n.tags,t[7]=s);let c;return t[8]!==r||t[9]!==i||t[10]!==a||t[11]!==o||t[12]!==s?(c=(0,Q.jsxs)(`div`,{className:r,children:[i,a,o,s]}),t[8]=r,t[9]=i,t[10]=a,t[11]=o,t[12]=s,t[13]=c):c=t[13],c}function Vt(e){let t=(0,Z.c)(13),{task:n,className:r,onThreadSelect:i}=e;if(!n.threadId||!i)return null;let a=n.threadId,o;t[0]===r?o=t[1]:(o=v(`h-8 w-8 shrink-0`,r),t[0]=r,t[1]=o);let s;t[2]!==i||t[3]!==a?(s=()=>i(a),t[2]=i,t[3]=a,t[4]=s):s=t[4];let c,l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(T,{className:`h-4 w-4`}),l=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Open chat`}),t[5]=c,t[6]=l):(c=t[5],l=t[6]);let u;t[7]!==o||t[8]!==s?(u=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsxs)(j,{variant:`ghost`,size:`icon`,className:o,onClick:s,children:[c,l]})}),t[7]=o,t[8]=s,t[9]=u):u=t[9];let d;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(N,{children:`Open chat`}),t[10]=d):d=t[10];let f;return t[11]===u?f=t[12]:(f=(0,Q.jsxs)(P,{children:[u,d]}),t[11]=u,t[12]=f),f}function Ht(e){let t=(0,Z.c)(18),{task:n,className:r,showRunHistory:i,onThreadSelect:a,onStartInNewWorkspace:o,onMarkDone:s,onRunNow:c,onOpenRun:l}=e,[u,d]=(0,X.useState)(!1),f;t[0]!==u||t[1]!==n?(f=(u||n.working)&&(0,Q.jsx)(L,{size:`sm`}),t[0]=u,t[1]=n,t[2]=f):f=t[2];let p;t[3]!==a||t[4]!==n?(p=(0,Q.jsx)(Vt,{task:n,className:Rt,onThreadSelect:a}),t[3]=a,t[4]=n,t[5]=p):p=t[5];let m;t[6]!==s||t[7]!==l||t[8]!==c||t[9]!==o||t[10]!==i||t[11]!==n?(m=(0,Q.jsx)(It,{task:n,showRunHistory:i,onStartInNewWorkspace:o,onMarkDone:s,onRunNow:c,onActingChange:d,onOpenRun:l,triggerClassName:Rt}),t[6]=s,t[7]=l,t[8]=c,t[9]=o,t[10]=i,t[11]=n,t[12]=m):m=t[12];let h;return t[13]!==r||t[14]!==f||t[15]!==p||t[16]!==m?(h=(0,Q.jsxs)(`div`,{className:r,children:[f,p,m]}),t[13]=r,t[14]=f,t[15]=p,t[16]=m,t[17]=h):h=t[17],h}function Ut(e){let t=(0,Z.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({viewMode:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i;return t[3]!==n||t[4]!==r?(i=r===`list`?(0,Q.jsx)(Gt,{...n}):(0,Q.jsx)(Wt,{...n}),t[3]=n,t[4]=r,t[5]=i):i=t[5],i}function Wt(e){let t=(0,Z.c)(46),{task:n,now:r,onOpenEdit:i,showRunHistory:a,onThreadSelect:o,onStartInNewWorkspace:s,onMarkDone:c,onRunNow:u,onOpenRun:d}=e,f;t[0]!==r||t[1]!==n?(f=z(n,r),t[0]=r,t[1]=n,t[2]=f):f=t[2];let p=f,m;t[3]!==i||t[4]!==n?(m=()=>i(n),t[3]=i,t[4]=n,t[5]=m):m=t[5];let h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=v(l.label,`truncate leading-normal`),t[6]=h):h=t[6];let g;t[7]===n.title?g=t[8]:(g=(0,Q.jsx)(`p`,{className:h,children:n.title}),t[7]=n.title,t[8]=g);let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=v(l.caption,`mt-1 line-clamp-2 break-all text-muted-foreground max-sm:hidden`),t[9]=_):_=t[9];let y;t[10]===n.description?y=t[11]:(y=(0,Q.jsx)(`p`,{className:_,children:n.description}),t[10]=n.description,t[11]=y);let b;t[12]===p?b=t[13]:(b=p&&(0,Q.jsx)(`p`,{className:v(l.caption,`mt-1 text-muted-foreground`),children:p}),t[12]=p,t[13]=b);let x;t[14]===n?x=t[15]:(x=zt(n)&&(0,Q.jsx)(Bt,{task:n,className:`mt-2 flex flex-wrap gap-1`}),t[14]=n,t[15]=x);let S;t[16]!==m||t[17]!==g||t[18]!==y||t[19]!==b||t[20]!==x?(S=(0,Q.jsxs)(`button`,{type:`button`,className:`col-start-1 row-start-1 block min-w-0 overflow-hidden text-left sm:flex-1`,onClick:m,children:[g,y,b,x]}),t[16]=m,t[17]=g,t[18]=y,t[19]=b,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==i||t[23]!==n?(C=()=>i(n),t[22]=i,t[23]=n,t[24]=C):C=t[24];let w;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(w=v(l.caption,`line-clamp-4 break-all text-muted-foreground`),t[25]=w):w=t[25];let T;t[26]===n.description?T=t[27]:(T=(0,Q.jsx)(`p`,{className:w,children:n.description}),t[26]=n.description,t[27]=T);let E;t[28]!==C||t[29]!==T?(E=(0,Q.jsx)(`button`,{type:`button`,className:`col-span-2 row-start-2 block min-w-0 overflow-hidden text-left sm:hidden`,onClick:C,children:T}),t[28]=C,t[29]=T,t[30]=E):E=t[30];let D;t[31]===n?D=t[32]:(D=zt(n)&&(0,Q.jsx)(Bt,{task:n,className:`col-span-2 row-start-3 flex min-w-0 flex-wrap gap-1 sm:hidden`}),t[31]=n,t[32]=D);let O;t[33]!==c||t[34]!==d||t[35]!==u||t[36]!==s||t[37]!==o||t[38]!==a||t[39]!==n?(O=(0,Q.jsx)(Ht,{task:n,className:`col-start-2 row-start-1 flex shrink-0 items-center gap-1.5 self-start sm:absolute sm:right-4 sm:top-3 sm:z-10`,showRunHistory:a,onThreadSelect:o,onStartInNewWorkspace:s,onMarkDone:c,onRunNow:u,onOpenRun:d}),t[33]=c,t[34]=d,t[35]=u,t[36]=s,t[37]=o,t[38]=a,t[39]=n,t[40]=O):O=t[40];let k;return t[41]!==E||t[42]!==D||t[43]!==O||t[44]!==S?(k=(0,Q.jsxs)(`div`,{className:`group/task-row relative grid min-w-0 grid-cols-[minmax(0,1fr)_auto] grid-rows-[auto_auto] gap-x-2 gap-y-1 px-4 py-3 hover:bg-accent/40 sm:flex sm:items-start sm:gap-4`,children:[S,E,D,O]}),t[41]=E,t[42]=D,t[43]=O,t[44]=S,t[45]=k):k=t[45],k}function Gt(e){let t=(0,Z.c)(23),{task:n,onOpenEdit:r,showRunHistory:i,onThreadSelect:a,onStartInNewWorkspace:o,onMarkDone:s,onRunNow:c,onOpenRun:u}=e,d;t[0]!==r||t[1]!==n?(d=()=>r(n),t[0]=r,t[1]=n,t[2]=d):d=t[2];let f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=v(l.captionForeground,`truncate leading-normal`),t[3]=f):f=t[3];let p;t[4]===n.title?p=t[5]:(p=(0,Q.jsx)(`p`,{className:f,children:n.title}),t[4]=n.title,t[5]=p);let m;t[6]!==d||t[7]!==p?(m=(0,Q.jsx)(`button`,{type:`button`,className:`block min-w-0 flex-1 overflow-hidden text-left`,onClick:d,children:p}),t[6]=d,t[7]=p,t[8]=m):m=t[8];let h;t[9]===n?h=t[10]:(h=Lt(n)&&(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:n.tags?.map(function(e){return(0,Q.jsx)(Tt,{tag:e},e.id)})}),t[9]=n,t[10]=h);let g;t[11]!==s||t[12]!==u||t[13]!==c||t[14]!==o||t[15]!==a||t[16]!==i||t[17]!==n?(g=(0,Q.jsx)(Ht,{task:n,className:`flex shrink-0 items-center gap-1.5`,showRunHistory:i,onThreadSelect:a,onStartInNewWorkspace:o,onMarkDone:s,onRunNow:c,onOpenRun:u}),t[11]=s,t[12]=u,t[13]=c,t[14]=o,t[15]=a,t[16]=i,t[17]=n,t[18]=g):g=t[18];let _;return t[19]!==m||t[20]!==h||t[21]!==g?(_=(0,Q.jsxs)(`div`,{className:`group/task-row relative flex min-w-0 items-center gap-3 px-4 py-2 hover:bg-accent/40`,children:[m,h,g]}),t[19]=m,t[20]=h,t[21]=g,t[22]=_):_=t[22],_}function Kt(e){let t=(0,Z.c)(32),{automationsOnly:n,onSearchTermChange:r}=e,[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(``),c;t[0]===r?c=t[1]:(c=function(e){s(e),r(e)},t[0]=r,t[1]=c);let l=c,u;t[2]===r?u=t[3]:(u=function(){s(``),r(``),a(!1)},t[2]=r,t[3]=u);let d=u,f;t[4]!==d||t[5]!==i?(f=()=>{i?d():a(!0)},t[4]=d,t[5]=i,t[6]=f):f=t[6];let p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(ne,{className:`h-4 w-4`}),t[7]=p):p=t[7];let m=n?`Search automations`:`Search tasks`,h;t[8]===m?h=t[9]:(h=(0,Q.jsx)(`span`,{className:`sr-only`,children:m}),t[8]=m,t[9]=h);let g;t[10]!==i||t[11]!==f||t[12]!==h?(g=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:f,"aria-expanded":i,children:[p,h]})}),t[10]=i,t[11]=f,t[12]=h,t[13]=g):g=t[13];let _=n?`Search Automations`:`Search tasks`,y;t[14]===_?y=t[15]:(y=(0,Q.jsx)(N,{children:_}),t[14]=_,t[15]=y);let b;t[16]!==g||t[17]!==y?(b=(0,Q.jsxs)(P,{children:[g,y]}),t[16]=g,t[17]=y,t[18]=b):b=t[18];let x=i?`ml-1 w-44 opacity-100`:`w-0 opacity-0`,S;t[19]===x?S=t[20]:(S=v(`overflow-hidden transition-[width,opacity] duration-200`,x),t[19]=x,t[20]=S);let C;t[21]!==d||t[22]!==l||t[23]!==i||t[24]!==o?(C=i&&(0,Q.jsx)(H,{type:`search`,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&d()},placeholder:`Search`,"aria-label":`Search tasks`,autoFocus:!0,className:`h-8 min-w-44 px-2`}),t[21]=d,t[22]=l,t[23]=i,t[24]=o,t[25]=C):C=t[25];let w;t[26]!==S||t[27]!==C?(w=(0,Q.jsx)(`div`,{className:S,children:C}),t[26]=S,t[27]=C,t[28]=w):w=t[28];let T;return t[29]!==b||t[30]!==w?(T=(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[b,w]}),t[29]=b,t[30]=w,t[31]=T):T=t[31],T}function qt(e){let t=(0,Z.c)(16),{viewMode:n,onViewModeChange:r}=e,i=n===`list`,a;t[0]!==i||t[1]!==r?(a=()=>r(i?`summary`:`list`),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=i?(0,Q.jsx)(S,{className:`h-4 w-4`}):(0,Q.jsx)(ee,{className:`h-4 w-4`}),t[3]=i,t[4]=o);let s=i?`Switch to summary view`:`Switch to list view`,c;t[5]===s?c=t[6]:(c=(0,Q.jsx)(`span`,{className:`sr-only`,children:s}),t[5]=s,t[6]=c);let l;t[7]!==a||t[8]!==o||t[9]!==c?(l=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:a,children:[o,c]})}),t[7]=a,t[8]=o,t[9]=c,t[10]=l):l=t[10];let u=i?`Summary view`:`List view`,d;t[11]===u?d=t[12]:(d=(0,Q.jsx)(N,{children:u}),t[11]=u,t[12]=d);let f;return t[13]!==l||t[14]!==d?(f=(0,Q.jsxs)(P,{children:[l,d]}),t[13]=l,t[14]=d,t[15]=f):f=t[15],f}function Jt(e){let t=(0,Z.c)(18),{automationsOnly:n,viewMode:r,projectTags:i,selectedTagIds:a,onToggleSelectedTag:o,onClearSelectedTags:s,onSearchTermChange:c,onViewModeChange:l,isRefreshing:u,onRefresh:d,onManageTags:f}=e,{setActions:p}=at(),m=a.size>0,h,g;t[0]!==n||t[1]!==m||t[2]!==u||t[3]!==s||t[4]!==f||t[5]!==d||t[6]!==c||t[7]!==o||t[8]!==l||t[9]!==i||t[10]!==a||t[11]!==p||t[12]!==r?(h=()=>{p((0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Kt,{automationsOnly:n,onSearchTermChange:c}),(0,Q.jsx)(qt,{viewMode:r,onViewModeChange:l}),(0,Q.jsxs)(P,{children:[(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,onClick:()=>d(),disabled:u,children:[(0,Q.jsx)(x,{className:v(`h-4 w-4`,u&&`animate-spin`)}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Refresh tasks`})]})}),(0,Q.jsx)(N,{children:`Refresh`})]}),(0,Q.jsxs)(dt,{children:[(0,Q.jsxs)(P,{children:[(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsx)(je,{asChild:!0,children:(0,Q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground`,children:[(0,Q.jsxs)(`span`,{className:`relative`,children:[(0,Q.jsx)(re,{className:`h-4 w-4`}),m&&(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`absolute -right-1 -top-1 h-1.5 w-1.5 rounded-full bg-primary`})]}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Filter and manage tags`})]})})}),(0,Q.jsx)(N,{children:`Tags`})]}),(0,Q.jsxs)(it,{align:`end`,className:`max-h-[var(--radix-dropdown-menu-content-available-height)] w-56 overflow-y-auto`,children:[i.length===0?(0,Q.jsx)(W,{disabled:!0,className:`text-muted-foreground`,children:`No tags yet`}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(W,{disabled:!m,className:v(!m&&`text-muted-foreground`),onSelect:function(e){e.preventDefault(),s()},children:[(0,Q.jsx)(ie,{className:`h-4 w-4`}),`Clear tags`]}),(0,Q.jsx)(St,{}),i.map(function(e){let t=a.has(e.id);return(0,Q.jsxs)(W,{className:`[&_svg]:size-6`,onSelect:function(t){t.preventDefault(),o(e.id)},children:[(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:v(`flex h-7 w-7 shrink-0 items-center justify-center rounded-full border shadow-sm`,t?`border-transparent bg-foreground text-background`:`border-border bg-muted`),children:t&&(0,Q.jsx)(D,{className:`h-6 w-6`})})]},e.id)})]}),(0,Q.jsx)(St,{}),(0,Q.jsxs)(W,{onClick:f,children:[(0,Q.jsx)(C,{className:`h-4 w-4`}),`Edit Tags`]})]})]})]}))},g=[p,n,r,i,a,m,o,s,u,d,f,c,l],t[0]=n,t[1]=m,t[2]=u,t[3]=s,t[4]=f,t[5]=d,t[6]=c,t[7]=o,t[8]=l,t[9]=i,t[10]=a,t[11]=p,t[12]=r,t[13]=h,t[14]=g):(h=t[13],g=t[14]),(0,X.useEffect)(h,g);let _,y;return t[15]===p?(_=t[16],y=t[17]):(_=()=>function(){p(null)},y=[p],t[15]=p,t[16]=_,t[17]=y),(0,X.useEffect)(_,y),null}function Yt(e,t,n){if(e===`edit`&&t){let e=$e(t);return{description:t.description,tags:t.tags??[],triggerForm:e,triggerCollapsed:!q(e)}}return{description:``,tags:[],triggerForm:n?K():G(),triggerCollapsed:!n}}function Xt(e){if(e.mode===`edit`)return e.task?lt({task:e.task,description:e.form.description,tagNames:e.form.tags.map(function(e){return e.name}),triggerForm:e.form.triggerForm,thread:e.thread}).kind!==`unchanged`:!1;let t=vt(e.form.triggerForm,K());return!!(e.form.description.trim()||e.form.tags.length||!e.form.triggerCollapsed&&!t)}function Zt(e,t){return e===`edit`?t?`Edit Automation`:`Edit Task`:t?`Add Automation`:`New Task`}var Qt=[{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`}],$t=Array.from({length:60},function(e,t){return{value:String(t),label:String(t).padStart(2,`0`)}}),en=`Add automation`;function $(e,t){return{...e,...t}}function tn(e){let t=(0,Z.c)(7),{value:n,onChange:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Q.jsx)(Y,{htmlFor:`schedule-once-at`,children:`Run at`}),t[0]=i):i=t[0];let a;t[1]!==r||t[2]!==n?(a=e=>r($(n,{scheduledAtLocal:e.target.value})),t[1]=r,t[2]=n,t[3]=a):a=t[3];let o;return t[4]!==a||t[5]!==n.scheduledAtLocal?(o=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[i,(0,Q.jsx)(H,{id:`schedule-once-at`,type:`datetime-local`,value:n.scheduledAtLocal,onChange:a})]}),t[4]=a,t[5]=n.scheduledAtLocal,t[6]=o):o=t[6],o}function nn(e){let t=e.trim();if(t===``)return NaN;let n=Number(t);return Number.isNaN(n)?NaN:n}function rn(e){return Math.min(d,Math.max(1,e))}function an(e){let t=(0,Z.c)(9),{value:n,onChange:r}=e,i;t[0]!==r||t[1]!==n?(i=n.preset===`weekly`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{children:`Day`}),(0,Q.jsxs)(ze,{value:String(n.dayOfWeek),onValueChange:e=>r($(n,{dayOfWeek:Number(e)})),children:[(0,Q.jsx)(ke,{children:(0,Q.jsx)(U,{})}),(0,Q.jsx)(Ue,{children:Qt.map(function(e){return(0,Q.jsx)(B,{value:e.value,children:e.label},e.value)})})]})]}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]!==r||t[4]!==n?(a=n.preset===`interval`?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{htmlFor:`schedule-interval-minutes`,children:`Minutes`}),(0,Q.jsx)(H,{id:`schedule-interval-minutes`,type:`number`,min:1,max:d,step:1,placeholder:`5`,value:Number.isNaN(n.presetIntervalMinutes)?``:String(n.presetIntervalMinutes),onChange:e=>r($(n,{presetIntervalMinutes:nn(e.target.value)})),onBlur:()=>{let e=n.presetIntervalMinutes;!Number.isNaN(e)&&e!==rn(e)&&r($(n,{presetIntervalMinutes:rn(e)}))}})]}):n.preset===`hourly`?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{children:`Minute`}),(0,Q.jsxs)(ze,{value:String(n.presetMinute),onValueChange:e=>r($(n,{presetMinute:Number(e)})),children:[(0,Q.jsx)(ke,{children:(0,Q.jsx)(U,{})}),(0,Q.jsx)(Ue,{children:$t.map(function(e){return(0,Q.jsx)(B,{value:e.value,children:e.label},e.value)})})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(Y,{htmlFor:`schedule-time`,children:`Time`}),(0,Q.jsx)(H,{id:`schedule-time`,type:`time`,value:n.presetTime,onChange:e=>r($(n,{presetTime:e.target.value}))})]}),t[3]=r,t[4]=n,t[5]=a):a=t[5];let o;return t[6]!==i||t[7]!==a?(o=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[i,a]}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}var on=`once`,sn=`event`;function cn(e){let t=(0,Z.c)(16),{value:n,onChange:r,error:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Y,{children:`Trigger`}),t[0]=a):a=t[0];let o=n.kind===`event`?sn:n.scheduleMode===`once`?on:n.preset,s;t[1]!==r||t[2]!==n?(s=e=>{r(e===sn?$(n,{kind:`event`}):e===on?$(n,{kind:`schedule`,scheduleMode:`once`}):$(n,{kind:`schedule`,scheduleMode:`repeating`,preset:e}))},t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(ke,{children:(0,Q.jsx)(U,{})}),t[4]=c):c=t[4];let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsxs)(Ue,{children:[(0,Q.jsx)(B,{value:on,children:`Once`}),(0,Q.jsx)(B,{value:`interval`,children:`Interval`}),(0,Q.jsx)(B,{value:`hourly`,children:`Hourly`}),(0,Q.jsx)(B,{value:`daily`,children:`Daily`}),(0,Q.jsx)(B,{value:`weekdays`,children:`Weekdays`}),(0,Q.jsx)(B,{value:`weekly`,children:`Weekly`}),(0,Q.jsx)(B,{value:sn,children:`Event`})]}),t[5]=l):l=t[5];let u;t[6]!==o||t[7]!==s?(u=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[a,(0,Q.jsxs)(ze,{value:o,onValueChange:s,children:[c,l]})]}),t[6]=o,t[7]=s,t[8]=u):u=t[8];let d;t[9]!==i||t[10]!==r||t[11]!==n?(d=n.kind===`event`?(0,Q.jsx)(un,{value:n,onChange:r,error:i}):n.scheduleMode===`once`?(0,Q.jsx)(tn,{value:n,onChange:r}):(0,Q.jsx)(an,{value:n,onChange:r}),t[9]=i,t[10]=r,t[11]=n,t[12]=d):d=t[12];let f;return t[13]!==u||t[14]!==d?(f=(0,Q.jsx)(`div`,{className:`space-y-3`,children:(0,Q.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[u,d]})}),t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function ln(e){return!!(e&&rt(e))}function un(e){let t=(0,Z.c)(16),{value:n,onChange:r,error:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Y,{htmlFor:`event-key`,children:`Event Key`}),t[0]=a):a=t[0];let o=n.eventKey,s;t[1]===i?s=t[2]:(s=ln(i),t[1]=i,t[2]=s);let c;t[3]!==r||t[4]!==n?(c=e=>r($(n,{eventKey:e.target.value})),t[3]=r,t[4]=n,t[5]=c):c=t[5];let u;t[6]!==s||t[7]!==c||t[8]!==n.eventKey?(u=(0,Q.jsx)(H,{id:`event-key`,value:o,placeholder:`door.opened`,"aria-invalid":s,onChange:c}),t[6]=s,t[7]=c,t[8]=n.eventKey,t[9]=u):u=t[9];let d;t[10]!==i||t[11]!==n.eventKey?(d=ln(i)?(0,Q.jsx)(`p`,{className:v(l.caption,`text-destructive`),children:i}):(0,Q.jsxs)(`p`,{className:v(l.caption,`text-muted-foreground`),children:[`Test in chat with `,(0,Q.jsxs)(`code`,{children:[`/send-event `,n.eventKey.trim()||`event.key`]})]}),t[10]=i,t[11]=n.eventKey,t[12]=d):d=t[12];let f;return t[13]!==u||t[14]!==d?(f=(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[a,u,d]}),t[13]=u,t[14]=d,t[15]=f):f=t[15],f}function dn(e){let t=(0,Z.c)(3),{error:n,kind:r}=e;if(!n||r===`event`)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=v(l.caption,`text-destructive`),t[0]=i):i=t[0];let a;return t[1]===n?a=t[2]:(a=(0,Q.jsx)(`p`,{className:i,children:n}),t[1]=n,t[2]=a),a}function fn(e){let t=(0,Z.c)(14),{value:n,onChange:r,error:i}=e,a=i===void 0?null:i,o;t[0]!==a||t[1]!==r||t[2]!==n?(o=(0,Q.jsx)(cn,{value:n,onChange:r,error:a}),t[0]=a,t[1]=r,t[2]=n,t[3]=o):o=t[3];let s;t[4]!==a||t[5]!==n.kind?(s=(0,Q.jsx)(dn,{error:a,kind:n.kind}),t[4]=a,t[5]=n.kind,t[6]=s):s=t[6];let c;t[7]!==r||t[8]!==n?(c=n.kind!==`manual`&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.kind!==`event`&&(0,Q.jsxs)(`p`,{className:v(l.caption,`text-muted-foreground`),children:[`Timezone: `,n.timezone]}),(0,Q.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Q.jsx)(nt,{id:`trigger-paused`,checked:!n.enabled,onCheckedChange:e=>{r($(n,{enabled:e!==!0}))}}),(0,Q.jsx)(Y,{htmlFor:`trigger-paused`,className:l.caption,children:`Paused`})]})]}),t[7]=r,t[8]=n,t[9]=c):c=t[9];let u;return t[10]!==o||t[11]!==s||t[12]!==c?(u=(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4 rounded-lg border border-border p-4`,children:[o,s,c]}),t[10]=o,t[11]=s,t[12]=c,t[13]=u):u=t[13],u}function pn(e){let t=(0,Z.c)(3),n;return t[0]!==e.controller.addTrigger||t[1]!==e.controller.isSaving?(n=(0,Q.jsx)(j,{type:`button`,variant:`outline`,disabled:e.controller.isSaving,onClick:e.controller.addTrigger,children:en}),t[0]=e.controller.addTrigger,t[1]=e.controller.isSaving,t[2]=n):n=t[2],n}function mn(e){let t=(0,Z.c)(5),n;t[0]===e.controller?n=t[1]:(n=function(){e.controller.deleteTask()},t[0]=e.controller,t[1]=n);let r=n,i;return t[2]!==r||t[3]!==e.controller.isSaving?(i=(0,Q.jsx)(j,{variant:`destructive`,onClick:r,disabled:e.controller.isSaving,children:`Delete`}),t[2]=r,t[3]=e.controller.isSaving,t[4]=i):i=t[4],i}function hn(e){let t=(0,Z.c)(13),n=e.mode===`edit`,r;t[0]===e.controller?r=t[1]:(r=function(){e.controller.save()},t[0]=e.controller,t[1]=r);let i=r,a;t[2]!==e.controller.form||t[3]!==e.controller.isSaving?(a=e.controller.isSaving||!e.controller.form.description.trim(),t[2]=e.controller.form,t[3]=e.controller.isSaving,t[4]=a):a=t[4];let o=n?`w-auto`:void 0,s=n?`Save`:`Add`,c;t[5]===e.controller.isSaving?c=t[6]:(c=e.controller.isSaving?(0,Q.jsx)(k,{className:`ml-1 h-3 w-3 animate-spin`}):null,t[5]=e.controller.isSaving,t[6]=c);let l;return t[7]!==i||t[8]!==a||t[9]!==o||t[10]!==s||t[11]!==c?(l=(0,Q.jsxs)(j,{onClick:i,disabled:a,className:o,children:[s,c]}),t[7]=i,t[8]=a,t[9]=o,t[10]=s,t[11]=c,t[12]=l):l=t[12],l}function gn(e){let t=(0,Z.c)(17),n=e.mode===`edit`,r=e.automationsOnly&&e.controller.form.triggerCollapsed,i=n?`flex-row shrink-0 justify-between gap-2 sm:justify-between sm:gap-0`:`shrink-0`,a=n?`flex items-center gap-2`:void 0,o;t[0]!==n||t[1]!==e.controller?(o=n?(0,Q.jsx)(mn,{controller:e.controller}):null,t[0]=n,t[1]=e.controller,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==e.controller?(s=r?(0,Q.jsx)(pn,{controller:e.controller}):null,t[3]=r,t[4]=e.controller,t[5]=s):s=t[5];let c;t[6]!==e.controller||t[7]!==e.mode?(c=(0,Q.jsx)(hn,{mode:e.mode,controller:e.controller}),t[6]=e.controller,t[7]=e.mode,t[8]=c):c=t[8];let l;t[9]!==a||t[10]!==s||t[11]!==c?(l=(0,Q.jsxs)(`div`,{className:a,children:[s,c]}),t[9]=a,t[10]=s,t[11]=c,t[12]=l):l=t[12];let u;return t[13]!==i||t[14]!==o||t[15]!==l?(u=(0,Q.jsxs)(ct,{className:i,children:[o,l]}),t[13]=i,t[14]=o,t[15]=l,t[16]=u):u=t[16],u}function _n({selectedTags:e,existingTags:t,onChange:n,placeholder:r=`Add tags...`,allowCreate:i=!0,className:a}){let[c,u]=(0,X.useState)(``),[d,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(0),y=(0,X.useRef)(null),x=(0,X.useMemo)(()=>new Set(e.map(e=>f(e.name))),[e]),S=e.length>=10,C=(0,X.useMemo)(()=>{let e=c.trim(),n=e.toLowerCase(),r=new Map;for(let e of t){let t=f(e.name);x.has(t)||r.set(t,{name:e.name,color:e.color})}for(let e of s){let t=f(e);!x.has(t)&&!r.has(t)&&r.set(t,{name:e,color:o(t)})}let a=(n?[...r.values()].filter(e=>e.name.toLowerCase().includes(n)):[...r.values()]).map(e=>({name:e.name,color:e.color,isCreate:!1}));if(e&&i&&!S){let t=m(e),n=f(t),i=x.has(n)||r.has(n),s=!p(t);!i&&s&&a.push({name:t,color:o(n),isCreate:!0})}return a},[c,t,x,S]);(0,X.useEffect)(()=>{_(0)},[c]),(0,X.useEffect)(function(){if(!d||S)return;let e=requestAnimationFrame(function(){y.current?.focus()});return function(){cancelAnimationFrame(e)}},[d,S]);function w(r){if(S)return;let i=m(r),a=f(i);if(x.has(a))return;let s=t.find(e=>f(e.name)===a)??{id:`new:${a}`,name:i,color:o(a)};n([...e,s]),u(``)}function T(t){n(e.filter(e=>e.id!==t.id))}function E(e){let t=e.currentTarget;t.scrollHeight>t.clientHeight&&e.stopPropagation()}function D(t){if(t.key===`ArrowDown`)t.preventDefault(),d||h(!0),_(e=>(e+1)%Math.max(C.length,1));else if(t.key===`ArrowUp`)t.preventDefault(),_(e=>(e-1+C.length)%Math.max(C.length,1));else if(t.key===`Enter`){t.preventDefault();let e=C[g];e&&w(e.name)}else t.key===`Backspace`&&!c&&e.length>0?T(e[e.length-1]):t.key===`Escape`&&(h(!1),y.current?.blur())}return(0,Q.jsxs)(Qe,{open:d,onOpenChange:function(e){h(e),e||u(``)},children:[(0,Q.jsxs)(`div`,{className:v(`flex flex-wrap items-center gap-1.5`,a),children:[e.map(function(e){return(0,Q.jsxs)(dt,{children:[(0,Q.jsx)(je,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:`rounded-full outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,Q.jsx)(Tt,{tag:e,className:`cursor-pointer transition-colors hover:border-border hover:bg-muted/40`})})}),(0,Q.jsx)(it,{align:`start`,sideOffset:6,children:(0,Q.jsx)(W,{onSelect:()=>T(e),children:`Delete`})})]},e.id)}),(0,Q.jsx)(se,{children:(0,Q.jsxs)(P,{children:[(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsx)(Ee,{asChild:!0,children:(0,Q.jsx)(j,{type:`button`,variant:`outline`,size:`icon-xs`,disabled:S,"aria-label":S?`Max 10 tags`:`Add tag`,className:v(`h-6 w-6 rounded-full border-dashed text-muted-foreground`,S&&`opacity-50`),children:(0,Q.jsx)(b,{className:`h-3 w-3`})})})}),(0,Q.jsx)(N,{children:`Add Tag`})]})})]}),(0,Q.jsxs)(Ye,{align:`start`,className:`w-72 p-0`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Q.jsx)(`div`,{className:`border-b border-border p-2`,children:(0,Q.jsx)(`input`,{ref:y,type:`text`,value:c,onChange:function(e){u(e.target.value)},onKeyDown:D,placeholder:S?`Max 10 tags`:r,disabled:S,className:v(l.body,`w-full rounded-md border border-input bg-background px-3 py-2 outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`)})}),(0,Q.jsx)(`div`,{className:`overflow-y-auto overscroll-contain`,style:{maxHeight:220},onWheel:E,onTouchMove:E,children:C.length===0?(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`px-3 py-4 text-center`),children:S?`Tag limit reached`:`No tags found`}):C.map(function(e,t){return(0,Q.jsxs)(`button`,{type:`button`,className:v(l.body,`flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-accent`,g===t&&`bg-accent`),onClick:function(){w(e.name),h(!1)},children:[(0,Q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),e.isCreate?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Create`}),(0,Q.jsx)(`span`,{className:`truncate font-medium`,children:e.name})]}):(0,Q.jsx)(`span`,{className:`truncate`,children:e.name})]},e.isCreate?`create:${e.name}`:e.name)})})]})]})}function vn(e){let t=(0,Z.c)(32),{controller:n}=e,r;t[0]===n?r=t[1]:(r=function(e){n.setDescription(e.target.value)},t[0]=n,t[1]=r);let i=r,a;t[2]===n?a=t[3]:(a=function(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&n.save()},t[2]=n,t[3]=a);let o=a,s;t[4]===n.isSaving?s=t[5]:(s=function(e){return(0,Q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":e.label,onClick:e.onClick,disabled:e.disabled||n.isSaving,children:e.icon})},t[4]=n.isSaving,t[5]=s);let c=s,l;t[6]!==n.form.description||t[7]!==i||t[8]!==o?(l=(0,Q.jsx)(Ze,{placeholder:`Describe what needs to be done...`,value:n.form.description,onChange:i,rows:12,className:`max-h-[min(16rem,40svh)] resize-none pe-12 pb-10 text-base sm:max-h-none`,autoFocus:!0,onKeyDown:o}),t[6]=n.form.description,t[7]=i,t[8]=o,t[9]=l):l=t[9];let u;t[10]!==n.form.tags||t[11]!==n.setTags||t[12]!==e.projectTags?(u=(0,Q.jsx)(_n,{selectedTags:n.form.tags,existingTags:e.projectTags,onChange:n.setTags,allowCreate:!1,className:`absolute bottom-3 start-3 max-w-[calc(100%-4rem)]`}),t[10]=n.form.tags,t[11]=n.setTags,t[12]=e.projectTags,t[13]=u):u=t[13];let d=e.thread.selectedThreadId??void 0,f=e.thread.selectedThreadModel?.provider,p=e.thread.selectedThreadModel?.id,m;t[14]!==n.handleSpeechTranscript||t[15]!==c||t[16]!==d||t[17]!==f||t[18]!==p?(m=(0,Q.jsx)(`div`,{className:`absolute bottom-3 end-3`,children:(0,Q.jsx)(gt,{onTranscript:n.handleSpeechTranscript,threadId:d,provider:f,model:p,children:c})}),t[14]=n.handleSpeechTranscript,t[15]=c,t[16]=d,t[17]=f,t[18]=p,t[19]=m):m=t[19];let h;t[20]!==l||t[21]!==u||t[22]!==m?(h=(0,Q.jsxs)(`div`,{className:`relative`,children:[l,u,m]}),t[20]=l,t[21]=u,t[22]=m,t[23]=h):h=t[23];let g;t[24]!==n.form.triggerCollapsed||t[25]!==n.form.triggerForm||t[26]!==n.handleTriggerChange||t[27]!==n.triggerError?(g=!n.form.triggerCollapsed&&(0,Q.jsx)(fn,{value:n.form.triggerForm,onChange:n.handleTriggerChange,error:n.triggerError}),t[24]=n.form.triggerCollapsed,t[25]=n.form.triggerForm,t[26]=n.handleTriggerChange,t[27]=n.triggerError,t[28]=g):g=t[28];let _;return t[29]!==g||t[30]!==h?(_=(0,Q.jsx)(pe,{type:`auto`,className:`min-h-0 flex-1`,children:(0,Q.jsxs)(`div`,{className:`py-2 pl-1`,children:[h,g]})}),t[29]=g,t[30]=h,t[31]=_):_=t[31],_}function yn(e){let t=(0,Z.c)(7);if(e.mode===`edit`){let n;return t[0]===e.title?n=t[1]:(n=(0,Q.jsx)(J,{children:e.title}),t[0]=e.title,t[1]=n),n}let n;t[2]===e.title?n=t[3]:(n=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsx)(J,{className:`w-fit cursor-help`,children:e.title})}),t[2]=e.title,t[3]=n);let r;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(N,{side:`top`,className:`max-w-xs`,children:`A title will be generated automatically from your description.`}),t[4]=r):r=t[4];let i;return t[5]===n?i=t[6]:(i=(0,Q.jsxs)(P,{children:[n,r]}),t[5]=n,t[6]=i),i}function bn(e){let t=(0,Z.c)(20),n=e.automationsOnly?`automation`:`task`,r=e.mode===`edit`?`Save your changes?`:`Save your ${n}?`,i;t[0]===r?i=t[1]:(i=(0,Q.jsx)(ge,{children:r}),t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(he,{children:`You have unsaved changes. Would you like to save them before closing?`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,Q.jsxs)(be,{children:[i,a]}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(ye,{children:`Keep editing`}),t[5]=s):s=t[5];let c;t[6]===e.controller.discardChanges?c=t[7]:(c=(0,Q.jsx)(ve,{onClick:e.controller.discardChanges,children:`Discard`}),t[6]=e.controller.discardChanges,t[7]=c);let l;t[8]===e.controller.saveBeforeClose?l=t[9]:(l=(0,Q.jsx)(ve,{onClick:e.controller.saveBeforeClose,children:`Save`}),t[8]=e.controller.saveBeforeClose,t[9]=l);let u;t[10]!==c||t[11]!==l?(u=(0,Q.jsxs)(R,{children:[s,c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12];let d;t[13]!==o||t[14]!==u?(d=(0,Q.jsxs)(_e,{children:[o,u]}),t[13]=o,t[14]=u,t[15]=d):d=t[15];let f;return t[16]!==e.controller.confirmClose||t[17]!==e.controller.setConfirmClose||t[18]!==d?(f=(0,Q.jsx)(xe,{open:e.controller.confirmClose,onOpenChange:e.controller.setConfirmClose,children:d}),t[16]=e.controller.confirmClose,t[17]=e.controller.setConfirmClose,t[18]=d,t[19]=f):f=t[19],f}var xn=c(`app.task-list.dialog`);function Sn(e){return e.map(function(e){return e.name})}async function Cn(e,t){let n=_t({selectedThreadId:e.thread.selectedThreadId,selectedThreadModel:e.thread.selectedThreadModel,selectedThread:e.thread.selectedThread});if(e.mode===`edit`){if(!e.task)return{kind:`unchanged`};let r=lt({task:e.task,description:t.description,tagNames:Sn(t.tags),triggerForm:t.triggerForm,thread:n});if(r.kind===`unchanged`)return r;let i=await Je(e.projectId,e.task.id,r.payload);return{kind:`updated`,task:i,tagsChanged:r.tagsChanged,completedChanged:e.task.status===`Done`!=(i.status===`Done`)}}let r=tt({description:t.description,tagNames:Sn(t.tags),triggerCollapsed:t.triggerCollapsed,triggerForm:t.triggerForm,thread:n});return{kind:`created`,task:await Xe(e.projectId,r.description,r.context),generationContext:r.context}}function wn(e,t){if(t.kind===`updated`){e.onTaskSaved?.(t.task,{tagsChanged:t.tagsChanged,completedChanged:t.completedChanged});return}t.kind===`created`&&(e.onTaskCreated?.(t.task),Ke(e.projectId,t.task.id,{...t.generationContext,expectedTitle:t.task.title}).then(function(t){e.onTaskUpdated?.(t)}).catch(function(e){xn.error(`Failed to generate task title:`,e)}))}function Tn(e){let t=e.task??null,[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)(G),[c,l]=(0,X.useState)(!0),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(!1),g={description:n,tags:i,triggerForm:o,triggerCollapsed:c};(0,X.useEffect)(function(){if(!e.open)return;let n=Yt(e.mode,t,e.automationsOnly);r(n.description),a(n.tags),s(n.triggerForm),l(n.triggerCollapsed),d(null),p(!1)},[e.automationsOnly,e.mode,e.open,t]);function _(){return _t({selectedThreadId:e.thread.selectedThreadId,selectedThreadModel:e.thread.selectedThreadModel,selectedThread:e.thread.selectedThread})}function v(e,t){r(function(n){return t?.replace||!n.trim()?e:`${n.trimEnd()} ${e}`})}function y(e){s(e),d(null)}function b(){l(!1),s(K())}function x(n){if(n){e.onOpenChange(!0);return}if(Xt({mode:e.mode,task:t,form:g,thread:_()})){p(!0);return}d(null),e.onOpenChange(!1)}function S(){p(!1),e.onOpenChange(!1)}function C(){if(!n.trim())return!1;let t=e.getTriggerValidationError(c,o);return d(t),t===null}async function w(){if(!C())return!1;h(!0);try{return wn(e,await Cn(e,g)),e.onOpenChange(!1),!0}catch(t){let n=e.mode===`edit`?`Failed to save task`:`Failed to add task`;return d(pt(t,n)),xn.error(`${n}:`,t),!1}finally{h(!1)}}async function T(e){e.preventDefault(),await w()&&p(!1)}async function E(){if(!(!t||e.mode!==`edit`)){h(!0);try{await Me(e.projectId,t.id),e.onTaskDeleted?.(t.id),e.onOpenChange(!1)}catch(e){xn.error(`Failed to delete task:`,e)}finally{h(!1)}}}return{form:g,triggerError:u,confirmClose:f,isSaving:m,setDescription:r,setTags:a,setTriggerForm:s,setConfirmClose:p,handleSpeechTranscript:v,handleTriggerChange:y,addTrigger:b,handleOpenChange:x,discardChanges:S,saveBeforeClose:T,save:w,deleteTask:E}}function En(e){let t=(0,Z.c)(27),n=Tn(e),r=e.task??null,i=e.mode===`edit`,a;t[0]!==e.automationsOnly||t[1]!==e.mode?(a=Zt(e.mode,e.automationsOnly),t[0]=e.automationsOnly,t[1]=e.mode,t[2]=a):a=t[2];let o=a,s=e.open&&(!i||r!==null),c;t[3]!==e.mode||t[4]!==o?(c=(0,Q.jsx)(Oe,{className:`shrink-0`,children:(0,Q.jsx)(yn,{mode:e.mode,title:o})}),t[3]=e.mode,t[4]=o,t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==e.projectTags||t[8]!==e.thread?(l=(0,Q.jsx)(vn,{controller:n,projectTags:e.projectTags,thread:e.thread}),t[6]=n,t[7]=e.projectTags,t[8]=e.thread,t[9]=l):l=t[9];let u;t[10]!==n||t[11]!==e.automationsOnly||t[12]!==e.mode?(u=(0,Q.jsx)(gn,{mode:e.mode,automationsOnly:e.automationsOnly,controller:n}),t[10]=n,t[11]=e.automationsOnly,t[12]=e.mode,t[13]=u):u=t[13];let d;t[14]!==c||t[15]!==l||t[16]!==u?(d=(0,Q.jsxs)(Ne,{className:`max-w-2xl flex flex-col overflow-hidden max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 md:max-h-[calc(100svh-2rem)]`,children:[c,l,u]}),t[14]=c,t[15]=l,t[16]=u,t[17]=d):d=t[17];let f;t[18]!==n||t[19]!==e.automationsOnly||t[20]!==e.mode?(f=(0,Q.jsx)(bn,{mode:e.mode,automationsOnly:e.automationsOnly,controller:n}),t[18]=n,t[19]=e.automationsOnly,t[20]=e.mode,t[21]=f):f=t[21];let p;return t[22]!==n.handleOpenChange||t[23]!==s||t[24]!==d||t[25]!==f?(p=(0,Q.jsxs)(Fe,{open:s,onOpenChange:n.handleOpenChange,children:[d,f]}),t[22]=n.handleOpenChange,t[23]=s,t[24]=d,t[25]=f,t[26]=p):p=t[26],p}function Dn({open:e,onOpenChange:t,projectId:n,tags:r,onTagsChanged:i}){let[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(``),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),[y,b]=(0,X.useState)(null);function x(e){o(e.id),c(e.name),_(null)}function S(){o(null),c(``),_(null)}async function C(){let e=u.trim();if(e){h(!0),_(null);try{let t=await yt(n,e);i([...r,t]),d(``)}catch(e){_(e instanceof Error?e.message:`Failed to create tag`)}finally{h(!1)}}}async function w(e){let t=s.trim();if(t){p(!0),_(null);try{let a=await We(n,e,t);i(r.map(e=>e.id===a.id?{...e,name:a.name,color:a.color}:e)),S()}catch(e){_(e instanceof Error?e.message:`Failed to rename tag`)}finally{p(!1)}}}async function T(e){p(!0),_(null);try{await Pe(n,e),i(r.filter(t=>t.id!==e)),b(null),a===e&&S()}catch(e){_(e instanceof Error?e.message:`Failed to delete tag`)}finally{p(!1)}}return(0,Q.jsx)(Fe,{open:e,onOpenChange:t,children:(0,Q.jsxs)(Ne,{className:`flex h-[min(36rem,85vh)] flex-col sm:max-w-md`,children:[(0,Q.jsx)(Oe,{children:(0,Q.jsx)(J,{children:`Manage Tags`})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,Q.jsx)(H,{value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&C(),e.key===`Escape`&&d(``)},placeholder:`New tag name...`,className:`h-8 flex-1`,disabled:m}),(0,Q.jsx)(j,{size:`sm`,className:`h-8 shrink-0 bg-foreground text-background hover:bg-foreground/90`,onClick:()=>void C(),disabled:m||!u.trim(),children:m?(0,Q.jsx)(k,{className:`h-3.5 w-3.5 animate-spin`}):`Add`})]}),r.length===0?(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`py-4 text-center`),children:`No tags yet. Create one above to get started.`}):(0,Q.jsx)(pe,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{className:`space-y-1 py-2 pr-3`,children:r.map(e=>{let t=a===e.id,n=y===e.id;return(0,Q.jsx)(`div`,{className:v(`group flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40`,!t&&!n&&!f&&`cursor-pointer`),onClick:()=>{!f&&!t&&!n&&x(e)},children:t?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(H,{value:s,onChange:e=>c(e.target.value),onKeyDown:t=>{t.key===`Enter`&&w(e.id),t.key===`Escape`&&S()},className:`h-8 flex-1 text-sm`,autoFocus:!0,disabled:f}),(0,Q.jsx)(j,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>void w(e.id),disabled:f||!s.trim(),children:f?(0,Q.jsx)(k,{className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(D,{className:`h-4 w-4`})}),(0,Q.jsx)(j,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:S,disabled:f,children:(0,Q.jsx)(ae,{className:`h-4 w-4`})})]}):n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:v(l.body,`flex-1 truncate`),children:[`Delete `,e.name,`? Removes from `,e.taskCount,` `,e.taskCount===1?`task`:`tasks`,`.`]}),(0,Q.jsx)(j,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0 text-destructive hover:text-destructive`,onClick:()=>void T(e.id),disabled:f,children:f?(0,Q.jsx)(k,{className:`h-4 w-4 animate-spin`}):(0,Q.jsx)(D,{className:`h-4 w-4`})}),(0,Q.jsx)(j,{variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,onClick:()=>b(null),disabled:f,children:(0,Q.jsx)(ae,{className:`h-4 w-4`})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,Q.jsx)(`span`,{className:v(l.body,`min-w-0 flex-1 truncate`),children:e.name}),(0,Q.jsxs)(`span`,{className:v(l.caption,`shrink-0 text-muted-foreground`),children:[e.taskCount,` `,e.taskCount===1?`task`:`tasks`]}),(0,Q.jsx)(j,{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(),b(e.id)},disabled:f,"aria-label":`Delete ${e.name}`,children:(0,Q.jsx)(O,{className:`h-3.5 w-3.5`})})]})},e.id)})})}),g&&(0,Q.jsx)(`p`,{className:v(l.caption,`text-destructive`),children:g})]})})}var On=c(`app.task-list.sync`);function kn({projectId:e,initialTasks:t,refreshTrigger:n,project:r,onRefreshTags:i}){let a=h(),[o,s]=(0,X.useState)(t),[c,l]=(0,X.useState)(!1),u=(0,X.useRef)(n??0),d=r?.tasksModifiedCount??0,f=(0,X.useRef)({[e]:d}),p=(0,X.useCallback)(async function(){try{s(await ot(e)),i()}catch(e){On.error(`Failed to refresh project tasks:`,e)}},[e,i]),m=(0,X.useCallback)(async function(){l(!0);try{await I(e),await p(),F();let t=await ue();a({type:_.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){On.error(`Failed to refresh project tasks:`,e)}finally{l(!1)}},[e,a,p]);(0,X.useEffect)(()=>{Ce(V(e,0),o)},[e,o]),(0,X.useEffect)(()=>{n==null||n===u.current||(u.current=n,p())},[n,p]),(0,X.useEffect)(()=>{let t=f.current[e];if(t===void 0){f.current[e]=d;return}if(d===0){f.current[e]=0;return}t!==d&&(f.current[e]=d,d>t&&p())},[d,e,p]);let g=o.some(e=>e.working);return(0,X.useEffect)(()=>{if(!g)return;let t=setInterval(async()=>{try{s(await ot(e))}catch(e){On.error(`Failed to poll project tasks:`,e)}},2e3);return()=>clearInterval(t)},[g,e]),(0,X.useEffect)(()=>{s(t)},[t]),{tasks:o,setTasks:s,isRefreshing:c,handleRefreshTasks:m}}var An=c(`app.task-list.ui`);function jn(e){let t=(0,Z.c)(18),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,i]=(0,X.useState)(n),a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=new Set,t[1]=a):a=t[1];let[o,s]=(0,X.useState)(a),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(ce),m,h;t[2]===e?(m=t[3],h=t[4]):(m=()=>{st(e).then(i).catch(Nn)},h=[e],t[2]=e,t[3]=m,t[4]=h),(0,X.useEffect)(m,h);let g;t[5]===e?g=t[6]:(g=function(){st(e).then(i).catch(Mn)},t[5]=e,t[6]=g);let _=g,v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(v=function(e){s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},t[7]=v):v=t[7];let y=v,b;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(b=function(){s(function(e){return e.size===0?e:new Set})},t[8]=b):b=t[8];let x=b,S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=function(){d(!0)},t[9]=S):S=t[9];let C=S,w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=function(e){le(e),p(e)},t[10]=w):w=t[10];let T=w,E;return t[11]!==u||t[12]!==r||t[13]!==_||t[14]!==c||t[15]!==o||t[16]!==f?(E={projectTags:r,setProjectTags:i,selectedTagIds:o,setSelectedTagIds:s,searchTerm:c,setSearchTerm:l,viewMode:f,setViewMode:T,manageTagsOpen:u,setManageTagsOpen:d,refreshProjectTags:_,toggleSelectedTag:y,clearSelectedTags:x,openManageTags:C},t[11]=u,t[12]=r,t[13]=_,t[14]=c,t[15]=o,t[16]=f,t[17]=E):E=t[17],E}function Mn(e){return An.error(`Failed to refresh project tags:`,e)}function Nn(e){return An.error(`Failed to fetch project tags:`,e)}function Pn(e){let t=(0,Z.c)(15),n=g(Bn),r=g(zn),i=g(Rn),a=g(Ln),o=g(In),s=g(Fn),c,l;if(t[0]!==e||t[1]!==n||t[2]!==r){let i;t[5]===e?i=t[6]:(i=t=>t.projectId===e,t[5]=e,t[6]=i),c=n.find(i),l=c?.threads.find(e=>e.threadId===r),t[0]=e,t[1]=n,t[2]=r,t[3]=c,t[4]=l}else c=t[3],l=t[4];let u=l,d=r?s[r]:void 0,f;return t[7]!==a||t[8]!==i||t[9]!==c||t[10]!==o||t[11]!==u||t[12]!==r||t[13]!==d?(f={project:c,selectedThreadId:r,selectedThread:u,selectedThreadModel:d,processingThreadIds:i,pendingChatMessage:a,queuedChatMessages:o},t[7]=a,t[8]=i,t[9]=c,t[10]=o,t[11]=u,t[12]=r,t[13]=d,t[14]=f):f=t[14],f}function Fn(e){return e.projectModelSelections}function In(e){return e.queuedChatMessages}function Ln(e){return e.pendingChatMessage}function Rn(e){return e.processingThreadIds}function zn(e){return e.selectedThreadId}function Bn(e){return e.projects}function Vn(){let e=(0,Z.c)(3),{modelAliases:t,isLoading:n}=Le(),r;return e[0]!==t||e[1]!==n?(r=function(e,r){if(e)return null;let i=et(r);if(i)return ut(i);if(n)return null;let a=xt(r,t);return a?ut(a):null},e[0]=t,e[1]=n,e[2]=r):r=e[2],r}function Hn(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsxs)(`div`,{className:`text-center`,children:[(0,Q.jsx)(L,{className:`mx-auto`}),(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`mt-2`),children:`Loading tasks`})]})}),e[0]=t):t=e[0],t}function Un(e){let t=(0,Z.c)(5),{projectId:n,resourceKey:r,children:i}=e,a;t[0]===n?a=t[1]:(a=function(){return bt(n)},t[0]=n,t[1]=a);let o=Ve(r,a),s;return t[2]!==i||t[3]!==o?(s=i(o),t[2]=i,t[3]=o,t[4]=s):s=t[4],s}function Wn({projectId:e,children:t}){let[n,r]=(0,X.useState)(0),i=V(e,n),a=(0,X.useRef)(null);a.current!==i&&(a.current=i,Te(i)===`rejected`&&we(i));function o(){we(i),r(function(e){return e+1})}return(0,Q.jsx)(wt,{fallbackTitle:`Failed to load tasks`,onRetry:o,children:(0,Q.jsx)(X.Suspense,{fallback:(0,Q.jsx)(Hn,{}),children:(0,Q.jsx)(Un,{projectId:e,resourceKey:i,children:t},i)})},e)}var Gn=c(`app.task-list.ui`);function Kn(e){let t=(0,Z.c)(146),{projectId:n,onThreadSelect:r,initialTasks:o,refreshTrigger:s,automationsOnly:c}=e,u=c===void 0?!1:c,d=h(),{project:f,selectedThreadId:p,selectedThread:m,selectedThreadModel:g}=Pn(n),[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)(null),{projectTags:T,setProjectTags:E,selectedTagIds:D,setSelectedTagIds:O,searchTerm:k,setSearchTerm:ee,viewMode:te,setViewMode:ne,manageTagsOpen:re,setManageTagsOpen:ie,refreshProjectTags:A,toggleSelectedTag:ae,clearSelectedTags:oe,openManageTags:se}=jn(n),ce;t[0]!==o||t[1]!==f||t[2]!==n||t[3]!==A||t[4]!==s?(ce={projectId:n,initialTasks:o,refreshTrigger:s,project:f,onRefreshTags:A},t[0]=o,t[1]=f,t[2]=n,t[3]=A,t[4]=s,t[5]=ce):ce=t[5];let{tasks:F,setTasks:I,isRefreshing:le,handleRefreshTasks:ue}=kn(ce),de=Be(mt,u),pe;t[6]!==de||t[7]!==u?(pe=u?new Date(de):void 0,t[6]=de,t[7]=u,t[8]=pe):pe=t[8];let me=pe,L=Vn(),he=i(),ge;t[9]===he?ge=t[10]:(ge=function(){he.invalidateQueries({queryKey:a.conversations.unreadAll()})},t[9]=he,t[10]=ge);let _e=ge,ve;t[11]!==A||t[12]!==I||t[13]!==F?(ve=function(e){let t=F.find(t=>t.id===e.id);I(t=>t.map(t=>t.id===e.id?e:t)),t&&t.status===`Done`!=(e.status===`Done`)&&A()},t[11]=A,t[12]=I,t[13]=F,t[14]=ve):ve=t[14];let R=ve,ye;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(ye=function(e){w({task:e})},t[15]=ye):ye=t[15];let be=ye,xe;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(xe=function(){w(null)},t[16]=xe):xe=t[16];let Ce=xe,we;t[17]!==n||t[18]!==A||t[19]!==I?(we=function(e){I(t=>[...t,e]),Ae(n),A()},t[17]=n,t[18]=A,t[19]=I,t[20]=we):we=t[20];let Te=we,Ee;t[21]!==n||t[22]!==I?(Ee=function(e){I(t=>t.map(t=>t.id===e.id?e:t)),Ae(n)},t[21]=n,t[22]=I,t[23]=Ee):Ee=t[23];let De=Ee,Oe;t[24]!==n||t[25]!==A||t[26]!==I?(Oe=function(e,t){I(t=>t.map(t=>t.id===e.id?e:t)),Ae(n),(t.tagsChanged||t.completedChanged)&&A()},t[24]=n,t[25]=A,t[26]=I,t[27]=Oe):Oe=t[27];let ke=Oe,je;t[28]!==n||t[29]!==A||t[30]!==I?(je=function(e){I(t=>t.filter(t=>t.id!==e)),Ae(n),A()},t[28]=n,t[29]=A,t[30]=I,t[31]=je):je=t[31];let Me=je,Ne;t[32]!==n||t[33]!==E||t[34]!==O||t[35]!==I?(Ne=function(e){let t=Ie(e),r=new Set(t.map(function(e){return e.id}));E(t),O(function(e){return new Set([...e].filter(e=>r.has(e)))}),ot(n).then(I).catch(qn)},t[32]=n,t[33]=E,t[34]=O,t[35]=I,t[36]=Ne):Ne=t[36];let Pe=Ne,Fe;t[37]!==d||t[38]!==R||t[39]!==n||t[40]!==_e?(Fe=async function(e){try{await ft({projectId:n,dispatch:d,onUpdate:R},e),_e()}catch(e){let t=e;Se({title:`Could not start the task`,description:t instanceof Error?t.message:String(t),variant:`destructive`})}},t[37]=d,t[38]=R,t[39]=n,t[40]=_e,t[41]=Fe):Fe=t[41];let Le=Fe,Re;t[42]!==R||t[43]!==n||t[44]!==_e?(Re=async function(e){R(await Ge(n,e.id)),Ae(n),_e()},t[42]=R,t[43]=n,t[44]=_e,t[45]=Re):Re=t[45];let ze=Re,Ve;t[46]!==d||t[47]!==r||t[48]!==n?(Ve=async function(e){r?await r(e):d({type:_.SelectThread,threadId:e,projectId:n})},t[46]=d,t[47]=r,t[48]=n,t[49]=Ve):Ve=t[49];let He=Ve,Ue;t[50]!==R||t[51]!==n?(Ue=async function(e){R(await Je(n,e.id,{status:`Done`,working:!1})),Ae(n)},t[50]=R,t[51]=n,t[52]=Ue):Ue=t[52];let We=Ue,Ke;t[53]!==m||t[54]!==p||t[55]!==g?(Ke={selectedThreadId:p,selectedThreadModel:g,selectedThread:m},t[53]=m,t[54]=p,t[55]=g,t[56]=Ke):Ke=t[56];let qe=Ke,Ye,z,B,V,Xe,H;if(t[57]!==me||t[58]!==u||t[59]!==oe||t[60]!==We||t[61]!==He||t[62]!==ue||t[63]!==ze||t[64]!==Le||t[65]!==le||t[66]!==r||t[67]!==se||t[68]!==f||t[69]!==T||t[70]!==k||t[71]!==D||t[72]!==ee||t[73]!==ne||t[74]!==F||t[75]!==ae||t[76]!==te){let{viewTasks:e,visibleTasks:n,emptyListMessage:i,noMatchMessage:a}=ht(F,{automationsOnly:u,selectedTagIds:D,searchTerm:k,projectName:f?y(f):void 0});Xe=`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden`,t[83]!==u||t[84]!==oe||t[85]!==ue||t[86]!==le||t[87]!==se||t[88]!==T||t[89]!==D||t[90]!==ee||t[91]!==ne||t[92]!==ae||t[93]!==te?(H=(0,Q.jsx)(Jt,{automationsOnly:u,viewMode:te,projectTags:T,selectedTagIds:D,onToggleSelectedTag:ae,onClearSelectedTags:oe,onSearchTermChange:ee,onViewModeChange:ne,isRefreshing:le,onRefresh:ue,onManageTags:se}),t[83]=u,t[84]=oe,t[85]=ue,t[86]=le,t[87]=se,t[88]=T,t[89]=D,t[90]=ee,t[91]=ne,t[92]=ae,t[93]=te,t[94]=H):H=t[94],Ye=fe,V=`min-h-0 min-w-0 flex-1 overflow-hidden`;let o=e.length===0&&`h-full`;t[95]===o?z=t[96]:(z=v(`pb-14`,o),t[95]=o,t[96]=z),B=e.length===0?(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`flex h-full items-center justify-center px-4 py-8 text-center`),children:i}):n.length===0?(0,Q.jsx)(`p`,{className:v(l.bodyMuted,`px-4 py-8 text-center`),children:a}):(0,Q.jsx)(`div`,{className:`min-w-0 w-full divide-y divide-border`,children:n.map(function(e){return(0,Q.jsx)(Ut,{task:e,viewMode:te,now:me,onOpenEdit:be,showRunHistory:u,onThreadSelect:r,onStartInNewWorkspace:Le,onMarkDone:We,onRunNow:ze,onOpenRun:He},e.id)})}),t[57]=me,t[58]=u,t[59]=oe,t[60]=We,t[61]=He,t[62]=ue,t[63]=ze,t[64]=Le,t[65]=le,t[66]=r,t[67]=se,t[68]=f,t[69]=T,t[70]=k,t[71]=D,t[72]=ee,t[73]=ne,t[74]=F,t[75]=ae,t[76]=te,t[77]=Ye,t[78]=z,t[79]=B,t[80]=V,t[81]=Xe,t[82]=H}else Ye=t[77],z=t[78],B=t[79],V=t[80],Xe=t[81],H=t[82];let Ze;t[97]!==z||t[98]!==B?(Ze=(0,Q.jsx)(`div`,{className:z,children:B}),t[97]=z,t[98]=B,t[99]=Ze):Ze=t[99];let U;t[100]!==Ye||t[101]!==V||t[102]!==Ze?(U=(0,Q.jsx)(Ye,{className:V,children:Ze}),t[100]=Ye,t[101]=V,t[102]=Ze,t[103]=U):U=t[103];let Qe,$e;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=()=>S(!0),$e=(0,Q.jsx)(b,{className:`h-5 w-5`}),t[104]=Qe,t[105]=$e):(Qe=t[104],$e=t[105]);let W=u?`Add Automation`:`New task`,et;t[106]===W?et=t[107]:(et=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsxs)(j,{size:`icon`,className:`absolute bottom-6 right-6 z-10 h-10 w-10 rounded-full shadow-lg`,onClick:Qe,children:[$e,(0,Q.jsx)(`span`,{className:`sr-only`,children:W})]})}),t[106]=W,t[107]=et);let tt=u?`Add Automation`:`New task`,G;t[108]===tt?G=t[109]:(G=(0,Q.jsx)(N,{children:tt}),t[108]=tt,t[109]=G);let nt;t[110]!==et||t[111]!==G?(nt=(0,Q.jsxs)(P,{children:[et,G]}),t[110]=et,t[111]=G,t[112]=nt):nt=t[112];let K;t[113]!==x||t[114]!==u||t[115]!==L||t[116]!==Te||t[117]!==De||t[118]!==n||t[119]!==T||t[120]!==qe?(K=(0,Q.jsx)(En,{mode:`add`,open:x,automationsOnly:u,projectId:n,projectTags:T,thread:qe,getTriggerValidationError:L,onOpenChange:S,onTaskCreated:Te,onTaskUpdated:De}),t[113]=x,t[114]=u,t[115]=L,t[116]=Te,t[117]=De,t[118]=n,t[119]=T,t[120]=qe,t[121]=K):K=t[121];let rt=C?.task??null,it=C!==null,q;t[122]!==u||t[123]!==L||t[124]!==Me||t[125]!==ke||t[126]!==n||t[127]!==T||t[128]!==rt||t[129]!==it||t[130]!==qe?(q=(0,Q.jsx)(En,{mode:`edit`,task:rt,open:it,automationsOnly:u,projectId:n,projectTags:T,thread:qe,getTriggerValidationError:L,onOpenChange:Ce,onTaskSaved:ke,onTaskDeleted:Me}),t[122]=u,t[123]=L,t[124]=Me,t[125]=ke,t[126]=n,t[127]=T,t[128]=rt,t[129]=it,t[130]=qe,t[131]=q):q=t[131];let at;t[132]!==Pe||t[133]!==re||t[134]!==n||t[135]!==T||t[136]!==ie?(at=(0,Q.jsx)(Dn,{open:re,onOpenChange:ie,projectId:n,tags:T,onTagsChanged:Pe}),t[132]=Pe,t[133]=re,t[134]=n,t[135]=T,t[136]=ie,t[137]=at):at=t[137];let J;return t[138]!==Xe||t[139]!==H||t[140]!==U||t[141]!==nt||t[142]!==K||t[143]!==q||t[144]!==at?(J=(0,Q.jsxs)(`div`,{className:Xe,children:[H,U,nt,K,q,at]}),t[138]=Xe,t[139]=H,t[140]=U,t[141]=nt,t[142]=K,t[143]=q,t[144]=at,t[145]=J):J=t[145],J}function qn(e){return Gn.error(`Failed to refresh tasks after tag change:`,e)}function Jn(e){let t=(0,Z.c)(5),n;t[0]===e?n=t[1]:(n=function(t){return(0,Q.jsx)(Kn,{...e,initialTasks:t})},t[0]=e,t[1]=n);let r=n,i;return t[2]!==e.projectId||t[3]!==r?(i=(0,Q.jsx)(Wn,{projectId:e.projectId,children:r}),t[2]=e.projectId,t[3]=r,t[4]=i):i=t[4],i}var Yn=c(`app.tasks-view.ui`);async function Xn(){return F(),ue()}function Zn(e,t,n,r,i){r===t&&i===n||e({type:_.SelectThread,threadId:t,projectId:n})}async function Qn(e){try{let t=await de();e({type:_.SetProcessingThreads,threadIds:t})}catch(e){Yn.error(`Failed to fetch processing threads after thread selection:`,e)}}function $n(e){let t=(0,Z.c)(16),{projectId:n,refreshTrigger:r,view:i}=e,a=i===void 0?`tasks`:i,o=h(),s=g(nr),c=g(tr),l=g(er),{expandWindow:d,hasOpenWindows:f}=me(),p,m;t[0]===o?(p=t[1],m=t[2]):(p=()=>{let e=!1;return(async()=>{try{let t=await Xn();e||o({type:_.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){let t=e;Yn.error(`Failed to refresh projects on tasks view mount:`,t)}})(),()=>{e=!0}},m=[o],t[0]=o,t[1]=p,t[2]=m),(0,X.useEffect)(p,m);let v;t[3]!==o||t[4]!==d||t[5]!==f||t[6]!==n||t[7]!==s||t[8]!==l||t[9]!==c?(v=async function(e){if(!s.find(e=>e.projectId===n))return;f&&d(u);let t=null;try{t=await Xn(),o({type:_.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath})}catch(e){let t=e;Yn.error(`Failed to refresh projects for thread selection:`,t)}t&&!t.projects.find(e=>e.projectId===n)?.threads.find(t=>t.threadId===e)||(Zn(o,e,n,c,l),await Qn(o))},t[3]=o,t[4]=d,t[5]=f,t[6]=n,t[7]=s,t[8]=l,t[9]=c,t[10]=v):v=t[10];let y=v,b=a===`automations`,x;return t[11]!==y||t[12]!==n||t[13]!==r||t[14]!==b?(x=(0,Q.jsx)(`div`,{className:`relative flex h-full min-w-0 flex-col overflow-hidden`,children:(0,Q.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,Q.jsx)(Jn,{projectId:n,refreshTrigger:r,onThreadSelect:y,automationsOnly:b})})}),t[11]=y,t[12]=n,t[13]=r,t[14]=b,t[15]=x):x=t[15],x}function er(e){return e.selectedProjectId}function tr(e){return e.selectedThreadId}function nr(e){return e.projects}export{$n as TasksView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{o as t}from"./react-vendor-Ee0-5T4I.js";import{n,r,tt as i}from"./store-DCnnNgwq.js";import{F as a,Ut as o,j as s,wt as c}from"./api-CX0sFbpL.js";import{n as l}from"./explorer-tab-context-BxUVwWQQ.js";import{t as u}from"./use-toast-xpb5jNtN.js";import{Gn as d,er as f}from"./index-DpDgcOE9.js";var p=e(t(),1),m=new Map;function h(e){let t=m.get(e);return t===void 0?null:t}function g(e,t){m.set(e,t)}function _(e){return m.has(e)}function v(e,t){return`installed-ai-files:${e}:${t??``}`}function y(e){return e===null?null:h(e)}function b(e,t,n){if(e===null)return[];let r=t(e.projectNodes),i=new Set(r.map(e=>e.path));for(let n of t(e.threadNodes))i.has(n.path)||r.push(n);return n&&(r=[...r].sort((e,t)=>e.name.localeCompare(t.name))),r}function x(e){let t=e.children??[];return[e.type,e.path,e.name,e.virtual?`v`:``,e.description??``,e.disableModelInvocation?`dmi`:``,t.map(x)].flat(2).join(`~`)}function S(e,t){return new Set(e.map(e=>`${e.path}${t}`))}async function C(e){try{return await o(e)}catch{return[]}}async function w(e,t){return{projectNodes:await c(e),threadNodes:t===null?[]:await C(t)}}function T(e){return`${e.projectNodes.map(x).join(`|`)}#${e.threadNodes.map(x).join(`|`)}`}function E(e,t){if(e.current!==null)return;let n=y(t);e.current=n===null?null:T(n)}function D({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:o=``,sortByName:c=!1,removedToastTitle:m}){let h=n(),x=r(e=>e.projects),C=r(e=>e.selectedProjectId),D=r(e=>e.selectedThreadId),{handleSelectThread:O}=d(),{openChatDockPanel:k}=f(),{setPendingExplorerPath:A,triggerExplorerRefresh:j,setExplorerClearPath:M}=l(),N=C===null?null:v(C,D??null),[P,F]=(0,p.useState)(N),[I,L]=(0,p.useState)(()=>b(y(N),e,c)),[R,z]=(0,p.useState)(()=>N!==null&&!_(N)),[B,V]=(0,p.useState)(null),[H,U]=(0,p.useState)(!1),[W,G]=(0,p.useState)(()=>S(I,t)),K=(0,p.useRef)(null),q=(0,p.useRef)(0),J=(0,p.useCallback)(function(n){let r=b(n,e,c);L(r),G(S(r,t))},[e,t,c]),Y=(0,p.useCallback)(function(e,t){let n=T(t);n!==K.current&&(K.current=n,g(e,t),J(t))},[J]),X=(0,p.useCallback)(async()=>{if(!C){z(!1);return}let e=q.current+=1,t=v(C,D??null);E(K,t);try{let n=await w(C,D??null);e===q.current&&Y(t,n)}catch{e===q.current&&K.current===null&&J(null)}finally{e===q.current&&z(!1)}},[C,D,Y,J]);return(0,p.useLayoutEffect)(()=>{if(P===N)return;F(N),q.current+=1;let e=y(N);K.current=e===null?null:T(e),J(e),z(N!==null&&e===null)},[P,N,J]),(0,p.useEffect)(()=>{X()},[X]),{selectedProjectId:C,selectedThreadId:D,items:I,loading:R,deleteConfirm:B,setDeleteConfirm:V,deleting:H,installedFilePaths:W,setInstalledFilePaths:G,loadItems:X,handleDelete:(0,p.useCallback)(async e=>{if(!C)return;let n=e.name,r=e.path;U(!0);try{try{await s(C,r)}catch{if(D)await a(D,r);else throw Error(`No thread selected to delete from`)}M(r),j(),G(e=>{let n=new Set(e);return n.delete(`${r}${t}`),n}),u({title:m,description:n}),V(null),await X()}catch(e){u({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{U(!1)}},[C,D,X,j,M,t,m]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!C)return;let t=x.find(e=>e.projectId===C);if(t){if(h({type:i.OpenProjectPanel,projectId:C}),!t.threads.some(e=>e.threadId===D)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&O(C,e.threadId)}A(`${e}${o}`),k(`explorer`)}},[C,D,x,h,O,A,k,o]),triggerExplorerRefresh:j}}export{g as i,_ as n,h as r,D as t};
|