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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +6 -6
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/ai/write/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/record/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/revert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/changes/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/abort/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/pages/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/spaces/[space]/pages/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/files/watch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/detect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/features/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/history/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/resolve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/gateway/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/openclaw/commands/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/search-status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/bootstrap-workspace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/connection/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/connection.html +1 -1
- package/.next/standalone/.next/server/app/settings/connection.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/connection.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/connection.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings/connection.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/connection.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/relay/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/relay/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/relay.html +1 -1
- package/.next/standalone/.next/server/app/settings/relay.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/relay.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/relay.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings/relay.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings/relay.segments/settings/relay.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/relay.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +5 -5
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist/page.js +1 -1
- package/.next/standalone/.next/server/app/waitlist/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/waitlist.html +1 -1
- package/.next/standalone/.next/server/app/waitlist.rsc +4 -4
- package/.next/standalone/.next/server/app/waitlist.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/waitlist.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/waitlist.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/waitlist.segments/waitlist/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/waitlist.segments/waitlist.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/[...path]/page.js +39 -2
- package/.next/standalone/.next/server/app/workspace/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/search/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspace/search.html +2 -2
- package/.next/standalone/.next/server/app/workspace/search.rsc +6 -6
- package/.next/standalone/.next/server/app/workspace/search.segments/_full.segment.rsc +6 -6
- package/.next/standalone/.next/server/app/workspace/search.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/workspace/search.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace/search.segments/workspace.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.html +2 -2
- package/.next/standalone/.next/server/app/workspace.rsc +6 -6
- package/.next/standalone/.next/server/app/workspace.segments/_full.segment.rsc +6 -6
- package/.next/standalone/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspace.segments/_index.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/workspace.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspace.segments/workspace.segment.rsc +2 -2
- package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/.next/server/chunks/3251.js +1 -1
- package/.next/standalone/.next/server/chunks/5502.js +1 -1
- package/.next/standalone/.next/server/chunks/7051.js +1 -1
- package/.next/standalone/.next/server/chunks/7174.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
- package/.next/standalone/node_modules/baseline-browser-mapping/package.json +8 -4
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/1285-9ce20956f9242893.js +9 -0
- package/.next/static/chunks/330-60f33582af3e15a5.js +1 -0
- package/.next/static/chunks/5167-ed3e0bd0cece4b4a.js +1 -0
- package/.next/static/chunks/54a60aa6.867b5520f2f42695.js +79 -0
- package/.next/static/chunks/app/settings/relay/page-1d9c7e4751a0d285.js +1 -0
- package/.next/static/chunks/app/workspace/[...path]/page-463022f5d199eabc.js +38 -0
- package/.next/static/chunks/app/workspace/{layout-9f33c59bd846f401.js → layout-e5fdab2463c57ef5.js} +1 -1
- package/.next/static/chunks/{ba12c10f-4a76b94632273ce4.js → ba12c10f-50aff6e7ca86063d.js} +1 -1
- package/.next/static/chunks/{webpack-c9a7907951504d87.js → webpack-86242326edb60137.js} +1 -1
- package/.next/static/css/aebc553629e4d7c1.css +1 -0
- package/README.md +2 -0
- package/bin/clawpad.js +22 -0
- package/package.json +1 -1
- package/.next/static/chunks/1285-513d0a20b39e5e47.js +0 -9
- package/.next/static/chunks/330-59824510b74e3d59.js +0 -1
- package/.next/static/chunks/4328-1baf4f862559cce8.js +0 -1
- package/.next/static/chunks/54a60aa6.0a0062edc9e33358.js +0 -79
- package/.next/static/chunks/app/settings/relay/page-e0fd8c840d377b11.js +0 -1
- package/.next/static/chunks/app/workspace/[...path]/page-c99cdc1cfdfb0fef.js +0 -1
- package/.next/static/css/7328dda059c2e2c3.css +0 -1
- /package/.next/static/{dE2vgzBfR9CceWwVrnKdq → 6wBTkYweCDZaRJk9nK9iE}/_buildManifest.js +0 -0
- /package/.next/static/{dE2vgzBfR9CceWwVrnKdq → 6wBTkYweCDZaRJk9nK9iE}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
exports.id=3251,exports.ids=[3251],exports.modules={2864:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(48249);c(67484);var e=c(21654),f=c(43980),g=c(42893);let h=(0,e.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 i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},13656:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(48249),e=c(42893);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("bg-accent animate-pulse rounded-md",a),...b})}},25297:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(48249);c(67484);var e=c(21654),f=c(43980),g=c(42893);let h=(0,e.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 i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},29952:(a,b,c)=>{"use strict";function d(a){let b=new Date(a),c=Math.floor((new Date().getTime()-b.getTime())/1e3),d=Math.floor(c/60),e=Math.floor(d/60),f=Math.floor(e/24);return c<60?"just now":d<60?`${d}m`:e<24?`${e}h`:1===f?"Yesterday":f<7?`${f}d`:f<30?`${Math.floor(f/7)}w`:b.toLocaleDateString("en-US",{month:"short",day:"numeric"})}c.d(b,{f:()=>d})},43744:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>cv});var d=c(48249),e=c(67484),f=c(67216),g=c(10316),h=c(24520),i=c(71601),j=c(42893),k=c(25297),l=c(55296),m=c(46674),n=c(83726);function o({...a}){return(0,d.jsx)(n.Root,{"data-slot":"sheet",...a})}function p({...a}){return(0,d.jsx)(n.Portal,{"data-slot":"sheet-portal",...a})}function q({className:a,...b}){return(0,d.jsx)(n.Overlay,{"data-slot":"sheet-overlay",className:(0,j.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",a),...b})}function r({className:a,children:b,side:c="right",showCloseButton:e=!0,...f}){return(0,d.jsxs)(p,{children:[(0,d.jsx)(q,{}),(0,d.jsxs)(n.Content,{"data-slot":"sheet-content",className:(0,j.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"===c&&"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"===c&&"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"===c&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===c&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...f,children:[b,e&&(0,d.jsxs)(n.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,d.jsx)(m.A,{className:"size-4"}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function s({className:a,...b}){return(0,d.jsx)(n.Title,{"data-slot":"sheet-title",className:(0,j.cn)("text-foreground font-semibold",a),...b})}var t=c(2116),u=c.n(t),v=c(19099),w=c(76193),x=c(95581),y=c(19794),z=c(80600),A=c(73908),B=c(84121),C=c(35109);function D({className:a,children:b,...c}){return(0,d.jsxs)(C.Root,{"data-slot":"scroll-area",className:(0,j.cn)("relative",a),...c,children:[(0,d.jsx)(C.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:b}),(0,d.jsx)(E,{}),(0,d.jsx)(C.Corner,{})]})}function E({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(C.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,j.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(C.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var F=c(45516),G=c(2864),H=c(13656),I=c(77807),J=c(8696),K=c(98500),L=c(97032),M=c(29952),N=c(88650);function O(a,b){let c={type:"folder",name:"",path:"",children:[]},d=new Map;for(let e of(d.set("",c),a)){let a=function(a,b){let c=a.replace(/\\/g,"/").replace(/\.md$/,"");if(b===N.Sz)return c;let d=`${b}/`;return c.startsWith(d)?c.slice(d.length):c}(e.path,b),f=a.split("/").filter(Boolean);if(0===f.length)continue;let g=f.pop(),h=c,i="";for(let a of f){let b=i?`${i}/${a}`:a,c=d.get(b);c||(c={type:"folder",name:a,path:b,children:[]},d.set(b,c),h.children.push(c)),h=c,i=b}h.children.push({type:"page",name:g,path:a,page:e})}return c.children}var P=c(52908);function Q({onNavigate:a}){return(0,d.jsxs)(u(),{href:"/workspace",onClick:()=>a?.(),className:"flex items-center gap-2 text-[13px] font-semibold leading-none transition-colors hover:text-foreground/80",children:[(0,d.jsx)(I.R,{variant:"wordmark",size:26,theme:"light",alt:"ClawPad",className:"-translate-y-[2px]"}),(0,d.jsx)(Y,{})]})}function R({onNavigate:a,isSheet:b,showHeader:c=!0}){let f=(0,v.usePathname)(),i=(0,v.useRouter)(),{spaces:j,expandedSpaces:k,expandedFolders:l,toggleSpace:m,toggleFolder:n,pagesBySpace:o,spacesStatus:p,pagesStatusBySpace:q,pagesErrorBySpace:r,recentPages:s,recentStatus:t,loadSpaces:u,loadRecentPages:y,loadPages:z,setActivePage:A}=(0,K.M)(),B=(0,e.useCallback)(b=>{i.push((0,P.C)(b)),a?.()},[i,a]),C=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}})),a?.()},[a]),E=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"space"}})),a?.()},[a]),G=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette")),a?.()},[a]),I=(0,e.useCallback)(()=>{i.push("/settings"),a?.()},[a,i]);return(0,d.jsxs)("div",{className:"flex h-full w-full flex-col overflow-hidden",children:[c&&(0,d.jsx)("div",{className:"flex h-12 shrink-0 items-center justify-between px-3",children:(0,d.jsx)(Q,{onNavigate:a})}),(0,d.jsxs)("div",{className:"shrink-0 space-y-0.5 px-2",children:[(0,d.jsx)(V,{icon:(0,d.jsx)(g.A,{className:"h-4 w-4"}),label:"Search",shortcut:"⌘K",onClick:G,touchFriendly:b}),(0,d.jsx)(V,{icon:(0,d.jsx)(h.A,{className:"h-4 w-4"}),label:"New Document",shortcut:"⌘N",onClick:C,touchFriendly:b}),(0,d.jsx)(V,{icon:(0,d.jsx)(w.A,{className:"h-4 w-4"}),label:"New Space",onClick:E,touchFriendly:b})]}),(0,d.jsx)(F.w,{className:"my-2 shrink-0"}),(0,d.jsx)(D,{className:"min-h-0 flex-1 w-full min-w-0 px-2",children:(0,d.jsxs)("div",{className:"w-full py-1",children:[(0,d.jsx)(W,{children:"Spaces"}),"loading"===p&&0===j.length?(0,d.jsxs)("div",{className:"space-y-1 px-2",children:[(0,d.jsx)(H.E,{className:"h-7 w-full"}),(0,d.jsx)(H.E,{className:"h-7 w-full"}),(0,d.jsx)(H.E,{className:"h-7 w-full"})]}):0===j.length?(0,d.jsx)("p",{className:"px-2 py-2 text-xs text-muted-foreground",children:"No spaces yet"}):(0,d.jsx)("div",{className:"space-y-0.5",children:j.map(a=>(0,d.jsx)(S,{space:a,isExpanded:k.has(a.path),expandedFolders:l,pages:o.get(a.path)??[],pageLoadError:r.get(a.path)??null,isLoadingPages:(q.get(a.path)??"idle")==="loading"&&0===(o.get(a.path)??[]).length,pathname:f,touchFriendly:b,onToggle:()=>m(a.path),onToggleFolder:n,onRetryPages:()=>z(a.path,{force:!0}),onNavigate:B},a.path))}),s.length>0&&(0,d.jsxs)("div",{className:"mt-4",children:[(0,d.jsx)(W,{children:"Recent"}),(0,d.jsx)("div",{className:"space-y-0.5",children:s.slice(0,5).map(a=>(0,d.jsx)(U,{page:a,isActive:f===(0,P.C)(a.path),touchFriendly:b,onNavigate:()=>B(a.path)},a.path))})]}),"loading"===t&&0===s.length&&(0,d.jsxs)("div",{className:"mt-4 space-y-1 px-2",children:[(0,d.jsx)(W,{children:"Recent"}),(0,d.jsx)(H.E,{className:"h-6 w-full"}),(0,d.jsx)(H.E,{className:"h-6 w-5/6"})]})]})}),(0,d.jsx)(F.w,{className:"shrink-0"}),(0,d.jsxs)("div",{className:"shrink-0 space-y-0.5 px-2 py-2",children:[(0,d.jsx)(Z,{}),(0,d.jsx)(X,{touchFriendly:b}),(0,d.jsx)(V,{icon:(0,d.jsx)(x.A,{className:"h-4 w-4"}),label:"Settings",onClick:I,touchFriendly:b})]})]})}let S=(0,e.memo)(function({space:a,isExpanded:b,expandedFolders:c,pages:e,pageLoadError:f,isLoadingPages:g,pathname:h,touchFriendly:i,onToggle:k,onToggleFolder:l,onRetryPages:m,onNavigate:n}){let o=O(e,a.path),p=b=>b.map(b=>{if("page"===b.type)return(0,d.jsx)(T,{page:b.page,isActive:h===(0,P.C)(b.page.path),touchFriendly:i,onNavigate:()=>n(b.page.path)},b.page.path);let e=`${a.path}/${b.path}`,f=c.has(e);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>l(e),className:(0,j.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",i?"py-2 min-h-[44px]":"py-1",f&&"text-foreground"),children:[(0,d.jsx)(y.A,{className:(0,j.cn)("h-3 w-3 shrink-0 transition-transform duration-200",f&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-xs",children:"\uD83D\uDCC2"}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:b.name})]}),f&&(0,d.jsx)("div",{className:"ml-3 min-w-0 border-l border-border/50 pl-2 py-0.5",children:p(b.children)})]},e)});return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{type:"button",onClick:k,className:(0,j.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",i?"py-2 min-h-[44px]":"py-1",b&&"font-medium"),children:[(0,d.jsx)(y.A,{className:(0,j.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform duration-200",b&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-sm",children:a.icon??"\uD83D\uDCC1"}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:a.name}),(0,d.jsx)(G.E,{variant:"secondary",className:"h-4 shrink-0 px-1 text-[10px] font-normal",children:a.pageCount})]}),b&&(0,d.jsx)("div",{className:"ml-3 min-w-0 border-l border-border/50 pl-2 py-0.5",children:g?(0,d.jsxs)("div",{className:"space-y-1 py-1",children:[(0,d.jsx)(H.E,{className:"h-6 w-full"}),(0,d.jsx)(H.E,{className:"h-6 w-3/4"})]}):f&&0===o.length?(0,d.jsxs)("div",{className:"px-2 py-1.5",children:[(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Couldn't load pages."}),(0,d.jsx)("button",{type:"button",onClick:m,className:"mt-1 cursor-pointer text-[11px] text-primary hover:underline",children:"Retry"})]}):0===o.length?(0,d.jsx)("p",{className:"py-1.5 px-2 text-[11px] text-muted-foreground",children:"No pages yet. Create your first page."}):p(o)})]})}),T=(0,e.memo)(function({page:a,isActive:b,touchFriendly:c,onNavigate:e}){return(0,d.jsxs)("button",{type:"button",onClick:e,className:(0,j.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",c?"py-2 min-h-[44px]":"py-1",b&&"bg-accent-light text-accent-blue font-medium"),children:[a.icon?(0,d.jsx)("span",{className:"shrink-0 text-xs",children:a.icon}):(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:a.title})]})}),U=(0,e.memo)(function({page:a,isActive:b,touchFriendly:c,onNavigate:e}){return(0,d.jsxs)("button",{type:"button",onClick:e,className:(0,j.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",c?"py-2 min-h-[44px]":"py-1",b&&"bg-accent-light text-accent-blue font-medium"),children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden",children:[a.icon?(0,d.jsx)("span",{className:"shrink-0 text-xs",children:a.icon}):(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{className:"truncate text-left",children:a.title})]}),(0,d.jsx)("span",{className:"shrink-0 whitespace-nowrap tabular-nums text-[11px] font-medium text-muted-foreground/85",children:(0,M.f)(a.modified)})]})});function V({icon:a,label:b,shortcut:c,onClick:e,touchFriendly:f}){return(0,d.jsxs)("button",{type:"button",onClick:e,className:(0,j.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",f?"py-2.5 min-h-[44px]":"py-1.5"),children:[(0,d.jsx)("span",{className:"shrink-0",children:a}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate text-left",children:b}),c&&(0,d.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:c})]})}function W({children:a}){return(0,d.jsx)("h3",{className:"mb-1 px-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a})}function X({touchFriendly:a}){let{resolvedTheme:b,setTheme:c}=(0,J.D)(),e="dark"===b;return(0,d.jsx)(V,{icon:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(A.A,{className:"hidden h-4 w-4 dark:inline"}),(0,d.jsx)(B.A,{className:"inline h-4 w-4 dark:hidden"})]}),label:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"hidden dark:inline",children:"Light Mode"}),(0,d.jsx)("span",{className:"inline dark:hidden",children:"Dark Mode"})]}),onClick:()=>c(e?"light":"dark"),touchFriendly:a})}function Y(){let a=(0,L.z)(a=>a.wsStatus),b=(0,L.z)(a=>a.agentStatus),c=(0,L.z)(a=>a.agentName),e=(0,L.z)(a=>a.wsError),f="connected"===a?"thinking"===b||"active"===b?"bg-[color:var(--cp-brand-2)]":"bg-green-400":"connecting"===a||"reconnecting"===a?"bg-yellow-400":"bg-zinc-400",g="connected"===a?"thinking"===b?`${c??"Agent"}: thinking…`:"active"===b?`${c??"Agent"}: working…`:`${c??"Agent"}: online`:"connecting"===a?`Connecting to gateway…${e?` — ${e}`:""}`:"reconnecting"===a?`Reconnecting to gateway…${e?` — ${e}`:""}`:`Disconnected${e?` — ${e}`:""}`;return(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsxs)("span",{className:"relative flex h-2.5 w-2.5",children:[("connecting"===a||"reconnecting"===a||"thinking"===b||"active"===b)&&(0,d.jsx)("span",{className:(0,j.cn)("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75",f)}),(0,d.jsx)("span",{className:(0,j.cn)("relative inline-flex h-2.5 w-2.5 rounded-full ring-1 ring-[color:var(--cp-brand-border)]",f)})]})}),(0,d.jsx)(l.ZI,{children:g})]})}function Z(){let a=(0,L.z)(a=>a.wsStatus),b=(0,L.z)(a=>a.agentStatus),c=(0,L.z)(a=>a.agentName),e=(0,L.z)(a=>a.wsError),f=(0,L.z)(a=>a.detect),g=(0,L.z)(a=>a.connect),h="connected"===a?"bg-green-400":"connecting"===a||"reconnecting"===a?"bg-yellow-400":"bg-red-400",i="connected"===a?"thinking"===b?`${c??"Agent"} thinking…`:"active"===b?`${c??"Agent"} working…`:`${c??"Agent"} online`:"connecting"===a?`Connecting…${e?` — ${e}`:""}`:"reconnecting"===a?`Reconnecting…${e?` — ${e}`:""}`:`Disconnected${e?` — ${e}`:""}`;return(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px]",children:[(0,d.jsxs)("span",{className:"relative flex h-2 w-2",children:[("connecting"===a||"reconnecting"===a)&&(0,d.jsx)("span",{className:(0,j.cn)("absolute inline-flex h-full w-full animate-ping rounded-full opacity-75",h)}),(0,d.jsx)("span",{className:(0,j.cn)("relative inline-flex h-2 w-2 rounded-full",h)})]}),(0,d.jsx)("span",{className:"flex-1 text-[11px] text-muted-foreground",children:i}),"disconnected"===a&&(0,d.jsx)("button",{onClick:()=>{f().then(()=>g())},className:"text-[10px] text-blue-500 hover:text-blue-400 transition-colors",children:"Retry"})]})}function $(){let[a,b]=(0,e.useState)(()=>"desktop");return{breakpoint:a,isMobileSm:"mobile-sm"===a,isMobile:"mobile-sm"===a||"mobile"===a,isTablet:"tablet"===a,isDesktop:"desktop"===a}}function _({className:a,...b}){return(0,d.jsx)("span",{className:(0,j.cn)("absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0","[clip:rect(0,0,0,0)]",a),...b})}function aa(){let{sidebarOpen:a,sidebarWidth:b,toggleSidebar:c,setSidebarOpen:m,setSidebarWidth:n}=(0,K.M)(),{isMobile:p,isTablet:q}=$(),[t,u]=(0,e.useState)(b),[v,w]=(0,e.useState)(!1),x=(0,e.useRef)(null),y=(0,e.useRef)(0),z=(0,e.useRef)(240),A=(0,e.useRef)(240);(0,e.useCallback)(a=>Math.max(208,Math.min(a,240)),[]);let B=(0,e.useCallback)(b=>{p||q||!a||(b.preventDefault(),y.current=b.clientX,z.current=A.current,w(!0))},[p,q,a]),C=(0,e.useCallback)(()=>{m(!1)},[m]),D=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette"))},[]),E=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]);return p?null:q?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex h-full w-12 flex-col items-center border-r bg-sidebar py-3 gap-2 shrink-0",children:[(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:c,children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"Open sidebar (⌘\\)"})]}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:D,children:(0,d.jsx)(g.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"Search (⌘K)"})]}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:E,children:(0,d.jsx)(h.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"New Document (⌘N)"})]})]}),(0,d.jsx)(o,{open:a,onOpenChange:m,children:(0,d.jsxs)(r,{side:"left",className:"w-72 p-0",showCloseButton:!1,children:[(0,d.jsx)(_,{children:(0,d.jsx)(s,{children:"Navigation"})}),(0,d.jsx)(R,{onNavigate:C,isSheet:!0})]})})]}):a?(0,d.jsxs)("div",{ref:x,className:"relative flex h-full shrink-0 flex-col border-r bg-sidebar",style:{width:t,minWidth:208,maxWidth:"35vw"},children:[(0,d.jsxs)("div",{className:"flex h-12 shrink-0 items-center justify-between px-3",children:[(0,d.jsx)(Q,{}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-foreground",onClick:c,children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"Close sidebar (⌘\\)"})]})]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:(0,d.jsx)(R,{showHeader:!1})}),(0,d.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",onPointerDown:B,className:(0,j.cn)("absolute right-0 top-0 z-20 h-full w-2 cursor-col-resize","group"),children:(0,d.jsx)("div",{className:(0,j.cn)("absolute inset-y-0 right-0 w-px bg-border/70","transition-colors group-hover:bg-[color:var(--cp-brand-2)]",v&&"bg-[color:var(--cp-brand-2)]")})})]}):(0,d.jsxs)("div",{className:"flex h-full w-12 flex-col items-center border-r bg-sidebar py-3 gap-2 shrink-0",children:[(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:c,children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"Open sidebar (⌘\\)"})]}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:D,children:(0,d.jsx)(g.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"Search (⌘K)"})]}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:E,children:(0,d.jsx)(h.A,{className:"h-4 w-4"})})}),(0,d.jsx)(l.ZI,{side:"right",children:"New Document (⌘N)"})]})]})}var ab=c(31724),ac=c(50567),ad=c(13576),ae=c(15387),af=c(6079),ag=c(12625),ah=c(6394),ai=c(7309),aj=c(22341),ak=c(56884),al=c(56934),am=c(95801),an=c(26281),ao=c(8900);function ap({...a}){return(0,d.jsx)(n.Root,{"data-slot":"dialog",...a})}function aq({...a}){return(0,d.jsx)(n.Portal,{"data-slot":"dialog-portal",...a})}function ar({className:a,...b}){return(0,d.jsx)(n.Overlay,{"data-slot":"dialog-overlay",className:(0,j.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",a),...b})}function as({className:a,children:b,showCloseButton:c=!0,...e}){return(0,d.jsxs)(aq,{"data-slot":"dialog-portal",children:[(0,d.jsx)(ar,{}),(0,d.jsxs)(n.Content,{"data-slot":"dialog-content",className:(0,j.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",a),...e,children:[b,c&&(0,d.jsxs)(n.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,d.jsx)(m.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function at({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,j.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function au({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,j.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(n.Close,{asChild:!0,children:(0,d.jsx)(k.$,{variant:"outline",children:"Close"})})]})}function av({className:a,...b}){return(0,d.jsx)(n.Title,{"data-slot":"dialog-title",className:(0,j.cn)("text-lg leading-none font-semibold",a),...b})}function aw({className:a,...b}){return(0,d.jsx)(n.Description,{"data-slot":"dialog-description",className:(0,j.cn)("text-muted-foreground text-sm",a),...b})}function ax({className:a,...b}){return(0,d.jsx)(ao.uB,{"data-slot":"command",className:(0,j.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",a),...b})}function ay({title:a="Command Palette",description:b="Search for a command to run...",children:c,className:e,showCloseButton:f=!0,...g}){return(0,d.jsx)(ap,{...g,children:(0,d.jsxs)(as,{className:(0,j.cn)("overflow-hidden p-0",e),showCloseButton:f,children:[(0,d.jsxs)(at,{className:"sr-only",children:[(0,d.jsx)(av,{children:a}),(0,d.jsx)(aw,{children:b})]}),(0,d.jsx)(ax,{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:c})]})})}function az({className:a,...b}){return(0,d.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,d.jsx)(g.A,{className:"size-4 shrink-0 opacity-50"}),(0,d.jsx)(ao.uB.Input,{"data-slot":"command-input",className:(0,j.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",a),...b})]})}function aA({className:a,...b}){return(0,d.jsx)(ao.uB.List,{"data-slot":"command-list",className:(0,j.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",a),...b})}function aB({...a}){return(0,d.jsx)(ao.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...a})}function aC({className:a,...b}){return(0,d.jsx)(ao.uB.Group,{"data-slot":"command-group",className:(0,j.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",a),...b})}function aD({className:a,...b}){return(0,d.jsx)(ao.uB.Separator,{"data-slot":"command-separator",className:(0,j.cn)("bg-border -mx-1 h-px",a),...b})}function aE({className:a,...b}){return(0,d.jsx)(ao.uB.Item,{"data-slot":"command-item",className:(0,j.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",a),...b})}function aF({className:a,...b}){return(0,d.jsx)("span",{"data-slot":"command-shortcut",className:(0,j.cn)("text-muted-foreground ml-auto text-xs tracking-widest",a),...b})}function aG(){let[a,b]=(0,e.useState)(!1),[c,i]=(0,e.useState)(""),[j,k]=(0,e.useState)([]),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)(!1),p=(0,v.useRouter)(),{resolvedTheme:q,setTheme:r}=(0,J.D)(),{recentPages:s,spaces:t,toggleChatPanel:u,toggleSidebar:y,createPage:C}=(0,K.M)();(0,e.useRef)(null);let D=(0,e.useCallback)(a=>{p.push((0,P.C)(a)),b(!1),i("")},[p]),E=(0,e.useCallback)(async a=>{try{let b=await C(N.Sz,a);D(b)}catch{}},[C,D]),F=(0,e.useCallback)(()=>{b(!1),window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"space"}}))},[]),H=(0,e.useCallback)(()=>{b(!1),window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]),I=(0,e.useCallback)(a=>{b(a),a||(i(""),k([]))},[]),L=l.length>0?l:s.slice(0,8),M=c.trim().length>0,O=j.length>0;return(0,d.jsxs)(ay,{open:a,onOpenChange:I,children:[(0,d.jsx)(az,{placeholder:"Search pages or type a command…",value:c,onValueChange:i}),(0,d.jsxs)(aA,{children:[(0,d.jsx)(aB,{children:n?(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2",children:[(0,d.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-muted-foreground border-t-transparent"}),(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:"Searching…"})]}):M?"No results found.":null}),O&&(0,d.jsxs)(aC,{heading:"Pages",children:[j.map(a=>(0,d.jsxs)(aE,{value:`search-${a.path}`,onSelect:()=>D(a.path),className:"flex flex-col items-start gap-1 py-3",children:[(0,d.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsxs)("span",{className:"truncate font-medium",children:[a.icon&&`${a.icon} `,a.title]}),(0,d.jsx)(G.E,{variant:"secondary",className:"ml-auto shrink-0 text-[10px] px-1.5 py-0",children:a.space}),a.modified&&(0,d.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:function(a){try{let b=new Date(a),c=new Date().getTime()-b.getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);if(d<1)return"just now";if(d<60)return`${d}m ago`;if(e<24)return`${e}h ago`;if(f<7)return`${f}d ago`;return b.toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return""}}(a.modified)})]}),a.snippet&&(0,d.jsx)("p",{className:"ml-6 text-xs text-muted-foreground line-clamp-1 max-w-full",children:a.snippet.replace(/^---[\s\S]*?---\s*/m,"").replace(/^#+\s/gm,"").replace(/\n+/g," ").trim()})]},a.path)),(0,d.jsxs)(aE,{value:`view-all-search-${c}`,onSelect:()=>{p.push(`/workspace/search?q=${encodeURIComponent(c.trim())}`),b(!1),i("")},className:"justify-center text-muted-foreground",children:[(0,d.jsx)(g.A,{className:"mr-2 h-3.5 w-3.5"}),(0,d.jsx)("span",{className:"text-xs",children:"View all results"}),(0,d.jsx)(ab.A,{className:"ml-1 h-3 w-3"})]})]}),M&&!O&&!n&&(0,d.jsx)(aC,{heading:"Create",children:(0,d.jsxs)(aE,{value:`create-${c}`,onSelect:()=>E(c.trim()),children:[(0,d.jsx)(ac.A,{className:"mr-2 h-4 w-4 text-primary"}),(0,d.jsxs)("span",{children:["Create document: ",(0,d.jsx)("strong",{children:c.trim()})]})]})}),!M&&L.length>0&&(0,d.jsx)(aC,{heading:"Recent Pages",children:L.map(a=>(0,d.jsxs)(aE,{value:`recent-${a.path}`,onSelect:()=>D(a.path),children:[(0,d.jsx)(ad.A,{className:"mr-2 h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsxs)("div",{className:"flex flex-1 items-center gap-2 overflow-hidden",children:[a.icon&&(0,d.jsx)("span",{className:"shrink-0 text-sm",children:a.icon}),(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)(G.E,{variant:"secondary",className:"ml-auto shrink-0 text-[10px] px-1.5 py-0",children:a.space===N.Sz?N.ke:a.space})]})]},a.path))}),(0,d.jsx)(aD,{}),(0,d.jsxs)(aC,{heading:"Create",children:[(0,d.jsxs)(aE,{value:"new-document",onSelect:H,children:[(0,d.jsx)(h.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"New Document"}),(0,d.jsx)(aF,{children:"⌘N"})]}),(0,d.jsxs)(aE,{value:"new-space",onSelect:F,children:[(0,d.jsx)(w.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"New Space"})]}),(0,d.jsxs)(aE,{value:"new-daily-note",onSelect:()=>{b(!1),E(new Date().toISOString().slice(0,10))},children:[(0,d.jsx)(ae.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"New Daily Note"})]})]}),(0,d.jsxs)(aC,{heading:"AI",children:[(0,d.jsxs)(aE,{value:"ask-agent",onSelect:()=>{let a=K.M.getState();a.chatPanelOpen||a.toggleChatPanel(),b(!1)},children:[(0,d.jsx)(af.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Ask Agent"}),(0,d.jsx)(aF,{children:"⌘⇧L"})]}),(0,d.jsxs)(aE,{value:"summarize-page",onSelect:()=>{let a=K.M.getState();a.chatPanelOpen||a.toggleChatPanel(),b(!1),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{action:"summarize"}}))},children:[(0,d.jsx)(z.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Summarize Page"})]}),(0,d.jsxs)(aE,{value:"improve-writing",onSelect:()=>{let a=K.M.getState();a.chatPanelOpen||a.toggleChatPanel(),b(!1),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{action:"improve"}}))},children:[(0,d.jsx)(ag.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Improve Writing"})]})]}),(0,d.jsxs)(aC,{heading:"Navigation",children:[(0,d.jsxs)(aE,{value:"search-workspace",onSelect:()=>{let a=c.trim();p.push(a?`/workspace/search?q=${encodeURIComponent(a)}`:"/workspace/search"),b(!1),i("")},children:[(0,d.jsx)(g.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Search Workspace"})]}),(0,d.jsxs)(aE,{value:"go-to-settings",onSelect:()=>{p.push("/settings"),b(!1)},children:[(0,d.jsx)(x.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Go to Settings"})]}),(0,d.jsxs)(aE,{value:"go-to-setup",onSelect:()=>{p.push("/setup"),b(!1)},children:[(0,d.jsx)(ah.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Go to Setup"})]}),t.map(a=>(0,d.jsxs)(aE,{value:`space-${a.path}`,onSelect:()=>{K.M.getState().toggleSpace(a.path),b(!1)},children:[(0,d.jsx)(ai.A,{className:"mr-2 h-4 w-4 text-muted-foreground"}),(0,d.jsxs)("span",{children:[a.icon&&`${a.icon} `,a.name]})]},a.path))]}),(0,d.jsxs)(aC,{heading:"Actions",children:[(0,d.jsxs)(aE,{value:"toggle-chat",onSelect:()=>{u(),b(!1)},children:[(0,d.jsx)(aj.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Toggle Chat"}),(0,d.jsx)(aF,{children:"⌘⇧L"})]}),(0,d.jsxs)(aE,{value:"toggle-sidebar",onSelect:()=>{y(),b(!1)},children:[(0,d.jsx)(f.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Toggle Sidebar"}),(0,d.jsx)(aF,{children:"⌘\\"})]}),(0,d.jsxs)(aE,{value:"toggle-dark-mode",onSelect:()=>{r("dark"===q?"light":"dark"),b(!1)},children:["dark"===q?(0,d.jsx)(A.A,{className:"mr-2 h-4 w-4"}):(0,d.jsx)(B.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Toggle Dark Mode"}),(0,d.jsx)(aF,{children:"⌘⇧D"})]}),(0,d.jsxs)(aE,{value:"theme-light",onSelect:()=>{r("light"),b(!1)},children:[(0,d.jsx)(A.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Theme: Light"})]}),(0,d.jsxs)(aE,{value:"theme-dark",onSelect:()=>{r("dark"),b(!1)},children:[(0,d.jsx)(B.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Theme: Dark"})]}),(0,d.jsxs)(aE,{value:"theme-system",onSelect:()=>{r("system"),b(!1)},children:[(0,d.jsx)(ak.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Theme: System"})]}),(0,d.jsxs)(aE,{value:"focus-editor",onSelect:()=>{let a=document.querySelector(".clawpad-editor [contenteditable]")??document.querySelector(".clawpad-editor");a?.focus(),b(!1)},children:[(0,d.jsx)(al.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Focus Editor"}),(0,d.jsx)(aF,{children:"⌘⇧E"})]}),(0,d.jsxs)(aE,{value:"force-save",onSelect:()=>{window.dispatchEvent(new CustomEvent("clawpad:force-save")),b(!1)},children:[(0,d.jsx)(am.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Save"}),(0,d.jsx)(aF,{children:"⌘S"})]}),(0,d.jsxs)(aE,{value:"keyboard-shortcuts",onSelect:()=>{window.dispatchEvent(new CustomEvent("clawpad:shortcuts-dialog")),b(!1)},children:[(0,d.jsx)(an.A,{className:"mr-2 h-4 w-4"}),(0,d.jsx)("span",{children:"Keyboard Shortcuts"}),(0,d.jsx)(aF,{children:"⌘/"})]})]})]})]})}var aH=c(88877),aI=c(90707);let aJ="clawpad-create-location-suggestions";function aK(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)("document"),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(""),[l,m]=(0,e.useState)(!1),n=(0,v.useRouter)(),{spaces:o,createPage:p,createSpace:q}=(0,K.M)(),r=(0,e.useMemo)(()=>new Set(o.map(a=>a.path)),[o]),s=()=>{f("document"),h(""),j(""),m(!1)},t=(0,e.useCallback)(async()=>{let a=g.trim();if(a){m(!0);try{if("space"===c){await q(a),b(!1),s(),aI.oR.success("Space created"),n.push("/workspace");return}let d=function(a,b){let c=a.trim();if(!c)return null;let d=c.replace(/^\/+|\/+$/g,"");if(!d)return null;if(d===N.Sz||"root"===d.toLowerCase()||d.toLowerCase()===N.ke.toLowerCase())return{space:N.Sz};let e=d.split("/").filter(Boolean);if(0===e.length)return null;let[f,...g]=e;return b.has(f)?{space:f,folderPath:g.length>0?g.join("/"):void 0}:null}(i,r);if(!d)throw Error("Choose a valid location (space or space/folder path).");let e=await p(d.space,a,{folderPath:d.folderPath});b(!1),s(),n.push((0,P.C)(e)),aI.oR.success("Document created")}catch(b){let a=b instanceof Error?b.message:"space"===c?"Failed to create space.":"Failed to create document.";aI.oR.error(a)}finally{m(!1)}}},[p,q,r,i,c,n,g]),u=(0,e.useCallback)(a=>{"Enter"!==a.key||l||(a.preventDefault(),t())},[l,t]);return(0,d.jsx)(ap,{open:a,onOpenChange:a=>{b(a),a||s()},children:(0,d.jsxs)(as,{className:"sm:max-w-[440px]",children:[(0,d.jsxs)(at,{children:[(0,d.jsx)(av,{children:"space"===c?"New Space":"New Document"}),(0,d.jsx)(aw,{children:"space"===c?"Create a top-level space in your workspace.":"Create a document in a space or nested folder path."})]}),(0,d.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-2 rounded-lg border bg-muted/30 p-1",children:[(0,d.jsx)("button",{type:"button",onClick:()=>f("document"),className:`rounded-md px-2 py-1.5 text-xs ${"document"===c?"bg-background font-medium shadow-sm":"text-muted-foreground"}`,children:"Document"}),(0,d.jsx)("button",{type:"button",onClick:()=>f("space"),className:`rounded-md px-2 py-1.5 text-xs ${"space"===c?"bg-background font-medium shadow-sm":"text-muted-foreground"}`,children:"Space"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("label",{htmlFor:"create-title",className:"text-sm font-medium leading-none",children:"space"===c?"Space Name":"Document Name"}),(0,d.jsx)(aH.p,{id:"create-title",placeholder:"space"===c?"e.g. client-work":"Document title…",value:g,onChange:a=>h(a.target.value),onKeyDown:u,autoFocus:!0})]}),"document"===c&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("label",{htmlFor:"create-location",className:"text-sm font-medium leading-none",children:"Location"}),(0,d.jsx)(aH.p,{id:"create-location",list:aJ,placeholder:"space or space/folder/path",value:i,onChange:a=>j(a.target.value),onKeyDown:u}),(0,d.jsx)("datalist",{id:aJ,children:o.map(a=>(0,d.jsx)("option",{value:a.path,children:a.name},a.path))}),(0,d.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Example: ",(0,d.jsx)("code",{children:"projects/q1/roadmap"})]})]})]}),(0,d.jsxs)(au,{children:[(0,d.jsx)(k.$,{variant:"outline",onClick:()=>b(!1),children:"Cancel"}),(0,d.jsx)(k.$,{onClick:()=>void t(),disabled:!g.trim()||l,children:l?"Creating…":"space"===c?"Create Space":"Create Document"})]})]})})}var aL=c(3725),aM=c(98165),aN=c(96845),aO=c(41479),aP=c(61075),aQ=c(72898),aR=c(40560),aS=c(8455),aT=c(96348),aU=c(20535),aV=c(76592),aW=c(45817),aX=c(52890),aY=c(44218),aZ=c(42742),a$=c(19535),a_=c(30270),a0=c(41023),a1=c(33407),a2=c(7045),a3=c(90028),a4=c(36041),a5=c(66336),a6=c(145),a7=c(78847),a8=c(77405),a9=c(36815),ba=c(85258),bb=c(95997),bc=c(35884),bd=c(80405),be=c(13482),bf=c(34351);let bg=/<\s*\/?\s*(?:think(?:ing)?|thought|antthinking|final)\b/i,bh=/<\s*\/?\s*final\b[^<>]*>/gi,bi=/<\s*(\/?)\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;function bj(a){let b=[];for(let c of a.matchAll(/(^|\n)(```|~~~)[^\n]*\n[\s\S]*?(?:\n\2(?:\n|$)|$)/g)){let a=(c.index??0)+c[1].length;b.push({start:a,end:a+c[0].length-c[1].length})}for(let c of a.matchAll(/`+[^`]+`+/g)){let a=c.index??0,d=a+c[0].length;b.some(b=>a>=b.start&&d<=b.end)||b.push({start:a,end:d})}return b.sort((a,b)=>a.start-b.start),b}function bk(a,b){return b.some(b=>a>=b.start&&a<b.end)}var bl=c(72419);function bm({status:a}){let b=(0,v.useRouter)(),c=(0,bf.W)(a=>a.activeRun),f=(0,bf.W)(a=>a.activeFiles),g=(0,bf.W)(a=>a.lastFileTouchAt),h=(0,bf.W)(a=>a.changeSets),i=(0,bf.W)(a=>a.openReview),k=(0,bf.W)(a=>a.closeReview),l=(0,L.z)(a=>a.agentStatus),m=h.find(a=>"completed"===a.status),[n,o]=(0,e.useState)(!1),p=f.size,q=!!m,r=a?"status":c&&p>0&&"number"==typeof g&&"idle"!==l?"editing":q?"summary":null,s="editing"===r?p:m?.totals.filesChanged??0,t=m?.totals.additions??0,u=m?.totals.deletions??0,w=0===s?"files":1===s?"1 file":`${s} files`,x="summary"===r&&!!m,y=x&&n;if(!r)return null;let z=a?.kind==="alert",A=a?.tone==="error",B=a?(0,j.cn)("flex w-full items-center gap-2 rounded-lg border px-3 py-1.5 text-xs transition-colors","thinking"===a.kind&&"border-[color:var(--cp-brand-border)] bg-[color:var(--cp-status-thinking-bg)] text-[color:var(--cp-status-thinking-text)]","writing"===a.kind&&"border-[color:var(--cp-brand-border)] bg-[color:var(--cp-status-thinking-bg)] text-[color:var(--cp-status-thinking-text)]","background"===a.kind&&"border-border/60 bg-[color:var(--cp-status-neutral-bg)] text-[color:var(--cp-status-neutral-text)]",z&&(A?"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)]")):"",C=a?(0,j.cn)("inline-flex h-2 w-2 rounded-full",("thinking"===a.kind||"background"===a.kind||"writing"===a.kind)&&"animate-pulse",("thinking"===a.kind||"writing"===a.kind)&&"bg-[color:var(--cp-status-thinking-text)]","background"===a.kind&&"bg-[color:var(--cp-status-neutral-text)]",z&&(A?"bg-[color:var(--cp-status-error-text)]":"bg-[color:var(--cp-status-alert-text)]")):"";return(0,d.jsxs)("div",{className:"mb-2",children:["status"===r&&a&&(0,d.jsxs)("div",{className:B,role:"status","aria-live":"polite",children:[(0,d.jsx)("span",{className:C}),(0,d.jsx)("span",{className:"text-[11px] font-medium",children:a.label}),a.detail&&(0,d.jsx)("span",{className:"max-w-[240px] truncate text-[10px] text-foreground/70",children:a.detail})]}),("editing"===r||"summary"===r)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{x&&o(a=>!a)},className:(0,j.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",x&&"cursor-pointer hover:bg-muted/60"),children:[(0,d.jsx)("span",{className:"inline-flex h-2 w-2 rounded-full bg-[color:var(--cp-brand-2)] animate-pulse"}),(0,d.jsx)("span",{className:"flex-1 text-left",children:"editing"===r?(0,d.jsxs)(d.Fragment,{children:["Editing ",w,"…"]}):(0,d.jsxs)(d.Fragment,{children:[w," changed"," ",(0,d.jsxs)("span",{className:"text-emerald-600",children:["+",t]})," ",(0,d.jsxs)("span",{className:"text-rose-500",children:["-",u]})]})}),x&&(0,d.jsx)("span",{className:"text-muted-foreground/70",children:n?(0,d.jsx)(bl.A,{className:"h-3.5 w-3.5"}):(0,d.jsx)(aY.A,{className:"h-3.5 w-3.5"})})]}),y&&m&&(0,d.jsx)("div",{className:"rounded-b-lg border border-t-0 border-border/60 bg-background/95",children:(0,d.jsx)("div",{className:"divide-y divide-border/70",children:m.files.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 text-xs",children:[(0,d.jsx)("button",{type:"button",onClick:()=>{var c;return c=a.path,void(m&&(i(m.id,c),b.push((0,P.C)(c))))},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,d.jsx)("button",{type:"button",onClick:()=>{var c;return c=a.path,void(k(),b.push((0,P.C)(c)))},className:"flex-1 truncate text-left text-foreground/80 hover:text-foreground",children:a.path}),(0,d.jsxs)("span",{className:"shrink-0 font-mono text-[11px]",children:[(0,d.jsxs)("span",{className:"text-emerald-600",children:["+",a.additions]})," ",(0,d.jsxs)("span",{className:"text-rose-500",children:["-",a.deletions]})]})]},a.path))})})]})]})}let bn={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"}},bo=(0,e.memo)(function({channel:a,sessionKey:b,className:c}){let e=a?a.toLowerCase():b?(b.split(":")[2]??"unknown").toLowerCase():"unknown",f=bn[e];return f&&"webchat"!==e&&"clawpad"!==e?(0,d.jsxs)("span",{className:(0,j.cn)("inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-[10px] font-medium leading-none",f.color,c),children:[(0,d.jsx)("span",{className:"text-[10px]",children:f.icon}),f.label]}):null}),bp=["image/png","image/jpeg","image/gif","image/webp"];async function bq(a){return new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(d.result),d.onerror=c,d.readAsDataURL(a)})}async function br(a){let b=[];for(let c of a){if(!bp.includes(c.type))continue;if(c.size>5242880){console.warn(`[chat] Skipping ${c.name}: exceeds 5 MB`);continue}let a=await bq(c);b.push({id:crypto.randomUUID(),dataUrl:a,name:c.name})}return b}let bs=/^\[([^\]]+)\]\s*/,bt=["WebChat","WhatsApp","Telegram","Signal","Slack","Discord","Google Chat","iMessage","Teams","Matrix","Zalo","Zalo Personal","BlueBubbles"],bu=/^\s*\[message_id:\s*[^\]]+\]\s*$/i,bv=/^\s*\[message_id:\s*([^\]]+)\]\s*$/i;function bw(a){var b;let c=a.match(bs);return c?(b=c[1]??"",/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}Z\b/.test(b)||/\d{4}-\d{2}-\d{2} \d{2}:\d{2}\b/.test(b)||bt.some(a=>b.startsWith(`${a} `)))?by(a.slice(c[0].length)):by(a):by(a)}function bx(a){return String(a.preview??a.reason??a.status??"Heartbeat").trim()}function by(a){if(!a.includes("[message_id:"))return a;let b=a.split(/\r?\n/),c=b.filter(a=>!bu.test(a));return c.length===b.length?a:c.join("\n")}function bz(a){return function(a,b){var c;if(!a||!bg.test(a))return a;let d=b?.mode??"strict",e=b?.trim??"both",f=a;if(bh.test(f)){bh.lastIndex=0;let a=[],b=bj(f);for(let c of f.matchAll(bh)){let d=c.index??0;a.push({start:d,length:c[0].length,inCode:bk(d,b)})}for(let b=a.length-1;b>=0;b-=1){let c=a[b];c.inCode||(f=f.slice(0,c.start)+f.slice(c.start+c.length))}}else bh.lastIndex=0;let g=bj(f);bi.lastIndex=0;let h="",i=0,j=!1;for(let a of f.matchAll(bi)){let b=a.index??0,c="/"===a[1];bk(b,g)||(j?c&&(j=!1):(h+=f.slice(i,b),c||(j=!0)),i=b+a[0].length)}return j&&"preserve"!==d||(h+=f.slice(i)),c=h,"none"===e?c:"start"===e?c.trimStart():c.trim()}(a,{mode:"preserve",trim:"start"})}function bA(a){return a.replace(/^\s*\[Context\][\s\S]*?\[\/Context\]\s*/i,"")}function bB(a){return String(a??"").replace(/\s+/g," ").trim()}function bC(a){let b=a.role??"",c=a.content;if("string"==typeof c){let a="assistant"===b?bz(c):bw(c);return"user"===b||"User"===b?bA(a):a}if(Array.isArray(c)){let a=c.filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text);if(a.length>0){let c=a.join("\n"),d="assistant"===b?bz(c):bw(c);return"user"===b||"User"===b?bA(d):d}}if("string"==typeof a.text){let c=a.text,d="assistant"===b?bz(c):bw(c);return"user"===b||"User"===b?bA(d):d}return null}function bD(a){let b=a.role??"",c=a.content;if("string"==typeof c)return"user"===b||"User"===b?bA(c):c;if(Array.isArray(c)){let a=c.filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text);if(a.length>0){let c=a.join("\n");return"user"===b||"User"===b?bA(c):c}}if("string"==typeof a.text){let c=a.text;return"user"===b||"User"===b?bA(c):c}return null}function bE(a){var b;let c;if(null==a)return;if("number"==typeof a||"boolean"==typeof a)return String(a);if("string"==typeof a)c=a;else if("object"==typeof a)if("string"==typeof a.text)c=a.text;else if(Array.isArray(a.content)){let b=a.content.map(a=>a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text?a.text:null).filter(a=>!!a);c=b.length>0?b.join("\n"):""}else try{c=JSON.stringify(a,null,2)}catch{c=String(a)}else c=String(a);if(!c)return;let d=(b=bF(c)??c).length<=12e4?{text:b,truncated:!1,total:b.length}:{text:b.slice(0,12e4),truncated:!0,total:b.length};return d.truncated?`${d.text}
|
|
2
2
|
|
|
3
|
-
… truncated (${d.total} chars, showing first ${d.text.length}).`:d.text}function bF(a){let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return null;try{return JSON.stringify(JSON.parse(b),null,2)}catch{return null}}function bG(a){var b;let c,d,e=a.role??"unknown";(function(a){let b=(a.role??"").toLowerCase();if("toolresult"===b||"tool_result"===b||a.toolCallId||a.tool_call_id||a.toolName||a.tool_name)return!0;let c=Array.isArray(a.content)?a.content:null;return!!c?.some(a=>{let b=(a.type??"").toLowerCase();return"toolresult"===b||"tool_result"===b})})(a)&&(e="toolResult");let f=[];"string"==typeof a.content?f=[{type:"text",text:a.content}]:Array.isArray(a.content)?f=a.content.map(a=>({...a,type:a.type||"text",text:a.text})):"string"==typeof a.text&&(f=[{type:"text",text:a.text}]);let g=bD(a),h=!!g&&function(a,b){let c=a.trim();if(!c)return!1;if(/^HEARTBEAT_OK\b/i.test(c)||/^HEARTBEAT\b/i.test(c))return!0;let d=/^System:/i.test(c),e=/\[NETWORK\]/i.test(c),f=/\bRead HEARTBEAT\.md\b/i.test(c);return!!d&&(!!e||!!f)||"system"===(b??"").toLowerCase()}(g,e),i=h?"system":(c=((b=e)??"").toLowerCase(),"user"===b||"User"===b?"user":"assistant"===b?"assistant":"system"===b?"system":"toolresult"===c||"tool_result"===c||"tool"===c||"function"===c?"tool":"assistant");return"user"===i&&(d=!1,f=f.map(a=>{if(!d&&"text"===a.type&&"string"==typeof a.text){let b=bA(a.text);return(b!==a.text&&(d=!0),b.trim())?{...a,text:b}:null}return a}).filter(Boolean)),{role:i,content:f,timestamp:a.timestamp??Date.now(),id:a.id,channel:a.channel,sessionKey:a.sessionKey,raw:a,displayText:bC(a),toolCards:function(a){let b=[],c=Array.isArray(a.content)?a.content:[];for(let a of c)(["toolcall","tool_call","tooluse","tool_use"].includes((a.type??"").toLowerCase())||"string"==typeof a.name&&null!=a.arguments)&&b.push({kind:"call",name:a.name??"tool",args:function(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return a;try{return JSON.parse(b)}catch{return a}}(a.arguments??a.args??a.input)});for(let a of c){let c=(a.type??"").toLowerCase();if("toolresult"!==c&&"tool_result"!==c)continue;let d=a.text??a.content??void 0,e=a.name??"tool";b.push({kind:"result",name:e,text:d})}if(("toolresult"===(a.role??"").toLowerCase()||"tool_result"===(a.role??"").toLowerCase()||a.toolCallId||a.tool_call_id||a.toolName||a.tool_name)&&!b.some(a=>"result"===a.kind)){let c=a.toolName??a.tool_name??"tool",d=bC(a)??void 0;b.push({kind:"result",name:c,text:d})}return b}(a),internal:h}}let bH=[1200,3500,7500];function bI(){return new aM.rL({api:"/api/chat"})}let bJ=bI(),bK=new aL.ry({transport:bJ});function bL({variant:a="default"}){let{chatPanelOpen:b,setChatPanelOpen:c,activePage:f}=(0,K.M)(),g=(0,L.z)(a=>a.connected),i=(0,L.z)(a=>a.wsStatus),l=(0,L.z)(a=>a.reason),n=(0,L.z)(a=>a.wsError),o=(0,L.z)(a=>a.error),p=(0,L.z)(a=>a.agentStatus);(0,bf.W)(a=>a.setSessionKey),(0,bf.W)(a=>a.loadChangeSets);let[q,r]=(0,e.useState)("main"),s=(0,e.useRef)("main"),t=(0,e.useRef)(!1),[u,v]=(0,e.useState)(600),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(0),A=(0,e.useRef)(600),B="default"===a;(0,e.useCallback)(a=>Math.max(400,Math.min(a,600)),[]);let C=(0,e.useRef)(0),{history:D,loading:E,loadingMore:F,hasMore:G,loadMore:H,refetchHistory:I}=function(a,b,c){let[d,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(300),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(!1);(0,e.useRef)(null),(0,e.useRef)(0);let m=(0,e.useRef)(0),n=(0,e.useRef)(0),o=(0,e.useCallback)(async a=>{let b=c||"main",d=m.current+1;m.current=d;let e=a?.silent===!0;e||(n.current+=1,j(!0));try{let c=await fetch(`/api/gateway/history?limit=1000&sessionKey=${encodeURIComponent(b)}`,{cache:"no-store"}),e=c.ok?await c.json():{messages:[]};if(d!==m.current)return;let g=Array.isArray(e?.messages)?e.messages:[],h=a?.preserveExistingOnEmpty!==!1;f(a=>h&&0===g.length&&a.length>0?a:g)}catch{}finally{e||(n.current=Math.max(0,n.current-1),0===n.current&&j(!1))}},[c]),p=(0,e.useCallback)(a=>!a?.force&&Date.now()-b.current<5e3?Promise.resolve():o({silent:!0}),[o,b]),q=(0,e.useMemo)(()=>d.length<=g?d:d.slice(d.length-g),[d,g]),r=d.length>g,s=(0,e.useCallback)(()=>{l(!0),setTimeout(()=>{h(a=>Math.min(a+100,d.length)),l(!1)},100)},[d.length]);return{history:q,allMessages:d,loading:i,loadingMore:k,hasMore:r,loadMore:s,refetchHistory:p}}(0,C,q),[J,M]=(0,e.useState)(bK),{messages:N,sendMessage:O,addToolApprovalResponse:P,status:Q,stop:R,error:S}=(0,aL.Y_)({chat:J}),T=(0,e.useRef)(null),U=(0,e.useRef)(null),V=(0,e.useRef)(null),W=(0,e.useRef)(null),X=(0,e.useRef)(null),Y=(0,e.useRef)(null),Z=(0,e.useRef)(null),$="streaming"===Q||"submitted"===Q;(0,e.useRef)(null);let[_,aa]=(0,e.useState)(null),[ab,ac]=(0,e.useState)(!0),[ae,ag]=(0,e.useState)([]),[ah,ai]=(0,e.useState)(!1),[aj,ak]=(0,e.useState)(""),[al,am]=(0,e.useState)([]),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)(0),[ar,as]=(0,e.useState)([]),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(""),[ax,ay]=(0,e.useState)([]),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)(0),aD="connected"!==i,[aE,aF]=(0,e.useState)(!1),aG=aE&&!1,aH=(0,be.b)(a=>a.events),aI=(0,be.b)(a=>a.lastEvent),aJ=(0,bd.e)(a=>a.items),[aK,aM]=(0,e.useState)(null);(0,e.useRef)(null),(0,e.useRef)(0),(0,e.useRef)(0);let[aX,aY]=(0,e.useState)(()=>Date.now()),aZ=(0,e.useMemo)(()=>{let a=[...N].reverse().find(a=>"assistant"===a.role);return!!a&&bX(a.parts??[]).filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n").trim().trim().length>0},[N]),a$=(0,e.useMemo)(()=>{let a=aJ.find(a=>"tool-used"===a.type||"sub-agent"===a.type);return a?.timestamp??null},[aJ]);(0,e.useMemo)(()=>{if("reconnecting"===i)return{kind:"background",label:"Reconnecting...",detail:n||"Trying to restore the gateway stream"};if("connecting"===i)return{kind:"background",label:"Connecting...",detail:n||"Connecting to the gateway"};if("disconnected"===i)return{kind:"alert",label:"server_unreachable"===l?"ClawPad server unreachable":"Gateway unavailable",detail:n||o||("server_unreachable"===l?"ClawPad is not reachable from this browser.":"OpenClaw gateway is not reachable."),tone:"warn"};let a=aI&&("alert"===aI.indicatorType||"error"===aI.indicatorType)&&!aI.silent?aI:null;if(a){let b=bx(a);return{kind:"alert",label:"error"===a.indicatorType?"Background error":"Background alert",detail:b||void 0,tone:"error"===a.indicatorType?"error":"warn"}}return"submitted"===Q?{kind:"thinking",label:"Thinking..."}:"streaming"===Q?aZ?{kind:"writing",label:"Writing response..."}:{kind:"thinking",label:"Thinking..."}:"thinking"===p?{kind:"thinking",label:"Thinking..."}:"active"===p&&"number"==typeof a$&&aX-a$<=15e3?{kind:"background",label:"Working on a background task..."}:null},[p,o,l,aZ,aI,a$,Q,aX,n,i]);let a_=(0,e.useCallback)(()=>{let a={};ab&&_&&(a.activePage=_);let b=ae.filter(b=>!a.activePage||b.path!==a.activePage.path);return b.length>0?(a.attachedPages=b,a.scope="custom"):a.activePage&&(a.scope="current"),Object.keys(a).length>0?a:null},[_,ae,ab]),a0=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=b.slice(0,c),e=d.lastIndexOf("@");if(-1===e){ai(!1),ak(""),W.current=null;return}let f=d[e-1],g=!f||/[\s([{]/.test(f),h=d.slice(e+1);if(!g||/\s/.test(h)){ai(!1),ak(""),W.current=null;return}W.current={start:e,end:c},ak(h),ai(!0),au(!1),aw(""),Y.current=null},[]),a1=(0,e.useCallback)(async()=>{if(!az&&!(ax.length>0)){aA(!0);try{let a=await fetch("/api/openclaw/commands"),b=a.ok?await a.json():null,c=Array.isArray(b?.commands)?b.commands.filter(a=>!!(a&&"string"==typeof a.name)).map(a=>({name:a.name,description:a.description??"",disabled:a.disabled})):[];ay(c),aC(0)}catch{ay([])}finally{aA(!1)}}},[ax.length,az]),a2=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=b.slice(0,c),e=d.lastIndexOf("/");if(-1===e){au(!1),aw(""),Y.current=null;return}let f=d[e-1],g=!f||/[\s([{]/.test(f),h=d.slice(e+1);if(!g||/\s/.test(h)){au(!1),aw(""),Y.current=null;return}Y.current={start:e,end:c},aw(h),au(!0),ai(!1),ak(""),W.current=null,a1()},[a1]),a3=(0,e.useCallback)(a=>{let b=U.current,c=Y.current;if(!b||!c)return;let d=b.value,e=d.slice(0,c.start),f=d.slice(c.end),g=`/${a}`,h=f.startsWith(" ")?"":" ",i=`${e}${g}${h}${f}`,j=e.length+g.length+h.length;b.value=i,b.setSelectionRange(j,j),b.focus(),au(!1),aw(""),Y.current=null,requestAnimationFrame(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`)})},[]),a4=(0,e.useCallback)(a=>{let b=U.current,c=W.current;if(!b||!c)return;let d=b.value,e=d.slice(0,c.start),f=d.slice(c.end),g=`@${a.title}`,h=f.startsWith(" ")?"":" ",i=`${e}${g}${h}${f}`,j=e.length+g.length+h.length;b.value=i,b.setSelectionRange(j,j),b.focus(),ag(b=>b.some(b=>b.path===a.path)?b:[...b,a]),ai(!1),ak(""),W.current=null,requestAnimationFrame(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`)})},[]),a5=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=a.selectionEnd??c;a.value=`${b.slice(0,c)}@${b.slice(d)}`;let e=c+1;a.setSelectionRange(e,e),a.focus(),a0()},[a0]),[a6,a7]=(0,e.useState)([]),a8=(0,e.useRef)(null),a9=(0,e.useRef)([]);(0,e.useRef)(null);let bc=(0,e.useRef)(null),bg=(0,e.useRef)(""),bh=(0,e.useRef)(new Map),bi=(0,e.useRef)([]),bj=(0,e.useRef)(null),bk=(0,e.useRef)(null),[bl,bn]=(0,e.useState)([]),bo=(0,e.useCallback)(()=>{bn(bi.current.map(a=>bh.current.get(a)).filter(a=>!!a))},[]),bq=(0,e.useCallback)((a=!1)=>{if(a){bj.current&&(clearTimeout(bj.current),bj.current=null),bo();return}bj.current||(bj.current=setTimeout(()=>{bj.current=null,bo()},80))},[bo]),bs=(0,e.useCallback)(()=>{bh.current.clear(),bi.current=[],bk.current=null,bj.current&&(clearTimeout(bj.current),bj.current=null),bn([])},[]),bt=(0,e.useRef)(!0);(0,e.useRef)(0);let[bu,bw]=(0,e.useState)(0),by=(0,e.useCallback)((a="smooth")=>{let b=T.current;if(!b)return;let c=b.scrollHeight-b.clientHeight;b.scrollTo({top:c>0?c:0,behavior:a})},[]),bz=(0,e.useCallback)(()=>{let a=T.current;!a||(bt.current=a.scrollHeight-a.scrollTop-a.clientHeight<100,bt.current&&bw(0))},[]);(0,e.useCallback)(a=>{if("tool"!==a.stream)return;let b="string"==typeof a.sessionKey?a.sessionKey:void 0,c=s.current||"main";if(t.current&&b&&b!==c)return;let d="string"==typeof a.runId?a.runId:"unknown",e=a.data??{},f="string"==typeof e.toolCallId?e.toolCallId:"";if(!f)return;let g="string"==typeof e.name?e.name:"tool",h="string"==typeof e.phase?e.phase:"unknown",i="start"===h||"update"===h||"result"===h||"error"===h?h:"unknown",j="start"===i?e.args:void 0,k="update"===i?bE(e.partialResult):"result"===i?bE(e.result):"error"===i?bE(e.error??e.result):void 0,l=Date.now();bk.current&&bk.current!==d&&"start"===i&&bs(),bk.current=d;let m=bh.current.get(f);if(m?(m.name=g,m.phase=i,void 0!==j&&(m.args=j),void 0!==k&&(m.output=k),m.updatedAt=l):(m={toolCallId:f,runId:d,sessionKey:b,name:g,args:j,output:k,phase:i,startedAt:"number"==typeof a.ts?a.ts:l,updatedAt:l},bh.current.set(f,m),bi.current.push(f)),bi.current.length>50){let a=bi.current.length-50;for(let b of bi.current.splice(0,a))bh.current.delete(b)}bq("result"===i||"error"===i)},[bs,bq]);let bA=(0,e.useMemo)(()=>{let a=[];for(let b of D){let c=bG(b);if(!c.internal)continue;let d=(c.displayText?.trim()??"").replace(/^System:\s*/i,"").trim();if(!d)continue;let{kind:e,tone:f}=function(a){let b=a.toLowerCase(),c=b.startsWith("heartbeat")||b.includes("heartbeat_ok")||b.includes("heartbeat"),d=/error|failed|denied|blocked|timeout|unavailable/i.test(b),e=/\[network\]|warning|alert/i.test(b);return d?{kind:"alert",tone:"error"}:e?{kind:"alert",tone:"warn"}:c?{kind:"heartbeat"}:{kind:"system"}}(d);a.push({id:`sys-${c.timestamp}-${a.length}`,kind:e,tone:f,text:d,timestamp:c.timestamp,source:"system"})}return a},[D]),bC=(0,e.useMemo)(()=>{let a=[];return aH.forEach((b,c)=>{let d=bx(b);if(!d)return;let e="alert"===b.indicatorType||"error"===b.indicatorType;a.push({id:`hb-${b.ts}-${c}`,kind:e?"alert":"heartbeat",tone:"error"===b.indicatorType?"error":e?"warn":void 0,text:d,timestamp:b.ts,source:"heartbeat"})}),a},[aH]),bF=(0,e.useMemo)(()=>{let a=[...bA,...bC].sort((a,b)=>b.timestamp-a.timestamp),b=new Set,c=[];for(let d of a){let a=`${d.source}-${d.timestamp}-${d.text}`;b.has(a)||(b.add(a),c.push(d))}return c},[bA,bC]),bJ=(0,e.useMemo)(()=>{var a=function(a,b,c,d,e,f){let g=[],h=new Map;for(let c=0;c<a.length;c+=1){let d=a[c];h.set(d,c);let e=bG(d);!e.internal&&(b||"tool"!==e.role)&&g.push({kind:"message",normalized:e})}for(let b of c){let c=bB(b.text);g.some(d=>{var e;if("message"!==d.kind)return!1;let f=d.normalized;if(f.role!==b.role)return!1;let g=bD(f.raw),i=g?function(a){if(!a.includes("[message_id:"))return null;for(let b of a.split(/\r?\n/)){let a=b.match(bv);if(a)return(a[1]??"").trim()||null}return null}(g):null;if(i&&i===b.id)return!0;let j=bB(f.displayText);if(!j||!c||j!==c)return!1;let k="number"==typeof(e=f.raw.timestamp)&&Number.isFinite(e)?e<1e12?1e3*e:e:null;if(null!==k){let a=3e5>Math.abs(k-b.timestamp),c=k>=b.timestamp-5e3;return a&&c}let l=h.get(f.raw);return"number"==typeof l&&l>=a.length-5})||g.push({kind:"optimistic",message:b})}if(b)for(let a of d)g.push({kind:"tool-stream",entry:a});if(f&&e.length>0){let a=e[e.length-1];"assistant"===a.role&&g.push({kind:"stream",message:a,isStreaming:f})}return g}(D,aE,a6,bl,N,$);let b=[],c=null;for(let d of a)if("message"===d.kind)c&&c.role===d.normalized.role?c.messages.push(d.normalized):(c&&b.push(c),c={kind:"group",role:d.normalized.role,messages:[d.normalized],timestamp:d.normalized.timestamp});else if(c&&(b.push(c),c=null),"optimistic"===d.kind)b.push({kind:"optimistic-group",messages:[d.message]});else if("tool-stream"===d.kind){let a=b[b.length-1];a&&"tool-stream-group"===a.kind?a.entries.push(d.entry):b.push({kind:"tool-stream-group",entries:[d.entry]})}else"stream"===d.kind?b.push({kind:"stream-group",message:d.message,isStreaming:d.isStreaming}):"indicator"===d.kind&&b.push({kind:"indicator-group",status:d.status});return c&&b.push(c),b},[D,aE,a6,bl,N,$]),bL=bJ.length>0||aE&&bF.length>0;(0,e.useRef)(!1);let bP=(0,e.useRef)(null),bS=(0,e.useCallback)(()=>{let a=T.current;a&&(bP.current={prevScrollHeight:a.scrollHeight,prevScrollTop:a.scrollTop}),H()},[H]),[bT,bU]=(0,e.useState)([]),[bV,bZ]=(0,e.useState)({}),[b$,b_]=(0,e.useState)(!1),b0=(0,e.useCallback)(async a=>{let b=await br(a);b.length>0&&(bU(a=>[...a,...b]),U.current?.focus())},[]),b1=(0,e.useCallback)(a=>{bU(b=>b.filter(b=>b.id!==a))},[]),b2=(0,e.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind&&bp.includes(a.type)){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),b0(c))},[b0]),b3=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),a.dataTransfer?.types.includes("Files")&&b_(!0)},[]),b4=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation();let b=a.currentTarget.getBoundingClientRect(),{clientX:c,clientY:d}=a;(c<=b.left||c>=b.right||d<=b.top||d>=b.bottom)&&b_(!1)},[]),b5=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),b_(!1);let b=Array.from(a.dataTransfer?.files??[]).filter(a=>bp.includes(a.type));b.length>0&&b0(b)},[b0]),b6=(0,e.useCallback)(a=>{let b=Array.from(a.target.files??[]);b.length>0&&b0(b),a.target.value=""},[b0]),b7=(0,e.useCallback)(()=>{M(new aL.ry({transport:bI()})),bU([]),ag([]),ac(!0),ai(!1),ak(""),W.current=null,a7([]),bZ({}),bs(),a8.current=null,U.current&&(U.current.value="",U.current.style.height="auto",U.current.focus())},[bs]),b8=(0,e.useCallback)(async(a,b)=>{if(aD)return;let c=bT.length>0;if(!a.trim()&&!c)return;let d=a.trim()||(c?"What's in this image?":"");if(!d)return;bs();let e=b?.messageId?.trim()||crypto.randomUUID(),f=bT.map(a=>a.dataUrl),g={id:e,role:"user",text:d,images:f.length>0?f:void 0,timestamp:Date.now(),status:"sending"};a7(a=>[...a,g]),f.length>0&&bZ(a=>({...a,[e]:f})),a8.current=e,C.current=Date.now(),bU([]),U.current&&(U.current.value="",U.current.style.height="auto"),ai(!1),ak(""),W.current=null;let h=a_();for(let a of bH)window.setTimeout(()=>{I({force:!0})},a);try{await O({text:d},{body:{sessionKey:s.current||"main",pageContext:h?.activePage?.path??void 0,context:h??void 0,images:f.length>0?f:void 0}}),setTimeout(()=>{a7(a=>a.map(a=>a.id===e&&"sending"===a.status?{...a,status:"sent"}:a))},2e3)}catch(a){console.error("[chat] sendMessage error:",a),b?.messageId&&(a9.current=a9.current.filter(a=>a!==b.messageId),bc.current===b.messageId&&(bc.current=null,bg.current="")),a7(a=>a.map(a=>a.id===e?{...a,status:"error"}:a))}},[aD,O,bT,a_,I,bs]),b9=(0,e.useCallback)(async()=>{R();try{await fetch("/api/chat/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionKey:q})})}catch{}},[q,R]),ca=(0,e.useCallback)(a=>{a7(b=>b.filter(b=>b.id!==a.id)),a.images&&a.images.length>0?(bU(a.images.map((a,b)=>({id:crypto.randomUUID(),dataUrl:a,name:`image-${b}`}))),setTimeout(()=>{b8(a.text)},0)):b8(a.text)},[b8]),cb=(0,e.useCallback)(a=>{a.preventDefault(),!aD&&U.current&&b8(U.current.value)},[aD,b8]),cc=(0,e.useCallback)(a=>{if(at){let b=av.trim().toLowerCase(),c=0===b.length?ax:ax.filter(a=>a.name.toLowerCase().includes(b)),d=c.length>0?c:ax.slice(0,12);if("ArrowDown"===a.key){a.preventDefault(),aC(a=>0===d.length?0:(a+1)%d.length);return}if("ArrowUp"===a.key){a.preventDefault(),aC(a=>0===d.length?0:(a-1+d.length)%d.length);return}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=d[aB]??d[0];b?a3(b.name):(au(!1),aw(""),Y.current=null);return}if("Escape"===a.key){a.preventDefault(),au(!1),aw(""),Y.current=null;return}}if(ah){let b=aj.trim()||al.length>0?al:ar;if("ArrowDown"===a.key){a.preventDefault(),aq(a=>0===b.length?0:(a+1)%b.length);return}if("ArrowUp"===a.key){a.preventDefault(),aq(a=>0===b.length?0:(a-1+b.length)%b.length);return}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let c=b[ap]??b[0];if(c)a4(c);else{ai(!1),ak(""),W.current=null;let b=a.target.value;(b||bT.length>0)&&b8(b||"")}return}if("Escape"===a.key){a.preventDefault(),ai(!1),ak(""),W.current=null;return}}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=a.target.value;(b||bT.length>0)&&b8(b||"")}},[bT.length,a4,a3,b8,ap,ah,aj,al,ar,ax,aB,at,av]),cd=(0,e.useCallback)(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`,a2(),a0())},[a0,a2]),ce=_?.title??(f?f.split("/").pop()?.replace(/\.md$/,"").replace(/-/g," ")??null:null),cf="fullscreen"===a,cg=(0,e.useMemo)(()=>{let a=[];for(let b of(ab&&_&&a.push({key:`current-${_.path}`,page:_,kind:"current"}),ae))a.some(a=>a.page.path===b.path)||a.push({key:`attached-${b.path}`,page:b,kind:"attached"});return a},[_,ae,ab]),ch=aj.trim()||al.length>0?al:ar,ci=ax.filter(a=>!!(a&&"string"==typeof a.name)),cj=av.trim().toLowerCase(),ck=0===cj.length?ci:ci.filter(a=>a.name.toLowerCase().includes(cj)),cl=ck.length>0?ck.slice(0,12):ci.slice(0,12),cm=(0,e.useCallback)(a=>{B&&(a.preventDefault(),y.current=a.clientX,A.current=u,x(!0))},[B,u]);return(0,d.jsxs)("div",{onDragOver:b3,onDragLeave:b4,onDrop:b5,className:(0,j.cn)("relative flex flex-col bg-background","default"===a&&!b&&"hidden","default"===a&&"h-full shrink-0 border-l","sheet"===a&&"h-full w-full",cf&&"h-full w-full"),style:"default"===a?{width:u,minWidth:400,maxWidth:"40vw"}:void 0,children:[B&&(0,d.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize chat panel",onPointerDown:cm,className:(0,j.cn)("absolute left-0 top-0 z-20 h-full w-2 cursor-col-resize","group"),children:(0,d.jsx)("div",{className:(0,j.cn)("absolute inset-y-0 left-0 w-px bg-border/70","transition-colors group-hover:bg-[color:var(--cp-brand-2)]",w&&"bg-[color:var(--cp-brand-2)]")})}),b$&&(0,d.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,d.jsxs)("div",{className:"flex flex-col items-center gap-2 text-blue-600 dark:text-blue-400",children:[(0,d.jsx)(aN.A,{className:"h-8 w-8"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Drop image here"})]})}),(0,d.jsxs)("div",{className:(0,j.cn)("flex shrink-0 items-center justify-between border-b px-4",cf?"h-14":"h-12"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(af.A,{className:"h-4 w-4 shrink-0 text-[color:var(--cp-brand-2)]"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Chat"}),(0,d.jsx)(bM,{connected:g,wsStatus:i,agentStatus:p})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:(0,j.cn)("h-8 w-8 text-muted-foreground hover:text-foreground",aE&&"text-[color:var(--cp-brand-2)] hover:text-[color:var(--cp-brand-2)]"),onClick:()=>aF(!aE),title:aE?"Hide details":"Show details","aria-pressed":aE,"aria-label":aE?"Hide details":"Show details",children:aE?(0,d.jsx)(aO.A,{className:"h-4 w-4"}):(0,d.jsx)(aP.A,{className:"h-4 w-4"})}),(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",onClick:b7,title:"New chat",children:(0,d.jsx)(aQ.A,{className:"h-4 w-4"})})]})]}),aD&&(0,d.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"===i?"Reconnecting to OpenClaw gateway…":"server_unreachable"===l?"ClawPad server is unreachable from this browser.":"OpenClaw gateway is unavailable. Start or restart the gateway to resume chat."}),(0,d.jsx)("div",{ref:T,onScroll:bz,className:"flex-1 min-h-0 min-w-0 overflow-y-auto",children:(0,d.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:[!bL&&!E&&(0,d.jsx)(bN,{pageTitle:ce}),E&&(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 py-8 text-muted-foreground",children:[(0,d.jsx)(aR.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{className:"text-xs",children:"Loading history…"})]}),G&&!E&&(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsxs)("button",{onClick:bS,disabled:F,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:[F?(0,d.jsx)(aR.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(ad.A,{className:"h-3 w-3"}),"Load earlier messages"]})}),aE&&bF.length>0&&(0,d.jsx)(bO,{events:bF}),bJ.map((a,b)=>{if("group"===a.kind)return(0,d.jsx)(bR,{group:a,showReasoning:aG,showTools:aE},`g-${b}-${a.timestamp}`);if("optimistic-group"===a.kind)return a.messages.map(a=>(0,d.jsx)(bW,{message:a,images:bV[a.id],onRetry:ca},a.id));if("tool-stream-group"===a.kind){let c=a.entries[a.entries.length-1],e=c?`tool-batch-${c.toolCallId}-${c.updatedAt}`:`tool-batch-${b}`;return(0,d.jsx)(bQ,{entries:a.entries},e)}return"stream-group"===a.kind?(0,d.jsx)(bY,{message:a.message,isLatest:!0,isStreaming:a.isStreaming,showThinking:aE,onToolApprove:a=>P({id:a,approved:!0}),onToolDeny:a=>P({id:a,approved:!1,reason:"Denied by user"})},`stream-${a.message.id}`):null}),S&&!a6.some(a=>"error"===a.status)&&(0,d.jsxs)(ba.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,d.jsx)(aS.A,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium",children:"Something went wrong"}),(0,d.jsx)("p",{className:"text-xs opacity-80 mt-0.5",children:S.message.includes("API key")?"No API key configured. Check your environment settings.":S.message})]})]})]})}),(0,d.jsx)(bb.N,{children:bu>0&&(0,d.jsxs)(ba.P.button,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},onClick:()=>{by("smooth"),bw(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,d.jsx)(aT.A,{className:"h-3 w-3"}),bu," new message",1!==bu?"s":""]})}),!bL&&ce&&(0,d.jsx)("div",{className:"border-t px-4 py-2",children:(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:"Viewing:"}),(0,d.jsx)("span",{className:"font-medium capitalize text-foreground",children:ce})]})}),(0,d.jsxs)("div",{className:(0,j.cn)("shrink-0 border-t p-4",cf&&"pb-[calc(0.75rem+env(safe-area-inset-bottom,0px))]",cf&&"sticky bottom-0 bg-background"),children:[(0,d.jsx)(bm,{status:aK}),bT.length>0&&(0,d.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:bT.map(a=>(0,d.jsxs)("div",{className:"group relative",children:[(0,d.jsx)("img",{src:a.dataUrl,alt:a.name,className:"h-16 w-16 rounded-lg border object-cover"}),(0,d.jsx)("button",{type:"button",onClick:()=>b1(a.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,d.jsx)(m.A,{className:"h-3 w-3"})}),(0,d.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:a.name})]},a.id))}),(0,d.jsxs)("form",{onSubmit:cb,className:"w-full",children:[(0,d.jsx)("input",{ref:V,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,className:"hidden",onChange:b6}),(0,d.jsxs)("div",{className:(0,j.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)]",cf&&"min-h-[64px]"),ref:X,children:[(cg.length>0||_&&!ab)&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px]",children:[(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",className:(0,j.cn)("h-7 w-7 rounded-full text-muted-foreground/70 hover:text-foreground hover:bg-muted/60",ah&&"bg-muted/60 text-foreground"),onClick:a5,title:"Mention a page","aria-label":"Mention a page",disabled:$||aD,children:(0,d.jsx)(aU.A,{className:"h-4 w-4"})}),cg.map(a=>(0,d.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"===a.kind?(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}):(0,d.jsx)(aU.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,d.jsx)("span",{className:"max-w-[180px] truncate text-foreground/80",children:a.page.title}),(0,d.jsx)("button",{type:"button",onClick:()=>{"current"===a.kind?ac(!1):ag(b=>b.filter(b=>b.path!==a.page.path))},className:"ml-0.5 rounded-full p-0.5 text-muted-foreground/60 hover:text-foreground","aria-label":"Remove context",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})})]},a.key)),!ab&&_&&(0,d.jsx)("button",{type:"button",onClick:()=>ac(!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"})]}),ah&&(0,d.jsxs)("div",{className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:a=>a.preventDefault(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:aj.trim()?"Pages":"Recent pages"}),an&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Searching…"})]}),(0,d.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!an&&0===ch.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:aj.trim()?"No matching pages":"No recent pages"}),ch.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>a4(a),className:(0,j.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",b===ap?"bg-muted/60":"hover:bg-muted/40"),children:[(0,d.jsx)(z.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-foreground",children:a.title}),(0,d.jsx)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:a.path})]})]},a.path))]})]}),at&&(0,d.jsxs)("div",{ref:Z,className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:a=>a.preventDefault(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:"OpenClaw commands"}),az&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Loading…"})]}),(0,d.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!az&&0===cl.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No commands available"}),cl.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>a3(a.name),className:(0,j.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",b===aB?"bg-muted/60":"hover:bg-muted/40",a.disabled&&"opacity-60"),children:[(0,d.jsx)(aV.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-foreground",children:a.name}),(0,d.jsxs)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:["/",a.name," — ",a.description]})]})]},a.name))]})]}),(0,d.jsx)("textarea",{ref:U,onKeyDown:cc,onPaste:b2,onInput:cd,placeholder:bT.length>0?"Add a message or send…":"Ask your agent…",rows:cf?1:2,className:(0,j.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]",cf&&"text-base"),disabled:$}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsx)(k.$,{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:()=>V.current?.click(),title:"Attach image","aria-label":"Attach image",disabled:$||aD,children:(0,d.jsx)(h.A,{className:"h-4 w-4"})})}),$?(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",onClick:b9,className:"h-9 w-9 rounded-full bg-white text-black shadow-sm hover:bg-white/90","aria-label":"Stop generation",children:(0,d.jsx)("span",{className:"h-3.5 w-3.5 rounded-sm bg-black"})}):(0,d.jsx)(k.$,{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:aD,children:(0,d.jsx)(aW.A,{className:"h-4 w-4"})})]})]})]})]})]})}function bM({connected:a,wsStatus:b,agentStatus:c}){let e="connecting"===b||"reconnecting"===b,f=a?"active"===c||"thinking"===c?"bg-violet-400":"bg-green-500":e?"bg-amber-400":"bg-zinc-300 dark:bg-zinc-600";return(0,d.jsxs)("span",{className:"relative flex h-2 w-2",title:a?c:e?b:"disconnected",children:[(e||a&&("active"===c||"thinking"===c))&&(0,d.jsx)("span",{className:(0,j.cn)("absolute inline-flex h-full w-full rounded-full opacity-75 animate-ping",f)}),(0,d.jsx)("span",{className:(0,j.cn)("relative inline-flex h-2 w-2 rounded-full",f)})]})}function bN({pageTitle:a}){return(0,d.jsx)("div",{className:"flex flex-1 items-center justify-center py-16",children:(0,d.jsxs)("div",{className:"space-y-3 text-center",children:[(0,d.jsx)(af.A,{className:"mx-auto h-8 w-8 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Chat with your OpenClaw agent"}),a&&(0,d.jsxs)("p",{className:"text-xs text-muted-foreground/60",children:["Viewing:"," ",(0,d.jsx)("span",{className:"capitalize font-medium",children:a})]})]})]})})}let bO=(0,e.memo)(function({events:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(null),h=a.filter(a=>"alert"===a.kind).length;return(0,d.jsxs)("div",{className:"rounded-xl border border-border/60 bg-muted/20",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>c(a=>!a),className:(0,j.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":b,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(aX.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,d.jsx)("span",{className:"font-medium text-foreground/80",children:"System events"}),(0,d.jsx)("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[10px] text-muted-foreground",children:a.length}),h>0&&(0,d.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:[h," alert",1!==h?"s":""]})]}),(0,d.jsx)(aY.A,{className:(0,j.cn)("h-4 w-4 transition-transform",b?"rotate-180":"rotate-0")})]}),b&&(0,d.jsx)("div",{className:"border-t border-border/50",children:a.map(a=>{let b=f===a.id,c=a.text.length>140,e=c?`${a.text.slice(0,137)}…`:a.text;return(0,d.jsx)("div",{className:"border-t border-border/40 first:border-t-0",children:(0,d.jsxs)("button",{type:"button",onClick:()=>{c&&g(b=>b===a.id?null:a.id)},className:"flex w-full items-start gap-3 px-3 py-2 text-left",children:[(0,d.jsx)(bP,{kind:a.kind,tone:a.tone}),(0,d.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground/70",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(0,d.jsx)("div",{className:"text-xs text-foreground/80 whitespace-pre-wrap",children:b?a.text:e})]}),c&&(0,d.jsx)(y.A,{className:(0,j.cn)("mt-1 h-3.5 w-3.5 text-muted-foreground/60 transition-transform",b&&"rotate-90")})]})},a.id)})})]})});function bP({kind:a,tone:b}){let c=(0,j.cn)("shrink-0 rounded-full border px-2 py-0.5 text-[10px] font-medium","system"===a&&"border-border/60 bg-muted/40 text-muted-foreground","heartbeat"===a&&"border-blue-500/30 bg-[color:var(--cp-status-heartbeat-bg)] text-[color:var(--cp-status-heartbeat-text)]","alert"===a&&("error"===b?"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,d.jsx)("span",{className:c,children:"system"===a?"System":"heartbeat"===a?"Heartbeat":"Alert"})}let bQ=(0,e.memo)(function({entries:a}){return(0,d.jsx)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%]",children:a.map(a=>(0,d.jsx)(b_,{entry:a},`${a.toolCallId}-${a.updatedAt}`))})}),bR=(0,e.memo)(function({group:a,showReasoning:b,showTools:c}){return"user"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.messages.map((a,b)=>(0,d.jsx)(bS,{message:a},a.id??`u-${b}`))}):"assistant"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1 items-start",children:a.messages.map((a,e)=>(0,d.jsx)(bT,{message:a,showReasoning:b,showTools:c},a.id??`a-${e}`))}):"tool"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1",children:a.messages.map((a,b)=>(0,d.jsx)(bU,{message:a},a.id??`t-${b}`))}):"system"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1",children:a.messages.map((a,b)=>{let c=a.displayText;return c?(0,d.jsx)("div",{className:"text-center text-xs text-muted-foreground/60 italic py-1",children:c},a.id??`s-${b}`):null})}):null}),bS=(0,e.memo)(function({message:a}){let b=a.displayText,[c,f]=(0,e.useState)(null),g=(0,e.useMemo)(()=>{let b=[];for(let c of a.content)if("input_image"===c.type||"image"===c.type){let a,d=c.source;if(d?.type==="base64"&&"string"==typeof d.data){let b=d.data,c=d.media_type||"image/png";a=b.startsWith("data:")?b:`data:${c};base64,${b}`}else a=c.image_url??c.url??("string"==typeof d?.url?d.url:void 0);a&&b.push(a)}return b},[a.content]);if((!b||b.trim().length<1)&&0===g.length)return null;let h=a.timestamp?new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[c&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>f(null),children:[(0,d.jsx)("img",{src:c,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>f(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 pr-4",children:[(0,d.jsx)(bo,{channel:a.channel,sessionKey:a.sessionKey}),h&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:h})]}),(0,d.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[g.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:g.map((a,b)=>(0,d.jsx)("img",{src:a,alt:`Attached image ${b+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:()=>f(a)},b))}),b&&b.trim().length>0&&(0,d.jsx)("div",{className:"cp-user-bubble rounded-2xl px-4 py-2 text-sm leading-relaxed break-words overflow-hidden",children:b})]})]})}),bT=(0,e.memo)(function({message:a,showReasoning:b,showTools:c}){let e=a.displayText?.trim()||null,f=c?a.toolCards:[],g=f.length>0,h=b?function(a){let b=a.content,c=[];if(Array.isArray(b)){for(let a of b)if("thinking"===a.type&&"string"==typeof a.thinking){let b=a.thinking.trim();b&&c.push(b)}}if(c.length>0)return c.join("\n");let d=bD(a);if(!d)return null;let e=[...d.matchAll(/<\s*think(?:ing)?\s*>([\s\S]*?)<\s*\/\s*think(?:ing)?\s*>/gi)].map(a=>(a[1]??"").trim()).filter(Boolean);return e.length>0?e.join("\n"):null}(a.raw):null,i=h?function(a){let b=a.trim();if(!b)return"";let c=b.split(/\r?\n/).map(a=>a.trim()).filter(Boolean).map(a=>`_${a}_`);return c.length?["_Reasoning:_",...c].join("\n"):""}(h):null,j=a.timestamp?new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return e||g?(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%] min-w-0",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(bo,{channel:a.channel,sessionKey:a.sessionKey}),j&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:j})]}),e&&(0,d.jsx)("div",{className:"min-w-0 text-sm leading-relaxed opacity-90",children:(0,d.jsx)(b$,{text:e})}),i&&(0,d.jsx)("div",{className:"min-w-0 text-xs text-muted-foreground",children:(0,d.jsx)(b$,{text:i})}),g&&f.map((a,b)=>(0,d.jsx)(bV,{card:a},`tc-${b}`))]}):null}),bU=(0,e.memo)(function({message:a}){let b=a.toolCards;return 0===b.length?null:(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:b.map((a,b)=>(0,d.jsx)(bV,{card:a},`tr-${b}`))})}),bV=(0,e.memo)(function({card:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useId)(),g=(0,bc.I)(),h=b1(a.name),i=h.icon,k=b3(a.text)??a.text??"",l=!!k.trim(),m=b2(a.args);return(0,d.jsxs)("div",{className:"my-0 max-w-full",children:[(0,d.jsxs)("button",{type:"button",onClick:l?()=>c(!b):void 0,className:(0,j.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",l&&"hover:bg-muted/30 cursor-pointer",!l&&"cursor-default",b&&"bg-muted/40 text-foreground"),"aria-expanded":l?b:void 0,"aria-controls":l?f:void 0,children:[(0,d.jsx)("span",{className:(0,j.cn)("flex h-3.5 w-3.5 items-center justify-center",l?"text-muted-foreground/50 group-hover:text-muted-foreground":"opacity-0"),"aria-hidden":"true",children:l&&b?(0,d.jsx)(aY.A,{className:"h-3 w-3"}):(0,d.jsx)(y.A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground",children:(0,d.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,d.jsxs)("span",{className:"min-w-0 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"font-medium text-foreground/75 group-hover:text-foreground",children:h.label}),m&&(0,d.jsx)("span",{className:"truncate max-w-[220px] text-[10px] font-mono text-muted-foreground/60 group-hover:text-muted-foreground",children:m})]}),(0,d.jsx)("span",{className:"ml-auto flex items-center gap-1 text-muted-foreground/50",children:"result"===a.kind&&!l&&(0,d.jsx)(aZ.A,{className:"h-3 w-3"})})]}),(0,d.jsx)(bb.N,{initial:!1,children:l&&b&&(0,d.jsx)(ba.P.div,{id:f,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!g},className:"overflow-hidden",children:(0,d.jsx)("div",{className:"pt-1 pl-6",children:(0,d.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:k})})})})]})}),bW=(0,e.memo)(function({message:a,images:b,onRetry:c}){let[f,g]=(0,e.useState)(null),h=new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[f&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>g(null),children:[(0,d.jsx)("img",{src:f,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>g(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:h}),"sending"===a.status&&(0,d.jsx)(ad.A,{className:"h-3 w-3 text-muted-foreground/50"}),("streaming"===a.status||"sent"===a.status)&&(0,d.jsxs)("div",{className:"flex items-center text-blue-400",children:[(0,d.jsx)(aZ.A,{className:"h-3 w-3"}),(0,d.jsx)(aZ.A,{className:"-ml-1.5 h-3 w-3"})]}),"error"===a.status&&(0,d.jsxs)("button",{onClick:()=>c(a),className:"flex items-center gap-1 text-destructive hover:text-destructive/80 transition-colors",title:"Tap to retry",children:[(0,d.jsx)(aS.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"text-[10px] font-medium",children:"Retry"})]})]}),(0,d.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[b&&b.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:b.map((a,b)=>(0,d.jsx)("img",{src:a,alt:`Attached image ${b+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:()=>g(a)},b))}),(0,d.jsx)("div",{className:(0,j.cn)("rounded-2xl px-4 py-2.5 text-sm leading-relaxed shadow-sm break-words overflow-hidden","error"===a.status?"bg-red-500 text-white dark:bg-red-600":"cp-user-bubble"),children:(0,d.jsx)("span",{children:a.text})})]})]})});function bX(a){let b=[],c="",d=()=>{c.trim().length>0&&b.push({type:"text",text:c}),c=""};for(let e of a){if("text"===e.type&&"string"==typeof e.text){c&&(c+="\n"),c+=e.text;continue}d(),b.push(e)}return d(),b}let bY=(0,e.memo)(function({message:a,_images:b,isLatest:c,isStreaming:f,showThinking:g,onToolApprove:h,onToolDeny:i}){let[j,k]=(0,e.useState)(null),l=(0,e.useMemo)(()=>bX(a.parts??[]),[a.parts]);return"user"===a.role?null:(0,d.jsxs)("div",{className:"flex flex-col gap-1 items-start",children:[j&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>k(null),children:[(0,d.jsx)("img",{src:j,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>k(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"max-w-[95%] min-w-0 text-sm leading-relaxed",children:[l.map((a,b)=>{if("text"===a.type)return(0,d.jsx)(b$,{text:a.text??""},b);if("dynamic-tool"===a.type||a.type?.startsWith("tool-")){let c="approval-requested"===a.state;if(!c&&!g)return null;let e=a.toolName??a.type.replace(/^tool-/,""),f=a.approval?.approvalId??a.toolCallId;return(0,d.jsx)(b4,{toolName:e,state:a.state??"",args:a.input,onApprove:c&&h?()=>h(f??""):void 0,onDeny:c&&i?()=>i(f??""):void 0},b)}return null}),f&&c&&(0,d.jsx)("span",{className:"inline-block h-4 w-0.5 animate-pulse bg-foreground/60 ml-0.5 align-text-bottom"})]})]})}),bZ={code:({className:a,children:b,...c})=>a||"string"!=typeof b||b.includes("\n")?(0,d.jsx)("pre",{className:"my-2 overflow-x-auto rounded-lg bg-zinc-100 p-3 text-[13px] dark:bg-zinc-900",children:(0,d.jsx)("code",{className:a,...c,children:b})}):(0,d.jsx)("code",{className:"rounded bg-zinc-100 px-1.5 py-0.5 text-[13px] dark:bg-zinc-800",...c,children:b}),pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a}),p:({children:a})=>(0,d.jsx)("p",{className:"my-1",children:a}),a:({href:a,children:b})=>(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 underline dark:text-blue-400 break-all",children:b}),ul:({children:a})=>(0,d.jsx)("ul",{className:"my-1 list-disc pl-4",children:a}),ol:({children:a})=>(0,d.jsx)("ol",{className:"my-1 list-decimal pl-4",children:a}),li:({children:a})=>(0,d.jsx)("li",{className:"my-0",children:a}),blockquote:({children:a})=>(0,d.jsx)("blockquote",{className:"my-2 border-l-2 border-zinc-300 pl-3 italic text-muted-foreground dark:border-zinc-600",children:a}),table:({children:a})=>(0,d.jsx)("div",{className:"my-2 overflow-x-auto",children:(0,d.jsx)("table",{className:"min-w-full border-collapse text-sm",children:a})}),th:({children:a})=>(0,d.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:a}),td:({children:a})=>(0,d.jsx)("td",{className:"border border-zinc-300 px-2 py-1 dark:border-zinc-600",children:a}),h1:({children:a})=>(0,d.jsx)("h1",{className:"my-2 text-base font-bold",children:a}),h2:({children:a})=>(0,d.jsx)("h2",{className:"my-1.5 text-sm font-bold",children:a}),h3:({children:a})=>(0,d.jsx)("h3",{className:"my-1 text-sm font-semibold",children:a}),img:({src:a,alt:b})=>(0,d.jsx)("img",{src:a,alt:b??"",className:"my-2 max-w-full rounded-lg"})},b$=(0,e.memo)(function({text:a}){return(0,d.jsx)("div",{className:"chat-message-content min-w-0 max-w-full overflow-hidden text-sm leading-relaxed [overflow-wrap:break-word]",children:(0,d.jsx)(a8.oz,{remarkPlugins:[a9.A],components:bZ,children:a})})}),b_=(0,e.memo)(function({entry:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useId)(),g=(0,bc.I)(),h=b1(a.name),i=h.icon,k=b2(a.args),l=function(a){if(null==a)return null;if("string"==typeof a)return a.trim()?a:null;try{return JSON.stringify(a,null,2)}catch{return String(a)}}(a.args),m=a.output?.trim()??"",n=b3(m)??m,o=!!m,p=!!(l||o),q="start"===a.phase||"update"===a.phase,r="result"===a.phase?"Completed":"error"===a.phase?"Error":"Running",s="result"===a.phase?aZ.A:"error"===a.phase?aS.A:aR.A;return(0,d.jsxs)("div",{className:(0,j.cn)("rounded-lg border border-transparent bg-transparent","transition-colors","hover:border-border/40 hover:bg-muted/20",b&&"border-border/50 bg-muted/30",q&&"bg-muted/30"),children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{p&&c(a=>!a)},className:(0,j.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?b:void 0,"aria-disabled":!p,"aria-controls":p?f:void 0,children:[(0,d.jsx)("span",{className:(0,j.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&&b?(0,d.jsx)(aY.A,{className:"h-3 w-3"}):(0,d.jsx)(y.A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground","aria-hidden":"true",children:(0,d.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,d.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-foreground/75 group-hover:text-foreground",children:h.label}),k&&(0,d.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground/60 truncate group-hover:text-muted-foreground",children:k})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,d.jsx)(s,{className:(0,j.cn)("h-3.5 w-3.5","Running"===r&&"animate-spin motion-reduce:animate-none","Error"===r&&"text-destructive")}),(0,d.jsx)("span",{className:(0,j.cn)("Error"===r&&"text-destructive",q&&"animate-pulse motion-reduce:animate-none"),children:r})]})]}),(0,d.jsx)(bb.N,{initial:!1,children:b&&p&&(0,d.jsx)(ba.P.div,{id:f,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!g},className:"overflow-hidden",children:(0,d.jsxs)("div",{className:"px-2 pb-2 space-y-2",children:[l&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Args"}),(0,d.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:l})]}),o&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Output"}),(0,d.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:n})]})]})})})]})}),b0={Read:{icon:z.A,label:"Read file"},Edit:{icon:a$.A,label:"Edit file"},Write:{icon:a_.A,label:"Write file"},exec:{icon:aV.A,label:"Run command"},web_search:{icon:g.A,label:"Web search"},web_fetch:{icon:a0.A,label:"Fetch page"},browser:{icon:a0.A,label:"Browser"},message:{icon:aj.A,label:"Send message"},image:{icon:a1.A,label:"Analyze image"},tts:{icon:a2.A,label:"Text to speech"},nodes:{icon:a3.A,label:"Node control"},canvas:{icon:a4.A,label:"Canvas"},process:{icon:a5.A,label:"Process"}};function b1(a){let b=a.trim(),c=b.replace(/[\s-]+/g,"_"),d=c.toLowerCase(),e=d.length>0?d[0].toUpperCase()+d.slice(1):"";for(let a of[b,c,d,b.toLowerCase(),e])if(a&&b0[a])return b0[a];return{icon:a6.A,label:b||"Tool"}}function b2(a){if(!a)return null;if("string"==typeof a){let b=a.trim();return b?b.length>60?b.slice(0,57)+"…":b:null}if("object"!=typeof a)return null;if(a.query)return`"${String(a.query)}"`;if(a.path)return String(a.path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(a.file_path)return String(a.file_path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(a.command){let b=String(a.command);return b.length>60?b.slice(0,57)+"…":b}return a.url?String(a.url):a.action?String(a.action):null}function b3(a){return a?bF(a)??a:null}let b4=(0,e.memo)(function({toolName:a,state:b,args:c,onApprove:e,onDeny:f}){let g=b1(a),h=g.icon,i=(()=>{if(!c||"object"!=typeof c)return null;if(c.query)return`"${String(c.query)}"`;if(c.path)return String(c.path).split("/").pop();if(c.file_path)return String(c.file_path).split("/").pop();if(c.command){let a=String(c.command);return a.length>50?a.slice(0,50)+"…":a}return c.url?String(c.url):null})();return"approval-requested"!==b?(0,d.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"===b||"input-streaming"===b||"input-available"===b?(0,d.jsx)(aR.A,{className:"h-3 w-3 animate-spin motion-reduce:animate-none shrink-0"}):"output-available"===b||"result"===b?(0,d.jsx)(aZ.A,{className:"h-3 w-3 text-green-600 shrink-0"}):"output-error"===b?(0,d.jsx)(a7.A,{className:"h-3 w-3 text-destructive shrink-0"}):(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70",children:(0,d.jsx)(h,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("span",{className:"font-medium text-foreground/75",children:g.label}),i&&(0,d.jsx)("span",{className:"truncate max-w-[200px] text-[10px] font-mono text-muted-foreground/60",children:i})]}):(0,d.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,d.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)(aX.A,{className:"h-3.5 w-3.5 text-amber-600 dark:text-amber-400"}),(0,d.jsx)("span",{className:"font-medium font-mono",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground/60",children:"Requires approval"})]}),null!=c&&"object"==typeof c&&Object.keys(c).length>0?(0,d.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(c,null,2)}):null,e&&f&&(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsxs)("button",{onClick:e,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,d.jsx)(aZ.A,{className:"h-3 w-3"}),"Approve"]}),(0,d.jsxs)("button",{onClick:f,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,d.jsx)(a7.A,{className:"h-3 w-3"}),"Deny"]})]})]})});var b5=c(11732),b6=c(80682),b7=c(1353);let b8=[{id:"pages",label:"Pages",icon:z.A},{id:"editor",label:"Editor",icon:b5.A},{id:"chat",label:"Chat",icon:b6.A},{id:"activity",label:"Activity",icon:b7.A}],b9=(0,e.memo)(function({activeTab:a,onTabChange:b,hasUnreadChat:c=!1,onNewPage:e}){return(0,d.jsxs)(d.Fragment,{children:["pages"===a&&e&&(0,d.jsx)("button",{onClick:e,className:(0,j.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,d.jsx)(h.A,{className:"h-6 w-6"})}),(0,d.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:b8.map(({id:e,label:f,icon:g})=>{let h=a===e;return(0,d.jsxs)("button",{onClick:()=>b(e),className:(0,j.cn)("relative flex flex-1 flex-col items-center justify-center gap-0.5 transition-colors min-h-[44px]",h?"text-accent-blue":"text-muted-foreground active:text-foreground"),children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(g,{className:"h-5 w-5"}),"chat"===e&&c&&(0,d.jsxs)("span",{className:"absolute -right-1.5 -top-1 flex h-2.5 w-2.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-accent-blue opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-accent-blue"})]})]}),(0,d.jsx)("span",{className:"text-[10px] font-medium",children:f}),h&&(0,d.jsx)("span",{className:"absolute top-0 left-1/4 right-1/4 h-0.5 rounded-full bg-accent-blue"})]},e)})})]})});function ca({onNavigate:a}){let b=(0,v.usePathname)(),c=(0,v.useRouter)(),{spaces:f,expandedSpaces:h,expandedFolders:i,toggleSpace:k,toggleFolder:l,pagesBySpace:m,spacesStatus:n,pagesStatusBySpace:o,recentPages:p,recentStatus:q,loadSpaces:r,loadRecentPages:s}=(0,K.M)(),[t,u]=(0,e.useState)(""),w=(0,e.useCallback)(b=>{c.push((0,P.C)(b)),a?.()},[c,a]),x=(0,L.z)(a=>a.agentName);return(0,d.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,d.jsx)("div",{className:"flex h-14 shrink-0 items-center justify-between border-b px-4",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.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,d.jsx)("span",{className:"text-sm font-semibold",children:x??"ClawPad"})]})}),(0,d.jsx)("div",{className:"shrink-0 px-4 py-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(g.A,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,d.jsx)("input",{type:"text",placeholder:"Search pages…",value:t,onChange:a=>u(a.target.value),className:(0,j.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,d.jsxs)(D,{className:"flex-1 px-4",children:[!t&&p.length>0&&(0,d.jsxs)("div",{className:"mb-4",children:[(0,d.jsx)(cb,{children:"Recent"}),(0,d.jsx)("div",{className:"space-y-0.5",children:p.slice(0,5).map(a=>(0,d.jsx)(cd,{page:a,isActive:b===(0,P.C)(a.path),onNavigate:()=>w(a.path),showTime:!0},a.path))})]}),(0,d.jsx)(F.w,{className:"my-2"}),(0,d.jsxs)("div",{className:"pb-4",children:[(0,d.jsx)(cb,{children:"Spaces"}),"loading"===n&&0===f.length?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"})]}):0===f.length?(0,d.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:"No spaces yet"}):(0,d.jsx)("div",{className:"space-y-1",children:f.map(a=>(0,d.jsx)(cc,{space:a,isExpanded:h.has(a.path),pages:m.get(a.path)??[],isLoadingPages:(o.get(a.path)??"idle")==="loading"&&0===(m.get(a.path)??[]).length,pathname:b,searchQuery:t,onToggle:()=>k(a.path),expandedFolders:i,onToggleFolder:l,onNavigate:w},a.path))}),"loading"===q&&0===p.length&&!t&&(0,d.jsxs)("div",{className:"mb-4 space-y-2",children:[(0,d.jsx)(cb,{children:"Recent"}),(0,d.jsx)(H.E,{className:"h-10 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-10 w-4/5 rounded-lg"})]})]})]})]})}function cb({children:a}){return(0,d.jsx)("h3",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a})}let cc=(0,e.memo)(function({space:a,isExpanded:b,pages:c,isLoadingPages:e,pathname:f,searchQuery:g,onToggle:h,expandedFolders:i,onToggleFolder:k,onNavigate:l}){let m=O(g?c.filter(a=>a.title.toLowerCase().includes(g.toLowerCase())):c,a.path);if(g&&0===m.length)return null;let n=b=>b.map(b=>{if("page"===b.type)return(0,d.jsx)(cd,{page:b.page,isActive:f===(0,P.C)(b.page.path),onNavigate:()=>l(b.page.path)},b.page.path);let c=`${a.path}/${b.path}`,e=i.has(c);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{onClick:()=>k(c),className:(0,j.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,d.jsx)(y.A,{className:(0,j.cn)("h-3.5 w-3.5 shrink-0 transition-transform duration-200",e&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-xs",children:"\uD83D\uDCC2"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:b.name})]}),e&&(0,d.jsx)("div",{className:"ml-3 border-l border-border/50 pl-3 py-0.5",children:n(b.children)})]},c)});return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{onClick:h,className:(0,j.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]",b&&"font-medium"),children:[(0,d.jsx)(y.A,{className:(0,j.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200",b&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-base",children:a.icon??"\uD83D\uDCC1"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:a.name}),(0,d.jsx)(G.E,{variant:"secondary",className:"h-5 shrink-0 px-1.5 text-[11px] font-normal",children:a.pageCount})]}),b&&(0,d.jsx)("div",{className:"ml-4 border-l border-border/50 pl-3 py-0.5",children:e?(0,d.jsxs)("div",{className:"space-y-1 py-1",children:[(0,d.jsx)(H.E,{className:"h-10 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-10 w-3/4 rounded-lg"})]}):0===m.length?(0,d.jsx)("p",{className:"py-3 px-2 text-xs text-muted-foreground",children:"No pages yet. Create your first page."}):n(m)})]})}),cd=(0,e.memo)(function({page:a,isActive:b,onNavigate:c,showTime:e}){return(0,d.jsxs)("button",{onClick:c,className:(0,j.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]",b&&"bg-accent-light text-accent-blue font-medium"),children:[(0,d.jsx)(ad.A,{className:"h-3.5 w-3.5 shrink-0 opacity-50"}),a.icon?(0,d.jsx)("span",{className:"shrink-0 text-sm",children:a.icon}):(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:a.title}),e&&(0,d.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground/60",children:(0,M.f)(a.modified)})]})});var ce=c(22772),cf=c(54255),cg=c(65255),ch=c(46218);let ci={"file-changed":{icon:ce.A,className:"text-blue-500"},"file-added":{icon:ac.A,className:"text-green-500"},"file-removed":{icon:cf.A,className:"text-red-400"},"chat-message":{icon:aj.A,className:"text-violet-500"},"tool-used":{icon:a6.A,className:"text-amber-500"},"sub-agent":{icon:cg.A,className:"text-cyan-500"}};function cj(){let a=(0,L.z)(a=>a.agentStatus);return"thinking"!==a&&"active"!==a?null:(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-md bg-violet-500/10 px-2 py-1.5 mb-1",children:[(0,d.jsx)(ch.A,{className:(0,j.cn)("h-3.5 w-3.5 text-violet-500","thinking"===a&&"animate-pulse")}),(0,d.jsx)("span",{className:"text-[12px] text-violet-500 font-medium",children:"thinking"===a?"Agent thinking…":"Agent working…"}),(0,d.jsxs)("span",{className:"ml-auto flex gap-0.5",children:[(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:0ms]"}),(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:150ms]"}),(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:300ms]"})]})]})}function ck({type:a,description:b,timestamp:c}){let e,f=ci[a]??ci["file-changed"],g=f.icon;return(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md px-2 py-1.5 transition-colors hover:bg-sidebar-accent group",children:[(0,d.jsx)(g,{className:(0,j.cn)("mt-0.5 h-3.5 w-3.5 shrink-0",f.className)}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-[12px] leading-snug text-foreground/80",children:b}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground/60",children:(e=Math.floor((Date.now()-c)/1e3))<5?"just now":e<60?`${e}s ago`:e<3600?`${Math.floor(e/60)}m ago`:e<86400?`${Math.floor(e/3600)}h ago`:`${Math.floor(e/86400)}d ago`})]})]})}function cl(){let a=(0,bd.e)(a=>a.items),b=(0,bd.e)(a=>a.clear);return(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-1",children:[(0,d.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:"Activity"}),a.length>0&&(0,d.jsx)("button",{onClick:b,className:"text-[10px] text-muted-foreground/60 hover:text-muted-foreground transition-colors",children:"Clear"})]}),(0,d.jsx)(cj,{}),0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,d.jsx)(b7.A,{className:"mb-3 h-8 w-8 text-muted-foreground/30"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No recent activity"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/60",children:"File changes and agent events will appear here"})]}):(0,d.jsx)(D,{className:"max-h-[400px]",children:(0,d.jsx)("div",{className:"space-y-0.5",children:a.map(a=>(0,d.jsx)(ck,{type:a.type,description:a.description,timestamp:a.timestamp},a.id))})})]})}function cm(){return(0,d.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,d.jsx)("div",{className:"flex h-14 shrink-0 items-center border-b px-4",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(b7.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Activity"})]})}),(0,d.jsx)(D,{className:"flex-1",children:(0,d.jsx)("div",{className:"p-4",children:(0,d.jsx)(cl,{})})})]})}var cn=c(77745);let co={navigation:"Navigation",panels:"Panels",editing:"Editing",ai:"AI",general:"General"},cp=["navigation","panels","editing","ai","general"];function cq({shortcuts:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useCallback)(a=>{c(a)},[]),g=cp.map(b=>({category:b,label:co[b]??b,items:a.filter(a=>a.category===b)})).filter(a=>a.items.length>0);return(0,d.jsx)(ap,{open:b,onOpenChange:f,children:(0,d.jsxs)(as,{className:"sm:max-w-[480px]",children:[(0,d.jsxs)(at,{children:[(0,d.jsxs)(av,{className:"flex items-center gap-2",children:[(0,d.jsx)(an.A,{className:"h-4 w-4 text-muted-foreground"}),"Keyboard Shortcuts"]}),(0,d.jsx)(aw,{children:"Quick actions to navigate your workspace"})]}),(0,d.jsxs)("div",{className:"grid gap-5 py-2",children:[g.map(a=>(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a.label}),(0,d.jsx)("div",{className:"space-y-1",children:a.items.map(a=>(0,d.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,d.jsx)("span",{className:"text-foreground/80",children:a.label}),(0,d.jsx)(cs,{keys:a.keys})]},a.id))})]},a.category)),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Other"}),(0,d.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,d.jsx)("span",{className:"text-foreground/80",children:"Close dialog / panel"}),(0,d.jsx)(cs,{keys:"Esc"})]})]})]})]})})}let cr={"⌘":"⌘","⇧":"⇧","⌥":"⌥","⌃":"⌃",Cmd:"⌘",Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Esc:"Esc",Enter:"↵",Tab:"⇥",Backspace:"⌫",Delete:"⌦","\\":"\\"};function cs({keys:a,className:b}){let c=function(a){let b=new Set(["⌘","⇧","⌥","⌃"]),c=[],d=0;for(;d<a.length;){let e=a[d];if(b.has(e))c.push(e),d++;else if("+"===e)d++;else{c.push(a.slice(d));break}}return 0===c.length&&c.push(a),c}(a);return(0,d.jsx)("div",{className:`flex items-center gap-0.5 ${b??""}`,children:c.map((a,b)=>(0,d.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:cr[a]??a},b))})}function ct(){var a;let b,c=(0,K.M)(a=>a.toggleSidebar),f=(0,K.M)(a=>a.toggleChatPanel),{resolvedTheme:g,setTheme:h}=(0,J.D)(),i=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette"))},[]),j=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]),k=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:shortcuts-dialog"))},[]),l=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),m=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),n=(0,e.useCallback)(()=>{h("dark"===g?"light":"dark")},[g,h]),o=(0,e.useCallback)(()=>{let a=document.querySelector(".clawpad-editor [contenteditable]")??document.querySelector(".clawpad-editor .bn-editor")??document.querySelector(".clawpad-editor");a&&a.focus()},[]),p=(0,e.useMemo)(()=>{var a;return[{id:"search",label:"Search",keys:"⌘K",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"k"===a.key,action:(a={openSearch:i,newPage:j,toggleChat:f,toggleSidebar:c,save:l,saveAll:m,openShortcuts:k,toggleDarkMode:n,focusEditor:o}).openSearch},{id:"quick-switcher",label:"Quick Document Switcher",keys:"⌘P",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"p"===a.key,action:a.openSearch},{id:"new-page",label:"New Document",keys:"⌘N",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"n"===a.key,action:a.newPage},{id:"toggle-sidebar",label:"Toggle Sidebar",keys:"⌘\\",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"\\"===a.key,action:a.toggleSidebar},{id:"toggle-chat",label:"Toggle Chat",keys:"⌘⇧L",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"l"===a.key.toLowerCase(),action:a.toggleChat},{id:"focus-editor",label:"Focus Editor",keys:"⌘⇧E",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"e"===a.key.toLowerCase(),action:a.focusEditor},{id:"save",label:"Save",keys:"⌘S",category:"editing",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"s"===a.key,action:a.save},{id:"save-all",label:"Save All",keys:"⌘⇧S",category:"editing",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"s"===a.key.toLowerCase(),action:a.saveAll},...a.aiOnSelection?[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"j"===a.key,action:a.aiOnSelection}]:[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"j"===a.key,action:()=>{}}],{id:"toggle-dark-mode",label:"Toggle Dark Mode",keys:"⌘⇧D",category:"general",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"d"===a.key.toLowerCase(),action:a.toggleDarkMode},{id:"shortcuts-help",label:"Keyboard Shortcuts",keys:"⌘/",category:"general",match:a=>(a.metaKey||a.ctrlKey)&&"/"===a.key,action:a.openShortcuts}]},[i,j,f,c,l,m,k,n,o]);return a=(0,e.useMemo)(()=>p.filter(a=>["toggle-sidebar","shortcuts-help","toggle-dark-mode","focus-editor","quick-switcher","save-all"].includes(a.id)),[p]),b=(0,e.useRef)(a),(0,e.useCallback)(a=>{let c=a.target,d=!!c?.closest("input, textarea, select, [contenteditable='true']");for(let c of b.current)if(c.match(a)&&(!d||a.metaKey||a.ctrlKey)){a.preventDefault(),c.action();return}},[]),(0,d.jsx)(cq,{shortcuts:p})}function cu(){return(0,d.jsxs)("div",{className:"flex h-full w-full flex-col p-4 gap-4",children:[(0,d.jsx)(H.E,{className:"h-8 w-32"}),(0,d.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,d.jsx)(H.E,{className:"h-16 w-3/4 ml-auto"}),(0,d.jsx)(H.E,{className:"h-24 w-4/5"}),(0,d.jsx)(H.E,{className:"h-16 w-2/3 ml-auto"})]}),(0,d.jsx)(H.E,{className:"h-12 w-full"})]})}function cv({children:a}){let{isMobile:b,isTablet:c}=$(),[f,g]=(0,e.useState)("editor"),{chatPanelOpen:h,setChatPanelOpen:i,setSidebarOpen:j,hydrateAppearance:k}=(0,K.M)(),l=(0,e.useRef)(new Map),m=(0,e.useCallback)(a=>{let b=a.currentTarget;b.classList.add("is-scrolling");let c=l.current,d=c.get(b);d&&window.clearTimeout(d);let e=window.setTimeout(()=>{b.classList.remove("is-scrolling"),c.delete(b)},900);c.set(b,e)},[]),n=(0,e.useCallback)(a=>{g(a),j(!1),"chat"===a?i(!0):i(!1)},[j,i]),p=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]);return b?(0,d.jsxs)("div",{className:"flex h-[100dvh] flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex-1 overflow-hidden",children:["pages"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(ca,{onNavigate:()=>g("editor")})}),"editor"===f&&(0,d.jsx)("main",{className:"workspace-scroll-area h-full overflow-y-auto pb-14",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),"chat"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{variant:"fullscreen"})})}),"activity"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(cm,{})})]}),(0,d.jsx)(b9,{activeTab:f,onTabChange:n,onNewPage:p}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]}):c?(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,d.jsx)(aa,{}),(0,d.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),(0,d.jsx)(o,{open:h,onOpenChange:i,children:(0,d.jsxs)(r,{side:"right",className:"w-[400px] p-0",showCloseButton:!1,children:[(0,d.jsx)(_,{children:(0,d.jsx)(s,{children:"Chat"})}),(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{variant:"sheet"})})]})}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]}):(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,d.jsx)(aa,{}),(0,d.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{})}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]})}},45516:(a,b,c)=>{"use strict";c.d(b,{w:()=>g});var d=c(48249);c(67484);var e=c(859),f=c(42893);function g({className:a,orientation:b="horizontal",decorative:c=!0,...g}){return(0,d.jsx)(e.b,{"data-slot":"separator",decorative:c,orientation:b,className:(0,f.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",a),...g})}},52908:(a,b,c)=>{"use strict";function d(a){let b=a.replace(/\.md$/,"").split("/").filter(Boolean).map(a=>encodeURIComponent(a));return 0===b.length?"/workspace":`/workspace/${b.join("/")}`}c.d(b,{C:()=>d})},77745:(a,b,c)=>{"use strict";c.d(b,{L:()=>f});var d=c(48249),e=c(13656);function f(){return(0,d.jsxs)("div",{className:"mx-auto w-full max-w-[720px] px-6",children:[(0,d.jsxs)("div",{className:"pt-20 pb-4",children:[(0,d.jsx)(e.E,{className:"h-10 w-2/3 mb-3"}),(0,d.jsx)(e.E,{className:"h-4 w-1/3"})]}),(0,d.jsxs)("div",{className:"space-y-3 pt-6",children:[(0,d.jsx)(e.E,{className:"h-4 w-full"}),(0,d.jsx)(e.E,{className:"h-4 w-[92%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[78%]"}),(0,d.jsx)("div",{className:"h-3"}),(0,d.jsx)(e.E,{className:"h-4 w-full"}),(0,d.jsx)(e.E,{className:"h-4 w-[85%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[65%]"}),(0,d.jsx)("div",{className:"h-3"}),(0,d.jsx)(e.E,{className:"h-4 w-[90%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[70%]"})]})]})}},77807:(a,b,c)=>{"use strict";c.d(b,{R:()=>i});var d=c(48249),e=c(81220),f=c(42893);let g=265/235,h=1152/235;function i({variant:a="icon",size:b=24,className:c,imageClassName:i,lightImageClassName:j,darkImageClassName:k,theme:l="auto",alt:m="ClawPad",priority:n=!1}){let o="icon"===a,p=Math.round(b*(o?g:h));return(0,d.jsx)("span",{className:(0,f.cn)("inline-flex items-center",c),children:(0,d.jsx)(e.default,{src:o?"/brand/icon.png":"/brand/logo.png",width:p,height:b,alt:m,priority:n,className:(0,f.cn)("block",i,"dark"===l?k:"light"===l?j:void 0)})})}},82638:(a,b,c)=>{Promise.resolve().then(c.bind(c,43744))},84763:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/clawpad/clawpad/src/app/workspace/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/clawpad/clawpad/src/app/workspace/layout.tsx","default")},88877:(a,b,c)=>{"use strict";c.d(b,{p:()=>f});var d=c(48249);c(67484);var e=c(42893);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.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",a),...c})}},96550:(a,b,c)=>{Promise.resolve().then(c.bind(c,84763))}};
|
|
3
|
+
… truncated (${d.total} chars, showing first ${d.text.length}).`:d.text}function bF(a){let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return null;try{return JSON.stringify(JSON.parse(b),null,2)}catch{return null}}function bG(a){var b;let c,d,e=a.role??"unknown";(function(a){let b=(a.role??"").toLowerCase();if("toolresult"===b||"tool_result"===b||a.toolCallId||a.tool_call_id||a.toolName||a.tool_name)return!0;let c=Array.isArray(a.content)?a.content:null;return!!c?.some(a=>{let b=(a.type??"").toLowerCase();return"toolresult"===b||"tool_result"===b})})(a)&&(e="toolResult");let f=[];"string"==typeof a.content?f=[{type:"text",text:a.content}]:Array.isArray(a.content)?f=a.content.map(a=>({...a,type:a.type||"text",text:a.text})):"string"==typeof a.text&&(f=[{type:"text",text:a.text}]);let g=bD(a),h=!!g&&function(a,b){let c=a.trim();if(!c)return!1;if(/^HEARTBEAT_OK\b/i.test(c)||/^HEARTBEAT\b/i.test(c))return!0;let d=/^System:/i.test(c),e=/\[NETWORK\]/i.test(c),f=/\bRead HEARTBEAT\.md\b/i.test(c);return!!d&&(!!e||!!f)||"system"===(b??"").toLowerCase()}(g,e),i=h?"system":(c=((b=e)??"").toLowerCase(),"user"===b||"User"===b?"user":"assistant"===b?"assistant":"system"===b?"system":"toolresult"===c||"tool_result"===c||"tool"===c||"function"===c?"tool":"assistant");return"user"===i&&(d=!1,f=f.map(a=>{if(!d&&"text"===a.type&&"string"==typeof a.text){let b=bA(a.text);return(b!==a.text&&(d=!0),b.trim())?{...a,text:b}:null}return a}).filter(Boolean)),{role:i,content:f,timestamp:a.timestamp??Date.now(),id:a.id,channel:a.channel,sessionKey:a.sessionKey,raw:a,displayText:bC(a),toolCards:function(a){let b=[],c=Array.isArray(a.content)?a.content:[];for(let a of c)(["toolcall","tool_call","tooluse","tool_use"].includes((a.type??"").toLowerCase())||"string"==typeof a.name&&null!=a.arguments)&&b.push({kind:"call",name:a.name??"tool",args:function(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return a;try{return JSON.parse(b)}catch{return a}}(a.arguments??a.args??a.input)});for(let a of c){let c=(a.type??"").toLowerCase();if("toolresult"!==c&&"tool_result"!==c)continue;let d=a.text??a.content??void 0,e=a.name??"tool";b.push({kind:"result",name:e,text:d})}if(("toolresult"===(a.role??"").toLowerCase()||"tool_result"===(a.role??"").toLowerCase()||a.toolCallId||a.tool_call_id||a.toolName||a.tool_name)&&!b.some(a=>"result"===a.kind)){let c=a.toolName??a.tool_name??"tool",d=bC(a)??void 0;b.push({kind:"result",name:c,text:d})}return b}(a),internal:h}}let bH=[1200,3500,7500];function bI(){return new aM.rL({api:"/api/chat"})}let bJ=bI(),bK=new aL.ry({transport:bJ});function bL({variant:a="default"}){let{chatPanelOpen:b,setChatPanelOpen:c,activePage:f}=(0,K.M)(),g=(0,L.z)(a=>a.connected),i=(0,L.z)(a=>a.wsStatus),l=(0,L.z)(a=>a.reason),n=(0,L.z)(a=>a.wsError),o=(0,L.z)(a=>a.error),p=(0,L.z)(a=>a.agentStatus);(0,bf.W)(a=>a.setSessionKey),(0,bf.W)(a=>a.loadChangeSets);let[q,r]=(0,e.useState)("main"),s=(0,e.useRef)("main"),t=(0,e.useRef)(!1),[u,v]=(0,e.useState)(600),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(0),A=(0,e.useRef)(600),B="default"===a;(0,e.useCallback)(a=>Math.max(400,Math.min(a,600)),[]);let C=(0,e.useRef)(0),{history:D,loading:E,loadingMore:F,hasMore:G,loadMore:H,refetchHistory:I}=function(a,b,c){let[d,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(300),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(!1);(0,e.useRef)(null),(0,e.useRef)(0);let m=(0,e.useRef)(0),n=(0,e.useRef)(0),o=(0,e.useCallback)(async a=>{let b=c||"main",d=m.current+1;m.current=d;let e=a?.silent===!0;e||(n.current+=1,j(!0));try{let c=await fetch(`/api/gateway/history?limit=1000&sessionKey=${encodeURIComponent(b)}`,{cache:"no-store"}),e=c.ok?await c.json():{messages:[]};if(d!==m.current)return;let g=Array.isArray(e?.messages)?e.messages:[],h=a?.preserveExistingOnEmpty!==!1;f(a=>h&&0===g.length&&a.length>0?a:g)}catch{}finally{e||(n.current=Math.max(0,n.current-1),0===n.current&&j(!1))}},[c]),p=(0,e.useCallback)(a=>!a?.force&&Date.now()-b.current<5e3?Promise.resolve():o({silent:!0}),[o,b]),q=(0,e.useMemo)(()=>d.length<=g?d:d.slice(d.length-g),[d,g]),r=d.length>g,s=(0,e.useCallback)(()=>{l(!0),setTimeout(()=>{h(a=>Math.min(a+100,d.length)),l(!1)},100)},[d.length]);return{history:q,allMessages:d,loading:i,loadingMore:k,hasMore:r,loadMore:s,refetchHistory:p}}(0,C,q),[J,M]=(0,e.useState)(bK),{messages:N,sendMessage:O,addToolApprovalResponse:P,status:Q,stop:R,error:S}=(0,aL.Y_)({chat:J}),T=(0,e.useRef)(null),U=(0,e.useRef)(null),V=(0,e.useRef)(null),W=(0,e.useRef)(null),X=(0,e.useRef)(null),Y=(0,e.useRef)(null),Z=(0,e.useRef)(null),$="streaming"===Q||"submitted"===Q;(0,e.useRef)(null);let[_,aa]=(0,e.useState)(null),[ab,ac]=(0,e.useState)(!0),[ae,ag]=(0,e.useState)([]),[ah,ai]=(0,e.useState)(!1),[aj,ak]=(0,e.useState)(""),[al,am]=(0,e.useState)([]),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)(0),[ar,as]=(0,e.useState)([]),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(""),[ax,ay]=(0,e.useState)([]),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)(0),aD="connected"!==i,[aE,aF]=(0,e.useState)(!1),aG=aE&&!1,aH=(0,be.b)(a=>a.events),aI=(0,be.b)(a=>a.lastEvent),aJ=(0,bd.e)(a=>a.items),[aK,aM]=(0,e.useState)(null);(0,e.useRef)(null),(0,e.useRef)(0),(0,e.useRef)(0);let[aX,aY]=(0,e.useState)(()=>Date.now()),aZ=(0,e.useMemo)(()=>{let a=[...N].reverse().find(a=>"assistant"===a.role);return!!a&&bX(a.parts??[]).filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n").trim().trim().length>0},[N]),a$=(0,e.useMemo)(()=>{let a=aJ.find(a=>"tool-used"===a.type||"sub-agent"===a.type);return a?.timestamp??null},[aJ]);(0,e.useMemo)(()=>{if("reconnecting"===i)return{kind:"background",label:"Reconnecting...",detail:n||"Trying to restore the gateway stream"};if("connecting"===i)return{kind:"background",label:"Connecting...",detail:n||"Connecting to the gateway"};if("disconnected"===i)return{kind:"alert",label:"server_unreachable"===l?"ClawPad server unreachable":"Gateway unavailable",detail:n||o||("server_unreachable"===l?"ClawPad is not reachable from this browser.":"OpenClaw gateway is not reachable."),tone:"warn"};let a=aI&&("alert"===aI.indicatorType||"error"===aI.indicatorType)&&!aI.silent?aI:null;if(a){let b=bx(a);return{kind:"alert",label:"error"===a.indicatorType?"Background error":"Background alert",detail:b||void 0,tone:"error"===a.indicatorType?"error":"warn"}}return"submitted"===Q?{kind:"thinking",label:"Thinking..."}:"streaming"===Q?aZ?{kind:"writing",label:"Writing response..."}:{kind:"thinking",label:"Thinking..."}:"thinking"===p?{kind:"thinking",label:"Thinking..."}:"active"===p&&"number"==typeof a$&&aX-a$<=15e3?{kind:"background",label:"Working on a background task..."}:null},[p,o,l,aZ,aI,a$,Q,aX,n,i]);let a_=(0,e.useCallback)(()=>{let a={};ab&&_&&(a.activePage=_);let b=ae.filter(b=>!a.activePage||b.path!==a.activePage.path);return b.length>0?(a.attachedPages=b,a.scope="custom"):a.activePage&&(a.scope="current"),Object.keys(a).length>0?a:null},[_,ae,ab]),a0=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=b.slice(0,c),e=d.lastIndexOf("@");if(-1===e){ai(!1),ak(""),W.current=null;return}let f=d[e-1],g=!f||/[\s([{]/.test(f),h=d.slice(e+1);if(!g||/\s/.test(h)){ai(!1),ak(""),W.current=null;return}W.current={start:e,end:c},ak(h),ai(!0),au(!1),aw(""),Y.current=null},[]),a1=(0,e.useCallback)(async()=>{if(!az&&!(ax.length>0)){aA(!0);try{let a=await fetch("/api/openclaw/commands"),b=a.ok?await a.json():null,c=Array.isArray(b?.commands)?b.commands.filter(a=>!!(a&&"string"==typeof a.name)).map(a=>({name:a.name,description:a.description??"",disabled:a.disabled})):[];ay(c),aC(0)}catch{ay([])}finally{aA(!1)}}},[ax.length,az]),a2=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=b.slice(0,c),e=d.lastIndexOf("/");if(-1===e){au(!1),aw(""),Y.current=null;return}let f=d[e-1],g=!f||/[\s([{]/.test(f),h=d.slice(e+1);if(!g||/\s/.test(h)){au(!1),aw(""),Y.current=null;return}Y.current={start:e,end:c},aw(h),au(!0),ai(!1),ak(""),W.current=null,a1()},[a1]),a3=(0,e.useCallback)(a=>{let b=U.current,c=Y.current;if(!b||!c)return;let d=b.value,e=d.slice(0,c.start),f=d.slice(c.end),g=`/${a}`,h=f.startsWith(" ")?"":" ",i=`${e}${g}${h}${f}`,j=e.length+g.length+h.length;b.value=i,b.setSelectionRange(j,j),b.focus(),au(!1),aw(""),Y.current=null,requestAnimationFrame(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`)})},[]),a4=(0,e.useCallback)(a=>{let b=U.current,c=W.current;if(!b||!c)return;let d=b.value,e=d.slice(0,c.start),f=d.slice(c.end),g=`@${a.title}`,h=f.startsWith(" ")?"":" ",i=`${e}${g}${h}${f}`,j=e.length+g.length+h.length;b.value=i,b.setSelectionRange(j,j),b.focus(),ag(b=>b.some(b=>b.path===a.path)?b:[...b,a]),ai(!1),ak(""),W.current=null,requestAnimationFrame(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`)})},[]),a5=(0,e.useCallback)(()=>{let a=U.current;if(!a)return;let b=a.value,c=a.selectionStart??b.length,d=a.selectionEnd??c;a.value=`${b.slice(0,c)}@${b.slice(d)}`;let e=c+1;a.setSelectionRange(e,e),a.focus(),a0()},[a0]),[a6,a7]=(0,e.useState)([]),a8=(0,e.useRef)(null),a9=(0,e.useRef)([]);(0,e.useRef)(null);let bc=(0,e.useRef)(null),bg=(0,e.useRef)(""),bh=(0,e.useRef)(new Map),bi=(0,e.useRef)([]),bj=(0,e.useRef)(null),bk=(0,e.useRef)(null),[bl,bn]=(0,e.useState)([]),bo=(0,e.useCallback)(()=>{bn(bi.current.map(a=>bh.current.get(a)).filter(a=>!!a))},[]),bq=(0,e.useCallback)((a=!1)=>{if(a){bj.current&&(clearTimeout(bj.current),bj.current=null),bo();return}bj.current||(bj.current=setTimeout(()=>{bj.current=null,bo()},80))},[bo]),bs=(0,e.useCallback)(()=>{bh.current.clear(),bi.current=[],bk.current=null,bj.current&&(clearTimeout(bj.current),bj.current=null),bn([])},[]),bt=(0,e.useRef)(!0);(0,e.useRef)(0);let[bu,bw]=(0,e.useState)(0),by=(0,e.useCallback)((a="smooth")=>{let b=T.current;if(!b)return;let c=b.scrollHeight-b.clientHeight;b.scrollTo({top:c>0?c:0,behavior:a})},[]),bz=(0,e.useCallback)(()=>{let a=T.current;!a||(bt.current=a.scrollHeight-a.scrollTop-a.clientHeight<100,bt.current&&bw(0))},[]);(0,e.useCallback)(a=>{if("tool"!==a.stream)return;let b="string"==typeof a.sessionKey?a.sessionKey:void 0,c=s.current||"main";if(t.current&&b&&b!==c)return;let d="string"==typeof a.runId?a.runId:"unknown",e=a.data??{},f="string"==typeof e.toolCallId?e.toolCallId:"";if(!f)return;let g="string"==typeof e.name?e.name:"tool",h="string"==typeof e.phase?e.phase:"unknown",i="start"===h||"update"===h||"result"===h||"error"===h?h:"unknown",j="start"===i?e.args:void 0,k="update"===i?bE(e.partialResult):"result"===i?bE(e.result):"error"===i?bE(e.error??e.result):void 0,l=Date.now();bk.current&&bk.current!==d&&"start"===i&&bs(),bk.current=d;let m=bh.current.get(f);if(m?(m.name=g,m.phase=i,void 0!==j&&(m.args=j),void 0!==k&&(m.output=k),m.updatedAt=l):(m={toolCallId:f,runId:d,sessionKey:b,name:g,args:j,output:k,phase:i,startedAt:"number"==typeof a.ts?a.ts:l,updatedAt:l},bh.current.set(f,m),bi.current.push(f)),bi.current.length>50){let a=bi.current.length-50;for(let b of bi.current.splice(0,a))bh.current.delete(b)}bq("result"===i||"error"===i)},[bs,bq]);let bA=(0,e.useMemo)(()=>{let a=[];for(let b of D){let c=bG(b);if(!c.internal)continue;let d=(c.displayText?.trim()??"").replace(/^System:\s*/i,"").trim();if(!d)continue;let{kind:e,tone:f}=function(a){let b=a.toLowerCase(),c=b.startsWith("heartbeat")||b.includes("heartbeat_ok")||b.includes("heartbeat"),d=/error|failed|denied|blocked|timeout|unavailable/i.test(b),e=/\[network\]|warning|alert/i.test(b);return d?{kind:"alert",tone:"error"}:e?{kind:"alert",tone:"warn"}:c?{kind:"heartbeat"}:{kind:"system"}}(d);a.push({id:`sys-${c.timestamp}-${a.length}`,kind:e,tone:f,text:d,timestamp:c.timestamp,source:"system"})}return a},[D]),bC=(0,e.useMemo)(()=>{let a=[];return aH.forEach((b,c)=>{let d=bx(b);if(!d)return;let e="alert"===b.indicatorType||"error"===b.indicatorType;a.push({id:`hb-${b.ts}-${c}`,kind:e?"alert":"heartbeat",tone:"error"===b.indicatorType?"error":e?"warn":void 0,text:d,timestamp:b.ts,source:"heartbeat"})}),a},[aH]),bF=(0,e.useMemo)(()=>{let a=[...bA,...bC].sort((a,b)=>b.timestamp-a.timestamp),b=new Set,c=[];for(let d of a){let a=`${d.source}-${d.timestamp}-${d.text}`;b.has(a)||(b.add(a),c.push(d))}return c},[bA,bC]),bJ=(0,e.useMemo)(()=>{var a=function(a,b,c,d,e,f){let g=[],h=new Map;for(let c=0;c<a.length;c+=1){let d=a[c];h.set(d,c);let e=bG(d);!e.internal&&(b||"tool"!==e.role)&&g.push({kind:"message",normalized:e})}for(let b of c){let c=bB(b.text),d=(b.images?.length??0)>0;g.some(e=>{var f,g;if("message"!==e.kind)return!1;let i=e.normalized;if(i.role!==b.role||d&&!(Array.isArray((f=i.raw).content)&&f.content.some(a=>{let b=(a.type??"").toLowerCase();return"input_image"===b||"image"===b})))return!1;let j=bD(i.raw),k=j?function(a){if(!a.includes("[message_id:"))return null;for(let b of a.split(/\r?\n/)){let a=b.match(bv);if(a)return(a[1]??"").trim()||null}return null}(j):null;if(k&&k===b.id)return!0;let l=bB(i.displayText);if(!l||!c||l!==c)return!1;let m="number"==typeof(g=i.raw.timestamp)&&Number.isFinite(g)?g<1e12?1e3*g:g:null;if(null!==m){let a=3e5>Math.abs(m-b.timestamp),c=m>=b.timestamp-5e3;return a&&c}let n=h.get(i.raw);return"number"==typeof n&&n>=a.length-5})||g.push({kind:"optimistic",message:b})}if(b)for(let a of d)g.push({kind:"tool-stream",entry:a});if(f&&e.length>0){let a=e[e.length-1];"assistant"===a.role&&g.push({kind:"stream",message:a,isStreaming:f})}return g}(D,aE,a6,bl,N,$);let b=[],c=null;for(let d of a)if("message"===d.kind)c&&c.role===d.normalized.role?c.messages.push(d.normalized):(c&&b.push(c),c={kind:"group",role:d.normalized.role,messages:[d.normalized],timestamp:d.normalized.timestamp});else if(c&&(b.push(c),c=null),"optimistic"===d.kind)b.push({kind:"optimistic-group",messages:[d.message]});else if("tool-stream"===d.kind){let a=b[b.length-1];a&&"tool-stream-group"===a.kind?a.entries.push(d.entry):b.push({kind:"tool-stream-group",entries:[d.entry]})}else"stream"===d.kind?b.push({kind:"stream-group",message:d.message,isStreaming:d.isStreaming}):"indicator"===d.kind&&b.push({kind:"indicator-group",status:d.status});return c&&b.push(c),b},[D,aE,a6,bl,N,$]),bL=bJ.length>0||aE&&bF.length>0;(0,e.useRef)(!1);let bP=(0,e.useRef)(null),bS=(0,e.useCallback)(()=>{let a=T.current;a&&(bP.current={prevScrollHeight:a.scrollHeight,prevScrollTop:a.scrollTop}),H()},[H]),[bT,bU]=(0,e.useState)([]),[bV,bZ]=(0,e.useState)({}),[b$,b_]=(0,e.useState)(!1),b0=(0,e.useCallback)(async a=>{let b=await br(a);b.length>0&&(bU(a=>[...a,...b]),U.current?.focus())},[]),b1=(0,e.useCallback)(a=>{bU(b=>b.filter(b=>b.id!==a))},[]),b2=(0,e.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind&&bp.includes(a.type)){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),b0(c))},[b0]),b3=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),a.dataTransfer?.types.includes("Files")&&b_(!0)},[]),b4=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation();let b=a.currentTarget.getBoundingClientRect(),{clientX:c,clientY:d}=a;(c<=b.left||c>=b.right||d<=b.top||d>=b.bottom)&&b_(!1)},[]),b5=(0,e.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),b_(!1);let b=Array.from(a.dataTransfer?.files??[]).filter(a=>bp.includes(a.type));b.length>0&&b0(b)},[b0]),b6=(0,e.useCallback)(a=>{let b=Array.from(a.target.files??[]);b.length>0&&b0(b),a.target.value=""},[b0]),b7=(0,e.useCallback)(()=>{M(new aL.ry({transport:bI()})),bU([]),ag([]),ac(!0),ai(!1),ak(""),W.current=null,a7([]),bZ({}),bs(),a8.current=null,U.current&&(U.current.value="",U.current.style.height="auto",U.current.focus())},[bs]),b8=(0,e.useCallback)(async(a,b)=>{if(aD)return;let c=bT.length>0;if(!a.trim()&&!c)return;let d=a.trim()||(c?"What's in this image?":"");if(!d)return;bs();let e=b?.messageId?.trim()||crypto.randomUUID(),f=bT.map(a=>a.dataUrl),g={id:e,role:"user",text:d,images:f.length>0?f:void 0,timestamp:Date.now(),status:"sending"};a7(a=>[...a,g]),f.length>0&&bZ(a=>({...a,[e]:f})),a8.current=e,C.current=Date.now(),bU([]),U.current&&(U.current.value="",U.current.style.height="auto"),ai(!1),ak(""),W.current=null;let h=a_();for(let a of bH)window.setTimeout(()=>{I({force:!0})},a);try{await O({text:d},{body:{sessionKey:s.current||"main",pageContext:h?.activePage?.path??void 0,context:h??void 0,images:f.length>0?f:void 0}}),setTimeout(()=>{a7(a=>a.map(a=>a.id===e&&"sending"===a.status?{...a,status:"sent"}:a))},2e3)}catch(a){console.error("[chat] sendMessage error:",a),b?.messageId&&(a9.current=a9.current.filter(a=>a!==b.messageId),bc.current===b.messageId&&(bc.current=null,bg.current="")),a7(a=>a.map(a=>a.id===e?{...a,status:"error"}:a))}},[aD,O,bT,a_,I,bs]),b9=(0,e.useCallback)(async()=>{R();try{await fetch("/api/chat/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionKey:q})})}catch{}},[q,R]),ca=(0,e.useCallback)(a=>{a7(b=>b.filter(b=>b.id!==a.id)),a.images&&a.images.length>0?(bU(a.images.map((a,b)=>({id:crypto.randomUUID(),dataUrl:a,name:`image-${b}`}))),setTimeout(()=>{b8(a.text)},0)):b8(a.text)},[b8]),cb=(0,e.useCallback)(a=>{a.preventDefault(),!aD&&U.current&&b8(U.current.value)},[aD,b8]),cc=(0,e.useCallback)(a=>{if(at){let b=av.trim().toLowerCase(),c=0===b.length?ax:ax.filter(a=>a.name.toLowerCase().includes(b)),d=c.length>0?c:ax.slice(0,12);if("ArrowDown"===a.key){a.preventDefault(),aC(a=>0===d.length?0:(a+1)%d.length);return}if("ArrowUp"===a.key){a.preventDefault(),aC(a=>0===d.length?0:(a-1+d.length)%d.length);return}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=d[aB]??d[0];b?a3(b.name):(au(!1),aw(""),Y.current=null);return}if("Escape"===a.key){a.preventDefault(),au(!1),aw(""),Y.current=null;return}}if(ah){let b=aj.trim()||al.length>0?al:ar;if("ArrowDown"===a.key){a.preventDefault(),aq(a=>0===b.length?0:(a+1)%b.length);return}if("ArrowUp"===a.key){a.preventDefault(),aq(a=>0===b.length?0:(a-1+b.length)%b.length);return}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let c=b[ap]??b[0];if(c)a4(c);else{ai(!1),ak(""),W.current=null;let b=a.target.value;(b||bT.length>0)&&b8(b||"")}return}if("Escape"===a.key){a.preventDefault(),ai(!1),ak(""),W.current=null;return}}if("Enter"===a.key&&!a.shiftKey){a.preventDefault();let b=a.target.value;(b||bT.length>0)&&b8(b||"")}},[bT.length,a4,a3,b8,ap,ah,aj,al,ar,ax,aB,at,av]),cd=(0,e.useCallback)(()=>{let a=U.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,150)}px`,a2(),a0())},[a0,a2]),ce=_?.title??(f?f.split("/").pop()?.replace(/\.md$/,"").replace(/-/g," ")??null:null),cf="fullscreen"===a,cg=(0,e.useMemo)(()=>{let a=[];for(let b of(ab&&_&&a.push({key:`current-${_.path}`,page:_,kind:"current"}),ae))a.some(a=>a.page.path===b.path)||a.push({key:`attached-${b.path}`,page:b,kind:"attached"});return a},[_,ae,ab]),ch=aj.trim()||al.length>0?al:ar,ci=ax.filter(a=>!!(a&&"string"==typeof a.name)),cj=av.trim().toLowerCase(),ck=0===cj.length?ci:ci.filter(a=>a.name.toLowerCase().includes(cj)),cl=ck.length>0?ck.slice(0,12):ci.slice(0,12),cm=(0,e.useCallback)(a=>{B&&(a.preventDefault(),y.current=a.clientX,A.current=u,x(!0))},[B,u]);return(0,d.jsxs)("div",{onDragOver:b3,onDragLeave:b4,onDrop:b5,className:(0,j.cn)("relative flex flex-col bg-background","default"===a&&!b&&"hidden","default"===a&&"h-full shrink-0 border-l","sheet"===a&&"h-full w-full",cf&&"h-full w-full"),style:"default"===a?{width:u,minWidth:400,maxWidth:"40vw"}:void 0,children:[B&&(0,d.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize chat panel",onPointerDown:cm,className:(0,j.cn)("absolute left-0 top-0 z-20 h-full w-2 cursor-col-resize","group"),children:(0,d.jsx)("div",{className:(0,j.cn)("absolute inset-y-0 left-0 w-px bg-border/70","transition-colors group-hover:bg-[color:var(--cp-brand-2)]",w&&"bg-[color:var(--cp-brand-2)]")})}),b$&&(0,d.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,d.jsxs)("div",{className:"flex flex-col items-center gap-2 text-blue-600 dark:text-blue-400",children:[(0,d.jsx)(aN.A,{className:"h-8 w-8"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Drop image here"})]})}),(0,d.jsxs)("div",{className:(0,j.cn)("flex shrink-0 items-center justify-between border-b px-4",cf?"h-14":"h-12"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)(af.A,{className:"h-4 w-4 shrink-0 text-[color:var(--cp-brand-2)]"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Chat"}),(0,d.jsx)(bM,{connected:g,wsStatus:i,agentStatus:p})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:(0,j.cn)("h-8 w-8 text-muted-foreground hover:text-foreground",aE&&"text-[color:var(--cp-brand-2)] hover:text-[color:var(--cp-brand-2)]"),onClick:()=>aF(!aE),title:aE?"Hide details":"Show details","aria-pressed":aE,"aria-label":aE?"Hide details":"Show details",children:aE?(0,d.jsx)(aO.A,{className:"h-4 w-4"}):(0,d.jsx)(aP.A,{className:"h-4 w-4"})}),(0,d.jsx)(k.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",onClick:b7,title:"New chat",children:(0,d.jsx)(aQ.A,{className:"h-4 w-4"})})]})]}),aD&&(0,d.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"===i?"Reconnecting to OpenClaw gateway…":"server_unreachable"===l?"ClawPad server is unreachable from this browser.":"OpenClaw gateway is unavailable. Start or restart the gateway to resume chat."}),(0,d.jsx)("div",{ref:T,onScroll:bz,className:"flex-1 min-h-0 min-w-0 overflow-y-auto",children:(0,d.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:[!bL&&!E&&(0,d.jsx)(bN,{pageTitle:ce}),E&&(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 py-8 text-muted-foreground",children:[(0,d.jsx)(aR.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{className:"text-xs",children:"Loading history…"})]}),G&&!E&&(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsxs)("button",{onClick:bS,disabled:F,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:[F?(0,d.jsx)(aR.A,{className:"h-3 w-3 animate-spin"}):(0,d.jsx)(ad.A,{className:"h-3 w-3"}),"Load earlier messages"]})}),aE&&bF.length>0&&(0,d.jsx)(bO,{events:bF}),bJ.map((a,b)=>{if("group"===a.kind)return(0,d.jsx)(bR,{group:a,showReasoning:aG,showTools:aE},`g-${b}-${a.timestamp}`);if("optimistic-group"===a.kind)return a.messages.map(a=>(0,d.jsx)(bW,{message:a,images:bV[a.id],onRetry:ca},a.id));if("tool-stream-group"===a.kind){let c=a.entries[a.entries.length-1],e=c?`tool-batch-${c.toolCallId}-${c.updatedAt}`:`tool-batch-${b}`;return(0,d.jsx)(bQ,{entries:a.entries},e)}return"stream-group"===a.kind?(0,d.jsx)(bY,{message:a.message,isLatest:!0,isStreaming:a.isStreaming,showThinking:aE,onToolApprove:a=>P({id:a,approved:!0}),onToolDeny:a=>P({id:a,approved:!1,reason:"Denied by user"})},`stream-${a.message.id}`):null}),S&&!a6.some(a=>"error"===a.status)&&(0,d.jsxs)(ba.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,d.jsx)(aS.A,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium",children:"Something went wrong"}),(0,d.jsx)("p",{className:"text-xs opacity-80 mt-0.5",children:S.message.includes("API key")?"No API key configured. Check your environment settings.":S.message})]})]})]})}),(0,d.jsx)(bb.N,{children:bu>0&&(0,d.jsxs)(ba.P.button,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},onClick:()=>{by("smooth"),bw(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,d.jsx)(aT.A,{className:"h-3 w-3"}),bu," new message",1!==bu?"s":""]})}),!bL&&ce&&(0,d.jsx)("div",{className:"border-t px-4 py-2",children:(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:"Viewing:"}),(0,d.jsx)("span",{className:"font-medium capitalize text-foreground",children:ce})]})}),(0,d.jsxs)("div",{className:(0,j.cn)("shrink-0 border-t p-4",cf&&"pb-[calc(0.75rem+env(safe-area-inset-bottom,0px))]",cf&&"sticky bottom-0 bg-background"),children:[(0,d.jsx)(bm,{status:aK}),bT.length>0&&(0,d.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:bT.map(a=>(0,d.jsxs)("div",{className:"group relative",children:[(0,d.jsx)("img",{src:a.dataUrl,alt:a.name,className:"h-16 w-16 rounded-lg border object-cover"}),(0,d.jsx)("button",{type:"button",onClick:()=>b1(a.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,d.jsx)(m.A,{className:"h-3 w-3"})}),(0,d.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:a.name})]},a.id))}),(0,d.jsxs)("form",{onSubmit:cb,className:"w-full",children:[(0,d.jsx)("input",{ref:V,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,className:"hidden",onChange:b6}),(0,d.jsxs)("div",{className:(0,j.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)]",cf&&"min-h-[64px]"),ref:X,children:[(cg.length>0||_&&!ab)&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px]",children:[(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",className:(0,j.cn)("h-7 w-7 rounded-full text-muted-foreground/70 hover:text-foreground hover:bg-muted/60",ah&&"bg-muted/60 text-foreground"),onClick:a5,title:"Mention a page","aria-label":"Mention a page",disabled:$||aD,children:(0,d.jsx)(aU.A,{className:"h-4 w-4"})}),cg.map(a=>(0,d.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"===a.kind?(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}):(0,d.jsx)(aU.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,d.jsx)("span",{className:"max-w-[180px] truncate text-foreground/80",children:a.page.title}),(0,d.jsx)("button",{type:"button",onClick:()=>{"current"===a.kind?ac(!1):ag(b=>b.filter(b=>b.path!==a.page.path))},className:"ml-0.5 rounded-full p-0.5 text-muted-foreground/60 hover:text-foreground","aria-label":"Remove context",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})})]},a.key)),!ab&&_&&(0,d.jsx)("button",{type:"button",onClick:()=>ac(!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"})]}),ah&&(0,d.jsxs)("div",{className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:a=>a.preventDefault(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:aj.trim()?"Pages":"Recent pages"}),an&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Searching…"})]}),(0,d.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!an&&0===ch.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:aj.trim()?"No matching pages":"No recent pages"}),ch.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>a4(a),className:(0,j.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",b===ap?"bg-muted/60":"hover:bg-muted/40"),children:[(0,d.jsx)(z.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-foreground",children:a.title}),(0,d.jsx)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:a.path})]})]},a.path))]})]}),at&&(0,d.jsxs)("div",{ref:Z,className:"absolute bottom-full left-0 right-0 mb-2 rounded-xl border bg-popover shadow-lg",onMouseDown:a=>a.preventDefault(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground/60",children:"OpenClaw commands"}),az&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"Loading…"})]}),(0,d.jsxs)("div",{className:"max-h-56 overflow-y-auto pb-1",children:[!az&&0===cl.length&&(0,d.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No commands available"}),cl.map((a,b)=>(0,d.jsxs)("button",{type:"button",onClick:()=>a3(a.name),className:(0,j.cn)("flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors",b===aB?"bg-muted/60":"hover:bg-muted/40",a.disabled&&"opacity-60"),children:[(0,d.jsx)(aV.A,{className:"mt-0.5 h-4 w-4 text-muted-foreground/70"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-foreground",children:a.name}),(0,d.jsxs)("div",{className:"truncate text-[11px] text-muted-foreground/70",children:["/",a.name," — ",a.description]})]})]},a.name))]})]}),(0,d.jsx)("textarea",{ref:U,onKeyDown:cc,onPaste:b2,onInput:cd,placeholder:bT.length>0?"Add a message or send…":"Ask your agent…",rows:cf?1:2,className:(0,j.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]",cf&&"text-base"),disabled:$}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsx)(k.$,{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:()=>V.current?.click(),title:"Attach image","aria-label":"Attach image",disabled:$||aD,children:(0,d.jsx)(h.A,{className:"h-4 w-4"})})}),$?(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",onClick:b9,className:"h-9 w-9 rounded-full bg-white text-black shadow-sm hover:bg-white/90","aria-label":"Stop generation",children:(0,d.jsx)("span",{className:"h-3.5 w-3.5 rounded-sm bg-black"})}):(0,d.jsx)(k.$,{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:aD,children:(0,d.jsx)(aW.A,{className:"h-4 w-4"})})]})]})]})]})]})}function bM({connected:a,wsStatus:b,agentStatus:c}){let e="connecting"===b||"reconnecting"===b,f=a?"active"===c||"thinking"===c?"bg-violet-400":"bg-green-500":e?"bg-amber-400":"bg-zinc-300 dark:bg-zinc-600";return(0,d.jsxs)("span",{className:"relative flex h-2 w-2",title:a?c:e?b:"disconnected",children:[(e||a&&("active"===c||"thinking"===c))&&(0,d.jsx)("span",{className:(0,j.cn)("absolute inline-flex h-full w-full rounded-full opacity-75 animate-ping",f)}),(0,d.jsx)("span",{className:(0,j.cn)("relative inline-flex h-2 w-2 rounded-full",f)})]})}function bN({pageTitle:a}){return(0,d.jsx)("div",{className:"flex flex-1 items-center justify-center py-16",children:(0,d.jsxs)("div",{className:"space-y-3 text-center",children:[(0,d.jsx)(af.A,{className:"mx-auto h-8 w-8 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Chat with your OpenClaw agent"}),a&&(0,d.jsxs)("p",{className:"text-xs text-muted-foreground/60",children:["Viewing:"," ",(0,d.jsx)("span",{className:"capitalize font-medium",children:a})]})]})]})})}let bO=(0,e.memo)(function({events:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(null),h=a.filter(a=>"alert"===a.kind).length;return(0,d.jsxs)("div",{className:"rounded-xl border border-border/60 bg-muted/20",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>c(a=>!a),className:(0,j.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":b,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(aX.A,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),(0,d.jsx)("span",{className:"font-medium text-foreground/80",children:"System events"}),(0,d.jsx)("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[10px] text-muted-foreground",children:a.length}),h>0&&(0,d.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:[h," alert",1!==h?"s":""]})]}),(0,d.jsx)(aY.A,{className:(0,j.cn)("h-4 w-4 transition-transform",b?"rotate-180":"rotate-0")})]}),b&&(0,d.jsx)("div",{className:"border-t border-border/50",children:a.map(a=>{let b=f===a.id,c=a.text.length>140,e=c?`${a.text.slice(0,137)}…`:a.text;return(0,d.jsx)("div",{className:"border-t border-border/40 first:border-t-0",children:(0,d.jsxs)("button",{type:"button",onClick:()=>{c&&g(b=>b===a.id?null:a.id)},className:"flex w-full items-start gap-3 px-3 py-2 text-left",children:[(0,d.jsx)(bP,{kind:a.kind,tone:a.tone}),(0,d.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground/70",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),(0,d.jsx)("div",{className:"text-xs text-foreground/80 whitespace-pre-wrap",children:b?a.text:e})]}),c&&(0,d.jsx)(y.A,{className:(0,j.cn)("mt-1 h-3.5 w-3.5 text-muted-foreground/60 transition-transform",b&&"rotate-90")})]})},a.id)})})]})});function bP({kind:a,tone:b}){let c=(0,j.cn)("shrink-0 rounded-full border px-2 py-0.5 text-[10px] font-medium","system"===a&&"border-border/60 bg-muted/40 text-muted-foreground","heartbeat"===a&&"border-blue-500/30 bg-[color:var(--cp-status-heartbeat-bg)] text-[color:var(--cp-status-heartbeat-text)]","alert"===a&&("error"===b?"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,d.jsx)("span",{className:c,children:"system"===a?"System":"heartbeat"===a?"Heartbeat":"Alert"})}let bQ=(0,e.memo)(function({entries:a}){return(0,d.jsx)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%]",children:a.map(a=>(0,d.jsx)(b_,{entry:a},`${a.toolCallId}-${a.updatedAt}`))})}),bR=(0,e.memo)(function({group:a,showReasoning:b,showTools:c}){return"user"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.messages.map((a,b)=>(0,d.jsx)(bS,{message:a},a.id??`u-${b}`))}):"assistant"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1 items-start",children:a.messages.map((a,e)=>(0,d.jsx)(bT,{message:a,showReasoning:b,showTools:c},a.id??`a-${e}`))}):"tool"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1",children:a.messages.map((a,b)=>(0,d.jsx)(bU,{message:a},a.id??`t-${b}`))}):"system"===a.role?(0,d.jsx)("div",{className:"flex flex-col gap-1",children:a.messages.map((a,b)=>{let c=a.displayText;return c?(0,d.jsx)("div",{className:"text-center text-xs text-muted-foreground/60 italic py-1",children:c},a.id??`s-${b}`):null})}):null}),bS=(0,e.memo)(function({message:a}){let b=a.displayText,[c,f]=(0,e.useState)(null),g=(0,e.useMemo)(()=>{let b=[];for(let c of a.content)if("input_image"===c.type||"image"===c.type){let a,d=c.source;if(d?.type==="base64"&&"string"==typeof d.data){let b=d.data,c=d.media_type||"image/png";a=b.startsWith("data:")?b:`data:${c};base64,${b}`}else a=c.image_url??c.url??("string"==typeof d?.url?d.url:void 0);a&&b.push(a)}return b},[a.content]);if((!b||b.trim().length<1)&&0===g.length)return null;let h=a.timestamp?new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[c&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>f(null),children:[(0,d.jsx)("img",{src:c,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>f(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 pr-4",children:[(0,d.jsx)(bo,{channel:a.channel,sessionKey:a.sessionKey}),h&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:h})]}),(0,d.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[g.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:g.map((a,b)=>(0,d.jsx)("img",{src:a,alt:`Attached image ${b+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:()=>f(a)},b))}),b&&b.trim().length>0&&(0,d.jsx)("div",{className:"cp-user-bubble rounded-2xl px-4 py-2 text-sm leading-relaxed break-words overflow-hidden",children:b})]})]})}),bT=(0,e.memo)(function({message:a,showReasoning:b,showTools:c}){let e=a.displayText?.trim()||null,f=c?a.toolCards:[],g=f.length>0,h=b?function(a){let b=a.content,c=[];if(Array.isArray(b)){for(let a of b)if("thinking"===a.type&&"string"==typeof a.thinking){let b=a.thinking.trim();b&&c.push(b)}}if(c.length>0)return c.join("\n");let d=bD(a);if(!d)return null;let e=[...d.matchAll(/<\s*think(?:ing)?\s*>([\s\S]*?)<\s*\/\s*think(?:ing)?\s*>/gi)].map(a=>(a[1]??"").trim()).filter(Boolean);return e.length>0?e.join("\n"):null}(a.raw):null,i=h?function(a){let b=a.trim();if(!b)return"";let c=b.split(/\r?\n/).map(a=>a.trim()).filter(Boolean).map(a=>`_${a}_`);return c.length?["_Reasoning:_",...c].join("\n"):""}(h):null,j=a.timestamp?new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):null;return e||g?(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-start max-w-[95%] min-w-0",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(bo,{channel:a.channel,sessionKey:a.sessionKey}),j&&(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:j})]}),e&&(0,d.jsx)("div",{className:"min-w-0 text-sm leading-relaxed opacity-90",children:(0,d.jsx)(b$,{text:e})}),i&&(0,d.jsx)("div",{className:"min-w-0 text-xs text-muted-foreground",children:(0,d.jsx)(b$,{text:i})}),g&&f.map((a,b)=>(0,d.jsx)(bV,{card:a},`tc-${b}`))]}):null}),bU=(0,e.memo)(function({message:a}){let b=a.toolCards;return 0===b.length?null:(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:b.map((a,b)=>(0,d.jsx)(bV,{card:a},`tr-${b}`))})}),bV=(0,e.memo)(function({card:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useId)(),g=(0,bc.I)(),h=b1(a.name),i=h.icon,k=b3(a.text)??a.text??"",l=!!k.trim(),m=b2(a.args);return(0,d.jsxs)("div",{className:"my-0 max-w-full",children:[(0,d.jsxs)("button",{type:"button",onClick:l?()=>c(!b):void 0,className:(0,j.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",l&&"hover:bg-muted/30 cursor-pointer",!l&&"cursor-default",b&&"bg-muted/40 text-foreground"),"aria-expanded":l?b:void 0,"aria-controls":l?f:void 0,children:[(0,d.jsx)("span",{className:(0,j.cn)("flex h-3.5 w-3.5 items-center justify-center",l?"text-muted-foreground/50 group-hover:text-muted-foreground":"opacity-0"),"aria-hidden":"true",children:l&&b?(0,d.jsx)(aY.A,{className:"h-3 w-3"}):(0,d.jsx)(y.A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground",children:(0,d.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,d.jsxs)("span",{className:"min-w-0 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"font-medium text-foreground/75 group-hover:text-foreground",children:h.label}),m&&(0,d.jsx)("span",{className:"truncate max-w-[220px] text-[10px] font-mono text-muted-foreground/60 group-hover:text-muted-foreground",children:m})]}),(0,d.jsx)("span",{className:"ml-auto flex items-center gap-1 text-muted-foreground/50",children:"result"===a.kind&&!l&&(0,d.jsx)(aZ.A,{className:"h-3 w-3"})})]}),(0,d.jsx)(bb.N,{initial:!1,children:l&&b&&(0,d.jsx)(ba.P.div,{id:f,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!g},className:"overflow-hidden",children:(0,d.jsx)("div",{className:"pt-1 pl-6",children:(0,d.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:k})})})})]})}),bW=(0,e.memo)(function({message:a,images:b,onRetry:c}){let[f,g]=(0,e.useState)(null),h=new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 items-end",children:[f&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>g(null),children:[(0,d.jsx)("img",{src:f,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>g(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,d.jsx)("span",{className:"text-[10px] text-muted-foreground/50",children:h}),"sending"===a.status&&(0,d.jsx)(ad.A,{className:"h-3 w-3 text-muted-foreground/50"}),("streaming"===a.status||"sent"===a.status)&&(0,d.jsxs)("div",{className:"flex items-center text-blue-400",children:[(0,d.jsx)(aZ.A,{className:"h-3 w-3"}),(0,d.jsx)(aZ.A,{className:"-ml-1.5 h-3 w-3"})]}),"error"===a.status&&(0,d.jsxs)("button",{onClick:()=>c(a),className:"flex items-center gap-1 text-destructive hover:text-destructive/80 transition-colors",title:"Tap to retry",children:[(0,d.jsx)(aS.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"text-[10px] font-medium",children:"Retry"})]})]}),(0,d.jsxs)("div",{className:"max-w-[85%] space-y-2",children:[b&&b.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap justify-end gap-1.5",children:b.map((a,b)=>(0,d.jsx)("img",{src:a,alt:`Attached image ${b+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:()=>g(a)},b))}),(0,d.jsx)("div",{className:(0,j.cn)("rounded-2xl px-4 py-2.5 text-sm leading-relaxed shadow-sm break-words overflow-hidden","error"===a.status?"bg-red-500 text-white dark:bg-red-600":"cp-user-bubble"),children:(0,d.jsx)("span",{children:a.text})})]})]})});function bX(a){let b=[],c="",d=()=>{c.trim().length>0&&b.push({type:"text",text:c}),c=""};for(let e of a){if("text"===e.type&&"string"==typeof e.text){c&&(c+="\n"),c+=e.text;continue}d(),b.push(e)}return d(),b}let bY=(0,e.memo)(function({message:a,_images:b,isLatest:c,isStreaming:f,showThinking:g,onToolApprove:h,onToolDeny:i}){let[j,k]=(0,e.useState)(null),l=(0,e.useMemo)(()=>bX(a.parts??[]),[a.parts]);return"user"===a.role?null:(0,d.jsxs)("div",{className:"flex flex-col gap-1 items-start",children:[j&&(0,d.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/70 p-4 cursor-pointer",onClick:()=>k(null),children:[(0,d.jsx)("img",{src:j,alt:"Full size",className:"max-h-[90vh] max-w-[90vw] rounded-lg object-contain shadow-2xl"}),(0,d.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:()=>k(null),children:(0,d.jsx)(m.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"max-w-[95%] min-w-0 text-sm leading-relaxed",children:[l.map((a,b)=>{if("text"===a.type)return(0,d.jsx)(b$,{text:a.text??""},b);if("dynamic-tool"===a.type||a.type?.startsWith("tool-")){let c="approval-requested"===a.state;if(!c&&!g)return null;let e=a.toolName??a.type.replace(/^tool-/,""),f=a.approval?.approvalId??a.toolCallId;return(0,d.jsx)(b4,{toolName:e,state:a.state??"",args:a.input,onApprove:c&&h?()=>h(f??""):void 0,onDeny:c&&i?()=>i(f??""):void 0},b)}return null}),f&&c&&(0,d.jsx)("span",{className:"inline-block h-4 w-0.5 animate-pulse bg-foreground/60 ml-0.5 align-text-bottom"})]})]})}),bZ={code:({className:a,children:b,...c})=>a||"string"!=typeof b||b.includes("\n")?(0,d.jsx)("pre",{className:"my-2 overflow-x-auto rounded-lg bg-zinc-100 p-3 text-[13px] dark:bg-zinc-900",children:(0,d.jsx)("code",{className:a,...c,children:b})}):(0,d.jsx)("code",{className:"rounded bg-zinc-100 px-1.5 py-0.5 text-[13px] dark:bg-zinc-800",...c,children:b}),pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a}),p:({children:a})=>(0,d.jsx)("p",{className:"my-1",children:a}),a:({href:a,children:b})=>(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 underline dark:text-blue-400 break-all",children:b}),ul:({children:a})=>(0,d.jsx)("ul",{className:"my-1 list-disc pl-4",children:a}),ol:({children:a})=>(0,d.jsx)("ol",{className:"my-1 list-decimal pl-4",children:a}),li:({children:a})=>(0,d.jsx)("li",{className:"my-0",children:a}),blockquote:({children:a})=>(0,d.jsx)("blockquote",{className:"my-2 border-l-2 border-zinc-300 pl-3 italic text-muted-foreground dark:border-zinc-600",children:a}),table:({children:a})=>(0,d.jsx)("div",{className:"my-2 overflow-x-auto",children:(0,d.jsx)("table",{className:"min-w-full border-collapse text-sm",children:a})}),th:({children:a})=>(0,d.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:a}),td:({children:a})=>(0,d.jsx)("td",{className:"border border-zinc-300 px-2 py-1 dark:border-zinc-600",children:a}),h1:({children:a})=>(0,d.jsx)("h1",{className:"my-2 text-base font-bold",children:a}),h2:({children:a})=>(0,d.jsx)("h2",{className:"my-1.5 text-sm font-bold",children:a}),h3:({children:a})=>(0,d.jsx)("h3",{className:"my-1 text-sm font-semibold",children:a}),img:({src:a,alt:b})=>(0,d.jsx)("img",{src:a,alt:b??"",className:"my-2 max-w-full rounded-lg"})},b$=(0,e.memo)(function({text:a}){return(0,d.jsx)("div",{className:"chat-message-content min-w-0 max-w-full overflow-hidden text-sm leading-relaxed [overflow-wrap:break-word]",children:(0,d.jsx)(a8.oz,{remarkPlugins:[a9.A],components:bZ,children:a})})}),b_=(0,e.memo)(function({entry:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useId)(),g=(0,bc.I)(),h=b1(a.name),i=h.icon,k=b2(a.args),l=function(a){if(null==a)return null;if("string"==typeof a)return a.trim()?a:null;try{return JSON.stringify(a,null,2)}catch{return String(a)}}(a.args),m=a.output?.trim()??"",n=b3(m)??m,o=!!m,p=!!(l||o),q="start"===a.phase||"update"===a.phase,r="result"===a.phase?"Completed":"error"===a.phase?"Error":"Running",s="result"===a.phase?aZ.A:"error"===a.phase?aS.A:aR.A;return(0,d.jsxs)("div",{className:(0,j.cn)("rounded-lg border border-transparent bg-transparent","transition-colors","hover:border-border/40 hover:bg-muted/20",b&&"border-border/50 bg-muted/30",q&&"bg-muted/30"),children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{p&&c(a=>!a)},className:(0,j.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?b:void 0,"aria-disabled":!p,"aria-controls":p?f:void 0,children:[(0,d.jsx)("span",{className:(0,j.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&&b?(0,d.jsx)(aY.A,{className:"h-3 w-3"}):(0,d.jsx)(y.A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70 group-hover:text-foreground","aria-hidden":"true",children:(0,d.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,d.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-foreground/75 group-hover:text-foreground",children:h.label}),k&&(0,d.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground/60 truncate group-hover:text-muted-foreground",children:k})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,d.jsx)(s,{className:(0,j.cn)("h-3.5 w-3.5","Running"===r&&"animate-spin motion-reduce:animate-none","Error"===r&&"text-destructive")}),(0,d.jsx)("span",{className:(0,j.cn)("Error"===r&&"text-destructive",q&&"animate-pulse motion-reduce:animate-none"),children:r})]})]}),(0,d.jsx)(bb.N,{initial:!1,children:b&&p&&(0,d.jsx)(ba.P.div,{id:f,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.18*!g},className:"overflow-hidden",children:(0,d.jsxs)("div",{className:"px-2 pb-2 space-y-2",children:[l&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Args"}),(0,d.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:l})]}),o&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Output"}),(0,d.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:n})]})]})})})]})}),b0={Read:{icon:z.A,label:"Read file"},Edit:{icon:a$.A,label:"Edit file"},Write:{icon:a_.A,label:"Write file"},exec:{icon:aV.A,label:"Run command"},web_search:{icon:g.A,label:"Web search"},web_fetch:{icon:a0.A,label:"Fetch page"},browser:{icon:a0.A,label:"Browser"},message:{icon:aj.A,label:"Send message"},image:{icon:a1.A,label:"Analyze image"},tts:{icon:a2.A,label:"Text to speech"},nodes:{icon:a3.A,label:"Node control"},canvas:{icon:a4.A,label:"Canvas"},process:{icon:a5.A,label:"Process"}};function b1(a){let b=a.trim(),c=b.replace(/[\s-]+/g,"_"),d=c.toLowerCase(),e=d.length>0?d[0].toUpperCase()+d.slice(1):"";for(let a of[b,c,d,b.toLowerCase(),e])if(a&&b0[a])return b0[a];return{icon:a6.A,label:b||"Tool"}}function b2(a){if(!a)return null;if("string"==typeof a){let b=a.trim();return b?b.length>60?b.slice(0,57)+"…":b:null}if("object"!=typeof a)return null;if(a.query)return`"${String(a.query)}"`;if(a.path)return String(a.path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(a.file_path)return String(a.file_path).replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~");if(a.command){let b=String(a.command);return b.length>60?b.slice(0,57)+"…":b}return a.url?String(a.url):a.action?String(a.action):null}function b3(a){return a?bF(a)??a:null}let b4=(0,e.memo)(function({toolName:a,state:b,args:c,onApprove:e,onDeny:f}){let g=b1(a),h=g.icon,i=(()=>{if(!c||"object"!=typeof c)return null;if(c.query)return`"${String(c.query)}"`;if(c.path)return String(c.path).split("/").pop();if(c.file_path)return String(c.file_path).split("/").pop();if(c.command){let a=String(c.command);return a.length>50?a.slice(0,50)+"…":a}return c.url?String(c.url):null})();return"approval-requested"!==b?(0,d.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"===b||"input-streaming"===b||"input-available"===b?(0,d.jsx)(aR.A,{className:"h-3 w-3 animate-spin motion-reduce:animate-none shrink-0"}):"output-available"===b||"result"===b?(0,d.jsx)(aZ.A,{className:"h-3 w-3 text-green-600 shrink-0"}):"output-error"===b?(0,d.jsx)(a7.A,{className:"h-3 w-3 text-destructive shrink-0"}):(0,d.jsx)("span",{className:"shrink-0 text-muted-foreground/70",children:(0,d.jsx)(h,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("span",{className:"font-medium text-foreground/75",children:g.label}),i&&(0,d.jsx)("span",{className:"truncate max-w-[200px] text-[10px] font-mono text-muted-foreground/60",children:i})]}):(0,d.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,d.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)(aX.A,{className:"h-3.5 w-3.5 text-amber-600 dark:text-amber-400"}),(0,d.jsx)("span",{className:"font-medium font-mono",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground/60",children:"Requires approval"})]}),null!=c&&"object"==typeof c&&Object.keys(c).length>0?(0,d.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(c,null,2)}):null,e&&f&&(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsxs)("button",{onClick:e,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,d.jsx)(aZ.A,{className:"h-3 w-3"}),"Approve"]}),(0,d.jsxs)("button",{onClick:f,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,d.jsx)(a7.A,{className:"h-3 w-3"}),"Deny"]})]})]})});var b5=c(11732),b6=c(80682),b7=c(1353);let b8=[{id:"pages",label:"Pages",icon:z.A},{id:"editor",label:"Editor",icon:b5.A},{id:"chat",label:"Chat",icon:b6.A},{id:"activity",label:"Activity",icon:b7.A}],b9=(0,e.memo)(function({activeTab:a,onTabChange:b,hasUnreadChat:c=!1,onNewPage:e}){return(0,d.jsxs)(d.Fragment,{children:["pages"===a&&e&&(0,d.jsx)("button",{onClick:e,className:(0,j.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,d.jsx)(h.A,{className:"h-6 w-6"})}),(0,d.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:b8.map(({id:e,label:f,icon:g})=>{let h=a===e;return(0,d.jsxs)("button",{onClick:()=>b(e),className:(0,j.cn)("relative flex flex-1 flex-col items-center justify-center gap-0.5 transition-colors min-h-[44px]",h?"text-accent-blue":"text-muted-foreground active:text-foreground"),children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(g,{className:"h-5 w-5"}),"chat"===e&&c&&(0,d.jsxs)("span",{className:"absolute -right-1.5 -top-1 flex h-2.5 w-2.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-accent-blue opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-accent-blue"})]})]}),(0,d.jsx)("span",{className:"text-[10px] font-medium",children:f}),h&&(0,d.jsx)("span",{className:"absolute top-0 left-1/4 right-1/4 h-0.5 rounded-full bg-accent-blue"})]},e)})})]})});function ca({onNavigate:a}){let b=(0,v.usePathname)(),c=(0,v.useRouter)(),{spaces:f,expandedSpaces:h,expandedFolders:i,toggleSpace:k,toggleFolder:l,pagesBySpace:m,spacesStatus:n,pagesStatusBySpace:o,recentPages:p,recentStatus:q,loadSpaces:r,loadRecentPages:s}=(0,K.M)(),[t,u]=(0,e.useState)(""),w=(0,e.useCallback)(b=>{c.push((0,P.C)(b)),a?.()},[c,a]),x=(0,L.z)(a=>a.agentName);return(0,d.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,d.jsx)("div",{className:"flex h-14 shrink-0 items-center justify-between border-b px-4",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.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,d.jsx)("span",{className:"text-sm font-semibold",children:x??"ClawPad"})]})}),(0,d.jsx)("div",{className:"shrink-0 px-4 py-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(g.A,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,d.jsx)("input",{type:"text",placeholder:"Search pages…",value:t,onChange:a=>u(a.target.value),className:(0,j.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,d.jsxs)(D,{className:"flex-1 px-4",children:[!t&&p.length>0&&(0,d.jsxs)("div",{className:"mb-4",children:[(0,d.jsx)(cb,{children:"Recent"}),(0,d.jsx)("div",{className:"space-y-0.5",children:p.slice(0,5).map(a=>(0,d.jsx)(cd,{page:a,isActive:b===(0,P.C)(a.path),onNavigate:()=>w(a.path),showTime:!0},a.path))})]}),(0,d.jsx)(F.w,{className:"my-2"}),(0,d.jsxs)("div",{className:"pb-4",children:[(0,d.jsx)(cb,{children:"Spaces"}),"loading"===n&&0===f.length?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-12 w-full rounded-lg"})]}):0===f.length?(0,d.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:"No spaces yet"}):(0,d.jsx)("div",{className:"space-y-1",children:f.map(a=>(0,d.jsx)(cc,{space:a,isExpanded:h.has(a.path),pages:m.get(a.path)??[],isLoadingPages:(o.get(a.path)??"idle")==="loading"&&0===(m.get(a.path)??[]).length,pathname:b,searchQuery:t,onToggle:()=>k(a.path),expandedFolders:i,onToggleFolder:l,onNavigate:w},a.path))}),"loading"===q&&0===p.length&&!t&&(0,d.jsxs)("div",{className:"mb-4 space-y-2",children:[(0,d.jsx)(cb,{children:"Recent"}),(0,d.jsx)(H.E,{className:"h-10 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-10 w-4/5 rounded-lg"})]})]})]})]})}function cb({children:a}){return(0,d.jsx)("h3",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a})}let cc=(0,e.memo)(function({space:a,isExpanded:b,pages:c,isLoadingPages:e,pathname:f,searchQuery:g,onToggle:h,expandedFolders:i,onToggleFolder:k,onNavigate:l}){let m=O(g?c.filter(a=>a.title.toLowerCase().includes(g.toLowerCase())):c,a.path);if(g&&0===m.length)return null;let n=b=>b.map(b=>{if("page"===b.type)return(0,d.jsx)(cd,{page:b.page,isActive:f===(0,P.C)(b.page.path),onNavigate:()=>l(b.page.path)},b.page.path);let c=`${a.path}/${b.path}`,e=i.has(c);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{onClick:()=>k(c),className:(0,j.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,d.jsx)(y.A,{className:(0,j.cn)("h-3.5 w-3.5 shrink-0 transition-transform duration-200",e&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-xs",children:"\uD83D\uDCC2"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:b.name})]}),e&&(0,d.jsx)("div",{className:"ml-3 border-l border-border/50 pl-3 py-0.5",children:n(b.children)})]},c)});return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{onClick:h,className:(0,j.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]",b&&"font-medium"),children:[(0,d.jsx)(y.A,{className:(0,j.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200",b&&"rotate-90")}),(0,d.jsx)("span",{className:"shrink-0 text-base",children:a.icon??"\uD83D\uDCC1"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:a.name}),(0,d.jsx)(G.E,{variant:"secondary",className:"h-5 shrink-0 px-1.5 text-[11px] font-normal",children:a.pageCount})]}),b&&(0,d.jsx)("div",{className:"ml-4 border-l border-border/50 pl-3 py-0.5",children:e?(0,d.jsxs)("div",{className:"space-y-1 py-1",children:[(0,d.jsx)(H.E,{className:"h-10 w-full rounded-lg"}),(0,d.jsx)(H.E,{className:"h-10 w-3/4 rounded-lg"})]}):0===m.length?(0,d.jsx)("p",{className:"py-3 px-2 text-xs text-muted-foreground",children:"No pages yet. Create your first page."}):n(m)})]})}),cd=(0,e.memo)(function({page:a,isActive:b,onNavigate:c,showTime:e}){return(0,d.jsxs)("button",{onClick:c,className:(0,j.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]",b&&"bg-accent-light text-accent-blue font-medium"),children:[(0,d.jsx)(ad.A,{className:"h-3.5 w-3.5 shrink-0 opacity-50"}),a.icon?(0,d.jsx)("span",{className:"shrink-0 text-sm",children:a.icon}):(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"flex-1 truncate text-left",children:a.title}),e&&(0,d.jsx)("span",{className:"shrink-0 text-[11px] text-muted-foreground/60",children:(0,M.f)(a.modified)})]})});var ce=c(22772),cf=c(54255),cg=c(65255),ch=c(46218);let ci={"file-changed":{icon:ce.A,className:"text-blue-500"},"file-added":{icon:ac.A,className:"text-green-500"},"file-removed":{icon:cf.A,className:"text-red-400"},"chat-message":{icon:aj.A,className:"text-violet-500"},"tool-used":{icon:a6.A,className:"text-amber-500"},"sub-agent":{icon:cg.A,className:"text-cyan-500"}};function cj(){let a=(0,L.z)(a=>a.agentStatus);return"thinking"!==a&&"active"!==a?null:(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-md bg-violet-500/10 px-2 py-1.5 mb-1",children:[(0,d.jsx)(ch.A,{className:(0,j.cn)("h-3.5 w-3.5 text-violet-500","thinking"===a&&"animate-pulse")}),(0,d.jsx)("span",{className:"text-[12px] text-violet-500 font-medium",children:"thinking"===a?"Agent thinking…":"Agent working…"}),(0,d.jsxs)("span",{className:"ml-auto flex gap-0.5",children:[(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:0ms]"}),(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:150ms]"}),(0,d.jsx)("span",{className:"h-1 w-1 rounded-full bg-violet-400 animate-bounce [animation-delay:300ms]"})]})]})}function ck({type:a,description:b,timestamp:c}){let e,f=ci[a]??ci["file-changed"],g=f.icon;return(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md px-2 py-1.5 transition-colors hover:bg-sidebar-accent group",children:[(0,d.jsx)(g,{className:(0,j.cn)("mt-0.5 h-3.5 w-3.5 shrink-0",f.className)}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-[12px] leading-snug text-foreground/80",children:b}),(0,d.jsx)("p",{className:"text-[10px] text-muted-foreground/60",children:(e=Math.floor((Date.now()-c)/1e3))<5?"just now":e<60?`${e}s ago`:e<3600?`${Math.floor(e/60)}m ago`:e<86400?`${Math.floor(e/3600)}h ago`:`${Math.floor(e/86400)}d ago`})]})]})}function cl(){let a=(0,bd.e)(a=>a.items),b=(0,bd.e)(a=>a.clear);return(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-1",children:[(0,d.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:"Activity"}),a.length>0&&(0,d.jsx)("button",{onClick:b,className:"text-[10px] text-muted-foreground/60 hover:text-muted-foreground transition-colors",children:"Clear"})]}),(0,d.jsx)(cj,{}),0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,d.jsx)(b7.A,{className:"mb-3 h-8 w-8 text-muted-foreground/30"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No recent activity"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground/60",children:"File changes and agent events will appear here"})]}):(0,d.jsx)(D,{className:"max-h-[400px]",children:(0,d.jsx)("div",{className:"space-y-0.5",children:a.map(a=>(0,d.jsx)(ck,{type:a.type,description:a.description,timestamp:a.timestamp},a.id))})})]})}function cm(){return(0,d.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,d.jsx)("div",{className:"flex h-14 shrink-0 items-center border-b px-4",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(b7.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Activity"})]})}),(0,d.jsx)(D,{className:"flex-1",children:(0,d.jsx)("div",{className:"p-4",children:(0,d.jsx)(cl,{})})})]})}var cn=c(77745);let co={navigation:"Navigation",panels:"Panels",editing:"Editing",ai:"AI",general:"General"},cp=["navigation","panels","editing","ai","general"];function cq({shortcuts:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useCallback)(a=>{c(a)},[]),g=cp.map(b=>({category:b,label:co[b]??b,items:a.filter(a=>a.category===b)})).filter(a=>a.items.length>0);return(0,d.jsx)(ap,{open:b,onOpenChange:f,children:(0,d.jsxs)(as,{className:"sm:max-w-[480px]",children:[(0,d.jsxs)(at,{children:[(0,d.jsxs)(av,{className:"flex items-center gap-2",children:[(0,d.jsx)(an.A,{className:"h-4 w-4 text-muted-foreground"}),"Keyboard Shortcuts"]}),(0,d.jsx)(aw,{children:"Quick actions to navigate your workspace"})]}),(0,d.jsxs)("div",{className:"grid gap-5 py-2",children:[g.map(a=>(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:a.label}),(0,d.jsx)("div",{className:"space-y-1",children:a.items.map(a=>(0,d.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,d.jsx)("span",{className:"text-foreground/80",children:a.label}),(0,d.jsx)(cs,{keys:a.keys})]},a.id))})]},a.category)),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Other"}),(0,d.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,d.jsx)("span",{className:"text-foreground/80",children:"Close dialog / panel"}),(0,d.jsx)(cs,{keys:"Esc"})]})]})]})]})})}let cr={"⌘":"⌘","⇧":"⇧","⌥":"⌥","⌃":"⌃",Cmd:"⌘",Shift:"⇧",Alt:"⌥",Ctrl:"⌃",Esc:"Esc",Enter:"↵",Tab:"⇥",Backspace:"⌫",Delete:"⌦","\\":"\\"};function cs({keys:a,className:b}){let c=function(a){let b=new Set(["⌘","⇧","⌥","⌃"]),c=[],d=0;for(;d<a.length;){let e=a[d];if(b.has(e))c.push(e),d++;else if("+"===e)d++;else{c.push(a.slice(d));break}}return 0===c.length&&c.push(a),c}(a);return(0,d.jsx)("div",{className:`flex items-center gap-0.5 ${b??""}`,children:c.map((a,b)=>(0,d.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:cr[a]??a},b))})}function ct(){var a;let b,c=(0,K.M)(a=>a.toggleSidebar),f=(0,K.M)(a=>a.toggleChatPanel),{resolvedTheme:g,setTheme:h}=(0,J.D)(),i=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-command-palette"))},[]),j=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]),k=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:shortcuts-dialog"))},[]),l=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),m=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:save"))},[]),n=(0,e.useCallback)(()=>{h("dark"===g?"light":"dark")},[g,h]),o=(0,e.useCallback)(()=>{let a=document.querySelector(".clawpad-editor [contenteditable]")??document.querySelector(".clawpad-editor .bn-editor")??document.querySelector(".clawpad-editor");a&&a.focus()},[]),p=(0,e.useMemo)(()=>{var a;return[{id:"search",label:"Search",keys:"⌘K",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"k"===a.key,action:(a={openSearch:i,newPage:j,toggleChat:f,toggleSidebar:c,save:l,saveAll:m,openShortcuts:k,toggleDarkMode:n,focusEditor:o}).openSearch},{id:"quick-switcher",label:"Quick Document Switcher",keys:"⌘P",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"p"===a.key,action:a.openSearch},{id:"new-page",label:"New Document",keys:"⌘N",category:"navigation",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"n"===a.key,action:a.newPage},{id:"toggle-sidebar",label:"Toggle Sidebar",keys:"⌘\\",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"\\"===a.key,action:a.toggleSidebar},{id:"toggle-chat",label:"Toggle Chat",keys:"⌘⇧L",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"l"===a.key.toLowerCase(),action:a.toggleChat},{id:"focus-editor",label:"Focus Editor",keys:"⌘⇧E",category:"panels",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"e"===a.key.toLowerCase(),action:a.focusEditor},{id:"save",label:"Save",keys:"⌘S",category:"editing",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"s"===a.key,action:a.save},{id:"save-all",label:"Save All",keys:"⌘⇧S",category:"editing",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"s"===a.key.toLowerCase(),action:a.saveAll},...a.aiOnSelection?[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"j"===a.key,action:a.aiOnSelection}]:[{id:"ai-selection",label:"AI on Selection",keys:"⌘J",category:"ai",match:a=>(a.metaKey||a.ctrlKey)&&!a.shiftKey&&"j"===a.key,action:()=>{}}],{id:"toggle-dark-mode",label:"Toggle Dark Mode",keys:"⌘⇧D",category:"general",match:a=>(a.metaKey||a.ctrlKey)&&a.shiftKey&&"d"===a.key.toLowerCase(),action:a.toggleDarkMode},{id:"shortcuts-help",label:"Keyboard Shortcuts",keys:"⌘/",category:"general",match:a=>(a.metaKey||a.ctrlKey)&&"/"===a.key,action:a.openShortcuts}]},[i,j,f,c,l,m,k,n,o]);return a=(0,e.useMemo)(()=>p.filter(a=>["toggle-sidebar","shortcuts-help","toggle-dark-mode","focus-editor","quick-switcher","save-all"].includes(a.id)),[p]),b=(0,e.useRef)(a),(0,e.useCallback)(a=>{let c=a.target,d=!!c?.closest("input, textarea, select, [contenteditable='true']");for(let c of b.current)if(c.match(a)&&(!d||a.metaKey||a.ctrlKey)){a.preventDefault(),c.action();return}},[]),(0,d.jsx)(cq,{shortcuts:p})}function cu(){return(0,d.jsxs)("div",{className:"flex h-full w-full flex-col p-4 gap-4",children:[(0,d.jsx)(H.E,{className:"h-8 w-32"}),(0,d.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,d.jsx)(H.E,{className:"h-16 w-3/4 ml-auto"}),(0,d.jsx)(H.E,{className:"h-24 w-4/5"}),(0,d.jsx)(H.E,{className:"h-16 w-2/3 ml-auto"})]}),(0,d.jsx)(H.E,{className:"h-12 w-full"})]})}function cv({children:a}){let{isMobile:b,isTablet:c}=$(),[f,g]=(0,e.useState)("editor"),{chatPanelOpen:h,setChatPanelOpen:i,setSidebarOpen:j,hydrateAppearance:k}=(0,K.M)(),l=(0,e.useRef)(new Map),m=(0,e.useCallback)(a=>{let b=a.currentTarget;b.classList.add("is-scrolling");let c=l.current,d=c.get(b);d&&window.clearTimeout(d);let e=window.setTimeout(()=>{b.classList.remove("is-scrolling"),c.delete(b)},900);c.set(b,e)},[]),n=(0,e.useCallback)(a=>{g(a),j(!1),"chat"===a?i(!0):i(!1)},[j,i]),p=(0,e.useCallback)(()=>{window.dispatchEvent(new CustomEvent("clawpad:open-new-page",{detail:{mode:"document"}}))},[]);return b?(0,d.jsxs)("div",{className:"flex h-[100dvh] flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex-1 overflow-hidden",children:["pages"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(ca,{onNavigate:()=>g("editor")})}),"editor"===f&&(0,d.jsx)("main",{className:"workspace-scroll-area h-full overflow-y-auto pb-14",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),"chat"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{variant:"fullscreen"})})}),"activity"===f&&(0,d.jsx)("div",{className:"h-full pb-14",children:(0,d.jsx)(cm,{})})]}),(0,d.jsx)(b9,{activeTab:f,onTabChange:n,onNewPage:p}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]}):c?(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,d.jsx)(aa,{}),(0,d.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),(0,d.jsx)(o,{open:h,onOpenChange:i,children:(0,d.jsxs)(r,{side:"right",className:"w-[400px] p-0",showCloseButton:!1,children:[(0,d.jsx)(_,{children:(0,d.jsx)(s,{children:"Chat"})}),(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{variant:"sheet"})})]})}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]}):(0,d.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,d.jsx)(aa,{}),(0,d.jsx)("main",{className:"workspace-scroll-area relative z-0 flex-1 overflow-y-auto",onScroll:m,children:(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cn.L,{}),children:a})}),(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(cu,{}),children:(0,d.jsx)(bL,{})}),(0,d.jsx)(aG,{}),(0,d.jsx)(aK,{}),(0,d.jsx)(ct,{})]})}},45516:(a,b,c)=>{"use strict";c.d(b,{w:()=>g});var d=c(48249);c(67484);var e=c(859),f=c(42893);function g({className:a,orientation:b="horizontal",decorative:c=!0,...g}){return(0,d.jsx)(e.b,{"data-slot":"separator",decorative:c,orientation:b,className:(0,f.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",a),...g})}},52908:(a,b,c)=>{"use strict";function d(a){let b=a.replace(/\.md$/,"").split("/").filter(Boolean).map(a=>encodeURIComponent(a));return 0===b.length?"/workspace":`/workspace/${b.join("/")}`}c.d(b,{C:()=>d})},77745:(a,b,c)=>{"use strict";c.d(b,{L:()=>f});var d=c(48249),e=c(13656);function f(){return(0,d.jsxs)("div",{className:"mx-auto w-full max-w-[720px] px-6",children:[(0,d.jsxs)("div",{className:"pt-20 pb-4",children:[(0,d.jsx)(e.E,{className:"h-10 w-2/3 mb-3"}),(0,d.jsx)(e.E,{className:"h-4 w-1/3"})]}),(0,d.jsxs)("div",{className:"space-y-3 pt-6",children:[(0,d.jsx)(e.E,{className:"h-4 w-full"}),(0,d.jsx)(e.E,{className:"h-4 w-[92%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[78%]"}),(0,d.jsx)("div",{className:"h-3"}),(0,d.jsx)(e.E,{className:"h-4 w-full"}),(0,d.jsx)(e.E,{className:"h-4 w-[85%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[65%]"}),(0,d.jsx)("div",{className:"h-3"}),(0,d.jsx)(e.E,{className:"h-4 w-[90%]"}),(0,d.jsx)(e.E,{className:"h-4 w-[70%]"})]})]})}},77807:(a,b,c)=>{"use strict";c.d(b,{R:()=>i});var d=c(48249),e=c(81220),f=c(42893);let g=265/235,h=1152/235;function i({variant:a="icon",size:b=24,className:c,imageClassName:i,lightImageClassName:j,darkImageClassName:k,theme:l="auto",alt:m="ClawPad",priority:n=!1}){let o="icon"===a,p=Math.round(b*(o?g:h));return(0,d.jsx)("span",{className:(0,f.cn)("inline-flex items-center",c),children:(0,d.jsx)(e.default,{src:o?"/brand/icon.png":"/brand/logo.png",width:p,height:b,alt:m,priority:n,className:(0,f.cn)("block",i,"dark"===l?k:"light"===l?j:void 0)})})}},82638:(a,b,c)=>{Promise.resolve().then(c.bind(c,43744))},84763:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/clawpad/clawpad/src/app/workspace/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/clawpad/clawpad/src/app/workspace/layout.tsx","default")},88877:(a,b,c)=>{"use strict";c.d(b,{p:()=>f});var d=c(48249);c(67484);var e=c(42893);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.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",a),...c})}},96550:(a,b,c)=>{Promise.resolve().then(c.bind(c,84763))}};
|