@baique/pi-web-sky 0.1.43 → 0.1.45

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 (61) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +14 -14
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/react-loadable-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +3 -3
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/.next/server/app/api/app-update/route.js +1 -1
  20. package/.next/server/app/api/board-assets/[...path]/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/board-assets/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/git/status/route.js +1 -1
  23. package/.next/server/app/api/models/route.js +1 -1
  24. package/.next/server/app/api/project-trust/route.js +1 -1
  25. package/.next/server/app/api/terminal/route.js +1 -1
  26. package/.next/server/app/api/worktrees/route.js +1 -1
  27. package/.next/server/app/index.html +1 -1
  28. package/.next/server/app/index.rsc +5 -5
  29. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  30. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  31. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  32. package/.next/server/app/page.js +2 -2
  33. package/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app-paths-manifest.json +14 -14
  35. package/.next/server/chunks/402.js +6 -5
  36. package/.next/server/chunks/6525.js +2 -2
  37. package/.next/server/middleware-build-manifest.js +1 -1
  38. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  39. package/.next/server/pages/404.html +1 -1
  40. package/.next/server/pages/500.html +1 -1
  41. package/.next/static/chunks/{752.b808ee0d01f76cbf.js → 752.395b1b6b288c0c89.js} +1 -1
  42. package/.next/static/chunks/9272.7b010df4c209349b.js +1 -0
  43. package/.next/static/chunks/app/{layout-bd9248a30e97ea3b.js → layout-19e02b79476a6b19.js} +1 -1
  44. package/.next/static/chunks/app/{page-3090c3cd6482d779.js → page-e4d01ab7584fd052.js} +1 -1
  45. package/.next/static/chunks/{webpack-8807c91e1b44a5e7.js → webpack-7e7a6ac5aadb603f.js} +1 -1
  46. package/.next/static/css/4a609fb185e7cff1.css +1 -0
  47. package/.next/trace +7 -42
  48. package/.next/trace-build +1 -1
  49. package/lib/card-emoji.test.mjs +2 -2
  50. package/lib/session-index-scanner.test.mjs +30 -4
  51. package/lib/session-index-scanner.ts +34 -15
  52. package/lib/session-reader.project.test.mjs +86 -0
  53. package/lib/session-reader.ts +75 -54
  54. package/lib/task-store.ts +1 -1
  55. package/lib/worktree.test.mjs +17 -1
  56. package/lib/worktree.ts +9 -0
  57. package/package.json +1 -1
  58. package/.next/static/chunks/7128.c3cb215470efb551.js +0 -1
  59. package/.next/static/css/eb9207b60f094f9b.css +0 -1
  60. /package/.next/static/{69e74OJnYIa0YtjFRWIBS → mi_AqqMn6gfU7PwatOjlB}/_buildManifest.js +0 -0
  61. /package/.next/static/{69e74OJnYIa0YtjFRWIBS → mi_AqqMn6gfU7PwatOjlB}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7128],{87128:(e,t,r)=>{r.r(t),r.d(t,{CanvasStage:()=>e$});var n=r(95155),o=r(12115),a=r(81750);function i(e){if("number"==typeof e)return e;if("string"==typeof e){let t=parseFloat(e);return Number.isFinite(t)?t:0}return 0}function s(e){let t=e.data??{},r=i(e.width)||i(e.style?.width)||i(t.w)||0,n=i(e.height)||i(e.style?.height)||i(t.h)||0;return{left:e.position.x,right:e.position.x+r,cx:e.position.x+r/2,top:e.position.y,bottom:e.position.y+n,cy:e.position.y+n/2,w:r,h:n}}function l(e,t){return Math.hypot(Math.max(0,Math.max(e.left-t.right,t.left-e.right)),Math.max(0,Math.max(e.top-t.bottom,t.top-e.bottom)))}function d(e,t,r,n=8){let o=r.find(t=>t.id===e);if(!o)return{lines:[],snapX:null,snapY:null};let a=s({...o,position:{...o.position,...t}}),i=Math.min(a.left,a.right),c=Math.max(a.left,a.right),u=Math.min(a.top,a.bottom),p=Math.max(a.top,a.bottom),x=null,h=null,g=n,f=n,b=null,m=null,y=null,v=null;for(let o of r){if(o.id===e)continue;let r=s(o);if(l(a,r)>200)continue;let i=Math.min(r.left,r.right),d=Math.max(r.left,r.right),c=Math.min(r.top,r.bottom),u=Math.max(r.top,r.bottom);for(let[e,n]of[[a.left,r.left],[a.left,r.cx],[a.left,r.right],[a.cx,r.left],[a.cx,r.cx],[a.cx,r.right],[a.right,r.left],[a.right,r.cx],[a.right,r.right]]){let r=Math.abs(e-n);r<g&&(g=r,x=t.x+(n-e),b=n,m={minY:c,maxY:u})}for(let[e,n]of[[a.top,r.top],[a.top,r.cy],[a.top,r.bottom],[a.cy,r.top],[a.cy,r.cy],[a.cy,r.bottom],[a.bottom,r.top],[a.bottom,r.cy],[a.bottom,r.bottom]]){let r=Math.abs(e-n);r<f&&(f=r,h=t.y+(n-e),y=n,v={minX:i,maxX:d})}if(g<n&&f<n)break}let k=[];return null!==b&&m&&k.push({x1:b,y1:Math.min(u,m.minY)-6,x2:b,y2:Math.max(p,m.maxY)+6}),null!==y&&v&&k.push({x1:Math.min(i,v.minX)-6,y1:y,x2:Math.max(c,v.maxX)+6,y2:y}),{lines:k,snapX:x,snapY:h}}function c(e,t,r,n,o,a=8){if(!o.find(t=>t.id===e))return{lines:[],snapW:null,snapH:null};let i={left:t.x,right:t.x+r,cx:t.x+r/2,top:t.y,bottom:t.y+n,cy:t.y+n/2,w:r,h:n},d=Math.min(i.left,i.right),u=Math.max(i.left,i.right),p=Math.min(i.top,i.bottom),x=Math.max(i.top,i.bottom),h=null,g=null,f=a,b=a,m=null,y=null,v=null,k=null;for(let r of o){if(r.id===e)continue;let n=s(r);if(l(i,n)>200)continue;let o=Math.min(n.left,n.right),d=Math.max(n.left,n.right),c=Math.min(n.top,n.bottom),u=Math.max(n.top,n.bottom);for(let[e,r]of[[i.right,n.left],[i.right,n.cx],[i.right,n.right]]){let n=Math.abs(e-r);n<f&&(f=n,h=r-t.x,m=r,y={minY:c,maxY:u})}for(let[e,r]of[[i.bottom,n.top],[i.bottom,n.cy],[i.bottom,n.bottom]]){let n=Math.abs(e-r);n<b&&(b=n,g=r-t.y,v=r,k={minX:o,maxX:d})}if(f<a&&b<a)break}let w=[];return null!==m&&y&&w.push({x1:m,y1:Math.min(p,y.minY)-6,x2:m,y2:Math.max(x,y.maxY)+6}),null!==v&&k&&w.push({x1:Math.min(d,k.minX)-6,y1:v,x2:Math.max(u,k.maxX)+6,y2:v}),{lines:w,snapW:h,snapH:g}}r(53255);var u=r(39247),p=r(85610),x=r(47650),h=r(71594);function g({stats:e,contextUsage:t}){if(!e)return null;let r=e.tokens,o=e.cost??0,a=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=o>0?o>=.01?`$${o.toFixed(2)}`:"<$0.01":null,s="var(--text-muted)",l=null;if(t?.contextWindow){let e=t.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${a(t.contextWindow)}`:`? / ${a(t.contextWindow)}`}let d={display:"flex",alignItems:"center",gap:4,flexShrink:0};return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:[r.input>0&&(0,n.jsxs)("span",{style:d,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),a(r.input)]}),r.output>0&&(0,n.jsxs)("span",{style:d,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),a(r.output)]}),r.cacheRead>0&&(0,n.jsxs)("span",{style:d,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),a(r.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),l&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:s,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})}let f=(0,o.forwardRef)(function({sessionId:e,stats:t,contextUsage:r,todos:a,systemPrompt:i,systemPromptLoading:s,cwd:l,projectRoot:d,isWorktree:c,worktreeBranch:p},x){let{t:h}=(0,u.s)(),[g,f]=(0,o.useState)(!1),[R,E]=(0,o.useState)(!1),[M,L]=(0,o.useState)(!1),W=(0,o.useRef)(null),z=(0,o.useRef)(null),N=(0,o.useRef)(null),T=(0,o.useRef)(null);(0,o.useImperativeHandle)(x,()=>({openStats:()=>{f(!0),E(!1)}}),[]);let I=e=>{f("stats"===e),E("todo"===e),L("system"===e)},D=(0,o.useCallback)(()=>{window.open(`/api/sessions/${encodeURIComponent(e)}/export?inline=1`,"_blank","noopener,noreferrer")},[e]),H=r?.contextWindow&&null!==r.percent?`${r.percent.toFixed(0)}% / ${w(r.contextWindow)}`:h("nav.stats"),$=a.filter(e=>"completed"!==e.status).length,F=(0,o.useCallback)(()=>{let e=W.current?.closest("[data-session-titlebar]");return e?.getBoundingClientRect().width??300},[]),P=g||R||M;return(0,o.useEffect)(()=>{if(!P)return;let e=e=>{let t=e.target;t instanceof Node&&(W.current?.contains(t)||document.querySelector("[data-session-nav-popover]")?.contains(t)||document.querySelector("[data-session-nav-todo]")?.contains(t)||document.querySelector("[data-session-nav-system]")?.contains(t)||document.querySelector(".glass-top-panel")?.contains(t))||(f(!1),E(!1),L(!1))},t=e=>{"Escape"===e.key&&(f(!1),E(!1),L(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[P]),(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{ref:W,style:{display:"flex",alignItems:"center",gap:2,padding:"0 4px",position:"relative",pointerEvents:"all",height:"100%"},children:[(0,n.jsxs)("button",{type:"button",onClick:D,title:h("history.full"),"aria-label":h("history.full"),style:b,onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=v},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),(0,n.jsx)("span",{style:m,children:h("history.full")})]}),(0,n.jsx)("span",{style:y}),(0,n.jsxs)("button",{ref:T,type:"button",onClick:()=>I(M?"none":"system"),title:h("system.prompt"),"aria-label":h("system.prompt"),"aria-expanded":M,style:{...b,background:M?k:"transparent",color:M?"var(--accent)":"var(--text-muted)"},onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=v)},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:i?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,n.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),(0,n.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),(0,n.jsx)("polyline",{points:"10 9 9 9 8 9"})]}),(0,n.jsx)("span",{style:m,children:h("system.label")})]}),(0,n.jsx)("span",{style:y}),(0,n.jsxs)("button",{ref:z,type:"button",onClick:()=>I(g?"none":"stats"),title:h("session.title"),"aria-label":h("session.title"),"aria-expanded":g,style:{...b,background:g?k:"transparent",color:g?"var(--accent)":"var(--text-muted)"},onMouseEnter:e=>{g||(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=v)},onMouseLeave:e=>{g||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"10"}),(0,n.jsx)("line",{x1:"18",y1:"20",x2:"18",y2:"4"}),(0,n.jsx)("line",{x1:"6",y1:"20",x2:"6",y2:"16"})]}),(0,n.jsx)("span",{style:m,children:H})]}),a.length>0&&(0,n.jsxs)("button",{ref:N,type:"button",onClick:()=>I(R?"none":"todo"),title:h("todo.title"),"aria-label":h("todo.title"),"aria-expanded":R,style:{...b,background:R?k:"transparent",color:R?"var(--accent)":"var(--text-muted)"},onMouseEnter:e=>{R||(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background=v)},onMouseLeave:e=>{R||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,n.jsx)("path",{d:"M8 9h8M8 13h5"})]}),(0,n.jsx)("span",{style:m,children:h("nav.todo")}),(0,n.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--text-muted)"},children:$>0?$:"✓"})]}),g&&t&&(0,n.jsx)(j,{navRef:W,navWidth:F(),stats:t,contextUsage:r,onClose:()=>f(!1),cwd:l,projectRoot:d,isWorktree:c,worktreeBranch:p}),R&&a.length>0&&(0,n.jsx)(C,{navRef:W,navWidth:F(),todos:a,onClose:()=>E(!1)}),M&&(0,n.jsx)(S,{navRef:W,navWidth:F(),prompt:i,loading:s,onClose:()=>L(!1)})]})})}),b={flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",gap:4,width:"auto",height:26,padding:"0 6px",border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s, background 0.12s"},m={fontSize:11,fontWeight:600,lineHeight:1,whiteSpace:"nowrap"},y={flexShrink:0,width:1,height:16,alignSelf:"center",background:"color-mix(in srgb, var(--border) 70%, transparent)",margin:"0 3px"},v="color-mix(in srgb, var(--glass-bg-strong) 40%, transparent)",k="color-mix(in srgb, var(--glass-bg-strong) 60%, transparent)";function w(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e)}function j({navRef:e,navWidth:t,stats:r,contextUsage:a,onClose:i,cwd:s,projectRoot:l,isWorktree:d,worktreeBranch:c}){let{t:p}=(0,u.s)(),[h,f]=(0,o.useState)(null),b=(0,o.useRef)(null);if((0,o.useEffect)(()=>{let r=()=>{let r=e.current;if(!r)return;let n=r.getBoundingClientRect(),o=r.closest("[data-session-titlebar]"),a=o?.getBoundingClientRect(),i=a?a.left:Math.min(n.right-t,Math.max(8,n.left));f({top:a?a.bottom:n.bottom,left:i})};r();let n=new ResizeObserver(r);return e.current&&n.observe(e.current),e.current?.closest("[data-session-titlebar]")&&n.observe(e.current.closest("[data-session-titlebar]")),window.addEventListener("resize",r),()=>{n.disconnect(),window.removeEventListener("resize",r)}},[e,t]),(0,o.useEffect)(()=>{let t=t=>{let r=t.target;b.current?.contains(r)||e.current?.contains(r)||i()};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[e,i]),!h)return null;let m=r.totalActiveMs??0,y=[...r.sessionName?[{label:p("session.name"),value:r.sessionName}]:[],{label:p("session.id"),value:r.sessionId},...s?[{label:p("session.projectDir"),value:d&&c?`${c} \xb7 ${s}`:l??s}]:[],...m>0?[{label:p("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`})(m)}]:[]],v=[[p("session.user"),r.userMessages.toLocaleString()],[p("session.assistant"),r.assistantMessages.toLocaleString()],[p("session.toolCalls"),r.toolCalls.toLocaleString()],[p("session.toolResults"),r.toolResults.toLocaleString()],[p("session.total"),r.totalMessages.toLocaleString()]],k=[[p("session.input"),r.tokens.input.toLocaleString()],[p("session.output"),r.tokens.output.toLocaleString()],...r.tokens.cacheRead>0?[[p("session.cacheRead"),r.tokens.cacheRead.toLocaleString()]]:[],...r.tokens.cacheWrite>0?[[p("session.cacheWrite"),r.tokens.cacheWrite.toLocaleString()]]:[],[p("session.total"),r.tokens.total.toLocaleString()],...r.cost>0?[[p("session.cost"),`$${r.cost.toFixed(4)}`]]:[],...r.contextUsage?.contextWindow?[[p("session.context"),`${null!==r.contextUsage.percent?`${r.contextUsage.percent.toFixed(1)}%`:"?"} / ${w(r.contextUsage.contextWindow)}`]]:[]],S=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content minmax(0, 1fr)":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,o])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-meta)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",textAlign:r,whiteSpace:"normal"},children:o})]},`${e}:${t}`))})]}),C=(0,n.jsx)("div",{ref:b,"data-session-nav-popover":!0,role:"dialog","aria-label":p("session.title"),className:"glass-panel",style:{position:"fixed",top:h.top,left:h.left,width:t,maxHeight:"min(560px, calc(100dvh - 44px))",overflowY:"auto",zIndex:1200,padding:"12px 16px",fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)"},children:(0,n.jsxs)("div",{style:{display:"grid",gap:16,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)(g,{stats:r,contextUsage:a}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",columnGap:12,rowGap:8,alignItems:"start"},children:y.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-meta)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value})]},e.label))}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(160px, 0.5fr) minmax(240px, 0.7fr)",gap:24},children:[S(p("session.messages"),v),S(p("session.tokens"),k,"right",!0)]})]})});return(0,x.createPortal)(C,document.body)}function S({navRef:e,navWidth:t,prompt:r,loading:a,onClose:i}){let{t:s}=(0,u.s)(),[l,d]=(0,o.useState)(null),c=(0,o.useRef)(null);if((0,o.useEffect)(()=>{let r=()=>{let r=e.current;if(!r)return;let n=r.closest("[data-session-titlebar]"),o=n?.getBoundingClientRect(),a=o?o.left:Math.min(r.getBoundingClientRect().right-t,Math.max(8,r.getBoundingClientRect().left));d({top:o?o.bottom:r.getBoundingClientRect().bottom,left:a})};r();let n=new ResizeObserver(r);return e.current&&n.observe(e.current),e.current?.closest("[data-session-titlebar]")&&n.observe(e.current.closest("[data-session-titlebar]")),window.addEventListener("resize",r),()=>{n.disconnect(),window.removeEventListener("resize",r)}},[e,t]),(0,o.useEffect)(()=>{let t=t=>{let r=t.target;c.current?.contains(r)||e.current?.contains(r)||i()};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[e,i]),!l)return null;let p=(0,n.jsx)("div",{ref:c,"data-session-nav-system":!0,role:"dialog","aria-label":s("system.prompt"),className:"glass-panel",style:{position:"fixed",top:l.top,left:l.left,width:t,maxHeight:"min(420px, 52vh)",overflowY:"auto",zIndex:1200,padding:"12px 16px",fontSize:12,lineHeight:1.6,fontFamily:"var(--font-mono)",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",whiteSpace:"pre-wrap",color:"var(--text-muted)"},children:r?(0,n.jsx)("div",{children:r}):""===r?(0,n.jsx)("div",{style:{fontStyle:"italic"},children:s("system.empty")}):(0,n.jsx)("div",{style:{fontStyle:"italic"},children:s(a?"system.loading":"system.load")})});return(0,x.createPortal)(p,document.body)}function C({navRef:e,navWidth:t,todos:r,onClose:a}){let{t:i}=(0,u.s)(),[s,l]=(0,o.useState)(null),d=(0,o.useRef)(null);if((0,o.useEffect)(()=>{let r=()=>{let r=e.current;if(!r)return;let n=r.getBoundingClientRect(),o=r.closest("[data-session-titlebar]"),a=o?.getBoundingClientRect(),i=a?a.left:Math.min(n.right-t,Math.max(8,n.left));l({top:a?a.bottom:n.bottom,left:i})};r();let n=new ResizeObserver(r);return e.current&&n.observe(e.current),e.current?.closest("[data-session-titlebar]")&&n.observe(e.current.closest("[data-session-titlebar]")),window.addEventListener("resize",r),()=>{n.disconnect(),window.removeEventListener("resize",r)}},[e,t]),(0,o.useEffect)(()=>{let t=t=>{let r=t.target;d.current?.contains(r)||e.current?.contains(r)||a()};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[e,a]),!s)return null;let c=(0,n.jsxs)("div",{ref:d,"data-session-nav-todo":!0,role:"menu","aria-label":i("todo.title"),className:"glass-panel",style:{position:"fixed",top:s.top,left:s.left,width:t,maxHeight:"min(440px, calc(100dvh - 44px))",overflowY:"auto",zIndex:1200,fontFamily:"inherit",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"9px 12px",borderBottom:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",fontSize:12,fontWeight:650,color:"var(--text)"},children:[i("todo.title"),(0,n.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-meta)",fontWeight:500},children:[r.filter(e=>"completed"===e.status).length,"/",r.length," ",i("todo.completed")]})]}),0===r.length?(0,n.jsx)("div",{style:{padding:"12px 14px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:i("todo.empty")}):(0,n.jsx)("div",{style:{maxHeight:330,overflowY:"auto"},children:r.map(e=>{let t="completed"===e.status,r="high"===e.priority?"#ef4444":"medium"===e.priority?"rgba(234,179,8,0.9)":"var(--text-meta)";return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"7px 12px",borderBottom:"1px solid color-mix(in srgb, var(--border) 45%, transparent)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,marginTop:2,width:13,height:13,borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:800,lineHeight:1,color:t?"#fff":"transparent",background:t?"#16a34a":"color-mix(in srgb, var(--border) 70%, transparent)",border:t?"none":"1px solid color-mix(in srgb, var(--border) 80%, transparent)"},children:"✓"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,lineHeight:1.4,color:t?"var(--text-meta)":"var(--text)",textDecoration:t?"line-through":"none",wordBreak:"break-word"},children:e.content}),(0,n.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,marginTop:5,width:7,height:7,borderRadius:"50%",background:r}})]},e.id??e.content)})})]});return(0,x.createPortal)(c,document.body)}var R=r(32782),E=r(15934);let M=(0,o.memo)(function({sessionId:e,cwd:t,taskId:r,onPromote:a,onCwdChange:i}){let{t:s}=(0,u.s)(),{soundEnabled:l,onSoundToggle:d,playDoneSound:c,unlockAudio:p}=(0,R.G)(),[g,b]=(0,o.useState)(null),[m,y]=(0,o.useState)(null),[v,k]=(0,o.useState)(0),w=(0,o.useRef)(null),j=(0,o.useRef)(null),S=(0,o.useRef)(null),C=!!t,M=(0,o.useRef)(null);M.current=C&&r?{taskId:r}:null;let W=(0,o.useRef)(e),z=(0,o.useRef)(t??null);(0,o.useEffect)(()=>{t&&(z.current=t)},[t]);let N=(0,o.useRef)(C),T=(0,o.useRef)(!1),I=(0,o.useRef)(t);(0,o.useEffect)(()=>{let e=I.current;I.current=t,!e||t||N.current&&!T.current&&(N.current=!1,k(e=>e+1))},[t]);let[D,H]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=w.current?.closest("[data-board-node]"),t=e?.querySelector("[data-session-navbar-slot]")??null;H(e=>e===t?e:t)});let[$,F]=(0,o.useState)(null),[P,B]=(0,o.useState)(null),[A,O]=(0,o.useState)([]),[Y,U]=(0,o.useState)(null),[X,_]=(0,o.useState)(!1),q=(0,o.useRef)(null),K=(0,o.useRef)(0),V=(0,o.useCallback)(e=>{F(e)},[]),J=(0,o.useCallback)(()=>{S.current?.openStats()},[]),G=(0,o.useCallback)(e=>{B(e)},[]),Z=(0,o.useCallback)(e=>{O(e)},[]),Q=(0,o.useCallback)(e=>{U(e),_(!1)},[]),ee=(0,o.useCallback)(e=>{K.current+=1,q.current=e,_(!1)},[]);(0,o.useEffect)(()=>{if(C||!D||!(null===Y&&!X))return;let e=q.current;if(!e)return;let t=++K.current;_(!0),e().then(()=>{K.current===t&&_(!1)})},[D,Y,X,C]);let et=(0,o.useCallback)(e=>{e?.id&&(T.current=!0,a?.(),(0,E.PH)(e.id))},[a]),er=(0,o.useCallback)(t=>{(0,E.PK)(e,t)},[e]),en=(0,o.useCallback)(t=>{(0,E.Wd)(e,t)},[e]),eo=(0,o.useCallback)(()=>{(0,E.Ho)(e,g?.name)},[e,g?.name]),ea=(0,o.useCallback)(t=>{(0,E.sV)(e,{title:"custom"===t.method?void 0:t.title,method:t.method})},[e]);return((0,o.useEffect)(()=>{let e=w.current;if(!e)return;let t=t=>{if(t.ctrlKey||t.metaKey)return;let r=t.target;r instanceof Node&&e.contains(r)&&function(e,t){let r=e instanceof Element?e:e.parentElement;for(;r&&r instanceof HTMLElement&&r!==t;){let e=r.scrollHeight>r.clientHeight,t=r.scrollWidth>r.clientWidth;if(e||t){let n=getComputedStyle(r),o=n.overflowY,a=n.overflowX;if(e&&("auto"===o||"scroll"===o||"overlay"===o)||t&&("auto"===a||"scroll"===a||"overlay"===a))return!0}r=r.parentElement}return!1}(r,e)&&t.stopPropagation()};return e.addEventListener("wheel",t),()=>{e.removeEventListener("wheel",t)}}),(0,o.useEffect)(()=>{let e=w.current;if(!e)return;let t=e=>{let t=window.getSelection();t&&t.toString().length>0&&e.stopPropagation()};return e.addEventListener("copy",t),()=>e.removeEventListener("copy",t)}),(0,o.useEffect)(()=>{if(C)return;let t=!1,r=async()=>{let t=await fetch("/api/sessions/summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:[e]}),cache:"no-store"});if(!t.ok)throw Error(`HTTP ${t.status}`);return(await t.json()).sessions[0]??null};return N.current?(y(null),(async()=>{try{let e=await r();if(t)return;e&&b(e)}catch(e){console.warn("new session metadata load failed:",e)}})(),()=>{t=!0}):(b(null),y(null),(async()=>{try{let e=await r();if(t)return;if(!e)return void y(s("boards.sessionMissing"));b(e),k(e=>e+1)}catch(e){t||y(e instanceof Error?e.message:String(e))}})(),()=>{t=!0})},[e,s,C]),m)?(0,n.jsx)("div",{style:L,children:(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:m})}):g||C||N.current?(0,n.jsxs)("div",{ref:w,className:"board-workbench",style:L,onPointerDown:e=>{0===e.button&&e.stopPropagation()},onPointerUp:e=>{0===e.button&&e.stopPropagation()},onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[D&&g&&(0,x.createPortal)((0,n.jsx)(f,{ref:S,sessionId:g.id,stats:$,contextUsage:P,todos:A,systemPrompt:Y,systemPromptLoading:X,cwd:g.cwd,projectRoot:g.projectRoot,isWorktree:g.isWorktree,worktreeBranch:g.worktreeBranch}),D),(0,n.jsx)(h.l,{session:C||N.current?null:g,newSessionCwd:C||N.current?z.current??null:null,newSessionDraftKey:C||N.current?W.current:null,pendingNewSessionTaskRef:C||N.current?M:void 0,chatInputRef:j,inWorkbench:!0,onSessionStatsChange:V,onContextUsageChange:G,onSessionStatsPanelOpen:J,onTodosChange:Z,onOpenFile:er,onSystemPromptChange:Q,onSystemPromptLoaderChange:ee,onSessionCreated:C?e=>et(e):void 0,onSessionForked:en,onEnvWorktreeChange:i,onAgentEnd:eo,onAttentionNeeded:ea,soundEnabled:l,onSoundToggle:d,playDoneSound:c,unlockAudio:p},v)]}):(0,n.jsx)("div",{style:L,children:(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:s("boards.loadingSession")})})}),L={display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"visible",color:"var(--text)"};var W=r(64536);function z(e,t=[]){let r=(0,a.FC)(),{flowToScreenPosition:n}=(0,a.VH)(),i=(0,a.PI)(),s=(0,o.useRef)(null),l=(0,o.useRef)(""),d=(0,o.useCallback)(()=>{let e=s.current;if(!e||!r)return;let t=i.getState(),o=t.nodeLookup.get(r);if(!o)return;let a=t.transform[2],d=n({x:o.position.x,y:o.position.y}),c=window.innerWidth/a,u=window.innerHeight/a,p=`${d.x.toFixed(1)}|${d.y.toFixed(1)}|${a.toFixed(3)}|${c}|${u}`;p!==l.current&&(l.current=p,e.style.width=`${c}px`,e.style.height=`${u}px`,e.style.transform=`translate(${-d.x/a}px, ${-d.y/a}px)`)},[r,i,n]),c=(0,o.useCallback)(t=>{if(!t)return;let r=t.querySelector("[data-glass-clip]");if(r){s.current=r.querySelector("[data-glass-layer]"),d();return}let n=document.createElement("div");n.dataset.glassClip="1",n.style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:-1;";let o=document.createElement("div");o.dataset.glassLayer="1",o.style.cssText=`position:absolute;left:0;top:0;pointer-events:none;will-change:transform;background-image:linear-gradient(${e}, ${e}), var(--glass-bg-image-card, var(--glass-bg-image, none));background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;`,n.appendChild(o),t.prepend(n),s.current=o,d()},[d]);return(0,o.useEffect)(()=>{if(!r)return;let e=0,t="",n=()=>{let n=i.getState(),o=n.nodeLookup.get(r);if(!o)return;let a=n.transform[2],s=`${o.position.x.toFixed(2)}|${o.position.y.toFixed(2)}|${n.transform[0].toFixed(1)}|${n.transform[1].toFixed(1)}|${a.toFixed(4)}`;s===t||(t=s,e||(e=requestAnimationFrame(()=>{e=0,d()})))},o=i.subscribe(n);return n(),()=>{o(),e&&cancelAnimationFrame(e)}},t),{setContainer:c}}var N=r(25535);function T(e,t){return e.id===t.id&&e.type===t.type&&e.data===t.data&&e.selected===t.selected&&e.width===t.width&&e.height===t.height}function I(e){let t=(0,o.memo)(e,T);return t.displayName=`MemoBoardNode(${e.displayName??e.name??"Node"})`,t}let D={session:"\uD83D\uDCAC",task:"\uD83D\uDEA9",note:"\uD83D\uDCDD"},H={session:{waiting_model:"\uD83E\uDD14",running_tools:"\uD83D\uDE80",running_command:"\uD83D\uDE80",waiting_input:"⏳"},task:{running:"\uD83D\uDE80",review:"\uD83E\uDD14",waiting_reply:"⏳",failed:"\uD83D\uDE31"}},$=["\uD83D\uDE80","\uD83E\uDD14","\uD83D\uDCA1","\uD83C\uDFAF","\uD83D\uDD25","✨","\uD83C\uDF1F","\uD83C\uDF40","\uD83C\uDF08","\uD83C\uDFA8","\uD83D\uDCCC","\uD83D\uDDC2️","\uD83E\uDDE9","⚡","\uD83D\uDD27","\uD83E\uDDEA","\uD83D\uDC1B","\uD83E\uDD8B","\uD83D\uDC1D","\uD83E\uDD84","\uD83C\uDF55","☕","\uD83C\uDF7A","\uD83C\uDFAE","\uD83C\uDFB5","\uD83C\uDFAC","\uD83D\uDCDA","\uD83C\uDFD7️","\uD83C\uDF31","\uD83C\uDFD4️","⚓","\uD83E\uDDED","\uD83D\uDDFA️","\uD83E\uDD16","\uD83D\uDC7E","\uD83D\uDC8E","\uD83C\uDF81","\uD83C\uDFC6","\uD83E\uDD47","\uD83D\uDEE0️"];function F(e,t,r){let n=H[e];return r&&n?.[r]?n[r]:t||D[e]}var P=r(71309);let B={waiting_model:{dot:"var(--accent)",label:"thinking"},running_tools:{dot:"#f59e0b",label:"tools"},running_command:{dot:"#f59e0b",label:"command"},waiting_input:{dot:"var(--text)",label:"waiting"},idle:{dot:"var(--text-dim)",label:"idle"},"just-ended":{dot:"#10b981",label:"done"}};function A(){return(0,n.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",gap:8,padding:"4px 8px",opacity:.55},children:[(0,n.jsx)("div",{className:"board-skeleton-line",style:{width:"38%"}}),(0,n.jsx)("div",{className:"board-skeleton-line",style:{width:"72%"}}),(0,n.jsx)("div",{className:"board-skeleton-line",style:{width:"55%"}}),(0,n.jsx)("div",{className:"board-skeleton-line",style:{width:"88%"}}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("div",{className:"board-skeleton-line",style:{width:"100%",height:28,borderRadius:8}})]})}let O=I(function({id:e,data:t,selected:r,width:i,height:s}){let{getNodes:l}=(0,a.VH)(),{updateNode:d,deleteNode:u,setSnapLines:x}=(0,N.U)(),{highlightId:h}=(0,P.kz)(),g=h===e,f=i??t.w??W.ZI,b=s??t.h??W.eo,m=!!t.expanded,y=(0,o.useRef)(t);y.current=t;let{title:v,projectName:k,messageCount:w,lastActivityAt:j,stale:S,sessionId:C,lastReply:R,cwd:L,taskId:T}=t,I=(0,W.Nz)(C??null),D=I?.phase??t.phase,H=I?.runningMs??t.runningMs,$=(0,W.Uh)(C??null),O=$?.worktreeBranch??t.worktreeBranch,Y=$?.isWorktree??t.isWorktree,U=!!L,{setContainer:X}=z("var(--board-card-glass)"),_=(0,o.useRef)(null),[q,K]=(0,o.useState)(!0),V=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=_.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting??!0?(V.current&&(clearTimeout(V.current),V.current=null),K(!0)):V.current||(V.current=setTimeout(()=>{V.current=null,K(!1)},5e3))},{root:e.closest(".react-flow"),rootMargin:"400px"});return t.observe(e),()=>{t.disconnect(),V.current&&(clearTimeout(V.current),V.current=null)}},[]);let J=(0,o.useCallback)(e=>{_.current=e,X(e)},[X]),G=(0,o.useRef)(null),[Z,Q]=(0,o.useState)(!1),[ee,et]=(0,o.useState)(""),er=(0,o.useRef)(null),en=(0,o.useRef)(!1),eo=async()=>{if(en.current||(en.current=!0,!C))return;let t=ee.trim();if(Q(!1),t&&t!==v){d(e,{data:{title:t}});try{(await fetch(`/api/sessions/${encodeURIComponent(C)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok?(0,E.z6)(C,t):d(e,{data:{title:v}})}catch{d(e,{data:{title:v}})}}},ea=r=>{var n,o,a;if(r.stopPropagation(),U)return;let i=(n=t,o=f,a=b,n.expanded?{data:{expanded:!1,expandedW:o,expandedH:a,w:n.collapsedW||W.ZI,h:n.collapsedH||W.eo},w:n.collapsedW||W.ZI,h:n.collapsedH||W.eo}:{data:{expanded:!0,collapsedW:o,collapsedH:a,w:n.expandedW||840,h:n.expandedH||600},w:n.expandedW||840,h:n.expandedH||600}),s=i.data.expanded&&!t.expanded;if(d(e,{data:i.data}),d(e,{width:i.w,height:i.h,style:{width:i.w,height:i.h}}),s){let e=$?.cwd||$?.projectRoot||L||"";e&&(0,E.$T)(e)}},ei=(0,o.useRef)(!1),es=(0,o.useCallback)(()=>{ei.current=!0,x([])},[x]),el=(0,o.useCallback)((t,r)=>{if(!ei.current)return;ei.current=!1,x([]),requestAnimationFrame(()=>x([]));let n=Math.round(r.width),o=Math.round(r.height);d(e,{width:n,height:o,style:{width:n,height:o},data:{w:n,h:o},...void 0!==r.x&&void 0!==r.y?{position:{x:r.x,y:r.y}}:{}})},[e,d,x]),ed=(0,o.useCallback)((t,r)=>{if(!ei.current)return;let n=l(),o=n.find(t=>t.id===e);x(c(e,o?.position??{x:0,y:0},r.width,r.height,n).lines)},[e,x,l]),ec=(0,o.useCallback)(()=>{d(e,{data:{cwd:""}})},[e,d]),eu=B[D]??B.idle,ep=(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:6,fontSize:10,color:"var(--text-muted)",borderTop:"1px solid color-mix(in srgb, var(--border) 50%, transparent)",paddingTop:3,marginTop:2},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0},children:"\uD83D\uDD52"}),(0,n.jsx)("span",{children:function(e){if(e<=0)return"";let t=new Date(e),r=new Date;return t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate()?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):`${t.getMonth()+1}/${t.getDate()} ${t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}`}(j)}),!U&&Y&&O&&(0,n.jsxs)("span",{title:`Worktree: ${O}`,style:{display:"inline-flex",alignItems:"center",gap:3,color:"var(--text-muted)",minWidth:0,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:10,maxWidth:90},children:O})]}),(0,n.jsx)("div",{style:{flex:1}}),H>0&&"idle"!==D&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:function(e){let t=Math.max(1,Math.round(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return`${n}h${r%60}m`}(H)})]});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.PN,{isVisible:r,minWidth:m?600:W.ZI,minHeight:m?500:W.eo,onResizeStart:es,onResize:ed,onResizeEnd:el,keepAspectRatio:!1}),(0,n.jsx)(a.h7,{type:"target",position:p.yX.Left,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsx)(a.h7,{type:"source",position:p.yX.Right,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsxs)("div",{ref:J,"data-board-node":!0,"data-testid":`session-card-${C}`,onDoubleClick:ea,style:{position:"relative",width:"100%",height:"100%",borderRadius:m?18:14,border:g?"2px solid var(--accent)":`1px solid ${S?"color-mix(in srgb, var(--border) 80%, transparent)":"color-mix(in srgb, var(--border) 60%, transparent)"}`,background:"transparent",boxShadow:r?"0 0 0 5px transparent, 0 0 16px 5px color-mix(in srgb, var(--accent) 28%, transparent), 0 2px 12px -6px rgba(0,0,0,0.18)":g?P.u:"0 2px 12px -6px rgba(0,0,0,0.18)",animation:g?"board-search-glow 1.8s ease-out forwards":void 0,opacity:S?.55:1,display:"flex",flexDirection:"column",color:"var(--text)",userSelect:"none",padding:m?8:"8px 10px 6px",cursor:"grab",overflow:m?"visible":"hidden"},children:[(0,n.jsxs)("div",{"data-session-titlebar":!0,style:{flexShrink:0,display:"flex",alignItems:"center",gap:6,padding:"0 10px",height:m?"calc(36px + env(safe-area-inset-top))":void 0,minHeight:m?void 0:20,borderBottom:m?"1px solid color-mix(in srgb, var(--border) 50%, transparent)":"none",cursor:"grab",position:"relative",...m?{}:{marginBottom:2}},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:14,lineHeight:1},children:F("session",t.emoji,D)}),Z?(0,n.jsx)("input",{ref:er,value:ee,onChange:e=>et(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(en.current=!1,eo()),"Escape"===e.key&&(en.current=!0,Q(!1))},onBlur:()=>void eo(),className:"nodrag",style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,padding:"2px 6px",border:"1px solid transparent",borderRadius:5,outline:"none",background:"transparent",color:"var(--text)",boxSizing:"border-box"}}):(0,n.jsxs)("span",{style:{flex:1,display:"flex",alignItems:"center",gap:4,minWidth:0,overflow:"hidden",fontSize:12.5,fontWeight:600,color:"var(--text)",padding:"2px 6px",border:"1px solid transparent",borderRadius:5,boxSizing:"border-box"},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",background:eu.dot,flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:U?"New session":v||"Untitled"})]}),S&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:9.5,color:"var(--text-dim)",border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",borderRadius:4,padding:"0 4px"},children:"stale"}),!U&&!Z&&(0,n.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),et(v||""),Q(!0),en.current=!1,requestAnimationFrame(()=>{er.current?.focus(),er.current?.select()})},title:"Rename","aria-label":"Rename",className:"nodrag",style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),(0,n.jsx)("div",{"data-session-navbar-slot":!0,className:"nodrag",style:{display:"flex",alignItems:"center"}}),(0,n.jsx)("button",{type:"button",onClick:U?t=>{t.stopPropagation(),U&&u(e)}:ea,className:"nodrag",title:U?"Discard":m?"Collapse":"Expand",style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:U?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,n.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,n.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}):m?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M18 15l-6-6-6 6"})}):(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M6 9l6 6 6-6"})})})]}),m?(0,n.jsx)("div",{className:"nodrag",style:{flex:1,minHeight:0,padding:"0 12px 0",pointerEvents:"all",overflow:"visible",cursor:"default",userSelect:"text"},children:q||U?(0,n.jsx)(M,{sessionId:C,cwd:L,taskId:T,onPromote:ec,onCwdChange:t=>{d(e,{data:{...y.current,cwd:t}}),(0,E.$T)(t)}}):(0,n.jsx)(A,{})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{ref:G,className:"nowheel nodrag",style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",gap:2,overflowY:"auto",overflowX:"hidden",padding:"2px 12px 0",scrollbarWidth:"thin",scrollbarColor:"color-mix(in srgb, var(--border) 70%, transparent) transparent",userSelect:"text",cursor:"default"},children:R?(0,n.jsx)("div",{style:{fontSize:11.5,lineHeight:1.45,color:"var(--text-muted)",wordBreak:"break-word",overflowWrap:"anywhere",whiteSpace:"pre-wrap",maxWidth:"100%",userSelect:"text"},children:R}):(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10.5,color:"var(--text-muted)"},children:[k&&(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:1},children:k}),w>0&&(0,n.jsxs)("span",{style:{flexShrink:0,whiteSpace:"nowrap"},children:[w," msgs"]})]})}),ep]})]})]})});var Y=r(32316),U=r(13439),X=r(57575),_=r(17366);r(54420);var q=r(68090),K=r(96793);let V={"--epr-bg-color":"var(--popover-glass)","--epr-dark-bg-color":"var(--popover-glass)","--epr-text-color":"var(--text)","--epr-dark-text-color":"var(--text)","--epr-picker-border-color":"transparent","--epr-dark-picker-border-color":"transparent","--epr-picker-border-radius":"16px","--epr-hover-bg-color":"var(--side-hover)","--epr-dark-hover-bg-color":"var(--side-hover)","--epr-dark-hover-bg-color-reduced-opacity":"var(--side-hover)","--epr-focus-bg-color":"var(--side-hover)","--epr-dark-focus-bg-color":"var(--side-hover)","--epr-search-input-bg-color":"var(--side-input)","--epr-dark-search-input-bg-color":"var(--side-input)","--epr-search-input-bg-color-active":"var(--side-input)","--epr-dark-search-input-bg-color-active":"var(--side-input)","--epr-search-border-color":"var(--border)","--epr-dark-search-border-color":"var(--border)","--epr-search-input-border-radius":"8px","--epr-search-input-text-color":"var(--text)","--epr-dark-search-input-text-color":"var(--text)","--epr-search-input-placeholder-color":"var(--text-dim)","--epr-dark-search-input-placeholder-color":"var(--text-dim)","--epr-category-label-bg-color":"var(--popover-glass)","--epr-dark-category-label-bg-color":"var(--popover-glass)","--epr-category-label-text-color":"var(--text-muted)","--epr-dark-category-label-text-color":"var(--text-muted)","--epr-category-icon-active-color":"var(--accent)","--epr-dark-category-icon-active-color":"var(--accent)","--epr-emoji-size":"22px","--epr-emoji-padding":"3px","--epr-category-navigation-button-size":"26px","--epr-header-padding":"6px 8px 0","--epr-horizontal-padding":"8px","--epr-category-padding":"6px","--epr-highlight-color":"var(--accent)","--epr-dark-highlight-color":"var(--accent)"};function J({kind:e,value:t,status:r,onChange:a}){let{isDark:i}=(0,K.D)(),[s,l]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1),u=(0,o.useRef)(null),p=(0,o.useRef)(null),[h,g]=(0,o.useState)(null),f=r?H[e]?.[r]??null:null,b=F(e,t,r),m=(0,o.useCallback)(()=>{let e=u.current;if(!e)return;let t=e.getBoundingClientRect(),r=t.left;r+288>window.innerWidth-8&&(r=Math.max(8,window.innerWidth-288-8));let n=t.bottom+4;n+340>window.innerHeight-8&&(n=Math.max(8,t.top-4-340)),g({left:r,top:n}),l(!0)},[]);(0,o.useEffect)(()=>{if(!s)return;let e=e=>{p.current?.contains(e.target)||l(!1)},t=e=>{"Escape"===e.key&&l(!1)},r=e=>{!p.current?.contains(e.target)&&e.target?.nodeType===Node.ELEMENT_NODE&&e.target.closest?.(".react-flow__pane")&&l(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),document.addEventListener("wheel",r,{passive:!0}),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t),document.removeEventListener("wheel",r)}},[s]);let y=(0,o.useCallback)(e=>{a(e.emoji),l(!1)},[a]),v=(0,o.useCallback)(e=>{(e.stopPropagation(),s)?l(!1):m()},[s,m]),k=(0,o.useCallback)(e=>{e.stopPropagation()},[]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:u,type:"button",className:"nodrag",title:f?`状态跟随:${f}(点击设置 emoji)`:`选择 emoji(当前:${b})`,"aria-label":"选择 emoji",onClick:v,onDoubleClick:k,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:22,padding:0,border:"none",borderRadius:6,background:d?"var(--side-hover)":"transparent",fontSize:13,lineHeight:1,cursor:"pointer",transition:"background 0.12s"},children:b}),s&&h&&(0,x.createPortal)((0,n.jsx)("div",{ref:p,className:"nodrag",style:{position:"fixed",left:h.left,top:h.top,width:288,zIndex:300},children:(0,n.jsxs)("div",{style:{borderRadius:16,overflow:"hidden",border:"1px solid var(--border)",background:"var(--popover-glass)",backdropFilter:"blur(var(--glass-blur-popover)) saturate(var(--glass-saturate))",WebkitBackdropFilter:"blur(var(--glass-blur-popover)) saturate(var(--glass-saturate))",boxShadow:"0 18px 44px -14px rgba(0,0,0,0.42)"},children:[(0,n.jsx)(q.Ay,{theme:i?q.Sx.DARK:q.Sx.LIGHT,emojiStyle:q.Ai.NATIVE,lazyLoadEmojis:!0,skinTonesDisabled:!0,autoFocusSearch:!1,width:288,height:300,previewConfig:{showPreview:!1},onEmojiClick:y,style:V}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px 9px",borderTop:"1px solid var(--bubble-hairline)"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{let e;return a((e=$.filter(e=>e!==t))[Math.floor(Math.random()*e.length)]??"\uD83C\uDFB2")},title:"随机换一个",style:G,children:"\uD83C\uDFB2 随机"}),(0,n.jsx)("button",{type:"button",onClick:()=>{a(""),l(!1)},title:`清除,恢复默认 ${D[e]}`,style:G,children:"清除"}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",whiteSpace:"nowrap"},children:["已设置:",t||D[e]]})]})]})}),document.body)]})}let G={border:"none",background:"color-mix(in srgb, var(--border) 30%, transparent)",color:"var(--text-muted)",borderRadius:6,padding:"3px 10px",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},Z={border:"none",background:"color-mix(in srgb, var(--border) 30%, transparent)",color:"var(--text-muted)",borderRadius:5,padding:"2px 10px",fontSize:11,cursor:"pointer"};function Q({initialText:e,onDraftChange:t,onExit:r,onCancel:a,onBlurExit:i,rootRef:s}){let l=(0,o.useRef)(!1),d=(0,U.hGv)({extensions:[X.A,_.oz],content:e||"",contentType:"markdown",editorProps:{attributes:{class:"markdown-body sticky-note-editor",spellcheck:"false"}},onUpdate:({editor:e})=>{l.current||t(e.getMarkdown())},onBlur:({editor:e,event:r})=>{if(l.current)return;t(e.getMarkdown());let n=r.relatedTarget,o=s.current;o&&n instanceof Node&&o.contains(n)||i()}});(0,o.useEffect)(()=>{requestAnimationFrame(()=>{d?.commands.focus("start")})},[d]);let c=(0,o.useCallback)(()=>{l.current=!0,requestAnimationFrame(()=>{a()})},[a]),u=(0,o.useCallback)(e=>{e.stopPropagation(),"Enter"===e.key&&(e.ctrlKey||e.metaKey)?(e.preventDefault(),d&&t(d.getMarkdown()),r()):"Escape"===e.key&&(e.preventDefault(),c())},[d,t,r,c]);return(0,n.jsx)("div",{className:"nodrag nowheel sticky-note-edit-wrap","data-testid":"sticky-note-editor",onKeyDown:u,style:{flex:1,minHeight:0,overflowY:"auto",userSelect:"text",padding:"var(--bubble-pad-y, 8px) var(--bubble-pad-x, 12px)"},children:(0,n.jsx)(U.$Z$,{editor:d})})}let ee=I(function({id:e,data:t,selected:r,width:i,height:s}){let l,d,{getNodes:u}=(0,a.VH)(),{updateNode:x,deleteNode:h,setSnapLines:g}=(0,N.U)(),{highlightId:f}=(0,P.kz)(),b=f===e,m=t.text??"",{setContainer:y}=z("var(--assistant-card-glass)"),[v,k]=(0,o.useState)(!1),w=(0,o.useRef)(null),j=(0,o.useRef)(null),S=(0,o.useRef)(m),[C]=(0,o.useState)(()=>t.createdAt??Date.now()),[R,E]=(0,o.useState)(!1),M=(0,o.useRef)(null);(0,o.useEffect)(()=>{v&&(S.current=m)},[v,m]);let L=(0,o.useCallback)(e=>{S.current=e},[]),W=(0,o.useCallback)(()=>{let t=S.current;t!==m&&x(e,{data:{text:t}})},[m,x,e]),T=(0,o.useCallback)(()=>{W(),k(!1)},[W]),I=(0,o.useCallback)(()=>{S.current=m,k(!1)},[m]),D=(0,o.useCallback)(()=>{W(),k(!1)},[W]),H=(0,o.useCallback)(e=>{e.stopPropagation();let t=w.current?.querySelector(".markdown-body")?.innerText??m;navigator.clipboard.writeText(t).then(()=>{E(!0),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>E(!1),1200)}).catch(()=>{})},[m]);(0,o.useEffect)(()=>()=>{M.current&&clearTimeout(M.current)},[]);let $={position:"relative",width:"100%",height:"100%",borderRadius:"var(--bubble-radius, 12px)",border:b?"2px solid var(--accent)":"1px solid var(--bubble-border)",background:"transparent",boxShadow:b?P.u:r?"0 2px 10px -6px rgba(0,0,0,0.2), 0 0 0 5px transparent, 0 0 16px 5px color-mix(in srgb, var(--accent) 28%, transparent)":"0 2px 10px -6px rgba(0,0,0,0.2)",animation:b?"board-search-glow 1.8s ease-out forwards":void 0,color:"var(--text)",display:"flex",flexDirection:"column",overflow:"hidden",fontSize:13,lineHeight:1.5,userSelect:"none",cursor:"default",padding:6},F=(0,o.useCallback)(e=>{0===e.button&&e.stopPropagation()},[]),B=(0,o.useRef)(!1),A=(0,o.useCallback)(()=>{B.current=!0,g([])},[g]),O=(0,o.useCallback)((t,r)=>{if(!B.current)return;B.current=!1,g([]),requestAnimationFrame(()=>g([]));let n=Math.round(r.width),o=Math.round(r.height);x(e,{width:n,height:o,style:{width:n,height:o},data:{w:n,h:o},...void 0!==r.x&&void 0!==r.y?{position:{x:r.x,y:r.y}}:{}})},[e,x,g]),U=(0,o.useCallback)((t,r)=>{if(!B.current)return;let n=u(),o=n.find(t=>t.id===e);g(c(e,o?.position??{x:0,y:0},r.width,r.height,n).lines)},[e,g,u]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.PN,{isVisible:r,minWidth:120,minHeight:60,onResizeStart:A,onResize:U,onResizeEnd:O,keepAspectRatio:!1}),(0,n.jsx)(a.h7,{type:"target",position:p.yX.Left,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsx)(a.h7,{type:"source",position:p.yX.Right,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsxs)("div",{ref:e=>{y(e),j.current=e},"data-board-node":!0,"data-testid":`sticky-note-${e}`,style:$,className:"nowheel",onDoubleClick:e=>{e.stopPropagation(),k(!0)},children:[(0,n.jsxs)("div",{className:v?"nodrag":"",style:{flexShrink:0,height:32,display:"flex",alignItems:"center",gap:6,padding:"0 var(--bubble-pad-x, 12px)",fontSize:10,color:"var(--text-muted)",cursor:v?"default":"grab",boxSizing:"border-box"},children:[(0,n.jsx)(J,{kind:"note",value:t.emoji,onChange:t=>x(e,{data:{emoji:t}})}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-muted)"},children:"便笺"}),v?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"nodrag",onClick:I,style:Z,title:"放弃变更 (Esc)",children:"取消"}),(0,n.jsx)("button",{type:"button",className:"nodrag",onClick:T,style:Z,title:"完成 (Ctrl+Enter)",children:"完成"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("span",{className:"nodrag",style:{fontFamily:"var(--font-mono)",whiteSpace:"nowrap",userSelect:"text",cursor:"text"},children:(l=new Date(C),d=new Date,l.getFullYear()===d.getFullYear()&&l.getMonth()===d.getMonth()&&l.getDate()===d.getDate()?l.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):`${l.getMonth()+1}/${l.getDate()}`)}),(0,n.jsx)("button",{type:"button",title:R?"已复制":"复制内容",onClick:H,className:"nodrag",style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:22,height:20,padding:0,border:"none",borderRadius:5,background:"transparent",color:R?"var(--accent)":"var(--text-muted)",cursor:"pointer"},children:R?(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M20 6L9 17l-5-5"})}):(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})]})]}),v?(0,n.jsx)(Q,{initialText:m,onDraftChange:L,onExit:T,onCancel:I,onBlurExit:D,rootRef:j},`${e}-edit`):(0,n.jsx)("div",{ref:w,className:"nowheel nodrag",style:{flex:1,minHeight:0,overflowY:"auto",padding:"4px var(--bubble-pad-x, 12px) var(--bubble-pad-y, 8px)",textAlign:"left",cursor:"text",userSelect:"text"},onPointerDown:F,onPointerUp:F,onDoubleClick:e=>{e.stopPropagation(),k(!0)},children:m.trim()?(0,n.jsx)("div",{className:"markdown-body",style:{wordBreak:"break-word"},children:(0,n.jsx)(Y.oz,{children:m})}):(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12,cursor:"text"},children:"双击编辑"})})]})]})});var et=r(43561);function er(e,t){return(e??[]).filter(e=>e.kind===t).map(e=>e.targetCardId)}var en=r(20985);function eo({value:e,options:t,onChange:r,width:a="100%"}){let[i,s]=(0,o.useState)(!1),[l,d]=(0,o.useState)(!1),c=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!i)return;let e=e=>{c.current&&!c.current.contains(e.target)&&s(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]);let u=t.find(t=>t.value===e);return(0,n.jsxs)("div",{ref:c,style:{position:"relative",width:a},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>s(e=>!e),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{width:"100%",height:28,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:i?"var(--side-active)":l?"var(--side-hover)":"transparent",border:"1px solid var(--border)",borderRadius:5,cursor:"pointer",fontSize:11,color:"var(--text)",textAlign:"left",transition:"background 0.12s"},children:[(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u?.label??""}),(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),i&&(0,n.jsx)(en.f,{open:!0,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:120,minWidth:120,maxHeight:200,overflowY:"auto",background:"var(--popover-glass)",border:"1px solid var(--border)",borderRadius:6,boxShadow:"0 6px 20px -6px rgba(0,0,0,0.35)",padding:4},children:t.map(t=>(0,n.jsx)("button",{type:"button",onClick:()=>{r(t.value),s(!1)},style:{display:"block",width:"100%",boxSizing:"border-box",padding:"5px 8px",border:"none",borderRadius:4,background:t.value===e?"var(--side-active)":"transparent",color:"var(--text)",fontSize:11,textAlign:"left",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--side-hover)"},onMouseLeave:r=>{r.currentTarget.style.background=t.value===e?"var(--side-active)":"transparent"},children:t.label},t.value))})]})}function ea({candidates:e,selected:t,onChange:r,placeholder:a="选择任务卡…",excludeId:i,width:s="100%"}){let[l,d]=(0,o.useState)(!1),[c,u]=(0,o.useState)(!1),p=(0,o.useRef)(null),x=e.filter(e=>e.id!==i),h=new Set(t);(0,o.useEffect)(()=>{if(!l)return;let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)},t=e=>{"Escape"===e.key&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[l]);let g=x.filter(e=>h.has(e.id)),f=g.length>3?g.length-3:0,b=g.slice(0,3);return(0,n.jsxs)("div",{ref:p,style:{position:"relative",width:s},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>d(e=>!e),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),style:{width:"100%",height:28,boxSizing:"border-box",display:"flex",alignItems:"center",gap:4,padding:"0 6px",background:l?"var(--side-active)":c?"var(--side-hover)":"transparent",border:"1px solid var(--border)",borderRadius:5,cursor:"pointer",fontSize:11,color:"var(--text)",textAlign:"left",transition:"background 0.12s"},children:[b.length>0?(0,n.jsxs)(n.Fragment,{children:[b.map(e=>(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:3,padding:"1px 5px",borderRadius:999,background:"var(--side-selected)",color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:10},children:["#",e.number]},e.id)),f>0&&(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)",fontSize:10},children:["+",f]})]}):(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)"},children:a}),(0,n.jsx)("span",{style:{flex:1}}),(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),l&&(0,n.jsx)(en.f,{open:!0,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:120,minWidth:160,maxHeight:180,overflowY:"auto",background:"var(--popover-glass)",border:"1px solid var(--border)",borderRadius:6,boxShadow:"0 6px 20px -6px rgba(0,0,0,0.35)",padding:4},children:0===x.length?(0,n.jsx)("div",{style:{padding:"8px",color:"var(--text-dim)",fontSize:11},children:"本看板无其他任务卡"}):x.map(e=>{let o=h.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:n=>{var o;n.stopPropagation(),o=e.id,r(h.has(o)?t.filter(e=>e!==o):[...t,o])},style:{display:"flex",alignItems:"center",gap:7,width:"100%",boxSizing:"border-box",padding:"5px 8px",border:"none",borderRadius:4,background:o?"var(--side-selected)":"transparent",color:"var(--text)",fontSize:11,textAlign:"left",cursor:"pointer"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--side-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=o?"var(--side-selected)":"transparent"},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,width:12,height:12,borderRadius:3,border:"1px solid var(--border)",background:o?"var(--accent)":"transparent",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"var(--accent-contrast, #fff)"},children:o&&(0,n.jsx)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"1.5 5 3.5 7 8.5 2"})})}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text-muted)",flexShrink:0},children:["#",e.number]}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.id)})})]})}var ei=r(29608);function es({cwd:e,value:t,onChange:r}){let[a,i]=(0,o.useState)(null),[s,l]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1),[u,p]=(0,o.useState)(""),[x,h]=(0,o.useState)(!1),[g,f]=(0,o.useState)(null),b=(0,o.useRef)(null),m=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!e)return void i(null);let t=!1;return(async()=>{try{let r=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();if(t)return;i({forCwd:e,projectRoot:n.projectRoot??e,isGit:n.isGit??!1,currentWorktreePath:n.currentWorktreePath??null,worktrees:(n.worktrees??[]).map(e=>({path:e.path,branch:e.branch??null,isMain:!!e.isMain}))})}catch{t||i(null)}})(),()=>{t=!0}},[e]);let y=a?.worktrees.find(e=>e.path===t)??a?.worktrees.find(t=>t.path===e)??(a?.currentWorktreePath?a.worktrees.find(e=>e.path===a.currentWorktreePath):void 0)??a?.worktrees.find(e=>e.isMain)??null,v=async()=>{let e=u.trim();if(e&&!x&&a){h(!0),f(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a.projectRoot,branch:e})}),n=await t.json().catch(()=>({}));if(!t.ok||!n.path){f(n.error??"创建失败"),h(!1);return}p(""),c(!1),l(!1),r(n.path)}catch(e){f(e instanceof Error?e.message:String(e))}h(!1)}};(0,o.useEffect)(()=>{if(!s)return;let e=e=>{b.current&&!b.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[s]);let k=y?y.isMain?`主 checkout(${y.branch??""})`:y.branch??y.path:a?.isGit?"选择工作区…":"非 git 项目";return(0,n.jsxs)("div",{ref:b,style:{position:"relative"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{l(e=>!e),f(null)},style:{width:"100%",height:28,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:s?"var(--side-active)":"transparent",border:"1px solid var(--border)",borderRadius:5,cursor:"pointer",fontSize:11,color:"var(--text)",textAlign:"left",fontFamily:"var(--font-mono)"},title:y?.path??void 0,children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:y&&!y.isMain?"var(--accent)":"var(--text-dim)"},children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k}),(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),(0,n.jsxs)(en.f,{open:s,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:120,minWidth:200,background:"var(--popover-glass)",border:"1px solid var(--border)",borderRadius:6,boxShadow:"0 6px 20px -6px rgba(0,0,0,0.35)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{maxHeight:"min(40vh, 260px)",overflowY:"auto",padding:4},children:0===(a?.worktrees??[]).length?(0,n.jsx)("div",{style:{padding:"8px 10px",fontSize:11,color:"var(--text-dim)"},children:a?.isGit===!1?"非 git 项目,无法创建工作区":"暂无工作区"}):(a?.worktrees??[]).map(e=>{let o=e.path===(y?.path??t);return(0,n.jsxs)("button",{type:"button",onClick:()=>{r(e.path),l(!1),f(null)},title:e.path,style:{display:"block",width:"100%",boxSizing:"border-box",padding:"6px 8px",border:"none",borderRadius:4,background:o?"var(--side-active)":"transparent",color:"var(--text)",fontSize:11,textAlign:"left",cursor:"pointer",fontFamily:"var(--font-mono)"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--side-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="transparent")},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.isMain?`主 checkout(${e.branch??""})`:e.branch??e.path}),(0,n.jsx)("span",{style:{display:"block",fontSize:9.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.path})]},e.path)})}),d?(0,n.jsxs)("div",{style:{padding:"6px 8px",borderTop:"1px solid var(--bubble-hairline)"},children:[(0,n.jsx)("input",{ref:m,value:u,onChange:e=>{p(e.target.value),f(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),v()),"Escape"===e.key&&(c(!1),p(""),f(null))},placeholder:"新分支名",style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--side-input)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void v(),disabled:x||!u.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-contrast, #fff)",fontSize:11,fontWeight:600,cursor:x||!u.trim()?"not-allowed":"pointer",opacity:x||!u.trim()?.65:1},children:x?"创建中…":"创建"}),(0,n.jsx)("button",{type:"button",onClick:()=>{c(!1),p(""),f(null)},style:{flex:1,padding:"4px 0",background:"transparent",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:"取消"})]})]}):(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),c(!0),f(null),setTimeout(()=>m.current?.focus(),0)},style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"7px 10px",background:"none",border:"none",borderTop:"1px solid var(--bubble-hairline)",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.1",strokeLinecap:"round",style:{flexShrink:0},children:[(0,n.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),(0,n.jsx)("span",{children:"新建工作区"})]}),g&&(0,n.jsx)("div",{style:{padding:"5px 10px 8px",color:"#dc2626",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:g})]})]})}var el=r(13405),ed=r(56314);let ec={not_started:{color:"#9ca3af",label:"未开始"},running:{color:"#10b981",label:"进行中"},review:{color:"#f59e0b",label:"待审核"},done:{color:"#10b981",label:"完成"},failed:{color:"#ef4444",label:"失败"},abandoned:{color:"#9ca3af",label:"放弃"},waiting_reply:{color:"#3184f8",label:"等回复"}},eu={width:"100%",boxSizing:"border-box",border:"1px solid var(--border)",borderRadius:6,background:"transparent",color:"var(--text)",fontSize:12,padding:"4px 8px",outline:"none"},ep={display:"block",fontSize:10,color:"var(--text)",fontWeight:600,margin:"8px 0 3px"},ex={border:"none",background:"color-mix(in srgb, var(--border) 30%, transparent)",color:"var(--text-muted)",borderRadius:5,padding:"2px 10px",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"};function eh({title:e,open:t,onToggle:r,children:o}){return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{type:"button",onClick:r,style:{display:"flex",alignItems:"center",gap:4,width:"100%",marginTop:10,padding:"5px 0 3px",border:"none",borderTop:"1px solid var(--bubble-hairline)",background:"transparent",color:"var(--text-muted)",fontSize:11,fontWeight:600,cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:t?"rotate(90deg)":"none",transition:"transform 0.12s"},children:(0,n.jsx)("polyline",{points:"3 2 6.5 5 3 8"})}),e]}),t&&(0,n.jsx)("div",{children:o})]})}function eg({due:e,onChange:t}){let r=new Date,o=e?new Date(e):r,[a,i,s]=[o.getFullYear(),o.getMonth()+1,o.getDate()],l=[];for(let e=r.getFullYear()-2;e<=r.getFullYear()+3;e++)l.push(String(e));let d=Array.from({length:12},(e,t)=>String(t+1)),c=new Date(a,i,0).getDate(),u=Array.from({length:c},(e,t)=>String(t+1)),p=(e,r,n)=>{let o=new Date(e,r-1,n,0,0,0,0).getTime();t(Number.isNaN(o)?null:o)};return(0,n.jsxs)("div",{style:{display:"flex",gap:4},children:[(0,n.jsx)("div",{style:{flex:1.4,minWidth:0},children:(0,n.jsx)(eo,{value:String(a),options:l.map(e=>({value:e,label:e})),onChange:e=>p(Number(e),i,Math.min(s,c))})}),(0,n.jsx)("div",{style:{flex:1,minWidth:0},children:(0,n.jsx)(eo,{value:String(i),options:d.map(e=>({value:e,label:`${e}月`})),onChange:e=>p(a,Number(e),Math.min(s,new Date(a,Number(e),0).getDate()))})}),(0,n.jsx)("div",{style:{flex:1,minWidth:0},children:(0,n.jsx)(eo,{value:String(s),options:u.map(e=>({value:e,label:e})),onChange:e=>p(a,i,Number(e))})})]})}function ef({value:e,onChange:t,placeholder:r}){let a=(0,U.hGv)({extensions:[X.A,_.oz,et.O.configure({placeholder:r})],content:e||"",contentType:"markdown",editorProps:{attributes:{class:"markdown-body task-card-md-field",spellcheck:"false"}},onUpdate:({editor:e})=>{t(e.getMarkdown())}});(0,o.useEffect)(()=>{a&&a.getMarkdown()!==e&&a.commands.setContent(e||"",{contentType:"markdown"})},[a,e]);let i=(0,o.useCallback)(e=>{!a||a.view.dom.contains(e.target)||a.commands.focus("end")},[a]);return(0,n.jsx)("div",{className:"nodrag nowheel task-card-md-wrap",style:{...eu,flex:1,minHeight:70,overflowY:"auto",cursor:"text",padding:0,userSelect:"text"},onMouseDown:i,children:(0,n.jsx)(U.$Z$,{editor:a})})}let eb={feat:{label:"feat",content:"## 需求\n\n\n## 背景\n\n\n## 约束\n\n\n## 验收标准\n\n"},bug:{label:"bug",content:"## 问题说明\n\n\n## 最小复现步骤\n\n\n## 是否只报告原因不执行修复\n\n"},design:{label:"design",content:"## 需求\n\n\n## 约束\n\n"}};function em({onSelect:e}){let[t,r]=(0,o.useState)(!1),a=(0,o.useRef)(null);return(0,o.useEffect)(()=>{if(!t)return;let e=e=>{a.current&&!a.current.contains(e.target)&&r(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[t]),(0,n.jsxs)("div",{ref:a,style:{position:"relative"},children:[(0,n.jsxs)("span",{onClick:()=>r(e=>!e),style:{fontSize:10,color:"var(--text-muted)",cursor:"pointer",userSelect:"none",display:"inline-flex",alignItems:"center",gap:2},children:["模板",(0,n.jsx)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),t&&(0,n.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:120,minWidth:90,background:"var(--popover-glass)",border:"1px solid var(--border)",borderRadius:6,boxShadow:"0 6px 20px -6px rgba(0,0,0,0.35)",padding:4},children:Object.entries(eb).map(([t,{label:o,content:a}])=>(0,n.jsx)("button",{type:"button",onClick:()=>{e(a),r(!1)},style:{display:"block",width:"100%",boxSizing:"border-box",padding:"5px 8px",border:"none",borderRadius:4,background:"transparent",color:"var(--text)",fontSize:11,textAlign:"left",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--side-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:o},t))})]})}let ey=I(function({id:e,data:t,selected:r,width:i,height:s}){let{getNodes:l}=(0,a.VH)(),{updateNode:d,updateNodeDebounced:u,deleteNode:x,normalizeNodeId:h,setSnapLines:g}=(0,N.U)(),f=i??t.w??380,b=s??t.h??270,m=!!t.expanded,{cardId:y}=t,v=(0,ed.Lv)(),k=(0,ed.ZY)(),{detail:w,candidates:j,loading:S,error:C,reload:R,createCard:M,saveCard:L}=function(e,t){let[r,n]=(0,o.useState)(null),[a,i]=(0,o.useState)([]),[s,l]=(0,o.useState)(!1),[d,c]=(0,o.useState)(null);(0,o.useRef)(null).current=r;let u=(0,o.useCallback)(async(t=!1)=>{if(!e)return void n(null);t||l(!0);try{let t=await fetch(`/api/task-cards/${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok){if(404===t.status)return void n(null);throw Error(`HTTP ${t.status}`)}let r=await t.json();n(r)}catch(e){t||c(e instanceof Error?e.message:String(e))}finally{t||l(!1)}},[e]),p=(0,o.useCallback)(()=>u(!1),[u]);(0,o.useEffect)(()=>{p()},[p]),(0,o.useEffect)(()=>{if(!t)return;let e=!1;return(async()=>{try{let r=await fetch(`/api/task-cards?boardId=${encodeURIComponent(t)}`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();e||i(n.cards)}catch{}})(),()=>{e=!0}},[t]);let x=(0,o.useCallback)(async e=>{try{let t=await fetch("/api/task-cards",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let r=await t.json();return(0,E.RF)(),r.card}catch(e){return c(e instanceof Error?e.message:String(e)),null}},[]),h=(0,o.useCallback)(async t=>{if(!e)return!1;try{let r=await fetch(`/api/task-cards/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??`HTTP ${r.status}`)}return await r.json(),(0,E.RF)(),await p(),!0}catch(e){return c(e instanceof Error?e.message:String(e)),!1}},[e,p]);return{detail:r,candidates:a,loading:s,error:d,reload:p,createCard:x,saveCard:h}}(y||null,v),{setContainer:T}=z("var(--assistant-card-glass)"),I=!y;w?.card.sessionId;let{register:D,unregister:H}=(0,W.VX)();(0,o.useEffect)(()=>{if(y)return D(y),()=>H(y)},[y,D,H]);let $=(0,W.rD)(y),F=$?.execStatus??"not_started";(0,o.useEffect)(()=>{m&&!I&&R()},[m,I,R]);let[P,B]=(0,o.useState)(()=>I?{id:"",boardId:"",projectKey:"",number:0,name:"新建任务"===t.name?"":t.name,description:t.description??"",readyStatus:"draft",execStatus:"not_started",priority:0,due:null,attachments:[],cwd:k,useWorktree:!1,maxRetries:3,retryCount:0,sessionId:null,dispatchToken:null,owner:null,heartbeat:0,created:0,updated:0}:null);(0,o.useEffect)(()=>{!I&&w?.card&&!P&&B({...w.card})},[I,w,P]);let[A,O]=(0,o.useState)([]),[Y,U]=(0,o.useState)([]),X=(0,o.useRef)(!1);(0,o.useEffect)(()=>{w&&!X.current&&(X.current=!0,O(er(w.links,"prerequisite")),U(er(w.links,"related")))},[w]);let[_,q]=(0,o.useState)(!1),K=(0,o.useRef)(!1),[V,G]=(0,o.useState)(null),[Z,Q]=(0,o.useState)(null),[ee,et]=(0,o.useState)(!1);(0,o.useEffect)(()=>{et(m)},[m]);let[en,eb]=(0,o.useState)(!1),[ey,ev]=(0,o.useState)(null),ek=(0,o.useRef)(null),ew=(t,r)=>{B(n=>{let o=n?{...n,[t]:r}:n;return o&&("name"===t||"description"===t)&&u(e,{data:{name:"name"===t?r:o.name,description:"description"===t?r:o.description??""}}),o})},ej=async()=>{if(!v)return void G("缺少看板上下文,无法创建");if(!P?.name.trim())return void Q("请填写任务名称");if(K.current)return;q(!0),K.current=!0,G(null);let t=await M({boardId:v,name:P.name,description:P.description,readyStatus:"todo",priority:P.priority,due:P.due??null,cwd:P.cwd??void 0,useWorktree:P.useWorktree,maxRetries:P.maxRetries,attachments:P.attachments,prerequisites:A,related:Y});if(K.current=!1,q(!1),t){let r=`task-${t.id}`;h(e,r),d(r,{data:{cardId:t.id,number:t.number,name:t.name,readyStatus:t.readyStatus,priority:t.priority,due:t.due??void 0}}),B(e=>e?{...e,...t,sessionId:t.sessionId}:e),R()}},eS=async()=>{if(!P?.name.trim())return void Q("请填写任务名称");if(K.current)return;q(!0),K.current=!0,G(null);let t=await L({name:P.name,description:P.description,readyStatus:P.readyStatus,priority:P.priority,due:P.due??null,attachments:P.attachments,cwd:P.cwd??null,useWorktree:P.useWorktree,maxRetries:P.maxRetries,prerequisites:A,related:Y});K.current=!1,q(!1),t?d(e,{data:{name:P.name,description:P.description??"",readyStatus:P.readyStatus,priority:P.priority,due:P.due??void 0}}):G(C??"保存失败")},eC=(0,o.useMemo)(()=>{if(I||!w?.card||!P)return!1;let e=w.card;return P.name!==e.name||P.description!==e.description||P.priority!==e.priority||P.due!==e.due||P.cwd!==e.cwd||P.useWorktree!==e.useWorktree||P.maxRetries!==e.maxRetries||JSON.stringify(P.attachments??[])!==JSON.stringify(e.attachments??[])||JSON.stringify([...A].sort())!==JSON.stringify(er(w.links,"prerequisite").sort())||JSON.stringify([...Y].sort())!==JSON.stringify(er(w.links,"related").sort())},[I,w,P,A,Y]),eR=(0,o.useRef)(r),eE=(0,o.useRef)(eC);eE.current=eC,(0,o.useEffect)(()=>{let e=eR.current;eR.current=r,e&&!r&&!I&&eE.current&&eS()},[r,I]);let eM=(0,o.useCallback)(r=>{if(r.stopPropagation(),m){let r=t.collapsedW>=380&&t.collapsedH>=240,n=r?t.collapsedW:380,o=r?t.collapsedH:270;d(e,{data:{expanded:!1,expandedW:f,expandedH:b,w:n,h:o},width:n,height:o,style:{width:n,height:o}})}else{let r=t.expandedW>=480&&t.expandedH>=400,n=r?t.expandedW:760,o=r?t.expandedH:620;d(e,{data:{expanded:!0,collapsedW:f,collapsedH:b,w:n,h:o},width:n,height:o,style:{width:n,height:o}})}},[e,t,m,f,b,d]),eL=(0,o.useRef)(!1),eW=(0,o.useCallback)(()=>{eL.current=!0,g([])},[g]),ez=(0,o.useCallback)((t,r)=>{if(!eL.current)return;eL.current=!1,g([]),requestAnimationFrame(()=>g([]));let n=Math.round(r.width),o=Math.round(r.height);d(e,{width:n,height:o,style:{width:n,height:o},data:{w:n,h:o},...void 0!==r.x&&void 0!==r.y?{position:{x:r.x,y:r.y}}:{}})},[e,d,g]),eN=(0,o.useCallback)((t,r)=>{if(!eL.current)return;let n=l(),o=n.find(t=>t.id===e);g(c(e,o?.position??{x:0,y:0},r.width,r.height,n).lines)},[e,g,l]),eT=P?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",margin:"8px 0 3px"},children:[(0,n.jsx)("label",{style:{...ep,margin:0},children:"任务名称 *"}),P.cwd&&(0,n.jsx)(el.J,{cwd:P.cwd,onSelect:e=>{ew("cwd",e),ev(e),(0,E.$T)(e)},showMainLabel:!1,compact:!0,style:{height:"auto",background:"transparent",flexShrink:0,borderRadius:0}})]}),(0,n.jsx)("input",{style:{...eu,...Z?{borderColor:"#f87171",boxShadow:"0 0 0 1px #f87171"}:{}},value:P.name,onChange:e=>{ew("name",e.target.value),Z&&Q(null)},placeholder:"任务名称"}),Z&&(0,n.jsx)("div",{style:{color:"#f87171",fontSize:11,marginTop:3},children:Z}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",margin:"8px 0 3px"},children:[(0,n.jsx)("label",{style:{...ep,margin:0},children:"需求说明"}),(0,n.jsx)(em,{onSelect:e=>ew("description",(P?.description??"")+(P?.description?"\n\n":"")+e)})]}),(0,n.jsx)(ef,{value:P.description,onChange:e=>ew("description",e),placeholder:"任务描述"}),(0,n.jsxs)(eh,{title:"高级",open:ee,onToggle:()=>et(e=>!e),children:[(0,n.jsx)("label",{style:ep,children:"工作目录"}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("input",{style:{...eu,flex:1},value:P.cwd??"",onChange:e=>ew("cwd",e.target.value||null),placeholder:"默认项目根目录",readOnly:!0}),(0,n.jsx)("button",{type:"button",style:ex,onClick:()=>eb(!0),children:"选择目录"})]}),en&&P&&(0,n.jsx)(ei.K,{onCancel:()=>eb(!1),onSelect:e=>{ew("cwd",e),eb(!1)}}),(0,n.jsx)("label",{style:ep,children:"工作区"}),(0,n.jsx)(es,{cwd:P.cwd,value:ey,onChange:e=>{ev(e),ew("cwd",e)}}),(0,n.jsx)("label",{style:ep,children:"预计截止"}),(0,n.jsx)(eg,{due:P.due??null,onChange:e=>ew("due",e)}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsxs)("div",{style:{flex:1},children:[(0,n.jsx)("label",{style:ep,children:"优先级"}),(0,n.jsx)(eo,{value:String(P.priority),onChange:e=>ew("priority",Number(e)),options:[{value:"1",label:"高"},{value:"0",label:"中"},{value:"-1",label:"低"}]})]}),(0,n.jsxs)("div",{style:{flex:1},children:[(0,n.jsx)("label",{style:ep,children:"最大重试次数"}),(0,n.jsx)("input",{style:eu,type:"number",min:0,value:P.maxRetries,onChange:e=>ew("maxRetries",Math.max(0,Number(e.target.value)||0))})]})]}),(0,n.jsx)("label",{style:ep,children:"前置任务(可多选)"}),(0,n.jsx)(ea,{candidates:j,selected:A,onChange:O,excludeId:y,placeholder:"本看板内选择前置任务…"}),(0,n.jsx)("label",{style:ep,children:"关联任务(可多选)"}),(0,n.jsx)(ea,{candidates:j,selected:Y,onChange:U,excludeId:y,placeholder:"本看板内选择关联任务…"}),(0,n.jsx)("label",{style:ep,children:"附件(引用文件路径,每行一个)"}),(0,n.jsx)("textarea",{style:{...eu,minHeight:46,resize:"vertical",fontFamily:"var(--font-mono)",fontSize:11},value:(P.attachments??[]).join("\n"),onChange:e=>ew("attachments",e.target.value.split("\n").map(e=>e.trim()).filter(Boolean)),placeholder:"/path/to/file",spellCheck:!1})]}),(V||C)&&(0,n.jsx)("div",{style:{color:"#f87171",fontSize:11,marginTop:6},children:V??C})]}):S?(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12,padding:20,textAlign:"center"},children:"加载中…"}):(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12,padding:20,textAlign:"center"},children:"未找到任务卡"});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.PN,{isVisible:r,minWidth:m?480:380,minHeight:m?400:240,onResizeStart:eW,onResize:eN,onResizeEnd:ez,keepAspectRatio:!1}),(0,n.jsx)(a.h7,{type:"target",position:p.yX.Left,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsx)(a.h7,{type:"source",position:p.yX.Right,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsxs)("div",{ref:e=>{ek.current=e,T(e)},"data-board-node":!0,"data-testid":`task-card-${e}`,onDoubleClick:eM,style:{position:"relative",width:"100%",height:"100%",borderRadius:"var(--bubble-radius, 12px)",border:"1px solid var(--bubble-border)",background:"transparent",boxShadow:r?"0 2px 10px -6px rgba(0,0,0,0.2), 0 0 0 5px transparent, 0 0 16px 5px color-mix(in srgb, var(--accent) 28%, transparent)":"0 2px 10px -6px rgba(0,0,0,0.2)",color:"var(--text)",display:"flex",flexDirection:"column",overflow:"hidden",userSelect:"none",cursor:"grab",padding:6},children:[(0,n.jsxs)("div",{style:{flexShrink:0,height:36,display:"flex",alignItems:"center",gap:6,padding:"0 10px",borderBottom:"1px solid var(--bubble-hairline)",cursor:"grab",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(J,{kind:"task",value:t.emoji,status:F,onChange:t=>d(e,{data:{emoji:t}})}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,fontWeight:600,color:"var(--text)"},children:P?.name||(I?"新建任务卡":"任务卡")}),P?.number?(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:12.5,fontWeight:600,color:"var(--text)",marginLeft:4},children:["#",P.number]}):null,(0,n.jsxs)("div",{className:"nodrag",style:{display:"flex",alignItems:"center",gap:6,flexShrink:0},onPointerDown:e=>e.stopPropagation(),children:[I?(0,n.jsx)("button",{type:"button",style:ex,disabled:_||!v,onClick:()=>void ej(),title:"创建任务并派发(转待办,调度器可执行)",children:_?"创建中…":"派发"}):P?.readyStatus==="draft"?(0,n.jsx)("button",{type:"button",style:ex,disabled:_,onClick:()=>{ew("readyStatus","todo"),!I&&y&&L({readyStatus:"todo"})},title:"派发(转待办,调度器可执行)",children:_?"派发中…":"派发"}):P?.readyStatus==="todo"?(0,n.jsxs)("span",{title:`执行状态:${(ec[F]??ec.not_started).label}`,style:{display:"flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:(ec[F]??ec.not_started).color,whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",background:(ec[F]??ec.not_started).color,..."running"===F?{animation:"pulse-dot 1.6s ease-in-out infinite"}:{}}}),(ec[F]??ec.not_started).label]}):null,I?null:eC?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",style:ex,onClick:()=>{w&&(B({...w.card}),O(er(w.links,"prerequisite")),U(er(w.links,"related")),ev(null),G(null),Q(null))},title:"撤销本次编辑",children:"取消"}),(0,n.jsx)("button",{type:"button",style:ex,disabled:_,onClick:()=>void eS(),title:"完成(保存)",children:_?"保存中…":"完成"})]}):null]})]}),(0,n.jsx)("div",{onDoubleClick:e=>e.stopPropagation(),style:{flex:1,minHeight:0,display:"flex"},children:(0,n.jsx)("div",{className:"[scrollbar-width:none] nodrag nowheel",style:{flex:"1 1 auto",minWidth:0,overflowY:"auto",padding:"10px 12px",display:"flex",flexDirection:"column",cursor:"default",userSelect:"text"},children:eT})})]})]})}),ev=I(function({id:e,data:t,selected:r,width:i,height:s}){let{updateNode:l,updateNodeDebounced:d,deleteNode:c}=(0,N.U)(),u=t.text??"",x=t.color??"var(--text)",h=t.bg??"none",g=!!t.underline,f=!!t.strikethrough,b=[g?"underline":null,f?"line-through":null].filter(Boolean).join(" ")||"none",m=Math.round(Math.min(200,Math.max(12,Math.max(20,i??240)/240*40))),[y,v]=(0,o.useState)(!!t.autofocus);(0,o.useRef)(t).current=t;let[k,w]=(0,o.useState)(null),j=k??m,S=(0,o.useRef)(u),C=(0,o.useRef)(null),R=(0,o.useRef)(null),E=(0,o.useRef)(!1),M=(0,o.useRef)(!!t.autofocus),L=(0,o.useCallback)(e=>{e.style.height="auto",e.style.height=`${Math.max(24,e.scrollHeight)}px`},[]);(0,o.useEffect)(()=>{y&&!M.current&&(S.current=u,E.current=!1),M.current=y},[y,u]),(0,o.useEffect)(()=>{if(!y)return;S.current=u;let e=0,t=0,r=C.current;return r&&(e=requestAnimationFrame(()=>{r.focus(),r.setSelectionRange(r.value.length,r.value.length),L(r),t=requestAnimationFrame(()=>{document.activeElement!==r&&(r.focus(),r.setSelectionRange(r.value.length,r.value.length))})})),()=>{cancelAnimationFrame(e),cancelAnimationFrame(t)}},[y,u,L]);let W=(0,o.useCallback)(()=>{let r=S.current;r.trim()?((r!==u||t.autofocus)&&l(e,{data:{autofocus:void 0,text:r}}),v(!1)):c(e)},[u,t,e,l,c]),z=(0,o.useCallback)(()=>{E.current=!0,S.current=u,t.autofocus&&l(e,{data:{autofocus:void 0}}),v(!1)},[t,e,l,u]),T=(0,o.useCallback)(e=>{if(E.current)return;let t=e.relatedTarget,r=R.current;r&&t instanceof Node&&r.contains(t)||W()},[W]),I=(0,o.useCallback)(e=>{e.stopPropagation(),"Enter"===e.key&&(e.ctrlKey||e.metaKey)?(e.preventDefault(),W()):"Escape"===e.key&&(e.preventDefault(),z())},[W,z]),D=(0,o.useCallback)(e=>{S.current=e.target.value,L(e.target)},[L]),H=(0,o.useRef)(!1),$=(0,o.useCallback)(()=>{let t=R.current;if(!t||H.current)return;let r=Math.max(20,Math.round(t.offsetHeight));Math.abs(r-(s??0))>1&&(y?d(e,{style:{height:r}},150):l(e,{style:{height:r}}))},[e,y,l,d,s]);(0,o.useEffect)(()=>{let e=requestAnimationFrame($);return()=>cancelAnimationFrame(e)},[j,u,y,$,s]);let F=(0,o.useCallback)(()=>{H.current=!0},[]),P=(0,o.useCallback)((e,t)=>{w(Math.round(Math.min(200,Math.max(12,40*(t.width/240)))))},[]),B=(0,o.useCallback)((t,r)=>{H.current&&(H.current=!1,w(null),l(e,{style:{width:Math.max(20,Math.round(r.width)),height:Math.max(20,Math.round(r.height))}}))},[e,l]),A=(0,o.useCallback)(t=>{l(e,{data:t})},[e,l]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.h7,{type:"target",position:p.yX.Left,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsx)(a.h7,{type:"source",position:p.yX.Right,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),!r||y?null:(0,n.jsx)(a.PN,{minWidth:80,minHeight:40,onResizeStart:F,onResize:P,onResizeEnd:B,color:"var(--accent)",handleClassName:"board-text-resize-handle",handleStyle:{width:16,height:16,zIndex:30,cursor:"nwse-resize"},lineStyle:{borderColor:"color-mix(in srgb, var(--accent) 45%, transparent)",zIndex:30}}),(0,n.jsxs)("div",{ref:R,"data-board-node":!0,"data-testid":`text-node-${e}`,className:"nowheel",onDoubleClick:e=>{e.stopPropagation(),v(!0)},style:{position:"relative",zIndex:0,width:"100%",minHeight:28,boxSizing:"border-box",..."glass"===h?{background:"var(--board-card-glass)",backdropFilter:"blur(14px) saturate(1.4)",WebkitBackdropFilter:"blur(14px) saturate(1.4)",border:"1px solid color-mix(in srgb, var(--border) 55%, transparent)"}:"tint"===h?{background:"color-mix(in srgb, var(--accent) 16%, transparent)",border:"1px solid color-mix(in srgb, var(--accent) 42%, transparent)"}:{background:"transparent",border:"1px solid transparent"},textDecoration:b,outline:r||y?"1.5px dashed color-mix(in srgb, var(--accent) 65%, transparent)":"none",outlineOffset:5,borderRadius:4,padding:"4px 6px",color:x,fontFamily:"var(--font-hand)",fontSize:j,fontWeight:700,lineHeight:1.35,cursor:"default",userSelect:y?"text":"none",whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere"},children:[(()=>{if(!y)return null;let e={width:24,height:22,padding:0,border:"none",borderRadius:4,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,lineHeight:1,color:"var(--text)",background:"transparent",flexShrink:0},t={background:"color-mix(in srgb, var(--accent) 22%, transparent)",color:"var(--accent)"},r=(r,o,a)=>(0,n.jsx)("button",{title:a,onMouseDown:e=>e.preventDefault(),onPointerDown:e=>e.stopPropagation(),onClick:()=>{r!==h&&A({bg:r})},style:{...e,...h===r?t:{}},children:(0,n.jsx)("span",{style:{width:14,height:14,borderRadius:3,border:h===r?"2px solid var(--accent)":"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:o,display:"block"}})}),o=(r,o,a,i)=>(0,n.jsx)("button",{title:i,onMouseDown:e=>e.preventDefault(),onPointerDown:e=>e.stopPropagation(),onClick:o,style:{...e,...r?t:{},fontWeight:700},children:a});return(0,n.jsxs)("div",{className:"nowheel","data-testid":"text-node-toolbar",style:{position:"absolute",top:-38,left:0,zIndex:50,display:"flex",gap:2,padding:3,borderRadius:8,background:"var(--bg-panel)",border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",boxShadow:"0 4px 16px color-mix(in srgb, #000 25%, transparent)"},children:[r("none","transparent","透明背景"),r("glass","var(--board-card-glass)","玻璃背景"),r("tint","color-mix(in srgb, var(--accent) 20%, transparent)","嵌入色彩"),(0,n.jsx)("span",{style:{width:1,alignSelf:"stretch",margin:"2px 2px",background:"color-mix(in srgb, var(--border) 60%, transparent)"}}),o(g,()=>A({underline:!g}),"U","下划线"),o(f,()=>A({strikethrough:!f}),"S̶","删除线")]})})(),y?(0,n.jsx)("textarea",{ref:C,defaultValue:u,onChange:D,onBlur:T,onKeyDown:I,onPointerDown:e=>e.stopPropagation(),spellCheck:!1,rows:1,"data-testid":"text-node-editor",style:{display:"block",width:"100%",minWidth:0,minHeight:26,border:"none",outline:"none",background:"transparent",color:"inherit",fontFamily:"inherit",fontSize:"inherit",fontWeight:"inherit",lineHeight:"inherit",resize:"none",overflow:"hidden",padding:0,userSelect:"text",whiteSpace:"pre-wrap",wordBreak:"break-word",caretColor:"currentColor",textDecoration:"inherit"}}):(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:"1em"},children:u||(0,n.jsx)("span",{style:{opacity:.35},children:"双击编辑"})})]})]})}),ek=I(function({id:e,data:t,selected:r}){let{updateNode:i}=(0,N.U)(),{setContainer:s}=z("var(--board-card-glass)"),l=(0,o.useCallback)(e=>s(e),[s]),d=t.src??"",[c,u]=(0,o.useState)(!1),[x,h]=(0,o.useState)(!1),g=(0,o.useCallback)(r=>{let n=r.currentTarget;u(!0),h(!1);let o=n.naturalWidth,a=n.naturalHeight;o&&a&&(t.naturalW!==o||t.naturalH!==a)&&i(e,{data:{...t,naturalW:o,naturalH:a}})},[e,t,i]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.PN,{isVisible:r,minWidth:48,minHeight:48,keepAspectRatio:!1,color:"var(--accent)",lineStyle:{borderColor:"color-mix(in srgb, var(--accent) 60%, transparent)"},handleStyle:{width:8,height:8,borderRadius:2,border:"1px solid var(--bg-panel)",background:"var(--accent)"}}),(0,n.jsx)(a.h7,{type:"target",position:p.yX.Left,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsx)(a.h7,{type:"source",position:p.yX.Right,className:"board-handle",style:{background:"var(--text-dim)",width:8,height:8,border:"1px solid var(--bg-panel)",opacity:.85}}),(0,n.jsxs)("div",{ref:l,"data-board-node":!0,"data-testid":`image-node-${e}`,className:"nowheel",style:{position:"relative",width:"100%",height:"100%",borderRadius:10,overflow:"hidden",backgroundColor:"var(--board-card-glass)",border:r?"1px solid color-mix(in srgb, var(--accent) 70%, transparent)":"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:r?"0 2px 12px -6px rgba(0,0,0,0.25), 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)":"0 2px 10px -6px rgba(0,0,0,0.2)",display:"flex",alignItems:"center",justifyContent:"center"},children:[d&&!x?(0,n.jsx)("img",{src:d,alt:t.name??"board image",draggable:!1,className:"nodrag",onLoad:g,onError:()=>h(!0),style:{width:"100%",height:"100%",objectFit:"contain",opacity:c?1:.1,transition:"opacity 0.15s",userSelect:"none",pointerEvents:"none"}}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:6,color:"var(--text-dim)",fontSize:11},children:x?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,n.jsx)("path",{d:"m21 15-5-5L5 21"})]}),(0,n.jsx)("span",{children:"图片加载失败"})]}):(0,n.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,n.jsx)("path",{d:"m21 15-5-5L5 21"})]})}),t.name&&(0,n.jsx)("div",{className:"nodrag",style:{position:"absolute",left:6,bottom:6,maxWidth:"calc(100% - 12px)",padding:"1px 6px",borderRadius:4,background:"color-mix(in srgb, var(--bg-panel) 82%, transparent)",fontSize:10,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",pointerEvents:"none"},children:t.name})]})]})});var ew=r(94315);function ej({menu:e,onClose:t}){let r=(0,N.U)(),{node:a,edgeId:i,x:s,y:l,flowX:d,flowY:c,edgeDerived:u}=e,p=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=e=>{if(0!==e.button)return;let r=p.current;r&&e.target instanceof Element&&r.contains(e.target)||t()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[t]);let x=!!(i&&u),h=(0,o.useCallback)(()=>{a&&r.deleteNode(a.id),t()},[a,r,t]),g=(0,o.useCallback)(()=>{i&&!x&&r.deleteEdge(i),t()},[i,x,r,t]),f=(0,o.useCallback)(()=>{r.addNode({id:crypto.randomUUID(),type:"sticky-note",position:{x:d??0,y:c??0},style:{width:338,height:230},data:{text:"",badge:"blue",emoji:"\uD83D\uDCDD"}}),t()},[r,d,c,t]),b=(0,o.useCallback)(()=>{r.addNode({id:crypto.randomUUID(),type:"text-node",position:{x:d??0,y:c??0},style:{width:240,height:60},data:{text:"",autofocus:!0}}),t()},[r,d,c,t]),m=(0,o.useCallback)(()=>{t(),window.dispatchEvent(new CustomEvent("pi:board-pick-image"))},[t]),y=(0,o.useCallback)(()=>{r.addNode({id:crypto.randomUUID(),type:"task-card",position:{x:d??0,y:c??0},style:{width:380,height:270},data:{cardId:"",number:0,name:"新建任务",description:"",readyStatus:"draft",priority:0,expanded:!1,w:380,h:270,expandedW:0,expandedH:0,collapsedW:0,collapsedH:0,emoji:"✅"}}),t()},[r,d,c,t]),v=a?.type??null,k="session-card"===v?r.isTaskBoard?"删除会话":"移除会话卡片":"task-card"===v?"删除任务卡":("sticky-note"===v||"text"===v,"删除");return(0,n.jsxs)("div",{ref:p,className:"glass-popover",onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),style:{position:"fixed",left:s,top:l,zIndex:1200,minWidth:168,padding:4,borderRadius:10,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 8px 30px -8px rgba(0,0,0,0.4)",color:"var(--text)",fontSize:12.5,userSelect:"none"},children:[i&&(x?(0,n.jsx)(eS,{disabled:!0,label:"派生连线(自动生成,不可删除)"}):(0,n.jsx)(eS,{danger:!0,label:"删除连线",onClick:g})),a&&(0,n.jsx)(eS,{label:k,danger:!0,onClick:h}),!a&&!i&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eS,{label:"新建文字",onClick:b}),(0,n.jsx)(eS,{label:"新建便笺",onClick:f}),(0,n.jsx)(eS,{label:"新建图片",onClick:m}),(0,n.jsx)(eS,{label:"新建任务卡",onClick:y})]})]})}function eS({label:e,onClick:t,danger:r,disabled:o}){return(0,n.jsx)("button",{type:"button",disabled:o,onClick:t,style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 10px",border:"none",borderRadius:7,background:"transparent",color:r?"#ef4444":o?"var(--text-dim)":"var(--text)",fontSize:12.5,textAlign:"left",cursor:o?"default":"pointer"},onMouseEnter:e=>{o||(e.currentTarget.style.background="color-mix(in srgb, var(--accent) 14%, transparent)")},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:e})}var eC=r(84876),eR=r(71459);let eE=new Set(["waiting_model","running_tools","running_command"]);function eM({nodes:e,sessionRunning:t}){let{zoomIn:r,zoomOut:i,fitView:s,setViewport:l,getNodes:d,getViewport:c}=(0,a.VH)(),{setHighlight:u}=(0,P.kz)(),[p,x]=(0,o.useState)(!1),h=(0,o.useMemo)(()=>{let r=[];for(let n of e){if("session-card"!==n.type)continue;let e=n.data;if(!e.sessionId)continue;let o=t[e.sessionId],a=o?o.phase:e.phase;if(!(void 0!==a&&eE.has(a)))continue;let i=(e.title??"").trim();i&&r.push({nodeId:n.id,label:i})}return r},[e,t]),g=(0,o.useMemo)(()=>{let r=[];for(let n of e){if("session-card"!==n.type)continue;let e=n.data;if(!e.expanded||!e.sessionId)continue;let o=t[e.sessionId],a=o?o.phase:e.phase;if(void 0!==a&&eE.has(a))continue;let i=(e.title??"").trim();i&&r.push({nodeId:n.id,label:i})}return r},[e,t]),f=h.length+g.length,b=e=>{let t=d().find(t=>t.id===e);if(!t)return;let r=t.measured?.width??t.style?.width??340,n=t.measured?.height??t.style?.height??160,o=t.position.x+r/2,a=t.position.y+n/2,i=c();l({x:-o*i.zoom+window.innerWidth/2,y:-a*i.zoom+window.innerHeight/2,zoom:i.zoom},{duration:300}),u(e)};return(0,n.jsxs)("div",{style:{position:"absolute",left:12,bottom:12,zIndex:30,display:"flex",flexDirection:"column",alignItems:"flex-start",gap:6},children:[p&&(0,n.jsx)("div",{style:{...eR.r,display:"flex",flexDirection:"column",gap:4,maxHeight:300,overflowY:"auto",padding:6,borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 -2px 12px -6px rgba(0,0,0,0.18), 0 8px 30px -8px rgba(0,0,0,0.3)",color:"var(--text)",width:240,whiteSpace:"nowrap"},children:0===f?(0,n.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)"},children:"画面中没有运行中或展开的会话"}):(0,n.jsxs)(n.Fragment,{children:[h.length>0&&(0,n.jsxs)("div",{style:{padding:"4px 10px 2px",fontSize:10.5,fontWeight:600,color:"var(--text-muted)",letterSpacing:.2},children:["运行中 \xb7 ",h.length]}),h.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>b(e.nodeId),title:"点击定位到卡片",style:eN,onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 10%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,width:6,height:6,borderRadius:"50%",background:"#10b981",boxShadow:"0 0 6px 1px rgba(16,185,129,0.6)",animation:"pulse 1.6s ease-in-out infinite"}}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label})]},e.nodeId)),g.length>0&&(0,n.jsxs)("div",{style:{padding:"4px 10px 2px",fontSize:10.5,fontWeight:600,color:"var(--text-muted)",letterSpacing:.2},children:["工作中 \xb7 ",g.length]}),g.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>b(e.nodeId),title:"点击定位到卡片",style:eN,onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 10%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,width:6,height:6,borderRadius:"50%",background:"var(--accent)",boxShadow:"0 0 6px 1px color-mix(in srgb, var(--accent) 45%, transparent)"}}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label})]},e.nodeId))]})}),(0,n.jsxs)("div",{style:{...eR.r,display:"flex",flexDirection:"row",gap:2,padding:4,borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",color:"var(--text)",width:"fit-content"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>r({duration:150}),title:"放大","aria-label":"放大",style:eL,onMouseEnter:eW,onMouseLeave:ez,children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,n.jsx)("path",{d:"m21 21-4.35-4.35"}),(0,n.jsx)("path",{d:"M8 11h6"}),(0,n.jsx)("path",{d:"M11 8v6"})]})}),(0,n.jsx)("button",{type:"button",onClick:()=>i({duration:150}),title:"缩小","aria-label":"缩小",style:eL,onMouseEnter:eW,onMouseLeave:ez,children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,n.jsx)("path",{d:"m21 21-4.35-4.35"}),(0,n.jsx)("path",{d:"M8 11h6"})]})}),(0,n.jsx)("button",{type:"button",onClick:()=>s({padding:.2,duration:300}),title:"适配视口","aria-label":"适配视口",style:eL,onMouseEnter:eW,onMouseLeave:ez,children:(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),(0,n.jsx)("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),(0,n.jsx)("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),(0,n.jsx)("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]})}),(0,n.jsx)("div",{style:{width:1,alignSelf:"stretch",background:"color-mix(in srgb, var(--border) 70%, transparent)",margin:"2px 1px"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>x(e=>!e),title:p?"收起进行中":"展开进行中","aria-label":p?"收起进行中":"展开进行中","aria-expanded":p,style:{...eL,color:p?"var(--accent)":"var(--text-muted)",background:p?"color-mix(in srgb, var(--accent) 12%, transparent)":void 0},onMouseEnter:eW,onMouseLeave:ez,children:[(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{transform:p?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)("polyline",{points:"6 9 12 15 18 9"})}),f>0&&(0,n.jsx)("span",{style:{position:"absolute",top:-2,right:-2,minWidth:14,height:14,padding:"0 3px",boxSizing:"border-box",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:999,fontSize:9,fontWeight:700,lineHeight:1,background:"color-mix(in srgb, var(--accent) 18%, transparent)",color:"var(--accent)",border:"1px solid color-mix(in srgb, var(--border) 40%, transparent)"},children:f})]})]})]})}let eL={display:"flex",alignItems:"center",justifyContent:"center",position:"relative",width:34,height:30,padding:0,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",borderRadius:8,transition:"background 0.12s, color 0.12s"};function eW(e){e.currentTarget.style.background="color-mix(in srgb, var(--text) 8%, transparent)",e.currentTarget.style.color="var(--text)"}function ez(e){e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"}let eN={display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",border:"none",borderRadius:8,background:"transparent",color:"var(--text)",fontSize:12.5,textAlign:"left",cursor:"pointer"};async function eT(e){let t=new FormData;t.append("file",e);try{let e=await fetch("/api/board-assets",{method:"POST",body:t});if(!e.ok)return null;return(await e.json()).url??null}catch{return null}}let eI={"session-card":O,"task-card":ey,"sticky-note":ee,text:ee,"text-node":ev,"image-node":ek},eD={"send-note":ew.OX},eH="application/x-pi-board-nodes";function e$({board:e,isDark:t}){let r,{t:i}=(0,u.s)(),{screenToFlowPosition:s,setViewport:l,getNodes:c,getViewport:p}=(0,a.VH)(),[x,h]=(0,o.useState)(!1),[g,f]=(0,o.useState)(null),[b,m]=(0,o.useState)([]),y=(0,o.useRef)(null);(0,o.useEffect)(()=>{e.ready&&l(e.viewport)},[e.ready]);let v=(0,o.useMemo)(()=>({boardId:e.board?.id??null,isTaskBoard:!!e.board?.taskId,updateNode:(t,r)=>{e.updateNode?.(t,r)},updateNodeDebounced:(t,r,n)=>{e.updateNodeDebounced?.(t,r,n)},deleteNode:t=>{let r=e.nodes.find(e=>e.id===t);r&&e.deleteNodeWithConfirm?.(r)},normalizeNodeId:(t,r)=>{e.normalizeNodeId?.(t,r)},deleteEdge:t=>{e.onEdgesChange?.([{type:"remove",id:t}])},addEdge:t=>e.addEdge?.(t),updateEdge:(t,r)=>e.updateEdge?.(t,r),addNode:t=>e.addNode?.(t),setSnapLines:e=>m(e)}),[e]),k=(0,o.useCallback)((e,t,r)=>{let n=crypto.randomUUID();if("sticky-note"===e)v.addNode({id:n,type:e,position:{x:t.x,y:t.y},style:{width:380,height:280},data:{text:"",badge:"blue",emoji:"\uD83D\uDCDD"}});else if("text-node"===e)v.addNode({id:n,type:e,position:{x:t.x,y:t.y},style:{width:240,height:60},data:{text:"",autofocus:!0}});else if("task-card"===e)v.addNode({id:n,type:e,position:{x:t.x,y:t.y},style:{width:380,height:270},data:{cardId:"",number:0,name:"新建任务",description:"",readyStatus:"draft",priority:0,expanded:!1,w:380,h:270,expandedW:0,expandedH:0,collapsedW:0,collapsedH:0,emoji:"✅"}});else if("image-node"===e&&r?.src){let o=240,a=180;if(r.naturalW&&r.naturalH){let e=Math.min(1,400/Math.max(r.naturalW,r.naturalH));o=Math.max(80,Math.round(r.naturalW*e)),a=Math.max(80,Math.round(r.naturalH*e))}v.addNode({id:n,type:e,position:{x:t.x,y:t.y},style:{width:o,height:a},data:{src:r.src,naturalW:r.naturalW,naturalH:r.naturalH,name:r.name}})}},[v]),w=(0,o.useCallback)(async(e,t)=>{let r=await eT(e);if(!r)return;let n=await new Promise(e=>{let t=new Image;t.onload=()=>e({naturalW:t.naturalWidth,naturalH:t.naturalHeight}),t.onerror=()=>e({}),t.src=r});k("image-node",t,{src:r,name:e.name,...n})},[k]),j=(0,o.useCallback)(e=>{let t=document.querySelector(".react-flow__pane"),r=t?.getBoundingClientRect();k(e,s({x:r?r.left+r.width/2:window.innerWidth/2,y:r?r.top+r.height/2:window.innerHeight/2}))},[k,s]),S=(0,o.useCallback)((e,t)=>{e.dataTransfer.setData("text/board-tool",t),e.dataTransfer.effectAllowed="copy"},[]),C=(0,o.useRef)(null);(0,o.useEffect)(()=>{let t=C.current;if(!t)return;let r=e=>{let t=e.dataTransfer?.types??[],r=Array.from(e.dataTransfer?.files??[]).some(e=>e.type.startsWith("image/"));(t.includes("text/session-id")||t.includes("text/board-tool")||r)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=r||t.includes("text/board-tool")?"copy":"move"),h(!0))},n=e=>{let r=e.relatedTarget;r&&t.contains(r)||h(!1)},o=()=>h(!1),a=t=>{let r=t.dataTransfer?.types??[],n=t.dataTransfer,o=Array.from(n?.files??[]).some(e=>e.type.startsWith("image/"));if(!r.includes("text/session-id")&&!r.includes("text/board-tool")&&!o||(t.preventDefault(),t.stopPropagation(),h(!1),!n))return;let a=s({x:t.clientX,y:t.clientY}),i=Array.from(n.files??[]).filter(e=>e.type.startsWith("image/"));if(i.length>0)return void i.forEach((e,t)=>{w(e,{x:a.x+20*t,y:a.y+20*t})});let l=n.getData("text/session-id");if(l){let t=n.getData("text/session-title")||void 0;e.addSessionNode(l,a.x,a.y,t);return}let d=n.getData("text/board-tool");"sticky-note"===d?k("sticky-note",a):"text-node"===d?k("text-node",a):"task-card"===d?k("task-card",a):"image-node"===d?y.current?.click():"session-card"===d&&e.addNewSessionCard(a)};return t.addEventListener("dragover",r,!0),t.addEventListener("dragleave",n,!0),t.addEventListener("dragend",o,!0),t.addEventListener("drop",a,!0),()=>{t.removeEventListener("dragover",r,!0),t.removeEventListener("dragleave",n,!0),t.removeEventListener("dragend",o,!0),t.removeEventListener("drop",a,!0)}},[e,s,k,w]);let R=(0,o.useCallback)(async({nodes:t})=>{if(!t||0===t.length)return!0;for(let r of t){let t=e.nodes.find(e=>e.id===r.id);t&&e.deleteNodeWithConfirm?.(t)}return!1},[e]),M=(0,o.useRef)(null),L=(0,o.useCallback)(e=>{f(null);let t=Date.now(),r=M.current;if(r&&t-r.t<320){M.current=null,k("text-node",s({x:e.clientX,y:e.clientY}));return}M.current={t:t}},[s,k]),W=(0,o.useCallback)((t,r)=>{e.saveViewport?.(r)},[e]),z=(0,o.useCallback)((e,t)=>{e.preventDefault();let r=s({x:e.clientX,y:e.clientY});f({x:e.clientX,y:e.clientY,flowX:r.x,flowY:r.y,node:t,edgeId:null})},[s]),T=(0,o.useCallback)(e=>{e.preventDefault();let t=s({x:e.clientX,y:e.clientY});f({x:e.clientX,y:e.clientY,flowX:t.x,flowY:t.y,node:null,edgeId:null})},[s]),I=(0,o.useRef)(!1),D=(0,o.useCallback)(()=>{I.current=!0,m([])},[]),H=(0,o.useCallback)((e,t)=>{I.current&&m(d(t.id,t.position,c()).lines)},[c]),$=(0,o.useCallback)((t,r)=>{I.current=!1;let n=d(r.id,r.position,c());e.updateNode?.(r.id,{position:{x:n.snapX??r.position.x,y:n.snapY??r.position.y}}),m([]),requestAnimationFrame(()=>m([]))},[e,c]),F=(0,o.useCallback)((t,r)=>{if("session-card"!==r.type)return;let n=r.data;if(!n||!n.sessionId)return;let o=String(n.sessionId);if(!n.expanded||n.cwd)return;let a=e.sessionTitles?.[o],i=a?.cwd||a?.projectRoot||"";i&&(0,E.$T)(i)},[e.sessionTitles]),P=(0,o.useCallback)((t,r)=>{t.preventDefault();let n=e.edges.find(e=>e.id===r.id),o=n?.data,a=s({x:t.clientX,y:t.clientY});f({x:t.clientX,y:t.clientY,flowX:a.x,flowY:a.y,node:null,edgeId:n?.id??null,edgeDerived:!!(o?.execLink||o?.taskLink)})},[e.edges,s]),B=(0,o.useCallback)(e=>{j(e)},[j]),A=(0,o.useCallback)(()=>{let t=document.querySelector(".react-flow__pane"),r=t?.getBoundingClientRect();if(!r)return;let n=s({x:r.left+r.width/2,y:r.top+r.height/2});e.addNewSessionCard(n)},[e,s]),O=(0,o.useCallback)(async()=>{let t=e.nodes.filter(e=>e.selected&&"session-card"!==e.type);if(0===t.length)return!1;let r=t.map(e=>({type:e.type,data:e.data,style:e.style,width:e.measured?.width??e.style?.width,height:e.measured?.height??e.style?.height}));try{return await navigator.clipboard.writeText(JSON.stringify({app:eH,nodes:r})),!0}catch{return!1}},[e.nodes]),Y=(0,o.useCallback)(async t=>{let r,n="";try{n=await navigator.clipboard.readText()}catch{return!1}try{r=JSON.parse(n)}catch{return!1}if(r?.app!==eH||!Array.isArray(r.nodes)||0===r.nodes.length)return!1;let o=t;if(!o){let e=document.querySelector(".react-flow__pane"),t=e?.getBoundingClientRect();o=s({x:t?t.left+t.width/2:window.innerWidth/2,y:t?t.top+t.height/2:window.innerHeight/2})}let a=r.nodes.map(e=>e.width??0),i=r.nodes.map(e=>e.height??0),l=Math.max(0,...a),d=Math.max(0,...i),c=o.x-l/2,u=o.y-d/2;for(let t of r.nodes){if(!t.type)continue;let r={...t.data??{}};delete r.selected,delete r.dragging,delete r.autofocus,"task-card"===t.type&&(delete r.cardId,r.number=0,r.name=r.name??"新建任务",r.description=r.description??"",r.readyStatus="draft",r.priority=r.priority??0,r.expanded=!1,r.w=r.w??380,r.h=r.h??270,r.expandedW=0,r.expandedH=0,r.collapsedW=0,r.collapsedH=0),e.addNode?.({id:crypto.randomUUID(),type:t.type,position:{x:c,y:u},style:t.style??{},data:r}),c+=24,u+=24}return!0},[e,s]);(0,o.useEffect)(()=>{let t=t=>{if(!(t.ctrlKey||t.metaKey))return;let r=t.key.toLowerCase(),n=document.activeElement;if(!n||"INPUT"!==n.tagName&&"TEXTAREA"!==n.tagName&&!n.isContentEditable)if("c"===r){let e=window.getSelection();if(e&&e.toString().length>0)return;O()}else"v"===r?Y():"z"!==r||t.shiftKey?("z"===r&&t.shiftKey||"y"===r)&&(t.preventDefault(),e.redo?.()):(t.preventDefault(),e.undo?.())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e,O,Y]),(0,o.useEffect)(()=>{let e=e=>{let t=document.activeElement;if(t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable))return;let r=Array.from(e.clipboardData?.items??[]).filter(e=>"file"===e.kind&&e.type.startsWith("image/")).map(e=>e.getAsFile()).filter(e=>!!e);if(0===r.length)return;e.preventDefault();let n=document.querySelector(".react-flow__pane"),o=n?.getBoundingClientRect(),a=s({x:o?o.left+o.width/2:window.innerWidth/2,y:o?o.top+o.height/2:window.innerHeight/2});r.forEach((e,t)=>{w(e,{x:a.x+20*t,y:a.y+20*t})})};return window.addEventListener("paste",e,!0),()=>window.removeEventListener("paste",e,!0)},[w,s]);let U=(0,o.useCallback)(e=>{let t=e.target.files?.[0];e.target.value="",t&&w(t,s({x:window.innerWidth/2,y:window.innerHeight/2}))},[w,s]);return(0,o.useEffect)(()=>{let e=()=>y.current?.click();return window.addEventListener("pi:board-pick-image",e),()=>window.removeEventListener("pi:board-pick-image",e)},[]),(0,n.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",position:"relative"},children:(0,n.jsxs)("div",{ref:C,style:{flex:1,minHeight:0,position:"relative"},children:[(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:0,pointerEvents:"none",backgroundColor:"var(--board-scrim-bg)",backgroundImage:"var(--glass-bg-image-scrim, none)",backgroundAttachment:"fixed",backgroundSize:"100% 100%, 100% 100%",backgroundRepeat:"no-repeat, no-repeat",backgroundPosition:"0 0, 0 0",backdropFilter:"var(--board-scrim-filter, none)",WebkitBackdropFilter:"var(--board-scrim-filter, none)"}}),x&&(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:30,display:"flex",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"2px dashed var(--accent)",borderRadius:10,pointerEvents:"none",color:"var(--accent)",fontSize:13,fontWeight:600},children:i("boards.dropToAdd")}),e.error?(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:30,display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:e.error}):e.loading?(0,n.jsx)(eC.N,{label:i("boards.loadingCanvas")}):(0,n.jsxs)(N.u,{value:v,children:[(0,n.jsxs)(a.Gc,{nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect,nodeTypes:eI,edgeTypes:eD,onBeforeDelete:R,onNodeContextMenu:z,onNodeClick:F,onPaneContextMenu:T,onEdgeContextMenu:P,onPaneClick:L,onMoveEnd:W,onNodeDragStart:D,onNodeDrag:H,onNodeDragStop:$,zoomOnDoubleClick:!1,minZoom:.1,maxZoom:2,colorMode:t?"dark":"light",deleteKeyCode:["Backspace","Delete"],proOptions:{hideAttribution:!1},defaultEdgeOptions:{markerEnd:{type:"arrowclosed"},style:{strokeWidth:1.5,stroke:"#8b8fa3"}},children:[(0,n.jsx)(a.of,{pannable:!0,zoomable:!0,style:{...eR.r,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",borderRadius:12,boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)",overflow:"hidden"},maskColor:"color-mix(in srgb, var(--board-card-glass) 78%, transparent)",nodeColor:()=>"color-mix(in srgb, var(--accent) 50%, transparent)",nodeStrokeColor:()=>"var(--accent)"}),b.length>0&&(r=p(),(0,n.jsx)("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none",overflow:"visible",zIndex:20,transform:`translate(${r.x}px, ${r.y}px) scale(${r.zoom})`,transformOrigin:"0 0"},children:b.map((e,t)=>(0,n.jsx)("line",{className:"board-align-line",x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stroke:"var(--accent)",strokeWidth:1.2,strokeDasharray:"4 3",opacity:.7},t))}))]}),g&&(0,n.jsx)(ej,{menu:g,onClose:()=>f(null)}),(0,n.jsx)(eM,{nodes:e.nodes,sessionRunning:e.sessionRunning}),(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:16,margin:"0 auto",width:"fit-content",zIndex:30,display:"flex",gap:4,padding:4,borderRadius:10,...eR.r,border:"1px solid color-mix(in srgb, var(--border) 60%, transparent)",boxShadow:"0 2px 12px -6px rgba(0,0,0,0.18)"},children:[(0,n.jsx)(eF,{label:"会话",onClick:A,onDragStart:e=>S(e,"session-card")}),(0,n.jsx)("span",{style:{width:1,height:18,background:"color-mix(in srgb, var(--border) 70%, transparent)",margin:"0 2px"}}),(0,n.jsx)(eF,{label:"便笺",onClick:()=>B("sticky-note"),onDragStart:e=>S(e,"sticky-note")}),(0,n.jsx)(eF,{label:"任务",onClick:()=>B("task-card"),onDragStart:e=>S(e,"task-card")}),(0,n.jsx)(eF,{label:"文字",onClick:()=>B("text-node"),onDragStart:e=>S(e,"text-node")}),(0,n.jsx)(eF,{label:"图片",onClick:()=>y.current?.click(),onDragStart:e=>S(e,"image-node")}),(0,n.jsx)("span",{style:{width:1,height:18,background:"color-mix(in srgb, var(--border) 70%, transparent)",margin:"0 2px"}}),(0,n.jsx)(eF,{label:"撤销",onClick:()=>e.undo?.(),draggable:!1}),(0,n.jsx)(eF,{label:"重做",onClick:()=>e.redo?.(),draggable:!1})]}),(0,n.jsx)("input",{ref:y,type:"file",accept:"image/*",multiple:!1,onChange:U,style:{display:"none"},"aria-hidden":!0,tabIndex:-1})]})]})})}function eF({label:e,onClick:t,onDragStart:r,draggable:o=!0}){return(0,n.jsx)("button",{type:"button",draggable:o,title:e,"aria-label":e,onClick:t,onDragStart:r,style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"6px 14px",border:"none",borderRadius:7,background:"transparent",color:"var(--text-muted)",fontSize:12.5,cursor:"grab",userSelect:"none",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 12%, transparent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:e})}}}]);
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-text-muted:var(--text-muted)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-\[4px\]{margin-bottom:4px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-\[720px\]{height:720px}.h-full{height:100%}.w-\[720px\]{width:720px}.w-full{width:100%}.max-w-\[820px\]{max-width:820px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[drop-ripple_2\.4s_ease-out_infinite_backwards\]{animation:drop-ripple 2.4s ease-out infinite backwards}.animate-\[drop-zone-in_0\.15s_ease_both\]{animation:drop-zone-in .15s both}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[rgba\(37\,99\,235\,0\.5\)\]{border-color:#2563eb80}.bg-\[rgba\(37\,99\,235\,0\.06\)\]{background-color:#2563eb0f}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-\[4px\]{padding-bottom:4px}.text-center{text-align:center}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.break-all{word-break:break-all}.text-red-400{color:var(--color-red-400)}.text-text-muted{color:var(--color-text-muted)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.\!underline{text-decoration-line:underline!important}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow-\[0_6px_18px_rgba\(37\,99\,235\,0\.18\)\]{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-\[0_6px_18px_rgba\(37\,99\,235\,0\.18\)\]{--tw-drop-shadow-size:drop-shadow(0 6px 18px var(--tw-drop-shadow-color,#2563eb2e));--tw-drop-shadow:var(--tw-drop-shadow-size)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px)}.backdrop-blur-\[1px\],.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[tool\:read\]{tool:read}}:root{--bg:#fff;--bg-panel:#f5f5f5;--bg-hover:#eee;--bg-selected:#e8e8e8;--border:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--border:color-mix(in srgb,var(--text) 20%,transparent)}}:root{--text:#0f172a;--text-muted:#3f4c5f;--text-dim:#8b95a3;--text-meta:#1e293beb;--msg-tool-text:#000}@supports (color:color-mix(in lab,red,red)){:root{--msg-tool-text:color-mix(in srgb,#000 85%,var(--text-muted))}}:root{--accent:#3184f8;--accent-hover:#1d4ed8;--user-bg:#eff6ff;--assistant-bg:#fff;--tool-bg:#f9fafb;--bg-subtle:#0000000a;--side-hover:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--side-hover:color-mix(in srgb,var(--text) 6%,transparent)}}:root{--side-active:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--side-active:color-mix(in srgb,var(--text) 10%,transparent)}}:root{--side-selected:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--side-selected:color-mix(in srgb,var(--accent) 12%,transparent)}}:root{--side-input:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){:root{--side-input:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}:root{--frame-glass:#ffffffc2;--side-panel:var(--frame-glass);--popover-glass:#ffffffdb;--app-bg-scrim:#0000000d;--glass-bg:#fafafba6;--glass-bg-strong:#ffffffc7;--glass-bg-input:#fafafb85;--panel-glass:#fafafbe0;--panel-glass-todo:#fafafbbf;--panel-glass-minimap:#fafafbbf;--timeline-rail:linear-gradient(to bottom,transparent,var(--text) 8%,var(--text) 92%,transparent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-rail:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--text) 22%,transparent) 8%,color-mix(in srgb,var(--text) 22%,transparent) 92%,transparent)}}:root{--timeline-dot-bg:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-bg:color-mix(in srgb,var(--text) 16%,transparent)}}:root{--timeline-dot-border:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-border:color-mix(in srgb,var(--text) 30%,transparent)}}:root{--timeline-dot-active-bg:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-bg:color-mix(in srgb,var(--accent) 55%,transparent)}}:root{--timeline-dot-active-border:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-border:color-mix(in srgb,var(--accent) 85%,transparent)}}:root{--timeline-dot-active-glow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--timeline-dot-active-glow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}}:root{--file-panel:var(--side-panel);--file-panel-chrome:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-chrome:color-mix(in srgb,var(--text) 5%,transparent)}}:root{--file-panel-gutter:var(--text)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-gutter:color-mix(in srgb,var(--text) 3%,transparent)}}:root{--file-panel-paper:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--file-panel-paper:color-mix(in srgb,var(--bg) 60%,transparent)}}:root{--board-card-glass:rgba(250,250,251,var(--bubble-alpha));--board-blur:12px;--board-scrim-alpha:0;--board-scrim-bg:rgba(0,0,0,var(--board-scrim-alpha));--board-scrim-blur:2px;--board-loading-bg:#0000008c;--board-loading-text:#ffffffe0;--glass-blur:8px;--glass-blur-heavy:12px;--glass-blur-panel:10px;--glass-blur-popover:10px;--steer-active:#f97316;--follow-active:#8b5cf6;--user-bg-rgb:219,234,254;--assistant-bg-rgb:252,252,253;--tool-bg-rgb:248,248,250;--bubble-alpha:.44;--user-bg-glass:rgba(var(--user-bg-rgb),var(--bubble-alpha));--user-border-glass:#3b82f638;--assistant-card-glass:rgba(var(--assistant-bg-rgb),var(--bubble-alpha));--tool-bg-glass:rgba(var(--tool-bg-rgb),var(--bubble-alpha));--glass-blur-bubble:8px;--bubble-pad-x:14px;--bubble-pad-y:7px;--bubble-pad-end:8px;--bubble-gap:8px;--bubble-radius:12px;--bubble-inner-radius:7px;--bubble-meta-fs:11px;--bubble-title-fs:12px;--bubble-border:var(--border)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-border:color-mix(in srgb,var(--border) 60%,transparent)}}:root{--bubble-hairline:var(--border)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-hairline:color-mix(in srgb,var(--border) 55%,transparent)}}:root{--bubble-tool-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg:color-mix(in srgb,var(--tool-bg-glass) 58%,transparent)}}:root{--bubble-tool-bg-hover:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg-hover:color-mix(in srgb,var(--tool-bg-glass) 80%,transparent)}}:root{--bubble-tool-bg-fold:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-tool-bg-fold:color-mix(in srgb,var(--tool-bg-glass) 28%,transparent)}}:root{--bubble-code-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-code-bg:color-mix(in srgb,var(--tool-bg-glass) 58%,transparent)}}:root{--bubble-th-bg:var(--tool-bg-glass)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-th-bg:color-mix(in srgb,var(--tool-bg-glass) 45%,transparent)}}:root{--bubble-file-bg:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-file-bg:color-mix(in srgb,var(--bg) 98%,var(--bg-panel))}}:root{--bubble-file-chrome:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--bubble-file-chrome:color-mix(in srgb,var(--bg) 93%,var(--bg-panel))}}:root{--glass-saturate:80%}html.dark{--bg:#1a1a1a;--bg-panel:#242424;--bg-hover:#2e2e2e;--bg-selected:#383838;--border:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--border:color-mix(in srgb,var(--text) 25%,transparent)}}html.dark{--text:#f5f7fa;--text-muted:#c7d0da;--text-dim:#8a93a0;--text-meta:#e8eef7eb;--msg-tool-text:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--msg-tool-text:color-mix(in srgb,var(--text) 32%,var(--text-muted))}}html.dark{--accent:#60a5fa;--accent-hover:#93c5fd;--side-hover:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-hover:color-mix(in srgb,var(--text) 6%,transparent)}}html.dark{--side-active:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-active:color-mix(in srgb,var(--text) 10%,transparent)}}html.dark{--side-selected:var(--accent)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-selected:color-mix(in srgb,var(--accent) 14%,transparent)}}html.dark{--side-input:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){html.dark{--side-input:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}html.dark{--frame-glass:#1c1c1fad;--side-panel:var(--frame-glass);--popover-glass:#1c1c1fcc;--user-bg:#1e293b;--assistant-bg:#1a1a1a;--tool-bg:#1f2937;--bg-subtle:#ffffff0d;--app-bg-scrim:#0000000f;--board-card-glass:rgba(34,34,37,var(--bubble-alpha));--glass-bg:#1e1e21a6;--glass-bg-strong:#222225c7;--glass-saturate:140%;--glass-bg-input:#22222585;--panel-glass:#222225e0;--panel-glass-todo:#222225bf;--panel-glass-minimap:#222225bf;--glass-blur:8px;--glass-blur-heavy:12px;--steer-active:#d97706;--follow-active:#818cf8;--user-bg-rgb:30,58,95;--assistant-bg-rgb:36,36,39;--tool-bg-rgb:36,36,39;--bubble-alpha:.55;--user-bg-glass:rgba(var(--user-bg-rgb),var(--bubble-alpha));--user-border-glass:#60a5fa47;--assistant-card-glass:rgba(var(--assistant-bg-rgb),var(--bubble-alpha));--tool-bg-glass:rgba(var(--tool-bg-rgb),var(--bubble-alpha));--glass-blur-bubble:6px}.catppuccin-file-icon{background:50%/contain no-repeat var(--catppuccin-icon-light);flex-shrink:0;display:block}html.dark .catppuccin-file-icon{background-image:var(--catppuccin-icon-dark)}@supports ((-webkit-mask-image:url("mask.svg")) or (mask-image:url("mask.svg"))){.catppuccin-file-icon{background:var(--text-dim);mask:center/contain no-repeat var(--catppuccin-icon-light);-webkit-mask:center/contain no-repeat var(--catppuccin-icon-light)}html.dark .catppuccin-file-icon{background:var(--text-dim);mask-image:var(--catppuccin-icon-dark);-webkit-mask-image:var(--catppuccin-icon-dark)}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}*{box-sizing:border-box}body,html{width:100%;height:100dvh;height:var(--app-viewport-height,100dvh);background:var(--bg);color:var(--text);overscroll-behavior:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;overflow:hidden}body{background-color:var(--bg);background-image:linear-gradient(var(--app-bg-scrim),var(--app-bg-scrim)),var(--app-bg-image,none),var(--app-bg-fill,none);background-size:100% 100%,var(--app-bg-size,cover),100% 100%;background-position:50%,var(--app-bg-pos-x,center) center,50%;background-repeat:no-repeat,var(--app-bg-repeat,no-repeat),no-repeat;flex-direction:column;display:flex}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.glass-panel{background:var(--panel-glass);-webkit-backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-saturate));transform:translateZ(0)}.glass-canvas{background-color:var(--frame-glass);background-image:linear-gradient(var(--frame-glass),var(--frame-glass)),var(--glass-bg-image-heavy,none);background-position:0 0,0 0;background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;background-attachment:fixed}.glass-popover{background:var(--glass-bg-strong)}@supports (color:color-mix(in lab,red,red)){.glass-popover{background:color-mix(in srgb,var(--glass-bg-strong) 60%,transparent)}}.glass-popover{-webkit-backdrop-filter:blur(var(--glass-blur-popover)) saturate(var(--glass-saturate));transform:translateZ(0)}[data-glass-scope=board] .extension-status-shelf,[data-glass-scope=board] .glass-canvas{background-image:none}[data-glass-scope=board] .react-flow{--xy-background-color:transparent}[data-glass-scope=board] .react-flow__resize-control.handle{transition:background-color .12s,border-color .12s;background:0 0!important;border:1px solid #0000!important;border-radius:50%!important;width:11px!important;height:11px!important}[data-glass-scope=board] .react-flow__resize-control.handle:hover{background-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){[data-glass-scope=board] .react-flow__resize-control.handle:hover{background-color:color-mix(in srgb,var(--accent) 45%,transparent)!important}}[data-glass-scope=board] .react-flow__resize-control.handle:hover{border-color:var(--bg-panel)!important}[data-glass-scope=board] .react-flow__resize-control.line{padding:6px;transition:background-color .12s;background:0 0!important;border-width:0!important}[data-glass-scope=board] .react-flow__resize-control.line:hover{background-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){[data-glass-scope=board] .react-flow__resize-control.line:hover{background-color:color-mix(in srgb,var(--accent) 22%,transparent)!important}}.glass-top-panel{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate));border:1px solid var(--border);transform:translateZ(0)}@supports (color:color-mix(in lab,red,red)){.glass-top-panel{border:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.glass-top-panel{border-top:none;border-radius:0 0 12px 12px;box-shadow:0 1px 2px #0f172a0a,0 4px 16px -8px #0f172a1a}.extension-status-shelf{border-top:1px solid var(--border);flex-wrap:nowrap;flex-shrink:0;align-items:stretch;min-width:0;display:flex;position:relative}@supports (color:color-mix(in lab,red,red)){.extension-status-shelf{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.extension-status-shelf{background-color:var(--frame-glass);background-image:linear-gradient(var(--frame-glass),var(--frame-glass)),var(--glass-bg-image-heavy,none);background-position:0 0,0 0;background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;background-attachment:fixed}.extension-status-left{flex-wrap:wrap;flex:auto;align-items:stretch;min-width:0;display:flex}.extension-status-right{flex:0 auto;justify-content:center;align-items:stretch;min-width:0;display:flex}.extension-widget-panels{z-index:60;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);flex-direction:column;max-height:min(144px,18dvh);display:flex;position:absolute;bottom:100%;left:0;right:0;overflow:hidden auto}@supports (color:color-mix(in lab,red,red)){.extension-widget-panels{border:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-panels{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate));border-radius:8px 8px 0 0;box-shadow:0 -4px 16px #0000001a}.extension-widget-panel{background:0 0;flex-shrink:0;min-width:0;overflow:hidden}.extension-widget-panel-heading{height:26px;color:var(--text);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;padding:5px 12px 0;font-size:11px;font-weight:600;overflow:hidden}.extension-widget-triggers{overscroll-behavior-x:contain;scrollbar-width:none;flex:0 auto;align-items:stretch;min-width:0;height:35px;display:flex;overflow:auto hidden}.extension-widget-triggers::-webkit-scrollbar{display:none}.extension-status-shelf.has-widgets.has-status .extension-widget-triggers{border-right:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.extension-status-shelf.has-widgets.has-status .extension-widget-triggers{border-right:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-trigger{border:0;border-right:1px solid var(--border);flex:0 0 108px;align-items:center;gap:5px;width:108px;height:35px;padding:0 7px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.extension-widget-trigger{border-right:1px solid color-mix(in srgb,var(--border) 78%,transparent)}}.extension-widget-trigger{color:var(--text-muted);font-family:var(--font-mono);text-align:left;background:0 0;font-size:11px}.extension-widget-update-pulse{z-index:0;opacity:0;pointer-events:none;transition:opacity .18s ease-out;position:absolute;inset:0}.extension-widget-update-pulse:before{background:var(--accent);content:"";opacity:.12;position:absolute;inset:0}.extension-widget-trigger.is-updating .extension-widget-update-pulse{opacity:1}.extension-widget-trigger.is-updating .extension-widget-update-pulse:before{animation:extension-widget-update-pulse .9s ease-in-out infinite alternate}@keyframes extension-widget-update-pulse{0%{opacity:.18}to{opacity:.06}}button.extension-widget-trigger{cursor:pointer;transition:background .12s,color .12s}.extension-widget-trigger.is-expanded,button.extension-widget-trigger:hover{background:var(--bg-hover);color:var(--text)}button.extension-widget-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.extension-widget-placement{z-index:1;width:10px;color:var(--text-dim);flex:0 0 10px;justify-content:center;align-items:center;display:flex;position:relative}.extension-widget-placement-icon{fill:currentColor;flex:0 0 8px;width:8px;height:6px;display:block}.extension-widget-key{z-index:1;min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;position:relative;overflow:hidden}.subagent-widget-card{cursor:pointer}.subagent-widget-card:hover{color:var(--text)}.subagent-widget-card.is-expanded{color:var(--text);background:var(--bg-selected);border-top:2px solid var(--accent)}.subagent-widget-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.extension-widget-update-pulse{transition:none}.extension-widget-trigger.is-updating .extension-widget-update-pulse:before{opacity:.12;animation:none}}.extension-widget-content{color:var(--text-muted);font-family:var(--font-mono);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:3px 12px 8px;font-size:14px;line-height:1.45}.extension-status-line{flex:0 auto;align-items:center;min-width:0;height:35px;padding:0 12px;display:flex}.extension-status-text{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}@media (max-width:640px){.extension-status-right:not(.has-tools){display:none}}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@font-face{font-family:LemiXiaoXiongRiJiTi;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/LemiXiaoXiongRiJiTi.ttf)format("truetype")}:root{--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"PingFang SC","Microsoft YaHei",monospace;--font-hand:"LemiXiaoXiongRiJiTi","Kaiti SC","STKaiti","KaiTi",cursive}.markdown-body,code,pre{font-family:var(--font-mono)}.markdown-body{min-width:0;max-width:100%;color:var(--text);word-break:break-word;font-size:14px;line-height:1.7;overflow-x:hidden}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--text);letter-spacing:0;margin:10px 0 5px;font-weight:600;line-height:1.35}.markdown-body h1{font-size:1.16em}.markdown-body h2{font-size:1.08em}.markdown-body h3{color:var(--text);font-size:.98em}@supports (color:color-mix(in lab,red,red)){.markdown-body h3{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body ul{padding-left:22px}.markdown-body ol,.markdown-body ul{margin:5px 0 8px;list-style-position:outside}.markdown-body ol{padding-left:30px}.markdown-body li{margin:3px 0;padding-left:2px}.markdown-body ul>li{list-style-type:disc}.markdown-body ol>li{list-style-type:decimal}.markdown-body li>p{margin:0}.markdown-body li::marker{color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body li::marker{color:color-mix(in srgb,var(--accent) 72%,var(--text-muted))}}.markdown-body li::marker{font-weight:600}.markdown-body strong{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body strong{color:color-mix(in srgb,var(--text) 88%,var(--accent))}}.markdown-body strong{font-weight:700}.markdown-body em{color:var(--text-muted)}.markdown-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body a{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.markdown-body a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.markdown-body img{border-radius:6px;max-width:100%;height:auto;margin:8px 0;display:block}.markdown-body .markdown-inline-code{background:var(--bg-subtle);color:var(--text);font-family:var(--font-mono);box-shadow:inset 0 0 0 1px var(--border);border-radius:5px;padding:1px 5px;font-size:.92em}@supports (color:color-mix(in lab,red,red)){.markdown-body .markdown-inline-code{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent)}}.markdown-body pre{background:var(--bubble-code-bg);border:1px solid var(--border);border-radius:var(--bubble-inner-radius);margin:8px 0;padding:8px 12px;line-height:1.55;overflow-x:auto}.markdown-body pre code{font-size:.92em;font-family:var(--font-mono);white-space:pre;background:0 0;border:none;padding:0}.markdown-body .contains-task-list{padding-left:0;list-style:none}.markdown-body .task-list-item{padding-left:25px;display:block;position:relative}.markdown-body .task-list-item::marker{content:""}.markdown-body .task-list-item>input[type=checkbox],.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child{appearance:none;border:1px solid var(--border);background:var(--bg);border-radius:4px;place-content:center;width:14px;height:14px;margin:0;display:inline-grid;position:absolute;top:.35em;left:0}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:color-mix(in srgb,var(--accent) 10%,var(--bg))}}.markdown-body .task-list-item>input[type=checkbox]:checked:before,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked:before{content:"";border:solid var(--accent);border-width:0 1.5px 1.5px 0;width:4px;height:8px;transform:rotate(45deg)translateY(-1px)}.markdown-body blockquote{border-left:3px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-body blockquote{border-left:3px solid color-mix(in srgb,var(--border) 75%,var(--text-muted))}}.markdown-body blockquote{background:var(--bg-subtle);color:var(--text-muted);border-radius:0 6px 6px 0;margin:6px 0;padding:6px 11px}.markdown-table-wrap{border:1px solid var(--border);border-radius:var(--bubble-inner-radius);width:100%;margin:8px 0;overflow:auto hidden}.markdown-body table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.markdown-body td,.markdown-body th{border:0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.markdown-body tr:last-child td{border-bottom:0}.markdown-body th{background:var(--bubble-th-bg);color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body th{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body th{font-weight:650}.markdown-body tbody tr:nth-child(2n) td{background:var(--bg-subtle)}.markdown-body hr{background:linear-gradient(90deg,transparent,var(--border),transparent);border:none;height:1px;margin:12px 0}.markdown-body .katex-display{margin:.6em 0;padding:2px 0;overflow:auto hidden}.markdown-body .katex{font-size:1.05em}.markdown-user-message p{white-space:pre-wrap}.markdown-skill-body,.markdown-skill-body a,.markdown-skill-body h1,.markdown-skill-body h2,.markdown-skill-body h3,.markdown-skill-body h4,.markdown-skill-body h5,.markdown-skill-body h6{color:var(--text-muted)}.markdown-skill-body a{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.markdown-skill-body a{-webkit-text-decoration-color:color-mix(in srgb,var(--text-muted) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--text-muted) 40%,transparent)}}.markdown-skill-body a:hover{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.markdown-skill-body code{color:var(--text-muted)}.markdown-custom-message{line-height:1.32}.markdown-custom-message p{margin:0}.markdown-custom-message h1,.markdown-custom-message h2,.markdown-custom-message h3,.markdown-custom-message h4,.markdown-custom-message h5,.markdown-custom-message h6{margin:4px 0 2px;line-height:1.18}.markdown-custom-message ol,.markdown-custom-message ul{margin:2px 0 3px}.markdown-custom-message li{margin:0}.markdown-custom-message blockquote{margin:3px 0;padding:4px 8px}.markdown-custom-message .markdown-code-block,.markdown-custom-message .markdown-table-wrap{margin:4px 0}.markdown-compaction-message{line-height:1.5}.markdown-compaction-message p{margin:0 0 7px}.markdown-compaction-message h1,.markdown-compaction-message h2,.markdown-compaction-message h3,.markdown-compaction-message h4,.markdown-compaction-message h5,.markdown-compaction-message h6{margin:8px 0 3px;line-height:1.25}.markdown-compaction-message ol,.markdown-compaction-message ul{margin:4px 0 8px}.markdown-compaction-message li{margin:2px 0}.markdown-compaction-message .markdown-code-block,.markdown-compaction-message .markdown-table-wrap{margin:6px 0}.compaction-file-details{border-top:1px solid var(--border);color:var(--text-muted);margin-top:10px;padding-top:8px;font-size:12px}.compaction-file-details summary{cursor:pointer;font-weight:600;line-height:1.4}.compaction-file-section{margin-top:8px}.compaction-file-title{color:var(--text);margin-bottom:4px;font-size:11px;font-weight:650}.compaction-file-list{border:1px solid var(--border);background:var(--bg-panel);max-height:180px;font-family:var(--font-mono);border-radius:6px;margin:0;padding:7px 8px;font-size:11px;line-height:1.45;list-style:none;overflow:auto}.compaction-file-list li{overflow-wrap:anywhere}.compaction-file-list li+li{margin-top:3px}.markdown-code-block{border:1px solid var(--border);border-radius:var(--bubble-inner-radius);background:var(--bubble-code-bg);width:100%;min-width:0;max-width:100%;box-shadow:0 1px 0 var(--border);margin:6px 0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.markdown-code-block{box-shadow:0 1px 0 color-mix(in srgb,var(--border) 42%,transparent)}}.markdown-code-header{background:var(--bubble-th-bg);border-bottom:1px solid var(--border);color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;font-size:11px;display:flex}.markdown-code-lang{color:var(--text-muted);font-family:var(--font-mono);font-weight:650}.markdown-code-actions{align-items:center;gap:6px;display:flex}.markdown-code-action{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;font:inherit;border-radius:5px;padding:2px 7px;font-size:11px;line-height:1.25}.markdown-code-action:hover:not(:disabled){color:var(--text);border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-code-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--border) 70%,var(--text-muted))}}.markdown-code-action:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.75}.markdown-code-action.is-active{background:var(--bg-selected);color:var(--text)}.mermaid-block{background:var(--bubble-code-bg);padding:12px;overflow-x:auto}.mermaid-block svg{max-width:none;display:block}.mermaid-block-loading{min-height:120px}.mermaid-block-error{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.mermaid-preview-button{width:100%;color:inherit;cursor:zoom-in;text-align:left;border:0}.mermaid-preview-button:hover{opacity:.85}.mermaid-preview-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.image-preview-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));color:var(--text);background:0 0;border:0;margin:0;position:fixed;inset:0;overflow:hidden}.image-preview-dialog[open]{justify-content:center;align-items:center;display:flex}.image-preview-dialog::backdrop{background:#000000b8}.image-preview-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%;display:block;box-shadow:0 20px 60px #0006}.image-preview-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:1;border:1px solid var(--border);background:var(--bg-panel);width:36px;height:36px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background-color .12s,color .12s;display:inline-flex;position:absolute;box-shadow:0 2px 10px #00000047}.image-preview-close:hover{background:var(--bg-hover);color:var(--text)}.image-preview-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer:coarse){.image-preview-close{width:44px;height:44px}}.mermaid-zoom-dialog{background:var(--bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.mermaid-zoom-dialog::backdrop{background:#00000059}.mermaid-zoom-layout{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.mermaid-zoom-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:40px;padding:7px 10px;display:flex}.mermaid-zoom-title{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.mermaid-zoom-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.mermaid-zoom-stepper{border:1px solid var(--border);background:var(--bg);border-radius:5px;align-items:center;height:24px;display:flex;overflow:hidden}.mermaid-zoom-icon-button,.mermaid-zoom-stepper button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.mermaid-zoom-stepper button{height:22px}.mermaid-zoom-stepper button+.mermaid-zoom-value,.mermaid-zoom-value+button{border-left:1px solid var(--border)}.mermaid-zoom-icon-button{border:1px solid var(--border);border-radius:5px;flex:0 0 24px}.mermaid-zoom-icon-button:hover,.mermaid-zoom-stepper button:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.mermaid-zoom-stepper button:disabled{opacity:.35;cursor:default}.mermaid-zoom-icon-button:focus-visible,.mermaid-zoom-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mermaid-zoom-value{min-width:48px;height:22px;color:var(--text-muted);font-family:var(--font-mono);text-align:center;-webkit-user-select:none;user-select:none;font-size:12px;line-height:22px}.mermaid-zoom-viewport{background:var(--bg);-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding:24px;overflow:auto}.mermaid-zoom-canvas{border:1px solid var(--border);background:var(--bg-panel);border-radius:7px;margin:0 auto;padding:12px;transition:width .15s}.mermaid-zoom-canvas svg{height:auto;display:block;width:100%!important;max-width:none!important}@media (max-width:480px){.mermaid-zoom-toolbar{padding-inline:8px}.mermaid-zoom-title{font-size:10px}.mermaid-zoom-viewport{padding:12px}}.file-viewer-toolbar{min-width:0;min-height:35px}.file-viewer-path{flex:auto;min-width:48px}.file-viewer-meta,.file-viewer-path{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-viewer-meta{flex:0 auto;min-width:0}.file-viewer-live-indicator{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.file-viewer-controls{gap:6px}.file-viewer-actions,.file-viewer-controls{flex-shrink:0;align-items:center;display:flex}.file-viewer-actions{order:-1;gap:4px;height:24px}.file-viewer-mode-switch{border:1px solid var(--border);border-radius:5px;height:24px;display:flex;overflow:hidden}.file-viewer-mode-button{border:0;border-left:1px solid var(--border);height:22px;font:inherit;letter-spacing:0;cursor:pointer;white-space:nowrap;padding:0 8px;font-size:11px;font-weight:500}.file-viewer-mode-button:first-child{border-left:0}.file-viewer-mode-button:hover{filter:brightness(1.08)}.file-viewer-icon-button{box-sizing:border-box;border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:5px;flex:0 0 24px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.file-viewer-icon-button:hover{color:var(--text);background:var(--side-hover)!important}.file-viewer-icon-button:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.55}.file-viewer-icon-button:disabled:hover{color:var(--text-dim);background:0 0!important}.file-viewer-icon-button:focus-visible,.file-viewer-mode-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.directory-picker-path:focus-visible{box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.directory-picker-path:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}}@media (max-width:640px){.file-viewer-meta{display:none}}@media (max-width:380px){.file-viewer-toolbar{gap:6px!important;padding-inline:8px!important}.file-viewer-mode-button{padding-inline:6px}}.markdown-file-preview h1{font-size:1.8em}.markdown-file-preview h2{font-size:1.4em}.markdown-file-preview h3{font-size:1.15em}.markdown-file-preview p{margin:0 0 12px}.markdown-file-preview pre{background:var(--bubble-code-bg);border:1px solid var(--border);font-family:var(--font-mono);border-radius:6px;margin:12px 0;padding:12px 16px;font-size:13px;overflow-x:auto}.markdown-file-preview code{font-family:var(--font-mono);background:var(--bg-subtle);border-radius:3px;padding:1px 5px;font-size:.9em}.markdown-file-preview pre code{background:0 0;padding:0}.markdown-frontmatter{border:1px solid var(--border);background:var(--bubble-code-bg);border-radius:8px;margin-bottom:20px;padding:14px 16px 12px}.markdown-frontmatter-title{color:var(--text);font-size:1.3em;font-weight:600;line-height:1.35}.markdown-frontmatter-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.markdown-frontmatter-tag{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:0 10px;font-size:12px;line-height:1.6}.markdown-frontmatter-rows{grid-template-columns:auto 1fr;gap:5px 14px;margin:10px 0 0;font-size:13px;line-height:1.55;display:grid}.markdown-frontmatter-row{display:contents}.markdown-frontmatter-row dt{color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;font-size:.92em}.markdown-frontmatter-row dd{color:var(--text);word-break:break-word;min-width:0;margin:0}.markdown-frontmatter-row dd a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.markdown-body span.linenumber,span.linenumber{color:var(--text-dim)!important;font-style:normal!important}span.token.table{display:inline}@keyframes drop-zone-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes drop-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes drop-ring-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes drop-ripple{0%{opacity:.6;transform:scale(0)}to{opacity:0;transform:scale(1)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes board-search-glow{0%{box-shadow:0 0 0 3px var(--accent),0 0 24px color-mix(in srgb,var(--accent) 45%,transparent)}to{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 0%,transparent),0 0 24px color-mix(in srgb,var(--accent) 0%,transparent)}}@keyframes pulse{50%{opacity:.5}}.board-skeleton-line{background:var(--border);border-radius:4px;height:12px}@supports (color:color-mix(in lab,red,red)){.board-skeleton-line{background:color-mix(in srgb,var(--border) 55%,transparent)}}.board-skeleton-line{animation:pulse 1.6s ease-in-out infinite}@keyframes compaction-breathe{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 16px 1px color-mix(in srgb,var(--accent) 22%,transparent)}}@keyframes compaction-dot-breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}@keyframes notice-shelf-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes notice-shelf-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes notice-flash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}40%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 0%,transparent);transform:scale(1.03)}60%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);transform:scale(1)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent);transform:scale(1)}}@keyframes notice-drawer-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.notice-shelf-item{animation-duration:.001ms!important}.notice-pill{animation:none!important}.notice-drawer,.notice-drawer-item{animation-duration:.001ms!important}.compaction-status,.compaction-status-dot{animation:none!important}}@keyframes saved-pop{0%{transform:scale(1);box-shadow:0 0 #4ade808c}40%{transform:scale(1.08);box-shadow:0 0 0 6px #4ade8040}to{transform:scale(1);box-shadow:0 0 #4ade8000}}@keyframes saved-check-draw{0%{stroke-dashoffset:18px;opacity:0}to{stroke-dashoffset:0;opacity:1}}.panel-resize-handle{z-index:220;cursor:col-resize;touch-action:none;outline:none;flex:0 0 12px;width:12px;margin:0 -6px;position:relative}.panel-resize-handle:after{content:"";pointer-events:none;background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:5px}.panel-resize-handle.is-resizing:after,.panel-resize-handle:focus-visible:after,.panel-resize-handle:hover:after{background:var(--text-muted)}@supports (color:color-mix(in lab,red,red)){.panel-resize-handle.is-resizing:after,.panel-resize-handle:focus-visible:after,.panel-resize-handle:hover:after{background:color-mix(in srgb,var(--text-muted) 70%,var(--border))}}.right-panel-overlay-backdrop{display:none}@media (min-width:641px){.sidebar-overlay-backdrop{display:none!important}.sidebar-container{transition:width .2s,min-width .2s;position:relative;overflow:hidden}.sidebar-container.sidebar-open{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-closed{width:0;min-width:0;border-right:none!important}.sidebar-container>*{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-resizing,.sidebar-container.sidebar-resizing>*{transition:none!important}}@media (min-width:960px){.right-panel-container{flex-shrink:0;transition:width .2s,min-width .2s;overflow:hidden}.right-panel-container.right-panel-open{width:var(--right-panel-width,clamp(360px,42vw,640px));min-width:300px}.right-panel-container.right-panel-closed{width:0;min-width:0;border-left:none!important}.right-panel-container>*{width:var(--right-panel-width,clamp(360px,42vw,640px));min-width:300px}.right-panel-container.right-panel-resizing,.right-panel-container.right-panel-resizing>*{transition:none!important}}@media (min-width:641px) and (max-width:959px){.right-panel-resize-handle{display:none}.right-panel-overlay-backdrop{z-index:240;opacity:0;pointer-events:none;background:#0000003d;transition:opacity .2s;display:block;position:fixed;inset:0}.right-panel-overlay-backdrop.is-open{opacity:1;pointer-events:auto}.right-panel-container{top:0;right:env(safe-area-inset-right);z-index:250;width:min(560px,100vw - 48px);min-width:300px;transition:transform .2s;position:fixed;bottom:0;overflow:hidden;box-shadow:-12px 0 32px #0000002e}.right-panel-container.right-panel-open{transform:translate(0)}.right-panel-container.right-panel-closed{pointer-events:none;transform:translate(100%)}.right-panel-container>*{width:100%;min-width:0}}@media (max-width:640px){.chat-stats-center{display:none!important}.sidebar-container{top:0;left:env(safe-area-inset-left);width:280px;max-width:85vw;height:var(--app-viewport-height,100dvh);transition:transform .25s,box-shadow .25s;bottom:0;position:fixed!important}.sidebar-container.sidebar-open{transform:translate(0);box-shadow:4px 0 20px #00000026}.sidebar-container.sidebar-closed{transform:translateX(calc(-100% - env(safe-area-inset-left)));box-shadow:none}.right-panel-container{inset:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);height:var(--app-viewport-height,100dvh);z-index:250;transition:transform .2s;position:fixed;overflow:hidden}.right-panel-container.right-panel-open{width:auto;min-width:0}.right-panel-container.right-panel-closed{border-left:none!important;width:0!important;min-width:0!important;display:none!important}.right-panel-container>*{width:100%;min-width:0}.panel-resize-handle,.right-panel-overlay-backdrop{display:none}.directory-picker-action,.directory-picker-back,.directory-picker-entry{min-height:44px!important}.directory-picker-back{min-width:44px!important}.directory-picker-footer{flex-wrap:wrap;padding-bottom:max(10px,env(safe-area-inset-bottom))!important}input,select,textarea{font-size:16px!important}}@media (prefers-reduced-transparency:reduce){:root,html.dark{--app-bg-scrim:#fff;--glass-bg:var(--bg);--glass-bg-strong:var(--bg);--frame-glass:var(--bg);--side-panel:var(--frame-glass);--popover-glass:var(--bg);--panel-glass:var(--bg);--panel-glass-todo:var(--bg);--panel-glass-minimap:var(--bg);--glass-blur:0px;--glass-blur-heavy:0px;--glass-blur-panel:0px;--glass-blur-popover:0px;--glass-blur-bubble:0px}html.dark{--app-bg-scrim:#000}}@media (prefers-contrast:more){:root,html.dark{--glass-bg:var(--bg);--glass-bg-strong:var(--bg);--frame-glass:var(--bg);--side-panel:var(--frame-glass);--popover-glass:var(--bg);--panel-glass:var(--bg);--panel-glass-todo:var(--bg);--panel-glass-minimap:var(--bg);--glass-blur:0px;--glass-blur-heavy:0px;--glass-blur-panel:0px;--glass-blur-popover:0px;--glass-blur-bubble:0px}}@keyframes back-to-latest-in{0%{opacity:0;transform:translateY(4px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.terminal-panel{border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}@keyframes terminal-panel-in-top{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes terminal-panel-in-bottombar{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.terminal-panel-top{transform-origin:100% 0;animation:terminal-panel-in-top .15s ease-out both;border-top:none!important;border-radius:0 0 10px 10px!important}.terminal-panel-bottombar{transform-origin:100% 100%;animation:terminal-panel-in-bottombar .15s ease-out both;border-bottom:none!important;border-radius:10px 10px 0 0!important}.terminal-panel-dragged{border-top:1px solid var(--border)!important;border-bottom:1px solid var(--border)!important;border-radius:10px!important}.terminal-panel-hidden{display:none}.terminal-panel-mobile{animation:terminal-panel-in-bottombar .15s ease-out both;inset:10px;width:auto!important;height:auto!important}@media (prefers-reduced-motion:reduce){.terminal-panel-bottombar,.terminal-panel-mobile,.terminal-panel-top{animation:none}}.terminal-tabs{border-bottom:1px solid var(--text);flex-shrink:0;align-items:stretch;gap:2px;height:34px;padding-left:6px;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-tabs{border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}}html.dark .terminal-tabs{border-bottom-color:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark .terminal-tabs{border-bottom-color:color-mix(in srgb,var(--text) 6%,transparent)}}.terminal-tab-scroll{scrollbar-width:none;flex:1;align-items:stretch;gap:10px;min-width:0;display:flex;overflow-x:auto}.terminal-tab-scroll::-webkit-scrollbar{display:none}.terminal-group{flex-shrink:0;align-items:stretch;gap:2px;display:flex}.terminal-group-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text);align-items:center;font-size:10px;font-weight:600;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-group-label{color:color-mix(in srgb,var(--text) 45%,transparent)}}.terminal-group-label{white-space:nowrap}.terminal-chip{cursor:pointer;color:var(--text);border-radius:5px;align-items:center;gap:5px;margin:4px 0;padding:0 4px 0 8px;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-chip{color:color-mix(in srgb,var(--text) 75%,transparent)}}.terminal-chip{white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;transition:background .1s}.terminal-chip:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-chip:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}}.terminal-chip.is-active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.terminal-chip.is-active{background:color-mix(in srgb,var(--accent) 26%,transparent)}}.terminal-chip.is-active{color:var(--text)}.terminal-chip.is-dead{opacity:.55}.terminal-dot{background:#34d399;border-radius:50%;flex-shrink:0;width:6px;height:6px}.terminal-dot.is-dead{background:#6b7280}.terminal-dot.is-disconnected{background:#f59e0b;box-shadow:0 0 0 1px #f59e0b66}.terminal-chip-cwd{text-overflow:ellipsis;max-width:130px;overflow:hidden}.terminal-chip-close,.terminal-close,.terminal-new{color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.terminal-chip-close,.terminal-close,.terminal-new{color:color-mix(in srgb,var(--text) 50%,transparent)}}.terminal-chip-close,.terminal-close,.terminal-new{cursor:pointer;border-radius:4px;flex-shrink:0;transition:color .1s,background .1s}.terminal-chip-close{width:16px;height:16px;margin-left:2px}.terminal-chip-close:hover,.terminal-close:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-chip-close:hover,.terminal-close:hover{background:color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-close,.terminal-new{align-self:center;width:30px;height:24px;margin-right:2px}.terminal-new:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-new:hover{background:color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-close{color:#f87171cc}.terminal-close:hover{color:#fff;background:#ef4444d9}.terminal-chip-close:hover{color:#fff;background:#ef4444cc}.terminal-chip.is-disconnected{opacity:.72}.terminal-cleanup{color:#f59e0bd9;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:30px;height:24px;margin-right:2px;transition:color .1s,background .1s;display:flex}.terminal-cleanup:hover{color:#f59e0b;background:#f59e0b24}.terminal-all-select{appearance:none;max-width:150px;height:24px;color:var(--text);color-scheme:light;background-color:var(--text);align-self:center;margin-right:2px;padding:0 22px 0 8px;font-family:inherit;font-size:11px}@supports (color:color-mix(in lab,red,red)){.terminal-all-select{background-color:color-mix(in srgb,var(--text) 7%,transparent)}}.terminal-all-select{border:1px solid var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;background-size:10px 10px}@supports (color:color-mix(in lab,red,red)){.terminal-all-select{border:1px solid color-mix(in srgb,var(--text) 12%,transparent)}}.terminal-all-select{cursor:pointer;border-radius:5px;outline:none;flex-shrink:0;transition:background-color .1s,border-color .1s}html.dark .terminal-all-select{color-scheme:dark;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.terminal-all-select:hover{background-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-all-select:hover{background-color:color-mix(in srgb,var(--text) 11%,transparent)}}.terminal-all-select:hover{border-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-all-select:hover{border-color:color-mix(in srgb,var(--text) 20%,transparent)}}.terminal-all-select:focus-visible{border-color:var(--accent)}.terminal-all-select optgroup,.terminal-all-select option{color:var(--text);background:var(--bg-panel)}.terminal-error{color:#f87171;border-bottom:1px solid var(--text);flex-shrink:0;padding:6px 12px;font-size:11px}@supports (color:color-mix(in lab,red,red)){.terminal-error{border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}}.terminal-body{flex:1;min-height:0;padding:6px 8px 8px;position:relative}.terminal-body .xterm,.terminal-body .xterm-screen,.terminal-body .xterm-viewport{background:0 0!important}.terminal-body .xterm{height:100%}.terminal-body .xterm.terminal-attaching{opacity:0}.terminal-body .xterm-viewport{background-color:#0000!important}.terminal-placeholder{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.terminal-placeholder button{border:1px dashed var(--text);border-radius:7px;padding:7px 16px}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{border:1px dashed color-mix(in srgb,var(--text) 25%,transparent)}}.terminal-placeholder button{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{background:color-mix(in srgb,var(--text) 5%,transparent)}}.terminal-placeholder button{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button{color:color-mix(in srgb,var(--text) 85%,transparent)}}.terminal-placeholder button{cursor:pointer;font-size:12px}.terminal-placeholder button:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-placeholder button:hover{background:color-mix(in srgb,var(--text) 10%,transparent)}}.terminal-tabs{cursor:default}.terminal-tabs:active{cursor:move}.terminal-resize-handle{z-index:3;cursor:nwse-resize;touch-action:none;width:18px;height:18px;position:absolute;bottom:0;right:0}.terminal-resize-handle:after{content:"";opacity:0;border-bottom:1.5px solid #0000;border-right:1.5px solid #0000;width:7px;height:7px;transition:opacity .12s,border-color .12s;position:absolute;bottom:3px;right:3px}.terminal-resize-handle:hover:after{opacity:1;border-color:var(--text)}@supports (color:color-mix(in lab,red,red)){.terminal-resize-handle:hover:after{border-color:color-mix(in srgb,var(--text) 35%,transparent)}}.terminal-panel-hidden .terminal-resize-handle{display:none}.bottom-band{align-items:stretch;min-width:0;height:36px;display:flex}.bottom-band .extension-status-shelf{flex:auto;min-width:0}.extension-actions{border-top:1px solid var(--border);flex:none;justify-content:center;align-items:stretch;min-width:0;display:flex}@supports (color:color-mix(in lab,red,red)){.extension-actions{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}}.extension-actions{background:var(--frame-glass);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(var(--glass-saturate))}.board-workbench .bottom-band{height:36px;overflow:visible}.board-workbench .extension-status-left{flex-wrap:nowrap;min-width:0;overflow:visible}.board-workbench .extension-status-right{flex-shrink:0}.board-workbench .extension-status-right>div{padding:0 6px}.board-workbench .extension-status-line,.board-workbench .extension-widget-triggers{min-width:0;overflow:hidden}.board-workbench .terminal-bar-toggle{display:none}.terminal-bar-toggle{width:110px;color:var(--text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:11px;transition:color .1s,background .1s;display:flex}.terminal-bar-toggle:hover{color:var(--text);background:var(--bg-hover)}.terminal-bar-toggle.is-open{color:var(--accent);background:var(--bg-selected)}@media (prefers-reduced-transparency:reduce){.terminal-bar-toggle{background:var(--bg-panel)}:root,html.dark{--board-card-glass:rgba(250,250,251,var(--bubble-alpha));--board-blur:12px}html.dark{--board-card-glass:rgba(34,34,37,var(--bubble-alpha))}}.sticky-note-edit-wrap .ProseMirror{cursor:text;min-height:60px;caret-color:var(--text);outline:none}.task-card-md-wrap .ProseMirror{cursor:text;caret-color:var(--text);outline:none;padding:4px 8px}.task-card-md-wrap .ProseMirror.is-editor-empty:before{content:attr(data-placeholder);color:var(--text-dim);pointer-events:none;float:left;height:0}.board-text-resize-handle{background:0 0;border:none}.board-text-resize-handle:active,.board-text-resize-handle:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.board-text-resize-handle:active,.board-text-resize-handle:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}}.board-text-resize-handle:active,.board-text-resize-handle:hover{border:1px solid var(--accent)}@supports (color:color-mix(in lab,red,red)){.board-text-resize-handle:active,.board-text-resize-handle:hover{border:1px solid color-mix(in srgb,var(--accent) 70%,transparent)}}.board-text-resize-handle:active,.board-text-resize-handle:hover{border-radius:3px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}