@seqyuan/annovibe 0.8.40 → 0.8.53
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +15 -8
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +48 -8
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/runtime/route.js +1 -1
- package/.next/server/app/api/apps/[id]/[[...path]]/route.js +1 -1
- package/.next/server/app/api/apps/route.js +2 -2
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/harness/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/im/cancel/route.js +1 -0
- package/.next/server/app/api/im/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/gateway-status/route.js +1 -0
- package/.next/server/app/api/im/gateway-status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/gateway-token/route.js +1 -0
- package/.next/server/app/api/im/gateway-token/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/project/route.js +1 -0
- package/.next/server/app/api/im/project/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/projects/route.js +1 -0
- package/.next/server/app/api/im/projects/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/session-ids/route.js +1 -0
- package/.next/server/app/api/im/session-ids/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/im/turn/route.js +3 -0
- package/.next/server/app/api/im/turn/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/internal/runtime/route.js +1 -1
- package/.next/server/app/api/memory/promote/route.js +2 -2
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/plot-kernels/route.js +1 -1
- package/.next/server/app/api/plot-kernels/save/route.js +1 -0
- package/.next/server/app/api/plot-kernels/save/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plot-kernels/status/route.js +1 -1
- package/.next/server/app/api/plot-kernels/stop/route.js +1 -1
- package/.next/server/app/api/projects/browse/route.js +1 -1
- package/.next/server/app/api/projects/route.js +2 -2
- package/.next/server/app/api/search/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/new/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +2 -2
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/soul/route.js +1 -1
- package/.next/server/app/api/subagents/status/route.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/page.js +10 -10
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/page.js +3 -3
- package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke.html +78 -23
- package/.next/server/app/smoke.rsc +2 -2
- package/.next/server/app/smoke.segments/_full.segment.rsc +2 -2
- package/.next/server/app/smoke.segments/_head.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_index.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/smoke.segments/smoke.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +15 -8
- package/.next/server/chunks/1494.js +278 -0
- package/.next/server/chunks/7601.js +44 -75
- package/.next/server/functions-config-manifest.json +3 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/9901-7e044d778f6622ea.js +278 -0
- package/.next/static/chunks/app/_global-error/page-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/agent/runtime/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/apps/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/harness/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/home/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/cancel/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/gateway-status/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/gateway-token/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/project/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/projects/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/session-ids/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/im/turn/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/internal/runtime/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/memory/promote/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/models/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/save/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/status/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/stop/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/projects/browse/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/projects/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/search/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/sessions/new/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/settings/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/skills/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/soul/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/subagents/status/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/api/version/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/favicon.ico/route-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/app/page-e88a9417235fcde7.js +27 -0
- package/.next/static/chunks/app/smoke/{page-431310549b820f3b.js → page-d1be0dc9ec4396ba.js} +2 -2
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b23e767fd4cc8cb6.js +1 -0
- package/.next/static/dxpkIGb5tQfNQD77g3dwV/_buildManifest.js +1 -0
- package/bin/annovibe-im-gateway.js +566 -0
- package/package.json +3 -2
- package/.next/server/app/api/reports/[id]/route.js +0 -12
- package/.next/server/app/api/reports/[id]/route_client-reference-manifest.js +0 -1
- package/.next/server/chunks/1210.js +0 -246
- package/.next/static/_cg-NeIs7evKmS6N4eYHl/_buildManifest.js +0 -1
- package/.next/static/chunks/9595-64b81f0fd7a50dc4.js +0 -246
- package/.next/static/chunks/app/_global-error/page-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/agent/runtime/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/apps/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/harness/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/home/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/internal/runtime/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/memory/promote/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/models/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/status/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/stop/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/projects/browse/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/projects/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/reports/[id]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/search/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/sessions/new/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/settings/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/skills/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/soul/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/subagents/status/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/api/version/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/favicon.ico/route-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/app/page-3291f6a1f268c41d.js +0 -27
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-412387d4b52026c9.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-412387d4b52026c9.js +0 -1
- /package/.next/static/{_cg-NeIs7evKmS6N4eYHl → dxpkIGb5tQfNQD77g3dwV}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9901],{2112:(e,t,r)=>{function n(e){let t,r=[],n=/`{1,3}show-widget`{0,3}\s*(?:\n\s*`{3}(?:json|html)?\s*)?\n?/g,a=0,o=!1;for(;null!==(t=n.exec(e));){o=!0;let s=e.slice(a,t.index).trim();s&&r.push({type:"text",content:s});let d=t.index+t[0].length,c=e.indexOf("```",d),u=e.indexOf("{",d);if(-1!==u&&u<=d+200&&(-1===c||u<c)){let t=function(e,t){let r=0,n=!1,i=!1;for(let l=t;l<e.length;l++){let t=e[l];if(i){i=!1;continue}if("\\"===t&&n){i=!0;continue}if('"'===t){n=!n;continue}if(!n&&("{"===t&&r++,"}"===t)&&0==--r)return l}return -1}(e,u);if(-1===t){let t=function(e){try{let t=i(e);if(t)return t}catch{}let t=e.indexOf('"widget_code"');if(-1===t)return null;let r=e.indexOf(":",t+13);if(-1===r)return null;let n=e.indexOf('"',r+1);if(-1===n)return null;let a=e.slice(n+1);(a=a.replace(/"\s*\}\s*$/,"")).endsWith("\\")&&(a=a.slice(0,-1));let o=e.match(/"title"\s*:\s*"([^"]*?)"/)?.[1],s=l(a.replace(/\\\\/g,"\0BACKSLASH\0").replace(/\\n/g,"\n").replace(/\\t/g," ").replace(/\\r/g,"\r").replace(/\\"/g,'"').replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(parseInt(t,16))).replace(/\x00BACKSLASH\x00/g,"\\"));return s.code.trim()?{title:o,code:s.code,showOverlay:s.truncated}:null}(e.slice(u));t&&r.push({type:"widget",...t,partial:!0}),a=e.length;break}let o=i(e.slice(u,t+1).trim());o&&r.push({type:"widget",...o});let s=t+1,d=e.slice(s,s+16).match(/^\s*\n?`{1,3}\s*/);d&&(s+=d[0].length),a=s,n.lastIndex=s;continue}if(-1!==c){let t=e.slice(d,c).trim(),l=i(t);l?r.push({type:"widget",...l}):t&&r.push({type:"text",content:t}),n.lastIndex=a=c+3}else{let t=i(e.slice(d).trim());if(t){let e=l(t.code);r.push({type:"widget",title:t.title,code:e.code,partial:!0,showOverlay:e.truncated})}a=e.length;break}}let s=e.slice(a).trim();return s&&r.push({type:"text",content:s}),!o&&0===r.length&&e.trim()&&r.push({type:"text",content:e}),r}function i(e){if(e.startsWith("{")){if(!e.endsWith("}"))return null;try{let t=JSON.parse(e),r=t.widget_code??t.code;if(r)return{title:t.title,code:r}}catch{return null}}return/<(!DOCTYPE|html|svg|canvas|script|style|div)/i.test(e)?{code:e}:null}function l(e){let t=e.lastIndexOf("<script");if(-1===t)return{code:e,truncated:!1};let r=e.slice(t);return/<script[\s\S]*?<\/script>/i.test(r)?{code:e,truncated:!1}:{code:e.slice(0,t).trim(),truncated:!0}}function a(e){return/`{1,3}show-widget/.test(e)}function o(e){return u(e)}function s(e){return u(e).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>"']*)/gi,"").replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<script\b[^>]*\/?>/gi,"").replace(/\s+(href|src|action)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>"']*))/gi,(e,t,r,n,i)=>{let l=(r??n??i??"").trim();return/^\s*(javascript|data)\s*:/i.test(l)?"":e})}r.d(t,{L$:()=>o,SR:()=>p,Xw:()=>s,aH:()=>n,f7:()=>g,qk:()=>a,sM:()=>f});let d=/<(iframe|object|embed|meta|link|base|form)[\s>][\s\S]*?<\/\1>/gi,c=/<(iframe|object|embed|meta|link|base)\b[^>]*\/?>/gi;function u(e){return e.replace(d,"").replace(c,"")}let h=["--bg","--bg-panel","--bg-hover","--bg-selected","--border","--text","--text-muted","--text-dim","--accent","--accent-hover"];function p(){if("u"<typeof document)return{};let e=getComputedStyle(document.documentElement),t={};for(let r of h){let n=e.getPropertyValue(r).trim();n&&(t[r]=n)}return t}function g(e){let t=Object.entries({"--bg":"#ffffff","--bg-panel":"#f5f5f5","--bg-hover":"#eeeeee","--bg-selected":"#e8e8e8","--border":"#e0e0e0","--text":"#1a1a1a","--text-muted":"#6b7280","--text-dim":"#9ca3af","--accent":"#2563eb","--accent-hover":"#1d4ed8",...e,"--font-mono":"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"}).map(([e,t])=>` ${e}: ${t};`).join("\n");return`
|
|
2
|
+
:root {
|
|
3
|
+
${t}
|
|
4
|
+
}
|
|
5
|
+
.dark { color-scheme: dark; }
|
|
6
|
+
body {
|
|
7
|
+
--color-background-primary: var(--bg, #fff);
|
|
8
|
+
--color-background-secondary: var(--bg-panel, #f5f5f5);
|
|
9
|
+
--color-background-tertiary: var(--bg-hover, #eee);
|
|
10
|
+
--color-text-primary: var(--text, #1a1a1a);
|
|
11
|
+
--color-text-secondary: var(--text-muted, #6b7280);
|
|
12
|
+
--color-text-tertiary: var(--text-dim, #9ca3af);
|
|
13
|
+
--color-border-tertiary: var(--border, #e0e0e0);
|
|
14
|
+
--color-border-secondary: var(--border, #e0e0e0);
|
|
15
|
+
--color-border-primary: var(--accent, #2563eb);
|
|
16
|
+
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
|
|
17
|
+
--border-radius-md: 8px;
|
|
18
|
+
--border-radius-lg: 12px;
|
|
19
|
+
margin: 0;
|
|
20
|
+
padding: 0;
|
|
21
|
+
font-family: var(--font-sans);
|
|
22
|
+
font-size: 14px;
|
|
23
|
+
line-height: 1.6;
|
|
24
|
+
color: var(--color-text-primary);
|
|
25
|
+
background: transparent;
|
|
26
|
+
}
|
|
27
|
+
* { box-sizing: border-box; }
|
|
28
|
+
svg { max-width: 100%; height: auto; display: block; }
|
|
29
|
+
a { color: var(--accent, #2563eb); }
|
|
30
|
+
button, input, select, textarea { font: inherit; }
|
|
31
|
+
button {
|
|
32
|
+
border: 1px solid var(--color-border-tertiary);
|
|
33
|
+
border-radius: var(--border-radius-md);
|
|
34
|
+
background: var(--color-background-secondary);
|
|
35
|
+
color: var(--color-text-primary);
|
|
36
|
+
padding: 5px 10px;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
}
|
|
39
|
+
button:hover { background: var(--color-background-tertiary); }
|
|
40
|
+
input[type="range"] { accent-color: var(--accent, #2563eb); }
|
|
41
|
+
`}function f(e="",t=!1){return`<!DOCTYPE html>
|
|
42
|
+
<html class="${t?"dark":""}">
|
|
43
|
+
<head>
|
|
44
|
+
<meta charset="utf-8">
|
|
45
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
46
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline' https://cdnjs.cloudflare.com https://cdn.jsdelivr.net https://unpkg.com https://esm.sh; style-src 'unsafe-inline'; img-src * data: blob:; font-src * data:; connect-src 'none'">
|
|
47
|
+
<style>
|
|
48
|
+
${e}
|
|
49
|
+
</style>
|
|
50
|
+
</head>
|
|
51
|
+
<body>
|
|
52
|
+
<div id="__root" style="height:fit-content;"></div>
|
|
53
|
+
<script>
|
|
54
|
+
(function() {
|
|
55
|
+
var root = document.getElementById("__root");
|
|
56
|
+
var timer = null;
|
|
57
|
+
var first = true;
|
|
58
|
+
var lastHeight = 0;
|
|
59
|
+
|
|
60
|
+
function notifyReady() {
|
|
61
|
+
parent.postMessage({ type: "widget:ready" }, "*");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function reportHeight() {
|
|
65
|
+
if (timer) clearTimeout(timer);
|
|
66
|
+
timer = setTimeout(function() {
|
|
67
|
+
var rect = root.getBoundingClientRect();
|
|
68
|
+
var h = Math.ceil(Math.max(rect.height, document.body.scrollHeight, document.documentElement.scrollHeight));
|
|
69
|
+
if (h > 0 && h !== lastHeight) {
|
|
70
|
+
lastHeight = h;
|
|
71
|
+
parent.postMessage({ type: "widget:resize", height: h, first: first }, "*");
|
|
72
|
+
}
|
|
73
|
+
first = false;
|
|
74
|
+
}, 60);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function notifyError(message) {
|
|
78
|
+
try {
|
|
79
|
+
parent.postMessage({ type: "widget:error", message: String(message || "Widget render failed.") }, "*");
|
|
80
|
+
} catch (_) {}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function handleUpdate(html) {
|
|
84
|
+
try {
|
|
85
|
+
root.innerHTML = html;
|
|
86
|
+
reportHeight();
|
|
87
|
+
} catch (error) {
|
|
88
|
+
notifyError(error && error.message ? error.message : error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function handleFinalize(html) {
|
|
93
|
+
try {
|
|
94
|
+
var tmp = document.createElement("div");
|
|
95
|
+
tmp.innerHTML = html;
|
|
96
|
+
var nodes = tmp.querySelectorAll("script");
|
|
97
|
+
var scripts = [];
|
|
98
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
99
|
+
var item = { src: nodes[i].src || "", text: nodes[i].textContent || "", attrs: [] };
|
|
100
|
+
for (var j = 0; j < nodes[i].attributes.length; j++) {
|
|
101
|
+
var attr = nodes[i].attributes[j];
|
|
102
|
+
if (attr.name !== "src" && attr.name !== "onload") item.attrs.push({ name: attr.name, value: attr.value });
|
|
103
|
+
}
|
|
104
|
+
scripts.push(item);
|
|
105
|
+
nodes[i].remove();
|
|
106
|
+
}
|
|
107
|
+
var visualHtml = tmp.innerHTML;
|
|
108
|
+
if (root.innerHTML !== visualHtml) root.innerHTML = visualHtml;
|
|
109
|
+
|
|
110
|
+
var cdnScripts = scripts.filter(function(s) { return !!s.src; });
|
|
111
|
+
var inlineScripts = scripts.filter(function(s) { return !s.src && s.text; });
|
|
112
|
+
function appendInline() {
|
|
113
|
+
for (var k = 0; k < inlineScripts.length; k++) {
|
|
114
|
+
var s = document.createElement("script");
|
|
115
|
+
s.textContent = inlineScripts[k].text;
|
|
116
|
+
for (var a = 0; a < inlineScripts[k].attrs.length; a++) {
|
|
117
|
+
s.setAttribute(inlineScripts[k].attrs[a].name, inlineScripts[k].attrs[a].value);
|
|
118
|
+
}
|
|
119
|
+
root.appendChild(s);
|
|
120
|
+
}
|
|
121
|
+
reportHeight();
|
|
122
|
+
setTimeout(function() { parent.postMessage({ type: "widget:scriptsReady" }, "*"); }, 50);
|
|
123
|
+
}
|
|
124
|
+
if (cdnScripts.length === 0) {
|
|
125
|
+
appendInline();
|
|
126
|
+
} else {
|
|
127
|
+
var pending = cdnScripts.length;
|
|
128
|
+
function done() { pending--; if (pending <= 0) appendInline(); }
|
|
129
|
+
for (var c = 0; c < cdnScripts.length; c++) {
|
|
130
|
+
var n = document.createElement("script");
|
|
131
|
+
n.src = cdnScripts[c].src;
|
|
132
|
+
n.onload = done;
|
|
133
|
+
n.onerror = done;
|
|
134
|
+
for (var d = 0; d < cdnScripts[c].attrs.length; d++) {
|
|
135
|
+
n.setAttribute(cdnScripts[c].attrs[d].name, cdnScripts[c].attrs[d].value);
|
|
136
|
+
}
|
|
137
|
+
root.appendChild(n);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
reportHeight();
|
|
141
|
+
setTimeout(reportHeight, 150);
|
|
142
|
+
setTimeout(reportHeight, 600);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function handleTheme(vars) {
|
|
146
|
+
Object.entries(vars || {}).forEach(function(_a) {
|
|
147
|
+
var key = _a[0], val = _a[1];
|
|
148
|
+
document.documentElement.style.setProperty(key, val);
|
|
149
|
+
});
|
|
150
|
+
if (typeof arguments[1] === "boolean") {
|
|
151
|
+
document.documentElement.className = arguments[1] ? "dark" : "";
|
|
152
|
+
}
|
|
153
|
+
reportHeight();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function captureRenderedWidget(requestId) {
|
|
157
|
+
try {
|
|
158
|
+
var html = root.innerHTML;
|
|
159
|
+
var styles = "";
|
|
160
|
+
var styleEls = document.querySelectorAll("style");
|
|
161
|
+
for (var si = 0; si < styleEls.length; si++) {
|
|
162
|
+
styles += styleEls[si].textContent || "";
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
var canvases = document.querySelectorAll("canvas");
|
|
166
|
+
var snapshots = [];
|
|
167
|
+
var placeholders = [];
|
|
168
|
+
var hidden = [];
|
|
169
|
+
for (var ci = 0; ci < canvases.length; ci++) {
|
|
170
|
+
try {
|
|
171
|
+
var canvas = canvases[ci];
|
|
172
|
+
var placeholder = document.createElement("img");
|
|
173
|
+
placeholder.setAttribute("data-canvas-export", String(ci));
|
|
174
|
+
placeholder.style.cssText = "width:" + canvas.offsetWidth + "px;height:" + canvas.offsetHeight + "px;display:block;";
|
|
175
|
+
canvas.parentNode.insertBefore(placeholder, canvas);
|
|
176
|
+
placeholders.push(placeholder);
|
|
177
|
+
hidden.push({ node: canvas, display: canvas.style.display });
|
|
178
|
+
canvas.style.display = "none";
|
|
179
|
+
snapshots.push({
|
|
180
|
+
dataUrl: canvas.toDataURL("image/png"),
|
|
181
|
+
width: canvas.offsetWidth,
|
|
182
|
+
height: canvas.offsetHeight,
|
|
183
|
+
});
|
|
184
|
+
} catch (_err) {
|
|
185
|
+
snapshots.push(null);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
html = root.innerHTML;
|
|
190
|
+
|
|
191
|
+
for (var pi = 0; pi < placeholders.length; pi++) {
|
|
192
|
+
placeholders[pi].remove();
|
|
193
|
+
}
|
|
194
|
+
for (var hi = 0; hi < hidden.length; hi++) {
|
|
195
|
+
hidden[hi].node.style.display = hidden[hi].display;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
parent.postMessage({
|
|
199
|
+
type: "widget:captured",
|
|
200
|
+
requestId: requestId,
|
|
201
|
+
html: html,
|
|
202
|
+
styles: styles,
|
|
203
|
+
canvases: snapshots,
|
|
204
|
+
bodyWidth: document.body.scrollWidth,
|
|
205
|
+
bodyHeight: document.body.scrollHeight,
|
|
206
|
+
}, "*");
|
|
207
|
+
} catch (_err) {
|
|
208
|
+
parent.postMessage({ type: "widget:captured", requestId: requestId, html: null }, "*");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
var ro = new ResizeObserver(reportHeight);
|
|
213
|
+
ro.observe(root);
|
|
214
|
+
|
|
215
|
+
window.addEventListener("message", function(e) {
|
|
216
|
+
if (!e.data || typeof e.data.type !== "string") return;
|
|
217
|
+
switch (e.data.type) {
|
|
218
|
+
case "widget:update": handleUpdate(e.data.html || ""); break;
|
|
219
|
+
case "widget:finalize": handleFinalize(e.data.html || ""); break;
|
|
220
|
+
case "widget:theme": handleTheme(e.data.vars, e.data.isDark); break;
|
|
221
|
+
case "widget:capture": captureRenderedWidget(e.data.requestId); break;
|
|
222
|
+
case "widget:crossFilter":
|
|
223
|
+
window.dispatchEvent(new CustomEvent("widget-filter", { detail: e.data.payload }));
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
document.addEventListener("click", function(e) {
|
|
229
|
+
var a = e.target && e.target.closest ? e.target.closest("a[href]") : null;
|
|
230
|
+
if (!a) return;
|
|
231
|
+
var href = a.getAttribute("href");
|
|
232
|
+
if (!href || href.charAt(0) === "#") return;
|
|
233
|
+
e.preventDefault();
|
|
234
|
+
parent.postMessage({ type: "widget:link", href: href }, "*");
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
window.__widgetSendMessage = function(text) {
|
|
238
|
+
if (typeof text === "string" && text.length <= 500) {
|
|
239
|
+
parent.postMessage({ type: "widget:sendMessage", text: text }, "*");
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
window.__widgetPublish = function(topic, data) {
|
|
244
|
+
if (typeof topic === "string") {
|
|
245
|
+
parent.postMessage({ type: "widget:publish", topic: topic, data: data }, "*");
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
notifyReady();
|
|
250
|
+
})();
|
|
251
|
+
</script>
|
|
252
|
+
</body>
|
|
253
|
+
</html>`}},6750:(e,t,r)=>{r.d(t,{OI:()=>o,PH:()=>a,QG:()=>i,ok:()=>l});var n=r(95155);function i({children:e,style:t}){return(0,n.jsx)("div",{"data-document-surface":"canvas-stage",style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"flex-start",...t},children:e})}function l({children:e,style:t}){return(0,n.jsx)("div",{"data-document-surface":"canvas-card",style:{background:"#fff",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 2px 8px rgba(0,0,0,0.08)",overflow:"hidden",...t},children:e})}function a({children:e,style:t}){return(0,n.jsx)("div",{"data-document-surface":"canvas-header",style:{padding:"8px 16px",background:"var(--bg)",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",...t},children:e})}function o({children:e,style:t}){return(0,n.jsx)("div",{"data-document-surface":"canvas-body",style:{padding:"24px 32px 40px",...t},children:e})}},7834:(e,t,r)=>{r.d(t,{D:()=>n});function n(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}},10789:(e,t,r)=>{r.d(t,{WN:()=>o,_9:()=>d,eM:()=>a,lN:()=>l,n1:()=>s});var n=r(2112);let i=["--bg","--bg-panel","--bg-hover","--bg-selected","--border","--text","--text-muted","--text-dim","--accent","--accent-hover"];function l(e,t){let r={widget_code:e};return t?.trim()&&(r.title=t.trim()),"```show-widget\n"+JSON.stringify(r,null,2)+"\n```"}async function a(e){if(navigator.clipboard?.writeText)return void await navigator.clipboard.writeText(e);let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.inset="0",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();let r=document.execCommand("copy");if(document.body.removeChild(t),!r)throw Error("Clipboard copy failed.")}function o(e,t){let r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(r)}function s(e){return((e||"widget").trim()||"widget").replace(/[^a-zA-Z0-9._-]+/g,"_").replace(/^_+|_+$/g,"")||"widget"}async function d(e){let t=await c(e.code);if(t)return t;if(e.capture)return function(e){if(!e.html)throw Error("The widget did not provide capturable HTML.");let t=p({width:e.bodyWidth||640,height:e.bodyHeight||360}),r=function(e){let t=document.createElement("template");t.innerHTML=(0,n.L$)(e.html||"");let r=document.createElement("div");for(let n of(r.appendChild(t.content.cloneNode(!0)),Array.from(r.querySelectorAll("img[data-canvas-export]")))){let t=Number(n.getAttribute("data-canvas-export")),r=Number.isFinite(t)?e.canvases?.[t]:null;if(!r?.dataUrl){n.remove();continue}n.setAttribute("src",r.dataUrl),n.setAttribute("width",String(r.width)),n.setAttribute("height",String(r.height)),n.setAttribute("style",function(e,t){let r=new Map;for(let t of(e||"").split(";")){let[e,...n]=t.split(":");e?.trim()&&n.length>0&&r.set(e.trim(),n.join(":").trim())}for(let[e,n]of Object.entries(t))r.set(e,n);return Array.from(r.entries()).map(([e,t])=>e+":"+t).join(";")}(n.getAttribute("style"),{width:r.width+"px",height:r.height+"px",display:"block"}))}return u(r),Array.from(r.childNodes).map(e=>new XMLSerializer().serializeToString(e)).join("")}(e);if(!r.trim())throw Error("The widget capture was empty.");let l=[e.styles||"","#__widget_export_root{"+function(){if("u"<typeof document)return"";let e=getComputedStyle(document.documentElement);return i.map(t=>{let r=e.getPropertyValue(t).trim();return r?t+":"+r+";":""}).join("")}()+'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;font-size:14px;line-height:1.6;color:var(--text,#1a1a1a);background:transparent;}',"#__widget_export_root *{box-sizing:border-box;}\n#__widget_export_root svg{max-width:100%;height:auto;display:block;}"].join("\n");return f(x('<svg xmlns="http://www.w3.org/2000/svg" width="'+t.width+'" height="'+t.height+'" viewBox="0 0 '+t.width+" "+t.height+'"><defs><style><![CDATA['+l.replace(/\]\]>/g,"]]]]><![CDATA[>")+']]></style></defs><foreignObject x="0" y="0" width="100%" height="100%">'+('<div xmlns="http://www.w3.org/1999/xhtml" id="__widget_export_root" style="width:'+t.width+"px;min-height:")+t.height+'px;overflow:visible;">'+r+"</div></foreignObject></svg>"),t.width,t.height)}(e.capture);throw Error("PNG export needs a rendered widget capture.")}async function c(e){var t;let r,i,l,a,o=function(e){let t=(0,n.L$)(e).trim();if(!/^<\s*(style|svg)\b/i.test(t))return null;let r=new DOMParser().parseFromString(t,"text/html"),i=Array.from(r.body.children),l=i.filter(e=>"svg"===e.tagName.toLowerCase()),a=i.filter(e=>"style"!==e.tagName.toLowerCase());if(1!==l.length||1!==a.length)return null;let o=l[0].cloneNode(!0),s=Array.from(r.body.querySelectorAll("style")).map(e=>e.textContent||"").join("\n").trim();if(s){let e=document.createElementNS("http://www.w3.org/2000/svg","style");e.textContent=s,o.insertBefore(e,o.firstChild)}return o}(e);if(!o)return null;u(o),o.setAttribute("xmlns","http://www.w3.org/2000/svg");let s=p((r=function(e){if(!e)return null;let t=e.trim().split(/[\s,]+/).map(Number);return 4!==t.length||t.some(e=>!Number.isFinite(e))||t[2]<=0||t[3]<=0?null:{width:t[2],height:t[3]}}((t=o).getAttribute("viewBox")),i=h(t.getAttribute("width"))??r?.width??640,l=r?r.height/r.width:.5625,a=h(t.getAttribute("height"))??r?.height??i*l,{width:i,height:a}));return o.setAttribute("width",String(s.width)),o.setAttribute("height",String(s.height)),o.getAttribute("viewBox")||o.setAttribute("viewBox","0 0 "+s.width+" "+s.height),f(x(new XMLSerializer().serializeToString(o)),s.width,s.height)}function u(e){for(let t of Array.from(e.querySelectorAll("script, iframe, object, embed, meta, link, base, form")))t.remove();for(let t of[e,...Array.from(e.querySelectorAll("*"))])for(let e of Array.from(t.attributes)){let r=e.name.toLowerCase(),n=e.value.trim();if(r.startsWith("on")){t.removeAttribute(e.name);continue}("href"===r||"src"===r||r.endsWith(":href"))&&/^\s*(javascript|data:text\/html)/i.test(n)&&t.removeAttribute(e.name)}}function h(e){if(!e||e.includes("%"))return null;let t=Number.parseFloat(e);return Number.isFinite(t)&&t>0?t:null}function p(e){let t=g(Math.ceil(e.width||640),240,2e3),r=g(Math.ceil(e.height||360),80,4e3),n=t*r;if(n>8e6){let e=Math.sqrt(8e6/n);t=Math.max(240,Math.floor(t*e)),r=Math.max(80,Math.floor(r*e))}return{width:t,height:r}}function g(e,t,r){return Math.min(Math.max(e,t),r)}function f(e,t,r){return new Promise((n,i)=>{let l=new Image,a=URL.createObjectURL(new Blob([e],{type:"image/svg+xml;charset=utf-8"}));l.onload=()=>{URL.revokeObjectURL(a);try{let e=document.createElement("canvas"),a=Math.min(window.devicePixelRatio||1,2);e.width=Math.ceil(t*a),e.height=Math.ceil(r*a),e.style.width=t+"px",e.style.height=r+"px";let o=e.getContext("2d");if(!o)throw Error("Canvas is not available.");o.scale(a,a),o.drawImage(l,0,0,t,r),e.toBlob(e=>{e?n(e):i(Error("Canvas export returned no image."))},"image/png")}catch(e){i(e instanceof Error?e:Error("PNG export failed."))}},l.onerror=()=>{URL.revokeObjectURL(a),i(Error("The browser could not render this widget as PNG."))},l.src=a})}function x(e){if("u"<typeof document)return e;let t=getComputedStyle(document.documentElement);return e.replace(/var\(\s*(--[a-zA-Z0-9_-]+)(?:\s*,\s*([^)]+))?\)/g,(e,r,n)=>t.getPropertyValue(r).trim()||n?.trim()||"#000")}},17689:(e,t,r)=>{r.d(t,{Dm:()=>f});var n=r(95155),i=r(12115),l=r(55543),a=r(68515),o=r(31775),s=r(30259);function d({model:e,background:t="transparent",maxHeight:r=280}){return 0===e.resultImages.length&&0===e.collapsedPreviewPaths.length?null:(0,n.jsxs)("div",{style:{padding:"0 10px 10px",background:t},children:[e.resultImages.length>0&&(0,n.jsx)(s.O7,{images:e.resultImages,maxHeight:r}),e.collapsedPreviewPaths.length>0&&(0,n.jsx)(s.eR,{imagePaths:e.collapsedPreviewPaths,maxHeight:r})]})}function c({model:e,inputMaxHeight:t=280,inputBackground:r="var(--bg-subtle)",inputTextColor:i="var(--text-muted)",showBorderTop:l=!1}){let a=(0,n.jsx)(o.m,{text:e.inputText,maxHeight:t,collapsible:!0,textColor:i,background:r});return l?(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:a}):a}function u({model:e,result:t,showUnavailableWhenMissing:r=!1,unavailableLabel:i="Result not available"}){return t?(0,n.jsx)(s.qb,{text:e.displayResultText??"",isEmpty:e.resultIsEmpty,isError:t.isError??!1,images:e.resultImages,imagePaths:e.mergedImagePaths,toolDetails:t.details??null}):r?(0,n.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12,fontStyle:"italic"},children:i}):null}var h=r(87559);function p({expanded:e,onToggle:t,tool:r,status:i,durationLabel:l,title:o,summary:s,titleTooltip:d,summaryTooltip:c,leading:u,titleStyle:g,buttonStyle:f}){return(0,n.jsx)(a.V,{expanded:e,onToggle:t,status:i,title:o??r.toolName,summary:s??(0,h.Wm)(r.input),durationLabel:l,leading:u,titleTooltip:d,summaryTooltip:c,buttonStyle:f,titleStyle:g})}function g({expanded:e,model:t,result:r,collapsedPreviewBackground:i="transparent",showCollapsedPreview:l=!0,showUnavailableWhenMissing:a=!1,unavailableLabel:o="Result not available",showInputBorderTop:s=!1}){return e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c,{model:t,showBorderTop:s}),(0,n.jsx)(u,{model:t,result:r,showUnavailableWhenMissing:a,unavailableLabel:o})]}):l?(0,n.jsx)(d,{model:t,background:i}):null}function f({tool:e,result:t,status:r,durationLabel:a,cwd:o,title:d,summary:c,titleTooltip:u,summaryTooltip:h,leading:x,collapsedPreviewBackground:m="transparent",showCollapsedPreview:y=!0,showUnavailableWhenMissing:v=!1,unavailableLabel:b="Result not available",showInputBorderTop:w=!1,titleStyle:j,buttonStyle:k,containerStyle:S}){let[C,L]=(0,i.useState)(!1),M=(0,i.useMemo)(()=>(function({input:e,result:t,cwd:r}){let n=JSON.stringify(e??{},null,2),i=t?t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,l=t?t.content.filter(e=>"image"===e.type):[],a=(0,s.Ln)(i,l.length>0),o=null!==a&&("(no output)"===a.trim()||""===a.trim()),d=(0,s.qn)(n,r),c=(0,s.qn)(a,r),u=(0,s.Xz)([...c,...d]),h=c.length>0?c:d;return{inputText:n,displayResultText:a,resultImages:l,resultIsEmpty:o,inputImagePaths:d,resultImagePaths:c,mergedImagePaths:u,collapsedPreviewPaths:h}})({input:e.input,result:t,cwd:o}),[o,t,e.input]);return(0,n.jsxs)(l.t,{kind:"tool-call",style:{fontSize:12,minWidth:0,...S},children:[(0,n.jsx)(p,{expanded:C,onToggle:()=>L(e=>!e),tool:e,status:r,durationLabel:a,title:d,summary:c,titleTooltip:u,summaryTooltip:h,leading:x,titleStyle:j,buttonStyle:k}),(0,n.jsx)(g,{expanded:C,model:M,result:t,collapsedPreviewBackground:m,showCollapsedPreview:y,showUnavailableWhenMissing:v,unavailableLabel:b,showInputBorderTop:w})]})}},18678:(e,t,r)=>{r.d(t,{Gb:()=>l,U1:()=>s,s2:()=>i});var n=r(95155);function i(e,t){return e?.isError?"error":e?"success":t?"running":"unknown"}function l(e){return"success"===e?"#16a34a":"error"===e?"#f87171":"running"===e?"#f59e0b":"var(--text-dim)"}function a(e){return"success"===e?"Done":"error"===e?"Error":"running"===e?"Running":"Unknown"}function o({status:e}){return"running"===e?(0,n.jsx)("span",{style:{width:6,height:6,borderRadius:999,background:l(e),animation:"pulse 1.2s ease-in-out infinite"}}):"success"===e?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):"error"===e?(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"m18 6-12 12"}),(0,n.jsx)("path",{d:"m6 6 12 12"})]}):(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M12 8v5"}),(0,n.jsx)("path",{d:"M12 16h.01"})]})}function s({status:e}){let t=l(e);return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,minHeight:18,padding:"0 6px",borderRadius:999,border:`1px solid color-mix(in srgb, ${t} 35%, transparent)`,background:`color-mix(in srgb, ${t} 10%, transparent)`,color:t,fontSize:10,fontWeight:600,whiteSpace:"nowrap",flexShrink:0},title:a(e),children:[(0,n.jsx)(o,{status:e}),(0,n.jsx)("span",{children:a(e)})]})}},22100:(e,t,r)=>{r.d(t,{u:()=>u});var n=r(95155),i=r(12115),l=r(96793),a=r(10789),o=r(2112);let s=/cdnjs\.cloudflare\.com|cdn\.jsdelivr\.net|unpkg\.com|esm\.sh/,d=new Map;function c(e){return e.slice(0,200)}function u({code:e,isStreaming:t,title:r,showOverlay:h,onSendMessage:p}){let{isDark:g}=(0,l.D)(),f=(0,i.useRef)(null),x=(0,i.useRef)(null),m=(0,i.useRef)(null),y=(0,i.useRef)(new Map),v=(0,i.useRef)(""),[b,w]=(0,i.useState)(!1),[j,k]=(0,i.useState)(()=>d.get(c(e))??0),[S,C]=(0,i.useState)(!1),[L,M]=(0,i.useState)(!1),[$,E]=(0,i.useState)(null),[W,T]=(0,i.useState)(!1),[z,P]=(0,i.useState)(!1),[R,H]=(0,i.useState)(null),B=(0,i.useRef)(""),N=(0,i.useRef)((d.get(c(e))??0)>0),F=(0,i.useRef)(!1),I=(0,i.useRef)(g),[A,O]=(0,i.useState)(()=>(0,o.sM)((0,o.f7)({}),I.current)),_=(0,i.useCallback)(e=>{m.current&&clearTimeout(m.current),E(e),m.current=setTimeout(()=>E(null),1800)},[]),D=(0,i.useMemo)(()=>s.test(e),[e]);(0,i.useEffect)(()=>{O((0,o.sM)((0,o.f7)((0,o.SR)()),I.current))},[]),(0,i.useEffect)(()=>{H(null)},[e]),(0,i.useEffect)(()=>{function t(t){if(t.data&&"string"==typeof t.data.type&&(!f.current||t.source===f.current.contentWindow))switch(t.data.type){case"widget:ready":w(!0),H(null);break;case"widget:error":H(String(t.data.message??"Widget render failed.")),_("Widget failed");break;case"widget:captured":{let e=String(t.data.requestId??""),r=y.current.get(e);if(!r)break;clearTimeout(r.timeout),y.current.delete(e),r.resolve({html:"string"==typeof t.data.html?t.data.html:null,styles:"string"==typeof t.data.styles?t.data.styles:"",canvases:Array.isArray(t.data.canvases)?t.data.canvases:[],bodyWidth:"number"==typeof t.data.bodyWidth?t.data.bodyWidth:void 0,bodyHeight:"number"==typeof t.data.bodyHeight?t.data.bodyHeight:void 0});break}case"widget:resize":if("number"==typeof t.data.height&&t.data.height>0){let r=Math.min(t.data.height+2,2e3),n=c(e);if(F.current){k(e=>{let t=Math.max(e,r);return d.set(n,t),t});break}if(d.set(n,r),N.current)k(r);else{N.current=!0;let e=f.current;e&&(e.style.transition="none",e.offsetHeight),k(r),requestAnimationFrame(()=>{e&&(e.style.transition="height 0.2s ease-out")})}}break;case"widget:link":{let e=String(t.data.href??"");e&&!/^\s*(javascript|data)\s*:/i.test(e)&&window.open(e,"_blank","noopener,noreferrer");break}case"widget:sendMessage":{let e=String(t.data.text??"");e&&e.length<=500&&p?.(e);break}case"widget:publish":window.dispatchEvent(new CustomEvent("widget-cross-publish",{detail:{topic:t.data.topic,data:t.data.data,sourceIframe:f.current}}))}}return window.addEventListener("message",t),()=>window.removeEventListener("message",t)},[e,p,_]),(0,i.useEffect)(()=>{let e=y.current;return()=>{for(let t of(m.current&&clearTimeout(m.current),e.values()))clearTimeout(t.timeout),t.reject(Error("Widget renderer unmounted."));e.clear()}},[]),(0,i.useEffect)(()=>{function e(e){let t=e.detail;f.current?.contentWindow&&t?.sourceIframe!==f.current&&f.current.contentWindow.postMessage({type:"widget:crossFilter",payload:{topic:t?.topic,data:t?.data}},"*")}return window.addEventListener("widget-cross-publish",e),()=>window.removeEventListener("widget-cross-publish",e)},[]);let G=(0,i.useCallback)(e=>{let t=f.current;t?.contentWindow&&e!==v.current&&(v.current=e,t.contentWindow.postMessage({type:"widget:update",html:e},"*"))},[]);(0,i.useEffect)(()=>{if(!t||!b)return;let r=(0,o.Xw)(e);return x.current&&clearTimeout(x.current),x.current=setTimeout(()=>G(r),120),()=>{x.current&&clearTimeout(x.current)}},[e,t,b,G]),(0,i.useEffect)(()=>{if(t||!b||B.current===e)return;let r=(0,o.L$)(e),n=f.current;if(!n?.contentWindow)return;B.current=e,v.current=r,F.current=!0,P(!1),n.contentWindow.postMessage({type:"widget:finalize",html:r},"*");let i=setTimeout(()=>{F.current=!1,P(!0)},450);return()=>clearTimeout(i)},[t,b,e]),(0,i.useEffect)(()=>{if(!b)return;let e=()=>{f.current?.contentWindow?.postMessage({type:"widget:theme",vars:(0,o.SR)(),isDark:g},"*")};e();let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()},[b,g]),(0,i.useEffect)(()=>{if(!L)return;let e=document.body.style.overflow;document.body.style.overflow="hidden";let t=e=>{"Escape"===e.key&&M(!1)};return window.addEventListener("keydown",t),()=>{document.body.style.overflow=e,window.removeEventListener("keydown",t)}},[L]);let q=(0,i.useCallback)(()=>{let e=f.current?.contentWindow;return e?new Promise((t,r)=>{let n=`${Date.now()}-${Math.random().toString(36).slice(2)}`,i=setTimeout(()=>{y.current.delete(n),r(Error("Timed out waiting for widget capture."))},2500);y.current.set(n,{resolve:t,reject:r,timeout:i}),e.postMessage({type:"widget:capture",requestId:n},"*")}):Promise.reject(Error("Widget iframe is not ready."))},[]),U=(0,i.useCallback)(async()=>{try{await (0,a.eM)((0,a.lN)(e,r)),_("Copied source")}catch{_("Copy failed")}},[e,r,_]),V=(0,i.useCallback)(async()=>{try{await (0,a.eM)(e),_("Copied HTML/SVG")}catch{_("Copy failed")}},[e,_]),Z=(0,i.useCallback)(async()=>{if(!t&&!W){T(!0),_("Exporting PNG...");try{let t;try{t=await (0,a._9)({code:e})}catch{let r=await q();t=await (0,a._9)({code:e,capture:r})}(0,a.WN)(t,`${(0,a.n1)(r)}.png`),_("Downloaded PNG")}catch(e){console.warn("[WidgetRenderer] PNG export failed:",e),_("PNG export unavailable")}finally{T(!1)}}},[e,r,t,W,q,_]),K=h||D&&!t&&b&&!z,J={width:24,height:22,padding:0,background:"var(--bg-hover)",color:"var(--text-dim)",border:"1px solid var(--border)",borderRadius:3,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},X={...J,width:48,fontSize:10,whiteSpace:"nowrap"};return(0,n.jsxs)("div",{className:"widget-frame",style:{position:L?"fixed":"relative",inset:L?12:void 0,zIndex:L?1e3:void 0,marginTop:4*!L,marginBottom:4*!L,borderRadius:L?8:6,background:L?"var(--bg)":void 0,boxShadow:L?"0 24px 80px rgba(0, 0, 0, 0.35)":void 0,display:L?"flex":void 0,flexDirection:L?"column":void 0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderBottom:"none",borderRadius:`${L?8:6}px ${L?8:6}px 0 0`,fontSize:11,color:"var(--text-dim)",minHeight:26,flexShrink:0},children:[(0,n.jsx)("span",{style:{fontWeight:600,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r||"Widget"}),t&&(0,n.jsx)("span",{style:{fontSize:10,color:"var(--accent)",animation:"pulse 1.5s infinite",flexShrink:0},children:"streaming…"}),$&&(0,n.jsx)("span",{"aria-live":"polite",style:{marginLeft:"auto",fontSize:10,color:"var(--text-muted)",flexShrink:0},children:$}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,marginLeft:$?0:"auto",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",onClick:U,title:"Copy show-widget source","aria-label":"Copy show-widget source",style:J,children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,n.jsx)("polyline",{points:"8 6 2 12 8 18"})]})}),(0,n.jsx)("button",{type:"button",onClick:V,title:"Copy widget HTML/SVG","aria-label":"Copy widget HTML/SVG",style:J,children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}),(0,n.jsx)("button",{type:"button",onClick:Z,disabled:t||W,title:t?"PNG export is available after streaming finishes":"Export widget as PNG","aria-label":"Export widget as PNG",style:{...J,...t||W?{opacity:.45,cursor:"not-allowed"}:null},children:W?(0,n.jsx)("span",{style:{fontSize:9},children:"..."}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,n.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,n.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})}),(0,n.jsx)("button",{type:"button",onClick:()=>M(e=>!e),title:L?"Exit full screen":"View full screen","aria-label":L?"Exit full screen":"View full screen",style:J,children:L?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,n.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,n.jsx)("line",{x1:"14",y1:"10",x2:"21",y2:"3"}),(0,n.jsx)("line",{x1:"3",y1:"21",x2:"10",y2:"14"})]}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"15 3 21 3 21 9"}),(0,n.jsx)("polyline",{points:"9 21 3 21 3 15"}),(0,n.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"}),(0,n.jsx)("line",{x1:"3",y1:"21",x2:"10",y2:"14"})]})}),(0,n.jsx)("button",{type:"button",onClick:()=>C(e=>!e),title:S?"Show widget preview":"Show widget code","aria-pressed":S,style:X,children:S?"Preview":"Code"})]})]}),S&&(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text-muted)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"0 0 6px 6px",overflow:"auto",maxHeight:L?"none":400,flex:L?1:void 0,whiteSpace:"pre-wrap"},children:e}),(0,n.jsx)("iframe",{ref:f,sandbox:"allow-scripts",srcDoc:A,title:r||"Widget",onLoad:()=>{w(!0),H(null)},style:{width:"100%",height:L?"calc(100vh - 50px)":j,minHeight:j>0?void 0:80,border:"1px solid var(--border)",borderRadius:`0 0 ${L?8:6}px ${L?8:6}px`,display:S?"none":"block",overflow:"hidden",background:"transparent",flex:L?1:void 0,transition:N.current?"height 0.2s ease-out":"none"}}),R&&!S&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderTop:"none",borderRadius:`0 0 ${L?8:6}px ${L?8:6}px`,padding:"12px 14px",color:"var(--text-muted)",background:"var(--bg)",fontSize:12},children:["Widget preview failed: ",R]}),K&&!S&&!R&&(0,n.jsx)("div",{className:"widget-shimmer",style:{position:"absolute",inset:0,top:26,pointerEvents:"none",borderRadius:"0 0 6px 6px"}})]})}},25618:(e,t,r)=>{r.d(t,{h:()=>G});var n=r(95155),i=r(12115),l=r(76577),a=r(27568);function o({dir:e}){return(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:"asc"===e?(0,n.jsx)("polyline",{points:"2 6 5 3 8 6"}):(0,n.jsx)("polyline",{points:"2 4 5 7 8 4"})})}function s(e,t,r){let n=new Blob([e],{type:r}),i=URL.createObjectURL(n),l=document.createElement("a");l.href=i,l.download=t,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(i),1e3)}function d({content:e,delimiter:t,fileName:r="table"}){let[l,a]=(0,i.useState)(null),[c,u]=(0,i.useState)("asc"),{header:h,rows:p}=(0,i.useMemo)(()=>(function(e,t){let r=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),n=[],i=[],l="",a=!1;for(let e=0;e<r.length;e+=1){let o=r[e];if('"'===o){a&&'"'===r[e+1]?(l+='"',e+=1):a=!a;continue}if(o===t&&!a){i.push(l),l="";continue}if("\n"===o&&!a){i.push(l),i.some(e=>e.length>0)&&n.push(i),i=[],l="";continue}l+=o}i.push(l),i.some(e=>e.length>0)&&n.push(i);let o=n[0]??[],s=o.length;return{header:o,rows:n.slice(1).map(e=>{let t=[...e];for(;t.length<s;)t.push("");return t.slice(0,s)})}})(e,t),[e,t]),g=(0,i.useMemo)(()=>{if(null===l)return p;let e=[...p];return e.sort((e,t)=>{let r=e[l]??"",n=t[l]??"",i=Number(r),a=Number(n),o=""===r||""===n||Number.isNaN(i)||Number.isNaN(a)?r.localeCompare(n):i-a;return"asc"===c?o:-o}),e},[p,c,l]);return 0===h.length&&0===p.length?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:"No tabular data to display"}):(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:[p.length," rows, ",h.length," columns"]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsxs)("button",{onClick:()=>{s(e,r," "===t?"text/tab-separated-values;charset=utf-8":"text/csv;charset=utf-8")},style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:"var(--bg-hover)",color:"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5},children:["Export "," "===t?"TSV":"CSV"]}),(0,n.jsx)("button",{onClick:()=>{s(JSON.stringify(g.map(e=>Object.fromEntries(h.map((t,r)=>[t||`column_${r+1}`,e[r]??""]))),null,2),r.replace(/\.[^.]+$/,"")+".json","application/json;charset=utf-8")},style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:"var(--bg-hover)",color:"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5},children:"Export JSON"})]})]}),(0,n.jsx)("div",{style:{minHeight:0,flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",tableLayout:"fixed",fontSize:12},children:[(0,n.jsx)("thead",{style:{position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)"},children:(0,n.jsx)("tr",{children:h.map((e,t)=>(0,n.jsx)("th",{onClick:()=>{l===t?u(e=>"asc"===e?"desc":"asc"):(a(t),u("asc"))},title:e,style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",textAlign:"left",color:"var(--text-muted)",fontWeight:600,cursor:"pointer",userSelect:"none",fontSize:11,whiteSpace:"nowrap"},children:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:e||`column_${t+1}`}),l===t&&(0,n.jsx)("span",{style:{color:"var(--accent)",display:"inline-flex",flexShrink:0},children:(0,n.jsx)(o,{dir:c})})]})},`${e}-${t}`))})}),(0,n.jsx)("tbody",{children:g.map((e,t)=>(0,n.jsx)("tr",{style:{borderBottom:"1px solid rgba(127,127,127,0.14)",background:t%2==1?"var(--bg-subtle)":"transparent"},children:h.map((r,i)=>(0,n.jsx)("td",{title:e[i]??"",style:{padding:"6px 10px",color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:0},children:e[i]??""},`${r}-${t}-${i}`))},t))})]})})]})}var c=r(99947),u=r(7834),h=r(72518);let p={display:"inline-block",minWidth:"3em",paddingRight:"1em",textAlign:"right",color:"var(--text-dim)",fontStyle:"normal",userSelect:"none"};function g({code:e,language:t,isDark:r,wrapLines:l=!1}){let a="text"===t||"csv"===t||"tsv"===t?"plaintext":t||"plaintext",o=e.split("\n").length,s=(0,i.useMemo)(()=>(0,h.Rd)(e,a,r),[e,r,a]),[d,f]=(0,i.useState)(()=>s?.tokens??null),x=(0,i.useRef)(""),m=(0,i.useMemo)(()=>(0,h.nS)(e).tokens,[e]);(0,i.useEffect)(()=>{let t=`${e}:${a}:${r?"dark":"light"}`;x.current=t;let n=!1;return s?(f(s.tokens),()=>{n=!0}):((0,h.wY)(e,a,r,e=>{n||x.current!==t||f(e.tokens)}),()=>{n=!0})},[s,e,r,a]);let y=d??s?.tokens??m;return(0,n.jsxs)(c.NG,{style:{border:"none",borderRadius:0,minHeight:"100%"},children:[(0,n.jsx)(c.iO,{title:`${a} \xb7 ${o} lines`,actions:(0,n.jsx)(c.Mi,{onClick:()=>{(0,u.D)(e)},ariaLabel:"Copy file contents",title:"Copy file contents",label:"copy"}),style:{padding:"4px 16px",borderBottom:"1px solid var(--border)",background:"var(--bg)"}}),(0,n.jsx)("pre",{style:{margin:0,padding:"12px 0",background:"var(--bg)",fontSize:13,lineHeight:1.6,fontFamily:"var(--font-mono)",minHeight:"100%",overflow:"auto",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":void 0},children:(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:y.map((e,t)=>(0,n.jsxs)("span",{style:{display:"block"},children:[(0,n.jsx)("span",{style:p,children:t+1}),0===e.length?"\n":e.map((e,t)=>{let r=(0,h.tG)(e.fontStyle);return(0,n.jsx)("span",{style:{color:e.color??"inherit",...r},children:e.content},t)})]},t))})})]})}var f=r(44667),x=r(10789),m=r(28999);async function y(e){let t=await fetch(`/api/files/${(0,m.HG)(e)}?type=read&raw=1`);if(!t.ok)throw Error((await t.json().catch(()=>({error:`HTTP ${t.status}`}))).error??`HTTP ${t.status}`);let r=await t.blob();(0,x.WN)(r,(0,m.WP)(e))}function v({filePath:e}){let[t,r]=(0,i.useState)(!1),[l,a]=(0,i.useState)(null);return(0,n.jsx)("button",{onClick:()=>{a(null),r(!0),y(e).catch(e=>a(e instanceof Error?e.message:String(e))).finally(()=>r(!1))},disabled:t,title:l??"Download original file",style:{padding:"2px 10px",fontSize:11,cursor:"pointer",background:"var(--bg-hover)",color:"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:600,opacity:t?.7:1,...l?{borderColor:"#ef4444",color:"#ef4444"}:{}},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--accent)",e.currentTarget.style.color="#fff",e.currentTarget.style.borderColor="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)")},children:t?"Downloading…":"Download"})}var b=r(96793);function w(e){let t=(0,m.WP)(e).toLowerCase().split(".").pop()??"";return"csv"===t?",":"tsv"===t?" ":null}function j(e){let t=e.includes("/")?e.slice(0,e.lastIndexOf("/")):".",r=(0,m.HG)(t);return`/api/files/${r}/?type=read&raw=1`}function k({oldContent:e,newContent:t,language:r}){let i=function(e,t){let r=e.length,n=t.length,i=r+n,l=Array(2*i+1).fill(0),a=[];for(let o=0;o<=i;o++){a.push([...l]);for(let s=-o;s<=o;s+=2){let d,c=(d=s===-o||s!==o&&l[s-1+i]<l[s+1+i]?l[s+1+i]:l[s-1+i]+1)-s;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(l[s+i]=d,d>=r&&c>=n){let l=[],s=r,d=n;for(let r=o;r>0;r--){let n,o=a[r-1],c=s-d;n=c===-r||c!==r&&o[c-1+i]<o[c+1+i]?c+1:c-1;let u=o[n+i],h=u-n;for(;s>u&&d>h;)s--,d--,l.unshift({type:"unchanged",text:e[s],lineNo:s+1});r>0&&(s>u?(s--,l.unshift({type:"removed",text:e[s],lineNo:s+1})):(d--,l.unshift({type:"added",text:t[d],lineNo:d+1})))}for(;s>0&&d>0;)s--,d--,l.unshift({type:"unchanged",text:e[s],lineNo:s+1});return l}}}return[...e.map((e,t)=>({type:"removed",text:e,lineNo:t+1})),...t.map((e,t)=>({type:"added",text:e,lineNo:t+1}))]}(e.split("\n"),t.split("\n"));return(0,n.jsx)(l.pg,{diff:i})}function S({filePath:e,cwd:t,onOpenFile:r}){let{isDark:o}=(0,b.D)(),[s,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(null),[p,x]=(0,i.useState)(!0),[y,C]=(0,i.useState)(null),[L,M]=(0,i.useState)(null),[$,E]=(0,i.useState)(!1),[W,T]=(0,i.useState)("source"),[z,P]=(0,i.useState)(!1),[R,H]=(0,i.useState)(0),[B,N]=(0,i.useState)(!1),[F,I]=(0,i.useState)(0),[A,O]=(0,i.useState)(!1),[_,D]=(0,i.useState)(""),[G,q]=(0,i.useState)(!1),[U,V]=(0,i.useState)(!1),[Z,K]=(0,i.useState)(!1),[J,X]=(0,i.useState)(null),Y=(0,i.useRef)(null),Q=(0,i.useRef)(!1);Q.current=A;let ee=(0,i.useCallback)((e,t=!1)=>{let r=(0,m.HG)(e);return fetch(`/api/files/${r}?type=read`).then(e=>e.json()).then(e=>e.error?(C(e.error),null):(t?(c(t=>(t&&h(t.content),e)),I(e=>e+1)):c(e),C(null),e)).catch(e=>(C(String(e)),null))},[]);(0,i.useEffect)(()=>{x(!0),C(null),c(null),h(null),E(!1),T("source"),P(!1),H(0),I(0),N(!1),Y.current&&(Y.current.close(),Y.current=null),ee(e).then(t=>{(t?.language==="markdown"||w(e))&&E(!0)}).finally(()=>x(!1)).catch(()=>{});let t=(0,m.HG)(e),r=new EventSource(`/api/files/${t}?type=watch`);return Y.current=r,r.addEventListener("connected",()=>{N(!0)}),r.addEventListener("change",()=>{Q.current?V(!0):ee(e,!0)}),r.addEventListener("error",()=>{N(!1),r.close()}),r.onerror=()=>{N(!1),r.close()},()=>{r.close(),Y.current=null}},[e,ee]);let et=(0,i.useCallback)(()=>{s&&(O(!0),D(s.content),X(s.mtime??null),K(!1),M(null),V(!1),E(!1),T("source"))},[s]),er=(0,i.useCallback)(async(t=!1)=>{let r=(0,m.HG)(e);q(!0),K(!1),M(null);try{let n=await fetch(`/api/files/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:_,...t||!J?{}:{baseMtime:J}})});if(409===n.status){let e=await n.json().catch(()=>({error:"File changed on disk since it was opened"}));throw K(!0),V(!0),Error(e.error??"File changed on disk since it was opened")}if(!n.ok){let e=await n.json().catch(()=>({error:String(n.status)}));throw Error(e.error??`HTTP ${n.status}`)}let i=await ee(e,!0);X(i?.mtime??null),O(!1),V(!1),K(!1)}catch(e){M(e instanceof Error?e.message:String(e))}finally{q(!1)}},[J,_,ee,e]),en=(0,i.useCallback)(()=>{O(!1),V(!1),K(!1),M(null),X(null)},[]),ei=(0,i.useCallback)(()=>{H(e=>e+1)},[]),el=(0,i.useCallback)(async()=>{let t=await ee(e,!0);t&&(D(t.content),X(t.mtime??null),V(!1),K(!1),M(null),C(null))},[ee,e]),ea=s?.content??"",eo=s?.language??"",es="html"===eo,ed="markdown"===eo,ec=w(e),eu=null!==ec,eh=ea.split("\n"),ep=null!==s&&null!==u&&u!==ea,eg=(0,i.useMemo)(()=>{let t,r,n;return es?(t=j(e),r=`<base href="${t}">`,n=ea,(n=/<head(\s[^>]*)?>/i.test(n)?n.replace(/<head(\s[^>]*)?>/i,e=>`${e}${r}`):/<html(\s[^>]*)?>/i.test(n)?n.replace(/<html(\s[^>]*)?>/i,e=>`${e}<head>${r}</head>`):`<!doctype html><html><head>${r}</head><body>${n}</body></html>`).replace(/<script\b/gi,'<script data-annovibe-disabled="true" type="application/json"').replace(/\s(?:on[a-z]+)\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,"")):""},[ea,e,es]),ef=!es&&!ed&&!eu&&eh.length>5e4,ex=eu&&(eh.length>5e3||eh.slice(0,25).reduce((e,t)=>Math.max(e,t.split(ec??",").length),0)>100),em=(0,i.useMemo)(()=>{if(!es)return"";let t=j(e).includes("?")?"&":"?";return`${j(e)}${encodeURIComponent((0,m.WP)(e))}${t}v=${R}`},[e,R,es]);return p?(0,n.jsx)(l.nG,{children:"Loading..."}):y?(0,n.jsx)(l.nG,{tone:"error",children:y}):s?(0,n.jsxs)(l.fj,{children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e,trailing:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:s.language}),"source"===W&&(0,n.jsxs)("span",{children:[eh.length," lines"]}),(0,n.jsx)("span",{children:(0,l.v7)(s.size)}),(0,n.jsx)(v,{filePath:e}),(0,n.jsx)(l.mK,{watching:B}),A?(0,n.jsxs)(n.Fragment,{children:[(U||Z||L)&&(0,n.jsxs)("span",{title:"File changed on disk while editing",style:{padding:"2px 8px",fontSize:11,background:"rgba(234,179,8,0.1)",color:"#b8860b",border:"1px solid rgba(234,179,8,0.3)",borderRadius:5,display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,n.jsx)("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),(0,n.jsx)("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),L??"External change",(U||Z)&&(0,n.jsx)(l.ml,{onClick:el,style:{marginLeft:4,fontSize:10,background:"rgba(234,179,8,0.2)",color:"#b8860b",border:"1px solid rgba(234,179,8,0.3)",borderRadius:3,fontWeight:600},children:"Reload"}),Z&&(0,n.jsx)(l.ml,{onClick:()=>void er(!0),disabled:G,emphasis:"danger",style:{marginLeft:4,fontSize:10,borderRadius:3,fontWeight:600},children:"Overwrite"})]}),(0,n.jsx)(l.ml,{onClick:()=>void er(),disabled:G,title:"Save file (Ctrl+S)",emphasis:"primary",style:{fontWeight:600},children:G?"Saving…":"Save"}),(0,n.jsx)(l.ml,{onClick:en,title:"Cancel editing",emphasis:"danger",style:{fontWeight:600},children:"Cancel"})]}):(0,n.jsx)(l.ml,{onClick:et,title:"Edit file",style:{fontWeight:600},children:"Edit"}),ep&&(0,n.jsx)(l.Tg,{options:[{key:"source",label:"Source",active:"source"===W,onClick:()=>T("source")},{key:"diff",label:(0,n.jsxs)(n.Fragment,{children:["Diff ",F>0&&(0,n.jsxs)("span",{style:{color:"#4ade80",marginLeft:2},children:["+",F]})]}),active:"diff"===W,onClick:()=>T("diff")}]}),"source"===W&&!$&&(0,n.jsx)(l.ml,{onClick:()=>P(e=>!e),title:z?"Disable word wrap":"Enable word wrap",active:z,children:"wrap"}),es&&$&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.ml,{onClick:ei,title:"Reload the HTML preview",children:"Refresh preview"}),em&&(0,n.jsx)(l.ml,{onClick:()=>window.open(em,"_blank","noopener,noreferrer"),title:"Open HTML preview in a new tab",children:"Open in new tab"})]}),es&&"source"===W&&(0,n.jsx)(l.Tg,{options:[{key:"code",label:"Code",active:!$,onClick:()=>E(!1)},{key:"preview",label:"Preview",active:$,onClick:()=>E(!0)}]}),ed&&"source"===W&&(0,n.jsx)(l.Tg,{options:[{key:"preview",label:"Preview",active:$,onClick:()=>E(!0)},{key:"raw",label:A?"Edit":"Raw",active:!$,onClick:()=>E(!1)}]}),eu&&"source"===W&&(0,n.jsx)(l.Tg,{options:[{key:"table",label:"Table",active:$,onClick:()=>E(!0)},{key:"raw",label:"Raw",active:!$,onClick:()=>E(!1)}]})]})}),(0,n.jsx)(l.Ph,{children:A&&!(ed&&$)?(0,n.jsx)(a.g,{initialContent:_,language:s.language,isDark:o,onChange:D,onSave:()=>void er()}):A&&ed&&$?(0,n.jsx)(f.T,{content:_,className:"markdown-body markdown-file-preview",codeBlockVariant:"file",cwd:t,baseFilePath:e,onOpenLocalFile:r,style:{padding:"28px 36px",maxWidth:920,margin:"0 auto"}}):"diff"===W&&ep?(0,n.jsx)(k,{oldContent:u,newContent:s.content,language:s.language}):es&&$?(0,n.jsx)("iframe",{srcDoc:eg,sandbox:"",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:"HTML preview"},R):ed&&$?(0,n.jsx)(f.T,{content:s.content,className:"markdown-body markdown-file-preview",codeBlockVariant:"file",cwd:t,baseFilePath:e,onOpenLocalFile:r,style:{padding:"28px 36px",maxWidth:920,margin:"0 auto"}}):eu&&$&&ec?ex?(0,n.jsx)(l.nG,{children:"Table preview disabled for very large files. Switch to Raw mode or export the file."}):(0,n.jsx)(d,{content:s.content,delimiter:ec,fileName:(0,m.WP)(e)}):ef?(0,n.jsx)(l.nG,{children:"Text preview is too large for the rich viewer. Use Edit/Raw workflows instead."}):(0,n.jsx)(g,{code:s.content,language:s.language,isDark:o,wrapLines:z})})]}):null}var C=r(6750),L=r(63161);let M=null;function $({arrayBuffer:e,fileName:t,toolbarExtra:a}){let o=(0,i.useRef)(null),[s,d]=(0,i.useState)(!0),[c,u]=(0,i.useState)(null),[h,p]=(0,i.useState)(0),[g,f]=(0,i.useState)(1),[x,m]=(0,i.useState)(1),y=(0,i.useRef)(x);y.current=x;let v=(0,i.useRef)(null),b=(0,i.useRef)(null),w=(0,i.useCallback)(async e=>{if(!M||!v.current)return;let t=v.current;if(!(e<1)&&!(e>t.numPages)){b.current&&(b.current.cancel(),b.current=null);try{let r=await t.getPage(e),n=r.getViewport({scale:y.current*(window.devicePixelRatio||1)}),i=o.current;if(!i)return;let l=i.querySelector("canvas");if(l||((l=document.createElement("canvas")).style.display="block",l.style.margin="0 auto",i.innerHTML="",i.appendChild(l)),l.width=n.width,l.height=n.height,l.style.width=`${n.width/(window.devicePixelRatio||1)}px`,l.style.height=`${n.height/(window.devicePixelRatio||1)}px`,!l.getContext("2d"))return;let a=r.render({canvas:l,viewport:n});b.current=a,await a.promise,b.current=null}catch(e){"RenderingCancelledException"!==e.name&&console.error("PDF render error:",e)}}},[]);return(0,i.useEffect)(()=>{let t=!1;return async function(){d(!0),u(null);try{M||((M=await Promise.all([r.e(2213),r.e(2619)]).then(r.bind(r,12810))).GlobalWorkerOptions.workerSrc=new r.U(r(53228)).toString());let n=await M.getDocument({data:e}).promise;if(t)return;v.current=n,p(n.numPages),f(1),d(!1)}catch(e){t||(u(String(e)),d(!1))}}(),()=>{t=!0,b.current&&(b.current.cancel(),b.current=null)}},[e]),(0,i.useEffect)(()=>{!s&&h>0&&w(g)},[s,g,h,w]),(0,i.useEffect)(()=>{!s&&h>0&&w(g)},[x]),(0,n.jsx)(L.B,{fileName:t,pageInfo:h>0?`Page ${g} / ${h}`:void 0,zoom:x,onZoomIn:()=>m(e=>Math.min(e+.25,3)),onZoomOut:()=>m(e=>Math.max(e-.25,.25)),loading:s,loadingLabel:"Loading PDF...",error:c,bodyStyle:{background:"#525659",display:"flex",justifyContent:"center",padding:16},extra:(0,n.jsxs)(n.Fragment,{children:[a,h>1&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)(l.ml,{onClick:()=>f(e=>Math.max(e-1,1)),title:"Previous page",disabled:g<=1,style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,n.jsx)("polyline",{points:"6 2 3 5 6 8"})})}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",minWidth:28,textAlign:"center"},children:[g,"/",h]}),(0,n.jsx)(l.ml,{onClick:()=>f(e=>Math.min(e+1,h)),title:"Next page",disabled:g>=h,style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,n.jsx)("polyline",{points:"4 2 7 5 4 8"})})})]})]}),children:!s&&!c&&(0,n.jsx)(C.QG,{style:{minWidth:"100%"},children:(0,n.jsx)("div",{ref:o})})})}function E({arrayBuffer:e,fileName:t,toolbarExtra:l}){let a=(0,i.useRef)(null),[o,s]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(""),p=(0,i.useMemo)(()=>`<!doctype html>
|
|
254
|
+
<html>
|
|
255
|
+
<head>
|
|
256
|
+
<meta charset="utf-8" />
|
|
257
|
+
<base target="_blank" />
|
|
258
|
+
<style>
|
|
259
|
+
html, body { margin: 0; padding: 0; background: #e8e8e8; }
|
|
260
|
+
body { font-family: Arial, sans-serif; }
|
|
261
|
+
.docx-host { padding: 24px 0; }
|
|
262
|
+
.docx-host img, .docx-host canvas, .docx-host svg { max-width: 100%; }
|
|
263
|
+
</style>
|
|
264
|
+
</head>
|
|
265
|
+
<body>
|
|
266
|
+
<div class="docx-host">${u}</div>
|
|
267
|
+
</body>
|
|
268
|
+
</html>`,[u]);return(0,i.useEffect)(()=>{let t=!1;return async function(){s(!0),c(null),h("");try{let{renderAsync:n}=await Promise.all([r.e(2619),r.e(4453),r.e(2274)]).then(r.bind(r,52274)),i=a.current;if(!i||t||(i.innerHTML="",await n(e,i,void 0,{className:"docx-preview",inWrapper:!0,ignoreWidth:!1,ignoreHeight:!1,ignoreFonts:!1,breakPages:!0,ignoreLastRenderedPageBreak:!1,experimental:!1,trimXmlDeclaration:!0,useBase64URL:!1,renderChanges:!1,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0}),t))return;h(i.innerHTML.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<script\b[^>]*\/?>/gi,"").replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/\s+(href|src|action)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi,(e,t,r,n,i)=>{let l=String(r??n??i??"").trim();return/^\s*(javascript|data)\s*:/i.test(l)?"":e})),i.innerHTML="",s(!1)}catch(e){t||(console.error("DOCX render error:",e),c(String(e)),s(!1))}}(),()=>{t=!0}},[e]),(0,n.jsxs)(L.B,{fileName:t,loading:o,loadingLabel:"Loading document...",extra:l,error:d,bodyStyle:{background:"#e8e8e8",padding:"24px 0"},children:[(0,n.jsx)("div",{ref:a,style:{display:"none"},"aria-hidden":"true"}),!o&&!d&&(0,n.jsx)(C.QG,{children:(0,n.jsx)(C.ok,{style:{width:"100%",maxWidth:816,minHeight:100,visibility:o?"hidden":"visible",boxShadow:"0 1px 4px rgba(0,0,0,0.12)",overflow:"hidden"},children:(0,n.jsx)("iframe",{srcDoc:p,sandbox:"",title:t?`${t} preview`:"DOCX preview",style:{width:"100%",minHeight:720,border:"none",background:"transparent"}})})})]})}let W=/<(script|style|iframe|object|embed|form|meta|link)([\s\S]*?)>([\s\S]*?)<\/\1>|<(script|style|iframe|object|embed|form|meta|link)([^>]*)\/?>/gi,T=/\son[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi,z=/\s(href|src)\s*=\s*("\s*javascript:[^"]*"|'\s*javascript:[^']*'|javascript:[^\s>]+)/gi;function P({arrayBuffer:e,fileName:t,toolbarExtra:a}){let[o,s]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)([]),[p,g]=(0,i.useState)(0),f=(0,i.useMemo)(()=>{var e;return e=u[p]?.html??"",`<!doctype html><html><head><style>
|
|
269
|
+
body{margin:0;padding:16px;background:white;color:#111827;font:13px system-ui,sans-serif}
|
|
270
|
+
table{border-collapse:collapse;width:100%}
|
|
271
|
+
td,th{border:1px solid #d1d5db;padding:4px 6px;vertical-align:top}
|
|
272
|
+
th{background:#f3f4f6;font-weight:600}
|
|
273
|
+
img{max-width:100%;height:auto}
|
|
274
|
+
</style></head><body><div class="xlsx-preview">${e}</div></body></html>`},[p,u]);return(0,i.useEffect)(()=>{let t=!1;return async function(){s(!0),c(null);try{let n=await Promise.all([r.e(3524),r.e(8436)]).then(r.bind(r,15967)),i=n.read(e,{type:"array"}),l=i.SheetNames.map(e=>{let t=i.Sheets[e],r=n.utils.sheet_to_html(t,{editable:!1}).replace(W,"").replace(T,"").replace(z,"");return{name:e,html:r}});t||(h(l),g(0),s(!1))}catch(e){t||(console.error("XLSX parse error:",e),c(String(e)),s(!1))}}(),()=>{t=!0}},[e]),(0,n.jsx)(L.B,{fileName:t,loading:o,loadingLabel:"Loading spreadsheet...",error:d,bodyStyle:{background:"var(--bg-panel)"},extra:(0,n.jsxs)(n.Fragment,{children:[a,u.length>1&&(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",maxWidth:"min(520px, 48vw)"},children:(0,n.jsx)(l.Tg,{options:u.map((e,t)=>({key:e.name,label:(0,n.jsx)("span",{title:e.name,style:{display:"block",maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),active:t===p,onClick:()=>g(t)}))})})]}),children:!o&&!d&&u.length>0&&(0,n.jsx)("iframe",{title:t?`${t} preview`:"Spreadsheet preview",sandbox:"",srcDoc:f,style:{width:"100%",height:"100%",minHeight:320,border:"none",background:"white"}})})}var R=r(53308);function H({arrayBuffer:e,fileName:t,toolbarExtra:a}){let[o,s]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)([]),[p,g]=(0,i.useState)(0);(0,i.useEffect)(()=>{let t=!1;return async function(){s(!0),c(null);try{let n=(await Promise.all([r.e(2619),r.e(4453)]).then(r.t.bind(r,54453,23))).default,i=await n.loadAsync(e),l=[];i.forEach(e=>{let t=/^ppt\/slides\/slide(\d+)\.xml$/i.exec(e);t&&l.push({name:e,index:parseInt(t[1],10)})}),l.sort((e,t)=>e.index-t.index);let a=[];for(let e of l){let r;if(t)return;let n=await i.file(e.name).async("string"),l=/<a:t[^>]*>([^<]*)<\/a:t>/g,o=[];for(;null!==(r=l.exec(n));){let e=r[1].trim();e&&o.push(e)}a.push({index:e.index,texts:o})}t||(h(a),s(!1))}catch(e){t||(console.error("PPTX parse error:",e),c(String(e)),s(!1))}}(),()=>{t=!0}},[e]);let f=u[p],x=u.length;return(0,n.jsx)(L.B,{fileName:t,pageInfo:x>0?`Slide ${p+1} / ${x}`:void 0,loading:o,loadingLabel:"Loading presentation...",error:d,bodyStyle:{background:"var(--bg-panel)",display:"flex",justifyContent:"center",alignItems:"flex-start",padding:24},extra:(0,n.jsxs)(n.Fragment,{children:[a,x>1&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)(l.ml,{onClick:()=>g(e=>Math.max(e-1,0)),title:"Previous slide",disabled:p<=0,style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,n.jsx)("polyline",{points:"6 2 3 5 6 8"})})}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",minWidth:28,textAlign:"center"},children:[p+1,"/",x]}),(0,n.jsx)(l.ml,{onClick:()=>g(e=>Math.min(e+1,x-1)),title:"Next slide",disabled:p>=x-1,style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,n.jsx)("polyline",{points:"4 2 7 5 4 8"})})})]})]}),children:!o&&!d&&f&&(0,n.jsx)(C.QG,{children:(0,n.jsxs)("div",{style:{width:"100%",maxWidth:800},children:[(0,n.jsxs)(C.ok,{children:[(0,n.jsxs)(C.PH,{children:["Slide ",f.index]}),(0,n.jsx)(C.OI,{style:{minHeight:200},children:0===f.texts.length?(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontStyle:"italic",fontSize:13},children:"(No text content)"}):(0,n.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none"},children:f.texts.map((e,t)=>(0,n.jsx)("li",{style:{padding:"4px 0",fontSize:14,lineHeight:1.6,color:"var(--text)",borderBottom:t<f.texts.length-1?"1px solid var(--bg-panel)":"none"},children:e},t))})})]}),x>1&&(0,n.jsx)(R._t,{title:"All slides",children:(0,n.jsx)(R.S7,{children:u.map((e,t)=>(0,n.jsx)(R.HF,{title:`Slide ${e.index}`,summary:e.texts[0]||"(empty)",active:t===p,onClick:()=>g(t)},e.index))})})]})})})}function B(e){return Array.isArray(e)?e.join(""):e}function N({filePath:e,cwd:t}){let[r,a]=(0,i.useState)(null),[o,s]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),u=(0,i.useRef)(null);return((0,i.useEffect)(()=>{let t=(0,m.HG)(e);fetch(`/api/files/${t}?type=read`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(t.error)throw Error(t.error);if(!t.content)throw Error("Empty file");let r=JSON.parse(t.content);if(!r.cells||!Array.isArray(r.cells))throw Error("Invalid notebook format");a(r.cells)}).catch(e=>c(e.message)).finally(()=>s(!1));let r=new EventSource(`/api/files/${t}?type=watch`);return u.current=r,()=>{r.close(),u.current=null}},[e]),o)?(0,n.jsxs)(l.fj,{children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e}),(0,n.jsx)(l.nG,{children:"Loading notebook..."})]}):d||!r?(0,n.jsxs)(l.fj,{children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e}),(0,n.jsx)(l.nG,{children:d??"Failed to load notebook"})]}):(0,n.jsxs)(l.fj,{style:{background:"var(--bg)",overflowY:"auto"},children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:`${(0,m.WP)(e)} \xb7 ${r.length} cells`,style:{padding:"9px 12px",fontSize:12,color:"var(--text-muted)"}}),(0,n.jsx)(l.Ph,{style:{padding:0},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:r.map((e,t)=>(0,n.jsx)(F,{cell:e},t))})})]})}function F({cell:e}){if("markdown"===e.cell_type){let t=B(e.source).trim();return t?(0,n.jsx)("div",{style:{padding:"10px 16px",borderBottom:"1px solid var(--border)",background:"var(--bg)"},children:(0,n.jsx)(f.T,{content:t})}):null}if("code"===e.cell_type){let t=B(e.source),r=e.execution_count,i=e.outputs&&e.outputs.length>0;return(0,n.jsxs)("div",{style:{borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{display:"flex",background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{width:48,flexShrink:0,padding:"6px 0",textAlign:"center",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",userSelect:"none"},children:null!=r?`[${r}]`:"[ ]"}),(0,n.jsx)("div",{style:{flex:1,minWidth:0,padding:"6px 12px 6px 0",overflow:"auto"},children:(0,n.jsx)("pre",{style:{margin:0,fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.6,color:"var(--text)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:(0,n.jsx)("code",{children:t})})})]}),i&&e.outputs.map((e,t)=>{let r=function(e){let t=[];if(!e.data)return t;for(let r of["image/png","image/jpeg","image/svg+xml","image/webp"])if(e.data[r]){let n=B(e.data[r]);t.push({data:n,mimeType:r})}return t}(e),i=function(e){if("stream"===e.output_type)return B(e.text??"").trim()||null;if(("execute_result"===e.output_type||"display_data"===e.output_type)&&e.data?.["text/plain"])return B(e.data["text/plain"]).trim()||null;if("error"===e.output_type){let t=e.ename??"Error",r=e.evalue??"";return`${t}: ${r}`}return null}(e);return"error"===e.output_type?(0,n.jsxs)("div",{style:{display:"flex",background:"rgba(248,113,113,0.04)",borderTop:"1px solid rgba(248,113,113,0.15)"},children:[(0,n.jsx)("div",{style:{width:48,flexShrink:0}}),(0,n.jsx)("div",{style:{flex:1,padding:"6px 12px 6px 0"},children:(0,n.jsx)("pre",{style:{margin:0,fontFamily:"var(--font-mono)",fontSize:11,lineHeight:1.5,color:"#f87171",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:i})})]},t):(0,n.jsxs)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.08)",background:"var(--bg-subtle)"},children:[r.length>0&&(0,n.jsxs)("div",{style:{display:"flex"},children:[(0,n.jsx)("div",{style:{width:48,flexShrink:0}}),(0,n.jsx)("div",{style:{flex:1,padding:"6px 0"},children:r.map((e,r)=>(0,n.jsx)("img",{src:`data:${e.mimeType};base64,${e.data}`,alt:`output ${t}`,style:{maxWidth:"100%",display:"block"}},r))})]}),i&&(0,n.jsxs)("div",{style:{display:"flex"},children:[(0,n.jsx)("div",{style:{width:48,flexShrink:0}}),(0,n.jsx)("div",{style:{flex:1,padding:"4px 12px 4px 0"},children:(0,n.jsx)("pre",{style:{margin:0,fontFamily:"var(--font-mono)",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:300,overflow:"auto"},children:i})})]})]},t)})]})}return(0,n.jsx)("div",{style:{padding:"10px 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:(0,n.jsx)("pre",{style:{margin:0,fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-dim)",whiteSpace:"pre-wrap"},children:B(e.source)})})}let I=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif"]),A=new Set(["mp3","wav","ogg","oga","opus","m4a","aac","flac","weba","webm"]),O=new Set(["pdf","docx","xlsx","pptx","doc","xls","ppt"]);function _({filePath:e,cwd:t}){let[r,a]=(0,i.useState)(!1),[o,s]=(0,i.useState)(0),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(null),[p,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(100),y=(0,i.useRef)(null),b=(0,m.WP)(e).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{s(0),c(null),h(null),g(null),a(!1),x(100),y.current&&(y.current.close(),y.current=null);let t=(0,m.HG)(e),r=new EventSource(`/api/files/${t}?type=watch`);return y.current=r,r.addEventListener("connected",()=>a(!0)),r.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&c(t.size)}catch{}s(e=>e+1)}),r.addEventListener("error",()=>a(!1)),r.onerror=()=>a(!1),()=>{r.close(),y.current=null}},[e]);let w=(0,m.HG)(e),j=`/api/files/${w}?type=read${o?`&v=${o}`:""}`,k=null!=d?(0,l.v7)(d):null,S=e=>x(Math.max(10,Math.min(500,e)));return(0,n.jsxs)(l.fj,{children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e,trailing:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,flexShrink:0},children:[(0,n.jsx)(l.ml,{onClick:()=>S(f-25),title:"Zoom out",style:{width:24,height:22,fontSize:13,lineHeight:1,padding:0},children:"-"}),(0,n.jsx)("select",{value:f,onChange:e=>S(Number(e.target.value)),title:"Image zoom",style:{height:22,border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)",fontSize:11,fontFamily:"var(--font-mono)",outline:"none",cursor:"pointer"},children:[25,50,75,100,125,150,200,300].map(e=>(0,n.jsxs)("option",{value:e,children:[e,"%"]},e))}),(0,n.jsx)(l.ml,{onClick:()=>S(f+25),title:"Zoom in",style:{width:24,height:22,fontSize:13,lineHeight:1,padding:0},children:"+"})]}),(0,n.jsx)("span",{style:{flexShrink:0},children:b||"image"}),u&&(0,n.jsxs)("span",{children:[u.w," \xd7 ",u.h]}),k&&(0,n.jsx)("span",{children:k}),(0,n.jsx)(v,{filePath:e}),(0,n.jsx)(l.mK,{watching:r})]})}),(0,n.jsx)(l.Ph,{style:{background:"var(--bg-panel)",WebkitOverflowScrolling:"touch",overscrollBehavior:"contain",backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:p?(0,n.jsx)(l.nG,{tone:"error",style:{minWidth:"100%",minHeight:"100%"},children:p}):(0,n.jsx)("div",{style:{minWidth:"100%",minHeight:"100%",width:"max-content",height:"max-content",boxSizing:"border-box",display:"flex",alignItems:"flex-start",justifyContent:"flex-start",padding:16},children:(0,n.jsx)("img",{src:j,alt:e,onLoad:e=>{let t=e.currentTarget;h({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>g("Failed to load image"),style:{width:u?Math.max(1,Math.round(u.w*f/100)):"auto",height:u?Math.max(1,Math.round(u.h*f/100)):"auto",maxWidth:"none",maxHeight:"none",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})})]})}function D({filePath:e,cwd:t}){let[r,a]=(0,i.useState)(!1),[o,s]=(0,i.useState)(0),[d,c]=(0,i.useState)(null),[u,h]=(0,i.useState)(null),[p,g]=(0,i.useState)(null),f=(0,i.useRef)(null),x=(0,m.WP)(e).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{s(0),c(null),h(null),g(null),a(!1),f.current&&(f.current.close(),f.current=null);let t=(0,m.HG)(e),r=new EventSource(`/api/files/${t}?type=watch`);return f.current=r,r.addEventListener("connected",()=>a(!0)),r.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&c(t.size)}catch{}h(null),g(null),s(e=>e+1)}),r.addEventListener("error",()=>a(!1)),r.onerror=()=>a(!1),()=>{r.close(),f.current=null}},[e]);let y=(0,m.HG)(e),b=`/api/files/${y}?type=read${o?`&v=${o}`:""}`;return(0,n.jsxs)(l.fj,{children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e,trailing:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:x||"audio"}),null!=u&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(u)}),null!=d&&(0,n.jsx)("span",{children:(0,l.v7)(d)}),(0,n.jsx)(v,{filePath:e}),(0,n.jsx)(l.mK,{watching:r})]})}),(0,n.jsx)(l.Ph,{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,n.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[p&&(0,n.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:p}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:b,onLoadedMetadata:e=>h(e.currentTarget.duration),onError:()=>g("Failed to load audio"),style:{width:"100%"}},b)]})})]})}function G({filePath:e,cwd:t,onOpenFile:r}){let i,l,a;return(0,m.WP)(e).toLowerCase().endsWith(".h5ad")?(0,n.jsx)(q,{filePath:e,cwd:t}):(0,m.WP)(e).toLowerCase().endsWith(".ipynb")?(0,n.jsx)(N,{filePath:e,cwd:t}):(i=(0,m.WP)(e).toLowerCase().split(".").pop()??"",I.has(i))?(0,n.jsx)(_,{filePath:e,cwd:t}):(l=(0,m.WP)(e).toLowerCase().split(".").pop()??"",A.has(l))?(0,n.jsx)(D,{filePath:e,cwd:t}):(a=(0,m.WP)(e).toLowerCase().split(".").pop()??"",O.has(a))?(0,n.jsx)(U,{filePath:e,cwd:t}):(0,n.jsx)(S,{filePath:e,cwd:t,onOpenFile:r})}function q({filePath:e,cwd:t}){return(0,n.jsxs)(l.fj,{style:{background:"var(--bg)"},children:[(0,n.jsx)(l.K$,{pathLabel:(0,m.qP)(e,t),title:e,style:{padding:"9px 12px",fontSize:12,color:"var(--text-muted)"}}),(0,n.jsx)(l.nG,{children:"H5AD is a binary dataset. Use @explore from the file tree to open the interactive explorer."})]})}function U({filePath:e,cwd:t}){let r,[a,o]=(0,i.useState)(null),[s,d]=(0,i.useState)(!0),[c,u]=(0,i.useState)(null),h=(0,i.useRef)(null),p=(0,i.useRef)(0),g="pdf"===(r=(0,m.WP)(e).toLowerCase().split(".").pop()??"")?"pdf":"docx"===r||"doc"===r?"docx":"xlsx"===r||"xls"===r?"xlsx":"pptx"===r||"ppt"===r?"pptx":"other",f=(0,m.WP)(e).toLowerCase().split(".").pop()??"",x=(0,i.useCallback)(async e=>{try{let t=(0,m.HG)(e),r=p.current?`&v=${p.current}`:"",n=await fetch(`/api/files/${t}?type=read${r}`);if(!n.ok){let e=await n.json().catch(()=>({error:String(n.status)}));u(e.error??`HTTP ${n.status}`);return}let i=await n.arrayBuffer();o(i),u(null)}catch(e){u(String(e))}},[]);if((0,i.useEffect)(()=>{d(!0),u(null),o(null),p.current=0,h.current&&(h.current.close(),h.current=null),x(e).finally(()=>d(!1));let t=(0,m.HG)(e),r=new EventSource(`/api/files/${t}?type=watch`);return h.current=r,r.addEventListener("connected",()=>{}),r.addEventListener("change",()=>{p.current+=1,x(e)}),r.addEventListener("error",()=>{}),r.onerror=()=>{},()=>{r.close(),h.current=null}},[e,x]),s&&!a)return(0,n.jsx)(l.nG,{children:"Loading..."});if(c&&!a)return(0,n.jsx)(l.nG,{tone:"error",children:c});if(!a)return null;let y=(0,m.qP)(e,t),b=(0,n.jsx)(v,{filePath:e});return(0,n.jsxs)(l.fj,{children:["pdf"===g&&(0,n.jsx)($,{arrayBuffer:a,fileName:y,toolbarExtra:b}),"docx"===g&&(0,n.jsx)(E,{arrayBuffer:a,fileName:y,toolbarExtra:b}),"xlsx"===g&&(0,n.jsx)(P,{arrayBuffer:a,fileName:y,toolbarExtra:b}),"pptx"===g&&(0,n.jsx)(H,{arrayBuffer:a,fileName:y,toolbarExtra:b}),"other"===g&&(0,n.jsxs)(l.nG,{children:["Unsupported document format: .",f]})]})}},27568:(e,t,r)=>{r.d(t,{g:()=>f});var n=r(95155),i=r(12115),l=r(27071),a=r(89561),o=r(82228),s=r(46732),d=r(74059),c=r(4238),u=r(44542);let h={javascript:()=>Promise.all([r.e(2320),r.e(3307)]).then(r.bind(r,13307)).then(e=>e.javascript()),typescript:()=>Promise.all([r.e(2320),r.e(3307)]).then(r.bind(r,13307)).then(e=>e.javascript({typescript:!0})),python:()=>Promise.all([r.e(2320),r.e(3689)]).then(r.bind(r,53689)).then(e=>e.python()),sql:()=>Promise.all([r.e(2320),r.e(4097)]).then(r.bind(r,14097)).then(e=>e.sql()),json:()=>Promise.all([r.e(2320),r.e(5460)]).then(r.bind(r,25460)).then(e=>e.json()),html:()=>Promise.all([r.e(2320),r.e(3307),r.e(2774),r.e(144)]).then(r.bind(r,20144)).then(e=>e.html()),css:()=>Promise.all([r.e(2320),r.e(2774)]).then(r.bind(r,82774)).then(e=>e.css()),scss:()=>Promise.all([r.e(2320),r.e(2774)]).then(r.bind(r,82774)).then(e=>e.css()),less:()=>Promise.all([r.e(2320),r.e(2774)]).then(r.bind(r,82774)).then(e=>e.css()),markdown:()=>Promise.all([r.e(2320),r.e(3307),r.e(2774),r.e(144),r.e(2733)]).then(r.bind(r,62733)).then(e=>e.markdown()),xml:()=>Promise.all([r.e(2320),r.e(7482)]).then(r.bind(r,77482)).then(e=>e.xml()),yaml:()=>Promise.all([r.e(2320),r.e(7482)]).then(r.bind(r,77482)).then(e=>e.xml()),toml:()=>Promise.all([r.e(2320),r.e(7482)]).then(r.bind(r,77482)).then(e=>e.xml()),rust:()=>Promise.all([r.e(2320),r.e(5135)]).then(r.bind(r,55135)).then(e=>e.rust()),go:()=>Promise.all([r.e(2320),r.e(1209)]).then(r.bind(r,11209)).then(e=>e.go()),java:()=>Promise.all([r.e(2320),r.e(8198)]).then(r.bind(r,88198)).then(e=>e.java())},p=new Map;async function g(e){let t=h[e];if(!t)return null;let r=p.get(e);if(r)return r;let n=await t();return p.set(e,n),n}function f({initialContent:e,language:t,isDark:r,onChange:h,onSave:p}){let x=(0,i.useRef)(null),m=(0,i.useRef)(null),y=(0,i.useRef)(h),v=(0,i.useRef)(p);return y.current=h,v.current=p,(0,i.useEffect)(()=>{let n=x.current;if(!n)return;let i=!1,h=m.current;return h&&(h.destroy(),m.current=null),(async()=>{let h=await g(t);if(i||!n)return;let p=v.current?a.w4.of([{key:"Mod-s",run:()=>(v.current?.(),!0),preventDefault:!0}]):[],f=l.$t.create({doc:e,extensions:[(0,a.$K)(),(0,a.dz)(),(0,o.b6)(),(0,s.y9)(s.Zt),a.w4.of([...o.pw,...o.cL,...u.OO,...c.Eo]),p,(0,u.yU)(),...r?[d.bM]:[],...h?[h]:[],a.Lz.updateListener.of(e=>{e.docChanged&&y.current?.(e.state.doc.toString())}),a.Lz.theme({"&":{height:"100%",fontSize:"13px"},".cm-scroller":{overflow:"auto",fontFamily:"var(--font-mono)"},".cm-content":{padding:"8px 0"},".cm-gutters":{borderRight:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-dim)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{background:r?"#3a3d4e":"#b4d5fe"}})]});i||!n||(m.current&&m.current.destroy(),m.current=new a.Lz({state:f,parent:n}))})(),()=>{i=!0,m.current?.destroy(),m.current=null}},[t,r]),(0,i.useEffect)(()=>{let t=m.current;t&&t.state.doc.toString()!==e&&t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}})},[e]),(0,n.jsx)("div",{ref:x,style:{height:"100%",overflow:"hidden"}})}},28093:(e,t,r)=>{r.d(t,{pm:()=>c});var n=r(95155),i=r(12115),l=r(55543),a=r(84841),o=r(49006);function s({expanded:e,onToggle:t,durationLabel:r,isStreaming:i=!1,leading:l,label:d="Thinking",buttonStyle:c,labelStyle:u,durationStyle:h}){return(0,n.jsxs)(a.R,{expanded:e,onToggle:t,buttonStyle:{width:"100%",display:"flex",alignItems:"center",gap:7,minWidth:0,textAlign:"left",cursor:"pointer",border:"none",background:"transparent",color:"var(--text-muted)",...c},children:[l,(0,n.jsx)("span",{style:{fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,...u},children:i?(0,n.jsx)(o.n,{children:d}):d}),r&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...h},children:r})]})}function d({content:e,contentStyle:t}){return(0,n.jsx)(l.p,{style:{color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",...t},children:(0,n.jsx)("div",{style:{padding:"8px 10px"},children:e})})}function c({content:e,durationLabel:t,isStreaming:r=!1,leading:a,label:o="Thinking",containerStyle:u,buttonStyle:h,labelStyle:p,durationStyle:g,contentStyle:f}){let[x,m]=(0,i.useState)(!1);return(0,n.jsxs)(l.t,{kind:"thinking",style:u,children:[(0,n.jsx)(s,{expanded:x,onToggle:()=>m(e=>!e),durationLabel:t,isStreaming:r,leading:a,label:o,buttonStyle:h,labelStyle:p,durationStyle:g}),x&&(0,n.jsx)(d,{content:e,contentStyle:f})]})}},28999:(e,t,r)=>{function n(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}r.d(t,{HG:()=>o,HR:()=>a,WP:()=>s,e_:()=>c,qP:()=>d});let i=/^[A-Za-z]:[\\/]/;function l(e){let t=n(e),r=t.startsWith("/")||i.test(t);if(i.test(t))return t;let l=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){l.length>0&&".."!==l[l.length-1]?l.pop():r||l.push(e);continue}l.push(e)}return`${r?"/":""}${l.join("/")}`}function a(e,t,r){let a=e.trim().replace(/^file:\/\//i,"").replace(/[),.;:!?]+$/g,"");if(!a||a.startsWith("//"))return null;if((a=n(a)).startsWith("~/")){let e=function(e){if(!e)return null;let t=n(e),r=t.match(/^(\/Users\/[^/]+|\/home\/[^/]+)(?:\/|$)/);if(r)return r[1];let i=t.match(/^([A-Za-z]:\/Users\/[^/]+)(?:\/|$)/);return i?i[1]:null}(t);return e?l(`${e}/${a.slice(2)}`):null}if(a.startsWith("/")||i.test(a))return l(a);if(r){let e=n(r),t=e.lastIndexOf("/"),i=t>=0?e.slice(0,t):"";return l(`${i}/${a}`)}return t?l(`${t.replace(/\/+$/,"")}/${a.replace(/^\.?\//,"")}`):null}function o(e){return n(e).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function s(e){let t=n(e).replace(/\/+$/,"");return t.split("/").pop()??t}function d(e,t){if(!t)return e;let r=n(e),i=n(t).replace(/\/$/,"");return r.startsWith(i+"/")?r.slice(i.length+1):e}function c(e,t){return`${n(e).replace(/\/$/,"")}/${t}`}},30259:(e,t,r)=>{r.d(t,{O7:()=>f,eR:()=>x,qb:()=>m,qn:()=>h,h5:()=>u,Xz:()=>p,Ln:()=>g});var n=r(95155),i=r(12115);function l({imageData:e,mimeType:t,width:r,height:a,replayToken:o,saveTargetKind:s,saveDefaults:d}){let[c,u]=(0,i.useState)(d??{format:"pdf",dpi:300,width:800,height:600});(0,i.useEffect)(()=>{d||fetch("/api/settings").then(e=>e.ok?e.json():Promise.reject()).then(e=>{e.settings&&u({format:"png"===e.settings.saveFormat||"svg"===e.settings.saveFormat?e.settings.saveFormat:"pdf",dpi:e.settings.saveDpi??300,width:e.settings.saveWidth??800,height:e.settings.saveHeight??600})}).catch(()=>{})},[d]);let[h,p]=(0,i.useState)(c.format),[g,f]=(0,i.useState)(c.dpi),[x,m]=(0,i.useState)(c.width),[y,v]=(0,i.useState)(c.height),[b,w]=(0,i.useState)("idle"),[j,k]=(0,i.useState)(null),S=o&&"object"===s,C=async()=>{if(o){w("saving"),k(null);try{let e=await fetch("/api/plot-kernels/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({replayToken:o,format:h,dpi:g,width:x,height:y})});if(410===e.status)return void w("expired");if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`HTTP ${e.status}`)}w("saved")}catch(e){w("error"),k(e instanceof Error?e.message:String(e))}}};return(0,n.jsxs)("div",{style:{position:"relative",display:"inline-block",maxWidth:"100%"},children:[(0,n.jsx)("img",{src:`data:${t};base64,${e}`,alt:"rendered plot",style:{maxWidth:"100%",height:"auto",borderRadius:6,border:"1px solid var(--border)"},width:r??void 0,height:a??void 0}),S&&(0,n.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,background:"rgba(0,0,0,0.65)",padding:"6px 10px",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",borderRadius:"0 0 6px 6px",fontSize:11,color:"#e5e7eb",opacity:0,transition:"opacity 0.15s"},className:"workbench-save-bar",onMouseEnter:e=>{e.currentTarget.style.opacity="1"},children:["saved"===b?(0,n.jsx)("span",{style:{color:"#34d399",fontWeight:600},children:"✓ Saved"}):"expired"===b?(0,n.jsx)("span",{style:{color:"#fbbf24"},children:"Save session expired. Re-render plot."}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("select",{value:h,onChange:e=>p(e.target.value),style:{background:"rgba(255,255,255,0.12)",color:"#e5e7eb",border:"1px solid rgba(255,255,255,0.2)",borderRadius:4,padding:"2px 4px",fontSize:11,height:24},children:[(0,n.jsx)("option",{value:"pdf",children:"PDF"}),(0,n.jsx)("option",{value:"png",children:"PNG"}),(0,n.jsx)("option",{value:"svg",children:"SVG"})]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:3},children:["DPI",(0,n.jsx)("input",{type:"number",value:g,onChange:e=>f(Number(e.target.value)||300),min:72,max:1200,style:{width:50,height:24,padding:"2px 4px",fontSize:11,background:"rgba(255,255,255,0.12)",color:"#e5e7eb",border:"1px solid rgba(255,255,255,0.2)",borderRadius:4}})]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:3},children:["W",(0,n.jsx)("input",{type:"number",value:x,onChange:e=>m(Number(e.target.value)||800),min:100,max:8e3,style:{width:55,height:24,padding:"2px 4px",fontSize:11,background:"rgba(255,255,255,0.12)",color:"#e5e7eb",border:"1px solid rgba(255,255,255,0.2)",borderRadius:4}})]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:3},children:["H",(0,n.jsx)("input",{type:"number",value:y,onChange:e=>v(Number(e.target.value)||600),min:100,max:8e3,style:{width:55,height:24,padding:"2px 4px",fontSize:11,background:"rgba(255,255,255,0.12)",color:"#e5e7eb",border:"1px solid rgba(255,255,255,0.2)",borderRadius:4}})]}),(0,n.jsx)("button",{type:"button",onClick:C,disabled:"saving"===b,style:{height:24,padding:"0 12px",borderRadius:4,background:"rgba(37,99,235,0.4)",border:"1px solid rgba(37,99,235,0.6)",color:"#fff",cursor:"pointer",fontSize:11,fontWeight:600,opacity:"saving"===b?.6:1},children:"saving"===b?"Saving...":"Save"})]}),"error"===b&&j&&(0,n.jsx)("span",{style:{color:"#f87171",marginLeft:4},children:j})]})]})}var a=r(31775),o=r(28999);let s=/(?:file:\/\/)?(?:(?:[A-Za-z]:[\\/])|\/|~\/|\.{1,2}[\\/]|[A-Za-z0-9_.-]+[\\/])[^`"'<>|\s{}\[\]]+?\.(?:png|jpe?g|webp|gif|svg|bmp|avif|pdf)(?=$|[\s`"'<>|{}\[\]),.;:!?])/gi,d=/\.(?:png|jpe?g|webp|gif|svg|bmp|avif)$/i,c=/\.pdf$/i;function u(e){return e.source?.type==="base64"&&e.source.data?`data:${e.source.media_type??"image/png"};base64,${e.source.data}`:e.source?.type==="url"&&e.source.url?e.source.url:e.data?`data:${e.mimeType??"image/png"};base64,${e.data}`:null}function h(e,t){if(!e)return[];let r=[],n=new Set,i=new Set;for(let t of e.matchAll(/!\[[^\]]*]\(([^)]+)\)/g))t[1]&&i.add(t[1].trim());let l=e=>{!e||n.has(e)||r.length>=24||(n.add(e),r.push(e))};for(let r of(s.lastIndex=0,e.matchAll(s))){let n=r[0];if(/^[a-z][a-z\d+.-]*:\/\//i.test(n)&&!/^file:\/\//i.test(n))continue;let a=e.slice(Math.max(0,r.index-12),r.index);if(/[A-Za-z][A-Za-z\d+.-]*:\/?$/.test(a)||n.startsWith("//")||i.has(n))continue;let s=(0,o.HR)(n,t);s&&(d.test(s)?l(s):c.test(s)&&l(s.replace(c,".png")))}return r}function p(e){let t=new Set,r=[];for(let n of e)t.has(n)||(t.add(n),r.push(n));return r}function g(e,t){return e&&t?e.replace(/\n?\[Current model does not support images\. The image will be omitted from this request\.\]\s*/g,"").trim():e}function f({images:e,maxHeight:t=360}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:1===e.length?"minmax(0, 1fr)":"repeat(auto-fit, minmax(180px, 1fr))",gap:8,minWidth:0},children:e.map((e,r)=>{let i=u(e);return i?(0,n.jsx)("a",{href:i,target:"_blank",rel:"noreferrer",title:"Open image",style:{display:"block",minWidth:0,border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",background:"var(--bg)"},children:(0,n.jsx)("img",{src:i,alt:"",loading:"lazy",style:{display:"block",width:"100%",maxHeight:t,objectFit:"contain"}})},r):null})})}function x({imagePaths:e,maxHeight:t=360}){let[r,l]=(0,i.useState)(()=>new Set),a=(0,i.useRef)(new Map),s=e.join("\0");(0,i.useEffect)(()=>{let t=new Set(e);a.current=new Map([...a.current].filter(([e])=>t.has(e))),l(e=>{let r=new Set([...e].filter(e=>t.has(e)));return r.size===e.size?e:r})},[e,s]),(0,i.useEffect)(()=>{if(![...r].some(e=>(a.current.get(e)??0)<3))return;let e=window.setTimeout(()=>{l(e=>{let t=new Set(e);for(let r of e)(a.current.get(r)??0)<3&&t.delete(r);return t})},2500);return()=>window.clearTimeout(e)},[r]);let d=e.filter(e=>!r.has(e));return 0===d.length?null:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:1===d.length?"minmax(0, 1fr)":"repeat(auto-fit, minmax(180px, 1fr))",gap:8,minWidth:0},children:d.map(e=>{let r=`/api/files/${(0,o.HG)(e)}?type=read`,i=(0,o.WP)(e);return(0,n.jsxs)("a",{href:r,target:"_blank",rel:"noreferrer",title:e,style:{display:"block",minWidth:0,border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsx)("img",{src:r,alt:i,loading:"lazy",onError:()=>{a.current.set(e,(a.current.get(e)??0)+1),l(t=>{let r=new Set(t);return r.add(e),r})},style:{display:"block",width:"100%",maxHeight:t,objectFit:"contain"}}),(0,n.jsx)("div",{style:{padding:"4px 6px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i})]},e)})})}function m({text:e,isEmpty:t,isError:r,images:i,imagePaths:o,toolDetails:s}){let d=!t||e.trim().length>0;return(0,n.jsxs)("div",{style:{borderTop:`1px solid ${r?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:r?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:[i.length>0&&(0,n.jsx)("div",{style:{padding:"10px 10px 0",background:"var(--bg)"},children:s?.schema==="kernel-plot.render.v1"?(0,n.jsx)(l,{imageData:i[0].data??i[0].source?.data??"",mimeType:i[0].mimeType??i[0].source?.media_type??"image/png",width:null,height:null,replayToken:s.replayToken??null,saveTargetKind:s.saveTargetKind??null}):(0,n.jsx)(f,{images:i})}),o.length>0&&(0,n.jsx)("div",{style:{padding:"10px 10px 0",background:"var(--bg)"},children:(0,n.jsx)(x,{imagePaths:o})}),d&&(0,n.jsx)(a.m,{text:t?"(no output)":e,maxHeight:400,collapsible:!0,textColor:r?"#f87171":t?"var(--text-dim)":"var(--text-muted)",background:"var(--bg)",empty:t})]})}},31775:(e,t,r)=>{r.d(t,{m:()=>s});var n=r(95155),i=r(177),l=r.n(i);let a=/\x1B\[[0-?]*[ -/]*[@-~]/;var o=r(99947);function s({text:e,maxHeight:t=400,collapsible:r=!0,textColor:i="var(--text-muted)",background:d="var(--bg)",empty:c=!1}){let u=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),h=u.split("\n"),p=a.test(e)?(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowX:"auto",padding:"8px 10px",maxHeight:r?void 0:t,overflowY:r?void 0:"auto",background:d,color:i,opacity:c?.6:1,fontStyle:c?"italic":"normal"},children:(0,n.jsx)(l(),{children:e})}):(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",fontSize:12,lineHeight:1.5,overflowX:"auto",maxHeight:r?void 0:t,overflowY:r?void 0:"auto",background:d,whiteSpace:"pre-wrap",wordBreak:"break-all",fontFamily:"var(--font-mono)",opacity:c?.6:1,fontStyle:c?"italic":"normal",color:i},children:u});return!r||h.length<=20?(0,n.jsx)(n.Fragment,{children:p}):(0,n.jsx)(o.oG,{totalLines:h.length,expandedMaxHeight:t,overlayBackground:d,footerBackground:d,children:p})}},44667:(e,t,r)=>{r.d(t,{T:()=>H});var n=r(95155),i=r(12115),l=r(18931),a=r(79204),o=r(50643),s=r(82086),d=r(77322),c=r(92509),u=r(96793),h=r(99947),p=r(72518);function g({code:e,language:t,showLineNumbers:r=!0,testAsyncDelayMs:l=0}){let{isDark:a}=(0,u.D)(),o=(0,i.useMemo)(()=>(0,p.Rd)(e,t,a),[e,a,t]),[s,d]=(0,i.useState)(()=>o?.tokens??null),[c,h]=(0,i.useState)(()=>o?"cache":"raw"),f=(0,i.useRef)(""),x=(0,i.useMemo)(()=>(0,p.nS)(e).tokens,[e]);(0,i.useEffect)(()=>{let r=`${e}:${t}:${a?"dark":"light"}`;f.current=r;let n=!1;if(o)return d(o.tokens),h(e=>"async"===e?e:"cache"),()=>{n=!0};let i=(0,p.wY)(e,t,a,e=>{if(!n&&f.current===r){let t=()=>{n||f.current!==r||(d(e.tokens),h("async"))};l>0?window.setTimeout(t,l):t()}});return i?(d(i.tokens),h("cache")):(d(null),h("raw")),()=>{n=!0}},[o,e,a,t,l]);let m=s??o?.tokens??x,y="async"===c?"async":o?"cache":c;return(0,n.jsx)("pre",{"data-highlight-source":y,"data-highlight-language":t||"text",style:{margin:0,padding:"10px 12px",fontSize:12.5,lineHeight:1.6,overflow:"auto",background:"var(--bg)",fontFamily:"var(--font-mono)"},children:(0,n.jsx)("code",{children:m.map((e,t)=>(0,n.jsxs)("span",{style:{display:"block"},children:[r&&(0,n.jsx)("span",{style:{display:"inline-block",width:"2rem",textAlign:"right",marginRight:"1rem",color:"var(--text-dim)",userSelect:"none",fontFamily:"var(--font-mono)"},children:t+1}),0===e.length?"\n":e.map((e,t)=>{let r=(0,p.tG)(e.fontStyle);return(0,n.jsx)("span",{style:{color:e.color??"inherit",...r},children:e.content},t)})]},t))})})}var f=r(7834);function x({code:e,language:t,variant:r,isStreaming:l=!1,testAsyncDelayMs:a=0}){let[o,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)(!1),u=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n").length,p=t||"text",m=l?(0,n.jsx)("pre",{"data-highlight-source":"raw","data-highlight-language":p,style:{margin:0,padding:"10px 12px",fontSize:12.5,lineHeight:1.6,overflow:"auto",background:"var(--bg)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-all",color:"var(--text)"},children:(0,n.jsx)("code",{children:e})}):(0,n.jsx)(g,{code:e,language:p,showLineNumbers:"chat"===r,testAsyncDelayMs:a});return(0,n.jsxs)(h.NG,{className:`markdown-code-block markdown-code-block-${r}`,style:{marginTop:"file"===r?12:4,marginBottom:"file"===r?12:4},children:[(0,n.jsx)(h.iO,{title:p,actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.Mi,{onClick:()=>{let r=e.includes("```")?"````":"```",n=`${r}${t||""}
|
|
275
|
+
${e}
|
|
276
|
+
${r}`;(0,f.D)(n).then(()=>{c(!0),setTimeout(()=>c(!1),1500)})},title:"Copy as Markdown fence",ariaLabel:"Copy as Markdown fence",label:"markdown",activeLabel:"md copied",active:d}),(0,n.jsx)(h.Mi,{onClick:()=>{(0,f.D)(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},ariaLabel:"Copy code",label:"copy",activeLabel:"copied",active:o})]})}),(0,n.jsx)(h.oG,{totalLines:u,children:m})]})}function m({chart:e}){let{isDark:t}=(0,u.D)(),[l,a]=(0,i.useState)(null),[o,s]=(0,i.useState)(null),d=(0,i.useRef)(`mermaid-${Math.random().toString(36).slice(2)}`);return((0,i.useEffect)(()=>{let n=!1,i=e.trim();return(a(null),s(null),i)?(Promise.resolve().then(r.bind(r,43328)).then(({default:e})=>(e.initialize({startOnLoad:!1,securityLevel:"strict",theme:t?"dark":"default",suppressErrorRendering:!0}),e.parse(i,{suppressErrors:!0}).then(t=>{if(!t)throw Error("Invalid Mermaid syntax");return e.render(`${d.current}-${Date.now()}`,i)}))).then(e=>{n||a(e.svg)}).catch(e=>{n||s(e instanceof Error?e.message:String(e))}),()=>{n=!0}):void s("Empty Mermaid diagram")},[e,t]),o)?(0,n.jsxs)("div",{className:"mermaid-diagram mermaid-diagram-error",children:[(0,n.jsx)("div",{className:"mermaid-diagram-error-title",children:"Mermaid render failed"}),(0,n.jsx)("div",{className:"mermaid-diagram-error-message",children:o}),(0,n.jsx)("pre",{children:e})]}):(0,n.jsx)("div",{className:"mermaid-diagram",children:l?(0,n.jsx)("div",{className:"mermaid-diagram-canvas",dangerouslySetInnerHTML:{__html:l}}):(0,n.jsx)("div",{className:"mermaid-diagram-loading",children:"Rendering diagram..."})})}var y=r(22100);let v=new Set,b=new Map,w=null;function j(){return w||(w=Promise.all([r.e(2619),r.e(6586)]).then(r.bind(r,66586)).then(e=>{if(0===v.size){for(let t of Object.keys(e.bundledLanguages??{}))v.add(t.toLowerCase());for(let t of e.bundledLanguagesInfo??[]){let e=t.id.toLowerCase();for(let r of t.aliases??[])b.set(r.toLowerCase(),e)}}return e})),w}var k=r(2112),S=r(28999);function C(e){return e?.replace(/^language-/,"").trim()??""}function L(e){return/^[a-z][a-z\d+.-]*:/i.test(e)||e.startsWith("//")}function M(e,t,r){let n;if(!r||r.startsWith("#")||L(r))return null;let i=(n=/^([^?#]*)(.*)$/.exec(r),n?.[1]??r);if(!i)return null;let l=function(e){try{return decodeURI(e)}catch{return e}}(i);return(0,S.HR)(l,t,e)}function $(e){return`/api/files/${(0,S.HG)(e)}?type=read`}function E(e){let t=/^\s*!\[([^\]]*)\]\((.+)\)\s*$/.exec(e);if(!t)return null;let r=t[2]?.trim()??"";if(!r)return null;let n=/^(.+?)\s+(?:"[^"]*"|'[^']*')\s*$/.exec(r);return{alt:t[1]?.trim()||void 0,src:(n?.[1]??r).trim()}}function W({items:e,baseFilePath:t,cwd:r,onOpenLocalFile:i}){let l=1===e.length;return(0,n.jsx)("div",{className:"report-image-gallery",style:{display:"grid",gridTemplateColumns:l?"minmax(0, 1fr)":"repeat(auto-fit, minmax(min(100%, 240px), 1fr))",gap:12,margin:"16px 0"},children:e.map((e,a)=>{let o=M(t,r,e.src),s=o?$(o):e.src,d=e.alt??e.caption??`Figure ${a+1}`,c=(0,n.jsx)("img",{src:s,alt:d,loading:"lazy",title:o??e.src,style:{display:"block",width:"100%",maxHeight:l?520:340,objectFit:"contain",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"}});return(0,n.jsxs)("figure",{style:{margin:0,minWidth:0},children:[o&&i?(0,n.jsx)("button",{type:"button",onClick:()=>i(o,(0,S.WP)(o)),title:`Open ${o}`,style:{display:"block",width:"100%",padding:0,border:"none",background:"none",cursor:"zoom-in"},children:c}):c,e.caption&&(0,n.jsx)("figcaption",{style:{marginTop:6,color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:e.caption})]},`${e.src}-${a}`)})})}function T({href:e,children:t,baseFilePath:r,cwd:i,onOpenLocalFile:l,title:a,...o}){let s=M(r,i,e),d=!!s,c=!!e&&L(e);return(0,n.jsx)("a",{...o,href:d?$(s):e,target:c?"_blank":void 0,rel:c?"noreferrer":void 0,onClick:e=>{s&&l&&(e.preventDefault(),l(s,(0,S.WP)(s)))},title:d?s:a,children:t})}function z({src:e,alt:t,title:r,baseFilePath:i,cwd:l,onOpenLocalFile:a,...o}){let s="string"==typeof e?e:void 0,d=M(i,l,s),c=d?$(d):s,u=(0,n.jsx)("img",{...o,src:c,alt:t??"",loading:"lazy",title:d??r,style:{...o.style??{},cursor:c?"zoom-in":o.style?.cursor}});return c?(0,n.jsx)("a",{href:c,target:"_blank",rel:"noreferrer",title:d??r??"Open image",style:{display:"inline-block",maxWidth:"100%"},onClick:e=>{d&&a&&(e.preventDefault(),a(d,(0,S.WP)(d)))},children:u}):u}function P({code:e,language:t,variant:r,isStreaming:i=!1,baseFilePath:l,cwd:a,onOpenLocalFile:o,onWidgetSendMessage:s,renderVisualCodeBlocks:d=!1,testAsyncCodeDelayMs:c=0}){let u,h,p;if("mermaid"===(u=t.trim().toLowerCase())||"mmd"===u)return(0,n.jsx)(m,{chart:e});if("show-widget"===t.trim().toLowerCase()){let t,r=(t=(0,k.aH)(`\`\`\`show-widget
|
|
277
|
+
${e}
|
|
278
|
+
\`\`\``).find(e=>"widget"===e.type),t?.type==="widget"?{title:t.title,code:t.code}:null);if(r)return(0,n.jsx)(y.u,{code:r.code,isStreaming:!1,title:r.title,onSendMessage:s})}if("report-gallery"===t.trim().toLowerCase()){let t=function(e){try{let t=JSON.parse(e);if(!Array.isArray(t))return null;let r=t.flatMap(e=>e&&"object"==typeof e&&"string"==typeof e.src&&e.src.trim()?[{src:e.src.trim(),alt:"string"==typeof e.alt&&e.alt.trim()?e.alt.trim():void 0,caption:"string"==typeof e.caption&&e.caption.trim()?e.caption.trim():void 0}]:[]);return r.length>0?r.slice(0,12):null}catch{return null}}(e);if(t)return(0,n.jsx)(W,{items:t,baseFilePath:l,cwd:a,onOpenLocalFile:o})}return d&&(h=t.trim().toLowerCase(),(p=e.trim())&&("svg"===h||"xml"===h&&/^<svg[\s>]/i.test(p)?/^<svg[\s>]/i.test(p):!("html"!==h||/<!doctype|<html[\s>]|<head[\s>]|<body[\s>]/i.test(p))&&/^<(style|svg|div|section|article|main|figure|canvas)\b/i.test(p)))?(0,n.jsx)(y.u,{code:e,isStreaming:!1,title:`${t||"visual"} preview`,onSendMessage:s}):(0,n.jsx)(x,{code:e,language:t,variant:r,isStreaming:i,testAsyncDelayMs:c})}function R({children:e,className:t,node:r,baseFilePath:i,cwd:l,onOpenLocalFile:a,onWidgetSendMessage:o,renderVisualCodeBlocks:s=!1,isStreaming:d=!1,testAsyncCodeDelayMs:c=0,...u}){let h=("string"==typeof e?e:Array.isArray(e)?e.map(e=>"string"==typeof e?e:"").join(""):"").replace(/\n$/,""),p=C(t);return"data-block"in u?(0,n.jsx)(P,{code:h,language:p,variant:"chat",isStreaming:d||!!u["data-incomplete"],baseFilePath:i,cwd:l,onOpenLocalFile:a,onWidgetSendMessage:o,renderVisualCodeBlocks:s,testAsyncCodeDelayMs:c}):(0,n.jsx)("code",{style:{background:"var(--bg-selected)",padding:"1px 4px",borderRadius:3,fontFamily:"var(--font-mono)",fontSize:"0.9em"},...u,children:e})}function H({content:e,className:t="markdown-body",style:r,codeBlockVariant:h="chat",baseFilePath:g,cwd:f,onOpenLocalFile:x,onWidgetSendMessage:m,renderVisualCodeBlocks:y=!1,enableImageGallery:w=!1,isStreaming:k=!1,renderer:S="react-markdown",testAsyncCodeDelayMs:L=0}){let{isDark:M}=(0,u.D)(),$=w?function(e){let t=e.split("\n"),r=[],n=0;for(;n<t.length;){if(!E(t[n])){r.push(t[n]),n+=1;continue}let e=[],i=n;for(;i<t.length;){let r=E(t[i]);if(!r)break;let n=i+1,l=n;for(;l<t.length&&!t[l].trim();)l+=1;let a=l<t.length?function(e){let t=/^\s*(?:_([^_]+)_|\*([^*]+)\*)\s*$/.exec(e);return(t?.[1]??t?.[2]??"").trim()||null}(t[l]):null;a&&(r.caption=a,n=l+1),e.push(r);let o=n;for(;o<t.length&&!t[o].trim();)o+=1;if(!E(t[o])){i=n;break}i=o}if(e.length>1||e.some(e=>e.caption)){r.push(["```report-gallery",JSON.stringify(e,null,2),"```"].join("\n")),n=i;continue}r.push(t[n]),n+=1}return r.join("\n")}(e):e,W=(0,i.useMemo)(()=>k?{cjk:s.h,math:d.D,mermaid:c.a}:{cjk:s.h,math:d.D,mermaid:c.a,code:function(e,t=[p.cx,p.aU]){return j(),{name:"shiki",type:"code-highlighter",getSupportedLanguages:()=>[...v],getThemes:()=>t,supportsLanguage(e){let t;return 0===v.size||null!==((t=e.trim().toLowerCase())?v.has(t)?t:b.get(t)??null:null)},highlight(t,r){let n=t.language,i=(0,p.wY)(t.code,n,e,e=>{r?.({tokens:e.tokens,bg:e.bg,fg:e.fg})});return i?{tokens:i.tokens,bg:i.bg,fg:i.fg}:(j(),null)}}}(M)},[M,k]);return"streamdown"!==S||g||w?(0,n.jsx)("div",{className:t,style:r,children:(0,n.jsx)(l.oz,{remarkPlugins:[a.A],components:{code({className:e,children:t,node:r,...i}){let l=C(e),a=String(t),o=a.replace(/\n$/,"");return e?.includes("language-")||a.includes("\n")?(0,n.jsx)(P,{code:o,language:l,variant:h,isStreaming:k,baseFilePath:g,cwd:f,onOpenLocalFile:x,onWidgetSendMessage:m,renderVisualCodeBlocks:y,testAsyncCodeDelayMs:L}):(0,n.jsx)("code",{style:{background:"var(--bg-selected)",padding:"1px 4px",borderRadius:3,fontFamily:"var(--font-mono)",fontSize:"0.9em"},...i,children:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a:({href:e,children:t,node:r,...i})=>(0,n.jsx)(T,{...i,href:e,baseFilePath:g,cwd:f,onOpenLocalFile:x,children:t}),img:({src:e,alt:t,node:r,...i})=>(0,n.jsx)(z,{...i,src:e,alt:t,baseFilePath:g,cwd:f,onOpenLocalFile:x})},children:$})}):(0,n.jsx)("div",{className:t,style:r,children:(0,n.jsx)(o.jH,{mode:k?"streaming":"static",isAnimating:!!k,plugins:W,components:{code:({children:e,className:t,node:r,...i})=>(0,n.jsx)(R,{...i,node:r,className:t,baseFilePath:g,cwd:f,onOpenLocalFile:x,onWidgetSendMessage:m,renderVisualCodeBlocks:y,isStreaming:k,testAsyncCodeDelayMs:L,children:e}),a:({href:e,children:t,node:r,...i})=>(0,n.jsx)(T,{...i,href:e,baseFilePath:g,cwd:f,onOpenLocalFile:x,children:t}),img:({src:e,alt:t,node:r,...i})=>(0,n.jsx)(z,{...i,src:e,alt:t,baseFilePath:g,cwd:f,onOpenLocalFile:x})},children:$})})}},49006:(e,t,r)=>{r.d(t,{n:()=>o,r:()=>s});var n=r(95155),i=r(12115);let l="smoke-reduced-motion-change";function a(){if("u"<typeof document)return null;let e=document.documentElement.dataset.smokeReducedMotion;return"true"===e||"false"!==e&&null}function o({children:e,duration:t=2,style:r,...s}){let[d,c]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{c(a()??e.matches)};t();let r=e=>{null===a()&&c(e.matches)},n=()=>t();return e.addEventListener("change",r),window.addEventListener(l,n),()=>{e.removeEventListener("change",r),window.removeEventListener(l,n)}},[]),d)?(0,n.jsx)("span",{...s,children:e}):(0,n.jsx)("span",{style:{display:"inline-block",backgroundImage:"linear-gradient(90deg, var(--text-dim) 25%, var(--text-muted) 50%, var(--text-dim) 75%)",backgroundSize:"200% 100%",backgroundClip:"text",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",color:"transparent",animation:`text-shimmer ${t}s linear infinite`,...r},...s,children:e})}function s({className:e,style:t,height:r=80}){let[o,d]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{d(a()??e.matches)};t();let r=e=>{null===a()&&d(e.matches)},n=()=>t();return e.addEventListener("change",r),window.addEventListener(l,n),()=>{e.removeEventListener("change",r),window.removeEventListener(l,n)}},[]);let c={borderRadius:6,background:"var(--bg-panel)",overflow:"hidden",height:r,...t};return o?(0,n.jsx)("div",{className:e,style:c}):(0,n.jsx)("div",{className:e,style:c,children:(0,n.jsx)("div",{style:{width:"100%",height:"100%",background:"linear-gradient(90deg, transparent 0%, var(--bg-hover) 50%, transparent 100%)",backgroundSize:"200% 100%",animation:"surface-shimmer 1.5s ease-in-out infinite"}})})}},53308:(e,t,r)=>{r.d(t,{HF:()=>a,S7:()=>l,_t:()=>i});var n=r(95155);function i({title:e,children:t,style:r}){return(0,n.jsxs)("div",{"data-document-surface":"outline",style:{marginTop:24,...r},children:[e&&(0,n.jsx)("div",{"data-document-surface":"outline-title",style:{fontSize:12,color:"var(--text-dim)",marginBottom:8},children:e}),t]})}function l({children:e,minItemWidth:t=140,style:r}){return(0,n.jsx)("div",{"data-document-surface":"outline-grid",style:{display:"grid",gridTemplateColumns:`repeat(auto-fill, minmax(${t}px, 1fr))`,gap:8,...r},children:e})}function a({title:e,summary:t,active:r=!1,onClick:i}){return(0,n.jsxs)("button",{"data-document-surface":"outline-item","data-document-active":r?"true":"false",onClick:i,style:{padding:"10px 12px",background:r?"var(--bg-selected)":"var(--bg)",border:r?"2px solid var(--accent)":"1px solid var(--border)",borderRadius:6,cursor:"pointer",textAlign:"left",fontSize:11,color:"var(--text-muted)",transition:"border-color 0.12s, background 0.12s"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="var(--bg)")},children:[(0,n.jsx)("div",{style:{fontWeight:600,marginBottom:2*!!t,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),t&&(0,n.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})}},55543:(e,t,r)=>{r.d(t,{p:()=>l,t:()=>i});var n=r(95155);function i({children:e,style:t,kind:r}){return(0,n.jsx)("div",{"data-disclosure-surface":"panel","data-disclosure-kind":r,style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",background:"var(--bg-panel)",...t},children:e})}function l({children:e,style:t}){return(0,n.jsx)("div",{"data-disclosure-surface":"body",style:{borderTop:"1px solid var(--border)",...t},children:e})}},63161:(e,t,r)=>{r.d(t,{B:()=>a});var n=r(95155),i=r(76577);function l({fileName:e,pageInfo:t,onZoomIn:r,onZoomOut:a,zoom:o,extra:s}){let d=(0,n.jsxs)(n.Fragment,{children:[t&&(0,n.jsx)("span",{children:t}),void 0!==o&&a&&r&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)(i.ml,{onClick:a,title:"Zoom out",style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,n.jsx)("line",{x1:"2",y1:"5",x2:"8",y2:"5"})})}),(0,n.jsxs)("span",{style:{minWidth:36,textAlign:"center",fontVariantNumeric:"tabular-nums"},children:[Math.round(100*o),"%"]}),(0,n.jsx)(i.ml,{onClick:r,title:"Zoom in",style:{width:24,height:24,padding:0,lineHeight:1},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"2",x2:"5",y2:"8"}),(0,n.jsx)("line",{x1:"2",y1:"5",x2:"8",y2:"5"})]})})]}),s]});return(0,n.jsx)(i.K$,{pathLabel:e??"document",title:e,trailing:d,style:{minHeight:32}})}function a({fileName:e,pageInfo:t,onZoomIn:r,onZoomOut:o,zoom:s,extra:d,bodyStyle:c,loading:u=!1,loadingLabel:h="Loading document...",error:p=null,children:g}){return(0,n.jsxs)(i.fj,{children:[(0,n.jsx)(l,{fileName:e,pageInfo:t,onZoomIn:r,onZoomOut:o,zoom:s,extra:d}),(0,n.jsx)(i.Ph,{style:c,children:u?(0,n.jsx)(i.nG,{children:h}):p?(0,n.jsx)(i.nG,{tone:"error",children:p}):g})]})}r(12115)},68515:(e,t,r)=>{r.d(t,{V:()=>o});var n=r(95155),i=r(84841),l=r(49006),a=r(18678);function o({expanded:e,onToggle:t,status:r,title:s,summary:d,durationLabel:c,leading:u,titleTooltip:h,summaryTooltip:p,buttonStyle:g,titleStyle:f,summaryStyle:x,durationStyle:m}){return(0,n.jsxs)(i.R,{expanded:e,onToggle:t,buttonStyle:g,children:[u,(0,n.jsx)("span",{title:h??s,style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:+!d,minWidth:0,flex:d?void 0:1,...f},children:"running"===r?(0,n.jsx)(l.n,{children:s}):s}),d?(0,n.jsx)("span",{title:p??d,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0,...x},children:"running"===r?(0,n.jsx)(l.n,{children:d}):d}):(0,n.jsx)("span",{style:{flex:1,minWidth:0}}),(0,n.jsx)(a.U1,{status:r}),c?(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...m},children:c}):null]})}},72518:(e,t,r)=>{r.d(t,{aU:()=>l,cx:()=>i,nS:()=>m,Rd:()=>x,wY:()=>f,tG:()=>h});class n{#e;#t;constructor(e){this.#t=new Map,this.#e=e}get(e){if(!this.#t.has(e))return;let t=this.#t.get(e);return this.#t.delete(e),this.#t.set(e,t),t}set(e,t){for(this.#t.has(e)&&this.#t.delete(e);this.#t.size>=this.#e;){let e=this.#t.keys().next().value;if(void 0===e)break;this.#t.delete(e)}this.#t.set(e,t)}delete(e){this.#t.delete(e)}get size(){return this.#t.size}}let i="github-light",l="github-dark",a=new n(10),o=new n(200),s=new Set,d=new Map,c=null;function u(e,t,r){let n=e.slice(0,100),i=e.length>100?e.slice(-100):"";return`${t}:${r}:${e.length}:${n}:${i}`}function h(e){return void 0===e||0===e?{}:{fontStyle:1&e?"italic":void 0,fontWeight:2&e?700:void 0,textDecorationLine:4&e?"underline":void 0}}function p(){return c||(c=Promise.all([r.e(2619),r.e(6586)]).then(r.bind(r,66586)).then(e=>{if(0===s.size){for(let t of Object.keys(e.bundledLanguages??{}))s.add(t.toLowerCase());for(let t of e.bundledLanguagesInfo??[]){let e=t.id.toLowerCase();for(let r of t.aliases??[])d.set(r.toLowerCase(),e)}}return e})),c}async function g(e,t=i,r=l){let n=`${e}:${t}:${r}`,o=a.get(n);if(o)return o;let s=p().then(({createHighlighter:n})=>n({langs:[e],themes:[t,r]})).catch(e=>{throw a.delete(n),e});return a.set(n,s),s}function f(e,t,r,n){let a=x(e,t,r);if(a)return a;let c=r?l:i,h=t.trim().toLowerCase();if(!h)return null;let f=u(e,h,c);return p().then(()=>{let r,a=(r=t.trim().toLowerCase())?s.has(r)?r:d.get(r)??null:null;return a?g(a,i,l).then(t=>{let r=t.codeToTokens(e,{lang:a,theme:c}),i={bg:r.bg??"transparent",fg:r.fg??"inherit",tokens:r.tokens};return o.set(f,i),n(i),i}):null}).catch(e=>{console.warn("[Shiki] highlight failed:",e)}),null}function x(e,t,r){let n=t.trim().toLowerCase();if(!n)return null;let a=u(e,n,r?l:i);return o.get(a)??null}function m(e){return{bg:"transparent",fg:"inherit",tokens:e.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n").map(e=>""===e?[]:[{color:"inherit",content:e}])}}},76577:(e,t,r)=>{r.d(t,{K$:()=>o,Ph:()=>a,Tg:()=>h,fj:()=>l,mK:()=>s,ml:()=>d,nG:()=>c,pg:()=>u,v7:()=>i});var n=r(95155);function i(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function l({children:e,style:t}){return(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",...t},children:e})}function a({children:e,style:t}){return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)",...t},children:e})}function o({pathLabel:e,title:t,trailing:r,style:i}){return(0,n.jsxs)("div",{"data-file-viewer-surface":"status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,...i},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},title:t??e,children:e}),r]})}function s({watching:e}){return(0,n.jsxs)("span",{title:e?"Live sync active":"Not watching",style:{display:"flex",alignItems:"center",gap:4,color:e?"#4ade80":"var(--text-dim)"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e?"#4ade80":"var(--border)",display:"inline-block",boxShadow:e?"0 0 4px #4ade80":"none"}}),e?"live":"static"]})}function d({children:e,onClick:t,title:r,disabled:i=!1,active:l=!1,emphasis:a="default",style:o}){let s="primary"==a,c="danger"==a;return(0,n.jsx)("button",{"data-file-viewer-surface":"toolbar-button",onClick:t,disabled:i,title:r,style:{padding:"2px 10px",fontSize:11,cursor:i?"not-allowed":"pointer",background:s?"var(--accent)":c?"rgba(239,68,68,0.1)":l?"var(--bg-selected)":"var(--bg-hover)",color:s?"#fff":c?"#ef4444":l?"var(--text)":"var(--text-muted)",border:`1px solid ${s?"var(--accent)":c?"rgba(239,68,68,0.3)":"var(--border)"}`,borderRadius:5,fontWeight:l||s||c?600:400,opacity:i?.6:1,...o},children:e})}function c({children:e,tone:t="muted",style:r}){return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"error"===t?"#f87171":"var(--text-muted)",fontSize:13,textAlign:"center",...r},children:e})}function u({diff:e,emptyLabel:t="No changes"}){if(!e.some(e=>"unchanged"!==e.type))return(0,n.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:t});let r=new Set(e.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),i=new Set;for(let t of r)for(let r=Math.max(0,t-3);r<=Math.min(e.length-1,t+3);r++)i.add(r);let l=[],a=0;for(;a<e.length;)if(i.has(a)){let t=[];for(;a<e.length&&i.has(a);)t.push(e[a]),a++;l.push({hidden:!1,lines:t})}else{let t=0;for(;a<e.length&&!i.has(a);)t++,a++;l.push({hidden:!0,count:t})}let o=[],s=1;for(let t of e)"removed"===t.type?o.push(0):o.push(s++);let d=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6},children:l.map((e,t)=>{if(e.hidden){let r=(0,n.jsxs)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:["... ",e.count," unchanged lines ..."]},t);return d+=e.count,r}let r=e.lines.map((e,t)=>{let r=o[d+t],i="added"===e.type?"rgba(0,200,80,0.12)":"removed"===e.type?"rgba(240,60,60,0.14)":"transparent",l="added"===e.type?"+":"removed"===e.type?"-":" ",a="added"===e.type?"#4ade80":"removed"===e.type?"#f87171":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:i,borderLeft:"added"===e.type?"3px solid #4ade80":"removed"===e.type?"3px solid #f87171":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",fontSize:11,lineHeight:1.6,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:"removed"===e.type?e.lineNo:r||""}),(0,n.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:a,userSelect:"none",flexShrink:0,fontWeight:600},children:l}),(0,n.jsx)("span",{style:{flex:1,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)",overflowX:"auto"},children:e.text||"\xa0"})]},t)});return d+=e.lines.length,(0,n.jsx)("div",{children:r},t)})})}function h({options:e}){return(0,n.jsx)("div",{"data-file-viewer-surface":"segmented-toggle",style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:e.map((e,t)=>(0,n.jsx)("button",{onClick:e.onClick,style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:0===t?"none":"1px solid var(--border)",cursor:"pointer",background:e.active?"var(--bg-selected)":"var(--bg-hover)",color:e.active?"var(--text)":"var(--text-muted)",fontWeight:e.active?600:400},children:e.label},e.key))})}},84841:(e,t,r)=>{r.d(t,{R:()=>i});var n=r(95155);function i({expanded:e,onToggle:t,children:r,title:l,buttonStyle:a,chevronColor:o="var(--text-dim)",chevronStyle:s}){return(0,n.jsxs)("button",{type:"button",onClick:t,"aria-expanded":e,title:l,style:a,children:[r,(0,n.jsx)("span",{style:{display:"inline-flex",color:o,transform:e?"rotate(180deg)":"none",transition:"transform 0.15s",flexShrink:0,...s},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]})}},87559:(e,t,r)=>{function n(e,t){for(let r of t){let t=e[r];if(null!=t&&""!==t)return String(t)}return null}function i(e,t=60){let r=e.replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-3))}...`}function l(e){let t=e.toLowerCase().split("__").filter(Boolean);return t[t.length-1]??e.toLowerCase()}function a(e,t=120){let r=Object.keys(e);return 0===r.length?"":"command"in e?String(e.command).slice(0,t):"cmd"in e?String(e.cmd).slice(0,t):"path"in e?String(e.path).slice(0,t):"file_path"in e?String(e.file_path).slice(0,t):"pattern"in e?String(e.pattern).slice(0,t):"query"in e?String(e.query).slice(0,t):String(e[r[0]]).slice(0,t)}function o(e){let t=e.toolName||"tool",r=l(t),a=e.input??{};if(["bash","execute","run","shell","exec_command","execute_command"].includes(r))return{canonicalName:r,kind:"terminal",label:"Shell",summary:i(n(a,["command","cmd"])??t,60)};if(["read","readfile","read_file"].includes(r))return{canonicalName:r,kind:"read",label:"Read",summary:i(n(a,["file_path","path"])??t,60)};if(["write","edit","write_file","create_file","notebook_edit"].includes(r)){let e,l=n(a,["file_path","path","notebook_path","filename"]);return{canonicalName:r,kind:"edit",label:"Edit",summary:i(l?(e=l.split(/[\\/]/).filter(Boolean))[e.length-1]??l:t,60)}}if(["search","grep","glob","find","find_files","websearch"].includes(r))return{canonicalName:r,kind:"search",label:"Search",summary:i(n(a,["pattern","query","glob"])??t,60)};if(["subagent","agent"].includes(r))return{canonicalName:r,kind:"agent",label:"Agent",summary:i([n(a,["agent","name","agentName"]),n(a,["prompt","task","message"])].filter(Boolean).join(": ")||t,60)};let o=n(a,["command","cmd","path","file_path","pattern","query","glob","prompt","description"])??function(e){try{return JSON.stringify(e)}catch{return String(e)}}(a)??t;return{canonicalName:r,kind:"tool",label:i(t,60),summary:i(o,60)}}r.d(t,{WI:()=>l,Wm:()=>a,wS:()=>o})},94456:(e,t,r)=>{r.d(t,{D:()=>O});var n=r(95155),i=r(12115),l=r(44667),a=r(49006),o=r(28093),s=r(17689),d=r(18678),c=r(30259),u=r(22100),h=r(2112);function p({block:e,toolResults:t,isStreaming:r,streamingDuration:i,toolCallDurations:l,onSendMessage:a,renderVisualCodeBlocks:o,cwd:s}){if("text"===e.type)return(0,n.jsx)(g,{block:e,isStreaming:r,onSendMessage:a,renderVisualCodeBlocks:o,cwd:s});if("image"===e.type)return(0,n.jsx)(c.O7,{images:[e]});if("thinking"===e.type)return(0,n.jsx)(m,{block:e,duration:i,isStreaming:r});let d=t?.get(e.toolCallId),u=l?.get(e.toolCallId);return(0,n.jsx)(y,{block:e,result:d,duration:u,isStreaming:r,cwd:s})}function g({block:e,isStreaming:t,onSendMessage:r,renderVisualCodeBlocks:i,cwd:l}){let a=e.text,o=(0,h.aH)(a);if(!o.some(e=>"widget"===e.type)){if(t&&(0,h.qk)(a)){let e=o.filter(e=>"text"===e.type).map(e=>e.content).join("\n\n");return(0,n.jsxs)(n.Fragment,{children:[e&&(0,n.jsx)(f,{text:e,isStreaming:t,onSendMessage:r,renderVisualCodeBlocks:i,cwd:l}),(0,n.jsx)(x,{})]})}return(0,n.jsx)(f,{text:a,isStreaming:t,onSendMessage:r,renderVisualCodeBlocks:i,cwd:l})}return(0,n.jsx)(n.Fragment,{children:o.map((e,a)=>"text"===e.type?(0,n.jsx)(f,{text:e.content,isStreaming:t,onSendMessage:r,renderVisualCodeBlocks:i,cwd:l},a):(0,n.jsx)(u.u,{code:e.code,isStreaming:!!e.partial,title:e.title,showOverlay:e.showOverlay,onSendMessage:r},a))})}function f({text:e,isStreaming:t,onSendMessage:r,renderVisualCodeBlocks:a,cwd:o}){let s=(0,i.useMemo)(()=>(0,c.qn)(e,o),[o,e]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8*(s.length>0)},children:[(0,n.jsx)(l.T,{content:e,cwd:o,onWidgetSendMessage:r,renderVisualCodeBlocks:a,isStreaming:t,renderer:"streamdown"}),s.length>0&&(0,n.jsx)(c.eR,{imagePaths:s})]})}function x(){return(0,n.jsx)(a.r,{height:88,style:{border:"1px solid var(--border)"}})}function m({block:e,duration:t,isStreaming:r}){return(0,n.jsx)(o.pm,{content:e.thinking,durationLabel:void 0!==t?`${t}s`:null,isStreaming:r,buttonStyle:{width:"100%",padding:"6px 10px",fontSize:12},containerStyle:{fontSize:13},contentStyle:{background:"var(--bg-panel)"}})}function y({block:e,result:t,duration:r,isStreaming:i,cwd:l}){let a=(0,d.s2)(t,i),o=(0,d.Gb)(a);return(0,n.jsx)(s.Dm,{tool:e,result:t,status:a,durationLabel:void 0!==r?`${r}s`:null,cwd:l,titleStyle:{color:o},collapsedPreviewBackground:`color-mix(in srgb, ${o} 5%, transparent)`,buttonStyle:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},containerStyle:{border:`1px solid color-mix(in srgb, ${o} 38%, transparent)`,background:`color-mix(in srgb, ${o} 8%, transparent)`}})}var v=r(7834);function b(e=768){let[t,r]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e}px)`),n=()=>r(t.matches);return n(),t.addEventListener?.("change",n),()=>t.removeEventListener?.("change",n)},[e]),t}function w({children:e,hovered:t,onHoverChange:r,style:i}){return(0,n.jsx)("div",{style:i,onMouseEnter:()=>r?.(!0),onMouseLeave:()=>r?.(!1),"data-message-hovered":t?"true":"false",children:e})}function j({children:e,justify:t="flex-start",style:r}){let i=b();return(0,n.jsx)("div",{"data-message-surface":"footer",style:{display:"flex",alignItems:"center",justifyContent:t,gap:i?4:6,marginTop:4,...r},children:e})}function k({children:e,alignEnd:t=!1,style:r}){return(0,n.jsx)("span",{"data-message-surface":"timestamp",style:{fontSize:10,color:"var(--text-dim)",marginLeft:t?"auto":void 0,...r},children:e})}function S({children:e,visible:t,style:r}){return(0,n.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!t,pointerEvents:t?"auto":"none",transition:"opacity 0.12s",...r},children:e})}function C({children:e,onClick:t,disabled:r=!1,title:i,active:l=!1,style:a,onMouseEnterColor:o="var(--accent)",onMouseLeaveColor:s="var(--text-dim)",iconOnlyOnMobile:d=!1}){let c=b();return(0,n.jsx)("button",{onClick:t,disabled:r,title:i,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:r?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...a},onMouseEnter:e=>{r||(e.currentTarget.style.color=o)},onMouseLeave:e=>{r||(e.currentTarget.style.color=s)},children:d&&c&&Array.isArray(e)?e[0]:e})}function L({children:e,hovered:t,onHoverChange:r}){let i=b();return(0,n.jsx)(w,{hovered:t,onHoverChange:r,style:{marginBottom:i?12:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},children:e})}function M({children:e}){let t=b();return(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:t?4:6,maxWidth:t?"92%":"85%"},children:(0,n.jsx)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(59,130,246,0.2)",borderRadius:12,padding:t?"7px 10px":"8px 12px",fontSize:14,lineHeight:1.6,color:"var(--text)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e})})}function $({children:e,hasBody:t=!1}){let r=b();return(0,n.jsx)("div",{style:{display:"flex",gap:r?4:6,flexWrap:"wrap",marginBottom:t?r?6:8:0},children:e})}function E({children:e,hovered:t,onHoverChange:r}){let i=b();return(0,n.jsx)(w,{hovered:t,onHoverChange:r,style:{marginBottom:i?12:16},children:e})}function W({children:e}){let t=b();return(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:t?6:8},children:e})}function T({children:e,accent:t="default"}){let r="subagent"===t;return(0,n.jsx)("div",{"data-message-surface":"custom-card","data-message-accent":t,style:{padding:"8px 14px",borderRadius:8,border:`1px solid ${r?"rgba(99,102,241,0.25)":"var(--border)"}`,background:r?"rgba(99,102,241,0.05)":"var(--bg-panel)",fontSize:13,lineHeight:1.6,color:"var(--text-muted)"},children:e})}function z({icon:e,children:t}){return(0,n.jsxs)("div",{"data-message-surface":"custom-icon-row",style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:14},children:e}),(0,n.jsx)("div",{style:{flex:1,minWidth:0},children:t})]})}function P({text:e,title:t="Copy message",style:r}){let[l,a]=(0,i.useState)(!1),o=b();return(0,n.jsxs)("button",{onClick:()=>{(0,v.D)(e).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},title:t,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...r},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:[l?(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),(0,n.jsx)("span",{style:o?{display:"none"}:void 0,children:l?"Copied":"Copy"})]})}function R({provider:e,model:t,modelNames:r,isStreaming:i=!1,estimatedTokens:l=0,tps:a=null}){let o=e&&t?r?.[`${e}:${t}`]??r?.[t]??t:null;return(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[o&&(0,n.jsx)("span",{children:o}),i&&l>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:"预估 token 数(流式接收中)",children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),l]}),null!==a&&(0,n.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:a>=50?"#53b3cb":a>=30?"#9bc53d":a>=15?"#f9c22e":"#e01a4f",color:"#fff",fontSize:11,fontWeight:400},children:[a.toFixed(1)," t/s"]})]})]})}var H=r(99670);function B(e){let t=0;for(let r of e){if("text"===r.type){t+=r.text.length;continue}if("thinking"===r.type){t+=r.thinking.length;continue}"toolCall"===r.type&&(t+=JSON.stringify(r.input??{}).length)}return t}let N=[],F=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(e){return e.toString().padStart(2,"0")}function A(e){if(!e)return null;let t=new Date(e),r=new Date,n=t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate(),i=`${I(t.getHours())}:${I(t.getMinutes())}`;if(n)return i;let l=[`${F[t.getMonth()]} ${t.getDate()}`];t.getFullYear()!==r.getFullYear()&&l.push(String(t.getFullYear()));let a=l.join(", ");return`${a} ${i}`}function O({message:e,isStreaming:t,toolResults:r,modelNames:i,entryId:l,onFork:a,forking:o,onNavigate:s,prevAssistantEntryId:d,onEditContent:c,onSendMessage:u,showTimestamp:h,prevTimestamp:p,renderVisualCodeBlocks:g,cwd:f}){return"user"===e.role?(0,n.jsx)(_,{message:e,entryId:l,onFork:a,forking:o,onNavigate:s,prevAssistantEntryId:d,onEditContent:c}):"assistant"===e.role?(0,n.jsx)(D,{message:e,isStreaming:t,toolResults:r,modelNames:i,onSendMessage:u,showTimestamp:h,prevTimestamp:p,renderVisualCodeBlocks:g,cwd:f}):"toolResult"===e.role?null:"custom"===e.role?(0,n.jsx)(G,{message:e,showTimestamp:h}):null}function _({message:e,entryId:t,onFork:r,forking:l,onNavigate:a,prevAssistantEntryId:o,onEditContent:s}){let[d,u]=(0,i.useState)(!1),h="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),p="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),g=A(e.timestamp),f=!!t&&!!r,x=!!o&&!!a;return(0,n.jsxs)(L,{hovered:d,onHoverChange:u,children:[(0,n.jsxs)(M,{children:[p.length>0&&(0,n.jsx)($,{hasBody:!!h,children:p.map((e,t)=>{let r=(0,c.h5)(e);return r?(0,n.jsx)("a",{href:r,target:"_blank",rel:"noreferrer",title:"Open image",style:{display:"block",cursor:"zoom-in"},children:(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},t):null})}),h]}),(0,n.jsxs)(j,{justify:"flex-end",style:{marginTop:3},children:[(0,n.jsx)(S,{visible:d,children:(0,n.jsx)(P,{text:h})}),(f||x)&&(0,n.jsxs)(S,{visible:d||!!l,children:[x&&(0,n.jsxs)(C,{iconOnlyOnMobile:!0,onClick:()=>{a(o),s?.(h)},title:"Edit from here — branches within this session",children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,n.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),"Edit from here"]}),f&&(0,n.jsxs)(C,{iconOnlyOnMobile:!0,onClick:()=>{r(t)},disabled:l,active:!!l,title:l?"Creating new session…":"New session — creates an independent copy from here",children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),l?"Creating…":"New session"]})]}),g&&(0,n.jsx)(k,{children:g})]})]})}function D({message:e,isStreaming:t,toolResults:r,modelNames:l,onSendMessage:a,showTimestamp:o,prevTimestamp:s,renderVisualCodeBlocks:d,cwd:c}){var u;let h,g=o?A(e.timestamp):null,f=e.content??N,[x,m]=(0,i.useState)(!1),y=(0,i.useRef)(null),v=(0,i.useRef)(new Map),b=(0,i.useRef)(f),[w,C]=(0,i.useState)(null),[L,M]=(0,i.useState)(new Map);b.current=f;let $=(0,i.useMemo)(()=>{if(!e.timestamp||!s)return;let t=Math.round((e.timestamp-s)/1e3);return t>0?t:void 0},[e.timestamp,s]),T=(0,i.useMemo)(()=>(function(e,t){let r=new Map;if(!e||!t)return r;for(let[n,i]of e){if(!i.timestamp)continue;let e=Math.round((i.timestamp-t)/1e3);e>0&&r.set(n,e)}return r})(r,e.timestamp),[r,e.timestamp]),z=(0,i.useMemo)(()=>(function(e,t,r){let n=[],i=[],l=[];for(let[a,o]of e.entries()){if("thinking"===o.type){i.push({content:o.thinking,duration:t.get(a)??r});continue}if("toolCall"===o.type){n.push(o);continue}l.push(o)}return{tools:n,thinkingBlocks:i,visibleBlocks:l}})(f,L,$),[f,L,$]),F=(0,i.useMemo)(()=>f.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),[f]),I=(0,i.useMemo)(()=>Math.round(B(f)/4),[f]);return(0,i.useEffect)(()=>{if(!t){let e=Date.now();M(t=>{let r=new Map(t);for(let[t,n]of v.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),y.current=null,C(null);return}let e=setInterval(()=>{let e=b.current,t=Date.now();e.forEach((e,r)=>{v.current.has(r)||v.current.set(r,t)}),M(r=>{let n=!1,i=new Map(r);for(let r=0;r<e.length-1;r++)if(!i.has(r)&&v.current.has(r)){let e=v.current.get(r),l=v.current.get(r+1)??t;i.set(r,Math.round((l-e)/1e3)),n=!0}return n?i:r});let r=B(e);if(0===r)return;null===y.current&&(y.current=t);let n=(t-y.current)/1e3;n>.5&&C(r/4/n)},300);return()=>clearInterval(e)},[t]),(0,n.jsxs)(E,{hovered:x,onHoverChange:m,children:[(0,n.jsx)(R,{provider:e.provider,model:e.model,modelNames:l,isStreaming:t,estimatedTokens:I,tps:w}),(0,n.jsxs)(W,{children:[(z.tools.length>0||z.thinkingBlocks.length>0)&&(0,n.jsx)(H.kD,{tools:z.tools,results:r,durations:T,thinkingBlocks:z.thinkingBlocks,isStreaming:t,cwd:c}),z.visibleBlocks.map((e,i)=>(0,n.jsx)(p,{block:e,toolResults:r,isStreaming:t,toolCallDurations:T,onSendMessage:a,renderVisualCodeBlocks:d,cwd:c},i))]}),(0,n.jsxs)(j,{style:{gap:8},children:[e.usage&&!t&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(u=e.usage,h=[],u.input&&h.push(`${u.input.toLocaleString()} in`),u.output&&h.push(`${u.output.toLocaleString()} out`),u.cacheRead&&h.push(`${u.cacheRead.toLocaleString()} cache`),u.cost?.total&&h.push(`$${u.cost.total.toFixed(4)}`),h.join(" \xb7 "))}),F&&!t&&(0,n.jsx)(S,{visible:x,children:(0,n.jsx)(P,{text:F})}),g&&(0,n.jsx)(k,{alignEnd:!0,children:g})]})]})}function G({message:e,showTimestamp:t}){if(!e.display)return null;let r=t?A(e.timestamp):null,i="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),a="subagent-notify"===e.customType,o=i.match(/^Background task (completed|failed|paused):\s*\*\*(.+?)\*\*/),s=o?"completed"===o[1]?"✅":"failed"===o[1]?"❌":"⏸":a?"\uD83E\uDD16":"ℹ";return(0,n.jsxs)("div",{style:{marginBottom:12},children:[(0,n.jsx)(T,{accent:a?"subagent":"default",children:(0,n.jsx)(z,{icon:s,children:(0,n.jsx)("div",{"data-message-surface":"custom-body",children:(0,n.jsx)(l.T,{content:i,style:{fontSize:13}})})})}),(r||o)&&(0,n.jsxs)(j,{justify:"flex-end",style:{marginTop:3},children:[o&&(0,n.jsx)(k,{children:o[2]}),r&&(0,n.jsx)(k,{children:r})]})]})}},96793:(e,t,r)=>{r.d(t,{D:()=>s});var n=r(12115);let i=new Set;function l(e){return i.add(e),()=>{i.delete(e)}}function a(){return"u"<typeof document?"light":document.documentElement.classList.contains("dark")?"dark":"light"}function o(){return"light"}function s(){let e=(0,n.useSyncExternalStore)(l,a,o);return{theme:e,toggleTheme:(0,n.useCallback)(e=>{let t="dark"===a()?"light":"dark",r=()=>{"dark"===t?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");try{localStorage.setItem("pi-theme",t)}catch{}i.forEach(e=>e())},n=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||n)return void r();let l=e?.x??window.innerWidth/2,o=e?.y??window.innerHeight/2,s=Math.hypot(Math.max(l,window.innerWidth-l),Math.max(o,window.innerHeight-o));document.startViewTransition(r).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${l}px ${o}px)`,`circle(${s}px at ${l}px ${o}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[]),isDark:"dark"===e}}},99670:(e,t,r)=>{r.d(t,{kD:()=>C,Ld:()=>u,pR:()=>b,y0:()=>c,q:()=>y,cP:()=>v,o0:()=>w});var n=r(95155),i=r(12115),l=r(18678),a=r(55543),o=r(28093),s=r(68515),d=r(17689);function c({children:e,style:t,...r}){return(0,n.jsx)("div",{...r,style:{borderLeft:"2px solid var(--border)",paddingLeft:8,minWidth:0,...t},children:e})}function u({children:e,style:t,...r}){return(0,n.jsx)("div",{...r,style:{display:"flex",flexDirection:"column",gap:4,paddingTop:6,...t},children:e})}function h({name:e}){let t={width:13,height:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0};return"terminal"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("polyline",{points:"4 7 10 12 4 17"}),(0,n.jsx)("line",{x1:"12",y1:"17",x2:"20",y2:"17"})]}):"edit"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("path",{d:"M12 20h9"}),(0,n.jsx)("path",{d:"M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z"})]}):"read"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("path",{d:"M4 19.5V5a2 2 0 0 1 2-2h11.5a1.5 1.5 0 0 1 0 3H6"}),(0,n.jsx)("path",{d:"M6 6v15h12"})]}):"search"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,n.jsx)("path",{d:"m20 20-4-4"})]}):"agent"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("path",{d:"M12 8V4"}),(0,n.jsx)("rect",{x:"5",y:"8",width:"14",height:"11",rx:"3"}),(0,n.jsx)("path",{d:"M9 13h.01"}),(0,n.jsx)("path",{d:"M15 13h.01"}),(0,n.jsx)("path",{d:"M10 17h4"})]}):"thinking"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("path",{d:"M9 18h6"}),(0,n.jsx)("path",{d:"M10 22h4"}),(0,n.jsx)("path",{d:"M8.5 14.5a6 6 0 1 1 7 0c-.8.6-1.5 1.6-1.5 2.5h-4c0-.9-.7-1.9-1.5-2.5Z"})]}):"success"===e?(0,n.jsx)("svg",{...t,children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):"error"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m15 9-6 6"}),(0,n.jsx)("path",{d:"m9 9 6 6"})]}):"unknown"===e?(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M9.5 9a2.8 2.8 0 0 1 5 1.8c0 1.8-2.5 2.1-2.5 3.7"}),(0,n.jsx)("path",{d:"M12 18h.01"})]}):"chevron"===e?(0,n.jsx)("svg",{...t,children:(0,n.jsx)("polyline",{points:"8 10 12 14 16 10"})}):"running"===e?(0,n.jsxs)("svg",{...t,style:{animation:"spin 0.8s linear infinite"},children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 0 1-9 9"}),(0,n.jsx)("path",{d:"M3 12a9 9 0 0 1 9-9"})]}):(0,n.jsxs)("svg",{...t,children:[(0,n.jsx)("path",{d:"M12 3v18"}),(0,n.jsx)("path",{d:"M3 12h18"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function p(e){if(void 0===e)return null;if(e<60)return`~${e}s`;let t=Math.floor(e/60),r=e%60;return`~${t}m${r?` ${r}s`:""}`}function g({expanded:e,total:t,summary:r,runningDescription:i,onToggle:l}){return(0,n.jsxs)("button",{type:"button",onClick:l,"aria-expanded":e,title:e?"Collapse process":"Expand process",style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:8,border:"1px solid var(--border)",borderRadius:6,background:e?"var(--bg-panel)":"transparent",color:"var(--text-muted)",padding:"5px 8px",cursor:"pointer",textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:22,height:18,borderRadius:5,background:"var(--bg-selected)",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)",flexShrink:0},children:t}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,fontSize:12,flex:1},children:r}),i&&(0,n.jsx)("span",{title:i,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:220,minWidth:0,fontSize:11,flexShrink:1},children:i}),(0,n.jsx)("span",{style:{display:"inline-flex",color:"var(--text-dim)",flexShrink:0,transform:e?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)(h,{name:"chevron"})})]})}function f({item:e,isStreaming:t=!1}){let r=p(e.duration);return(0,n.jsx)(o.pm,{content:e.content,durationLabel:r,isStreaming:t,leading:(0,n.jsx)("span",{style:{display:"inline-flex",color:"var(--text-dim)",flexShrink:0},children:(0,n.jsx)(h,{name:"thinking"})}),buttonStyle:{minHeight:28,padding:"5px 8px"}})}function x({item:e,cwd:t}){let[r,o]=(0,i.useState)(!1),d=e.tools.some(e=>"running"===e.status),c=e.tools.some(e=>"error"===e.status),u=e.tools.every(e=>"unknown"===e.status),p=d?"running":c?"error":u?"unknown":"success";return(0,n.jsxs)(a.t,{kind:"context-group",children:[(0,n.jsx)(s.V,{expanded:r,onToggle:()=>o(e=>!e),status:p,title:`${d?"Gathering context":"Gathered context"} (${e.tools.length})`,leading:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{display:"inline-flex",color:(0,l.Gb)(p),flexShrink:0},children:(0,n.jsx)(h,{name:p})}),(0,n.jsx)("span",{style:{display:"inline-flex",color:"var(--text-dim)",flexShrink:0},children:(0,n.jsx)(h,{name:"read"})})]}),buttonStyle:{width:"100%",minHeight:28,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",minWidth:0},titleStyle:{fontFamily:"inherit",fontWeight:400,fontSize:12}}),r&&(0,n.jsx)(a.p,{children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"4px 6px 6px"},children:e.tools.map(e=>(0,n.jsx)(m,{item:e,cwd:t,nested:!0},e.tool.toolCallId))})})]})}function m({item:e,cwd:t,nested:r}){let i=p(e.duration);return(0,n.jsx)(d.Dm,{tool:e.tool,result:e.result,status:e.status,durationLabel:i,cwd:t,title:e.meta.label,summary:e.meta.summary,titleTooltip:e.tool.toolName,summaryTooltip:e.meta.summary,leading:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{display:"inline-flex",color:(0,l.Gb)(e.status),flexShrink:0},children:(0,n.jsx)(h,{name:e.status})}),(0,n.jsx)("span",{style:{display:"inline-flex",color:"var(--text-dim)",flexShrink:0},children:(0,n.jsx)(h,{name:e.meta.kind})})]}),showCollapsedPreview:!1,showUnavailableWhenMissing:"unknown"===e.status,showInputBorderTop:!0,buttonStyle:{width:"100%",minHeight:28,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",minWidth:0},titleStyle:{color:"error"===e.status?"#f87171":"var(--text-muted)",maxWidth:120},containerStyle:{border:r?"1px solid color-mix(in srgb, var(--border) 70%, transparent)":"1px solid var(--border)",background:r?"var(--bg)":"var(--bg-panel)"}})}let y=g,v=f,b=x,w=m;var j=r(87559);let k=new Set(["read","read_file","readfile","search","grep","glob","find","find_files","ls","list","list_files"]),S=[];function C({tools:e,results:t,durations:r,thinkingBlocks:a=S,isStreaming:o,cwd:s}){let d,h,p,y,v=function(e=768){let[t,r]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e}px)`),n=()=>r(t.matches);return n(),t.addEventListener?.("change",n),()=>t.removeEventListener?.("change",n)},[e]),t}(),b=(0,i.useMemo)(()=>{let n=[];return a.forEach((e,t)=>{n.push({type:"thinking",key:`thinking-${t}`,content:e.content,duration:e.duration})}),e.forEach(e=>{let i,a=t?.get(e.toolCallId);n.push({type:"tool",tool:e,result:a,status:(0,l.s2)(a,o),duration:r?.get(e.toolCallId),meta:{label:(i=(0,j.wS)(e)).label,summary:i.summary,kind:i.kind}})}),n},[r,o,t,a,e]),w=(0,i.useMemo)(()=>(function(e,t){let r=[],n=[],i=()=>{n.length>=3?r.push({type:"contextGroup",key:n.map(e=>e.tool.toolCallId).join(":"),tools:n}):r.push(...n),n=[]};for(let a of e){var l;if("tool"===a.type&&(l=a.tool,k.has((0,j.WI)(l.toolName)))&&(!t||"running"!==a.status)){n.push(a);continue}i(),r.push(a)}return i(),r})(b,o),[o,b]),L=b.filter(e=>"tool"===e.type),M=L.filter(e=>"running"===e.status),$=M.length>0,[E,W]=(0,i.useState)(null),T=!v&&(!!o||$),z=E??T,P=L.length+a.length,R=M[M.length-1]?.meta.summary;if(0===P)return null;let H=(d=L.filter(e=>"running"===e.status),h=L.filter(e=>"success"===e.status).length,p=L.filter(e=>"error"===e.status).length,y=L.filter(e=>"unknown"===e.status).length,[L.length>0?`${L.length} ${1===L.length?"tool":"tools"}`:null,a.length>0?`${a.length} ${1===a.length?"thought":"thoughts"}`:null,d.length>0?`${d.length} running`:null,h>0?`${h} completed`:null,p>0?`${p} failed`:null,y>0?`${y} unknown`:null].filter(Boolean));return(0,n.jsxs)(c,{children:[(0,n.jsx)(g,{expanded:z,total:P,summary:H.join(" \xb7 "),runningDescription:R,onToggle:()=>W(e=>!(e??T))}),z&&(0,n.jsx)(u,{children:w.map(e=>"thinking"===e.type?(0,n.jsx)(f,{item:e,isStreaming:!!o},e.key):"contextGroup"===e.type?(0,n.jsx)(x,{item:e,cwd:s},e.key):(0,n.jsx)(m,{item:e,cwd:s},e.tool.toolCallId))})]})}},99947:(e,t,r)=>{r.d(t,{NG:()=>a,oG:()=>s,iO:()=>o,Mi:()=>d});var n=r(95155),i=r(12115);function l({children:e,totalLines:t,className:r,collapsedMaxHeight:a="15.5rem",expandedMaxHeight:o,overlayBackground:s="var(--bg)",footerBackground:d="var(--bg-panel)"}){let[c,u]=(0,i.useState)(!1);return t<=20?(0,n.jsx)(n.Fragment,{children:e}):(0,n.jsxs)("div",{className:r,children:[(0,n.jsxs)("div",{style:{position:"relative",...c?{maxHeight:o,overflowY:o?"auto":"visible",overflowX:"hidden"}:{maxHeight:a,overflow:"hidden"}},children:[e,!c&&(0,n.jsx)("div",{style:{position:"absolute",insetInline:0,bottom:0,height:"3.5rem",background:`linear-gradient(to top, ${s} 0%, transparent 100%)`,pointerEvents:"none"}})]}),(0,n.jsx)("button",{type:"button",onClick:()=>u(e=>!e),"aria-expanded":c,style:{display:"flex",alignItems:"center",gap:4,width:"100%",minHeight:28,padding:"4px 8px",justifyContent:"center",background:d,border:"none",borderTop:"1px solid var(--border)",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:c?"Collapse":`Show all ${t} lines`})]})}function a({children:e,className:t,style:r}){return(0,n.jsx)("div",{className:t,style:{borderRadius:6,overflow:"hidden",border:"1px solid var(--border)",...r},children:e})}function o({title:e,actions:t,style:r}){return(0,n.jsxs)("div",{style:{padding:"3px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",display:"flex",justifyContent:"space-between",alignItems:"center",gap:8,...r},children:[(0,n.jsx)("span",{children:e}),t?(0,n.jsx)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:t}):null]})}function s({children:e,totalLines:t,expandedMaxHeight:r,overlayBackground:i,footerBackground:a}){return(0,n.jsx)(l,{totalLines:t,expandedMaxHeight:r,overlayBackground:i,footerBackground:a,children:e})}function d({onClick:e,label:t,activeLabel:r,active:i=!1,title:l,ariaLabel:a}){return(0,n.jsx)("button",{type:"button",onClick:e,title:l,"aria-label":a,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:i&&r?r:t})}}}]);
|