@jetcrab/pi-desk 1.1.21 → 1.1.23-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/package.json +2 -2
  2. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +1 -1
  3. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +1 -1
  4. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +28 -34
  5. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +162 -151
  6. package/src/client/l3_modules/project-files/l3-project-file-browser.module.css +30 -0
  7. package/src/client/l3_modules/project-files/l3-project-file-browser.tsx +137 -111
  8. package/src/client/l3_modules/project-files/l3-project-file-tabs.tsx +26 -6
  9. package/src/client/l3_modules/project-files/views/l3-project-search-controls.tsx +118 -123
  10. package/src/client/l3_modules/project-files/views/l3-project-search-results.tsx +29 -25
  11. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  12. package/temp/build/pi-desk/release/.next/build-manifest.json +3 -3
  13. package/temp/build/pi-desk/release/.next/prerender-manifest.json +3 -3
  14. package/temp/build/pi-desk/release/.next/required-server-files.js +3 -3
  15. package/temp/build/pi-desk/release/.next/required-server-files.json +3 -3
  16. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  17. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  18. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +1 -1
  19. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  20. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  21. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  22. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  24. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  25. package/temp/build/pi-desk/release/.next/server/app/page.js +2 -2
  26. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  27. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -1
  28. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -1
  29. package/temp/build/pi-desk/release/.next/server/chunks/20460.js +2 -2
  30. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  31. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  32. package/temp/build/pi-desk/release/.next/server/server-reference-manifest.json +1 -1
  33. package/temp/build/pi-desk/release/.next/static/chunks/9038-05fd2688407b39c1.js +15 -0
  34. package/temp/build/pi-desk/release/.next/static/chunks/app/{page-6ebc1c877f6025dd.js → page-54040b9fd54ee8b3.js} +2 -2
  35. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/{page-d70ee4e9409b970a.js → page-bc18765121950e65.js} +1 -1
  36. package/temp/build/pi-desk/release/.next/static/chunks/{webpack-b60891a214e0925d.js → webpack-48eecbb66781c006.js} +1 -1
  37. package/temp/build/pi-desk/release/.next/static/css/10e063cfb3cda7bd.css +1 -0
  38. package/temp/build/pi-desk/release/.next/static/css/2c3b0c0ff1f49c68.css +1 -0
  39. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  40. package/temp/build/pi-desk/release/.next/static/chunks/9038-03144ed96d613f75.js +0 -15
  41. package/temp/build/pi-desk/release/.next/static/css/6dbae2922f88ca31.css +0 -1
  42. package/temp/build/pi-desk/release/.next/static/css/f646ca6c07245c4c.css +0 -1
  43. /package/temp/build/pi-desk/release/.next/static/{8Yd33M0zPi4tbRn4xCaRY → gAYTx4KJJR3vTtGYexj4J}/_buildManifest.js +0 -0
  44. /package/temp/build/pi-desk/release/.next/static/{8Yd33M0zPi4tbRn4xCaRY → gAYTx4KJJR3vTtGYexj4J}/_ssgManifest.js +0 -0
@@ -405,7 +405,7 @@ description: ${a.description}
405
405
  location: ${a.path}`})}):null,(0,A.jsx)(c7,{title:b("viewSkillContent"),content:a.content,truncated:a.truncated})]},a.path)),a.prompts.map(a=>(0,A.jsxs)("article",{className:"border-b py-4 last:border-b-0",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsxs)("code",{className:"font-semibold",children:["/",a.name]}),(0,A.jsx)("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:b("manualOnly")})]}),(0,A.jsx)("p",{className:"mt-1 text-xs leading-5 text-muted-foreground",children:a.description}),(0,A.jsx)("p",{className:"mt-1 break-all font-mono text-xs text-muted-foreground",children:a.path}),(0,A.jsx)(c7,{title:b("viewPromptContent"),content:a.content,truncated:a.truncated})]},a.path))]})})}function c9({capabilities:a,browserContributions:b}){let{t:c}=(0,Q.Bd)("pluginManagement"),d=a.extensions.some(a=>a.events.length>0||a.commands.length>0||a.shortcuts.length>0||a.flags.length>0||a.messageRenderers.length>0||a.entryRenderers.length>0),e=a.piDesk.methods.length>0||a.piDesk.browserEntries.length>0||a.piDesk.messageDeclarations.length>0||b.length>0,f=a.themes.length>0||a.providers.length>0;return d||e||f?(0,A.jsx)(c3,{title:c("otherCapabilities"),children:(0,A.jsxs)("div",{className:"space-y-2",children:[e?(0,A.jsxs)("div",{className:"rounded-xl border bg-card p-3 text-xs",children:[(0,A.jsx)("p",{className:"font-semibold",children:"Pi Desk"}),(0,A.jsxs)("div",{className:"mt-2 space-y-1.5 text-muted-foreground",children:[a.piDesk.methods.map(a=>(0,A.jsxs)("p",{children:["Method:",(0,A.jsxs)("code",{children:[a.pluginName,"/",a.method]})]},`${a.pluginName}:${a.method}`)),b.map(a=>(0,A.jsxs)("p",{children:[c(cZ[a.kind]),":","message-view"===a.kind?a.viewKey:"application"===a.kind?a.title:"widget"===a.kind||"session-header-item"===a.kind?a.contributionName:a.label]},`${a.kind}:${a.contributionName}`)),a.piDesk.messageDeclarations.map(a=>(0,A.jsxs)("p",{children:[c("messageDeclarations"),(0,A.jsxs)("code",{children:[a.pluginName,"/",a.declarationName]})]},`${a.pluginName}:${a.declarationName}`))]})]}):null,d?a.extensions.map(a=>(0,A.jsxs)("div",{className:"rounded-xl border bg-card p-3 text-xs",children:[(0,A.jsx)("code",{className:"block break-all font-semibold",children:a.path}),a.commands.length>0?(0,A.jsxs)("p",{className:"mt-2 leading-5 text-muted-foreground",children:["Commands:",a.commands.map(a=>`/${a.name}`).join("、")]}):null,a.shortcuts.length>0?(0,A.jsxs)("p",{className:"mt-1 leading-5 text-muted-foreground",children:["Shortcuts:",a.shortcuts.map(a=>a.shortcut).join("、")]}):null,a.flags.length>0?(0,A.jsxs)("p",{className:"mt-1 leading-5 text-muted-foreground",children:["Flags:",a.flags.map(a=>`--${a.name}`).join("、")]}):null,a.events.length>0?(0,A.jsxs)("p",{className:"mt-1 leading-5 text-muted-foreground",children:["Events:",a.events.map(a=>a.name).join("、")]}):null]},a.path)):null,f?(0,A.jsxs)("div",{className:"rounded-xl border bg-card p-3 text-xs text-muted-foreground",children:[a.themes.length>0?(0,A.jsxs)("p",{children:["Theme:",a.themes.map(a=>a.name).join("、")]}):null,a.providers.length>0?(0,A.jsxs)("p",{className:"mt-1",children:["Provider:",a.providers.map(a=>a.name).join("、")]}):null]}):null]})}):null}function da({plugin:a,detail:b,detailLoading:c,detailError:d,browserContributions:e,onRetry:f}){let{t:g}=(0,Q.Bd)("pluginManagement"),{locale:h}=(0,cu.i)(),i=function(a,b,c){let d=[];a.tools.length>0&&d.push({label:c("tagTools",{count:a.tools.length}),tone:"neutral"});let e=a.tools.reduce((a,b)=>"active"!==b.state?a:a+ +!!b.promptSnippet+b.promptGuidelineCount,0)+a.skills.filter(a=>a.modelVisible).length;e>0&&d.push({label:c("tagFixed",{count:e}),tone:"prompt"});let f=c$(a).reduce((a,b)=>a+b.count,0);f>0&&d.push({label:c("tagDynamic",{count:f}),tone:"dynamic"});let g=a.tools.filter(a=>"shadowed"!==a.state&&cW.has(a.name)).length;g>0&&d.push({label:c("tagOverride",{count:g}),tone:"override"});let h=a.prompts.length+a.skills.filter(a=>!a.modelVisible).length;h>0&&d.push({label:c("tagManual",{count:h}),tone:"neutral"});let i=b.length+a.piDesk.methods.length+a.piDesk.messageDeclarations.length;i>0&&d.push({label:`Pi Desk ${i}`,tone:"neutral"});let j=a.providers.length+a.themes.length+a.extensions.reduce((a,b)=>a+b.commands.length+b.shortcuts.length+b.flags.length,0);return j>0&&d.push({label:c("tagInteraction",{count:j}),tone:"neutral"}),0===d.length&&a.extensions.length>0&&d.push({label:`Extension ${a.extensions.length}`,tone:"neutral"}),d}(a.capabilities,e,g);return(0,A.jsxs)("div",{className:"space-y-3 text-sm","data-testid":"plugin-capability-detail",children:[(0,A.jsx)("p",{className:"break-all font-mono text-xs text-muted-foreground",children:a.source}),i.length>0?(0,A.jsx)("div",{className:"flex flex-wrap gap-2","aria-label":g("capabilityCategories"),children:i.map(a=>(0,A.jsx)("span",{className:"rounded-md bg-muted px-2 py-0.5 text-xs text-muted-foreground",children:a.label},a.label))}):null,a.capabilities.error?(0,A.jsx)("p",{className:"whitespace-pre-wrap break-words text-sm leading-5 text-status-warning",children:g("incompleteCapabilities",{error:(0,ct.fD)(a.capabilities.error,h)})}):null,c?(0,A.jsxs)("div",{className:"flex items-center gap-2 py-2 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),g("loadingFullDetails")]}):d?(0,A.jsxs)("div",{className:"flex items-start gap-2",role:"alert",children:[(0,A.jsx)("p",{className:"min-w-0 flex-1 break-words text-sm text-destructive",children:d}),(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline",onClick:f,children:[(0,A.jsx)(bK.A,{"data-icon":"inline-start"}),g("retry")]})]}):b?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(c6,{detail:b}),(0,A.jsx)(c8,{detail:b})]}):null,(0,A.jsx)(c4,{capabilities:a.capabilities}),(0,A.jsx)(c9,{capabilities:a.capabilities,browserContributions:e})]})}var db=c(31914);let dc=B.createContext(void 0);var dd=c(98553);let de={...dd.dc,checked:a=>a?{"data-checked":""}:{"data-unchecked":""}};var df=c(36054),dg=c(99188),dh=c(89163),di=c(61495),dj=c(61287);function dk(a,b,c,d=!0,e){let[f,g]=B.useState(),h=(0,aS.e)(e?`${e}-label`:void 0),i=a??b??f;return(0,av.g)(()=>{let e=a||b||!d?void 0:function(a,b){let c=function(a){if(!a)return;let b=a.parentElement;if(b&&"LABEL"===b.tagName)return b;let c=a.id;if(c){let b=a.nextElementSibling;if(b&&b.htmlFor===c)return b}let d=a.labels;return d&&d[0]}(a);if(c)return!c.id&&b&&(c.id=b),c.id||void 0}(c.current,h);f!==e&&g(e)}),i}var dl=c(42270),dm=c(45699);let dn=B.forwardRef(function(a,b){let{checked:c,className:d,defaultChecked:e,"aria-labelledby":f,form:g,id:h,inputRef:i,name:j,nativeButton:k=!1,onCheckedChange:l,readOnly:m=!1,required:n=!1,disabled:o=!1,render:p,uncheckedValue:q,value:r,style:s,...t}=a,{clearErrors:u}=(0,di.x)(),{state:v,setTouched:w,setDirty:x,validityData:y,setFilled:z,setFocused:C,validationMode:D,disabled:E,name:F,validation:G}=(0,dg.V$)(),{labelId:H}=(0,dj.H)(),I=E||o,J=F??j,K=B.useRef(null),L=(0,aJ.a)(K,i,G.inputRef),M=B.useRef(null),N=(0,aS.e)(),O=(0,dl.l)({id:h,implicit:!1,controlRef:M}),P=k?void 0:O,[Q,R]=(0,ba.q)({controlled:c,default:!!e,name:"Switch",state:"checked"});(0,dh.I)(M,N,Q,void 0,!I,j),(0,av.g)(()=>{K.current&&z(K.current.checked)},[z]),(0,dm.x)(Q,()=>{u(J),x(Q!==y.initialValue),z(Q),G.change(Q)});let{getButtonProps:S,buttonRef:T}=(0,aH.s)({disabled:I,native:k}),U=dk(f,H,K,!k,P),V={...G.getValidationProps(I),checked:Q,disabled:I,form:g,id:P,name:J,required:n,style:J?db.a:db.Q,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:L,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(m)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,bh.d)(aT.dv,a.nativeEvent);l?.(b,c),c.isCanceled||R(b)},onClick(a){a.stopPropagation()},onFocus(){M.current?.focus()},...void 0!==r?{value:r}:aw.t0},W=B.useMemo(()=>({...v,checked:Q,disabled:I,readOnly:m,required:n}),[v,Q,I,m,n]),X=(0,aG.o)("span",a,{state:W,ref:[b,M,T],props:[{id:k?O:N,role:"switch","aria-checked":Q,"aria-readonly":m||void 0,"aria-required":n||void 0,"aria-labelledby":U,onFocus(){I||C(!0)},onBlur(){let a=K.current;a&&!I&&(w(!0),C(!1),"onBlur"===D&&G.commit(a.checked))},onClick(a){if(m||I)return;a.preventDefault();let b=K.current;b&&(0,df.B)(b,a)}},t,S,a=>G.getValidationProps(I,a)],stateAttributesMapping:de});return(0,A.jsxs)(dc.Provider,{value:W,children:[X,!Q&&J&&void 0!==q&&(0,A.jsx)("input",{type:"hidden",form:g,name:J,value:q,disabled:I}),(0,A.jsx)("input",{...V,suppressHydrationWarning:!0})]})}),dp=B.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=function(){let a=B.useContext(dc);if(void 0===a)throw Error((0,aq.A)(63));return a}();return(0,aG.o)("span",a,{state:g,ref:b,stateAttributesMapping:de,props:f})});function dq({className:a,size:b="default",...c}){return(0,A.jsx)(dn,{"data-slot":"switch","data-size":b,className:(0,W.cn)("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),...c,children:(0,A.jsx)(dp,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}function dr({plugin:a,displayName:b,browserError:c,disabled:d,pending:e,browserRetryPending:f,onAction:g}){let{t:h}=(0,Q.Bd)("pluginManagement"),i=a.operation?.phase,j="disabled"!==a.status;return(0,A.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-3",children:[e?(0,A.jsxs)("span",{role:"status",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground",children:["waiting"!==i?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):null,h(i&&"failed"!==i?`phase_${i}`:"submitting")]}):a.updateAvailable&&"extension"!==a.kind&&"failed"!==i?(0,A.jsx)(U.$,{size:"sm",disabled:d,onClick:()=>g("update"),children:h("update")}):null,"failed"===i?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:d||e,onClick:()=>g("retry"),children:h("retry")}):"failed"===a.status?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:d||e,onClick:()=>g("reload"),children:h("reloadOne")}):c&&a.pluginName?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:d||f,onClick:()=>g("retry-browser"),children:h("retryView")}):null,(0,A.jsxs)("label",{className:"flex min-h-8 cursor-pointer items-center gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)(dq,{checked:j,"aria-label":h("togglePlugin",{name:b}),disabled:d||e,onCheckedChange:a=>g(a?"enable":"disable")}),h(j?"enabled":"disabled")]}),"extension"!==a.kind?(0,A.jsx)(U.$,{size:"icon-sm",variant:"ghost",className:"text-muted-foreground hover:text-destructive","aria-label":h("removeNamed",{name:b}),title:h("remove"),disabled:d||e,onClick:()=>g("remove"),children:(0,A.jsx)(bJ,{})}):null]})}function ds({plugin:a,requestError:b,browserError:c}){let{t:d}=(0,Q.Bd)("pluginManagement"),{locale:e}=(0,cu.i)(),f=a.operation?.phase,g=[b,"failed"===f?a.operation?.message:null,a.error?(0,ct.fD)(a.error.message,e):null,c,a.updateError?d("itemCheckFailed",{error:a.updateError}):null].filter((a,b,c)=>!!a&&c.indexOf(a)===b);return g.length||"waiting"===f||"failed"===a.status?(0,A.jsxs)("div",{className:"space-y-1",children:[g.map(a=>(0,A.jsx)("p",{role:"alert",className:"whitespace-pre-wrap text-sm text-destructive [overflow-wrap:anywhere]",children:a},a)),g.length||"failed"!==a.status?null:(0,A.jsx)("p",{className:"text-sm text-destructive",children:d("notLoaded")}),"waiting"===f&&a.operation?.message?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground [overflow-wrap:anywhere]",children:a.operation.message}):null]}):null}function dt(a){let b=a.startsWith("npm:")?a.slice(4):a,c=/^((?:@[a-z0-9_.-]+\/)?[a-z0-9][a-z0-9_.-]*)(?:@([^\s/]+))?$/i.exec(b);return c?{name:c[1],...c[2]?{version:c[2]}:{}}:null}function du(a){return a.source.startsWith("npm:")?dt(a.source)?.name??a.source:a.pluginName??("extension"===a.kind?a.source.replaceAll("\\","/").split("/").at(-1):null)??a.source}function dv(a){return`source:${dt(a)?.name??a}`}function dw(a){switch(a.kind){case"batch":return"add"===a.input.action?"batchInstall":"update"===a.input.action?"updateSelected":"del"===a.input.action?"removeSelected":"setChannel";case"add":return"actionAdd";case"update":return"actionUpdate";case"del":return"actionDelete";case"enable":return"enable";case"disable":return"disable";case"reload":return"normal"===a.mode?"restartNormal":"actionReload"}}let dx=E.Yj().trim().min(1).max(128).regex(/^[a-zA-Z][a-zA-Z0-9._-]*$/),dy=E.Yj().trim().url().max(2048).refine(a=>{let b=new URL(a);return["https:","http:"].includes(b.protocol)&&!b.username&&!b.password&&!b.search&&!b.hash},"插件源必须是 HTTP 或 HTTPS 仓库地址"),dz=E.gM("mode",[E.Ik({mode:E.eu("auto")}).strict(),E.Ik({mode:E.eu("local")}).strict(),E.Ik({mode:E.eu("official")}).strict(),E.Ik({mode:E.eu("domestic")}).strict(),E.Ik({mode:E.eu("custom"),registry:dy}).strict()]),dA=E.Ik({description:E.Yj().trim().min(1).max(4e3).optional(),readme:E.Yj().trim().min(1).max(1024).optional()});E.Ik({description:E.Yj().optional(),piDesk:E.Ik({i18n:E.g1(E.Yj().min(1).max(35),dA).optional()}).passthrough().optional()}).passthrough();let dB=E.Ik({downloadSource:dz,recommendedRegistry:dy}).strict(),dC=E.Ik({downloadSource:dz}).strict(),dD=E.Ik({query:E.Yj().trim().max(200).default(""),page:E.ai().int().min(1).max(100).default(1),kind:E.k5(["all","desk","pi"]).default("all"),registry:dy.optional()}).strict(),dE=E.Ik({name:E.Yj().trim().min(1).max(214).regex(/^(?:@[a-z0-9_.-]+\/)?[a-z0-9][a-z0-9_.-]*$/i),version:E.Yj().trim().min(1).max(128).optional(),registry:dy.optional()}).strict(),dF=E.Ik({name:E.Yj(),description:ct.qf.nullable(),version:E.Yj(),publisher:E.Yj().nullable(),kind:E.k5(["desk","pi","unknown"]),official:E.zM(),registry:dy}).strict(),dG=E.Ik({items:E.YO(dF),hasMore:E.zM()}).strict(),dH=dF.extend({versions:E.YO(E.Yj()),readme:ct.qf.nullable(),homepage:E.Yj().nullable(),repository:E.Yj().nullable(),compatible:E.zM().nullable(),compatibilityNote:E.Yj().nullable()}).strict();function dI({id:a,mode:b,registry:c,recommendedRegistry:d,savedRegistry:e,loading:f,saving:g,error:h,override:i,onMode:j,onRegistry:k,onSave:l,onRetry:m}){let{t:n}=(0,Q.Bd)("pluginManagement"),o="auto"===b?d:"official"===b?"https://registry.npmjs.org":"domestic"===b?"https://mirrors.cloud.tencent.com/npm":"custom"===b?e??c:null,p=[...i?[{value:"default",label:n("useDefaultSource")}]:[],...["local","auto","domestic","official","custom"].map(a=>({value:a,label:n(`download_${a}`)}))];return(0,A.jsxs)("div",{className:"min-w-0 space-y-3 text-sm",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("label",{htmlFor:a,className:"font-medium",children:n(i?"installDownloadSource":"downloadSource")}),(0,A.jsxs)(bO.l6,{value:b,items:p,disabled:f,onValueChange:a=>{a&&!g&&j(a)},children:[(0,A.jsx)(bO.bq,{id:a,className:"max-w-full",children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:p.map(a=>(0,A.jsx)(bO.eb,{value:a.value,disabled:g,children:a.label},a.value))})]}),g?(0,A.jsx)("span",{role:"status",className:"text-muted-foreground",children:n("saving")}):null]}),"custom"===b?(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("label",{htmlFor:`${a}-url`,className:"block",children:n("registryUrl")}),(0,A.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,A.jsx)(bU.p,{id:`${a}-url`,type:"url",value:c,placeholder:"https://registry.example.com",className:"min-w-0 flex-1 basis-48",disabled:g,onChange:a=>k(a.target.value)}),l?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:g,onClick:l,children:n("save")}):null]})]}):!i&&o?(0,A.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:o}):null,h?(0,A.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center gap-2 text-destructive",children:[(0,A.jsx)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:h}),m?(0,A.jsx)(U.$,{variant:"outline",size:"sm",onClick:m,children:n("retry")}):null]}):null]})}var dJ=c(21556),dK=c(46165),dL=c(75377);function dM(a){return{checked:b=>a.indeterminate?{}:b?{"data-checked":""}:{"data-unchecked":""},...dd.dc}}let dN=B.createContext({disabled:!1}),dO=B.createContext(void 0),dP=B.createContext(void 0),dQ=B.forwardRef(function(a,b){let{checked:c,className:d,defaultChecked:e=!1,"aria-labelledby":f,disabled:g=!1,form:h,id:i,indeterminate:j=!1,inputRef:k,name:l,onCheckedChange:m,parent:n=!1,readOnly:o=!1,render:p,required:q=!1,uncheckedValue:r,value:s,nativeButton:t=!1,style:u,...v}=a,{clearErrors:w}=(0,di.x)(),{disabled:x,name:y,setDirty:z,setFilled:C,setFocused:D,setTouched:E,state:F,validationMode:G,validityData:H,validation:I}=(0,dg.V$)(),J=B.useContext(dN),{labelId:K,controlId:L,registerControlId:M,getDescriptionProps:N}=(0,dj.H)(),O=B.useContext(dO),P=O?.allValues===void 0?void 0:O.parent,Q=void 0!==P,R=x||J.disabled||O?.disabled||g,S=y??l,T=s??S,U=(0,aS.e)(),V=(0,aS.e)(),W=i||L;Q&&(n?W=V:void 0!==T?W=`${P.id}-${T}`:W||=V);let X={};Q&&(n?X=P.getParentProps():void 0!==T&&(X=P.getChildProps(T)));let{checked:Y=c,indeterminate:Z=j,onCheckedChange:$,..._}=X,aa=O?.value,ab=B.useRef(null),ac=(0,dK.j)(()=>Symbol()),ad=B.useRef(!1),{getButtonProps:ae,buttonRef:af}=(0,aH.s)({disabled:R,native:t}),ag=O?.validation??I,[ah,ai]=(0,ba.q)({controlled:void 0===T||void 0===aa||n?Y:aa.includes(T),default:e,name:"Checkbox",state:"checked"}),aj=Q?!!Y:ah,ak=Q&&Z||j;(0,av.g)(()=>{M!==aw.tE&&(ad.current=!0,M(ac.current,W))},[W,M,ac]),B.useEffect(()=>{let a=ac.current;return()=>{ad.current&&M!==aw.tE&&(ad.current=!1,M(a,void 0))}},[M,ac]),(0,dh.I)(ab,U,ah,void 0,!O&&!R,l);let al=B.useRef(null),am=ag.registerInput,an=O?T:void 0,ao=B.useCallback(a=>am(a,{controlRef:ab,value:an}),[am,an]),ap=(0,aJ.a)(k,al,n?void 0:ao),aq=dk(f,K,al,!t,W??void 0);(0,av.g)(()=>{al.current&&(al.current.indeterminate=ak,ah&&C(!0))},[ah,ak,C]),(0,dm.x)(ah,()=>{O||(w(S),C(ah),z(ah!==H.initialValue),ag.change(ah))});let ar=(0,aX.v6)({checked:ah,disabled:R,form:h,name:n?void 0:S,id:t?void 0:W??void 0,required:q,ref:ap,style:S?db.a:db.Q,tabIndex:-1,type:"checkbox","aria-hidden":!0,onChange(a){if(a.nativeEvent.defaultPrevented)return;if(o)return void a.preventDefault();let b=a.currentTarget.checked,c=(0,bh.d)(aT.dv,a.nativeEvent);if((m?.(b,c),!c.isCanceled)&&($?.(b,c),!c.isCanceled&&(ai(b),void 0!==T&&void 0!==O&&!n&&!Q))){let a=b?[...O.value,T]:O.value.filter(a=>a!==T);O.setValue(a,c)}},onClick(a){a.stopPropagation()},onFocus(){ab.current?.focus()}},void 0!==s?{value:(O?ah&&s:s)||""}:aw.t0,N,a=>ag.getValidationProps(R,a));B.useEffect(()=>{if(!P||void 0===T)return;let a=P.disabledStatesRef.current;return a.set(T,R),()=>{a.delete(T)}},[P,R,T]);let as=B.useMemo(()=>({...F,checked:aj,disabled:R,readOnly:o,required:q,indeterminate:ak}),[F,aj,R,o,q,ak]),at=dM(as),au=(0,aG.o)("span",a,{state:as,ref:[af,ab,b],props:[{id:t?W??void 0:U,role:"checkbox","aria-checked":ak?"mixed":aj,"aria-readonly":o||void 0,"aria-required":q||void 0,"aria-labelledby":aq,"data-parent":n?"":void 0,onFocus(){R||D(!0)},onBlur(){let a=al.current;a&&(E(!0),D(!1),"onBlur"===G&&ag.commit(O?aa:a.checked))},onKeyDown(a){if("Enter"!==a.key||(a.preventBaseUIHandler(),a.defaultPrevented))return;let b=al.current?.form??null,c=a.currentTarget,d=a.nativeEvent,e=a.preventDefault,f=d.preventDefault,g=!1;a.preventDefault=()=>{g=!0,e.call(a)},d.preventDefault=()=>{g=!0,f.call(d)},f.call(d),(0,dL.zk)(c).queueMicrotask(()=>{a.preventDefault=e,d.preventDefault=f,g||(function(a){if(!a)return null;for(let b of a.elements){let a=b.tagName;if(("BUTTON"===a||"INPUT"===a)&&"submit"===b.type)return b}return null})(b)?.click()})},onClick(a){if(o||R)return;a.preventDefault();let b=al.current;b&&(0,df.B)(b,a)}},v,_,ae,N,a=>ag.getValidationProps(R,a)],stateAttributesMapping:at});return(0,A.jsxs)(dP.Provider,{value:as,children:[au,!ah&&!O&&S&&!n&&void 0!==r&&(0,A.jsx)("input",{type:"hidden",form:h,name:S,value:r,disabled:R}),(0,A.jsx)("input",{...ar,suppressHydrationWarning:!0})]})}),dR=B.forwardRef(function(a,b){let{render:c,className:d,style:e,keepMounted:f=!1,...g}=a,h=function(){let a=B.useContext(dP);if(void 0===a)throw Error((0,aq.A)(14));return a}(),i=h.checked||h.indeterminate,{mounted:j,transitionStatus:k,setMounted:l}=(0,bj.$)(i),m=B.useRef(null),n={...h,transitionStatus:k};(0,bk.v)({open:i,ref:m,onComplete(){i||l(!1)}});let o={...dM(h),...be.G},p=(0,aG.o)("span",a,{ref:[b,m],state:n,stateAttributesMapping:o,props:g});return f||j?p:null});function dS({className:a,...b}){return(0,A.jsx)(dQ,{"data-slot":"checkbox",className:(0,W.cn)("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground group-has-[:focus-visible]/field-label:data-checked:border-primary dark:data-checked:bg-primary",a),...b,children:(0,A.jsx)(dR,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,A.jsx)(bp.A,{})})})}function dT(a){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),d=a.snapshot?.plugins??[],e=b=>a.requests.has(dv(b.source))||!!(b.operation&&"failed"!==b.operation.phase),f=d.filter(b=>("updates"!==a.statusFilter||!!b.updateAvailable)&&("disabled"!==a.statusFilter||"disabled"===b.status)&&("failed"!==a.statusFilter||!!("failed"===b.status||b.operation?.phase==="failed"||b.updateError||b.pluginName&&a.browserErrors.has(b.pluginName)))&&`${du(b)} ${b.description?(0,ct.fD)(b.description,c):""}`.toLocaleLowerCase().includes(a.filter.trim().toLocaleLowerCase())),g=f.filter(a=>"extension"!==a.kind),h=d.filter(b=>a.selected.has(dv(b.source))),i=d.filter(a=>!0===a.updateAvailable&&"extension"!==a.kind&&!e(a)),j=i.filter(b=>a.selected.has(dv(b.source))),k=h.filter(a=>!e(a)),l=g.length>0&&g.every(b=>a.selected.has(dv(b.source))),m=g.some(b=>a.selected.has(dv(b.source))),n=["all","updates","disabled","failed"].map(a=>({value:a,label:b(`statusFilter_${a}`)}));return(0,A.jsxs)("section",{"aria-label":b("installed"),className:"flex min-h-0 min-w-0 flex-col gap-3",children:[(0,A.jsxs)("div",{className:"shrink-0 space-y-3 bg-popover pb-2",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)(bU.p,{"aria-label":b("filterInstalled"),value:a.filter,onChange:b=>a.onFilter(b.target.value),placeholder:b("filterInstalled"),className:"min-w-40 flex-1 basis-52"}),(0,A.jsxs)(bO.l6,{value:a.statusFilter,items:n,onValueChange:b=>{b&&a.onStatusFilter(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("filterStatus"),children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:n.map(a=>(0,A.jsx)(bO.eb,{value:a.value,children:a.label},a.value))})]}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.loading||a.disabled,onClick:a.onRefresh,children:b(a.loading?"checkingUpdates":"checkUpdates")}),i.length>0?(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled||a.loading,onClick:a.onUpdateAll,children:b("updateAll",{count:i.length})}):null,d.some(a=>"extension"!==a.kind)?(0,A.jsx)(U.$,{size:"sm",variant:"ghost",onClick:()=>a.onBatchMode(!a.batchMode),children:b(a.batchMode?"finishSelection":"batchManage")}):null]}),a.batchMode?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-lg bg-muted px-3 py-2",children:[(0,A.jsxs)("label",{className:"flex min-h-8 cursor-pointer items-center gap-2 text-sm",children:[(0,A.jsxs)("span",{className:"relative flex size-4 items-center justify-center",children:[(0,A.jsx)(dS,{checked:l,indeterminate:m&&!l,className:"data-indeterminate:[&_svg]:hidden",disabled:!g.length,onCheckedChange:b=>a.onSelect(g.map(a=>dv(a.source)),b)}),m&&!l?(0,A.jsx)(dJ.A,{"aria-hidden":!0,className:"pointer-events-none absolute size-3.5"}):null]}),b(a.filter||"all"!==a.statusFilter?"selectFiltered":"selectAll")]}),(0,A.jsx)("span",{className:"text-sm text-muted-foreground",children:b("selectedCount",{count:h.length})}),h.length?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.disabled||a.loading||!j.length,onClick:a.onUpdateSelected,children:b("updateSelected")}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.disabled||!k.length,onClick:a.onRemoveSelected,children:b("removeSelected")}),(0,A.jsx)(U.$,{size:"sm",variant:"ghost",onClick:()=>a.onSelect([...a.selected],!1),children:b("clearSelection")})]}):null]}):null,a.errors.list?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere]",children:a.errors.list}):null]}),(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 overflow-y-auto",children:a.loading&&!a.snapshot?(0,A.jsx)("p",{role:"status",className:"py-6 text-sm text-muted-foreground",children:b("loading")}):f.length?(0,A.jsx)("div",{className:"divide-y rounded-lg border bg-card",children:f.map(d=>{let f=du(d),g=dv(d.source),h=d.pluginName?a.browserErrors.get(d.pluginName)??null:null;return(0,A.jsx)("article",{"aria-label":f,className:`min-w-0 px-4 py-3 ${a.selected.has(g)&&a.batchMode?"bg-accent/40":""}`,children:(0,A.jsxs)("div",{className:"flex items-start gap-3",children:[a.batchMode&&"extension"!==d.kind?(0,A.jsx)("div",{className:"flex min-h-8 shrink-0 items-center",children:(0,A.jsx)(dS,{checked:a.selected.has(g),"aria-label":b("selectPlugin",{name:f}),onCheckedChange:b=>a.onSelect([g],b)})}):null,(0,A.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[(0,A.jsxs)("div",{className:"flex min-w-0 flex-1 basis-64 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,A.jsx)(U.$,{variant:"link",className:"h-auto min-h-8 min-w-0 max-w-full justify-start p-0 text-left text-sm font-semibold whitespace-normal no-underline hover:underline [overflow-wrap:anywhere]","aria-label":b("viewDetails",{name:f}),onClick:()=>a.onDetail(d.source),children:f}),d.version?(0,A.jsxs)("span",{className:"text-xs text-muted-foreground",children:["v",d.version]}):null,d.updateAvailable?(0,A.jsx)("span",{className:"inline-flex rounded-md bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success",children:d.availableVersion?b("newVersion",{version:d.availableVersion}):b("updateAvailable")}):null,d.updateTag&&"latest"!==d.updateTag?(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:"dev"===d.updateTag?b("channelDev"):d.updateTag}):null]}),(0,A.jsx)(dr,{plugin:d,displayName:f,browserError:h,disabled:a.disabled,pending:e(d),browserRetryPending:a.requests.has(`entry:${d.pluginName}`),onAction:b=>a.onAction(d,b)})]}),d.description?(0,A.jsx)("p",{className:"line-clamp-2 text-sm text-muted-foreground [overflow-wrap:anywhere]",children:(0,ct.fD)(d.description,c)}):null,(0,A.jsx)(ds,{plugin:d,browserError:h,requestError:a.errors[g]??a.errors[`entry:${d.pluginName}`]})]})]})},g)})}):(0,A.jsx)("p",{className:"py-8 text-center text-sm text-muted-foreground",children:b(a.filter||"all"!==a.statusFilter?"noMatches":"empty")})})]})}function dU(a){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),d=new Map(a.snapshot?.plugins.filter(a=>a.source.startsWith("npm:")).map(a=>[dt(a.source)?.name,a]));return(0,A.jsxs)("section",{className:"min-w-0 space-y-4","aria-label":b("searchPlugins"),children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("label",{htmlFor:"plugin-catalog-query",className:"sr-only",children:b("searchPlugins")}),(0,A.jsx)(bU.p,{id:"plugin-catalog-query",value:a.query,placeholder:b("searchPlaceholder"),className:"min-w-40 flex-1 basis-56",maxLength:200,onChange:b=>a.onQuery(b.target.value),onCompositionStart:a.onCompositionStart,onCompositionEnd:a.onCompositionEnd}),(0,A.jsxs)(bO.l6,{value:a.searchSource,items:[{value:"public",label:b("publicNpm")},{value:"custom",label:b("customSearchSource")}],onValueChange:b=>{b&&a.onSearchSource(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("searchSource"),children:(0,A.jsx)(bO.yv,{})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[160]",children:[(0,A.jsx)(bO.eb,{value:"public",children:b("publicNpm")}),(0,A.jsx)(bO.eb,{value:"custom",children:b("customSearchSource")})]})]}),(0,A.jsxs)(bO.l6,{value:a.kind,items:["all","desk","pi"].map(a=>({value:a,label:b(`kind_${a}`)})),onValueChange:b=>{b&&a.onKind(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("pluginKind"),children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:["all","desk","pi"].map(a=>(0,A.jsx)(bO.eb,{value:a,children:b(`kind_${a}`)},a))})]}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.disabled,onClick:a.onDirectInstall,children:b("directInstall")}),"custom"===a.searchSource?(0,A.jsxs)("div",{className:"w-full space-y-1",children:[(0,A.jsx)("label",{htmlFor:"plugin-search-registry",className:"block text-sm",children:b("searchRegistryUrl")}),(0,A.jsx)(bU.p,{id:"plugin-search-registry",type:"url",value:a.registry,onChange:b=>a.onRegistry(b.target.value),placeholder:"https://registry.example.com"})]}):null]}),a.error?(0,A.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center gap-2 text-sm text-destructive",children:[(0,A.jsx)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:a.error}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:a.onRetry,children:b("retry")})]}):null,a.items.length?(0,A.jsx)("div",{className:"@container/catalog divide-y rounded-lg border bg-card",children:a.items.map(e=>{let f=d.get(e.name),g=dv(`npm:${e.name}`),h=f?.description??e.description,i=!!(f?.operation&&"failed"!==f.operation.phase),j=a.requests.has(g)||i||a.preparing.has(e.name),k=f&&(f.operation?.action!=="add"||"failed"!==f.operation.phase),l=a.installErrors[e.name]??a.errors[g]??(f?.error?(0,ct.fD)(f.error.message,c):null);return(0,A.jsxs)("article",{"aria-label":e.name,className:"grid min-w-0 gap-x-4 gap-y-2 px-4 py-3 @xl/catalog:grid-cols-[minmax(0,1fr)_auto]",children:[(0,A.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)(U.$,{variant:"link",className:"h-auto min-h-8 min-w-0 max-w-full p-0 text-left text-sm font-semibold whitespace-normal no-underline hover:underline [overflow-wrap:anywhere]",onClick:()=>a.onDetail(e),children:e.name}),(0,A.jsxs)("span",{className:"text-xs text-muted-foreground",children:["v",k&&f.version?f.version:e.version]}),k&&f.updateAvailable?(0,A.jsx)("span",{className:"rounded-md bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success",children:f.availableVersion?b("newVersion",{version:f.availableVersion}):b("updateAvailable")}):null,(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b(`kind_${e.kind}`)}),e.publisher?(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:e.publisher}):null]}),(0,A.jsx)("p",{className:"line-clamp-2 text-sm text-muted-foreground [overflow-wrap:anywhere]",children:h?(0,ct.fD)(h,c):b("noPluginDescription")})]}),(0,A.jsx)("div",{className:"flex min-h-8 items-center self-start @xl/catalog:justify-end",children:j?(0,A.jsx)("span",{role:"status",className:"text-sm text-muted-foreground",children:i?b(`phase_${f?.operation?.phase}`):a.preparing.has(e.name)?b("loadingPackage"):b("submitting")}):k?(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)("span",{className:"text-sm text-muted-foreground",children:b("alreadyInstalled")}),f.updateAvailable?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.disabled,onClick:()=>a.onUpdate(f.source),children:b("update")}):null]}):(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.disabled,onClick:()=>a.onInstall(e),children:b("install")})}),l?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere] @xl/catalog:col-span-2",children:l}):null,f?.operation?.phase==="failed"&&f.operation.message?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere] @xl/catalog:col-span-2",children:f.operation.message}):null]},e.name)})}):null,a.loading?(0,A.jsx)("p",{role:"status",className:"py-4 text-sm text-muted-foreground",children:b("searching")}):a.error||!a.searched||a.items.length?null:(0,A.jsx)("p",{className:"py-8 text-center text-sm text-muted-foreground",children:b("noSearchResults")}),a.hasMore?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.loading,onClick:a.onMore,children:b("loadMore")}):null]})}let dV=(0,cP.F)("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",{variants:{orientation:{horizontal:"*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0",vertical:"flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0"}},defaultVariants:{orientation:"horizontal"}});function dW({className:a,orientation:b,...c}){return(0,A.jsx)("div",{role:"group","data-slot":"button-group","data-orientation":b,className:(0,W.cn)(dV({orientation:b}),a),...c})}var dX=c(59582),dY=c(19480),dZ=c(36331),d$=c(67645),d_=c(75367),d0=c(13010),d1=c(71663),d2=c(23759);let d3={abandonedHeadElementChild:{reason:"Unexpected metadata element after head",description:"Unexpected element after head. Expected the element before `</head>`",url:!1},abruptClosingOfEmptyComment:{reason:"Unexpected abruptly closed empty comment",description:"Unexpected `>` or `->`. Expected `--\x3e` to close comments"},abruptDoctypePublicIdentifier:{reason:"Unexpected abruptly closed public identifier",description:"Unexpected `>`. Expected a closing `\"` or `'` after the public identifier"},abruptDoctypeSystemIdentifier:{reason:"Unexpected abruptly closed system identifier",description:"Unexpected `>`. Expected a closing `\"` or `'` after the identifier identifier"},absenceOfDigitsInNumericCharacterReference:{reason:"Unexpected non-digit at start of numeric character reference",description:"Unexpected `%c`. Expected `[0-9]` for decimal references or `[0-9a-fA-F]` for hexadecimal references"},cdataInHtmlContent:{reason:"Unexpected CDATA section in HTML",description:"Unexpected `<![CDATA[` in HTML. Remove it, use a comment, or encode special characters instead"},characterReferenceOutsideUnicodeRange:{reason:"Unexpected too big numeric character reference",description:"Unexpectedly high character reference. Expected character references to be at most hexadecimal 10ffff (or decimal 1114111)"},closingOfElementWithOpenChildElements:{reason:"Unexpected closing tag with open child elements",description:"Unexpectedly closing tag. Expected other tags to be closed first",url:!1},controlCharacterInInputStream:{reason:"Unexpected control character",description:"Unexpected control character `%x`. Expected a non-control code point, 0x00, or ASCII whitespace"},controlCharacterReference:{reason:"Unexpected control character reference",description:"Unexpectedly control character in reference. Expected a non-control code point, 0x00, or ASCII whitespace"},disallowedContentInNoscriptInHead:{reason:"Disallowed content inside `<noscript>` in `<head>`",description:"Unexpected text character `%c`. Only use text in `<noscript>`s in `<body>`",url:!1},duplicateAttribute:{reason:"Unexpected duplicate attribute",description:"Unexpectedly double attribute. Expected attributes to occur only once"},endTagWithAttributes:{reason:"Unexpected attribute on closing tag",description:"Unexpected attribute. Expected `>` instead"},endTagWithTrailingSolidus:{reason:"Unexpected slash at end of closing tag",description:"Unexpected `%c-1`. Expected `>` instead"},endTagWithoutMatchingOpenElement:{reason:"Unexpected unopened end tag",description:"Unexpected end tag. Expected no end tag or another end tag",url:!1},eofBeforeTagName:{reason:"Unexpected end of file",description:"Unexpected end of file. Expected tag name instead"},eofInCdata:{reason:"Unexpected end of file in CDATA",description:"Unexpected end of file. Expected `]]>` to close the CDATA"},eofInComment:{reason:"Unexpected end of file in comment",description:"Unexpected end of file. Expected `--\x3e` to close the comment"},eofInDoctype:{reason:"Unexpected end of file in doctype",description:"Unexpected end of file. Expected a valid doctype (such as `<!doctype html>`)"},eofInElementThatCanContainOnlyText:{reason:"Unexpected end of file in element that can only contain text",description:"Unexpected end of file. Expected text or a closing tag",url:!1},eofInScriptHtmlCommentLikeText:{reason:"Unexpected end of file in comment inside script",description:"Unexpected end of file. Expected `--\x3e` to close the comment"},eofInTag:{reason:"Unexpected end of file in tag",description:"Unexpected end of file. Expected `>` to close the tag"},incorrectlyClosedComment:{reason:"Incorrectly closed comment",description:"Unexpected `%c-1`. Expected `--\x3e` to close the comment"},incorrectlyOpenedComment:{reason:"Incorrectly opened comment",description:"Unexpected `%c`. Expected `\x3c!--` to open the comment"},invalidCharacterSequenceAfterDoctypeName:{reason:"Invalid sequence after doctype name",description:"Unexpected sequence at `%c`. Expected `public` or `system`"},invalidFirstCharacterOfTagName:{reason:"Invalid first character in tag name",description:"Unexpected `%c`. Expected an ASCII letter instead"},misplacedDoctype:{reason:"Misplaced doctype",description:"Unexpected doctype. Expected doctype before head",url:!1},misplacedStartTagForHeadElement:{reason:"Misplaced `<head>` start tag",description:"Unexpected start tag `<head>`. Expected `<head>` directly after doctype",url:!1},missingAttributeValue:{reason:"Missing attribute value",description:"Unexpected `%c-1`. Expected an attribute value or no `%c-1` instead"},missingDoctype:{reason:"Missing doctype before other content",description:"Expected a `<!doctype html>` before anything else",url:!1},missingDoctypeName:{reason:"Missing doctype name",description:"Unexpected doctype end at `%c`. Expected `html` instead"},missingDoctypePublicIdentifier:{reason:"Missing public identifier in doctype",description:"Unexpected `%c`. Expected identifier for `public` instead"},missingDoctypeSystemIdentifier:{reason:"Missing system identifier in doctype",description:'Unexpected `%c`. Expected identifier for `system` instead (suggested: `"about:legacy-compat"`)'},missingEndTagName:{reason:"Missing name in end tag",description:"Unexpected `%c`. Expected an ASCII letter instead"},missingQuoteBeforeDoctypePublicIdentifier:{reason:"Missing quote before public identifier in doctype",description:"Unexpected `%c`. Expected `\"` or `'` instead"},missingQuoteBeforeDoctypeSystemIdentifier:{reason:"Missing quote before system identifier in doctype",description:"Unexpected `%c`. Expected `\"` or `'` instead"},missingSemicolonAfterCharacterReference:{reason:"Missing semicolon after character reference",description:"Unexpected `%c`. Expected `;` instead"},missingWhitespaceAfterDoctypePublicKeyword:{reason:"Missing whitespace after public identifier in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceAfterDoctypeSystemKeyword:{reason:"Missing whitespace after system identifier in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBeforeDoctypeName:{reason:"Missing whitespace before doctype name",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBetweenAttributes:{reason:"Missing whitespace between attributes",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:{reason:"Missing whitespace between public and system identifiers in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},nestedComment:{reason:"Unexpected nested comment",description:"Unexpected `\x3c!--`. Expected `--\x3e`"},nestedNoscriptInHead:{reason:"Unexpected nested `<noscript>` in `<head>`",description:"Unexpected `<noscript>`. Expected a closing tag or a meta element",url:!1},nonConformingDoctype:{reason:"Unexpected non-conforming doctype declaration",description:'Expected `<!doctype html>` or `<!doctype html system "about:legacy-compat">`',url:!1},nonVoidHtmlElementStartTagWithTrailingSolidus:{reason:"Unexpected trailing slash on start tag of non-void element",description:"Unexpected `/`. Expected `>` instead"},noncharacterCharacterReference:{reason:"Unexpected noncharacter code point referenced by character reference",description:"Unexpected code point. Do not use noncharacters in HTML"},noncharacterInInputStream:{reason:"Unexpected noncharacter character",description:"Unexpected code point `%x`. Do not use noncharacters in HTML"},nullCharacterReference:{reason:"Unexpected NULL character referenced by character reference",description:"Unexpected code point. Do not use NULL characters in HTML"},openElementsLeftAfterEof:{reason:"Unexpected end of file",description:"Unexpected end of file. Expected closing tag instead",url:!1},surrogateCharacterReference:{reason:"Unexpected surrogate character referenced by character reference",description:"Unexpected code point. Do not use lone surrogate characters in HTML"},surrogateInInputStream:{reason:"Unexpected surrogate character",description:"Unexpected code point `%x`. Do not use lone surrogate characters in HTML"},unexpectedCharacterAfterDoctypeSystemIdentifier:{reason:"Invalid character after system identifier in doctype",description:"Unexpected character at `%c`. Expected `>`"},unexpectedCharacterInAttributeName:{reason:"Unexpected character in attribute name",description:"Unexpected `%c`. Expected whitespace, `/`, `>`, `=`, or probably an ASCII letter"},unexpectedCharacterInUnquotedAttributeValue:{reason:"Unexpected character in unquoted attribute value",description:"Unexpected `%c`. Quote the attribute value to include it"},unexpectedEqualsSignBeforeAttributeName:{reason:"Unexpected equals sign before attribute name",description:"Unexpected `%c`. Add an attribute name before it"},unexpectedNullCharacter:{reason:"Unexpected NULL character",description:"Unexpected code point `%x`. Do not use NULL characters in HTML"},unexpectedQuestionMarkInsteadOfTagName:{reason:"Unexpected question mark instead of tag name",description:"Unexpected `%c`. Expected an ASCII letter instead"},unexpectedSolidusInTag:{reason:"Unexpected slash in tag",description:"Unexpected `%c-1`. Expected it followed by `>` or in a quoted attribute value"},unknownNamedCharacterReference:{reason:"Unexpected unknown named character reference",description:"Unexpected character reference. Expected known named character references"}},d4=/-[a-z]/g,d5=/%c(?:([-+])(\d+))?/g,d6=/%x/g,d7={2:!0,1:!1,0:null},d8={};function d9(a){return a.charAt(1).toUpperCase()}var ea=c(24536),eb=c(10261);let ec=function(a,b,c){let d=(0,eb.C)(c);if(!a||!a.type||!a.children)throw Error("Expected parent node");if("number"==typeof b){if(b<0||b===1/0)throw Error("Expected positive finite number as index")}else if((b=a.children.indexOf(b))<0)throw Error("Expected child node or index");for(;++b<a.children.length;)if(d(a.children[b],b,a))return a.children[b]},ed=function(a){if(null==a)return ef;if("string"==typeof a){var b;return b=a,ee(function(a){return a.tagName===b})}if("object"==typeof a){var c=a;let b=[],d=-1;for(;++d<c.length;)b[d]=ed(c[d]);return ee(function(...a){let c=-1;for(;++c<b.length;)if(b[c].apply(this,a))return!0;return!1})}if("function"==typeof a)return ee(a);throw Error("Expected function, string, or array as `test`")};function ee(a){return function(b,c,d){var e;return!!(null!==(e=b)&&"object"==typeof e&&"type"in e&&"tagName"in e&&a.call(this,b,"number"==typeof c?c:void 0,d||void 0))}}function ef(a){return!!(a&&"object"==typeof a&&"type"in a&&"element"===a.type&&"tagName"in a&&"string"==typeof a.tagName)}let eg=/\n/g,eh=/[\t ]+/g,ei=ed("br"),ej=ed(function(a){return"td"===a.tagName||"th"===a.tagName}),ek=ed("p"),el=ed("tr"),em=ed(["datalist","head","noembed","noframes","noscript","rp","script","style","template","title",function(a){return!!(a.properties||{}).hidden},function(a){return"dialog"===a.tagName&&!(a.properties||{}).open}]),en=ed(["address","article","aside","blockquote","body","caption","center","dd","dialog","dir","dl","dt","div","figure","figcaption","footer","form,","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","legend","li","listing","main","menu","nav","ol","p","plaintext","pre","section","ul","xmp"]);function eo(a,b){let c,d=String(a.value),e=[],f=[],g=0;for(;g<=d.length;){eg.lastIndex=g;let a=eg.exec(d),c=a&&"index"in a?a.index:d.length;e.push(function(a,b,c){let d,e=[],f=0;for(;f<a.length;){eh.lastIndex=f;let c=eh.exec(a);d=c?c.index:a.length,f||d||!c||b||e.push(""),f!==d&&e.push(a.slice(f,d)),f=c?d+c[0].length:d}return f===d||c||e.push(""),e.join(" ")}(d.slice(g,c).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/g,""),0!==g||b.breakBefore,c!==d.length||b.breakAfter)),g=c+1}let h=-1;for(;++h<e.length;)8203===e[h].charCodeAt(e[h].length-1)||h<e.length-1&&8203===e[h+1].charCodeAt(0)?(f.push(e[h]),c=void 0):e[h]?("number"==typeof c&&f.push(c),f.push(e[h]),c=0):(0===h||h===e.length-1)&&f.push(0);return f}function ep(a,b){if("element"===a.type){let c=a.properties||{};switch(a.tagName){case"listing":case"plaintext":case"xmp":return"pre";case"nobr":return"nowrap";case"pre":return c.wrap?"pre-wrap":"pre";case"td":case"th":return c.noWrap?"nowrap":b.whitespace;case"textarea":return"pre-wrap"}}return b.whitespace}var eq=c(15573),er=c(46379);let es={},et=[];function eu(a){let b=a||es;return function(a,c){(0,er.VG)(a,"element",function(a,d){let e,f=Array.isArray(a.properties.className)?a.properties.className:et,g=f.includes("language-math"),h=f.includes("math-display"),i=f.includes("math-inline"),j=h;if(!g&&!h&&!i)return;let k=d[d.length-1],l=a;if("code"===a.tagName&&g&&k&&"element"===k.type&&"pre"===k.tagName&&(l=k,k=d[d.length-2],j=!0),!k)return;let m=function(a,b){let c,d="children"in a?a.children:[],e=en(a),f=ep(a,{whitespace:(b||{}).whitespace||"normal",breakBefore:!1,breakAfter:!1}),g=[];("text"===a.type||"comment"===a.type)&&g.push(...eo(a,{whitespace:f,breakBefore:!0,breakAfter:!0}));let h=-1;for(;++h<d.length;)g.push(...function a(b,c,d){return"element"===b.type?function(b,c,d){let e,f,g=ep(b,d),h=b.children||[],i=-1,j=[];if(em(b))return j;for(ei(b)||el(b)&&ec(c,b,el)?f="\n":ek(b)?(e=2,f=2):en(b)&&(e=1,f=1);++i<h.length;)j=j.concat(a(h[i],b,{whitespace:g,breakBefore:i?void 0:e,breakAfter:i<h.length-1?ei(h[i+1]):f}));return ej(b)&&ec(c,b,ej)&&j.push(" "),e&&j.unshift(e),f&&j.push(f),j}(b,c,d):"text"===b.type?"normal"===d.whitespace?eo(b,d):[String(b.value)]:[]}(d[h],a,{whitespace:f,breakBefore:h?void 0:e,breakAfter:h<d.length-1?ei(d[h+1]):e}));let i=[];for(h=-1;++h<g.length;){let a=g[h];"number"==typeof a?void 0!==c&&a>c&&(c=a):a&&(void 0!==c&&c>-1&&i.push("\n".repeat(c)||" "),c=-1,i.push(a))}return i.join("")}(l,{whitespace:"pre"});try{e=eq.default.renderToString(m,{...b,displayMode:j,throwOnError:!0})}catch(g){let f=g.name.toLowerCase();c.message("Could not render math with KaTeX",{ancestors:[...d,a],cause:g,place:a.position,ruleId:f,source:"rehype-katex"});try{e=eq.default.renderToString(m,{...b,displayMode:j,strict:"ignore",throwOnError:!1})}catch{e=[{type:"element",tagName:"span",properties:{className:["katex-error"],style:"color:"+(b.errorColor||"#cc0000"),title:String(g)},children:[{type:"text",value:m}]}]}}if("string"==typeof e){var n,o;let a,b,c,d,f,g;e=(n={fragment:!0},o=e,b=(a=n||d8).onerror,c=o instanceof d1.T?o:new d1.T(o),f=(a.fragment?d0.oH:d0.qg)(d=String(c),{sourceCodeLocationInfo:!0,onParseError:a.onerror?function(e){let f=e.code,g=f.replace(d4,d9),h=a[g],i=null==h||h,j="number"==typeof i?i:+!!i;if(j){let a=d3[g];(0,d$.ok)(a,"expected known error from `parse5`");let d=new d2.o(k(a.reason),{place:{start:{line:e.startLine,column:e.startCol,offset:e.startOffset},end:{line:e.endLine,column:e.endCol,offset:e.endOffset}},ruleId:f,source:"hast-util-from-html"});c.path&&(d.file=c.path,d.name=c.path+":"+d.name),d.fatal=d7[j],d.note=k(a.description),d.url=!1===a.url?void 0:"https://html.spec.whatwg.org/multipage/parsing.html#parse-error-"+f,(0,d$.ok)(b,"`internalOnerror` is not passed if `onerror` is not set"),b(d)}function k(a){return a.replace(d5,function(a,b,c){var f;let g=(c?Number.parseInt(c,10):0)*("-"===b?-1:1);return"`"===(f=d.charAt(e.startOffset+g))?"` ` `":f}).replace(d6,function(){return"0x"+d.charCodeAt(e.startOffset).toString(16).toUpperCase()})}}:null,scriptingEnabled:!1}),g=(0,d_.D)(f,{file:c,space:a.space,verbose:a.verbose}),(0,ea.YR)(g,function(a){delete a.position}),delete g.data,g).children}let p=k.children.indexOf(l);return k.children.splice(p,1,...e),er._Z})}}var ev=c(93310),ew=c(82245),ex=c(65510);let ey={tokenize:function(a,b,c){let d=this,e=d.events[d.events.length-1],f=e&&"linePrefix"===e[1].type?e[2].sliceSerialize(e[1],!0).length:0,g=0;return function(b){return a.enter("mathFlow"),a.enter("mathFlowFence"),a.enter("mathFlowFenceSequence"),function b(d){return 36===d?(a.consume(d),g++,b):g<2?c(d):(a.exit("mathFlowFenceSequence"),(0,ew.N)(a,h,"whitespace")(d))}(b)};function h(b){return null===b||(0,ex.HP)(b)?i(b):(a.enter("mathFlowFenceMeta"),a.enter("chunkString",{contentType:"string"}),function b(d){return null===d||(0,ex.HP)(d)?(a.exit("chunkString"),a.exit("mathFlowFenceMeta"),i(d)):36===d?c(d):(a.consume(d),b)}(b))}function i(c){return(a.exit("mathFlowFence"),d.interrupt)?b(c):a.attempt(ez,j,m)(c)}function j(b){return a.attempt({tokenize:n,partial:!0},m,k)(b)}function k(b){return(f?(0,ew.N)(a,l,"linePrefix",f+1):l)(b)}function l(b){return null===b?m(b):(0,ex.HP)(b)?a.attempt(ez,j,m)(b):(a.enter("mathFlowValue"),function b(c){return null===c||(0,ex.HP)(c)?(a.exit("mathFlowValue"),l(c)):(a.consume(c),b)}(b))}function m(c){return a.exit("mathFlow"),b(c)}function n(a,b,c){let e=0;return(0,ew.N)(a,function(b){return a.enter("mathFlowFence"),a.enter("mathFlowFenceSequence"),function b(d){return 36===d?(e++,a.consume(d),b):e<g?c(d):(a.exit("mathFlowFenceSequence"),(0,ew.N)(a,f,"whitespace")(d))}(b)},"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4);function f(d){return null===d||(0,ex.HP)(d)?(a.exit("mathFlowFence"),b(d)):c(d)}}},concrete:!0,name:"mathFlow"},ez={tokenize:function(a,b,c){let d=this;return function(c){return null===c?b(c):(a.enter("lineEnding"),a.consume(c),a.exit("lineEnding"),e)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}},partial:!0};function eA(a){let b,c,d=a.length-4,e=3;if(("lineEnding"===a[3][1].type||"space"===a[e][1].type)&&("lineEnding"===a[d][1].type||"space"===a[d][1].type)){for(b=e;++b<d;)if("mathTextData"===a[b][1].type){a[d][1].type="mathTextPadding",a[e][1].type="mathTextPadding",e+=2,d-=2;break}}for(b=e-1,d++;++b<=d;)void 0===c?b!==d&&"lineEnding"!==a[b][1].type&&(c=b):(b===d||"lineEnding"===a[b][1].type)&&(a[c][1].type="mathTextData",b!==c+2&&(a[c][1].end=a[b-1][1].end,a.splice(c+2,b-c-2),d-=b-c-2,b=c+2),c=void 0);return a}function eB(a){return 36!==a||"characterEscape"===this.events[this.events.length-1][1].type}let eC={};function eD(a){let b,c=a||eC,d=this.data(),e=d.micromarkExtensions||(d.micromarkExtensions=[]),f=d.fromMarkdownExtensions||(d.fromMarkdownExtensions=[]),g=d.toMarkdownExtensions||(d.toMarkdownExtensions=[]);e.push({flow:{36:ey},text:{36:(null==(b=(c||{}).singleDollarTextMath)&&(b=!0),{tokenize:function(a,c,d){let e,f,g=0;return function(c){return a.enter("mathText"),a.enter("mathTextSequence"),function c(e){return 36===e?(a.consume(e),g++,c):g<2&&!b?d(e):(a.exit("mathTextSequence"),h(e))}(c)};function h(b){return null===b?d(b):36===b?(f=a.enter("mathTextSequence"),e=0,function b(d){return 36===d?(a.consume(d),e++,b):e===g?(a.exit("mathTextSequence"),a.exit("mathText"),c(d)):(f.type="mathTextData",i(d))}(b)):32===b?(a.enter("space"),a.consume(b),a.exit("space"),h):(0,ex.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),h):(a.enter("mathTextData"),i(b))}function i(b){return null===b||32===b||36===b||(0,ex.HP)(b)?(a.exit("mathTextData"),h(b)):(a.consume(b),i)}},resolve:eA,previous:eB,name:"mathText"})}}),f.push(function(){return{enter:{mathFlow:function(a){this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[{type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]}]}},a)},mathFlowFenceMeta:function(){this.buffer()},mathText:function(a){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},a),this.buffer()}},exit:{mathFlow:function(a){let b=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),c=this.stack[this.stack.length-1];(0,d$.ok)("math"===c.type),this.exit(a),c.value=b;let d=c.data.hChildren[0];(0,d$.ok)("element"===d.type),(0,d$.ok)("code"===d.tagName),d.children.push({type:"text",value:b}),this.data.mathFlowInside=void 0},mathFlowFence:function(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)},mathFlowFenceMeta:function(){let a=this.resume(),b=this.stack[this.stack.length-1];(0,d$.ok)("math"===b.type),b.meta=a},mathFlowValue:a,mathText:function(a){let b=this.resume(),c=this.stack[this.stack.length-1];(0,d$.ok)("inlineMath"===c.type),this.exit(a),c.value=b,c.data.hChildren.push({type:"text",value:b})},mathTextData:a}};function a(a){this.config.enter.data.call(this,a),this.config.exit.data.call(this,a)}}()),g.push(function(a){let b=(a||{}).singleDollarTextMath;return null==b&&(b=!0),c.peek=function(){return"$"},{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:"\n",inConstruct:"mathFlowMeta"},{character:"$",after:b?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:function(a,b,c,d){let e=a.value||"",f=c.createTracker(d),g="$".repeat(Math.max((0,ev.D)(e,"$")+1,2)),h=c.enter("mathFlow"),i=f.move(g);if(a.meta){let b=c.enter("mathFlowMeta");i+=f.move(c.safe(a.meta,{after:"\n",before:i,encode:["$"],...f.current()})),b()}return i+=f.move("\n"),e&&(i+=f.move(e+"\n")),i+=f.move(g),h(),i},inlineMath:c}};function c(a,c,d){let e=a.value||"",f=1;for(!b&&f++;RegExp("(^|[^$])"+"\\$".repeat(f)+"([^$]|$)").test(e);)f++;let g="$".repeat(f);/[^ \r\n]/.test(e)&&(/^[ \r\n]/.test(e)&&/[ \r\n]$/.test(e)||/^\$|\$$/.test(e))&&(e=" "+e+" ");let h=-1;for(;++h<d.unsafe.length;){let a,b=d.unsafe[h];if(!b.atBreak)continue;let c=d.compilePattern(b);for(;a=c.exec(e);){let b=a.index;10===e.codePointAt(b)&&13===e.codePointAt(b-1)&&b--,e=e.slice(0,b)+" "+e.slice(a.index+1)}}return g+e+g}}(c))}var eE=function(a={}){var b,c;return{name:"katex",type:"math",remarkPlugin:[eD,{singleDollarTextMath:null!=(b=a.singleDollarTextMath)&&b}],rehypePlugin:[eu,{errorColor:null!=(c=a.errorColor)?c:"var(--color-muted-foreground)"}],getStyles:()=>"katex/dist/katex.min.css"}}(),eF=c(15407),eG=c(26775),eH=c(88131);c(38863),c(35705),c(92471),c(52600),c(25668),c(67961);var eI=c(52072),eJ=c(18767),eK=c(4629),eL=c(44272),eM=c(36122),eN=c(3117),eO=c(31519),eP="comm",eQ="rule",eR="decl",eS="@keyframes",eT="@layer",eU=Math.abs,eV=String.fromCharCode;function eW(a,b,c){return a.replace(b,c)}function eX(a,b){return 0|a.charCodeAt(b)}function eY(a,b,c){return a.slice(b,c)}function eZ(a){return a.length}function e$(a,b){return b.push(a),a}function e_(a,b){for(var c="",d=0;d<a.length;d++)c+=b(a[d],d,a,b)||"";return c}function e0(a,b,c,d){switch(a.type){case eT:if(a.children.length)break;case"@import":case"@namespace":case eR:return a.return=a.return||a.value;case eP:return"";case eS:return a.return=a.value+"{"+e_(a.children,d)+"}";case eQ:if(!eZ(a.value=a.props.join(",")))return""}return eZ(c=e_(a.children,d))?a.return=a.value+"{"+c+"}":""}var e1=1,e2=1,e3=0,e4=0,e5=0,e6="";function e7(a,b,c,d,e,f,g,h){return{value:a,root:b,parent:c,type:d,props:e,children:f,line:e1,column:e2,length:g,return:"",siblings:h}}function e8(){return e5=e4<e3?eX(e6,e4++):0,e2++,10===e5&&(e2=1,e1++),e5}function e9(){return eX(e6,e4)}function fa(a){switch(a){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function fb(a){var b,c;return(b=e4-1,c=function a(b){for(;e8();)switch(e5){case b:return e4;case 34:case 39:34!==b&&39!==b&&a(e5);break;case 40:41===b&&a(b);break;case 92:e8()}return e4}(91===a?a+2:40===a?a+1:a),eY(e6,b,c)).trim()}function fc(a,b,c,d,e,f,g,h,i,j,k,l){for(var m=e-1,n=0===e?f:[""],o=n.length,p=0,q=0,r=0;p<d;++p)for(var s=0,t=eY(a,m+1,m=eU(q=g[p])),u=a;s<o;++s)(u=(q>0?n[s]+" "+t:eW(t,/&\f/g,n[s])).trim())&&(i[r++]=u);return e7(a,b,c,0===e?eQ:h,i,j,k,l)}function fd(a,b,c,d,e){return e7(a,b,c,eR,eY(a,0,d),eY(a,d+1,-1),d,e)}var fe=c(13308),ff=c(19929),fg=c(1640),fh=c(24415),fi=c(76482);function fj(a){if(null==a)return!0;if((0,fg.X)(a))return("function"==typeof a.splice||"string"==typeof a||!!(0,ff.P)(a)||!!(0,fi.i)(a)||!!(0,fh.N)(a))&&0===a.length;if("object"==typeof a||"function"==typeof a){let b;if(a instanceof Map||a instanceof Set)return 0===a.size;let c=Object.keys(a);return(b=a?.constructor,a===("function"==typeof b?b.prototype:Object.prototype))?0===c.filter(a=>"constructor"!==a).length:0===c.length}return!0}var fk={id:"c4",detector:(0,eM.K)(a=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(a),"detector"),loader:(0,eM.K)(async()=>{let{diagram:a}=await c.e(55397).then(c.bind(c,55397));return{id:"c4",diagram:a}},"loader")},fl="flowchart",fm=(0,eM.K)((a,b)=>b?.flowchart?.defaultRenderer!=="dagre-wrapper"&&b?.flowchart?.defaultRenderer!=="elk"&&/^\s*graph/.test(a),"detector"),fn=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(72169),c.e(24419)]).then(c.bind(c,24419));return{id:fl,diagram:a}},"loader"),fo={id:fl,detector:fm,loader:fn},fp="flowchart-v2",fq=(0,eM.K)((a,b)=>b?.flowchart?.defaultRenderer!=="dagre-d3"&&(b?.flowchart?.defaultRenderer==="elk"&&(b.layout="elk"),!!/^\s*graph/.test(a)&&b?.flowchart?.defaultRenderer==="dagre-wrapper"||/^\s*flowchart/.test(a)),"detector"),fr=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(72169),c.e(24419)]).then(c.bind(c,24419));return{id:fp,diagram:a}},"loader"),fs={id:fp,detector:fq,loader:fr},ft="swimlane",fu=(0,eM.K)(a=>/^\s*swimlane-beta\b/.test(a),"detector"),fv=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(72169),c.e(67336)]).then(c.bind(c,67336));return{id:ft,diagram:a}},"loader"),fw={id:ft,detector:fu,loader:fv},fx={id:"er",detector:(0,eM.K)(a=>/^\s*erDiagram/.test(a),"detector"),loader:(0,eM.K)(async()=>{let{diagram:a}=await c.e(71633).then(c.bind(c,71633));return{id:"er",diagram:a}},"loader")},fy="gitGraph",fz=(0,eM.K)(a=>/^\s*gitGraph/.test(a),"detector"),fA=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(43218)]).then(c.bind(c,43218));return{id:fy,diagram:a}},"loader"),fB={id:fy,detector:fz,loader:fA},fC="gantt",fD=(0,eM.K)(a=>/^\s*gantt/.test(a),"detector"),fE=(0,eM.K)(async()=>{let{diagram:a}=await c.e(68592).then(c.bind(c,68592));return{id:fC,diagram:a}},"loader"),fF={id:fC,detector:fD,loader:fE},fG="info",fH=(0,eM.K)(a=>/^\s*info/.test(a),"detector"),fI=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(51491)]).then(c.bind(c,51491));return{id:fG,diagram:a}},"loader"),fJ={id:fG,detector:fH,loader:fI},fK={id:"pie",detector:(0,eM.K)(a=>/^\s*pie/.test(a),"detector"),loader:(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(36778)]).then(c.bind(c,36778));return{id:"pie",diagram:a}},"loader")},fL="quadrantChart",fM=(0,eM.K)(a=>/^\s*quadrantChart/.test(a),"detector"),fN=(0,eM.K)(async()=>{let{diagram:a}=await c.e(37861).then(c.bind(c,37861));return{id:fL,diagram:a}},"loader"),fO={id:fL,detector:fM,loader:fN},fP="xychart",fQ=(0,eM.K)(a=>/^\s*xychart(-beta)?/.test(a),"detector"),fR=(0,eM.K)(async()=>{let{diagram:a}=await c.e(50825).then(c.bind(c,50825));return{id:fP,diagram:a}},"loader"),fS={id:fP,detector:fQ,loader:fR},fT="requirement",fU=(0,eM.K)(a=>/^\s*requirement(Diagram)?/.test(a),"detector"),fV=(0,eM.K)(async()=>{let{diagram:a}=await c.e(3392).then(c.bind(c,3392));return{id:fT,diagram:a}},"loader"),fW={id:fT,detector:fU,loader:fV},fX="sequence",fY=(0,eM.K)(a=>/^\s*sequenceDiagram/.test(a),"detector"),fZ=(0,eM.K)(async()=>{let{diagram:a}=await c.e(20129).then(c.bind(c,20129));return{id:fX,diagram:a}},"loader"),f$={id:fX,detector:fY,loader:fZ},f_="class",f0=(0,eM.K)((a,b)=>b?.class?.defaultRenderer!=="dagre-wrapper"&&/^\s*classDiagram/.test(a),"detector"),f1=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(25726),c.e(19010)]).then(c.bind(c,19010));return{id:f_,diagram:a}},"loader"),f2={id:f_,detector:f0,loader:f1},f3="classDiagram",f4=(0,eM.K)((a,b)=>!!/^\s*classDiagram/.test(a)&&b?.class?.defaultRenderer==="dagre-wrapper"||/^\s*classDiagram-v2/.test(a),"detector"),f5=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(25726),c.e(25279)]).then(c.bind(c,25279));return{id:f3,diagram:a}},"loader"),f6={id:f3,detector:f4,loader:f5},f7="state",f8=(0,eM.K)((a,b)=>b?.state?.defaultRenderer!=="dagre-wrapper"&&/^\s*stateDiagram/.test(a),"detector"),f9=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(21723),c.e(35807),c.e(88882),c.e(97395),c.e(67541)]).then(c.bind(c,67541));return{id:f7,diagram:a}},"loader"),ga={id:f7,detector:f8,loader:f9},gb="stateDiagram",gc=(0,eM.K)((a,b)=>!!(/^\s*stateDiagram-v2/.test(a)||/^\s*stateDiagram/.test(a)&&b?.state?.defaultRenderer==="dagre-wrapper"),"detector"),gd=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(97395),c.e(25601)]).then(c.bind(c,25601));return{id:gb,diagram:a}},"loader"),ge={id:gb,detector:gc,loader:gd},gf="journey",gg=(0,eM.K)(a=>/^\s*journey/.test(a),"detector"),gh=(0,eM.K)(async()=>{let{diagram:a}=await c.e(55083).then(c.bind(c,55083));return{id:gf,diagram:a}},"loader"),gi={id:gf,detector:gg,loader:gh},gj={draw:(0,eM.K)((a,b,c)=>{eL.R.debug("rendering svg for syntax error\n");let d=(0,eF.D)(b),e=d.append("g");d.attr("viewBox","0 0 2412 512"),(0,eK.a$)(d,100,512,!0),e.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),e.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),e.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),e.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),e.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),e.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),e.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),e.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${c}`)},"draw")},gk={db:{},renderer:gj,parser:{parse:(0,eM.K)(()=>{},"parse")}},gl="flowchart-elk",gm=(0,eM.K)((a,b={})=>!!(/^\s*flowchart-elk/.test(a)||/^\s*(flowchart|graph)/.test(a)&&b?.flowchart?.defaultRenderer==="elk")&&(b.layout="elk",!0),"detector"),gn=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(72169),c.e(24419)]).then(c.bind(c,24419));return{id:gl,diagram:a}},"loader"),go={id:gl,detector:gm,loader:gn},gp="timeline",gq=(0,eM.K)(a=>/^\s*timeline/.test(a),"detector"),gr=(0,eM.K)(async()=>{let{diagram:a}=await c.e(39751).then(c.bind(c,39751));return{id:gp,diagram:a}},"loader"),gs={id:gp,detector:gq,loader:gr},gt="mindmap",gu=(0,eM.K)(a=>/^\s*mindmap/.test(a),"detector"),gv=(0,eM.K)(async()=>{let{diagram:a}=await c.e(65729).then(c.bind(c,65729));return{id:gt,diagram:a}},"loader"),gw={id:gt,detector:gu,loader:gv},gx="kanban",gy=(0,eM.K)(a=>/^\s*kanban/.test(a),"detector"),gz=(0,eM.K)(async()=>{let{diagram:a}=await c.e(17683).then(c.bind(c,40064));return{id:gx,diagram:a}},"loader"),gA={id:gx,detector:gy,loader:gz},gB="sankey",gC=(0,eM.K)(a=>/^\s*sankey(-beta)?/.test(a),"detector"),gD=(0,eM.K)(async()=>{let{diagram:a}=await c.e(96686).then(c.bind(c,96686));return{id:gB,diagram:a}},"loader"),gE={id:gB,detector:gC,loader:gD},gF="packet",gG=(0,eM.K)(a=>/^\s*packet(-beta)?/.test(a),"detector"),gH=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(63309)]).then(c.bind(c,63309));return{id:gF,diagram:a}},"loader"),gI={id:gF,detector:gG,loader:gH},gJ="radar",gK=(0,eM.K)(a=>/^\s*radar-beta/.test(a),"detector"),gL=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(34410)]).then(c.bind(c,34410));return{id:gJ,diagram:a}},"loader"),gM={id:gJ,detector:gK,loader:gL},gN="block",gO=(0,eM.K)(a=>/^\s*block(-beta)?/.test(a),"detector"),gP=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(21723),c.e(80578)]).then(c.bind(c,80578));return{id:gN,diagram:a}},"loader"),gQ={id:gN,detector:gO,loader:gP},gR="treeView",gS=(0,eM.K)(a=>/^\s*treeView-beta/.test(a),"detector"),gT=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(59812)]).then(c.bind(c,59812));return{id:gR,diagram:a}},"loader"),gU={id:gR,detector:gS,loader:gT},gV="architecture",gW=(0,eM.K)(a=>/^\s*architecture/.test(a),"detector"),gX=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(41),c.e(39750)]).then(c.bind(c,39750));return{id:gV,diagram:a}},"loader"),gY={id:gV,detector:gW,loader:gX},gZ="eventmodeling",g$=(0,eM.K)(a=>/^\s*eventmodeling/.test(a),"detector"),g_=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(53056)]).then(c.bind(c,53056));return{id:gZ,diagram:a}},"loader"),g0={id:gZ,detector:g$,loader:g_},g1="ishikawa",g2=(0,eM.K)(a=>/^\s*ishikawa(-beta)?\b/i.test(a),"detector"),g3=(0,eM.K)(async()=>{let{diagram:a}=await c.e(39839).then(c.bind(c,39839));return{id:g1,diagram:a}},"loader"),g4={id:g1,detector:g2,loader:g3},g5="venn",g6=(0,eM.K)(a=>/^\s*venn-beta/.test(a),"detector"),g7=(0,eM.K)(async()=>{let{diagram:a}=await c.e(69149).then(c.bind(c,69149));return{id:g5,diagram:a}},"loader"),g8={id:g5,detector:g6,loader:g7},g9="treemap",ha=(0,eM.K)(a=>/^\s*treemap/.test(a),"detector"),hb=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(42818)]).then(c.bind(c,42818));return{id:g9,diagram:a}},"loader"),hc={id:g9,detector:ha,loader:hb},hd="wardley",he=(0,eM.K)(a=>/^\s*wardley-beta/i.test(a),"detector"),hf=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(81295)]).then(c.bind(c,81295));return{id:hd,diagram:a}},"loader"),hg={id:hd,detector:he,loader:hf},hh="cynefin",hi=(0,eM.K)(a=>/^\s*cynefin-beta(?:[\s:]|$)/.test(a),"detector"),hj=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(88329)]).then(c.bind(c,88329));return{id:hh,diagram:a}},"loader"),hk={id:hh,detector:hi,loader:hj},hl="railroad",hm=(0,eM.K)(a=>/^\s*railroad-beta/i.test(a),"detector"),hn=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(66066),c.e(53275)]).then(c.bind(c,53275));return{id:hl,diagram:a}},"loader"),ho={id:hl,detector:hm,loader:hn},hp="railroadEbnf",hq=(0,eM.K)(a=>/^\s*railroad-ebnf-beta/i.test(a),"detector"),hr=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(66066),c.e(96276)]).then(c.bind(c,96276));return{id:hp,diagram:a}},"loader"),hs={id:hp,detector:hq,loader:hr},ht="railroadAbnf",hu=(0,eM.K)(a=>/^\s*railroad-abnf-beta/i.test(a),"detector"),hv=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(66066),c.e(95492)]).then(c.bind(c,95492));return{id:ht,diagram:a}},"loader"),hw={id:ht,detector:hu,loader:hv},hx="railroadPeg",hy=(0,eM.K)(a=>/^\s*railroad-peg-beta/i.test(a),"detector"),hz=(0,eM.K)(async()=>{let{diagram:a}=await Promise.all([c.e(26667),c.e(66066),c.e(69648)]).then(c.bind(c,69648));return{id:hx,diagram:a}},"loader"),hA={id:hx,detector:hy,loader:hz},hB=!1,hC=(0,eM.K)(()=>{hB||(hB=!0,(0,eK.Js)("error",gk,a=>"error"===a.toLowerCase().trim()),(0,eK.Js)("---",{db:{clear:(0,eM.K)(()=>{},"clear")},styles:{},renderer:{draw:(0,eM.K)(()=>{},"draw")},parser:{parse:(0,eM.K)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,eM.K)(()=>null,"init")},a=>a.toLowerCase().trimStart().startsWith("---")),(0,eK.Xd)(go,gw,gY),(0,eK.Xd)(fk,gA,f6,f2,fx,fF,fJ,fK,fW,f$,fw,fs,fo,gs,fB,ge,ga,gi,fO,gE,gI,fS,gQ,g0,gU,gM,g4,hc,ho,hs,hw,hA,g8,hg,hk))},"addDiagrams"),hD=(0,eM.K)(async()=>{eL.R.debug("Loading registered diagrams");let a=(await Promise.allSettled(Object.entries(eK.mW).map(async([a,{detector:b,loader:c}])=>{if(c)try{(0,eK.Gs)(a)}catch{try{let{diagram:a,id:d}=await c();(0,eK.Js)(d,a,b)}catch(b){throw eL.R.error(`Failed to load external diagram with key ${a}. Removing from detectors.`),delete eK.mW[a],b}}}))).filter(a=>"rejected"===a.status);if(a.length>0){for(let b of(eL.R.error(`Failed to load ${a.length} external diagrams`),a))eL.R.error(b);throw Error(`Failed to load ${a.length} external diagrams`)}},"loadRegisteredDiagrams");function hE(a,b){a.attr("role","graphics-document document"),""!==b&&a.attr("aria-roledescription",b)}function hF(a,b,c,d){if(void 0!==a.insert){if(c){let b=`chart-desc-${d}`;a.attr("aria-describedby",b),a.insert("desc",":first-child").attr("id",b).text(c)}if(b){let c=`chart-title-${d}`;a.attr("aria-labelledby",c),a.insert("title",":first-child").attr("id",c).text(b)}}}(0,eM.K)(hE,"setA11yDiagramInfo"),(0,eM.K)(hF,"addSVGa11yTitleDescription");var hG=class a{constructor(a,b,c,d,e){this.type=a,this.text=b,this.db=c,this.parser=d,this.renderer=e}static{(0,eM.K)(this,"Diagram")}static async fromText(b,c={}){let d=(0,eK.zj)(),e=(0,eK.Ch)(b,d);b=(0,eJ.C4)(b)+"\n";try{(0,eK.Gs)(e)}catch{let a=(0,eK.J$)(e);if(!a)throw new eK.C0(`Diagram ${e} not found.`);let{id:b,diagram:c}=await a();(0,eK.Js)(b,c)}let{db:f,parser:g,renderer:h,init:i}=(0,eK.Gs)(e);return g.parser&&(g.parser.yy=f),f.clear?.(),i?.(d),c.title&&f.setDiagramTitle?.(c.title),await g.parse(b),new a(e,b,f,g,h)}async render(a,b){await this.renderer.draw(this.text,a,b,this)}getParser(){return this.parser}getType(){return this.type}},hH=[],hI=(0,eM.K)(()=>{hH.forEach(a=>{a()}),hH=[]},"attachFunctions"),hJ=(0,eM.K)(a=>a.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function hK(a){let b=a.match(eK.EJ);if(!b)return{text:a,metadata:{}};let c=b[1],d=c?b[2].split("\n").map(a=>a.startsWith(c)?a.slice(c.length):a).join("\n"):b[2],e=(0,eG.H)(d,{schema:eG.r})??{};e="object"!=typeof e||Array.isArray(e)?{}:e;let f={};return e.displayMode&&(f.displayMode=e.displayMode.toString()),e.title&&(f.title=e.title.toString()),e.config&&(f.config=e.config),{text:a.slice(b[0].length),metadata:f}}(0,eM.K)(hK,"extractFrontMatter");var hL=(0,eM.K)(a=>a.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(a,b,c)=>"<"+b+c.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),hM=(0,eM.K)(a=>{let{text:b,metadata:c}=hK(a),{displayMode:d,title:e,config:f={}}=c;return d&&(f.gantt||(f.gantt={}),f.gantt.displayMode=d),{title:e,config:f,text:b}},"processFrontmatter"),hN=(0,eM.K)(a=>{let b=eJ._K.detectInit(a)??{},c=eJ._K.detectDirective(a,"wrap");return Array.isArray(c)?b.wrap=c.some(({type:a})=>"wrap"===a):c?.type==="wrap"&&(b.wrap=!0),{text:(0,eJ.vU)(a),directive:b}},"processDirectives");function hO(a){let b=hM(hL(a)),c=hN(b.text),d=(0,eJ.$t)(b.config,c.directive);return{code:a=hJ(c.text),title:b.title,config:d}}function hP(a){return btoa(Array.from(new TextEncoder().encode(a),a=>String.fromCodePoint(a)).join(""))}(0,eM.K)(hO,"preprocessDiagram"),(0,eM.K)(hP,"toBase64");var hQ=["foreignobject"],hR=["dominant-baseline"];function hS(a){let b=hO(a);return(0,eK.cL)(),(0,eK.xA)(b.config??{}),b}async function hT(a,b){hC();try{let{code:b,config:c}=hS(a);return{diagramType:(await h3(b)).type,config:c}}catch(a){if(b?.suppressErrors)return!1;throw a}}(0,eM.K)(hS,"processAndSetConfigs"),(0,eM.K)(hT,"parse");var hU=(0,eM.K)((a,b,c=[])=>{let d=(0,eK.Df)(`{ ${c.join(" !important; ")} !important; }`);return`.${a} ${b} ${d}`},"cssImportantStyles"),hV=(0,eM.K)((a,b=new Map)=>{let c=new CSSStyleSheet;if(void 0!==a.fontFamily&&c.insertRule(`:root { --mermaid-font-family: ${a.fontFamily}}`,c.cssRules.length),void 0!==a.altFontFamily&&c.insertRule(`:root { --mermaid-alt-font-family: ${a.altFontFamily}}`,c.cssRules.length),b instanceof Map){let d=(0,eK.E)(a)?["> *","span"]:["rect","polygon","ellipse","circle","path"];b.forEach(a=>{fj(a.styles)||d.forEach(b=>{c.insertRule(hU(a.id,b,a.styles),c.cssRules.length)}),fj(a.textStyles)||c.insertRule(hU(a.id,"tspan",(a?.textStyles||[]).map(a=>a.replace("color","fill"))),c.cssRules.length)})}let d="";if(void 0!==a.themeCSS)if("function"==typeof c.replaceSync){let b=new CSSStyleSheet;b.replaceSync(a.themeCSS),d=(0,eK.KG)(b)+"\n"}else d+=`${a.themeCSS}
406
406
  `;return d+(0,eK.KG)(c)},"createCssStyles"),hW=(0,eM.K)((a,b)=>{var c,d,e,f,g;return e_((e=function a(b,c,d,e,f,g,h,i,j){for(var k,l,m,n,o=0,p=0,q=h,r=0,s=0,t=0,u=1,v=1,w=1,x=0,y=0,z="",A=f,B=g,C=e,D=z;v;)switch(t=y,y=e8()){case 40:108!=t&&58==eX(D,q-1)?(x++,D+="("):D+=fb(y);break;case 41:x--,D+=")";break;case 34:case 39:case 91:D+=fb(y);break;case 9:case 10:case 13:case 32:if(x>0){D+=eV(y);break}D+=function(a){for(;e5=e9();)if(e5<33)e8();else break;return fa(a)>2||fa(e5)>3?"":" "}(t);break;case 92:D+=function(a,b){for(var c;--b&&e8()&&!(e5<48)&&!(e5>102)&&(!(e5>57)||!(e5<65))&&(!(e5>70)||!(e5<97)););return c=e4+(b<6&&32==e9()&&32==e8()),eY(e6,a,c)}(e4-1,7);continue;case 47:switch(e9()){case 42:case 47:e$((k=function(a,b){for(;e8();)if(a+e5===57)break;else if(a+e5===84&&47===e9())break;return"/*"+eY(e6,b,e4-1)+"*"+eV(47===a?a:e8())}(e8(),e4),l=c,m=d,n=j,e7(k,l,m,eP,eV(e5),eY(k,2,-2),0,n)),j),(5==fa(t||1)||5==fa(e9()||1))&&eZ(D)&&" "!==eY(D,-1,void 0)&&(D+=" ");break;default:D+="/"}break;case 123*u:i[o++]=eZ(D)*w;case 125*u:case 59:case 0:if(x>0&&y){D+=eV(y);break}switch(y){case 0:case 125:v=0;case 59+p:-1==w&&(D=eW(D,/\f/g,"")),s>0&&(eZ(D)-q||0===u)&&e$(s>32?fd(D+";",e,d,q-1,j):fd(eW(D," ","")+";",e,d,q-2,j),j);break;case 59:D+=";";default:if(e$(C=fc(D,c,d,o,p,f,i,z,A=[],B=[],q,g),g),123===y)if(0===p)a(D,c,C,C,A,g,q,i,B);else{switch(r){case 99:if(110===eX(D,3))break;case 108:if(97===eX(D,2))break;default:p=0;case 100:case 109:case 115:}p?a(b,C,C,e&&e$(fc(b,C,C,0,0,f,i,z,f,A=[],q,B),B),f,B,q,i,e?A:B):a(D,C,C,C,[""],B,0,i,B)}}o=p=s=0,u=w=1,z=D="",q=h;break;case 58:q=1+eZ(D),s=t;default:if(u<1){if(123==y)--u;else if(125==y&&0==u++&&125==(e5=e4>0?eX(e6,--e4):0,e2--,10===e5&&(e2=1,e1--),e5))continue}switch(D+=eV(y),y*u){case 38:w=p>0?1:(D+="\f",-1);break;case 44:if(x>0)break;i[o++]=(eZ(D)-1)*w,w=1;break;case 64:45===e9()&&(D+=fb(e8())),r=e9(),p=q=eZ(z=D+=function(a){for(;!fa(e9());)e8();return eY(e6,a,e4)}(e4)),y++;break;case 45:45===t&&2==eZ(D)&&(u=0)}}return g}("",null,null,null,[""],(d=c=`${a}{${b}}`,e1=e2=1,e3=eZ(e6=d),e4=0,c=[]),0,[0],c),e6="",e),(g=(f=[(0,eM.K)(function(b,c,d,e){"rule"===b.type&&Array.isArray(b.props)?b.parent&&b.parent.type===eS||(b.props=b.props.map(c=>c===a&&Array.isArray(b.children)&&b.children.every(a=>"decl"===a.type&&new Set(["font-family","font-size","fill"]).has(a.props))||(c.startsWith(`${a} `)||c.startsWith(`${a}>`))&&!c.startsWith(`${a} ||`)?c:`${a} ${c}`)):b.type.startsWith("@")&&(["@media","@supports",eT,"@scope","@container","@starting-style",eS].includes(b.type)||(eL.R.warn(`Removing unsupported at-rule ${b.type} from CSS`),b.type=eP))},"addNamespace"),e0]).length,function(a,b,c,d){for(var e="",h=0;h<g;h++)e+=f[h](a,b,c,d)||"";return e}))},"compileCSS"),hX=(0,eM.K)((a,b,c,d)=>{let e=hV(a,c),f=(0,eK.tM)(b,e,{...a.themeVariables,theme:a.theme,look:a.look},d);return hW(d,f)},"createUserStyles"),hY=(0,eM.K)((a="",b,c)=>{let d=a;return c||b||(d=d.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),d=(d=(0,eJ.Sm)(d)).replace(/<br>/g,"<br/>")},"cleanUpSvgCode"),hZ=(0,eM.K)((a="",b)=>{let c=b?.viewBox?.baseVal?.height?b.viewBox.baseVal.height+"px":"100%",d=hP(`<body style="margin:0">${a}</body>`);return`<iframe style="width:100%;height:${c};border:0;margin:0;" src="data:text/html;charset=UTF-8;base64,${d}" sandbox="allow-top-navigation-by-user-activation allow-popups">
407
407
  The "iframe" tag is not supported by your browser.
408
- </iframe>`},"putIntoIFrame"),h$=(0,eM.K)((a,b,c,d,e)=>{let f=a.append("div");f.attr("id",c),d&&f.attr("style",d);let g=f.append("svg").attr("id",b).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return e&&g.attr("xmlns:xlink",e),g.append("g"),a},"appendDivSvgG");function h_(a,b){return a.append("iframe").attr("id",b).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,eM.K)(h_,"sandboxedIframe");var h0=(0,eM.K)((a,b,c,d)=>{a.getElementById(b)?.remove(),a.getElementById(c)?.remove(),a.getElementById(d)?.remove()},"removeExistingElements"),h1=(0,eM.K)(async function(a,b,c){let d,e;hC();let f=hS(b);b=f.code;let g=(0,eK.zj)();eL.R.debug(g),b.length>(g?.maxTextSize??5e4)&&(b="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let h=`#${a}`,i="i"+a,j="#"+i,k="d"+a,l="#"+k,m=(0,eM.K)(()=>{let a=o?j:l,b=(0,eO.Ltv)(a).node();b&&"remove"in b&&b.remove()},"removeTempElements"),n=(0,eO.Ltv)(document.body),o="sandbox"===g.securityLevel,p="loose"===g.securityLevel,q=g.fontFamily;if(void 0!==c){if(c&&(c.innerHTML=""),o){let a=h_((0,eO.Ltv)(c),i);(n=(0,eO.Ltv)(a.nodes()[0].contentDocument.body)).node().style.margin="0"}else n=(0,eO.Ltv)(c);h$(n,a,k,`font-family: ${q}`,"http://www.w3.org/1999/xlink")}else{if(h0(document,a,k,i),o){let a=h_((0,eO.Ltv)(document.body),i);(n=(0,eO.Ltv)(a.nodes()[0].contentDocument.body)).node().style.margin="0"}else n=(0,eO.Ltv)("body");h$(n,a,k)}try{d=await hG.fromText(b,{title:f.title})}catch(a){if(g.suppressErrorRendering)throw m(),a;d=await hG.fromText("error"),e=a}let r=n.select(l).node(),s=d.type,t=r.firstChild,u=t.firstChild,v=hX(g,s,d.renderer.getClasses?.(b,d),h),w=document.createElement("style");w.innerHTML=v,t.insertBefore(w,u);try{await d.renderer.draw(b,a,"11.16.1",d)}catch(c){throw g.suppressErrorRendering?m():gj.draw(b,a,"11.16.1"),c}h4(s,n.select(`${l} svg`),d.db.getAccTitle?.(),d.db.getAccDescription?.()),n.select(`[id="${a}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let x=n.select(l).node().innerHTML;if(eL.R.debug("config.arrowMarkerAbsolute",g.arrowMarkerAbsolute),x=hY(x,o,(0,eK._3)(g.arrowMarkerAbsolute)),o?x=hZ(x,n.select(l+" svg").node()):p||(x=fe.A.sanitize(x,{ADD_TAGS:hQ,ADD_ATTR:hR,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),hI(),e)throw e;return m(),{diagramType:s,svg:x,bindFunctions:d.db.bindFunctions}},"render");function h2(a={}){let b=(0,eK.hH)({},a);b?.fontFamily&&!b.themeVariables?.fontFamily&&(b.themeVariables||(b.themeVariables={}),b.themeVariables.fontFamily=b.fontFamily),(0,eK.wZ)(b),b?.theme&&b.theme in eK.H$?b.themeVariables=eK.H$[b.theme].getThemeVariables(b.themeVariables):b&&(b.themeVariables=eK.H$.default.getThemeVariables(b.themeVariables));let c="object"==typeof b?(0,eK.UU)(b):(0,eK.Q2)();(0,eL.H)(c.logLevel),hC()}(0,eM.K)(h2,"initialize");var h3=(0,eM.K)((a,b={})=>{let{code:c}=hO(a);return hG.fromText(c,b)},"getDiagramFromText");function h4(a,b,c,d){hE(b,a),hF(b,c,d,b.attr("id"))}(0,eM.K)(h4,"addA11yInfo");var h5=Object.freeze({render:h1,parse:hT,getDiagramFromText:h3,initialize:h2,getConfig:eK.zj,setConfig:eK.Nk,getSiteConfig:eK.Q2,updateSiteConfig:eK.B6,reset:(0,eM.K)(()=>{(0,eK.cL)()},"reset"),globalReset:(0,eM.K)(()=>{(0,eK.cL)(eK.sb)},"globalReset"),defaultConfig:eK.sb});(0,eL.H)((0,eK.zj)().logLevel),(0,eK.cL)((0,eK.zj)());var h6=(0,eM.K)((a,b,c)=>{eL.R.warn(a),(0,eJ.dq)(a)?(c&&c(a.str,a.hash),b.push({...a,message:a.str,error:a})):(c&&c(a),a instanceof Error&&b.push({str:a.message,message:a.message,hash:a.name,error:a}))},"handleError"),h7=(0,eM.K)(async function(a={querySelector:".mermaid"}){try{await h8(a)}catch(b){if((0,eJ.dq)(b)&&eL.R.error(b.str),il.parseError&&il.parseError(b),!a.suppressErrors)throw eL.R.error("Use the suppressErrors option to suppress these errors"),b}},"run"),h8=(0,eM.K)(async function({postRenderCallback:a,querySelector:b,nodes:c}={querySelector:".mermaid"}){let d,e,f=h5.getConfig();if(eL.R.debug(`${!a?"No ":""}Callback function found`),c)d=c;else if(b)d=document.querySelectorAll(b);else throw Error("Nodes and querySelector are both undefined");eL.R.debug(`Found ${d.length} diagrams`),f?.startOnLoad!==void 0&&(eL.R.debug("Start On Load: "+f?.startOnLoad),h5.updateSiteConfig({startOnLoad:f?.startOnLoad}));let g=new eJ._K.InitIDGenerator(f.deterministicIds,f.deterministicIDSeed),h=[];for(let b of Array.from(d)){if(eL.R.info("Rendering diagram: "+b.id),b.getAttribute("data-processed"))continue;b.setAttribute("data-processed","true");let c=`mermaid-${g.next()}`;e=b.innerHTML,e=(0,eN.T)(eJ._K.entityDecode(e)).trim().replace(/<br\s*\/?>/gi,"<br/>");let d=eJ._K.detectInit(e);d&&eL.R.debug("Detected early reinit: ",d);try{let{svg:d,bindFunctions:f}=await ij(c,e,b);b.innerHTML=d,a&&await a(c),f&&f(b)}catch(a){h6(a,h,il.parseError)}}if(h.length>0)throw h[0]},"runThrowsErrors"),h9=(0,eM.K)(function(a){h5.initialize(a)},"initialize"),ia=(0,eM.K)(async function(a,b,c){eL.R.warn("mermaid.init is deprecated. Please use run instead."),a&&h9(a);let d={postRenderCallback:c,querySelector:".mermaid"};"string"==typeof b?d.querySelector=b:b&&(b instanceof HTMLElement?d.nodes=[b]:d.nodes=b),await h7(d)},"init"),ib=(0,eM.K)(async(a,{lazyLoad:b=!0}={})=>{hC(),(0,eK.Xd)(...a),!1===b&&await hD()},"registerExternalDiagrams"),ic=(0,eM.K)(function(){if(il.startOnLoad){let{startOnLoad:a}=h5.getConfig();a&&il.run().catch(a=>eL.R.error("Mermaid failed to initialize",a))}},"contentLoaded");"u">typeof document&&window.addEventListener("load",ic,!1);var id=(0,eM.K)(function(a){il.parseError=a},"setParseErrorHandler"),ie=[],ig=!1,ih=(0,eM.K)(async()=>{if(!ig){for(ig=!0;ie.length>0;){let a=ie.shift();if(a)try{await a()}catch(a){eL.R.error("Error executing queue",a)}}ig=!1}},"executeQueue"),ii=(0,eM.K)(async(a,b)=>new Promise((c,d)=>{let e=(0,eM.K)(()=>new Promise((e,f)=>{h5.parse(a,b).then(a=>{e(a),c(a)},a=>{eL.R.error("Error parsing",a),il.parseError?.(a),f(a),d(a)})}),"performCall");ie.push(e),ih().catch(d)}),"parse"),ij=(0,eM.K)((a,b,c)=>new Promise((d,e)=>{let f=(0,eM.K)(()=>new Promise((f,g)=>{h5.render(a,b,c).then(a=>{f(a),d(a)},a=>{eL.R.error("Error parsing",a),il.parseError?.(a),g(a),e(a)})}),"performCall");ie.push(f),ih().catch(e)}),"render"),ik=(0,eM.K)(()=>Object.keys(eK.mW).map(a=>({id:a})),"getRegisteredDiagramsMetadata"),il={startOnLoad:!0,mermaidAPI:h5,parse:ii,render:ij,init:ia,run:h7,registerExternalDiagrams:ib,registerLayoutLoaders:eH.sO,initialize:h9,parseError:void 0,contentLoaded:ic,setParseErrorHandler:id,detectType:eK.Ch,registerIconPacks:eI.pC,getRegisteredDiagramsMetadata:ik},im={startOnLoad:!1,theme:"default",securityLevel:"strict",fontFamily:"monospace",suppressErrorRendering:!0},io=function(a={}){let b=!1,c={...im,...a.config},d={initialize(d){c={...im,...a.config,...d},il.initialize(c),b=!0},render:async(a,d)=>(b||(il.initialize(c),b=!0),await il.render(a,d))};return{name:"mermaid",type:"diagram",language:"mermaid",getMermaid:a=>(a&&d.initialize(a),d)}}(),ip=c(38684);let iq=({className:a,from:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("group flex w-full max-w-[95%] flex-col gap-2","user"===b?"is-user ml-auto justify-end":"is-assistant",a),...c}),ir=({children:a,className:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("flex w-fit min-w-0 max-w-full flex-col gap-2 overflow-hidden text-base leading-[1.8]","group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground","group-[.is-assistant]:text-foreground",b),...c,children:a}),is=({tooltip:a,children:b,label:c,variant:d="ghost",size:e="icon-sm",...f})=>{let g=(0,A.jsxs)(U.$,{size:e,type:"button",variant:d,...f,children:[b,(0,A.jsx)("span",{className:"sr-only",children:c||a})]});return a?(0,A.jsx)(dX.Bc,{children:(0,A.jsxs)(dX.m_,{children:[(0,A.jsx)(dX.k$,{render:g}),(0,A.jsx)(dX.ZI,{children:(0,A.jsx)("p",{children:a})})]})}):g},it={cjk:dY.h,code:dZ.a,math:eE,mermaid:io},iu=(0,B.memo)(({className:a,...b})=>(0,A.jsx)(ip.jH,{className:(0,W.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",a),plugins:it,...b}),(a,b)=>a.children===b.children&&b.isAnimating===a.isAnimating);iu.displayName="MessageResponse";let iv=({className:a,children:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("mt-4 flex w-full items-center justify-between gap-4",a),...c,children:b});function iw({readme:a}){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),[d,e]=(0,B.useState)(null),f=a&&"string"!=typeof a?a.translations:{},g=Object.keys(f).filter(a=>/^(zh(?:-|$)|en(?:-|$))/.test(a)),h=d&&void 0!==f[d]?d:null,i=a?h?f[h]:(0,ct.fD)(a,c):null;return(0,A.jsxs)("section",{className:"min-w-0 space-y-3","aria-label":b("readme"),children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:b("readme")}),g.length>0?(0,A.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("readmeLanguage")}),(0,A.jsxs)(bO.l6,{value:h??"",onValueChange:a=>e(a||null),children:[(0,A.jsx)(bO.bq,{"aria-label":b("readmeLanguage"),children:(0,A.jsx)(bO.yv,{children:h?h.startsWith("zh")?"中文":"English":b("defaultLanguage")})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[160]",children:[(0,A.jsx)(bO.eb,{value:"",children:b("defaultLanguage")}),g.map(a=>(0,A.jsx)(bO.eb,{value:a,children:a.startsWith("zh")?"中文":"English"},a))]})]})]}):null]}),i?(0,A.jsx)("div",{className:"min-w-0 overflow-x-auto text-base leading-relaxed [overflow-wrap:anywhere]",children:(0,A.jsx)(iu,{mode:"static",isAnimating:!1,skipHtml:!0,controls:!1,className:"min-w-0 [&_img]:max-w-full [&_pre]:overflow-x-auto",children:i})}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:b("noReadme")})]})}function ix({value:a,label:b,placeholder:c,disabled:d,onChange:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),g=[...c?[{value:"",label:c}]:[],{value:"latest",label:f("channelLatest")},{value:"dev",label:f("channelDev")},...a&&!["latest","dev"].includes(a)?[{value:a,label:a}]:[]];return(0,A.jsxs)(bO.l6,{value:a,items:g,onOpenChange:(a,b)=>{a&&d&&b.cancel()},onValueChange:a=>{null===a||d||e(a)},children:[(0,A.jsx)(bO.bq,{"aria-label":b,"aria-disabled":d,className:"max-w-full aria-disabled:opacity-50",children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:g.map(a=>(0,A.jsx)(bO.eb,{value:a.value,disabled:d,children:a.label},a.value))})]})}function iy(a){if(!a)return null;try{let b=new URL(a);return["https:","http:"].includes(b.protocol)?b.href:null}catch{return null}}function iz(a){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),d=a.detail,e=a.installed&&a.installedVersion===d.version,f=iy(d.homepage),g=iy(d.repository),h=[...new Set([d.version,...d.versions])];return(0,A.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[(0,A.jsxs)("span",{children:["v",d.version]}),(0,A.jsx)("span",{children:b(`kind_${d.kind}`)}),d.publisher?(0,A.jsx)("span",{className:"[overflow-wrap:anywhere]",children:d.publisher}):null]}),d.description?(0,A.jsx)("p",{className:"text-sm text-muted-foreground [overflow-wrap:anywhere]",children:(0,ct.fD)(d.description,c)}):null,!1===d.compatible?(0,A.jsxs)("p",{role:"alert",className:"text-sm text-destructive",children:[b("incompatible"),d.compatibilityNote?` \xb7 ${d.compatibilityNote}`:""]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[a.pending?(0,A.jsx)("span",{role:"status",className:"text-sm text-muted-foreground",children:a.operationMessage??b("submitting")}):e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("span",{className:"text-sm text-muted-foreground",children:b("alreadyInstalled")}),a.updateAvailable?(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled,onClick:a.onUpdate,children:b("update")}):null]}):(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled||!1===d.compatible,onClick:a.onInstall,children:b(a.installed?"installVersion":"install")}),f?(0,A.jsx)("a",{href:f,target:"_blank",rel:"noopener noreferrer",className:"text-sm underline underline-offset-4",children:b("homepage")}):null,g?(0,A.jsx)("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"text-sm underline underline-offset-4",children:b("repository")}):null]}),a.error?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere]",children:a.error}):null]}),(0,A.jsxs)(co.Nt,{className:"rounded-lg border",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between px-3 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[b("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"space-y-3 px-3 pb-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("installChannel")}),(0,A.jsx)(ix,{value:a.channel,label:b("installChannel"),placeholder:b("defaultChannel"),disabled:a.pending,onChange:a.onChannel}),(0,A.jsxs)(bO.l6,{value:d.version,items:h.map(a=>({value:a,label:a})),onOpenChange:(b,c)=>{b&&a.pending&&c.cancel()},onValueChange:b=>{b&&!a.pending&&a.onVersion(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("version"),"aria-disabled":a.pending,children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:h.map(b=>(0,A.jsx)(bO.eb,{value:b,disabled:a.pending,children:b},b))})]})]}),(0,A.jsx)(dI,{id:"plugin-detail-download",mode:a.downloadMode,registry:a.downloadRegistry,override:!0,saving:a.pending,onMode:a.onDownloadMode,onRegistry:a.onDownloadRegistry})]})})]}),(0,A.jsx)("div",{className:"border-t pt-4",children:(0,A.jsx)(iw,{readme:d.readme},`${d.name}@${d.version}`)})]})}var iA=c(13221);function iB(a){let{t:b}=(0,Q.Bd)("pluginManagement");return(0,A.jsxs)("section",{"aria-label":b("directInstall"),className:"min-w-0 space-y-3 rounded-lg border bg-card p-4",children:[(0,A.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:b("directInstall")}),(0,A.jsx)(U.$,{size:"sm",variant:"ghost",onClick:a.onClose,children:b("close")})]}),(0,A.jsx)("label",{htmlFor:"plugin-direct-source",className:"block text-sm font-medium",children:b("source")}),(0,A.jsx)(iA.T,{id:"plugin-direct-source",value:a.source,placeholder:b("batchSourcePlaceholder"),rows:2,disabled:a.pending,onChange:b=>a.onSource(b.target.value)}),a.isNpm||a.multiple?(0,A.jsxs)(co.Nt,{children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-8 items-center gap-2 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[b("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("installChannel")}),(0,A.jsx)(ix,{value:a.tag,label:b("installChannel"),placeholder:b("defaultChannel"),disabled:a.pending,onChange:a.onTag})]}),a.isNpm?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.loading,onClick:a.onRead,children:b(a.loading?"loadingPackage":"readPackage")}):null,a.detail?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{className:"min-w-0 font-medium [overflow-wrap:anywhere]",children:a.detail.name}),(0,A.jsxs)(bO.l6,{value:a.selectedVersion,onOpenChange:(b,c)=>{b&&(a.loading||a.pending)&&c.cancel()},items:[{value:"",label:b("automaticVersion")},...[...new Set([a.detail.version,...a.detail.versions])].map(a=>({value:a,label:a}))],onValueChange:b=>{null===b||a.loading||a.pending||a.onVersion(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("version"),"aria-disabled":a.loading||a.pending,className:"max-w-full",children:(0,A.jsx)(bO.yv,{})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[160]",children:[(0,A.jsx)(bO.eb,{value:"",disabled:a.loading||a.pending,children:b("automaticVersion")}),[...new Set([a.detail.version,...a.detail.versions])].map(b=>(0,A.jsx)(bO.eb,{value:b,disabled:a.loading||a.pending,children:b},b))]})]}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b("targetVersion",{version:a.detail.version})})]}):null,(0,A.jsx)(dI,{id:"plugin-direct-download",mode:a.override,registry:a.registry,override:!0,saving:a.pending,onMode:a.onMode,onRegistry:a.onRegistry})]})})]}):null,a.error?(0,A.jsx)("p",{role:"alert",className:"text-sm whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]",children:a.error}):null,a.operationMessage?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground [overflow-wrap:anywhere]",children:a.operationMessage}):null,(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled||a.loading||a.pending||!a.source.trim(),onClick:a.onInstall,children:b(a.pending?"installing":a.multiple?"batchInstall":"install")})]})}function iC({confirmation:a,onClose:b,onConfirm:c}){let{t:d}=(0,Q.Bd)("pluginManagement"),e=a?d(dw(a)):null,f=a?.kind==="del"||a?.kind==="batch"&&"del"===a.input.action,g=a?.kind==="add"||a?.kind==="batch"&&"add"===a.input.action;return(0,A.jsx)(b3.YV,{open:!!a,onOpenChange:a=>{a||b()},children:(0,A.jsxs)(b3.hA,{className:"z-[150] max-w-lg",backdropClassName:"z-[140]",children:[(0,A.jsxs)(b3.Hl,{className:"p-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:d("confirmAction",{action:e})}),(0,A.jsx)(b3.uX,{children:d(f?"removeDescription":g?"thirdPartyDescription":a?.kind==="reload"?"normal"===a.mode?"restartNormalDescription":"restartDescription":"confirmChange")})]}),(0,A.jsx)(b3._Y,{className:"min-h-0",children:(0,A.jsx)("div",{className:"min-w-0 p-4 pt-0",children:a?.kind==="batch"?(0,A.jsx)("ul",{className:"space-y-2 text-sm",children:("add"===a.input.action?a.input.items.map(a=>a.source):a.input.sources).map(a=>(0,A.jsx)("li",{className:"font-medium [overflow-wrap:anywhere]",children:a.startsWith("npm:")?dt(a)?.name??a:a},a))}):a?.kind==="add"?(0,A.jsxs)("dl",{className:"space-y-3 text-sm",children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("packageName")}),(0,A.jsx)("dd",{className:"mt-1 font-medium [overflow-wrap:anywhere]",children:a.package?.name??a.input.source})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("version")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.package?.version??dt(a.input.source)?.version??d("fromSource")})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("publisher")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.package?.publisher??d("unknownPublisher")})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("source")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.input.registry??a.package?.registry??a.input.source})]})]}):a&&"reload"!==a.kind?(0,A.jsx)("p",{className:"text-sm font-medium [overflow-wrap:anywhere]",children:a.source.startsWith("npm:")?dt(a.source)?.name??a.source:a.source}):null})}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:b,children:d("cancel")}),(0,A.jsx)(U.$,{size:"sm",variant:f?"destructive":"default",onClick:()=>{a&&c(a)},children:e})]})]})})}function iD({basicMode:a=!1,snapshot:b,biz:c,onSnapshot:d,onRestartScheduled:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),{locale:g}=(0,cu.i)(),[h,i]=(0,B.useState)("installed"),[j,k]=(0,B.useState)(""),[l,m]=(0,B.useState)("all"),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(()=>new Set),[r,s]=(0,B.useState)(""),[t,u]=(0,B.useState)(!1),v=function({basicMode:a=!1,biz:b,snapshot:c,onSnapshot:d,onRestartScheduled:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),g=(0,bF.t4)();(0,bF.So)();let[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(()=>new Set),l=(0,B.useRef)(new Set),[m,n]=(0,B.useState)(null),[o,p]=(0,B.useState)({}),[q,r]=(0,B.useState)(null),[s,t]=(0,B.useState)(null),[u,v]=(0,B.useState)(!1),[w,x]=(0,B.useState)(null),y=(0,B.useRef)(0),z=(0,B.useRef)(0),A=(0,B.useRef)(!0),C=(a,b)=>{b?l.current.add(a):l.current.delete(a),A.current&&k(new Set(l.current))},D=(a,b)=>{A.current&&p(c=>{let d={...c};return b?d[a]=b:delete d[a],d})},E=a=>{let b=dv(a);return l.current.has(b)||!!c?.plugins.some(a=>dv(a.source)===b&&a.operation&&"failed"!==a.operation.phase)},F=async(a=!1)=>{let c=++z.current,e=await b.list(a);A.current&&c===z.current&&d(e)},G=async a=>{let c="add"===a.action?a.items.map(a=>a.source):a.sources,e=c.filter(a=>!E(a));if(c.filter(E).forEach(a=>D(dv(a),f("sourceBusy"))),!e.length)return;let g=e.map(dv);g.forEach(a=>{C(a,!0),D(a,null)}),n(null);let h=[...e];try{let c=await b.list(),e=Date.now()+9e5;for(;h.length;){let g=c.plugins.filter(a=>a.operation&&"failed"!==a.operation.phase),i="tag"===a.action?32:Math.max(0,32-g.length);if(!i){if(g.some(a=>a.operation?.phase==="waiting")||Date.now()>=e){h.forEach(a=>D(dv(a),f("batchWaiting")));break}await new Promise(a=>setTimeout(a,750)),c=await b.list(),A.current&&(z.current+=1,d(c));continue}let j=h.slice(0,i),k="add"===a.action?{...a,items:a.items.filter(a=>j.includes(a.source))}:{...a,sources:j},l=await b.batch(k);c=l.snapshot,A.current&&(z.current+=1,d(c)),l.results.forEach(a=>D(dv(a.source),a.error)),j.forEach(a=>C(dv(a),!1)),h=h.slice(j.length)}}catch(b){let a=b instanceof Error?b.message:f("batchFailed");h.forEach(b=>D(dv(b),a))}finally{g.forEach(a=>C(a,!1))}},H=async a=>{if("batch"===a.kind)return void await G(a.input);if("reload"!==a.kind&&E("add"===a.kind?a.input.source:a.source))return;let c="reload"===a.kind?"reload":dv("add"===a.kind?a.input.source:a.source);if(!l.current.has(c)){C(c,!0),n(null),D(c,null);try{let c="add"===a.kind?await b.add(a.input):"update"===a.kind?await b.update(a.source):"del"===a.kind?await b.del(a.source):"enable"===a.kind||"disable"===a.kind?await b.setEnabled(a.source,"enable"===a.kind):await b.reload(a.mode);if(!A.current)return;z.current+=1,d(c),"reload"===a.kind?e():await F()}catch(b){D(c,b instanceof Error?b.message:f("actionFailed",{action:f(dw(a))}))}finally{C(c,!1)}}},I=(a,b)=>{let c={kind:"add",input:a,package:b};b?.official===!0?H(c):n(c)},J=async a=>{let c=a?.[0]?dv(a[0]):"apply";if(!l.current.has(c)){C(c,!0),D(c,null);try{let c=await b.apply(a);A.current&&(z.current+=1,d(c),await F())}catch(a){D(c,a instanceof Error?a.message:f("actionFailed",{action:f("reloadOne")}))}finally{C(c,!1)}}},K=async(a,b)=>{if(!l.current.has(a)){C(a,!0),D(a,null);try{await b()}catch(b){D(a,b instanceof Error?b.message:f("retryFailed"))}finally{C(a,!1)}}},L=async a=>{let c=++y.current;v(!0),x(null);try{let d=await b.get(a);A.current&&c===y.current&&t(d)}catch(a){A.current&&c===y.current&&x(a instanceof Error?a.message:f("detailFailed"))}finally{A.current&&c===y.current&&v(!1)}};return{loading:h,requests:j,confirmation:m,setConfirmation:n,errors:o,detailSource:q,detail:s,detailLoading:u,detailError:w,pluginHost:g,refresh:async(a,b)=>{if(l.current.has("check"))return;let d=a??c?.plugins.filter(a=>"package"===a.kind&&(!b||a.updateTag===b)).map(a=>a.source)??[],e=d.filter(E),g=d.filter(a=>!E(a));if(e.forEach(a=>D(dv(a),f("sourceBusy"))),!g.length)return;let h=g.map(dv);C("check",!0),h.forEach(a=>C(a,!0)),i(!0),D("list",null);try{if(a||e.length)for(let a=0;a<g.length&&(await F({checkUpdates:!0,sources:g.slice(a,a+32),...b?{tag:b}:{}}),A.current);a+=32);else await F({checkUpdates:!0,...b?{tag:b}:{}})}catch(a){D("list",a instanceof Error?a.message:f("updateCheckFailed"))}finally{C("check",!1),h.forEach(a=>C(a,!1)),A.current&&i(!1)}},executeBatch:G,execute:H,requestInstall:I,applyChanges:J,loadDetail:L,openDetail:a=>{r(a),t(null),L(a)},closeDetail:()=>{y.current+=1,r(null),t(null),x(null),v(!1)},handleControlAction:(a,b)=>{switch(b){case"reload":J([a.source]);break;case"update":H({kind:"update",source:a.source});break;case"remove":n({kind:"del",source:a.source});break;case"enable":case"disable":H({kind:b,source:a.source});break;case"retry-browser":a.pluginName&&K(`entry:${a.pluginName}`,()=>g.retryEntry(a.pluginName));break;case"retry":{let b=a.operation?.action;"apply"===b?J([a.source]):"add"===b?I({source:a.source}):b&&H({kind:b,source:a.source})}}},refreshEntries:()=>K("entries",()=>g.refreshEntries())}}({biz:c,snapshot:b,onSnapshot:d,onRestartScheduled:e,basicMode:a}),w=function(a){let{t:b}=(0,Q.Bd)("pluginManagement"),[c,d]=(0,B.useState)(""),[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)("all"),[i,j]=(0,B.useState)("public"),[k,l]=(0,B.useState)(""),[m,n]=(0,B.useState)([]),[o,p]=(0,B.useState)(!1),[q,r]=(0,B.useState)(1),[s,t]=(0,B.useState)(!1),[u,v]=(0,B.useState)(null),[w,x]=(0,B.useState)(!1),[y,z]=(0,B.useState)(null),[A,C]=(0,B.useState)(null),[D,E]=(0,B.useState)(!1),[F,G]=(0,B.useState)(null),[H,I]=(0,B.useState)(()=>new Set),[J,K]=(0,B.useState)({}),L=(0,B.useRef)(0),M=(0,B.useRef)(0),N=(0,B.useRef)(new Set),O=(0,B.useRef)(null),[P,R]=(0,B.useState)(!1),[S,T]=(0,B.useState)("default"),[U,V]=(0,B.useState)(""),W=(0,B.useRef)(!0),X=(0,B.useCallback)(async(c,d)=>{t(!0),v(null);try{let b=await a.searchCatalog(c);if(!W.current||d!==L.current)return;n(a=>{let d=1===c.page?b.items:[...a,...b.items],e=a=>a.official?0:"desk"===a.kind?1:"pi"===a.kind?2:3;return[...new Map(d.map(a=>[a.name,a])).values()].sort((a,b)=>e(a)-e(b))}),r(c.page),p(b.hasMore),x(!0)}catch(a){W.current&&d===L.current&&v(a instanceof Error?a.message:b("searchFailed"))}finally{W.current&&d===L.current&&t(!1)}},[a,b]),Y=async(c,d=c.version)=>{let e=++M.current;E(!0),G(null),K(a=>{let b={...a};return delete b[c.name],b});try{let b=await a.getCatalog({name:c.name,registry:c.registry,version:d});W.current&&e===M.current&&C(b)}catch(a){W.current&&e===M.current&&G(a instanceof Error?a.message:b("detailFailed"))}finally{W.current&&e===M.current&&E(!1)}};return{query:c,setQuery:d,composing:e,beginComposition:()=>{L.current+=1,O.current=null,t(!1),f(!0)},endComposition:()=>f(!1),kind:g,setKind:h,searchSource:i,setSearchSource:j,registry:k,setRegistry:l,items:m,loading:s,error:u,searched:w,hasMore:o,loadMore:()=>{O.current&&!s&&o&&X({...O.current,page:q+1},L.current)},retry:()=>{if(e||s)return;let a="custom"===i?dy.safeParse(k):null;if(a&&!a.success)return void v(b("invalidRegistry"));let d={query:c.trim(),kind:g,page:1,...a?.success?{registry:a.data}:{}};O.current=d,n([]),X(d,++L.current)},selection:y,detail:A,detailLoading:D,detailError:F,openDetail:a=>{z(a),C(null),T("default"),V(""),Y(a)},closeDetail:()=>{M.current+=1,z(null),C(null),E(!1),G(null)},loadDetail:Y,prepareInstall:async(c,d)=>{if(!N.current.has(c.name)){N.current.add(c.name),I(new Set(N.current)),K(a=>{let b={...a};return delete b[c.name],b});try{let e=await a.getCatalog({name:c.name,version:c.version,registry:c.registry});if(!W.current)return;if(!1===e.compatible)return void K(a=>({...a,[c.name]:b("installIncompatible")}));d(e)}catch(a){W.current&&K(d=>({...d,[c.name]:a instanceof Error?a.message:b("detailFailed")}))}finally{N.current.delete(c.name),W.current&&I(new Set(N.current))}}},preparing:H,installErrors:J,downloadMode:S,setDownloadMode:T,downloadRegistry:U,setDownloadRegistry:V,installDetail:a=>{if(!A||D)return;if(!1===A.compatible)return void K(a=>({...a,[A.name]:b("installIncompatible")}));let c="default"===S?null:dz.safeParse("custom"===S?{mode:S,registry:U}:{mode:S});c&&!c.success?K(a=>({...a,[A.name]:b("invalidRegistry")})):(K(a=>{let b={...a};return delete b[A.name],b}),a({source:`npm:${A.name}@${A.version}`,registry:A.registry,...c?.success?{downloadSource:c.data}:{}},A))}}}(c),x=function(a,b){let{t:c}=(0,Q.Bd)("pluginManagement"),[d,e]=(0,B.useState)(null),[f,g]=(0,B.useState)("auto"),[h,i]=(0,B.useState)(""),[j,k]=(0,B.useState)(!1),[l,m]=(0,B.useState)(!1),[n,o]=(0,B.useState)(null),p=(0,B.useRef)(!0),q=(0,B.useRef)(!1),r=(0,B.useRef)(0),s=(0,B.useRef)("load"),t=async()=>{let b=r.current;k(!0),o(null);try{let c=await a.getCatalogSettings();if(!p.current)return;b===r.current?(e(c),g(c.downloadSource.mode),"custom"===c.downloadSource.mode&&i(c.downloadSource.registry)):e(a=>a??c)}catch(a){s.current="load",p.current&&o(a instanceof Error?a.message:c("settingsFailed"))}finally{p.current&&k(!1)}},u=async(d=f)=>{if(q.current)return;let i=dz.safeParse("custom"===d?{mode:d,registry:h}:{mode:d});if(!i.success){s.current="save",o(c("invalidRegistry"));return}q.current=!0,m(!0),o(null);try{let c=await a.saveCatalogSettings(i.data);p.current&&(e(c),g(c.downloadSource.mode),b())}catch(a){s.current="save",p.current&&o(a instanceof Error?a.message:c("settingsFailed"))}finally{q.current=!1,p.current&&m(!1)}};return{settings:d,mode:f,registry:h,setRegistry:a=>{r.current+=1,i(a)},loading:j,saving:l,error:n,load:t,save:u,changeMode:a=>{r.current+=1,g(a),"custom"!==a&&u(a)},retry:()=>"save"===s.current?u():t()}}(c,()=>{a||v.refresh()}),y=function(a,b=[]){let{t:c}=(0,Q.Bd)("pluginManagement"),[d,e]=(0,B.useState)(!1),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)(""),[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(null),[r,s]=(0,B.useState)("default"),[t,u]=(0,B.useState)(""),v=(0,B.useRef)(0),w=(0,B.useRef)(!0),x=f.split(/\r?\n/).map(a=>a.trim()).filter(Boolean),y=1===x.length?dt(x[0]):null,z=()=>{v.current+=1,m(null),o(!1),q(null)},A=async d=>{let e;if(!y)return null;void 0!==d&&k(d||null);let f=b.find(a=>dt(a.source)?.name===y.name)?.updateTag,g=y.version??(h||f||"latest"),i=""===d?g:d??j??g;if("custom"===r){let a=dy.safeParse(t);if(!a.success)return q(c("invalidRegistry")),null;e=a.data}else"official"===r?e="https://registry.npmjs.org":"domestic"===r&&(e="https://registry.npmmirror.com");let l=++v.current;o(!0),m(null),q(null);try{let b=await a.getCatalog({...y,...i?{version:i}:{},...e?{registry:e}:{}});if(!w.current||l!==v.current)return null;return m(b),b}catch(a){return w.current&&l===v.current&&q(a instanceof Error?a.message:c("detailFailed")),null}finally{w.current&&l===v.current&&o(!1)}},C=async(a,b)=>{if(!x.length||n)return;q(null);let d="default"===r?null:dz.safeParse("custom"===r?{mode:r,registry:t}:{mode:r});if(d&&!d.success)return void q(c("invalidRegistry"));let e={...h?{tag:h}:{},...d?.success?{downloadSource:d.data}:{}};if(x.length>1){let a=x.map(dt);if(x.length>32||a.some(a=>!a))return void q(c(x.length>32?"batchLimit":"batchNpmOnly"));let d=new Map;return a.forEach(a=>{a&&d.set(a.name,{source:`npm:${a.name}${a.version?`@${a.version}`:""}`,...e})}),void b([...d.values()])}if(!y)return void a({source:x[0]});let f=l?Promise.resolve(l):A(j??void 0),g=v.current,i=await f;if(i&&w.current&&g===v.current){if(!1===i.compatible)return void q(c("installIncompatible"));a({source:`npm:${i.name}${j||y.version?`@${j??y.version}`:""}`,registry:i.registry,...e},i)}};return{open:d,setOpen:e,source:f,sources:x,tag:h,selectedVersion:j??"",setTag:a=>{z(),k(null),i(a)},changeSource:a=>{z(),k(null),g(a)},spec:y,detail:l,loading:n,error:p,override:r,setOverride:a=>{z(),s(a)},registry:t,setRegistry:a=>{z(),u(a)},loadDetail:A,install:C}}(c,b?.plugins),z=a||v.requests.has("reload"),C=new Map(v.pluginHost.getFailedEntries().map(a=>[a.pluginName,a.error.message])),D=v.pluginHost.getEntryListError(),E=b?.plugins.find(a=>a.source===v.detailSource),F=w.selection?b?.plugins.find(a=>a.source.startsWith("npm:")&&dt(a.source)?.name===w.selection?.name):void 0,G=w.selection?dv(`npm:${w.selection.name}`):"",H=dv(y.detail?`npm:${y.detail.name}`:y.spec?`npm:${y.spec.name}`:y.source.trim()),I=b?.plugins.find(a=>dv(a.source)===H),J=a=>{let c=b?.plugins.find(b=>dv(b.source)===dv(a));return v.requests.has(dv(a))||!!(c?.operation&&"failed"!==c.operation.phase)},K=J(`npm:${w.selection?.name??""}`),L=y.sources.some(J),M=y.sources.map(a=>{let c=dv(a),d=b?.plugins.find(a=>dv(a.source)===c),e=v.errors[c]??(d?.operation?.phase==="failed"?d.operation.message:null);return e?`${a}: ${e}`:null}).filter(Boolean).join("\n"),N=!!(v.detailSource||w.selection),O=(0,B.useRef)(null),P=(0,B.useRef)(null),R=()=>{P.current=document.activeElement instanceof HTMLElement?document.activeElement:null},S=a=>{let c=b?.plugins.find(b=>dt(b.source)?.name===a.name);return{...a,version:c?.updateTag??"latest"}},T=a=>b?.plugins.filter(b=>"extension"!==b.kind&&!0===b.updateAvailable&&!J(b.source)&&(!a||p.has(dv(b.source)))).map(a=>a.source)??[],V=a=>a?f(`phase_${a}`):null,W=()=>{i("installed"),y.setOpen(!0)};return(0,A.jsxs)("div",{className:"flex h-full min-h-0 min-w-0 flex-col",children:[(0,A.jsxs)("header",{className:"shrink-0 space-y-3 border-b p-4 sm:px-6",children:[N?(0,A.jsxs)(U.$,{ref:O,size:"sm",variant:"ghost",className:"-ml-2",onClick:()=>{v.closeDetail(),w.closeDetail()},children:[(0,A.jsx)(Z.A,{}),f("backToList")]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("h2",{className:"min-w-0 text-xl font-semibold [overflow-wrap:anywhere]",children:N?E?du(E):w.selection?.name??f("details"):f("title")}),(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[N?null:(0,A.jsxs)(cm.AM,{children:[(0,A.jsxs)(cm.Wv,{render:(0,A.jsx)(U.$,{size:"sm",variant:"ghost"}),children:[f("downloadSource"),":",x.loading&&!x.settings?f("loading"):f(`download_${x.settings?.downloadSource.mode??x.mode}`),(0,A.jsx)(cn.A,{className:"size-4"})]}),(0,A.jsx)(cm.hl,{align:"end",positionerClassName:"z-[150]",className:"w-80 max-w-[calc(100vw-2rem)]",children:(0,A.jsx)(dI,{id:"plugin-default-download",mode:x.mode,registry:x.registry,savedRegistry:x.settings?.downloadSource.mode==="custom"?x.settings.downloadSource.registry:void 0,recommendedRegistry:x.settings?.recommendedRegistry,loading:x.loading,saving:x.saving,error:x.error,onMode:a=>{"default"!==a&&x.changeMode(a)},onRegistry:x.setRegistry,onSave:()=>void x.save(),onRetry:()=>void x.retry()})})]}),a||b?.restartRequired?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:v.requests.has("reload"),onClick:()=>v.setConfirmation({kind:"reload",mode:a?"normal":void 0}),children:f(a?"restartNormal":"restartApply")}):null]})]}),a?(0,A.jsx)("p",{role:"status",className:"rounded-lg bg-muted p-3 text-sm",children:f("basicModeNotice")}):null,b?.restartRequired?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:f("pendingRestart")}):null,b?.loadError||D?(0,A.jsxs)("div",{role:"alert",className:"max-h-32 space-y-1 overflow-y-auto text-sm text-destructive",children:[b?.loadError?(0,A.jsx)("p",{className:"[overflow-wrap:anywhere]",children:(0,ct.fD)(b.loadError,g)}):null,D?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("p",{className:"min-w-0 [overflow-wrap:anywhere]",children:D}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:v.requests.has("entries"),onClick:()=>void v.refreshEntries(),children:f("retry")})]}):null]}):null,v.errors.reload||v.errors.entries?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere]",children:v.errors.reload??v.errors.entries}):null]}),(0,A.jsxs)(cQ,{value:h,onValueChange:a=>i(String(a)),className:`min-h-0 flex-1 gap-0 ${N?"hidden":""}`,children:[(0,A.jsx)("div",{className:"shrink-0 border-b px-4 pt-2 sm:px-6",children:(0,A.jsxs)(cS,{variant:"line","aria-label":f("title"),className:"h-9",children:[(0,A.jsxs)(cT,{value:"installed",className:"px-3",children:[f("installedTab"),b?(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b.plugins.length}):null]}),(0,A.jsx)(cT,{value:"search",className:"px-3",children:f("searchPlugins")})]})}),(0,A.jsx)(cU,{value:"installed",keepMounted:!0,className:"flex min-h-0 flex-col overflow-hidden p-4 data-[hidden]:hidden sm:p-6",children:(0,A.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[y.open?(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar max-h-1/2 shrink-0 overflow-y-auto",children:(0,A.jsx)(iB,{source:y.source,isNpm:!!y.spec,multiple:y.sources.length>1,tag:y.tag,selectedVersion:y.selectedVersion,onTag:y.setTag,detail:y.detail,loading:y.loading,pending:L,disabled:z,error:y.error??(M||null),operationMessage:L?V(I?.operation?.phase)??f("submitting"):null,override:y.override,registry:y.registry,onSource:y.changeSource,onMode:y.setOverride,onRegistry:y.setRegistry,onRead:()=>void y.loadDetail(),onVersion:a=>void y.loadDetail(a),onInstall:()=>void y.install(v.requestInstall,a=>v.setConfirmation({kind:"batch",input:{action:"add",items:a}})),onClose:()=>y.setOpen(!1)})}):null,(0,A.jsx)(dT,{snapshot:b,loading:v.loading,filter:j,statusFilter:l,batchMode:n,selected:p,onStatusFilter:m,onBatchMode:a=>{o(a),a||q(new Set)},onSelect:(a,b)=>{q(c=>{let d=new Set(c);return a.forEach(a=>{b?d.add(a):d.delete(a)}),d})},onUpdateAll:()=>void v.executeBatch({action:"update",sources:T(!1)}),onUpdateSelected:()=>void v.executeBatch({action:"update",sources:T(!0)}),onRemoveSelected:()=>v.setConfirmation({kind:"batch",input:{action:"del",sources:b?.plugins.filter(a=>p.has(dv(a.source))&&!J(a.source)).map(a=>a.source)??[]}}),disabled:z,requests:v.requests,errors:v.errors,browserErrors:C,onFilter:k,onDetail:a=>{R(),w.closeDetail(),v.openDetail(a)},onAction:v.handleControlAction,onRefresh:()=>void v.refresh()}),b?.plugins.length||y.open?null:(0,A.jsx)(U.$,{size:"sm",variant:"outline",className:"shrink-0 self-start",disabled:z,onClick:W,children:f("directInstall")})]})}),(0,A.jsx)(cU,{value:"search",keepMounted:!0,className:"pi-desk-chat-scrollbar min-h-0 overflow-y-auto p-4 data-[hidden]:hidden sm:p-6",children:(0,A.jsx)(dU,{query:w.query,kind:w.kind,searchSource:w.searchSource,registry:w.registry,items:w.items,loading:w.loading,error:w.error,searched:w.searched,hasMore:w.hasMore,disabled:z,snapshot:b,requests:v.requests,preparing:w.preparing,errors:v.errors,installErrors:w.installErrors,onQuery:w.setQuery,onCompositionStart:w.beginComposition,onCompositionEnd:w.endComposition,onKind:w.setKind,onSearchSource:a=>{w.setSearchSource(a),"custom"!==a||w.registry||x.settings?.downloadSource.mode!=="custom"||w.setRegistry(x.settings.downloadSource.registry)},onRegistry:w.setRegistry,onDetail:a=>{R(),v.closeDetail(),s(""),u(!1),w.openDetail(S(a))},onInstall:a=>{w.prepareInstall(S(a),a=>v.requestInstall({source:`npm:${a.name}`,registry:a.registry},a))},onUpdate:a=>void v.execute({kind:"update",source:a}),onMore:w.loadMore,onRetry:w.retry,onDirectInstall:W})})]}),N?(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-4 sm:p-6",children:E?(0,A.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[E.version?(0,A.jsxs)("span",{children:["v",E.version]}):null,E.updateAvailable?(0,A.jsx)("span",{className:"rounded-md bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success",children:E.availableVersion?f("newVersion",{version:E.availableVersion}):f("updateAvailable")}):null]}),(0,A.jsx)(dr,{plugin:E,displayName:du(E),browserError:E.pluginName?C.get(E.pluginName)??null:null,disabled:z,pending:J(E.source),browserRetryPending:v.requests.has(`entry:${E.pluginName}`),onAction:a=>v.handleControlAction(E,a)})]}),E.description?(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:(0,ct.fD)(E.description,g)}):null,(0,A.jsx)(ds,{plugin:E,requestError:v.errors[dv(E.source)],browserError:E.pluginName?C.get(E.pluginName)??null:null})]}),(0,A.jsxs)(co.Nt,{className:"rounded-lg border",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between px-3 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[f("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-3 pb-3",children:[E.source.startsWith("npm:")?(0,A.jsx)(ix,{value:E.updateTag??"latest",label:f("installChannel"),disabled:z||J(E.source),onChange:a=>void v.executeBatch({action:"tag",sources:[E.source],tag:a})}):null,(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:z||J(E.source)&&E.operation?.phase!=="waiting",onClick:()=>v.handleControlAction(E,"reload"),children:f("reloadOne")})]})})]}),v.detailLoading?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:f("loadingPackage")}):null,v.detail?.readme?(0,A.jsx)(iw,{readme:v.detail.readme},E.source):null,(0,A.jsxs)(co.Nt,{className:"border-t pt-2",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[f("capabilityDetails"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsx)(da,{plugin:E,detail:v.detail,detailLoading:v.detailLoading,detailError:v.detailError,browserContributions:E.pluginName?v.pluginHost.getRegisteredBrowserDescriptors().find(a=>a.pluginName===E.pluginName)?.contributions??[]:[],onRetry:()=>void v.loadDetail(E.source)})})]}),v.detailError?(0,A.jsxs)("div",{role:"alert",className:"flex items-center gap-2 text-sm text-destructive",children:[(0,A.jsx)("span",{children:v.detailError}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:()=>void v.loadDetail(E.source),children:f("retry")})]}):null]}):w.selection?(0,A.jsxs)(A.Fragment,{children:[w.detailLoading?(0,A.jsx)("p",{role:"status",className:"mb-3 text-sm text-muted-foreground",children:f("loadingPackage")}):null,w.detailError?(0,A.jsxs)("div",{role:"alert",className:"mb-3 space-y-2 text-sm",children:[(0,A.jsx)("p",{className:"text-destructive [overflow-wrap:anywhere]",children:w.detailError}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:()=>void w.loadDetail(w.selection),children:f("retry")})]}):null,w.detail?(0,A.jsx)(iz,{detail:w.detail,disabled:z||!!w.detailError,pending:K||w.detailLoading,installed:!!(F&&(F.operation?.action!=="add"||"failed"!==F.operation.phase)),installedVersion:F?.version??null,updateAvailable:!!F?.updateAvailable,error:w.installErrors[w.detail.name]??v.errors[G]??(F?.operation?.phase==="failed"?F.operation.message:null),operationMessage:w.detailLoading?f("loadingPackage"):V(F?.operation?.phase),channel:r,onChannel:a=>{s(a),u(!1),w.loadDetail(w.selection,a||F?.updateTag||"latest")},downloadMode:w.downloadMode,downloadRegistry:w.downloadRegistry,onDownloadMode:w.setDownloadMode,onDownloadRegistry:w.setDownloadRegistry,onVersion:a=>{u(!0),w.loadDetail(w.selection,a)},onInstall:()=>w.installDetail((a,b)=>v.requestInstall({...a,source:t?a.source:`npm:${b.name}`,...r?{tag:r}:{}},b)),onUpdate:()=>{F&&v.execute({kind:"update",source:F.source})}}):null]}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:f("pluginRemoved")})}):null,(0,A.jsx)(iC,{confirmation:v.confirmation,onClose:()=>v.setConfirmation(null),onConfirm:a=>void v.execute(a)})]})}var iE=c(98945);let iF=E.Yj().trim().min(1).max(2048),iG=E.YO(iF).min(1).max(32),iH=E.Ik({phase:E.k5(["package","entry","setup","resources","resolve","native"]),message:ct.qf.refine(a=>"string"==typeof a?a.length>0:a.default.length>0)}).strict(),iI=E.Yj().trim().min(1).max(4096),iJ=E.Yj().trim().min(1).max(256),iK=E.Yj().max(32768),iL=E.Ik({name:iJ,label:iK,state:E.k5(["active","inactive","shadowed"]),description:iK,promptSnippet:iK.nullable(),promptGuidelineCount:E.ai().int().nonnegative(),promptGuidelinePreview:iK.nullable()}).strict(),iM=E.Ik({name:iJ,label:iK,state:E.k5(["active","inactive","shadowed"]),description:iK,parameters:iE.Dz,promptSnippet:iK.nullable(),promptGuidelines:E.YO(iK)}).strict(),iN=E.Ik({path:iI,events:E.YO(E.Ik({name:iJ,count:E.ai().int().positive()}).strict()),commands:E.YO(E.Ik({name:iJ,description:iK.nullable()}).strict()),shortcuts:E.YO(E.Ik({shortcut:iJ,description:iK.nullable()}).strict()),flags:E.YO(E.Ik({name:iJ,type:E.k5(["boolean","string"]),description:iK.nullable(),default:E.KC([E.zM(),E.Yj(),E.ch()])}).strict()),messageRenderers:E.YO(iJ),entryRenderers:E.YO(iJ)}).strict(),iO=E.Ik({name:iJ,description:iK,path:iI}).strict(),iP=iO.extend({modelVisible:E.zM()}).strict(),iQ=iO.extend({content:E.Yj().max(65536),truncated:E.zM()}).strict(),iR=iQ.extend({modelVisible:E.zM()}).strict(),iS=E.Ik({name:iJ,path:iI}).strict(),iT=E.Ik({name:iJ,kind:E.k5(["config","native"])}).strict(),iU=E.Ik({methods:E.YO(E.Ik({pluginName:iJ,method:iJ}).strict()),browserEntries:E.YO(E.Ik({pluginName:iJ}).strict()),messageDeclarations:E.YO(E.Ik({pluginName:iJ,declarationName:iJ,priority:E.ai().int().safe()}).strict())}).strict(),iV=E.Ik({error:ct.qf.refine(a=>"string"==typeof a?a.length<=32768:[a.default,...Object.values(a.translations)].every(a=>a.length<=32768)).nullable(),extensions:E.YO(iN),tools:E.YO(iL),skills:E.YO(iP),prompts:E.YO(iO),themes:E.YO(iS),providers:E.YO(iT),piDesk:iU}).strict(),iW=E.Ik({action:E.k5(["add","update","del","apply","enable","disable"]),phase:E.k5(["queued","checking","applying","waiting","failed"]),message:E.Yj().max(4e3).nullable()}).strict(),iX=(0,F._G)({path:"plugins/management-update",bodySchema:E.Ik({}).strict()}),iY=E.Ik({source:iF,kind:E.k5(["package","extension"]).default("package"),operation:iW.nullable().default(null),pluginName:E.Yj().trim().min(1).nullable(),description:ct.qf.nullable().default(null),version:E.Yj().trim().min(1).nullable(),updateAvailable:E.zM().nullable(),updateTag:dx.nullable().optional(),availableVersion:E.Yj().min(1).nullable().optional(),updateError:E.Yj().max(4e3).nullable().optional(),status:E.k5(["ready","available","disabled","failed"]),error:iH.nullable(),capabilities:iV}).strict(),iZ=E.Ik({source:iF,readme:ct.qf.nullable().default(null),tools:E.YO(iM),skills:E.YO(iR),prompts:E.YO(iQ)}).strict(),i$=E.Ik({plugins:E.YO(iY),restartRequired:E.zM(),loadError:ct.qf.refine(a=>"string"==typeof a?a.length>0:a.default.length>0).nullable()}).strict(),i_=E.Ik({sources:E.YO(iF).min(1).max(32).optional()}).strict(),i0=E.Ik({}).strict().extend({mode:E.k5(["normal","basic"]).optional()}).strict(),i1=E.Ik({checkUpdates:E.zM().optional(),sources:iG.optional(),tag:dx.optional()}).strict(),i2=E.Ik({source:iF}).strict(),i3=i2.extend({downloadSource:dz.optional(),registry:dy.optional(),tag:dx.optional()}).strict(),i4=E.gM("action",[E.Ik({action:E.eu("add"),items:E.YO(i3).min(1).max(32)}).strict(),E.Ik({action:E.eu("update"),sources:iG}).strict(),E.Ik({action:E.eu("del"),sources:iG}).strict(),E.Ik({action:E.eu("tag"),sources:iG,tag:dx}).strict()]),i5=E.Ik({snapshot:i$,results:E.YO(E.Ik({source:iF,error:E.Yj().max(4e3).nullable()}).strict()).max(32)}).strict(),i6=i2.extend({enabled:E.zM()}).strict();async function i7(a,b,c,d){return bT(a,b,c,d,{fallbackMessage:"插件管理请求失败"})}function i8({pluginName:a,descriptor:b,source:c,cwd:d,onPreviewFile:e,onRevealFile:f,onHeaderActionsChange:g}){let h=`${c.workId}\u0000${c.sessionId}\u0000${c.branchId}\u0000${d}`;return(0,A.jsx)(cq,{pluginName:a,kind:"session-sidebar-tab",contributionName:b.contributionName,target:{kind:"session-sidebar-tab",source:c,cwd:d,files:{preview:e,reveal:f},setHeaderActions:g},targetKey:h,layout:"fill"})}function i9({pluginName:a,descriptor:b,onClose:c,onBeforeLeaveChange:d}){let e=(0,bF.t4)();(0,bF.So)();let f=e.getEntryState(a);"ready"===f.status?f.runtime:f.status;let g=(0,B.useMemo)(()=>({kind:"settings-page",close:()=>{e.getEntryState(a)===f&&c()},setBeforeLeave:b=>{e.getEntryState(a)===f&&d(b)}}),[f,d,c,a,e]);return(0,A.jsx)(cq,{pluginName:a,kind:"settings-page",contributionName:b.contributionName,target:g,className:"pi-desk-chat-scrollbar h-full min-h-0 overflow-auto"})}function ja({source:a,placement:b}){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bF.So)(),e=(0,B.useMemo)(()=>({kind:"widget",source:a}),[a]),f=JSON.stringify([a.workId,a.sessionId,a.branchId]),g=d.flatMap(a=>a.contributions.flatMap(c=>"widget"===c.kind&&c.placement===b?[{pluginName:a.pluginName,descriptor:c}]:[]));return 0===g.length?null:(0,A.jsx)("div",{"data-testid":`plugin-widgets-${b}`,"aria-label":c("composer"),className:"min-w-0 w-full",children:g.map(({pluginName:a,descriptor:b})=>(0,A.jsx)(cq,{pluginName:a,kind:"widget",contributionName:b.contributionName,target:e,targetKey:f,layout:"inline"},`${a}:${b.contributionName}:${f}`))})}function jb({pluginName:a,contributionName:b,presentation:c,source:d,icon:e,label:f,onSelected:g}){let h=(0,bF.t4)();(0,bF.So)();let i=h.getEntryState(a),j=(0,bG.G)(),{t:k}=(0,Q.Bd)("workbench"),l=(0,B.useRef)(null),m=(0,B.useRef)(!1),[n,o]=(0,B.useState)(!1),p=async()=>{let e=l.current;if(!e||e.signal.aborted||m.current)return;let f=()=>!e.signal.aborted&&h.getEntryState(a)===i;m.current=!0,o(!0);try{await h.invokeSessionHeaderAction({pluginName:a,contributionName:b,presentation:c,source:d,signal:e.signal}),f()&&g?.()}catch(g){if(!f())return;let e=g instanceof Error?g.message:k("operationFailed");console.error("[Pi Desk][PluginHost] 会话标题操作失败",{pluginName:a,contributionName:b,presentation:c,source:d,message:e}),j.error(e)}finally{f()&&(m.current=!1,o(!1))}};return(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm","aria-label":f,"aria-busy":n,disabled:n,"data-testid":"plugin-session-header-action","data-plugin-name":a,"data-contribution-name":b,"data-presentation":c,className:(0,W.cn)("overflow"===c&&"w-full justify-start whitespace-normal text-left"),onClick:()=>void p(),children:[(0,A.jsx)(ck,{icon:e,className:"size-4"}),(0,A.jsx)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:f})]})}function jc(a){return`${a.pluginName}:${a.descriptor.contributionName}`}function jd({item:a,source:b,presentation:c,onSelected:d}){let e=a.descriptor[c],f=(0,B.useMemo)(()=>({kind:"session-header-item",source:b,presentation:c}),[c,b]),g=JSON.stringify([b.workId,b.sessionId,b.branchId,c]);return"action"===e.type?(0,A.jsx)(jb,{pluginName:a.pluginName,contributionName:a.descriptor.contributionName,presentation:c,source:b,icon:e.icon,label:e.label,onSelected:d}):(0,A.jsx)("div",{"data-testid":"plugin-session-header-custom","data-plugin-name":a.pluginName,"data-contribution-name":a.descriptor.contributionName,"data-presentation":c,className:"min-w-0 shrink-0",style:"inline"===c&&"custom"===a.descriptor.inline.type?{width:`${a.descriptor.inline.minWidthRem}rem`}:void 0,children:(0,A.jsx)(cq,{pluginName:a.pluginName,kind:"session-header-item",contributionName:a.descriptor.contributionName,target:f,targetKey:g,layout:"inline"})})}function je({source:a,title:b}){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bF.So)(),e=(0,B.useMemo)(()=>d.flatMap(a=>a.contributions.flatMap(b=>"session-header-item"===b.kind?[{pluginName:a.pluginName,descriptor:b}]:[])),[d]),f=(0,B.useRef)(null),g=(0,B.useRef)(null),[h,i]=(0,B.useState)(null),[j,k]=(0,B.useState)(!1),l=h?.items===e?h.count:0,m=e.slice(0,l),n=e.slice(l);return(0,A.jsxs)("div",{ref:f,className:"relative flex min-w-0 flex-1 items-center gap-1","data-testid":"plugin-session-header",children:[(0,A.jsx)("div",{className:"min-w-[3rem] flex-1",children:b}),e.length>0?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex shrink-0 items-center gap-1","data-testid":"session-header-items",children:[m.map(b=>(0,A.jsx)(jd,{item:b,source:a,presentation:"inline"},jc(b))),n.length>0?(0,A.jsxs)(cm.AM,{open:j,onOpenChange:k,children:[(0,A.jsx)(cm.Wv,{render:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":c("moreActions"),"data-testid":"session-header-more"}),children:(0,A.jsx)(an,{className:"size-4"})}),(0,A.jsxs)(cm.hl,{align:"end",finalFocus:!0,className:"pi-desk-chat-scrollbar max-h-[min(28rem,var(--available-height))] gap-1 overflow-auto p-1","data-testid":"session-header-overflow","aria-label":c("moreActions"),children:[(0,A.jsx)(cm.eO,{className:"sr-only",children:c("moreActions")}),j?n.map(b=>(0,A.jsx)(jd,{item:b,source:a,presentation:"overflow",onSelected:()=>k(!1)},jc(b))):null]})]}):null]}),(0,A.jsx)("div",{ref:g,"aria-hidden":"true",inert:!0,className:"pointer-events-none invisible absolute inset-0 overflow-hidden",children:(0,A.jsxs)("div",{className:"flex w-max items-center",children:[(0,A.jsx)("span",{"data-header-title-width":!0,className:"inline-block w-[3rem]"}),(0,A.jsx)("span",{"data-header-gap-width":!0,className:"inline-block w-1"}),(0,A.jsx)("span",{"data-header-more-width":!0,className:(0,U.r)({variant:"ghost",size:"icon-sm"}),children:(0,A.jsx)(an,{className:"size-4"})}),e.map(a=>"action"===a.descriptor.inline.type?(0,A.jsxs)("span",{"data-header-item-width":!0,className:(0,U.r)({variant:"ghost",size:"sm"}),children:[(0,A.jsx)(ck,{icon:a.descriptor.inline.icon,className:"size-4"}),(0,A.jsx)("span",{children:a.descriptor.inline.label})]},jc(a)):(0,A.jsx)("span",{"data-header-item-width":!0,className:"inline-block shrink-0",style:{width:`${a.descriptor.inline.minWidthRem}rem`}},jc(a)))]})})]}):null]})}let jf=(0,S.A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);var jg=c(91477);let jh=(0,S.A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var ji=c(9665),jj=c(60816);let jk="1.1.21".trim()||"未知",jl="2026-10-27T01:49:11+08:00".trim()||null;var jm=c(68578),jn=c(22207),jo=c(79918),jp=c(82709),jq=c(96478),jr=c(23423),js=c(51949);let jt=E.Yj().min(1).max(js.uV).refine(a=>!a.includes("\0")&&(a.startsWith("/")||a.startsWith("\\\\")||/^[a-zA-Z]:[\\/]/.test(a)),"必须是绝对路径"),ju=E.Ik({cwd:jr.m4.nullable()}).strict(),jv=E.Ik({skillPath:jt,name:E.Yj().min(1),description:E.Yj(),packageSource:E.Yj().nullable()}).strict(),jw=E.Ik({skills:E.YO(jv),diagnostics:E.YO(E.Ik({path:E.Yj(),message:ct.qf}).strict())}).strict(),jx=ju.extend({skillPath:jt}),jy=jx.extend({path:js.rh}).strict(),jz=E.Ik({entries:E.YO(E.Ik({name:E.Yj().min(1),type:E.k5(["directory","file"])}).strict()).max(js.xm),truncated:E.zM()}).strict(),jA=jx.extend({path:js._g}).strict(),jB=E.gM("kind",[E.Ik({kind:E.eu("text"),content:E.Yj(),size:E.ai().int().nonnegative().max(js.NL),readOnlyReason:ct.qf.nullable()}).strict(),E.Ik({kind:E.eu("image"),mimeType:js.CT,data:E.Yj(),size:E.ai().int().nonnegative()}).strict(),E.Ik({kind:E.eu("unsupported"),size:E.ai().int().nonnegative(),reason:E.Yj()}).strict()]),jC=jA.extend({content:E.Yj().max(js.NL)}).strict(),jD=E.Ik({}).strict(),jE={path:"/api/skills/list",request:ju,response:jw},jF={path:"/api/skill-files/list",request:jy,response:jz},jG={path:"/api/skill-files/get",request:jA,response:jB},jH={path:"/api/skill-files/replace",request:jC,response:jD},jI=E.Ik({code:E.ai(),msg:E.Yj(),data:E.L5(),i18n:jp.N.optional()});async function jJ(a,b,c,d){let e=await fetch(b.path,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(b.request.parse(c)),signal:d}),f=jI.parse(await e.json());if(!e.ok||0!==f.code||null===f.data)throw Error(f.msg?(0,bS.B)(f):"Skills 请求失败");return b.response.parse(f.data)}function jK(a){(0,jq.ZQ)({wrapLines:a})}async function jL(a){let b=a.skillPath.replaceAll("\\","/");await navigator.clipboard.writeText(b.slice(0,b.lastIndexOf("/")+1)+a.path)}var jM=c(60632);function jN(a){return(0,bS.B)({msg:jM.P["zh-CN"][a],i18n:{key:`skills:${a}`}})}function jO(a){return JSON.stringify(a)}function jP(a){return JSON.stringify([a.cwd,a.skillPath,a.path])}function jQ(a){return a.replace(/\r\n|\r/g,"\n")}function jR(a){return a?.file?.kind==="text"&&a.draft!==jQ(a.file.content)}let jS=(0,S.A)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),jT=(0,S.A)("lock-keyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);var jU=c(51314);function jV(a){let{t:b}=(0,Q.Bd)("common"),{wrapLines:c}=(0,jq.TX)();a.path;let d=(0,B.useRef)(null);(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(0),(0,B.useRef)(a);let[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)(!1);return(0,A.jsxs)("div",{"data-testid":"code-editor",className:"relative h-full min-h-0 w-full overflow-hidden bg-background",children:[(0,A.jsx)("div",{ref:d,className:"size-full"}),!g&&(0,A.jsx)("div",{role:"status",className:"absolute inset-0 flex items-center justify-center p-6 text-sm text-muted-foreground",children:b(e?"editorFailed":"editorLoading")})]})}c(82386);var jW=c(85544);function jX({file:a,path:b}){let{t:c}=(0,Q.Bd)("skills"),d=(0,B.useMemo)(()=>[{src:`data:${a.mimeType};base64,${a.data}`,alt:b}],[a,b]);return(0,A.jsx)(jW.k,{mode:"inline",slides:d,className:"h-full w-full",ariaLabel:c("imagePreview")})}function jY(a){let{document:b,skill:c,dirty:d,loading:e,saving:f,opening:g}=a,{t:h}=(0,Q.Bd)("skills"),{locale:i}=(0,cu.i)();if(!b)return(0,A.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 px-6 text-center",children:[(0,A.jsx)(jS,{className:"size-6 text-muted-foreground"}),(0,A.jsx)("h3",{className:"text-sm font-medium",children:h("chooseFile")}),(0,A.jsx)("p",{className:"max-w-xs text-sm leading-6 text-muted-foreground",children:h("chooseFileDescription")})]});let j=b.file,k=j?.kind==="text"?j.readOnlyReason:null;return(0,A.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,A.jsxs)("div",{className:"flex min-h-14 shrink-0 flex-wrap items-center gap-2 border-b px-4 py-2",children:[(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("p",{className:"truncate text-xs text-muted-foreground",title:c?.description,children:[c?.name??b.target.skillPath.split("/").at(-2),(0,A.jsx)("span",{className:"mx-1.5",children:"/"}),h(null===b.target.cwd?"global":"project"),` \xb7 ${h(c?.packageSource?"package":"local")}`]}),(0,A.jsx)("p",{className:"mt-1 truncate font-mono text-sm",title:b.target.path,children:b.target.path})]}),j?.kind==="text"&&(0,A.jsxs)("span",{role:"status","aria-label":h(f?"saving":g?"switchingFile":d?"unsavedChanges":k?"readOnlyFile":"fileSaved"),className:"hidden shrink-0 items-center gap-1 text-xs text-muted-foreground sm:flex",children:[f||g?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):d?(0,A.jsx)("span",{className:"size-1.5 rounded-full bg-status-warning"}):k?(0,A.jsx)(jT,{className:"size-3.5"}):(0,A.jsx)(bp.A,{className:"size-3.5"}),h(f?"saving":g?"switchingFile":d?"unsaved":k?"readOnly":"saved")]}),d&&(0,A.jsx)("span",{"aria-label":h("unsavedChanges"),className:"size-2 shrink-0 rounded-full bg-status-warning sm:hidden"}),(0,A.jsx)(U.$,{variant:"ghost",size:"icon","aria-label":h("copySkillPath"),title:h("copyPath"),onClick:a.onCopy,children:(0,A.jsx)(bI.A,{className:"size-4"})}),(0,A.jsxs)(U.$,{"aria-label":h("saveSkill"),disabled:!d||!!k||e||f,onClick:a.onSave,children:[f?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):(0,A.jsx)(bH,{className:"size-4"}),h("save")]})]}),k&&(0,A.jsxs)("div",{role:"note",className:"flex shrink-0 items-start gap-2 border-b bg-muted px-4 py-2 text-sm leading-5 text-muted-foreground",children:[(0,A.jsx)(jT,{className:"mt-0.5 size-3.5 shrink-0"}),(0,A.jsx)("p",{children:(0,ct.fD)(k,i)})]}),b.error&&(0,A.jsxs)("div",{role:"alert",className:"shrink-0 border-b bg-muted px-4 py-2 text-sm text-destructive",children:[b.error,!j&&(0,A.jsx)(U.$,{variant:"ghost",size:"sm",onClick:a.onReload,children:h("reload")})]}),(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:e&&!j?(0,A.jsxs)("div",{role:"status",className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),h("loadingFile")]}):j?.kind==="text"?(0,A.jsx)(jV,{path:b.target.skillPath.slice(0,b.target.skillPath.lastIndexOf("/")+1)+b.target.path,content:b.draft,size:j.size,readOnly:!!k||f||g,onChange:a.onChange,onSave:a.onSave}):j?.kind==="image"?(0,A.jsx)(jX,{file:j,path:b.target.path}):j?.kind==="unsupported"?(0,A.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-6 text-center text-sm text-muted-foreground",children:[(0,A.jsx)(jS,{className:"mb-2 size-8"}),(0,A.jsx)("p",{children:j.reason}),(0,A.jsx)("p",{children:h("fileSize",{size:j.size.toLocaleString("en"===i?"en-US":"zh-CN")})})]}):null}),j?.kind==="text"&&(0,A.jsxs)("div",{className:"flex min-h-9 shrink-0 items-center justify-between gap-2 border-t px-3 py-1 text-xs text-muted-foreground",children:[(0,A.jsxs)("span",{className:"truncate",children:["UTF-8 \xb7 ",h(k?"readOnly":"saveShortcut")]}),(0,A.jsxs)(U.$,{variant:"ghost",size:"sm","aria-label":h("wrapLines"),"aria-pressed":a.wrapLines,onClick:a.onWrapLines,children:[(0,A.jsx)(jU.A,{className:"size-3.5"}),h("wrapLines")]})]})]})}function jZ({open:a,saving:b,path:c,error:d,onDecide:e}){let{t:f}=(0,Q.Bd)("skills");return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>{a||b||e("cancel")},children:(0,A.jsxs)(b3.hA,{className:"z-[150]",showCloseButton:!b,children:[(0,A.jsxs)(b3.Hl,{className:"p-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:f("saveChangesTitle")}),(0,A.jsx)(b3.uX,{children:f("saveChangesDescription",{path:c??""})})]}),d&&(0,A.jsx)("p",{role:"alert",className:"px-4 pb-4 text-sm text-destructive",children:d}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{variant:"outline",disabled:b,onClick:()=>void e("cancel"),children:f("cancel")}),(0,A.jsx)(U.$,{variant:"ghost",disabled:b,onClick:()=>void e("discard"),children:f("discard")}),(0,A.jsx)(U.$,{disabled:b,onClick:()=>void e("save"),children:f(b?"savingChanges":"saveContinue")})]})]})})}var j$=c(83401);let j_=(0,S.A)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var j0=c(89101);function j1(a,b){return!!(a&&a.cwd===b.cwd&&a.skillPath===b.skillPath&&a.path===b.path)}function j2({target:a,props:b,depth:c=0,skillName:d}){let{t:e}=(0,Q.Bd)("skills"),f=b.directories[jP(a)],{onLoadDirectory:g}=b;return f?.error?(0,A.jsxs)("div",{className:"px-3 py-2 text-xs text-destructive",children:[f.error,(0,A.jsx)(U.$,{variant:"ghost",size:"sm",onClick:()=>void b.onLoadDirectory(a),children:e("retryFolder")})]}):f?.data?(0,A.jsxs)("div",{className:"relative ml-5 border-l border-border/70 py-1 pl-3",children:[f.data.entries.map(f=>{let g=a.path?`${a.path}/${f.name}`:f.name,h={...a,path:g};if("directory"===f.type)return(0,A.jsx)(j3,{target:h,props:b,depth:c,name:f.name,skillName:d},g);let i=j1(b.selected,h),j=j1(b.pending,h);return(0,A.jsxs)(U.$,{variant:"ghost","aria-label":e("skillFile",{path:`${d}/${g}`}),"aria-pressed":i,title:g,className:(0,W.cn)("min-h-9 w-full justify-start text-left font-normal text-muted-foreground",i&&"font-medium",j&&"bg-muted text-foreground"),onClick:()=>void b.onOpenFile(h),children:["SKILL.md"===f.name?(0,A.jsx)(j$.A,{className:"size-3.5 shrink-0"}):(0,A.jsx)(jS,{className:"size-3.5 shrink-0"}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate",children:f.name}),j&&(0,A.jsx)(R.A,{className:"size-3.5 shrink-0 animate-spin"})]},g)}),0===f.data.entries.length&&(0,A.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:e("emptyFolder")}),f.data.truncated&&(0,A.jsx)("p",{className:"px-3 py-2 text-sm text-status-warning",children:e("folderTruncated")})]}):(0,A.jsx)("p",{role:"status",className:"px-4 py-2 text-xs text-muted-foreground",children:e("loadingFolder")})}function j3({target:a,props:b,depth:c,name:d,skillName:e}){let{t:f}=(0,Q.Bd)("skills"),[g,h]=(0,B.useState)(!1);return(0,A.jsxs)("div",{children:[(0,A.jsxs)(U.$,{variant:"ghost","aria-expanded":g,"aria-label":f("skillFolder",{path:`${e}/${a.path}`}),className:(0,W.cn)("min-h-9 w-full justify-start font-normal text-muted-foreground",g&&"bg-muted text-foreground"),onClick:()=>h(!g),children:[g?(0,A.jsx)(cn.A,{className:"size-3.5 shrink-0"}):(0,A.jsx)(bo.A,{className:"size-3.5 shrink-0"}),(0,A.jsx)(cd.A,{className:"size-3.5 shrink-0"}),(0,A.jsx)("span",{className:"truncate",children:d})]}),g&&(0,A.jsx)("div",{className:c>3?"-ml-3":void 0,children:(0,A.jsx)(j2,{target:a,props:b,depth:c+1,skillName:e})})]})}function j4({cwd:a,skill:b,props:c}){let{t:d}=(0,Q.Bd)("skills"),e=c.selected?.cwd===a&&c.selected.skillPath===b.skillPath,f=c.pending?.cwd===a&&c.pending.skillPath===b.skillPath,[g,h]=(0,B.useState)(null),i=g??e,j=async()=>{if(i)return void h(!1);let d=b.skillPath.replaceAll("\\","/").split("/").at(-1);await c.onOpenFile({cwd:a,skillPath:b.skillPath,path:d})&&h(!0)};return(0,A.jsxs)("div",{className:"py-0.5",children:[(0,A.jsxs)(U.$,{variant:"ghost","aria-label":d("skillName",{name:b.name}),"aria-expanded":i,title:`${b.description}
408
+ </iframe>`},"putIntoIFrame"),h$=(0,eM.K)((a,b,c,d,e)=>{let f=a.append("div");f.attr("id",c),d&&f.attr("style",d);let g=f.append("svg").attr("id",b).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return e&&g.attr("xmlns:xlink",e),g.append("g"),a},"appendDivSvgG");function h_(a,b){return a.append("iframe").attr("id",b).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,eM.K)(h_,"sandboxedIframe");var h0=(0,eM.K)((a,b,c,d)=>{a.getElementById(b)?.remove(),a.getElementById(c)?.remove(),a.getElementById(d)?.remove()},"removeExistingElements"),h1=(0,eM.K)(async function(a,b,c){let d,e;hC();let f=hS(b);b=f.code;let g=(0,eK.zj)();eL.R.debug(g),b.length>(g?.maxTextSize??5e4)&&(b="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let h=`#${a}`,i="i"+a,j="#"+i,k="d"+a,l="#"+k,m=(0,eM.K)(()=>{let a=o?j:l,b=(0,eO.Ltv)(a).node();b&&"remove"in b&&b.remove()},"removeTempElements"),n=(0,eO.Ltv)(document.body),o="sandbox"===g.securityLevel,p="loose"===g.securityLevel,q=g.fontFamily;if(void 0!==c){if(c&&(c.innerHTML=""),o){let a=h_((0,eO.Ltv)(c),i);(n=(0,eO.Ltv)(a.nodes()[0].contentDocument.body)).node().style.margin="0"}else n=(0,eO.Ltv)(c);h$(n,a,k,`font-family: ${q}`,"http://www.w3.org/1999/xlink")}else{if(h0(document,a,k,i),o){let a=h_((0,eO.Ltv)(document.body),i);(n=(0,eO.Ltv)(a.nodes()[0].contentDocument.body)).node().style.margin="0"}else n=(0,eO.Ltv)("body");h$(n,a,k)}try{d=await hG.fromText(b,{title:f.title})}catch(a){if(g.suppressErrorRendering)throw m(),a;d=await hG.fromText("error"),e=a}let r=n.select(l).node(),s=d.type,t=r.firstChild,u=t.firstChild,v=hX(g,s,d.renderer.getClasses?.(b,d),h),w=document.createElement("style");w.innerHTML=v,t.insertBefore(w,u);try{await d.renderer.draw(b,a,"11.16.1",d)}catch(c){throw g.suppressErrorRendering?m():gj.draw(b,a,"11.16.1"),c}h4(s,n.select(`${l} svg`),d.db.getAccTitle?.(),d.db.getAccDescription?.()),n.select(`[id="${a}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let x=n.select(l).node().innerHTML;if(eL.R.debug("config.arrowMarkerAbsolute",g.arrowMarkerAbsolute),x=hY(x,o,(0,eK._3)(g.arrowMarkerAbsolute)),o?x=hZ(x,n.select(l+" svg").node()):p||(x=fe.A.sanitize(x,{ADD_TAGS:hQ,ADD_ATTR:hR,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),hI(),e)throw e;return m(),{diagramType:s,svg:x,bindFunctions:d.db.bindFunctions}},"render");function h2(a={}){let b=(0,eK.hH)({},a);b?.fontFamily&&!b.themeVariables?.fontFamily&&(b.themeVariables||(b.themeVariables={}),b.themeVariables.fontFamily=b.fontFamily),(0,eK.wZ)(b),b?.theme&&b.theme in eK.H$?b.themeVariables=eK.H$[b.theme].getThemeVariables(b.themeVariables):b&&(b.themeVariables=eK.H$.default.getThemeVariables(b.themeVariables));let c="object"==typeof b?(0,eK.UU)(b):(0,eK.Q2)();(0,eL.H)(c.logLevel),hC()}(0,eM.K)(h2,"initialize");var h3=(0,eM.K)((a,b={})=>{let{code:c}=hO(a);return hG.fromText(c,b)},"getDiagramFromText");function h4(a,b,c,d){hE(b,a),hF(b,c,d,b.attr("id"))}(0,eM.K)(h4,"addA11yInfo");var h5=Object.freeze({render:h1,parse:hT,getDiagramFromText:h3,initialize:h2,getConfig:eK.zj,setConfig:eK.Nk,getSiteConfig:eK.Q2,updateSiteConfig:eK.B6,reset:(0,eM.K)(()=>{(0,eK.cL)()},"reset"),globalReset:(0,eM.K)(()=>{(0,eK.cL)(eK.sb)},"globalReset"),defaultConfig:eK.sb});(0,eL.H)((0,eK.zj)().logLevel),(0,eK.cL)((0,eK.zj)());var h6=(0,eM.K)((a,b,c)=>{eL.R.warn(a),(0,eJ.dq)(a)?(c&&c(a.str,a.hash),b.push({...a,message:a.str,error:a})):(c&&c(a),a instanceof Error&&b.push({str:a.message,message:a.message,hash:a.name,error:a}))},"handleError"),h7=(0,eM.K)(async function(a={querySelector:".mermaid"}){try{await h8(a)}catch(b){if((0,eJ.dq)(b)&&eL.R.error(b.str),il.parseError&&il.parseError(b),!a.suppressErrors)throw eL.R.error("Use the suppressErrors option to suppress these errors"),b}},"run"),h8=(0,eM.K)(async function({postRenderCallback:a,querySelector:b,nodes:c}={querySelector:".mermaid"}){let d,e,f=h5.getConfig();if(eL.R.debug(`${!a?"No ":""}Callback function found`),c)d=c;else if(b)d=document.querySelectorAll(b);else throw Error("Nodes and querySelector are both undefined");eL.R.debug(`Found ${d.length} diagrams`),f?.startOnLoad!==void 0&&(eL.R.debug("Start On Load: "+f?.startOnLoad),h5.updateSiteConfig({startOnLoad:f?.startOnLoad}));let g=new eJ._K.InitIDGenerator(f.deterministicIds,f.deterministicIDSeed),h=[];for(let b of Array.from(d)){if(eL.R.info("Rendering diagram: "+b.id),b.getAttribute("data-processed"))continue;b.setAttribute("data-processed","true");let c=`mermaid-${g.next()}`;e=b.innerHTML,e=(0,eN.T)(eJ._K.entityDecode(e)).trim().replace(/<br\s*\/?>/gi,"<br/>");let d=eJ._K.detectInit(e);d&&eL.R.debug("Detected early reinit: ",d);try{let{svg:d,bindFunctions:f}=await ij(c,e,b);b.innerHTML=d,a&&await a(c),f&&f(b)}catch(a){h6(a,h,il.parseError)}}if(h.length>0)throw h[0]},"runThrowsErrors"),h9=(0,eM.K)(function(a){h5.initialize(a)},"initialize"),ia=(0,eM.K)(async function(a,b,c){eL.R.warn("mermaid.init is deprecated. Please use run instead."),a&&h9(a);let d={postRenderCallback:c,querySelector:".mermaid"};"string"==typeof b?d.querySelector=b:b&&(b instanceof HTMLElement?d.nodes=[b]:d.nodes=b),await h7(d)},"init"),ib=(0,eM.K)(async(a,{lazyLoad:b=!0}={})=>{hC(),(0,eK.Xd)(...a),!1===b&&await hD()},"registerExternalDiagrams"),ic=(0,eM.K)(function(){if(il.startOnLoad){let{startOnLoad:a}=h5.getConfig();a&&il.run().catch(a=>eL.R.error("Mermaid failed to initialize",a))}},"contentLoaded");"u">typeof document&&window.addEventListener("load",ic,!1);var id=(0,eM.K)(function(a){il.parseError=a},"setParseErrorHandler"),ie=[],ig=!1,ih=(0,eM.K)(async()=>{if(!ig){for(ig=!0;ie.length>0;){let a=ie.shift();if(a)try{await a()}catch(a){eL.R.error("Error executing queue",a)}}ig=!1}},"executeQueue"),ii=(0,eM.K)(async(a,b)=>new Promise((c,d)=>{let e=(0,eM.K)(()=>new Promise((e,f)=>{h5.parse(a,b).then(a=>{e(a),c(a)},a=>{eL.R.error("Error parsing",a),il.parseError?.(a),f(a),d(a)})}),"performCall");ie.push(e),ih().catch(d)}),"parse"),ij=(0,eM.K)((a,b,c)=>new Promise((d,e)=>{let f=(0,eM.K)(()=>new Promise((f,g)=>{h5.render(a,b,c).then(a=>{f(a),d(a)},a=>{eL.R.error("Error parsing",a),il.parseError?.(a),g(a),e(a)})}),"performCall");ie.push(f),ih().catch(e)}),"render"),ik=(0,eM.K)(()=>Object.keys(eK.mW).map(a=>({id:a})),"getRegisteredDiagramsMetadata"),il={startOnLoad:!0,mermaidAPI:h5,parse:ii,render:ij,init:ia,run:h7,registerExternalDiagrams:ib,registerLayoutLoaders:eH.sO,initialize:h9,parseError:void 0,contentLoaded:ic,setParseErrorHandler:id,detectType:eK.Ch,registerIconPacks:eI.pC,getRegisteredDiagramsMetadata:ik},im={startOnLoad:!1,theme:"default",securityLevel:"strict",fontFamily:"monospace",suppressErrorRendering:!0},io=function(a={}){let b=!1,c={...im,...a.config},d={initialize(d){c={...im,...a.config,...d},il.initialize(c),b=!0},render:async(a,d)=>(b||(il.initialize(c),b=!0),await il.render(a,d))};return{name:"mermaid",type:"diagram",language:"mermaid",getMermaid:a=>(a&&d.initialize(a),d)}}(),ip=c(38684);let iq=({className:a,from:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("group flex w-full max-w-[95%] flex-col gap-2","user"===b?"is-user ml-auto justify-end":"is-assistant",a),...c}),ir=({children:a,className:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("flex w-fit min-w-0 max-w-full flex-col gap-2 overflow-hidden text-base leading-[1.8]","group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground","group-[.is-assistant]:text-foreground",b),...c,children:a}),is=({tooltip:a,children:b,label:c,variant:d="ghost",size:e="icon-sm",...f})=>{let g=(0,A.jsxs)(U.$,{size:e,type:"button",variant:d,...f,children:[b,(0,A.jsx)("span",{className:"sr-only",children:c||a})]});return a?(0,A.jsx)(dX.Bc,{children:(0,A.jsxs)(dX.m_,{children:[(0,A.jsx)(dX.k$,{render:g}),(0,A.jsx)(dX.ZI,{children:(0,A.jsx)("p",{children:a})})]})}):g},it={cjk:dY.h,code:dZ.a,math:eE,mermaid:io},iu=(0,B.memo)(({className:a,...b})=>(0,A.jsx)(ip.jH,{className:(0,W.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",a),plugins:it,...b}),(a,b)=>a.children===b.children&&b.isAnimating===a.isAnimating);iu.displayName="MessageResponse";let iv=({className:a,children:b,...c})=>(0,A.jsx)("div",{className:(0,W.cn)("mt-4 flex w-full items-center justify-between gap-4",a),...c,children:b});function iw({readme:a}){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),[d,e]=(0,B.useState)(null),f=a&&"string"!=typeof a?a.translations:{},g=Object.keys(f).filter(a=>/^(zh(?:-|$)|en(?:-|$))/.test(a)),h=d&&void 0!==f[d]?d:null,i=a?h?f[h]:(0,ct.fD)(a,c):null;return(0,A.jsxs)("section",{className:"min-w-0 space-y-3","aria-label":b("readme"),children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:b("readme")}),g.length>0?(0,A.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("readmeLanguage")}),(0,A.jsxs)(bO.l6,{value:h??"",onValueChange:a=>e(a||null),children:[(0,A.jsx)(bO.bq,{"aria-label":b("readmeLanguage"),children:(0,A.jsx)(bO.yv,{children:h?h.startsWith("zh")?"中文":"English":b("defaultLanguage")})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[160]",children:[(0,A.jsx)(bO.eb,{value:"",children:b("defaultLanguage")}),g.map(a=>(0,A.jsx)(bO.eb,{value:a,children:a.startsWith("zh")?"中文":"English"},a))]})]})]}):null]}),i?(0,A.jsx)("div",{className:"min-w-0 overflow-x-auto text-base leading-relaxed [overflow-wrap:anywhere]",children:(0,A.jsx)(iu,{mode:"static",isAnimating:!1,skipHtml:!0,controls:!1,className:"min-w-0 [&_img]:max-w-full [&_pre]:overflow-x-auto",children:i})}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:b("noReadme")})]})}function ix({value:a,label:b,placeholder:c,disabled:d,onChange:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),g=[...c?[{value:"",label:c}]:[],{value:"latest",label:f("channelLatest")},{value:"dev",label:f("channelDev")},...a&&!["latest","dev"].includes(a)?[{value:a,label:a}]:[]];return(0,A.jsxs)(bO.l6,{value:a,items:g,onOpenChange:(a,b)=>{a&&d&&b.cancel()},onValueChange:a=>{null===a||d||e(a)},children:[(0,A.jsx)(bO.bq,{"aria-label":b,"aria-disabled":d,className:"max-w-full aria-disabled:opacity-50",children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:g.map(a=>(0,A.jsx)(bO.eb,{value:a.value,disabled:d,children:a.label},a.value))})]})}function iy(a){if(!a)return null;try{let b=new URL(a);return["https:","http:"].includes(b.protocol)?b.href:null}catch{return null}}function iz(a){let{t:b}=(0,Q.Bd)("pluginManagement"),{locale:c}=(0,cu.i)(),d=a.detail,e=a.installed&&a.installedVersion===d.version,f=iy(d.homepage),g=iy(d.repository),h=[...new Set([d.version,...d.versions])];return(0,A.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[(0,A.jsxs)("span",{children:["v",d.version]}),(0,A.jsx)("span",{children:b(`kind_${d.kind}`)}),d.publisher?(0,A.jsx)("span",{className:"[overflow-wrap:anywhere]",children:d.publisher}):null]}),d.description?(0,A.jsx)("p",{className:"text-sm text-muted-foreground [overflow-wrap:anywhere]",children:(0,ct.fD)(d.description,c)}):null,!1===d.compatible?(0,A.jsxs)("p",{role:"alert",className:"text-sm text-destructive",children:[b("incompatible"),d.compatibilityNote?` \xb7 ${d.compatibilityNote}`:""]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[a.pending?(0,A.jsx)("span",{role:"status",className:"text-sm text-muted-foreground",children:a.operationMessage??b("submitting")}):e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("span",{className:"text-sm text-muted-foreground",children:b("alreadyInstalled")}),a.updateAvailable?(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled,onClick:a.onUpdate,children:b("update")}):null]}):(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled||!1===d.compatible,onClick:a.onInstall,children:b(a.installed?"installVersion":"install")}),f?(0,A.jsx)("a",{href:f,target:"_blank",rel:"noopener noreferrer",className:"text-sm underline underline-offset-4",children:b("homepage")}):null,g?(0,A.jsx)("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"text-sm underline underline-offset-4",children:b("repository")}):null]}),a.error?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere]",children:a.error}):null]}),(0,A.jsxs)(co.Nt,{className:"rounded-lg border",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between px-3 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[b("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"space-y-3 px-3 pb-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("installChannel")}),(0,A.jsx)(ix,{value:a.channel,label:b("installChannel"),placeholder:b("defaultChannel"),disabled:a.pending,onChange:a.onChannel}),(0,A.jsxs)(bO.l6,{value:d.version,items:h.map(a=>({value:a,label:a})),onOpenChange:(b,c)=>{b&&a.pending&&c.cancel()},onValueChange:b=>{b&&!a.pending&&a.onVersion(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("version"),"aria-disabled":a.pending,children:(0,A.jsx)(bO.yv,{})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[160]",children:h.map(b=>(0,A.jsx)(bO.eb,{value:b,disabled:a.pending,children:b},b))})]})]}),(0,A.jsx)(dI,{id:"plugin-detail-download",mode:a.downloadMode,registry:a.downloadRegistry,override:!0,saving:a.pending,onMode:a.onDownloadMode,onRegistry:a.onDownloadRegistry})]})})]}),(0,A.jsx)("div",{className:"border-t pt-4",children:(0,A.jsx)(iw,{readme:d.readme},`${d.name}@${d.version}`)})]})}var iA=c(13221);function iB(a){let{t:b}=(0,Q.Bd)("pluginManagement");return(0,A.jsxs)("section",{"aria-label":b("directInstall"),className:"min-w-0 space-y-3 rounded-lg border bg-card p-4",children:[(0,A.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:b("directInstall")}),(0,A.jsx)(U.$,{size:"sm",variant:"ghost",onClick:a.onClose,children:b("close")})]}),(0,A.jsx)("label",{htmlFor:"plugin-direct-source",className:"block text-sm font-medium",children:b("source")}),(0,A.jsx)(iA.T,{id:"plugin-direct-source",value:a.source,placeholder:b("batchSourcePlaceholder"),rows:2,disabled:a.pending,onChange:b=>a.onSource(b.target.value)}),a.isNpm||a.multiple?(0,A.jsxs)(co.Nt,{children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-8 items-center gap-2 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[b("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{children:b("installChannel")}),(0,A.jsx)(ix,{value:a.tag,label:b("installChannel"),placeholder:b("defaultChannel"),disabled:a.pending,onChange:a.onTag})]}),a.isNpm?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:a.loading,onClick:a.onRead,children:b(a.loading?"loadingPackage":"readPackage")}):null,a.detail?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("span",{className:"min-w-0 font-medium [overflow-wrap:anywhere]",children:a.detail.name}),(0,A.jsxs)(bO.l6,{value:a.selectedVersion,onOpenChange:(b,c)=>{b&&(a.loading||a.pending)&&c.cancel()},items:[{value:"",label:b("automaticVersion")},...[...new Set([a.detail.version,...a.detail.versions])].map(a=>({value:a,label:a}))],onValueChange:b=>{null===b||a.loading||a.pending||a.onVersion(b)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("version"),"aria-disabled":a.loading||a.pending,className:"max-w-full",children:(0,A.jsx)(bO.yv,{})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[160]",children:[(0,A.jsx)(bO.eb,{value:"",disabled:a.loading||a.pending,children:b("automaticVersion")}),[...new Set([a.detail.version,...a.detail.versions])].map(b=>(0,A.jsx)(bO.eb,{value:b,disabled:a.loading||a.pending,children:b},b))]})]}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b("targetVersion",{version:a.detail.version})})]}):null,(0,A.jsx)(dI,{id:"plugin-direct-download",mode:a.override,registry:a.registry,override:!0,saving:a.pending,onMode:a.onMode,onRegistry:a.onRegistry})]})})]}):null,a.error?(0,A.jsx)("p",{role:"alert",className:"text-sm whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]",children:a.error}):null,a.operationMessage?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground [overflow-wrap:anywhere]",children:a.operationMessage}):null,(0,A.jsx)(U.$,{size:"sm",disabled:a.disabled||a.loading||a.pending||!a.source.trim(),onClick:a.onInstall,children:b(a.pending?"installing":a.multiple?"batchInstall":"install")})]})}function iC({confirmation:a,onClose:b,onConfirm:c}){let{t:d}=(0,Q.Bd)("pluginManagement"),e=a?d(dw(a)):null,f=a?.kind==="del"||a?.kind==="batch"&&"del"===a.input.action,g=a?.kind==="add"||a?.kind==="batch"&&"add"===a.input.action;return(0,A.jsx)(b3.YV,{open:!!a,onOpenChange:a=>{a||b()},children:(0,A.jsxs)(b3.hA,{className:"z-[150] max-w-lg",backdropClassName:"z-[140]",children:[(0,A.jsxs)(b3.Hl,{className:"p-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:d("confirmAction",{action:e})}),(0,A.jsx)(b3.uX,{children:d(f?"removeDescription":g?"thirdPartyDescription":a?.kind==="reload"?"normal"===a.mode?"restartNormalDescription":"restartDescription":"confirmChange")})]}),(0,A.jsx)(b3._Y,{className:"min-h-0",children:(0,A.jsx)("div",{className:"min-w-0 p-4 pt-0",children:a?.kind==="batch"?(0,A.jsx)("ul",{className:"space-y-2 text-sm",children:("add"===a.input.action?a.input.items.map(a=>a.source):a.input.sources).map(a=>(0,A.jsx)("li",{className:"font-medium [overflow-wrap:anywhere]",children:a.startsWith("npm:")?dt(a)?.name??a:a},a))}):a?.kind==="add"?(0,A.jsxs)("dl",{className:"space-y-3 text-sm",children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("packageName")}),(0,A.jsx)("dd",{className:"mt-1 font-medium [overflow-wrap:anywhere]",children:a.package?.name??a.input.source})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("version")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.package?.version??dt(a.input.source)?.version??d("fromSource")})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("publisher")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.package?.publisher??d("unknownPublisher")})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:d("source")}),(0,A.jsx)("dd",{className:"[overflow-wrap:anywhere]",children:a.input.registry??a.package?.registry??a.input.source})]})]}):a&&"reload"!==a.kind?(0,A.jsx)("p",{className:"text-sm font-medium [overflow-wrap:anywhere]",children:a.source.startsWith("npm:")?dt(a.source)?.name??a.source:a.source}):null})}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:b,children:d("cancel")}),(0,A.jsx)(U.$,{size:"sm",variant:f?"destructive":"default",onClick:()=>{a&&c(a)},children:e})]})]})})}function iD({basicMode:a=!1,snapshot:b,biz:c,onSnapshot:d,onRestartScheduled:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),{locale:g}=(0,cu.i)(),[h,i]=(0,B.useState)("installed"),[j,k]=(0,B.useState)(""),[l,m]=(0,B.useState)("all"),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(()=>new Set),[r,s]=(0,B.useState)(""),[t,u]=(0,B.useState)(!1),v=function({basicMode:a=!1,biz:b,snapshot:c,onSnapshot:d,onRestartScheduled:e}){let{t:f}=(0,Q.Bd)("pluginManagement"),g=(0,bF.t4)();(0,bF.So)();let[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(()=>new Set),l=(0,B.useRef)(new Set),[m,n]=(0,B.useState)(null),[o,p]=(0,B.useState)({}),[q,r]=(0,B.useState)(null),[s,t]=(0,B.useState)(null),[u,v]=(0,B.useState)(!1),[w,x]=(0,B.useState)(null),y=(0,B.useRef)(0),z=(0,B.useRef)(0),A=(0,B.useRef)(!0),C=(a,b)=>{b?l.current.add(a):l.current.delete(a),A.current&&k(new Set(l.current))},D=(a,b)=>{A.current&&p(c=>{let d={...c};return b?d[a]=b:delete d[a],d})},E=a=>{let b=dv(a);return l.current.has(b)||!!c?.plugins.some(a=>dv(a.source)===b&&a.operation&&"failed"!==a.operation.phase)},F=async(a=!1)=>{let c=++z.current,e=await b.list(a);A.current&&c===z.current&&d(e)},G=async a=>{let c="add"===a.action?a.items.map(a=>a.source):a.sources,e=c.filter(a=>!E(a));if(c.filter(E).forEach(a=>D(dv(a),f("sourceBusy"))),!e.length)return;let g=e.map(dv);g.forEach(a=>{C(a,!0),D(a,null)}),n(null);let h=[...e];try{let c=await b.list(),e=Date.now()+9e5;for(;h.length;){let g=c.plugins.filter(a=>a.operation&&"failed"!==a.operation.phase),i="tag"===a.action?32:Math.max(0,32-g.length);if(!i){if(g.some(a=>a.operation?.phase==="waiting")||Date.now()>=e){h.forEach(a=>D(dv(a),f("batchWaiting")));break}await new Promise(a=>setTimeout(a,750)),c=await b.list(),A.current&&(z.current+=1,d(c));continue}let j=h.slice(0,i),k="add"===a.action?{...a,items:a.items.filter(a=>j.includes(a.source))}:{...a,sources:j},l=await b.batch(k);c=l.snapshot,A.current&&(z.current+=1,d(c)),l.results.forEach(a=>D(dv(a.source),a.error)),j.forEach(a=>C(dv(a),!1)),h=h.slice(j.length)}}catch(b){let a=b instanceof Error?b.message:f("batchFailed");h.forEach(b=>D(dv(b),a))}finally{g.forEach(a=>C(a,!1))}},H=async a=>{if("batch"===a.kind)return void await G(a.input);if("reload"!==a.kind&&E("add"===a.kind?a.input.source:a.source))return;let c="reload"===a.kind?"reload":dv("add"===a.kind?a.input.source:a.source);if(!l.current.has(c)){C(c,!0),n(null),D(c,null);try{let c="add"===a.kind?await b.add(a.input):"update"===a.kind?await b.update(a.source):"del"===a.kind?await b.del(a.source):"enable"===a.kind||"disable"===a.kind?await b.setEnabled(a.source,"enable"===a.kind):await b.reload(a.mode);if(!A.current)return;z.current+=1,d(c),"reload"===a.kind?e():await F()}catch(b){D(c,b instanceof Error?b.message:f("actionFailed",{action:f(dw(a))}))}finally{C(c,!1)}}},I=(a,b)=>{let c={kind:"add",input:a,package:b};b?.official===!0?H(c):n(c)},J=async a=>{let c=a?.[0]?dv(a[0]):"apply";if(!l.current.has(c)){C(c,!0),D(c,null);try{let c=await b.apply(a);A.current&&(z.current+=1,d(c),await F())}catch(a){D(c,a instanceof Error?a.message:f("actionFailed",{action:f("reloadOne")}))}finally{C(c,!1)}}},K=async(a,b)=>{if(!l.current.has(a)){C(a,!0),D(a,null);try{await b()}catch(b){D(a,b instanceof Error?b.message:f("retryFailed"))}finally{C(a,!1)}}},L=async a=>{let c=++y.current;v(!0),x(null);try{let d=await b.get(a);A.current&&c===y.current&&t(d)}catch(a){A.current&&c===y.current&&x(a instanceof Error?a.message:f("detailFailed"))}finally{A.current&&c===y.current&&v(!1)}};return{loading:h,requests:j,confirmation:m,setConfirmation:n,errors:o,detailSource:q,detail:s,detailLoading:u,detailError:w,pluginHost:g,refresh:async(a,b)=>{if(l.current.has("check"))return;let d=a??c?.plugins.filter(a=>"package"===a.kind&&(!b||a.updateTag===b)).map(a=>a.source)??[],e=d.filter(E),g=d.filter(a=>!E(a));if(e.forEach(a=>D(dv(a),f("sourceBusy"))),!g.length)return;let h=g.map(dv);C("check",!0),h.forEach(a=>C(a,!0)),i(!0),D("list",null);try{if(a||e.length)for(let a=0;a<g.length&&(await F({checkUpdates:!0,sources:g.slice(a,a+32),...b?{tag:b}:{}}),A.current);a+=32);else await F({checkUpdates:!0,...b?{tag:b}:{}})}catch(a){D("list",a instanceof Error?a.message:f("updateCheckFailed"))}finally{C("check",!1),h.forEach(a=>C(a,!1)),A.current&&i(!1)}},executeBatch:G,execute:H,requestInstall:I,applyChanges:J,loadDetail:L,openDetail:a=>{r(a),t(null),L(a)},closeDetail:()=>{y.current+=1,r(null),t(null),x(null),v(!1)},handleControlAction:(a,b)=>{switch(b){case"reload":J([a.source]);break;case"update":H({kind:"update",source:a.source});break;case"remove":n({kind:"del",source:a.source});break;case"enable":case"disable":H({kind:b,source:a.source});break;case"retry-browser":a.pluginName&&K(`entry:${a.pluginName}`,()=>g.retryEntry(a.pluginName));break;case"retry":{let b=a.operation?.action;"apply"===b?J([a.source]):"add"===b?I({source:a.source}):b&&H({kind:b,source:a.source})}}},refreshEntries:()=>K("entries",()=>g.refreshEntries())}}({biz:c,snapshot:b,onSnapshot:d,onRestartScheduled:e,basicMode:a}),w=function(a){let{t:b}=(0,Q.Bd)("pluginManagement"),[c,d]=(0,B.useState)(""),[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)("all"),[i,j]=(0,B.useState)("public"),[k,l]=(0,B.useState)(""),[m,n]=(0,B.useState)([]),[o,p]=(0,B.useState)(!1),[q,r]=(0,B.useState)(1),[s,t]=(0,B.useState)(!1),[u,v]=(0,B.useState)(null),[w,x]=(0,B.useState)(!1),[y,z]=(0,B.useState)(null),[A,C]=(0,B.useState)(null),[D,E]=(0,B.useState)(!1),[F,G]=(0,B.useState)(null),[H,I]=(0,B.useState)(()=>new Set),[J,K]=(0,B.useState)({}),L=(0,B.useRef)(0),M=(0,B.useRef)(0),N=(0,B.useRef)(new Set),O=(0,B.useRef)(null),[P,R]=(0,B.useState)(!1),[S,T]=(0,B.useState)("default"),[U,V]=(0,B.useState)(""),W=(0,B.useRef)(!0),X=(0,B.useCallback)(async(c,d)=>{t(!0),v(null);try{let b=await a.searchCatalog(c);if(!W.current||d!==L.current)return;n(a=>{let d=1===c.page?b.items:[...a,...b.items],e=a=>a.official?0:"desk"===a.kind?1:"pi"===a.kind?2:3;return[...new Map(d.map(a=>[a.name,a])).values()].sort((a,b)=>e(a)-e(b))}),r(c.page),p(b.hasMore),x(!0)}catch(a){W.current&&d===L.current&&v(a instanceof Error?a.message:b("searchFailed"))}finally{W.current&&d===L.current&&t(!1)}},[a,b]),Y=async(c,d=c.version)=>{let e=++M.current;E(!0),G(null),K(a=>{let b={...a};return delete b[c.name],b});try{let b=await a.getCatalog({name:c.name,registry:c.registry,version:d});W.current&&e===M.current&&C(b)}catch(a){W.current&&e===M.current&&G(a instanceof Error?a.message:b("detailFailed"))}finally{W.current&&e===M.current&&E(!1)}};return{query:c,setQuery:d,composing:e,beginComposition:()=>{L.current+=1,O.current=null,t(!1),f(!0)},endComposition:()=>f(!1),kind:g,setKind:h,searchSource:i,setSearchSource:j,registry:k,setRegistry:l,items:m,loading:s,error:u,searched:w,hasMore:o,loadMore:()=>{O.current&&!s&&o&&X({...O.current,page:q+1},L.current)},retry:()=>{if(e||s)return;let a="custom"===i?dy.safeParse(k):null;if(a&&!a.success)return void v(b("invalidRegistry"));let d={query:c.trim(),kind:g,page:1,...a?.success?{registry:a.data}:{}};O.current=d,n([]),X(d,++L.current)},selection:y,detail:A,detailLoading:D,detailError:F,openDetail:a=>{z(a),C(null),T("default"),V(""),Y(a)},closeDetail:()=>{M.current+=1,z(null),C(null),E(!1),G(null)},loadDetail:Y,prepareInstall:async(c,d)=>{if(!N.current.has(c.name)){N.current.add(c.name),I(new Set(N.current)),K(a=>{let b={...a};return delete b[c.name],b});try{let e=await a.getCatalog({name:c.name,version:c.version,registry:c.registry});if(!W.current)return;if(!1===e.compatible)return void K(a=>({...a,[c.name]:b("installIncompatible")}));d(e)}catch(a){W.current&&K(d=>({...d,[c.name]:a instanceof Error?a.message:b("detailFailed")}))}finally{N.current.delete(c.name),W.current&&I(new Set(N.current))}}},preparing:H,installErrors:J,downloadMode:S,setDownloadMode:T,downloadRegistry:U,setDownloadRegistry:V,installDetail:a=>{if(!A||D)return;if(!1===A.compatible)return void K(a=>({...a,[A.name]:b("installIncompatible")}));let c="default"===S?null:dz.safeParse("custom"===S?{mode:S,registry:U}:{mode:S});c&&!c.success?K(a=>({...a,[A.name]:b("invalidRegistry")})):(K(a=>{let b={...a};return delete b[A.name],b}),a({source:`npm:${A.name}@${A.version}`,registry:A.registry,...c?.success?{downloadSource:c.data}:{}},A))}}}(c),x=function(a,b){let{t:c}=(0,Q.Bd)("pluginManagement"),[d,e]=(0,B.useState)(null),[f,g]=(0,B.useState)("auto"),[h,i]=(0,B.useState)(""),[j,k]=(0,B.useState)(!1),[l,m]=(0,B.useState)(!1),[n,o]=(0,B.useState)(null),p=(0,B.useRef)(!0),q=(0,B.useRef)(!1),r=(0,B.useRef)(0),s=(0,B.useRef)("load"),t=async()=>{let b=r.current;k(!0),o(null);try{let c=await a.getCatalogSettings();if(!p.current)return;b===r.current?(e(c),g(c.downloadSource.mode),"custom"===c.downloadSource.mode&&i(c.downloadSource.registry)):e(a=>a??c)}catch(a){s.current="load",p.current&&o(a instanceof Error?a.message:c("settingsFailed"))}finally{p.current&&k(!1)}},u=async(d=f)=>{if(q.current)return;let i=dz.safeParse("custom"===d?{mode:d,registry:h}:{mode:d});if(!i.success){s.current="save",o(c("invalidRegistry"));return}q.current=!0,m(!0),o(null);try{let c=await a.saveCatalogSettings(i.data);p.current&&(e(c),g(c.downloadSource.mode),b())}catch(a){s.current="save",p.current&&o(a instanceof Error?a.message:c("settingsFailed"))}finally{q.current=!1,p.current&&m(!1)}};return{settings:d,mode:f,registry:h,setRegistry:a=>{r.current+=1,i(a)},loading:j,saving:l,error:n,load:t,save:u,changeMode:a=>{r.current+=1,g(a),"custom"!==a&&u(a)},retry:()=>"save"===s.current?u():t()}}(c,()=>{a||v.refresh()}),y=function(a,b=[]){let{t:c}=(0,Q.Bd)("pluginManagement"),[d,e]=(0,B.useState)(!1),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)(""),[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(null),[r,s]=(0,B.useState)("default"),[t,u]=(0,B.useState)(""),v=(0,B.useRef)(0),w=(0,B.useRef)(!0),x=f.split(/\r?\n/).map(a=>a.trim()).filter(Boolean),y=1===x.length?dt(x[0]):null,z=()=>{v.current+=1,m(null),o(!1),q(null)},A=async d=>{let e;if(!y)return null;void 0!==d&&k(d||null);let f=b.find(a=>dt(a.source)?.name===y.name)?.updateTag,g=y.version??(h||f||"latest"),i=""===d?g:d??j??g;if("custom"===r){let a=dy.safeParse(t);if(!a.success)return q(c("invalidRegistry")),null;e=a.data}else"official"===r?e="https://registry.npmjs.org":"domestic"===r&&(e="https://registry.npmmirror.com");let l=++v.current;o(!0),m(null),q(null);try{let b=await a.getCatalog({...y,...i?{version:i}:{},...e?{registry:e}:{}});if(!w.current||l!==v.current)return null;return m(b),b}catch(a){return w.current&&l===v.current&&q(a instanceof Error?a.message:c("detailFailed")),null}finally{w.current&&l===v.current&&o(!1)}},C=async(a,b)=>{if(!x.length||n)return;q(null);let d="default"===r?null:dz.safeParse("custom"===r?{mode:r,registry:t}:{mode:r});if(d&&!d.success)return void q(c("invalidRegistry"));let e={...h?{tag:h}:{},...d?.success?{downloadSource:d.data}:{}};if(x.length>1){let a=x.map(dt);if(x.length>32||a.some(a=>!a))return void q(c(x.length>32?"batchLimit":"batchNpmOnly"));let d=new Map;return a.forEach(a=>{a&&d.set(a.name,{source:`npm:${a.name}${a.version?`@${a.version}`:""}`,...e})}),void b([...d.values()])}if(!y)return void a({source:x[0]});let f=l?Promise.resolve(l):A(j??void 0),g=v.current,i=await f;if(i&&w.current&&g===v.current){if(!1===i.compatible)return void q(c("installIncompatible"));a({source:`npm:${i.name}${j||y.version?`@${j??y.version}`:""}`,registry:i.registry,...e},i)}};return{open:d,setOpen:e,source:f,sources:x,tag:h,selectedVersion:j??"",setTag:a=>{z(),k(null),i(a)},changeSource:a=>{z(),k(null),g(a)},spec:y,detail:l,loading:n,error:p,override:r,setOverride:a=>{z(),s(a)},registry:t,setRegistry:a=>{z(),u(a)},loadDetail:A,install:C}}(c,b?.plugins),z=a||v.requests.has("reload"),C=new Map(v.pluginHost.getFailedEntries().map(a=>[a.pluginName,a.error.message])),D=v.pluginHost.getEntryListError(),E=b?.plugins.find(a=>a.source===v.detailSource),F=w.selection?b?.plugins.find(a=>a.source.startsWith("npm:")&&dt(a.source)?.name===w.selection?.name):void 0,G=w.selection?dv(`npm:${w.selection.name}`):"",H=dv(y.detail?`npm:${y.detail.name}`:y.spec?`npm:${y.spec.name}`:y.source.trim()),I=b?.plugins.find(a=>dv(a.source)===H),J=a=>{let c=b?.plugins.find(b=>dv(b.source)===dv(a));return v.requests.has(dv(a))||!!(c?.operation&&"failed"!==c.operation.phase)},K=J(`npm:${w.selection?.name??""}`),L=y.sources.some(J),M=y.sources.map(a=>{let c=dv(a),d=b?.plugins.find(a=>dv(a.source)===c),e=v.errors[c]??(d?.operation?.phase==="failed"?d.operation.message:null);return e?`${a}: ${e}`:null}).filter(Boolean).join("\n"),N=!!(v.detailSource||w.selection),O=(0,B.useRef)(null),P=(0,B.useRef)(null),R=()=>{P.current=document.activeElement instanceof HTMLElement?document.activeElement:null},S=a=>{let c=b?.plugins.find(b=>dt(b.source)?.name===a.name);return{...a,version:c?.updateTag??"latest"}},T=a=>b?.plugins.filter(b=>"extension"!==b.kind&&!0===b.updateAvailable&&!J(b.source)&&(!a||p.has(dv(b.source)))).map(a=>a.source)??[],V=a=>a?f(`phase_${a}`):null,W=()=>{i("installed"),y.setOpen(!0)};return(0,A.jsxs)("div",{className:"flex h-full min-h-0 min-w-0 flex-col",children:[(0,A.jsxs)("header",{className:"shrink-0 space-y-3 border-b p-4 sm:px-6",children:[N?(0,A.jsxs)(U.$,{ref:O,size:"sm",variant:"ghost",className:"-ml-2",onClick:()=>{v.closeDetail(),w.closeDetail()},children:[(0,A.jsx)(Z.A,{}),f("backToList")]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("h2",{className:"min-w-0 text-xl font-semibold [overflow-wrap:anywhere]",children:N?E?du(E):w.selection?.name??f("details"):f("title")}),(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[N?null:(0,A.jsxs)(cm.AM,{children:[(0,A.jsxs)(cm.Wv,{render:(0,A.jsx)(U.$,{size:"sm",variant:"ghost"}),children:[f("downloadSource"),":",x.loading&&!x.settings?f("loading"):f(`download_${x.settings?.downloadSource.mode??x.mode}`),(0,A.jsx)(cn.A,{className:"size-4"})]}),(0,A.jsx)(cm.hl,{align:"end",positionerClassName:"z-[150]",className:"w-80 max-w-[calc(100vw-2rem)]",children:(0,A.jsx)(dI,{id:"plugin-default-download",mode:x.mode,registry:x.registry,savedRegistry:x.settings?.downloadSource.mode==="custom"?x.settings.downloadSource.registry:void 0,recommendedRegistry:x.settings?.recommendedRegistry,loading:x.loading,saving:x.saving,error:x.error,onMode:a=>{"default"!==a&&x.changeMode(a)},onRegistry:x.setRegistry,onSave:()=>void x.save(),onRetry:()=>void x.retry()})})]}),a||b?.restartRequired?(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:v.requests.has("reload"),onClick:()=>v.setConfirmation({kind:"reload",mode:a?"normal":void 0}),children:f(a?"restartNormal":"restartApply")}):null]})]}),a?(0,A.jsx)("p",{role:"status",className:"rounded-lg bg-muted p-3 text-sm",children:f("basicModeNotice")}):null,b?.restartRequired?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:f("pendingRestart")}):null,b?.loadError||D?(0,A.jsxs)("div",{role:"alert",className:"max-h-32 space-y-1 overflow-y-auto text-sm text-destructive",children:[b?.loadError?(0,A.jsx)("p",{className:"[overflow-wrap:anywhere]",children:(0,ct.fD)(b.loadError,g)}):null,D?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("p",{className:"min-w-0 [overflow-wrap:anywhere]",children:D}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:v.requests.has("entries"),onClick:()=>void v.refreshEntries(),children:f("retry")})]}):null]}):null,v.errors.reload||v.errors.entries?(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive [overflow-wrap:anywhere]",children:v.errors.reload??v.errors.entries}):null]}),(0,A.jsxs)(cQ,{value:h,onValueChange:a=>i(String(a)),className:`min-h-0 flex-1 gap-0 ${N?"hidden":""}`,children:[(0,A.jsx)("div",{className:"shrink-0 border-b px-4 pt-2 sm:px-6",children:(0,A.jsxs)(cS,{variant:"line","aria-label":f("title"),className:"h-9",children:[(0,A.jsxs)(cT,{value:"installed",className:"px-3",children:[f("installedTab"),b?(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b.plugins.length}):null]}),(0,A.jsx)(cT,{value:"search",className:"px-3",children:f("searchPlugins")})]})}),(0,A.jsx)(cU,{value:"installed",keepMounted:!0,className:"flex min-h-0 flex-col overflow-hidden p-4 data-[hidden]:hidden sm:p-6",children:(0,A.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[y.open?(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar max-h-1/2 shrink-0 overflow-y-auto",children:(0,A.jsx)(iB,{source:y.source,isNpm:!!y.spec,multiple:y.sources.length>1,tag:y.tag,selectedVersion:y.selectedVersion,onTag:y.setTag,detail:y.detail,loading:y.loading,pending:L,disabled:z,error:y.error??(M||null),operationMessage:L?V(I?.operation?.phase)??f("submitting"):null,override:y.override,registry:y.registry,onSource:y.changeSource,onMode:y.setOverride,onRegistry:y.setRegistry,onRead:()=>void y.loadDetail(),onVersion:a=>void y.loadDetail(a),onInstall:()=>void y.install(v.requestInstall,a=>v.setConfirmation({kind:"batch",input:{action:"add",items:a}})),onClose:()=>y.setOpen(!1)})}):null,(0,A.jsx)(dT,{snapshot:b,loading:v.loading,filter:j,statusFilter:l,batchMode:n,selected:p,onStatusFilter:m,onBatchMode:a=>{o(a),a||q(new Set)},onSelect:(a,b)=>{q(c=>{let d=new Set(c);return a.forEach(a=>{b?d.add(a):d.delete(a)}),d})},onUpdateAll:()=>void v.executeBatch({action:"update",sources:T(!1)}),onUpdateSelected:()=>void v.executeBatch({action:"update",sources:T(!0)}),onRemoveSelected:()=>v.setConfirmation({kind:"batch",input:{action:"del",sources:b?.plugins.filter(a=>p.has(dv(a.source))&&!J(a.source)).map(a=>a.source)??[]}}),disabled:z,requests:v.requests,errors:v.errors,browserErrors:C,onFilter:k,onDetail:a=>{R(),w.closeDetail(),v.openDetail(a)},onAction:v.handleControlAction,onRefresh:()=>void v.refresh()}),b?.plugins.length||y.open?null:(0,A.jsx)(U.$,{size:"sm",variant:"outline",className:"shrink-0 self-start",disabled:z,onClick:W,children:f("directInstall")})]})}),(0,A.jsx)(cU,{value:"search",keepMounted:!0,className:"pi-desk-chat-scrollbar min-h-0 overflow-y-auto p-4 data-[hidden]:hidden sm:p-6",children:(0,A.jsx)(dU,{query:w.query,kind:w.kind,searchSource:w.searchSource,registry:w.registry,items:w.items,loading:w.loading,error:w.error,searched:w.searched,hasMore:w.hasMore,disabled:z,snapshot:b,requests:v.requests,preparing:w.preparing,errors:v.errors,installErrors:w.installErrors,onQuery:w.setQuery,onCompositionStart:w.beginComposition,onCompositionEnd:w.endComposition,onKind:w.setKind,onSearchSource:a=>{w.setSearchSource(a),"custom"!==a||w.registry||x.settings?.downloadSource.mode!=="custom"||w.setRegistry(x.settings.downloadSource.registry)},onRegistry:w.setRegistry,onDetail:a=>{R(),v.closeDetail(),s(""),u(!1),w.openDetail(S(a))},onInstall:a=>{w.prepareInstall(S(a),a=>v.requestInstall({source:`npm:${a.name}`,registry:a.registry},a))},onUpdate:a=>void v.execute({kind:"update",source:a}),onMore:w.loadMore,onRetry:w.retry,onDirectInstall:W})})]}),N?(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-4 sm:p-6",children:E?(0,A.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[E.version?(0,A.jsxs)("span",{children:["v",E.version]}):null,E.updateAvailable?(0,A.jsx)("span",{className:"rounded-md bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success",children:E.availableVersion?f("newVersion",{version:E.availableVersion}):f("updateAvailable")}):null]}),(0,A.jsx)(dr,{plugin:E,displayName:du(E),browserError:E.pluginName?C.get(E.pluginName)??null:null,disabled:z,pending:J(E.source),browserRetryPending:v.requests.has(`entry:${E.pluginName}`),onAction:a=>v.handleControlAction(E,a)})]}),E.description?(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:(0,ct.fD)(E.description,g)}):null,(0,A.jsx)(ds,{plugin:E,requestError:v.errors[dv(E.source)],browserError:E.pluginName?C.get(E.pluginName)??null:null})]}),(0,A.jsxs)(co.Nt,{className:"rounded-lg border",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between px-3 text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[f("advancedOptions"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-3 pb-3",children:[E.source.startsWith("npm:")?(0,A.jsx)(ix,{value:E.updateTag??"latest",label:f("installChannel"),disabled:z||J(E.source),onChange:a=>void v.executeBatch({action:"tag",sources:[E.source],tag:a})}):null,(0,A.jsx)(U.$,{size:"sm",variant:"outline",disabled:z||J(E.source)&&E.operation?.phase!=="waiting",onClick:()=>v.handleControlAction(E,"reload"),children:f("reloadOne")})]})})]}),v.detailLoading?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:f("loadingPackage")}):null,v.detail?.readme?(0,A.jsx)(iw,{readme:v.detail.readme},E.source):null,(0,A.jsxs)(co.Nt,{className:"border-t pt-2",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-9 w-full items-center justify-between text-sm font-medium outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[f("capabilityDetails"),(0,A.jsx)(cn.A,{className:"size-4 transition-transform group-aria-expanded:rotate-180"})]}),(0,A.jsx)(co.Ke,{keepMounted:!0,className:"hidden data-open:block",children:(0,A.jsx)(da,{plugin:E,detail:v.detail,detailLoading:v.detailLoading,detailError:v.detailError,browserContributions:E.pluginName?v.pluginHost.getRegisteredBrowserDescriptors().find(a=>a.pluginName===E.pluginName)?.contributions??[]:[],onRetry:()=>void v.loadDetail(E.source)})})]}),v.detailError?(0,A.jsxs)("div",{role:"alert",className:"flex items-center gap-2 text-sm text-destructive",children:[(0,A.jsx)("span",{children:v.detailError}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:()=>void v.loadDetail(E.source),children:f("retry")})]}):null]}):w.selection?(0,A.jsxs)(A.Fragment,{children:[w.detailLoading?(0,A.jsx)("p",{role:"status",className:"mb-3 text-sm text-muted-foreground",children:f("loadingPackage")}):null,w.detailError?(0,A.jsxs)("div",{role:"alert",className:"mb-3 space-y-2 text-sm",children:[(0,A.jsx)("p",{className:"text-destructive [overflow-wrap:anywhere]",children:w.detailError}),(0,A.jsx)(U.$,{size:"sm",variant:"outline",onClick:()=>void w.loadDetail(w.selection),children:f("retry")})]}):null,w.detail?(0,A.jsx)(iz,{detail:w.detail,disabled:z||!!w.detailError,pending:K||w.detailLoading,installed:!!(F&&(F.operation?.action!=="add"||"failed"!==F.operation.phase)),installedVersion:F?.version??null,updateAvailable:!!F?.updateAvailable,error:w.installErrors[w.detail.name]??v.errors[G]??(F?.operation?.phase==="failed"?F.operation.message:null),operationMessage:w.detailLoading?f("loadingPackage"):V(F?.operation?.phase),channel:r,onChannel:a=>{s(a),u(!1),w.loadDetail(w.selection,a||F?.updateTag||"latest")},downloadMode:w.downloadMode,downloadRegistry:w.downloadRegistry,onDownloadMode:w.setDownloadMode,onDownloadRegistry:w.setDownloadRegistry,onVersion:a=>{u(!0),w.loadDetail(w.selection,a)},onInstall:()=>w.installDetail((a,b)=>v.requestInstall({...a,source:t?a.source:`npm:${b.name}`,...r?{tag:r}:{}},b)),onUpdate:()=>{F&&v.execute({kind:"update",source:F.source})}}):null]}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:f("pluginRemoved")})}):null,(0,A.jsx)(iC,{confirmation:v.confirmation,onClose:()=>v.setConfirmation(null),onConfirm:a=>void v.execute(a)})]})}var iE=c(98945);let iF=E.Yj().trim().min(1).max(2048),iG=E.YO(iF).min(1).max(32),iH=E.Ik({phase:E.k5(["package","entry","setup","resources","resolve","native"]),message:ct.qf.refine(a=>"string"==typeof a?a.length>0:a.default.length>0)}).strict(),iI=E.Yj().trim().min(1).max(4096),iJ=E.Yj().trim().min(1).max(256),iK=E.Yj().max(32768),iL=E.Ik({name:iJ,label:iK,state:E.k5(["active","inactive","shadowed"]),description:iK,promptSnippet:iK.nullable(),promptGuidelineCount:E.ai().int().nonnegative(),promptGuidelinePreview:iK.nullable()}).strict(),iM=E.Ik({name:iJ,label:iK,state:E.k5(["active","inactive","shadowed"]),description:iK,parameters:iE.Dz,promptSnippet:iK.nullable(),promptGuidelines:E.YO(iK)}).strict(),iN=E.Ik({path:iI,events:E.YO(E.Ik({name:iJ,count:E.ai().int().positive()}).strict()),commands:E.YO(E.Ik({name:iJ,description:iK.nullable()}).strict()),shortcuts:E.YO(E.Ik({shortcut:iJ,description:iK.nullable()}).strict()),flags:E.YO(E.Ik({name:iJ,type:E.k5(["boolean","string"]),description:iK.nullable(),default:E.KC([E.zM(),E.Yj(),E.ch()])}).strict()),messageRenderers:E.YO(iJ),entryRenderers:E.YO(iJ)}).strict(),iO=E.Ik({name:iJ,description:iK,path:iI}).strict(),iP=iO.extend({modelVisible:E.zM()}).strict(),iQ=iO.extend({content:E.Yj().max(65536),truncated:E.zM()}).strict(),iR=iQ.extend({modelVisible:E.zM()}).strict(),iS=E.Ik({name:iJ,path:iI}).strict(),iT=E.Ik({name:iJ,kind:E.k5(["config","native"])}).strict(),iU=E.Ik({methods:E.YO(E.Ik({pluginName:iJ,method:iJ}).strict()),browserEntries:E.YO(E.Ik({pluginName:iJ}).strict()),messageDeclarations:E.YO(E.Ik({pluginName:iJ,declarationName:iJ,priority:E.ai().int().safe()}).strict())}).strict(),iV=E.Ik({error:ct.qf.refine(a=>"string"==typeof a?a.length<=32768:[a.default,...Object.values(a.translations)].every(a=>a.length<=32768)).nullable(),extensions:E.YO(iN),tools:E.YO(iL),skills:E.YO(iP),prompts:E.YO(iO),themes:E.YO(iS),providers:E.YO(iT),piDesk:iU}).strict(),iW=E.Ik({action:E.k5(["add","update","del","apply","enable","disable"]),phase:E.k5(["queued","checking","applying","waiting","failed"]),message:E.Yj().max(4e3).nullable()}).strict(),iX=(0,F._G)({path:"plugins/management-update",bodySchema:E.Ik({}).strict()}),iY=E.Ik({source:iF,kind:E.k5(["package","extension"]).default("package"),operation:iW.nullable().default(null),pluginName:E.Yj().trim().min(1).nullable(),description:ct.qf.nullable().default(null),version:E.Yj().trim().min(1).nullable(),updateAvailable:E.zM().nullable(),updateTag:dx.nullable().optional(),availableVersion:E.Yj().min(1).nullable().optional(),updateError:E.Yj().max(4e3).nullable().optional(),status:E.k5(["ready","available","disabled","failed"]),error:iH.nullable(),capabilities:iV}).strict(),iZ=E.Ik({source:iF,readme:ct.qf.nullable().default(null),tools:E.YO(iM),skills:E.YO(iR),prompts:E.YO(iQ)}).strict(),i$=E.Ik({plugins:E.YO(iY),restartRequired:E.zM(),loadError:ct.qf.refine(a=>"string"==typeof a?a.length>0:a.default.length>0).nullable()}).strict(),i_=E.Ik({sources:E.YO(iF).min(1).max(32).optional()}).strict(),i0=E.Ik({}).strict().extend({mode:E.k5(["normal","basic"]).optional()}).strict(),i1=E.Ik({checkUpdates:E.zM().optional(),sources:iG.optional(),tag:dx.optional()}).strict(),i2=E.Ik({source:iF}).strict(),i3=i2.extend({downloadSource:dz.optional(),registry:dy.optional(),tag:dx.optional()}).strict(),i4=E.gM("action",[E.Ik({action:E.eu("add"),items:E.YO(i3).min(1).max(32)}).strict(),E.Ik({action:E.eu("update"),sources:iG}).strict(),E.Ik({action:E.eu("del"),sources:iG}).strict(),E.Ik({action:E.eu("tag"),sources:iG,tag:dx}).strict()]),i5=E.Ik({snapshot:i$,results:E.YO(E.Ik({source:iF,error:E.Yj().max(4e3).nullable()}).strict()).max(32)}).strict(),i6=i2.extend({enabled:E.zM()}).strict();async function i7(a,b,c,d){return bT(a,b,c,d,{fallbackMessage:"插件管理请求失败"})}function i8({pluginName:a,descriptor:b,source:c,cwd:d,onPreviewFile:e,onRevealFile:f,onHeaderActionsChange:g}){let h=`${c.workId}\u0000${c.sessionId}\u0000${c.branchId}\u0000${d}`;return(0,A.jsx)(cq,{pluginName:a,kind:"session-sidebar-tab",contributionName:b.contributionName,target:{kind:"session-sidebar-tab",source:c,cwd:d,files:{preview:e,reveal:f},setHeaderActions:g},targetKey:h,layout:"fill"})}function i9({pluginName:a,descriptor:b,onClose:c,onBeforeLeaveChange:d}){let e=(0,bF.t4)();(0,bF.So)();let f=e.getEntryState(a);"ready"===f.status?f.runtime:f.status;let g=(0,B.useMemo)(()=>({kind:"settings-page",close:()=>{e.getEntryState(a)===f&&c()},setBeforeLeave:b=>{e.getEntryState(a)===f&&d(b)}}),[f,d,c,a,e]);return(0,A.jsx)(cq,{pluginName:a,kind:"settings-page",contributionName:b.contributionName,target:g,className:"pi-desk-chat-scrollbar h-full min-h-0 overflow-auto"})}function ja({source:a,placement:b}){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bF.So)(),e=(0,B.useMemo)(()=>({kind:"widget",source:a}),[a]),f=JSON.stringify([a.workId,a.sessionId,a.branchId]),g=d.flatMap(a=>a.contributions.flatMap(c=>"widget"===c.kind&&c.placement===b?[{pluginName:a.pluginName,descriptor:c}]:[]));return 0===g.length?null:(0,A.jsx)("div",{"data-testid":`plugin-widgets-${b}`,"aria-label":c("composer"),className:"min-w-0 w-full",children:g.map(({pluginName:a,descriptor:b})=>(0,A.jsx)(cq,{pluginName:a,kind:"widget",contributionName:b.contributionName,target:e,targetKey:f,layout:"inline"},`${a}:${b.contributionName}:${f}`))})}function jb({pluginName:a,contributionName:b,presentation:c,source:d,icon:e,label:f,onSelected:g}){let h=(0,bF.t4)();(0,bF.So)();let i=h.getEntryState(a),j=(0,bG.G)(),{t:k}=(0,Q.Bd)("workbench"),l=(0,B.useRef)(null),m=(0,B.useRef)(!1),[n,o]=(0,B.useState)(!1),p=async()=>{let e=l.current;if(!e||e.signal.aborted||m.current)return;let f=()=>!e.signal.aborted&&h.getEntryState(a)===i;m.current=!0,o(!0);try{await h.invokeSessionHeaderAction({pluginName:a,contributionName:b,presentation:c,source:d,signal:e.signal}),f()&&g?.()}catch(g){if(!f())return;let e=g instanceof Error?g.message:k("operationFailed");console.error("[Pi Desk][PluginHost] 会话标题操作失败",{pluginName:a,contributionName:b,presentation:c,source:d,message:e}),j.error(e)}finally{f()&&(m.current=!1,o(!1))}};return(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm","aria-label":f,"aria-busy":n,disabled:n,"data-testid":"plugin-session-header-action","data-plugin-name":a,"data-contribution-name":b,"data-presentation":c,className:(0,W.cn)("overflow"===c&&"w-full justify-start whitespace-normal text-left"),onClick:()=>void p(),children:[(0,A.jsx)(ck,{icon:e,className:"size-4"}),(0,A.jsx)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:f})]})}function jc(a){return`${a.pluginName}:${a.descriptor.contributionName}`}function jd({item:a,source:b,presentation:c,onSelected:d}){let e=a.descriptor[c],f=(0,B.useMemo)(()=>({kind:"session-header-item",source:b,presentation:c}),[c,b]),g=JSON.stringify([b.workId,b.sessionId,b.branchId,c]);return"action"===e.type?(0,A.jsx)(jb,{pluginName:a.pluginName,contributionName:a.descriptor.contributionName,presentation:c,source:b,icon:e.icon,label:e.label,onSelected:d}):(0,A.jsx)("div",{"data-testid":"plugin-session-header-custom","data-plugin-name":a.pluginName,"data-contribution-name":a.descriptor.contributionName,"data-presentation":c,className:"min-w-0 shrink-0",style:"inline"===c&&"custom"===a.descriptor.inline.type?{width:`${a.descriptor.inline.minWidthRem}rem`}:void 0,children:(0,A.jsx)(cq,{pluginName:a.pluginName,kind:"session-header-item",contributionName:a.descriptor.contributionName,target:f,targetKey:g,layout:"inline"})})}function je({source:a,title:b}){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bF.So)(),e=(0,B.useMemo)(()=>d.flatMap(a=>a.contributions.flatMap(b=>"session-header-item"===b.kind?[{pluginName:a.pluginName,descriptor:b}]:[])),[d]),f=(0,B.useRef)(null),g=(0,B.useRef)(null),[h,i]=(0,B.useState)(null),[j,k]=(0,B.useState)(!1),l=h?.items===e?h.count:0,m=e.slice(0,l),n=e.slice(l);return(0,A.jsxs)("div",{ref:f,className:"relative flex min-w-0 flex-1 items-center gap-1","data-testid":"plugin-session-header",children:[(0,A.jsx)("div",{className:"min-w-[3rem] flex-1",children:b}),e.length>0?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex shrink-0 items-center gap-1","data-testid":"session-header-items",children:[m.map(b=>(0,A.jsx)(jd,{item:b,source:a,presentation:"inline"},jc(b))),n.length>0?(0,A.jsxs)(cm.AM,{open:j,onOpenChange:k,children:[(0,A.jsx)(cm.Wv,{render:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":c("moreActions"),"data-testid":"session-header-more"}),children:(0,A.jsx)(an,{className:"size-4"})}),(0,A.jsxs)(cm.hl,{align:"end",finalFocus:!0,className:"pi-desk-chat-scrollbar max-h-[min(28rem,var(--available-height))] gap-1 overflow-auto p-1","data-testid":"session-header-overflow","aria-label":c("moreActions"),children:[(0,A.jsx)(cm.eO,{className:"sr-only",children:c("moreActions")}),j?n.map(b=>(0,A.jsx)(jd,{item:b,source:a,presentation:"overflow",onSelected:()=>k(!1)},jc(b))):null]})]}):null]}),(0,A.jsx)("div",{ref:g,"aria-hidden":"true",inert:!0,className:"pointer-events-none invisible absolute inset-0 overflow-hidden",children:(0,A.jsxs)("div",{className:"flex w-max items-center",children:[(0,A.jsx)("span",{"data-header-title-width":!0,className:"inline-block w-[3rem]"}),(0,A.jsx)("span",{"data-header-gap-width":!0,className:"inline-block w-1"}),(0,A.jsx)("span",{"data-header-more-width":!0,className:(0,U.r)({variant:"ghost",size:"icon-sm"}),children:(0,A.jsx)(an,{className:"size-4"})}),e.map(a=>"action"===a.descriptor.inline.type?(0,A.jsxs)("span",{"data-header-item-width":!0,className:(0,U.r)({variant:"ghost",size:"sm"}),children:[(0,A.jsx)(ck,{icon:a.descriptor.inline.icon,className:"size-4"}),(0,A.jsx)("span",{children:a.descriptor.inline.label})]},jc(a)):(0,A.jsx)("span",{"data-header-item-width":!0,className:"inline-block shrink-0",style:{width:`${a.descriptor.inline.minWidthRem}rem`}},jc(a)))]})})]}):null]})}let jf=(0,S.A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);var jg=c(91477);let jh=(0,S.A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var ji=c(9665),jj=c(60816);let jk="1.1.23-dev".trim()||"未知",jl="2026-10-27T13:04:34+08:00".trim()||null;var jm=c(68578),jn=c(22207),jo=c(79918),jp=c(82709),jq=c(96478),jr=c(23423),js=c(51949);let jt=E.Yj().min(1).max(js.uV).refine(a=>!a.includes("\0")&&(a.startsWith("/")||a.startsWith("\\\\")||/^[a-zA-Z]:[\\/]/.test(a)),"必须是绝对路径"),ju=E.Ik({cwd:jr.m4.nullable()}).strict(),jv=E.Ik({skillPath:jt,name:E.Yj().min(1),description:E.Yj(),packageSource:E.Yj().nullable()}).strict(),jw=E.Ik({skills:E.YO(jv),diagnostics:E.YO(E.Ik({path:E.Yj(),message:ct.qf}).strict())}).strict(),jx=ju.extend({skillPath:jt}),jy=jx.extend({path:js.rh}).strict(),jz=E.Ik({entries:E.YO(E.Ik({name:E.Yj().min(1),type:E.k5(["directory","file"])}).strict()).max(js.xm),truncated:E.zM()}).strict(),jA=jx.extend({path:js._g}).strict(),jB=E.gM("kind",[E.Ik({kind:E.eu("text"),content:E.Yj(),size:E.ai().int().nonnegative().max(js.NL),readOnlyReason:ct.qf.nullable()}).strict(),E.Ik({kind:E.eu("image"),mimeType:js.CT,data:E.Yj(),size:E.ai().int().nonnegative()}).strict(),E.Ik({kind:E.eu("unsupported"),size:E.ai().int().nonnegative(),reason:E.Yj()}).strict()]),jC=jA.extend({content:E.Yj().max(js.NL)}).strict(),jD=E.Ik({}).strict(),jE={path:"/api/skills/list",request:ju,response:jw},jF={path:"/api/skill-files/list",request:jy,response:jz},jG={path:"/api/skill-files/get",request:jA,response:jB},jH={path:"/api/skill-files/replace",request:jC,response:jD},jI=E.Ik({code:E.ai(),msg:E.Yj(),data:E.L5(),i18n:jp.N.optional()});async function jJ(a,b,c,d){let e=await fetch(b.path,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(b.request.parse(c)),signal:d}),f=jI.parse(await e.json());if(!e.ok||0!==f.code||null===f.data)throw Error(f.msg?(0,bS.B)(f):"Skills 请求失败");return b.response.parse(f.data)}function jK(a){(0,jq.ZQ)({wrapLines:a})}async function jL(a){let b=a.skillPath.replaceAll("\\","/");await navigator.clipboard.writeText(b.slice(0,b.lastIndexOf("/")+1)+a.path)}var jM=c(60632);function jN(a){return(0,bS.B)({msg:jM.P["zh-CN"][a],i18n:{key:`skills:${a}`}})}function jO(a){return JSON.stringify(a)}function jP(a){return JSON.stringify([a.cwd,a.skillPath,a.path])}function jQ(a){return a.replace(/\r\n|\r/g,"\n")}function jR(a){return a?.file?.kind==="text"&&a.draft!==jQ(a.file.content)}let jS=(0,S.A)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),jT=(0,S.A)("lock-keyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);var jU=c(51314);function jV(a){let{t:b}=(0,Q.Bd)("common"),{wrapLines:c}=(0,jq.TX)();a.path;let d=(0,B.useRef)(null);(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(0),(0,B.useRef)(a);let[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)(!1);return(0,A.jsxs)("div",{"data-testid":"code-editor",className:"relative h-full min-h-0 w-full overflow-hidden bg-background",children:[(0,A.jsx)("div",{ref:d,className:"size-full"}),!g&&(0,A.jsx)("div",{role:"status",className:"absolute inset-0 flex items-center justify-center p-6 text-sm text-muted-foreground",children:b(e?"editorFailed":"editorLoading")})]})}c(82386);var jW=c(85544);function jX({file:a,path:b}){let{t:c}=(0,Q.Bd)("skills"),d=(0,B.useMemo)(()=>[{src:`data:${a.mimeType};base64,${a.data}`,alt:b}],[a,b]);return(0,A.jsx)(jW.k,{mode:"inline",slides:d,className:"h-full w-full",ariaLabel:c("imagePreview")})}function jY(a){let{document:b,skill:c,dirty:d,loading:e,saving:f,opening:g}=a,{t:h}=(0,Q.Bd)("skills"),{locale:i}=(0,cu.i)();if(!b)return(0,A.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 px-6 text-center",children:[(0,A.jsx)(jS,{className:"size-6 text-muted-foreground"}),(0,A.jsx)("h3",{className:"text-sm font-medium",children:h("chooseFile")}),(0,A.jsx)("p",{className:"max-w-xs text-sm leading-6 text-muted-foreground",children:h("chooseFileDescription")})]});let j=b.file,k=j?.kind==="text"?j.readOnlyReason:null;return(0,A.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,A.jsxs)("div",{className:"flex min-h-14 shrink-0 flex-wrap items-center gap-2 border-b px-4 py-2",children:[(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("p",{className:"truncate text-xs text-muted-foreground",title:c?.description,children:[c?.name??b.target.skillPath.split("/").at(-2),(0,A.jsx)("span",{className:"mx-1.5",children:"/"}),h(null===b.target.cwd?"global":"project"),` \xb7 ${h(c?.packageSource?"package":"local")}`]}),(0,A.jsx)("p",{className:"mt-1 truncate font-mono text-sm",title:b.target.path,children:b.target.path})]}),j?.kind==="text"&&(0,A.jsxs)("span",{role:"status","aria-label":h(f?"saving":g?"switchingFile":d?"unsavedChanges":k?"readOnlyFile":"fileSaved"),className:"hidden shrink-0 items-center gap-1 text-xs text-muted-foreground sm:flex",children:[f||g?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):d?(0,A.jsx)("span",{className:"size-1.5 rounded-full bg-status-warning"}):k?(0,A.jsx)(jT,{className:"size-3.5"}):(0,A.jsx)(bp.A,{className:"size-3.5"}),h(f?"saving":g?"switchingFile":d?"unsaved":k?"readOnly":"saved")]}),d&&(0,A.jsx)("span",{"aria-label":h("unsavedChanges"),className:"size-2 shrink-0 rounded-full bg-status-warning sm:hidden"}),(0,A.jsx)(U.$,{variant:"ghost",size:"icon","aria-label":h("copySkillPath"),title:h("copyPath"),onClick:a.onCopy,children:(0,A.jsx)(bI.A,{className:"size-4"})}),(0,A.jsxs)(U.$,{"aria-label":h("saveSkill"),disabled:!d||!!k||e||f,onClick:a.onSave,children:[f?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):(0,A.jsx)(bH,{className:"size-4"}),h("save")]})]}),k&&(0,A.jsxs)("div",{role:"note",className:"flex shrink-0 items-start gap-2 border-b bg-muted px-4 py-2 text-sm leading-5 text-muted-foreground",children:[(0,A.jsx)(jT,{className:"mt-0.5 size-3.5 shrink-0"}),(0,A.jsx)("p",{children:(0,ct.fD)(k,i)})]}),b.error&&(0,A.jsxs)("div",{role:"alert",className:"shrink-0 border-b bg-muted px-4 py-2 text-sm text-destructive",children:[b.error,!j&&(0,A.jsx)(U.$,{variant:"ghost",size:"sm",onClick:a.onReload,children:h("reload")})]}),(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:e&&!j?(0,A.jsxs)("div",{role:"status",className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),h("loadingFile")]}):j?.kind==="text"?(0,A.jsx)(jV,{path:b.target.skillPath.slice(0,b.target.skillPath.lastIndexOf("/")+1)+b.target.path,content:b.draft,size:j.size,readOnly:!!k||f||g,onChange:a.onChange,onSave:a.onSave}):j?.kind==="image"?(0,A.jsx)(jX,{file:j,path:b.target.path}):j?.kind==="unsupported"?(0,A.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-6 text-center text-sm text-muted-foreground",children:[(0,A.jsx)(jS,{className:"mb-2 size-8"}),(0,A.jsx)("p",{children:j.reason}),(0,A.jsx)("p",{children:h("fileSize",{size:j.size.toLocaleString("en"===i?"en-US":"zh-CN")})})]}):null}),j?.kind==="text"&&(0,A.jsxs)("div",{className:"flex min-h-9 shrink-0 items-center justify-between gap-2 border-t px-3 py-1 text-xs text-muted-foreground",children:[(0,A.jsxs)("span",{className:"truncate",children:["UTF-8 \xb7 ",h(k?"readOnly":"saveShortcut")]}),(0,A.jsxs)(U.$,{variant:"ghost",size:"sm","aria-label":h("wrapLines"),"aria-pressed":a.wrapLines,onClick:a.onWrapLines,children:[(0,A.jsx)(jU.A,{className:"size-3.5"}),h("wrapLines")]})]})]})}function jZ({open:a,saving:b,path:c,error:d,onDecide:e}){let{t:f}=(0,Q.Bd)("skills");return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>{a||b||e("cancel")},children:(0,A.jsxs)(b3.hA,{className:"z-[150]",showCloseButton:!b,children:[(0,A.jsxs)(b3.Hl,{className:"p-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:f("saveChangesTitle")}),(0,A.jsx)(b3.uX,{children:f("saveChangesDescription",{path:c??""})})]}),d&&(0,A.jsx)("p",{role:"alert",className:"px-4 pb-4 text-sm text-destructive",children:d}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{variant:"outline",disabled:b,onClick:()=>void e("cancel"),children:f("cancel")}),(0,A.jsx)(U.$,{variant:"ghost",disabled:b,onClick:()=>void e("discard"),children:f("discard")}),(0,A.jsx)(U.$,{disabled:b,onClick:()=>void e("save"),children:f(b?"savingChanges":"saveContinue")})]})]})})}var j$=c(83401);let j_=(0,S.A)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var j0=c(89101);function j1(a,b){return!!(a&&a.cwd===b.cwd&&a.skillPath===b.skillPath&&a.path===b.path)}function j2({target:a,props:b,depth:c=0,skillName:d}){let{t:e}=(0,Q.Bd)("skills"),f=b.directories[jP(a)],{onLoadDirectory:g}=b;return f?.error?(0,A.jsxs)("div",{className:"px-3 py-2 text-xs text-destructive",children:[f.error,(0,A.jsx)(U.$,{variant:"ghost",size:"sm",onClick:()=>void b.onLoadDirectory(a),children:e("retryFolder")})]}):f?.data?(0,A.jsxs)("div",{className:"relative ml-5 border-l border-border/70 py-1 pl-3",children:[f.data.entries.map(f=>{let g=a.path?`${a.path}/${f.name}`:f.name,h={...a,path:g};if("directory"===f.type)return(0,A.jsx)(j3,{target:h,props:b,depth:c,name:f.name,skillName:d},g);let i=j1(b.selected,h),j=j1(b.pending,h);return(0,A.jsxs)(U.$,{variant:"ghost","aria-label":e("skillFile",{path:`${d}/${g}`}),"aria-pressed":i,title:g,className:(0,W.cn)("min-h-9 w-full justify-start text-left font-normal text-muted-foreground",i&&"font-medium",j&&"bg-muted text-foreground"),onClick:()=>void b.onOpenFile(h),children:["SKILL.md"===f.name?(0,A.jsx)(j$.A,{className:"size-3.5 shrink-0"}):(0,A.jsx)(jS,{className:"size-3.5 shrink-0"}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate",children:f.name}),j&&(0,A.jsx)(R.A,{className:"size-3.5 shrink-0 animate-spin"})]},g)}),0===f.data.entries.length&&(0,A.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:e("emptyFolder")}),f.data.truncated&&(0,A.jsx)("p",{className:"px-3 py-2 text-sm text-status-warning",children:e("folderTruncated")})]}):(0,A.jsx)("p",{role:"status",className:"px-4 py-2 text-xs text-muted-foreground",children:e("loadingFolder")})}function j3({target:a,props:b,depth:c,name:d,skillName:e}){let{t:f}=(0,Q.Bd)("skills"),[g,h]=(0,B.useState)(!1);return(0,A.jsxs)("div",{children:[(0,A.jsxs)(U.$,{variant:"ghost","aria-expanded":g,"aria-label":f("skillFolder",{path:`${e}/${a.path}`}),className:(0,W.cn)("min-h-9 w-full justify-start font-normal text-muted-foreground",g&&"bg-muted text-foreground"),onClick:()=>h(!g),children:[g?(0,A.jsx)(cn.A,{className:"size-3.5 shrink-0"}):(0,A.jsx)(bo.A,{className:"size-3.5 shrink-0"}),(0,A.jsx)(cd.A,{className:"size-3.5 shrink-0"}),(0,A.jsx)("span",{className:"truncate",children:d})]}),g&&(0,A.jsx)("div",{className:c>3?"-ml-3":void 0,children:(0,A.jsx)(j2,{target:a,props:b,depth:c+1,skillName:e})})]})}function j4({cwd:a,skill:b,props:c}){let{t:d}=(0,Q.Bd)("skills"),e=c.selected?.cwd===a&&c.selected.skillPath===b.skillPath,f=c.pending?.cwd===a&&c.pending.skillPath===b.skillPath,[g,h]=(0,B.useState)(null),i=g??e,j=async()=>{if(i)return void h(!1);let d=b.skillPath.replaceAll("\\","/").split("/").at(-1);await c.onOpenFile({cwd:a,skillPath:b.skillPath,path:d})&&h(!0)};return(0,A.jsxs)("div",{className:"py-0.5",children:[(0,A.jsxs)(U.$,{variant:"ghost","aria-label":d("skillName",{name:b.name}),"aria-expanded":i,title:`${b.description}
409
409
  ${b.skillPath}`,className:(0,W.cn)("min-h-14 w-full justify-start whitespace-normal text-left",i&&"bg-accent hover:bg-accent",e&&"text-foreground"),onClick:()=>void j(),children:[i?(0,A.jsx)(cn.A,{className:"size-3.5 shrink-0 text-muted-foreground"}):(0,A.jsx)(bo.A,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-medium",children:b.name}),b.description&&(0,A.jsx)("p",{className:"mt-0.5 truncate text-xs font-normal text-muted-foreground",children:b.description})]}),f?(0,A.jsx)(R.A,{className:"size-3.5 shrink-0 animate-spin text-muted-foreground"}):b.packageSource?(0,A.jsx)(j_,{"aria-label":d("packageSkill"),className:"size-3.5 shrink-0 text-muted-foreground"}):null]}),i&&(0,A.jsx)(j2,{target:{cwd:a,skillPath:b.skillPath,path:""},props:c,skillName:b.name})]})}function j5({cwd:a,name:b,props:c}){let{t:d}=(0,Q.Bd)("skills"),{locale:e}=(0,cu.i)(),f=c.selected?.cwd===a||c.pending?.cwd===a,[g,h]=(0,B.useState)(null),{onLoadScope:i}=c,j=c.scopes[jO(a)],k=c.query.trim().toLowerCase(),l=g??(null===a||c.focusedCwd===a||f),m=l||!!k,n=`${b} ${a??""}`.toLowerCase().includes(k),o=j?.data?.skills.filter(a=>!k||n||`${a.name} ${a.description}`.toLowerCase().includes(k))??[];if(k&&j?.data&&!o.length&&!n&&!j.error)return null;let p=null===a;return(0,A.jsxs)("section",{className:"mx-2 mt-2 min-w-0 border-b pb-2","aria-label":p?d("globalSkills"):d("projectSkills",{name:b}),children:[(0,A.jsxs)(U.$,{variant:"ghost",className:"min-h-14 w-full justify-start text-left","aria-label":d("skillsGroup",{name:p?d("global"):b}),"aria-expanded":m,onClick:()=>h(!l),children:[m?(0,A.jsx)(cn.A,{className:"size-4 shrink-0"}):(0,A.jsx)(bo.A,{className:"size-4 shrink-0"}),p?(0,A.jsx)(ch,{className:"size-4 shrink-0 text-primary"}):(0,A.jsx)(cd.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-semibold",children:p?d("globalSkills"):b}),a&&(0,A.jsx)("p",{title:a,className:"mt-1 truncate text-xs font-normal text-muted-foreground",children:a})]}),j?.loading?(0,A.jsx)(R.A,{className:"size-3.5 shrink-0 animate-spin text-muted-foreground"}):j?.data?(0,A.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground",children:k?o.length:j.data.skills.length}):null]}),m&&(0,A.jsxs)("div",{className:"px-1 py-1",children:[j?.error&&(0,A.jsxs)("p",{className:"px-3 py-2 text-xs text-destructive",children:[j.error,(0,A.jsx)(U.$,{variant:"ghost",size:"sm",onClick:()=>void c.onLoadScope(a),children:d("retryGroup")})]}),o.map(b=>(0,A.jsx)(j4,{cwd:a,skill:b,props:c},b.skillPath)),j?.data&&0===o.length&&!j.error&&(0,A.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground",children:d(k?"noSkillMatches":"noSkills")}),!!j?.data?.diagnostics.length&&(0,A.jsxs)("details",{className:"mx-2 mb-1 mt-2 rounded-md bg-muted p-2 text-sm text-muted-foreground",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-status-warning",children:d("diagnostics",{count:j.data.diagnostics.length})}),(0,A.jsx)("div",{className:"mt-2 space-y-3",children:j.data.diagnostics.map((a,b)=>(0,A.jsxs)("div",{children:[(0,A.jsx)("p",{className:"break-words",children:(0,ct.fD)(a.message,e)}),(0,A.jsx)("p",{className:"mt-1 break-all text-xs",children:a.path})]},`${a.path}:${b}`))})]})]})]})}function j6(a){let{t:b}=(0,Q.Bd)("skills");return(0,A.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,A.jsx)("div",{className:"shrink-0 border-b p-3",children:(0,A.jsxs)(j0.MG,{children:[(0,A.jsx)(j0.Sq,{children:(0,A.jsx)(bV.A,{className:"size-4"})}),(0,A.jsx)(j0.iV,{"aria-label":b("searchSkills"),value:a.query,onChange:b=>a.onQuery(b.target.value),placeholder:b("searchSkillsPlaceholder")})]})}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto overscroll-contain pb-4",children:[(0,A.jsx)(j5,{cwd:null,name:b("global"),props:a}),(0,A.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-1 pt-5",children:[(0,A.jsx)("span",{className:"h-px flex-1 bg-border"}),(0,A.jsx)("p",{className:"shrink-0 text-xs font-medium text-muted-foreground",children:b("workspaceCount",{count:a.projects.length})}),(0,A.jsx)("span",{className:"h-px flex-1 bg-border"})]}),a.projects.map(b=>(0,A.jsx)(j5,{cwd:b.cwd,name:b.projectName,props:a},b.cwd)),0===a.projects.length&&(0,A.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground",children:b("workspaceEmpty")})]})]})}function j7({projects:a,focusedCwd:b,onBeforeLeaveChange:c}){let{t:d}=(0,Q.Bd)("skills"),{clientId:e}=(0,bN.gM)(),f=(0,bG.G)(),g=(0,B.useMemo)(()=>({list:(a,b)=>jJ(e,jE,a,b),listFiles:(a,b)=>jJ(e,jF,a,b),getFile:(a,b)=>jJ(e,jG,a,b),async replaceFile(a){await jJ(e,jH,a)}}),[e]),h=function(a,b){let[c,d]=(0,B.useState)({}),[e,f]=(0,B.useState)({}),g=(0,B.useRef)(new Map),h=(0,B.useRef)(!0),i=(0,B.useCallback)(async b=>{let c=jO(b),e=`scope:${c}`;g.current.get(e)?.abort();let f=new AbortController;g.current.set(e,f),d(a=>({...a,[c]:{data:a[c]?.data??null,loading:!0,error:null}}));try{let e=await a.list({cwd:b},f.signal);!f.signal.aborted&&h.current&&d(a=>({...a,[c]:{data:e,loading:!1,error:null}}))}catch(a){!f.signal.aborted&&h.current&&d(b=>({...b,[c]:{data:b[c]?.data??null,loading:!1,error:a instanceof Error?a.message:jN("skillsReadFailed")}}))}finally{g.current.get(e)===f&&g.current.delete(e)}},[a]),j=(0,B.useCallback)(async b=>{let c=jP(b),d=`directory:${c}`;g.current.get(d)?.abort();let e=new AbortController;g.current.set(d,e),f(a=>({...a,[c]:{data:a[c]?.data??null,loading:!0,error:null}}));try{let d=await a.listFiles(b,e.signal);!e.signal.aborted&&h.current&&f(a=>({...a,[c]:{data:d,loading:!1,error:null}}))}catch(a){!e.signal.aborted&&h.current&&f(b=>({...b,[c]:{data:null,loading:!1,error:a instanceof Error?a.message:jN("directoryReadFailed")}}))}finally{g.current.get(d)===e&&g.current.delete(d)}},[a]);return JSON.stringify(b.map(a=>a.cwd)),{scopes:c,directories:e,loadScope:i,loadDirectory:j}}(g,a),{loadScope:i}=h,j=function(a,b){let{wrapLines:c}=(0,jq.TX)(),[d,e]=(0,B.useState)(null),f=(0,B.useRef)(null),g=(0,B.useRef)(!0),[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)(!1),n=(0,B.useRef)(null),o=(0,B.useRef)(!1),p=(0,B.useRef)(null),[q,r]=(0,B.useState)(!1),s=(0,B.useRef)(null),t=(0,B.useCallback)(a=>{g.current&&(f.current=a,e(a))},[]),u=(0,B.useCallback)(()=>{if(n.current)return n.current;let c=f.current;if(!c||c.file?.kind!=="text"||c.file.readOnlyReason)return Promise.resolve(!1);if(!jR(c))return Promise.resolve(!0);m(!0);let d=(async()=>{try{await a.replaceFile({...c.target,content:c.draft});let d=f.current;return d?.file?.kind==="text"&&d.target===c.target&&t({...d,file:{...d.file,content:c.draft},error:null}),g.current&&b(c.target.cwd),!0}catch(b){let a=f.current;return a?.target===c.target&&t({...a,error:b instanceof Error?b.message:jN("saveFailed")}),!1}finally{n.current=null,g.current&&m(!1)}})();return n.current=d,d},[t,a,b]),v=(0,B.useCallback)(async()=>{let a;if(n.current&&await n.current,!g.current)return!1;if(!jR(f.current))return!0;if(s.current)return s.current.promise;let b=new Promise(b=>{a=b});return s.current={promise:b,resolve:a},r(!0),b},[]),w=(0,B.useCallback)(async a=>{if(!s.current||n.current||"save"===a&&(!await u()||jR(f.current)))return;if("discard"===a){let a=f.current;a?.file?.kind==="text"&&t({...a,draft:jQ(a.file.content),error:null})}let b=s.current;s.current=null,r(!1),b?.resolve("cancel"!==a)},[t,u]),x=(0,B.useCallback)(async b=>{if(o.current)return!1;o.current=!0;try{if(!await v()||!g.current)return!1;p.current?.abort();let c=new AbortController;p.current=c,k(b),i(!0);try{let d=await a.getFile(b,c.signal);if(c.signal.aborted||!g.current)return!1;return t({target:b,file:d,draft:"text"===d.kind?jQ(d.content):"",error:null}),!0}catch(a){if(!c.signal.aborted){let c=f.current,d=a instanceof Error?a.message:jN("fileReadFailed");t(c?{...c,error:d}:{target:b,file:null,draft:"",error:d})}return!1}finally{g.current&&(k(null),i(!1))}}finally{o.current=!1}},[t,v,a]),y=(0,B.useCallback)(a=>{let b=f.current;b?.file?.kind!=="text"||b.file.readOnlyReason||b.draft===a||t({...b,draft:a})},[t]),z=jR(d);return{document:d,dirty:z,loading:h,openingTarget:j,saving:l,confirmOpen:q,wrapLines:c,setWrapLines:jK,change:y,open:x,save:u,beforeLeave:v,decide:w}}(g,(0,B.useCallback)(a=>{i(a)},[i])),{document:k,open:l}=j,[m,n]=(0,B.useState)(""),[o,p]=(0,B.useState)(!1),[q,r]=(0,B.useState)(!0);(0,B.useRef)(!1),(0,B.useRef)(b);let s=(0,B.useCallback)(async a=>{let b=await l(a);return b&&p(!1),b},[l]),t=async()=>{if(j.document)try{await jL(j.document.target),f.success(d("pathCopied"))}catch{f.error(d("copyFailed"))}},u=j.document?.target??null,v=u?h.scopes[jO(u.cwd)]?.data?.skills.find(a=>a.skillPath===u.skillPath)??null:null,w=Object.values(h.scopes).some(a=>a.loading)||Object.values(h.directories).some(a=>a.loading),x={projects:a,focusedCwd:b,query:m,onQuery:n,scopes:h.scopes,directories:h.directories,selected:u,pending:j.openingTarget,onLoadScope:h.loadScope,onLoadDirectory:h.loadDirectory,onOpenFile:s};return(0,A.jsxs)("section",{"aria-label":d("skillsManagement"),className:"flex h-full min-h-0 flex-col bg-background",children:[(0,A.jsxs)("header",{className:"flex min-h-12 shrink-0 items-center gap-2 border-b px-4 py-2",children:[(0,A.jsx)(U.$,{variant:"ghost",size:"icon",className:"lg:hidden","aria-label":d("openSkillsFolder"),onClick:()=>p(!0),children:(0,A.jsx)(ji.A,{className:"size-4"})}),(0,A.jsx)(U.$,{variant:"ghost",size:"icon",className:"hidden lg:inline-flex","aria-label":d(q?"collapseSkillsFolder":"expandSkillsFolder"),onClick:()=>r(!q),children:q?(0,A.jsx)(jn.A,{className:"size-4"}):(0,A.jsx)(jo.A,{className:"size-4"})}),(0,A.jsx)("h2",{className:"text-xl font-semibold",children:"Skills"}),(0,A.jsx)("div",{className:"flex-1"}),(0,A.jsxs)(U.$,{variant:"ghost",size:"sm",disabled:w,"aria-label":d("refreshSkillsFolder"),onClick:()=>{for(let a of Object.keys(h.scopes))h.loadScope(JSON.parse(a));for(let a of Object.keys(h.directories)){let[b,c,d]=JSON.parse(a);h.loadDirectory({cwd:b,skillPath:c,path:d})}},children:[w?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):(0,A.jsx)(bK.A,{className:"size-3.5"}),d("refreshFolder")]})]}),(0,A.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,A.jsx)("aside",{"aria-label":d("skillsProjectFolder"),className:(0,W.cn)("hidden w-64 shrink-0 border-r bg-sidebar xl:w-72",q&&"lg:block"),children:(0,A.jsx)(j6,{...x})}),(0,A.jsx)("main",{className:"min-h-0 min-w-0 flex-1",children:(0,A.jsx)(jY,{document:j.document,skill:v,dirty:j.dirty,loading:j.loading,saving:j.saving,opening:!!j.openingTarget,wrapLines:j.wrapLines,onWrapLines:()=>j.setWrapLines(!j.wrapLines),onChange:j.change,onSave:()=>void j.save(),onReload:()=>{u&&s(u)},onCopy:()=>void t()})})]}),(0,A.jsx)(b3.YV,{open:o,onOpenChange:p,children:(0,A.jsxs)(b3.hA,{className:"left-0 top-0 z-[130] h-dvh max-h-dvh w-[min(360px,calc(100dvw-2rem))] max-w-none translate-x-0 translate-y-0 rounded-l-none",finalFocus:!1,children:[(0,A.jsx)(b3.Hl,{className:"shrink-0 border-b px-4 py-3 pr-12",children:(0,A.jsx)(b3.YM,{children:d("skillsFolderTitle")})}),(0,A.jsx)("div",{className:"min-h-0 flex-1",children:(0,A.jsx)(j6,{...x})})]})}),(0,A.jsx)(jZ,{open:j.confirmOpen,saving:j.saving,path:u?.path??null,error:j.document?.error??null,onDecide:j.decide})]})}let j8=(0,S.A)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),j9=(0,S.A)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),ka=(0,S.A)("dices",[["rect",{width:"12",height:"12",x:"2",y:"10",rx:"2",ry:"2",key:"6agr2n"}],["path",{d:"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6",key:"1o487t"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 14h.01",key:"ssrbsk"}],["path",{d:"M15 6h.01",key:"cblpky"}],["path",{d:"M18 9h.01",key:"2061c0"}]]);var kb=c(99022);function kc(){let{t:a}=(0,Q.Bd)("common"),[b,c]=(0,B.useState)(null),d=(0,B.useRef)(null),e=(0,B.useRef)(null),f=a=>{let b=d.current;d.current=null,c(null),b?.(a)};return{confirm:a=>(d.current?.(!1),c(a),new Promise(a=>{d.current=a})),dialog:b?(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>{a||f(!1)},children:(0,A.jsxs)(b3.hA,{initialFocus:e,className:"z-[130] max-w-[27.5rem]",children:[(0,A.jsxs)(b3.Hl,{className:"p-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:b.title}),(0,A.jsx)(b3.uX,{className:"break-words",children:b.description})]}),b.content?(0,A.jsx)(b3._Y,{className:"grid grid-rows-[minmax(0,1fr)]",children:b.content}):null,(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{ref:e,variant:"outline",onClick:()=>f(!1),children:a("cancel")}),(0,A.jsx)(U.$,{variant:b.confirmVariant??"destructive",onClick:()=>f(!0),children:b.confirmLabel??a("delete")})]})]})}):null}}var kd=c(76499);async function ke(a,b,c,d,e){let f=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(c),signal:e});401===f.status&&window.location.replace("/login");let g=await f.json();if(!f.ok||0!==g.code||null===g.data)throw Error(0===g.code?(0,bS.B)({msg:"登录保护设置处理失败",i18n:{key:"auth:settingsFailed"}}):(0,bS.B)(g));return d.parse(g.data)}async function kf(a){await ke(a,"/api/auth/logout",{},kd.Xm),window.location.replace("/login")}async function kg(a,b){let c=kd.uZ.safeParse(b);if(!c.success)throw Error((0,bS.B)({msg:"密码不符合要求,请按输入框下方的规则调整。",i18n:{key:"auth:settingsInvalid"}}));await ke(a,"/api/auth-settings/replace",c.data,kd.Kc),window.location.replace(null===b.password?"/":"/login")}function kh(){let{t:a}=(0,Q.Bd)("auth"),b=function(){let{t:a}=(0,Q.Bd)("auth"),{clientId:b}=(0,bN.gM)(),{confirm:c,dialog:d}=kc(),[e,f]=(0,B.useState)(null),[g,h]=(0,B.useState)(!0),[i,j]=(0,B.useState)(!1),[k,l]=(0,B.useState)(!1),[m,n]=(0,B.useState)(null),[o,p]=(0,B.useState)(0),[q,r]=(0,B.useState)(""),s=(0,B.useRef)(!1),t=async()=>{if(!s.current&&e){s.current=!0,j(!0),n(null);try{await kg(b,{password:q})}catch(b){s.current=!1,j(!1),n(b instanceof Error?b.message:a("settingsFailed"))}}},u=async()=>{if(!s.current&&e){if(s.current=!0,!await c({title:a("disableTitle"),description:a("disableDescription"),confirmLabel:a("disable")})){s.current=!1;return}j(!0),n(null);try{await kg(b,{password:null})}catch(b){s.current=!1,j(!1),n(b instanceof Error?b.message:a("settingsFailed"))}}},v=async()=>{if(!s.current&&e?.enabled){s.current=!0,l(!0),n(null);try{await kf(b)}catch(b){s.current=!1,l(!1),n(b instanceof Error?b.message:a("logoutFailed"))}}};return{settings:e,loading:g,saving:i,signingOut:k,error:m,password:q,setPassword:r,save:t,generatePassword:()=>{if(!s.current)try{r(function(){for(;;){let a=Array.from(crypto.getRandomValues(new Uint8Array(16)),a=>"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@"[a%64]).join("");if(/[A-Z]/.test(a)&&/[a-z]/.test(a)&&/[0-9]/.test(a)&&/[!@]/.test(a))return a}}()),n(null)}catch{n(a("generatePasswordFailed"))}},disable:u,logout:v,dialog:d,retry:()=>{h(!0),n(null),p(a=>a+1)}}}(),c=b.settings?.enabled??!1,d=b.saving||b.signingOut;return(0,A.jsxs)("section",{"aria-labelledby":"auth-settings-title",className:"@container min-w-0 space-y-6",children:[(0,A.jsx)("h2",{id:"auth-settings-title",className:"text-xl font-semibold",children:a("settings:loginProtection")}),b.loading?(0,A.jsx)("p",{className:"text-sm text-muted-foreground",role:"status",children:a("common:loading")}):b.settings?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 rounded-xl bg-muted p-4",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,A.jsx)(c?bL:j8,{className:"size-5 shrink-0","aria-hidden":"true"}),(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("p",{className:"text-sm font-semibold",children:a("protection")}),(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:a(c?"enabled":"disabled")})]})]}),c?(0,A.jsxs)(U.$,{type:"button",variant:"outline",className:"border-destructive/50 text-destructive hover:bg-destructive/10 hover:text-destructive",disabled:d,"aria-busy":b.signingOut,onClick:()=>void b.logout(),children:[b.signingOut?(0,A.jsx)(R.A,{className:"motion-safe:animate-spin","aria-hidden":"true"}):(0,A.jsx)(j9,{"aria-hidden":"true"}),a(b.signingOut?"signingOut":"logout")]}):null]}),(0,A.jsxs)("form",{className:"grid gap-4 @min-[36rem]:grid-cols-[10rem_minmax(0,1fr)] @min-[36rem]:gap-6","aria-busy":d,onSubmit:a=>{a.preventDefault(),b.save()},children:[(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:a(c?"changePassword":"setPassword")}),c?null:(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:a("publicAccess")})]}),(0,A.jsxs)("div",{className:"min-w-0 max-w-[40rem] space-y-4",children:[(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("label",{className:"block text-sm font-medium",htmlFor:"auth-password",children:a(c?"newPassword":"password")}),(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",disabled:d,title:a("generatePasswordHint"),onClick:b.generatePassword,children:[(0,A.jsx)(ka,{"aria-hidden":"true"}),a("generatePassword")]})]}),(0,A.jsx)(kb.k,{id:"auth-password",name:"password",className:"[&::-ms-reveal]:hidden",autoComplete:"new-password",minLength:12,maxLength:64,required:!0,disabled:d,value:b.password,"aria-describedby":`auth-password-hint${b.error?" auth-settings-error":""}`,onChange:a=>b.setPassword(a.target.value)}),(0,A.jsx)("p",{id:"auth-password-hint",className:"text-sm text-muted-foreground",children:a("passwordHint")})]}),b.error?(0,A.jsx)("p",{id:"auth-settings-error",className:"text-sm text-destructive",role:"alert",children:b.error}):null,(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:a("saveEffect")}),(0,A.jsxs)(U.$,{type:"submit",disabled:d,children:[b.saving?(0,A.jsx)(R.A,{className:"motion-safe:animate-spin","aria-hidden":"true"}):null,a(b.saving?"saving":c?"saveAndSignIn":"enable")]})]})]}),c?(0,A.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4 border-t pt-4",children:[(0,A.jsxs)("details",{className:"group min-w-0 flex-1 text-sm",children:[(0,A.jsxs)("summary",{className:"flex min-h-8 w-fit cursor-pointer items-center gap-1 rounded-sm text-muted-foreground outline-none hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:[(0,A.jsx)(bo.A,{className:"size-4 shrink-0 transition-transform group-open:rotate-90","aria-hidden":"true"}),a("recovery")]}),(0,A.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,A.jsx)("p",{className:"text-muted-foreground",children:a("recoveryDescription")}),(0,A.jsx)("code",{className:"block break-all text-xs",children:b.settings.configPath})]})]}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",className:"text-muted-foreground",disabled:d,onClick:()=>void b.disable(),children:a("disable")})]}):null]}):(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:b.error}),(0,A.jsx)(U.$,{variant:"outline",onClick:b.retry,children:a("common:retry")})]}),b.dialog]})}var ki=c(82589),kj=c(26213);let kk=Object.freeze({apply:(0,F.Vc)({path:"app-runtime/apply",inputSchema:kj.$C,outputSchema:kj.Pq}),update:(0,F._G)({path:"app-runtime/update",bodySchema:kj.YT})});var kl=c(37222);async function km(a,b,c,d){let e=(0,kl.fx)();if(!e)return"cancelled";let f=a!==e.locale;if(f&&!window.confirm(b))return"cancelled";if(f&&d&&!await d())return"blocked";try{await c.request(kk.apply,{key:"settings",update:{region:{locale:a}}})}catch{return"save-failed"}return f&&window.location.reload(),"changed"}async function kn(a,b){try{return await b.request(kk.apply,{key:"settings",update:{region:{timeZone:a}}}),!0}catch{return!1}}function ko({canLeave:a}){let{t:b}=(0,Q.Bd)("settings"),c=(0,cu.i)(),{appSocket:d}=(0,bN.gM)(),[e,f]=(0,B.useState)(null),[g,h]=(0,B.useState)(()=>new Date),i=(0,B.useMemo)(()=>[...["UTC",...Intl.supportedValuesOf("timeZone").filter(a=>"UTC"!==a)].map(a=>({value:a,label:a.replaceAll("_"," ")}))],[]),j=async c=>{f(null);let e=await km(c,b("common:reloadConfirm"),d,a);"save-failed"===e&&f(b("common:localeError")),"blocked"===e&&f(b("common:reloadBlocked"))},k=async a=>{f(await kn(a,d)?null:b("common:timeZoneError"))};return(0,A.jsxs)("section",{className:"@container min-w-0 space-y-6","aria-labelledby":"region-settings-title",children:[(0,A.jsx)("h2",{id:"region-settings-title",className:"text-xl font-semibold",children:b("region")}),(0,A.jsxs)("div",{className:"grid max-w-[40rem] gap-6 @min-[32rem]:grid-cols-2",children:[(0,A.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,A.jsx)("label",{className:"block text-sm font-medium",htmlFor:"region-language",children:b("language")}),(0,A.jsxs)(bO.l6,{value:c.localePreference,onValueChange:a=>{("zh-CN"===a||"en"===a)&&j(a)},children:[(0,A.jsx)(bO.bq,{id:"region-language",className:"w-full",children:(0,A.jsx)(bO.yv,{children:"zh-CN"===c.localePreference?b("common:chinese"):"English"})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[120]",children:[(0,A.jsx)(bO.eb,{value:"zh-CN",children:b("common:chinese")}),(0,A.jsx)(bO.eb,{value:"en",children:"English"})]})]}),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:b("currentLanguage",{locale:c.locale})}),c.pendingLocale&&(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:b("common:languagePending")}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void j(c.localePreference),children:b("reloadLanguage")})]})]}),(0,A.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,A.jsx)("span",{className:"block text-sm font-medium",children:b("timeZone")}),(0,A.jsx)(ki.b,{value:c.timeZonePreference,options:i,onChange:a=>void k(a),ariaLabel:b("timeZone"),searchPlaceholder:b("searchTimeZones"),emptyText:b("common:unavailable"),className:"w-full"}),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:b("currentTimeZone",{timeZone:c.timeZone})})]})]}),(0,A.jsxs)("div",{className:"space-y-1 rounded-xl bg-muted p-4",children:[(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:b("timeExample")}),(0,A.jsx)("p",{className:"text-sm font-medium tabular-nums",children:new Intl.DateTimeFormat("en"===c.locale?"en-US":"zh-CN",{timeZone:c.timeZone,year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).format(g)})]}),e&&(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:e})]})}let kp=(0,S.A)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),kq=(0,S.A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),kr=(0,S.A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);var ks=c(84524);function kt({label:a,value:b,options:c,onChange:d,layout:e="list",disabled:f=!1}){let g=c.some(a=>a.value===b);return(0,A.jsx)("div",{role:"radiogroup","aria-label":a,onKeyDown:a=>{if(f||a.nativeEvent.isComposing||a.altKey||a.ctrlKey||a.metaKey)return;let e=["ArrowRight","ArrowDown"].includes(a.key)?1:["ArrowLeft","ArrowUp"].includes(a.key)?-1:0;if(!e&&"Home"!==a.key&&"End"!==a.key)return;a.preventDefault();let g=Math.max(0,c.findIndex(a=>a.value===b)),h="Home"===a.key?0:"End"===a.key?c.length-1:(g+e+c.length)%c.length,i=c[h];i&&(d(i.value),a.currentTarget.querySelectorAll('[role="radio"]')[h]?.focus())},className:(0,W.cn)("segmented"===e?"inline-flex max-w-full flex-wrap gap-0.5 rounded-lg bg-muted p-0.5":"grid gap-2"),children:c.map((a,c)=>{let h=a.value===b,i=a.icon;return(0,A.jsxs)("button",{type:"button",role:"radio","aria-checked":h,tabIndex:h||!g&&0===c?0:-1,disabled:f,"data-testid":a.testId,onClick:()=>d(a.value),className:(0,W.cn)("flex min-w-0 cursor-pointer items-center gap-2 text-left text-sm leading-5 outline-none transition-colors duration-150 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset","segmented"===e?"min-h-7 rounded-md px-2 py-0.5":"min-h-9 rounded-lg border border-transparent px-3 py-2",h?"segmented"===e?"bg-card text-card-foreground shadow-sm":"border-border bg-accent text-accent-foreground":"text-muted-foreground hover:bg-foreground/8 hover:text-foreground"),children:[i?(0,A.jsx)(i,{className:"size-4 shrink-0"}):null,(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsx)("span",{className:"block font-medium",children:a.label}),a.description?(0,A.jsx)("span",{className:"mt-1 block text-sm font-normal text-muted-foreground",children:a.description}):null]}),"list"===e?(0,A.jsx)(bp.A,{"aria-hidden":"true",className:(0,W.cn)("size-4 shrink-0",!h&&"invisible")}):null]},a.value)})})}var ku=c(72062),kv=c(2191),kw=c(84074),kx=c(96436),ky=c(53437),kz=c(47836),kA=c.n(kz);let kB={code:{copy:!0,download:!1}};function kC({href:a,children:b,...c}){return delete c.node,(0,A.jsx)("a",{...c,href:a,target:"_blank",rel:"noopener noreferrer",children:b})}function kD({src:a,alt:b,className:c,onError:d,...e}){let{t:f}=(0,Q.Bd)("conversation"),[g,h]=(0,B.useState)(!1),[i,j]=(0,B.useState)(!1),k=b||f("image"),l=(0,B.useMemo)(()=>"string"==typeof a&&a?[{src:a,alt:k}]:[],[k,a]);if(delete e.node,0===l.length)return null;if(i)return(0,A.jsx)("span",{className:kA().imageFallback,children:f("imageUnavailable")});let m=l[0].src;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("button",{type:"button",className:kA().imageTrigger,"aria-label":f("previewImage",{name:k}),onClick:()=>h(!0),children:[(0,A.jsx)("img",{...e,src:m,alt:k,"data-streamdown":"image",className:(0,W.cn)(kA().image,c),onError:a=>{j(!0),d?.(a)}}),(0,A.jsx)("span",{className:kA().imageAction,"aria-hidden":"true",children:(0,A.jsx)(ah.A,{className:"size-4"})})]}),g?(0,A.jsx)(jW.k,{mode:"modal",open:!0,slides:l,ariaLabel:f("imagePreview"),onClose:()=>h(!1)}):null]})}function kE({className:a,isAnimating:b,components:c,...d}){let e=(0,bG.G)(),{t:f}=(0,Q.Bd)("conversation"),{locale:g}=(0,cu.i)();return(0,A.jsx)("div",{className:"contents",onClickCapture:a=>{if("u">typeof navigator&&"function"==typeof navigator.clipboard?.writeText)return;let b=function(a){if(!(a instanceof Element))return null;let b=a.closest('[data-streamdown="code-block-copy-button"]');return b?b.closest('[data-streamdown="code-block"]')?.querySelector('[data-streamdown="code-block-body"]')?.textContent??null:null}(a.target);null!==b&&(a.preventDefault(),a.stopPropagation(),(0,cV.x)(b).then(a=>{a||e.error(f("codeCopyFailed"))}))},children:(0,A.jsx)(iu,{className:(0,W.cn)("space-y-0",kA().markdown,ky.om,a),controls:kB,isAnimating:b,lineNumbers:!1,allowedTags:ky.IV,remarkPlugins:ky.XC,components:{...ky.e6,...c,a:kC,img:kD},...d,translations:"zh-CN"===g?kx.X:void 0})})}let kF=[{value:"system",label:"common:system",icon:kp},{value:"light",label:"themeLight",icon:kq},{value:"dark",label:"themeDark",icon:kr}],kG=[{value:"compact",label:"sizeCompact"},{value:"standard",label:"sizeStandard"},{value:"large",label:"sizeLarge"}];function kH(){let{t:a}=(0,Q.Bd)("settings"),b=(0,B.useSyncExternalStore)(ku.Cy,ku.Is,()=>ks.Pl),c=(0,B.useSyncExternalStore)(kw.wm,kw.Ev,()=>kv.Y8);return(0,A.jsxs)("section",{"aria-labelledby":"settings-appearance-title",className:"@container grid gap-6",children:[(0,A.jsx)("h2",{id:"settings-appearance-title",className:"text-xl font-semibold",children:a("appearance")}),(0,A.jsxs)("div",{className:"grid min-w-0 gap-6 @min-[40rem]:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]",children:[(0,A.jsxs)("div",{className:"min-w-0 space-y-4",children:[(0,A.jsxs)("div",{className:"space-y-2 border-b pb-4",children:[(0,A.jsx)("h3",{className:"text-sm font-medium",children:a("theme")}),(0,A.jsx)(kt,{label:a("theme"),layout:"segmented",value:b,options:kF.map(b=>({...b,label:a(b.label)})),onChange:ku.VS})]}),(0,A.jsxs)("div",{className:"space-y-2",children:[(0,A.jsx)("h3",{className:"text-sm font-medium",children:a("displaySize")}),(0,A.jsx)(kt,{label:a("displaySize"),layout:"segmented",value:c,options:kG.map(b=>({...b,label:a(b.label)})),onChange:kw.$y})]})]}),(0,A.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,A.jsx)("h3",{className:"text-sm font-medium",children:a("displayPreview")}),(0,A.jsx)("div",{"aria-label":a("displayPreview"),className:"min-w-0 rounded-xl bg-muted p-4",children:(0,A.jsx)(kE,{mode:"static",isAnimating:!1,children:a("displayPreviewContent")})})]})]})]})}let kI=(0,S.A)("circle-minus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),kJ=(0,S.A)("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]),kK=(0,S.A)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),kL=(0,S.A)("image-down",[["path",{d:"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",key:"9csbqa"}],["path",{d:"m14 19 3 3v-5.5",key:"9ldu5r"}],["path",{d:"m17 22 3-3",key:"1nkfve"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]);var kM=c(3935),kN=c(52660);let kO=new Set,kP="activate";function kQ(){}function kR(){return kQ(),kP}function kS(a){if(kQ(),kP!==a){kP=a;try{window.localStorage.setItem("pi-super:new-work-session-behavior",a)}catch{}for(let a of[...kO])a()}}function kT(a){return kO.add(a),()=>kO.delete(a)}let kU=[{value:"none",label:"behaviorNone",description:"behaviorNoneDescription",icon:kI,testId:"new-work-session-behavior-none"},{value:"activate",label:"behaviorActivate",description:"behaviorActivateDescription",icon:kJ,testId:"new-work-session-behavior-activate"},{value:"pin",label:"behaviorPin",description:"behaviorPinDescription",icon:kK,testId:"new-work-session-behavior-pin"}],kV=[{value:"compressed",label:"imageCompressed",description:"imageCompressedDescription",icon:kL,testId:"image-preview-mode-compressed"},{value:"original",label:"imageOriginal",description:"imageOriginalDescription",icon:kM.A,testId:"image-preview-mode-original"}];function kW(){let{t:a}=(0,Q.Bd)("settings"),b=(0,B.useSyncExternalStore)(kT,kR,kR),c=(0,B.useSyncExternalStore)(kN.ku,kN.Wq,kN.Wq);return(0,A.jsxs)("section",{"aria-labelledby":"settings-habits-title",className:"@container grid min-w-0 gap-6",children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("h2",{id:"settings-habits-title",className:"text-xl font-semibold",children:a("habits")}),(0,A.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("browserOnly")})]}),(0,A.jsxs)("div",{className:"grid min-w-0 gap-6 lg:@min-[40rem]:grid-cols-2",children:[(0,A.jsxs)("section",{className:"hidden min-w-0 lg:block","aria-labelledby":"new-session-behavior-title",children:[(0,A.jsx)("h3",{id:"new-session-behavior-title",className:"mb-3 text-sm font-semibold",children:a("newSessionBehavior")}),(0,A.jsx)(kt,{label:a("newSessionBehavior"),value:b,options:kU.map(b=>({...b,label:a(b.label),description:a(b.description)})),onChange:kS}),(0,A.jsx)("p",{className:"mt-3 text-sm text-muted-foreground",children:a("desktopOnlyBehavior")})]}),(0,A.jsxs)("section",{className:"min-w-0 lg:border-t lg:pt-4 lg:@min-[40rem]:border-t-0 lg:@min-[40rem]:border-l lg:@min-[40rem]:pt-0 lg:@min-[40rem]:pl-6","aria-labelledby":"image-preview-mode-title",children:[(0,A.jsx)("h3",{id:"image-preview-mode-title",className:"mb-3 text-sm font-semibold",children:a("imagePreviewMode")}),(0,A.jsx)(kt,{label:a("imagePreviewMode"),value:c,options:kV.map(b=>({...b,label:a(b.label),description:a(b.description)})),onChange:kN.lU}),(0,A.jsx)("p",{className:"mt-3 text-sm text-muted-foreground",children:a("imagePreviewApply")})]})]})]})}let kX=(0,S.A)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),kY={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function kZ({projectDefaults:a}){let{t:b}=(0,Q.Bd)("settings");return(0,A.jsx)("ul",{className:"space-y-3 px-4 pb-4",children:a.map(({cwd:a,from:c,to:d})=>(0,A.jsxs)("li",{className:"space-y-1",children:[(0,A.jsx)("p",{className:"break-all font-medium",children:a}),(0,A.jsxs)("p",{className:"break-all text-muted-foreground",children:[c.provider,"/",c.modelId," \xb7 ",b(kY[c.thinkingLevel]),(0,A.jsx)("span",{className:"mx-1.5",children:"→"}),(0,A.jsx)("span",{className:"text-foreground",children:d?(0,A.jsxs)(A.Fragment,{children:[d.provider,"/",d.modelId," \xb7 ",b(kY[d.thinkingLevel])]}):b("clearProjectDefault")})]})]},a))})}var k$=c(175),k_=c(41994);let k0=E.Yj().trim().min(1).max(128),k1=E.Yj().trim().min(1).max(256),k2=E.Yj().trim().min(1).max(256),k3=E.Yj().trim().min(1).nullable(),k4=E.g1(E.Yj().trim().min(1),E.Yj()),k5=E.Yj().trim().min(1).max(128),k6=E.g1(E.Yj(),E.Pq()),k7=E.Ik({level:k$.$,providerValue:E.Yj().trim().min(1).nullable()}).strict(),k8=E.Ik({input:E.ai().nonnegative().finite(),output:E.ai().nonnegative().finite(),cacheRead:E.ai().nonnegative().finite(),cacheWrite:E.ai().nonnegative().finite()}).strict(),k9=E.Ik({supportsDeveloperRole:E.zM().nullable(),thinkingFormat:E.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:E.zM().nullable()}).strict(),la=E.Ik({modelId:k1,name:k2,api:k5.nullable(),baseUrl:k3,reasoning:E.zM(),thinkingLevels:E.YO(k7).min(1).max(7),input:E.YO(E.k5(["text","image"])).min(1).max(2),contextWindow:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:k8.nullable(),headers:k4,compat:k9.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),lb=E.Ik({provider:k0,name:k3,baseUrl:k3,api:k5.nullable(),apiKey:E.Yj().nullable(),authHeader:E.zM().nullable(),headers:k4,models:E.YO(la)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),lc=E.Ik({provider:k0,modelId:k1,thinkingLevel:k$.$,color:E.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),ld=E.Ik({provider:k0,modelId:k1,name:k2,input:E.YO(E.k5(["text","image"])).min(1).max(2),contextWindow:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:E.YO(k$.$).min(1).max(7)}).strict(),le=E.Ik({provider:k0,modelId:k1,thinkingLevel:k$.$}).strict(),lf=E.Ik({contextWindow:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:k8.partial().optional()}).strict(),lg=E.Ik({provider:k0,modelId:k1,overrides:lf}).strict(),lh=E.Ik({provider:k0,name:k2,loggedIn:E.zM(),subscription:E.zM(),models:E.YO(la)}).strict();E.Ik({}).strict();let li=E.Ik({providers:E.YO(lb),presets:E.YO(lc),models:E.YO(ld),nativeConfig:k6,accountModels:E.YO(lg),accounts:E.YO(lh)}).strict(),lj=E.Ik({provider:k0,modelId:k1}).strict(),lk=E.Ik({from:lj,to:lj}).strict(),ll=E.Ik({providers:E.YO(lb).optional(),presets:E.YO(lc).optional(),accountModels:E.YO(lg).optional(),modelReplacements:E.YO(lk).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),lm=E.KC([ll,E.Ik({nativeConfig:k6}).strict()]),ln=E.Ik({}).strict(),lo=E.Ik({projectDefaults:E.YO(E.Ik({cwd:jr.m4,from:le,to:le.nullable()}).strict())}).strict(),lp=E.Ik({query:E.Yj().trim().max(256),refresh:E.zM(),page:E.Ik({index:E.ai().int().positive(),size:E.ai().int().positive().max(100)}).strict()}).strict(),lq=E.Ik({reasoning:E.zM(),thinkingLevels:E.YO(k7).min(1).max(7),input:E.YO(E.k5(["text","image"])).min(1).max(2),contextWindow:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:E.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:k8.nullable()}).strict(),lr=E.Ik({provider:k0,providerName:k2,modelId:k1,official:E.zM(),defaults:lq}).strict(),ls=E.Ik({referenceId:E.Yj().trim().min(1).max(512),name:k2,match:E.k5(["exact","similar"]).nullable(),sources:E.YO(lr).min(1)}).strict(),lt=E.Ik({updatedAt:k_.k,refreshResult:E.k5(["not-requested","updated","unchanged","partial","cached"]),page:E.Ik({index:E.ai().int().positive(),size:E.ai().int().positive(),total:E.ai().int().nonnegative()}).strict(),models:E.YO(ls)}).strict();E.Ik({cwd:jr.m4}).strict();let lu=E.Ik({cwd:jr.m4,default:le.nullable(),models:E.YO(ld)}).strict(),lv=E.Ik({cwd:jr.m4,default:le.nullable()}).strict(),lw=E.Ik({}).strict();var lx=c(59411);let ly=null,lz=null,lA=new Map;function lB(a){if(null===a)return"<root>";let b=a.replaceAll("\\","/");return/^[A-Za-z]:\//.test(b)?b.toLowerCase():b}function lC(){}function lD(a,b){try{window.localStorage.setItem(a,JSON.stringify(b))}catch{}}function lE(a){ly=a,lD("pi-desk:pi-directories",a)}function lF(){}function lG(a){return lF(),lA.get(lB(a))??null}let lH=new Map;function lI(a){let b,c=lu.safeParse(a);if(!c.success)return;let d=(b=c.data.cwd.replaceAll("\\","/"),/^[A-Za-z]:\//.test(b)?b.toLowerCase():b);for(lH.delete(d),lH.set(d,c.data);lH.size>64;){let a=lH.keys().next().value;if(void 0===a)break;lH.delete(a)}try{window.localStorage.setItem("pi-desk:project-model-defaults",JSON.stringify(Object.fromEntries(lH)))}catch{}}function lJ(a){let b=lm.safeParse(a);if(!b.success){let a=b.error.issues[0]?.path.at(-1);if("modelId"===a)throw Error("请填写模型 ID 后再保存配置。");if("provider"===a)throw Error("请填写 Provider ID 后再保存配置。");throw Error("模型配置不完整或格式不正确,请检查必填字段和数值。")}return b.data}E.KC([E.k5(["appearance","region","habits","auth","models","mcp-settings","capability-modes","skills","plugins","about"]),E.Uy(["plugin:",E.Yj(),":",E.Yj()])]),E.k5(["providers","presets","project-default"]);function lK({open:a,text:b,error:c,saving:d,dirty:e,onChange:f,onClose:g,onSave:h}){let{t:i}=(0,Q.Bd)("settings");return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>{a||g()},children:(0,A.jsxs)(b3.hA,{className:"max-w-[52rem]",initialFocus:!1,showCloseButton:!d,children:[(0,A.jsxs)(b3.Hl,{className:"border-b px-4 py-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:i("nativeConfig")}),(0,A.jsx)(b3.uX,{children:i("nativeConfigScope")})]}),(0,A.jsx)(b3._Y,{className:"max-h-[70dvh]",children:(0,A.jsxs)("div",{className:"space-y-3 p-4",children:[(0,A.jsx)(iA.T,{"aria-label":i("nativeConfigEditor"),value:b,disabled:d,spellCheck:!1,autoCapitalize:"none",autoCorrect:"off",className:"min-h-[min(28rem,50dvh)] resize-y font-mono text-sm",onChange:a=>f(a.target.value)}),c?(0,A.jsx)("p",{role:"alert",className:"break-words text-sm text-destructive",children:c}):null]})}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",disabled:d,onClick:g,children:i("cancel",{ns:"common"})}),(0,A.jsxs)(U.$,{type:"button",disabled:d||!e,onClick:h,children:[d?(0,A.jsx)(R.A,{className:"animate-spin"}):null,i(d?"savingModels":"saveNativeConfig")]})]})]})})}var lL=c(71794);let lM="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function lN(a){let b=Object.prototype.toString.call(a);return"[object Window]"===b||"[object global]"===b}function lO(a){return"nodeType"in a}function lP(a){var b,c;return a?lN(a)?a:lO(a)&&null!=(b=null==(c=a.ownerDocument)?void 0:c.defaultView)?b:window:window}function lQ(a){let{Document:b}=lP(a);return a instanceof b}function lR(a){return!lN(a)&&a instanceof lP(a).HTMLElement}function lS(a){return a instanceof lP(a).SVGElement}function lT(a){return a?lN(a)?a.document:lO(a)?lQ(a)?a:lR(a)||lS(a)?a.ownerDocument:document:document:document}let lU=lM?B.useLayoutEffect:B.useEffect;function lV(a){let b=(0,B.useRef)(a);return lU(()=>{b.current=a}),(0,B.useCallback)(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}function lW(a,b){void 0===b&&(b=[a]);let c=(0,B.useRef)(a);return lU(()=>{c.current!==a&&(c.current=a)},b),c}function lX(a,b){let c=(0,B.useRef)();return(0,B.useMemo)(()=>{let b=a(c.current);return c.current=b,b},[...b])}function lY(a){let b=lV(a),c=(0,B.useRef)(null),d=(0,B.useCallback)(a=>{a!==c.current&&(null==b||b(a,c.current)),c.current=a},[]);return[c,d]}function lZ(a){let b=(0,B.useRef)();return(0,B.useEffect)(()=>{b.current=a},[a]),b.current}let l$={};function l_(a,b){return(0,B.useMemo)(()=>{if(b)return b;let c=null==l$[a]?0:l$[a]+1;return l$[a]=c,a+"-"+c},[a,b])}function l0(a){return function(b){for(var c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];return d.reduce((b,c)=>{for(let[d,e]of Object.entries(c)){let c=b[d];null!=c&&(b[d]=c+a*e)}return b},{...b})}}let l1=l0(1),l2=l0(-1);function l3(a){if(!a)return!1;let{KeyboardEvent:b}=lP(a.target);return b&&a instanceof b}function l4(a){if(function(a){if(!a)return!1;let{TouchEvent:b}=lP(a.target);return b&&a instanceof b}(a)){if(a.touches&&a.touches.length){let{clientX:b,clientY:c}=a.touches[0];return{x:b,y:c}}else if(a.changedTouches&&a.changedTouches.length){let{clientX:b,clientY:c}=a.changedTouches[0];return{x:b,y:c}}}return"clientX"in a&&"clientY"in a?{x:a.clientX,y:a.clientY}:null}let l5=Object.freeze({Translate:{toString(a){if(!a)return;let{x:b,y:c}=a;return"translate3d("+(b?Math.round(b):0)+"px, "+(c?Math.round(c):0)+"px, 0)"}},Scale:{toString(a){if(!a)return;let{scaleX:b,scaleY:c}=a;return"scaleX("+b+") scaleY("+c+")"}},Transform:{toString(a){if(a)return[l5.Translate.toString(a),l5.Scale.toString(a)].join(" ")}},Transition:{toString(a){let{property:b,duration:c,easing:d}=a;return b+" "+c+"ms "+d}}}),l6="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",l7={display:"none"};function l8(a){let{id:b,value:c}=a;return C().createElement("div",{id:b,style:l7},c)}function l9(a){let{id:b,announcement:c,ariaLiveType:d="assertive"}=a;return C().createElement("div",{id:b,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":d,"aria-atomic":!0},c)}let ma=(0,B.createContext)(null),mb={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},mc={onDragStart(a){let{active:b}=a;return"Picked up draggable item "+b.id+"."},onDragOver(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was moved over droppable area "+c.id+".":"Draggable item "+b.id+" is no longer over a droppable area."},onDragEnd(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was dropped over droppable area "+c.id:"Draggable item "+b.id+" was dropped."},onDragCancel(a){let{active:b}=a;return"Dragging was cancelled. Draggable item "+b.id+" was dropped."}};function md(a){var b;let c,{announcements:d=mc,container:e,hiddenTextDescribedById:f,screenReaderInstructions:g=mb}=a,{announce:h,announcement:i}=function(){let[a,b]=(0,B.useState)("");return{announce:(0,B.useCallback)(a=>{null!=a&&b(a)},[]),announcement:a}}(),j=l_("DndLiveRegion"),[k,l]=(0,B.useState)(!1);if((0,B.useEffect)(()=>{l(!0)},[]),b=(0,B.useMemo)(()=>({onDragStart(a){let{active:b}=a;h(d.onDragStart({active:b}))},onDragMove(a){let{active:b,over:c}=a;d.onDragMove&&h(d.onDragMove({active:b,over:c}))},onDragOver(a){let{active:b,over:c}=a;h(d.onDragOver({active:b,over:c}))},onDragEnd(a){let{active:b,over:c}=a;h(d.onDragEnd({active:b,over:c}))},onDragCancel(a){let{active:b,over:c}=a;h(d.onDragCancel({active:b,over:c}))}}),[h,d]),c=(0,B.useContext)(ma),(0,B.useEffect)(()=>{if(!c)throw Error("useDndMonitor must be used within a children of <DndContext>");return c(b)},[b,c]),!k)return null;let m=C().createElement(C().Fragment,null,C().createElement(l8,{id:f,value:g.draggable}),C().createElement(l9,{id:j,announcement:i}));return e?(0,lL.createPortal)(m,e):m}function me(){}function mf(a,b){return(0,B.useMemo)(()=>({sensor:a,options:null!=b?b:{}}),[a,b])}function mg(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,B.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(h=q||(q={})).DragStart="dragStart",h.DragMove="dragMove",h.DragEnd="dragEnd",h.DragCancel="dragCancel",h.DragOver="dragOver",h.RegisterDroppable="registerDroppable",h.SetDroppableDisabled="setDroppableDisabled",h.UnregisterDroppable="unregisterDroppable";let mh=Object.freeze({x:0,y:0});function mi(a,b){return Math.sqrt(Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2))}function mj(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return c-d}function mk(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return d-c}function ml(a){let{left:b,top:c,height:d,width:e}=a;return[{x:b,y:c},{x:b+e,y:c},{x:b,y:c+d},{x:b+e,y:c+d}]}function mm(a,b){if(!a||0===a.length)return null;let[c]=a;return b?c[b]:c}function mn(a,b,c){return void 0===b&&(b=a.left),void 0===c&&(c=a.top),{x:b+.5*a.width,y:c+.5*a.height}}let mo=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=mn(b,b.left,b.top),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=mi(mn(d),e);f.push({id:b,data:{droppableContainer:a,value:c}})}}return f.sort(mj)},mp=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=[];for(let a of d){let{id:d}=a,f=c.get(d);if(f){let c=function(a,b){let c=Math.max(b.top,a.top),d=Math.max(b.left,a.left),e=Math.min(b.left+b.width,a.left+a.width),f=Math.min(b.top+b.height,a.top+a.height);if(d<e&&c<f){let g=b.width*b.height,h=a.width*a.height,i=(e-d)*(f-c);return Number((i/(g+h-i)).toFixed(4))}return 0}(f,b);c>0&&e.push({id:d,data:{droppableContainer:a,value:c}})}}return e.sort(mk)};function mq(a,b){return a&&b?{x:a.left-b.left,y:a.top-b.top}:mh}let mr=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];return c.reduce((a,b)=>({...a,top:a.top+ +b.y,bottom:a.bottom+ +b.y,left:a.left+ +b.x,right:a.right+ +b.x}),{...a})},ms={ignoreTransform:!1};function mt(a,b){void 0===b&&(b=ms);let c=a.getBoundingClientRect();if(b.ignoreTransform){let{transform:b,transformOrigin:d}=lP(a).getComputedStyle(a);b&&(c=function(a,b,c){let d=function(a){if(a.startsWith("matrix3d(")){let b=a.slice(9,-1).split(/, /);return{x:+b[12],y:+b[13],scaleX:+b[0],scaleY:+b[5]}}if(a.startsWith("matrix(")){let b=a.slice(7,-1).split(/, /);return{x:+b[4],y:+b[5],scaleX:+b[0],scaleY:+b[3]}}return null}(b);if(!d)return a;let{scaleX:e,scaleY:f,x:g,y:h}=d,i=a.left-g-(1-e)*parseFloat(c),j=a.top-h-(1-f)*parseFloat(c.slice(c.indexOf(" ")+1)),k=e?a.width/e:a.width,l=f?a.height/f:a.height;return{width:k,height:l,top:j,right:i+k,bottom:j+l,left:i}}(c,b,d))}let{top:d,left:e,width:f,height:g,bottom:h,right:i}=c;return{top:d,left:e,width:f,height:g,bottom:h,right:i}}function mu(a){return mt(a,{ignoreTransform:!0})}function mv(a,b){let c=[];return a?function d(e){var f,g;let h;if(null!=b&&c.length>=b||!e)return c;if(lQ(e)&&null!=e.scrollingElement&&!c.includes(e.scrollingElement))return c.push(e.scrollingElement),c;if(!lR(e)||lS(e)||c.includes(e))return c;let i=lP(a).getComputedStyle(e);return(e!==a&&(void 0===(f=i)&&(f=lP(e).getComputedStyle(e)),h=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(a=>{let b=f[a];return"string"==typeof b&&h.test(b)}))&&c.push(e),void 0===(g=i)&&(g=lP(e).getComputedStyle(e)),"fixed"===g.position)?c:d(e.parentNode)}(a):c}function mw(a){let[b]=mv(a,1);return null!=b?b:null}function mx(a){return lM&&a?lN(a)?a:lO(a)?lQ(a)||a===lT(a).scrollingElement?window:lR(a)?a:null:null:null}function my(a){return lN(a)?a.scrollX:a.scrollLeft}function mz(a){return lN(a)?a.scrollY:a.scrollTop}function mA(a){return{x:my(a),y:mz(a)}}function mB(a){return!!lM&&!!a&&a===document.scrollingElement}function mC(a){let b={x:0,y:0},c=mB(a)?{height:window.innerHeight,width:window.innerWidth}:{height:a.clientHeight,width:a.clientWidth},d={x:a.scrollWidth-c.width,y:a.scrollHeight-c.height},e=a.scrollTop<=b.y,f=a.scrollLeft<=b.x;return{isTop:e,isLeft:f,isBottom:a.scrollTop>=d.y,isRight:a.scrollLeft>=d.x,maxScroll:d,minScroll:b}}(i=r||(r={}))[i.Forward=1]="Forward",i[i.Backward=-1]="Backward";let mD={x:.2,y:.2};function mE(a){return a.reduce((a,b)=>l1(a,mA(b)),mh)}let mF=[["x",["left","right"],function(a){return a.reduce((a,b)=>a+my(b),0)}],["y",["top","bottom"],function(a){return a.reduce((a,b)=>a+mz(b),0)}]];class mG{constructor(a,b){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const c=mv(b),d=mE(c);for(const[b,e,f]of(this.rect={...a},this.width=a.width,this.height=a.height,mF))for(const a of e)Object.defineProperty(this,a,{get:()=>{let e=f(c),g=d[b]-e;return this.rect[a]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class mH{constructor(a){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(a=>{var b;return null==(b=this.target)?void 0:b.removeEventListener(...a)})},this.target=a}add(a,b,c){var d;null==(d=this.target)||d.addEventListener(a,b,c),this.listeners.push([a,b,c])}}function mI(a,b){let c=Math.abs(a.x),d=Math.abs(a.y);return"number"==typeof b?Math.sqrt(c**2+d**2)>b:"x"in b&&"y"in b?c>b.x&&d>b.y:"x"in b?c>b.x:"y"in b&&d>b.y}function mJ(a){a.preventDefault()}function mK(a){a.stopPropagation()}(j=s||(s={})).Click="click",j.DragStart="dragstart",j.Keydown="keydown",j.ContextMenu="contextmenu",j.Resize="resize",j.SelectionChange="selectionchange",j.VisibilityChange="visibilitychange",(k=t||(t={})).Space="Space",k.Down="ArrowDown",k.Right="ArrowRight",k.Left="ArrowLeft",k.Up="ArrowUp",k.Esc="Escape",k.Enter="Enter",k.Tab="Tab";let mL={start:[t.Space,t.Enter],cancel:[t.Esc],end:[t.Space,t.Enter,t.Tab]},mM=(a,b)=>{let{currentCoordinates:c}=b;switch(a.code){case t.Right:return{...c,x:c.x+25};case t.Left:return{...c,x:c.x-25};case t.Down:return{...c,y:c.y+25};case t.Up:return{...c,y:c.y-25}}};class mN{constructor(a){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=a;const{event:{target:b}}=a;this.props=a,this.listeners=new mH(lT(b)),this.windowListeners=new mH(lP(b)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(s.Resize,this.handleCancel),this.windowListeners.add(s.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(s.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:a,onStart:b}=this.props,c=a.node.current;c&&function(a,b){if(void 0===b&&(b=mt),!a)return;let{top:c,left:d,bottom:e,right:f}=b(a);mw(a)&&(e<=0||f<=0||c>=window.innerHeight||d>=window.innerWidth)&&a.scrollIntoView({block:"center",inline:"center"})}(c),b(mh)}handleKeyDown(a){if(l3(a)){let{active:b,context:c,options:d}=this.props,{keyboardCodes:e=mL,coordinateGetter:f=mM,scrollBehavior:g="smooth"}=d,{code:h}=a;if(e.end.includes(h))return void this.handleEnd(a);if(e.cancel.includes(h))return void this.handleCancel(a);let{collisionRect:i}=c.current,j=i?{x:i.left,y:i.top}:mh;this.referenceCoordinates||(this.referenceCoordinates=j);let k=f(a,{active:b,context:c.current,currentCoordinates:j});if(k){let b=l2(k,j),d={x:0,y:0},{scrollableAncestors:e}=c.current;for(let c of e){let e=a.code,{isTop:f,isRight:h,isLeft:i,isBottom:j,maxScroll:l,minScroll:m}=mC(c),n=function(a){if(a===document.scrollingElement){let{innerWidth:a,innerHeight:b}=window;return{top:0,left:0,right:a,bottom:b,width:a,height:b}}let{top:b,left:c,right:d,bottom:e}=a.getBoundingClientRect();return{top:b,left:c,right:d,bottom:e,width:a.clientWidth,height:a.clientHeight}}(c),o={x:Math.min(e===t.Right?n.right-n.width/2:n.right,Math.max(e===t.Right?n.left:n.left+n.width/2,k.x)),y:Math.min(e===t.Down?n.bottom-n.height/2:n.bottom,Math.max(e===t.Down?n.top:n.top+n.height/2,k.y))},p=e===t.Right&&!h||e===t.Left&&!i,q=e===t.Down&&!j||e===t.Up&&!f;if(p&&o.x!==k.x){let a=c.scrollLeft+b.x,f=e===t.Right&&a<=l.x||e===t.Left&&a>=m.x;if(f&&!b.y)return void c.scrollTo({left:a,behavior:g});f?d.x=c.scrollLeft-a:d.x=e===t.Right?c.scrollLeft-l.x:c.scrollLeft-m.x,d.x&&c.scrollBy({left:-d.x,behavior:g});break}if(q&&o.y!==k.y){let a=c.scrollTop+b.y,f=e===t.Down&&a<=l.y||e===t.Up&&a>=m.y;if(f&&!b.x)return void c.scrollTo({top:a,behavior:g});f?d.y=c.scrollTop-a:d.y=e===t.Down?c.scrollTop-l.y:c.scrollTop-m.y,d.y&&c.scrollBy({top:-d.y,behavior:g});break}}this.handleMove(a,l1(l2(k,this.referenceCoordinates),d))}}}handleMove(a,b){let{onMove:c}=this.props;a.preventDefault(),c(b)}handleEnd(a){let{onEnd:b}=this.props;a.preventDefault(),this.detach(),b()}handleCancel(a){let{onCancel:b}=this.props;a.preventDefault(),this.detach(),b()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function mO(a){return!!(a&&"distance"in a)}function mP(a){return!!(a&&"delay"in a)}mN.activators=[{eventName:"onKeyDown",handler:(a,b,c)=>{let{keyboardCodes:d=mL,onActivation:e}=b,{active:f}=c,{code:g}=a.nativeEvent;if(d.start.includes(g)){let b=f.activatorNode.current;return(!b||a.target===b)&&(a.preventDefault(),null==e||e({event:a.nativeEvent}),!0)}return!1}}];class mQ{constructor(a,b,c){var d;void 0===c&&(c=function(a){let{EventTarget:b}=lP(a);return a instanceof b?a:lT(a)}(a.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=a,this.events=b;const{event:e}=a,{target:f}=e;this.props=a,this.events=b,this.document=lT(f),this.documentListeners=new mH(this.document),this.listeners=new mH(c),this.windowListeners=new mH(lP(f)),this.initialCoordinates=null!=(d=l4(e))?d:mh,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:a,props:{options:{activationConstraint:b,bypassActivationConstraint:c}}}=this;if(this.listeners.add(a.move.name,this.handleMove,{passive:!1}),this.listeners.add(a.end.name,this.handleEnd),a.cancel&&this.listeners.add(a.cancel.name,this.handleCancel),this.windowListeners.add(s.Resize,this.handleCancel),this.windowListeners.add(s.DragStart,mJ),this.windowListeners.add(s.VisibilityChange,this.handleCancel),this.windowListeners.add(s.ContextMenu,mJ),this.documentListeners.add(s.Keydown,this.handleKeydown),b){if(null!=c&&c({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(mP(b)){this.timeoutId=setTimeout(this.handleStart,b.delay),this.handlePending(b);return}if(mO(b))return void this.handlePending(b)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(a,b){let{active:c,onPending:d}=this.props;d(c,a,this.initialCoordinates,b)}handleStart(){let{initialCoordinates:a}=this,{onStart:b}=this.props;a&&(this.activated=!0,this.documentListeners.add(s.Click,mK,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(s.SelectionChange,this.removeTextSelection),b(a))}handleMove(a){var b;let{activated:c,initialCoordinates:d,props:e}=this,{onMove:f,options:{activationConstraint:g}}=e;if(!d)return;let h=null!=(b=l4(a))?b:mh,i=l2(d,h);if(!c&&g){if(mO(g)){if(null!=g.tolerance&&mI(i,g.tolerance))return this.handleCancel();if(mI(i,g.distance))return this.handleStart()}return mP(g)&&mI(i,g.tolerance)?this.handleCancel():void this.handlePending(g,i)}a.cancelable&&a.preventDefault(),f(h)}handleEnd(){let{onAbort:a,onEnd:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleCancel(){let{onAbort:a,onCancel:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleKeydown(a){a.code===t.Esc&&this.handleCancel()}removeTextSelection(){var a;null==(a=this.document.getSelection())||a.removeAllRanges()}}let mR={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class mS extends mQ{constructor(a){const{event:b}=a;super(a,mR,lT(b.target))}}mS.activators=[{eventName:"onPointerDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return!!c.isPrimary&&0===c.button&&(null==d||d({event:c}),!0)}}];let mT={move:{name:"mousemove"},end:{name:"mouseup"}};(l=u||(u={}))[l.RightClick=2]="RightClick";class mU extends mQ{constructor(a){super(a,mT,lT(a.event.target))}}mU.activators=[{eventName:"onMouseDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return c.button!==u.RightClick&&(null==d||d({event:c}),!0)}}];let mV={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class mW extends mQ{constructor(a){super(a,mV)}static setup(){return window.addEventListener(mV.move.name,a,{capture:!1,passive:!1}),function(){window.removeEventListener(mV.move.name,a)};function a(){}}}mW.activators=[{eventName:"onTouchStart",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b,{touches:e}=c;return!(e.length>1)&&(null==d||d({event:c}),!0)}}],(m=v||(v={}))[m.Pointer=0]="Pointer",m[m.DraggableRect=1]="DraggableRect",(n=w||(w={}))[n.TreeOrder=0]="TreeOrder",n[n.ReversedTreeOrder=1]="ReversedTreeOrder";let mX={x:{[r.Backward]:!1,[r.Forward]:!1},y:{[r.Backward]:!1,[r.Forward]:!1}};(o=x||(x={}))[o.Always=0]="Always",o[o.BeforeDragging=1]="BeforeDragging",o[o.WhileDragging=2]="WhileDragging",(y||(y={})).Optimized="optimized";let mY=new Map;function mZ(a,b){return lX(c=>a?c||("function"==typeof b?b(a):a):null,[b,a])}function m$(a){let{callback:b,disabled:c}=a,d=lV(b),e=(0,B.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:a}=window;return new a(d)},[c]);return(0,B.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}function m_(a){return new mG(mt(a),a)}function m0(a,b,c){void 0===b&&(b=m_);let[d,e]=(0,B.useState)(null);function f(){e(d=>{if(!a)return null;if(!1===a.isConnected){var e;return null!=(e=null!=d?d:c)?e:null}let f=b(a);return JSON.stringify(d)===JSON.stringify(f)?d:f})}let g=function(a){let{callback:b,disabled:c}=a,d=lV(b),e=(0,B.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:a}=window;return new a(d)},[d,c]);return(0,B.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}({callback(b){if(a)for(let c of b){let{type:b,target:d}=c;if("childList"===b&&d instanceof HTMLElement&&d.contains(a)){f();break}}}}),h=m$({callback:f});return lU(()=>{f(),a?(null==h||h.observe(a),null==g||g.observe(document.body,{childList:!0,subtree:!0})):(null==h||h.disconnect(),null==g||g.disconnect())},[a]),d}let m1=[];function m2(a,b){void 0===b&&(b=[]);let c=(0,B.useRef)(null);return(0,B.useEffect)(()=>{c.current=null},b),(0,B.useEffect)(()=>{let b=a!==mh;b&&!c.current&&(c.current=a),!b&&c.current&&(c.current=null)},[a]),c.current?l2(a,c.current):mh}function m3(a){return(0,B.useMemo)(()=>{let b,c;return a?(b=a.innerWidth,{top:0,left:0,right:b,bottom:c=a.innerHeight,width:b,height:c}):null},[a])}let m4=[],m5=[{sensor:mS,options:{}},{sensor:mN,options:{}}],m6={current:{}},m7={draggable:{measure:mu},droppable:{measure:mu,strategy:x.WhileDragging,frequency:y.Optimized},dragOverlay:{measure:mt}};class m8 extends Map{get(a){var b;return null!=a&&null!=(b=super.get(a))?b:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(a=>{let{disabled:b}=a;return!b})}getNodeFor(a){var b,c;return null!=(b=null==(c=this.get(a))?void 0:c.node.current)?b:void 0}}let m9={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new m8,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:me},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:m7,measureDroppableContainers:me,windowRect:null,measuringScheduled:!1},na={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:me,draggableNodes:new Map,over:null,measureDroppableContainers:me},nb=(0,B.createContext)(na),nc=(0,B.createContext)(m9);function nd(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new m8}}}function ne(a,b){switch(b.type){case q.DragStart:return{...a,draggable:{...a.draggable,initialCoordinates:b.initialCoordinates,active:b.active}};case q.DragMove:if(null==a.draggable.active)return a;return{...a,draggable:{...a.draggable,translate:{x:b.coordinates.x-a.draggable.initialCoordinates.x,y:b.coordinates.y-a.draggable.initialCoordinates.y}}};case q.DragEnd:case q.DragCancel:return{...a,draggable:{...a.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case q.RegisterDroppable:{let{element:c}=b,{id:d}=c,e=new m8(a.droppable.containers);return e.set(d,c),{...a,droppable:{...a.droppable,containers:e}}}case q.SetDroppableDisabled:{let{id:c,key:d,disabled:e}=b,f=a.droppable.containers.get(c);if(!f||d!==f.key)return a;let g=new m8(a.droppable.containers);return g.set(c,{...f,disabled:e}),{...a,droppable:{...a.droppable,containers:g}}}case q.UnregisterDroppable:{let{id:c,key:d}=b,e=a.droppable.containers.get(c);if(!e||d!==e.key)return a;let f=new m8(a.droppable.containers);return f.delete(c),{...a,droppable:{...a.droppable,containers:f}}}default:return a}}function nf(a){let{disabled:b}=a,{active:c,activatorEvent:d,draggableNodes:e}=(0,B.useContext)(nb),f=lZ(d),g=lZ(null==c?void 0:c.id);return(0,B.useEffect)(()=>{if(!b&&!d&&f&&null!=g){if(!l3(f)||document.activeElement===f.target)return;let a=e.get(g);if(!a)return;let{activatorNode:b,node:c}=a;(b.current||c.current)&&requestAnimationFrame(()=>{for(let a of[b.current,c.current]){if(!a)continue;let b=a.matches(l6)?a:a.querySelector(l6);if(b){b.focus();break}}})}},[d,b,e,g,f]),null}let ng=(0,B.createContext)({...mh,scaleX:1,scaleY:1});(p=z||(z={}))[p.Uninitialized=0]="Uninitialized",p[p.Initializing=1]="Initializing",p[p.Initialized=2]="Initialized";let nh=(0,B.memo)(function(a){var b,c,d,e,f,g,h,i;let j,k,l,m,n,o,p,s,{id:t,accessibility:u,autoScroll:y=!0,children:A,sensors:D=m5,collisionDetection:E=mp,measuring:F,modifiers:G,...H}=a,[I,J]=(0,B.useReducer)(ne,void 0,nd),[K,L]=function(){let[a]=(0,B.useState)(()=>new Set),b=(0,B.useCallback)(b=>(a.add(b),()=>a.delete(b)),[a]);return[(0,B.useCallback)(b=>{let{type:c,event:d}=b;a.forEach(a=>{var b;return null==(b=a[c])?void 0:b.call(a,d)})},[a]),b]}(),[M,N]=(0,B.useState)(z.Uninitialized),O=M===z.Initialized,{draggable:{active:P,nodes:Q,translate:R},droppable:{containers:S}}=I,T=null!=P?Q.get(P):null,U=(0,B.useRef)({initial:null,translated:null}),V=(0,B.useMemo)(()=>{var a;return null!=P?{id:P,data:null!=(a=null==T?void 0:T.data)?a:m6,rect:U}:null},[P,T]),W=(0,B.useRef)(null),[X,Y]=(0,B.useState)(null),[Z,$]=(0,B.useState)(null),_=lW(H,Object.values(H)),aa=l_("DndDescribedBy",t),ab=(0,B.useMemo)(()=>S.getEnabled(),[S]),ac=(0,B.useMemo)(()=>({draggable:{...m7.draggable,...null==F?void 0:F.draggable},droppable:{...m7.droppable,...null==F?void 0:F.droppable},dragOverlay:{...m7.dragOverlay,...null==F?void 0:F.dragOverlay}}),[null==F?void 0:F.draggable,null==F?void 0:F.droppable,null==F?void 0:F.dragOverlay]),{droppableRects:ad,measureDroppableContainers:ae,measuringScheduled:af}=function(a,b){let{dragging:c,dependencies:d,config:e}=b,[f,g]=(0,B.useState)(null),{frequency:h,measure:i,strategy:j}=e,k=(0,B.useRef)(a),l=function(){switch(j){case x.Always:return!1;case x.BeforeDragging:return c;default:return!c}}(),m=lW(l),n=(0,B.useCallback)(function(a){void 0===a&&(a=[]),m.current||g(b=>null===b?a:b.concat(a.filter(a=>!b.includes(a))))},[m]),o=(0,B.useRef)(null),p=lX(b=>{if(l&&!c)return mY;if(!b||b===mY||k.current!==a||null!=f){let b=new Map;for(let c of a){if(!c)continue;if(f&&f.length>0&&!f.includes(c.id)&&c.rect.current){b.set(c.id,c.rect.current);continue}let a=c.node.current,d=a?new mG(i(a),a):null;c.rect.current=d,d&&b.set(c.id,d)}return b}return b},[a,f,c,l,i]);return(0,B.useEffect)(()=>{k.current=a},[a]),(0,B.useEffect)(()=>{l||n()},[c,l]),(0,B.useEffect)(()=>{f&&f.length>0&&g(null)},[JSON.stringify(f)]),(0,B.useEffect)(()=>{l||"number"!=typeof h||null!==o.current||(o.current=setTimeout(()=>{n(),o.current=null},h))},[h,l,n,...d]),{droppableRects:p,measureDroppableContainers:n,measuringScheduled:null!=f}}(ab,{dragging:O,dependencies:[R.x,R.y],config:ac.droppable}),ag=lX(a=>{var b;return null==P?null:null!=(b=null!=n?n:a)?b:null},[n=(m=null!=P?Q.get(P):void 0)?m.node.current:null,P]),ah=(0,B.useMemo)(()=>Z?l4(Z):null,[Z]),ai=(j=(null==X?void 0:X.autoScrollEnabled)===!1,k="object"==typeof y?!1===y.enabled:!1===y,l=O&&!j&&!k,"object"==typeof y?{...y,enabled:l}:{enabled:l}),aj=mZ(ag,ac.draggable.measure);!function(a){let{activeNode:b,measure:c,initialRect:d,config:e=!0}=a,f=(0,B.useRef)(!1),{x:g,y:h}="boolean"==typeof e?{x:e,y:e}:e;lU(()=>{if(!g&&!h||!b){f.current=!1;return}if(f.current||!d)return;let a=null==b?void 0:b.node.current;if(!a||!1===a.isConnected)return;let e=mq(c(a),d);if(g||(e.x=0),h||(e.y=0),f.current=!0,Math.abs(e.x)>0||Math.abs(e.y)>0){let b=mw(a);b&&b.scrollBy({top:e.y,left:e.x})}},[b,g,h,d,c])}({activeNode:null!=P?Q.get(P):null,config:ai.layoutShiftCompensation,initialRect:aj,measure:ac.draggable.measure});let ak=m0(ag,ac.draggable.measure,aj),al=m0(ag?ag.parentElement:null),am=(0,B.useRef)({activatorEvent:null,active:null,activeNode:ag,collisionRect:null,collisions:null,droppableRects:ad,draggableNodes:Q,draggingNode:null,draggingNodeRect:null,droppableContainers:S,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),an=S.getNodeFor(null==(b=am.current.over)?void 0:b.id),ao=function(a){let{measure:b}=a,[c,d]=(0,B.useState)(null),e=m$({callback:(0,B.useCallback)(a=>{for(let{target:c}of a)if(lR(c)){d(a=>{let d=b(c);return a?{...a,width:d.width,height:d.height}:d});break}},[b])}),[f,g]=lY((0,B.useCallback)(a=>{let c=function(a){if(!a)return null;if(a.children.length>1)return a;let b=a.children[0];return lR(b)?b:a}(a);null==e||e.disconnect(),c&&(null==e||e.observe(c)),d(c?b(c):null)},[b,e]));return(0,B.useMemo)(()=>({nodeRef:f,rect:c,setRef:g}),[c,f,g])}({measure:ac.dragOverlay.measure}),ap=null!=(c=ao.nodeRef.current)?c:ag,aq=O?null!=(d=ao.rect)?d:ak:null,ar=!!(ao.nodeRef.current&&ao.rect),as=(o=mZ(f=ar?null:ak),mq(f,o)),at=m3(ap?lP(ap):null),au=(g=O?null!=an?an:ag:null,p=(0,B.useRef)(g),s=lX(a=>g?a&&a!==m1&&g&&p.current&&g.parentNode===p.current.parentNode?a:mv(g):m1,[g]),(0,B.useEffect)(()=>{p.current=g},[g]),s),av=function(a,b){void 0===b&&(b=mt);let[c]=a,d=m3(c?lP(c):null),[e,f]=(0,B.useState)(m4);function g(){f(()=>a.length?a.map(a=>mB(a)?d:new mG(b(a),a)):m4)}let h=m$({callback:g});return lU(()=>{null==h||h.disconnect(),g(),a.forEach(a=>null==h?void 0:h.observe(a))},[a]),e}(au),aw=function(a,b){let{transform:c,...d}=b;return null!=a&&a.length?a.reduce((a,b)=>b({transform:a,...d}),c):c}(G,{transform:{x:R.x-as.x,y:R.y-as.y,scaleX:1,scaleY:1},activatorEvent:Z,active:V,activeNodeRect:ak,containerNodeRect:al,draggingNodeRect:aq,over:am.current.over,overlayNodeRect:ao.rect,scrollableAncestors:au,scrollableAncestorRects:av,windowRect:at}),ax=ah?l1(ah,R):null,ay=function(a){let[b,c]=(0,B.useState)(null),d=(0,B.useRef)(a),e=(0,B.useCallback)(a=>{let b=mx(a.target);b&&c(a=>a?(a.set(b,mA(b)),new Map(a)):null)},[]);return(0,B.useEffect)(()=>{let b=d.current;if(a!==b){f(b);let g=a.map(a=>{let b=mx(a);return b?(b.addEventListener("scroll",e,{passive:!0}),[b,mA(b)]):null}).filter(a=>null!=a);c(g.length?new Map(g):null),d.current=a}return()=>{f(a),f(b)};function f(a){a.forEach(a=>{let b=mx(a);null==b||b.removeEventListener("scroll",e)})}},[e,a]),(0,B.useMemo)(()=>a.length?b?Array.from(b.values()).reduce((a,b)=>l1(a,b),mh):mE(a):mh,[a,b])}(au),az=m2(ay),aA=m2(ay,[ak]),aB=l1(aw,az),aC=aq?mr(aq,aw):null,aD=V&&aC?E({active:V,collisionRect:aC,droppableRects:ad,droppableContainers:ab,pointerCoordinates:ax}):null,aE=mm(aD,"id"),[aF,aG]=(0,B.useState)(null),aH=(h=ar?aw:l1(aw,aA),i=null!=(e=null==aF?void 0:aF.rect)?e:null,{...h,scaleX:i&&ak?i.width/ak.width:1,scaleY:i&&ak?i.height/ak.height:1}),aI=(0,B.useRef)(null),aJ=(0,B.useCallback)((a,b)=>{let{sensor:c,options:d}=b;if(null==W.current)return;let e=Q.get(W.current);if(!e)return;let f=a.nativeEvent,g=new c({active:W.current,activeNode:e,event:f,options:d,context:am,onAbort(a){if(!Q.get(a))return;let{onDragAbort:b}=_.current,c={id:a};null==b||b(c),K({type:"onDragAbort",event:c})},onPending(a,b,c,d){if(!Q.get(a))return;let{onDragPending:e}=_.current,f={id:a,constraint:b,initialCoordinates:c,offset:d};null==e||e(f),K({type:"onDragPending",event:f})},onStart(a){let b=W.current;if(null==b)return;let c=Q.get(b);if(!c)return;let{onDragStart:d}=_.current,e={activatorEvent:f,active:{id:b,data:c.data,rect:U}};(0,lL.unstable_batchedUpdates)(()=>{null==d||d(e),N(z.Initializing),J({type:q.DragStart,initialCoordinates:a,active:b}),K({type:"onDragStart",event:e}),Y(aI.current),$(f)})},onMove(a){J({type:q.DragMove,coordinates:a})},onEnd:h(q.DragEnd),onCancel:h(q.DragCancel)});function h(a){return async function(){let{active:b,collisions:c,over:d,scrollAdjustedTranslate:e}=am.current,g=null;if(b&&e){let{cancelDrop:h}=_.current;g={activatorEvent:f,active:b,collisions:c,delta:e,over:d},a===q.DragEnd&&"function"==typeof h&&await Promise.resolve(h(g))&&(a=q.DragCancel)}W.current=null,(0,lL.unstable_batchedUpdates)(()=>{J({type:a}),N(z.Uninitialized),aG(null),Y(null),$(null),aI.current=null;let b=a===q.DragEnd?"onDragEnd":"onDragCancel";if(g){let a=_.current[b];null==a||a(g),K({type:b,event:g})}})}}aI.current=g},[Q]),aK=(0,B.useCallback)((a,b)=>(c,d)=>{let e=c.nativeEvent,f=Q.get(d);null!==W.current||!f||e.dndKit||e.defaultPrevented||!0===a(c,b.options,{active:f})&&(e.dndKit={capturedBy:b.sensor},W.current=d,aJ(c,b))},[Q,aJ]),aL=(0,B.useMemo)(()=>D.reduce((a,b)=>{let{sensor:c}=b;return[...a,...c.activators.map(a=>({eventName:a.eventName,handler:aK(a.handler,b)}))]},[]),[D,aK]);(0,B.useEffect)(()=>{if(!lM)return;let a=D.map(a=>{let{sensor:b}=a;return null==b.setup?void 0:b.setup()});return()=>{for(let b of a)null==b||b()}},D.map(a=>{let{sensor:b}=a;return b})),lU(()=>{ak&&M===z.Initializing&&N(z.Initialized)},[ak,M]),(0,B.useEffect)(()=>{let{onDragMove:a}=_.current,{active:b,activatorEvent:c,collisions:d,over:e}=am.current;if(!b||!c)return;let f={active:b,activatorEvent:c,collisions:d,delta:{x:aB.x,y:aB.y},over:e};(0,lL.unstable_batchedUpdates)(()=>{null==a||a(f),K({type:"onDragMove",event:f})})},[aB.x,aB.y]),(0,B.useEffect)(()=>{let{active:a,activatorEvent:b,collisions:c,droppableContainers:d,scrollAdjustedTranslate:e}=am.current;if(!a||null==W.current||!b||!e)return;let{onDragOver:f}=_.current,g=d.get(aE),h=g&&g.rect.current?{id:g.id,rect:g.rect.current,data:g.data,disabled:g.disabled}:null,i={active:a,activatorEvent:b,collisions:c,delta:{x:e.x,y:e.y},over:h};(0,lL.unstable_batchedUpdates)(()=>{aG(h),null==f||f(i),K({type:"onDragOver",event:i})})},[aE]),lU(()=>{am.current={activatorEvent:Z,active:V,activeNode:ag,collisionRect:aC,collisions:aD,droppableRects:ad,draggableNodes:Q,draggingNode:ap,draggingNodeRect:aq,droppableContainers:S,over:aF,scrollableAncestors:au,scrollAdjustedTranslate:aB},U.current={initial:aq,translated:aC}},[V,ag,aD,aC,Q,ap,aq,ad,S,aF,au,aB]),function(a){let b,{acceleration:c,activator:d=v.Pointer,canScroll:e,draggingRect:f,enabled:g,interval:h=5,order:i=w.TreeOrder,pointerCoordinates:j,scrollableAncestors:k,scrollableAncestorRects:l,delta:m,threshold:n}=a,o=function(a){let{delta:b,disabled:c}=a,d=lZ(b);return lX(a=>{if(c||!d||!a)return mX;let e={x:Math.sign(b.x-d.x),y:Math.sign(b.y-d.y)};return{x:{[r.Backward]:a.x[r.Backward]||-1===e.x,[r.Forward]:a.x[r.Forward]||1===e.x},y:{[r.Backward]:a.y[r.Backward]||-1===e.y,[r.Forward]:a.y[r.Forward]||1===e.y}}},[c,b,d])}({delta:m,disabled:!g}),[p,q]=(b=(0,B.useRef)(null),[(0,B.useCallback)((a,c)=>{b.current=setInterval(a,c)},[]),(0,B.useCallback)(()=>{null!==b.current&&(clearInterval(b.current),b.current=null)},[])]),s=(0,B.useRef)({x:0,y:0}),t=(0,B.useRef)({x:0,y:0}),u=(0,B.useMemo)(()=>{switch(d){case v.Pointer:return j?{top:j.y,bottom:j.y,left:j.x,right:j.x}:null;case v.DraggableRect:return f}},[d,f,j]),x=(0,B.useRef)(null),y=(0,B.useCallback)(()=>{let a=x.current;if(!a)return;let b=s.current.x*t.current.x,c=s.current.y*t.current.y;a.scrollBy(b,c)},[]),z=(0,B.useMemo)(()=>i===w.TreeOrder?[...k].reverse():k,[i,k]);(0,B.useEffect)(()=>{if(!g||!k.length||!u)return void q();for(let a of z){if((null==e?void 0:e(a))===!1)continue;let b=l[k.indexOf(a)];if(!b)continue;let{direction:d,speed:f}=function(a,b,c,d,e){let{top:f,left:g,right:h,bottom:i}=c;void 0===d&&(d=10),void 0===e&&(e=mD);let{isTop:j,isBottom:k,isLeft:l,isRight:m}=mC(a),n={x:0,y:0},o={x:0,y:0},p={height:b.height*e.y,width:b.width*e.x};return!j&&f<=b.top+p.height?(n.y=r.Backward,o.y=d*Math.abs((b.top+p.height-f)/p.height)):!k&&i>=b.bottom-p.height&&(n.y=r.Forward,o.y=d*Math.abs((b.bottom-p.height-i)/p.height)),!m&&h>=b.right-p.width?(n.x=r.Forward,o.x=d*Math.abs((b.right-p.width-h)/p.width)):!l&&g<=b.left+p.width&&(n.x=r.Backward,o.x=d*Math.abs((b.left+p.width-g)/p.width)),{direction:n,speed:o}}(a,b,u,c,n);for(let a of["x","y"])o[a][d[a]]||(f[a]=0,d[a]=0);if(f.x>0||f.y>0){q(),x.current=a,p(y,h),s.current=f,t.current=d;return}}s.current={x:0,y:0},t.current={x:0,y:0},q()},[c,y,e,q,g,h,JSON.stringify(u),JSON.stringify(o),p,k,z,l,JSON.stringify(n)])}({...ai,delta:R,draggingRect:aC,pointerCoordinates:ax,scrollableAncestors:au,scrollableAncestorRects:av});let aM=(0,B.useMemo)(()=>({active:V,activeNode:ag,activeNodeRect:ak,activatorEvent:Z,collisions:aD,containerNodeRect:al,dragOverlay:ao,draggableNodes:Q,droppableContainers:S,droppableRects:ad,over:aF,measureDroppableContainers:ae,scrollableAncestors:au,scrollableAncestorRects:av,measuringConfiguration:ac,measuringScheduled:af,windowRect:at}),[V,ag,ak,Z,aD,al,ao,Q,S,ad,aF,ae,au,av,ac,af,at]),aN=(0,B.useMemo)(()=>({activatorEvent:Z,activators:aL,active:V,activeNodeRect:ak,ariaDescribedById:{draggable:aa},dispatch:J,draggableNodes:Q,over:aF,measureDroppableContainers:ae}),[Z,aL,V,ak,J,aa,Q,aF,ae]);return C().createElement(ma.Provider,{value:L},C().createElement(nb.Provider,{value:aN},C().createElement(nc.Provider,{value:aM},C().createElement(ng.Provider,{value:aH},A)),C().createElement(nf,{disabled:(null==u?void 0:u.restoreFocus)===!1})),C().createElement(md,{...u,hiddenTextDescribedById:aa}))}),ni=(0,B.createContext)(null),nj="button",nk={timeout:25};function nl(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function nm(a){return null!==a&&a>=0}let nn=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=nl(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},no={scaleX:1,scaleY:1},np=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...no}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...no}:k<i&&k>=m?{x:0,y:n.height+o,...no}:{x:0,y:0,...no}},nq="Sortable",nr=C().createContext({activeIndex:-1,containerId:nq,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:nn,disabled:{draggable:!1,droppable:!1}});function ns(a){let{children:b,id:c,items:d,strategy:e=nn,disabled:f=!1}=a,{active:g,dragOverlay:h,droppableRects:i,over:j,measureDroppableContainers:k}=(0,B.useContext)(nc),l=l_(nq,c),m=null!==h.rect,n=(0,B.useMemo)(()=>d.map(a=>"object"==typeof a&&"id"in a?a.id:a),[d]),o=null!=g,p=g?n.indexOf(g.id):-1,q=j?n.indexOf(j.id):-1,r=(0,B.useRef)(n),s=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(n,r.current),t=-1!==q&&-1===p||s,u="boolean"==typeof f?{draggable:f,droppable:f}:f;lU(()=>{s&&o&&k(n)},[s,n,o,k]),(0,B.useEffect)(()=>{r.current=n},[n]);let v=(0,B.useMemo)(()=>({activeIndex:p,containerId:l,disabled:u,disableTransforms:t,items:n,overIndex:q,useDragOverlay:m,sortedRects:n.reduce((a,b,c)=>{let d=i.get(b);return d&&(a[c]=d),a},Array(n.length)),strategy:e}),[p,l,u.draggable,u.droppable,t,n,q,i,m,e]);return C().createElement(nr.Provider,{value:v},b)}let nt=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return nl(c,d,e).indexOf(b)},nu=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},nv={duration:200,easing:"ease"},nw="transform",nx=l5.Transition.toString({property:nw,duration:0,easing:"linear"}),ny={roleDescription:"sortable"};function nz(a){var b,c,d,e;let{animateLayoutChanges:f=nu,attributes:g,disabled:h,data:i,getNewIndex:j=nt,id:k,strategy:l,resizeObserverConfig:m,transition:n=nv}=a,{items:o,containerId:p,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,B.useContext)(nr),y=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),z=o.indexOf(k),A=(0,B.useMemo)(()=>({sortable:{containerId:p,index:z,items:o},...i}),[p,i,z,o]),C=(0,B.useMemo)(()=>o.slice(o.indexOf(k)),[o,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=l_("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,B.useContext)(nb),k=(0,B.useRef)({disabled:c}),l=(0,B.useRef)(!1),m=(0,B.useRef)(null),n=(0,B.useRef)(null),{disabled:o,updateMeasurementsFor:p,timeout:r}={...nk,...e},s=lW(null!=p?p:d),t=m$({callback:(0,B.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),n.current=null},r)},[r]),disabled:o||!g}),[u,v]=lY((0,B.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=lW(b);return(0,B.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,B.useEffect)(()=>(h({type:q.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:m,data:w}}),()=>h({type:q.UnregisterDroppable,key:f,id:d})),[d]),(0,B.useEffect)(()=>{c!==k.current.disabled&&(h({type:q.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:m,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:A,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...m}}),{active:H,activatorEvent:I,activeNodeRect:J,attributes:K,setNodeRef:L,listeners:M,isDragging:N,over:O,setActivatorNodeRef:P,transform:Q}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=l_("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,B.useContext)(nb),{role:n=nj,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,B.useContext)(q?ng:ni),[s,t]=lY(),[u,v]=lY(),w=(0,B.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),x=lW(c);return lU(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:x}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,B.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===nj||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:A,attributes:{...ny,...g},disabled:y.draggable}),R=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,B.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,L),S=!!H,T=S&&!t&&nm(r)&&nm(v),U=!w&&N,V=U&&T?Q:null,W=T?null!=V?V:(null!=l?l:x)({rects:u,activeNodeRect:J,activeIndex:r,overIndex:v,index:z}):null,X=nm(r)&&nm(v)?j({id:k,items:o,activeIndex:r,overIndex:v}):z,Y=null==H?void 0:H.id,Z=(0,B.useRef)({activeId:Y,items:o,newIndex:X,containerId:p}),$=o!==Z.current.items,_=f({active:H,containerId:p,isDragging:N,isSorting:S,id:k,index:z,items:o,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:n,wasDragging:null!=Z.current.activeId}),aa=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,B.useState)(null),h=(0,B.useRef)(c);return lU(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=mt(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,B.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!_,index:z,node:E,rect:D});return(0,B.useEffect)(()=>{S&&Z.current.newIndex!==X&&(Z.current.newIndex=X),p!==Z.current.containerId&&(Z.current.containerId=p),o!==Z.current.items&&(Z.current.items=o)},[S,X,p,o]),(0,B.useEffect)(()=>{if(Y===Z.current.activeId)return;if(null!=Y&&null==Z.current.activeId){Z.current.activeId=Y;return}let a=setTimeout(()=>{Z.current.activeId=Y},50);return()=>clearTimeout(a)},[Y]),{active:H,activeIndex:r,attributes:K,data:A,rect:D,index:z,newIndex:X,items:o,isOver:F,isSorting:S,isDragging:N,listeners:M,node:E,overIndex:v,over:O,setNodeRef:R,setActivatorNodeRef:P,setDroppableNodeRef:G,setDraggableNodeRef:L,transform:null!=aa?aa:W,transition:aa||$&&Z.current.newIndex===z?nx:(!U||l3(I))&&n&&(S||_)?l5.Transition.toString({...n,property:nw}):void 0}}function nA(a){if(!a)return!1;let b=a.data.current;return!!b&&"sortable"in b&&"object"==typeof b.sortable&&"containerId"in b.sortable&&"items"in b.sortable&&"index"in b.sortable}let nB=[t.Down,t.Right,t.Up,t.Left],nC=(a,b)=>{let{context:{active:c,collisionRect:d,droppableRects:e,droppableContainers:f,over:g,scrollableAncestors:h}}=b;if(nB.includes(a.code)){if(a.preventDefault(),!c||!d)return;let b=[];f.getEnabled().forEach(c=>{if(!c||null!=c&&c.disabled)return;let f=e.get(c.id);if(f)switch(a.code){case t.Down:d.top<f.top&&b.push(c);break;case t.Up:d.top>f.top&&b.push(c);break;case t.Left:d.left>f.left&&b.push(c);break;case t.Right:d.left<f.left&&b.push(c)}});let k=(a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ml(b),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=ml(d),g=Number((e.reduce((a,b,d)=>a+mi(c[d],b),0)/4).toFixed(4));f.push({id:b,data:{droppableContainer:a,value:g}})}}return f.sort(mj)})({active:c,collisionRect:d,droppableRects:e,droppableContainers:b,pointerCoordinates:null}),l=mm(k,"id");if(l===(null==g?void 0:g.id)&&k.length>1&&(l=k[1].id),null!=l){let a=f.get(c.id),b=f.get(l),g=b?e.get(b.id):null,k=null==b?void 0:b.node.current;if(k&&g&&a&&b){var i,j;let c=mv(k).some((a,b)=>h[b]!==a),e=nD(a,b),f=(i=a,j=b,!!nA(i)&&!!nA(j)&&!!nD(i,j)&&i.data.current.sortable.index<j.data.current.sortable.index),l=c||!e?{x:0,y:0}:{x:f?d.width-g.width:0,y:f?d.height-g.height:0},m={x:g.left,y:g.top};return l.x&&l.y?m:l2(m,l)}}}};function nD(a,b){return!!nA(a)&&!!nA(b)&&a.data.current.sortable.containerId===b.data.current.sortable.containerId}let nE=(0,S.A)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var nF=c(9913);let nG=(0,S.A)("circle-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.35 2.69A10 10 0 0 1 21.3 15.65",key:"1pfsoa"}],["path",{d:"M19.08 19.08A10 10 0 1 1 4.92 4.92",key:"1ablyi"}]]),nH=[{value:"#3b82f6",label:"presetColorBlue"},{value:"#0891b2",label:"presetColorCyan"},{value:"#16a34a",label:"presetColorGreen"},{value:"#b7791f",label:"presetColorAmber"},{value:"#ea580c",label:"presetColorOrange"},{value:"#dc2626",label:"presetColorRed"},{value:"#db2777",label:"presetColorPink"},{value:"#8b5cf6",label:"presetColorPurple"}];function nI(a){return nH.map(({value:b})=>({value:b,count:a.filter(a=>a.color?.toLowerCase()===b).length})).reduce((a,b)=>b.count<a.count?b:a).value}let nJ=["OpenAI Chat Completions","OpenAI Responses","Anthropic Messages","Google Generative AI","Mistral Conversations","Azure OpenAI Responses","OpenAI Codex Responses","Amazon Bedrock","Google Vertex AI","Pi Messages"],nK=["openai-completions","openai-responses","anthropic-messages","google-generative-ai","mistral-conversations","azure-openai-responses","openai-codex-responses","bedrock-converse-stream","google-vertex","pi-messages"].map((a,b)=>({value:a,label:nJ[b]})),nL=["openai","openrouter","together","deepseek","zai","qwen","chat-template","qwen-chat-template","string-thinking","ant-ling","baseten"];function nM(a){return Object.entries(a).map(([a,b])=>`${a}: ${b}`).join("\n")}function nN({headers:a,onChange:b,placeholder:c}){let[d,e]=(0,B.useState)(null);return(0,A.jsx)(iA.T,{value:d??nM(a),onFocus:()=>e(nM(a)),onChange:a=>{let c=a.target.value;e(c),b(Object.fromEntries(c.split("\n").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf(":");return b>0?[a.slice(0,b).trim(),a.slice(b+1).trim()]:[a,""]})))},onBlur:()=>e(null),rows:4,placeholder:c,className:"font-mono"})}function nO(a){let b=Math.floor(a/1e3),c=a%1e3;return c?`${b}.${String(c).padStart(3,"0").replace(/0+$/,"")}`:String(b)}function nP(a){if(!/^\d+(?:\.\d{0,3})?$/.test(a))return null;let[b,c=""]=a.split("."),d=1e3*Number(b)+Number(c.padEnd(3,"0"));return Number.isSafeInteger(d)&&d>0?d:null}function nQ({label:a,children:b,className:c}){return(0,A.jsxs)("label",{className:(0,W.cn)("grid gap-1 text-sm text-foreground",c),children:[(0,A.jsx)("span",{className:"font-medium",children:a}),b]})}let nR="__pi-desk_empty__";function nS({value:a,options:b,onChange:c,ariaLabel:d,placeholder:e,allowEmpty:f=!0,className:g}){let{t:h}=(0,Q.Bd)("settings"),i=e??h("useDefault"),j=a||(f?nR:b[0]?.value??null),k=!!a&&!b.some(b=>b.value===a);return(0,A.jsxs)(bO.l6,{value:j,onValueChange:a=>c(a===nR||null===a?"":a),children:[(0,A.jsx)(bO.bq,{"aria-label":d,className:(0,W.cn)("w-full",g),children:(0,A.jsx)(bO.yv,{children:b.find(b=>b.value===a)?.label??(a||i)})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[120]",children:[f?(0,A.jsx)(bO.eb,{value:nR,children:i}):null,k?(0,A.jsx)(bO.eb,{value:a,children:a}):null,b.map(a=>(0,A.jsx)(bO.eb,{value:a.value,children:a.label},a.value))]})]})}function nT({value:a,onChange:b,ariaLabel:c}){let{t:d}=(0,Q.Bd)("settings");return(0,A.jsx)(nS,{value:null===a?"":String(a),ariaLabel:c,options:[{value:"true",label:d("yes")},{value:"false",label:d("no")}],onChange:a=>b(""===a?null:"true"===a)})}let nU={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function nV(a,b){return JSON.stringify([a,b])}function nW(a,b){return JSON.stringify([a.provider,a.modelId,a.thinkingLevel,b])}function nX(a){return a.map(a=>({value:nV(a.provider,a.modelId),label:a.name||a.modelId,description:a.provider}))}function nY(a,b){return(a?.thinkingLevels??[]).map(a=>({value:a,label:b(nU[a])}))}function nZ({id:a,preset:b,model:c,models:d,canMoveUp:e,canMoveDown:f,onChange:g,onDelete:h,onMoveUp:i,onMoveDown:j}){let{t:k}=(0,Q.Bd)("settings"),{attributes:l,listeners:m,setActivatorNodeRef:n,setNodeRef:o,transform:p,transition:q,isDragging:r}=nz({id:a}),s=p?`translate3d(${p.x}px, ${p.y}px, 0) scaleX(${p.scaleX??1}) scaleY(${p.scaleY??1})`:void 0,t=b.color?.toLowerCase()??"none",u=nH.find(a=>a.value===t),v=u?k(u.label):k(b.color?"presetColorCustom":"presetColorNone"),w=[{value:"none",color:null,label:k("presetColorNone")},...b.color&&!u?[{value:t,color:b.color,label:k("presetColorCustom")}]:[],...nH.map(a=>({value:a.value,color:a.value,label:k(a.label)}))];return(0,A.jsxs)("div",{ref:o,style:{transform:s,transition:q},className:(0,W.cn)("grid min-w-0 items-center gap-3 border-b bg-card py-3 @[48rem]/presets:grid-cols-[auto_minmax(0,1fr)_7.5rem_4rem_auto]",r&&"z-10 opacity-70 shadow-lg"),children:[(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)(U.$,{variant:"ghost",size:"icon-sm",ref:n,type:"button",title:k("presetDrag"),"aria-label":k("presetDrag"),className:"touch-none cursor-grab text-muted-foreground active:cursor-grabbing",...l,...m,children:(0,A.jsx)(nE,{className:"size-4"})}),(0,A.jsxs)("div",{className:"flex gap-2",children:[(0,A.jsx)(U.$,{variant:"ghost",size:"icon-sm",type:"button",title:k("presetMoveUp"),"aria-label":k("presetMoveUp"),disabled:!e,onClick:i,children:(0,A.jsx)(nF.A,{className:"size-4"})}),(0,A.jsx)(U.$,{variant:"ghost",size:"icon-sm",type:"button",title:k("presetMoveDown"),"aria-label":k("presetMoveDown"),disabled:!f,onClick:j,children:(0,A.jsx)(cn.A,{className:"size-4"})})]})]}),(0,A.jsx)(nQ,{label:k("modelsHeading"),children:(0,A.jsx)(ki.b,{value:nV(b.provider,b.modelId),options:nX(d),ariaLabel:k("presetModel"),searchPlaceholder:k("modelSearch"),onChange:a=>{let c=d.find(b=>nV(b.provider,b.modelId)===a);c&&g({...b,provider:c.provider,modelId:c.modelId,thinkingLevel:c.thinkingLevels.includes(b.thinkingLevel)?b.thinkingLevel:c.thinkingLevels[0]})}})}),(0,A.jsx)(nQ,{label:k("thinkingLevel"),children:(0,A.jsx)(nS,{value:b.thinkingLevel,options:nY(c,k),ariaLabel:k("presetThinking"),allowEmpty:!1,onChange:a=>g({...b,thinkingLevel:a})})}),(0,A.jsx)(nQ,{label:k("presetColor"),children:(0,A.jsxs)(bO.l6,{value:t,onValueChange:a=>{null!==a&&g({...b,color:"none"===a?null:a})},children:[(0,A.jsx)(bO.bq,{"aria-label":k("presetColorLabel"),className:"w-16",children:(0,A.jsxs)(bO.yv,{children:[b.color?(0,A.jsx)("span",{"aria-hidden":"true",className:"size-4 shrink-0 rounded-full",style:{backgroundColor:b.color}}):(0,A.jsx)(nG,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),(0,A.jsx)("span",{className:"sr-only",children:v})]})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[120]",className:"w-40 min-w-40",align:"end",alignItemWithTrigger:!1,children:(0,A.jsx)(bO.s3,{className:"grid grid-cols-4 gap-1 p-2",children:w.map(a=>(0,A.jsx)(bO.eb,{value:a.value,label:a.label,"aria-label":a.label,className:"size-8 justify-center p-0 data-selected:bg-accent data-selected:ring-1 data-selected:ring-ring data-selected:ring-inset [&>span:first-child]:justify-center [&>span:last-child]:hidden",children:a.color?(0,A.jsx)("span",{"aria-hidden":"true",className:"size-4 shrink-0 self-center rounded-full",style:{backgroundColor:a.color}}):(0,A.jsx)(nG,{"aria-hidden":"true",className:"size-4 text-muted-foreground"})},a.value))})})]})}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm",title:k("presetDelete"),"aria-label":k("presetDelete"),onClick:h,children:(0,A.jsx)(bJ,{})})]})}function n$({presets:a,models:b,onChange:c}){let{t:d}=(0,Q.Bd)("settings"),[e,f]=(0,B.useState)(()=>b[0]?nV(b[0].provider,b[0].modelId):""),g=b.find(a=>nV(a.provider,a.modelId)===e),[h,i]=(0,B.useState)(g?.thinkingLevels[0]??"off"),j=mg(mf(mS,{activationConstraint:{distance:6}}),mf(mN,{coordinateGetter:nC})),k=(0,B.useMemo)(()=>a.map(nW),[a]);return(0,A.jsxs)("div",{className:"@container/presets space-y-4 p-4 sm:p-6",children:[(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:d("presetDescription")}),(0,A.jsxs)("div",{className:"grid gap-3 border-b pb-4 @[32rem]/presets:grid-cols-[minmax(0,1fr)_7.5rem_auto]",children:[(0,A.jsx)(nQ,{label:d("modelsHeading"),children:(0,A.jsx)(ki.b,{value:e,options:nX(b),ariaLabel:d("presetModelNew"),searchPlaceholder:d("modelSearch"),disabled:0===b.length,onChange:a=>{f(a);let c=b.find(b=>nV(b.provider,b.modelId)===a);c&&i(c.thinkingLevels[0])}})}),(0,A.jsx)(nQ,{label:d("thinkingLevel"),children:(0,A.jsx)(nS,{value:h,options:nY(g,d),ariaLabel:d("presetThinkingNew"),allowEmpty:!1,onChange:a=>i(a)})}),(0,A.jsxs)(U.$,{type:"button",variant:"outline",className:"self-end justify-self-start",onClick:function(){let d=b.find(a=>nV(a.provider,a.modelId)===e);if(!d)return;let f=d.thinkingLevels.includes(h)?h:d.thinkingLevels[0];a.some(a=>a.provider===d.provider&&a.modelId===d.modelId&&a.thinkingLevel===f)||c([...a,{provider:d.provider,modelId:d.modelId,thinkingLevel:f,color:nI(a)}])},disabled:!g,children:[(0,A.jsx)(am,{})," ",d("presetAdd")]})]}),0===a.length?(0,A.jsx)("p",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:d("presetEmpty")}):(0,A.jsx)(nh,{sensors:j,collisionDetection:mo,onDragEnd:function(b){if(!b.over||b.active.id===b.over.id)return;let d=k.indexOf(String(b.active.id)),e=k.indexOf(String(b.over.id));d>=0&&e>=0&&c(nl(a,d,e))},children:(0,A.jsx)(ns,{items:k,strategy:np,children:(0,A.jsx)("div",{className:"space-y-2",children:a.map((d,e)=>{let f=b.find(a=>a.provider===d.provider&&a.modelId===d.modelId);return(0,A.jsx)(nZ,{id:k[e],preset:d,model:f,models:b,canMoveUp:e>0,canMoveDown:e<a.length-1,onChange:b=>c(a.map((a,c)=>c===e?b:a)),onDelete:()=>c(a.filter((a,b)=>b!==e)),onMoveUp:()=>c(nl(a,e,e-1)),onMoveDown:()=>c(nl(a,e,e+1))},k[e])})})})})]})}let n_=(0,S.A)("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]),n0=(0,S.A)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var n1=c(99451),n2=c(9860);function n3(a){return 100*!!a.official+10*!!a.defaults.cost}let n4=[["off","thinkingOff"],["minimal","thinkingMinimal"],["low","thinkingLow"],["medium","thinkingMedium"],["high","thinkingHigh"],["xhigh","thinkingXhigh"],["max","thinkingMax"]],n5=[["input","inputPrice"],["output","outputPrice"],["cacheRead","cacheReadPrice"],["cacheWrite","cacheWritePrice"]];function n6(a){return{input:String(a.cost?.input??""),output:String(a.cost?.output??""),cacheRead:String(a.cost?.cacheRead??""),cacheWrite:String(a.cost?.cacheWrite??"")}}function n7(a,b){return Object.values(a).some(a=>null===nP(a))||Object.values(b).some(a=>""!==a&&(!Number.isFinite(Number(a))||0>Number(a)))}function n8({biz:a,provider:b,model:c,onChange:d,onInputState:e}){let{t:f}=(0,Q.Bd)("settings"),g=(0,B.useId)(),[h,i]=(0,B.useState)({contextWindow:nO(c.contextWindow),maxTokens:nO(c.maxTokens)}),[j,k]=(0,B.useState)(()=>n6(c)),{searchText:l,setSearchText:m,catalogOpen:n,setCatalogOpen:o,loadingCatalog:p,candidates:q,visibleCandidates:r,showAllCandidates:s,setShowAllCandidates:t,selectedCandidateKey:u,setSelectedCandidateKey:v}=function(a){let{t:b}=(0,Q.Bd)("settings");(0,bG.G)(),(0,B.useRef)(0);let[c,d]=(0,B.useState)(a),[e,f]=(0,B.useState)([]),[g,h]=(0,B.useState)(!1),[i,j]=(0,B.useState)(null),[k,l]=(0,B.useState)(!1),[m,n]=(0,B.useState)(!1),o=(0,B.useMemo)(()=>{let a=new Map,b=e.filter(a=>"exact"===a.match);for(let c of b.length?b:e)for(let b of c.sources){let d=JSON.stringify([c.referenceId,b.modelId,b.defaults]),e=a.get(d);e?e.sources.push(b):a.set(d,{item:c,sources:[b]})}let d=c.trim().toLocaleLowerCase();return[...a.entries()].map(([a,b])=>{let c=[...b.sources].sort((a,b)=>n3(b)-n3(a)||a.providerName.localeCompare(b.providerName)),d=c[0];return{key:a,item:b.item,source:d,equivalentSourceCount:c.length,recommended:d.official}}).sort((a,b)=>("exact"===a.item.match?0:"similar"===a.item.match?1:2)-("exact"===b.item.match?0:"similar"===b.item.match?1:2)||Number(b.recommended)-Number(a.recommended)||Number(b.source.modelId.toLocaleLowerCase()===d)-Number(a.source.modelId.toLocaleLowerCase()===d)||a.source.providerName.localeCompare(b.source.providerName))},[e,c]);return{searchText:c,setSearchText:d,catalogOpen:g,setCatalogOpen:a=>{h(a),a||l(!1)},loadingCatalog:k,candidates:o,visibleCandidates:m?o:o.slice(0,6),showAllCandidates:m,setShowAllCandidates:n,selectedCandidateKey:i,setSelectedCandidateKey:j}}(c.modelId),w=new Map(c.thinkingLevels.map(a=>[a.level,a])),x=nK.find(a=>a.value===b.api)?.label??b.api;function y(a){d({...c,...a})}return(0,A.jsxs)("div",{className:"@container/model-editor space-y-6",children:[(0,A.jsxs)("div",{className:"grid max-w-[40rem] gap-3 @[32rem]/model-editor:grid-cols-2",children:[(0,A.jsxs)("div",{className:"grid gap-1 text-sm @[32rem]/model-editor:col-span-2",children:[(0,A.jsx)("label",{htmlFor:g,className:"font-medium",children:f("modelId")}),(0,A.jsx)(n2.uB,{shouldFilter:!1,loop:!0,className:"h-auto w-full overflow-visible rounded-none bg-transparent p-0 [&_[data-slot=command-input-wrapper]]:p-0 [&_[data-slot=input-group-addon]]:hidden",onKeyDown:a=>{"Escape"===a.key&&n&&(a.preventDefault(),a.stopPropagation(),o(!1))},children:(0,A.jsxs)("div",{className:"relative",children:[(0,A.jsx)(n2.G7,{id:g,value:l,onValueChange:a=>{m(a),y({modelId:a}),v(null),t(!1),o(!0)},placeholder:f("modelIdSearch"),"aria-label":f("modelId"),"aria-autocomplete":"list",className:"pr-9"}),(0,A.jsxs)(cm.AM,{open:n,onOpenChange:a=>{o(a),a&&t(!1)},children:[(0,A.jsx)(cm.Wv,{render:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm",title:f("chooseModel"),"aria-label":f("chooseModel"),"aria-busy":p,className:"absolute top-0.5 right-0.5 z-10",children:p?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(n1.A,{})})}),(0,A.jsx)(cm.hl,{align:"end",sideOffset:4,initialFocus:!1,finalFocus:!1,positionerClassName:"z-[120]",className:"w-[min(32rem,calc(100vw-2rem))] gap-0 p-0",children:(0,A.jsx)(n2.oI,{className:"max-h-[min(24rem,var(--available-height))] p-1",children:p&&0===q.length?(0,A.jsx)("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:f("matchingCatalog")}):0===q.length?(0,A.jsx)(n2.xL,{className:"py-6 text-sm",children:f("noCatalogMatches")}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(n2.L$,{className:"p-0",children:r.map(a=>(0,A.jsx)(n2.h_,{value:a.key,"data-checked":u===a.key?"true":void 0,className:"px-3 py-2",onSelect:()=>(function(a){let{item:b,source:f}=a,g={...c,modelId:f.modelId,name:b.name,...f.defaults};d(g),i({contextWindow:nO(g.contextWindow),maxTokens:nO(g.maxTokens)}),k(n6(g)),e({dirty:!1,invalid:!1}),m(f.modelId),v(a.key),t(!1),o(!1)})(a),children:(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("span",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("span",{className:"break-all font-mono text-sm font-semibold",children:a.source.modelId}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:a.source.providerName})]}),(0,A.jsxs)("span",{className:"mt-1 block text-xs text-muted-foreground",children:[a.item.name," \xb7"," ",f("contextAndOutput",{context:`${nO(a.source.defaults.contextWindow)}K`,output:`${nO(a.source.defaults.maxTokens)}K`})]}),(0,A.jsx)("span",{className:"mt-1 block text-xs text-muted-foreground",children:a.source.defaults.cost?`${f("priceInput",{price:`$${a.source.defaults.cost.input}`})} \xb7 ${f("priceOutput",{price:`$${a.source.defaults.cost.output}`})}${f("perMillionTokens")}`:f("priceMissing")})]})},a.key))}),!s&&q.length>r.length?(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",className:"w-full",onClick:()=>t(!0),children:f("moreConfigurations",{count:q.length-r.length})}):null]})})})]})]})}),c.modelId.trim()?null:(0,A.jsx)("span",{className:"text-xs text-destructive",children:f("modelIdRequired")})]}),(0,A.jsxs)(nQ,{label:f("modelName"),className:"@[32rem]/model-editor:col-span-2",children:[(0,A.jsx)(bU.p,{value:c.name,onChange:a=>y({name:a.target.value})}),c.name.trim()?null:(0,A.jsx)("span",{className:"text-xs text-destructive",children:f("modelNameRequired")})]}),[["contextWindow","contextLength"],["maxTokens","maximumOutput"]].map(([a,b])=>{let c=null===nP(h[a]);return(0,A.jsxs)(nQ,{label:f(b),children:[(0,A.jsxs)(j0.MG,{children:[(0,A.jsx)(j0.iV,{"aria-label":f(b),inputMode:"decimal",value:h[a],"aria-invalid":c,"aria-describedby":c?`${g}-${a}-error`:void 0,onChange:b=>{var c;let d,f,g;return c=b.target.value,i(d={...h,[a]:c}),e({dirty:f=n7(d,j),invalid:f}),void(null!==(g=nP(c))&&y({[a]:g}))}}),(0,A.jsx)(j0.Sq,{align:"inline-end",children:"K"})]}),c?(0,A.jsx)("span",{id:`${g}-${a}-error`,role:"alert",className:"text-xs text-destructive",children:f("capacityInvalid")}):null]},a)})]}),(0,A.jsxs)("section",{children:[(0,A.jsx)("p",{className:"text-sm font-semibold",children:f("capabilities")}),(0,A.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-sm",children:[c.input.map(a=>(0,A.jsx)("span",{className:"rounded-md bg-muted px-2 py-1",children:f("text"===a?"textInput":"imageInput")},a)),c.reasoning?(0,A.jsx)("span",{className:"rounded-md bg-muted px-2 py-1",children:f("supportsThinking")}):null]})]}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:f("inputAndThinking")}),(0,A.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[["text","image"].map(a=>{let b=c.input.includes(a);return(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline","aria-pressed":b,onClick:()=>{b&&1===c.input.length||y({input:b?c.input.filter(b=>b!==a):[...c.input,a]})},children:[b?(0,A.jsx)(bp.A,{}):null,f("text"===a?"textInput":"imageInput")]},a)}),(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline","aria-pressed":c.reasoning,onClick:()=>y({reasoning:!c.reasoning,thinkingLevels:c.reasoning?[{level:"off",providerValue:null}]:[{level:"high",providerValue:null}]}),children:[c.reasoning?(0,A.jsx)(bp.A,{}):null,f("supportsThinking")]})]}),c.reasoning?(0,A.jsxs)("details",{className:"mt-4 border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-medium",children:f("thinkingMapping")}),(0,A.jsx)("div",{className:"mt-2 grid max-w-[40rem] gap-x-4 @[32rem]/model-editor:grid-cols-2",children:n4.map(([a,b])=>{let d=w.get(a);return(0,A.jsxs)("div",{className:"grid grid-cols-[6rem_minmax(0,1fr)] items-center gap-2 border-b py-2",children:[(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm","aria-pressed":!!d,className:"justify-start",onClick:()=>{let b=d?c.thinkingLevels.filter(b=>b.level!==a):[...c.thinkingLevels,{level:a,providerValue:"off"===a?null:a}];b.length&&y({thinkingLevels:b})},children:[d?(0,A.jsx)(bp.A,{}):null,f(b)]}),(0,A.jsx)(bU.p,{"aria-label":f("providerMapping",{level:f(b)}),disabled:!d||"off"===a,value:"off"===a?f("noMapping"):d?.providerValue??"",placeholder:a,onChange:b=>y({thinkingLevels:c.thinkingLevels.map(c=>c.level===a?{...c,providerValue:b.target.value||null}:c)})})]},a)})})]}):null]}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:f("price")}),(0,A.jsxs)("div",{className:"mt-3 grid max-w-[40rem] gap-3 @[32rem]/model-editor:grid-cols-2",children:[n5.map(([a,b])=>{let d=""!==j[a]&&(!Number.isFinite(Number(j[a]))||0>Number(j[a]));return(0,A.jsxs)(nQ,{label:f(b),children:[(0,A.jsx)(bU.p,{inputMode:"decimal",value:j[a],"aria-invalid":d,onChange:b=>(function(a,b){let d={...j,[a]:b};k(d);let f=n7(h,d);if(e({dirty:f,invalid:f}),Object.values(d).every(a=>""===a))return void y({cost:null});let g=Number(b);Number.isFinite(g)&&!(g<0)&&y({cost:{input:c.cost?.input??0,output:c.cost?.output??0,cacheRead:c.cost?.cacheRead??0,cacheWrite:c.cost?.cacheWrite??0,[a]:g}})})(a,b.target.value)}),d?(0,A.jsx)("span",{role:"alert",className:"text-xs text-destructive",children:f("priceInvalid")}):null]},a)}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",className:"justify-self-start",onClick:()=>{let a={input:"",output:"",cacheRead:"",cacheWrite:""};k(a),e({dirty:!0,invalid:n7(h,a)}),y({cost:null})},children:f("clearPrice")})]})]}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:f("advancedCompatibility")}),(0,A.jsxs)("div",{className:"mt-3 grid max-w-[40rem] gap-3 @[32rem]/model-editor:grid-cols-2",children:[(0,A.jsx)(nQ,{label:f("apiOverride"),className:"@[32rem]/model-editor:col-span-2",children:(0,A.jsx)(nS,{value:c.api??"",ariaLabel:f("apiOverride"),options:nK,placeholder:x?f("inheritServiceValue",{value:x}):f("inheritService"),onChange:a=>y({api:a||null})})}),(0,A.jsx)(nQ,{label:f("baseUrlOverride"),className:"@[32rem]/model-editor:col-span-2",children:(0,A.jsx)(bU.p,{value:c.baseUrl??"","aria-label":f("baseUrlOverride"),placeholder:b.baseUrl?f("inheritServiceValue",{value:b.baseUrl}):f("inheritService"),onChange:a=>y({baseUrl:a.target.value||null})})}),(0,A.jsx)(nQ,{label:f("modelHeaders"),className:"@[32rem]/model-editor:col-span-2",children:(0,A.jsx)(nN,{headers:c.headers,onChange:a=>y({headers:a}),placeholder:f("headerPlaceholder")})}),(0,A.jsx)(nQ,{label:f("developerRole"),children:(0,A.jsx)(nT,{value:c.compat?.supportsDeveloperRole??null,ariaLabel:f("developerRole"),onChange:a=>y({compat:{supportsDeveloperRole:a,thinkingFormat:c.compat?.thinkingFormat??null,requiresReasoningContentOnAssistantMessages:c.compat?.requiresReasoningContentOnAssistantMessages??null}})})}),(0,A.jsx)(nQ,{label:"Thinking Format",children:(0,A.jsx)(nS,{value:c.compat?.thinkingFormat??"",ariaLabel:"Thinking Format",options:nL.map(a=>({value:a,label:a})),onChange:a=>y({compat:{supportsDeveloperRole:c.compat?.supportsDeveloperRole??null,thinkingFormat:a||null,requiresReasoningContentOnAssistantMessages:c.compat?.requiresReasoningContentOnAssistantMessages??null}})})}),(0,A.jsx)(nQ,{label:f("replayReasoning"),children:(0,A.jsx)(nT,{value:c.compat?.requiresReasoningContentOnAssistantMessages??null,ariaLabel:f("replayReasoning"),onChange:a=>y({compat:{supportsDeveloperRole:c.compat?.supportsDeveloperRole??null,thinkingFormat:c.compat?.thinkingFormat??null,requiresReasoningContentOnAssistantMessages:a}})})})]})]})]})}var n9=c(72175),oa=c(24811);function ob({className:a,disabled:b,id:c,...d}){let{t:e}=(0,Q.Bd)("common"),[f,g]=B.useState(!1),h=e(f?"hideSecret":"revealSecret");return(0,A.jsxs)("div",{className:"relative min-w-0",children:[(0,A.jsx)(bU.p,{...d,id:c,disabled:b,type:"text",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:(0,W.cn)("pr-9",!f&&"[-webkit-text-security:disc]",a)}),(0,A.jsx)("button",{type:"button",className:"absolute top-1/2 right-1 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50","aria-label":h,"aria-controls":c,"aria-pressed":f,title:h,disabled:b,onClick:()=>g(a=>!a),children:f?(0,A.jsx)(n9.A,{className:"size-3.5"}):(0,A.jsx)(oa.A,{className:"size-3.5"})})]})}function oc({provider:a,existingIds:b,isNew:c,onApply:d,onDelete:e,onClose:f,onDirtyChange:g}){let{t:h}=(0,Q.Bd)("settings"),{confirm:i,dialog:j}=kc(),[k,l]=(0,B.useState)(()=>structuredClone(a)),m=JSON.stringify(k)!==JSON.stringify(a),n=!k.provider.trim()||b.includes(k.provider.trim()),o=k.provider||h("providerUnnamed");function p(a){l(b=>({...b,...a}))}async function q(){(!m||await i({title:h("discardServiceTitle"),description:h("discardServiceDescription"),confirmLabel:h("discardModelConfirm")}))&&f()}async function r(){await i({title:h("providerDeleteTitle"),description:h("providerDeleteDescription",{name:o,count:a.models.length})})&&e()}return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>{a||q()},children:(0,A.jsxs)(b3.hA,{className:"max-w-[40rem]",initialFocus:!1,children:[(0,A.jsxs)(b3.Hl,{className:"border-b px-4 py-4 pr-12",children:[(0,A.jsx)(b3.YM,{children:h("serviceConnection")}),(0,A.jsx)(b3.uX,{children:h("serviceDraftScope",{count:a.models.length})})]}),(0,A.jsx)(b3._Y,{className:"max-h-[65dvh]",children:(0,A.jsxs)("div",{className:"space-y-5 p-4",children:[(0,A.jsxs)(nQ,{label:h("serviceId"),children:[(0,A.jsx)(bU.p,{value:k.provider,"aria-label":h("serviceId"),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,placeholder:h("providerIdExample"),"aria-invalid":n,onChange:a=>p({provider:a.target.value})}),n?(0,A.jsx)("span",{role:"alert",className:"text-xs text-destructive",children:h("serviceIdInvalid")}):null]}),(0,A.jsx)(nQ,{label:h("serviceAddress"),children:(0,A.jsx)(bU.p,{value:k.baseUrl??"",placeholder:"https://api.example.com/v1",onChange:a=>p({baseUrl:a.target.value||null})})}),(0,A.jsx)(nQ,{label:h("providerApiType"),children:(0,A.jsx)(nS,{value:k.api??"",ariaLabel:h("providerApiType"),options:nK,onChange:a=>p({api:a||null})})}),(0,A.jsx)(nQ,{label:h("serviceKey"),children:(0,A.jsx)(ob,{value:k.apiKey??"",onChange:a=>p({apiKey:a.target.value||null})})}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:h("providerAdvanced")}),(0,A.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,A.jsx)(nQ,{label:h("providerAuthHeader"),children:(0,A.jsx)(nT,{value:k.authHeader,ariaLabel:h("providerAuthHeader"),onChange:a=>p({authHeader:a})})}),(0,A.jsx)(nQ,{label:h("providerHeaders"),children:(0,A.jsx)(nN,{headers:k.headers,onChange:a=>p({headers:a}),placeholder:h("headerPlaceholder")})})]})]})]})}),(0,A.jsxs)(b3.vu,{children:[c?null:(0,A.jsxs)(U.$,{type:"button",variant:"ghost",className:"mr-auto text-destructive hover:text-destructive",onClick:r,children:[(0,A.jsx)(bJ,{}),h("providerDelete")]}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",onClick:f,children:h("cancel",{ns:"common"})}),(0,A.jsx)(U.$,{type:"button",disabled:n||!m&&!c,onClick:()=>d(k),children:h("applyServiceDraft")})]})]})}),j]})}let od=E.Ik({}).strict(),oe=E.Yj().trim().min(1).max(128),of=E.Yj().max(32768),og=E.Ik({url:of,label:of.optional()}).strict(),oh=E.Ik({provider:oe,name:of,loggedIn:E.zM(),conflict:E.Yj().nullable()}).strict(),oi=E.Ik({id:E.Yj().uuid(),type:E.k5(["text","secret","select","manual_code"]),message:of,placeholder:of.optional(),options:E.YO(E.Ik({id:of,label:of,description:of.optional()}).strict()).optional()}).strict(),oj=E.gM("type",[E.Ik({type:E.eu("auth_url"),url:of,instructions:of.optional()}).strict(),E.Ik({type:E.eu("device_code"),userCode:of,verificationUri:of}).strict(),E.Ik({type:E.eu("info"),message:of,links:E.YO(og).optional()}).strict(),E.Ik({type:E.eu("progress"),message:of}).strict()]),ok=E.Ik({loginId:E.Yj().uuid(),provider:oe,status:E.k5(["running","completed","cancelled","error"]),notice:oj.nullable(),prompt:oi.nullable(),message:E.Yj().nullable()}).strict(),ol=Object.freeze({list:(0,F.Vc)({path:"model-auth/list",inputSchema:od,outputSchema:E.Ik({providers:E.YO(oh)}).strict()}),start:(0,F.Vc)({path:"model-auth/start",inputSchema:E.Ik({loginId:E.Yj().uuid(),provider:oe}).strict(),outputSchema:od}),respond:(0,F.Vc)({path:"model-auth/respond",inputSchema:E.Ik({loginId:E.Yj().uuid(),promptId:E.Yj().uuid(),value:of}).strict(),outputSchema:od}),cancel:(0,F.Vc)({path:"model-auth/cancel",inputSchema:E.Ik({loginId:E.Yj().uuid()}).strict(),outputSchema:od}),logout:(0,F.Vc)({path:"model-auth/logout",inputSchema:E.Ik({provider:oe}).strict(),outputSchema:od}),state:(0,F._G)({path:"model-auth/state",bodySchema:ok})});function om(a){try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol?b.href:null}catch{return null}}function on(a){let b=om(a);b&&window.open(b,"_blank","noopener,noreferrer")}async function oo(a){await navigator.clipboard.writeText(a)}function op({prompt:a,submitting:b,onRespond:c}){let{t:d}=(0,Q.Bd)("settings"),[e,f]=(0,B.useState)(""),g="select"!==a.type||e.length>0;return(0,A.jsxs)("form",{className:"grid gap-3",onSubmit:d=>{d.preventDefault(),g&&!b&&c(a.id,e)},children:[(0,A.jsx)(nQ,{label:a.message,children:"select"===a.type?(0,A.jsx)(nS,{value:e,ariaLabel:a.message,placeholder:a.placeholder??d("accountChooseOption"),options:(a.options??[]).map(a=>({value:a.id,label:a.description?`${a.label} — ${a.description}`:a.label})),onChange:f}):"secret"===a.type?(0,A.jsx)(ob,{value:e,placeholder:a.placeholder,disabled:b,onChange:a=>f(a.target.value)}):(0,A.jsx)(bU.p,{value:e,placeholder:a.placeholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,disabled:b,onChange:a=>f(a.target.value)})}),(0,A.jsx)(U.$,{type:"submit",disabled:!g||b,className:"justify-self-end",children:d("accountContinue")})]})}function oq({notice:a,onCopy:b,onOpenUrl:c}){let{t:d}=(0,Q.Bd)("settings"),e="auth_url"===a.type?[{url:a.url}]:"device_code"===a.type?[{url:a.verificationUri}]:"info"===a.type?a.links??[]:[];return(0,A.jsxs)("div",{className:"space-y-3",children:["auth_url"===a.type&&a.instructions?(0,A.jsx)("p",{className:"whitespace-pre-wrap text-sm",children:a.instructions}):null,"info"===a.type||"progress"===a.type?(0,A.jsx)("p",{className:"whitespace-pre-wrap text-sm",role:"status",children:a.message}):null,"device_code"===a.type?(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-lg border p-3",children:[(0,A.jsx)("span",{className:"text-sm",children:d("accountDeviceCode")}),(0,A.jsx)("code",{className:"select-all break-all text-lg font-semibold",children:a.userCode}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void b(a.userCode),children:d("accountCopyCode")})]}):null,e.map((a,e)=>om(a.url)?(0,A.jsxs)("div",{className:"space-y-2",children:[(0,A.jsx)("p",{className:"break-all text-sm text-muted-foreground",children:a.url}),(0,A.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:()=>c(a.url),children:a.label??d("accountOpenLink")}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>void b(a.url),children:d("accountCopyLink")})]})]},`${e}:${a.url}`):(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:d("accountInvalidLink")},e))]})}function or({open:a,connected:b,providers:c,state:d,loading:e,submitting:f,error:g,onClose:h,onStart:i,onRespond:j,onCopy:k,onOpenUrl:l,onRetry:m}){let{t:n}=(0,Q.Bd)("settings"),o=d?.status==="running";return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>{a||h()},children:(0,A.jsxs)(b3.hA,{className:"max-w-lg",children:[(0,A.jsx)(b3.Hl,{className:"border-b p-4 pr-12",children:(0,A.jsx)(b3.YM,{children:d?c.find(a=>a.provider===d.provider)?.name??d.provider:n("accountLogin")})}),(0,A.jsx)(b3._Y,{className:"max-h-[65dvh]",children:(0,A.jsxs)("div",{className:"space-y-4 p-4",children:[g?(0,A.jsx)("p",{role:"alert",className:"whitespace-pre-wrap text-sm text-destructive",children:g}):null,d?.message?(0,A.jsx)("p",{role:"error"===d.status?"alert":"status",className:"whitespace-pre-wrap text-sm",children:d.message}):null,d&&"cancelled"!==d.status&&"error"!==d.status?null:e?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:n("accountLoadingProviders")}):(0,A.jsxs)("div",{className:"grid gap-2",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:n("accountChooseProvider")}),c.length?null:(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:n("accountNoProviders")}),c.map(a=>(0,A.jsxs)("div",{className:"grid gap-1",children:[(0,A.jsxs)(U.$,{type:"button",variant:"outline",className:"h-auto min-h-10 justify-between whitespace-normal text-left",disabled:!b||!!a.conflict,onClick:()=>void i(a.provider),children:[(0,A.jsx)("span",{children:a.name}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:a.loggedIn?n("accountRelogin"):n("accountLogin")})]}),a.conflict?(0,A.jsx)("p",{className:"text-sm text-destructive",children:a.conflict}):null]},a.provider))]}),o&&d.notice?(0,A.jsx)(oq,{notice:d.notice,onCopy:k,onOpenUrl:l}):null,o&&d.prompt?(0,A.jsx)(op,{prompt:d.prompt,submitting:f||!b,onRespond:j},d.prompt.id):null,o&&!d.prompt?(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:n("accountWaiting")}):null,d?.status==="completed"?(0,A.jsx)("p",{role:"status",className:"text-sm",children:n("accountLoggedIn")}):null]})}),(0,A.jsxs)(b3.vu,{children:[g&&!o?(0,A.jsx)(U.$,{type:"button",variant:"outline",disabled:e,onClick:m,children:n("retry",{ns:"common"})}):null,(0,A.jsx)(U.$,{type:"button",variant:"ghost",onClick:h,children:n(o?"cancel":"close",{ns:"common"})})]})]})})}function os({account:a,existingIds:b,onAdd:c,onClose:d}){let{t:e}=(0,Q.Bd)("settings"),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)([]),j=a.models.filter(a=>`${a.name} ${a.modelId}`.toLocaleLowerCase().includes(f.toLocaleLowerCase()));return(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>{a||d()},children:(0,A.jsxs)(b3.hA,{className:"max-w-xl",children:[(0,A.jsx)(b3.Hl,{className:"border-b p-4 pr-12",children:(0,A.jsx)(b3.YM,{children:e("modelAddToService",{name:a.name})})}),(0,A.jsx)("div",{className:"p-4 pb-2",children:(0,A.jsx)(bU.p,{value:f,"aria-label":e("accountModelSearch"),placeholder:e("accountModelSearch"),onChange:a=>g(a.target.value)})}),(0,A.jsx)(b3._Y,{className:"max-h-[55dvh]",children:(0,A.jsxs)("div",{className:"space-y-1 px-4 pb-4",children:[j.map(a=>{let c=b.includes(a.modelId);return(0,A.jsxs)("label",{className:"flex min-h-14 cursor-pointer items-center gap-3 rounded-lg px-3 py-2 hover:bg-accent",children:[(0,A.jsx)("input",{type:"checkbox",className:"size-4 shrink-0 accent-primary",checked:c||h.includes(a.modelId),disabled:c,onChange:b=>i(c=>b.target.checked?[...c,a.modelId]:c.filter(b=>b!==a.modelId))}),(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsx)("span",{className:"block break-words text-sm font-medium",children:a.name}),(0,A.jsxs)("span",{className:"block break-all text-xs text-muted-foreground",children:[a.modelId," \xb7 ",nO(a.contextWindow)," K"]})]}),c?(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:e("accountModelAdded")}):null]},a.modelId)}),j.length?null:(0,A.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:e("accountNoModels")})]})}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",onClick:d,children:e("accountAddLater")}),(0,A.jsx)(U.$,{type:"button",disabled:!h.length,onClick:()=>c(h),children:e("accountAddSelected",{count:h.length})})]})]})})}let ot=[["input","inputPrice"],["output","outputPrice"],["cacheRead","cacheReadPrice"],["cacheWrite","cacheWritePrice"]];function ou({model:a,account:b,overrides:c,onChange:d,onInputState:e}){let{t:f}=(0,Q.Bd)("settings"),[g,h]=(0,B.useState)(()=>({contextWindow:void 0===c.contextWindow?"":nO(c.contextWindow),maxTokens:void 0===c.maxTokens?"":nO(c.maxTokens),...Object.fromEntries(ot.map(([a])=>[a,c.cost?.[a]===void 0?"":String(c.cost[a])]))})),i=a=>""!==a&&null===nP(a),j=a=>""!==a&&(!Number.isFinite(Number(a))||0>Number(a));function k(a,b){let f={...g,[a]:b};h(f);let k=i(f.contextWindow)||i(f.maxTokens)||ot.some(([a])=>j(f[a]));if(e({dirty:k,invalid:k}),"contextWindow"===a||"maxTokens"===a){if(i(b))return;let e={...c};""===b?delete e[a]:e[a]=nP(b),d(e)}else{if(ot.some(([a])=>j(f[a])))return;let a={...c};ot.every(([a])=>""===f[a])?delete a.cost:a.cost=Object.fromEntries(ot.filter(([a])=>""!==f[a]).map(([a])=>[a,Number(f[a])])),d(a)}}if(!a)return(0,A.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:f("accountModelUnavailable")});let l=a.cost?{...a.cost,...c.cost}:c.cost;return(0,A.jsxs)("div",{className:"max-w-[40rem] space-y-6",children:[(0,A.jsxs)("div",{className:"flex flex-wrap gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)("span",{children:f(b?.loggedIn?"accountLoggedIn":"accountLoggedOut")}),b?.subscription?(0,A.jsx)("span",{className:"rounded-md bg-muted px-2",children:f("accountSubscription")}):null]}),(0,A.jsxs)("dl",{className:"grid gap-4 sm:grid-cols-2",children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-sm text-muted-foreground",children:f("contextLength")}),(0,A.jsxs)("dd",{className:"mt-1 text-lg font-semibold",children:[nO(c.contextWindow??a.contextWindow)," K"]})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("dt",{className:"text-sm text-muted-foreground",children:f("maximumOutput")}),(0,A.jsxs)("dd",{className:"mt-1 text-lg font-semibold",children:[nO(c.maxTokens??a.maxTokens)," K"]})]}),(0,A.jsxs)("div",{className:"sm:col-span-2",children:[(0,A.jsx)("dt",{className:"text-sm text-muted-foreground",children:f("capabilities")}),(0,A.jsx)("dd",{className:"mt-1 text-sm",children:[...a.input.map(a=>f("image"===a?"imageInput":"textInput")),...a.reasoning?[f("supportsThinking")]:[]].join(" \xb7 ")})]})]}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:f("accountReferencePrice")}),(0,A.jsx)("div",{className:"mt-3 text-sm text-muted-foreground",children:l?ot.map(([a,b])=>(0,A.jsxs)("p",{children:[f(b),": ",void 0===l[a]?"—":`$${l[a]}`]},a)):f("priceMissing")})]}),(0,A.jsxs)("details",{className:"border-t pt-3",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-semibold",children:f("accountAdjustParameters")}),(0,A.jsxs)("div",{className:"mt-4 space-y-4",children:[(0,A.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:["contextWindow","maxTokens"].map(b=>(0,A.jsxs)(nQ,{label:`${f("contextWindow"===b?"contextLength":"maximumOutput")} (K)`,children:[(0,A.jsx)(bU.p,{value:g[b],placeholder:nO(a[b]),inputMode:"decimal","aria-invalid":i(g[b]),onChange:a=>k(b,a.target.value)}),i(g[b])?(0,A.jsx)("span",{className:"text-xs text-destructive",children:f("capacityInvalid")}):null]},b))}),(0,A.jsxs)("details",{children:[(0,A.jsx)("summary",{className:"cursor-pointer text-sm font-medium",children:f("price")}),(0,A.jsx)("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:ot.map(([b,c])=>(0,A.jsxs)(nQ,{label:f(c),children:[(0,A.jsx)(bU.p,{value:g[b],inputMode:"decimal",placeholder:String(a.cost?.[b]??""),"aria-invalid":j(g[b]),onChange:a=>k(b,a.target.value)}),j(g[b])?(0,A.jsx)("span",{className:"text-xs text-destructive",children:f("priceInvalid")}):null]},b))})]}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{h({contextWindow:"",maxTokens:"",input:"",output:"",cacheRead:"",cacheWrite:""}),d({}),e({dirty:!1,invalid:!1})},children:f("accountRestoreDefaults")})]})]})]})}let ov=(0,S.A)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);function ow({name:a,hasAccount:b,loggedIn:c,hasCustom:d,onCustomSettings:e,onLogin:f,onLogout:g}){let{t:h}=(0,Q.Bd)("settings"),[i,j]=(0,B.useState)(!1),k=(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":h("serviceSettingsNamed",{name:a}),onClick:b?void 0:e,children:(0,A.jsx)(ov,{})});function l(a){j(!1),a()}return b?(0,A.jsxs)(cm.AM,{open:i,onOpenChange:j,children:[(0,A.jsx)(cm.Wv,{render:k}),(0,A.jsxs)(cm.hl,{align:"end",positionerClassName:"z-[120]",className:"w-52 gap-1 p-1",children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",className:"justify-start",onClick:()=>l(f),children:h(c?"accountRelogin":"accountLogin")}),c?(0,A.jsx)(U.$,{type:"button",variant:"ghost",className:"justify-start text-destructive",onClick:()=>l(g),children:h("accountLogout")}):null,d?(0,A.jsx)(U.$,{type:"button",variant:"ghost",className:"justify-start",onClick:()=>l(e),children:h("accountCustomSettings")}):null]})]}):k}function ox({providerId:a,custom:b,account:c,accountModels:d,query:e,modelKeys:f,selectedCustomIndex:g,selectedAccountId:h,presets:i,onSelectCustom:j,onSelectAccount:k,onCustomSettings:l,onAddCustom:m,onAddAccount:n,onLogin:o,onLogout:p,onGroupRef:q,onRowRef:r}){let{t:s}=(0,Q.Bd)("settings"),t=(b?a:c?.name)||a||s("providerUnnamed"),u=d.filter(a=>!b?.models.some(b=>b.modelId===a.modelId)),v=[...(b?.models??[]).map((a,b)=>({key:f[b],modelId:a.modelId,name:a.name,model:a,selected:g===b,select:()=>j(b)})),...u.map(b=>{let d=c?.models.find(a=>a.modelId===b.modelId);return{key:`account:${a}:${b.modelId}`,modelId:b.modelId,name:d?.name??b.modelId,model:d?{...d,...b.overrides}:void 0,selected:h===b.modelId,select:()=>k(b.modelId)}})],w=v.filter(b=>`${a} ${t} ${c?.name??""} ${b.name} ${b.modelId}`.toLocaleLowerCase().includes(e.toLocaleLowerCase()));if(e&&!w.length&&!`${a} ${t} ${c?.name??""}`.toLocaleLowerCase().includes(e.toLocaleLowerCase()))return null;let x=!!c||d.length>0;return(0,A.jsxs)("section",{ref:q,className:"mb-3",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1 text-foreground",children:[(0,A.jsx)(b7,{"aria-hidden":"true",className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:c?.name,children:t}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:v.length}),(0,A.jsx)(ow,{name:t,hasAccount:x,loggedIn:c?.loggedIn??!1,hasCustom:!!b,onCustomSettings:l,onLogin:o,onLogout:p})]}),(0,A.jsxs)("div",{className:"space-y-1",children:[w.map(b=>(0,A.jsxs)("button",{ref:a=>r(b.key,a),type:"button","aria-current":b.selected?"true":void 0,className:(0,W.cn)("flex min-h-14 w-full cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-left outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",b.selected&&"bg-accent text-accent-foreground"),onClick:b.select,children:[(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsx)("span",{className:"block truncate text-sm font-medium",children:b.name||b.modelId||s("modelUnnamed")}),(0,A.jsx)("span",{className:"mt-0.5 block truncate text-xs text-muted-foreground",children:b.model?`${nO(b.model.contextWindow)} K \xb7 ${s(b.model.input.includes("image")?"imageInput":"textInput")}`:s("accountModelUnavailableShort")})]}),i.some(c=>c.provider===a&&c.modelId===b.modelId)?(0,A.jsx)(n0,{className:"size-4 shrink-0 text-muted-foreground"}):null]},b.key)),x?(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",className:"mt-1 w-full border border-dashed border-input","aria-label":s("modelAddToService",{name:c?.name??t}),onClick:n,children:[(0,A.jsx)(am,{}),s("modelAdd")]}):null,b?(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",className:"mt-1 w-full border border-dashed border-input","aria-label":s("modelAddToService",{name:t}),onClick:m,children:[(0,A.jsx)(am,{}),x?s("accountCustomModel"):null]}):null]})]})}let oy={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function oz({biz:a,connectionReady:b,providers:c,accounts:d,accountModels:e,onAccountModelsChange:f,onRefreshAccounts:g,savedModels:h,savedProviders:i,presets:j,resetVersion:k,onChange:l,onPresetsChange:m,onInputState:n,onServiceDirtyChange:o}){let{t:p}=(0,Q.Bd)("settings"),{confirm:q,dialog:r}=kc(),s=(0,bG.G)(),[t,u]=(0,B.useState)(null),[v,w]=(0,B.useState)(null),[x,y]=(0,B.useState)(!1),[z,C]=(0,B.useState)(()=>new Set),D=function(a,b){let{appSocket:c}=(0,bN.gM)(),d=(0,B.useMemo)(()=>({list:async()=>(await c.request(ol.list,{})).providers,async start(a,b){await c.request(ol.start,{loginId:a,provider:b})},async respond(a,b,d){await c.request(ol.respond,{loginId:a,promptId:b,value:d})},async cancel(a){await c.request(ol.cancel,{loginId:a})},async logout(a){await c.request(ol.logout,{provider:a})},subscribe:a=>c.subscribe(ol.state,a)}),[c]),{t:e}=(0,Q.Bd)("settings"),f=(0,bG.G)(),[g,h]=(0,B.useState)(!1),[i,j]=(0,B.useState)([]),[k,l]=(0,B.useState)(null),[m,n]=(0,B.useState)(!1),[o,p]=(0,B.useState)(!1),[q,r]=(0,B.useState)(null),[s,t]=(0,B.useState)(null),u=(0,B.useRef)(a),v=(0,B.useRef)(null),w=(0,B.useRef)(null),x=(0,B.useRef)(null),y=(0,B.useRef)(null),z=(0,B.useRef)(0),A=(0,B.useRef)(b);function C(){let a=v.current;v.current=null,w.current=null,x.current=null,y.current?.(),y.current=null,a?.status==="running"&&d.cancel(a.loginId).catch(a=>{console.warn("[Pi Desk][ModelAuth] 取消登录失败",{message:a instanceof Error?a.message:String(a)})})}function D(){z.current+=1,C(),h(!1)}async function E(){let a=v.current;if(!a||"completed"!==a.status||x.current)return;x.current=a.loginId,p(!0),t(null);let b=()=>v.current?.loginId===a.loginId;try{await A.current(a.provider,b),b()&&D()}catch(a){b()&&t(a instanceof Error?a.message:e("accountRefreshFailed"))}finally{b()&&(x.current=null,p(!1))}}async function F(a){if(!u.current)return void t(e("accountConnectionNotReady"));if(v.current?.status==="running")return;C();let b={loginId:crypto.randomUUID(),provider:a,status:"running",notice:null,prompt:null,message:null};v.current=b,l(b),t(null),r(null),y.current=d.subscribe(a=>{v.current?.loginId===a.loginId&&((v.current.prompt?.id!==a.prompt?.id||"running"!==a.status)&&(w.current=null,r(null)),v.current=a,l(a),t("error"!==a.status||a.message?null:e("accountLoginFailed")),"completed"===a.status&&E())});try{await d.start(b.loginId,a)}catch(a){if(v.current?.loginId!==b.loginId||"running"!==v.current.status)return;C(),l(null),t(a instanceof Error?a.message:e("accountLoginFailed"))}}async function G(a,b){let c=v.current;if(!u.current||!c||"running"!==c.status||c.prompt?.id!==a||w.current)return;let f={loginId:c.loginId,promptId:a};w.current=f,r(a),t(null);try{await d.respond(c.loginId,a,b)}catch(b){v.current?.loginId===c.loginId&&v.current.prompt?.id===a&&t(b instanceof Error?b.message:e("accountLoginFailed"))}finally{w.current===f&&(w.current=null,r(null))}}return{open:g,providers:i,state:k,loading:m||o,submitting:null!==q&&q===k?.prompt?.id,error:s,show:function(a){if(D(),l(null),t(null),r(null),p(!1),h(!0),!u.current){n(!1),t(e("accountConnectionNotReady"));return}n(!0);let b=++z.current;d.list().then(c=>{z.current===b&&(j(c),a&&c.some(b=>b.provider===a&&!b.conflict)&&F(a))}).catch(a=>{z.current===b&&t(a instanceof Error?a.message:e("accountLoginFailed"))}).finally(()=>{z.current===b&&n(!1)})},close:D,start:F,respond:G,finish:E,async logout(a){if(!u.current)throw Error(e("accountConnectionNotReady"));await d.logout(a)},async copy(a){try{await oo(a),f.success(e("accountCopied"))}catch{f.error(e("accountCopyFailed"))}},openUrl:on}}(b,async(a,b)=>{await g(),b()&&w(a)}),E=function(a,b){let[c,d]=(0,B.useState)(()=>{let b=a.findIndex(a=>a.models.length>0);return b<0?null:{providerIndex:b,modelIndex:0}}),[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)(""),[i,j]=(0,B.useState)(()=>a.map((a,b)=>a.models.map((a,c)=>`${b}:${c}`))),k=(0,B.useRef)(0),l=(0,B.useRef)(new Map(a.flatMap((a,b)=>a.models.map((c,d)=>[`${b}:${d}`,{provider:a.provider,modelId:c.modelId}])))),[m,n]=(0,B.useState)({}),[o,p]=(0,B.useState)(null),[q,r]=(0,B.useState)(!1);function s(a){n(b=>Object.fromEntries(Object.entries(b).filter(([b])=>!a.includes(b))))}function t(a,c=i){let d=[];a.forEach((a,b)=>{a.models.forEach((e,f)=>{let g=l.current.get(c[b][f]),h={provider:a.provider.trim(),modelId:e.modelId.trim()};g&&(g.provider!==h.provider||g.modelId!==h.modelId)&&d.push({from:g,to:h})})}),b(a,d)}function u(){p(null),r(!1)}return(0,B.useRef)(a),{selection:c,mobileDetail:e,query:g,setQuery:h,modelKeys:i,serviceIndex:o,newService:q,openService:a=>{p(a),r(null===a)},closeService:u,applyService:b=>{q?(t([...a,b],[...i,[]]),j(a=>[...a,[]])):t(a.map((a,c)=>c===o?b:a)),u()},deleteService:()=>{if(null===o)return;s(i[o]);let b=a.filter((a,b)=>b!==o);t(b,i.filter((a,b)=>b!==o)),j(a=>a.filter((a,b)=>b!==o)),d(a=>{if(!a||a.providerIndex===o){let a=b.findIndex(a=>a.models.length);return a<0?null:{providerIndex:a,modelIndex:0}}return a.providerIndex>o?{...a,providerIndex:a.providerIndex-1}:a}),f(!1),u()},addModel:b=>{let c=a[b],e=`new-${++k.current}`;t(a.map((a,c)=>c===b?{...a,models:[...a.models,{modelId:"",name:"",api:null,baseUrl:null,reasoning:!1,thinkingLevels:[{level:"off",providerValue:null}],input:["text"],contextWindow:128e3,maxTokens:16384,cost:null,headers:{},compat:null}]}:a),i.map((a,c)=>c===b?[...a,e]:a)),j(a=>a.map((a,c)=>c===b?[...a,e]:a)),d({providerIndex:b,modelIndex:c.models.length}),h(""),f(!0)},selectModel:(a,b)=>{d({providerIndex:a,modelIndex:b}),f(!0)},backToList:()=>{f(!1),h("")},updateModel:function(b,c,d){t(a.map((a,e)=>e===b?{...a,models:a.models.map((a,b)=>b===c?d:a)}:a))},deleteModel:(b,c)=>{s([i[b][c]]);let e=a.map((a,d)=>d===b?{...a,models:a.models.filter((a,b)=>b!==c)}:a);t(e,i.map((a,d)=>d===b?a.filter((a,b)=>b!==c):a)),j(a=>a.map((a,d)=>d===b?a.filter((a,b)=>b!==c):a)),d(a=>{if(!a||a.providerIndex!==b)return a;if(a.modelIndex===c){if(e[b].models.length)return{providerIndex:b,modelIndex:Math.min(c,e[b].models.length-1)};let a=e.findIndex(a=>a.models.length);return a<0?null:{providerIndex:a,modelIndex:0}}return a.modelIndex>c?{...a,modelIndex:a.modelIndex-1}:a}),f(!1)},updateInputState:(a,b)=>n(c=>({...c,[a]:b}))}}(c,l),{selection:F,mobileDetail:G,query:H,setQuery:I,modelKeys:J,serviceIndex:K,newService:L}=E,M=(0,B.useRef)(new Map),N=(0,B.useRef)(new Map),[O,P]=(0,B.useState)(!1),[R,S]=(0,B.useState)("off"),T=e.find(a=>a.provider===t?.provider&&a.modelId===t?.modelId)??(c.some(a=>a.models.length)?void 0:e[0]),V=d.find(a=>a.provider===T?.provider),X=V?.models.find(a=>a.modelId===T?.modelId),Y=!!T,$=!Y&&F?c[F.providerIndex]:null,_=!Y&&F?$?.models[F.modelIndex]:null,aa=Y?x:G&&!!_,ab=Y?X?.name??T?.modelId:_?.name||_?.modelId||p("modelUnnamed"),ac=T?.provider||$?.provider||p("providerUnnamed"),ad=d.find(a=>a.provider===v),ae=[...new Set([...c.map(a=>a.provider),...d.map(a=>a.provider),...e.map(a=>a.provider)])],af=a=>`account:${a.provider}:${a.modelId}`,ag=new Set(e.map(af)),ah=new Set([...z].filter(a=>ag.has(a)));T&&ah.add(af(T)),(ah.size!==z.size||T&&!z.has(af(T)))&&C(ah);let[ai,aj]=(0,B.useState)(()=>new Set),ak=F?J[F.providerIndex]?.[F.modelIndex]:void 0,al=new Set(J.flat()),an=new Set([...ai].filter(a=>al.has(a)));ak&&an.add(ak),(an.size!==ai.size||ak&&!ai.has(ak))&&aj(an);let ao=Y?h.find(a=>a.provider===T?.provider&&a.modelId===T.modelId):$&&_&&i.some(a=>a.provider===$.provider&&a.models.some(a=>a.modelId===_.modelId))?h.find(a=>a.provider===$.provider&&a.modelId===_.modelId):void 0;async function ap(){if(T){await q({title:p("accountRemoveTitle"),description:p("accountRemoveDescription",{name:ab})})&&(f(e.filter(a=>a!==T)),E.updateInputState(af(T),{dirty:!1,invalid:!1}),u(null),y(!1));return}F&&_&&await q({title:p("modelDeleteTitle"),description:p("modelDeleteDescription",{name:_.name||_.modelId||p("modelUnnamed")})})&&E.deleteModel(F.providerIndex,F.modelIndex)}async function aq(a){if(await q({title:p("accountLogoutTitle"),description:p("accountLogoutDescription",{name:d.find(b=>b.provider===a)?.name??a}),confirmLabel:p("accountLogout")}))try{await D.logout(a),await g()}catch(a){s.error(a instanceof Error?a.message:p("accountLogoutFailed"))}}return(0,A.jsxs)("section",{className:"@container/models h-full min-h-0 overflow-hidden bg-card",children:[(0,A.jsxs)("div",{className:"grid h-full min-h-0 grid-cols-1 @[48rem]/models:grid-cols-[15rem_minmax(0,1fr)]",children:[(0,A.jsxs)("aside",{"aria-label":p("providerList"),className:(0,W.cn)("min-h-0 min-w-0 flex-col bg-sidebar @[48rem]/models:flex @[48rem]/models:border-r",aa?"hidden":"flex"),children:[(0,A.jsx)("div",{className:"shrink-0 p-3",children:(0,A.jsx)(bU.p,{value:H,"aria-label":p("modelSearch"),placeholder:p("modelSearch"),onChange:a=>I(a.target.value)})}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto px-2 pb-3",children:[ae.map(a=>{let b=c.findIndex(b=>b.provider===a);return(0,A.jsx)(ox,{providerId:a,custom:c[b],account:d.find(b=>b.provider===a),accountModels:e.filter(b=>b.provider===a),query:H,modelKeys:J[b]??[],selectedCustomIndex:Y||F?.providerIndex!==b?null:F.modelIndex,selectedAccountId:T?.provider===a?T.modelId:null,presets:j,onSelectCustom:a=>{u(null),E.selectModel(b,a)},onSelectAccount:b=>{u({provider:a,modelId:b}),y(!0),C(c=>new Set([...c,af({provider:a,modelId:b})]))},onCustomSettings:()=>E.openService(b),onAddCustom:()=>{u(null),E.addModel(b)},onAddAccount:()=>{let b;return b=d.find(b=>b.provider===a),void(b?.loggedIn?w(a):D.show(a))},onLogin:()=>D.show(a),onLogout:()=>void aq(a),onGroupRef:a=>{b<0||(a?M.current.set(b,a):M.current.delete(b))},onRowRef:(a,b)=>{b?N.current.set(a,b):N.current.delete(a)}},a)}),ae.length?null:(0,A.jsx)("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:p("providerEmpty")})]}),(0,A.jsxs)("div",{className:"flex shrink-0 gap-2 border-t p-3",children:[(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",onClick:()=>E.openService(null),children:[(0,A.jsx)(am,{}),p("accountCustomApi")]}),(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",onClick:()=>D.show(),children:[(0,A.jsx)(n_,{}),p("accountLogin")]})]})]}),(0,A.jsx)("section",{"aria-label":p("modelsHeading"),className:(0,W.cn)("min-h-0 min-w-0 flex-col @[48rem]/models:flex",aa?"flex":"hidden"),children:Y||_&&F?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex shrink-0 items-center gap-2 border-b px-4 py-2 @[48rem]/models:hidden",children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":p("backModelList"),onClick:function(){if(T){y(!1),window.requestAnimationFrame(()=>{let a=N.current.get(af(T));a?.scrollIntoView({block:"nearest"}),a?.focus({preventScroll:!0})});return}E.backToList(),window.requestAnimationFrame(()=>{if(!F)return;let a=J[F.providerIndex]?.[F.modelIndex];M.current.get(F.providerIndex)?.scrollIntoView({block:"nearest"}),N.current.get(a)?.scrollIntoView({block:"nearest"}),N.current.get(a)?.focus({preventScroll:!0})})},children:(0,A.jsx)(Z.A,{})}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:V?.name??ac,children:V?.name??ac}),(0,A.jsx)(ow,{name:ac,hasAccount:d.some(a=>a.provider===ac)||e.some(a=>a.provider===ac),loggedIn:d.find(a=>a.provider===ac)?.loggedIn??!1,hasCustom:c.some(a=>a.provider===ac),onCustomSettings:()=>E.openService(c.findIndex(a=>a.provider===ac)),onLogin:()=>D.show(ac),onLogout:()=>void aq(ac)})]}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-4 @[48rem]/models:p-6",children:[(0,A.jsxs)("div",{className:"mb-5 flex flex-wrap items-center justify-between gap-2",children:[(0,A.jsx)("h3",{className:"min-w-0 break-all text-lg font-semibold",children:ab}),(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",disabled:!ao,title:ao?void 0:p("saveBeforePreset"),onClick:()=>{S(ao?.thinkingLevels[0]??"off"),P(!0)},children:[(0,A.jsx)(n0,{}),p("addModelPreset")]}),(0,A.jsxs)(dX.m_,{children:[(0,A.jsx)(dX.k$,{render:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm",className:"text-destructive hover:text-destructive","aria-label":Y?`${p("accountRemove")} ${ab}`:p("modelDeleteNamed",{name:ab}),onClick:ap,children:(0,A.jsx)(bJ,{})})}),(0,A.jsx)(dX.ZI,{children:p(Y?"accountRemove":"modelDelete")})]})]})]}),e.map(a=>{let b=af(a);if(!ah.has(b))return null;let c=d.find(b=>b.provider===a.provider);return(0,A.jsx)("div",{hidden:!Y||T!==a,children:(0,A.jsx)(ou,{account:c,model:c?.models.find(b=>b.modelId===a.modelId),overrides:a.overrides,onChange:b=>f(e.map(c=>c===a?{...a,overrides:b}:c)),onInputState:a=>E.updateInputState(b,a)})},`${b}:${k}`)}),c.flatMap((b,c)=>b.models.map((d,e)=>{let f=!Y&&F?.providerIndex===c&&F.modelIndex===e,g=J[c]?.[e];return an.has(g)?(0,A.jsx)("div",{hidden:!f,children:(0,A.jsx)(n8,{biz:a,provider:b,model:d,onChange:a=>E.updateModel(c,e,a),onInputState:a=>E.updateInputState(g,a)})},`${g}:${k}`):null}))]})]}):(0,A.jsxs)("div",{className:"flex flex-col items-center gap-3 p-6 text-sm text-muted-foreground",children:[(0,A.jsx)(cg,{className:"size-6"}),p("selectModelToEdit")]})})]}),(0,A.jsx)(or,{open:D.open,connected:b,providers:D.providers,state:D.state,loading:D.loading,submitting:D.submitting,error:D.error,onClose:D.close,onStart:D.start,onRespond:D.respond,onCopy:D.copy,onOpenUrl:D.openUrl,onRetry:()=>D.state?.status==="completed"?void D.finish():D.show()}),ad?(0,A.jsx)(os,{account:ad,existingIds:[...e.filter(a=>a.provider===ad.provider).map(a=>a.modelId),...c.filter(a=>a.provider===ad.provider).flatMap(a=>a.models.map(a=>a.modelId))],onAdd:function(a){if(!ad)return;let b=a.filter(a=>!e.some(b=>b.provider===ad.provider&&b.modelId===a)&&!c.some(b=>b.provider===ad.provider&&b.models.some(b=>b.modelId===a))).map(a=>({provider:ad.provider,modelId:a,overrides:{}}));f([...e,...b]),w(null)},onClose:()=>w(null)},ad.provider):null,L||null!==K?(0,A.jsx)(oc,{provider:L?{provider:"",name:null,baseUrl:null,api:"openai-responses",apiKey:null,authHeader:null,headers:{},models:[]}:c[K],existingIds:c.filter((a,b)=>L||b!==K).map(a=>a.provider),isNew:L,onApply:E.applyService,onDelete:E.deleteService,onClose:E.closeService,onDirtyChange:o}):null,(0,A.jsx)(b3.YV,{open:O,onOpenChange:P,children:(0,A.jsxs)(b3.hA,{children:[(0,A.jsx)(b3.Hl,{className:"border-b px-4 py-4 pr-12",children:(0,A.jsx)(b3.YM,{children:p("addModelPreset")})}),(0,A.jsx)(b3._Y,{children:(0,A.jsx)("div",{className:"p-4",children:(0,A.jsx)(nQ,{label:p("thinkingLevel"),children:(0,A.jsx)(nS,{value:R,allowEmpty:!1,ariaLabel:p("presetThinkingNew"),options:(ao?.thinkingLevels??[]).map(a=>({value:a,label:p(oy[a])})),onChange:a=>S(a)})})})}),(0,A.jsxs)(b3.vu,{children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",onClick:()=>P(!1),children:p("cancel",{ns:"common"})}),(0,A.jsx)(U.$,{type:"button",onClick:function(){ao&&(j.some(a=>a.provider===ao.provider&&a.modelId===ao.modelId&&a.thinkingLevel===R)||m([...j,{provider:ao.provider,modelId:ao.modelId,thinkingLevel:R,color:nI(j)}]),P(!1))},disabled:!ao,children:p("presetAdd")})]})]})}),r]})}let oA={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function oB(a,b){return JSON.stringify([a,b])}function oC(a){return a.replace(/[\\/]+$/,"").split(/[\\/]/).at(-1)||a}function oD({biz:a,presets:b,onDirtyChange:c}){let{t:d}=(0,Q.Bd)("settings"),e=function(a,b){let{t:c}=(0,Q.Bd)("settings"),d=(0,bG.G)(),{confirm:e,dialog:f}=kc(),[g,h]=(0,B.useState)([]),[i,j]=(0,B.useState)(""),[k,l]=(0,B.useState)([]),[m,n]=(0,B.useState)(null),[o,p]=(0,B.useState)(!1),[q,r]=(0,B.useState)(!0),[s,t]=(0,B.useState)(!1),[u,v]=(0,B.useState)(!1),[w,x]=(0,B.useState)(!1),[y,z]=(0,B.useState)(null),[A,C]=(0,B.useState)(null),[D,E]=(0,B.useState)(null),[F,G]=(0,B.useState)(0),[H,I]=(0,B.useState)(0),J=y===i&&null===D&&!s&&!u,K=(0,B.useRef)(!1);(0,B.useRef)("");let L=(0,B.useRef)(0),M=(0,B.useCallback)(a=>{K.current=a,b?.(a)},[b]);async function N(a){return!w&&(a===i||(!K.current||!!await e({title:c("discardModelTitle"),description:c("discardModelDescription"),confirmLabel:c("discardModelConfirm")}))&&(L.current+=1,v(!0),j(a),!0))}async function O(){if(i&&J&&!s&&!u&&!w&&(!o||m)){x(!0);try{await a.replaceProjectDefault({cwd:i,default:o?m:null}),lI({cwd:i,default:o?m:null,models:k}),M(!1),d.success(o?c("projectDefaultSaved"):c("projectDefaultGlobalSaved"))}catch(a){d.error(a instanceof Error?a.message:c("projectDefaultSaveFailed"))}finally{x(!1)}}}return{directories:g,cwd:i,loadedCwd:y,models:k,selection:m,fixed:o,directoriesLoading:q,projectLoading:s,projectRefreshing:u,saving:w,projectReady:J,directoriesError:A,projectError:D,dialog:f,selectProject:N,changeFixed:function(a){J&&!w&&(M(!0),p(a))},selectModel:function(a){J&&!w&&(M(!0),n({provider:a.provider,modelId:a.modelId,thinkingLevel:a.thinkingLevels[0]}))},selectThinking:function(a){if(!J||w)return;let b=k.find(a=>a.provider===m?.provider&&a.modelId===m.modelId),c=b?.thinkingLevels.find(b=>b===a);m&&c&&(M(!0),n({...m,thinkingLevel:c}))},applyPreset:function(a){J&&!w&&(M(!0),n({provider:a.provider,modelId:a.modelId,thinkingLevel:a.thinkingLevel}))},retryDirectories:function(){G(a=>a+1)},retryProject:function(){L.current+=1,v(!0),I(a=>a+1)},save:O}}(a,c),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)(!1),j=e.models.find(a=>a.provider===e.selection?.provider&&a.modelId===e.selection.modelId),k=b.filter(a=>e.models.some(b=>b.provider===a.provider&&b.modelId===a.modelId&&b.thinkingLevels.includes(a.thinkingLevel))),l=e.directories.filter(a=>a.cwd.toLocaleLowerCase().includes(f.trim().toLocaleLowerCase())),m=e.models.map(a=>({value:oB(a.provider,a.modelId),label:a.name||a.modelId,description:a.provider})),n=!e.projectReady||e.saving,o=e.loadedCwd??e.cwd;async function p(a){await e.selectProject(a)&&i(!0)}return(0,A.jsxs)("section",{className:"@container/project-default h-full min-h-0 overflow-hidden bg-card",children:[(0,A.jsxs)("div",{className:"grid h-full min-h-0 grid-cols-1 @[48rem]/project-default:grid-cols-[18rem_minmax(0,1fr)]",children:[(0,A.jsxs)("aside",{"aria-label":d("projectList"),className:(0,W.cn)("min-h-0 min-w-0 flex-col bg-sidebar @[48rem]/project-default:flex @[48rem]/project-default:border-r",h&&e.cwd?"hidden":"flex"),children:[(0,A.jsxs)("div",{className:"shrink-0 space-y-3 p-3",children:[(0,A.jsx)("h3",{className:"text-sm font-semibold",children:d("projectList")}),(0,A.jsx)(bU.p,{value:f,"aria-label":d("projectSearch"),placeholder:d("projectSearch"),onChange:a=>g(a.target.value)})]}),(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto px-2 pb-3",children:e.directoriesLoading&&0===e.directories.length?(0,A.jsxs)("div",{className:"flex items-center justify-center gap-2 px-3 py-6 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{"aria-hidden":"true",className:"size-4 animate-spin"}),d("projectLoading")]}):e.directoriesError?(0,A.jsxs)("div",{className:"space-y-3 px-3 py-6 text-sm",children:[(0,A.jsx)("p",{role:"alert",className:"break-words text-destructive",children:e.directoriesError}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:e.retryDirectories,children:d("retry",{ns:"common"})})]}):0===l.length?(0,A.jsx)("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:d("projectEmpty")}):(0,A.jsx)("div",{className:"space-y-1",children:l.map(a=>{let b=a.cwd===e.cwd;return(0,A.jsx)(U.$,{type:"button",variant:"ghost","aria-current":b?"true":void 0,disabled:e.saving,className:(0,W.cn)("h-auto min-h-14 w-full items-start justify-start gap-2 whitespace-normal px-3 py-2 text-left",b&&"bg-accent text-accent-foreground ring-1 ring-border ring-inset"),onClick:()=>{p(a.cwd)},children:(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("span",{className:"flex items-start gap-2",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 break-all text-sm font-medium",children:oC(a.cwd)}),b?(0,A.jsx)(bp.A,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0"}):null]}),(0,A.jsx)("span",{className:"mt-1 block break-all text-xs font-normal text-muted-foreground",children:a.cwd}),(0,A.jsx)("span",{className:"mt-1 block text-xs font-normal text-muted-foreground",children:d("projectSessionCount",{count:a.sessionCount})})]})},a.cwd)})})})]}),(0,A.jsx)("section",{"aria-label":d("projectDefaultSource"),className:(0,W.cn)("min-h-0 min-w-0 flex-col @[48rem]/project-default:flex",h&&e.cwd?"flex":"hidden"),children:e.cwd?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{className:"shrink-0 border-b px-4 py-2 @[48rem]/project-default:hidden",children:(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>i(!1),children:[(0,A.jsx)(Z.A,{"aria-hidden":"true"}),d("backProjectList")]})}),(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-4 @[48rem]/project-default:p-6",children:(0,A.jsxs)("div",{className:"max-w-[40rem] space-y-6",children:[(0,A.jsxs)("header",{className:"space-y-1",children:[(0,A.jsxs)("h3",{className:"flex items-center gap-2 text-lg font-semibold",children:[(0,A.jsx)("span",{className:"min-w-0 break-all",children:oC(o)}),(0,A.jsx)("span",{className:"inline-flex size-4 shrink-0",children:!e.projectReady&&!e.projectError&&(0,A.jsx)(R.A,{role:"status","aria-label":d("projectLoading"),className:"size-4 animate-spin text-muted-foreground"})})]}),(0,A.jsx)("p",{className:"break-all text-sm text-muted-foreground",children:o})]}),e.projectError?(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,A.jsx)("p",{role:"alert",className:"min-w-0 flex-1 break-words text-destructive",children:e.projectError}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:e.retryProject,disabled:e.projectLoading||e.projectRefreshing,children:d("retry",{ns:"common"})})]}):null,null!==e.loadedCwd?(0,A.jsxs)("fieldset",{disabled:n,className:"min-w-0 space-y-6",children:[(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("p",{className:"text-sm font-medium",children:d("projectDefaultSource")}),(0,A.jsx)(kt,{label:d("projectDefaultSource"),value:e.fixed?"fixed":"global",layout:"segmented",disabled:n,options:[{value:"global",label:d("projectFollowGlobal")},{value:"fixed",label:d("projectFixed")}],onChange:a=>e.changeFixed("fixed"===a)})]}),e.fixed?(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsx)(nQ,{label:d("projectDefaultModel"),children:(0,A.jsx)(ki.b,{value:e.selection?oB(e.selection.provider,e.selection.modelId):"",options:m,ariaLabel:d("projectDefaultModel"),searchPlaceholder:d("modelSearch"),disabled:n||0===e.models.length,onChange:function(a){let b=e.models.find(b=>oB(b.provider,b.modelId)===a);b&&e.selectModel(b)}})}),(0,A.jsx)(nQ,{label:d("thinkingLevel"),children:(0,A.jsx)(nS,{value:e.selection?.thinkingLevel??"",options:(j?.thinkingLevels??[]).map(a=>({value:a,label:d(oA[a])})),ariaLabel:d("projectDefaultThinking"),allowEmpty:!1,onChange:e.selectThinking})}),k.length>0?(0,A.jsxs)("div",{children:[(0,A.jsx)("p",{className:"text-sm font-medium",children:d("fromPreset")}),(0,A.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:k.map((a,b)=>{let c=e.models.find(b=>b.provider===a.provider&&b.modelId===a.modelId);return(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"xs",disabled:n,className:"h-auto min-h-7 max-w-full whitespace-normal text-left",onClick:()=>e.applyPreset(a),children:[(0,A.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-current",style:a.color?{color:a.color}:void 0}),(0,A.jsxs)("span",{className:"min-w-0 break-all",children:[c?.name||a.modelId," \xb7"," ",d(oA[a.thinkingLevel])]})]},`${a.provider}/${a.modelId}/${a.thinkingLevel}/${b}`)})})]}):null]}):null]}):null]})}),(0,A.jsx)("div",{className:"shrink-0 border-t px-4 py-3 @[48rem]/project-default:px-6",children:(0,A.jsxs)(U.$,{type:"button",onClick:e.save,disabled:!e.projectReady||n||e.fixed&&!e.selection,children:[e.saving?(0,A.jsx)(R.A,{"aria-hidden":"true",className:"animate-spin"}):(0,A.jsx)(bH,{"aria-hidden":"true"}),e.saving?d("savingModels"):d("saveProjectDefault")]})})]}):(0,A.jsxs)("div",{className:"flex items-center gap-2 p-6 text-sm text-muted-foreground",children:[(0,A.jsx)(cd.A,{"aria-hidden":"true",className:"size-6 shrink-0"}),d("selectProjectToConfigure")]})})]}),e.dialog]})}let oE=[{value:"providers",label:"modelProviders"},{value:"presets",label:"modelPresets"},{value:"project-default",label:"projectDefault"}];function oF({loading:a,error:b,onRetry:c}){let{t:d}=(0,Q.Bd)("settings");return(0,A.jsx)("div",{className:"flex min-h-72 flex-col items-center justify-center gap-3 p-5 text-sm text-muted-foreground",children:a?(0,A.jsxs)("span",{className:"flex items-center gap-2",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"})," ",d("loadingModels")]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("p",{role:"alert",className:"rounded-lg bg-destructive/10 px-3 py-2 text-destructive",children:b??d("modelsUnavailable")}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:c,children:d("retry",{ns:"common"})})]})})}function oG({onBeforeLeaveChange:a,connectionReady:b=!1,initialTab:c}){let{t:d}=(0,Q.Bd)("settings"),{locale:e,timeZone:f}=(0,cu.i)(),[g,h]=(0,B.useState)(!1),{biz:i,tab:j,settings:k,providers:l,presets:m,accountModels:n,changeAccountModels:o,refreshAccounts:p,resetVersion:q,formDirty:r,formInvalid:s,serviceDirty:t,nativeOpen:u,nativeText:v,nativeError:w,nativeDirty:x,setNativeText:y,openNative:z,closeNative:C,saveNative:D,revertConfig:E,setInputState:F,setServiceDirty:G,loading:H,saving:I,refreshing:J,catalogUpdatedAt:K,loadError:L,dialog:M,setProjectDefaultDirty:N,changeProviders:O,changePresets:P,selectTab:S,retry:T,refreshCatalog:V,saveConfig:X}=function(a){let{t:b}=(0,Q.Bd)("settings"),{clientId:c}=(0,bN.gM)(),d=(0,bG.G)(),{confirm:e,dialog:f}=kc(),g=(0,B.useMemo)(()=>{let a;return a=null,{parseNativeConfig(a){let b=JSON.parse(a);return k6.parse(b)},getSettings:()=>(a||(a=bT(c,"/api/model-settings/get",{},li).finally(()=>{a=null})),a),previewSettings:a=>bT(c,"/api/model-settings/preview",lJ(a),lo),async replaceSettings(a){await bT(c,"/api/model-settings/replace",lJ(a),ln)},listCatalog:a=>bT(c,"/api/model-catalog/list",lp.parse(a),lt),async listDirectories(){let a=await bT(c,"/api/pi/directories/list",{forceRefresh:!1},lx.N$);return lE(a),a},async getProjectDefault(a){let b=await bT(c,"/api/project-model-default/get",{cwd:a},lu);return lI(b),b},async replaceProjectDefault(a){await bT(c,"/api/project-model-default/replace",lv.parse(a),lw)}}},[c]),[h,i]=(0,B.useState)(()=>a??"providers"),[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)([]),[n,o]=(0,B.useState)([]),[p,q]=(0,B.useState)([]),[r,s]=(0,B.useState)(!1),[t,u]=(0,B.useState)(!1),[v,w]=(0,B.useState)(!1),[x,y]=(0,B.useState)(!1),[z,A]=(0,B.useState)(!0),[C,D]=(0,B.useState)(!1),[E,F]=(0,B.useState)(!1),[G,H]=(0,B.useState)(null),[I,J]=(0,B.useState)(null),[K,L]=(0,B.useState)(0),[M,N]=(0,B.useState)(0),[O,P]=(0,B.useState)({dirty:!1,invalid:!1}),[R,S]=(0,B.useState)(!1),[T,U]=(0,B.useState)(!1),[V,W]=(0,B.useState)(""),[X,Y]=(0,B.useState)(null),Z=(0,B.useRef)(!1),$=(0,B.useRef)([]),_=j?JSON.stringify(j.nativeConfig,null,2):"",aa=T&&V!==_,ab=t||v||r||O.dirty,ac=(0,B.useCallback)(a=>{$.current=[],k(a),m(structuredClone(a.providers)),o(structuredClone(a.presets)),q(structuredClone(a.accountModels)),s(!1),u(!1),w(!1),P({dirty:!1,invalid:!1}),N(a=>a+1)},[]);async function ad(){F(!0);try{let a=await g.listCatalog({query:"",refresh:!0,page:{index:1,size:1}});H(a.updatedAt),await ag(),d.success("cached"===a.refreshResult?b("catalogCached"):"partial"===a.refreshResult?b("catalogPartial"):"unchanged"===a.refreshResult?b("catalogUnchanged"):b("catalogUpdated"))}catch(a){d.error(a instanceof Error?a.message:b("catalogRefreshFailed"))}finally{F(!1)}}async function ae(a,c=0){let{projectDefaults:d}=await g.previewSettings(a);if(d.length>0){let a=[b("replaceProjectDefaultsDescription"),...c>0?[b("removeInvalidPresets",{count:c})]:[]].join(" ");return e({title:b("replaceProjectDefaultsTitle"),description:a,content:(0,B.createElement)(kZ,{projectDefaults:d}),confirmLabel:b("confirmAndSaveModels"),confirmVariant:"default"})}return 0===c||e({title:b("removeInvalidPresetsTitle"),description:b("removeInvalidPresets",{count:c}),confirmLabel:b("removeAndSave")})}async function af(){if(!Z.current&&!O.invalid&&!R&&!T){if(!j||!ab)return void d.success(b("modelsNoChanges"));Z.current=!0,D(!0);try{let a=new Set([...l.flatMap(a=>a.models.map(b=>`${a.provider}\u0000${b.modelId}`)),...p.map(a=>`${a.provider}\u0000${a.modelId}`)]),c=new Set([...j.providers.flatMap(a=>a.models.map(b=>`${a.provider}\u0000${b.modelId}`)),...j.accountModels.map(a=>`${a.provider}\u0000${a.modelId}`)]),e=n.filter(b=>{let d=`${b.provider}\u0000${b.modelId}`;return!c.has(d)||a.has(d)}),f=n.length-e.length,h={...t||O.dirty?{providers:l}:{},...r?{accountModels:p}:{},...v||f>0?{presets:e}:{},...$.current.length?{modelReplacements:$.current}:{}};if(!await ae(h,f))return;await g.replaceSettings(h),ac(await g.getSettings()),u(!1),w(!1),d.success(b("modelSaved"))}catch(a){d.error(a instanceof Error?a.message:b("modelSaveFailed"))}finally{Z.current=!1,D(!1)}}}async function ag(){let a=await g.getSettings();return k(b=>b?{...b,accounts:a.accounts,models:a.models,nativeConfig:a.nativeConfig}:a),a}async function ah(){!j||Z.current||R||await e({title:b("discardModelTitle"),description:b("discardModelDescription"),confirmLabel:b("discardModelConfirm")})&&ac(j)}async function ai(){Z.current||(!aa||await e({title:b("discardNativeTitle"),description:b("discardNativeDescription"),confirmLabel:b("discardModelConfirm")}))&&U(!1)}async function aj(){if(!Z.current&&T&&aa){Z.current=!0,D(!0),Y(null);try{let a={nativeConfig:g.parseNativeConfig(V)};if(!await ae(a))return;await g.replaceSettings(a),ac(await g.getSettings()),U(!1),d.success(b("modelSaved"))}catch(c){let a=c instanceof Error?c.message:b("modelSaveFailed");console.warn("[Pi Desk][ModelSettings] 保存 Pi 配置失败",{message:a}),Y(a)}finally{Z.current=!1,D(!1)}}}return{biz:g,tab:h,settings:j,providers:l,presets:n,accountModels:p,changeAccountModels:a=>{q(a),s(JSON.stringify(a)!==JSON.stringify(j?.accountModels))},refreshAccounts:ag,providersDirty:t,presetsDirty:v,loading:z,saving:C,refreshing:E,catalogUpdatedAt:G,loadError:I,resetVersion:M,formDirty:ab,formInvalid:O.invalid,serviceDirty:R,nativeOpen:T,nativeText:V,nativeError:X,nativeDirty:aa,setNativeText:W,openNative:function(){if(j&&!Z.current){if(ab||R||x)return void d.error(b("nativeProtectDraft"));W(_),Y(null),U(!0)}},closeNative:ai,saveNative:aj,revertConfig:ah,setInputState:P,setServiceDirty:S,dialog:f,setProjectDefaultDirty:y,changeProviders:(a,b)=>{$.current=b,m(a),u(JSON.stringify(a)!==JSON.stringify(j?.providers))},changePresets:a=>{o(a),w(JSON.stringify(a)!==JSON.stringify(j?.presets))},selectTab:a=>{if(a!==h&&!Z.current){if("project-default"===h&&x)return void e({title:b("discardModelTitle"),description:b("discardModelDescription"),confirmLabel:b("discardModelConfirm")}).then(b=>{b&&(y(!1),i(a))});i(a)}},retry:()=>L(a=>a+1),refreshCatalog:ad,saveConfig:af}}(c);return(0,A.jsxs)("div",{className:"@container/model-settings flex h-full min-h-0 flex-col",children:[(0,A.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-2 border-b p-4",children:[(0,A.jsx)(kt,{label:d("models"),layout:"segmented",value:j,options:oE.map(a=>({...a,label:d(a.label)})),onChange:S}),(0,A.jsxs)("div",{className:"hidden gap-2 @[40rem]/model-settings:flex",children:[(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",disabled:!k||I,onClick:z,children:[(0,A.jsx)(kX,{}),d("nativeConfig")]}),(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",title:K?d("catalogUpdatedAt",{time:new Date(K).toLocaleString("en"===e?"en-US":"zh-CN",{timeZone:f,timeZoneName:"shortOffset",hourCycle:"h23"})}):d("catalogUnavailable"),onClick:V,disabled:J,children:[(0,A.jsx)(bK.A,{className:(0,W.cn)(J&&"animate-spin")}),J?d("refreshingCatalog"):d("refreshCatalog")]})]}),(0,A.jsxs)(cm.AM,{open:g,onOpenChange:h,children:[(0,A.jsx)(cm.Wv,{render:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":d("modelMoreActions"),className:"shrink-0 @[40rem]/model-settings:hidden",children:(0,A.jsx)(an,{})})}),(0,A.jsxs)(cm.hl,{align:"end",positionerClassName:"z-[120]",className:"w-48 gap-1 p-1",children:[(0,A.jsxs)(U.$,{type:"button",variant:"ghost",className:"justify-start",disabled:!k||I,onClick:()=>{h(!1),z()},children:[(0,A.jsx)(kX,{}),d("nativeConfig")]}),(0,A.jsxs)(U.$,{type:"button",variant:"ghost",className:"justify-start",disabled:J,onClick:()=>{h(!1),V()},children:[(0,A.jsx)(bK.A,{}),d("refreshCatalog")]})]})]})]}),(0,A.jsxs)("div",{className:(0,W.cn)("pi-desk-chat-scrollbar min-h-0 flex-1","presets"===j?"overflow-y-auto":"overflow-hidden"),children:["project-default"===j?(0,A.jsx)(oD,{biz:i,presets:k?.presets??[],onDirtyChange:N}):k?null:(0,A.jsx)(oF,{loading:H,error:L,onRetry:T}),k?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("fieldset",{disabled:I,className:(0,W.cn)("h-full min-h-0 min-w-0","providers"!==j&&"hidden"),children:(0,A.jsx)(oz,{biz:i,connectionReady:b,providers:l,accounts:k.accounts,accountModels:n,onAccountModelsChange:o,onRefreshAccounts:p,savedProviders:k.providers,savedModels:k.models,presets:m,resetVersion:q,onChange:O,onPresetsChange:P,onInputState:F,onServiceDirtyChange:G})}),(0,A.jsx)("fieldset",{disabled:I,className:(0,W.cn)("min-w-0","presets"!==j&&"hidden"),children:(0,A.jsx)(n$,{presets:m,models:k.models,onChange:P})})]}):null]}),"project-default"!==j&&k?(0,A.jsxs)("footer",{className:"flex shrink-0 flex-wrap items-center justify-between gap-2 border-t bg-card px-4 py-3",children:[(0,A.jsx)("span",{className:(0,W.cn)("text-xs text-muted-foreground",s&&"text-destructive"),role:"status",children:s?d("fixModelInputs"):r?d("modelDraftPending"):d("modelDraftClean")}),(0,A.jsxs)("div",{className:"flex gap-2",children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",disabled:I||!r||t,onClick:E,children:d("revertModels")}),(0,A.jsxs)(U.$,{type:"button",size:"sm",onClick:X,disabled:I||!r||s||t,children:[I?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bH,{}),I?d("savingModels"):d("saveModels")]})]})]}):null,(0,A.jsx)(lK,{open:u,text:v,error:w,saving:I,dirty:x,onChange:y,onClose:C,onSave:D}),M]})}function oH({render:a,input:b}){return a(b)}let oI=[{id:"appearance",label:"appearance",icon:jf},{id:"region",label:"region",icon:jg.A},{id:"habits",label:"habits",icon:jh},{id:"models",label:"models",icon:ce},{id:"mcp-settings",label:"mcpSettings",icon:b6},{id:"capability-modes",label:"capabilityModes",icon:bW.A},{id:"skills",label:"skills",icon:ji.A},{id:"plugins",label:"plugins",icon:b6},{id:"auth",label:"loginProtection",icon:bL},{id:"about",label:"about",icon:jj.A}];function oJ(a,b){return`plugin:${a}:${b}`}function oK(){let{t:a}=(0,Q.Bd)("settings"),b=(0,cu.i)();return(0,A.jsxs)("section",{"aria-labelledby":"settings-about-title",className:"min-w-0 space-y-6",children:[(0,A.jsx)("h2",{id:"settings-about-title",className:"text-xl font-semibold",children:a("about")}),(0,A.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-muted p-4",children:[(0,A.jsx)(jm.V,{size:48,className:"shrink-0"}),(0,A.jsxs)("div",{children:[(0,A.jsx)("p",{className:"text-sm font-semibold",children:"Pi Desk"}),(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:a("webDescription")})]})]}),(0,A.jsxs)("dl",{className:"divide-y border-y text-sm",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 py-3",children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:a("version")}),(0,A.jsxs)("dd",{className:"font-mono",children:["v",jk]})]}),(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 py-3",children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:a("versionUpdated")}),(0,A.jsx)("dd",{className:"tabular-nums",children:function(a,b,c,d){if(!a)return d;let e=new Date(a);return Number.isNaN(e.getTime())?d:new Intl.DateTimeFormat(b,{timeZone:c,year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).format(e)}(jl,"en"===b.locale?"en-US":"zh-CN",b.timeZone,a("common:unavailable"))})]})]})]})}function oL({open:a,connectionReady:b=!1,initialModelTab:c,workSessions:d,focusedCwd:e,pluginAttention:f,renderPluginManagement:g,renderMcpSettings:h,renderCapabilityModesSettings:i,renderPluginSettingsPage:j,onOpenChange:k,onBeforeReload:l}){let{t:m}=(0,Q.Bd)("settings"),n=(0,bF.So)(),o=(0,B.useMemo)(()=>{let a=new Map;for(let{cwd:b,projectName:c}of d){let d=b.replaceAll("\\","/").replace(/\/+$/,""),e=/^[a-zA-Z]:\//.test(d)||d.startsWith("//")?d.toLowerCase():d;a.has(e)||a.set(e,{cwd:b,projectName:c})}return[...a.values()]},[d]),p=(0,B.useMemo)(()=>n.flatMap(a=>a.contributions.flatMap(b=>"settings-page"===b.kind?[{pluginName:a.pluginName,descriptor:b}]:[])),[n]),[q,r]=(0,B.useState)(()=>c?"models":"appearance"),[s,t]=(0,B.useState)(!1),[u,v]=(0,B.useState)(!1),w=(0,B.useRef)(null),x=(0,B.useRef)(!1),y=p.find(a=>oJ(a.pluginName,a.descriptor.contributionName)===q),z=q.startsWith("plugin:")&&!y?"appearance":q,C=oI.find(a=>a.id===z),D=C?.icon,E=(0,B.useCallback)(async a=>{if(!x.current){x.current=!0,v(!0);try{let b=w.current;if(b&&!await b())return;w.current=null,a()}finally{x.current=!1,v(!1)}}},[]),F=(0,B.useCallback)(()=>{E(()=>k(!1))},[k,E]),G=(0,B.useCallback)(a=>{w.current=a},[]),H=a=>{a!==z&&E(()=>r(a))};return(0,A.jsx)(b3.YV,{open:a,onOpenChange:(a,b)=>{a?k(!0):"focus-out"!==b.reason&&F()},children:(0,A.jsxs)(b3.hA,{className:"h-[min(48rem,calc(100dvh-2rem))] max-w-6xl max-sm:h-dvh max-sm:max-h-dvh max-sm:w-dvw max-sm:max-w-none max-sm:rounded-none max-sm:border-0",finalFocus:!1,showCloseButton:!u,children:[(0,A.jsx)(b3.Hl,{className:"border-b px-4 py-3 pr-12",children:(0,A.jsx)(b3.YM,{children:m("title")})}),(0,A.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col sm:flex-row",children:[(0,A.jsx)("div",{className:"shrink-0 border-b bg-sidebar p-3 sm:hidden",children:(0,A.jsxs)(bO.l6,{value:z,disabled:u,onValueChange:a=>{if("string"!=typeof a)return;let b=oI.find(b=>b.id===a);if(b)return void H(b.id);let c=p.find(b=>oJ(b.pluginName,b.descriptor.contributionName)===a);c&&H(oJ(c.pluginName,c.descriptor.contributionName))},children:[(0,A.jsx)(bO.bq,{"aria-label":m("category"),className:"w-full",children:(0,A.jsx)(bO.yv,{children:y?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ck,{icon:y.descriptor.icon,className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"truncate",children:y.descriptor.label})]}):C&&D?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(D,{className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"truncate",children:m(C.label)})]}):null})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[120]",align:"start",children:[oI.map(a=>{let b=a.icon;return(0,A.jsxs)(bO.eb,{value:a.id,children:[(0,A.jsxs)("span",{className:"relative shrink-0",children:[(0,A.jsx)(b,{className:"size-4"}),"plugins"===a.id&&f?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("absolute -right-1 -top-1 size-1.5 rounded-full","error"===f?"bg-destructive":"bg-primary")}):null]}),(0,A.jsx)("span",{children:m(a.label)})]},a.id)}),p.length>0?(0,A.jsxs)(bO.s3,{children:[(0,A.jsx)(bO.TR,{children:m("pluginSettings")}),p.map(a=>{let b=oJ(a.pluginName,a.descriptor.contributionName);return(0,A.jsxs)(bO.eb,{value:b,children:[(0,A.jsx)(ck,{icon:a.descriptor.icon,className:"size-4 shrink-0"}),(0,A.jsx)("span",{children:a.descriptor.label})]},b)})]}):null]})]})}),(0,A.jsxs)("nav",{"aria-label":m("category"),className:"pi-desk-chat-scrollbar hidden w-48 shrink-0 space-y-4 overflow-auto border-r bg-sidebar p-3 sm:block",children:[(0,A.jsx)("div",{className:"grid grid-cols-1 gap-1",children:oI.map(a=>{let b=a.icon,c=a.id===z;return(0,A.jsxs)(U.$,{variant:"ghost",disabled:u,"aria-current":c?"page":void 0,"aria-label":`${m("category")}:${m(a.label)}`,onClick:()=>H(a.id),className:(0,W.cn)("min-w-0 justify-start",c?"bg-accent text-accent-foreground hover:bg-accent":"text-muted-foreground"),children:[(0,A.jsxs)("span",{className:"relative shrink-0",children:[(0,A.jsx)(b,{className:"size-4"}),"plugins"===a.id&&f?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("absolute -right-1 -top-1 size-1.5 rounded-full","error"===f?"bg-destructive":"bg-primary")}):null]}),(0,A.jsx)("span",{className:"truncate",children:m(a.label)})]},a.id)})}),p.length>0?(0,A.jsxs)(co.Nt,{open:s||!!y,onOpenChange:t,className:"mt-2 border-t pt-2",children:[(0,A.jsxs)(co.R6,{type:"button","aria-label":m("pluginSettings"),className:"flex min-h-8 w-full cursor-pointer items-center gap-2 rounded-lg px-2 py-1 text-sm font-medium text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 text-left",children:m("pluginSettings")}),(0,A.jsx)("span",{className:"tabular-nums",children:p.length}),(0,A.jsx)(cn.A,{className:(0,W.cn)("size-3.5 transition-transform",s||y?"rotate-180":null)})]}),(0,A.jsx)(co.Ke,{children:(0,A.jsx)("div",{className:"mt-1 grid grid-cols-1 gap-1",children:p.map(a=>{let b=oJ(a.pluginName,a.descriptor.contributionName),c=b===z;return(0,A.jsxs)(U.$,{variant:"ghost",disabled:u,"aria-current":c?"page":void 0,onClick:()=>H(b),className:(0,W.cn)("min-w-0 justify-start",c?"bg-accent text-accent-foreground hover:bg-accent":"text-muted-foreground"),children:[(0,A.jsx)(ck,{icon:a.descriptor.icon,className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"truncate",children:a.descriptor.label})]},b)})})})]}):null]}),y?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:(0,A.jsx)(oH,{render:j,input:{pluginName:y.pluginName,descriptor:y.descriptor,onClose:F,onBeforeLeaveChange:G}})}):"skills"===z?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:a&&(0,A.jsx)(j7,{projects:o,focusedCwd:e,onBeforeLeaveChange:G})}):"mcp-settings"===z?(0,A.jsx)("div",{className:"min-h-0 min-w-0 flex-1 overflow-hidden",children:a&&(0,A.jsx)(oH,{render:h,input:{onBeforeLeaveChange:G}})}):"capability-modes"===z?(0,A.jsx)("div",{className:"min-h-0 min-w-0 flex-1 overflow-hidden",children:a&&(0,A.jsx)(oH,{render:i,input:{onBeforeLeaveChange:G}})}):"models"===z?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:a&&(0,A.jsx)(oG,{connectionReady:b,initialTab:c,onBeforeLeaveChange:G})}):"plugins"===z?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:g()}):(0,A.jsx)(b3._Y,{className:"min-w-0 max-h-none",children:(0,A.jsx)("div",{className:"p-4 sm:p-6",children:"appearance"===z?(0,A.jsx)(kH,{}):"habits"===z?(0,A.jsx)(kW,{}):"auth"===z?a&&(0,A.jsx)(kh,{}):"region"===z?(0,A.jsx)(ko,{canLeave:l}):(0,A.jsx)(oK,{})})})]})]})})}let oM=E.Ik({cwd:E.Yj().trim().min(1).nullable()}).strict(),oN=E.g1(E.Yj(),E.Pq()),oO=E.g1(E.Yj().min(1).max(128),oN),oP=E.Ik({local:oO,inherited:oO,projectTrusted:E.zM().nullable(),diagnostics:E.YO(E.Ik({name:E.Yj().nullable(),message:E.Yj()}).strict())}).strict();oM.extend({servers:oO}).strict(),oM.extend({name:E.Yj().min(1).max(128)}).strict();let oQ=E.Ik({output:E.Yj()}).strict(),oR=E.Ik({}).strict(),oS=["command","args","url","type","description","enabled","exposure"];function oT(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Object.values(a).every(a=>"string"==typeof a)}function oU(a){return oT(a)?Object.entries(a).map(([a,b])=>({key:a,value:b})):[]}function oV(a){return!("command"in a)&&!("url"in a)&&!("type"in a)}function oW(a,b){let c=b??{};return{originalName:a,name:a??"",transport:b&&oV(b)?"inherit":"url"in c?"http":"stdio",command:"string"==typeof c.command?c.command:"",args:Array.isArray(c.args)?c.args.join("\n"):"",env:oU(c.env),headers:oU(c.headers),url:"string"==typeof c.url?c.url:"",description:"string"==typeof c.description?c.description:"",enabled:!1!==c.enabled,exposure:"string"==typeof c.exposure?c.exposure:"",advanced:JSON.stringify(Object.fromEntries(Object.entries(c).filter(([a,b])=>!oS.includes(a)&&!(["env","headers"].includes(a)&&oT(b)))),null,2)}}class oX extends Error{constructor(a,b){super(b),this.field=a}}function oY(a){return"string"==typeof a.url?a.url:"string"==typeof a.command?a.command:"继承全局连接"}let oZ={MCP:"MCP",服务列表:"Servers",配置服务:"Configure server",服务配置:"Server configuration",手动配置:"Configure manually","导入 JSON":"Import JSON",返回服务列表:"Back to servers",服务操作:"Server actions",恢复全局配置:"Restore global configuration",删除服务:"Delete server",继承全局:"Inherited from global",项目配置:"Project configuration","项目配置 \xb7 继承全局连接":"Project configuration \xb7 inherits global connection","连接参数沿用全局,仅保存本项目的启用和工具设置。":"Connection settings are inherited from global. Only enablement and tool settings are saved for this project.",环境变量:"Environment variables",请求头:"Request headers",名称:"Name",值:"Value",添加:"Add ",删除行:"Remove row",高级设置:"Advanced settings","其他配置(JSON)":"Other configuration (JSON)",保存并测试:"Save and test",连接测试结果:"Connection test result","正在测试连接…":"Testing connection…","已保存,正在测试连接…":"Saved. Testing connection…",连接测试通过:"Connection test passed",连接测试失败:"Connection test failed",查看详细输出:"View output","已保存,连接测试通过。":"Saved. Connection test passed.","已保存,连接测试失败。":"Saved. Connection test failed.","请填写名称,或删除空白行。":"Enter a name or remove the empty row.","名称不能重复。":"Names must be unique.","环境变量和请求头不能在表单与 JSON 中重复配置。":"Do not configure environment variables or request headers in both the form and JSON.","连接请求最多等待 10 秒;凭据命令可能延长检查时间。":"Connection requests wait up to 10 seconds; credential commands may extend the check.",配置范围:"Configuration scope",全局:"Global",当前项目:"Current project",手动添加:"Add manually","添加 JSON":"Add JSON","正在读取配置…":"Loading configuration…",重试:"Retry","添加第一个 MCP 服务":"Add your first MCP server","添加服务地址或本地程序。":"Add a server URL or a local program.",已启用:"Enabled",已停用:"Disabled",启用:"Enable",停用:"Disable",编辑:"Edit",为本项目配置:"Configure for this project",独立检查:"Check independently",删除:"Delete",来自全局:"Inherited from global",本项目:"This project",覆盖全局:"Overrides global","项目设置 \xb7 继承全局连接":"Project settings \xb7 inherits global connection",继承全局连接:"Inherit global connection","本项目尚未受信任,不能执行检查;仍可编辑和保存配置。":"This project is not trusted. Checking is disabled; editing and saving remain available.","配置启用不代表已连接。保存不会自动连接或重载会话。":"Enabled configuration does not mean connected. Saving does not connect or reload sessions.","正在检查…":"Checking…",检查输出:"Check output",检查完成:"Check completed",检查失败:"Check failed","检查连接已关闭,当前聊天会话状态未改变。":"The check connection is closed. Current chat session state is unchanged.",返回编辑:"Edit configuration",关闭结果:"Dismiss result",返回:"Back",添加服务:"Add server",编辑服务:"Edit server",保存范围:"Save scope",服务名称:"Server name",连接方式:"Transport",本地程序:"Local program","HTTP 地址":"HTTP URL",启动程序:"Command","参数(每行一个)":"Arguments (one per line)","服务说明(可选)":"Description (optional)",工具使用方式:"Tool exposure",沿用默认:"Use default",通过脚本调用:"Via scripts",按需发现:"On-demand discovery",直接使用:"Direct use",隐藏:"Hidden","高级配置(JSON)":"Advanced configuration (JSON)","继承全局连接,仅保存本项目启用与曝光设置,不复制全局凭据。":"Inherits the global connection. Only project enablement and exposure settings are saved; global credentials are not copied.","本项目的完整定义会整体替换同名全局配置。":"A complete project definition replaces the global configuration of the same name.","配置 JSON":"Configuration JSON","仅接受包含 mcpServers 的标准 JSON。":"Only standard JSON with mcpServers is accepted.",解析预览:"Preview",待保存服务:"Servers to save",新增:"New",替换已有配置:"Replace existing configuration","覆盖全局(仅本项目)":"Override global (this project only)",允许替换以上同名已有配置:"Allow replacing existing configuration with the same names","重新编辑 JSON":"Edit JSON again",取消:"Cancel",保存:"Save","保存中…":"Saving…","已保存。新会话使用新配置;已有会话需重载 Pi 配置。":"Saved. New sessions use the new configuration; existing sessions must reload Pi configuration.","放弃未保存的修改?":"Discard unsaved changes?","当前修改尚未保存。放弃后将保留已保存的配置。":"Your changes have not been saved. Discarding keeps the saved configuration.",放弃修改:"Discard changes",删除配置:"Delete configuration","删除本项目配置后,将恢复使用同名全局配置。":"Deleting this project configuration restores the global configuration of the same name.","此范围内的服务配置将被删除。":"The server configuration will be deleted from this scope.","请输入有效的 JSON。":"Enter valid JSON.","仅接受包含 mcpServers 的标准配置,不允许其他根级字段。":"Only a standard mcpServers object is accepted; other root fields are not allowed.","配置中至少需要一个服务。":"At least one server is required.","服务名称需要 1–128 个字符。":"Server names must contain 1–128 characters.","高级配置需要是 JSON 对象。":"Advanced configuration must be a JSON object.","连接、说明、启用和曝光字段请在上方表单中填写。":"Set connection, description, enablement and exposure in the fields above.","继承连接只允许启用、曝光和 toolExposure 设置。":"Inherited connections only allow enablement, exposure and toolExposure settings.","请输入启动程序。":"Enter a command.","请输入有效的 HTTP 或 HTTPS 地址。":"Enter a valid HTTP or HTTPS URL.","请明确勾选替换已有配置。":"Explicitly allow replacing existing configuration.","该名称已存在,请编辑已有服务或使用其他名称。":"This name already exists. Edit that server or choose another name.","请求失败,请重试。":"The request failed. Please retry."};function o$(){let{locale:a}=(0,cu.i)();return b=>"en"===a?oZ[b]??b:b}function o_(a){return a instanceof Error?a.message:"请求失败,请重试。"}function o0({id:a,label:b,value:c,options:d,disabled:e,onChange:f}){return(0,A.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,A.jsx)("label",{id:`${a}-label`,htmlFor:a,className:"text-sm font-medium",children:b}),(0,A.jsxs)(bO.l6,{value:c,disabled:e,onValueChange:a=>{"string"==typeof a&&f(a)},children:[(0,A.jsx)(bO.bq,{id:a,"aria-labelledby":`${a}-label`,className:"w-full min-w-0 whitespace-normal [&_[data-slot=select-value]]:line-clamp-none [&_[data-slot=select-value]]:break-all",children:(0,A.jsx)(bO.yv,{children:d.find(a=>a.value===c)?.label??c})}),(0,A.jsx)(bO.gC,{positionerClassName:"z-[125]",align:"start",children:d.map(a=>(0,A.jsx)(bO.eb,{value:a.value,className:"[&_span]:whitespace-normal [&_span]:break-all",children:a.label},a.value))})]})]})}function o1({trigger:a,children:b}){return(0,A.jsxs)(bq,{children:[(0,A.jsx)(bs,{render:a}),(0,A.jsx)(br,{children:(0,A.jsx)(aZ.y,{sideOffset:4,align:"end",className:"z-[125] outline-none",children:(0,A.jsx)(a$._,{className:bn.hD,children:b})})})]})}function o2({message:a,id:b}){let c=o$();return a?(0,A.jsx)("p",{id:b,role:"alert",className:"break-words text-sm text-destructive",children:c(a)}):null}function o3({rows:a,selectedName:b,pending:c,onSelect:d}){let e=o$();return(0,A.jsx)("ul",{"aria-label":e("服务列表"),className:"divide-y",children:a.map(a=>{let f="string"==typeof a.config.url?ch:T;return(0,A.jsx)("li",{children:(0,A.jsxs)("button",{type:"button","aria-label":`${e("配置服务")} \xb7 ${a.name}`,"aria-current":b===a.name?"true":void 0,disabled:c,onClick:()=>d(a),className:(0,W.cn)("flex w-full min-w-0 cursor-pointer items-center gap-3 p-4 text-left outline-none transition-colors hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default",b===a.name&&"bg-accent"),children:[(0,A.jsx)(f,{"aria-hidden":"true",className:"size-4 shrink-0 text-muted-foreground"}),(0,A.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,A.jsxs)("span",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-1",children:[(0,A.jsx)("span",{className:"min-w-0 break-all text-sm font-medium",children:a.name}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:e(!1===a.config.enabled?"已停用":"已启用")})]}),(0,A.jsxs)("span",{className:"block text-xs text-muted-foreground",children:[e(a.source)," \xb7"," ",e("string"==typeof a.config.url?"HTTP 地址":"本地程序")]}),(0,A.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:oY(a.config)})]}),(0,A.jsx)(bo.A,{"aria-hidden":"true",className:"size-4 shrink-0 text-muted-foreground"})]})},a.name)})})}function o4({id:a,label:b,rows:c,disabled:d,error:e,onChange:f}){let g=o$();return(0,A.jsxs)("fieldset",{className:"min-w-0 space-y-2",disabled:d,children:[(0,A.jsx)("legend",{className:"text-sm font-medium",children:b}),c.length>0&&(0,A.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_minmax(0,1.5fr)_2rem] gap-2 text-xs text-muted-foreground","aria-hidden":"true",children:[(0,A.jsx)("span",{children:g("名称")}),(0,A.jsx)("span",{children:g("值")})]}),c.map((h,i)=>(0,A.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_minmax(0,1.5fr)_2rem] gap-2",children:[(0,A.jsx)(bU.p,{"aria-label":`${b} \xb7 ${g("名称")} ${i+1}`,"aria-invalid":!!e,"aria-describedby":e?`${a}-error`:void 0,value:h.key,spellCheck:!1,className:"min-w-0 font-mono",onChange:a=>f(c.map((b,c)=>c===i?{...b,key:a.target.value}:b))}),(0,A.jsx)(bU.p,{"aria-label":`${b} \xb7 ${g("值")} ${i+1}`,value:h.value,spellCheck:!1,autoComplete:"off",className:"min-w-0 font-mono",onChange:a=>f(c.map((b,c)=>c===i?{...b,value:a.target.value}:b))}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon","aria-label":`${g("删除行")} \xb7 ${b} ${i+1}`,disabled:d,onClick:()=>f(c.filter((a,b)=>b!==i)),children:(0,A.jsx)(bJ,{"aria-hidden":"true"})})]},i)),(0,A.jsx)(o2,{id:`${a}-error`,message:e}),(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",disabled:d,onClick:()=>f([...c,{key:"",value:""}]),children:[(0,A.jsx)(am,{"aria-hidden":"true"}),g("添加"),b]})]})}var o5=c(69391);function o6({check:a,onRetry:b,onDismiss:c}){let d=o$(),e=a.loading?R.A:a.error?ak.A:o5.A;return(0,A.jsxs)("section",{"aria-label":d("连接测试结果"),"aria-busy":a.loading,className:"space-y-2 border-b pb-4",children:[(0,A.jsxs)("p",{role:"status",className:"flex items-center gap-2 text-sm font-medium",children:[(0,A.jsx)(e,{"aria-hidden":"true",className:`size-4 shrink-0 ${a.loading?"motion-safe:animate-spin":a.error?"text-destructive":""}`}),d(a.loading?"已保存,正在测试连接…":a.error?"已保存,连接测试失败。":"已保存,连接测试通过。")]}),(0,A.jsx)(o2,{message:a.error}),a.loading?(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:d("连接请求最多等待 10 秒;凭据命令可能延长检查时间。")}):(0,A.jsxs)(A.Fragment,{children:[a.output&&(0,A.jsxs)("details",{className:"text-sm",children:[(0,A.jsx)("summary",{className:"w-fit cursor-pointer rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-ring",children:d("查看详细输出")}),(0,A.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all rounded-lg bg-muted p-3 font-mono text-sm",children:a.output})]}),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:d("检查连接已关闭,当前聊天会话状态未改变。")}),(0,A.jsxs)("div",{className:"flex gap-2",children:[a.error&&(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:b,children:d("重试")}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:c,children:d("关闭结果")})]})]})]})}function o7({editor:a,scopeLabel:b,project:c,projectTrusted:d,check:e,local:f,inherited:g,pending:h,saving:i,error:j,onDraft:k,onJson:l,onPreview:m,onOverwrite:n,onSave:o,onCancel:p,onRemove:q,onDismissCheck:r}){let s=o$(),t=(0,B.useId)(),u=(0,B.useRef)(null),[v,w]=(0,B.useState)(!1),x=a=>`${t}-${a}`,y="manual"===a.kind?a.draft:null,z="json"===a.kind&&a.preview?Object.keys(a.preview).filter(a=>Object.hasOwn(f,a)):[],C="json"===a.kind?"导入 JSON":y?.originalName?"服务配置":"添加服务",D=y?.originalName,E=!!(D&&Object.hasOwn(f,D)),F=!!(c&&D&&Object.hasOwn(g,D)),G=(a,b,c)=>(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("label",{htmlFor:x(a),className:"text-sm font-medium",children:s(b)}),c,(0,A.jsx)(o2,{id:x(`${a}-error`),message:j?.field===a?j.message:null})]}),H=(a,b)=>G(a,b,(0,A.jsx)(bU.p,{id:x(a),value:y?.[a]??"",disabled:h||"name"===a&&!!y?.originalName,"aria-invalid":j?.field===a,"aria-describedby":j?.field===a?x(`${a}-error`):void 0,onChange:b=>k({[a]:b.target.value})}));return(0,A.jsxs)("form",{ref:u,"aria-label":s(C),className:"flex min-h-0 min-w-0 flex-1 flex-col",onSubmit:a=>{a.preventDefault(),o()},children:[(0,A.jsxs)("div",{className:"shrink-0 space-y-1 border-b p-4 sm:px-6",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon","aria-label":s("返回服务列表"),disabled:h,onClick:p,children:(0,A.jsx)(Z.A,{"aria-hidden":"true"})}),(0,A.jsx)("h3",{className:"min-w-0 flex-1 text-sm font-semibold",children:s(C)}),E&&D&&(0,A.jsx)(o1,{trigger:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon","aria-label":s("服务操作"),disabled:h,children:(0,A.jsx)(an,{"aria-hidden":"true"})}),children:(0,A.jsx)(bw,{variant:F?"default":"destructive",onClick:()=>q(D),children:s(F?"恢复全局配置":"删除服务")})})]}),c&&(0,A.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[s("保存范围"),":",b]})]}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-4 sm:p-6",children:[y?(0,A.jsxs)("div",{className:"max-w-[40rem] space-y-4",children:[e&&(0,A.jsx)(o6,{check:e,onRetry:()=>o(!0),onDismiss:r}),H("name","服务名称"),"inherit"===y.transport?(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsx)("p",{className:"text-sm font-medium",children:s("继承全局连接")}),D&&g[D]&&(0,A.jsx)("p",{className:"break-all font-mono text-sm text-muted-foreground",children:oY(g[D])}),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:s("连接参数沿用全局,仅保存本项目的启用和工具设置。")})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(o0,{id:x("transport"),label:s("连接方式"),value:y.transport,disabled:h,options:[{value:"stdio",label:s("本地程序")},{value:"http",label:s("HTTP 地址")}],onChange:a=>k({transport:"http"===a?"http":"stdio"})}),"stdio"===y.transport?(0,A.jsxs)(A.Fragment,{children:[H("command","启动程序"),G("args","参数(每行一个)",(0,A.jsx)(iA.T,{id:x("args"),className:"min-h-24 font-mono",value:y.args,disabled:h,onChange:a=>k({args:a.target.value})}))]}):H("url","HTTP 地址"),("stdio"===y.transport||j?.field==="env")&&(0,A.jsx)(o4,{id:x("env"),label:s("环境变量"),rows:y.env,disabled:h,error:j?.field==="env"?j.message:null,onChange:a=>k({env:a})}),("http"===y.transport||j?.field==="headers")&&(0,A.jsx)(o4,{id:x("headers"),label:s("请求头"),rows:y.headers,disabled:h,error:j?.field==="headers"?j.message:null,onChange:a=>k({headers:a})}),c&&(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:s("本项目的完整定义会整体替换同名全局配置。")})]}),(0,A.jsxs)("label",{className:"flex min-h-8 cursor-pointer items-center gap-2 text-sm",children:[(0,A.jsx)("input",{type:"checkbox",checked:y.enabled,disabled:h,onChange:a=>k({enabled:a.target.checked}),className:"size-4 shrink-0 accent-primary"}),s("已启用")]}),(0,A.jsxs)(co.Nt,{open:v||j?.field==="advanced",onOpenChange:w,children:[(0,A.jsxs)(co.R6,{type:"button",className:"group flex min-h-8 cursor-pointer items-center gap-2 rounded-lg px-2 text-sm font-medium outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",children:[(0,A.jsx)(cn.A,{"aria-hidden":"true",className:"size-4 transition-transform group-data-panel-open:rotate-180"}),s("高级设置")]}),(0,A.jsxs)(co.Ke,{className:"space-y-3 pt-3",children:["inherit"!==y.transport&&H("description","服务说明(可选)"),(0,A.jsx)(o0,{id:x("exposure"),label:s("工具使用方式"),value:y.exposure,disabled:h,options:[{value:"",label:s("沿用默认")},{value:"codemode",label:s("通过脚本调用")},{value:"deferred",label:s("按需发现")},{value:"direct",label:s("直接使用")},{value:"hidden",label:s("隐藏")},...["","codemode","deferred","direct","hidden"].includes(y.exposure)?[]:[{value:y.exposure,label:y.exposure}]],onChange:a=>k({exposure:a})}),(0,A.jsx)("label",{htmlFor:x("advanced"),className:"block text-sm font-medium",children:s("其他配置(JSON)")}),(0,A.jsx)(iA.T,{id:x("advanced"),onFocus:()=>w(!0),value:y.advanced,disabled:h,className:"min-h-40 font-mono",spellCheck:!1,"aria-invalid":j?.field==="advanced","aria-describedby":j?.field==="advanced"?x("advanced-error"):void 0,onChange:a=>k({advanced:a.target.value})}),(0,A.jsx)(o2,{id:x("advanced-error"),message:j?.field==="advanced"?j.message:null})]})]})]}):"json"===a.kind?(0,A.jsxs)("div",{className:"space-y-3",children:[G("json","配置 JSON",(0,A.jsx)(iA.T,{id:x("json"),value:a.text,disabled:h,"aria-invalid":j?.field==="json","aria-describedby":j?.field==="json"?x("json-error"):void 0,spellCheck:!1,className:"min-h-48 font-mono",placeholder:'{ "mcpServers": { "docs": { "url": "https://example.com/mcp" } } }',onChange:a=>l(a.target.value)})),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:s("仅接受包含 mcpServers 的标准 JSON。")}),(0,A.jsx)(U.$,{type:"button",variant:"outline",onClick:m,disabled:h||!a.text.trim(),children:s("解析预览")}),a.preview&&(0,A.jsxs)("section",{"aria-label":s("待保存服务"),className:"space-y-3",children:[(0,A.jsx)("ul",{className:"divide-y border-y",children:Object.entries(a.preview).map(([a,b])=>(0,A.jsxs)("li",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1 py-2 text-sm",children:[(0,A.jsx)("span",{className:"min-w-0 break-all font-medium",children:a}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:s(oV(b)?"继承全局连接":"url"in b?"HTTP 地址":"本地程序")}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:s(Object.hasOwn(f,a)?"替换已有配置":Object.hasOwn(g,a)?"覆盖全局(仅本项目)":"新增")}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:s(!1===b.enabled?"已停用":"已启用")})]},a))}),z.length>0&&(0,A.jsxs)("label",{className:"flex min-h-8 cursor-pointer items-start gap-2 text-sm",children:[(0,A.jsx)("input",{type:"checkbox",checked:a.overwrite,disabled:h,className:"mt-1 size-4 shrink-0 accent-primary",onChange:a=>n(a.target.checked)}),(0,A.jsx)("span",{children:s("允许替换以上同名已有配置")})]})]})]}):null,(0,A.jsx)("div",{className:"mt-3",children:(0,A.jsx)(o2,{message:j?.field==="save"?j.message:null})})]}),(0,A.jsxs)("footer",{className:"flex shrink-0 flex-wrap justify-end gap-2 border-t bg-background px-4 py-3 sm:px-6",children:[(0,A.jsx)(U.$,{type:"button",variant:"outline",disabled:h,onClick:p,children:s("取消")}),y&&(0,A.jsx)(U.$,{type:"button",variant:"outline",disabled:h||!y.enabled||!1===d,onClick:()=>o(!0),children:s("保存并测试")}),(0,A.jsx)(U.$,{type:"submit",disabled:h||"json"===a.kind&&(!a.preview||z.length>0&&!a.overwrite),children:s(e?.loading?"正在测试连接…":i?"保存中…":"保存")})]})]})}function o8({pending:a,onAdd:b,onImport:c}){let d=o$();return(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 min-w-0 flex-1 overflow-y-auto px-4 py-6",children:(0,A.jsx)("div",{className:"grid min-h-full grid-rows-[1fr_auto_2fr]",children:(0,A.jsxs)("div",{className:"row-start-2 flex flex-col items-center gap-6 text-center",children:[(0,A.jsxs)("div",{"aria-hidden":"true",className:"relative h-28 w-60 shrink-0 text-muted-foreground",children:[(0,A.jsxs)("svg",{viewBox:"0 0 240 112",fill:"none",className:"absolute inset-0 size-full text-muted-foreground/40",children:[(0,A.jsx)("path",{d:"M44 76H64Q76 76 76 64V60Q76 56 92 56M148 56H164Q180 56 180 44Q180 40 196 40M120 12V28",stroke:"currentColor"}),(0,A.jsx)("circle",{cx:"120",cy:"8",r:"3",className:"fill-background stroke-current"}),(0,A.jsx)("circle",{cx:"64",cy:"76",r:"2",className:"fill-muted-foreground"}),(0,A.jsx)("circle",{cx:"180",cy:"44",r:"2",className:"fill-muted-foreground"})]}),(0,A.jsx)("div",{className:"absolute top-14 left-1 flex size-10 items-center justify-center rounded-xl border bg-muted/50",children:(0,A.jsx)(T,{className:"size-4"})}),(0,A.jsx)("div",{className:"absolute top-7 left-[92px] flex size-14 items-center justify-center rounded-xl border bg-background text-foreground",children:(0,A.jsx)(b6,{className:"size-6"})}),(0,A.jsx)("div",{className:"absolute top-5 right-1 flex size-10 items-center justify-center rounded-xl border bg-muted/50",children:(0,A.jsx)(ch,{className:"size-4"})})]}),(0,A.jsx)("h3",{className:"text-lg font-semibold",children:d("添加第一个 MCP 服务")}),(0,A.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[(0,A.jsxs)(U.$,{disabled:a,onClick:b,children:[(0,A.jsx)(am,{"aria-hidden":"true"}),d("添加服务")]}),(0,A.jsx)(U.$,{variant:"outline",disabled:a,onClick:c,children:d("导入 JSON")})]})]})})})}function o9({projects:a,focusedCwd:b,onBeforeLeaveChange:c}){let{clientId:d}=(0,bN.gM)(),e=function(a){let b=o$(),c=(0,B.useMemo)(()=>({getMcp:(b,c)=>bT(a,"/api/mcp-settings/get",{cwd:b},oP,{signal:c}),replaceMcp:(b,c)=>bT(a,"/api/mcp-settings/replace",b,oR,{signal:c}),deleteMcp:(b,c,d)=>bT(a,"/api/mcp-settings/del",{cwd:b,name:c},oR,{signal:d}),checkMcp:(b,c,d)=>bT(a,"/api/mcp-check/get",{cwd:b,name:c},oQ,{signal:d})}),[a]),{confirm:d,dialog:e}=kc(),[f,g]=(0,B.useState)(null),[h,i]=(0,B.useState)(null),j=h?.data??null,k=h?h.cwd:f,[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(!0),[p,q]=(0,B.useState)(!1),[r,s]=(0,B.useState)(null),[t,u]=(0,B.useState)(null),[v,w]=(0,B.useState)(null),[x,y]=(0,B.useState)(null),z=(0,B.useRef)(null),A=(0,B.useRef)(0),C=(0,B.useRef)(0),D=(0,B.useRef)(d),F=(0,B.useRef)(b),G=null!==h&&h.cwd===f&&!n&&!r,H=G&&(l?.kind==="manual"&&JSON.stringify(l.draft)!==l.initial||l?.kind==="json"&&!!l.text),I=(0,B.useCallback)(()=>{m(null),u(null)},[]),J=(0,B.useCallback)(async()=>!(p||x?.loading)&&(!H||await D.current({title:F.current("放弃未保存的修改?"),description:F.current("当前修改尚未保存。放弃后将保留已保存的配置。"),confirmLabel:F.current("放弃修改")})),[H,p,x?.loading]),K=(0,B.useCallback)(async(a,b,d=!1)=>{o(!0),s(null);try{let e=await c.getMcp(f,a);if(a.aborted||A.current!==b)return!1;return i({cwd:f,data:e}),d&&m(null),!0}catch(c){return a.aborted||A.current!==b||(console.warn("[Pi Desk][MCP] 读取配置失败",{cwd:f,message:o_(c)}),s(o_(c))),!1}finally{a.aborted||A.current!==b||o(!1)}},[c,f]),L=async a=>{await J()&&(I(),w(null),a())},M=async a=>{a!==f&&await J()&&(z.current?.abort(),u(null),w(null),y(null),s(null),o(!0),g(a))},N=(a,b)=>{let c=oW(a,b);u(null),w(null),y(null),m({kind:"manual",draft:c,initial:JSON.stringify(c)})},O=async(a,b)=>{let c=z.current?.signal;if(!c||!G||p||x?.loading)return!1;let d=A.current;q(!0),u(null),w(null);try{if(await a(c),c.aborted||A.current!==d)return!1;return b(),y(null),w("已保存。新会话使用新配置;已有会话需重载 Pi 配置。"),await K(c,d)}catch(a){return c.aborted||A.current!==d||u({field:a instanceof oX?a.field:"save",message:o_(a)}),!1}finally{c.aborted||A.current!==d||q(!1)}},P=async(a=!1)=>{if(!(!l||!j||!G||p||x?.loading)&&(!a||"manual"===l.kind&&l.draft.enabled&&!1!==j.projectTrusted))try{let b="manual"===l.kind?function(a,b){let c,d=a.name.trim();if(!d||d.length>128)throw new oX("name","服务名称需要 1–128 个字符。");try{c=oN.parse(JSON.parse(a.advanced))}catch{throw new oX("advanced","高级配置需要是 JSON 对象。")}if(oS.some(a=>a in c))throw new oX("advanced","连接、说明、启用和曝光字段请在上方表单中填写。");if("inherit"===a.transport&&Object.keys(c).some(a=>"toolExposure"!==a))throw new oX("advanced","继承连接只允许启用、曝光和 toolExposure 设置。");let e={...c,enabled:a.enabled};if(a.exposure&&(e.exposure=a.exposure),"inherit"!==a.transport){for(let d of(a.description&&(e.description=a.description),["env","headers"]))if(a[d].length>0||oT(b?.[d])){if(d in c)throw new oX("advanced","环境变量和请求头不能在表单与 JSON 中重复配置。");e[d]=function(a,b){let c=[],d=new Set;for(let e of a){if(!e.key.trim()&&!e.value)continue;if(!e.key.trim())throw new oX(b,"请填写名称,或删除空白行。");let a=e.key.trim(),f="headers"===b?a.toLowerCase():a;if(d.has(f))throw new oX(b,"名称不能重复。");d.add(f),c.push([a,e.value])}return Object.fromEntries(c)}(a[d],d)}}if("stdio"===a.transport){if(!a.command.trim())throw new oX("command","请输入启动程序。");e.command=a.command.trim(),e.args=Array.isArray(b?.args)&&b.args.join("\n")===a.args?b.args:a.args?a.args.split(/\r?\n/):[],(b?.type!==void 0||!b||"url"in b)&&(e.type="stdio")}else if("http"===a.transport){try{let b=new URL(a.url.trim());if(!["https:","http:"].includes(b.protocol))throw Error()}catch{throw new oX("url","请输入有效的 HTTP 或 HTTPS 地址。")}e.url=a.url.trim(),(b?.type!==void 0||!b||"command"in b)&&(e.type="http")}return{[d]:e}}(l.draft,l.draft.originalName?j.local[l.draft.originalName]:void 0):l.preview;if(!b)return;let d=Object.keys(b).filter(a=>Object.hasOwn(j.local,a));if("json"===l.kind&&d.length&&!l.overwrite)throw new oX("json","请明确勾选替换已有配置。");if("manual"===l.kind&&d.some(a=>a!==l.draft.originalName))throw new oX("name","该名称已存在,请编辑已有服务或使用其他名称。");if(await O(a=>c.replaceMcp({cwd:f,servers:b},a),()=>{if("json"===l.kind)m(null);else{let a=l.draft.name.trim(),c=oW(a,b[a]);m({kind:"manual",draft:c,initial:JSON.stringify(c)})}})&&a&&"manual"===l.kind){let a=await R(l.draft.name.trim());z.current?.signal.aborted||w(a?"已保存,连接测试通过。":"已保存,连接测试失败。")}}catch(a){u({field:a instanceof oX?a.field:"save",message:o_(a)})}},Q=async a=>{if(!j||!G||p||!Object.hasOwn(j.local,a))return;let b=null!==f&&Object.hasOwn(j.inherited,a);await D.current({title:`${F.current(b?"恢复全局配置":"删除服务")} \xb7 ${a}`,description:F.current(b?"删除本项目配置后,将恢复使用同名全局配置。":"此范围内的服务配置将被删除。"),confirmLabel:F.current(b?"恢复全局配置":"删除服务")})&&await O(b=>c.deleteMcp(f,a,b),()=>m(null))},R=async a=>{let b=z.current?.signal;if(!b||!j||!1===j.projectTrusted||x?.loading)return!1;let d=++C.current;y({name:a,loading:!0,output:null,error:null});try{let e=await c.checkMcp(f,a,b);return b.aborted||C.current!==d||y({name:a,loading:!1,output:e.output.slice(0,32768),error:null}),!0}catch(c){return b.aborted||C.current!==d||y({name:a,loading:!1,output:null,error:o_(c)}),!1}},S=j?[...new Set([...Object.keys(j.inherited),...Object.keys(j.local)])].map(a=>{let b=j.local[a],c=j.inherited[a],d=!!(b&&c&&oV(b));return{name:a,config:d?{...c,...b}:b??c,local:b??null,source:null===k?"全局":b?d?"项目配置 \xb7 继承全局连接":"项目配置":"继承全局"}}):[];return{cwd:f,displayCwd:k,ready:G,mcp:j,editor:l,setEditor:m,loading:n,pending:p,loadError:r,error:t,notice:v,check:x,rows:S,dirty:H,dialog:e,retry:()=>{z.current&&K(z.current.signal,A.current,h?.cwd!==f)},navigate:L,setCwd:M,startManual:N,startInherited:(a,b)=>{N(a,{enabled:!1!==b.enabled})},updateDraft:a=>{m(b=>b?.kind==="manual"?{...b,draft:{...b.draft,...a}}:b),u(null),w(null),y(null)},updateJson:a=>{m({kind:"json",text:a,preview:null,overwrite:!1}),u(null)},previewJson:()=>{if(l?.kind==="json"&&j)try{let b=function(a){let b;try{b=JSON.parse(a)}catch{throw Error("请输入有效的 JSON。")}let c=E.Ik({mcpServers:oO}).strict().safeParse(b);if(!c.success)throw Error("仅接受包含 mcpServers 的标准配置,不允许其他根级字段。");if(0===Object.keys(c.data.mcpServers).length)throw Error("配置中至少需要一个服务。");return c.data.mcpServers}(l.text);var a=j.inherited;for(let[c,d]of Object.entries(b)){if(!c.trim()||c!==c.trim())throw new oX("json","服务名称不能为空或带有首尾空格。");if(oV(d)){if(null===f||!Object.hasOwn(a,c)||Object.keys(d).some(a=>!["enabled","exposure","toolExposure"].includes(a)))throw new oX("json",`${c}:继承配置需要同名全局服务,且只允许启用和曝光设置。`)}else if("sse"===d.type)throw new oX("json",`${c}:不支持 SSE,请使用 HTTP 连接。`);else if("string"!=typeof d.command&&"string"!=typeof d.url)throw new oX("json",`${c}:请提供启动程序或服务地址。`)}m({...l,preview:b,overwrite:!1}),u(null)}catch(a){u({field:"json",message:o_(a)})}},saveEditor:P,remove:Q,dismissCheck:()=>{y(null)},beforeLeave:J}}(d),f=o$(),g=(0,B.useId)(),h=(0,B.useMemo)(()=>{let c=new Map;for(let b of a){let a=b.cwd.replaceAll("\\","/").replace(/\/+$/,""),d=/^[a-zA-Z]:\//.test(a)||a.startsWith("//")?a.toLowerCase():a;c.has(d)||c.set(d,b)}return[...c.values()].sort((a,c)=>Number(c.cwd===b)-Number(a.cwd===b))},[a,b]),i=null===e.displayCwd?f("全局"):`${h.find(a=>a.cwd===e.displayCwd)?.projectName??f("当前项目")} \xb7 ${e.displayCwd}`,j=!!(e.editor&&e.mcp),k=e.pending||!!e.check?.loading,l=k||!e.ready,m=e.editor?.kind==="manual"?e.editor.draft.originalName:null,n=()=>{e.navigate(()=>e.startManual(null))},o=()=>{e.navigate(()=>e.setEditor({kind:"json",text:"",preview:null,overwrite:!1}))};return(0,A.jsxs)("section",{"aria-label":"MCP",className:"@container/mcp flex h-full min-h-0 min-w-0 flex-col",children:[e.dialog,(0,A.jsxs)("header",{className:"grid shrink-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-b p-4 @min-[40rem]/mcp:grid-cols-[auto_minmax(0,1fr)_auto]",children:[(0,A.jsxs)("h2",{className:"flex items-center gap-2 text-xl font-semibold",children:["MCP",(0,A.jsx)("span",{className:"inline-flex size-4",children:e.loading&&(0,A.jsx)(R.A,{role:"status","aria-label":f("正在读取配置…"),className:"size-4 animate-spin text-muted-foreground"})})]}),(0,A.jsxs)("div",{className:"col-start-2 flex flex-wrap justify-end gap-2 @min-[40rem]/mcp:col-start-3 @min-[40rem]/mcp:self-end",children:[(0,A.jsxs)(U.$,{disabled:l,onClick:n,children:[(0,A.jsx)(am,{"aria-hidden":"true"}),f("添加服务")]}),(0,A.jsx)(U.$,{variant:"outline",disabled:l,onClick:o,children:f("导入 JSON")})]}),(0,A.jsx)("div",{className:"col-span-2 row-start-2 w-full @min-[40rem]/mcp:col-span-1 @min-[40rem]/mcp:col-start-2 @min-[40rem]/mcp:row-start-1 @min-[40rem]/mcp:max-w-80 @min-[40rem]/mcp:justify-self-end @min-[40rem]/mcp:[&_[data-slot=select-trigger]]:mb-0",children:(0,A.jsx)(o0,{id:`${g}-scope`,label:f("配置范围"),value:e.cwd??"",disabled:k,options:[{value:"",label:f("全局")},...h.map(a=>({value:a.cwd,label:`${a.projectName}${a.cwd===b?` \xb7 ${f("当前项目")}`:""}`}))],onChange:a=>{e.setCwd(a||null)}})})]}),e.notice&&!e.check&&(0,A.jsx)("p",{role:"status",className:"shrink-0 break-words border-b px-4 py-2 text-sm",children:f(e.notice)}),e.mcp?.projectTrusted===!1&&(0,A.jsx)("p",{className:"shrink-0 px-4 pt-3 text-sm text-muted-foreground",children:f("本项目尚未受信任,不能执行检查;仍可编辑和保存配置。")}),e.mcp&&e.mcp.diagnostics.length>0&&(0,A.jsx)("div",{className:"max-h-32 shrink-0 space-y-2 overflow-y-auto px-4 pt-3",children:e.mcp.diagnostics.map((a,b)=>(0,A.jsx)(o2,{message:`${a.name?`${a.name}:`:""}${a.message}`},b))}),e.loadError&&(0,A.jsxs)("div",{className:"space-y-3 p-4",children:[(0,A.jsx)(o2,{message:e.loadError}),(0,A.jsx)(U.$,{variant:"outline",onClick:e.retry,disabled:e.loading,children:f("重试")})]}),e.loading&&!e.mcp?(0,A.jsx)("p",{role:"status",className:"p-4 text-sm text-muted-foreground",children:f("正在读取配置…")}):e.mcp?(0,A.jsxs)("div",{"aria-busy":e.loading,className:"flex min-h-0 min-w-0 flex-1",children:[e.editor?.kind!=="json"&&e.rows.length>0&&(0,A.jsxs)("div",{className:(0,W.cn)("pi-desk-chat-scrollbar min-h-0 min-w-0 overflow-y-auto",j?"hidden @min-[48rem]/mcp:block @min-[48rem]/mcp:w-56 @min-[48rem]/mcp:shrink-0 @min-[48rem]/mcp:border-r":"flex-1"),children:[!j&&e.error&&(0,A.jsx)("div",{className:"p-4",children:(0,A.jsx)(o2,{message:e.error.message})}),(0,A.jsx)(o3,{rows:e.rows,selectedName:m,pending:l,onSelect:a=>{m!==a.name&&e.navigate(()=>a.local?e.startManual(a.name,a.local):e.startInherited(a.name,a.config))}})]}),e.editor?(0,A.jsx)(o7,{editor:e.editor,scopeLabel:i,project:null!==e.displayCwd,projectTrusted:e.mcp.projectTrusted,local:e.mcp.local,inherited:e.mcp.inherited,pending:l,saving:e.pending,error:e.error,check:e.check?.name===m?e.check:null,onDraft:e.updateDraft,onJson:e.updateJson,onPreview:e.previewJson,onOverwrite:a=>e.setEditor(b=>b?.kind==="json"?{...b,overwrite:a}:b),onSave:a=>void e.saveEditor(a),onCancel:()=>void e.navigate(()=>e.setEditor(null)),onRemove:a=>void e.remove(a),onDismissCheck:e.dismissCheck},"manual"===e.editor.kind?m??"new":"json"):0===e.rows.length?(0,A.jsx)(o8,{pending:l,onAdd:n,onImport:o}):null]}):null]})}var pa=c(3035),pb=c(4543),pc=c(59776);let pd=E.Yj().trim().min(1).max(200),pe=E.Yj().trim().min(1).max(100).nullable(),pf=E.Yj().trim().min(1).max(100).nullable(),pg=E.Yj().trim().min(1).max(200),ph=E.Ik({label:E.Yj().trim().min(1).max(64),value:E.Yj().trim().min(1).max(500)}).strict(),pi=E.Yj().trim().min(1).max(300).nullable(),pj=E.k5(["running","completed","failed","stopped","interrupted"]),pk=E.Ik({taskId:pd,taskKind:pe,taskType:pf,title:pg,info:E.YO(ph).max(12),status:pj,activity:pi,startedAt:k_.k,endedAt:k_.k.nullable()}).strict().superRefine((a,b)=>{"running"===a.status&&null!==a.endedAt&&b.addIssue({code:"custom",message:"running task requires endedAt=null",path:["endedAt"]}),"running"!==a.status&&null===a.endedAt&&b.addIssue({code:"custom",message:"terminal task requires endedAt",path:["endedAt"]})}),pl=E.Ik({tasks:E.YO(pk)}).strict().superRefine((a,b)=>{let c=new Set;for(let[d,e]of a.tasks.entries())c.has(e.taskId)&&b.addIssue({code:"custom",message:"taskId values must be unique",path:["tasks",d,"taskId"]}),c.add(e.taskId)}),pm=E.Ik({kind:E.eu("text"),text:E.Yj(),truncated:E.zM()}).strict(),pn=pb.RX.extend({kind:E.eu("conversation"),truncated:E.zM()}).strict(),po=E.KC([E.ch(),pm,pn]),pp=E.Ik({taskId:pd,canInterrupt:E.zM(),body:po}).strict(),pq=pc.mv,pr=E.KC([E.Ik({type:E.eu("snapshot"),snapshot:pp}).strict(),E.Ik({type:E.eu("text_append"),text:E.Yj().min(1)}).strict(),E.Ik({type:E.eu("conversation_event"),event:pq}).strict(),E.Ik({type:E.eu("unavailable")}).strict()]);E.Ik({source:pa.R,taskId:pd,entryId:jr.Rv}).strict().extend({imageIndex:E.ai().int().nonnegative()}).strict();let ps=E.Ik({source:pa.R,taskId:pd.nullable()}).strict(),pt=E.Ik({snapshot:pp.nullable()}).strict(),pu=E.Ik({source:pa.R,taskId:pd}).strict(),pv=E.Ik({}).strict(),pw=E.Ik({source:pa.R,taskId:pd,event:pr}).strict(),px=Object.freeze({detailWatch:(0,F.Vc)({path:"task-center/detail-watch",inputSchema:ps,outputSchema:pt}),interrupt:(0,F.Vc)({path:"task-center/interrupt",inputSchema:pu,outputSchema:pv}),detailEvent:(0,F._G)({path:"task-center/detail-event",bodySchema:pw})}),py=(0,S.A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);var pz=c(49028);let pA=(0,S.A)("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),pB=(0,S.A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),pC=(0,S.A)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),pD={damping:.7,stiffness:.05,mass:1.25},pE=1e3/60,pF=!1;globalThis.document?.addEventListener("mousedown",()=>{pF=!0}),globalThis.document?.addEventListener("mouseup",()=>{pF=!1}),globalThis.document?.addEventListener("click",()=>{pF=!1});let pG=(a={})=>{let[b,c]=(0,B.useState)(!1),[d,e]=(0,B.useState)(!1!==a.initial),[f,g]=(0,B.useState)(!1),h=(0,B.useRef)(null);h.current=a;let i=(0,B.useCallback)(()=>{if(!pF)return!1;let a=window.getSelection();if(!a||!a.rangeCount)return!1;let b=a.getRangeAt(0);return b.commonAncestorContainer.contains(q.current)||q.current?.contains(b.commonAncestorContainer)},[]),j=(0,B.useCallback)(a=>{l.isAtBottom=a,e(a)},[]),k=(0,B.useCallback)(a=>{l.escapedFromLock=a,c(a)},[]),l=(0,B.useMemo)(()=>{let c;return{escapedFromLock:b,isAtBottom:d,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return q.current?.scrollTop??0},set scrollTop(scrollTop){if(q.current){let{scrollBehavior:a}=getComputedStyle(q.current);"auto"!==a&&(q.current.style.scrollBehavior="auto"),q.current.scrollTop=scrollTop,l.ignoreScrollToTop=q.current.scrollTop,"auto"!==a&&(q.current.style.scrollBehavior=a)}},get targetScrollTop(){if(!q.current||!r.current)return 0;return q.current.scrollHeight-1-q.current.clientHeight},get calculatedTargetScrollTop(){if(!q.current||!r.current)return 0;let{targetScrollTop:b}=this;if(!a.targetScrollTop)return b;if(c?.targetScrollTop===b)return c.calculatedScrollTop;let d=Math.max(Math.min(a.targetScrollTop(b,{scrollElement:q.current,contentElement:r.current}),b),0);return c={targetScrollTop:b,calculatedScrollTop:d},requestAnimationFrame(()=>{c=void 0}),d},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=70}}},[]),m=(0,B.useCallback)((a={})=>{let b;"string"==typeof a&&(a={animation:a}),a.preserveScrollPosition||j(!0);let c=Date.now()+(Number(a.wait)||0),d=pJ(h.current,a.animation),{ignoreEscapes:e=!1}=a,f=l.calculatedTargetScrollTop;a.duration instanceof Promise?a.duration.finally(()=>{b=Date.now()}):b=c+(a.duration??0);let g=async()=>{let a=new Promise(requestAnimationFrame).then(()=>{if(!l.isAtBottom)return l.animation=void 0,!1;let{scrollTop:j}=l,k=performance.now(),n=(k-(l.lastTick??k))/pE;if(l.animation||(l.animation={behavior:d,promise:a,ignoreEscapes:e}),l.animation.behavior===d&&(l.lastTick=k),i()||c>Date.now())return g();if(j<Math.min(f,l.calculatedTargetScrollTop)){if(l.animation?.behavior===d){if("instant"===d)return l.scrollTop=l.calculatedTargetScrollTop,g();l.velocity=(d.damping*l.velocity+d.stiffness*l.scrollDifference)/d.mass,l.accumulated+=l.velocity*n,l.scrollTop+=l.accumulated,l.scrollTop!==j&&(l.accumulated=0)}return g()}return b>Date.now()?(f=l.calculatedTargetScrollTop,g()):(l.animation=void 0,l.scrollTop<l.calculatedTargetScrollTop)?m({animation:pJ(h.current,h.current.resize),ignoreEscapes:e,duration:Math.max(0,b-Date.now())||void 0}):l.isAtBottom});return a.then(a=>(requestAnimationFrame(()=>{l.animation||(l.lastTick=void 0,l.velocity=0)}),a))};return(!0!==a.wait&&(l.animation=void 0),l.animation?.behavior===d)?l.animation.promise:g()},[j,i,l]),n=(0,B.useCallback)(()=>{k(!0),j(!1)},[k,j]),o=(0,B.useCallback)(({target:a})=>{if(a!==q.current)return;let{scrollTop:b,ignoreScrollToTop:c}=l,{lastScrollTop:d=b}=l;l.lastScrollTop=b,l.ignoreScrollToTop=void 0,c&&c>b&&(d=c),g(l.isNearBottom),setTimeout(()=>{if(l.resizeDifference||b===c)return;if(i()){k(!0),j(!1);return}let a=b>d,e=b<d;if(l.animation?.ignoreEscapes){l.scrollTop=d;return}e&&(k(!0),j(!1)),a&&k(!1),!l.escapedFromLock&&l.isNearBottom&&j(!0)},1)},[k,j,i,l]),p=(0,B.useCallback)(({target:a,deltaY:b})=>{let c=a;for(;!["scroll","auto"].includes(getComputedStyle(c).overflow);){if(!c.parentElement)return;c=c.parentElement}c===q.current&&b<0&&q.current.scrollHeight>q.current.clientHeight&&!l.animation?.ignoreEscapes&&(k(!0),j(!1))},[k,j,l]),q=pH(a=>{q.current?.removeEventListener("scroll",o),q.current?.removeEventListener("wheel",p),a?.addEventListener("scroll",o,{passive:!0}),a?.addEventListener("wheel",p,{passive:!0})},[]),r=pH(a=>{let b;l.resizeObserver?.disconnect(),l.resizeObserver=void 0,a&&(l.resizeObserver=new ResizeObserver(([a])=>{let{height:c}=a.contentRect,d=c-(b??c);if(l.resizeDifference=d,l.scrollTop>l.targetScrollTop&&(l.scrollTop=l.targetScrollTop),g(l.isNearBottom),d>=0){let a=pJ(h.current,b?h.current.resize:h.current.initial);m({animation:a,wait:!0,preserveScrollPosition:!0,duration:"instant"===a?void 0:350})}else l.isNearBottom&&(k(!1),j(!0));b=c,requestAnimationFrame(()=>{setTimeout(()=>{l.resizeDifference===d&&(l.resizeDifference=0)},1)})}),l.resizeObserver?.observe(a))},[]);return{contentRef:r,scrollRef:q,scrollToBottom:m,stopScroll:n,isAtBottom:d||f,isNearBottom:f,escapedFromLock:b,state:l}};function pH(a,b){let c=(0,B.useCallback)(b=>(c.current=b,a(b)),b);return c}let pI=new Map;function pJ(...a){let b={...pD},c=!1;for(let d of a){if("instant"===d){c=!0;continue}"object"==typeof d&&(c=!1,b.damping=d.damping??b.damping,b.stiffness=d.stiffness??b.stiffness,b.mass=d.mass??b.mass)}let d=JSON.stringify(b);return pI.has(d)||pI.set(d,Object.freeze(b)),c?"instant":pI.get(d)}let pK=(0,B.createContext)(null),pL="u">typeof window?B.useLayoutEffect:B.useEffect;function pM({instance:a,children:b,resize:c,initial:d,mass:e,damping:f,stiffness:g,targetScrollTop:h,contextRef:i,...j}){let k=(0,B.useRef)(null),l=pG({mass:e,damping:f,stiffness:g,resize:c,initial:d,targetScrollTop:B.useCallback((a,b)=>{let c=t?.targetScrollTop??h;return c?.(a,b)??a},[h])}),{scrollRef:m,contentRef:n,scrollToBottom:o,stopScroll:p,isAtBottom:q,escapedFromLock:r,state:s}=a??l,t=(0,B.useMemo)(()=>({scrollToBottom:o,stopScroll:p,scrollRef:m,isAtBottom:q,escapedFromLock:r,contentRef:n,state:s,get targetScrollTop(){return k.current},set targetScrollTop(targetScrollTop){k.current=targetScrollTop}}),[o,q,n,m,p,r,s]);return(0,B.useImperativeHandle)(i,()=>t,[t]),pL(()=>{m.current&&"visible"===getComputedStyle(m.current).overflow&&(m.current.style.overflow="auto")},[]),B.createElement(pK.Provider,{value:t},B.createElement("div",{...j},"function"==typeof b?b(t):b))}function pN(){let a=(0,B.useContext)(pK);if(!a)throw Error("use-stick-to-bottom component context must be used within a StickToBottom component");return a}(pM||(pM={})).Content=function({children:a,scrollClassName:b,...c}){let d=pN();return B.createElement("div",{ref:d.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:b},B.createElement("div",{...c,ref:d.contentRef},"function"==typeof a?a(d):a))};let pO=({className:a,...b})=>(0,A.jsx)(pM,{className:(0,W.cn)("relative flex-1 overflow-y-hidden",a),initial:"smooth",resize:"smooth",role:"log",...b}),pP=({className:a,...b})=>(0,A.jsx)(pM.Content,{className:(0,W.cn)("flex flex-col gap-8 p-4",a),...b});var pQ=c(81266);let pR=B.createContext(void 0);function pS(a){let b=B.useContext(pR);if(void 0===b&&!a)throw Error((0,aq.A)(50));return b}var pT=c(69434),pU=c(21574),pV=c(56278);function pW(a,b,c,d){return{left:a,top:b,right:c,bottom:d,x:a,y:b,width:c-a,height:d-b}}function pX(a){let b,c=[],d=1/0,e=1/0,f=-1/0,g=-1/0;for(let h of Array.from(a).sort((a,b)=>a.top-b.top)){if(d=Math.min(d,h.left),e=Math.min(e,h.top),f=Math.max(f,h.right),g=Math.max(g,h.bottom),!b||h.top-b.top>b.height/2)c.push({left:h.left,top:h.top,right:h.right,bottom:h.bottom,width:h.width,height:h.height});else{let a=c[c.length-1];a.left=Math.min(a.left,h.left),a.right=Math.max(a.right,h.right),a.bottom=Math.max(a.bottom,h.bottom),a.width=a.right-a.left,a.height=a.bottom-a.top}b=h}return{lines:c,fallback:pW(d,e,f,g)}}function pY(a,b,c){return a.findIndex(a=>b>a.left-2&&b<a.right+2&&c>a.top-2&&c<a.bottom+2)}function pZ(a){return pW(a.left,a.top,a.right,a.bottom)}function p$(a,b,c,d){let e=function(a,b,c){let{lines:d}=pX(a.getClientRects());if(d.length<2)return;let e=pY(d,b,c);return{x:b,y:c,lineIndex:-1===e?void 0:e,element:a}}(b,c,d);return a.current=e,e}let p_={...pU.ol,instantType:a=>a.instantType,adaptiveOrigin:a=>a.adaptiveOrigin,closeDelay:a=>a.closeDelay};class p0 extends pT.H{constructor(a,b,c){const d=new pV.Z;super(function(a,b,c,d=!1){let e={...(0,pU.rJ)(),instantType:void 0,adaptiveOrigin:void 0,closeDelay:300,...a};return e.floatingRootContext=(0,pU.OB)(b,c,d),e}(a,d,b,c),function(a){return{popupRef:B.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:a,inlineRectCoordsRef:{current:void 0}}}(d),p_)}setOpen=(a,b)=>{let{inlineRectCoordsRef:c}=this.context;(0,aQ.DU)(this,a,b,{onBeforeDispatch(){let d=b.event;a&&b.reason===aT.N7&&b.trigger&&"clientX"in d&&"clientY"in d&&c.current?.element!==b.trigger&&p$(c,b.trigger,d.clientX,d.clientY)}})}}function p1(a){let{open:b,defaultOpen:c=!1,onOpenChange:d,onOpenChangeComplete:e,actionsRef:f,handle:g,triggerId:h,defaultTriggerId:i=null,children:j}=a,k=(0,aQ.xp)((a,d)=>new p0({open:c,openProp:b,activeTriggerId:i,triggerIdProp:h},a,d));k.useControlledProp("openProp",b),k.useControlledProp("triggerIdProp",h),k.useContextCallback("onOpenChange",d),k.useContextCallback("onOpenChangeComplete",e);let l=k.useState("open"),m=k.useState("activeTriggerId"),n=k.useState("mounted"),o=k.useState("payload");(0,aQ.tr)(k,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:p}=(0,aQ.l$)(l,k,()=>{k.context.inlineRectCoordsRef.current=void 0});(0,av.g)(()=>{l&&null==m&&k.set("payload",void 0)},[k,m,l]),B.useImperativeHandle(f,()=>({unmount:p,close:()=>k.setOpen(!1,(0,bh.d)(aT.zJ))}),[p,k]);let q=l||n;return(0,A.jsxs)(pR.Provider,{value:k,children:[g&&(0,A.jsx)(aQ.Ae,{handle:g,store:k}),q&&(0,A.jsx)(p2,{store:k}),"function"==typeof j?j({payload:o}):j]})}function p2({store:a}){let b=a.useState("floatingRootContext"),c=(0,pQ.s)(b);return(0,aQ.i6)(a,{activeTriggerProps:c.reference,inactiveTriggerProps:c.trigger,popupProps:c.floating}),null}let p3=(0,at.G1)(function(a){return pS(!0)?(0,A.jsx)(p1,{...a}):(0,A.jsx)(ax.P6,{children:(0,A.jsx)(p1,{...a})})}),p4=(0,at.nk)(function(a,b){let{render:c,className:d,delay:e,closeDelay:f,id:g,payload:h,handle:i,style:j,...k}=a,l=pS(!0),m=(0,aP.f)(i)??l;if(!m)throw Error((0,aq.A)(89));let n=(0,aS.e)(g),o=m.useState("isTriggerActive",n),p=m.useState("isOpenedByTrigger",n),q=m.useState("floatingRootContext"),r=m.context.inlineRectCoordsRef,s=B.useRef(null),t=e??600,u=f??300,{registerTrigger:v,isMountedByThisTrigger:w}=(0,aQ.L_)(n,s,m,{payload:h,closeDelay:u}),x=(0,ay.j)(q,{mouseOnly:!0,move:!1,handleClose:(0,az.i)(),delay:()=>({open:t,close:u}),triggerElementRef:s,isActiveTrigger:o,isClosing:()=>"ending"===m.select("transitionStatus")}),y=(0,aB.i)(q,{delay:t}),z=m.useState("triggerProps",w),A=function(a,b){function c(c){b||p$(a,c.currentTarget,c.clientX,c.clientY)}return{onFocus(){a.current=void 0},onMouseEnter:c,onMouseMove:c}}(r,p);return(0,aG.o)("a",a,{state:{open:p},ref:[b,v,s],props:[x,y.reference,z,A,{id:n},k],stateAttributesMapping:aF.qV})}),p5=B.createContext(void 0);var p6=c(97894);let p7=B.forwardRef(function(a,b){let{keepMounted:c=!1,...d}=a;return pS().useState("mounted")||c?(0,A.jsx)(p5.Provider,{value:c,children:(0,A.jsx)(p6.F,{ref:b,...d})}):null}),p8=B.createContext(void 0);var p9=c(65913),qa=c(91259);let qb=B.forwardRef(function(a,b){let{render:c,className:d,anchor:e,positionMethod:f="absolute",side:g="bottom",align:h="center",sideOffset:i=0,alignOffset:j=0,collisionBoundary:k="clipping-ancestors",collisionPadding:l=5,arrowPadding:m=5,sticky:n=!1,disableAnchorTracking:o=!1,collisionAvoidance:p=aV.Pe,style:q,...r}=a,s=pS(),t=function(){let a=B.useContext(p5);if(void 0===a)throw Error((0,aq.A)(48));return a}(),u=(0,ax.fI)(),v=s.useState("open"),w=s.useState("mounted"),x=s.useState("floatingRootContext"),y=s.useState("instantType"),z=s.useState("transitionStatus"),C=s.useState("adaptiveOrigin"),D=s.context.inlineRectCoordsRef,E=(0,p9.s)({anchor:e,floatingRootContext:x,positionMethod:f,mounted:w,side:g,sideOffset:i,align:h,alignOffset:j,arrowPadding:m,collisionBoundary:k,collisionPadding:l,sticky:n,disableAnchorTracking:o,keepMounted:t,nodeId:u,collisionAvoidance:p,adaptiveOrigin:C,inline:{name:"inline",async fn(a){let b=a.elements.reference;if("function"!=typeof b?.getClientRects)return{};let c="contextElement"in b&&b.contextElement?b.contextElement:(0,dL.vq)(b)?b:void 0,d=D.current,e=d?.element===b||d?.element===c?d:void 0,f=function(a,b,c){let{lines:d,fallback:e}=pX(a.getClientRects());if(d.length<2)return null;let f=c?.x,g=c?.y,h=b[0];if(c?.lineIndex!=null&&d[c.lineIndex])return pZ(d[c.lineIndex]);if(null!=f&&null!=g){let a=pY(d,f,g);if(-1!==a)return pZ(d[a])}if(2===d.length&&d[0].left>d[1].right&&null!=f&&null!=g)return e;if("t"===h||"b"===h){let a=d[0],b=d[d.length-1],c="t"===h?a:b;return pW(c.left,a.top,c.right,b.bottom)}let i="l"===h,j=d[0].left,k=d[0].right,l=i?1/0:-1/0,m=d[0],n=d[0];for(let a of d){j=Math.min(j,a.left),k=Math.max(k,a.right);let b=i?a.left:a.right;i&&b<l||!i&&b>l?(l=b,m=a,n=a):b===l&&(n=a)}return pW(j,m.top,k,n.bottom)}(b,a.placement,e);if(!f||"function"!=typeof a.platform.getElementRects)return{};let g=await a.platform.getElementRects({reference:{contextElement:c,getBoundingClientRect:()=>f},floating:a.elements.floating,strategy:a.strategy});return a.rects.reference.x===g.reference.x&&a.rects.reference.y===g.reference.y&&a.rects.reference.width===g.reference.width&&a.rects.reference.height===g.reference.height?{}:{reset:{rects:g}}}}}),F=E.update;(0,av.g)(()=>{v&&w&&F()},[v,w,F]);let G={open:v,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:y},H=(0,qa.i)(a,G,{styles:E.positionerStyles,transitionStatus:z,props:r,refs:[b,s.useStateSetter("positionerElement")],hidden:!w,inert:!v});return(0,A.jsx)(p8.Provider,{value:E,children:(0,A.jsx)(ax.$c,{id:u,children:H})})});var qc=c(69833),qd=c(43598);let qe=B.forwardRef(function(a,b){let{className:c,render:d,style:e,...f}=a,g=pS(),{side:h,align:i}=function(){let a=B.useContext(p8);if(void 0===a)throw Error((0,aq.A)(49));return a}(),j=g.useState("open"),k=g.useState("instantType"),l=g.useState("transitionStatus"),m=g.useState("popupProps"),n=g.useState("floatingRootContext"),o=g.useState("closeDelay");return(0,bk.v)({open:j,ref:g.context.popupRef,onComplete(){j&&g.context.onOpenChangeComplete?.(!0)}}),(0,qd.a)(n,{closeDelay:o}),(0,aG.o)("div",a,{state:{open:j,side:h,align:i,instant:k,transitionStatus:l},ref:[b,g.context.popupRef,g.useStateSetter("popupElement")],props:[aQ.Ls,m,(0,qc.d)(l),f],stateAttributesMapping:aF.LM})});function qf({onOpenChange:a,...b}){let c=(0,B.useRef)(null);return(0,A.jsx)(p3,{"data-slot":"hover-card",...b,onOpenChange:(b,d)=>{if(a?.(b,d),d.isCanceled)return;if(b){c.current=d.trigger??null;return}let e=c.current;c.current=null,"escape-key"===d.reason&&e instanceof HTMLElement&&e.ownerDocument.activeElement===e&&e.blur()}})}function qg({...a}){return(0,A.jsx)(p4,{"data-slot":"hover-card-trigger",...a})}function qh({className:a,side:b="bottom",sideOffset:c=4,align:d="center",alignOffset:e=4,...f}){return(0,A.jsx)(p7,{"data-slot":"hover-card-portal",children:(0,A.jsx)(qb,{align:d,alignOffset:e,side:b,sideOffset:c,className:"isolate z-50",children:(0,A.jsx)(qe,{"data-slot":"hover-card-content",className:(0,W.cn)("z-50 w-80 max-w-[calc(100vw-2rem)] origin-(--transform-origin) rounded-lg border border-border bg-popover p-3 text-sm text-popover-foreground shadow-md outline-hidden duration-100 motion-reduce:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...f})})})}let qi=({className:a,...b})=>(0,A.jsx)(j0.Sq,{align:"block-end",className:(0,W.cn)("justify-between gap-1",a),...b}),qj=({className:a,...b})=>(0,A.jsx)("div",{className:(0,W.cn)("flex min-w-0 items-center gap-1",a),...b}),qk=({variant:a="ghost",className:b,size:c,tooltip:d,...e})=>{let f=c??(B.Children.count(e.children)>1?"sm":"icon-sm"),g=(0,A.jsx)(j0.Ik,{className:(0,W.cn)(b),size:f,type:"button",variant:a,...e});if(!d)return g;let h="string"==typeof d?d:d.content,i="string"==typeof d?void 0:d.shortcut,j="string"==typeof d?"top":d.side??"top";return(0,A.jsxs)(dX.m_,{children:[(0,A.jsx)(dX.k$,{render:g}),(0,A.jsxs)(dX.ZI,{side:j,children:[h,i&&(0,A.jsx)("span",{className:"ml-2 text-muted-foreground",children:i})]})]})},ql=E.Ik({input:E.g1(E.Yj(),E.Pq())}).strict(),qm=E.Ik({output:E.Yj()}).strict(),qn="pideskHelp",qo=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,qp=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;function qq(a){return/^[a-zA-Z0-9_./:@=+-]+$/.test(a)?a:JSON.stringify(a)}let qr=E.Ik({name:E.Yj(),scope:E.eu("global").optional(),source:E.Yj(),kind:E.k5(["package","extension"]),version:E.Yj().nullable(),status:E.k5(["ready","available","disabled","failed"]),updateTag:E.Yj().nullish(),availableVersion:E.Yj().nullish(),updateError:E.Yj().nullish(),operation:E.Ik({action:E.k5(["add","update","del","apply"]),phase:E.k5(["queued","checking","applying","waiting","failed"]),message:E.Yj().nullable()}).strict().nullish(),error:E.Ik({phase:E.k5(["package","entry","setup","resources","resolve","native"]),message:ct.qf}).strict().nullish()}).strict(),qs=E.Ik({plugins:E.YO(qr),restartRequired:E.zM(),loadError:ct.qf.nullish()}).strict(),qt=qr.extend({detail:E.g1(E.Yj(),E.Pq())}).strict(),qu=E.Ik({version:E.Yj(),environment:E.k5(["development","production"]),mode:E.k5(["basic","normal"]),cwd:E.Yj(),agentDir:E.Yj(),docsDirectory:E.Yj()}).strict(),qv=null,qw=new WeakMap,qx=new WeakMap,qy=new WeakMap;function qz(a){switch(a.fixed.type){case"user":{let b=pb.lJ.safeParse(a.summary);return{summary:{type:"user",...b.success?b.data:{text:"",images:[]},hasDetail:!1},detail:void 0}}case"assistant":{let b="pi-desk/assistant"===a.fixed.viewKey?pb.Er.safeParse(a.summary):null,c=b?.success?b.data:{text:"",errorMessage:null},d="pi-desk/assistant"===a.fixed.viewKey?pb.Rh.safeParse(a.detail):null;return{summary:{type:"assistant",text:c.text,model:"model"in c?c.model:null,errorMessage:c.errorMessage,status:a.fixed.status,usage:a.fixed.usage,hasDetail:a.fixed.hasDetail},detail:d?.success?{type:"assistant",...d.data}:void 0}}case"tool":{let b={name:a.fixed.viewKey,reasoning:null,inputPreview:null,activity:null},c={status:a.fixed.status,usage:a.fixed.usage,hasDetail:a.fixed.hasDetail};switch(a.fixed.viewKey){case"pi-desk/codemode":{let d=pb.UT.safeParse(a.summary),e=d.success?d.data:b,f=pb.ny.safeParse(a.detail);return{summary:{type:"tool",kind:"codemode",...e,...c},detail:f.success?{type:"tool",kind:"codemode",...f.data}:void 0}}case"pi-desk/pidesk":{let d=ql.safeParse(a.summary),e=d.success?d.data:{input:{}},f=qm.safeParse(a.detail);return{summary:{type:"tool",kind:"pidesk",...b,...e,...c},detail:f.success?{type:"tool",kind:"pidesk",output:f.data.output}:void 0}}case"pi-desk/bash-tool":{let d=pb.Qi.safeParse(a.summary),e=d.success?d.data:{...b,timing:null},f=pb.Ok.safeParse(a.detail);return{summary:{type:"tool",kind:"bash",...e,...c},detail:f.success?{type:"tool",kind:"bash",output:f.data.output}:void 0}}case"pi-desk/read":{let d=pb.Gx.safeParse(a.summary),e=d.success?d.data:{...b,path:null},f=pb.Xj.safeParse(a.detail);return{summary:{type:"tool",kind:"read",...e,...c},detail:f.success?{type:"tool",kind:"read",content:f.data.content}:void 0}}case"pi-desk/edit":{let d=pb.aV.safeParse(a.summary),e=d.success?d.data:{...b,path:null},f=pb.Rk.safeParse(a.detail);return{summary:{type:"tool",kind:"edit",...e,...c},detail:f.success?{type:"tool",kind:"edit",contentKind:f.data.kind,content:f.data.content}:void 0}}case"pi-desk/write":{let d=pb.bN.safeParse(a.summary),e=d.success?d.data:{...b,path:null},f=pb.O_.safeParse(a.detail);return{summary:{type:"tool",kind:"write",...e,...c},detail:f.success?{type:"tool",kind:"write",contentKind:f.data.kind,content:f.data.content}:void 0}}default:{let d=pb.Px.safeParse(a.summary),e=d.success?d.data:b,f=pb.Ok.safeParse(a.detail);return{summary:{type:"tool",kind:"generic",...e,...c},detail:f.success?{type:"tool",kind:"generic",output:f.data.output}:void 0}}}}case"bash":{let b=pb.ai.safeParse(a.summary),c=b.success?b.data:{command:a.fixed.viewKey},d=pb.bG.safeParse(a.detail);return{summary:{type:"bash",command:c.command,status:a.fixed.status,hasDetail:a.fixed.hasDetail},detail:d.success?{type:"bash",...d.data}:void 0}}case"custom":{if("pi-desk/compaction"===a.fixed.viewKey){let b=pb.sL.safeParse(a.detail);return{summary:{type:"compaction",hasDetail:a.fixed.hasDetail},detail:b.success?{type:"compaction",...b.data}:void 0}}let b=pb.Rt.safeParse(a.summary);return{summary:{type:"custom",text:(b.success?b.data:{text:""}).text,hasDetail:!1},detail:void 0}}}}function qA(a){return a.temporary||"status"in a.summary&&"running"===a.summary.status}function qB(a){return"assistant"===a.summary.type&&("error"===a.summary.status||!!a.summary.errorMessage||(a.detail?.type==="assistant"?a.detail.thinking.trim().length>0:a.summary.hasDetail))}function qC(a,b,c){if("compaction"===c.summary.type){qD(a,b),a.push({identity:c.identity,user:null,processItems:[],finalAssistant:null,compaction:c,running:qA(c),toolCount:0});return}"user"!==c.summary.type?b.body.push(c):(qD(a,b),b.user=c)}function qD(a,b){if(!b.user&&0===b.body.length)return;let c=b.user?.identity??b.body[0].identity;a.push(function(a,b,c){let d=function(a){for(let b=a.length-1;b>=0;b-=1){let c=a[b];if("custom"!==c.summary.type){if("assistant"!==c.summary.type)return -1;return c.summary.text.trim()||"pi-desk/assistant"!==c.viewKey?b:-1}}return -1}(c),e=d>=0?c[d]:null,f=[];for(let[a,b]of c.entries()){if(a!==d){("assistant"!==b.summary.type||"pi-desk/assistant"!==b.viewKey||b.summary.text.trim().length>0||qB(b))&&f.push({message:b,hideAssistantText:!1});continue}qB(b)&&f.push({message:b,hideAssistantText:!0})}return{identity:a,user:b,processItems:f,finalAssistant:e,compaction:null,running:c.some(qA),toolCount:c.filter(a=>"tool"===a.summary.type||"bash"===a.summary.type).length}}(c,b.user,b.body)),b.user=null,b.body=[]}function qE(a,b=!1){let c=function(a){let b=qy.get(a);if(b)return b;let c=[],d={user:null,body:[]},e=new Set,f=[],g=(a[0]?.location.index??0)>0;for(let b of a){if(e.has(b.location.entryId))continue;e.add(b.location.entryId);let a=function(a){let b=qw.get(a);if(b)return b;let c=qz(a),d={identity:`position:${a.location.index}`,position:a.location.index,viewKey:a.fixed.viewKey,snapshot:a,...c,temporary:!1,timestampMs:a.fixed.timestampMs,durable:a,tempId:null};return qw.set(a,d),d}(b);"compaction"===a.summary.type?(f=[],g=!1):"assistant"===b.fixed.type&&(f.push(a),"assistant"===a.summary.type&&null!==a.timestampMs&&(a.summary.text.trim()||"pi-desk/assistant"!==a.viewKey)&&(a={...a,usageCalls:f,usageIncomplete:g},f=[],g=!1)),qC(c,d,a)}let h={turns:c,user:d.user,body:d.body};return qy.set(a,h),h}(a.messages),d=[...c.turns],e={user:c.user,body:[...c.body]};for(let[b,c]of a.temporaryMessages.entries())qC(d,e,function(a,b){let c=qx.get(a);if(c?.position===b)return c.message;let d=qz(a),e={identity:`position:${b}`,position:b,viewKey:a.fixed.viewKey,snapshot:a,...d,temporary:!0,timestampMs:a.fixed.timestampMs,durable:null,tempId:a.location.tempId};return qx.set(a,{position:b,message:e}),e}(c,a.messages.length+b));qD(d,e);let f=d.at(-1);return b&&f&&!f.compaction&&(f.running=!0),d}function qF(a){return a<1e3?String(a):a<1e6?`${(a/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${(a/1e6).toFixed(1).replace(/\.0$/,"")}m`}function qG(a){return 0===a?"$0":a<1e-4?"<$0.0001":`$${a.toFixed(4).replace(/0+$/,"").replace(/\.$/,"")}`}function qH(a,b=Date.now(),c="en",d="UTC"){let e=new Date(a),f=new Date(b),g=function(a,b){if(qv?.locale===a&&qv.timeZone===b)return qv;let c="en"===a?"en-US":"zh-CN";return qv={locale:a,timeZone:b,compactTime:new Intl.DateTimeFormat(c,{timeZone:b,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),compactDateTime:new Intl.DateTimeFormat(c,{timeZone:b,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),fullDateTime:new Intl.DateTimeFormat(c,{timeZone:b,timeZoneName:"shortOffset",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),dateKey:new Intl.DateTimeFormat("en-US",{timeZone:b,year:"numeric",month:"2-digit",day:"2-digit"})}}(c,d);return{compact:g.dateKey.format(e)===g.dateKey.format(f)?g.compactTime.format(e):g.compactDateTime.format(e),full:g.fullDateTime.format(e)}}function qI(a,b,c={}){}function qJ(a){return a.querySelector("[data-chat-tail-space]")}function qK(a){for(let b of a.querySelectorAll("[data-chat-tail-space]"))qI("tail:clear:start",a),b.style.removeProperty("min-height"),delete b.dataset.chatTailSpace,delete b.dataset.chatTailAnchor,delete b.dataset.chatTailOffset,qI("tail:clear:end",a)}function qL({active:a=!0}){let{scrollRef:b,state:c}=pN();return null}function qM(a){let b=[a.user,...a.processItems.map(a=>a.message),a.finalAssistant,a.compaction].filter(a=>null!==a),c=new Set;return b.filter(a=>!c.has(a.identity)&&(c.add(a.identity),!0))}function qN(a,b,c){let d=0;for(let e=b;e<c;e+=1)a[e]?.user&&(d+=1);return d}function qO(a,b){let c=Math.max(0,Math.min(a.length,b)),d=Math.min(2,qN(a,0,c)),e=c,f=0,g=0,h=0;for(;e>0;){let b=a[e-1],c=qM(b).length,i=h<d;if(f>0&&!i&&(f>=30||g+c>200))break;e-=1,f+=1,g+=c,b.user&&(h+=1)}return e}function qP(a,b){let c=Math.max(0,Math.min(a.length,b)),d=Math.min(2,qN(a,c,a.length)),e=c,f=0,g=0,h=0;for(;e<a.length;){let b=a[e],c=qM(b).length,i=h<d;if(f>0&&!i&&(f>=30||g+c>200))break;e+=1,f+=1,g+=c,b.user&&(h+=1)}return e}function qQ(a){return{startIndex:qO(a,a.length),endIndex:a.length}}function qR(a,b){let c,d;if(0===a.length)return{startIndex:0,endIndex:0};if(!b)return qQ(a);let e=(d=(c=b.lastIndexOf(":"))>0?b.slice(0,c):b,a.findIndex(a=>qM(a).some(a=>a.identity===d)));if(e<0)return qQ(a);let f=Math.min(a.length,e+1+10);return{startIndex:qO(a,f),endIndex:f}}function qS({active:a=!0,turns:b,focusTurnIdentity:c,initialAnchor:d,children:e}){let{scrollRef:f}=pN(),[g,h]=(0,B.useState)(()=>({...qR(b,d),turnCount:b.length,focusTurnIdentity:c}));a||g.focusTurnIdentity===c||h({...g,focusTurnIdentity:c});let i=(0,B.useRef)(null),j=(0,B.useRef)(!1),k=(0,B.useMemo)(()=>{if(0===b.length)return{startIndex:0,endIndex:0};if(a&&g.focusTurnIdentity!==c)return qQ(b);if(0===g.turnCount&&0===g.endIndex)return qR(b,d);let e=g.endIndex>=g.turnCount;return{startIndex:Math.min(g.startIndex,b.length),endIndex:e?b.length:Math.max(g.startIndex,Math.min(g.endIndex,b.length))}},[a,c,d,b,g]),l=(0,B.useCallback)(a=>{h({...a,turnCount:b.length,focusTurnIdentity:c})},[c,b.length]),m=(0,B.useCallback)(()=>{let a=f.current,b=a?.querySelector("[data-chat-turn]");a&&b?.dataset.chatTurn&&(i.current={turnIdentity:b.dataset.chatTurn,offset:b.getBoundingClientRect().top-a.getBoundingClientRect().top})},[f]);(0,B.useCallback)(()=>{if(k.startIndex<=0||j.current)return;let a=qO(b,k.startIndex);if(a>=k.startIndex)return;m();let c=f.current;c&&qI("window:expand-earlier",c,{previousStartIndex:k.startIndex,nextStartIndex:a}),j.current=!0,l({...k,startIndex:a})},[m,l,k,f,b]),(0,B.useCallback)(()=>{if(k.endIndex>=b.length||j.current)return;let a=qP(b,k.endIndex);a<=k.endIndex||(j.current=!0,l({...k,endIndex:a}))},[l,k,b]);let n=(0,B.useCallback)(a=>{!Number.isSafeInteger(a)||a<0||a>=b.length||a>=k.startIndex&&a<k.endIndex||(a<k.startIndex?l({...k,startIndex:Math.min(a,qO(b,a+1))}):l({...k,endIndex:Math.max(a+1,qP(b,a))}))},[l,k,b]),o=(0,B.useCallback)(()=>{l(qQ(b))},[l,b]),p=(0,B.useMemo)(()=>b.slice(k.startIndex,k.endIndex),[k.endIndex,k.startIndex,b]),q=(0,B.useMemo)(()=>({...k,visibleTurns:p,containsTail:k.endIndex>=b.length,revealTurn:n,resetToTail:o}),[k,o,n,b.length,p]);return(0,A.jsx)(A.Fragment,{children:e(q)})}let qT={canMoveUp:!1,canMoveDown:!1,hasNextMessage:!1};function qU(a,b,c,d){let e=0,f=a.length;for(;e<f;){let g=Math.floor((e+f)/2),h=a[g].getBoundingClientRect().top-b;(d?h>=c:h>c)?f=g:e=g+1}return e}function qV(a){return a.user?`${a.user.identity}:user`:null}function qW(a,b,c){var d;let e,f,g=Array.from(a.querySelectorAll("[data-chat-user-message]")),h=a.getBoundingClientRect().top+12,i=qU(g,h,-2,!0),j=qU(g,h,2,!1),k=c.find(a=>a>=b.startIndex&&a<b.endIndex),l=c.findLast(a=>a>=b.startIndex&&a<b.endIndex),m=0===i?c.findLast(a=>a<(k??b.startIndex))??null:null,n=j>=g.length?c.find(a=>a>(l??b.endIndex-1))??null:null,o=a.scrollHeight-a.scrollTop-a.clientHeight,p=(f=qJ(a))&&(e=(d=f).lastElementChild)instanceof HTMLElement?Math.max(0,d.getBoundingClientRect().bottom-e.getBoundingClientRect().bottom):0,q=b.containsTail&&o<=2;return qI("navigation:inspect",a,{containsTail:b.containsTail,tailSpacerHeight:p,atBottom:q,previousMessage:g[i-1]?.dataset.chatUserMessage??null,nextMessage:g[j]?.dataset.chatUserMessage??null,previousOutsideTurnIndex:m,nextOutsideTurnIndex:n}),{previousMessage:g[i-1]??null,nextMessage:g[j]??null,previousOutsideTurnIndex:m,nextOutsideTurnIndex:n,atBottom:q}}function qX({turns:a,window:b}){let{t:c}=(0,Q.Bd)("conversation"),{scrollRef:d,scrollToBottom:e,stopScroll:f}=pN(),g=(0,B.useMemo)(()=>a.flatMap((a,b)=>a.user?[b]:[]),[a]),[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(qT),[l,m]=(0,B.useState)(null),n=(0,B.useRef)(null),o=(0,B.useRef)(!1),p=(0,B.useRef)(!1),q=(0,B.useRef)(null),r=(0,B.useRef)(null),s=(0,B.useRef)(!1),t=(0,B.useRef)(null),u=(0,B.useRef)(!1),v=(0,B.useRef)(!1),w=(0,B.useCallback)(a=>{var c;let d,e=(d=!(c=qW(a,b,g)).atBottom,{canMoveUp:null!==c.previousMessage||null!==c.previousOutsideTurnIndex,canMoveDown:d,hasNextMessage:d&&(null!==c.nextMessage||null!==c.nextOutsideTurnIndex)});s.current&&(e.canMoveDown=!1),k(a=>a.canMoveUp===e.canMoveUp&&a.canMoveDown===e.canMoveDown&&a.hasNextMessage===e.hasNextMessage?a:e)},[b,g]),x=(0,B.useCallback)(a=>{null===r.current&&(r.current=window.requestAnimationFrame(()=>{r.current=null,w(a)}))},[w]),y=(0,B.useCallback)(()=>{null!==q.current&&(window.clearTimeout(q.current),q.current=null)},[]),z=(0,B.useCallback)(()=>{y(),p.current||(q.current=window.setTimeout(()=>{q.current=null,o.current=!1,i(!1),null!==r.current&&(window.cancelAnimationFrame(r.current),r.current=null)},2e3))},[y]);(0,B.useCallback)(()=>{null!==n.current&&window.clearTimeout(n.current),n.current=null,m(a=>a?.visible?{...a,visible:!1}:a)},[]);let C=(0,B.useCallback)(a=>{null!==n.current&&window.clearTimeout(n.current),m({index:a,visible:!0}),n.current=window.setTimeout(()=>{n.current=null,m(a=>a?.visible?{...a,visible:!1}:a)},2e3)},[]),D=(0,B.useCallback)(()=>{let a=d.current;a&&(o.current||k(qT),o.current=!0,i(!0),x(a),z())},[x,z,d]),E=(0,B.useCallback)((c,h)=>{let i=d.current;if(!i)return;D();let j=qW(i,b,g),l="up"===c?j.previousMessage:j.atBottom?null:j.nextMessage;if(l){let c=g.findIndex(b=>qV(a[b])===l.dataset.chatScrollAnchor);c>=0&&C(c+1),s.current=!1,f(),function(a,b,c){let d,e,f,g,h,i;qI("position:start",a,{target:b.dataset.chatScrollAnchor??null,offset:12,addTailSpace:c});let j=c?(i=(h=a.querySelectorAll("[data-chat-turn]")).item(h.length-1),i?.hasAttribute("data-chat-logical-tail")?i:null):null;if(j&&qJ(a)===j||qK(a),!j){a.scrollTop=Math.max(0,a.scrollTop+b.getBoundingClientRect().top-a.getBoundingClientRect().top-12),qI("position:end",a,{target:b.dataset.chatScrollAnchor??null,offset:12,addTailSpace:c});return}let{targetScrollTop:k,minHeight:l}=(d=a.getBoundingClientRect(),f=Math.max(0,(e=a.scrollTop)+b.getBoundingClientRect().top-d.top-12),g=e+j.getBoundingClientRect().top-d.top,{targetScrollTop:f,minHeight:Math.max(0,f+a.clientHeight-g-function(a){let b=a.parentElement;if(!b)return 0;let c=Number.parseFloat(getComputedStyle(b).paddingBottom);return Number.isFinite(c)?c:0}(j))}),m=`${Math.ceil(l)}px`;j.style.minHeight!==m&&(j.style.minHeight=m),j.hasAttribute("data-chat-tail-space")||(j.dataset.chatTailSpace="");let n=b.dataset.chatScrollAnchor;j.dataset.chatTailAnchor!==n&&(n?j.dataset.chatTailAnchor=n:delete j.dataset.chatTailAnchor),j.dataset.chatTailOffset!==String(12)&&(j.dataset.chatTailOffset=String(12)),a.scrollTop=k,qI("position:end",a,{target:b.dataset.chatScrollAnchor??null,offset:12,addTailSpace:c,minHeight:l})}(i,l,b.containsTail)}else{let d="up"===c?j.previousOutsideTurnIndex:j.nextOutsideTurnIndex;if(null!==d){let c=qV(a[d]);c&&(C(g.indexOf(d)+1),s.current=!1,t.current={anchor:c},b.revealTurn(d))}else"down"===c&&(g.length>0&&C(g.length),h&&(h.disabled=!0),k(a=>a.canMoveDown?{...a,canMoveDown:!1}:a),j.atBottom||s.current||(qI("navigation:bottom:start",i,{containsTail:b.containsTail}),s.current=!0,qK(i),b.containsTail?Promise.resolve(e({animation:"instant"})).finally(()=>{s.current=!1,v.current&&o.current&&x(i)}):(u.current=!0,b.resetToTail())))}x(i)},[x,d,e,D,C,f,a,b,g]),F=h&&(j.canMoveUp||j.canMoveDown),G=c(j.hasNextMessage?"nextUserMessage":"bottom");return(0,A.jsxs)(A.Fragment,{children:[l&&g.length>0?(0,A.jsxs)("div",{role:"status","aria-hidden":!l.visible,"aria-label":`${c("userNavigation")} ${l.index} / ${g.length}`,className:`pointer-events-none absolute top-1/2 left-3 z-10 -translate-y-1/2 rounded-lg border bg-background/95 px-2 py-2 shadow-sm transition-opacity duration-150 motion-reduce:transition-none sm:left-4 ${l.visible?"opacity-100":"opacity-0"}`,children:[(0,A.jsxs)("div",{className:"text-center text-sm font-medium tabular-nums",children:[l.index," / ",g.length]}),(0,A.jsx)("div",{className:"relative mx-auto mt-2 h-28 w-0.5 rounded-full bg-border",children:(0,A.jsx)("span",{className:"absolute left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-foreground",style:{top:`${(l.index-1)/Math.max(1,g.length-1)*100}%`}})})]}):null,F?(0,A.jsxs)(dW,{orientation:"vertical",className:"absolute right-3 bottom-4 z-10 rounded-lg shadow-sm sm:right-4","aria-label":c("userNavigation"),onMouseEnter:()=>{p.current=!0,y()},onMouseLeave:()=>{p.current=!1,o.current&&z()},children:[(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"icon",className:"size-10 bg-background/90 backdrop-blur dark:bg-background/90",disabled:!j.canMoveUp,"aria-label":c("previousUserMessage"),title:c("previousUserShort"),onClick:()=>E("up"),children:(0,A.jsx)($.A,{className:"size-4"})}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"icon",className:"size-10 bg-background/90 backdrop-blur dark:bg-background/90",disabled:!j.canMoveDown,"aria-label":G,title:G,onClick:a=>E("down",a.currentTarget),children:(0,A.jsx)(_.A,{className:"size-4"})})]}):null]})}let qY=(0,B.createContext)({basic:!1});function qZ({basic:a,onRecover:b,children:c}){let d=(0,B.useMemo)(()=>({basic:a,recover:b}),[a,b]);return(0,A.jsx)(qY.Provider,{value:d,children:c})}function q$(a){return{location:a.snapshot.location,fixed:a.snapshot.fixed,summary:a.snapshot.summary,...void 0===a.snapshot.detail?{}:{detail:a.snapshot.detail}}}class q_{constructor(a,b){this.listeners=new Set,this.pending=null,this.requestEpoch=0,this.disposed=!1,this.basic=!1,this.message=a,this.snapshot=q$(a),this.loader=b,this.detailLoaded=void 0!==this.snapshot.detail||!this.snapshot.fixed.hasDetail}getSnapshot(){return this.snapshot}subscribe(a){if(this.disposed)throw Error("Message Handle has been disposed");return this.listeners.add(a),()=>{this.listeners.delete(a)}}loadDetail(){if(this.detailLoaded)return Promise.resolve(this.snapshot.detail??null);if(!this.snapshot.fixed.hasDetail)return Promise.resolve(null);if(!("entryId"in this.snapshot.location))return Promise.reject(Error("Temporary Message 不能读取 canonical Detail"));if(this.pending)return this.pending;let a=this.requestEpoch,b=this.loader(this.message).then(b=>(this.disposed||a!==this.requestEpoch||(this.detailLoaded=!0,this.snapshot={...this.snapshot,...null===b?{}:{detail:b}},this.notify()),b)).finally(()=>{this.pending===b&&(this.pending=null)});return this.pending=b,b}replace(a,b,c){if(this.disposed)return;let d=q$(a);if(this.snapshot===d)return;let e=this.basic!==c||void 0!==this.snapshot.detail&&void 0===d.detail||this.snapshot.fixed.viewKey!==d.fixed.viewKey||"entryId"in this.snapshot.location&&"entryId"in d.location&&this.snapshot.location.entryId!==d.location.entryId;this.basic=c,this.message=a,this.loader=b,this.snapshot=d,e?(this.requestEpoch+=1,this.pending=null,this.detailLoaded=void 0!==d.detail||!d.fixed.hasDetail):void 0===d.detail&&d.fixed.hasDetail||(this.detailLoaded=!0),this.notify()}dispose(){this.disposed||(this.disposed=!0,this.listeners.clear(),this.requestEpoch+=1,this.pending=null)}notify(){for(let a of[...this.listeners])a()}}function q0({message:a,pluginName:b,contributionName:c,phase:d,error:e,handle:f,fallback:g,onRetry:h}){let{t:i}=(0,Q.Bd)("conversation"),[j,k]=(0,B.useState)(f.getSnapshot().detail),[l,m]=(0,B.useState)(!1),[n,o]=(0,B.useState)(null),p=(0,B.useContext)(qY),[q,r]=(0,B.useState)(!1),[s,t]=(0,B.useState)(!1);return e.name,e.message,e.stack,(0,A.jsxs)("div",{className:"space-y-2","data-message-id":a.identity,children:[g,(0,A.jsx)("div",{role:"alert",className:"rounded-lg border border-destructive/35 bg-muted/30 p-3 text-sm",children:(0,A.jsxs)("div",{className:"flex items-start gap-2",children:[(0,A.jsx)(cl.A,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"font-medium text-destructive",children:i("viewFailed")}),"pi-desk/message-declaration-error"===a.viewKey&&"string"==typeof a.snapshot.summary.text&&a.snapshot.summary.text.length>0?(0,A.jsx)("p",{className:"mt-2 whitespace-pre-wrap break-words text-foreground",children:a.snapshot.summary.text}):null,(0,A.jsxs)(cp,{error:e,children:[(0,A.jsxs)("p",{className:"text-xs text-muted-foreground [overflow-wrap:anywhere]",children:[b??"Host"," \xb7 ",c??i("reservedView")," \xb7 ",a.viewKey," ","\xb7 ",d]}),(0,A.jsxs)("details",{className:"text-sm",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-muted-foreground",children:i("publicSnapshot")}),(0,A.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto rounded-md bg-background p-3 font-mono text-sm whitespace-pre-wrap [overflow-wrap:anywhere]",children:JSON.stringify(f.getSnapshot(),null,2)})]}),!a.temporary&&a.snapshot.fixed.hasDetail&&void 0===j?(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",disabled:l,onClick:()=>{m(!0),o(null),f.loadDetail().then(k,a=>{o(a instanceof Error?a.message:i("detailFailed"))}).finally(()=>m(!1))},children:[l?(0,A.jsx)(R.A,{className:"animate-spin"}):null,i("loadDetail")]}):null,n?(0,A.jsx)("p",{className:"text-sm text-destructive [overflow-wrap:anywhere]",children:n}):null,j?(0,A.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md bg-background p-3 font-mono text-sm whitespace-pre-wrap [overflow-wrap:anywhere]",children:JSON.stringify(j,null,2)}):null]}),p.recover?(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",className:"mt-2 mr-2",disabled:q,onClick:()=>{r(!0),p.recover().catch(a=>o(a instanceof Error?a.message:String(a))).finally(()=>r(!1))},children:[q?(0,A.jsx)(R.A,{className:"animate-spin"}):null,i("useBasicPresentation")]}):null,h?(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",className:"mt-2",disabled:s,onClick:()=>{t(!0),o(null),Promise.resolve().then(h).catch(a=>o(a instanceof Error?a.message:String(a))).finally(()=>t(!1))},children:[s?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),i("retry")]}):null]})]})})]})}function q1({message:a}){let{t:b}=(0,Q.Bd)("conversation");return(0,A.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3 text-sm","aria-busy":"true",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",role:"status",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),b("viewLoading")]}),(0,A.jsxs)("details",{className:"mt-2",children:[(0,A.jsx)("summary",{className:"cursor-pointer text-muted-foreground",children:b("messageContent")}),(0,A.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap [overflow-wrap:anywhere]",children:JSON.stringify(a.snapshot.summary,null,2)})]})]})}function q2({message:a,loadDetail:b,defaultView:c}){let{t:d}=(0,Q.Bd)("conversation"),e=(0,bF.t4)();(0,bF.So)();let f=(0,B.useContext)(qY),g=(0,B.useRef)(null);(0,B.useRef)(null);let h=(0,B.useRef)(null),[i,j]=(0,B.useState)({status:"loading"}),[k]=(0,B.useState)(()=>new q_(a,b)),[l,m]=(0,B.useState)(0),n=e.getMessageViewResolution(a.viewKey),o=e.areEntriesInitialized(),p=!n&&e.isRefreshingEntries(),q=n?.status==="winner"?`${a.viewKey}\u0000${n.pluginName}\u0000${n.descriptor.contributionName}\u0000${n.descriptor.priority}`:n?.status==="conflict"?`${a.viewKey}\u0000${n.candidates.map(a=>`${a.pluginName}:${a.descriptor.contributionName}`).join(",")}`:a.viewKey,r=n?.status==="winner"?n.pluginName:null;n?.status==="winner"&&n.descriptor.contributionName;let s=r?e.getEntryState(r):null,t=s?.status==="ready"?s.runtime:s?.status,u=a.viewKey.startsWith("pi-desk/")&&"pi-desk/message-declaration-error"!==a.viewKey,v=(0,B.useMemo)(()=>({attempt:l,basic:f.basic,resolutionKey:q,winnerIdentity:t}),[l,f.basic,q,t]);if((0,B.useMemo)(()=>({kind:"message-view",message:{getSnapshot:()=>k.getSnapshot(),subscribe:a=>h.current!==v?()=>void 0:k.subscribe(()=>{if(h.current===v&&r&&e.getEntryState(r)===s)try{a()}catch(a){j({status:"error",error:a instanceof Error?a:Error(String(a)),phase:"update",generation:v})}}),loadDetail:async()=>{if(h.current!==v)throw Error("Message View 已释放");let a=await k.loadDetail();if(h.current!==v)throw Error("Message View 已释放");return a}},reportError(a){h.current===v&&r&&e.getEntryState(r)===s&&j({status:"error",error:a instanceof Error?a:Error(String(a)),phase:"report-error",generation:v})}}),[k,v,e,s,r]),f.basic)return(0,A.jsx)(A.Fragment,{children:c});if("pi-desk/message-declaration-error"===a.viewKey)return(0,A.jsx)(q0,{message:a,pluginName:"pi-desk",contributionName:"message-declaration-error",phase:"declaration",error:Error(d("declarationFailed")),handle:k});if(!o)return u?(0,A.jsx)(A.Fragment,{children:c}):(0,A.jsx)(q1,{message:a});if(n?.status==="conflict")return(0,A.jsx)(q0,{message:a,pluginName:null,contributionName:null,phase:"priority-conflict",error:Error(d("viewConflict")),handle:k,fallback:u?c:void 0});if(!n)return u?(0,A.jsx)(A.Fragment,{children:c}):p?(0,A.jsx)(q1,{message:a}):(0,A.jsx)(q0,{message:a,pluginName:null,contributionName:null,phase:"missing-view",error:Error(d("viewMissing",{viewKey:a.viewKey})),handle:k,onRetry:async()=>{await e.refreshEntries(),await Promise.all(e.getFailedEntries().map(({pluginName:a})=>e.retryEntry(a)))}});if("error"===i.status&&i.generation===v)return(0,A.jsx)(q0,{message:a,pluginName:n.pluginName,contributionName:n.descriptor.contributionName,phase:i.phase,error:i.error,handle:k,fallback:u?c:void 0,onRetry:()=>{let a=e.getContributionLoadState(n.pluginName,"message-view",n.descriptor.contributionName);(j({status:"loading"}),"failed"!==a.status)?m(a=>a+1):e.retryContribution(n.pluginName,"message-view",n.descriptor.contributionName).then(()=>m(a=>a+1),a=>{j({status:"error",error:a instanceof Error?a:Error(String(a)),phase:"load",generation:v})})}});let w="ready"===i.status&&i.generation===v;return(0,A.jsxs)("div",{className:"relative","data-message-id":a.identity,"aria-busy":!w,children:[w?null:u?c:(0,A.jsx)(q1,{message:a}),(0,A.jsx)("div",{ref:g,className:w?void 0:"pointer-events-none invisible absolute inset-x-0 top-0","data-pi-desk-plugin":n.pluginName,"data-pi-desk-kind":"message-view","data-pi-desk-contribution":n.descriptor.contributionName})]})}let q3=(0,S.A)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]),q4=(0,S.A)("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),q5=(0,S.A)("file-pen-line",[["path",{d:"M14.364 13.634a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506l4.013-4.009a1 1 0 0 0-3.004-3.004z",key:"ukzhwg"}],["path",{d:"M14.487 7.858A1 1 0 0 1 14 7V2",key:"1klhew"}],["path",{d:"M20 19.645V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l2.516 2.516",key:"rxaxab"}],["path",{d:"M8 18h1",key:"13wk12"}]]),q6=(0,S.A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),q7=(0,S.A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var q8=c(97993);let q9={src:"/_next/static/media/console.fdac8a18.svg",height:16,width:16,blurWidth:0,blurHeight:0},ra={src:"/_next/static/media/docker.1e10aab8.svg",height:24,width:24,blurWidth:0,blurHeight:0},rb={src:"/_next/static/media/git.f893cb5f.svg",height:32,width:32,blurWidth:0,blurHeight:0},rc={src:"/_next/static/media/html.97f145d3.svg",height:32,width:32,blurWidth:0,blurHeight:0},rd={src:"/_next/static/media/image.69ad851c.svg",height:16,width:16,blurWidth:0,blurHeight:0},re={src:"/_next/static/media/javascript.9ef61c53.svg",height:16,width:16,blurWidth:0,blurHeight:0},rf={src:"/_next/static/media/json.eb8fe488.svg",height:960,width:960,blurWidth:0,blurHeight:0},rg={src:"/_next/static/media/markdown.ee1bbe18.svg",height:32,width:32,blurWidth:0,blurHeight:0},rh={src:"/_next/static/media/nodejs.2f5d7983.svg",height:32,width:32,blurWidth:0,blurHeight:0},ri={src:"/_next/static/media/typescript.cd97905b.svg",height:16,width:16,blurWidth:0,blurHeight:0},rj={src:"/_next/static/media/yaml.8927dd24.svg",height:24,width:24,blurWidth:0,blurHeight:0},rk=new Map(Object.entries({"agents.md":{src:"/_next/static/media/agent.84538518.svg",height:32,width:32,blurWidth:0,blurHeight:0},"skill.md":{src:"/_next/static/media/skill.a97e8eb6.svg",height:16,width:16,blurWidth:0,blurHeight:0},"package.json":rh,"package-lock.json":rh,"npm-shrinkwrap.json":rh,dockerfile:ra,".dockerignore":ra,".gitignore":rb,".gitattributes":rb,".gitmodules":rb})),rl=new Map(Object.entries({ts:ri,mts:ri,cts:ri,tsx:{src:"/_next/static/media/react_ts.3d16336c.svg",height:32,width:32,blurWidth:0,blurHeight:0},js:re,mjs:re,cjs:re,jsx:{src:"/_next/static/media/react.b5a87f7d.svg",height:32,width:32,blurWidth:0,blurHeight:0},json:rf,jsonc:rf,jsonl:rf,yaml:rj,yml:rj,md:rg,mdx:rg,png:rd,jpg:rd,jpeg:rd,gif:rd,webp:rd,avif:rd,bmp:rd,ico:rd,svg:{src:"/_next/static/media/svg.4aa98763.svg",height:32,width:32,blurWidth:0,blurHeight:0},sh:q9,bash:q9,zsh:q9,fish:q9,ps1:q9,bat:q9,cmd:q9,html:rc,htm:rc,css:{src:"/_next/static/media/css.0d88d948.svg",height:32,width:32,blurWidth:0,blurHeight:0},py:{src:"/_next/static/media/python.e376d0bc.svg",height:24,width:24,blurWidth:0,blurHeight:0}}));function rm({path:a,className:b}){let c=a.replaceAll("\\","/").split("/").at(-1)?.toLowerCase()??"",d=c.includes(".")?c.slice(c.lastIndexOf(".")+1):"",e=rk.get(c)??(c.startsWith("dockerfile.")?ra:void 0)??rl.get(d);return e?(0,A.jsx)(q8.default,{src:e,alt:"","aria-hidden":"true",width:16,height:16,className:b,unoptimized:!0}):(0,A.jsx)(j$.A,{className:b,"aria-hidden":"true"})}var rn=c(72482);let ro=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],rp=new Set([...ro,"pathRotation"]),rq=(a,b,c)=>c>b?b:c<a?a:c,rr={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},rs={...rr,transform:a=>rq(0,1,a)},rt={...rr,default:1},ru=a=>Math.round(1e5*a)/1e5,rv=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,rw=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,rx=(a,b)=>c=>!!("string"==typeof c&&rw.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),ry=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(rv);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},rz={...rr,transform:a=>Math.round(rq(0,255,a))},rA={test:rx("rgb","red"),parse:ry("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+rz.transform(a)+", "+rz.transform(b)+", "+rz.transform(c)+", "+ru(rs.transform(d))+")"},rB={test:rx("#"),parse:function(a){let b="",c="",d="",e="";return a.length>5?(b=a.substring(1,3),c=a.substring(3,5),d=a.substring(5,7),e=a.substring(7,9)):(b=a.substring(1,2),c=a.substring(2,3),d=a.substring(3,4),e=a.substring(4,5),b+=b,c+=c,d+=d,e+=e),{red:parseInt(b,16),green:parseInt(c,16),blue:parseInt(d,16),alpha:e?parseInt(e,16)/255:1}},transform:rA.transform},rC=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),rD=rC("deg"),rE=rC("%"),rF=rC("px"),rG=rC("vh"),rH=rC("vw"),rI={...rE,parse:a=>rE.parse(a)/100,transform:a=>rE.transform(100*a)},rJ={test:rx("hsl","hue"),parse:ry("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+rE.transform(ru(b))+", "+rE.transform(ru(c))+", "+ru(rs.transform(d))+")"},rK={test:a=>rA.test(a)||rB.test(a)||rJ.test(a),parse:a=>rA.test(a)?rA.parse(a):rJ.test(a)?rJ.parse(a):rB.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?rA.transform(a):rJ.transform(a),getAnimatableNone:a=>{let b=rK.parse(a);return b.alpha=0,rK.transform(b)}},rL=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,rM="number",rN="color",rO=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function rP(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(rO,a=>(rK.test(a)?(d.color.push(f),e.push(rN),c.push(rK.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(rM),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function rQ({split:a,types:b}){let c=a.length;return d=>{let e="";for(let f=0;f<c;f++)if(e+=a[f],void 0!==d[f]){let a=b[f];a===rM?e+=ru(d[f]):a===rN?e+=rK.transform(d[f]):e+=d[f]}return e}}let rR={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(rv)?.length||0)+(a.match(rL)?.length||0)>0},parse:function(a){return rP(a).values},createTransformer:function(a){return rQ(rP(a))},getAnimatableNone:function(a){let b=rP(a);return rQ(b)(b.values.map((a,c)=>((a,b)=>"number"==typeof a?b?.trim().endsWith("/")?a:0:"number"==typeof a?0:rK.test(a)?rK.getAnimatableNone(a):a)(a,b.split[c])))}},rS=new Set(["brightness","contrast","saturate","opacity"]);function rT(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(rv)||[];if(!d)return a;let e=c.replace(d,""),f=+!!rS.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let rU=/\b([a-z-]*)\(.*?\)/gu,rV={...rR,getAnimatableNone:a=>{let b=a.match(rU);return b?b.map(rT).join(" "):a}},rW={...rR,getAnimatableNone:a=>{let b=rR.parse(a);return rR.createTransformer(a)(b.map(a=>"number"==typeof a?0:"object"==typeof a?{...a,alpha:1}:a))}},rX={...rr,transform:Math.round},rY={borderWidth:rF,borderTopWidth:rF,borderRightWidth:rF,borderBottomWidth:rF,borderLeftWidth:rF,borderRadius:rF,borderTopLeftRadius:rF,borderTopRightRadius:rF,borderBottomRightRadius:rF,borderBottomLeftRadius:rF,width:rF,maxWidth:rF,height:rF,maxHeight:rF,top:rF,right:rF,bottom:rF,left:rF,inset:rF,insetBlock:rF,insetBlockStart:rF,insetBlockEnd:rF,insetInline:rF,insetInlineStart:rF,insetInlineEnd:rF,padding:rF,paddingTop:rF,paddingRight:rF,paddingBottom:rF,paddingLeft:rF,paddingBlock:rF,paddingBlockStart:rF,paddingBlockEnd:rF,paddingInline:rF,paddingInlineStart:rF,paddingInlineEnd:rF,margin:rF,marginTop:rF,marginRight:rF,marginBottom:rF,marginLeft:rF,marginBlock:rF,marginBlockStart:rF,marginBlockEnd:rF,marginInline:rF,marginInlineStart:rF,marginInlineEnd:rF,fontSize:rF,backgroundPositionX:rF,backgroundPositionY:rF,rotate:rD,pathRotation:rD,rotateX:rD,rotateY:rD,rotateZ:rD,scale:rt,scaleX:rt,scaleY:rt,scaleZ:rt,skew:rD,skewX:rD,skewY:rD,distance:rF,translateX:rF,translateY:rF,translateZ:rF,x:rF,y:rF,z:rF,perspective:rF,transformPerspective:rF,opacity:rs,originX:rI,originY:rI,originZ:rF,zIndex:rX,fillOpacity:rs,strokeOpacity:rs,numOctaves:rX},rZ={...rY,color:rK,backgroundColor:rK,outlineColor:rK,fill:rK,stroke:rK,borderColor:rK,borderTopColor:rK,borderRightColor:rK,borderBottomColor:rK,borderLeftColor:rK,filter:rV,WebkitFilter:rV,mask:rW,WebkitMask:rW},r$=a=>rZ[a],r_=()=>({translate:0,scale:1,origin:0,originPoint:0}),r0=()=>({x:r_(),y:r_()}),r1=()=>({min:0,max:0}),r2=()=>({x:r1(),y:r1()}),r3=a=>!!(a&&a.getVelocity),r4=new Set(["width","height","top","left","right","bottom",...ro]),r5=a=>b=>b.test(a),r6=[rr,rF,rE,rD,rH,rG,{test:a=>"auto"===a,parse:a=>a}],r7=a=>r6.find(r5(a)),r8=()=>{},r9=()=>{},sa=a=>b=>"string"==typeof b&&b.startsWith(a),sb=sa("--"),sc=sa("var(--"),sd=a=>!!sc(a)&&se.test(a.split("/*")[0].trim()),se=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function sf(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let sg=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,sh=a=>180*a/Math.PI,si=a=>sk(sh(Math.atan2(a[1],a[0]))),sj={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:si,rotateZ:si,skewX:a=>sh(Math.atan(a[1])),skewY:a=>sh(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},sk=a=>((a%=360)<0&&(a+=360),a),sl=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),sm=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),sn={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:sl,scaleY:sm,scale:a=>(sl(a)+sm(a))/2,rotateX:a=>sk(sh(Math.atan2(a[6],a[5]))),rotateY:a=>sk(sh(Math.atan2(-a[2],a[0]))),rotateZ:si,rotate:si,skewX:a=>sh(Math.atan(a[4])),skewY:a=>sh(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function so(a){return+!!a.includes("scale")}function sp(a,b){let c,d;if(!a||"none"===a)return so(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=sn,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=sj,d=b}if(!d)return so(b);let f=c[b],g=d[1].split(",").map(sq);return"function"==typeof f?f(g):g[f]}function sq(a){return parseFloat(a.trim())}let sr=a=>a===rr||a===rF,ss=new Set(["x","y","z"]),st=ro.filter(a=>!ss.has(a)),su={width:({x:a},{paddingLeft:b="0",paddingRight:c="0",boxSizing:d})=>{let e=a.max-a.min;return"border-box"===d?e:e-parseFloat(b)-parseFloat(c)},height:({y:a},{paddingTop:b="0",paddingBottom:c="0",boxSizing:d})=>{let e=a.max-a.min;return"border-box"===d?e:e-parseFloat(b)-parseFloat(c)},top:(a,{top:b})=>parseFloat(b),left:(a,{left:b})=>parseFloat(b),bottom:({y:a},{top:b})=>parseFloat(b)+(a.max-a.min),right:({x:a},{left:b})=>parseFloat(b)+(a.max-a.min),x:(a,{transform:b})=>sp(b,"x"),y:(a,{transform:b})=>sp(b,"y")};su.translateX=su.x,su.translateY=su.y;let sv=a=>a,sw={},sx=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function sy(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=sx.reduce((a,b)=>(a[b]=function(a){let b=new Set,c=new Set,d=!1,e=!1,f=new WeakSet,g={delta:0,timestamp:0,isProcessing:!1};function h(b){f.has(b)&&(i.schedule(b),a()),b(g)}let i={schedule:(a,e=!1,g=!1)=>{let h=g&&d?b:c;return e&&f.add(a),h.add(a),a},cancel:a=>{c.delete(a),f.delete(a)},process:a=>{if(g=a,d){e=!0;return}d=!0;let f=b;b=c,c=f,b.forEach(h),b.clear(),d=!1,e&&(e=!1,i.process(a))}};return i}(f),a),{}),{setup:h,read:i,resolveKeyframes:j,preUpdate:k,update:l,preRender:m,render:n,postRender:o}=g,p=()=>{let f=sw.useManualTiming,g=f?e.timestamp:performance.now();c=!1,f||(e.delta=d?1e3/60:Math.max(Math.min(g-e.timestamp,40),1)),e.timestamp=g,e.isProcessing=!0,h.process(e),i.process(e),j.process(e),k.process(e),l.process(e),m.process(e),n.process(e),o.process(e),e.isProcessing=!1,c&&b&&(d=!1,a(p))};return{schedule:sx.reduce((b,f)=>{let h=g[f];return b[f]=(b,f=!1,g=!1)=>(!c&&(c=!0,d=!0,e.isProcessing||a(p)),h.schedule(b,f,g)),b},{}),cancel:a=>{for(let b=0;b<sx.length;b++)g[sx[b]].cancel(a)},state:e,steps:g}}let{schedule:sz,cancel:sA,state:sB,steps:sC}=sy("u">typeof requestAnimationFrame?requestAnimationFrame:sv,!0),sD=new Set,sE=!1,sF=!1,sG=!1;function sH(){if(sF){let a=Array.from(sD).filter(a=>a.needsMeasurement),b=new Set(a.map(a=>a.element)),c=new Map;b.forEach(a=>{let b,d=(b=[],st.forEach(c=>{let d=a.getValue(c);void 0!==d&&(b.push([c,d.get()]),d.set(+!!c.startsWith("scale")))}),b);d.length&&(c.set(a,d),a.render())}),a.forEach(a=>a.measureInitialState()),b.forEach(a=>{a.render();let b=c.get(a);b&&b.forEach(([b,c])=>{a.getValue(b)?.set(c)})}),a.forEach(a=>a.measureEndState()),a.forEach(a=>{void 0!==a.suspendedScrollY&&window.scrollTo(0,a.suspendedScrollY)})}sF=!1,sE=!1,sD.forEach(a=>a.complete(sG)),sD.clear()}function sI(){sD.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(sF=!0)})}class sJ{constructor(a,b,c,d,e,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=b,this.name=c,this.motionValue=d,this.element=e,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(sD.add(this),sE||(sE=!0,sz.read(sI),sz.resolveKeyframes(sH))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:a,name:b,element:c,motionValue:d}=this;if(null===a[0]){let e=d?.get(),f=a[a.length-1];if(void 0!==e)a[0]=e;else if(c&&b){let d=c.readValue(b,f);null!=d&&(a[0]=d)}void 0===a[0]&&(a[0]=f),d&&void 0===e&&d.set(a[0])}for(let b=1;b<a.length;b++)a[b]??(a[b]=a[b-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),sD.delete(this)}cancel(){"scheduled"===this.state&&(sD.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}let sK=new Set([rV,rW]);function sL(a,b){let c=r$(a);return sK.has(c)||(c=rR),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let sM=new Set(["auto","none","0"]);class sN extends sJ{constructor(a,b,c,d,e){super(a,b,c,d,e,!0)}readKeyframes(){let{unresolvedKeyframes:a,element:b,name:c}=this;if(!b||!b.current)return;super.readKeyframes();for(let c=0;c<a.length;c++){let d=a[c];if("string"==typeof d&&sd(d=d.trim())){let e=function a(b,c,d=1){r9(`Max CSS variable fallback depth detected in property "${b}". This may indicate a circular fallback dependency.`);let[e,f]=function(a){let b=sg.exec(a);if(!b)return[,];let[,c,d,e]=b;return[`--${c??d}`,e]}(b);if(!e)return;let g=window.getComputedStyle(c).getPropertyValue(e);if(g){let a=g.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a)?parseFloat(a):a}return sd(f)?a(f,c,d+1):f}(d,b.current);void 0!==e&&(a[c]=e),c===a.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!r4.has(c)||2!==a.length)return;let[d,e]=a,f=r7(d),g=r7(e);if(sf(d)!==sf(e)&&su[c]){this.needsMeasurement=!0;return}if(f!==g)if(sr(f)&&sr(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else su[c]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:a,name:b}=this,c=[];for(let b=0;b<a.length;b++)(null===a[b]||function(a){if("number"==typeof a)return 0===a;if(null===a)return!0;return"none"===a||"0"===a||/^0[^.\s]+$/u.test(a)}(a[b]))&&c.push(b);c.length&&function(a,b,c){let d,e=0;for(;e<a.length&&!d;){let b=a[e];"string"==typeof b&&!sM.has(b)&&rP(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=sL(c,d)}(a,c,b)}measureInitialState(){let{element:a,unresolvedKeyframes:b,name:c}=this;if(!a||!a.current)return;"height"===c&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=su[c](a.measureViewportBox(),window.getComputedStyle(a.current)),b[0]=this.measuredOrigin;let d=b[b.length-1];void 0!==d&&a.getValue(c,d).jump(d,!1)}measureEndState(){let{element:a,name:b,unresolvedKeyframes:c}=this;if(!a||!a.current)return;let d=a.getValue(b);d&&d.jump(this.measuredOrigin,!1);let e=c.length-1,f=c[e];c[e]=su[b](a.measureViewportBox(),window.getComputedStyle(a.current)),null!==f&&void 0===this.finalKeyframe&&(this.finalKeyframe=f),this.removedTransforms?.length&&this.removedTransforms.forEach(([b,c])=>{a.getValue(b).set(c)}),this.resolveNoneKeyframes()}}let sO=a=>1e3*a;function sP(a,b){-1===a.indexOf(b)&&a.push(b)}function sQ(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class sR{constructor(){this.subscriptions=[]}add(a){return sP(this.subscriptions,a),()=>sQ(this.subscriptions,a)}notify(a,b,c){let d=this.subscriptions.length;if(d)if(1===d)this.subscriptions[0](a,b,c);else for(let e=0;e<d;e++){let d=this.subscriptions[e];d&&d(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function sS(a,b,c){b.startsWith("--")?a.style.setProperty(b,c):a.style[b]=c}function sT(a){let b;return()=>(void 0===b&&(b=a()),b)}let sU={};function sV(a,b){let c=sT(a);return()=>sU[b]??c()}let sW=sV(()=>void 0!==window.ScrollTimeline,"scrollTimeline"),sX=a=>null!==a;function sY(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(sX),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}class sZ{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,b){return this.finished.then(a,b)}}let s$=a=>Array.isArray(a)&&"number"==typeof a[0],s_=sV(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0},"linearEasing"),s0=(a,b,c=10)=>{let d="",e=Math.max(Math.round(b/c),2);for(let b=0;b<e;b++)d+=Math.round(1e4*a(b/(e-1)))/1e4+", ";return`linear(${d.substring(0,d.length-2)})`},s1=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,s2={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:s1([0,.65,.55,1]),circOut:s1([.55,0,1,.45]),backIn:s1([.31,.01,.66,-.59]),backOut:s1([.33,1.53,.69,.99])};function s3(a){return"function"==typeof a&&"applyToOptions"in a}class s4 extends sZ{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;const{element:b,name:c,keyframes:d,pseudoElement:e,allowFlatten:f=!1,finalKeyframe:g,onComplete:h}=a;this.isPseudoElement=!!e,this.allowFlatten=f,this.options=a,r9(a.type);const i=function({type:a,...b}){return s3(a)&&s_()?a.applyToOptions(b):(b.duration??(b.duration=300),b.ease??(b.ease="easeOut"),b)}(a);this.animation=function(a,b,c,{delay:d=0,duration:e=300,repeat:f=0,repeatType:g="loop",ease:h="easeOut",times:i}={},j){let k={[b]:c};i&&(k.offset=i);let l=function a(b,c){if(b)return"function"==typeof b?s_()?s0(b,c):"ease-out":s$(b)?s1(b):Array.isArray(b)?b.map(b=>a(b,c)||s2.easeOut):s2[b]}(h,e);Array.isArray(l)&&(k.easing=l);let m={delay:d,duration:e,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:f+1,direction:"reverse"===g?"alternate":"normal"};return j&&(m.pseudoElement=j),a.animate(k,m)}(b,c,d,i,e),!1===i.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!e){let a=sY(d,this.options,g,this.speed);this.updateMotionValue&&this.updateMotionValue(a),sS(b,c,a),this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(a){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:a}=this;"idle"!==a&&"finished"!==a&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let a=this.options?.element;!this.isPseudoElement&&a?.isConnected&&this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(a){let b=null!==this.finishedTime;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=sO(a),b&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,rangeStart:b,rangeEnd:c,observe:d}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&sW())?(this.animation.timeline=a,b&&(this.animation.rangeStart=b),c&&(this.animation.rangeEnd=c),sv):d(this)}}let s5=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),{schedule:s6}=sy(queueMicrotask,!1);function s7(){d=void 0}let s8={now:()=>(void 0===d&&s8.set(sB.isProcessing||sw.useManualTiming?sB.timestamp:performance.now()),d),set:a=>{d=a,queueMicrotask(s7)}},s9=(a,b)=>b?1e3/b*a:0,ta;class tb{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=s8.now();if(this.updatedAt!==b&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=b.owner}setCurrent(a){this.current=a,this.updatedAt=s8.now(),null===this.canTrackVelocity&&void 0!==a&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,b){this.events[a]||(this.events[a]=new sR);let c=this.events[a].add(b);return"change"===a?()=>{c(),sz.read(()=>{this.events.change.getSize()||this.stop()})}:c}clearListeners(){for(let a in this.events)this.events[a].clear()}attach(a,b){this.passiveEffect=a,this.stopPassiveEffect=b}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,b,c){this.set(b),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-c}jump(a,b=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,b&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return ta&&ta.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let a=s8.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||a-this.updatedAt>30)return 0;let b=Math.min(this.updatedAt-this.prevUpdatedAt,30);return s9(parseFloat(this.current)-parseFloat(this.prevFrameValue),b)}start(a){return this.stop(),new Promise(b=>{this.hasAnimated=!0,this.animation=a(b),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function tc(a,b){return new tb(a,b)}let td=[...r6,rK,rR],te=new WeakMap;function tf(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function tg(a){return"string"==typeof a||Array.isArray(a)}let th=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],ti=["initial",...th];function tj(a){return tf(a.animate)||ti.some(b=>tg(a[b]))}function tk(a){return!!(tj(a)||a.variants)}let tl={current:null},tm={current:!1},tn="u">typeof window;function to(){if(tm.current=!0,tn)if(window.matchMedia){let a=window.matchMedia("(prefers-reduced-motion)"),b=()=>tl.current=a.matches;a.addEventListener("change",b),b()}else tl.current=!1}function tp(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function tq(a,b,c,d){if("function"==typeof b){let[e,f]=tp(d);b=b(void 0!==c?c:a.custom,e,f)}if("string"==typeof b&&(b=a.variants&&a.variants[b]),"function"==typeof b){let[e,f]=tp(d);b=b(void 0!==c?c:a.custom,e,f)}return b}let tr=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],ts={};class tt{scrapeMotionValuesFromProps(a,b,c){return{}}constructor({parent:a,props:b,presenceContext:c,reducedMotionConfig:d,skipAnimations:e,blockInitialAnimation:f,visualState:g},h={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=sJ,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let a=s8.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,sz.render(this.render,!1,!0))};const{latestValues:i,renderState:j}=g;this.latestValues=i,this.baseTarget={...i},this.initialValues=b.initial?{...i}:{},this.renderState=j,this.parent=a,this.props=b,this.presenceContext=c,this.depth=a?a.depth+1:0,this.reducedMotionConfig=d,this.skipAnimationsConfig=e,this.options=h,this.blockInitialAnimation=!!f,this.isControllingVariants=tj(b),this.isVariantNode=tk(b),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);const{willChange:k,...l}=this.scrapeMotionValuesFromProps(b,{},this);for(const a in l){const b=l[a];void 0!==i[a]&&r3(b)&&b.set(i[a])}}mount(a){if(this.hasBeenMounted)for(let a in this.initialValues)this.values.get(a)?.jump(this.initialValues[a]),this.latestValues[a]=this.initialValues[a];this.current=a,te.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,b)=>this.bindToMotionValue(b,a)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(tm.current||to(),this.shouldReduceMotion=tl.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){for(let a in this.projection&&this.projection.unmount(),sA(this.notifyUpdate),sA(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[a].clear();for(let a in this.features){let b=this.features[a];b&&(b.unmount(),b.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,b){let c;if(this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)(),b.accelerate&&s5.has(a)&&this.current instanceof HTMLElement){let{factory:c,keyframes:d,times:e,ease:f,duration:g}=b.accelerate,h=new s4({element:this.current,name:a,keyframes:d,times:e,ease:f,duration:sO(g)}),i=c(h);this.valueSubscriptions.set(a,()=>{i(),h.cancel()});return}let d=rp.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&sz.preRender(this.notifyUpdate),d&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});"u">typeof window&&window.MotionCheckAppearSync&&(c=window.MotionCheckAppearSync(this,a,b)),this.valueSubscriptions.set(a,()=>{e(),c&&c()})}sortNodePosition(a){return this.current&&this.sortInstanceNodePosition&&this.type===a.type?this.sortInstanceNodePosition(this.current,a.current):0}updateFeatures(){let a="animation";for(a in ts){let b=ts[a];if(!b)continue;let{isEnabled:c,Feature:d}=b;if(!this.features[a]&&d&&c(this.props)&&(this.features[a]=new d(this)),this.features[a]){let b=this.features[a];b.isMounted?b.update():(b.mount(),b.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):r2()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,b){this.latestValues[a]=b}update(a,b){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=b;for(let b=0;b<tr.length;b++){let c=tr[b];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);let d=a["on"+c];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=function(a,b,c){for(let d in b){let e=b[d],f=c[d];if(r3(e))a.addValue(d,e);else if(r3(f))a.addValue(d,tc(e,{owner:a}));else if(f!==e)if(a.hasValue(d)){let b=a.getValue(d);!0===b.liveStyle?b.jump(e):b.hasAnimated||b.set(e)}else{let b=a.getStaticValue(d);a.addValue(d,tc(void 0!==b?b:e,{owner:a}))}}for(let d in c)void 0===b[d]&&a.removeValue(d);return b}(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){let b=this.getClosestVariantNode();if(b)return b.variantChildren&&b.variantChildren.add(a),()=>b.variantChildren.delete(a)}addValue(a,b){let c=this.values.get(a);b!==c&&(c&&this.removeValue(a),this.bindToMotionValue(a,b),this.values.set(a,b),this.latestValues[a]=b.get())}removeValue(a){this.values.delete(a);let b=this.valueSubscriptions.get(a);b&&(b(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,b){if(this.props.values&&this.props.values[a])return this.props.values[a];let c=this.values.get(a);return void 0===c&&void 0!==b&&(c=tc(null===b?void 0:b,{owner:this}),this.addValue(a,c)),c}readValue(a,b){let c=void 0===this.latestValues[a]&&this.current?this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options):this.latestValues[a];if(null!=c){let d,e;if("string"==typeof c&&(d=c,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(d)||(e=c,/^0[^.\s]+$/u.test(e))))c=parseFloat(c);else{let d;d=c,!td.find(r5(d))&&rR.test(b)&&(c=sL(a,b))}this.setBaseTarget(a,r3(c)?c.get():c)}return r3(c)?c.get():c}setBaseTarget(a,b){this.baseTarget[a]=b}getBaseTarget(a){let b,{initial:c}=this.props;if("string"==typeof c||"object"==typeof c){let d=tq(this.props,c,this.presenceContext?.custom);d&&(b=d[a])}if(c&&void 0!==b)return b;let d=this.getBaseTargetFromProps(this.props,a);return void 0===d||r3(d)?void 0!==this.initialValues[a]&&void 0===b?void 0:this.baseTarget[a]:d}on(a,b){return this.events[a]||(this.events[a]=new sR),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){s6.render(this.render)}}class tu extends tt{constructor(){super(...arguments),this.KeyframeResolver=sN}sortInstanceNodePosition(a,b){return 2&a.compareDocumentPosition(b)?1:-1}getBaseTargetFromProps(a,b){let c=a.style;return c?c[b]:void 0}removeValueFromRenderState(a,{vars:b,style:c}){delete b[a],delete c[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:a}=this.props;r3(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function tv(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let tw=(a,b)=>b&&"number"==typeof a?b.transform(a):a,tx={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},ty=ro.length;function tz(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,g=!1,h=!1;for(let a in b){let c=b[a];if(rp.has(a)){g=!0;continue}if(sb(a)){e[a]=c;continue}{let b=tw(c,rY[a]);a.startsWith("origin")?(h=!0,f[a]=b):d[a]=b}}if(!b.transform&&(g||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<ty;f++){let g=ro[f],h=a[g];if(void 0===h)continue;let i=!0;if("number"==typeof h)i=h===+!!g.startsWith("scale");else{let a=parseFloat(h);i=g.startsWith("scale")?1===a:0===a}if(!i||c){let a=tw(h,rY[g]);if(!i){e=!1;let b=tx[g]||g;d+=`${b}(${a}) `}c&&(b[g]=a)}}let f=a.pathRotation;return f&&(e=!1,d+=`rotate(${tw(f,rY.pathRotation)}) `),d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),h){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let tA={offset:"stroke-dashoffset",array:"stroke-dasharray"},tB={offset:"strokeDashoffset",array:"strokeDasharray"},tC=["transform","opacity","offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function tD(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(tz(a,h,j),i){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};let{attrs:l,style:m}=a;for(let a of tC)void 0!==l[a]&&(m[a]=l[a],delete l[a]);(m.transform||l.transformOrigin)&&(m.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),m.transform&&(m.transformBox=k?.transformBox??"fill-box",delete l.transformBox),void 0!==b&&(l.x=b),void 0!==c&&(l.y=c),void 0!==d&&(l.scale=d),void 0!==e&&function(a,b,c=1,d=0,e=!0){a.pathLength=1;let f=e?tA:tB;a[f.offset]=`${-d}`,a[f.array]=`${b} ${c}`}(l,e,f,g,!1)}let tE=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),tF=a=>"string"==typeof a&&"svg"===a.toLowerCase();function tG(a,{style:b,vars:c},d,e){let f,g=a.style;for(f in b)g[f]=b[f];for(f in e?.applyProjectionStyles(g,d),c)g.setProperty(f,c[f])}let tH=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function tI(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let tJ={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!rF.test(a))return a;else a=parseFloat(a);let c=tI(a,b.target.x),d=tI(a,b.target.y);return`${c}% ${d}%`}},tK=(a,b,c)=>a+(b-a)*c,tL={borderRadius:{...tJ,applyTo:[...tH]},borderTopLeftRadius:tJ,borderTopRightRadius:tJ,borderBottomLeftRadius:tJ,borderBottomRightRadius:tJ,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=rR.parse(a);if(d.length>5)return a;let e=rR.createTransformer(a),f=+("number"!=typeof d[0]),g=c.x.scale*b.x,h=c.y.scale*b.y;d[0+f]/=g,d[1+f]/=h;let i=tK(g,h,.5);return"number"==typeof d[2+f]&&(d[2+f]/=i),"number"==typeof d[3+f]&&(d[3+f]/=i),e(d)}}};function tM(a,{layout:b,layoutId:c}){return rp.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!tL[a]||"opacity"===a)}function tN(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(r3(d[b])||e&&r3(e[b])||tM(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function tO(a,b,c){let d=tN(a,b,c);for(let c in a)(r3(a[c])||r3(b[c]))&&(d[-1!==ro.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class tP extends tu{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=r2}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(rp.has(b)){let a=r$(b);return a&&a.default||0}if(tC.includes(b)){let c=getComputedStyle(a)[b];if("string"==typeof c&&c)return c.trim()}return b=tE.has(b)?b:tv(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return tO(a,b,c)}build(a,b,c){tD(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in tG(a,b,void 0,d),b.attrs)a.setAttribute(tE.has(c)?c:tv(c),b.attrs[c])}mount(a){this.isSVGTag=tF(a.tagName),super.mount(a)}}function tQ({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function tR(a){return void 0===a||1===a}function tS({scale:a,scaleX:b,scaleY:c}){return!tR(a)||!tR(b)||!tR(c)}function tT(a){return tS(a)||tU(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function tU(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function tV(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function tW(a,b=0,c=1,d,e){a.min=tV(a.min,b,c,d,e),a.max=tV(a.max,b,c,d,e)}function tX(a,{x:b,y:c}){tW(a.x,b.translate,b.scale,b.originPoint),tW(a.y,c.translate,c.scale,c.originPoint)}function tY(a,b){a.min+=b,a.max+=b}function tZ(a,b,c,d,e=.5){let f=tK(a.min,a.max,e);tW(a,b,c,f,d)}function t$(a,b){return"string"==typeof a?parseFloat(a)/100*(b.max-b.min):a}function t_(a,b,c){let d=c??a;tZ(a.x,t$(b.x,d.x),b.scaleX,b.scale,b.originX),tZ(a.y,t$(b.y,d.y),b.scaleY,b.scale,b.originY)}function t0(a,b){return tQ(function(a,b){if(!b)return a;let c=b({x:a.left,y:a.top}),d=b({x:a.right,y:a.bottom});return{top:c.y,left:c.x,bottom:d.y,right:d.x}}(a.getBoundingClientRect(),b))}class t1 extends tu{constructor(){super(...arguments),this.type="html",this.renderInstance=tG}mount(a){r9(a.style),super.mount(a)}readValueFromInstance(a,b){if(rp.has(b))return this.projection?.isProjecting?so(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return sp(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(sb(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return t0(a,b)}build(a,b,c){tz(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return tN(a,b,c)}}let t2=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function t3(a){if("string"!=typeof a||a.includes("-"));else if(t2.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}let t4=(0,B.createContext)({}),t5=(0,B.createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"}),t6=(0,B.createContext)({});function t7(a){return Array.isArray(a)?a.join(" "):a}let t8=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function t9(a,b,c){for(let d in b)r3(b[d])||tM(d,c)||(a[d]=b[d])}let ua=()=>({...t8(),attrs:{}}),ub=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function uc(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||ub.has(a)}function ud(a){return r3(a)?a.get():a}let ue=(0,B.createContext)(null);function uf(a){let b=(0,B.useRef)(null);return null===b.current&&(b.current=a()),b.current}let ug=a=>(b,c)=>{let d=(0,B.useContext)(t6),e=(0,B.useContext)(ue),f=()=>(function({scrapeMotionValuesFromProps:a,createRenderState:b},c,d,e){return{latestValues:function(a,b,c,d){let e={},f=d(a,{});for(let a in f)e[a]=ud(f[a]);let{initial:g,animate:h}=a,i=tj(a),j=tk(a);b&&j&&!i&&!1!==a.inherit&&(void 0===g&&(g=b.initial),void 0===h&&(h=b.animate));let k=!!c&&!1===c.initial,l=(k=k||!1===g)?h:g;if(l&&"boolean"!=typeof l&&!tf(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=tq(a,b[c]);if(d){let{transitionEnd:a,transition:b,...c}=d;for(let a in c){let b=c[a];if(Array.isArray(b)){let a=k?b.length-1:0;b=b[a]}null!==b&&(e[a]=b)}for(let b in a)e[b]=a[b]}}}return e}(c,d,e,a),renderState:b()}})(a,b,d,e);return c?f():uf(f)},uh=ug({scrapeMotionValuesFromProps:tN,createRenderState:t8}),ui=ug({scrapeMotionValuesFromProps:tO,createRenderState:ua}),uj={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},uk=!1,ul=Symbol.for("motionComponentSymbol");function um(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(uk)return;let a={};for(let b in uj)a[b]={isEnabled:a=>uj[b].some(b=>!!a[b])};ts=a,uk=!0}(),ts);for(let c in a)b[c]={...b[c],...a[c]};ts=b}(d);let f=c?"svg"===c:t3(a),g=f?ui:uh;function h(c,d){var e;let h,i,j,k={...(0,B.useContext)(t5),...c,layoutId:function({layoutId:a}){let b=(0,B.useContext)(t4).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:l,isValidProp:m}=k,n=function(a){let{initial:b,animate:c}=function(a,b){if(tj(a)){let{initial:b,animate:c}=a;return{initial:!1===b||tg(b)?b:void 0,animate:tg(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,B.useContext)(t6));return(0,B.useMemo)(()=>({initial:b,animate:c}),[t7(b),t7(c)])}(c),o=g(c,l);return(0,A.jsxs)(t6.Provider,{value:n,children:[h&&n.visualElement?(0,A.jsx)(h,{visualElement:n.visualElement,...k}):null,function(a,b,c,{latestValues:d},e,f=!1,g,h){let i=(g??t3(a)?function(a,b,c,d){let e=(0,B.useMemo)(()=>{let c=ua();return tD(c,b,tF(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};t9(b,a.style,a),e.style={...b,...e.style}}return e}:function(a,b){let c,d,e={},f=(c=a.style||{},t9(d={},c,a),Object.assign(d,function({transformTemplate:a},b){return(0,B.useMemo)(()=>{let c=t8();return tz(c,b,a),Object.assign({},c.vars,c.style)},[b])}(a,b)),d);return a.drag&&!1!==a.dragListener&&(e.draggable=!1,f.userSelect=f.WebkitUserSelect=f.WebkitTouchCallout="none",f.touchAction=!0===a.drag?"none":`pan-${"x"===a.drag?"y":"x"}`),void 0===a.tabIndex&&(a.onTap||a.onTapStart||a.whileTap)&&(e.tabIndex=0),e.style=f,e})(b,d,e,a),j=function(a,b,c,d){let e={};for(let f in a)("values"!==f||"object"!=typeof a.values)&&!r3(a[f])&&((f.startsWith("on")?!uc(f):d?.(f)??!uc(f))||!0===c&&uc(f)||!b&&!uc(f)||a.draggable&&f.startsWith("onDrag"))&&(e[f]=a[f]);return e}(b,"string"==typeof a,f,h),k=a!==B.Fragment?{...j,...i,ref:c}:{},{children:l}=b,m=(0,B.useMemo)(()=>r3(l)?l.get():l,[l]);return(0,B.createElement)(a,{...k,children:m})}(a,c,(e=n.visualElement,i=(0,B.useRef)(d),(0,B.useInsertionEffect)(()=>{i.current=d}),j=(0,B.useRef)(null),(0,B.useCallback)(a=>{a&&o.onMount?.(a),e&&(a?e.mount(a):e.unmount());let b=i.current;if("function"==typeof b)if(a){let c=b(a);"function"==typeof c&&(j.current=c)}else j.current?(j.current(),j.current=null):b(a);else b&&(b.current=a)},[e])),o,l,b,f,m)]})}h.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let i=(0,B.forwardRef)(h);return i[ul]=a,i}class un{constructor(a){this.isMounted=!1,this.node=a}update(){}}function uo(a,b,c){let d=a.getProps();return tq(d,b,void 0!==c?c:d.custom,a)}function up(a,b){if(a?.inherit&&b){let{inherit:c,...d}=a;return{...b,...d}}return a}function uq(a,b){let c=a?.[b]??a?.default??a;return c!==a?up(c,a):c}let ur=a=>Array.isArray(a);function us(a,b){let c=a.getValue("willChange");if(r3(c)&&c.add)return c.add(b);if(!c&&sw.WillChange){let c=new sw.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let ut="data-"+tv("framerAppearId"),uu=(...a)=>a.reduce((a,b)=>c=>b(a(c)));function uv(a,b,c){return(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}function uw(a,b){return c=>c>0?b:a}let ux=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},uy=[rB,rA,rJ];function uz(a){let b=uy.find(b=>b.test(a));if(r8(`'${a}' is not an animatable color. Use the equivalent color code instead.`),!b)return!1;let c=b.parse(a);return b===rJ&&(c=function({hue:a,saturation:b,lightness:c,alpha:d}){a/=360,c/=100;let e=0,f=0,g=0;if(b/=100){let d=c<.5?c*(1+b):c+b-c*b,h=2*c-d;e=uv(h,d,a+1/3),f=uv(h,d,a),g=uv(h,d,a-1/3)}else e=f=g=c;return{red:Math.round(255*e),green:Math.round(255*f),blue:Math.round(255*g),alpha:d}}(c)),c}let uA=(a,b)=>{let c=uz(a),d=uz(b);if(!c||!d)return uw(a,b);let e={...c};return a=>(e.red=ux(c.red,d.red,a),e.green=ux(c.green,d.green,a),e.blue=ux(c.blue,d.blue,a),e.alpha=tK(c.alpha,d.alpha,a),rA.transform(e))},uB=new Set(["none","hidden"]);function uC(a,b){return c=>tK(a,b,c)}function uD(a){return"number"==typeof a?uC:"string"==typeof a?sd(a)?uw:rK.test(a)?uA:uG:Array.isArray(a)?uE:"object"==typeof a?rK.test(a)?uA:uF:uw}function uE(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>uD(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function uF(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=uD(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let uG=(a,b)=>{let c=rR.createTransformer(b),d=rP(a),e=rP(b);if(!(d.indexes.var.length===e.indexes.var.length&&d.indexes.color.length===e.indexes.color.length&&d.indexes.number.length>=e.indexes.number.length))return r8(`Complex values '${a}' and '${b}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),uw(a,b);if(uB.has(a)&&!e.values.length||uB.has(b)&&!d.values.length)return uB.has(a)?c=>c<=0?a:b:c=>c>=1?b:a;return uu(uE(function(a,b){let c=[],d={color:0,var:0,number:0};for(let e=0;e<b.values.length;e++){let f=b.types[e],g=a.indexes[f][d[f]],h=a.values[g]??0;c[e]=h,d[f]++}return c}(d,e),e.values),c)};function uH(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?tK(a,b,c):uD(a)(a,b)}let uI=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>sz.update(b,a),stop:()=>sA(b),now:()=>sB.isProcessing?sB.timestamp:s8.now()}};function uJ(a){let b=0,c=a.next(b);for(;!c.done&&b<2e4;)b+=50,c=a.next(b);return b>=2e4?1/0:b}let uK=.01,uL=2,uM=.005,uN=.5;function uO(a,b){return a*Math.sqrt(1-b*b)}let uP=["duration","bounce"],uQ=["stiffness","damping","mass"];function uR(a,b){return b.some(b=>void 0!==a[b])}function uS(a=.3,b=.3){let c,d,e,f,g,h,i="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:j,restDelta:k}=i,l=i.keyframes[0],m=i.keyframes[i.keyframes.length-1],n={done:!1,value:l},{stiffness:o,damping:p,mass:q,duration:r,velocity:s,isResolvedFromDuration:t}=function(a){let b={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...a};if(!uR(a,uQ)&&uR(a,uP))if(b.velocity=0,a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*rq(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:1,stiffness:d,damping:e}}else{let c=function({duration:a=800,bounce:b=.3,velocity:c=0,mass:d=1}){let e,f;r8(sO(10));let g=1-b;g=rq(.05,1,g),a=rq(.01,10,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/uO(b,g)*Math.exp(-e)},f=b=>{let d=b*g*a,f=Math.pow(g,2)*Math.pow(b,2)*a,h=Math.exp(-d),i=uO(Math.pow(b,2),g);return(d*c+c-f)*h*(-e(b)+.001>0?-1:1)/i}):(e=b=>-.001+Math.exp(-b*a)*((b-c)*a+1),f=b=>a*a*(c-b)*Math.exp(-b*a));let h=function(a,b,c){let d=c;for(let c=1;c<12;c++)d-=a(d)/b(d);return d}(e,f,5/a);if(a=sO(a),isNaN(h))return{stiffness:100,damping:10,duration:a};{let b=Math.pow(h,2)*d;return{stiffness:b,damping:2*g*Math.sqrt(d*b),duration:a}}}({...a,velocity:0});(b={...b,...c,mass:1}).isResolvedFromDuration=!0}return b}({...i,velocity:-((i.velocity||0)/1e3)}),u=s||0,v=p/(2*Math.sqrt(o*q)),w=m-l,x=Math.sqrt(o/q)/1e3,y=5>Math.abs(w);if(j||(j=y?uK:uL),k||(k=y?uM:uN),v<1)e=uO(x,v),f=(u+v*x*w)/e,c=a=>m-Math.exp(-v*x*a)*(f*Math.sin(e*a)+w*Math.cos(e*a)),g=v*x*f+w*e,h=v*x*w-f*e,d=a=>Math.exp(-v*x*a)*(g*Math.sin(e*a)+h*Math.cos(e*a));else if(1===v){c=a=>m-Math.exp(-x*a)*(w+(u+x*w)*a);let a=u+x*w;d=b=>Math.exp(-x*b)*(x*a*b-u)}else{let a=x*Math.sqrt(v*v-1);c=b=>{let c=Math.exp(-v*x*b),d=Math.min(a*b,300);return m-c*((u+v*x*w)*Math.sinh(d)+a*w*Math.cosh(d))/a};let b=(u+v*x*w)/a,e=v*x*b-w*a,f=v*x*w-b*a;d=b=>{let c=Math.exp(-v*x*b),d=Math.min(a*b,300);return c*(e*Math.sinh(d)+f*Math.cosh(d))}}let z={calculatedDuration:t&&r||null,velocity:a=>sO(d(a)),next:a=>{if(!t&&v<1){let b=Math.exp(-v*x*a),c=Math.sin(e*a),d=Math.cos(e*a),i=m-b*(f*c+w*d);return n.done=Math.abs(sO(b*(g*c+h*d)))<=j&&Math.abs(m-i)<=k,n.value=n.done?m:i,n}let b=c(a);return t?n.done=a>=r:n.done=Math.abs(sO(d(a)))<=j&&Math.abs(m-b)<=k,n.value=n.done?m:b,n},toString:()=>{let a=Math.min(uJ(z),2e4),b=s0(b=>z.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return z}function uT(a,b,c){let d=Math.max(b-5,0);return s9(c-a(d),b-d)}function uU({keyframes:a,velocity:b=0,power:c=.8,timeConstant:d=325,bounceDamping:e=10,bounceStiffness:f=500,modifyTarget:g,min:h,max:i,restDelta:j=.5,restSpeed:k}){let l,m,n=a[0],o={done:!1,value:n},p=c*b,q=n+p,r=void 0===g?q:g(q);r!==q&&(p=r-n);let s=a=>-p*Math.exp(-a/d),t=a=>r+s(a),u=a=>{let b=s(a),c=t(a);o.done=Math.abs(b)<=j,o.value=o.done?r:c},v=a=>{let b;if(b=o.value,void 0!==h&&b<h||void 0!==i&&b>i){var c;l=a,m=uS({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:uT(t,a,o.value),damping:e,stiffness:f,restDelta:j,restSpeed:k})}};return v(0),{calculatedDuration:null,next:a=>{let b=!1;return(m||void 0!==l||(b=!0,u(a),v(a)),void 0!==l&&a>=l)?m.next(a-l):(b||u(a),o)}}}uS.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(uJ(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,uS);return a.ease=b.ease,a.duration=sO(b.duration),a.type="keyframes",a};let uV=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function uW(a,b,c,d){return a===b&&c===d?sv:e=>0===e||1===e?e:uV(function(a,b,c,d,e){let f,g,h=0;do(f=uV(g=b+(c-b)/2,d,e)-a)>0?c=g:b=g;while(Math.abs(f)>1e-7&&++h<12);return g}(e,0,1,a,c),b,d)}let uX=uW(.42,0,1,1),uY=uW(0,0,.58,1),uZ=uW(.42,0,.58,1),u$=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,u_=a=>b=>1-a(1-b),u0=uW(.33,1.53,.69,.99),u1=u_(u0),u2=u$(u1),u3=a=>a>=1?1:(a*=2)<1?.5*u1(a):.5*(2-Math.pow(2,-10*(a-1))),u4=a=>1-Math.sin(Math.acos(a)),u5=u_(u4),u6=u$(u4),u7={linear:sv,easeIn:uX,easeInOut:uZ,easeOut:uY,circIn:u4,circInOut:u6,circOut:u5,backIn:u1,backInOut:u2,backOut:u0,anticipate:u3},u8=a=>{if(s$(a)){r9(a.length);let[b,c,d,e]=a;return uW(b,c,d,e)}return"string"==typeof a?(r9(u7[a],`Invalid easing type '${a}'`),u7[a]):a},u9=(a,b,c)=>{let d=b-a;return d?(c-a)/d:1};function va({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f,g=Array.isArray(d)&&"number"!=typeof d[0]?d.map(u8):u8(d),h={done:!1,value:b[0]},i=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(r9(b.length),1===f)return()=>b[0];if(2===f&&b[0]===b[1])return()=>b[1];let g=a[0]===a[1];a[0]>a[f-1]&&(a=[...a].reverse(),b=[...b].reverse());let h=function(a,b,c){let d=[],e=c||sw.mix||uH,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=uu(Array.isArray(b)?b[c]||sv:b,f)),d.push(f)}return d}(b,d,e),i=h.length,j=c=>{if(g&&c<a[0])return b[0];let d=0;if(i>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=u9(a[d],a[d+1],c);return h[d](e)};return c?b=>j(rq(a[0],a[f-1],b)):j}((e=c&&c.length===b.length?c:(!function(a,b){let c=a[a.length-1];for(let d=1;d<=b;d++){let e=u9(0,b,d);a.push(tK(c,1,e))}}(f=[0],b.length-1),f),e.map(b=>b*a)),b,{ease:Array.isArray(g)?g:b.map(()=>g||uZ).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(h.value=i(b),h.done=b>=a,h)}}let vb={decay:uU,inertia:uU,tween:va,keyframes:va,spring:uS};function vc(a){"string"==typeof a.type&&(a.type=vb[a.type])}let vd=a=>a/100;class ve extends sZ{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==s8.now()&&this.tick(s8.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},this.options=a,this.initAnimation(),this.play(),!1===a.autoplay&&this.pause()}initAnimation(){let{options:a}=this;vc(a);let{type:b=va,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||va;h!==va&&"number"!=typeof g[0]&&(this.mixKeyframes=uu(vd,uH(g[0],g[1])),g=[0,100]);let i=h({...a,keyframes:g});"mirror"===e&&(this.mirroredGenerator=h({...a,keyframes:[...g].reverse(),velocity:-f})),null===i.calculatedDuration&&(i.calculatedDuration=uJ(i));let{calculatedDuration:j}=i;this.calculatedDuration=j,this.resolvedDuration=j+d,this.totalDuration=this.resolvedDuration*(c+1)-d,this.generator=i}updateTime(a){let b=Math.round(a-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=b}tick(a,b=!1){let c,{generator:d,totalDuration:e,mixKeyframes:f,mirroredGenerator:g,resolvedDuration:h,calculatedDuration:i}=this;if(null===this.startTime)return d.next(0);let{delay:j=0,keyframes:k,repeat:l,repeatType:m,repeatDelay:n,type:o,onUpdate:p,finalKeyframe:q}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-e/this.speed,this.startTime)),b?this.currentTime=a:this.updateTime(a);let r=this.currentTime-j*(this.playbackSpeed>=0?1:-1),s=this.playbackSpeed>=0?r<0:r>e;this.currentTime=Math.max(r,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=e);let t=this.currentTime,u=d;if(l){let a=Math.min(this.currentTime,e)/h,b=Math.floor(a),c=a%1;!c&&a>=1&&(c=1),1===c&&b--,(b=Math.min(b,l+1))%2&&("reverse"===m?(c=1-c,n&&(c-=n/h)):"mirror"===m&&(u=g)),t=rq(0,1,c)*h}s?(this.delayState.value=k[0],c=this.delayState):c=u.next(t),f&&!s&&(c.value=f(c.value));let{done:v}=c;s||null===i||(v=this.playbackSpeed>=0?this.currentTime>=e:this.currentTime<=0);let w=null===this.holdTime&&("finished"===this.state||"running"===this.state&&v);return w&&o!==uU&&(c.value=sY(k,this.options,q,this.speed)),p&&p(c.value),w&&this.finish(),c}then(a,b){return this.finished.then(a,b)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return this.currentTime/1e3}set time(a){a=sO(a),this.currentTime=a,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=a,this.tick(a))}getGeneratorVelocity(){let a=this.currentTime;if(a<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(a);let b=this.generator.next(a).value;return uT(a=>this.generator.next(a).value,a,b)}get speed(){return this.playbackSpeed}set speed(a){let b=this.playbackSpeed!==a;b&&this.driver&&this.updateTime(s8.now()),this.playbackSpeed=a,b&&this.driver&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=uI,startTime:b}=this.options;this.driver||(this.driver=a(a=>this.tick(a))),this.options.onPlay?.();let c=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=c):null!==this.holdTime?this.startTime=c-this.holdTime:this.startTime||(this.startTime=b??c),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(s8.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}let vf={anticipate:u3,backInOut:u2,circInOut:u6};class vg extends s4{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in vf&&(a.ease=vf[a.ease])}(a),vc(a),super(a),void 0!==a.startTime&&!1!==a.autoplay&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){let{motionValue:b,onUpdate:c,onComplete:d,element:e,...f}=this.options;if(!b)return;if(void 0!==a)return void b.set(a);let g=new ve({...f,autoplay:!1}),h=Math.max(10,s8.now()-this.startTime),i=rq(0,10,h-10),j=g.sample(h).value,{name:k}=this.options;e&&k&&sS(e,k,j),b.setWithVelocity(g.sample(Math.max(0,h-i)).value,j,i),g.stop()}}let vh=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(rR.test(a)||"0"===a)&&!a.startsWith("url("));function vi(a){a.duration=0,a.type="keyframes"}let vj=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/,vk=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),vl=sT(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class vm extends sZ{constructor({autoplay:a=!0,delay:b=0,type:c="keyframes",repeat:d=0,repeatDelay:e=0,repeatType:f="loop",keyframes:g,name:h,motionValue:i,element:j,...k}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=s8.now();const l={autoplay:a,delay:b,type:c,repeat:d,repeatDelay:e,repeatType:f,name:h,motionValue:i,element:j,...k},m=j?.KeyframeResolver||sJ;this.keyframeResolver=new m(g,(a,b,c)=>this.onKeyframesResolved(a,b,l,!c),h,i,j),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,b,c,d){let e;this.keyframeResolver=void 0;let{name:f,type:g,velocity:h,delay:i,isHandoff:j,onUpdate:k}=c;this.resolvedAt=s8.now();let l=!0;!function(a,b,c,d){let e=a[0];if(null===e)return!1;if("display"===b||"visibility"===b)return!0;let f=a[a.length-1],g=vh(e,b),h=vh(f,b);return r8(`You are trying to animate ${b} from "${e}" to "${f}". "${g?f:e}" is not an animatable value.`),!!g&&!!h&&(function(a){let b=a[0];if(1===a.length)return!0;for(let c=0;c<a.length;c++)if(a[c]!==b)return!0}(a)||("spring"===c||s3(c))&&d)}(a,f,g,h)&&(l=!1,(sw.instantAnimations||!i)&&k?.(sY(a,c,b)),a[0]=a[a.length-1],vi(c),c.repeat=0);let m={startTime:d?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:b,...c,keyframes:a},n=l&&!j&&function(a){let{motionValue:b,name:c,repeatDelay:d,repeatType:e,damping:f,type:g,keyframes:h}=a,i=b?.owner?.current;if(!(i instanceof HTMLElement)&&!(i instanceof SVGElement))return!1;let{onUpdate:j,transformTemplate:k}=b.owner.getProps();return vl()&&c&&(s5.has(c)||vk.has(c)&&function(a){for(let b=0;b<a.length;b++)if("string"==typeof a[b]&&vj.test(a[b]))return!0;return!1}(h))&&("transform"!==c||!k)&&!j&&!d&&"mirror"!==e&&0!==f&&"inertia"!==g}(m),o=m.motionValue?.owner?.current;if(n)try{e=new vg({...m,element:o})}catch{e=new ve(m)}else e=new ve(m);e.finished.then(()=>{this.notifyFinished()}).catch(sv),this.pendingTimeline&&(this.stopTimeline=e.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=e}get finished(){return this._animation?this.animation.finished:this._finished}then(a,b){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),sG=!0,sI(),sH(),sG=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let vn={type:"spring",stiffness:500,damping:25,restSpeed:10},vo={type:"keyframes",duration:.8},vp={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},vq=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]),vr=(a,b,c,d={},e,f)=>g=>{let h=uq(d,a)||{},i=h.delay||d.delay||0,{elapsed:j=0}=d;j-=sO(i);let k={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...h,delay:-j,onUpdate:a=>{b.set(a),h.onUpdate&&h.onUpdate(a)},onComplete:()=>{g(),h.onComplete&&h.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function(a){for(let b in a)if(!vq.has(b))return!0;return!1}(h)&&Object.assign(k,((a,{keyframes:b})=>b.length>2?vo:rp.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:vn:vp)(a,k)),k.duration&&(k.duration=sO(k.duration)),k.repeatDelay&&(k.repeatDelay=sO(k.repeatDelay)),void 0!==k.from&&(k.keyframes[0]=k.from);let l=!1;if(!1!==k.type&&(0!==k.duration||k.repeatDelay)||(vi(k),0===k.delay&&(l=!0)),(sw.instantAnimations||sw.skipAnimations||e?.shouldSkipAnimations||h.skipAnimations)&&(l=!0,vi(k),k.delay=0),k.allowFlatten=!h.type&&!h.ease,l&&!f&&void 0!==b.get()){let a=sY(k.keyframes,h);if(void 0!==a)return void sz.update(()=>{k.onUpdate(a),k.onComplete()})}return h.isSync?new ve(k):new vm(k)};function vs(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f,transitionEnd:g,...h}=b,i=a.getDefaultTransition();f=f?up(f,i):i;let j=f?.reduceMotion,k=f?.skipAnimations;d&&(f=d);let l=[],m=e&&a.animationState&&a.animationState.getState()[e],n=f?.path;for(let b in n&&n.animateVisualElement(a,h,f,c,l),h){let d=a.getValue(b,a.latestValues[b]??null),e=h[b];if(void 0===e||m&&function({protectedKeys:a,needsAnimating:b},c){let d=a.hasOwnProperty(c)&&!0!==b[c];return b[c]=!1,d}(m,b))continue;let g={delay:c,...uq(f||{},b)};k&&(g.skipAnimations=!0);let i=d.get();if(void 0!==i&&!d.isAnimating()&&!Array.isArray(e)&&e===i&&!g.velocity){sz.update(()=>d.set(e));continue}let n=!1;if(window.MotionHandoffAnimation){let c=a.props[ut];if(c){let a=window.MotionHandoffAnimation(c,b,sz);null!==a&&(g.startTime=a,n=!0)}}us(a,b);let o=j??a.shouldReduceMotion;d.start(vr(b,d,e,o&&r4.has(b)?{type:!1}:g,a,n));let p=d.animation;p&&l.push(p)}if(g){let b=()=>sz.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=uo(a,b)||{};for(let b in e={...e,...c}){var f;let c=ur(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,tc(c))}}(a,g)});l.length?Promise.all(l).then(b):b()}return l}function vt(a,b,c,d=0,e=1){let f=Array.from(a).sort((a,b)=>a.sortNodePosition(b)).indexOf(b),g=a.size,h=(g-1)*d;return"function"==typeof c?c(f,g):1===e?f*d:h-f*d}function vu(a,b,c={}){let d=uo(a,b,"exit"===c.type?a.presenceContext?.custom:void 0),{transition:e=a.getDefaultTransition()||{}}=d||{};c.transitionOverride&&(e=c.transitionOverride);let f=d?()=>Promise.all(vs(a,d,c)):()=>Promise.resolve(),g=a.variantChildren&&a.variantChildren.size?(d=0)=>{let{delayChildren:f=0,staggerChildren:g,staggerDirection:h}=e;return function(a,b,c=0,d=0,e=0,f=1,g){let h=[];for(let i of a.variantChildren)i.notify("AnimationStart",b),h.push(vu(i,b,{...g,delay:c+("function"==typeof d?0:d)+vt(a.variantChildren,i,d,e,f)}).then(()=>i.notify("AnimationComplete",b)));return Promise.all(h)}(a,b,d,f,g,h,c)}:()=>Promise.resolve(),{when:h}=e;if(!h)return Promise.all([f(),g(c.delay)]);{let[a,b]="beforeChildren"===h?[f,g]:[g,f];return a().then(()=>b())}}let vv=ti.length;function vw(a,b){if(!Array.isArray(b))return!1;let c=b.length;if(c!==a.length)return!1;for(let d=0;d<c;d++)if(b[d]!==a[d])return!1;return!0}let vx=[...th].reverse(),vy=th.length;function vz(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function vA(){return{animate:vz(!0),whileInView:vz(),whileHover:vz(),whileTap:vz(),whileDrag:vz(),whileFocus:vz(),exit:vz()}}class vB extends un{constructor(a){super(a),a.animationState||(a.animationState=function(a){let b=b=>Promise.all(b.map(({animation:b,options:c})=>(function(a,b,c={}){let d;if(a.notify("AnimationStart",b),Array.isArray(b))d=Promise.all(b.map(b=>vu(a,b,c)));else if("string"==typeof b)d=vu(a,b,c);else{let e="function"==typeof b?uo(a,b,c.custom):b;d=Promise.all(vs(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=vA(),d=!0,e=!1,f=b=>(c,d)=>{let e=uo(a,d,"exit"===b?a.presenceContext?.custom:void 0);if(e){let{transition:a,transitionEnd:b,...d}=e;c={...c,...d,...b}}return c};function g(g){let{props:h}=a,i=function a(b){if(!b)return;if(!b.isControllingVariants){let c=b.parent&&a(b.parent)||{};return void 0!==b.props.initial&&(c.initial=b.props.initial),c}let c={};for(let a=0;a<vv;a++){let d=ti[a],e=b.props[d];(tg(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},j=[],k=new Set,l={},m=1/0;for(let b=0;b<vy;b++){var n,o;let p=vx[b],q=c[p],r=void 0!==h[p]?h[p]:i[p],s=tg(r),t=p===g?q.isActive:null;!1===t&&(m=b);let u=r===i[p]&&r!==h[p]&&s;if(u&&(d||e)&&a.manuallyAnimateOnMount&&(u=!1),q.protectedKeys={...l},!q.isActive&&null===t||!r&&!q.prevProp||tf(r)||"boolean"==typeof r)continue;if("exit"===p&&q.isActive&&!0!==t){q.prevResolvedValues&&(l={...l,...q.prevResolvedValues});continue}let v=(n=q.prevProp,"string"==typeof(o=r)?o!==n:!!Array.isArray(o)&&!vw(o,n)),w=v||p===g&&q.isActive&&!u&&s||b>m&&s,x=!1,y=Array.isArray(r)?r:[r],z=y.reduce(f(p),{});!1===t&&(z={});let{prevResolvedValues:A={}}=q,B={...A,...z},C=b=>{w=!0,k.has(b)&&(x=!0,k.delete(b)),q.needsAnimating[b]=!0;let c=a.getValue(b);c&&(c.liveStyle=!1)};for(let a in B){let b=z[a],c=A[a];if(!l.hasOwnProperty(a))(ur(b)&&ur(c)?!vw(b,c)||v:b!==c)?null!=b?C(a):k.add(a):void 0!==b&&k.has(a)?C(a):q.protectedKeys[a]=!0}q.prevProp=r,q.prevResolvedValues=z,q.isActive&&(l={...l,...z}),(d||e)&&a.blockInitialAnimation&&(w=!1);let D=u&&v,E=!D||x;w&&E&&j.push(...y.map(b=>{let c={type:p};if("string"==typeof b&&(d||e)&&!D&&a.manuallyAnimateOnMount&&a.parent){let{parent:d}=a,e=uo(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=vt(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(k.size){let b={};if("boolean"!=typeof h.initial){let c=uo(a,Array.isArray(h.initial)?h.initial[0]:h.initial);c&&c.transition&&(b.transition=c.transition)}k.forEach(c=>{let d=a.getBaseTarget(c),e=a.getValue(c);e&&(e.liveStyle=!0),b[c]=d??null}),j.push({animation:b})}let p=!!j.length;return d&&(!1===h.initial||h.initial===h.animate)&&!a.manuallyAnimateOnMount&&(p=!1),d=!1,e=!1,p?b(j):Promise.resolve()}return{animateChanges:g,setActive:function(b,d){if(c[b].isActive===d)return Promise.resolve();a.variantChildren?.forEach(a=>a.animationState?.setActive(b,d)),c[b].isActive=d;let e=g(b);for(let a in c)c[a].protectedKeys={};return e},setAnimateFunction:function(c){b=c(a)},getState:()=>c,reset:()=>{c=vA(),e=!0}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();tf(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:a}=this.node.getProps(),{animate:b}=this.node.prevProps||{};a!==b&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let vC=0;class vD extends un{constructor(){super(...arguments),this.id=vC++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:a,onExitComplete:b}=this.node.presenceContext,{isPresent:c}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===c)return;if(a&&!1===c){if(this.isExitComplete){let{initial:a,custom:b}=this.node.getProps();if("string"==typeof a||"object"==typeof a&&null!==a&&!Array.isArray(a)){let c=uo(this.node,a,b);if(c){let{transition:a,transitionEnd:b,...d}=c;for(let a in d)this.node.getValue(a)?.jump(d[a])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let d=this.node.animationState.setActive("exit",!a);b&&!a&&d.then(()=>{this.isExitComplete=!0,b(this.id)})}mount(){let{register:a,onExitComplete:b}=this.node.presenceContext||{};b&&b(this.id),a&&(this.unmount=a(this.id))}unmount(){}}let vE={x:!1,y:!1};function vF(a){return[a("x"),a("y")]}function vG(a){return a.max-a.min}function vH(a,b,c,d=.5){a.origin=d,a.originPoint=tK(b.min,b.max,a.origin),a.scale=vG(c)/vG(b),a.translate=tK(c.min,c.max,a.origin)-a.originPoint,(a.scale>=.9999&&a.scale<=1.0001||isNaN(a.scale))&&(a.scale=1),(a.translate>=-.01&&a.translate<=.01||isNaN(a.translate))&&(a.translate=0)}function vI(a,b,c,d){vH(a.x,b.x,c.x,d?d.originX:void 0),vH(a.y,b.y,c.y,d?d.originY:void 0)}function vJ(a,b,c,d=0){a.min=(d?tK(c.min,c.max,d):c.min)+b.min,a.max=a.min+vG(b)}function vK(a,b,c,d=0){let e=d?tK(c.min,c.max,d):c.min;a.min=b.min-e,a.max=a.min+vG(b)}function vL(a,b,c,d){vK(a.x,b.x,c.x,d?.x),vK(a.y,b.y,c.y,d?.y)}let vM=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),vN=new Set(["INPUT","SELECT","TEXTAREA"]);function vO(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c,d)}let vP=a=>"object"==typeof a&&null!==a;function vQ(a){return vP(a)&&"ownerSVGElement"in a}function vR(a,b,c){if(null==a)return[];if(a instanceof EventTarget)return[a];if("string"==typeof a){let d=document;b&&(d=b.current);let e=c?.[a]??d.querySelectorAll(a);return e?Array.from(e):[]}return Array.from(a).filter(a=>null!=a)}let vS=new WeakMap,vT=(a,b,c)=>(d,e)=>e&&e[0]?e[0][a+"Size"]:vQ(d)&&"getBBox"in d?d.getBBox()[b]:d[c],vU=vT("inline","width","offsetWidth"),vV=vT("block","height","offsetHeight");function vW({target:a,borderBoxSize:b}){vS.get(a)?.forEach(c=>{c(a,{get width(){return vU(a,b)},get height(){return vV(a,b)}})})}function vX(a){a.forEach(vW)}let vY=new Set;function vZ(a,b){let c;return"function"==typeof a?(vY.add(a),f||(f=()=>{let a={get width(){return window.innerWidth},get height(){return window.innerHeight}};vY.forEach(b=>b(a))},window.addEventListener("resize",f)),()=>{vY.delete(a),vY.size||"function"!=typeof f||(window.removeEventListener("resize",f),f=void 0)}):(!e&&"u">typeof ResizeObserver&&(e=new ResizeObserver(vX)),(c=vR(a)).forEach(a=>{let c=vS.get(a);c||(c=new Set,vS.set(a,c)),c.add(b),e?.observe(a)}),()=>{c.forEach(a=>{let c=vS.get(a);c?.delete(b),c?.size||e?.unobserve(a)})})}let v$=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function v_(a){return{point:{x:a.pageX,y:a.pageY}}}function v0(a,b,c,d){return vO(a,b,a=>v$(a)&&c(a,v_(a)),d)}let v1=({current:a})=>a?a.ownerDocument.defaultView:null;function v2(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}let v3=(a,b)=>Math.abs(a-b),v4=new Set(["auto","scroll"]);class v5{constructor(a,b,{transformPagePoint:c,contextWindow:d=window,dragSnapToOrigin:e=!1,distanceThreshold:f=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=a=>{this.handleScroll(a.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var a,b;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=v6(this.lastRawMoveEventInfo,this.transformPagePoint));let c=v8(this.lastMoveEventInfo,this.history),d=null!==this.startEvent,e=(a=c.offset,b={x:0,y:0},Math.sqrt(v3(a.x,b.x)**2+v3(a.y,b.y)**2)>=this.distanceThreshold);if(!d&&!e)return;let{point:f}=c,{timestamp:g}=sB;this.history.push({...f,timestamp:g});let{onStart:h,onMove:i}=this.handlers;d||(h&&h(this.lastMoveEvent,c),this.startEvent=this.lastMoveEvent),i&&i(this.lastMoveEvent,c)},this.handlePointerMove=(a,b)=>{this.lastMoveEvent=a,this.lastRawMoveEventInfo=b,this.lastMoveEventInfo=v6(b,this.transformPagePoint),sz.update(this.updatePoint,!0)},this.handlePointerUp=(a,b)=>{this.end();let{onEnd:c,onSessionEnd:d,resumeAnimation:e}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&e&&e(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let f=v8("pointercancel"===a.type?this.lastMoveEventInfo:v6(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!v$(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;const h=v6(v_(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=sB;this.history=[{...i,timestamp:j}];const{onSessionStart:k}=b;k&&k(a,v8(h,this.history));const l={passive:!0,capture:!0};this.removeListeners=uu(v0(this.contextWindow,"pointermove",this.handlePointerMove,l),v0(this.contextWindow,"pointerup",this.handlePointerUp,l),v0(this.contextWindow,"pointercancel",this.handlePointerUp,l)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(v4.has(a.overflowX)||v4.has(a.overflowY))&&this.scrollPositions.set(b,{x:b.scrollLeft,y:b.scrollTop}),b=b.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){let b=this.scrollPositions.get(a);if(!b)return;let c=a===window,d=c?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},e={x:d.x-b.x,y:d.y-b.y};(0!==e.x||0!==e.y)&&(c?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=e.x,this.lastMoveEventInfo.point.y+=e.y):this.history.length>0&&(this.history[0].x-=e.x,this.history[0].y-=e.y),this.scrollPositions.set(a,d),sz.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),sA(this.updatePoint)}}function v6(a,b){return b?{point:b(a.point)}:a}function v7(a,b){return{x:a.x-b.x,y:a.y-b.y}}function v8({point:a},b){return{point:a,delta:v7(a,v9(b)),offset:v7(a,b[0]),velocity:function(a){if(a.length<2)return{x:0,y:0};let b=a.length-1,c=null,d=v9(a);for(;b>=0&&(c=a[b],!(d.timestamp-c.timestamp>sO(.1)));)b--;if(!c)return{x:0,y:0};c===a[0]&&a.length>2&&d.timestamp-c.timestamp>2*sO(.1)&&(c=a[1]);let e=(d.timestamp-c.timestamp)/1e3;if(0===e)return{x:0,y:0};let f={x:(d.x-c.x)/e,y:(d.y-c.y)/e};return f.x===1/0&&(f.x=0),f.y===1/0&&(f.y=0),f}(b)}}function v9(a){return a[a.length-1]}function wa(a,b,c){return{min:void 0!==b?a.min+b:void 0,max:void 0!==c?a.max+c-(a.max-a.min):void 0}}function wb(a,b){let c=b.min-a.min,d=b.max-a.max;return b.max-b.min<a.max-a.min&&([c,d]=[d,c]),{min:c,max:d}}function wc(a,b,c){return{min:wd(a,b),max:wd(a,c)}}function wd(a,b){return"number"==typeof a?a:a[b]||0}let we=new WeakMap;class wf{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=r2(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:b=!1,distanceThreshold:c}={}){let{presenceContext:d}=this.visualElement;if(d&&!1===d.isPresent)return;let e=a=>{b&&this.snapToCursor(v_(a).point),this.stopAnimation()},f=(a,b)=>{let{drag:c,dragPropagation:d,onDragStart:e}=this.getProps();if(c&&!d&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(a){if("x"===a||"y"===a)if(vE[a])return null;else return vE[a]=!0,()=>{vE[a]=!1};return vE.x||vE.y?null:(vE.x=vE.y=!0,()=>{vE.x=vE.y=!1})}(c),!this.openDragLock))return;this.latestPointerEvent=a,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),vF(a=>{let b=this.getAxisMotionValue(a).get()||0;if(rE.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=vG(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&sz.update(()=>e(a,b),!1,!0),us(this.visualElement,"transform");let{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},g=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b;let{dragPropagation:c,dragDirectionLock:d,onDirectionLock:e,onDrag:f}=this.getProps();if(!c&&!this.openDragLock)return;let{offset:g}=b;if(d&&null===this.currentDirection){this.currentDirection=function(a,b=10){let c=null;return Math.abs(a.y)>b?c="y":Math.abs(a.x)>b&&(c="x"),c}(g),null!==this.currentDirection&&e&&e(this.currentDirection);return}this.updateAxis("x",b.point,g),this.updateAxis("y",b.point,g),this.visualElement.render(),f&&sz.update(()=>f(a,b),!1,!0)},h=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b,this.stop(a,b),this.latestPointerEvent=null,this.latestPanInfo=null},i=()=>{let{dragSnapToOrigin:a}=this.getProps();(a||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:j}=this.getProps();this.panSession=new v5(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:v1(this.visualElement),element:this.visualElement.current})}stop(a,b){let c=a||this.latestPointerEvent,d=b||this.latestPanInfo,e=this.isDragging;if(this.cancel(),!e||!d||!c)return;let{velocity:f}=d;this.startAnimation(f);let{onDragEnd:g}=this.getProps();g&&sz.postRender(()=>g(c,d))}cancel(){this.isDragging=!1;let{projection:a,animationState:b}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:c}=this.getProps();!c&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),b&&b.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(a,b,c){let{drag:d}=this.getProps();if(!c||!wh(a,d,this.currentDirection))return;let e=this.getAxisMotionValue(a),f=this.originPoint[a]+c[a];this.constraints&&this.constraints[a]&&(f=function(a,{min:b,max:c},d){return void 0!==b&&a<b?a=d?tK(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?tK(c,a,d.max):Math.min(a,c)),a}(f,this.constraints[a],this.elastic[a])),e.set(f)}resolveConstraints(){let{dragConstraints:a,dragElastic:b}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;a&&v2(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:wa(a.x,c,e),y:wa(a.y,b,d)}}(c.layoutBox,a):this.constraints=!1,this.elastic=function(a=.35){return!1===a?a=0:!0===a&&(a=.35),{x:wc(a,"left","right"),y:wc(a,"top","bottom")}}(b),d!==this.constraints&&!v2(a)&&c&&this.constraints&&!this.hasMutatedConstraints&&vF(a=>{var b,d;let e;!1!==this.constraints&&this.getAxisMotionValue(a)&&(this.constraints[a]=(b=c.layoutBox[a],d=this.constraints[a],e={},void 0!==d.min&&(e.min=d.min-b.min),void 0!==d.max&&(e.max=d.max-b.min),e))})}resolveRefConstraints(){var a;let{dragConstraints:b,onMeasureDragConstraints:c}=this.getProps();if(!b||!v2(b))return!1;let d=b.current;r9();let{projection:e}=this.visualElement;if(!e||!e.layout)return!1;e.root&&(e.root.scroll=void 0,e.root.updateScroll());let f=function(a,b,c){let d=t0(a,c),{scroll:e}=b;return e&&(tY(d.x,e.offset.x),tY(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:wb(a.x,f.x),y:wb(a.y,f.y)});if(c){let a=c(function({x:a,y:b}){return{top:b.min,right:a.max,bottom:b.max,left:a.min}}(g));this.hasMutatedConstraints=!!a,a&&(g=tQ(a))}return g}startAnimation(a){let{drag:b,dragMomentum:c,dragElastic:d,dragTransition:e,dragSnapToOrigin:f,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{};return Promise.all(vF(g=>{if(!wh(g,b,this.currentDirection))return;let i=h&&h[g]||{};(!0===f||f===g)&&(i={min:0,max:0});let j={type:"inertia",velocity:c?a[g]:0,bounceStiffness:d?200:1e6,bounceDamping:d?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...e,...i};return this.startAxisValueAnimation(g,j)})).then(g)}startAxisValueAnimation(a,b){let c=this.getAxisMotionValue(a);return us(this.visualElement,a),c.start(vr(a,c,0,b,this.visualElement,!1))}stopAnimation(){vF(a=>this.getAxisMotionValue(a).stop())}getAxisMotionValue(a){let b=`_drag${a.toUpperCase()}`;return this.visualElement.getProps()[b]||this.visualElement.getValue(a,this.visualElement.latestValues[a]??0)}snapToCursor(a){vF(b=>{let{drag:c}=this.getProps();if(!wh(b,c,this.currentDirection))return;let{projection:d}=this.visualElement,e=this.getAxisMotionValue(b);if(d&&d.layout){let{min:c,max:f}=d.layout.layoutBox[b],g=e.get()||0;e.set(a[b]-tK(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!v2(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};vF(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){var c,e;let f,g,h,i=b.get();d[a]=(c={min:i,max:i},e=this.constraints[a],f=.5,g=vG(c),(h=vG(e))>g?f=u9(e.min,e.max-g,c.min):g>h&&(f=u9(c.min,c.max-h,e.min)),rq(0,1,f))}});let{transformTemplate:e}=this.visualElement.getProps();this.visualElement.current.style.transform=e?e({},""):"none",c.root&&c.root.updateScroll(),c.updateLayout(),this.constraints=!1,this.resolveConstraints(),vF(b=>{if(!wh(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(tK(e,f,d[b]))}),this.visualElement.render()}addListeners(){let a;if(!this.visualElement.current)return;we.set(this.visualElement,this);let b=this.visualElement.current,c=v0(b,"pointerdown",a=>{let{drag:c,dragListener:d=!0}=this.getProps(),e=a.target,f=e!==b&&(vN.has(e.tagName)||!0===e.isContentEditable);c&&d&&!f&&this.start(a)}),d=()=>{var c,d,e;let f,g,{dragConstraints:h}=this.getProps();v2(h)&&h.current&&(this.constraints=this.resolveRefConstraints(),a||(c=b,d=h.current,f=vZ(c,wg(e=()=>this.scalePositionWithinConstraints())),g=vZ(d,wg(e)),a=()=>{f(),g()}))},{projection:e}=this.visualElement,f=e.addEventListener("measure",d);e&&!e.layout&&(e.root&&e.root.updateScroll(),e.updateLayout()),sz.read(d);let g=vO(window,"resize",()=>this.scalePositionWithinConstraints()),h=e.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(vF(b=>{let c=this.getAxisMotionValue(b);c&&(this.originPoint[b]+=a[b].translate,c.set(c.get()+a[b].translate))}),this.visualElement.render())});return()=>{g(),c(),f(),h&&h(),a&&a()}}getProps(){let a=this.visualElement.getProps(),{drag:b=!1,dragDirectionLock:c=!1,dragPropagation:d=!1,dragConstraints:e=!1,dragElastic:f=.35,dragMomentum:g=!0}=a;return{...a,drag:b,dragDirectionLock:c,dragPropagation:d,dragConstraints:e,dragElastic:f,dragMomentum:g}}}function wg(a){let b=!0;return()=>{if(b){b=!1;return}a()}}function wh(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}class wi extends un{constructor(a){super(a),this.removeGroupControls=sv,this.removeListeners=sv,this.controls=new wf(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||sv}update(){let{dragControls:a}=this.node.getProps(),{dragControls:b}=this.node.prevProps||{};a!==b&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}let wj=a=>(b,c)=>{a&&sz.update(()=>a(b,c),!1,!0)};class wk extends un{constructor(){super(...arguments),this.removePointerDownListener=sv}onPointerDown(a){this.session=new v5(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:v1(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:wj(a),onStart:wj(b),onMove:wj(c),onEnd:(a,b)=>{delete this.session,d&&sz.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=v0(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let wl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function wm(a=!0){let b=(0,B.useContext)(ue);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:d,register:e}=b,f=(0,B.useId)(),g=(0,B.useCallback)(()=>a&&d&&d(f),[f,d,a]);return!c&&d?[!1,g]:[!0]}function wn(){var a;return null===(a=(0,B.useContext)(ue))||a.isPresent}let wo=(0,B.createContext)({}),wp=!1;class wq extends B.Component{componentDidMount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c,layoutId:d}=this.props,{projection:e}=a;e&&(b.group&&b.group.add(e),c&&c.register&&d&&c.register(e),wp&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),wl.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){let{layoutDependency:b,visualElement:c,drag:d,isPresent:e}=this.props,{projection:f}=c;return f&&(f.isPresent=e,a.layoutDependency!==b&&f.setOptions({...f.options,layoutDependency:b}),wp=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||sz.postRender(()=>{let a=f.getStack();a&&a.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement:a,layoutAnchor:b}=this.props,{projection:c}=a;c&&(c.options.layoutAnchor=b,c.root.didUpdate(),s6.postRender(()=>{!c.currentAnimation&&c.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;wp=!0,d&&(d.scheduleCheckAfterUnmount(),b&&b.group&&b.group.remove(d),c&&c.deregister&&c.deregister(d))}safeToRemove(){let{safeToRemove:a}=this.props;a&&a()}render(){return null}}function wr(a){let[b,c]=wm(),d=(0,B.useContext)(t4);return(0,A.jsx)(wq,{...a,layoutGroup:d,switchLayoutGroup:(0,B.useContext)(wo),isPresent:b,safeToRemove:c})}let ws=tH.length,wt=a=>"string"==typeof a?parseFloat(a):a,wu=a=>"number"==typeof a||rF.test(a);function wv(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let ww=wy(0,.5,u5),wx=wy(.5,.95,sv);function wy(a,b,c){return d=>d<a?0:d>b?1:c(u9(a,b,d))}function wz(a,b){a.min=b.min,a.max=b.max}function wA(a,b){wz(a.x,b.x),wz(a.y,b.y)}function wB(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function wC(a,b,c,d,e){return a-=b,a=d+1/c*(a-d),void 0!==e&&(a=d+1/e*(a-d)),a}function wD(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(rE.test(b)&&(b=parseFloat(b),b=tK(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=tK(f.min,f.max,d);a===f&&(h-=b),a.min=wC(a.min,b,c,h,e),a.max=wC(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let wE=["x","scaleX","originX"],wF=["y","scaleY","originY"];function wG(a,b,c,d){wD(a.x,b,wE,c?c.x:void 0,d?d.x:void 0),wD(a.y,b,wF,c?c.y:void 0,d?d.y:void 0)}function wH(a){return 0===a.translate&&1===a.scale}function wI(a){return wH(a.x)&&wH(a.y)}function wJ(a,b){return a.min===b.min&&a.max===b.max}function wK(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function wL(a,b){return wK(a.x,b.x)&&wK(a.y,b.y)}function wM(a){return vG(a.x)/vG(a.y)}function wN(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}class wO{constructor(){this.members=[]}add(a){sP(this.members,a);for(let b=this.members.length-1;b>=0;b--){let c=this.members[b];if(c===a||c===this.lead||c===this.prevLead)continue;let d=c.instance;d&&!1!==d.isConnected||c.snapshot||(sQ(this.members,c),c.unmount())}a.scheduleRender()}remove(a){if(sQ(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(a){for(let b=this.members.indexOf(a)-1;b>=0;b--){let a=this.members[b];if(!1!==a.isPresent&&a.instance?.isConnected!==!1)return this.promote(a),!0}return!1}promote(a,b){let c=this.lead;if(a!==c&&(this.prevLead=c,this.lead=a,a.show(),c)){c.updateSnapshot(),a.scheduleRender();let{layoutDependency:d}=c.options,{layoutDependency:e}=a.options;(void 0===d||d!==e)&&(a.resumeFrom=c,b&&(c.preserveOpacity=!0),c.snapshot&&(a.snapshot=c.snapshot,a.snapshot.latestValues=c.animationValues||c.latestValues),a.root?.isUpdating&&(a.isLayoutDirty=!0)),!1===a.options.crossfade&&c.hide()}}exitAnimationComplete(){this.members.forEach(a=>{a.options.onExitComplete?.(),a.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(a=>a.instance&&a.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}let wP=(a,b)=>a.depth-b.depth;class wQ{constructor(){this.children=[],this.isDirty=!1}add(a){sP(this.children,a),this.isDirty=!0}remove(a){sQ(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(wP),this.isDirty=!1,this.children.forEach(a)}}let wR=["","X","Y","Z"],wS=0;function wT(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function wU({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=wS++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(wX),this.nodes.forEach(w4),this.nodes.forEach(w5),this.nodes.forEach(wY)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let a=0;a<this.path.length;a++)this.path[a].shouldResetTransform=!0;this.root===this&&(this.nodes=new wQ)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new sR),this.eventHandlers.get(a).add(b)}notifyListeners(a,...b){let c=this.eventHandlers.get(a);c&&c.notify(...b)}hasListeners(a){return this.eventHandlers.has(a)}mount(b){if(this.instance)return;this.isSVG=vQ(b)&&!(vQ(b)&&"svg"===b.tagName),this.instance=b;let{layoutId:c,layout:d,visualElement:e}=this.options;if(e&&!e.current&&e.mount(b),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||c)&&(this.isLayoutDirty=!0),a){let c,d=0,e=()=>this.root.updateBlockedByResize=!1;sz.read(()=>{d=window.innerWidth}),a(b,()=>{let a=window.innerWidth;if(a!==d){let b,f;d=a,this.root.updateBlockedByResize=!0,c&&c(),b=s8.now(),f=({timestamp:a})=>{let c=a-b;c>=250&&(sA(f),e())},sz.setup(f,!0),c=()=>sA(f),wl.hasAnimatedSinceResize&&(wl.hasAnimatedSinceResize=!1,this.nodes.forEach(w3))}})}c&&this.root.registerSharedNode(c,this),!1!==this.options.animate&&e&&(c||d)&&this.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b,hasRelativeLayoutChanged:c,layout:d})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let f=this.options.transition||e.getDefaultTransition()||xb,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!wL(this.targetLayout,d),j=!b&&c;if(this.options.layoutRoot||this.resumeFrom||j||b&&(i||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let b={...uq(f,"layout"),onPlay:g,onComplete:h};(e.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b),this.setAnimationOrigin(a,j,b.path)}else b||w3(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=d})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),sA(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(w6),this.animationId++)}getTransformTemplate(){let{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function a(b){if(b.hasCheckedOptimisedAppear=!0,b.root===b)return;let{visualElement:c}=b.options;if(!c)return;let d=c.props[ut];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",sz,!(a||c))}let{parent:e}=b;e&&!e.hasCheckedOptimisedAppear&&a(e)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let a=0;a<this.path.length;a++){let b=this.path[a];b.shouldResetTransform=!0,("string"==typeof b.latestValues.x||"string"==typeof b.latestValues.y)&&(b.isLayoutDirty=!0),b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}let{layoutId:b,layout:c}=this.options;if(void 0===b&&!c)return;let d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),a&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let a=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),a&&this.nodes.forEach(w_),this.nodes.forEach(w$);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(w0);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(w1),this.nodes.forEach(w2),this.nodes.forEach(wV),this.nodes.forEach(wW)):this.nodes.forEach(w0),this.clearAllSnapshots();let a=s8.now();sB.delta=rq(0,1e3/60,a-sB.timestamp),sB.timestamp=a,sB.isProcessing=!0,sC.update.process(sB),sC.preRender.process(sB),sC.render.process(sB),sB.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,s6.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(wZ),this.sharedNodes.forEach(w7)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,sz.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){sz.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||vG(this.snapshot.measuredBox.x)||vG(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a<this.path.length;a++)this.path[a].updateScroll();let a=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=r2()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:b}=this.options;b&&b.notify("LayoutMeasure",this.layout.layoutBox,a?a.layoutBox:void 0)}updateScroll(a="measure"){let b=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===a&&(b=!1),b&&this.instance){let b=d(this.instance);this.scroll={animationId:this.root.animationId,phase:a,isRoot:b,offset:c(this.instance),wasRoot:this.scroll?this.scroll.isRoot:b}}}resetTransform(){if(!e)return;let a=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,b=this.projectionDelta&&!wI(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||tT(this.latestValues)||f)&&(e(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(a=!0){var b;let c=this.measurePageBox(),d=this.removeElementScroll(c);return a&&(d=this.removeTransform(d)),xe((b=d).x),xe(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return r2();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(xg))){let{scroll:a}=this.root;a&&(tY(b.x,a.offset.x),tY(b.y,a.offset.y))}return b}removeElementScroll(a){let b=r2();if(wA(b,a),this.scroll?.wasRoot)return b;for(let c=0;c<this.path.length;c++){let d=this.path[c],{scroll:e,options:f}=d;d!==this.root&&e&&f.layoutScroll&&(e.wasRoot&&wA(b,a),tY(b.x,e.offset.x),tY(b.y,e.offset.y))}return b}applyTransform(a,b=!1,c){let d=c||r2();wA(d,a);for(let a=0;a<this.path.length;a++){let c=this.path[a];!b&&c.options.layoutScroll&&c.scroll&&c!==c.root&&(tY(d.x,-c.scroll.offset.x),tY(d.y,-c.scroll.offset.y)),tT(c.latestValues)&&t_(d,c.latestValues,c.layout?.layoutBox)}return tT(this.latestValues)&&t_(d,this.latestValues,this.layout?.layoutBox),d}removeTransform(a){let b=r2();wA(b,a);for(let a=0;a<this.path.length;a++){let c,d=this.path[a];tT(d.latestValues)&&(d.instance&&(tS(d.latestValues)&&d.updateSnapshot(),wA(c=r2(),d.measurePageBox())),wG(b,d.latestValues,d.snapshot?.layoutBox,c))}return tT(this.latestValues)&&wG(b,this.latestValues),b}setTargetDelta(a){this.targetDelta=a,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(a){this.options={...this.options,...a,crossfade:void 0===a.crossfade||a.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==sB.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(a=!1){let b=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=b.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=b.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=b.isSharedProjectionDirty);let c=!!this.resumingFrom||this!==b;if(!(a||c&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:d,layoutId:e}=this.options;if(!this.layout||!(d||e))return;this.resolvedRelativeTargetAt=sB.timestamp;let f=this.getClosestProjectingParent();if(f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(!1!==this.options.layoutAnchor&&f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=r2(),this.targetWithTransforms=r2()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var g,h,i,j;this.forceRelativeParentToResolveTarget(),g=this.target,h=this.relativeTarget,i=this.relativeParent.target,j=this.options.layoutAnchor||void 0,vJ(g.x,h.x,i.x,j?.x),vJ(g.y,h.y,i.y,j?.y)}else this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):wA(this.target,this.layout.layoutBox),tX(this.target,this.targetDelta)):wA(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,!1!==this.options.layoutAnchor&&f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&1!==this.animationProgress?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0)}}getClosestProjectingParent(){if(!(!this.parent||tS(this.parent.latestValues)||tU(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(a,b,c){this.relativeParent=a,this.linkedParentVersion=a.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=r2(),this.relativeTargetOrigin=r2(),vL(this.relativeTargetOrigin,b,c,this.options.layoutAnchor||void 0),wA(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let a=this.getLead(),b=!!this.resumingFrom||this!==a,c=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(c=!1),b&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===sB.timestamp&&(c=!1),c)return;let{layout:d,layoutId:e}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||e))return;wA(this.layoutCorrected,this.layout.layoutBox);let f=this.treeScale.x,g=this.treeScale.y;!function(a,b,c,d=!1){let e,f,g=c.length;if(g){b.x=b.y=1;for(let h=0;h<g;h++){f=(e=c[h]).projectionDelta;let{visualElement:g}=e.options;(!g||!g.props.style||"contents"!==g.props.style.display)&&(d&&e.options.layoutScroll&&e.scroll&&e!==e.root&&(tY(a.x,-e.scroll.offset.x),tY(a.y,-e.scroll.offset.y)),f&&(b.x*=f.x.scale,b.y*=f.y.scale,tX(a,f)),d&&tT(e.latestValues)&&t_(a,e.latestValues,e.layout?.layoutBox))}b.x<1.0000000000001&&b.x>.999999999999&&(b.x=1),b.y<1.0000000000001&&b.y>.999999999999&&(b.y=1)}}(this.layoutCorrected,this.treeScale,this.path,b),a.layout&&!a.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(a.target=a.layout.layoutBox,a.targetWithTransforms=r2());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(wB(this.prevProjectionDelta.x,this.projectionDelta.x),wB(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),vI(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&wN(this.projectionDelta.x,this.prevProjectionDelta.x)&&wN(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(a=!0){if(this.options.visualElement?.scheduleRender(),a){let a=this.getStack();a&&a.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=r0(),this.projectionDelta=r0(),this.projectionDeltaWithTransform=r0()}setAnimationOrigin(a,b=!1,c){let d,e=this.snapshot,f=e?e.latestValues:{},g={...this.latestValues},h=r0();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let i=r2(),j=(e?e.source:void 0)!==(this.layout?this.layout.source:void 0),k=this.getStack(),l=!k||k.members.length<=1,m=!!(j&&!l&&!0===this.options.crossfade&&!this.path.some(xa));this.animationProgress=0;let n=c?.interpolateProjection(a);this.mixTargetDelta=b=>{let c=b/1e3,e=n?.(c);if(e?(h.x.translate=e.x,h.x.scale=tK(a.x.scale,1,c),h.x.origin=a.x.origin,h.x.originPoint=a.x.originPoint,h.y.translate=e.y,h.y.scale=tK(a.y.scale,1,c),h.y.origin=a.y.origin,h.y.originPoint=a.y.originPoint):(w8(h.x,a.x,c),w8(h.y,a.y,c)),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var k,o,p,q,r,s;vL(i,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),p=this.relativeTarget,q=this.relativeTargetOrigin,r=i,s=c,w9(p.x,q.x,r.x,s),w9(p.y,q.y,r.y,s),d&&(k=this.relativeTarget,o=d,wJ(k.x,o.x)&&wJ(k.y,o.y))&&(this.isProjectionDirty=!1),d||(d=r2()),wA(d,this.relativeTarget)}j&&(this.animationValues=g,function(a,b,c,d,e,f){e?(a.opacity=tK(0,c.opacity??1,ww(d)),a.opacityExit=tK(b.opacity??1,0,wx(d))):f&&(a.opacity=tK(b.opacity??1,c.opacity??1,d));for(let e=0;e<ws;e++){let f=tH[e],g=wv(b,f),h=wv(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||wu(g)===wu(h)?(a[f]=Math.max(tK(wt(g),wt(h),d),0),(rE.test(h)||rE.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=tK(b.rotate||0,c.rotate||0,d))}(g,f,this.latestValues,c,m,l)),e&&void 0!==e.rotate&&(this.animationValues||(this.animationValues=g),this.animationValues.pathRotation=e.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=c},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(sA(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=sz.update(()=>{var b,c,d;let e;wl.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=tc(0)),this.motionValue.jump(0,!1),this.currentAnimation=(b=this.motionValue,c=[0,1e3],d={...a,velocity:0,isSync:!0,onUpdate:b=>{this.mixTargetDelta(b),a.onUpdate&&a.onUpdate(b)},onComplete:()=>{a.onComplete&&a.onComplete(),this.completeAnimation()}},(e=r3(b)?b:tc(b)).start(vr("",e,c,d)),e.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let a=this.getLead(),{targetWithTransforms:b,target:c,layout:d,latestValues:e}=a;if(b&&c&&d){if(this!==a&&this.layout&&d&&xf(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||r2();let b=vG(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=vG(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}wA(b,c),t_(b,e),vI(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new wO),this.sharedNodes.get(a).add(b);let c=b.options.initialPromotionConfig;b.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(b):void 0})}isLead(){let a=this.getStack();return!a||a.lead===this}getLead(){let{layoutId:a}=this.options;return a&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:b,preserveFollowOpacity:c}={}){let d=this.getStack();d&&d.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),b&&this.setOptions({transition:b})}relegate(){let a=this.getStack();return!!a&&a.relegate(this)}resetSkewAndRotation(){let{visualElement:a}=this.options;if(!a)return;let b=!1,{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(b=!0),!b)return;let d={};c.z&&wT("z",a,d,this.animationValues);for(let b=0;b<wR.length;b++)wT(`rotate${wR[b]}`,a,d,this.animationValues),wT(`skew${wR[b]}`,a,d,this.animationValues);for(let b in a.render(),d)a.setStaticValue(b,d[b]),this.animationValues&&(this.animationValues[b]=d[b]);a.scheduleRender()}applyProjectionStyles(a,b){if(!this.instance||this.isSVG)return;if(!this.isVisible){a.visibility="hidden";return}let c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,a.visibility="",a.opacity="",a.pointerEvents=ud(b?.pointerEvents)||"",a.transform=c?c(this.latestValues,""):"none";return}let d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(a.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,a.pointerEvents=ud(b?.pointerEvents)||""),this.hasProjected&&!tT(this.latestValues)&&(a.transform=c?c({},""):"none",this.hasProjected=!1);return}a.visibility="";let e=d.animationValues||d.latestValues;this.applyTransformsToTarget();let f=function(a,b,c){let d="",e=a.x.translate/b.x,f=a.y.translate/b.y,g=c?.z||0;if((e||f||g)&&(d=`translate3d(${e}px, ${f}px, ${g}px) `),(1!==b.x||1!==b.y)&&(d+=`scale(${1/b.x}, ${1/b.y}) `),c){let{transformPerspective:a,rotate:b,pathRotation:e,rotateX:f,rotateY:g,skewX:h,skewY:i}=c;a&&(d=`perspective(${a}px) ${d}`),b&&(d+=`rotate(${b}deg) `),e&&(d+=`rotate(${e}deg) `),f&&(d+=`rotateX(${f}deg) `),g&&(d+=`rotateY(${g}deg) `),h&&(d+=`skewX(${h}deg) `),i&&(d+=`skewY(${i}deg) `)}let h=a.x.scale*b.x,i=a.y.scale*b.y;return(1!==h||1!==i)&&(d+=`scale(${h}, ${i})`),d||"none"}(this.projectionDeltaWithTransform,this.treeScale,e);c&&(f=c(e,f)),a.transform=f;let{x:g,y:h}=this.projectionDelta;for(let b in a.transformOrigin=`${100*g.origin}% ${100*h.origin}% 0`,d.animationValues?a.opacity=d===this?e.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:e.opacityExit:a.opacity=d===this?void 0!==e.opacity?e.opacity:"":void 0!==e.opacityExit?e.opacityExit:0,tL){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=tL[b],i="none"===f?e[b]:c(e[b],d);if(g){let b=g.length;for(let c=0;c<b;c++)a[g[c]]=i}else h?this.options.visualElement.renderState.vars[b]=i:a[b]=i}this.options.layoutId&&(a.pointerEvents=d===this?ud(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(w$),this.root.sharedNodes.clear()}}}function wV(a){a.updateLayout()}function wW(a){let b=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&b&&a.hasListeners("didUpdate")){let{layoutBox:c,measuredBox:d}=a.layout,{animationType:e}=a.options,f=b.source!==a.layout.source;if("size"===e)vF(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=vG(d);d.min=c[a].min,d.max=d.min+e});else if("x"===e||"y"===e){let a="x"===e?"y":"x";wz(f?b.measuredBox[a]:b.layoutBox[a],c[a])}else xf(e,b.layoutBox,c)&&vF(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=vG(c[d]);e.max=e.min+g,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[d].max=a.relativeTarget[d].min+g)});let g=r0();vI(g,c,b.layoutBox);let h=r0();f?vI(h,a.applyTransform(d,!0),b.measuredBox):vI(h,c,b.layoutBox);let i=!wI(g),j=!1;if(!a.resumeFrom){let d=a.getClosestProjectingParent();if(d&&!d.resumeFrom){let{snapshot:e,layout:f}=d;if(e&&f){let g=a.options.layoutAnchor||void 0,h=r2();vL(h,b.layoutBox,e.layoutBox,g);let i=r2();vL(i,c,f.layoutBox,g),wL(h,i)||(j=!0),d.options.layoutRoot&&(a.relativeTarget=i,a.relativeTargetOrigin=h,a.relativeParent=d)}}}a.notifyListeners("didUpdate",{layout:c,snapshot:b,delta:h,layoutDelta:g,hasLayoutChanged:i,hasRelativeLayoutChanged:j})}else if(a.isLead()){let{onExitComplete:b}=a.options;b&&b()}a.options.transition=void 0}function wX(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function wY(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function wZ(a){a.clearSnapshot()}function w$(a){a.clearMeasurements()}function w_(a){a.isLayoutDirty=!0,a.updateLayout()}function w0(a){a.isLayoutDirty=!1}function w1(a){a.isAnimationBlocked&&a.layout&&!a.isLayoutDirty&&(a.snapshot=a.layout,a.isLayoutDirty=!0)}function w2(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function w3(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function w4(a){a.resolveTargetDelta()}function w5(a){a.calcProjection()}function w6(a){a.resetSkewAndRotation()}function w7(a){a.removeLeadSnapshot()}function w8(a,b,c){a.translate=tK(b.translate,0,c),a.scale=tK(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function w9(a,b,c,d){a.min=tK(b.min,c.min,d),a.max=tK(b.max,c.max,d)}function xa(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let xb={duration:.45,ease:[.4,0,.1,1]},xc=a=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),xd=xc("applewebkit/")&&!xc("chrome/")?Math.round:sv;function xe(a){a.min=xd(a.min),a.max=xd(a.max)}function xf(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(wM(b)-wM(c)))}function xg(a){return a!==a.root&&a.scroll?.wasRoot}let xh=wU({attachResizeListener:(a,b)=>vO(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),xi={current:void 0},xj=wU({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!xi.current){let a=new xh({});a.mount(window),a.setOptions({layoutScroll:!0}),xi.current=a}return xi.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function xk(a,b){let c=vR(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function xl(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&sz.postRender(()=>e(b,v_(b)))}class xm extends un{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=xk(a,c);return d.forEach(a=>{let c,d=!1,f=!1,g=b=>{c&&(c(b),c=void 0),a.removeEventListener("pointerleave",i)},h=a=>{d=!1,window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",h),f&&(f=!1,g(a))},i=a=>{if("touch"!==a.pointerType){if(d){f=!0;return}g(a)}};a.addEventListener("pointerenter",d=>{if("touch"===d.pointerType||vE.x||vE.y)return;f=!1;let g=b(a,d);"function"==typeof g&&(c=g,a.addEventListener("pointerleave",i,e))},e),a.addEventListener("pointerdown",()=>{d=!0,window.addEventListener("pointerup",h,e),window.addEventListener("pointercancel",h,e)},e)}),f}(a,(a,b)=>(xl(this.node,b,"Start"),a=>xl(this.node,a,"End"))))}unmount(){}}class xn extends un{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch(b){a=!0}a&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=uu(vO(this.node.current,"focus",()=>this.onFocus()),vO(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function xo(a){return vP(a)&&"offsetHeight"in a&&!("ownerSVGElement"in a)}let xp=(a,b)=>!!b&&(a===b||xp(a,b.parentElement)),xq=new WeakSet;function xr(a){return b=>{"Enter"===b.key&&a(b)}}function xs(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function xt(a){return v$(a)&&!(vE.x||vE.y)}let xu=new WeakSet;function xv(a,b,c){let{props:d}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&d.whileTap&&a.animationState.setActive("whileTap","Start"===c);let e=d["onTap"+("End"===c?"":c)];e&&sz.postRender(()=>e(b,v_(b)))}class xw extends un{mount(){let{current:a}=this.node;if(!a)return;let{globalTapTarget:b,propagate:c}=this.node.props;this.unmount=function(a,b,c={}){let[d,e,f]=xk(a,c),g=a=>{let d=a.currentTarget;if(!xt(a)||xu.has(a))return;xq.add(d),c.stopPropagation&&xu.add(a);let f=b(d,a),g={...e,capture:!0},h=(a,b)=>{window.removeEventListener("pointerup",i,g),window.removeEventListener("pointercancel",j,g),xq.has(d)&&xq.delete(d),xt(a)&&"function"==typeof f&&f(a,{success:b})},i=a=>{h(a,d===window||d===document||c.useGlobalTarget||xp(d,a.target))},j=a=>{h(a,!1)};window.addEventListener("pointerup",i,g),window.addEventListener("pointercancel",j,g)};return d.forEach(a=>{((c.useGlobalTarget?window:a).addEventListener("pointerdown",g,e),xo(a))&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=xr(()=>{if(xq.has(c))return;xs(c,"down");let a=xr(()=>{xs(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>xs(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),vM.has(a.tagName)||!0===a.isContentEditable||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(xv(this.node,b,"Start"),(a,{success:b})=>xv(this.node,a,b?"End":"Cancel")),{useGlobalTarget:b,stopPropagation:c?.tap===!1})}unmount(){}}let xx=new WeakMap,xy=new WeakMap,xz=a=>{let b=xx.get(a.target);b&&b(a)},xA=a=>{a.forEach(xz)},xB={some:0,all:1};class xC extends un{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var a;let b;this.stopObserver?.();let{viewport:c={}}=this.node.getProps(),{root:d,margin:e,amount:f="some",once:g}=c,h={root:d?d.current:void 0,rootMargin:e,threshold:"number"==typeof f?f:xB[f]},i=a=>{let{isIntersecting:b}=a;if(this.isInView===b||(this.isInView=b,g&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),e=b?c:d;e&&e(a)};this.stopObserver=(a=this.node.current,b=function({root:a,...b}){let c=a||document;xy.has(c)||xy.set(c,{});let d=xy.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(xA,{root:a,...b})),d[e]}(h),xx.set(a,i),b.observe(a),()=>{xx.delete(a),b.unobserve(a)})}mount(){this.startObserver()}update(){if("u"<typeof IntersectionObserver)return;let{props:a,prevProps:b}=this.node;["amount","margin","root"].some(function({viewport:a={}},{viewport:b={}}={}){return c=>a[c]!==b[c]}(a,b))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}let xD=function(a,b){if("u"<typeof Proxy)return um;let c=new Map,d=(c,d)=>um(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,um(f,void 0,a,b)),c.get(f))})}({animation:{Feature:vB},exit:{Feature:vD},inView:{Feature:xC},tap:{Feature:xw},focus:{Feature:xn},hover:{Feature:xm},pan:{Feature:wk},drag:{Feature:wi,ProjectionNode:xj,MeasureLayout:wr},layout:{ProjectionNode:xj,MeasureLayout:wr}},(a,b)=>b.isSVG??t3(a)?new tP(b):new t1(b,{allowProjection:a!==B.Fragment})),xE=new Map,xF=(0,B.memo)(({children:a,as:b="p",className:c,duration:d=2,spread:e=2})=>{let f,g=((f=xE.get(b))||(f=xD.create(b),xE.set(b,f)),f),h=(0,B.useMemo)(()=>(a?.length??0)*e,[a,e]);return(0,A.jsx)(g,{animate:{backgroundPosition:"0% center"},className:(0,W.cn)("relative inline-block bg-[length:250%_100%,auto] bg-clip-text text-transparent","[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--color-background),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]",c),initial:{backgroundPosition:"100% center"},style:{"--spread":`${h}px`,backgroundImage:"var(--bg), linear-gradient(var(--color-muted-foreground), var(--color-muted-foreground))"},transition:{duration:d,ease:"linear",repeat:1/0},children:a})}),xG=(0,B.createContext)(null),xH=(0,B.memo)(({className:a,isStreaming:b=!1,open:c,defaultOpen:d,onOpenChange:e,duration:f,children:g,...h})=>{let i=d??b,j=!1===d,[k,l]=(0,rn.i)({defaultProp:i,onChange:e,prop:c}),[m,n]=(0,rn.i)({defaultProp:void 0,prop:f}),o=(0,B.useRef)(b),[p,q]=(0,B.useState)(!1),r=(0,B.useRef)(null);(0,B.useEffect)(()=>{b?(o.current=!0,null===r.current&&(r.current=Date.now())):null!==r.current&&(n(Math.ceil((Date.now()-r.current)/1e3)),r.current=null)},[b,n]),(0,B.useEffect)(()=>{!b||k||j||l(!0)},[b,k,l,j]),(0,B.useEffect)(()=>{if(o.current&&!b&&k&&!p){let a=setTimeout(()=>{l(!1),q(!0)},1e3);return()=>clearTimeout(a)}},[b,k,l,p]);let s=(0,B.useCallback)(a=>{l(a)},[l]),t=(0,B.useMemo)(()=>({duration:m,isOpen:k,isStreaming:b,setIsOpen:l}),[m,k,b,l]);return(0,A.jsx)(xG.Provider,{value:t,children:(0,A.jsx)(co.Nt,{className:(0,W.cn)("not-prose mb-4",a),onOpenChange:s,open:k,...h,children:g})})}),xI=(a,b)=>a||0===b?(0,A.jsx)(xF,{duration:1,children:"Thinking..."}):void 0===b?(0,A.jsx)("p",{children:"Thought for a few seconds"}):(0,A.jsxs)("p",{children:["Thought for ",b," seconds"]}),xJ=(0,B.memo)(({className:a,children:b,getThinkingMessage:c=xI,...d})=>{let{isStreaming:e,isOpen:f,duration:g}=(()=>{let a=(0,B.useContext)(xG);if(!a)throw Error("Reasoning components must be used within Reasoning");return a})();return(0,A.jsx)(co.R6,{className:(0,W.cn)("flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",a),...d,children:b??(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(q3,{className:"size-4"}),c(e,g),(0,A.jsx)(cn.A,{className:(0,W.cn)("size-4 transition-transform",f?"rotate-180":"rotate-0")})]})})}),xK={cjk:dY.h,code:dZ.a,math:eE,mermaid:io},xL=(0,B.memo)(({className:a,children:b,...c})=>(0,A.jsx)(co.Ke,{className:(0,W.cn)("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",a),...c,children:(0,A.jsx)(ip.jH,{plugins:xK,children:b})}));xH.displayName="Reasoning",xJ.displayName="ReasoningTrigger",xL.displayName="ReasoningContent";var xM=c(10588),xN=c.n(xM);function xO({messages:a,incomplete:b,children:c}){let{t:d}=(0,Q.Bd)("conversation"),[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)(!1),i=(0,B.useRef)(null),j=(0,B.useRef)(!1);return(0,A.jsxs)(cm.AM,{open:e,onOpenChange:(a,b)=>{if(!a&&"trigger-press"===b.reason&&j.current){j.current=!1,b.cancel();return}a&&"trigger-hover"===b.reason&&g||!a&&"trigger-hover"===b.reason&&(!j.current||i.current?.contains(document.activeElement))?b.cancel():(a?j.current="trigger-hover"===b.reason:"trigger-hover"!==b.reason&&(j.current=!1,h(!0)),f(a))},children:[(0,A.jsx)(cm.Wv,{openOnHover:!g,delay:250,closeDelay:180,onPointerLeave:()=>h(!1),className:"min-w-0 cursor-pointer rounded-sm text-left text-xs text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:c}),(0,A.jsxs)(cm.hl,{ref:i,align:"start",side:"top",initialFocus:()=>!j.current,className:(0,W.cn)(xN().panel,"w-[30rem] gap-0 p-2"),children:[(0,A.jsxs)("div",{className:"flex shrink-0 items-center gap-2 border-b px-1 pb-1",children:[(0,A.jsx)(cm.eO,{className:"min-w-0 flex-1 text-xs font-medium text-muted-foreground",children:d(b?"calls.loadedTitle":"calls.title")}),(0,A.jsx)("button",{type:"button","aria-label":d("calls.close"),className:"flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",onClick:()=>{j.current=!1,h(!0),f(!1)},children:(0,A.jsx)(al.A,{className:"size-3.5"})})]}),e?(0,A.jsx)("div",{className:"min-h-0 overflow-y-auto overscroll-contain",children:(0,A.jsxs)("div",{className:xN().table,children:[(0,A.jsxs)("div",{className:(0,W.cn)(xN().row,"text-muted-foreground"),children:[(0,A.jsx)("span",{children:d("calls.model")}),(0,A.jsx)("span",{children:d("calls.input")}),(0,A.jsx)("span",{children:d("calls.output")}),(0,A.jsx)("span",{children:d("calls.cached")}),(0,A.jsx)("span",{children:d("calls.cost")})]}),a.map(a=>{let b=a.snapshot.fixed;if("assistant"!==b.type)return null;let c="assistant"===a.summary.type?a.summary.model:null,e=b.usage;return(0,A.jsxs)("div",{className:xN().row,children:[(0,A.jsxs)("span",{className:"flex min-w-0 items-center gap-1",children:[(0,A.jsxs)("span",{className:"min-w-0 truncate",title:c?`${c.modelId} \xb7 ${c.provider}`:void 0,children:[c?.modelId||d("calls.unknownModel"),c?.provider?(0,A.jsxs)("span",{className:"text-muted-foreground",children:[" \xb7 ",c.provider]}):null]}),"error"===b.status||"aborted"===b.status?(0,A.jsx)("span",{className:"shrink-0 text-destructive",children:d(`calls.${b.status}`)}):null]}),(0,A.jsx)("span",{children:qF(e.inputTokens)}),(0,A.jsx)("span",{children:qF(e.outputTokens)}),(0,A.jsx)("span",{children:qF(e.cacheReadTokens)}),(0,A.jsx)("span",{children:qG(e.costUsd)})]},a.durable.location.entryId)})]})}):null]})]})}function xP({nestedCalls:a}){let{t:b}=(0,Q.Bd)("conversation");return(0,A.jsxs)("section",{className:"border-t px-3 py-3 text-sm",children:[(0,A.jsx)("h4",{className:"mb-2 font-medium",children:b(a.complete?"nestedCalls":"nestedCallsIncomplete")}),(0,A.jsx)("ol",{className:"max-h-[min(24rem,45dvh)] space-y-2 overflow-auto",children:a.calls.map((a,c)=>(0,A.jsxs)("li",{className:"border-b pb-2 last:border-0 last:pb-0",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-1",children:[(0,A.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground",children:c+1}),(0,A.jsx)("span",{className:"min-w-0 break-words font-mono font-medium",children:a.name}),(0,A.jsx)("span",{className:"error"===a.status?"text-xs text-destructive":"text-xs text-muted-foreground",children:b(`nestedStatus.${a.status}`)}),void 0===a.durationMs?null:(0,A.jsxs)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground",children:[a.durationMs," ms"]})]}),a.arguments?(0,A.jsxs)("details",{className:"mt-1",children:[(0,A.jsx)("summary",{className:"min-h-7 cursor-pointer text-xs text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring",children:b("nestedArguments")}),(0,A.jsx)("pre",{className:"max-h-48 overflow-auto whitespace-pre-wrap break-words py-2 font-mono text-sm",children:JSON.stringify(a.arguments,null,2)})]}):null,void 0===a.argumentsBytes?null:(0,A.jsx)("p",{className:"mt-1 text-xs tabular-nums text-muted-foreground",children:b("nestedArgumentsBytes",{count:a.argumentsBytes})}),a.error?(0,A.jsx)("p",{className:"mt-1 whitespace-pre-wrap break-words text-destructive",children:a.error}):null]},c))})]})}function xQ({plugin:a}){let{t:b}=(0,Q.Bd)("conversation"),{locale:c}=(0,cu.i)();return(0,A.jsxs)("div",{className:"min-w-0 space-y-1 py-2 first:pt-0 last:pb-0",role:"listitem",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1",children:[(0,A.jsx)("span",{className:"min-w-0 font-medium [overflow-wrap:anywhere]",children:a.name}),(0,A.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:a.version??b("pidesk.unknownVersion")}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:b(`pidesk.status.${a.status}`)})]}),(0,A.jsxs)("p",{className:"text-xs text-muted-foreground [overflow-wrap:anywhere]",children:[b(`pidesk.kind.${a.kind}`)," \xb7 ",(0,A.jsx)("span",{className:"font-mono",children:a.source})]}),a.updateTag||a.availableVersion?(0,A.jsxs)("p",{className:"flex flex-wrap gap-x-3 text-xs text-muted-foreground [overflow-wrap:anywhere]",children:[a.updateTag?(0,A.jsx)("span",{children:b("pidesk.updateChannel",{tag:a.updateTag})}):null,a.availableVersion?(0,A.jsx)("span",{children:b("pidesk.targetVersion",{version:a.availableVersion})}):null]}):null,a.updateError?(0,A.jsx)("p",{className:"text-destructive [overflow-wrap:anywhere]",children:a.updateError}):null,a.operation?(0,A.jsxs)("p",{className:"[overflow-wrap:anywhere]",children:[b(`pidesk.action.${a.operation.action}`)," \xb7 ",b(`pidesk.phase.${a.operation.phase}`),a.operation.message?` \xb7 ${a.operation.message}`:""]}):null,a.error?(0,A.jsxs)("p",{className:"text-destructive [overflow-wrap:anywhere]",children:[b(`pidesk.errorPhase.${a.error.phase}`)," \xb7 ",(0,ct.fD)(a.error.message,c)]}):null]})}function xR({result:a}){let{t:b}=(0,Q.Bd)("conversation"),{locale:c}=(0,cu.i)();return"info"===a.kind?(0,A.jsx)("dl",{className:"grid grid-cols-[max-content_minmax(0,1fr)] gap-x-4 gap-y-2",children:Object.entries(a.data).map(([a,c])=>(0,A.jsxs)("div",{className:"contents",children:[(0,A.jsx)("dt",{className:"text-muted-foreground",children:b(`pidesk.info.${a}`)}),(0,A.jsx)("dd",{className:"min-w-0 [overflow-wrap:anywhere]",children:"environment"===a?b(`pidesk.environment.${c}`):"mode"===a?b(`pidesk.mode.${c}`):(0,A.jsx)("span",{className:"font-mono",children:c})})]},a))}):"plugin"===a.kind?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{role:"list",children:(0,A.jsx)(xQ,{plugin:a.data})}),(0,A.jsx)("p",{className:"mt-3 mb-2 font-medium",children:b("pidesk.pluginDetail")}),(0,A.jsx)("pre",{className:"whitespace-pre-wrap break-words font-mono leading-relaxed",children:JSON.stringify(a.data.detail,null,2)})]}):(0,A.jsxs)(A.Fragment,{children:[a.data.restartRequired?(0,A.jsx)("p",{className:"mb-2",children:b("pidesk.restartRequired")}):null,a.data.loadError?(0,A.jsx)("p",{className:"mb-2 text-destructive [overflow-wrap:anywhere]",children:(0,ct.fD)(a.data.loadError,c)}):null,a.data.plugins.length>0?(0,A.jsx)("div",{className:"divide-y divide-border",role:"list",children:a.data.plugins.map((a,b)=>(0,A.jsx)(xQ,{plugin:a},`${a.source}:${b}`))}):(0,A.jsx)("p",{className:"text-muted-foreground",children:b("pidesk.noPlugins")})]})}function xS({identity:a,command:b,output:c,expandable:d,open:e,loading:f,error:g,onOpenChange:h,commandAction:i,outputAction:j}){let{t:k}=(0,Q.Bd)("conversation"),l=b.label?[k(b.label),b.name,b.version].filter(Boolean).join(" \xb7 "):b.command,m=null===c?null:function(a,b){let c;if(!["pideskListPlugins","pideskShowPlugin","pideskInfo"].includes(a??""))return null;try{c=JSON.parse(b)}catch{return null}switch(a){case"pideskListPlugins":{let a=qs.safeParse(c);return a.success?{kind:"plugins",data:a.data}:null}case"pideskShowPlugin":{let a=qt.safeParse(c);return a.success?{kind:"plugin",data:a.data}:null}case"pideskInfo":{let a=qu.safeParse(c);return a.success?{kind:"info",data:a.data}:null}default:return null}}(b.label,c);return(0,A.jsxs)(co.Nt,{open:d&&e,onOpenChange:h,className:"w-full min-w-0 overflow-hidden rounded-lg border border-border bg-card text-sm leading-relaxed","data-message-id":a,"data-chat-scroll-anchor":`${a}:tool`,children:[(0,A.jsxs)(co.R6,{disabled:!d,"aria-label":d?k(e?"collapseTool":"expandTool",{name:l}):l,className:(0,W.cn)("flex min-h-9 w-full min-w-0 items-center gap-2 px-3 py-1.5 text-left",d&&"cursor-pointer hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"),children:[(0,A.jsx)(kp,{className:"size-4 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,A.jsx)("span",{className:(0,W.cn)("min-w-0 flex-1 truncate font-medium",!b.label&&"font-mono"),title:l,children:l}),d?(0,A.jsx)(cn.A,{className:(0,W.cn)("size-4 shrink-0 text-muted-foreground transition-transform",e&&"rotate-180"),"aria-hidden":"true"}):null]}),(0,A.jsx)(co.Ke,{className:"h-[var(--collapsible-panel-height)] overflow-hidden transition-[height,opacity] duration-200 ease-out data-starting-style:h-0 data-starting-style:opacity-0 data-ending-style:h-0 data-ending-style:opacity-0 motion-reduce:transition-none",children:(0,A.jsxs)("div",{className:"border-t",children:[(0,A.jsxs)("section",{className:"border-b px-3 py-2","aria-label":k("pidesk.command"),children:[(0,A.jsxs)("div",{className:"mb-1 flex min-h-7 items-center justify-between gap-2",children:[(0,A.jsx)("h4",{className:"font-medium text-muted-foreground",children:k("pidesk.command")}),i]}),(0,A.jsx)("pre",{className:"whitespace-pre-wrap break-words font-mono leading-relaxed",children:b.command})]}),(0,A.jsxs)("section",{"aria-label":k("pidesk.output"),children:[(0,A.jsxs)("div",{className:"flex min-h-9 items-center justify-between gap-2 px-3 pt-2",children:[(0,A.jsx)("h4",{className:"font-medium text-muted-foreground",children:k("pidesk.output")}),j]}),(0,A.jsx)("div",{className:"max-h-[min(24rem,50dvh)] overflow-auto px-3 pt-1 pb-3",role:"region","aria-label":k("pidesk.output"),tabIndex:0,children:f?(0,A.jsx)("p",{className:"text-muted-foreground",children:k("loadingResult")}):g?(0,A.jsx)("p",{className:"text-destructive [overflow-wrap:anywhere]",children:g}):c?m?(0,A.jsx)(xR,{result:m}):(0,A.jsx)("pre",{className:"whitespace-pre-wrap break-words font-mono leading-relaxed",children:c}):(0,A.jsx)("p",{className:"text-muted-foreground",children:k("pidesk.empty")})})]})]})})]})}var xT=c(11113),xU=c.n(xT);let xV="max-h-[min(20rem,45dvh)] overflow-auto [scrollbar-gutter:stable]",xW=(0,B.createContext)(()=>void 0),xX=(0,B.createContext)(null),xY=(0,B.createContext)(null),xZ="h-[var(--collapsible-panel-height)] overflow-hidden transition-[height,opacity] duration-200 ease-out data-starting-style:h-0 data-starting-style:opacity-0 data-ending-style:h-0 data-ending-style:opacity-0 motion-reduce:transition-none";function x$({children:a}){let{isAtBottom:b,stopScroll:c}=pN(),d=(0,B.useRef)(b),e=(0,B.useRef)(c),f=(0,B.useCallback)(()=>{d.current&&e.current()},[]);return(0,A.jsx)(xW.Provider,{value:f,children:a})}function x_(a,b){let{t:c}=(0,Q.Bd)("conversation"),[d,e]=(0,B.useState)(!1),[f,g]=(0,B.useState)(null),h=(0,B.useCallback)(async()=>{if(!a.temporary&&a.durable&&a.snapshot.fixed.hasDetail&&void 0===a.detail&&!d){e(!0),g(null);try{await b(a)}catch(a){g(a instanceof Error?a.message:c("detailFailed"))}finally{e(!1)}}},[d,a,b,c]);return{loading:d,error:f,load:h}}function x0(a,b){let[c,d]=(0,B.useState)(!1),e=(0,B.useContext)(xW),{loading:f,error:g,load:h}=x_(a,b),i=!a.temporary&&(a.summary.hasDetail||"tool"===a.summary.type&&!!a.summary.images?.length);return{open:c,expandable:i,loading:f,error:g,handleOpenChange:a=>{i&&(a&&(e(),h()),d(a))}}}function x1({timestampMs:a}){let{locale:b,timeZone:c}=(0,cu.i)(),d=qH(a,void 0,b,c);return(0,A.jsx)("time",{dateTime:new Date(a).toISOString(),title:d.full,className:"shrink-0",children:d.compact})}function x2({text:a,copyLabel:b,alwaysVisible:c=!1}){let{t:d}=(0,Q.Bd)("conversation"),e=(0,bG.G)(),[f,g]=(0,B.useState)(!1),h=(0,B.useRef)(null),i=(0,B.useCallback)(async()=>{let b=!1;try{b=await (0,cV.x)(a)}catch{b=!1}b?(g(!0),null!==h.current&&window.clearTimeout(h.current),h.current=window.setTimeout(()=>{h.current=null,g(!1)},1500)):e.error(d("messageCopyFailed"))},[a,e,d]);if(!a.trim())return null;let j=f?d("copied"):b??d("copyMessage");return(0,A.jsx)(is,{tooltip:j,label:j,size:"icon-sm",className:(0,W.cn)(!c&&xU().messageCopyAction,"text-muted-foreground"),onClick:()=>void i(),children:f?(0,A.jsx)(bp.A,{className:"size-3.5"}):(0,A.jsx)(bI.A,{className:"size-3.5"})})}function x3({usage:a,compactOnly:b=!1}){let{t:c}=(0,Q.Bd)("conversation"),d=qF(a.inputTokens),e=qF(a.outputTokens),f=qF(a.cacheReadTokens),g=qG(a.costUsd),h=c("usage",{input:d,output:e,cached:f,cost:g}),i=`${d}/${e}/${f}/${g}`;return b?(0,A.jsx)("span",{className:"shrink-0 font-mono text-xs tabular-nums text-muted-foreground",title:h,"aria-label":h,children:i}):(0,A.jsxs)("span",{className:"min-w-0",children:[(0,A.jsx)("span",{className:xU().usageLabeled,children:h}),(0,A.jsx)("span",{className:xU().usageCompact,children:i})]})}function x4({message:a}){if("assistant"!==a.summary.type||null===a.timestampMs)return null;let b="running"!==a.summary.status?a.summary.text:null;return(0,A.jsxs)(iv,{className:(0,W.cn)(xU().usageToolbar,"mt-1 flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground"),children:[a.usageCalls?.length?(0,A.jsx)(xO,{messages:a.usageCalls,incomplete:a.usageIncomplete??!1,children:(0,A.jsx)(x3,{usage:a.summary.usage})},a.durable.location.entryId):(0,A.jsx)(x3,{usage:a.summary.usage}),(0,A.jsxs)("div",{className:"ml-auto flex shrink-0 items-center gap-1",children:[null===b?null:(0,A.jsx)(x2,{text:b}),null===a.timestampMs?null:(0,A.jsx)(x1,{timestampMs:a.timestampMs})]})]})}function x5({message:a,onAcquireImage:b}){let{t:c}=(0,Q.Bd)("conversation"),d="user"===a.summary.type||"tool"===a.summary.type?a.summary.images??[]:[],e=d.length;(0,B.useRef)(a);let[f,g]=(0,B.useState)(()=>Array.from({length:e},()=>({status:"loading"}))),[h,i]=(0,B.useState)(null),[j,k]=(0,B.useState)(0);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{className:"mb-2 grid grid-cols-2 gap-2 sm:grid-cols-3",children:d.map((a,b)=>{let e=f[b];return e?.status==="error"?(0,A.jsxs)("button",{type:"button",className:"flex aspect-square min-h-20 cursor-pointer flex-col items-center justify-center gap-2 rounded-md border bg-muted px-2 text-center text-xs text-muted-foreground hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",onClick:()=>{i(null),g(a=>a.map(a=>"error"===a.status?{status:"loading"}:a)),k(a=>a+1)},children:[(0,A.jsx)("span",{children:c("imageUnavailable")}),(0,A.jsx)("span",{className:"text-sm font-medium text-foreground",children:c("retry",{ns:"common"})})]},`${b}:${a.width}:${a.height}`):e?.status!=="ready"?(0,A.jsx)("div",{className:"grid aspect-square min-h-20 place-items-center rounded-md border bg-muted px-2 text-center text-xs text-muted-foreground",children:c("imageLoading")},`${b}:${a.width}:${a.height}`):(0,A.jsx)("button",{type:"button",className:"group block aspect-square w-full cursor-zoom-in overflow-hidden rounded-md border bg-muted outline-none focus-visible:ring-2 focus-visible:ring-ring",onClick:()=>{let a,e;return a=[],e=-1,void(f.forEach((f,g)=>{if("ready"!==f.status)return;g===b&&(e=a.length);let h=d[g];a.push({src:f.url,alt:c("chatImage",{count:g+1}),width:h.width,height:h.height})}),e>=0&&i({slides:a,index:e}))},"aria-label":c("previewImageNumber",{count:b+1}),children:(0,A.jsx)("img",{src:e.url,alt:c("chatImage",{count:b+1}),className:"aspect-square size-full object-cover transition-transform duration-200 group-hover:scale-[1.02] motion-reduce:transition-none"})},`${b}:${a.width}:${a.height}`)})}),h?(0,A.jsx)(jW.k,{mode:"modal",open:!0,slides:h.slides,index:h.index,ariaLabel:c("chatImagePreview"),onClose:()=>i(null),onIndexChange:a=>i(b=>b?{...b,index:a}:b)}):null]})}function x6({text:a}){let{t:b}=(0,Q.Bd)("conversation"),c=(0,B.useRef)(null),[d,e]=(0,B.useState)(!1),[f,g]=(0,B.useState)(null),h=(0,B.useContext)(xW),i=(0,B.useCallback)(()=>{d||h(),e(a=>!a)},[h,d]);return(0,A.jsxs)("div",{className:"min-w-0",children:[(0,A.jsxs)("div",{className:(0,W.cn)("relative",!d&&!1!==f&&xU().userTextCollapsed),children:[(0,A.jsx)("p",{ref:c,className:"whitespace-pre-wrap break-words",children:a}),f&&!d?(0,A.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-secondary to-transparent","aria-hidden":"true"}):null]}),f?(0,A.jsxs)("button",{type:"button","aria-expanded":d,onClick:i,className:"-mb-1 ml-auto mt-1 flex min-h-7 cursor-pointer items-center gap-1 rounded-md px-1 text-xs font-medium text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[b(d?"collapse":"expand"),(0,A.jsx)(cn.A,{className:(0,W.cn)("size-3.5 transition-transform",d&&"rotate-180"),"aria-hidden":"true"})]}):null]})}function x7({message:a,onAcquireImage:b}){if("user"!==a.summary.type)throw Error("UserMessage requires a user summary");return(0,A.jsxs)(iq,{from:"user","data-message-id":a.identity,"data-chat-scroll-anchor":`${a.identity}:user`,"data-chat-user-message":"",className:(0,W.cn)(xU().copyableMessage,"max-w-[92%] sm:max-w-[84%]"),children:[(0,A.jsxs)(ir,{className:(0,W.cn)(xU().userText,"group-[.is-user]:px-3 group-[.is-user]:py-2"),children:[a.summary.images.length>0?(0,A.jsx)(x5,{message:a,onAcquireImage:b},`${a.tempId}:${a.durable?.location.entryId??"temporary"}`):null,a.summary.text?(0,A.jsx)(x6,{text:a.summary.text}):null]}),null===a.timestampMs?null:(0,A.jsxs)(iv,{className:"mt-0 justify-end gap-1 text-xs text-muted-foreground",children:[(0,A.jsx)(x2,{text:a.summary.text}),(0,A.jsx)(x1,{timestampMs:a.timestampMs})]})]})}function x8({message:a,text:b}){let c=a.temporary&&"assistant"===a.summary.type&&"running"===a.summary.status;return(0,A.jsxs)(iq,{from:"assistant","data-message-id":a.identity,"data-chat-scroll-anchor":`${a.identity}:text`,className:(0,W.cn)(xU().copyableMessage,"max-w-full gap-1"),children:[(0,A.jsx)(ir,{className:"w-full",children:(0,A.jsx)(kE,{isAnimating:c,mode:c?"streaming":"static",children:b})}),(0,A.jsx)(x4,{message:a})]})}function x9(){let{t:a}=(0,Q.Bd)("conversation");return(0,A.jsxs)("div",{role:"status",className:(0,W.cn)(xU().detailText,"flex min-h-9 w-full items-center gap-2 py-1 text-muted-foreground"),children:[(0,A.jsx)(q3,{className:"size-4","aria-hidden":"true"}),(0,A.jsx)(xF,{as:"span",duration:1,children:a("thinking")})]})}function ya({content:a,streaming:b}){let{t:c}=(0,Q.Bd)("conversation"),{scrollRef:d,contentRef:e}=pG({initial:!!b&&"instant",resize:"instant"}),f=a.length>5e3,g=a.slice(-5e3);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{ref:d,className:"max-h-56 overflow-y-auto pb-2 pr-2 [scrollbar-gutter:stable] sm:max-h-72",children:(0,A.jsx)("div",{ref:e,children:(0,A.jsx)(kE,{isAnimating:b,mode:b?"streaming":"static",children:g},f?a.length:void 0)})}),f?(0,A.jsxs)("div",{className:"flex items-center justify-between gap-2 pt-1",children:[(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:c("thinkingTruncated",{count:5e3})}),(0,A.jsx)(x2,{text:a,copyLabel:c("copyThinking"),alwaysVisible:!0})]}):null]})}function yb({message:a,detailLoad:b}){let{t:c}=(0,Q.Bd)("conversation");if("assistant"!==a.summary.type)return null;let{loading:d,error:e,load:f}=b,g=void 0!==a.detail,h=a.detail?.type==="assistant"?a.detail:null,i=h?.thinking??"",j=i.trim().length>0,k=j&&a.temporary&&"running"===a.summary.status&&0===a.summary.text.trim().length;if(!(j||!g&&a.summary.hasDetail))return null;let l=i||(d?c("thinkingLoading"):e??c("thinkingUnavailable"));return(0,A.jsxs)(xH,{className:"mb-0 w-full",isStreaming:k,onOpenChange:a=>{a&&f()},children:[(0,A.jsx)(xJ,{className:(0,W.cn)(xU().detailText,"min-h-9 justify-start py-1"),getThinkingMessage:a=>a?(0,A.jsx)(xF,{as:"span",duration:1,children:c("thinking")}):(0,A.jsx)("span",{children:c("thinkingProcess")})}),(0,A.jsx)(co.Ke,{className:(0,W.cn)(xZ,"text-sm leading-6 text-muted-foreground outline-none"),children:(0,A.jsx)("div",{className:"pt-2",children:(0,A.jsx)("div",{className:"border-l pl-4",children:(0,A.jsx)(ya,{content:l,streaming:k})})})})]})}function yc({message:a}){let{t:b}=(0,Q.Bd)("conversation"),{locale:c}=(0,cu.i)();if("assistant"!==a.summary.type)return null;let d=function(a,b){let c=a?.trim();if(!c)return null;switch(c.toLowerCase()){case"terminated":return kx.W[b].streamInterrupted;case"request timed out":case"request timed out.":return kx.W[b].requestTimedOut;default:return a}}(a.summary.errorMessage,c)??("error"===a.summary.status?b("modelFailed"):null);return d?(0,A.jsx)("pre",{className:(0,W.cn)(xU().toolOutput,"whitespace-pre-wrap break-words rounded-lg border border-destructive/40 bg-muted p-3 font-sans text-destructive"),children:d}):null}function yd({item:a,onLoadDetail:b}){let{message:c,hideAssistantText:d}=a,e=x_(c,b);if("assistant"!==c.summary.type)throw Error("AssistantProcessItem requires an assistant summary");return(0,A.jsxs)("div",{className:"space-y-2","data-message-id":c.identity,"data-chat-scroll-anchor":`${c.identity}:process`,children:[(0,A.jsx)(yb,{message:c,detailLoad:e}),d||!c.summary.text.trim()?null:(0,A.jsx)(x8,{message:c,text:c.summary.text}),(0,A.jsx)(yc,{message:c})]})}function ye({name:a,filePath:b,className:c}){let d=a.toLowerCase().split(".").at(-1)??a.toLowerCase(),e={className:c};switch(d){case"read":return b?(0,A.jsx)(rm,{path:b,...e}):(0,A.jsx)(j$.A,{...e});case"write":return(0,A.jsx)(q4,{...e});case"edit":return(0,A.jsx)(q5,{...e});case"bash":return(0,A.jsx)(T,{...e});case"grep":case"find":return(0,A.jsx)(bV.A,{...e});case"ls":return(0,A.jsx)(cd.A,{...e});case"agent":case"agent_resume":return(0,A.jsx)(ce,{...e});default:return(0,A.jsx)(cf,{...e})}}function yf(a){let b=a.replaceAll("\\","/");return"/"===b||/^[A-Za-z]:\/$/.test(b)?b:b.replace(/\/+$/,"")}function yg({status:a,timing:b}){let c=b&&"startedAtMs"in b?b.startedAtMs:null,d=b&&"durationMs"in b?b.durationMs:null,[e,f]=(0,B.useState)(()=>Date.now()),g=d??(null===c?null:Math.max(0,e-c));return null===g?null:(0,A.jsx)(A.Fragment,{children:function(a){let b=Math.max(0,Math.floor(a/1e3)),c=b%60,d=Math.floor(b/60);if(0===d)return`${c}s`;let e=d%60,f=Math.floor(d/60);return 0===f?`${e}m ${c}s`:`${f}h ${e}m ${c}s`}(g)})}function yh({message:a,onLoadDetail:b,previewPath:c,onPreviewFile:d,renderDetail:e}){let{t:f}=(0,Q.Bd)("conversation");if("tool"!==a.summary.type&&"bash"!==a.summary.type)throw Error("ToolCardShell requires a tool or bash summary");let g=(0,B.useContext)(xX),h=(0,B.useContext)(xY),i=!a.temporary&&"tool"===a.summary.type&&!!a.summary.images?.length,{open:j,expandable:k,loading:l,error:m,handleOpenChange:n}=x0(a,b),{name:o,reasoning:p,inputPreview:q,activity:r,usage:s}="tool"===a.summary.type?{name:a.summary.name,reasoning:a.summary.reasoning,inputPreview:a.summary.inputPreview,activity:a.summary.activity,usage:a.summary.usage}:{name:"bash",reasoning:null,inputPreview:a.summary.command,activity:null,usage:null},t="tool"===a.summary.type&&"bash"===a.summary.kind?a.summary:null,u="error"===a.summary.status,v=!a.temporary&&null!==c&&void 0!==d,w=c?function(a,b){let{compactPath:c,fullPath:d}=function(a,b){let c=yf(a);if(!b)return{compactPath:c,fullPath:c};let d=yf(b);if(!(c.startsWith("/")||/^[A-Za-z]:\//.test(c))){let a=c.replace(/^(?:\.\/)+/,""),b=d.endsWith("/")?d:`${d}/`;return{compactPath:a,fullPath:`${b}${a}`}}let e=d.endsWith("/")?d:`${d}/`,f=/^[A-Za-z]:\//.test(c)&&/^[A-Za-z]:\//.test(d),g=f?c.toLowerCase():c,h=f?e.toLowerCase():e;return g.startsWith(h)?{compactPath:c.slice(e.length),fullPath:c}:{compactPath:c,fullPath:c}}(a,b),e=c.match(/^[A-Za-z]:\//)?.[0]??null??(c.startsWith("/")?"/":""),f=c.slice(e.length).split("/").filter(Boolean),g=f.pop()??c,h=g.lastIndexOf("."),i=f.length>2?`…/${f.slice(-2).join("/")}`:`${e}${f.join("/")}`;return{fileStem:h>0?g.slice(0,h):g,fileExtension:h>0?g.slice(h):"",directory:i||null,fullPath:d}}(c,g):null;return(0,A.jsxs)(co.Nt,{open:k&&j,onOpenChange:n,className:(0,W.cn)(xU().detailText,"w-full overflow-hidden rounded-lg border bg-muted/45 dark:bg-card",u?"border-destructive":"border-border"),"data-message-id":a.identity,"data-chat-scroll-anchor":`${a.identity}:tool`,children:[(0,A.jsxs)("div",{className:"relative",children:[(0,A.jsxs)(co.R6,{disabled:!k,className:(0,W.cn)("relative grid min-h-14 w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-x-2 px-3 py-1.5 text-left",k&&"cursor-pointer hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"),"aria-label":f(k?j?"collapseTool":"expandTool":"tool",{name:o}),children:[(0,A.jsx)(ye,{name:o,filePath:c,className:"col-start-1 row-start-1 size-4 text-muted-foreground"}),(0,A.jsxs)("span",{className:"col-start-2 row-start-1 flex min-h-7 min-w-0 items-center gap-2",children:[(0,A.jsx)("span",{className:"shrink-0 font-mono font-medium",children:o}),p?(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate text-foreground",children:p}):null,s?(0,A.jsx)(x3,{usage:s,compactOnly:!0}):null]}),(0,A.jsxs)("span",{className:"col-start-3 row-start-1 flex min-h-7 items-center justify-end gap-2",children:[v?(0,A.jsx)("span",{className:"size-7","aria-hidden":"true"}):null,k?(0,A.jsx)("span",{className:"flex size-7 items-center justify-center","aria-hidden":"true",children:(0,A.jsx)(cn.A,{"data-tool-disclosure":"",className:(0,W.cn)("size-4 text-muted-foreground transition-transform",j&&"rotate-180")})}):null]}),w?(0,A.jsxs)("span",{className:(0,W.cn)(xU().toolFilePath,"col-start-2 row-start-2 flex min-w-0 items-baseline overflow-hidden font-mono text-xs"),title:w.fullPath,children:[(0,A.jsxs)("span",{className:"flex min-w-0 max-w-full shrink-0 items-baseline text-foreground",children:[(0,A.jsx)("span",{className:"min-w-0 truncate",children:w.fileStem}),(0,A.jsx)("span",{className:"shrink-0",children:w.fileExtension})]}),w.directory?(0,A.jsxs)("span",{className:(0,W.cn)(xU().toolFileDirectory,"min-w-0 truncate text-muted-foreground"),children:["\xa0\xb7\xa0",w.directory]}):null]}):q?(0,A.jsx)("span",{className:"col-start-2 row-start-2 truncate font-mono text-xs text-muted-foreground",children:q}):null,t?.timing?(0,A.jsx)("span",{className:"col-start-3 row-start-2 text-right font-mono text-xs tabular-nums whitespace-nowrap text-muted-foreground",children:(0,A.jsx)(yg,{status:t.status,timing:t.timing})}):r?(0,A.jsx)("span",{className:"col-start-3 row-start-2 max-w-36 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",title:r,children:r}):null]}),v?(0,A.jsx)("button",{type:"button",title:f("previewFile"),"aria-label":f("previewFilePath",{path:c}),onClick:()=>d(c),className:(0,W.cn)("absolute top-1.5 flex size-7 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",k?"right-12":"right-3"),children:(0,A.jsx)(q6,{className:"size-4","aria-hidden":"true"})}):null]}),(0,A.jsx)(co.Ke,{className:xZ,children:(0,A.jsxs)("div",{className:"border-t",children:[w?(0,A.jsx)("p",{className:"border-b px-3 py-2 font-mono text-xs text-muted-foreground [overflow-wrap:anywhere]",children:w.fullPath}):null,j&&i&&h?(0,A.jsx)("div",{className:"px-3 pt-3",children:(0,A.jsx)(x5,{message:a,onAcquireImage:h})}):null,e({loading:l,error:m})]})})]})}function yi({children:a,destructive:b=!1}){return(0,A.jsx)("p",{className:(0,W.cn)(xU().detailText,"px-3 py-3",b?"text-destructive":"text-muted-foreground"),children:a})}function yj({message:a,loading:b,error:c}){let{t:d}=(0,Q.Bd)("conversation"),e=a.detail?.type==="bash"||a.detail?.type==="tool"&&("generic"===a.detail.kind||"bash"===a.detail.kind||"codemode"===a.detail.kind)?a.detail:null,f=e?.output??"";return b?(0,A.jsx)(yi,{children:d("loadingResult")}):c?(0,A.jsx)(yi,{destructive:!0,children:c}):f?(0,A.jsx)("pre",{role:"region","aria-label":d("toolOutput"),tabIndex:0,className:(0,W.cn)(xV,xU().toolOutput,"whitespace-pre-wrap break-words px-3 py-3 font-mono"),children:f}):"tool"===a.summary.type&&a.summary.images?.length?(0,A.jsx)(A.Fragment,{}):(0,A.jsx)(yi,{children:d("emptyResult")})}function yk({message:a,loading:b,error:c}){let{t:d}=(0,Q.Bd)("conversation"),e=a.detail?.type==="tool"&&"read"===a.detail.kind?a.detail:null;return b?(0,A.jsx)(yi,{children:d("loadingRead")}):c?(0,A.jsx)(yi,{destructive:!0,children:c}):e?e.content?(0,A.jsx)("pre",{role:"region","aria-label":d("readContent"),tabIndex:0,className:(0,W.cn)(xV,xU().toolOutput,xU().toolCode,"px-3 py-3 font-mono"),children:e.content}):(0,A.jsx)(yi,{children:d("readEmpty")}):"tool"===a.summary.type&&a.summary.images?.length?(0,A.jsx)(A.Fragment,{}):(0,A.jsx)(yi,{children:d("readUnavailable")})}function yl({content:a}){let{t:b}=(0,Q.Bd)("conversation");return(0,A.jsx)("div",{role:"region","aria-label":b("editDiff"),tabIndex:0,className:(0,W.cn)(xV,xU().toolOutput,"font-mono"),children:a.split("\n").map((a,b)=>{let c=a.startsWith("+")?"bg-emerald-500/10 text-emerald-800 dark:text-emerald-200":a.startsWith("-")?"bg-red-500/10 text-red-800 dark:text-red-200":a.trimEnd().endsWith("...")?"bg-muted/40 text-muted-foreground":"text-foreground";return(0,A.jsx)("span",{className:(0,W.cn)(xU().toolCode,xU().toolCodeLine,"block px-3",c),children:a||" "},b)})})}function ym({message:a,loading:b,error:c}){let{t:d}=(0,Q.Bd)("conversation"),e=a.detail?.type==="tool"&&"edit"===a.detail.kind?a.detail:null;return b?(0,A.jsx)(yi,{children:d("loadingDiff")}):c?(0,A.jsx)(yi,{destructive:!0,children:c}):e?"diff"===e.contentKind?(0,A.jsx)(yl,{content:e.content}):(0,A.jsx)("pre",{role:"region","aria-label":d("editResult"),tabIndex:0,className:(0,W.cn)(xV,xU().toolOutput,"whitespace-pre-wrap break-words px-3 py-3 font-mono","tool"===a.summary.type&&"error"===a.summary.status&&"text-destructive"),children:e.content}):(0,A.jsx)(yi,{children:d("diffUnavailable")})}function yn({message:a,loading:b,error:c}){let{t:d}=(0,Q.Bd)("conversation"),e=a.detail?.type==="tool"&&"write"===a.detail.kind?a.detail:null;return b?(0,A.jsx)(yi,{children:d("loadingWrite")}):c?(0,A.jsx)(yi,{destructive:!0,children:c}):e?"content"!==e.contentKind||e.content?(0,A.jsx)("pre",{role:"region","aria-label":d("content"===e.contentKind?"writeContent":"writeResult"),tabIndex:0,className:(0,W.cn)(xV,xU().toolOutput,"px-3 py-3 font-mono","content"===e.contentKind?xU().toolCode:"whitespace-pre-wrap break-words","output"===e.contentKind&&"tool"===a.summary.type&&"error"===a.summary.status&&"text-destructive"),children:e.content}):(0,A.jsx)(yi,{children:d("writeEmpty")}):(0,A.jsx)(yi,{children:d("writeUnavailable")})}function yo({message:a,onLoadDetail:b}){let{t:c}=(0,Q.Bd)("conversation"),{open:d,expandable:e,loading:f,error:g,handleOpenChange:h}=x0(a,b);if("tool"!==a.summary.type||"pidesk"!==a.summary.kind)throw Error("PiDeskToolView requires a pidesk summary");let i=function(a){let b=a.args,c={command:0===Object.keys(a).length?"pidesk":`pidesk ${JSON.stringify(a)}`,label:null,name:null,version:null};if(1!==Object.keys(a).length||!Array.isArray(b)||b.length>32||!b.every(a=>"string"==typeof a))return c;c.command=["pidesk",...b.map(qq)].join(" ");let d=b.some(a=>/\s/.test(a))?"":b.join(" ");if(0===b.length||["--help","-h","plugins","session","plugins --help","plugins -h","session --help","session -h"].includes(d))return{...c,label:qn};if("--version"===d)return{...c,label:"pideskVersion"};if("info"===d)return{...c,label:"pideskInfo"};if("session reload"===d)return{...c,label:"pideskReload"};if(3===b.length&&["--help","-h"].includes(b[2])&&("plugins"===b[0]&&["list","show","install","remove"].includes(b[1])||"session"===b[0]&&"reload"===b[1]))return{...c,label:qn};let e=b[1];if("plugins"!==b[0]||!e||!["list","show","install","remove"].includes(e))return c;let f=null,g=[],h=null,i=null,j=!1;for(let a=2;a<b.length;a+=1){let d=b[a];if("--scope"===d&&null===f&&"global"===b[a+1])f=b[++a];else if("--version"===d&&"install"===e&&null===h&&qp.test(b[a+1]??""))h=b[++a];else if("--tag"===d&&["list","install"].includes(e)&&null===i&&(b[a+1]?.length??0)<=128&&/^[a-zA-Z][a-zA-Z0-9._-]*$/.test(b[a+1]??""))i=b[++a];else if("--check-updates"!==d||"list"!==e||j)if(!("list"!==e&&("show"!==e||0===g.length)&&"node_modules"!==d&&qo.test(d)))return c;else g.push(d);else j=!0}if(null!==i&&null!==h||"list"!==e&&(0===g.length||null===f))return c;let k=g.length>0?g.join("、"):null;switch(e){case"list":return{...c,label:"pideskListPlugins"};case"show":return{...c,label:"pideskShowPlugin",name:k};case"install":return{...c,label:"pideskInstallPlugin",name:k,version:h};case"remove":return{...c,label:"pideskRemovePlugin",name:k};default:return c}}(a.summary.input),j=a.detail?.type==="tool"&&"pidesk"===a.detail.kind?a.detail.output:null;return(0,A.jsx)(xS,{identity:a.identity,command:i,output:j,expandable:e,open:d,loading:f,error:g,onOpenChange:h,commandAction:(0,A.jsx)(x2,{text:i.command,copyLabel:c("pidesk.copyCommand"),alwaysVisible:!0}),outputAction:j?(0,A.jsx)(x2,{text:j,copyLabel:c("pidesk.copyOutput"),alwaysVisible:!0}):null})}function yp({message:a,onLoadDetail:b}){return(0,A.jsx)(yh,{message:a,onLoadDetail:b,previewPath:null,renderDetail:b=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(yj,{message:a,...b}),a.detail?.type==="tool"&&"codemode"===a.detail.kind&&a.detail.nestedCalls?(0,A.jsx)(xP,{nestedCalls:a.detail.nestedCalls}):null]})})}function yq({message:a,onLoadDetail:b}){return(0,A.jsx)(yp,{message:a,onLoadDetail:b})}function yr({message:a,onLoadDetail:b,onPreviewFile:c}){if("tool"!==a.summary.type||"read"!==a.summary.kind)throw Error("ReadToolView requires a read summary");return(0,A.jsx)(yh,{message:a,onLoadDetail:b,previewPath:a.summary.path,onPreviewFile:c,renderDetail:b=>(0,A.jsx)(yk,{message:a,...b})})}function ys({message:a,onLoadDetail:b,onPreviewFile:c}){if("tool"!==a.summary.type||"edit"!==a.summary.kind)throw Error("EditToolView requires an edit summary");return(0,A.jsx)(yh,{message:a,onLoadDetail:b,previewPath:a.summary.path,onPreviewFile:c,renderDetail:b=>(0,A.jsx)(ym,{message:a,...b})})}function yt({message:a,onLoadDetail:b,onPreviewFile:c}){if("tool"!==a.summary.type||"write"!==a.summary.kind)throw Error("WriteToolView requires a write summary");return(0,A.jsx)(yh,{message:a,onLoadDetail:b,previewPath:a.summary.path,onPreviewFile:c,renderDetail:b=>(0,A.jsx)(yn,{message:a,...b})})}function yu({message:a}){let{t:b}=(0,Q.Bd)("conversation");if("custom"!==a.summary.type)throw Error("CustomMessage requires a custom summary");return(0,A.jsx)("div",{"data-message-id":a.identity,"data-chat-scroll-anchor":`${a.identity}:custom`,className:(0,W.cn)(xU().toolOutput,"rounded-lg border-l-2 bg-muted px-3 py-2 text-muted-foreground"),children:a.summary.text||b("emptyMessage")})}function yv({message:a,onLoadDetail:b}){let{t:c}=(0,Q.Bd)("conversation");if("compaction"!==a.summary.type)throw Error("CompactionMessage requires a compaction summary");let{open:d,expandable:e,loading:f,error:g,handleOpenChange:h}=x0(a,b),i=a.detail?.type==="compaction"?a.detail:null;return(0,A.jsxs)(co.Nt,{open:e&&d,onOpenChange:h,className:"w-full py-1","data-message-id":a.identity,"data-chat-scroll-anchor":`${a.identity}:compaction`,children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,A.jsx)("span",{className:"h-px min-w-3 flex-1 bg-border/70","aria-hidden":"true"}),(0,A.jsxs)(co.R6,{disabled:!e,"aria-label":e?`${c(d?"collapse":"expand")} ${c("compactionSummary")}`:c(a.temporary?"compactionRunning":"compactionComplete"),className:(0,W.cn)("inline-flex min-h-8 max-w-full items-center gap-2 rounded-full border border-border/70 bg-muted/30 px-3 py-1.5 text-xs font-medium text-muted-foreground outline-none transition-colors",e?"hover:bg-muted/60 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring":"cursor-default"),children:[a.temporary?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin","aria-hidden":"true"}):(0,A.jsx)(q7,{className:"size-3.5","aria-hidden":"true"}),(0,A.jsx)("span",{children:c(a.temporary?"compactionRunning":"compactionComplete")}),e?(0,A.jsx)(cn.A,{className:(0,W.cn)("size-3.5 transition-transform",d&&"rotate-180"),"aria-hidden":"true"}):null]}),(0,A.jsx)("span",{className:"h-px min-w-3 flex-1 bg-border/70","aria-hidden":"true"})]}),(0,A.jsx)(co.Ke,{className:xZ,children:(0,A.jsx)("div",{className:"pt-2",children:(0,A.jsx)("div",{className:"rounded-xl border border-border/70 bg-muted/20 px-3 py-3 sm:px-4",children:(0,A.jsx)("div",{role:"region","aria-label":c("compactionSummaryContent"),tabIndex:0,className:"max-h-80 overflow-y-auto pr-2 [scrollbar-gutter:stable]",children:f?(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:c("compactionLoading")}):g?(0,A.jsx)("p",{className:"text-sm text-destructive",children:g}):i?.text?(0,A.jsx)(kE,{isAnimating:!1,mode:"static",children:i.text}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:c("compactionUnavailable")})})})})})]})}let yw=(0,B.memo)(function({item:a,onLoadDetail:b,onAcquireImage:c,onPreviewFile:d}){let e=(()=>{switch(a.message.summary.type){case"assistant":return(0,A.jsx)(yd,{item:a,onLoadDetail:b});case"tool":switch(a.message.summary.kind){case"pidesk":return(0,A.jsx)(yo,{message:a.message,onLoadDetail:b});case"read":return(0,A.jsx)(yr,{message:a.message,onLoadDetail:b,onPreviewFile:d});case"edit":return(0,A.jsx)(ys,{message:a.message,onLoadDetail:b,onPreviewFile:d});case"write":return(0,A.jsx)(yt,{message:a.message,onLoadDetail:b,onPreviewFile:d});case"bash":case"codemode":case"generic":return(0,A.jsx)(yp,{message:a.message,onLoadDetail:b})}case"bash":return(0,A.jsx)(yq,{message:a.message,onLoadDetail:b});case"custom":return(0,A.jsx)(yu,{message:a.message});case"compaction":return(0,A.jsx)(yv,{message:a.message,onLoadDetail:b});case"user":return(0,A.jsx)(x7,{message:a.message,onAcquireImage:c})}})();return(0,A.jsx)(q2,{message:a.message,loadDetail:b,defaultView:e})},(a,b)=>a.onLoadDetail===b.onLoadDetail&&a.onAcquireImage===b.onAcquireImage&&a.onPreviewFile===b.onPreviewFile&&a.item.hideAssistantText===b.item.hideAssistantText&&yz(a.item.message,b.item.message));function yx({items:a,onLoadDetail:b,onAcquireImage:c,onPreviewFile:d}){let{scrollRef:e}=pN(),f=(0,B.useRef)(null),g=(0,B.useRef)(null);(0,B.useRef)(a.length);let h=(0,B.useRef)(null),[i,j]=(0,B.useState)(()=>Math.min(64,a.length)),k=Math.max(0,a.length-i),l=k>0;return(0,B.useCallback)(()=>{if(!l)return;let b=e.current,c=f.current?.querySelector("[data-chat-process-item]");b&&c?.dataset.chatProcessItem&&(h.current={identity:c.dataset.chatProcessItem,offset:c.getBoundingClientRect().top-b.getBoundingClientRect().top}),j(b=>Math.min(a.length,b+64))},[l,a.length,e]),(0,A.jsxs)("div",{ref:f,children:[l?(0,A.jsx)("div",{ref:g,className:"h-px","data-chat-process-history":!0,"aria-hidden":"true"}):null,a.slice(k).map((e,f)=>{let g=k+f,h=a[g-1],i=h?.message.summary.type==="assistant"&&!h.hideAssistantText&&!!h.message.summary.text.trim();return(0,A.jsx)("div",{"data-chat-process-item":e.message.identity,className:g>0?i?"mt-5":"mt-2":void 0,children:(0,A.jsx)(yw,{item:e,onLoadDetail:b,onAcquireImage:c,onPreviewFile:d})},e.message.identity)})]})}let yy=(0,B.memo)(function({turn:a,onLoadDetail:b,onAcquireImage:c,onPreviewFile:d}){let{t:e}=(0,Q.Bd)("conversation"),[f,g]=(0,B.useState)(!1),h=(0,B.useContext)(xW),i=(0,bF.t4)();(0,bF.So)();let j=a.processItems.filter(a=>!a.hideAssistantText||"pi-desk/assistant"===a.message.viewKey&&null===i.getMessageViewResolution(a.message.viewKey)),k=a.running||f,l=(0,B.useCallback)(b=>{a.running||(b&&h(),g(b))},[h,a.running]);return 0===j.length?null:(0,A.jsxs)(co.Nt,{open:k,onOpenChange:l,className:"w-full",children:[(0,A.jsxs)(co.R6,{className:(0,W.cn)(xU().detailText,"flex min-h-9 w-full cursor-pointer items-center gap-2 py-1 text-left text-muted-foreground hover:text-foreground"),children:[(0,A.jsxs)("span",{className:"flex-1",children:[e("processGroup"),a.toolCount>0?` \xb7 ${e("toolCalls",{count:a.toolCount})}`:""]}),(0,A.jsx)(cn.A,{className:(0,W.cn)("size-4 transition-transform",k&&"rotate-180")})]}),(0,A.jsx)(co.Ke,{className:xZ,children:(0,A.jsx)("div",{className:"pt-2",children:(0,A.jsx)(yx,{items:j,onLoadDetail:b,onAcquireImage:c,onPreviewFile:d})})})]})},(a,b)=>a.onLoadDetail===b.onLoadDetail&&a.onAcquireImage===b.onAcquireImage&&a.onPreviewFile===b.onPreviewFile&&a.turn.running===b.turn.running&&a.turn.toolCount===b.turn.toolCount&&yA(a.turn.processItems,b.turn.processItems));function yz(a,b){return a===b||!!a&&!!b&&a.identity===b.identity&&(a.durable||b.durable?a.durable===b.durable&&a.usageIncomplete===b.usageIncomplete&&(a.usageCalls?.length??0)===(b.usageCalls?.length??0)&&(a.usageCalls??[]).every((a,c)=>a.durable===b.usageCalls?.[c]?.durable):a.tempId===b.tempId&&a.summary===b.summary&&a.detail===b.detail&&a.timestampMs===b.timestampMs)}function yA(a,b){return a===b||a.length===b.length&&a.every((a,c)=>{let d=b[c];return void 0!==d&&a.hideAssistantText===d.hideAssistantText&&yz(a.message,d.message)})}let yB=(0,B.memo)(function({message:a,onLoadDetail:b,onAcquireImage:c}){return(0,A.jsx)(q2,{message:a,loadDetail:b,defaultView:(0,A.jsx)(x7,{message:a,onAcquireImage:c})})},(a,b)=>a.onLoadDetail===b.onLoadDetail&&a.onAcquireImage===b.onAcquireImage&&yz(a.message,b.message)),yC=(0,B.memo)(function({message:a,onLoadDetail:b}){return"assistant"!==a.summary.type?null:(0,A.jsx)(q2,{message:a,loadDetail:b,defaultView:(0,A.jsx)(x8,{message:a,text:a.summary.text})})},(a,b)=>a.onLoadDetail===b.onLoadDetail&&yz(a.message,b.message)),yD=(0,B.memo)(function({turn:a,cwd:b,logicalTail:c=!1,onLoadDetail:d,onAcquireImage:e,onPreviewFile:f}){if(a.compaction)return(0,A.jsx)("section",{className:(0,W.cn)(!a.running&&"pi-desk-chat-turn-contained"),"data-chat-turn":a.identity,"data-chat-logical-tail":c?"":void 0,children:(0,A.jsx)(q2,{message:a.compaction,loadDetail:d,defaultView:(0,A.jsx)(yv,{message:a.compaction,onLoadDetail:d})})});let g=a.running&&0===a.processItems.length&&null===a.finalAssistant;return(0,A.jsxs)("section",{className:(0,W.cn)("space-y-3",!a.running&&"pi-desk-chat-turn-contained"),"data-chat-turn":a.identity,"data-chat-logical-tail":c?"":void 0,children:[a.user?(0,A.jsx)(yB,{message:a.user,onLoadDetail:d,onAcquireImage:e}):null,(0,A.jsx)(xY.Provider,{value:e,children:(0,A.jsx)(xX.Provider,{value:b,children:(0,A.jsx)(yy,{turn:a,onLoadDetail:d,onAcquireImage:e,onPreviewFile:f})})}),g?(0,A.jsx)(x9,{}):null,a.finalAssistant?(0,A.jsx)(yC,{message:a.finalAssistant,onLoadDetail:d}):null]})},(a,b)=>{var c,d;return a.cwd===b.cwd&&a.logicalTail===b.logicalTail&&a.onAcquireImage===b.onAcquireImage&&a.onLoadDetail===b.onLoadDetail&&a.onPreviewFile===b.onPreviewFile&&((c=a.turn)===(d=b.turn)||c.identity===d.identity&&c.running===d.running&&c.toolCount===d.toolCount&&yz(c.user,d.user)&&yz(c.finalAssistant,d.finalAssistant)&&yz(c.compaction,d.compaction)&&yA(c.processItems,d.processItems))});yD.displayName="L3ConversationTurnView";let yE={running:"statusRunning",completed:"statusCompleted",failed:"statusFailed",stopped:"statusStopped",interrupted:"statusInterrupted"};function yF(a,b){let c=Math.max(0,Math.round(((a.endedAt??Date.now())-a.startedAt)/1e3));if(c<60)return b("seconds",c);let d=Math.floor(c/60);if(d<60)return b("minutes",d);let e=Math.floor(d/60);return`${b("hours",e)}${d%60?` ${b("minutes",d%60)}`:""}`}function yG(a){return[a.taskKind,a.taskType].filter(a=>!!a).join(" / ")}function yH(a){switch(a){case"running":return(0,A.jsx)(R.A,{className:"size-4 animate-spin text-foreground"});case"completed":return(0,A.jsx)(o5.A,{className:"size-4 text-status-success"});case"failed":return(0,A.jsx)(py,{className:"size-4 text-destructive"});case"interrupted":return(0,A.jsx)(pz.A,{className:"size-4 text-status-warning"});case"stopped":return(0,A.jsx)(pA,{className:"size-4 text-muted-foreground"})}}function yI({info:a}){let{t:b}=(0,Q.Bd)("taskCenter"),c=(0,bG.G)(),[d,e]=(0,B.useState)(null);if(0===a.length)return null;let f=(a,d)=>{(0,cV.x)(a.value).then(f=>{f?e(d):c.error(b("copyFailed",{name:a.label}))})};return(0,A.jsx)("div",{"data-task-info-scroll":"",className:"max-h-32 overflow-y-auto pr-1 [scrollbar-gutter:stable]",children:(0,A.jsx)("dl",{className:"flex flex-wrap gap-2",children:a.map((a,c)=>{let e=`${a.label}:${c}:${a.value}`,g=d===e;return(0,A.jsxs)("div",{role:"button",tabIndex:0,"aria-label":b(g?"copied":"copy",{name:a.label}),title:g?b("copiedShort"):b("clickToCopy",{name:a.label}),className:(0,W.cn)("flex min-h-8 min-w-0 max-w-full cursor-pointer items-start gap-2 rounded-md px-2 py-1 text-sm outline-none transition-colors hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",g&&"bg-muted"),onClick:()=>f(a,e),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),f(a,e))},children:[(0,A.jsx)("dt",{className:"shrink-0 pt-0.5 font-medium text-muted-foreground",children:a.label}),(0,A.jsx)("dd",{className:"min-w-0 flex-1 break-words text-foreground",children:a.value}),(0,A.jsx)("span",{className:"shrink-0 pt-0.5 text-muted-foreground","aria-hidden":"true",children:g?(0,A.jsx)(bp.A,{className:"size-3.5 text-status-success"}):(0,A.jsx)(bI.A,{className:"size-3.5"})})]},`${a.label}:${c}`)})})})}function yJ({snapshot:a,running:b,runtime:c,cwd:d}){let{t:e}=(0,Q.Bd)("taskCenter"),f=(0,B.useMemo)(()=>qE(a,b),[b,a]),g=f.findLast(a=>null!==a.user)??null;return(0,A.jsx)(pO,{className:"h-full min-h-0",initial:"instant",resize:"instant","aria-label":e("conversationDetails"),children:(0,A.jsx)(qS,{turns:f,focusTurnIdentity:g?.identity??null,initialAnchor:null,children:a=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(qL,{}),(0,A.jsx)(x$,{children:(0,A.jsxs)(pP,{scrollClassName:"pi-desk-chat-scrollbar",className:"mx-auto min-h-full w-full max-w-3xl gap-6 px-4 pt-3 pb-6 sm:px-6",children:[f.length>0?a.visibleTurns.map((b,e)=>{let g=a.startIndex+e;return(0,A.jsx)(yD,{turn:b,cwd:d,logicalTail:a.containsTail&&g===f.length-1,onLoadDetail:c.loadMessageDetail,onAcquireImage:c.acquireImage},b.identity)}):(0,A.jsx)("div",{className:"grid min-h-48 place-items-center text-sm text-muted-foreground",children:e("noMessages")}),(0,A.jsx)("div",{className:"h-4 shrink-0","aria-hidden":"true"})]})}),(0,A.jsx)(qX,{turns:f,window:a})]})})})}function yK({task:a,runtime:b,cwd:c}){let{t:d}=(0,Q.Bd)("taskCenter"),e=(0,B.useSyncExternalStore)(b.subscribe,b.getState,b.getState),f=a?e.details[a.taskId]:void 0,[g,h]=(0,B.useState)(!1),[i,j]=(0,B.useState)(!1),[k,l]=(0,B.useState)(null),m=async()=>{if(!g)return void h(!0);j(!0),l(null);try{await b.interruptSelected(),h(!1)}catch(a){l(a instanceof Error?a.message:d("interruptFailed"))}finally{j(!1)}};if(!a)return(0,A.jsx)("div",{className:"grid h-full min-h-0 place-items-center px-6 text-center text-sm text-muted-foreground",children:d("selectTask")});let n=yG(a);return(0,A.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,A.jsx)("header",{className:"shrink-0 border-b px-4 py-3 lg:pr-16",children:(0,A.jsxs)("div",{className:"flex items-start gap-3",children:[(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,A.jsx)("span",{className:"mt-0.5 shrink-0",children:yH(a.status)}),(0,A.jsx)("h3",{className:"min-w-0 break-words text-sm font-semibold",children:n?`${n} \xb7 ${a.title}`:a.title})]}),(0,A.jsxs)("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs",children:[(0,A.jsx)("span",{className:(0,W.cn)("rounded-md px-1.5 py-0.5 font-medium",function(a){switch(a){case"running":return"bg-muted text-foreground";case"completed":return"bg-muted text-status-success";case"failed":return"bg-muted text-destructive";case"interrupted":return"bg-muted text-status-warning";case"stopped":return"bg-muted text-muted-foreground"}}(a.status)),children:d(yE[a.status])}),(0,A.jsx)("span",{className:"text-muted-foreground",children:yF(a,(a,b)=>d(a,{count:b}))}),a.activity?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground/60",children:"\xb7"}),(0,A.jsx)("span",{className:"min-w-0 break-words text-muted-foreground",children:a.activity})]}):null]})]}),f?.canInterrupt?(0,A.jsxs)(U.$,{className:"shrink-0",type:"button",size:"sm",variant:g?"destructive":"outline",disabled:i,onClick:()=>void m(),children:[i?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(pA,{}),g?d("confirmInterrupt"):d("interrupt")]}):null]})}),k?(0,A.jsx)("p",{role:"alert",className:"shrink-0 border-b bg-muted px-4 py-2 text-sm text-destructive",children:k}):null,a.info.length>0?(0,A.jsx)("div",{className:"shrink-0 border-b px-4 py-2",children:(0,A.jsx)(yI,{info:a.info})}):null,(0,A.jsxs)("div",{className:"relative min-h-0 flex-1",children:[f?.body?.kind==="conversation"?(0,A.jsx)(yJ,{snapshot:f.body,running:"running"===a.status,runtime:b,cwd:c}):f?.body?.kind==="text"?(0,A.jsx)("div",{className:"h-full overflow-auto p-4 sm:p-5",children:(0,A.jsx)("pre",{className:(0,W.cn)("whitespace-pre-wrap break-words font-mono text-sm leading-[1.6]"),children:f.body.text||d("waitingOutput")})}):f?(0,A.jsx)("div",{className:"h-full overflow-auto p-4 sm:p-5",children:(0,A.jsx)("div",{className:"grid min-h-48 place-items-center px-2 text-center text-sm text-muted-foreground",children:d("noDetails")})}):(0,A.jsx)("div",{className:"h-full overflow-auto p-4 sm:p-5",children:(0,A.jsx)("div",{className:"grid min-h-48 place-items-center px-2 text-center text-sm text-muted-foreground",children:e.error?(0,A.jsxs)("div",{className:"space-y-3",children:[(0,A.jsx)("p",{className:"text-destructive",children:e.error}),(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline",onClick:()=>b.selectTask(a.taskId),children:[(0,A.jsx)(pB,{}),d("retry")]})]}):(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),d("loadingDetail")]})})}),e.refreshing?(0,A.jsxs)("div",{className:"pointer-events-none absolute right-3 top-3 flex items-center gap-2 rounded-md border bg-popover px-2 py-1 text-xs text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-3 animate-spin"}),d("refreshing")]}):null]})]})}function yL({source:a,tasks:b,runtime:c,cwd:d}){var e;let{t:f}=(0,Q.Bd)("taskCenter"),{locale:g,timeZone:h}=(0,cu.i)(),i=(0,B.useCallback)(()=>{let a=c.getState();return JSON.stringify([a.open,a.source?.workId??null,a.source?.sessionId??null,a.source?.branchId??null,a.selectedTaskId])},[c]);(0,B.useSyncExternalStore)(c.subscribe,i,i);let j=c.getState(),[k,l]=(0,B.useState)(!1),m=b.find(a=>a.taskId===j.selectedTaskId)??null,n=k&&null!==j.selectedTaskId,o=j.open&&(e=j.source,null!==e&&e.workId===a.workId&&e.sessionId===a.sessionId&&e.branchId===a.branchId);return(0,A.jsx)(b3.YV,{open:o,onOpenChange:a=>{a||c.close()},children:(0,A.jsxs)(b3.hA,{"aria-label":f("title"),showCloseButton:!1,className:"h-[calc(100dvh-2rem)] max-w-[70rem] flex-row bg-background max-lg:h-dvh max-lg:max-h-dvh max-lg:w-dvw max-lg:max-w-none max-lg:rounded-none max-lg:border-0",children:[(0,A.jsxs)("div",{className:(0,W.cn)("flex min-w-0 flex-1 flex-col border-r bg-sidebar lg:max-w-80",n&&"hidden lg:flex"),children:[(0,A.jsxs)("header",{className:"flex min-h-14 items-center gap-3 border-b px-4 py-3",children:[(0,A.jsx)(pC,{className:"size-5 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)(b3.YM,{children:f("title")}),(0,A.jsx)("p",{className:"text-xs text-muted-foreground",children:f("recordCount",{count:b.length})})]}),(0,A.jsx)(U.$,{className:"lg:hidden",type:"button",variant:"ghost",size:"icon","aria-label":f("close"),onClick:()=>c.close(),children:(0,A.jsx)(al.A,{})})]}),(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-2",children:b.length>0?(0,A.jsx)("div",{className:"space-y-1",children:b.map(a=>{let b=yG(a),d=yF(a,(a,b)=>f(a,{count:b})),e=qH(a.startedAt,void 0,g,h);return(0,A.jsxs)("button",{type:"button","aria-current":a.taskId===j.selectedTaskId?"true":void 0,onClick:()=>{var b;return b=a.taskId,void(c.selectTask(b),l(!0))},className:(0,W.cn)("grid min-h-14 w-full cursor-pointer grid-cols-[auto_minmax(0,1fr)_auto] items-start gap-x-2 rounded-lg px-3 py-3 text-left outline-none transition-colors hover:bg-foreground/8 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",a.taskId===j.selectedTaskId&&"bg-accent text-accent-foreground hover:bg-accent"),children:[(0,A.jsx)("span",{className:"mt-0.5 shrink-0",children:yH(a.status)}),(0,A.jsxs)("span",{className:"min-w-0",children:[(0,A.jsxs)("span",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-baseline gap-x-3",children:[(0,A.jsx)("span",{className:"truncate text-sm font-medium",children:a.title}),(0,A.jsxs)("span",{className:"whitespace-nowrap text-xs tabular-nums text-muted-foreground","aria-label":f("runningTime",{duration:d,time:e.full}),children:[d,(0,A.jsx)("span",{className:"mx-1 text-muted-foreground/50","aria-hidden":"true",children:"\xb7"}),(0,A.jsx)("time",{dateTime:new Date(a.startedAt).toISOString(),children:e.compact})]})]}),b?(0,A.jsx)("span",{className:"mt-1 block truncate text-xs text-muted-foreground",children:b}):null]}),(0,A.jsx)(bo.A,{className:"mt-1 size-4 shrink-0 text-muted-foreground lg:hidden"})]},a.taskId)})}):(0,A.jsx)("div",{className:"grid min-h-48 place-items-center text-sm text-muted-foreground",children:f("noTasks")})})]}),(0,A.jsx)("div",{className:(0,W.cn)("min-w-0 flex-1",!n&&"hidden lg:block"),children:(0,A.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,A.jsxs)("div",{className:"flex min-h-12 items-center gap-2 border-b bg-muted/10 px-3 lg:hidden",children:[(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon","aria-label":f("back"),onClick:()=>l(!1),children:(0,A.jsx)(Z.A,{})}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate text-center text-xs text-muted-foreground",children:m?.title??f("detail")}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"icon","aria-label":f("close"),onClick:()=>c.close(),children:(0,A.jsx)(al.A,{})})]}),(0,A.jsx)("div",{className:"min-h-0 flex-1",children:(0,A.jsx)(yK,{task:m,runtime:c,cwd:d},m?.taskId??"no-task")})]})}),(0,A.jsx)(U.$,{className:"absolute right-4 top-3 z-10 hidden lg:inline-flex",type:"button",variant:"ghost",size:"icon","aria-label":f("close"),onClick:()=>c.close(),children:(0,A.jsx)(al.A,{})})]})})}function yM({source:a,cwd:b,tasks:c,runtime:d,variant:e}){let{t:f}=(0,Q.Bd)("taskCenter"),g=c.filter(a=>"running"===a.status),h=g[0],i=()=>{d.open(a,(c.find(a=>"running"===a.status)??c[0]??null)?.taskId??null)};return"footer"===e?c.length>0?(0,A.jsx)(qk,{tooltip:f("title"),"aria-label":f("open"),onClick:i,children:(0,A.jsx)(pC,{className:"size-4"})}):(0,A.jsx)(A.Fragment,{}):"menu"===e?(0,A.jsxs)(bw,{onClick:i,children:[(0,A.jsx)(pC,{className:"size-4"}),f("title")]}):(0,A.jsxs)(A.Fragment,{children:[h?(0,A.jsxs)("button",{type:"button",className:"mb-2 flex min-h-8 w-full cursor-pointer items-center gap-2 rounded-md border bg-muted px-2.5 text-left text-sm text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",onClick:i,"aria-label":`${f("open")}, ${f("runningCount",{count:g.length})}`,children:[(0,A.jsx)(R.A,{className:"size-3.5 shrink-0 animate-spin text-foreground"}),(0,A.jsx)("span",{className:"shrink-0 font-medium text-foreground",children:f("runningCount",{count:g.length})}),(0,A.jsxs)("span",{className:"min-w-0 flex-1 truncate",children:[h.title,h.activity?` \xb7 ${h.activity}`:""]}),(0,A.jsx)(bo.A,{className:"size-3.5 shrink-0"})]}):null,(0,A.jsx)(yL,{source:a,tasks:c,runtime:d,cwd:b})]})}function yN({source:a,cwd:b,pluginState:c,runtime:d,variant:e}){let f=(0,B.useMemo)(()=>{let a=pl.safeParse(c);return a.success?a.data.tasks:[]},[c]);return(0,A.jsx)(yM,{source:a,cwd:b,tasks:f,runtime:d,variant:e})}var yO=c(43115),yP=c(50146);function yQ(a){return`${a.location.index}:${a.location.entryId}`}let yR={user:["viewKey","hasDetail"],assistant:["viewKey","status","hasDetail","usage"],tool:["viewKey","status","hasDetail","usage"],bash:["viewKey","status","hasDetail"],custom:["viewKey","hasDetail"]};function yS(a,b,c){if(!b)return a;let d={...a,...b};return"summary"===c?pb.Hf.parse(d):pb.D8.parse(d)}function yT(a,b){if(Array.isArray(a.parent)){if("number"!=typeof a.key)throw Error("Increment array key is invalid");a.parent[a.key]=b;return}if("string"!=typeof a.key)throw Error("Increment object key is invalid");a.parent[a.key]=b}function yU(a,b,c){let d=structuredClone(a),e=function(a,b){if(0===b.length)throw Error("Increment cannot append to the message layer root");let c=a;for(let a of b.slice(0,-1)){if("number"==typeof a){if(!Array.isArray(c)||a>=c.length)throw Error(`Increment array path does not exist: ${a}`);c=c[a];continue}if(!c||"object"!=typeof c||Array.isArray(c))throw Error(`Increment object path does not exist: ${a}`);if(!Object.hasOwn(c,a))throw Error(`Increment object field does not exist: ${a}`);c=c[a]}let d=b.at(-1);if("number"==typeof d){if(!Array.isArray(c)||d>=c.length)throw Error(`Increment array target does not exist: ${d}`);return{parent:c,key:d,value:c[d]}}if(!c||"object"!=typeof c||Array.isArray(c))throw Error(`Increment object target does not exist: ${d}`);if(!Object.hasOwn(c,d))throw Error(`Increment target does not exist: ${d}`);return{parent:c,key:d,value:c[d]}}(d,b);if("string"==typeof c){if("string"!=typeof e.value)throw Error("Increment target is not a string");return yT(e,`${e.value}${c}`),pb.Hf.parse(d)}if(!Array.isArray(e.value))throw Error("Increment target is not an array");return yT(e,[...e.value,...c]),pb.Hf.parse(d)}function yV(a,b,c){let d=new Map(a.messages.filter(a=>void 0!==a.detail).map(a=>[yQ(a),a]));return{messages:b.map(a=>{let b=d.get(yQ(a));return a.fixed.hasDetail&&b&&b.fixed.type===a.fixed.type&&b.fixed.viewKey===a.fixed.viewKey&&void 0!==b.detail?pb.mj.parse({...a,detail:b.detail}):a}),temporaryMessages:[...c]}}function yW(a,b){if("message_start"===b.type){if(a.temporaryMessages.some(a=>a.location.tempId===b.snapshot.location.tempId))throw Error(`Temporary conversation message already exists: ${b.snapshot.location.tempId}`);return{...a,temporaryMessages:[...a.temporaryMessages,b.snapshot]}}let c=a.temporaryMessages.findIndex(a=>a.location.tempId===b.location.tempId);if(c<0)throw Error(`Temporary conversation message was not found: ${b.location.tempId}`);if("message_update"===b.type){let d=[...a.temporaryMessages];return d[c]=function(a,b){var c,d;if(a.location.tempId!==b.location.tempId)throw Error(`Conversation update tempId mismatch: ${b.location.tempId}`);let e=(c=a.fixed,(d=b.fixed)?(!function(a,b,c){let d=Object.keys(a).filter(a=>!b.includes(a));if(d.length>0)throw Error(`${c} patch contains fields invalid for the current message: ${d}`)}(d,yR[c.type],`${c.type} fixed`),pb.q5.parse({...c,...d})):c),f=yS(a.summary,b.summary,"summary"),g=a.detail;if(void 0!==b.detail||Object.keys(b.increments??{}).some(a=>"detail"===(0,yP.U)(a).root)){if(b.fixed?.hasDetail===!1)throw Error("Realtime detail cannot be updated while explicitly clearing hasDetail");e.hasDetail||(e=pb.q5.parse({...e,hasDetail:!0}))}for(let[a,c]of(b.detail&&(g=yS(g??{},b.detail,"detail")),Object.entries(b.increments??{}))){let b=(0,yP.U)(a);"summary"===b.root?f=yU(f,b.segments,c):g=yU(g??{},b.segments,c)}return e.hasDetail||(g=void 0),pb.s4.parse({location:a.location,fixed:e,summary:f,...void 0===g?{}:{detail:g}})}(d[c],b),{...a,temporaryMessages:d}}if("message_discard"===b.type)return{...a,temporaryMessages:a.temporaryMessages.filter(a=>a.location.tempId!==b.location.tempId)};if(b.durable.index!==a.messages.length)throw Error(`Conversation commit index is not continuous: expected ${a.messages.length}, received ${b.durable.index}`);if(a.messages.some(a=>a.location.entryId===b.durable.entryId))throw Error(`Conversation commit entryId already exists: ${b.durable.entryId}`);let{detail:d,fixed:e,...f}=a.temporaryMessages[c],g=pb.mj.parse({...f,location:b.durable,fixed:{...e,timestampMs:b.fixed.timestampMs},...e.hasDetail&&void 0!==d?{detail:d}:{}});return{messages:[...a.messages,g],temporaryMessages:a.temporaryMessages.filter(a=>a.location.tempId!==b.location.tempId)}}function yX(a,b){let c=a.messages.findIndex(a=>a.location.index===b.index&&a.location.entryId===b.entryId);if(c<0)throw Error(`Conversation detail target was not found: ${b.index}/${b.entryId}`);let d=a.messages[c];if(null!==b.detail&&!d.fixed.hasDetail)throw Error("Message without hasDetail cannot accept detail");let e=[...a.messages];return e[c]=pb.mj.parse({...d,...null===b.detail?{detail:void 0}:{detail:b.detail}}),{...a,messages:e}}function yY(a,b){return a.taskId!==b.taskId||a.body?.kind!=="conversation"||b.body?.kind!=="conversation"?b:pp.parse({...b,body:{kind:"conversation",truncated:b.body.truncated,...yV(a.body,b.body.messages,b.body.temporaryMessages)}})}var yZ=c(28661);function y$(a){return(0,bS.B)({msg:yO.U["zh-CN"][a],i18n:{key:`taskCenter:${a}`}})}let y_=Object.freeze({open:!1,source:null,selectedTaskId:null,details:{},loading:!1,refreshing:!1,error:null});function y0(a,b){return a===b||null!==a&&null!==b&&a.workId===b.workId&&a.sessionId===b.sessionId&&a.branchId===b.branchId}var y1=c(94283),y2=c(17983);let y3=js.rh,y4=js.eC,y5=E.Ik({workId:y1.eW,cwd:y1.ik}).strict(),y6=y5.extend({path:y3}).strict(),y7=y5.extend(js.Nu.shape).strict(),y8=y2.Ot.request.safeExtend({workId:y1.eW});y2.Ot.response;let y9=js.p$,za=y5.extend({path:y4,imagePreviewMode:y9}).strict();var zb=c(74349),zc=c.n(zb);function zd({mobile:a,open:b,sidebar:c,children:d,onClose:e}){let{t:f}=(0,Q.Bd)("workbench"),g=(0,X.fk)(),h=(0,B.useRef)(288);return a?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("button",{type:"button","aria-label":f("closeSessionMenu"),"aria-hidden":!b,tabIndex:b?0:-1,onClick:e,className:(0,W.cn)(zc().backdrop,"fixed inset-0 z-40 bg-black/35",b?"opacity-100":"pointer-events-none opacity-0")}),(0,A.jsx)("div",{"data-testid":"mobile-work-session-drawer","data-open":b,"aria-hidden":!b||void 0,inert:!b||void 0,className:(0,W.cn)(zc().drawer,"fixed inset-y-0 left-0 z-50 flex w-[min(86vw,320px)] flex-col border-r bg-sidebar shadow-2xl",!b&&"pointer-events-none"),children:c}),(0,A.jsx)("div",{className:"flex min-h-0 min-w-0 flex-1",inert:b||void 0,children:d})]}):(0,A.jsxs)(V.HK,{orientation:"horizontal",disableCursor:!0,className:(0,W.cn)(zc().panelGroup,"pi-desk-workbench-resize-group min-h-0 min-w-0 flex-1"),onLayoutChanged:(a,c)=>{if(!c.isUserInteraction||!b)return;let d=g.current?.getSize().inPixels;void 0!==d&&(h.current=d)},children:[(0,A.jsx)(V.wV,{id:"work-session-sidebar",panelRef:g,defaultSize:288,minSize:224*!!b,maxSize:480*!!b,disabled:!b,"aria-hidden":!b||void 0,inert:!b||void 0,className:"flex h-full min-h-0 min-w-0 !overflow-hidden bg-sidebar",children:(0,A.jsx)("div",{className:"flex h-full w-full min-w-[224px] flex-col border-r",children:c})}),(0,A.jsx)(V.WM,{withHandle:!0,"aria-label":f("resizeSessionList"),"aria-hidden":!b||void 0,disabled:!b,className:(0,W.cn)("cursor-col-resize",!b&&"w-0 pointer-events-none opacity-0")}),(0,A.jsx)(V.wV,{id:"work-session-content",minSize:360,className:"flex h-full min-h-0 min-w-0 !overflow-hidden",children:d})]})}let ze=E.Ik({application:E.eu("Pi Desk"),status:E.eu("ready"),version:E.Yj().trim().min(1).nullable().default(null),boundaries:E.Ik({client:E.eu("isolated"),server:E.eu("isolated"),common:E.eu("shared")}),layers:E.PV([E.eu("L1 Entry"),E.eu("L2 Biz"),E.eu("L3 Modules"),E.eu("L4 Foundation")])});var zf=c(18513),zg=c(10905),zh=c(8579),zi=c(38974);function zj(a){let b=a.replaceAll("\\","/").replace(/\/+$/,"")||"/";return/^[a-z]:/i.test(b)||b.startsWith("//")?b.toLowerCase():b}E.Ik({directories:E.YO(E.Yj().min(1).max(4096)).max(32),defaultDirectory:E.Yj().min(1).max(4096).nullable()}).strict();var zk=c(92494),zl=c(38273);function zm(a,b){return(0,bS.B)({msg:zl.R["zh-CN"][a],i18n:{key:`workbench:${a}`,...b?{params:b}:{}}})}function zn(a){let{workId:b,sessionId:c,branchId:d}=a.source;return JSON.stringify([b,c,d,a.cwd])}function zo(a,b,c){return`${zn(a)}\u0000${c}\u0000${b}`}class zp{peek(a,b,c){let d=this.images.get(zo(a,b,c));return!d||0===d.references&&Date.now()-d.unusedAt>=6e4?null:d.url}get(a,b,c){this.trim();let d=zo(a,b,c),e=this.images.get(d);return e?this.acquire(d,e):null}store(a,b,c,d){if(this.disposed||!this.validSources.has(zn(a)))throw Error("工作会话来源已变化");let e=zo(a,b,c),f=this.images.get(e);if(f)return this.acquire(e,f);let g={url:URL.createObjectURL(d),size:d.size,references:0,unusedAt:Date.now()};return this.images.set(e,g),this.acquire(e,g)}invalidate(a,b,c){this.remove(zo(a,b,c))}reconcileWorkSessions(a){for(let b of(this.validSources=new Set(a.map(a=>zn({source:a,cwd:a.cwd}))),this.images.keys()))this.validSources.has(b.split("\0")[0])||this.remove(b);this.trim()}dispose(){for(let a of(this.disposed=!0,this.images.keys()))this.remove(a);this.validSources.clear()}acquire(a,b){b.references+=1,this.images.delete(a),this.images.set(a,b),this.trim();let c=!1;return{url:b.url,release:()=>{c||(c=!0,b.references-=1,0===b.references&&(b.unusedAt=Date.now()),this.trim())}}}remove(a){let b=this.images.get(a);b&&(URL.revokeObjectURL(b.url),this.images.delete(a))}trim(){let a=Date.now(),b=[...this.images.values()].reduce((a,b)=>a+b.size,0);for(let[c,d]of this.images)!(d.references>0)&&(a-d.unusedAt<6e4&&b<=0x4000000&&this.images.size<=64||(this.remove(c),b-=d.size))}constructor(){this.images=new Map,this.validSources=new Set,this.disposed=!1}}class zq{constructor(a,b,c=()=>void 0){this.biz=a,this.gitBiz=b,this.onNotice=c,this.standaloneImages=new zp,this.listeners=new Set,this.workspaces=new Map,this.sources=new Map,this.previewDirectories=new Map,this.expandedWorkId=null,this.revision=0,this.subscribe=a=>(this.listeners.add(a),()=>this.listeners.delete(a)),this.getRevision=()=>this.revision}getWorkspace(a){let b=a?this.workspaces.get(a):null;return b?{...b.files.state,cwd:b.files.cwd,windowOpen:b.windowOpen,chatWidthPercent:b.chatWidthPercent,activePane:b.activePane}:null}getFileRuntime(a){return this.workspaceFor(a).files}getExpandedWorkId(){return this.expandedWorkId}getDirectories(a){return this.previewDirectories.get(a)?.directories??[]}getDirectory(a){let b=this.previewDirectories.get(a);if(!b)throw Error(zm("sourceChanged"));return b.selectedDirectory}applyPreviewDirectories(a,b){let c=this.sources.get(a.workId);if(!c||c.sessionId!==a.sessionId||c.branchId!==a.branchId)return;let d=this.previewDirectories.get(a.workId),e=new Map([[zj(c.cwd),c.cwd]]);for(let a of b.directories){let b=zj(a);e.has(b)||e.set(b,a)}let f=b.defaultDirectory?e.get(zj(b.defaultDirectory))??null:null,g=(d.defaultDirectory?zj(d.defaultDirectory):null)!==(f?zj(f):null)?f??c.cwd:e.get(zj(d.selectedDirectory))??c.cwd,h=[...e.values()];if(d.defaultDirectory===f&&d.selectedDirectory===g&&d.directories.length===h.length&&d.directories.every((a,b)=>a===h[b]))return;this.previewDirectories.set(a.workId,{directories:h,defaultDirectory:f,selectedDirectory:g});let i=this.workspaces.get(a.workId);if(i){for(let[a,b]of i.roots)e.has(a)||(b.unsubscribe(),b.files.dispose(),i.roots.delete(a));this.switchFiles(a.workId,i)}this.publish()}selectDirectory(a,b){let c=this.previewDirectories.get(a);if(!c)throw Error(zm("sourceChanged"));let d=c.directories.find(a=>zj(a)===zj(b));if(!d)throw Error(zm("sourceChanged"));if(c.selectedDirectory===d)return;c.selectedDirectory=d;let e=this.workspaces.get(a);e&&this.switchFiles(a,e),this.publish()}reconcileWorkSessions(a){this.standaloneImages.reconcileWorkSessions(a);let b=new Map(a.map(({workId:a,cwd:b,sessionId:c,branchId:d})=>[a,{workId:a,cwd:b,sessionId:c,branchId:d}])),c=!1;for(let[a,d]of this.sources){let e=b.get(a);if(e?.cwd===d.cwd&&e.sessionId===d.sessionId&&e.branchId===d.branchId)continue;let f=this.workspaces.get(a);f&&(this.disposeLayout(f),this.workspaces.delete(a)),this.previewDirectories.delete(a),c=!0,this.expandedWorkId===a&&(this.expandedWorkId=null)}for(let[a,c]of(this.sources.clear(),b))this.sources.set(a,c),this.previewDirectories.has(a)||this.previewDirectories.set(a,{directories:[c.cwd],defaultDirectory:null,selectedDirectory:c.cwd});c&&this.publish()}ensureRoot(a){return this.getFileRuntime(a).ensureRoot()}ensureDirectory(a,b){return this.getFileRuntime(a).ensureDirectory(b)}setExpandedPaths(a,b){this.getFileRuntime(a).setExpandedPaths(b)}setTreeScrollTop(a,b){this.workspaces.get(a)?.files.setTreeScrollTop(b)}refreshTree(a){this.getFileRuntime(a).refreshTree()}setSearchQuery(a,b){this.getFileRuntime(a).setSearchQuery(b)}search(a,b){return this.getFileRuntime(a).search(b)}openFile(a,b){let c=this.workspaceFor(a);c.windowOpen=!0,c.activePane="files",c.files.openFile(b)}async revealFile(a,b){await this.getFileRuntime(a).revealFile(b)}activateFile(a,b){this.workspaces.get(a)?.files.state.tabs.includes(b)&&this.openFile(a,b)}closeFile(a,b){this.closeTabs(a,b,"current")}closeTabs(a,b,c){this.workspaces.get(a)?.files.closeTabs(b,c)}hideWindow(a){let b=this.workspaces.get(a);b?.windowOpen&&(b.windowOpen=!1,b.activePane="chat",this.expandedWorkId===a&&(this.expandedWorkId=null),this.publish())}showWindow(a){let b=this.workspaceFor(a),{tabs:c,activeDiff:d,activePath:e}=b.files.state;(c.length||d||this.expandedWorkId===a)&&(b.windowOpen=!0,b.activePane="files",this.publish(),!d&&e&&b.files.ensureDocument(e))}setChatWidthPercent(a,b){let c=this.workspaces.get(a);!c||!Number.isFinite(b)||b<=0||b>=100||.001>Math.abs(c.chatWidthPercent-b)||(c.chatWidthPercent=b,this.publish())}setActivePane(a,b){let c=this.workspaces.get(a);c&&c.activePane!==b&&(c.activePane=b,this.publish())}expandWindow(a){this.expandedWorkId=a,this.showWindow(a)}collapseExpandedWindow(){if(!this.expandedWorkId)return;let a=this.workspaces.get(this.expandedWorkId);this.expandedWorkId=null,!a||a.files.state.tabs.length||a.files.state.activeDiff||(a.windowOpen=!1,a.activePane="chat"),this.publish()}reloadFile(a,b){this.workspaces.get(a)?.files.reloadFile(b)}openDiff(a,b,c){let d=this.workspaceFor(a);d.windowOpen=!0,d.activePane="files",d.files.openDiff(b,c)}closeDiff(a){this.closeTabs(a,null,"current")}reloadDiff(a){this.workspaces.get(a)?.files.reloadDiff()}setDiffViewMode(a,b){this.workspaces.get(a)?.files.setDiffViewMode(b)}setDiffWrapLines(a,b){this.workspaces.get(a)?.files.setDiffWrapLines(b)}setDiffCollapseUnchanged(a,b){this.workspaces.get(a)?.files.setDiffCollapseUnchanged(b)}handleGitBranchChanged(a,b){for(let c of this.workspaces.values())for(let d of c.roots.values())d.files.cwd===a&&d.files.handleGitBranchChanged(b)}saveEditorState(a,b,c){this.workspaces.get(a)?.files.saveEditorState(b,c)}setWrapLines(a,b,c){this.workspaces.get(a)?.files.setWrapLines(b,c)}setTextViewMode(a,b,c){this.workspaces.get(a)?.files.setTextViewMode(b,c)}dispose(){for(let a of(this.standaloneImages.dispose(),this.workspaces.values()))this.disposeLayout(a);this.workspaces.clear(),this.sources.clear(),this.previewDirectories.clear(),this.expandedWorkId=null,this.listeners.clear()}workspaceFor(a){if(!this.sources.get(a))throw Error(zm("sourceChanged"));let b=this.workspaces.get(a);if(b)return b;let c={files:this.createFiles(a,this.getDirectory(a)),roots:new Map,windowOpen:!1,chatWidthPercent:50,activePane:"files"};return this.attachRoot(a,c,c.files),this.workspaces.set(a,c),c}createFiles(a,b){let c={workId:a,cwd:b};return new zk.h(b,{list:(a,b)=>this.biz.list({...c,path:a},b),search:(a,b)=>this.biz.search({...c,...a},b),get:(a,b,d)=>this.biz.get({...c,path:a,imagePreviewMode:b},d),diff:(a,b,d)=>this.gitBiz.getDiff({...c,repositoryRoot:a,path:b},d)},{imagePreviewMode:kN.Wq,htmlPreview:!0,onNotice:this.onNotice,reveal:async(a,b)=>{await this.biz.reveal({...c,path:a,..."directory"===b?{targetType:b}:{}})}})}attachRoot(a,b,c){let d=c.subscribe(()=>{b.files===c&&(c.state.activePath||c.state.activeDiff||this.expandedWorkId===a||(b.windowOpen=!1,b.activePane="chat"),this.publish())});b.roots.set(zj(c.cwd),{files:c,unsubscribe:d})}switchFiles(a,b){let c=this.getDirectory(a),d=zj(c);if(zj(b.files.cwd)===d)return;let e=b.roots.get(d);if(!e){let f=this.createFiles(a,c);this.attachRoot(a,b,f),e=b.roots.get(d)}b.files=e.files,e.files.state.activePath||e.files.state.activeDiff||this.expandedWorkId===a||(b.windowOpen=!1,b.activePane="chat")}disposeLayout(a){for(let b of a.roots.values())b.unsubscribe(),b.files.dispose();a.roots.clear()}publish(){for(let a of(this.revision+=1,this.listeners))a()}}var zr=c(45741);function zs(a){return a.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??a}function zt({workId:a,cwd:b,projectName:c,runtime:d,gitRuntime:e,onOpenGitBranches:f,onFileOpened:g}){let h,{t:i}=(0,Q.Bd)("projectFiles");(0,B.useSyncExternalStore)(d.subscribe,d.getRevision,d.getRevision);let j=d.getDirectory(a),k=d.getDirectories(a),l=zj(b)===zj(j),m=l?c:zs(j);return(0,A.jsx)(zr.F,{cwd:j,projectName:m,gitReadOnly:!l,rootTitle:k.length>1?(0,A.jsxs)(bq,{children:[(0,A.jsxs)(bs,{"data-testid":"project-preview-directory-trigger","aria-label":i("selectPreviewDirectory"),title:j,className:"flex min-h-7 min-w-0 flex-1 items-center gap-1 rounded-md px-1 text-left hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:[(0,A.jsx)("span",{className:"max-w-[45%] truncate text-xs font-semibold",children:m}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:"\xb7"}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground",children:(h=j.replaceAll("\\","/").split("/").filter(Boolean)).length<=2?j:`…/${h.slice(-2).join("/")}`}),(0,A.jsx)(cn.A,{className:"size-3.5 shrink-0 text-muted-foreground"})]}),(0,A.jsx)(bt,{finalFocus:!0,className:"w-[23rem] min-w-0 max-w-[calc(100vw-1.5rem)]","aria-label":i("previewDirectories"),children:(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:i("previewDirectories")}),(0,A.jsx)(bA,{value:j,onValueChange:b=>d.selectDirectory(a,b),children:k.map(a=>(0,A.jsxs)(bB,{value:a,"data-testid":"project-preview-directory-option","data-directory":a,className:"items-start py-2 data-checked:bg-muted",children:[(0,A.jsx)(cd.A,{className:"mt-0.5 size-4 text-muted-foreground"}),(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("span",{className:"flex items-start gap-2",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 break-all",children:zj(a)===zj(b)?c:zs(a)}),zj(a)===zj(b)?(0,A.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:i("sessionDirectory")}):null]}),(0,A.jsx)("span",{className:"mt-0.5 block break-all font-mono text-xs leading-5 text-muted-foreground",children:a})]})]},zj(a)))})]})})]}):void 0,runtime:d.getFileRuntime(a),gitRuntime:e,onOpenGitBranches:d=>{l&&f({workId:a,cwd:b,projectName:c,repositoryRoot:d})},onFileOpened:()=>{d.showWindow(a),g?.()}})}var zu=c(87348),zv=c(45427),zw=c(55091),zx=c(45694);let zy='data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/%3E';function zz({target:a,paths:b,index:c,onIndexChange:d,biz:e,images:f}){let{t:g}=(0,Q.Bd)("workbench"),[h,i]=(0,B.useState)({});(0,B.useRef)(new Map);let j=b[c],k=h[j],l=(0,kN.Wq)(),m=f.peek(a,j,l),n=k?.status==="ready"||!k&&null!==m;return(0,A.jsxs)("div",{className:"relative size-full","data-testid":"standalone-image-gallery",children:[(0,A.jsx)(jW.k,{mode:"inline",thumbnails:!1,slides:b.map(a=>{let b=h[a];return{src:b?.status==="ready"?b.objectUrl:a===j?m??zy:zy,alt:a}}),index:c,onIndexChange:d}),n?null:(0,A.jsx)("div",{className:"pointer-events-none absolute inset-0 z-[2] flex items-center justify-center p-6 pb-20",children:k?.status==="error"?(0,A.jsxs)("div",{className:"flex max-w-full flex-col items-center gap-3 rounded-lg bg-background/95 p-4 text-center",children:[(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:k.message}),(0,A.jsx)(U.$,{className:"pointer-events-auto",variant:"outline",onClick:()=>{f.invalidate(a,j,(0,kN.Wq)()),i(a=>{let b={...a};return delete b[j],b})},children:g("reloadFile")})]}):(0,A.jsxs)("div",{role:"status",className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),g("loadingFile")]})})]})}function zA(a){return a.replaceAll("\\","/").split("/").at(-1)??a}function zB({target:a,biz:b,images:c,mobile:d,onClose:e}){let{t:f}=(0,Q.Bd)("workbench"),{t:g}=(0,Q.Bd)("projectFiles"),h=(0,B.useRef)(null),[i,j]=(0,B.useState)({mode:"preview",scrollTop:0}),k=(0,B.useRef)(0),[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(0),[p,q]=(0,B.useState)(()=>{let b=a&&!a.imagePaths?c.peek(a,a.path,(0,kN.Wq)()):null;return b?{status:"image",objectUrl:b}:{status:"loading"}}),[r,s]=(0,B.useState)(()=>a?.imagePaths?a.imagePaths.indexOf(a.path):0);if(!a)return null;let t=a.imagePaths?.[r]??a.path,u=(0,zw.g)(t);return(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>{a||e()},children:(0,A.jsxs)(b3.hA,{className:d?"inset-0 h-dvh max-h-none w-dvw max-w-none translate-x-0 translate-y-0 rounded-none border-0 ring-0":"h-[min(94dvh,1080px)] w-[min(96dvw,1600px)] max-w-none",children:[(0,A.jsx)(b3.YM,{className:"sr-only",children:zA(t)}),(0,A.jsxs)("section",{"data-testid":"plugin-standalone-file-preview",className:"flex size-full min-h-0 min-w-0 flex-col overflow-hidden bg-background","aria-label":f("standaloneViewer",{name:a.projectName}),children:[(0,A.jsxs)("header",{className:"flex min-h-14 shrink-0 items-center gap-3 border-b pl-3 pr-14 pt-[env(safe-area-inset-top)]",children:[(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-semibold",title:zA(t),children:zA(t)}),(0,A.jsxs)("p",{className:"truncate text-xs text-muted-foreground",title:`${a.projectName} \xb7 ${t}`,children:[a.projectName," \xb7 ",t]})]}),"markdown"===u&&"text"===p.status?(0,A.jsx)("div",{className:"flex shrink-0",role:"group","aria-label":g("markdownMode"),children:["preview","source"].map(a=>(0,A.jsx)(U.$,{size:"sm",variant:i.mode===a?"secondary":"ghost","aria-pressed":i.mode===a,onClick:()=>{i.mode!==a&&j({mode:a,scrollTop:k.current})},children:g("preview"===a?"previewMode":"sourceMode")},a))}):null]}),(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden pb-[env(safe-area-inset-bottom)]",children:a.imagePaths?(0,A.jsx)(zz,{target:a,paths:a.imagePaths,index:r,onIndexChange:s,biz:b,images:c}):"loading"===p.status?(0,A.jsx)(zC,{}):"error"===p.status?(0,A.jsxs)("div",{className:"flex size-full flex-col items-center justify-center gap-3 p-6 text-center",children:[(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:p.message}),(0,A.jsx)(U.$,{variant:"outline",onClick:()=>{c.invalidate(a,a.path,(0,kN.Wq)()),q({status:"loading"}),o(a=>a+1)},children:f("reloadFile")})]}):"image"===p.status?(0,A.jsx)(jW.k,{mode:"inline",slides:[{src:p.objectUrl,alt:a.path}],ariaLabel:f("standaloneImage",{name:zA(a.path)})}):"markdown"===u&&"preview"===i.mode?(0,A.jsx)(zv.n,{content:p.content,label:g("markdownPreview",{name:t}),savedScrollTop:i.scrollTop,onScroll:a=>{k.current=a}}):"html"===u?(0,A.jsx)("iframe",{ref:h,className:"block size-full border-0 bg-white",sandbox:"allow-scripts",srcDoc:(0,zx.z)(p.content),title:f("standaloneHtml",{name:a.path})}):(0,A.jsx)(zu.e,{path:a.path,content:p.content,size:p.size,savedState:l,onSaveState:(a,b)=>m(b),onEscape:e})})]})]})})}function zC(){let{t:a}=(0,Q.Bd)("workbench");return(0,A.jsxs)("div",{className:"flex size-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),a("loadingFile")]})}var zD=c(70914),zE=c.n(zD),zF=c(794),zG=c.n(zF);let zH=zE()(async()=>{},{loadableGenerated:{modules:["client/l2_biz/workbench/file-workspace/l2-work-session-file-layout.tsx -> ./l2-file-workspace-view"]},ssr:!1});function zI({workSession:a,runtime:b,gitRuntime:c,mobile:d,onOpenGitBranches:e,onOpenSidebar:f,children:g}){let{t:h}=(0,Q.Bd)("workbench");(0,B.useSyncExternalStore)(b.subscribe,b.getRevision,b.getRevision);let i=(0,B.useRef)(null),j=(0,X.OG)(),k=(0,B.useRef)(null),l=(0,B.useRef)(null),m=(0,B.useRef)(null),n=(0,B.useRef)(null),o=(0,B.useRef)(null),[p,q]=(0,B.useState)(!1),{workId:r}=a,s=b.getWorkspace(r),t=s?.windowOpen===!0,u=`session-chat-pane-${r}`,v=`session-file-pane-${r}`,w=s?.chatWidthPercent??50,[x]=(0,B.useState)(()=>t?w:100),y=!!(s?.tabs.length||s?.activeDiff),z=p&&!d,C=z&&t,D=b.getExpandedWorkId()===r,E=t&&(C||s?.activePane==="files"),F=!E||C,G=a=>{o.current=a},H=()=>{if(!y)return;let a=b.getWorkspace(r)?.activePane==="files"?"chat":"files";G(a),"files"===a?b.showWindow(r):b.setActivePane(r,"chat")};return(0,A.jsx)("div",{ref:i,"data-testid":"session-file-layout","data-file-layout":C?"split":"single",className:"relative size-full min-h-0 min-w-0 overflow-hidden",onKeyDownCapture:a=>{"Tab"!==a.key||!a.ctrlKey||a.altKey||a.metaKey||a.repeat||a.nativeEvent.isComposing||!y||a.target instanceof Element&&a.target.closest('[role="menu"], [data-slot="app-dialog-content"]')||(a.preventDefault(),a.stopPropagation(),H())},children:(0,A.jsxs)(V.HK,{groupRef:j,className:(0,W.cn)("pi-desk-workbench-resize-group relative size-full min-h-0 min-w-0",z?[zc().panelGroup,zG().wide]:zG().single),orientation:"horizontal",disabled:!C,resizeTargetMinimumSize:{fine:8,coarse:20},onLayoutChanged:(a,c)=>{if(!C||!c.isUserInteraction)return;let d=a[u];void 0!==d&&b.setChatWidthPercent(r,d)},children:[(0,A.jsx)(V.wV,{id:u,"data-pane":"chat",defaultSize:`${x}%`,minSize:320*!!C,"aria-hidden":!F||void 0,inert:!F||void 0,className:"flex min-h-0 min-w-0 !overflow-hidden",children:(0,A.jsx)("div",{ref:k,className:"size-full min-h-0 min-w-0",onPointerDownCapture:()=>b.setActivePane(r,"chat"),onFocusCapture:a=>{m.current=a.target,b.setActivePane(r,"chat")},children:g(F)})}),(0,A.jsx)(V.WM,{id:`session-file-divider-${r}`,"aria-label":h("resizeChatFile"),"aria-hidden":!C||void 0,disabled:!C,disableDoubleClick:!0,className:(0,W.cn)("z-10 w-px cursor-col-resize bg-transparent aria-disabled:cursor-default",!C&&"hidden")}),(0,A.jsx)(V.wV,{id:v,"data-pane":"files",defaultSize:`${100-x}%`,minSize:320*!!C,maxSize:z&&!t?0:void 0,"aria-hidden":!E||void 0,inert:!E||void 0,className:"flex min-h-0 min-w-0 !overflow-hidden",children:(0,A.jsx)("div",{ref:l,className:"size-full min-h-0 min-w-0 overflow-hidden",onPointerDownCapture:()=>b.setActivePane(r,"files"),onFocusCapture:a=>{n.current=a.target,b.setActivePane(r,"files")},children:y&&!D?(0,A.jsx)(zH,{workSession:a,runtime:b,gitRuntime:c,mobile:d,presentation:z?"split":"single",onOpenGitBranches:e,onOpenSidebar:f,onHide:()=>{G("chat"),b.hideWindow(r)},onExpand:()=>b.expandWindow(r),onSwitchPane:H},`${a.sessionId}:${a.branchId}`):null})})]})})}function zJ({workSessions:a,runtime:b,gitRuntime:c,mobile:d,onOpenGitBranches:e,onOpenSidebar:f,onOpenTerminal:g}){let{t:h}=(0,Q.Bd)("workbench");(0,B.useSyncExternalStore)(b.subscribe,b.getRevision,b.getRevision);let i=a.find(a=>a.workId===b.getExpandedWorkId());if(!i)return null;let j=()=>{d?b.hideWindow(i.workId):b.collapseExpandedWindow()},k=()=>{let a=document.querySelector(`[data-work-id="${CSS.escape(i.workId)}"] textarea`);a&&(b.hideWindow(i.workId),requestAnimationFrame(()=>a.focus({preventScroll:!0})))};return(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>{a||j()},children:(0,A.jsxs)(b3.hA,{showCloseButton:!1,onKeyDownCapture:a=>{"Tab"!==a.key||!a.ctrlKey||a.altKey||a.metaKey||a.repeat||a.nativeEvent.isComposing||a.target instanceof Element&&a.target.closest('[role="menu"]')||(a.preventDefault(),a.stopPropagation(),k())},className:d?"inset-0 h-dvh max-h-none w-dvw max-w-none translate-x-0 translate-y-0 rounded-none border-0 ring-0":"h-[min(94dvh,1080px)] w-[min(96dvw,1600px)] max-w-none",finalFocus:()=>{let a=document.querySelector(`[data-work-id="${CSS.escape(i.workId)}"]`);return a?.querySelector("[data-file-expand-trigger]")??a?.querySelector('[data-testid="session-files-entry"]')??!1},children:[(0,A.jsx)(b3.YM,{className:"sr-only",children:h("fileViewer",{name:i.projectName})}),(0,A.jsx)(zH,{workSession:i,runtime:b,gitRuntime:c,mobile:d,presentation:d?"single":"expanded",onOpenGitBranches:e,onOpenSidebar:()=>{b.collapseExpandedWindow(),f(i.workId)},onSwitchPane:k,onOpenTerminal:g,onHide:()=>b.hideWindow(i.workId),onExpand:j},`${i.workId}:${i.sessionId}:${i.branchId}`)]})})}var zK=c(95186);let zL=(0,S.A)("earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var zM=c(35385),zN=c(9365),zO=c(49057);let zP=[];function zQ(a,b){let c=b.trim().toLocaleLowerCase();return c?a.filter(a=>a.toLocaleLowerCase().includes(c)):[...a]}function zR({target:a,runtime:b,mobile:c,onClose:d}){let{t:e}=(0,Q.Bd)("workbench"),{locale:f}=(0,cu.i)();(0,B.useSyncExternalStore)(b.subscribe,b.getRevision,b.getRevision);let g=(0,bG.G)(),[h,i]=(0,B.useState)(null),[j,k]=(0,B.useState)(a?.repositoryRoot!==null),[l,m]=(0,B.useState)(""),[n,o]=(0,B.useState)(()=>({repositoryRoot:null,overrides:new Map})),[p,q]=(0,B.useState)(null),[r,s]=(0,B.useState)(!1),[t,u]=(0,B.useState)(""),[v,w]=(0,B.useState)(null),[x,y]=(0,B.useState)(null),z=b.getWorkspace(a?.cwd??null),C=z?.heads.repositories??zP,D=a?null!==a.repositoryRoot&&C.some(b=>b.root===a.repositoryRoot)?a.repositoryRoot:C.find(a=>""===a.root)?.root??C[0]?.root??null:null,E=h??D,F=C.find(a=>a.root===E)??null,G=null===E?null:z?.branches.get(E)??null,H=G?.data??null,I=null!==E&&!!z?.branchOperations.has(E),J=(0,B.useMemo)(()=>zQ(H?.local??[],l),[H?.local,l]),K=(0,B.useMemo)(()=>zQ(H?.remote??[],l),[H?.remote,l]),L=(0,B.useMemo)(()=>zQ(H?.recent??[],l),[H?.recent,l]),M=(0,B.useMemo)(()=>(0,zO.oY)(J),[J]),N=(0,B.useMemo)(()=>(0,zO.oY)(K),[K]),O=H?.head.type==="branch"?H.head.name:null,P=(0,B.useMemo)(()=>{let a=new Set;if(!O?.includes("/"))return a;let b=O.split("/");for(let c=1;c<b.length;c+=1)a.add(`local:${b.slice(0,c).join("/")}`);return a},[O]);if(!a)return null;let S=a=>{w(a),u(""),s(!0),q(null),y(null)},T=async(a,b)=>{y(null);try{await a(),g.success(b),d()}catch(a){y(a instanceof Error?a.message:e("gitOperationFailed"))}},V=C.length>1,X=1===C.length?e("repositorySummary",{name:(0,zO.Hj)(a.projectName,C[0].root),branch:"ready"===C[0].state?(0,zO.ws)(C[0].head):e("repositoryUnavailable")}):C.length>1?e("repositoryCount",{count:C.length}):e("readingRepos"),Y=(c,d,f=c.name,g=0)=>{let h="local"===c.type&&c.name===O,i=p?.type===c.type&&p.name===c.name;return(0,A.jsxs)("div",{children:[(0,A.jsxs)("button",{type:"button","data-testid":"recent"===d?`git-branch-recent-${c.name}`:`git-branch-${c.type}-${c.name}`,className:(0,W.cn)("grid min-h-9 w-full cursor-pointer grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2 rounded-lg pr-2 text-left outline-none hover:bg-foreground/8 focus-visible:ring-2 focus-visible:ring-ring",h&&"font-medium text-foreground",i&&"bg-accent"),style:{paddingLeft:`${8+16*g}px`},title:c.name,onClick:()=>q(i?null:c),children:[(0,A.jsx)("span",{className:"text-muted-foreground",children:h?(0,A.jsx)(bp.A,{className:"size-4 text-foreground"}):"remote"===c.type?(0,A.jsx)(zL,{className:"size-3.5"}):(0,A.jsx)(zM.A,{className:"size-3.5"})}),(0,A.jsx)("span",{className:"truncate font-mono text-sm",children:f}),(0,A.jsx)("span",{className:"text-xs text-muted-foreground",children:h?e("current"):"recent"===d?e("recent"):""})]}),i?(0,A.jsxs)("div",{className:"flex flex-wrap gap-2 border-l-2 border-border py-2 pl-2",style:{marginLeft:`${32+16*g}px`},children:[h?null:(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",disabled:I,onClick:()=>{null!==E&&!I&&T(()=>b.replaceBranch(a.cwd,E,c),e("remote"===c.type?"checkedOut":"switchedBranch",{name:c.name}))},children:e("remote"===c.type?"checkoutRemote":"switchGitBranch")}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",disabled:I,onClick:()=>S(c),children:e("branchFromHere")})]}):null]},`${d}:${c.type}:${c.name}`)},$=(a,b)=>{let c=`${a}:${b}`;return(n.repositoryRoot===E?n.overrides.get(c):void 0)??P.has(c)},_=(a,b,c=0)=>a.map(a=>{if(0===a.children.length&&a.branchName)return Y({type:b,name:a.branchName},b,a.name,c);let d=`${b}:${a.path}`,e=!!l.trim()||$(b,a.path);return(0,A.jsxs)("div",{children:[(0,A.jsxs)("button",{type:"button","data-testid":`git-branch-group-${b}-${a.path}`,"aria-expanded":e,className:"grid min-h-9 w-full cursor-pointer grid-cols-[1rem_1rem_minmax(0,1fr)] items-center gap-2 rounded-lg pr-2 text-left text-muted-foreground outline-none hover:bg-foreground/8 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",style:{paddingLeft:`${8+16*c}px`},title:a.path,onClick:()=>((a,b)=>{if(l.trim())return;let c=`${a}:${b}`,d=$(a,b);o(a=>{let b=a.repositoryRoot===E?new Map(a.overrides):new Map;return b.set(c,!d),{repositoryRoot:E,overrides:b}})})(b,a.path),children:[(0,A.jsx)(bo.A,{className:(0,W.cn)("size-3 transition-transform",e&&"rotate-90")}),e?(0,A.jsx)(zN.A,{className:"size-4 text-muted-foreground"}):(0,A.jsx)(cd.A,{className:"size-4 text-muted-foreground"}),(0,A.jsx)("span",{className:"truncate font-mono text-sm",children:a.name})]}),e?_(a.children,b,c+1):null]},d)});return(0,A.jsx)(b3.YV,{open:!0,onOpenChange:a=>!a&&d(),children:(0,A.jsxs)(b3.hA,{"data-testid":"git-branch-picker",showCloseButton:!1,finalFocus:!1,className:"h-[min(40rem,calc(100dvh-2rem))] max-w-[45rem] gap-0",children:[(0,A.jsxs)("header",{className:"flex min-h-12 shrink-0 items-center gap-2 border-b px-3",children:[(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)(b3.YM,{children:e("gitBranches")}),(0,A.jsx)(b3.uX,{className:"truncate text-xs",children:X})]}),(0,A.jsx)(U.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":e("refreshBranches"),disabled:z?.heads.status==="loading",onClick:()=>void b.refreshHeads(a.cwd),children:(0,A.jsx)(bK.A,{className:(0,W.cn)("size-4",z?.heads.status==="loading"&&"animate-spin")})}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:d,children:e("close")})]}),(0,A.jsxs)("div",{className:(0,W.cn)("grid min-h-0 flex-1",V&&!c?"grid-cols-[220px_minmax(0,1fr)]":"grid-cols-1"),children:[!V||c&&j?null:(0,A.jsxs)("aside",{className:"pi-desk-chat-scrollbar min-h-0 overflow-y-auto border-r bg-sidebar p-2 max-sm:border-r-0",children:[(0,A.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("repositories")}),C.map(b=>{let c=(0,zO.Hj)(a.projectName,b.root),d=b.root===E;return(0,A.jsxs)("button",{"data-testid":`git-branch-picker-repository-${b.root||"root"}`,type:"button",className:(0,W.cn)("grid min-h-12 w-full grid-cols-[minmax(0,1fr)_auto] items-center gap-2 rounded-lg px-2 text-left hover:bg-muted/70",d&&"bg-accent text-accent-foreground"),onClick:()=>{var a;i(a=b.root),k(!0),m(""),o({repositoryRoot:a,overrides:new Map}),q(null),s(!1),w(null),y(null)},children:[(0,A.jsxs)("span",{className:"min-w-0",children:[(0,A.jsx)("strong",{className:"block truncate text-sm font-medium",children:c}),(0,A.jsx)("span",{className:"mt-1 block truncate font-mono text-xs text-muted-foreground",children:b.root||"."})]}),(0,A.jsx)("span",{className:"flex flex-col items-end gap-1 text-xs text-muted-foreground",children:(0,A.jsx)("span",{className:"max-w-28 truncate",children:"ready"===b.state?(0,zO.ws)(b.head):e("unavailable")})})]},b.root)})]}),c&&V&&!j?null:(0,A.jsxs)("section",{className:"flex min-h-0 min-w-0 flex-col",children:[(0,A.jsxs)("div",{className:"flex min-h-13 shrink-0 items-center gap-2 border-b px-3",children:[c&&V?(0,A.jsx)(U.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":e("backRepositories"),onClick:()=>k(!1),children:(0,A.jsx)(Z.A,{className:"size-4"})}):null,(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("p",{className:"truncate text-sm font-semibold",children:[F?(0,zO.Hj)(a.projectName,F.root):e("chooseRepository"),F?.state==="ready"?` \xb7 ${(0,zO.ws)(F.head)}`:""]}),(0,A.jsx)("p",{className:"mt-1 break-words font-mono text-xs text-muted-foreground",children:F?.root||"."})]}),(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline",disabled:F?.state!=="ready"||I,onClick:()=>S(null),children:[(0,A.jsx)(am,{className:"size-3.5"})," ",e("createBranch")]})]}),z?.heads.status==="error"?(0,A.jsx)("p",{className:"border-b bg-muted px-3 py-2 text-sm text-destructive",children:z.heads.error}):null,x?(0,A.jsx)("p",{className:"border-b bg-muted px-3 py-2 text-sm text-destructive",children:x}):null,(0,A.jsx)("div",{className:"flex shrink-0 items-center gap-2 border-b p-2",children:r?(0,A.jsxs)("form",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-2",onSubmit:c=>{let d;c.preventDefault(),(d=t.trim())&&null!==E&&!I&&T(()=>b.addBranch(a.cwd,E,d,v),e("branchCreated",{name:d}))},children:[(0,A.jsx)(bU.p,{autoFocus:!0,value:t,onChange:a=>u(a.currentTarget.value),placeholder:e("newBranchName"),"aria-label":e("newBranchName"),className:"min-w-[12rem] flex-1"}),(0,A.jsxs)(U.$,{type:"submit",size:"sm",disabled:!t.trim()||I,children:[I?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):null,e("createAndSwitch")]}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>{s(!1),w(null)},children:e("cancel")})]}):(0,A.jsx)(bU.p,{value:l,onChange:a=>m(a.currentTarget.value),placeholder:e("searchBranches"),"aria-label":e("searchBranches")})}),(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto p-2",children:F?.state==="unavailable"?(0,A.jsx)("p",{className:"p-5 text-center text-xs text-destructive",children:(0,ct.fD)(F.message,f)}):G?.status!=="loading"||H?G?.status==="error"?(0,A.jsxs)("div",{className:"flex min-h-24 flex-col items-center justify-center gap-2 text-center text-xs text-destructive",children:[(0,A.jsx)("p",{children:G.error}),null!==E?(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void b.loadBranches(a.cwd,E),children:e("retry")}):null]}):H?(0,A.jsxs)("div",{className:"space-y-3",children:[L.length>0?(0,A.jsxs)("section",{children:[(0,A.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("recentlyUsed")}),L.map(a=>Y({type:"local",name:a},"recent"))]}):null,J.length>0?(0,A.jsxs)("section",{children:[(0,A.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("localBranches")}),_(M,"local")]}):null,K.length>0?(0,A.jsxs)("section",{children:[(0,A.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("remoteBranches")}),_(N,"remote")]}):null,0===L.length&&0===J.length&&0===K.length?(0,A.jsx)("p",{className:"p-5 text-center text-xs text-muted-foreground",children:e("noBranchMatches")}):null]}):null:(0,A.jsxs)("div",{className:"flex min-h-24 items-center justify-center gap-2 text-xs text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"})," ",e("loadingBranches")]})})]})]})]})})}function zS(a,b){return a instanceof DOMException&&"AbortError"===a.name?b:a instanceof Error?a.message:b}class zT{constructor(a,b){this.biz=a,this.onRepositoryChanged=b,this.listeners=new Set,this.workspaces=new Map,this.projectRefs=new Map,this.revision=0,this.subscribe=a=>(this.listeners.add(a),()=>this.listeners.delete(a)),this.getRevision=()=>this.revision}getWorkspace(a){return a?this.workspaces.get(a)??null:null}reconcileWorkSessions(a,b,c=[]){let d=new Map,e=b?a.find(a=>a.workId===b)??null:null;for(let b of(e&&d.set(e.cwd,{workId:e.workId,cwd:e.cwd}),a))d.has(b.cwd)||d.set(b.cwd,{workId:b.workId,cwd:b.cwd});for(let a of c)d.has(a.cwd)||d.set(a.cwd,{...a,readOnly:!0});if(d.size!==this.projectRefs.size||[...d].some(([a,b])=>this.projectRefs.get(a)?.workId!==b.workId||this.projectRefs.get(a)?.readOnly!==b.readOnly)){for(let[a,b]of(this.projectRefs.clear(),d))this.projectRefs.set(a,b);for(let[a,b]of this.workspaces)d.has(a)||(this.abortRequests(b),this.workspaces.delete(a))}}ensureSnapshot(a){let b=this.workspaceFor(a);return"ready"===b.snapshot.status||"loading"===b.snapshot.status?Promise.resolve():this.loadSnapshot(a,!1)}refreshSnapshot(a){return this.loadSnapshot(a,!0)}async refreshHeads(a){let b=this.workspaceFor(a);if(b.headsRequest||Date.now()-b.lastHeadsStartedAt<3e4)return;let c=this.projectRefs.get(a);if(!c){b.heads={...b.heads,status:"error",error:zm("gitNoProjectStatus")},this.publish();return}let d=new AbortController,e={};b.headsRequest={controller:d,token:e},b.lastHeadsStartedAt=Date.now(),b.heads={...b.heads,status:"loading",error:null},this.publish();try{let f=await this.biz.getHeads({workId:c.workId,cwd:a},d.signal);if(b.headsRequest?.token!==e)return;b.headsRequest=null,b.heads={status:"ready",repositories:f.repositories,error:null},this.publish()}catch(a){if(b.headsRequest?.token!==e||(b.headsRequest=null,d.signal.aborted))return;b.heads={...b.heads,status:"error",error:zS(a,zm("gitStatusReadFailed"))},this.publish()}}setLayout(a,b){let c=this.workspaceFor(a);c.layout!==b&&(c.layout=b,this.publish())}setChangesOnly(a,b){let c=this.workspaceFor(a);c.changesOnly!==b&&(c.changesOnly=b,this.publish())}toggleRepository(a,b){let c=this.workspaceFor(a);c.expandedRepositories.has(b)?c.expandedRepositories.delete(b):c.expandedRepositories.add(b),this.publish()}async loadBranches(a,b){let c=this.workspaceFor(a),d=this.projectRefs.get(a);if(!d){c.branches.set(b,{status:"error",data:null,error:zm("gitNoProjectBranches")}),this.publish();return}c.branchRequests.get(b)?.controller.abort();let e=new AbortController,f={};c.branchRequests.set(b,{controller:e,token:f}),c.branches.set(b,{status:"loading",data:c.branches.get(b)?.data??null,error:null}),this.publish();try{let g=await this.biz.listBranches({workId:d.workId,cwd:a,repositoryRoot:b},e.signal);if(c.branchRequests.get(b)?.token!==f)return;c.branchRequests.delete(b),c.branches.set(b,{status:"ready",data:g,error:null}),this.publish()}catch(a){if(c.branchRequests.get(b)?.token!==f||(c.branchRequests.delete(b),e.signal.aborted))return;c.branches.set(b,{status:"error",data:null,error:zS(a,zm("gitBranchesReadFailed"))}),this.publish()}}async replaceBranch(a,b,c){let d=this.requireWritableProject(a),e=this.workspaceFor(a);if(!e.branchOperations.has(b)){e.branchOperations.add(b),this.publish();try{let f=await this.biz.replaceBranch({...d,repositoryRoot:b,target:c});this.applyRepository(e,f.repository),this.clearBranches(e,b),this.onRepositoryChanged(a,b)}finally{e.branchOperations.delete(b),this.publish()}}}async addBranch(a,b,c,d){let e=this.requireWritableProject(a),f=this.workspaceFor(a);if(!f.branchOperations.has(b)){f.branchOperations.add(b),this.publish();try{let g=await this.biz.addBranch({...e,repositoryRoot:b,name:c,startPoint:d});this.applyRepository(f,g.repository),this.clearBranches(f,b),this.onRepositoryChanged(a,b)}finally{f.branchOperations.delete(b),this.publish()}}}getDiff(a,b,c,d){return this.biz.getDiff({...this.requireProject(a),repositoryRoot:b,path:c},d)}dispose(){for(let a of this.workspaces.values())this.abortRequests(a);this.workspaces.clear(),this.projectRefs.clear(),this.listeners.clear()}async loadSnapshot(a,b){let c=this.workspaceFor(a);if(c.snapshotRequest&&!b)return;let d=this.projectRefs.get(a);if(!d){c.snapshot={status:"error",repositories:c.snapshot.repositories,error:zm("gitNoProjectStatus")},this.publish();return}c.snapshotRequest?.controller.abort();let e=new AbortController,f={};c.snapshotRequest={controller:e,token:f},c.snapshot={status:"loading",repositories:c.snapshot.repositories,error:null},this.publish();try{let b=await this.biz.get({workId:d.workId,cwd:a},e.signal);if(c.snapshotRequest?.token!==f)return;c.snapshotRequest=null,c.snapshot={status:"ready",repositories:b.repositories,error:null};let g=new Set(b.repositories.map(a=>a.root));for(let a of(b.repositories.length>0&&!g.has("")&&g.add(""),[...c.expandedRepositories]))g.has(a)||c.expandedRepositories.delete(a);this.publish()}catch(a){if(c.snapshotRequest?.token!==f||(c.snapshotRequest=null,e.signal.aborted))return;c.snapshot={status:"error",repositories:c.snapshot.repositories,error:zS(a,zm("gitStatusReadFailed"))},this.publish()}}requireProject(a){let b=this.projectRefs.get(a);if(!b)throw Error(zm("gitNoProjectOperation"));return{workId:b.workId,cwd:b.cwd}}requireWritableProject(a){if(this.projectRefs.get(a)?.readOnly)throw Error(zm("gitNoProjectOperation"));return this.requireProject(a)}applyRepository(a,b){a.headsRequest?.controller.abort(),a.headsRequest=null,a.snapshotRequest?.controller.abort(),a.snapshotRequest=null;let c={root:b.root,state:b.state,head:b.head},d=[...a.heads.repositories],e=d.findIndex(a=>a.root===b.root);if(e>=0?d[e]=c:d.push(c),a.heads={status:"ready",repositories:d,error:null},a.lastHeadsStartedAt=Date.now(),"idle"===a.snapshot.status)return;let f="loading"===a.snapshot.status,g=[...a.snapshot.repositories],h=g.findIndex(a=>a.root===b.root);h>=0?g[h]=b:g.push(b),a.snapshot={status:"ready"===a.snapshot.status?"ready":"idle",repositories:g,error:null},f&&this.refreshSnapshot(a.cwd)}abortRequests(a){for(let b of(a.headsRequest?.controller.abort(),a.headsRequest=null,a.snapshotRequest?.controller.abort(),a.snapshotRequest=null,a.branchRequests.values()))b.controller.abort();a.branchRequests.clear()}clearBranches(a,b){a.branchRequests.get(b)?.controller.abort(),a.branchRequests.delete(b),a.branches.delete(b)}workspaceFor(a){let b=this.workspaces.get(a);if(b)return b;let c={cwd:a,heads:{status:"idle",repositories:[],error:null},headsRequest:null,lastHeadsStartedAt:0,snapshot:{status:"idle",repositories:[],error:null},snapshotRequest:null,branches:new Map,branchRequests:new Map,layout:"directory",changesOnly:!1,expandedRepositories:new Set,branchOperations:new Set};return this.workspaces.set(a,c),c}publish(){for(let a of(this.revision+=1,[...this.listeners]))a()}}var zU=c(18997);let zV=zU.y2,zW=E.Ik({workId:y1.eW,cwd:y1.ik}).strict(),zX=zU.Ww,zY=zU.cP,zZ=zU.zp,z$=zU.u2;E.Ik({repositories:E.YO(z$).max(zV)}).strict();let z_=zW.extend({repositoryRoot:zX}).strict(),z0=zU.zt,z1=zW.extend({repositoryRoot:zX,target:z0}).strict(),z2=zW.extend({repositoryRoot:zX,name:zY,startPoint:z0.nullable()}).strict(),z3=E.Ik({repository:zZ}).strict(),z4=zW.extend({repositoryRoot:zX,path:js._g}).strict();var z5=c(45123);let z6=Object.freeze({messages:[],temporaryMessages:[],runtime:{extensionMode:"normal",presentationMode:"normal",initializationError:null,queues:{steering:[],followUp:[]},model:null,capabilityMode:null,contextUsage:null,plugins:{}}});function z7(a){let b=new Set;for(let[c,d]of a.entries()){if(d.location.index!==c||b.has(d.location.entryId))return null;b.add(d.location.entryId)}let c=a.at(-1);return c?{index:c.location.index,entryId:c.location.entryId}:null}var z8=c(92991);let z9="messages",Aa="source",Ab="drafts",Ac="outbox",Ad="pi-super-chat",Ae=null,Af=null;function Ag(a){return Error((0,bS.B)({msg:z8.n["zh-CN"].common[a],i18n:{key:`common:${a}`}}))}function Ah(a,b){a.objectStoreNames.contains(b)||a.createObjectStore(b,{keyPath:["sessionId","branchId"]})}function Ai(){return new Promise((a,b)=>{let c=indexedDB.open(Ad,2),d=!1,e=window.setTimeout(()=>{f(Ag("dbOpenTimeout"))},1e4),f=a=>{d||(d=!0,window.clearTimeout(e),b(a))};c.addEventListener("upgradeneeded",()=>{let a=c.result;a.objectStoreNames.contains(z9)||a.createObjectStore(z9,{keyPath:["sessionId","branchId","index"]}).createIndex(Aa,["sessionId","branchId"],{unique:!1}),Ah(a,Ab),Ah(a,Ac)},{once:!0}),c.addEventListener("blocked",()=>{f(Ag("dbOpenBlocked"))},{once:!0}),c.addEventListener("success",()=>{let b=c.result;d?b.close():(d=!0,window.clearTimeout(e),a(b))},{once:!0}),c.addEventListener("error",()=>f(c.error??Ag("dbOpenFailed")),{once:!0})})}async function Aj(){try{return await Ai()}catch(a){if(!("object"==typeof a&&null!==a&&"name"in a&&"VersionError"===a.name))throw a;return console.warn("[Pi Desk][ChatIndexedDB] 本地数据库版本高于当前版本,清空全部本地聊天数据后重建",{databaseName:Ad,requestedVersion:2}),await new Promise((a,b)=>{let c=indexedDB.deleteDatabase(Ad),d=!1,e=window.setTimeout(()=>{f(Ag("dbDeleteTimeout"))},1e4),f=a=>{d||(d=!0,window.clearTimeout(e),b(a))};c.addEventListener("blocked",()=>{f(Ag("dbDeleteBlocked"))},{once:!0}),c.addEventListener("success",()=>{d||(d=!0,window.clearTimeout(e),a())},{once:!0}),c.addEventListener("error",()=>f(c.error??Ag("dbDeleteFailed")),{once:!0})}),Ai()}}function Ak(){return Af?Promise.resolve(Af):Ae||(Ae=Aj().then(a=>(Af=a,a.addEventListener("versionchange",()=>{a.close(),Af===a&&(Af=null,Ae=null),console.warn("[Pi Desk][ChatIndexedDB] 数据库版本已变化,当前连接已关闭")}),a)).catch(a=>{throw Ae=null,a}))}function Al(a){return new Promise((b,c)=>{a.addEventListener("success",()=>b(a.result),{once:!0}),a.addEventListener("error",()=>c(a.error??Ag("dbRequestFailed")),{once:!0})})}function Am(a,b,c){let d=a.target;return d?.error??b.error??Error(c)}function An(a){return new Promise((b,c)=>{a.addEventListener("complete",()=>b(),{once:!0}),a.addEventListener("abort",b=>c(Am(b,a,Ag("dbTransactionAborted").message)),{once:!0}),a.addEventListener("error",b=>c(Am(b,a,Ag("dbTransactionFailed").message)),{once:!0})})}let Ao=E.Ik({sessionId:E.Yj().trim().min(1),branchId:E.Yj().trim().min(1),index:E.ai().int().nonnegative(),entryId:E.Yj().trim().min(1),fixed:z5.ao,summary:z5.lV,detail:z5.wI.optional()}).strict();function Ap(a,b){return Ao.parse({sessionId:a.sessionId,branchId:a.branchId,index:b.location.index,entryId:b.location.entryId,fixed:b.fixed,summary:b.summary,...void 0===b.detail?{}:{detail:b.detail}})}function Aq(a){let b=Ao.parse(a);if("assistant"===b.fixed.type&&"pi-desk/assistant"===b.fixed.viewKey){if(!Object.hasOwn(b.summary,"errorMessage"))throw Error("Assistant Summary cache uses an outdated projection");z5.Y2.parse(b.summary),void 0!==b.detail&&z5.$f.parse(b.detail)}return z5.wR.parse({location:{index:b.index,entryId:b.entryId},fixed:b.fixed,summary:b.summary,...void 0===b.detail?{}:{detail:b.detail}})}function Ar(a,b){a.delete(IDBKeyRange.bound([b.sessionId,b.branchId,0],[b.sessionId,b.branchId,Number.MAX_SAFE_INTEGER]))}let As=E.Yj().max(65536),At=E.Ik({id:E.Yj().uuid(),title:As,expiresAt:E.ai().int().nonnegative().nullable()}),Au=E.gM("method",[At.extend({method:E.eu("confirm"),message:As}).strict(),At.extend({method:E.eu("select"),options:E.YO(As).max(200)}).strict(),At.extend({method:E.eu("input"),placeholder:As}).strict(),At.extend({method:E.eu("editor"),prefill:As}).strict()]),Av=E.Ik({requests:E.YO(Au).max(32),statuses:E.g1(E.Yj().max(128),As),widgets:E.g1(E.Yj().max(128),E.Ik({lines:E.YO(As).max(200),placement:E.k5(["aboveEditor","belowEditor"])}).strict())}).strict(),Aw=E.Ik({id:E.Yj().uuid(),value:E.KC([E.zM(),As,E.ch()])}).strict(),Ax=E.gM("type",[E.Ik({type:E.eu("snapshot"),snapshot:Av}).strict(),E.Ik({type:E.eu("notify"),message:As,level:E.k5(["info","warning","error"])}).strict(),E.Ik({type:E.eu("editor_text"),text:As,mode:E.k5(["replace","paste"])}).strict()]),Ay=E.Ik({source:pa.R}).strict(),Az=E.Ik({}).strict(),AA=Object.freeze({subscribe:(0,F.Vc)({path:"pi/ui/subscribe",inputSchema:Ay,outputSchema:Av}),unsubscribe:(0,F.Vc)({path:"pi/ui/unsubscribe",inputSchema:Ay,outputSchema:Az}),respond:(0,F.Vc)({path:"pi/ui/respond",inputSchema:Ay.extend({response:Aw}).strict(),outputSchema:Az}),event:(0,F._G)({path:"pi/ui/event",bodySchema:Ay.extend({event:Ax}).strict()})});function AB(a){return JSON.stringify([a.workId,a.sessionId,a.branchId])}class AC{constructor(a){this.socket=a,this.records=new Map,this.listeners=new Set,this.notices=new Set,this.releasePush=null,this.connected=!1,this.epoch=0,this.subscribe=a=>(this.listeners.add(a),()=>this.listeners.delete(a))}onNotice(a){return this.notices.add(a),()=>this.notices.delete(a)}getState(a){return this.record(a).state}watch(a){this.releasePush||(this.releasePush=this.socket.subscribe(AA.event,({source:a,event:b})=>{let c=this.records.get(AB(a));if(c&&this.connected)if("snapshot"===b.type)c.state.refreshing?c.latest=b.snapshot:this.apply(c,b.snapshot);else if("editor_text"===b.type)this.patch(c,{prefill:b});else for(let d of(this.appendNotice(c,b),this.notices))d(a,b)}));let b=this.record(a);!this.connected||b.state.ready||b.state.refreshing||this.refresh(b)}ready(a){for(let b of(this.reconcile(a),this.connected=!0,this.records.values()))this.refresh(b)}reconcile(a){let b=new Set(a.map(AB));for(let[a,c]of this.records)!b.has(a)&&(this.records.delete(a),this.connected&&this.socket.request(AA.unsubscribe,{source:c.source}).catch(()=>void 0));this.emit()}disconnected(){for(let a of(this.connected=!1,this.epoch+=1,this.records.values()))a.latest=null,this.patch(a,{ready:!1,refreshing:!1,submitting:null,commandPending:null,unknown:a.state.submitting??a.state.unknown})}edit(a,b){this.patch(this.record(a),b)}refreshSource(a){return this.refresh(this.record(a))}async respond(a,b){let c=this.record(a);if(!c.state.ready||c.state.submitting||c.state.unknown)return;let d=this.epoch;this.patch(c,{submitting:b.id,error:null});try{await this.socket.request(AA.respond,{source:a,response:b}),this.current(c,d)&&c.state.submitting===b.id&&this.patch(c,{submitting:null})}catch(e){if(!this.current(c,d)||!c.state.snapshot.requests.some(a=>a.id===b.id))return;let a=e instanceof Error&&"code"in e;this.patch(c,{submitting:null,unknown:a?null:b.id,error:a?e.message:zm("nativeUiUnknown")}),this.connected&&await this.refresh(c,a)}}async executeCommand(a,b,c){let d=this.record(a);if(!d.state.ready||d.state.commandPending)return;let e=this.epoch;this.patch(d,{commandPending:`/${b}${c?` ${c}`:""}`});try{await this.socket.request(zi.QV.commandExecute,{source:a,command:b,args:c})}catch(a){this.current(d,e)&&this.appendNotice(d,{level:"error",message:a instanceof Error?a.message:zm("operationFailed")})}finally{this.current(d,e)&&this.patch(d,{commandPending:null})}}dispose(){this.disconnected(),this.releasePush?.(),this.releasePush=null,this.records.clear(),this.listeners.clear(),this.notices.clear()}record(a){let b=AB(a),c=this.records.get(b);return c||(c={source:a,latest:null,state:{snapshot:{requests:[],statuses:{},widgets:{}},notices:[],commandPending:null,ready:!1,refreshing:!1,error:null,submitting:null,unknown:null,answers:{},collapsed:!1,prefill:null}},this.records.set(b,c)),c}current(a,b){return this.epoch===b&&this.records.get(AB(a.source))===a}async refresh(a,b=!1){if(!this.connected||a.state.refreshing)return;let c=this.epoch;a.latest=null,this.patch(a,{ready:!1,refreshing:!0});try{let d=await this.socket.request(AA.subscribe,{source:a.source});if(!this.current(a,c))return;this.apply(a,a.latest??d),this.patch(a,{ready:!0,unknown:null,...!b?{error:null}:{}})}catch(b){this.current(a,c)&&this.patch(a,{ready:!1,error:b instanceof Error?b.message:zm("nativeUiFailed")})}finally{this.current(a,c)&&(a.latest=null,this.patch(a,{refreshing:!1}))}}apply(a,b){let c=new Set(b.requests.map(a=>a.id)),d=Object.fromEntries(Object.entries(a.state.answers).filter(([a])=>c.has(a)));this.patch(a,{snapshot:b,answers:d,submitting:a.state.submitting&&c.has(a.state.submitting)?a.state.submitting:null,unknown:a.state.unknown&&c.has(a.state.unknown)?a.state.unknown:null,...b.requests[0]?.id!==a.state.snapshot.requests[0]?.id?{error:null}:{}})}appendNotice(a,b){let c=[...a.state.notices,{level:b.level,message:b.message.slice(0,65536)}].slice(-32),d=c.reduce((a,b)=>a+b.message.length,0);for(;d>65536&&c.length>1;)d-=c.shift().message.length;this.patch(a,{notices:c})}patch(a,b){a.state={...a.state,...b},this.emit()}emit(){for(let a of this.listeners)a()}}let AD=Object.freeze({...z6,syncStatus:"loading"});function AE(a){return z5.Pi.parse({workId:a.workId,sessionId:a.sessionId,branchId:a.branchId})}function AF(a){return JSON.stringify([a.workId,a.sessionId,a.branchId])}function AG(a,b){return a.workId===b.workId&&a.sessionId===b.sessionId&&a.branchId===b.branchId}let AH={text:"",images:[]};function AI(a){return[a.sessionId,a.branchId]}function AJ(a,b){return{sessionId:a.sessionId,branchId:a.branchId,text:b.text,images:b.images}}function AK(a){if(!a||"object"!=typeof a||"string"!=typeof a.text||!Array.isArray(a.images))return null;let b=[];for(let c of a.images){if(!c||"object"!=typeof c||!(c.blob instanceof Blob)||"string"!=typeof c.mimeType||!Number.isSafeInteger(c.width)||c.width<=0||!Number.isSafeInteger(c.height)||c.height<=0||"boolean"!=typeof c.optimized)return null;b.push({blob:c.blob,mimeType:c.mimeType,width:c.width,height:c.height,optimized:c.optimized})}return{text:a.text,images:b}}function AL(a,b){return b?{text:[a.text,b.text].filter(a=>a.trim()).join("\n\n"),images:[...a.images,...b.images]}:a}var AM=c(60141);let AN=new Set(["image/jpeg","image/png","image/webp","image/gif","image/bmp"]),AO=new Set(["image/jpeg","image/png","image/webp","image/gif"]),AP=new Set([192,193,194,195,197,198,199,201,202,203,205,206,207]);function AQ(a){return a.type.toLowerCase().split(";")[0]??""}async function AR(a){let b;try{b=await createImageBitmap(a,{imageOrientation:"from-image"})}catch{throw Error(zm("imageDecodeFailed"))}if(!Number.isSafeInteger(b.width)||b.width<=0||b.height<=0)throw b.close(),Error(zm("imageInvalidDimensions"));return{bitmap:b,width:b.width,height:b.height}}function AS(a,b,c){let d=Math.max(a,b);if(d<=c)return{width:a,height:b};let e=c/d;return{width:Math.max(1,Math.round(a*e)),height:Math.max(1,Math.round(b*e))}}function AT(a,b,c,d,e){let f=document.createElement("canvas");f.width=b,f.height=c;let g=f.getContext("2d");if(!g)throw Error(zm("canvasUnavailable"));return g.drawImage(a,0,0,b,c),new Promise((a,b)=>{f.toBlob(c=>c?a(c):b(Error(zm("imageCompressFailed"))),d,e)})}async function AU(a){let b=new Uint8Array(await a.slice(0,262144).arrayBuffer());if(b.length<4||255!==b[0]||216!==b[1])return null;let c=2;for(;c+3<b.length;){for(;c<b.length&&255!==b[c];)c+=1;for(;c<b.length&&255===b[c];)c+=1;if(c>=b.length)break;let a=b[c];if(c+=1,216===a||1===a||a>=208&&a<=215)continue;if(217===a||218===a||c+1>=b.length)break;let d=b[c]<<8|b[c+1];if(d<2||c+d>b.length)break;if(AP.has(a)&&d>=7)return{width:b[c+5]<<8|b[c+6],height:b[c+3]<<8|b[c+4]};c+=d}return null}async function AV(a){let b=AQ(a);if(!AN.has(b))throw Error(zm("imageTypeUnsupported"));let c=await AR(a);return c.bitmap.close(),{blob:a,mimeType:b,width:c.width,height:c.height,optimized:"image/gif"===b}}async function AW(a){if(a.optimized){if(a.blob.size>0xa00000)throw Error(zm("singleImageLimit"));return a}let b=await AR(a.blob);try{var c;let d=AS(b.width,b.height,2560),e=(c=a.mimeType,"image/jpeg"===c?"image/jpeg":"image/webp"),f=a.blob.size>5242880?.85:"image/jpeg"===e?.9:.92,g=await AT(b.bitmap,d.width,d.height,e,f),h=d.width,i=d.height,j=h!==b.width||i!==b.height,k="image/jpeg"===a.mimeType?await AU(a.blob):null,l="image/jpeg"===a.mimeType&&(null===k||k.width!==b.width||k.height!==b.height),m=AO.has(a.mimeType)&&!l;if(!j&&m&&g.size>=.9*a.blob.size&&(g=a.blob,h=b.width,i=b.height),g.size>0xa00000){let a=AS(b.width,b.height,2048);g=await AT(b.bitmap,a.width,a.height,e,.82),h=a.width,i=a.height}if(g.size>0xa00000)throw Error(zm("compressedImageTooLarge"));let n=AQ(g);if(!AO.has(n))throw Error(zm("compressedTypeUnsupported"));return{blob:g,mimeType:n,width:h,height:i,optimized:!0}}finally{b.bitmap.close()}}async function AX(a){if(!a.optimized)throw Error(zm("imagesPending"));let b=new Uint8Array(await a.blob.arrayBuffer()),c="";for(let a=0;a<b.length;a+=32768)c+=String.fromCharCode(...b.subarray(a,a+32768));return{mimeType:a.mimeType,width:a.width,height:a.height,data:btoa(c)}}function AY(a,b,c=a.optimized?"ready":"optimizing"){return{...a,localId:(0,AM.y)(),objectUrl:URL.createObjectURL(a.blob),name:b,status:c,error:null}}function AZ(a){URL.revokeObjectURL(a.objectUrl)}function A$(a){return JSON.stringify([a.workId,a.sessionId,a.branchId])}function A_(a){return{text:a.text,images:a.images.map(({blob:a,mimeType:b,width:c,height:d,optimized:e})=>({blob:a,mimeType:b,width:c,height:d,optimized:e}))}}function A0(a,b){return a instanceof Error&&a.message?a.message:b}function A1(a,b){return[a,b].filter(a=>a.trim()).join("\n\n")}function A2(a,b,c){return`${A$(a)}\u0000temp\u0000${b}\u0000${c}`}function A3(a,b,c){return`${A$(a)}\u0000entry\u0000${b}\u0000${c}`}function A4(a){for(let b of a)AZ(b)}let A5=(0,S.A)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),A6=(0,S.A)("heading",[["path",{d:"M6 12h12",key:"8npq4p"}],["path",{d:"M6 20V4",key:"1w1bmo"}],["path",{d:"M18 20V4",key:"o2hl4u"}]]),A7=(0,S.A)("fingerprint-pattern",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]),A8=(0,S.A)("rotate-ccw-clock",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),A9=(0,S.A)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);function Ba(a){return a.replace(/[\\/]+$/,"").split(/[\\/]/).at(-1)||a}function Bb(a){return a.trim().toLocaleLowerCase()}let Bc=["title","user"],Bd=[{value:"title",label:"scopeTitle"},{value:"user",label:"scopeUser"},{value:"assistant",label:"scopeAssistant"},{value:"sessionId",label:"Session ID"}];function Be(a,b,c){return"title"===a?c("scopeTitle"):"sessionId"===a?"Session ID":c("user"===a?"scopeUserMatches":"scopeAssistantMatches",{count:b})}function Bf(a){switch(a){case"user":case"assistant":case"title":return"bg-muted text-foreground";case"sessionId":return"bg-muted text-muted-foreground"}}function Bg(a){switch(a){case"user":case"assistant":case"title":return"bg-accent text-accent-foreground";case"sessionId":return"bg-muted-foreground/25 text-foreground"}}function Bh({scope:a,className:b}){switch(a){case"user":return(0,A.jsx)(A5,{className:b});case"assistant":return(0,A.jsx)(ce,{className:b});case"title":return(0,A.jsx)(A6,{className:b});case"sessionId":return(0,A.jsx)(A7,{className:b})}}function Bi(a,b,c="bg-primary/20 text-foreground"){if(!b)return a;let d=a.toLocaleLowerCase(),e=[],f=0,g=d.indexOf(b);for(;g>=0;){g>f&&e.push(a.slice(f,g));let h=g+b.length;e.push((0,A.jsx)("mark",{className:`rounded-sm px-px ${c}`,children:a.slice(g,h)},`${g}-${h}`)),f=h,g=d.indexOf(b,f)}return f<a.length&&e.push(a.slice(f)),e.length?e:a}function Bj({open:a,pickerMode:b,pickerView:c,pickerCwd:d,directories:e,ignoredDirectories:f,directoryBrowser:g,historySessions:h,replacementTarget:i,unavailableSessionIds:j,error:k,loading:l,creatingCwd:m,replacingSessionId:n,updatingIgnoreCwd:o,onOpenChange:p,onBack:q,onSearchHistory:r,onListSessionUserMessages:s,onRefresh:t,onOpenIgnoredDirectories:u,onOpenDirectoryBrowser:v,onNavigateDirectory:w,onSelectBrowserDirectory:x,onReplaceDirectoryIgnore:y,onSelectDirectory:z,onSelectSession:C}){let{t:D}=(0,Q.Bd)("workbenchPicker"),{locale:E,timeZone:F}=(0,cu.i)(),G=(0,B.useMemo)(()=>new Intl.DateTimeFormat("en"===E?"en-US":"zh-CN",{timeZone:F,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),[E,F]),[H,I]=(0,B.useState)(""),[J,K]=(0,B.useState)(Bc),[L,M]=(0,B.useState)(""),[N,O]=(0,B.useState)(null);(0,B.useRef)("");let P=(0,B.useRef)(0),R=(0,B.useRef)(null),S=null!==m||null!==n||null!==o,T=(0,B.useMemo)(()=>new Set(j),[j]),V=Bb(H),W=function(a){let b=a.trim();if(b.length<2)return b;let c=b.at(0);return('"'===c||"'"===c)&&b.at(-1)===c?b.slice(1,-1).trim():b}(L),X=/^(?:[A-Za-z]:[\\/]|[\\/]{2}|\/)/.test(W),Y="ignored"===c?f:e,$=Y.filter(a=>!V||Bb(`${Ba(a.cwd)} ${a.cwd}`).includes(V)),_=(g?.directories??[]).filter(a=>!V||Bb(`${a.name} ${a.cwd}`).includes(V));J.join("\0");let aa=async(a,b,c,e)=>{if(!d)return;let f=++P.current;R.current?.abort();let g=new AbortController;R.current=g,O(c=>({sessionId:a,query:b,messages:e&&c?.sessionId===a?c.messages:[],page:e&&c?.sessionId===a?c.page:null,loading:!0,error:null}));try{let h=await s({cwd:d,sessionId:a,query:b,page:{index:c,size:20}},g.signal);if(P.current!==f)return;O(c=>({sessionId:a,query:b,messages:e&&c?.sessionId===a?[...c.messages,...h.messages]:h.messages,page:h.page,loading:!1,error:null}))}catch(c){if(P.current!==f||c instanceof Error&&"AbortError"===c.name)return;O(d=>({sessionId:a,query:b,messages:d?.sessionId===a?d.messages:[],page:d?.sessionId===a?d.page:null,loading:!1,error:c instanceof Error?c.message:D("loadUserFailed")}))}finally{R.current===g&&(R.current=null)}},ab=a=>{if(N?.sessionId===a.sessionId){P.current+=1,R.current?.abort(),R.current=null,O(null);return}let b=a.matches?.some(a=>"user"===a.scope)?V:"";aa(a.sessionId,b,1,!1)},ac="ignored"===c?D("ignoredRestoreTitle"):"browser"===c?D("browseOtherTitle"):"replace"===b?D("replaceTitle"):D("createTitle"),ad="ignored"===c?D("ignoredRestoreDescription"):"browser"===c?D("browseDescription"):"replace"===b?i?D("replaceDescription",{project:i.projectName,session:i.sessionTitle??D("newSession")}):D("replaceMissingDescription"):D("createDescription"),ae="history"===c?D("searchHistory"):"browser"===c?D("searchBrowser"):"ignored"===c?D("searchIgnored"):D("searchProjects"),af="history"===c?h.length:"browser"===c?g?.directories.length??0:Y.length,ag=l&&("browser"===c?null===g:0===af),ah="history"===c?D("currentProject",{path:d??""}):"ignored"===c?D("ignoredCount",{count:f.length}):"browser"===c?g?.cwd??D("rootChoose"):"replace"===b?D("replaceChooseFirst"):D("regularExcludesIgnored"),ai="history"===c?D("loadingHistory"):"ignored"===c?D("loadingIgnored"):"browser"===c?D("loadingBrowser"):D("loadingProjects"),aj=a=>{I(""),M(""),w(a)},ak=()=>{l||S||!X||(I(""),w(W))};return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>{(a||!S)&&p(a)},children:(0,A.jsxs)(b3.hA,{className:"h-[min(44rem,calc(100dvh-2rem))] max-w-[45rem]",showCloseButton:!S,finalFocus:!1,children:[(0,A.jsx)(b3.Hl,{className:"border-b px-4 py-3 pr-12",children:(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:["directories"!==c?(0,A.jsx)("button",{type:"button",disabled:S,onClick:q,"aria-label":D("backFolders"),title:D("backFolders"),className:(0,U.r)({variant:"ghost",size:"icon"}),children:(0,A.jsx)(Z.A,{className:"size-4"})}):(0,A.jsx)("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground",children:(0,A.jsx)(cd.A,{className:"size-4"})}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)(b3.YM,{children:ac}),(0,A.jsx)(b3.uX,{className:"mt-1 truncate",title:ad,children:ad})]})]})}),(0,A.jsxs)("div",{className:"shrink-0 border-b px-3 py-2.5 sm:px-4",children:["browser"===c?(0,A.jsxs)("div",{className:"mb-2",children:[(0,A.jsxs)("div",{className:"flex gap-2",children:[(0,A.jsxs)("div",{className:"relative min-w-0 flex-1",children:[(0,A.jsx)(zN.A,{className:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground"}),(0,A.jsx)(bU.p,{value:L,onChange:a=>M(a.target.value),onKeyDown:a=>{"Enter"===a.key&&X&&(a.preventDefault(),ak())},placeholder:D("pastePath"),"aria-label":D("fullPath"),disabled:l||S,className:"pl-9"})]}),(0,A.jsx)("button",{"data-testid":"workbench-picker-open-directory-path",type:"button",disabled:l||S||!X,onClick:ak,title:X?D("openTyped"):D("enterAbsolute"),className:(0,U.r)({variant:"outline"}),children:D("open")})]}),(0,A.jsx)("p",{className:"mt-1.5 px-0.5 text-sm text-muted-foreground",children:L.trim()&&!X?D("absoluteExample"):D("pasteHint")})]}):null,(0,A.jsxs)("div",{className:"relative",children:[(0,A.jsx)(bV.A,{className:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground"}),(0,A.jsx)(bU.p,{value:H,onChange:a=>I(a.target.value),placeholder:ae,"aria-label":ae,disabled:S,className:"pl-9"})]}),"history"===c?(0,A.jsxs)("fieldset",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1.5 px-0.5",children:[(0,A.jsx)("legend",{className:"mr-1 text-xs text-muted-foreground",children:D("searchScopes")}),Bd.map(a=>{let b=J.includes(a.value);return(0,A.jsxs)("label",{className:"flex min-h-7 cursor-pointer items-center gap-2 text-sm text-muted-foreground has-[:focus-visible]:rounded-sm has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring",children:[(0,A.jsx)("input",{type:"checkbox",checked:b,disabled:S||b&&1===J.length,onChange:()=>{var b;return b=a.value,void K(a=>a.includes(b)?1===a.length?a:a.filter(a=>a!==b):[...a,b])},className:"size-4 accent-primary"}),(0,A.jsx)("span",{children:D(a.label)})]},a.value)})]}):null]}),(0,A.jsx)(b3._Y,{className:"max-h-none min-h-0",children:(0,A.jsxs)("div",{className:"p-2 sm:p-3","aria-busy":l||S,"aria-live":"polite",children:[k?(0,A.jsx)("p",{role:"alert",className:"mb-2 rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:k}):null,"replace"===b&&null===i?(0,A.jsx)("p",{role:"alert",className:"mb-2 rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:D("replaceTargetMissing")}):null,ag?(0,A.jsxs)("div",{className:"flex min-h-36 flex-col items-center justify-center gap-3 text-center text-sm text-muted-foreground",children:[(0,A.jsx)(bK.A,{className:"size-5 animate-spin"}),(0,A.jsx)("p",{children:ai})]}):"history"===c?0===h.length?null===k?(0,A.jsx)("p",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:V?D("noHistoryMatches"):D("noReplaceHistory")}):null:(0,A.jsxs)(A.Fragment,{children:[V?(0,A.jsx)("p",{className:"px-3 pb-1 pt-0.5 text-xs text-muted-foreground",children:D("sessionFound",{count:h.length})}):null,(0,A.jsx)("div",{className:"divide-y",children:h.map(a=>{let b,c=a.name?.trim()||a.firstMessage.trim()||D("sessionFallback",{id:a.sessionId.slice(0,8)}),d=D("sessionMessages",{users:a.userMessageCount,total:a.messageCount,time:(b=a.updatedAt,G.format(b))}),e=i?.sessionId===a.sessionId,f=T.has(a.sessionId),g=n===a.sessionId,h=null===i,j=S||e||f||h,k=N?.sessionId===a.sessionId?N:null,l=a.matches??[],m=l.filter(a=>"title"!==a.scope),o=l.find(a=>"user"===a.scope),p=null===k&&m.length>0,q=`workbench-picker-user-message-panel-${a.sessionId}`,r=g?D("replacing"):e?D("current"):f?D("alreadyUsed"):h?D("targetUnavailable"):D("replace"),s=e?D("currentBound"):f?D("historyUsed"):h?D("replaceTargetUnavailable"):D("replaceWith",{name:c}),t=k?D("hideUserMessages"):o?D("viewMatching",{count:o.count}):D("viewUserMessages",{count:a.userMessageCount}),u=k?.page!==null&&null!==k&&k.messages.length<k.page.total;return(0,A.jsxs)("div",{className:"px-2 sm:px-3",children:[(0,A.jsxs)("div",{className:"flex min-h-15 items-center gap-2 py-2",children:[(0,A.jsx)(A8,{className:"size-4 shrink-0 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-medium",title:c,children:l.some(a=>"title"===a.scope)?Bi(c,V,Bg("title")):c}),(0,A.jsx)("p",{className:"mt-0.5 truncate text-xs text-muted-foreground",title:d,children:d})]}),a.userMessageCount>0?(0,A.jsx)("button",{"data-testid":`workbench-picker-user-messages-${a.sessionId}`,type:"button",disabled:S,"aria-label":t,"aria-expanded":null!==k,"aria-controls":q,onClick:()=>ab(a),title:t,className:(0,U.r)({variant:"ghost",size:"icon"}),children:(0,A.jsx)(cn.A,{className:`size-4 transition-transform${k?" rotate-180":""}`})}):null,(0,A.jsx)("button",{"data-testid":`workbench-picker-replace-${a.sessionId}`,type:"button",disabled:j,onClick:()=>C(a.sessionId),title:s,className:(0,U.r)({variant:"outline"}),children:g?(0,A.jsx)(bK.A,{className:"size-3.5 animate-spin"}):r})]}),p?(0,A.jsx)("div",{className:"mb-2 ml-6 min-w-0 space-y-1.5 overflow-hidden",children:m.map(b=>{let c,d="user"===b.scope,e=(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Bh,{scope:b.scope,className:"mt-0.5 size-3.5 shrink-0"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-xs leading-5",children:[(0,A.jsx)("span",{className:`shrink-0 rounded px-1.5 py-0.5 font-medium ${Bf(b.scope)}`,children:Be(b.scope,b.count,D)}),null!==b.timestampMs?(0,A.jsx)("span",{className:"truncate text-muted-foreground",children:(c=b.timestampMs,G.format(c))}):null]}),(0,A.jsx)("p",{className:"mt-1 line-clamp-2 break-words text-sm leading-5 text-foreground",children:Bi(b.preview,V,Bg(b.scope))})]})]}),f=`flex w-full max-w-full min-w-0 items-start gap-2 overflow-hidden rounded-md px-2.5 py-2 text-left ${Bf(b.scope)}`;return d?(0,A.jsx)("button",{"data-testid":`workbench-picker-user-message-preview-${a.sessionId}`,type:"button",disabled:S,onClick:()=>ab(a),"aria-label":D("viewMatch",{label:Be(b.scope,b.count,D)}),className:`${f} outline-none transition-colors hover:brightness-95 focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50`,children:e},b.scope):(0,A.jsx)("div",{className:f,children:e},b.scope)})}):null,k?(0,A.jsxs)("div",{id:q,"data-testid":q,className:"mb-2 ml-6 rounded-md border bg-background px-3 py-2.5",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[(0,A.jsxs)("p",{className:"flex min-w-0 items-center gap-1.5 text-xs font-medium",children:[(0,A.jsx)(A9,{className:"size-3.5 shrink-0 text-primary"}),(0,A.jsx)("span",{className:"truncate",children:k.query?D("matchingUserCount",{count:k.page?.total??0}):D("userCount",{count:k.page?.total??a.userMessageCount})})]}),k.query?(0,A.jsx)("button",{type:"button",disabled:k.loading||S,onClick:()=>void aa(a.sessionId,"",1,!1),className:(0,U.r)({variant:"ghost",size:"sm"}),children:D("viewAll")}):null]}),k.error?(0,A.jsx)("p",{className:"mt-2 text-xs text-destructive",children:k.error}):null,k.loading&&0===k.messages.length?(0,A.jsx)("div",{className:"flex min-h-16 items-center justify-center text-muted-foreground",children:(0,A.jsx)(bK.A,{className:"size-4 animate-spin"})}):0===k.messages.length?(0,A.jsx)("p",{className:"py-4 text-center text-xs text-muted-foreground",children:D("noUserMessages")}):(0,A.jsx)("div",{className:"mt-2 divide-y",children:k.messages.map(a=>{let b;return(0,A.jsxs)("div",{className:"py-2 first:pt-0 last:pb-0",children:[(0,A.jsx)("p",{className:"text-xs tabular-nums text-muted-foreground",children:(b=a.timestampMs,G.format(b))}),(0,A.jsx)("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm leading-6",children:a.text?Bi(a.text,k.query):D("noText")})]},a.entryId)})}),u?(0,A.jsxs)("button",{type:"button",disabled:k.loading||S,onClick:()=>void aa(a.sessionId,k.query,(k.page?.index??0)+1,!0),className:(0,U.r)({variant:"outline",className:"mt-2"}),children:[k.loading?(0,A.jsx)(bK.A,{className:"size-3.5 animate-spin"}):null,D("loadMore")]}):null]}):null]},a.sessionId)})})]}):"browser"===c?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"mb-2 flex min-h-10 items-center gap-2 rounded-md bg-muted/60 px-3 text-xs text-muted-foreground",children:[(0,A.jsx)(zN.A,{className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"truncate",title:g?.cwd??D("root"),children:g?.cwd??D("root")})]}),0===_.length?null===k?(0,A.jsx)("p",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:(g?.directories.length??0)===0?g?.cwd?D("browserEmpty"):D("rootsEmpty"):D("subfoldersNoMatches")}):null:(0,A.jsx)("div",{className:"divide-y",children:_.map(a=>(0,A.jsxs)("button",{type:"button",disabled:l||S,onClick:()=>aj(a.cwd),className:"group flex min-h-15 w-full items-center gap-3 rounded-md px-2 py-2 text-left outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-55 sm:px-3",children:[(0,A.jsx)(cd.A,{className:"size-4 shrink-0 text-muted-foreground group-hover:text-primary"}),(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsx)("span",{className:"block truncate text-sm font-medium",title:a.name,children:a.name}),(0,A.jsx)("span",{className:"mt-0.5 block truncate text-xs text-muted-foreground",title:a.cwd,children:a.cwd})]}),(0,A.jsx)(bo.A,{className:"size-4 shrink-0 text-muted-foreground group-hover:text-foreground"})]},a.cwd))})]}):0===$.length?null===k?(0,A.jsx)("p",{className:"px-3 py-10 text-center text-sm text-muted-foreground",children:0===Y.length?"ignored"===c?D("ignoredEmpty"):D("projectsEmpty"):D("projectNoMatches")}):null:"ignored"===c?(0,A.jsx)("div",{className:"divide-y",children:$.map(a=>{let b=Ba(a.cwd),c=o===a.cwd;return(0,A.jsxs)("div",{className:"flex min-h-15 items-center gap-3 px-2 py-2 sm:px-3",children:[(0,A.jsx)(cd.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-medium",title:b,children:b}),(0,A.jsx)("p",{className:"mt-0.5 truncate text-xs text-muted-foreground",title:a.cwd,children:a.cwd})]}),(0,A.jsxs)("button",{"data-testid":`workbench-picker-restore-directory-${a.cwd}`,type:"button",disabled:S,onClick:()=>y(a.cwd,!1),"aria-label":D("restoreFolder",{name:b}),title:D("restoreTip"),className:(0,U.r)({variant:"outline"}),children:[c?(0,A.jsx)(bK.A,{className:"size-3.5 animate-spin"}):(0,A.jsx)(pB,{className:"size-3.5"}),(0,A.jsx)("span",{children:D("restore")})]})]},a.cwd)})}):(0,A.jsx)("div",{className:"divide-y",children:$.map(a=>{let c,d=Ba(a.cwd),e=D("directorySessions",{count:a.sessionCount,time:(c=a.updatedAt,G.format(c))}),f=m===a.cwd,g=o===a.cwd;return(0,A.jsxs)("div",{className:"flex items-center gap-1",children:[(0,A.jsxs)("button",{"data-testid":`workbench-picker-directory-${a.cwd}`,type:"button",disabled:S,onClick:()=>z(a.cwd),className:"group flex min-h-15 min-w-0 flex-1 items-center gap-3 rounded-md px-2 py-2 text-left outline-none transition-colors hover:bg-muted/70 focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-55 sm:px-3",children:[(0,A.jsx)(cd.A,{className:"size-4 shrink-0 text-muted-foreground group-hover:text-primary"}),(0,A.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,A.jsx)("span",{className:"block truncate text-sm font-medium",title:d,children:d}),(0,A.jsx)("span",{className:"mt-0.5 block truncate text-xs text-muted-foreground",title:a.cwd,children:a.cwd})]}),f?(0,A.jsxs)("span",{className:"flex min-h-10 shrink-0 items-center gap-1.5 text-xs text-muted-foreground",children:[(0,A.jsx)(bK.A,{className:"size-3.5 animate-spin"}),D("creating")]}):(0,A.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",title:e,children:[(0,A.jsx)("span",{children:D("directoryCount",{count:a.sessionCount})}),(0,A.jsx)(bo.A,{className:"size-4 group-hover:text-foreground"})]})]}),"create"===b?(0,A.jsx)("button",{"data-testid":`workbench-picker-ignore-directory-${a.cwd}`,type:"button",disabled:S,onClick:()=>y(a.cwd,!0),"aria-label":D("ignoreFolder",{name:d}),title:D("ignoreTip"),className:(0,U.r)({variant:"ghost",size:"icon"}),children:g?(0,A.jsx)(bK.A,{className:"size-3.5 animate-spin"}):(0,A.jsx)(n9.A,{className:"size-4"})}):null]},a.cwd)})})]})}),(0,A.jsxs)(b3.vu,{className:"flex-row flex-wrap items-center justify-between gap-2 px-3 py-2.5 sm:px-4",children:[(0,A.jsx)("p",{className:"min-w-24 flex-1 truncate text-xs text-muted-foreground",title:ah,children:ah}),(0,A.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:["create"===b&&"directories"===c?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("button",{type:"button",disabled:l||S,onClick:u,className:(0,U.r)({variant:"outline"}),children:D("ignoredFolders")}),(0,A.jsx)("button",{type:"button",disabled:l||S,onClick:v,className:(0,U.r)({variant:"outline"}),children:D("chooseOther")})]}):null,"browser"===c&&g?.cwd?(0,A.jsx)("button",{"data-testid":"workbench-picker-select-browser-directory",type:"button",disabled:l||S,onClick:()=>x(g.cwd),className:(0,U.r)(),children:D("selectCurrent")}):null,"browser"===c&&g?.parentCwd?(0,A.jsx)("button",{type:"button",disabled:l||S,onClick:()=>aj(g.parentCwd),"aria-label":D("parentDirectory"),title:D("parentDirectory"),className:(0,U.r)({variant:"outline",size:"icon"}),children:(0,A.jsx)(Z.A,{className:"size-4"})}):null,"browser"===c&&g?.cwd?(0,A.jsx)("button",{type:"button",disabled:l||S,onClick:()=>aj(null),"aria-label":D("backRoots"),title:D("backRoots"),className:(0,U.r)({variant:"outline",size:"icon"}),children:(0,A.jsx)(zN.A,{className:"size-4"})}):null,(0,A.jsx)("button",{"data-testid":"workbench-picker-refresh",type:"button",disabled:l||S,onClick:()=>t(V,J),"aria-label":D("refreshList"),title:D("refreshList"),className:(0,U.r)({variant:"outline",size:"icon"}),children:(0,A.jsx)(bK.A,{className:`size-4${l?" animate-spin":""}`})})]})]})]})})}function Bk({variant:a,className:b,children:c}){let{t:d}=(0,Q.Bd)("workbench");return(0,A.jsx)("div",{className:(0,W.cn)("@container/empty-state flex size-full min-h-0 flex-1 items-center justify-center overflow-hidden px-6 py-8 text-center",b),children:"select-session"===a?(0,A.jsxs)("div",{className:"relative",children:[c,(0,A.jsx)("h1",{className:"text-base font-medium text-muted-foreground",children:d("emptySelectSession")})]}):(0,A.jsxs)("div",{role:"status","aria-live":"polite",className:"flex flex-col items-center gap-3 animate-in fade-in-0 fill-mode-both delay-150 duration-150 motion-reduce:animate-none",children:[(0,A.jsx)(R.A,{className:"size-5 animate-spin text-muted-foreground motion-reduce:animate-none"}),(0,A.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:d("emptyLoading")})]})})}let Bl=(0,S.A)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),Bm=(0,S.A)("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),Bn="u">typeof window?B.useLayoutEffect:B.useEffect;function Bo(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class Bp extends B.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(xo(b)&&a.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let a=b.offsetParent,c=xo(a)&&a.offsetWidth||0,d=xo(a)&&a.offsetHeight||0,e=getComputedStyle(b),f=this.props.sizeRef.current;f.height=parseFloat(e.height),f.width=parseFloat(e.width),f.top=b.offsetTop,f.left=b.offsetLeft,f.right=c-f.width-f.left,f.bottom=d-f.height-f.top,f.direction=e.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function Bq({children:a,isPresent:b,anchorX:c,anchorY:d,root:e,pop:f}){let g=(0,B.useId)(),h=(0,B.useRef)(null),i=(0,B.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:j}=(0,B.useContext)(t5),k=function(...a){return B.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=Bo(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():Bo(a[b],null)}}}}(...a),a)}(h,!1!==f?a.props?.ref??a?.ref:void 0);return(0,B.useInsertionEffect)(()=>{let{width:a,height:k,top:l,left:m,right:n,bottom:o,direction:p}=i.current;if(b||!1===f||!h.current||!a||!k)return;let q="rtl"===p,r="left"===c?q?`right: ${n}`:`left: ${m}`:q?`left: ${m}`:`right: ${n}`,s="bottom"===d?`bottom: ${o}`:`top: ${l}`;h.current.dataset.motionPopId=g;let t=document.createElement("style");j&&(t.nonce=j);let u=e??document.head;return u.appendChild(t),t.sheet&&t.sheet.insertRule(`
410
410
  [data-motion-pop-id="${g}"] {
411
411
  position: absolute !important;
@@ -417,4 +417,4 @@ ${b.skillPath}`,className:(0,W.cn)("min-h-14 w-full justify-start whitespace-nor
417
417
  `),()=>{h.current?.removeAttribute("data-motion-pop-id"),u.contains(t)&&u.removeChild(t)}},[b]),(0,A.jsx)(Bp,{isPresent:b,childRef:h,sizeRef:i,pop:f,children:!1===f?a:B.cloneElement(a,{ref:k})})}let Br=({children:a,initial:b,isPresent:c,onExitComplete:d,custom:e,presenceAffectsLayout:f,mode:g,anchorX:h,anchorY:i,root:j})=>{let k=uf(Bs),l=(0,B.useId)(),m=(0,B.useRef)(c),n=(0,B.useRef)(d);Bn(()=>{m.current=c,n.current=d});let o=!0,p=(0,B.useMemo)(()=>(o=!1,{id:l,initial:b,isPresent:c,custom:e,onExitComplete:a=>{for(let b of(k.set(a,!0),k.values()))if(!b)return;d&&d()},register:a=>(k.set(a,!1),()=>{k.delete(a),m.current||k.size||n.current?.()})}),[c,k,d]);return f&&o&&(p={...p}),(0,B.useMemo)(()=>{k.forEach((a,b)=>k.set(b,!1))},[c]),B.useEffect(()=>{c||k.size||!d||d()},[c]),a=(0,A.jsx)(Bq,{pop:"popLayout"===g,isPresent:c,anchorX:h,anchorY:i,root:j,children:a}),(0,A.jsx)(ue.Provider,{value:p,children:a})};function Bs(){return new Map}let Bt=a=>a.key||"";function Bu(a){let b=[];return B.Children.forEach(a,a=>{(0,B.isValidElement)(a)&&b.push(a)}),b}let Bv=({children:a,custom:b,initial:c=!0,onExitComplete:d,presenceAffectsLayout:e=!0,mode:f="sync",propagate:g=!1,anchorX:h="left",anchorY:i="top",root:j})=>{let[k,l]=wm(g),m=(0,B.useMemo)(()=>Bu(a),[a]),n=g&&!k?[]:m.map(Bt),o=(0,B.useRef)(!0),p=(0,B.useRef)(m),q=uf(()=>new Map),r=(0,B.useRef)(new Set),[s,t]=(0,B.useState)(m),[u,v]=(0,B.useState)(m);Bn(()=>{!g||k||u.length||l?.()},[k,g,u.length,l]),Bn(()=>{o.current=!1,p.current=m;for(let a=0;a<u.length;a++){let b=Bt(u[a]);n.includes(b)?(q.delete(b),r.current.delete(b)):!0!==q.get(b)&&q.set(b,!1)}},[u,n.length,n.join("-")]);let w=[];if(m!==s){let a=[...m];for(let b=0;b<u.length;b++){let c=u[b],d=Bt(c);n.includes(d)||(a.splice(b,0,c),w.push(c))}return"wait"===f&&w.length&&(a=w),v(Bu(a)),t(m),null}let{forceRender:x}=(0,B.useContext)(t4);return(0,A.jsx)(A.Fragment,{children:u.map(a=>{let s=Bt(a),t=(!g||!!k)&&(m===u||n.includes(s));return(0,A.jsx)(Br,{isPresent:t,initial:(!o.current||!!c)&&void 0,custom:b,presenceAffectsLayout:e,mode:f,root:j,onExitComplete:t?void 0:()=>{if(r.current.has(s)||!q.has(s))return;r.current.add(s),q.set(s,!0);let a=!0;q.forEach(b=>{b||(a=!1)}),a&&(x?.(),v(p.current),g&&l?.(),d&&d())},anchorX:h,anchorY:i,children:a},s)})})};function Bw(){tm.current||to();let[a]=(0,B.useState)(tl.current);return a}let Bx=new Set(["custom","model_change","thinking_level_change","session_info","label"]),By=[],Bz=[{value:"default",label:"filterDefault"},{value:"no-tools",label:"filterNoTools"},{value:"user-only",label:"filterUserOnly"},{value:"labeled-only",label:"filterLabeled"},{value:"all",label:"filterAll"}],BA={user:{label:"kindUser",labelClassName:"font-semibold text-primary",contentClassName:"font-medium text-foreground",rowClassName:""},assistant:{label:"AI",labelClassName:"font-medium text-muted-foreground",contentClassName:"text-foreground",rowClassName:""},tool:{label:"kindTool",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:"text-muted-foreground"},bash:{label:"Bash",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:"text-muted-foreground"},custom_message:{label:"kindMessage",labelClassName:"text-muted-foreground",contentClassName:"text-foreground",rowClassName:""},compaction:{label:"kindCompaction",labelClassName:"font-medium text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:"bg-primary/[0.025]"},branch_summary:{label:"kindBranchSummary",labelClassName:"font-medium text-foreground",contentClassName:"text-muted-foreground",rowClassName:"bg-amber-500/[0.025]"},custom:{label:"kindCustom",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:""},model_change:{label:"kindModel",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:""},thinking_level_change:{label:"kindThinking",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:""},session_info:{label:"kindSession",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:""},label:{label:"kindLabel",labelClassName:"text-muted-foreground",contentClassName:"text-muted-foreground",rowClassName:""}};function BB(a){switch(a.action){case"tree":return"treeIntent";case"fork":return"forkIntent";case"clone":return"cloneIntent"}}function BC(a){a.preventDefault()}function BD({confirmation:a,disabled:b,onConfirm:c,onBack:d}){let{t:e}=(0,Q.Bd)("workbenchPicker"),[f,g]=(0,B.useState)(0),h=(0,B.useRef)(new Map),i=e=>{a.waiting||b&&0===e||(0===e?c():d())};return(0,A.jsxs)("div",{className:"p-3 sm:p-4",onKeyDown:a=>{if(a.stopPropagation(),"Escape"===a.key){a.preventDefault(),d();return}if("ArrowUp"===a.key||"ArrowDown"===a.key||"ArrowLeft"===a.key||"ArrowRight"===a.key){a.preventDefault();let b=+(0===f);g(b),queueMicrotask(()=>h.current.get(b)?.focus());return}"Enter"===a.key&&(a.preventDefault(),i(f))},children:[(0,A.jsxs)("div",{className:"rounded-lg border bg-muted/25 px-3 py-2.5",children:[(0,A.jsx)("p",{className:"text-sm font-semibold",children:e("runningTitle")}),(0,A.jsx)("p",{className:"mt-1 text-xs leading-5 text-muted-foreground",children:"main"===a.reason?e("runningStop",{action:e(BB(a.intent))}):e("runningWait",{action:e(BB(a.intent))})})]}),(0,A.jsx)("div",{className:"mt-3 grid grid-cols-2 gap-2",children:[{label:e(a.waiting?"confirming":"confirmContinue"),confirm:!0},{label:e("back"),confirm:!1}].map((c,d)=>(0,A.jsxs)("button",{ref:a=>{a?h.current.set(d,a):h.current.delete(d)},type:"button",disabled:a.waiting||b&&c.confirm,tabIndex:f===d?0:-1,className:(0,W.cn)("flex min-h-11 items-center justify-center gap-2 rounded-lg border px-3 text-sm font-medium outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-wait disabled:opacity-60",f===d?"border-primary/40 bg-primary/10 text-foreground":"border-border bg-background hover:bg-muted/60"),onFocus:()=>g(d),onClick:()=>i(d),children:[a.waiting&&c.confirm?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):null,c.label]},c.label))}),(0,A.jsx)("p",{className:"mt-2 text-center text-xs text-muted-foreground",children:e("confirmHint")})]})}function BE({model:a,projectName:b,sessionTitle:c,mobile:d,onClose:e,onRetry:f,onSelectEntry:g,onAction:h,onConfirmRunning:i,onCancelRunning:j}){let{t:k}=(0,Q.Bd)("workbenchPicker"),l=wn(),m=Bw(),{locale:n,timeZone:o}=(0,cu.i)(),p=(0,B.useMemo)(()=>new Intl.DateTimeFormat("en"===n?"en-US":"zh-CN",{timeZone:o,timeZoneName:"shortOffset",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}),[n,o]),[q,r]=(0,B.useState)(""),[s,t]=(0,B.useState)("default"),[u,v]=(0,B.useState)(!1),[w,x]=(0,B.useState)(()=>new Set),[y,z]=(0,B.useState)(null),[C,D]=(0,B.useState)(0),[E,F]=(0,B.useState)(480),G=(0,B.useRef)(null),H=(0,B.useRef)(null),I=(0,B.useRef)(null);(0,B.useRef)(null);let J=(0,B.useRef)(!1),K=a.tree?.nodes??By,L=(0,B.useMemo)(()=>(function(a){let b=new Map;a.nodes.forEach((a,c)=>b.set(a.entryId,{node:a,index:c}));let c=function(a,b){let c=new Set,d=b;for(;d&&!c.has(d);){let b=a.get(d);if(!b)break;c.add(d),d=b.node.parentEntryId}return c}(b,a.leafEntryId),d=new Set(a.nodes.filter(b=>(function(a,b,c){if("assistant"===a.kind&&!a.preview&&a.entryId!==c)return!1;switch(b){case"default":return!Bx.has(a.kind);case"no-tools":return!Bx.has(a.kind)&&"tool"!==a.kind;case"user-only":return"user"===a.kind;case"labeled-only":return null!==a.label;case"all":return!0}})(b,a.filter,a.leafEntryId)&&function(a,b){let c=b.toLocaleLowerCase().split(/\s+/).filter(Boolean);if(0===c.length)return!0;let d=[a.kind,a.preview,a.label??""].join(" ").toLocaleLowerCase();return c.every(a=>d.includes(a))}(b,a.query)).map(a=>a.entryId)),e=new Map,f=new Map;for(let a of b.values()){if(!d.has(a.node.entryId))continue;let c=a.node.parentEntryId,g=new Set;for(;c&&!d.has(c);){if(g.has(c)){c=null;break}g.add(c),c=b.get(c)?.node.parentEntryId??null}c===a.node.entryId&&(c=null),f.set(a.node.entryId,c);let h=e.get(c)??[];h.push(a),e.set(c,h)}for(let a of e.values())a.sort((a,b)=>(function(a,b,c){let d=Number(!c.has(a.node.entryId))-Number(!c.has(b.node.entryId));if(0!==d)return d;let e=a.node.timestampMs-b.node.timestampMs;return 0!==e?e:a.index-b.index})(a,b,c));let g=[],h=new Set;return(b=>{let d=[...b].reverse().map(a=>({indexed:a,depth:0,connector:!1,lastSibling:!0}));for(;d.length>0;){let b=d.pop(),i=b.indexed.node.entryId;if(h.has(i))continue;h.add(i);let j=e.get(i)??[],k=f.get(i)??null,l=null===k?[]:e.get(k)??[],m=j.length>0&&(null===k||l.length>1),n=!m||!a.foldedEntryIds.has(i);if(g.push({node:b.indexed.node,depth:b.depth,active:c.has(i),current:i===a.leafEntryId,hasChildren:j.length>0,foldable:m,expanded:n,connector:b.connector,lastSibling:b.lastSibling,visibleParentEntryId:f.get(i)??null}),!n)continue;let o=j.length>1;for(let[a,c]of[...j].reverse().entries()){let e=j.length-a-1;d.push({indexed:c,depth:b.depth+ +!!o,connector:o,lastSibling:e===j.length-1})}}})(e.get(null)??[]),g})({nodes:K,leafEntryId:a.tree?.leafEntryId??null,filter:s,query:q,foldedEntryIds:w}),[s,w,a.tree?.leafEntryId,K,q]),M=function(a,b,c){if(0===b.length)return null;let d=new Set(b.map(a=>a.node.entryId)),e=new Map(a.map(a=>[a.entryId,a])),f=c,g=new Set;for(;f&&!g.has(f);){if(d.has(f))return f;g.add(f),f=e.get(f)?.parentEntryId??null}return b.at(-1)?.node.entryId??null}(K,L,y??a.tree?.leafEntryId??null),N=L.findIndex(a=>a.node.entryId===M),O=N>=0?L[N]:null,P=Math.max(0,Math.floor(C/36)-8),S=Math.min(L.length,Math.ceil((C+E)/36)+8),T=Math.min(L.length,Math.max(S,P+8)),V=L.slice(P,T),X=a.detail?.entryId===M?a.detail:null,Y=k(Bz.find(a=>a.value===s)?.label??"filterDefault"),Z=a.runningConfirmation,$=`work-session-branch-tree-${a.workId}`,_=M?`${$}-entry-${M}`:void 0,aa=(0,B.useCallback)(()=>{d?H.current?.focus({preventScroll:!0}):G.current?.focus({preventScroll:!0})},[d]),ab=(0,B.useCallback)(b=>{a.pending||(J.current=b,e())},[a.pending,e]),ac=(0,B.useCallback)(a=>{I.current&&(I.current.scrollTop=a),D(a)},[]),ad=(0,B.useCallback)(a=>{if(0===L.length)return;let b=Math.max(0,Math.min(L.length-1,a));z(L[b].node.entryId);let c=I.current;if(!c)return;let d=36*b,e=d+36,f=c.scrollTop;d<c.scrollTop?f=d:e>c.scrollTop+c.clientHeight&&(f=e-c.clientHeight),ac(f)},[36,L,ac]),ae=(0,B.useCallback)((a,b)=>{x(c=>{let d=new Set(c);return b??!d.has(a)?d.add(a):d.delete(a),d})},[]),af=(0,B.useCallback)(a=>{t(a),x(new Set),ac(0),queueMicrotask(aa)},[aa,ac]),ag=(0,B.useCallback)(a=>{let b=(Bz.findIndex(a=>a.value===s)+a+Bz.length)%Bz.length;af(Bz[b].value)},[af,s]),ah=(0,B.useCallback)((b,c)=>{a.actionsDisabled||(J.current=!1,h(b,c))},[a.actionsDisabled,h]),ai=(0,B.useCallback)(()=>{!O||O.current||a.pending||ah(O.node.entryId,"tree")},[a.pending,ah,O]),aj=(0,B.useCallback)(()=>{if(!O?.visibleParentEntryId)return;let a=L.findIndex(a=>a.node.entryId===O.visibleParentEntryId);a>=0&&ad(a)},[L,ad,O]),ak=(0,B.useCallback)(()=>{if(!O)return;let a=L.findIndex(a=>a.visibleParentEntryId===O.node.entryId);a>=0&&ad(a)},[L,ad,O]),am=(0,B.useCallback)(()=>{Z?j():q?(r(""),x(new Set),ac(0)):ab(!0)},[Z,j,q,ab,ac]),an=O?.node??null,ao=an?BA[an.kind]:null,ap=Z?d?"inset-x-0 bottom-0 rounded-t-2xl border-x-0 border-b-0":"inset-x-2 bottom-2 h-auto max-h-[calc(100%-4rem)] rounded-xl":d?"inset-x-0 bottom-0 top-14 rounded-t-2xl border-x-0 border-b-0":"inset-x-2 bottom-2 h-[min(82%,48rem)] rounded-xl";return(0,A.jsxs)(xD.div,{className:"pointer-events-none absolute inset-0 z-30","aria-hidden":!l||void 0,inert:!l||void 0,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15*!m,ease:"easeOut"},children:[(0,A.jsx)("div",{"aria-hidden":"true","data-carousel-swipe-lock":!0,className:(0,W.cn)("absolute inset-x-0 bottom-0 top-14 z-30 bg-background/65",l?"pointer-events-auto":"pointer-events-none")}),(0,A.jsxs)(xD.section,{ref:H,initial:{y:12*!m},animate:{y:0},exit:{y:8*!m},transition:{duration:.2*!m,ease:"easeOut"},tabIndex:-1,"data-carousel-swipe-lock":!0,role:"region","aria-label":k("branchPicker"),"aria-busy":a.pending||a.loading,className:(0,W.cn)("absolute z-40 flex min-h-0 flex-col overflow-hidden border bg-popover text-popover-foreground shadow-lg outline-none",l?"pointer-events-auto":"pointer-events-none",ap),children:[(0,A.jsxs)("header",{className:"shrink-0 border-b bg-muted/10",children:[(0,A.jsxs)("div",{className:"flex min-h-10 items-center gap-2 px-2.5",children:[(0,A.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:`${b} \xb7 ${c??k("newSession")}`,children:k("branchTitle")}),Z?null:(0,A.jsxs)("span",{className:"shrink-0 text-xs text-muted-foreground",children:[N>=0?N+1:0," / ",L.length]}),(0,A.jsx)("button",{type:"button",disabled:a.pending,"aria-label":k("closeBranchPicker"),className:(0,U.r)({variant:"ghost",size:"icon"}),onClick:()=>ab(!0),children:(0,A.jsx)(al.A,{className:"size-4"})})]}),Z?null:(0,A.jsxs)("div",{className:"flex items-center gap-1.5 border-t border-border/60 px-2 py-1.5",children:[(0,A.jsxs)("div",{className:"relative min-w-0 flex-1",children:[(0,A.jsx)(bV.A,{className:"pointer-events-none absolute left-2 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,A.jsx)(bU.p,{ref:G,role:"combobox",value:q,"aria-label":k("branchSearch"),"aria-controls":$,"aria-expanded":"true","aria-activedescendant":_,placeholder:k("branchSearchPlaceholder"),className:"pl-7",onChange:a=>{r(a.currentTarget.value),x(new Set),ac(0)},onKeyDown:a=>{if(!a.nativeEvent.isComposing)switch(a.stopPropagation(),a.key){case"Tab":a.preventDefault(),ag(a.shiftKey?-1:1);return;case"ArrowUp":a.preventDefault(),ad(N-1);return;case"ArrowDown":a.preventDefault(),ad(N+1);return;case"PageUp":a.preventDefault(),ad(N-Math.max(1,Math.floor(E/36)));return;case"PageDown":a.preventDefault(),ad(N+Math.max(1,Math.floor(E/36)));return;case"ArrowLeft":if(q||!O)return;a.preventDefault(),O.foldable&&O.expanded?ae(O.node.entryId,!0):aj();return;case"ArrowRight":if(q||!O)return;a.preventDefault(),O.foldable&&!O.expanded?ae(O.node.entryId,!1):ak();return;case"Enter":a.preventDefault(),ai();return;case"Escape":a.preventDefault(),am();return}}})]}),(0,A.jsxs)(bq,{open:u,onOpenChange:v,onOpenChangeComplete:a=>{a||queueMicrotask(aa)},children:[(0,A.jsxs)(bs,{render:(0,A.jsx)("button",{type:"button","aria-label":k("branchFilter",{filter:Y}),className:(0,U.r)({variant:"outline"})}),children:[Y,(0,A.jsx)(cn.A,{className:"size-3.5"})]}),(0,A.jsx)(bt,{"data-workbench-branch-picker-popup":"true",align:"end",side:"bottom",className:"w-32",finalFocus:()=>d?H.current:G.current,children:Bz.map(a=>(0,A.jsxs)(bw,{onClick:()=>af(a.value),children:[(0,A.jsx)("span",{className:"min-w-0 flex-1",children:k(a.label)}),s===a.value?(0,A.jsx)("span",{className:"text-xs text-primary",children:"●"}):null]},a.value))})]})]})]}),a.error?(0,A.jsx)("div",{role:"alert",className:"shrink-0 border-b bg-muted px-3 py-2 text-sm text-destructive",children:(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1",children:a.error}),a.pending||a.tree?null:(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",disabled:a.actionsDisabled,onClick:f,children:k("retry")})]})}):null,Z?(0,A.jsx)(BD,{confirmation:Z,disabled:a.actionsDisabled,onConfirm:i,onBack:()=>{J.current=!0,j()}},`${Z.intent.action}:${"entryId"in Z.intent?Z.intent.entryId:""}`):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{className:"pi-desk-chat-scrollbar h-36 shrink-0 overflow-y-auto border-b bg-muted px-3 py-3",children:an&&ao?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[(0,A.jsx)("span",{className:ao.labelClassName,children:k(ao.label)}),an.label?(0,A.jsx)("span",{className:"min-w-0 truncate rounded-sm bg-amber-500/10 px-1 text-amber-700 dark:text-amber-300",children:an.label}):null,(0,A.jsx)("time",{className:"ml-auto shrink-0",children:p.format(an.timestampMs)})]}),(0,A.jsx)("div",{className:"mt-2 whitespace-pre-wrap break-words text-sm leading-6",children:a.detailLoading||!X?a.detailError?(0,A.jsx)("span",{className:"text-destructive",children:a.detailError}):(0,A.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}),k("loadingEntry")]}):(0,A.jsxs)(A.Fragment,{children:[X.content||k("entryEmpty"),X.truncated?(0,A.jsx)("span",{className:"mt-1 block text-muted-foreground",children:k("entryTruncated")}):null]})})]}):(0,A.jsx)("div",{className:"grid min-h-12 place-items-center text-xs text-muted-foreground",children:k("selectEntry")})}),a.pending&&!a.runningConfirmation?(0,A.jsxs)("div",{className:"flex shrink-0 items-center gap-2 border-b bg-primary/8 px-2.5 py-1.5 text-xs text-muted-foreground",children:[(0,A.jsx)(R.A,{className:"size-3.5 animate-spin text-primary"}),k("branchWorking")]}):null,a.loading&&!a.tree?(0,A.jsx)("div",{className:"grid min-h-0 flex-1 place-items-center text-sm text-muted-foreground",children:(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)(R.A,{className:"size-4 animate-spin"}),k("branchLoading")]})}):0===L.length?(0,A.jsx)("div",{className:"grid min-h-0 flex-1 place-items-center px-4 text-center text-sm text-muted-foreground",children:0===K.length?k("branchEmpty"):k("branchNoMatches")}):(0,A.jsxs)("div",{ref:I,id:$,role:"tree","aria-label":k("branchTree"),className:"pi-desk-chat-scrollbar min-h-0 flex-1 overflow-y-auto px-1 py-1",onScroll:a=>D(a.currentTarget.scrollTop),children:[(0,A.jsx)("div",{style:{height:`${36*P}px`},"aria-hidden":"true"}),V.map(b=>{let c=b.node.entryId===M,e=Math.min(b.depth,10),f=BA[b.node.kind];return(0,A.jsxs)("div",{id:`${$}-entry-${b.node.entryId}`,role:"treeitem","aria-level":b.depth+1,"aria-selected":c,"aria-expanded":b.foldable?b.expanded:void 0,className:(0,W.cn)("group relative flex min-w-0 items-center rounded-md outline-none transition-colors",f.rowClassName,c?"bg-accent text-accent-foreground":b.current?"bg-primary/[0.055] hover:bg-primary/[0.08]":"hover:bg-muted/50"),style:{height:"36px",paddingLeft:`${10*e}px`},children:[e>0?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("pointer-events-none absolute bottom-0 top-0 w-px",b.active?"bg-primary/25":"bg-border/60"),style:{left:`${10*e-5}px`}}):null,b.connector?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("pointer-events-none absolute h-px w-2",b.active?"bg-primary/25":"bg-border/60"),style:{left:`${10*e-5}px`}}):null,(0,A.jsx)("div",{className:"flex w-6 shrink-0 items-center justify-center",children:b.foldable?(0,A.jsx)("button",{type:"button","aria-label":k(b.expanded?"collapseBranch":"expandBranch"),className:"flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:bg-foreground/8 hover:text-foreground",onMouseDown:BC,onClick:()=>{ae(b.node.entryId),queueMicrotask(aa)},children:(0,A.jsx)(bo.A,{className:(0,W.cn)("size-3 transition-transform",b.expanded&&"rotate-90")})}):null}),(0,A.jsxs)("button",{type:"button",tabIndex:-1,className:"flex h-full min-w-0 flex-1 items-center gap-1.5 overflow-hidden text-left outline-none",onMouseDown:BC,onClick:()=>{z(b.node.entryId),queueMicrotask(aa)},onDoubleClick:()=>{d||b.current||ah(b.node.entryId,"tree")},children:[(0,A.jsx)("span",{className:(0,W.cn)("w-9 shrink-0 text-xs",f.labelClassName),children:k(f.label)}),b.node.label?(0,A.jsx)("span",{className:"max-w-24 shrink-0 truncate rounded-md bg-muted px-1 text-xs text-foreground",children:b.node.label}):null,(0,A.jsx)("span",{className:(0,W.cn)("min-w-0 flex-1 truncate text-sm",f.contentClassName,c&&"font-semibold text-accent-foreground"),children:b.node.preview||k("noPreview")})]}),d?(0,A.jsxs)("div",{className:"ml-2 flex shrink-0 items-center gap-1 border-l border-border/55 py-0.5 pl-1.5 pr-1",children:[(0,A.jsx)("button",{type:"button",disabled:a.actionsDisabled||b.current||a.pending,"aria-label":k("switchToMessage",{kind:k(f.label)}),className:(0,U.r)({variant:"secondary",size:"sm"}),onClick:()=>ah(b.node.entryId,"tree"),children:k("switch")}),"user"===b.node.kind?(0,A.jsx)("button",{type:"button",disabled:a.actionsDisabled||a.pending,"aria-label":k("forkFromUser"),className:(0,U.r)({variant:"outline",size:"sm"}),onClick:()=>ah(b.node.entryId,"fork"),children:"Fork"}):null]}):"user"===b.node.kind?(0,A.jsx)("div",{className:"ml-2 flex shrink-0 items-center border-l border-border/50 pl-2 pr-1",children:(0,A.jsx)("button",{type:"button",disabled:a.actionsDisabled||a.pending,"aria-label":k("forkFromUser"),className:(0,U.r)({variant:"ghost",size:"sm"}),onMouseDown:BC,onClick:()=>ah(b.node.entryId,"fork"),children:"Fork"})}):null]},b.node.entryId)}),(0,A.jsx)("div",{style:{height:`${36*Math.max(0,L.length-T)}px`},"aria-hidden":"true"})]}),(0,A.jsxs)("footer",{className:"flex min-h-9 shrink-0 items-center gap-2 border-t bg-muted/10 px-2",children:[(0,A.jsxs)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",children:[N>=0?N+1:0," / ",L.length,d?"":` \xb7 ${k("branchShortcuts")}`]}),d?null:(0,A.jsx)(U.$,{type:"button",size:"sm",disabled:a.actionsDisabled||!O||O.current||a.loading||a.pending,onMouseDown:BC,onClick:ai,children:k("switch")})]})]})]})]})}let BF=(0,S.A)("copy-plus",[["line",{x1:"15",x2:"15",y1:"12",y2:"18",key:"1p7wdc"}],["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),BG=(0,S.A)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]),BH=(0,S.A)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),BI=(0,S.A)("arrow-up-to-line",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]),BJ=(0,S.A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),BK=(0,S.A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),BL=(0,S.A)("corner-down-left",[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]);var BM=c(58024),BN=c.n(BM);function BO({workSession:a,runtime:b,active:c,chatReady:d,onOpen:e}){let{t:f}=(0,Q.Bd)("workbench"),{locale:g}=(0,cu.i)();(0,B.useSyncExternalStore)(b.subscribe,b.getRevision,b.getRevision);let h=b.getWorkspace(a.cwd)?.heads,i=h?.repositories??[],j=(0,zO.A_)(a.projectName,i,g);if(h?.status==="ready"&&!j)return null;let k=h?.status==="loading"&&!j,l=h?.status==="error"&&!j,m=k?null:j;return(0,A.jsxs)(qk,{"data-testid":"composer-git-branch",tooltip:l?h.error??f("gitStatusReadFailed"):m?.title??f("gitBranches"),"aria-label":f("gitBranches"),className:BN().branchTrigger,disabled:k,onClick:()=>e({workId:a.workId,cwd:a.cwd,projectName:a.projectName,repositoryRoot:null}),children:[k?(0,A.jsx)(R.A,{className:"size-4 shrink-0 animate-spin"}):(0,A.jsx)(zM.A,{className:"size-4 shrink-0 text-emerald-600 dark:text-emerald-400"}),l?(0,A.jsx)("span",{className:(0,W.cn)(BN().branchFallback,"text-amber-600 dark:text-amber-400"),children:"Git !"}):m?(0,A.jsx)(A.Fragment,{children:(0,A.jsx)("span",{"data-git-branch-full":!0,className:(0,W.cn)(BN().branchFull,m.diverged&&"text-amber-600 dark:text-amber-400"),children:m.full})}):null]})}let BP="l2-workbench-slash-command-menu",BQ={key:"builtin:reload",name:"reload",description:"重新读取 Pi 最新配置与扩展资源",source:"builtin"},BR=[{source:"builtin",label:"Pi 内置命令"},{source:"skill",label:"Skills"},{source:"prompt",label:"提示模板"},{source:"extension",label:"扩展命令"}];function BS(a){return`${BP}-option-${a}`}let BT=(0,S.A)("eraser",[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",key:"g5wo59"}],["path",{d:"m5.082 11.09 8.828 8.828",key:"1wx5vj"}]]),BU=2*Math.PI*7;function BV(a){if(null===a)return"--";let b=Math.round(a);return b<1e3?String(b):`${Math.round(b/100)/10}K`}function BW(a){return Math.min(100,Math.max(0,a))}function BX(a){return BU-a/100*BU}function BY({sessionId:a,cwd:b,tokens:c,contextWindow:d,contextIgnorePlugin:e,ignoreDisabled:f,ignorePending:g,compactDisabled:h,compactPending:i,onIgnoreContext:j,onCompactContext:k}){let l,m,n,o,p,{t:q}=(0,Q.Bd)("workbench"),r=(0,B.useId)(),s=(0,B.useRef)(!1),[t,u]=(0,B.useState)(!1),[v,w]=(0,B.useState)(!1),[x,y]=(0,B.useState)(!1),z=(0,bG.G)(),C=(l=!e||"object"!=typeof e||Array.isArray(e)||"number"!=typeof e.ignoredTokens||!Number.isFinite(e.ignoredTokens)||e.ignoredTokens<0||"number"!=typeof e.potentialTokens||!Number.isFinite(e.potentialTokens)||e.potentialTokens<0||void 0!==e.effectiveTokens&&null!==e.effectiveTokens&&("number"!=typeof e.effectiveTokens||!Number.isFinite(e.effectiveTokens)||e.effectiveTokens<0)?null:{ignoredTokens:e.ignoredTokens,potentialTokens:e.potentialTokens,...void 0!==e.effectiveTokens?{effectiveTokens:e.effectiveTokens}:{}},n=null===(m=l?.effectiveTokens===void 0?c:l.effectiveTokens)?0:BW(m/d*100),p=null===(o=null===m||null===l?null:Math.max(0,m-l.potentialTokens))?null:BW(o/d*100),{contextIgnore:l,currentTokens:m,usedPercent:n,projectedTokens:o,projectedPercent:p,potentialSegmentPercent:null===p?0:Math.max(0,n-p)}),D=Math.round(C.usedPercent),E=null===C.projectedPercent?null:Math.round(C.projectedPercent),F=D>=90?"text-destructive":D>=80?"text-status-warning":"text-muted-foreground",G=D>=90?"bg-destructive":D>=80?"bg-status-warning":"bg-primary",H=C.contextIgnore?q("contextUsageWithIgnore",{percent:D,projected:E??0,ignored:BV(C.contextIgnore.ignoredTokens),potential:BV(C.contextIgnore.potentialTokens)}):q("contextUsageSimple",{percent:D,limit:BV(d)});return(0,A.jsxs)(qf,{open:t,triggerId:r,onOpenChange:(a,b)=>{s.current&&"trigger-focus"===b.reason||(a||(w(!1),y(!1)),u(a))},children:[(0,A.jsx)(qg,{id:r,delay:100,closeDelay:100,render:(0,A.jsx)("button",{type:"button","aria-label":H,"aria-expanded":t,className:"inline-flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-full bg-transparent transition-colors outline-none hover:bg-accent focus-visible:ring-1 focus-visible:ring-ring/50 data-open:bg-accent",onPointerDown:a=>{s.current="mouse"!==a.pointerType},onPointerCancel:()=>{s.current=!1},onClick:a=>{s.current&&(a.preventDefault(),u(a=>!a),queueMicrotask(()=>{s.current=!1}))},children:(0,A.jsxs)("svg",{className:"pointer-events-none block size-5 -rotate-90",viewBox:"0 0 20 20","aria-hidden":"true",children:[(0,A.jsx)("circle",{cx:"10",cy:"10",r:7,fill:"none",stroke:"currentColor",strokeWidth:"2",className:"text-muted-foreground opacity-20"}),C.contextIgnore?(0,A.jsxs)(A.Fragment,{children:[C.usedPercent>0?(0,A.jsx)("circle",{cx:"10",cy:"10",r:7,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",strokeDasharray:BU,strokeDashoffset:BX(C.usedPercent),className:"text-muted-foreground"}):null,null!==C.projectedPercent&&C.projectedPercent>0?(0,A.jsx)("circle",{cx:"10",cy:"10",r:7,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",strokeDasharray:BU,strokeDashoffset:BX(C.projectedPercent),className:"text-foreground"}):null]}):C.usedPercent>0?(0,A.jsx)("circle",{cx:"10",cy:"10",r:7,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"2",strokeDasharray:BU,strokeDashoffset:BX(C.usedPercent),className:F}):null]})})}),(0,A.jsx)(qh,{side:"top",align:"center",sideOffset:6,"aria-label":q("contextDetails"),className:"w-80 max-w-[calc(100vw-2rem)] p-4 text-sm",children:(0,A.jsxs)("div",{className:"space-y-2",children:[(0,A.jsxs)("div",{className:"space-y-1",children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 text-sm",children:[(0,A.jsx)("span",{className:"whitespace-nowrap text-muted-foreground",children:q("contextMetrics")}),(0,A.jsxs)("span",{className:"whitespace-nowrap font-medium tabular-nums text-foreground",children:[BV(C.currentTokens)," / ",BV(d)," / ",D,"%"]})]}),(0,A.jsx)("div",{className:"flex h-1.5 overflow-hidden rounded-full bg-muted",children:C.contextIgnore&&null!==C.projectedPercent?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("div",{className:"h-full bg-foreground",style:{width:`${C.projectedPercent}%`}}),(0,A.jsx)("div",{className:"h-full bg-muted-foreground",style:{width:`${C.potentialSegmentPercent}%`}})]}):(0,A.jsx)("div",{className:(0,W.cn)("h-full rounded-full",G),style:{width:`${C.usedPercent}%`}})})]}),C.contextIgnore&&null!==C.projectedTokens?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,A.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[(0,A.jsx)("span",{className:"size-2 rounded-full bg-foreground"}),q("afterIgnore")]}),(0,A.jsxs)("span",{className:"font-medium tabular-nums text-foreground",children:[BV(C.projectedTokens)," \xb7 ",E,"%"]})]}),(0,A.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,A.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[(0,A.jsx)("span",{className:"size-2 rounded-full bg-muted-foreground"}),q("potentialIgnore")]}),(0,A.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:BV(C.contextIgnore.potentialTokens)})]}),(0,A.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,A.jsx)("span",{className:"text-muted-foreground",children:q("alreadyIgnored")}),(0,A.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:BV(C.contextIgnore.ignoredTokens)})]})]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap justify-end gap-2 pt-1",children:[(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline",disabled:f||g||!C.contextIgnore||C.contextIgnore.potentialTokens<=0,"aria-label":C.contextIgnore&&C.contextIgnore.potentialTokens>0?q("ignoreNow",{amount:BV(C.contextIgnore.potentialTokens)}):q("nothingToIgnore"),"aria-busy":g,onClick:()=>void j(),children:[g?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(BT,{}),g?q("ignoring"):q("ignore")]}),(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"outline",disabled:h||i,"aria-busy":i,onClick:()=>void k(),children:[i?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(q7,{}),i?q("compacting"):q("compact")]})]}),D>=80?(0,A.jsx)("p",{className:(0,W.cn)("pt-1 text-sm",D>=90?"text-destructive":"text-status-warning"),children:D>=90?q("contextCritical"):q("contextWarning")}):null,(0,A.jsx)("div",{className:"border-t border-border"}),(0,A.jsxs)("button",{type:"button","aria-label":q("copySessionId",{id:a}),className:"w-full cursor-pointer rounded-md px-1 py-1 text-left transition-colors outline-none hover:bg-muted focus-visible:ring-1 focus-visible:ring-ring/50",onClick:()=>{(0,cV.x)(a).then(a=>{a?w(!0):z.error(q("copySessionFailed"))})},children:[(0,A.jsxs)("span",{className:"flex items-center justify-between gap-3 text-muted-foreground",children:[(0,A.jsx)("span",{children:q("currentSessionId")}),(0,A.jsxs)("span",{className:"inline-flex items-center gap-1",children:[v?q("copied"):q("clickToCopy"),v?(0,A.jsx)(bp.A,{className:"size-3.5"}):(0,A.jsx)(bI.A,{className:"size-3.5"})]})]}),(0,A.jsx)("span",{className:"mt-1 block break-all font-mono text-xs leading-5 text-foreground",children:a})]}),(0,A.jsxs)("button",{type:"button","aria-label":q("copyCurrentPath",{path:b}),className:"w-full cursor-pointer rounded-md px-1 py-1 text-left transition-colors outline-none hover:bg-muted focus-visible:ring-1 focus-visible:ring-ring/50",onClick:()=>{(0,cV.x)(b).then(a=>{a?y(!0):z.error(q("copyPathFailed"))})},children:[(0,A.jsxs)("span",{className:"flex items-center justify-between gap-3 text-muted-foreground",children:[(0,A.jsx)("span",{children:q("currentPath")}),(0,A.jsxs)("span",{className:"inline-flex items-center gap-1",children:[x?q("copied"):q("clickToCopy"),x?(0,A.jsx)(bp.A,{className:"size-3.5"}):(0,A.jsx)(bI.A,{className:"size-3.5"})]})]}),(0,A.jsx)("span",{className:"mt-1 block min-w-0 break-words font-mono text-xs leading-5 text-foreground",title:b,children:b})]})]})})]})}function BZ(a,b){let[c,d]=(0,B.useState)({value:null,loading:!1,error:null}),[e,f]=(0,B.useState)(0);return{...c,retry:()=>f(a=>a+1)}}let B$={direct:["toolExposureDirect","直接使用"],"model-only":["toolExposureModelOnly","仅模型调用"],codemode:["toolExposureCodemode","通过脚本调用"],deferred:["toolExposureDeferred","按需发现"],hidden:["toolExposureHidden","不可调用"]};function B_({tools:a}){let{t:b}=(0,Q.Bd)("workbench"),[c,d]=(0,B.useState)(""),[e,f]=(0,B.useState)("all"),g=c.trim().toLocaleLowerCase(),h=a.filter(a=>(!g||`${a.name} ${a.source??""} ${a.description}`.toLocaleLowerCase().includes(g))&&("all"===e||("blocked"===e?a.blockedByMode:a.exposure===e)));return(0,A.jsxs)("section",{className:"space-y-3",children:[(0,A.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,A.jsxs)(j0.MG,{className:"min-w-0 flex-1 basis-56",children:[(0,A.jsx)(j0.Sq,{children:(0,A.jsx)(bV.A,{className:"size-4"})}),(0,A.jsx)(j0.iV,{"aria-label":b("searchTools"),placeholder:b("searchToolsSources",{defaultValue:"搜索名称、来源或描述"}),value:c,onChange:a=>d(a.target.value)})]}),(0,A.jsxs)(bO.l6,{value:e,onValueChange:a=>{"string"==typeof a&&f(a)},children:[(0,A.jsx)(bO.bq,{"aria-label":b("toolFilter"),className:"max-w-full",children:(0,A.jsx)(bO.yv,{children:"all"===e?b("allTools"):"blocked"===e?b("toolBlockedByMode"):b(B$[e]?.[0]??"toolUnknown")})}),(0,A.jsxs)(bO.gC,{positionerClassName:"z-[120]",children:[(0,A.jsx)(bO.eb,{value:"all",children:b("allTools")}),Object.entries(B$).map(([a,[c,d]])=>(0,A.jsx)(bO.eb,{value:a,children:b(c,{defaultValue:d})},a)),(0,A.jsx)(bO.eb,{value:"blocked",children:b("toolBlockedByMode")})]})]})]}),(0,A.jsxs)("div",{className:"divide-y",children:[h.map(a=>{let c=a.exposure?B$[a.exposure]:null;return(0,A.jsxs)("article",{className:"space-y-2 py-3",children:[(0,A.jsx)("h3",{className:"wrap-anywhere font-mono text-sm font-medium",children:a.name}),(0,A.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground",children:[(0,A.jsxs)("span",{children:[b("toolSource",{defaultValue:"来源"}),":"," ",a.source??b("toolUnknown",{defaultValue:"未知"})]}),(0,A.jsx)("span",{children:c?b(c[0],{defaultValue:c[1]}):b("toolUnknown",{defaultValue:"未知"})}),(0,A.jsx)("span",{children:void 0===a.active?b("toolUnknown",{defaultValue:"未知"}):a.active?b("toolActive",{defaultValue:"当前已选用"}):b("toolInactive",{defaultValue:"当前未选用"})}),(0,A.jsx)("span",{children:void 0===a.blockedByMode?b("toolModeUnknown",{defaultValue:"模式限制未知"}):a.blockedByMode?b("toolBlockedByMode",{defaultValue:"受模式限制"}):b("toolNotBlocked",{defaultValue:"未受模式限制"})})]}),(0,A.jsx)("p",{className:"whitespace-pre-wrap wrap-anywhere text-sm text-muted-foreground",children:a.description}),(0,A.jsxs)("details",{children:[(0,A.jsx)("summary",{className:"min-h-7 cursor-pointer text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring",children:b("parameterSchema")}),(0,A.jsx)("pre",{className:"mt-2 whitespace-pre-wrap wrap-anywhere rounded-lg bg-muted p-3 font-mono text-sm leading-[1.6]",children:JSON.stringify(a.parameters,null,2)})]})]},a.name)}),h.length?null:(0,A.jsxs)("div",{className:"space-y-3 py-6 text-sm text-muted-foreground",children:[(0,A.jsx)("p",{children:g||"all"!==e?b("noMatchingTools"):b("noRegisteredTools",{defaultValue:"当前会话没有登记工具"})}),g||"all"!==e?(0,A.jsx)(U.$,{variant:"outline",size:"sm",onClick:()=>{d(""),f("all")},children:b("clearSearch")}):null]})]})]})}function B0({notices:a}){let{t:b}=(0,Q.Bd)("workbench");return(0,A.jsx)("section",{"aria-label":b("nativeCommandOutput",{defaultValue:"会话命令输出"}),className:"space-y-3",children:a.length?a.map((a,b)=>(0,A.jsx)("p",{className:`whitespace-pre-wrap wrap-anywhere font-mono text-sm leading-[1.6] ${"error"===a.level?"text-destructive":"warning"===a.level?"text-amber-700 dark:text-amber-300":""}`,children:function(a){let b=[],c=0;for(let d of a.matchAll(/https?:\/\/[^\s<>"']+/g)){let e=d.index,f=d[0].replace(/[)\]。,.;]+$/,"");b.push(a.slice(c,e)),b.push((0,A.jsx)("a",{href:f,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 wrap-anywhere",children:f},e)),c=e+f.length}return b.push(a.slice(c)),b}(a.message)},b)):(0,A.jsx)("p",{className:"py-6 text-sm text-muted-foreground",children:b("nativeCommandOutputEmpty",{defaultValue:"暂无会话命令输出"})})})}function B1({available:a,state:b,disabled:c,onExecute:d}){let{t:e}=(0,Q.Bd)("workbench"),[f,g]=(0,B.useState)("status"),[h,i]=(0,B.useState)(""),[j,k]=(0,B.useState)(!1),l="status"!==f,m=h.trim(),n=l&&!/^[a-zA-Z0-9_-]+$/.test(m);return(0,A.jsxs)("div",{className:"space-y-4",children:[a?(0,A.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),c||!b.ready||b.commandPending||n||"logout"===f&&!j||d("status"===f?"":`${f} ${m}`,"login"===f)},children:[(0,A.jsx)(kt,{label:e("mcpSessionActions",{defaultValue:"MCP 会话操作"}),layout:"segmented",value:f,onChange:a=>{g(a),k(!1)},options:[{value:"status",label:e("mcpStatus",{defaultValue:"状态"})},{value:"login",label:e("mcpLogin",{defaultValue:"登录"})},{value:"reconnect",label:e("mcpReconnect",{defaultValue:"重连"})},{value:"logout",label:e("mcpLogout",{defaultValue:"退出登录"})}]}),l?(0,A.jsxs)("label",{className:"block space-y-1 text-sm font-medium",children:[(0,A.jsx)("span",{children:e("mcpServerName",{defaultValue:"服务名称"})}),(0,A.jsx)(bU.p,{value:h,onChange:a=>i(a.target.value),placeholder:e("mcpServerNamePlaceholder",{defaultValue:"输入真实服务名称"}),autoComplete:"off",maxLength:128})]}):null,l&&m&&n?(0,A.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:e("mcpServerNameInvalid",{defaultValue:"服务名称只能包含字母、数字、下划线和连字符。"})}):null,"logout"===f?(0,A.jsxs)("label",{className:"flex min-h-8 cursor-pointer items-start gap-2 text-sm",children:[(0,A.jsx)("input",{type:"checkbox",className:"mt-1 size-4 accent-primary",checked:j,onChange:a=>k(a.target.checked)}),(0,A.jsx)("span",{children:e("mcpLogoutConfirm",{defaultValue:"删除共享登录凭据,其他会话下次访问也可能需要重新登录。"})})]}):null,(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)(U.$,{type:"submit",size:"sm",disabled:c||!b.ready||null!==b.commandPending||n||"logout"===f&&!j,children:e("mcpExecute",{defaultValue:"执行"})}),b.commandPending?(0,A.jsxs)("span",{role:"status",className:"wrap-anywhere text-sm text-muted-foreground",children:[e("mcpExecuting",{defaultValue:"正在执行"})," ",b.commandPending]}):null]})]}):(0,A.jsx)("p",{className:"text-sm text-muted-foreground",children:e("mcpCommandUnavailable",{defaultValue:"当前会话未注册 MCP 命令。"})}),(0,A.jsxs)("div",{className:"border-t pt-4",children:[(0,A.jsx)("h3",{className:"mb-3 text-sm font-medium",children:e("nativeCommandOutput",{defaultValue:"会话命令输出"})}),(0,A.jsx)(B0,{notices:b.notices})]})]})}function B2({open:a,source:b,runtime:c,getContext:d,listCommands:e,nativeUi:f,nativeBiz:g,commandsDisabled:h,onOpenChange:i,onOpenSettings:j}){let{t:k,i18n:l}=(0,Q.Bd)("workbench"),[m,n]=(0,B.useState)(!1),[o,p]=(0,B.useState)("tools"),q=(0,bG.G)(),{context:r,tools:s,commands:t}=function(a){let{source:b,runtime:c,getContext:d,listCommands:e,open:f,tab:g}=a,h=(0,B.useCallback)(()=>d({source:b}),[d,b]),i=(0,B.useCallback)(()=>c.listTools(b),[c,b]),j=(0,B.useCallback)(()=>e({source:b}),[e,b]);return{context:BZ(f&&"system"===g,h),tools:BZ(f&&"tools"===g,i),commands:BZ(f&&"mcp"===g,j)}}({source:b,open:a,tab:o,runtime:c,getContext:d,listCommands:e}),u="system"===o?r:"tools"===o?s:t;f.state.snapshot.requests[0]?.id;let v=async()=>{r.value&&(await (0,cV.x)(r.value.systemPrompt)?n(!0):q.error(k("contextCopyFailed")))};return(0,A.jsx)(b3.YV,{open:a,onOpenChange:i,children:(0,A.jsxs)(b3.hA,{className:"h-[min(42rem,calc(100dvh-2rem))] max-w-[45rem]",children:[(0,A.jsxs)(b3.Hl,{className:"border-b p-4 pr-12",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,A.jsx)(j$.A,{className:"size-5 shrink-0 text-muted-foreground"}),(0,A.jsx)(b3.YM,{children:k("toolsAndContext",{defaultValue:"工具与上下文"})})]}),(0,A.jsx)(b3.uX,{className:"sr-only",children:k("sessionContextDescription",{defaultValue:"当前会话的登记工具、系统提示词和 MCP 原生命令"})})]}),(0,A.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center justify-between gap-2 border-b px-4 py-3",children:[(0,A.jsx)(kt,{label:k("contextContents"),layout:"segmented",value:o,onChange:p,options:[{value:"tools",label:k("tools")},{value:"system",label:k("systemPrompt")},{value:"mcp",label:k("mcpSession",{defaultValue:"会话 MCP"})}]}),(0,A.jsxs)("div",{className:"flex items-center gap-2",children:["system"===o?(0,A.jsxs)(U.$,{variant:"ghost",size:"sm",disabled:!r.value||r.loading,onClick:()=>void v(),children:[m?(0,A.jsx)(bp.A,{}):(0,A.jsx)(bI.A,{}),m?k("copied"):k("copy")]}):null,j?(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{i(!1),j()},children:k("openSettings",{defaultValue:(l.resolvedLanguage??l.language).startsWith("en")?"Open settings":"打开设置"})}):null]})]}),(0,A.jsx)(b3._Y,{children:(0,A.jsx)("div",{className:"p-4",children:!u.loading&&(u.value||u.error)?u.error?(0,A.jsxs)("div",{className:"space-y-3 py-6",children:[(0,A.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:u.error}),(0,A.jsxs)(U.$,{variant:"outline",size:"sm",onClick:u.retry,children:[(0,A.jsx)(bK.A,{}),k("contextRetry")]})]}):"tools"===o&&s.value?(0,A.jsx)(B_,{tools:s.value.tools}):"system"===o&&r.value?(0,A.jsx)("section",{"aria-label":k("systemPrompt"),children:(0,A.jsx)("pre",{className:"whitespace-pre-wrap wrap-anywhere font-mono text-sm leading-[1.6]",children:r.value.systemPrompt||k("emptyContent")})}):"mcp"===o&&t.value?(0,A.jsx)(B1,{available:t.value.commands.some(a=>"mcp"===a.name&&"extension"===a.source),state:f.state,disabled:h,onExecute:(a,c)=>{g.executeCommand(b,"mcp",a),c&&(f.setCollapsed(!1),i(!1))}}):null:(0,A.jsxs)("div",{role:"status",className:"flex items-center gap-2 py-6 text-sm text-muted-foreground",children:[(0,A.jsx)(bK.A,{className:"size-4 animate-spin"}),k("contextLoading")]})})})]})})}let B3={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function B4({source:a,runtime:b,catalog:c,current:d,label:e,title:f,disabled:g,triggerClassName:h,detailsClassName:i,onOpenSettings:j}){let{t:k,i18n:l}=(0,Q.Bd)("workbench"),[m,n]=(0,B.useState)(null),{open:o,pending:p,error:q,changeOpen:r,refresh:s,submit:t}=function(a,b,c){let[d,e]=(0,B.useState)(!1),[f,g]=(0,B.useState)(!1),[h,i]=(0,B.useState)(null),j=(0,B.useRef)(null),k=(0,B.useRef)(!1),l=(0,B.useRef)(!0),m=()=>{b.loadModels(a,!0)},n=a=>{j.current=a?{}:null,e(a),a&&(i(null),m())},o=async(d,e)=>{if(c||k.current)return;let f=j.current;k.current=!0,g(!0),i(null);try{await b.setModel(a,{provider:d.provider,modelId:d.modelId,thinkingLevel:e}),f&&j.current===f&&n(!1)}catch(a){f&&j.current===f&&i(a instanceof Error?a.message:String(a))}finally{k.current=!1,l.current&&g(!1)}};return{open:d,pending:f,error:h,changeOpen:n,refresh:m,submit:o}}(a,b,g),u=c.models.find(a=>a.provider===d?.provider&&a.modelId===d.modelId),v=c.models.some(a=>"virtual"===a.kind)?[{key:"virtual",label:k("modelAutomaticRouting",{defaultValue:"自动路由"}),models:c.models.filter(a=>"virtual"===a.kind)},{key:"physical",label:k("modelFixed",{defaultValue:"固定模型"}),models:c.models.filter(a=>"physical"===a.kind)}].filter(a=>a.models.length>0):[{key:"all",label:k("allModels"),models:c.models}];return(0,A.jsxs)(bq,{open:o,onOpenChange:a=>{n(null),r(a)},children:[(0,A.jsxs)(bs,{render:(0,A.jsx)(qk,{title:f,"aria-label":k("chooseModel"),className:h}),children:[(0,A.jsx)(ce,{className:"size-4 shrink-0"}),(0,A.jsx)("span",{"data-model-trigger-details":!0,className:i,children:(0,A.jsxs)("span",{className:"flex min-w-0 items-center gap-2 pl-2",children:[(0,A.jsx)("span",{className:"min-w-0 truncate",children:e}),(0,A.jsx)(cn.A,{className:"size-3 shrink-0"})]})})]}),(0,A.jsxs)(bt,{align:"start",side:"top",className:"flex max-h-96 w-72 flex-col overflow-hidden p-0",children:[(0,A.jsxs)(bu,{className:"shrink-0 p-1",children:[(0,A.jsx)(bv,{children:k("currentModel")}),(0,A.jsxs)("div",{className:"mx-1 mb-1 flex items-center gap-2 rounded-md border bg-muted/50 px-2 py-2",children:[(0,A.jsx)(ce,{className:"size-4 shrink-0 text-muted-foreground"}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("p",{className:"truncate text-sm font-medium",children:u?.name||d?.modelId||k("selectModel")}),(0,A.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:d?.provider||k("selectModel")})]}),d?(0,A.jsx)("span",{className:"shrink-0 rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:k("thinkingLevel",{level:k(B3[d.thinkingLevel])})}):null]}),q?(0,A.jsx)("p",{role:"alert",className:"wrap-anywhere px-2 py-1 text-sm text-destructive",children:q}):null,p?(0,A.jsx)("p",{role:"status",className:"px-2 py-1 text-sm text-muted-foreground",children:k("modelChanging",{defaultValue:"正在切换模型…"})}):null]}),(0,A.jsx)(bC,{className:"mx-0 my-0 shrink-0"}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar min-h-0 flex-auto overflow-x-hidden overflow-y-auto overscroll-contain p-1",children:["loading"===c.status?(0,A.jsxs)(bw,{disabled:!0,children:[(0,A.jsx)(bK.A,{className:"size-4 animate-spin"}),k("modelsLoading")]}):null,"error"===c.status?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("p",{role:"alert",className:"wrap-anywhere px-2 py-1 text-sm text-destructive",children:c.error||k("modelsFailed")}),(0,A.jsxs)(bw,{closeOnClick:!1,onClick:s,children:[(0,A.jsx)(bK.A,{className:"size-4"}),k("retry")]})]}):null,v.map(a=>(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:a.label}),a.models.map(a=>{let b=`${a.provider}:${a.modelId}`,c=d?.provider===a.provider&&d.modelId===a.modelId;return(0,A.jsxs)(bx,{open:m===b,onOpenChange:a=>{n(c=>a?b:c===b?null:c)},children:[(0,A.jsxs)(by,{disabled:g||p,label:a.name||a.modelId,children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name||a.modelId}),a.input.includes("image")?(0,A.jsx)(kM.A,{className:"size-3 text-muted-foreground"}):null,c?(0,A.jsx)(bp.A,{className:"size-3 text-muted-foreground"}):null]}),(0,A.jsx)(bz,{children:(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:k("thinkingLevels")}),a.thinkingLevels.map(b=>(0,A.jsxs)(bw,{disabled:g||p,closeOnClick:!1,onClick:()=>{n(null),t(a,b)},children:[(0,A.jsx)("span",{className:"flex-1",children:k(B3[b])}),c&&d?.thinkingLevel===b?(0,A.jsx)(bp.A,{className:"size-3 text-muted-foreground"}):null]},b))]})})]},b)})]},a.key)),"ready"===c.status&&0===c.models.length?(0,A.jsx)(bw,{disabled:!0,children:k("noModels")}):null,j&&("error"===c.status||"ready"===c.status&&0===c.models.length)?(0,A.jsx)(bw,{onClick:()=>j(),children:k("openSettings",{defaultValue:(l.resolvedLanguage??l.language).startsWith("en")?"Open settings":"打开设置"})}):null]}),"ready"===c.status||c.presets.length>0?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(bC,{className:"mx-0 my-0 shrink-0"}),(0,A.jsxs)(bu,{className:"shrink-0 p-1",children:[(0,A.jsx)(bv,{children:k("presets")}),0===c.presets.length?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("p",{className:"px-2 py-1 text-xs text-muted-foreground",children:k("commonCombinationsEmpty")}),j?(0,A.jsxs)(bw,{onClick:()=>{r(!1),j("model-presets")},children:[(0,A.jsx)(ov,{className:"size-4"}),k("configureCommonCombinations")]}):null]}):null,c.presets.map((a,b)=>(0,A.jsxs)(bw,{disabled:g||p,closeOnClick:!1,onClick:()=>void t(a,a.thinkingLevel),children:[(0,A.jsx)("span",{className:"size-2 rounded-full bg-current",style:a.color?{color:a.color}:void 0}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.models.find(b=>b.provider===a.provider&&b.modelId===a.modelId)?.name||a.modelId}),(0,A.jsx)("span",{className:"text-muted-foreground",children:k(B3[a.thinkingLevel])})]},`${a.provider}:${a.modelId}:${a.thinkingLevel}:${b}`))]})]}):null]})]})}var B5=c(79904);function B6({label:a,description:b,markerClass:c,countClass:d,inputs:e}){let{t:f}=(0,Q.Bd)("workbench");return 0===e.length?null:(0,A.jsxs)("section",{className:"space-y-2",children:[(0,A.jsxs)("div",{className:"flex items-start justify-between gap-3 px-1",children:[(0,A.jsxs)("div",{className:"min-w-0",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${c}`}),(0,A.jsx)("h3",{className:"text-sm font-medium text-foreground",children:a})]}),(0,A.jsx)("p",{className:"mt-1 pl-3.5 text-sm leading-5 text-muted-foreground",children:b})]}),(0,A.jsx)("span",{className:`shrink-0 rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums ${d}`,children:f("queueItems",{count:e.length})})]}),(0,A.jsx)("ol",{className:"divide-y divide-border overflow-hidden",children:e.map((a,b)=>{let c=a.text.trim();return(0,A.jsxs)("li",{className:"grid grid-cols-[1.25rem_minmax(0,1fr)] gap-2.5 px-3 py-2.5",children:[(0,A.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-md bg-muted text-xs tabular-nums text-muted-foreground",children:b+1}),(0,A.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,A.jsx)("p",{className:"whitespace-pre-wrap break-words text-sm leading-6 text-foreground",children:c||f(a.images.length>0?"imageOnly":"noMessageText")}),a.images.length>0?(0,A.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[(0,A.jsx)(kM.A,{className:"size-3"}),f("queueImages",{count:a.images.length})]}):null]})]},a.tempId)})})]})}function B7({queues:a,disabled:b,onRestore:c}){let{t:d}=(0,Q.Bd)("workbench"),e=(0,B.useId)(),f=(0,B.useRef)(!1),[g,h]=(0,B.useState)(!1),i=a.steering.length+a.followUp.length;return 0===i?null:(0,A.jsxs)(qf,{open:g,triggerId:e,onOpenChange:(a,b)=>{f.current&&"trigger-focus"===b.reason||h(a)},children:[(0,A.jsx)(qg,{id:e,delay:100,closeDelay:120,render:(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",disabled:b,"aria-label":d("viewQueued",{count:i}),"aria-expanded":g,onPointerDown:a=>{f.current="mouse"!==a.pointerType},onPointerCancel:()=>{f.current=!1},onClick:a=>{f.current&&(a.preventDefault(),h(a=>!a),queueMicrotask(()=>{f.current=!1}))},children:d("queuedCount",{count:i})})}),(0,A.jsxs)(qh,{side:"top",align:"end",sideOffset:6,"aria-label":d("queueCurrent"),className:"w-[22rem] max-w-[calc(100vw-2rem)] overflow-hidden p-0",children:[(0,A.jsx)("div",{className:"border-b px-4 py-3",children:(0,A.jsxs)("div",{className:"flex items-center gap-3",children:[(0,A.jsx)("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground",children:(0,A.jsx)(B5.A,{className:"size-4"})}),(0,A.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,A.jsx)("h2",{className:"text-sm font-semibold tracking-tight text-foreground",children:d("queueCurrent")}),(0,A.jsx)("p",{className:"mt-1 text-sm leading-5 text-muted-foreground",children:d("queuePendingDescription")})]}),(0,A.jsx)("span",{className:"shrink-0 rounded-md bg-muted px-2 py-1 text-xs tabular-nums text-foreground",children:d("queueItems",{count:i})})]})}),(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar max-h-[min(24rem,55dvh)] space-y-4 overflow-y-auto p-4",children:[(0,A.jsx)(B6,{label:d("queueSteer"),description:d("queueSteerDescription"),markerClass:"bg-foreground",countClass:"bg-muted text-muted-foreground",inputs:a.steering}),(0,A.jsx)(B6,{label:d("queueFollowUp"),description:d("queueFollowUpDescription"),markerClass:"bg-muted-foreground",countClass:"bg-muted text-muted-foreground",inputs:a.followUp})]}),(0,A.jsx)("div",{className:"border-t border-border/60 bg-muted/15 p-2",children:(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",className:"w-full text-muted-foreground hover:text-foreground",disabled:b,onClick:c,children:[(0,A.jsx)(pB,{}),d("queueRestore")]})})]})]})}let B8={builtin:"slashGroupBuiltin",skill:"slashGroupSkill",prompt:"slashGroupPrompt",extension:"slashGroupExtension"};function B9({open:a,loading:b,error:c,groups:d,activeIndex:e,onActiveIndexChange:f,onSelect:g}){let{t:h}=(0,Q.Bd)("workbench"),i=(0,B.useRef)(null),j=d.reduce((a,b)=>a+b.commands.length,0);if(!a)return null;let k=0,l=j>0,m=b?h("slashLoadingMore"):c?h("slashMoreFailed"):null;return(0,A.jsxs)("div",{id:BP,role:"listbox","aria-label":h("slashCandidates"),"aria-busy":b,className:"absolute bottom-full left-[-1px] z-20 mb-2 flex w-[calc(100%+2px)] origin-bottom-left flex-col overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 slide-in-from-bottom-2 duration-100",children:[(0,A.jsxs)("div",{className:"pi-desk-chat-scrollbar max-h-72 overflow-x-hidden overflow-y-auto overscroll-contain p-1 scroll-py-8 max-sm:max-h-[40dvh]",children:[d.map((a,b)=>(0,A.jsxs)("section",{role:"group","aria-label":h(B8[a.source]),className:(0,W.cn)(b>0&&"mt-1 border-t pt-1"),children:[(0,A.jsxs)("div",{className:"sticky -top-1 z-10 flex h-7 items-center gap-2 bg-popover px-2 text-xs font-medium text-muted-foreground",children:[(0,A.jsx)("span",{className:"size-1.5 rounded-full bg-muted-foreground"}),(0,A.jsx)("span",{children:h(B8[a.source])}),(0,A.jsx)("span",{className:"ml-auto font-normal tabular-nums opacity-70",children:a.commands.length})]}),a.commands.map(a=>{let b=k++,c=b===e;return(0,A.jsxs)("div",{id:BS(b),ref:c?i:void 0,role:"option","aria-selected":c,"data-active":c?"true":"false",className:"grid min-h-9 cursor-pointer grid-cols-[minmax(6.75rem,0.9fr)_minmax(0,1.2fr)_0.75rem] items-center gap-2 rounded-md px-2 py-1 text-sm outline-none select-none data-[active=true]:bg-accent sm:grid-cols-[minmax(7rem,0.8fr)_minmax(0,1.5fr)_1rem]",onPointerMove:a=>{"mouse"===a.pointerType&&f(b)},onPointerDown:a=>a.preventDefault(),onClick:()=>g(b),children:[(0,A.jsxs)("span",{className:"min-w-0 truncate font-mono text-sm font-medium",children:[(0,A.jsx)("span",{className:"text-primary",children:"/"}),a.name]}),(0,A.jsx)("span",{className:"min-w-0 truncate text-sm text-muted-foreground",children:"builtin"===a.source&&"reload"===a.name?h("reloadDescription"):a.description}),(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("text-right text-sm text-muted-foreground opacity-0",c&&"opacity-80"),children:"↵"})]},a.key)})]},a.source)),l?m?(0,A.jsxs)("div",{className:"flex min-h-7 items-center gap-2 px-2 text-xs text-muted-foreground",children:[b?(0,A.jsx)(R.A,{className:"size-3 animate-spin"}):null,(0,A.jsx)("span",{children:m})]}):null:(0,A.jsxs)("div",{className:"flex min-h-20 items-center justify-center gap-2 px-4 text-xs text-muted-foreground",children:[b?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):null,(0,A.jsx)("span",{children:b?h("slashLoading"):c?h("slashFailed"):h("slashEmpty")})]})]}),(0,A.jsxs)("div",{className:"flex min-h-7 items-center justify-between gap-3 border-t px-2.5 text-xs text-muted-foreground",children:[(0,A.jsx)("span",{className:"tabular-nums",children:d.length>0?h("slashSummary",{commands:j,groups:d.length}):h("slashCount",{count:j})}),(0,A.jsxs)("span",{className:"flex items-center gap-2 max-sm:hidden","aria-hidden":"true",children:[(0,A.jsx)("span",{children:h("slashUpDown")}),(0,A.jsx)("span",{children:h("slashEnter")}),(0,A.jsx)("span",{children:h("slashEscape")})]})]})]})}var Ca=c(56416),Cb=c.n(Ca);function Cc({modes:a,value:b,disabled:c,onChange:d}){let{t:e}=(0,Q.Bd)("capabilityModes");if(0===Object.keys(a).length)return null;let f=null===b?e("allEnabled"):Object.hasOwn(a,b)?a[b]:e("modeSwitching");return(0,A.jsxs)(bq,{children:[(0,A.jsxs)(bs,{render:(0,A.jsx)(U.$,{variant:"ghost",size:"sm",disabled:c,"aria-label":e("modePicker",{name:f}),className:"min-w-0 max-w-40 text-muted-foreground"}),children:[(0,A.jsx)(bW.A,{className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"min-w-0 truncate",children:f}),(0,A.jsx)(cn.A,{className:"size-3 shrink-0"})]}),(0,A.jsx)(bt,{side:"top",align:"start",className:"max-h-80 min-w-40 overflow-y-auto",children:(0,A.jsxs)(bA,{value:b??"",onValueChange:a=>d("string"==typeof a&&a?a:null),children:[(0,A.jsx)(bB,{value:"",children:e("allEnabled")}),Object.entries(a).map(([a,b])=>(0,A.jsx)(bB,{value:a,children:b},a))]})})]})}let Cd=(0,S.A)("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),Ce=(0,S.A)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]),Cf=(0,S.A)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);function Cg({request:a,model:b}){let{t:c}=(0,Q.Bd)("workbench"),d=(0,B.useId)(),[e,f]=(0,B.useState)(!1),[g,h]=(0,B.useState)(()=>Date.now()),{state:i}=b,j=Object.hasOwn(i.answers,a.id),k=i.answers[a.id]??("editor"===a.method?a.prefill:""),l=null!==a.expiresAt&&a.expiresAt<=g,m=!i.ready||null!==i.submitting||null!==i.unknown||l,n=m||"select"===a.method&&!j,o=c=>{c?.preventDefault(),n||b.answer(a.id,"confirm"===a.method||k)},p=c=>(0,A.jsx)(iA.T,{"aria-label":a.title,"aria-labelledby":c?void 0:d,className:c?"min-h-0 flex-1 resize-none text-base":"h-32 min-h-20 resize-none text-base",value:k,disabled:null!==i.submitting,maxLength:65536,onChange:c=>b.setAnswer(a.id,c.target.value),onKeyDown:a=>{!a.nativeEvent.isComposing&&"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),o())}}),q=(d=!1)=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",disabled:!d&&!b.canStop,onClick:d?()=>f(!1):b.stop,children:d?c("nativeUiBack"):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(BJ,{className:"size-3.5"}),c("nativeUiStop")]})}),(0,A.jsx)("span",{className:"flex-1"}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"outline",disabled:m,onClick:()=>b.answer(a.id,"confirm"!==a.method&&null),children:c("confirm"===a.method?"nativeUiReject":"nativeUiCancel")}),(0,A.jsx)(U.$,{type:d?"button":"submit",size:"sm",disabled:n,onClick:d?()=>o():void 0,children:c(i.submitting?"nativeUiSubmitting":"confirm"===a.method?"nativeUiConfirm":"nativeUiSubmit")})]});return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("section",{className:"mb-2 overflow-hidden rounded-xl border border-input bg-background","aria-label":c("nativeUiTitle"),"data-testid":"native-ui-question",onKeyDown:a=>{"Escape"!==a.key||a.nativeEvent.isComposing||e||(a.preventDefault(),a.stopPropagation(),b.setCollapsed(!0))},children:[(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-3 pt-2 text-xs text-muted-foreground",children:[(0,A.jsx)(Cd,{className:"size-3.5"}),(0,A.jsx)("span",{children:c("nativeUiTitle")}),i.snapshot.requests.length>1?(0,A.jsx)("span",{children:c("nativeUiMore",{count:i.snapshot.requests.length-1})}):null,(0,A.jsx)("span",{className:"flex-1"}),"editor"===a.method?(0,A.jsxs)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>f(!0),children:[(0,A.jsx)(ah.A,{className:"size-3.5"}),c("nativeUiExpand")]}):null,(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>b.setCollapsed(!0),children:c("nativeUiLater")})]}),(0,A.jsxs)("form",{onSubmit:o,children:[(0,A.jsxs)("div",{className:"max-h-[40dvh] space-y-3 overflow-y-auto px-3 pt-2 pb-3",children:[(0,A.jsx)("h3",{id:d,className:"text-base leading-6 font-medium whitespace-pre-wrap wrap-anywhere",children:a.title}),"confirm"===a.method?(0,A.jsx)("p",{className:"text-sm leading-6 whitespace-pre-wrap wrap-anywhere text-muted-foreground",children:a.message}):null,"select"===a.method?(0,A.jsx)(kt,{label:a.title,value:j?String(a.options.indexOf(k)):"",disabled:m,options:a.options.map((a,b)=>({value:String(b),label:a})),onChange:c=>b.setAnswer(a.id,a.options[Number(c)])}):null,"input"===a.method?(0,A.jsx)(bU.p,{"aria-labelledby":d,value:k,placeholder:a.placeholder,maxLength:65536,className:"text-base",disabled:null!==i.submitting,onChange:c=>b.setAnswer(a.id,c.target.value)}):null,"editor"===a.method?p(!1):null,null!==a.expiresAt?(0,A.jsxs)("p",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,A.jsx)(Ce,{className:"size-3.5"}),c("nativeUiCountdown",{seconds:Math.max(0,Math.ceil((a.expiresAt-g)/1e3))})]}):null]}),(0,A.jsx)("div",{className:"flex flex-wrap items-center gap-2 border-t px-3 py-2",children:q()})]})]}),"editor"===a.method&&e?(0,A.jsx)(b3.YV,{open:!0,onOpenChange:f,children:(0,A.jsxs)(b3.hA,{className:"h-[min(40rem,calc(100dvh-2rem))] max-w-3xl","data-testid":"native-ui-editor-dialog",children:[(0,A.jsx)(b3.Hl,{className:"px-4 pt-4 pr-12 pb-3",children:(0,A.jsx)(b3.YM,{children:a.title})}),i.error||!i.ready?(0,A.jsx)("p",{role:"status",className:"px-4 pb-3 text-sm text-muted-foreground",children:i.error??c("nativeUiDisconnected")}):null,(0,A.jsx)("div",{className:"flex min-h-0 flex-1 px-4 pb-4",children:p(!0)}),(0,A.jsx)(b3.vu,{children:q(!0)})]})}):null]})}function Ch({model:a}){let{t:b}=(0,Q.Bd)("workbench"),{state:c}=a,d=c.snapshot.requests[0];return(0,A.jsxs)(A.Fragment,{children:[c.error||!c.ready&&d?(0,A.jsxs)("div",{role:"status",className:"mb-2 flex flex-wrap items-center gap-2 rounded-lg bg-muted px-3 py-2 text-sm",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1",children:c.error??b("nativeUiDisconnected")}),(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",disabled:c.refreshing,onClick:a.refresh,children:[c.refreshing?(0,A.jsx)(R.A,{className:"size-3.5 animate-spin"}):null,b("nativeUiRetry")]}),d?null:(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:a.dismissError,children:b("close",{ns:"common"})})]}):null,d?c.collapsed?(0,A.jsxs)("div",{className:"mb-2 flex items-center gap-2 rounded-lg border px-3 py-2","data-testid":"native-ui-collapsed",children:[(0,A.jsx)(Cd,{className:"size-4 shrink-0"}),(0,A.jsx)("span",{className:"min-w-0 flex-1 text-sm",children:b("nativeUiPending",{count:c.snapshot.requests.length})}),(0,A.jsx)(U.$,{type:"button",variant:"outline",size:"sm",onClick:()=>a.setCollapsed(!1),children:b("nativeUiResume")})]}):(0,A.jsx)(Cg,{request:d,model:a},d.id):null,c.notices.length>0?(0,A.jsxs)(co.Nt,{defaultOpen:!!(d||c.commandPending?.startsWith("/mcp login ")),className:"mb-2 rounded-lg border px-3 py-2","data-testid":"native-ui-output",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsxs)(co.R6,{className:"group flex min-h-7 min-w-0 flex-1 cursor-pointer items-center gap-2 text-left text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,A.jsx)(cn.A,{className:"size-3.5 shrink-0 transition-transform group-data-panel-open:rotate-180 motion-reduce:transition-none"}),b("nativeCommandOutput",{defaultValue:"会话命令输出"})]}),(0,A.jsx)(U.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":b("close",{ns:"common"}),onClick:a.dismissNotices,children:(0,A.jsx)(al.A,{className:"size-3.5"})})]}),(0,A.jsx)(co.Ke,{children:(0,A.jsx)("div",{className:"mt-2 max-h-40 overflow-y-auto",children:(0,A.jsx)(B0,{notices:c.notices})})})]}):null,c.prefill?(0,A.jsxs)("div",{className:"mb-2 rounded-lg border px-3 py-2","data-testid":"native-ui-prefill",children:[(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)("span",{className:"flex-1 text-sm font-medium",children:b("nativeUiDraft")}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>a.usePrefill("dismiss"),children:b("nativeUiDismiss")})]}),(0,A.jsx)("p",{className:"my-2 max-h-24 overflow-y-auto text-sm whitespace-pre-wrap wrap-anywhere",children:c.prefill.text}),(0,A.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"secondary",onClick:()=>a.usePrefill("append"),children:b("nativeUiAppend")}),(0,A.jsx)(U.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>a.usePrefill("replace"),children:b("nativeUiReplace")})]})]}):null]})}function Ci({snapshot:a,placement:b}){let{t:c}=(0,Q.Bd)("workbench"),d=Object.entries(a.widgets).filter(([,a])=>a.placement===b),e="belowEditor"===b?Object.values(a.statuses):[];return d.length||e.length?(0,A.jsxs)("div",{className:"my-1.5 space-y-1","data-testid":`native-ui-extras-${b}`,children:[d.length?(0,A.jsxs)("details",{className:"group",children:[(0,A.jsxs)("summary",{className:"flex min-h-7 cursor-pointer items-center gap-2 text-xs text-muted-foreground outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,A.jsx)(Cf,{className:"size-3.5"}),c("nativeUiInfo"),(0,A.jsx)("span",{children:d.length>1?d.length:""}),(0,A.jsx)(cn.A,{className:"size-3.5 transition-transform group-open:rotate-180"})]}),(0,A.jsx)("div",{className:"max-h-36 space-y-2 overflow-y-auto px-2 pb-2 text-sm leading-6",children:d.map(([a,b])=>(0,A.jsx)("p",{className:"whitespace-pre-wrap wrap-anywhere",children:b.lines.join("\n")},a))})]}):null,e.length?(0,A.jsxs)("details",{className:"group",children:[(0,A.jsxs)("summary",{className:"flex min-h-7 cursor-pointer items-center gap-2 text-xs text-muted-foreground",children:[(0,A.jsx)("span",{className:"size-1.5 shrink-0 rounded-full bg-current"}),(0,A.jsx)("span",{className:"min-w-0 truncate group-open:hidden",children:e[0]}),(0,A.jsx)("span",{className:"hidden group-open:inline",children:c("nativeUiStatus")}),e.length>1?(0,A.jsxs)("span",{children:["+",e.length-1]}):null]}),(0,A.jsx)("div",{className:"max-h-32 space-y-1 overflow-y-auto px-2 py-1 text-sm whitespace-pre-wrap wrap-anywhere",children:e.map((a,b)=>(0,A.jsx)("p",{children:a},b))})]}):null]}):null}let Cj={off:"thinkingOff",minimal:"thinkingMinimal",low:"thinkingLow",medium:"thinkingMedium",high:"thinkingHigh",xhigh:"thinkingXhigh",max:"thinkingMax"};function Ck(a){return a<1048576?`${Math.max(1,Math.round(a/1024))}KB`:`${(a/1048576).toFixed(1)}MB`}let Cl=(0,B.memo)(function({onOpenSettings:a,workSession:b,chatRuntime:c,inputRuntime:d,renderTaskSummary:e,renderTaskMenu:f,renderPluginComposerPanel:g,renderPluginWidgets:h,gitRuntime:i,active:j,widgetsVisible:k,mobile:l,invokePluginMethod:m,listPiCommands:n,getChatModelContext:o,capabilityModes:p,setChatCapabilityMode:q,newSessionPending:r,newSessionDisabled:s,onNewSession:t,clonePending:u,cloneDisabled:v,onCloneWorkSession:w,onOpenBranchPicker:x,onOpenGitBranchPicker:y}){var z;let C,D,E,F,{t:G}=(0,Q.Bd)("workbench"),H=(0,bG.G)(),I=(0,bF.So)(),J=(0,B.useMemo)(()=>z5.Pi.parse({workId:b.workId,sessionId:b.sessionId,branchId:b.branchId}),[b.branchId,b.sessionId,b.workId]),K=(0,B.useCallback)(()=>d.getState(J),[d,J]),L=(0,B.useCallback)(()=>c.getSourceState(J).runtime,[c,J]),M=(0,B.useSyncExternalStore)(d.subscribe,K,K),N=(0,B.useSyncExternalStore)(c.subscribe,L,L),O=(0,B.useCallback)(()=>c.getSourceState(J).syncStatus,[c,J]),P="ready"===(0,B.useSyncExternalStore)(c.subscribe,O,O),S=(z=c.nativeUi,C=(0,bG.G)(),D=(0,B.useCallback)(()=>z.getState(J),[z,J]),E=(0,B.useSyncExternalStore)(z.subscribe,D,D),F=(0,B.useCallback)(()=>d.getState(J),[d,J]),(0,B.useSyncExternalStore)(d.subscribe,F,F),{state:E,canStop:P,setAnswer:(a,b)=>z.edit(J,{answers:{...z.getState(J).answers,[a]:b}}),setCollapsed:a=>z.edit(J,{collapsed:a}),answer:(a,b)=>{z.respond(J,{id:a,value:b})},refresh:()=>{z.refreshSource(J)},dismissError:()=>z.edit(J,{error:null}),dismissNotices:()=>z.edit(J,{notices:[]}),usePrefill:a=>{let b=z.getState(J).prefill;if(b){if("dismiss"!==a){let c=d.getState(J).text;d.setText(J,"replace"===a?b.text:`${c}${c?"\n":""}${b.text}`)}z.edit(J,{prefill:null})}},stop:()=>{d.interrupt(J).catch(a=>C.error(a instanceof Error?a.message:String(a)))}}),T=S.state.snapshot.requests.length>0,V="basic"===N.extensionMode,X="basic"===N.presentationMode,Y=(0,B.useRef)(null),Z=(0,B.useRef)(null),$=(0,B.useRef)(null),_=(0,B.useRef)(null),ab=function(){let[a,b]=(0,B.useState)(!1);return a}(),[ac,ad]=(0,B.useState)(null),[ae,af]=(0,B.useState)(null),ag=(0,B.useCallback)(()=>{af(null)},[]),[ah,ai]=(0,B.useState)(!1),[aj,ak]=(0,B.useState)(null),[am,ao]=(0,B.useState)(!1),[ap,aq]=(0,B.useState)(!1),[ar,as]=(0,B.useState)(!1),[at,au]=(0,B.useState)(null),[av,aw]=(0,B.useState)(null),ax=JSON.stringify([J.workId,J.sessionId,J.branchId]),ay=(0,B.useMemo)(()=>V?[]:I.flatMap(a=>a.contributions.flatMap(b=>"composer-panel"===b.kind?[{pluginName:a.pluginName,descriptor:b}]:[])),[I,V]),az=ae?ay.find(a=>a.pluginName===ae.pluginName&&a.descriptor.contributionName===ae.contributionName):void 0,aA="main_running"===b.status,aB=aA||"background_running"===b.status,aC="completed"===b.status,aD=null!==av,aE=av?.text??M.text,aF=av?.images??M.images,aG=0===aF.length&&aE.trim()===`/${BQ.name}`,aH=aF.reduce((a,b)=>a+b.blob.size,0),aI=M.outbox&&!(aD&&"sending"===M.outbox.status)?M.outbox:null,aJ=aA&&!aD,aK=N.queues,aL=M.images.reduce((a,b)=>a+b.blob.size,0),aM=M.images.some(a=>"optimizing"===a.status),aN=M.images.some(a=>"error"===a.status),aO=N.model,aP=aO?M.models.models.find(a=>a.provider===aO.provider&&a.modelId===aO.modelId):null,aQ=M.images.length>0&&!aP?.input.includes("image"),aR=ah&&!ap,aS=P&&!T&&M.loaded&&!M.outbox&&(M.text.trim().length>0||M.images.length>0)&&M.images.length<=10&&!aM&&!aN&&aL<=0x1400000&&!aQ,aT=N.plugins["task-center"],aU=N.contextUsage,aV=aP?.name||aO?.modelId||G("noModelSelected"),aW=P?aO?`${aV} \xb7 ${G(Cj[aO.thinkingLevel])}`:G("selectModel"):G("synchronizing"),aX=aO?G("modelTooltip",{model:aW}):G("chooseModel"),aY=ac??M.error,aZ=(0,B.useCallback)(async(a,b)=>{ai(!0),ad(null);try{await a(),b&&H.success(b)}catch(a){ad(a instanceof Error?a.message:G("operationFailed"))}finally{ai(!1)}},[G,H]),a$=(0,B.useCallback)(a=>{ad(null),q({source:J,capabilityMode:a}).catch(a=>{ad(a instanceof Error?a.message:G("modeChangeFailed"))})},[q,J,G]),a_=(0,B.useCallback)(async()=>{if(!am&&"ready"===c.getSourceState(J).syncStatus){ao(!0);try{await aZ(async()=>{await m({pluginName:"context-ignore",method:"ignore",scope:"session",source:J,input:{}})})}finally{ao(!1)}}},[c,am,m,aZ,J]),a0=(0,B.useCallback)(async()=>{if(!ap){aq(!0);try{await aZ(()=>c.compact(J))}finally{aq(!1)}}},[c,ap,aZ,J]),a1=(0,B.useCallback)(a=>{d.setText(J,`/${a.name} `)},[d,J]),a2=function({source:a,text:b,enabled:c,listPiCommands:d,onSelect:e}){let f=JSON.stringify([a.workId,a.sessionId,a.branchId]),[g,h]=(0,B.useState)(!1),[i,j]=(0,B.useState)(null),[k,l]=(0,B.useState)(null),[m,n]=(0,B.useState)({sourceKey:f,status:"idle",commands:[],error:null}),o=(0,B.useRef)(0),p=(0,B.useRef)(!0),q=c&&!g?/^\/[^\s/]*$/.test(b)?b.slice(1):null:null,r=null===q?null:`${f}\u0000${b}`,s=null!==r&&r!==i,{workId:t,sessionId:u,branchId:v}=a,w=(0,B.useCallback)(async()=>{let a=++o.current;queueMicrotask(()=>{p.current&&o.current===a&&n(a=>a.sourceKey===f?{...a,status:"loading",error:null}:{sourceKey:f,status:"loading",commands:[],error:null})});try{let b=await d({source:{workId:t,sessionId:u,branchId:v}});if(!p.current||o.current!==a)return;n({sourceKey:f,status:"ready",commands:b.commands,error:null})}catch(b){if(!p.current||o.current!==a)return;throw console.warn("[Pi Desk][SlashCommand] 查询当前会话命令失败",{workId:t,sessionId:u,branchId:v,errorName:b instanceof Error?b.name:"UnknownError"}),n(a=>({sourceKey:f,status:"error",commands:a.sourceKey===f?a.commands:[],error:b instanceof Error?b.message:"查询命令失败"})),b}},[v,f,d,u,t]),x=(0,B.useMemo)(()=>[BQ,...(m.sourceKey===f?m.commands:[]).filter(a=>a.name!==BQ.name).map(a=>({key:`${a.source}:${a.name}`,name:a.name,description:a.description,source:a.source}))],[f,m.commands,m.sourceKey]),y=(0,B.useMemo)(()=>{let a;return a=(q??"").toLocaleLowerCase(),BR.flatMap(b=>{let c=x.map((b,c)=>({command:b,order:c,score:function(a,b){if(!b)return 3;let c=a.name.toLocaleLowerCase(),d=a.description?.toLocaleLowerCase()??"";return c===b?0:c.startsWith(b)?1:c.includes(b)?2:d.includes(b)?4:1/0}(b,a)})).filter(a=>a.command.source===b.source&&Number.isFinite(a.score)).sort((b,c)=>b.score!==c.score?b.score-c.score:a?b.order-c.order:b.command.name.localeCompare(c.command.name)).map(a=>a.command);return c.length>0?[{...b,commands:c}]:[]})},[x,q]),z=(0,B.useMemo)(()=>y.flatMap(a=>a.commands),[y]),A=r&&k?.contextKey===r?z.findIndex(a=>a.key===k.commandKey):-1,C=A>=0?A:0,D=(0,B.useCallback)(a=>{if(!r||0===z.length)return;let b=(a+z.length)%z.length,c=z[b];c&&l({contextKey:r,commandKey:c.key})},[z,r]),E=(0,B.useCallback)(()=>{r&&j(r)},[r]),F=(0,B.useCallback)(()=>{r&&j(null)},[r]),G=(0,B.useCallback)(a=>{let b=z[a];b&&(r&&j(r),e(b))},[z,r,e]),H=(0,B.useCallback)(a=>!!s&&!a.nativeEvent.isComposing&&!a.altKey&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&("Escape"===a.key?(a.preventDefault(),E(),!0):0!==z.length&&("ArrowDown"===a.key?(a.preventDefault(),D(C+1),!0):"ArrowUp"===a.key?(a.preventDefault(),D(C-1),!0):("Enter"===a.key||"Tab"===a.key)&&(a.preventDefault(),G(C),!0))),[C,z.length,E,s,G,D]),I=(0,B.useCallback)(()=>{h(!0)},[]),J=(0,B.useCallback)(()=>{h(!1),j(null)},[]);return{open:s,loading:m.sourceKey===f&&"loading"===m.status,error:m.sourceKey===f&&"error"===m.status?m.error:null,groups:y,commands:z,activeIndex:C,dismiss:E,reopen:F,refresh:w,select:G,setActiveIndex:D,handleKeyDown:H,handleCompositionStart:I,handleCompositionEnd:J}}({source:J,text:aE,enabled:j&&P&&M.loaded&&!M.loading&&!aD,listPiCommands:n,onSelect:a1}),a3=a2.refresh,a4=(0,B.useCallback)(async a=>{if(!ar&&!ah){as(!0);try{await aZ(async()=>{await c.reload(J),await a3(),await d.loadModels(J,!0),a&&d.setText(J,"")})}finally{as(!1)}}},[ah,c,d,a3,ar,aZ,J]),a5=(0,B.useCallback)(a=>{aD||0===a.length||(ad(null),d.addFiles(J,a))},[aD,d,J]),a6=(0,B.useCallback)(async a=>{if("ready"!==c.getSourceState(J).syncStatus)return;if(aG){if(!M.loaded||M.loading)return;await a4(!0);return}if(!aS||aR)return;let b=aA?null:{text:M.text,images:M.images};b&&aw(b),ad(null);try{await d.send(J,a)}catch(a){ad(a instanceof Error?a.message:G("sendFailed"))}finally{b&&aw(null)}},[aS,aR,c,d,M.images,M.loaded,M.loading,M.text,aG,aA,a4,J,G]);return(0,A.jsxs)("div",{className:"mx-auto w-full max-w-3xl px-2 pb-2 sm:px-4 sm:pb-3",children:[aI?(0,A.jsx)("div",{className:(0,W.cn)("mb-2 rounded-lg border px-3 py-2 text-xs","unknown"===aI.status?"border-amber-500/50 bg-amber-500/10 text-amber-900 dark:text-amber-200":"failed"===aI.status?"border-destructive/40 bg-destructive/5 text-destructive":"border-border bg-muted/50 text-muted-foreground"),children:(0,A.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1",children:"sending"===aI.status?G("confirmingSend"):"unknown"===aI.status?G("sendUnknown"):G("sendFailure",{error:aI.error??G("unknownError")})}),"sending"===aI.status?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",disabled:ah,onClick:()=>void aZ(()=>d.restoreOutbox(J),G("outboxRestored")),children:[(0,A.jsx)(pB,{}),G("restoreDraft")]}),(0,A.jsxs)(U.$,{type:"button",variant:"ghost",size:"sm",disabled:ah,onClick:()=>void aZ(()=>d.deleteOutbox(J),G("outboxDeleted")),children:[(0,A.jsx)(bJ,{}),G("delete")]})]})]})}):null,M.notice||aY?(0,A.jsx)("div",{role:aY?"alert":"status",className:(0,W.cn)("mb-2 rounded-md px-2 py-1 text-sm",aY?"bg-destructive/10 text-destructive":"bg-muted text-muted-foreground"),children:(0,A.jsxs)("div",{className:"flex items-center gap-2",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1",children:aY??M.notice}),M.loaded||M.loading||!M.error?M.loaded?(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{ad(null),d.dismissFeedback(J)},children:G("close",{ns:"common"})}):null:(0,A.jsxs)(U.$,{type:"button",variant:"outline",size:"sm",disabled:ah,onClick:()=>void aZ(()=>d.loadSource(J)),children:[(0,A.jsx)(pB,{}),G("retryDraft")]})]})}):null,e({source:J,cwd:b.cwd,pluginState:aT}),(0,A.jsx)(Ch,{model:S}),(0,A.jsx)(Ci,{snapshot:S.state.snapshot,placement:"aboveEditor"}),T?(0,A.jsx)("p",{className:"mb-1 px-1 text-xs text-muted-foreground",children:G("nativeUiComposer")}):null,k&&!V?h({source:J,placement:"aboveEditor"}):null,(0,A.jsxs)("form",{"aria-label":aB?G("composerRunning"):aC?G("composerCompleted"):G("composer"),className:Cb().inputFrame,"data-composer-mobile":l?"true":"false","data-composer-metadata-row":ab?"true":"false",onSubmit:a=>{a.preventDefault(),a6("auto")},onDragOver:a=>{a.dataTransfer.types.includes("Files")&&a.preventDefault()},onDrop:a=>{a.dataTransfer.types.includes("Files")&&(a.preventDefault(),a5([...a.dataTransfer.files]))},children:[(0,A.jsx)(B9,{open:a2.open,loading:a2.loading,error:a2.error,groups:a2.groups,activeIndex:a2.activeIndex,onActiveIndexChange:a2.setActiveIndex,onSelect:a2.select}),(0,A.jsx)("input",{ref:Y,type:"file",accept:"image/jpeg,image/png,image/webp,image/gif,image/bmp",multiple:!0,className:"hidden",onChange:a=>{a.currentTarget.files&&a5([...a.currentTarget.files]),a.currentTarget.value=""}}),(0,A.jsxs)(j0.MG,{className:"overflow-hidden rounded-xl border-border bg-card shadow-xs transition-[background-color,border-color] duration-150 ease-out has-disabled:bg-card has-disabled:opacity-100 dark:shadow-none motion-reduce:transition-none","aria-busy":aD,children:[aF.length>0?(0,A.jsxs)(j0.Sq,{align:"block-start",className:"pi-desk-chat-scrollbar gap-2 overflow-x-auto px-3 pt-3 pb-1",children:[aF.map(a=>(0,A.jsxs)("div",{className:"relative size-16 shrink-0 overflow-hidden rounded-md border bg-muted",title:`${a.name} \xb7 ${a.width}\xd7${a.height} \xb7 ${Ck(a.blob.size)}`,children:[(0,A.jsx)("button",{type:"button",disabled:"ready"!==a.status,"aria-label":G("imagePreview",{name:a.name}),className:"group size-full cursor-zoom-in outline-none disabled:cursor-default focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",onClick:()=>{var b;let c,d;return b=a.localId,void(!((d=(c=aF.filter(a=>"ready"===a.status)).findIndex(a=>a.localId===b))<0)&&au({index:d,slides:c.map(a=>({src:a.objectUrl,alt:a.name,width:a.width,height:a.height}))}))},children:(0,A.jsx)("img",{src:a.objectUrl,alt:a.name,className:"size-full object-cover transition-transform duration-200 group-hover:scale-105 motion-reduce:transition-none"})}),"optimizing"===a.status?(0,A.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center bg-background/85 text-xs",children:G("imageProcessing")}):null,"error"===a.status?(0,A.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 bg-popover px-1 py-0.5 text-xs text-destructive",children:G("imageFailed")}):null,(0,A.jsx)("button",{type:"button","aria-label":G("imageRemove",{name:a.name}),"aria-disabled":aD,className:"absolute right-0.5 top-0.5 z-10 grid size-6 cursor-pointer place-items-center rounded-md bg-popover text-popover-foreground shadow-sm hover:bg-accent",onClick:()=>{aD||d.removeImage(J,a.localId)},children:(0,A.jsx)(al.A,{className:"size-3"})})]},a.localId)),(0,A.jsxs)("span",{className:"self-end whitespace-nowrap text-xs text-muted-foreground",children:[aF.length,"/10 \xb7 ",Ck(aH)]})]}):null,(0,A.jsx)(j0.oR,{value:aE,disabled:!M.loaded||M.loading,readOnly:aD,"aria-disabled":aD,"aria-autocomplete":"list","aria-controls":a2.open?BP:void 0,"aria-expanded":a2.open,"aria-activedescendant":a2.open&&a2.commands.length>0?BS(a2.activeIndex):void 0,placeholder:M.loading?G("draftLoading"):!M.loaded&&M.error?G("draftFailed"):G("inputPlaceholder"),className:(0,W.cn)(Cb().inputText,"pi-desk-chat-scrollbar max-h-48 min-h-9 overflow-y-auto px-3 pt-3 pb-1"),onChange:a=>d.setText(J,a.currentTarget.value),onClick:a2.reopen,onBlur:a2.dismiss,onCompositionStart:a2.handleCompositionStart,onCompositionEnd:a2.handleCompositionEnd,onKeyDown:a=>{a2.handleKeyDown(a)||"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||null===a.currentTarget.form||(a.preventDefault(),a.currentTarget.form.requestSubmit())},onPaste:a=>{let b=[...a.clipboardData?.items??[]].flatMap(a=>{if("file"!==a.kind)return[];let b=a.getAsFile();return b?[b]:[]});0!==b.length&&(a.preventDefault(),a5(b))}}),(0,A.jsxs)(qi,{ref:Z,className:Cb().footer,children:[(0,A.jsxs)(qj,{"data-composer-tools":"primary",className:Cb().primaryTools,children:[(0,A.jsxs)(bq,{children:[(0,A.jsx)(bs,{render:(0,A.jsx)(qk,{tooltip:G("more"),"aria-label":G("moreActions")}),children:(0,A.jsx)(an,{className:"size-4"})}),(0,A.jsxs)(bt,{align:"start",side:"top",className:"w-52",children:[(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:G("session")}),(0,A.jsxs)(bw,{"aria-label":G("switchBranch"),disabled:!P||!M.loaded||M.loading,onClick:()=>x(b.workId),children:[(0,A.jsx)(zM.A,{className:"size-4"}),G("sessionBranch"),(0,A.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:G("escapeTwice")})]}),(0,A.jsxs)(bw,{"aria-label":G("clone"),disabled:!P||v||u,title:0===b.messageCounts.total?G("cloneEmpty"):G("cloneTip"),onClick:w,children:[u?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):(0,A.jsx)(BF,{className:"size-4"}),u?G("cloning"):G("clone")]}),(0,A.jsxs)(bw,{"aria-label":G("replaceSession"),"aria-busy":r,disabled:!P||s||r,onClick:t,children:[r?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):(0,A.jsx)(BG,{className:"size-4"}),r?G("replacing"):G("replaceSession")]})]}),(0,A.jsx)(bC,{}),(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:G("tools")}),f({source:J,cwd:b.cwd,pluginState:aT}),(0,A.jsxs)(bw,{"aria-label":G("toolsAndContext",{defaultValue:"工具与上下文"}),disabled:!P||T,onClick:()=>ak(ax),children:[(0,A.jsx)(j$.A,{className:"size-4"}),G("toolsAndContext",{defaultValue:"工具与上下文"})]}),(0,A.jsxs)(bw,{"aria-label":G("reloadPi"),disabled:!M.loaded||M.loading||!P||aB||ah||ar,title:G("reloadPiTip"),onClick:()=>void a4(!1),children:[ar?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):(0,A.jsx)(bK.A,{className:"size-4"}),ar?G("reloadingPi"):G("reloadPi")]}),X&&!V?(0,A.jsxs)(bw,{disabled:!P||ah||ar,onClick:()=>void aZ(()=>c.setPresentation(J,"normal")),children:[(0,A.jsx)(j$.A,{className:"size-4"}),G("restorePluginPresentation")]}):null]}),ay.length>0?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(bC,{}),(0,A.jsxs)(bu,{children:[(0,A.jsx)(bv,{children:G("plugins")}),ay.map(a=>(0,A.jsxs)(bw,{onClick:()=>af({pluginName:a.pluginName,contributionName:a.descriptor.contributionName,sourceKey:ax}),children:[(0,A.jsx)(ck,{icon:a.descriptor.icon,className:"size-4"}),(0,A.jsx)("span",{className:"truncate",children:a.descriptor.label})]},`${a.pluginName}:${a.descriptor.contributionName}`))]})]}):null]})]}),(0,A.jsx)(qk,{tooltip:G("addImage"),"aria-label":G("addImage"),disabled:M.images.length>=10,"aria-disabled":aD||M.images.length>=10,onClick:()=>{aD||Y.current?.click()},children:(0,A.jsx)(BH,{className:"size-4"})}),aU&&aP?.contextWindow!==null?(0,A.jsx)(BY,{sessionId:b.sessionId,cwd:b.cwd,tokens:aU.tokens,contextWindow:aU.contextWindow,contextIgnorePlugin:N.plugins["context-ignore"],ignoreDisabled:!P||aA||ah,ignorePending:am,compactDisabled:!P||aA||ah,compactPending:ap,onIgnoreContext:a_,onCompactContext:a0}):aP?.contextWindow===null?(0,A.jsx)("span",{className:"px-1 text-xs text-muted-foreground",children:G("modelContextUnknown",{defaultValue:"上下文未知"})}):null]}),(0,A.jsxs)(qj,{"data-composer-tools":"metadata",className:Cb().metadataTools,children:[(0,A.jsx)(BO,{workSession:b,runtime:i,active:j,chatReady:P,onOpen:y}),(0,A.jsx)(Cc,{modes:p,value:N.capabilityMode,disabled:!P,onChange:a$}),(0,A.jsx)(B4,{source:J,runtime:d,catalog:M.models,current:aO,label:aW,title:aX,disabled:!P||aB||aD||ah,triggerClassName:Cb().modelTrigger,detailsClassName:Cb().modelTriggerDetails,onOpenSettings:a},ax)]}),aA&&aD?(0,A.jsx)("span",{ref:_,className:"min-w-0 truncate px-2 text-xs text-muted-foreground",children:G("preparingContext")}):null,(0,A.jsxs)("div",{ref:$,className:Cb().submitTools,children:[(0,A.jsx)(B7,{queues:aK,disabled:!P||ah,onRestore:()=>void aZ(()=>d.restoreQueue(J),G("queuesRestored"))}),aJ?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(qk,{tooltip:G("steerNow"),"aria-label":G("steerNow"),variant:"secondary",disabled:!aS||aR,onClick:()=>void a6("auto"),children:(0,A.jsx)(aa.A,{className:"size-3.5"})}),(0,A.jsx)(qk,{tooltip:G("sendFollowUp"),"aria-label":G("sendFollowUp"),variant:"outline",disabled:!aS||aR,onClick:()=>void a6("follow_up"),children:(0,A.jsx)(BI,{className:"size-3.5"})}),(0,A.jsx)(qk,{tooltip:G("stopResponse"),"aria-label":G("stopResponse"),variant:"destructive",disabled:!P||ah,onClick:()=>void aZ(()=>d.interrupt(J)),children:(0,A.jsx)(BJ,{className:"size-3.5 fill-current"})})]}):(0,A.jsx)(U.$,{type:aD?"button":"submit",size:"icon",disabled:!aD&&(!aS||aR),"aria-disabled":aD||!aS||aR,"aria-busy":aD,"aria-label":aD?G("sending"):P?G("send"):G("synchronizing"),children:aD?(0,A.jsx)(BK,{className:"size-4"}):P?(0,A.jsx)(BL,{}):(0,A.jsx)(R.A,{className:"size-4 animate-spin"})})]})]})]})]}),k&&!V?h({source:J,placement:"belowEditor"}):null,(0,A.jsx)(Ci,{snapshot:S.state.snapshot,placement:"belowEditor"}),ae&&ae.sourceKey===ax&&az?g({pluginName:ae.pluginName,descriptor:az.descriptor,source:J,onClose:ag}):null,aj===ax&&P?(0,A.jsx)(B2,{open:!0,source:J,runtime:d,getContext:o,listCommands:n,nativeUi:S,nativeBiz:c.nativeUi,commandsDisabled:aB||aD||ah,onOpenChange:a=>ak(a?ax:null),onOpenSettings:a},ax):null,at?(0,A.jsx)(jW.k,{mode:"modal",open:!0,slides:at.slides,index:at.index,ariaLabel:G("imagePreviewPending"),onClose:()=>au(null),onIndexChange:a=>au(b=>b?{...b,index:a}:b)}):null,M.images.length>10?(0,A.jsx)("p",{className:"mt-1 px-1 text-sm text-destructive",children:G("tooManyImages")}):aQ?(0,A.jsx)("p",{className:"mt-1 px-1 text-sm text-destructive",children:G("imageUnsupported")}):aL>0x1400000?(0,A.jsx)("p",{className:"mt-1 px-1 text-sm text-destructive",children:G("imagesTooLarge")}):null]})});function Cm({svgRef:a}){let b=(0,B.useId)(),c=`${b}-head`,d=`${b}-fur`;return(0,A.jsxs)("svg",{ref:a,viewBox:"0 0 640 560",fill:"none","aria-hidden":"true",className:"pointer-events-none absolute left-1/2 top-1/2 max-w-none -translate-x-1/2 -translate-y-1/2 overflow-visible",style:{width:"144.8%",height:"168.93%"},children:[(0,A.jsxs)("g",{"data-part":"busy-dots",opacity:"0",fill:"currentColor",children:[(0,A.jsx)("circle",{cx:"294",cy:"481",r:"5.5"}),(0,A.jsx)("circle",{cx:"320",cy:"481",r:"5.5"}),(0,A.jsx)("circle",{cx:"346",cy:"481",r:"5.5"})]}),(0,A.jsx)("g",{"data-part":"head",children:(0,A.jsxs)("g",{transform:"translate(64 20)",children:[(0,A.jsxs)("defs",{children:[(0,A.jsx)("path",{id:c,d:"M256 88C190 88 132 109 90 161C62 153 35 171 35 198C35 217 45 231 61 240L54 277C47 316 64 353 104 379C144 406 195 419 256 419C317 419 368 406 408 379C448 353 465 316 458 277L451 240C467 231 477 217 477 198C477 171 450 153 422 161C380 109 322 88 256 88Z"}),(0,A.jsxs)("mask",{id:d,maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"512",height:"512",children:[(0,A.jsx)("rect",{width:"512",height:"512",fill:"white"}),(0,A.jsx)("path",{fill:"black",d:"M170 272C201 253 229 240 256 240C283 240 311 253 342 272C383 255 425 261 444 288C472 327 443 369 406 389C367 430 315 448 256 448C197 448 145 430 106 389C69 369 40 327 68 288C87 261 129 255 170 272Z"})]})]}),(0,A.jsx)("use",{href:`#${c}`,fill:"#F3E2C6"}),(0,A.jsx)("use",{href:`#${c}`,fill:"#B87945",mask:`url(#${d})`}),(0,A.jsxs)("g",{fill:"#303030",children:[(0,A.jsx)("path",{d:"M76 180C62 177 53 186 53 198C53 207 57 215 64 220L76 180Z"}),(0,A.jsx)("path",{d:"M436 180C450 177 459 186 459 198C459 207 455 215 448 220L436 180Z"})]}),(0,A.jsxs)("g",{"data-part":"face",children:[["left","right"].map((a,b)=>(0,A.jsxs)("g",{"data-part":`${a}-eye`,transform:`translate(${0===b?158:354} 239)`,children:[(0,A.jsx)("path",{"data-part":`${a}-eye-shape`,fill:"#303030",d:"M-26 0a26 28 0 1 0 52 0a26 28 0 1 0-52 0"}),(0,A.jsx)("circle",{"data-part":`${a}-eye-shine`,cx:"8",cy:"-11",r:"6.5",fill:"#fff"})]},a)),(0,A.jsxs)("g",{"data-part":"cheeks",fill:"#D69973",opacity:"0",children:[(0,A.jsx)("ellipse",{cx:"133",cy:"316",rx:"26",ry:"13"}),(0,A.jsx)("ellipse",{cx:"379",cy:"316",rx:"26",ry:"13"})]}),(0,A.jsx)("path",{fill:"#303030",d:"M219 269C219 254 240 254 256 254C272 254 293 254 293 269C293 282 276 299 256 303C236 299 219 282 219 269Z"}),(0,A.jsxs)("g",{"data-part":"smile",stroke:"#303030",strokeLinecap:"round",strokeWidth:"10",children:[(0,A.jsx)("path",{d:"M256 300C256 317 246 327 232 327C220 327 211 322 207 314"}),(0,A.jsx)("path",{d:"M256 300C256 317 266 327 280 327C292 327 301 322 305 314"})]}),(0,A.jsxs)("g",{"data-part":"mouth",opacity:"0",children:[(0,A.jsx)("ellipse",{cx:"256",cy:"333",rx:"16",ry:"22",fill:"#303030"}),(0,A.jsx)("ellipse",{cx:"256",cy:"347",rx:"9",ry:"5",fill:"#D69973"})]}),(0,A.jsx)("g",{stroke:"#303030",strokeLinecap:"round",strokeWidth:"9",children:(0,A.jsx)("path",{d:"M101 298C116 293 132 292 146 292M110 327C123 318 135 312 148 310M411 298C396 293 380 292 366 292M402 327C389 318 377 312 364 310"})})]})]})}),(0,A.jsxs)("g",{"data-part":"thoughts",fill:"currentColor",opacity:"0",children:[(0,A.jsx)("circle",{cx:"504",cy:"132",r:"5"}),(0,A.jsx)("circle",{cx:"524",cy:"102",r:"8"}),(0,A.jsx)("circle",{cx:"544",cy:"65",r:"11"})]}),(0,A.jsx)("g",{"data-part":"surprise",stroke:"currentColor",strokeWidth:"7",strokeLinecap:"round",opacity:"0",children:(0,A.jsx)("path",{d:"M465 91L479 66M498 113L521 100M443 69L446 44"})}),(0,A.jsxs)("g",{"data-part":"sleep",fill:"currentColor",fontFamily:"Arial,sans-serif",fontWeight:"600",opacity:"0",children:[(0,A.jsx)("text",{x:"479",y:"137",fontSize:"24",children:"z"}),(0,A.jsx)("text",{x:"522",y:"92",fontSize:"32",children:"z"})]}),(0,A.jsxs)("g",{"data-part":"sparkles",opacity:"0",fill:"#BE8656",children:[(0,A.jsx)("path",{d:"M93 158Q96 177 111 180Q96 184 93 202Q90 184 75 180Q90 177 93 158Z"}),(0,A.jsx)("path",{d:"M545 126Q550 151 570 155Q550 159 545 184Q540 159 521 155Q540 151 545 126Z"}),(0,A.jsx)("circle",{cx:"513",cy:"76",r:"5"})]})]})}function Cn({state:a,active:b=!0,size:c=100,className:d}){let e=(0,B.useRef)(null);return(0,B.useRef)(null),(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("relative block shrink-0 text-muted-foreground",d),style:{width:c,height:.75*c},children:(0,A.jsx)(Cm,{svgRef:e})})}function Co(){let a,{t:b}=(0,Q.Bd)("workbench"),c=wn(),d=!0===((a=(0,B.useContext)(ue))?a.custom:void 0),e=Bw(),{state:f,textKey:g}=function(a){let[b,c]=(0,B.useState)(null),[d,e]=(0,B.useState)(!1);return{state:b?a?b.waiting:d?b.recover:b.reaction:"sleep",textKey:b?a?b.quip:b.reply:null}}(c);return c||d&&!e?(0,A.jsxs)(xD.div,{"data-testid":"workbench-empty-session","data-otter-state":f,"data-leaving":c?void 0:"true",initial:!1,animate:{opacity:1,y:0},exit:{opacity:0,y:-4,transition:{delay:.55,duration:1.15,ease:"easeInOut"}},className:"flex max-w-sm flex-col items-center gap-5",children:[(0,A.jsx)(Cn,{state:f,size:100}),(0,A.jsx)("p",{className:"min-h-6 text-sm leading-6 text-muted-foreground",children:g?b(g):null})]}):null}function Cp({active:a,ready:b,empty:c,hasUserMessage:d}){return(0,A.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-10 flex items-center justify-center px-6 py-8 text-center",children:[(0,A.jsx)(Bv,{initial:!1,custom:a&&b&&d,children:a&&b&&c?(0,A.jsx)(Co,{},"welcome"):null}),a&&!b&&c?(0,A.jsx)(Bk,{variant:"loading"}):null]})}function Cq({active:a,turns:b,window:c}){return a?(0,A.jsx)(qX,{turns:b,window:c}):null}function Cr(a){return document.addEventListener("visibilitychange",a),()=>document.removeEventListener("visibilitychange",a)}function Cs(){return"visible"===document.visibilityState}function Ct(){return!0}function Cu({active:a,visible:b=!0,running:c,ready:d,containsTail:e,latestUserAnchor:f,entrySnapshot:g,onResetToTail:h,onSaveSnapshot:i,onClearSnapshot:j}){let{isAtBottom:k,scrollRef:l,scrollToBottom:m,state:n,stopScroll:o}=pN(),p=(0,B.useSyncExternalStore)(Cr,Cs,Ct);return(0,B.useRef)(p),(0,B.useRef)(!1),(0,B.useRef)(!1),(0,B.useRef)(null),(0,B.useRef)(null),(0,B.useRef)(c?g:null),(0,B.useRef)(null),null}Cl.displayName="L2WorkbenchChatComposer",Object.keys(zl.R.en).filter(a=>a.startsWith("emptyQuip"));let Cv=(0,B.memo)(function({active:a,visible:b,workSession:c,chatRuntime:d,inputRuntime:e,onPreviewFile:f}){let{t:g}=(0,Q.Bd)("workbench"),h=(0,B.useMemo)(()=>z5.Pi.parse({workId:c.workId,sessionId:c.sessionId,branchId:c.branchId}),[c.branchId,c.sessionId,c.workId]),i=(0,B.useMemo)(()=>d.getViewportSnapshot(h),[d,h]),j=(0,B.useCallback)(()=>d.getSourceState(h),[d,h]),k=(0,B.useSyncExternalStore)(d.subscribe,j,j),l="main_running"===c.status||"background_running"===c.status,m=(0,B.useMemo)(()=>qE({messages:k.messages,temporaryMessages:k.temporaryMessages},l),[l,k.messages,k.temporaryMessages]),n=k.messages.length>0||k.temporaryMessages.length>0,o=k.messages.some(a=>"user"===a.fixed.type)||k.temporaryMessages.some(a=>"user"===a.fixed.type),p=l||k.temporaryMessages.length>0,q=m.findLast(a=>null!==a.user)??null,r=q?.user??null,s=r?`${r.identity}:user`:null,t=(0,B.useCallback)(async a=>a.durable?void 0!==a.detail?a.detail:d.loadMessageDetail(h,a.durable.location.index,a.durable.location.entryId):null,[d,h]),u=(0,B.useCallback)((a,b)=>e.acquireMessageImage({source:h,tempId:a.tempId,entryId:a.durable?.location.entryId??null,imageIndex:b}),[e,h]),v=(0,B.useCallback)(a=>f(h,a),[f,h]),w=(0,B.useCallback)(a=>{d.saveViewportSnapshot(h,a)},[d,h]),x=(0,B.useCallback)(()=>{d.clearViewportSnapshot(h)},[d,h]),y=(0,B.useCallback)(()=>d.setPresentation(h,"basic"),[d,h]);return(0,A.jsx)(qZ,{basic:"basic"===k.runtime.presentationMode,onRecover:y,children:(0,A.jsxs)(pO,{className:"min-h-0",initial:!1,resize:"instant","aria-label":g("chatMessages",{name:c.sessionTitle??c.projectName}),children:[(0,A.jsx)(qS,{turns:m,active:b,focusTurnIdentity:q?.identity??null,initialAnchor:p?i?.messageId??null:null,children:d=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(x$,{children:(0,A.jsx)(pP,{scrollClassName:"pi-desk-chat-scrollbar pi-desk-chat-conversation-scroll overflow-auto",className:"mx-auto min-h-full w-full max-w-3xl gap-6 px-3 pt-3 pb-4 sm:px-5",children:d.visibleTurns.map((a,b)=>{let e=d.startIndex+b;return(0,A.jsx)(yD,{turn:a,cwd:c.cwd,logicalTail:d.containsTail&&e===m.length-1,onLoadDetail:t,onAcquireImage:u,onPreviewFile:v},a.identity)})})}),(0,A.jsx)(Cu,{active:a,visible:b,running:p,ready:n,containsTail:d.containsTail,latestUserAnchor:s,entrySnapshot:i,onResetToTail:d.resetToTail,onSaveSnapshot:w,onClearSnapshot:x},`viewport:${h.sessionId}:${h.branchId}`),(0,A.jsx)(qL,{active:b}),(0,A.jsx)(Cq,{active:b,turns:m,window:d},`navigation:${h.sessionId}:${h.branchId}`)]})},`window:${h.sessionId}:${h.branchId}`),(0,A.jsx)(Cp,{active:b,ready:"ready"===k.syncStatus,empty:!n,hasUserMessage:o})]})})});Cv.displayName="L2WorkbenchChatView";var Cw=c(68169),Cx=c.n(Cw);function Cy({error:a,copied:b,reloading:c,canReload:d,onCopy:e,onReload:f}){let{t:g}=(0,Q.Bd)("workbench");return(0,A.jsxs)(cm.AM,{children:[(0,A.jsxs)(cm.Wv,{openOnHover:!0,delay:150,closeDelay:150,render:(0,A.jsx)(U.$,{variant:"ghost",size:"sm","aria-label":g("initializationDegraded"),title:g("initializationDegraded"),className:(0,W.cn)(Cx().headerAction,"text-xs text-destructive hover:text-destructive")}),children:[(0,A.jsx)(ak.A,{className:(0,W.cn)(Cx().headerActionIcon,"size-4"),"aria-hidden":"true"}),(0,A.jsx)("span",{className:Cx().headerActionLabel,children:g("initializationDegraded")})]}),(0,A.jsxs)(cm.hl,{align:"end",alignOffset:8,className:"max-h-[min(28rem,var(--available-height))] w-[28rem] gap-0 overflow-hidden p-0",initialFocus:a=>"keyboard"===a,children:[(0,A.jsx)(cm.eO,{className:"shrink-0 border-b px-3 py-2",children:g("initializationDetails")}),(0,A.jsx)("pre",{className:"min-h-0 overflow-auto overscroll-contain whitespace-pre-wrap break-words p-3 font-mono text-sm leading-[1.6]","aria-label":g("initializationDetails"),children:a}),(0,A.jsxs)("div",{className:"flex shrink-0 flex-wrap justify-end gap-2 border-t px-3 py-2",children:[(0,A.jsxs)(U.$,{variant:"outline",size:"sm",onClick:e,children:[b?(0,A.jsx)(bp.A,{}):(0,A.jsx)(bI.A,{}),g(b?"copied":"copyInitializationError")]}),(0,A.jsxs)(U.$,{size:"sm",disabled:!d,onClick:f,children:[c?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),g(c?"reloadingPi":"reloadPi")]})]})]})]})}var Cz=c(40286),CA=c.n(Cz);function CB({sidebarOpen:a,onOpen:b}){let{t:c}=(0,Q.Bd)("workbench"),d=Bw();return(0,A.jsxs)("div",{"data-testid":"workbench-session-guide",className:CA().guide,children:[(0,A.jsx)(Cn,{state:a?"idle":"point",size:120,className:CA().otter}),a?null:(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)("svg",{"data-testid":"workbench-session-guide-arrow","aria-hidden":"true",viewBox:"0 0 36 32",className:CA().arrow,fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,A.jsx)(xD.path,{d:"M30 26Q10 25 9 10",initial:!d&&{pathLength:0},animate:{pathLength:1},transition:{duration:.7*!d,ease:"easeOut"},opacity:".65"}),(0,A.jsx)("path",{d:"M4 16L9 10L15 15",opacity:".65"})]}),(0,A.jsx)(U.$,{variant:"ghost","aria-label":c("showSessionMenu"),onClick:b,className:"absolute inset-0 size-full p-0 hover:bg-foreground/5"})]})]})}function CC(a){return"[object Object]"===Object.prototype.toString.call(a)||Array.isArray(a)}function CD(a,b){let c=Object.keys(a),d=Object.keys(b);return c.length===d.length&&JSON.stringify(Object.keys(a.breakpoints||{}))===JSON.stringify(Object.keys(b.breakpoints||{}))&&c.every(c=>{let d=a[c],e=b[c];return"function"==typeof d?`${d}`==`${e}`:CC(d)&&CC(e)?CD(d,e):d===e})}function CE(a){return a.concat().sort((a,b)=>a.name>b.name?1:-1).map(a=>a.options)}function CF(a){return"number"==typeof a}function CG(a){return"string"==typeof a}function CH(a){return"boolean"==typeof a}function CI(a){return"[object Object]"===Object.prototype.toString.call(a)}function CJ(a){return Math.abs(a)}function CK(a){return Math.sign(a)}function CL(a){return CP(a).map(Number)}function CM(a){return a[CN(a)]}function CN(a){return Math.max(0,a.length-1)}function CO(a,b=0){return Array.from(Array(a),(a,c)=>b+c)}function CP(a){return Object.keys(a)}function CQ(a,b){return void 0!==b.MouseEvent&&a instanceof b.MouseEvent}function CR(){let a=[],b={add:function(c,d,e,f={passive:!0}){let g;return"addEventListener"in c?(c.addEventListener(d,e,f),g=()=>c.removeEventListener(d,e,f)):(c.addListener(e),g=()=>c.removeListener(e)),a.push(g),b},clear:function(){a=a.filter(a=>a())}};return b}function CS(a=0,b=0){let c=CJ(a-b);function d(c){return c<a||c>b}return{length:c,max:b,min:a,constrain:function(c){return d(c)?c<a?a:b:c},reachedAny:d,reachedMax:function(a){return a>b},reachedMin:function(b){return b<a},removeOffset:function(a){return c?a-c*Math.ceil((a-b)/c):a}}}function CT(a){let b=a;function c(a){return CF(a)?a:a.get()}return{get:function(){return b},set:function(a){b=c(a)},add:function(a){b+=c(a)},subtract:function(a){b-=c(a)}}}function CU(a,b){let c="x"===a.scroll?function(a){return`translate3d(${a}px,0px,0px)`}:function(a){return`translate3d(0px,${a}px,0px)`},d=b.style,e=null,f=!1;return{clear:function(){!f&&(d.transform="",b.getAttribute("style")||b.removeAttribute("style"))},to:function(b){if(f)return;let g=Math.round(100*a.direction(b))/100;g!==e&&(d.transform=c(g),e=g)},toggleActive:function(a){f=!a}}}let CV={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function CW(a,b,c){let d,e,f,g,h,i,j,k,l=a.ownerDocument,m=l.defaultView,n=function(a){function b(a,b){return function a(b,c){return[b,c].reduce((b,c)=>(CP(c).forEach(d=>{let e=b[d],f=c[d],g=CI(e)&&CI(f);b[d]=g?a(e,f):f}),b),{})}(a,b||{})}return{mergeOptions:b,optionsAtMedia:function(c){let d=c.breakpoints||{},e=CP(d).filter(b=>a.matchMedia(b).matches).map(a=>d[a]).reduce((a,c)=>b(a,c),{});return b(c,e)},optionsMediaQueries:function(b){return b.map(a=>CP(a.breakpoints||{})).reduce((a,b)=>a.concat(b),[]).map(a.matchMedia)}}}(m),o=(k=[],{init:function(a,b){return(k=b.filter(({options:a})=>!1!==n.optionsAtMedia(a).active)).forEach(b=>b.init(a,n)),b.reduce((a,b)=>Object.assign(a,{[b.name]:b}),{})},destroy:function(){k=k.filter(a=>a.destroy())}}),p=CR(),q=(e={},f={init:function(a){d=a},emit:function(a){return(e[a]||[]).forEach(b=>b(d,a)),f},off:function(a,b){return e[a]=(e[a]||[]).filter(a=>a!==b),f},on:function(a,b){return e[a]=(e[a]||[]).concat([b]),f},clear:function(){e={}}}),{mergeOptions:r,optionsAtMedia:s,optionsMediaQueries:t}=n,{on:u,off:v,emit:w}=q,x=!1,y=r(CV,CW.globalOptions),z=r(y),A=[];function B(b,c){x||(z=s(y=r(y,b)),A=c||A,function(){let{container:b,slides:c}=z;i=(CG(b)?a.querySelector(b):b)||a.children[0];let d=CG(c)?i.querySelectorAll(c):c;j=[].slice.call(d||i.children)}(),g=function b(c){let d=function(a,b,c,d,e,f,g){var h,i;let j,k,l,m,n,o,p,q,r,s,t,u,v,w,{align:x,axis:y,direction:z,startIndex:A,loop:B,duration:C,dragFree:D,dragThreshold:E,inViewThreshold:F,slidesToScroll:G,skipSnaps:H,containScroll:I,watchResize:J,watchSlides:K,watchDrag:L,watchFocus:M}=f,N={measure:function(a){let{offsetTop:b,offsetLeft:c,offsetWidth:d,offsetHeight:e}=a;return{top:b,right:c+d,bottom:b+e,left:c,width:d,height:e}}},O=N.measure(b),P=c.map(N.measure),Q=(k="rtl"===z,m=(l="y"===y)||!k?1:-1,n=l?"top":k?"right":"left",o=l?"bottom":k?"left":"right",{scroll:l?"y":"x",cross:l?"x":"y",startEdge:n,endEdge:o,measureSize:function(a){let{height:b,width:c}=a;return l?b:c},direction:function(a){return a*m}}),R=Q.measureSize(O),S={measure:function(a){return a/100*R}},T=(h=x,i=R,j={start:function(){return 0},center:function(a){return(i-a)/2},end:function(a){return i-a}},{measure:function(a,b){return CG(h)?j[h](a):h(i,a,b)}}),U=!B&&!!I,{slideSizes:V,slideSizesWithGaps:W,startGap:X,endGap:Y}=function(a,b,c,d,e,f){let{measureSize:g,startEdge:h,endEdge:i}=a,j=c[0]&&e,k=function(){if(!j)return 0;let a=c[0];return CJ(b[h]-a[h])}(),l=j?parseFloat(f.getComputedStyle(CM(d)).getPropertyValue(`margin-${i}`)):0,m=c.map(g),n=c.map((a,b,c)=>{let d=b===CN(c);return b?d?m[b]+l:c[b+1][h]-a[h]:m[b]+k}).map(CJ);return{slideSizes:m,slideSizesWithGaps:n,startGap:k,endGap:l}}(Q,O,P,c,B||!!I,e),Z=function(a,b,c,d,e,f,g,h){let{startEdge:i,endEdge:j,direction:k}=a,l=CF(c);return{groupSlides:function(a){return l?CL(a).filter(a=>a%c==0).map(b=>a.slice(b,b+c)):a.length?CL(a).reduce((c,l,m)=>{let n=CM(c)||0,o=l===CN(a),p=e[i]-f[n][i],q=e[i]-f[l][j],r=d||0!==n?0:k(g),s=CJ(q-(!d&&o?k(h):0)-(p+r));return m&&s>b+2&&c.push(l),o&&c.push(a.length),c},[]).map((b,c,d)=>{let e=Math.max(d[c-1]||0);return a.slice(e,b)}):[]}}}(Q,R,G,B,O,P,X,Y),{snaps:$,snapsAligned:_}=function(a,b,c,d,e){let{startEdge:f,endEdge:g}=a,{groupSlides:h}=e,i=h(d).map(a=>CM(a)[g]-a[0][f]).map(CJ).map(b.measure),j=d.map(a=>c[f]-a[f]).map(a=>-CJ(a)),k=h(j).map(a=>a[0]).map((a,b)=>a+i[b]);return{snaps:j,snapsAligned:k}}(Q,T,O,P,Z),aa=-CM($)+CM(W),{snapsContained:ab,scrollContainLimit:ac}=function(a,b,c,d){let e,f,g=CS(-b+a,0),h=c.map((a,b)=>{let{min:d,max:e}=g,f=g.constrain(a),h=b===CN(c);return b?h||function(a,b){return 1>=CJ(a-b)}(d,f)?d:function(a,b){return 1>=CJ(a-b)}(e,f)?e:f:e}).map(a=>parseFloat(a.toFixed(3))),i=(e=h[0],f=CM(h),CS(h.lastIndexOf(e),h.indexOf(f)+1));return{snapsContained:function(){if(b<=a+2)return[g.max];if("keepSnaps"===d)return h;let{min:c,max:e}=i;return h.slice(c,e)}(),scrollContainLimit:i}}(R,aa,_,I),ad=U?ab:_,{limit:ae}=(p=ad[0],{limit:CS(B?p-aa:CM(ad),p)}),af=function a(b,c,d){let{constrain:e}=CS(0,b),f=b+1,g=h(c);function h(a){return d?CJ((f+a)%f):e(a)}function i(){return a(b,g,d)}let j={get:function(){return g},set:function(a){return g=h(a),j},add:function(a){return i().set(g+a)},clone:i};return j}(CN(ad),A,B),ag=af.clone(),ah=CL(c),ai=function(a,b,c,d){let e=CR(),f=1e3/60,g=null,h=0,i=0;function j(a){if(!i)return;g||(g=a,c(),c());let e=a-g;for(g=a,h+=e;h>=f;)c(),h-=f;d(h/f),i&&(i=b.requestAnimationFrame(j))}function k(){b.cancelAnimationFrame(i),g=null,h=0,i=0}return{init:function(){e.add(a,"visibilitychange",()=>{a.hidden&&(g=null,h=0)})},destroy:function(){k(),e.clear()},start:function(){i||(i=b.requestAnimationFrame(j))},stop:k,update:c,render:d}}(d,e,()=>(({dragHandler:a,scrollBody:b,scrollBounds:c,options:{loop:d}})=>{d||c.constrain(a.pointerDown()),b.seek()})(aw),a=>(({scrollBody:a,translate:b,location:c,offsetLocation:d,previousLocation:e,scrollLooper:f,slideLooper:g,dragHandler:h,animation:i,eventHandler:j,scrollBounds:k,options:{loop:l}},m)=>{let n=a.settled(),o=!k.shouldConstrain(),p=l?n:n&&o,q=p&&!h.pointerDown();q&&i.stop();let r=c.get()*m+e.get()*(1-m);d.set(r),l&&(f.loop(a.direction()),g.loop()),b.to(d.get()),q&&j.emit("settle"),p||j.emit("scroll")})(aw,a)),aj=ad[af.get()],ak=CT(aj),al=CT(aj),am=CT(aj),an=CT(aj),ao=function(a,b,c,d,e){let f=0,g=0,h=e,i=.68,j=a.get(),k=0;function l(a){return h=a,n}function m(a){return i=a,n}let n={direction:function(){return g},duration:function(){return h},velocity:function(){return f},seek:function(){let b=d.get()-a.get(),e=0;return h?(c.set(a),f+=b/h,f*=i,j+=f,a.add(f),e=j-k):(f=0,c.set(d),a.set(d),e=b),g=CK(e),k=j,n},settled:function(){return .001>CJ(d.get()-b.get())},useBaseFriction:function(){return m(.68)},useBaseDuration:function(){return l(e)},useFriction:m,useDuration:l};return n}(ak,am,al,an,C),ap=function(a,b,c,d,e){let{reachedAny:f,removeOffset:g,constrain:h}=d;function i(a){return a.concat().sort((a,b)=>CJ(a)-CJ(b))[0]}function j(b,d){let e=[b,b+c,b-c];if(!a)return b;if(!d)return i(e);let f=e.filter(a=>CK(a)===d);return f.length?i(f):CM(e)-c}return{byDistance:function(c,d){let i=e.get()+c,{index:k,distance:l}=function(c){let d=a?g(c):h(c),{index:e}=b.map((a,b)=>({diff:j(a-d,0),index:b})).sort((a,b)=>CJ(a.diff)-CJ(b.diff))[0];return{index:e,distance:d}}(i),m=!a&&f(i);if(!d||m)return{index:k,distance:c};let n=c+j(b[k]-l,0);return{index:k,distance:n}},byIndex:function(a,c){let d=j(b[a]-e.get(),c);return{index:a,distance:d}},shortcut:j}}(B,ad,aa,ae,an),aq=function(a,b,c,d,e,f,g){function h(e){let h=e.distance,i=e.index!==b.get();f.add(h),h&&(d.duration()?a.start():(a.update(),a.render(1),a.update())),i&&(c.set(b.get()),b.set(e.index),g.emit("select"))}return{distance:function(a,b){h(e.byDistance(a,b))},index:function(a,c){let d=b.clone().set(a);h(e.byIndex(d.get(),c))}}}(ai,af,ag,ao,ap,an,g),ar=function(a){let{max:b,length:c}=a;return{get:function(a){return c?-((a-b)/c):0}}}(ae),as=CR(),at=(r={},s=null,t=null,u=!1,{init:function(){q=new IntersectionObserver(a=>{u||(a.forEach(a=>{r[c.indexOf(a.target)]=a}),s=null,t=null,g.emit("slidesInView"))},{root:b.parentElement,threshold:F}),c.forEach(a=>q.observe(a))},destroy:function(){q&&q.disconnect(),u=!0},get:function(a=!0){if(a&&s)return s;if(!a&&t)return t;let b=CP(r).reduce((b,c)=>{let d=parseInt(c),{isIntersecting:e}=r[d];return(a&&e||!a&&!e)&&b.push(d),b},[]);return a&&(s=b),a||(t=b),b}}),{slideRegistry:au}=function(a,b,c,d,e,f){let g,{groupSlides:h}=e,{min:i,max:j}=d;return{slideRegistry:(g=h(f),1===c.length?[f]:a&&"keepSnaps"!==b?g.slice(i,j).map((a,b,c)=>{let d=b===CN(c);return b?d?CO(CN(f)-CM(c)[0]+1,CM(c)[0]):a:CO(CM(c[0])+1)}):g)}}(U,I,ad,ac,Z,ah),av=function(a,b,c,d,e,f,g,h){let i={passive:!0,capture:!0},j=0;function k(a){"Tab"===a.code&&(j=new Date().getTime())}return{init:function(l){h&&(f.add(document,"keydown",k,!1),b.forEach((b,k)=>{f.add(b,"focus",b=>{(CH(h)||h(l,b))&&function(b){if(new Date().getTime()-j>10)return;g.emit("slideFocusStart"),a.scrollLeft=0;let f=c.findIndex(a=>a.includes(b));CF(f)&&(e.useDuration(0),d.index(f,0),g.emit("slideFocus"))}(k)},i)}))}}}(a,c,au,aq,ao,as,g,M),aw={ownerDocument:d,ownerWindow:e,eventHandler:g,containerRect:O,slideRects:P,animation:ai,axis:Q,dragHandler:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){let{cross:s,direction:t}=a,u=["INPUT","SELECT","TEXTAREA"],v={passive:!1},w=CR(),x=CR(),y=CS(50,225).constrain(n.measure(20)),z={mouse:300,touch:400},A={mouse:500,touch:600},B=o?43:25,C=!1,D=0,E=0,F=!1,G=!1,H=!1,I=!1;function J(a){if(!CQ(a,d)&&a.touches.length>=2)return K(a);let b=f.readPoint(a),c=f.readPoint(a,s),g=CJ(b-D),i=CJ(c-E);if(!G&&!I&&(!a.cancelable||!(G=g>i)))return K(a);let k=f.pointerMove(a);g>p&&(H=!0),j.useFriction(.3).useDuration(.75),h.start(),e.add(t(k)),a.preventDefault()}function K(a){var b;let c,d,e=k.byDistance(0,!1).index!==l.get(),g=f.pointerUp(a)*(o?A:z)[I?"mouse":"touch"],h=(b=t(g),c=l.add(-1*CK(b)),d=k.byDistance(b,!o).distance,o||CJ(b)<y?d:q&&e?.5*d:k.byIndex(c.get(),0).distance),n=function(a,b){var c,d;if(0===a||0===b||CJ(a)<=CJ(b))return 0;let e=(c=CJ(a),d=CJ(b),CJ(c-d));return CJ(e/a)}(g,h);G=!1,F=!1,x.clear(),j.useDuration(B-10*n).useFriction(.68+n/50),i.distance(h,!o),I=!1,m.emit("pointerUp")}function L(a){H&&(a.stopPropagation(),a.preventDefault(),H=!1)}return{init:function(a){r&&w.add(b,"dragstart",a=>a.preventDefault(),v).add(b,"touchmove",()=>void 0,v).add(b,"touchend",()=>void 0).add(b,"touchstart",h).add(b,"mousedown",h).add(b,"touchcancel",K).add(b,"contextmenu",K).add(b,"click",L,!0);function h(h){(CH(r)||r(a,h))&&function(a){let h,i=CQ(a,d);if((I=i,H=o&&i&&!a.buttons&&C,C=CJ(e.get()-g.get())>=2,!i||0===a.button)&&(h=a.target.nodeName||"",!u.includes(h))){let d;F=!0,f.pointerDown(a),j.useFriction(0).useDuration(0),e.set(g),d=I?c:b,x.add(d,"touchmove",J,v).add(d,"touchend",K).add(d,"mousemove",J,v).add(d,"mouseup",K),D=f.readPoint(a),E=f.readPoint(a,s),m.emit("pointerDown")}}(h)}},destroy:function(){w.clear(),x.clear()},pointerDown:function(){return F}}}(Q,a,d,e,an,function(a,b){let c,d;function e(a){return a.timeStamp}function f(c,d){let e=d||a.scroll,f=`client${"x"===e?"X":"Y"}`;return(CQ(c,b)?c:c.touches[0])[f]}return{pointerDown:function(a){return c=a,d=a,f(a)},pointerMove:function(a){let b=f(a)-f(d),g=e(a)-e(c)>170;return d=a,g&&(c=a),b},pointerUp:function(a){if(!c||!d)return 0;let b=f(d)-f(c),g=e(a)-e(c),h=e(a)-e(d)>170,i=b/g;return g&&!h&&CJ(i)>.1?i:0},readPoint:f}}(Q,e),ak,ai,aq,ao,ap,af,g,S,D,E,H,L),eventStore:as,percentOfView:S,index:af,indexPrevious:ag,limit:ae,location:ak,offsetLocation:am,previousLocation:al,options:f,resizeHandler:function(a,b,c,d,e,f,g){let h,i,j=[a].concat(d),k=[],l=!1;function m(a){return e.measureSize(g.measure(a))}return{init:function(e){f&&(i=m(a),k=d.map(m),h=new ResizeObserver(c=>{(CH(f)||f(e,c))&&function(c){for(let f of c){if(l)return;let c=f.target===a,g=d.indexOf(f.target),h=c?i:k[g];if(CJ(m(c?a:d[g])-h)>=.5){e.reInit(),b.emit("resize");break}}}(c)}),c.requestAnimationFrame(()=>{j.forEach(a=>h.observe(a))}))},destroy:function(){l=!0,h&&h.disconnect()}}}(b,g,e,c,Q,J,N),scrollBody:ao,scrollBounds:function(a,b,c,d,e){let f=e.measure(10),g=e.measure(50),h=CS(.1,.99),i=!1;function j(){return!i&&!!a.reachedAny(c.get())&&!!a.reachedAny(b.get())}return{shouldConstrain:j,constrain:function(e){if(!j())return;let i=a.reachedMin(b.get())?"min":"max",k=CJ(a[i]-b.get()),l=c.get()-b.get(),m=h.constrain(k/g);c.subtract(l*m),!e&&CJ(l)<f&&(c.set(a.constrain(c.get())),d.useDuration(25).useBaseFriction())},toggleActive:function(a){i=!a}}}(ae,am,an,ao,S),scrollLooper:function(a,b,c,d){let{reachedMin:e,reachedMax:f}=CS(b.min+.1,b.max+.1);return{loop:function(b){if(!(1===b?f(c.get()):-1===b&&e(c.get())))return;let g=-1*b*a;d.forEach(a=>a.add(g))}}}(aa,ae,am,[ak,am,al,an]),scrollProgress:ar,scrollSnapList:ad.map(ar.get),scrollSnaps:ad,scrollTarget:ap,scrollTo:aq,slideLooper:function(a,b,c,d,e,f,g,h,i){let j=CL(e),k=CL(e).reverse(),l=o(n(k,g[0]),c,!1).concat(o(n(j,b-g[0]-1),-c,!0));function m(a,b){return a.reduce((a,b)=>a-e[b],b)}function n(a,b){return a.reduce((a,c)=>m(a,b)>0?a.concat([c]):a,[])}function o(e,g,j){let k=f.map((a,c)=>({start:a-d[c]+.5+g,end:a+b-.5+g}));return e.map(b=>{let d=j?0:-c,e=j?c:0,f=k[b][j?"end":"start"];return{index:b,loopPoint:f,slideLocation:CT(-1),translate:CU(a,i[b]),target:()=>h.get()>f?d:e}})}return{canLoop:function(){return l.every(({index:a})=>.1>=m(j.filter(b=>b!==a),b))},clear:function(){l.forEach(a=>a.translate.clear())},loop:function(){l.forEach(a=>{let{target:b,translate:c,slideLocation:d}=a,e=b();e!==d.get()&&(c.to(e),d.set(e))})},loopPoints:l}}(Q,R,aa,V,W,$,ad,am,c),slideFocus:av,slidesHandler:(w=!1,{init:function(a){K&&(v=new MutationObserver(b=>{!w&&(CH(K)||K(a,b))&&function(b){for(let c of b)if("childList"===c.type){a.reInit(),g.emit("slidesChanged");break}}(b)})).observe(b,{childList:!0})},destroy:function(){v&&v.disconnect(),w=!0}}),slidesInView:at,slideIndexes:ah,slideRegistry:au,slidesToScroll:Z,target:an,translate:CU(Q,b)};return aw}(a,i,j,l,m,c,q);return c.loop&&!d.slideLooper.canLoop()?b(Object.assign({},c,{loop:!1})):d}(z),t([y,...A.map(({options:a})=>a)]).forEach(a=>p.add(a,"change",C)),z.active&&(g.translate.to(g.location.get()),g.animation.init(),g.slidesInView.init(),g.slideFocus.init(G),g.eventHandler.init(G),g.resizeHandler.init(G),g.slidesHandler.init(G),g.options.loop&&g.slideLooper.loop(),i.offsetParent&&j.length&&g.dragHandler.init(G),h=o.init(G,A)))}function C(a,b){let c=F();D(),B(r({startIndex:c},a),b),q.emit("reInit")}function D(){g.dragHandler.destroy(),g.eventStore.clear(),g.translate.clear(),g.slideLooper.clear(),g.resizeHandler.destroy(),g.slidesHandler.destroy(),g.slidesInView.destroy(),g.animation.destroy(),o.destroy(),p.clear()}function E(a,b,c){z.active&&!x&&(g.scrollBody.useBaseFriction().useDuration(!0===b?0:z.duration),g.scrollTo.index(a,c||0))}function F(){return g.index.get()}let G={canScrollNext:function(){return g.index.add(1).get()!==F()},canScrollPrev:function(){return g.index.add(-1).get()!==F()},containerNode:function(){return i},internalEngine:function(){return g},destroy:function(){x||(x=!0,p.clear(),D(),q.emit("destroy"),q.clear())},off:v,on:u,emit:w,plugins:function(){return h},previousScrollSnap:function(){return g.indexPrevious.get()},reInit:C,rootNode:function(){return a},scrollNext:function(a){E(g.index.add(1).get(),a,-1)},scrollPrev:function(a){E(g.index.add(-1).get(),a,1)},scrollProgress:function(){return g.scrollProgress.get(g.offsetLocation.get())},scrollSnapList:function(){return g.scrollSnapList},scrollTo:E,selectedScrollSnap:F,slideNodes:function(){return j},slidesInView:function(){return g.slidesInView.get()},slidesNotInView:function(){return g.slidesInView.get(!1)}};return B(b,c),setTimeout(()=>q.emit("init"),0),G}function CX(a={},b=[]){let c=(0,B.useRef)(a),d=(0,B.useRef)(b),[e,f]=(0,B.useState)(),[g,h]=(0,B.useState)(),i=(0,B.useCallback)(()=>{e&&e.reInit(c.current,d.current)},[e]);return(0,B.useEffect)(()=>{CD(c.current,a)||(c.current=a,i())},[a,i]),(0,B.useEffect)(()=>{!function(a,b){if(a.length!==b.length)return!1;let c=CE(a),d=CE(b);return c.every((a,b)=>CD(a,d[b]))}(d.current,b)&&(d.current=b,i())},[b,i]),(0,B.useEffect)(()=>{if("u">typeof window&&window.document&&window.document.createElement&&g){CW.globalOptions=CX.globalOptions;let a=CW(g,c.current,d.current);return f(a),()=>a.destroy()}f(void 0)},[g,f]),[h,e]}CW.globalOptions=void 0,CX.globalOptions=void 0;let CY=B.createContext(null);function CZ(){let a=B.useContext(CY);if(!a)throw Error("useCarousel must be used within a <Carousel />");return a}function C$({orientation:a="horizontal",opts:b,setApi:c,plugins:d,className:e,children:f,...g}){let[h,i]=CX({...b,axis:"horizontal"===a?"x":"y"},d),[j,k]=B.useState(!1),[l,m]=B.useState(!1),n=B.useCallback(a=>{a&&(k(a.canScrollPrev()),m(a.canScrollNext()))},[]),o=B.useCallback(()=>{i?.scrollPrev()},[i]),p=B.useCallback(()=>{i?.scrollNext()},[i]),q=B.useCallback(a=>{"ArrowLeft"===a.key?(a.preventDefault(),o()):"ArrowRight"===a.key&&(a.preventDefault(),p())},[o,p]);return B.useEffect(()=>{i&&c&&c(i)},[i,c]),B.useEffect(()=>{if(!i)return;let a=!1;return queueMicrotask(()=>{a||n(i)}),i.on("reInit",n),i.on("select",n),()=>{a=!0,i.off("reInit",n),i.off("select",n)}},[i,n]),(0,A.jsx)(CY.Provider,{value:{carouselRef:h,api:i,opts:b,orientation:a||(b?.axis==="y"?"vertical":"horizontal"),scrollPrev:o,scrollNext:p,canScrollPrev:j,canScrollNext:l},children:(0,A.jsx)("div",{onKeyDownCapture:q,className:(0,W.cn)("relative",e),role:"region","aria-roledescription":"carousel","data-slot":"carousel",...g,children:f})})}function C_({className:a,...b}){let{carouselRef:c,orientation:d}=CZ();return(0,A.jsx)("div",{ref:c,className:"overflow-hidden","data-slot":"carousel-content",children:(0,A.jsx)("div",{className:(0,W.cn)("flex","horizontal"===d?"-ml-4":"-mt-4 flex-col",a),...b})})}function C0({className:a,...b}){let{orientation:c}=CZ();return(0,A.jsx)("div",{role:"group","aria-roledescription":"slide","data-slot":"carousel-item",className:(0,W.cn)("min-w-0 shrink-0 grow-0 basis-full","horizontal"===c?"pl-4":"pt-4",a),...b})}function C1(a){let b=a.scrollWidth-a.clientWidth;return b<=1||!["auto","scroll"].includes(getComputedStyle(a).overflowX)?null:{left:a.scrollLeft,maximum:b}}function C2(a){return a.sessionTitle?`${a.projectName} \xb7 ${a.sessionTitle}`:a.projectName}function C3({items:a,activeWorkId:b,onActiveWorkSessionChange:c,children:d}){let e,{t:f}=(0,Q.Bd)("workbench"),g=Bw(),h=B.Children.toArray(d),i=a[0]?.workId??null,j=a.some(a=>a.workId===b)?b:i,[k]=(0,B.useState)(()=>Math.max(0,a.findIndex(a=>a.workId===j))),l=(0,B.useRef)(null);(0,B.useRef)(!1);let[m,n]=(0,B.useState)(),[o,p]=(0,B.useState)({index:k,position:k,visible:!1}),q=(0,B.useCallback)(()=>{null!==l.current&&(window.clearTimeout(l.current),l.current=null)},[]),r=(0,B.useCallback)(()=>{q(),l.current=window.setTimeout(()=>{l.current=null,p(a=>a.visible?{...a,visible:!1}:a)},900)},[q]),s=(0,B.useCallback)((b,c)=>{var d;let e=(d=b.scrollProgress()*(a.length-1),Math.max(0,Math.min(a.length-1,d))),f=Math.round(e);p(a=>{let b=c??a.visible;return a.index===f&&.001>Math.abs(a.position-e)&&a.visible===b?a:{index:f,position:e,visible:b}})},[a.length]),t=((0,B.useCallback)(a=>{s(a,!0),r()},[r,s]),e=(0,B.useRef)(null),(0,B.useCallback)((a,b)=>{e.current=null;let c=b.target;if(!(c instanceof Element))return!0;if(c.closest('[data-carousel-swipe-lock],[data-testid="file-workspace"],[data-streamdown="mermaid-block"],[data-slot="plugin-scrollbar"],[data-slot="scroll-area-scrollbar"],.monaco-editor,[contenteditable="true"],[role="application"],[role="dialog"],[role="menu"],input,textarea,select,a,summary,img'))return!1;let d=c.closest("button");if(d&&(!("touches"in b)||!d.matches('[data-slot="collapsible-trigger"]')||!d.closest('[data-chat-scroll-anchor$=":tool"]')))return!1;let f=function(a){let b=[];for(let c=a;c&&!c.matches('[data-slot="carousel-item"]');c=c.parentElement){if(!(c instanceof HTMLElement))continue;let d=C1(c);if(d&&b.push(d),c.matches('[data-streamdown="code-block"],[data-streamdown="table-wrapper"],[data-pi-desk-scroll],[data-slot="l4-scroll-area"]'))for(let d of c.children){if(!(d instanceof HTMLElement)||d.contains(a))continue;let c=C1(d);c&&b.push(c)}}return b}(c);if(!("touches"in b))return!f.length&&!c.closest('pre,table,[data-streamdown="code-block"]');if(1!==b.touches.length)return!1;if(!f.length)return!0;let g=b.touches[0];return e.current={x:g.clientX,y:g.clientY,scrolls:f,owner:"pending"},!1},[])),u=(0,B.useMemo)(()=>({align:"start",containScroll:"trimSnaps",dragFree:!1,loop:!1,skipSnaps:!1,duration:25*!g,startIndex:k,watchDrag:t}),[k,g,t]);if(a.length<=1)return(0,A.jsx)("div",{className:"size-full min-h-0 min-w-0 overflow-hidden",children:h[0]??null});let v=a[o.index]??a[0],w=`${100/a.length}%`,x=`translate3d(${100*o.position}%, 0, 0)`;return(0,A.jsxs)(C$,{opts:u,setApi:n,"aria-label":f("sessionWindows"),onKeyDownCapture:()=>void 0,className:"size-full min-h-0 min-w-0 [&_[data-slot=carousel-content]]:h-full [&_[data-slot=carousel-content]]:touch-auto",children:[(0,A.jsx)(C_,{className:"ml-0 h-full",children:a.map((b,c)=>(0,A.jsx)(C0,{"aria-label":`${c+1} / ${a.length},${C2(b)}`,className:"h-full pl-0",children:h[c]??null},b.workId))}),(0,A.jsx)("div",{"aria-hidden":"true","data-testid":"mobile-work-session-position",className:(0,W.cn)("pointer-events-none absolute top-16 left-1/2 z-30 w-[min(82vw,20rem)] -translate-x-1/2 transition-[opacity,transform] duration-150 ease-out motion-reduce:transition-none",o.visible?"translate-y-0 opacity-100":"-translate-y-2 opacity-0"),children:(0,A.jsxs)("div",{className:"rounded-xl border bg-popover px-3 py-2 text-popover-foreground shadow-lg",children:[(0,A.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-xs",children:[(0,A.jsx)("span",{className:"shrink-0 text-muted-foreground",children:f(v.fixed?"fixedSession":"primarySession")}),(0,A.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:C2(v)}),(0,A.jsxs)("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:[o.index+1," / ",a.length]})]}),(0,A.jsx)("div",{className:"mt-2 h-1 overflow-hidden rounded-full bg-muted",children:(0,A.jsx)("div",{className:"h-full rounded-full bg-foreground",style:{width:w,transform:x}})})]})})]})}function C4(a){return Number.isFinite(a)?Math.max(0,Math.floor(a)):0}function C5({sidebarOpen:a,onToggle:b}){let{t:c}=(0,Q.Bd)("workbench");return(0,A.jsx)("button",{type:"button",onClick:b,"aria-label":c(a?"hideSessionMenu":"showSessionMenu"),className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon"}),"text-muted-foreground"),children:a?(0,A.jsx)(jn.A,{className:"size-4"}):(0,A.jsx)(Bl,{className:"size-5"})})}let C6=(0,B.memo)(function({onOpenSettings:a,workSession:b,fixed:c,focused:d,contentActive:e,composerActive:f,sidebarOpen:g,replacingWithEmpty:h,replacementDisabled:i,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w,branchPending:x,mobile:y,fileRuntime:z,onOpenFileSidebar:C,onPreviewFile:D,onAcknowledgeCompleted:E,onFocusWorkSession:F,onReplaceWithEmptyWorkSession:G,onOpenBranchPicker:H,onOpenGitBranchPicker:I,onCloseBranchPicker:J,onRetryBranchPicker:K,onSelectBranchEntry:L,onBranchAction:M,onConfirmRunningBranch:N,onCancelRunningBranch:O,onCloneWorkSession:P,onUnpinWorkSession:R,onToggleSidebar:S}){let{t:T}=(0,Q.Bd)("workbench"),V=(0,B.useRef)(null),X=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bG.G)(),e=(0,B.useMemo)(()=>({workId:a.workId,sessionId:a.sessionId,branchId:a.branchId}),[a.workId,a.sessionId,a.branchId]),f=(0,B.useCallback)(()=>b.getSourceState(e).runtime,[b,e]),g=(0,B.useSyncExternalStore)(b.subscribe,f,f),h=(0,B.useCallback)(()=>b.getSourceState(e).syncStatus,[b,e]),i=(0,B.useSyncExternalStore)(b.subscribe,h,h),j="basic"===g.extensionMode?g.initializationError:null,[k,l]=(0,B.useState)(null),[m,n]=(0,B.useState)(!1),o=!m&&"ready"===i&&"main_running"!==a.status&&"background_running"!==a.status,p=j?`${a.cwd}
418
418
  ${e.sessionId}
419
419
 
420
- ${j}`:"";return{error:j,copied:""!==p&&k===p,reloading:m,canReload:o,onCopy:()=>{p&&(0,cV.x)(p).then(a=>{a?l(p):d.error(c("initializationCopyFailed"))})},onReload:()=>{o&&(n(!0),b.reload(e).catch(a=>{d.error(a instanceof Error?a.message:String(a))}).finally(()=>n(!1)))}}}(b,j);(0,B.useSyncExternalStore)(z.subscribe,z.getRevision,z.getRevision);let Y=z.getWorkspace(b.workId),Z=(Y?.tabs.length??0)+ +!!Y?.activeDiff,$=(0,B.useMemo)(()=>({workId:b.workId,sessionId:b.sessionId,branchId:b.branchId}),[b.workId,b.sessionId,b.branchId]),_=(0,A.jsxs)("div",{className:"min-w-0",children:[(0,A.jsx)("p",{className:(0,W.cn)("truncate text-sm transition-colors duration-150 motion-reduce:transition-none",d?"font-semibold text-foreground":"font-medium text-muted-foreground"),title:b.projectName,children:b.projectName}),(0,A.jsx)("p",{className:"truncate text-xs text-muted-foreground","data-testid":"session-header-title",title:b.sessionTitle??T("newSession"),children:b.sessionTitle??T("newSession")})]});return(0,B.useEffect)(()=>{let a=V.current;if(!a||"completed"!==b.status)return;let c=!1,d=()=>{c||(c=!0,E(b.workId))};return a.addEventListener("pointerdown",d,{once:!0}),a.addEventListener("wheel",d,{passive:!0,once:!0}),a.addEventListener("keydown",d,{once:!0}),()=>{a.removeEventListener("pointerdown",d),a.removeEventListener("wheel",d),a.removeEventListener("keydown",d)}},[E,b.status,b.workId]),(0,A.jsxs)("section",{ref:V,className:"pi-desk-workbench-resize-interactions relative flex h-full min-h-0 min-w-0 flex-1 flex-col bg-background","data-work-id":b.workId,"data-degraded":X.error?"true":void 0,onPointerDown:()=>F(b.workId),onFocusCapture:()=>F(b.workId),children:[X.error?(0,A.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 z-20 border border-destructive"}):null,(0,A.jsx)(zI,{workSession:b,runtime:z,gitRuntime:q,mobile:y,onOpenGitBranches:I,onOpenSidebar:()=>C(b.workId),children:d=>(0,A.jsxs)("div",{className:(0,W.cn)(Cx().chatContainer,"flex h-full min-h-0 min-w-0 flex-1 flex-col"),children:[(0,A.jsxs)("header",{className:(0,W.cn)(Cx().sessionHeader,"flex min-h-14 shrink-0 items-center gap-3 px-3"),"data-testid":"session-header",children:[c&&!y?null:(0,A.jsx)(C5,{sidebarOpen:g,onToggle:S}),(0,A.jsx)("div",{className:"min-w-0 flex-1",children:d&&e?p({source:$,title:_}):_}),(0,A.jsxs)("div",{className:"-mr-1 flex shrink-0 items-center",children:[X.error?(0,A.jsx)(Cy,{error:X.error,copied:X.copied,reloading:X.reloading,canReload:X.canReload,onCopy:X.onCopy,onReload:X.onReload},`${b.sessionId}:${b.branchId}`):null,Z>0?(0,A.jsxs)(U.$,{variant:"ghost",className:Cx().headerAction,"data-testid":"session-files-entry","aria-label":T("openSessionFiles"),title:T("sessionFiles",{count:Z}),"aria-pressed":Y?.windowOpen??!1,onClick:()=>z.showWindow(b.workId),children:[(0,A.jsx)(Bm,{className:"size-4"}),(0,A.jsx)("span",{className:Cx().headerActionLabel,children:T("sessionFiles",{count:Z})})]}):null,R?(0,A.jsx)("button",{type:"button",disabled:i,"aria-label":T("unpinWorkSession",{name:b.sessionTitle??b.projectName}),title:T("unpin"),onPointerDown:a=>a.stopPropagation(),onClick:a=>{a.stopPropagation(),R(b.workId)},className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground"),children:(0,A.jsx)(al.A,{className:"size-4"})}):null]})]}),(0,A.jsx)(Cv,{active:e,visible:d&&e,workSession:b,chatRuntime:j,inputRuntime:k,onPreviewFile:D}),(0,A.jsx)("footer",{className:"bg-background pt-3","data-carousel-swipe-lock":!0,children:(0,A.jsx)(Cl,{workSession:b,chatRuntime:j,inputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,widgetsVisible:d&&e,gitRuntime:q,active:f,mobile:y,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,newSessionPending:h,newSessionDisabled:i||x,onNewSession:()=>G(b.workId),clonePending:x,cloneDisabled:i||0===b.messageCounts.total,onCloneWorkSession:()=>P(b.workId),onOpenBranchPicker:H,onOpenGitBranchPicker:I,onOpenSettings:a})})]})}),(0,A.jsx)(Bv,{children:w?(0,A.jsx)(BE,{model:w,projectName:b.projectName,sessionTitle:b.sessionTitle,mobile:y,onClose:J,onRetry:K,onSelectEntry:L,onAction:M,onConfirmRunning:N,onCancelRunning:O},"branch-picker"):null})]})}),C7=(0,B.memo)(function({position:a,workSession:b,loading:c,onExpand:d}){let{t:e}=(0,Q.Bd)("workbench"),f=b?.projectName??e("workSession"),g=b?b.sessionTitle??e("newSession"):e(c?"loading":"chooseSession"),h=`${f} \xb7 ${g}`;return(0,A.jsx)("section",{className:"relative isolate flex h-full min-h-0 min-w-0 flex-1 bg-background","data-work-id":b?.workId,children:(0,A.jsx)("button",{type:"button",title:h,"aria-label":e("expandSession",{name:h}),onClick:()=>d(a,b?.workId??null),className:"flex h-full w-full min-w-0 flex-col items-center overflow-hidden bg-background px-1 text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:z-30 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:(0,A.jsxs)("span",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-3 overflow-hidden py-3",children:[(0,A.jsx)("span",{className:(0,W.cn)(Cx().collapsedText,"max-h-[38%] text-xs leading-none text-muted-foreground"),children:f}),(0,A.jsx)("span",{className:(0,W.cn)(Cx().collapsedText,"max-h-[55%] text-xs font-semibold leading-none"),children:g})]})})})});function C8({loading:a,sidebarOpen:b,onToggleSidebar:c}){return(0,A.jsxs)("section",{className:"relative isolate flex h-full min-w-0 flex-1 overflow-hidden bg-background",children:[(0,A.jsx)("div",{className:"absolute left-3 top-3 z-20",children:(0,A.jsx)(C5,{sidebarOpen:b,onToggle:c})}),(0,A.jsx)(Bk,{variant:a?"loading":"select-session",children:a?null:(0,A.jsx)(CB,{sidebarOpen:b,onOpen:c})})]})}function C9({onOpenSettings:a,workSessions:b,primaryWorkId:c,pinnedWorkIds:d,focusedWorkId:e,sidebarOpen:f,mobile:g,loading:h,replacingWithEmptyWorkId:i,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w,branchPendingWorkId:x,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:P,onToggleSidebar:R}){let{t:S}=(0,Q.Bd)("workbench"),T=(0,B.useMemo)(()=>{let a=b.find(a=>a.workId===c)??null,e=new Set(d);return[{key:"work-session-primary",workSession:a,fixed:!1},...b.filter(a=>a.workId!==c&&e.has(a.workId)).map(a=>({key:`work-session-${a.workId}`,workSession:a,fixed:!0}))]},[d,c,b]),U=(0,B.useMemo)(()=>T.flatMap(a=>a.workSession?[{workId:a.workSession.workId,projectName:a.workSession.projectName,sessionTitle:a.workSession.sessionTitle,fixed:a.fixed}]:[]),[T]),Y=T.length,{containerRef:Z,expandedCount:$}=function(a){let b=(0,B.useRef)(null),c=+(a>0);(0,B.useRef)(c);let[d,e]=(0,B.useState)(c);return{containerRef:b,expandedCount:d}}(Y),[_,aa]=(0,B.useState)(null),ab=w?T.findIndex(a=>a.workSession?.workId===w.workId):-1,ac=ab>=0?ab:null!==_&&_>=0&&_<Y?_:null,ad=(0,B.useMemo)(()=>(function(a,b,c){let d=C4(a);if(0===d)return[];let e=Math.min(d,Math.max(1,C4(b))),f=null!==c&&Number.isInteger(c)&&c>=0&&c<d?c:null,g=Array(d).fill("expanded"),h=d-e;for(let a=d-1;a>=0&&h>0;a-=1)a!==f&&(g[a]="collapsed",h-=1);return g})(Y,$,ac),[Y,ac,$]),ae=(0,X.OG)();JSON.stringify(T.map(a=>a.key)),ad.map(a=>"expanded"===a?"e":"c").join("");let af=T[0]?.workSession??null,ag=T.reduce((a,b)=>a+ +!!b.workSession,0),ah=e??af?.workId??null,ai=h||null!==i,aj=(0,B.useCallback)((a,b)=>{aa(a),b&&E(b)},[E]);return g?0===ag?(0,A.jsx)(C8,{loading:h,sidebarOpen:f,onToggleSidebar:R}):(0,A.jsx)(C3,{items:U,activeWorkId:ah,onActiveWorkSessionChange:E,children:T.flatMap(b=>{let c=b.workSession;return c?[(0,A.jsx)(C6,{workSession:c,fixed:b.fixed,focused:1===ag||c.workId===ah,contentActive:c.workId===ah,composerActive:c.workId===ah,sidebarOpen:f,replacingWithEmpty:i===c.workId,replacementDisabled:ai,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w?.workId===c.workId?w:null,branchPending:x===c.workId,mobile:!0,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onOpenSettings:a,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:b.fixed?P:null,onToggleSidebar:R},`${c.workId}:${c.sessionId}:${c.branchId}`)]:[]})}):(0,A.jsx)(V.HK,{id:"work-session-columns",orientation:"horizontal",disableCursor:!0,elementRef:Z,groupRef:ae,className:(0,W.cn)(zc().sessionPanelGroup,"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden",!g&&"pi-desk-workbench-resize-group"),children:T.flatMap((b,c)=>{let d=b.workSession,e="collapsed"===ad[c],B=c>0&&"collapsed"===ad[c-1],Q=e&&B,U=(0,A.jsx)(V.wV,{id:b.key,minSize:e?48:300,maxSize:e?48:void 0,defaultSize:e?48:300,disabled:e,groupResizeBehavior:e?"preserve-pixel-size":"preserve-relative-size",className:(0,W.cn)("flex h-full min-h-0 min-w-0 !overflow-hidden bg-background",c>0&&"border-l"),children:(0,A.jsx)("div",{className:zc().columnContent,children:e?(0,A.jsx)(C7,{position:c,workSession:d,loading:h,onExpand:aj}):d?(0,A.jsx)(C6,{workSession:d,fixed:b.fixed,focused:1===ag||d.workId===ah,contentActive:!0,composerActive:d.workId===ah,sidebarOpen:f,replacingWithEmpty:i===d.workId,replacementDisabled:ai,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w?.workId===d.workId?w:null,branchPending:x===d.workId,mobile:g,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onOpenSettings:a,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:b.fixed?P:null,onToggleSidebar:R},`${d.workId}:${d.sessionId}:${d.branchId}`):(0,A.jsx)(C8,{loading:h,sidebarOpen:f,onToggleSidebar:R})})},b.key);return 0===c?[U]:[(0,A.jsx)(V.WM,{withHandle:!Q,disabled:Q,"aria-label":S("resizeColumns",{left:c,right:c+1}),className:"w-0 cursor-col-resize bg-transparent aria-disabled:cursor-default"},`${T[c-1].key}-${b.key}-resize-handle`),U]})})}let Da="work-session-pin:boundary";function Db(a,b){Dd(a,b);let c=a.slice(0,b),d=a.slice(b);return c.length>0&&d.length>0?[...d,Da,...c]:[...d,...c]}function Dc(a,b,c){let d=[...a],[e]=d.splice(b,1);return e&&d.splice(c,0,e),d}function Dd(a,b){if(!Number.isInteger(b)||b<0||b>a.length)throw Error("Invalid work session pinnedCount")}function De(a,b){return a instanceof Error?a.message:b}function Df(a){return a instanceof Error&&"AbortError"===a.name}function Dg(a){return"main_running"===a.status||"background_running"===a.status}function Dh(a){return{workId:a.workId,sessionId:a.sessionId,branchId:a.branchId}}function Di({open:a,title:b,saving:c,disabled:d,error:e,onTitleChange:f,onSave:g,onClose:h}){let{t:i}=(0,Q.Bd)("workbench"),j=(0,B.useId)(),k=(0,B.useRef)(null);return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>!a&&h(),children:(0,A.jsx)(b3.hA,{"data-testid":"work-session-rename-dialog",showCloseButton:!1,initialFocus:k,className:"max-w-sm",children:(0,A.jsxs)("form",{className:"flex flex-col gap-4 overflow-y-auto p-4",onSubmit:a=>{a.preventDefault(),g()},children:[(0,A.jsx)(b3.YM,{children:i("renameSessionTitle")}),(0,A.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,A.jsx)("label",{htmlFor:j,className:"font-medium",children:i("sessionTitleLabel")}),(0,A.jsx)(bU.p,{ref:k,id:j,value:b,disabled:c,onChange:a=>f(a.currentTarget.value),onFocus:a=>a.currentTarget.select(),onKeyDown:a=>{"Enter"===a.key&&a.nativeEvent.isComposing&&a.preventDefault()}})]}),e?(0,A.jsx)("p",{role:"alert",className:"break-words text-destructive",children:e}):null,(0,A.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,A.jsx)(U.$,{type:"button",variant:"outline",disabled:c,onClick:h,children:i("cancel",{ns:"common"})}),(0,A.jsxs)(U.$,{type:"submit",disabled:d||c||!b.trim(),"aria-busy":c,children:[c?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):null,i("save",{ns:"common"})]})]})]})})})}let Dj=["title","user"];function Dk(a){return a.length===Dj.length&&Dj.every(b=>a.includes(b))}let Dl=(0,S.A)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]),Dm=(0,S.A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),Dn=(0,S.A)("repeat-2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]),Do=(0,S.A)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var Dp=c(5701),Dq=c(91816),Dr=c(5663),Ds=c.n(Dr);function Dt(a){return{"--pi-desk-project-color":function(a){let b=a.replaceAll("\\","/").toLowerCase(),c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);let d=(c>>>0)%360;return`oklch(var(--project-color-lightness, 0.49) var(--project-color-chroma, 0.1) ${d})`}(a)}}let Du={info:{icon:"text-muted-foreground",label:"noticeInfo"},success:{icon:"text-status-success",label:"noticeSuccess"},warning:{icon:"text-status-warning",label:"noticeWarning"},error:{icon:"text-destructive",label:"noticeError"}};function Dv({level:a}){let b="size-3.5";switch(a){case"success":return(0,A.jsx)(o5.A,{className:b});case"warning":return(0,A.jsx)(cl.A,{className:b});case"error":return(0,A.jsx)(ak.A,{className:b});case"info":return(0,A.jsx)(jj.A,{className:b})}}function Dw({notification:a,latest:b,mobile:c,moreCount:d,busy:e,onConsume:f,onDismiss:g,onToggleMore:h,showDismiss:i}){let{t:j}=(0,Q.Bd)("workbench"),k=Du[a.level],l=null!==a.event;return(0,A.jsxs)("div",{"data-testid":`app-notification-${a.notificationId}`,"data-latest":b?"true":void 0,className:(0,W.cn)("group flex min-w-0 items-stretch overflow-hidden rounded-lg bg-foreground/[0.04]",b?"h-14":"min-h-14"),children:[(0,A.jsxs)("button",{type:"button",disabled:!l||e,onClick:f,"aria-label":j(l?"actionableNotice":"noticeLabel",{level:j(k.label),title:a.title}),className:"grid min-w-0 flex-1 grid-cols-[1.6rem_minmax(0,1fr)_auto] items-center gap-1.5 px-2 text-left outline-none transition-colors enabled:cursor-pointer enabled:hover:bg-foreground/8 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default",children:[(0,A.jsx)("span",{className:(0,W.cn)("grid size-6 place-items-center rounded-md",k.icon),children:(0,A.jsx)(Dv,{level:a.level})}),(0,A.jsxs)("span",{className:"min-w-0",children:[(0,A.jsx)("span",{className:"block truncate text-sm font-medium leading-5 text-foreground",children:a.title}),a.description?(0,A.jsx)("span",{className:"block truncate text-xs leading-5 text-muted-foreground",children:a.description}):null]}),!c&&b&&d>0?(0,A.jsxs)("span",{className:"px-1 text-xs tabular-nums text-muted-foreground",children:["+",d]}):null]}),c&&b&&d>0?(0,A.jsx)("button",{"data-testid":"app-notification-more",type:"button",disabled:e,onClick:h,"aria-label":j("olderNotices",{count:d}),className:"mr-1 grid size-7 shrink-0 place-items-center self-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-foreground/8 hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:opacity-50",children:(0,A.jsx)(an,{className:"size-4"})}):null,i?(0,A.jsx)("button",{type:"button",disabled:e,onClick:g,"aria-label":j("deleteNotice",{title:a.title}),title:j("dismissNotice"),className:(0,W.cn)("mr-1 grid size-7 shrink-0 place-items-center self-center rounded-md text-muted-foreground outline-none transition-[background-color,color,opacity] hover:bg-foreground/8 hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:opacity-50",!c&&"opacity-0 group-hover:opacity-100 group-focus-within:opacity-100"),children:(0,A.jsx)(al.A,{className:"size-3.5"})}):null]})}function Dx({mobile:a,notifications:b,onConsume:c,onDismiss:d}){let e=(0,B.useRef)(null),f=(0,B.useRef)(null),g=(0,B.useRef)(null),h=(0,B.useRef)(null),[i,j]=(0,B.useState)(!1),[k,l]=(0,B.useState)(null),m=b.at(-1)??null,n=b.slice(0,-1),o=n.length>0,p=i&&o,q=64+60*Math.min(n.length,5)+8,r=(0,B.useCallback)(()=>{g.current&&clearTimeout(g.current),g.current=null},[]),s=(0,B.useCallback)(()=>{h.current&&clearTimeout(h.current),h.current=null},[]),t=(0,B.useCallback)(()=>{r(),s(),o&&j(!0)},[o,s,r]),u=(0,B.useCallback)(()=>{r(),s(),j(!1)},[s,r]),v=(0,B.useCallback)(()=>{!a&&o&&(s(),r(),g.current=setTimeout(t,120))},[o,s,r,a,t]),w=(0,B.useCallback)(()=>{a||(r(),s(),h.current=setTimeout(u,180))},[s,r,u,a]),x=(0,B.useCallback)(async a=>{if(a.event&&!k){l(a.notificationId),j(!1);try{await c(a)}finally{l(null)}}},[k,c]),y=(0,B.useCallback)(async a=>{if(!k){l(a);try{await d(a)}finally{l(null)}}},[k,d]);return m?(0,A.jsx)("div",{"data-testid":"app-notification-slot",className:"relative z-20 h-16 shrink-0",children:(0,A.jsxs)("div",{ref:e,"data-testid":"app-notification-panel","data-expanded":p?"true":"false",onPointerEnter:a=>{"mouse"===a.pointerType&&v()},onPointerLeave:a=>{"mouse"===a.pointerType&&w()},onFocus:()=>{a||t()},onBlur:a=>{a.currentTarget.contains(a.relatedTarget)||w()},className:(0,W.cn)("absolute inset-x-0 bottom-0 flex max-h-[calc(100dvh-8rem)] flex-col overflow-hidden bg-sidebar text-sidebar-foreground transition-[height,box-shadow] duration-150 ease-out motion-reduce:transition-none",p&&"shadow-lg duration-200"),style:{height:p?q:64},children:[(0,A.jsx)("div",{ref:f,className:(0,W.cn)("pi-desk-chat-scrollbar absolute inset-x-0 bottom-16 top-0 space-y-1 overflow-y-auto px-2 pt-2",!p&&"invisible"),children:n.map(b=>(0,A.jsx)(Dw,{notification:b,latest:!1,mobile:a,moreCount:0,busy:null!==k,onConsume:()=>void x(b),onDismiss:()=>void y(b.notificationId),onToggleMore:()=>void 0,showDismiss:!0},b.notificationId))}),(0,A.jsx)("div",{className:"absolute inset-x-0 bottom-0 h-16 px-2 py-1",children:(0,A.jsx)(Dw,{notification:m,latest:!0,mobile:a,moreCount:n.length,busy:null!==k,onConsume:()=>void x(m),onDismiss:()=>void y(m.notificationId),onToggleMore:()=>j(a=>!a),showDismiss:!a||0===n.length||p})})]})}):null}function Dy(a,b){return Math.max(0,Math.floor((b-a)/6e4))}let Dz=null;function DA(a,b){let c=b.formatToParts(a),d=a=>Number(c.find(b=>b.type===a)?.value);return Date.UTC(d("year"),d("month")-1,d("day"))}var DB=c(48662),DC=c.n(DB);function DD(a,b){return`plugin:${a}:${b}`}let DE=[[5,3],[11,3],[5,8],[11,8],[5,13],[11,13]],DF=(0,W.cn)((0,U.r)({variant:"ghost"}),DC().sidebarAction,"relative h-[3.25rem] max-w-24 min-w-0 flex-1 flex-col gap-1 whitespace-normal px-1 text-xs font-normal text-muted-foreground"),DG=(0,U.r)({variant:"ghost",size:"icon"}),DH=(0,W.cn)((0,U.r)({variant:"ghost",size:"icon"}),DC().sidebarAction,"text-muted-foreground");function DI({items:a,appearance:b,label:c,className:d}){let{t:e}=(0,Q.Bd)("workbench"),f="action"===b&&a.length>3?a.slice(2):[],g=f.length>0?a.slice(0,2):a;return(0,A.jsxs)("div",{className:(0,W.cn)("flex min-w-0 items-center gap-0",d),role:"group","aria-label":c,children:[g.map(a=>{var c,d;return(0,A.jsx)("button",{"data-testid":a.testId,type:"button",disabled:a.disabled,"aria-pressed":a.pressed,"aria-busy":a.busy||void 0,"aria-label":"mode"===b?e("showSidebarMode",{name:a.label}):a.label,title:a.label,onClick:a.onSelect,className:(c=!0===a.pressed,d=!0===a.busy,"mode"===b?(0,W.cn)(DG,c?"bg-accent text-accent-foreground":(0,W.cn)(DC().sidebarAction,"text-muted-foreground")):(0,W.cn)(DH,c&&"bg-muted text-foreground",d?"disabled:cursor-wait":"disabled:cursor-not-allowed")),children:(0,A.jsx)("span",{className:(0,W.cn)("flex shrink-0","mode"===b?"[&_svg]:size-5":"[&_svg]:size-4"),children:a.icon})},a.key)}),f.length>0?(0,A.jsxs)(bq,{children:[(0,A.jsx)(bs,{render:(0,A.jsx)("button",{type:"button","aria-label":c,title:c,className:DH,children:(0,A.jsx)(an,{className:"size-4"})})}),(0,A.jsx)(bt,{align:"end",children:f.map(a=>(0,A.jsxs)(bw,{disabled:a.disabled,onClick:a.onSelect,children:[(0,A.jsx)("span",{className:"shrink-0 [&_svg]:size-4",children:a.icon}),a.label]},a.key))})]}):null]})}function DJ({modeItems:a,actionItems:b}){let{t:c}=(0,Q.Bd)("workbench");return(0,A.jsxs)("header",{className:"flex min-h-12 shrink-0 items-center gap-2 px-2",children:[(0,A.jsx)(DI,{items:a,appearance:"mode",label:c("sidebarContents"),className:"max-w-full overflow-x-auto rounded-lg p-0.5 dark:bg-muted"}),b.length>0?(0,A.jsx)(DI,{items:b,appearance:"action",label:c("sidebarActions"),className:"ml-auto shrink-0"}):null]})}function DK(){return(0,A.jsx)("svg",{className:"block size-full",viewBox:"0 0 16 16","aria-hidden":"true",children:DE.map(([a,b])=>(0,A.jsx)("circle",{cx:a,cy:b,r:"1.15",fill:"currentColor"},`${a}-${b}`))})}let DL=(0,B.memo)(function({workSession:a,mobile:b,selected:c,pinned:d,deleting:e,disabled:f,ordering:g,now:h,onSelect:i,onTogglePin:j,onDelete:k,onRename:l,syncing:m,onReloadChat:n}){var o,p;let q=(0,B.useRef)(!1),r=(0,B.useRef)(""),s=f||g,{attributes:t,listeners:u,setNodeRef:v,setActivatorNodeRef:w,transform:x,transition:y,isDragging:z}=nz({id:a.workId,disabled:s}),C=(0,bG.G)(),{t:D}=(0,Q.Bd)("workbench"),{locale:E,timeZone:F}=(0,cu.i)(),G=D(function(a){switch(a.status){case"main_running":return"mainRunning";case"background_running":return"backgroundRunning";case"completed":return"completedUnread";case"idle":return"idle"}}(a)),H=a.sessionTitle??D("newSession"),I=`${a.messageCounts.user}/${a.messageCounts.total}`,J=function(a,b,c="en",d="UTC"){let e=function(a,b){if(null===a||null===b)return"old";let c=Dy(a,b);return c<5?"fresh":c<60?"recent":"old"}(a,b);if(null===a)return{compact:"--",title:"en"===c?"No messages yet":"暂无消息时间",tone:e};let f=function(a,b){if(Dz?.locale===a&&Dz.timeZone===b)return Dz;let c="en"===a?"en-US":"zh-CN";return Dz={locale:a,timeZone:b,title:new Intl.DateTimeFormat(c,{timeZone:b,timeZoneName:"shortOffset",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),dateKey:new Intl.DateTimeFormat("en-US",{timeZone:b,year:"numeric",month:"numeric",day:"numeric"}),compact:new Intl.DateTimeFormat(c,{timeZone:b,month:"short",day:"numeric"})}}(c,d),g=f.title.format(a);if(null===b)return{compact:g,title:g,tone:e};let h=Dy(a,b);if(h<1)return{compact:"en"===c?"Just now":"刚刚",title:g,tone:e};if(h<60)return{compact:"en"===c?`${h} min ago`:`${h} 分钟前`,title:g,tone:e};let i=Math.floor(h/60);if(i<24)return{compact:"en"===c?`${i} hr ago`:`${i} 小时前`,title:g,tone:e};let j=(DA(b,f.dateKey)-DA(a,f.dateKey))/864e5;return 1===j?{compact:"en"===c?"Yesterday":"昨天",title:g,tone:e}:2===j?{compact:"en"===c?"2 days ago":"前天",title:g,tone:e}:{compact:f.compact.format(a),title:g,tone:e}}(a.lastMessageUpdatedAt,h,E,F),K="main_running"===a.status||"background_running"===a.status,L=(o=a.cwd,{className:Ds().surface,style:Dt(o)}),M=(p=a.cwd,{className:Ds().identity,style:Dt(p)}),N=x?`translate3d(${x.x}px, ${x.y}px, 0)`:void 0,O=(0,B.useCallback)(()=>i(a.workId),[i,a.workId]),P=(0,B.useCallback)(()=>j(a.workId),[j,a.workId]),S=(0,B.useCallback)(()=>k(a.workId),[k,a.workId]),T=(0,B.useCallback)(()=>{(0,cV.x)(a.cwd).then(a=>{a?C.success(D("copiedProjectPath")):C.error(D("copyProjectPathFailed"))})},[C,a.cwd,D]),V=(0,A.jsxs)("div",{ref:v,"data-testid":`work-session-row-${a.workId}`,"data-dragging":z?"true":void 0,role:"button",tabIndex:0,"aria-pressed":c,onClick:O,onKeyDown:a=>{a.target===a.currentTarget&&("Enter"===a.key||" "===a.key)&&(a.preventDefault(),O())},className:(0,W.cn)(L.className,DC().sessionRow,!b&&DC().desktopRow,"grid min-h-15 min-w-0 cursor-pointer grid-cols-[1.75rem_minmax(0,1fr)] items-center rounded-lg border border-transparent px-1 py-0.5 outline-none transition-[background-color,opacity] duration-150 ease-out focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",c?"text-accent-foreground":"hover:text-foreground","completed"===a.status&&"border-[var(--pi-desk-project-color)]",z&&"cursor-grabbing opacity-30"),style:{...L.style,transform:N,transition:y},children:[K?(0,A.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-testid":"work-session-running-border",className:DC().runningBorder,children:(0,A.jsx)("rect",{x:"0.5",y:"0.5"})}):null,(0,A.jsx)("button",{ref:w,"data-testid":`work-session-drag-${a.workId}`,type:"button",...t,...u,onTouchStart:a=>{u?.onTouchStart?.(a),a.stopPropagation()},onContextMenu:a=>{a.preventDefault(),a.stopPropagation()},onClick:a=>a.stopPropagation(),disabled:s,"aria-label":D("dragSession",{name:H}),title:`${G} \xb7 ${D("dragOrder")}`,className:(0,W.cn)(M.className,"flex size-7 touch-none cursor-grab items-center justify-center outline-none transition-[color,filter] hover:brightness-125 active:cursor-grabbing focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none",f&&"opacity-50"),children:(0,A.jsx)("span",{className:"size-4",children:(0,A.jsx)(DK,{})})}),(0,A.jsxs)("div",{className:"min-w-0 py-0.5",children:[(0,A.jsx)("span",{className:"sr-only",children:G}),(0,A.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-1",children:[(0,A.jsx)("p",{className:(0,W.cn)(M.className,"truncate text-xs font-medium"),title:a.projectName,children:a.projectName}),(0,A.jsxs)("span",{className:(0,W.cn)(DC().rowMetadata,"flex shrink-0 items-center gap-1 whitespace-nowrap text-xs leading-4 text-muted-foreground"),title:D("sessionMessages",{count:I,time:J.title}),children:[(0,A.jsx)("span",{children:I}),(0,A.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,A.jsx)("span",{className:(0,W.cn)("transition-colors","fresh"===J.tone&&"dark:text-sidebar-primary"),children:J.compact})]})]}),(0,A.jsxs)("div",{className:"relative flex min-h-7 min-w-0 items-center",children:[(0,A.jsx)("p",{className:(0,W.cn)(DC().rowTitle,"min-w-0 flex-1 truncate pr-1 text-sm",c?"font-semibold":"font-medium"),title:H,children:H}),(0,A.jsxs)("div",{className:(0,W.cn)(DC().rowActions,"flex shrink-0 items-center"),children:[(0,A.jsx)("button",{"data-testid":`work-session-pin-${a.workId}`,type:"button",onClick:a=>{a.stopPropagation(),P()},disabled:s,"aria-label":D(d?"unpinSession":"pinSession",{name:H}),title:D(d?"unpin":"pin"),className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground",d&&M.className),children:d?(0,A.jsx)(Dl,{className:"size-4"}):(0,A.jsx)(kK,{className:"size-4"})}),(0,A.jsx)("button",{"data-testid":`work-session-delete-${a.workId}`,type:"button",disabled:s||e,onClick:a=>{a.stopPropagation(),S()},"aria-label":D("deleteSession",{name:H}),title:D("deleteSessionTitle"),className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground hover:bg-destructive/10 hover:text-destructive"),children:(0,A.jsx)(bJ,{className:"size-4"})})]})]})]})]});return(0,A.jsxs)(Dq.tz,{onOpenChange:(a,b)=>{a&&("touch"===r.current||b.event.type.startsWith("touch"))&&(q.current=!0)},children:[(0,A.jsx)(Dq.Rc,{render:V,onPointerDown:a=>{r.current=a.pointerType,q.current=!1},onTouchEndCapture:a=>{q.current&&a.cancelable&&a.preventDefault()},onClickCapture:a=>{q.current&&(a.preventDefault(),a.stopPropagation(),q.current=!1)},onKeyDownCapture:a=>{if(a.target!==a.currentTarget||a.nativeEvent.isComposing||(r.current="keyboard",q.current=!1,"ContextMenu"!==a.key&&!("F10"===a.key&&a.shiftKey)))return;a.preventDefault(),a.stopPropagation();let b=a.currentTarget.getBoundingClientRect();a.currentTarget.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,button:2,clientX:b.left+b.width/2,clientY:b.top+b.height/2}))}}),(0,A.jsxs)(Dq.Ip,{children:[(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-rename-${a.workId}`,disabled:s||e,onClick:()=>l(a),children:[(0,A.jsx)(Dm,{}),D("renameSessionTitle")]}),(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-reload-chat-${a.workId}`,disabled:s||e||m,onClick:()=>n(a),children:[m?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),D("reloadChatData")]}),(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-copy-project-path-${a.workId}`,onClick:T,children:[(0,A.jsx)(bI.A,{}),D("copyProjectPath")]})]})]})});function DM({id:a,label:b}){let{setNodeRef:c,transform:d,transition:e}=nz({id:a,disabled:{draggable:!0}}),f=d?`translate3d(${d.x}px, ${d.y}px, 0) scaleX(${d.scaleX??1}) scaleY(${d.scaleY??1})`:void 0;return(0,A.jsxs)("div",{ref:c,"data-testid":a,"aria-hidden":"true",className:"pointer-events-none flex h-5 items-center gap-2 px-1 text-xs text-muted-foreground",style:{transform:f,transition:e},children:[(0,A.jsx)("span",{className:"h-px flex-1 bg-border/75"}),(0,A.jsx)("span",{children:b}),(0,A.jsx)("span",{className:"h-px flex-1 bg-border/75"})]})}let DN=(0,B.memo)(function({mode:a,mobile:b,fileBrowser:c,pluginTabContent:d,pluginHeaderActions:e=[],pluginSessionTabs:f,fileRefreshLoading:g,canBrowseFiles:h,workSessions:i,focusedWorkId:j,pinnedCount:k,ordering:l,deletingWorkId:m,canReplace:n,disabled:o,pluginApplications:p,settingsAttention:q,notifications:r,onConsumeNotification:s,onDismissNotification:t,onModeChange:u,onRefreshFiles:v,onPreviewProject:w,onPreviewProjectWindow:x,onOpenTerminal:y,onCreate:z,onReplace:C,onSettings:D,onOpenPluginApplication:E,onSelect:F,onTogglePin:G,onDelete:H,onRename:I,syncingWorkIds:J,onReloadChat:K,onArrangementChange:L}){let{t:M}=(0,Q.Bd)("workbench"),[N,O]=(0,B.useState)(null),P=(0,B.useRef)(null);(0,B.useRef)(3);let[S,U]=(0,B.useState)(3),V=mg(mf(mU,{activationConstraint:{distance:6}}),mf(mW,{activationConstraint:{delay:250,tolerance:8}}),mf(mN,{coordinateGetter:nC})),X=[{key:"sessions",label:M("sidebarSessions"),icon:(0,A.jsx)(A9,{}),pressed:"sessions"===a,testId:"sidebar-mode-sessions",onSelect:()=>u("sessions")},{key:"files",label:M("sidebarFiles"),icon:(0,A.jsx)(ji.A,{}),pressed:"files"===a,testId:"sidebar-mode-files",onSelect:()=>u("files")},...f.map(b=>{let c=DD(b.pluginName,b.contributionName);return{key:`${b.pluginName}:${b.contributionName}`,label:b.label,icon:(0,A.jsx)(ck,{icon:b.icon}),disabled:!h,pressed:a===c,onSelect:()=>u(c)}})],Y="sessions"===a?[{key:"replace",label:M("sidebarReplaceSession"),disabled:o||!n,busy:o,testId:"sidebar-replace-work-session",icon:(0,A.jsx)(Dn,{}),onSelect:C},{key:"create",label:M("createSession"),disabled:o,busy:o,testId:"sidebar-create-work-session",icon:(0,A.jsx)(am,{}),onSelect:z}]:"files"===a?[{key:"preview-project",label:M("projectPreview"),disabled:!h,icon:(0,A.jsx)(Do,{}),testId:"project-preview-open",onSelect:w},{key:"preview-project-window",label:M("projectPreviewWindow"),disabled:!h,icon:(0,A.jsx)(q6,{}),testId:"project-preview-window-open",onSelect:x},{key:"new-terminal",label:M("newTerminal"),disabled:o,icon:(0,A.jsx)(T,{}),testId:"project-files-terminal-open",onSelect:y},{key:"refresh-files",label:M("refreshFiles"),disabled:!h||g,icon:g?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),busy:g,testId:"project-files-refresh",onSelect:v}]:e.map((a,b)=>({key:String(b),label:a.label,icon:a.busy?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(ck,{icon:a.icon}),disabled:a.disabled||a.busy,busy:a.busy,onSelect:()=>{a.onSelect()}})),Z=(0,B.useMemo)(()=>i.map(a=>a.workId),[i]),$=(0,B.useMemo)(()=>Db(Z,k),[k,Z]),_=(0,B.useMemo)(()=>new Map(i.map(a=>[a.workId,a])),[i]),aa=(0,B.useMemo)(()=>new Set(Z.slice(0,k)),[k,Z]),{visiblePluginApplications:ab,overflowPluginApplications:ac,shortcutRowItemCounts:ad}=(0,B.useMemo)(()=>{var a;let c,d,e,f,g,h,i,j=b?2:3,k=(a=p.length,g=Math.ceil((f=(e=(d=a+1>(c=S*j))?Math.max(0,c-2):a)+1+ +!!d)/S),h=Math.floor(f/g),i=f%g,{visibleApplicationCount:e,rowItemCounts:Array.from({length:g},(a,b)=>h+ +(b<i))});return{visiblePluginApplications:p.slice(0,k.visibleApplicationCount),overflowPluginApplications:p.slice(k.visibleApplicationCount),shortcutRowItemCounts:k.rowItemCounts}},[b,p,S]),ae=(0,B.useCallback)(a=>{if(l||!a.over||a.active.id===a.over.id)return;let b=String(a.active.id),c=function(a,b,c,d){if(Dd(a,b),c===d||c===Da)return null;let e=Db(a,b),f=e.indexOf(c),g=e.indexOf(d);if(f<0||g<0)return null;if(0>e.indexOf(Da))return{workIds:Dc(e,f,g),pinnedCount:b};let h=a.indexOf(c)<b,i=d===Da?function(a,b,c){let d=[...a],[e]=d.splice(b,1);if(!e)return d;let f=d.indexOf(Da);return f<0?[...a]:(d.splice(c?f:f+1,0,e),d)}(e,f,h):Dc(e,f,g),j=i.indexOf(Da);if(j<0)return null;let k=i.slice(0,j),l=i.slice(j+1),m=[...l,...k];return m.length!==a.length||new Set(m).size!==a.length?null:{workIds:m,pinnedCount:l.length}}(Z,k,b,String(a.over.id));c&&L(c,b)},[L,l,k,Z]),af=$.map(a=>{if(a===Da)return(0,A.jsx)(DM,{id:a,label:M("pinnedBelow")},a);let c=_.get(a);return c?(0,A.jsx)(DL,{workSession:c,mobile:b,selected:c.workId===j,pinned:aa.has(c.workId),deleting:m===c.workId,disabled:o,ordering:l,now:N,onSelect:F,onTogglePin:G,onDelete:H,onRename:I,syncing:J.includes(c.workId),onReloadChat:K},c.workId):null}),ag=[(0,A.jsxs)("button",{type:"button",title:M("settings"),"aria-label":M("error"===q?"settingsWarning":"settings"),onClick:D,className:DF,children:[(0,A.jsx)(b9,{className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full truncate text-center",children:M("settings")}),q?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("absolute right-1.5 top-1.5 size-2 rounded-full ring-2 ring-sidebar","error"===q?"bg-destructive":"bg-primary")}):null]},"settings"),...ab.map(a=>(0,A.jsxs)("button",{type:"button",disabled:o,title:a.label,onClick:()=>E(a),className:DF,children:[(0,A.jsx)(ck,{icon:a.icon,className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full line-clamp-2 break-words text-center leading-4",children:a.label})]},`${a.pluginName}:${a.contributionName}`))];ac.length>0&&ag.push((0,A.jsxs)(bq,{children:[(0,A.jsxs)(bs,{render:(0,A.jsx)("button",{type:"button",disabled:o,title:M("more"),"aria-label":M("moreShortcuts"),className:DF}),children:[(0,A.jsx)(an,{className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full truncate text-center",children:M("more")})]}),(0,A.jsx)(bt,{align:"end",side:"top",className:"w-56",children:ac.map(a=>(0,A.jsxs)(bw,{disabled:o,onClick:()=>E(a),className:"py-2",children:[(0,A.jsx)(ck,{icon:a.icon,className:"size-4"}),(0,A.jsx)("span",{className:"min-w-0 truncate",children:a.label})]},`${a.pluginName}:${a.contributionName}`))})]},"more"));let ah=ad.map((a,b)=>{let c=ad.slice(0,b).reduce((a,b)=>a+b,0);return(0,A.jsx)("div",{className:"flex justify-evenly",children:ag.slice(c,c+a)},`shortcut-row:${c}`)});return(0,A.jsxs)("aside",{className:"flex h-full w-full min-w-0 flex-col bg-sidebar text-sidebar-foreground",children:[(0,A.jsx)(DJ,{modeItems:X,actionItems:Y}),(0,A.jsx)(Dp.V,{"data-testid":"work-session-list",className:(0,W.cn)("min-h-0 flex-1","sessions"!==a&&"hidden"),viewportClassName:"p-2 data-[has-overflow-y]:pr-4",children:0===i.length?(0,A.jsx)("p",{className:"px-2 py-5 text-center text-sm leading-6 text-muted-foreground",children:M("noSessions")}):(0,A.jsx)(nh,{sensors:V,collisionDetection:mo,onDragEnd:ae,children:(0,A.jsx)(ns,{items:$,strategy:np,children:(0,A.jsx)("div",{className:"flex flex-col gap-1",children:af})})})}),(0,A.jsx)("div",{className:(0,W.cn)("min-h-0 flex-1 overflow-hidden","files"!==a&&"hidden"),children:c??(0,A.jsx)("div",{className:"flex h-full items-center justify-center p-5 text-center text-sm text-muted-foreground",children:M("selectSessionFirst")})}),a.startsWith("plugin:")?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:d}):null,(0,A.jsx)(Dx,{mobile:b,notifications:r,onConsume:s,onDismiss:t}),(0,A.jsx)("footer",{"data-testid":"sidebar-shortcuts",className:"shrink-0 px-2 py-1.5","aria-label":M("shortcuts"),children:(0,A.jsx)("div",{ref:P,className:"flex flex-col gap-1",children:ah})})]})});DN.displayName="L2WorkSessionSidebar";let DO={primaryWorkId:null},DP={mode:"normal",notifications:[],plugins:{},capabilityModes:{},settings:{region:{locale:"en",timeZone:"UTC"}}};function DQ(a){let b=window.matchMedia("(max-width: 1023px)");return b.addEventListener("change",a),()=>b.removeEventListener("change",a)}function DR(){return window.matchMedia("(max-width: 1023px)").matches}function DS(a,b){return a instanceof Error?a.message:b}function DT(a){let b=lx.N$.safeParse(a);return b.success?b.data.directories:null}function DU(a){let b=lx.rn.safeParse(a);return b.success?b.data:null}function DV({render:a,input:b}){return a(b)}function DW({onTerminalReady:a,onTerminalDisconnected:b,onOpenTerminal:c,onOpenProjectPreviewWindow:d,renderTerminalWorkspace:e,listPluginManagement:f,subscribePluginManagementChanges:g,onTaskCenterStart:h,onTaskCenterDispose:i,onTaskCenterReconcileWorkSessions:j,onTaskCenterDisconnected:k,onTaskCenterReconnected:l,renderPluginApplication:m,renderPluginSessionSidebarTab:n,renderSettings:o,renderTaskSummary:p,renderTaskMenu:q,renderPluginComposerPanel:r,renderPluginWidgets:s,renderPluginSessionHeader:t}){let{t:u}=(0,Q.Bd)("workbench"),{clientId:v,appSocket:w}=(0,bN.gM)(),x=(0,bG.G)(),y=(0,bF.t4)(),z=(0,bF.So)(),C=(0,B.useMemo)(()=>(function(a,b){async function c(b,d,e,f="POST"){let g=await fetch(b,{method:f,..."GET"===f?{cache:"no-store"}:{},headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},...void 0===d?{}:{body:JSON.stringify(d)},...e?{signal:e}:{}}),h=await g.json();if(!g.ok||0!==h.code||null===h.data)throw Error(h.msg?(0,bS.B)(h):"请求失败");return h.data}return{async readServerVersion(a){let b=await c("/api/health",void 0,a,"GET");return ze.parse(b).version},getChatMessageDetail:a=>c("/api/chat/messages/get",a),getChatModelContext:a=>c("/api/chat/context/get",a),getChatImage:a=>c("/api/chat/images/get",a),listModels:a=>c("/api/pi/models/list",a),listPiCommands:a=>b.request(zi.QV.commandsList,a),listPiTools:a=>b.request(zi.QV.toolsList,a),sendChat:a=>b.request(zf.P6.send,a),async interruptChat(a){await b.request(zf.P6.interrupt,a)},restoreChatQueue:a=>b.request(zf.P6.queueRestore,a),async setChatModel(a){await b.request(zf.P6.modelSet,a)},async setChatCapabilityMode(a){await b.request(zf.P6.capabilityModeSet,a)},invokePluginMethod:a=>b.request(zg.OY.invoke,a),listWorkSessions:()=>b.request(zh.kM.list,{}),async applyAppRuntimeUpdate(a){await b.request(kk.apply,a)},sortWorkSessions:a=>c("/api/work-sessions/sort",a),deleteWorkSession:a=>c("/api/work-sessions/del",{workId:a}),async renameWorkSession(a){await c("/api/work-sessions/rename",a)},async listDirectories(a){let b=await c("/api/pi/directories/list",{forceRefresh:a});return lE(b),b},async listIgnoredDirectories(a){let b=await c("/api/pi/directory-ignores/list",{forceRefresh:a});return lC(),lz=b,lD("pi-desk:ignored-pi-directories",b),b},async replaceDirectoryIgnore(a){await c("/api/pi/directory-ignores/replace",a)},async listDirectoryEntries(a){let b=await c("/api/pi/directory-entries/list",{cwd:a});return!function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b=a.cwd;if("string"==typeof b||null===b)return b}(a);if(void 0===b)return;let c=lB(b);for(lA.delete(c),lA.set(c,a);lA.size>64;){let a=lA.keys().next().value;if(void 0===a)break;lA.delete(a)}lD("pi-desk:pi-directory-entries",{entries:Object.fromEntries(lA)})}(b),b},listSessionHistory:(a,b)=>c("/api/pi/sessions/list",a,b),listSessionUserMessages:(a,b)=>c("/api/pi/session-user-messages/list",a,b),createWorkSession:a=>c("/api/work-sessions/add",a),replaceWorkSession:a=>c("/api/work-sessions/replace",a),getWorkSessionTree:(a,b)=>c("/api/work-session-tree/get",a,b),getWorkSessionTreeEntry:(a,b)=>c("/api/work-session-tree-entry/get",a,b),branchWorkSession:a=>c("/api/work-sessions/branch",a),async acknowledgeCompleted(a){await b.request(zh.kM.acknowledgeCompleted,{workId:a})},async readWorkSessionUpdates(c,d,e,f){let g=b.subscribe(zh.kM.update,e),h=b.subscribe(kk.update,f),i=()=>void 0,j=new Promise(a=>{let b=()=>a({code:1e3,reason:"页面业务已卸载"});c.addEventListener("abort",b,{once:!0}),i=()=>c.removeEventListener("abort",b)});try{let a=await b.connect(c);if(c.aborted)return await j;let e=await b.request(zh.kM.list,{});if(c.aborted)return await j;await d(e,a);let f=await Promise.race([b.waitForClose(),j]);return c.aborted||f.code!==F.Sp||window.location.replace("/login"),f}catch(b){if(!c.aborted){let b=await fetch("/api/auth-settings/get",{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:"{}",signal:c}).catch(()=>null);b?.status===401&&window.location.replace("/login")}throw b}finally{i(),h(),g()}}}})(v,w),[w,v]);(0,B.useMemo)(()=>{var a,b;let c,d,e;return a=C.readServerVersion,b=()=>{window.location.reload()},c=!1,d=null,e=!1,async(f,g,h)=>{if(g.aborted)return;let i=c&&f;if(c=!0,!i||e)return;d?.abort();let j=new AbortController;d=j;let k=()=>j.abort();g.addEventListener("abort",k,{once:!0}),h.then(k,k);let l=setTimeout(k,5e3);try{let c=await a(j.signal);if(j.signal.aborted||!c||c===jk||e)return;e=!0,b()}catch(a){j.signal.aborted||console.warn("[Pi Desk][VersionRefresh] 重连版本检查失败,保留当前页面",{message:a instanceof Error?a.message:String(a)})}finally{clearTimeout(l),g.removeEventListener("abort",k),d===j&&(d=null)}}},[C]);let D=(0,B.useRef)([]),E=(0,B.useRef)(0),G=(0,B.useRef)(DP),H=(0,B.useRef)(!1),I=(0,B.useRef)(null),J=(0,B.useRef)(0),K=(0,B.useRef)(!0),L=(0,B.useRef)(new Set),M=(0,B.useRef)(new Set),N=(0,B.useSyncExternalStore)(DQ,DR,()=>!0),O=(0,B.useSyncExternalStore)(kT,kR,kR),P=(0,B.useMemo)(()=>({list:(a,b)=>(0,zK.QL)(v,y2.Xe,y6.parse(a),b),search:(a,b)=>(0,zK.QL)(v,y2.fg,y7.parse(a),b),get:(a,b)=>(0,zK.QL)(v,y2.ZI,za.parse(a),b),reveal:a=>(0,zK.QL)(v,y2.Ot,y8.parse(a))}),[v]),R=(0,B.useMemo)(()=>(function(a){async function b(b,c,d,e){let f=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(c),signal:e}),g=await f.json();if(!f.ok||0!==g.code||null===g.data)throw Error(g.msg?(0,bS.B)(g):"Git 请求失败");return d.parse(g.data)}return{getHeads:(b,c)=>(0,zK.QL)(a,y2._X,b,c),get:(b,c)=>(0,zK.QL)(a,y2.p0,{...zW.parse(b),refresh:!0},c),listBranches:async(b,c)=>{let{head:d,recent:e,local:f,remote:g}=await (0,zK.QL)(a,y2.ry,z_.parse(b),c);return{head:d,recent:e,local:f,remote:g}},replaceBranch:(a,c)=>b("/api/work-session-git-branch/replace",z1.parse(a),z3,c),addBranch:(a,c)=>b("/api/work-session-git-branch/add",z2.parse(a),z3,c),getDiff:async(b,c)=>{let d=await (0,zK.QL)(a,y2.OC,z4.parse(b),c);return"metadata"===d.kind?{kind:"binary"}:d}}})(v),[v]),[S]=(0,B.useState)(()=>new zq(P,R,a=>{x.show({level:"info",title:a})})),[T]=(0,B.useState)(()=>new zT(R,(a,b)=>{S.handleGitBranchChanged(a,b)}));(0,B.useSyncExternalStore)(S.subscribe.bind(S),S.getRevision,S.getRevision);let[V,W]=(0,B.useState)([]),[X,Y]=(0,B.useState)(0),[Z,$]=(0,B.useState)(DP),[_,aa]=(0,B.useState)(DO),[ab,ac]=(0,B.useState)(!1),[ad,ae]=(0,B.useState)(null),[af,ag]=(0,B.useState)(!0),[ah,ai]=(0,B.useState)(!1),aj=(0,B.useRef)(ah),ak=(0,B.useCallback)(()=>{aj.current=!1,ai(!1)},[]),[al,am]=(0,B.useState)("sessions"),[an,ao]=(0,B.useState)(null),[ap,aq]=(0,B.useState)(!1),[ar,as]=(0,B.useState)(!1),[at,au]=(0,B.useState)(),[av,aw]=(0,B.useState)(null),[ax,ay]=(0,B.useState)(null),[az,aA]=(0,B.useState)(null),[aB,aC]=(0,B.useState)(null),[aD,aE]=(0,B.useState)(null),aF=(0,B.useCallback)(()=>{aA(null)},[]),[aG,aH]=(0,B.useState)("initial"),aI="ready"!==aG,aJ=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),[d,e]=(0,B.useState)(null),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(null),l=(0,B.useCallback)(a=>{e({workId:a.workId,sessionId:a.sessionId}),g(a.sessionTitle??""),k(null)},[]),m=async()=>{let g=f.trim();if(d&&!h&&!b&&g){i(!0),k(null);try{await a.renameWorkSession({...d,title:g}),e(null)}catch(a){k(a instanceof Error?a.message:c("renameSessionFailed"))}finally{i(!1)}}};return{open:null!==d,title:f,saving:h,error:j,show:l,close:()=>{h||e(null)},setTitle:g,save:m}}(C,aI),[aK,aL]=(0,B.useState)(!1),[aM,aN]=(0,B.useState)(null),[aO,aP]=(0,B.useState)(!1),[aQ,aR]=(0,B.useState)(null),[aS,aT]=(0,B.useState)("directories"),[aU,aV]=(0,B.useState)(null),[aW,aX]=(0,B.useState)(null),[aY,aZ]=(0,B.useState)([]),[a$,a_]=(0,B.useState)([]),[a0,a1]=(0,B.useState)(null),[a2,a3]=(0,B.useState)(!1),[a4,a5]=(0,B.useState)(!1),[a6,a7]=(0,B.useState)(!1),[a8,a9]=(0,B.useState)(null),[ba,bb]=(0,B.useState)(null),[bc,bd]=(0,B.useState)(null),[be,bf]=(0,B.useState)(null),[bg,bh]=(0,B.useState)(null),{sessions:bi,loading:bj,load:bk,cancel:bl,showCached:bm}=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),[d,e]=(0,B.useState)([]),[f,g]=(0,B.useState)(!1),h=(0,B.useRef)(0),i=(0,B.useRef)(null),j=(0,B.useRef)(new Map),k=(0,B.useCallback)(()=>{h.current+=1,i.current?.abort(),i.current=null,g(!1)},[]),l=(0,B.useCallback)(a=>{e(j.current.get(a)?.base??[])},[]);return{sessions:d,loading:f,load:(0,B.useCallback)(async(d,f="",k=Dj,l=!1)=>{let m=++h.current;i.current?.abort(),i.current=null;let n=f.trim(),o=j.current.get(d),p=Dk(k)&&!n?o?.base:o?.recent?.query===n&&o.recent.searchIn.length===k.length&&o.recent.searchIn.every(a=>k.includes(a))?o.recent.sessions:null;if(p&&!l){e(p),g(!1),b(null);return}p&&e(p);let q=new AbortController;i.current=q,g(!0),b(null);try{let b=await a.listSessionHistory({cwd:d,query:n,forceRefresh:l,searchIn:[...k]},q.signal);if(h.current!==m)return;let c=j.current.get(d)??{base:null,recent:null};for(Dk(k)&&!n?c.base=b.sessions:c.recent={query:n,searchIn:[...k],sessions:b.sessions},j.current.delete(d),j.current.set(d,c);j.current.size>8;){let a=j.current.keys().next().value;if(!a)break;j.current.delete(a)}e(b.sessions)}catch(a){if(h.current!==m||a instanceof Error&&"AbortError"===a.name)return;b(a instanceof Error?a.message:c("historyFailed"))}finally{h.current===m&&(i.current===q&&(i.current=null),g(!1))}},[b,a,c]),cancel:k,showCached:l}}(C,bh),[bn,bo]=(0,B.useState)(null),[bp,bq]=(0,B.useState)(0),br=(0,B.useRef)(null),bs=(0,B.useRef)(0),bt=(0,B.useRef)(0),bu=(0,B.useRef)(0),bv=(0,B.useRef)(null),bw=(0,B.useRef)(0),bx=(0,B.useMemo)(()=>(function(a,b,c={async readMessages(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(z9,"readonly"),d=An(c),e=await Al(c.objectStore(z9).index(Aa).getAll(IDBKeyRange.only([b.sessionId,b.branchId])));return await d,e.map(Aq).sort((a,b)=>a.location.index-b.location.index)},async readLatestCursor(a){try{let b=await this.readMessages(a),c=z7(b);return null===c&&b.length>0&&await this.clearSource(a),c}catch(b){return console.warn("[Pi Desk][WorkbenchChatRepository] 本地消息缓存无效,回退全量同步",{sessionId:a.sessionId,branchId:a.branchId,errorName:b instanceof Error?b.name:"UnknownError"}),await this.clearSource(a),null}},async replaceMessages(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction(z9,"readwrite"),e=An(d),f=d.objectStore(z9);for(let a of(Ar(f,c),b))f.put(Ap(c,a));await e},async appendMessage(a,b){let c=z5.Pi.parse(a),d=Ap(c,b),e=(await Ak()).transaction(z9,"readwrite"),f=An(e),g=e.objectStore(z9),h=[d.sessionId,d.branchId,d.index],i=g.get(h),j=null;if(i.addEventListener("success",()=>{if(void 0===i.result)return void g.add(d);let a=Ao.safeParse(i.result);if(a.success&&a.data.entryId===d.entryId)return;let b=a.success?a.data.entryId:"invalid-record";j=Error(`IndexedDB 消息身份冲突:${d.index}/${d.entryId}/${b}`),Ar(g,c)},{once:!0}),await f,j)throw j},async saveDetail(a,b,c,d){let e=z5.Pi.parse(a),f=z5.wI.parse(d),g=(await Ak()).transaction(z9,"readwrite"),h=An(g),i=g.objectStore(z9),j=[e.sessionId,e.branchId,b],k=await Al(i.get(j)),l=Ao.parse(k);if(l.entryId!==c)throw g.abort(),await h.catch(()=>void 0),Error(`IndexedDB 消息身份不匹配:${b}/${c}`);let{detail:m,...n}=l;i.put(null===f?n:{...n,detail:f}),await h},async clearSource(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(z9,"readwrite"),d=An(c);Ar(c.objectStore(z9),b),await d}}){let d=new AC(a),e=new Map,f=new Map,g=new Map,h=new Map,i=new Map,j=new Map,k=new Map,l=new Map,m=new Map,n=new Set,o=new Set,p=!1,q=0,r=null,s=()=>void 0,t=null,u=!1,v=()=>{for(let a of[...n])try{a()}catch(a){console.error("[Pi Desk][WorkbenchChat] 消息状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},w=(a=!1)=>{if(a){if(t)return;t=setTimeout(()=>{t=null,v()},50);return}t&&clearTimeout(t),t=null,v()},x=(a,b,c=!1)=>{g.set(AF(a),b),w(c)},y=a=>{let b=e.get(a.workId),c=f.get(a.workId);return void 0!==b&&void 0!==c&&AG(b,a)&&AG(AE(c),a)},z=(a,b)=>{let c=AF(a),d=(l.get(c)??Promise.resolve()).then(b,b);l.set(c,d);let e=()=>{l.get(c)===d&&l.delete(c)};return d.then(e,e),d},A=a=>{let b=`${AF(a)}\u0000`;for(let a of k.keys())a.startsWith(b)&&k.delete(a)},B=async(b,d=!1)=>{if(!p||0===b.length||u)return;let e=q,f=b.filter(a=>y(a)&&!h.has(AF(a))).map(a=>{let b=AF(a),c={};h.set(b,c);let d=g.get(b);return d&&g.set(b,{...d,syncStatus:"syncing"}),{source:a,token:c}});if(0===f.length)return;w();let i=({source:a,token:b})=>!u&&p&&e===q&&y(a)&&h.get(AF(a))===b;try{let b=(await Promise.all(f.map(async a=>({...a,cursor:d?null:await c.readLatestCursor(a.source)})))).filter(i).map(({source:a,cursor:b})=>({source:a,cursor:b}));if(0===b.length)return;await a.request(zf.P6.subscribe,{subscriptions:b})}catch(b){let a=f.filter(i);for(let{source:b}of a)h.delete(AF(b));if(a.length>0)throw b}},C=async a=>{let b=AF(a),d=g.get(b);return d||z5.oc.parse({messages:await c.readMessages(a),temporaryMessages:[],runtime:z6.runtime})},D=async a=>{y(a)&&p&&!u&&(h.delete(AF(a)),await B([a],!0))},E=async a=>{let{epoch:b,push:d}=a,{source:e,event:f}=d,i=AF(e),j=h.get(i),k=()=>!u&&p&&b===q&&y(e)&&h.get(i)===j;if(!k()||"session_sync"!==f.type&&(j||!g.has(i)))return!1;if("session_sync"===f.type&&"full"===f.mode){A(e);let a=g.get(i);a&&x(e,{...a,syncStatus:"syncing"})}let l="session_sync"===f.type&&"full"===f.mode?g.get(i)??AD:await C(e);if(!k())return!1;if("session_sync"===f.type&&"incremental"===f.mode){let a=l.messages.at(-1);if(a?.location.index!==f.baseCursor.index||a.location.entryId!==f.baseCursor.entryId){let a=await c.readMessages(e);if(!k())return!1;let b=a.slice(0,f.baseCursor.index+1),d=z7(b);if(d?.index!==f.baseCursor.index||d.entryId!==f.baseCursor.entryId)throw Error(zm("chatCacheMismatch"));l={...l,messages:b}}}let m=function(a,b){if("session_sync"===b.type){if("full"===b.mode)return{...yV(a,b.messages,b.temporaryMessages),runtime:b.runtime};let c=a.messages.at(-1);if(!c||c.location.index!==b.baseCursor.index||c.location.entryId!==b.baseCursor.entryId)throw Error("Incremental chat sync does not match the current durable cursor");let d=new Set(a.messages.map(a=>a.location.entryId));for(let a of b.messages){if(d.has(a.location.entryId))throw Error(`Incremental chat sync contains a duplicate entryId: ${a.location.entryId}`);d.add(a.location.entryId)}return{messages:[...a.messages,...b.messages],temporaryMessages:b.temporaryMessages,runtime:b.runtime}}return"runtime_update"===b.type?{...a,runtime:b.runtime}:{...yW(a,b),runtime:a.runtime}}(l,f);if("session_sync"===f.type)await z(e,async()=>{k()&&await c.replaceMessages(e,m.messages)});else if("message_commit"===f.type){let a=m.messages.at(-1);if(!a||a.location.index!==f.durable.index||a.location.entryId!==f.durable.entryId)throw Error(`Chat commit result is missing: ${f.durable.index}/${f.durable.entryId}`);await z(e,async()=>{k()&&await c.appendMessage(e,a)})}if(!k())return!1;for(let a of("session_sync"===f.type&&h.delete(i),x(e,{...m,syncStatus:"session_sync"===f.type?"syncing":g.get(i).syncStatus},"message_update"===f.type),[...o]))try{a(d,m)}catch(a){console.error("[Pi Desk][WorkbenchChat] Source 事件观察器执行失败",{eventType:f.type,errorName:a instanceof Error?a.name:"UnknownError"})}return!0},F=async(a,b)=>{if(!b.processing){b.processing=!0;try{for(;!u&&j.get(a)===b;){let a=b.pushes.shift();if(!a)break;try{await E(a)&&"session_sync"===a.push.event.type&&(b.syncEpoch=a.epoch)}catch(e){if(u||a.epoch!==q||!y(a.push.source))continue;b.pushes.length=0,b.syncEpoch=null;let{push:c}=a,d="message_start"===c.event.type?c.event.snapshot.location.tempId:"location"in c.event?c.event.location.tempId:null;console.error("[Pi Desk][WorkbenchChat] 应用聊天 Source 事件失败,重新同步",{workId:c.source.workId,sessionId:c.source.sessionId,branchId:c.source.branchId,eventType:c.event.type,eventTempId:d,updateLayers:"message_update"===c.event.type?{fixed:void 0!==c.event.fixed,summary:void 0!==c.event.summary,detail:void 0!==c.event.detail,increments:void 0!==c.event.increments}:null,errorName:e instanceof Error?e.name:"UnknownError",errorMessage:e instanceof Error?e.message:String(e)});try{await D(c.source)}catch(a){s(a)}break}}}finally{if(b.processing=!1,j.get(a)!==b)return;if(0===b.pushes.length){j.delete(a);let c=g.get(a);u||!p||b.syncEpoch!==q||h.has(a)||c?.syncStatus!=="syncing"||(g.set(a,{...c,syncStatus:"ready"}),w())}else u||F(a,b)}}},G=a=>{if(u||!p||!y(a.source))return;let b=AF(a.source),c=j.get(b)??{pushes:[],processing:!1,syncEpoch:null};c.pushes.push({epoch:q,push:a}),j.set(b,c),c.processing||F(b,c)},H=a=>{for(let b of(f.clear(),a))f.set(b.workId,b);let b=!1;for(let a of[...e.values()]){let c=f.get(a.workId);c&&AG(a,AE(c))||(e.delete(a.workId),g.delete(AF(a)),h.delete(AF(a)),i.delete(AF(a)),A(a),j.delete(AF(a)),b=!0)}b&&w()};return{nativeUi:d,start(b){s=b,r||(u=!1,r=a.subscribe(zf.P6.sourceEvent,G))},async applyWorkSessionsList(a){H(a),p=!0,d.ready(a.map(AE)),await B([...e.values()])},reconcileWorkSessions(a){H(a),d.reconcile(a.map(AE))},ensureDisplayedWorkSessions(a){(a=>{let b=[];for(let c of a){let a=AE(c),d=f.get(c.workId);if(!d&&p)continue;let k=d?AE(d):a;if(!AG(a,k))continue;let l=e.get(k.workId);l&&AG(l,k)||(l&&(g.delete(AF(l)),h.delete(AF(l)),i.delete(AF(l)),A(l),j.delete(AF(l))),e.set(k.workId,k),b.push(k))}0!==b.length&&(w(),p&&B(b).catch(a=>{s(a)}))})(a)},subscribe:a=>(n.add(a),()=>n.delete(a)),subscribeSourceEvents:a=>(o.add(a),()=>o.delete(a)),getSourceState(a){let b=z5.Pi.parse(a);return g.get(AF(b))??AD},getViewportSnapshot(a){let b=z5.Pi.parse(a);return i.get(AF(b))??null},saveViewportSnapshot(a,b){let c=z5.Pi.parse(a);b.messageId&&Number.isFinite(b.offset)&&i.set(AF(c),b)},clearViewportSnapshot(a){let b=z5.Pi.parse(a);i.delete(AF(b))},async loadMessageDetail(a,d,e){let f=z5.Pi.parse(a),h=(await C(f)).messages.find(a=>a.location.index===d&&a.location.entryId===e);if(!h)throw Error(zm("chatMessageMissing",{index:d,entryId:e}));if(void 0!==h.detail)return h.detail;if(!h.fixed.hasDetail)return null;if(g.get(AF(f))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));let i=q,j=`${AF(f)}\u0000${d}\u0000${e}`,l=k.get(j);if(l)return l;let m=(async()=>{let a=await b({sessionId:f.sessionId,branchId:f.branchId,entryId:e}),d=()=>!u&&q===i&&y(f)&&k.get(j)===m;if(await z(f,async()=>{if(!d())throw Error(zm("sourceSyncing"));await c.saveDetail(f,a.index,a.entryId,a.detail)}),!d())throw Error(zm("sourceSyncing"));if(y(f)&&!u){let b=g.get(AF(f));b&&x(f,{...{...yX(b,a),runtime:b.runtime},syncStatus:b.syncStatus})}return a.detail})().finally(()=>{k.get(j)===m&&k.delete(j)});return k.set(j,m),m},async compact(b){let c=z5.Pi.parse(b);if(g.get(AF(c))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));await a.request(zf.P6.compact,{source:c})},async reload(b,c){let d=z5.Pi.parse(b);if(g.get(AF(d))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));await a.request(zf.P6.reload,void 0===c?{source:d}:{source:d,mode:c})},async reloadMessages(b){let c=z5.Pi.parse(b),d=AF(c),i=f.get(c.workId);if(!i||!AG(AE(i),c))throw Error(zm("reloadChatSourceChanged"));let k=g.get(d);if(!p||u||h.has(d)||k?.syncStatus==="syncing")throw Error(zm("sourceSyncing"));let l=q,m=j.get(d),n=m?.syncEpoch??null;m&&(m.syncEpoch=null),e.set(c.workId,c),x(c,{...k??AD,syncStatus:"syncing"});try{await a.request(zf.P6.subscribe,{subscriptions:[{source:c,cursor:null}]})}catch(a){if(!u&&l===q&&y(c)){m&&j.get(d)===m&&(m.syncEpoch=n);let a=g.get(d);a&&x(c,{...a,syncStatus:k?.syncStatus??"loading"})}throw console.error("[Pi Desk][WorkbenchChat] 重新加载聊天数据失败,保留已有缓存",{workId:c.workId,sessionId:c.sessionId,branchId:c.branchId,message:a instanceof Error?a.message:String(a)}),a}},async setPresentation(b,c){let d=z5.Pi.parse(b),e=AF(d),f=g.get(e);if(!f||"ready"!==f.syncStatus)throw Error(zm("sourceSyncing"));if(f.runtime.presentationMode===c)return;let h=`${e}\u0000${c}`,i=m.get(h);if(i)return i;let j=a.request(zf.P6.presentationSet,{source:d,mode:c}).then(()=>void 0).finally(()=>{m.get(h)===j&&m.delete(h)});return m.set(h,j),j},disconnected(){for(let a of(d.disconnected(),p=!1,q+=1,k.clear(),m.clear(),h.clear(),j.values()))a.pushes.length=0;let a=!1;for(let[b,c]of g)"syncing"!==c.syncStatus&&(g.set(b,{...c,syncStatus:"syncing"}),a=!0);a&&w()},dispose(){u||(d.dispose(),u=!0,p=!1,r?.(),r=null,s=()=>void 0,e.clear(),f.clear(),g.clear(),h.clear(),i.clear(),j.clear(),k.clear(),l.clear(),m.clear(),t&&clearTimeout(t),t=null,n.clear(),o.clear())}}})(w,a=>C.getChatMessageDetail(a)),[w,C]),by=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bG.G)(),e=(0,B.useCallback)(()=>JSON.stringify(b.filter(({workId:b,sessionId:c,branchId:d})=>"syncing"===a.getSourceState({workId:b,sessionId:c,branchId:d}).syncStatus).map(a=>a.workId)),[a,b]),f=(0,B.useSyncExternalStore)(a.subscribe,e,e);return{syncingWorkIds:(0,B.useMemo)(()=>JSON.parse(f),[f]),reload:(0,B.useCallback)(b=>{let{workId:e,sessionId:f,branchId:g}=b;a.reloadMessages({workId:e,sessionId:f,branchId:g}).catch(a=>{d.error(a instanceof Error?a.message:c("reloadChatDataFailed"))})},[a,c,d])}}(bx,V),bz=(0,B.useMemo)(()=>(function(a,b,c={async recoverOutbox(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c),e=c.objectStore(Ab),f=c.objectStore(Ac),g=AI(b),[h,i]=await Promise.all([Al(e.get(g)),Al(f.get(g))]),j=AK(h),k=AK(i);if(!k)return await d,{input:j??AH,recovered:!1};let l=AL(k,j);return e.put(AJ(b,l)),f.delete(g),await d,{input:l,recovered:!0}},async writeDraft(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction(Ab,"readwrite"),e=An(d),f=d.objectStore(Ab);b.text||0!==b.images.length?f.put(AJ(c,b)):f.delete(AI(c)),await e},async moveDraftToOutbox(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction([Ab,Ac],"readwrite"),e=An(d);d.objectStore(Ac).put(AJ(c,b)),d.objectStore(Ab).delete(AI(c)),await e},async clearOutbox(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(Ac,"readwrite"),d=An(c);c.objectStore(Ac).delete(AI(b)),await d},async restoreOutboxToDraft(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c),e=c.objectStore(Ab),f=c.objectStore(Ac),g=AI(b),[h,i]=await Promise.all([Al(e.get(g)),Al(f.get(g))]),j=AK(i);if(!j)throw c.abort(),await d.catch(()=>void 0),Error(zm("outboxMissing"));let k=AL(j,AK(h));return e.put(AJ(b,k)),f.delete(g),await d,k},async deleteOutbox(a){await this.clearOutbox(a)},async clearSource(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c);c.objectStore(Ab).delete(AI(b)),c.objectStore(Ac).delete(AI(b)),await d}}){let d=new Map,e=new Map,f=new Set,g=new Map,h=new Set,i=0,j=new Map,k=[],l=new Map,m=new Map,n=0,o=!1,p=()=>{for(let a of[...f])try{a()}catch(a){console.error("[Pi Desk][WorkbenchChatInput] 状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},q=a=>{if("ready"!==b.getSourceState(a).syncStatus)throw Error(zm("sourceSyncing"))},r=a=>{let b=A$(a);e.set(b,a);let c=d.get(b);return c||(c={loaded:!1,loading:!1,text:"",images:[],outbox:null,notice:null,error:null,models:{status:"idle",models:[],presets:[],error:null}},d.set(b,c)),c},s=(a,b)=>{let c=b(r(a));return d.set(A$(a),c),p(),c},t=(a,b)=>{let d=A$(a);i+=1;let f=(g.get(d)??Promise.resolve()).then(()=>c.writeDraft(a,b)).then(()=>{h.delete(d)}).catch(b=>{h.add(d),console.error("[Pi Desk][WorkbenchChatInput] Draft 写入失败",{workId:a.workId,errorName:b instanceof Error?b.name:"UnknownError"}),e.has(d)&&s(a,a=>({...a,error:zm("draftSaveFailed")}))}).finally(()=>{g.get(d)===f&&g.delete(d)});g.set(d,f)},u=a=>{t(a,A_(r(a)))},v=()=>{for(;!o&&n<2&&k.length>0;){let a=k.shift();n+=1,a().finally(()=>{n-=1,v()})}},w=(a,b)=>{k.push(async()=>{let c=d.get(A$(a)),e=c?.images.find(a=>a.localId===b);if(e&&"optimizing"===e.status)try{let c=await AW(e),f=d.get(A$(a)),g=f?.images.findIndex(a=>a.localId===b)??-1;if(!f||g<0)return;let h=URL.createObjectURL(c.blob);URL.revokeObjectURL(f.images[g].objectUrl);let i=[...f.images];i[g]={...i[g],...c,objectUrl:h,status:"ready",error:null},d.set(A$(a),{...f,images:i,error:null}),u(a),p()}catch(g){let c=d.get(A$(a)),e=c?.images.findIndex(a=>a.localId===b)??-1;if(!c||e<0)return;let f=[...c.images];f[e]={...f[e],status:"error",error:A0(g,zm("imageProcessFailed"))},d.set(A$(a),{...c,images:f}),u(a),p()}}),v()},x=()=>{let a=[...l.values()].reduce((a,b)=>a+b.size,0);for(let[b,c]of l){if(a<=0x4000000&&l.size<=64)break;c.references>0||(URL.revokeObjectURL(c.url),l.delete(b),a-=c.size)}},y=a=>{let b=A$(a),c=d.get(b);for(let a of(c&&(A4(c.images),c.outbox&&A4(c.outbox.images)),d.delete(b),e.delete(b),g.delete(b),h.delete(b),j.delete(b),m.keys()))a.startsWith(`${b}\u0000`)&&m.delete(a);for(let[a,c]of[...l])a.startsWith(`${b}\u0000`)&&(URL.revokeObjectURL(c.url),l.delete(a))},z=b.subscribeSourceEvents((a,b)=>{let{source:c,event:d}=a;if("message_commit"===d.type){let a=`${A$(c)}\u0000temp\u0000${d.location.tempId}\u0000`;for(let[b,e]of[...l]){if(!b.startsWith(a))continue;let f=Number.parseInt(b.slice(a.length),10);l.delete(b),l.set(A3(c,d.durable.entryId,f),e)}p();return}if("message_discard"===d.type){let a=`${A$(c)}\u0000temp\u0000${d.location.tempId}\u0000`;for(let[b,c]of[...l])b.startsWith(a)&&(URL.revokeObjectURL(c.url),l.delete(b));p();return}if("session_sync"===d.type||"runtime_update"===d.type){let a=new Set([...b.temporaryMessages.map(a=>a.location.tempId),...b.runtime.queues.steering.map(a=>a.tempId),...b.runtime.queues.followUp.map(a=>a.tempId)]),d=`${A$(c)}\u0000temp\u0000`;for(let[b,c]of[...l]){if(!b.startsWith(d))continue;let e=b.slice(d.length).split("\0")[0];e&&a.has(e)||(URL.revokeObjectURL(c.url),l.delete(b))}}});return{subscribe:a=>(f.add(a),()=>f.delete(a)),getState:a=>r(a),async loadSource(a){let b=A$(a);if(r(a).loaded)return;let f=j.get(b);if(f)return f;let g=(async()=>{s(a,a=>({...a,loading:!0,error:null}));try{let f,g,h=await c.recoverOutbox(a);if(o||!e.has(b))return;let i=(f=h.input.images,g=zm("draftImage"),f.map((a,b)=>AY(a,`${g} ${b+1}`)));for(let c of(d.set(b,{...r(a),loaded:!0,loading:!1,text:h.input.text,images:i,notice:h.recovered?zm("uncertainRecovered"):null,error:null}),i))c.optimized||w(a,c.localId);p()}catch(b){s(a,a=>({...a,loaded:!1,loading:!1,error:A0(b,zm("draftLoadFailed"))}))}})().finally(()=>j.delete(b));return j.set(b,g),g},dismissFeedback(a){s(a,a=>({...a,notice:null,error:null}))},setText(a,b){let c=s(a,a=>({...a,text:b,notice:null,error:null}));t(a,A_(c))},async addFiles(a,b){let c=10-r(a).images.length;if(c<=0)return void s(a,a=>({...a,error:zm("imageAddLimit")}));let d=[...b].slice(0,c),e=[];for(let b of d)try{let a=await AV(b);e.push(AY(a,b.name))}catch(c){s(a,a=>({...a,error:zm("imageFileFailed",{name:b.name,error:A0(c,zm("imageUnavailable"))})}))}if(0===e.length)return;let f=s(a,a=>({...a,images:[...a.images,...e],notice:null,error:b.length>c?zm("imageAddOverflow"):null}));for(let b of(t(a,A_(f)),e))b.optimized||w(a,b.localId)},removeImage(a,b){let c=r(a).images.find(a=>a.localId===b);if(!c)return;AZ(c);let d=s(a,a=>({...a,images:a.images.filter(a=>a.localId!==b),error:null}));t(a,A_(d))},async send(b,e){q(b);let f=A$(b),h=r(b);if(h.outbox)throw Error(zm("resolveOutboxFirst"));if(!h.text.trim()&&0===h.images.length)throw Error(zm("emptyInput"));if(h.images.length>10)throw Error(zm("imageSendLimit"));if(h.images.some(a=>"optimizing"===a.status))throw Error(zm("imagesPending"));let i=h.images.find(a=>"error"===a.status);if(i)throw Error(i.error??zm("imageProcessingFailed"));if(h.images.reduce((a,b)=>a+b.blob.size,0)>0x1400000)throw Error(zm("imageBytesLimit"));await (g.get(f)??Promise.resolve()),q(b);let j=A_(h);await c.moveDraftToOutbox(b,j),d.set(f,{...h,text:"",images:[],outbox:{status:"sending",text:h.text,images:h.images,error:null},notice:null,error:null}),p();try{let g=await Promise.all(h.images.map(AX)),i={source:b,mode:e,text:h.text,images:g};if(new TextEncoder().encode(JSON.stringify({head:{op:"req",path:"chat/send",requestId:"00000000-0000-4000-8000-000000000000"},body:i})).byteLength>0x1f00000)throw Error(zm("messageBytesLimit"));let j=await a.sendChat(i);if(o||d.get(f)?.outbox?.images!==h.images)return;h.images.forEach((a,c)=>{l.set(A2(b,j.tempId,c),{url:URL.createObjectURL(a.blob),size:a.blob.size,references:0})}),x(),await c.clearOutbox(b);let k=d.get(f);k?.outbox?.images===h.images&&(A4(h.images),d.set(f,{...k,outbox:null,error:null})),p()}catch(e){let a,b,c=d.get(f);throw c?.outbox?.images===h.images&&d.set(f,{...c,outbox:{...c.outbox,status:(b="string"==typeof(a=e instanceof Error&&"rawMessage"in e?e.rawMessage:null)?a:A0(e,""),/WebSocket.*(?:断开|连接|替换)|请求超时|尚未连接/.test(b))?"unknown":"failed",error:A0(e,zm("sendFailed"))}}),p(),e}},async prepareForPageReload(){let a=i;return await Promise.all([...g.values()]),i===a&&!(h.size>0)&&[...d.values()].every(a=>a.outbox?.status!=="sending"&&a.outbox?.status!=="unknown")},async restoreOutbox(a){let b=A$(a);await (g.get(b)??Promise.resolve());let e=r(a);e.outbox&&(await c.restoreOutboxToDraft(a),d.set(b,{...e,text:A1(e.outbox.text,e.text),images:[...e.outbox.images,...e.images],outbox:null,notice:null,error:null}),p())},async deleteOutbox(a){let b=r(a);b.outbox&&(await c.deleteOutbox(a),A4(b.outbox.images),d.set(A$(a),{...b,outbox:null,notice:null,error:null}),p())},async interrupt(b){q(b);try{await a.interruptChat({source:b}),s(b,a=>({...a,error:null}))}catch(a){throw s(b,b=>({...b,error:A0(a,zm("interruptFailed"))})),a}},async restoreQueue(b){q(b);try{let c=await a.restoreChatQueue({source:b}),d=c.images.map((a,b)=>AY({blob:(0,yZ.E)(a),mimeType:a.mimeType,width:a.width,height:a.height,optimized:!0},zm("restoredImage",{count:b+1}))),e=s(b,a=>({...a,text:A1(c.text,a.text),images:[...d,...a.images],notice:null,error:null}));t(b,A_(e))}catch(a){throw s(b,b=>({...b,error:A0(a,zm("queueRestoreFailed"))})),a}},listTools:async b=>(q(b),a.listPiTools({source:b})),async loadModels(b,c=!1){let e=r(b);if("loading"===e.models.status||!c&&"ready"===e.models.status)return;let f=s(b,a=>({...a,models:{...a.models,status:"loading",error:null}})).models,g=A$(b);try{let c=await a.listModels({workId:b.workId});if(o||d.get(g)?.models!==f)return;s(b,a=>({...a,models:{status:"ready",models:c.models,presets:c.presets,error:null}}))}catch(a){if(o||d.get(g)?.models!==f)return;s(b,b=>({...b,models:{...b.models,status:"error",error:A0(a,zm("modelCatalogFailed"))}}))}},async setModel(b,c){q(b);let d=A$(b);r(b);try{await a.setChatModel({source:b,model:c}),!o&&e.has(d)&&s(b,a=>({...a,error:null}))}catch(a){throw!o&&e.has(d)&&s(b,b=>({...b,error:A0(a,zm("setModelFailed"))})),a}},acquireMessageImage(b){if(o)throw Error(zm("imageUnavailable"));let c=b.entryId?A3(b.source,b.entryId,b.imageIndex):b.tempId?A2(b.source,b.tempId,b.imageIndex):null;if(!c)throw Error(zm("imageIdentityInvalid"));e.set(A$(b.source),b.source);let d=a=>{if(o||l.get(c)!==a)throw Error(zm("imageUnavailable"));a.references+=1,l.delete(c),l.set(c,a),x();let b=!1;return{url:a.url,release:()=>{b||(b=!0,a.references-=1,x())}}},f=l.get(c);if(f)return d(f);let g=m.get(c);if(!g){if(!b.entryId)throw Error(zm("localImagePending"));g=a.getChatImage({sessionId:b.source.sessionId,branchId:b.source.branchId,entryId:b.entryId,imageIndex:b.imageIndex}).then(a=>{if(o||m.get(c)!==g)throw Error(zm("imageUnavailable"));let b=(0,yZ.E)(a),d={url:URL.createObjectURL(b),size:b.size,references:0};return l.set(c,d),d}).catch(a=>{throw console.warn("[Pi Desk][WorkbenchChatInput] 读取聊天图片失败",{entryId:b.entryId,error:A0(a,zm("imageUnavailable"))}),a}).finally(()=>{m.get(c)===g&&m.delete(c)}),m.set(c,g)}return g.then(d)},reconcileWorkSessions(a){let b=new Set(a.map(a=>A$({workId:a.workId,sessionId:a.sessionId,branchId:a.branchId})));for(let[a,d]of[...e]){if(b.has(a))continue;let e=g.get(a)??Promise.resolve();y(d),e.then(()=>c.clearSource(d),()=>c.clearSource(d)).catch(a=>{console.error("[Pi Desk][WorkbenchChatInput] 清理失效 Source 输入失败",{workId:d.workId,errorName:a instanceof Error?a.name:"UnknownError"})})}p()},dispose(){if(!o){for(let a of(o=!0,z(),k.length=0,[...e.values()]))y(a);for(let a of l.values())URL.revokeObjectURL(a.url);l.clear(),m.clear(),h.clear(),f.clear()}}}})(C,bx),[bx,C]);(0,B.useRef)(null),(0,B.useRef)(null);let bA=(0,B.useMemo)(()=>V.slice(0,X).map(a=>a.workId),[X,V]),bB=(0,B.useMemo)(()=>z.flatMap(a=>a.contributions.flatMap(b=>"application"===b.kind?[{pluginName:a.pluginName,contributionName:b.contributionName,label:b.label,...b.icon?{icon:b.icon}:{}}]:[])),[z]),bC=(0,B.useMemo)(()=>z.flatMap(a=>a.contributions.flatMap(b=>"session-sidebar-tab"===b.kind?[{pluginName:a.pluginName,contributionName:b.contributionName,label:b.label,...b.icon?{icon:b.icon}:{}}]:[])),[z]),bD=!!(ax||av?.loadError||av?.plugins.some(a=>"failed"===a.status||a.operation?.phase==="failed")||y.getEntryListError()||y.getFailedEntries().length>0),bE=!!(av?.restartRequired||av?.plugins.some(a=>!0===a.updateAvailable)),bH=bD?"error":bE?"notice":null,bI=az?z.find(a=>a.pluginName===az.pluginName)?.contributions.find(a=>"application"===a.kind&&a.contributionName===az.contributionName):void 0,bJ=V.find(a=>a.workId===ad)??null,bK=bJ?.cwd??null,bL=al.startsWith("plugin:")?bC.find(a=>DD(a.pluginName,a.contributionName)===al):void 0,bM=bL?z.find(a=>a.pluginName===bL.pluginName)?.contributions.find(a=>"session-sidebar-tab"===a.kind&&a.contributionName===bL.contributionName):void 0,bO=bJ?.workId??null,bP=bJ?.sessionId??null,bQ=bJ?.branchId??null,bR=bO&&bP&&bQ?{workId:bO,sessionId:bP,branchId:bQ}:null,bT=JSON.stringify([al,bO,bP,bQ,bK]),bU=(0,B.useCallback)(a=>{ao(b=>a.length>0?{targetKey:bT,actions:a}:b?.targetKey===bT?null:b)},[bT]),bV=S.getWorkspace(ad),bW=(0,B.useMemo)(()=>{let a=V.find(a=>a.workId===aU);return a?{projectName:a.projectName,sessionTitle:a.sessionTitle,sessionId:a.sessionId}:null},[aU,V]),bX=(0,B.useMemo)(()=>V.filter(a=>a.workId!==aU).map(a=>a.sessionId),[aU,V]),bY=(0,B.useCallback)(a=>{aw(a),ay(null);let b=a.plugins.some(a=>null!==a.operation&&"failed"!==a.operation.phase&&"waiting"!==a.operation.phase);b||y.refreshEntries().catch(()=>void 0),y.setEntriesMaintaining(b)},[y]),bZ=(0,B.useCallback)(()=>{bv.current&&clearTimeout(bv.current);let a=++bw.current,b=15,c=d=>{bv.current=setTimeout(()=>{bv.current=null,bw.current===a&&f().then(b=>{bw.current===a&&bY(b)}).catch(d=>{if(bw.current===a){if((b-=1)>0)return void c(2e3);ay(d instanceof Error?d.message:u("pluginRestoreFailed"))}})},d)};c(1500)},[bY,f,u]),b$=(0,B.useCallback)(a=>{I.current!==a&&(I.current=a,J.current=0,ae(a))},[]),b_=(0,B.useCallback)(a=>{aI||M.current.has(a)||(M.current.add(a),C.acknowledgeCompleted(a).catch(b=>{console.warn("[Pi Desk][Workbench] 确认工作会话完成状态失败",{workId:a,message:DS(b,"请求失败")})}).finally(()=>{M.current.delete(a)}))},[aI,C]),b0=(0,B.useCallback)(a=>{var b;let c,d=(b=D.current,c=new Map(a.workSessions.map(a=>[a.workId,a])),b.flatMap(a=>{let b=c.get(a.workId);return b&&b.cwd===a.cwd&&b.sessionId===a.sessionId?[]:[a.workId]})),e=new Set(a.workSessions.map(a=>a.workId)),f=d.filter(a=>!L.current.has(a)||!e.has(a));H.current=!0,y.replaceWorkSessions(a.workSessions),D.current=a.workSessions,S.reconcileWorkSessions(a.workSessions),E.current=a.pinnedCount,aC(b=>{if(!b)return null;let c=a.workSessions.find(a=>a.workId===b.source.workId);return c?.sessionId===b.source.sessionId&&c.branchId===b.source.branchId&&c.cwd===b.cwd?b:null}),W(a.workSessions),Y(a.pinnedCount),aa(b=>(function(a,b,c=[]){let d=new Set(b.map(a=>a.workId)),e=new Set(c),f=a.primaryWorkId&&d.has(a.primaryWorkId)&&!e.has(a.primaryWorkId)?a.primaryWorkId:null;return a.primaryWorkId===f?a:{primaryWorkId:f}})(b,a.workSessions,f));let g=I.current;g&&f.includes(g)&&(K.current=!1,b$(null))},[S,y,b$]),b1=(0,B.useCallback)(a=>{b0(a),bx.reconcileWorkSessions(a.workSessions),bz.reconcileWorkSessions(a.workSessions),j(a.workSessions)},[b0,bz,bx,j]),b2=(0,B.useCallback)(a=>{G.current=a,$(a),y.replaceGlobalPluginStates(a.plugins),(0,kl.UV)(a.settings)},[y]),b3=(0,B.useCallback)(a=>{b1(a),b2(a.appRuntime)},[b2,b1]),b4=(0,B.useCallback)(()=>{if(br.current)return;aH(a=>"initial"===a?"initial":"refresh");let a=(async()=>{let a=await C.listWorkSessions();b3(a),await bx.applyWorkSessionsList(a.workSessions),bo(null),aH("ready")})().catch(a=>{bo(DS(a,u("syncFailed")))}).finally(()=>{br.current===a&&(br.current=null)});br.current=a},[b3,bx,C,u]);(0,B.useCallback)(a=>{try{let b=function(a,b){if("snapshot"===b.type)return y1.kg.parse({workSessions:b.workSessions,pinnedCount:b.pinnedCount});let c=a.workSessions.findIndex(a=>a.workId===b.workId);if(c<0){if("delete"===b.type)return a;throw Error(`WorkSession update target was not found: ${b.workId}`)}if("delete"===b.type)return{workSessions:a.workSessions.filter(a=>a.workId!==b.workId),pinnedCount:a.pinnedCount-Number(c<a.pinnedCount)};let d=[...a.workSessions];return d[c]=y1.MY.parse({...a.workSessions[c],...b.changes}),{workSessions:d,pinnedCount:a.pinnedCount}}({workSessions:D.current,pinnedCount:E.current},a);b1(b)}catch(a){bo(DS(a,u("workSessionUpdateInvalid"))),b4()}},[b1,b4,u]),(0,B.useCallback)(a=>{try{b2(function(a,b){if("replace"===b.type)return kj.GR.parse(b.runtime);if("notifications"===b.key)return kj.GR.parse({...a,notifications:function(a,b){if("add"===b.type){if(a.some(a=>a.notificationId===b.notification.notificationId))throw Error(`Notification already exists: ${b.notification.notificationId}`);return[...a,b.notification]}let c=a.findIndex(a=>a.notificationId===b.notificationId);if(c<0)throw Error(`Notification does not exist: ${b.notificationId}`);if("delete"===b.type)return a.filter(a=>a.notificationId!==b.notificationId);let d=[...a];return d[c]={...a[c],...b.changes},d}(a.notifications,b.update)});if("settings"===b.key)return kj.GR.parse({...a,settings:b.update});if("capabilityModes"===b.key)return kj.GR.parse({...a,capabilityModes:b.update});let c={...a.plugins};if(null===b.update.state){if(!(b.update.pluginName in c))throw Error(`Plugin global state does not exist: ${b.update.pluginName}`);delete c[b.update.pluginName]}else c[b.update.pluginName]=b.update.state;return kj.GR.parse({...a,plugins:c})}(G.current,a))}catch(a){bo(DS(a,u("appRuntimeUpdateInvalid"))),b4()}},[b2,b4,u]);let b5=(0,B.useCallback)(async(a=!1)=>{let b=++bs.current;a3(!0),bh(null);try{let c=await C.listDirectories(a);if(bs.current!==b)return null;return aZ(c.directories),c.directories}catch(a){if(bs.current!==b)return null;return bh(DS(a,u("projectDirectoriesFailed"))),null}finally{bs.current===b&&a3(!1)}},[C,u]),b6=(0,B.useCallback)(async(a=!1)=>{let b=++bt.current;a5(!0),bh(null);try{let c=await C.listIgnoredDirectories(a);if(bt.current!==b)return;a_(c.directories)}catch(a){if(bt.current!==b)return;bh(DS(a,u("ignoredDirectoriesFailed")))}finally{bt.current===b&&a5(!1)}},[C,u]),b7=(0,B.useCallback)(async a=>{let b=++bu.current;a7(!0),bh(null);try{let c=await C.listDirectoryEntries(a);if(bu.current!==b)return;a1(c)}catch(a){if(bu.current!==b)return;bh(DS(a,u("browseDirectoryFailed")))}finally{bu.current===b&&a7(!1)}},[C,u]),b8=(0,B.useCallback)(a=>{if(!D.current.find(b=>b.workId===a))return;K.current=!1;let b=D.current.slice(0,E.current).map(a=>a.workId),c=I.current===a;if(b.includes(a)&&a!==_.primaryWorkId){c||b$(a),N&&ai(!1);return}_.primaryWorkId!==a&&aa(b=>b.primaryWorkId===a?b:{...b,primaryWorkId:a}),c||b$(a),N&&ai(!1)},[_,N,b$]),b9=(0,B.useCallback)(a=>{let b=D.current.find(b=>b.workId===a);b?.status==="completed"&&b_(a),b8(a)},[b_,b8]);(0,B.useCallback)(async a=>{if(aI)throw Error(u("workSessionInitializing"));let b="workId"in a?D.current.find(b=>b.workId===a.workId):D.current.find(b=>b.sessionId===a.sessionId);if(b)return b9(b.workId),b;if("workId"in a||!a.cwd)throw Error(u("sessionNotFound"));let{workSession:c}=await C.createWorkSession({cwd:a.cwd,sessionId:a.sessionId});return K.current=!1,aa({primaryWorkId:c.workId}),b$(c.workId),N&&ai(!1),c},[aI,N,b9,b$,C,u]);let ca=(0,B.useCallback)(async(a,b)=>{if(aI||aK)return;let c={workSessions:D.current,pinnedCount:E.current},d=c.workSessions.findIndex(a=>a.workId===b),e=a.workIds.indexOf(b);if(d<0||e<0)return;let f=new Map(c.workSessions.map(a=>[a.workId,a])),g=a.workIds.map(a=>f.get(a)).filter(a=>void 0!==a);if(g.length!==c.workSessions.length)return;let h=d<c.pinnedCount,i=e<a.pinnedCount;b0({workSessions:g,pinnedCount:a.pinnedCount}),aL(!0),bo(null);let j=!1;try{b1(await C.sortWorkSessions(a)),j=!0}catch(a){b0(c),bo(DS(a,u("sortFailed")))}finally{aL(!1)}if(j&&h!==i){if(N){i||I.current!==b||b===_.primaryWorkId||b$(_.primaryWorkId);return}if(i)return void aa(a=>a.primaryWorkId===b?{primaryWorkId:null}:a);I.current===b&&b$(_.primaryWorkId)}},[b1,b0,_.primaryWorkId,aI,N,aK,b$,C,u]),cb=(0,B.useCallback)(a=>{if(aI||aK)return;let b=function(a,b,c){Dd(a,b);let d=a.indexOf(c);if(d<0)return null;let e=a.filter(a=>a!==c),f=d<b,g=f?b-1:b+1;return e.splice(f?e.length:b,0,c),{workIds:e,pinnedCount:g}}(D.current.map(a=>a.workId),E.current,a);b&&ca(b,a)},[aI,aK,ca]),cc=(0,B.useCallback)(async a=>{if(!aI){aN(a),bo(null);try{b1(await C.deleteWorkSession(a))}catch(a){bo(DS(a,u("deleteFailed")))}finally{aN(null)}}},[b1,aI,C,u]),cd=(0,B.useCallback)(()=>{if(aI)return;let a=DT((lC(),ly));a&&aZ(a),bh(null),aR("create"),aT("directories"),aV(null),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl(),aX(null),aP(!0),b5().then(a=>{a?.length===0&&(aT("browser"),a1(DU(lG(null))),b7(null))})},[bl,b5,b7,aI]),ce=(0,B.useCallback)(()=>{if(aI)return;let a=V.find(a=>a.workId===ad);a&&(bh(null),bs.current+=1,a3(!1),bt.current+=1,a5(!1),bu.current+=1,a7(!1),aR("replace"),aT("history"),aV(a.workId),aX(a.cwd),bm(a.cwd),aP(!0),bk(a.cwd))},[ad,bk,aI,bm,V]),cf=async(a,b)=>{if(!aI&&"create"===aQ&&null===bc){bd(a),bh(null);try{await C.replaceDirectoryIgnore({cwd:a,ignored:b}),await Promise.all([b5(),b6()])}catch(a){bh(DS(a,u(b?"ignoreFailed":"restoreIgnoredFailed")))}finally{bd(null)}}},cg=(0,B.useCallback)(async a=>{let b=N?"activate":O;if("activate"===b){K.current=!1,aa({primaryWorkId:a.workId}),b$(a.workId),N&&ai(!1);return}if("pin"!==b)return;let c=function(a,b,c){Dd(a,b);let d=a.indexOf(c);if(d>=0&&d<b)return null;let e=a.filter(a=>a!==c);return e.splice(b,0,c),{workIds:e,pinnedCount:b+1}}(D.current.map(a=>a.workId),E.current,a.workId);if(c){aL(!0);try{b1(await C.sortWorkSessions(c))}catch(a){bo(DS(a,u("autoPinFailed")))}finally{aL(!1)}}},[b1,N,O,b$,C,u]),{model:ch,open:ci,close:cj,retry:ck,selectEntry:cl,requestAction:cm,clone:cn,confirmRunning:co,cancelRunning:cp,pendingWorkId:cq}=function({disabled:a,workSessions:b,workbenchBiz:c,chatInputRuntime:d,applyWorkSessionSnapshot:e,applyCreatedWorkSessionBehavior:f,focusWorkSession:g,onError:h,mobile:i}){let[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(null),[r,s]=(0,B.useState)(null),[t,u]=(0,B.useState)(!1),[v,w]=(0,B.useState)(null),[x,y]=(0,B.useState)(null),[z,A]=(0,B.useState)(null),C=(0,B.useRef)(0),D=(0,B.useRef)(null),E=(0,B.useRef)(0),F=(0,B.useRef)(null),G=(0,B.useRef)(new Map),H=(0,B.useRef)(null),I=(0,B.useCallback)(()=>{C.current+=1,D.current?.abort(),D.current=null,E.current+=1,F.current?.abort(),F.current=null,G.current.clear(),H.current=null,k(null),m(null),o(!1),q(null),s(null),u(!1),w(null),y(null)},[]),J=(0,B.useCallback)(()=>{z||I()},[z,I]),K=(0,B.useCallback)(async a=>{let b=++C.current;D.current?.abort();let d=new AbortController;D.current=d,E.current+=1,F.current?.abort(),F.current=null,G.current.clear(),k(a),m(null),o(!0),q(null),s(null),u(!1),w(null),y(null);try{let e=await c.getWorkSessionTree({workId:a.workId,sessionId:a.sessionId},d.signal);if(C.current!==b)return;m(e)}catch(a){if(C.current!==b||Df(a))return;q(De(a,zm("treeLoadFailed")))}finally{C.current===b&&(D.current===d&&(D.current=null),o(!1))}},[c]),L=(0,B.useCallback)(c=>{if(a)return;let d=b.find(a=>a.workId===c);d?(g(c),K(Dh(d))):h(zm("treeSourceInvalid"))},[a,g,K,h,b]),M=(0,B.useCallback)(()=>{j&&!a&&K(j)},[a,K,j]),N=(0,B.useCallback)(a=>{if(!j)return;let b=G.current.get(a);if(b){E.current+=1,F.current?.abort(),F.current=null,s(b),u(!1),w(null);return}let d=++E.current;F.current?.abort();let e=new AbortController;F.current=e,s(null),u(!0),w(null),c.getWorkSessionTreeEntry({workId:j.workId,sessionId:j.sessionId,entryId:a},e.signal).then(b=>{E.current===d&&(G.current.set(a,b),s(b))}).catch(a=>{E.current!==d||Df(a)||w(De(a,zm("treeDetailFailed")))}).finally(()=>{E.current===d&&(F.current===e&&(F.current=null),u(!1))})},[j,c]),O=(0,B.useCallback)(a=>{h(a)},[h]),P=(0,B.useCallback)(async(b,h)=>{if(a)return;let i="tree"===h.action?d.getState(b).text:null;A({source:b,intent:h,phase:"executing"}),q(null);try{let a=await c.branchWorkSession(function(a,b){let c={workId:a.workId,sessionId:a.sessionId};switch(b.action){case"tree":return{...c,action:"tree",entryId:b.entryId};case"fork":return{...c,action:"fork",entryId:b.entryId};case"clone":return{...c,action:"clone"}}}(b,h)),k={workSessions:a.workSessions,pinnedCount:a.pinnedCount};e(k);let l=a.workSessions.find(b=>b.workId===a.targetWorkId);if(!l)throw Error(zm("branchTargetMissing"));let m=Dh(l);if("tree"===h.action){var j;g(l.workId),await d.loadSource(m),d.setText(m,(j=i??"",a.editorText??j))}else null!==a.editorText&&(await d.loadSource(m),d.setText(m,a.editorText)),await f(l);A(null),H.current=null,I()}catch(a){A(null),H.current=null,y(a=>a?{...a,waiting:!1}:null),O(De(a,zm("branchOperationFailed")))}},[f,e,d,a,g,O,I,c]),Q=(0,B.useCallback)((a,b,c)=>{A({source:a,intent:b,phase:"waiting"}),y(a=>a?{...a,waiting:!0}:a),"main_running"===c.status&&d.interrupt(a).catch(a=>{A(null),H.current=null,y(a=>a?{...a,waiting:!1}:a),O(De(a,zm("interruptForBranchFailed")))})},[d,O]),R=(0,B.useCallback)((c,d)=>{if(a||z)return;H.current=null;let e=b.find(a=>a.workId===c.workId);if(!e||e.sessionId!==c.sessionId||e.branchId!==c.branchId)return void O(zm("treeChanged"));if("fork"===d.action||!Dg(e))return void P(c,d);let f="main_running"===e.status?"main":"background";i?Q(c,d,e):(y({intent:d,reason:f,waiting:!1}),k(c),q(null))},[a,P,i,z,O,Q,b]),S=(0,B.useCallback)((a,b)=>{j&&R(j,{action:b,entryId:a})},[R,j]),T=(0,B.useCallback)(a=>{let c=b.find(b=>b.workId===a);c?R(Dh(c),{action:"clone"}):h(zm("cloneUnavailable"))},[h,R,b]),U=(0,B.useCallback)(()=>{if(a||!j||!x||x.waiting||z)return;let c=b.find(a=>a.workId===j.workId);c?Dg(c)?Q(j,x.intent,c):P(j,x.intent):O(zm("branchUnavailable"))},[x,a,P,z,O,j,Q,b]),V=(0,B.useCallback)(()=>{if(x?.waiting||z)return;let a=x?.intent.action==="clone"&&null===l;y(null),a&&I()},[x,z,I,l]);return{model:(0,B.useMemo)(()=>{if(!j)return null;let c=b.find(a=>a.workId===j.workId),d=c?.sessionId===j.sessionId&&c.branchId===j.branchId;return z||x||d?{workId:j.workId,tree:l,loading:n,actionsDisabled:a,pending:null!==z,error:p,detail:r,detailLoading:t,detailError:v,runningConfirmation:x}:null},[x,r,v,t,a,p,n,z,j,l,b]),open:L,close:J,retry:M,selectEntry:N,requestAction:S,clone:T,confirmRunning:U,cancelRunning:V,pendingWorkId:z?.source.workId??null}}({disabled:aI,workSessions:V,workbenchBiz:C,chatInputRuntime:bz,applyWorkSessionSnapshot:b1,applyCreatedWorkSessionBehavior:cg,focusWorkSession:b$,onError:(0,B.useCallback)(a=>{x.error(a)},[x]),mobile:N}),cr=async a=>{if(!aI){bs.current+=1,a3(!1),bu.current+=1,a7(!1),a9(a),bh(null);try{let{workSession:b}=await C.createWorkSession({cwd:a});bh(null),aP(!1),await cg(b)}catch(a){bh(DS(a,u("createFailed")))}finally{a9(null)}}},cs=async a=>{if(!aI&&aU&&aW){if(!D.current.some(a=>a.workId===aU))return void bh(u("replaceTargetMissing"));bl(),L.current.add(aU),bb(a),bh(null);try{let b=await C.replaceWorkSession({workId:aU,cwd:aW,sessionId:a});if(b1(b),!b.workSessions.find(a=>a.workId===aU))throw Error(u("replacementMissing"));K.current=!1,b$(aU),bh(null),aP(!1),N&&ai(!1)}catch(a){bh(DS(a,u("replaceFailed")))}finally{L.current.delete(aU),bb(null)}}},ct=(0,B.useCallback)(async a=>{if(!aI&&null===be&&D.current.some(b=>b.workId===a)){L.current.add(a),bf(a),bo(null);try{let b=await C.replaceWorkSession({workId:a});if(b1(b),!b.workSessions.find(b=>b.workId===a))throw Error(u("emptyReplacementMissing"));K.current=!1,b$(a)}catch(a){bo(DS(a,u("replaceEmptyFailed")))}finally{L.current.delete(a),bf(null)}}},[b1,aI,be,b$,C,u]),cu=(0,B.useCallback)(a=>{am(a),"files"===a&&aq(!0)},[]),cv=(0,B.useCallback)(()=>{N&&ak(),ad&&!document.querySelector(`[data-work-id="${CSS.escape(ad)}"] [data-testid="session-file-layout"]`)&&S.expandWindow(ad)},[ad,ak,S,N]),cw=(0,B.useCallback)(()=>{bK&&ad&&(S.refreshTree(ad),T.refreshSnapshot(S.getDirectory(ad)))},[bK,ad,S,T]),cx=(0,B.useCallback)(a=>{aE(a)},[]),cy=(0,B.useCallback)(()=>{aE(null)},[]),cz=(0,B.useCallback)((a,b,c="session",d)=>{let e=D.current.find(b=>b.workId===a.workId&&b.sessionId===a.sessionId&&b.branchId===a.branchId);if(!e)return void x.error(u("sourceChanged"));if("standalone"===c){aC({source:{workId:e.workId,sessionId:e.sessionId,branchId:e.branchId},cwd:e.cwd,projectName:e.projectName,path:b,imagePaths:d}),ak();return}S.selectDirectory(e.workId,e.cwd),S.openFile(e.workId,b),b8(e.workId),ak();let f=document.querySelector(`[data-work-id="${CSS.escape(e.workId)}"] [data-testid="session-file-layout"]`);"expanded"!==c&&f?az&&aF():S.expandWindow(e.workId)},[az,ak,aF,S,b8,x,u]),cA=(0,B.useCallback)((a,b,c,d)=>{let e=y4.safeParse(b),f=y4.array().nonempty().optional().safeParse(d);e.success&&f.success&&(!f.data||"standalone"===c&&f.data.includes(e.data))?cz(a,e.data,c,f.data?[...new Set(f.data)]:void 0):x.error(u("invalidFilePath"))},[cz,x,u]),cB=(0,B.useCallback)((a,b)=>{let c=y4.safeParse(b);c.success?cz(a,c.data):x.error(u("invalidToolFilePath"))},[cz,x,u]),cC=(0,B.useCallback)(async(a,b)=>{let c=y4.safeParse(b);if(!c.success)throw Error(u("invalidFilePath"));let d=D.current.find(b=>b.workId===a.workId&&b.sessionId===a.sessionId&&b.branchId===a.branchId);if(!d)throw Error(u("sourceChanged"));await P.reveal({workId:d.workId,cwd:d.cwd,path:c.data})},[P,u]),cD=(0,B.useCallback)((a,b)=>{bO&&bP&&bQ?cA({workId:bO,sessionId:bP,branchId:bQ},a,b?.mode??"session",b?.imagePaths):x.error(u("noPreviewSession"))},[bQ,bP,bO,cA,x,u]),cE=(0,B.useCallback)(a=>bO&&bP&&bQ?cC({workId:bO,sessionId:bP,branchId:bQ},a):Promise.reject(Error(u("noRevealSession"))),[bQ,bP,bO,cC,u]),cF=(0,B.useCallback)(async a=>{await C.applyAppRuntimeUpdate({key:"notifications",update:{type:"delete",notificationId:a}})},[C]),cG=(0,B.useCallback)(async a=>{if(a.event)try{await y.dispatchNotificationEvent(a.notificationId,a.event),await cF(a.notificationId)}catch(a){x.error(DS(a,u("notificationActionFailed")))}},[cF,y,x,u]),cH=(0,B.useCallback)(async a=>{try{await cF(a)}catch(a){x.error(DS(a,u("notificationDeleteFailed")))}},[cF,x,u]),cI=(0,B.useCallback)(a=>{ak(),au(a),as(!0)},[ak]),cJ=(0,B.useCallback)(a=>{ak(),aA(a)},[ak]),cK=(0,B.useCallback)(a=>void cc(a),[cc]),cL=(0,B.useCallback)((a,b)=>void ca(a,b),[ca]),cM=(0,B.useCallback)(a=>void ct(a),[ct]),cN=(0,B.useCallback)(()=>{N?ai(a=>!a):ag(a=>!a)},[N]),cO=(0,B.useCallback)(a=>{b8(a),N?ai(!0):ag(!0)},[b8,N]),cP=N?ah:af,cQ=aD&&V.some(a=>a.workId===aD.workId&&a.cwd===aD.cwd)?aD:null,cR=(0,B.useMemo)(()=>ap&&bJ?(0,A.jsx)(B.Activity,{mode:cP&&"files"===al?"visible":"hidden",children:(0,A.jsx)(zt,{workId:bJ.workId,cwd:bJ.cwd,projectName:bJ.projectName,runtime:S,gitRuntime:T,onOpenGitBranches:cx,onFileOpened:cv},`${bJ.workId}:${bJ.sessionId}:${bJ.branchId}`)}):null,[bJ,ap,S,T,cv,cx,al,cP]),cS=cP&&bL&&bM?.kind==="session-sidebar-tab"&&bR&&bJ?(0,A.jsx)(DV,{render:n,input:{pluginName:bL.pluginName,descriptor:bM,source:bR,cwd:bJ.cwd,onPreviewFile:cD,onRevealFile:cE,onHeaderActionsChange:bU}}):null,cT=(0,A.jsx)(DN,{mode:al,mobile:N,fileBrowser:cR,pluginTabContent:cS,pluginHeaderActions:cP&&an?.targetKey===bT?an.actions:[],pluginSessionTabs:bC,fileRefreshLoading:bV?.directories.get("")?.status==="loading",canBrowseFiles:null!==bK,workSessions:V,focusedWorkId:ad,pinnedCount:X,ordering:aK,deletingWorkId:aM,canReplace:null!==ad,disabled:aI,pluginApplications:bB,settingsAttention:bH,notifications:Z.notifications,onConsumeNotification:cG,onDismissNotification:cH,onModeChange:cu,onRefreshFiles:cw,onPreviewProject:()=>{bK&&(ak(),S.collapseExpandedWindow(),y.previewProject(ad?S.getDirectory(ad):bK))},onPreviewProjectWindow:()=>{bK&&d(ad?S.getDirectory(ad):bK)},onOpenTerminal:()=>{ak(),S.collapseExpandedWindow(),c(bK??void 0).catch(()=>void 0)},onCreate:cd,onReplace:ce,onSettings:()=>cI(),onOpenPluginApplication:cJ,onSelect:b9,onTogglePin:cb,onDelete:cK,onRename:aJ.show,syncingWorkIds:by.syncingWorkIds,onReloadChat:by.reload,onArrangementChange:cL}),cU=(0,A.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col",children:[bn?(0,A.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-4 py-2 text-sm text-destructive",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 wrap-anywhere",children:bn}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>bq(a=>a+1),children:u("retry",{ns:"common"})}),"initial"!==aG?(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>bo(null),children:u("close",{ns:"common"})}):null]}):null,(0,A.jsxs)("div",{className:"relative h-full min-h-0 min-w-0 flex-1",children:[(0,A.jsx)(C9,{workSessions:V,primaryWorkId:_.primaryWorkId,pinnedWorkIds:bA,focusedWorkId:ad,sidebarOpen:cP,mobile:N,loading:aI,replacingWithEmptyWorkId:be,chatRuntime:bx,chatInputRuntime:bz,renderTaskSummary:p,renderTaskMenu:q,renderPluginComposerPanel:r,renderPluginWidgets:s,renderPluginSessionHeader:t,gitRuntime:T,invokePluginMethod:C.invokePluginMethod,listPiCommands:C.listPiCommands,getChatModelContext:C.getChatModelContext,capabilityModes:Z.capabilityModes,setChatCapabilityMode:C.setChatCapabilityMode,branchPicker:ch,branchPendingWorkId:cq,fileRuntime:S,onOpenFileSidebar:cO,onPreviewFile:cB,onAcknowledgeCompleted:b_,onFocusWorkSession:b8,onReplaceWithEmptyWorkSession:cM,onOpenBranchPicker:ci,onOpenGitBranchPicker:cx,onOpenSettings:cI,onCloseBranchPicker:cj,onRetryBranchPicker:ck,onSelectBranchEntry:cl,onBranchAction:cm,onConfirmRunningBranch:co,onCancelRunningBranch:cp,onCloneWorkSession:cn,onUnpinWorkSession:cb,onToggleSidebar:cN}),"initial"===aG?(0,A.jsx)(Bk,{variant:"loading",className:"absolute inset-0 z-20 bg-background"}):null]})]}),cV=null!==az&&bI?.kind==="application",cW=(0,A.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1",children:[(0,A.jsx)(DV,{render:e,input:{mobile:N,children:cU}}),cV?(0,A.jsx)(DV,{render:m,input:{pluginName:az.pluginName,descriptor:bI,workSessions:V,preferredWorkId:ad,onClose:aF}}):null]});return(0,A.jsxs)("main",{className:"pi-desk-workbench flex h-dvh overflow-hidden bg-background",children:[(0,A.jsx)(zd,{mobile:N,open:cP,sidebar:cT,onClose:ak,children:cW}),(0,A.jsx)(zB,{target:aB,biz:P,images:S.standaloneImages,mobile:N,onClose:()=>aC(null)},aB?`${aB.source.workId}:${aB.source.sessionId}:${aB.source.branchId}:${aB.path}`:"closed"),(0,A.jsx)(zJ,{workSessions:V,runtime:S,gitRuntime:T,mobile:N,onOpenGitBranches:cx,onOpenSidebar:cO,onOpenTerminal:a=>{S.collapseExpandedWindow(),ak(),c(a).catch(()=>void 0)}}),(0,A.jsx)(zR,{target:cQ,runtime:T,mobile:N,onClose:cy},cQ?`${cQ.workId}:${cQ.cwd}:${cQ.repositoryRoot??""}`:"git-branch-picker-closed"),(0,A.jsx)(DV,{render:o,input:{open:ar,connectionReady:"ready"===aG,initialPage:at,capabilityModes:Z.capabilityModes,workSessions:V,focusedCwd:bK,basicMode:"basic"===Z.mode,pluginManagementSnapshot:av,pluginAttention:bH,onPluginManagementSnapshot:bY,onPluginRestartScheduled:bZ,onOpenChange:as,onBeforeReload:()=>bz.prepareForPageReload()}}),(0,A.jsx)(Di,{open:aJ.open,title:aJ.title,saving:aJ.saving,disabled:aI,error:aJ.error,onTitleChange:aJ.setTitle,onSave:()=>void aJ.save(),onClose:aJ.close}),(0,A.jsx)(Bj,{open:aO,pickerMode:aQ,pickerView:aS,pickerCwd:aW,directories:aY,ignoredDirectories:a$,directoryBrowser:a0,historySessions:bi,replacementTarget:"create"===aQ?null:bW,unavailableSessionIds:bX,error:bg,loading:"history"===aS?bj:"ignored"===aS?a4:"browser"===aS?a6:a2,creatingCwd:a8,replacingSessionId:ba,updatingIgnoreCwd:bc,onOpenChange:a=>{aP(a),a||(bs.current+=1,a3(!1),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl(),aR(null),aT("directories"),bh(null))},onBack:()=>{bh(null),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl();let a=DT((lC(),ly));a&&aZ(a),aT("directories"),aX(null),b5()},onSearchHistory:(a,b)=>{"history"===aS&&aW&&bk(aW,a,b)},onListSessionUserMessages:(a,b)=>C.listSessionUserMessages(a,b),onRefresh:(a,b)=>{"history"===aS&&aW?bk(aW,a,b,!0):"ignored"===aS?b6(!0):"browser"===aS?b7(a0?.cwd??null):b5(!0)},onOpenIgnoredDirectories:()=>{if(aI||"create"!==aQ)return;let a=DT((lC(),lz));a?a_(a):a_([]),bh(null),bs.current+=1,a3(!1),bu.current+=1,a7(!1),aT("ignored"),b6()},onOpenDirectoryBrowser:()=>{aI||"create"!==aQ||(bh(null),bs.current+=1,a3(!1),bt.current+=1,a5(!1),aT("browser"),a1(DU(lG(null))),b7(null))},onNavigateDirectory:a=>{if(aI||"create"!==aQ)return;let b=DU(lG(a));b&&a1(b),b7(a)},onSelectBrowserDirectory:a=>void cr(a),onReplaceDirectoryIgnore:(a,b)=>void cf(a,b),onSelectDirectory:a=>{"replace"===aQ?(bs.current+=1,a3(!1),aT("history"),aX(a),bm(a),bk(a)):cr(a)},onSelectSession:a=>void cs(a)})]})}function DX(a){return(0,A.jsx)(cr,{...a},`${a.pluginName}:${a.descriptor.contributionName}`)}function DY(a){return(0,A.jsx)(i8,{...a},`${a.pluginName}:${a.descriptor.contributionName}:${a.source.workId}:${a.source.sessionId}:${a.source.branchId}`)}function DZ(a){let b=JSON.stringify([a.source.workId,a.source.sessionId,a.source.branchId]);return(0,A.jsx)(cs,{...a},`${a.pluginName}:${a.descriptor.contributionName}:${b}`)}function D$(a){return(0,A.jsx)(ja,{...a},`${a.source.workId}:${a.source.sessionId}:${a.source.branchId}:${a.placement}`)}function D_(a){return(0,A.jsx)(je,{...a},`${a.source.workId}:${a.source.sessionId}:${a.source.branchId}`)}function D0(a){return(0,A.jsx)(i9,{...a},`${a.pluginName}:${a.descriptor.contributionName}`)}function D1(){let{clientId:a,appSocket:b}=(0,bN.gM)();(0,bF.t4)();let c=(0,bG.G)(),d=(0,B.useMemo)(()=>new P(b,c.error),[b,c.error]),e=(0,B.useCallback)(a=>(0,A.jsx)(bE,{...a,biz:d}),[d]),f=(0,B.useMemo)(()=>({subscribeChanges:a=>b.subscribe(iX,a),list:(b=!1)=>i7(a,"/api/plugins/list",i1.parse("boolean"==typeof b?b?{checkUpdates:!0}:{}:b),i$),batch:b=>i7(a,"/api/plugins/batch",i4.parse(b),i5),get:b=>i7(a,"/api/plugins/get",i2.parse({source:b}),iZ),add:b=>i7(a,"/api/plugins/add",i3.parse(b),i$),setEnabled:(b,c)=>i7(a,"/api/plugins/enabled-set",i6.parse({source:b,enabled:c}),i$),searchCatalog:b=>i7(a,"/api/plugin-catalog/search",dD.parse(b),dG),getCatalog:b=>i7(a,"/api/plugin-catalog/get",dE.parse(b),dH),getCatalogSettings:()=>i7(a,"/api/plugin-catalog/settings-get",{},dB),saveCatalogSettings:b=>i7(a,"/api/plugin-catalog/settings-replace",dC.parse({downloadSource:b}),dB),update:b=>i7(a,"/api/plugins/update",i2.parse({source:b}),i$),del:b=>i7(a,"/api/plugins/del",i2.parse({source:b}),i$),reload:b=>i7(a,"/api/plugins/reload",i0.parse({mode:b}),i$),apply:b=>i7(a,"/api/plugins/apply",i_.parse({sources:b}),i$)}),[a,b]),g=(0,B.useMemo)(()=>(function(a,b){async function c(b,c){let d=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(c)}),e=await d.json();if(!d.ok||0!==e.code||null===e.data)throw Error(e.msg?(0,bS.B)(e):"请求失败");return e.data}return{watchDetail:a=>b.request(px.detailWatch,a),async interrupt(a){await b.request(px.interrupt,a)},subscribeDetailEvents:a=>b.subscribe(px.detailEvent,a),getMessageDetail:a=>c("/api/task-center/messages/get",a),getImage:a=>c("/api/task-center/images/get",a)}})(a,b),[b,a]),h=(0,B.useMemo)(()=>{let a,b,c,d,e,f,h,i,j,k,l,m,n,o,p,q;return a=new Set,b=new Map,c=y_,d=0,e=0,f=!1,h=null,i=()=>void 0,j=null,k=!1,l=()=>{for(let b of[...a])try{b()}catch(a){console.error("[Pi Desk][TaskCenterClient] 状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},m=(a,b=!1)=>{c=a,((a=!1)=>{if(a){if(j)return;j=setTimeout(()=>{j=null,l()},16);return}j&&clearTimeout(j),j=null,l()})(b)},n=a=>{for(let[c,d]of b)(void 0===a||d.taskId===a)&&(URL.revokeObjectURL(d.url),b.delete(c))},o=()=>{if(!c.open&&null===c.source)return;let a=c.source;d+=1,f=!1,m(y_),n(),a&&g.watchDetail({source:a,taskId:null}).catch(()=>void 0)},p=a=>{if(k||!c.open||!f||!y0(c.source,a.source)||c.selectedTaskId!==a.taskId)return;let b=c.details[a.taskId];if(b)try{let d=function(a,b){var c,d;if("snapshot"===b.type)return yY(a,b.snapshot);if("unavailable"===b.type)return null;if("text_append"===b.type){if(a.body?.kind!=="text")throw Error("Text append requires a text task detail snapshot");return{...a,body:{...a.body,text:a.body.text+b.text}}}if(a.body?.kind!=="conversation")throw Error("Conversation event requires a conversation task detail snapshot");return{...a,body:{...(c=a.body,"durable_append"===(d=b.event).type?function(a,b){let c=a.messages.length;if(b.messages[0]?.location.index!==c)throw Error(`Conversation append index is not continuous: expected ${c}, received ${b.messages[0]?.location.index}`);let d=new Set(a.messages.map(a=>a.location.entryId));for(let a of b.messages){if(d.has(a.location.entryId))throw Error(`Conversation append entryId already exists: ${a.location.entryId}`);d.add(a.location.entryId)}return{...a,messages:[...a.messages,...b.messages]}}(c,d):yW(c,d)),kind:"conversation",truncated:a.body.truncated}}}(b,a.event);if(!d){let b={...c.details};delete b[a.taskId],n(a.taskId),m({...c,details:b,loading:!1,refreshing:!1,error:y$("detailUnavailable")});return}let e="text_append"===a.event.type||"conversation_event"===a.event.type&&"message_update"===a.event.event.type;m({...c,details:{...c.details,[a.taskId]:d},loading:!1,refreshing:!1,error:null},e)}catch(b){f=!1,i(b),q(a.taskId)}},q=async a=>{if(k||!c.open||!c.source)return;let b=a.trim();if(!b)return;let h=c.source,i=++d,j=e,l=c.details[b];f=!1,m({...c,selectedTaskId:b,loading:void 0===l,refreshing:void 0!==l,error:null});try{let a=await g.watchDetail({source:h,taskId:b});if(k||i!==d||j!==e||!c.open||!y0(c.source,h)||c.selectedTaskId!==b)return;if(!a.snapshot)throw Error(y$("detailResponseMissing"));let n=pp.parse(a.snapshot),o=l?yY(l,n):n;m({...c,details:{...c.details,[b]:o},loading:!1,refreshing:!1,error:null}),f=!0}catch(a){if(i!==d||!c.open||c.selectedTaskId!==b)return;m({...c,loading:!1,refreshing:!1,error:a instanceof Error?a.message:y$("detailLoadFailed")})}},{start(a){i=a,h||(k=!1,h=g.subscribeDetailEvents(p))},subscribe:b=>(a.add(b),()=>a.delete(b)),getState:()=>c,open(a,b){let e=pa.R.parse(a);c.open&&y0(c.source,e)||(d+=1,f=!1,n(),m({...y_,open:!0,source:e})),b&&q(b)},close:o,selectTask(a){q(a)},reconcileWorkSessions(a){if(!c.open||!c.source)return;let b=a.find(a=>a.workId===c.source?.workId);b&&b.sessionId===c.source.sessionId&&b.branchId===c.source.branchId||o()},reconcileTasks(a,b){let e=pa.R.parse(a);if(!c.open||!y0(c.source,e))return;let g=new Set(b.map(a=>a.taskId)),h={...c.details},i=!1;for(let a of Object.keys(h))g.has(a)||(delete h[a],n(a),i=!0);if(c.selectedTaskId&&!g.has(c.selectedTaskId)){d+=1,f=!1,m({...c,selectedTaskId:null,details:h,loading:!1,refreshing:!1,error:null});return}i&&m({...c,details:h})},async interruptSelected(){c.open&&c.source&&c.selectedTaskId&&await g.interrupt({source:c.source,taskId:c.selectedTaskId})},async loadMessageDetail(a){let b=c.source,d=c.selectedTaskId;if(!c.open||!b||!d||!a.durable)return null;let e=c.details[d];if(!e||e.body?.kind!=="conversation")return null;if(void 0!==a.detail)return a.detail;if(!a.snapshot.fixed.hasDetail)return null;let f=await g.getMessageDetail({source:b,taskId:d,entryId:a.durable.location.entryId}),h=c.details[d];return h&&m({...c,details:{...c.details,[d]:function(a,b){if(a.body?.kind!=="conversation")throw Error("Task message detail requires a conversation snapshot");return pp.parse({...a,body:{kind:"conversation",truncated:a.body.truncated,...yX(a.body,b)}})}(h,f)}}),f.detail},async acquireImage(a,d){let e=c.source,f=c.selectedTaskId,h=a.durable?.location.entryId;if(!c.open||!e||!f||!h)throw Error(y$("imageDurableOnly"));let i=JSON.stringify([e.workId,e.sessionId,e.branchId,f,h,d]),j=b.get(i);if(j)return{url:j.url,release:()=>void 0};let k=await g.getImage({source:e,taskId:f,entryId:h,imageIndex:d});if(!c.open||!y0(c.source,e))throw Error(y$("centerClosed"));let l=b.get(i);if(l)return{url:l.url,release:()=>void 0};let m=URL.createObjectURL((0,yZ.E)(k));return b.set(i,{taskId:f,url:m}),{url:m,release:()=>void 0}},disconnected(){e+=1,f=!1,c.open&&m({...c,loading:null!==c.selectedTaskId&&void 0===c.details[c.selectedTaskId],refreshing:null!==c.selectedTaskId&&void 0!==c.details[c.selectedTaskId]})},reconnected(){c.open&&c.selectedTaskId&&q(c.selectedTaskId)},dispose(){if(k)return;k=!0;let b=c.source;d+=1,e+=1,f=!1,h?.(),h=null,n(),b&&g.watchDetail({source:b,taskId:null}).catch(()=>void 0),c=y_,j&&clearTimeout(j),j=null,a.clear(),i=()=>void 0}}},[g]),i=(0,B.useCallback)(a=>(0,A.jsx)(yN,{...a,runtime:h,variant:"summary"}),[h]),j=(0,B.useCallback)(a=>(0,A.jsx)(yN,{...a,runtime:h,variant:"menu"}),[h]),k=(0,B.useCallback)(a=>(0,A.jsx)(oL,{open:a.open,connectionReady:a.connectionReady,initialModelTab:"model-presets"===a.initialPage?"presets":void 0,workSessions:a.workSessions,focusedCwd:a.focusedCwd,pluginAttention:a.pluginAttention,onOpenChange:a.onOpenChange,onBeforeReload:a.onBeforeReload,renderPluginSettingsPage:D0,renderMcpSettings:({onBeforeLeaveChange:b})=>(0,A.jsx)(o9,{projects:a.workSessions,focusedCwd:a.focusedCwd,onBeforeLeaveChange:b}),renderCapabilityModesSettings:({onBeforeLeaveChange:b})=>(0,A.jsx)(b5,{modeNames:a.capabilityModes,onBeforeLeaveChange:b}),renderPluginManagement:()=>(0,A.jsx)(iD,{basicMode:a.basicMode,snapshot:a.pluginManagementSnapshot,biz:f,onSnapshot:a.onPluginManagementSnapshot,onRestartScheduled:a.onPluginRestartScheduled})},`${a.open}:${a.initialPage??"default"}`),[f]);return(0,A.jsx)(DW,{onTerminalReady:d.connected,onTerminalDisconnected:d.disconnected,onOpenTerminal:d.open,onOpenProjectPreviewWindow:a=>{window.open((0,D.F)(a),"_blank","noopener,noreferrer")},renderTerminalWorkspace:e,listPluginManagement:f.list,subscribePluginManagementChanges:f.subscribeChanges,onTaskCenterStart:h.start,onTaskCenterDispose:h.dispose,onTaskCenterReconcileWorkSessions:h.reconcileWorkSessions,onTaskCenterDisconnected:h.disconnected,onTaskCenterReconnected:h.reconnected,renderPluginApplication:DX,renderPluginSessionSidebarTab:DY,renderPluginComposerPanel:DZ,renderPluginWidgets:D$,renderPluginSessionHeader:D_,renderSettings:k,renderTaskSummary:i,renderTaskMenu:j})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74349:a=>{a.exports={sessionPanelGroup:"l2-workbench-motion_sessionPanelGroup__83WwS",panelGroup:"l2-workbench-motion_panelGroup__yxZEK",drawer:"l2-workbench-motion_drawer____5mR",backdrop:"l2-workbench-motion_backdrop__F0q19",columnContent:"l2-workbench-motion_columnContent__1RfUq"}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76482:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});var d=c(58483);function e(a){return(0,d.i)(a)}},76499:(a,b,c)=>{"use strict";c.d(b,{G6:()=>h,Kc:()=>k,W:()=>e,Xm:()=>g,mj:()=>f,uZ:()=>j});var d=c(87883);let e=d.Ik({password:d.Yj().min(1).max(64)}).strict(),f=d.Ik({}).strict();d.Ik({}).strict();let g=d.Ik({}).strict();d.Ik({}).strict();let h=d.Ik({enabled:d.zM(),configPath:d.Yj()}).strict(),i=d.Yj().min(12).max(64).refine(a=>a===a.trim()&&!/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u.test(a)).refine(a=>[/[A-Z]/,/[a-z]/,/[0-9]/,/[\p{P}\p{S}]/u].filter(b=>b.test(a)).length>=3),j=d.KC([e.extend({password:i}),d.Ik({password:d.ch()}).strict()]),k=d.Ik({}).strict()},76760:a=>{"use strict";a.exports=require("node:path")},77594:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(97808),e=c(44599);class f{constructor(){this.type=e.Z.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=e.Z.ALL}is(a){return this.type===a}}class g{constructor(a,b){this.color=b,this.changed=!1,this.data=a,this.type=new f}set(a,b){return this.color=b,this.changed=!1,this.data=a,this.type.type=e.Z.ALL,this}_ensureHSL(){let a=this.data,{h:b,s:c,l:e}=a;void 0===b&&(a.h=d.A.channel.rgb2hsl(a,"h")),void 0===c&&(a.s=d.A.channel.rgb2hsl(a,"s")),void 0===e&&(a.l=d.A.channel.rgb2hsl(a,"l"))}_ensureRGB(){let a=this.data,{r:b,g:c,b:e}=a;void 0===b&&(a.r=d.A.channel.hsl2rgb(a,"r")),void 0===c&&(a.g=d.A.channel.hsl2rgb(a,"g")),void 0===e&&(a.b=d.A.channel.hsl2rgb(a,"b"))}get r(){let a=this.data,b=a.r;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"r")):b}get g(){let a=this.data,b=a.g;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"g")):b}get b(){let a=this.data,b=a.b;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"b")):b}get h(){let a=this.data,b=a.h;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"h")):b}get s(){let a=this.data,b=a.s;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"s")):b}get l(){let a=this.data,b=a.l;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"l")):b}get a(){return this.data.a}set r(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.r=a}set g(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.g=a}set b(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.b=a}set h(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.h=a}set s(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.s=a}set l(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.l=a}set a(a){this.changed=!0,this.data.a=a}}let h=new g({r:0,g:0,b:0,a:0},"transparent")},77598:a=>{"use strict";a.exports=require("node:crypto")},82709:(a,b,c)=>{"use strict";c.d(b,{N:()=>e});var d=c(87883);let e=d.Ik({key:d.Yj().min(1).max(160),params:d.g1(d.Yj().min(1).max(80),d.KC([d.Yj().max(1e3),d.ai().finite()])).optional()}).strict()},83383:(a,b,c)=>{Promise.resolve().then(c.bind(c,71152)),Promise.resolve().then(c.bind(c,99920))},83959:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(97808),e=c(9850);let f=(a,b)=>{let c=e.A.parse(a);for(let a in b)c[a]=d.A.channel.clamp[a](b[a]);return e.A.stringify(c)}},84541:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=c(87785);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},85711:(a,b,c)=>{"use strict";b.J=function(a){if(!a)return d.BLANK_URL;var b,c=e(a.trim());do b=(c=e(c=c.replace(d.ctrlCharactersRegex,"").replace(d.htmlEntitiesRegex,function(a,b){return String.fromCharCode(b)}).replace(d.htmlCtrlEntityRegex,"").replace(d.ctrlCharactersRegex,"").replace(d.whitespaceEscapeCharsRegex,"").trim())).match(d.ctrlCharactersRegex)||c.match(d.htmlEntitiesRegex)||c.match(d.htmlCtrlEntityRegex)||c.match(d.whitespaceEscapeCharsRegex);while(b&&b.length>0);var f=c;if(!f)return d.BLANK_URL;if(d.relativeFirstCharacters.indexOf(f[0])>-1)return f;var g=f.trimStart(),h=g.match(d.urlSchemeRegex);if(!h)return f;var i=h[0].toLowerCase().trim();if(d.invalidProtocolRegex.test(i))return d.BLANK_URL;var j=g.replace(/\\/g,"/");if("mailto:"===i||i.includes("://"))return j;if("http:"===i||"https:"===i){if(!URL.canParse(j))return d.BLANK_URL;var k=new URL(j);return k.protocol=k.protocol.toLowerCase(),k.hostname=k.hostname.toLowerCase(),k.toString()}return j};var d=c(99842);function e(a){try{return decodeURIComponent(a)}catch(b){return a}}},86007:(a,b,c)=>{"use strict";c.d(b,{$V:()=>g,Av:()=>d,GX:()=>o,ML:()=>y,NA:()=>l,OG:()=>e,Qb:()=>q,R_:()=>h,Uw:()=>m,VP:()=>i,XZ:()=>u,ZR:()=>t,_u:()=>w,cT:()=>n,i1:()=>v,iq:()=>p,kj:()=>f,pj:()=>k,q:()=>r,ri:()=>x,vC:()=>j,x6:()=>s});let d="[object RegExp]",e="[object String]",f="[object Number]",g="[object Boolean]",h="[object Arguments]",i="[object Symbol]",j="[object Date]",k="[object Map]",l="[object Set]",m="[object Array]",n="[object ArrayBuffer]",o="[object Object]",p="[object DataView]",q="[object Uint8Array]",r="[object Uint8ClampedArray]",s="[object Uint16Array]",t="[object Uint32Array]",u="[object Int8Array]",v="[object Int16Array]",w="[object Int32Array]",x="[object Float32Array]",y="[object Float64Array]"},88131:(a,b,c)=>{"use strict";c.d(b,{XX:()=>m,q7:()=>n,sO:()=>l});var d=c(38863),e=c(35705),f=c(18767),g=c(4629),h=c(44272),i=c(36122),j={common:g.Y2,getConfig:g.zj,insertCluster:e.U,insertEdge:d.Jo,insertEdgeLabel:d.jP,insertMarkers:d.g0,insertNode:e.on,interpolateToCurve:f.Ib,labelHelper:e.Zk,log:h.R,positionEdgeLabel:d.T_},k={},l=(0,i.K)(a=>{for(let b of a)k[b.name]=b},"registerLayoutLoaders");(0,i.K)(()=>{l([{name:"dagre",loader:(0,i.K)(async()=>await Promise.all([c.e(21723),c.e(35807),c.e(88882),c.e(88341),c.e(49513)]).then(c.bind(c,49513)),"loader")},{name:"swimlane",loader:(0,i.K)(async()=>await Promise.all([c.e(21723),c.e(35807),c.e(88341),c.e(79450)]).then(c.bind(c,79450)),"loader")},{name:"cose-bilkent",loader:(0,i.K)(async()=>await Promise.all([c.e(41),c.e(10027)]).then(c.bind(c,10027)),"loader")}])},"registerDefaultLayoutLoaders")();var m=(0,i.K)(async(a,b,c)=>{if(!(a.layoutAlgorithm in k))throw Error(`Unknown layout algorithm: ${a.layoutAlgorithm}`);if(a.diagramId)for(let b of a.nodes){let c=b.domId||b.id;b.domId=`${a.diagramId}-${c}`}let d=k[a.layoutAlgorithm],e=await d.loader(),{theme:f,themeVariables:g}=a.config,{useGradient:h,gradientStart:i,gradientStop:l}=g,m=b.attr("id");if(b.append("defs").append("filter").attr("id",`${m}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${f?.includes("dark")?"#FFFFFF":"#000000"}`),b.append("defs").append("filter").attr("id",`${m}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${f?.includes("dark")?"#FFFFFF":"#000000"}`),h){let a=b.append("linearGradient").attr("id",b.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");a.append("svg:stop").attr("offset","0%").attr("stop-color",i).attr("stop-opacity",1),a.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return e.render(a,b,j,{algorithm:d.algorithm},c)},"render"),n=(0,i.K)((a="",{fallback:b="dagre"}={})=>{if(a in k)return a;if(b in k)return h.R.warn(`Layout algorithm ${a} is not registered. Using ${b} as fallback.`),b;throw Error(`Both layout algorithms ${a} and ${b} are not registered.`)},"getRegisteredLayoutAlgorithm")},92471:(a,b,c)=>{"use strict";c.d(b,{Fr:()=>k,GX:()=>j,KX:()=>i,WW:()=>g,ue:()=>f});var d=c(4629),e=c(36122),f=(0,e.K)(a=>{let{handDrawnSeed:b}=(0,d.D7)();return{fill:a,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:a,seed:b}},"solidStateFill"),g=(0,e.K)(a=>{let b=h([...a.cssCompiledStyles||[],...a.cssStyles||[],...a.labelStyle||[]]);return{stylesMap:b,stylesArray:[...b]}},"compileStyles"),h=(0,e.K)(a=>{let b=new Map;return a.forEach(a=>{let[c,d]=a.split(":");b.set(c.trim(),d?.trim())}),b},"styles2Map"),i=(0,e.K)(a=>"color"===a||"font-size"===a||"font-family"===a||"font-weight"===a||"font-style"===a||"text-decoration"===a||"text-align"===a||"text-transform"===a||"line-height"===a||"letter-spacing"===a||"word-spacing"===a||"text-shadow"===a||"text-overflow"===a||"white-space"===a||"word-wrap"===a||"word-break"===a||"overflow-wrap"===a||"hyphens"===a,"isLabelStyle"),j=(0,e.K)(a=>{let{stylesArray:b}=g(a),c=[],d=[],e=[],f=[];return b.forEach(a=>{let b=a[0];i(b)?c.push(a.join(":")+" !important"):(d.push(a.join(":")+" !important"),b.includes("stroke")&&e.push(a.join(":")+" !important"),"fill"===b&&f.push(a.join(":")+" !important"))}),{labelStyles:c.join(";"),nodeStyles:d.join(";"),stylesArray:b,borderStyles:e,backgroundStyles:f}},"styles2String"),k=(0,e.K)((a,b)=>{let{themeVariables:c,handDrawnSeed:e}=(0,d.D7)(),{nodeBorder:f,mainBkg:h}=c,{stylesMap:i}=g(a);return Object.assign({roughness:.7,fill:i.get("fill")||h,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:i.get("stroke")||f,seed:e,strokeWidth:i.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:l(i.get("stroke-dasharray"))},b)},"userNodeOverrides"),l=(0,e.K)(a=>{if(!a)return[0,0];let b=a.trim().split(/\s+/).map(Number);if(1===b.length){let a=isNaN(b[0])?0:b[0];return[a,a]}return[isNaN(b[0])?0:b[0],isNaN(b[1])?0:b[1]]},"getStrokeDashArray")},94283:(a,b,c)=>{"use strict";c.d(b,{AA:()=>o,C3:()=>j,Kx:()=>i,MT:()=>l,MY:()=>p,_A:()=>k,eW:()=>g,ik:()=>h,jw:()=>n,kg:()=>q});var d=c(87883),e=c(23423),f=c(41994);let g=d.Yj().trim().min(1),h=e.m4,i=e.$E,j=e.Rv,k=d.Yj().trim().min(1),l=d.ai().int().nonnegative(),m=d.Ik({workId:g,cwd:h,sessionId:i}).strict();d.YO(m);let n=d.k5(["main_running","background_running","completed","idle"]),o=d.Ik({user:d.ai().int().nonnegative(),total:d.ai().int().nonnegative()}).strict().refine(a=>a.user<=a.total,{message:"user message count cannot exceed total message count"}),p=m.extend({branchId:k,projectName:d.Yj().trim().min(1),sessionTitle:d.Yj().trim().min(1).nullable(),status:n,messageCounts:o,lastMessageUpdatedAt:f.k.nullable()}).strict(),q=d.Ik({workSessions:d.YO(p),pinnedCount:l}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]});d.Ik({cwd:h,sessionId:i.optional()}).strict(),d.Ik({workSession:p}).strict(),d.Ik({workId:g,sessionId:i,title:d.Yj().trim().min(1)}).strict(),d.Ik({workId:g}).strict(),d.Ik({workIds:d.YO(g),pinnedCount:l}).strict().superRefine((a,b)=>{new Set(a.workIds).size!==a.workIds.length&&b.addIssue({code:"custom",message:"workIds cannot contain duplicates",path:["workIds"]}),a.pinnedCount>a.workIds.length&&b.addIssue({code:"custom",message:"pinnedCount cannot exceed workIds length",path:["pinnedCount"]})}),d.KC([d.Ik({workId:g,cwd:h,sessionId:i}).strict(),d.Ik({workId:g}).strict()])},96519:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>q,handler:()=>s,routeModule:()=>r});var d=c(85426),e=c(3372),f=c(2629),g=c(86804),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,19623))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),l=(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),o={children:["",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,69388))),"/home/runner/work/pi-desk/pi-desk/src/app/page.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[i,"/home/runner/work/pi-desk/pi-desk/src/app/layout.tsx"],error:[j,"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[k,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[l,"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,p=(0,e.H)({tree:o,page:"/page",pathname:"/",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),q=p.__next_app__,r=p.routeModule,s=p.handler},97808:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});let d={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:a=>a>=255?255:a<0?0:a,g:a=>a>=255?255:a<0?0:a,b:a=>a>=255?255:a<0?0:a,h:a=>a%360,s:a=>a>=100?100:a<0?0:a,l:a=>a>=100?100:a<0?0:a,a:a=>a>=1?1:a<0?0:a},toLinear:a=>{let b=a/255;return a>.03928?Math.pow((b+.055)/1.055,2.4):b/12.92},hue2rgb:(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a,hsl2rgb:({h:a,s:b,l:c},e)=>{if(!b)return 2.55*c;a/=360,b/=100;let f=(c/=100)<.5?c*(1+b):c+b-c*b,g=2*c-f;switch(e){case"r":return 255*d.hue2rgb(g,f,a+1/3);case"g":return 255*d.hue2rgb(g,f,a);case"b":return 255*d.hue2rgb(g,f,a-1/3)}},rgb2hsl:({r:a,g:b,b:c},d)=>{let e=Math.max(a/=255,b/=255,c/=255),f=Math.min(a,b,c),g=(e+f)/2;if("l"===d)return 100*g;if(e===f)return 0;let h=e-f;if("s"===d)return 100*(g>.5?h/(2-e-f):h/(e+f));switch(e){case a:return((b-c)/h+6*(b<c))*60;case b:return((c-a)/h+2)*60;case c:return((a-b)/h+4)*60;default:return -1}}},e={channel:d,lang:{clamp:(a,b,c)=>b>c?Math.min(b,Math.max(c,a)):Math.min(c,Math.max(b,a)),round:a=>Math.round(1e10*a)/1e10},unit:{dec2hex:a=>{let b=Math.round(a).toString(16);return b.length>1?b:`0${b}`}}}},98945:(a,b,c)=>{"use strict";c.d(b,{Dz:()=>h,f7:()=>g,tv:()=>f});var d=c(87883);let e=d.Yj().trim().min(1).max(64).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/),f=e,g=e,h=d.g1(d.Yj(),d.Pq());d.Yj().trim().min(3).max(129).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*$/);let i=d.k5(["plugin","server","rocket","settings","panel","message","terminal","file","folder","bot","wrench","database","globe"]);d.gM("type",[d.Ik({type:d.eu("builtin"),name:i}).strict(),d.Ik({type:d.eu("svg"),content:d.Yj().trim().min(1).max(16384)}).strict()])},99022:(a,b,c)=>{"use strict";c.d(b,{k:()=>k});var d=c(52834),e=c(72175),f=c(24811),g=c(49147),h=c(57850),i=c(15620),j=c(11071);function k({className:a,disabled:b,id:c,...l}){let{t:m}=(0,h.Bd)("common"),[n,o]=(0,g.useState)(!1),p=m(n?"hidePassword":"showPassword");return(0,d.jsxs)("div",{className:"relative min-w-0",children:[(0,d.jsx)(j.p,{...l,id:c,disabled:b,type:n?"text":"password",autoCapitalize:"none",spellCheck:!1,className:(0,i.cn)("pr-9",a)}),(0,d.jsx)("button",{type:"button",className:"absolute top-1/2 right-1 flex size-6 -translate-y-1/2 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50","aria-label":p,"aria-controls":c,"aria-pressed":n,title:p,disabled:b,onClick:()=>o(a=>!a),children:n?(0,d.jsx)(e.A,{className:"size-4","aria-hidden":"true"}):(0,d.jsx)(f.A,{className:"size-4","aria-hidden":"true"})})]})}},99842:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.BLANK_URL=b.relativeFirstCharacters=b.whitespaceEscapeCharsRegex=b.urlSchemeRegex=b.ctrlCharactersRegex=b.htmlCtrlEntityRegex=b.htmlEntitiesRegex=b.invalidProtocolRegex=void 0,b.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,b.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,b.htmlCtrlEntityRegex=/&(newline|tab);/gi,b.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,b.urlSchemeRegex=/^.+(:|&colon;)/gim,b.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,b.relativeFirstCharacters=[".","/"],b.BLANK_URL="about:blank"},99920:(a,b,c)=>{"use strict";c.d(b,{L1AppRuntimeProvider:()=>ao});var d=c(52834),e=c(49147),f=c(37222),g=c(18513),h=c(10905),i=c(8579),j=c(87883),k=c(16340),l=c(98945);j.Yj().min(32).max(128).regex(/^[A-Za-z0-9_-]+$/);let m="/api/plugins/host-runtime/v1";Object.freeze({imports:Object.freeze({react:`${m}/base.js`,"react/jsx-runtime":`${m}/base.js`,"react/jsx-dev-runtime":`${m}/base.js`,"react-dom":`${m}/base.js`,"react-dom/client":`${m}/base.js`,"@jetcrab/pi-desk-sdk/react/base":`${m}/base.js`,"@jetcrab/pi-desk-sdk/react/markdown":`${m}/markdown.js`})}),j.eu("v1");let n=j.Ik({pluginName:l.tv,url:j.Yj().regex(/^\/api\/plugins\/browser-resources\/[A-Za-z0-9_-]{32,128}\/entry\.js$/,"Browser Entry URL 无效")}).strict(),o=j.Ik({}).strict(),p=j.Ik({entries:j.YO(n)}).strict(),q=Object.freeze({list:(0,k.Vc)({path:"plugins/browser-entries/list",inputSchema:o,outputSchema:p})}),r=j.Yj().trim().min(1).max(32768),s=j.Ik({text:j.Yj(),truncated:j.zM()}).strict(),t=j.KC([j.Ik({type:j.eu("text_append"),text:j.Yj().min(1)}).strict(),j.Ik({type:j.eu("snapshot"),snapshot:s}).strict(),j.Ik({type:j.eu("unavailable")}).strict()]),u=j.Ik({pluginName:l.tv,path:r}).strict(),v=j.Ik({snapshot:s}).strict(),w=j.Ik({}).strict(),x=j.Ik({pluginName:l.tv,path:r,event:t}).strict(),y=Object.freeze({watch:(0,k.Vc)({path:"plugins/logs/watch",inputSchema:u,outputSchema:v}),unwatch:(0,k.Vc)({path:"plugins/logs/unwatch",inputSchema:u,outputSchema:w}),event:(0,k._G)({path:"plugins/logs/event",bodySchema:x})});var z=c(38974),A=c(3035);let B=j.gM("scope",[j.Ik({scope:j.eu("global")}).strict(),j.Ik({scope:j.eu("session"),source:A.R}).strict()]),C=j.Ik({pluginName:l.tv,target:B,event:l.f7,data:l.Dz}).strict(),D=(0,k._G)({path:"plugins/push",bodySchema:C});var E=c(97563),F=c(51949),G=c(72062);function H(a,b,c){let d=a=>{console.error("[Pi Desk][PluginHost] 插件回调执行失败",{pluginName:c,phase:b,message:a instanceof Error?a.message:String(a)})};try{let b=a();"object"==typeof b&&null!==b&&"then"in b&&"function"==typeof b.then&&Promise.resolve(b).catch(d)}catch(a){d(a)}}async function I(a,b,c){let d,e=Promise.resolve().then(c).catch(c=>{console.error("[Pi Desk][PluginHost] 插件资源清理失败",{pluginName:a,phase:b,message:c instanceof Error?c.message:String(c)})});try{await Promise.race([e,new Promise(c=>{d=setTimeout(()=>{console.warn("[Pi Desk][PluginHost] 插件资源清理超时",{pluginName:a,phase:b,timeoutMs:1500}),c()},1500)})])}finally{void 0!==d&&clearTimeout(d)}}let J={text:"",truncated:!1,loading:!0,error:null};function K(a,b){if(b.text!==a.snapshot.text||b.truncated!==a.snapshot.truncated||b.loading!==a.snapshot.loading||b.error!==a.snapshot.error){a.snapshot=b;for(let b of[...a.listeners])H(b,`log:${a.path}`)}}class L{constructor(a,b){this.channel=a,this.connection=b,this.records=new Map,this.connectionEpoch=0,this.disposed=!1,this.unsubscribeEvents=a.subscribe(a=>this.handleEvent(a)),this.unsubscribeConnection=b.subscribe(()=>this.handleConnectionChange())}open(a){if(this.disposed)throw Error("Plugin log host has been disposed");let b=a.trim();if(!b)throw Error("日志路径不能为空");let c=this.records.get(b);c||(c={path:b,references:0,observed:!1,blockedByError:!1,refreshRequested:!1,syncRequested:!1,syncPromise:null,snapshot:{...J},listeners:new Set},this.records.set(b,c)),c.references+=1,this.requestSync(c);let d=!0;return{getSnapshot:()=>c.snapshot,subscribe:a=>{if(!d)throw Error("Plugin log handle has been disposed");return c.listeners.add(a),()=>{c.listeners.delete(a)}},retry:()=>{d&&!this.disposed&&(c.blockedByError=!1,c.refreshRequested=!0,K(c,{...c.snapshot,loading:!0,error:null}),this.requestSync(c))},dispose:()=>{d&&(d=!1,c.references-=1,this.requestSync(c))}}}dispose(){if(!this.disposed){for(let a of(this.disposed=!0,this.unsubscribeEvents(),this.unsubscribeConnection(),this.records.values()))a.observed&&"ready"===this.connection.getSnapshot().status&&this.channel.unwatch(a.path).catch(()=>void 0),a.listeners.clear();this.records.clear()}}handleConnectionChange(){if(this.disposed)return;this.connectionEpoch+=1;let a="ready"===this.connection.getSnapshot().status;for(let b of this.records.values())b.observed=!1,b.blockedByError=!1,b.refreshRequested=a,b.references>0&&K(b,{...b.snapshot,loading:!0,error:a?null:b.snapshot.error}),this.requestSync(b)}handleEvent(a){if(this.disposed)return;let b=this.records.get(a.path);if(b&&0!==b.references){if("text_append"===a.event.type)return void K(b,{...b.snapshot,text:b.snapshot.text+a.event.text,loading:!1,error:null});if("snapshot"===a.event.type)return void K(b,{...a.event.snapshot,loading:!1,error:null});b.observed=!1,b.blockedByError=!0,K(b,{...b.snapshot,loading:!1,error:"日志暂不可用"})}}requestSync(a){this.disposed||(a.syncRequested=!0,a.syncPromise||(a.syncPromise=(async()=>{for(;a.syncRequested&&!this.disposed;)a.syncRequested=!1,await this.reconcileRecord(a)})().finally(()=>{a.syncPromise=null,a.syncRequested&&!this.disposed&&this.requestSync(a)})))}async reconcileRecord(a){if(this.records.get(a.path)!==a)return;let b="ready"===this.connection.getSnapshot().status;if(!(a.references>0&&b&&!a.blockedByError)){if(a.observed&&b){let b=this.connectionEpoch;try{await this.channel.unwatch(a.path)}catch{}b===this.connectionEpoch&&(a.observed=!1)}else a.observed=!1;0!==a.references||a.observed||this.records.delete(a.path);return}if(a.observed&&!a.refreshRequested)return;a.refreshRequested=!1,K(a,{...a.snapshot,loading:!0,error:null});let c=this.connectionEpoch;try{let b=await this.channel.watch(a.path);if(this.disposed||c!==this.connectionEpoch||this.records.get(a.path)!==a)return;a.observed=!0,a.blockedByError=!1,K(a,{...b,loading:!1,error:null})}catch(b){if(c!==this.connectionEpoch||"ready"!==this.connection.getSnapshot().status){a.syncRequested=!0;return}a.observed=!1,a.blockedByError=!0,K(a,{...a.snapshot,loading:!1,error:b instanceof Error&&b.message?b.message:"读取日志失败"})}finally{(0===a.references||a.syncRequested)&&(a.syncRequested=!0)}}}function M(a){if(null!==a&&"object"==typeof a){for(let b of Object.values(a))M(b);Object.freeze(a)}return a}let N=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,O=/^[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*$/,P=new Set(["plugin","server","rocket","settings","panel","message","terminal","file","folder","bot","wrench","database","globe"]),Q=new Set(["application","composer-panel","settings-page","message-view","session-sidebar-tab"]);function R(a,b){return`${a}\u0000${b}`}function S(a,b,c){return`${a}\u0000${R(b,c)}`}function T(a,b,c,d){let e=S(a,b,c);if("session-header-item"!==b)return e;if("inline"!==d&&"overflow"!==d)throw Error("会话标题视图必须指定 inline 或 overflow");return`${e}\u0000${d}`}function U(a){return import(a)}function V(a,b){return a.workId===b.workId&&a.sessionId===b.sessionId&&a.branchId===b.branchId}function W(a){return{source:{workId:a.workId,sessionId:a.sessionId,branchId:a.branchId},cwd:a.cwd,status:a.status}}function X(a,b){let c=a.trim();if(!c||c.length>100)throw Error(`${b} must contain 1-100 characters`);return c}function Y(a){if("string"!=typeof a)throw Error("Contribution name 必须是字符串");let b=a.trim();if(!b||b.length>64||!N.test(b))throw Error("Contribution name 必须是 1-64 字符的小写 kebab-case");return b}function Z(a){if(void 0!==a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Contribution icon 无效");if("builtin"===a.type){if(2!==Object.keys(a).length||"string"!=typeof a.name||!P.has(a.name))throw Error("Contribution builtin icon 无效");return{type:"builtin",name:a.name}}if("svg"===a.type){let b="string"==typeof a.content?a.content.trim():"";if(2!==Object.keys(a).length||!b||b.length>16384)throw Error("Contribution SVG icon 无效");return{type:"svg",content:b}}throw Error("Contribution icon type 无效")}}function $(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw Error(`会话标题 ${b} 必须提供 action 或 custom 定义`);let c="action"===a.type?["type","icon","label","onSelect"]:"inline"===b?["type","load","minWidthRem"]:["type","load"];for(let d of Object.keys(a))if(!c.includes(d))throw Error(`会话标题 ${b} ${String(a.type)} 不支持字段 ${d}`);if("action"===a.type){if("string"!=typeof a.label)throw Error("会话标题 action label 必须是字符串");let b=Z(a.icon);if(!b)throw Error("会话标题 action 必须提供 icon");if("function"!=typeof a.onSelect)throw Error("会话标题 action 必须提供 onSelect()");return{type:"action",label:X(a.label,"Session Header action label"),icon:b,onSelect:a.onSelect}}if("custom"!==a.type)throw Error("会话标题表现 type 必须是 action 或 custom");if("function"!=typeof a.load)throw Error("会话标题 custom 必须提供 load()");if("inline"===b&&("number"!=typeof a.minWidthRem||!Number.isFinite(a.minWidthRem)||a.minWidthRem<=0))throw Error("会话标题 inline custom minWidthRem 必须是正数");return{type:"custom",load:a.load,..."inline"===b?{minWidthRem:a.minWidthRem}:{}}}class _{constructor(a,b=U,c=()=>void 0){this.transport=a,this.entryImporter=b,this.notifyPlugin=c,this.entryDescriptors=[],this.entryDescriptorsByPlugin=new Map,this.entryStates=new Map,this.ownersByPlugin=new Map,this.registrations=new Map,this.contributionLoadStates=new Map,this.browserDescriptors=[],this.registrySnapshot={revision:0,descriptors:this.browserDescriptors},this.messageViewResolutions=new Map,this.logHosts=new Map,this.registryListeners=new Set,this.workSessionListeners=new Set,this.connectionListeners=new Set,this.themeListeners=new Set,this.globalPluginStates={},this.workSessions=[],this.workSessionCreate=null,this.workSessionGoTo=null,this.projectPreview=null,this.terminalOpen=null,this.workSessionFilePreview=null,this.workSessionFileReveal=null,this.imageReader=null,this.connectionSnapshot={status:"disconnected",error:null},this.themeSnapshot={mode:"light"},this.refreshPromise=null,this.refreshPending=!1,this.entriesMaintaining=!1,this.entriesInitialized=!1,this.entryListError=null,this.applicationResolveController=null,this.applicationResolveEpoch=0,this.applicationVisibility=new Map,this.disposed=!1,this.unsubscribePush=a.subscribePush(a=>this.dispatchPush(a)),this.themeSnapshot="u"<typeof document?{mode:"light"}:((0,G.Is)(),Object.freeze({mode:document.documentElement.classList.contains("dark")?"dark":"light"})),this.unsubscribeTheme=()=>void 0,this.removeSystemThemeListener=()=>void 0;return}subscribeRegistry(a){return this.registryListeners.add(a),()=>this.registryListeners.delete(a)}getBrowserDescriptors(){return this.browserDescriptors}getRegisteredBrowserDescriptors(){return[...this.ownersByPlugin.entries()].sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({pluginName:a,contributions:[...b.registrations.values()].sort((a,b)=>{let c=a.kind.localeCompare(b.kind);return 0===c?a.contributionName.localeCompare(b.contributionName):c}).map(a=>structuredClone(a.descriptor))}))}getRegistrySnapshot(){return this.registrySnapshot}areEntriesInitialized(){return this.entriesInitialized}isRefreshingEntries(){return this.entriesMaintaining||null!==this.refreshPromise}setEntriesMaintaining(a){this.disposed||this.entriesMaintaining===a||(this.entriesMaintaining=a,this.publishRegistryChange())}getEntryListError(){return this.entryListError}getEntryState(a){return this.entryStates.get(a)??{status:"unloaded"}}getFailedEntries(){return[...this.entryStates.entries()].flatMap(([a,b])=>"failed"===b.status?[{pluginName:a,error:b.error}]:[])}getContributionLoadState(a,b,c,d){return this.contributionLoadStates.get(T(a,b,c,d))??{status:"unloaded"}}getMessageViewResolution(a){return this.messageViewResolutions.get(a)??null}bindWorkSessionCreate(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionCreate)throw Error("Workbench WorkSession 创建能力已经绑定");this.workSessionCreate=a;let b=!0;return()=>{b&&(b=!1,this.workSessionCreate===a&&(this.workSessionCreate=null))}}bindWorkSessionGoTo(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionGoTo)throw Error("Workbench WorkSession 前往能力已经绑定");this.workSessionGoTo=a;let b=!0;return()=>{b&&(b=!1,this.workSessionGoTo===a&&(this.workSessionGoTo=null))}}bindTerminalOpen(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if(this.terminalOpen)throw Error("终端创建能力已经绑定");return this.terminalOpen=a,()=>{this.terminalOpen===a&&(this.terminalOpen=null)}}bindProjectPreview(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if(this.projectPreview)throw Error("项目预览能力已经绑定");return this.projectPreview=a,()=>{this.projectPreview===a&&(this.projectPreview=null)}}previewProject(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if("string"!=typeof a||!a.trim())throw Error("项目预览需要有效目录");if(!this.projectPreview)throw Error("项目预览尚未准备好");this.projectPreview(a.trim())}bindWorkSessionFilePreview(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionFilePreview)throw Error("Workbench 文件预览能力已经绑定");this.workSessionFilePreview=a;let b=!0;return()=>{b&&(b=!1,this.workSessionFilePreview===a&&(this.workSessionFilePreview=null))}}bindImageReader(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.imageReader)throw Error("Workbench 图片读取能力已经绑定");return this.imageReader=a,()=>{this.imageReader===a&&(this.imageReader=null)}}bindWorkSessionFileReveal(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionFileReveal)throw Error("Workbench 文件定位能力已经绑定");this.workSessionFileReveal=a;let b=!0;return()=>{b&&(b=!1,this.workSessionFileReveal===a&&(this.workSessionFileReveal=null))}}replaceGlobalPluginStates(a){let b=M(structuredClone(a)),c=[...new Set([...Object.keys(this.globalPluginStates),...Object.keys(b)])].filter(a=>JSON.stringify(this.globalPluginStates[a]??null)!==JSON.stringify(b[a]??null));if(0!==c.length){for(let a of(this.globalPluginStates=b,c)){let b=this.ownersByPlugin.get(a);b&&this.notify(b.globalStateListeners)}this.entriesInitialized&&c.some(a=>[...this.ownersByPlugin.get(a)?.registrations.values()??[]].some(a=>"application"===a.kind&&a.resolve))&&this.scheduleApplicationResolution()}}async dispatchNotificationEvent(a,b){let c=this.entryStates.get(b.pluginName);if(c?.status!=="ready")throw Error(`插件 Browser Entry 尚未就绪:${b.pluginName}`);let d=c.runtime.owner,e=d.notificationEventListeners.get(b.name);if(!e)throw Error(`插件未注册通知事件:${b.pluginName}/${b.name}`);if(await e({notificationId:a,data:structuredClone(b.data)}),!d.active)throw Error("Browser Entry 已失效")}replaceWorkSessions(a){var b;let c=M(a.map(W));b=this.workSessions,!(b.length===c.length&&b.every((a,b)=>void 0!==c[b]&&V(a.source,c[b].source)&&a.cwd===c[b].cwd&&a.status===c[b].status))&&(this.workSessions=c,this.notify(this.workSessionListeners),this.entriesInitialized&&this.scheduleApplicationResolution())}markConnecting(){this.replaceConnection({status:"connecting",error:null})}markReady(){this.replaceConnection({status:"ready",error:null})}markDisconnected(a=null){this.setEntriesMaintaining(!1),this.replaceConnection({status:"disconnected",error:a})}async refreshEntries(){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");return this.refreshPromise?this.refreshPending=!0:(this.entriesInitialized||this.replaceEntriesInitialized(!1),this.refreshPromise=(async()=>{try{do{this.refreshPending=!1;let a=await this.transport.listBrowserEntries();if(this.disposed||this.entriesMaintaining||(await this.replaceEntries(a),this.disposed))return;this.replaceEntriesInitialized(!0),this.replaceEntryListError(null)}while(this.refreshPending&&!this.disposed)}catch(a){throw this.replaceEntriesInitialized(!0),this.replaceEntryListError(a instanceof Error?a.message:String(a)),this.rebuildRegistry(),a}})().finally(()=>{this.refreshPromise=null,this.disposed||this.publishRegistryChange()}),this.publishRegistryChange()),this.refreshPromise}retryEntry(a){return this.entryStates.get(a)?.status==="failed"&&(this.entryStates.delete(a),this.publishRegistryChange()),this.loadEntry(a).then(async a=>(await this.resolveApplications(),a))}retryContribution(a,b,c,d){let e=S(a,b,c),f=T(a,b,c,d);this.contributionLoadStates.get(f)?.status==="failed"&&(this.contributionLoadStates.delete(f),this.publishRegistryChange());let g=this.registrations.get(e);return g?this.loadContribution(g,d):Promise.reject(new E.qj({pluginName:a,contributionName:c,phase:"registration",message:"插件 Contribution 不存在"}))}async invokeSessionHeaderAction(a){let b=S(a.pluginName,"session-header-item",a.contributionName),c=this.registrations.get(b),d=c?.header?.[a.presentation];if(!c||d?.type!=="action")throw Error("会话标题 action 不存在");if(a.signal.throwIfAborted(),!c.owner.active)throw Error("Browser Entry 已失效");if(!this.workSessions.some(b=>V(b.source,a.source)))throw Error("工作会话来源已变化");let e=this.getHeaderActionScope(c,a.source,a.signal);try{if(await d.onSelect({...e}),e.signal.throwIfAborted(),!c.owner.active||this.registrations.get(b)!==c)throw Error("Browser Entry 已失效")}catch(c){let b=new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"session-header-action",message:c instanceof Error?c.message:String(c),cause:c});throw e.signal.aborted||H(()=>{throw b},`header-action:${a.contributionName}:${a.presentation}`,a.pluginName),b}}getHeaderActionScope(a,b,c){let d=a.headerActionScopes??=new WeakMap,e=d.get(c);if(e){if(!V(e.source,b))throw Error("会话标题展示来源不一致");return e}let f=a.owner,g=M(structuredClone(b)),h=new AbortController,i={...f,subscriptionDisposers:new Set,get active(){return f.active&&!h.signal.aborted}},j=()=>{for(let b of(h.abort(),d.delete(c),this.workSessionListeners.delete(k),f.subscriptionDisposers.delete(j),c.removeEventListener("abort",j),i.subscriptionDisposers))H(b,"header-action-dispose",a.pluginName);i.subscriptionDisposers.clear()},k=()=>{this.workSessions.some(a=>V(a.source,g))||j()},l={source:g,host:this.createBrowserHost(i),signal:h.signal};return d.set(c,l),this.workSessionListeners.add(k),f.subscriptionDisposers.add(j),c.addEventListener("abort",j,{once:!0}),l}async mountContribution(a){let b=S(a.pluginName,a.kind,a.contributionName),c=this.registrations.get(b);if(!c)throw new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"registration",message:"插件 Contribution 不存在"});if(c.kind!==a.target.kind)throw Error("Contribution kind 与 mount target 不一致");let d=new AbortController,e=new Promise(a=>{d.signal.addEventListener("abort",()=>a(),{once:!0})}),f=a.target;("widget"===f.kind||"session-header-item"===f.kind)&&(f={...f,source:M(structuredClone(f.source))});let g="widget"===f.kind||"session-header-item"===f.kind?f.source:null,h="session-header-item"===f.kind?f.presentation:void 0,i=()=>{g&&!this.workSessions.some(a=>V(a.source,g))&&m()};if("session-sidebar-tab"===f.kind&&f.setHeaderActions){let b=f.setHeaderActions,e=[];d.signal.addEventListener("abort",()=>{e=[],b([])},{once:!0}),f={...f,setHeaderActions:f=>{if(d.signal.aborted||!c.owner.active)return;if(!Array.isArray(f))throw Error("侧栏操作必须为数组");let g=f.map(b=>{let f=X(b.label,"Sidebar action label"),h=Z(b.icon),i=!0===b.disabled,j=!0===b.busy,k=b.onSelect;if("function"!=typeof k)throw Error("侧栏操作缺少 onSelect 回调");let l=!1;return{label:f,icon:h,disabled:i,busy:j,onSelect:()=>{d.signal.aborted||!c.owner.active||e!==g||i||j||l||(l=!0,H(async()=>{try{await k()}catch(a){throw!d.signal.aborted&&c.owner.active&&c.owner.host.notify({level:"error",title:f,description:a instanceof Error?a.message:String(a)}),a}finally{l=!1}},`sidebar-action:${f}`,a.pluginName))}}});e=g,b(g)}}}let j=Promise.resolve().then(async()=>{if(d.signal.aborted)throw Error("插件视图已关闭");let b=await this.loadContribution(c,h);if(d.signal.aborted||!c.owner.active)throw Error("插件视图已失效");let e=b.mount,g=await e({container:a.container,target:f,host:c.owner.host,signal:d.signal});if(void 0!==g&&"function"!=typeof g)throw Error("Contribution mount must return void or a disposer");return g??null}),k=null,l=()=>k||(c.owner.mounts.delete(l),a.signal?.removeEventListener("abort",m),this.workSessionListeners.delete(i),d.abort(),k=I(a.pluginName,`mount:${a.contributionName}`,async()=>{let a=await j.catch(()=>null);await a?.()})),m=()=>{l()};c.owner.mounts.add(l),g&&this.workSessionListeners.add(i),a.signal?.addEventListener("abort",m,{once:!0}),a.signal?.aborted&&m(),i();try{if(await Promise.race([j,e]),d.signal.aborted||!c.owner.active)throw Error("插件视图已失效");return l}catch(b){if(await l(),b instanceof E.qj)throw b;throw new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"mount",message:b instanceof Error?b.message:String(b),cause:b})}}async dispose(){if(this.disposed)return;this.disposed=!0,this.applicationResolveController?.abort(),this.applicationResolveController=null,this.unsubscribePush(),this.unsubscribeTheme(),this.removeSystemThemeListener();let a=[...this.ownersByPlugin.values()].reverse();for(let b of(this.ownersByPlugin.clear(),await Promise.all(a.map(a=>this.disposeEntryOwner(a))),this.entriesMaintaining=!1,this.entryStates.clear(),this.entryDescriptorsByPlugin.clear(),this.entryDescriptors=[],this.registrations.clear(),this.contributionLoadStates.clear(),this.browserDescriptors=[],this.messageViewResolutions.clear(),this.applicationVisibility.clear(),this.logHosts.values()))b.dispose();this.logHosts.clear(),this.globalPluginStates={},this.workSessionCreate=null,this.workSessionGoTo=null,this.workSessionFilePreview=null,this.workSessionFileReveal=null,this.imageReader=null,this.projectPreview=null,this.terminalOpen=null,this.registryListeners.clear(),this.workSessionListeners.clear(),this.connectionListeners.clear(),this.themeListeners.clear()}async replaceEntries(a){var b;let c=[...a].sort((a,b)=>a.pluginName.localeCompare(b.pluginName)),d=new Map;for(let a of c){if(d.has(a.pluginName))throw Error(`重复 Plugin Browser Entry:${a.pluginName}`);d.set(a.pluginName,a)}for(let[a,b]of this.entryDescriptorsByPlugin){let c=d.get(a);c?.url!==b.url&&this.disposeEntry(a)}if(this.disposed)return;for(let[a,b]of(this.entryDescriptorsByPlugin.clear(),d))this.entryDescriptorsByPlugin.set(a,b);let e=(b=this.entryDescriptors,JSON.stringify(b)!==JSON.stringify(c));this.entryDescriptors=structuredClone(c),await Promise.allSettled(c.map(a=>this.loadEntry(a.pluginName))),await this.resolveApplications(),e&&this.publishRegistryChange()}loadEntry(a){if(this.disposed)return Promise.reject(Error("Plugin Host Runtime has been disposed"));let b=this.entryDescriptorsByPlugin.get(a);if(!b)return Promise.reject(Error(`Plugin Browser Entry 不存在:${a}`));let c=this.entryStates.get(a);if(c?.status==="ready")return Promise.resolve(c.runtime);if(c?.status==="loading")return c.promise;if(c?.status==="failed")return Promise.reject(c.error);let d=this.initializeEntry(b).then(c=>(this.disposed||this.entryDescriptorsByPlugin.get(a)?.url!==b.url?c.dispose():(this.entryStates.set(a,{status:"ready",runtime:c}),this.ownersByPlugin.set(a,c.owner),this.commitRegistrations(c.owner),this.rebuildRegistry()),this.publishRegistryChange(),c),c=>{let d=c instanceof Error?c:new E.qj({pluginName:a,phase:"entry-import",message:String(c)});throw this.disposed||this.entryDescriptorsByPlugin.get(a)?.url!==b.url||(this.entryStates.set(a,{status:"failed",error:d}),this.rebuildRegistry(),this.publishRegistryChange()),d});return this.entryStates.set(a,{status:"loading",promise:d}),this.publishRegistryChange(),d}async initializeEntry(a){let b;try{b=await this.entryImporter(a.url)}catch(b){throw new E.qj({pluginName:a.pluginName,phase:"entry-import",message:b instanceof Error?b.message:"Browser Entry import 失败",cause:b})}if(this.disposed||this.entryDescriptorsByPlugin.get(a.pluginName)?.url!==a.url)throw Error("Browser Entry 已失效");if("function"!=typeof b.default)throw new E.qj({pluginName:a.pluginName,phase:"entry-factory",message:"Browser Entry 必须 default-export defineBrowserEntry(...)"});let c={descriptor:a,registrations:new Map,pushListeners:new Set,notificationEventListeners:new Map,globalStateListeners:new Set,subscriptionDisposers:new Set,mounts:new Set,disposer:null,registrationOpen:!0,active:!0},d=Object.assign(c,{host:this.createBrowserHost(c)});try{let c=b.default(this.createBrowserFacade(a.pluginName,d));if(d.registrationOpen=!1,"object"==typeof c&&null!==c&&"function"==typeof Reflect.get(c,"then"))throw H(async()=>{let b=await c;"function"==typeof b&&await I(a.pluginName,"entry-factory",async()=>{await b()})},"entry-factory",a.pluginName),Error("Browser Entry factory must register synchronously");if(void 0!==c&&"function"!=typeof c)throw Error("Browser Entry factory must return void or a disposer");d.disposer=c??null}catch(b){throw d.registrationOpen=!1,await this.disposeEntryOwner(d),new E.qj({pluginName:a.pluginName,phase:"entry-factory",message:b instanceof Error?b.message:String(b),cause:b})}return{pluginName:a.pluginName,owner:d,dispose:()=>this.disposeEntryOwner(d)}}createBrowserFacade(a,b){let c=c=>{if(!b.active||!b.registrationOpen)throw Error("Browser Entry registration phase has ended");let d=c(),e=R(d.kind,d.contributionName);if(b.registrations.has(e))throw Error(`Browser Contribution 重复:${a}/${d.kind}/${d.contributionName}`);b.registrations.set(e,d)};return{name:a,host:b.host,notifications:{onEvent:(c,d)=>{if(!b.active)throw Error("Browser Entry owner is no longer active");let e=Y(c);if(b.notificationEventListeners.has(e))throw Error(`Browser Notification Event 重复:${a}/${e}`);return b.notificationEventListeners.set(e,d),()=>{b.notificationEventListeners.get(e)===d&&b.notificationEventListeners.delete(e)}}},notify:c=>{b.active&&this.notifyPlugin(a,structuredClone(c))},registerContribution:(d,e,f)=>{c(()=>{if(!Q.has(d))throw Error(`Browser Contribution kind 无效:${String(d)}`);return this.createRegistration(a,d,e,f,b)})},registerWidget:(d,e)=>{c(()=>this.createWidgetRegistration(a,d,e,b))},registerSessionHeaderItem:(d,e)=>{c(()=>this.createHeaderRegistration(a,d,e,b))},onPush:a=>{if(!b.active)throw Error("Browser Entry owner is no longer active");return b.pushListeners.add(a),()=>{b.pushListeners.delete(a)}}}}createRegistration(a,b,c,d,e){let f=Y(c);if(!d||"object"!=typeof d||"function"!=typeof d.load)throw Error(`Browser Contribution 必须提供 load():${b}/${f}`);if("application"===b){let c=X(d.label,"Application label"),g=Z(d.icon),h=d.chrome??"host";if("host"!==h&&"none"!==h)throw Error("Application chrome 必须是 host 或 none");if(void 0!==d.resolve&&"function"!=typeof d.resolve)throw Error("Application resolve 必须是函数");return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:c,title:X(d.title??c,"Application title"),...g?{icon:g}:{},chrome:h},load:d.load,resolve:d.resolve,owner:e}}if("composer-panel"===b){let c=Z(d.icon);return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:X(d.label,"Composer Panel label"),...c?{icon:c}:{}},load:d.load,owner:e}}if("settings-page"===b){let c=Z(d.icon);return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:X(d.label,"Settings Page label"),...c?{icon:c}:{}},load:d.load,owner:e}}if("message-view"===b)return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,viewKey:function(a){if("string"!=typeof a)throw Error("Message View viewKey 必须是字符串");let b=a.trim();if(b.length<3||b.length>129||!O.test(b))throw Error("Message View viewKey 必须是 plugin-name/view-name");return b}(d.viewKey),priority:function(a){if(!Number.isSafeInteger(a))throw Error("Message View priority must be a safe integer");return a}(d.priority)},load:d.load,owner:e};let g=Z(d.icon);return{pluginName:a,kind:"session-sidebar-tab",contributionName:f,descriptor:{kind:"session-sidebar-tab",contributionName:f,label:X(d.label,"Session Sidebar Tab label"),...g?{icon:g}:{}},load:d.load,owner:e}}createWidgetRegistration(a,b,c,d){let e=Y(b);if(!c||"object"!=typeof c||"function"!=typeof c.load)throw Error("Browser Widget 必须提供 load()");let f=c.placement??"aboveEditor";if("aboveEditor"!==f&&"belowEditor"!==f)throw Error("Browser Widget placement 必须是 aboveEditor 或 belowEditor");return{pluginName:a,kind:"widget",contributionName:e,descriptor:{kind:"widget",contributionName:e,placement:f},load:c.load,owner:d}}createHeaderRegistration(a,b,c,d){let e=Y(b);if(!c||"object"!=typeof c||Array.isArray(c))throw Error("会话标题条目必须提供 inline 和 overflow");for(let a of Object.keys(c))if("inline"!==a&&"overflow"!==a)throw Error(`会话标题条目不支持顶层字段 ${a}`);let f=$(c.inline,"inline"),g=$(c.overflow,"overflow");return{pluginName:a,kind:"session-header-item",contributionName:e,descriptor:{kind:"session-header-item",contributionName:e,inline:"action"===f.type?{type:"action",icon:f.icon,label:f.label}:{type:"custom",minWidthRem:f.minWidthRem},overflow:"action"===g.type?{type:"action",icon:g.icon,label:g.label}:{type:"custom"}},header:{inline:f,overflow:g},owner:d}}commitRegistrations(a){for(let b of a.registrations.values()){let a=S(b.pluginName,b.kind,b.contributionName);if(this.registrations.has(a))throw Error(`Browser Contribution Registry 重复:${a}`);this.registrations.set(a,b)}}loadContribution(a,b){let c=S(a.pluginName,a.kind,a.contributionName),d=T(a.pluginName,a.kind,a.contributionName,b),e=b?a.header?.[b]:void 0,f=e?.type==="custom"?e.load:a.load;if(!f)return Promise.reject(Error("会话标题 action 不支持加载视图"));if(!a.owner.active||this.registrations.get(c)!==a)return Promise.reject(Error("Browser Contribution 已失效"));let g=this.contributionLoadStates.get(d);if(g?.status==="ready")return Promise.resolve(g.implementation);if(g?.status==="loading")return g.promise;if(g?.status==="failed")return Promise.reject(g.error);let h=Promise.resolve().then(f).then(b=>{if(!b||"function"!=typeof b.mount)throw Error("Lazy Contribution Module 必须导出 mount()");if(!a.owner.active||this.registrations.get(c)!==a)throw Error("Browser Contribution 已失效");return this.contributionLoadStates.set(d,{status:"ready",implementation:b}),this.publishRegistryChange(),b},a=>{throw a}).catch(b=>{let e=b instanceof Error?b:new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"contribution-load",message:String(b)});throw a.owner.active&&this.registrations.get(c)===a&&(this.contributionLoadStates.set(d,{status:"failed",error:e}),this.publishRegistryChange()),e});return this.contributionLoadStates.set(d,{status:"loading",promise:h}),this.publishRegistryChange(),h}async resolveApplications(){if(this.disposed)return;let a=new AbortController;this.applicationResolveController?.abort(),this.applicationResolveController=a;let b=++this.applicationResolveEpoch,c=[...this.registrations.values()].filter(a=>"application"===a.kind),d=new Map;if(await Promise.all(c.map(async b=>{let c=S(b.pluginName,b.kind,b.contributionName);if(!b.resolve)return void d.set(c,!0);try{let e=await b.resolve({workSessions:this.workSessions,host:b.owner.host,signal:a.signal});a.signal.aborted||d.set(c,!1!==e)}catch(e){if(a.signal.aborted)return;d.set(c,!1),console.warn("[Pi Desk][PluginHost] Application resolve 失败",{pluginName:b.pluginName,contributionName:b.contributionName,errorName:e instanceof Error?e.name:"UnknownError",message:e instanceof Error?e.message:String(e)})}})),!this.disposed&&!a.signal.aborted&&this.applicationResolveController===a&&this.applicationResolveEpoch===b){for(let[a,b]of(this.applicationVisibility.clear(),d))this.applicationVisibility.set(a,b);this.rebuildRegistry()}}scheduleApplicationResolution(){queueMicrotask(()=>{this.disposed||this.resolveApplications().catch(a=>{console.error("[Pi Desk][PluginHost] 刷新 Application 可见性失败",{errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)})})})}rebuildRegistry(){let a=[...this.ownersByPlugin.entries()].sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({pluginName:a,contributions:[...b.registrations.values()].filter(a=>"application"!==a.kind||(this.applicationVisibility.get(S(a.pluginName,a.kind,a.contributionName))??!1)).sort((a,b)=>{let c=a.kind.localeCompare(b.kind);return 0===c?a.contributionName.localeCompare(b.contributionName):c}).map(a=>structuredClone(a.descriptor))}));JSON.stringify(this.browserDescriptors)!==JSON.stringify(a)&&(this.browserDescriptors=a,this.rebuildMessageViewResolutions(),this.publishRegistryChange())}rebuildMessageViewResolutions(){this.messageViewResolutions.clear();let a=new Map;for(let b of this.browserDescriptors)for(let c of b.contributions){if("message-view"!==c.kind)continue;let d=a.get(c.viewKey)??[];d.push({pluginName:b.pluginName,descriptor:c}),a.set(c.viewKey,d)}for(let[b,c]of a){let a=Math.max(...c.map(a=>a.descriptor.priority)),d=c.filter(b=>b.descriptor.priority===a);this.messageViewResolutions.set(b,1===d.length?{status:"winner",...d[0]}:{status:"conflict",viewKey:b,candidates:d})}}disposeEntry(a){this.entryDescriptorsByPlugin.delete(a),this.entryStates.delete(a);let b=this.ownersByPlugin.get(a);this.ownersByPlugin.delete(a),b&&this.disposeEntryOwner(b),this.rebuildRegistry()}async disposeEntryOwner(a){if(!a.active)return;for(let b of(a.active=!1,a.registrationOpen=!1,a.pushListeners.clear(),a.notificationEventListeners.clear(),a.globalStateListeners.clear(),a.subscriptionDisposers))H(b,"entry-subscription-dispose",a.descriptor.pluginName);a.subscriptionDisposers.clear();let b=this.logHosts.get(a.descriptor.pluginName);for(let c of(b===a.host.logs&&(this.logHosts.delete(a.descriptor.pluginName),H(()=>b.dispose(),"logs-dispose",a.descriptor.pluginName)),a.registrations.values())){let a=S(c.pluginName,c.kind,c.contributionName);this.registrations.get(a)===c&&(this.registrations.delete(a),this.contributionLoadStates.delete(a),"session-header-item"===c.kind&&(this.contributionLoadStates.delete(`${a}\u0000inline`),this.contributionLoadStates.delete(`${a}\u0000overflow`)),this.applicationVisibility.delete(a))}let c=[...a.mounts].reverse();a.mounts.clear();let d=a.disposer;a.disposer=null,a.registrations.clear(),await Promise.all(c.map(a=>a())),d&&await I(a.descriptor.pluginName,"entry-dispose",d)}previewWorkSessionFile(a,b,c){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("string"!=typeof b||!b.trim())throw Error("文件预览需要有效路径");let d=function(a){if(void 0!==a&&(null===a||"object"!=typeof a||Array.isArray(a)))throw Error("文件预览选项无效");let b=a?.mode;if(void 0===b||"session"===b||"expanded"===b||"standalone"===b)return b??"session";throw Error("文件预览模式无效")}(c),e=this.workSessions.find(b=>V(b.source,a));if(!e)throw Error("工作会话来源已变化");let f=this.workSessionFilePreview;if(!f)throw Error("Workbench 尚未准备好预览文件");f({source:structuredClone(e.source),cwd:e.cwd,path:b.trim(),mode:d,...c?.imagePaths===void 0?{}:{imagePaths:c.imagePaths}})}async revealWorkSessionFile(a,b){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("string"!=typeof b||!b.trim())throw Error("文件定位需要有效路径");let c=this.workSessions.find(b=>V(b.source,a));if(!c)throw Error("工作会话来源已变化");let d=this.workSessionFileReveal;if(!d)throw Error("Workbench 尚未准备好定位文件");await d({source:structuredClone(c.source),cwd:c.cwd,path:b.trim()})}async readImage(a,b,c){c.throwIfAborted();let d=F._g.parse(b),e=this.workSessions.find(b=>V(b.source,a));if(!e)throw Error("工作会话来源已变化");let f=this.imageReader;if(!f)throw Error("Workbench 尚未准备好读取图片");let g=await f({source:structuredClone(e.source),cwd:e.cwd,path:d},c);if(c.throwIfAborted(),!this.workSessions.some(b=>V(b.source,a)))throw Error("工作会话来源已变化");return g}async createWorkSession(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(!a||"string"!=typeof a.cwd||!a.cwd.trim())throw Error("创建工作会话需要有效 cwd");let b=this.workSessionCreate;if(!b)throw Error("Workbench 尚未准备好创建工作会话");return W(await b(a.cwd.trim()))}async goToWorkSession(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("workId"in a){if("string"!=typeof a.workId||!a.workId.trim())throw Error("前往工作会话需要有效 workId")}else{if("string"!=typeof a.sessionId||!a.sessionId.trim())throw Error("前往工作会话需要有效 sessionId");if(void 0!==a.cwd&&("string"!=typeof a.cwd||!a.cwd.trim()))throw Error("cwd 必须是非空字符串")}let b=this.workSessionGoTo;if(!b)throw Error("Workbench 尚未准备好前往工作会话");return W(await b(a))}createBrowserHost(a){let b=a.descriptor.pluginName,c=()=>{if(!a.active||this.disposed)throw Error("Browser Entry 已失效")},d=async a=>{c();let b=await a();return c(),b},e=this.transport.createPiDeskChannel(b),g=this.transport.pi,h=(d,e,f)=>{c();let g=()=>{a.active&&H(e,f,b)},h=()=>{d.delete(g),a.subscriptionDisposers.delete(h)};return d.add(g),a.subscriptionDisposers.add(h),h},i={getSnapshot:()=>(c(),this.connectionSnapshot),subscribe:a=>h(this.connectionListeners,a,"connection")},j=this.logHosts.get(b);return j||(j=new L(this.transport.createLogChannel(b),{getSnapshot:()=>this.connectionSnapshot,subscribe:i.subscribe}),this.logHosts.set(b,j)),{settings:{getSnapshot:()=>(c(),(0,f.SJ)()),subscribe:d=>{c();let e=(0,f.ae)(()=>{a.active&&H(d,"settings",b)});return a.subscriptionDisposers.add(e),()=>{a.subscriptionDisposers.delete(e),e()}}},notify:a=>{c(),this.notifyPlugin(b,structuredClone(a))},locale:{getSnapshot:()=>(c(),(0,f.SJ)().region)},globalState:{getSnapshot:()=>(c(),this.globalPluginStates[b]??null),subscribe:b=>h(a.globalStateListeners,b,"global-state")},piDesk:{invokeGlobal:(a,b)=>d(()=>e.invokeGlobal(a,b)),invokeSession:(a,b,c)=>d(()=>e.invokeSession(a,b,c))},pi:{prompt:(a,b)=>d(()=>g.prompt(a,b)),commands:{list:a=>d(()=>g.commands.list(a)),execute:(a,b,c)=>d(()=>g.commands.execute(a,b,c))},tools:{list:a=>d(()=>g.tools.list(a))},bash:{execute:(a,b)=>d(()=>g.bash.execute(a,b)),abort:a=>d(()=>g.bash.abort(a))},interrupt:a=>d(()=>g.interrupt(a))},workSessions:{getSnapshot:()=>(c(),this.workSessions),subscribe:a=>h(this.workSessionListeners,a,"work-sessions"),create:a=>d(()=>this.createWorkSession(a)),goTo:a=>d(()=>this.goToWorkSession(a))},workSessionFiles:{preview:(a,b,d)=>{c(),this.previewWorkSessionFile(a,b,d)},reveal:(a,b)=>d(()=>this.revealWorkSessionFile(a,b)),readImage:(b,c,e)=>d(async()=>{let d=new AbortController,f=()=>d.abort();a.subscriptionDisposers.add(f);try{return await this.readImage(b,c,e?AbortSignal.any([e,d.signal]):d.signal)}finally{a.subscriptionDisposers.delete(f)}})},projects:{preview:a=>{c(),this.previewProject(a)}},terminals:{open:b=>d(async()=>{if(!b||"string"!=typeof b.cwd||!b.cwd.trim())throw Error("新建终端需要有效 cwd");let c=this.terminalOpen;if(!c)throw Error("终端创建能力尚未准备好");let d=new AbortController,e=()=>d.abort();a.subscriptionDisposers.add(e);try{await c(b.cwd,d.signal)}finally{a.subscriptionDisposers.delete(e)}})},logs:j,connection:i,theme:{getSnapshot:()=>(c(),this.themeSnapshot),subscribe:a=>h(this.themeListeners,a,"theme")}}}dispatchPush(a){let b=this.entryStates.get(a.pluginName);if(b?.status!=="ready")return;let c=b.runtime.owner;for(let b of[...c.pushListeners]){if(!c.active)break;H(()=>b(a),`push:${a.event}`,a.pluginName)}}replaceEntriesInitialized(a){this.entriesInitialized!==a&&(this.entriesInitialized=a,this.publishRegistryChange())}replaceEntryListError(a){this.entryListError!==a&&(this.entryListError=a,this.publishRegistryChange())}replaceConnection(a){(a.status!==this.connectionSnapshot.status||a.error!==this.connectionSnapshot.error)&&(this.connectionSnapshot=Object.freeze({...a}),this.notify(this.connectionListeners))}publishRegistryChange(){this.registrySnapshot={revision:this.registrySnapshot.revision+1,descriptors:this.browserDescriptors},this.notify(this.registryListeners)}notify(a){for(let b of[...a])H(b,"notify")}}var aa=c(57850),ab=c(46505),ac=c(34911),ad=c(32772),ae=c(16664),af=c(5319),ag=c(15620),ah=c(95198),ai=c(1222);function aj({clientId:a,cwd:b,onClose:c}){let{t:f}=(0,aa.Bd)("projectHistory"),[g,h]=(0,e.useState)(()=>(0,ai.N1)().maximized),i=b.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??b;return(0,d.jsx)(ae.YV,{open:!0,onOpenChange:a=>{a||c()},children:(0,d.jsxs)(ae.hA,{showCloseButton:!1,"data-testid":"project-preview-dialog",className:(0,ag.cn)("h-[min(94dvh,1080px)] w-[min(96dvw,1600px)] max-w-none gap-0 p-0",g&&"h-dvh max-h-none w-dvw rounded-none","max-sm:h-dvh max-sm:max-h-none max-sm:w-dvw max-sm:rounded-none"),children:[(0,d.jsx)(ae.uX,{className:"sr-only",children:f("previewDescription")}),(0,d.jsx)(ah.q,{clientId:a,cwd:b,refreshOnFocus:!0,onEscape:c,title:(0,d.jsx)(ae.YM,{className:"truncate",title:b,children:i}),actions:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(af.$,{size:"icon-sm",variant:"ghost",className:"max-md:hidden","aria-label":f(g?"restoreWindow":"maximizeWindow"),onClick:()=>{h(!g),(0,ai.Ms)({...(0,ai.N1)(),maximized:!g})},children:g?(0,d.jsx)(ab.A,{className:"size-4"}):(0,d.jsx)(ac.A,{className:"size-4"})}),(0,d.jsx)(af.$,{size:"icon-sm",variant:"ghost","aria-label":f("closePreview"),onClick:c,children:(0,d.jsx)(ad.A,{className:"size-4"})})]})})]})})}var ak=c(96298),al=c(52590),am=c(2719),an=c(23779);function ao({children:a}){let b=(0,am.G)(),c=(0,ak.A)(),[j]=(0,e.useState)(()=>{var a,d,e;let j,k,l=(0,an.YW)(c);return{clientId:c,...(a=(a,c)=>{b.show(c)},j="normal",d=()=>"normal"===j,k=new _({pi:{prompt:(a,b)=>l.request(g.P6.send,{source:a,mode:b.mode,text:b.text,images:(b.images??[]).map(a=>({...a}))}),commands:{list:async a=>(await l.request(z.QV.commandsList,{source:a})).commands.filter(a=>"extension"===a.source).map(({name:a,description:b})=>({name:a,description:b})),execute:async(a,b,c)=>{await l.request(z.QV.commandExecute,{source:a,command:b,...void 0===c?{}:{args:c}})}},tools:{list:async a=>(await l.request(z.QV.toolsList,{source:a})).tools},bash:{execute:(a,b)=>l.request(z.QV.bashExecute,{source:a,command:b.command,excludeFromContext:b.excludeFromContext}),abort:async a=>{await l.request(z.QV.bashAbort,{source:a})}},interrupt:async a=>{await l.request(g.P6.interrupt,{source:a})}},listBrowserEntries:async()=>{if(!d())return[];let{entries:a}=await l.request(q.list,{});return d()?a:[]},subscribePush:a=>l.subscribe(D,a),createPiDeskChannel:a=>({invokeGlobal:(b,c)=>l.request(h.OY.invoke,{pluginName:a,method:b,scope:"global",input:c}),invokeSession:(b,c,d)=>l.request(h.OY.invoke,{pluginName:a,method:c,scope:"session",source:b,input:d})}),createLogChannel:a=>({watch:async b=>(await l.request(y.watch,{pluginName:a,path:b})).snapshot,unwatch:async b=>{await l.request(y.unwatch,{pluginName:a,path:b})},subscribe:b=>l.subscribe(y.event,c=>{c.pluginName===a&&b({path:c.path,event:c.event})})})},void 0,a),{appSocket:(e=a=>{j=a},{async connect(a){k.markConnecting();try{return await l.connect(a)}catch(a){throw k.markDisconnected(a instanceof Error?a.message:"WebSocket 连接失败"),a}},async request(a,b){let c=await l.request(a,b);if(a.path!==i.kM.list.path)return c;let d=i.e4.parse(c);return e(d.appRuntime.mode),(0,f.UV)(d.appRuntime.settings),k.replaceGlobalPluginStates(d.appRuntime.plugins),k.replaceWorkSessions(d.workSessions),k.markReady(),k.refreshEntries().catch(a=>{console.error("[Pi Desk][PluginHost] 初始化 Browser Entry 失败",{errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)})}),c},subscribe:(a,b)=>l.subscribe(a,b),async waitForClose(){let a=await l.waitForClose();return k.markDisconnected(a.reason||null),a},close(){l.close()}}),pluginHost:k})}}),[k,l]=(0,e.useState)(null);return(0,e.useRef)(null),(0,d.jsx)(an.o5.Provider,{value:j,children:(0,d.jsxs)(al.Dq.Provider,{value:j.pluginHost,children:[a,k?(0,d.jsx)(aj,{clientId:j.clientId,cwd:k,onClose:()=>l(null)},k):null]})})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,9874,79686,80780,56830,35348,35985,20460],()=>b(b.s=96519));module.exports=c})();
420
+ ${j}`:"";return{error:j,copied:""!==p&&k===p,reloading:m,canReload:o,onCopy:()=>{p&&(0,cV.x)(p).then(a=>{a?l(p):d.error(c("initializationCopyFailed"))})},onReload:()=>{o&&(n(!0),b.reload(e).catch(a=>{d.error(a instanceof Error?a.message:String(a))}).finally(()=>n(!1)))}}}(b,j);(0,B.useSyncExternalStore)(z.subscribe,z.getRevision,z.getRevision);let Y=z.getWorkspace(b.workId),Z=(Y?.tabs.length??0)+ +!!Y?.activeDiff,$=(0,B.useMemo)(()=>({workId:b.workId,sessionId:b.sessionId,branchId:b.branchId}),[b.workId,b.sessionId,b.branchId]),_=(0,A.jsxs)("div",{className:"min-w-0",children:[(0,A.jsx)("p",{className:(0,W.cn)("truncate text-sm transition-colors duration-150 motion-reduce:transition-none",d?"font-semibold text-foreground":"font-medium text-muted-foreground"),title:b.projectName,children:b.projectName}),(0,A.jsx)("p",{className:"truncate text-xs text-muted-foreground","data-testid":"session-header-title",title:b.sessionTitle??T("newSession"),children:b.sessionTitle??T("newSession")})]});return(0,B.useEffect)(()=>{let a=V.current;if(!a||"completed"!==b.status)return;let c=!1,d=()=>{c||(c=!0,E(b.workId))};return a.addEventListener("pointerdown",d,{once:!0}),a.addEventListener("wheel",d,{passive:!0,once:!0}),a.addEventListener("keydown",d,{once:!0}),()=>{a.removeEventListener("pointerdown",d),a.removeEventListener("wheel",d),a.removeEventListener("keydown",d)}},[E,b.status,b.workId]),(0,A.jsxs)("section",{ref:V,className:"pi-desk-workbench-resize-interactions relative flex h-full min-h-0 min-w-0 flex-1 flex-col bg-background","data-work-id":b.workId,"data-degraded":X.error?"true":void 0,onPointerDown:()=>F(b.workId),onFocusCapture:()=>F(b.workId),children:[X.error?(0,A.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 z-20 border border-destructive"}):null,(0,A.jsx)(zI,{workSession:b,runtime:z,gitRuntime:q,mobile:y,onOpenGitBranches:I,onOpenSidebar:()=>C(b.workId),children:d=>(0,A.jsxs)("div",{className:(0,W.cn)(Cx().chatContainer,"flex h-full min-h-0 min-w-0 flex-1 flex-col"),children:[(0,A.jsxs)("header",{className:(0,W.cn)(Cx().sessionHeader,"flex min-h-14 shrink-0 items-center gap-3 px-3"),"data-testid":"session-header",children:[c&&!y?null:(0,A.jsx)(C5,{sidebarOpen:g,onToggle:S}),(0,A.jsx)("div",{className:"min-w-0 flex-1",children:d&&e?p({source:$,title:_}):_}),(0,A.jsxs)("div",{className:"-mr-1 flex shrink-0 items-center",children:[X.error?(0,A.jsx)(Cy,{error:X.error,copied:X.copied,reloading:X.reloading,canReload:X.canReload,onCopy:X.onCopy,onReload:X.onReload},`${b.sessionId}:${b.branchId}`):null,Z>0?(0,A.jsxs)(U.$,{variant:"ghost",className:Cx().headerAction,"data-testid":"session-files-entry","aria-label":T("openSessionFiles"),title:T("sessionFiles",{count:Z}),"aria-pressed":Y?.windowOpen??!1,onClick:()=>z.showWindow(b.workId),children:[(0,A.jsx)(Bm,{className:"size-4"}),(0,A.jsx)("span",{className:Cx().headerActionLabel,children:T("sessionFiles",{count:Z})})]}):null,R?(0,A.jsx)("button",{type:"button",disabled:i,"aria-label":T("unpinWorkSession",{name:b.sessionTitle??b.projectName}),title:T("unpin"),onPointerDown:a=>a.stopPropagation(),onClick:a=>{a.stopPropagation(),R(b.workId)},className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground"),children:(0,A.jsx)(al.A,{className:"size-4"})}):null]})]}),(0,A.jsx)(Cv,{active:e,visible:d&&e,workSession:b,chatRuntime:j,inputRuntime:k,onPreviewFile:D}),(0,A.jsx)("footer",{className:"bg-background pt-3","data-carousel-swipe-lock":!0,children:(0,A.jsx)(Cl,{workSession:b,chatRuntime:j,inputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,widgetsVisible:d&&e,gitRuntime:q,active:f,mobile:y,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,newSessionPending:h,newSessionDisabled:i||x,onNewSession:()=>G(b.workId),clonePending:x,cloneDisabled:i||0===b.messageCounts.total,onCloneWorkSession:()=>P(b.workId),onOpenBranchPicker:H,onOpenGitBranchPicker:I,onOpenSettings:a})})]})}),(0,A.jsx)(Bv,{children:w?(0,A.jsx)(BE,{model:w,projectName:b.projectName,sessionTitle:b.sessionTitle,mobile:y,onClose:J,onRetry:K,onSelectEntry:L,onAction:M,onConfirmRunning:N,onCancelRunning:O},"branch-picker"):null})]})}),C7=(0,B.memo)(function({position:a,workSession:b,loading:c,onExpand:d}){let{t:e}=(0,Q.Bd)("workbench"),f=b?.projectName??e("workSession"),g=b?b.sessionTitle??e("newSession"):e(c?"loading":"chooseSession"),h=`${f} \xb7 ${g}`;return(0,A.jsx)("section",{className:"relative isolate flex h-full min-h-0 min-w-0 flex-1 bg-background","data-work-id":b?.workId,children:(0,A.jsx)("button",{type:"button",title:h,"aria-label":e("expandSession",{name:h}),onClick:()=>d(a,b?.workId??null),className:"flex h-full w-full min-w-0 flex-col items-center overflow-hidden bg-background px-1 text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:z-30 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:(0,A.jsxs)("span",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-3 overflow-hidden py-3",children:[(0,A.jsx)("span",{className:(0,W.cn)(Cx().collapsedText,"max-h-[38%] text-xs leading-none text-muted-foreground"),children:f}),(0,A.jsx)("span",{className:(0,W.cn)(Cx().collapsedText,"max-h-[55%] text-xs font-semibold leading-none"),children:g})]})})})});function C8({loading:a,sidebarOpen:b,onToggleSidebar:c}){return(0,A.jsxs)("section",{className:"relative isolate flex h-full min-w-0 flex-1 overflow-hidden bg-background",children:[(0,A.jsx)("div",{className:"absolute left-3 top-3 z-20",children:(0,A.jsx)(C5,{sidebarOpen:b,onToggle:c})}),(0,A.jsx)(Bk,{variant:a?"loading":"select-session",children:a?null:(0,A.jsx)(CB,{sidebarOpen:b,onOpen:c})})]})}function C9({onOpenSettings:a,workSessions:b,primaryWorkId:c,pinnedWorkIds:d,focusedWorkId:e,sidebarOpen:f,mobile:g,loading:h,replacingWithEmptyWorkId:i,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w,branchPendingWorkId:x,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:P,onToggleSidebar:R}){let{t:S}=(0,Q.Bd)("workbench"),T=(0,B.useMemo)(()=>{let a=b.find(a=>a.workId===c)??null,e=new Set(d);return[{key:"work-session-primary",workSession:a,fixed:!1},...b.filter(a=>a.workId!==c&&e.has(a.workId)).map(a=>({key:`work-session-${a.workId}`,workSession:a,fixed:!0}))]},[d,c,b]),U=(0,B.useMemo)(()=>T.flatMap(a=>a.workSession?[{workId:a.workSession.workId,projectName:a.workSession.projectName,sessionTitle:a.workSession.sessionTitle,fixed:a.fixed}]:[]),[T]),Y=T.length,{containerRef:Z,expandedCount:$}=function(a){let b=(0,B.useRef)(null),c=+(a>0);(0,B.useRef)(c);let[d,e]=(0,B.useState)(c);return{containerRef:b,expandedCount:d}}(Y),[_,aa]=(0,B.useState)(null),ab=w?T.findIndex(a=>a.workSession?.workId===w.workId):-1,ac=ab>=0?ab:null!==_&&_>=0&&_<Y?_:null,ad=(0,B.useMemo)(()=>(function(a,b,c){let d=C4(a);if(0===d)return[];let e=Math.min(d,Math.max(1,C4(b))),f=null!==c&&Number.isInteger(c)&&c>=0&&c<d?c:null,g=Array(d).fill("expanded"),h=d-e;for(let a=d-1;a>=0&&h>0;a-=1)a!==f&&(g[a]="collapsed",h-=1);return g})(Y,$,ac),[Y,ac,$]),ae=(0,X.OG)();JSON.stringify(T.map(a=>a.key)),ad.map(a=>"expanded"===a?"e":"c").join("");let af=T[0]?.workSession??null,ag=T.reduce((a,b)=>a+ +!!b.workSession,0),ah=e??af?.workId??null,ai=h||null!==i,aj=(0,B.useCallback)((a,b)=>{aa(a),b&&E(b)},[E]);return g?0===ag?(0,A.jsx)(C8,{loading:h,sidebarOpen:f,onToggleSidebar:R}):(0,A.jsx)(C3,{items:U,activeWorkId:ah,onActiveWorkSessionChange:E,children:T.flatMap(b=>{let c=b.workSession;return c?[(0,A.jsx)(C6,{workSession:c,fixed:b.fixed,focused:1===ag||c.workId===ah,contentActive:c.workId===ah,composerActive:c.workId===ah,sidebarOpen:f,replacingWithEmpty:i===c.workId,replacementDisabled:ai,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w?.workId===c.workId?w:null,branchPending:x===c.workId,mobile:!0,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onOpenSettings:a,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:b.fixed?P:null,onToggleSidebar:R},`${c.workId}:${c.sessionId}:${c.branchId}`)]:[]})}):(0,A.jsx)(V.HK,{id:"work-session-columns",orientation:"horizontal",disableCursor:!0,elementRef:Z,groupRef:ae,className:(0,W.cn)(zc().sessionPanelGroup,"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden",!g&&"pi-desk-workbench-resize-group"),children:T.flatMap((b,c)=>{let d=b.workSession,e="collapsed"===ad[c],B=c>0&&"collapsed"===ad[c-1],Q=e&&B,U=(0,A.jsx)(V.wV,{id:b.key,minSize:e?48:300,maxSize:e?48:void 0,defaultSize:e?48:300,disabled:e,groupResizeBehavior:e?"preserve-pixel-size":"preserve-relative-size",className:(0,W.cn)("flex h-full min-h-0 min-w-0 !overflow-hidden bg-background",c>0&&"border-l"),children:(0,A.jsx)("div",{className:zc().columnContent,children:e?(0,A.jsx)(C7,{position:c,workSession:d,loading:h,onExpand:aj}):d?(0,A.jsx)(C6,{workSession:d,fixed:b.fixed,focused:1===ag||d.workId===ah,contentActive:!0,composerActive:d.workId===ah,sidebarOpen:f,replacingWithEmpty:i===d.workId,replacementDisabled:ai,chatRuntime:j,chatInputRuntime:k,renderTaskSummary:l,renderTaskMenu:m,renderPluginComposerPanel:n,renderPluginWidgets:o,renderPluginSessionHeader:p,gitRuntime:q,invokePluginMethod:r,listPiCommands:s,getChatModelContext:t,capabilityModes:u,setChatCapabilityMode:v,branchPicker:w?.workId===d.workId?w:null,branchPending:x===d.workId,mobile:g,fileRuntime:y,onOpenFileSidebar:z,onPreviewFile:C,onAcknowledgeCompleted:D,onFocusWorkSession:E,onReplaceWithEmptyWorkSession:F,onOpenBranchPicker:G,onOpenGitBranchPicker:H,onOpenSettings:a,onCloseBranchPicker:I,onRetryBranchPicker:J,onSelectBranchEntry:K,onBranchAction:L,onConfirmRunningBranch:M,onCancelRunningBranch:N,onCloneWorkSession:O,onUnpinWorkSession:b.fixed?P:null,onToggleSidebar:R},`${d.workId}:${d.sessionId}:${d.branchId}`):(0,A.jsx)(C8,{loading:h,sidebarOpen:f,onToggleSidebar:R})})},b.key);return 0===c?[U]:[(0,A.jsx)(V.WM,{withHandle:!Q,disabled:Q,"aria-label":S("resizeColumns",{left:c,right:c+1}),className:"w-0 cursor-col-resize bg-transparent aria-disabled:cursor-default"},`${T[c-1].key}-${b.key}-resize-handle`),U]})})}let Da="work-session-pin:boundary";function Db(a,b){Dd(a,b);let c=a.slice(0,b),d=a.slice(b);return c.length>0&&d.length>0?[...d,Da,...c]:[...d,...c]}function Dc(a,b,c){let d=[...a],[e]=d.splice(b,1);return e&&d.splice(c,0,e),d}function Dd(a,b){if(!Number.isInteger(b)||b<0||b>a.length)throw Error("Invalid work session pinnedCount")}function De(a,b){return a instanceof Error?a.message:b}function Df(a){return a instanceof Error&&"AbortError"===a.name}function Dg(a){return"main_running"===a.status||"background_running"===a.status}function Dh(a){return{workId:a.workId,sessionId:a.sessionId,branchId:a.branchId}}function Di({open:a,title:b,saving:c,disabled:d,error:e,onTitleChange:f,onSave:g,onClose:h}){let{t:i}=(0,Q.Bd)("workbench"),j=(0,B.useId)(),k=(0,B.useRef)(null);return(0,A.jsx)(b3.YV,{open:a,onOpenChange:a=>!a&&h(),children:(0,A.jsx)(b3.hA,{"data-testid":"work-session-rename-dialog",showCloseButton:!1,initialFocus:k,className:"max-w-sm",children:(0,A.jsxs)("form",{className:"flex flex-col gap-4 overflow-y-auto p-4",onSubmit:a=>{a.preventDefault(),g()},children:[(0,A.jsx)(b3.YM,{children:i("renameSessionTitle")}),(0,A.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,A.jsx)("label",{htmlFor:j,className:"font-medium",children:i("sessionTitleLabel")}),(0,A.jsx)(bU.p,{ref:k,id:j,value:b,disabled:c,onChange:a=>f(a.currentTarget.value),onFocus:a=>a.currentTarget.select(),onKeyDown:a=>{"Enter"===a.key&&a.nativeEvent.isComposing&&a.preventDefault()}})]}),e?(0,A.jsx)("p",{role:"alert",className:"break-words text-destructive",children:e}):null,(0,A.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,A.jsx)(U.$,{type:"button",variant:"outline",disabled:c,onClick:h,children:i("cancel",{ns:"common"})}),(0,A.jsxs)(U.$,{type:"submit",disabled:d||c||!b.trim(),"aria-busy":c,children:[c?(0,A.jsx)(R.A,{className:"size-4 animate-spin"}):null,i("save",{ns:"common"})]})]})]})})})}let Dj=["title","user"];function Dk(a){return a.length===Dj.length&&Dj.every(b=>a.includes(b))}let Dl=(0,S.A)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]),Dm=(0,S.A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),Dn=(0,S.A)("repeat-2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]),Do=(0,S.A)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var Dp=c(5701),Dq=c(91816),Dr=c(5663),Ds=c.n(Dr);function Dt(a){return{"--pi-desk-project-color":function(a){let b=a.replaceAll("\\","/").toLowerCase(),c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);let d=(c>>>0)%360;return`oklch(var(--project-color-lightness, 0.49) var(--project-color-chroma, 0.1) ${d})`}(a)}}let Du={info:{icon:"text-muted-foreground",label:"noticeInfo"},success:{icon:"text-status-success",label:"noticeSuccess"},warning:{icon:"text-status-warning",label:"noticeWarning"},error:{icon:"text-destructive",label:"noticeError"}};function Dv({level:a}){let b="size-3.5";switch(a){case"success":return(0,A.jsx)(o5.A,{className:b});case"warning":return(0,A.jsx)(cl.A,{className:b});case"error":return(0,A.jsx)(ak.A,{className:b});case"info":return(0,A.jsx)(jj.A,{className:b})}}function Dw({notification:a,latest:b,mobile:c,moreCount:d,busy:e,onConsume:f,onDismiss:g,onToggleMore:h,showDismiss:i}){let{t:j}=(0,Q.Bd)("workbench"),k=Du[a.level],l=null!==a.event;return(0,A.jsxs)("div",{"data-testid":`app-notification-${a.notificationId}`,"data-latest":b?"true":void 0,className:(0,W.cn)("group flex min-w-0 items-stretch overflow-hidden rounded-lg bg-foreground/[0.04]",b?"h-14":"min-h-14"),children:[(0,A.jsxs)("button",{type:"button",disabled:!l||e,onClick:f,"aria-label":j(l?"actionableNotice":"noticeLabel",{level:j(k.label),title:a.title}),className:"grid min-w-0 flex-1 grid-cols-[1.6rem_minmax(0,1fr)_auto] items-center gap-1.5 px-2 text-left outline-none transition-colors enabled:cursor-pointer enabled:hover:bg-foreground/8 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default",children:[(0,A.jsx)("span",{className:(0,W.cn)("grid size-6 place-items-center rounded-md",k.icon),children:(0,A.jsx)(Dv,{level:a.level})}),(0,A.jsxs)("span",{className:"min-w-0",children:[(0,A.jsx)("span",{className:"block truncate text-sm font-medium leading-5 text-foreground",children:a.title}),a.description?(0,A.jsx)("span",{className:"block truncate text-xs leading-5 text-muted-foreground",children:a.description}):null]}),!c&&b&&d>0?(0,A.jsxs)("span",{className:"px-1 text-xs tabular-nums text-muted-foreground",children:["+",d]}):null]}),c&&b&&d>0?(0,A.jsx)("button",{"data-testid":"app-notification-more",type:"button",disabled:e,onClick:h,"aria-label":j("olderNotices",{count:d}),className:"mr-1 grid size-7 shrink-0 place-items-center self-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-foreground/8 hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:opacity-50",children:(0,A.jsx)(an,{className:"size-4"})}):null,i?(0,A.jsx)("button",{type:"button",disabled:e,onClick:g,"aria-label":j("deleteNotice",{title:a.title}),title:j("dismissNotice"),className:(0,W.cn)("mr-1 grid size-7 shrink-0 place-items-center self-center rounded-md text-muted-foreground outline-none transition-[background-color,color,opacity] hover:bg-foreground/8 hover:text-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:opacity-50",!c&&"opacity-0 group-hover:opacity-100 group-focus-within:opacity-100"),children:(0,A.jsx)(al.A,{className:"size-3.5"})}):null]})}function Dx({mobile:a,notifications:b,onConsume:c,onDismiss:d}){let e=(0,B.useRef)(null),f=(0,B.useRef)(null),g=(0,B.useRef)(null),h=(0,B.useRef)(null),[i,j]=(0,B.useState)(!1),[k,l]=(0,B.useState)(null),m=b.at(-1)??null,n=b.slice(0,-1),o=n.length>0,p=i&&o,q=64+60*Math.min(n.length,5)+8,r=(0,B.useCallback)(()=>{g.current&&clearTimeout(g.current),g.current=null},[]),s=(0,B.useCallback)(()=>{h.current&&clearTimeout(h.current),h.current=null},[]),t=(0,B.useCallback)(()=>{r(),s(),o&&j(!0)},[o,s,r]),u=(0,B.useCallback)(()=>{r(),s(),j(!1)},[s,r]),v=(0,B.useCallback)(()=>{!a&&o&&(s(),r(),g.current=setTimeout(t,120))},[o,s,r,a,t]),w=(0,B.useCallback)(()=>{a||(r(),s(),h.current=setTimeout(u,180))},[s,r,u,a]),x=(0,B.useCallback)(async a=>{if(a.event&&!k){l(a.notificationId),j(!1);try{await c(a)}finally{l(null)}}},[k,c]),y=(0,B.useCallback)(async a=>{if(!k){l(a);try{await d(a)}finally{l(null)}}},[k,d]);return m?(0,A.jsx)("div",{"data-testid":"app-notification-slot",className:"relative z-20 h-16 shrink-0",children:(0,A.jsxs)("div",{ref:e,"data-testid":"app-notification-panel","data-expanded":p?"true":"false",onPointerEnter:a=>{"mouse"===a.pointerType&&v()},onPointerLeave:a=>{"mouse"===a.pointerType&&w()},onFocus:()=>{a||t()},onBlur:a=>{a.currentTarget.contains(a.relatedTarget)||w()},className:(0,W.cn)("absolute inset-x-0 bottom-0 flex max-h-[calc(100dvh-8rem)] flex-col overflow-hidden bg-sidebar text-sidebar-foreground transition-[height,box-shadow] duration-150 ease-out motion-reduce:transition-none",p&&"shadow-lg duration-200"),style:{height:p?q:64},children:[(0,A.jsx)("div",{ref:f,className:(0,W.cn)("pi-desk-chat-scrollbar absolute inset-x-0 bottom-16 top-0 space-y-1 overflow-y-auto px-2 pt-2",!p&&"invisible"),children:n.map(b=>(0,A.jsx)(Dw,{notification:b,latest:!1,mobile:a,moreCount:0,busy:null!==k,onConsume:()=>void x(b),onDismiss:()=>void y(b.notificationId),onToggleMore:()=>void 0,showDismiss:!0},b.notificationId))}),(0,A.jsx)("div",{className:"absolute inset-x-0 bottom-0 h-16 px-2 py-1",children:(0,A.jsx)(Dw,{notification:m,latest:!0,mobile:a,moreCount:n.length,busy:null!==k,onConsume:()=>void x(m),onDismiss:()=>void y(m.notificationId),onToggleMore:()=>j(a=>!a),showDismiss:!a||0===n.length||p})})]})}):null}function Dy(a,b){return Math.max(0,Math.floor((b-a)/6e4))}let Dz=null;function DA(a,b){let c=b.formatToParts(a),d=a=>Number(c.find(b=>b.type===a)?.value);return Date.UTC(d("year"),d("month")-1,d("day"))}var DB=c(48662),DC=c.n(DB);function DD(a,b){return`plugin:${a}:${b}`}let DE=[[5,3],[11,3],[5,8],[11,8],[5,13],[11,13]],DF=(0,W.cn)((0,U.r)({variant:"ghost"}),DC().sidebarAction,"relative h-[3.25rem] max-w-24 min-w-0 flex-1 flex-col gap-1 whitespace-normal px-1 text-xs font-normal text-muted-foreground"),DG=(0,U.r)({variant:"ghost",size:"icon"}),DH=(0,W.cn)((0,U.r)({variant:"ghost",size:"icon"}),DC().sidebarAction,"text-muted-foreground");function DI({items:a,appearance:b,label:c,className:d}){let{t:e}=(0,Q.Bd)("workbench"),f="action"===b&&a.length>3?a.slice(2):[],g=f.length>0?a.slice(0,2):a;return(0,A.jsxs)("div",{className:(0,W.cn)("flex min-w-0 items-center gap-0",d),role:"group","aria-label":c,children:[g.map(a=>{var c,d;return(0,A.jsx)("button",{"data-testid":a.testId,type:"button",disabled:a.disabled,"aria-pressed":a.pressed,"aria-busy":a.busy||void 0,"aria-label":"mode"===b?e("showSidebarMode",{name:a.label}):a.label,title:a.label,onClick:a.onSelect,className:(c=!0===a.pressed,d=!0===a.busy,"mode"===b?(0,W.cn)(DG,c?"bg-accent text-accent-foreground":(0,W.cn)(DC().sidebarAction,"text-muted-foreground")):(0,W.cn)(DH,c&&"bg-muted text-foreground",d?"disabled:cursor-wait":"disabled:cursor-not-allowed")),children:(0,A.jsx)("span",{className:(0,W.cn)("flex shrink-0","mode"===b?"[&_svg]:size-5":"[&_svg]:size-4"),children:a.icon})},a.key)}),f.length>0?(0,A.jsxs)(bq,{children:[(0,A.jsx)(bs,{render:(0,A.jsx)("button",{type:"button","aria-label":c,title:c,className:DH,children:(0,A.jsx)(an,{className:"size-4"})})}),(0,A.jsx)(bt,{align:"end",children:f.map(a=>(0,A.jsxs)(bw,{disabled:a.disabled,onClick:a.onSelect,children:[(0,A.jsx)("span",{className:"shrink-0 [&_svg]:size-4",children:a.icon}),a.label]},a.key))})]}):null]})}function DJ({modeItems:a,actionItems:b}){let{t:c}=(0,Q.Bd)("workbench");return(0,A.jsxs)("header",{className:"flex min-h-12 shrink-0 items-center gap-2 px-2",children:[(0,A.jsx)(DI,{items:a,appearance:"mode",label:c("sidebarContents"),className:"max-w-full overflow-x-auto rounded-lg p-0.5 dark:bg-muted"}),b.length>0?(0,A.jsx)(DI,{items:b,appearance:"action",label:c("sidebarActions"),className:"ml-auto shrink-0"}):null]})}function DK(){return(0,A.jsx)("svg",{className:"block size-full",viewBox:"0 0 16 16","aria-hidden":"true",children:DE.map(([a,b])=>(0,A.jsx)("circle",{cx:a,cy:b,r:"1.15",fill:"currentColor"},`${a}-${b}`))})}let DL=(0,B.memo)(function({workSession:a,mobile:b,selected:c,pinned:d,deleting:e,disabled:f,ordering:g,now:h,onSelect:i,onTogglePin:j,onDelete:k,onRename:l,syncing:m,onReloadChat:n}){var o,p;let q=(0,B.useRef)(!1),r=(0,B.useRef)(""),s=f||g,{attributes:t,listeners:u,setNodeRef:v,setActivatorNodeRef:w,transform:x,transition:y,isDragging:z}=nz({id:a.workId,disabled:s}),C=(0,bG.G)(),{t:D}=(0,Q.Bd)("workbench"),{locale:E,timeZone:F}=(0,cu.i)(),G=D(function(a){switch(a.status){case"main_running":return"mainRunning";case"background_running":return"backgroundRunning";case"completed":return"completedUnread";case"idle":return"idle"}}(a)),H=a.sessionTitle??D("newSession"),I=`${a.messageCounts.user}/${a.messageCounts.total}`,J=function(a,b,c="en",d="UTC"){let e=function(a,b){if(null===a||null===b)return"old";let c=Dy(a,b);return c<5?"fresh":c<60?"recent":"old"}(a,b);if(null===a)return{compact:"--",title:"en"===c?"No messages yet":"暂无消息时间",tone:e};let f=function(a,b){if(Dz?.locale===a&&Dz.timeZone===b)return Dz;let c="en"===a?"en-US":"zh-CN";return Dz={locale:a,timeZone:b,title:new Intl.DateTimeFormat(c,{timeZone:b,timeZoneName:"shortOffset",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),dateKey:new Intl.DateTimeFormat("en-US",{timeZone:b,year:"numeric",month:"numeric",day:"numeric"}),compact:new Intl.DateTimeFormat(c,{timeZone:b,month:"short",day:"numeric"})}}(c,d),g=f.title.format(a);if(null===b)return{compact:g,title:g,tone:e};let h=Dy(a,b);if(h<1)return{compact:"en"===c?"Just now":"刚刚",title:g,tone:e};if(h<60)return{compact:"en"===c?`${h} min ago`:`${h} 分钟前`,title:g,tone:e};let i=Math.floor(h/60);if(i<24)return{compact:"en"===c?`${i} hr ago`:`${i} 小时前`,title:g,tone:e};let j=(DA(b,f.dateKey)-DA(a,f.dateKey))/864e5;return 1===j?{compact:"en"===c?"Yesterday":"昨天",title:g,tone:e}:2===j?{compact:"en"===c?"2 days ago":"前天",title:g,tone:e}:{compact:f.compact.format(a),title:g,tone:e}}(a.lastMessageUpdatedAt,h,E,F),K="main_running"===a.status||"background_running"===a.status,L=(o=a.cwd,{className:Ds().surface,style:Dt(o)}),M=(p=a.cwd,{className:Ds().identity,style:Dt(p)}),N=x?`translate3d(${x.x}px, ${x.y}px, 0)`:void 0,O=(0,B.useCallback)(()=>i(a.workId),[i,a.workId]),P=(0,B.useCallback)(()=>j(a.workId),[j,a.workId]),S=(0,B.useCallback)(()=>k(a.workId),[k,a.workId]),T=(0,B.useCallback)(()=>{(0,cV.x)(a.cwd).then(a=>{a?C.success(D("copiedProjectPath")):C.error(D("copyProjectPathFailed"))})},[C,a.cwd,D]),V=(0,A.jsxs)("div",{ref:v,"data-testid":`work-session-row-${a.workId}`,"data-dragging":z?"true":void 0,role:"button",tabIndex:0,"aria-pressed":c,onClick:O,onKeyDown:a=>{a.target===a.currentTarget&&("Enter"===a.key||" "===a.key)&&(a.preventDefault(),O())},className:(0,W.cn)(L.className,DC().sessionRow,!b&&DC().desktopRow,"grid min-h-15 min-w-0 cursor-pointer grid-cols-[1.75rem_minmax(0,1fr)] items-center rounded-lg border border-transparent px-1 py-0.5 outline-none transition-[background-color,opacity] duration-150 ease-out focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",c?"text-accent-foreground":"hover:text-foreground","completed"===a.status&&"border-[var(--pi-desk-project-color)]",z&&"cursor-grabbing opacity-30"),style:{...L.style,transform:N,transition:y},children:[K?(0,A.jsx)("svg",{"aria-hidden":"true",focusable:"false","data-testid":"work-session-running-border",className:DC().runningBorder,children:(0,A.jsx)("rect",{x:"0.5",y:"0.5"})}):null,(0,A.jsx)("button",{ref:w,"data-testid":`work-session-drag-${a.workId}`,type:"button",...t,...u,onTouchStart:a=>{u?.onTouchStart?.(a),a.stopPropagation()},onContextMenu:a=>{a.preventDefault(),a.stopPropagation()},onClick:a=>a.stopPropagation(),disabled:s,"aria-label":D("dragSession",{name:H}),title:`${G} \xb7 ${D("dragOrder")}`,className:(0,W.cn)(M.className,"flex size-7 touch-none cursor-grab items-center justify-center outline-none transition-[color,filter] hover:brightness-125 active:cursor-grabbing focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none",f&&"opacity-50"),children:(0,A.jsx)("span",{className:"size-4",children:(0,A.jsx)(DK,{})})}),(0,A.jsxs)("div",{className:"min-w-0 py-0.5",children:[(0,A.jsx)("span",{className:"sr-only",children:G}),(0,A.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-1",children:[(0,A.jsx)("p",{className:(0,W.cn)(M.className,"truncate text-xs font-medium"),title:a.projectName,children:a.projectName}),(0,A.jsxs)("span",{className:(0,W.cn)(DC().rowMetadata,"flex shrink-0 items-center gap-1 whitespace-nowrap text-xs leading-4 text-muted-foreground"),title:D("sessionMessages",{count:I,time:J.title}),children:[(0,A.jsx)("span",{children:I}),(0,A.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,A.jsx)("span",{className:(0,W.cn)("transition-colors","fresh"===J.tone&&"dark:text-sidebar-primary"),children:J.compact})]})]}),(0,A.jsxs)("div",{className:"relative flex min-h-7 min-w-0 items-center",children:[(0,A.jsx)("p",{className:(0,W.cn)(DC().rowTitle,"min-w-0 flex-1 truncate pr-1 text-sm",c?"font-semibold":"font-medium"),title:H,children:H}),(0,A.jsxs)("div",{className:(0,W.cn)(DC().rowActions,"flex shrink-0 items-center"),children:[(0,A.jsx)("button",{"data-testid":`work-session-pin-${a.workId}`,type:"button",onClick:a=>{a.stopPropagation(),P()},disabled:s,"aria-label":D(d?"unpinSession":"pinSession",{name:H}),title:D(d?"unpin":"pin"),className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground",d&&M.className),children:d?(0,A.jsx)(Dl,{className:"size-4"}):(0,A.jsx)(kK,{className:"size-4"})}),(0,A.jsx)("button",{"data-testid":`work-session-delete-${a.workId}`,type:"button",disabled:s||e,onClick:a=>{a.stopPropagation(),S()},"aria-label":D("deleteSession",{name:H}),title:D("deleteSessionTitle"),className:(0,W.cn)((0,U.r)({variant:"ghost",size:"icon-sm"}),"text-muted-foreground hover:bg-destructive/10 hover:text-destructive"),children:(0,A.jsx)(bJ,{className:"size-4"})})]})]})]})]});return(0,A.jsxs)(Dq.tz,{onOpenChange:(a,b)=>{a&&("touch"===r.current||b.event.type.startsWith("touch"))&&(q.current=!0)},children:[(0,A.jsx)(Dq.Rc,{render:V,onPointerDown:a=>{r.current=a.pointerType,q.current=!1},onTouchEndCapture:a=>{q.current&&a.cancelable&&a.preventDefault()},onClickCapture:a=>{q.current&&(a.preventDefault(),a.stopPropagation(),q.current=!1)},onKeyDownCapture:a=>{if(a.target!==a.currentTarget||a.nativeEvent.isComposing||(r.current="keyboard",q.current=!1,"ContextMenu"!==a.key&&!("F10"===a.key&&a.shiftKey)))return;a.preventDefault(),a.stopPropagation();let b=a.currentTarget.getBoundingClientRect();a.currentTarget.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,button:2,clientX:b.left+b.width/2,clientY:b.top+b.height/2}))}}),(0,A.jsxs)(Dq.Ip,{children:[(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-rename-${a.workId}`,disabled:s||e,onClick:()=>l(a),children:[(0,A.jsx)(Dm,{}),D("renameSessionTitle")]}),(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-reload-chat-${a.workId}`,disabled:s||e||m,onClick:()=>n(a),children:[m?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),D("reloadChatData")]}),(0,A.jsxs)(Dq.kt,{"data-testid":`work-session-copy-project-path-${a.workId}`,onClick:T,children:[(0,A.jsx)(bI.A,{}),D("copyProjectPath")]})]})]})});function DM({id:a,label:b}){let{setNodeRef:c,transform:d,transition:e}=nz({id:a,disabled:{draggable:!0}}),f=d?`translate3d(${d.x}px, ${d.y}px, 0) scaleX(${d.scaleX??1}) scaleY(${d.scaleY??1})`:void 0;return(0,A.jsxs)("div",{ref:c,"data-testid":a,"aria-hidden":"true",className:"pointer-events-none flex h-5 items-center gap-2 px-1 text-xs text-muted-foreground",style:{transform:f,transition:e},children:[(0,A.jsx)("span",{className:"h-px flex-1 bg-border/75"}),(0,A.jsx)("span",{children:b}),(0,A.jsx)("span",{className:"h-px flex-1 bg-border/75"})]})}let DN=(0,B.memo)(function({mode:a,mobile:b,fileBrowser:c,pluginTabContent:d,pluginHeaderActions:e=[],pluginSessionTabs:f,fileRefreshLoading:g,canBrowseFiles:h,workSessions:i,focusedWorkId:j,pinnedCount:k,ordering:l,deletingWorkId:m,canReplace:n,disabled:o,pluginApplications:p,settingsAttention:q,notifications:r,onConsumeNotification:s,onDismissNotification:t,onModeChange:u,onRefreshFiles:v,onPreviewProject:w,onPreviewProjectWindow:x,onOpenTerminal:y,onCreate:z,onReplace:C,onSettings:D,onOpenPluginApplication:E,onSelect:F,onTogglePin:G,onDelete:H,onRename:I,syncingWorkIds:J,onReloadChat:K,onArrangementChange:L}){let{t:M}=(0,Q.Bd)("workbench"),[N,O]=(0,B.useState)(null),P=(0,B.useRef)(null);(0,B.useRef)(3);let[S,U]=(0,B.useState)(3),V=mg(mf(mU,{activationConstraint:{distance:6}}),mf(mW,{activationConstraint:{delay:250,tolerance:8}}),mf(mN,{coordinateGetter:nC})),X=[{key:"sessions",label:M("sidebarSessions"),icon:(0,A.jsx)(A9,{}),pressed:"sessions"===a,testId:"sidebar-mode-sessions",onSelect:()=>u("sessions")},{key:"files",label:M("sidebarFiles"),icon:(0,A.jsx)(ji.A,{}),pressed:"files"===a,testId:"sidebar-mode-files",onSelect:()=>u("files")},...f.map(b=>{let c=DD(b.pluginName,b.contributionName);return{key:`${b.pluginName}:${b.contributionName}`,label:b.label,icon:(0,A.jsx)(ck,{icon:b.icon}),disabled:!h,pressed:a===c,onSelect:()=>u(c)}})],Y="sessions"===a?[{key:"replace",label:M("sidebarReplaceSession"),disabled:o||!n,busy:o,testId:"sidebar-replace-work-session",icon:(0,A.jsx)(Dn,{}),onSelect:C},{key:"create",label:M("createSession"),disabled:o,busy:o,testId:"sidebar-create-work-session",icon:(0,A.jsx)(am,{}),onSelect:z}]:"files"===a?[{key:"preview-project",label:M("projectPreview"),disabled:!h,icon:(0,A.jsx)(Do,{}),testId:"project-preview-open",onSelect:w},{key:"preview-project-window",label:M("projectPreviewWindow"),disabled:!h,icon:(0,A.jsx)(q6,{}),testId:"project-preview-window-open",onSelect:x},{key:"new-terminal",label:M("newTerminal"),disabled:o,icon:(0,A.jsx)(T,{}),testId:"project-files-terminal-open",onSelect:y},{key:"refresh-files",label:M("refreshFiles"),disabled:!h||g,icon:g?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(bK.A,{}),busy:g,testId:"project-files-refresh",onSelect:v}]:e.map((a,b)=>({key:String(b),label:a.label,icon:a.busy?(0,A.jsx)(R.A,{className:"animate-spin"}):(0,A.jsx)(ck,{icon:a.icon}),disabled:a.disabled||a.busy,busy:a.busy,onSelect:()=>{a.onSelect()}})),Z=(0,B.useMemo)(()=>i.map(a=>a.workId),[i]),$=(0,B.useMemo)(()=>Db(Z,k),[k,Z]),_=(0,B.useMemo)(()=>new Map(i.map(a=>[a.workId,a])),[i]),aa=(0,B.useMemo)(()=>new Set(Z.slice(0,k)),[k,Z]),{visiblePluginApplications:ab,overflowPluginApplications:ac,shortcutRowItemCounts:ad}=(0,B.useMemo)(()=>{var a;let c,d,e,f,g,h,i,j=b?2:3,k=(a=p.length,g=Math.ceil((f=(e=(d=a+1>(c=S*j))?Math.max(0,c-2):a)+1+ +!!d)/S),h=Math.floor(f/g),i=f%g,{visibleApplicationCount:e,rowItemCounts:Array.from({length:g},(a,b)=>h+ +(b<i))});return{visiblePluginApplications:p.slice(0,k.visibleApplicationCount),overflowPluginApplications:p.slice(k.visibleApplicationCount),shortcutRowItemCounts:k.rowItemCounts}},[b,p,S]),ae=(0,B.useCallback)(a=>{if(l||!a.over||a.active.id===a.over.id)return;let b=String(a.active.id),c=function(a,b,c,d){if(Dd(a,b),c===d||c===Da)return null;let e=Db(a,b),f=e.indexOf(c),g=e.indexOf(d);if(f<0||g<0)return null;if(0>e.indexOf(Da))return{workIds:Dc(e,f,g),pinnedCount:b};let h=a.indexOf(c)<b,i=d===Da?function(a,b,c){let d=[...a],[e]=d.splice(b,1);if(!e)return d;let f=d.indexOf(Da);return f<0?[...a]:(d.splice(c?f:f+1,0,e),d)}(e,f,h):Dc(e,f,g),j=i.indexOf(Da);if(j<0)return null;let k=i.slice(0,j),l=i.slice(j+1),m=[...l,...k];return m.length!==a.length||new Set(m).size!==a.length?null:{workIds:m,pinnedCount:l.length}}(Z,k,b,String(a.over.id));c&&L(c,b)},[L,l,k,Z]),af=$.map(a=>{if(a===Da)return(0,A.jsx)(DM,{id:a,label:M("pinnedBelow")},a);let c=_.get(a);return c?(0,A.jsx)(DL,{workSession:c,mobile:b,selected:c.workId===j,pinned:aa.has(c.workId),deleting:m===c.workId,disabled:o,ordering:l,now:N,onSelect:F,onTogglePin:G,onDelete:H,onRename:I,syncing:J.includes(c.workId),onReloadChat:K},c.workId):null}),ag=[(0,A.jsxs)("button",{type:"button",title:M("settings"),"aria-label":M("error"===q?"settingsWarning":"settings"),onClick:D,className:DF,children:[(0,A.jsx)(b9,{className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full truncate text-center",children:M("settings")}),q?(0,A.jsx)("span",{"aria-hidden":"true",className:(0,W.cn)("absolute right-1.5 top-1.5 size-2 rounded-full ring-2 ring-sidebar","error"===q?"bg-destructive":"bg-primary")}):null]},"settings"),...ab.map(a=>(0,A.jsxs)("button",{type:"button",disabled:o,title:a.label,onClick:()=>E(a),className:DF,children:[(0,A.jsx)(ck,{icon:a.icon,className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full line-clamp-2 break-words text-center leading-4",children:a.label})]},`${a.pluginName}:${a.contributionName}`))];ac.length>0&&ag.push((0,A.jsxs)(bq,{children:[(0,A.jsxs)(bs,{render:(0,A.jsx)("button",{type:"button",disabled:o,title:M("more"),"aria-label":M("moreShortcuts"),className:DF}),children:[(0,A.jsx)(an,{className:"size-5 shrink-0"}),(0,A.jsx)("span",{className:"w-full truncate text-center",children:M("more")})]}),(0,A.jsx)(bt,{align:"end",side:"top",className:"w-56",children:ac.map(a=>(0,A.jsxs)(bw,{disabled:o,onClick:()=>E(a),className:"py-2",children:[(0,A.jsx)(ck,{icon:a.icon,className:"size-4"}),(0,A.jsx)("span",{className:"min-w-0 truncate",children:a.label})]},`${a.pluginName}:${a.contributionName}`))})]},"more"));let ah=ad.map((a,b)=>{let c=ad.slice(0,b).reduce((a,b)=>a+b,0);return(0,A.jsx)("div",{className:"flex justify-evenly",children:ag.slice(c,c+a)},`shortcut-row:${c}`)});return(0,A.jsxs)("aside",{className:"flex h-full w-full min-w-0 flex-col bg-sidebar text-sidebar-foreground",children:[(0,A.jsx)(DJ,{modeItems:X,actionItems:Y}),(0,A.jsx)(Dp.V,{"data-testid":"work-session-list",className:(0,W.cn)("min-h-0 flex-1","sessions"!==a&&"hidden"),viewportClassName:"p-2 data-[has-overflow-y]:pr-4",children:0===i.length?(0,A.jsx)("p",{className:"px-2 py-5 text-center text-sm leading-6 text-muted-foreground",children:M("noSessions")}):(0,A.jsx)(nh,{sensors:V,collisionDetection:mo,onDragEnd:ae,children:(0,A.jsx)(ns,{items:$,strategy:np,children:(0,A.jsx)("div",{className:"flex flex-col gap-1",children:af})})})}),(0,A.jsx)("div",{className:(0,W.cn)("min-h-0 flex-1 overflow-hidden","files"!==a&&"hidden"),children:c??(0,A.jsx)("div",{className:"flex h-full items-center justify-center p-5 text-center text-sm text-muted-foreground",children:M("selectSessionFirst")})}),a.startsWith("plugin:")?(0,A.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:d}):null,(0,A.jsx)(Dx,{mobile:b,notifications:r,onConsume:s,onDismiss:t}),(0,A.jsx)("footer",{"data-testid":"sidebar-shortcuts",className:"shrink-0 px-2 py-1.5","aria-label":M("shortcuts"),children:(0,A.jsx)("div",{ref:P,className:"flex flex-col gap-1",children:ah})})]})});DN.displayName="L2WorkSessionSidebar";let DO={primaryWorkId:null},DP={mode:"normal",notifications:[],plugins:{},capabilityModes:{},settings:{region:{locale:"en",timeZone:"UTC"}}};function DQ(a){let b=window.matchMedia("(max-width: 1023px)");return b.addEventListener("change",a),()=>b.removeEventListener("change",a)}function DR(){return window.matchMedia("(max-width: 1023px)").matches}function DS(a,b){return a instanceof Error?a.message:b}function DT(a){let b=lx.N$.safeParse(a);return b.success?b.data.directories:null}function DU(a){let b=lx.rn.safeParse(a);return b.success?b.data:null}function DV({render:a,input:b}){return a(b)}function DW({onTerminalReady:a,onTerminalDisconnected:b,onOpenTerminal:c,onOpenProjectPreviewWindow:d,renderTerminalWorkspace:e,listPluginManagement:f,subscribePluginManagementChanges:g,onTaskCenterStart:h,onTaskCenterDispose:i,onTaskCenterReconcileWorkSessions:j,onTaskCenterDisconnected:k,onTaskCenterReconnected:l,renderPluginApplication:m,renderPluginSessionSidebarTab:n,renderSettings:o,renderTaskSummary:p,renderTaskMenu:q,renderPluginComposerPanel:r,renderPluginWidgets:s,renderPluginSessionHeader:t}){let{t:u}=(0,Q.Bd)("workbench"),{clientId:v,appSocket:w}=(0,bN.gM)(),x=(0,bG.G)(),y=(0,bF.t4)(),z=(0,bF.So)(),C=(0,B.useMemo)(()=>(function(a,b){async function c(b,d,e,f="POST"){let g=await fetch(b,{method:f,..."GET"===f?{cache:"no-store"}:{},headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},...void 0===d?{}:{body:JSON.stringify(d)},...e?{signal:e}:{}}),h=await g.json();if(!g.ok||0!==h.code||null===h.data)throw Error(h.msg?(0,bS.B)(h):"请求失败");return h.data}return{async readServerVersion(a){let b=await c("/api/health",void 0,a,"GET");return ze.parse(b).version},getChatMessageDetail:a=>c("/api/chat/messages/get",a),getChatModelContext:a=>c("/api/chat/context/get",a),getChatImage:a=>c("/api/chat/images/get",a),listModels:a=>c("/api/pi/models/list",a),listPiCommands:a=>b.request(zi.QV.commandsList,a),listPiTools:a=>b.request(zi.QV.toolsList,a),sendChat:a=>b.request(zf.P6.send,a),async interruptChat(a){await b.request(zf.P6.interrupt,a)},restoreChatQueue:a=>b.request(zf.P6.queueRestore,a),async setChatModel(a){await b.request(zf.P6.modelSet,a)},async setChatCapabilityMode(a){await b.request(zf.P6.capabilityModeSet,a)},invokePluginMethod:a=>b.request(zg.OY.invoke,a),listWorkSessions:()=>b.request(zh.kM.list,{}),async applyAppRuntimeUpdate(a){await b.request(kk.apply,a)},sortWorkSessions:a=>c("/api/work-sessions/sort",a),deleteWorkSession:a=>c("/api/work-sessions/del",{workId:a}),async renameWorkSession(a){await c("/api/work-sessions/rename",a)},async listDirectories(a){let b=await c("/api/pi/directories/list",{forceRefresh:a});return lE(b),b},async listIgnoredDirectories(a){let b=await c("/api/pi/directory-ignores/list",{forceRefresh:a});return lC(),lz=b,lD("pi-desk:ignored-pi-directories",b),b},async replaceDirectoryIgnore(a){await c("/api/pi/directory-ignores/replace",a)},async listDirectoryEntries(a){let b=await c("/api/pi/directory-entries/list",{cwd:a});return!function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b=a.cwd;if("string"==typeof b||null===b)return b}(a);if(void 0===b)return;let c=lB(b);for(lA.delete(c),lA.set(c,a);lA.size>64;){let a=lA.keys().next().value;if(void 0===a)break;lA.delete(a)}lD("pi-desk:pi-directory-entries",{entries:Object.fromEntries(lA)})}(b),b},listSessionHistory:(a,b)=>c("/api/pi/sessions/list",a,b),listSessionUserMessages:(a,b)=>c("/api/pi/session-user-messages/list",a,b),createWorkSession:a=>c("/api/work-sessions/add",a),replaceWorkSession:a=>c("/api/work-sessions/replace",a),getWorkSessionTree:(a,b)=>c("/api/work-session-tree/get",a,b),getWorkSessionTreeEntry:(a,b)=>c("/api/work-session-tree-entry/get",a,b),branchWorkSession:a=>c("/api/work-sessions/branch",a),async acknowledgeCompleted(a){await b.request(zh.kM.acknowledgeCompleted,{workId:a})},async readWorkSessionUpdates(c,d,e,f){let g=b.subscribe(zh.kM.update,e),h=b.subscribe(kk.update,f),i=()=>void 0,j=new Promise(a=>{let b=()=>a({code:1e3,reason:"页面业务已卸载"});c.addEventListener("abort",b,{once:!0}),i=()=>c.removeEventListener("abort",b)});try{let a=await b.connect(c);if(c.aborted)return await j;let e=await b.request(zh.kM.list,{});if(c.aborted)return await j;await d(e,a);let f=await Promise.race([b.waitForClose(),j]);return c.aborted||f.code!==F.Sp||window.location.replace("/login"),f}catch(b){if(!c.aborted){let b=await fetch("/api/auth-settings/get",{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:"{}",signal:c}).catch(()=>null);b?.status===401&&window.location.replace("/login")}throw b}finally{i(),h(),g()}}}})(v,w),[w,v]);(0,B.useMemo)(()=>{var a,b;let c,d,e;return a=C.readServerVersion,b=()=>{window.location.reload()},c=!1,d=null,e=!1,async(f,g,h)=>{if(g.aborted)return;let i=c&&f;if(c=!0,!i||e)return;d?.abort();let j=new AbortController;d=j;let k=()=>j.abort();g.addEventListener("abort",k,{once:!0}),h.then(k,k);let l=setTimeout(k,5e3);try{let c=await a(j.signal);if(j.signal.aborted||!c||c===jk||e)return;e=!0,b()}catch(a){j.signal.aborted||console.warn("[Pi Desk][VersionRefresh] 重连版本检查失败,保留当前页面",{message:a instanceof Error?a.message:String(a)})}finally{clearTimeout(l),g.removeEventListener("abort",k),d===j&&(d=null)}}},[C]);let D=(0,B.useRef)([]),E=(0,B.useRef)(0),G=(0,B.useRef)(DP),H=(0,B.useRef)(!1),I=(0,B.useRef)(null),J=(0,B.useRef)(0),K=(0,B.useRef)(!0),L=(0,B.useRef)(new Set),M=(0,B.useRef)(new Set),N=(0,B.useSyncExternalStore)(DQ,DR,()=>!0),O=(0,B.useSyncExternalStore)(kT,kR,kR),P=(0,B.useMemo)(()=>({list:(a,b)=>(0,zK.QL)(v,y2.Xe,y6.parse(a),b),search:(a,b)=>(0,zK.QL)(v,y2.fg,y7.parse(a),b),get:(a,b)=>(0,zK.QL)(v,y2.ZI,za.parse(a),b),reveal:a=>(0,zK.QL)(v,y2.Ot,y8.parse(a))}),[v]),R=(0,B.useMemo)(()=>(function(a){async function b(b,c,d,e){let f=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(c),signal:e}),g=await f.json();if(!f.ok||0!==g.code||null===g.data)throw Error(g.msg?(0,bS.B)(g):"Git 请求失败");return d.parse(g.data)}return{getHeads:(b,c)=>(0,zK.QL)(a,y2._X,b,c),get:(b,c)=>(0,zK.QL)(a,y2.p0,{...zW.parse(b),refresh:!0},c),listBranches:async(b,c)=>{let{head:d,recent:e,local:f,remote:g}=await (0,zK.QL)(a,y2.ry,z_.parse(b),c);return{head:d,recent:e,local:f,remote:g}},replaceBranch:(a,c)=>b("/api/work-session-git-branch/replace",z1.parse(a),z3,c),addBranch:(a,c)=>b("/api/work-session-git-branch/add",z2.parse(a),z3,c),getDiff:async(b,c)=>{let d=await (0,zK.QL)(a,y2.OC,z4.parse(b),c);return"metadata"===d.kind?{kind:"binary"}:d}}})(v),[v]),[S]=(0,B.useState)(()=>new zq(P,R,a=>{x.show({level:"info",title:a})})),[T]=(0,B.useState)(()=>new zT(R,(a,b)=>{S.handleGitBranchChanged(a,b)}));(0,B.useSyncExternalStore)(S.subscribe.bind(S),S.getRevision,S.getRevision);let[V,W]=(0,B.useState)([]),[X,Y]=(0,B.useState)(0),[Z,$]=(0,B.useState)(DP),[_,aa]=(0,B.useState)(DO),[ab,ac]=(0,B.useState)(!1),[ad,ae]=(0,B.useState)(null),[af,ag]=(0,B.useState)(!0),[ah,ai]=(0,B.useState)(!1),aj=(0,B.useRef)(ah),ak=(0,B.useCallback)(()=>{aj.current=!1,ai(!1)},[]),[al,am]=(0,B.useState)("sessions"),[an,ao]=(0,B.useState)(null),[ap,aq]=(0,B.useState)(!1),[ar,as]=(0,B.useState)(!1),[at,au]=(0,B.useState)(),[av,aw]=(0,B.useState)(null),[ax,ay]=(0,B.useState)(null),[az,aA]=(0,B.useState)(null),[aB,aC]=(0,B.useState)(null),[aD,aE]=(0,B.useState)(null),aF=(0,B.useCallback)(()=>{aA(null)},[]),[aG,aH]=(0,B.useState)("initial"),aI="ready"!==aG,aJ=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),[d,e]=(0,B.useState)(null),[f,g]=(0,B.useState)(""),[h,i]=(0,B.useState)(!1),[j,k]=(0,B.useState)(null),l=(0,B.useCallback)(a=>{e({workId:a.workId,sessionId:a.sessionId}),g(a.sessionTitle??""),k(null)},[]),m=async()=>{let g=f.trim();if(d&&!h&&!b&&g){i(!0),k(null);try{await a.renameWorkSession({...d,title:g}),e(null)}catch(a){k(a instanceof Error?a.message:c("renameSessionFailed"))}finally{i(!1)}}};return{open:null!==d,title:f,saving:h,error:j,show:l,close:()=>{h||e(null)},setTitle:g,save:m}}(C,aI),[aK,aL]=(0,B.useState)(!1),[aM,aN]=(0,B.useState)(null),[aO,aP]=(0,B.useState)(!1),[aQ,aR]=(0,B.useState)(null),[aS,aT]=(0,B.useState)("directories"),[aU,aV]=(0,B.useState)(null),[aW,aX]=(0,B.useState)(null),[aY,aZ]=(0,B.useState)([]),[a$,a_]=(0,B.useState)([]),[a0,a1]=(0,B.useState)(null),[a2,a3]=(0,B.useState)(!1),[a4,a5]=(0,B.useState)(!1),[a6,a7]=(0,B.useState)(!1),[a8,a9]=(0,B.useState)(null),[ba,bb]=(0,B.useState)(null),[bc,bd]=(0,B.useState)(null),[be,bf]=(0,B.useState)(null),[bg,bh]=(0,B.useState)(null),{sessions:bi,loading:bj,load:bk,cancel:bl,showCached:bm}=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),[d,e]=(0,B.useState)([]),[f,g]=(0,B.useState)(!1),h=(0,B.useRef)(0),i=(0,B.useRef)(null),j=(0,B.useRef)(new Map),k=(0,B.useCallback)(()=>{h.current+=1,i.current?.abort(),i.current=null,g(!1)},[]),l=(0,B.useCallback)(a=>{e(j.current.get(a)?.base??[])},[]);return{sessions:d,loading:f,load:(0,B.useCallback)(async(d,f="",k=Dj,l=!1)=>{let m=++h.current;i.current?.abort(),i.current=null;let n=f.trim(),o=j.current.get(d),p=Dk(k)&&!n?o?.base:o?.recent?.query===n&&o.recent.searchIn.length===k.length&&o.recent.searchIn.every(a=>k.includes(a))?o.recent.sessions:null;if(p&&!l){e(p),g(!1),b(null);return}p&&e(p);let q=new AbortController;i.current=q,g(!0),b(null);try{let b=await a.listSessionHistory({cwd:d,query:n,forceRefresh:l,searchIn:[...k]},q.signal);if(h.current!==m)return;let c=j.current.get(d)??{base:null,recent:null};for(Dk(k)&&!n?c.base=b.sessions:c.recent={query:n,searchIn:[...k],sessions:b.sessions},j.current.delete(d),j.current.set(d,c);j.current.size>8;){let a=j.current.keys().next().value;if(!a)break;j.current.delete(a)}e(b.sessions)}catch(a){if(h.current!==m||a instanceof Error&&"AbortError"===a.name)return;b(a instanceof Error?a.message:c("historyFailed"))}finally{h.current===m&&(i.current===q&&(i.current=null),g(!1))}},[b,a,c]),cancel:k,showCached:l}}(C,bh),[bn,bo]=(0,B.useState)(null),[bp,bq]=(0,B.useState)(0),br=(0,B.useRef)(null),bs=(0,B.useRef)(0),bt=(0,B.useRef)(0),bu=(0,B.useRef)(0),bv=(0,B.useRef)(null),bw=(0,B.useRef)(0),bx=(0,B.useMemo)(()=>(function(a,b,c={async readMessages(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(z9,"readonly"),d=An(c),e=await Al(c.objectStore(z9).index(Aa).getAll(IDBKeyRange.only([b.sessionId,b.branchId])));return await d,e.map(Aq).sort((a,b)=>a.location.index-b.location.index)},async readLatestCursor(a){try{let b=await this.readMessages(a),c=z7(b);return null===c&&b.length>0&&await this.clearSource(a),c}catch(b){return console.warn("[Pi Desk][WorkbenchChatRepository] 本地消息缓存无效,回退全量同步",{sessionId:a.sessionId,branchId:a.branchId,errorName:b instanceof Error?b.name:"UnknownError"}),await this.clearSource(a),null}},async replaceMessages(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction(z9,"readwrite"),e=An(d),f=d.objectStore(z9);for(let a of(Ar(f,c),b))f.put(Ap(c,a));await e},async appendMessage(a,b){let c=z5.Pi.parse(a),d=Ap(c,b),e=(await Ak()).transaction(z9,"readwrite"),f=An(e),g=e.objectStore(z9),h=[d.sessionId,d.branchId,d.index],i=g.get(h),j=null;if(i.addEventListener("success",()=>{if(void 0===i.result)return void g.add(d);let a=Ao.safeParse(i.result);if(a.success&&a.data.entryId===d.entryId)return;let b=a.success?a.data.entryId:"invalid-record";j=Error(`IndexedDB 消息身份冲突:${d.index}/${d.entryId}/${b}`),Ar(g,c)},{once:!0}),await f,j)throw j},async saveDetail(a,b,c,d){let e=z5.Pi.parse(a),f=z5.wI.parse(d),g=(await Ak()).transaction(z9,"readwrite"),h=An(g),i=g.objectStore(z9),j=[e.sessionId,e.branchId,b],k=await Al(i.get(j)),l=Ao.parse(k);if(l.entryId!==c)throw g.abort(),await h.catch(()=>void 0),Error(`IndexedDB 消息身份不匹配:${b}/${c}`);let{detail:m,...n}=l;i.put(null===f?n:{...n,detail:f}),await h},async clearSource(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(z9,"readwrite"),d=An(c);Ar(c.objectStore(z9),b),await d}}){let d=new AC(a),e=new Map,f=new Map,g=new Map,h=new Map,i=new Map,j=new Map,k=new Map,l=new Map,m=new Map,n=new Set,o=new Set,p=!1,q=0,r=null,s=()=>void 0,t=null,u=!1,v=()=>{for(let a of[...n])try{a()}catch(a){console.error("[Pi Desk][WorkbenchChat] 消息状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},w=(a=!1)=>{if(a){if(t)return;t=setTimeout(()=>{t=null,v()},50);return}t&&clearTimeout(t),t=null,v()},x=(a,b,c=!1)=>{g.set(AF(a),b),w(c)},y=a=>{let b=e.get(a.workId),c=f.get(a.workId);return void 0!==b&&void 0!==c&&AG(b,a)&&AG(AE(c),a)},z=(a,b)=>{let c=AF(a),d=(l.get(c)??Promise.resolve()).then(b,b);l.set(c,d);let e=()=>{l.get(c)===d&&l.delete(c)};return d.then(e,e),d},A=a=>{let b=`${AF(a)}\u0000`;for(let a of k.keys())a.startsWith(b)&&k.delete(a)},B=async(b,d=!1)=>{if(!p||0===b.length||u)return;let e=q,f=b.filter(a=>y(a)&&!h.has(AF(a))).map(a=>{let b=AF(a),c={};h.set(b,c);let d=g.get(b);return d&&g.set(b,{...d,syncStatus:"syncing"}),{source:a,token:c}});if(0===f.length)return;w();let i=({source:a,token:b})=>!u&&p&&e===q&&y(a)&&h.get(AF(a))===b;try{let b=(await Promise.all(f.map(async a=>({...a,cursor:d?null:await c.readLatestCursor(a.source)})))).filter(i).map(({source:a,cursor:b})=>({source:a,cursor:b}));if(0===b.length)return;await a.request(zf.P6.subscribe,{subscriptions:b})}catch(b){let a=f.filter(i);for(let{source:b}of a)h.delete(AF(b));if(a.length>0)throw b}},C=async a=>{let b=AF(a),d=g.get(b);return d||z5.oc.parse({messages:await c.readMessages(a),temporaryMessages:[],runtime:z6.runtime})},D=async a=>{y(a)&&p&&!u&&(h.delete(AF(a)),await B([a],!0))},E=async a=>{let{epoch:b,push:d}=a,{source:e,event:f}=d,i=AF(e),j=h.get(i),k=()=>!u&&p&&b===q&&y(e)&&h.get(i)===j;if(!k()||"session_sync"!==f.type&&(j||!g.has(i)))return!1;if("session_sync"===f.type&&"full"===f.mode){A(e);let a=g.get(i);a&&x(e,{...a,syncStatus:"syncing"})}let l="session_sync"===f.type&&"full"===f.mode?g.get(i)??AD:await C(e);if(!k())return!1;if("session_sync"===f.type&&"incremental"===f.mode){let a=l.messages.at(-1);if(a?.location.index!==f.baseCursor.index||a.location.entryId!==f.baseCursor.entryId){let a=await c.readMessages(e);if(!k())return!1;let b=a.slice(0,f.baseCursor.index+1),d=z7(b);if(d?.index!==f.baseCursor.index||d.entryId!==f.baseCursor.entryId)throw Error(zm("chatCacheMismatch"));l={...l,messages:b}}}let m=function(a,b){if("session_sync"===b.type){if("full"===b.mode)return{...yV(a,b.messages,b.temporaryMessages),runtime:b.runtime};let c=a.messages.at(-1);if(!c||c.location.index!==b.baseCursor.index||c.location.entryId!==b.baseCursor.entryId)throw Error("Incremental chat sync does not match the current durable cursor");let d=new Set(a.messages.map(a=>a.location.entryId));for(let a of b.messages){if(d.has(a.location.entryId))throw Error(`Incremental chat sync contains a duplicate entryId: ${a.location.entryId}`);d.add(a.location.entryId)}return{messages:[...a.messages,...b.messages],temporaryMessages:b.temporaryMessages,runtime:b.runtime}}return"runtime_update"===b.type?{...a,runtime:b.runtime}:{...yW(a,b),runtime:a.runtime}}(l,f);if("session_sync"===f.type)await z(e,async()=>{k()&&await c.replaceMessages(e,m.messages)});else if("message_commit"===f.type){let a=m.messages.at(-1);if(!a||a.location.index!==f.durable.index||a.location.entryId!==f.durable.entryId)throw Error(`Chat commit result is missing: ${f.durable.index}/${f.durable.entryId}`);await z(e,async()=>{k()&&await c.appendMessage(e,a)})}if(!k())return!1;for(let a of("session_sync"===f.type&&h.delete(i),x(e,{...m,syncStatus:"session_sync"===f.type?"syncing":g.get(i).syncStatus},"message_update"===f.type),[...o]))try{a(d,m)}catch(a){console.error("[Pi Desk][WorkbenchChat] Source 事件观察器执行失败",{eventType:f.type,errorName:a instanceof Error?a.name:"UnknownError"})}return!0},F=async(a,b)=>{if(!b.processing){b.processing=!0;try{for(;!u&&j.get(a)===b;){let a=b.pushes.shift();if(!a)break;try{await E(a)&&"session_sync"===a.push.event.type&&(b.syncEpoch=a.epoch)}catch(e){if(u||a.epoch!==q||!y(a.push.source))continue;b.pushes.length=0,b.syncEpoch=null;let{push:c}=a,d="message_start"===c.event.type?c.event.snapshot.location.tempId:"location"in c.event?c.event.location.tempId:null;console.error("[Pi Desk][WorkbenchChat] 应用聊天 Source 事件失败,重新同步",{workId:c.source.workId,sessionId:c.source.sessionId,branchId:c.source.branchId,eventType:c.event.type,eventTempId:d,updateLayers:"message_update"===c.event.type?{fixed:void 0!==c.event.fixed,summary:void 0!==c.event.summary,detail:void 0!==c.event.detail,increments:void 0!==c.event.increments}:null,errorName:e instanceof Error?e.name:"UnknownError",errorMessage:e instanceof Error?e.message:String(e)});try{await D(c.source)}catch(a){s(a)}break}}}finally{if(b.processing=!1,j.get(a)!==b)return;if(0===b.pushes.length){j.delete(a);let c=g.get(a);u||!p||b.syncEpoch!==q||h.has(a)||c?.syncStatus!=="syncing"||(g.set(a,{...c,syncStatus:"ready"}),w())}else u||F(a,b)}}},G=a=>{if(u||!p||!y(a.source))return;let b=AF(a.source),c=j.get(b)??{pushes:[],processing:!1,syncEpoch:null};c.pushes.push({epoch:q,push:a}),j.set(b,c),c.processing||F(b,c)},H=a=>{for(let b of(f.clear(),a))f.set(b.workId,b);let b=!1;for(let a of[...e.values()]){let c=f.get(a.workId);c&&AG(a,AE(c))||(e.delete(a.workId),g.delete(AF(a)),h.delete(AF(a)),i.delete(AF(a)),A(a),j.delete(AF(a)),b=!0)}b&&w()};return{nativeUi:d,start(b){s=b,r||(u=!1,r=a.subscribe(zf.P6.sourceEvent,G))},async applyWorkSessionsList(a){H(a),p=!0,d.ready(a.map(AE)),await B([...e.values()])},reconcileWorkSessions(a){H(a),d.reconcile(a.map(AE))},ensureDisplayedWorkSessions(a){(a=>{let b=[];for(let c of a){let a=AE(c),d=f.get(c.workId);if(!d&&p)continue;let k=d?AE(d):a;if(!AG(a,k))continue;let l=e.get(k.workId);l&&AG(l,k)||(l&&(g.delete(AF(l)),h.delete(AF(l)),i.delete(AF(l)),A(l),j.delete(AF(l))),e.set(k.workId,k),b.push(k))}0!==b.length&&(w(),p&&B(b).catch(a=>{s(a)}))})(a)},subscribe:a=>(n.add(a),()=>n.delete(a)),subscribeSourceEvents:a=>(o.add(a),()=>o.delete(a)),getSourceState(a){let b=z5.Pi.parse(a);return g.get(AF(b))??AD},getViewportSnapshot(a){let b=z5.Pi.parse(a);return i.get(AF(b))??null},saveViewportSnapshot(a,b){let c=z5.Pi.parse(a);b.messageId&&Number.isFinite(b.offset)&&i.set(AF(c),b)},clearViewportSnapshot(a){let b=z5.Pi.parse(a);i.delete(AF(b))},async loadMessageDetail(a,d,e){let f=z5.Pi.parse(a),h=(await C(f)).messages.find(a=>a.location.index===d&&a.location.entryId===e);if(!h)throw Error(zm("chatMessageMissing",{index:d,entryId:e}));if(void 0!==h.detail)return h.detail;if(!h.fixed.hasDetail)return null;if(g.get(AF(f))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));let i=q,j=`${AF(f)}\u0000${d}\u0000${e}`,l=k.get(j);if(l)return l;let m=(async()=>{let a=await b({sessionId:f.sessionId,branchId:f.branchId,entryId:e}),d=()=>!u&&q===i&&y(f)&&k.get(j)===m;if(await z(f,async()=>{if(!d())throw Error(zm("sourceSyncing"));await c.saveDetail(f,a.index,a.entryId,a.detail)}),!d())throw Error(zm("sourceSyncing"));if(y(f)&&!u){let b=g.get(AF(f));b&&x(f,{...{...yX(b,a),runtime:b.runtime},syncStatus:b.syncStatus})}return a.detail})().finally(()=>{k.get(j)===m&&k.delete(j)});return k.set(j,m),m},async compact(b){let c=z5.Pi.parse(b);if(g.get(AF(c))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));await a.request(zf.P6.compact,{source:c})},async reload(b,c){let d=z5.Pi.parse(b);if(g.get(AF(d))?.syncStatus!=="ready")throw Error(zm("sourceSyncing"));await a.request(zf.P6.reload,void 0===c?{source:d}:{source:d,mode:c})},async reloadMessages(b){let c=z5.Pi.parse(b),d=AF(c),i=f.get(c.workId);if(!i||!AG(AE(i),c))throw Error(zm("reloadChatSourceChanged"));let k=g.get(d);if(!p||u||h.has(d)||k?.syncStatus==="syncing")throw Error(zm("sourceSyncing"));let l=q,m=j.get(d),n=m?.syncEpoch??null;m&&(m.syncEpoch=null),e.set(c.workId,c),x(c,{...k??AD,syncStatus:"syncing"});try{await a.request(zf.P6.subscribe,{subscriptions:[{source:c,cursor:null}]})}catch(a){if(!u&&l===q&&y(c)){m&&j.get(d)===m&&(m.syncEpoch=n);let a=g.get(d);a&&x(c,{...a,syncStatus:k?.syncStatus??"loading"})}throw console.error("[Pi Desk][WorkbenchChat] 重新加载聊天数据失败,保留已有缓存",{workId:c.workId,sessionId:c.sessionId,branchId:c.branchId,message:a instanceof Error?a.message:String(a)}),a}},async setPresentation(b,c){let d=z5.Pi.parse(b),e=AF(d),f=g.get(e);if(!f||"ready"!==f.syncStatus)throw Error(zm("sourceSyncing"));if(f.runtime.presentationMode===c)return;let h=`${e}\u0000${c}`,i=m.get(h);if(i)return i;let j=a.request(zf.P6.presentationSet,{source:d,mode:c}).then(()=>void 0).finally(()=>{m.get(h)===j&&m.delete(h)});return m.set(h,j),j},disconnected(){for(let a of(d.disconnected(),p=!1,q+=1,k.clear(),m.clear(),h.clear(),j.values()))a.pushes.length=0;let a=!1;for(let[b,c]of g)"syncing"!==c.syncStatus&&(g.set(b,{...c,syncStatus:"syncing"}),a=!0);a&&w()},dispose(){u||(d.dispose(),u=!0,p=!1,r?.(),r=null,s=()=>void 0,e.clear(),f.clear(),g.clear(),h.clear(),i.clear(),j.clear(),k.clear(),l.clear(),m.clear(),t&&clearTimeout(t),t=null,n.clear(),o.clear())}}})(w,a=>C.getChatMessageDetail(a)),[w,C]),by=function(a,b){let{t:c}=(0,Q.Bd)("workbench"),d=(0,bG.G)(),e=(0,B.useCallback)(()=>JSON.stringify(b.filter(({workId:b,sessionId:c,branchId:d})=>"syncing"===a.getSourceState({workId:b,sessionId:c,branchId:d}).syncStatus).map(a=>a.workId)),[a,b]),f=(0,B.useSyncExternalStore)(a.subscribe,e,e);return{syncingWorkIds:(0,B.useMemo)(()=>JSON.parse(f),[f]),reload:(0,B.useCallback)(b=>{let{workId:e,sessionId:f,branchId:g}=b;a.reloadMessages({workId:e,sessionId:f,branchId:g}).catch(a=>{d.error(a instanceof Error?a.message:c("reloadChatDataFailed"))})},[a,c,d])}}(bx,V),bz=(0,B.useMemo)(()=>(function(a,b,c={async recoverOutbox(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c),e=c.objectStore(Ab),f=c.objectStore(Ac),g=AI(b),[h,i]=await Promise.all([Al(e.get(g)),Al(f.get(g))]),j=AK(h),k=AK(i);if(!k)return await d,{input:j??AH,recovered:!1};let l=AL(k,j);return e.put(AJ(b,l)),f.delete(g),await d,{input:l,recovered:!0}},async writeDraft(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction(Ab,"readwrite"),e=An(d),f=d.objectStore(Ab);b.text||0!==b.images.length?f.put(AJ(c,b)):f.delete(AI(c)),await e},async moveDraftToOutbox(a,b){let c=z5.Pi.parse(a),d=(await Ak()).transaction([Ab,Ac],"readwrite"),e=An(d);d.objectStore(Ac).put(AJ(c,b)),d.objectStore(Ab).delete(AI(c)),await e},async clearOutbox(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction(Ac,"readwrite"),d=An(c);c.objectStore(Ac).delete(AI(b)),await d},async restoreOutboxToDraft(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c),e=c.objectStore(Ab),f=c.objectStore(Ac),g=AI(b),[h,i]=await Promise.all([Al(e.get(g)),Al(f.get(g))]),j=AK(i);if(!j)throw c.abort(),await d.catch(()=>void 0),Error(zm("outboxMissing"));let k=AL(j,AK(h));return e.put(AJ(b,k)),f.delete(g),await d,k},async deleteOutbox(a){await this.clearOutbox(a)},async clearSource(a){let b=z5.Pi.parse(a),c=(await Ak()).transaction([Ab,Ac],"readwrite"),d=An(c);c.objectStore(Ab).delete(AI(b)),c.objectStore(Ac).delete(AI(b)),await d}}){let d=new Map,e=new Map,f=new Set,g=new Map,h=new Set,i=0,j=new Map,k=[],l=new Map,m=new Map,n=0,o=!1,p=()=>{for(let a of[...f])try{a()}catch(a){console.error("[Pi Desk][WorkbenchChatInput] 状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},q=a=>{if("ready"!==b.getSourceState(a).syncStatus)throw Error(zm("sourceSyncing"))},r=a=>{let b=A$(a);e.set(b,a);let c=d.get(b);return c||(c={loaded:!1,loading:!1,text:"",images:[],outbox:null,notice:null,error:null,models:{status:"idle",models:[],presets:[],error:null}},d.set(b,c)),c},s=(a,b)=>{let c=b(r(a));return d.set(A$(a),c),p(),c},t=(a,b)=>{let d=A$(a);i+=1;let f=(g.get(d)??Promise.resolve()).then(()=>c.writeDraft(a,b)).then(()=>{h.delete(d)}).catch(b=>{h.add(d),console.error("[Pi Desk][WorkbenchChatInput] Draft 写入失败",{workId:a.workId,errorName:b instanceof Error?b.name:"UnknownError"}),e.has(d)&&s(a,a=>({...a,error:zm("draftSaveFailed")}))}).finally(()=>{g.get(d)===f&&g.delete(d)});g.set(d,f)},u=a=>{t(a,A_(r(a)))},v=()=>{for(;!o&&n<2&&k.length>0;){let a=k.shift();n+=1,a().finally(()=>{n-=1,v()})}},w=(a,b)=>{k.push(async()=>{let c=d.get(A$(a)),e=c?.images.find(a=>a.localId===b);if(e&&"optimizing"===e.status)try{let c=await AW(e),f=d.get(A$(a)),g=f?.images.findIndex(a=>a.localId===b)??-1;if(!f||g<0)return;let h=URL.createObjectURL(c.blob);URL.revokeObjectURL(f.images[g].objectUrl);let i=[...f.images];i[g]={...i[g],...c,objectUrl:h,status:"ready",error:null},d.set(A$(a),{...f,images:i,error:null}),u(a),p()}catch(g){let c=d.get(A$(a)),e=c?.images.findIndex(a=>a.localId===b)??-1;if(!c||e<0)return;let f=[...c.images];f[e]={...f[e],status:"error",error:A0(g,zm("imageProcessFailed"))},d.set(A$(a),{...c,images:f}),u(a),p()}}),v()},x=()=>{let a=[...l.values()].reduce((a,b)=>a+b.size,0);for(let[b,c]of l){if(a<=0x4000000&&l.size<=64)break;c.references>0||(URL.revokeObjectURL(c.url),l.delete(b),a-=c.size)}},y=a=>{let b=A$(a),c=d.get(b);for(let a of(c&&(A4(c.images),c.outbox&&A4(c.outbox.images)),d.delete(b),e.delete(b),g.delete(b),h.delete(b),j.delete(b),m.keys()))a.startsWith(`${b}\u0000`)&&m.delete(a);for(let[a,c]of[...l])a.startsWith(`${b}\u0000`)&&(URL.revokeObjectURL(c.url),l.delete(a))},z=b.subscribeSourceEvents((a,b)=>{let{source:c,event:d}=a;if("message_commit"===d.type){let a=`${A$(c)}\u0000temp\u0000${d.location.tempId}\u0000`;for(let[b,e]of[...l]){if(!b.startsWith(a))continue;let f=Number.parseInt(b.slice(a.length),10);l.delete(b),l.set(A3(c,d.durable.entryId,f),e)}p();return}if("message_discard"===d.type){let a=`${A$(c)}\u0000temp\u0000${d.location.tempId}\u0000`;for(let[b,c]of[...l])b.startsWith(a)&&(URL.revokeObjectURL(c.url),l.delete(b));p();return}if("session_sync"===d.type||"runtime_update"===d.type){let a=new Set([...b.temporaryMessages.map(a=>a.location.tempId),...b.runtime.queues.steering.map(a=>a.tempId),...b.runtime.queues.followUp.map(a=>a.tempId)]),d=`${A$(c)}\u0000temp\u0000`;for(let[b,c]of[...l]){if(!b.startsWith(d))continue;let e=b.slice(d.length).split("\0")[0];e&&a.has(e)||(URL.revokeObjectURL(c.url),l.delete(b))}}});return{subscribe:a=>(f.add(a),()=>f.delete(a)),getState:a=>r(a),async loadSource(a){let b=A$(a);if(r(a).loaded)return;let f=j.get(b);if(f)return f;let g=(async()=>{s(a,a=>({...a,loading:!0,error:null}));try{let f,g,h=await c.recoverOutbox(a);if(o||!e.has(b))return;let i=(f=h.input.images,g=zm("draftImage"),f.map((a,b)=>AY(a,`${g} ${b+1}`)));for(let c of(d.set(b,{...r(a),loaded:!0,loading:!1,text:h.input.text,images:i,notice:h.recovered?zm("uncertainRecovered"):null,error:null}),i))c.optimized||w(a,c.localId);p()}catch(b){s(a,a=>({...a,loaded:!1,loading:!1,error:A0(b,zm("draftLoadFailed"))}))}})().finally(()=>j.delete(b));return j.set(b,g),g},dismissFeedback(a){s(a,a=>({...a,notice:null,error:null}))},setText(a,b){let c=s(a,a=>({...a,text:b,notice:null,error:null}));t(a,A_(c))},async addFiles(a,b){let c=10-r(a).images.length;if(c<=0)return void s(a,a=>({...a,error:zm("imageAddLimit")}));let d=[...b].slice(0,c),e=[];for(let b of d)try{let a=await AV(b);e.push(AY(a,b.name))}catch(c){s(a,a=>({...a,error:zm("imageFileFailed",{name:b.name,error:A0(c,zm("imageUnavailable"))})}))}if(0===e.length)return;let f=s(a,a=>({...a,images:[...a.images,...e],notice:null,error:b.length>c?zm("imageAddOverflow"):null}));for(let b of(t(a,A_(f)),e))b.optimized||w(a,b.localId)},removeImage(a,b){let c=r(a).images.find(a=>a.localId===b);if(!c)return;AZ(c);let d=s(a,a=>({...a,images:a.images.filter(a=>a.localId!==b),error:null}));t(a,A_(d))},async send(b,e){q(b);let f=A$(b),h=r(b);if(h.outbox)throw Error(zm("resolveOutboxFirst"));if(!h.text.trim()&&0===h.images.length)throw Error(zm("emptyInput"));if(h.images.length>10)throw Error(zm("imageSendLimit"));if(h.images.some(a=>"optimizing"===a.status))throw Error(zm("imagesPending"));let i=h.images.find(a=>"error"===a.status);if(i)throw Error(i.error??zm("imageProcessingFailed"));if(h.images.reduce((a,b)=>a+b.blob.size,0)>0x1400000)throw Error(zm("imageBytesLimit"));await (g.get(f)??Promise.resolve()),q(b);let j=A_(h);await c.moveDraftToOutbox(b,j),d.set(f,{...h,text:"",images:[],outbox:{status:"sending",text:h.text,images:h.images,error:null},notice:null,error:null}),p();try{let g=await Promise.all(h.images.map(AX)),i={source:b,mode:e,text:h.text,images:g};if(new TextEncoder().encode(JSON.stringify({head:{op:"req",path:"chat/send",requestId:"00000000-0000-4000-8000-000000000000"},body:i})).byteLength>0x1f00000)throw Error(zm("messageBytesLimit"));let j=await a.sendChat(i);if(o||d.get(f)?.outbox?.images!==h.images)return;h.images.forEach((a,c)=>{l.set(A2(b,j.tempId,c),{url:URL.createObjectURL(a.blob),size:a.blob.size,references:0})}),x(),await c.clearOutbox(b);let k=d.get(f);k?.outbox?.images===h.images&&(A4(h.images),d.set(f,{...k,outbox:null,error:null})),p()}catch(e){let a,b,c=d.get(f);throw c?.outbox?.images===h.images&&d.set(f,{...c,outbox:{...c.outbox,status:(b="string"==typeof(a=e instanceof Error&&"rawMessage"in e?e.rawMessage:null)?a:A0(e,""),/WebSocket.*(?:断开|连接|替换)|请求超时|尚未连接/.test(b))?"unknown":"failed",error:A0(e,zm("sendFailed"))}}),p(),e}},async prepareForPageReload(){let a=i;return await Promise.all([...g.values()]),i===a&&!(h.size>0)&&[...d.values()].every(a=>a.outbox?.status!=="sending"&&a.outbox?.status!=="unknown")},async restoreOutbox(a){let b=A$(a);await (g.get(b)??Promise.resolve());let e=r(a);e.outbox&&(await c.restoreOutboxToDraft(a),d.set(b,{...e,text:A1(e.outbox.text,e.text),images:[...e.outbox.images,...e.images],outbox:null,notice:null,error:null}),p())},async deleteOutbox(a){let b=r(a);b.outbox&&(await c.deleteOutbox(a),A4(b.outbox.images),d.set(A$(a),{...b,outbox:null,notice:null,error:null}),p())},async interrupt(b){q(b);try{await a.interruptChat({source:b}),s(b,a=>({...a,error:null}))}catch(a){throw s(b,b=>({...b,error:A0(a,zm("interruptFailed"))})),a}},async restoreQueue(b){q(b);try{let c=await a.restoreChatQueue({source:b}),d=c.images.map((a,b)=>AY({blob:(0,yZ.E)(a),mimeType:a.mimeType,width:a.width,height:a.height,optimized:!0},zm("restoredImage",{count:b+1}))),e=s(b,a=>({...a,text:A1(c.text,a.text),images:[...d,...a.images],notice:null,error:null}));t(b,A_(e))}catch(a){throw s(b,b=>({...b,error:A0(a,zm("queueRestoreFailed"))})),a}},listTools:async b=>(q(b),a.listPiTools({source:b})),async loadModels(b,c=!1){let e=r(b);if("loading"===e.models.status||!c&&"ready"===e.models.status)return;let f=s(b,a=>({...a,models:{...a.models,status:"loading",error:null}})).models,g=A$(b);try{let c=await a.listModels({workId:b.workId});if(o||d.get(g)?.models!==f)return;s(b,a=>({...a,models:{status:"ready",models:c.models,presets:c.presets,error:null}}))}catch(a){if(o||d.get(g)?.models!==f)return;s(b,b=>({...b,models:{...b.models,status:"error",error:A0(a,zm("modelCatalogFailed"))}}))}},async setModel(b,c){q(b);let d=A$(b);r(b);try{await a.setChatModel({source:b,model:c}),!o&&e.has(d)&&s(b,a=>({...a,error:null}))}catch(a){throw!o&&e.has(d)&&s(b,b=>({...b,error:A0(a,zm("setModelFailed"))})),a}},acquireMessageImage(b){if(o)throw Error(zm("imageUnavailable"));let c=b.entryId?A3(b.source,b.entryId,b.imageIndex):b.tempId?A2(b.source,b.tempId,b.imageIndex):null;if(!c)throw Error(zm("imageIdentityInvalid"));e.set(A$(b.source),b.source);let d=a=>{if(o||l.get(c)!==a)throw Error(zm("imageUnavailable"));a.references+=1,l.delete(c),l.set(c,a),x();let b=!1;return{url:a.url,release:()=>{b||(b=!0,a.references-=1,x())}}},f=l.get(c);if(f)return d(f);let g=m.get(c);if(!g){if(!b.entryId)throw Error(zm("localImagePending"));g=a.getChatImage({sessionId:b.source.sessionId,branchId:b.source.branchId,entryId:b.entryId,imageIndex:b.imageIndex}).then(a=>{if(o||m.get(c)!==g)throw Error(zm("imageUnavailable"));let b=(0,yZ.E)(a),d={url:URL.createObjectURL(b),size:b.size,references:0};return l.set(c,d),d}).catch(a=>{throw console.warn("[Pi Desk][WorkbenchChatInput] 读取聊天图片失败",{entryId:b.entryId,error:A0(a,zm("imageUnavailable"))}),a}).finally(()=>{m.get(c)===g&&m.delete(c)}),m.set(c,g)}return g.then(d)},reconcileWorkSessions(a){let b=new Set(a.map(a=>A$({workId:a.workId,sessionId:a.sessionId,branchId:a.branchId})));for(let[a,d]of[...e]){if(b.has(a))continue;let e=g.get(a)??Promise.resolve();y(d),e.then(()=>c.clearSource(d),()=>c.clearSource(d)).catch(a=>{console.error("[Pi Desk][WorkbenchChatInput] 清理失效 Source 输入失败",{workId:d.workId,errorName:a instanceof Error?a.name:"UnknownError"})})}p()},dispose(){if(!o){for(let a of(o=!0,z(),k.length=0,[...e.values()]))y(a);for(let a of l.values())URL.revokeObjectURL(a.url);l.clear(),m.clear(),h.clear(),f.clear()}}}})(C,bx),[bx,C]);(0,B.useRef)(null),(0,B.useRef)(null);let bA=(0,B.useMemo)(()=>V.slice(0,X).map(a=>a.workId),[X,V]),bB=(0,B.useMemo)(()=>z.flatMap(a=>a.contributions.flatMap(b=>"application"===b.kind?[{pluginName:a.pluginName,contributionName:b.contributionName,label:b.label,...b.icon?{icon:b.icon}:{}}]:[])),[z]),bC=(0,B.useMemo)(()=>z.flatMap(a=>a.contributions.flatMap(b=>"session-sidebar-tab"===b.kind?[{pluginName:a.pluginName,contributionName:b.contributionName,label:b.label,...b.icon?{icon:b.icon}:{}}]:[])),[z]),bD=!!(ax||av?.loadError||av?.plugins.some(a=>"failed"===a.status||a.operation?.phase==="failed")||y.getEntryListError()||y.getFailedEntries().length>0),bE=!!(av?.restartRequired||av?.plugins.some(a=>!0===a.updateAvailable)),bH=bD?"error":bE?"notice":null,bI=az?z.find(a=>a.pluginName===az.pluginName)?.contributions.find(a=>"application"===a.kind&&a.contributionName===az.contributionName):void 0,bJ=V.find(a=>a.workId===ad)??null,bK=bJ?.cwd??null,bL=al.startsWith("plugin:")?bC.find(a=>DD(a.pluginName,a.contributionName)===al):void 0,bM=bL?z.find(a=>a.pluginName===bL.pluginName)?.contributions.find(a=>"session-sidebar-tab"===a.kind&&a.contributionName===bL.contributionName):void 0,bO=bJ?.workId??null,bP=bJ?.sessionId??null,bQ=bJ?.branchId??null,bR=bO&&bP&&bQ?{workId:bO,sessionId:bP,branchId:bQ}:null,bT=JSON.stringify([al,bO,bP,bQ,bK]),bU=(0,B.useCallback)(a=>{ao(b=>a.length>0?{targetKey:bT,actions:a}:b?.targetKey===bT?null:b)},[bT]),bV=S.getWorkspace(ad),bW=(0,B.useMemo)(()=>{let a=V.find(a=>a.workId===aU);return a?{projectName:a.projectName,sessionTitle:a.sessionTitle,sessionId:a.sessionId}:null},[aU,V]),bX=(0,B.useMemo)(()=>V.filter(a=>a.workId!==aU).map(a=>a.sessionId),[aU,V]),bY=(0,B.useCallback)(a=>{aw(a),ay(null);let b=a.plugins.some(a=>null!==a.operation&&"failed"!==a.operation.phase&&"waiting"!==a.operation.phase);b||y.refreshEntries().catch(()=>void 0),y.setEntriesMaintaining(b)},[y]),bZ=(0,B.useCallback)(()=>{bv.current&&clearTimeout(bv.current);let a=++bw.current,b=15,c=d=>{bv.current=setTimeout(()=>{bv.current=null,bw.current===a&&f().then(b=>{bw.current===a&&bY(b)}).catch(d=>{if(bw.current===a){if((b-=1)>0)return void c(2e3);ay(d instanceof Error?d.message:u("pluginRestoreFailed"))}})},d)};c(1500)},[bY,f,u]),b$=(0,B.useCallback)(a=>{I.current!==a&&(I.current=a,J.current=0,ae(a))},[]),b_=(0,B.useCallback)(a=>{aI||M.current.has(a)||(M.current.add(a),C.acknowledgeCompleted(a).catch(b=>{console.warn("[Pi Desk][Workbench] 确认工作会话完成状态失败",{workId:a,message:DS(b,"请求失败")})}).finally(()=>{M.current.delete(a)}))},[aI,C]),b0=(0,B.useCallback)(a=>{var b;let c,d=(b=D.current,c=new Map(a.workSessions.map(a=>[a.workId,a])),b.flatMap(a=>{let b=c.get(a.workId);return b&&b.cwd===a.cwd&&b.sessionId===a.sessionId?[]:[a.workId]})),e=new Set(a.workSessions.map(a=>a.workId)),f=d.filter(a=>!L.current.has(a)||!e.has(a));H.current=!0,y.replaceWorkSessions(a.workSessions),D.current=a.workSessions,S.reconcileWorkSessions(a.workSessions),E.current=a.pinnedCount,aC(b=>{if(!b)return null;let c=a.workSessions.find(a=>a.workId===b.source.workId);return c?.sessionId===b.source.sessionId&&c.branchId===b.source.branchId&&c.cwd===b.cwd?b:null}),W(a.workSessions),Y(a.pinnedCount),aa(b=>(function(a,b,c=[]){let d=new Set(b.map(a=>a.workId)),e=new Set(c),f=a.primaryWorkId&&d.has(a.primaryWorkId)&&!e.has(a.primaryWorkId)?a.primaryWorkId:null;return a.primaryWorkId===f?a:{primaryWorkId:f}})(b,a.workSessions,f));let g=I.current;g&&f.includes(g)&&(K.current=!1,b$(null))},[S,y,b$]),b1=(0,B.useCallback)(a=>{b0(a),bx.reconcileWorkSessions(a.workSessions),bz.reconcileWorkSessions(a.workSessions),j(a.workSessions)},[b0,bz,bx,j]),b2=(0,B.useCallback)(a=>{G.current=a,$(a),y.replaceGlobalPluginStates(a.plugins),(0,kl.UV)(a.settings)},[y]),b3=(0,B.useCallback)(a=>{b1(a),b2(a.appRuntime)},[b2,b1]),b4=(0,B.useCallback)(()=>{if(br.current)return;aH(a=>"initial"===a?"initial":"refresh");let a=(async()=>{let a=await C.listWorkSessions();b3(a),await bx.applyWorkSessionsList(a.workSessions),bo(null),aH("ready")})().catch(a=>{bo(DS(a,u("syncFailed")))}).finally(()=>{br.current===a&&(br.current=null)});br.current=a},[b3,bx,C,u]);(0,B.useCallback)(a=>{try{let b=function(a,b){if("snapshot"===b.type)return y1.kg.parse({workSessions:b.workSessions,pinnedCount:b.pinnedCount});let c=a.workSessions.findIndex(a=>a.workId===b.workId);if(c<0){if("delete"===b.type)return a;throw Error(`WorkSession update target was not found: ${b.workId}`)}if("delete"===b.type)return{workSessions:a.workSessions.filter(a=>a.workId!==b.workId),pinnedCount:a.pinnedCount-Number(c<a.pinnedCount)};let d=[...a.workSessions];return d[c]=y1.MY.parse({...a.workSessions[c],...b.changes}),{workSessions:d,pinnedCount:a.pinnedCount}}({workSessions:D.current,pinnedCount:E.current},a);b1(b)}catch(a){bo(DS(a,u("workSessionUpdateInvalid"))),b4()}},[b1,b4,u]),(0,B.useCallback)(a=>{try{b2(function(a,b){if("replace"===b.type)return kj.GR.parse(b.runtime);if("notifications"===b.key)return kj.GR.parse({...a,notifications:function(a,b){if("add"===b.type){if(a.some(a=>a.notificationId===b.notification.notificationId))throw Error(`Notification already exists: ${b.notification.notificationId}`);return[...a,b.notification]}let c=a.findIndex(a=>a.notificationId===b.notificationId);if(c<0)throw Error(`Notification does not exist: ${b.notificationId}`);if("delete"===b.type)return a.filter(a=>a.notificationId!==b.notificationId);let d=[...a];return d[c]={...a[c],...b.changes},d}(a.notifications,b.update)});if("settings"===b.key)return kj.GR.parse({...a,settings:b.update});if("capabilityModes"===b.key)return kj.GR.parse({...a,capabilityModes:b.update});let c={...a.plugins};if(null===b.update.state){if(!(b.update.pluginName in c))throw Error(`Plugin global state does not exist: ${b.update.pluginName}`);delete c[b.update.pluginName]}else c[b.update.pluginName]=b.update.state;return kj.GR.parse({...a,plugins:c})}(G.current,a))}catch(a){bo(DS(a,u("appRuntimeUpdateInvalid"))),b4()}},[b2,b4,u]);let b5=(0,B.useCallback)(async(a=!1)=>{let b=++bs.current;a3(!0),bh(null);try{let c=await C.listDirectories(a);if(bs.current!==b)return null;return aZ(c.directories),c.directories}catch(a){if(bs.current!==b)return null;return bh(DS(a,u("projectDirectoriesFailed"))),null}finally{bs.current===b&&a3(!1)}},[C,u]),b6=(0,B.useCallback)(async(a=!1)=>{let b=++bt.current;a5(!0),bh(null);try{let c=await C.listIgnoredDirectories(a);if(bt.current!==b)return;a_(c.directories)}catch(a){if(bt.current!==b)return;bh(DS(a,u("ignoredDirectoriesFailed")))}finally{bt.current===b&&a5(!1)}},[C,u]),b7=(0,B.useCallback)(async a=>{let b=++bu.current;a7(!0),bh(null);try{let c=await C.listDirectoryEntries(a);if(bu.current!==b)return;a1(c)}catch(a){if(bu.current!==b)return;bh(DS(a,u("browseDirectoryFailed")))}finally{bu.current===b&&a7(!1)}},[C,u]),b8=(0,B.useCallback)(a=>{if(!D.current.find(b=>b.workId===a))return;K.current=!1;let b=D.current.slice(0,E.current).map(a=>a.workId),c=I.current===a;if(b.includes(a)&&a!==_.primaryWorkId){c||b$(a),N&&ai(!1);return}_.primaryWorkId!==a&&aa(b=>b.primaryWorkId===a?b:{...b,primaryWorkId:a}),c||b$(a),N&&ai(!1)},[_,N,b$]),b9=(0,B.useCallback)(a=>{let b=D.current.find(b=>b.workId===a);b?.status==="completed"&&b_(a),b8(a)},[b_,b8]);(0,B.useCallback)(async a=>{if(aI)throw Error(u("workSessionInitializing"));let b="workId"in a?D.current.find(b=>b.workId===a.workId):D.current.find(b=>b.sessionId===a.sessionId);if(b)return b9(b.workId),b;if("workId"in a||!a.cwd)throw Error(u("sessionNotFound"));let{workSession:c}=await C.createWorkSession({cwd:a.cwd,sessionId:a.sessionId});return K.current=!1,aa({primaryWorkId:c.workId}),b$(c.workId),N&&ai(!1),c},[aI,N,b9,b$,C,u]);let ca=(0,B.useCallback)(async(a,b)=>{if(aI||aK)return;let c={workSessions:D.current,pinnedCount:E.current},d=c.workSessions.findIndex(a=>a.workId===b),e=a.workIds.indexOf(b);if(d<0||e<0)return;let f=new Map(c.workSessions.map(a=>[a.workId,a])),g=a.workIds.map(a=>f.get(a)).filter(a=>void 0!==a);if(g.length!==c.workSessions.length)return;let h=d<c.pinnedCount,i=e<a.pinnedCount;b0({workSessions:g,pinnedCount:a.pinnedCount}),aL(!0),bo(null);let j=!1;try{b1(await C.sortWorkSessions(a)),j=!0}catch(a){b0(c),bo(DS(a,u("sortFailed")))}finally{aL(!1)}if(j&&h!==i){if(N){i||I.current!==b||b===_.primaryWorkId||b$(_.primaryWorkId);return}if(i)return void aa(a=>a.primaryWorkId===b?{primaryWorkId:null}:a);I.current===b&&b$(_.primaryWorkId)}},[b1,b0,_.primaryWorkId,aI,N,aK,b$,C,u]),cb=(0,B.useCallback)(a=>{if(aI||aK)return;let b=function(a,b,c){Dd(a,b);let d=a.indexOf(c);if(d<0)return null;let e=a.filter(a=>a!==c),f=d<b,g=f?b-1:b+1;return e.splice(f?e.length:b,0,c),{workIds:e,pinnedCount:g}}(D.current.map(a=>a.workId),E.current,a);b&&ca(b,a)},[aI,aK,ca]),cc=(0,B.useCallback)(async a=>{if(!aI){aN(a),bo(null);try{b1(await C.deleteWorkSession(a))}catch(a){bo(DS(a,u("deleteFailed")))}finally{aN(null)}}},[b1,aI,C,u]),cd=(0,B.useCallback)(()=>{if(aI)return;let a=DT((lC(),ly));a&&aZ(a),bh(null),aR("create"),aT("directories"),aV(null),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl(),aX(null),aP(!0),b5().then(a=>{a?.length===0&&(aT("browser"),a1(DU(lG(null))),b7(null))})},[bl,b5,b7,aI]),ce=(0,B.useCallback)(()=>{if(aI)return;let a=V.find(a=>a.workId===ad);a&&(bh(null),bs.current+=1,a3(!1),bt.current+=1,a5(!1),bu.current+=1,a7(!1),aR("replace"),aT("history"),aV(a.workId),aX(a.cwd),bm(a.cwd),aP(!0),bk(a.cwd))},[ad,bk,aI,bm,V]),cf=async(a,b)=>{if(!aI&&"create"===aQ&&null===bc){bd(a),bh(null);try{await C.replaceDirectoryIgnore({cwd:a,ignored:b}),await Promise.all([b5(),b6()])}catch(a){bh(DS(a,u(b?"ignoreFailed":"restoreIgnoredFailed")))}finally{bd(null)}}},cg=(0,B.useCallback)(async a=>{let b=N?"activate":O;if("activate"===b){K.current=!1,aa({primaryWorkId:a.workId}),b$(a.workId),N&&ai(!1);return}if("pin"!==b)return;let c=function(a,b,c){Dd(a,b);let d=a.indexOf(c);if(d>=0&&d<b)return null;let e=a.filter(a=>a!==c);return e.splice(b,0,c),{workIds:e,pinnedCount:b+1}}(D.current.map(a=>a.workId),E.current,a.workId);if(c){aL(!0);try{b1(await C.sortWorkSessions(c))}catch(a){bo(DS(a,u("autoPinFailed")))}finally{aL(!1)}}},[b1,N,O,b$,C,u]),{model:ch,open:ci,close:cj,retry:ck,selectEntry:cl,requestAction:cm,clone:cn,confirmRunning:co,cancelRunning:cp,pendingWorkId:cq}=function({disabled:a,workSessions:b,workbenchBiz:c,chatInputRuntime:d,applyWorkSessionSnapshot:e,applyCreatedWorkSessionBehavior:f,focusWorkSession:g,onError:h,mobile:i}){let[j,k]=(0,B.useState)(null),[l,m]=(0,B.useState)(null),[n,o]=(0,B.useState)(!1),[p,q]=(0,B.useState)(null),[r,s]=(0,B.useState)(null),[t,u]=(0,B.useState)(!1),[v,w]=(0,B.useState)(null),[x,y]=(0,B.useState)(null),[z,A]=(0,B.useState)(null),C=(0,B.useRef)(0),D=(0,B.useRef)(null),E=(0,B.useRef)(0),F=(0,B.useRef)(null),G=(0,B.useRef)(new Map),H=(0,B.useRef)(null),I=(0,B.useCallback)(()=>{C.current+=1,D.current?.abort(),D.current=null,E.current+=1,F.current?.abort(),F.current=null,G.current.clear(),H.current=null,k(null),m(null),o(!1),q(null),s(null),u(!1),w(null),y(null)},[]),J=(0,B.useCallback)(()=>{z||I()},[z,I]),K=(0,B.useCallback)(async a=>{let b=++C.current;D.current?.abort();let d=new AbortController;D.current=d,E.current+=1,F.current?.abort(),F.current=null,G.current.clear(),k(a),m(null),o(!0),q(null),s(null),u(!1),w(null),y(null);try{let e=await c.getWorkSessionTree({workId:a.workId,sessionId:a.sessionId},d.signal);if(C.current!==b)return;m(e)}catch(a){if(C.current!==b||Df(a))return;q(De(a,zm("treeLoadFailed")))}finally{C.current===b&&(D.current===d&&(D.current=null),o(!1))}},[c]),L=(0,B.useCallback)(c=>{if(a)return;let d=b.find(a=>a.workId===c);d?(g(c),K(Dh(d))):h(zm("treeSourceInvalid"))},[a,g,K,h,b]),M=(0,B.useCallback)(()=>{j&&!a&&K(j)},[a,K,j]),N=(0,B.useCallback)(a=>{if(!j)return;let b=G.current.get(a);if(b){E.current+=1,F.current?.abort(),F.current=null,s(b),u(!1),w(null);return}let d=++E.current;F.current?.abort();let e=new AbortController;F.current=e,s(null),u(!0),w(null),c.getWorkSessionTreeEntry({workId:j.workId,sessionId:j.sessionId,entryId:a},e.signal).then(b=>{E.current===d&&(G.current.set(a,b),s(b))}).catch(a=>{E.current!==d||Df(a)||w(De(a,zm("treeDetailFailed")))}).finally(()=>{E.current===d&&(F.current===e&&(F.current=null),u(!1))})},[j,c]),O=(0,B.useCallback)(a=>{h(a)},[h]),P=(0,B.useCallback)(async(b,h)=>{if(a)return;let i="tree"===h.action?d.getState(b).text:null;A({source:b,intent:h,phase:"executing"}),q(null);try{let a=await c.branchWorkSession(function(a,b){let c={workId:a.workId,sessionId:a.sessionId};switch(b.action){case"tree":return{...c,action:"tree",entryId:b.entryId};case"fork":return{...c,action:"fork",entryId:b.entryId};case"clone":return{...c,action:"clone"}}}(b,h)),k={workSessions:a.workSessions,pinnedCount:a.pinnedCount};e(k);let l=a.workSessions.find(b=>b.workId===a.targetWorkId);if(!l)throw Error(zm("branchTargetMissing"));let m=Dh(l);if("tree"===h.action){var j;g(l.workId),await d.loadSource(m),d.setText(m,(j=i??"",a.editorText??j))}else null!==a.editorText&&(await d.loadSource(m),d.setText(m,a.editorText)),await f(l);A(null),H.current=null,I()}catch(a){A(null),H.current=null,y(a=>a?{...a,waiting:!1}:null),O(De(a,zm("branchOperationFailed")))}},[f,e,d,a,g,O,I,c]),Q=(0,B.useCallback)((a,b,c)=>{A({source:a,intent:b,phase:"waiting"}),y(a=>a?{...a,waiting:!0}:a),"main_running"===c.status&&d.interrupt(a).catch(a=>{A(null),H.current=null,y(a=>a?{...a,waiting:!1}:a),O(De(a,zm("interruptForBranchFailed")))})},[d,O]),R=(0,B.useCallback)((c,d)=>{if(a||z)return;H.current=null;let e=b.find(a=>a.workId===c.workId);if(!e||e.sessionId!==c.sessionId||e.branchId!==c.branchId)return void O(zm("treeChanged"));if("fork"===d.action||!Dg(e))return void P(c,d);let f="main_running"===e.status?"main":"background";i?Q(c,d,e):(y({intent:d,reason:f,waiting:!1}),k(c),q(null))},[a,P,i,z,O,Q,b]),S=(0,B.useCallback)((a,b)=>{j&&R(j,{action:b,entryId:a})},[R,j]),T=(0,B.useCallback)(a=>{let c=b.find(b=>b.workId===a);c?R(Dh(c),{action:"clone"}):h(zm("cloneUnavailable"))},[h,R,b]),U=(0,B.useCallback)(()=>{if(a||!j||!x||x.waiting||z)return;let c=b.find(a=>a.workId===j.workId);c?Dg(c)?Q(j,x.intent,c):P(j,x.intent):O(zm("branchUnavailable"))},[x,a,P,z,O,j,Q,b]),V=(0,B.useCallback)(()=>{if(x?.waiting||z)return;let a=x?.intent.action==="clone"&&null===l;y(null),a&&I()},[x,z,I,l]);return{model:(0,B.useMemo)(()=>{if(!j)return null;let c=b.find(a=>a.workId===j.workId),d=c?.sessionId===j.sessionId&&c.branchId===j.branchId;return z||x||d?{workId:j.workId,tree:l,loading:n,actionsDisabled:a,pending:null!==z,error:p,detail:r,detailLoading:t,detailError:v,runningConfirmation:x}:null},[x,r,v,t,a,p,n,z,j,l,b]),open:L,close:J,retry:M,selectEntry:N,requestAction:S,clone:T,confirmRunning:U,cancelRunning:V,pendingWorkId:z?.source.workId??null}}({disabled:aI,workSessions:V,workbenchBiz:C,chatInputRuntime:bz,applyWorkSessionSnapshot:b1,applyCreatedWorkSessionBehavior:cg,focusWorkSession:b$,onError:(0,B.useCallback)(a=>{x.error(a)},[x]),mobile:N}),cr=async a=>{if(!aI){bs.current+=1,a3(!1),bu.current+=1,a7(!1),a9(a),bh(null);try{let{workSession:b}=await C.createWorkSession({cwd:a});bh(null),aP(!1),await cg(b)}catch(a){bh(DS(a,u("createFailed")))}finally{a9(null)}}},cs=async a=>{if(!aI&&aU&&aW){if(!D.current.some(a=>a.workId===aU))return void bh(u("replaceTargetMissing"));bl(),L.current.add(aU),bb(a),bh(null);try{let b=await C.replaceWorkSession({workId:aU,cwd:aW,sessionId:a});if(b1(b),!b.workSessions.find(a=>a.workId===aU))throw Error(u("replacementMissing"));K.current=!1,b$(aU),bh(null),aP(!1),N&&ai(!1)}catch(a){bh(DS(a,u("replaceFailed")))}finally{L.current.delete(aU),bb(null)}}},ct=(0,B.useCallback)(async a=>{if(!aI&&null===be&&D.current.some(b=>b.workId===a)){L.current.add(a),bf(a),bo(null);try{let b=await C.replaceWorkSession({workId:a});if(b1(b),!b.workSessions.find(b=>b.workId===a))throw Error(u("emptyReplacementMissing"));K.current=!1,b$(a)}catch(a){bo(DS(a,u("replaceEmptyFailed")))}finally{L.current.delete(a),bf(null)}}},[b1,aI,be,b$,C,u]),cu=(0,B.useCallback)(a=>{am(a),"files"===a&&aq(!0)},[]),cv=(0,B.useCallback)(()=>{N&&ak(),ad&&!document.querySelector(`[data-work-id="${CSS.escape(ad)}"] [data-testid="session-file-layout"]`)&&S.expandWindow(ad)},[ad,ak,S,N]),cw=(0,B.useCallback)(()=>{bK&&ad&&(S.refreshTree(ad),T.refreshSnapshot(S.getDirectory(ad)))},[bK,ad,S,T]),cx=(0,B.useCallback)(a=>{aE(a)},[]),cy=(0,B.useCallback)(()=>{aE(null)},[]),cz=(0,B.useCallback)((a,b,c="session",d)=>{let e=D.current.find(b=>b.workId===a.workId&&b.sessionId===a.sessionId&&b.branchId===a.branchId);if(!e)return void x.error(u("sourceChanged"));if("standalone"===c){aC({source:{workId:e.workId,sessionId:e.sessionId,branchId:e.branchId},cwd:e.cwd,projectName:e.projectName,path:b,imagePaths:d}),ak();return}S.selectDirectory(e.workId,e.cwd),S.openFile(e.workId,b),b8(e.workId),ak();let f=document.querySelector(`[data-work-id="${CSS.escape(e.workId)}"] [data-testid="session-file-layout"]`);"expanded"!==c&&f?az&&aF():S.expandWindow(e.workId)},[az,ak,aF,S,b8,x,u]),cA=(0,B.useCallback)((a,b,c,d)=>{let e=y4.safeParse(b),f=y4.array().nonempty().optional().safeParse(d);e.success&&f.success&&(!f.data||"standalone"===c&&f.data.includes(e.data))?cz(a,e.data,c,f.data?[...new Set(f.data)]:void 0):x.error(u("invalidFilePath"))},[cz,x,u]),cB=(0,B.useCallback)((a,b)=>{let c=y4.safeParse(b);c.success?cz(a,c.data):x.error(u("invalidToolFilePath"))},[cz,x,u]),cC=(0,B.useCallback)(async(a,b)=>{let c=y4.safeParse(b);if(!c.success)throw Error(u("invalidFilePath"));let d=D.current.find(b=>b.workId===a.workId&&b.sessionId===a.sessionId&&b.branchId===a.branchId);if(!d)throw Error(u("sourceChanged"));await P.reveal({workId:d.workId,cwd:d.cwd,path:c.data})},[P,u]),cD=(0,B.useCallback)((a,b)=>{bO&&bP&&bQ?cA({workId:bO,sessionId:bP,branchId:bQ},a,b?.mode??"session",b?.imagePaths):x.error(u("noPreviewSession"))},[bQ,bP,bO,cA,x,u]),cE=(0,B.useCallback)(a=>bO&&bP&&bQ?cC({workId:bO,sessionId:bP,branchId:bQ},a):Promise.reject(Error(u("noRevealSession"))),[bQ,bP,bO,cC,u]),cF=(0,B.useCallback)(async a=>{await C.applyAppRuntimeUpdate({key:"notifications",update:{type:"delete",notificationId:a}})},[C]),cG=(0,B.useCallback)(async a=>{if(a.event)try{await y.dispatchNotificationEvent(a.notificationId,a.event),await cF(a.notificationId)}catch(a){x.error(DS(a,u("notificationActionFailed")))}},[cF,y,x,u]),cH=(0,B.useCallback)(async a=>{try{await cF(a)}catch(a){x.error(DS(a,u("notificationDeleteFailed")))}},[cF,x,u]),cI=(0,B.useCallback)(a=>{ak(),au(a),as(!0)},[ak]),cJ=(0,B.useCallback)(a=>{ak(),aA(a)},[ak]),cK=(0,B.useCallback)(a=>void cc(a),[cc]),cL=(0,B.useCallback)((a,b)=>void ca(a,b),[ca]),cM=(0,B.useCallback)(a=>void ct(a),[ct]),cN=(0,B.useCallback)(()=>{N?ai(a=>!a):ag(a=>!a)},[N]),cO=(0,B.useCallback)(a=>{b8(a),N?ai(!0):ag(!0)},[b8,N]),cP=N?ah:af,cQ=aD&&V.some(a=>a.workId===aD.workId&&a.cwd===aD.cwd)?aD:null,cR=(0,B.useMemo)(()=>ap&&bJ?(0,A.jsx)(B.Activity,{mode:cP&&"files"===al?"visible":"hidden",children:(0,A.jsx)(zt,{workId:bJ.workId,cwd:bJ.cwd,projectName:bJ.projectName,runtime:S,gitRuntime:T,onOpenGitBranches:cx,onFileOpened:cv},`${bJ.workId}:${bJ.sessionId}:${bJ.branchId}`)}):null,[bJ,ap,S,T,cv,cx,al,cP]),cS=cP&&bL&&bM?.kind==="session-sidebar-tab"&&bR&&bJ?(0,A.jsx)(DV,{render:n,input:{pluginName:bL.pluginName,descriptor:bM,source:bR,cwd:bJ.cwd,onPreviewFile:cD,onRevealFile:cE,onHeaderActionsChange:bU}}):null,cT=(0,A.jsx)(DN,{mode:al,mobile:N,fileBrowser:cR,pluginTabContent:cS,pluginHeaderActions:cP&&an?.targetKey===bT?an.actions:[],pluginSessionTabs:bC,fileRefreshLoading:bV?.directories.get("")?.status==="loading",canBrowseFiles:null!==bK,workSessions:V,focusedWorkId:ad,pinnedCount:X,ordering:aK,deletingWorkId:aM,canReplace:null!==ad,disabled:aI,pluginApplications:bB,settingsAttention:bH,notifications:Z.notifications,onConsumeNotification:cG,onDismissNotification:cH,onModeChange:cu,onRefreshFiles:cw,onPreviewProject:()=>{bK&&(ak(),S.collapseExpandedWindow(),y.previewProject(ad?S.getDirectory(ad):bK))},onPreviewProjectWindow:()=>{bK&&d(ad?S.getDirectory(ad):bK)},onOpenTerminal:()=>{ak(),S.collapseExpandedWindow(),c(bK??void 0).catch(()=>void 0)},onCreate:cd,onReplace:ce,onSettings:()=>cI(),onOpenPluginApplication:cJ,onSelect:b9,onTogglePin:cb,onDelete:cK,onRename:aJ.show,syncingWorkIds:by.syncingWorkIds,onReloadChat:by.reload,onArrangementChange:cL}),cU=(0,A.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col",children:[bn?(0,A.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-4 py-2 text-sm text-destructive",children:[(0,A.jsx)("span",{className:"min-w-0 flex-1 wrap-anywhere",children:bn}),(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>bq(a=>a+1),children:u("retry",{ns:"common"})}),"initial"!==aG?(0,A.jsx)(U.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>bo(null),children:u("close",{ns:"common"})}):null]}):null,(0,A.jsxs)("div",{className:"relative h-full min-h-0 min-w-0 flex-1",children:[(0,A.jsx)(C9,{workSessions:V,primaryWorkId:_.primaryWorkId,pinnedWorkIds:bA,focusedWorkId:ad,sidebarOpen:cP,mobile:N,loading:aI,replacingWithEmptyWorkId:be,chatRuntime:bx,chatInputRuntime:bz,renderTaskSummary:p,renderTaskMenu:q,renderPluginComposerPanel:r,renderPluginWidgets:s,renderPluginSessionHeader:t,gitRuntime:T,invokePluginMethod:C.invokePluginMethod,listPiCommands:C.listPiCommands,getChatModelContext:C.getChatModelContext,capabilityModes:Z.capabilityModes,setChatCapabilityMode:C.setChatCapabilityMode,branchPicker:ch,branchPendingWorkId:cq,fileRuntime:S,onOpenFileSidebar:cO,onPreviewFile:cB,onAcknowledgeCompleted:b_,onFocusWorkSession:b8,onReplaceWithEmptyWorkSession:cM,onOpenBranchPicker:ci,onOpenGitBranchPicker:cx,onOpenSettings:cI,onCloseBranchPicker:cj,onRetryBranchPicker:ck,onSelectBranchEntry:cl,onBranchAction:cm,onConfirmRunningBranch:co,onCancelRunningBranch:cp,onCloneWorkSession:cn,onUnpinWorkSession:cb,onToggleSidebar:cN}),"initial"===aG?(0,A.jsx)(Bk,{variant:"loading",className:"absolute inset-0 z-20 bg-background"}):null]})]}),cV=null!==az&&bI?.kind==="application",cW=(0,A.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1",children:[(0,A.jsx)(DV,{render:e,input:{mobile:N,children:cU}}),cV?(0,A.jsx)(DV,{render:m,input:{pluginName:az.pluginName,descriptor:bI,workSessions:V,preferredWorkId:ad,onClose:aF}}):null]});return(0,A.jsxs)("main",{className:"pi-desk-workbench flex h-dvh overflow-hidden bg-background",children:[(0,A.jsx)(zd,{mobile:N,open:cP,sidebar:cT,onClose:ak,children:cW}),(0,A.jsx)(zB,{target:aB,biz:P,images:S.standaloneImages,mobile:N,onClose:()=>aC(null)},aB?`${aB.source.workId}:${aB.source.sessionId}:${aB.source.branchId}:${aB.path}`:"closed"),(0,A.jsx)(zJ,{workSessions:V,runtime:S,gitRuntime:T,mobile:N,onOpenGitBranches:cx,onOpenSidebar:cO,onOpenTerminal:a=>{S.collapseExpandedWindow(),ak(),c(a).catch(()=>void 0)}}),(0,A.jsx)(zR,{target:cQ,runtime:T,mobile:N,onClose:cy},cQ?`${cQ.workId}:${cQ.cwd}:${cQ.repositoryRoot??""}`:"git-branch-picker-closed"),(0,A.jsx)(DV,{render:o,input:{open:ar,connectionReady:"ready"===aG,initialPage:at,capabilityModes:Z.capabilityModes,workSessions:V,focusedCwd:bK,basicMode:"basic"===Z.mode,pluginManagementSnapshot:av,pluginAttention:bH,onPluginManagementSnapshot:bY,onPluginRestartScheduled:bZ,onOpenChange:as,onBeforeReload:()=>bz.prepareForPageReload()}}),(0,A.jsx)(Di,{open:aJ.open,title:aJ.title,saving:aJ.saving,disabled:aI,error:aJ.error,onTitleChange:aJ.setTitle,onSave:()=>void aJ.save(),onClose:aJ.close}),(0,A.jsx)(Bj,{open:aO,pickerMode:aQ,pickerView:aS,pickerCwd:aW,directories:aY,ignoredDirectories:a$,directoryBrowser:a0,historySessions:bi,replacementTarget:"create"===aQ?null:bW,unavailableSessionIds:bX,error:bg,loading:"history"===aS?bj:"ignored"===aS?a4:"browser"===aS?a6:a2,creatingCwd:a8,replacingSessionId:ba,updatingIgnoreCwd:bc,onOpenChange:a=>{aP(a),a||(bs.current+=1,a3(!1),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl(),aR(null),aT("directories"),bh(null))},onBack:()=>{bh(null),bt.current+=1,a5(!1),bu.current+=1,a7(!1),bl();let a=DT((lC(),ly));a&&aZ(a),aT("directories"),aX(null),b5()},onSearchHistory:(a,b)=>{"history"===aS&&aW&&bk(aW,a,b)},onListSessionUserMessages:(a,b)=>C.listSessionUserMessages(a,b),onRefresh:(a,b)=>{"history"===aS&&aW?bk(aW,a,b,!0):"ignored"===aS?b6(!0):"browser"===aS?b7(a0?.cwd??null):b5(!0)},onOpenIgnoredDirectories:()=>{if(aI||"create"!==aQ)return;let a=DT((lC(),lz));a?a_(a):a_([]),bh(null),bs.current+=1,a3(!1),bu.current+=1,a7(!1),aT("ignored"),b6()},onOpenDirectoryBrowser:()=>{aI||"create"!==aQ||(bh(null),bs.current+=1,a3(!1),bt.current+=1,a5(!1),aT("browser"),a1(DU(lG(null))),b7(null))},onNavigateDirectory:a=>{if(aI||"create"!==aQ)return;let b=DU(lG(a));b&&a1(b),b7(a)},onSelectBrowserDirectory:a=>void cr(a),onReplaceDirectoryIgnore:(a,b)=>void cf(a,b),onSelectDirectory:a=>{"replace"===aQ?(bs.current+=1,a3(!1),aT("history"),aX(a),bm(a),bk(a)):cr(a)},onSelectSession:a=>void cs(a)})]})}function DX(a){return(0,A.jsx)(cr,{...a},`${a.pluginName}:${a.descriptor.contributionName}`)}function DY(a){return(0,A.jsx)(i8,{...a},`${a.pluginName}:${a.descriptor.contributionName}:${a.source.workId}:${a.source.sessionId}:${a.source.branchId}`)}function DZ(a){let b=JSON.stringify([a.source.workId,a.source.sessionId,a.source.branchId]);return(0,A.jsx)(cs,{...a},`${a.pluginName}:${a.descriptor.contributionName}:${b}`)}function D$(a){return(0,A.jsx)(ja,{...a},`${a.source.workId}:${a.source.sessionId}:${a.source.branchId}:${a.placement}`)}function D_(a){return(0,A.jsx)(je,{...a},`${a.source.workId}:${a.source.sessionId}:${a.source.branchId}`)}function D0(a){return(0,A.jsx)(i9,{...a},`${a.pluginName}:${a.descriptor.contributionName}`)}function D1(){let{clientId:a,appSocket:b}=(0,bN.gM)();(0,bF.t4)();let c=(0,bG.G)(),d=(0,B.useMemo)(()=>new P(b,c.error),[b,c.error]),e=(0,B.useCallback)(a=>(0,A.jsx)(bE,{...a,biz:d}),[d]),f=(0,B.useMemo)(()=>({subscribeChanges:a=>b.subscribe(iX,a),list:(b=!1)=>i7(a,"/api/plugins/list",i1.parse("boolean"==typeof b?b?{checkUpdates:!0}:{}:b),i$),batch:b=>i7(a,"/api/plugins/batch",i4.parse(b),i5),get:b=>i7(a,"/api/plugins/get",i2.parse({source:b}),iZ),add:b=>i7(a,"/api/plugins/add",i3.parse(b),i$),setEnabled:(b,c)=>i7(a,"/api/plugins/enabled-set",i6.parse({source:b,enabled:c}),i$),searchCatalog:b=>i7(a,"/api/plugin-catalog/search",dD.parse(b),dG),getCatalog:b=>i7(a,"/api/plugin-catalog/get",dE.parse(b),dH),getCatalogSettings:()=>i7(a,"/api/plugin-catalog/settings-get",{},dB),saveCatalogSettings:b=>i7(a,"/api/plugin-catalog/settings-replace",dC.parse({downloadSource:b}),dB),update:b=>i7(a,"/api/plugins/update",i2.parse({source:b}),i$),del:b=>i7(a,"/api/plugins/del",i2.parse({source:b}),i$),reload:b=>i7(a,"/api/plugins/reload",i0.parse({mode:b}),i$),apply:b=>i7(a,"/api/plugins/apply",i_.parse({sources:b}),i$)}),[a,b]),g=(0,B.useMemo)(()=>(function(a,b){async function c(b,c){let d=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":a},body:JSON.stringify(c)}),e=await d.json();if(!d.ok||0!==e.code||null===e.data)throw Error(e.msg?(0,bS.B)(e):"请求失败");return e.data}return{watchDetail:a=>b.request(px.detailWatch,a),async interrupt(a){await b.request(px.interrupt,a)},subscribeDetailEvents:a=>b.subscribe(px.detailEvent,a),getMessageDetail:a=>c("/api/task-center/messages/get",a),getImage:a=>c("/api/task-center/images/get",a)}})(a,b),[b,a]),h=(0,B.useMemo)(()=>{let a,b,c,d,e,f,h,i,j,k,l,m,n,o,p,q;return a=new Set,b=new Map,c=y_,d=0,e=0,f=!1,h=null,i=()=>void 0,j=null,k=!1,l=()=>{for(let b of[...a])try{b()}catch(a){console.error("[Pi Desk][TaskCenterClient] 状态监听器执行失败",{errorName:a instanceof Error?a.name:"UnknownError"})}},m=(a,b=!1)=>{c=a,((a=!1)=>{if(a){if(j)return;j=setTimeout(()=>{j=null,l()},16);return}j&&clearTimeout(j),j=null,l()})(b)},n=a=>{for(let[c,d]of b)(void 0===a||d.taskId===a)&&(URL.revokeObjectURL(d.url),b.delete(c))},o=()=>{if(!c.open&&null===c.source)return;let a=c.source;d+=1,f=!1,m(y_),n(),a&&g.watchDetail({source:a,taskId:null}).catch(()=>void 0)},p=a=>{if(k||!c.open||!f||!y0(c.source,a.source)||c.selectedTaskId!==a.taskId)return;let b=c.details[a.taskId];if(b)try{let d=function(a,b){var c,d;if("snapshot"===b.type)return yY(a,b.snapshot);if("unavailable"===b.type)return null;if("text_append"===b.type){if(a.body?.kind!=="text")throw Error("Text append requires a text task detail snapshot");return{...a,body:{...a.body,text:a.body.text+b.text}}}if(a.body?.kind!=="conversation")throw Error("Conversation event requires a conversation task detail snapshot");return{...a,body:{...(c=a.body,"durable_append"===(d=b.event).type?function(a,b){let c=a.messages.length;if(b.messages[0]?.location.index!==c)throw Error(`Conversation append index is not continuous: expected ${c}, received ${b.messages[0]?.location.index}`);let d=new Set(a.messages.map(a=>a.location.entryId));for(let a of b.messages){if(d.has(a.location.entryId))throw Error(`Conversation append entryId already exists: ${a.location.entryId}`);d.add(a.location.entryId)}return{...a,messages:[...a.messages,...b.messages]}}(c,d):yW(c,d)),kind:"conversation",truncated:a.body.truncated}}}(b,a.event);if(!d){let b={...c.details};delete b[a.taskId],n(a.taskId),m({...c,details:b,loading:!1,refreshing:!1,error:y$("detailUnavailable")});return}let e="text_append"===a.event.type||"conversation_event"===a.event.type&&"message_update"===a.event.event.type;m({...c,details:{...c.details,[a.taskId]:d},loading:!1,refreshing:!1,error:null},e)}catch(b){f=!1,i(b),q(a.taskId)}},q=async a=>{if(k||!c.open||!c.source)return;let b=a.trim();if(!b)return;let h=c.source,i=++d,j=e,l=c.details[b];f=!1,m({...c,selectedTaskId:b,loading:void 0===l,refreshing:void 0!==l,error:null});try{let a=await g.watchDetail({source:h,taskId:b});if(k||i!==d||j!==e||!c.open||!y0(c.source,h)||c.selectedTaskId!==b)return;if(!a.snapshot)throw Error(y$("detailResponseMissing"));let n=pp.parse(a.snapshot),o=l?yY(l,n):n;m({...c,details:{...c.details,[b]:o},loading:!1,refreshing:!1,error:null}),f=!0}catch(a){if(i!==d||!c.open||c.selectedTaskId!==b)return;m({...c,loading:!1,refreshing:!1,error:a instanceof Error?a.message:y$("detailLoadFailed")})}},{start(a){i=a,h||(k=!1,h=g.subscribeDetailEvents(p))},subscribe:b=>(a.add(b),()=>a.delete(b)),getState:()=>c,open(a,b){let e=pa.R.parse(a);c.open&&y0(c.source,e)||(d+=1,f=!1,n(),m({...y_,open:!0,source:e})),b&&q(b)},close:o,selectTask(a){q(a)},reconcileWorkSessions(a){if(!c.open||!c.source)return;let b=a.find(a=>a.workId===c.source?.workId);b&&b.sessionId===c.source.sessionId&&b.branchId===c.source.branchId||o()},reconcileTasks(a,b){let e=pa.R.parse(a);if(!c.open||!y0(c.source,e))return;let g=new Set(b.map(a=>a.taskId)),h={...c.details},i=!1;for(let a of Object.keys(h))g.has(a)||(delete h[a],n(a),i=!0);if(c.selectedTaskId&&!g.has(c.selectedTaskId)){d+=1,f=!1,m({...c,selectedTaskId:null,details:h,loading:!1,refreshing:!1,error:null});return}i&&m({...c,details:h})},async interruptSelected(){c.open&&c.source&&c.selectedTaskId&&await g.interrupt({source:c.source,taskId:c.selectedTaskId})},async loadMessageDetail(a){let b=c.source,d=c.selectedTaskId;if(!c.open||!b||!d||!a.durable)return null;let e=c.details[d];if(!e||e.body?.kind!=="conversation")return null;if(void 0!==a.detail)return a.detail;if(!a.snapshot.fixed.hasDetail)return null;let f=await g.getMessageDetail({source:b,taskId:d,entryId:a.durable.location.entryId}),h=c.details[d];return h&&m({...c,details:{...c.details,[d]:function(a,b){if(a.body?.kind!=="conversation")throw Error("Task message detail requires a conversation snapshot");return pp.parse({...a,body:{kind:"conversation",truncated:a.body.truncated,...yX(a.body,b)}})}(h,f)}}),f.detail},async acquireImage(a,d){let e=c.source,f=c.selectedTaskId,h=a.durable?.location.entryId;if(!c.open||!e||!f||!h)throw Error(y$("imageDurableOnly"));let i=JSON.stringify([e.workId,e.sessionId,e.branchId,f,h,d]),j=b.get(i);if(j)return{url:j.url,release:()=>void 0};let k=await g.getImage({source:e,taskId:f,entryId:h,imageIndex:d});if(!c.open||!y0(c.source,e))throw Error(y$("centerClosed"));let l=b.get(i);if(l)return{url:l.url,release:()=>void 0};let m=URL.createObjectURL((0,yZ.E)(k));return b.set(i,{taskId:f,url:m}),{url:m,release:()=>void 0}},disconnected(){e+=1,f=!1,c.open&&m({...c,loading:null!==c.selectedTaskId&&void 0===c.details[c.selectedTaskId],refreshing:null!==c.selectedTaskId&&void 0!==c.details[c.selectedTaskId]})},reconnected(){c.open&&c.selectedTaskId&&q(c.selectedTaskId)},dispose(){if(k)return;k=!0;let b=c.source;d+=1,e+=1,f=!1,h?.(),h=null,n(),b&&g.watchDetail({source:b,taskId:null}).catch(()=>void 0),c=y_,j&&clearTimeout(j),j=null,a.clear(),i=()=>void 0}}},[g]),i=(0,B.useCallback)(a=>(0,A.jsx)(yN,{...a,runtime:h,variant:"summary"}),[h]),j=(0,B.useCallback)(a=>(0,A.jsx)(yN,{...a,runtime:h,variant:"menu"}),[h]),k=(0,B.useCallback)(a=>(0,A.jsx)(oL,{open:a.open,connectionReady:a.connectionReady,initialModelTab:"model-presets"===a.initialPage?"presets":void 0,workSessions:a.workSessions,focusedCwd:a.focusedCwd,pluginAttention:a.pluginAttention,onOpenChange:a.onOpenChange,onBeforeReload:a.onBeforeReload,renderPluginSettingsPage:D0,renderMcpSettings:({onBeforeLeaveChange:b})=>(0,A.jsx)(o9,{projects:a.workSessions,focusedCwd:a.focusedCwd,onBeforeLeaveChange:b}),renderCapabilityModesSettings:({onBeforeLeaveChange:b})=>(0,A.jsx)(b5,{modeNames:a.capabilityModes,onBeforeLeaveChange:b}),renderPluginManagement:()=>(0,A.jsx)(iD,{basicMode:a.basicMode,snapshot:a.pluginManagementSnapshot,biz:f,onSnapshot:a.onPluginManagementSnapshot,onRestartScheduled:a.onPluginRestartScheduled})},`${a.open}:${a.initialPage??"default"}`),[f]);return(0,A.jsx)(DW,{onTerminalReady:d.connected,onTerminalDisconnected:d.disconnected,onOpenTerminal:d.open,onOpenProjectPreviewWindow:a=>{window.open((0,D.F)(a),"_blank","noopener,noreferrer")},renderTerminalWorkspace:e,listPluginManagement:f.list,subscribePluginManagementChanges:f.subscribeChanges,onTaskCenterStart:h.start,onTaskCenterDispose:h.dispose,onTaskCenterReconcileWorkSessions:h.reconcileWorkSessions,onTaskCenterDisconnected:h.disconnected,onTaskCenterReconnected:h.reconnected,renderPluginApplication:DX,renderPluginSessionSidebarTab:DY,renderPluginComposerPanel:DZ,renderPluginWidgets:D$,renderPluginSessionHeader:D_,renderSettings:k,renderTaskSummary:i,renderTaskMenu:j})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74349:a=>{a.exports={sessionPanelGroup:"l2-workbench-motion_sessionPanelGroup__83WwS",panelGroup:"l2-workbench-motion_panelGroup__yxZEK",drawer:"l2-workbench-motion_drawer____5mR",backdrop:"l2-workbench-motion_backdrop__F0q19",columnContent:"l2-workbench-motion_columnContent__1RfUq"}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76482:(a,b,c)=>{"use strict";c.d(b,{i:()=>e});var d=c(58483);function e(a){return(0,d.i)(a)}},76499:(a,b,c)=>{"use strict";c.d(b,{G6:()=>h,Kc:()=>k,W:()=>e,Xm:()=>g,mj:()=>f,uZ:()=>j});var d=c(87883);let e=d.Ik({password:d.Yj().min(1).max(64)}).strict(),f=d.Ik({}).strict();d.Ik({}).strict();let g=d.Ik({}).strict();d.Ik({}).strict();let h=d.Ik({enabled:d.zM(),configPath:d.Yj()}).strict(),i=d.Yj().min(12).max(64).refine(a=>a===a.trim()&&!/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u.test(a)).refine(a=>[/[A-Z]/,/[a-z]/,/[0-9]/,/[\p{P}\p{S}]/u].filter(b=>b.test(a)).length>=3),j=d.KC([e.extend({password:i}),d.Ik({password:d.ch()}).strict()]),k=d.Ik({}).strict()},76760:a=>{"use strict";a.exports=require("node:path")},77594:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(97808),e=c(44599);class f{constructor(){this.type=e.Z.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=e.Z.ALL}is(a){return this.type===a}}class g{constructor(a,b){this.color=b,this.changed=!1,this.data=a,this.type=new f}set(a,b){return this.color=b,this.changed=!1,this.data=a,this.type.type=e.Z.ALL,this}_ensureHSL(){let a=this.data,{h:b,s:c,l:e}=a;void 0===b&&(a.h=d.A.channel.rgb2hsl(a,"h")),void 0===c&&(a.s=d.A.channel.rgb2hsl(a,"s")),void 0===e&&(a.l=d.A.channel.rgb2hsl(a,"l"))}_ensureRGB(){let a=this.data,{r:b,g:c,b:e}=a;void 0===b&&(a.r=d.A.channel.hsl2rgb(a,"r")),void 0===c&&(a.g=d.A.channel.hsl2rgb(a,"g")),void 0===e&&(a.b=d.A.channel.hsl2rgb(a,"b"))}get r(){let a=this.data,b=a.r;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"r")):b}get g(){let a=this.data,b=a.g;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"g")):b}get b(){let a=this.data,b=a.b;return this.type.is(e.Z.HSL)||void 0===b?(this._ensureHSL(),d.A.channel.hsl2rgb(a,"b")):b}get h(){let a=this.data,b=a.h;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"h")):b}get s(){let a=this.data,b=a.s;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"s")):b}get l(){let a=this.data,b=a.l;return this.type.is(e.Z.RGB)||void 0===b?(this._ensureRGB(),d.A.channel.rgb2hsl(a,"l")):b}get a(){return this.data.a}set r(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.r=a}set g(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.g=a}set b(a){this.type.set(e.Z.RGB),this.changed=!0,this.data.b=a}set h(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.h=a}set s(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.s=a}set l(a){this.type.set(e.Z.HSL),this.changed=!0,this.data.l=a}set a(a){this.changed=!0,this.data.a=a}}let h=new g({r:0,g:0,b:0,a:0},"transparent")},77598:a=>{"use strict";a.exports=require("node:crypto")},82709:(a,b,c)=>{"use strict";c.d(b,{N:()=>e});var d=c(87883);let e=d.Ik({key:d.Yj().min(1).max(160),params:d.g1(d.Yj().min(1).max(80),d.KC([d.Yj().max(1e3),d.ai().finite()])).optional()}).strict()},83383:(a,b,c)=>{Promise.resolve().then(c.bind(c,71152)),Promise.resolve().then(c.bind(c,99920))},83959:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(97808),e=c(9850);let f=(a,b)=>{let c=e.A.parse(a);for(let a in b)c[a]=d.A.channel.clamp[a](b[a]);return e.A.stringify(c)}},84541:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=c(87785);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},85711:(a,b,c)=>{"use strict";b.J=function(a){if(!a)return d.BLANK_URL;var b,c=e(a.trim());do b=(c=e(c=c.replace(d.ctrlCharactersRegex,"").replace(d.htmlEntitiesRegex,function(a,b){return String.fromCharCode(b)}).replace(d.htmlCtrlEntityRegex,"").replace(d.ctrlCharactersRegex,"").replace(d.whitespaceEscapeCharsRegex,"").trim())).match(d.ctrlCharactersRegex)||c.match(d.htmlEntitiesRegex)||c.match(d.htmlCtrlEntityRegex)||c.match(d.whitespaceEscapeCharsRegex);while(b&&b.length>0);var f=c;if(!f)return d.BLANK_URL;if(d.relativeFirstCharacters.indexOf(f[0])>-1)return f;var g=f.trimStart(),h=g.match(d.urlSchemeRegex);if(!h)return f;var i=h[0].toLowerCase().trim();if(d.invalidProtocolRegex.test(i))return d.BLANK_URL;var j=g.replace(/\\/g,"/");if("mailto:"===i||i.includes("://"))return j;if("http:"===i||"https:"===i){if(!URL.canParse(j))return d.BLANK_URL;var k=new URL(j);return k.protocol=k.protocol.toLowerCase(),k.hostname=k.hostname.toLowerCase(),k.toString()}return j};var d=c(99842);function e(a){try{return decodeURIComponent(a)}catch(b){return a}}},86007:(a,b,c)=>{"use strict";c.d(b,{$V:()=>g,Av:()=>d,GX:()=>o,ML:()=>y,NA:()=>l,OG:()=>e,Qb:()=>q,R_:()=>h,Uw:()=>m,VP:()=>i,XZ:()=>u,ZR:()=>t,_u:()=>w,cT:()=>n,i1:()=>v,iq:()=>p,kj:()=>f,pj:()=>k,q:()=>r,ri:()=>x,vC:()=>j,x6:()=>s});let d="[object RegExp]",e="[object String]",f="[object Number]",g="[object Boolean]",h="[object Arguments]",i="[object Symbol]",j="[object Date]",k="[object Map]",l="[object Set]",m="[object Array]",n="[object ArrayBuffer]",o="[object Object]",p="[object DataView]",q="[object Uint8Array]",r="[object Uint8ClampedArray]",s="[object Uint16Array]",t="[object Uint32Array]",u="[object Int8Array]",v="[object Int16Array]",w="[object Int32Array]",x="[object Float32Array]",y="[object Float64Array]"},88131:(a,b,c)=>{"use strict";c.d(b,{XX:()=>m,q7:()=>n,sO:()=>l});var d=c(38863),e=c(35705),f=c(18767),g=c(4629),h=c(44272),i=c(36122),j={common:g.Y2,getConfig:g.zj,insertCluster:e.U,insertEdge:d.Jo,insertEdgeLabel:d.jP,insertMarkers:d.g0,insertNode:e.on,interpolateToCurve:f.Ib,labelHelper:e.Zk,log:h.R,positionEdgeLabel:d.T_},k={},l=(0,i.K)(a=>{for(let b of a)k[b.name]=b},"registerLayoutLoaders");(0,i.K)(()=>{l([{name:"dagre",loader:(0,i.K)(async()=>await Promise.all([c.e(21723),c.e(35807),c.e(88882),c.e(88341),c.e(49513)]).then(c.bind(c,49513)),"loader")},{name:"swimlane",loader:(0,i.K)(async()=>await Promise.all([c.e(21723),c.e(35807),c.e(88341),c.e(79450)]).then(c.bind(c,79450)),"loader")},{name:"cose-bilkent",loader:(0,i.K)(async()=>await Promise.all([c.e(41),c.e(10027)]).then(c.bind(c,10027)),"loader")}])},"registerDefaultLayoutLoaders")();var m=(0,i.K)(async(a,b,c)=>{if(!(a.layoutAlgorithm in k))throw Error(`Unknown layout algorithm: ${a.layoutAlgorithm}`);if(a.diagramId)for(let b of a.nodes){let c=b.domId||b.id;b.domId=`${a.diagramId}-${c}`}let d=k[a.layoutAlgorithm],e=await d.loader(),{theme:f,themeVariables:g}=a.config,{useGradient:h,gradientStart:i,gradientStop:l}=g,m=b.attr("id");if(b.append("defs").append("filter").attr("id",`${m}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${f?.includes("dark")?"#FFFFFF":"#000000"}`),b.append("defs").append("filter").attr("id",`${m}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${f?.includes("dark")?"#FFFFFF":"#000000"}`),h){let a=b.append("linearGradient").attr("id",b.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");a.append("svg:stop").attr("offset","0%").attr("stop-color",i).attr("stop-opacity",1),a.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return e.render(a,b,j,{algorithm:d.algorithm},c)},"render"),n=(0,i.K)((a="",{fallback:b="dagre"}={})=>{if(a in k)return a;if(b in k)return h.R.warn(`Layout algorithm ${a} is not registered. Using ${b} as fallback.`),b;throw Error(`Both layout algorithms ${a} and ${b} are not registered.`)},"getRegisteredLayoutAlgorithm")},92471:(a,b,c)=>{"use strict";c.d(b,{Fr:()=>k,GX:()=>j,KX:()=>i,WW:()=>g,ue:()=>f});var d=c(4629),e=c(36122),f=(0,e.K)(a=>{let{handDrawnSeed:b}=(0,d.D7)();return{fill:a,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:a,seed:b}},"solidStateFill"),g=(0,e.K)(a=>{let b=h([...a.cssCompiledStyles||[],...a.cssStyles||[],...a.labelStyle||[]]);return{stylesMap:b,stylesArray:[...b]}},"compileStyles"),h=(0,e.K)(a=>{let b=new Map;return a.forEach(a=>{let[c,d]=a.split(":");b.set(c.trim(),d?.trim())}),b},"styles2Map"),i=(0,e.K)(a=>"color"===a||"font-size"===a||"font-family"===a||"font-weight"===a||"font-style"===a||"text-decoration"===a||"text-align"===a||"text-transform"===a||"line-height"===a||"letter-spacing"===a||"word-spacing"===a||"text-shadow"===a||"text-overflow"===a||"white-space"===a||"word-wrap"===a||"word-break"===a||"overflow-wrap"===a||"hyphens"===a,"isLabelStyle"),j=(0,e.K)(a=>{let{stylesArray:b}=g(a),c=[],d=[],e=[],f=[];return b.forEach(a=>{let b=a[0];i(b)?c.push(a.join(":")+" !important"):(d.push(a.join(":")+" !important"),b.includes("stroke")&&e.push(a.join(":")+" !important"),"fill"===b&&f.push(a.join(":")+" !important"))}),{labelStyles:c.join(";"),nodeStyles:d.join(";"),stylesArray:b,borderStyles:e,backgroundStyles:f}},"styles2String"),k=(0,e.K)((a,b)=>{let{themeVariables:c,handDrawnSeed:e}=(0,d.D7)(),{nodeBorder:f,mainBkg:h}=c,{stylesMap:i}=g(a);return Object.assign({roughness:.7,fill:i.get("fill")||h,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:i.get("stroke")||f,seed:e,strokeWidth:i.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:l(i.get("stroke-dasharray"))},b)},"userNodeOverrides"),l=(0,e.K)(a=>{if(!a)return[0,0];let b=a.trim().split(/\s+/).map(Number);if(1===b.length){let a=isNaN(b[0])?0:b[0];return[a,a]}return[isNaN(b[0])?0:b[0],isNaN(b[1])?0:b[1]]},"getStrokeDashArray")},94283:(a,b,c)=>{"use strict";c.d(b,{AA:()=>o,C3:()=>j,Kx:()=>i,MT:()=>l,MY:()=>p,_A:()=>k,eW:()=>g,ik:()=>h,jw:()=>n,kg:()=>q});var d=c(87883),e=c(23423),f=c(41994);let g=d.Yj().trim().min(1),h=e.m4,i=e.$E,j=e.Rv,k=d.Yj().trim().min(1),l=d.ai().int().nonnegative(),m=d.Ik({workId:g,cwd:h,sessionId:i}).strict();d.YO(m);let n=d.k5(["main_running","background_running","completed","idle"]),o=d.Ik({user:d.ai().int().nonnegative(),total:d.ai().int().nonnegative()}).strict().refine(a=>a.user<=a.total,{message:"user message count cannot exceed total message count"}),p=m.extend({branchId:k,projectName:d.Yj().trim().min(1),sessionTitle:d.Yj().trim().min(1).nullable(),status:n,messageCounts:o,lastMessageUpdatedAt:f.k.nullable()}).strict(),q=d.Ik({workSessions:d.YO(p),pinnedCount:l}).strict().refine(a=>a.pinnedCount<=a.workSessions.length,{message:"pinnedCount cannot exceed work session count",path:["pinnedCount"]});d.Ik({cwd:h,sessionId:i.optional()}).strict(),d.Ik({workSession:p}).strict(),d.Ik({workId:g,sessionId:i,title:d.Yj().trim().min(1)}).strict(),d.Ik({workId:g}).strict(),d.Ik({workIds:d.YO(g),pinnedCount:l}).strict().superRefine((a,b)=>{new Set(a.workIds).size!==a.workIds.length&&b.addIssue({code:"custom",message:"workIds cannot contain duplicates",path:["workIds"]}),a.pinnedCount>a.workIds.length&&b.addIssue({code:"custom",message:"pinnedCount cannot exceed workIds length",path:["pinnedCount"]})}),d.KC([d.Ik({workId:g,cwd:h,sessionId:i}).strict(),d.Ik({workId:g}).strict()])},96519:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>q,handler:()=>s,routeModule:()=>r});var d=c(85426),e=c(3372),f=c(2629),g=c(86804),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,19623))),j=(0,d.p)(()=>Promise.resolve().then(c.bind(c,56951))),k=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70961))),l=(0,d.p)(()=>Promise.resolve().then(c.bind(c,82117))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,10719,23))),n=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,58434,23))),o={children:["",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,69388))),"/home/runner/work/pi-desk/pi-desk/src/app/page.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[i,"/home/runner/work/pi-desk/pi-desk/src/app/layout.tsx"],error:[j,"/home/runner/work/pi-desk/pi-desk/src/app/error.tsx"],"global-error":[k,"/home/runner/work/pi-desk/pi-desk/src/app/global-error.tsx"],"not-found":[l,"/home/runner/work/pi-desk/pi-desk/src/app/not-found.tsx"],forbidden:[m,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[n,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,5057)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}},[]]}.children,p=(0,e.H)({tree:o,page:"/page",pathname:"/",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),q=p.__next_app__,r=p.routeModule,s=p.handler},97808:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});let d={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:a=>a>=255?255:a<0?0:a,g:a=>a>=255?255:a<0?0:a,b:a=>a>=255?255:a<0?0:a,h:a=>a%360,s:a=>a>=100?100:a<0?0:a,l:a=>a>=100?100:a<0?0:a,a:a=>a>=1?1:a<0?0:a},toLinear:a=>{let b=a/255;return a>.03928?Math.pow((b+.055)/1.055,2.4):b/12.92},hue2rgb:(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a,hsl2rgb:({h:a,s:b,l:c},e)=>{if(!b)return 2.55*c;a/=360,b/=100;let f=(c/=100)<.5?c*(1+b):c+b-c*b,g=2*c-f;switch(e){case"r":return 255*d.hue2rgb(g,f,a+1/3);case"g":return 255*d.hue2rgb(g,f,a);case"b":return 255*d.hue2rgb(g,f,a-1/3)}},rgb2hsl:({r:a,g:b,b:c},d)=>{let e=Math.max(a/=255,b/=255,c/=255),f=Math.min(a,b,c),g=(e+f)/2;if("l"===d)return 100*g;if(e===f)return 0;let h=e-f;if("s"===d)return 100*(g>.5?h/(2-e-f):h/(e+f));switch(e){case a:return((b-c)/h+6*(b<c))*60;case b:return((c-a)/h+2)*60;case c:return((a-b)/h+4)*60;default:return -1}}},e={channel:d,lang:{clamp:(a,b,c)=>b>c?Math.min(b,Math.max(c,a)):Math.min(c,Math.max(b,a)),round:a=>Math.round(1e10*a)/1e10},unit:{dec2hex:a=>{let b=Math.round(a).toString(16);return b.length>1?b:`0${b}`}}}},98945:(a,b,c)=>{"use strict";c.d(b,{Dz:()=>h,f7:()=>g,tv:()=>f});var d=c(87883);let e=d.Yj().trim().min(1).max(64).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/),f=e,g=e,h=d.g1(d.Yj(),d.Pq());d.Yj().trim().min(3).max(129).regex(/^[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*$/);let i=d.k5(["plugin","server","rocket","settings","panel","message","terminal","file","folder","bot","wrench","database","globe"]);d.gM("type",[d.Ik({type:d.eu("builtin"),name:i}).strict(),d.Ik({type:d.eu("svg"),content:d.Yj().trim().min(1).max(16384)}).strict()])},99022:(a,b,c)=>{"use strict";c.d(b,{k:()=>k});var d=c(52834),e=c(72175),f=c(24811),g=c(49147),h=c(57850),i=c(15620),j=c(11071);function k({className:a,disabled:b,id:c,...l}){let{t:m}=(0,h.Bd)("common"),[n,o]=(0,g.useState)(!1),p=m(n?"hidePassword":"showPassword");return(0,d.jsxs)("div",{className:"relative min-w-0",children:[(0,d.jsx)(j.p,{...l,id:c,disabled:b,type:n?"text":"password",autoCapitalize:"none",spellCheck:!1,className:(0,i.cn)("pr-9",a)}),(0,d.jsx)("button",{type:"button",className:"absolute top-1/2 right-1 flex size-6 -translate-y-1/2 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50","aria-label":p,"aria-controls":c,"aria-pressed":n,title:p,disabled:b,onClick:()=>o(a=>!a),children:n?(0,d.jsx)(e.A,{className:"size-4","aria-hidden":"true"}):(0,d.jsx)(f.A,{className:"size-4","aria-hidden":"true"})})]})}},99842:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.BLANK_URL=b.relativeFirstCharacters=b.whitespaceEscapeCharsRegex=b.urlSchemeRegex=b.ctrlCharactersRegex=b.htmlCtrlEntityRegex=b.htmlEntitiesRegex=b.invalidProtocolRegex=void 0,b.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,b.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,b.htmlCtrlEntityRegex=/&(newline|tab);/gi,b.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,b.urlSchemeRegex=/^.+(:|&colon;)/gim,b.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,b.relativeFirstCharacters=[".","/"],b.BLANK_URL="about:blank"},99920:(a,b,c)=>{"use strict";c.d(b,{L1AppRuntimeProvider:()=>ao});var d=c(52834),e=c(49147),f=c(37222),g=c(18513),h=c(10905),i=c(8579),j=c(87883),k=c(16340),l=c(98945);j.Yj().min(32).max(128).regex(/^[A-Za-z0-9_-]+$/);let m="/api/plugins/host-runtime/v1";Object.freeze({imports:Object.freeze({react:`${m}/base.js`,"react/jsx-runtime":`${m}/base.js`,"react/jsx-dev-runtime":`${m}/base.js`,"react-dom":`${m}/base.js`,"react-dom/client":`${m}/base.js`,"@jetcrab/pi-desk-sdk/react/base":`${m}/base.js`,"@jetcrab/pi-desk-sdk/react/markdown":`${m}/markdown.js`})}),j.eu("v1");let n=j.Ik({pluginName:l.tv,url:j.Yj().regex(/^\/api\/plugins\/browser-resources\/[A-Za-z0-9_-]{32,128}\/entry\.js$/,"Browser Entry URL 无效")}).strict(),o=j.Ik({}).strict(),p=j.Ik({entries:j.YO(n)}).strict(),q=Object.freeze({list:(0,k.Vc)({path:"plugins/browser-entries/list",inputSchema:o,outputSchema:p})}),r=j.Yj().trim().min(1).max(32768),s=j.Ik({text:j.Yj(),truncated:j.zM()}).strict(),t=j.KC([j.Ik({type:j.eu("text_append"),text:j.Yj().min(1)}).strict(),j.Ik({type:j.eu("snapshot"),snapshot:s}).strict(),j.Ik({type:j.eu("unavailable")}).strict()]),u=j.Ik({pluginName:l.tv,path:r}).strict(),v=j.Ik({snapshot:s}).strict(),w=j.Ik({}).strict(),x=j.Ik({pluginName:l.tv,path:r,event:t}).strict(),y=Object.freeze({watch:(0,k.Vc)({path:"plugins/logs/watch",inputSchema:u,outputSchema:v}),unwatch:(0,k.Vc)({path:"plugins/logs/unwatch",inputSchema:u,outputSchema:w}),event:(0,k._G)({path:"plugins/logs/event",bodySchema:x})});var z=c(38974),A=c(3035);let B=j.gM("scope",[j.Ik({scope:j.eu("global")}).strict(),j.Ik({scope:j.eu("session"),source:A.R}).strict()]),C=j.Ik({pluginName:l.tv,target:B,event:l.f7,data:l.Dz}).strict(),D=(0,k._G)({path:"plugins/push",bodySchema:C});var E=c(97563),F=c(51949),G=c(72062);function H(a,b,c){let d=a=>{console.error("[Pi Desk][PluginHost] 插件回调执行失败",{pluginName:c,phase:b,message:a instanceof Error?a.message:String(a)})};try{let b=a();"object"==typeof b&&null!==b&&"then"in b&&"function"==typeof b.then&&Promise.resolve(b).catch(d)}catch(a){d(a)}}async function I(a,b,c){let d,e=Promise.resolve().then(c).catch(c=>{console.error("[Pi Desk][PluginHost] 插件资源清理失败",{pluginName:a,phase:b,message:c instanceof Error?c.message:String(c)})});try{await Promise.race([e,new Promise(c=>{d=setTimeout(()=>{console.warn("[Pi Desk][PluginHost] 插件资源清理超时",{pluginName:a,phase:b,timeoutMs:1500}),c()},1500)})])}finally{void 0!==d&&clearTimeout(d)}}let J={text:"",truncated:!1,loading:!0,error:null};function K(a,b){if(b.text!==a.snapshot.text||b.truncated!==a.snapshot.truncated||b.loading!==a.snapshot.loading||b.error!==a.snapshot.error){a.snapshot=b;for(let b of[...a.listeners])H(b,`log:${a.path}`)}}class L{constructor(a,b){this.channel=a,this.connection=b,this.records=new Map,this.connectionEpoch=0,this.disposed=!1,this.unsubscribeEvents=a.subscribe(a=>this.handleEvent(a)),this.unsubscribeConnection=b.subscribe(()=>this.handleConnectionChange())}open(a){if(this.disposed)throw Error("Plugin log host has been disposed");let b=a.trim();if(!b)throw Error("日志路径不能为空");let c=this.records.get(b);c||(c={path:b,references:0,observed:!1,blockedByError:!1,refreshRequested:!1,syncRequested:!1,syncPromise:null,snapshot:{...J},listeners:new Set},this.records.set(b,c)),c.references+=1,this.requestSync(c);let d=!0;return{getSnapshot:()=>c.snapshot,subscribe:a=>{if(!d)throw Error("Plugin log handle has been disposed");return c.listeners.add(a),()=>{c.listeners.delete(a)}},retry:()=>{d&&!this.disposed&&(c.blockedByError=!1,c.refreshRequested=!0,K(c,{...c.snapshot,loading:!0,error:null}),this.requestSync(c))},dispose:()=>{d&&(d=!1,c.references-=1,this.requestSync(c))}}}dispose(){if(!this.disposed){for(let a of(this.disposed=!0,this.unsubscribeEvents(),this.unsubscribeConnection(),this.records.values()))a.observed&&"ready"===this.connection.getSnapshot().status&&this.channel.unwatch(a.path).catch(()=>void 0),a.listeners.clear();this.records.clear()}}handleConnectionChange(){if(this.disposed)return;this.connectionEpoch+=1;let a="ready"===this.connection.getSnapshot().status;for(let b of this.records.values())b.observed=!1,b.blockedByError=!1,b.refreshRequested=a,b.references>0&&K(b,{...b.snapshot,loading:!0,error:a?null:b.snapshot.error}),this.requestSync(b)}handleEvent(a){if(this.disposed)return;let b=this.records.get(a.path);if(b&&0!==b.references){if("text_append"===a.event.type)return void K(b,{...b.snapshot,text:b.snapshot.text+a.event.text,loading:!1,error:null});if("snapshot"===a.event.type)return void K(b,{...a.event.snapshot,loading:!1,error:null});b.observed=!1,b.blockedByError=!0,K(b,{...b.snapshot,loading:!1,error:"日志暂不可用"})}}requestSync(a){this.disposed||(a.syncRequested=!0,a.syncPromise||(a.syncPromise=(async()=>{for(;a.syncRequested&&!this.disposed;)a.syncRequested=!1,await this.reconcileRecord(a)})().finally(()=>{a.syncPromise=null,a.syncRequested&&!this.disposed&&this.requestSync(a)})))}async reconcileRecord(a){if(this.records.get(a.path)!==a)return;let b="ready"===this.connection.getSnapshot().status;if(!(a.references>0&&b&&!a.blockedByError)){if(a.observed&&b){let b=this.connectionEpoch;try{await this.channel.unwatch(a.path)}catch{}b===this.connectionEpoch&&(a.observed=!1)}else a.observed=!1;0!==a.references||a.observed||this.records.delete(a.path);return}if(a.observed&&!a.refreshRequested)return;a.refreshRequested=!1,K(a,{...a.snapshot,loading:!0,error:null});let c=this.connectionEpoch;try{let b=await this.channel.watch(a.path);if(this.disposed||c!==this.connectionEpoch||this.records.get(a.path)!==a)return;a.observed=!0,a.blockedByError=!1,K(a,{...b,loading:!1,error:null})}catch(b){if(c!==this.connectionEpoch||"ready"!==this.connection.getSnapshot().status){a.syncRequested=!0;return}a.observed=!1,a.blockedByError=!0,K(a,{...a.snapshot,loading:!1,error:b instanceof Error&&b.message?b.message:"读取日志失败"})}finally{(0===a.references||a.syncRequested)&&(a.syncRequested=!0)}}}function M(a){if(null!==a&&"object"==typeof a){for(let b of Object.values(a))M(b);Object.freeze(a)}return a}let N=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,O=/^[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*$/,P=new Set(["plugin","server","rocket","settings","panel","message","terminal","file","folder","bot","wrench","database","globe"]),Q=new Set(["application","composer-panel","settings-page","message-view","session-sidebar-tab"]);function R(a,b){return`${a}\u0000${b}`}function S(a,b,c){return`${a}\u0000${R(b,c)}`}function T(a,b,c,d){let e=S(a,b,c);if("session-header-item"!==b)return e;if("inline"!==d&&"overflow"!==d)throw Error("会话标题视图必须指定 inline 或 overflow");return`${e}\u0000${d}`}function U(a){return import(a)}function V(a,b){return a.workId===b.workId&&a.sessionId===b.sessionId&&a.branchId===b.branchId}function W(a){return{source:{workId:a.workId,sessionId:a.sessionId,branchId:a.branchId},cwd:a.cwd,status:a.status}}function X(a,b){let c=a.trim();if(!c||c.length>100)throw Error(`${b} must contain 1-100 characters`);return c}function Y(a){if("string"!=typeof a)throw Error("Contribution name 必须是字符串");let b=a.trim();if(!b||b.length>64||!N.test(b))throw Error("Contribution name 必须是 1-64 字符的小写 kebab-case");return b}function Z(a){if(void 0!==a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Contribution icon 无效");if("builtin"===a.type){if(2!==Object.keys(a).length||"string"!=typeof a.name||!P.has(a.name))throw Error("Contribution builtin icon 无效");return{type:"builtin",name:a.name}}if("svg"===a.type){let b="string"==typeof a.content?a.content.trim():"";if(2!==Object.keys(a).length||!b||b.length>16384)throw Error("Contribution SVG icon 无效");return{type:"svg",content:b}}throw Error("Contribution icon type 无效")}}function $(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw Error(`会话标题 ${b} 必须提供 action 或 custom 定义`);let c="action"===a.type?["type","icon","label","onSelect"]:"inline"===b?["type","load","minWidthRem"]:["type","load"];for(let d of Object.keys(a))if(!c.includes(d))throw Error(`会话标题 ${b} ${String(a.type)} 不支持字段 ${d}`);if("action"===a.type){if("string"!=typeof a.label)throw Error("会话标题 action label 必须是字符串");let b=Z(a.icon);if(!b)throw Error("会话标题 action 必须提供 icon");if("function"!=typeof a.onSelect)throw Error("会话标题 action 必须提供 onSelect()");return{type:"action",label:X(a.label,"Session Header action label"),icon:b,onSelect:a.onSelect}}if("custom"!==a.type)throw Error("会话标题表现 type 必须是 action 或 custom");if("function"!=typeof a.load)throw Error("会话标题 custom 必须提供 load()");if("inline"===b&&("number"!=typeof a.minWidthRem||!Number.isFinite(a.minWidthRem)||a.minWidthRem<=0))throw Error("会话标题 inline custom minWidthRem 必须是正数");return{type:"custom",load:a.load,..."inline"===b?{minWidthRem:a.minWidthRem}:{}}}class _{constructor(a,b=U,c=()=>void 0){this.transport=a,this.entryImporter=b,this.notifyPlugin=c,this.entryDescriptors=[],this.entryDescriptorsByPlugin=new Map,this.entryStates=new Map,this.ownersByPlugin=new Map,this.registrations=new Map,this.contributionLoadStates=new Map,this.browserDescriptors=[],this.registrySnapshot={revision:0,descriptors:this.browserDescriptors},this.messageViewResolutions=new Map,this.logHosts=new Map,this.registryListeners=new Set,this.workSessionListeners=new Set,this.connectionListeners=new Set,this.themeListeners=new Set,this.globalPluginStates={},this.workSessions=[],this.workSessionCreate=null,this.workSessionGoTo=null,this.projectPreview=null,this.terminalOpen=null,this.workSessionFilePreview=null,this.workSessionFileReveal=null,this.imageReader=null,this.connectionSnapshot={status:"disconnected",error:null},this.themeSnapshot={mode:"light"},this.refreshPromise=null,this.refreshPending=!1,this.entriesMaintaining=!1,this.entriesInitialized=!1,this.entryListError=null,this.applicationResolveController=null,this.applicationResolveEpoch=0,this.applicationVisibility=new Map,this.disposed=!1,this.unsubscribePush=a.subscribePush(a=>this.dispatchPush(a)),this.themeSnapshot="u"<typeof document?{mode:"light"}:((0,G.Is)(),Object.freeze({mode:document.documentElement.classList.contains("dark")?"dark":"light"})),this.unsubscribeTheme=()=>void 0,this.removeSystemThemeListener=()=>void 0;return}subscribeRegistry(a){return this.registryListeners.add(a),()=>this.registryListeners.delete(a)}getBrowserDescriptors(){return this.browserDescriptors}getRegisteredBrowserDescriptors(){return[...this.ownersByPlugin.entries()].sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({pluginName:a,contributions:[...b.registrations.values()].sort((a,b)=>{let c=a.kind.localeCompare(b.kind);return 0===c?a.contributionName.localeCompare(b.contributionName):c}).map(a=>structuredClone(a.descriptor))}))}getRegistrySnapshot(){return this.registrySnapshot}areEntriesInitialized(){return this.entriesInitialized}isRefreshingEntries(){return this.entriesMaintaining||null!==this.refreshPromise}setEntriesMaintaining(a){this.disposed||this.entriesMaintaining===a||(this.entriesMaintaining=a,this.publishRegistryChange())}getEntryListError(){return this.entryListError}getEntryState(a){return this.entryStates.get(a)??{status:"unloaded"}}getFailedEntries(){return[...this.entryStates.entries()].flatMap(([a,b])=>"failed"===b.status?[{pluginName:a,error:b.error}]:[])}getContributionLoadState(a,b,c,d){return this.contributionLoadStates.get(T(a,b,c,d))??{status:"unloaded"}}getMessageViewResolution(a){return this.messageViewResolutions.get(a)??null}bindWorkSessionCreate(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionCreate)throw Error("Workbench WorkSession 创建能力已经绑定");this.workSessionCreate=a;let b=!0;return()=>{b&&(b=!1,this.workSessionCreate===a&&(this.workSessionCreate=null))}}bindWorkSessionGoTo(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionGoTo)throw Error("Workbench WorkSession 前往能力已经绑定");this.workSessionGoTo=a;let b=!0;return()=>{b&&(b=!1,this.workSessionGoTo===a&&(this.workSessionGoTo=null))}}bindTerminalOpen(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if(this.terminalOpen)throw Error("终端创建能力已经绑定");return this.terminalOpen=a,()=>{this.terminalOpen===a&&(this.terminalOpen=null)}}bindProjectPreview(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if(this.projectPreview)throw Error("项目预览能力已经绑定");return this.projectPreview=a,()=>{this.projectPreview===a&&(this.projectPreview=null)}}previewProject(a){if(this.disposed)throw Error("Plugin Host Runtime 已释放");if("string"!=typeof a||!a.trim())throw Error("项目预览需要有效目录");if(!this.projectPreview)throw Error("项目预览尚未准备好");this.projectPreview(a.trim())}bindWorkSessionFilePreview(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionFilePreview)throw Error("Workbench 文件预览能力已经绑定");this.workSessionFilePreview=a;let b=!0;return()=>{b&&(b=!1,this.workSessionFilePreview===a&&(this.workSessionFilePreview=null))}}bindImageReader(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.imageReader)throw Error("Workbench 图片读取能力已经绑定");return this.imageReader=a,()=>{this.imageReader===a&&(this.imageReader=null)}}bindWorkSessionFileReveal(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(this.workSessionFileReveal)throw Error("Workbench 文件定位能力已经绑定");this.workSessionFileReveal=a;let b=!0;return()=>{b&&(b=!1,this.workSessionFileReveal===a&&(this.workSessionFileReveal=null))}}replaceGlobalPluginStates(a){let b=M(structuredClone(a)),c=[...new Set([...Object.keys(this.globalPluginStates),...Object.keys(b)])].filter(a=>JSON.stringify(this.globalPluginStates[a]??null)!==JSON.stringify(b[a]??null));if(0!==c.length){for(let a of(this.globalPluginStates=b,c)){let b=this.ownersByPlugin.get(a);b&&this.notify(b.globalStateListeners)}this.entriesInitialized&&c.some(a=>[...this.ownersByPlugin.get(a)?.registrations.values()??[]].some(a=>"application"===a.kind&&a.resolve))&&this.scheduleApplicationResolution()}}async dispatchNotificationEvent(a,b){let c=this.entryStates.get(b.pluginName);if(c?.status!=="ready")throw Error(`插件 Browser Entry 尚未就绪:${b.pluginName}`);let d=c.runtime.owner,e=d.notificationEventListeners.get(b.name);if(!e)throw Error(`插件未注册通知事件:${b.pluginName}/${b.name}`);if(await e({notificationId:a,data:structuredClone(b.data)}),!d.active)throw Error("Browser Entry 已失效")}replaceWorkSessions(a){var b;let c=M(a.map(W));b=this.workSessions,!(b.length===c.length&&b.every((a,b)=>void 0!==c[b]&&V(a.source,c[b].source)&&a.cwd===c[b].cwd&&a.status===c[b].status))&&(this.workSessions=c,this.notify(this.workSessionListeners),this.entriesInitialized&&this.scheduleApplicationResolution())}markConnecting(){this.replaceConnection({status:"connecting",error:null})}markReady(){this.replaceConnection({status:"ready",error:null})}markDisconnected(a=null){this.setEntriesMaintaining(!1),this.replaceConnection({status:"disconnected",error:a})}async refreshEntries(){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");return this.refreshPromise?this.refreshPending=!0:(this.entriesInitialized||this.replaceEntriesInitialized(!1),this.refreshPromise=(async()=>{try{do{this.refreshPending=!1;let a=await this.transport.listBrowserEntries();if(this.disposed||this.entriesMaintaining||(await this.replaceEntries(a),this.disposed))return;this.replaceEntriesInitialized(!0),this.replaceEntryListError(null)}while(this.refreshPending&&!this.disposed)}catch(a){throw this.replaceEntriesInitialized(!0),this.replaceEntryListError(a instanceof Error?a.message:String(a)),this.rebuildRegistry(),a}})().finally(()=>{this.refreshPromise=null,this.disposed||this.publishRegistryChange()}),this.publishRegistryChange()),this.refreshPromise}retryEntry(a){return this.entryStates.get(a)?.status==="failed"&&(this.entryStates.delete(a),this.publishRegistryChange()),this.loadEntry(a).then(async a=>(await this.resolveApplications(),a))}retryContribution(a,b,c,d){let e=S(a,b,c),f=T(a,b,c,d);this.contributionLoadStates.get(f)?.status==="failed"&&(this.contributionLoadStates.delete(f),this.publishRegistryChange());let g=this.registrations.get(e);return g?this.loadContribution(g,d):Promise.reject(new E.qj({pluginName:a,contributionName:c,phase:"registration",message:"插件 Contribution 不存在"}))}async invokeSessionHeaderAction(a){let b=S(a.pluginName,"session-header-item",a.contributionName),c=this.registrations.get(b),d=c?.header?.[a.presentation];if(!c||d?.type!=="action")throw Error("会话标题 action 不存在");if(a.signal.throwIfAborted(),!c.owner.active)throw Error("Browser Entry 已失效");if(!this.workSessions.some(b=>V(b.source,a.source)))throw Error("工作会话来源已变化");let e=this.getHeaderActionScope(c,a.source,a.signal);try{if(await d.onSelect({...e}),e.signal.throwIfAborted(),!c.owner.active||this.registrations.get(b)!==c)throw Error("Browser Entry 已失效")}catch(c){let b=new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"session-header-action",message:c instanceof Error?c.message:String(c),cause:c});throw e.signal.aborted||H(()=>{throw b},`header-action:${a.contributionName}:${a.presentation}`,a.pluginName),b}}getHeaderActionScope(a,b,c){let d=a.headerActionScopes??=new WeakMap,e=d.get(c);if(e){if(!V(e.source,b))throw Error("会话标题展示来源不一致");return e}let f=a.owner,g=M(structuredClone(b)),h=new AbortController,i={...f,subscriptionDisposers:new Set,get active(){return f.active&&!h.signal.aborted}},j=()=>{for(let b of(h.abort(),d.delete(c),this.workSessionListeners.delete(k),f.subscriptionDisposers.delete(j),c.removeEventListener("abort",j),i.subscriptionDisposers))H(b,"header-action-dispose",a.pluginName);i.subscriptionDisposers.clear()},k=()=>{this.workSessions.some(a=>V(a.source,g))||j()},l={source:g,host:this.createBrowserHost(i),signal:h.signal};return d.set(c,l),this.workSessionListeners.add(k),f.subscriptionDisposers.add(j),c.addEventListener("abort",j,{once:!0}),l}async mountContribution(a){let b=S(a.pluginName,a.kind,a.contributionName),c=this.registrations.get(b);if(!c)throw new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"registration",message:"插件 Contribution 不存在"});if(c.kind!==a.target.kind)throw Error("Contribution kind 与 mount target 不一致");let d=new AbortController,e=new Promise(a=>{d.signal.addEventListener("abort",()=>a(),{once:!0})}),f=a.target;("widget"===f.kind||"session-header-item"===f.kind)&&(f={...f,source:M(structuredClone(f.source))});let g="widget"===f.kind||"session-header-item"===f.kind?f.source:null,h="session-header-item"===f.kind?f.presentation:void 0,i=()=>{g&&!this.workSessions.some(a=>V(a.source,g))&&m()};if("session-sidebar-tab"===f.kind&&f.setHeaderActions){let b=f.setHeaderActions,e=[];d.signal.addEventListener("abort",()=>{e=[],b([])},{once:!0}),f={...f,setHeaderActions:f=>{if(d.signal.aborted||!c.owner.active)return;if(!Array.isArray(f))throw Error("侧栏操作必须为数组");let g=f.map(b=>{let f=X(b.label,"Sidebar action label"),h=Z(b.icon),i=!0===b.disabled,j=!0===b.busy,k=b.onSelect;if("function"!=typeof k)throw Error("侧栏操作缺少 onSelect 回调");let l=!1;return{label:f,icon:h,disabled:i,busy:j,onSelect:()=>{d.signal.aborted||!c.owner.active||e!==g||i||j||l||(l=!0,H(async()=>{try{await k()}catch(a){throw!d.signal.aborted&&c.owner.active&&c.owner.host.notify({level:"error",title:f,description:a instanceof Error?a.message:String(a)}),a}finally{l=!1}},`sidebar-action:${f}`,a.pluginName))}}});e=g,b(g)}}}let j=Promise.resolve().then(async()=>{if(d.signal.aborted)throw Error("插件视图已关闭");let b=await this.loadContribution(c,h);if(d.signal.aborted||!c.owner.active)throw Error("插件视图已失效");let e=b.mount,g=await e({container:a.container,target:f,host:c.owner.host,signal:d.signal});if(void 0!==g&&"function"!=typeof g)throw Error("Contribution mount must return void or a disposer");return g??null}),k=null,l=()=>k||(c.owner.mounts.delete(l),a.signal?.removeEventListener("abort",m),this.workSessionListeners.delete(i),d.abort(),k=I(a.pluginName,`mount:${a.contributionName}`,async()=>{let a=await j.catch(()=>null);await a?.()})),m=()=>{l()};c.owner.mounts.add(l),g&&this.workSessionListeners.add(i),a.signal?.addEventListener("abort",m,{once:!0}),a.signal?.aborted&&m(),i();try{if(await Promise.race([j,e]),d.signal.aborted||!c.owner.active)throw Error("插件视图已失效");return l}catch(b){if(await l(),b instanceof E.qj)throw b;throw new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"mount",message:b instanceof Error?b.message:String(b),cause:b})}}async dispose(){if(this.disposed)return;this.disposed=!0,this.applicationResolveController?.abort(),this.applicationResolveController=null,this.unsubscribePush(),this.unsubscribeTheme(),this.removeSystemThemeListener();let a=[...this.ownersByPlugin.values()].reverse();for(let b of(this.ownersByPlugin.clear(),await Promise.all(a.map(a=>this.disposeEntryOwner(a))),this.entriesMaintaining=!1,this.entryStates.clear(),this.entryDescriptorsByPlugin.clear(),this.entryDescriptors=[],this.registrations.clear(),this.contributionLoadStates.clear(),this.browserDescriptors=[],this.messageViewResolutions.clear(),this.applicationVisibility.clear(),this.logHosts.values()))b.dispose();this.logHosts.clear(),this.globalPluginStates={},this.workSessionCreate=null,this.workSessionGoTo=null,this.workSessionFilePreview=null,this.workSessionFileReveal=null,this.imageReader=null,this.projectPreview=null,this.terminalOpen=null,this.registryListeners.clear(),this.workSessionListeners.clear(),this.connectionListeners.clear(),this.themeListeners.clear()}async replaceEntries(a){var b;let c=[...a].sort((a,b)=>a.pluginName.localeCompare(b.pluginName)),d=new Map;for(let a of c){if(d.has(a.pluginName))throw Error(`重复 Plugin Browser Entry:${a.pluginName}`);d.set(a.pluginName,a)}for(let[a,b]of this.entryDescriptorsByPlugin){let c=d.get(a);c?.url!==b.url&&this.disposeEntry(a)}if(this.disposed)return;for(let[a,b]of(this.entryDescriptorsByPlugin.clear(),d))this.entryDescriptorsByPlugin.set(a,b);let e=(b=this.entryDescriptors,JSON.stringify(b)!==JSON.stringify(c));this.entryDescriptors=structuredClone(c),await Promise.allSettled(c.map(a=>this.loadEntry(a.pluginName))),await this.resolveApplications(),e&&this.publishRegistryChange()}loadEntry(a){if(this.disposed)return Promise.reject(Error("Plugin Host Runtime has been disposed"));let b=this.entryDescriptorsByPlugin.get(a);if(!b)return Promise.reject(Error(`Plugin Browser Entry 不存在:${a}`));let c=this.entryStates.get(a);if(c?.status==="ready")return Promise.resolve(c.runtime);if(c?.status==="loading")return c.promise;if(c?.status==="failed")return Promise.reject(c.error);let d=this.initializeEntry(b).then(c=>(this.disposed||this.entryDescriptorsByPlugin.get(a)?.url!==b.url?c.dispose():(this.entryStates.set(a,{status:"ready",runtime:c}),this.ownersByPlugin.set(a,c.owner),this.commitRegistrations(c.owner),this.rebuildRegistry()),this.publishRegistryChange(),c),c=>{let d=c instanceof Error?c:new E.qj({pluginName:a,phase:"entry-import",message:String(c)});throw this.disposed||this.entryDescriptorsByPlugin.get(a)?.url!==b.url||(this.entryStates.set(a,{status:"failed",error:d}),this.rebuildRegistry(),this.publishRegistryChange()),d});return this.entryStates.set(a,{status:"loading",promise:d}),this.publishRegistryChange(),d}async initializeEntry(a){let b;try{b=await this.entryImporter(a.url)}catch(b){throw new E.qj({pluginName:a.pluginName,phase:"entry-import",message:b instanceof Error?b.message:"Browser Entry import 失败",cause:b})}if(this.disposed||this.entryDescriptorsByPlugin.get(a.pluginName)?.url!==a.url)throw Error("Browser Entry 已失效");if("function"!=typeof b.default)throw new E.qj({pluginName:a.pluginName,phase:"entry-factory",message:"Browser Entry 必须 default-export defineBrowserEntry(...)"});let c={descriptor:a,registrations:new Map,pushListeners:new Set,notificationEventListeners:new Map,globalStateListeners:new Set,subscriptionDisposers:new Set,mounts:new Set,disposer:null,registrationOpen:!0,active:!0},d=Object.assign(c,{host:this.createBrowserHost(c)});try{let c=b.default(this.createBrowserFacade(a.pluginName,d));if(d.registrationOpen=!1,"object"==typeof c&&null!==c&&"function"==typeof Reflect.get(c,"then"))throw H(async()=>{let b=await c;"function"==typeof b&&await I(a.pluginName,"entry-factory",async()=>{await b()})},"entry-factory",a.pluginName),Error("Browser Entry factory must register synchronously");if(void 0!==c&&"function"!=typeof c)throw Error("Browser Entry factory must return void or a disposer");d.disposer=c??null}catch(b){throw d.registrationOpen=!1,await this.disposeEntryOwner(d),new E.qj({pluginName:a.pluginName,phase:"entry-factory",message:b instanceof Error?b.message:String(b),cause:b})}return{pluginName:a.pluginName,owner:d,dispose:()=>this.disposeEntryOwner(d)}}createBrowserFacade(a,b){let c=c=>{if(!b.active||!b.registrationOpen)throw Error("Browser Entry registration phase has ended");let d=c(),e=R(d.kind,d.contributionName);if(b.registrations.has(e))throw Error(`Browser Contribution 重复:${a}/${d.kind}/${d.contributionName}`);b.registrations.set(e,d)};return{name:a,host:b.host,notifications:{onEvent:(c,d)=>{if(!b.active)throw Error("Browser Entry owner is no longer active");let e=Y(c);if(b.notificationEventListeners.has(e))throw Error(`Browser Notification Event 重复:${a}/${e}`);return b.notificationEventListeners.set(e,d),()=>{b.notificationEventListeners.get(e)===d&&b.notificationEventListeners.delete(e)}}},notify:c=>{b.active&&this.notifyPlugin(a,structuredClone(c))},registerContribution:(d,e,f)=>{c(()=>{if(!Q.has(d))throw Error(`Browser Contribution kind 无效:${String(d)}`);return this.createRegistration(a,d,e,f,b)})},registerWidget:(d,e)=>{c(()=>this.createWidgetRegistration(a,d,e,b))},registerSessionHeaderItem:(d,e)=>{c(()=>this.createHeaderRegistration(a,d,e,b))},onPush:a=>{if(!b.active)throw Error("Browser Entry owner is no longer active");return b.pushListeners.add(a),()=>{b.pushListeners.delete(a)}}}}createRegistration(a,b,c,d,e){let f=Y(c);if(!d||"object"!=typeof d||"function"!=typeof d.load)throw Error(`Browser Contribution 必须提供 load():${b}/${f}`);if("application"===b){let c=X(d.label,"Application label"),g=Z(d.icon),h=d.chrome??"host";if("host"!==h&&"none"!==h)throw Error("Application chrome 必须是 host 或 none");if(void 0!==d.resolve&&"function"!=typeof d.resolve)throw Error("Application resolve 必须是函数");return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:c,title:X(d.title??c,"Application title"),...g?{icon:g}:{},chrome:h},load:d.load,resolve:d.resolve,owner:e}}if("composer-panel"===b){let c=Z(d.icon);return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:X(d.label,"Composer Panel label"),...c?{icon:c}:{}},load:d.load,owner:e}}if("settings-page"===b){let c=Z(d.icon);return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,label:X(d.label,"Settings Page label"),...c?{icon:c}:{}},load:d.load,owner:e}}if("message-view"===b)return{pluginName:a,kind:b,contributionName:f,descriptor:{kind:b,contributionName:f,viewKey:function(a){if("string"!=typeof a)throw Error("Message View viewKey 必须是字符串");let b=a.trim();if(b.length<3||b.length>129||!O.test(b))throw Error("Message View viewKey 必须是 plugin-name/view-name");return b}(d.viewKey),priority:function(a){if(!Number.isSafeInteger(a))throw Error("Message View priority must be a safe integer");return a}(d.priority)},load:d.load,owner:e};let g=Z(d.icon);return{pluginName:a,kind:"session-sidebar-tab",contributionName:f,descriptor:{kind:"session-sidebar-tab",contributionName:f,label:X(d.label,"Session Sidebar Tab label"),...g?{icon:g}:{}},load:d.load,owner:e}}createWidgetRegistration(a,b,c,d){let e=Y(b);if(!c||"object"!=typeof c||"function"!=typeof c.load)throw Error("Browser Widget 必须提供 load()");let f=c.placement??"aboveEditor";if("aboveEditor"!==f&&"belowEditor"!==f)throw Error("Browser Widget placement 必须是 aboveEditor 或 belowEditor");return{pluginName:a,kind:"widget",contributionName:e,descriptor:{kind:"widget",contributionName:e,placement:f},load:c.load,owner:d}}createHeaderRegistration(a,b,c,d){let e=Y(b);if(!c||"object"!=typeof c||Array.isArray(c))throw Error("会话标题条目必须提供 inline 和 overflow");for(let a of Object.keys(c))if("inline"!==a&&"overflow"!==a)throw Error(`会话标题条目不支持顶层字段 ${a}`);let f=$(c.inline,"inline"),g=$(c.overflow,"overflow");return{pluginName:a,kind:"session-header-item",contributionName:e,descriptor:{kind:"session-header-item",contributionName:e,inline:"action"===f.type?{type:"action",icon:f.icon,label:f.label}:{type:"custom",minWidthRem:f.minWidthRem},overflow:"action"===g.type?{type:"action",icon:g.icon,label:g.label}:{type:"custom"}},header:{inline:f,overflow:g},owner:d}}commitRegistrations(a){for(let b of a.registrations.values()){let a=S(b.pluginName,b.kind,b.contributionName);if(this.registrations.has(a))throw Error(`Browser Contribution Registry 重复:${a}`);this.registrations.set(a,b)}}loadContribution(a,b){let c=S(a.pluginName,a.kind,a.contributionName),d=T(a.pluginName,a.kind,a.contributionName,b),e=b?a.header?.[b]:void 0,f=e?.type==="custom"?e.load:a.load;if(!f)return Promise.reject(Error("会话标题 action 不支持加载视图"));if(!a.owner.active||this.registrations.get(c)!==a)return Promise.reject(Error("Browser Contribution 已失效"));let g=this.contributionLoadStates.get(d);if(g?.status==="ready")return Promise.resolve(g.implementation);if(g?.status==="loading")return g.promise;if(g?.status==="failed")return Promise.reject(g.error);let h=Promise.resolve().then(f).then(b=>{if(!b||"function"!=typeof b.mount)throw Error("Lazy Contribution Module 必须导出 mount()");if(!a.owner.active||this.registrations.get(c)!==a)throw Error("Browser Contribution 已失效");return this.contributionLoadStates.set(d,{status:"ready",implementation:b}),this.publishRegistryChange(),b},a=>{throw a}).catch(b=>{let e=b instanceof Error?b:new E.qj({pluginName:a.pluginName,contributionName:a.contributionName,phase:"contribution-load",message:String(b)});throw a.owner.active&&this.registrations.get(c)===a&&(this.contributionLoadStates.set(d,{status:"failed",error:e}),this.publishRegistryChange()),e});return this.contributionLoadStates.set(d,{status:"loading",promise:h}),this.publishRegistryChange(),h}async resolveApplications(){if(this.disposed)return;let a=new AbortController;this.applicationResolveController?.abort(),this.applicationResolveController=a;let b=++this.applicationResolveEpoch,c=[...this.registrations.values()].filter(a=>"application"===a.kind),d=new Map;if(await Promise.all(c.map(async b=>{let c=S(b.pluginName,b.kind,b.contributionName);if(!b.resolve)return void d.set(c,!0);try{let e=await b.resolve({workSessions:this.workSessions,host:b.owner.host,signal:a.signal});a.signal.aborted||d.set(c,!1!==e)}catch(e){if(a.signal.aborted)return;d.set(c,!1),console.warn("[Pi Desk][PluginHost] Application resolve 失败",{pluginName:b.pluginName,contributionName:b.contributionName,errorName:e instanceof Error?e.name:"UnknownError",message:e instanceof Error?e.message:String(e)})}})),!this.disposed&&!a.signal.aborted&&this.applicationResolveController===a&&this.applicationResolveEpoch===b){for(let[a,b]of(this.applicationVisibility.clear(),d))this.applicationVisibility.set(a,b);this.rebuildRegistry()}}scheduleApplicationResolution(){queueMicrotask(()=>{this.disposed||this.resolveApplications().catch(a=>{console.error("[Pi Desk][PluginHost] 刷新 Application 可见性失败",{errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)})})})}rebuildRegistry(){let a=[...this.ownersByPlugin.entries()].sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({pluginName:a,contributions:[...b.registrations.values()].filter(a=>"application"!==a.kind||(this.applicationVisibility.get(S(a.pluginName,a.kind,a.contributionName))??!1)).sort((a,b)=>{let c=a.kind.localeCompare(b.kind);return 0===c?a.contributionName.localeCompare(b.contributionName):c}).map(a=>structuredClone(a.descriptor))}));JSON.stringify(this.browserDescriptors)!==JSON.stringify(a)&&(this.browserDescriptors=a,this.rebuildMessageViewResolutions(),this.publishRegistryChange())}rebuildMessageViewResolutions(){this.messageViewResolutions.clear();let a=new Map;for(let b of this.browserDescriptors)for(let c of b.contributions){if("message-view"!==c.kind)continue;let d=a.get(c.viewKey)??[];d.push({pluginName:b.pluginName,descriptor:c}),a.set(c.viewKey,d)}for(let[b,c]of a){let a=Math.max(...c.map(a=>a.descriptor.priority)),d=c.filter(b=>b.descriptor.priority===a);this.messageViewResolutions.set(b,1===d.length?{status:"winner",...d[0]}:{status:"conflict",viewKey:b,candidates:d})}}disposeEntry(a){this.entryDescriptorsByPlugin.delete(a),this.entryStates.delete(a);let b=this.ownersByPlugin.get(a);this.ownersByPlugin.delete(a),b&&this.disposeEntryOwner(b),this.rebuildRegistry()}async disposeEntryOwner(a){if(!a.active)return;for(let b of(a.active=!1,a.registrationOpen=!1,a.pushListeners.clear(),a.notificationEventListeners.clear(),a.globalStateListeners.clear(),a.subscriptionDisposers))H(b,"entry-subscription-dispose",a.descriptor.pluginName);a.subscriptionDisposers.clear();let b=this.logHosts.get(a.descriptor.pluginName);for(let c of(b===a.host.logs&&(this.logHosts.delete(a.descriptor.pluginName),H(()=>b.dispose(),"logs-dispose",a.descriptor.pluginName)),a.registrations.values())){let a=S(c.pluginName,c.kind,c.contributionName);this.registrations.get(a)===c&&(this.registrations.delete(a),this.contributionLoadStates.delete(a),"session-header-item"===c.kind&&(this.contributionLoadStates.delete(`${a}\u0000inline`),this.contributionLoadStates.delete(`${a}\u0000overflow`)),this.applicationVisibility.delete(a))}let c=[...a.mounts].reverse();a.mounts.clear();let d=a.disposer;a.disposer=null,a.registrations.clear(),await Promise.all(c.map(a=>a())),d&&await I(a.descriptor.pluginName,"entry-dispose",d)}previewWorkSessionFile(a,b,c){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("string"!=typeof b||!b.trim())throw Error("文件预览需要有效路径");let d=function(a){if(void 0!==a&&(null===a||"object"!=typeof a||Array.isArray(a)))throw Error("文件预览选项无效");let b=a?.mode;if(void 0===b||"session"===b||"expanded"===b||"standalone"===b)return b??"session";throw Error("文件预览模式无效")}(c),e=this.workSessions.find(b=>V(b.source,a));if(!e)throw Error("工作会话来源已变化");let f=this.workSessionFilePreview;if(!f)throw Error("Workbench 尚未准备好预览文件");f({source:structuredClone(e.source),cwd:e.cwd,path:b.trim(),mode:d,...c?.imagePaths===void 0?{}:{imagePaths:c.imagePaths}})}async revealWorkSessionFile(a,b){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("string"!=typeof b||!b.trim())throw Error("文件定位需要有效路径");let c=this.workSessions.find(b=>V(b.source,a));if(!c)throw Error("工作会话来源已变化");let d=this.workSessionFileReveal;if(!d)throw Error("Workbench 尚未准备好定位文件");await d({source:structuredClone(c.source),cwd:c.cwd,path:b.trim()})}async readImage(a,b,c){c.throwIfAborted();let d=F._g.parse(b),e=this.workSessions.find(b=>V(b.source,a));if(!e)throw Error("工作会话来源已变化");let f=this.imageReader;if(!f)throw Error("Workbench 尚未准备好读取图片");let g=await f({source:structuredClone(e.source),cwd:e.cwd,path:d},c);if(c.throwIfAborted(),!this.workSessions.some(b=>V(b.source,a)))throw Error("工作会话来源已变化");return g}async createWorkSession(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if(!a||"string"!=typeof a.cwd||!a.cwd.trim())throw Error("创建工作会话需要有效 cwd");let b=this.workSessionCreate;if(!b)throw Error("Workbench 尚未准备好创建工作会话");return W(await b(a.cwd.trim()))}async goToWorkSession(a){if(this.disposed)throw Error("Plugin Host Runtime has been disposed");if("workId"in a){if("string"!=typeof a.workId||!a.workId.trim())throw Error("前往工作会话需要有效 workId")}else{if("string"!=typeof a.sessionId||!a.sessionId.trim())throw Error("前往工作会话需要有效 sessionId");if(void 0!==a.cwd&&("string"!=typeof a.cwd||!a.cwd.trim()))throw Error("cwd 必须是非空字符串")}let b=this.workSessionGoTo;if(!b)throw Error("Workbench 尚未准备好前往工作会话");return W(await b(a))}createBrowserHost(a){let b=a.descriptor.pluginName,c=()=>{if(!a.active||this.disposed)throw Error("Browser Entry 已失效")},d=async a=>{c();let b=await a();return c(),b},e=this.transport.createPiDeskChannel(b),g=this.transport.pi,h=(d,e,f)=>{c();let g=()=>{a.active&&H(e,f,b)},h=()=>{d.delete(g),a.subscriptionDisposers.delete(h)};return d.add(g),a.subscriptionDisposers.add(h),h},i={getSnapshot:()=>(c(),this.connectionSnapshot),subscribe:a=>h(this.connectionListeners,a,"connection")},j=this.logHosts.get(b);return j||(j=new L(this.transport.createLogChannel(b),{getSnapshot:()=>this.connectionSnapshot,subscribe:i.subscribe}),this.logHosts.set(b,j)),{settings:{getSnapshot:()=>(c(),(0,f.SJ)()),subscribe:d=>{c();let e=(0,f.ae)(()=>{a.active&&H(d,"settings",b)});return a.subscriptionDisposers.add(e),()=>{a.subscriptionDisposers.delete(e),e()}}},notify:a=>{c(),this.notifyPlugin(b,structuredClone(a))},locale:{getSnapshot:()=>(c(),(0,f.SJ)().region)},globalState:{getSnapshot:()=>(c(),this.globalPluginStates[b]??null),subscribe:b=>h(a.globalStateListeners,b,"global-state")},piDesk:{invokeGlobal:(a,b)=>d(()=>e.invokeGlobal(a,b)),invokeSession:(a,b,c)=>d(()=>e.invokeSession(a,b,c))},pi:{prompt:(a,b)=>d(()=>g.prompt(a,b)),commands:{list:a=>d(()=>g.commands.list(a)),execute:(a,b,c)=>d(()=>g.commands.execute(a,b,c))},tools:{list:a=>d(()=>g.tools.list(a))},bash:{execute:(a,b)=>d(()=>g.bash.execute(a,b)),abort:a=>d(()=>g.bash.abort(a))},interrupt:a=>d(()=>g.interrupt(a))},workSessions:{getSnapshot:()=>(c(),this.workSessions),subscribe:a=>h(this.workSessionListeners,a,"work-sessions"),create:a=>d(()=>this.createWorkSession(a)),goTo:a=>d(()=>this.goToWorkSession(a))},workSessionFiles:{preview:(a,b,d)=>{c(),this.previewWorkSessionFile(a,b,d)},reveal:(a,b)=>d(()=>this.revealWorkSessionFile(a,b)),readImage:(b,c,e)=>d(async()=>{let d=new AbortController,f=()=>d.abort();a.subscriptionDisposers.add(f);try{return await this.readImage(b,c,e?AbortSignal.any([e,d.signal]):d.signal)}finally{a.subscriptionDisposers.delete(f)}})},projects:{preview:a=>{c(),this.previewProject(a)}},terminals:{open:b=>d(async()=>{if(!b||"string"!=typeof b.cwd||!b.cwd.trim())throw Error("新建终端需要有效 cwd");let c=this.terminalOpen;if(!c)throw Error("终端创建能力尚未准备好");let d=new AbortController,e=()=>d.abort();a.subscriptionDisposers.add(e);try{await c(b.cwd,d.signal)}finally{a.subscriptionDisposers.delete(e)}})},logs:j,connection:i,theme:{getSnapshot:()=>(c(),this.themeSnapshot),subscribe:a=>h(this.themeListeners,a,"theme")}}}dispatchPush(a){let b=this.entryStates.get(a.pluginName);if(b?.status!=="ready")return;let c=b.runtime.owner;for(let b of[...c.pushListeners]){if(!c.active)break;H(()=>b(a),`push:${a.event}`,a.pluginName)}}replaceEntriesInitialized(a){this.entriesInitialized!==a&&(this.entriesInitialized=a,this.publishRegistryChange())}replaceEntryListError(a){this.entryListError!==a&&(this.entryListError=a,this.publishRegistryChange())}replaceConnection(a){(a.status!==this.connectionSnapshot.status||a.error!==this.connectionSnapshot.error)&&(this.connectionSnapshot=Object.freeze({...a}),this.notify(this.connectionListeners))}publishRegistryChange(){this.registrySnapshot={revision:this.registrySnapshot.revision+1,descriptors:this.browserDescriptors},this.notify(this.registryListeners)}notify(a){for(let b of[...a])H(b,"notify")}}var aa=c(57850),ab=c(46505),ac=c(34911),ad=c(32772),ae=c(16664),af=c(5319),ag=c(15620),ah=c(95198),ai=c(1222);function aj({clientId:a,cwd:b,onClose:c}){let{t:f}=(0,aa.Bd)("projectHistory"),[g,h]=(0,e.useState)(()=>(0,ai.N1)().maximized),i=b.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??b;return(0,d.jsx)(ae.YV,{open:!0,onOpenChange:a=>{a||c()},children:(0,d.jsxs)(ae.hA,{showCloseButton:!1,"data-testid":"project-preview-dialog",className:(0,ag.cn)("h-[min(94dvh,1080px)] w-[min(96dvw,1600px)] max-w-none gap-0 p-0",g&&"h-dvh max-h-none w-dvw rounded-none","max-sm:h-dvh max-sm:max-h-none max-sm:w-dvw max-sm:rounded-none"),children:[(0,d.jsx)(ae.uX,{className:"sr-only",children:f("previewDescription")}),(0,d.jsx)(ah.q,{clientId:a,cwd:b,refreshOnFocus:!0,onEscape:c,title:(0,d.jsx)(ae.YM,{className:"truncate text-sm",title:b,children:i}),actions:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(af.$,{size:"icon-sm",variant:"ghost",className:"max-md:hidden","aria-label":f(g?"restoreWindow":"maximizeWindow"),onClick:()=>{h(!g),(0,ai.Ms)({...(0,ai.N1)(),maximized:!g})},children:g?(0,d.jsx)(ab.A,{className:"size-4"}):(0,d.jsx)(ac.A,{className:"size-4"})}),(0,d.jsx)(af.$,{size:"icon-sm",variant:"ghost","aria-label":f("closePreview"),onClick:c,children:(0,d.jsx)(ad.A,{className:"size-4"})})]})})]})})}var ak=c(96298),al=c(52590),am=c(2719),an=c(23779);function ao({children:a}){let b=(0,am.G)(),c=(0,ak.A)(),[j]=(0,e.useState)(()=>{var a,d,e;let j,k,l=(0,an.YW)(c);return{clientId:c,...(a=(a,c)=>{b.show(c)},j="normal",d=()=>"normal"===j,k=new _({pi:{prompt:(a,b)=>l.request(g.P6.send,{source:a,mode:b.mode,text:b.text,images:(b.images??[]).map(a=>({...a}))}),commands:{list:async a=>(await l.request(z.QV.commandsList,{source:a})).commands.filter(a=>"extension"===a.source).map(({name:a,description:b})=>({name:a,description:b})),execute:async(a,b,c)=>{await l.request(z.QV.commandExecute,{source:a,command:b,...void 0===c?{}:{args:c}})}},tools:{list:async a=>(await l.request(z.QV.toolsList,{source:a})).tools},bash:{execute:(a,b)=>l.request(z.QV.bashExecute,{source:a,command:b.command,excludeFromContext:b.excludeFromContext}),abort:async a=>{await l.request(z.QV.bashAbort,{source:a})}},interrupt:async a=>{await l.request(g.P6.interrupt,{source:a})}},listBrowserEntries:async()=>{if(!d())return[];let{entries:a}=await l.request(q.list,{});return d()?a:[]},subscribePush:a=>l.subscribe(D,a),createPiDeskChannel:a=>({invokeGlobal:(b,c)=>l.request(h.OY.invoke,{pluginName:a,method:b,scope:"global",input:c}),invokeSession:(b,c,d)=>l.request(h.OY.invoke,{pluginName:a,method:c,scope:"session",source:b,input:d})}),createLogChannel:a=>({watch:async b=>(await l.request(y.watch,{pluginName:a,path:b})).snapshot,unwatch:async b=>{await l.request(y.unwatch,{pluginName:a,path:b})},subscribe:b=>l.subscribe(y.event,c=>{c.pluginName===a&&b({path:c.path,event:c.event})})})},void 0,a),{appSocket:(e=a=>{j=a},{async connect(a){k.markConnecting();try{return await l.connect(a)}catch(a){throw k.markDisconnected(a instanceof Error?a.message:"WebSocket 连接失败"),a}},async request(a,b){let c=await l.request(a,b);if(a.path!==i.kM.list.path)return c;let d=i.e4.parse(c);return e(d.appRuntime.mode),(0,f.UV)(d.appRuntime.settings),k.replaceGlobalPluginStates(d.appRuntime.plugins),k.replaceWorkSessions(d.workSessions),k.markReady(),k.refreshEntries().catch(a=>{console.error("[Pi Desk][PluginHost] 初始化 Browser Entry 失败",{errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)})}),c},subscribe:(a,b)=>l.subscribe(a,b),async waitForClose(){let a=await l.waitForClose();return k.markDisconnected(a.reason||null),a},close(){l.close()}}),pluginHost:k})}}),[k,l]=(0,e.useState)(null);return(0,e.useRef)(null),(0,d.jsx)(an.o5.Provider,{value:j,children:(0,d.jsxs)(al.Dq.Provider,{value:j.pluginHost,children:[a,k?(0,d.jsx)(aj,{clientId:j.clientId,cwd:k,onClose:()=>l(null)},k):null]})})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,9874,79686,80780,56830,35348,35985,20460],()=>b(b.s=96519));module.exports=c})();