@surething/cockpit 1.0.192 → 1.0.194

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 (55) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +3 -3
  3. package/.next-prod/build-manifest.json +3 -3
  4. package/.next-prod/prerender-manifest.json +3 -3
  5. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next-prod/server/app/_global-error.html +1 -1
  7. package/.next-prod/server/app/_global-error.rsc +1 -1
  8. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next-prod/server/app/_not-found.html +2 -2
  16. package/.next-prod/server/app/_not-found.rsc +4 -3
  17. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -3
  18. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +4 -3
  20. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  23. package/.next-prod/server/app/api/commands/route.js +1 -1
  24. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next-prod/server/app/project/page.js +7 -7
  26. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  27. package/.next-prod/server/app/review/[id]/page.js +1 -1
  28. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  29. package/.next-prod/server/app-paths-manifest.json +3 -3
  30. package/.next-prod/server/chunks/2338.js +1 -1
  31. package/.next-prod/server/chunks/4732.js +1 -1
  32. package/.next-prod/server/middleware-build-manifest.js +1 -1
  33. package/.next-prod/server/pages/404.html +2 -2
  34. package/.next-prod/server/pages/500.html +1 -1
  35. package/.next-prod/server/server-reference-manifest.json +1 -1
  36. package/.next-prod/static/chunks/3579-2dddc4a9ac5a5b31.js +1 -0
  37. package/.next-prod/static/chunks/9062-cf3c7d314edd19d0.js +1 -0
  38. package/.next-prod/static/chunks/app/{layout-44210aade5d56585.js → layout-fc306a84f663d5af.js} +1 -1
  39. package/.next-prod/static/chunks/app/project/page-66c22be12277e5c1.js +29 -0
  40. package/.next-prod/static/chunks/app/review/[id]/page-feeb4d9d472b00ab.js +1 -0
  41. package/.next-prod/static/chunks/{webpack-067b7836d8df9226.js → webpack-9a8ea3995034c536.js} +1 -1
  42. package/.next-prod/static/css/2a6d4c877711db09.css +1 -0
  43. package/.next-prod/static/css/e33280be1b23649f.css +1 -0
  44. package/.next-prod/trace +12 -12
  45. package/.next-prod/trace-build +1 -1
  46. package/README.md +1 -1
  47. package/README.zh.md +1 -1
  48. package/package.json +1 -1
  49. package/.next-prod/static/chunks/3579-70c6663ba8c0cf1b.js +0 -1
  50. package/.next-prod/static/chunks/9062-ea4adbf70cf62f01.js +0 -1
  51. package/.next-prod/static/chunks/app/project/page-180bad159db256a5.js +0 -29
  52. package/.next-prod/static/chunks/app/review/[id]/page-e81c220af0b68e3e.js +0 -1
  53. package/.next-prod/static/css/aefab4a01c890b38.css +0 -3
  54. /package/.next-prod/static/{smsKM7xQ0sAR3fsFWgImc → GrlHt_NxoSxuOTl-aMQdx}/_buildManifest.js +0 -0
  55. /package/.next-prod/static/{smsKM7xQ0sAR3fsFWgImc → GrlHt_NxoSxuOTl-aMQdx}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=2338,exports.ids=[2338],exports.modules={15622:(a,b,c)=>{c.d(b,{_:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(31172),h=c(81749),i=c(41564);function j(a,b,c){let d=(a,c)=>b[a]||c,e=[],f=null!=c?`[${c+1}] `:"",g=a.anchor.selectedText.length>200?a.anchor.selectedText.slice(0,197)+"...":a.anchor.selectedText;for(let b of(e.push(`${f}${i.A.t("review.quoteRef",{text:g})}`),e.push(i.A.t("review.commentAuthor",{author:d(a.authorId,a.author),content:a.content})),a.replies))e.push(i.A.t("review.replyAuthor",{author:d(b.authorId,b.author),content:b.content}));return e.join("\n")}function k({isOpen:a,onClose:b,comments:c,reviewTitle:m,userNameMap:n,onCommentClick:o}){let{t:p}=(0,f.Bd)(),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1);if(!a)return null;let u=[...c].sort((a,b)=>a.anchor.startOffset-b.anchor.startOffset),v=(a,b)=>n[a]||b,w=async a=>{r(a.id);try{let b=j(a,n);await navigator.clipboard.writeText(b),(0,h.oR)(p("toast.copiedComment"))}catch{(0,h.oR)(p("toast.copyFailed"),"error")}finally{r(null)}},x=async()=>{if(0!==c.length){t(!0);try{let a=function(a,b,c){if(0===a.length)return"";let d=[...a].sort((a,b)=>a.anchor.startOffset-b.anchor.startOffset),e=[i.A.t("review.reviewSummary",{title:b}),""];return d.forEach((a,b)=>{e.push(j(a,c,b)),e.push("")}),e.push(i.A.t("review.totalNComments",{count:a.length})),e.join("\n").trim()}(c,m,n);await navigator.clipboard.writeText(a),(0,h.oR)(p("toast.copiedAllComments"))}catch{(0,h.oR)(p("toast.copyFailed"),"error")}finally{t(!1)}}},y=a=>{o?.(a),b()},z=u.filter(a=>!a.closed),A=u.filter(a=>a.closed),B=(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-2xl max-h-[80vh] bg-card border border-border rounded-lg shadow-xl flex flex-col overflow-hidden",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-secondary",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:p("review.allCommentsTitle")}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[p("review.commentsCountBrief",{count:c.length}),A.length>0&&` (${p("review.closedCount",{count:A.length})})`]}),c.length>0&&(0,d.jsx)("button",{onClick:x,disabled:s,className:"p-1 rounded hover:bg-accent text-muted-foreground disabled:opacity-50",title:p("review.copyAllComments"),children:s?(0,d.jsx)("span",{className:"inline-block w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin"}):(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})})]}),(0,d.jsx)("button",{onClick:b,className:"p-1 rounded hover:bg-accent text-muted-foreground",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto p-3",children:0===c.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,d.jsx)("div",{className:"text-2xl mb-2",children:"\uD83D\uDCAC"}),(0,d.jsx)("span",{className:"text-sm",children:p("review.noComments")})]}):(0,d.jsxs)("div",{className:"space-y-2",children:[z.map((a,b)=>(0,d.jsx)(l,{comment:a,index:b,resolveAuthor:v,copyingId:q,onCopy:w,onClick:y},a.id)),A.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"text-[11px] text-muted-foreground/60 pt-2 pb-1 px-1",children:p("review.closedComments",{count:A.length})}),A.map((a,b)=>(0,d.jsx)(l,{comment:a,index:z.length+b,resolveAuthor:v,copyingId:q,onCopy:w,onClick:y,closed:!0},a.id))]})]})})]})});return(0,d.jsx)(g.Z,{children:B})}function l({comment:a,index:b,resolveAuthor:c,copyingId:e,onCopy:f,onClick:g,closed:h}){let j=a.anchor.selectedText.length>100?a.anchor.selectedText.slice(0,97)+"...":a.anchor.selectedText;return(0,d.jsxs)("div",{className:`rounded-lg border border-border hover:border-muted-foreground/30 transition-all cursor-pointer group ${h?"opacity-50":""}`,onClick:()=>g(a.id),children:[(0,d.jsx)("div",{className:"px-3 pt-2.5 pb-1",children:(0,d.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r text-muted-foreground truncate",children:j})}),(0,d.jsxs)("div",{className:"px-3 pt-1.5 pb-2 flex items-start gap-2",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,d.jsx)("span",{className:"w-4 h-4 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:c(a.authorId,a.author).charAt(0)}),(0,d.jsx)("span",{className:"text-xs font-medium",children:c(a.authorId,a.author)}),(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:new Date(a.createdAt).toLocaleString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}),h&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:i.A.t("review.closedLabel")})]}),(0,d.jsx)("p",{className:"text-sm text-foreground line-clamp-2 pl-6",children:a.content}),a.replies.length>0&&(0,d.jsxs)("div",{className:"pl-6 mt-1 space-y-0.5",children:[a.replies.slice(0,3).map(a=>(0,d.jsxs)("div",{className:"text-xs text-muted-foreground truncate",children:[(0,d.jsx)("span",{className:"font-medium",children:c(a.authorId,a.author)}),": ",a.content]},a.id)),a.replies.length>3&&(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground/60",children:i.A.t("review.moreReplies",{count:a.replies.length-3})})]})]}),(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),f(a)},disabled:e===a.id,className:"p-1 rounded opacity-0 group-hover:opacity-100 hover:bg-accent text-muted-foreground transition-opacity disabled:opacity-50 flex-shrink-0 mt-0.5",title:i.A.t("review.copyComment"),children:e===a.id?(0,d.jsx)("span",{className:"inline-block w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin"}):(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})})]})]})}},30068:(a,b,c)=>{c.d(b,{l:()=>h});var d=c(48249),e=c(67484),f=c(44384),g=c(69005);function h({content:a,containerRef:b,width:c="w-80"}){let{t:i}=(0,f.Bd)(),j=(0,e.useMemo)(()=>(function(a){let b=[],c=a.split("\n"),d=!1;for(let a=0;a<c.length;a++){let e=c[a];if(e.trimStart().startsWith("```")){d=!d;continue}if(d)continue;let f=/^(#{1,6})\s+(.+)$/.exec(e);f&&b.push({level:f[1].length,text:f[2].replace(/\s*#+\s*$/,""),sourceLine:a+1})}return b})(a),[a]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(null),o=(0,e.useCallback)(a=>{let c=b.current;if(!c)return;let d=c.querySelector(`h1[data-source-start="${a}"], h2[data-source-start="${a}"], h3[data-source-start="${a}"], h4[data-source-start="${a}"], h5[data-source-start="${a}"], h6[data-source-start="${a}"]`);d&&d.scrollIntoView({behavior:"smooth",block:"start"})},[b]);return 0===j.length?null:(0,d.jsxs)("div",{className:`border-r border-border flex-shrink-0 flex flex-col transition-[width] duration-200 ${k?"w-8":c}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-1.5 border-b border-border flex-shrink-0",children:[!k&&(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:i("editor.toc")}),(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:i(k?"editor.expandToc":"editor.collapseToc"),children:(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:k?(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"}):(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})})]}),!k&&(0,d.jsx)("nav",{className:"flex-1 overflow-y-auto py-1",children:j.map((a,b)=>(0,d.jsx)(g.m,{content:a.text,delay:400,children:(0,d.jsx)("button",{onClick:()=>o(a.sourceLine),className:`block w-full text-left text-sm py-1 px-2 truncate transition-colors hover:bg-accent ${m===a.sourceLine?"text-brand font-medium bg-brand/5":"text-muted-foreground"}`,style:{paddingLeft:`${(a.level-1)*12+8}px`},children:a.text})},b))})]})}},31172:(a,b,c)=>{c.d(b,{Z:()=>i});var d=c(67484),e=c(74429);let f=()=>()=>{},g=()=>document.body,h=()=>null;function i({children:a}){let b=(0,d.useSyncExternalStore)(f,g,h);return b?(0,e.createPortal)(a,b):null}},69005:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(48249),e=c(67484),f=c(74429);function g({content:a,children:b,delay:c=300,className:h=""}){let[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)({top:0,left:0}),m=(0,e.useRef)(null),n=(0,e.useRef)({x:0,y:0}),o=(0,e.useRef)(null);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{onMouseEnter:()=>{m.current=setTimeout(()=>{let{x:a,y:b}=n.current;l({top:b+12,left:a}),j(!0)},c)},onMouseMove:a=>{n.current={x:a.clientX,y:a.clientY}},onMouseLeave:()=>{m.current&&(clearTimeout(m.current),m.current=null),j(!1)},className:h,children:b}),i&&(0,f.createPortal)((0,d.jsx)("div",{ref:o,className:"fixed z-[9999] px-2 py-1 text-xs text-foreground bg-accent rounded shadow-lg max-w-md break-words pointer-events-none",style:{top:k.top,left:k.left},children:a}),document.body)]})}},90500:(a,b,c)=>{c.d(b,{W:()=>f});var d=c(50300);let e=new Set(["p","h1","h2","h3","h4","h5","h6","li","blockquote","pre","table","tr","hr","div","ul","ol"]);function f(){return a=>{(0,d.YR)(a,"element",a=>{if(e.has(a.tagName)&&a.position&&(a.properties||(a.properties={}),a.properties["data-source-start"]=a.position.start.line,a.properties["data-source-end"]=a.position.end.line,"pre"===a.tagName)){let b=a.children?.find(a=>"element"===a.type&&"code"===a.tagName);b&&(b.properties||(b.properties={}),b.properties["data-source-start"]=a.position.start.line,b.properties["data-source-end"]=a.position.end.line)}})}}}};
1
+ "use strict";exports.id=2338,exports.ids=[2338],exports.modules={15622:(a,b,c)=>{c.d(b,{_:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(31172),h=c(81749),i=c(41564);function j(a,b,c){let d=(a,c)=>b[a]||c,e=[],f=null!=c?`[${c+1}] `:"",g=a.anchor.selectedText.length>200?a.anchor.selectedText.slice(0,197)+"...":a.anchor.selectedText;for(let b of(e.push(`${f}${i.A.t("review.quoteRef",{text:g})}`),e.push(i.A.t("review.commentAuthor",{author:d(a.authorId,a.author),content:a.content})),a.replies))e.push(i.A.t("review.replyAuthor",{author:d(b.authorId,b.author),content:b.content}));return e.join("\n")}function k({isOpen:a,onClose:b,comments:c,reviewTitle:m,userNameMap:n,onCommentClick:o}){let{t:p}=(0,f.Bd)(),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1);if(!a)return null;let u=[...c].sort((a,b)=>a.anchor.startOffset-b.anchor.startOffset),v=(a,b)=>n[a]||b,w=async a=>{r(a.id);try{let b=j(a,n);await navigator.clipboard.writeText(b),(0,h.oR)(p("toast.copiedComment"))}catch{(0,h.oR)(p("toast.copyFailed"),"error")}finally{r(null)}},x=async()=>{if(0!==c.length){t(!0);try{let a=function(a,b,c){if(0===a.length)return"";let d=[...a].sort((a,b)=>a.anchor.startOffset-b.anchor.startOffset),e=[i.A.t("review.reviewSummary",{title:b}),""];return d.forEach((a,b)=>{e.push(j(a,c,b)),e.push("")}),e.push(i.A.t("review.totalNComments",{count:a.length})),e.join("\n").trim()}(c,m,n);await navigator.clipboard.writeText(a),(0,h.oR)(p("toast.copiedAllComments"))}catch{(0,h.oR)(p("toast.copyFailed"),"error")}finally{t(!1)}}},y=a=>{o?.(a),b()},z=u.filter(a=>!a.closed),A=u.filter(a=>a.closed),B=(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-2xl max-h-[80vh] bg-card border border-border rounded-lg shadow-xl flex flex-col overflow-hidden",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-secondary",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:p("review.allCommentsTitle")}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[p("review.commentsCountBrief",{count:c.length}),A.length>0&&` (${p("review.closedCount",{count:A.length})})`]}),c.length>0&&(0,d.jsx)("button",{onClick:x,disabled:s,className:"p-1 rounded hover:bg-accent text-muted-foreground disabled:opacity-50",title:p("review.copyAllComments"),children:s?(0,d.jsx)("span",{className:"inline-block w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin"}):(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})})]}),(0,d.jsx)("button",{onClick:b,className:"p-1 rounded hover:bg-accent text-muted-foreground",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto p-3",children:0===c.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,d.jsx)("div",{className:"text-2xl mb-2",children:"\uD83D\uDCAC"}),(0,d.jsx)("span",{className:"text-sm",children:p("review.noComments")})]}):(0,d.jsxs)("div",{className:"space-y-2",children:[z.map((a,b)=>(0,d.jsx)(l,{comment:a,index:b,resolveAuthor:v,copyingId:q,onCopy:w,onClick:y},a.id)),A.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"text-[11px] text-muted-foreground/60 pt-2 pb-1 px-1",children:p("review.closedComments",{count:A.length})}),A.map((a,b)=>(0,d.jsx)(l,{comment:a,index:z.length+b,resolveAuthor:v,copyingId:q,onCopy:w,onClick:y,closed:!0},a.id))]})]})})]})});return(0,d.jsx)(g.ZL,{children:B})}function l({comment:a,index:b,resolveAuthor:c,copyingId:e,onCopy:f,onClick:g,closed:h}){let j=a.anchor.selectedText.length>100?a.anchor.selectedText.slice(0,97)+"...":a.anchor.selectedText;return(0,d.jsxs)("div",{className:`rounded-lg border border-border hover:border-muted-foreground/30 transition-all cursor-pointer group ${h?"opacity-50":""}`,onClick:()=>g(a.id),children:[(0,d.jsx)("div",{className:"px-3 pt-2.5 pb-1",children:(0,d.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r text-muted-foreground truncate",children:j})}),(0,d.jsxs)("div",{className:"px-3 pt-1.5 pb-2 flex items-start gap-2",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,d.jsx)("span",{className:"w-4 h-4 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:c(a.authorId,a.author).charAt(0)}),(0,d.jsx)("span",{className:"text-xs font-medium",children:c(a.authorId,a.author)}),(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground",children:new Date(a.createdAt).toLocaleString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}),h&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:i.A.t("review.closedLabel")})]}),(0,d.jsx)("p",{className:"text-sm text-foreground line-clamp-2 pl-6",children:a.content}),a.replies.length>0&&(0,d.jsxs)("div",{className:"pl-6 mt-1 space-y-0.5",children:[a.replies.slice(0,3).map(a=>(0,d.jsxs)("div",{className:"text-xs text-muted-foreground truncate",children:[(0,d.jsx)("span",{className:"font-medium",children:c(a.authorId,a.author)}),": ",a.content]},a.id)),a.replies.length>3&&(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground/60",children:i.A.t("review.moreReplies",{count:a.replies.length-3})})]})]}),(0,d.jsx)("button",{onClick:b=>{b.stopPropagation(),f(a)},disabled:e===a.id,className:"p-1 rounded opacity-0 group-hover:opacity-100 hover:bg-accent text-muted-foreground transition-opacity disabled:opacity-50 flex-shrink-0 mt-0.5",title:i.A.t("review.copyComment"),children:e===a.id?(0,d.jsx)("span",{className:"inline-block w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin"}):(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})})]})]})}},30068:(a,b,c)=>{c.d(b,{l:()=>h});var d=c(48249),e=c(67484),f=c(44384),g=c(69005);function h({content:a,containerRef:b,width:c="w-80"}){let{t:i}=(0,f.Bd)(),j=(0,e.useMemo)(()=>(function(a){let b=[],c=a.split("\n"),d=!1;for(let a=0;a<c.length;a++){let e=c[a];if(e.trimStart().startsWith("```")){d=!d;continue}if(d)continue;let f=/^(#{1,6})\s+(.+)$/.exec(e);f&&b.push({level:f[1].length,text:f[2].replace(/\s*#+\s*$/,""),sourceLine:a+1})}return b})(a),[a]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(null),o=(0,e.useCallback)(a=>{let c=b.current;if(!c)return;let d=c.querySelector(`h1[data-source-start="${a}"], h2[data-source-start="${a}"], h3[data-source-start="${a}"], h4[data-source-start="${a}"], h5[data-source-start="${a}"], h6[data-source-start="${a}"]`);d&&d.scrollIntoView({behavior:"smooth",block:"start"})},[b]);return 0===j.length?null:(0,d.jsxs)("div",{className:`border-r border-border flex-shrink-0 flex flex-col transition-[width] duration-200 ${k?"w-8":c}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-1.5 border-b border-border flex-shrink-0",children:[!k&&(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:i("editor.toc")}),(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:i(k?"editor.expandToc":"editor.collapseToc"),children:(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:k?(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"}):(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})})]}),!k&&(0,d.jsx)("nav",{className:"flex-1 overflow-y-auto py-1",children:j.map((a,b)=>(0,d.jsx)(g.m,{content:a.text,delay:400,children:(0,d.jsx)("button",{onClick:()=>o(a.sourceLine),className:`block w-full text-left text-sm py-1 px-2 truncate transition-colors hover:bg-accent ${m===a.sourceLine?"text-brand font-medium bg-brand/5":"text-muted-foreground"}`,style:{paddingLeft:`${(a.level-1)*12+8}px`},children:a.text})},b))})]})}},69005:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(48249),e=c(67484),f=c(31172);function g({content:a,children:b,delay:c=300,className:h=""}){let[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)({top:0,left:0}),m=(0,e.useRef)(null),n=(0,e.useRef)({x:0,y:0}),o=(0,e.useRef)(null),p=(0,f.F2)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{onMouseEnter:()=>{m.current=setTimeout(()=>{let{x:a,y:b}=n.current,c=p?.getBoundingClientRect(),d=c?.left??0;l({top:b+12-(c?.top??0),left:a-d}),j(!0)},c)},onMouseMove:a=>{n.current={x:a.clientX,y:a.clientY}},onMouseLeave:()=>{m.current&&(clearTimeout(m.current),m.current=null),j(!1)},className:h,children:b}),i&&(0,d.jsx)(f.ZL,{children:(0,d.jsx)("div",{ref:o,className:"fixed z-[9999] px-2 py-1 text-xs text-foreground bg-accent rounded shadow-lg max-w-md break-words pointer-events-none",style:{top:k.top,left:k.left},children:a})})]})}},90500:(a,b,c)=>{c.d(b,{W:()=>f});var d=c(50300);let e=new Set(["p","h1","h2","h3","h4","h5","h6","li","blockquote","pre","table","tr","hr","div","ul","ol"]);function f(){return a=>{(0,d.YR)(a,"element",a=>{if(e.has(a.tagName)&&a.position&&(a.properties||(a.properties={}),a.properties["data-source-start"]=a.position.start.line,a.properties["data-source-end"]=a.position.end.line,"pre"===a.tagName)){let b=a.children?.find(a=>"element"===a.type&&"code"===a.tagName);b&&(b.properties||(b.properties={}),b.properties["data-source-start"]=a.position.start.line,b.properties["data-source-end"]=a.position.end.line)}})}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4732,exports.ids=[4732],exports.modules={132:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(67484);function e(){let[a,b]=(0,d.useState)([]),c=(0,d.useCallback)(()=>{fetch("/api/pinned-sessions").then(a=>a.json()).then(a=>b(a.sessions||[])).catch(()=>{})},[]),e=(0,d.useCallback)(a=>{b(a),fetch("/api/pinned-sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:a})}).catch(()=>{});try{window.parent.postMessage({type:"PINNED_SESSIONS_CHANGED"},"*")}catch{}},[]),f=(0,d.useCallback)(b=>a.some(a=>a.sessionId===b),[a]),g=(0,d.useCallback)((b,c,d)=>{a.some(a=>a.sessionId===b)||e([...a,{sessionId:b,cwd:c,customTitle:d}])},[a,e]),h=(0,d.useCallback)(b=>{e(a.filter(a=>a.sessionId!==b))},[a,e]),i=(0,d.useCallback)((b,c)=>{e(a.map(a=>a.sessionId===b?{...a,customTitle:c}:a))},[a,e]);return{pinnedSessions:a,isPinned:f,pinSession:g,unpinSession:h,updateTitle:i,reorder:(0,d.useCallback)(a=>{e(a)},[e]),reload:c}}},5811:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Np:()=>k,ZD:()=>i,b8:()=>j,kS:()=>g,sQ:()=>h});var e=c(78908),f=a([e]);e=(f.then?(await f)():f)[0];let l=null,m=["typescript","tsx","javascript","jsx","html","css","scss","json","yaml","python","go","rust","java","ruby","php","bash","shell","markdown","sql","c","cpp","swift","kotlin","dart","lua","graphql","xml"];function g(){return l||(l=(0,e.createHighlighter)({themes:["github-dark","github-light"],langs:[...m]})),l}function h(a){let b=a.split("/").pop()?.toLowerCase()||"",c=b.split(".").pop()?.toLowerCase();if(".env"===b||b.startsWith(".env.")||"dockerfile"===b||b.startsWith("dockerfile.")||"makefile"===b)return"bash";let d={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",mjs:"javascript",cjs:"javascript",html:"html",htm:"html",css:"css",scss:"scss",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",rb:"ruby",php:"php",cs:"cpp",cpp:"cpp",c:"c",h:"c",sh:"bash",bash:"bash",zsh:"bash",md:"markdown",mdx:"markdown",sql:"sql",swift:"swift",dart:"dart",lua:"lua",graphql:"graphql",gql:"graphql",toml:"yaml",sass:"scss",less:"css",scala:"java",r:"python",vim:"bash",env:"bash"}[c||""]||"text";return m.includes(d)?d:"text"}function i(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function j(a){return a.map(a=>a.color?`<span style="color:${a.color}">${i(a.content)}</span>`:i(a.content)).join("")}function k(a,b,c,d){if(!b)return[];let e=[],f=c?b:b.toLowerCase();for(let b=0;b<a.length;b++){let g=c?a[b]:a[b].toLowerCase(),h=0;for(;;){let a=g.indexOf(f,h);if(-1===a)break;let c=a+f.length;if(d){let d=a>0?g[a-1]:" ",f=c<g.length?g[c]:" ",h=!/\w/.test(d),i=!/\w/.test(f);h&&i&&e.push({lineIndex:b,startCol:a,endCol:c})}else e.push({lineIndex:b,startCol:a,endCol:c});h=a+1}}return e}d()}catch(a){d(a)}})},13928:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(67484);function e({url:a,onMessage:b,enabled:c=!0}){(0,d.useRef)(b)}},16306:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{d:()=>n,o:()=>m});var e=c(67484),f=c(36043),g=c(47033),h=c(23434),i=c(77033),j=c(90173),k=c(5811),l=a([j,k]);function m(a,b){let c,d=document.createTreeWalker(a,NodeFilter.SHOW_TEXT),e=b,f=null;for(;c=d.nextNode();){f=c;let a=c.textContent.length;if(e<=a)return{node:c,offset:e};e-=a}return f?{node:f,offset:f.textContent.length}:null}function n({content:a,filePath:b,showSearch:c=!0,cwd:d,enableComments:l=!1,scrollToLine:m=null,scrollToLineAlign:o="center",onScrollToLineComplete:p,visibleLineRef:q,onContentSearch:r}){let[s,t]=(0,e.useState)(!1),u=(0,e.useRef)(null),v=(0,e.useRef)(null),w=(0,e.useRef)(null),x=(0,i.nH)(),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null);(0,e.useRef)(null);let[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(""),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(0),[M,N]=(0,e.useState)(0),O=(0,e.useRef)(!1),[P,Q]=(0,e.useState)(null),R=(0,e.useRef)(null),S=(0,e.useRef)(()=>{}),T=(0,e.useRef)(!1),U=(0,e.useRef)(null),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(null),Z=(0,e.useRef)(null),[$,_]=(0,e.useState)(0),aa=l&&!!d,{comments:ab,addComment:ac,updateComment:ad,deleteComment:ae,refresh:af}=(0,g._)({cwd:d||"",filePath:b}),ag=(0,e.useMemo)(()=>a.split("\n"),[a]),ah=(0,j.C)(ag,b),ai=(0,e.useMemo)(()=>{let a=new Map;for(let b of ab){let c=b.endLine;a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[ab]),aj=(0,e.useMemo)(()=>{let a=new Set;for(let b of ab)for(let c=b.startLine;c<=b.endLine;c++)a.add(c);return a},[ab]),ak=(0,e.useMemo)(()=>(0,k.Np)(ag,E,G,I),[ag,E,G,I]),al=(0,e.useMemo)(()=>{let a=[];for(let b=0;b<ag.length;b++)a.push({type:"code",lineIndex:b});return a},[ag.length]),am=(0,f.Te)({count:al.length,getScrollElement:()=>u.current,estimateSize:()=>20,overscan:10}),an=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a+1)%ak.length),N(a=>a+1))},[ak.length]),ao=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a-1+ak.length)%ak.length),N(a=>a+1))},[ak.length]);(0,e.useRef)(m).current=m;let ap=(0,e.useCallback)(a=>{"Enter"===a.key&&(a.preventDefault(),a.shiftKey?ao():an()),"Escape"===a.key&&(D(!1),F(""))},[an,ao]),aq=(0,e.useCallback)((a,b)=>{aa&&(b.stopPropagation(),Q({comment:a,x:b.clientX,y:b.clientY}),R.current=null,S.current(),W(null),Y(null))},[aa]),ar=(0,e.useCallback)(()=>{let a=R.current;a&&(W({x:a.x,y:a.y,range:a.range,codeContent:a.selectedText}),R.current=null,S.current())},[]),as=(0,e.useCallback)(()=>{let a=R.current;if(!a)return;let b=a.selectedText;Y({x:a.x,y:a.y,range:a.range,codeContent:b}),R.current=null,S.current()},[]),at=(0,e.useCallback)(()=>{let a=R.current;if(!a||!r)return;let b=a.selectedText.trim();R.current=null,S.current(),b&&r(b)},[r]),au=(0,e.useCallback)(async a=>{V&&(await ac(V.range.start,V.range.end,a),W(null))},[V,ac]),av=(0,e.useCallback)(async a=>{if(X&&x&&d)try{let c=await (0,h.$3)(d),e=[];for(let a of c)e.push({filePath:a.filePath,startLine:a.startLine,endLine:a.endLine,codeContent:a.codeContent,note:a.content||void 0});e.push({filePath:b,startLine:X.range.start,endLine:X.range.end,codeContent:X.codeContent});let f=(0,h.Gw)(e,a);x.sendMessage(f),await (0,h.RP)(d),af(),Y(null)}catch(a){console.error("Failed to send to AI:",a)}},[X,x,b,d,af]),aw=(0,e.useCallback)((a,b,c)=>{let d=ag[a];if(!d)return b;let e=[];if(E&&ak.length>0)for(let b of ak.filter(b=>b.lineIndex===a)){let c=ak[K]?.lineIndex===a&&ak[K]?.startCol===b.startCol;e.push({start:b.startCol,end:b.endCol,cls:c?"hl-cur":"hl-m"})}if(c&&!E&&c.length>=1){let a=c.toLowerCase(),b=d.toLowerCase(),f=0;for(;-1!==(f=b.indexOf(a,f));)e.push({start:f,end:f+c.length,cls:"hl-kw"}),f+=1}if(0===e.length)return b;e.sort((a,b)=>a.start-b.start||a.end-b.end);let f=[],g=0;for(let a of e){if(a.start<g)continue;a.start>g&&f.push((0,k.ZD)(d.substring(g,a.start)));let b=(0,k.ZD)(d.substring(a.start,a.end));f.push(`<span class="${a.cls}">${b}</span>`),g=a.end}g<d.length&&f.push((0,k.ZD)(d.substring(g)));let h=(0,k.ZD)(d);if(b!==h){let a=b;for(let b of e){let c=d.substring(b.start,b.end),e=(0,k.ZD)(c),f=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),g=RegExp(`(?<=>)([^<]*?)(${f})`,""),h=`$1<span class="${b.cls}">${e}</span>`,i=a.replace(g,h);i.length>a.length+200||(a=i)}return a}return f.join("")},[E,ak,K,ag]);return{parentRef:u,containerRef:v,searchInputRef:w,floatingToolbarRef:R,suppressHoverRef:T,savedSelectionRef:U,highlightedLines:ah,isMounted:s,cmdHeld:y,flashLine:A,isSearchVisible:C,searchQuery:E,caseSensitive:G,wholeWord:I,currentMatchIndex:K,viewingComment:P,bumpToolbarRef:S,addCommentInput:V,sendToAIInput:X,chatContext:x,commentsEnabled:aa,comments:ab,updateComment:ad,deleteComment:ae,lines:ag,matches:ak,rowData:al,virtualizer:am,commentsByEndLine:ai,linesWithComments:aj,setIsSearchVisible:D,setSearchQuery:F,suppressMatchScrollRef:O,setCaseSensitive:H,setWholeWord:J,setViewingComment:Q,setAddCommentInput:W,setSendToAIInput:Y,goToNextMatch:an,goToPrevMatch:ao,handleSearchKeyDown:ap,handleCommentBubbleClick:aq,handleToolbarAddComment:ar,handleToolbarSendToAI:as,handleToolbarSearch:at,handleCommentSubmit:au,handleSendToAISubmit:av,getHighlightedLineHtml:aw,inlineBlameLineRef:Z,inlineBlameVersion:$}}[j,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},21108:(a,b,c)=>{c.d(b,{n:()=>g});var d=c(67484);let e="SCHEDULED_TASKS_CHANGED";function f(){try{window.parent.postMessage({type:e},"*")}catch{}document.querySelectorAll("iframe").forEach(a=>{try{a.contentWindow?.postMessage({type:e},"*")}catch{}})}function g(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(0),g=(0,d.useCallback)(()=>{fetch("/api/scheduled-tasks").then(a=>a.json()).then(a=>{b(a.tasks||[]),e(a.unreadCount||0)}).catch(()=>{})},[]),h=(0,d.useCallback)(async a=>{try{let b=await fetch("/api/scheduled-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(c.task)return g(),f(),c.task;return null}catch{return null}},[g]),i=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"pause"})}).catch(()=>{}),g(),f()},[g]),j=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"resume"})}).catch(()=>{}),g(),f()},[g]),k=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a})}).catch(()=>{}),g(),f()},[g]),l=(0,d.useCallback)(async(a,b)=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"update",fields:b})}).catch(()=>{}),g(),f()},[g]),m=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"trigger"})}).catch(()=>{}),g(),f()},[g]),n=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"markRead"})}).catch(()=>{}),g(),f()},[g]),o=(0,d.useCallback)(async()=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"markAllRead"})}).catch(()=>{}),g(),f()},[g]),p=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"reorder",fields:{orderedIds:a}})}).catch(()=>{}),g(),f()},[g]);return{tasks:a,unreadCount:c,reload:g,createTask:h,pauseTask:i,resumeTask:j,triggerTask:m,deleteTask:k,updateTask:l,markRead:n,markAllRead:o,reorderTasks:p}}},23434:(a,b,c)=>{c.d(b,{$3:()=>h,Cm:()=>g,Gw:()=>k,RP:()=>i,Un:()=>j,zL:()=>f});var d=c(41564);let e=new Set;function f(a){return e.add(a),()=>e.delete(a)}function g(){e.forEach(a=>a())}async function h(a){let b=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch comments");let c=(await b.json()).comments||[];if(0===c.length)return[];let d=new Map;for(let a of c)a.selectedText||(d.has(a.filePath)||d.set(a.filePath,[]),d.get(a.filePath).push(a));let e=new Map;await Promise.all(Array.from(d.keys()).map(async b=>{try{let c=await fetch(`/api/files/text?cwd=${encodeURIComponent(a)}&path=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();"string"==typeof a.content&&e.set(b,a.content.split("\n"))}}catch(a){console.error(`Failed to read file ${b}:`,a)}}));let f=[];for(let a of c){if(a.selectedText){f.push({...a,codeContent:a.selectedText});continue}let b=e.get(a.filePath),c="";if(b){let d=Math.max(0,a.startLine-1),e=Math.min(b.length,a.endLine);c=b.slice(d,e).join("\n")}f.push({...a,codeContent:c})}return f}async function i(a){try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&all=true`,{method:"DELETE"})).ok)return g(),!0;return!1}catch(a){return console.error("Failed to clear comments:",a),!1}}let j="__chat__";function k(a,b){let c=a.filter(a=>a.filePath===j),e=a.filter(a=>a.filePath!==j),f=[];for(let a of(e.length>0&&(f.push(`${d.A.t("comments.codeRef")}`,""),e.forEach((a,b)=>{f.push(`[${b+1}] ${a.filePath}:${a.startLine}-${a.endLine}`),f.push("```"),f.push(a.codeContent),f.push("```"),a.note&&f.push(d.A.t("comments.note",{content:a.note})),f.push("")})),c)){let b=a.codeContent.split("\n").map(a=>`> ${a}`).join("\n");f.push(b),a.note&&f.push(a.note),f.push("")}return f.push(d.A.t("comments.question",{question:b})),f.join("\n")}},26068:(a,b,c)=>{c.d(b,{Ee:()=>m,SU:()=>j,ft:()=>l,iN:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(74429),h=c(81749);let i=(0,e.createContext)(null);function j({container:a,children:b}){return(0,d.jsx)(i.Provider,{value:a,children:b})}function k(){return(0,e.useContext)(i)}function l({x:a,y:b,path:c,cwd:j,isDirectory:k,onClose:m,onCreateFile:n,onDelete:o,onRefresh:p,onCopyFile:q,onPaste:r}){let{t:s}=(0,f.Bd)(),t=(0,e.useRef)(null),u=(0,e.useContext)(i),v=c.split("/").pop()||c,w=`${j}/${c}`,x=c.includes("/")?c.substring(0,c.lastIndexOf("/")):"",y=x?`${j}/${x}`:j,z=k?c:x,A=k?w:y,[B,C]=(0,e.useState)({x:0,y:0}),D=(0,e.useCallback)(async(a,b)=>{try{await navigator.clipboard.writeText(a),(0,h.oR)(s("toast.copiedName",{name:b}),"success")}catch{(0,h.oR)(s("toast.copyFailed"),"error")}m()},[m,s]),E=k?c:x,F=[{label:s("fileContextMenu.copyRelativePath"),value:c},{label:s("fileContextMenu.copyAbsolutePath"),value:w},{label:s("fileContextMenu.copyRelativeDirPath"),value:z||"."},{label:s("fileContextMenu.copyAbsoluteDirPath"),value:A},{label:k?s("fileContextMenu.copyFolderName"):s("fileContextMenu.copyFileName"),value:v}],G=(0,d.jsxs)("div",{ref:t,className:"absolute z-[200] bg-card border border-border rounded-lg shadow-lg py-1 w-fit whitespace-nowrap",style:{left:B.x,top:B.y},children:[n&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),n(E)},children:s("fileContextMenu.createFile")}),q&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),q(c)},children:k?s("fileContextMenu.copyFolder"):s("fileContextMenu.copyFile")}),r&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),r(E)},children:s("fileContextMenu.pasteHere")}),o&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-destructive hover:bg-accent transition-colors",onClick:()=>{m(),o(c,k,v)},children:k?s("fileContextMenu.deleteFolder"):s("fileContextMenu.deleteFile")}),(n||o||q||r)&&(0,d.jsx)("div",{className:"my-1 border-t border-border"}),F.map((a,b)=>(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>D(a.value,a.label),children:a.label},b))]});return u?(0,g.createPortal)(G,u):G}function m(){let[a,b]=(0,e.useState)(null);return{contextMenu:a,showContextMenu:(0,e.useCallback)((a,c,d)=>{a.preventDefault(),a.stopPropagation(),b({x:a.clientX,y:a.clientY,path:c,isDirectory:d})},[]),hideContextMenu:(0,e.useCallback)(()=>{b(null)},[])}}},30976:(a,b,c)=>{function d(){return!("u"<typeof navigator)&&(/Mac|iPhone|iPad/.test(navigator.platform||"")||navigator.userAgentData?.platform==="macOS")}function e(){return d()?"⌘":"Ctrl+"}c.d(b,{L:()=>d,Mu:()=>e}),process.platform,process.platform,process.platform},31037:(a,b,c)=>{c.d(b,{E:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(30976);let i={once:[{labelKey:"scheduledTasks.5minLater",value:5},{labelKey:"scheduledTasks.15minLater",value:15},{labelKey:"scheduledTasks.30minLater",value:30},{labelKey:"scheduledTasks.1hourLater",value:60}],interval:[{labelKey:"scheduledTasks.every15min",value:15},{labelKey:"scheduledTasks.every30min",value:30},{labelKey:"scheduledTasks.every1hour",value:60},{labelKey:"scheduledTasks.every2hours",value:120}],cron:[{labelKey:"scheduledTasks.daily9am",value:"0 9 * * *"},{labelKey:"scheduledTasks.daily6pm",value:"0 18 * * *"},{labelKey:"scheduledTasks.weeklyMon9am",value:"0 9 * * 1"},{labelKey:"scheduledTasks.monthly1st9am",value:"0 9 1 * *"}]};function j({onClose:a,onCreate:b,editTask:c,onUpdate:k}){let{t:l}=(0,f.Bd)(),m=!!c,[n,o]=(0,e.useState)(c?.type||"once"),[p,q]=(0,e.useState)(c?.message||""),[r,s]=(0,e.useState)(c?String(c.delayMinutes||c.intervalMinutes||""):""),[t,u]=(0,e.useState)(c?.cron||""),[v,w]=(0,e.useState)(c?.activeFrom||"09:00"),[x,y]=(0,e.useState)(c?.activeTo||"18:00"),[z,A]=(0,e.useState)(!!(c?.activeFrom&&c?.activeTo)),[B,C]=(0,e.useState)(null),D=(0,e.useRef)(null),E=(0,e.useRef)(null),F=(0,e.useCallback)(()=>{if(!p.trim())return;let d=null;if("once"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"once",delayMinutes:a}}else if("interval"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"interval",intervalMinutes:a,...z?{activeFrom:v,activeTo:x}:{}}}else if("cron"===n){let a=B||t.trim();if(!a)return;d={message:p.trim(),type:"cron",cron:a}}d&&(m&&c&&k?k(c.id,d):b(d),a())},[p,n,B,r,t,z,v,x,b,a,m,c,k]);return(0,d.jsxs)("div",{ref:D,className:`w-80 bg-popover border border-border rounded-lg shadow-lg z-50 ${m?"":"absolute bottom-full left-0 mb-2"}`,onKeyDown:b=>{"Escape"===b.key?a():"Enter"===b.key&&(b.metaKey||b.ctrlKey)&&F()},children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border bg-muted/50 rounded-t-lg",children:(0,d.jsx)("span",{className:"text-sm font-medium",children:m?l("scheduledTasks.editTask"):l("scheduledTasks.createTask")})}),(0,d.jsxs)("div",{className:"p-3 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.sendMessage")}),(0,d.jsx)("textarea",{ref:E,value:p,onChange:a=>q(a.target.value),placeholder:l("scheduledTasks.messagePlaceholder"),rows:2,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.type")}),(0,d.jsx)("div",{className:"flex gap-1",children:["once","interval","cron"].map(a=>(0,d.jsx)("button",{onClick:()=>{o(a),C(null),s(""),u("")},className:`flex-1 px-2 py-1 text-xs rounded transition-colors ${n===a?"bg-brand text-white":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"once"===a?l("scheduledTasks.once"):"interval"===a?l("scheduledTasks.interval"):"Cron"},a))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.quickSelect")}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1",children:i[n].map(a=>(0,d.jsx)("button",{onClick:()=>{C(a.value),"cron"===n?u(String(a.value)):s(String(a.value))},className:`px-2 py-1 text-xs rounded border transition-colors ${B===a.value?"border-brand bg-brand/10 text-brand":"border-border text-muted-foreground hover:text-foreground hover:border-foreground/30"}`,children:l(a.labelKey)},a.labelKey))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:"cron"===n?l("scheduledTasks.customCron"):l("scheduledTasks.customMinutes")}),"cron"===n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("input",{type:"text",value:t,onChange:a=>{u(a.target.value),C(null)},placeholder:l("scheduledTasks.cronPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring font-mono"}),t.trim()&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:function(a){let b=g.A.t,c=a.trim().split(/\s+/);if(5!==c.length)return null;let[d,e,f,h,i]=c,j={0:b("cron.dowSun"),1:b("cron.dowMon"),2:b("cron.dowTue"),3:b("cron.dowWed"),4:b("cron.dowThu"),5:b("cron.dowFri"),6:b("cron.dowSat")},k={1:`1${b("cron.monthPrefix")}`,2:`2${b("cron.monthPrefix")}`,3:`3${b("cron.monthPrefix")}`,4:`4${b("cron.monthPrefix")}`,5:`5${b("cron.monthPrefix")}`,6:`6${b("cron.monthPrefix")}`,7:`7${b("cron.monthPrefix")}`,8:`8${b("cron.monthPrefix")}`,9:`9${b("cron.monthPrefix")}`,10:`10${b("cron.monthPrefix")}`,11:`11${b("cron.monthPrefix")}`,12:`12${b("cron.monthPrefix")}`};try{let a="";if(d.includes("/")||e.includes("/")){if("*"===e&&d.includes("/"))return b("cron.everyNMinutes",{n:d.split("/")[1]});if("0"===d&&e.includes("/"))return b("cron.everyNHours",{n:e.split("/")[1]});return null}let c=parseInt(e,10),g=parseInt(d,10);if(isNaN(c)&&"*"!==e||isNaN(g)&&"*"!==d)return null;a="*"===e&&"*"===d?b("cron.everyMinute"):"*"===e?b("cron.everyHourAtMin",{m:g}):"*"===d?b("cron.hourlyEveryMin",{h:c}):`${String(c).padStart(2,"0")}:${String(g).padStart(2,"0")}`;let l=[];if("*"!==h){let a=h.split(",").map(a=>k[a]||`${a}${b("cron.monthPrefix")}`);l.push(a.join(", "))}if("*"!==f)if(f.includes("-")){let[a,c]=f.split("-");l.push(b("cron.dayRange",{a,b:c}))}else f.includes(",")?l.push(f.split(",").map(a=>`${a}${b("cron.dayOfMonth")}`).join(", ")):l.push(`${f}${b("cron.dayOfMonth")}`);if("*"!==i)if("1-5"===i)l.push(b("cron.weekdays"));else if("0,6"===i||"6,0"===i)l.push(b("cron.weekends"));else{let a=i.split(",").map(a=>{if(a.includes("-")){let[c,d]=a.split("-");return b("cron.weekdayRange",{a:j[c]||c,b:j[d]||d})}return`${b("cron.weekdayPrefix")}${j[a]||a}`});l.push(a.join(", "))}if(0===l.length&&"*"===f&&"*"===h&&"*"===i)return b("cron.daily",{time:a});return`${l.join(" ")} ${a}`}catch{return null}}(t.trim())||(0,d.jsx)("span",{className:"text-destructive",children:l("scheduledTasks.cronFormat")})})]}):(0,d.jsx)("input",{type:"number",value:r,onChange:a=>{s(a.target.value),C(null)},placeholder:l("scheduledTasks.minutesPlaceholder"),min:1,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]}),"interval"===n&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground mb-1 cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:z,onChange:a=>A(a.target.checked),className:"rounded border-border"}),l("scheduledTasks.limitTimeRange")]}),z&&(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("input",{type:"time",value:v,onChange:a=>w(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("scheduledTasks.to")}),(0,d.jsx)("input",{type:"time",value:x,onChange:a=>y(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]})]}),(0,d.jsx)("button",{onClick:F,disabled:!(p.trim()&&("once"===n||"interval"===n?!!(B||r&&parseInt(r,10)>0):"cron"===n&&!!(B||t.trim()))),className:"w-full py-1.5 text-sm font-medium rounded bg-brand text-white hover:bg-brand/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:m?l("scheduledTasks.saveBtn",{modKey:(0,h.Mu)()}):l("scheduledTasks.createBtn",{modKey:(0,h.Mu)()})})]})]})}},45214:(a,b,c)=>{c.d(b,{G:()=>h,t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,range:c,codeContent:h,container:i,onSubmit:j,onClose:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=h?.split("\n").slice(0,5).join("\n"),v=!!h&&h.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsx)("div",{className:"px-3 py-2 bg-amber-9/10 border-b border-border",children:(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-amber-11",children:l("comments.addComment")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.start,end:c.end})})]})}),h&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:m,onChange:a=>n(a.target.value),placeholder:l("comments.inputPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:o,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!o&&m.trim()&&(p(!0),j(m.trim()))),"Escape"!==a.key||o||k()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:l(o?"comments.submitting":"comments.enterSubmit")})]})]})}function h({x:a,y:b,range:c,filePath:g,codeContent:i,container:j,onSubmit:k,onClose:l,isChatLoading:m}){let{t:n}=(0,f.Bd)(),[o,p]=(0,e.useState)(""),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=i?.split("\n").slice(0,5).join("\n"),v=!!i&&i.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsxs)("div",{className:"px-3 py-2 bg-brand/10 border-b border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-brand",children:n("comments.askAI")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:n("comments.lineRange",{start:c.start,end:c.end})})]}),g&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground truncate",children:g})]}),i&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:o,onChange:a=>p(a.target.value),placeholder:n("comments.inputQuestion"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:m,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!m&&o.trim()&&(k(o.trim()),l())),"Escape"===a.key&&l()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:n(m?"comments.aiGenerating":"comments.enterSend")})]})]})}},47033:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(67484);function e({cwd:a,filePath:b}){let[c,f]=(0,d.useState)([]),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(null),k=(0,d.useCallback)(async()=>{if(a&&b){h(!0),j(null);try{let c=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&filePath=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();f(a.comments||[])}else j("Failed to load comments")}catch(a){j(a instanceof Error?a.message:"Unknown error")}finally{h(!1)}}},[a,b]),l=(0,d.useCallback)(async(c,d,e,g)=>{try{let h=await fetch("/api/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,filePath:b,startLine:c,endLine:d,content:e,...g?{selectedText:g}:{}})});if(h.ok){let a=await h.json();return f(b=>[...b,a.comment]),a.comment}}catch(a){console.error("Failed to add comment:",a)}return null},[a,b]),m=(0,d.useCallback)(async(b,c)=>{try{let d=await fetch("/api/comments",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,id:b,content:c})});if(d.ok){let a=await d.json();return f(c=>c.map(c=>c.id===b?a.comment:c)),!0}}catch(a){console.error("Failed to update comment:",a)}return!1},[a]),n=(0,d.useCallback)(async b=>{try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&id=${encodeURIComponent(b)}`,{method:"DELETE"})).ok)return f(a=>a.filter(a=>a.id!==b)),!0}catch(a){console.error("Failed to delete comment:",a)}return!1},[a]),o=(0,d.useCallback)(a=>c.filter(b=>a>=b.startLine&&a<=b.endLine),[c]);return{comments:c,isLoading:g,error:i,addComment:l,updateComment:m,deleteComment:n,refresh:k,getCommentsForLine:o}}c(23434)},49280:(a,b,c)=>{c.d(b,{T:()=>v});var d=c(48249),e=c(98051),f=c(38368),g=c(33972),h=c(10841),i=c(99773),j=c(36513);c(55583),c(87023);var k=c(50757),l=c(27454),m=c(37752),n=c(67484),o=c(3532);let p=[f.A,g.A,h.jb],q=[f.A,h.jb],r=[i.A,j.A],s=[i.A];function t(a){return a.replace(/^(\|.+\|)$/gm,a=>/^\|[\s:|-]+\|$/.test(a)?a:a.replace(/`([^`]*)`/g,(a,b)=>b.includes("|")?"`"+b.replace(/\|/g,"\\|")+"`":a))}function u(a){return a.replace(/\$(\d)/g,"\\$$1")}let v=(0,n.memo)(function({content:a,isUser:b=!1,isStreaming:c=!1,enableMath:f=!0,rehypePlugins:g}){let{resolvedTheme:h}=(0,o.D)(),i="dark"===h,j=(0,n.useMemo)(()=>({code({className:a,children:b,node:c,...e}){let f=/language-(\w+)/.exec(a||""),g=String(b);if(!f&&!a&&!g.includes("\n"))return(0,d.jsx)("code",{className:"px-1.5 py-0.5 mx-0.5 rounded bg-accent text-sm font-mono",...e,children:b});let h=String(b).replace(/\n$/,""),j=f?.[1]||"text",n=Number(e["data-source-start"])||0,o=n?n+1:0,p=0;return(0,d.jsx)(k.A,{style:i?l.A:m.A,language:j,PreTag:"div",customStyle:{margin:"0.75rem 0",borderRadius:"0.375rem",fontSize:"0.875rem"},wrapLines:!0,lineProps:()=>{let a=o+p;return p++,{"data-source-start":a,"data-source-end":a,style:{display:"block"}}},children:h})},p:({children:a,node:b,...c})=>(0,d.jsx)("p",{className:"mb-3 last:mb-0",...c,children:a}),h1:({children:a,node:b,...c})=>(0,d.jsx)("h1",{className:"text-xl font-bold mb-3 mt-4 first:mt-0",...c,children:a}),h2:({children:a,node:b,...c})=>(0,d.jsx)("h2",{className:"text-lg font-bold mb-2 mt-3 first:mt-0",...c,children:a}),h3:({children:a,node:b,...c})=>(0,d.jsx)("h3",{className:"text-base font-bold mb-2 mt-3 first:mt-0",...c,children:a}),ul:({children:a,node:b,...c})=>(0,d.jsx)("ul",{className:"list-disc list-inside mb-3 space-y-1",...c,children:a}),ol:({children:a,node:b,...c})=>(0,d.jsx)("ol",{className:"list-decimal list-inside mb-3 space-y-1",...c,children:a}),li:({children:a,node:b,...c})=>(0,d.jsx)("li",{className:"leading-relaxed",...c,children:a}),blockquote:({children:a,node:b,...c})=>(0,d.jsx)("blockquote",{className:"border-l-4 border-border pl-4 my-3 italic text-muted-foreground",...c,children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",...e,children:b}),table:({children:a,node:b,...c})=>(0,d.jsx)("div",{className:"overflow-x-auto my-3",...c,children:(0,d.jsx)("table",{className:"min-w-full border border-border",children:a})}),thead:({children:a,node:b,...c})=>(0,d.jsx)("thead",{className:"bg-accent",...c,children:a}),th:({children:a,node:b,...c})=>(0,d.jsx)("th",{className:"px-4 py-2 text-left font-semibold border-b border-border",...c,children:a}),td:({children:a,node:b,...c})=>(0,d.jsx)("td",{className:"px-4 py-2 border-b border-border",...c,children:a}),hr:({node:a,...b})=>(0,d.jsx)("hr",{className:"my-4 border-border",...b}),img:({src:a,alt:b,node:c,height:e,width:f,style:g,...h})=>{if(!(e||f||g))return(0,d.jsx)("img",{src:a,alt:b||"",className:"max-w-full h-auto rounded-lg my-3",...h});let i=a=>a?/^\d+$/.test(String(a))?`${a}px`:String(a):void 0,j={...g,height:i(e)??g?.height,width:i(f)??g?.width};return(0,d.jsx)("img",{src:a,alt:b||"",style:j,className:"inline-block align-middle",...h})},strong:({children:a,node:b,...c})=>(0,d.jsx)("strong",{className:"font-bold",...c,children:a}),em:({children:a,node:b,...c})=>(0,d.jsx)("em",{className:"italic",...c,children:a}),del:({children:a,node:b,...c})=>(0,d.jsx)("del",{className:"line-through",...c,children:a})}),[i]),v=f?p:q,w=f?r:s,x=(0,n.useMemo)(()=>{if(b||c)return a;let d=t(!function(a){if(/^\|[\s:|-]+\|$/m.test(a))return!1;if(/[┌┐└┘│─├┤┬┴┼╔╗╚╝║═╭╮╯╰▲▼◀▶△▽◁▷]/.test(a)||/\+[-=]{2,}\+/.test(a))return!0;let b=a.split("\n").filter(a=>/^\s*\||\|\s*$/.test(a));if(b.length>=3){let a=b.map(a=>(a.match(/\|/g)||[]).length);return!a.every(b=>b===a[0])||!(a[0]>=3)}return!1}(a)||/^```[\s\S]*```$/m.test(a.trim())?a:"```text\n"+a.trim()+"\n```");return f?u(d):d},[a,b,c,f]),y=(0,n.useMemo)(()=>g?.length?[...w,...g]:w,[g,w]);if(b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});if(c){let b=a.lastIndexOf("\n");if(-1===b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});let c=a.slice(0,b+1),g=a.slice(b+1);return(0,d.jsxs)("div",{className:"markdown-body",children:[(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:w,components:j,children:f?u(t(c)):t(c)}),g&&(0,d.jsx)("span",{className:"whitespace-pre-wrap",children:g})]})}return(0,d.jsx)("div",{className:"markdown-body",children:(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:y,components:j,children:x})})})},60306:(a,b,c)=>{c.d(b,{b:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(3532),h=c(81749),i=c(30976),j=c(74955);function k({isOpen:a,onClose:b}){let{t:c,i18n:l}=(0,f.Bd)(),{theme:m,setTheme:n}=(0,g.D)(),o=(0,j.G)(),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)("auto"),v=(0,e.useCallback)(a=>{u(a),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:a})}).catch(()=>{});let b="auto"===a?navigator.language.startsWith("zh")?"zh":"en":a;l.changeLanguage(b)},[l]),w=o?"installed":"not-installed",x=o?.version??null;if(!a)return null;let y=[{value:"system",label:c("settings.themeSystem"),icon:"\uD83D\uDCBB"},{value:"light",label:c("settings.themeLight"),icon:"☀️"},{value:"dark",label:c("settings.themeDark"),icon:"\uD83C\uDF19"}];return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:b}),(0,d.jsxs)("div",{className:"relative bg-card rounded-lg shadow-xl w-full max-w-md mx-4 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:c("settings.title")}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsxs)("div",{className:"p-4 space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.theme")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:y.map(a=>(0,d.jsxs)("button",{onClick:()=>n(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${m===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.language")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{value:"auto",label:c("settings.languageAuto"),icon:"\uD83C\uDF10"},{value:"en",label:"English",icon:"\uD83C\uDDFA\uD83C\uDDF8"},{value:"zh",label:"中文",icon:"\uD83C\uDDE8\uD83C\uDDF3"}].map(a=>(0,d.jsxs)("button",{onClick:()=>v(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${t===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.browserExtension")}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:`inline-block w-2 h-2 rounded-full flex-shrink-0 ${"installed"===w?"bg-green-500":"bg-slate-400"}`}),(0,d.jsxs)("span",{children:["installed"===w&&`${c("settings.extensionInstalled")}${x?` (v${x})`:""}`,"not-installed"===w&&c("settings.extensionNotInstalled")]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:c("settings.extensionDescription")}),"installed"!==w&&(0,d.jsxs)("div",{className:"text-xs text-muted-foreground bg-muted/50 rounded-md p-2 space-y-1",children:[(0,d.jsx)("p",{className:"font-medium text-foreground",children:c("settings.installSteps")}),(0,d.jsxs)("p",{children:[c("settings.step1")," ",(0,d.jsx)("code",{className:"px-1 py-0.5 bg-muted rounded text-foreground",children:"chrome://extensions"})]}),(0,d.jsx)("p",{children:c("settings.step2")}),(0,d.jsx)("p",{children:c("settings.step3")}),(0,i.L)()&&(0,d.jsx)("p",{dangerouslySetInnerHTML:{__html:c("settings.step4mac")}})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>{let a=p||"chrome-extension";navigator.clipboard.writeText(a),(0,h.oR)(c("toast.copiedName",{name:a}))},className:"px-3 py-1.5 text-xs bg-brand text-white rounded-md hover:bg-brand/90 transition-colors",children:c("settings.copyExtensionPath")}),"installed"===w&&(0,d.jsx)("button",{onClick:()=>{o?.id&&window.chrome?.runtime?.sendMessage&&(window.chrome.runtime.sendMessage(o.id,{type:"reload"}),(0,h.oR)(c("toast.pluginReloading")))},className:"px-3 py-1.5 text-xs border border-border text-foreground rounded-md hover:bg-muted transition-colors",children:c("settings.reloadExtension")})]}),p&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono truncate",children:p})]})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.about")}),(0,d.jsxs)("div",{className:"text-xs text-muted-foreground space-y-1",children:[(0,d.jsxs)("p",{children:["Cockpit",r?` v${r}`:""]}),(0,d.jsx)("p",{className:"text-muted-foreground/60",children:"One seat. One AI. Everything under control."})]})]})]})]})]})}},61858:(a,b,c)=>{function d(){}function e(a){return()=>{}}c.d(b,{U:()=>e,k:()=>d})},64874:(a,b,c)=>{c.d(b,{r:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({isOpen:a,onClose:b,onSelectSession:c,onAddProject:h}){let{t:i}=(0,f.Bd)(),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)({}),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(""),v=(0,e.useRef)(null);(0,e.useCallback)(async()=>{q(!0),s(null),o({});try{let a=await fetch("/api/sessions/projects");if(!a.ok)throw Error("Failed to load projects");let b=await a.json();m(b)}catch(a){s(a instanceof Error?a.message:"Unknown error")}finally{q(!1)}},[]);let w=(0,e.useCallback)(async a=>{o(b=>({...b,[a]:{...b[a],isExpanded:!0,isLoading:!0,sessions:[],error:null}}));try{let b=await fetch(`/api/sessions/projects/${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to load sessions");let c=await b.json();o(b=>({...b,[a]:{...b[a],isLoading:!1,sessions:c}}))}catch(b){o(c=>({...c,[a]:{...c[a],isLoading:!1,error:b instanceof Error?b.message:"Unknown error"}}))}},[]),x=(0,e.useCallback)(a=>{let b=n[a];b?.isExpanded?o(b=>({...b,[a]:{...b[a],isExpanded:!1}})):b?.sessions?.length?o(b=>({...b,[a]:{...b[a],isExpanded:!0}})):w(a)},[n,w]),y=(0,e.useCallback)(async()=>{if(!j){k(!0);try{let a=await fetch("/api/pick-folder"),c=await a.json();c.folder&&h&&(h(c.folder),b())}catch{}finally{k(!1)}}},[j,h,b]);return a?(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:b}),(0,d.jsxs)("div",{className:"relative w-full max-w-6xl h-[90vh] mx-4 bg-card rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:i("sessions.projectList")}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{ref:v,type:"text",placeholder:i("workspace.searchProjectPath"),value:t,onChange:a=>u(a.target.value),className:"px-2 py-1 text-xs border border-border rounded bg-card text-foreground placeholder-slate-9 focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"}),h&&(0,d.jsxs)("button",{onClick:y,disabled:j,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors disabled:opacity-50",title:i("sessions.openFolder"),children:[(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 10v6m3-3H9m-4 7h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),j?i("sessions.selectingFolder"):i("sessions.openFolder")]}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-slate-9 hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[p&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-4 w-4",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("workspace.loadingProjects")})]})}),r&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-red-11",children:r})}),!p&&!r&&0===l.length&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:i("workspace.projectNotFound")})}),!p&&!r&&l.filter(a=>a.fullPath.toLowerCase().includes(t.toLowerCase())).map(a=>{let b=n[a.encodedPath]||{isExpanded:!1,isLoading:!1,sessions:[],error:null};return(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsxs)("button",{onClick:()=>x(a.encodedPath),className:"w-full flex items-center gap-2 p-2 rounded hover:bg-accent transition-colors text-left",children:[(0,d.jsx)("svg",{className:`w-3 h-3 text-muted-foreground transition-transform ${b.isExpanded?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,d.jsx)("svg",{className:"w-4 h-4 text-muted-foreground",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),(0,d.jsx)("span",{className:"flex-1 text-xs font-medium text-foreground truncate",title:a.fullPath,children:a.fullPath}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.sessionCount,")"]})]}),b.isExpanded&&(0,d.jsxs)("div",{className:"ml-6 mt-2",children:[b.isLoading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 p-3 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-3 w-3",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("sessions.loadingSessions")})]}),b.error&&(0,d.jsx)("div",{className:"p-3 text-xs text-red-11",children:b.error}),!b.isLoading&&!b.error&&(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:b.sessions.map(b=>(0,d.jsxs)("div",{onClick:()=>{var d;let e;return d=a.fullPath,e=(b.path.split("/").pop()||"").replace(".jsonl",""),void(c?c(d,e):window.parent.postMessage({type:"OPEN_PROJECT",cwd:d,sessionId:e},"*"))},className:"p-3 bg-secondary rounded border border-border hover:border-brand hover:shadow-md cursor-pointer transition-all",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[b.engine&&"claude"!==b.engine&&(0,d.jsx)("span",{className:`shrink-0 px-1 py-0.5 text-[10px] leading-none font-medium rounded ${"claude2"===b.engine?"bg-orange-500/15 text-orange-11":"ollama"===b.engine?"bg-blue-500/15 text-blue-11":"codex"===b.engine?"bg-green-500/15 text-green-11":"kimi"===b.engine?"bg-purple-500/15 text-purple-11":"bg-muted text-muted-foreground"}`,children:b.engine}),(0,d.jsx)("h4",{className:"text-xs font-medium text-foreground truncate",title:b.title,children:b.title})]}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:new Date(b.modifiedAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,d.jsxs)("div",{className:"space-y-0.5 text-xs",children:[b.firstMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`first-${b}`)),b.lastMessages.length>0&&(0,d.jsx)("div",{className:"text-slate-9 text-center py-0.5",children:"\xb7\xb7\xb7"}),b.lastMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`last-${b}`))]})]},b.path))})]})]},a.encodedPath)})]})]})]}):null}},68502:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,comment:c,container:h,onClose:i,onUpdateComment:j,onDeleteComment:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(c.content),q=(0,e.useRef)(null),[r,s]=(0,e.useState)({x:0,y:0}),t=async()=>{o.trim()&&(await j(c.id,o.trim()),n(!1))},u=async()=>{await k(c.id),i()};return(0,d.jsx)("div",{ref:q,className:"absolute z-[200] w-96 bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:r.x,top:r.y},children:(0,d.jsx)("div",{className:"p-3",children:m?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring",rows:3,autoFocus:!0,onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),t()),"Escape"===a.key&&(n(!1),p(c.content))}}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{onClick:()=>{n(!1),p(c.content)},className:"px-2 py-1 text-xs text-muted-foreground hover:text-foreground",children:l("common.cancel")}),(0,d.jsx)("button",{onClick:t,className:"px-2 py-1 text-xs bg-brand text-white rounded hover:bg-brand/90",children:l("common.save")})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:c.content}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.startLine,end:c.endLine})}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>n(!0),className:"p-1 rounded hover:bg-accent text-muted-foreground",title:l("common.edit"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,d.jsx)("button",{onClick:u,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-red-9",title:l("common.delete"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})]})]})})})}},74955:(a,b,c)=>{c.d(b,{G:()=>l,f:()=>m});var d=c(67484);function e(){if("u"<typeof document)return null;let a=document.querySelector('meta[name="cockpit-bridge"]');if(!a)return null;let b=a.dataset.id,c=a.dataset.version;return b?{id:b,version:c||"unknown"}:null}let f=null,g=new Set;function h(){g.forEach(a=>a())}function i(a){g.add(a);let b=e();return b&&!f&&(f=b,Promise.resolve().then(h)),()=>{g.delete(a)}}function j(){return f}function k(){return null}if("u">typeof document&&(f=e()),"u">typeof MutationObserver&&"u">typeof document){let a=new MutationObserver(()=>{let a=e();a&&(!f||a.id!==f.id||a.version!==f.version)&&(f=a,h())}),b=document.head||document.documentElement;b&&a.observe(b,{childList:!0})}function l(){return(0,d.useSyncExternalStore)(i,j,k)}function m(){return f??e()}},75005:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(67484);function e({lines:a,enabled:b,onContentChange:c,onEnterInsert:f,onSave:g,getVisibleLineCount:h,scrollToLine:i,onSearchExecute:j,onSearchNext:k,onSearchPrev:l,onSearchClear:m}){let[n,o]=(0,d.useState)("normal"),[p,q]=(0,d.useState)(-1),[r,s]=(0,d.useState)(0),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(""),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),D=(0,d.useRef)([]),E=(0,d.useRef)([]),F=(0,d.useRef)([]),G=(0,d.useRef)(null),H=(0,d.useRef)(a),I=(0,d.useCallback)((a,b)=>Math.max(0,Math.min(b,Math.max(0,(H.current[a]??"").length-1))),[]);(0,d.useRef)(a.length);let J=(0,d.useCallback)(()=>{G.current&&(clearTimeout(G.current),G.current=null),w("")},[]),K=(0,d.useCallback)(()=>{G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{w(""),G.current=null},500)},[]),L=(0,d.useCallback)((a,b)=>{D.current.push(b),E.current=[],u(!0),c(a.join("\n"))},[c]),M=(0,d.useCallback)((a,b)=>{let c=Math.max(0,Math.min(a,H.current.length-1));q(c),s(I(c,b??0)),i(c,"auto")},[i,I]),N=(0,d.useCallback)(a=>{q(b=>{let c=Math.max(0,Math.min(b+a,H.current.length-1));return i(c,"auto"),s(a=>Math.max(0,Math.min(a,Math.max(0,(H.current[c]??"").length-1)))),c})},[i]),O=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);if(0===a.length)return;let c=a[b];F.current=[c];let d=[...a];d.splice(b,1),0===d.length&&d.push("");let e=Math.min(b,d.length-1);L(d,{lineIndex:b,oldLines:[c],newLines:[],cursorLine:b}),q(e),s(0)},[p,L]),P=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);a.length>0&&(F.current=[a[b]])},[p]),Q=(0,d.useCallback)(()=>{let a=F.current;if(0===a.length)return;let b=H.current,c=Math.min(p,b.length-1)+1,d=[...b];d.splice(c,0,...a),L(d,{lineIndex:c,oldLines:[],newLines:[...a],cursorLine:p}),q(c),s(0),i(c,"auto")},[p,L,i]),R=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1),c=a[b];if(!c||0===c.length)return;let d=c.substring(1),e=[...a];e[b]=d,L(e,{lineIndex:b,oldLines:[c],newLines:[d],cursorLine:p})},[p,L]),S=(0,d.useCallback)(()=>{let a=D.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?d.splice(b.lineIndex,0,...b.oldLines):0===b.oldLines.length&&b.newLines.length>0?(d.splice(b.lineIndex,b.newLines.length),0===d.length&&d.push("")):d.splice(b.lineIndex,b.newLines.length,...b.oldLines),E.current.push(b),c(d.join("\n")),q(Math.min(b.cursorLine,d.length-1)),i(Math.min(b.cursorLine,d.length-1),"auto"),0===a.length&&u(!1)},[c,i]),T=(0,d.useCallback)(()=>{let a=E.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?(d.splice(b.lineIndex,b.oldLines.length),0===d.length&&d.push("")):0===b.oldLines.length&&b.newLines.length>0?d.splice(b.lineIndex,0,...b.newLines):d.splice(b.lineIndex,b.oldLines.length,...b.newLines),D.current.push(b),u(!0),c(d.join("\n"));let e=b.lineIndex+Math.max(0,b.newLines.length-1);q(Math.min(e,d.length-1)),i(Math.min(e,d.length-1),"auto")},[c,i]),U=(0,d.useCallback)(a=>{let b=H.current,c=Math.min(p,b.length-1);if("o"===a||"O"===a){let d="o"===a?c+1:c,e=[...b];e.splice(d,0,""),L(e,{lineIndex:d,oldLines:[],newLines:[""],cursorLine:p}),c=d,q(d)}o("insert"),f(c,r,a)},[p,r,L,f]),V=(0,d.useCallback)(()=>{o("normal"),J()},[J]),W=(0,d.useCallback)(()=>{o("command"),y("")},[]),X=(0,d.useCallback)(()=>{o("normal"),y("")},[]),Y=(0,d.useCallback)(()=>{o("search"),A("")},[]),Z=(0,d.useCallback)(()=>{o("normal"),A("")},[]),$=(0,d.useCallback)(a=>{let b=a.trim();if("w"===b){g?.(),o("normal"),y("");return}if("q"===b){o("normal"),y("");return}if("wq"===b){g?.(),o("normal"),y("");return}if("noh"===b||"nohlsearch"===b){m?.(),o("normal"),y("");return}let c=parseInt(b,10);if(!isNaN(c)&&c>0){let a=Math.min(c-1,H.current.length-1);q(a),i(a,"center"),o("normal"),y("");return}o("normal"),y("")},[g,m,i]),_=(0,d.useCallback)(a=>{if(!a){o("normal"),A("");return}C(a),j?.(a),o("normal"),A("")},[j]),aa=(0,d.useCallback)(a=>{if(!b)return!1;let c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;if("insert"===n)return("Escape"===a.key||!!c)&&(V(),!0);if("command"===n)return!a.isComposing&&("Escape"===a.key||c?X():"Enter"===a.key?$(x):"Backspace"===a.key?0===x.length?X():y(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||y(b=>b+a.key),!0);if("search"===n)return!a.isComposing&&("Escape"===a.key||c?Z():"Enter"===a.key?_(z):"Backspace"===a.key?0===z.length?Z():A(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||A(b=>b+a.key),!0);if(p<0&&(q(0),s(0)),a.metaKey)return!1;if(a.ctrlKey)return"d"===a.key?(N(Math.max(1,Math.floor(h()/2))),J(),!0):"u"===a.key?(N(-Math.max(1,Math.floor(h()/2))),J(),!0):"r"===a.key&&(T(),J(),!0);let d=a.key,e=v+d;if("g"===e)return w("g"),K(),!0;if("gg"===e)return M(0),J(),!0;if("d"===e)return w("d"),K(),!0;if("dd"===e)return O(),J(),!0;if("y"===e)return w("y"),K(),!0;if("yy"===e)return P(),J(),!0;if(v&&e!==d&&J(),"j"===d||"ArrowDown"===d)return N(1),!0;if("k"===d||"ArrowUp"===d)return N(-1),!0;if("h"===d||"ArrowLeft"===d)return s(a=>Math.max(0,a-1)),!0;if("l"===d||"ArrowRight"===d){let a=Math.max(0,(H.current[p]??"").length-1);return s(b=>Math.min(a,b+1)),!0}if("0"===d)return s(0),!0;if("$"===d)return s(Math.max(0,(H.current[p]??"").length-1)),!0;if("^"===d){let a=(H.current[p]??"").search(/\S/);return s(a>=0?a:0),!0}return"G"===d?(M(H.current.length-1),!0):"x"===d?(R(),!0):"p"===d?(Q(),!0):"u"===d?(S(),!0):"i"===d||"a"===d||"I"===d||"A"===d||"o"===d||"O"===d?(U(d),!0):"/"===d?(Y(),!0):"n"===d?(k?.(),!0):"N"===d?(l?.(),!0):":"===d?(W(),!0):"Escape"!==d&&1===d.length},[b,n,v,x,z,p,V,U,W,X,Y,Z,$,_,N,M,h,O,P,Q,R,S,T,J,K,k,l]);return{state:{mode:n,cursorLine:p,cursorCol:r,isDirty:t,keyBuffer:v,commandInput:x,searchInput:z,lastSearch:B},handleKeyDown:aa,enterNormal:V,enterInsert:U,setCursorLine:q,setCursorCol:s,setCommandInput:y,setSearchInput:A,setIsDirty:u,clearUndoHistory:(0,d.useCallback)(()=>{D.current=[],E.current=[]},[])}}},77033:(a,b,c)=>{c.d(b,{k_:()=>g,nH:()=>h});var d=c(48249),e=c(67484);let f=(0,e.createContext)(null);function g({children:a}){let b=(0,e.useRef)(new Map),c=(0,e.useRef)(null),[h,i]=(0,e.useState)(!1),j=(0,e.useCallback)((a,c)=>{b.current.set(c,a)},[]),k=(0,e.useCallback)(a=>{b.current.delete(a)},[]),l=(0,e.useCallback)(a=>{c.current=a},[]),m=(0,e.useCallback)(a=>{let d=c.current;if(!d)return void console.warn("No active tab to send message");let e=b.current.get(d);e?e(a):console.warn(`No chat sender registered for tab ${d}`)},[]),n=(0,e.useMemo)(()=>({sendMessage:m,isLoading:h,registerChat:j,unregisterChat:k,setActiveTab:l,setIsLoading:i}),[m,h,j,k,l]);return(0,d.jsx)(f.Provider,{value:n,children:a})}function h(){return(0,e.useContext)(f)}},77937:(a,b,c)=>{c.d(b,{f:()=>h,w:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,visible:c,container:e,onAddComment:h,onSendToAI:i,onSearch:j,isChatLoading:k}){let{t:l}=(0,f.Bd)(),m=e.getBoundingClientRect(),n=a-m.left,o=Math.max(0,b-m.top-40);return(0,d.jsxs)("div",{className:"floating-toolbar absolute z-[200] flex items-center gap-1.5 bg-card border border-border rounded-lg shadow-xl p-1.5",style:{left:n+8,top:o,visibility:c?"visible":"hidden",pointerEvents:c?"auto":"none"},children:[(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:h,children:l("floatingToolbar.addComment")}),(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",onClick:i,disabled:k,title:l(k?"comments.aiResponding":"floatingToolbar.sendToAI"),children:l("floatingToolbar.sendToAI")}),j&&(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:j,children:l("floatingToolbar.search")})]})}let h=(0,e.memo)(function({floatingToolbarRef:a,bumpRef:b,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j}){let[k,l]=(0,e.useState)(0),m=(0,e.useMemo)(()=>a.current,[k]);return(0,d.jsx)(g,{x:m?.x??0,y:m?.y??0,visible:!!m,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j})})},79029:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cv:()=>z,XO:()=>x});var e=c(48249),f=c(67484),g=c(44384),h=c(74429),i=c(26068),j=c(45214),k=c(90173),l=c(5811),m=c(77937),n=c(68502),o=c(95133),p=c(16306),q=c(94882),r=c(81749),s=c(75005),t=a([k,l,p]);[k,l,p]=t.then?(await t)():t;let y="white-space:pre;padding:0 12px;min-height:20px;line-height:20px";function u(a){let b=window.getSelection();if(!b?.rangeCount)return null;let c=b.getRangeAt(0),d=c.startContainer;for(;d&&d.parentElement!==a;)d=d.parentElement;if(!d)return null;let e=Array.from(a.children).indexOf(d);if(e<0)return null;let f=document.createRange();f.selectNodeContents(d),f.setEnd(c.startContainer,c.startOffset);let g=f.toString().length;return{line:e,offset:g}}function v(a,b){let c,d=a.children[b.line];if(!d)return;let e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=b.offset;for(;c=e.nextNode();){let a=c.textContent?.length||0;if(f<=a){let a=window.getSelection(),b=document.createRange();b.setStart(c,f),b.collapse(!0),a?.removeAllRanges(),a?.addRange(b);return}f-=a}let g=window.getSelection(),h=document.createRange();h.selectNodeContents(d),h.collapse(!1),g?.removeAllRanges(),g?.addRange(h)}function w(a){return a.map(a=>`<div style="${y}">${a}</div>`).join("")}let z=(0,f.forwardRef)(function({content:a,filePath:b,showLineNumbers:c=!0,showSearch:d=!0,className:k="",cwd:t,enableComments:x=!1,scrollToLine:z=null,scrollToLineAlign:A="center",onScrollToLineComplete:B,highlightKeyword:C=null,visibleLineRef:D,onCmdClick:E,onTokenHover:F,onTokenHoverLeave:G,onTokenHoverCancel:H,blameLines:I,inlineBlameLines:J,onSelectCommit:K,editable:L=!1,initialMtime:M,onEditorClose:N,onSaved:O,onEditorStateChange:P,viMode:Q=!1,onContentMutate:R,onEnterInsertMode:S,onViSave:T,viStateRef:U,initialCursorLine:V,initialCursorCol:W,onInitialCursorSet:X,onContentSearch:Y},Z){let{t:$}=(0,g.Bd)(),_=(0,f.useRef)(a),aa=(0,f.useRef)(!1),[ab,ac]=(0,f.useState)(!1),[ad,ae]=(0,f.useState)(!1),[af,ag]=(0,f.useState)(()=>a.split("\n").length),ah=(0,f.useRef)(a.split("\n").length),[ai,aj]=(0,f.useState)({show:!1}),ak=(0,f.useRef)(null),al=(0,f.useRef)(null),am=(0,f.useRef)(M),an=(0,f.useRef)(null),ao=(0,f.useRef)(!1),ap=(0,f.useRef)(!1),{parentRef:aq,containerRef:ar,searchInputRef:as,floatingToolbarRef:at,suppressHoverRef:au,bumpToolbarRef:av,savedSelectionRef:aw,highlightedLines:ax,isMounted:ay,cmdHeld:az,flashLine:aA,isSearchVisible:aB,searchQuery:aC,caseSensitive:aD,wholeWord:aE,currentMatchIndex:aF,viewingComment:aG,addCommentInput:aH,sendToAIInput:aI,chatContext:aJ,commentsEnabled:aK,updateComment:aL,deleteComment:aM,lines:aN,matches:aO,rowData:aP,virtualizer:aQ,commentsByEndLine:aR,linesWithComments:aS,setIsSearchVisible:aT,setSearchQuery:aU,setCaseSensitive:aV,setWholeWord:aW,setViewingComment:aX,setAddCommentInput:aY,setSendToAIInput:aZ,goToNextMatch:a$,goToPrevMatch:a_,handleSearchKeyDown:a0,handleCommentBubbleClick:a1,handleToolbarAddComment:a2,handleToolbarSendToAI:a3,handleToolbarSearch:a4,handleCommentSubmit:a5,handleSendToAISubmit:a6,getHighlightedLineHtml:a7,suppressMatchScrollRef:a8,inlineBlameLineRef:a9,inlineBlameVersion:ba}=(0,p.d)({content:a,filePath:b,showSearch:d,cwd:t,enableComments:!L&&x,scrollToLine:L?null:z,scrollToLineAlign:L?"center":A,onScrollToLineComplete:L?void 0:B,visibleLineRef:L?void 0:D,onContentSearch:Y}),bb=(0,i.iN)(),bc=(0,f.useRef)(null),bd=(0,f.useRef)(null),be=(0,f.useRef)({line:0,col:0}),bf=(0,s.A)({lines:aN,enabled:Q&&!L,onContentChange:a=>{R?.(a)},onEnterInsert:(a,b,c)=>{let d=b;if("a"===c)d=b+1;else if("A"===c)d=(aN[a]??"").length;else if("I"===c){let b=(aN[a]??"").search(/\S/);d=b>=0?b:0}else("o"===c||"O"===c)&&(d=0);be.current={line:a,col:d},S?.(a)},onSave:T,getVisibleLineCount:()=>{let a=aq.current;return a?Math.floor(a.clientHeight/20):20},scrollToLine:(a,b)=>{let c=aP.findIndex(b=>"code"===b.type&&b.lineIndex===a);c>=0&&aQ.scrollToIndex(c,{align:b||"auto"})},onSearchExecute:a=>{aU(a),aT(!1)},onSearchNext:a$,onSearchPrev:a_,onSearchClear:()=>{aU("")}});(0,f.useEffect)(()=>{U&&(U.current={cursorLine:bf.state.cursorLine,cursorCol:bf.state.cursorCol})},[U,bf.state.cursorLine,bf.state.cursorCol]);let bg=(0,f.useRef)(null);(0,f.useEffect)(()=>{Q&&!L&&null!=V&&b&&bg.current!==b&&(bg.current=b,bf.setCursorLine(V-1),null!=W&&bf.setCursorCol(W-1),X?.())},[Q,L,V,W,b]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;if(!a)return;let b=a=>{let b=a.target;"TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable||bf.handleKeyDown(a)&&(a.preventDefault(),a.stopPropagation())};return a.addEventListener("keydown",b,!0),()=>a.removeEventListener("keydown",b,!0)},[Q,L,bf.handleKeyDown]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;a&&"normal"===bf.state.mode&&requestAnimationFrame(()=>{let b=document.activeElement;b&&("TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable)||a.focus()})},[Q,L,bf.state.mode,a]);let bh=(0,f.useCallback)(a=>{if(!Q||L)return;let b=a.target.closest("[data-line]");if(b){let c=parseInt(b.getAttribute("data-line"),10);if(!isNaN(c)){bf.setCursorLine(c-1);let d=b.querySelector("[data-code-content]");if(d){let b=document.caretRangeFromPoint(a.clientX,a.clientY);if(b&&d.contains(b.startContainer)){let a,e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=0;for(;a=e.nextNode();){if(a===b.startContainer){f+=b.startOffset;break}f+=a.textContent?.length||0}let g=aN[c-1]??"";bf.setCursorCol(Math.max(0,Math.min(f,Math.max(0,g.length-1))))}}}}let c=a.target;if("TEXTAREA"===c.tagName||"INPUT"===c.tagName||c.isContentEditable)return;let d=ar.current;d&&d.focus()},[Q,L,bf.setCursorLine,bf.setCursorCol,aN]),bi=(0,f.useCallback)(a=>{Q&&!L&&requestAnimationFrame(()=>{let a=window.getSelection(),b=a?.toString().trim();b&&/^\S+$/.test(b)&&(a8.current=!0,aU(b))})},[Q,L,aU,a8]);(0,f.useEffect)(()=>{"command"===bf.state.mode?setTimeout(()=>bc.current?.focus(),0):"search"===bf.state.mode&&setTimeout(()=>bd.current?.focus(),0)},[bf.state.mode]),(0,f.useEffect)(()=>{let a=aq.current;if(!a)return;let b=()=>{(H??G)?.()};return a.addEventListener("mousedown",b),()=>a.removeEventListener("mousedown",b)},[H,G]),(0,f.useEffect)(()=>{aH||aI?(au.current=!0,G?.()):at.current||(au.current=!1)},[aH,aI,G]),(0,f.useLayoutEffect)(()=>{let a=aw.current;if(!a)return;let b=window.getSelection();if(b&&!b.isCollapsed)return;let c=aq.current;if(!c)return;let d=c.querySelector(`[data-line="${a.startLine}"]`),e=c.querySelector(`[data-line="${a.endLine}"]`);if(!d||!e)return;let f=(0,p.o)(d,a.startOffset),g=(0,p.o)(e,a.endOffset);if(f&&g)try{let a=document.createRange();a.setStart(f.node,f.offset),a.setEnd(g.node,g.offset),b?.removeAllRanges(),b?.addRange(a)}catch{}});let bj=(0,f.useCallback)((a,b,c)=>{au.current||F?.(a,b,c)},[F]),bk=(0,f.useCallback)((a,b)=>{au.current||E?.(a,b)},[E]),bl=Math.max(4,String(L?af:aN.length).length),bm=(0,f.useMemo)(()=>{let a=0;for(let b of aN){let c=0;for(let a=0;a<b.length;a++)" "===b[a]?c+=2-c%2:c+=1;c>a&&(a=c)}return a},[aN]);(0,f.useEffect)(()=>{if(L){_.current=a;let b=a.split("\n").length;ah.current=b,ag(b),aa.current=!1,ac(!1),aj({show:!1}),am.current=M}},[L,a,M]),(0,f.useEffect)(()=>{if(!L)return;let b=ak.current;if(!b)return;let c=a.split("\n"),d=c.map((a,b)=>ax[b]||(0,l.ZD)(a||" "));b.innerHTML=w(d),requestAnimationFrame(()=>{let a,d;Q?(a=Math.max(0,Math.min(be.current.line,c.length-1)),d=be.current.col):(a=Math.max(0,Math.min((D?.current??1)-1,c.length-1)),d=0),b.focus(),v(b,{line:a,offset:d});let e=D?.current??1;al.current&&(al.current.scrollTop=(e-1)*20)})},[L]),(0,f.useEffect)(()=>{L&&P?.({isDirty:ab,isSaving:ad})},[L,ab,ad,P]);let bn=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return _.current;let b=[];for(let c of a.childNodes){let a=c.textContent||"";b.push(" "===a?"":a)}return b.join("\n")},[]),bo=(0,f.useCallback)(()=>{an.current&&clearTimeout(an.current),an.current=setTimeout(async()=>{let a=ak.current;if(a&&!ap.current){_.current=bn();try{let c=await (0,l.kS)(),d=(0,l.sQ)(b),e=document.documentElement.classList.contains("dark"),f=_.current.split("\n"),g=c.codeToTokens(f.join("\n"),{lang:d,theme:e?"github-dark":"github-light"}).tokens.map(a=>(0,l.b8)(a)),h=u(a);ao.current=!0,a.innerHTML=w(g),ao.current=!1,h&&v(a,h)}catch{}}},300)},[b,bn]);(0,f.useEffect)(()=>{if(L)return()=>{an.current&&clearTimeout(an.current)}},[L]);let bp=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return;aa.current||(aa.current=!0,ac(!0));let b=a.children.length;b!==ah.current&&(ah.current=b,ag(b))},[]),bq=(0,f.useCallback)(()=>{ao.current||ap.current||(bp(),bo())},[bp,bo]),br=(0,f.useCallback)(a=>{if(!a.nativeEvent.isComposing&&("Tab"===a.key&&(a.preventDefault(),document.execCommand("insertText",!1," ")),"Enter"===a.key)){a.preventDefault();let b=ak.current;if(!b)return;let c=window.getSelection();if(!c?.rangeCount)return;let d=c.getRangeAt(0);d.deleteContents();let e=d.startContainer;for(;e&&e.parentElement!==b;)e=e.parentElement;if(!e||!(e instanceof HTMLElement))return;let f=u(b),g=Array.from(b.children).indexOf(e),h=e.textContent||"",i=f?.offset??h.length,j=h.substring(0,i),k=h.substring(i);e.innerHTML=(0,l.ZD)(j||" ");let m=document.createElement("div");m.setAttribute("style",y),m.innerHTML=(0,l.ZD)(k||" "),e.after(m),v(b,{line:g+1,offset:0}),bp(),bo()}},[bp,bo]),bs=(0,f.useCallback)(a=>{a.preventDefault();let b=a.clipboardData.getData("text/plain");document.execCommand("insertText",!1,b)},[]),bt=(0,f.useCallback)(async(a=!1)=>{if(t){_.current=bn(),ae(!0);try{let c=await fetch("/api/files/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,path:b,content:_.current,expectedMtime:a?void 0:am.current})}),d=await c.json();if(409===c.status&&d.conflict){try{let a=await fetch(`/api/files/text?cwd=${encodeURIComponent(t)}&path=${encodeURIComponent(b)}`),c=await a.json();aj({show:!0,diskContent:a.ok&&"string"==typeof c.content?c.content:void 0})}catch{aj({show:!0})}return}if(!c.ok)throw Error("Failed to save file");d.mtime&&(am.current=d.mtime),aa.current=!1,ac(!1),aj({show:!1}),(0,r.oR)($("toast.savedSuccess"),"success"),O?.()}catch(a){console.error("Error saving file:",a),(0,r.oR)($("toast.saveFailed"),"error")}finally{ae(!1)}}},[t,b,bn,O]),bu=(0,f.useCallback)(async()=>{ab&&!ad&&await bt(!1)},[ab,ad,bt]),bv=(0,f.useCallback)(async()=>{aj({show:!1}),await bt(!0)},[bt]),bw=(0,f.useCallback)(()=>{if(void 0!==ai.diskContent){_.current=ai.diskContent;let b=ai.diskContent.split("\n").length;ah.current=b,ag(b);let c=ai.diskContent!==a;aa.current=c,ac(c);let d=ak.current;if(d){let a=ai.diskContent.split("\n");d.innerHTML=w(a.map(a=>(0,l.ZD)(a||" "))),bo()}}aj({show:!1}),O?.()},[ai.diskContent,a,O,bo]),bx=(0,f.useCallback)(()=>{let a=al.current;return a?Math.floor(a.scrollTop/20)+1:D?.current??1},[D]),by=(0,f.useCallback)(async()=>{(!ab||await (0,r.lJ)($("codeViewer.unsavedConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}))&&N?.(bx())},[ab,N,bx]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{(a.metaKey||a.ctrlKey)&&"s"===a.key&&(a.preventDefault(),bu())};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[L,bu]);let bz=(0,f.useCallback)(()=>{let a=bn();R?.(a);let b=ak.current,c=b?u(b):null,d=bx();if(bf.enterNormal(),c){bf.setCursorLine(c.line);let b=a.split("\n")[c.line]??"";bf.setCursorCol(Math.max(0,Math.min(c.offset,Math.max(0,b.length-1))))}else bf.setCursorLine(Math.max(0,d-1));N?.(d)},[bn,R,bx,N,bf]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{let b="Escape"===a.key,c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;(b||Q&&c)&&(a.preventDefault(),a.stopPropagation(),Q?aa.current?(0,r.lJ)($("codeViewer.unsavedExitConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}).then(a=>{a&&bz()}):bz():by())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[L,Q,by,bz]),(0,f.useImperativeHandle)(Z,()=>({save:bu,close:by,get isDirty(){return ab},get isSaving(){return ad}}),[bu,by,ab,ad]);let bA=!!(I&&I.length>0),bB=(0,f.useMemo)(()=>{if(!I)return new Map;let a=[...new Set(I.map(a=>a.author))],b=new Map;return a.forEach((a,c)=>{b.set(a,o.j[c%o.j.length])}),b},[I]),[bC,bD]=(0,f.useState)(null),[bE,bF]=(0,f.useState)(null);(0,f.useEffect)(()=>{bD(null),bF(null)},[I]);let bG=(0,f.useCallback)((a,b)=>{bD(a.author);let c=b.currentTarget.getBoundingClientRect();bF({line:a,x:c.right+8,y:c.top})},[]),bH=(0,f.useCallback)(()=>{bD(null),bF(null)},[]),bI=(0,f.useCallback)(a=>{if(!K)return;let b={hash:a.hashFull,shortHash:a.hash,author:a.author,authorEmail:a.authorEmail,date:new Date(1e3*a.time).toISOString(),subject:a.message.split("\n")[0]||"",body:a.message.split("\n").slice(1).join("\n").trim(),time:a.time};K(b),bF(null)},[K]),bJ=`${bl+2}ch`;return(0,e.jsxs)("div",{ref:ar,className:`h-full flex flex-col outline-none ${k}`,tabIndex:0,onClick:bh,onDoubleClick:bi,children:[L&&ai.show&&(0,e.jsxs)("div",{className:"px-4 py-2 bg-amber-500/15 border-b border-amber-500/30 flex items-center gap-3 flex-shrink-0",children:[(0,e.jsx)("svg",{className:"w-5 h-5 text-amber-500 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,e.jsx)("span",{className:"text-sm text-foreground flex-1",children:$("codeViewer.fileModifiedExternally")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("button",{onClick:bw,className:"px-3 py-1 text-sm rounded border border-border hover:bg-accent transition-colors",children:$("codeViewer.useDiskVersion")}),(0,e.jsx)("button",{onClick:bv,className:"px-3 py-1 text-sm rounded bg-amber-500 text-white hover:bg-amber-600 transition-colors",children:$("codeViewer.forceOverwrite")})]})]}),!L&&d&&aB&&(0,e.jsxs)("div",{className:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-secondary border-b border-border",children:[(0,e.jsx)("input",{ref:as,type:"text",value:aC,onChange:a=>aU(a.target.value),onKeyDown:a0,placeholder:$("codeViewer.searchPlaceholder"),className:"flex-1 max-w-xs px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-2 focus:ring-ring"}),(0,e.jsx)("button",{onClick:()=>aV(!aD),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aD?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.caseSensitive"),children:"Aa"}),(0,e.jsx)("button",{onClick:()=>aW(!aE),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aE?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.wholeWordMatch"),children:"[ab]"}),(0,e.jsx)("span",{className:"text-xs text-muted-foreground",children:aO.length>0?`${aF+1}/${aO.length}`:$("common.noMatch")}),(0,e.jsx)("button",{onClick:a_,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.previous"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}),(0,e.jsx)("button",{onClick:a$,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.next"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}),(0,e.jsx)("button",{onClick:()=>{aT(!1),aU("")},className:"p-1 rounded hover:bg-accent",title:$("common.close"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),L?(0,e.jsx)("div",{ref:al,className:"flex-1 overflow-auto bg-secondary",children:(0,e.jsxs)("div",{className:"flex",style:{minHeight:"100%"},children:[(0,e.jsx)("div",{className:"flex-shrink-0 font-mono text-sm select-none sticky left-0 z-[2] bg-secondary",style:{width:bJ},children:Array.from({length:af},(a,b)=>(0,e.jsx)("div",{className:"text-right text-muted-foreground/50 pr-3",style:{height:20,lineHeight:"20px"},children:b+1},b))}),(0,e.jsx)("div",{ref:ak,contentEditable:!0,suppressContentEditableWarning:!0,onInput:bq,onKeyDown:br,onPaste:bs,onCompositionStart:()=>{ap.current=!0},onCompositionEnd:()=>{ap.current=!1,bq()},spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",className:"flex-1 font-mono text-sm outline-none",style:{caretColor:"var(--foreground)",tabSize:2}})]})}):(0,e.jsx)("div",{ref:aq,className:`flex-1 overflow-auto font-mono text-sm bg-secondary${az?" cmd-held-container":""}`,children:(0,e.jsx)("div",{style:{height:`${aQ.getTotalSize()}px`,minWidth:"100%",width:bA?`calc(${bl+bm+10}ch + 13rem)`:`${bl+bm+10}ch`,position:"relative"},children:aQ.getVirtualItems().map(a=>{let b=aP[a.index];if("code"!==b.type)return null;let d=b.lineIndex,f=d+1,g=ax[d]||(0,l.ZD)(aN[d]||""),h=a7(d,g,C),i=aS.has(f),j=aR.get(f),k=j?.[0],m=!!(aH&&f>=aH.range.start&&f<=aH.range.end),n=ba>=0?a9.current:null,p=!L&&J&&n===f?J[d]??null:null,q=bA?I[d]:void 0,r=bA&&d>0?I[d-1]:void 0,s=!!q&&(!r||r.hash!==q.hash),t=q?bB.get(q.author):void 0;return(0,e.jsx)(o.S,{virtualKey:a.key,lineNum:f,highlightedHtml:h,hasComments:i,firstComment:k,lineCommentsCount:j?.length,isInRange:m,showLineNumbers:c,lineNumChars:bl,commentsEnabled:aK,virtualItemSize:a.size,virtualItemStart:a.start,onCommentBubbleClick:a1,onCmdClick:bk,onTokenHover:bj,onTokenHoverLeave:G,flashLine:aA,blameLine:q,showBlameInfo:s,blameAuthorColor:t,isBlameHovered:!!(q&&bC===q.author),onBlameClick:bI,onBlameMouseEnter:bG,onBlameMouseLeave:bH,inlineBlameData:p,onInlineBlameClick:bI,isCursorLine:Q&&!L&&bf.state.cursorLine===d,cursorCol:Q&&!L&&bf.state.cursorLine===d?bf.state.cursorCol:void 0},a.key)})})}),Q&&(0,e.jsxs)("div",{className:"vi-status-bar flex-shrink-0 h-6 bg-card border-t border-border flex items-center px-3 text-xs font-mono select-none",children:["normal"===bf.state.mode&&(0,e.jsx)("span",{className:"text-green-11 font-medium",children:"NORMAL"}),"insert"===bf.state.mode&&(0,e.jsx)("span",{className:"text-blue-11 font-medium",children:"INSERT"}),"command"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:":"}),(0,e.jsx)("input",{ref:bc,value:bf.state.commandInput,onChange:a=>bf.setCommandInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),"search"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:"/"}),(0,e.jsx)("input",{ref:bd,value:bf.state.searchInput,onChange:a=>bf.setSearchInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),bf.state.keyBuffer&&"normal"===bf.state.mode&&(0,e.jsx)("span",{className:"ml-2 text-muted-foreground",children:bf.state.keyBuffer}),bf.state.isDirty&&("normal"===bf.state.mode||"command"===bf.state.mode)&&(0,e.jsx)("span",{className:"ml-2 text-amber-11",children:"[+]"}),(0,e.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[bf.state.cursorLine+1,":",bf.state.cursorCol+1]})]}),ay&&bb&&(0,h.createPortal)((0,e.jsxs)(e.Fragment,{children:[!L&&(0,e.jsx)(m.f,{floatingToolbarRef:at,bumpRef:av,container:bb,onAddComment:a2,onSendToAI:a3,onSearch:Y?a4:void 0,isChatLoading:aJ?.isLoading}),!L&&aH&&(0,e.jsx)(j.t,{x:aH.x,y:aH.y,range:aH.range,codeContent:aH.codeContent,container:bb,onSubmit:a5,onClose:()=>aY(null)}),!L&&aI&&(0,e.jsx)(j.G,{x:aI.x,y:aI.y,range:aI.range,filePath:b,codeContent:aI.codeContent,container:bb,onSubmit:a6,onClose:()=>aZ(null),isChatLoading:aJ?.isLoading}),!L&&aG&&(0,e.jsx)(n.t,{x:aG.x,y:aG.y,comment:aG.comment,container:bb,onClose:()=>aX(null),onUpdateComment:aL,onDeleteComment:aM}),bE&&(0,e.jsxs)("div",{className:"fixed z-50 bg-card border border-border rounded-lg shadow-lg p-3 max-w-lg",style:{left:Math.min(bE.x,window.innerWidth-450),top:Math.max(8,Math.min(bE.y,window.innerHeight-200))},children:[(0,e.jsxs)("div",{className:"flex items-start gap-3",children:[(0,e.jsx)("div",{className:"px-2 py-0.5 rounded text-xs font-mono font-medium text-white flex-shrink-0",style:{backgroundColor:bB.get(bE.line.author)?.border||"#666"},children:bE.line.hash}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-foreground",children:bE.line.author}),(0,e.jsx)("div",{className:"text-xs text-muted-foreground",children:bE.line.authorEmail})]})]}),(0,e.jsx)("div",{className:"mt-2 text-sm text-foreground whitespace-pre-wrap max-h-48 overflow-y-auto",children:bE.line.message}),(0,e.jsxs)("div",{className:"mt-2 text-xs text-muted-foreground border-t border-border pt-2",children:[(0,q.fw)(bE.line.time)," \xb7 ",new Date(1e3*bE.line.time).toLocaleString(),(0,e.jsx)("span",{className:"ml-2 text-brand",children:$("codeViewer.clickToViewDetails")})]})]})]}),bb)]})});function x({content:a,filePath:b,className:c=""}){let d=(0,f.useMemo)(()=>a.split("\n"),[a]),g=(0,k.C)(d,b),h=Math.max(4,String(d.length).length);return(0,e.jsx)("pre",{className:`overflow-auto text-sm font-mono bg-secondary p-2 ${c}`,children:d.map((a,b)=>(0,e.jsxs)("div",{className:"flex",children:[(0,e.jsx)("span",{className:"text-slate-9 select-none pr-4 text-right",style:{minWidth:`${h+2}ch`},children:b+1}),(0,e.jsx)("span",{className:"flex-1",dangerouslySetInnerHTML:{__html:g[b]||(0,l.ZD)(a||" ")}})]},b))})}d()}catch(a){d(a)}})},90173:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C:()=>h});var e=c(67484),f=c(5811),g=a([f]);function h(a,b){let[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(!1);return(0,e.useRef)(""),a.join("\n"),c}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},94882:(a,b,c)=>{function d(a,b){for(let c of a){if(c.path===b)return c;if(c.children){let a=d(c.children,b);if(a)return a}}return null}function e(a,b){if(!a)return"";let c=d(b,a);if(c?.isDirectory)return a;let e=a.split("/");return e.pop(),e.join("/")}function f(a){let b=[];for(let c of a){let a=c.split("/"),d=b;for(let b=0;b<a.length;b++){let c=a[b],e=b===a.length-1,f=a.slice(0,b+1).join("/"),g=d.find(a=>a.name===c);g||(g={name:c,path:f,isDirectory:!e,children:e?void 0:[]},d.push(g)),!e&&g.children&&(d=g.children)}}let c=a=>{a.sort((a,b)=>a.isDirectory&&!b.isDirectory?-1:!a.isDirectory&&b.isDirectory?1:a.name.localeCompare(b.name)),a.forEach(a=>{a.children&&c(a.children)})};return c(b),b}function g(a){let b=[],c=a=>{for(let d of a)d.isDirectory&&(b.push(d.path),d.children&&c(d.children))};return c(a),b}c.d(b,{B_:()=>o,KH:()=>k,MB:()=>d,S7:()=>e,fw:()=>l,q3:()=>j,r6:()=>m,tE:()=>n,tW:()=>g,u:()=>i,v3:()=>f});let h=new Set(["png","jpg","jpeg","gif","svg","webp","ico","bmp"]);function i(a){let b=a.split(".").pop()?.toLowerCase();return h.has(b||"")}function j(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase(),f=a=>{if(d.add(a.path),a.children)for(let b of a.children)f(b)},g=(a,b)=>{let h=a.name.toLowerCase(),i=c?h===e:h.includes(e);if(i&&a.children)return f(a),b.forEach(a=>d.add(a)),!0;let j=!1;if(a.children)for(let c of a.children)g(c,[...b,a.path])&&(j=!0);return(!!i||!!j)&&(d.add(a.path),b.forEach(a=>d.add(a)),!0)};for(let b of a)g(b,[]);return d}function k(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase();for(let b of a){let a=b.split("/");for(let b=0;b<a.length;b++){let f=a[b].toLowerCase();if(c?f===e:f.includes(e)){for(let b=0;b<=a.length-1;b++)d.add(a.slice(0,b+1).join("/"));break}}}return d}function l(a){let b=Math.floor(Math.floor((Date.now()-1e3*a)/1e3)/60),c=Math.floor(b/60),d=Math.floor(c/24),e=Math.floor(d/30),f=Math.floor(d/365);return f>0?`${f}y ago`:e>0?`${e}mo ago`:d>0?`${d}d ago`:c>0?`${c}h ago`:b>0?`${b}m ago`:"just now"}function m(a){let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear(),e=String(b.getMonth()+1).padStart(2,"0"),f=String(b.getDate()).padStart(2,"0"),g=String(b.getHours()).padStart(2,"0"),h=String(b.getMinutes()).padStart(2,"0");return d?`${e}-${f} ${g}:${h}`:`${b.getFullYear()}-${e}-${f} ${g}:${h}`}let n=()=>{},o=50},95133:(a,b,c)=>{c.d(b,{S:()=>l,j:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(74429);function i({blame:a,onClick:b}){let{t:c}=(0,f.Bd)(),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(!1),m=(0,e.useRef)(!1),n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useRef)(a),r=(0,e.useRef)(b),s=(0,e.useCallback)(()=>{let a,b=k.current,c=j.current;if(!b||!c)return;let d=c.getBoundingClientRect(),e=b.getBoundingClientRect(),f=window.innerWidth,g=window.innerHeight,h=d.left;h+e.width>f-8&&(h=f-e.width-8),h<8&&(h=8),(a=d.top-e.height-4<0?d.bottom+4:d.top-e.height-4)+e.height>g-8&&(a=g-e.height-8),b.style.left=`${h}px`,b.style.top=`${a}px`},[]),t=(0,e.useCallback)(()=>{n.current&&(clearTimeout(n.current),n.current=null),o.current&&(clearTimeout(o.current),o.current=null),l.current=!1,m.current=!1,k.current&&(k.current.style.display="none"),p.current&&(document.removeEventListener("mousedown",p.current.down),document.removeEventListener("mouseup",p.current.up),p.current=null)},[]),u=(0,e.useCallback)(()=>{let a=k.current;if(!a||l.current)return;l.current=!0,a.style.left="-9999px",a.style.top="-9999px",a.style.display="block",requestAnimationFrame(()=>requestAnimationFrame(s));let b=0,c=0,d=a=>{b=a.clientX,c=a.clientY},e=a=>{if(!(Math.abs(a.clientX-b)>5||Math.abs(a.clientY-c)>5)){let b;b=a.target,k.current?.contains(b)||j.current?.contains(b)||t()}};document.addEventListener("mousedown",d),document.addEventListener("mouseup",e),p.current={down:d,up:e}},[s,t]),v=(0,e.useCallback)(()=>{if(n.current&&clearTimeout(n.current),o.current&&(clearTimeout(o.current),o.current=null),l.current)return;let a=window.getSelection();(!a||a.isCollapsed)&&(n.current=setTimeout(u,500))},[u]),w=(0,e.useCallback)(()=>{n.current&&(clearTimeout(n.current),n.current=null),l.current&&(o.current=setTimeout(()=>{m.current||t()},200))},[t]),x=(0,e.useCallback)(()=>{m.current=!0,o.current&&(clearTimeout(o.current),o.current=null)},[]),y=(0,e.useCallback)(()=>{m.current=!1,t()},[t]),z=(0,e.useCallback)(a=>{a.stopPropagation();let b=window.getSelection();b&&b.toString().length>0&&k.current?.contains(b.anchorNode)||(r.current?.(q.current),t())},[t]),A=a.message.split("\n")[0]||"",B=a.message.split("\n").slice(1).join("\n").trim();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{ref:j,className:"select-none text-xs text-muted-foreground/50 ml-6 cursor-default hover:text-muted-foreground/80",onMouseEnter:v,onMouseLeave:w,children:[a.author.split(" ")[0],", ",function(a){let b=g.A.t,c=Math.floor((Date.now()-1e3*a)/1e3);if(c<60)return b("common.justNow");let d=Math.floor(c/60);if(d<60)return b("common.minutesAgo",{count:d});let e=Math.floor(d/60);if(e<24)return b("common.hoursAgo",{count:e});let f=Math.floor(e/24);if(f<30)return b("common.daysAgo",{count:f});let h=Math.floor(f/30);return h<12?b("common.monthsAgo",{count:h}):b("common.yearsAgo",{count:Math.floor(h/12)})}(a.time)," \xb7 ",A]}),(0,h.createPortal)((0,d.jsxs)("div",{ref:k,className:"fixed z-[9999] bg-card border border-border rounded-lg shadow-xl p-3 text-xs text-foreground whitespace-pre-wrap max-w-md select-text",style:{display:"none",minWidth:280,cursor:"text"},"data-inline-blame-tip":"",onMouseEnter:x,onMouseLeave:y,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,d.jsx)("span",{className:"font-mono text-brand",children:a.hash}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.author}),(0,d.jsx)("span",{className:"text-muted-foreground/60",children:new Date(1e3*a.time).toLocaleString()})]}),(0,d.jsx)("div",{className:"font-medium",children:A}),B&&(0,d.jsx)("div",{className:"mt-1 text-muted-foreground",children:B}),(0,d.jsx)("div",{className:"mt-2 text-[11px] text-brand border-t border-border pt-2 cursor-pointer hover:underline",onClick:z,children:c("codeViewer.clickToViewDetails")})]}),document.body)]})}let j=[{bg:"rgba(59, 130, 246, 0.15)",border:"rgb(59, 130, 246)"},{bg:"rgba(16, 185, 129, 0.15)",border:"rgb(16, 185, 129)"},{bg:"rgba(245, 158, 11, 0.15)",border:"rgb(245, 158, 11)"},{bg:"rgba(239, 68, 68, 0.15)",border:"rgb(239, 68, 68)"},{bg:"rgba(168, 85, 247, 0.15)",border:"rgb(168, 85, 247)"},{bg:"rgba(236, 72, 153, 0.15)",border:"rgb(236, 72, 153)"},{bg:"rgba(20, 184, 166, 0.15)",border:"rgb(20, 184, 166)"},{bg:"rgba(249, 115, 22, 0.15)",border:"rgb(249, 115, 22)"}];function k(a,b){let c,d=document.caretRangeFromPoint(a.clientX,a.clientY);if(!d||!b.contains(d.startContainer))return 1;let e=d.startContainer,f=d.startOffset,g=document.createTreeWalker(b,NodeFilter.SHOW_TEXT),h=1;for(;c=g.nextNode();){if(c===e){h+=f;break}h+=c.textContent?.length||0}return h}let l=(0,e.memo)(function({virtualKey:a,lineNum:b,highlightedHtml:c,hasComments:g,firstComment:h,lineCommentsCount:j,isInRange:l,showLineNumbers:m,lineNumChars:n,commentsEnabled:o,virtualItemSize:p,virtualItemStart:q,onCommentBubbleClick:r,onCmdClick:s,onTokenHover:t,onTokenHoverLeave:u,flashLine:v,blameLine:w,showBlameInfo:x,blameAuthorColor:y,isBlameHovered:z,onBlameClick:A,onBlameMouseEnter:B,onBlameMouseLeave:C,inlineBlameData:D,onInlineBlameClick:E,isCursorLine:F,cursorCol:G}){let{t:H}=(0,f.Bd)(),I=(0,e.useMemo)(()=>F&&null!=G?function(a,b){let c=0,d=0;for(;d<a.length;){if("<"===a[d]){let b=a.indexOf(">",d);if(-1!==b){d=b+1;continue}}if(c===b){let b;if("&"===a[d]){let c=a.indexOf(";",d);b=-1!==c&&c-d<10?c+1:d+1}else b=d+1;let c=a.substring(d,b);return a.substring(0,d)+'<span class="vi-char-cursor">'+c+"</span>"+a.substring(b)}if("&"===a[d]){let b=a.indexOf(";",d);d=-1!==b&&b-d<10?b+1:d+1}else d++;c++}return a+'<span class="vi-char-cursor"> </span>'}(c,G):c,[c,F,G]),J=(0,e.useCallback)(a=>{if(!a.metaKey||!s)return;a.preventDefault(),a.stopPropagation();let c=a.currentTarget,d=k(a,c);window.getSelection()?.removeAllRanges(),s(b,d)},[b,s]),K=(0,e.useCallback)(a=>{if(!t||0!==a.buttons)return;let c=window.getSelection();if(c&&!c.isCollapsed)return;let d=a.target;if("SPAN"!==d.tagName||!d.style.color)return;let e=a.currentTarget,f=k(a,e),g=d.getBoundingClientRect();t(b,f,{x:g.left,y:g.bottom+4})},[b,t]),L=(0,e.useCallback)(()=>{w&&A&&A(w)},[w,A]),M=(0,e.useCallback)(a=>{w&&B&&B(w,a)},[w,B]);return(0,d.jsxs)("div",{"data-line":b,style:{position:"absolute",top:0,left:0,width:"100%",height:`${p}px`,transform:`translateY(${q}px)`,backgroundColor:z&&y?y.bg:void 0},className:`flex ${v===b?"flash-line":""} ${F?"vi-cursor-line":""} ${l?"bg-blue-9/20":g?"bg-amber-9/10":"hover:bg-accent/50"}`,children:[(0,d.jsxs)("div",{className:"flex shrink-0 sticky left-0 z-[2] bg-secondary",style:{backgroundColor:z&&y?y.bg:void 0},children:[w&&y&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-1 flex-shrink-0",style:{backgroundColor:y.border}}),(0,d.jsx)("div",{className:"w-48 flex-shrink-0 px-2 flex items-center gap-2 border-r border-border text-muted-foreground cursor-pointer hover:bg-accent/50",onMouseEnter:M,onMouseLeave:C,onClick:L,title:H("codeViewer.clickToViewCommit"),children:x?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-medium",style:{color:y.border},children:w.hash}),(0,d.jsx)("span",{className:"truncate flex-1",children:w.author.split(" ")[0]})]}):null})]}),m&&(0,d.jsxs)("span",{className:`flex-shrink-0 flex items-center justify-end gap-0.5 pr-2 select-none border-r border-border font-variant-tabular ${l?"bg-blue-9/30 text-blue-11":"bg-card/50 text-slate-9"}`,children:[o&&g&&h&&(0,d.jsx)("button",{onClick:a=>r(h,a),className:"w-4 h-4 flex items-center justify-center rounded hover:bg-accent text-amber-9",title:H("codeViewer.nComments",{count:j}),children:(0,d.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,d.jsx)("path",{fillRule:"evenodd",d:"M18 10c0 3.866-3.582 7-8 7a8.841 8.841 0 01-4.083-.98L2 17l1.338-3.123C2.493 12.767 2 11.434 2 10c0-3.866 3.582-7 8-7s8 3.134 8 7zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z",clipRule:"evenodd"})})}),o&&!g&&(0,d.jsx)("span",{className:"w-4"}),(0,d.jsx)("span",{className:"text-right",style:{minWidth:`${n}ch`},children:b})]})]}),(0,d.jsxs)("span",{className:"flex-1 px-3 whitespace-pre select-text",onClick:J,onMouseOver:K,onMouseLeave:u,"data-code-content":!0,children:[(0,d.jsx)("span",{dangerouslySetInnerHTML:{__html:I}}),D&&(0,d.jsx)(i,{blame:D,onClick:E})]})]},a)})}};
1
+ "use strict";exports.id=4732,exports.ids=[4732],exports.modules={132:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(67484);function e(){let[a,b]=(0,d.useState)([]),c=(0,d.useCallback)(()=>{fetch("/api/pinned-sessions").then(a=>a.json()).then(a=>b(a.sessions||[])).catch(()=>{})},[]),e=(0,d.useCallback)(a=>{b(a),fetch("/api/pinned-sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:a})}).catch(()=>{});try{window.parent.postMessage({type:"PINNED_SESSIONS_CHANGED"},"*")}catch{}},[]),f=(0,d.useCallback)(b=>a.some(a=>a.sessionId===b),[a]),g=(0,d.useCallback)((b,c,d)=>{a.some(a=>a.sessionId===b)||e([...a,{sessionId:b,cwd:c,customTitle:d}])},[a,e]),h=(0,d.useCallback)(b=>{e(a.filter(a=>a.sessionId!==b))},[a,e]),i=(0,d.useCallback)((b,c)=>{e(a.map(a=>a.sessionId===b?{...a,customTitle:c}:a))},[a,e]);return{pinnedSessions:a,isPinned:f,pinSession:g,unpinSession:h,updateTitle:i,reorder:(0,d.useCallback)(a=>{e(a)},[e]),reload:c}}},5811:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Np:()=>k,ZD:()=>i,b8:()=>j,kS:()=>g,sQ:()=>h});var e=c(78908),f=a([e]);e=(f.then?(await f)():f)[0];let l=null,m=["typescript","tsx","javascript","jsx","html","css","scss","json","yaml","python","go","rust","java","ruby","php","bash","shell","markdown","sql","c","cpp","swift","kotlin","dart","lua","graphql","xml"];function g(){return l||(l=(0,e.createHighlighter)({themes:["github-dark","github-light"],langs:[...m]})),l}function h(a){let b=a.split("/").pop()?.toLowerCase()||"",c=b.split(".").pop()?.toLowerCase();if(".env"===b||b.startsWith(".env.")||"dockerfile"===b||b.startsWith("dockerfile.")||"makefile"===b)return"bash";let d={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",mjs:"javascript",cjs:"javascript",html:"html",htm:"html",css:"css",scss:"scss",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",rb:"ruby",php:"php",cs:"cpp",cpp:"cpp",c:"c",h:"c",sh:"bash",bash:"bash",zsh:"bash",md:"markdown",mdx:"markdown",sql:"sql",swift:"swift",dart:"dart",lua:"lua",graphql:"graphql",gql:"graphql",toml:"yaml",sass:"scss",less:"css",scala:"java",r:"python",vim:"bash",env:"bash"}[c||""]||"text";return m.includes(d)?d:"text"}function i(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function j(a){return a.map(a=>a.color?`<span style="color:${a.color}">${i(a.content)}</span>`:i(a.content)).join("")}function k(a,b,c,d){if(!b)return[];let e=[],f=c?b:b.toLowerCase();for(let b=0;b<a.length;b++){let g=c?a[b]:a[b].toLowerCase(),h=0;for(;;){let a=g.indexOf(f,h);if(-1===a)break;let c=a+f.length;if(d){let d=a>0?g[a-1]:" ",f=c<g.length?g[c]:" ",h=!/\w/.test(d),i=!/\w/.test(f);h&&i&&e.push({lineIndex:b,startCol:a,endCol:c})}else e.push({lineIndex:b,startCol:a,endCol:c});h=a+1}}return e}d()}catch(a){d(a)}})},13928:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(67484);function e({url:a,onMessage:b,enabled:c=!0}){(0,d.useRef)(b)}},16306:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{d:()=>n,o:()=>m});var e=c(67484),f=c(36043),g=c(47033),h=c(23434),i=c(77033),j=c(90173),k=c(5811),l=a([j,k]);function m(a,b){let c,d=document.createTreeWalker(a,NodeFilter.SHOW_TEXT),e=b,f=null;for(;c=d.nextNode();){f=c;let a=c.textContent.length;if(e<=a)return{node:c,offset:e};e-=a}return f?{node:f,offset:f.textContent.length}:null}function n({content:a,filePath:b,showSearch:c=!0,cwd:d,enableComments:l=!1,scrollToLine:m=null,scrollToLineAlign:o="center",onScrollToLineComplete:p,visibleLineRef:q,onContentSearch:r}){let[s,t]=(0,e.useState)(!1),u=(0,e.useRef)(null),v=(0,e.useRef)(null),w=(0,e.useRef)(null),x=(0,i.nH)(),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null);(0,e.useRef)(null);let[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(""),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(0),[M,N]=(0,e.useState)(0),O=(0,e.useRef)(!1),[P,Q]=(0,e.useState)(null),R=(0,e.useRef)(null),S=(0,e.useRef)(()=>{}),T=(0,e.useRef)(!1),U=(0,e.useRef)(null),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(null),Z=(0,e.useRef)(null),[$,_]=(0,e.useState)(0),aa=l&&!!d,{comments:ab,addComment:ac,updateComment:ad,deleteComment:ae,refresh:af}=(0,g._)({cwd:d||"",filePath:b}),ag=(0,e.useMemo)(()=>a.split("\n"),[a]),ah=(0,j.C)(ag,b),ai=(0,e.useMemo)(()=>{let a=new Map;for(let b of ab){let c=b.endLine;a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[ab]),aj=(0,e.useMemo)(()=>{let a=new Set;for(let b of ab)for(let c=b.startLine;c<=b.endLine;c++)a.add(c);return a},[ab]),ak=(0,e.useMemo)(()=>(0,k.Np)(ag,E,G,I),[ag,E,G,I]),al=(0,e.useMemo)(()=>{let a=[];for(let b=0;b<ag.length;b++)a.push({type:"code",lineIndex:b});return a},[ag.length]),am=(0,f.Te)({count:al.length,getScrollElement:()=>u.current,estimateSize:()=>20,overscan:10}),an=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a+1)%ak.length),N(a=>a+1))},[ak.length]),ao=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a-1+ak.length)%ak.length),N(a=>a+1))},[ak.length]);(0,e.useRef)(m).current=m;let ap=(0,e.useCallback)(a=>{"Enter"===a.key&&(a.preventDefault(),a.shiftKey?ao():an()),"Escape"===a.key&&(D(!1),F(""))},[an,ao]),aq=(0,e.useCallback)((a,b)=>{aa&&(b.stopPropagation(),Q({comment:a,x:b.clientX,y:b.clientY}),R.current=null,S.current(),W(null),Y(null))},[aa]),ar=(0,e.useCallback)(()=>{let a=R.current;a&&(W({x:a.x,y:a.y,range:a.range,codeContent:a.selectedText}),R.current=null,S.current())},[]),as=(0,e.useCallback)(()=>{let a=R.current;if(!a)return;let b=a.selectedText;Y({x:a.x,y:a.y,range:a.range,codeContent:b}),R.current=null,S.current()},[]),at=(0,e.useCallback)(()=>{let a=R.current;if(!a||!r)return;let b=a.selectedText.trim();R.current=null,S.current(),b&&r(b)},[r]),au=(0,e.useCallback)(async a=>{V&&(await ac(V.range.start,V.range.end,a),W(null))},[V,ac]),av=(0,e.useCallback)(async a=>{if(X&&x&&d)try{let c=await (0,h.$3)(d),e=[];for(let a of c)e.push({filePath:a.filePath,startLine:a.startLine,endLine:a.endLine,codeContent:a.codeContent,note:a.content||void 0});e.push({filePath:b,startLine:X.range.start,endLine:X.range.end,codeContent:X.codeContent});let f=(0,h.Gw)(e,a);x.sendMessage(f),await (0,h.RP)(d),af(),Y(null)}catch(a){console.error("Failed to send to AI:",a)}},[X,x,b,d,af]),aw=(0,e.useCallback)((a,b,c)=>{let d=ag[a];if(!d)return b;let e=[];if(E&&ak.length>0)for(let b of ak.filter(b=>b.lineIndex===a)){let c=ak[K]?.lineIndex===a&&ak[K]?.startCol===b.startCol;e.push({start:b.startCol,end:b.endCol,cls:c?"hl-cur":"hl-m"})}if(c&&!E&&c.length>=1){let a=c.toLowerCase(),b=d.toLowerCase(),f=0;for(;-1!==(f=b.indexOf(a,f));)e.push({start:f,end:f+c.length,cls:"hl-kw"}),f+=1}if(0===e.length)return b;e.sort((a,b)=>a.start-b.start||a.end-b.end);let f=[],g=0;for(let a of e){if(a.start<g)continue;a.start>g&&f.push((0,k.ZD)(d.substring(g,a.start)));let b=(0,k.ZD)(d.substring(a.start,a.end));f.push(`<span class="${a.cls}">${b}</span>`),g=a.end}g<d.length&&f.push((0,k.ZD)(d.substring(g)));let h=(0,k.ZD)(d);if(b!==h){let a=b;for(let b of e){let c=d.substring(b.start,b.end),e=(0,k.ZD)(c),f=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),g=RegExp(`(?<=>)([^<]*?)(${f})`,""),h=`$1<span class="${b.cls}">${e}</span>`,i=a.replace(g,h);i.length>a.length+200||(a=i)}return a}return f.join("")},[E,ak,K,ag]);return{parentRef:u,containerRef:v,searchInputRef:w,floatingToolbarRef:R,suppressHoverRef:T,savedSelectionRef:U,highlightedLines:ah,isMounted:s,cmdHeld:y,flashLine:A,isSearchVisible:C,searchQuery:E,caseSensitive:G,wholeWord:I,currentMatchIndex:K,viewingComment:P,bumpToolbarRef:S,addCommentInput:V,sendToAIInput:X,chatContext:x,commentsEnabled:aa,comments:ab,updateComment:ad,deleteComment:ae,lines:ag,matches:ak,rowData:al,virtualizer:am,commentsByEndLine:ai,linesWithComments:aj,setIsSearchVisible:D,setSearchQuery:F,suppressMatchScrollRef:O,setCaseSensitive:H,setWholeWord:J,setViewingComment:Q,setAddCommentInput:W,setSendToAIInput:Y,goToNextMatch:an,goToPrevMatch:ao,handleSearchKeyDown:ap,handleCommentBubbleClick:aq,handleToolbarAddComment:ar,handleToolbarSendToAI:as,handleToolbarSearch:at,handleCommentSubmit:au,handleSendToAISubmit:av,getHighlightedLineHtml:aw,inlineBlameLineRef:Z,inlineBlameVersion:$}}[j,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},21108:(a,b,c)=>{c.d(b,{n:()=>g});var d=c(67484);let e="SCHEDULED_TASKS_CHANGED";function f(){try{window.parent.postMessage({type:e},"*")}catch{}document.querySelectorAll("iframe").forEach(a=>{try{a.contentWindow?.postMessage({type:e},"*")}catch{}})}function g(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(0),g=(0,d.useCallback)(()=>{fetch("/api/scheduled-tasks").then(a=>a.json()).then(a=>{b(a.tasks||[]),e(a.unreadCount||0)}).catch(()=>{})},[]),h=(0,d.useCallback)(async a=>{try{let b=await fetch("/api/scheduled-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(c.task)return g(),f(),c.task;return null}catch{return null}},[g]),i=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"pause"})}).catch(()=>{}),g(),f()},[g]),j=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"resume"})}).catch(()=>{}),g(),f()},[g]),k=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a})}).catch(()=>{}),g(),f()},[g]),l=(0,d.useCallback)(async(a,b)=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"update",fields:b})}).catch(()=>{}),g(),f()},[g]),m=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"trigger"})}).catch(()=>{}),g(),f()},[g]),n=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"markRead"})}).catch(()=>{}),g(),f()},[g]),o=(0,d.useCallback)(async()=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"markAllRead"})}).catch(()=>{}),g(),f()},[g]),p=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"reorder",fields:{orderedIds:a}})}).catch(()=>{}),g(),f()},[g]);return{tasks:a,unreadCount:c,reload:g,createTask:h,pauseTask:i,resumeTask:j,triggerTask:m,deleteTask:k,updateTask:l,markRead:n,markAllRead:o,reorderTasks:p}}},23434:(a,b,c)=>{c.d(b,{$3:()=>h,Cm:()=>g,Gw:()=>k,RP:()=>i,Un:()=>j,zL:()=>f});var d=c(41564);let e=new Set;function f(a){return e.add(a),()=>e.delete(a)}function g(){e.forEach(a=>a())}async function h(a){let b=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch comments");let c=(await b.json()).comments||[];if(0===c.length)return[];let d=new Map;for(let a of c)a.selectedText||(d.has(a.filePath)||d.set(a.filePath,[]),d.get(a.filePath).push(a));let e=new Map;await Promise.all(Array.from(d.keys()).map(async b=>{try{let c=await fetch(`/api/files/text?cwd=${encodeURIComponent(a)}&path=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();"string"==typeof a.content&&e.set(b,a.content.split("\n"))}}catch(a){console.error(`Failed to read file ${b}:`,a)}}));let f=[];for(let a of c){if(a.selectedText){f.push({...a,codeContent:a.selectedText});continue}let b=e.get(a.filePath),c="";if(b){let d=Math.max(0,a.startLine-1),e=Math.min(b.length,a.endLine);c=b.slice(d,e).join("\n")}f.push({...a,codeContent:c})}return f}async function i(a){try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&all=true`,{method:"DELETE"})).ok)return g(),!0;return!1}catch(a){return console.error("Failed to clear comments:",a),!1}}let j="__chat__";function k(a,b){let c=a.filter(a=>a.filePath===j),e=a.filter(a=>a.filePath!==j),f=[];for(let a of(e.length>0&&(f.push(`${d.A.t("comments.codeRef")}`,""),e.forEach((a,b)=>{f.push(`[${b+1}] ${a.filePath}:${a.startLine}-${a.endLine}`),f.push("```"),f.push(a.codeContent),f.push("```"),a.note&&f.push(d.A.t("comments.note",{content:a.note})),f.push("")})),c)){let b=a.codeContent.split("\n").map(a=>`> ${a}`).join("\n");f.push(b),a.note&&f.push(a.note),f.push("")}return f.push(d.A.t("comments.question",{question:b})),f.join("\n")}},26068:(a,b,c)=>{c.d(b,{Ee:()=>m,SU:()=>j,ft:()=>l,iN:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(74429),h=c(81749);let i=(0,e.createContext)(null);function j({container:a,children:b}){return(0,d.jsx)(i.Provider,{value:a,children:b})}function k(){return(0,e.useContext)(i)}function l({x:a,y:b,path:c,cwd:j,isDirectory:k,onClose:m,onCreateFile:n,onDelete:o,onRefresh:p,onCopyFile:q,onPaste:r}){let{t:s}=(0,f.Bd)(),t=(0,e.useRef)(null),u=(0,e.useContext)(i),v=c.split("/").pop()||c,w=`${j}/${c}`,x=c.includes("/")?c.substring(0,c.lastIndexOf("/")):"",y=x?`${j}/${x}`:j,z=k?c:x,A=k?w:y,[B,C]=(0,e.useState)({x:0,y:0}),D=(0,e.useCallback)(async(a,b)=>{try{await navigator.clipboard.writeText(a),(0,h.oR)(s("toast.copiedName",{name:b}),"success")}catch{(0,h.oR)(s("toast.copyFailed"),"error")}m()},[m,s]),E=k?c:x,F=[{label:s("fileContextMenu.copyRelativePath"),value:c},{label:s("fileContextMenu.copyAbsolutePath"),value:w},{label:s("fileContextMenu.copyRelativeDirPath"),value:z||"."},{label:s("fileContextMenu.copyAbsoluteDirPath"),value:A},{label:k?s("fileContextMenu.copyFolderName"):s("fileContextMenu.copyFileName"),value:v}],G=(0,d.jsxs)("div",{ref:t,className:"absolute z-[200] bg-card border border-border rounded-lg shadow-lg py-1 w-fit whitespace-nowrap",style:{left:B.x,top:B.y},children:[n&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),n(E)},children:s("fileContextMenu.createFile")}),q&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),q(c)},children:k?s("fileContextMenu.copyFolder"):s("fileContextMenu.copyFile")}),r&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),r(E)},children:s("fileContextMenu.pasteHere")}),o&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-destructive hover:bg-accent transition-colors",onClick:()=>{m(),o(c,k,v)},children:k?s("fileContextMenu.deleteFolder"):s("fileContextMenu.deleteFile")}),(n||o||q||r)&&(0,d.jsx)("div",{className:"my-1 border-t border-border"}),F.map((a,b)=>(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>D(a.value,a.label),children:a.label},b))]});return u?(0,g.createPortal)(G,u):G}function m(){let[a,b]=(0,e.useState)(null);return{contextMenu:a,showContextMenu:(0,e.useCallback)((a,c,d)=>{a.preventDefault(),a.stopPropagation(),b({x:a.clientX,y:a.clientY,path:c,isDirectory:d})},[]),hideContextMenu:(0,e.useCallback)(()=>{b(null)},[])}}},30976:(a,b,c)=>{function d(){return!("u"<typeof navigator)&&(/Mac|iPhone|iPad/.test(navigator.platform||"")||navigator.userAgentData?.platform==="macOS")}function e(){return d()?"⌘":"Ctrl+"}c.d(b,{L:()=>d,Mu:()=>e}),process.platform,process.platform,process.platform},31037:(a,b,c)=>{c.d(b,{E:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(30976);let i={once:[{labelKey:"scheduledTasks.5minLater",value:5},{labelKey:"scheduledTasks.15minLater",value:15},{labelKey:"scheduledTasks.30minLater",value:30},{labelKey:"scheduledTasks.1hourLater",value:60}],interval:[{labelKey:"scheduledTasks.every15min",value:15},{labelKey:"scheduledTasks.every30min",value:30},{labelKey:"scheduledTasks.every1hour",value:60},{labelKey:"scheduledTasks.every2hours",value:120}],cron:[{labelKey:"scheduledTasks.daily9am",value:"0 9 * * *"},{labelKey:"scheduledTasks.daily6pm",value:"0 18 * * *"},{labelKey:"scheduledTasks.weeklyMon9am",value:"0 9 * * 1"},{labelKey:"scheduledTasks.monthly1st9am",value:"0 9 1 * *"}]};function j({onClose:a,onCreate:b,editTask:c,onUpdate:k}){let{t:l}=(0,f.Bd)(),m=!!c,[n,o]=(0,e.useState)(c?.type||"once"),[p,q]=(0,e.useState)(c?.message||""),[r,s]=(0,e.useState)(c?String(c.delayMinutes||c.intervalMinutes||""):""),[t,u]=(0,e.useState)(c?.cron||""),[v,w]=(0,e.useState)(c?.activeFrom||"09:00"),[x,y]=(0,e.useState)(c?.activeTo||"18:00"),[z,A]=(0,e.useState)(!!(c?.activeFrom&&c?.activeTo)),[B,C]=(0,e.useState)(null),D=(0,e.useRef)(null),E=(0,e.useRef)(null),F=(0,e.useCallback)(()=>{if(!p.trim())return;let d=null;if("once"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"once",delayMinutes:a}}else if("interval"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"interval",intervalMinutes:a,...z?{activeFrom:v,activeTo:x}:{}}}else if("cron"===n){let a=B||t.trim();if(!a)return;d={message:p.trim(),type:"cron",cron:a}}d&&(m&&c&&k?k(c.id,d):b(d),a())},[p,n,B,r,t,z,v,x,b,a,m,c,k]);return(0,d.jsxs)("div",{ref:D,className:`w-80 bg-popover border border-border rounded-lg shadow-lg z-50 ${m?"":"absolute bottom-full left-0 mb-2"}`,onKeyDown:b=>{"Escape"===b.key?a():"Enter"===b.key&&(b.metaKey||b.ctrlKey)&&F()},children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border bg-muted/50 rounded-t-lg",children:(0,d.jsx)("span",{className:"text-sm font-medium",children:m?l("scheduledTasks.editTask"):l("scheduledTasks.createTask")})}),(0,d.jsxs)("div",{className:"p-3 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.sendMessage")}),(0,d.jsx)("textarea",{ref:E,value:p,onChange:a=>q(a.target.value),placeholder:l("scheduledTasks.messagePlaceholder"),rows:2,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.type")}),(0,d.jsx)("div",{className:"flex gap-1",children:["once","interval","cron"].map(a=>(0,d.jsx)("button",{onClick:()=>{o(a),C(null),s(""),u("")},className:`flex-1 px-2 py-1 text-xs rounded transition-colors ${n===a?"bg-brand text-white":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"once"===a?l("scheduledTasks.once"):"interval"===a?l("scheduledTasks.interval"):"Cron"},a))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.quickSelect")}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1",children:i[n].map(a=>(0,d.jsx)("button",{onClick:()=>{C(a.value),"cron"===n?u(String(a.value)):s(String(a.value))},className:`px-2 py-1 text-xs rounded border transition-colors ${B===a.value?"border-brand bg-brand/10 text-brand":"border-border text-muted-foreground hover:text-foreground hover:border-foreground/30"}`,children:l(a.labelKey)},a.labelKey))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:"cron"===n?l("scheduledTasks.customCron"):l("scheduledTasks.customMinutes")}),"cron"===n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("input",{type:"text",value:t,onChange:a=>{u(a.target.value),C(null)},placeholder:l("scheduledTasks.cronPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring font-mono"}),t.trim()&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:function(a){let b=g.A.t,c=a.trim().split(/\s+/);if(5!==c.length)return null;let[d,e,f,h,i]=c,j={0:b("cron.dowSun"),1:b("cron.dowMon"),2:b("cron.dowTue"),3:b("cron.dowWed"),4:b("cron.dowThu"),5:b("cron.dowFri"),6:b("cron.dowSat")},k={1:`1${b("cron.monthPrefix")}`,2:`2${b("cron.monthPrefix")}`,3:`3${b("cron.monthPrefix")}`,4:`4${b("cron.monthPrefix")}`,5:`5${b("cron.monthPrefix")}`,6:`6${b("cron.monthPrefix")}`,7:`7${b("cron.monthPrefix")}`,8:`8${b("cron.monthPrefix")}`,9:`9${b("cron.monthPrefix")}`,10:`10${b("cron.monthPrefix")}`,11:`11${b("cron.monthPrefix")}`,12:`12${b("cron.monthPrefix")}`};try{let a="";if(d.includes("/")||e.includes("/")){if("*"===e&&d.includes("/"))return b("cron.everyNMinutes",{n:d.split("/")[1]});if("0"===d&&e.includes("/"))return b("cron.everyNHours",{n:e.split("/")[1]});return null}let c=parseInt(e,10),g=parseInt(d,10);if(isNaN(c)&&"*"!==e||isNaN(g)&&"*"!==d)return null;a="*"===e&&"*"===d?b("cron.everyMinute"):"*"===e?b("cron.everyHourAtMin",{m:g}):"*"===d?b("cron.hourlyEveryMin",{h:c}):`${String(c).padStart(2,"0")}:${String(g).padStart(2,"0")}`;let l=[];if("*"!==h){let a=h.split(",").map(a=>k[a]||`${a}${b("cron.monthPrefix")}`);l.push(a.join(", "))}if("*"!==f)if(f.includes("-")){let[a,c]=f.split("-");l.push(b("cron.dayRange",{a,b:c}))}else f.includes(",")?l.push(f.split(",").map(a=>`${a}${b("cron.dayOfMonth")}`).join(", ")):l.push(`${f}${b("cron.dayOfMonth")}`);if("*"!==i)if("1-5"===i)l.push(b("cron.weekdays"));else if("0,6"===i||"6,0"===i)l.push(b("cron.weekends"));else{let a=i.split(",").map(a=>{if(a.includes("-")){let[c,d]=a.split("-");return b("cron.weekdayRange",{a:j[c]||c,b:j[d]||d})}return`${b("cron.weekdayPrefix")}${j[a]||a}`});l.push(a.join(", "))}if(0===l.length&&"*"===f&&"*"===h&&"*"===i)return b("cron.daily",{time:a});return`${l.join(" ")} ${a}`}catch{return null}}(t.trim())||(0,d.jsx)("span",{className:"text-destructive",children:l("scheduledTasks.cronFormat")})})]}):(0,d.jsx)("input",{type:"number",value:r,onChange:a=>{s(a.target.value),C(null)},placeholder:l("scheduledTasks.minutesPlaceholder"),min:1,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]}),"interval"===n&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground mb-1 cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:z,onChange:a=>A(a.target.checked),className:"rounded border-border"}),l("scheduledTasks.limitTimeRange")]}),z&&(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("input",{type:"time",value:v,onChange:a=>w(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("scheduledTasks.to")}),(0,d.jsx)("input",{type:"time",value:x,onChange:a=>y(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]})]}),(0,d.jsx)("button",{onClick:F,disabled:!(p.trim()&&("once"===n||"interval"===n?!!(B||r&&parseInt(r,10)>0):"cron"===n&&!!(B||t.trim()))),className:"w-full py-1.5 text-sm font-medium rounded bg-brand text-white hover:bg-brand/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:m?l("scheduledTasks.saveBtn",{modKey:(0,h.Mu)()}):l("scheduledTasks.createBtn",{modKey:(0,h.Mu)()})})]})]})}},31172:(a,b,c)=>{c.d(b,{F2:()=>m,ZL:()=>k,a9:()=>l});var d=c(48249),e=c(67484),f=c(74429);let g=()=>()=>{},h=()=>document.body,i=()=>null,j=(0,e.createContext)(null);function k({children:a}){let b=(0,e.useContext)(j),c=(0,e.useSyncExternalStore)(g,h,i),d=b??c;return d?(0,f.createPortal)(a,d):null}function l({children:a}){let[b,c]=(0,e.useState)(null);return(0,d.jsxs)("div",{className:"relative w-full h-full",style:{transform:"translateZ(0)"},children:[(0,d.jsx)(j.Provider,{value:b,children:a}),(0,d.jsx)("div",{ref:c,className:"absolute inset-0 pointer-events-none [&>*]:pointer-events-auto"})]})}function m(){return(0,e.useContext)(j)}},45214:(a,b,c)=>{c.d(b,{G:()=>h,t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,range:c,codeContent:h,container:i,onSubmit:j,onClose:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=h?.split("\n").slice(0,5).join("\n"),v=!!h&&h.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsx)("div",{className:"px-3 py-2 bg-amber-9/10 border-b border-border",children:(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-amber-11",children:l("comments.addComment")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.start,end:c.end})})]})}),h&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:m,onChange:a=>n(a.target.value),placeholder:l("comments.inputPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:o,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!o&&m.trim()&&(p(!0),j(m.trim()))),"Escape"!==a.key||o||k()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:l(o?"comments.submitting":"comments.enterSubmit")})]})]})}function h({x:a,y:b,range:c,filePath:g,codeContent:i,container:j,onSubmit:k,onClose:l,isChatLoading:m}){let{t:n}=(0,f.Bd)(),[o,p]=(0,e.useState)(""),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=i?.split("\n").slice(0,5).join("\n"),v=!!i&&i.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsxs)("div",{className:"px-3 py-2 bg-brand/10 border-b border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-brand",children:n("comments.askAI")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:n("comments.lineRange",{start:c.start,end:c.end})})]}),g&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground truncate",children:g})]}),i&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:o,onChange:a=>p(a.target.value),placeholder:n("comments.inputQuestion"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:m,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!m&&o.trim()&&(k(o.trim()),l())),"Escape"===a.key&&l()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:n(m?"comments.aiGenerating":"comments.enterSend")})]})]})}},47033:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(67484);function e({cwd:a,filePath:b}){let[c,f]=(0,d.useState)([]),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(null),k=(0,d.useCallback)(async()=>{if(a&&b){h(!0),j(null);try{let c=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&filePath=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();f(a.comments||[])}else j("Failed to load comments")}catch(a){j(a instanceof Error?a.message:"Unknown error")}finally{h(!1)}}},[a,b]),l=(0,d.useCallback)(async(c,d,e,g)=>{try{let h=await fetch("/api/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,filePath:b,startLine:c,endLine:d,content:e,...g?{selectedText:g}:{}})});if(h.ok){let a=await h.json();return f(b=>[...b,a.comment]),a.comment}}catch(a){console.error("Failed to add comment:",a)}return null},[a,b]),m=(0,d.useCallback)(async(b,c)=>{try{let d=await fetch("/api/comments",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,id:b,content:c})});if(d.ok){let a=await d.json();return f(c=>c.map(c=>c.id===b?a.comment:c)),!0}}catch(a){console.error("Failed to update comment:",a)}return!1},[a]),n=(0,d.useCallback)(async b=>{try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&id=${encodeURIComponent(b)}`,{method:"DELETE"})).ok)return f(a=>a.filter(a=>a.id!==b)),!0}catch(a){console.error("Failed to delete comment:",a)}return!1},[a]),o=(0,d.useCallback)(a=>c.filter(b=>a>=b.startLine&&a<=b.endLine),[c]);return{comments:c,isLoading:g,error:i,addComment:l,updateComment:m,deleteComment:n,refresh:k,getCommentsForLine:o}}c(23434)},49280:(a,b,c)=>{c.d(b,{T:()=>v});var d=c(48249),e=c(98051),f=c(38368),g=c(33972),h=c(10841),i=c(99773),j=c(36513);c(55583),c(87023);var k=c(50757),l=c(27454),m=c(37752),n=c(67484),o=c(3532);let p=[f.A,g.A,h.jb],q=[f.A,h.jb],r=[i.A,j.A],s=[i.A];function t(a){return a.replace(/^(\|.+\|)$/gm,a=>/^\|[\s:|-]+\|$/.test(a)?a:a.replace(/`([^`]*)`/g,(a,b)=>b.includes("|")?"`"+b.replace(/\|/g,"\\|")+"`":a))}function u(a){return a.replace(/\$(\d)/g,"\\$$1")}let v=(0,n.memo)(function({content:a,isUser:b=!1,isStreaming:c=!1,enableMath:f=!0,rehypePlugins:g}){let{resolvedTheme:h}=(0,o.D)(),i="dark"===h,j=(0,n.useMemo)(()=>({code({className:a,children:b,node:c,...e}){let f=/language-(\w+)/.exec(a||""),g=String(b);if(!f&&!a&&!g.includes("\n"))return(0,d.jsx)("code",{className:"px-1.5 py-0.5 mx-0.5 rounded bg-accent text-sm font-mono",...e,children:b});let h=String(b).replace(/\n$/,""),j=f?.[1]||"text",n=Number(e["data-source-start"])||0,o=n?n+1:0,p=0;return(0,d.jsx)(k.A,{style:i?l.A:m.A,language:j,PreTag:"div",customStyle:{margin:"0.75rem 0",borderRadius:"0.375rem",fontSize:"0.875rem"},wrapLines:!0,lineProps:()=>{let a=o+p;return p++,{"data-source-start":a,"data-source-end":a,style:{display:"block"}}},children:h})},p:({children:a,node:b,...c})=>(0,d.jsx)("p",{className:"mb-3 last:mb-0",...c,children:a}),h1:({children:a,node:b,...c})=>(0,d.jsx)("h1",{className:"text-xl font-bold mb-3 mt-4 first:mt-0",...c,children:a}),h2:({children:a,node:b,...c})=>(0,d.jsx)("h2",{className:"text-lg font-bold mb-2 mt-3 first:mt-0",...c,children:a}),h3:({children:a,node:b,...c})=>(0,d.jsx)("h3",{className:"text-base font-bold mb-2 mt-3 first:mt-0",...c,children:a}),ul:({children:a,node:b,...c})=>(0,d.jsx)("ul",{className:"list-disc list-inside mb-3 space-y-1",...c,children:a}),ol:({children:a,node:b,...c})=>(0,d.jsx)("ol",{className:"list-decimal list-inside mb-3 space-y-1",...c,children:a}),li:({children:a,node:b,...c})=>(0,d.jsx)("li",{className:"leading-relaxed",...c,children:a}),blockquote:({children:a,node:b,...c})=>(0,d.jsx)("blockquote",{className:"border-l-4 border-border pl-4 my-3 italic text-muted-foreground",...c,children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",...e,children:b}),table:({children:a,node:b,...c})=>(0,d.jsx)("div",{className:"overflow-x-auto my-3",...c,children:(0,d.jsx)("table",{className:"min-w-full border border-border",children:a})}),thead:({children:a,node:b,...c})=>(0,d.jsx)("thead",{className:"bg-accent",...c,children:a}),th:({children:a,node:b,...c})=>(0,d.jsx)("th",{className:"px-4 py-2 text-left font-semibold border-b border-border",...c,children:a}),td:({children:a,node:b,...c})=>(0,d.jsx)("td",{className:"px-4 py-2 border-b border-border",...c,children:a}),hr:({node:a,...b})=>(0,d.jsx)("hr",{className:"my-4 border-border",...b}),img:({src:a,alt:b,node:c,height:e,width:f,style:g,...h})=>{if(!(e||f||g))return(0,d.jsx)("img",{src:a,alt:b||"",className:"max-w-full h-auto rounded-lg my-3",...h});let i=a=>a?/^\d+$/.test(String(a))?`${a}px`:String(a):void 0,j={...g,height:i(e)??g?.height,width:i(f)??g?.width};return(0,d.jsx)("img",{src:a,alt:b||"",style:j,className:"inline-block align-middle",...h})},strong:({children:a,node:b,...c})=>(0,d.jsx)("strong",{className:"font-bold",...c,children:a}),em:({children:a,node:b,...c})=>(0,d.jsx)("em",{className:"italic",...c,children:a}),del:({children:a,node:b,...c})=>(0,d.jsx)("del",{className:"line-through",...c,children:a})}),[i]),v=f?p:q,w=f?r:s,x=(0,n.useMemo)(()=>{if(b||c)return a;let d=t(!function(a){if(/^\|[\s:|-]+\|$/m.test(a))return!1;if(/[┌┐└┘│─├┤┬┴┼╔╗╚╝║═╭╮╯╰▲▼◀▶△▽◁▷]/.test(a)||/\+[-=]{2,}\+/.test(a))return!0;let b=a.split("\n").filter(a=>/^\s*\||\|\s*$/.test(a));if(b.length>=3){let a=b.map(a=>(a.match(/\|/g)||[]).length);return!a.every(b=>b===a[0])||!(a[0]>=3)}return!1}(a)||/^```[\s\S]*```$/m.test(a.trim())?a:"```text\n"+a.trim()+"\n```");return f?u(d):d},[a,b,c,f]),y=(0,n.useMemo)(()=>g?.length?[...w,...g]:w,[g,w]);if(b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});if(c){let b=a.lastIndexOf("\n");if(-1===b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});let c=a.slice(0,b+1),g=a.slice(b+1);return(0,d.jsxs)("div",{className:"markdown-body",children:[(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:w,components:j,children:f?u(t(c)):t(c)}),g&&(0,d.jsx)("span",{className:"whitespace-pre-wrap",children:g})]})}return(0,d.jsx)("div",{className:"markdown-body",children:(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:y,components:j,children:x})})})},60306:(a,b,c)=>{c.d(b,{b:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(3532),h=c(81749),i=c(30976),j=c(74955);function k({isOpen:a,onClose:b}){let{t:c,i18n:l}=(0,f.Bd)(),{theme:m,setTheme:n}=(0,g.D)(),o=(0,j.G)(),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)("auto"),v=(0,e.useCallback)(a=>{u(a),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:a})}).catch(()=>{});let b="auto"===a?navigator.language.startsWith("zh")?"zh":"en":a;l.changeLanguage(b)},[l]),w=o?"installed":"not-installed",x=o?.version??null;if(!a)return null;let y=[{value:"system",label:c("settings.themeSystem"),icon:"\uD83D\uDCBB"},{value:"light",label:c("settings.themeLight"),icon:"☀️"},{value:"dark",label:c("settings.themeDark"),icon:"\uD83C\uDF19"}];return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:b}),(0,d.jsxs)("div",{className:"relative bg-card rounded-lg shadow-xl w-full max-w-md mx-4 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:c("settings.title")}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsxs)("div",{className:"p-4 space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.theme")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:y.map(a=>(0,d.jsxs)("button",{onClick:()=>n(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${m===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.language")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{value:"auto",label:c("settings.languageAuto"),icon:"\uD83C\uDF10"},{value:"en",label:"English",icon:"\uD83C\uDDFA\uD83C\uDDF8"},{value:"zh",label:"中文",icon:"\uD83C\uDDE8\uD83C\uDDF3"}].map(a=>(0,d.jsxs)("button",{onClick:()=>v(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${t===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.browserExtension")}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:`inline-block w-2 h-2 rounded-full flex-shrink-0 ${"installed"===w?"bg-green-500":"bg-slate-400"}`}),(0,d.jsxs)("span",{children:["installed"===w&&`${c("settings.extensionInstalled")}${x?` (v${x})`:""}`,"not-installed"===w&&c("settings.extensionNotInstalled")]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:c("settings.extensionDescription")}),"installed"!==w&&(0,d.jsxs)("div",{className:"text-xs text-muted-foreground bg-muted/50 rounded-md p-2 space-y-1",children:[(0,d.jsx)("p",{className:"font-medium text-foreground",children:c("settings.installSteps")}),(0,d.jsxs)("p",{children:[c("settings.step1")," ",(0,d.jsx)("code",{className:"px-1 py-0.5 bg-muted rounded text-foreground",children:"chrome://extensions"})]}),(0,d.jsx)("p",{children:c("settings.step2")}),(0,d.jsx)("p",{children:c("settings.step3")}),(0,i.L)()&&(0,d.jsx)("p",{dangerouslySetInnerHTML:{__html:c("settings.step4mac")}})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>{let a=p||"chrome-extension";navigator.clipboard.writeText(a),(0,h.oR)(c("toast.copiedName",{name:a}))},className:"px-3 py-1.5 text-xs bg-brand text-white rounded-md hover:bg-brand/90 transition-colors",children:c("settings.copyExtensionPath")}),"installed"===w&&(0,d.jsx)("button",{onClick:()=>{o?.id&&window.chrome?.runtime?.sendMessage&&(window.chrome.runtime.sendMessage(o.id,{type:"reload"}),(0,h.oR)(c("toast.pluginReloading")))},className:"px-3 py-1.5 text-xs border border-border text-foreground rounded-md hover:bg-muted transition-colors",children:c("settings.reloadExtension")})]}),p&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono truncate",children:p})]})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.about")}),(0,d.jsxs)("div",{className:"text-xs text-muted-foreground space-y-1",children:[(0,d.jsxs)("p",{children:["Cockpit",r?` v${r}`:""]}),(0,d.jsx)("p",{className:"text-muted-foreground/60",children:"One seat. One AI. Everything under control."})]})]})]})]})]})}},61858:(a,b,c)=>{function d(){}function e(a){return()=>{}}c.d(b,{U:()=>e,k:()=>d})},64874:(a,b,c)=>{c.d(b,{r:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({isOpen:a,onClose:b,onSelectSession:c,onAddProject:h}){let{t:i}=(0,f.Bd)(),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)({}),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(""),v=(0,e.useRef)(null);(0,e.useCallback)(async()=>{q(!0),s(null),o({});try{let a=await fetch("/api/sessions/projects");if(!a.ok)throw Error("Failed to load projects");let b=await a.json();m(b)}catch(a){s(a instanceof Error?a.message:"Unknown error")}finally{q(!1)}},[]);let w=(0,e.useCallback)(async a=>{o(b=>({...b,[a]:{...b[a],isExpanded:!0,isLoading:!0,sessions:[],error:null}}));try{let b=await fetch(`/api/sessions/projects/${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to load sessions");let c=await b.json();o(b=>({...b,[a]:{...b[a],isLoading:!1,sessions:c}}))}catch(b){o(c=>({...c,[a]:{...c[a],isLoading:!1,error:b instanceof Error?b.message:"Unknown error"}}))}},[]),x=(0,e.useCallback)(a=>{let b=n[a];b?.isExpanded?o(b=>({...b,[a]:{...b[a],isExpanded:!1}})):b?.sessions?.length?o(b=>({...b,[a]:{...b[a],isExpanded:!0}})):w(a)},[n,w]),y=(0,e.useCallback)(async()=>{if(!j){k(!0);try{let a=await fetch("/api/pick-folder"),c=await a.json();c.folder&&h&&(h(c.folder),b())}catch{}finally{k(!1)}}},[j,h,b]);return a?(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:b}),(0,d.jsxs)("div",{className:"relative w-full max-w-6xl h-[90vh] mx-4 bg-card rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:i("sessions.projectList")}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{ref:v,type:"text",placeholder:i("workspace.searchProjectPath"),value:t,onChange:a=>u(a.target.value),className:"px-2 py-1 text-xs border border-border rounded bg-card text-foreground placeholder-slate-9 focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"}),h&&(0,d.jsxs)("button",{onClick:y,disabled:j,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors disabled:opacity-50",title:i("sessions.openFolder"),children:[(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 10v6m3-3H9m-4 7h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),j?i("sessions.selectingFolder"):i("sessions.openFolder")]}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-slate-9 hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[p&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-4 w-4",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("workspace.loadingProjects")})]})}),r&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-red-11",children:r})}),!p&&!r&&0===l.length&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:i("workspace.projectNotFound")})}),!p&&!r&&l.filter(a=>a.fullPath.toLowerCase().includes(t.toLowerCase())).map(a=>{let b=n[a.encodedPath]||{isExpanded:!1,isLoading:!1,sessions:[],error:null};return(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsxs)("button",{onClick:()=>x(a.encodedPath),className:"w-full flex items-center gap-2 p-2 rounded hover:bg-accent transition-colors text-left",children:[(0,d.jsx)("svg",{className:`w-3 h-3 text-muted-foreground transition-transform ${b.isExpanded?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,d.jsx)("svg",{className:"w-4 h-4 text-muted-foreground",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),(0,d.jsx)("span",{className:"flex-1 text-xs font-medium text-foreground truncate",title:a.fullPath,children:a.fullPath}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.sessionCount,")"]})]}),b.isExpanded&&(0,d.jsxs)("div",{className:"ml-6 mt-2",children:[b.isLoading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 p-3 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-3 w-3",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("sessions.loadingSessions")})]}),b.error&&(0,d.jsx)("div",{className:"p-3 text-xs text-red-11",children:b.error}),!b.isLoading&&!b.error&&(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:b.sessions.map(b=>(0,d.jsxs)("div",{onClick:()=>{var d;let e;return d=a.fullPath,e=(b.path.split("/").pop()||"").replace(".jsonl",""),void(c?c(d,e):window.parent.postMessage({type:"OPEN_PROJECT",cwd:d,sessionId:e},"*"))},className:"p-3 bg-secondary rounded border border-border hover:border-brand hover:shadow-md cursor-pointer transition-all",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[b.engine&&"claude"!==b.engine&&(0,d.jsx)("span",{className:`shrink-0 px-1 py-0.5 text-[10px] leading-none font-medium rounded ${"claude2"===b.engine?"bg-orange-500/15 text-orange-11":"ollama"===b.engine?"bg-blue-500/15 text-blue-11":"codex"===b.engine?"bg-green-500/15 text-green-11":"kimi"===b.engine?"bg-purple-500/15 text-purple-11":"bg-muted text-muted-foreground"}`,children:b.engine}),(0,d.jsx)("h4",{className:"text-xs font-medium text-foreground truncate",title:b.title,children:b.title})]}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:new Date(b.modifiedAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,d.jsxs)("div",{className:"space-y-0.5 text-xs",children:[b.firstMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`first-${b}`)),b.lastMessages.length>0&&(0,d.jsx)("div",{className:"text-slate-9 text-center py-0.5",children:"\xb7\xb7\xb7"}),b.lastMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`last-${b}`))]})]},b.path))})]})]},a.encodedPath)})]})]})]}):null}},68502:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,comment:c,container:h,onClose:i,onUpdateComment:j,onDeleteComment:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(c.content),q=(0,e.useRef)(null),[r,s]=(0,e.useState)({x:0,y:0}),t=async()=>{o.trim()&&(await j(c.id,o.trim()),n(!1))},u=async()=>{await k(c.id),i()};return(0,d.jsx)("div",{ref:q,className:"absolute z-[200] w-96 bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:r.x,top:r.y},children:(0,d.jsx)("div",{className:"p-3",children:m?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring",rows:3,autoFocus:!0,onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),t()),"Escape"===a.key&&(n(!1),p(c.content))}}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{onClick:()=>{n(!1),p(c.content)},className:"px-2 py-1 text-xs text-muted-foreground hover:text-foreground",children:l("common.cancel")}),(0,d.jsx)("button",{onClick:t,className:"px-2 py-1 text-xs bg-brand text-white rounded hover:bg-brand/90",children:l("common.save")})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:c.content}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.startLine,end:c.endLine})}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>n(!0),className:"p-1 rounded hover:bg-accent text-muted-foreground",title:l("common.edit"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,d.jsx)("button",{onClick:u,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-red-9",title:l("common.delete"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})]})]})})})}},74955:(a,b,c)=>{c.d(b,{G:()=>l,f:()=>m});var d=c(67484);function e(){if("u"<typeof document)return null;let a=document.querySelector('meta[name="cockpit-bridge"]');if(!a)return null;let b=a.dataset.id,c=a.dataset.version;return b?{id:b,version:c||"unknown"}:null}let f=null,g=new Set;function h(){g.forEach(a=>a())}function i(a){g.add(a);let b=e();return b&&!f&&(f=b,Promise.resolve().then(h)),()=>{g.delete(a)}}function j(){return f}function k(){return null}if("u">typeof document&&(f=e()),"u">typeof MutationObserver&&"u">typeof document){let a=new MutationObserver(()=>{let a=e();a&&(!f||a.id!==f.id||a.version!==f.version)&&(f=a,h())}),b=document.head||document.documentElement;b&&a.observe(b,{childList:!0})}function l(){return(0,d.useSyncExternalStore)(i,j,k)}function m(){return f??e()}},75005:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(67484);function e({lines:a,enabled:b,onContentChange:c,onEnterInsert:f,onSave:g,getVisibleLineCount:h,scrollToLine:i,onSearchExecute:j,onSearchNext:k,onSearchPrev:l,onSearchClear:m}){let[n,o]=(0,d.useState)("normal"),[p,q]=(0,d.useState)(-1),[r,s]=(0,d.useState)(0),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(""),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),D=(0,d.useRef)([]),E=(0,d.useRef)([]),F=(0,d.useRef)([]),G=(0,d.useRef)(null),H=(0,d.useRef)(a),I=(0,d.useCallback)((a,b)=>Math.max(0,Math.min(b,Math.max(0,(H.current[a]??"").length-1))),[]);(0,d.useRef)(a.length);let J=(0,d.useCallback)(()=>{G.current&&(clearTimeout(G.current),G.current=null),w("")},[]),K=(0,d.useCallback)(()=>{G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{w(""),G.current=null},500)},[]),L=(0,d.useCallback)((a,b)=>{D.current.push(b),E.current=[],u(!0),c(a.join("\n"))},[c]),M=(0,d.useCallback)((a,b)=>{let c=Math.max(0,Math.min(a,H.current.length-1));q(c),s(I(c,b??0)),i(c,"auto")},[i,I]),N=(0,d.useCallback)(a=>{q(b=>{let c=Math.max(0,Math.min(b+a,H.current.length-1));return i(c,"auto"),s(a=>Math.max(0,Math.min(a,Math.max(0,(H.current[c]??"").length-1)))),c})},[i]),O=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);if(0===a.length)return;let c=a[b];F.current=[c];let d=[...a];d.splice(b,1),0===d.length&&d.push("");let e=Math.min(b,d.length-1);L(d,{lineIndex:b,oldLines:[c],newLines:[],cursorLine:b}),q(e),s(0)},[p,L]),P=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);a.length>0&&(F.current=[a[b]])},[p]),Q=(0,d.useCallback)(()=>{let a=F.current;if(0===a.length)return;let b=H.current,c=Math.min(p,b.length-1)+1,d=[...b];d.splice(c,0,...a),L(d,{lineIndex:c,oldLines:[],newLines:[...a],cursorLine:p}),q(c),s(0),i(c,"auto")},[p,L,i]),R=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1),c=a[b];if(!c||0===c.length)return;let d=c.substring(1),e=[...a];e[b]=d,L(e,{lineIndex:b,oldLines:[c],newLines:[d],cursorLine:p})},[p,L]),S=(0,d.useCallback)(()=>{let a=D.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?d.splice(b.lineIndex,0,...b.oldLines):0===b.oldLines.length&&b.newLines.length>0?(d.splice(b.lineIndex,b.newLines.length),0===d.length&&d.push("")):d.splice(b.lineIndex,b.newLines.length,...b.oldLines),E.current.push(b),c(d.join("\n")),q(Math.min(b.cursorLine,d.length-1)),i(Math.min(b.cursorLine,d.length-1),"auto"),0===a.length&&u(!1)},[c,i]),T=(0,d.useCallback)(()=>{let a=E.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?(d.splice(b.lineIndex,b.oldLines.length),0===d.length&&d.push("")):0===b.oldLines.length&&b.newLines.length>0?d.splice(b.lineIndex,0,...b.newLines):d.splice(b.lineIndex,b.oldLines.length,...b.newLines),D.current.push(b),u(!0),c(d.join("\n"));let e=b.lineIndex+Math.max(0,b.newLines.length-1);q(Math.min(e,d.length-1)),i(Math.min(e,d.length-1),"auto")},[c,i]),U=(0,d.useCallback)(a=>{let b=H.current,c=Math.min(p,b.length-1);if("o"===a||"O"===a){let d="o"===a?c+1:c,e=[...b];e.splice(d,0,""),L(e,{lineIndex:d,oldLines:[],newLines:[""],cursorLine:p}),c=d,q(d)}o("insert"),f(c,r,a)},[p,r,L,f]),V=(0,d.useCallback)(()=>{o("normal"),J()},[J]),W=(0,d.useCallback)(()=>{o("command"),y("")},[]),X=(0,d.useCallback)(()=>{o("normal"),y("")},[]),Y=(0,d.useCallback)(()=>{o("search"),A("")},[]),Z=(0,d.useCallback)(()=>{o("normal"),A("")},[]),$=(0,d.useCallback)(a=>{let b=a.trim();if("w"===b){g?.(),o("normal"),y("");return}if("q"===b){o("normal"),y("");return}if("wq"===b){g?.(),o("normal"),y("");return}if("noh"===b||"nohlsearch"===b){m?.(),o("normal"),y("");return}let c=parseInt(b,10);if(!isNaN(c)&&c>0){let a=Math.min(c-1,H.current.length-1);q(a),i(a,"center"),o("normal"),y("");return}o("normal"),y("")},[g,m,i]),_=(0,d.useCallback)(a=>{if(!a){o("normal"),A("");return}C(a),j?.(a),o("normal"),A("")},[j]),aa=(0,d.useCallback)(a=>{if(!b)return!1;let c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;if("insert"===n)return("Escape"===a.key||!!c)&&(V(),!0);if("command"===n)return!a.isComposing&&("Escape"===a.key||c?X():"Enter"===a.key?$(x):"Backspace"===a.key?0===x.length?X():y(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||y(b=>b+a.key),!0);if("search"===n)return!a.isComposing&&("Escape"===a.key||c?Z():"Enter"===a.key?_(z):"Backspace"===a.key?0===z.length?Z():A(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||A(b=>b+a.key),!0);if(p<0&&(q(0),s(0)),a.metaKey)return!1;if(a.ctrlKey)return"d"===a.key?(N(Math.max(1,Math.floor(h()/2))),J(),!0):"u"===a.key?(N(-Math.max(1,Math.floor(h()/2))),J(),!0):"r"===a.key&&(T(),J(),!0);let d=a.key,e=v+d;if("g"===e)return w("g"),K(),!0;if("gg"===e)return M(0),J(),!0;if("d"===e)return w("d"),K(),!0;if("dd"===e)return O(),J(),!0;if("y"===e)return w("y"),K(),!0;if("yy"===e)return P(),J(),!0;if(v&&e!==d&&J(),"j"===d||"ArrowDown"===d)return N(1),!0;if("k"===d||"ArrowUp"===d)return N(-1),!0;if("h"===d||"ArrowLeft"===d)return s(a=>Math.max(0,a-1)),!0;if("l"===d||"ArrowRight"===d){let a=Math.max(0,(H.current[p]??"").length-1);return s(b=>Math.min(a,b+1)),!0}if("0"===d)return s(0),!0;if("$"===d)return s(Math.max(0,(H.current[p]??"").length-1)),!0;if("^"===d){let a=(H.current[p]??"").search(/\S/);return s(a>=0?a:0),!0}return"G"===d?(M(H.current.length-1),!0):"x"===d?(R(),!0):"p"===d?(Q(),!0):"u"===d?(S(),!0):"i"===d||"a"===d||"I"===d||"A"===d||"o"===d||"O"===d?(U(d),!0):"/"===d?(Y(),!0):"n"===d?(k?.(),!0):"N"===d?(l?.(),!0):":"===d?(W(),!0):"Escape"!==d&&1===d.length},[b,n,v,x,z,p,V,U,W,X,Y,Z,$,_,N,M,h,O,P,Q,R,S,T,J,K,k,l]);return{state:{mode:n,cursorLine:p,cursorCol:r,isDirty:t,keyBuffer:v,commandInput:x,searchInput:z,lastSearch:B},handleKeyDown:aa,enterNormal:V,enterInsert:U,setCursorLine:q,setCursorCol:s,setCommandInput:y,setSearchInput:A,setIsDirty:u,clearUndoHistory:(0,d.useCallback)(()=>{D.current=[],E.current=[]},[])}}},77033:(a,b,c)=>{c.d(b,{k_:()=>g,nH:()=>h});var d=c(48249),e=c(67484);let f=(0,e.createContext)(null);function g({children:a}){let b=(0,e.useRef)(new Map),c=(0,e.useRef)(null),[h,i]=(0,e.useState)(!1),j=(0,e.useCallback)((a,c)=>{b.current.set(c,a)},[]),k=(0,e.useCallback)(a=>{b.current.delete(a)},[]),l=(0,e.useCallback)(a=>{c.current=a},[]),m=(0,e.useCallback)(a=>{let d=c.current;if(!d)return void console.warn("No active tab to send message");let e=b.current.get(d);e?e(a):console.warn(`No chat sender registered for tab ${d}`)},[]),n=(0,e.useMemo)(()=>({sendMessage:m,isLoading:h,registerChat:j,unregisterChat:k,setActiveTab:l,setIsLoading:i}),[m,h,j,k,l]);return(0,d.jsx)(f.Provider,{value:n,children:a})}function h(){return(0,e.useContext)(f)}},77937:(a,b,c)=>{c.d(b,{f:()=>h,w:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,visible:c,container:e,onAddComment:h,onSendToAI:i,onSearch:j,isChatLoading:k}){let{t:l}=(0,f.Bd)(),m=e.getBoundingClientRect(),n=a-m.left,o=Math.max(0,b-m.top-40);return(0,d.jsxs)("div",{className:"floating-toolbar absolute z-[200] flex items-center gap-1.5 bg-card border border-border rounded-lg shadow-xl p-1.5",style:{left:n+8,top:o,visibility:c?"visible":"hidden",pointerEvents:c?"auto":"none"},children:[(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:h,children:l("floatingToolbar.addComment")}),(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",onClick:i,disabled:k,title:l(k?"comments.aiResponding":"floatingToolbar.sendToAI"),children:l("floatingToolbar.sendToAI")}),j&&(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:j,children:l("floatingToolbar.search")})]})}let h=(0,e.memo)(function({floatingToolbarRef:a,bumpRef:b,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j}){let[k,l]=(0,e.useState)(0),m=(0,e.useMemo)(()=>a.current,[k]);return(0,d.jsx)(g,{x:m?.x??0,y:m?.y??0,visible:!!m,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j})})},79029:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cv:()=>z,XO:()=>x});var e=c(48249),f=c(67484),g=c(44384),h=c(74429),i=c(26068),j=c(45214),k=c(90173),l=c(5811),m=c(77937),n=c(68502),o=c(95133),p=c(16306),q=c(94882),r=c(81749),s=c(75005),t=a([k,l,p]);[k,l,p]=t.then?(await t)():t;let y="white-space:pre;padding:0 12px;min-height:20px;line-height:20px";function u(a){let b=window.getSelection();if(!b?.rangeCount)return null;let c=b.getRangeAt(0),d=c.startContainer;for(;d&&d.parentElement!==a;)d=d.parentElement;if(!d)return null;let e=Array.from(a.children).indexOf(d);if(e<0)return null;let f=document.createRange();f.selectNodeContents(d),f.setEnd(c.startContainer,c.startOffset);let g=f.toString().length;return{line:e,offset:g}}function v(a,b){let c,d=a.children[b.line];if(!d)return;let e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=b.offset;for(;c=e.nextNode();){let a=c.textContent?.length||0;if(f<=a){let a=window.getSelection(),b=document.createRange();b.setStart(c,f),b.collapse(!0),a?.removeAllRanges(),a?.addRange(b);return}f-=a}let g=window.getSelection(),h=document.createRange();h.selectNodeContents(d),h.collapse(!1),g?.removeAllRanges(),g?.addRange(h)}function w(a){return a.map(a=>`<div style="${y}">${a}</div>`).join("")}let z=(0,f.forwardRef)(function({content:a,filePath:b,showLineNumbers:c=!0,showSearch:d=!0,className:k="",cwd:t,enableComments:x=!1,scrollToLine:z=null,scrollToLineAlign:A="center",onScrollToLineComplete:B,highlightKeyword:C=null,visibleLineRef:D,onCmdClick:E,onTokenHover:F,onTokenHoverLeave:G,onTokenHoverCancel:H,blameLines:I,inlineBlameLines:J,onSelectCommit:K,editable:L=!1,initialMtime:M,onEditorClose:N,onSaved:O,onEditorStateChange:P,viMode:Q=!1,onContentMutate:R,onEnterInsertMode:S,onViSave:T,viStateRef:U,initialCursorLine:V,initialCursorCol:W,onInitialCursorSet:X,onContentSearch:Y},Z){let{t:$}=(0,g.Bd)(),_=(0,f.useRef)(a),aa=(0,f.useRef)(!1),[ab,ac]=(0,f.useState)(!1),[ad,ae]=(0,f.useState)(!1),[af,ag]=(0,f.useState)(()=>a.split("\n").length),ah=(0,f.useRef)(a.split("\n").length),[ai,aj]=(0,f.useState)({show:!1}),ak=(0,f.useRef)(null),al=(0,f.useRef)(null),am=(0,f.useRef)(M),an=(0,f.useRef)(null),ao=(0,f.useRef)(!1),ap=(0,f.useRef)(!1),{parentRef:aq,containerRef:ar,searchInputRef:as,floatingToolbarRef:at,suppressHoverRef:au,bumpToolbarRef:av,savedSelectionRef:aw,highlightedLines:ax,isMounted:ay,cmdHeld:az,flashLine:aA,isSearchVisible:aB,searchQuery:aC,caseSensitive:aD,wholeWord:aE,currentMatchIndex:aF,viewingComment:aG,addCommentInput:aH,sendToAIInput:aI,chatContext:aJ,commentsEnabled:aK,updateComment:aL,deleteComment:aM,lines:aN,matches:aO,rowData:aP,virtualizer:aQ,commentsByEndLine:aR,linesWithComments:aS,setIsSearchVisible:aT,setSearchQuery:aU,setCaseSensitive:aV,setWholeWord:aW,setViewingComment:aX,setAddCommentInput:aY,setSendToAIInput:aZ,goToNextMatch:a$,goToPrevMatch:a_,handleSearchKeyDown:a0,handleCommentBubbleClick:a1,handleToolbarAddComment:a2,handleToolbarSendToAI:a3,handleToolbarSearch:a4,handleCommentSubmit:a5,handleSendToAISubmit:a6,getHighlightedLineHtml:a7,suppressMatchScrollRef:a8,inlineBlameLineRef:a9,inlineBlameVersion:ba}=(0,p.d)({content:a,filePath:b,showSearch:d,cwd:t,enableComments:!L&&x,scrollToLine:L?null:z,scrollToLineAlign:L?"center":A,onScrollToLineComplete:L?void 0:B,visibleLineRef:L?void 0:D,onContentSearch:Y}),bb=(0,i.iN)(),bc=(0,f.useRef)(null),bd=(0,f.useRef)(null),be=(0,f.useRef)({line:0,col:0}),bf=(0,s.A)({lines:aN,enabled:Q&&!L,onContentChange:a=>{R?.(a)},onEnterInsert:(a,b,c)=>{let d=b;if("a"===c)d=b+1;else if("A"===c)d=(aN[a]??"").length;else if("I"===c){let b=(aN[a]??"").search(/\S/);d=b>=0?b:0}else("o"===c||"O"===c)&&(d=0);be.current={line:a,col:d},S?.(a)},onSave:T,getVisibleLineCount:()=>{let a=aq.current;return a?Math.floor(a.clientHeight/20):20},scrollToLine:(a,b)=>{let c=aP.findIndex(b=>"code"===b.type&&b.lineIndex===a);c>=0&&aQ.scrollToIndex(c,{align:b||"auto"})},onSearchExecute:a=>{aU(a),aT(!1)},onSearchNext:a$,onSearchPrev:a_,onSearchClear:()=>{aU("")}});(0,f.useEffect)(()=>{U&&(U.current={cursorLine:bf.state.cursorLine,cursorCol:bf.state.cursorCol})},[U,bf.state.cursorLine,bf.state.cursorCol]);let bg=(0,f.useRef)(null);(0,f.useEffect)(()=>{Q&&!L&&null!=V&&b&&bg.current!==b&&(bg.current=b,bf.setCursorLine(V-1),null!=W&&bf.setCursorCol(W-1),X?.())},[Q,L,V,W,b]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;if(!a)return;let b=a=>{let b=a.target;"TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable||bf.handleKeyDown(a)&&(a.preventDefault(),a.stopPropagation())};return a.addEventListener("keydown",b,!0),()=>a.removeEventListener("keydown",b,!0)},[Q,L,bf.handleKeyDown]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;a&&"normal"===bf.state.mode&&requestAnimationFrame(()=>{let b=document.activeElement;b&&("TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable)||a.focus()})},[Q,L,bf.state.mode,a]);let bh=(0,f.useCallback)(a=>{if(!Q||L)return;let b=a.target.closest("[data-line]");if(b){let c=parseInt(b.getAttribute("data-line"),10);if(!isNaN(c)){bf.setCursorLine(c-1);let d=b.querySelector("[data-code-content]");if(d){let b=document.caretRangeFromPoint(a.clientX,a.clientY);if(b&&d.contains(b.startContainer)){let a,e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=0;for(;a=e.nextNode();){if(a===b.startContainer){f+=b.startOffset;break}f+=a.textContent?.length||0}let g=aN[c-1]??"";bf.setCursorCol(Math.max(0,Math.min(f,Math.max(0,g.length-1))))}}}}let c=a.target;if("TEXTAREA"===c.tagName||"INPUT"===c.tagName||c.isContentEditable)return;let d=ar.current;d&&d.focus()},[Q,L,bf.setCursorLine,bf.setCursorCol,aN]),bi=(0,f.useCallback)(a=>{Q&&!L&&requestAnimationFrame(()=>{let a=window.getSelection(),b=a?.toString().trim();b&&/^\S+$/.test(b)&&(a8.current=!0,aU(b))})},[Q,L,aU,a8]);(0,f.useEffect)(()=>{"command"===bf.state.mode?setTimeout(()=>bc.current?.focus(),0):"search"===bf.state.mode&&setTimeout(()=>bd.current?.focus(),0)},[bf.state.mode]),(0,f.useEffect)(()=>{let a=aq.current;if(!a)return;let b=()=>{(H??G)?.()};return a.addEventListener("mousedown",b),()=>a.removeEventListener("mousedown",b)},[H,G]),(0,f.useEffect)(()=>{aH||aI?(au.current=!0,G?.()):at.current||(au.current=!1)},[aH,aI,G]),(0,f.useLayoutEffect)(()=>{let a=aw.current;if(!a)return;let b=window.getSelection();if(b&&!b.isCollapsed)return;let c=aq.current;if(!c)return;let d=c.querySelector(`[data-line="${a.startLine}"]`),e=c.querySelector(`[data-line="${a.endLine}"]`);if(!d||!e)return;let f=(0,p.o)(d,a.startOffset),g=(0,p.o)(e,a.endOffset);if(f&&g)try{let a=document.createRange();a.setStart(f.node,f.offset),a.setEnd(g.node,g.offset),b?.removeAllRanges(),b?.addRange(a)}catch{}});let bj=(0,f.useCallback)((a,b,c)=>{au.current||F?.(a,b,c)},[F]),bk=(0,f.useCallback)((a,b)=>{au.current||E?.(a,b)},[E]),bl=Math.max(4,String(L?af:aN.length).length),bm=(0,f.useMemo)(()=>{let a=0;for(let b of aN){let c=0;for(let a=0;a<b.length;a++)" "===b[a]?c+=2-c%2:c+=1;c>a&&(a=c)}return a},[aN]);(0,f.useEffect)(()=>{if(L){_.current=a;let b=a.split("\n").length;ah.current=b,ag(b),aa.current=!1,ac(!1),aj({show:!1}),am.current=M}},[L,a,M]),(0,f.useEffect)(()=>{if(!L)return;let b=ak.current;if(!b)return;let c=a.split("\n"),d=c.map((a,b)=>ax[b]||(0,l.ZD)(a||" "));b.innerHTML=w(d),requestAnimationFrame(()=>{let a,d;Q?(a=Math.max(0,Math.min(be.current.line,c.length-1)),d=be.current.col):(a=Math.max(0,Math.min((D?.current??1)-1,c.length-1)),d=0),b.focus(),v(b,{line:a,offset:d});let e=D?.current??1;al.current&&(al.current.scrollTop=(e-1)*20)})},[L]),(0,f.useEffect)(()=>{L&&P?.({isDirty:ab,isSaving:ad})},[L,ab,ad,P]);let bn=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return _.current;let b=[];for(let c of a.childNodes){let a=c.textContent||"";b.push(" "===a?"":a)}return b.join("\n")},[]),bo=(0,f.useCallback)(()=>{an.current&&clearTimeout(an.current),an.current=setTimeout(async()=>{let a=ak.current;if(a&&!ap.current){_.current=bn();try{let c=await (0,l.kS)(),d=(0,l.sQ)(b),e=document.documentElement.classList.contains("dark"),f=_.current.split("\n"),g=c.codeToTokens(f.join("\n"),{lang:d,theme:e?"github-dark":"github-light"}).tokens.map(a=>(0,l.b8)(a)),h=u(a);ao.current=!0,a.innerHTML=w(g),ao.current=!1,h&&v(a,h)}catch{}}},300)},[b,bn]);(0,f.useEffect)(()=>{if(L)return()=>{an.current&&clearTimeout(an.current)}},[L]);let bp=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return;aa.current||(aa.current=!0,ac(!0));let b=a.children.length;b!==ah.current&&(ah.current=b,ag(b))},[]),bq=(0,f.useCallback)(()=>{ao.current||ap.current||(bp(),bo())},[bp,bo]),br=(0,f.useCallback)(a=>{if(!a.nativeEvent.isComposing&&("Tab"===a.key&&(a.preventDefault(),document.execCommand("insertText",!1," ")),"Enter"===a.key)){a.preventDefault();let b=ak.current;if(!b)return;let c=window.getSelection();if(!c?.rangeCount)return;let d=c.getRangeAt(0);d.deleteContents();let e=d.startContainer;for(;e&&e.parentElement!==b;)e=e.parentElement;if(!e||!(e instanceof HTMLElement))return;let f=u(b),g=Array.from(b.children).indexOf(e),h=e.textContent||"",i=f?.offset??h.length,j=h.substring(0,i),k=h.substring(i);e.innerHTML=(0,l.ZD)(j||" ");let m=document.createElement("div");m.setAttribute("style",y),m.innerHTML=(0,l.ZD)(k||" "),e.after(m),v(b,{line:g+1,offset:0}),bp(),bo()}},[bp,bo]),bs=(0,f.useCallback)(a=>{a.preventDefault();let b=a.clipboardData.getData("text/plain");document.execCommand("insertText",!1,b)},[]),bt=(0,f.useCallback)(async(a=!1)=>{if(t){_.current=bn(),ae(!0);try{let c=await fetch("/api/files/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,path:b,content:_.current,expectedMtime:a?void 0:am.current})}),d=await c.json();if(409===c.status&&d.conflict){try{let a=await fetch(`/api/files/text?cwd=${encodeURIComponent(t)}&path=${encodeURIComponent(b)}`),c=await a.json();aj({show:!0,diskContent:a.ok&&"string"==typeof c.content?c.content:void 0})}catch{aj({show:!0})}return}if(!c.ok)throw Error("Failed to save file");d.mtime&&(am.current=d.mtime),aa.current=!1,ac(!1),aj({show:!1}),(0,r.oR)($("toast.savedSuccess"),"success"),O?.()}catch(a){console.error("Error saving file:",a),(0,r.oR)($("toast.saveFailed"),"error")}finally{ae(!1)}}},[t,b,bn,O]),bu=(0,f.useCallback)(async()=>{ab&&!ad&&await bt(!1)},[ab,ad,bt]),bv=(0,f.useCallback)(async()=>{aj({show:!1}),await bt(!0)},[bt]),bw=(0,f.useCallback)(()=>{if(void 0!==ai.diskContent){_.current=ai.diskContent;let b=ai.diskContent.split("\n").length;ah.current=b,ag(b);let c=ai.diskContent!==a;aa.current=c,ac(c);let d=ak.current;if(d){let a=ai.diskContent.split("\n");d.innerHTML=w(a.map(a=>(0,l.ZD)(a||" "))),bo()}}aj({show:!1}),O?.()},[ai.diskContent,a,O,bo]),bx=(0,f.useCallback)(()=>{let a=al.current;return a?Math.floor(a.scrollTop/20)+1:D?.current??1},[D]),by=(0,f.useCallback)(async()=>{(!ab||await (0,r.lJ)($("codeViewer.unsavedConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}))&&N?.(bx())},[ab,N,bx]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{(a.metaKey||a.ctrlKey)&&"s"===a.key&&(a.preventDefault(),bu())};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[L,bu]);let bz=(0,f.useCallback)(()=>{let a=bn();R?.(a);let b=ak.current,c=b?u(b):null,d=bx();if(bf.enterNormal(),c){bf.setCursorLine(c.line);let b=a.split("\n")[c.line]??"";bf.setCursorCol(Math.max(0,Math.min(c.offset,Math.max(0,b.length-1))))}else bf.setCursorLine(Math.max(0,d-1));N?.(d)},[bn,R,bx,N,bf]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{let b="Escape"===a.key,c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;(b||Q&&c)&&(a.preventDefault(),a.stopPropagation(),Q?aa.current?(0,r.lJ)($("codeViewer.unsavedExitConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}).then(a=>{a&&bz()}):bz():by())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[L,Q,by,bz]),(0,f.useImperativeHandle)(Z,()=>({save:bu,close:by,get isDirty(){return ab},get isSaving(){return ad}}),[bu,by,ab,ad]);let bA=!!(I&&I.length>0),bB=(0,f.useMemo)(()=>{if(!I)return new Map;let a=[...new Set(I.map(a=>a.author))],b=new Map;return a.forEach((a,c)=>{b.set(a,o.j[c%o.j.length])}),b},[I]),[bC,bD]=(0,f.useState)(null),[bE,bF]=(0,f.useState)(null);(0,f.useEffect)(()=>{bD(null),bF(null)},[I]);let bG=(0,f.useCallback)((a,b)=>{bD(a.author);let c=b.currentTarget.getBoundingClientRect();bF({line:a,x:c.right+8,y:c.top})},[]),bH=(0,f.useCallback)(()=>{bD(null),bF(null)},[]),bI=(0,f.useCallback)(a=>{if(!K)return;let b={hash:a.hashFull,shortHash:a.hash,author:a.author,authorEmail:a.authorEmail,date:new Date(1e3*a.time).toISOString(),subject:a.message.split("\n")[0]||"",body:a.message.split("\n").slice(1).join("\n").trim(),time:a.time};K(b),bF(null)},[K]),bJ=`${bl+2}ch`;return(0,e.jsxs)("div",{ref:ar,className:`h-full flex flex-col outline-none ${k}`,tabIndex:0,onClick:bh,onDoubleClick:bi,children:[L&&ai.show&&(0,e.jsxs)("div",{className:"px-4 py-2 bg-amber-500/15 border-b border-amber-500/30 flex items-center gap-3 flex-shrink-0",children:[(0,e.jsx)("svg",{className:"w-5 h-5 text-amber-500 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,e.jsx)("span",{className:"text-sm text-foreground flex-1",children:$("codeViewer.fileModifiedExternally")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("button",{onClick:bw,className:"px-3 py-1 text-sm rounded border border-border hover:bg-accent transition-colors",children:$("codeViewer.useDiskVersion")}),(0,e.jsx)("button",{onClick:bv,className:"px-3 py-1 text-sm rounded bg-amber-500 text-white hover:bg-amber-600 transition-colors",children:$("codeViewer.forceOverwrite")})]})]}),!L&&d&&aB&&(0,e.jsxs)("div",{className:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-secondary border-b border-border",children:[(0,e.jsx)("input",{ref:as,type:"text",value:aC,onChange:a=>aU(a.target.value),onKeyDown:a0,placeholder:$("codeViewer.searchPlaceholder"),className:"flex-1 max-w-xs px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-2 focus:ring-ring"}),(0,e.jsx)("button",{onClick:()=>aV(!aD),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aD?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.caseSensitive"),children:"Aa"}),(0,e.jsx)("button",{onClick:()=>aW(!aE),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aE?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.wholeWordMatch"),children:"[ab]"}),(0,e.jsx)("span",{className:"text-xs text-muted-foreground",children:aO.length>0?`${aF+1}/${aO.length}`:$("common.noMatch")}),(0,e.jsx)("button",{onClick:a_,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.previous"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}),(0,e.jsx)("button",{onClick:a$,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.next"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}),(0,e.jsx)("button",{onClick:()=>{aT(!1),aU("")},className:"p-1 rounded hover:bg-accent",title:$("common.close"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),L?(0,e.jsx)("div",{ref:al,className:"flex-1 overflow-auto bg-secondary",children:(0,e.jsxs)("div",{className:"flex",style:{minHeight:"100%"},children:[(0,e.jsx)("div",{className:"flex-shrink-0 font-mono text-sm select-none sticky left-0 z-[2] bg-secondary",style:{width:bJ},children:Array.from({length:af},(a,b)=>(0,e.jsx)("div",{className:"text-right text-muted-foreground/50 pr-3",style:{height:20,lineHeight:"20px"},children:b+1},b))}),(0,e.jsx)("div",{ref:ak,contentEditable:!0,suppressContentEditableWarning:!0,onInput:bq,onKeyDown:br,onPaste:bs,onCompositionStart:()=>{ap.current=!0},onCompositionEnd:()=>{ap.current=!1,bq()},spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",className:"flex-1 font-mono text-sm outline-none",style:{caretColor:"var(--foreground)",tabSize:2}})]})}):(0,e.jsx)("div",{ref:aq,className:`flex-1 overflow-auto font-mono text-sm bg-secondary${az?" cmd-held-container":""}`,children:(0,e.jsx)("div",{style:{height:`${aQ.getTotalSize()}px`,minWidth:"100%",width:bA?`calc(${bl+bm+10}ch + 13rem)`:`${bl+bm+10}ch`,position:"relative"},children:aQ.getVirtualItems().map(a=>{let b=aP[a.index];if("code"!==b.type)return null;let d=b.lineIndex,f=d+1,g=ax[d]||(0,l.ZD)(aN[d]||""),h=a7(d,g,C),i=aS.has(f),j=aR.get(f),k=j?.[0],m=!!(aH&&f>=aH.range.start&&f<=aH.range.end),n=ba>=0?a9.current:null,p=!L&&J&&n===f?J[d]??null:null,q=bA?I[d]:void 0,r=bA&&d>0?I[d-1]:void 0,s=!!q&&(!r||r.hash!==q.hash),t=q?bB.get(q.author):void 0;return(0,e.jsx)(o.S,{virtualKey:a.key,lineNum:f,highlightedHtml:h,hasComments:i,firstComment:k,lineCommentsCount:j?.length,isInRange:m,showLineNumbers:c,lineNumChars:bl,commentsEnabled:aK,virtualItemSize:a.size,virtualItemStart:a.start,onCommentBubbleClick:a1,onCmdClick:bk,onTokenHover:bj,onTokenHoverLeave:G,flashLine:aA,blameLine:q,showBlameInfo:s,blameAuthorColor:t,isBlameHovered:!!(q&&bC===q.author),onBlameClick:bI,onBlameMouseEnter:bG,onBlameMouseLeave:bH,inlineBlameData:p,onInlineBlameClick:bI,isCursorLine:Q&&!L&&bf.state.cursorLine===d,cursorCol:Q&&!L&&bf.state.cursorLine===d?bf.state.cursorCol:void 0},a.key)})})}),Q&&(0,e.jsxs)("div",{className:"vi-status-bar flex-shrink-0 h-6 bg-card border-t border-border flex items-center px-3 text-xs font-mono select-none",children:["normal"===bf.state.mode&&(0,e.jsx)("span",{className:"text-green-11 font-medium",children:"NORMAL"}),"insert"===bf.state.mode&&(0,e.jsx)("span",{className:"text-blue-11 font-medium",children:"INSERT"}),"command"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:":"}),(0,e.jsx)("input",{ref:bc,value:bf.state.commandInput,onChange:a=>bf.setCommandInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),"search"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:"/"}),(0,e.jsx)("input",{ref:bd,value:bf.state.searchInput,onChange:a=>bf.setSearchInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),bf.state.keyBuffer&&"normal"===bf.state.mode&&(0,e.jsx)("span",{className:"ml-2 text-muted-foreground",children:bf.state.keyBuffer}),bf.state.isDirty&&("normal"===bf.state.mode||"command"===bf.state.mode)&&(0,e.jsx)("span",{className:"ml-2 text-amber-11",children:"[+]"}),(0,e.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[bf.state.cursorLine+1,":",bf.state.cursorCol+1]})]}),ay&&bb&&(0,h.createPortal)((0,e.jsxs)(e.Fragment,{children:[!L&&(0,e.jsx)(m.f,{floatingToolbarRef:at,bumpRef:av,container:bb,onAddComment:a2,onSendToAI:a3,onSearch:Y?a4:void 0,isChatLoading:aJ?.isLoading}),!L&&aH&&(0,e.jsx)(j.t,{x:aH.x,y:aH.y,range:aH.range,codeContent:aH.codeContent,container:bb,onSubmit:a5,onClose:()=>aY(null)}),!L&&aI&&(0,e.jsx)(j.G,{x:aI.x,y:aI.y,range:aI.range,filePath:b,codeContent:aI.codeContent,container:bb,onSubmit:a6,onClose:()=>aZ(null),isChatLoading:aJ?.isLoading}),!L&&aG&&(0,e.jsx)(n.t,{x:aG.x,y:aG.y,comment:aG.comment,container:bb,onClose:()=>aX(null),onUpdateComment:aL,onDeleteComment:aM}),bE&&(0,e.jsxs)("div",{className:"fixed z-50 bg-card border border-border rounded-lg shadow-lg p-3 max-w-lg",style:{left:Math.min(bE.x,window.innerWidth-450),top:Math.max(8,Math.min(bE.y,window.innerHeight-200))},children:[(0,e.jsxs)("div",{className:"flex items-start gap-3",children:[(0,e.jsx)("div",{className:"px-2 py-0.5 rounded text-xs font-mono font-medium text-white flex-shrink-0",style:{backgroundColor:bB.get(bE.line.author)?.border||"#666"},children:bE.line.hash}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-foreground",children:bE.line.author}),(0,e.jsx)("div",{className:"text-xs text-muted-foreground",children:bE.line.authorEmail})]})]}),(0,e.jsx)("div",{className:"mt-2 text-sm text-foreground whitespace-pre-wrap max-h-48 overflow-y-auto",children:bE.line.message}),(0,e.jsxs)("div",{className:"mt-2 text-xs text-muted-foreground border-t border-border pt-2",children:[(0,q.fw)(bE.line.time)," \xb7 ",new Date(1e3*bE.line.time).toLocaleString(),(0,e.jsx)("span",{className:"ml-2 text-brand",children:$("codeViewer.clickToViewDetails")})]})]})]}),bb)]})});function x({content:a,filePath:b,className:c=""}){let d=(0,f.useMemo)(()=>a.split("\n"),[a]),g=(0,k.C)(d,b),h=Math.max(4,String(d.length).length);return(0,e.jsx)("pre",{className:`overflow-auto text-sm font-mono bg-secondary p-2 ${c}`,children:d.map((a,b)=>(0,e.jsxs)("div",{className:"flex",children:[(0,e.jsx)("span",{className:"text-slate-9 select-none pr-4 text-right",style:{minWidth:`${h+2}ch`},children:b+1}),(0,e.jsx)("span",{className:"flex-1",dangerouslySetInnerHTML:{__html:g[b]||(0,l.ZD)(a||" ")}})]},b))})}d()}catch(a){d(a)}})},90173:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C:()=>h});var e=c(67484),f=c(5811),g=a([f]);function h(a,b){let[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(!1);return(0,e.useRef)(""),a.join("\n"),c}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},94882:(a,b,c)=>{function d(a,b){for(let c of a){if(c.path===b)return c;if(c.children){let a=d(c.children,b);if(a)return a}}return null}function e(a,b){if(!a)return"";let c=d(b,a);if(c?.isDirectory)return a;let e=a.split("/");return e.pop(),e.join("/")}function f(a){let b=[];for(let c of a){let a=c.split("/"),d=b;for(let b=0;b<a.length;b++){let c=a[b],e=b===a.length-1,f=a.slice(0,b+1).join("/"),g=d.find(a=>a.name===c);g||(g={name:c,path:f,isDirectory:!e,children:e?void 0:[]},d.push(g)),!e&&g.children&&(d=g.children)}}let c=a=>{a.sort((a,b)=>a.isDirectory&&!b.isDirectory?-1:!a.isDirectory&&b.isDirectory?1:a.name.localeCompare(b.name)),a.forEach(a=>{a.children&&c(a.children)})};return c(b),b}function g(a){let b=[],c=a=>{for(let d of a)d.isDirectory&&(b.push(d.path),d.children&&c(d.children))};return c(a),b}c.d(b,{B_:()=>o,KH:()=>k,MB:()=>d,S7:()=>e,fw:()=>l,q3:()=>j,r6:()=>m,tE:()=>n,tW:()=>g,u:()=>i,v3:()=>f});let h=new Set(["png","jpg","jpeg","gif","svg","webp","ico","bmp"]);function i(a){let b=a.split(".").pop()?.toLowerCase();return h.has(b||"")}function j(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase(),f=a=>{if(d.add(a.path),a.children)for(let b of a.children)f(b)},g=(a,b)=>{let h=a.name.toLowerCase(),i=c?h===e:h.includes(e);if(i&&a.children)return f(a),b.forEach(a=>d.add(a)),!0;let j=!1;if(a.children)for(let c of a.children)g(c,[...b,a.path])&&(j=!0);return(!!i||!!j)&&(d.add(a.path),b.forEach(a=>d.add(a)),!0)};for(let b of a)g(b,[]);return d}function k(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase();for(let b of a){let a=b.split("/");for(let b=0;b<a.length;b++){let f=a[b].toLowerCase();if(c?f===e:f.includes(e)){for(let b=0;b<=a.length-1;b++)d.add(a.slice(0,b+1).join("/"));break}}}return d}function l(a){let b=Math.floor(Math.floor((Date.now()-1e3*a)/1e3)/60),c=Math.floor(b/60),d=Math.floor(c/24),e=Math.floor(d/30),f=Math.floor(d/365);return f>0?`${f}y ago`:e>0?`${e}mo ago`:d>0?`${d}d ago`:c>0?`${c}h ago`:b>0?`${b}m ago`:"just now"}function m(a){let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear(),e=String(b.getMonth()+1).padStart(2,"0"),f=String(b.getDate()).padStart(2,"0"),g=String(b.getHours()).padStart(2,"0"),h=String(b.getMinutes()).padStart(2,"0");return d?`${e}-${f} ${g}:${h}`:`${b.getFullYear()}-${e}-${f} ${g}:${h}`}let n=()=>{},o=50},95133:(a,b,c)=>{c.d(b,{S:()=>l,j:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(31172);function i({blame:a,onClick:b}){let{t:c}=(0,f.Bd)(),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,h.F2)(),m=(0,e.useRef)(!1),n=(0,e.useRef)(!1),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useRef)(null),r=(0,e.useRef)(a),s=(0,e.useRef)(b),t=(0,e.useCallback)(()=>{let a,b=k.current,c=j.current;if(!b||!c)return;let d=c.getBoundingClientRect(),e=b.getBoundingClientRect(),f=l?.getBoundingClientRect(),g=f?.left??0,h=f?.top??0,i=f?.width??window.innerWidth,m=f?.height??window.innerHeight,n=d.left-g;n+e.width>i-8&&(n=i-e.width-8),n<8&&(n=8);let o=d.top-h,p=d.bottom-h;(a=o-e.height-4<0?p+4:o-e.height-4)+e.height>m-8&&(a=m-e.height-8),b.style.left=`${n}px`,b.style.top=`${a}px`},[l]),u=(0,e.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),p.current&&(clearTimeout(p.current),p.current=null),m.current=!1,n.current=!1,k.current&&(k.current.style.display="none"),q.current&&(document.removeEventListener("mousedown",q.current.down),document.removeEventListener("mouseup",q.current.up),q.current=null)},[]),v=(0,e.useCallback)(()=>{let a=k.current;if(!a||m.current)return;m.current=!0,a.style.left="-9999px",a.style.top="-9999px",a.style.display="block",requestAnimationFrame(()=>requestAnimationFrame(t));let b=0,c=0,d=a=>{b=a.clientX,c=a.clientY},e=a=>{if(!(Math.abs(a.clientX-b)>5||Math.abs(a.clientY-c)>5)){let b;b=a.target,k.current?.contains(b)||j.current?.contains(b)||u()}};document.addEventListener("mousedown",d),document.addEventListener("mouseup",e),q.current={down:d,up:e}},[t,u]),w=(0,e.useCallback)(()=>{if(o.current&&clearTimeout(o.current),p.current&&(clearTimeout(p.current),p.current=null),m.current)return;let a=window.getSelection();(!a||a.isCollapsed)&&(o.current=setTimeout(v,500))},[v]),x=(0,e.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),m.current&&(p.current=setTimeout(()=>{n.current||u()},200))},[u]),y=(0,e.useCallback)(()=>{n.current=!0,p.current&&(clearTimeout(p.current),p.current=null)},[]),z=(0,e.useCallback)(()=>{n.current=!1,u()},[u]),A=(0,e.useCallback)(a=>{a.stopPropagation();let b=window.getSelection();b&&b.toString().length>0&&k.current?.contains(b.anchorNode)||(s.current?.(r.current),u())},[u]),B=a.message.split("\n")[0]||"",C=a.message.split("\n").slice(1).join("\n").trim();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{ref:j,className:"select-none text-xs text-muted-foreground/50 ml-6 cursor-default hover:text-muted-foreground/80",onMouseEnter:w,onMouseLeave:x,children:[a.author.split(" ")[0],", ",function(a){let b=g.A.t,c=Math.floor((Date.now()-1e3*a)/1e3);if(c<60)return b("common.justNow");let d=Math.floor(c/60);if(d<60)return b("common.minutesAgo",{count:d});let e=Math.floor(d/60);if(e<24)return b("common.hoursAgo",{count:e});let f=Math.floor(e/24);if(f<30)return b("common.daysAgo",{count:f});let h=Math.floor(f/30);return h<12?b("common.monthsAgo",{count:h}):b("common.yearsAgo",{count:Math.floor(h/12)})}(a.time)," \xb7 ",B]}),(0,d.jsx)(h.ZL,{children:(0,d.jsxs)("div",{ref:k,className:"fixed z-[9999] bg-card border border-border rounded-lg shadow-xl p-3 text-xs text-foreground whitespace-pre-wrap max-w-md select-text",style:{display:"none",minWidth:280,cursor:"text"},"data-inline-blame-tip":"",onMouseEnter:y,onMouseLeave:z,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,d.jsx)("span",{className:"font-mono text-brand",children:a.hash}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.author}),(0,d.jsx)("span",{className:"text-muted-foreground/60",children:new Date(1e3*a.time).toLocaleString()})]}),(0,d.jsx)("div",{className:"font-medium",children:B}),C&&(0,d.jsx)("div",{className:"mt-1 text-muted-foreground",children:C}),(0,d.jsx)("div",{className:"mt-2 text-[11px] text-brand border-t border-border pt-2 cursor-pointer hover:underline",onClick:A,children:c("codeViewer.clickToViewDetails")})]})})]})}let j=[{bg:"rgba(59, 130, 246, 0.15)",border:"rgb(59, 130, 246)"},{bg:"rgba(16, 185, 129, 0.15)",border:"rgb(16, 185, 129)"},{bg:"rgba(245, 158, 11, 0.15)",border:"rgb(245, 158, 11)"},{bg:"rgba(239, 68, 68, 0.15)",border:"rgb(239, 68, 68)"},{bg:"rgba(168, 85, 247, 0.15)",border:"rgb(168, 85, 247)"},{bg:"rgba(236, 72, 153, 0.15)",border:"rgb(236, 72, 153)"},{bg:"rgba(20, 184, 166, 0.15)",border:"rgb(20, 184, 166)"},{bg:"rgba(249, 115, 22, 0.15)",border:"rgb(249, 115, 22)"}];function k(a,b){let c,d=document.caretRangeFromPoint(a.clientX,a.clientY);if(!d||!b.contains(d.startContainer))return 1;let e=d.startContainer,f=d.startOffset,g=document.createTreeWalker(b,NodeFilter.SHOW_TEXT),h=1;for(;c=g.nextNode();){if(c===e){h+=f;break}h+=c.textContent?.length||0}return h}let l=(0,e.memo)(function({virtualKey:a,lineNum:b,highlightedHtml:c,hasComments:g,firstComment:h,lineCommentsCount:j,isInRange:l,showLineNumbers:m,lineNumChars:n,commentsEnabled:o,virtualItemSize:p,virtualItemStart:q,onCommentBubbleClick:r,onCmdClick:s,onTokenHover:t,onTokenHoverLeave:u,flashLine:v,blameLine:w,showBlameInfo:x,blameAuthorColor:y,isBlameHovered:z,onBlameClick:A,onBlameMouseEnter:B,onBlameMouseLeave:C,inlineBlameData:D,onInlineBlameClick:E,isCursorLine:F,cursorCol:G}){let{t:H}=(0,f.Bd)(),I=(0,e.useMemo)(()=>F&&null!=G?function(a,b){let c=0,d=0;for(;d<a.length;){if("<"===a[d]){let b=a.indexOf(">",d);if(-1!==b){d=b+1;continue}}if(c===b){let b;if("&"===a[d]){let c=a.indexOf(";",d);b=-1!==c&&c-d<10?c+1:d+1}else b=d+1;let c=a.substring(d,b);return a.substring(0,d)+'<span class="vi-char-cursor">'+c+"</span>"+a.substring(b)}if("&"===a[d]){let b=a.indexOf(";",d);d=-1!==b&&b-d<10?b+1:d+1}else d++;c++}return a+'<span class="vi-char-cursor"> </span>'}(c,G):c,[c,F,G]),J=(0,e.useCallback)(a=>{if(!a.metaKey||!s)return;a.preventDefault(),a.stopPropagation();let c=a.currentTarget,d=k(a,c);window.getSelection()?.removeAllRanges(),s(b,d)},[b,s]),K=(0,e.useCallback)(a=>{if(!t||0!==a.buttons)return;let c=window.getSelection();if(c&&!c.isCollapsed)return;let d=a.target;if("SPAN"!==d.tagName||!d.style.color)return;let e=a.currentTarget,f=k(a,e),g=d.getBoundingClientRect();t(b,f,{x:g.left,y:g.bottom+4})},[b,t]),L=(0,e.useCallback)(()=>{w&&A&&A(w)},[w,A]),M=(0,e.useCallback)(a=>{w&&B&&B(w,a)},[w,B]);return(0,d.jsxs)("div",{"data-line":b,style:{position:"absolute",top:0,left:0,width:"100%",height:`${p}px`,transform:`translateY(${q}px)`,backgroundColor:z&&y?y.bg:void 0},className:`flex ${v===b?"flash-line":""} ${F?"vi-cursor-line":""} ${l?"bg-blue-9/20":g?"bg-amber-9/10":"hover:bg-accent/50"}`,children:[(0,d.jsxs)("div",{className:"flex shrink-0 sticky left-0 z-[2] bg-secondary",style:{backgroundColor:z&&y?y.bg:void 0},children:[w&&y&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-1 flex-shrink-0",style:{backgroundColor:y.border}}),(0,d.jsx)("div",{className:"w-48 flex-shrink-0 px-2 flex items-center gap-2 border-r border-border text-muted-foreground cursor-pointer hover:bg-accent/50",onMouseEnter:M,onMouseLeave:C,onClick:L,title:H("codeViewer.clickToViewCommit"),children:x?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-medium",style:{color:y.border},children:w.hash}),(0,d.jsx)("span",{className:"truncate flex-1",children:w.author.split(" ")[0]})]}):null})]}),m&&(0,d.jsxs)("span",{className:`flex-shrink-0 flex items-center justify-end gap-0.5 pr-2 select-none border-r border-border font-variant-tabular ${l?"bg-blue-9/30 text-blue-11":"bg-card/50 text-slate-9"}`,children:[o&&g&&h&&(0,d.jsx)("button",{onClick:a=>r(h,a),className:"w-4 h-4 flex items-center justify-center rounded hover:bg-accent text-amber-9",title:H("codeViewer.nComments",{count:j}),children:(0,d.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,d.jsx)("path",{fillRule:"evenodd",d:"M18 10c0 3.866-3.582 7-8 7a8.841 8.841 0 01-4.083-.98L2 17l1.338-3.123C2.493 12.767 2 11.434 2 10c0-3.866 3.582-7 8-7s8 3.134 8 7zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z",clipRule:"evenodd"})})}),o&&!g&&(0,d.jsx)("span",{className:"w-4"}),(0,d.jsx)("span",{className:"text-right",style:{minWidth:`${n}ch`},children:b})]})]}),(0,d.jsxs)("span",{className:"flex-1 px-3 whitespace-pre select-text",onClick:J,onMouseOver:K,onMouseLeave:u,"data-code-content":!0,children:[(0,d.jsx)("span",{dangerouslySetInnerHTML:{__html:I}}),D&&(0,d.jsx)(i,{blame:D,onClick:E})]})]},a)})}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/smsKM7xQ0sAR3fsFWgImc/_buildManifest.js","static/smsKM7xQ0sAR3fsFWgImc/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-067b7836d8df9226.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-3fb4e6ee851037bb.js","static/chunks/main-app-b76c0df33a946918.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/GrlHt_NxoSxuOTl-aMQdx/_buildManifest.js","static/GrlHt_NxoSxuOTl-aMQdx/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-9a8ea3995034c536.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-3fb4e6ee851037bb.js","static/chunks/main-app-b76c0df33a946918.js"],rootMainFilesTree:{},pages:{"/_app":[]}};