clawpad 0.3.12 → 0.3.13

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 (166) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/react-loadable-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/api/ai/write/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/changes/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/changes/record/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/changes/revert/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/changes/run/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/chat/abort/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
  32. package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/files/pages/[...path]/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/files/search/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/files/spaces/[space]/pages/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/files/spaces/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/files/watch/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/gateway/detect/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/gateway/events/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/gateway/features/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/gateway/history/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/gateway/resolve/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/gateway/status/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/openclaw/commands/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/settings/search-status/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/setup/bootstrap/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/setup/bootstrap-workspace/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/index.html +1 -1
  55. package/.next/standalone/.next/server/app/index.rsc +4 -4
  56. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  58. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  60. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/settings/connection/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/settings/connection.html +1 -1
  64. package/.next/standalone/.next/server/app/settings/connection.rsc +5 -5
  65. package/.next/standalone/.next/server/app/settings/connection.segments/_full.segment.rsc +5 -5
  66. package/.next/standalone/.next/server/app/settings/connection.segments/_head.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/settings/connection.segments/_index.segment.rsc +4 -4
  68. package/.next/standalone/.next/server/app/settings/connection.segments/_tree.segment.rsc +2 -2
  69. package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection/__PAGE__.segment.rsc +2 -2
  70. package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/settings/connection.segments/settings.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/settings/relay/page.js +1 -1
  74. package/.next/standalone/.next/server/app/settings/relay/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/settings/relay.html +1 -1
  76. package/.next/standalone/.next/server/app/settings/relay.rsc +5 -5
  77. package/.next/standalone/.next/server/app/settings/relay.segments/_full.segment.rsc +5 -5
  78. package/.next/standalone/.next/server/app/settings/relay.segments/_head.segment.rsc +1 -1
  79. package/.next/standalone/.next/server/app/settings/relay.segments/_index.segment.rsc +4 -4
  80. package/.next/standalone/.next/server/app/settings/relay.segments/_tree.segment.rsc +2 -2
  81. package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay/__PAGE__.segment.rsc +2 -2
  82. package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/settings/relay.segments/settings.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/settings.html +1 -1
  85. package/.next/standalone/.next/server/app/settings.rsc +5 -5
  86. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
  87. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  88. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  89. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  90. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  91. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/setup.html +1 -1
  94. package/.next/standalone/.next/server/app/setup.rsc +5 -5
  95. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
  96. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +4 -4
  98. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  100. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/waitlist/page.js +1 -1
  102. package/.next/standalone/.next/server/app/waitlist/page_client-reference-manifest.js +1 -1
  103. package/.next/standalone/.next/server/app/waitlist.html +1 -1
  104. package/.next/standalone/.next/server/app/waitlist.rsc +4 -4
  105. package/.next/standalone/.next/server/app/waitlist.segments/_full.segment.rsc +4 -4
  106. package/.next/standalone/.next/server/app/waitlist.segments/_head.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/waitlist.segments/_index.segment.rsc +4 -4
  108. package/.next/standalone/.next/server/app/waitlist.segments/_tree.segment.rsc +2 -2
  109. package/.next/standalone/.next/server/app/waitlist.segments/waitlist/__PAGE__.segment.rsc +1 -1
  110. package/.next/standalone/.next/server/app/waitlist.segments/waitlist.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/workspace/[...path]/page.js +39 -2
  112. package/.next/standalone/.next/server/app/workspace/[...path]/page_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/workspace/search/page_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/workspace/search.html +2 -2
  116. package/.next/standalone/.next/server/app/workspace/search.rsc +6 -6
  117. package/.next/standalone/.next/server/app/workspace/search.segments/_full.segment.rsc +6 -6
  118. package/.next/standalone/.next/server/app/workspace/search.segments/_head.segment.rsc +1 -1
  119. package/.next/standalone/.next/server/app/workspace/search.segments/_index.segment.rsc +4 -4
  120. package/.next/standalone/.next/server/app/workspace/search.segments/_tree.segment.rsc +2 -2
  121. package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search/__PAGE__.segment.rsc +2 -2
  122. package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search.segment.rsc +1 -1
  123. package/.next/standalone/.next/server/app/workspace/search.segments/workspace.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/workspace.html +2 -2
  125. package/.next/standalone/.next/server/app/workspace.rsc +6 -6
  126. package/.next/standalone/.next/server/app/workspace.segments/_full.segment.rsc +6 -6
  127. package/.next/standalone/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/workspace.segments/_index.segment.rsc +4 -4
  129. package/.next/standalone/.next/server/app/workspace.segments/_tree.segment.rsc +2 -2
  130. package/.next/standalone/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
  131. package/.next/standalone/.next/server/app/workspace.segments/workspace.segment.rsc +2 -2
  132. package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
  133. package/.next/standalone/.next/server/chunks/3251.js +1 -1
  134. package/.next/standalone/.next/server/chunks/5502.js +1 -1
  135. package/.next/standalone/.next/server/chunks/7051.js +1 -1
  136. package/.next/standalone/.next/server/chunks/7174.js +1 -1
  137. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  138. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  139. package/.next/standalone/.next/server/pages/404.html +1 -1
  140. package/.next/standalone/.next/server/pages/500.html +2 -2
  141. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  142. package/.next/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
  143. package/.next/standalone/node_modules/baseline-browser-mapping/package.json +8 -4
  144. package/.next/standalone/package.json +1 -1
  145. package/.next/static/chunks/1285-9ce20956f9242893.js +9 -0
  146. package/.next/static/chunks/330-60f33582af3e15a5.js +1 -0
  147. package/.next/static/chunks/5167-ed3e0bd0cece4b4a.js +1 -0
  148. package/.next/static/chunks/54a60aa6.867b5520f2f42695.js +79 -0
  149. package/.next/static/chunks/app/settings/relay/page-1d9c7e4751a0d285.js +1 -0
  150. package/.next/static/chunks/app/workspace/[...path]/page-463022f5d199eabc.js +38 -0
  151. package/.next/static/chunks/app/workspace/{layout-9f33c59bd846f401.js → layout-e5fdab2463c57ef5.js} +1 -1
  152. package/.next/static/chunks/{ba12c10f-4a76b94632273ce4.js → ba12c10f-50aff6e7ca86063d.js} +1 -1
  153. package/.next/static/chunks/{webpack-c9a7907951504d87.js → webpack-86242326edb60137.js} +1 -1
  154. package/.next/static/css/aebc553629e4d7c1.css +1 -0
  155. package/README.md +2 -0
  156. package/bin/clawpad.js +22 -0
  157. package/package.json +1 -1
  158. package/.next/static/chunks/1285-513d0a20b39e5e47.js +0 -9
  159. package/.next/static/chunks/330-59824510b74e3d59.js +0 -1
  160. package/.next/static/chunks/4328-1baf4f862559cce8.js +0 -1
  161. package/.next/static/chunks/54a60aa6.0a0062edc9e33358.js +0 -79
  162. package/.next/static/chunks/app/settings/relay/page-e0fd8c840d377b11.js +0 -1
  163. package/.next/static/chunks/app/workspace/[...path]/page-c99cdc1cfdfb0fef.js +0 -1
  164. package/.next/static/css/7328dda059c2e2c3.css +0 -1
  165. /package/.next/static/{dE2vgzBfR9CceWwVrnKdq → 6wBTkYweCDZaRJk9nK9iE}/_buildManifest.js +0 -0
  166. /package/.next/static/{dE2vgzBfR9CceWwVrnKdq → 6wBTkYweCDZaRJk9nK9iE}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1807],{3163:(e,t,n)=>{"use strict";n.d(t,{e:()=>a});var r=n(1934);let s=0,a=(0,r.v)(e=>({items:[],addItem:t=>e(e=>({items:[{...t,id:`activity-${Date.now()}-${++s}`},...e.items].slice(0,20)})),clear:()=>e({items:[]})}))},7814:(e,t,n)=>{"use strict";function r(e){let t=e.replace(/\.md$/,"").split("/").filter(Boolean).map(e=>encodeURIComponent(e));return 0===t.length?"/workspace":`/workspace/${t.join("/")}`}n.d(t,{C:()=>r})},24733:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>nS});var r=n(95155),s=n(12115),a=n(12710),l=n(61878),i=n(51914),o=n(6071),c=n(52799),d=n(89239),u=n(70872),m=n(33210),h=n(19324);function x({...e}){return(0,r.jsx)(h.Root,{"data-slot":"sheet",...e})}function p({...e}){return(0,r.jsx)(h.Portal,{"data-slot":"sheet-portal",...e})}function g({className:e,...t}){return(0,r.jsx)(h.Overlay,{"data-slot":"sheet-overlay",className:(0,c.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function f({className:e,children:t,side:n="right",showCloseButton:s=!0,...a}){return(0,r.jsxs)(p,{children:[(0,r.jsx)(g,{}),(0,r.jsxs)(h.Content,{"data-slot":"sheet-content",className:(0,c.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===n&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===n&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===n&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===n&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...a,children:[t,s&&(0,r.jsxs)(h.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,r.jsx)(m.A,{className:"size-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function b({className:e,...t}){return(0,r.jsx)(h.Title,{"data-slot":"sheet-title",className:(0,c.cn)("text-foreground font-semibold",e),...t})}var v=n(98500),w=n.n(v),j=n(73321),y=n(63393),N=n(89363),k=n(21362),C=n(48368),S=n(51900),A=n(36999),E=n(35585);function $({className:e,children:t,...n}){return(0,r.jsxs)(E.Root,{"data-slot":"scroll-area",className:(0,c.cn)("relative",e),...n,children:[(0,r.jsx)(E.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&>div]:!block [&>div]:!min-w-0",children:t}),(0,r.jsx)(z,{}),(0,r.jsx)(E.Corner,{})]})}function z({className:e,orientation:t="vertical",...n}){return(0,r.jsx)(E.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:t,className:(0,c.cn)("flex touch-none p-px transition-colors select-none","vertical"===t&&"h-full w-2.5 border-l border-l-transparent","horizontal"===t&&"h-2.5 flex-col border-t border-t-transparent",e),...n,children:(0,r.jsx)(E.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var R=n(97916),T=n(45160),_=n(86846),D=n(93571),L=n(70460),M=n(18496),K=n(31328),I=n(53536),P=n(60464);function F(e,t){let n={type:"folder",name:"",path:"",children:[]},r=new Map;for(let s of(r.set("",n),e)){let e=function(e,t){let n=e.replace(/\\/g,"/").replace(/\.md$/,"");if(t===P.Sz)return n;let r=`${t}/`;return n.startsWith(r)?n.slice(r.length):n}(s.path,t),a=e.split("/").filter(Boolean);if(0===a.length)continue;let l=a.pop(),i=n,o="";for(let e of a){let t=o?`${o}/${e}`:e,n=r.get(t);n||(n={type:"folder",name:e,path:t,children:[]},r.set(t,n),i.children.push(n)),i=n,o=t}i.children.push({type:"page",name:l,path:e,page:s})}return n.children}var W=n(7814);function O({onNavigate:e}){return(0,r.jsxs)(w(),{href:"/workspace",onClick:()=>e?.(),className:"flex items-center gap-2 text-[13px] font-semibold leading-none transition-colors hover:text-foreground/80",children:[(0,r.jsx)(D.R,{variant:"wordmark",size:26,theme:"light",alt:"ClawPad",className:"-translate-y-[2px]"}),(0,r.jsx)(G,{})]})}function U({onNavigate:e,isSheet:t,showHeader:n=!0}){let a=(0,j.usePathname)(),o=(0,j.useRouter)(),{spaces:c,expandedSpaces:d,expandedFolders:u,toggleSpace:m,toggleFolder:h,pagesBySpace:x,spacesStatus:p,pagesStatusBySpace:g,pagesErrorBySpace:f,recentPages:b,recentStatus:v,loadSpaces:w,loadRecentPages:k,loadPages:C,setActivePage:S}=(0,M.M)();(0,s.useEffect)(()=>{w(),k()},[w,k]),(0,s.useEffect)(()=>{for(let e of c){if(!d.has(e.path)||e.pageCount<=0)continue;let t=x.get(e.path);t&&!(t.length>0)&&"loading"!==(g.get(e.path)??"idle")&&C(e.path,{force:!0,silent:!0})}},[d,C,x,g,c]),(0,s.useEffect)(()=>{a.startsWith("/workspace/")?S(a.replace("/workspace/","")):S(null)},[a,S]);let A=(0,s.useCallback)(t=>{o.push((0,W.C)(t)),e?.()},[o,e]),E=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}})),e?.()},[e]),z=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"space"}})),e?.()},[e]),T=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette")),e?.()},[e]),D=(0,s.useCallback)(()=>{o.push("/settings"),e?.()},[e,o]);return(0,r.jsxs)("div",{className:"flex h-full w-full flex-col overflow-hidden",children:[n&&(0,r.jsx)("div",{className:"flex h-12 shrink-0 items-center justify-between px-3",children:(0,r.jsx)(O,{onNavigate:e})}),(0,r.jsxs)("div",{className:"shrink-0 space-y-0.5 px-2",children:[(0,r.jsx)(Z,{icon:(0,r.jsx)(l.A,{className:"h-4 w-4"}),label:"Search",shortcut:"⌘K",onClick:T,touchFriendly:t}),(0,r.jsx)(Z,{icon:(0,r.jsx)(i.A,{className:"h-4 w-4"}),label:"New Document",shortcut:"⌘N",onClick:E,touchFriendly:t}),(0,r.jsx)(Z,{icon:(0,r.jsx)(y.A,{className:"h-4 w-4"}),label:"New Space",onClick:z,touchFriendly:t})]}),(0,r.jsx)(R.w,{className:"my-2 shrink-0"}),(0,r.jsx)($,{className:"min-h-0 flex-1 w-full min-w-0 px-2",children:(0,r.jsxs)("div",{className:"w-full py-1",children:[(0,r.jsx)(J,{children:"Spaces"}),"loading"===p&&0===c.length?(0,r.jsxs)("div",{className:"space-y-1 px-2",children:[(0,r.jsx)(_.E,{className:"h-7 w-full"}),(0,r.jsx)(_.E,{className:"h-7 w-full"}),(0,r.jsx)(_.E,{className:"h-7 w-full"})]}):0===c.length?(0,r.jsx)("p",{className:"px-2 py-2 text-xs text-muted-foreground",children:"No spaces yet"}):(0,r.jsx)("div",{className:"space-y-0.5",children:c.map(e=>(0,r.jsx)(q,{space:e,isExpanded:d.has(e.path),expandedFolders:u,pages:x.get(e.path)??[],pageLoadError:f.get(e.path)??null,isLoadingPages:(g.get(e.path)??"idle")==="loading"&&0===(x.get(e.path)??[]).length,pathname:a,touchFriendly:t,onToggle:()=>m(e.path),onToggleFolder:h,onRetryPages:()=>C(e.path,{force:!0}),onNavigate:A},e.path))}),b.length>0&&(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)(J,{children:"Recent"}),(0,r.jsx)("div",{className:"space-y-0.5",children:b.slice(0,5).map(e=>(0,r.jsx)(H,{page:e,isActive:a===(0,W.C)(e.path),touchFriendly:t,onNavigate:()=>A(e.path)},e.path))})]}),"loading"===v&&0===b.length&&(0,r.jsxs)("div",{className:"mt-4 space-y-1 px-2",children:[(0,r.jsx)(J,{children:"Recent"}),(0,r.jsx)(_.E,{className:"h-6 w-full"}),(0,r.jsx)(_.E,{className:"h-6 w-5/6"})]})]})}),(0,r.jsx)(R.w,{className:"shrink-0"}),(0,r.jsxs)("div",{className:"shrink-0 space-y-0.5 px-2 py-2",children:[(0,r.jsx)(X,{}),(0,r.jsx)(V,{touchFriendly:t}),(0,r.jsx)(Z,{icon:(0,r.jsx)(N.A,{className:"h-4 w-4"}),label:"Settings",onClick:D,touchFriendly:t})]})]})}let q=(0,s.memo)(function({space:e,isExpanded:t,expandedFolders:n,pages:s,pageLoadError:a,isLoadingPages:l,pathname:i,touchFriendly:o,onToggle:d,onToggleFolder:u,onRetryPages:m,onNavigate:h}){let x=F(s,e.path),p=t=>t.map(t=>{if("page"===t.type)return(0,r.jsx)(B,{page:t.page,isActive:i===(0,W.C)(t.page.path),touchFriendly:o,onNavigate:()=>h(t.page.path)},t.page.path);let s=`${e.path}/${t.path}`,a=n.has(s);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{type:"button",onClick:()=>u(s),className:(0,c.cn)("relative z-[1] flex w-full min-w-0 cursor-pointer items-center gap-1.5 rounded-md px-2 text-[12px] transition-colors","text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-foreground",o?"py-2 min-h-[44px]":"py-1",a&&"text-foreground"),children:[(0,r.jsx)(k.A,{className:(0,c.cn)("h-3 w-3 shrink-0 transition-transform duration-200",a&&"rotate-90")}),(0,r.jsx)("span",{className:"shrink-0 text-xs",children:"\uD83D\uDCC2"}),(0,r.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:t.name})]}),a&&(0,r.jsx)("div",{className:"ml-3 min-w-0 border-l border-border/50 pl-2 py-0.5",children:p(t.children)})]},s)});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{type:"button",onClick:d,className:(0,c.cn)("relative z-[1] flex w-full min-w-0 cursor-pointer items-center gap-1.5 rounded-md px-2 text-[13px] transition-colors","hover:bg-sidebar-accent",o?"py-2 min-h-[44px]":"py-1",t&&"font-medium"),children:[(0,r.jsx)(k.A,{className:(0,c.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform duration-200",t&&"rotate-90")}),(0,r.jsx)("span",{className:"shrink-0 text-sm",children:e.icon??"\uD83D\uDCC1"}),(0,r.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:e.name}),(0,r.jsx)(T.E,{variant:"secondary",className:"h-4 shrink-0 px-1 text-[10px] font-normal",children:e.pageCount})]}),t&&(0,r.jsx)("div",{className:"ml-3 min-w-0 border-l border-border/50 pl-2 py-0.5",children:l?(0,r.jsxs)("div",{className:"space-y-1 py-1",children:[(0,r.jsx)(_.E,{className:"h-6 w-full"}),(0,r.jsx)(_.E,{className:"h-6 w-3/4"})]}):a&&0===x.length?(0,r.jsxs)("div",{className:"px-2 py-1.5",children:[(0,r.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Couldn't load pages."}),(0,r.jsx)("button",{type:"button",onClick:m,className:"mt-1 cursor-pointer text-[11px] text-primary hover:underline",children:"Retry"})]}):0===x.length?(0,r.jsx)("p",{className:"py-1.5 px-2 text-[11px] text-muted-foreground",children:"No pages yet. Create your first page."}):p(x)})]})}),B=(0,s.memo)(function({page:e,isActive:t,touchFriendly:n,onNavigate:s}){return(0,r.jsxs)("button",{type:"button",onClick:s,className:(0,c.cn)("relative z-[1] flex w-full min-w-0 cursor-pointer items-center gap-1.5 rounded-md px-2 text-[13px] transition-colors pointer-events-auto","text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-foreground",n?"py-2 min-h-[44px]":"py-1",t&&"bg-accent-light text-accent-blue font-medium"),children:[e.icon?(0,r.jsx)("span",{className:"shrink-0 text-xs",children:e.icon}):(0,r.jsx)(C.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,r.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:e.title})]})}),H=(0,s.memo)(function({page:e,isActive:t,touchFriendly:n,onNavigate:s}){return(0,r.jsxs)("button",{type:"button",onClick:s,className:(0,c.cn)("relative z-[1] flex w-full min-w-0 cursor-pointer items-center gap-2 rounded-md px-2 text-[13px] transition-colors overflow-hidden pointer-events-auto","text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-foreground",n?"py-2 min-h-[44px]":"py-1",t&&"bg-accent-light text-accent-blue font-medium"),children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden",children:[e.icon?(0,r.jsx)("span",{className:"shrink-0 text-xs",children:e.icon}):(0,r.jsx)(C.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,r.jsx)("span",{className:"truncate text-left",children:e.title})]}),(0,r.jsx)("span",{className:"shrink-0 whitespace-nowrap tabular-nums text-[11px] font-medium text-muted-foreground/85",children:(0,I.f)(e.modified)})]})});function Z({icon:e,label:t,shortcut:n,onClick:s,touchFriendly:a}){return(0,r.jsxs)("button",{type:"button",onClick:s,className:(0,c.cn)("relative z-[1] flex w-full min-w-0 cursor-pointer items-center gap-2 rounded-md px-2 text-[13px] transition-colors duration-200 pointer-events-auto","text-muted-foreground hover:bg-sidebar-accent hover:text-sidebar-foreground",a?"py-2.5 min-h-[44px]":"py-1.5"),children:[(0,r.jsx)("span",{className:"shrink-0",children:e}),(0,r.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:t}),n&&(0,r.jsx)("kbd",{className:"shrink-0 rounded border border-border/70 bg-muted/70 px-1.5 py-0.5 text-[11px] font-mono font-medium leading-none tracking-tight text-muted-foreground/85",children:n})]})}function J({children:e}){return(0,r.jsx)("h3",{className:"mb-1 px-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e})}function V({touchFriendly:e}){let{resolvedTheme:t,setTheme:n}=(0,L.D)(),s="dark"===t;return(0,r.jsx)(Z,{icon:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.A,{className:"hidden h-4 w-4 dark:inline"}),(0,r.jsx)(A.A,{className:"inline h-4 w-4 dark:hidden"})]}),label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"hidden dark:inline",children:"Light Mode"}),(0,r.jsx)("span",{className:"inline dark:hidden",children:"Dark Mode"})]}),onClick:()=>n(s?"light":"dark"),touchFriendly:e})}function G(){let e=(0,K.z)(e=>e.wsStatus),t=(0,K.z)(e=>e.agentStatus),n=(0,K.z)(e=>e.agentName),s=(0,K.z)(e=>e.wsError),a="connected"===e?"thinking"===t||"active"===t?"bg-[color:var(--cp-brand-2)]":"bg-green-400":"connecting"===e||"reconnecting"===e?"bg-yellow-400":"bg-zinc-400",l="connected"===e?"thinking"===t?`${n??"Agent"}: thinking…`:"active"===t?`${n??"Agent"}: working…`:`${n??"Agent"}: online`:"connecting"===e?`Connecting to gateway…${s?` — ${s}`:""}`:"reconnecting"===e?`Reconnecting to gateway…${s?` — ${s}`:""}`:`Disconnected${s?` — ${s}`:""}`;return(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsxs)("span",{className:"relative flex h-2.5 w-2.5",children:[("connecting"===e||"reconnecting"===e||"thinking"===t||"active"===t)&&(0,r.jsx)("span",{className:(0,c.cn)("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75",a)}),(0,r.jsx)("span",{className:(0,c.cn)("relative inline-flex h-2.5 w-2.5 rounded-full ring-1 ring-[color:var(--cp-brand-border)]",a)})]})}),(0,r.jsx)(u.ZI,{children:l})]})}function X(){let e=(0,K.z)(e=>e.wsStatus),t=(0,K.z)(e=>e.agentStatus),n=(0,K.z)(e=>e.agentName),s=(0,K.z)(e=>e.wsError),a=(0,K.z)(e=>e.detect),l=(0,K.z)(e=>e.connect),i="connected"===e?"bg-green-400":"connecting"===e||"reconnecting"===e?"bg-yellow-400":"bg-red-400",o="connected"===e?"thinking"===t?`${n??"Agent"} thinking…`:"active"===t?`${n??"Agent"} working…`:`${n??"Agent"} online`:"connecting"===e?`Connecting…${s?` — ${s}`:""}`:"reconnecting"===e?`Reconnecting…${s?` — ${s}`:""}`:`Disconnected${s?` — ${s}`:""}`;return(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px]",children:[(0,r.jsxs)("span",{className:"relative flex h-2 w-2",children:[("connecting"===e||"reconnecting"===e)&&(0,r.jsx)("span",{className:(0,c.cn)("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75",i)}),(0,r.jsx)("span",{className:(0,c.cn)("relative inline-flex h-2 w-2 rounded-full",i)})]}),(0,r.jsx)("span",{className:"flex-1 text-[11px] text-muted-foreground",children:o}),"disconnected"===e&&(0,r.jsx)("button",{onClick:()=>{a().then(()=>l())},className:"text-[10px] text-blue-500 hover:text-blue-400 transition-colors",children:"Retry"})]})}function Q(){let e=window.innerWidth;return e<640?"mobile-sm":e<768?"mobile":e<1024?"tablet":"desktop"}function Y(){let[e,t]=(0,s.useState)(()=>Q());return(0,s.useEffect)(()=>{let e=window.matchMedia(`(max-width: ${639}px)`),n=window.matchMedia(`(min-width: 640px) and (max-width: ${767}px)`),r=window.matchMedia(`(min-width: 768px) and (max-width: ${1023}px)`);function s(){t(Q())}return e.addEventListener("change",s),n.addEventListener("change",s),r.addEventListener("change",s),()=>{e.removeEventListener("change",s),n.removeEventListener("change",s),r.removeEventListener("change",s)}},[]),{breakpoint:e,isMobileSm:"mobile-sm"===e,isMobile:"mobile-sm"===e||"mobile"===e,isTablet:"tablet"===e,isDesktop:"desktop"===e}}function ee({className:e,...t}){return(0,r.jsx)("span",{className:(0,c.cn)("absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0","[clip:rect(0,0,0,0)]",e),...t})}function et(){let{sidebarOpen:e,sidebarWidth:t,toggleSidebar:n,setSidebarOpen:m,setSidebarWidth:h}=(0,M.M)(),{isMobile:p,isTablet:g}=Y(),[v,w]=(0,s.useState)(t),[j,y]=(0,s.useState)(!1),N=(0,s.useRef)(null),k=(0,s.useRef)(0),C=(0,s.useRef)(240),S=(0,s.useRef)(240),A=(0,s.useCallback)(e=>Math.max(208,Math.min(e,Math.round(.35*window.innerWidth))),[]);(0,s.useEffect)(()=>{w(t)},[t]),(0,s.useEffect)(()=>{if(p||g)return;let e=()=>{let e=A(S.current);S.current=e,w(e),h(e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[A,p,g,h]),(0,s.useEffect)(()=>{S.current=v,N.current&&(N.current.style.width=`${v}px`)},[v]),(0,s.useEffect)(()=>{if(!j)return;let e=e=>{let t=e.clientX-k.current,n=A(C.current+t);S.current=n,N.current&&(N.current.style.width=`${n}px`)},t=()=>{y(!1);let e=S.current;w(e),h(e)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t),document.body.style.cursor="",document.body.style.userSelect=""}},[A,j,h]);let E=(0,s.useCallback)(t=>{p||g||!e||(t.preventDefault(),k.current=t.clientX,C.current=S.current,y(!0))},[p,g,e]),$=(0,s.useCallback)(()=>{m(!1)},[m]),z=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette"))},[]),R=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]);return p?null:g?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex h-full w-12 flex-col items-center border-r bg-sidebar py-3 gap-2 shrink-0",children:[(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:n,children:(0,r.jsx)(a.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"Open sidebar (⌘\\)"})]}),(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:z,children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"Search (⌘K)"})]}),(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:R,children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"New Document (⌘N)"})]})]}),(0,r.jsx)(x,{open:e,onOpenChange:m,children:(0,r.jsxs)(f,{side:"left",className:"w-72 p-0",showCloseButton:!1,children:[(0,r.jsx)(ee,{children:(0,r.jsx)(b,{children:"Navigation"})}),(0,r.jsx)(U,{onNavigate:$,isSheet:!0})]})})]}):e?(0,r.jsxs)("div",{ref:N,className:"relative flex h-full shrink-0 flex-col border-r bg-sidebar",style:{width:v,minWidth:208,maxWidth:"35vw"},children:[(0,r.jsxs)("div",{className:"flex h-12 shrink-0 items-center justify-between px-3",children:[(0,r.jsx)(O,{}),(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:n,children:(0,r.jsx)(o.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"Close sidebar (⌘\\)"})]})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:(0,r.jsx)(U,{showHeader:!1})}),(0,r.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",onPointerDown:E,className:(0,c.cn)("absolute right-0 top-0 z-20 h-full w-2 cursor-col-resize","group"),children:(0,r.jsx)("div",{className:(0,c.cn)("absolute inset-y-0 right-0 w-px bg-border/70","transition-colors group-hover:bg-[color:var(--cp-brand-2)]",j&&"bg-[color:var(--cp-brand-2)]")})})]}):(0,r.jsxs)("div",{className:"flex h-full w-12 flex-col items-center border-r bg-sidebar py-3 gap-2 shrink-0",children:[(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:n,children:(0,r.jsx)(a.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"Open sidebar (⌘\\)"})]}),(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:z,children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"Search (⌘K)"})]}),(0,r.jsxs)(u.m_,{children:[(0,r.jsx)(u.k$,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:R,children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})}),(0,r.jsx)(u.ZI,{side:"right",children:"New Document (⌘N)"})]})]})}var en=n(21628),er=n(93631),es=n(84980),ea=n(2647),el=n(86901),ei=n(49387),eo=n(34530),ec=n(42129),ed=n(96035),eu=n(92972),em=n(5810),eh=n(53961),ex=n(2467),ep=n(34738);function eg({...e}){return(0,r.jsx)(h.Root,{"data-slot":"dialog",...e})}function ef({...e}){return(0,r.jsx)(h.Portal,{"data-slot":"dialog-portal",...e})}function eb({className:e,...t}){return(0,r.jsx)(h.Overlay,{"data-slot":"dialog-overlay",className:(0,c.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function ev({className:e,children:t,showCloseButton:n=!0,...s}){return(0,r.jsxs)(ef,{"data-slot":"dialog-portal",children:[(0,r.jsx)(eb,{}),(0,r.jsxs)(h.Content,{"data-slot":"dialog-content",className:(0,c.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",e),...s,children:[t,n&&(0,r.jsxs)(h.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,r.jsx)(m.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function ew({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,c.cn)("flex flex-col gap-2 text-center sm:text-left",e),...t})}function ej({className:e,showCloseButton:t=!1,children:n,...s}){return(0,r.jsxs)("div",{"data-slot":"dialog-footer",className:(0,c.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...s,children:[n,t&&(0,r.jsx)(h.Close,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"outline",children:"Close"})})]})}function ey({className:e,...t}){return(0,r.jsx)(h.Title,{"data-slot":"dialog-title",className:(0,c.cn)("text-lg leading-none font-semibold",e),...t})}function eN({className:e,...t}){return(0,r.jsx)(h.Description,{"data-slot":"dialog-description",className:(0,c.cn)("text-muted-foreground text-sm",e),...t})}function ek({className:e,...t}){return(0,r.jsx)(ep.uB,{"data-slot":"command",className:(0,c.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t})}function eC({title:e="Command Palette",description:t="Search for a command to run...",children:n,className:s,showCloseButton:a=!0,...l}){return(0,r.jsx)(eg,{...l,children:(0,r.jsxs)(ev,{className:(0,c.cn)("overflow-hidden p-0",s),showCloseButton:a,children:[(0,r.jsxs)(ew,{className:"sr-only",children:[(0,r.jsx)(ey,{children:e}),(0,r.jsx)(eN,{children:t})]}),(0,r.jsx)(ek,{className:"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:n})]})})}function eS({className:e,...t}){return(0,r.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,r.jsx)(l.A,{className:"size-4 shrink-0 opacity-50"}),(0,r.jsx)(ep.uB.Input,{"data-slot":"command-input",className:(0,c.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t})]})}function eA({className:e,...t}){return(0,r.jsx)(ep.uB.List,{"data-slot":"command-list",className:(0,c.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...t})}function eE({...e}){return(0,r.jsx)(ep.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function e$({className:e,...t}){return(0,r.jsx)(ep.uB.Group,{"data-slot":"command-group",className:(0,c.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t})}function ez({className:e,...t}){return(0,r.jsx)(ep.uB.Separator,{"data-slot":"command-separator",className:(0,c.cn)("bg-border -mx-1 h-px",e),...t})}function eR({className:e,...t}){return(0,r.jsx)(ep.uB.Item,{"data-slot":"command-item",className:(0,c.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}function eT({className:e,...t}){return(0,r.jsx)("span",{"data-slot":"command-shortcut",className:(0,c.cn)("text-muted-foreground ml-auto text-xs tracking-widest",e),...t})}function e_(){let[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(""),[c,d]=(0,s.useState)([]),[u,m]=(0,s.useState)([]),[h,x]=(0,s.useState)(!1),p=(0,j.useRouter)(),{resolvedTheme:g,setTheme:f}=(0,L.D)(),{recentPages:b,spaces:v,toggleChatPanel:w,toggleSidebar:k,createPage:E}=(0,M.M)(),$=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),t(!0))},n=()=>t(!0);return document.addEventListener("keydown",e),window.addEventListener("clawpad:open-command-palette",n),()=>{document.removeEventListener("keydown",e),window.removeEventListener("clawpad:open-command-palette",n)}},[]),(0,s.useEffect)(()=>{e&&fetch("/api/files/recent?limit=8").then(e=>e.ok?e.json():[]).then(e=>m(e)).catch(()=>{})},[e]),(0,s.useEffect)(()=>{if(!n.trim()){d([]),x(!1);return}x(!0);let e=setTimeout(async()=>{$.current?.abort();let e=new AbortController;$.current=e;try{let t=await fetch(`/api/files/search?q=${encodeURIComponent(n)}&limit=10`,{signal:e.signal});if(t.ok){let e=await t.json();d(Array.isArray(e)?e:e.results??[])}}catch(e){e.name}finally{e.signal.aborted||x(!1)}},200);return()=>{clearTimeout(e)}},[n]);let z=(0,s.useCallback)(e=>{p.push((0,W.C)(e)),t(!1),o("")},[p]),R=(0,s.useCallback)(async e=>{try{let t=await E(P.Sz,e);z(t)}catch{}},[E,z]),_=(0,s.useCallback)(()=>{t(!1),window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"space"}}))},[]),D=(0,s.useCallback)(()=>{t(!1),window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]),K=(0,s.useCallback)(e=>{t(e),e||(o(""),d([]))},[]),I=u.length>0?u:b.slice(0,8),F=n.trim().length>0,O=c.length>0;return(0,r.jsxs)(eC,{open:e,onOpenChange:K,children:[(0,r.jsx)(eS,{placeholder:"Search pages or type a command…",value:n,onValueChange:o}),(0,r.jsxs)(eA,{children:[(0,r.jsx)(eE,{children:h?(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2",children:[(0,r.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-muted-foreground border-t-transparent"}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:"Searching…"})]}):F?"No results found.":null}),O&&(0,r.jsxs)(e$,{heading:"Pages",children:[c.map(e=>(0,r.jsxs)(eR,{value:`search-${e.path}`,onSelect:()=>z(e.path),className:"flex flex-col items-start gap-1 py-3",children:[(0,r.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,r.jsx)(C.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,r.jsxs)("span",{className:"truncate font-medium",children:[e.icon&&`${e.icon} `,e.title]}),(0,r.jsx)(T.E,{variant:"secondary",className:"ml-auto shrink-0 text-[10px] px-1.5 py-0",children:e.space}),e.modified&&(0,r.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:function(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4),s=Math.floor(n/36e5),a=Math.floor(n/864e5);if(r<1)return"just now";if(r<60)return`${r}m ago`;if(s<24)return`${s}h ago`;if(a<7)return`${a}d ago`;return t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return""}}(e.modified)})]}),e.snippet&&(0,r.jsx)("p",{className:"ml-6 text-xs text-muted-foreground line-clamp-1 max-w-full",children:e.snippet.replace(/^---[\s\S]*?---\s*/m,"").replace(/^#+\s/gm,"").replace(/\n+/g," ").trim()})]},e.path)),(0,r.jsxs)(eR,{value:`view-all-search-${n}`,onSelect:()=>{p.push(`/workspace/search?q=${encodeURIComponent(n.trim())}`),t(!1),o("")},className:"justify-center text-muted-foreground",children:[(0,r.jsx)(l.A,{className:"mr-2 h-3.5 w-3.5"}),(0,r.jsx)("span",{className:"text-xs",children:"View all results"}),(0,r.jsx)(en.A,{className:"ml-1 h-3 w-3"})]})]}),F&&!O&&!h&&(0,r.jsx)(e$,{heading:"Create",children:(0,r.jsxs)(eR,{value:`create-${n}`,onSelect:()=>R(n.trim()),children:[(0,r.jsx)(er.A,{className:"mr-2 h-4 w-4 text-primary"}),(0,r.jsxs)("span",{children:["Create document: ",(0,r.jsx)("strong",{children:n.trim()})]})]})}),!F&&I.length>0&&(0,r.jsx)(e$,{heading:"Recent Pages",children:I.map(e=>(0,r.jsxs)(eR,{value:`recent-${e.path}`,onSelect:()=>z(e.path),children:[(0,r.jsx)(es.A,{className:"mr-2 h-4 w-4 shrink-0 text-muted-foreground"}),(0,r.jsxs)("div",{className:"flex flex-1 items-center gap-2 overflow-hidden",children:[e.icon&&(0,r.jsx)("span",{className:"shrink-0 text-sm",children:e.icon}),(0,r.jsx)("span",{className:"truncate",children:e.title}),(0,r.jsx)(T.E,{variant:"secondary",className:"ml-auto shrink-0 text-[10px] px-1.5 py-0",children:e.space===P.Sz?P.ke:e.space})]})]},e.path))}),(0,r.jsx)(ez,{}),(0,r.jsxs)(e$,{heading:"Create",children:[(0,r.jsxs)(eR,{value:"new-document",onSelect:D,children:[(0,r.jsx)(i.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"New Document"}),(0,r.jsx)(eT,{children:"⌘N"})]}),(0,r.jsxs)(eR,{value:"new-space",onSelect:_,children:[(0,r.jsx)(y.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"New Space"})]}),(0,r.jsxs)(eR,{value:"new-daily-note",onSelect:()=>{t(!1),R(new Date().toISOString().slice(0,10))},children:[(0,r.jsx)(ea.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"New Daily Note"})]})]}),(0,r.jsxs)(e$,{heading:"AI",children:[(0,r.jsxs)(eR,{value:"ask-agent",onSelect:()=>{let e=M.M.getState();e.chatPanelOpen||e.toggleChatPanel(),t(!1)},children:[(0,r.jsx)(el.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Ask Agent"}),(0,r.jsx)(eT,{children:"⌘⇧L"})]}),(0,r.jsxs)(eR,{value:"summarize-page",onSelect:()=>{let e=M.M.getState();e.chatPanelOpen||e.toggleChatPanel(),t(!1),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{action:"summarize"}}))},children:[(0,r.jsx)(C.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Summarize Page"})]}),(0,r.jsxs)(eR,{value:"improve-writing",onSelect:()=>{let e=M.M.getState();e.chatPanelOpen||e.toggleChatPanel(),t(!1),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{action:"improve"}}))},children:[(0,r.jsx)(ei.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Improve Writing"})]})]}),(0,r.jsxs)(e$,{heading:"Navigation",children:[(0,r.jsxs)(eR,{value:"search-workspace",onSelect:()=>{let e=n.trim();p.push(e?`/workspace/search?q=${encodeURIComponent(e)}`:"/workspace/search"),t(!1),o("")},children:[(0,r.jsx)(l.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Search Workspace"})]}),(0,r.jsxs)(eR,{value:"go-to-settings",onSelect:()=>{p.push("/settings"),t(!1)},children:[(0,r.jsx)(N.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Go to Settings"})]}),(0,r.jsxs)(eR,{value:"go-to-setup",onSelect:()=>{p.push("/setup"),t(!1)},children:[(0,r.jsx)(eo.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Go to Setup"})]}),v.map(e=>(0,r.jsxs)(eR,{value:`space-${e.path}`,onSelect:()=>{M.M.getState().toggleSpace(e.path),t(!1)},children:[(0,r.jsx)(ec.A,{className:"mr-2 h-4 w-4 text-muted-foreground"}),(0,r.jsxs)("span",{children:[e.icon&&`${e.icon} `,e.name]})]},e.path))]}),(0,r.jsxs)(e$,{heading:"Actions",children:[(0,r.jsxs)(eR,{value:"toggle-chat",onSelect:()=>{w(),t(!1)},children:[(0,r.jsx)(ed.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Toggle Chat"}),(0,r.jsx)(eT,{children:"⌘⇧L"})]}),(0,r.jsxs)(eR,{value:"toggle-sidebar",onSelect:()=>{k(),t(!1)},children:[(0,r.jsx)(a.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Toggle Sidebar"}),(0,r.jsx)(eT,{children:"⌘\\"})]}),(0,r.jsxs)(eR,{value:"toggle-dark-mode",onSelect:()=>{f("dark"===g?"light":"dark"),t(!1)},children:["dark"===g?(0,r.jsx)(S.A,{className:"mr-2 h-4 w-4"}):(0,r.jsx)(A.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Toggle Dark Mode"}),(0,r.jsx)(eT,{children:"⌘⇧D"})]}),(0,r.jsxs)(eR,{value:"theme-light",onSelect:()=>{f("light"),t(!1)},children:[(0,r.jsx)(S.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Theme: Light"})]}),(0,r.jsxs)(eR,{value:"theme-dark",onSelect:()=>{f("dark"),t(!1)},children:[(0,r.jsx)(A.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Theme: Dark"})]}),(0,r.jsxs)(eR,{value:"theme-system",onSelect:()=>{f("system"),t(!1)},children:[(0,r.jsx)(eu.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Theme: System"})]}),(0,r.jsxs)(eR,{value:"focus-editor",onSelect:()=>{let e=document.querySelector(".clawpad-editor [contenteditable]")??document.querySelector(".clawpad-editor");e?.focus(),t(!1)},children:[(0,r.jsx)(em.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Focus Editor"}),(0,r.jsx)(eT,{children:"⌘⇧E"})]}),(0,r.jsxs)(eR,{value:"force-save",onSelect:()=>{window.dispatchEvent(new CustomEvent("clawpad:force-save")),t(!1)},children:[(0,r.jsx)(eh.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Save"}),(0,r.jsx)(eT,{children:"⌘S"})]}),(0,r.jsxs)(eR,{value:"keyboard-shortcuts",onSelect:()=>{window.dispatchEvent(new CustomEvent("clawpad:shortcuts-dialog")),t(!1)},children:[(0,r.jsx)(ex.A,{className:"mr-2 h-4 w-4"}),(0,r.jsx)("span",{children:"Keyboard Shortcuts"}),(0,r.jsx)(eT,{children:"⌘/"})]})]})]})]})}var eD=n(60529),eL=n(66609);let eM="clawpad-create-location-suggestions";function eK(){let[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)("document"),[l,i]=(0,s.useState)(""),[o,c]=(0,s.useState)(""),[u,m]=(0,s.useState)(!1),h=(0,j.useRouter)(),{spaces:x,createPage:p,createSpace:g}=(0,M.M)(),f=(0,s.useMemo)(()=>new Set(x.map(e=>e.path)),[x]);(0,s.useEffect)(()=>{let e=e=>{let n=e?.detail;n?.mode==="space"||n?.mode==="folder"?a("space"):a("document"),"string"==typeof n?.title?i(n.title):i(""),"string"==typeof n?.location?c(n.location):"string"==typeof n?.space&&n.space.trim()?c(n.folderPath?`${n.space}/${n.folderPath}`.replace(/^\/+|\/+$/g,""):n.space):c(""),t(!0)};window.addEventListener("clawpad:open-new-page",e),window.addEventListener("clawpad:new-page",e);let n=e=>{"n"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),a("document"),i(""),c(""),t(!0))};return document.addEventListener("keydown",n),()=>{window.removeEventListener("clawpad:open-new-page",e),window.removeEventListener("clawpad:new-page",e),document.removeEventListener("keydown",n)}},[]),(0,s.useEffect)(()=>{if(!e||"document"!==n||o.trim())return;let t=x.find(e=>e.path!==P.Sz)?.path??x[0]?.path??"";t&&c(t)},[o,n,e,x]);let b=()=>{a("document"),i(""),c(""),m(!1)},v=(0,s.useCallback)(async()=>{let e=l.trim();if(e){m(!0);try{if("space"===n){await g(e),t(!1),b(),eL.oR.success("Space created"),h.push("/workspace");return}let r=function(e,t){let n=e.trim();if(!n)return null;let r=n.replace(/^\/+|\/+$/g,"");if(!r)return null;if(r===P.Sz||"root"===r.toLowerCase()||r.toLowerCase()===P.ke.toLowerCase())return{space:P.Sz};let s=r.split("/").filter(Boolean);if(0===s.length)return null;let[a,...l]=s;return t.has(a)?{space:a,folderPath:l.length>0?l.join("/"):void 0}:null}(o,f);if(!r)throw Error("Choose a valid location (space or space/folder path).");let s=await p(r.space,e,{folderPath:r.folderPath});t(!1),b(),h.push((0,W.C)(s)),eL.oR.success("Document created")}catch(t){let e=t instanceof Error?t.message:"space"===n?"Failed to create space.":"Failed to create document.";eL.oR.error(e)}finally{m(!1)}}},[p,g,f,o,n,h,l]),w=(0,s.useCallback)(e=>{"Enter"!==e.key||u||(e.preventDefault(),v())},[u,v]);return(0,r.jsx)(eg,{open:e,onOpenChange:e=>{t(e),e||b()},children:(0,r.jsxs)(ev,{className:"sm:max-w-[440px]",children:[(0,r.jsxs)(ew,{children:[(0,r.jsx)(ey,{children:"space"===n?"New Space":"New Document"}),(0,r.jsx)(eN,{children:"space"===n?"Create a top-level space in your workspace.":"Create a document in a space or nested folder path."})]}),(0,r.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2 rounded-lg border bg-muted/30 p-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>a("document"),className:`rounded-md px-2 py-1.5 text-xs ${"document"===n?"bg-background font-medium shadow-sm":"text-muted-foreground"}`,children:"Document"}),(0,r.jsx)("button",{type:"button",onClick:()=>a("space"),className:`rounded-md px-2 py-1.5 text-xs ${"space"===n?"bg-background font-medium shadow-sm":"text-muted-foreground"}`,children:"Space"})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("label",{htmlFor:"create-title",className:"text-sm font-medium leading-none",children:"space"===n?"Space Name":"Document Name"}),(0,r.jsx)(eD.p,{id:"create-title",placeholder:"space"===n?"e.g. client-work":"Document title…",value:l,onChange:e=>i(e.target.value),onKeyDown:w,autoFocus:!0})]}),"document"===n&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("label",{htmlFor:"create-location",className:"text-sm font-medium leading-none",children:"Location"}),(0,r.jsx)(eD.p,{id:"create-location",list:eM,placeholder:"space or space/folder/path",value:o,onChange:e=>c(e.target.value),onKeyDown:w}),(0,r.jsx)("datalist",{id:eM,children:x.map(e=>(0,r.jsx)("option",{value:e.path,children:e.name},e.path))}),(0,r.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Example: ",(0,r.jsx)("code",{children:"projects/q1/roadmap"})]})]})]}),(0,r.jsxs)(ej,{children:[(0,r.jsx)(d.$,{variant:"outline",onClick:()=>t(!1),children:"Cancel"}),(0,r.jsx)(d.$,{onClick:()=>void v(),disabled:!l.trim()||u,children:u?"Creating…":"space"===n?"Create Space":"Create Document"})]})]})})}var eI=n(84577),eP=n(86726),eF=n(56558),eW=n(15411),eO=n(7915),eU=n(92018),eq=n(6296),eB=n(13545),eH=n(56842),eZ=n(99815),eJ=n(10762),eV=n(72055),eG=n(95672),eX=n(66088),eQ=n(94514),eY=n(38399),e0=n(41730),e1=n(92451),e5=n(17243),e2=n(74643),e4=n(69260),e3=n(6489),e6=n(65576),e9=n(32967),e8=n(13175),e7=n(76597),te=n(25262),tt=n(52159),tn=n(80642),tr=n(18310),ts=n(3163),ta=n(46794),tl=n(83099);let ti=/<\s*\/?\s*(?:think(?:ing)?|thought|antthinking|final)\b/i,to=/<\s*\/?\s*final\b[^<>]*>/gi,tc=/<\s*(\/?)\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;function td(e){let t=[];for(let n of e.matchAll(/(^|\n)(```|~~~)[^\n]*\n[\s\S]*?(?:\n\2(?:\n|$)|$)/g)){let e=(n.index??0)+n[1].length;t.push({start:e,end:e+n[0].length-n[1].length})}for(let n of e.matchAll(/`+[^`]+`+/g)){let e=n.index??0,r=e+n[0].length;t.some(t=>e>=t.start&&r<=t.end)||t.push({start:e,end:r})}return t.sort((e,t)=>e.start-t.start),t}function tu(e,t){return t.some(t=>e>=t.start&&e<t.end)}var tm=n(9921);function th({status:e}){let t=(0,j.useRouter)(),n=(0,tl.W)(e=>e.activeRun),a=(0,tl.W)(e=>e.activeFiles),l=(0,tl.W)(e=>e.lastFileTouchAt),i=(0,tl.W)(e=>e.changeSets),o=(0,tl.W)(e=>e.openReview),d=(0,tl.W)(e=>e.closeReview),u=(0,K.z)(e=>e.agentStatus),m=i.find(e=>"completed"===e.status),[h,x]=(0,s.useState)(!1),p=a.size,g=!!m,f=e?"status":n&&p>0&&"number"==typeof l&&"idle"!==u?"editing":g?"summary":null,b="editing"===f?p:m?.totals.filesChanged??0,v=m?.totals.additions??0,w=m?.totals.deletions??0,y=0===b?"files":1===b?"1 file":`${b} files`,N="summary"===f&&!!m,k=N&&h;if(!f)return null;let C=e?.kind==="alert",S=e?.tone==="error",A=e?(0,c.cn)("flex w-full items-center gap-2 rounded-lg border px-3 py-1.5 text-xs transition-colors","thinking"===e.kind&&"border-[color:var(--cp-brand-border)] bg-[color:var(--cp-status-thinking-bg)] text-[color:var(--cp-status-thinking-text)]","writing"===e.kind&&"border-[color:var(--cp-brand-border)] bg-[color:var(--cp-status-thinking-bg)] text-[color:var(--cp-status-thinking-text)]","background"===e.kind&&"border-border/60 bg-[color:var(--cp-status-neutral-bg)] text-[color:var(--cp-status-neutral-text)]",C&&(S?"border-red-500/40 bg-[color:var(--cp-status-error-bg)] text-[color:var(--cp-status-error-text)]":"border-amber-500/40 bg-[color:var(--cp-status-alert-bg)] text-[color:var(--cp-status-alert-text)]")):"",E=e?(0,c.cn)("inline-flex h-2 w-2 rounded-full",("thinking"===e.kind||"background"===e.kind||"writing"===e.kind)&&"animate-pulse",("thinking"===e.kind||"writing"===e.kind)&&"bg-[color:var(--cp-status-thinking-text)]","background"===e.kind&&"bg-[color:var(--cp-status-neutral-text)]",C&&(S?"bg-[color:var(--cp-status-error-text)]":"bg-[color:var(--cp-status-alert-text)]")):"";return(0,r.jsxs)("div",{className:"mb-2",children:["status"===f&&e&&(0,r.jsxs)("div",{className:A,role:"status","aria-live":"polite",children:[(0,r.jsx)("span",{className:E}),(0,r.jsx)("span",{className:"text-[11px] font-medium",children:e.label}),e.detail&&(0,r.jsx)("span",{className:"max-w-[240px] truncate text-[10px] text-foreground/70",children:e.detail})]}),("editing"===f||"summary"===f)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{N&&x(e=>!e)},className:(0,c.cn)("flex w-full items-center gap-2 border border-border/60 bg-muted/40 px-3 py-1.5 text-xs text-muted-foreground","rounded-lg",N&&"cursor-pointer hover:bg-muted/60"),children:[(0,r.jsx)("span",{className:"inline-flex h-2 w-2 rounded-full bg-[color:var(--cp-brand-2)] animate-pulse"}),(0,r.jsx)("span",{className:"flex-1 text-left",children:"editing"===f?(0,r.jsxs)(r.Fragment,{children:["Editing ",y,"…"]}):(0,r.jsxs)(r.Fragment,{children:[y," changed"," ",(0,r.jsxs)("span",{className:"text-emerald-600",children:["+",v]})," ",(0,r.jsxs)("span",{className:"text-rose-500",children:["-",w]})]})}),N&&(0,r.jsx)("span",{className:"text-muted-foreground/70",children:h?(0,r.jsx)(tm.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(eX.A,{className:"h-3.5 w-3.5"})})]}),k&&m&&(0,r.jsx)("div",{className:"rounded-b-lg border border-t-0 border-border/60 bg-background/95",children:(0,r.jsx)("div",{className:"divide-y divide-border/70",children:m.files.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 text-xs",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{var n;return n=e.path,void(m&&(o(m.id,n),t.push((0,W.C)(n))))},className:"rounded-md border border-border/70 px-2 py-0.5 text-[10px] font-medium text-muted-foreground hover:text-foreground",children:"Diff"}),(0,r.jsx)("button",{type:"button",onClick:()=>{var n;return n=e.path,void(d(),t.push((0,W.C)(n)))},className:"flex-1 truncate text-left text-foreground/80 hover:text-foreground",children:e.path}),(0,r.jsxs)("span",{className:"shrink-0 font-mono text-[11px]",children:[(0,r.jsxs)("span",{className:"text-emerald-600",children:["+",e.additions]})," ",(0,r.jsxs)("span",{className:"text-rose-500",children:["-",e.deletions]})]})]},e.path))})})]})]})}let tx={telegram:{icon:"\uD83D\uDCF1",label:"Telegram",color:"bg-sky-100 text-sky-700 dark:bg-sky-900/40 dark:text-sky-300"},whatsapp:{icon:"\uD83D\uDCAC",label:"WhatsApp",color:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300"},discord:{icon:"\uD83C\uDFAE",label:"Discord",color:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300"},slack:{icon:"\uD83D\uDCBC",label:"Slack",color:"bg-purple-100 text-purple-700 dark:bg-purple-900/40 dark:text-purple-300"},webchat:{icon:"\uD83C\uDF10",label:"Web",color:"bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400"},clawpad:{icon:"\uD83C\uDF10",label:"ClawPad",color:"bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400"},system:{icon:"\uD83E\uDD16",label:"System",color:"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300"}},tp=(0,s.memo)(function({channel:e,sessionKey:t,className:n}){let s=e?e.toLowerCase():t?(t.split(":")[2]??"unknown").toLowerCase():"unknown",a=tx[s];return a&&"webchat"!==s&&"clawpad"!==s?(0,r.jsxs)("span",{className:(0,c.cn)("inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-[10px] font-medium leading-none",a.color,n),children:[(0,r.jsx)("span",{className:"text-[10px]",children:a.icon}),a.label]}):null}),tg=["image/png","image/jpeg","image/gif","image/webp"];function tf(e){return(e.split("/").pop()??e).replace(/\.md$/,"").replace(/[-_]+/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function tb(e){return{title:e.title?.trim()||tf(e.path),path:e.path,space:e.space,modified:e.modified,snippet:e.snippet}}async function tv(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}async function tw(e){let t=[];for(let n of e){if(!tg.includes(n.type))continue;if(n.size>5242880){console.warn(`[chat] Skipping ${n.name}: exceeds 5 MB`);continue}let e=await tv(n);t.push({id:crypto.randomUUID(),dataUrl:e,name:n.name})}return t}let tj=/^\[([^\]]+)\]\s*/,ty=["WebChat","WhatsApp","Telegram","Signal","Slack","Discord","Google Chat","iMessage","Teams","Matrix","Zalo","Zalo Personal","BlueBubbles"],tN=/^\s*\[message_id:\s*[^\]]+\]\s*$/i,tk=/^\s*\[message_id:\s*([^\]]+)\]\s*$/i;function tC(e){var t;let n=e.match(tj);return n?(t=n[1]??"",/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}Z\b/.test(t)||/\d{4}-\d{2}-\d{2} \d{2}:\d{2}\b/.test(t)||ty.some(e=>t.startsWith(`${e} `)))?tA(e.slice(n[0].length)):tA(e):tA(e)}function tS(e){return String(e.preview??e.reason??e.status??"Heartbeat").trim()}function tA(e){if(!e.includes("[message_id:"))return e;let t=e.split(/\r?\n/),n=t.filter(e=>!tN.test(e));return n.length===t.length?e:n.join("\n")}function tE(e){return function(e,t){var n;if(!e||!ti.test(e))return e;let r=t?.mode??"strict",s=t?.trim??"both",a=e;if(to.test(a)){to.lastIndex=0;let e=[],t=td(a);for(let n of a.matchAll(to)){let r=n.index??0;e.push({start:r,length:n[0].length,inCode:tu(r,t)})}for(let t=e.length-1;t>=0;t-=1){let n=e[t];n.inCode||(a=a.slice(0,n.start)+a.slice(n.start+n.length))}}else to.lastIndex=0;let l=td(a);tc.lastIndex=0;let i="",o=0,c=!1;for(let e of a.matchAll(tc)){let t=e.index??0,n="/"===e[1];tu(t,l)||(c?n&&(c=!1):(i+=a.slice(o,t),n||(c=!0)),o=t+e[0].length)}return c&&"preserve"!==r||(i+=a.slice(o)),n=i,"none"===s?n:"start"===s?n.trimStart():n.trim()}(e,{mode:"preserve",trim:"start"})}function t$(e){return e.replace(/^\s*\[Context\][\s\S]*?\[\/Context\]\s*/i,"")}function tz(e){return String(e??"").replace(/\s+/g," ").trim()}function tR(e){let t=e.trim();if(!t)return"main";if(!t.includes(":"))return t;let n=t.split(":");return n[1]?.trim()||t}function tT(e){let t=e.role??"",n=e.content;if("string"==typeof n){let e="assistant"===t?tE(n):tC(n);return"user"===t||"User"===t?t$(e):e}if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text);if(e.length>0){let n=e.join("\n"),r="assistant"===t?tE(n):tC(n);return"user"===t||"User"===t?t$(r):r}}if("string"==typeof e.text){let n=e.text,r="assistant"===t?tE(n):tC(n);return"user"===t||"User"===t?t$(r):r}return null}function t_(e){let t=e.role??"",n=e.content;if("string"==typeof n)return"user"===t||"User"===t?t$(n):n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text);if(e.length>0){let n=e.join("\n");return"user"===t||"User"===t?t$(n):n}}if("string"==typeof e.text){let n=e.text;return"user"===t||"User"===t?t$(n):n}return null}function tD(e){var t;let n;if(null==e)return;if("number"==typeof e||"boolean"==typeof e)return String(e);if("string"==typeof e)n=e;else if("object"==typeof e)if("string"==typeof e.text)n=e.text;else if(Array.isArray(e.content)){let t=e.content.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:null).filter(e=>!!e);n=t.length>0?t.join("\n"):""}else try{n=JSON.stringify(e,null,2)}catch{n=String(e)}else n=String(e);if(!n)return;let r=(t=tL(n)??n).length<=12e4?{text:t,truncated:!1,total:t.length}:{text:t.slice(0,12e4),truncated:!0,total:t.length};return r.truncated?`${r.text}
2
2
 
3
- … truncated (${r.total} chars, showing first ${r.text.length}).`:r.text}function tL(e){let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return null;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return null}}function tM(e){var t;let n,r,s=e.role??"unknown";(function(e){let t=(e.role??"").toLowerCase();if("toolresult"===t||"tool_result"===t||e.toolCallId||e.tool_call_id||e.toolName||e.tool_name)return!0;let n=Array.isArray(e.content)?e.content:null;return!!n?.some(e=>{let t=(e.type??"").toLowerCase();return"toolresult"===t||"tool_result"===t})})(e)&&(s="toolResult");let a=[];"string"==typeof e.content?a=[{type:"text",text:e.content}]:Array.isArray(e.content)?a=e.content.map(e=>({...e,type:e.type||"text",text:e.text})):"string"==typeof e.text&&(a=[{type:"text",text:e.text}]);let l=t_(e),i=!!l&&function(e,t){let n=e.trim();if(!n)return!1;if(/^HEARTBEAT_OK\b/i.test(n)||/^HEARTBEAT\b/i.test(n))return!0;let r=/^System:/i.test(n),s=/\[NETWORK\]/i.test(n),a=/\bRead HEARTBEAT\.md\b/i.test(n);return!!r&&(!!s||!!a)||"system"===(t??"").toLowerCase()}(l,s),o=i?"system":(n=((t=s)??"").toLowerCase(),"user"===t||"User"===t?"user":"assistant"===t?"assistant":"system"===t?"system":"toolresult"===n||"tool_result"===n||"tool"===n||"function"===n?"tool":"assistant");return"user"===o&&(r=!1,a=a.map(e=>{if(!r&&"text"===e.type&&"string"==typeof e.text){let t=t$(e.text);return(t!==e.text&&(r=!0),t.trim())?{...e,text:t}:null}return e}).filter(Boolean)),{role:o,content:a,timestamp:e.timestamp??Date.now(),id:e.id,channel:e.channel,sessionKey:e.sessionKey,raw:e,displayText:tT(e),toolCards:function(e){let t=[],n=Array.isArray(e.content)?e.content:[];for(let e of n)(["toolcall","tool_call","tooluse","tool_use"].includes((e.type??"").toLowerCase())||"string"==typeof e.name&&null!=e.arguments)&&t.push({kind:"call",name:e.name??"tool",args:function(e){if("string"!=typeof e)return e;let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.parse(t)}catch{return e}}(e.arguments??e.args??e.input)});for(let e of n){let n=(e.type??"").toLowerCase();if("toolresult"!==n&&"tool_result"!==n)continue;let r=e.text??e.content??void 0,s=e.name??"tool";t.push({kind:"result",name:s,text:r})}if(("toolresult"===(e.role??"").toLowerCase()||"tool_result"===(e.role??"").toLowerCase()||e.toolCallId||e.tool_call_id||e.toolName||e.tool_name)&&!t.some(e=>"result"===e.kind)){let n=e.toolName??e.tool_name??"tool",r=tT(e)??void 0;t.push({kind:"result",name:n,text:r})}return t}(e),internal:i}}let tK=[1200,3500,7500];function tI(){return new eP.rL({api:"/api/chat"})}let tP=tI(),tF=new eI.ry({transport:tP});function tW({variant:e="default"}){let{chatPanelOpen:t,setChatPanelOpen:n,activePage:a}=(0,M.M)(),l=(0,K.z)(e=>e.connected),o=(0,K.z)(e=>e.wsStatus),u=(0,K.z)(e=>e.reason),h=(0,K.z)(e=>e.wsError),x=(0,K.z)(e=>e.error),p=(0,K.z)(e=>e.agentStatus),g=(0,tl.W)(e=>e.setSessionKey),f=(0,tl.W)(e=>e.loadChangeSets),b=t||"default"!==e,[v,w]=(0,s.useState)("main"),j=(0,s.useRef)("main"),y=(0,s.useRef)(!1),[N,k]=(0,s.useState)(600),[S,A]=(0,s.useState)(!1),E=(0,s.useRef)(0),$=(0,s.useRef)(600),z="default"===e,R=(0,s.useCallback)(e=>Math.max(400,Math.min(e,Math.round(.4*window.innerWidth))),[]);(0,s.useEffect)(()=>{if(!z)return;let e=()=>{k(e=>R(e))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[R,z]),(0,s.useEffect)(()=>{if(!S)return;let e=e=>{let t=E.current-e.clientX;k(R($.current+t))},t=()=>{A(!1)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t),document.body.style.cursor="",document.body.style.userSelect=""}},[R,S]),(0,s.useEffect)(()=>{j.current=v},[v]),(0,s.useEffect)(()=>{b&&(g(v),f())},[b,v,g,f]),(0,s.useEffect)(()=>{if(!b)return;let e=!1;return fetch("/api/gateway/resolve?key=main").then(e=>e.ok?e.json():null).then(t=>{if(e||!t)return;let n="string"==typeof t.resolved?t.resolved.trim():"";n&&(y.current=!0,n!==j.current&&w(n))}).catch(()=>{}),()=>{e=!0}},[b]);let T=(0,s.useRef)(0),{history:_,loading:D,loadingMore:L,hasMore:I,loadMore:P,refetchHistory:F}=function(e,t,n){let[r,a]=(0,s.useState)([]),[l,i]=(0,s.useState)(300),[o,c]=(0,s.useState)(!0),[d,u]=(0,s.useState)(!1),m=(0,s.useRef)(null),h=(0,s.useRef)(0),x=(0,s.useRef)(0),p=(0,s.useRef)(0),g=(0,s.useCallback)(async e=>{let t=n||"main",r=x.current+1;x.current=r;let s=e?.silent===!0;s||(p.current+=1,c(!0));try{let n=await fetch(`/api/gateway/history?limit=1000&sessionKey=${encodeURIComponent(t)}`,{cache:"no-store"}),s=n.ok?await n.json():{messages:[]};if(r!==x.current)return;let l=Array.isArray(s?.messages)?s.messages:[],i=e?.preserveExistingOnEmpty!==!1;a(e=>i&&0===l.length&&e.length>0?e:l)}catch{}finally{s||(p.current=Math.max(0,p.current-1),0===p.current&&c(!1))}},[n]),f=(0,s.useCallback)(e=>!e?.force&&Date.now()-t.current<5e3?Promise.resolve():g({silent:!0}),[g,t]),b=(0,s.useMemo)(()=>r.length<=l?r:r.slice(r.length-l),[r,l]),v=r.length>l,w=(0,s.useCallback)(()=>{u(!0),setTimeout(()=>{i(e=>Math.min(e+100,r.length)),u(!1)},100)},[r.length]);return(0,s.useEffect)(()=>{m.current!==n&&(m.current=n,h.current=0,i(300),g())},[n,g]),(0,s.useEffect)(()=>{if(e){if(r.length>0){h.current=0;return}o||h.current>=3||(h.current+=1,g())}},[e,r.length,o,g]),{history:b,allMessages:r,loading:o,loadingMore:d,hasMore:v,loadMore:w,refetchHistory:f}}(b,T,v),[W,O]=(0,s.useState)(tF),{messages:U,sendMessage:q,addToolApprovalResponse:B,status:H,stop:Z,error:J}=(0,eI.Y_)({chat:W}),V=(0,s.useRef)(null),G=(0,s.useRef)(null),X=(0,s.useRef)(null),Q=(0,s.useRef)(null),Y=(0,s.useRef)(null),ee=(0,s.useRef)(null),et=(0,s.useRef)(null),en="streaming"===H||"submitted"===H,er=(0,s.useRef)(null),[ea,ei]=(0,s.useState)(null),[eo,ec]=(0,s.useState)(!0),[ed,eu]=(0,s.useState)([]),[em,eh]=(0,s.useState)(!1),[ex,ep]=(0,s.useState)(""),[eg,ef]=(0,s.useState)([]),[eb,ev]=(0,s.useState)(!1),[ew,ej]=(0,s.useState)(0),[ey,eN]=(0,s.useState)([]),[ek,eC]=(0,s.useState)(!1),[eS,eA]=(0,s.useState)(""),[eE,e$]=(0,s.useState)([]),[ez,eR]=(0,s.useState)(!1),[eT,e_]=(0,s.useState)(0),eD="connected"!==o,[eL,eM]=(0,s.useState)(!1),eK=eL&&!1,eP=(0,ta.b)(e=>e.events),eG=(0,ta.b)(e=>e.lastEvent),eX=(0,ts.e)(e=>e.items),[eQ,eY]=(0,s.useState)(null),e0=(0,s.useRef)(null),e1=(0,s.useRef)(0),e5=(0,s.useRef)(0),[e2,e4]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{if("idle"===p&&"submitted"!==H&&"streaming"!==H)return;let e=setInterval(()=>{e4(Date.now())},1e3);return()=>clearInterval(e)},[p,H]);let e3=(0,s.useMemo)(()=>{let e=[...U].reverse().find(e=>"assistant"===e.role);return!!e&&t0(e).trim().length>0},[U]),e6=(0,s.useMemo)(()=>{let e=eX.find(e=>"tool-used"===e.type||"sub-agent"===e.type);return e?.timestamp??null},[eX]),e9=(0,s.useMemo)(()=>{if("reconnecting"===o)return{kind:"background",label:"Reconnecting...",detail:h||"Trying to restore the gateway stream"};if("connecting"===o)return{kind:"background",label:"Connecting...",detail:h||"Connecting to the gateway"};if("disconnected"===o)return{kind:"alert",label:"server_unreachable"===u?"ClawPad server unreachable":"Gateway unavailable",detail:h||x||("server_unreachable"===u?"ClawPad is not reachable from this browser.":"OpenClaw gateway is not reachable."),tone:"warn"};let e=eG&&("alert"===eG.indicatorType||"error"===eG.indicatorType)&&!eG.silent?eG:null;if(e){let t=tS(e);return{kind:"alert",label:"error"===e.indicatorType?"Background error":"Background alert",detail:t||void 0,tone:"error"===e.indicatorType?"error":"warn"}}return"submitted"===H?{kind:"thinking",label:"Thinking..."}:"streaming"===H?e3?{kind:"writing",label:"Writing response..."}:{kind:"thinking",label:"Thinking..."}:"thinking"===p?{kind:"thinking",label:"Thinking..."}:"active"===p&&"number"==typeof e6&&e2-e6<=15e3?{kind:"background",label:"Working on a background task..."}:null},[p,x,u,e3,eG,e6,H,e2,h,o]);(0,s.useEffect)(()=>{e0.current&&(clearTimeout(e0.current),e0.current=null);let e=Date.now();if(e9){e5.current=e,eY(t=>!t&&!e9||t&&e9&&t.kind===e9.kind&&t.label===e9.label&&t.detail===e9.detail&&t.tone===e9.tone?t:(e1.current=e,e9));return}if(!eQ)return;let t="alert"===eQ.kind?5e3:"background"===eQ.kind?3e3:1500,n="alert"===eQ.kind?6e3:2500,r=Math.max(Math.max(e1.current+t,e5.current+n)-e,0);return 0===r?void eY(null):(e0.current=setTimeout(()=>{eY(null),e0.current=null},r),()=>{e0.current&&(clearTimeout(e0.current),e0.current=null)})},[e9,eQ]),(0,s.useEffect)(()=>{if(!a)return void ei(null);let e=!1;return ec(!0),(async()=>{try{let t=await fetch(`/api/files/pages/${encodeURIComponent(a)}`);if(!t.ok)throw Error("Failed to load page");let n=await t.json();if(e)return;let r=n?.meta;if(r?.path)return void ei(tb({title:r.title,path:r.path,space:r.space,modified:r.modified}))}catch{}e||ei(tb({title:tf(a),path:a}))})(),()=>{e=!0}},[a]);let e8=(0,s.useCallback)(()=>{let e={};eo&&ea&&(e.activePage=ea);let t=ed.filter(t=>!e.activePage||t.path!==e.activePage.path);return t.length>0?(e.attachedPages=t,e.scope="custom"):e.activePage&&(e.scope="current"),Object.keys(e).length>0?e:null},[ea,ed,eo]),e7=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=t.slice(0,n),s=r.lastIndexOf("@");if(-1===s){eh(!1),ep(""),Q.current=null;return}let a=r[s-1],l=!a||/[\s([{]/.test(a),i=r.slice(s+1);if(!l||/\s/.test(i)){eh(!1),ep(""),Q.current=null;return}Q.current={start:s,end:n},ep(i),eh(!0),eC(!1),eA(""),ee.current=null},[]),te=(0,s.useCallback)(async()=>{if(!ez&&!(eE.length>0)){eR(!0);try{let e=await fetch("/api/openclaw/commands"),t=e.ok?await e.json():null,n=Array.isArray(t?.commands)?t.commands.filter(e=>!!(e&&"string"==typeof e.name)).map(e=>({name:e.name,description:e.description??"",disabled:e.disabled})):[];e$(n),e_(0)}catch{e$([])}finally{eR(!1)}}},[eE.length,ez]),tr=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=t.slice(0,n),s=r.lastIndexOf("/");if(-1===s){eC(!1),eA(""),ee.current=null;return}let a=r[s-1],l=!a||/[\s([{]/.test(a),i=r.slice(s+1);if(!l||/\s/.test(i)){eC(!1),eA(""),ee.current=null;return}ee.current={start:s,end:n},eA(i),eC(!0),eh(!1),ep(""),Q.current=null,te()},[te]),ti=(0,s.useCallback)(e=>{let t=G.current,n=ee.current;if(!t||!n)return;let r=t.value,s=r.slice(0,n.start),a=r.slice(n.end),l=`/${e}`,i=a.startsWith(" ")?"":" ",o=`${s}${l}${i}${a}`,c=s.length+l.length+i.length;t.value=o,t.setSelectionRange(c,c),t.focus(),eC(!1),eA(""),ee.current=null,requestAnimationFrame(()=>{let e=G.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,150)}px`)})},[]),to=(0,s.useCallback)(e=>{let t=G.current,n=Q.current;if(!t||!n)return;let r=t.value,s=r.slice(0,n.start),a=r.slice(n.end),l=`@${e.title}`,i=a.startsWith(" ")?"":" ",o=`${s}${l}${i}${a}`,c=s.length+l.length+i.length;t.value=o,t.setSelectionRange(c,c),t.focus(),eu(t=>t.some(t=>t.path===e.path)?t:[...t,e]),eh(!1),ep(""),Q.current=null,requestAnimationFrame(()=>{let e=G.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,150)}px`)})},[]),tc=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=e.selectionEnd??n;e.value=`${t.slice(0,n)}@${t.slice(r)}`;let s=n+1;e.setSelectionRange(s,s),e.focus(),e7()},[e7]);(0,s.useEffect)(()=>{if(!em)return void ev(!1);let e=!1,t=ex.trim();!t&&ey.length>0&&ef(ey);let n=setTimeout(async()=>{if(!e){ev(!0);try{let n=t?`/api/files/search?q=${encodeURIComponent(t)}&limit=8`:"/api/files/recent?limit=8",r=await fetch(n),s=r.ok?await r.json():[];if(e)return;let a=Array.isArray(s)?s.map(e=>tb(e)):[];ef(a),t||eN(a),ej(0)}catch{e||ef([])}finally{e||ev(!1)}}},150);return()=>{e=!0,clearTimeout(n)}},[em,ex,ey]),(0,s.useEffect)(()=>{b&&te()},[b,te]),(0,s.useEffect)(()=>{if(!b)return;let e=!1;return(async()=>{try{let t=await fetch("/api/files/recent?limit=8");if(!t.ok)return;let n=await t.json();if(e)return;let r=Array.isArray(n)?n.map(e=>tb(e)):[];eN(r)}catch{}})(),()=>{e=!0}},[b]),(0,s.useEffect)(()=>{b||(eh(!1),ep(""),Q.current=null,eC(!1),eA(""),ee.current=null)},[b]),(0,s.useEffect)(()=>{if(!em)return;let e=e=>{let t=e.target;Y.current&&!Y.current.contains(t)&&(eh(!1),ep(""),Q.current=null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[em]),(0,s.useEffect)(()=>{if(!ek)return;let e=e=>{let t=e.target;et.current&&!et.current.contains(t)&&(eC(!1),eA(""),ee.current=null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[ek]);let[td,tu]=(0,s.useState)([]),tm=(0,s.useRef)(null),tx=(0,s.useRef)([]),tp=(0,s.useRef)(null),tv=(0,s.useRef)(null),tj=(0,s.useRef)(""),ty=(0,s.useRef)(new Map),tN=(0,s.useRef)([]),tC=(0,s.useRef)(null),tA=(0,s.useRef)(null),[tE,t$]=(0,s.useState)([]),tT=(0,s.useCallback)(()=>{t$(tN.current.map(e=>ty.current.get(e)).filter(e=>!!e))},[]),tL=(0,s.useCallback)((e=!1)=>{if(e){tC.current&&(clearTimeout(tC.current),tC.current=null),tT();return}tC.current||(tC.current=setTimeout(()=>{tC.current=null,tT()},80))},[tT]),tP=(0,s.useCallback)(()=>{ty.current.clear(),tN.current=[],tA.current=null,tC.current&&(clearTimeout(tC.current),tC.current=null),t$([])},[]);(0,s.useEffect)(()=>{let e=tm.current;e&&("streaming"===H?tu(t=>t.map(t=>t.id===e&&"sending"===t.status?{...t,status:"sent"}:t)):"ready"===H&&(tu(t=>t.map(t=>t.id===e&&("sending"===t.status||"streaming"===t.status)?{...t,status:"sent"}:t)),tm.current=null))},[H]),(0,s.useEffect)(()=>{if(J&&tm.current){let e=tm.current;tu(t=>t.map(t=>t.id===e?{...t,status:"error"}:t)),tm.current=null}},[J]);let tW=(0,s.useRef)(!0),tB=(0,s.useRef)(0),[tJ,tV]=(0,s.useState)(0),tG=(0,s.useCallback)((e="smooth")=>{let t=V.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;t.scrollTo({top:n>0?n:0,behavior:e})},[]),tX=(0,s.useCallback)(()=>{let e=V.current;!e||(tW.current=e.scrollHeight-e.scrollTop-e.clientHeight<100,tW.current&&tV(0))},[]),tY=(0,s.useCallback)(e=>{if("tool"!==e.stream)return;let t="string"==typeof e.sessionKey?e.sessionKey:void 0,n=j.current||"main";if(y.current&&t&&t!==n)return;let r="string"==typeof e.runId?e.runId:"unknown",s=e.data??{},a="string"==typeof s.toolCallId?s.toolCallId:"";if(!a)return;let l="string"==typeof s.name?s.name:"tool",i="string"==typeof s.phase?s.phase:"unknown",o="start"===i||"update"===i||"result"===i||"error"===i?i:"unknown",c="start"===o?s.args:void 0,d="update"===o?tD(s.partialResult):"result"===o?tD(s.result):"error"===o?tD(s.error??s.result):void 0,u=Date.now();tA.current&&tA.current!==r&&"start"===o&&tP(),tA.current=r;let m=ty.current.get(a);if(m?(m.name=l,m.phase=o,void 0!==c&&(m.args=c),void 0!==d&&(m.output=d),m.updatedAt=u):(m={toolCallId:a,runId:r,sessionKey:t,name:l,args:c,output:d,phase:o,startedAt:"number"==typeof e.ts?e.ts:u,updatedAt:u},ty.current.set(a,m),tN.current.push(a)),tN.current.length>50){let e=tN.current.length-50;for(let t of tN.current.splice(0,e))ty.current.delete(t)}tL("result"===o||"error"===o)},[tP,tL]),t5=(0,s.useMemo)(()=>{let e=[];for(let t of _){let n=tM(t);if(!n.internal)continue;let r=(n.displayText?.trim()??"").replace(/^System:\s*/i,"").trim();if(!r)continue;let{kind:s,tone:a}=function(e){let t=e.toLowerCase(),n=t.startsWith("heartbeat")||t.includes("heartbeat_ok")||t.includes("heartbeat"),r=/error|failed|denied|blocked|timeout|unavailable/i.test(t),s=/\[network\]|warning|alert/i.test(t);return r?{kind:"alert",tone:"error"}:s?{kind:"alert",tone:"warn"}:n?{kind:"heartbeat"}:{kind:"system"}}(r);e.push({id:`sys-${n.timestamp}-${e.length}`,kind:s,tone:a,text:r,timestamp:n.timestamp,source:"system"})}return e},[_]),t2=(0,s.useMemo)(()=>{let e=[];return eP.forEach((t,n)=>{let r=tS(t);if(!r)return;let s="alert"===t.indicatorType||"error"===t.indicatorType;e.push({id:`hb-${t.ts}-${n}`,kind:s?"alert":"heartbeat",tone:"error"===t.indicatorType?"error":s?"warn":void 0,text:r,timestamp:t.ts,source:"heartbeat"})}),e},[eP]),t4=(0,s.useMemo)(()=>{let e=[...t5,...t2].sort((e,t)=>t.timestamp-e.timestamp),t=new Set,n=[];for(let r of e){let e=`${r.source}-${r.timestamp}-${r.text}`;t.has(e)||(t.add(e),n.push(r))}return n},[t5,t2]),t3=(0,s.useMemo)(()=>{var e=function(e,t,n,r,s,a){let l=[],i=new Map;for(let n=0;n<e.length;n+=1){let r=e[n];i.set(r,n);let s=tM(r);!s.internal&&(t||"tool"!==s.role)&&l.push({kind:"message",normalized:s})}for(let t of n){let n=tz(t.text);l.some(r=>{var s;if("message"!==r.kind)return!1;let a=r.normalized;if(a.role!==t.role)return!1;let l=t_(a.raw),o=l?function(e){if(!e.includes("[message_id:"))return null;for(let t of e.split(/\r?\n/)){let e=t.match(tk);if(e)return(e[1]??"").trim()||null}return null}(l):null;if(o&&o===t.id)return!0;let c=tz(a.displayText);if(!c||!n||c!==n)return!1;let d="number"==typeof(s=a.raw.timestamp)&&Number.isFinite(s)?s<1e12?1e3*s:s:null;if(null!==d){let e=3e5>Math.abs(d-t.timestamp),n=d>=t.timestamp-5e3;return e&&n}let u=i.get(a.raw);return"number"==typeof u&&u>=e.length-5})||l.push({kind:"optimistic",message:t})}if(t)for(let e of r)l.push({kind:"tool-stream",entry:e});if(a&&s.length>0){let e=s[s.length-1];"assistant"===e.role&&l.push({kind:"stream",message:e,isStreaming:a})}return l}(_,eL,td,tE,U,en);let t=[],n=null;for(let r of e)if("message"===r.kind)n&&n.role===r.normalized.role?n.messages.push(r.normalized):(n&&t.push(n),n={kind:"group",role:r.normalized.role,messages:[r.normalized],timestamp:r.normalized.timestamp});else if(n&&(t.push(n),n=null),"optimistic"===r.kind)t.push({kind:"optimistic-group",messages:[r.message]});else if("tool-stream"===r.kind){let e=t[t.length-1];e&&"tool-stream-group"===e.kind?e.entries.push(r.entry):t.push({kind:"tool-stream-group",entries:[r.entry]})}else"stream"===r.kind?t.push({kind:"stream-group",message:r.message,isStreaming:r.isStreaming}):"indicator"===r.kind&&t.push({kind:"indicator-group",status:r.status});return n&&t.push(n),t},[_,eL,td,tE,U,en]),t6=t3.length>0||eL&&t4.length>0;(0,s.useEffect)(()=>{let e=t3.length;if(0===tB.current&&e>0){tB.current=e,tW.current=!0,b&&requestAnimationFrame(()=>tG("auto"));return}tW.current?requestAnimationFrame(()=>tG("smooth")):e>tB.current&&tB.current>0&&tV(t=>t+(e-tB.current)),tB.current=e},[t3.length,tG,b]);let t9=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!b){t9.current=!1;return}!D&&(t9.current||(t9.current=!0,tW.current=!0,tV(0),requestAnimationFrame(()=>{tG("auto"),setTimeout(()=>tG("auto"),150)})))},[b,D,tG]);let t8=(0,s.useRef)(null),t7=(0,s.useCallback)(()=>{let e=V.current;e&&(t8.current={prevScrollHeight:e.scrollHeight,prevScrollTop:e.scrollTop}),P()},[P]);(0,s.useLayoutEffect)(()=>{let e=t8.current;if(!e)return;let t=V.current;if(!t)return;let n=t.scrollHeight-e.prevScrollHeight;0!==n&&(t.scrollTop=e.prevScrollTop+n),t8.current=null},[t3.length]),(0,s.useEffect)(()=>{en&&tW.current&&requestAnimationFrame(()=>tG("smooth"))},[en,U,tE,tG]),(0,s.useEffect)(()=>{if(!b)return;let e=null,t=null,n=!1,r=!1,s=null,a=(e=!1)=>{n=n||e,t&&clearTimeout(t),t=setTimeout(()=>{let e=n;n=!1,t=null,F({force:e})},e?80:250)};return!function t(){r||((e=new EventSource("/api/gateway/events")).addEventListener("gateway",e=>{try{let n=JSON.parse(e.data);if("number"==typeof n.seq&&(null!==s&&n.seq>s+1&&a(!0),s=n.seq),"agent"===n.event&&n.payload&&tY(n.payload),"chat"===n.event&&n.payload){var t;let e,r,s=n.payload,l=j.current||"main";if(y.current&&s.sessionKey&&(t=s.sessionKey,e=t.trim(),r=l.trim(),e&&r&&e!==r&&tR(e)!==tR(r)))return;let i=s.state;a("final"===i||"error"===i||"aborted"===i)}}catch{}}),e.onerror=()=>{e?.close(),e=null,r||setTimeout(t,5e3)})}(),()=>{r=!0,t&&clearTimeout(t),n=!1,e?.close()}},[tY,b,F]),(0,s.useEffect)(()=>{if(!b)return;let e=window.setInterval(()=>{F()},5e3);return()=>{window.clearInterval(e)}},[b,F]);let[ne,nt]=(0,s.useState)([]),[nn,nr]=(0,s.useState)({}),[ns,na]=(0,s.useState)(!1),nl=(0,s.useCallback)(async e=>{let t=await tw(e);t.length>0&&(nt(e=>[...e,...t]),G.current?.focus())},[]),ni=(0,s.useCallback)(e=>{nt(t=>t.filter(t=>t.id!==e))},[]),no=(0,s.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of Array.from(t))if("file"===e.kind&&tg.includes(e.type)){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),nl(n))},[nl]),nc=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer?.types.includes("Files")&&na(!0)},[]),nd=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getBoundingClientRect(),{clientX:n,clientY:r}=e;(n<=t.left||n>=t.right||r<=t.top||r>=t.bottom)&&na(!1)},[]),nu=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),na(!1);let t=Array.from(e.dataTransfer?.files??[]).filter(e=>tg.includes(e.type));t.length>0&&nl(t)},[nl]),nm=(0,s.useCallback)(e=>{let t=Array.from(e.target.files??[]);t.length>0&&nl(t),e.target.value=""},[nl]),nh=(0,s.useCallback)(()=>{O(new eI.ry({transport:tI()})),nt([]),eu([]),ec(!0),eh(!1),ep(""),Q.current=null,tu([]),nr({}),tP(),tm.current=null,G.current&&(G.current.value="",G.current.style.height="auto",G.current.focus())},[tP]);(0,s.useEffect)(()=>{if("default"===e)return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t);function t(e){e.metaKey&&e.shiftKey&&"l"===e.key&&(e.preventDefault(),n(!0))}},[n,e]),(0,s.useEffect)(()=>{if(t||"default"!==e){let e=setTimeout(()=>{G.current?.focus()},100);return()=>clearTimeout(e)}},[t,e]);let nx=(0,s.useCallback)(async(e,t)=>{if(eD)return;let n=ne.length>0;if(!e.trim()&&!n)return;let r=e.trim()||(n?"What's in this image?":"");if(!r)return;tP();let s=t?.messageId?.trim()||crypto.randomUUID(),a=ne.map(e=>e.dataUrl),l={id:s,role:"user",text:r,images:a.length>0?a:void 0,timestamp:Date.now(),status:"sending"};tu(e=>[...e,l]),a.length>0&&nr(e=>({...e,[s]:a})),tm.current=s,T.current=Date.now(),nt([]),G.current&&(G.current.value="",G.current.style.height="auto"),eh(!1),ep(""),Q.current=null;let i=e8();for(let e of tK)window.setTimeout(()=>{F({force:!0})},e);try{await q({text:r},{body:{sessionKey:j.current||"main",pageContext:i?.activePage?.path??void 0,context:i??void 0,images:a.length>0?a:void 0}}),setTimeout(()=>{tu(e=>e.map(e=>e.id===s&&"sending"===e.status?{...e,status:"sent"}:e))},2e3)}catch(e){console.error("[chat] sendMessage error:",e),t?.messageId&&(tx.current=tx.current.filter(e=>e!==t.messageId),tv.current===t.messageId&&(tv.current=null,tj.current="")),tu(e=>e.map(e=>e.id===s?{...e,status:"error"}:e))}},[eD,q,ne,e8,F,tP]);(0,s.useEffect)(()=>{let e=e=>{let r=e.detail??{},s=r.messageId?.trim()||crypto.randomUUID(),l=function(e,t){if(e.message&&e.message.trim()){let t=[e.message.trim()];return e.messageId?.trim()&&t.push(`[message_id: ${e.messageId.trim()}]`),t.join("\n\n")}if(!e.action)return null;let n=e.selection?.trim()??"",r=(e.pagePath??t??"").trim(),s=n.length>0,a="continue"===e.action?s?"context below":"referenced page":s?"selected text":"referenced page",l=[function(e,t){switch(e){case"improve":return`Improve the writing of the ${t}. Return only the improved text.`;case"simplify":return`Simplify the ${t} while preserving meaning. Return only the simplified text.`;case"expand":return`Expand the ${t} with more detail while preserving meaning. Return only the expanded text.`;case"summarize":return`Summarize the ${t} concisely. Return only the summary.`;case"fix-grammar":return`Fix grammar, spelling, and punctuation in the ${t}. Return only the corrected text.`;case"continue":return`Continue writing from the ${t}. Return only the continuation.`;default:return`Please help with the ${t}.`}}(e.action,a)];return r&&l.push(`Reference: ${r}`),n&&l.push(`Selected text:
3
+ … truncated (${r.total} chars, showing first ${r.text.length}).`:r.text}function tL(e){let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return null;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return null}}function tM(e){var t;let n,r,s=e.role??"unknown";(function(e){let t=(e.role??"").toLowerCase();if("toolresult"===t||"tool_result"===t||e.toolCallId||e.tool_call_id||e.toolName||e.tool_name)return!0;let n=Array.isArray(e.content)?e.content:null;return!!n?.some(e=>{let t=(e.type??"").toLowerCase();return"toolresult"===t||"tool_result"===t})})(e)&&(s="toolResult");let a=[];"string"==typeof e.content?a=[{type:"text",text:e.content}]:Array.isArray(e.content)?a=e.content.map(e=>({...e,type:e.type||"text",text:e.text})):"string"==typeof e.text&&(a=[{type:"text",text:e.text}]);let l=t_(e),i=!!l&&function(e,t){let n=e.trim();if(!n)return!1;if(/^HEARTBEAT_OK\b/i.test(n)||/^HEARTBEAT\b/i.test(n))return!0;let r=/^System:/i.test(n),s=/\[NETWORK\]/i.test(n),a=/\bRead HEARTBEAT\.md\b/i.test(n);return!!r&&(!!s||!!a)||"system"===(t??"").toLowerCase()}(l,s),o=i?"system":(n=((t=s)??"").toLowerCase(),"user"===t||"User"===t?"user":"assistant"===t?"assistant":"system"===t?"system":"toolresult"===n||"tool_result"===n||"tool"===n||"function"===n?"tool":"assistant");return"user"===o&&(r=!1,a=a.map(e=>{if(!r&&"text"===e.type&&"string"==typeof e.text){let t=t$(e.text);return(t!==e.text&&(r=!0),t.trim())?{...e,text:t}:null}return e}).filter(Boolean)),{role:o,content:a,timestamp:e.timestamp??Date.now(),id:e.id,channel:e.channel,sessionKey:e.sessionKey,raw:e,displayText:tT(e),toolCards:function(e){let t=[],n=Array.isArray(e.content)?e.content:[];for(let e of n)(["toolcall","tool_call","tooluse","tool_use"].includes((e.type??"").toLowerCase())||"string"==typeof e.name&&null!=e.arguments)&&t.push({kind:"call",name:e.name??"tool",args:function(e){if("string"!=typeof e)return e;let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.parse(t)}catch{return e}}(e.arguments??e.args??e.input)});for(let e of n){let n=(e.type??"").toLowerCase();if("toolresult"!==n&&"tool_result"!==n)continue;let r=e.text??e.content??void 0,s=e.name??"tool";t.push({kind:"result",name:s,text:r})}if(("toolresult"===(e.role??"").toLowerCase()||"tool_result"===(e.role??"").toLowerCase()||e.toolCallId||e.tool_call_id||e.toolName||e.tool_name)&&!t.some(e=>"result"===e.kind)){let n=e.toolName??e.tool_name??"tool",r=tT(e)??void 0;t.push({kind:"result",name:n,text:r})}return t}(e),internal:i}}let tK=[1200,3500,7500];function tI(){return new eP.rL({api:"/api/chat"})}let tP=tI(),tF=new eI.ry({transport:tP});function tW({variant:e="default"}){let{chatPanelOpen:t,setChatPanelOpen:n,activePage:a}=(0,M.M)(),l=(0,K.z)(e=>e.connected),o=(0,K.z)(e=>e.wsStatus),u=(0,K.z)(e=>e.reason),h=(0,K.z)(e=>e.wsError),x=(0,K.z)(e=>e.error),p=(0,K.z)(e=>e.agentStatus),g=(0,tl.W)(e=>e.setSessionKey),f=(0,tl.W)(e=>e.loadChangeSets),b=t||"default"!==e,[v,w]=(0,s.useState)("main"),j=(0,s.useRef)("main"),y=(0,s.useRef)(!1),[N,k]=(0,s.useState)(600),[S,A]=(0,s.useState)(!1),E=(0,s.useRef)(0),$=(0,s.useRef)(600),z="default"===e,R=(0,s.useCallback)(e=>Math.max(400,Math.min(e,Math.round(.4*window.innerWidth))),[]);(0,s.useEffect)(()=>{if(!z)return;let e=()=>{k(e=>R(e))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[R,z]),(0,s.useEffect)(()=>{if(!S)return;let e=e=>{let t=E.current-e.clientX;k(R($.current+t))},t=()=>{A(!1)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t),document.body.style.cursor="",document.body.style.userSelect=""}},[R,S]),(0,s.useEffect)(()=>{j.current=v},[v]),(0,s.useEffect)(()=>{b&&(g(v),f())},[b,v,g,f]),(0,s.useEffect)(()=>{if(!b)return;let e=!1;return fetch("/api/gateway/resolve?key=main").then(e=>e.ok?e.json():null).then(t=>{if(e||!t)return;let n="string"==typeof t.resolved?t.resolved.trim():"";n&&(y.current=!0,n!==j.current&&w(n))}).catch(()=>{}),()=>{e=!0}},[b]);let T=(0,s.useRef)(0),{history:_,loading:D,loadingMore:L,hasMore:I,loadMore:P,refetchHistory:F}=function(e,t,n){let[r,a]=(0,s.useState)([]),[l,i]=(0,s.useState)(300),[o,c]=(0,s.useState)(!0),[d,u]=(0,s.useState)(!1),m=(0,s.useRef)(null),h=(0,s.useRef)(0),x=(0,s.useRef)(0),p=(0,s.useRef)(0),g=(0,s.useCallback)(async e=>{let t=n||"main",r=x.current+1;x.current=r;let s=e?.silent===!0;s||(p.current+=1,c(!0));try{let n=await fetch(`/api/gateway/history?limit=1000&sessionKey=${encodeURIComponent(t)}`,{cache:"no-store"}),s=n.ok?await n.json():{messages:[]};if(r!==x.current)return;let l=Array.isArray(s?.messages)?s.messages:[],i=e?.preserveExistingOnEmpty!==!1;a(e=>i&&0===l.length&&e.length>0?e:l)}catch{}finally{s||(p.current=Math.max(0,p.current-1),0===p.current&&c(!1))}},[n]),f=(0,s.useCallback)(e=>!e?.force&&Date.now()-t.current<5e3?Promise.resolve():g({silent:!0}),[g,t]),b=(0,s.useMemo)(()=>r.length<=l?r:r.slice(r.length-l),[r,l]),v=r.length>l,w=(0,s.useCallback)(()=>{u(!0),setTimeout(()=>{i(e=>Math.min(e+100,r.length)),u(!1)},100)},[r.length]);return(0,s.useEffect)(()=>{m.current!==n&&(m.current=n,h.current=0,i(300),g())},[n,g]),(0,s.useEffect)(()=>{if(e){if(r.length>0){h.current=0;return}o||h.current>=3||(h.current+=1,g())}},[e,r.length,o,g]),{history:b,allMessages:r,loading:o,loadingMore:d,hasMore:v,loadMore:w,refetchHistory:f}}(b,T,v),[W,O]=(0,s.useState)(tF),{messages:U,sendMessage:q,addToolApprovalResponse:B,status:H,stop:Z,error:J}=(0,eI.Y_)({chat:W}),V=(0,s.useRef)(null),G=(0,s.useRef)(null),X=(0,s.useRef)(null),Q=(0,s.useRef)(null),Y=(0,s.useRef)(null),ee=(0,s.useRef)(null),et=(0,s.useRef)(null),en="streaming"===H||"submitted"===H,er=(0,s.useRef)(null),[ea,ei]=(0,s.useState)(null),[eo,ec]=(0,s.useState)(!0),[ed,eu]=(0,s.useState)([]),[em,eh]=(0,s.useState)(!1),[ex,ep]=(0,s.useState)(""),[eg,ef]=(0,s.useState)([]),[eb,ev]=(0,s.useState)(!1),[ew,ej]=(0,s.useState)(0),[ey,eN]=(0,s.useState)([]),[ek,eC]=(0,s.useState)(!1),[eS,eA]=(0,s.useState)(""),[eE,e$]=(0,s.useState)([]),[ez,eR]=(0,s.useState)(!1),[eT,e_]=(0,s.useState)(0),eD="connected"!==o,[eL,eM]=(0,s.useState)(!1),eK=eL&&!1,eP=(0,ta.b)(e=>e.events),eG=(0,ta.b)(e=>e.lastEvent),eX=(0,ts.e)(e=>e.items),[eQ,eY]=(0,s.useState)(null),e0=(0,s.useRef)(null),e1=(0,s.useRef)(0),e5=(0,s.useRef)(0),[e2,e4]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{if("idle"===p&&"submitted"!==H&&"streaming"!==H)return;let e=setInterval(()=>{e4(Date.now())},1e3);return()=>clearInterval(e)},[p,H]);let e3=(0,s.useMemo)(()=>{let e=[...U].reverse().find(e=>"assistant"===e.role);return!!e&&t0(e).trim().length>0},[U]),e6=(0,s.useMemo)(()=>{let e=eX.find(e=>"tool-used"===e.type||"sub-agent"===e.type);return e?.timestamp??null},[eX]),e9=(0,s.useMemo)(()=>{if("reconnecting"===o)return{kind:"background",label:"Reconnecting...",detail:h||"Trying to restore the gateway stream"};if("connecting"===o)return{kind:"background",label:"Connecting...",detail:h||"Connecting to the gateway"};if("disconnected"===o)return{kind:"alert",label:"server_unreachable"===u?"ClawPad server unreachable":"Gateway unavailable",detail:h||x||("server_unreachable"===u?"ClawPad is not reachable from this browser.":"OpenClaw gateway is not reachable."),tone:"warn"};let e=eG&&("alert"===eG.indicatorType||"error"===eG.indicatorType)&&!eG.silent?eG:null;if(e){let t=tS(e);return{kind:"alert",label:"error"===e.indicatorType?"Background error":"Background alert",detail:t||void 0,tone:"error"===e.indicatorType?"error":"warn"}}return"submitted"===H?{kind:"thinking",label:"Thinking..."}:"streaming"===H?e3?{kind:"writing",label:"Writing response..."}:{kind:"thinking",label:"Thinking..."}:"thinking"===p?{kind:"thinking",label:"Thinking..."}:"active"===p&&"number"==typeof e6&&e2-e6<=15e3?{kind:"background",label:"Working on a background task..."}:null},[p,x,u,e3,eG,e6,H,e2,h,o]);(0,s.useEffect)(()=>{e0.current&&(clearTimeout(e0.current),e0.current=null);let e=Date.now();if(e9){e5.current=e,eY(t=>!t&&!e9||t&&e9&&t.kind===e9.kind&&t.label===e9.label&&t.detail===e9.detail&&t.tone===e9.tone?t:(e1.current=e,e9));return}if(!eQ)return;let t="alert"===eQ.kind?5e3:"background"===eQ.kind?3e3:1500,n="alert"===eQ.kind?6e3:2500,r=Math.max(Math.max(e1.current+t,e5.current+n)-e,0);return 0===r?void eY(null):(e0.current=setTimeout(()=>{eY(null),e0.current=null},r),()=>{e0.current&&(clearTimeout(e0.current),e0.current=null)})},[e9,eQ]),(0,s.useEffect)(()=>{if(!a)return void ei(null);let e=!1;return ec(!0),(async()=>{try{let t=await fetch(`/api/files/pages/${encodeURIComponent(a)}`);if(!t.ok)throw Error("Failed to load page");let n=await t.json();if(e)return;let r=n?.meta;if(r?.path)return void ei(tb({title:r.title,path:r.path,space:r.space,modified:r.modified}))}catch{}e||ei(tb({title:tf(a),path:a}))})(),()=>{e=!0}},[a]);let e8=(0,s.useCallback)(()=>{let e={};eo&&ea&&(e.activePage=ea);let t=ed.filter(t=>!e.activePage||t.path!==e.activePage.path);return t.length>0?(e.attachedPages=t,e.scope="custom"):e.activePage&&(e.scope="current"),Object.keys(e).length>0?e:null},[ea,ed,eo]),e7=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=t.slice(0,n),s=r.lastIndexOf("@");if(-1===s){eh(!1),ep(""),Q.current=null;return}let a=r[s-1],l=!a||/[\s([{]/.test(a),i=r.slice(s+1);if(!l||/\s/.test(i)){eh(!1),ep(""),Q.current=null;return}Q.current={start:s,end:n},ep(i),eh(!0),eC(!1),eA(""),ee.current=null},[]),te=(0,s.useCallback)(async()=>{if(!ez&&!(eE.length>0)){eR(!0);try{let e=await fetch("/api/openclaw/commands"),t=e.ok?await e.json():null,n=Array.isArray(t?.commands)?t.commands.filter(e=>!!(e&&"string"==typeof e.name)).map(e=>({name:e.name,description:e.description??"",disabled:e.disabled})):[];e$(n),e_(0)}catch{e$([])}finally{eR(!1)}}},[eE.length,ez]),tr=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=t.slice(0,n),s=r.lastIndexOf("/");if(-1===s){eC(!1),eA(""),ee.current=null;return}let a=r[s-1],l=!a||/[\s([{]/.test(a),i=r.slice(s+1);if(!l||/\s/.test(i)){eC(!1),eA(""),ee.current=null;return}ee.current={start:s,end:n},eA(i),eC(!0),eh(!1),ep(""),Q.current=null,te()},[te]),ti=(0,s.useCallback)(e=>{let t=G.current,n=ee.current;if(!t||!n)return;let r=t.value,s=r.slice(0,n.start),a=r.slice(n.end),l=`/${e}`,i=a.startsWith(" ")?"":" ",o=`${s}${l}${i}${a}`,c=s.length+l.length+i.length;t.value=o,t.setSelectionRange(c,c),t.focus(),eC(!1),eA(""),ee.current=null,requestAnimationFrame(()=>{let e=G.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,150)}px`)})},[]),to=(0,s.useCallback)(e=>{let t=G.current,n=Q.current;if(!t||!n)return;let r=t.value,s=r.slice(0,n.start),a=r.slice(n.end),l=`@${e.title}`,i=a.startsWith(" ")?"":" ",o=`${s}${l}${i}${a}`,c=s.length+l.length+i.length;t.value=o,t.setSelectionRange(c,c),t.focus(),eu(t=>t.some(t=>t.path===e.path)?t:[...t,e]),eh(!1),ep(""),Q.current=null,requestAnimationFrame(()=>{let e=G.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,150)}px`)})},[]),tc=(0,s.useCallback)(()=>{let e=G.current;if(!e)return;let t=e.value,n=e.selectionStart??t.length,r=e.selectionEnd??n;e.value=`${t.slice(0,n)}@${t.slice(r)}`;let s=n+1;e.setSelectionRange(s,s),e.focus(),e7()},[e7]);(0,s.useEffect)(()=>{if(!em)return void ev(!1);let e=!1,t=ex.trim();!t&&ey.length>0&&ef(ey);let n=setTimeout(async()=>{if(!e){ev(!0);try{let n=t?`/api/files/search?q=${encodeURIComponent(t)}&limit=8`:"/api/files/recent?limit=8",r=await fetch(n),s=r.ok?await r.json():[];if(e)return;let a=Array.isArray(s)?s.map(e=>tb(e)):[];ef(a),t||eN(a),ej(0)}catch{e||ef([])}finally{e||ev(!1)}}},150);return()=>{e=!0,clearTimeout(n)}},[em,ex,ey]),(0,s.useEffect)(()=>{b&&te()},[b,te]),(0,s.useEffect)(()=>{if(!b)return;let e=!1;return(async()=>{try{let t=await fetch("/api/files/recent?limit=8");if(!t.ok)return;let n=await t.json();if(e)return;let r=Array.isArray(n)?n.map(e=>tb(e)):[];eN(r)}catch{}})(),()=>{e=!0}},[b]),(0,s.useEffect)(()=>{b||(eh(!1),ep(""),Q.current=null,eC(!1),eA(""),ee.current=null)},[b]),(0,s.useEffect)(()=>{if(!em)return;let e=e=>{let t=e.target;Y.current&&!Y.current.contains(t)&&(eh(!1),ep(""),Q.current=null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[em]),(0,s.useEffect)(()=>{if(!ek)return;let e=e=>{let t=e.target;et.current&&!et.current.contains(t)&&(eC(!1),eA(""),ee.current=null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[ek]);let[td,tu]=(0,s.useState)([]),tm=(0,s.useRef)(null),tx=(0,s.useRef)([]),tp=(0,s.useRef)(null),tv=(0,s.useRef)(null),tj=(0,s.useRef)(""),ty=(0,s.useRef)(new Map),tN=(0,s.useRef)([]),tC=(0,s.useRef)(null),tA=(0,s.useRef)(null),[tE,t$]=(0,s.useState)([]),tT=(0,s.useCallback)(()=>{t$(tN.current.map(e=>ty.current.get(e)).filter(e=>!!e))},[]),tL=(0,s.useCallback)((e=!1)=>{if(e){tC.current&&(clearTimeout(tC.current),tC.current=null),tT();return}tC.current||(tC.current=setTimeout(()=>{tC.current=null,tT()},80))},[tT]),tP=(0,s.useCallback)(()=>{ty.current.clear(),tN.current=[],tA.current=null,tC.current&&(clearTimeout(tC.current),tC.current=null),t$([])},[]);(0,s.useEffect)(()=>{let e=tm.current;e&&("streaming"===H?tu(t=>t.map(t=>t.id===e&&"sending"===t.status?{...t,status:"sent"}:t)):"ready"===H&&(tu(t=>t.map(t=>t.id===e&&("sending"===t.status||"streaming"===t.status)?{...t,status:"sent"}:t)),tm.current=null))},[H]),(0,s.useEffect)(()=>{if(J&&tm.current){let e=tm.current;tu(t=>t.map(t=>t.id===e?{...t,status:"error"}:t)),tm.current=null}},[J]);let tW=(0,s.useRef)(!0),tB=(0,s.useRef)(0),[tJ,tV]=(0,s.useState)(0),tG=(0,s.useCallback)((e="smooth")=>{let t=V.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;t.scrollTo({top:n>0?n:0,behavior:e})},[]),tX=(0,s.useCallback)(()=>{let e=V.current;!e||(tW.current=e.scrollHeight-e.scrollTop-e.clientHeight<100,tW.current&&tV(0))},[]),tY=(0,s.useCallback)(e=>{if("tool"!==e.stream)return;let t="string"==typeof e.sessionKey?e.sessionKey:void 0,n=j.current||"main";if(y.current&&t&&t!==n)return;let r="string"==typeof e.runId?e.runId:"unknown",s=e.data??{},a="string"==typeof s.toolCallId?s.toolCallId:"";if(!a)return;let l="string"==typeof s.name?s.name:"tool",i="string"==typeof s.phase?s.phase:"unknown",o="start"===i||"update"===i||"result"===i||"error"===i?i:"unknown",c="start"===o?s.args:void 0,d="update"===o?tD(s.partialResult):"result"===o?tD(s.result):"error"===o?tD(s.error??s.result):void 0,u=Date.now();tA.current&&tA.current!==r&&"start"===o&&tP(),tA.current=r;let m=ty.current.get(a);if(m?(m.name=l,m.phase=o,void 0!==c&&(m.args=c),void 0!==d&&(m.output=d),m.updatedAt=u):(m={toolCallId:a,runId:r,sessionKey:t,name:l,args:c,output:d,phase:o,startedAt:"number"==typeof e.ts?e.ts:u,updatedAt:u},ty.current.set(a,m),tN.current.push(a)),tN.current.length>50){let e=tN.current.length-50;for(let t of tN.current.splice(0,e))ty.current.delete(t)}tL("result"===o||"error"===o)},[tP,tL]),t5=(0,s.useMemo)(()=>{let e=[];for(let t of _){let n=tM(t);if(!n.internal)continue;let r=(n.displayText?.trim()??"").replace(/^System:\s*/i,"").trim();if(!r)continue;let{kind:s,tone:a}=function(e){let t=e.toLowerCase(),n=t.startsWith("heartbeat")||t.includes("heartbeat_ok")||t.includes("heartbeat"),r=/error|failed|denied|blocked|timeout|unavailable/i.test(t),s=/\[network\]|warning|alert/i.test(t);return r?{kind:"alert",tone:"error"}:s?{kind:"alert",tone:"warn"}:n?{kind:"heartbeat"}:{kind:"system"}}(r);e.push({id:`sys-${n.timestamp}-${e.length}`,kind:s,tone:a,text:r,timestamp:n.timestamp,source:"system"})}return e},[_]),t2=(0,s.useMemo)(()=>{let e=[];return eP.forEach((t,n)=>{let r=tS(t);if(!r)return;let s="alert"===t.indicatorType||"error"===t.indicatorType;e.push({id:`hb-${t.ts}-${n}`,kind:s?"alert":"heartbeat",tone:"error"===t.indicatorType?"error":s?"warn":void 0,text:r,timestamp:t.ts,source:"heartbeat"})}),e},[eP]),t4=(0,s.useMemo)(()=>{let e=[...t5,...t2].sort((e,t)=>t.timestamp-e.timestamp),t=new Set,n=[];for(let r of e){let e=`${r.source}-${r.timestamp}-${r.text}`;t.has(e)||(t.add(e),n.push(r))}return n},[t5,t2]),t3=(0,s.useMemo)(()=>{var e=function(e,t,n,r,s,a){let l=[],i=new Map;for(let n=0;n<e.length;n+=1){let r=e[n];i.set(r,n);let s=tM(r);!s.internal&&(t||"tool"!==s.role)&&l.push({kind:"message",normalized:s})}for(let t of n){let n=tz(t.text),r=(t.images?.length??0)>0;l.some(s=>{var a,l;if("message"!==s.kind)return!1;let o=s.normalized;if(o.role!==t.role||r&&!(Array.isArray((a=o.raw).content)&&a.content.some(e=>{let t=(e.type??"").toLowerCase();return"input_image"===t||"image"===t})))return!1;let c=t_(o.raw),d=c?function(e){if(!e.includes("[message_id:"))return null;for(let t of e.split(/\r?\n/)){let e=t.match(tk);if(e)return(e[1]??"").trim()||null}return null}(c):null;if(d&&d===t.id)return!0;let u=tz(o.displayText);if(!u||!n||u!==n)return!1;let m="number"==typeof(l=o.raw.timestamp)&&Number.isFinite(l)?l<1e12?1e3*l:l:null;if(null!==m){let e=3e5>Math.abs(m-t.timestamp),n=m>=t.timestamp-5e3;return e&&n}let h=i.get(o.raw);return"number"==typeof h&&h>=e.length-5})||l.push({kind:"optimistic",message:t})}if(t)for(let e of r)l.push({kind:"tool-stream",entry:e});if(a&&s.length>0){let e=s[s.length-1];"assistant"===e.role&&l.push({kind:"stream",message:e,isStreaming:a})}return l}(_,eL,td,tE,U,en);let t=[],n=null;for(let r of e)if("message"===r.kind)n&&n.role===r.normalized.role?n.messages.push(r.normalized):(n&&t.push(n),n={kind:"group",role:r.normalized.role,messages:[r.normalized],timestamp:r.normalized.timestamp});else if(n&&(t.push(n),n=null),"optimistic"===r.kind)t.push({kind:"optimistic-group",messages:[r.message]});else if("tool-stream"===r.kind){let e=t[t.length-1];e&&"tool-stream-group"===e.kind?e.entries.push(r.entry):t.push({kind:"tool-stream-group",entries:[r.entry]})}else"stream"===r.kind?t.push({kind:"stream-group",message:r.message,isStreaming:r.isStreaming}):"indicator"===r.kind&&t.push({kind:"indicator-group",status:r.status});return n&&t.push(n),t},[_,eL,td,tE,U,en]),t6=t3.length>0||eL&&t4.length>0;(0,s.useEffect)(()=>{let e=t3.length;if(0===tB.current&&e>0){tB.current=e,tW.current=!0,b&&requestAnimationFrame(()=>tG("auto"));return}tW.current?requestAnimationFrame(()=>tG("smooth")):e>tB.current&&tB.current>0&&tV(t=>t+(e-tB.current)),tB.current=e},[t3.length,tG,b]);let t9=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!b){t9.current=!1;return}!D&&(t9.current||(t9.current=!0,tW.current=!0,tV(0),requestAnimationFrame(()=>{tG("auto"),setTimeout(()=>tG("auto"),150)})))},[b,D,tG]);let t8=(0,s.useRef)(null),t7=(0,s.useCallback)(()=>{let e=V.current;e&&(t8.current={prevScrollHeight:e.scrollHeight,prevScrollTop:e.scrollTop}),P()},[P]);(0,s.useLayoutEffect)(()=>{let e=t8.current;if(!e)return;let t=V.current;if(!t)return;let n=t.scrollHeight-e.prevScrollHeight;0!==n&&(t.scrollTop=e.prevScrollTop+n),t8.current=null},[t3.length]),(0,s.useEffect)(()=>{en&&tW.current&&requestAnimationFrame(()=>tG("smooth"))},[en,U,tE,tG]),(0,s.useEffect)(()=>{if(!b)return;let e=null,t=null,n=!1,r=!1,s=null,a=(e=!1)=>{n=n||e,t&&clearTimeout(t),t=setTimeout(()=>{let e=n;n=!1,t=null,F({force:e})},e?80:250)};return!function t(){r||((e=new EventSource("/api/gateway/events")).addEventListener("gateway",e=>{try{let n=JSON.parse(e.data);if("number"==typeof n.seq&&(null!==s&&n.seq>s+1&&a(!0),s=n.seq),"agent"===n.event&&n.payload&&tY(n.payload),"chat"===n.event&&n.payload){var t;let e,r,s=n.payload,l=j.current||"main";if(y.current&&s.sessionKey&&(t=s.sessionKey,e=t.trim(),r=l.trim(),e&&r&&e!==r&&tR(e)!==tR(r)))return;let i=s.state;a("final"===i||"error"===i||"aborted"===i)}}catch{}}),e.onerror=()=>{e?.close(),e=null,r||setTimeout(t,5e3)})}(),()=>{r=!0,t&&clearTimeout(t),n=!1,e?.close()}},[tY,b,F]),(0,s.useEffect)(()=>{if(!b)return;let e=window.setInterval(()=>{F()},5e3);return()=>{window.clearInterval(e)}},[b,F]);let[ne,nt]=(0,s.useState)([]),[nn,nr]=(0,s.useState)({}),[ns,na]=(0,s.useState)(!1),nl=(0,s.useCallback)(async e=>{let t=await tw(e);t.length>0&&(nt(e=>[...e,...t]),G.current?.focus())},[]),ni=(0,s.useCallback)(e=>{nt(t=>t.filter(t=>t.id!==e))},[]),no=(0,s.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of Array.from(t))if("file"===e.kind&&tg.includes(e.type)){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),nl(n))},[nl]),nc=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer?.types.includes("Files")&&na(!0)},[]),nd=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getBoundingClientRect(),{clientX:n,clientY:r}=e;(n<=t.left||n>=t.right||r<=t.top||r>=t.bottom)&&na(!1)},[]),nu=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),na(!1);let t=Array.from(e.dataTransfer?.files??[]).filter(e=>tg.includes(e.type));t.length>0&&nl(t)},[nl]),nm=(0,s.useCallback)(e=>{let t=Array.from(e.target.files??[]);t.length>0&&nl(t),e.target.value=""},[nl]),nh=(0,s.useCallback)(()=>{O(new eI.ry({transport:tI()})),nt([]),eu([]),ec(!0),eh(!1),ep(""),Q.current=null,tu([]),nr({}),tP(),tm.current=null,G.current&&(G.current.value="",G.current.style.height="auto",G.current.focus())},[tP]);(0,s.useEffect)(()=>{if("default"===e)return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t);function t(e){e.metaKey&&e.shiftKey&&"l"===e.key&&(e.preventDefault(),n(!0))}},[n,e]),(0,s.useEffect)(()=>{if(t||"default"!==e){let e=setTimeout(()=>{G.current?.focus()},100);return()=>clearTimeout(e)}},[t,e]);let nx=(0,s.useCallback)(async(e,t)=>{if(eD)return;let n=ne.length>0;if(!e.trim()&&!n)return;let r=e.trim()||(n?"What's in this image?":"");if(!r)return;tP();let s=t?.messageId?.trim()||crypto.randomUUID(),a=ne.map(e=>e.dataUrl),l={id:s,role:"user",text:r,images:a.length>0?a:void 0,timestamp:Date.now(),status:"sending"};tu(e=>[...e,l]),a.length>0&&nr(e=>({...e,[s]:a})),tm.current=s,T.current=Date.now(),nt([]),G.current&&(G.current.value="",G.current.style.height="auto"),eh(!1),ep(""),Q.current=null;let i=e8();for(let e of tK)window.setTimeout(()=>{F({force:!0})},e);try{await q({text:r},{body:{sessionKey:j.current||"main",pageContext:i?.activePage?.path??void 0,context:i??void 0,images:a.length>0?a:void 0}}),setTimeout(()=>{tu(e=>e.map(e=>e.id===s&&"sending"===e.status?{...e,status:"sent"}:e))},2e3)}catch(e){console.error("[chat] sendMessage error:",e),t?.messageId&&(tx.current=tx.current.filter(e=>e!==t.messageId),tv.current===t.messageId&&(tv.current=null,tj.current="")),tu(e=>e.map(e=>e.id===s?{...e,status:"error"}:e))}},[eD,q,ne,e8,F,tP]);(0,s.useEffect)(()=>{let e=e=>{let r=e.detail??{},s=r.messageId?.trim()||crypto.randomUUID(),l=function(e,t){if(e.message&&e.message.trim()){let t=[e.message.trim()];return e.messageId?.trim()&&t.push(`[message_id: ${e.messageId.trim()}]`),t.join("\n\n")}if(!e.action)return null;let n=e.selection?.trim()??"",r=(e.pagePath??t??"").trim(),s=n.length>0,a="continue"===e.action?s?"context below":"referenced page":s?"selected text":"referenced page",l=[function(e,t){switch(e){case"improve":return`Improve the writing of the ${t}. Return only the improved text.`;case"simplify":return`Simplify the ${t} while preserving meaning. Return only the simplified text.`;case"expand":return`Expand the ${t} with more detail while preserving meaning. Return only the expanded text.`;case"summarize":return`Summarize the ${t} concisely. Return only the summary.`;case"fix-grammar":return`Fix grammar, spelling, and punctuation in the ${t}. Return only the corrected text.`;case"continue":return`Continue writing from the ${t}. Return only the continuation.`;default:return`Please help with the ${t}.`}}(e.action,a)];return r&&l.push(`Reference: ${r}`),n&&l.push(`Selected text:
4
4
  """
5
5
  ${n}
6
6
  """`),e.messageId?.trim()&&l.push(`[message_id: ${e.messageId.trim()}]`),l.join("\n\n")}({...r,messageId:s},a);l&&(t||n(!0),r.selection?.trim()&&tx.current.push(s),nx(l,{messageId:s}))};return window.addEventListener("clawpad:ai-action",e),()=>window.removeEventListener("clawpad:ai-action",e)},[nx,a,t,n]),(0,s.useEffect)(()=>{if("ready"===H){tv.current=null,tj.current="";return}if("streaming"!==H)return;let e=tx.current[0];if(!e)return;tv.current||(tv.current=e);let t=[...U].reverse().find(e=>"assistant"===e.role);if(!t)return;let n=t0(t);n.trim()&&n!==tj.current&&(tj.current=n,window.dispatchEvent(new CustomEvent("clawpad:ai-stream",{detail:{messageId:tv.current,text:n}})))},[U,H]),(0,s.useEffect)(()=>{let e=er.current;if(er.current=H,"ready"!==H||"ready"===e||0===tx.current.length)return;let t=[...U].reverse().find(e=>"assistant"===e.role),n=tx.current[0];if(!t||!n)return void tx.current.shift();let r=t0(t);if(!r.trim())return void tx.current.shift();let s=tx.current.shift();s&&tp.current!==s&&(tp.current=s,tv.current=null,tj.current="",window.dispatchEvent(new CustomEvent("clawpad:ai-result",{detail:{messageId:s,text:r.trim()}})))},[U,H]);let np=(0,s.useCallback)(async()=>{Z();try{await fetch("/api/chat/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionKey:v})})}catch{}},[v,Z]),ng=(0,s.useCallback)(e=>{tu(t=>t.filter(t=>t.id!==e.id)),e.images&&e.images.length>0?(nt(e.images.map((e,t)=>({id:crypto.randomUUID(),dataUrl:e,name:`image-${t}`}))),setTimeout(()=>{nx(e.text)},0)):nx(e.text)},[nx]),nf=(0,s.useCallback)(e=>{e.preventDefault(),!eD&&G.current&&nx(G.current.value)},[eD,nx]),nb=(0,s.useCallback)(e=>{if(ek){let t=eS.trim().toLowerCase(),n=0===t.length?eE:eE.filter(e=>e.name.toLowerCase().includes(t)),r=n.length>0?n:eE.slice(0,12);if("ArrowDown"===e.key){e.preventDefault(),e_(e=>0===r.length?0:(e+1)%r.length);return}if("ArrowUp"===e.key){e.preventDefault(),e_(e=>0===r.length?0:(e-1+r.length)%r.length);return}if("Enter"===e.key&&!e.shiftKey){e.preventDefault();let t=r[eT]??r[0];t?ti(t.name):(eC(!1),eA(""),ee.current=null);return}if("Escape"===e.key){e.preventDefault(),eC(!1),eA(""),ee.current=null;return}}if(em){let t=ex.trim()||eg.length>0?eg:ey;if("ArrowDown"===e.key){e.preventDefault(),ej(e=>0===t.length?0:(e+1)%t.length);return}if("ArrowUp"===e.key){e.preventDefault(),ej(e=>0===t.length?0:(e-1+t.length)%t.length);return}if("Enter"===e.key&&!e.shiftKey){e.preventDefault();let n=t[ew]??t[0];if(n)to(n);else{eh(!1),ep(""),Q.current=null;let t=e.target.value;(t||ne.length>0)&&nx(t||"")}return}if("Escape"===e.key){e.preventDefault(),eh(!1),ep(""),Q.current=null;return}}if("Enter"===e.key&&!e.shiftKey){e.preventDefault();let t=e.target.value;(t||ne.length>0)&&nx(t||"")}},[ne.length,to,ti,nx,ew,em,ex,eg,ey,eE,eT,ek,eS]),nv=(0,s.useCallback)(()=>{let e=G.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,150)}px`,tr(),e7())},[e7,tr]),nw="default"===e&&!t,nj=ea?.title??(a?a.split("/").pop()?.replace(/\.md$/,"").replace(/-/g," ")??null:null),ny="fullscreen"===e,nN="sheet"===e,nk=(0,s.useMemo)(()=>{let e=[];for(let t of(eo&&ea&&e.push({key:`current-${ea.path}`,page:ea,kind:"current"}),ed))e.some(e=>e.page.path===t.path)||e.push({key:`attached-${t.path}`,page:t,kind:"attached"});return e},[ea,ed,eo]),nC=ex.trim()||eg.length>0?eg:ey,nS=eE.filter(e=>!!(e&&"string"==typeof e.name)),nA=eS.trim().toLowerCase(),nE=0===nA.length?nS:nS.filter(e=>e.name.toLowerCase().includes(nA)),n$=nE.length>0?nE.slice(0,12):nS.slice(0,12),nz=(0,s.useCallback)(e=>{z&&(e.preventDefault(),E.current=e.clientX,$.current=N,A(!0))},[z,N]);return(0,r.jsxs)("div",{onDragOver:nc,onDragLeave:nd,onDrop:nu,className:(0,c.cn)("relative flex flex-col bg-background",nw&&"hidden","default"===e&&"h-full shrink-0 border-l",nN&&"h-full w-full",ny&&"h-full w-full"),style:"default"===e?{width:N,minWidth:400,maxWidth:"40vw"}:void 0,children:[z&&(0,r.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize chat panel",onPointerDown:nz,className:(0,c.cn)("absolute left-0 top-0 z-20 h-full w-2 cursor-col-resize","group"),children:(0,r.jsx)("div",{className:(0,c.cn)("absolute inset-y-0 left-0 w-px bg-border/70","transition-colors group-hover:bg-[color:var(--cp-brand-2)]",S&&"bg-[color:var(--cp-brand-2)]")})}),ns&&(0,r.jsx)("div",{className:"pointer-events-none absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-500 bg-blue-50/60 dark:bg-blue-950/40",children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 text-blue-600 dark:text-blue-400",children:[(0,r.jsx)(eF.A,{className:"h-8 w-8"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Drop image here"})]})}),(0,r.jsxs)("div",{className:(0,c.cn)("flex shrink-0 items-center justify-between border-b px-4",ny?"h-14":"h-12"),children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,r.jsx)(el.A,{className:"h-4 w-4 shrink-0 text-[color:var(--cp-brand-2)]"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Chat"}),(0,r.jsx)(tO,{connected:l,wsStatus:o,agentStatus:p})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:(0,c.cn)("h-8 w-8 text-muted-foreground hover:text-foreground",eL&&"text-[color:var(--cp-brand-2)] hover:text-[color:var(--cp-brand-2)]"),onClick:()=>eM(!eL),title:eL?"Hide details":"Show details","aria-pressed":eL,"aria-label":eL?"Hide details":"Show details",children:eL?(0,r.jsx)(eW.A,{className:"h-4 w-4"}):(0,r.jsx)(eO.A,{className:"h-4 w-4"})}),(0,r.jsx)(d.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",onClick:nh,title:"New chat",children:(0,r.jsx)(eU.A,{className:"h-4 w-4"})})]})]}),eD&&(0,r.jsx)("div",{className:"border-b border-amber-500/30 bg-amber-500/10 px-4 py-2 text-xs text-amber-700 dark:text-amber-300",children:"reconnecting"===o?"Reconnecting to OpenClaw gateway…":"server_unreachable"===u?"ClawPad server is unreachable from this browser.":"OpenClaw gateway is unavailable. Start or restart the gateway to resume chat."}),(0,r.jsx)("div",{ref:V,onScroll:tX,className:"flex-1 min-h-0 min-w-0 overflow-y-auto",children:(0,r.jsxs)("div",{className:"relative flex min-h-full flex-col gap-4 p-4 pb-[calc(8rem+env(safe-area-inset-bottom,0px))] min-w-0 overflow-hidden",children:[!t6&&!D&&(0,r.jsx)(tU,{pageTitle:nj}),D&&(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2 py-8 text-muted-foreground",children:[(0,r.jsx)(eq.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,r.jsx)("span",{className:"text-xs",children:"Loading history…"})]}),I&&!D&&(0,r.jsx)("div",{className:"flex justify-center py-2",children:(0,r.jsxs)("button",{onClick:t7,disabled:L,className:"mx-auto flex items-center gap-2 rounded-full bg-muted/60 px-4 py-2 text-xs text-muted-foreground hover:bg-muted transition-colors",children:[L?(0,r.jsx)(eq.A,{className:"h-3 w-3 animate-spin"}):(0,r.jsx)(es.A,{className:"h-3 w-3"}),"Load earlier messages"]})}),eL&&t4.length>0&&(0,r.jsx)(tq,{events:t4}),t3.map((e,t)=>{if("group"===e.kind)return(0,r.jsx)(tZ,{group:e,showReasoning:eK,showTools:eL},`g-${t}-${e.timestamp}`);if("optimistic-group"===e.kind)return e.messages.map(e=>(0,r.jsx)(tQ,{message:e,images:nn[e.id],onRetry:ng},e.id));if("tool-stream-group"===e.kind){let n=e.entries[e.entries.length-1],s=n?`tool-batch-${n.toolCallId}-${n.updatedAt}`:`tool-batch-${t}`;return(0,r.jsx)(tH,{entries:e.entries},s)}return"stream-group"===e.kind?(0,r.jsx)(t1,{message:e.message,isLatest:!0,isStreaming:e.isStreaming,showThinking:eL,onToolApprove:e=>B({id:e,approved:!0}),onToolDeny:e=>B({id:e,approved:!1,reason:"Denied by user"})},`stream-${e.message.id}`):null}),J&&!td.some(e=>"error"===e.status)&&(0,r.jsxs)(tt.P.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"flex items-start gap-2 rounded-lg border border-destructive/20 bg-destructive/5 p-3 text-sm text-destructive",children:[(0,r.jsx)(eB.A,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("p",{className:"font-medium",children:"Something went wrong"}),(0,r.jsx)("p",{className:"text-xs opacity-80 mt-0.5",children:J.message.includes("API key")?"No API key configured. Check your environment settings.":J.message})]})]})]})}),(0,r.jsx)(tn.N,{children:tJ>0&&(0,r.jsxs)(tt.P.button,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},onClick:()=>{tG("smooth"),tV(0)},className:"absolute bottom-[4.5rem] left-1/2 -translate-x-1/2 z-10 flex items-center gap-1.5 rounded-full bg-blue-600 dark:bg-blue-500 px-3 py-1.5 text-xs font-medium text-white shadow-lg hover:bg-blue-700 dark:hover:bg-blue-600 transition-colors",children:[(0,r.jsx)(eH.A,{className:"h-3 w-3"}),tJ," new message",1!==tJ?"s":""]})}),!t6&&nj&&(0,r.jsx)("div",{className:"border-t px-4 py-2",children:(0,r.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,r.jsx)("span",{children:"Viewing:"}),(0,r.jsx)("span",{className:"font-medium capitalize text-foreground",children:nj})]})}),(0,r.jsxs)("div",{className:(0,c.cn)("shrink-0 border-t p-4",ny&&"pb-[calc(0.75rem+env(safe-area-inset-bottom,0px))]",ny&&"sticky bottom-0 bg-background"),children:[(0,r.jsx)(th,{status:eQ}),ne.length>0&&(0,r.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:ne.map(e=>(0,r.jsxs)("div",{className:"group relative",children:[(0,r.jsx)("img",{src:e.dataUrl,alt:e.name,className:"h-16 w-16 rounded-lg border object-cover"}),(0,r.jsx)("button",{type:"button",onClick:()=>ni(e.id),className:"absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-white opacity-0 transition-opacity group-hover:opacity-100 hover:bg-destructive/90",title:"Remove image",children:(0,r.jsx)(m.A,{className:"h-3 w-3"})}),(0,r.jsx)("div",{className:"absolute bottom-0 left-0 right-0 truncate rounded-b-lg bg-black/50 px-1 py-0.5 text-[9px] text-white",children:e.name})]},e.id))}),(0,r.jsxs)("form",{onSubmit:nf,className:"w-full",children:[(0,r.jsx)("input",{ref:X,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,className:"hidden",onChange:nm}),(0,r.jsxs)("div",{className:(0,c.cn)("relative flex w-full flex-col gap-2 rounded-2xl border bg-muted/30 px-4 py-3","shadow-[0_2px_5px_rgba(0,0,0,0.04)] transition-shadow duration-150","focus-within:shadow-[0_8px_14px_rgba(0,0,0,0.08)]",ny&&"min-h-[64px]"),ref:Y,children:[(nk.length>0||ea&&!eo)&&(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px]",children:[(0,r.jsx)(d.$,{type:"button",size:"icon",variant:"ghost",className:(0,c.cn)("h-7 w-7 rounded-full text-muted-foreground/70 hover:text-foreground hover:bg-muted/60",em&&"bg-muted/60 text-foreground"),onClick:tc,title:"Mention a page","aria-label":"Mention a page",disabled:en||eD,children:(0,r.jsx)(eZ.A,{className:"h-4 w-4"})}),nk.map(e=>(0,r.jsxs)("span",{className:"group inline-flex items-center gap-1.5 rounded-full border border-border/70 bg-muted/30 px-2.5 py-1 text-muted-foreground",children:["current"===e.kind?(0,r.jsx)(C.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}):(0,r.jsx)(eZ.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,r.jsx)("span",{className:"max-w-[180px] truncate text-foreground/80",children:e.page.title}),(0,r.jsx)("button",{type:"button",onClick:()=>{"current"===e.kind?ec(!1):eu(t=>t.filter(t=>t.path!==e.page.path))},className:"ml-0.5 rounded-full p-0.5 text-muted-foreground/60 hover:text-foreground","aria-label":"Remove context",children:(0,r.jsx)(m.A,{className:"h-3 w-3"})})]},e.key)),!eo&&ea&&(0,r.jsx)("button",{type:"button",onClick:()=>ec(!0),className:"rounded-full border border-dashed border-border/70 px-2.5 py-1 text-[10px] text-muted-foreground hover:text-foreground",children:"Add current page"})]}),em&&(0,r.jsxs)("div",{className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:e=>e.preventDefault(),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,r.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:ex.trim()?"Pages":"Recent pages"}),eb&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Searching…"})]}),(0,r.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!eb&&0===nC.length&&(0,r.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:ex.trim()?"No matching pages":"No recent pages"}),nC.map((e,t)=>(0,r.jsxs)("button",{type:"button",onClick:()=>to(e),className:(0,c.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",t===ew?"bg-muted/60":"hover:bg-muted/40"),children:[(0,r.jsx)(C.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"truncate font-medium text-foreground",children:e.title}),(0,r.jsx)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:e.path})]})]},e.path))]})]}),ek&&(0,r.jsxs)("div",{ref:et,className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:e=>e.preventDefault(),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,r.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:"OpenClaw commands"}),ez&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Loading…"})]}),(0,r.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!ez&&0===n$.length&&(0,r.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No commands available"}),n$.map((e,t)=>(0,r.jsxs)("button",{type:"button",onClick:()=>ti(e.name),className:(0,c.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",t===eT?"bg-muted/60":"hover:bg-muted/40",e.disabled&&"opacity-60"),children:[(0,r.jsx)(eJ.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"truncate font-medium text-foreground",children:e.name}),(0,r.jsxs)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:["/",e.name," — ",e.description]})]})]},e.name))]})]}),(0,r.jsx)("textarea",{ref:G,onKeyDown:nb,onPaste:no,onInput:nv,placeholder:ne.length>0?"Add a message or send…":"Ask your agent…",rows:ny?1:2,className:(0,c.cn)("w-full resize-none bg-transparent px-1 py-1 text-sm leading-relaxed","placeholder:text-muted-foreground/80","focus:outline-none focus:ring-0","min-h-[44px] max-h-[150px]",ny&&"text-base"),disabled:en}),(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsx)(d.$,{type:"button",size:"icon",variant:"ghost",className:"h-8 w-8 rounded-full text-muted-foreground/70 hover:text-foreground hover:bg-muted/60",onClick:()=>X.current?.click(),title:"Attach image","aria-label":"Attach image",disabled:en||eD,children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})}),en?(0,r.jsx)(d.$,{type:"button",size:"icon",variant:"ghost",onClick:np,className:"h-9 w-9 rounded-full bg-white text-black shadow-sm hover:bg-white/90","aria-label":"Stop generation",children:(0,r.jsx)("span",{className:"h-3.5 w-3.5 rounded-sm bg-black"})}):(0,r.jsx)(d.$,{type:"submit",size:"icon",className:"h-9 w-9 rounded-full bg-white text-black shadow-sm hover:bg-white/90","aria-label":"Send message",disabled:eD,children:(0,r.jsx)(eV.A,{className:"h-4 w-4"})})]})]})]})]})]})}function tO({connected:e,wsStatus:t,agentStatus:n}){let s="connecting"===t||"reconnecting"===t,a=e?"active"===n||"thinking"===n?"bg-violet-400":"bg-green-500":s?"bg-amber-400":"bg-zinc-300 dark:bg-zinc-600";return(0,r.jsxs)("span",{className:"relative flex h-2 w-2",title:e?n:s?t:"disconnected",children:[(s||e&&("active"===n||"thinking"===n))&&(0,r.jsx)("span",{className:(0,c.cn)("absolute inline-flex h-full w-full rounded-full opacity-75 animate-ping",a)}),(0,r.jsx)("span",{className:(0,c.cn)("relative inline-flex h-2 w-2 rounded-full",a)})]})}function tU({pageTitle:e}){return(0,r.jsx)("div",{className:"flex flex-1 items-center justify-center py-16",children:(0,r.jsxs)("div",{className:"space-y-3 text-center",children:[(0,r.jsx)(el.A,{className:"mx-auto h-8 w-8 text-muted-foreground/40"}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Chat with your OpenClaw agent"}),e&&(0,r.jsxs)("p",{className:"text-xs text-muted-foreground/60",children:["Viewing:"," ",(0,r.jsx)("span",{className:"capitalize font-medium",children:e})]})]})]})})}let tq=(0,s.memo)(function({events:e}){let[t,n]=(0,s.useState)(!1),[a,l]=(0,s.useState)(null),i=e.filter(e=>"alert"===e.kind).length;return(0,r.jsxs)("div",{className:"rounded-xl border border-border/60 bg-muted/20",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,c.cn)("flex w-full items-center justify-between gap-2 px-3 py-2 text-left","text-[11px] text-muted-foreground hover:text-foreground"),"aria-expanded":t,children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(eG.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,r.jsx)("span",{className:"font-medium text-foreground/80",children:"System events"}),(0,r.jsx)("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[10px] text-muted-foreground",children:e.length}),i>0&&(0,r.jsxs)("span",{className:"rounded-full border border-red-500/30 bg-red-500/10 px-2 py-0.5 text-[10px] text-red-500",children:[i," alert",1!==i?"s":""]})]}),(0,r.jsx)(eX.A,{className:(0,c.cn)("h-4 w-4 transition-transform",t?"rotate-180":"rotate-0")})]}),t&&(0,r.jsx)("div",{className:"border-t border-border/50",children:e.map(e=>{let t=a===e.id,n=e.text.length>140,s=n?`${e.text.slice(0,137)}…`:e.text;return(0,r.jsx)("div",{className:"border-t border-border/40 first:border-t-0",children:(0,r.jsxs)("button",{type:"button",onClick:()=>{n&&l(t=>t===e.id?null:e.id)},className:"flex w-full items-start gap-3 px-3 py-2 text-left",children:[(0,r.jsx)(tB,{kind:e.kind,tone:e.tone}),(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,r.jsx)("div",{className:"text-[10px] text-muted-foreground/70",children:new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(0,r.jsx)("div",{className:"text-xs text-foreground/80 whitespace-pre-wrap",children:t?e.text:s})]}),n&&(0,r.jsx)(k.A,{className:(0,c.cn)("mt-1 h-3.5 w-3.5 text-muted-foreground/60 transition-transform",t&&"rotate-90")})]})},e.id)})})]})});function tB({kind:e,tone:t}){let n=(0,c.cn)("shrink-0 rounded-full border px-2 py-0.5 text-[10px] font-medium","system"===e&&"border-border/60 bg-muted/40 text-muted-foreground","heartbeat"===e&&"border-blue-500/30 bg-[color:var(--cp-status-heartbeat-bg)] text-[color:var(--cp-status-heartbeat-text)]","alert"===e&&("error"===t?"border-red-500/30 bg-[color:var(--cp-status-error-bg)] text-[color:var(--cp-status-error-text)]":"border-amber-500/30 bg-[color:var(--cp-status-alert-bg)] text-[color:var(--cp-status-alert-text)]"));return(0,r.jsx)("span",{className:n,children:"system"===e?"System":"heartbeat"===e?"Heartbeat":"Alert"})}let tH=(0,s.memo)(function({entries:e}){return(0,r.jsx)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%]",children:e.map(e=>(0,r.jsx)(t4,{entry:e},`${e.toolCallId}-${e.updatedAt}`))})}),tZ=(0,s.memo)(function({group:e,showReasoning:t,showTools:n}){return"user"===e.role?(0,r.jsx)("div",{className:"flex flex-col gap-2",children:e.messages.map((e,t)=>(0,r.jsx)(tJ,{message:e},e.id??`u-${t}`))}):"assistant"===e.role?(0,r.jsx)("div",{className:"flex flex-col gap-1 items-start",children:e.messages.map((e,s)=>(0,r.jsx)(tV,{message:e,showReasoning:t,showTools:n},e.id??`a-${s}`))}):"tool"===e.role?(0,r.jsx)("div",{className:"flex flex-col gap-1",children:e.messages.map((e,t)=>(0,r.jsx)(tG,{message:e},e.id??`t-${t}`))}):"system"===e.role?(0,r.jsx)("div",{className:"flex flex-col gap-1",children:e.messages.map((e,t)=>{let n=e.displayText;return n?(0,r.jsx)("div",{className:"text-center text-xs text-muted-foreground/60 italic py-1",children:n},e.id??`s-${t}`):null})}):null}),tJ=(0,s.memo)(function({message:e}){let t=e.displayText,[n,a]=(0,s.useState)(null),l=(0,s.useMemo)(()=>{let t=[];for(let n of e.content)if("input_image"===n.type||"image"===n.type){let e,r=n.source;if(r?.type==="base64"&&"string"==typeof r.data){let t=r.data,n=r.media_type||"image/png";e=t.startsWith("data:")?t:`data:${n};base64,${t}`}else e=n.image_url??n.url??("string"==typeof r?.url?r.url:void 0);e&&t.push(e)}return t},[e.content]);if((!t||t.trim().length<1)&&0===l.length)return null;let i=e.timestamp?new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[n&&(0,r.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>a(null),children:[(0,r.jsx)("img",{src:n,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,r.jsx)("button",{className:"absolute right-4 top-4 flex h-8 w-8 items-center justify-center rounded-full bg-black/50 text-white hover:bg-black/70",onClick:()=>a(null),children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 pr-4",children:[(0,r.jsx)(tp,{channel:e.channel,sessionKey:e.sessionKey}),i&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:i})]}),(0,r.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[l.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:l.map((e,t)=>(0,r.jsx)("img",{src:e,alt:`Attached image ${t+1}`,className:"max-h-48 max-w-[200px] cursor-pointer rounded-xl border border-white/20 object-cover shadow-sm transition-transform hover:scale-[1.02]",onClick:()=>a(e)},t))}),t&&t.trim().length>0&&(0,r.jsx)("div",{className:"cp-user-bubble rounded-2xl px-4 py-2 text-sm leading-relaxed break-words overflow-hidden",children:t})]})]})}),tV=(0,s.memo)(function({message:e,showReasoning:t,showTools:n}){let s=e.displayText?.trim()||null,a=n?e.toolCards:[],l=a.length>0,i=t?function(e){let t=e.content,n=[];if(Array.isArray(t)){for(let e of t)if("thinking"===e.type&&"string"==typeof e.thinking){let t=e.thinking.trim();t&&n.push(t)}}if(n.length>0)return n.join("\n");let r=t_(e);if(!r)return null;let s=[...r.matchAll(/<\s*think(?:ing)?\s*>([\s\S]*?)<\s*\/\s*think(?:ing)?\s*>/gi)].map(e=>(e[1]??"").trim()).filter(Boolean);return s.length>0?s.join("\n"):null}(e.raw):null,o=i?function(e){let t=e.trim();if(!t)return"";let n=t.split(/\r?\n/).map(e=>e.trim()).filter(Boolean).map(e=>`_${e}_`);return n.length?["_Reasoning:_",...n].join("\n"):""}(i):null,c=e.timestamp?new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return s||l?(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%] min-w-0",children:[s&&(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(tp,{channel:e.channel,sessionKey:e.sessionKey}),c&&(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:c})]}),s&&(0,r.jsx)("div",{className:"min-w-0 text-sm leading-relaxed opacity-90",children:(0,r.jsx)(t2,{text:s})}),o&&(0,r.jsx)("div",{className:"min-w-0 text-xs text-muted-foreground",children:(0,r.jsx)(t2,{text:o})}),l&&a.map((e,t)=>(0,r.jsx)(tX,{card:e},`tc-${t}`))]}):null}),tG=(0,s.memo)(function({message:e}){let t=e.toolCards;return 0===t.length?null:(0,r.jsx)("div",{className:"flex flex-col gap-0.5",children:t.map((e,t)=>(0,r.jsx)(tX,{card:e},`tr-${t}`))})}),tX=(0,s.memo)(function({card:e}){let[t,n]=(0,s.useState)(!1),a=(0,s.useId)(),l=(0,tr.I)(),i=t6(e.name),o=i.icon,d=t8(e.text)??e.text??"",u=!!d.trim(),m=t9(e.args);return(0,r.jsxs)("div",{className:"my-0 max-w-full",children:[(0,r.jsxs)("button",{type:"button",onClick:u?()=>n(!t):void 0,className:(0,c.cn)("group flex w-full items-center gap-1 rounded-md px-0 py-px text-left text-[11px] leading-4 transition-colors","text-muted-foreground/60 hover:text-muted-foreground",u&&"hover:bg-muted/30 cursor-pointer",!u&&"cursor-default",t&&"bg-muted/40 text-foreground"),"aria-expanded":u?t:void 0,"aria-controls":u?a:void 0,children:[(0,r.jsx)("span",{className:(0,c.cn)("flex h-3.5 w-3.5 items-center justify-center",u?"text-muted-foreground/50 group-hover:text-muted-foreground":"opacity-0"),"aria-hidden":"true",children:u&&t?(0,r.jsx)(eX.A,{className:"h-3 w-3"}):(0,r.jsx)(k.A,{className:"h-3 w-3"})}),(0,r.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground",children:(0,r.jsx)(o,{className:"h-3.5 w-3.5"})}),(0,r.jsxs)("span",{className:"min-w-0 flex items-center gap-1.5",children:[(0,r.jsx)("span",{className:"font-medium text-foreground/75 group-hover:text-foreground",children:i.label}),m&&(0,r.jsx)("span",{className:"truncate max-w-[220px] text-[10px] font-mono text-muted-foreground/60 group-hover:text-muted-foreground",children:m})]}),(0,r.jsx)("span",{className:"ml-auto flex items-center gap-1 text-muted-foreground/50",children:"result"===e.kind&&!u&&(0,r.jsx)(eQ.A,{className:"h-3 w-3"})})]}),(0,r.jsx)(tn.N,{initial:!1,children:u&&t&&(0,r.jsx)(tt.P.div,{id:a,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!l},className:"overflow-hidden",children:(0,r.jsx)("div",{className:"pt-1 pl-6",children:(0,r.jsx)("pre",{className:"max-h-[200px] overflow-y-auto rounded bg-muted/30 p-2 text-[10px] font-mono text-muted-foreground whitespace-pre-wrap",children:d})})})})]})}),tQ=(0,s.memo)(function({message:e,images:t,onRetry:n}){let[a,l]=(0,s.useState)(null),i=new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[a&&(0,r.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>l(null),children:[(0,r.jsx)("img",{src:a,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,r.jsx)("button",{className:"absolute right-4 top-4 flex h-8 w-8 items-center justify-center rounded-full bg-black/50 text-white hover:bg-black/70",onClick:()=>l(null),children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,r.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:i}),"sending"===e.status&&(0,r.jsx)(es.A,{className:"h-3 w-3 text-muted-foreground/50"}),("streaming"===e.status||"sent"===e.status)&&(0,r.jsxs)("div",{className:"flex items-center text-blue-400",children:[(0,r.jsx)(eQ.A,{className:"h-3 w-3"}),(0,r.jsx)(eQ.A,{className:"-ml-1.5 h-3 w-3"})]}),"error"===e.status&&(0,r.jsxs)("button",{onClick:()=>n(e),className:"flex items-center gap-1 text-destructive hover:text-destructive/80 transition-colors",title:"Tap to retry",children:[(0,r.jsx)(eB.A,{className:"h-3 w-3"}),(0,r.jsx)("span",{className:"text-[10px] font-medium",children:"Retry"})]})]}),(0,r.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[t&&t.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:t.map((e,t)=>(0,r.jsx)("img",{src:e,alt:`Attached image ${t+1}`,className:"max-h-48 max-w-[200px] cursor-pointer rounded-xl border border-white/20 object-cover shadow-sm transition-transform hover:scale-[1.02]",onClick:()=>l(e)},t))}),(0,r.jsx)("div",{className:(0,c.cn)("rounded-2xl px-4 py-2.5 text-sm leading-relaxed shadow-sm break-words overflow-hidden","error"===e.status?"bg-red-500 text-white dark:bg-red-600":"cp-user-bubble"),children:(0,r.jsx)("span",{children:e.text})})]})]})});function tY(e){let t=[],n="",r=()=>{n.trim().length>0&&t.push({type:"text",text:n}),n=""};for(let s of e){if("text"===s.type&&"string"==typeof s.text){n&&(n+="\n"),n+=s.text;continue}r(),t.push(s)}return r(),t}function t0(e){return tY(e.parts??[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").trim()}let t1=(0,s.memo)(function({message:e,_images:t,isLatest:n,isStreaming:a,showThinking:l,onToolApprove:i,onToolDeny:o}){let[c,d]=(0,s.useState)(null),u=(0,s.useMemo)(()=>tY(e.parts??[]),[e.parts]);return"user"===e.role?null:(0,r.jsxs)("div",{className:"flex flex-col gap-1 items-start",children:[c&&(0,r.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>d(null),children:[(0,r.jsx)("img",{src:c,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,r.jsx)("button",{className:"absolute right-4 top-4 flex h-8 w-8 items-center justify-center rounded-full bg-black/50 text-white hover:bg-black/70",onClick:()=>d(null),children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)("div",{className:"max-w-[95%] min-w-0 text-sm leading-relaxed",children:[u.map((e,t)=>{if("text"===e.type)return(0,r.jsx)(t2,{text:e.text??""},t);if("dynamic-tool"===e.type||e.type?.startsWith("tool-")){let n="approval-requested"===e.state;if(!n&&!l)return null;let s=e.toolName??e.type.replace(/^tool-/,""),a=e.approval?.approvalId??e.toolCallId;return(0,r.jsx)(t7,{toolName:s,state:e.state??"",args:e.input,onApprove:n&&i?()=>i(a??""):void 0,onDeny:n&&o?()=>o(a??""):void 0},t)}return null}),a&&n&&(0,r.jsx)("span",{className:"inline-block h-4 w-0.5 animate-pulse bg-foreground/60 ml-0.5 align-text-bottom"})]})]})}),t5={code:({className:e,children:t,...n})=>e||"string"!=typeof t||t.includes("\n")?(0,r.jsx)("pre",{className:"my-2 overflow-x-auto rounded-lg bg-zinc-100 p-3 text-[13px] dark:bg-zinc-900",children:(0,r.jsx)("code",{className:e,...n,children:t})}):(0,r.jsx)("code",{className:"rounded bg-zinc-100 px-1.5 py-0.5 text-[13px] dark:bg-zinc-800",...n,children:t}),pre:({children:e})=>(0,r.jsx)(r.Fragment,{children:e}),p:({children:e})=>(0,r.jsx)("p",{className:"my-1",children:e}),a:({href:e,children:t})=>(0,r.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 underline dark:text-blue-400 break-all",children:t}),ul:({children:e})=>(0,r.jsx)("ul",{className:"my-1 list-disc pl-4",children:e}),ol:({children:e})=>(0,r.jsx)("ol",{className:"my-1 list-decimal pl-4",children:e}),li:({children:e})=>(0,r.jsx)("li",{className:"my-0",children:e}),blockquote:({children:e})=>(0,r.jsx)("blockquote",{className:"my-2 border-l-2 border-zinc-300 pl-3 italic text-muted-foreground dark:border-zinc-600",children:e}),table:({children:e})=>(0,r.jsx)("div",{className:"my-2 overflow-x-auto",children:(0,r.jsx)("table",{className:"min-w-full border-collapse text-sm",children:e})}),th:({children:e})=>(0,r.jsx)("th",{className:"border border-zinc-300 bg-zinc-100 px-2 py-1 text-left font-medium dark:border-zinc-600 dark:bg-zinc-800",children:e}),td:({children:e})=>(0,r.jsx)("td",{className:"border border-zinc-300 px-2 py-1 dark:border-zinc-600",children:e}),h1:({children:e})=>(0,r.jsx)("h1",{className:"my-2 text-base font-bold",children:e}),h2:({children:e})=>(0,r.jsx)("h2",{className:"my-1.5 text-sm font-bold",children:e}),h3:({children:e})=>(0,r.jsx)("h3",{className:"my-1 text-sm font-semibold",children:e}),img:({src:e,alt:t})=>(0,r.jsx)("img",{src:e,alt:t??"",className:"my-2 max-w-full rounded-lg"})},t2=(0,s.memo)(function({text:e}){return(0,r.jsx)("div",{className:"chat-message-content min-w-0 max-w-full overflow-hidden text-sm leading-relaxed [overflow-wrap:break-word]",children:(0,r.jsx)(e7.oz,{remarkPlugins:[te.A],components:t5,children:e})})}),t4=(0,s.memo)(function({entry:e}){let[t,n]=(0,s.useState)(!1),a=(0,s.useId)(),l=(0,tr.I)(),i=t6(e.name),o=i.icon,d=t9(e.args),u=function(e){if(null==e)return null;if("string"==typeof e)return e.trim()?e:null;try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.args),m=e.output?.trim()??"",h=t8(m)??m,x=!!m,p=!!(u||x),g="start"===e.phase||"update"===e.phase,f="result"===e.phase?"Completed":"error"===e.phase?"Error":"Running",b="result"===e.phase?eQ.A:"error"===e.phase?eB.A:eq.A;return(0,r.jsxs)("div",{className:(0,c.cn)("rounded-lg border border-transparent bg-transparent","transition-colors","hover:border-border/40 hover:bg-muted/20",t&&"border-border/50 bg-muted/30",g&&"bg-muted/30"),children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{p&&n(e=>!e)},className:(0,c.cn)("group flex w-full items-center justify-between gap-2 px-0 py-px text-left","text-[11px] leading-4 transition-colors","text-muted-foreground/60 hover:text-muted-foreground",p?"cursor-pointer":"cursor-default"),"aria-expanded":p?t:void 0,"aria-disabled":!p,"aria-controls":p?a:void 0,children:[(0,r.jsx)("span",{className:(0,c.cn)("flex h-3.5 w-3.5 items-center justify-center",p?"text-muted-foreground/50 group-hover:text-muted-foreground":"opacity-0"),"aria-hidden":"true",children:p&&t?(0,r.jsx)(eX.A,{className:"h-3 w-3"}):(0,r.jsx)(k.A,{className:"h-3 w-3"})}),(0,r.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground","aria-hidden":"true",children:(0,r.jsx)(o,{className:"h-3.5 w-3.5"})}),(0,r.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,r.jsx)("span",{className:"text-[11px] font-medium text-foreground/75 group-hover:text-foreground",children:i.label}),d&&(0,r.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground/60 truncate group-hover:text-muted-foreground",children:d})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,r.jsx)(b,{className:(0,c.cn)("h-3.5 w-3.5","Running"===f&&"animate-spin motion-reduce:animate-none","Error"===f&&"text-destructive")}),(0,r.jsx)("span",{className:(0,c.cn)("Error"===f&&"text-destructive",g&&"animate-pulse motion-reduce:animate-none"),children:f})]})]}),(0,r.jsx)(tn.N,{initial:!1,children:t&&p&&(0,r.jsx)(tt.P.div,{id:a,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!l},className:"overflow-hidden",children:(0,r.jsxs)("div",{className:"px-2 pb-2 space-y-2",children:[u&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Args"}),(0,r.jsx)("pre",{className:"max-h-60 overflow-auto rounded-md bg-background/60 px-2 py-1.5 text-[10px] font-mono whitespace-pre-wrap text-foreground",children:u})]}),x&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Output"}),(0,r.jsx)("pre",{className:"max-h-60 overflow-auto rounded-md bg-background/60 px-2 py-1.5 text-[10px] font-mono whitespace-pre-wrap text-foreground",children:h})]})]})})})]})}),t3={Read:{icon:C.A,label:"Read file"},Edit:{icon:eY.A,label:"Edit file"},Write:{icon:e0.A,label:"Write file"},exec:{icon:eJ.A,label:"Run command"},web_search:{icon:l.A,label:"Web search"},web_fetch:{icon:e1.A,label:"Fetch page"},browser:{icon:e1.A,label:"Browser"},message:{icon:ed.A,label:"Send message"},image:{icon:e5.A,label:"Analyze image"},tts:{icon:e2.A,label:"Text to speech"},nodes:{icon:e4.A,label:"Node control"},canvas:{icon:e3.A,label:"Canvas"},process:{icon:e6.A,label:"Process"}};function t6(e){let t=e.trim(),n=t.replace(/[\s-]+/g,"_"),r=n.toLowerCase(),s=r.length>0?r[0].toUpperCase()+r.slice(1):"";for(let e of[t,n,r,t.toLowerCase(),s])if(e&&t3[e])return t3[e];return{icon:e9.A,label:t||"Tool"}}function t9(e){if(!e)return null;if("string"==typeof e){let t=e.trim();return t?t.length>60?t.slice(0,57)+"…":t:null}if("object"!=typeof e)return null;if(e.query)return`"${String(e.query)}"`;if(e.path)return String(e.path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(e.file_path)return String(e.file_path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(e.command){let t=String(e.command);return t.length>60?t.slice(0,57)+"…":t}return e.url?String(e.url):e.action?String(e.action):null}function t8(e){return e?tL(e)??e:null}let t7=(0,s.memo)(function({toolName:e,state:t,args:n,onApprove:s,onDeny:a}){let l=t6(e),i=l.icon,o=(()=>{if(!n||"object"!=typeof n)return null;if(n.query)return`"${String(n.query)}"`;if(n.path)return String(n.path).split("/").pop();if(n.file_path)return String(n.file_path).split("/").pop();if(n.command){let e=String(n.command);return e.length>50?e.slice(0,50)+"…":e}return n.url?String(n.url):null})();return"approval-requested"!==t?(0,r.jsxs)("div",{className:"my-1.5 flex items-center gap-2 rounded-md px-2 py-1 text-[11px] leading-4 text-muted-foreground/60 transition-colors hover:text-muted-foreground hover:bg-muted/30",children:["call"===t||"input-streaming"===t||"input-available"===t?(0,r.jsx)(eq.A,{className:"h-3 w-3 animate-spin motion-reduce:animate-none shrink-0"}):"output-available"===t||"result"===t?(0,r.jsx)(eQ.A,{className:"h-3 w-3 text-green-600 shrink-0"}):"output-error"===t?(0,r.jsx)(e8.A,{className:"h-3 w-3 text-destructive shrink-0"}):(0,r.jsx)("span",{className:"shrink-0 text-muted-foreground/70",children:(0,r.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("span",{className:"font-medium text-foreground/75",children:l.label}),o&&(0,r.jsx)("span",{className:"truncate max-w-[200px] text-[10px] font-mono text-muted-foreground/60",children:o})]}):(0,r.jsxs)("div",{className:"my-1.5 rounded-lg border border-amber-500/40 bg-amber-50/50 dark:bg-amber-950/20 p-2.5 text-xs",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,r.jsx)(eG.A,{className:"h-3.5 w-3.5 text-amber-600 dark:text-amber-400"}),(0,r.jsx)("span",{className:"font-medium font-mono",children:e}),(0,r.jsx)("span",{className:"text-muted-foreground/60",children:"Requires approval"})]}),null!=n&&"object"==typeof n&&Object.keys(n).length>0?(0,r.jsx)("pre",{className:"mt-1.5 overflow-x-auto rounded bg-background dark:bg-muted/50 p-1.5 text-[11px] font-mono text-muted-foreground",children:JSON.stringify(n,null,2)}):null,s&&a&&(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:s,className:"inline-flex items-center gap-1 rounded-md bg-green-600 px-2.5 py-1 text-[11px] font-medium text-white transition-colors hover:bg-green-700",children:[(0,r.jsx)(eQ.A,{className:"h-3 w-3"}),"Approve"]}),(0,r.jsxs)("button",{onClick:a,className:"inline-flex items-center gap-1 rounded-md bg-red-600 px-2.5 py-1 text-[11px] font-medium text-white transition-colors hover:bg-red-700",children:[(0,r.jsx)(e8.A,{className:"h-3 w-3"}),"Deny"]})]})]})});var ne=n(37618),nt=n(92564),nn=n(93219);let nr=[{id:"pages",label:"Pages",icon:C.A},{id:"editor",label:"Editor",icon:ne.A},{id:"chat",label:"Chat",icon:nt.A},{id:"activity",label:"Activity",icon:nn.A}],ns=(0,s.memo)(function({activeTab:e,onTabChange:t,hasUnreadChat:n=!1,onNewPage:s}){return(0,r.jsxs)(r.Fragment,{children:["pages"===e&&s&&(0,r.jsx)("button",{onClick:s,className:(0,c.cn)("fixed bottom-20 right-4 z-50 flex h-14 w-14 items-center justify-center","rounded-full bg-accent-blue text-white shadow-lg","active:scale-95 transition-transform","safe-area-bottom-fab"),"aria-label":"New Document",children:(0,r.jsx)(i.A,{className:"h-6 w-6"})}),(0,r.jsx)("nav",{className:"fixed bottom-0 left-0 right-0 z-50 flex h-14 items-stretch border-t border-border bg-background/95 backdrop-blur-sm safe-area-bottom",children:nr.map(({id:s,label:a,icon:l})=>{let i=e===s;return(0,r.jsxs)("button",{onClick:()=>t(s),className:(0,c.cn)("relative flex flex-1 flex-col items-center justify-center gap-0.5 transition-colors min-h-[44px]",i?"text-accent-blue":"text-muted-foreground active:text-foreground"),children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(l,{className:"h-5 w-5"}),"chat"===s&&n&&(0,r.jsxs)("span",{className:"absolute -right-1.5 -top-1 flex h-2.5 w-2.5",children:[(0,r.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-accent-blue opacity-75"}),(0,r.jsx)("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-accent-blue"})]})]}),(0,r.jsx)("span",{className:"text-[10px] font-medium",children:a}),i&&(0,r.jsx)("span",{className:"absolute top-0 left-1/4 right-1/4 h-0.5 rounded-full bg-accent-blue"})]},s)})})]})});function na({onNavigate:e}){let t=(0,j.usePathname)(),n=(0,j.useRouter)(),{spaces:a,expandedSpaces:i,expandedFolders:o,toggleSpace:d,toggleFolder:u,pagesBySpace:m,spacesStatus:h,pagesStatusBySpace:x,recentPages:p,recentStatus:g,loadSpaces:f,loadRecentPages:b}=(0,M.M)(),[v,w]=(0,s.useState)("");(0,s.useEffect)(()=>{f(),b()},[f,b]);let y=(0,s.useCallback)(t=>{n.push((0,W.C)(t)),e?.()},[n,e]),N=(0,K.z)(e=>e.agentName);return(0,r.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,r.jsx)("div",{className:"flex h-14 shrink-0 items-center justify-between border-b px-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-primary text-[11px] font-bold text-primary-foreground",children:"C"}),(0,r.jsx)("span",{className:"text-sm font-semibold",children:N??"ClawPad"})]})}),(0,r.jsx)("div",{className:"shrink-0 px-4 py-3",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(l.A,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,r.jsx)("input",{type:"text",placeholder:"Search pages…",value:v,onChange:e=>w(e.target.value),className:(0,c.cn)("w-full rounded-lg border bg-secondary/50 py-2.5 pl-9 pr-3 text-sm","placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-ring","min-h-[44px]")})]})}),(0,r.jsxs)($,{className:"flex-1 px-4",children:[!v&&p.length>0&&(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)(nl,{children:"Recent"}),(0,r.jsx)("div",{className:"space-y-0.5",children:p.slice(0,5).map(e=>(0,r.jsx)(no,{page:e,isActive:t===(0,W.C)(e.path),onNavigate:()=>y(e.path),showTime:!0},e.path))})]}),(0,r.jsx)(R.w,{className:"my-2"}),(0,r.jsxs)("div",{className:"pb-4",children:[(0,r.jsx)(nl,{children:"Spaces"}),"loading"===h&&0===a.length?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(_.E,{className:"h-12 w-full rounded-lg"}),(0,r.jsx)(_.E,{className:"h-12 w-full rounded-lg"}),(0,r.jsx)(_.E,{className:"h-12 w-full rounded-lg"})]}):0===a.length?(0,r.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:"No spaces yet"}):(0,r.jsx)("div",{className:"space-y-1",children:a.map(e=>(0,r.jsx)(ni,{space:e,isExpanded:i.has(e.path),pages:m.get(e.path)??[],isLoadingPages:(x.get(e.path)??"idle")==="loading"&&0===(m.get(e.path)??[]).length,pathname:t,searchQuery:v,onToggle:()=>d(e.path),expandedFolders:o,onToggleFolder:u,onNavigate:y},e.path))}),"loading"===g&&0===p.length&&!v&&(0,r.jsxs)("div",{className:"mb-4 space-y-2",children:[(0,r.jsx)(nl,{children:"Recent"}),(0,r.jsx)(_.E,{className:"h-10 w-full rounded-lg"}),(0,r.jsx)(_.E,{className:"h-10 w-4/5 rounded-lg"})]})]})]})]})}function nl({children:e}){return(0,r.jsx)("h3",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e})}let ni=(0,s.memo)(function({space:e,isExpanded:t,pages:n,isLoadingPages:s,pathname:a,searchQuery:l,onToggle:i,expandedFolders:o,onToggleFolder:d,onNavigate:u}){let m=F(l?n.filter(e=>e.title.toLowerCase().includes(l.toLowerCase())):n,e.path);if(l&&0===m.length)return null;let h=t=>t.map(t=>{if("page"===t.type)return(0,r.jsx)(no,{page:t.page,isActive:a===(0,W.C)(t.page.path),onNavigate:()=>u(t.page.path)},t.page.path);let n=`${e.path}/${t.path}`,s=o.has(n);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{onClick:()=>d(n),className:(0,c.cn)("flex w-full items-center gap-2 rounded-lg px-3 py-2 text-[13px] transition-colors","text-muted-foreground hover:bg-secondary active:bg-secondary","min-h-[44px]"),children:[(0,r.jsx)(k.A,{className:(0,c.cn)("h-3.5 w-3.5 shrink-0 transition-transform duration-200",s&&"rotate-90")}),(0,r.jsx)("span",{className:"shrink-0 text-xs",children:"\uD83D\uDCC2"}),(0,r.jsx)("span",{className:"flex-1 truncate text-left",children:t.name})]}),s&&(0,r.jsx)("div",{className:"ml-3 border-l border-border/50 pl-3 py-0.5",children:h(t.children)})]},n)});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{onClick:i,className:(0,c.cn)("flex w-full items-center gap-2 rounded-lg px-3 py-3 text-sm transition-colors","hover:bg-secondary active:bg-secondary","min-h-[48px]",t&&"font-medium"),children:[(0,r.jsx)(k.A,{className:(0,c.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200",t&&"rotate-90")}),(0,r.jsx)("span",{className:"shrink-0 text-base",children:e.icon??"\uD83D\uDCC1"}),(0,r.jsx)("span",{className:"flex-1 truncate text-left",children:e.name}),(0,r.jsx)(T.E,{variant:"secondary",className:"h-5 shrink-0 px-1.5 text-[11px] font-normal",children:e.pageCount})]}),t&&(0,r.jsx)("div",{className:"ml-4 border-l border-border/50 pl-3 py-0.5",children:s?(0,r.jsxs)("div",{className:"space-y-1 py-1",children:[(0,r.jsx)(_.E,{className:"h-10 w-full rounded-lg"}),(0,r.jsx)(_.E,{className:"h-10 w-3/4 rounded-lg"})]}):0===m.length?(0,r.jsx)("p",{className:"py-3 px-2 text-xs text-muted-foreground",children:"No pages yet. Create your first page."}):h(m)})]})}),no=(0,s.memo)(function({page:e,isActive:t,onNavigate:n,showTime:s}){return(0,r.jsxs)("button",{onClick:n,className:(0,c.cn)("flex w-full items-center gap-2 rounded-lg px-3 py-2.5 text-sm transition-colors","text-muted-foreground hover:bg-secondary active:bg-secondary","min-h-[44px]",t&&"bg-accent-light text-accent-blue font-medium"),children:[(0,r.jsx)(es.A,{className:"h-3.5 w-3.5 shrink-0 opacity-50"}),e.icon?(0,r.jsx)("span",{className:"shrink-0 text-sm",children:e.icon}):(0,r.jsx)(C.A,{className:"h-4 w-4 shrink-0"}),(0,r.jsx)("span",{className:"flex-1 truncate text-left",children:e.title}),s&&(0,r.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground/60",children:(0,I.f)(e.modified)})]})});var nc=n(3926),nd=n(34269),nu=n(49619),nm=n(90718);let nh={"file-changed":{icon:nc.A,className:"text-blue-500"},"file-added":{icon:er.A,className:"text-green-500"},"file-removed":{icon:nd.A,className:"text-red-400"},"chat-message":{icon:ed.A,className:"text-violet-500"},"tool-used":{icon:e9.A,className:"text-amber-500"},"sub-agent":{icon:nu.A,className:"text-cyan-500"}};function nx(){let e=(0,K.z)(e=>e.agentStatus);return"thinking"!==e&&"active"!==e?null:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-md bg-violet-500/10 px-2 py-1.5 mb-1",children:[(0,r.jsx)(nm.A,{className:(0,c.cn)("h-3.5 w-3.5 text-violet-500","thinking"===e&&"animate-pulse")}),(0,r.jsx)("span",{className:"text-[12px] text-violet-500 font-medium",children:"thinking"===e?"Agent thinking…":"Agent working…"}),(0,r.jsxs)("span",{className:"ml-auto flex gap-0.5",children:[(0,r.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:0ms]"}),(0,r.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:150ms]"}),(0,r.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:300ms]"})]})]})}function np({type:e,description:t,timestamp:n}){let s,a=nh[e]??nh["file-changed"],l=a.icon;return(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-md px-2 py-1.5 transition-colors hover:bg-sidebar-accent group",children:[(0,r.jsx)(l,{className:(0,c.cn)("mt-0.5 h-3.5 w-3.5 shrink-0",a.className)}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"truncate text-[12px] leading-snug text-foreground/80",children:t}),(0,r.jsx)("p",{className:"text-[10px] text-muted-foreground/60",children:(s=Math.floor((Date.now()-n)/1e3))<5?"just now":s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`})]})]})}function ng(){let e=(0,ts.e)(e=>e.items),t=(0,ts.e)(e=>e.clear);return(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-2 py-1",children:[(0,r.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:"Activity"}),e.length>0&&(0,r.jsx)("button",{onClick:t,className:"text-[10px] text-muted-foreground/60 hover:text-muted-foreground transition-colors",children:"Clear"})]}),(0,r.jsx)(nx,{}),0===e.length?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,r.jsx)(nn.A,{className:"mb-3 h-8 w-8 text-muted-foreground/30"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No recent activity"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/60",children:"File changes and agent events will appear here"})]}):(0,r.jsx)($,{className:"max-h-[400px]",children:(0,r.jsx)("div",{className:"space-y-0.5",children:e.map(e=>(0,r.jsx)(np,{type:e.type,description:e.description,timestamp:e.timestamp},e.id))})})]})}function nf(){return(0,r.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,r.jsx)("div",{className:"flex h-14 shrink-0 items-center border-b px-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(nn.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:"Activity"})]})}),(0,r.jsx)($,{className:"flex-1",children:(0,r.jsx)("div",{className:"p-4",children:(0,r.jsx)(ng,{})})})]})}var nb=n(42317);let nv={navigation:"Navigation",panels:"Panels",editing:"Editing",ai:"AI",general:"General"},nw=["navigation","panels","editing","ai","general"];function nj({shortcuts:e}){let[t,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>{function e(){n(!0)}return window.addEventListener("clawpad:shortcuts-dialog",e),()=>window.removeEventListener("clawpad:shortcuts-dialog",e)},[]);let a=(0,s.useCallback)(e=>{n(e)},[]),l=nw.map(t=>({category:t,label:nv[t]??t,items:e.filter(e=>e.category===t)})).filter(e=>e.items.length>0);return(0,r.jsx)(eg,{open:t,onOpenChange:a,children:(0,r.jsxs)(ev,{className:"sm:max-w-[480px]",children:[(0,r.jsxs)(ew,{children:[(0,r.jsxs)(ey,{className:"flex items-center gap-2",children:[(0,r.jsx)(ex.A,{className:"h-4 w-4 text-muted-foreground"}),"Keyboard Shortcuts"]}),(0,r.jsx)(eN,{children:"Quick actions to navigate your workspace"})]}),(0,r.jsxs)("div",{className:"grid gap-5 py-2",children:[l.map(e=>(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e.label}),(0,r.jsx)("div",{className:"space-y-1",children:e.items.map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-muted/50",children:[(0,r.jsx)("span",{className:"text-foreground/80",children:e.label}),(0,r.jsx)(nN,{keys:e.keys})]},e.id))})]},e.category)),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Other"}),(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-muted/50",children:[(0,r.jsx)("span",{className:"text-foreground/80",children:"Close dialog / panel"}),(0,r.jsx)(nN,{keys:"Esc"})]})]})]})]})})}let ny={"⌘":"⌘","⇧":"⇧","⌥":"⌥","⌃":"⌃",Cmd:"⌘",Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Esc:"Esc",Enter:"↵",Tab:"⇥",Backspace:"⌫",Delete:"⌦","\\":"\\"};function nN({keys:e,className:t}){let n=function(e){let t=new Set(["⌘","⇧","⌥","⌃"]),n=[],r=0;for(;r<e.length;){let s=e[r];if(t.has(s))n.push(s),r++;else if("+"===s)r++;else{n.push(e.slice(r));break}}return 0===n.length&&n.push(e),n}(e);return(0,r.jsx)("div",{className:`flex items-center gap-0.5 ${t??""}`,children:n.map((e,t)=>(0,r.jsx)("kbd",{className:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted/60 px-1 text-[11px] font-medium text-muted-foreground",children:ny[e]??e},t))})}function nk(){var e;let t,n,a=(0,M.M)(e=>e.toggleSidebar),l=(0,M.M)(e=>e.toggleChatPanel),{resolvedTheme:i,setTheme:o}=(0,L.D)(),c=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette"))},[]),d=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]),u=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:shortcuts-dialog"))},[]),m=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),h=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),x=(0,s.useCallback)(()=>{o("dark"===i?"light":"dark")},[i,o]),p=(0,s.useCallback)(()=>{let e=document.querySelector(".clawpad-editor [contenteditable]")??document.querySelector(".clawpad-editor .bn-editor")??document.querySelector(".clawpad-editor");e&&e.focus()},[]),g=(0,s.useMemo)(()=>{var e;return[{id:"search",label:"Search",keys:"⌘K",category:"navigation",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"k"===e.key,action:(e={openSearch:c,newPage:d,toggleChat:l,toggleSidebar:a,save:m,saveAll:h,openShortcuts:u,toggleDarkMode:x,focusEditor:p}).openSearch},{id:"quick-switcher",label:"Quick Document Switcher",keys:"⌘P",category:"navigation",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"p"===e.key,action:e.openSearch},{id:"new-page",label:"New Document",keys:"⌘N",category:"navigation",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"n"===e.key,action:e.newPage},{id:"toggle-sidebar",label:"Toggle Sidebar",keys:"⌘\\",category:"panels",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"\\"===e.key,action:e.toggleSidebar},{id:"toggle-chat",label:"Toggle Chat",keys:"⌘⇧L",category:"panels",match:e=>(e.metaKey||e.ctrlKey)&&e.shiftKey&&"l"===e.key.toLowerCase(),action:e.toggleChat},{id:"focus-editor",label:"Focus Editor",keys:"⌘⇧E",category:"panels",match:e=>(e.metaKey||e.ctrlKey)&&e.shiftKey&&"e"===e.key.toLowerCase(),action:e.focusEditor},{id:"save",label:"Save",keys:"⌘S",category:"editing",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"s"===e.key,action:e.save},{id:"save-all",label:"Save All",keys:"⌘⇧S",category:"editing",match:e=>(e.metaKey||e.ctrlKey)&&e.shiftKey&&"s"===e.key.toLowerCase(),action:e.saveAll},...e.aiOnSelection?[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"j"===e.key,action:e.aiOnSelection}]:[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:e=>(e.metaKey||e.ctrlKey)&&!e.shiftKey&&"j"===e.key,action:()=>{}}],{id:"toggle-dark-mode",label:"Toggle Dark Mode",keys:"⌘⇧D",category:"general",match:e=>(e.metaKey||e.ctrlKey)&&e.shiftKey&&"d"===e.key.toLowerCase(),action:e.toggleDarkMode},{id:"shortcuts-help",label:"Keyboard Shortcuts",keys:"⌘/",category:"general",match:e=>(e.metaKey||e.ctrlKey)&&"/"===e.key,action:e.openShortcuts}]},[c,d,l,a,m,h,u,x,p]);return e=(0,s.useMemo)(()=>g.filter(e=>["toggle-sidebar","shortcuts-help","toggle-dark-mode","focus-editor","quick-switcher","save-all"].includes(e.id)),[g]),t=(0,s.useRef)(e),(0,s.useEffect)(()=>{t.current=e},[e]),n=(0,s.useCallback)(e=>{let n=e.target,r=!!n?.closest("input, textarea, select, [contenteditable='true']");for(let n of t.current)if(n.match(e)&&(!r||e.metaKey||e.ctrlKey)){e.preventDefault(),n.action();return}},[]),(0,s.useEffect)(()=>(window.addEventListener("keydown",n,{capture:!0}),()=>window.removeEventListener("keydown",n,{capture:!0})),[n]),(0,r.jsx)(nj,{shortcuts:g})}function nC(){return(0,r.jsxs)("div",{className:"flex h-full w-full flex-col p-4 gap-4",children:[(0,r.jsx)(_.E,{className:"h-8 w-32"}),(0,r.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,r.jsx)(_.E,{className:"h-16 w-3/4 ml-auto"}),(0,r.jsx)(_.E,{className:"h-24 w-4/5"}),(0,r.jsx)(_.E,{className:"h-16 w-2/3 ml-auto"})]}),(0,r.jsx)(_.E,{className:"h-12 w-full"})]})}function nS({children:e}){let{isMobile:t,isTablet:n}=Y(),[a,l]=(0,s.useState)("editor"),{chatPanelOpen:i,setChatPanelOpen:o,setSidebarOpen:c,hydrateAppearance:d}=(0,M.M)(),u=(0,s.useRef)(new Map);(0,s.useEffect)(()=>{d()},[d]);let m=(0,s.useCallback)(e=>{let t=e.currentTarget;t.classList.add("is-scrolling");let n=u.current,r=n.get(t);r&&window.clearTimeout(r);let s=window.setTimeout(()=>{t.classList.remove("is-scrolling"),n.delete(t)},900);n.set(t,s)},[]);(0,s.useEffect)(()=>{let e=u.current;return()=>{e.forEach(e=>window.clearTimeout(e)),e.clear()}},[]);let h=(0,s.useCallback)(e=>{l(e),c(!1),"chat"===e?o(!0):o(!1)},[c,o]),p=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]);return t?(0,r.jsxs)("div",{className:"flex h-[100dvh] flex-col overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex-1 overflow-hidden",children:["pages"===a&&(0,r.jsx)("div",{className:"h-full pb-14",children:(0,r.jsx)(na,{onNavigate:()=>l("editor")})}),"editor"===a&&(0,r.jsx)("main",{className:"workspace-scroll-area h-full overflow-y-auto pb-14",onScroll:m,children:(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nb.L,{}),children:e})}),"chat"===a&&(0,r.jsx)("div",{className:"h-full pb-14",children:(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nC,{}),children:(0,r.jsx)(tW,{variant:"fullscreen"})})}),"activity"===a&&(0,r.jsx)("div",{className:"h-full pb-14",children:(0,r.jsx)(nf,{})})]}),(0,r.jsx)(ns,{activeTab:a,onTabChange:h,onNewPage:p}),(0,r.jsx)(e_,{}),(0,r.jsx)(eK,{}),(0,r.jsx)(nk,{})]}):n?(0,r.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,r.jsx)(et,{}),(0,r.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nb.L,{}),children:e})}),(0,r.jsx)(x,{open:i,onOpenChange:o,children:(0,r.jsxs)(f,{side:"right",className:"w-[400px] p-0",showCloseButton:!1,children:[(0,r.jsx)(ee,{children:(0,r.jsx)(b,{children:"Chat"})}),(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nC,{}),children:(0,r.jsx)(tW,{variant:"sheet"})})]})}),(0,r.jsx)(e_,{}),(0,r.jsx)(eK,{}),(0,r.jsx)(nk,{})]}):(0,r.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,r.jsx)(et,{}),(0,r.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nb.L,{}),children:e})}),(0,r.jsx)(s.Suspense,{fallback:(0,r.jsx)(nC,{}),children:(0,r.jsx)(tW,{})}),(0,r.jsx)(e_,{}),(0,r.jsx)(eK,{}),(0,r.jsx)(nk,{})]})}},31328:(e,t,n)=>{"use strict";n.d(t,{z:()=>a});var r=n(1934);let s="http://127.0.0.1:18789",a=(0,r.v)((e,t)=>({connected:!1,connecting:!1,wsStatus:"disconnected",wsError:void 0,reason:null,url:s,token:void 0,agentName:void 0,source:void 0,sessions:[],agentStatus:"idle",error:void 0,detect:async()=>{try{let t=await fetch("/api/gateway/detect");if(!t.ok)throw Error("Failed to detect gateway");let n=await t.json();n&&e({url:n.url||s,token:n.token||void 0,agentName:n.agentName||void 0,source:n.source||void 0})}catch(t){e({reason:"server_unreachable",error:`Detection failed: ${String(t)}`})}},connect:async()=>{let{url:n}=t();e({connecting:!0,error:void 0,reason:null});try{let r=await fetch("/api/gateway/status");if(!r.ok)throw Error("Failed to check gateway status");let s=await r.json();s.connected?(e({connected:!0,connecting:!1,agentName:s.agentName||t().agentName,reason:null,error:void 0}),t().loadSessions()):e({connected:!1,connecting:!1,reason:s.reason??"gateway_unreachable",error:s.error||`Cannot connect to ${n}`})}catch(t){e({connected:!1,connecting:!1,reason:"server_unreachable",error:`ClawPad server unreachable: ${String(t)}`})}},disconnect:()=>{e({connected:!1,connecting:!1,wsStatus:"disconnected",reason:null,sessions:[],agentStatus:"idle",error:void 0})},loadSessions:async()=>{try{let t=await fetch("/api/gateway/sessions");if(!t.ok)return;let n=(await t.json()).sessions??[],r=n.some(e=>"active"===e.status),s=n.some(e=>"thinking"===e.status);e({sessions:n,agentStatus:r?"active":s?"thinking":"idle"})}catch{}},setUrl:t=>e({url:t}),setToken:t=>e({token:t||void 0}),setWSStatus:(n,r)=>{e({wsStatus:n,wsError:"connected"===n?void 0:r?.error}),"connected"===n?e({connected:!0,connecting:!1,reason:null,error:void 0}):"connecting"===n||"reconnecting"===n?e({connected:!1,connecting:!0,reason:r?.reason??"gateway_unreachable"}):e({connected:!1,connecting:!1,reason:r?.reason??t().reason??"gateway_unreachable"})},setAgentStatus:t=>e({agentStatus:t})}))},35018:(e,t,n)=>{Promise.resolve().then(n.bind(n,24733))},42317:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(95155),s=n(86846);function a(){return(0,r.jsxs)("div",{className:"mx-auto w-full max-w-[720px] px-6",children:[(0,r.jsxs)("div",{className:"pt-20 pb-4",children:[(0,r.jsx)(s.E,{className:"h-10 w-2/3 mb-3"}),(0,r.jsx)(s.E,{className:"h-4 w-1/3"})]}),(0,r.jsxs)("div",{className:"space-y-3 pt-6",children:[(0,r.jsx)(s.E,{className:"h-4 w-full"}),(0,r.jsx)(s.E,{className:"h-4 w-[92%]"}),(0,r.jsx)(s.E,{className:"h-4 w-[78%]"}),(0,r.jsx)("div",{className:"h-3"}),(0,r.jsx)(s.E,{className:"h-4 w-full"}),(0,r.jsx)(s.E,{className:"h-4 w-[85%]"}),(0,r.jsx)(s.E,{className:"h-4 w-[65%]"}),(0,r.jsx)("div",{className:"h-3"}),(0,r.jsx)(s.E,{className:"h-4 w-[90%]"}),(0,r.jsx)(s.E,{className:"h-4 w-[70%]"})]})]})}},45160:(e,t,n)=>{"use strict";n.d(t,{E:()=>o});var r=n(95155);n(12115);var s=n(18460),a=n(42442),l=n(52799);let i=(0,s.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function o({className:e,variant:t="default",asChild:n=!1,...s}){let o=n?a.bL:"span";return(0,r.jsx)(o,{"data-slot":"badge","data-variant":t,className:(0,l.cn)(i({variant:t}),e),...s})}},46794:(e,t,n)=>{"use strict";n.d(t,{b:()=>r});let r=(0,n(1934).v)(e=>({lastEvent:void 0,events:[],updatedAt:void 0,addEvent:t=>e(e=>{let n=function(e,t){if(t)return t;let n=(e??"").toLowerCase();if(n){if("failed"===n)return"error";if("sent"===n)return"alert";if(n.startsWith("ok"))return"ok"}}(t.status,t.indicatorType),r={...t,indicatorType:n,actionable:"alert"===n||"error"===n},s=[r,...e.events];return s.length>20&&(s.length=20),{lastEvent:r,events:s,updatedAt:Date.now()}}),clear:()=>e({lastEvent:void 0,events:[],updatedAt:void 0})}))},53536:(e,t,n)=>{"use strict";function r(e){let t=new Date(e),n=Math.floor((new Date().getTime()-t.getTime())/1e3),r=Math.floor(n/60),s=Math.floor(r/60),a=Math.floor(s/24);return n<60?"just now":r<60?`${r}m`:s<24?`${s}h`:1===a?"Yesterday":a<7?`${a}d`:a<30?`${Math.floor(a/7)}w`:t.toLocaleDateString("en-US",{month:"short",day:"numeric"})}n.d(t,{f:()=>r})},60529:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(95155);n(12115);var s=n(52799);function a({className:e,type:t,...n}){return(0,r.jsx)("input",{type:t,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...n})}},70872:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>l,ZI:()=>c,k$:()=>o,m_:()=>i});var r=n(95155);n(12115);var s=n(28935),a=n(52799);function l({delayDuration:e=0,...t}){return(0,r.jsx)(s.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function i({...e}){return(0,r.jsx)(l,{children:(0,r.jsx)(s.Root,{"data-slot":"tooltip",...e})})}function o({...e}){return(0,r.jsx)(s.Trigger,{"data-slot":"tooltip-trigger",...e})}function c({className:e,sideOffset:t=0,children:n,...l}){return(0,r.jsx)(s.Portal,{children:(0,r.jsxs)(s.Content,{"data-slot":"tooltip-content",sideOffset:t,className:(0,a.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...l,children:[n,(0,r.jsx)(s.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},83099:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});let r=(0,n(1934).v)((e,t)=>({sessionKey:null,activeRun:null,activeFiles:new Set,lastFileTouchAt:null,changeSets:[],review:{open:!1,changeSetId:null,filePath:null},dismissed:new Set,loading:!1,error:void 0,setSessionKey:t=>e({sessionKey:t}),setActiveRun:t=>e({activeRun:t,...t?{}:{lastFileTouchAt:null}}),touchFile:t=>e(e=>{let n=new Set(e.activeFiles);return n.add(t),{activeFiles:n,lastFileTouchAt:Date.now()}}),clearActiveFiles:()=>e({activeFiles:new Set,lastFileTouchAt:null}),loadChangeSets:async()=>{let n=t().sessionKey;if(n){e({loading:!0,error:void 0});try{let t=await fetch(`/api/changes?sessionKey=${encodeURIComponent(n)}`);if(!t.ok)throw Error("Failed to load change sets");let r=await t.json();e({changeSets:r,loading:!1})}catch(t){e({loading:!1,error:String(t)})}}},openReview:(t,n)=>e({review:{open:!0,changeSetId:t,filePath:n}}),closeReview:()=>e({review:{open:!1,changeSetId:null,filePath:null}}),dismissChangeSet:t=>e(e=>{let n=new Set(e.dismissed);return n.add(t),{dismissed:n}})}))},86846:(e,t,n)=>{"use strict";n.d(t,{E:()=>a});var r=n(95155),s=n(52799);function a({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("bg-accent animate-pulse rounded-md",e),...t})}},89239:(e,t,n)=>{"use strict";n.d(t,{$:()=>o});var r=n(95155);n(12115);var s=n(18460),a=n(42442),l=n(52799);let i=(0,s.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:t="default",size:n="default",asChild:s=!1,...o}){let c=s?a.bL:"button";return(0,r.jsx)(c,{"data-slot":"button","data-variant":t,"data-size":n,className:(0,l.cn)(i({variant:t,size:n,className:e})),...o})}},93571:(e,t,n)=>{"use strict";n.d(t,{R:()=>o});var r=n(95155),s=n(5772),a=n(52799);let l=265/235,i=1152/235;function o({variant:e="icon",size:t=24,className:n,imageClassName:o,lightImageClassName:c,darkImageClassName:d,theme:u="auto",alt:m="ClawPad",priority:h=!1}){let x="icon"===e,p=Math.round(t*(x?l:i));return(0,r.jsx)("span",{className:(0,a.cn)("inline-flex items-center",n),children:(0,r.jsx)(s.default,{src:x?"/brand/icon.png":"/brand/logo.png",width:p,height:t,alt:m,priority:h,className:(0,a.cn)("block",o,"dark"===u?d:"light"===u?c:void 0)})})}},97916:(e,t,n)=>{"use strict";n.d(t,{w:()=>l});var r=n(95155);n(12115);var s=n(89803),a=n(52799);function l({className:e,orientation:t="horizontal",decorative:n=!0,...l}){return(0,r.jsx)(s.b,{"data-slot":"separator",decorative:n,orientation:t,className:(0,a.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...l})}}},e=>{e.O(0,[8803,330,7300,4559,6609,5403,8935,9352,1285,8550,9075,7230,1178,8441,3794,7358],()=>e(e.s=35018)),_N_E=e.O()}]);