@mcy2015/pi-web 0.0.0-stage → 0.13.1
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 -0
- package/.next/app-path-routes-manifest.json +81 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +157 -0
- package/.next/react-loadable-manifest.json +401 -0
- package/.next/required-server-files.js +398 -0
- package/.next/required-server-files.json +398 -0
- package/.next/routes-manifest.json +601 -0
- package/.next/server/app/_global-error/page.js +31 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +35 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +1 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +35 -0
- package/.next/server/app/_not-found.rsc +22 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +22 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +28 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/events/route.js +3 -0
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -0
- package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -0
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/running/route.js +1 -0
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/app-update/route.js +1 -0
- package/.next/server/app/api/app-update/route.js.nft.json +1 -0
- package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/providers/route.js +1 -0
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/automations/route.js +6 -0
- package/.next/server/app/api/automations/route.js.nft.json +1 -0
- package/.next/server/app/api/automations/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cache-miss-notices/route.js +1 -0
- package/.next/server/app/api/cache-miss-notices/route.js.nft.json +1 -0
- package/.next/server/app/api/cache-miss-notices/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/channels/route.js +6 -0
- package/.next/server/app/api/channels/route.js.nft.json +1 -0
- package/.next/server/app/api/channels/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/default-cwd/route.js +1 -0
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/file-index/route.js +1 -0
- package/.next/server/app/api/file-index/route.js.nft.json +1 -0
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +49 -0
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/commit/route.js +2 -0
- package/.next/server/app/api/git/commit/route.js.nft.json +1 -0
- package/.next/server/app/api/git/commit/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/diff/route.js +6 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/graph/route.js +1 -0
- package/.next/server/app/api/git/graph/route.js.nft.json +1 -0
- package/.next/server/app/api/git/graph/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/status/route.js +6 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/home/route.js +1 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/route.js +2 -0
- package/.next/server/app/api/mcp/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -0
- package/.next/server/app/api/mcp/sign-in/[flowId]/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/sign-in/[flowId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/sign-in/route.js +1 -0
- package/.next/server/app/api/mcp/sign-in/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/sign-in/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/test/route.js +1 -0
- package/.next/server/app/api/mcp/test/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/default/route.js +1 -0
- package/.next/server/app/api/models/default/route.js.nft.json +1 -0
- package/.next/server/app/api/models/default/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/enabled/route.js +1 -0
- package/.next/server/app/api/models/enabled/route.js.nft.json +1 -0
- package/.next/server/app/api/models/enabled/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/refresh/route.js +1 -0
- package/.next/server/app/api/models/refresh/route.js.nft.json +1 -0
- package/.next/server/app/api/models/refresh/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js +1 -0
- package/.next/server/app/api/models-config/discover/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -0
- package/.next/server/app/api/models-config/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/test/route.js +1 -0
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/open-in-explorer/route.js +1 -0
- package/.next/server/app/api/open-in-explorer/route.js.nft.json +1 -0
- package/.next/server/app/api/open-in-explorer/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/check/route.js +1 -0
- package/.next/server/app/api/plugins/check/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/project-trust/route.js +1 -0
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -0
- package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/provider-usage/query/route.js +1 -0
- package/.next/server/app/api/provider-usage/query/route.js.nft.json +1 -0
- package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/push/config/route.js +1 -0
- package/.next/server/app/api/push/config/route.js.nft.json +1 -0
- package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/push/subscribe/route.js +1 -0
- package/.next/server/app/api/push/subscribe/route.js.nft.json +1 -0
- package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +11 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js +54 -0
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/fork/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/fork/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/share/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/share/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/share/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/delete/route.js +1 -0
- package/.next/server/app/api/sessions/delete/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/delete/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/route.js +1 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/search/route.js +1 -0
- package/.next/server/app/api/sessions/search/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/stats/route.js +1 -0
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/stats/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/ui-state/route.js +1 -0
- package/.next/server/app/api/sessions/ui-state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/ui-state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/check/route.js +1 -0
- package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/content/route.js +1 -0
- package/.next/server/app/api/skills/content/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/content/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/install/route.js +1 -0
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/route.js +4 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/search/route.js +1 -0
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/update/route.js +1 -0
- package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/[id]/route.js +1 -0
- package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/profiles/route.js +1 -0
- package/.next/server/app/api/subagents/profiles/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/subagents/settings/route.js +1 -0
- package/.next/server/app/api/subagents/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/[id]/events/route.js +4 -0
- package/.next/server/app/api/terminal/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/[id]/route.js +1 -0
- package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/route.js +1 -0
- package/.next/server/app/api/terminal/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/tools/settings/route.js +1 -0
- package/.next/server/app/api/tools/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-auth/route.js +1 -0
- package/.next/server/app/api/web-auth/route.js.nft.json +1 -0
- package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/route.js +1 -0
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
- package/.next/server/app/favicon.ico/route.js +1 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +29 -0
- package/.next/server/app/index.rsc +23 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +27 -0
- package/.next/server/app/index.segments/_full.segment.rsc +23 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/login/page.js +1 -0
- package/.next/server/app/login/page.js.nft.json +1 -0
- package/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/login.html +1 -0
- package/.next/server/app/login.meta +34 -0
- package/.next/server/app/login.rsc +26 -0
- package/.next/server/app/login.segments/_full.segment.rsc +26 -0
- package/.next/server/app/login.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +32 -0
- package/.next/server/app/manifest.webmanifest/route.js +17 -0
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -0
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
- package/.next/server/app/page.js +307 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app/share/[code]/page.js +1 -0
- package/.next/server/app/share/[code]/page.js.nft.json +1 -0
- package/.next/server/app/share/[code]/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +81 -0
- package/.next/server/chunks/1006.js +148 -0
- package/.next/server/chunks/1051.js +1 -0
- package/.next/server/chunks/1063.js +1 -0
- package/.next/server/chunks/1104.js +1 -0
- package/.next/server/chunks/1130.js +1 -0
- package/.next/server/chunks/1233.js +1 -0
- package/.next/server/chunks/129.js +14 -0
- package/.next/server/chunks/1836.js +1 -0
- package/.next/server/chunks/2008.js +165 -0
- package/.next/server/chunks/2128.js +1 -0
- package/.next/server/chunks/2367.js +38 -0
- package/.next/server/chunks/2586.js +34 -0
- package/.next/server/chunks/2728.js +2 -0
- package/.next/server/chunks/2775.js +36 -0
- package/.next/server/chunks/2786.js +79 -0
- package/.next/server/chunks/2907.js +1 -0
- package/.next/server/chunks/3010.js +1 -0
- package/.next/server/chunks/3030.js +1 -0
- package/.next/server/chunks/3164.js +1 -0
- package/.next/server/chunks/3182.js +24 -0
- package/.next/server/chunks/3261.js +193 -0
- package/.next/server/chunks/3376.js +1 -0
- package/.next/server/chunks/3395.js +90 -0
- package/.next/server/chunks/3444.js +62 -0
- package/.next/server/chunks/3522.js +215 -0
- package/.next/server/chunks/3565.js +1 -0
- package/.next/server/chunks/3614.js +226 -0
- package/.next/server/chunks/3624.js +1 -0
- package/.next/server/chunks/3834.js +1 -0
- package/.next/server/chunks/3839.js +1 -0
- package/.next/server/chunks/3960.js +1 -0
- package/.next/server/chunks/4035.js +256 -0
- package/.next/server/chunks/4074.js +153 -0
- package/.next/server/chunks/4173.js +1 -0
- package/.next/server/chunks/4193.js +1 -0
- package/.next/server/chunks/4227.js +93 -0
- package/.next/server/chunks/4403.js +1 -0
- package/.next/server/chunks/4526.js +138 -0
- package/.next/server/chunks/4557.js +1 -0
- package/.next/server/chunks/4565.js +172 -0
- package/.next/server/chunks/4576.js +86 -0
- package/.next/server/chunks/4604.js +2 -0
- package/.next/server/chunks/4768.js +1 -0
- package/.next/server/chunks/4863.js +1 -0
- package/.next/server/chunks/496.js +1 -0
- package/.next/server/chunks/4993.js +1 -0
- package/.next/server/chunks/5093.js +1 -0
- package/.next/server/chunks/5307.js +94 -0
- package/.next/server/chunks/5364.js +82 -0
- package/.next/server/chunks/5496.js +1 -0
- package/.next/server/chunks/5545.js +1 -0
- package/.next/server/chunks/5699.js +3 -0
- package/.next/server/chunks/5735.js +1 -0
- package/.next/server/chunks/5760.js +1 -0
- package/.next/server/chunks/5855.js +1 -0
- package/.next/server/chunks/5864.js +41 -0
- package/.next/server/chunks/5993.js +1 -0
- package/.next/server/chunks/6040.js +1 -0
- package/.next/server/chunks/6105.js +1 -0
- package/.next/server/chunks/6178.js +1 -0
- package/.next/server/chunks/6226.js +1 -0
- package/.next/server/chunks/6294.js +8 -0
- package/.next/server/chunks/6392.js +27 -0
- package/.next/server/chunks/6437.js +1 -0
- package/.next/server/chunks/647.js +23 -0
- package/.next/server/chunks/6487.js +49 -0
- package/.next/server/chunks/674.js +115 -0
- package/.next/server/chunks/6978.js +1 -0
- package/.next/server/chunks/7198.js +104 -0
- package/.next/server/chunks/7257.js +1 -0
- package/.next/server/chunks/7279.js +287 -0
- package/.next/server/chunks/7398.js +1 -0
- package/.next/server/chunks/7442.js +8 -0
- package/.next/server/chunks/7488.js +1 -0
- package/.next/server/chunks/7649.js +1 -0
- package/.next/server/chunks/7878.js +24 -0
- package/.next/server/chunks/7941.js +1 -0
- package/.next/server/chunks/8146.js +77 -0
- package/.next/server/chunks/819.js +1 -0
- package/.next/server/chunks/8383.js +33 -0
- package/.next/server/chunks/8688.js +1 -0
- package/.next/server/chunks/8695.js +1 -0
- package/.next/server/chunks/8868.js +1 -0
- package/.next/server/chunks/9007.js +1 -0
- package/.next/server/chunks/9084.js +64 -0
- package/.next/server/chunks/9225.js +1 -0
- package/.next/server/chunks/9267.js +1 -0
- package/.next/server/chunks/9483.js +1 -0
- package/.next/server/chunks/9602.js +1 -0
- package/.next/server/chunks/9973.js +32 -0
- package/.next/server/functions-config-manifest.json +28 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +163 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +53 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.html +1 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.meta +1 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.rsc +23 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.segments/__PAGE__.segment.rsc +27 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.segments/_full.segment.rsc +23 -0
- package/.next/server/route-cache/APP_PAGE/c6377dd9ce6a1c2cd100eb4344e843eb4639b9ed26f84643f77680e9eb454c4b/$/index.segments/_tree.segment.rsc +8 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/1229.0228b9fc3428f7d5.js +1 -0
- package/.next/static/chunks/147.8287e7ed72c89446.js +1 -0
- package/.next/static/chunks/1538.7945adaa2d7cb094.js +1 -0
- package/.next/static/chunks/1543.172c6278ca5381ea.js +15 -0
- package/.next/static/chunks/1595.5fc241609da10acf.js +38 -0
- package/.next/static/chunks/1689.ca0a87de58805d0e.js +1 -0
- package/.next/static/chunks/1737.d6ae913e3eccaacb.js +1 -0
- package/.next/static/chunks/1847.6434d90c394027d4.js +1 -0
- package/.next/static/chunks/2024.bc4f783c55b5b7cf.js +24 -0
- package/.next/static/chunks/216.a63d7ad69b96e080.js +24 -0
- package/.next/static/chunks/2320.9f934a5025166572.js +1 -0
- package/.next/static/chunks/2413.c4830e6223f7cb70.js +1 -0
- package/.next/static/chunks/2654.b99c5fc24f52e9e6.js +41 -0
- package/.next/static/chunks/2660.5352327567279f5d.js +1 -0
- package/.next/static/chunks/2723.aa5872e565521287.js +1 -0
- package/.next/static/chunks/2843.99564e5c02a92732.js +1 -0
- package/.next/static/chunks/3076.843465ae99ae7834.js +1 -0
- package/.next/static/chunks/3098.4f4071403eaf5ee5.js +27 -0
- package/.next/static/chunks/318.c6837e6639301c30.js +77 -0
- package/.next/static/chunks/3186.665b5753745d7f71.js +1 -0
- package/.next/static/chunks/3316-7ad9b0183ce58d57.js +52 -0
- package/.next/static/chunks/3400.950d6e412d97bd5f.js +104 -0
- package/.next/static/chunks/3622.6c4862a8b90b1de5.js +79 -0
- package/.next/static/chunks/422.470797fdf5021ead.js +1 -0
- package/.next/static/chunks/4251-7390ea4f71c022bb.js +1 -0
- package/.next/static/chunks/4366.1ee34595a625611d.js +1 -0
- package/.next/static/chunks/4566.1bb986cd2524cf5c.js +64 -0
- package/.next/static/chunks/4571.5e88bd14f6cb9d2f.js +287 -0
- package/.next/static/chunks/462-0a4742a0d3fb315b.js +7 -0
- package/.next/static/chunks/4728.cb5a62c714c36634.js +215 -0
- package/.next/static/chunks/4796.102a8f5f19f45043.js +1 -0
- package/.next/static/chunks/4798.eb3b2c14926f4ecd.js +1 -0
- package/.next/static/chunks/4933.baa8875c9835471a.js +94 -0
- package/.next/static/chunks/5117.ffb7b3abb7ed2846.js +1 -0
- package/.next/static/chunks/5331.e1739864d683ba22.js +226 -0
- package/.next/static/chunks/5503.8e6c711a6644acb8.js +1 -0
- package/.next/static/chunks/56d3515b.cf650e3926a249b4.js +122 -0
- package/.next/static/chunks/5931.4b5e8377c360cecf.js +1 -0
- package/.next/static/chunks/6004.138fc7687d0598d2.js +1 -0
- package/.next/static/chunks/6011-5965bf32c74aaeba.js +3 -0
- package/.next/static/chunks/6036.d5a0c9612daf8b29.js +86 -0
- package/.next/static/chunks/6191.9a3515c37d38ed46.js +1 -0
- package/.next/static/chunks/637.847054fd502cfe28.js +1 -0
- package/.next/static/chunks/6409.2d2923ec372cbef2.js +90 -0
- package/.next/static/chunks/6689.ec260327354c43df.js +1 -0
- package/.next/static/chunks/6909.45f571cb31e1256c.js +36 -0
- package/.next/static/chunks/69b8e6c9.be04cc888fa0f7e1.js +158 -0
- package/.next/static/chunks/6f4c79f2.18e02d920da1102e.js +62 -0
- package/.next/static/chunks/72b1444f-dbce489fd03602d0.js +1 -0
- package/.next/static/chunks/7392.1a6754909e2ef12f.js +1 -0
- package/.next/static/chunks/7431.89612a96608831da.js +1 -0
- package/.next/static/chunks/7443.243fb8f7548c6758.js +23 -0
- package/.next/static/chunks/772df983.223d4556de224ea2.js +1 -0
- package/.next/static/chunks/7902.edbb054e706a8ec6.js +34 -0
- package/.next/static/chunks/8072.3aaa98dad731a09c.js +115 -0
- package/.next/static/chunks/8241.8a7de542b1a2dc1e.js +93 -0
- package/.next/static/chunks/83.7a53280c1d1e4dac.js +1 -0
- package/.next/static/chunks/8325.0c9576cc140ee2bb.js +1 -0
- package/.next/static/chunks/8473.d35aa6ca1c494398.js +1 -0
- package/.next/static/chunks/8514.e988df323d58b051.js +138 -0
- package/.next/static/chunks/8555-14c61b7493d4d1c2.js +1 -0
- package/.next/static/chunks/8673.7fbc057ee84fb745.js +1 -0
- package/.next/static/chunks/8697.4d3533cad0ef5ab0.js +1 -0
- package/.next/static/chunks/8868.3fe4219c9e352217.js +1 -0
- package/.next/static/chunks/8909-c18f5a2f20e8f798.js +2 -0
- package/.next/static/chunks/8952.5ece98ba05a08f47.js +62 -0
- package/.next/static/chunks/8985.9e348a8652dc5293.js +1 -0
- package/.next/static/chunks/9287.abdf670b31097241.js +22 -0
- package/.next/static/chunks/9518.c543a5128ff566c4.js +74 -0
- package/.next/static/chunks/9530.93d0df3d278cd9d6.js +148 -0
- package/.next/static/chunks/9664.268d274b6c272204.js +1 -0
- package/.next/static/chunks/9827.8073d71321710b51.js +1 -0
- package/.next/static/chunks/9861.945662a7aa418d79.js +1 -0
- package/.next/static/chunks/abd5cabe-ef8984589a8c4f19.js +1 -0
- package/.next/static/chunks/app/_global-error/page-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/_not-found/page-aa3fe7f176b16669.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/lease/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/automations/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/cache-miss-notices/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/channels/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/git/commit/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/git/graph/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/home/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/mcp/test/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models/default/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models/enabled/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models/refresh/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/open-in-explorer/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/provider-usage/query/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/push/config/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/push/subscribe/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/share/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/delete/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/stats/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/sessions/ui-state/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/content/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/layout-19228ee6a08d83ea.js +1 -0
- package/.next/static/chunks/app/login/page-264591bcd5541a1f.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/app/page-18dd62d21c3bda10.js +285 -0
- package/.next/static/chunks/app/share/[code]/page-ee5b90b5f0930a77.js +1 -0
- package/.next/static/chunks/d0e3edb2-14c399e5ac4a0230.js +18 -0
- package/.next/static/chunks/dcbf9649.a109de0ff33b7cd5.js +1 -0
- package/.next/static/chunks/e444a482.562747af759320da.js +153 -0
- package/.next/static/chunks/eb47aedd.82f4b7f485fc5804.js +32 -0
- package/.next/static/chunks/f8e56d65.7ee6c15983b9bb69.js +82 -0
- package/.next/static/chunks/framework-0a6c4a96112443b3.js +1 -0
- package/.next/static/chunks/main-634a10a29ad83b54.js +5 -0
- package/.next/static/chunks/main-app-6d91b2e08db37fda.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-cd3be3520fbf053c.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d3218813fe634dea.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-7c23f465dcf1a516.js +1 -0
- package/.next/static/css/0f5099659ba5f318.css +1 -0
- package/.next/static/css/49692dbfa6f26eeb.css +1 -0
- package/.next/static/css/582426d6a91257d8.css +1 -0
- package/.next/static/css/9bcd6051db4f8890.css +1 -0
- package/.next/static/css/c99d24fe85e139cc.css +1 -0
- package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
- package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
- package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
- package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
- package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
- package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
- package/.next/static/sN1YhVy-LPqPUdH9cLpTi/_buildManifest.js +1 -0
- package/.next/static/sN1YhVy-LPqPUdH9cLpTi/_ssgManifest.js +1 -0
- package/.next/trace +9 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/api/agent/[id]/bash-output/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/events/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/lease/route.ts +353 -0
- package/.next/types/app/api/agent/[id]/route.ts +353 -0
- package/.next/types/app/api/agent/new/route.ts +353 -0
- package/.next/types/app/api/agent/running/route.ts +353 -0
- package/.next/types/app/api/app-update/route.ts +353 -0
- package/.next/types/app/api/auth/api-key/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/login/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/logout/[provider]/route.ts +353 -0
- package/.next/types/app/api/auth/providers/route.ts +353 -0
- package/.next/types/app/api/automations/route.ts +353 -0
- package/.next/types/app/api/cache-miss-notices/route.ts +353 -0
- package/.next/types/app/api/channels/route.ts +353 -0
- package/.next/types/app/api/cwd/browse/route.ts +353 -0
- package/.next/types/app/api/cwd/validate/route.ts +353 -0
- package/.next/types/app/api/default-cwd/route.ts +353 -0
- package/.next/types/app/api/file-index/route.ts +353 -0
- package/.next/types/app/api/files/[...path]/route.ts +353 -0
- package/.next/types/app/api/git/commit/route.ts +353 -0
- package/.next/types/app/api/git/diff/route.ts +353 -0
- package/.next/types/app/api/git/graph/route.ts +353 -0
- package/.next/types/app/api/git/status/route.ts +353 -0
- package/.next/types/app/api/home/route.ts +353 -0
- package/.next/types/app/api/mcp/route.ts +353 -0
- package/.next/types/app/api/mcp/sign-in/[flowId]/route.ts +353 -0
- package/.next/types/app/api/mcp/sign-in/route.ts +353 -0
- package/.next/types/app/api/mcp/test/route.ts +353 -0
- package/.next/types/app/api/models/default/route.ts +353 -0
- package/.next/types/app/api/models/enabled/route.ts +353 -0
- package/.next/types/app/api/models/refresh/route.ts +353 -0
- package/.next/types/app/api/models/route.ts +353 -0
- package/.next/types/app/api/models-config/catalog/route.ts +353 -0
- package/.next/types/app/api/models-config/discover/route.ts +353 -0
- package/.next/types/app/api/models-config/route.ts +353 -0
- package/.next/types/app/api/models-config/test/route.ts +353 -0
- package/.next/types/app/api/open-in-explorer/route.ts +353 -0
- package/.next/types/app/api/plugins/check/route.ts +353 -0
- package/.next/types/app/api/plugins/route.ts +353 -0
- package/.next/types/app/api/project-trust/route.ts +353 -0
- package/.next/types/app/api/provider-usage/query/route.ts +353 -0
- package/.next/types/app/api/push/config/route.ts +353 -0
- package/.next/types/app/api/push/subscribe/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/auto-name/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/context/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/export/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/fork/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/share/route.ts +353 -0
- package/.next/types/app/api/sessions/[id]/state/route.ts +353 -0
- package/.next/types/app/api/sessions/delete/route.ts +353 -0
- package/.next/types/app/api/sessions/route.ts +353 -0
- package/.next/types/app/api/sessions/search/route.ts +353 -0
- package/.next/types/app/api/sessions/stats/route.ts +353 -0
- package/.next/types/app/api/sessions/ui-state/route.ts +353 -0
- package/.next/types/app/api/skills/check/route.ts +353 -0
- package/.next/types/app/api/skills/content/route.ts +353 -0
- package/.next/types/app/api/skills/install/route.ts +353 -0
- package/.next/types/app/api/skills/route.ts +353 -0
- package/.next/types/app/api/skills/search/route.ts +353 -0
- package/.next/types/app/api/skills/update/route.ts +353 -0
- package/.next/types/app/api/subagents/[id]/route.ts +353 -0
- package/.next/types/app/api/subagents/profiles/route.ts +353 -0
- package/.next/types/app/api/subagents/settings/route.ts +353 -0
- package/.next/types/app/api/terminal/[id]/events/route.ts +353 -0
- package/.next/types/app/api/terminal/[id]/route.ts +353 -0
- package/.next/types/app/api/terminal/route.ts +353 -0
- package/.next/types/app/api/tools/settings/route.ts +353 -0
- package/.next/types/app/api/web-auth/route.ts +353 -0
- package/.next/types/app/api/worktrees/route.ts +353 -0
- package/.next/types/app/layout.ts +89 -0
- package/.next/types/app/login/page.ts +89 -0
- package/.next/types/app/page.ts +89 -0
- package/.next/types/app/share/[code]/page.ts +89 -0
- package/.next/types/cache-life.d.ts +146 -0
- package/.next/types/package.json +1 -0
- package/.next/types/root-params.d.ts +3 -0
- package/.next/types/routes.d.ts +146 -0
- package/.next/types/validator.ts +736 -0
- package/LICENSE +21 -0
- package/README.md +206 -2
- package/bin/browser-opener.js +34 -0
- package/bin/node-version.js +35 -0
- package/bin/pi-web-commands.js +118 -0
- package/bin/pi-web-node-args.js +11 -0
- package/bin/pi-web-options.js +141 -0
- package/bin/pi-web-update.js +160 -0
- package/bin/pi-web.js +157 -0
- package/bin/prepare-terminal.js +14 -0
- package/bin/process-lifecycle.js +81 -0
- package/bin/rotate-preview-secrets.js +105 -0
- package/bin/run-records.js +212 -0
- package/next.config.ts +110 -0
- package/package.json +100 -4
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/catppuccin/LICENSE +22 -0
- package/public/icons/catppuccin/README.md +10 -0
- package/public/icons/catppuccin/latte/_file.svg +3 -0
- package/public/icons/catppuccin/latte/_folder.svg +3 -0
- package/public/icons/catppuccin/latte/_folder_open.svg +3 -0
- package/public/icons/catppuccin/latte/bash.svg +7 -0
- package/public/icons/catppuccin/latte/bun-lock.svg +8 -0
- package/public/icons/catppuccin/latte/config.svg +3 -0
- package/public/icons/catppuccin/latte/css.svg +6 -0
- package/public/icons/catppuccin/latte/database.svg +3 -0
- package/public/icons/catppuccin/latte/docker.svg +3 -0
- package/public/icons/catppuccin/latte/env.svg +3 -0
- package/public/icons/catppuccin/latte/eslint.svg +6 -0
- package/public/icons/catppuccin/latte/git.svg +6 -0
- package/public/icons/catppuccin/latte/go.svg +3 -0
- package/public/icons/catppuccin/latte/graphql.svg +3 -0
- package/public/icons/catppuccin/latte/html.svg +6 -0
- package/public/icons/catppuccin/latte/javascript-react.svg +8 -0
- package/public/icons/catppuccin/latte/javascript.svg +6 -0
- package/public/icons/catppuccin/latte/json.svg +3 -0
- package/public/icons/catppuccin/latte/lock.svg +3 -0
- package/public/icons/catppuccin/latte/markdown.svg +3 -0
- package/public/icons/catppuccin/latte/ms-word.svg +6 -0
- package/public/icons/catppuccin/latte/next.svg +6 -0
- package/public/icons/catppuccin/latte/npm-lock.svg +7 -0
- package/public/icons/catppuccin/latte/pdf.svg +3 -0
- package/public/icons/catppuccin/latte/python.svg +8 -0
- package/public/icons/catppuccin/latte/rust.svg +6 -0
- package/public/icons/catppuccin/latte/sass.svg +3 -0
- package/public/icons/catppuccin/latte/terraform.svg +3 -0
- package/public/icons/catppuccin/latte/toml.svg +3 -0
- package/public/icons/catppuccin/latte/typescript-react.svg +8 -0
- package/public/icons/catppuccin/latte/typescript.svg +6 -0
- package/public/icons/catppuccin/latte/yaml.svg +3 -0
- package/public/icons/catppuccin/mocha/_file.svg +3 -0
- package/public/icons/catppuccin/mocha/_folder.svg +3 -0
- package/public/icons/catppuccin/mocha/_folder_open.svg +3 -0
- package/public/icons/catppuccin/mocha/bash.svg +7 -0
- package/public/icons/catppuccin/mocha/bun-lock.svg +8 -0
- package/public/icons/catppuccin/mocha/config.svg +3 -0
- package/public/icons/catppuccin/mocha/css.svg +6 -0
- package/public/icons/catppuccin/mocha/database.svg +3 -0
- package/public/icons/catppuccin/mocha/docker.svg +3 -0
- package/public/icons/catppuccin/mocha/env.svg +3 -0
- package/public/icons/catppuccin/mocha/eslint.svg +6 -0
- package/public/icons/catppuccin/mocha/git.svg +6 -0
- package/public/icons/catppuccin/mocha/go.svg +3 -0
- package/public/icons/catppuccin/mocha/graphql.svg +3 -0
- package/public/icons/catppuccin/mocha/html.svg +6 -0
- package/public/icons/catppuccin/mocha/javascript-react.svg +8 -0
- package/public/icons/catppuccin/mocha/javascript.svg +6 -0
- package/public/icons/catppuccin/mocha/json.svg +3 -0
- package/public/icons/catppuccin/mocha/lock.svg +3 -0
- package/public/icons/catppuccin/mocha/markdown.svg +3 -0
- package/public/icons/catppuccin/mocha/ms-word.svg +6 -0
- package/public/icons/catppuccin/mocha/next.svg +6 -0
- package/public/icons/catppuccin/mocha/npm-lock.svg +7 -0
- package/public/icons/catppuccin/mocha/pdf.svg +3 -0
- package/public/icons/catppuccin/mocha/python.svg +8 -0
- package/public/icons/catppuccin/mocha/rust.svg +6 -0
- package/public/icons/catppuccin/mocha/sass.svg +3 -0
- package/public/icons/catppuccin/mocha/terraform.svg +3 -0
- package/public/icons/catppuccin/mocha/toml.svg +3 -0
- package/public/icons/catppuccin/mocha/typescript-react.svg +8 -0
- package/public/icons/catppuccin/mocha/typescript.svg +6 -0
- package/public/icons/catppuccin/mocha/yaml.svg +3 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/offline.html +83 -0
- package/public/provider-icons.svg +54 -0
- package/public/sw.js +183 -0
- package/public/sw.test.mjs +339 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
(()=>{var a={};a.id=8974,a.ids=[8974],a.modules={1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32952:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>p,handler:()=>r,routeModule:()=>q});var d=c(78140),e=c(586),f=c(14271),g=c(20122),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,43114))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,89730,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,52676,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,63757,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,67984,23))),n={children:["",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35261))),"/Volumes/Data Vault/PiSpace/pi-web-release/app/page.tsx"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,1088)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]},{layout:[i,"/Volumes/Data Vault/PiSpace/pi-web-release/app/layout.tsx"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,1088)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,o=(0,e.H)({tree:n,page:"/page",pathname:"/",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),p=o.__next_app__,q=o.routeModule,r=o.handler},33873:a=>{"use strict";a.exports=require("path")},35261:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(12154),e=c(38019),f=c(92776),g=c(97938);function h(){return(0,d.jsx)(e.Suspense,{children:(0,d.jsx)(g.I18nProvider,{children:(0,d.jsx)(f.AppShell,{})})})}},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42172:a=>{a.exports={preview:"ChatMinimap_preview__laAya",earlier:"ChatMinimap_earlier__IxOXN",turn:"ChatMinimap_turn__fZuce",number:"ChatMinimap_number__3C_cY",toolBadge:"ChatMinimap_toolBadge__fzFQn",content:"ChatMinimap_content__C7_ju",user:"ChatMinimap_user__WHJHv",userText:"ChatMinimap_userText__Nj9jo",assistant:"ChatMinimap_assistant__s6JLb",assistantJump:"ChatMinimap_assistantJump__3CM2M",outline:"ChatMinimap_outline__aleIF",heading:"ChatMinimap_heading__djZbv",paragraph:"ChatMinimap_paragraph__EqWlO",lock:"ChatMinimap_lock__9WDY5"}},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},48665:(a,b,c)=>{"use strict";let d,e,f,g,h,i,j,k,l,m,n,o;c.d(b,{AppShell:()=>u9});var p=c(3556),q=c(2333),r=c.n(q),s=c(85698);function t(a){let b=function(a){let b=new Map(a.map(a=>[a.id,a])),c=new Map;for(let d of a){if(c.has(d.id))continue;let a=[],e=new Set,f=d.id,g=null;for(;;){if(c.has(f)){g=c.get(f)??null;break}if(e.has(f))break;e.add(f),a.push(f);let d=b.get(f);if(!d)break;if(d.relation?.kind!=="subagent"){g=d.id;break}f=d.relation.parentSessionId}for(let b of a)c.set(b,g)}return c}(a),c=new Map;for(let b of a)b.relation?.kind!=="subagent"&&c.set(b.id,{root:b,subagents:[],latestModified:b.modified});for(let d of a){if(d.relation?.kind!=="subagent")continue;let a=b.get(d.id),e=a?c.get(a):void 0;e&&(e.subagents.push(d),d.modified>e.latestModified&&(e.latestModified=d.modified))}return[...c.values()].sort((a,b)=>b.latestModified.localeCompare(a.latestModified))}function u(a,b){return a.filter(a=>b.has(a.id)).length}function v(a){return`?session=${encodeURIComponent(a)}`}let w="pi-web:last-open-by-workspace";function x(a){let b=a.getItem(w);if(!b)return{};try{let a=JSON.parse(b);return null===a||"object"!=typeof a||Array.isArray(a)?{}:a}catch{return{}}}function y(a,b=null){if(b)try{let c=x(b);if(!(a in c))return;delete c[a],0===Object.keys(c).length?b.removeItem(w):b.setItem(w,JSON.stringify(c))}catch{}}function z(a){return a.projectKey??a.projectRoot??a.cwd}let A=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,B=(a,b)=>Object.prototype.hasOwnProperty.call(a,b);function C(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function D(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0}function E(a){return"string"==typeof a&&a.length>0&&a.length<=4096&&"__proto__"!==a}let F=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/;function G(a){if(null===a)return null;if("string"!=typeof a)return;let b=a.trim();return b?F.test(b)||[...b].length>80?void 0:b:null}let H=new TextEncoder;function I(a){return H.encode(JSON.stringify(a)).length+1}function J(a){let b=1;for(let c of a)b+=I(c);return b}function K(a,b){return a<=1e3&&b<=262144}function L(a){let b=[],c=1;for(let d of a){if(b.length>=1e3)break;let a=I(d);c+a>262144||(b.push(d),c+=a)}return b}function M(a,b){return H.encode(JSON.stringify(a)).length+H.encode(JSON.stringify(b)).length+2}function N(a,b){return a<=1e3&&b<=262144}function O(){return{version:1,revision:0,sessions:{},projects:{}}}function P(a,b,c){let d=B(a,b)?a[b]:void 0;return void 0===c.pinnedAt&&void 0===c.archivedAt?!!d&&(delete a[b],!0):(d?.pinnedAt!==c.pinnedAt||d?.archivedAt!==c.archivedAt)&&(a[b]=c,!0)}function Q(a,b){var c;return c=a.projectOrder??[],!(c.length===b.length&&c.every((a,c)=>a===b[c]))&&(0===b.length?delete a.projectOrder:a.projectOrder=b,!0)}function R(a,b){let c=new Set(a),d=[];for(let a of b)c.has(a)||(c.add(a),d.push(a));return d}function S(a,b=500){let c=Math.max(1,Math.floor(b)),d=[];for(let b=0;b<a.length;b+=c)d.push(a.slice(b,b+c));return d}let T={desktop:{"pinned-header":28,session:28,"pinned-more":26,group:28,"group-more":26,"group-empty":28,spacer:8,"footer-open":28,"footer-archived":28,"archive-group":28},mobile:{"pinned-header":44,session:44,"pinned-more":36,group:44,"group-more":36,"group-empty":44,spacer:8,"footer-open":44,"footer-archived":44,"archive-group":44}},U="pinned";function V(a,b){return Object.hasOwn(a.sessions,b)?a.sessions[b]:void 0}function W(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function X(a,b){return a===b?0:a>b?-1:1}function Y(a){return[a.root.id,...a.subagents.map(a=>a.id)]}function Z(a,b){return 0!==b.size&&(b.has(a.root.id)||a.subagents.some(a=>b.has(a.id)))}function $(a,b,c){let d=W(V(b,a.root.id)?.archivedAt);if(null===d||Z(a,c))return!1;if(a.root.detailsPending)return!0;let e=Date.parse(a.root.modified);return Number.isNaN(e)||d>=e}function _(a,b,c){return null!==W(V(b,a.root.id)?.pinnedAt)&&!$(a,b,c)}function aa(a){let b=a.replace(/[\\/]+$/,"");if(!b)return a.charAt(0);let c=Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\"));return b.slice(c+1)}function ab(a,b){if(Object.hasOwn(b,a.key)){let c=b[a.key];if("boolean"==typeof c)return c}return a.current||a.pinned}function ac(a,b){var c;return{running:Z(a,b.runningIds),awaiting:!!b.awaitingIds&&Z(a,b.awaitingIds),unread:Z(a,b.unreadIds),selected:!!(c=b.selectedSessionId)&&(a.root.id===c||a.subagents.some(a=>a.id===c)),transient:!0===a.root.transient}}function ad(a){return z(a.root)}function ae(a,b){let c=new Map,d=new Map;return{noteFamily(a){let b=ad(a);c.has(b)||c.set(b,a.root.projectRoot??a.root.cwd)},get(e){let f,g=d.get(e);if(g)return g;let h=Object.hasOwn(a.projects,e)?a.projects[e]:void 0,i=null!==b&&b.key===e,j=c.get(e)??(i?b.root:void 0)??h?.root??e,k=((f=a.projectNames)&&B(f,e)?f[e]:void 0)??null,l={key:e,root:j,name:k??aa(j),customName:k,pinned:void 0!==h,current:i};return d.set(e,l),l}}}function af(a,b,c,d,e){return{kind:"session",key:`session:${b}:${a.root.id}`,family:a,context:b,project:c,status:ac(a,d),archivedAt:e}}function ag(a,b,c,d){let e=a.map((a,c)=>{if(c<b)return!1;let e=ac(a,d);return e.running||e.unread||e.selected}),f=b+c,g=0,h=a.filter((a,c)=>c<b||!!e[c]||c<f&&(g++,!0)),i=Math.max(b,Math.min(f,a.length));for(let b=0;i<a.length&&b<20;i++)!e[i]&&b++;return{visible:h,revealed:g,nextShown:i-b}}function ah(a,b){if(!Object.hasOwn(a,b))return 0;let c=a[b];return"number"==typeof c&&Number.isFinite(c)&&c>0?Math.floor(c):0}function ai(a,b){if(!Object.hasOwn(a,b))return a;let c={...a};return delete c[b],c}function aj(a,b,c){let d=a-b,e=c>0;return d>0||e?{hidden:d,canShowLess:e}:null}function ak(a,b,c,d){let e=d-c,f=[];for(let c of t(a.sessions)){if(ad(c)!==b||$(c,a.uiState,a.runningIds)||_(c,a.uiState,a.runningIds))continue;let d=ac(c,a);if(d.running||d.unread||d.selected||d.transient)continue;let g=Date.parse(c.latestModified);Number.isNaN(g)||g>=e||f.push(c.root.id)}return f}function al(a,b){let c=[],d=0;for(let e of t(a.sessions))if(ad(e)===b&&!e.root.transient){if(Z(e,a.runningIds)||a.awaitingIds&&Z(e,a.awaitingIds)){d++;continue}c.push(e.root.id)}return{ids:c,running:d}}function am(a,b,c){let d=a.find(a=>a.key===b);if(!d)return null;let e=a.filter(a=>a.pinned===d.pinned),f=e.indexOf(d),g=e["up"===c?f-1:f+1];return g?{anchorKey:g.key,position:"up"===c?"before":"after"}:null}function an(a,b=null){if(b)try{b.setItem("pi-web:sidebar-archive-collapsed",JSON.stringify([...new Set(a)].slice(-300)))}catch{}}async function ao(a,b){let c={deletedRoots:[],deleted:[],running:[],error:null};for(let d=0;d<a.length;d+=500){let e=a.slice(d,d+500);try{let a=await b("/api/sessions/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e})}),d=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(d.deleted)){c.error=d.error??`HTTP ${a.status}`;break}let f=new Set(d.deleted);c.deleted.push(...d.deleted),c.deletedRoots.push(...e.filter(a=>f.has(a))),c.running.push(...d.running??[])}catch(a){c.error=a instanceof Error?a.message:String(a);break}}return c}let ap=/ · [0-9a-f]{4}$/;function aq(a){let b=ap.exec(a);return b&&0!==b.index?{base:a.slice(0,b.index),suffix:b[0]}:null}function ar(a,b){return{cwd:a.current&&b?b:a.root,projectKey:a.key,projectRoot:a.root}}function as(a){let b=a.project;return!b||a.projects.some(a=>a.key===b.key)?[...a.projects]:[b,...a.projects]}function at(a,b){let{key:c,root:d}=a,e=b&&Object.hasOwn(b,c)?b[c]:void 0;return void 0===e?{key:c,root:d}:{key:c,root:d,alias:e}}function au(a){let b=a.map(a=>({choice:a,name:a.alias??aa(a.root)})),c=new Map;for(let{name:a}of b)c.set(a,(c.get(a)??0)+1);return b.map(({choice:a,name:b})=>{let d,e;return{choice:a,name:b,note:void 0===a.alias&&(c.get(b)??0)>1&&(e=Math.max((d=a.root.replace(/[\\/]+$/,"")).lastIndexOf("/"),d.lastIndexOf("\\")))>0?aa(d.slice(0,e)):null}})}let av="pi-web:sidebar-files-placement",aw="below";function ax(){try{var a;return a=window.localStorage.getItem(av),"tab"===a?"tab":aw}catch{return aw}}let ay=null,az=new Set;function aA(){return null===ay&&(ay=ax()),ay}function aB(){az.forEach(a=>a())}function aC(a){if(null!==a.key&&a.key!==av)return;let b=ax();b!==ay&&(ay=b,aB())}function aD(a){return 0===az.size&&(window.addEventListener("storage",aC),ay=ax()),az.add(a),()=>{az.delete(a),0===az.size&&window.removeEventListener("storage",aC)}}function aE(a){if(a!==aA()){ay=a;try{window.localStorage.setItem(av,a)}catch{}aB()}}function aF(){return(0,q.useSyncExternalStore)(aD,aA,()=>aw)}var aG=c(84104),aH=c(32006);function aI(a,b,c){let d=Number.isFinite(a)?a:b,e=Math.max(b,c);return Math.round(Math.max(b,Math.min(e,d)))}function aJ(a,b){try{window.localStorage.setItem(a,String(b))}catch{}}function aK(a){let{ariaLabel:b,axis:c="horizontal",cssVariable:d,defaultWidth:e,getDefaultWidth:f,getMaxWidth:g,growthDirection:h,maxWidth:i,minWidth:j,persistClamp:k=!0,storageKey:l,widthRef:m}=a,n=(0,q.useRef)(null),o=(0,q.useRef)(null);(0,q.useRef)(!1);let p=(0,q.useRef)(e),[r,s]=(0,q.useState)(e),[t,u]=(0,q.useState)(!1),[v,w]=(0,q.useState)(!1),x=(0,q.useCallback)(()=>Math.min(i,Math.max(j,g())),[g,i,j]),y=(0,q.useCallback)(a=>aI(a,j,x()),[x,j]),z=(0,q.useCallback)(a=>{m.current=a,n.current?.style.setProperty(d,`${a}px`)},[d,m]),A=(0,q.useCallback)((a,b={})=>{let{forcePersist:c=!1,persist:d=!0}=b,e=y(a),f=e!==m.current;return z(e),s(e),k?d&&(f||c)&&aJ(l,e):c&&(p.current=aI(a,j,i),aJ(l,p.current)),e},[z,y,i,j,k,l,m]),B=(0,q.useCallback)(()=>{A(k||o.current?m.current:p.current)},[A,k,m]),C=(0,q.useCallback)(a=>{document.body.style.cursor=a.previousCursor,document.body.style.userSelect=a.previousUserSelect},[]),D=(0,q.useCallback)(a=>{let b=o.current;if(b&&b.pointerId===a){o.current=null,C(b),u(!1),A(m.current,{forcePersist:k||m.current!==b.startWidth});try{b.target.hasPointerCapture(a)&&b.target.releasePointerCapture(a)}catch{}}},[A,k,C,m]),E=(0,q.useCallback)(a=>{if("mouse"===a.pointerType&&0!==a.button)return;a.preventDefault(),a.stopPropagation();let b=o.current;b&&D(b.pointerId);let d=a.currentTarget;d.focus({preventScroll:!0}),d.setPointerCapture(a.pointerId),o.current={pointerId:a.pointerId,startPosition:"vertical"===c?a.clientY:a.clientX,startWidth:m.current,target:d,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===c?"row-resize":"col-resize",document.body.style.userSelect="none",u(!0)},[c,D,m]),F=(0,q.useCallback)(a=>{let b=o.current;if(!b||b.pointerId!==a.pointerId)return;if("mouse"===a.pointerType&&0===a.buttons)return void D(a.pointerId);a.preventDefault();let d="right"===h||"down"===h?1:-1,e="vertical"===c?a.clientY:a.clientX,f=y(b.startWidth+(e-b.startPosition)*d);z(f),a.currentTarget.setAttribute("aria-valuenow",String(f)),a.currentTarget.setAttribute("aria-valuetext",`${f} px`)},[z,c,y,D,h]),G=(0,q.useCallback)(a=>{D(a.pointerId)},[D]),H=(0,q.useCallback)(a=>{D(a.pointerId)},[D]),I=(0,q.useCallback)(a=>{D(a.pointerId)},[D]),J=(0,q.useCallback)(()=>{A(f?.()??e,{forcePersist:!0})},[A,e,f]),K=(0,q.useCallback)(a=>{let b=a.shiftKey?32:12,d="right"===h||"down"===h,e="vertical"===c?"ArrowDown":"ArrowRight",f="vertical"===c?"ArrowUp":"ArrowLeft",g=k?m.current:Math.max(m.current,p.current);a.key===(d?e:f)?(a.preventDefault(),A(g+b,{forcePersist:!0})):a.key===(d?f:e)?(a.preventDefault(),A(m.current-b,{forcePersist:!0})):"Home"===a.key?(a.preventDefault(),A(j,{forcePersist:!0})):"End"===a.key?(a.preventDefault(),A(Math.max(g,x()),{forcePersist:!0})):"Enter"===a.key&&(a.preventDefault(),J())},[c,A,x,h,j,k,J,m]);return{isResizing:t,panelRef:n,reclampWidth:B,resetWidth:J,separatorProps:{"aria-label":b,"aria-orientation":"vertical"===c?"horizontal":"vertical","aria-valuemax":v?x():i,"aria-valuemin":j,"aria-valuenow":r,"aria-valuetext":`${r} px`,onDoubleClick:J,onKeyDown:K,onLostPointerCapture:I,onPointerCancel:H,onPointerDown:E,onPointerMove:F,onPointerUp:G,role:"separator",tabIndex:0},width:r}}let aL="/api/sessions/ui-state";async function aM(a){try{let b=await a.json();if(b&&"object"==typeof b&&"string"==typeof b.error)return b.error}catch{}return`HTTP ${a.status}`}function aN(a){return a instanceof Error?a.message:String(a)}async function aO(a){if(!a.ok)throw Error(await aM(a));let b=await a.json(),c=b&&"object"==typeof b?function(a){if(!C(a)||void 0!==a.version&&1!==a.version||void 0!==a.sessions&&!C(a.sessions)||void 0!==a.projects&&!C(a.projects))return null;let b=O(),c=a.revision;for(let[d,e]of("number"==typeof c&&Number.isSafeInteger(c)&&c>=0&&(b.revision=c),Object.entries(a.sessions??{}))){if(!("string"==typeof d&&A.test(d)))continue;let a=function(a){if(!C(a))return null;let b={};return D(a.pinnedAt)&&(b.pinnedAt=a.pinnedAt),D(a.archivedAt)&&(b.archivedAt=a.archivedAt),void 0===b.pinnedAt&&void 0===b.archivedAt?null:b}(e);a&&(b.sessions[d]=a)}for(let[c,d]of Object.entries(a.projects??{})){if(!E(c))continue;let a=C(d)&&D(d.pinnedAt)&&E(d.root)?{pinnedAt:d.pinnedAt,root:d.root}:null;a&&(b.projects[c]=a)}if(Array.isArray(a.projectOrder)){let c=new Set,d=L(a.projectOrder.filter(a=>!(!E(a)||c.has(a))&&(c.add(a),!0)));d.length>0&&(b.projectOrder=d)}if(C(a.projectNames)){let c={},d=0,e=1;for(let[b,f]of Object.entries(a.projectNames)){let a=G(f);if(!E(b)||"string"!=typeof a)continue;let g=M(b,a);N(d+1,e+g)&&(c[b]=a,d++,e+=g)}d>0&&(b.projectNames=c)}return b}(b.state):null;if(!c)throw Error("Invalid session UI state response");return c}function aP(){let[a,b]=(0,q.useState)(null),c=(0,q.useRef)(null),d=(0,q.useCallback)(()=>{null!==c.current&&(clearTimeout(c.current),c.current=null)},[]),e=(0,q.useCallback)(()=>{d(),b(null)},[d]);return{phase:a,start:(0,q.useCallback)(a=>{d(),b(a),c.current=setTimeout(()=>{c.current=null,b(null)},300)},[d]),end:e}}var aQ=c(14224);let aR={overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},aS={height:36,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12},aT={padding:"6px 16px",borderRadius:6,fontSize:13},aU={...aT,border:0,background:"var(--accent)",color:"var(--accent-contrast)",fontWeight:600},aV={...aT,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)"};async function aW(a){let b=a?`?path=${encodeURIComponent(a)}`:"",c=await fetch(`/api/cwd/browse${b}`),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);return d}async function aX(a,b){let c=await fetch("/api/cwd/browse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,name:b})}),d=await c.json();if(!c.ok||d.error||!d.path)throw Error(d.error??`HTTP ${c.status}`);return d.path}function aY(){return(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function aZ(){return(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,p.jsx)("path",{d:"M2 9h12"}),(0,p.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function a$({onCancel:a,onSelect:b,initialPath:c,busy:d=!1,error:e}){let{t:f}=(0,aG.s)(),[g,h]=(0,q.useState)(null),[i,j]=(0,q.useState)(""),[k,l]=(0,q.useState)(null),[m,n]=(0,q.useState)(c??""),[o,r]=(0,q.useState)([]),[s,t]=(0,q.useState)(null),[u,v]=(0,q.useState)(null),[w,x]=(0,q.useState)(!0),[y,z]=(0,q.useState)(!1),[A,B]=(0,q.useState)(""),[C,D]=(0,q.useState)(null),[E,F]=(0,q.useState)(!1),G=(0,q.useCallback)(async a=>{x(!0),v(null);try{let b=await aW(a),c=b.path??a??"/";j(c),l(b.parentPath??null),n(c),r(b.directories??[]),t(b.drives??null)}catch(a){v(a instanceof Error?a.message:String(a))}finally{x(!1)}},[]),H=()=>{E||(z(!1),B(""),D(null))},I=async()=>{let a=A.trim();if(i&&a&&!E){F(!0),D(null);try{let b=await aX(i,a);z(!1),B(""),await G(b)}catch(a){D(a instanceof Error?a.message:String(a))}finally{F(!1)}}},J=m.trim()!==i,K=!!i&&!J&&!d,L=K&&!w,M=!!k||/^[a-zA-Z]:[\\/]?$/.test(i);return g?(0,aQ.createPortal)((0,p.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":f("directoryPicker.selectDirectory"),onClick:b=>{b.target!==b.currentTarget||d||a()},onKeyDown:b=>{"Escape"!==b.key||d||a()},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,p.jsxs)("div",{className:"directory-picker-panel",style:{...aR,position:"relative",width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,p.jsx)("div",{style:{minWidth:0,flex:1},children:(0,p.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:f("directoryPicker.selectDirectory")})}),(0,p.jsx)("button",{type:"button",onClick:a,disabled:d,title:f("i18n.close"),"aria-label":f("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:d?"default":"pointer",opacity:d?.5:1},children:"\xd7"})]}),(0,p.jsxs)("form",{onSubmit:a=>{a.preventDefault();let b=m.trim();b&&G(b)},style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,p.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void G(k??void 0),disabled:w||!M,title:f("directoryPicker.goToParent"),"aria-label":f("directoryPicker.goToParent"),style:{width:36,height:36,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:M?"pointer":"default",opacity:M?1:.45},children:(0,p.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,p.jsx)("label",{htmlFor:"directory-path",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:f("directoryPicker.directoryPath")}),(0,p.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:m,placeholder:"/path/to/project or ~/project",autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:a=>{n(a.target.value),v(null)},style:{...aS,minWidth:0,flex:1}}),(0,p.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:w||!m.trim(),title:f("directoryPicker.goToDirectory"),style:{minWidth:58,height:36,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:w||!m.trim()?"default":"pointer",opacity:w||!m.trim()?.6:1},children:f("directoryPicker.go")})]}),(0,p.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[w?(0,p.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:f("directoryPicker.loadingDirectories")}):null!==s?(0,p.jsx)(p.Fragment,{children:s.length>0?s.map(a=>(0,p.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void G(a.path),title:a.path,style:{width:"100%",minHeight:34,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,p.jsx)(aZ,{}),(0,p.jsx)("span",{children:a.name})]},a.path)):(0,p.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:f("directoryPicker.noDrives")})}):o.length>0?o.map(a=>(0,p.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void G(a.path),title:a.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,p.jsx)(aY,{}),(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.path)):(0,p.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:f("directoryPicker.noSubdirectories")}),(u||e)&&(0,p.jsx)("div",{style:{padding:"8px",color:"#dc2626",fontSize:11},children:u??e})]}),(0,p.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,p.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>{z(!0),D(null)},disabled:!L,style:{...aV,marginRight:"auto",opacity:L?1:.6,cursor:L?"pointer":"default"},children:f("directoryPicker.newDirectory")}),(0,p.jsx)("button",{className:"directory-picker-action",type:"button",onClick:a,disabled:d,style:{...aV,cursor:d?"default":"pointer"},children:f("i18n.cancel")}),(0,p.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>b(i),disabled:!K,title:f(J?"directoryPicker.openBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{...aU,opacity:K?1:.6,cursor:K?"pointer":"default"},children:f(d?"i18n.checking":"directoryPicker.selectThisFolder")})]}),y&&(0,p.jsx)("div",{style:{position:"absolute",inset:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:12,background:"rgba(0,0,0,0.35)"},onClick:a=>{a.target===a.currentTarget&&H()},onKeyDown:a=>{a.stopPropagation(),"Escape"===a.key&&H()},children:(0,p.jsxs)("form",{role:"dialog","aria-modal":"true","aria-label":f("directoryPicker.createDirectory"),onSubmit:a=>{a.preventDefault(),I()},style:{...aR,width:400,maxWidth:"100%"},children:[(0,p.jsx)("div",{style:{padding:"12px 18px",borderBottom:"1px solid var(--border)",color:"var(--text)",fontSize:15,fontWeight:700},children:f("directoryPicker.createDirectory")}),(0,p.jsxs)("div",{style:{padding:"12px 18px"},children:[(0,p.jsx)("label",{htmlFor:"new-directory-name",style:{display:"block",marginBottom:6,color:"var(--text-muted)",fontSize:11},children:f("directoryPicker.directoryName")}),(0,p.jsx)("input",{id:"new-directory-name",value:A,autoFocus:!0,autoComplete:"off",spellCheck:!1,placeholder:f("directoryPicker.directoryNamePlaceholder"),onChange:a=>{B(a.target.value),D(null)},disabled:E,className:"directory-picker-path",style:{...aS,width:"100%",boxSizing:"border-box"}}),C&&(0,p.jsx)("div",{style:{marginTop:7,color:"#dc2626",fontSize:11,lineHeight:1.35},children:C}),(0,p.jsxs)("div",{style:{display:"flex",gap:6,marginTop:10},children:[(0,p.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:E||!A.trim(),style:{...aU,flex:1,opacity:E?.65:1,cursor:E||!A.trim()?"default":"pointer"},children:f(E?"directoryPicker.creating":"directoryPicker.create")}),(0,p.jsx)("button",{className:"directory-picker-action",type:"button",onClick:H,disabled:E,style:{...aV,flex:1,cursor:E?"default":"pointer"},children:f("i18n.cancel")})]})]})]})})]})}),g):null}function a_({onClick:a,title:b}){return(0,p.jsx)("button",{type:"button",onClick:a,title:b,"aria-label":b,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)",a.currentTarget.style.background="none"},children:(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"m6 6 12 12"}),(0,p.jsx)("path",{d:"m18 6-12 12"})]})})}var a0=c(14023),a1=c(88233);function a2(a){let b=/(?:^|\s)@"([^"\n]*)$/.exec(a);if(b)return{start:a.length-(b[1].length+2),query:b[1],quoted:!0};let c=/(?:^|\s)@([^\s"]*)$/.exec(a);return c?{start:a.length-(c[1].length+1),query:c[1],quoted:!1}:null}function a3(a){let b=0;for(let c=0;c<a.length;c++)"/"===a[c]&&b++;return b}function a4(a,b){if(!a)return!0;let c=0;for(let d=0;d<b.length&&c<a.length;d++)b[d]===a[c]&&c++;return c===a.length}function a5(a,b){let c=b?`${a}/`:a;return c.includes(" ")?`@"${c}" `:`@${c} `}function a6(a,b,c,d){return new Promise((e,f)=>{let g=new FormData;b.forEach(a=>g.append("files",a,a.name));let h=new XMLHttpRequest;h.open("POST",`/api/files/${(0,a1.HG)(a)}?type=upload&conflict=${c}`),h.upload.onprogress=a=>{d&&a.lengthComputable&&a.total>0&&d(Math.round(a.loaded/a.total*100))},h.onerror=()=>f(Error("Network error while uploading files")),h.onabort=()=>f(Error("Upload cancelled")),h.onload=()=>{let a={};try{a=JSON.parse(h.responseText)}catch{h.responseText&&(a.error=h.responseText)}e({status:h.status,data:a})},h.send(g)})}function a7(a){return Array.from(a.dataTransfer.items).some(a=>"file"===a.kind)}function a8(a){let b=[];for(let c of Array.from(a.items)){if("file"!==c.kind)continue;let a=c.webkitGetAsEntry?.();if(a?.isDirectory){b.push({kind:"folder",name:a.name});continue}let d=c.getAsFile();d&&b.push({kind:"file",file:d})}return b.length>0?b:Array.from(a.files).map(a=>({kind:"file",file:a}))}let a9=function(a=20){let b=new Map;return{save(c,d){if(b.delete(c),0!==d.size)for(let e of(b.set(c,new Set(d)),b.keys())){if(b.size<=a)break;b.delete(e)}},restore:a=>new Set(b.get(a))}}();async function ba(a,b){let c=`${b} (HTTP ${a.status})`;try{let b=await a.json();b.error&&(c=b.error)}catch{}return Error(c)}async function bb(a,b=!1){let c=(0,a1.HG)(a),d=await fetch(`/api/files/${c}?type=list${b?"&hidden=1":""}`);if(!d.ok)throw await ba(d,"Failed to load files");return((await d.json()).entries??[]).map(b=>({name:b.name,fullPath:(0,a1.e_)(a,b.name),isDir:b.isDir,size:b.size,children:b.isDir?[]:void 0,loaded:!b.isDir,outsideLinkTarget:b.outsideLinkTarget,outsideLinkEncloses:b.outsideLinkEncloses,hidden:b.hidden}))}async function bc(a,b){let c=await fetch(`/api/files/${(0,a1.HG)(a)}?type=allow-link`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:b})});if(!c.ok)throw await ba(c,"Failed to allow the linked folder")}async function bd(a){let b=new URLSearchParams({cwd:a}),c=await fetch(`/api/git/status?${b.toString()}`);if(!c.ok)throw Error(`Failed to load Git status (HTTP ${c.status})`);return c.json()}let be={modified:"files.modified",added:"files.added",deleted:"files.deleted",renamed:"files.renamed",untracked:"files.untracked",conflict:"files.conflict"},bf={modified:"#d6a84b",added:"#4ade80",deleted:"#f87171",renamed:"#60a5fa",untracked:"#4ade80",conflict:"#f87171"};function bg({status:a,t:b}){return(0,p.jsx)("span",{title:b(be[a.status]),"aria-label":b(be[a.status]),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:bf[a.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600},children:a.code})}function bh({size:a=11}){return(0,p.jsxs)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,p.jsx)("path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"})]})}function bi({size:a=11}){return(0,p.jsxs)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M15 3h6v6"}),(0,p.jsx)("path",{d:"M10 14 21 3"}),(0,p.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})}let bj={ignored:"files.hiddenIgnored",excluded:"files.hiddenExcluded"};function bk({node:a,depth:b,cwd:c,onOpenFile:d,onAtMention:e,expandedPaths:f,onToggleExpanded:g,refreshToken:h,highlightedPaths:i,gitStatusByPath:j,changedDirectoryPaths:k,showHidden:l=!1,parentHidden:m,dropTargetPath:n,onDropFiles:o,onDropTargetChange:r,t:s}){let t=f.has(a.fullPath),u=a.hidden??m,v=a.isDir&&n===a.fullPath,w=i.has(a.fullPath),x=(0,a1.A0)(a.fullPath),y=j.get(x),z=a.isDir&&(void 0!==y||k.has(x)),[A,B]=(0,q.useState)(a.children??[]),[C,D]=(0,q.useState)(a.loaded??!1),[E,F]=(0,q.useState)(!1),[G,H]=(0,q.useState)(null),[I,J]=(0,q.useState)(!1),[K,L]=(0,q.useState)(null),[M,N]=(0,q.useState)(!1),[O,P]=(0,q.useState)(null),Q=a.outsideLinkTarget&&a.outsideLinkTarget!==K?a.outsideLinkTarget:null,R=(0,q.useCallback)(async(b=!1)=>{if(!C||b){F(!0),H(null);try{let b=await bb(a.fullPath,l);B(b),D(!0)}catch(a){H(a instanceof Error?a.message:String(a))}finally{F(!1)}}},[C,a.fullPath,l]);(0,q.useRef)(l);let S=(0,q.useCallback)(()=>{if(a.isDir){let b=!t;g(a.fullPath,b),!b||C||Q||R()}else d(a.fullPath,a.name)},[a.isDir,a.fullPath,a.name,C,t,Q,R,d,g]),T=(0,q.useCallback)(async b=>{if((b.stopPropagation(),Q)&&(!a.outsideLinkEncloses||window.confirm(s("files.allowEnclosingLinkConfirm",{target:Q})))){N(!0),P(null);try{await bc(a.fullPath,Q),L(Q),await R(!0)}catch(a){P(a instanceof Error?a.message:String(a))}finally{N(!1)}}},[a.fullPath,a.outsideLinkEncloses,Q,R,s]);return(0,p.jsxs)("div",{children:[(0,p.jsxs)("div",{onClick:S,onMouseEnter:()=>J(!0),onMouseLeave:()=>J(!1),onDragOver:a.isDir?b=>{b.dataTransfer.types.includes("Files")&&(b.preventDefault(),b.stopPropagation(),b.dataTransfer.dropEffect="copy",r?.(a.fullPath))}:void 0,onDrop:a.isDir?b=>{b.dataTransfer.types.includes("Files")&&(b.preventDefault(),b.stopPropagation(),r?.(null),o?.(a.fullPath,a8(b.dataTransfer)))}:void 0,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*b,paddingRight:8,height:24,cursor:"pointer",background:v?"color-mix(in srgb, var(--accent) 16%, transparent)":I?"var(--bg-hover)":"transparent",outline:v?"1px dashed var(--accent)":"none",outlineOffset:-1,borderRadius:4,userSelect:"none"},children:[a.isDir&&(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:t?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,p.jsx)("polyline",{points:"3 2 7 5 3 8"})}),!a.isDir&&(0,p.jsx)("span",{style:{width:10,flexShrink:0}}),(0,p.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:u?.55:1},children:a.isDir?(0,p.jsx)(a0.sj,{size:14,open:t}):(0,a0.I3)(a.name,14)}),(0,p.jsx)("span",{"data-hidden-reason":u,style:{fontSize:12,color:u?"var(--text-muted)":"var(--text)",opacity:u?.55:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:u?`${a.fullPath}
|
|
2
|
+
${s(bj[u])}`:a.fullPath,children:a.name}),!I&&Q&&(0,p.jsx)("span",{title:s("files.outsideLink",{target:Q}),"aria-label":s("files.outsideLink",{target:Q}),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)"},children:(0,p.jsx)(bi,{})}),w&&(0,p.jsx)("span",{title:s("files.newlyUploaded"),"aria-label":s("files.newlyUploaded"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,p.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#3b82f6"}})}),!I&&!a.isDir&&y&&(0,p.jsx)(bg,{status:y,t:s}),!I&&z&&(0,p.jsx)("span",{title:s("files.containsChangedFiles"),"aria-label":s("files.containsChangedFiles"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,p.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#d6a84b"}})}),E&&(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",children:(0,p.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})}),e&&I&&(0,p.jsxs)("button",{onClick:b=>{b.stopPropagation(),e((0,a1.qP)(a.fullPath,c),a.isDir)},title:s("files.insertPath"),style:{position:"absolute",right:a.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,p.jsx)(bh,{}),s("files.mention")]}),I&&!a.isDir&&(0,p.jsx)("a",{href:`/api/files/${(0,a1.HG)(a.fullPath)}?type=download`,download:!0,onClick:a=>a.stopPropagation(),title:s("files.download"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap",textDecoration:"none"},children:(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,p.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,p.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})]}),a.isDir&&t&&Q&&(0,p.jsxs)("div",{style:{paddingLeft:8+(b+1)*14,paddingRight:8,paddingTop:3,paddingBottom:5,display:"flex",flexDirection:"column",alignItems:"flex-start",gap:4,fontSize:11,color:"var(--text-dim)"},children:[(0,p.jsx)("span",{style:{wordBreak:"break-all"},children:s("files.outsideLink",{target:Q})}),a.outsideLinkEncloses&&(0,p.jsx)("span",{style:{color:"#f59e0b"},children:s("files.outsideLinkEncloses")}),(0,p.jsx)("button",{type:"button",onClick:T,disabled:M,title:s("files.allowOutsideLinkTitle",{target:Q}),style:{height:20,padding:"0 8px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:M?"default":"pointer",opacity:M?.6:1,fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:s("files.allowOutsideLink")}),O&&(0,p.jsx)("span",{role:"alert",style:{color:"#f87171",wordBreak:"break-word"},children:O})]}),a.isDir&&t&&!Q&&(0,p.jsxs)("div",{children:[A.map(a=>(0,p.jsx)(bk,{node:a,depth:b+1,cwd:c,onOpenFile:d,onAtMention:e,expandedPaths:f,onToggleExpanded:g,refreshToken:h,highlightedPaths:i,gitStatusByPath:j,changedDirectoryPaths:k,showHidden:l,parentHidden:u,dropTargetPath:n,onDropFiles:o,onDropTargetChange:r,t:s},a.fullPath)),0===A.length&&C&&!G&&(0,p.jsx)("div",{style:{paddingLeft:8+(b+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"}),G&&(0,p.jsx)("div",{role:"alert",style:{paddingLeft:8+(b+1)*14,paddingRight:8,paddingTop:3,paddingBottom:3,fontSize:11,color:"#f87171",wordBreak:"break-word"},children:G})]})]})}function bl({status:a,cwd:b,onOpenFile:c,onAtMention:d,checked:e,onToggleSelected:f,t:g}){let[h,i]=(0,q.useState)(!1),j=(0,a1.WP)(a.filePath),k=(0,a1.qP)(a.filePath,b),l=k.lastIndexOf("/"),m=l>=0?k.slice(0,l+1):"",n=l>=0?k.slice(l+1):k;return(0,p.jsxs)("div",{onClick:()=>c(a.filePath,j,{modeHint:"diff"}),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),title:a.filePath,style:{display:"flex",alignItems:"center",gap:6,paddingLeft:f?6:10,paddingRight:8,height:24,cursor:"pointer",background:h?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",position:"relative"},children:[f&&(0,p.jsx)("input",{type:"checkbox",checked:e,onClick:a=>a.stopPropagation(),onChange:a=>f(a.target.checked),title:g("files.commitToggleFile"),"aria-label":g("files.commitToggleFile"),style:{flexShrink:0,width:13,height:13,margin:0,accentColor:"var(--accent)",cursor:"pointer"}}),(0,p.jsx)(bg,{status:a,t:g}),(0,p.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:(0,a0.I3)(j,13)}),(0,p.jsxs)("span",{title:a.filePath,style:{fontSize:12,color:"var(--text)",display:"flex",alignItems:"center",minWidth:0,flex:1},children:[m&&(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,color:"var(--text-dim)"},children:m}),(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:0,maxWidth:"100%"},children:n})]}),d&&h&&(0,p.jsxs)("button",{onClick:a=>{a.stopPropagation(),d(k,!1)},title:g("files.insertPath"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,p.jsx)(bh,{}),g("files.mention")]})]})}let bm=(0,q.forwardRef)(function({cwd:a,onOpenFile:b,refreshKey:c,onAtMention:d,onAtMentions:e,onUploadBusyChange:f,changesCollapsed:g,onChangesCountChange:h,fileSearchOpen:i=!1,onFileSearchOpenChange:j,showHidden:k=!1},l){let{t:m}=(0,aG.s)(),[n,o]=(0,q.useState)([]),[r,s]=(0,q.useState)(!0),[t,u]=(0,q.useState)(null),[v,w]=(0,q.useState)(new Set),[x,y]=(0,q.useState)(0),[z,A]=(0,q.useState)(new Set),[B,C]=(0,q.useState)([]),[D,E]=(0,q.useState)({additions:0,deletions:0}),[F,G]=(0,q.useState)(!1),[H,I]=(0,q.useState)(""),[J,K]=(0,q.useState)(!1),[L,M]=(0,q.useState)(!1),[N,O]=(0,q.useState)(null),[P,Q]=(0,q.useState)(null),[R,S]=(0,q.useState)(new Set),[T,U]=(0,q.useState)("idle"),[V,W]=(0,q.useState)(0),[X,Y]=(0,q.useState)(null),[Z,$]=(0,q.useState)(null),[_,aa]=(0,q.useState)(null),[ab,ac]=(0,q.useState)(""),[ad,ae]=(0,q.useState)([]),[af,ag]=(0,q.useState)(!1),[ah,ai]=(0,q.useState)(!1),[aj,ak]=(0,q.useState)(new Set),al=(0,q.useRef)(null),[am,an]=(0,q.useState)(!1),[ao,ap]=(0,q.useState)(null),aq=(0,q.useRef)(0),ar=(0,q.useRef)(null),as=(0,q.useRef)(v),at=(0,q.useRef)(null),au=`${c??0}:${x}`,av="idle"!==T,aw=ab.trim().length>0;(0,q.useEffect)(()=>{if(!i)return;let b=ab.trim();if(!b){ae([]),ag(!1),ai(!1);return}let c=new AbortController;ag(!0),ai(!1);let d=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(a)}&q=${encodeURIComponent(b)}`,{signal:c.signal}).then(a=>a.ok?a.json():Promise.reject(Error("Search failed"))).then(a=>ae((a.matches??[]).filter(a=>!a.isDir).map(a=>a.path))).catch(()=>{c.signal.aborted||(ae([]),ai(!0))}).finally(()=>{c.signal.aborted||ag(!1)})},150);return()=>{clearTimeout(d),c.abort()}},[a,i,ab]),(0,q.useEffect)(()=>{i&&al.current?.focus()},[i]),(0,q.useEffect)(()=>{if(0===ad.length)return;let b=new Set;for(let c of ad){let d=c.split("/"),e="";for(let c=0;c<d.length-1;c++)e=e?`${e}/${d[c]}`:d[c],b.add((0,a1.e_)(a,e))}ak(a=>{let c=!1,d=new Set(a);for(let a of b)d.has(a)||(d.add(a),c=!0);return c?d:a})},[a,ad]);let ax=(0,q.useMemo)(()=>{let b=c=>({name:c.name,fullPath:(0,a1.e_)(a,c.path),isDir:c.isDir,size:0,children:c.children.map(b),loaded:!0});return(function(a){let b=[],c=new Map;for(let d of a){let a=d.split("/"),e=b,f="";for(let b=0;b<a.length;b++){f=f?`${f}/${a[b]}`:a[b];let d=c.get(f);d||(d={name:a[b],path:f,isDir:b<a.length-1,children:[]},c.set(f,d),e.push(d)),e=d.children}}let d=a=>{a.sort((a,b)=>a.isDir!==b.isDir?a.isDir?-1:1:a.name.localeCompare(b.name)),a.forEach(a=>d(a.children))};return d(b),b})(ad).map(b)},[a,ad]),ay=(0,q.useMemo)(()=>new Map(B.map(a=>[(0,a1.A0)(a.filePath),a])),[B]),az=(0,q.useMemo)(()=>{let b=new Set,c=(0,a1.A0)(a).replace(/\/$/,"");for(let a of B){let d=(0,a1.gX)((0,a1.A0)(a.filePath));for(;(d===c||d.startsWith(`${c}/`))&&(b.add(d),d!==c);){let a=(0,a1.gX)(d);if(a===d)break;d=a}}return b},[a,B]),aA=(0,q.useCallback)((a,b)=>{w(c=>{let d=new Set(c);return b?d.add(a):d.delete(a),d})},[]),aB=(0,q.useCallback)((a,b)=>{let c=a.uploaded??[];$({directory:b,uploaded:c,skipped:a.skipped??[],errors:a.errors??[]}),c.length>0&&(A(new Set(c.map(a=>(0,a1.e_)(b,a)))),y(a=>a+1))},[]),aC=(0,q.useCallback)(async(a,b,c)=>{aa(null),Y(null),W(0),U("uploading");try{let{status:d,data:e}=await a6(c,a,b,W);if(409===d&&e.conflicts?.length)return void aa({directory:c,files:a,conflicts:e.conflicts,nonReplaceable:e.nonReplaceable??[]});if(d<200||d>=300)throw Error(e.error??`Upload failed (HTTP ${d})`);W(100),aB(e,c)}catch(a){Y(a instanceof Error?a.message:String(a))}finally{U("idle")}},[aB]),aD=(0,q.useCallback)(async(a,b)=>{if(0!==a.length&&!av){$(null),A(new Set),aa(null),Y(null),W(0),U("checking");try{let c=await fetch(`/api/files/${(0,a1.HG)(b)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:a.map(a=>a.name)})}),d=await c.json().catch(()=>({}));if(!c.ok)throw Error(d.error??`Upload check failed (HTTP ${c.status})`);if(d.conflicts?.length)return void aa({directory:b,files:a,conflicts:d.conflicts,nonReplaceable:d.nonReplaceable??[]});await aC(a,"error",b)}catch(a){Y(a instanceof Error?a.message:String(a))}finally{U("idle")}}},[aC,av]),aE=(0,q.useCallback)(b=>{let c=Array.from(b.target.files??[]);b.target.value="",aD(c,a)},[a,aD]);(0,q.useImperativeHandle)(l,()=>({openUploadPicker(){av||at.current?.click()}}),[av]);let aF=(0,q.useCallback)(()=>{aq.current=0,an(!1),ap(null)},[]),aH=(0,q.useCallback)(a=>{a.dataTransfer.types.includes("Files")&&(a.preventDefault(),aq.current+=1,an(!0))},[]),aI=(0,q.useCallback)(a=>{a.dataTransfer.types.includes("Files")&&(a.preventDefault(),a.dataTransfer.dropEffect="copy",ap(a=>null===a?a:null))},[]),aJ=(0,q.useCallback)(()=>{aq.current<=0||(aq.current-=1,0===aq.current&&(aq.current=0,an(!1),ap(null)))},[]),aK=(0,q.useCallback)((a,b)=>{aF();let c=b.flatMap(a=>"file"===a.kind?[a.file]:[]),d=b.flatMap(a=>"folder"===a.kind?[a.name]:[]);aD(c,a).then(()=>{if(0===d.length)return;let a=m("chat.dropFoldersUnsupported",{names:d.join(", ")});Y(b=>b&&c.length>0?b:a)})},[aD,aF,m]),aL=(0,q.useCallback)(b=>{b.dataTransfer.types.includes("Files")&&(b.preventDefault(),b.stopPropagation(),aK(ao??a,a8(b.dataTransfer)))},[a,ao,aK]),aM=(0,q.useCallback)(a=>{ap(b=>b===a?b:a)},[]);(0,q.useEffect)(()=>{f?.(av)},[f,av]),(0,q.useEffect)(()=>()=>f?.(!1),[f]),(0,q.useEffect)(()=>{as.current=v},[v]),(0,q.useEffect)(()=>()=>{null!==ar.current&&a9.save(ar.current,as.current)},[]),(0,q.useEffect)(()=>{let b=ar.current,c=b!==a;if(ar.current=a,c){null!==b&&a9.save(b,as.current);let c=a9.restore(a);as.current=c,w(c),A(new Set),$(null),aa(null),Y(null)}s(c),u(null);let d=!1;return bb(a,k).then(a=>{d||o(a)}).catch(a=>{d||u(a instanceof Error?a.message:String(a))}).finally(()=>{d||s(!1)}),()=>{d=!0}},[a,c,x,k]),(0,q.useEffect)(()=>{let a=()=>y(a=>a+1);return window.addEventListener("focus",a),()=>window.removeEventListener("focus",a)},[]),(0,q.useEffect)(()=>{let b=!1;return bd(a).then(a=>{b||(C(a.isGitRepository?a.files:[]),E(a.isGitRepository?{additions:a.additions,deletions:a.deletions}:{additions:0,deletions:0}))}).catch(()=>{b||(C([]),E({additions:0,deletions:0}))}),()=>{b=!0}},[a,c,x]),(0,q.useEffect)(()=>{h?.(B.length)},[B,h]);let aN=(0,q.useMemo)(()=>B.filter(a=>!R.has(a.filePath)),[B,R]),aO=(0,q.useCallback)((a,b)=>{S(c=>{let d=new Set(c);return b?d.delete(a):d.add(a),d})},[]),aP=(0,q.useCallback)(async()=>{if(L)return;if(0===aN.length)return void O(m("files.commitNoFilesSelected"));let b=aN.flatMap(a=>a.originalPath?[a.filePath,a.originalPath]:[a.filePath]);M(!0),O(null),Q(null);try{let c=await fetch("/api/git/commit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,paths:b,message:H,push:J})}),d=await c.json();c.ok&&d.ok?(I(""),S(new Set),Q({commit:d.commit??"",pushed:!0===d.pushed,pushError:d.pushError}),y(a=>a+1)):O(function(a,b,c){switch(a){case"empty-message":return c("files.commitErrorEmptyMessage");case"no-files":return c("files.commitNoFilesSelected");case"no-repository":return c("files.commitErrorNoRepository");case"outside-repository":return c("files.commitErrorOutside");case"nothing-to-commit":return c("files.commitErrorNothing");default:return b?.trim()||c("files.commitErrorGeneric")}}(d.kind,d.error,m))}catch(a){O(a instanceof Error?a.message:String(a))}finally{M(!1)}},[L,H,J,a,aN,m]),aQ=P?(0,p.jsxs)("span",{children:[m("files.commitDone",{sha:P.commit}),P.pushed?` \xb7 ${m("files.commitPushed")}`:"",P.pushError?` \xb7 ${"no-upstream"===P.pushError?m("files.commitPushNoUpstream"):m("files.commitPushFailed",{error:P.pushError})}`:""]}):null,aR=av||null!==_||null!==X||null!==Z,aS=(0,q.useCallback)(()=>{Z&&0!==Z.uploaded.length&&e?.(Z.uploaded.map(b=>(0,a1.qP)((0,a1.e_)(Z.directory,b),a)))},[a,e,Z]);return(0,p.jsxs)("div",{style:{minHeight:"100%"},onDragEnter:aH,onDragOver:aI,onDragLeave:aJ,onDrop:aL,children:[(0,p.jsx)("input",{ref:at,type:"file",multiple:!0,hidden:!0,onChange:aE}),aR&&(0,p.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[av&&(0,p.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===T?m("files.checking"):m("files.uploading",{progress:V}),children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===T?(0,p.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true",children:(0,p.jsx)("path",{d:"M21 12a9 9 0 1 1-5.7-8.4"})}):(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M12 16V4"}),(0,p.jsx)("path",{d:"m7 9 5-5 5 5"}),(0,p.jsx)("path",{d:"M5 20h14"})]}),"uploading"===T&&(0,p.jsxs)("span",{style:{fontSize:10},children:[V,"%"]})]}),"uploading"===T&&(0,p.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,p.jsx)("div",{style:{width:`${V}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),_&&(0,p.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, #f59e0b 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, #f59e0b 9%, var(--bg-panel))"},children:[(0,p.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:m("files.conflictSummary",{count:_.conflicts.length,countSuffix:1===_.conflicts.length?"":"s",files:_.conflicts.join(", ")})}),_.nonReplaceable.length>0&&(0,p.jsx)("div",{style:{marginTop:3,fontSize:10,color:"#f59e0b",lineHeight:1.35,overflowWrap:"anywhere"},children:m("files.cannotReplace",{files:_.nonReplaceable.join(", ")})}),(0,p.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,p.jsx)("button",{type:"button",onClick:()=>void aC(_.files,"overwrite",_.directory),style:{height:22,padding:"0 7px",border:"1px solid #ef4444",borderRadius:4,background:"transparent",color:"#ef4444",cursor:"pointer",fontSize:10},children:m("files.replace")}),(0,p.jsx)("button",{type:"button",onClick:()=>void aC(_.files,"skip",_.directory),style:{height:22,padding:"0 7px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:10},children:m("files.skipExisting")}),(0,p.jsx)("button",{type:"button",onClick:()=>aa(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:m("files.cancel")})]})]}),X&&(0,p.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"#f87171"},children:[(0,p.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:X}),(0,p.jsx)(a_,{onClick:()=>Y(null),title:m("files.dismissError")})]}),Z&&(0,p.jsxs)("div",{"aria-live":"polite",children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,p.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[Z.uploaded.length>0&&(0,p.jsxs)("span",{title:`${Z.uploaded.length} uploaded`,"aria-label":`${Z.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"#22c55e"},children:[(0,p.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"m5 12 4 4L19 6"})}),(0,p.jsx)("span",{children:Z.uploaded.length})]}),Z.skipped.length>0&&(0,p.jsxs)("span",{title:`${Z.skipped.length} skipped`,"aria-label":`${Z.skipped.length} skipped`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"M8 12h8"})]}),(0,p.jsx)("span",{children:Z.skipped.length})]}),Z.errors.length>0&&(0,p.jsxs)("span",{title:`${Z.errors.length} failed`,"aria-label":`${Z.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"#f87171"},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M12 3 2.5 20h19L12 3Z"}),(0,p.jsx)("path",{d:"M12 9v4"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),(0,p.jsx)("span",{children:Z.errors.length})]})]}),Z.uploaded.length>0&&e&&(0,p.jsxs)("button",{type:"button",onClick:aS,title:1===Z.uploaded.length?m("files.addUploadedFile"):m("files.addAllUploadedFiles"),"aria-label":1===Z.uploaded.length?m("files.addUploadedFile"):m("files.addAllUploadedFiles"),style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,p.jsx)(bh,{}),m("files.mention")]}),(0,p.jsx)(a_,{onClick:()=>$(null),title:m("files.dismissUploadResults")})]}),Z.errors.map(a=>(0,p.jsxs)("div",{title:a.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"#f87171"},children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"M12 8v5"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),(0,p.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.name))]})]}),i&&(0,p.jsxs)("div",{style:{padding:"2px 8px 6px"},children:[(0,p.jsxs)("div",{style:{position:"relative"},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},children:[(0,p.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,p.jsx)("path",{d:"m20 20-4-4"})]}),(0,p.jsx)("input",{ref:al,id:"file-search-input",value:ab,onChange:a=>ac(a.target.value),onKeyDown:a=>{"Escape"===a.key&&j?.(!1)},placeholder:m("sidebar.searchFilesPlaceholder"),"aria-label":m("sidebar.searchFiles"),style:{width:"100%",boxSizing:"border-box",padding:"6px 24px",border:"1px solid var(--border)",borderRadius:8,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}}),ab&&(0,p.jsx)("button",{type:"button",onClick:()=>ac(""),title:m("sidebar.clearSearch"),"aria-label":m("sidebar.clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-dim)"},children:(0,p.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M18 6 6 18"}),(0,p.jsx)("path",{d:"m6 6 12 12"})]})})]}),aw&&(0,p.jsxs)("div",{style:{paddingTop:3},children:[af&&(0,p.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:m("sidebar.searchingFiles")}),!af&&ah&&(0,p.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"#f87171"},children:m("i18n.networkError")}),!af&&!ah&&0===ad.length&&(0,p.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:m("sidebar.noMatchingFiles")}),!af&&!ah&&ad.length>0&&(0,p.jsx)("div",{children:ax.map(c=>(0,p.jsx)(bk,{node:c,depth:0,cwd:a,onOpenFile:b,onAtMention:d,expandedPaths:aj,onToggleExpanded:(a,b)=>{ak(c=>{let d=new Set(c);return b?d.add(a):d.delete(a),d})},highlightedPaths:z,gitStatusByPath:ay,changedDirectoryPaths:az,dropTargetPath:ao,onDropFiles:aK,onDropTargetChange:aM,t:m},`${ab}:${c.fullPath}`))})]})]}),!g&&(B.length>0||P)&&(0,p.jsxs)("div",{style:{padding:"0 4px 2px"},children:[B.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("div",{"aria-label":m("files.changeStats",{count:B.length,additions:D.additions,deletions:D.deletions}),style:{display:"flex",alignItems:"center",gap:6,height:24,padding:"0 10px",fontSize:12},children:[(0,p.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:m("files.changedCount",{count:B.length})}),(0,p.jsxs)("span",{style:{color:bf.added,fontFamily:"var(--font-mono)"},children:["+",D.additions]}),(0,p.jsxs)("span",{style:{color:bf.deleted,fontFamily:"var(--font-mono)"},children:["-",D.deletions]}),(0,p.jsx)("span",{style:{flex:1}}),(0,p.jsx)("button",{onClick:()=>{G(a=>!a),O(null),Q(null)},disabled:L,style:{height:20,padding:"0 7px",display:"flex",alignItems:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:L?"default":"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:m("files.commit")})]}),F&&(0,p.jsxs)("div",{style:{padding:"2px 8px 6px",display:"flex",flexDirection:"column",gap:6},children:[(0,p.jsx)("textarea",{value:H,onChange:a=>I(a.target.value),placeholder:m("files.commitMessagePlaceholder"),rows:3,disabled:L,style:{width:"100%",boxSizing:"border-box",resize:"vertical",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,padding:"4px 6px",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.4}}),(0,p.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:11,color:"var(--text-dim)",cursor:"pointer",userSelect:"none"},children:[(0,p.jsx)("input",{type:"checkbox",checked:J,onChange:a=>K(a.target.checked),disabled:L,style:{accentColor:"var(--accent)"}}),m("files.commitPush")]}),(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,p.jsx)("button",{onClick:aP,disabled:L||0===aN.length,style:{height:22,padding:"0 10px",border:"none",borderRadius:4,background:"var(--accent)",color:"var(--accent-contrast)",cursor:L?"default":"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:L?m("files.committing"):m("files.commit")}),(0,p.jsx)("button",{onClick:()=>{G(!1),O(null),Q(null)},disabled:L,style:{height:22,padding:"0 10px",border:"1px solid var(--border)",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:L?"default":"pointer",fontSize:11,whiteSpace:"nowrap"},children:m("files.commitCancel")}),(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:m("files.commitSelectedCount",{count:aN.length})})]}),N&&(0,p.jsx)("div",{role:"alert",style:{fontSize:11,color:"#f87171",whiteSpace:"pre-wrap"},children:N}),aQ&&(0,p.jsx)("div",{role:"status",style:{fontSize:11,color:"var(--text-dim)"},children:aQ})]}),B.map(c=>(0,p.jsx)(bl,{status:c,cwd:a,onOpenFile:b,onAtMention:d,checked:!R.has(c.filePath),onToggleSelected:a=>aO(c.filePath,a),t:m},c.filePath))]}),0===B.length&&P&&(0,p.jsxs)("div",{role:"status",style:{display:"flex",alignItems:"center",gap:6,margin:"2px 2px 0",padding:"4px 6px",fontSize:11,color:"var(--text-dim)"},children:[(0,p.jsx)("span",{style:{flex:1,minWidth:0},children:aQ}),(0,p.jsx)(a_,{onClick:()=>Q(null),title:m("files.commitDismiss")})]})]}),(g||0===B.length)&&(!i||!aw)&&(0,p.jsxs)("div",{style:{padding:"2px 4px"},children:[r?(0,p.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):t?(0,p.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"#f87171"},children:t}):n.map(c=>(0,p.jsx)(bk,{node:c,depth:0,cwd:a,onOpenFile:b,onAtMention:d,expandedPaths:v,onToggleExpanded:aA,refreshToken:au,highlightedPaths:z,gitStatusByPath:ay,changedDirectoryPaths:az,showHidden:k,dropTargetPath:ao,onDropFiles:aK,onDropTargetChange:aM,t:m},c.fullPath)),!r&&!t&&0===n.length&&(0,p.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:m("files.noFiles")})]}),am&&(0,p.jsxs)("div",{role:"status","aria-live":"polite",style:{position:"sticky",bottom:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)",fontSize:11,color:"var(--accent)",userSelect:"none",pointerEvents:"none"},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,p.jsx)("path",{d:"M12 16V4"}),(0,p.jsx)("path",{d:"m7 9 5-5 5 5"}),(0,p.jsx)("path",{d:"M5 20h14"})]}),m("files.dropToUpload",{directory:ao?(0,a1.qP)(ao,a)||ao:(0,a1.WP)(a)||a})]})]})});var bn=c(96594);function bo({onWidthChange:a}){let{t:b}=(0,aG.s)(),[c,d]=(0,q.useState)(!1),e=(0,q.useRef)(null),f="0.13.1",g="1.2.0",h=function(a){let[b,c]=(0,q.useState)(a);return(0,q.useRef)(a),b}(c?`${f??"0.0.0"}p${g??"0.0.0"}`:"Pi Web");return(0,p.jsx)("button",{type:"button",className:`sidebar-brand${c?" is-version":""}`,"aria-label":b("sidebar.brandLabel",{app:f??"0.0.0",pi:g??"0.0.0"}),onClick:()=>{(e.current&&clearTimeout(e.current),e.current=null,c)?d(!1):(d(!0),e.current=setTimeout(()=>{e.current=null,d(!1)},3e3))},children:h})}var bp=c(5006),bq=c(74362);let br={desktop:32,mobile:48};function bs(a,b,c,d){return Math.hypot(c-a,d-b)}function bt(a){return a.getClientRects().length>0}function bu({size:a=13,className:b,label:c,strokeWidth:d=2,children:e}){return(0,p.jsx)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:d,strokeLinecap:"round",strokeLinejoin:"round",className:b,...c?{role:"img","aria-label":c}:{"aria-hidden":!0},children:e})}function bv(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M12 5v14M5 12h14"})})}function bw(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("circle",{cx:"5",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,p.jsx)("circle",{cx:"19",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"})]})}function bx(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("rect",{x:"3",y:"4",width:"18",height:"5",rx:"1"}),(0,p.jsx)("path",{d:"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9"}),(0,p.jsx)("path",{d:"M10 13h4"})]})}function by(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,p.jsx)("path",{d:"M3 3v5h5"})]})}function bz(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M12 17v5"}),(0,p.jsx)("path",{d:"M9 10.8a2 2 0 0 1-1.1 1.8l-1.8.9A2 2 0 0 0 5 15.2V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.8a2 2 0 0 0-1.1-1.8l-1.8-.9a2 2 0 0 1-1.1-1.8V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"})]})}function bA(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M12 17v5"}),(0,p.jsx)("path",{d:"M15 9.3V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8.5"}),(0,p.jsx)("path",{d:"m2 2 20 20"}),(0,p.jsx)("path",{d:"M9 9v1.8a2 2 0 0 1-1.1 1.8l-1.8.9A2 2 0 0 0 5 15.2V16a1 1 0 0 0 1 1h11"})]})}function bB({strokeWidth:a,...b}){return(0,p.jsx)(bu,{...b,strokeWidth:a,children:(0,p.jsx)("path",{d:"m9 6 6 6-6 6"})})}function bC(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,p.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,p.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,p.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}function bD(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("circle",{cx:"6",cy:"5",r:"2.5"}),(0,p.jsx)("circle",{cx:"18",cy:"5",r:"2.5"}),(0,p.jsx)("circle",{cx:"12",cy:"19",r:"2.5"}),(0,p.jsx)("path",{d:"M6 7.5v1.5a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V7.5"}),(0,p.jsx)("path",{d:"M12 12v4.5"})]})}function bE(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M14 4h6v6"}),(0,p.jsx)("path",{d:"M20 4 11 13"}),(0,p.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]})}function bF(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,p.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,p.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]})}function bG(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"})})}function bH(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("circle",{cx:"12",cy:"12",r:"4.5",fill:"currentColor",stroke:"none"})})}function bI(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("circle",{cx:"12",cy:"12",r:"4.5"})})}function bJ(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M20 6 9 17l-5-5"})})}function bK(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}function bL(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M3 8a2 2 0 0 1 2-2h3.4l1.9 1.9H19a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"})})}function bM(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M3 8a2 2 0 0 1 2-2h3.4l1.9 1.9H19a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"}),(0,p.jsx)("path",{d:"M12 11v5M9.5 13.5h5"})]})}function bN(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,p.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]})}function bO(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("circle",{cx:"5",cy:"6",r:"2.5"}),(0,p.jsx)("circle",{cx:"5",cy:"18",r:"2.5"}),(0,p.jsx)("circle",{cx:"19",cy:"12",r:"2.5"}),(0,p.jsx)("path",{d:"M5 8.5v7"}),(0,p.jsx)("path",{d:"M7.5 6H12a7 7 0 0 1 7 7v.01"}),(0,p.jsx)("path",{d:"M7.5 18H12"})]})}function bP(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M18 8a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"}),(0,p.jsx)("path",{d:"M6 21a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"}),(0,p.jsx)("path",{d:"M15.5 5.5 8.5 18.5"})]})}function bQ(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("rect",{x:"9",y:"9",width:"11",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function bR(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,p.jsx)("path",{d:"m20 20-4-4"})]})}function bS(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,p.jsx)("path",{d:"m17 8-5-5-5 5"}),(0,p.jsx)("path",{d:"M12 3v12"})]})}function bT(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,p.jsx)("path",{d:"M3 3v5h5"})]})}function bU(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,p.jsx)("path",{d:"M3 12h6M15 12h6"})]})}function bV(a){return(0,p.jsxs)(bu,{...a,children:[(0,p.jsx)("path",{d:"M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function bW(a){return(0,p.jsx)(bu,{...a,children:(0,p.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function bX({className:a,...b}){return(0,p.jsx)(bu,{...b,strokeWidth:2.8,className:a?`sidebar-spin ${a}`:"sidebar-spin",children:(0,p.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4"})})}function bY(a){let b=(0,bq.d)(a.firstMessage)??a.firstMessage;return a.name||b.slice(0,50)||a.id.slice(0,12)}function bZ(a){return a.nativeEvent.isComposing||229===a.keyCode}function b$(a){let{rows:b,layout:c,emptyLabel:d,loading:e,error:f,renamingRootId:g,renamingProjectKey:h,confirmDeleteRootId:i,activeMenuRowKey:j,reveal:k}=a,{t:l}=(0,aG.s)(),m=(0,q.useRef)(a);m.current=a;let n=(0,q.useRef)(null),o=(0,q.useRef)(null),r=(0,q.useRef)(null),s=(0,q.useRef)(null),[t,u]=(0,q.useState)(0),[v,w]=(0,q.useState)(0),[x,y]=(0,q.useState)(null),[z,A]=(0,q.useState)(()=>Date.now()),B=(0,q.useRef)(null),C=(0,q.useCallback)(()=>{null===B.current&&(B.current=requestAnimationFrame(()=>{B.current=null;let a=o.current;a&&u(a.scrollTop)}))},[]),D=(0,q.useCallback)(a=>{let b=a.target instanceof Element?a.target.closest("[data-row-key]"):null;y(b?.getAttribute("data-row-key")??null)},[]),E=(0,q.useCallback)(a=>{a.currentTarget.contains(a.relatedTarget)||y(null)},[]),F=(0,q.useMemo)(()=>(function(a,b){let c=T[b],d=Array(a.length+1);d[0]=0;for(let b=0;b<a.length;b++)d[b+1]=d[b]+c[a[b].kind];return d})(b,c),[b,c]),G=!!a.onMoveGroup,H=(0,q.useMemo)(()=>{let a={pinned:0,other:0};for(let c of b)"group"===c.kind&&a[c.project.pinned?"pinned":"other"]++;return a},[b]),I=function(a){let{rows:b,offsets:c,enabled:d}=a,e=(0,q.useRef)(a);e.current=a;let f=(0,q.useMemo)(()=>(function(a,b){let c=[],d=0;for(;d<a.length;){var e;let f=a[d];if("group"!==f.kind){d++;continue}let g=d;for(;g>0&&"spacer"===a[g-1].kind;)g--;let h=d+1;for(;h<a.length&&("group-more"===(e=a[h]).kind||"group-empty"===e.kind||"session"===e.kind&&"group"===e.context);)h++;let i=h;for(;i<a.length&&"spacer"===a[i].kind;)i++;c.push({key:f.project.key,pinned:f.project.pinned,top:b[d],bottom:b[h],gapAbove:b[d]-b[g],gapBelow:b[i]-b[h]}),d=h}return c})(b,c),[b,c]),g=(0,q.useRef)(f);g.current=f;let h=(0,q.useRef)(null),i=(0,q.useRef)(0),[j,k]=(0,q.useState)(null),l=(0,q.useMemo)(()=>{let a=a=>{k("armed"===a.phase||"dragging"===a.phase?{projectKey:a.projectKey,phase:a.phase,drop:a.drop}:null)},b=a=>{let b=e.current.innerRef.current;return b?function(a,b,c){let d=a.find(a=>a.key===b);if(!d)return null;let e=a.filter(a=>a.pinned===d.pinned),f=e.indexOf(d),g=e.filter(a=>a!==d);if(0===g.length)return null;let h=g.filter(a=>(a.top+a.bottom)/2<c).length;if(h===f)return null;let i=g[g.length-1],j=Math.max(3,h<g.length?g[h].top-g[h].gapAbove/2:i.bottom+i.gapBelow/2);return h>0?{anchorKey:g[h-1].key,position:"after",lineY:j}:{anchorKey:g[0].key,position:"before",lineY:j}}(g.current,a.projectKey,a.clientY-b.getBoundingClientRect().top):null},c=()=>{let a=h.current,b=e.current.ghostRef.current,c=e.current.treeRef.current,d=e.current.innerRef.current,f=e.current.scrollRef.current;if(!a?.ghost||!b||!c||!f)return;let g=c.getBoundingClientRect().top,i=f.getBoundingClientRect(),j=b.offsetHeight,k=function({pointerY:a,lineY:b,ghostHeight:c,pointerGap:d,lineGap:e,minTop:f,maxTop:g}){let h=Math.max(f,g),i=a-d-c,j=null!==b&&b>=f&&b<=h+c?b:null,k=a=>a>=f&&a<=h,l=a=>null!==j&&a>j-e-c&&a<j+e,m=null===j?[i,f,a+d,h]:[i,j-e-c,f,a+d,j+e,h],n=a=>{let b=null;for(let c of m)a(c)&&(null===b||Math.abs(c-i)<Math.abs(b-i))&&(b=c);return b};return n(b=>k(b)&&!(b>i&&b<a+d)&&!l(b))??n(a=>k(a)&&!l(a))??Math.min(h,Math.max(f,i))}({pointerY:a.clientY,lineY:a.drop&&d?d.getBoundingClientRect().top+a.drop.lineY:null,ghostHeight:j,pointerGap:"mouse"===a.pointerType?8:28,lineGap:8,minTop:i.top,maxTop:i.bottom-j});b.style.top=`${k-g}px`,b.style.left=`${a.ghost.left}px`},d=a=>{null!==a.timer&&window.clearTimeout(a.timer),null!==a.frame&&cancelAnimationFrame(a.frame),a.timer=null,a.frame=null,e.current.scrollRef.current?.removeEventListener("scroll",m);try{a.element.hasPointerCapture(a.pointerId)&&a.element.releasePointerCapture(a.pointerId)}catch{}},f=()=>{let a=h.current;a&&(h.current=null,d(a),window.removeEventListener("pointermove",q,!0),window.removeEventListener("pointerup",r,!0),window.removeEventListener("pointercancel",s,!0),window.removeEventListener("pointerdown",t,!0),window.removeEventListener("keydown",u,!0),window.removeEventListener("contextmenu",v,!0),window.removeEventListener("blur",w),document.removeEventListener("visibilitychange",x),k(null))},j=()=>{let a=h.current;if(a){if("armed"!==a.phase&&"dragging"!==a.phase){"pending"===a.phase&&f();return}a.phase="cancelled",a.drop=null,d(a),k(null)}},l=(d=!1)=>{var f;let g=h.current;if(!g||"dragging"!==g.phase)return;let i=e.current.scrollRef.current;if(!i||!bt(i))return void j();let k=b(g),l=d||k!==(f=g.drop)&&(null===k||null===f||k.anchorKey!==f.anchorKey||k.position!==f.position||k.lineY!==f.lineY);g.drop=k,c(),l&&a(g)};function m(){l()}let n=()=>{let a=h.current;if(!a||"dragging"!==a.phase)return;a.frame=null;let b=e.current.scrollRef.current;if(!b||!bt(b))return void j();let c=b.getBoundingClientRect(),d=function(a,b,c,d){let e=Math.min(d,(c-b)/2);if(!(e>0)||!Number.isFinite(a))return 0;let f=a=>Math.ceil(14*Math.min(1,a/e));return a<b+e?-f(b+e-a):a>c-e?f(a-(c-e)):0}(a.clientY,c.top,c.bottom,br[e.current.layout]);if(0!==d){let c=Math.min(Math.max(0,(e.current.offsets[e.current.offsets.length-1]??0)-b.clientHeight),Math.max(0,b.scrollTop+d));c!==b.scrollTop&&(b.scrollTop=c,a.expectedScrollTop=b.scrollTop,l())}h.current===a&&"dragging"===a.phase&&(a.frame=requestAnimationFrame(n))},o=a=>{let b=e.current.scrollRef.current,c=e.current.treeRef.current;if(!b||!c||!bt(b)||!a.element.isConnected)return void j();if(a.phase="dragging","touch"!==a.pointerType)try{a.element.setPointerCapture(a.pointerId)}catch{}a.ghost={left:a.element.getBoundingClientRect().left-c.getBoundingClientRect().left+4},a.expectedScrollTop=b.scrollTop,b.addEventListener("scroll",m,{passive:!0}),a.frame=requestAnimationFrame(n),l(!0)},p=()=>{let b=h.current;b&&"pending"===b.phase&&(b.timer=null,b.phase="armed",b.armX=b.clientX,b.armY=b.clientY,b.expectedScrollTop=e.current.scrollRef.current?.scrollTop??0,a(b))};function q(a){let b=h.current;if(!b||a.pointerId!==b.pointerId)return;if("mouse"===b.pointerType&&0===a.buttons)return void f();b.clientX=a.clientX,b.clientY=a.clientY;let c=bs(b.startX,b.startY,a.clientX,a.clientY);switch(b.phase){case"pending":"mouse"===b.pointerType?c>=4&&o(b):c>8&&f();break;case"armed":bs(b.armX,b.armY,a.clientX,a.clientY)>=4&&o(b);break;case"dragging":l()}}function r(a){let c=h.current;if(c&&a.pointerId===c.pointerId){if("dragging"===c.phase){c.clientX=a.clientX,c.clientY=a.clientY;let d=b(c);d&&e.current.onMove(c.projectKey,d.anchorKey,d.position)}"pending"!==c.phase&&(i.current=a.timeStamp+600),f()}}function s(a){h.current&&a.pointerId===h.current.pointerId&&f()}function t(a){h.current&&a.pointerId!==h.current.pointerId&&j()}function u(a){let b=h.current;b&&"Escape"===a.key&&("armed"===b.phase||"dragging"===b.phase)&&(a.preventDefault(),a.stopPropagation(),j())}function v(a){let b=h.current;if(b){if("pending"===b.phase)return void f();a.preventDefault(),a.stopPropagation()}}function w(){f()}function x(){"hidden"===document.visibilityState&&f()}return{handlers:{onPointerDown(a,b){if(!e.current.enabled||h.current||!a.isPrimary||0!==a.button||a.ctrlKey||a.target instanceof Element&&a.target.closest(".session-tree-group-actions"))return;let c=a.currentTarget,d={pointerId:a.pointerId,pointerType:a.pointerType,projectKey:b,element:c,startX:a.clientX,startY:a.clientY,armX:a.clientX,armY:a.clientY,clientX:a.clientX,clientY:a.clientY,phase:"pending",timer:null,frame:null,expectedScrollTop:0,drop:null,ghost:null};h.current=d,window.addEventListener("pointermove",q,!0),window.addEventListener("pointerup",r,!0),window.addEventListener("pointercancel",s,!0),window.addEventListener("pointerdown",t,!0),window.addEventListener("keydown",u,!0),window.addEventListener("contextmenu",v,!0),window.addEventListener("blur",w),document.addEventListener("visibilitychange",x),"mouse"!==a.pointerType&&(d.timer=window.setTimeout(p,350))},onTouchMove(a){let b=h.current;if(!b||"armed"!==b.phase&&"dragging"!==b.phase)return;if(a.cancelable)return void a.preventDefault();let c=e.current.scrollRef.current;c&&c.scrollTop!==b.expectedScrollTop&&f()}},cancel:j,teardown:f,updateDrag:l,placeGhost:c}},[]);j?.phase;let m=(0,q.useCallback)(a=>{let b=i.current;0===b||(i.current=0,a.timeStamp>b||(a.preventDefault(),a.stopPropagation()))},[]),n=(0,q.useCallback)(()=>{i.current=0},[]);return{view:(0,q.useMemo)(()=>{if(!j)return null;let a="dragging"===j.phase?f.find(a=>a.key===j.projectKey)??null:null;return{...j,source:a}},[j,f]),handlers:l.handlers,onClickCapture:m,onPointerDownCapture:n}}({rows:b,offsets:F,layout:c,enabled:G&&!e,scrollRef:o,innerRef:r,treeRef:n,ghostRef:s,onMove:(a,b,c)=>m.current.onMoveGroup?.(a,b,c)}),J=I.view,K=J?`group:${J.projectKey}`:null,[L,M]=(0,q.useState)(null),N=k&&k.id!==L?k:null,O=N?.rowKey??null,P=(0,q.useMemo)(()=>{let a=[];return b.forEach((b,c)=>{b.key===x||b.key===j||b.key===O||b.key===K||"session"===b.kind&&(b.family.root.id===g||b.family.root.id===i)?a.push(c):"group"===b.kind&&b.project.key===h&&a.push(c)}),a},[b,x,j,O,K,g,h,i]),Q=(0,q.useMemo)(()=>e?[]:function(a,b,c,d=[]){let e=Math.max(0,a.length-1),f=Number.isFinite(b)?Math.max(0,b):0,g=Number.isFinite(c)&&c>0?c:600,h=Number.isFinite(240)&&1?240:0,i=f-h,j=f+g+h,k=0,l=e;for(;k<l;){let b=k+l>>>1;a[b+1]>i?l=b:k=b+1}let m=k;for(k=m,l=e;k<l;){let b=k+l>>>1;a[b]>=j?l=b:k=b+1}let n=k,o=[];for(let a=m;a<n;a++)o.push(a);if(0===d.length)return o;let p=d.filter(a=>Number.isInteger(a)&&a>=0&&a<e&&(a<m||a>=n));return 0===p.length?o:[...new Set([...o,...p])].sort((a,b)=>a-b)}(F,t,v,P),[e,F,t,v,P]),R=(0,q.useRef)(null);(0,q.useRef)(null);let S=(0,q.useCallback)((a,b,c,d)=>{let e=document.activeElement===d,f=e&&d.matches(":focus-visible");R.current={rowKey:a,fallbackKey:b===U?"pinned-header":`group:${b}`,focus:e,scroll:"less"===c||f},"more"===c?m.current.onShowMore(b):m.current.onShowLess(b)},[]);(0,q.useRef)(null);let V=b.some(a=>"session"===a.kind||"group"===a.kind),W=!e&&!f&&null!==d&&!V,X=J?.source??null,Y=J?.drop?.lineY??null,Z=J?.phase==="dragging"?b.find(a=>"group"===a.kind&&a.project.key===J.projectKey)?.project??null:null;return(0,p.jsxs)("div",{ref:n,className:`session-tree${"mobile"===c?" is-mobile":""}${Z?" is-group-dragging":""}`,children:[e&&(0,p.jsx)("div",{className:"session-tree-message",children:l("sidebar.loading")}),f&&(0,p.jsx)("div",{className:"session-tree-message is-error",children:f}),W&&(0,p.jsx)("div",{className:"session-tree-message",children:d}),(0,p.jsx)("div",{ref:o,className:"session-tree-scroll scrollbar-subtle",onScroll:C,onFocus:D,onBlur:E,onPointerDownCapture:I.onPointerDownCapture,onClickCapture:I.onClickCapture,children:!e&&(0,p.jsxs)("div",{ref:r,className:"session-tree-inner",style:{height:F[b.length]},children:[Q.map(a=>{let d=b[a];if("spacer"===d.kind)return null;let e=F[a],f=F[a+1]-e,k=d.key===j;if("session"===d.kind)return(0,p.jsx)(b0,{row:d,layout:c,top:e,height:f,now:z,renaming:d.family.root.id===g,confirming:d.family.root.id===i,menuOpen:k,handlers:m},d.key);if("archive-group"===d.kind)return(0,p.jsx)(b6,{row:d,top:e,height:f,menuOpen:k,handlers:m},d.key);if("group"===d.kind){let a=d.project.key===h;return(0,p.jsx)(b4,{row:d,top:e,height:f,menuOpen:k,renaming:a,canDrag:G&&!a&&H[d.project.pinned?"pinned":"other"]>1,dragPhase:J?.projectKey===d.project.key?J.phase:null,drag:I.handlers,handlers:m},d.key)}return(0,p.jsx)(b5,{row:d,top:e,height:f,handlers:m,onMoreAction:S},d.key)}),X&&(0,p.jsx)("div",{className:"session-tree-drag-source","aria-hidden":"true",style:{top:X.top,height:X.bottom-X.top}}),null!==Y&&(0,p.jsx)("div",{className:"session-tree-drop-line","aria-hidden":"true",style:{top:Y}})]})}),Z&&(0,p.jsx)("div",{ref:s,className:"session-tree-drag-ghost","aria-hidden":"true",children:(0,p.jsx)("span",{className:"session-tree-group-name",children:Z.name})})]})}function b_(a,b){return{top:a,height:b}}let b0=(0,q.memo)(function({row:a,layout:b,top:c,height:d,now:e,renaming:f,confirming:g,menuOpen:h,handlers:i}){let j,k,{locale:l,t:m}=(0,aG.s)(),{family:n,context:o,status:q}=a,r=n.root,s=bY(r),t=new Date(e),u=["session-tree-row session-tree-session",q.selected?"is-selected":"",q.running?"is-running":"","archive"===o?"is-archived":"",h?"is-menu-open":"",g?"is-confirming":"",f?"is-renaming":""].filter(Boolean).join(" ");if(g){let b=s.slice(0,22)+(s.length>22?"…":"");return(0,p.jsx)("div",{className:u,style:b_(c,d),"data-row-key":a.key,onKeyDown:a=>{"Escape"!==a.key||bZ(a)||(a.preventDefault(),a.stopPropagation(),i.current.onDeleteCancel())},children:(0,p.jsx)(b2,{label:m("sidebar.deleteSession",{title:b}),deleteLabel:m("sidebar.delete"),cancelLabel:m("sidebar.cancel"),onConfirm:a=>{a.stopPropagation(),i.current.onDeleteConfirm(n,a)},onCancel:a=>{a.stopPropagation(),i.current.onDeleteCancel()}})})}if(f)return(0,p.jsx)("div",{className:u,style:b_(c,d),"data-row-key":a.key,children:(0,p.jsx)(b1,{initialValue:s,label:m("sidebar.rename"),onCommit:a=>i.current.onRenameCommit(n,a),onCancel:()=>i.current.onRenameCancel()})});let w=r.isWorktree&&r.branch?r.branch:null,x=r.name&&r.relation?.kind==="fork"?aq(r.name):null,y=r.detailsPending?"…":m("sidebar.messagesCount",{count:r.messageCount}),z=`${s}
|
|
3
|
+
${y} \xb7 ${(0,bp.fw)(r.modified,l,t)}${w?` \xb7 ⑂ ${w}`:""}`,A="";q.awaiting?(j=(0,p.jsx)("span",{className:"session-tree-awaiting",role:"img","aria-label":m("sidebar.agentAwaitingInput")}),A=" is-awaiting",k=m("sidebar.agentAwaitingInput")):q.running?(j=(0,p.jsx)(bX,{size:12,label:m("sidebar.agentRunning")}),A=" is-running",k=m("sidebar.agentRunning")):q.unread?(j=(0,p.jsx)("span",{className:"session-tree-unread",role:"img","aria-label":m("sidebar.newSessionActivity")}),A=" is-unread",k=m("sidebar.newActivity")):j="pinned"===o?(0,p.jsx)("span",{className:"session-tree-project",children:a.project.name}):"archive"===o&&null!==a.archivedAt?(0,bp.Rg)(new Date(a.archivedAt),l,t):(0,bp.Rg)(n.latestModified,l,t);let B="desktop"===b&&("archive"===o||!q.running),C=(0,p.jsxs)(p.Fragment,{children:[x?(0,p.jsxs)("span",{className:"session-tree-title has-fork-suffix",children:[(0,p.jsx)("span",{className:"session-tree-title-base",children:x.base}),(0,p.jsx)("span",{className:"session-tree-title-suffix",children:x.suffix})]}):(0,p.jsx)("span",{className:"session-tree-title",children:s}),w&&(0,p.jsxs)("span",{className:"session-tree-branch",children:[(0,p.jsx)(bC,{size:10,className:"session-tree-branch-icon"}),w]}),(0,p.jsx)("span",{className:`session-tree-meta${A}`,title:k,children:j})]});return(0,p.jsxs)("div",{className:u,style:b_(c,d),"data-row-key":a.key,onClick:()=>i.current.onSelectFamily(n),onContextMenu:b=>i.current.onRowContextMenu(a,b),children:[q.transient?(0,p.jsx)("button",{type:"button",className:"session-tree-main",title:z,"aria-current":q.selected?"true":void 0,children:C}):(0,p.jsx)("a",{className:"session-tree-main",href:v(r.id),title:z,"aria-current":q.selected?"true":void 0,onClick:a=>{a.stopPropagation(),a.defaultPrevented||0!==a.button||a.ctrlKey||a.metaKey||a.shiftKey||a.altKey||(a.preventDefault(),i.current.onSelectFamily(n))},children:C}),!q.transient&&(0,p.jsxs)("span",{className:"session-tree-actions",children:[B&&("archive"===o?(0,p.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":m("sidebar.restore"),title:m("sidebar.restore"),onClick:a=>{a.stopPropagation(),i.current.onRestoreFamily(n)},children:(0,p.jsx)(by,{size:13})}):(0,p.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":m("sidebar.archive"),title:m("sidebar.archive"),onClick:a=>{a.stopPropagation(),i.current.onArchiveFamily(n)},children:(0,p.jsx)(bx,{size:13})})),(0,p.jsx)("button",{type:"button",className:`session-tree-action session-tree-more-action${h?" is-active":""}`,"aria-label":m("sidebar.moreActions"),title:m("sidebar.moreActions"),"aria-haspopup":"menu","aria-expanded":h,onClick:b=>{let c;b.stopPropagation();let d=b.currentTarget;i.current.onOpenRowMenu(a,{kind:"rect",rect:{left:(c=d.getBoundingClientRect()).left,top:c.top,right:c.right,bottom:c.bottom},align:"end"},d)},children:(0,p.jsx)(bw,{size:14})})]})]})});function b1({initialValue:a,label:b,maxLength:c,onCommit:d,onCancel:e}){let[f,g]=(0,q.useState)(a),h=(0,q.useRef)(null),i=(0,q.useRef)(!1),j=a=>{i.current||(i.current=!0,d(a))};return(0,p.jsx)("input",{ref:h,className:"session-tree-rename",value:f,"aria-label":b,maxLength:c,onChange:a=>g(a.target.value),onBlur:a=>j(a.currentTarget.value),onKeyDown:a=>{if(!bZ(a)){if("Enter"===a.key)a.preventDefault(),j(a.currentTarget.value);else if("Escape"===a.key){if(a.preventDefault(),a.stopPropagation(),i.current)return;i.current=!0,e()}}}})}function b2({label:a,deleteLabel:b,cancelLabel:c,onConfirm:d,onCancel:e}){let f=(0,q.useRef)(null);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"session-tree-confirm-text",children:a}),(0,p.jsxs)("button",{type:"button",className:"session-tree-confirm-delete",onClick:d,children:[(0,p.jsx)(bF,{size:12}),b]}),(0,p.jsx)("button",{ref:f,type:"button",className:"session-tree-confirm-cancel",onClick:e,children:c})]})}function b3({running:a,unread:b,t:c}){return 0===a&&0===b?null:(0,p.jsxs)("span",{className:"session-tree-summary",children:[a>0&&(0,p.jsxs)("span",{className:"session-tree-summary-running",role:"img",title:c("sidebar.agentRunning"),"aria-label":`${c("sidebar.agentRunning")} (${a})`,children:[(0,p.jsx)(bX,{size:10}),a]}),b>0&&(0,p.jsxs)("span",{className:"session-tree-summary-unread",role:"img",title:c("sidebar.newSessionActivity"),"aria-label":`${c("sidebar.newSessionActivity")} (${b})`,children:[(0,p.jsx)("span",{className:"session-tree-summary-dot"}),b]})]})}let b4=(0,q.memo)(function({row:a,top:b,height:c,menuOpen:d,renaming:e,canDrag:f,dragPhase:g,drag:h,handlers:i}){let{t:j}=(0,aG.s)(),{project:k,expanded:l}=a,m=(0,q.useRef)(null),n=["session-tree-row session-tree-group",k.current?"is-current":"",d?"is-active":"","armed"===g?"is-drag-armed":""].filter(Boolean).join(" ");return((0,q.useEffect)(()=>{let a=m.current;if(!f||!a)return;let b=a=>h.onTouchMove(a);return a.addEventListener("touchmove",b,{passive:!1}),()=>a.removeEventListener("touchmove",b)},[f,h]),e)?(0,p.jsx)("div",{ref:m,className:`${n} is-renaming`,style:b_(b,c),"data-row-key":a.key,children:(0,p.jsx)(b1,{initialValue:k.name,label:j("sidebar.projectName"),maxLength:80,onCommit:a=>i.current.onRenameProjectCommit(k,a),onCancel:()=>i.current.onRenameProjectCancel()})}):(0,p.jsxs)("div",{ref:m,className:n,style:b_(b,c),"data-row-key":a.key,onPointerDown:f?a=>h.onPointerDown(a,k.key):void 0,children:[(0,p.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":l,title:k.root,onClick:a=>i.current.onToggleGroup(k.key,a.altKey),children:[(0,p.jsx)(bB,{size:12,strokeWidth:3,className:`session-tree-chevron${l?" is-open":""}`}),(0,p.jsx)("span",{className:"session-tree-group-name",children:k.name}),k.pinned&&(0,p.jsx)(bz,{size:10,className:"session-tree-group-pin",label:j("sidebar.pinnedProject")}),!l&&(0,p.jsx)(b3,{running:a.running,unread:a.unread,t:j})]}),(0,p.jsxs)("span",{className:"session-tree-group-actions",children:[(0,p.jsx)("button",{type:"button",className:"session-tree-group-action","aria-label":j("sidebar.newSessionInProject",{name:k.name}),title:j("sidebar.newSessionInProject",{name:k.name}),onClick:a=>{a.stopPropagation(),i.current.onGroupNew(k)},children:(0,p.jsx)(bv,{size:13})}),(0,p.jsx)("button",{type:"button",className:`session-tree-group-action${d?" is-active":""}`,"aria-label":j("sidebar.projectActions",{name:k.name}),title:j("sidebar.projectActions",{name:k.name}),"aria-haspopup":"menu","aria-expanded":d,onClick:a=>{a.stopPropagation(),i.current.onGroupMenu(k,a.currentTarget)},children:(0,p.jsx)(bw,{size:13})})]})]})}),b5=(0,q.memo)(function({row:a,top:b,height:c,handlers:d,onMoreAction:e}){let{t:f}=(0,aG.s)(),g=b_(b,c);switch(a.kind){case"pinned-header":return(0,p.jsx)("div",{className:"session-tree-row session-tree-pinned-header",style:g,"data-row-key":a.key,children:(0,p.jsxs)("button",{type:"button",className:"session-tree-pinned-toggle","aria-expanded":!a.collapsed,onClick:()=>d.current.onTogglePinned(),children:[(0,p.jsx)(bB,{size:12,strokeWidth:3,className:`session-tree-chevron${a.collapsed?"":" is-open"}`}),(0,p.jsx)("span",{className:"session-tree-pinned-label",children:f("sidebar.pinned")}),(0,p.jsxs)("span",{className:"session-tree-pinned-count",children:["\xb7 ",a.count]}),a.collapsed&&a.running>0&&(0,p.jsx)("span",{className:"session-tree-pinned-dot is-running",role:"img",title:f("sidebar.agentRunning"),"aria-label":`${f("sidebar.agentRunning")} (${a.running})`}),a.collapsed&&a.unread>0&&(0,p.jsx)("span",{className:"session-tree-pinned-dot is-unread",role:"img",title:f("sidebar.newSessionActivity"),"aria-label":`${f("sidebar.newSessionActivity")} (${a.unread})`})]})});case"pinned-more":case"group-more":{let b="pinned-more"===a.kind?U:a.projectKey;return(0,p.jsxs)("div",{className:"session-tree-row session-tree-more",style:g,"data-row-key":a.key,children:[a.hidden>0&&(0,p.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"more",onClick:c=>e(a.key,b,"more",c.currentTarget),children:f("sidebar.showMore",{count:a.hidden})}),a.canShowLess&&(0,p.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"less",onClick:c=>e(a.key,b,"less",c.currentTarget),children:f("sidebar.showLess")})]})}case"group-empty":return(0,p.jsx)("div",{className:"session-tree-row session-tree-group-empty",style:g,"data-row-key":a.key,children:f("sidebar.noLiveSessions")});case"footer-open":return(0,p.jsx)("div",{className:"session-tree-row session-tree-footer",style:g,"data-row-key":a.key,children:(0,p.jsxs)("button",{type:"button",className:"session-tree-footer-button",onClick:a=>d.current.onOpenOtherProject(a.currentTarget),children:[(0,p.jsx)(bM,{size:12}),(0,p.jsx)("span",{className:"session-tree-footer-label",children:f("sidebar.openOtherProject")})]})});case"footer-archived":return(0,p.jsx)("div",{className:"session-tree-row session-tree-footer",style:g,"data-row-key":a.key,children:(0,p.jsxs)("button",{type:"button",className:"session-tree-footer-button",onClick:()=>d.current.onOpenArchive(),children:[(0,p.jsx)(bx,{size:12}),(0,p.jsx)("span",{className:"session-tree-footer-label",children:f("sidebar.archivedCount",{count:a.count})}),(0,p.jsx)(bB,{size:10,className:"session-tree-footer-chevron"})]})})}}),b6=(0,q.memo)(function({row:a,top:b,height:c,menuOpen:d,handlers:e}){let{t:f}=(0,aG.s)(),{project:g,expanded:h}=a,i=["session-tree-row session-tree-group session-tree-archive-group",g.current?"is-current":"",d?"is-active":""].filter(Boolean).join(" ");return(0,p.jsxs)("div",{className:i,style:b_(b,c),"data-row-key":a.key,children:[(0,p.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":h,title:g.root,onClick:a=>e.current.onToggleArchiveGroup?.(g.key,a.altKey),children:[(0,p.jsx)(bB,{size:12,strokeWidth:3,className:`session-tree-chevron${h?" is-open":""}`}),(0,p.jsx)("span",{className:"session-tree-group-name",children:g.name}),(0,p.jsxs)("span",{className:"session-tree-archive-group-count",children:["\xb7 ",a.count]})]}),(0,p.jsx)("span",{className:"session-tree-group-actions",children:(0,p.jsx)("button",{type:"button",className:`session-tree-group-action${d?" is-active":""}`,"aria-label":f("sidebar.archivedProjectActions",{name:g.name}),title:f("sidebar.archivedProjectActions",{name:g.name}),"aria-haspopup":"menu","aria-expanded":d,onClick:a=>{a.stopPropagation(),e.current.onArchiveGroupMenu?.(g,a.currentTarget)},children:(0,p.jsx)(bw,{size:13})})})]})});function b7(a){return q.Children.toArray(a).length>0}function b8(a){return"item"===a.type&&void 0!==a.checked}function b9(a){a.stopPropagation()}let ca={onClick:b9,onDoubleClick:b9,onMouseDown:b9,onMouseUp:b9,onPointerDown:b9,onPointerUp:b9,onKeyDown:b9,onKeyUp:b9,onFocus:b9,onBlur:b9,onContextMenu:function(a){a.preventDefault(),a.stopPropagation()}};function cb(a,b){return c=>{"Enter"!==c.key||c.nativeEvent.isComposing||229===c.keyCode||(c.preventDefault(),b(a,c.shiftKey))}}function cc({item:a,onActivate:b}){let c=void 0!==a.checked,d=["sidebar-menu-item",c?"is-choice":"",a.danger?"is-danger":"",a.checked?"is-checked":""].filter(Boolean).join(" "),e=["sidebar-menu-label",a.mono?"is-mono":"",a.path?"is-path":""].filter(Boolean).join(" "),f=null;a.disabled&&a.disabledReason?f=(0,p.jsx)("span",{className:"sidebar-menu-note",children:a.disabledReason}):a.note?f=(0,p.jsx)("span",{className:"sidebar-menu-note",children:a.note}):a.shortcut&&(f=(0,p.jsx)("kbd",{className:"sidebar-menu-shortcut",children:a.shortcut}));let g=(0,p.jsxs)("button",{type:"button",role:c?"menuitemradio":"menuitem","aria-checked":c?a.checked:void 0,"aria-disabled":!!a.disabled||void 0,"aria-keyshortcuts":a.shortcut&&!a.disabled?a.shortcut.toUpperCase():void 0,tabIndex:-1,title:a.title,"data-sidebar-menu-item":"",className:d,onClick:c=>b(a,c.shiftKey),onKeyDown:cb(a,b),children:[(0,p.jsx)("span",{className:"sidebar-menu-icon",children:c?a.checked?(0,p.jsx)(bJ,{size:13}):null:a.icon}),(0,p.jsx)("span",{className:e,children:a.path?(0,p.jsx)("span",{children:a.label}):a.label}),a.badge,f]}),h=a.secondary;return h?(0,p.jsxs)("div",{className:c?"sidebar-menu-row is-choice":"sidebar-menu-row",role:"none",children:[g,(0,p.jsx)("button",{type:"button",role:"menuitem","aria-label":h.label,"aria-disabled":!!h.disabled||void 0,tabIndex:-1,title:h.label,"data-sidebar-menu-item":"",className:h.danger?"sidebar-menu-secondary is-danger":"sidebar-menu-secondary",onClick:a=>b(h,a.shiftKey),onKeyDown:cb(h,b),children:h.icon})]}):g}function cd({sheet:a,ariaLabel:b,title:c,items:d,filter:e,filterQuery:f="",onFilterQueryChange:g,children:h,cancelLabel:i,focusCancel:j=!1,width:k=208,classic:l=!1,footer:m,surfaceRef:n,onActivate:o,onClose:q}){var r;let s,t=b7(h),u=!t&&b7(m),v=void 0!==e&&!t&&function(a,b=8){return(a??[]).filter(b8).length>=b}(d,e.minChoices),w=v?(r=d??[],(s=f.trim().toLowerCase())?r.filter(a=>"item"!==a.type||void 0===a.checked||[a.label,a.note,a.title].some(a=>a?.toLowerCase().includes(s))):[...r]):d??[],x=w.map(a=>"separator"===a.type?(0,p.jsx)("div",{className:"sidebar-menu-separator",role:"separator"},a.id):"header"===a.type?(0,p.jsx)("div",{className:"sidebar-menu-header",role:"presentation",children:a.label},a.id):"custom"===a.type?(0,p.jsx)("div",{className:"sidebar-menu-custom",role:"none",children:a.content},a.id):(0,p.jsx)(cc,{item:a,onActivate:o},a.id)),y=t?h:v||u?(0,p.jsxs)(p.Fragment,{children:[v&&(0,p.jsx)("div",{className:"sidebar-menu-filter",children:(0,p.jsx)("input",{className:"sidebar-menu-filter-input",value:f,placeholder:e.placeholder,"aria-label":e.placeholder,autoComplete:"off",spellCheck:!1,"data-sidebar-menu-filter":"","data-sidebar-menu-autofocus":a?void 0:"",onChange:a=>g?.(a.target.value)})}),v&&(0,p.jsx)("div",{role:"status",children:f.trim()&&!w.some(b8)&&(0,p.jsx)("div",{className:"sidebar-menu-empty",children:e.emptyLabel})}),(0,p.jsx)("div",{role:"menu","aria-label":b,children:x}),u&&m]}):x,z=t||v||u?void 0:"menu";return a?(0,p.jsxs)("div",{className:"sidebar-sheet-layer",...ca,children:[(0,p.jsx)("div",{className:"sidebar-sheet-backdrop","aria-hidden":"true",onClick:()=>q("outside")}),(0,p.jsxs)("div",{ref:n,className:"sidebar-sheet",role:"dialog","aria-modal":"true","aria-label":b,children:[c?(0,p.jsx)("div",{className:"sidebar-sheet-title",children:c}):null,(0,p.jsx)("div",{className:"sidebar-sheet-body",role:z,"aria-label":z?b:void 0,children:y}),(0,p.jsx)("button",{type:"button",className:"sidebar-sheet-cancel","data-sidebar-menu-autofocus":j?"":void 0,onClick:()=>q("cancel"),children:i})]})]}):(0,p.jsx)("div",{ref:n,className:l?"sidebar-menu is-classic":"sidebar-menu",role:z??"dialog","aria-label":b,style:{width:k},...ca,children:y})}function ce({open:a,anchor:b,sheet:c,ariaLabel:d,title:e,items:f,filter:g,children:h,cancelLabel:i,focusCancel:j,onClose:k,returnFocusTo:l,width:m,classic:n=!1,footer:o,focusKey:r=""}){let[s,t]=(0,q.useState)(null),[u,v]=(0,q.useState)("");(0,q.useRef)(u).current=u;let w=(0,q.useRef)(null),x=(0,q.useRef)(k);x.current=k,(0,q.useRef)(f).current=f,(0,q.useRef)(l??null).current=l??null,(0,q.useRef)(b).current=b;let y=a&&null!==s&&(c||null!==b);b7(h),b&&JSON.stringify(b);let z=(a,b)=>{if(a.disabled)return;let c=!1;a.onSelect({shiftKey:b,keepOpen:()=>{c=!0}}),c||x.current("select")},A=(0,q.useRef)(z);return(A.current=z,(0,q.useRef)(!1),y&&s)?(0,aQ.createPortal)((0,p.jsx)(cd,{sheet:c,ariaLabel:d,title:e,items:f,filter:g,filterQuery:u,onFilterQueryChange:v,cancelLabel:i,focusCancel:j,width:m,classic:n,footer:o,surfaceRef:w,onActivate:(a,b)=>A.current(a,b),onClose:a=>x.current(a),children:h}),s):null}function cf({heading:a,busy:b,error:c,showCancel:d,onCreate:e,onCancel:f}){let{t:g}=(0,aG.s)(),[h,i]=(0,q.useState)(""),j=h.trim(),k=()=>{j&&!b&&e(j)};return(0,p.jsxs)("div",{className:"sidebar-worktree-form",children:[a&&(0,p.jsx)("div",{className:"sidebar-menu-header",children:a}),(0,p.jsx)("input",{className:"sidebar-worktree-input","data-sidebar-menu-autofocus":"",value:h,readOnly:b,placeholder:g("sidebar.branchName"),"aria-label":g("sidebar.branchName"),onChange:a=>i(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.nativeEvent.isComposing||229===a.keyCode||(a.preventDefault(),k())}}),(0,p.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[(0,p.jsx)("button",{type:"button",className:"sidebar-worktree-create",disabled:b||!j,onClick:k,children:g(b?"sidebar.creating":"sidebar.create")}),d&&(0,p.jsx)("button",{type:"button",className:"sidebar-worktree-cancel",onClick:f,children:g("sidebar.cancel")})]}),c&&(0,p.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:c})]})}function cg(a,b){return b&&a.startsWith(b)?`~${a.slice(b.length)}`:a}function ch(a){return a.branch??aa(a.path)}function ci({heading:a,dirty:b,busy:c,error:d,showCancel:e,onForce:f,onCancel:g}){let{t:h}=(0,aG.s)();return(0,p.jsxs)("div",{className:"sidebar-worktree-form",children:[a&&(0,p.jsx)("div",{className:"sidebar-menu-header",children:a}),b&&(0,p.jsx)("div",{className:"sidebar-worktree-message",children:h("sidebar.forceRemoveCheckout")}),(b||e)&&(0,p.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[b&&(0,p.jsx)("button",{type:"button",className:"sidebar-worktree-force",disabled:c,onClick:f,children:h("sidebar.force")}),e&&(0,p.jsx)("button",{type:"button",className:"sidebar-worktree-cancel","data-sidebar-menu-autofocus":"",onClick:g,children:h("sidebar.cancel")})]}),d&&(0,p.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:d})]})}function cj({busy:a,onForce:b,onCancel:c}){let{t:d}=(0,aG.s)(),e=(0,q.useId)();return(0,p.jsxs)("div",{className:"sidebar-worktree-confirm",children:[(0,p.jsx)("span",{id:e,className:"sidebar-worktree-confirm-text",title:d("sidebar.forceRemoveCheckout"),children:d("sidebar.forceRemoveCheckout")}),(0,p.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","aria-describedby":e,"aria-disabled":!!a||void 0,className:"sidebar-worktree-force",onClick:()=>{a||b()},children:d("sidebar.force")}),(0,p.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","data-sidebar-menu-autofocus":"",className:"sidebar-worktree-cancel",onClick:c,children:d("sidebar.cancel")})]})}function ck({layout:a,context:b,mobile:c,label:d,placeholder:e="",homeDir:f,projectActivity:g,worktreeHint:h=null,newWorktreeTitle:i,handleRef:j,onPick:k,onUseDefaultDirectory:l,onOpenFolder:m,onRefreshWorktrees:n,onCreateWorktree:o,onRemoveWorktree:r}){let s,t,{t:u}=(0,aG.s)(),[v,w]=(0,q.useState)(null),x=(0,q.useRef)(v);x.current=v;let y=(0,q.useRef)(0),z=(0,q.useRef)(null),A=(0,q.useRef)(null),B=(0,q.useRef)(!1),C=(0,q.useRef)(k);C.current=k;let D="inline"!==a,E=!D,F=!c,{project:G,worktrees:H}=b,I=(t=b.worktrees??[]).find(a=>a.path===b.currentWorktreePath)??t.find(a=>a.isMain)??null,J=E&&G?au(as(b)).find(({choice:a})=>a.key===G.key):void 0,K=()=>(y.current+=1,y.current),L=()=>w(null),M=(b,c)=>{let d=c.getBoundingClientRect(),e=Math.max(D?220:"project"===b?260:240,Math.round(d.width));w({id:K(),kind:b,anchor:{kind:"rect",rect:{left:d.left,top:d.top,right:d.right,bottom:d.bottom},align:"row"===a&&"worktree"===b?"end":"start"},opener:c,width:e,body:null,removing:!1}),"worktree"===b&&n()},N=(0,q.useRef)(M);N.current=M,(0,q.useImperativeHandle)(j,()=>({button:a=>("worktree"===a?A:z).current,openMenu:a=>{let b=("worktree"===a?A:z).current;b&&N.current(a,b)}}),[]);let O=(a,b)=>{w(c=>c?.id===a?b(c):c)},P=a=>{let b=K();w(c=>c?.kind==="worktree"?{...c,id:b,body:a,removing:!1}:c)},Q=async a=>{let b,c=x.current;if(!c||c.body?.kind!=="create"||!G)return;let{id:d}=c,e=(a,b)=>{O(d,c=>({...c,body:{kind:"create",busy:a,error:b}}))};e(!0,null);try{b=await o(G,a)}catch(a){b={error:a instanceof Error?a.message:String(a)}}B.current&&("error"in b?e(!1,b.error):x.current?.id===d&&(w(null),C.current({cwd:b.path,projectKey:G.key,projectRoot:G.root},"worktree")))},R=async(a,b)=>{let c,d=x.current;if(!d||!G||!r)return;let{id:e}=d;O(e,a=>({...a,removing:!0,body:a.body?.kind==="remove"?{...a.body,busy:!0,error:null}:a.body}));try{c=await r(G,a.path,b)}catch(a){c={error:a instanceof Error?a.message:String(a)}}B.current&&O(e,b=>{if("removed"===c)return{...b,removing:!1,body:null};let d="dirty"===c||b.body?.kind==="remove"&&b.body.dirty;return{...b,removing:!1,body:{kind:"remove",worktree:a,dirty:d,busy:!1,error:"dirty"===c?null:c.error}}})},S=()=>[...(H??[]).map(a=>F&&T?.kind==="remove"&&T.dirty&&T.worktree.path===a.path?{type:"custom",id:`worktree:${a.path}`,content:(0,p.jsx)(cj,{busy:T.busy,onForce:()=>{R(a,!0)},onCancel:()=>P(null)})}:{type:"item",id:`worktree:${a.path}`,label:F?a.branch??cg(a.path,f):ch(a),mono:F,path:F,note:a.isMain?u("sidebar.main"):void 0,title:a.path,checked:a.path===I?.path,secondary:r&&!a.isMain?{label:u("sidebar.removeWorktreeTitle",{path:a.path}),icon:(0,p.jsx)(bF,{size:12}),danger:!0,disabled:v?.removing,onSelect:({keepOpen:b})=>{b(),R(a,!1)}}:void 0,onSelect:()=>{G&&a.path!==I?.path&&k({cwd:a.path,projectKey:G.key,projectRoot:G.root},"worktree")}}),...F?[]:[{type:"separator",id:"separator"}],...F&&T?.kind==="create"?[]:[{type:"item",id:"new-worktree",label:u("sidebar.newWorktree"),icon:(0,p.jsx)(bv,{size:13}),onSelect:({keepOpen:a})=>{a(),P({kind:"create",busy:!1,error:null})}}]],T=v?.kind==="worktree"?v.body:null,U="",V=null,W=null;if(F&&v?.kind==="worktree")U=u("sidebar.switchWorktree"),s=S(),T?.kind==="create"?W=(0,p.jsx)(cf,{heading:null,busy:T.busy,error:T.error,showCancel:!0,onCreate:a=>{Q(a)},onCancel:()=>P(null)}):T?.kind==="remove"&&T.error&&(W=(0,p.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:T.error}));else if(T?.kind==="create")U=i,V=(0,p.jsx)(cf,{heading:c?null:U,busy:T.busy,error:T.error,showCancel:!c,onCreate:a=>{Q(a)},onCancel:L});else if(T?.kind==="remove")U=u("sidebar.removeWorktreeHeading",{name:ch(T.worktree)}),V=(0,p.jsx)(ci,{heading:c?null:U,dirty:T.dirty,busy:T.busy,error:T.error,showCancel:!c,onForce:()=>{R(T.worktree,!0)},onCancel:L});else if(v?.kind==="project"){let a,c;U=u("workspace.project"),c=(a=au(as(b)).map(({choice:a,name:b,note:c})=>{let d=g?.get(a.key),e=F&&void 0===a.alias;return{type:"item",id:`project:${a.key}`,label:e?cg(a.root,f):b,note:e?void 0:c??void 0,mono:F,path:e,title:a.root,checked:a.key===G?.key,badge:d?(0,p.jsx)(b3,{running:d.running,unread:d.unread,t:u}):void 0,onSelect:()=>{a.key===G?.key&&H||k({cwd:a.root,projectKey:a.key,projectRoot:a.root},"project")}}})).length>0?[{type:"separator",id:"separator"}]:[],s=[...a,...c,{type:"item",id:"default-directory",label:u("sidebar.useDefaultDirectory"),icon:(0,p.jsx)(bL,{size:13}),onSelect:()=>l()},{type:"item",id:"open-folder",label:u(F?"sidebar.customPath":"sidebar.openOtherProject"),icon:F?(0,p.jsx)(bv,{size:13}):(0,p.jsx)(bM,{size:13}),onSelect:()=>m(v?.opener??null)}]}else v?.kind==="worktree"&&(U=u("sidebar.switchWorktree"),s=S());let X=v?.kind==="project"?{placeholder:u("sidebar.filterProjects"),emptyLabel:u("sidebar.noMatchingProjects"),minChoices:F?9:void 0}:{placeholder:u("sidebar.filterWorktrees"),emptyLabel:u("sidebar.noMatchingWorktrees")},Y=D&&void 0!==g&&[...g].some(([a,{running:b,unread:c}])=>a!==G?.key&&(b>0||c>0));return(0,p.jsxs)("div",{className:`project-picker is-${a}`,role:"group","aria-label":d,children:[(0,p.jsxs)("button",{ref:z,type:"button",className:G?"project-picker-button is-project":"project-picker-button is-project is-empty",title:G?.root??"","aria-haspopup":"menu","aria-expanded":v?.kind==="project",onClick:a=>M("project",a.currentTarget),children:[E&&(0,p.jsx)(bL,{size:12,className:"project-picker-icon"}),E&&G?(0,p.jsxs)("span",{className:"project-picker-name",children:[void 0===G.alias&&J?.note&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"project-picker-parent",children:J.note}),"/"]}),(0,p.jsx)("span",{className:"project-picker-leaf",children:G.alias??J?.name??aa(G.root)})]}):G?.alias!==void 0?(0,p.jsx)("span",{className:"project-picker-label is-alias",children:G.alias}):G?(0,p.jsx)("span",{className:"project-picker-path",children:(0,p.jsx)("span",{children:cg(G.root,f)})}):(0,p.jsx)("span",{className:"project-picker-label",children:e}),Y&&(0,p.jsx)("span",{className:"project-picker-activity",role:"img",title:u("sidebar.newActivity"),"aria-label":u("sidebar.newActivity")}),E&&(0,p.jsx)(bB,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),H&&(0,p.jsxs)("button",{ref:A,type:"button",className:"project-picker-button",title:I?u("sidebar.worktreePath",{path:I.path}):u("sidebar.switchWorktree"),"aria-haspopup":"menu","aria-expanded":v?.kind==="worktree",onClick:a=>M("worktree",a.currentTarget),children:[(0,p.jsx)(bC,{size:11,className:I&&!I.isMain?"project-picker-icon is-linked":"project-picker-icon"}),(0,p.jsx)("span",{className:"project-picker-path",children:(0,p.jsx)("span",{children:I?I.branch??cg(I.path,f):"…"})}),I?.isMain&&"stacked"===a&&(0,p.jsx)("span",{className:"project-picker-note",children:u("sidebar.main")}),D&&H.length>1&&(0,p.jsx)("span",{className:"project-picker-note",children:H.length}),(0,p.jsx)(bB,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),!H&&D&&h&&(0,p.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:h.title,className:"project-picker-button is-inactive",children:[(0,p.jsx)(bC,{size:11,className:"project-picker-icon"}),(0,p.jsx)("span",{className:"project-picker-label",children:h.label})]}),(0,p.jsx)(ce,{open:null!==v,anchor:v?.anchor??null,sheet:c,ariaLabel:U,title:U,items:s,filter:X,cancelLabel:u("sidebar.cancel"),focusCancel:T?.kind==="remove",onClose:L,returnFocusTo:v?.opener??null,width:v?.width,classic:F,footer:W,focusKey:T?`${T.kind}:${"remove"===T.kind&&T.dirty}`:"list",children:V})]})}function cl({open:a,query:b,children:c,selectedSessionId:d,onSelectSession:e,archivedSessionIds:f}){let{t:g,locale:h}=(0,aG.s)(),[i,j]=(0,q.useState)({query:""}),k=b.trim(),l=i.query===k?i.response:void 0,m=i.query===k&&i.failed;return a&&k?(0,p.jsxs)("div",{className:"min-h-20 flex-1 overflow-y-auto","aria-busy":!l&&!m,children:[(0,p.jsx)("div",{role:"status",className:"px-3 py-2 text-xs text-text-muted",children:m?g("sidebar.sessionSearchFailed"):l?0===l.results.length?g("sidebar.sessionSearchEmpty"):g("sidebar.sessionSearchCount",{count:l.results.length}):g("sidebar.sessionSearching")}),l?.truncated&&(0,p.jsx)("div",{role:"status",className:"px-3 pb-2 text-xs text-text-muted",children:g("sidebar.sessionSearchPartial")}),l?.results.map(({session:a,entryId:b,blockIndex:c,titleMatch:i,before:j,match:k,after:l})=>(0,p.jsxs)("button",{type:"button",onClick:()=>e(a,b,c),"aria-current":a.id===d?"true":void 0,className:`block w-full cursor-pointer border-b border-border px-3 py-2 text-left hover:bg-bg-hover focus-visible:outline-2 focus-visible:outline-accent ${a.id===d?"bg-bg-selected":""}`,children:[(0,p.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,p.jsx)("span",{className:"min-w-0 truncate text-xs font-medium text-text",children:i?(0,p.jsxs)(p.Fragment,{children:[j,(0,p.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:k}),l]}):a.name||a.firstMessage}),f?.has(a.id)&&(0,p.jsx)("span",{className:"shrink-0 rounded-[4px] border border-border px-1 text-[10px] leading-[14px] text-text-dim",children:g("sidebar.archived")})]}),(0,p.jsxs)("span",{className:"mt-1 flex min-w-0 gap-2 text-[10px] text-text-dim",children:[(0,p.jsx)("span",{className:"min-w-0 flex-1 truncate",title:a.cwd,children:a.cwd}),(0,p.jsx)("span",{className:"shrink-0",children:(0,bp.fw)(a.modified,h)})]}),!i&&(0,p.jsxs)("span",{className:"mt-1 block text-xs leading-relaxed wrap-anywhere text-text-muted",children:[j,(0,p.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:k}),l]})]},a.id))]}):c}function cm(a,b){return`${a}/share/${b}`}function cn(a){return a instanceof Error?a.message:String(a)}function co({sessionId:a,origin:b,fetchImpl:c,onCopied:d,onStopped:e}){let{t:f}=(0,aG.s)(),[g,h]=(0,q.useState)({status:"loading"}),[i,j]=(0,q.useState)(null),[k,l]=(0,q.useState)(null),[m,n]=(0,q.useState)(!1),[o,r]=(0,q.useState)(null),s=c??fetch,t=b??"",u=(0,q.useRef)(!1),v=(0,q.useCallback)(()=>{u.current||(u.current=!0,j("create"),l(null),s(`/api/sessions/${encodeURIComponent(a)}/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}).then(async a=>{var b,c;let d=await a.json().catch(()=>({}));if("string"!=typeof(b=d).code||"string"!=typeof b.createdAt||"string"!=typeof b.title){let{key:b,params:e}=(c=a.status,"too_large"===d.code||"too_large"===d.error?{key:"share.tooLarge"}:{key:"share.createError",params:{error:d.error??`HTTP ${c}`}});l(f(b,e));return}h({status:"shared",share:{code:d.code,createdAt:d.createdAt,title:d.title}}),n(!1)}).catch(a=>{l(f("share.createError",{error:cn(a)}))}).finally(()=>{u.current=!1,j(null)}))},[s,a,f]),w=(0,q.useCallback)(()=>{if(!u.current){if(!m)return void n(!0);u.current=!0,j("stop"),l(null),s(`/api/sessions/${encodeURIComponent(a)}/share`,{method:"DELETE"}).then(async a=>{let b=await a.json().catch(()=>({}));a.ok&&!0===b.ok?(h({status:"unshared"}),n(!1),r(null),e()):l(f("share.stopError",{error:b.error??`HTTP ${a.status}`}))}).catch(a=>{l(f("share.stopError",{error:cn(a)}))}).finally(()=>{u.current=!1,j(null)})}},[e,s,a,m,f]),x=(0,q.useCallback)(()=>{h(a=>("shared"===a.status&&(0,bn.D)(cm(t,a.share.code)).then(()=>d(),()=>{}),a))},[d,t]);return(0,p.jsx)(cp,{state:g,messageCount:o,busy:i,error:k,stopArmed:m,origin:t,onCopy:x,onCreate:v,onRefresh:v,onStop:w})}function cp({state:a,messageCount:b,busy:c,error:d,stopArmed:e,origin:f,onCopy:g,onCreate:h,onRefresh:i,onStop:j}){let{t:k}=(0,aG.s)();return(0,p.jsxs)("div",{className:"sidebar-share-panel",children:[(0,p.jsx)("div",{className:"sidebar-menu-header",children:k("share.title")}),"loading"===a.status&&(0,p.jsx)("p",{role:"status",className:"sidebar-share-status",children:k("sidebar.loading")}),"load-failed"===a.status&&(0,p.jsx)("div",{role:"alert",className:"sidebar-share-error",children:k("share.loadError",{error:a.error})}),"unshared"===a.status&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("p",{className:"sidebar-share-text",children:k("share.description")}),null!==b&&(0,p.jsx)("p",{className:"sidebar-share-note",children:k("share.summary",{count:b})}),(0,p.jsx)("div",{className:"sidebar-share-buttons",children:(0,p.jsx)("button",{type:"button",className:"sidebar-share-create",disabled:null!==c,"data-sidebar-menu-autofocus":"",onClick:h,children:k("create"===c?"share.creating":"share.create")})})]}),"shared"===a.status&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:"sidebar-share-link-label",children:k("share.linkLabel")}),(0,p.jsx)("code",{className:"sidebar-share-link",children:cm(f,a.share.code)}),(0,p.jsxs)("div",{className:"sidebar-share-buttons",children:[(0,p.jsx)("button",{type:"button",className:"sidebar-share-copy","data-sidebar-menu-autofocus":"",onClick:g,children:k("share.copy")}),(0,p.jsx)("button",{type:"button",className:"sidebar-share-refresh",disabled:null!==c,onClick:i,children:k("create"===c?"share.creating":"share.refresh")})]}),(0,p.jsx)("div",{className:"sidebar-share-buttons",children:(0,p.jsx)("button",{type:"button",className:`sidebar-share-stop${e?" is-armed":""}`,disabled:null!==c,onClick:j,children:k(e?"share.confirmStop":"share.stop")})})]}),d&&(0,p.jsx)("div",{role:"alert",className:"sidebar-share-error",children:d})]})}function cq({toast:a,dismissLabel:b,durationMs:c,onDismissRef:d}){let e=(0,q.useRef)(null),[f,g]=(0,q.useState)(!1),[h,i]=(0,q.useState)(!1);return(0,p.jsxs)("div",{ref:e,className:"sidebar-toast",onPointerEnter:a=>{"mouse"===a.pointerType&&g(!0)},onPointerLeave:()=>g(!1),onFocus:()=>i(!0),onBlur:a=>{a.currentTarget.contains(a.relatedTarget)||i(!1)},children:[a.tail?(0,p.jsxs)("span",{className:"sidebar-toast-message has-tail",title:a.message+a.tail,children:[(0,p.jsx)("span",{className:"sidebar-toast-message-head",children:a.message}),(0,p.jsx)("span",{className:"sidebar-toast-message-tail",children:a.tail})]}):(0,p.jsx)("span",{className:"sidebar-toast-message",title:a.message,children:a.message}),a.actions.map(a=>(0,p.jsx)("button",{type:"button",className:"sidebar-toast-action",onClick:()=>{d.current(),a.onClick()},children:a.label},a.id)),(0,p.jsx)("button",{type:"button",className:"sidebar-toast-dismiss","aria-label":b,title:b,onClick:()=>d.current(),children:(0,p.jsx)(bK,{size:12})})]})}function cr({toast:a,onDismiss:b,dismissLabel:c,durationMs:d=1e4}){let e=(0,q.useRef)(b);return e.current=b,(0,p.jsx)("div",{className:"sidebar-toast-region",role:"status","aria-live":"polite",children:a?(0,p.jsx)(cq,{toast:a,dismissLabel:c,durationMs:d,onDismissRef:e},a.id):null})}let cs={remote:"sidebar.openInExplorerRemoteOnly","unsupported-platform":"sidebar.openInExplorerUnsupported"};function ct({ref:a,onClick:b,title:c,disabled:d,pressed:e,expanded:f,controls:g,done:h,className:i,children:j}){return(0,p.jsx)("button",{ref:a,type:"button",onClick:b,disabled:d,title:c,"aria-label":c,"aria-pressed":e,"aria-expanded":f,"aria-controls":g,className:`sidebar-tool-button${e||f?" is-active":""}${h?" is-done":""}${i?` ${i}`:""}`,children:j})}let cu={"open-new-tab":"sidebar.openInNewTab",pin:"sidebar.pin",unpin:"sidebar.unpin",rename:"sidebar.rename",fork:"sidebar.fork",share:"sidebar.sessionShare","copy-session-id":"sidebar.copySessionId","mark-read":"sidebar.markRead","mark-unread":"sidebar.markUnread",archive:"sidebar.archive",unarchive:"sidebar.unarchive",delete:"sidebar.delete"};function cv(){return""}function cw(a,b){let c=new Set(b);if(c.size!==a.size)return c;for(let b of c)if(!a.has(b))return c;return a}function cx(a,b){return a.length>b?`${a.slice(0,b)}…`:a}function cy(a,b){let c=a.getBoundingClientRect();return{kind:"rect",rect:{left:c.left,top:c.top,right:c.right,bottom:c.bottom},align:b}}function cz({selectedSessionId:a,onSelectSession:b,onNewSession:c,controlRef:d,onNewSessionContextChange:e,initialSessionId:f,initialSessionLinked:g,skipInitialProjectSelection:h,onInitialRestoreDone:i,refreshKey:j,onSessionDeleted:k,selectedCwd:l,onCwdChange:m,onOpenFile:n,onOpenTerminal:o,onOpenGitGraph:r,explorerRefreshKey:s,onExplorerRefresh:u,onAtMention:w,onAtMentions:x,onBackgroundTaskDone:y,onRunningSessionIdsChange:A,onSessionsChange:C}){let D,E,F,H,T,ac,ap,{t:as}=(0,aG.s)(),au=(0,aH.a)(),[av,aw]=(0,q.useState)([]),ax=(0,q.useRef)(null),ay=(0,q.useRef)(0),[az,aA]=(0,q.useState)(!0),[aB,aC]=(0,q.useState)(!1),[aD,aE]=(0,q.useState)(null),[aI,aJ]=(0,q.useState)(null),[aM,aQ]=(0,q.useState)(""),[aR,aS]=(0,q.useState)(!1),[aT,aU]=(0,q.useState)(cv),[aV,aW]=(0,q.useState)(null),[aX,aY]=(0,q.useState)(!1),[aZ,a0]=(0,q.useState)(null),a1=(0,q.useRef)(null),[a2,a3]=(0,q.useState)(null),[a4,a5]=(0,q.useState)(null),a6=(0,q.useRef)(null);a6.current??=new Set(function(a=null){if(!a)return[];try{let b=a.getItem("pi-web:sidebar-non-git-cwds"),c=null===b?[]:JSON.parse(b);if(!Array.isArray(c))return[];return c.filter(a=>"string"==typeof a&&""!==a).slice(-50)}catch{return[]}}());let[a7,a8]=(0,q.useState)(0),[a9,ba]=(0,q.useState)(!1),[bb,bc]=(0,q.useState)(!1),[bd,be]=(0,q.useState)(!1),[bf,bg]=(0,q.useState)(""),[bh,bi]=(0,q.useState)(0),[bj,bk]=(0,q.useState)(!0),[bl,bp]=(0,q.useState)(!1),[bq,br]=(0,q.useState)(!1),[bs,bt]=(0,q.useState)(null),[bu,bC]=(0,q.useState)(null),[bK,bM]=(0,q.useState)(()=>new Set),[bX,bZ]=(0,q.useState)(()=>new Set),[b_,b0]=(0,q.useState)(()=>new Set);(0,q.useRef)(new Set);let b1=(0,q.useRef)(new Set);(0,q.useRef)(new Set);let b2=(0,q.useRef)(!1);(0,q.useRef)(null);let b3=(0,q.useRef)(null),b4=(0,q.useRef)(null),b5=aF(),b6=!au&&"below"===b5,[b7,b8]=(0,q.useState)("sessions"),[b9,ca]=(0,q.useState)(!1),cb=(0,q.useRef)(null),cc=(0,q.useRef)(null),cd=(0,q.useRef)(null),cf=(0,q.useRef)(null),cg=(0,q.useRef)(new WeakMap),[ch,ci]=(0,q.useState)({}),[cj,cm]=(0,q.useState)(()=>new Set),[cn,cp]=(0,q.useState)({}),[cq,cA]=(0,q.useState)(!1),[cB,cC]=(0,q.useState)([]),[cD,cE]=(0,q.useState)(!1),{phase:cF,start:cG,end:cH}=aP(),{phase:cI,start:cJ,end:cK}=aP(),cL=(0,q.useRef)(b9);cL.current=b9;let cM=(0,q.useRef)(cD);cM.current=cD;let cN=(0,q.useCallback)(a=>{a!==cM.current&&cJ(a?"in":"out"),cE(a)},[cJ]),cO=(H=b9&&"out"===cF,T=!b9&&"in"===cF,{bodyHidden:b9&&!H,bodyInert:H,moving:H||T,open:!b9&&!T}),cP=(ac=cD&&"in"===cI,ap=!cD&&"out"===cI,{mainHidden:cD&&!ac,mainInert:ac,archiveMounted:cD||ap,archiveInert:ap,archiveClass:ac?"is-entering":ap?"is-leaving":null}),[cQ,cR]=(0,q.useState)(null),[cS,cT]=(0,q.useState)(null),[cU,cV]=(0,q.useState)(null),[cW,cX]=(0,q.useState)(null),[cY,cZ]=(0,q.useState)(null),c$=(0,q.useRef)(0),c_=(0,q.useCallback)(a=>{cZ(b=>b?.id===a?null:b)},[]),[c0,c1]=(0,q.useState)(null),c2=(0,q.useCallback)(a=>{c1(b=>b?.id===a?null:b)},[]),c3=(0,q.useRef)(a);c3.current=a;let[c4,c5]=(0,q.useState)(null),c6=(0,q.useRef)(0),c7=(0,q.useCallback)((a,b=[],c)=>{c6.current+=1,c5({id:c6.current,message:a,...c?{tail:c}:{},actions:b})},[]),[c8,c9]=(0,q.useState)(0);(0,q.useRef)(0);let da=(0,q.useRef)(null),[db,dc]=(0,q.useState)(0),dd=(0,q.useRef)(null),de=(0,q.useRef)(null),df=(0,q.useRef)(null),dg=(0,q.useRef)(null),[dh,di]=(0,q.useState)(0),dj=(0,q.useCallback)(a=>{dg.current=a,di(a=>a+1)},[]),{state:dk,loaded:dl,synced:dm,error:dn,apply:dp,snapshot:dq,noteRevision:dr}=function(){let[a,b]=(0,q.useState)(O),[c,d]=(0,q.useState)(!1),[e,f]=(0,q.useState)(!1),[g,h]=(0,q.useState)(null),i=(0,q.useRef)(a),j=(0,q.useRef)(a),k=(0,q.useRef)([]),l=(0,q.useRef)(Promise.resolve()),m=(0,q.useRef)(0),n=(0,q.useRef)(null),o=(0,q.useCallback)(()=>{let a=i.current;for(let{request:b,now:c}of k.current)a=function(a,b,c){var d,e,f,g;let h=function(a){let b={};for(let[c,d]of Object.entries(a.sessions))b[c]={...d};let c={};for(let[b,d]of Object.entries(a.projects))c[b]={...d};let d={...a,sessions:b,projects:c};return a.projectOrder&&(d.projectOrder=[...a.projectOrder]),a.projectNames&&(d.projectNames={...a.projectNames}),d}(a),i=!1;switch(b.action){case"set":for(let a of b.ids){let d=B(h.sessions,a)?h.sessions[a]:void 0;P(h.sessions,a,function(a,b,c){let d={...a};return"pinned"in b?b.pinned?(void 0===d.pinnedAt||void 0!==d.archivedAt)&&(d.pinnedAt=c,delete d.archivedAt):delete d.pinnedAt:b.archived?(d.archivedAt=c,delete d.pinnedAt):delete d.archivedAt,d}(d,b,c))&&(i=!0)}break;case"restore":for(let a of b.entries){let b={};null!==a.pinnedAt&&(b.pinnedAt=a.pinnedAt),null!==a.archivedAt&&(b.archivedAt=a.archivedAt),P(h.sessions,a.id,b)&&(i=!0)}break;case"pin-project":{let{projectKey:a,root:g}=b,j=B(h.projects,a)?h.projects[a]:void 0;if(b.pinned?j?.root!==g&&(h.projects[a]={pinnedAt:c,root:g},i=!0):j&&(delete h.projects[a],i=!0),(b.pinned?void 0===j:void 0!==j)&&h.projectOrder){let c,g,j=(d=h.projectOrder,e=h.projects,f=b.pinned,g=d.filter(b=>b!==a),f?(c=0,g.forEach((a,b)=>{B(e,a)&&(c=b+1)})):(c=g.findIndex(a=>!B(e,a)))<0&&(c=g.length),g.splice(c,0,a),g);K(j.length,J(j))&&Q(h,j)&&(i=!0)}break}case"add-projects":Q(h,function(a,b){let c=R(a,b),d=a.length,e=J(a),f=c.length;for(;f>0;){let a=I(c[f-1]);if(!K(d+1,e+a))break;d++,e+=a,f--}return[...c.slice(f),...a]}(h.projectOrder??[],b.keys))&&(i=!0);break;case"move-project":{let a,c,{projectKey:d,anchorKey:e,position:f,add:j}=b,k=h.projectOrder??[];Q(h,function(a,b){let c=a.length,d=J(a);if(K(c,d))return a;let e=new Set;for(let f=a.length-1;f>=0&&!K(c,d);f--)b.has(a[f])||(e.add(f),c--,d-=I(a[f]));let f=a.filter((a,b)=>!e.has(b));return K(c,d)?f:L(f)}((g=[...R(k,j),...k],(a=g.filter(a=>a!==d)).includes(e)||a.unshift(e),c=a.indexOf(e),a.splice("before"===f?c:c+1,0,d),a),new Set([d,e,...j])))&&(i=!0);break}case"rename-project":{let a=G(b.name);void 0!==a&&function(a,b,c){let d={...a.projectNames};if((B(d,b)?d[b]:void 0)===(c??void 0))return!1;if(null===c)delete d[b];else if(d[b]=c,!N(Object.keys(d).length,function(a){let b=1;for(let[c,d]of Object.entries(a))b+=M(c,d);return b}(d)))return!1;return 0===Object.keys(d).length?delete a.projectNames:a.projectNames=d,!0}(h,b.projectKey,a)&&(i=!0)}}return{state:h,changed:i}}(a,b,c).state;j.current=a,b(a)},[]),p=(0,q.useCallback)(async a=>{let b=++m.current;n.current=b;try{let c=await fetch(aL,{cache:"no-store"}),e=await aO(c);if(b!==m.current)return;i.current=e,o(),a||h(null),d(!0),f(!0)}catch(a){if(b!==m.current)return;h(aN(a)),d(!0)}finally{n.current===b&&(n.current=null)}},[o]),r=(0,q.useCallback)(()=>p(!1),[p]),s=(0,q.useCallback)(a=>{"number"!=typeof a||!Number.isFinite(a)||k.current.length>0||a===i.current.revision||(null===n.current||n.current!==m.current)&&r()},[r]),t=(0,q.useCallback)(a=>{let b={request:a,now:Date.now()};k.current=[...k.current,b],o();let c=async()=>{let c=!1;try{let b=await fetch(aL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),cache:"no-store"}),e=await aO(b);m.current++,i.current=e,h(null),d(!0),f(!0),c=!0}catch(a){h(aN(a))}return k.current=k.current.filter(a=>a!==b),o(),c||await p(!0),c},e=l.current.then(c,c);return l.current=e,e},[p,o]),u=(0,q.useCallback)(a=>(function(a,b){let c=new Set,d=[];for(let e of b){if(c.has(e))continue;c.add(e);let b=B(a.sessions,e)?a.sessions[e]:void 0;d.push({id:e,pinnedAt:b?.pinnedAt??null,archivedAt:b?.archivedAt??null})}return d})(j.current,a),[]);return(0,q.useMemo)(()=>({state:a,loaded:c,synced:e,error:g,refresh:r,noteRevision:s,apply:t,snapshot:u}),[a,c,e,g,r,s,t,u])}(),ds=(0,q.useRef)(null),dt=(0,q.useRef)(null),du=(0,q.useRef)(null),dv=(0,q.useRef)(null),dw=(0,q.useRef)(320),dx=(0,q.useCallback)(()=>{let a=dv.current,b=ds.current;return a&&b&&0!==a.clientHeight?a.clientHeight-b.offsetHeight:window.innerHeight-36},[]),dy=(0,q.useCallback)(()=>Math.round(.45*dx()),[dx]),dz=(0,q.useCallback)(()=>dx()-120,[dx]),dA=aK({ariaLabel:as("sidebar.resizeFiles"),axis:"vertical",cssVariable:"--sidebar-files-height",defaultWidth:320,getDefaultWidth:dy,getMaxWidth:dz,growthDirection:"up",maxWidth:2e3,minWidth:220,persistClamp:!1,storageKey:"pi-web:sidebar-files-height",widthRef:dw}),dB=dA.panelRef,dC=(0,q.useCallback)(a=>{dv.current=a,dB.current=a},[dB]);dA.reclampWidth;let dD=(0,q.useCallback)(async(a=!1,b=!1,c=!1)=>{let d=++ay.current;try{a&&aA(!0);let e=await fetch(c?"/api/sessions?summary=1":b?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let f=await e.json();if(d!==ay.current)return;ax.current=f.sessionListVersion,aw(f.sessions),c||aC(!0),b2.current||(b1.current=new Set(f.completionNotificationSuppressedSessionIds??[]),bM(a=>cw(a,f.runningSessionIds??[])),bZ(a=>cw(a,f.awaitingInputSessionIds??[])));let g=new Set(f.sessions.filter(a=>a.relation?.kind!=="subagent").map(a=>a.id));b0(a=>{if(0===a.size)return a;let b=new Set([...a].filter(a=>g.has(a)));return b.size===a.size?a:b}),aE(null)}catch(a){d===ay.current&&aE(String(a))}finally{d===ay.current&&aA(!1)}},[]);(0,q.useRef)(!1);let dE=(0,q.useCallback)(async()=>{let a=aI??l;if(!a)return!1;try{let b=await fetch("/api/open-in-explorer",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})});if(b.ok)return bC(null),!1;let c=await b.json().catch(()=>({}));bC(c.error??`HTTP ${b.status}`)}catch(a){bC(a instanceof Error?a.message:String(a))}return!0},[aI,l]),dF=as(bs?.platform==="darwin"?"sidebar.openInFinder":bs?.platform==="win32"?"sidebar.openInExplorer":"sidebar.openInFileManager"),dG=bs?.supported===!1,dH=bu?as(cs[bu]??bu):null,dI=(0,q.useRef)(!1),dJ=(0,q.useCallback)(a=>a?function(a,b){let{validated:c,listing:d,sessions:e}=b;if(c?.cwd===a)return{root:c.root,key:c.key};if(d?.forCwd===a||d?.isTopLevel&&d.worktrees.some(b=>b.path===a))return{root:d.projectRoot,key:d.projectKey};let f=e.find(b=>b.cwd===a||(b.projectRoot??b.cwd)===a);return f?{root:f.projectRoot??f.cwd,key:z(f)}:{root:a,key:a}}(a,{validated:aZ,listing:a2,sessions:av}):null,[aZ,a2,av]),dK=(0,q.useMemo)(()=>dJ(aI),[dJ,aI]);(0,q.useRef)(null),(0,q.useRef)(null);let[dL,dM]=(0,q.useState)(0),dN=a2?a2.worktrees.find(a=>a.path===aI)??(a2.forCwd===aI&&a2.currentWorktreePath?a2.worktrees.find(a=>a.path===a2.currentWorktreePath):void 0)??a2.worktrees.find(a=>a.isMain):void 0,dO=dN?.path??null,dP=(0,q.useCallback)(async(a,{remember:b=!0,purpose:c=aR}={})=>{let d=(a??aT).trim();if(d&&!aX){aY(!0),aW(null);try{let a=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:d})}),e=await a.json().catch(()=>({}));if(!a.ok||e.error||!e.cwd||!e.projectRoot||!e.projectKey)return void aW(e.error??`HTTP ${a.status}`);b&&(e.cwd,aU(e.cwd));if(aS(!1),"new-session"===c){let a=de.current,b=df.current;de.current=null,df.current=null,a?.({cwd:e.cwd,projectKey:e.projectKey,projectRoot:e.projectRoot}),dj(()=>b?.isConnected?b:null);return}a0({cwd:e.cwd,root:e.projectRoot,key:e.projectKey}),aJ(e.cwd)}catch(a){aW(a instanceof Error?a.message:String(a))}finally{aY(!1)}}},[aR,aT,aX,dj]),dQ=(0,q.useCallback)(()=>{aS("files"),aW(null)},[]),dR=(0,q.useCallback)(async(a="files")=>{try{let b=await fetch("/api/default-cwd",{method:"POST"}),c=await b.json();c.cwd&&await dP(c.cwd,{remember:!1,purpose:a})}catch{}},[dP]),dS=(0,q.useRef)(dR);dS.current=dR;let dT=(0,q.useCallback)(async(a,b)=>{try{let c=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a.root,branch:b})}),d=await c.json().catch(()=>({}));if(!c.ok||d.error||!d.path)return{error:d.error??`HTTP ${c.status}`};let e=d.path;return a3(c=>c&&c.projectKey===a.key&&!c.worktrees.some(a=>a.path===e)?{...c,worktrees:[...c.worktrees,{path:e,branch:b,isMain:!1}]}:c),dM(a=>a+1),{path:e}}catch(a){return{error:a instanceof Error?a.message:String(a)}}},[]),dU=(0,q.useCallback)(async(a,b,c)=>{try{let d=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a.root,path:b,force:c})}),e=await d.json().catch(()=>({}));if(!d.ok){if(e.dirty&&!c)return"dirty";return{error:e.error??`HTTP ${d.status}`}}return dO===b&&aJ(a.root),dM(a=>a+1),"removed"}catch(a){return{error:a instanceof Error?a.message:String(a)}}},[dO]),dV=(0,q.useCallback)(()=>dM(a=>a+1),[]),dW=(0,q.useCallback)(({cwd:a,projectKey:b,projectRoot:c})=>{b&&c&&a0({cwd:a,root:c,key:b}),aJ(a)},[]),dX=(0,q.useCallback)((a,c,d,e)=>{aw(b=>b.some(b=>b.id===a.id)?b:[a,...b]),a.cwd&&aJ(a.cwd),b(a,!1,c,d,e)},[b]),dY=(0,q.useCallback)(({cwd:a,projectKey:b,projectRoot:d,carryComposer:e})=>{b&&d&&a0({cwd:a,root:d,key:b}),aJ(a),c?.("function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`,a,b,e?{carryComposer:!0}:void 0)},[c]),dZ=(0,q.useRef)(dY);dZ.current=dY,(0,q.useImperativeHandle)(d,()=>({startNewSessionIn:a=>dZ.current(a),openFolderForNewSession:(a,b)=>{de.current=a,df.current=b,aW(null),aS("new-session")},openDefaultDirectoryForNewSession:a=>{de.current=a,df.current=null,dS.current("new-session")},refreshWorktrees:dV,createWorktree:dT}),[dT,dV]);let d$=(0,q.useCallback)(()=>{aI&&dY({cwd:aI})},[aI,dY]),d_=(0,q.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=c.projectRoot??c.cwd;if(!a)continue;let d=z(c),e=b.get(d);(!e||c.modified>e.modified)&&b.set(d,{root:a,modified:c.modified})}return[...b.entries()].sort((a,b)=>b[1].modified.localeCompare(a[1].modified)).map(([a,{root:b}])=>({key:a,root:b}))})(av),[av]),d0=(0,q.useMemo)(()=>t(av),[av]),d1=(0,q.useMemo)(()=>new Map(d0.map(a=>[a.root.id,a])),[d0]),d2=(0,q.useMemo)(()=>{let a=new Set,b=new Map;for(let c of d0){if(!$(c,dk,bK))continue;for(let b of Y(c))a.add(b);let d=z(c.root);b.set(d,(b.get(d)??0)+1)}return{ids:a,countByProject:b}},[d0,dk,bK]),d3=(0,q.useMemo)(()=>(function(a,b,c){let d=new Map;for(let e of a){let a=z(e);if(!a)continue;let f=d.get(a);f||(f={running:0,unread:0},d.set(a,f)),b.has(e.id)&&f.running++,c.has(e.id)&&f.unread++}return d})(0===d2.ids.size?av:av.filter(a=>!d2.ids.has(a.id)),bK,b_),[av,d2,bK,b_]),d4=!!(a2?.isGit&&a2.isTopLevel&&aI&&dK?.key===a2.projectKey),d5=aI&&a2?.isGit&&dK?.key===a2.projectKey&&!d4?{label:as("sidebar.openRepoRoot"),title:as("sidebar.openRepoRootTitle")}:null,d6=!!(aI&&a4===aI),d7=d5??(!d6||d4||aI&&a6.current?.has(aI)?null:{label:as("sidebar.worktrees"),title:as("sidebar.checkingWorktrees")}),d8=dK?.key??null,d9=dK?.root??null,ea=(0,q.useMemo)(()=>d8&&d9?{key:d8,root:d9}:null,[d8,d9]),eb=(0,q.useMemo)(()=>0===cj.size?ch:Object.fromEntries([...[...cj].filter(a=>!Object.hasOwn(ch,a)).map(a=>[a,!0]),...Object.entries(ch)]),[ch,cj]),ec=(0,q.useMemo)(()=>(function(a){let{uiState:b,runningIds:c,currentProject:d}=a,e=t(a.sessions),f=ae(b,d),g=0,h=[],i=new Map,j=new Map,k=new Set;for(let a of e){if($(a,b,c)){g++;continue}f.noteFamily(a);let d=ad(a),e=function(a){let b=Date.parse(a);return Number.isNaN(b)?-1/0:b}(a.latestModified);if(j.set(d,Math.max(j.get(d)??-1/0,e)),a.root.transient||k.add(d),_(a,b,c)){h.push(a);continue}let l=i.get(d);l?l.push(a):i.set(d,[a])}let l=[];if(h.length>0){let d=a=>W(V(b,a.root.id)?.pinnedAt)??0,e=h.map((a,b)=>({family:a,index:b})).sort((a,b)=>X(d(a.family),d(b.family))||a.index-b.index).map(({family:a})=>a),g=0,i=0;for(let b of e)Z(b,c)&&g++,Z(b,a.unreadIds)&&i++;if(l.push({kind:"pinned-header",key:"pinned-header",count:e.length,collapsed:a.pinnedCollapsed,running:g,unread:i}),!a.pinnedCollapsed){let{visible:b,revealed:c,nextShown:d}=ag(e,8,ah(a.moreShown,U),a);for(let c of b)l.push(af(c,"pinned",f.get(ad(c)),a,null));let g=aj(e.length,b.length,c);g&&l.push({kind:"pinned-more",key:"pinned-more",...g,nextShown:d})}l.push({kind:"spacer",key:"pinned-spacer"})}let m=[...i.keys()],n=new Set(m),o=a=>{n.has(a)||(n.add(a),m.push(a))};for(let a of(d&&o(d.key),Object.keys(b.projects)))o(a);let p=m.map(a=>f.get(a)),q=new Map;(b.projectOrder??[]).forEach((a,b)=>{q.has(a)||q.set(a,b)});let r=a=>a.pinned||k.has(a.key),s=(a,b)=>[...a.filter(({project:a})=>!q.has(a.key)).sort((a,c)=>Number(r(a.project))-Number(r(c.project))||b(a,c)),...a.filter(({project:a})=>q.has(a.key)).sort((a,b)=>(q.get(a.project.key)??0)-(q.get(b.project.key)??0))].map(({project:a})=>a),u=a=>j.get(a.key)??(a.current?1/0:-1/0),v=a=>W(b.projects[a.key]?.pinnedAt)??0,w=p.map((a,b)=>({project:a,index:b})),x=s(w.filter(({project:a})=>a.pinned),(a,b)=>X(v(b.project),v(a.project))||a.index-b.index),y=s(w.filter(({project:a})=>!a.pinned),(a,b)=>X(u(a.project),u(b.project))||a.index-b.index),z=[...x,...y],A=a=>a.filter(a=>!q.has(a.key)).map(a=>a.key),B={pinned:A(x),other:A(y)},C=z.filter(a=>!q.has(a.key)&&r(a)).map(a=>a.key);for(let b of z){let d=i.get(b.key)??[],e=ab(b,a.groupExpansion),f=0,g=0;for(let b of d)Z(b,c)&&f++,Z(b,a.unreadIds)&&g++;if(l.push({kind:"group",key:`group:${b.key}`,project:b,expanded:e,running:f,unread:g}),e)if(0===d.length)l.push({kind:"group-empty",key:`empty:${b.key}`,project:b});else{let{visible:c,revealed:e,nextShown:f}=ag(d,6,ah(a.moreShown,b.key),a);for(let d of c)l.push(af(d,"group",b,a,null));let g=aj(d.length,c.length,e);g&&l.push({kind:"group-more",key:`more:${b.key}`,projectKey:b.key,...g,nextShown:f})}}return z.length>0&&l.push({kind:"spacer",key:"footer-spacer"}),l.push({kind:"footer-open",key:"footer-open"}),g>0&&l.push({kind:"footer-archived",key:"footer-archived",count:g}),{rows:l,projects:z,archivedCount:g,unorderedKeysByBand:B,projectKeysToRecord:C}})({sessions:av,uiState:dk,runningIds:bK,awaitingIds:bX,unreadIds:b_,selectedSessionId:a,currentProject:ea,groupExpansion:eb,moreShown:cn,pinnedCollapsed:cq}),[av,dk,bK,bX,b_,a,ea,eb,cn,cq]),ed=cP.archiveMounted,ee=(0,q.useMemo)(()=>new Set(cB),[cB]),ef=(0,q.useMemo)(()=>ed?function(a){let{uiState:b,runningIds:c}=a,d=ae(b,a.currentProject),e=new Map;for(let f of t(a.sessions)){if(!$(f,b,c))continue;d.noteFamily(f);let a=W(V(b,f.root.id)?.archivedAt)??0,g=ad(f),h=e.get(g);h?(h.families.push({family:f,archivedAt:a}),h.newest=Math.max(h.newest,a)):e.set(g,{newest:a,families:[{family:f,archivedAt:a}]})}let f=[];for(let{key:b,group:c}of[...e.entries()].map(([a,b],c)=>({key:a,group:b,index:c})).sort((a,b)=>X(a.group.newest,b.group.newest)||a.index-b.index)){let e=d.get(b),g=!a.collapsed?.has(b);if(f.push({kind:"archive-group",key:`archive:${b}`,project:e,count:c.families.length,expanded:g}),g)for(let{family:b,archivedAt:d}of c.families.map((a,b)=>({...a,index:b})).sort((a,b)=>X(a.archivedAt,b.archivedAt)||a.index-b.index))f.push(af(b,"archive",e,a,d))}return f}({sessions:av,uiState:dk,runningIds:bK,awaitingIds:bX,unreadIds:b_,selectedSessionId:a,currentProject:ea,collapsed:ee}):[],[ed,av,dk,bK,bX,b_,a,ea,ee]),eg=(0,q.useMemo)(()=>ef.flatMap(a=>"archive-group"===a.kind?[a]:[]),[ef]),eh=(0,q.useMemo)(()=>new Map(ec.projects.map(a=>[a.key,a])),[ec.projects]);(0,q.useRef)(new Set),ec.projectKeysToRecord,dk.projectOrder?.length;let ei=dk.projectNames,ej=(0,q.useMemo)(()=>(function(a,b,c){let d=new Set,e=[];for(let f of[...a,...b])d.has(f.key)||(d.add(f.key),e.push(at(f,c)));return e})(ec.projects,d_,ei),[ec.projects,d_,ei]),ek=(0,q.useMemo)(()=>{if(!aI||!dK)return null;let a=d4&&null!==a2;return{cwd:aI,project:at(dK,ei),worktrees:a?a2.worktrees.map(({path:a,branch:b,isMain:c})=>({path:a,branch:b,isMain:c})):null,currentWorktreePath:a?dO:null,projects:ej}},[aI,dK,d4,a2,dO,ej,ei]);(0,q.useRef)(ek).current=ek,ek&&JSON.stringify([ek.cwd,ek.project.key,ek.project.root,ek.project.alias??null,ek.currentWorktreePath,ek.worktrees?.map(a=>[a.path,a.branch,a.isMain])??null,ek.projects.map(a=>[a.key,a.root,a.alias??null])]),(0,q.useRef)(d8);let el=(0,q.useCallback)((a,b)=>{ci(a),function(a,b=null){if(b)try{let c=Object.entries(function(a){let b={};if(null===a||"object"!=typeof a||Array.isArray(a))return b;for(let[c,d]of Object.entries(a))"__proto__"!==c&&"boolean"==typeof d&&(b[c]=d);return b}(a)),d=c.length>300?c.slice(c.length-300):c;b.setItem("pi-web:sidebar-groups-v2",JSON.stringify(Object.fromEntries(d)))}catch{}}(a),cm(a=>(function(a,b){if(0===a.size)return a;if(null===b)return new Set;if(!b.some(b=>a.has(b)))return a;let c=new Set(a);for(let a of b)c.delete(a);return c})(a,b)),cp(c=>(function(a,b,c){let d=(c??Object.keys(b)).filter(c=>!1===b[c]&&Object.hasOwn(a,c));if(0===d.length)return a;let e={...a};for(let a of d)delete e[a];return e})(c,a,b))},[]),em=(0,q.useCallback)(()=>(cd.current?.hidden?cc:cb).current??du.current,[]),en=(0,q.useCallback)(a=>{let b=cd.current;for(let c of["pinned","group","archive"]){let d=CSS.escape(`session:${c}:${a}`),e=b?.querySelector(`[data-row-key="${d}"] .session-tree-main`);if(e&&e.getClientRects().length>0)return e}return em()},[em]),eo=(0,q.useCallback)(a=>{let b=CSS.escape(`group:${a}`),c=cd.current?.querySelector(`[data-row-key="${b}"] .session-tree-group-toggle`);return c&&c.getClientRects().length>0?c:em()},[em]),ep=(0,q.useCallback)(async a=>{let b=await dp(a);return b||c9(a=>a+1),b},[dp]),eq=(0,q.useCallback)((a,b,c)=>{let d=eh.get(a),e=eh.get(b);d&&e&&d!==e&&d.pinned===e.pinned&&(ep({action:"move-project",projectKey:a,anchorKey:b,position:c,add:ec.unorderedKeysByBand[d.pinned?"pinned":"other"].slice(-500)}),c$.current+=1,cZ({id:c$.current,at:Date.now(),rowKey:`group:${a}`}))},[ep,ec.unorderedKeysByBand,eh]),er=(0,q.useCallback)(a=>{b6||(b8(a),function(a,b=null){if(b)try{b.setItem("pi-web:sidebar-tab",a)}catch{}}(a))},[b6]),es=(0,q.useCallback)(a=>{a!==cL.current&&cG(a?"out":"in"),ca(a),function(a,b=null){if(b)try{b.setItem("pi-web:sidebar-files-collapsed",String(a))}catch{}}(a)},[cG]),et=(0,q.useCallback)(a=>{let b=a.target;b instanceof Element&&cg.current.set(b,b.scrollTop)},[]),eu=(0,q.useCallback)(a=>{if(cX(null),cN(!0),be(!1),er("sessions"),void 0!==a){if(cB.includes(a)){let b=cB.filter(b=>b!==a);cC(b),an(b)}c$.current+=1,c1({id:c$.current,at:Date.now(),rowKey:`archive:${a}`,block:"start"})}},[cB,cN,er]),ev=(0,q.useRef)(null);(0,q.useRef)(cD);let ew=(0,q.useRef)(null),ex=(0,q.useRef)(null);(0,q.useRef)(b6);let ey=a=>{if("ArrowLeft"!==a.key&&"ArrowRight"!==a.key&&"Home"!==a.key&&"End"!==a.key)return;a.preventDefault();let b="Home"===a.key?"sessions":"End"===a.key||"sessions"===b7?"files":"sessions";er(b),("sessions"===b?cb:cc).current?.focus()},ez=(0,q.useCallback)((a,b)=>{ep({action:"set",ids:[a.root.id],pinned:b})},[ep]),eA=(0,q.useCallback)((a,b)=>{b0(c=>{let d=new Set(c);if(b)for(let b of Y(a))d.delete(b);else d.add(a.root.id);return d})},[]),eB=(0,q.useCallback)(a=>{0!==a.length&&b0(b=>{let c=new Set(b);for(let b of a)b!==c3.current&&c.add(b);return c.size===b.size?b:c})},[]),eC=(0,q.useCallback)(a=>{let b=a.filter(a=>!a.root.transient);if(0===b.length)return;let c=dq(b.map(a=>a.root.id)),d=b.flatMap(a=>Y(a)),e=d.filter(a=>b_.has(a));for(let a of S(b))ep({action:"set",ids:a.map(a=>a.root.id),archived:!0}).then(b=>{if(b||0===e.length)return;let c=new Set(a.flatMap(a=>Y(a)));eB(e.filter(a=>c.has(a)))});e.length>0&&b0(a=>{let b=new Set(a);for(let a of d)b.delete(a);return b}),c7(1===b.length?as("sidebar.archivedToast",{title:cx(bY(b[0].root),28)}):as("sidebar.archivedManyToast",{count:b.length}),[{id:"undo",label:as("sidebar.undo"),onClick:()=>{for(let a of S(c))ep({action:"restore",entries:a});eB(e),dj(()=>en(b[0].root.id))}},{id:"view",label:as("sidebar.viewArchive"),onClick:()=>eu()}])},[ep,dj,en,eu,eB,c7,dq,as,b_]),eD=(0,q.useCallback)(a=>{Y(a).some(a=>bK.has(a))||eC([a])},[eC,bK]),eE=(0,q.useCallback)(a=>{if(0===a.length)return;let b=a.map(a=>a.root.id),c=dq(b);for(let a of S(b))ep({action:"set",ids:a,archived:!1});c7(1===a.length?as("sidebar.restoredToast",{title:cx(bY(a[0].root),28)}):as("sidebar.restoredManyToast",{count:a.length}),[{id:"undo",label:as("sidebar.undo"),onClick:()=>{for(let a of S(c))ep({action:"restore",entries:a});dj(()=>en(a[0].root.id))}}])},[ep,en,dj,c7,dq,as]),eF=(0,q.useCallback)(a=>eE([a]),[eE]),eG=(0,q.useCallback)(a=>{a.root.transient||(cV(null),cR(a.root.id))},[]),eH=(0,q.useCallback)(async(a,b)=>{let c=a.root,d=bY(c),e=b.trim();if(cR(a=>a===c.id?null:a),b!==d&&e!==(c.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(c.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}),dD()}catch{}},[dD]),eI=(0,q.useCallback)(a=>{cT(a.key)},[]),eJ=(0,q.useCallback)(a=>{cT(b=>b===a?null:b),dj(()=>eo(a))},[dj,eo]),eK=(0,q.useCallback)((a,b)=>{eJ(a.key);let c=function(a,b){let c=b.trim();if(c===a.name)return null;let d=""===c||c===aa(a.root);return d&&null===a.customName?null:{action:"rename-project",projectKey:a.key,name:d?null:c}}(a,b);c&&ep(c)},[ep,eJ]),eL=(0,q.useCallback)(async a=>{let b=a.root;if(!b.transient){cV(a=>a===b.id?null:a);try{await fetch(`/api/sessions/${encodeURIComponent(b.id)}`,{method:"DELETE"}),k?.(b.id),dD()}catch{}}},[dD,k]),eM=(0,q.useCallback)((a,b)=>{b?eL(a):(cR(null),cV(a.root.id))},[eL]),eN=(a,b)=>{if(ew.current=null,cD){let a=cd.current?.querySelector(".sidebar-sessions-view .session-tree-scroll");a&&cg.current.delete(a),cN(!1)}let c=z(a);if(Object.hasOwn(eb,c)&&!1===eb[c]){let a={...ch};delete a[c],a[c]=!0,el(a,[c])}dX(a,void 0,void 0,{keepSidebarOpen:null!==b}),dD();let d=b?`[data-row-key="${CSS.escape(b)}"]`:null;c$.current+=1,cZ({id:c$.current,at:Date.now(),rowKey:`session:group:${a.id}`,takeFocusFrom:a=>null!==d&&null!==a.closest(d)||a===ew.current})},eO=(0,q.useRef)(eN);eO.current=eN;let eP=(0,q.useRef)(new Set),eQ=(0,q.useCallback)(async a=>{let b=a.family.root;if(b.transient||eP.current.has(b.id))return;eP.current.add(b.id);let c=c3.current;try{var d;let e,f,g=await fetch(`/api/sessions/${encodeURIComponent(b.id)}/fork`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),h=await g.json().catch(()=>({}));if(!g.ok||!h.session){let{key:a,params:b}=function(a,b){switch(a){case"not_found":return{key:"sidebar.forkNotFound"};case"unsaved":return{key:"sidebar.forkUnsaved"};case"empty":return{key:"sidebar.forkEmpty"};case"subagent":case"request-denied":return{key:"sidebar.forkUnavailable"};default:return{key:"sidebar.forkFailed",params:{error:b}}}}(h.code,h.error??`HTTP ${g.status}`);c7(as(a,b)),"not_found"===h.code&&dD();return}let i=h.session,j=bY(i),{head:k,tail:l}=(d=as("sidebar.forkedToast",{title:j}),((f=(e=aq(j)?.suffix)?d.lastIndexOf(e):-1)>0?{head:d.slice(0,f),tail:d.slice(f)}:null)??{head:as("sidebar.forkedToast",{title:cx(j,28)}),tail:void 0});if(c3.current!==c){aw(a=>a.some(a=>a.id===i.id)?a:[i,...a]),b0(a=>new Set(a).add(i.id)),dD(),c7(k,[{id:"open",label:as("sidebar.open"),onClick:()=>eO.current(i,null)}],l);return}eO.current(i,a.key),c7(k,[],l)}catch(a){c7(as("sidebar.forkFailed",{error:a instanceof Error?a.message:String(a)}))}finally{eP.current.delete(b.id)}},[dD,c7,as]),eR=(0,q.useCallback)(a=>{a.root.transient||window.open(v(a.root.id),"_blank","noopener,noreferrer")},[]),eS=(0,q.useCallback)((a,b,c)=>{a.status.transient||cX({kind:"row",row:a,anchor:b,opener:c})},[]),eT=(0,q.useCallback)((a,b)=>{let c=a.family.root;if(c.id===cQ||c.id===cU)return;if(function(a,b=window){let c=new CustomEvent("pi-web:session-row-contextmenu",{cancelable:!0,detail:a});return!b.dispatchEvent(c)}({id:c.id,path:c.path,cwd:c.cwd,name:c.name,clientX:b.clientX,clientY:b.clientY,refresh:()=>{dD()}})){b.preventDefault(),b.stopPropagation();return}if(c.transient)return;b.preventDefault();let d=b.currentTarget instanceof HTMLElement?b.currentTarget:null,e=0===b.clientX&&0===b.clientY&&d?cy(d,"start"):{kind:"point",x:b.clientX,y:b.clientY},f=document.activeElement,g=f instanceof HTMLElement&&null!==d&&d.contains(f);dd.current=!g&&f instanceof HTMLElement&&f!==document.body?f:null,eS(a,e,g?f:null)},[cU,dD,eS,cQ]),eU=(0,q.useMemo)(()=>({sessions:av,uiState:dk,runningIds:bK,awaitingIds:bX,unreadIds:b_,selectedSessionId:a}),[av,dk,bK,bX,b_,a]),eV=(0,q.useCallback)((a,b)=>{let c=ak(eU,a.key,6048e5,Date.now()).length;cX({kind:"group",project:a,olderCount:c,anchor:cy(b,"end"),opener:b})},[eU]),eW=(0,q.useCallback)(a=>{eC(ak(eU,a.key,6048e5,Date.now()).flatMap(a=>{let b=d1.get(a);return b?[b]:[]}))},[eC,d1,eU]),eX=(0,q.useCallback)((a,b)=>{cX(c=>c?.kind==="group"&&c.project.key===a?{...c,askDelete:b}:c)},[]),eY=(0,q.useRef)(new Set),eZ=(0,q.useCallback)(async(a,b,c)=>{if(cX(null),!(0===b.length||eY.current.has(a))){eY.current.add(a),c7(as("sidebar.deletingSessions"));try{let a=await ao(b,fetch);for(let b of a.deleted)k?.(b);if(dD().then(()=>dj(c)),null!==a.error)return void c7(as("sidebar.deleteFailed",{error:a.error}));let d=a.deletedRoots.length,e=[1===d?as("sidebar.deletedOneToast"):as("sidebar.deletedManyToast",{count:d})];a.running.length>0&&e.push(as("sidebar.keptRunningToast",{count:a.running.length})),c7(e.join(" \xb7 "))}finally{eY.current.delete(a)}}},[dj,dD,k,c7,as]),e$=(0,q.useCallback)(a=>{let{ids:b}=al(eU,a.key);eZ(`project:${a.key}`,b,()=>eo(a.key))},[eZ,eo,eU]),e_=(0,q.useCallback)(a=>{let b=null===a?null:CSS.escape(`archive:${a}`),c=null===b?null:cd.current?.querySelector(`[data-row-key="${b}"] .session-tree-group-toggle`);if(c&&c.getClientRects().length>0)return c;let d=ev.current;return d&&d.getClientRects().length>0?d:em()},[em]),e0=(0,q.useCallback)(a=>a.flatMap(a=>{let b=d1.get(a);return b?[b]:[]}),[d1]),e1=(0,q.useCallback)((a,b)=>{cX({kind:"archive-group",project:a,anchor:cy(b,"end"),opener:b})},[]),e2=(0,q.useCallback)(a=>{cX(b=>b?.kind==="archive"?null:{kind:"archive",anchor:cy(a,"end"),opener:a})},[]),e3=(0,q.useCallback)(a=>{cX(b=>b?.kind==="archive"?{...b,askDelete:a}:b?.kind==="archive-group"?{...b,askDelete:void 0!==a}:b)},[]),e4=(0,q.useCallback)(a=>(function(a,b={}){let c=[];for(let d of t(a.sessions))if((void 0===b.projectKey||ad(d)===b.projectKey)&&$(d,a.uiState,a.runningIds)){if(void 0!==b.archivedBefore){let c=W(V(a.uiState,d.root.id)?.archivedAt);if(null===c||c>=b.archivedBefore)continue}c.push(d.root.id)}return c})(eU,"all"===a?{}:"old"===a?{archivedBefore:Date.now()-2592e6}:a),[eU]),e5=(0,q.useCallback)(a=>{let b=e4(a);eZ("string"==typeof a?`archive:${a}`:`archive-project:${a.projectKey}`,b,()=>"string"==typeof a?e_(null):e_(a.projectKey))},[e4,e_,eZ]),e6=(0,q.useCallback)(a=>{cC(a),an(a)},[]),e7=(0,q.useCallback)(a=>{let b=eg.map(a=>a.project.key),c=cB.filter(a=>!b.includes(a));e6(a?c:[...c,...b])},[cB,eg,e6]),e8=(0,q.useCallback)((a,b)=>{let c=cB.includes(a);if(b)return void e7(c);let d=cB.filter(b=>b!==a);e6(c?d:[...d,a])},[cB,e6,e7]),e9=(0,q.useCallback)(a=>{cX(null),dY(ar(a,aI))},[aI,dY]),fa=(0,q.useCallback)(()=>cX(null),[]),fb=cD?ef:ec.rows,fc=cW?.kind==="row"?fb.find(a=>"session"===a.kind&&a.key===cW.row.key)??cW.row:null,fd=(0,q.useCallback)(a=>{dX(a.root)},[dX]),fe=(0,q.useCallback)(a=>{let b={...ch};for(let c of ec.projects)delete b[c.key],b[c.key]=a(c);el(b,null)},[ch,ec.projects,el]),ff=(0,q.useCallback)((a,b)=>{let c=eh.get(a);if(!c)return;let d=!ab(c,eb);if(b)return void fe(()=>d);let e={...ch};delete e[a],e[a]=d,el(e,[a])},[ch,eh,el,fe,eb]),fg=(0,q.useCallback)(a=>{let b=ec.rows.find(b=>"group-more"===b.kind&&b.projectKey===a||"pinned-more"===b.kind&&a===U);(b?.kind==="group-more"||b?.kind==="pinned-more")&&cp(c=>{var d;return d=b.nextShown,{...c,[a]:Math.max(ah(c,a),Math.floor(d))}})},[ec.rows]),fh=(0,q.useCallback)(a=>{cp(b=>ai(b,a))},[]),fi=(0,q.useCallback)(a=>{da.current=a,dc(a=>a+1),b6?es(!1):er("files")},[es,b6,er]);b6&&cO.open;let fj=({heading:a,headingTitle:b,notes:c,count:d,onConfirm:e,onCancel:f})=>(0,p.jsxs)("div",{className:"sidebar-menu-question",children:[(0,p.jsx)("div",{className:"sidebar-menu-header",title:b,children:a}),c.map(a=>(0,p.jsx)("p",{className:"sidebar-menu-question-text",children:a},a)),(0,p.jsxs)("div",{className:"sidebar-menu-question-buttons",children:[(0,p.jsx)("button",{type:"button",className:"sidebar-menu-question-confirm",disabled:0===d,onClick:e,children:as("sidebar.deleteCount",{count:d})}),!au&&(0,p.jsx)("button",{type:"button",className:"sidebar-menu-question-cancel","data-sidebar-menu-autofocus":"",onClick:f,children:as("sidebar.cancel")})]})]}),fk=(a,b)=>fj({heading:b?as("sidebar.deleteArchivedInProjectHeading",{name:b.name}):as("old"===a?"sidebar.deleteOldArchivedHeading":"sidebar.deleteAllArchivedHeading"),headingTitle:b?.root,notes:[as("sidebar.deleteArchivedMessage")],count:e4(a).length,onConfirm:()=>e5(a),onCancel:()=>e3(void 0)}),fl="",fm=null;if(cW?.kind==="row"&&fc)D=bY(fc.family.root),fl=as("sidebar.sessionActions"),F=(function(a,b){if(b.transient)return[];let c={kind:"action",id:"open-new-tab",shortcut:"T"};return"archive"===a?[{kind:"action",id:"unarchive",shortcut:"A"},{kind:"action",id:"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},{kind:"action",id:"share",shortcut:"S"},{kind:"action",id:"copy-session-id",shortcut:"I"},c,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]:[{kind:"action",id:"pinned"===a?"unpin":"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},{kind:"action",id:"share",shortcut:"S"},{kind:"action",id:"copy-session-id",shortcut:"I"},{kind:"action",id:b.unread?"mark-read":"mark-unread",shortcut:"U"},b.running?{kind:"action",id:"archive",shortcut:"A",disabledReason:"running"}:{kind:"action",id:"archive",shortcut:"A"},c,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]})(fc.context,fc.status).map((a,b)=>{if("separator"===a.kind)return{type:"separator",id:`separator-${b}`};let c=as(cu[a.id]);return{type:"item",id:a.id,label:"delete"===a.id||"share"===a.id?`${c}…`:c,icon:function(a){switch(a){case"open-new-tab":return(0,p.jsx)(bE,{});case"pin":return(0,p.jsx)(bz,{});case"unpin":return(0,p.jsx)(bA,{});case"rename":return(0,p.jsx)(bG,{});case"fork":return(0,p.jsx)(bD,{});case"share":return(0,p.jsx)(bP,{});case"copy-session-id":return(0,p.jsx)(bQ,{});case"mark-read":return(0,p.jsx)(bI,{});case"mark-unread":return(0,p.jsx)(bH,{});case"archive":return(0,p.jsx)(bx,{});case"unarchive":return(0,p.jsx)(by,{});case"delete":return(0,p.jsx)(bF,{})}}(a.id),shortcut:a.shortcut,danger:"delete"===a.id,disabled:void 0!==a.disabledReason,disabledReason:"running"===a.disabledReason?as("sidebar.cannotArchiveRunning"):void 0,onSelect:({shiftKey:b,keepOpen:c})=>((a,b,c,d)=>{let{family:e}=b;switch(a){case"open-new-tab":eR(e);break;case"pin":ez(e,!0);break;case"unpin":ez(e,!1);break;case"rename":eG(e);break;case"fork":eQ(b);break;case"share":d?.(),cX(a=>a?.kind==="row"&&a.row.key===b.key?{...a,share:!0}:a);break;case"copy-session-id":(0,bn.D)(e.root.id).then(()=>c7(as("sidebar.sessionIdCopied")),()=>{});break;case"mark-read":eA(e,!0);break;case"mark-unread":eA(e,!1);break;case"archive":eD(e);break;case"unarchive":eF(e);break;case"delete":eM(e,c)}})(a.id,fc,b,c)}}),cW.share&&(F=void 0,fm=(0,p.jsx)(co,{sessionId:fc.family.root.id,onCopied:()=>c7(as("share.copiedToast")),onStopped:()=>c7(as("share.stoppedToast"))}),E=320);else if(cW?.kind==="group"){var fn,fo;let a,b,c,d,e,f=eh.get(cW.project.key)??cW.project;D=f.name,fl=as("sidebar.projectActions",{name:f.name}),fn=f,fo=cW.olderCount,a=d2.countByProject.get(fn.key)??0,b=al(eU,fn.key),c=am(ec.projects,fn.key,"up"),d=am(ec.projects,fn.key,"down"),e=(null===fn.customName?["rename-project"]:["rename-project","reset-project-name"]).map(a=>"rename-project"===a?{type:"item",id:a,label:as("sidebar.renameProject"),icon:(0,p.jsx)(bG,{}),onSelect:()=>eI(fn)}:{type:"item",id:a,label:as("sidebar.resetProjectName"),icon:(0,p.jsx)(by,{}),onSelect:()=>{ep({action:"rename-project",projectKey:fn.key,name:null})}}),F=[{type:"item",id:"pin-project",label:as(fn.pinned?"sidebar.unpinProject":"sidebar.pinProject"),icon:fn.pinned?(0,p.jsx)(bA,{}):(0,p.jsx)(bz,{}),onSelect:()=>{ep({action:"pin-project",projectKey:fn.key,root:fn.root,pinned:!fn.pinned})}},...e,{type:"item",id:"open-in-files",label:as("sidebar.openInFilesTab"),icon:(0,p.jsx)(bL,{}),onSelect:()=>{fn.current||aJ(fn.root),fi("project-button")}},{type:"item",id:"open-new-tab",label:as("sidebar.openInNewTab"),icon:(0,p.jsx)(bE,{}),shortcut:"T",onSelect:()=>(a=>{let{cwd:b}=ar(a,aI);window.open(`?cwd=${encodeURIComponent(b)}`,"_blank","noopener,noreferrer")})(fn)},{type:"separator",id:"separator-layout"},{type:"item",id:"move-up",label:as("sidebar.moveProjectUp"),icon:(0,p.jsx)(bB,{className:"sidebar-icon-up"}),disabled:null===c,onSelect:()=>{c&&eq(fn.key,c.anchorKey,c.position)}},{type:"item",id:"move-down",label:as("sidebar.moveProjectDown"),icon:(0,p.jsx)(bB,{className:"sidebar-icon-down"}),disabled:null===d,onSelect:()=>{d&&eq(fn.key,d.anchorKey,d.position)}},{type:"item",id:"collapse-others",label:as("sidebar.collapseOtherGroups"),icon:(0,p.jsx)(bB,{}),disabled:ec.projects.every(a=>ab(a,eb)===(a.key===fn.key)),onSelect:()=>fe(a=>a.key===fn.key)},{type:"item",id:"expand-all",label:as("sidebar.expandAllGroups"),icon:(0,p.jsx)(bB,{className:"sidebar-icon-down"}),disabled:ec.projects.every(a=>ab(a,eb)),onSelect:()=>fe(()=>!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"archive-older",label:as("sidebar.archiveOlderThanWeek",{count:fo}),icon:(0,p.jsx)(bx,{}),disabled:0===fo,onSelect:()=>eW(fn)},{type:"item",id:"view-archived",label:as("sidebar.viewArchived",{count:a}),icon:(0,p.jsx)(bx,{}),disabled:0===a,onSelect:()=>eu(fn.key)},{type:"item",id:"delete-all",label:as("sidebar.deleteProjectSessions",{count:b.ids.length}),icon:(0,p.jsx)(bF,{}),danger:!0,disabled:0===b.ids.length,onSelect:({keepOpen:a})=>{a(),eX(fn.key,!0)}}],cW.askDelete&&(fm=(a=>{let{ids:b,running:c}=al(eU,a.key);return fj({heading:as("sidebar.deleteProjectSessionsHeading",{name:a.name}),headingTitle:a.root,notes:[as("sidebar.deleteProjectSessionsMessage"),...c>0?[as("sidebar.deleteProjectSessionsRunning",{count:c})]:[]],count:b.length,onConfirm:()=>e$(a),onCancel:()=>eX(a.key,!1)})})(f)),E=264}else if(cW?.kind==="archive-group"){let a,b=eg.find(a=>a.project.key===cW.project.key)?.project??cW.project;D=b.name,fl=as("sidebar.archivedProjectActions",{name:b.name}),F=[{type:"item",id:"restore-all",label:as("sidebar.restoreAllArchived",{count:(a=e4({projectKey:b.key})).length}),icon:(0,p.jsx)(by,{}),disabled:0===a.length,onSelect:()=>eE(e0(a))},{type:"separator",id:"separator-delete"},{type:"item",id:"delete-all",label:as("sidebar.deleteAllArchived",{count:a.length}),icon:(0,p.jsx)(bF,{}),danger:!0,disabled:0===a.length,onSelect:({keepOpen:a})=>{a(),e3("all")}}],cW.askDelete&&(fm=fk({projectKey:b.key},b)),E=248}else if(cW?.kind==="archive"){let a,b,c;D=as("sidebar.archived"),fl=as("sidebar.archiveActions"),a=e4("all"),b=e4("old"),c=eg.filter(a=>!a.expanded).length,F=[{type:"item",id:"collapse-all",label:as("sidebar.collapseAllGroups"),icon:(0,p.jsx)(bB,{}),disabled:c===eg.length,onSelect:()=>e7(!1)},{type:"item",id:"expand-all",label:as("sidebar.expandAllGroups"),icon:(0,p.jsx)(bB,{className:"sidebar-icon-down"}),disabled:0===c,onSelect:()=>e7(!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"restore-all",label:as("sidebar.restoreAllArchived",{count:a.length}),icon:(0,p.jsx)(by,{}),disabled:0===a.length,onSelect:()=>eE(e0(a))},{type:"item",id:"delete-old",label:as("sidebar.deleteOldArchived",{count:b.length}),icon:(0,p.jsx)(bF,{}),danger:!0,disabled:0===b.length,onSelect:({keepOpen:a})=>{a(),e3("old")}},{type:"item",id:"delete-all",label:as("sidebar.deleteAllArchived",{count:a.length}),icon:(0,p.jsx)(bF,{}),danger:!0,disabled:0===a.length,onSelect:({keepOpen:a})=>{a(),e3("all")}}],cW.askDelete&&(fm=fk(cW.askDelete,null)),E=280}let fp={layout:au?"mobile":"desktop",loading:az||!dl,error:aD,renamingRootId:cQ,renamingProjectKey:cS,confirmDeleteRootId:cU,activeMenuRowKey:cW?.kind==="row"?cW.row.key:cW?.kind==="group"?`group:${cW.project.key}`:cW?.kind==="archive-group"?`archive:${cW.project.key}`:null,onSelectFamily:fd,onToggleGroup:ff,onShowMore:fg,onShowLess:fh,onTogglePinned:()=>{let a=!cq;cA(a),function(a,b=null){if(b)try{b.setItem("pi-web:sidebar-pins-collapsed",String(a))}catch{}}(a),a&&cp(a=>ai(a,U))},onArchiveFamily:eD,onRestoreFamily:eF,onOpenRowMenu:eS,onRowContextMenu:eT,onRenameCommit:(a,b)=>{eH(a,b)},onRenameCancel:()=>cR(null),onRenameProjectCommit:eK,onRenameProjectCancel:()=>{cS&&eJ(cS)},onDeleteConfirm:a=>{eL(a)},onDeleteCancel:()=>{cV(null),cU&&dj(()=>en(cU))},onGroupNew:e9,onGroupMenu:eV,onToggleArchiveGroup:e8,onArchiveGroupMenu:e1,onOpenOtherProject:()=>{fi("project-list")},onOpenArchive:()=>eu(),onMoveGroup:eq},fq=aI??l??null,fr=fq&&bh>0?as("sidebar.changedFiles",{count:bh}):void 0,fs=(0,q.useRef)(null),ft=!fq||0===bh,fu=b6||"sessions"===b7,fv=!b6&&"files"===b7&&null!==fq,fw=((b6?["below",as("sidebar.new")]:["tabs",as("sidebar.tabSessions"),as("sidebar.tabFiles"),as("sidebar.new"),fq&&bh>0?bh:"",b7]).join("\n"),(0,q.useCallback)(()=>{let a=ds.current;if(a){for(let b of["0","1","2"])if(a.dataset.fit=b,a.scrollWidth<=a.clientWidth)return}},[ds])),fx=ec.archivedCount,fy=b6?13:14,fz=(0,p.jsx)(ct,{onClick:()=>{fq&&o?.(fq)},disabled:!fq||!o,title:as("terminal.open"),children:(0,p.jsx)(bN,{size:fy})}),fA=(0,p.jsx)(ct,{onClick:()=>{dE().then(a=>{a&&b6&&es(!1)})},disabled:!fq||dG,title:dG?as(bs?.reason==="remote"?"sidebar.openInExplorerRemoteOnly":"sidebar.openInExplorerUnsupported"):dF,children:(0,p.jsx)(bL,{size:fy})}),fB=(0,p.jsx)(ct,{onClick:()=>{b6&&b9&&es(!1),b4.current?.openUploadPicker()},disabled:!fq||a9,title:as("sidebar.uploadFilesTitle"),children:(0,p.jsx)(bS,{size:fy})}),fC=(0,p.jsx)(ct,{onClick:()=>{u?u():a8(a=>a+1),br(!0),b3.current&&clearTimeout(b3.current),b3.current=setTimeout(()=>br(!1),2e3)},disabled:!fq,title:as("sidebar.refreshExplorer"),done:bq,children:bq?(0,p.jsx)(bJ,{size:fy}):(0,p.jsx)(bT,{size:fy})}),fD=a=>(0,p.jsx)(ct,{onClick:()=>{let a=!bl;bp(a),function(a,b=null){if(b)try{b.setItem("pi-web:sidebar-files-show-ignored",String(a))}catch{}}(a)},disabled:!fq,title:as("sidebar.showIgnoredFiles"),pressed:bl,className:a,children:(0,p.jsx)(bV,{size:fy})}),fE=(0,p.jsx)(ct,{ref:fs,onClick:()=>{if(b6&&b9){es(!1),bk(!1);return}bk(a=>!a)},disabled:ft,title:as("sidebar.changedFiles",{count:bh}),pressed:!ft&&!bj,children:(0,p.jsx)(bU,{size:fy})}),fF=(0,p.jsx)(ct,{onClick:()=>{fq&&r?.(fq)},disabled:!fq||!r,title:as("sidebar.openGitGraph"),children:(0,p.jsx)(bO,{size:fy})});return(0,p.jsxs)("div",{ref:dC,className:`session-sidebar${b6?" is-files-below":""}${b6&&b9?" is-files-collapsed":""}${b6&&cO.moving?" is-files-folding":""}${c4?" has-toast":""}`,style:{"--sidebar-files-height":`${dA.width}px`},onFocus:a=>{ex.current=a.target},onBlur:a=>{(null!==a.relatedTarget||document.hasFocus())&&(a.currentTarget.contains(a.relatedTarget)||(ex.current=null))},children:[aR&&(0,p.jsx)(a$,{initialPath:aT,busy:aX,error:aV,onCancel:()=>{let a="new-session"===aR?df.current:null;de.current=null,df.current=null,aS(!1),aW(null),a&&dj(()=>a.isConnected?a:null)},onSelect:a=>void dP(a)}),(0,p.jsxs)("div",{ref:ds,className:"sidebar-header",children:[b6&&(0,p.jsx)(bo,{onWidthChange:fw}),!b6&&(0,p.jsxs)("div",{className:"sidebar-tabs-list",role:"tablist","aria-label":as("sidebar.tabsLabel"),children:[(0,p.jsxs)("button",{ref:cb,type:"button",role:"tab",id:"session-sidebar-tab-sessions","aria-selected":"sessions"===b7,"aria-controls":"session-sidebar-panel-sessions",tabIndex:"sessions"===b7?0:-1,className:`sidebar-tab${"sessions"===b7?" is-selected":""}`,onClick:()=>er("sessions"),onKeyDown:ey,children:[(0,p.jsx)(bW,{size:13,className:"sidebar-tab-icon"}),(0,p.jsx)("span",{className:"sidebar-tab-label",children:as("sidebar.tabSessions")})]}),(0,p.jsxs)("button",{ref:cc,type:"button",role:"tab",id:"session-sidebar-tab-files","aria-selected":"files"===b7,"aria-controls":"session-sidebar-panel-files",tabIndex:"files"===b7?0:-1,title:fr,className:`sidebar-tab${"files"===b7?" is-selected":""}`,onClick:()=>er("files"),onKeyDown:ey,children:[(0,p.jsx)(bL,{size:13,className:"sidebar-tab-icon"}),(0,p.jsx)("span",{className:"sidebar-tab-label",children:as("sidebar.tabFiles")}),fq&&bh>0&&(0,p.jsx)("span",{className:"sidebar-tab-count","aria-hidden":"true",children:bh})]})]}),(0,p.jsx)("span",{className:"sidebar-header-spacer"}),(0,p.jsxs)("button",{type:"button",className:"sidebar-new-button",onClick:d$,disabled:!aI,title:aI?as("sidebar.newSessionTitle",{path:aI}):as("sidebar.selectProject"),children:[(0,p.jsx)(bv,{size:12}),(0,p.jsx)("span",{className:"sidebar-new-label",children:as("sidebar.new")})]}),(0,p.jsx)("button",{ref:du,type:"button",onClick:()=>{if(fv)return void bc(a=>!a);if(!fu){er("sessions"),be(!0);return}be(a=>!a)},title:fv?as("sidebar.searchFiles"):as("sidebar.toggleSessionSearch"),"aria-label":fv?as("sidebar.searchFiles"):as("sidebar.toggleSessionSearch"),"aria-expanded":fv?bb:bd,"aria-controls":fv?"file-search-input":"session-search-input",className:`sidebar-search-toggle${(fv?bb:bd)?" is-active":""}`,children:(0,p.jsx)(bR,{size:16})})]}),(0,p.jsxs)("div",{ref:cd,id:"session-sidebar-panel-sessions",role:b6?"region":"tabpanel","aria-label":b6?as("sidebar.tabSessions"):void 0,"aria-labelledby":b6?void 0:"session-sidebar-tab-sessions",hidden:!b6&&"sessions"!==b7,className:"sidebar-panel sidebar-sessions-panel",onScrollCapture:et,children:[bd&&(0,p.jsx)("div",{className:"sidebar-search",children:(0,p.jsx)("input",{id:"session-search-input",type:"search",autoFocus:!0,value:bf,maxLength:200,"aria-label":as("sidebar.searchSessions"),placeholder:as("sidebar.searchSessions"),onChange:a=>bg(a.target.value),onKeyDown:a=>{"Escape"!==a.key||a.nativeEvent.isComposing||229===a.keyCode||(a.stopPropagation(),bg(""))},className:"sidebar-search-input"})}),(0,p.jsx)(cl,{open:bd,query:bf,selectedSessionId:a,onSelectSession:dX,archivedSessionIds:d2.ids,children:(0,p.jsxs)("div",{className:"sidebar-sessions-views",children:[(0,p.jsx)("div",{className:"sidebar-sessions-view",hidden:cP.mainHidden,inert:cP.mainInert,children:(0,p.jsx)(b$,{...fp,rows:ec.rows,emptyLabel:as("sidebar.noSessions"),reveal:cY,onRevealHandled:c_})}),cP.archiveMounted&&(0,p.jsxs)("div",{className:`sidebar-sessions-view sidebar-archive-view${cP.archiveClass?` ${cP.archiveClass}`:""}`,inert:cP.archiveInert,onAnimationEnd:a=>{a.target===a.currentTarget&&cK()},children:[(0,p.jsxs)("div",{className:"sidebar-archive-bar",children:[(0,p.jsxs)("button",{ref:ev,type:"button",className:"sidebar-archive-back",title:as("sidebar.backToSessions"),"aria-label":`${as("sidebar.backToSessions")}: ${as("sidebar.archivedCount",{count:fx})}`,onClick:()=>cN(!1),children:[(0,p.jsx)(bB,{size:13,className:"sidebar-icon-back"}),(0,p.jsx)("span",{children:as("sidebar.archived")}),(0,p.jsxs)("span",{className:"sidebar-archive-count",children:["\xb7 ",fx]})]}),(0,p.jsx)("button",{type:"button",className:`sidebar-archive-menu-button${cW?.kind==="archive"?" is-active":""}`,title:as("sidebar.archiveActions"),"aria-label":as("sidebar.archiveActions"),"aria-haspopup":"menu","aria-expanded":cW?.kind==="archive",disabled:0===eg.length,onClick:a=>e2(a.currentTarget),children:(0,p.jsx)(bw,{size:13})})]}),(0,p.jsx)(b$,{...fp,rows:ef,emptyLabel:as("sidebar.noArchived"),reveal:c0,onRevealHandled:c2})]})]})})]}),b6&&cO.open&&(0,p.jsx)("div",{...dA.separatorProps,"aria-controls":"session-sidebar-panel-files",className:`panel-resize-handle sidebar-files-resize-handle${dA.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar-files",title:`${as("sidebar.resizeFiles")}: ${as("sidebar.resizeFilesHint")}`}),(0,p.jsxs)("div",{ref:cf,id:"session-sidebar-panel-files",role:b6?"region":"tabpanel","aria-label":b6?as("sidebar.tabFiles"):void 0,"aria-labelledby":b6?void 0:"session-sidebar-tab-files",hidden:!b6&&"files"!==b7,className:"sidebar-panel sidebar-files-panel",onScrollCapture:et,onTransitionEnd:a=>{a.target===a.currentTarget&&"height"===a.propertyName&&cH()},children:[b6&&(0,p.jsxs)("div",{className:"sidebar-files-section",children:[(0,p.jsxs)("button",{type:"button",className:"sidebar-files-section-toggle","aria-expanded":!b9,"aria-controls":"session-sidebar-files-body",title:fr,onClick:()=>es(!b9),children:[(0,p.jsx)(bB,{size:12,strokeWidth:3,className:`session-tree-chevron${b9?"":" is-open"}`}),(0,p.jsx)("span",{className:"sidebar-files-section-label",children:as("sidebar.tabFiles")}),fr&&(0,p.jsxs)("span",{className:"sidebar-files-section-count","aria-hidden":"true",children:["\xb7 ",bh]})]}),(0,p.jsxs)("div",{className:"sidebar-files-keys",role:"group","aria-label":as("sidebar.fileActions"),children:[fz,fA,fB,fC,fD(),fE,fF,(0,p.jsx)(ct,{onClick:()=>{if(b9){bc(!0),fi("file-search");return}bc(a=>!a)},disabled:!fq,title:as("sidebar.searchFiles"),expanded:bb,controls:"file-search-input",children:(0,p.jsx)(bR,{size:13})})]})]}),(0,p.jsxs)("div",{id:"session-sidebar-files-body",className:"sidebar-files-body",hidden:b6&&cO.bodyHidden,inert:b6&&cO.bodyInert,children:[(0,p.jsxs)("div",{className:"sidebar-files-head",children:[(0,p.jsx)(ck,{handleRef:a1,layout:b6?"row":"stacked",context:ek??{project:null,worktrees:null,currentWorktreePath:null,projects:ej},mobile:au,label:as("sidebar.projectAndWorktree"),placeholder:f&&!dI.current?"":as("sidebar.selectProject"),homeDir:aM,projectActivity:d3,worktreeHint:d7,newWorktreeTitle:as("sidebar.createWorktreeTitle"),onPick:dW,onUseDefaultDirectory:()=>{dR()},onOpenFolder:dQ,onRefreshWorktrees:dV,onCreateWorktree:dT,onRemoveWorktree:dU}),!b6&&fq&&(0,p.jsxs)("div",{className:"sidebar-files-actions",role:"group","aria-label":as("sidebar.fileActions"),children:[o&&fz,fA,fB,fC,fD("sidebar-files-views-start"),fE,fF]})]}),fq&&dH&&(0,p.jsxs)("div",{role:"alert",className:"sidebar-files-error",children:[(0,p.jsx)("span",{className:"sidebar-files-error-text",children:dH}),(0,p.jsx)(a_,{onClick:()=>bC(null),title:as("files.dismissError")})]}),(0,p.jsx)("div",{ref:dt,className:"sidebar-files-scroll scrollbar-subtle",children:fq&&(0,p.jsx)(bm,{ref:b4,cwd:fq,onOpenFile:n??(()=>{}),refreshKey:a7,onAtMention:w,onAtMentions:x,onUploadBusyChange:ba,changesCollapsed:bj,onChangesCountChange:bi,fileSearchOpen:bb,onFileSearchOpenChange:bc,showHidden:bl})})]})]}),(0,p.jsx)(ce,{open:null!==cW,anchor:cW?.anchor??null,sheet:au,ariaLabel:fl,title:D,items:F,cancelLabel:as("sidebar.cancel"),focusCancel:null!==fm,onClose:fa,returnFocusTo:cW?.opener??null,width:E,children:fm}),(0,p.jsx)(cr,{toast:c4,onDismiss:()=>c5(null),dismissLabel:as("sidebar.dismiss")})]})}var cA=c(65699);let cB=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,cC=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,cD=/\x1B_pi:c\x07/g;function cE(a){return a.replace(cD,"").replace(cB,"")}function cF(a){let b=[],c=0;for(;c<a.length;){if(27===a.charCodeAt(c)){let b=a.slice(c).match(cC);if(b){c+=b[0].length;continue}}let d=a.codePointAt(c);if(void 0===d)break;let e=String.fromCodePoint(d);b.push({start:c,end:c+e.length,char:e}),c+=e.length}return b}function cG(a,b){let c=cF(a)[b];return c?a.slice(0,c.start)+a.slice(c.end):a}function cH(a){return cF(a)[0]?.char}let cI=/[▀-▟]/,cJ={ArrowUp:"\x1b[A",ArrowDown:"\x1b[B",ArrowRight:"\x1b[C",ArrowLeft:"\x1b[D",Home:"\x1b[H",End:"\x1b[F",Insert:"\x1b[2~",Delete:"\x1b[3~",PageUp:"\x1b[5~",PageDown:"\x1b[6~",Escape:"\x1b",Backspace:""},cK={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};var cL=c(66376),cM=c(52644),cN=c(50941);function cO(a,b){let c,d=b.shortWithArg??new Set,e=b.longWithArg??new Set,f=b.inPlace??new Set,g=[],h=!1,i=!1,j=a=>{b.targetDir&&(c=a)};for(let k=1;k<a.length;k++){let l=a[k],m=l.text;if(!l.quoted&&"--"===m){for(let b=k+1;b<a.length;b++)g.push(a[b].text);break}if(!l.quoted&&m.startsWith("--")){let d=m.indexOf("=");if(-1!==d){let a=m.slice(0,d);f.has(a)?h=!0:b.expression&&("--expression"===a||"--file"===a)?i=!0:"--target-directory"===a&&b.targetDir&&(c=m.slice(d+1));continue}if(f.has(m)){h=!0;continue}b.expression&&("--expression"===m||"--file"===m)&&(i=!0),e.has(m)&&k+1<a.length&&("--target-directory"===m&&j(a[k+1].text),k+=1);continue}if(!l.quoted&&m.startsWith("-")&&m.length>1&&!/^\d/.test(m.slice(1))){let c=m.slice(1);for(let e=0;e<c.length;e++){let g=`-${c[e]}`;if(f.has(g)&&(h=!0),b.expression&&("-e"===g||"-f"===g)&&(i=!0),d.has(g)){let b=c.slice(e+1);b.length>0?"-t"===g&&j(b):k+1<a.length&&("-t"===g&&j(a[k+1].text),k+=1);break}}continue}g.push(m)}return{operands:g,targetDirectory:c,inPlace:h,expressionSeen:i}}var cP=c(37264),cQ=c(95359);function cR(a){if(!a)return null;let b=a.file_path??a.path;return"string"==typeof b&&b.length>0?b:null}function cS(a){return a?a.map(a=>a.newPath).filter(a=>"string"==typeof a&&a.length>0):[]}var cT=c(97630),cU=c(37279);function cV(a,b,c={}){let d={...a,content:b};return c.omitUsage&&(d.usage=void 0),d}var cW=c(90050),cX=c(60982),cY=c(59023);function cZ(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}let c$=new Map;function c_(a){return{value:a.value,images:a.images.map(a=>({...a}))}}function c0(a){return!a.value&&0===a.images.length}function c1(a){let b=c$.get(a);return b?c_(b):null}function c2(a,b){c0(b)?c$.delete(a):c$.set(a,c_(b))}function c3(a){c$.delete(a)}function c4(a,b){return a.trim()?b.trim()?`${a}
|
|
4
|
+
|
|
5
|
+
${b}`:a:b}function c5(a,b,c,d){let e=[...b??[],...d].filter(cZ).slice(0,10).map(({data:a,mimeType:b})=>({data:a,mimeType:b}));return{value:c4(a,c),images:e}}function c6(a,b,c){if(a===b)return c?c_(c):c1(b);let d=c1(a),e=c&&!c0(c)?c_(c):d??(c?c_(c):null),f=c1(b);if(c3(a),!e)return f;let g=f?c5(f.value,f.images,e.value,e.images):e;return c2(b,g),c_(g)}let c7=/^([ \t]*)([-*+])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,c8=/^([ \t]*)(\d{1,9})([.)])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,c9=/^([ \t]*)(\d{1,3})(、)([ \t]*)/,da=/^[ \t]*([-*_])(?:[ \t]*\1){2,}[ \t]*$/,db=/^[ \t]{0,3}(`{3,}|~{3,})/;function dc(a){return"mcp"===a.name&&a.sourceInfo?.path==="builtin:mcp"}function dd(a){return"/mcp"===a.trim()}var de=c(87646);let df="pi-enter-send-mode",dg="enter",dh=null,di=new Set;function dj(){return null===dh&&(dh=function(){try{let a=window.localStorage.getItem(df);return"ctrlEnter"===a?"ctrlEnter":"enter"}catch{return dg}}()),dh}function dk(a){return di.add(a),()=>{di.delete(a)}}function dl(a){dh=a;try{window.localStorage.setItem(df,a)}catch{}di.forEach(a=>a())}function dm(){return(0,q.useSyncExternalStore)(dk,dj,()=>dg)}let dn={width:820,fontSize:14},dp=new Set;function dq(a){let b=Number(a??14);return Number.isFinite(b)?Math.max(12,Math.min(24,Math.round(b))):14}function dr(){return dn}function ds(a){return dp.add(a),()=>{dp.delete(a)}}function dt(a,b){let c,d="width"===a?Number.isFinite(c=Number(b))?Math.max(820,Math.min(2e3,Math.round(c))):820:dq(b);!function({width:a,fontSize:b}){"u">typeof document&&(document.documentElement.style.setProperty("--chat-content-max-width",`${a}px`),document.documentElement.style.setProperty("--chat-content-font-size",`${b}px`))}({...dr(),[a]:d});try{window.localStorage.setItem("width"===a?"pi-chat-content-width":"pi-chat-content-font-size",String(d))}catch{}dp.forEach(a=>a())}let du=a=>dt("width",a),dv=a=>dt("fontSize",a);function dw(){return{...(0,q.useSyncExternalStore)(ds,dr,()=>dn),setWidth:du,setFontSize:dv}}let dx=[{value:100,label:"settings.fontWeightThin"},{value:200,label:"settings.fontWeightExtraLight"},{value:300,label:"settings.fontWeightLight"},{value:400,label:"settings.fontWeightRegular"},{value:500,label:"settings.fontWeightMedium"},{value:600,label:"settings.fontWeightSemiBold"}],dy={ui:"pi-ui-font-family",mono:"pi-mono-font-family",uiWeight:"pi-ui-font-weight",monoWeight:"pi-mono-font-weight"},dz={ui:"",mono:"",uiWeight:400,monoWeight:400};function dA(a){let b="string"==typeof a?Number(a):a;return dx.find(a=>a.value===b)?.value??400}function dB(a){return"string"==typeof a&&a.length<=500?a:""}let dC=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded"]),dD=["ui","mono"],dE=Object.keys(dy),dF=new Set;function dG(a){for(let b of dD){let c=`--font-${b}`,d=function(a,b){let c=dB(b).split(",").flatMap(a=>{let b=a.trim().replace(/\s+/g," "),c=b.length>=2&&('"'===b[0]||"'"===b[0])&&b.endsWith(b[0]);return(c&&(b=b.slice(1,-1).trim()),b)?[!c&&dC.has(b.toLowerCase())?b.toLowerCase():JSON.stringify(b)]:[]}).join(", ");return c?`${c}, var(--font-${a}-default)`:""}(b,a[b]);d?document.documentElement.style.setProperty(c,d):document.documentElement.style.removeProperty(c);let e=a[`${b}Weight`];400===e?document.documentElement.style.removeProperty(`${c}-weight`):document.documentElement.style.setProperty(`${c}-weight`,String(e))}}function dH(){return dz}function dI(){dF.forEach(a=>a())}function dJ(a){if(null!==a.key&&!Object.values(dy).includes(a.key))return;let b=function(){let a={...dz};for(let b of dD)try{a[b]=dB(window.localStorage.getItem(dy[b]));let c=`${b}Weight`;a[c]=dA(window.localStorage.getItem(dy[c]))}catch{}return a}(),c=dH();dE.every(a=>b[a]===c[a])||(dG(b),dI())}function dK(a){return 0===dF.size&&window.addEventListener("storage",dJ),dF.add(a),dH(),()=>{dF.delete(a),0===dF.size&&window.removeEventListener("storage",dJ)}}function dL(a){let b=dH(),c=dE.filter(c=>b[c]!==a[c]);if(c.length){for(let b of(dG(a),c))try{a[b]===dz[b]?window.localStorage.removeItem(dy[b]):window.localStorage.setItem(dy[b],String(a[b]))}catch{}dI()}}function dM(a,b){dL({...dH(),[a]:dB(b)})}function dN(a,b){dL({...dH(),[`${a}Weight`]:dA(b)})}function dO(a){dL({...dH(),[a]:"",[`${a}Weight`]:400})}function dP(){return{...(0,q.useSyncExternalStore)(dK,dH,()=>dz),setFontPreference:dM,setFontWeight:dN,resetFontPreference:dO}}function dQ({filled:a,size:b}){return(0,p.jsx)("svg",{width:b,height:b,viewBox:"0 0 24 24",fill:a?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:(0,p.jsx)("polygon",{points:"12 2.5 14.9 8.6 21.5 9.4 16.6 13.9 17.9 20.5 12 17.2 6.1 20.5 7.4 13.9 2.5 9.4 9.1 8.6"})})}function dR({active:a,onSelect:b,star:c,gutter:d=!!c,children:e}){let f=(0,aH.a)(),[g,h]=(0,q.useState)(!1),[i,j]=(0,q.useState)(!1),k=!!(c&&!c.isDefault),l=k&&(g||i||f);return(0,p.jsxs)("div",{onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),onFocus:()=>j(!0),onBlur:a=>{a.currentTarget.contains(a.relatedTarget)||j(!1)},style:{position:"relative",background:a?"var(--bg-selected)":g?"var(--bg-hover)":"transparent",transition:"background 0.1s"},children:[(0,p.jsxs)("button",{type:"button",role:"option","aria-selected":a,onClick:b,style:{display:"flex",alignItems:"center",gap:8,width:"100%",minWidth:0,padding:d?"7px 36px 7px 12px":"7px 12px",border:"none",background:"none",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:a?600:400,textAlign:"left",whiteSpace:"nowrap"},children:[a?(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,p.jsx)("span",{style:{width:10,flexShrink:0}}),e]}),c?.isDefault&&(0,p.jsx)("span",{role:"img","aria-label":c.defaultLabel,title:c.defaultLabel,style:{position:"absolute",top:"50%",right:6,transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,color:"var(--text-dim)"},children:(0,p.jsx)(dQ,{filled:!0,size:10})}),c&&k&&(0,p.jsx)("button",{type:"button",title:c.saveLabel,"aria-label":c.saveLabel,tabIndex:l?0:-1,onClick:a=>{a.stopPropagation(),c.onSave()},style:{position:"absolute",top:"50%",right:6,transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",opacity:+!!l,pointerEvents:l?"auto":"none",transition:"opacity 0.1s, background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)",a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text-muted)",a.currentTarget.style.borderColor="var(--border)"},children:(0,p.jsx)(dQ,{filled:!1,size:12})})]})}function dS({options:a,value:b,onChange:c,onReselect:d,onClear:e,emptyLabel:f,selectedLabel:g,disabled:h=!1,busy:i=!1,isAutoSelection:j=!1,ariaLabel:k,variant:l="toolbar",placement:m="up",defaultValue:n,onSetDefault:o}){let r,s,t,u,v,w,x,y,z,A,B,{t:C}=(0,aG.s)(),D=(0,aH.a)(),E=(0,q.useRef)(null),F=(0,q.useRef)(null),[G,H]=(0,q.useState)(!1),[I,J]=(0,q.useState)(null),[K,L]=(0,q.useState)(""),M=h||i,N=(r=K.trim().toLocaleLowerCase())?a.filter(a=>`${a.name} ${a.modelId} ${a.provider}/${a.modelId}`.toLocaleLowerCase().includes(r)):a,O=a.length>8,P=[];for(let a of N){let b=P.find(b=>b.provider===a.provider);b?b.options.push(a):P.push({provider:a.provider,options:[a]})}let Q=g??(b?a.find(a=>a.modelId===b.modelId&&a.provider===b.provider)?.name??b.modelId:f??(a.length>0?"Select model":"No models")),R="field"===l?{display:"flex",alignItems:"center",gap:7,width:"100%",minWidth:0,height:34,padding:"0 9px",overflow:"hidden",border:"1px solid var(--border)",borderRadius:5,background:M?"var(--bg-panel)":"var(--bg)",color:M?"var(--text-dim)":"var(--text)",cursor:M?"default":"pointer",fontSize:12,textAlign:"left"}:{display:"flex",alignItems:"center",justifyContent:D?"flex-start":void 0,gap:6,width:D?"100%":void 0,maxWidth:D?"100%":220,height:32,padding:D?"8px 10px":"8px 12px",overflow:"hidden",border:"none",borderRadius:9,background:G?"var(--bg-hover)":"none",color:"var(--text-muted)",cursor:M?"not-allowed":"pointer",fontSize:12,opacity:M?.5:1,transition:"background 0.12s, color 0.12s"};return(0,p.jsxs)("div",{ref:E,className:`model-selector is-${l}${M?" is-disabled":""}`,style:{position:"relative",width:"field"===l||D?"100%":void 0,minWidth:0,flex:"toolbar"===l&&D?"1 1 auto":void 0},onKeyDown:a=>{"Escape"===a.key&&G&&(a.preventDefault(),a.stopPropagation(),L(""),H(!1))},children:[(0,p.jsxs)("button",{type:"button","aria-label":k,"aria-haspopup":"listbox","aria-expanded":G,"aria-busy":i||void 0,disabled:M,title:i?"Switching model":M?Q:a.length>0||e?"Change model":"No available models",style:R,onClick:a=>{let b=a.currentTarget.getBoundingClientRect();J({top:b.top,right:b.right,bottom:b.bottom,left:b.left,width:b.width}),H(a=>(a&&L(""),!a))},onMouseEnter:a=>{M||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{if(M){a.currentTarget.style.background="field"===l?"var(--bg-panel)":"none",a.currentTarget.style.color="field"===l?"var(--text-dim)":"var(--text-muted)";return}a.currentTarget.style.background=G?"var(--bg-hover)":"field"===l?"var(--bg)":"none",a.currentTarget.style.color="field"===l?"var(--text)":"var(--text-muted)"},children:[i?(0,p.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:(0,p.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}):(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,p.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,p.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,p.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,p.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,p.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,p.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,p.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,p.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,p.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,p.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Q}),"field"===l&&(0,p.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,p.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),G&&I&&(s=window.visualViewport?.offsetTop??0,t=window.visualViewport?.height??window.innerHeight,u=window.visualViewport?.width??window.innerWidth,w=(v=Math.min(I.top-6,s+t-8))-s-8,x=s+t-I.bottom-6-8,z=Math.max(120,Math.min((y="up"===m||w>x)?w:x,.6*t)),A=y?{top:v,transform:"translateY(-100%)"}:{top:I.bottom+6},B=D?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:I.left,width:"max-content",minWidth:I.width,maxWidth:Math.max(I.width,u-I.left-8)},(0,p.jsxs)("div",{ref:F,role:"listbox","aria-label":k,style:{position:"fixed",...A,...B,zIndex:500,display:"flex",flexDirection:"column",maxHeight:z,overflow:"hidden",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:y?"0 -4px 16px rgba(0,0,0,0.10)":"0 4px 16px rgba(0,0,0,0.10)"},children:[O&&(0,p.jsx)("div",{style:{flexShrink:0,padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:(0,p.jsx)("input",{value:K,onChange:a=>L(a.target.value),placeholder:C("chat.filterModels"),"aria-label":C("chat.filterModels"),autoFocus:!D,autoComplete:"off",spellCheck:!1,style:{boxSizing:"border-box",width:"100%",minWidth:220*!D,padding:"5px 8px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}})}),(0,p.jsxs)("div",{style:{minHeight:0,overflowY:"auto"},children:[e&&!K.trim()&&(0,p.jsx)(dR,{active:!b,gutter:!!o,onSelect:()=>{H(!1),L(""),e()},children:(0,p.jsx)(dT,{label:f??"Default"})}),0===P.length?(0,p.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:K.trim()?C("chat.noMatchingModels"):"No available models"}):P.map((a,f)=>(0,p.jsxs)("div",{children:[P.length>1&&(0,p.jsx)("div",{style:{padding:"6px 12px 4px",borderTop:f>0||e?"1px solid var(--border)":"none",color:"var(--text-dim)",fontSize:10,fontWeight:600,letterSpacing:0,textTransform:"uppercase"},children:a.provider}),a.options.map(a=>(0,p.jsx)(dR,{active:a.modelId===b?.modelId&&a.provider===b?.provider,onSelect:()=>{let e;return e=a.modelId===b?.modelId&&a.provider===b?.provider,void(H(!1),L(""),!e||j?c(a.provider,a.modelId):d?.(a.provider,a.modelId))},star:o?{isDefault:a.modelId===n?.modelId&&a.provider===n?.provider,saveLabel:C("chat.saveDefaultModel"),defaultLabel:C("chat.defaultModel"),onSave:()=>{H(!1),L(""),o?.(a.provider,a.modelId)}}:void 0,children:(0,p.jsx)(dT,{label:a.name})},`${a.provider}:${a.modelId}`))]},a.provider))]})]}))]})}function dT({label:a}){return(0,p.jsx)("span",{title:a,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:a})}let dU=["configured","chat-only","read-only","default","full"],dV={configured:"configured","chat-only":"none","read-only":"read-only",default:"default",full:"full"},dW=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function dX(a,b,c){return b<=0?0:((a+c)%b+b)%b}function dY(a,b,c,d){a.setRangeText(d,b,c,"end"),a.dispatchEvent(new Event("input",{bubbles:!0}))}function dZ(a,b,c,d,e=d.length){let f=a.selectionStart,g=a.selectionEnd;if(a.focus(),f===g&&b<=f&&c>=g){let e=a.value.length-(c-b)+d.length;for(let c=f-b;c>0&&a.selectionStart>b&&document.execCommand("delete");c--);if(document.execCommand("insertText",!1,d))for(let b=c-g;b>0&&a.value.length>e&&document.execCommand("forwardDelete");b--);else dY(a,b,a.selectionStart+(c-g),d)}else a.setSelectionRange(b,c),document.execCommand("insertText",!1,d)||dY(a,b,c,d);e!==d.length&&a.setSelectionRange(b+e,b+e)}function d$(a,b){let c=null,d=()=>{c=null,b(function(a,b,c=8){return Math.max(0,Math.floor(a-b-c))}(a.getBoundingClientRect().bottom,function(a){let b=window.visualViewport?.offsetTop??0;for(let c=a.parentElement;c;c=c.parentElement){let a=window.getComputedStyle(c).overflowY;("auto"===a||"scroll"===a||"hidden"===a||"clip"===a)&&(b=Math.max(b,c.getBoundingClientRect().top+c.clientTop))}return b}(a)))},e=()=>{null!==c&&cancelAnimationFrame(c),c=requestAnimationFrame(d)};d();let f=a.parentElement,g=f?.parentElement,h="u">typeof ResizeObserver&&f?new ResizeObserver(e):null;f&&h?.observe(f),g&&h?.observe(g);let i=window.visualViewport;return i?.addEventListener("resize",e),i?.addEventListener("scroll",e),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{h?.disconnect(),i?.removeEventListener("resize",e),i?.removeEventListener("scroll",e),window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0),null!==c&&cancelAnimationFrame(c)}}let d_=["auto","off","minimal","low","medium","high","xhigh","max"],d0={auto:"chat.thinkingUseDefault",off:"chat.thinkingOff",minimal:"chat.thinkingMinimal",low:"chat.thinkingLow",medium:"chat.thinkingMedium",high:"chat.thinkingHigh",xhigh:"chat.thinkingXhigh",max:"chat.thinkingMax"};function d1(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${Math.round(a/1e3)}k`:a.toLocaleString()}let d2=[{name:"compact",description:"chat.commandCompact",source:"builtin"},{name:"auto-compact",description:"chat.commandAutoCompact",source:"builtin"},{name:"reload",description:"chat.commandReload",source:"builtin"},{name:"name",description:"chat.commandName",source:"builtin"},{name:"session",description:"chat.commandSession",source:"builtin",availableWhileStreaming:!0},{name:"copy",description:"chat.commandCopy",source:"builtin",availableWhileStreaming:!0},{name:"clone",description:"chat.commandClone",source:"builtin"}];function d3(a){return function(a){let b=a.trim().match(/^\/([^\s]+)(?:\s|$)/);if(b)return d2.find(a=>a.name===b[1])}(a)?.availableWhileStreaming===!0}let d4=["builtin","extension","prompt","skill"],d5={builtin:"chat.builtIn",extension:"chat.extensions",prompt:"chat.prompts",skill:"chat.skills"},d6={builtin:0,extension:1,prompt:2,skill:3};function d7(a,b,c){let d=a.name.toLowerCase(),e=d8(a,c).toLowerCase();return d===b?0:d.startsWith(b)?1:d.includes(b)?2:e.includes(b)?3:4}function d8(a,b){return"builtin"===a.source?b(a.description):a.description??""}function d9(a,b){return"skill"===a.source&&!!a.name.startsWith("skill:")&&!0===b[a.name.slice(6)]}async function ea(a){let b=()=>{var b;return b=a.type,new Promise((c,d)=>{let e=new FileReader;e.onload=()=>{let a="string"==typeof e.result?e.result.split(",")[1]:void 0;a?c({data:a,mimeType:b}):d(Error("Failed to read image"))},e.onerror=d,e.readAsDataURL(a)})};if(!(a.size>1048576&&"image/gif"!==a.type)||"function"!=typeof createImageBitmap)return b();let c=await createImageBitmap(a).catch(()=>null);if(!c)return b();try{let d=Math.min(1,1024/Math.max(c.width,c.height)),e=document.createElement("canvas");e.width=Math.max(1,Math.round(c.width*d)),e.height=Math.max(1,Math.round(c.height*d));let f=e.getContext("2d");if(!f)return b();f.fillStyle="#fff",f.fillRect(0,0,e.width,e.height),f.drawImage(c,0,0,e.width,e.height);let g=e.toDataURL("image/jpeg",.85).split(",")[1];return g&&g.length<4*Math.ceil(a.size/3)?{data:g,mimeType:"image/jpeg"}:b()}catch{return b()}finally{c.close()}}function eb(a){return{data:a.data,mimeType:a.mimeType}}function ec(a){return{...a,previewUrl:`data:${a.mimeType};base64,${a.data}`}}function ed(a){return(a??[]).filter(cZ).slice(0,10).map(ec)}function ee(a){a.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(a.previewUrl)}function ef({kind:a,text:b}){return(0,p.jsxs)("div",{title:b,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,p.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===a?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===a?"var(--accent)":"var(--text-dim)"},children:a}),(0,p.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]})}function eg({tone:a,title:b,body:c,onClose:d}){let e="error"===a?"239,68,68":"234,179,8";return(0,p.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:`1px solid rgba(${e},0.3)`,borderRadius:6,background:`rgba(${e},0.07)`,color:`rgb(${e})`,fontSize:11,lineHeight:1.45},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,p.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,p.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,p.jsx)("div",{style:{fontWeight:600},children:b}),(0,p.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:c})]}),d&&(0,p.jsx)("button",{type:"button",onClick:d,"aria-label":"Dismiss",style:{flexShrink:0,background:"none",border:"none",padding:"0 2px",cursor:"pointer",color:"inherit",opacity:.7,fontSize:13,lineHeight:1},children:"\xd7"})]})}function eh({error:a}){let{t:b}=(0,aG.s)();return a?(0,p.jsx)(eg,{tone:"error",title:b("chat.modelError"),body:a}):null}function ei({warnings:a}){let{t:b}=(0,aG.s)();return a&&0!==a.length?(0,p.jsx)(eg,{tone:"warning",title:b(a.length>1?"chat.modelScopeWarnings":"chat.modelScopeWarning"),body:a.join("\n")}):null}let ej=(0,q.memo)((0,q.forwardRef)(function({onSend:a,onAbort:b,onSteer:c,onFollowUp:d,isStreaming:e,model:f,isAutoModelSelection:g,modelNames:h,modelList:i,modelError:j,modelScopeWarnings:k,onModelChange:l,modelSwitching:m,defaultModel:n,onSetDefaultModel:o,onCompact:s,onAbortCompaction:t,isCompacting:u,compactError:v,onDismissCompactError:w,compactResult:x,toolPreset:y,onToolPresetChange:z,thinkingLevel:A,isAutoThinkingSelection:B=!1,onThinkingLevelChange:C,availableThinkingLevels:D,thinkingLevelMap:E,savedDefaultThinkingLevel:F,onSetDefaultThinkingLevel:G,retryInfo:H,queuedMessages:I,inputHistory:J=[],onRecallQueue:K,slashCommands:L,slashCommandsLoading:M,onLoadSlashCommands:N,onBuiltinCommand:O,soundEnabled:P,onSoundToggle:Q,onAudioUnlock:R,onPromptWithStreamingBehavior:S,draftKey:T,cwd:U,onAttachFiles:V,compact:W=!1},X){let Y,Z,$,_,aa,ab,ac,{t:ad}=(0,aG.s)(),{fontSize:ae}=dw(),{ui:af,uiWeight:ag}=dP(),ah=(0,aH.a)(),ai=dm(),[aj,ak]=(0,q.useState)(()=>T?c1(T)?.value??"":""),[al,am]=(0,q.useState)(!1),[an,ao]=(0,q.useState)(!1),[ap,aq]=(0,q.useState)(!1),[ar,as]=(0,q.useState)(()=>T?ed(c1(T)?.images):[]),at=aj.trimStart(),au=0===ar.length&&at.startsWith("!"),av=au&&at.startsWith("!!"),[aw,ax]=(0,q.useState)(!1),[ay,az]=(0,q.useState)(0),[aA,aB]=(0,q.useState)(null),[aC,aD]=(0,q.useState)(null),[aE,aF]=(0,q.useState)(!1),[aI,aJ]=(0,q.useState)(null),[aK,aL]=(0,q.useState)(0),[aM,aN]=(0,q.useState)(!1),[aO,aP]=(0,q.useState)(!1),[aQ,aR]=(0,q.useState)(0),[aS,aT]=(0,q.useState)(!1),aU=(0,q.useRef)(!1),[aV,aW]=(0,q.useState)(null),[aX,aY]=(0,q.useState)(!1),[aZ,a$]=(0,q.useState)(null),[a1,a5]=(0,q.useState)(null),a6=U&&a1?.cwd===U?a1.values:{},a7=(0,q.useRef)(null),a8=(0,q.useRef)(null),a9=(0,q.useRef)(null),ba=(0,q.useRef)(null),bb=(0,q.useRef)(null),bc=(0,q.useRef)(null),bd=(0,q.useRef)(!1),be=(0,q.useRef)(0),bf=(0,q.useRef)(!1),bg=(0,q.useRef)(null),bh=(0,q.useRef)([]),bi=(0,q.useRef)(null),bj=(0,q.useRef)([]),bk=(0,q.useRef)([]),bl=(0,q.useRef)(null),bm=(0,q.useRef)(null),bn=(0,q.useRef)(T),bo=(0,q.useRef)(aj),bp=(0,q.useRef)(ar),bq=(0,q.useRef)(0);bo.current=aj,bp.current=ar,(0,q.useImperativeHandle)(X,()=>({insertIfEmpty(a){let b=a7.current;(b?b.value:aj).trim()||(bo.current=a,ak(a),aD(null),requestAnimationFrame(()=>{b&&(b.focus(),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)}))},replaceMessage(a){var b,c,d;let e=a7.current;if(b=e?e.value:aj,c=bp.current.length,d=bq.current,b.trim()||0!==c||0!==d)return;let f="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),g=ed("string"==typeof a.content?[]:a.content.flatMap(a=>{if("image"!==a.type)return[];let b=a.source?.type==="base64"?a.source.data:a.data,c=a.source?.type==="base64"?a.source.media_type:a.mimeType;if("string"!=typeof b||"string"!=typeof c)return[];let d={data:b,mimeType:c};return cZ(d)?[d]:[]}));bo.current=f,bp.current=g,ak(f),aD(null),aP(!1),as(a=>(a.forEach(ee),g)),requestAnimationFrame(()=>{e&&(e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},prependText(a){if(!a.trim())return;let b=a7.current,c=[a,b?b.value:aj].filter(a=>a.trim()).join("\n\n");bo.current=c,ak(c),aD(null),requestAnimationFrame(()=>{b&&(b.focus(),b.setSelectionRange(c.length,c.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)})},rekeyDraft(a,b){if(a===b)return;if(bn.current!==a)return void c6(a,b);let c={value:bo.current,images:bp.current.map(eb)},d=c6(a,b,c)??{value:"",images:[]},e=d.value===c.value&&d.images.length===c.images.length&&d.images.every((a,b)=>a.data===c.images[b]?.data&&a.mimeType===c.images[b]?.mimeType);if(bn.current=b,e)return;let f=ed(d.images);bo.current=d.value,bp.current=f,ak(d.value),as(a=>(a.forEach(ee),f)),aD(null),aP(!1)},restoreSubmission(a,b,c){if(!a.trim()&&!b?.length)return;let d=bn.current,e=c??d,f=e===d,g=!f&&e?c1(e):null,h=c5(a,b,f?bo.current:g?.value??"",f?bp.current.map(eb):g?.images??[]);if(e&&c2(e,h),!f)return;let i=b?.length?[...ed(b).slice(0,Math.max(0,10-bp.current.length)),...bp.current].slice(0,10):bp.current;bo.current=h.value,bp.current=i,ak(b=>{let c=c4(a,b);return bo.current=c,c}),aD(null),aP(!1),b?.length&&as(a=>{let c=Math.max(0,10-a.length),d=ed(b).slice(0,c),e=d.length>0?[...d,...a]:a;return bp.current=e,e}),requestAnimationFrame(()=>{let a=a7.current;a&&(a.focus(),a.setSelectionRange(a.value.length,a.value.length),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},focus(){let a=a7.current;a&&(a.focus(),a.setSelectionRange(a.value.length,a.value.length))},insertText(a){let b=a7.current;if(!b)return void ak(b=>b+(b?" ":"")+a);let c=b.selectionStart??b.value.length,d=b.selectionEnd??b.value.length,e=b.value.slice(0,c);dZ(b,c,d,(e.length>0&&!e.endsWith(" ")?" ":"")+a),aD(null)},addImages(a){br(a)}}));let br=(0,q.useCallback)(async a=>{if(W)return;let b=Math.max(0,10-bp.current.length-bq.current),c=a.filter(a=>a.type.startsWith("image/")&&a.size<=0xa00000).slice(0,b);if(c.length){bq.current+=c.length;try{let a=await Promise.all(c.map(async a=>({...await ea(a),previewUrl:URL.createObjectURL(a)})));as(b=>{let c=a.slice(0,Math.max(0,10-b.length));a.slice(c.length).forEach(ee);let d=[...b,...c];return bp.current=d,d})}finally{bq.current-=c.length}}},[W]),bs=(0,q.useCallback)(a=>{let b=Array.from(a.target.files??[]);a.target.value="",V?V(b):br(b)},[V,br]),bt=(0,q.useCallback)(a=>{as(b=>{let c=[...b],[d]=c.splice(a,1);return d&&ee(d),bp.current=c,c})},[]),bu=(0,q.useCallback)(()=>{bp.current=[],as(a=>(a.forEach(ee),[]))},[]),bv=(0,q.useCallback)(()=>{bo.current="",ak(""),aD(null),aP(!1),T&&c3(T),bn.current&&bn.current!==T&&c3(bn.current),bu(),a7.current&&(a7.current.style.height="auto")},[bu,T]);(0,q.useEffect)(()=>{T&&bn.current===T&&c2(T,{value:aj,images:ar.map(eb)})},[ar,T,aj]),(0,q.useEffect)(()=>{let a=bn.current;if(a===T)return;a&&c2(a,{value:bo.current,images:bp.current.map(eb)});let b=T?c1(T):null;bn.current=T;let c=b?.value??"",d=ed(b?.images);bo.current=c,bp.current=d,ak(c),aD(null),aP(!1),as(a=>(a.forEach(ee),d))},[T]);let bw=(0,q.useCallback)(()=>{let a=a7.current;a&&(a.style.height="auto",a.value&&(a.style.height=`${Math.min(a.scrollHeight,200)}px`))},[]);(0,q.useLayoutEffect)(bw,[aj,ae,af,ag,bw]),(0,q.useEffect)(()=>{let a=a7.current;if(!a)return;let b=-1,c=new ResizeObserver(([a])=>{a.contentRect.width!==b&&(b=a.contentRect.width,bw())});return c.observe(a),()=>c.disconnect()},[bw]),(0,q.useEffect)(()=>{let a=a7.current;if(!a)return;let b=b=>{if("insertLineBreak"!==b.inputType||b.isComposing)return;let c=function(a,b,c){let d;if(b!==c)return null;let e=a.lastIndexOf("\n",b-1)+1,f=a.indexOf("\n",b),g=-1===f?a.length:f,h=a.slice(e,g),i=function(a){if(da.test(a))return null;let b=c7.exec(a);if(b)return{indent:b[1],marker:b[2],number:null,delimiter:"",spacing:b[3],task:void 0!==b[4],length:b[0].length};let c=c8.exec(a)??c9.exec(a);return c?{indent:c[1],marker:"",number:c[2],delimiter:c[3],spacing:c[4],task:void 0!==c[5],length:c[0].length}:null}(h);return!i||b-e<i.length||function(a){let b=null;for(let c of a.split("\n")){let a=db.exec(c)?.[1];a&&(null===b?b=a:a[0]===b[0]&&a.length>=b.length&&c.trim()===a&&(b=null))}return null!==b}(a.slice(0,e))?null:""===h.slice(i.length).trim()?{start:e,end:g,text:""}:{start:b,end:b,text:`
|
|
6
|
+
${d=null===i.number?i.marker:`${String(Number(i.number)+1).padStart(i.number.length,"0")}${i.delimiter}`,`${i.indent}${d}${i.spacing}${i.task?"[ ] ":""}`}`}}(a.value,a.selectionStart,a.selectionEnd);c&&(b.preventDefault(),a.setSelectionRange(c.start,c.end),document.execCommand(c.text?"insertText":"delete",!1,c.text))};return a.addEventListener("beforeinput",b),()=>a.removeEventListener("beforeinput",b)},[]),(0,q.useEffect)(()=>()=>{bp.current.forEach(ee)},[]);let bx=(0,q.useCallback)(async a=>{if(ar.length||!a.startsWith("/")||!O)return!1;if(aU.current)return!0;aU.current=!0,aT(!0);try{var b,c;let d=await O(a);if(!d.handled)return!1;return d.error||(b=bo.current,c=bp.current.length,0!==c||b.trim()!==a)||bv(),!0}finally{aU.current=!1,aT(!1)}},[ar.length,bv,O]),by=(0,q.useCallback)(async()=>{var b;let c=aj.trim();(c||ar.length)&&(R?.(),(!e||d3(b=c)||dd(b))&&await bx(c)||e||(bv(),a(c,ar.length?ar:void 0)))},[aj,ar,e,bx,a,bv,R]),bz=!W&&aj.startsWith("/")&&!/\s/.test(aj.slice(1))?aj.slice(1).toLowerCase():null,bA=null===bz?[]:[...e?d2.filter(a=>a.availableWhileStreaming):d2,...L??[]].filter(a=>{let b=a.name.toLowerCase(),c=d8(a,ad).toLowerCase();return b.includes(bz)||c.includes(bz)}).sort((a,b)=>{let c=d7(a,bz,ad)-d7(b,bz,ad);return 0!==c?c:d6[a.source]-d6[b.source]||dW.compare(a.name,b.name)}),{commands:bB,groups:bC}=(Y=0,{commands:(Z=d4.map(a=>{let b=bA.filter(b=>b.source===a),c="skill"===a?[...b.filter(a=>!d9(a,a6)),...b.filter(a=>d9(a,a6))]:b;return{source:a,items:c.map(a=>({command:a,index:Y++}))}}).filter(a=>a.items.length>0)).flatMap(a=>a.items.map(({command:a})=>a)),groups:Z}),bD=1===bA.length?ad(bz?"chat.match":"chat.command"):ad(bz?"chat.matches":"chat.commands",{count:bA.length}),bE=!!aj.trim()||ar.length>0,bF=W||ah&&e,bG=ar.length>0&&!function(a,b){if(!a)return!0;let c=b?.find(b=>b.provider===a.provider&&b.id===a.modelId);return!c||!c.input||c.input.includes("image")}(f,i)&&!aM;(0,q.useEffect)(()=>{0===ar.length&&aN(!1)},[ar.length]);let bH=(0,q.useCallback)((a,b)=>{if(!U)return void aD(null);let c=b??a.length;aD(a2(a.slice(0,c)))},[U]),bI=aC?.query??null,bJ=r().useMemo(()=>null!==bI&&aV&&aV.cwd===U?function(a,b,c=20){let d=b.toLowerCase();if(!d)return a.slice(0,c);let e=[];for(let b of a){let a=function(a,b){let c=a.path.toLowerCase(),d=0;if(b.includes("/"))c===b?d=100:c.startsWith(b)?d=80:c.includes(b)?d=50:a4(b,c)&&(d=10);else{let a=c.lastIndexOf("/"),e=-1===a?c:c.slice(a+1);e===b?d=100:e.startsWith(b)?d=80:e.includes(b)?d=50:c.includes(b)?d=30:a4(b,c)&&(d=10)}return a.isDir&&d>0&&(d+=10),d}(b,d);a>0&&e.push({entry:b,score:a})}return e.sort((a,b)=>b.score-a.score||a3(a.entry.path)-a3(b.entry.path)||a.entry.path.localeCompare(b.entry.path)),e.slice(0,c).map(a=>a.entry)}(aV.entries,bI):[],[bI,aV,U]),bK=!!(bI&&aV?.truncated&&aV.cwd===U);(0,q.useEffect)(()=>{if(!bK||!U||!bI)return;let a=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(U)}&q=${encodeURIComponent(bI)}`).then(a=>{if(!a.ok)throw Error(`file search failed: ${a.status}`);return a.json()}).then(a=>a$({cwd:U,query:bI,matches:a.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(a)},[bK,bI,U]);let bL=bK&&null!==aZ&&aZ.cwd===U&&aZ.query===bI,bM=bL?aZ.matches:bJ,bN=null===aC?null:`${aC.start}:${+!!aC.quoted}:${aC.query}`;(0,q.useEffect)(()=>{if(null===bN){aF(!1),aL(0);return}aF(!0),aL(0)},[bN]);let bO=null!==aC;(0,q.useEffect)(()=>{if(!bO||!U)return;let a=bl.current;a&&a.cwd===U&&Date.now()-a.fetchedAt<1e4||bm.current===U||(bm.current=U,aY(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(U)}`).then(a=>{if(!a.ok)throw Error(`file index failed: ${a.status}`);return a.json()}).then(a=>{aW({cwd:U,entries:function(a){let b=new Set;for(let c of a){let a=c.indexOf("/");for(;-1!==a;)b.add(c.slice(0,a)),a=c.indexOf("/",a+1)}let c=[];for(let a of b)c.push({path:a,isDir:!0});for(let b of a)b&&c.push({path:b,isDir:!1});return c.sort((a,b)=>a3(a.path)-a3(b.path)||a.path.localeCompare(b.path)),c}(a.files??[]),truncated:!!a.truncated}),bl.current={cwd:U,fetchedAt:Date.now()}}).catch(()=>{bl.current=null}).finally(()=>{bm.current=null,aY(!1)}))},[bO,U]);let bP=(0,q.useCallback)(a=>{if(!aC)return;let b=a7.current;if(!b)return;let c=b.selectionStart??b.value.length,d=c+(aC.quoted&&'"'===b.value[c]?1:0),e=function(a,b,c=!1){let d=b?`${a}/`:a,e=c||d.includes(" ");if(b){let a=e?`@"${d}"`:`@${d}`;return{text:a,cursorOffset:e?a.length-1:a.length}}let f=e?`@"${d}" `:`@${d} `;return{text:f,cursorOffset:f.length}}(a.path,a.isDir,aC.quoted),f=aC.start+e.cursorOffset;dZ(b,aC.start,d,e.text,e.cursorOffset),aD(a2(b.value.slice(0,f)))},[aC]);(0,q.useEffect)(()=>{aK>=bM.length&&aL(Math.max(0,bM.length-1))},[bM.length,aK]),(0,q.useEffect)(()=>{bj.current.length=bM.length},[bM.length]),(0,q.useEffect)(()=>{aE&&bj.current[aK]?.scrollIntoView({block:"nearest",inline:"nearest"})},[aK,aE]),(0,q.useEffect)(()=>{aQ>=J.length&&aR(Math.max(0,J.length-1))},[J.length,aQ]),(0,q.useEffect)(()=>{bk.current.length=J.length},[J.length]),(0,q.useEffect)(()=>{aO&&bk.current[aQ]?.scrollIntoView({block:"nearest",inline:"nearest"})},[aQ,aO]);let bQ=(0,q.useCallback)(a=>{ak(a),aP(!1),aR(0),aD(null),requestAnimationFrame(()=>{let b=a7.current;b&&(b.focus(),b.setSelectionRange(a.length,a.length),b.style.height="auto",b.style.height=`${Math.min(b.scrollHeight,200)}px`)})},[]),bR=(0,q.useCallback)(a=>{let b=`/${a.name} `;ak(b),ax(!1),az(0),requestAnimationFrame(()=>{let a=a7.current;a&&(a.focus(),a.setSelectionRange(b.length,b.length),a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)})},[]),bS=(0,q.useCallback)(a=>{let b=aj.trim();if(!b&&!ar.length)return;R?.();let e=ar.length?ar:void 0,f=()=>{if(b.startsWith("/")&&S){bv(),S(b,"steer"===a?"steer":"followUp",e);return}bv(),"steer"===a&&c?c(b,e):"followup"===a&&d&&d(b,e)};!ar.length&&O&&d3(b)?bx(b):!ar.length&&O&&dd(b)?bx(b).then(a=>{a||f()},()=>f()):f()},[aj,ar,O,S,c,d,bv,R,bx]),bT=(0,q.useCallback)(a=>{let b=bB.length-1;if(b<0)return 0;if("left"===a)return Math.max(0,ay-1);if("right"===a)return Math.min(b,ay+1);let c=bh.current[ay];if(!c)return"down"===a?Math.min(b,ay+1):Math.max(0,ay-1);let d=c.getBoundingClientRect(),e=d.left+d.width/2,f=d.top+d.height/2,g=-1,h=1/0;for(let c=0;c<=b;c+=1){if(c===ay)continue;let b=bh.current[c];if(!b)continue;let d=b.getBoundingClientRect(),i=d.top+d.height/2-f;if("down"===a?i<=4:i>=-4)continue;let j=1e3*Math.abs(i)+Math.abs(d.left+d.width/2-e);j<h&&(g=c,h=j)}return g>=0?g:"down"===a?Math.min(b,ay+1):Math.max(0,ay-1)},[bB.length,ay]),bU=(0,q.useCallback)(a=>{let f=a.nativeEvent,g="Enter"===a.key&&!a.shiftKey,h=ah||"ctrlEnter"===ai?g&&(a.ctrlKey||a.metaKey):g,i=ah?h:g,j=Date.now()-be.current<100,k=bd.current||f.isComposing||229===f.keyCode;if(i&&(k||j)){j&&a.preventDefault();return}if(aO&&!k){if("ArrowDown"===a.key){a.preventDefault(),aR(a=>Math.min(Math.max(0,J.length-1),a+1));return}if("ArrowUp"===a.key){a.preventDefault(),aR(a=>Math.max(0,a-1));return}if("Escape"===a.key){a.preventDefault(),aP(!1);return}if(("Tab"===a.key||i)&&J[aQ]){a.preventDefault(),bQ(J[aQ]);return}}if(aw&&null!==bz){if("ArrowDown"===a.key){a.preventDefault(),az(bT("down"));return}if("ArrowUp"===a.key){a.preventDefault(),az(bT("up"));return}if("ArrowRight"===a.key){a.preventDefault(),az(bT("right"));return}if("ArrowLeft"===a.key){a.preventDefault(),az(bT("left"));return}if("Escape"===a.key){a.preventDefault(),ax(!1);return}let b=bB[ay];if("Tab"===a.key&&b){a.preventDefault(),bR(b);return}if(i&&b){a.preventDefault(),h&&function(a,b,c){if("builtin"===b.source)return"builtin"===b.source&&a.trim()===`/${b.name}`&&(!c||!0===b.availableWhileStreaming);return dc(b)&&dd(a)}(aj,b,e)?(ax(!1),by()):bR(b);return}}if(aE&&null!==aC&&!k){if("ArrowDown"===a.key){a.preventDefault(),aL(a=>dX(a,bM.length,1));return}if("ArrowUp"===a.key){a.preventDefault(),aL(a=>dX(a,bM.length,-1));return}if("Escape"===a.key){a.preventDefault(),aF(!1);return}if(("Tab"===a.key||i)&&bM[aK]){a.preventDefault(),bP(bM[aK]);return}}if("ArrowUp"===a.key&&!k&&!e&&J.length>0&&0===aj.trim().length){a.preventDefault(),ax(!1),aF(!1),aR(J.length-1),aP(!0);return}if("Escape"===a.key&&!k&&e&&b){a.preventDefault(),b();return}h&&(a.preventDefault(),e&&(c||d)?bS(a.altKey&&d||!c?"followup":"steer"):by())},[ah,ai,e,c,d,b,aw,bz,bB,ay,bR,bS,by,bT,aE,aC,bM,aK,bP,aO,J,aQ,bQ,aj]),bV=(0,q.useCallback)(()=>{let a=a7.current;a&&(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,200)}px`)},[]),bW=(0,q.useCallback)(a=>{let b=Array.from(a.clipboardData?.items??[]).filter(a=>a.type.startsWith("image/"));if(!W&&b.length){a.preventDefault(),br(b.map(a=>a.getAsFile()).filter(a=>null!==a));return}let c=a.clipboardData.getData("text/html"),d=a.clipboardData.getData("text/plain");if(!c||!d)return;let e=new DOMParser().parseFromString(c,"text/html"),f=function(a,b){let c="",d=0,e=!1;for(let{label:f,href:g,occurrence:h}of b){if(!f||!g)continue;let b=0;for(let c=0;c<=h&&!((b=a.indexOf(f,c?b+f.length:0))<0);c++);if(b<d)continue;let i=f.replace(/([\\[\]])/g,"\\$1"),j=g.replace(/([\\()])/g,"\\$1");c+=`${a.slice(d,b)}[${i}](${j})`,d=b+f.length,e=!0}return e?c+a.slice(d):null}(d,Array.from(e.querySelectorAll("a[href]"),a=>{let b=a.textContent??"",c=e.createRange();return c.setStart(e.body,0),c.setEndBefore(a),{label:b,href:a.getAttribute("href")?.trim()??"",occurrence:b?c.toString().split(b).length-1:0}}));if(null===f)return;let g=a.currentTarget,h=g.selectionStart,i=g.value.slice(0,h)+f+g.value.slice(g.selectionEnd);a.preventDefault(),bo.current=i,ak(i),aP(!1),bH(i,h+f.length),requestAnimationFrame(()=>{g.focus(),g.setSelectionRange(h+f.length,h+f.length)})},[W,br,bH]);(0,q.useEffect)(()=>{if(null===bz){ax(!1),az(0),bf.current=!1;return}ax(!0),az(0),!bf.current&&N&&(bf.current=!0,Promise.resolve(N()).catch(()=>{bf.current=!1}))},[bz,N]),(0,q.useEffect)(()=>{if(!aw||!U)return;let a=!1;return a5({cwd:U,values:{}}),fetch(`/api/skills?cwd=${encodeURIComponent(U)}`).then(a=>{if(!a.ok)throw Error(`skills fetch failed: ${a.status}`);return a.json()}).then(b=>{if(a)return;let c={};for(let a of b.skills??[])c[a.name]=a.disableModelInvocation;a5({cwd:U,values:c})}).catch(()=>{a||a5({cwd:U,values:{}})}),()=>{a=!0}},[aw,U]),(0,q.useEffect)(()=>{ay>=bB.length&&az(Math.max(0,bB.length-1))},[bB.length,ay]),(0,q.useEffect)(()=>{bh.current.length=bB.length},[bB.length]),(0,q.useEffect)(()=>{aw&&bh.current[ay]?.scrollIntoView({block:"nearest",inline:"nearest"})},[ay,aw]),(0,q.useLayoutEffect)(()=>{if(!aw||null===bz)return void aB(null);let a=bg.current;if(a)return d$(a,a=>{aB(b=>b===a?b:a)})},[aw,bz]),(0,q.useLayoutEffect)(()=>{if(!aE||null===aC)return void aJ(null);let a=bi.current;if(a)return d$(a,a=>{aJ(b=>b===a?b:a)})},[aE,aC]);let bX=i&&i.length>0?i.map(a=>({provider:a.provider,modelId:a.id,name:a.name})):Object.entries(h??{}).map(([a,b])=>({provider:f?.provider??"unknown",modelId:a,name:b})),bY=x?Math.max(0,x.tokensBefore-x.estimatedTokensAfter):0,bZ=x?`${x.reason&&"manual"!==x.reason?`${x.reason[0].toUpperCase()}${x.reason.slice(1)} `:ad("chat.compacted")} ${d1(x.tokensBefore)} -> ${d1(x.estimatedTokensAfter)} tokens (${ad("chat.tokensSaved",{saved:d1(bY)})})`:null,b$=A&&"auto"!==A?A:null,b_="auto"!==($=b$??"auto")&&E?E[$]??$:$,b0=Object.entries(dV).find(([,a])=>a===(y??"configured"))?.[0]??"configured",b1="chat-only"===b0?ad("chat.chatOnly"):b0;(0,q.useEffect)(()=>{let a=a=>{a8.current&&!a8.current.contains(a.target)&&am(!1),a9.current&&!a9.current.contains(a.target)&&ao(!1),ba.current&&!ba.current.contains(a.target)&&aq(!1),!bb.current||bb.current.contains(a.target)||a7.current?.contains(a.target)||aP(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,q.useEffect)(()=>{e&&am(!1)},[e]);let b2=(0,q.useRef)(-1/0);(0,q.useLayoutEffect)(()=>{if(e)return()=>{b2.current=performance.now()}},[e]);let b3=a=>{var b,c;return b=a.detail,c=performance.now()-b2.current,b>0&&c<600};return(0,q.useEffect)(()=>{ah||aq(!1)},[ah]),(0,p.jsxs)("fieldset",{disabled:aS,"aria-busy":aS,className:W?void 0:"chat-input-shell",style:{flexShrink:0,minWidth:0,margin:0,border:0,background:"transparent",padding:W?0:"0 16px 8px",paddingRight:W?0:ah?16:52,opacity:aS?.5:1,transition:"opacity 0.15s"},children:[!W&&(0,p.jsx)("input",{ref:bc,type:"file",accept:V?void 0:"image/*",multiple:!0,style:{display:"none"},onChange:bs}),(0,p.jsxs)("div",{style:{maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(0,p.jsx)(eh,{error:j}),(0,p.jsx)(ei,{warnings:k}),bG&&(_=i?.find(a=>a.provider===f?.provider&&a.id===f?.modelId),(0,p.jsx)(eg,{tone:"warning",title:ad("chat.imageNotSupportedTitle"),body:ad("chat.imageNotSupportedBody",{model:_?.name||f?.modelId||""}),onClose:()=>aN(!0)})),(I?.steering.length??0)+(I?.followUp.length??0)>0&&(0,p.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,p.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:ad("chat.queued",{count:(I?.steering.length??0)+(I?.followUp.length??0)})}),K&&(0,p.jsxs)("button",{onClick:K,title:ad("chat.recallTitle"),style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--text)",background:"transparent",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:a=>{a.currentTarget.style.background="transparent",a.currentTarget.style.borderColor="var(--border)"},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("polyline",{points:"9 14 4 9 9 4"}),(0,p.jsx)("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})]}),ad("chat.recall")]})]}),I?.steering.map((a,b)=>(0,p.jsx)(ef,{kind:"steer",text:a},`steer-${b}`)),I?.followUp.map((a,b)=>(0,p.jsx)(ef,{kind:"follow-up",text:a},`followup-${b}`))]}),H&&(0,p.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,p.jsx)("path",{d:"M3 3v5h5"})]}),ad("chat.retrying",{attempt:H.attempt,max:H.maxAttempts}),H.errorMessage&&(0,p.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",H.errorMessage]})]}),bZ&&(0,p.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",display:"flex",alignItems:"center",gap:6},children:[(0,p.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}),bZ]}),v&&(0,p.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,marginBottom:8,padding:w?"3px 3px 3px 10px":"7px 10px",background:"rgba(239,68,68,0.07)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5},children:[(0,p.jsx)("span",{style:{minWidth:0,flex:1,padding:w?"4px 0":0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:v}),w&&(0,p.jsx)(a_,{onClick:w,title:ad("chat.dismissCompactError")})]}),ar.length>0&&(0,p.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:ar.map((a,b)=>(0,p.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,p.jsx)(de.k,{src:a.previewUrl,children:(0,p.jsx)("img",{src:a.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}})},a.previewUrl),(0,p.jsx)("button",{type:"button",onClick:()=>bt(b),style:{position:"absolute",top:-4,right:-4,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,p.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,p.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,p.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},b))}),(0,p.jsxs)("div",{style:{position:"relative",minWidth:0},children:[aO&&J.length>0&&(0,p.jsxs)("div",{ref:bb,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(44vh, 360px)"},children:[(0,p.jsx)("div",{title:ad("chat.inputHistory"),style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,p.jsx)("path",{d:"M3 4v5h5"}),(0,p.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,p.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:J.map((a,b)=>{let c=b===aQ;return(0,p.jsxs)("button",{ref:a=>{bk.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bQ(a)},onMouseEnter:()=>aR(b),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:c?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,p.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:b+1}),(0,p.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:a})]},`${b}:${a}`)})})]}),aw&&null!==bz&&(0,p.jsxs)("div",{ref:bg,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===aA?"min(72.8vh, 598px)":`min(72.8vh, 598px, ${aA}px)`},children:[(0,p.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("span",{children:M?ad("chat.loadingCommands"):ad("chat.slashCommands",{label:bD})}),(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ad("chat.tabEnter")})]}),(0,p.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:10},children:M||0!==bA.length?bC.map(a=>(0,p.jsxs)("section",{style:{marginBottom:12},children:[(0,p.jsxs)("div",{style:{position:"sticky",top:-10,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"4px 0 6px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,p.jsx)("span",{children:ad(d5[a.source])}),(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:a.items.length})]}),(0,p.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:a.items.map(({command:a,index:b})=>{let c=b===ay,d=d9(a,a6);return(0,p.jsxs)("button",{ref:a=>{bh.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bR(a)},onMouseEnter:()=>az(b),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${c?"var(--accent)":"var(--border)"}`,borderRadius:7,background:c?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:c?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,p.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word",color:d?"var(--text-dim)":void 0},children:["/",a.name,d&&(0,p.jsx)("span",{style:{marginLeft:6,padding:"0 4px",border:"1px solid var(--border)",borderRadius:3,fontSize:9,color:"var(--text-dim)",whiteSpace:"nowrap"},children:ad("chat.dormant")})]}),a.description&&(0,p.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:d8(a,ad)})]},`${a.source}:${a.name}`)})})]},a.source)):(0,p.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:ad("chat.noCommands")})})]}),aE&&null!==aC&&(aa=aX&&(!aV||aV.cwd!==U),ab=1===bM.length?ad("chat.match"):ad("chat.matches",{count:bM.length}),ac=aV?.truncated&&!bL?aC.query?ad("chat.searchingAll"):ad("chat.indexTruncated"):"",(0,p.jsxs)("div",{ref:bi,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===aI?"min(48vh, 400px)":`min(48vh, 400px, ${aI}px)`},children:[(0,p.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("span",{children:aa?ad("chat.loadingFiles"):ad("chat.files",{label:ab,hint:ac})}),(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ad("chat.tabEnter")})]}),(0,p.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:4},children:aa||0!==bM.length?bM.map((a,b)=>{let c=b===aK,d=a.path.split("/").pop()??a.path,e=a.path.slice(0,a.path.length-d.length);return(0,p.jsxs)("button",{ref:a=>{bj.current[b]=a},type:"button",onMouseDown:b=>{b.preventDefault(),bP(a)},onMouseEnter:()=>aL(b),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:6,background:c?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,p.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:a.isDir?(0,p.jsx)(a0.sj,{size:14}):(0,a0.I3)(d,14)}),(0,p.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e&&(0,p.jsx)("span",{style:{color:"var(--text-dim)"},children:e}),d,a.isDir&&(0,p.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${a.isDir?"d":"f"}:${a.path}`)}):(0,p.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:bK&&!bL?ad("chat.searching"):ad("chat.noMatchingFiles")})})]})),(0,p.jsxs)("div",{style:{minWidth:0,display:"flex",flexDirection:bF?"column":"row",gap:8,alignItems:bF?"stretch":"center",background:"var(--bg)",border:W?"none":`1px solid ${au?"var(--tool-bg)":e&&(c||d)?"rgba(234,179,8,0.4)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:14*!W,padding:W?0:ah?"6px 6px 6px 12px":"10px 10px 10px 14px",boxShadow:W?"none":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,p.jsx)("textarea",{ref:a7,className:"chat-input-textarea","aria-label":W?ad("chat.quoteQuestion"):void 0,value:aj,onChange:a=>{bo.current=a.target.value,ak(a.target.value),aP(!1),bH(a.target.value,a.target.selectionStart)},onSelect:a=>{let b=a.currentTarget;bH(b.value,b.selectionStart)},onKeyDown:bU,onCompositionStart:()=>{bd.current=!0},onCompositionEnd:a=>{bd.current=!1,be.current=Date.now();let b=a.currentTarget;bH(b.value,b.selectionStart)},onInput:bV,onPaste:bW,placeholder:e&&(c||d)?ad("chat.steerPlaceholder"):e?ad("chat.agentPlaceholder"):ad("chat.messagePlaceholder"),rows:1,style:{flex:bF?"none":1,minWidth:0,width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:"var(--chat-content-font-size, 14px)",lineHeight:1.6,fontFamily:"inherit",minHeight:W?96:24,maxHeight:200,overflow:"auto"}}),e?(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,alignSelf:"flex-end"},children:[c&&(0,p.jsxs)("button",{onClick:()=>bS("steer"),disabled:!bE,title:ad("chat.steerHint"),style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:bE?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:bE?"rgba(180,130,0,1)":"var(--text-dim)",cursor:bE?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,p.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),ad("chat.steer")]}),d&&(0,p.jsxs)("button",{onClick:()=>bS("followup"),disabled:!bE,title:`${ad("chat.followUpHint")} (${ah?"Ctrl/Cmd+":""}Alt/Option+Enter)`,"aria-keyshortcuts":ah?"Control+Alt+Enter Meta+Alt+Enter":"Alt+Enter",style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:bE?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:bE?"rgba(99,102,241,1)":"var(--text-dim)",cursor:bE?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,p.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,p.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),ad("chat.followUp")]})]}):(0,p.jsxs)("button",{onClick:by,disabled:!aj.trim()&&!ar.length,title:ad("chat.send"),"aria-label":ad("chat.send"),style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",justifyContent:"center",gap:6,...ah?{width:36,height:36,padding:0}:{padding:"7px 14px"},background:aj.trim()||ar.length?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:aj.trim()||ar.length?"var(--accent-contrast)":"var(--text-dim)",cursor:aj.trim()||ar.length?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:aj.trim()||ar.length?"0 1px 3px color-mix(in srgb, var(--accent) 25%, transparent)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,p.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),!ah&&ad("chat.send")]})]})]}),au&&(0,p.jsxs)("div",{className:"text-xs px-2 py-1",style:{color:av?"var(--text-muted)":"var(--accent)",marginTop:4},children:[ad("chat.shell")," \xb7 ",av?ad("chat.outputLocal"):ad("chat.outputModel")]}),!W&&(0,p.jsxs)("div",{className:"chat-input-controls",style:{marginTop:ah?4:8,display:ah?"grid":"flex",gridTemplateColumns:ah?"minmax(0, 1fr) auto":void 0,alignItems:"center",gap:6},children:[(0,p.jsxs)("div",{style:{flex:ah?"1 1 auto":"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:[(0,p.jsx)("button",{onClick:()=>bc.current?.click(),title:ad("chat.attachFiles"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:ar.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",opacity:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color=ar.length?"var(--accent)":"var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=ar.length?"var(--accent)":"var(--text-muted)"},children:(0,p.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),(0,p.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,p.jsx)("polyline",{points:"21 15 16 10 5 21"})]})}),(bX.length>0||f||j)&&l&&(0,p.jsx)(dS,{options:bX,value:f,onChange:l,onReselect:l,disabled:e,busy:m,isAutoSelection:g,defaultValue:n,onSetDefault:o})]}),!ah&&(0,p.jsx)("div",{style:{flex:1}}),(0,p.jsxs)("div",{ref:ba,style:{flex:"0 0 auto",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:ah?0:"auto"},children:[ah&&(0,p.jsx)("button",{type:"button",title:ap?void 0:ad("chat.moreControls"),"aria-label":ad("chat.moreControls"),"aria-expanded":ap,"aria-hidden":ap||void 0,tabIndex:ap?-1:void 0,onClick:()=>{aq(!0)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:32,padding:"8px 10px",background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:ap?"default":"pointer",fontSize:12,fontWeight:500,visibility:ap?"hidden":"visible",pointerEvents:ap?"none":"auto",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{ap||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{ap||(a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)")},children:ad("chat.moreControls")}),(0,p.jsxs)("div",{style:{display:ah?ap?"flex":"none":"flex",alignItems:"center",gap:ah?1:2,...ah?{position:"absolute",right:0,bottom:0,zIndex:60,padding:1,width:"max-content",maxWidth:"calc(100vw - 32px)",flexWrap:"nowrap",justifyContent:"flex-end",border:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:10,background:"color-mix(in srgb, var(--bg-panel) 92%, var(--bg))",boxShadow:"0 8px 24px rgba(0,0,0,0.14)",backdropFilter:"blur(10px)"}:null},children:[C&&(0,p.jsxs)("div",{ref:a9,style:{position:"relative"},children:[(0,p.jsxs)("button",{onClick:()=>ao(a=>!a),title:e?ad("chat.currentReasoning",{level:b_}):ad("chat.changeReasoning",{level:b_}),"aria-label":ad("chat.changeReasoningLabel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ah?"0 6px":"8px 12px",width:ah?"auto":void 0,height:32,background:an?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background=an?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z"}),(0,p.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,p.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]}),(!ah||ap)&&(0,p.jsx)("span",{style:{whiteSpace:"nowrap"},children:b_})]}),an&&(0,p.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",...ah?{left:0}:{right:0},zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:180},children:d_.filter(a=>!D||"auto"===a||D.includes(a)).map(a=>{let b="auto"===a?B:!B&&b$===a,c=ad(d0[a]),d="auto"!==a&&E?E[a]:void 0,e=null!=d&&d!==a?d:a,f=null!=d&&d!==a;return(0,p.jsxs)(dR,{active:b,onSelect:()=>{if(ao(!1),"auto"===a){B||C("auto");return}(!b||B)&&C(a)},gutter:!!G,star:G&&"auto"!==a?{isDefault:F===a,saveLabel:ad("chat.saveDefaultThinking"),defaultLabel:ad("chat.defaultThinking"),onSave:()=>{ao(!1),G(a)}}:void 0,children:[(0,p.jsxs)("span",{style:{flex:1},children:[e,f&&(0,p.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginLeft:5},children:["(",a,")"]})]}),(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:c})]},a)})})]}),!e&&z&&(0,p.jsxs)("div",{ref:a8,style:{position:"relative"},children:[(0,p.jsxs)("button",{onClick:a=>{e||b3(a)||am(a=>!a)},disabled:e,title:ad("chat.changeToolPreset")+`: ${b1}`,"aria-label":ad("chat.changeToolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ah?"0 6px":"8px 12px",width:ah?"auto":void 0,height:32,background:al?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{e||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background=al?"var(--bg-hover)":"none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,p.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),(!ah||ap)&&(0,p.jsx)("span",{style:{whiteSpace:"nowrap"},children:b1})]}),al&&(0,p.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",right:ah?void 0:0,left:ah?0:void 0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:120},children:dU.map(a=>{let b,c=dV[a],d=(y??"configured")===c;return b="configured"===a?ad("chat.configuredTools"):"chat-only"===a?ad("chat.chatOnly"):"read-only"===a?ad("chat.readOnlyTools",{count:4}):"default"===a?ad("chat.builtInTools",{count:4}):ad("chat.allBuiltInTools"),(0,p.jsxs)("button",{onClick:()=>{am(!1),d||z(c)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:d?"var(--bg-selected)":"none",border:"none",color:d?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:d?600:400,whiteSpace:"nowrap"},onMouseEnter:a=>{d||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{d||(a.currentTarget.style.background="none")},children:[d?(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,p.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,p.jsx)("span",{style:{width:10,flexShrink:0}}),(0,p.jsx)("span",{style:{flex:1},children:a}),(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:b})]},a)})})]}),(!e||u)&&s&&(0,p.jsx)("div",{children:(0,p.jsx)("button",{onClick:u?t:a=>{b3(a)||s()},style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ah?"0 6px":"8px 12px",width:ah?"auto":void 0,height:32,background:u?"rgba(239,68,68,0.08)":"none",border:"none",borderRadius:9,color:u?"#ef4444":"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background=u?"rgba(239,68,68,0.16)":"var(--bg-hover)",a.currentTarget.style.color=u?"#ef4444":"var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background=u?"rgba(239,68,68,0.08)":"none",a.currentTarget.style.color=u?"#ef4444":"var(--text-muted)"},title:u?ad("chat.stopCompaction"):ad("chat.compactContext"),"aria-label":u?ad("chat.stopCompaction"):ad("chat.compactContext"),children:u?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,p.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}),(!ah||ap)&&(0,p.jsx)("span",{style:{whiteSpace:"nowrap"},children:ad("chat.compacting")})]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,p.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,p.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,p.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]}),(!ah||ap)&&(0,p.jsx)("span",{style:{whiteSpace:"nowrap"},children:ad("chat.compact")})]})})}),e&&(0,p.jsxs)("button",{onClick:b,title:ad("chat.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:32,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:9,color:"#ef4444",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:a=>{a.currentTarget.style.background="rgba(239,68,68,0.08)"},children:[(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,p.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),ad("chat.stop")]}),void 0!==Q&&(0,p.jsx)("button",{onClick:Q,title:P?ad("chat.disableSound"):ad("chat.enableSound"),"aria-label":P?ad("chat.disableSound"):ad("chat.enableSound"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:P?"var(--text-muted)":"var(--text-dim)",cursor:"pointer",opacity:P?1:.55,transition:"background 0.12s, color 0.12s, opacity 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)",a.currentTarget.style.opacity="1"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color=P?"var(--text-muted)":"var(--text-dim)",a.currentTarget.style.opacity=P?"1":"0.55"},children:P?(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,p.jsx)("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"}),(0,p.jsx)("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14"})]}):(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,p.jsx)("line",{x1:"23",y1:"9",x2:"17",y2:"15"}),(0,p.jsx)("line",{x1:"17",y1:"9",x2:"23",y2:"15"})]})}),ah&&ap&&(0,p.jsx)("button",{type:"button",title:ad("chat.collapseControls"),"aria-label":ad("chat.collapseControls"),"aria-expanded":!0,onClick:()=>{am(!1),ao(!1),aq(!1)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:32,padding:0,marginLeft:0,background:"var(--bg-hover)",border:"none",borderLeft:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:"0 9px 9px 0",color:"var(--text)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:a=>{a.currentTarget.style.background="var(--bg-hover)"},children:(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,p.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,p.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})]})]})]})}));var ek=c(76943),el=c(46976),em=c(37925),en=c(16271);let eo="pi-web:minimap-preview-locked";function ep(a=null){if(!a)return!1;try{return"true"===a.getItem(eo)}catch{return!1}}var eq=c(42172),er=c.n(eq);function es({level:a,children:b,headingIndex:c,onClick:d}){return(0,p.jsx)("button",{type:"button",className:er().heading,"data-level":a,"data-preview-heading-index":c??void 0,disabled:null===c||!d,onClick:a=>{a.stopPropagation(),null!==c&&d?.(c)},children:b})}let et=[...en.iA??[],function(){return a=>{if(!Array.isArray(a.children))return;let b=a.children.filter(a=>"heading"===a.type&&"number"==typeof a.depth&&a.depth<=3);if(b.length>0){b.forEach((a,b)=>{a.data={...a.data,hProperties:{...a.data?.hProperties,"data-preview-heading-index":b}}}),a.children=b;return}let c=a.children.find(a=>"paragraph"===a.type);a.children=c?[c]:[]}}],eu=[[em.A,{throwOnError:!1,strict:!1}]];function ev(a){let b=a?.properties,c=b?.dataPreviewHeadingIndex??b?.["data-preview-heading-index"];return"number"==typeof c?c:"string"==typeof c&&/^\d+$/.test(c)?Number(c):null}let ew=(0,q.memo)(function({markdown:a,onHeadingClick:b,onAnswerClick:c}){let d=(0,q.useMemo)(()=>(0,en.Ep)(a),[a]);return a?(0,p.jsx)("div",{className:er().outline,children:(0,p.jsx)(el.oz,{remarkPlugins:et,rehypePlugins:eu,components:{h1:({children:a,node:c})=>(0,p.jsx)(es,{level:1,headingIndex:ev(c),onClick:b,children:a}),h2:({children:a,node:c})=>(0,p.jsx)(es,{level:2,headingIndex:ev(c),onClick:b,children:a}),h3:({children:a,node:c})=>(0,p.jsx)(es,{level:3,headingIndex:ev(c),onClick:b,children:a}),h4:()=>null,h5:()=>null,h6:()=>null,p:({children:a})=>(0,p.jsx)("button",{type:"button",className:er().paragraph,onClick:c,children:a}),blockquote:()=>null,ul:()=>null,ol:()=>null,pre:()=>null,table:()=>null,hr:()=>null,a:({children:a})=>(0,p.jsx)(p.Fragment,{children:a}),code:({children:a})=>(0,p.jsx)(p.Fragment,{children:a})},children:d})}):null}),ex=(0,q.memo)(function({messages:a,getStreamingMessage:b,scrollContainer:c,messageRefs:d,onRevealHistory:e,turnsBefore:f}){let{t:g}=(0,aG.s)(),[h,i]=(0,q.useState)(!1),[j,k]=(0,q.useState)([]),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(600),[r,s]=(0,q.useState)(!1),[t,u]=(0,q.useState)(ep),[v,w]=(0,q.useState)(null),x=(0,q.useRef)(!1),y=(0,q.useRef)(null),z=(0,q.useRef)([]),A=(0,q.useRef)({nodes:[],gap:50,fillsHeight:!1}),B=(0,q.useRef)(null),C=(0,q.useRef)(new Map),D=(0,q.useRef)(null),E=(0,q.useRef)(null),F=(0,q.useRef)(null),G=(0,q.useRef)(a);G.current=a;let H=(0,q.useMemo)(()=>(function(a,b){if(0===a.length)return{nodes:[],gap:50,fillsHeight:!1};let c=Math.max(1,b),d=Math.max(0,c-12-48);if(1===a.length)return{nodes:[{...a[0],topRatio:12/c}],gap:50,fillsHeight:!1};let e=d/(a.length-1),f=Math.min(50,e);return{nodes:a.map((a,b)=>({...a,topRatio:(12+b*f)/c})),gap:f,fillsHeight:e<=50}})(j,n),[j,n]),{nodes:I,gap:J}=H;A.current=H;let K=(0,q.useCallback)(a=>{E.current={index:a,until:Date.now()+1600},m(a)},[]),L=(0,q.useCallback)((a,b)=>{let c=E.current;if(c&&Date.now()<c.until)return void m(c.index);E.current=null;let d=b.filter(a=>null!==a.targetTurn.scrollTop);if(0===d.length)return void m(null);let e=a.scrollTop+.3*a.clientHeight;m(d.reduce((a,b)=>Math.abs((b.targetTurn.scrollTop??0)-e)<Math.abs((a.targetTurn.scrollTop??0)-e)?b:a,d[0]).index)},[]),M=(0,q.useCallback)(()=>{let a=c.current;if(!a)return;let b=a.scrollHeight-a.clientHeight,d=z.current;i(b>20),L(a,d)},[c,L]),N=(0,q.useRef)(null),O=(0,q.useCallback)(()=>{N.current||(N.current=setTimeout(()=>{N.current=null;let a=c.current,e=y.current;if(!a||!e)return;let f=d.current,g=a.getBoundingClientRect(),h=[],j=0,l=null,m=b();for(let b of m?[...G.current,m]:G.current){let c=(0,cL.Y0)(b);if(!c&&"assistant"!==b.role)continue;let d=f?.[j];if(j++,c){l=null;let c=d?.getBoundingClientRect();l={userMessage:b,assistantPreviews:[],scrollTop:c?c.top-g.top+a.scrollTop:null,toolCount:0},h.push(l);continue}if(!l)continue;l.toolCount+="assistant"===b.role&&Array.isArray(b.content)?b.content.reduce((a,b)=>a+ +("toolCall"===b.type),0):0;let e=function(a){if("assistant"!==a.role)return"";let{answerBlocks:b}=(0,cL.dQ)(a);return b.filter(a=>"text"===a.type).map(a=>a.text).join("\n\n").trim()}(b);e&&l.assistantPreviews.push({markdown:e,element:d})}let n=h.map((a,b)=>({topRatio:0,targetTurn:a,index:b}));o(e.clientHeight),z.current=n,k(n),i(a.scrollHeight-a.clientHeight>20),L(a,n);let p=F.current,q=p?n[p.nodeIndex]:null;if(p&&q){let b=void 0===p.assistantIndex?null:q.targetTurn.assistantPreviews[p.assistantIndex],c=q.targetTurn.scrollTop;if("assistant"===p.target){let d=b?.element?.getBoundingClientRect();c=d?d.top-g.top+a.scrollTop:null}else if("heading"===p.target){let d=void 0===p.headingIndex?null:b?.element?.querySelectorAll("h1, h2, h3").item(p.headingIndex),e=d?.getBoundingClientRect();c=e?e.top-g.top+a.scrollTop:null}if(null===c)return;F.current=null,K(q.index);let d=.3*a.clientHeight;a.scrollTo({top:Math.max(0,c-d),behavior:"smooth"})}},150))},[b,K,d,c,L]);(0,q.useEffect)(()=>{let a=c.current;if(a)return a.addEventListener("scroll",M,{passive:!0}),()=>a.removeEventListener("scroll",M)},[c,M]),(0,q.useEffect)(()=>{let a=c.current;if(!a)return;let b=()=>{O(),M()},d=new ResizeObserver(b);return d.observe(a),a.firstElementChild&&d.observe(a.firstElementChild),b(),()=>{d.disconnect(),N.current&&(clearTimeout(N.current),N.current=null)}},[O,c,M]),(0,q.useEffect)(()=>{let a=setTimeout(()=>{O(),M()},50);return()=>clearTimeout(a)},[a.length,O,M]);let P=(0,q.useCallback)((a,b)=>{let d=c.current;if(!d)return;if(K(a.index),null===a.targetTurn.scrollTop){F.current={nodeIndex:a.index,target:"user"},e();return}let f=Math.max(0,a.targetTurn.scrollTop-.3*d.clientHeight);d.scrollTo({top:f,behavior:b})},[K,e,c]),Q=(0,q.useCallback)((a,b)=>{let d=c.current;if(!d)return;let f=a.targetTurn.assistantPreviews[b]?.element;if(!f){F.current={nodeIndex:a.index,target:"assistant",assistantIndex:b},e();return}let g=d.getBoundingClientRect(),h=f.getBoundingClientRect().top-g.top+d.scrollTop-.3*d.clientHeight;K(a.index),d.scrollTo({top:Math.max(0,h),behavior:"smooth"})},[K,e,c]),R=(0,q.useCallback)(a=>{let{nodes:b,gap:c,fillsHeight:d}=A.current,e=y.current?.clientHeight??0;if(0===b.length||e<=0)return null;let f=Math.max(0,Math.min(e,a*e)),g=b[0].topRatio*e,h=c>0?Math.round((f-g)/c):0,i=Math.max(0,Math.min(b.length-1,h)),j=b[i];if(!d&&Math.abs(f-j.topRatio*e)>Math.max(10,c/2))return null;return j},[]),S=(0,q.useCallback)((a,b,d)=>{let f=c.current;if(!f)return;let g=a.targetTurn.assistantPreviews[b]?.element;if(!g){F.current={nodeIndex:a.index,target:"heading",assistantIndex:b,headingIndex:d},e();return}let h=g.querySelectorAll("h1, h2, h3").item(d);if(!h)return;let i=f.getBoundingClientRect(),j=h.getBoundingClientRect().top-i.top+f.scrollTop-.3*f.clientHeight;K(a.index),f.scrollTo({top:Math.max(0,j),behavior:"smooth"})},[K,e,c]),T=(0,q.useCallback)(()=>{D.current&&(clearTimeout(D.current),D.current=null)},[]),U=(0,q.useCallback)(()=>{t||(T(),s(!0))},[T,t]),V=(0,q.useCallback)(()=>{let a=!t;u(a),function(a,b=null){if(b)try{b.setItem(eo,String(a))}catch{}}(a),a&&(T(),s(!1),w(null))},[T,t]),W=(0,q.useCallback)(()=>{T(),D.current=setTimeout(()=>{D.current=null,s(!1),w(null)},250)},[T]);(0,q.useEffect)(()=>()=>T(),[T]);let X=(0,q.useCallback)(a=>{if(!h)return;x.current=!0,U();let b=a.currentTarget.getBoundingClientRect();w(Math.max(0,Math.min(1,(a.clientY-b.top)/b.height)));let c=(a,c)=>{let d=R(Math.max(0,Math.min(1,(a-b.top)/b.height)));d&&P(d,c)};c(a.clientY,"smooth");let d=a=>{x.current&&c(a.clientY,"auto")},e=()=>{x.current=!1,window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},[R,P,U,h]),Y=null===v?null:R(v),Z=Y?.index??null;if((0,q.useEffect)(()=>{if(!r||null===Z)return;let a=B.current,b=C.current.get(Z);if(!a||!b)return;let c=b.offsetTop-(a.clientHeight-b.offsetHeight)/2;a.scrollTop=Math.max(0,c)},[j,r,Z]),!h)return null;let $=Math.max(1,(I.length>0?I[I.length-1].topRatio*n:12)-12);return(0,p.jsxs)("div",{ref:y,onMouseDown:X,onMouseEnter:U,onMouseLeave:W,onMouseMove:a=>{let b=a.currentTarget.getBoundingClientRect();w((a.clientY-b.top)/b.height)},style:{width:36,flexShrink:0,position:"relative",cursor:"pointer",userSelect:"none",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"visible"},children:[f>0&&(0,p.jsx)("div",{"data-minimap-earlier":"",style:{position:"absolute",left:"50%",top:0,height:12,width:1,background:"repeating-linear-gradient(to bottom, var(--text-dim) 0 2px, transparent 2px 4px)",transform:"translateX(-50%)",zIndex:0}}),(0,p.jsx)("div",{style:{position:"absolute",left:"50%",top:12,height:$,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),I.map(a=>{let b=r&&Y?.index===a.index,c=l===a.index;return(0,p.jsx)("div",{"data-minimap-node-index":a.index,"data-minimap-node-active":c?"":void 0,style:{position:"absolute",top:`${100*a.topRatio}%`,transform:"translateY(-50%)",left:0,right:0,height:Math.max(1,J),display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",zIndex:2},children:(0,p.jsx)("div",{style:{width:8,height:8,borderRadius:2,background:c?"rgba(128,128,128,0.42)":"rgba(128,128,128,0.16)",border:`1.5px solid ${c?"rgba(128,128,128,0.95)":"rgba(128,128,128,0.58)"}`,boxShadow:c?"0 0 0 2px var(--bg-panel)":"none",transition:"transform 0.1s, background 0.1s",transform:b?"scale(1.25)":"scale(1)"}})},a.index)}),(0,p.jsx)("button",{type:"button",className:er().lock,"data-minimap-lock":t?"on":"off","aria-pressed":t,title:g(t?"chatMinimap.unlockPreview":"chatMinimap.lockPreview"),"aria-label":g("chatMinimap.lockPreview"),onMouseDown:a=>a.stopPropagation(),onClick:a=>{a.stopPropagation(),V()},children:(0,p.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"4",y:"11",width:"16",height:"10",rx:"2"}),t?(0,p.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"}):(0,p.jsx)("path",{d:"M8 11V7a4 4 0 0 1 7.9-.9"})]})}),r&&j.length>0&&(0,p.jsxs)("div",{ref:B,className:er().preview,"data-minimap-preview-box":"",onMouseEnter:U,onMouseDown:a=>a.stopPropagation(),onMouseMove:a=>a.stopPropagation(),children:[f>0&&(0,p.jsx)("button",{type:"button",className:er().earlier,"data-minimap-preview-earlier":"",onClick:()=>c.current?.scrollTo({top:0,behavior:"smooth"}),children:g("chatMinimap.earlierTurns",{count:f})}),j.map(a=>{var b;let c=Z===a.index;return(0,p.jsxs)("div",{ref:b=>{b?C.current.set(a.index,b):C.current.delete(a.index)},className:er().turn,"data-minimap-preview-index":a.index,"data-located":c?"true":void 0,children:[(0,p.jsxs)("span",{className:er().number,children:[(0,p.jsx)("span",{"aria-hidden":"true",children:String(f+a.index+1).padStart(2,"0")}),a.targetTurn.toolCount>0&&(0,p.jsx)("span",{className:er().toolBadge,role:"img",title:g("chatMinimap.toolCalls",{count:a.targetTurn.toolCount}),"aria-label":g("chatMinimap.toolCalls",{count:a.targetTurn.toolCount}),children:a.targetTurn.toolCount>99?"99+":a.targetTurn.toolCount})]}),(0,p.jsxs)("div",{className:er().content,children:[(0,p.jsx)("button",{type:"button",className:er().user,"data-minimap-preview-user":a.index,onClick:()=>{P(a,"smooth")},children:(0,p.jsx)("span",{className:er().userText,children:"string"==typeof(b=a.targetTurn.userMessage).content?b.content.trim():b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").trim()})}),a.targetTurn.assistantPreviews.map((b,c)=>(0,p.jsxs)("div",{className:er().assistant,children:[(0,p.jsx)("button",{type:"button",className:er().assistantJump,"data-minimap-preview-assistant":`${a.index}-${c}`,onClick:()=>Q(a,c),"aria-label":g("chatMinimap.locateAssistant"),title:g("chatMinimap.locateAssistant"),children:"A"}),(0,p.jsx)(ew,{markdown:b.markdown,onAnswerClick:()=>Q(a,c),onHeadingClick:b=>S(a,c,b)})]},c))]})]},a.index)})]})]})});var ey=function(a,b){return Object.defineProperty?Object.defineProperty(a,"raw",{value:b}):a.raw=b,a};(qO=qQ||(qQ={}))[qO.EOS=0]="EOS",qO[qO.Text=1]="Text",qO[qO.Incomplete=2]="Incomplete",qO[qO.ESC=3]="ESC",qO[qO.Unknown=4]="Unknown",qO[qO.SGR=5]="SGR",qO[qO.OSCURL=6]="OSCURL";class ez{constructor(){this.VERSION="6.0.6",this.setup_palettes(),this._use_classes=!1,this.bold=!1,this.faint=!1,this.italic=!1,this.underline=!1,this.fg=this.bg=null,this._buffer="",this._url_allowlist={http:1,https:1},this._escape_html=!0,this.boldStyle="font-weight:bold",this.faintStyle="opacity:0.7",this.italicStyle="font-style:italic",this.underlineStyle="text-decoration:underline"}set use_classes(a){this._use_classes=a}get use_classes(){return this._use_classes}set url_allowlist(a){this._url_allowlist=a}get url_allowlist(){return this._url_allowlist}set escape_html(a){this._escape_html=a}get escape_html(){return this._escape_html}set boldStyle(a){this._boldStyle=a}get boldStyle(){return this._boldStyle}set faintStyle(a){this._faintStyle=a}get faintStyle(){return this._faintStyle}set italicStyle(a){this._italicStyle=a}get italicStyle(){return this._italicStyle}set underlineStyle(a){this._underlineStyle=a}get underlineStyle(){return this._underlineStyle}setup_palettes(){this.ansi_colors=[[{rgb:[0,0,0],class_name:"ansi-black"},{rgb:[187,0,0],class_name:"ansi-red"},{rgb:[0,187,0],class_name:"ansi-green"},{rgb:[187,187,0],class_name:"ansi-yellow"},{rgb:[0,0,187],class_name:"ansi-blue"},{rgb:[187,0,187],class_name:"ansi-magenta"},{rgb:[0,187,187],class_name:"ansi-cyan"},{rgb:[255,255,255],class_name:"ansi-white"}],[{rgb:[85,85,85],class_name:"ansi-bright-black"},{rgb:[255,85,85],class_name:"ansi-bright-red"},{rgb:[0,255,0],class_name:"ansi-bright-green"},{rgb:[255,255,85],class_name:"ansi-bright-yellow"},{rgb:[85,85,255],class_name:"ansi-bright-blue"},{rgb:[255,85,255],class_name:"ansi-bright-magenta"},{rgb:[85,255,255],class_name:"ansi-bright-cyan"},{rgb:[255,255,255],class_name:"ansi-bright-white"}]],this.palette_256=[],this.ansi_colors.forEach(a=>{a.forEach(a=>{this.palette_256.push(a)})});let a=[0,95,135,175,215,255];for(let b=0;b<6;++b)for(let c=0;c<6;++c)for(let d=0;d<6;++d){let e={rgb:[a[b],a[c],a[d]],class_name:"truecolor"};this.palette_256.push(e)}let b=8;for(let a=0;a<24;++a,b+=10){let a={rgb:[b,b,b],class_name:"truecolor"};this.palette_256.push(a)}}escape_txt_for_html(a){return this._escape_html?a.replace(/[&<>"']/gm,a=>"&"===a?"&":"<"===a?"<":">"===a?">":'"'===a?""":"'"===a?"'":void 0):a}append_buffer(a){var b=this._buffer+a;this._buffer=b}get_next_packet(){var a={kind:qQ.EOS,text:"",url:""},b=this._buffer.length;if(0==b)return a;var c=this._buffer.indexOf("\x1b");if(-1==c)return a.kind=qQ.Text,a.text=this._buffer,this._buffer="",a;if(c>0)return a.kind=qQ.Text,a.text=this._buffer.slice(0,c),this._buffer=this._buffer.slice(c),a;if(0==c){if(b<3)return a.kind=qQ.Incomplete,a;var d=this._buffer.charAt(1);if("["!=d&&"]"!=d&&"("!=d)return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a;if("["==d){this._csi_regex||(this._csi_regex=eA(qR||(qR=ey(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1b[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1b[ # CSI\n [ -~]* # anything legal\n ([\0-\x1f:]) # anything illegal\n )\n "],["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]))));let b=this._buffer.match(this._csi_regex);if(null===b)return a.kind=qQ.Incomplete,a;if(b[4])return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a;""!=b[1]||"m"!=b[3]?a.kind=qQ.Unknown:a.kind=qQ.SGR,a.text=b[2];var e=b[0].length;return this._buffer=this._buffer.slice(e),a}if("]"==d){if(b<4)return a.kind=qQ.Incomplete,a;if("8"!=this._buffer.charAt(2)||";"!=this._buffer.charAt(3))return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a;this._osc_st||(this._osc_st=RegExp((qS||(qS=ey(["\n (?: # legal sequence\n (\x1b\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-\x06] # anything illegal\n | # alternate\n [\b-\x1a] # anything illegal\n | # alternate\n [\x1c-\x1f] # anything illegal\n )\n "],["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "]))).raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,""),"g")),this._osc_st.lastIndex=0;{let b=this._osc_st.exec(this._buffer);if(null===b)return a.kind=qQ.Incomplete,a;if(b[3])return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a}{let b=this._osc_st.exec(this._buffer);if(null===b)return a.kind=qQ.Incomplete,a;if(b[3])return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a}this._osc_regex||(this._osc_regex=eA(qT||(qT=ey(["\n ^ # beginning of line\n #\n \x1b]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1b\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1b]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1b\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "],["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]))));let c=this._buffer.match(this._osc_regex);if(null===c)return a.kind=qQ.ESC,a.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),a;a.kind=qQ.OSCURL,a.url=c[1],a.text=c[2];var e=c[0].length;return this._buffer=this._buffer.slice(e),a}if("("==d)return a.kind=qQ.Unknown,this._buffer=this._buffer.slice(3),a}}ansi_to_html(a){this.append_buffer(a);for(var b=[];;){var c=this.get_next_packet();if(c.kind==qQ.EOS||c.kind==qQ.Incomplete)break;c.kind!=qQ.ESC&&c.kind!=qQ.Unknown&&(c.kind==qQ.Text?b.push(this.transform_to_html(this.with_state(c))):c.kind==qQ.SGR?this.process_ansi(c):c.kind==qQ.OSCURL&&b.push(this.process_hyperlink(c)))}return b.join("")}with_state(a){return{bold:this.bold,faint:this.faint,italic:this.italic,underline:this.underline,fg:this.fg,bg:this.bg,text:a.text}}process_ansi(a){let b=a.text.split(";");for(;b.length>0;){let a=parseInt(b.shift(),10);if(isNaN(a)||0===a)this.fg=null,this.bg=null,this.bold=!1,this.faint=!1,this.italic=!1,this.underline=!1;else if(1===a)this.bold=!0;else if(2===a)this.faint=!0;else if(3===a)this.italic=!0;else if(4===a)this.underline=!0;else if(21===a)this.bold=!1;else if(22===a)this.faint=!1,this.bold=!1;else if(23===a)this.italic=!1;else if(24===a)this.underline=!1;else if(39===a)this.fg=null;else if(49===a)this.bg=null;else if(a>=30&&a<38)this.fg=this.ansi_colors[0][a-30];else if(a>=40&&a<48)this.bg=this.ansi_colors[0][a-40];else if(a>=90&&a<98)this.fg=this.ansi_colors[1][a-90];else if(a>=100&&a<108)this.bg=this.ansi_colors[1][a-100];else if((38===a||48===a)&&b.length>0){let c=38===a,d=b.shift();if("5"===d&&b.length>0){let a=parseInt(b.shift(),10);a>=0&&a<=255&&(c?this.fg=this.palette_256[a]:this.bg=this.palette_256[a])}if("2"===d&&b.length>2){let a=parseInt(b.shift(),10),d=parseInt(b.shift(),10),e=parseInt(b.shift(),10);if(a>=0&&a<=255&&d>=0&&d<=255&&e>=0&&e<=255){let b={rgb:[a,d,e],class_name:"truecolor"};c?this.fg=b:this.bg=b}}}}}transform_to_html(a){let b=a.text;if(0===b.length||(b=this.escape_txt_for_html(b),!a.bold&&!a.italic&&!a.faint&&!a.underline&&null===a.fg&&null===a.bg))return b;let c=[],d=[],e=a.fg,f=a.bg;a.bold&&c.push(this._boldStyle),a.faint&&c.push(this._faintStyle),a.italic&&c.push(this._italicStyle),a.underline&&c.push(this._underlineStyle),this._use_classes?(e&&("truecolor"!==e.class_name?d.push(`${e.class_name}-fg`):c.push(`color:rgb(${e.rgb.join(",")})`)),f&&("truecolor"!==f.class_name?d.push(`${f.class_name}-bg`):c.push(`background-color:rgb(${f.rgb.join(",")})`))):(e&&c.push(`color:rgb(${e.rgb.join(",")})`),f&&c.push(`background-color:rgb(${f.rgb})`));let g="",h="";return d.length&&(g=` class="${d.join(" ")}"`),c.length&&(h=` style="${c.join(";")}"`),`<span${h}${g}>${b}</span>`}process_hyperlink(a){let b=a.url.split(":");return b.length<1||!this._url_allowlist[b[0]]?"":`<a href="${this.escape_txt_for_html(a.url)}">${this.escape_txt_for_html(a.text)}</a>`}}function eA(a){return new RegExp(a.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,""))}function eB({text:a}){let b=(0,q.useMemo)(()=>new ez().ansi_to_html(a),[a]);return(0,p.jsx)("span",{dangerouslySetInnerHTML:{__html:b}})}function eC({widgets:a,children:b}){let c,d,e,{t:f}=(0,aG.s)(),g=(0,q.useId)();(0,q.useRef)(null),(0,q.useRef)(new Map);let[h,i]=(0,q.useState)(()=>a.find(a=>{let b=a.lines.length;return b>1&&b<=3})?.key??null),[j,k]=(0,q.useState)(()=>new Set);if(0===a.length)return null;let l=a.find(a=>a.key===h&&a.lines.length>0);return(0,p.jsxs)(p.Fragment,{children:[l&&(0,p.jsx)("div",{className:"extension-widget-panels",children:(c=a.indexOf(l),d=`${g}-trigger-${c}`,e=`${g}-panel-${c}`,(0,p.jsxs)("section",{id:e,className:"extension-widget-panel","aria-labelledby":d,children:[(0,p.jsx)("div",{className:"extension-widget-panel-heading",children:l.key}),(0,p.jsx)("pre",{className:"extension-widget-content",children:(0,p.jsx)(eB,{text:l.lines.join("\n")})})]},l.key))}),(0,p.jsxs)("div",{className:"extension-status-row",children:[(0,p.jsx)("div",{className:"extension-widget-triggers","aria-label":f("chat.extensionWidgets"),children:a.map((a,b)=>{let c=a.lines.length>0,d=c&&a.key===l?.key,e=j.has(a.key),h=f(1===a.lines.length?"chat.extensionWidgetLine":"chat.extensionWidgetLines",{count:a.lines.length}),k=f("belowEditor"===a.placement?"chat.extensionWidgetBelow":"chat.extensionWidgetAbove"),m=`${g}-trigger-${b}`,n=`${g}-panel-${b}`,o=(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"extension-widget-update-pulse","aria-hidden":"true"}),(0,p.jsx)("span",{className:"extension-widget-placement","aria-hidden":"true",children:(0,p.jsx)("svg",{className:"extension-widget-placement-icon",viewBox:"0 0 8 6",width:"8",height:"6","data-direction":"belowEditor"===a.placement?"down":"up",focusable:"false",children:(0,p.jsx)("path",{d:"belowEditor"===a.placement?"M0 0h8L4 6z":"M4 0l4 6H0z"})})}),(0,p.jsx)("span",{className:"extension-widget-key",children:a.key})]});return c?(0,p.jsx)("button",{id:m,type:"button",className:`extension-widget-trigger${d?" is-expanded":""}${e?" is-updating":""}`,"aria-controls":n,"aria-expanded":d,"aria-label":`${k}: ${a.key}, ${h}`,title:`${a.key} - ${k} - ${d?f("i18n.collapse"):f("i18n.expand")}`,onClick:()=>{i(b=>{var c;return b===(c=a.key)?null:c})},children:o},a.key):(0,p.jsx)("div",{className:`extension-widget-trigger${e?" is-updating":""}`,"aria-label":`${k}: ${a.key}, ${h}`,title:`${a.key} - ${k}`,children:o},a.key)})}),b]})]})}let eD="command:";function eE({statuses:a,widgets:b=[],onCommand:c,commandsDisabled:d=!1}){let e=function(a){let b=[];for(let c of[...a].sort((a,b)=>a.key.localeCompare(b.key))){let a=c.text.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/\t/g," ").replace(/ +/g," ").trim()).join("\n").trim(),d=function(a){if(!a.startsWith(eD))return null;let b=a.slice(eD.length).trim();return b.length>1&&b.startsWith("/")?b:null}(c.key);if(d){let c=cE(a).replace(/\s+/g," ").trim();b.push({kind:"command",command:d,label:c||d})}else cE(a).trim()&&b.push({kind:"text",text:a})}return b}(a);if(0===e.length&&0===b.length)return null;let f=e.some(a=>"command"===a.kind),g=e.map(a=>"text"===a.kind?cE(a.text):a.label).join(" "),h=e.length>0?(0,p.jsx)("div",{role:"status",className:"extension-status-line","aria-label":g,title:g,children:(0,p.jsx)("span",{className:"extension-status-text",children:e.map((a,b)=>"text"===a.kind?(0,p.jsx)("span",{className:"extension-status-item",children:(0,p.jsx)(eB,{text:a.text})},b):(0,p.jsx)("button",{type:"button",className:"extension-status-item extension-status-command",disabled:!c||d,title:`${a.label} \xb7 ${a.command}`,"aria-label":`${a.label} (${a.command})`,onClick:()=>c?.(a.command),children:a.label},b))})}):null;return(0,p.jsx)("div",{className:`extension-status-shelf${b.length>0?" has-widgets":""}${e.length>0?" has-status":""}${f?" has-commands":""}`,children:b.length>0?(0,p.jsx)(eC,{widgets:b,children:h}):h})}function eF(a){switch(a.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==a.closed;default:return!1}}function eG(a,b){return a.every(a=>b.has(a.id))?a:a.filter(a=>b.has(a.id))}function eH(a,b){return a.some(a=>a.id===b)?a.filter(a=>a.id!==b):a}function eI(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function eJ(a,b={}){if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let d=c.map(a=>(function(a,b={}){if(!eI(a)||"toolCall"!==a.type)return null;let c={type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input},d=b.includeStreamingRawInput?function(a){if("string"==typeof a.rawInput)return a.rawInput;if("string"==typeof a.partialJson)return a.partialJson;if("string"==typeof a.partialArgs)return a.partialArgs;let b=eI(a.customInput)?a.customInput:null,c=b&&"string"==typeof b.property?b.property:null,d=eI(a.arguments)?a.arguments:null;return c&&d&&"string"==typeof d[c]?d[c]:void 0}(a):void 0;return void 0===d?c:{...c,rawInput:d}})(a,b)??a);return{...a,content:d}}class eK extends Error{constructor(a,b,c,d){super(a),this.status=b,this.code=c,this.accepted=d,this.name="AgentCommandError"}}function eL(a){return a instanceof eK&&"prompt_rejected"===a.code&&!1===a.accepted}function eM(a){return`/api/agent/${encodeURIComponent(a)}?systemPrompt=0`}async function eN(a,b){let c=await fetch(`/api/agent/${encodeURIComponent(a)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>({}));if(!c.ok||d.error)throw new eK(d.error??`HTTP ${c.status}`,c.status,d.code,d.accepted);return d.data}function eO(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}let eP=new WeakMap;function eQ(a){let b,c=eP.get(a);if(void 0!==c)return c;try{b=JSON.stringify(a).length}catch{b=Number.MAX_SAFE_INTEGER}return eP.set(a,b),b}function eR(a){if(!a.sessionId||!a.revision)return!1;let b=eO();b.delete(a.sessionId);let c={...a,savedAt:Date.now()};return!(eQ(c)>0x2000000)&&(b.set(c.sessionId,c),!function(){let a=eO();for(;a.size>8;){let b=a.keys().next().value;if(void 0===b)break;a.delete(b)}let b=0;for(let c of a.values())b+=eQ(c);for(;b>0x2000000&&a.size>0;){let c=a.keys().next().value;if(void 0===c)break;let d=a.get(c);a.delete(c),d&&(b-=eQ(d))}}(),eO().has(c.sessionId))}var eS=c(99305);function eT(a,b){b&&(a.tokens.input+=b.input??0,a.tokens.output+=b.output??0,a.tokens.cacheRead+=b.cacheRead??0,a.tokens.cacheWrite+=b.cacheWrite??0,a.cost+=b.cost?.total??0)}function eU(a){let b={userMessages:0,assistantMessages:0,toolCalls:0,toolResults:0,totalMessages:0,tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0};for(let c of a)"custom"!==c.role&&(b.totalMessages+=1,"user"===c.role?b.userMessages+=1:"toolResult"===c.role?(b.toolResults+=1,eT(b,c.usage)):"assistant"===c.role&&(b.assistantMessages+=1,Array.isArray(c.content)&&(b.toolCalls+=c.content.filter(a=>"toolCall"===a.type).length),eT(b,c.usage)));return b.tokens.total=b.tokens.input+b.tokens.output+b.tokens.cacheRead+b.tokens.cacheWrite,b}function eV(a){if(!a||"object"!=typeof a||"image"!==a.type)return"";let b=a.source;return b&&"object"==typeof b?["url"===b.type?"url":"base64","string"==typeof b.media_type?b.media_type:"","string"==typeof b.data?b.data:"","string"==typeof b.url?b.url:""].join(":"):["base64","string"==typeof a.mimeType?a.mimeType:"","string"==typeof a.data?a.data:"",""].join(":")}function eW(a){let b,c=a.content;return"string"==typeof c?JSON.stringify({text:c,images:[]}):Array.isArray(c)?JSON.stringify({text:"string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):"",images:c.map(eV).filter(Boolean)}):JSON.stringify({text:"",images:[]})}let eX=(a,b)=>`live:${a??""}:${b}`;class eY extends Error{constructor(a,b){super(b??("ready_timeout"===a?"Timed out starting the agent session. Please try again.":"Failed to connect to the agent event stream. Please try again.")),this.status=a,this.name="AgentEventConnectionError"}}class eZ{constructor(a){this.options=a,this.current=null,this.retry=null,this.retryGeneration=0}close(){this.stopRetrying(),this.current&&this.discard(this.current,new eY("closed"))}maintain(a){if(!this.options.shouldMaintain(a))return;let b=this.retryGeneration;this.ensureConnected(a).catch(c=>{b===this.retryGeneration&&(c instanceof eY?"startup_error"===c.status?this.stopRetrying():this.scheduleRetry(a):this.options.onUnexpectedError?.(c))})}async ensureConnected(a){for(;;){let b=this.current;if(b&&b.sessionId===a){if(b.attempt.ready&&1===b.source.readyState)return}else b=this.open(a);if(await b.attempt.promise,this.current!==b){if(this.current?.sessionId===a)continue;throw new eY("closed")}if(1===b.source.readyState)return;this.discard(b,new eY("closed"))}}open(a){let b,c,d;this.current&&this.discard(this.current,new eY("closed"));try{b=this.options.createSource(a)}catch(a){throw new eY("closed",a instanceof Error?a.message:String(a))}let e=!1,f=new Promise((a,b)=>{c=a,d=b}),g=setTimeout(()=>{this.fail(i,new eY("ready_timeout"))},this.options.readinessTimeoutMs),h={promise:f,ready:!1,succeed(){e||(e=!0,clearTimeout(g),c())},fail(a){e||(e=!0,clearTimeout(g),d(a))}},i={sessionId:a,source:b,attempt:h,watchdog:null};this.current=i;let j=Date.now();return b.onmessage=a=>{let b;if(this.current===i){j=Date.now();try{b=JSON.parse(a.data)}catch{return}if("heartbeat"!==b.type){if("connected"===b.type){h.ready=!0,h.succeed(),this.stopRetrying();let a=this.options.staleAfterMs;a&&null===i.watchdog&&(i.watchdog=setInterval(()=>{Date.now()-j>a&&this.fail(i,new eY("closed"))},Math.max(1e3,Math.floor(a/3))))}else if("startup_error"===b.type){let a="string"==typeof b.errorMessage?b.errorMessage:void 0;this.fail(i,new eY("startup_error",a));return}this.options.onEvent(b)}}},b.onerror=()=>{this.fail(i,new eY("closed"))},i}fail(a,b){this.current===a&&(this.discard(a,b),"startup_error"===b.status?this.stopRetrying():this.scheduleRetry(a.sessionId))}discard(a,b){null!==a.watchdog&&clearInterval(a.watchdog),a.watchdog=null,a.attempt.fail(b),a.source.close(),this.current===a&&(this.current=null)}scheduleRetry(a){if(!this.options.shouldMaintain(a)||this.retry?.sessionId===a)return;this.clearRetry();let b=setTimeout(()=>{this.retry?.timer===b&&(this.retry=null,this.maintain(a))},this.options.reconnectDelayMs);this.retry={sessionId:a,timer:b}}stopRetrying(){this.retryGeneration+=1,this.clearRetry()}clearRetry(){this.retry&&clearTimeout(this.retry.timer),this.retry=null}}function e$(a){return"u"<typeof document?()=>{}:(document.addEventListener("visibilitychange",a),()=>document.removeEventListener("visibilitychange",a))}let e_=()=>"hidden"===document.visibilityState,e0=()=>!1;function e1(a){return("tool_execution_start"===a.type||"tool_execution_update"===a.type||"tool_execution_end"===a.type)&&"string"==typeof a.parentToolCallId&&""!==a.parentToolCallId}function e2(a){var b;return("message_start"===a.type||"message_end"===a.type)&&"object"==typeof(b=a.message)&&null!==b&&!Array.isArray(b)&&"system"===a.message.role}function e3(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}var e4=c(73912);function e5(a,b,c,d=8){return a+b>=c-d}let e6={isStreaming:!1,streamingMessage:null};function e7(a,b,c){let d=a.streamingMessage;if(!d||!Number.isInteger(b)||b<0)return a;let e=[...d.content],f=c(e[b]);return f?(e[b]=f,{isStreaming:!0,streamingMessage:{...d,content:e}}):a}function e8(){let a=e6,b=new Set;return{getState:()=>a,dispatch(c){let d=function(a,b){switch(b.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...a,isStreaming:!0};case"snapshot":{let c=eJ(b.message,{includeStreamingRawInput:!0});return"assistant"===c.role?{isStreaming:!0,streamingMessage:c}:a}case"delta":var c=b.event;switch(c.type){case"text_start":return e7(a,c.contentIndex,()=>({type:"text",text:""}));case"text_delta":return e7(a,c.contentIndex,a=>a?.type==="text"?{...a,text:a.text+c.delta}:null);case"text_end":return e7(a,c.contentIndex,a=>({...a?.type==="text"?a:{},type:"text",text:c.content}));case"thinking_start":return e7(a,c.contentIndex,()=>({type:"thinking",thinking:""}));case"thinking_delta":return e7(a,c.contentIndex,a=>a?.type==="thinking"?{...a,thinking:a.thinking+c.delta}:null);case"thinking_end":return e7(a,c.contentIndex,a=>({...a?.type==="thinking"?a:{},type:"thinking",thinking:c.content}));case"toolcall_start":return e7(a,c.contentIndex,a=>a?.type==="toolCall"?{...a,toolCallId:c.id??a.toolCallId,toolName:c.toolName??a.toolName,rawInput:""}:"string"!=typeof c.toolName?null:{type:"toolCall",toolCallId:c.id??"",toolName:c.toolName,input:{},rawInput:""});case"toolcall_delta":return e7(a,c.contentIndex,a=>a?.type==="toolCall"?{...a,toolCallId:c.id||a.toolCallId,toolName:c.toolName||a.toolName,rawInput:(a.rawInput??"")+c.delta}:null);case"toolcall_end":return e7(a,c.contentIndex,()=>({type:"toolCall",toolCallId:c.toolCall.id,toolName:c.toolCall.name,input:c.toolCall.arguments}));default:return a}case"end":return e6;default:return a}}(a,c);if(d!==a)for(let c of(a=d,b))c()},subscribe:a=>(b.add(a),()=>{b.delete(a)})}}function e9(a){return{steering:a?.steering??[],followUp:a?.followUp??[]}}function fa(a){return a&&"auto"!==a?a:null}let fb=new Map,fc=null;function fd(a){return new Promise(b=>setTimeout(b,a))}function fe(a){let b=a.findIndex(a=>!a.exiting);return -1===b?a:a.map((a,c)=>c===b?{...a,exiting:!0}:a)}function ff(a,b){switch(b.type){case"add":if(a.visible.some(a=>a.exiting)||a.visible.length>=5)return{visible:a.visible.some(a=>a.exiting)?a.visible:fe(a.visible),pending:[...a.pending,b.notice]};return{...a,visible:[...a.visible,b.notice]};case"mark_oldest_exiting":return{...a,visible:fe(a.visible)};case"remove":return function(a,b){let c=a,d=b;for(;d.length>0&&c.length<5;){let[a,...b]=d;c=[...c,a],d=b}return d.length>0&&!c.some(a=>a.exiting)&&(c=fe(c)),{visible:c,pending:d}}(a.visible.filter(a=>a.id!==b.id),a.pending);default:return a}}function fg(a,b){return a&&"object"==typeof a?"number"!=typeof a.tokensBefore||"number"!=typeof a.estimatedTokensAfter?null:{reason:b,tokensBefore:a.tokensBefore,estimatedTokensAfter:a.estimatedTokensAfter}:null}function fh(a,b){let[c,d]=(0,q.useState)(()=>b(a.getState()));return c}let fi=a=>a.isStreaming,fj=a=>!!a.streamingMessage?.content.length,fk=a=>a.streamingMessage;var fl=c(42978);function fm({label:a}){let[b,c]=(0,q.useState)(()=>null);if(!b)return null;let d=a(b.latestVersion);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"new-session-meta-arrow","aria-hidden":"true",children:"→"}),(0,p.jsxs)("a",{className:"new-session-update",href:b.releaseUrl,target:"_blank",rel:"noopener noreferrer",title:d,"aria-label":d,children:["v",b.latestVersion,(0,p.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,p.jsx)("path",{d:"M7 17 17 7"}),(0,p.jsx)("path",{d:"M7 7h10v10"})]})]})]})}function fn({messageCount:a,toolCallCount:b,durationMs:c,cacheMisses:d,defaultExpanded:e=!1,reveal:f=!1,children:g,t:h}){let[i,j]=(0,q.useState)(e),k=[`${a} ${h(1===a?"chat.message":"chat.messages")}`];b>0&&k.push(`${b} ${h(1===b?"chat.toolCall":"chat.toolCalls")}`),void 0!==c&&k.push(h("chat.turnDuration",{time:(0,cW.J)(c)}));let l=d&&!(i||f)?(0,fl.YL)(h,d):void 0;return(0,p.jsxs)("div",{style:{marginBottom:14},children:[(0,p.jsxs)("button",{type:"button","aria-expanded":i||f,"aria-label":[h("chat.processDetails"),...k,...l?[l]:[]].join(" \xb7 "),onClick:()=>j(a=>!a),style:{display:"flex",alignItems:"center",gap:8,width:"auto",maxWidth:"100%",minHeight:24,padding:"2px 0",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},title:h(i?"chat.collapseProcess":"chat.expandProcess"),children:[(0,p.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:i?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,p.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,p.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[k.join(" \xb7 "),l&&(0,p.jsx)("span",{style:{color:fl.lV},children:` \xb7 ${l}`})]})]}),(i||f)&&(0,p.jsx)("div",{style:{marginTop:8},children:g})]})}function fo({session:a,searchTarget:b,onSearchTargetHandled:d,initialScrollPosition:e,onScrollPositionChange:f,sessionRunning:g,newSessionCwd:h,newSessionDraftKey:i,newSessionContextBar:j,initialNewSessionChoices:k,onNewSessionChoicesChange:l,onAgentEnd:m,onToolEnd:n,onAttentionNeeded:o,onSessionCreated:r,onSessionForked:s,modelsRefreshKey:t,chatInputRef:u,onBranchDataChange:v,onSystemPromptChange:w,onSystemToolsChange:x,onSystemInfoLoaderChange:y,onSessionStatsChange:z,onSessionStatsPanelOpen:A,onOpenSettings:B,onContextUsageChange:C,onOpenFile:D,onFilesUploaded:E,onOpenSubagent:F,onEnterSubagent:G,onAskInNewChat:H,quoteSelectionEnabled:I=!1,initialPrompt:J,onInitialPromptConsumed:K,soundEnabled:L=!0,onSoundToggle:M,playDoneSound:N=()=>{},unlockAudio:O,holdAudio:P}){var Q;let R,{t:S}=(0,aG.s)(),T=(0,aH.a)(),U=a?.relation?.kind!=="subagent",V=(0,q.useRef)(N);V.current=N;let W=(0,q.useRef)(L);W.current=L,(0,q.useRef)(!1);let X=(0,q.useCallback)(a=>{U&&W.current&&!a.aborted&&V.current(),m?.(a)},[U,m]),Y=(0,q.useRef)(b?null:e??null),[Z,$]=(0,q.useState)(()=>{let a=Y.current;return a&&!a.atBottom?a:null}),[_,aa]=(0,q.useState)(!1),{loading:ab,error:ac,messages:ad,activeToolResults:ae,entryIds:af,messageKeys:ag,historyCursor:ah,hasEarlierMessages:ai,earlierTurnCount:aj,streamingStore:ak,agentRunning:al,bashRunning:am,pendingBash:an,modelNames:ao,modelList:ap,modelError:aq,modelScopeWarnings:ar,modelThinkingLevels:as,modelThinkingLevelMaps:at,toolPreset:au,thinkingLevel:av,retryInfo:aw,contextUsage:ax,forkingEntryId:ay,isCompacting:az,compactError:aA,compactResult:aB,displayModel:aC,modelSwitching:aD,sessionStats:aE,slashCommands:aF,slashCommandsLoading:aI,queuedMessages:aJ,notices:aK,extensionDialog:aL,waitingExtensionDialogCount:aM,extensionCustomUi:aN,waitingExtensionCustomUiCount:aO,extensionStatuses:aP,extensionWidgets:aR,respondToExtensionUi:aS,sendExtensionCustomInput:aT,setNoticePaused:aU,addNotice:aV,isAutoModelSelection:aW,isAutoThinkingSelection:aX,defaultModel:aY,savedDefaultThinkingLevel:aZ,agentPhase:a$,isNew:a_,editEntryId:a0,showScrollToBottom:a1,sessionIdRef:a2,scrollContainerRef:a3,lastUserMsgRef:a4,promptAnchorActive:a9,handleSend:ba,handleAbort:bb,handleFork:bc,handleEditContent:bd,cancelEdit:be,handleModelChange:bf,handleCompact:bg,handleSteer:bh,handleFollowUp:bi,handlePromptWithStreamingBehavior:bj,handleAbortCompaction:bk,dismissCompactError:bl,handleRecallQueue:bm,handleBuiltinSlashCommand:bn,handleToolPresetChange:bo,handleThinkingLevelChange:bp,handleSetDefaultModel:bq,handleSetDefaultThinkingLevel:br,loadSlashCommands:bs,scrollUserMsgToTop:bt,loadContext:bu,activeLeafId:bv,scrollToBottom:bw,scrollToMessage:bx}=function(a){let{session:b,newSessionCwd:d,newSessionDraftKey:e,onAgentEnd:f,onToolEnd:g,onAttentionNeeded:h,onSessionCreated:i,onSessionForked:j,modelsRefreshKey:k,onBranchDataChange:l,onSystemPromptChange:m,onSystemToolsChange:n,onSystemInfoLoaderChange:o,onSessionStatsPanelOpen:p,onOpenSettings:r}=a,s=null===b&&null!==d,t=s?a.initialNewSessionChoices??null:null,[u,v]=(0,q.useState)(null),[w,x]=(0,q.useState)(!s),[y,z]=(0,q.useState)(null),[A,B]=(0,q.useState)(null),[C,D]=(0,q.useState)([]),[E,F]=(0,q.useState)(new Map),[G,H]=(0,q.useState)([]),[I,J]=(0,q.useState)(()=>new Map),[K,L]=(0,q.useState)(null),[M,N]=(0,q.useState)(!1),[O,P]=(0,q.useState)(0),[Q]=(0,q.useState)(e8),R=Q.dispatch,[S,T]=(0,q.useState)(!1),[U,V]=(0,q.useState)(!1),[W,X]=(0,q.useState)(null),[Y,Z]=(0,q.useState)({}),[$,_]=(0,q.useState)([]),[aa,ab]=(0,q.useState)(null),[ac,ad]=(0,q.useState)([]),[ae,af]=(0,q.useState)({}),[ag,ah]=(0,q.useState)({}),[ai,aj]=(0,q.useState)(()=>t?.model??null),[ak,al]=(0,q.useState)(null),[am,an]=(0,q.useState)(eS.Q8),[ao,ap]=(0,q.useState)(()=>t?.thinkingLevel??null),[aq,ar]=(0,q.useState)(null),[as,at]=(0,q.useState)(null),[au,av]=(0,q.useState)(null),[aw,ax]=(0,q.useState)(null),[ay,az]=(0,q.useState)(null),[aA,aB]=(0,q.useState)(null),[aC,aD]=(0,q.useState)(null),aE=(0,q.useRef)(0),aF=(0,q.useRef)(0),[aG,aH]=(0,q.useState)(null),[aI,aJ]=(0,q.useState)(null),[aK,aL]=(0,q.useState)(null),[aM,aN]=(0,q.useState)(null),[aO,aP]=(0,q.useState)(null),[aQ,aR]=(0,q.useState)(!1),[aS,aT]=(0,q.useState)(!1),[aU,aV]=(0,q.useState)(!0),[aW,aX]=(0,q.useState)(null),[aY,aZ]=(0,q.useState)(null),[a$,a_]=(0,q.useState)(null),[a0,a1]=(0,q.useState)(!1),[a2,a3]=(0,q.useState)(!1),[a4,a5]=(0,q.useState)([]),[a6,a7]=(0,q.useState)(!1),[a8,a9]=(0,q.useReducer)(ff,{visible:[],pending:[]}),[ba,bb]=(0,q.useState)(null),[bc,bd]=(0,q.useState)([]),[be,bf]=(0,q.useState)([]),[bg,bh]=(0,q.useState)([]),[bi,bj]=(0,q.useState)([]),[bk,bl]=(0,q.useState)({steering:[],followUp:[]}),bm=(0,q.useRef)(null),bn=(0,q.useRef)(null),bo=(0,q.useRef)(0),bp=(0,q.useRef)(!1),bq=(0,q.useRef)(!1),[br,bs]=(0,q.useState)(0),bt=(0,q.useRef)(null),bu=(0,q.useRef)(()=>{}),bv=(0,q.useRef)(b?.id??null),bw=(0,q.useRef)(b?.id??null),bx=(0,q.useRef)(!1),by=(0,q.useRef)(!1),bz=(0,q.useRef)(!1),bA=(0,q.useRef)(!1),bB=(0,q.useRef)(-1),bC=(0,q.useRef)(!1),bD=(0,q.useRef)(0),bE=(0,q.useRef)(null),bF=(0,q.useRef)(!!a.deferInitialScroll),bG=(0,q.useRef)(null),bH=(0,q.useRef)(!1),bI=(0,q.useRef)(!0),bJ=(0,q.useRef)(0),bK=(0,q.useRef)(null),bL=(0,q.useRef)(void 0),bM=(0,q.useRef)(void 0),bN=(0,q.useRef)(null),bO=(0,q.useRef)(null),bP=(0,q.useRef)([]),bQ=(0,q.useRef)(null),bR=(0,q.useRef)(0),bS=(0,q.useRef)(!1),bT=(0,q.useRef)(t?.model??null),bU=(0,q.useRef)(t?.thinkingLevel??null),bV=(0,q.useRef)({}),bW=(0,q.useRef)(null),bX=(0,q.useRef)(0),bY=(0,q.useRef)(null),bZ=(0,q.useRef)(!1),b$=(0,q.useRef)(new Map),b_=(0,q.useRef)(!0),b0=(0,q.useRef)(new Map),b1=(0,q.useRef)(null),b2=(0,q.useRef)([]),b3=(0,q.useRef)([]),b4=(0,q.useRef)(null),b5=(0,q.useRef)(null),b6=(0,q.useRef)(!1),b7=(0,q.useRef)(0);bw.current=b?.id??null,b1.current=u,b2.current=C,b3.current=G,b4.current=A,b5.current=K,b6.current=M,b7.current=O,bm.current||(bm.current=new eZ({createSource:a=>new EventSource(`/api/agent/${encodeURIComponent(a)}/events`),onEvent:a=>bE.current?.(a),shouldMaintain:a=>b_.current&&bv.current===a&&(by.current||bp.current||bw.current===a&&!bq.current),readinessTimeoutMs:6e4,reconnectDelayMs:1e3,staleAfterMs:75e3,onUnexpectedError:a=>{console.error("Failed to maintain the agent event stream:",a)}}));let b8=a.setToolPreset??an;b?.id,a.onNewSessionChoicesChange;let b9=(0,q.useCallback)((a="smooth")=>{let b=bN.current;b&&(b.scrollTo({top:b.scrollHeight,behavior:a}),bJ.current=b.scrollTop)},[]),ca=aK??aM??u?.context.model??aO??null,cb=s?ai??ak:ca??(u?.context.messages.length===0?ak:null),cc=fa(u?.context.thinkingLevel&&"off"!==u.context.thinkingLevel?u.context.thinkingLevel:null),cd=s?ao??aq:au??aw??cc??(u?.context.messages.length===0?aq:null),ce=b?.id??e??void 0,cf=(0,q.useCallback)(a=>{aN(a?.model?{provider:a.model.provider,modelId:a.model.id}:null),a?.thinkingLevel!==void 0&&ax(fa(a.thinkingLevel))},[]),cg=(0,q.useCallback)(a=>{if(!a)return;let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=b$.current.get(b);if(!a)break;b=a}return b},[]),ch=(0,q.useCallback)((b,c,d)=>{let f=c?.map(({data:a,mimeType:b})=>({data:a,mimeType:b})),g=cg(d);if(!b_.current&&!bS.current&&d===e)return;let h=a.chatInputRef?.current;if(h)h.restoreSubmission(b,f,g);else{let a,c;g&&(c=c5(b,f,(a=c1(g)??{value:"",images:[]}).value,a.images),c2(g,c))}},[e,a.chatInputRef,cg]),[ci,cj]=(0,q.useState)(()=>{let a=b?.id;return a&&!c1(a)&&fb.delete(a),a&&fb.get(a)||null}),ck=(0,q.useCallback)(a=>{b?.id&&(a?fb.set(b.id,a):fb.delete(b.id),cj(a))},[b?.id]),cl=(0,q.useCallback)((c,d)=>{b?.id&&(a.chatInputRef?.current?.replaceMessage(c),ck(d))},[a.chatInputRef,b?.id,ck]),cm=(0,q.useCallback)(()=>ck(null),[ck]),cn=(0,q.useMemo)(()=>{let a=u?.totalActiveMs,c=aC&&aC.sessionId===u?.sessionId?aC.value:void 0,d=void 0===a&&void 0===c?void 0:Math.max(a??0,c??0);if(ba)return{...ba,totalActiveMs:d,...aA?{contextUsage:aA}:{}};let e=u?.stats,f=function(a,b,c){let d=eU(c);if(!a)return d;let e=eU(b),f=(a,b)=>Math.max(0,a-b),g={input:a.tokens.input+f(d.tokens.input,e.tokens.input),output:a.tokens.output+f(d.tokens.output,e.tokens.output),cacheRead:a.tokens.cacheRead+f(d.tokens.cacheRead,e.tokens.cacheRead),cacheWrite:a.tokens.cacheWrite+f(d.tokens.cacheWrite,e.tokens.cacheWrite),total:0};return g.total=g.input+g.output+g.cacheRead+g.cacheWrite,{userMessages:a.userMessages+f(d.userMessages,e.userMessages),assistantMessages:a.assistantMessages+f(d.assistantMessages,e.assistantMessages),toolCalls:a.toolCalls+f(d.toolCalls,e.toolCalls),toolResults:a.toolResults+f(d.toolResults,e.toolResults),totalMessages:a.totalMessages+f(d.totalMessages,e.totalMessages),tokens:g,cost:a.cost+f(d.cost,e.cost)}}(e,u?.context.messages??[],C);return 0!==f.tokens.total||0!==C.length||e?{sessionFile:u?.filePath||void 0,sessionId:bv.current??b?.id??"",sessionName:b?.name,...f,totalActiveMs:d,...aA?{contextUsage:aA}:{}}:null},[C,ba,aA,aC,u?.sessionId,u?.context.messages,u?.filePath,u?.totalActiveMs,u?.stats,b?.id,b?.name]),co=(0,q.useCallback)((a,b,c,d)=>{b_.current&&bv.current===b&&bX.current===c&&!(d<=aF.current)&&(aF.current=d,a?.contextUsage!==void 0&&aB(a.contextUsage??null),"number"==typeof a?.totalActiveMs&&aD({sessionId:b,value:a.totalActiveMs}))},[]),cp=(0,q.useCallback)(async a=>{let b=bX.current,c=++aE.current;try{let d=await fetch(eM(a));if(!d.ok)return;let e=await d.json();co(e.state,a,b,c)}catch{}},[co]),cq=(0,q.useCallback)(async(a,b=!1,c=!1,d)=>{let e=d?.force?`force:${a}`:a,f=d?.force?void 0:b0.current.get(e);if(f)return await f;let g=(async()=>{let e=!1;try{let f;b&&x(!0);let g=new URLSearchParams({deferThinking:"1",deferMedia:"1",tree:"summary"});d?.force&&g.set("force","1");let h=await fetch(`/api/sessions/${encodeURIComponent(a)}?${g}`);if(404===h.status)return b&&(v(null),B(null),D([]),H([]),L(null),N(!1),P(0),z(null)),eO().delete(a),null;if(!h.ok)throw Error(`HTTP ${h.status}`);let i=await h.json();if(bv.current!==a)return null;let j=(f=eO().get(a))?Date.now()-f.savedAt>6e5?(eO().delete(a),null):(eO().delete(a),eO().set(a,f),f):null,k=!!(i.snapshotRevision&&j?.revision===i.snapshotRevision&&j.entryIds.length>=(i.context.entryIds??[]).length),l=k?b2.current:i.context.messages;if(v(k?{...i,context:{...i.context,messages:b2.current,entryIds:b3.current,oldestEntryId:b5.current,hasMore:b6.current,turnsBefore:b7.current}}:i),B(i.leafId),k)eR({sessionId:a,revision:i.snapshotRevision,messages:b2.current,entryIds:b3.current,leafId:i.leafId,oldestEntryId:b5.current,hasMore:b6.current,turnsBefore:b7.current,summaryTree:i.tree,thinkingLevel:i.context.thinkingLevel,model:i.context.model,stats:i.stats,totalActiveMs:i.totalActiveMs,loadedEntryIds:b3.current});else{let a={messages:b2.current,entryIds:b3.current},b={messages:l,entryIds:i.context.entryIds??[]};J(c=>(function(a,b){let c=new Set(b.entryIds),d=new Map([...a.aliases].filter(([a])=>c.has(a))),e=a.entryIds.length,f=a.entryIds[e-1],g=void 0===f?0:b.entryIds.indexOf(f)+1;if(0===g&&void 0!==f)return d;for(let c=0;e+c<a.messages.length;c++){var h,i;let j=b.entryIds[g+c];if(void 0===j||(h=a.messages[e+c],i=b.messages[g+c],h.role!==i.role||("user"===h.role?eW(h)!==eW(i):"custom"===h.role?h.customType!==i.customType:h.timestamp!==i.timestamp)))break;d.set(j,eX(f,c))}return d})({...a,aliases:c},b)),D(b.messages),H(b.entryIds),L(i.context.oldestEntryId),N(i.context.hasMore),P(i.context.turnsBefore??0)}if(bx.current=void 0!==i.toolNames,b8(void 0!==i.toolNames?(0,eS.YO)(i.toolNames):eS.Q8),aL(a=>bZ.current?a:null),av(null),z(null),"summary"===i.treeFormat&&i.snapshotRevision&&eR({sessionId:a,revision:i.snapshotRevision,messages:l,entryIds:i.context.entryIds??[],leafId:i.leafId,oldestEntryId:i.context.oldestEntryId,hasMore:i.context.hasMore,turnsBefore:i.context.turnsBefore??0,summaryTree:i.tree,thinkingLevel:i.context.thinkingLevel,model:i.context.model,stats:i.stats,totalActiveMs:i.totalActiveMs,loadedEntryIds:i.context.entryIds??[]}),i.wrapperRebuilt&&(bm.current?.close(),bm.current?.maintain(a)),!c&&i.context.thinkingLevel&&"off"!==i.context.thinkingLevel&&ax(fa(i.context.thinkingLevel)),e=!0,b&&x(!1),!c)return null;try{let b=bX.current,c=++aE.current,d=await fetch(`/api/sessions/${encodeURIComponent(a)}/state`);if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.json();if(bv.current!==a)return null;let f=e.state;return cf(f),f?(co(f,a,b,c),void 0!==f.systemPrompt&&aH(f.systemPrompt??null),void 0!==f.extensionStatuses&&bh(f.extensionStatuses??[]),void 0!==f.extensionWidgets&&bj(f.extensionWidgets??[]),void 0!==f.queuedMessages&&bl(e9(f.queuedMessages)),void 0!==f.autoCompactionEnabled&&aV(f.autoCompactionEnabled??!0)):e.running||bl({steering:[],followUp:[]}),e}catch(a){return console.error("Failed to load agent state:",a),null}}catch(a){return z(String(a)),"error"}finally{b&&!e&&x(!1)}})();return d?.force||b0.current.set(e,g),g.finally(()=>{b0.current.get(e)===g&&b0.current.delete(e)}),await g},[co,b8,cf]),cr=(0,q.useCallback)(async(a,b,c,d)=>{try{let e=new URLSearchParams({deferThinking:"1",deferMedia:"1"});b&&e.set("leafId",b),c&&e.set("before",c),d?.tail&&e.set("tail",String(d.tail));let f=`/api/sessions/${encodeURIComponent(a)}/context?${e}`,g=await fetch(f,{signal:d?.signal});if(!g.ok)throw Error(`HTTP ${g.status}`);let h=await g.json();if(bv.current!==a||d?.signal?.aborted||!b_.current)return;return L(h.context.oldestEntryId),N(h.context.hasMore),P(h.context.turnsBefore??0),v(b=>{if(!b||b.sessionId!==a)return b;let d=c?{...b.context,messages:[...h.context.messages,...b.context.messages],entryIds:[...h.context.entryIds,...b.context.entryIds],oldestEntryId:h.context.oldestEntryId,hasMore:h.context.hasMore,turnsBefore:h.context.turnsBefore}:h.context;return{...b,context:d}}),c?(D(a=>[...h.context.messages,...a]),H(a=>[...h.context.entryIds,...a])):(D(h.context.messages),H(h.context.entryIds??[])),h.context}catch(a){d?.signal?.aborted||console.error("Failed to load context:",a)}},[]),cs=(0,q.useCallback)(async a=>{try{let b=await eN(a,{type:"get_tools"});if(!b||!b_.current||bv.current!==a)return null;let{getPresetFromTools:d}=await Promise.resolve().then(c.bind(c,99305));return b8(bx.current?d(b):eS.Q8),n?.(b),b}catch(a){return console.error("Failed to load tools:",a),null}},[n,b8]),ct=(0,q.useCallback)((b=0,c="(no messages)")=>{let f=bv.current;if(s&&d&&f&&!bS.current&&(bS.current=!0,e)){if(e!==f){b$.current.set(e,f);let b=a.chatInputRef?.current;b?b.rekeyDraft(e,f):c6(e,f)}i?.({id:f,path:"",cwd:d,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:b,firstMessage:c,transient:!0},e)}},[s,d,e,i,a.chatInputRef]),cu=(0,q.useCallback)(async()=>{if(bv.current||!s||!d)return bv.current;if(bO.current)return bO.current;let a=(async()=>{let a=bT.current,b=bU.current;a&&aP(a);let c=(0,eS.xG)(am);bx.current=void 0!==c;let e=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:d,type:"ensure_session",...void 0!==c?{toolNames:c}:{},...a?{provider:a.provider,modelId:a.modelId}:{},...b?{thinkingLevel:b}:{}})});if(!e.ok){let a=await e.json().catch(()=>null);throw Error("string"==typeof a?.error?a.error:`HTTP ${e.status}`)}let f=await e.json(),g=f.sessionId;return bv.current=g,f.model&&bT.current===a&&(aP(f.model),a||al(f.model)),f.thinkingLevel&&bU.current===b&&(ax(fa(f.thinkingLevel)),b||ar(fa(f.thinkingLevel))),g})();bO.current=a;try{return await a}finally{bO.current=null}},[s,d,am]);(0,q.useCallback)(async()=>{let a=bv.current??await cu();if(!a)return;let[b]=await Promise.all([eN(a,{type:"get_state"}),cs(a)]);b_.current&&bv.current===a&&(cf(b),aH(b.systemPrompt??""))},[cu,cs,cf]);let cv=(0,q.useCallback)(a=>{bP.current=a,a5(a)},[]),cw=(0,q.useCallback)(()=>{bR.current+=1,bQ.current=null,cv([])},[cv]),cx=(0,q.useCallback)(()=>{let a=++bR.current,b=(async()=>{let b=bv.current??await cu();if(!b)return bR.current===a&&cv([]),[];a7(!0);try{let c=await eN(b,{type:"get_commands"}),d=c?.commands??[];return bR.current===a&&cv(d),d}catch(b){return console.error("Failed to load slash commands:",b),bR.current===a&&cv([]),null}finally{bR.current!==a&&bQ.current||a7(!1)}})();bQ.current=b;let c=()=>{bQ.current===b&&(bQ.current=null)};return b.then(c,c),b},[cu,cv]),cy=(0,q.useCallback)(async()=>await cx()??[],[cx]),cz=(0,q.useCallback)(async()=>{let a=bQ.current,b=bP.current;return!a&&b.length>0?b:await (a??cx()).catch(()=>null)??(b.length>0?b:null)},[cx]),cA=(0,q.useCallback)(()=>{bo.current+=1,bp.current=!1,bn.current&&(clearTimeout(bn.current),bn.current=null)},[]),cB=(0,q.useCallback)(()=>{bm.current?.close()},[]),cC=(0,q.useCallback)(a=>bm.current.ensureConnected(a),[]),cD=(0,q.useCallback)(a=>{bm.current.maintain(a)},[]);(0,q.useCallback)(a=>{let b=bt.current;if(b?.sid===a)return b.promise;let c=new AbortController,d=setTimeout(()=>c.abort(),5e3),e={sid:a,promise:Promise.resolve(null)};return e.promise=(async()=>{try{let b=await fetch((fc??=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,`/api/agent/${encodeURIComponent(a)}/lease?holder=${fc}`),{method:"POST",cache:"no-store",signal:c.signal});return b.ok?await b.json():null}catch(a){return c.signal.aborted||a instanceof TypeError?"unanswered":null}finally{clearTimeout(d),bt.current===e&&(bt.current=null)}})(),bt.current=e,e.promise},[]),S||U||aS||0!==bc.length||be.length;let cE=(0,q.useCallback)(async(a,b)=>{let c=bv.current;if(bd(b=>eH(b,a.id)),c)try{await eN(c,{type:"extension_ui_response",id:a.id,...b})}catch(a){console.error("Failed to send extension UI response:",a)}},[]),cF=(0,q.useCallback)(async(a,b)=>{let c=bv.current;if(c)try{await eN(c,{type:"extension_ui_input",id:a.id,data:b})}catch(a){console.error("Failed to send extension custom UI input:",a)}},[]),cG=(0,q.useCallback)(a=>{let b=a.message.trim();b&&a9({type:"add",notice:{id:a.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:b,type:a.type??"info"}})},[]),cH=(0,q.useCallback)(b=>{switch(eF(b)&&h?.(b),b.method){case"select":case"confirm":case"input":case"editor":bd(a=>a.some(a=>a.id===b.id)?a:[...a,b]);break;case"notify":cG({id:b.id,message:b.message,type:b.notifyType??"info"});break;case"setStatus":bh(a=>{let c=a.filter(a=>a.key!==b.statusKey);return void 0!==b.statusText?[...c,{key:b.statusKey,text:b.statusText}]:c});break;case"setWidget":bj(a=>(function(a,b,c,d="aboveEditor"){if(void 0===c)return a.filter(a=>a.key!==b);let e={key:b,lines:c,placement:d},f=a.findIndex(a=>a.key===b);return -1===f?[...a,e]:a.map((a,b)=>b===f?e:a)})(a,b.widgetKey,b.widgetLines,b.widgetPlacement));break;case"setTitle":b.title&&(document.title=b.title);break;case"set_editor_text":a.chatInputRef?.current?.insertText(b.text);break;case"custom":bf(a=>{let c;return b.closed?eH(a,b.id):-1===(c=a.findIndex(a=>a.id===b.id))?[...a,b]:a[c]===b?a:a.map((a,d)=>d===c?b:a)})}},[cG,h,a.chatInputRef]),cI=(0,q.useCallback)(()=>{let a=by.current;return by.current=!1,T(!1),a_(null),az(null),F(new Map),R({type:"end"}),a},[R]),cJ=(0,q.useCallback)((a,b=!1)=>bB.current!==a&&(bB.current=a,f?.({aborted:b}),!0),[f]),cK=(0,q.useCallback)(a=>{if(bw.current===a)return void cA();cA(),bp.current=!0;let b=bo.current,c=async()=>{if(b===bo.current&&bv.current===a&&bp.current)try{let d=await fetch(eM(a));if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.json();if(b!==bo.current||bv.current!==a||!bp.current)return;let f=e.state;if(cf(f),e.running&&f&&(f.isStreaming||f.isPromptRunning)){bp.current=!1,bn.current=null,bz.current=!!f?.isStreaming,bA.current=!!f?.isPromptRunning,by.current=!0,T(!0),a_(f?.isStreaming?{kind:"waiting_model"}:{kind:"running_command"});return}if(e.running&&f?.isCompacting){aT(!0),bn.current=setTimeout(()=>void c(),600);return}bp.current=!1,bn.current=null,cB()}catch{if(b!==bo.current||bv.current!==a||!bp.current)return;bn.current=setTimeout(()=>void c(),600)}};bn.current=setTimeout(()=>void c(),3e4)},[cA,cB,cf]),cL=(0,q.useCallback)(async(a=bv.current,b=bX.current)=>{if(bX.current===b)try{a&&await cq(a)}finally{if(bX.current!==b)return;let c=bA.current,d=bz.current;bA.current=!1,bz.current=!1,bY.current=null;let e=cI();c?cJ(b):d&&e&&f?.({aborted:!1}),a&&cK(a)}},[cq,cJ,f,cK,cI]),cM=(0,q.useCallback)(async(a,b)=>{await fd(800);let c=Date.now();for(;by.current&&Date.now()-c<2e4;){if(void 0!==b&&bX.current!==b)return;try{let c=await fetch(eM(a));if(c.ok){let d=await c.json(),e=d.state;if(cf(e),!d.running||!e||!e.isStreaming&&!e.isPromptRunning)return void await cL(a,b)}}catch{}await fd(600)}},[cL,cf]),cN=(0,q.useCallback)(async a=>{let b=bD.current+1;for(bD.current=b;bC.current&&bD.current===b&&bv.current===a;){await fd(1e3);try{let c=await fetch(eM(a));if(!c.ok)continue;let d=await c.json();if(cf(d.state),d.state?.isBashRunning)continue;if(await cq(a),bD.current!==b||bv.current!==a)return;bC.current=!1,V(!1),X(null);return}catch{}}},[cq,cf]),cO=(0,q.useCallback)(async a=>{if(!by.current||bv.current!==a)return;let b=bX.current,c=++aE.current;try{let d=await fetch(eM(a));if(!d.ok)return;let e=await d.json();if(bv.current!==a||bX.current!==b)return;let f=e.state;if(co(f,a,b,c),cf(f),aT(f?.isCompacting??!1),aV(f?.autoCompactionEnabled??!0),bl(e9(f?.queuedMessages)),e.running&&f&&(f.isStreaming||f.isPromptRunning||f.isCompacting)){bz.current=!!f.isStreaming,bA.current=!!f.isPromptRunning;return}if(!by.current)return;f&&(void 0!==f.extensionStatuses&&bh(f.extensionStatuses??[]),void 0!==f.extensionWidgets&&bj(f.extensionWidgets??[]),fetch(`/api/agent/${encodeURIComponent(a)}`).then(a=>a.ok?a.json():null).then(b=>{b&&b_.current&&bv.current===a&&b.state?.systemPrompt!==void 0&&aH(b.state.systemPrompt??null)}).catch(()=>{})),await cL(a,b)}catch{}},[co,cL,cf]);bE.current=(0,q.useCallback)(a=>{switch(a.type){case"connected":if(R({type:"end"}),Array.isArray(a.pendingExtensionUiIds)){let b=new Set(a.pendingExtensionUiIds);bd(a=>eG(a,b)),bf(a=>eG(a,b))}!0===a.isStreaming&&(cA(),bz.current=!0,by.current=!0,T(!0),a_({kind:"waiting_model"})),bv.current&&cp(bv.current);break;case"agent_start":cA(),bz.current=!0,by.current=!0,T(!0),a_({kind:"waiting_model"}),az(null),R({type:"start"});break;case"agent_end":if(!by.current)break;if(a_(null),az(null),R({type:"end"}),bv.current){let a=bv.current,b=bX.current,c=++aE.current;cq(a),fetch(`/api/agent/${encodeURIComponent(a)}`).then(a=>a.ok?a.json():null).then(d=>{d&&b_.current&&bv.current===a&&bX.current===b&&(cf(d.state),co(d.state,a,b,c),d.state?.systemPrompt!==void 0&&aH(d.state.systemPrompt??null),d.state?.extensionStatuses!==void 0&&bh(d.state.extensionStatuses??[]),d.state?.extensionWidgets!==void 0&&bj(d.state.extensionWidgets??[]),bl(e9(d.state?.queuedMessages)))}).catch(()=>{})}break;case"agent_settled":{let b=bz.current;if(bz.current=!1,!b||bA.current)break;let c=bv.current,d=cI();aT(!1),c&&(cq(c),cK(c)),d&&f?.({aborted:!0===a.aborted});break}case"prompt_done":{let b=bX.current,c=bA.current;bA.current=!1,bY.current=null;let d=cJ(b,!0===a.aborted);if(!c&&!d)break;let e=bv.current;e&&cq(e),!bz.current&&(cI(),e&&cK(e))}break;case"prompt_error":cG({type:"error",message:a.errorMessage??"Command failed"});break;case"extension_error":cG({type:"error",message:a.error??"Extension command failed"});break;case"message_start":case"message_update":if(!by.current||e2(a))break;if("message_start"===a.type){let b=a.message;if(b?.role==="user")break;b?.role==="assistant"?(R({type:"snapshot",message:b}),b.content.length>0&&a_(null)):b&&a_(null)}else{let b=a.assistantMessageEvent;b&&(R({type:"delta",event:b}),"toolcall_start"!==b.type&&"toolcall_delta"!==b.type&&a_(null))}!bH.current&&bI.current&&null===bK.current&&(bK.current=requestAnimationFrame(()=>{bK.current=null,bI.current&&b9("auto")}));break;case"message_end":{if(!by.current||e2(a))break;let b=a.message;if(b&&"user"===b.role){let a=eJ(b),c=eW(a),d=bY.current;bY.current=null,D(b=>{let e=b[b.length-1];return d&&e?.role==="user"&&eW(e)===d?d===c?b:[...b.slice(0,-1),a]:[...b,a]})}else if(b){let c=Array.isArray(a.transcriptNotices)?a.transcriptNotices:void 0;if(D(a=>[...a,(0,e4.mO)(eJ(b),c)]),"assistant"===b.role){let a=bv.current;a&&cp(a)}}R({type:"end"}),a_({kind:"waiting_model"});break}case"tool_execution_start":{if(e1(a))break;let b=a.toolCallId,c=a.toolName;a_(a=>{let d=a?.kind==="running_tools"?[...a.tools]:[];return d.some(a=>a.id===b)||d.push({id:b,name:c}),{kind:"running_tools",tools:d}});break}case"tool_execution_update":{if(e1(a))break;let b=a.toolCallId,c=a.toolName,d=a.partialResult,e=d?.content;Array.isArray(e)&&("bash"===c||"powershell"===c||c===cP.sp||(0,cU.G)(d?.details))&&F(a=>{let f=new Map(a);return f.set(b,{role:"toolResult",toolCallId:b,toolName:c,content:e,isError:d?.isError,details:d?.details}),f});let f=c===cP.sp?(0,cP.ky)(a.partialResult):function(a){if(!e3(a))return null;let b=a.content;if(!Array.isArray(b))return null;let c=b.filter(a=>e3(a)&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n").split(/\r?\n/),d="";for(let a=c.length-1;a>=0&&!(d=c[a].trim());a-=1);if(!d)return null;let e=d.replace(/\s+/g," ");return e.length<=500?e:`...${e.slice(-497)}`}(a.partialResult);a_(a=>{let d=a?.kind==="running_tools"?[...a.tools]:[],e=d.find(a=>a.id===b),g={id:b,name:c||e?.name||"tool",progress:f??e?.progress};return{kind:"running_tools",tools:[...d.filter(a=>a.id!==b),g]}});break}case"tool_execution_end":{if(e1(a))break;let b=a.toolCallId;g?.(a.toolName),F(a=>{if(!a.has(b))return a;let c=new Map(a);return c.delete(b),c}),a_(a=>{if(a?.kind!=="running_tools")return a;let c=a.tools.filter(a=>a.id!==b);return 0===c.length?{kind:"waiting_model"}:{kind:"running_tools",tools:c}});break}case"queue_update":bl({steering:[...a.steering??[]],followUp:[...a.followUp??[]]});break;case"auto_retry_start":az({attempt:a.attempt,maxAttempts:a.maxAttempts,errorMessage:a.errorMessage});break;case"auto_retry_end":az(null);break;case"auto_compaction_start":case"compaction_start":aT(!0),aX(null),aZ(null);break;case"auto_compaction_end":case"compaction_end":aT(!1),a.errorMessage?(aX(a.errorMessage),aZ(null)):!a.aborted&&(aZ(fg(a.result,a.reason??"auto")),bv.current&&cq(bv.current));break;case"extension_ui_request":cH(a);break;case"extension_ui_closed":bd(b=>eH(b,a.id))}},[cG,co,cA,R,cH,cq,cJ,f,g,cp,cK,b9,cI,cf]);let cQ=(0,q.useCallback)(async(a,c)=>{let e=a.trim();if(!e&&!c?.length)return;if(by.current||bC.current)return void ch(a,c,ce);if(ci&&(ck(null),!await bM.current?.(ci))){ck(ci),ch(a,c,ce);return}let f=!c?.length&&e.startsWith("/");if(!c?.length&&e.startsWith("!")){let b=e.startsWith("!!"),d=(b?e.slice(2):e.slice(1)).trim();return d?void await bL.current?.(d,b):void ch(a,c,ce)}let g=bX.current+1;cA(),bA.current=!0;let h=c?.map(a=>({type:"image",source:{type:"base64",media_type:a.mimeType,data:a.data}})),i={role:"user",content:h?.length?[...a.trim()?[{type:"text",text:a}]:[],...h]:a,timestamp:Date.now()};D(a=>[...a,i]),bY.current=eW(i),bX.current=g,by.current=!0,T(!0),a_(f?{kind:"running_command"}:{kind:"waiting_model"}),R({type:"start"}),bH.current=!0,a1(!0);let j=c?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})),k=null,l=!1;try{if(s&&d){let b=bv.current??await bO.current,c=b??await cu();if(!c)throw Error("Unable to create a session for the prompt");k=c,ai&&(aP(ai),b&&await eN(c,{type:"set_model",provider:ai.provider,modelId:ai.modelId})),b_.current&&await cC(c).catch(a=>{if(b_.current)throw a}),l=!0,await eN(c,{type:"prompt",message:a,...j?.length?{images:j}:{}}),ct(1,a)}else if(b)k=b.id,await cC(b.id),l=!0,await eN(b.id,{type:"prompt",message:a,...j?.length?{images:j}:{}});else throw Error("No active session for the prompt");f&&k&&cM(k,g)}catch(b){if(console.error("Failed to send message:",b),!(!l||eL(b))&&k)return void cM(k,g);if(bA.current=!1,D(a=>{let b=a.lastIndexOf(i);return -1===b?a:[...a.slice(0,b),...a.slice(b+1)]}),cG({type:"error",message:b instanceof Error?b.message:String(b)}),ch(a,c,ce),bY.current=null,k)return void cO(k);by.current=!1,cB(),T(!1),a_(null),R({type:"end"})}},[s,d,ai,b,cu,cC,ct,cM,cG,cA,cB,ce,R,cO,ch,ci,ck]);bL.current=(0,q.useCallback)(async(a,c)=>{if(by.current||bC.current)return;let d=`${c?"!!":"!"}${a}`;bC.current=!0,X({command:a,excludeFromContext:c}),V(!0);try{let e=bv.current??b?.id??await cu();if(!e)throw Error("Unable to create a session for the shell command");await eN(e,{type:"bash",command:a,excludeFromContext:c}),await cq(e),ct(1,d)}catch(a){console.error("Failed to execute shell command:",a),cG({type:"error",message:a instanceof Error?a.message:String(a)}),ch(d,void 0,ce)}finally{bC.current=!1,X(null),V(!1)}},[cG,ce,cu,cq,ct,ch,b]);let cR=(0,q.useCallback)(async()=>{let a=bv.current;if(a){if(bC.current){try{await eN(a,{type:"abort_bash"})}catch(a){console.error("Failed to abort bash:",a)}return}try{await eN(a,{type:"abort"})}catch(a){console.error("Failed to abort:",a)}}},[]),cS=(0,q.useCallback)(async a=>{if(bC.current)return;let b=bv.current;if(b){aJ(a);try{let{cancelled:c,newSessionId:d}=await eN(b,{type:"fork",entryId:a})??{};!c&&d&&j?.(d)}catch(a){console.error("Fork failed:",a),cG({type:"error",message:a instanceof Error?a.message:String(a)})}finally{aJ(null)}}},[cG,j]),cT=(0,q.useCallback)(async a=>{if(bC.current)return!1;let b=bv.current;if(!b)return!1;try{let c=await eN(b,{type:"navigate_tree",targetId:a});if(c?.cancelled||bv.current!==b)return!1;return await cq(b),bv.current===b}catch(a){return console.error("Failed to navigate:",a),!1}},[cq]);bM.current=cT,(0,q.useCallback)(async a=>{if(bC.current||by.current||aS)return;B(a);let b=bv.current;b&&(await cr(b,a),a&&eN(b,{type:"navigate_tree",targetId:a}).catch(()=>{}))},[aS,cr]);let cV=(0,q.useCallback)(async(a,b)=>{if(s){let c={provider:a,modelId:b};bT.current=c,aj(c),aP(c),null===bU.current&&ar(fa(bV.current[`${a}/${b}`])??bW.current);let d=bv.current??await bO.current;if(!d)return;try{await eN(d,{type:"set_model",provider:a,modelId:b})}catch(a){console.error("Failed to set model:",a)}return}let c=bv.current;if(c&&!bZ.current){bZ.current=!0,aL({provider:a,modelId:b}),aR(!0);try{let d=await eN(c,{type:"set_model",provider:a,modelId:b});aN({provider:d.provider,modelId:d.id}),bZ.current=!1,await cq(c)}catch(a){console.error("Failed to set model:",a),bZ.current=!1,aL(aK),cG({type:"error",message:`Failed to switch model: ${a instanceof Error?a.message:String(a)}`}),await cq(c,!1,!0)}finally{bZ.current=!1,aR(!1)}}},[cG,aK,s,cq,aj]),cW=(0,q.useCallback)(async()=>{let a=bv.current;if(a&&!aS){aT(!0),aX(null),aZ(null);try{let b=await eN(a,{type:"compact"});aZ(fg(b,"manual")),await cq(a,!0)}catch(a){aX(a instanceof Error?a.message:String(a)),aZ(null)}finally{aT(!1)}}},[aS,cq]),cX=(0,q.useCallback)(()=>aX(null),[]),cY=(0,q.useCallback)(async a=>{let c,e=d??b?.cwd??"",f=e?`/api/models?cwd=${encodeURIComponent(e)}`:"/api/models";try{let b=await fetch(f,a?{signal:a}:void 0);if(!b.ok){let a="";try{let c=await b.json();c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error&&(a=c.error)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a}throw Error(a||`Failed to load models (HTTP ${b.status})`)}c=await b.json(),a?.throwIfAborted()}catch(b){throw a?.aborted||b instanceof DOMException&&"AbortError"===b.name||ab(b instanceof Error?b.message:String(b)),b}Z(c.models),ab(c.modelError??null),ad(c.modelScopeWarnings??[]),af(c.thinkingLevels??{}),ah(c.thinkingLevelMaps??{});let g=c.modelList??[];_(g);let h=c.defaultModel?g.find(a=>a.id===c.defaultModel?.modelId&&a.provider===c.defaultModel?.provider):void 0;if(al(h?{provider:h.provider,modelId:h.id}:null),bV.current=c.thinkingLevelPins??{},bW.current=fa(c.defaultThinkingLevel),at(fa(c.savedDefaultThinkingLevel)),s&&!bv.current){let a=bT.current,b=a&&(0===g.length||g.some(b=>b.provider===a.provider&&b.id===a.modelId));a&&!b&&(bT.current=null,aj(null));let d=b?a:h&&{provider:h.provider,modelId:h.id},e=d&&c.thinkingLevelPins?.[`${d.provider}/${d.modelId}`];null===bU.current&&ar(fa(e)??bW.current)}},[s,d,b?.cwd]),cZ=(0,q.useCallback)(async a=>{let c=d??b?.cwd,e=await fetch("/api/models/default",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c?{cwd:c}:{},...a})});if(e.ok)return;let f="";try{let a=await e.json();a&&"object"==typeof a&&"error"in a&&"string"==typeof a.error&&(f=a.error)}catch{}throw Error(f||`HTTP ${e.status}`)},[d,b?.cwd]),c$=(0,q.useCallback)(()=>{cY().catch(()=>{})},[cY]),c_=(0,q.useCallback)(async(a,b)=>{try{await cZ({provider:a,modelId:b})}catch(a){cG({type:"error",message:`Failed to save default model: ${a instanceof Error?a.message:String(a)}`});return}cG({type:"success",message:`Default model: ${a}/${b}`}),al({provider:a,modelId:b}),(cb?.provider!==a||cb?.modelId!==b)&&await cV(a,b),c$()},[cG,cb,cV,c$,cZ]),c0=(0,q.useCallback)(async a=>{if(!a.startsWith("/"))return{handled:!1};let b=a.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!b)return{handled:!1};let[,c,d=""]=b,e=d.trim(),f=bv.current??await cu(),g=a=>(a.handled&&(a.error?cG({type:"error",message:a.error}):a.action||cG({type:"success",message:a.message??"Command completed"})),a);try{switch(c){case"compact":{if(!f||aS)return g({handled:!0,error:"No active session to compact"});aT(!0),aX(null),aZ(null);let a=await eN(f,{type:"compact",...e?{customInstructions:e}:{}});return aZ(fg(a,"manual")),await cq(f,!0)&&ct(),g({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!f)return g({handled:!0,error:"No active session"});let a=await eN(f,{type:"get_state"}),b=!(a?.autoCompactionEnabled??!0);return await eN(f,{type:"set_auto_compaction",enabled:b}),aV(b),g({handled:!0,message:b?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!f)return g({handled:!0,error:"No active session to reload"});return await eN(f,{type:"reload"}),await Promise.all([cq(f,!1,!0),cs(f),cy(),cY()]),g({handled:!0,message:"Reloaded session resources"});case"name":if(!f)return g({handled:!0,error:"No active session to name"});if(!e)return g({handled:!0,error:"Usage: /name <name>"});return await eN(f,{type:"set_session_name",name:e}),await cq(f)&&ct(),g({handled:!0,message:`Session renamed to ${e}`});case"session":{if(!f)return g({handled:!0,error:"No active session"});let a=await eN(f,{type:"get_session_stats"});return a&&bb(a),p?.(),g({handled:!0,action:"openSessionStats"})}case"mcp":{if(e||!r)return{handled:!1};let a=await cz();if(!a||!(a.some(dc)||!a.some(a=>"mcp"===a.name)))return{handled:!1};return r("mcp"),g({handled:!0,action:"openSettings"})}case"copy":{if(!f)return g({handled:!0,error:"No active session"});let a=await eN(f,{type:"get_last_assistant_text"}),b=a?.text??"";if(!b)return g({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(b),g({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!f)return g({handled:!0,error:"No active session to clone"});if(by.current||bC.current)return g({handled:!0,error:"Cannot clone while the session is running"});let a=await eN(f,{type:"clone",leafId:A});if(a?.cancelled||!a?.newSessionId)return g({handled:!0,error:"Cannot clone an empty or unsaved session"});let b=g({handled:!0,message:"Cloned current session branch"});return j?.(a.newSessionId),b}default:return{handled:!1}}}catch(a){return g({handled:!0,error:a instanceof Error?a.message:String(a)})}finally{"compact"===c&&aT(!1)}},[A,cG,cu,aS,cY,cq,cy,cs,ct,r,j,p,cz]),c3=(0,q.useCallback)(async(a,b,c)=>{let d=bv.current;if(ci)return void ch(a,c,ce);if(!d){ch(a,c,ce),cG({type:"error",message:"No active session for the queued message"});return}let e=c?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType}));try{await eN(d,{type:"prompt",message:a,streamingBehavior:b,...e?.length?{images:e}:{}})}catch(b){console.error("Failed to submit streaming prompt:",b),eL(b)&&ch(a,c,ce),cG({type:"error",message:b instanceof Error?b.message:String(b)})}},[cG,ce,ci,ch]),c4=(0,q.useCallback)(async(a,b)=>{await c3(a,"steer",b)},[c3]),c7=(0,q.useCallback)(async(a,b,c)=>{await c3(a,b,c)},[c3]),c8=(0,q.useCallback)(async(a,b)=>{await c3(a,"followUp",b)},[c3]),c9=(0,q.useCallback)(async()=>{let a=bv.current;if(a)try{await eN(a,{type:"abort_compaction"})}catch(a){console.error("Failed to abort compaction:",a)}},[]),da=(0,q.useCallback)(async()=>{let b=bv.current;if(b)try{let c=await eN(b,{type:"clear_queue"});bl({steering:[],followUp:[]});let d=[...c?.steering??[],...c?.followUp??[]];d.length>0&&a.chatInputRef?.current?.prependText(d.join("\n\n"))}catch(a){console.error("Failed to recall queued messages:",a),cG({type:"error",message:"Failed to recall queued messages"})}},[a.chatInputRef,cG]),db=(0,q.useCallback)(async a=>{if("auto"===a){bU.current=null,ap(null),av(null);return}s?(bU.current=a,ap(a)):av(a);let b=bv.current??await bO.current;if(b)try{await eN(b,{type:"set_thinking_level",level:a}),b_.current&&bv.current===b&&(ax(a),av(null))}catch(a){console.error("Failed to set thinking level:",a),av(null)}},[s]),dd=(0,q.useCallback)(async a=>{try{await cZ({thinkingLevel:a})}catch(a){cG({type:"error",message:`Failed to save default reasoning level: ${a instanceof Error?a.message:String(a)}`});return}cG({type:"success",message:`Default reasoning level: ${a}`}),at(a),cd!==a&&await db(a),c$()},[cG,cd,db,c$,cZ]),de=(0,q.useCallback)(async a=>{let b=(0,eS.xG)(a);!function(a,b=null){if(b)try{b.setItem("pi-tool-preset",a)}catch{}}(a),b8(a);let c=bv.current??await bO.current;if(!c){bx.current=void 0!==b;return}try{let a=await eN(c,{type:"set_tools",...void 0!==b?{toolNames:b}:{}});bx.current=void 0!==b;let d=a?.sessionId??c;(d!==c||a?.recreated)&&(cA(),cB(),bd([]),bf([]),bv.current=d,a?.recreated&&bw.current===d&&cD(d)),cw(),bh([]),bj([]);let[e]=await Promise.all([eN(d,{type:"get_state"}),cs(d)]);b_.current&&bv.current===d&&(aH(e.systemPrompt??""),cf(e))}catch(a){console.error("Failed to set tools:",a)}},[cA,cw,cB,cs,cD,b8,cf]),df=(0,q.useCallback)((a,b=16)=>{let c=bN.current;c&&(null!==bK.current&&(cancelAnimationFrame(bK.current),bK.current=null),bF.current=!0,bH.current=!1,bI.current=!1,a1(!1),c.scrollTo({top:a.getBoundingClientRect().top-c.getBoundingClientRect().top+c.scrollTop-b,behavior:"instant"}),bJ.current=c.scrollTop)},[]),dg=(0,q.useCallback)(()=>{let a=bN.current,b=bG.current;if(!a||!b)return;let c=Math.min(Math.max(0,b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop-16),Math.max(0,a.scrollHeight-a.clientHeight));null!==bK.current&&(cancelAnimationFrame(bK.current),bK.current=null),bI.current=!0,bJ.current=c,a.scrollTo({top:c,behavior:"auto"})},[]);(0,q.useCallback)(()=>{let a=bN.current;if(a){let{scrollTop:b,clientHeight:c,scrollHeight:d}=a,e=by.current,f=bI.current,g=function(a,b,c,d,e,f=96){return!!e5(c,d,e)||!(c<b)&&(!!(!a&&c>b&&e5(c,d,e,f))||a)}(f,bJ.current,b,c,d,e?96:8);bI.current=g,bJ.current=b;let h=function(a,b,c,d=8){return!(c<=b)&&!e5(a,b,c,d)}(b,c,d);a3(a=>a===h?a:h),!f&&g&&e?b9("auto"):g||null===bK.current||(cancelAnimationFrame(bK.current),bK.current=null)}},[b9]);let dh=(0,q.useCallback)((a,b)=>{b?.running&&(cs(a),(b.state?.isStreaming||b.state?.isPromptRunning)&&(bz.current=!!b.state.isStreaming,bA.current=!!b.state.isPromptRunning,by.current=!0,T(!0),a_(b.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),R({type:"resume"}),!b.state.isStreaming&&b.state.isPromptRunning&&cM(a)),b.state?.isBashRunning&&(bC.current=!0,V(!0),cN(a))),b?.state&&(void 0!==b.state.isCompacting&&aT(b.state.isCompacting),void 0!==b.state.systemPrompt&&aH(b.state.systemPrompt??null),void 0!==b.state.extensionStatuses&&bh(b.state.extensionStatuses??[]),void 0!==b.state.extensionWidgets&&bj(b.state.extensionWidgets??[]),void 0!==b.state.queuedMessages&&bl(e9(b.state.queuedMessages)))},[R,cs,cN,cM]);bu.current=a=>{!bq.current||(bq.current=!1,bs(a=>a+1),b_.current&&bv.current===a&&bw.current===a&&(cD(a),cq(a,!1,!0).then(b=>{b_.current&&bv.current===a&&dh(a,b)})))};let[di,dj]=(0,q.useState)(null);(0,q.useRef)(5e3),(0,q.useRef)(null),(0,q.useRef)(null);let dk=cd??"auto",dl=bc[0]??null,dm=Math.max(0,bc.length-1),dn=be[0]??null,dp=Math.max(0,be.length-1),dq=(0,q.useMemo)(()=>(function(a,b,c){let d=a[a.length-1],e=[];for(let f=0;f<b;f++){let b=a[f];e.push(void 0===b?eX(d,f-a.length):c.get(b)??b)}return e})(G,C.length,I),[G,C.length,I]);return{data:u,loading:w,error:y,activeLeafId:A,messages:C,activeToolResults:E,entryIds:G,messageKeys:dq,historyCursor:K,hasEarlierMessages:M,earlierTurnCount:O,streamingStore:Q,agentRunning:S,modelNames:Y,modelList:$,modelError:aa,modelScopeWarnings:ac,modelThinkingLevels:ae,modelThinkingLevelMaps:ag,newSessionModel:ai,toolPreset:am,thinkingLevel:dk,retryInfo:ay,contextUsage:aA,systemPrompt:aG,forkingEntryId:aI,isCompacting:aS,compactError:aW,compactResult:aY,currentModel:ca,displayModel:cb,modelSwitching:aQ,sessionStats:cn,autoCompactionEnabled:aU,slashCommands:a4,slashCommandsLoading:a6,queuedMessages:bk,notices:a8.visible,extensionDialog:dl,waitingExtensionDialogCount:dm,extensionCustomUi:dn,waitingExtensionCustomUiCount:dp,extensionStatuses:bg,extensionWidgets:bi,respondToExtensionUi:cE,sendExtensionCustomInput:cF,isAutoModelSelection:s&&null===ai,isAutoThinkingSelection:s&&null===ao,defaultModel:ak,savedDefaultThinkingLevel:as,agentPhase:a$,isNew:s,editEntryId:ci,promptAnchorActive:a0,showScrollToBottom:a2,sessionIdRef:bv,scrollContainerRef:bN,lastUserMsgRef:bG,pendingScrollToUserRef:bH,initialScrollDoneRef:bF,handleSend:cQ,handleAbort:cR,handleFork:cS,handleNavigate:cT,handleModelChange:cV,handleCompact:cW,handleSteer:c4,handleFollowUp:c8,handlePromptWithStreamingBehavior:c7,handleAbortCompaction:c9,dismissCompactError:cX,handleRecallQueue:da,handleBuiltinSlashCommand:c0,handleEditContent:cl,cancelEdit:ci?cm:void 0,addNotice:cG,setNoticePaused:dj,handleToolPresetChange:de,handleThinkingLevelChange:db,handleSetDefaultModel:c_,handleSetDefaultThinkingLevel:dd,loadTools:cs,loadSlashCommands:cy,setActiveLeafId:B,setData:v,setMessages:D,loadContext:cr,scrollToBottom:b9,scrollUserMsgToTop:dg,scrollToMessage:df,dispatch:R,setAgentRunning:T,setForkingEntryId:aJ,bashRunning:U,pendingBash:W,handleAgentEventRef:bE}}({session:a,sessionRunning:g,newSessionCwd:h,newSessionDraftKey:i,initialNewSessionChoices:k,onNewSessionChoicesChange:l,onAgentEnd:X,onToolEnd:n,onAttentionNeeded:o,onSessionCreated:r,onSessionForked:s,modelsRefreshKey:t,chatInputRef:u,onBranchDataChange:v,onSystemPromptChange:w,onSystemToolsChange:x,onSystemInfoLoaderChange:y,onSessionStatsPanelOpen:A,onOpenSettings:B,deferInitialScroll:!!Z}),by=fh(ak,fi),bz=fh(ak,fj),bA=(0,q.useCallback)(()=>ak.getState().streamingMessage,[ak]),bB=al||am,[bC,bD]=(0,q.useState)(null),[bE,bF]=(0,q.useState)(!1),[bG,bH]=(0,q.useState)(!1),[bI,bJ]=(0,q.useState)(null),bK=(0,q.useRef)(null),bL=(0,q.useRef)(null),bM=(0,q.useCallback)(()=>{bD(null),bF(!1),bJ(null)},[]),bN=(0,q.useCallback)(()=>{if(!I||bE)return;let a=window.getSelection(),b=a?.rangeCount?a.getRangeAt(0):null,c=bU.current;if(!a||a.isCollapsed||!b||!c||!c.contains(b.commonAncestorContainer))return void bD(null);let d=a.toString().trim();if(!d)return void bD(null);let e=b.getBoundingClientRect(),f=[b.commonAncestorContainer.nodeType===Node.ELEMENT_NODE?b.commonAncestorContainer:b.commonAncestorContainer.parentElement,b.startContainer.nodeType===Node.ELEMENT_NODE?b.startContainer:b.startContainer.parentElement,b.endContainer.nodeType===Node.ELEMENT_NODE?b.endContainer:b.endContainer.parentElement].map(a=>a?.closest('[data-message-role="assistant"]')?.dataset.entryId).find(a=>!!a);bD({text:d,top:Math.min(window.innerHeight-44,e.bottom+8),left:Math.max(64,Math.min(window.innerWidth-64,e.left+e.width/2)),sourceEntryId:f})},[I,bE]),bO=(0,q.useCallback)(()=>{if(bC){var a,b,c;let d;u?.current?.insertText((a=bC.text,b=S("chat.quoteIntro"),c=S("chat.quoteQuestion"),d=a.trim().split("\n").map(a=>`> ${a}`).join("\n"),`${b}
|
|
7
|
+
|
|
8
|
+
${d}
|
|
9
|
+
|
|
10
|
+
${c}`)),bM()}},[u,bC,bM,S]),bP=(0,q.useCallback)(async b=>{let c=a2.current??a?.id;if(!bG&&b.trim()&&bC?.sourceEntryId&&c&&H){bH(!0),bJ(null),O?.();try{await H(b,c,bC.sourceEntryId),bM()}catch(a){bL.current?.restoreSubmission(b),bJ(a instanceof Error?a.message:String(a))}finally{bH(!1)}}},[H,bC,bG,a?.id,a2,bM,O]);(0,q.useRef)(!1);let[bQ,bR]=(0,q.useState)(50),[bS,bT]=(0,q.useState)(null),bU=(0,q.useRef)(null);(0,q.useRef)(null),(0,q.useRef)(!1),(0,q.useRef)(!1),(0,q.useRef)(Z).current=Z;let[bV,bW]=(0,q.useState)(null),bX=ad[af.indexOf(bV?.entryId??"")],bY=bX?.role==="assistant"?bV?.blockIndex===void 0?bX.content.find(a=>"text"===a.type):bX.content[bV.blockIndex]:void 0;(0,q.useRef)({entryIds:af,historyCursor:ah,hasEarlierMessages:ai}).current={entryIds:af,historyCursor:ah,hasEarlierMessages:ai};let bZ=(0,q.useRef)(null);(0,q.useCallback)(async(a,b,c)=>{bZ.current=b;let d=await bu(a,bv,b,c);return d||bZ.current!==b||(bZ.current=null),d},[bv,bu]),aE&&[aE.sessionId,aE.sessionFile??"",aE.sessionName??"",aE.userMessages,aE.assistantMessages,aE.toolCalls,aE.toolResults,aE.totalMessages,aE.tokens.input,aE.tokens.output,aE.tokens.cacheRead,aE.tokens.cacheWrite,aE.tokens.total,aE.cost??0,aE.totalActiveMs??0].join("|"),(0,q.useRef)(aE).current=aE,ax&&(ax.percent,ax.contextWindow,ax.tokens),(0,q.useRef)(ax).current=ax;let b$=(0,q.useCallback)(async b=>{let c=a?.cwd??h;if(!c)return void aV({type:"warning",message:S("chat.dropNeedsCwd")});try{var d;let a,{status:e,data:f}=await a6(c,b,"skip");if(200!==e&&207!==e)throw Error(f.error??`HTTP ${e}`);let g=f.uploaded??[],h=f.skipped??[],i=(d=[...g,...h],a=new Set(d),b.filter(b=>a.has(b.name)).map(a=>a5(a.name,!1)).join(""));for(let a of(i&&u?.current?.insertText(i),g.length>0&&(aV({type:"success",message:S("chat.dropUploaded",{count:g.length})}),E?.()),h.length>0&&aV({type:"warning",message:S("chat.dropAlreadyExists",{names:h.join(", ")})}),f.errors??[]))aV({type:"error",message:S("chat.dropFailed",{message:`${a.name}: ${a.error}`})})}catch(a){aV({type:"error",message:S("chat.dropFailed",{message:a instanceof Error?a.message:String(a)})})}},[aV,u,h,E,a?.cwd,S]),b_=(0,q.useCallback)(a=>{let{images:b,files:c,folders:d}=function(a){let b=[],c=[],d=[];for(let e of a)"folder"===e.kind?d.push(e.name):e.file.type.startsWith("image/")?b.push(e.file):c.push(e.file);return{images:b,files:c,folders:d}}(a);b.length>0&&u?.current?.addImages(b),d.length>0&&aV({type:"warning",message:S("chat.dropFoldersUnsupported",{names:d.join(", ")})}),c.length>0&&b$(c)},[aV,u,S,b$]),b0=(0,q.useCallback)(a=>{b_(a.map(a=>({kind:"file",file:a})))},[b_]),{isDragOver:b1,handleDragEnter:b2,handleDragOver:b3,handleDragLeave:b4,handleDrop:b5}=function(a){let[b,c]=(0,q.useState)(!1),d=(0,q.useRef)(0),e=(0,q.useCallback)(a=>{a7(a)&&(a.preventDefault(),d.current+=1,c(!0))},[]),f=(0,q.useCallback)(a=>{a7(a)&&(a.preventDefault(),a.dataTransfer.dropEffect="copy")},[]);return{isDragOver:b,handleDragEnter:e,handleDragOver:f,handleDragLeave:(0,q.useCallback)(()=>{d.current-=1,d.current<=0&&(d.current=0,c(!1))},[]),handleDrop:(0,q.useCallback)(b=>{b.preventDefault(),d.current=0,c(!1),a(a8(b.dataTransfer))},[a])}}(b_),b6=ad.filter(a=>(0,cL.Y0)(a)||"assistant"===a.role),b7=(0,q.useMemo)(()=>{let a=new Map(ae);for(let b of ad)"toolResult"===b.role&&a.set(b.toolCallId,b);return a},[ae,ad]),b8=(0,q.useMemo)(()=>new WeakMap,[]),b9=(0,q.useMemo)(()=>(0,cT.n_)(ad),[ad]),ca=(0,q.useMemo)(()=>{let a=new Set,b=[];for(let c=ad.length-1;c>=0;c-=1){let d=function(a){if("user"!==a.role)return null;if("string"==typeof a.content){let b=a.content.trim();return b.length>0?b:null}let b=a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").trim();return b.length>0?b:null}(ad[c]);if(!(!d||a.has(d))&&(a.add(d),b.push(d),b.length>=50))break}return b.reverse()},[ad]),cb=(Q=b6.length,(R=(0,q.useRef)([])).current=Array(Q).fill(null).map((a,b)=>R.current[b]??null),R),cc=(0,q.useCallback)(()=>{bR(a=>Math.max(a,2*ad.length))},[ad.length]),cd=a_&&0===ad.length&&!by&&!bB;a?.id;let ce=a?.cwd??h??void 0,cf=function(){let[a,b]=(0,q.useState)(()=>new Map);return a}(),cg=(0,q.useRef)(null);(0,q.useRef)(0),(0,q.useRef)(null),(0,q.useRef)(!1);let ch=(0,q.useRef)(null),ci=(0,q.useCallback)(()=>{ch.current?.()},[]),cj=aC?as[`${aC.provider}:${aC.modelId}`]??null:null,ck=aC?at[`${aC.provider}:${aC.modelId}`]??null:null,cl=(0,p.jsx)(ej,{ref:u,onSend:ba,onAbort:bb,onSteer:al?bh:void 0,onFollowUp:al?bi:void 0,onPromptWithStreamingBehavior:al?bj:void 0,isStreaming:bB,model:aC,isAutoModelSelection:aW,modelNames:ao,modelList:ap,modelError:aq,modelScopeWarnings:ar,onModelChange:bf,modelSwitching:aD,defaultModel:aY,onSetDefaultModel:bq,onCompact:a||a_?bg:void 0,onAbortCompaction:bk,isCompacting:az,compactError:aA,onDismissCompactError:bl,compactResult:aB,toolPreset:au,onToolPresetChange:a||a_?bo:void 0,thinkingLevel:av,isAutoThinkingSelection:aX,onThinkingLevelChange:a||a_?bp:void 0,availableThinkingLevels:cj,thinkingLevelMap:ck,savedDefaultThinkingLevel:aZ,onSetDefaultThinkingLevel:a||a_?br:void 0,retryInfo:aw,queuedMessages:aJ,inputHistory:ca,onRecallQueue:bm,slashCommands:aF,slashCommandsLoading:aI,onLoadSlashCommands:bs,onBuiltinCommand:bn,soundEnabled:L,onSoundToggle:M,onAudioUnlock:O,draftKey:a?.id??i??void 0,cwd:a?.cwd??h,onAttachFiles:b0});return ab?(0,p.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:S("chat.loadingSession")}):ac?(0,p.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:ac}):(0,p.jsxs)("div",{className:"chat-content relative flex h-full min-w-0 flex-col overflow-hidden",style:{paddingBottom:"env(safe-area-inset-bottom)"},onDragEnter:b2,onDragOver:b3,onDragLeave:b4,onDrop:b5,children:[b1&&(0,p.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,p.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(a=>(0,p.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${a}s`}},a))}),(0,p.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,p.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,p.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,p.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,p.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,p.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,p.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,p.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,p.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,p.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,p.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,p.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,p.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),(0,p.jsx)("div",{style:{position:"absolute",top:12,left:0,right:36*!T,zIndex:40,display:"flex",justifyContent:"flex-end",padding:"0 16px",pointerEvents:"none"},children:(0,p.jsx)(fq,{notices:aK,floating:!0,onPauseChange:aU})}),(0,p.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 overflow-hidden",children:[aL&&(0,p.jsx)(ft,{request:aL,waitingCount:aM,onRespond:aS},aL.id),aN&&(0,p.jsx)(fu,{request:aN,waitingCount:aO,onInput:aT},aN.id),!cd&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{ref:a3,className:"scrollbar-subtle min-w-0 flex-1 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",style:{visibility:Z?"hidden":void 0},children:(0,p.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,p.jsxs)("div",{ref:bU,onPointerUp:bN,style:{width:"100%",minWidth:0,maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(()=>{var b;let c,d,e=-1;for(let a=ad.length-1;a>=0;a--)if("user"===ad[a].role){e=a;break}let f=-1;for(let a=ad.length-1;a>=0;a--)if((0,cL.Y0)(ad[a])){f=a;break}let g=new Map,h=0;ad.forEach((a,b)=>{((0,cL.Y0)(a)||"assistant"===a.role)&&g.set(b,h++)});let i=(b,c={})=>{let d=c.messageOverride??ad[b];if((0,cL.zZ)(d))return null;let f=!1===c.withNotices?[]:(0,e4.YQ)(ad[b]),h=(0,cL.Y0)(d)||"assistant"===d.role,i=g.get(b),j=c.keyPrefix??"message",k=ag[b],l=!1;if("assistant"===d.role){l=!0;for(let a=b+1;a<ad.length;a++){let b=ad[a].role;if("user"===b)break;if("assistant"===b){l=!1;break}}l&&by&&b===ad.length-1&&(l=!1)}void 0!==c.showTimestamp&&(l=c.showTimestamp);let m=(0,p.jsx)(cX.Dx,{message:d,toolResults:b7,modelNames:ao,cwd:ce,onOpenFile:D,onOpenSubagent:F,onEnterSubagent:G,entryId:af[b],searchBlock:af[b]===bV?.entryId?bY:void 0,onFork:am||a_?void 0:bc,forking:ay===af[b],onEditContent:bB?void 0:bd,onCancelEdit:be,isEditing:a0===af[b],showTimestamp:l,prevTimestamp:b>0?ad[b-1].timestamp:void 0,sessionId:a?.id??a2.current??void 0,writtenFiles:c.writtenFiles,turnDurationMs:c.turnDurationMs,onCompact:c.recoverTruncation?bg:void 0,isCompacting:c.recoverTruncation?az:void 0,compactError:c.recoverTruncation?aA:void 0},`${j}-view-${k}`),n=f.length>0?(0,p.jsx)(fl.yt,{notices:f},`${j}-notices-${k}`):null;return h&&void 0!==i?(0,p.jsxs)("div",{"data-entry-id":af[b],ref:!1===c.attachRef?void 0:a=>{cb.current[i]=a,b===e&&(a4.current=a)},children:[m,n]},`${j}-${k}`):(0,p.jsxs)(q.Fragment,{children:[m,n]},`${j}-${k}`)},j=[];for(let a=0;a<ad.length;){let b,c=ad[a],d=(0,cL.Y0)(c);if(!d&&0!==a){j.push(i(a)),a+=1;continue}let e=d?a:-1,h=d?a:0,k=a+1;for(;k<ad.length&&!(0,cL.Y0)(ad[k]);)k+=1;let l=function(a,b,c){for(let e=c-1;e>b;e--){var d;if("assistant"===(d=a[e]).role&&(0,cL.dQ)(d).answerBlocks.some(a=>"image"===a.type||"text"===a.type&&a.text.trim().length>0))return e}for(let d=c-1;d>b;d--)if(a[d]?.role==="assistant")return d;return -1}(ad,e,k);if(-1===l||(bB||by)&&k===ad.length&&e===f){for(let a=h;a<k;a++)j.push(i(a));a=k;continue}d&&j.push(i(e));let m=d&&af[e]?(0,cW.G)(ad,e,k):void 0,n=function(a,b){let c=a.get(b);if(c)return c;let{answerBlocks:d}=(0,cL.dQ)(b),e=d.length>0||(0,cL.mc)(b)||(0,cL.PC)(b)?cV(b,d):null,f=b.content.indexOf(d[0]),g={answer:e,process:cV(b,b.content.slice(0,f<0?void 0:f),{omitUsage:!!e})};return a.set(b,g),g}(b8,ad[l]),o=n.answer,q=[],r=0,s=0,t=!1;for(let a=e+1;a<=l;a++){let c=ad[a];if("custom"===c.role){if((0,cL.zZ)(c))continue;t||=!!(bV&&bV.entryId===af[a]),r+=1,q.push(i(a,{attachRef:!1,keyPrefix:"process"}));continue}if("assistant"!==c.role)continue;let d=a===l?n.process:c,e=a!==l||!o,f=(0,cL.TC)(d);if(0===f.length){let b=e?(0,e4.YQ)(c):[];b.length>0&&q.push((0,p.jsx)(fl.yt,{notices:b},`process-notices-${ag[a]}`));continue}b??=g.get(a),s+=(0,cL._q)(f),r+=1,t||=!!(bV&&af[a]===bV.entryId&&(!bY||f.includes(bY))),q.push(i(a,{attachRef:!1,keyPrefix:"process",messageOverride:d,showTimestamp:!1,withNotices:e}))}if(0===r)j.push(...q);else if(q.length>0){let a=(0,cL.sE)(o),c=(0,e4.Uv)(ad.slice(e+1,o?l:l+1));j.push((0,p.jsx)("div",{ref:void 0===b?void 0:a=>{cb.current[b]=a},children:(0,p.jsx)(fn,{messageCount:r,toolCallCount:s,durationMs:m,cacheMisses:c,defaultExpanded:!a,reveal:t,t:S,children:q},a?"answered":"unanswered")},`process-group-${ag[h]}`))}if(o){let a=[];for(let b=e+1;b<=l;b++){let c=ad[b];if(c?.role==="assistant")for(let b of c.content??[])a.push(b)}let b=function(a,b,c){let d=new Set,e=[],f=a=>{let b=(0,cM.XK)(a,c);!b||d.has(b)||(d.add(b),e.push({filePath:b}))};for(let c of a){var g;let a;if("toolCall"!==c.type||(g=c.toolName,!((0,cN.V4)(g)||(0,cN.iG)(g))&&!(0,cN.aP)(c.toolName)&&!(0,cN.Y2)(c.toolName)&&c.toolName!==cP.sp))continue;let d=b?.get(c.toolCallId);if(d&&!d.isError){if((0,cN.aP)(c.toolName))a=function(a,b){let c=b?.details,d=function(a,b){let c=new Set;if(b&&"object"==typeof b&&!Array.isArray(b)){let a=b.preview;if(a&&"object"==typeof a&&!Array.isArray(a)){let b=a.files;if(Array.isArray(b))for(let a of b)!(!a||"object"!=typeof a||Array.isArray(a))&&"delete"===a.operation&&"string"==typeof a.filePath&&a.filePath.length>0&&c.add(a.filePath)}}for(let b of(0,cQ.IN)(a).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let a=(b[1]??"").trim();a&&c.add(a)}return c}(a,c),e=(0,cQ.dc)(c);if(e)return e.filter(a=>!d.has(a));if((0,cQ.FK)(c))return[];if(c&&"object"==typeof c&&!Array.isArray(c)){let a=cS((0,cQ.ND)(c.preview));if(a.length>0)return a}return cS((0,cQ.oC)((0,cQ.IN)(a)))}(c.input,d);else if((0,cN.Y2)(c.toolName)){let b=function(a){if(!a)return null;let b=a.command??a.cmd??a.script;return"string"==typeof b&&b.length>0?b:null}(c.input);a=b?function(a){if("string"!=typeof a||0===a.length||a.length>2e5)return[];let b=new Set,c=[];for(let d of function(a){let b=[],c=[],d="",e=!1,f="",g=()=>{(d.length>0||e)&&c.push({text:d,quoted:e}),d="",e=!1},h=()=>{g(),c.length>0&&b.push(c),c=[]};for(let b=0;b<a.length;b++){let c=a[b];if(f){if("\\"===c&&'"'===f&&a[b+1]){d+=a[b+1],b+=1;continue}if(c===f){f="";continue}d+=c;continue}if("'"===c||'"'===c){f=c,e=!0;continue}if("\\"===c){a[b+1]&&(d+=a[b+1],e=e||/[^\w./-]/.test(a[b+1]),b+=1);continue}if(";"===c||"|"===c||"&"===c||"\n"===c){("|"===a[b+1]||"&"===a[b+1])&&(b+=1),h();continue}if("#"===c&&0===d.length){let c=a.indexOf("\n",b);b=-1===c?a.length-1:c-1,h();continue}if(/\s/.test(c)){g();continue}d+=c}return h(),b}(a)){let a=function(a){let b=function(a){let b=0;for(;b<a.length;){let c=a[b].text,d=c.slice(c.lastIndexOf("/")+1);if("sudo"===d||"nohup"===d||"env"===d||"command"===d||"exec"===d||/^[\w]+=/.test(c)&&b+1<a.length){b+=1;continue}break}return a.slice(b)}(a);if(0===b.length)return null;let c=b[0].text,d=c.slice(c.lastIndexOf("/")+1),e=[];for(let a=0;a<b.length;a++){let c=b[a];if(c.quoted)continue;if(">"===c.text||">>"===c.text||"&>"===c.text||"&>>"===c.text){let c=b[a+1];c&&!c.text.startsWith("&")&&e.push(c.text),a+=1;continue}let d=c.text.match(/^(?:\d*>>|\d*>|&>>|&>|>&)(.+)$/);if(d){let a=d[1];a.startsWith("&")||e.push(a);continue}}let f=[];switch(d){case"tee":f=cO(b,{}).operands;break;case"touch":f=cO(b,{shortWithArg:new Set(["-d","-t","-r"]),longWithArg:new Set(["--date","--reference","--time"])}).operands;break;case"mv":case"cp":f=function(a){if(a.targetDirectory)return a.operands.map(b=>{let c=b.slice(b.lastIndexOf("/")+1)||b;return`${a.targetDirectory.replace(/\/+$/,"")}/${c}`});if(a.operands.length<2)return[];let b=a.operands[a.operands.length-1];return b.endsWith("/")?a.operands.slice(0,-1).map(a=>{let c=a.slice(a.lastIndexOf("/")+1)||a;return`${b.replace(/\/+$/,"")}/${c}`}):[b]}(cO(b,{shortWithArg:new Set(["-t","-S","-Z"]),longWithArg:new Set(["--target-directory","--suffix","--context"]),targetDir:!0}));break;case"sed":{let a=cO(b,{shortWithArg:new Set(["-e","-f"]),longWithArg:new Set(["--expression","--file"]),inPlace:new Set(["-i","--in-place"]),expression:!0});a.inPlace&&(f=a.expressionSeen?a.operands:a.operands.slice(1));break}case"truncate":f=cO(b,{shortWithArg:new Set(["-s","-r"]),longWithArg:new Set(["--size","--reference"])}).operands;break;case"dd":f=b.slice(1).flatMap(a=>{let b=a.text.match(/^of=(.+)$/);return b?[b[1]]:[]})}let g=[...e,...f].filter(a=>!(0===a.length||/[\$`]/.test(a)||/[*?\[]/.test(a)||a.startsWith("-")||a.startsWith("~")||a.startsWith("/dev/")));return g.length>0?g:null}(d);if(a){for(let d of a)if(!b.has(d)&&(b.add(d),c.push(d),c.length>=100))return c}}return c}(b):[]}else a=c.toolName===cP.sp?function(a){let{calls:b}=(0,cP.or)(a?.details),c=[];for(let a of b){if("ok"!==a.status||!(0,cN.V4)(a.name)&&!(0,cN.iG)(a.name))continue;let b=function(a){try{let b=JSON.parse(a);if(b&&"object"==typeof b&&!Array.isArray(b))return cR(b);return null}catch{let b=a.match(/"(?:file_path|path)"\s*:\s*"((?:[^"\\]|\\.)*)"/);return b?b[1].replace(/\\(.)/g,(a,b)=>"n"===b?"\n":"t"===b?" ":"r"===b?"\r":b):null}}(a.args);b&&c.push(b)}return c}(d):[cR(c.input)];for(let b of a)b&&f(b)}}return e}(a,b7,ce);for(let a of function(a,b){let c=[],d=new Set;for(let e of a)if("assistant"===e.role)for(let a of e.content??[]){if("toolCall"!==a.type)continue;let e=b.get(a.toolCallId),f=(0,cU.G)(e?.details)?e?.details:null;f&&"starting"!==f.status&&"queued"!==f.status&&"running"!==f.status&&(d.has(f.sessionId)||(d.add(f.sessionId),c.push({sessionId:f.sessionId,cwd:f.worktreePath})))}return c}(ad.slice(e+1,l+1),b7))for(let c of cf.get(a.sessionId)??[])b.some(a=>a.filePath===c.filePath)||b.push(c);let c=function(a,b){let c=a.writtenFiles;return c&&c.length===b.length&&c.every((a,c)=>a.filePath===b[c].filePath)?c:(a.writtenFiles=b,b)}(n,b);j.push(i(l,{messageOverride:o,writtenFiles:c,turnDurationMs:0===q.length?m:void 0,recoverTruncation:k===ad.length&&!by&&!(0,cL.D6)(o)}))}for(let a=l+1;a<k;a++)j.push(i(a));a=k}let{startIndex:k}=(c=Math.min(Math.max(bQ,0),Math.max(b=j.length,0)),{startIndex:d=Math.max(0,b-c),hasMore:d>0});return(0,p.jsxs)(p.Fragment,{children:[(k>0||ai)&&(0,p.jsx)("div",{ref:bT,className:"py-3 text-center text-xs text-text-muted",children:S("chat.loadEarlier")}),j.slice(k)]})})(),by&&bz&&(0,p.jsx)(fp,{store:ak,onCommit:ci,toolResults:b7,modelNames:ao,cwd:ce,onOpenFile:D,onOpenSubagent:F,onEnterSubagent:G}),al&&!bz&&(a$||az)&&(0,p.jsx)("div",{className:"break-words py-2 text-[13px] text-text-muted",children:(0,p.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(a,b,c){if(c)return b("chat.compacting");if(a?.kind==="running_tools"){let c=a.tools[a.tools.length-1];if(c?.progress)return`${b("chat.runningNamedTool",{name:c.name})} ${c.progress}`;let d=a.tools.map(a=>a.name);return 0===d.length?b("chat.runningTool"):1===d.length?b("chat.runningNamedTool",{name:d[0]}):d.length<=3?b("chat.runningTools",{names:d.join(", ")}):b("chat.runningToolsMore",{names:d.slice(0,2).join(", "),count:d.length-2})}return a?.kind==="waiting_model"?b("chat.waitingModel"):a?.kind==="running_command"?b("chat.runningCommand"):null}(a$,S,az)})}),am&&!an&&(0,p.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,p.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:S("chat.runningCommand")})}),an&&(0,p.jsx)(cX.Dx,{message:{role:"bashExecution",command:an.command,output:"",excludeFromContext:an.excludeFromContext},sessionId:a?.id??a2.current??void 0,onOpenSubagent:F,onEnterSubagent:G}),(0,p.jsx)("div",{ref:cg,"aria-hidden":"true"})]})})}),T||Z?null:(0,p.jsx)(ex,{messages:ad,getStreamingMessage:bA,scrollContainer:a3,messageRefs:cb,onRevealHistory:cc,turnsBefore:aj})]})]}),I&&bC&&(0,aQ.createPortal)((0,p.jsx)("div",{ref:bK,role:bE?"dialog":"toolbar","aria-label":S(bE?"chat.newQuoteChat":"chat.askSelection"),style:{position:"fixed",top:bC.top,left:bC.left,zIndex:260,display:"flex",flexWrap:"wrap",gap:3,width:bE?"min(420px, calc(100vw - 16px))":void 0,maxWidth:"calc(100vw - 16px)",maxHeight:"calc(var(--app-viewport-height, 100dvh) - 16px)",overflowY:"auto",padding:bE?12:3,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",boxShadow:"0 2px 10px rgba(0,0,0,0.12)"},children:bE?(0,p.jsxs)("fieldset",{disabled:bG,"aria-busy":bG,style:{width:"100%",minWidth:0,margin:0,padding:0,border:"none",display:"flex",flexDirection:"column",gap:10},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,p.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,fontWeight:600},children:S("chat.askInNewChat")}),(0,p.jsx)("button",{type:"button",className:"file-viewer-icon-button",title:S("i18n.close"),"aria-label":S("i18n.close"),disabled:bG,onClick:bM,style:{border:"none"},children:(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"m6 6 12 12M18 6 6 18"})})})]}),(0,p.jsx)(ej,{ref:bL,compact:!0,onSend:bP,onAbort:bM,isStreaming:!1}),bI&&(0,p.jsx)("div",{role:"alert",style:{color:"#dc2626",fontSize:12,overflowWrap:"anywhere"},children:bI})]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:S("chat.askInCurrent"),"aria-label":S("chat.askInCurrent"),onPointerDown:a=>a.preventDefault(),onClick:bO,style:{width:"auto",height:35,flex:"0 0 auto",gap:5,padding:"0 10px",border:"none",fontSize:12,fontWeight:500},children:[(0,p.jsx)("span",{"aria-hidden":"true",style:{fontSize:15},children:"@"}),(0,p.jsx)("span",{children:S("chat.askInCurrent")})]}),H&&bC.sourceEntryId&&!am&&(0,p.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:S("chat.askInNewChat"),"aria-label":S("chat.askInNewChat"),onPointerDown:a=>a.preventDefault(),onClick:()=>{bF(!0),window.getSelection()?.removeAllRanges()},style:{width:"auto",height:35,flex:"0 0 auto",gap:5,padding:"0 10px",border:"none",fontSize:12,fontWeight:500},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M6 3v12M18 9a9 9 0 0 1-9 9"}),(0,p.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,p.jsx)("circle",{cx:"6",cy:"18",r:"3"})]}),(0,p.jsx)("span",{children:S("chat.askInNewChat")})]})]})}),document.body),(0,p.jsxs)("div",{className:"relative shrink-0",children:[!cd&&(0,p.jsx)("div",{style:{position:"absolute",bottom:"100%",left:0,right:36*!T,display:"flex",justifyContent:"center",paddingBottom:10,pointerEvents:"none",zIndex:20},children:(0,p.jsx)("button",{type:"button",className:`chat-scroll-to-bottom${a1&&!Z?" is-visible":""}`,title:S("chat.scrollToLatest"),"aria-label":S("chat.scrollToLatest"),onClick:()=>bw("smooth"),children:(0,p.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M12 5v14M5 12l7 7 7-7"})})})}),cd&&(0,p.jsx)("div",{className:"new-session-hero",style:{paddingLeft:16,paddingRight:T?16:52},children:(0,p.jsxs)("div",{className:"new-session-hero-inner",style:{maxWidth:"var(--chat-content-max-width, 820px)"},children:[(0,p.jsxs)("div",{className:"new-session-brand",children:[(0,p.jsx)(cA.default,{src:"/icons/apple-touch-icon.png",width:40,height:40,alt:"",priority:!0,className:"new-session-logo"}),(0,p.jsxs)("div",{className:"new-session-brand-text",children:[(0,p.jsx)("span",{className:"new-session-brand-name",children:"Pi Web"}),(0,p.jsxs)("span",{className:"new-session-meta",children:[(0,p.jsxs)("span",{children:["web v","0.13.1"]}),(0,p.jsx)(fm,{label:a=>S("appUpdate.releaseNotes",{version:a})}),(0,p.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,p.jsxs)("span",{className:"new-session-meta-pi",children:["pi v","1.2.0"]})]})]})]}),j]})}),(0,p.jsx)(ek.Z,{snapshot:b9}),cl,(0,p.jsx)(eE,{statuses:aP,widgets:aR,onCommand:ba,commandsDisabled:bB})]}),cd&&(0,p.jsx)("div",{className:"min-h-0 flex-1"})]})}let fp=(0,q.memo)(function({store:a,onCommit:b,toolResults:c,modelNames:d,cwd:e,onOpenFile:f,onOpenSubagent:g,onEnterSubagent:h}){let i=fh(a,fk);return((0,q.useLayoutEffect)(b,[i,b]),i)?(0,p.jsx)(cX.Dx,{message:i,toolResults:c,isStreaming:!0,modelNames:d,cwd:e,onOpenFile:f,onOpenSubagent:g,onEnterSubagent:h}):null});function fq({notices:a,floating:b=!1,onPauseChange:c}){return 0===a.length?null:(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",marginBottom:10*!b},children:a.map((d,e)=>{var f;let g,h,i,j="error"===d.type?"#ef4444":"warning"===d.type?"#d97706":"success"===d.type?"#10b981":"var(--accent)";return(0,p.jsxs)("div",{className:"notice-shelf-item",onMouseEnter:()=>c?.(d.id),onMouseLeave:a=>{a.currentTarget.contains(document.activeElement)||c?.(null)},onFocus:()=>c?.(d.id),onBlur:a=>{a.currentTarget.matches(":hover")||c?.(null)},style:{display:"flex",alignItems:"flex-start",gap:10,minHeight:60,height:"auto",maxHeight:500,pointerEvents:"auto",marginBottom:6*(e!==a.length-1),overflow:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:b?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:14,lineHeight:1.5,transformOrigin:"top right",animation:d.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out backwards",padding:"0 12px"},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:j,flexShrink:0,marginTop:25.5}}),(0,p.jsx)("span",{tabIndex:0,style:{padding:"18.5px 0",minWidth:0,maxWidth:"100%",maxHeight:498,overflowY:"auto",scrollbarWidth:"thin",whiteSpace:"pre-line",wordBreak:"break-word"},children:(f=d.message,g=[],h=(a,b)=>{if(!b)return;let c=g[g.length-1];c?.kind===a?c.text+=b:g.push({kind:a,text:b})},i=!1,f.split("\n").forEach((a,b)=>{let c=cI.test(a);b>0&&h(c&&i?"art":"text","\n"),h(c?"art":"text",a),i=c}),g).map((a,b)=>"art"===a.kind?(0,p.jsx)("span",{style:{display:"inline-block",verticalAlign:"top",maxWidth:"100%",overflowX:"auto",whiteSpace:"pre",fontFamily:"Menlo, Consolas, 'DejaVu Sans Mono', monospace",lineHeight:1,color:"var(--text)"},children:a.text},b):a.text)})]},d.id)})})}function fr({count:a}){let{t:b}=(0,aG.s)();return a<=0?null:(0,p.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",whiteSpace:"nowrap",flexShrink:0},children:b("chat.extensionMoreWaiting",{count:a})})}function fs({expanded:a}){return(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:a?(0,p.jsx)("path",{d:"M3.5 1v2.5H1M6.5 1v2.5H9M6.5 9v-2.5H9M3.5 9v-2.5H1"}):(0,p.jsx)("path",{d:"M1 3.5V1h2.5M6.5 1H9v2.5M9 6.5V9H6.5M3.5 9H1V6.5"})})}function ft({request:a,waitingCount:b,onRespond:c}){let{t:d}=(0,aG.s)(),[e,f]=(0,q.useState)("editor"===a.method?a.prefill??"":""),[g,h]=(0,q.useState)(!1),i=(0,q.useRef)(null),j=(0,q.useRef)(null),[k,l]=(0,q.useState)(null),[m,n]=(0,q.useState)(!1),o=(0,q.useCallback)(()=>n(a=>!a),[]),[r,s]=(0,q.useState)(()=>Date.now()),t=(0,q.useCallback)(a=>a?.focus(),[]),u=function(a){if("select"===a.method&&a.options.length>0)return a.options[0];if("confirm"===a.method){let b=a.message.split("\n").find(a=>a.trim());return b?.trim()}}(a),v=void 0===a.expiresAt?null:Math.max(0,Math.ceil((a.expiresAt-r)/1e3)),w=null!==v&&(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:d("chat.extensionExpiresIn",{seconds:v})}),x=()=>{"confirm"===a.method?c(a,{confirmed:!0}):c(a,{value:e})};return(0,p.jsx)("div",{onKeyDown:b=>{"Escape"!==b.key||b.nativeEvent.isComposing||(b.preventDefault(),b.stopPropagation(),c(a,{cancelled:!0}))},style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:g?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:g?(0,p.jsxs)("button",{type:"button",onClick:()=>h(!1),"aria-expanded":!1,style:{pointerEvents:"auto",display:"flex",alignItems:"center",gap:10,maxWidth:"min(560px, 100%)",width:"100%",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 12px 32px rgba(0,0,0,0.18)",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,p.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:d("chat.extensionPending")}),(0,p.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:a.title}),u&&(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:u}),(0,p.jsx)(fr,{count:b}),w,(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:d("chat.extensionExpand")})]}):(0,p.jsxs)("div",{ref:i,role:"dialog","aria-label":a.title,style:{pointerEvents:"auto",width:m?"100%":`min(${k??560}px, 100%)`,maxHeight:m?"100%":"min(760px, 100%)",display:"flex",flexDirection:"column",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,p.jsxs)("div",{style:{flexShrink:1,minHeight:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50vh",overflowY:"auto"},children:[(0,p.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,p.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:a.title}),(0,p.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,p.jsx)("span",{children:d("chat.extensionRequest")}),(0,p.jsx)(fr,{count:b}),w]})]}),(0,p.jsx)("button",{type:"button",onClick:o,title:d(m?"chat.extensionRestoreSize":"chat.extensionMaximize"),"aria-label":d(m?"chat.extensionRestoreSize":"chat.extensionMaximize"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,p.jsx)(fs,{expanded:m})}),(0,p.jsx)("button",{type:"button",onClick:()=>h(!0),"aria-expanded":!0,title:d("chat.extensionCollapse"),"aria-label":d("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,p.jsxs)("div",{ref:j,style:{padding:14,flex:"1 1 auto",minHeight:0,overflowY:"auto"},children:["confirm"===a.method&&(0,p.jsx)(cY.m,{children:a.message}),"select"===a.method&&(0,p.jsx)("div",{onKeyDown:a=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(a.key))return;let b=Array.from(a.currentTarget.querySelectorAll("[data-extension-option]")),c=b.indexOf(a.target);if(c<0)return;a.preventDefault();let d="Home"===a.key?0:"End"===a.key?b.length-1:(c+("ArrowDown"===a.key||"ArrowRight"===a.key?1:-1)+b.length)%b.length;b[d].focus({preventScroll:!0}),b[d].scrollIntoView({block:"nearest"})},style:{display:"grid",gap:8},children:a.options.map((b,d)=>(0,p.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":b,ref:0===d?t:void 0,onClick:()=>c(a,{value:b}),onKeyDown:d=>{("Enter"===d.key||" "===d.key)&&(d.preventDefault(),c(a,{value:b}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,p.jsx)("div",{inert:!0,children:(0,p.jsx)(cY.m,{children:b})})},b))}),"input"===a.method&&(0,p.jsx)("input",{autoFocus:!0,value:e,placeholder:a.placeholder,onChange:a=>f(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.nativeEvent.isComposing||x()},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===a.method&&(0,p.jsx)("textarea",{autoFocus:!0,value:e,onChange:a=>f(a.target.value),onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&!a.nativeEvent.isComposing&&x()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,p.jsxs)("div",{style:{flexShrink:0,display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,p.jsx)("button",{autoFocus:"confirm"===a.method||"select"===a.method&&0===a.options.length,onClick:()=>c(a,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:d("chat.cancel")}),"confirm"===a.method?(0,p.jsx)("button",{onClick:x,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:d("chat.confirm")}):"select"!==a.method?(0,p.jsx)("button",{onClick:x,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:d("chat.submit")}):null]})]})})}function fu({request:a,waitingCount:b,onInput:c}){let{t:d}=(0,aG.s)(),e=(0,q.useRef)(null),f=(0,q.useRef)(!1),[g,h]=(0,q.useState)(!1),i=function(a){let b=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,c=[];for(let d of a){let a=d.replace(cD,""),e=cE(a).trimEnd();if(b.test(e))continue;let f=a,g=cH(f);("│"===g||"┃"===g)&&" "===cH(f=cG(f,0))&&(f=cG(f,0));let h=function(a){let b=cF(a);for(let a=b.length-1;a>=0;a--)if(""!==b[a].char.trim())return a;return -1}(f),i=h>=0?cF(f)[h]?.char:void 0;("│"===i||"┃"===i)&&(f=cG(f,h)),c.push(function(a){let b=a;for(;;){let a=cF(b),c=a[a.length-1];if(!c||""!==c.char.trim())return b;b=b.slice(0,c.start)+b.slice(c.end)}}(f))}for(;c.length>0&&""===cE(c[0]).trim();)c.shift();for(;c.length>0&&""===cE(c[c.length-1]).trim();)c.pop();return c.length?c:a}(a.lines),j=i.find(a=>a.trim())?.trim();return(0,p.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:g?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:g?(0,p.jsxs)("button",{type:"button",onClick:()=>h(!1),"aria-expanded":!1,style:{pointerEvents:"auto",display:"flex",alignItems:"center",gap:10,maxWidth:"min(920px, 100%)",width:"100%",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 12px 32px rgba(0,0,0,0.18)",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,p.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:d("chat.extensionPending")}),(0,p.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:d("chat.extensionPanel")}),j&&(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:j}),(0,p.jsx)(fr,{count:b}),(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:d("chat.extensionExpand")})]}):(0,p.jsxs)("div",{role:"dialog",onClick:a=>{a.target.closest("button")||e.current?.focus()},style:{pointerEvents:"auto",position:"relative",width:"max-content",minWidth:"min(920px, 100%)",maxWidth:"100%",maxHeight:"min(760px, 100%)",display:"flex",flexDirection:"column",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,p.jsx)("textarea",{ref:e,"aria-label":d("chat.extensionInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:b=>{if(f.current||b.nativeEvent.isComposing)return;let d=function(a){if(a.metaKey||a.ctrlKey&&!a.altKey&&"v"===a.key.toLowerCase())return null;if(a.ctrlKey&&!a.altKey){let b=function(a){if(1!==a.length)return null;let b=a.toUpperCase().charCodeAt(0);return b>=64&&b<=95?String.fromCharCode(31&b):"?"===a?"":null}(a.key);if(b)return b}if(a.altKey&&!a.ctrlKey){if("Backspace"===a.key)return"\x1b\x7f";let b=cK[a.key];if(b)return b;if(1===a.key.length)return`\x1b${a.key}`}return"Enter"===a.key?a.shiftKey?"\n":"\r":"Tab"===a.key?a.shiftKey?"\x1b[Z":" ":cJ[a.key]??null}(b);d&&(b.preventDefault(),b.stopPropagation(),c(a,d))},onInput:b=>{if(f.current||b.nativeEvent.isComposing)return;let d=b.currentTarget.value;b.currentTarget.value="",d&&c(a,d)},onCompositionStart:()=>{f.current=!0},onCompositionEnd:b=>{f.current=!1;let d=b.currentTarget;queueMicrotask(()=>{let b=d.value;d.value="",b&&c(a,b)})},onPaste:b=>{b.preventDefault();let d=b.clipboardData.getData("text");d&&c(a,`\x1b[200~${d}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,p.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,p.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:d("chat.extensionPanel")}),(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,p.jsx)(fr,{count:b}),(0,p.jsx)("button",{type:"button",onClick:()=>h(!0),"aria-expanded":!0,title:d("chat.extensionCollapse"),"aria-label":d("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}),(0,p.jsx)("button",{onClick:()=>c(a,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:d("chat.close")})]})]}),(0,p.jsx)("pre",{style:{margin:0,padding:14,minHeight:0,overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(0,p.jsx)(eB,{text:i.join("\n")})})]})})}function fv({context:a,mobile:b,initialFocus:c,onInitialFocusDone:d,onPick:e,onUseDefaultDirectory:f,onOpenFolder:g,onRefreshWorktrees:h,onCreateWorktree:i}){let{t:j}=(0,aG.s)(),[k,l]=(0,q.useState)(()=>""),m=(0,q.useRef)(null);return(0,q.useRef)(c),(0,q.useRef)(d).current=d,(0,p.jsx)("div",{className:"new-session-context",children:(0,p.jsx)(ck,{handleRef:m,layout:"inline",context:a,mobile:b,label:j("workspace.newSessionContext"),homeDir:k,newWorktreeTitle:j("sidebar.newWorktreeForSession"),onPick:e,onUseDefaultDirectory:f,onOpenFolder:g,onRefreshWorktrees:h,onCreateWorktree:i})})}var fw=c(46316),fx=c(69034),fy=c(56547),fz=c(49227),fA=c(50428),fB=c(92108),fC=Symbol("NOT_RESOLVED");function fD(a,b){return{tagName:a,nodeKind:"scalar",implicit:b.implicit??!1,matchByTagPrefix:b.matchByTagPrefix??!1,implicitFirstChars:b.implicitFirstChars??null,resolve:b.resolve,identify:b.identify,represent:b.represent??(a=>String(a)),representTagName:b.representTagName??(()=>a)}}function fE(a,b){let c=void 0===b.finalize;return{tagName:a,nodeKind:"sequence",implicit:!1,matchByTagPrefix:b.matchByTagPrefix??!1,create:b.create,addItem:b.addItem,finalize:b.finalize??(a=>a),carrierIsResult:c,identify:b.identify,represent:b.represent??(a=>a),representTagName:b.representTagName??(()=>a)}}function fF(a,b){let c=void 0===b.finalize;return{tagName:a,nodeKind:"mapping",implicit:!1,matchByTagPrefix:b.matchByTagPrefix??!1,create:b.create,addPair:b.addPair,has:b.has,keys:b.keys,get:b.get,finalize:b.finalize??(a=>a),carrierIsResult:c,identify:b.identify,represent:b.represent??(a=>a),representTagName:b.representTagName??(()=>a)}}var fG=fD("tag:yaml.org,2002:str",{resolve:a=>a,identify:a=>"string"==typeof a}),fH=["","~","null","Null","NULL"],fI=fD("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["","~","n","N"],resolve:a=>-1!==fH.indexOf(a)?null:fC,identify:a=>null===a,represent:()=>"null"}),fJ=fD("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["n"],resolve:(a,b)=>"null"===a||b&&""===a?null:fC,identify:a=>null===a,represent:()=>"null"}),fK=["","~","null","Null","NULL"],fL=fD("tag:yaml.org,2002:null",{implicit:!0,implicitFirstChars:["","~","n","N"],resolve:a=>-1!==fK.indexOf(a)?null:fC,identify:a=>null===a,represent:()=>"null"}),fM=["true","True","TRUE"],fN=["false","False","FALSE"],fO=fD("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["t","T","f","F"],resolve:a=>-1!==fM.indexOf(a)||-1===fN.indexOf(a)&&fC,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),fP=["true"],fQ=["false"],fR=fD("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["t","f"],resolve:a=>-1!==fP.indexOf(a)||-1===fQ.indexOf(a)&&fC,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),fS=["true","True","TRUE","y","Y","yes","Yes","YES","on","On","ON"],fT=["false","False","FALSE","n","N","no","No","NO","off","Off","OFF"],fU=fD("tag:yaml.org,2002:bool",{implicit:!0,implicitFirstChars:["y","Y","n","N","t","T","f","F","o","O"],resolve:a=>-1!==fS.indexOf(a)||-1===fT.indexOf(a)&&fC,identify:a=>"[object Boolean]"===Object.prototype.toString.call(a),represent:a=>a?"true":"false"}),fV=RegExp("^(?:0o[0-7]+|0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),fW=RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),fX=fD("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-","+",..."0123456789"],resolve:function(a,b){let c,d;if(b){if(!fW.test(a))return fC}else if(!fV.test(a))return fC;let e=(d=1,(("-"===(c=a)[0]||"+"===c[0])&&("-"===c[0]&&(d=-1),c=c.slice(1)),c.startsWith("0b"))?d*parseInt(c.slice(2),2):c.startsWith("0o")?d*parseInt(c.slice(2),8):c.startsWith("0x")?d*parseInt(c.slice(2),16):d*parseInt(c,10));return Number.isFinite(e)?e:fC},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),fY=RegExp("^-?(?:0|[1-9][0-9]*)$"),fZ=RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"),f$=fD("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-",..."0123456789"],resolve:function(a,b){let c,d;if(b){if(!fZ.test(a))return fC}else if(!fY.test(a))return fC;let e=(d=1,(("-"===(c=a)[0]||"+"===c[0])&&("-"===c[0]&&(d=-1),c=c.slice(1)),c.startsWith("0b"))?d*parseInt(c.slice(2),2):c.startsWith("0o")?d*parseInt(c.slice(2),8):c.startsWith("0x")?d*parseInt(c.slice(2),16):d*parseInt(c,10));return Number.isFinite(e)?e:fC},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),f_=RegExp("^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?0x[0-9a-fA-F_]+|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+|[-+]?(?:0|[1-9][0-9_]*))$"),f0=fD("tag:yaml.org,2002:int",{implicit:!0,implicitFirstChars:["-","+",..."0123456789"],resolve:function(a){if(!f_.test(a))return fC;let b=function(a){let b=a.replace(/_/g,""),c=1;if(("-"===b[0]||"+"===b[0])&&("-"===b[0]&&(c=-1),b=b.slice(1)),b.startsWith("0b"))return c*parseInt(b.slice(2),2);if(b.startsWith("0x"))return c*parseInt(b.slice(2),16);if(b.includes(":")){let a=0;for(let c of b.split(":"))a=60*a+Number(c);return c*a}return"0"!==b&&"0"===b[0]?c*parseInt(b,8):c*parseInt(b,10)}(a);return Number.isFinite(b)?b:fC},identify:a=>Number.isInteger(a)&&!Object.is(a,-0)&&0>a.toString(10).indexOf("e"),represent:a=>a.toString(10)}),f1=RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),f2=RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),f3=fD("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-","+",".",..."0123456789"],resolve:function(a){if(!f1.test(a))return fC;let b=a.toLowerCase(),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=c*parseFloat(b);return Number.isFinite(d)||f2.test(a)?d:fC},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),f4=RegExp("^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$"),f5=RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),f6=fD("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-",..."0123456789"],resolve:function(a,b){if(b){if(!f5.test(a))return fC;let b=a.toLowerCase(),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=c*parseFloat(b);return Number.isFinite(d)?d:fC}if(!f4.test(a))return fC;let c=Number(a);return Number.isFinite(c)?c:fC},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),f7=RegExp("^(?:[-+]?(?:(?:[0-9][0-9_]*)?\\.[0-9_]*)(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),f8=RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),f9=fD("tag:yaml.org,2002:float",{implicit:!0,implicitFirstChars:["-","+",".",..."0123456789"],resolve:function(a){if(!f7.test(a))return fC;let b=a.toLowerCase().replace(/_/g,""),c="-"===b[0]?-1:1;if("+-".includes(b[0])&&(b=b.slice(1)),".inf"===b)return 1===c?1/0:-1/0;if(".nan"===b)return NaN;let d=0;if(b.includes(":")){for(let a of b.split(":"))d=60*d+Number(a);d*=c}else d=c*parseFloat(b);return Number.isFinite(d)||f8.test(a)?d:fC},identify:a=>"number"==typeof a&&(!Number.isInteger(a)||Object.is(a,-0)||a.toString(10).indexOf("e")>=0),represent:function(a){if(isNaN(a))return".nan";if(a===1/0)return".inf";if(a===-1/0)return"-.inf";if(Object.is(a,-0))return"-0.0";let b=a.toString(10);return/^[-+]?[0-9]+e/.test(b)?b.replace("e",".e"):b}}),ga=fD("tag:yaml.org,2002:merge",{implicit:!0,implicitFirstChars:["<"],resolve:(a,b)=>"<<"===a||b&&""===a?"<<":fC,identify:()=>!1}),gb=/^[A-Za-z0-9+/]*={0,2}$/,gc=fD("tag:yaml.org,2002:binary",{resolve:function(a){let b=a.replace(/\s/g,"");if(b.length%4!=0||!gb.test(b))return fC;let c=atob(b),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d},identify:a=>"[object Uint8Array]"===Object.prototype.toString.call(a),represent:function(a){let b="";for(let c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return btoa(b)}}),gd=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ge=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function gf(a,b,c,d=0,e=0,f=0,g=0){let h=new Date(Date.UTC(a,b,c,d,e,f,g));return h.setUTCFullYear(a,b,c),h}var gg=fD("tag:yaml.org,2002:timestamp",{implicit:!0,implicitFirstChars:[..."0123456789"],resolve:function(a){let b=gd.exec(a);if(null===b&&(b=ge.exec(a)),null===b)return fC;let c=+b[1],d=b[2]-1,e=+b[3];if(!b[4]){let a=gf(c,d,e);return a.getUTCFullYear()!==c||a.getUTCMonth()!==d||a.getUTCDate()!==e?fC:a}let f=+b[4],g=+b[5],h=+b[6],i=0;if(f>23||g>59||h>59)return fC;if(b[7]){let a=b[7].slice(0,3);for(;a.length<3;)a+="0";i=+a}let j=gf(c,d,e,f,g,h,i);if(j.getUTCFullYear()!==c||j.getUTCMonth()!==d||j.getUTCDate()!==e)return fC;if(b[9]){let a=+b[10],c=+(b[11]||0);if(a>23||c>59)return fC;let d=(60*a+c)*6e4;j.setTime(j.getTime()-("-"===b[9]?-d:d))}return j},identify:a=>a instanceof Date,represent:a=>a.toISOString()}),gh=fE("tag:yaml.org,2002:seq",{create:()=>[],addItem:(a,b)=>{a.push(b)},identify:Array.isArray});function gi(a){if(null===a||"object"!=typeof a||Array.isArray(a))return!1;let b=Object.getPrototypeOf(a);return null===b||b===Object.prototype}function gj(a,b){let c={};for(let d of b)void 0!==a[d]&&(c[d]=a[d]);return c}var gk=fE("tag:yaml.org,2002:omap",{create:()=>({list:[],seen:new Set}),addItem:(a,b)=>{let c;if(b instanceof Map){if(1!==b.size)return"cannot resolve an ordered map item";c=b.keys().next().value}else{if(!gi(b))return"cannot resolve an ordered map item";let a=Object.keys(b);if(1!==a.length)return"cannot resolve an ordered map item";c=a[0]}return a.seen.has(c)?"duplicate key in ordered map":(a.seen.add(c),a.list.push(b),"")},finalize:a=>a.list,identify:()=>!1}),gl=fE("tag:yaml.org,2002:pairs",{create:()=>[],addItem:(a,b)=>{if(b instanceof Map)return 1!==b.size?"cannot resolve a pairs item":(a.push(b.entries().next().value),"");if("[object Object]"!==Object.prototype.toString.call(b))return"cannot resolve a pairs item";let c=Object.keys(b);return 1!==c.length?"cannot resolve a pairs item":(a.push([c[0],b[c[0]]]),"")},identify:()=>!1}),gm=fF("tag:yaml.org,2002:map",{create:()=>({}),identify:gi,represent:a=>{let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b},addPair:(a,b,c)=>{if(null!==b&&"object"==typeof b)return"object-based map does not support complex keys";let d=String(b);return"__proto__"===d?Object.defineProperty(a,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[d]=c,""},has:(a,b)=>(null===b||"object"!=typeof b)&&Object.prototype.hasOwnProperty.call(a,String(b)),keys:a=>Object.keys(a),get:(a,b)=>{let c=String(b);return Object.prototype.hasOwnProperty.call(a,c)?a[c]:null}}),gn=fF("tag:yaml.org,2002:set",{create:()=>new Set,identify:a=>a instanceof Set,represent:a=>{let b=new Map;for(let c of a)b.set(c,null);return b},addPair:(a,b,c)=>null!==c?"cannot resolve a set item":(a.add(b),""),has:(a,b)=>a.has(b),keys:a=>a.keys(),get:()=>null}),go=class a{tags;implicitScalarTags;implicitScalarByFirstChar;implicitScalarAnyFirstChar;defaultScalarTag;defaultSequenceTag;defaultMappingTag;exact;prefix;constructor(a){const b=function(a){let b=[];for(let c of a){let a=b.length;for(let d=0;d<b.length;d++){let e=b[d];if(e.nodeKind===c.nodeKind&&e.tagName===c.tagName&&e.matchByTagPrefix===c.matchByTagPrefix){a=d;break}}b[a]=c}return b}(a),c=[],d={scalar:Object.create(null),sequence:Object.create(null),mapping:Object.create(null)},e={scalar:[],sequence:[],mapping:[]};for(const a of b){if("scalar"===a.nodeKind&&a.implicit){if(a.matchByTagPrefix)throw Error("Implicit scalar tags cannot match by tag prefix");c.push(a)}switch(a.nodeKind){case"scalar":a.matchByTagPrefix?e.scalar.push(a):d.scalar[a.tagName]=a;break;case"sequence":a.matchByTagPrefix?e.sequence.push(a):d.sequence[a.tagName]=a;break;case"mapping":a.matchByTagPrefix?e.mapping.push(a):d.mapping[a.tagName]=a}}const f=c.filter(a=>null===a.implicitFirstChars),g=new Set;for(const a of c)if(null!==a.implicitFirstChars)for(const b of a.implicitFirstChars)g.add(b);const h=new Map;for(const a of g)h.set(a,c.filter(b=>null===b.implicitFirstChars||-1!==b.implicitFirstChars.indexOf(a)));const i=d.scalar["tag:yaml.org,2002:str"];if(!i)throw Error("schema does not define the default scalar tag (tag:yaml.org,2002:str)");this.tags=b,this.implicitScalarTags=c,this.implicitScalarByFirstChar=h,this.implicitScalarAnyFirstChar=f,this.defaultScalarTag=i,this.defaultSequenceTag=d.sequence["tag:yaml.org,2002:seq"],this.defaultMappingTag=d.mapping["tag:yaml.org,2002:map"],this.exact=d,this.prefix=e}lookupScalarTag(a){let b=this.exact.scalar[a];if(b)return b;for(let b of this.prefix.scalar)if(a.startsWith(b.tagName))return b}lookupSequenceTag(a){let b=this.exact.sequence[a];if(b)return b;for(let b of this.prefix.sequence)if(a.startsWith(b.tagName))return b}lookupMappingTag(a){let b=this.exact.mapping[a];if(b)return b;for(let b of this.prefix.mapping)if(a.startsWith(b.tagName))return b}resolveImplicitScalarTag(a){for(let b of this.implicitScalarByFirstChar.get(a.charAt(0))??this.implicitScalarAnyFirstChar){let c=b.resolve(a,!1,b.tagName);if(c!==fC)return{value:c,tag:b}}let b=this.defaultScalarTag;return{value:b.resolve(a,!1,b.tagName),tag:b}}withTags(...b){let c=[];for(let a of b)c=c.concat(a);return new a([...this.tags,...c])}},gp=new go([fG,gh,gm]);new go([...gp.tags,fJ,fR,f$,f6]);var gq=new go([...gp.tags,fI,fO,fX,f3]),gr=new go([...gp.tags,fL,fU,f0,f9,gg,ga,gc,gk,gl,gn]).withTags({...f0,resolve:(a,b,c)=>{let d=f0.resolve(a,b,c);return d===fC?fX.resolve(a,b,c):d}},{...f9,resolve:(a,b,c)=>{let d=f9.resolve(a,b,c);return d===fC?f3.resolve(a,b,c):d}});function gs(a){if(Array.isArray(a)){let b=Array.prototype.slice.call(a);for(let a=0;a<b.length;a++){if(Array.isArray(b[a]))return null;"object"==typeof b[a]&&"[object Object]"===Object.prototype.toString.call(b[a])&&(b[a]="[object Object]")}return String(b)}return"object"==typeof a&&"[object Object]"===Object.prototype.toString.call(a)?"[object Object]":String(a)}fF("tag:yaml.org,2002:map",{create:()=>new Map,addPair:(a,b,c)=>(a.set(b,c),""),has:(a,b)=>a.has(b),keys:a=>a.keys(),get:(a,b)=>a.get(b),identify:a=>a instanceof Map||gi(a),represent:a=>{if(a instanceof Map)return a;let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b}}),fF("tag:yaml.org,2002:map",{create:()=>({}),identify:gi,represent:a=>{let b=new Map;for(let c of Object.keys(a))b.set(c,a[c]);return b},addPair:(a,b,c)=>{let d=gs(b);return null===d?"nested arrays are not supported inside keys":("__proto__"===d?Object.defineProperty(a,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[d]=c,"")},has:(a,b)=>{let c=gs(b);return null!==c&&Object.prototype.hasOwnProperty.call(a,c)},keys:a=>Object.keys(a),get:(a,b)=>{let c=String(b);return Object.prototype.hasOwnProperty.call(a,c)?a[c]:null}});var gt={maxLength:79,indent:1,linesBefore:3,linesAfter:2};function gu(a,b,c,d,e){let f="",g="",h=Math.floor(e/2)-1;return d-b>h&&(b=d-h+(f=" ... ").length),c-d>h&&(c=d+h-(g=" ...").length),{str:f+a.slice(b,c).replace(/\t/g,"→")+g,pos:d-b+f.length}}function gv(a,b){return" ".repeat(Math.max(b-a.length,0))+a}function gw(a,b){let c="";return a.mark?(a.mark.name&&(c+=`in "${a.mark.name}" `),c+=`(${a.mark.line+1}:${a.mark.column+1})`,!b&&a.mark.snippet&&(c+=`
|
|
11
|
+
|
|
12
|
+
${a.mark.snippet}`),`${a.reason} ${c}`):a.reason}var gx=class a extends Error{reason;mark;constructor(a,b){super(),this.name="YAMLException",this.reason=a,this.mark=b,this.message=gw(this,!1),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toString(a){return`${this.name}: ${gw(this,a)}`}static throwAt(b,c,d,e=""){let f=0,g=0;for(let a=0;a<c;a++){let c=b.charCodeAt(a);10===c?(f++,g=a+1):13===c&&(f++,10===b.charCodeAt(a+1)&&a++,g=a+1)}let h={name:e,buffer:b,position:c,line:f,column:c-g};throw h.snippet=function(a){let b;if(!a.buffer)return null;let c={...gt,...void 0},d=/\r?\n|\r|\0/g,e=[0],f=[],g=-1;for(;b=d.exec(a.buffer);)f.push(b.index),e.push(b.index+b[0].length),a.position<=b.index&&g<0&&(g=e.length-2);g<0&&(g=e.length-1);let h="",i=Math.min(a.line+c.linesAfter,f.length).toString().length,j=c.maxLength-(c.indent+i+3);for(let b=1;b<=c.linesBefore&&!(g-b<0);b++){let d=gu(a.buffer,e[g-b],f[g-b],a.position-(e[g]-e[g-b]),j);h=`${" ".repeat(c.indent)}${gv((a.line-b+1).toString(),i)} | ${d.str}
|
|
13
|
+
${h}`}let k=gu(a.buffer,e[g],f[g],a.position,j);h+=`${" ".repeat(c.indent)}${gv((a.line+1).toString(),i)} | ${k.str}
|
|
14
|
+
${"-".repeat(c.indent+i+3+k.pos)}^
|
|
15
|
+
`;for(let b=1;b<=c.linesAfter&&!(g+b>=f.length);b++){let d=gu(a.buffer,e[g+b],f[g+b],a.position-(e[g]-e[g+b]),j);h+=`${" ".repeat(c.indent)}${gv((a.line+b+1).toString(),i)} | ${d.str}
|
|
16
|
+
`}return h.replace(/\n$/,"")}(h),new a(d,h)}};function gy(a){switch(a){case 48:return"\0";case 97:return"\x07";case 98:return"\b";case 116:case 9:return" ";case 110:return"\n";case 118:return"\v";case 102:return"\f";case 114:return"\r";case 101:return"\x1b";case 32:return" ";case 34:return'"';case 47:return"/";case 92:return"\\";case 78:return"\x85";case 95:return"\xa0";case 76:return"\u2028";case 80:return"\u2029";default:return""}}var gz=Array(256),gA=Array(256);for(let a=0;a<256;a++)gz[a]=+!!gy(a),gA[a]=gy(a);function gB(a,b,c){let d=0;for(;b<c;){let c=a.charCodeAt(b);if(10===c)d++,b++;else if(13===c)d++,b++,10===a.charCodeAt(b)&&b++;else if(32===c||9===c)b++;else break}return{position:b,breaks:d}}function gC(a){return 1===a?" ":"\n".repeat(a-1)}function gD(a,b,c,d,e,f){let g=d<0?0:d,h=a.slice(b,c).replace(/\r\n?/g,"\n"),i=""===h?[]:(h.endsWith("\n")?h.slice(0,-1):h).split("\n"),j="",k=!1,l=0,m=!1;for(let a of i){let b=0;for(;b<g&&32===a.charCodeAt(b);)b++;if(d<0||b>=a.length){l++;continue}let c=a.slice(g),e=c.charCodeAt(0);f?32===e||9===e?(m=!0,j+="\n".repeat(k?1+l:l)):m?(m=!1,j+="\n".repeat(l+1)):0===l?k&&(j+=" "):j+="\n".repeat(l):j+="\n".repeat(k?1+l:l),j+=c,k=!0,l=0}return 3===e?j+="\n".repeat(k?1+l:l):2!==e&&k&&(j+="\n"),j}var gE=Object.assign(Object.create(null),{"!":"!","!!":"tag:yaml.org,2002:"});function gF(a,b){if(a.startsWith("!<")&&a.endsWith(">"))return decodeURIComponent(a.slice(2,-1));let c=a.indexOf("!",1),d=-1===c?"!":a.slice(0,c+1);return decodeURIComponent(b?.[d]??gE[d]??d)+decodeURIComponent(a.slice(d.length))}var gG={filename:"",schema:gq,json:!1,maxTotalMergeKeys:1e4,maxAliases:-1};function gH(a,b){gx.throwAt(a.source,a.position,b,a.filename)}function gI(a,b,c,d){try{return c.finalize(d)}catch(c){if(c instanceof gx)throw c;gx.throwAt(a.source,b,c instanceof Error?c.message:String(c),a.filename)}}function gJ(a,b,c){let d=-1===b.tagStart?"":a.source.slice(b.tagStart,b.tagEnd);return""===d||"!"===d?c:gF(d,a.tagHandlers)}function gK(a){return"mapping"===a.nodeKind}function gL(a){a.totalMergeKeys++,-1!==a.maxTotalMergeKeys&&a.totalMergeKeys>a.maxTotalMergeKeys&&gH(a,`merge keys exceeded maxTotalMergeKeys (${a.maxTotalMergeKeys})`)}function gM(a,b,c,d){for(let e of(gL(a),d.keys(c))){if(gL(a),b.tag.has(b.value,e))continue;let f=b.tag.addPair(b.value,e,d.get(c,e));f&&gH(a,f),b.overridable??=new Set,b.overridable.add(e)}}function gN(a,b,c){let d=a.frames[a.frames.length-1];if("document"===d.kind)d.value=b,d.hasValue=!0;else if("sequence"===d.kind){gK(c)&&a.nodeTags.set(b,c);let e=d.tag.addItem(d.value,b,d.index++);e&&gH(a,e)}else if(d.hasKey){let e=d.key;d.key=void 0,d.hasKey=!1,function(a,b,c,d,e){if(a.position=b.keyPosition,b.keyIsMerge){var f=a,g=b,h=d,i=e;if(f.position=g.keyPosition,gK(i))gM(f,g,h,i);else if("sequence"===i.nodeKind&&Array.isArray(h))for(let a of(h.length>100&&gH(f,"abnormal merge sequence size"),h)){let b=f.nodeTags.get(a);b||gH(f,"cannot merge mappings; the provided source object is unacceptable"),gM(f,g,a,b)}else gH(f,"cannot merge mappings; the provided source object is unacceptable");return}!a.json&&b.tag.has(b.value,c)&&!b.overridable?.has(c)&&gH(a,"duplicated mapping key");let j=b.tag.addPair(b.value,c,d);j&&gH(a,j),b.overridable?.delete(c)}(a,d,e,b,c)}else d.key=b,d.keyPosition=a.position,d.hasKey=!0,d.keyIsMerge="tag:yaml.org,2002:merge"===c.tagName}function gO(a,b,c,d,e){if(-1!==b.anchorStart){let f={value:c,tag:d,isValueFinal:e};return a.anchors.set(a.source.slice(b.anchorStart,b.anchorEnd),f),f}return null}var gP=Object.prototype.hasOwnProperty,gQ=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,gR=/[,\[\]{}]/,gS=/^(?:!|!!|![0-9A-Za-z-]+!)$/,gT=String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]])`,gU=String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\-#;/?:@&=+$.~*'()_])`,gV=RegExp(`^(?:${gT})*$`),gW=RegExp(`^(?:${gU})+$`),gX=RegExp(`^(?:!(?:${gT})*|${gU}(?:${gT})*)$`),gY={filename:"",maxDepth:100};function gZ(a,b,c,d,e,f,g){a.events.push({type:2,start:b,anchorStart:c,anchorEnd:d,tagStart:e,tagEnd:f,style:g})}function g$(a,b,c,d,e,f,g){a.events.push({type:3,start:b,anchorStart:c,anchorEnd:d,tagStart:e,tagEnd:f,style:g})}function g_(a,b){a.events.splice(b.eventsLength,0,{type:3,start:b.position,anchorStart:-1,anchorEnd:-1,tagStart:-1,tagEnd:-1,style:2})}function g0(a,b,c,d,e,f,g,h,i=1,j=-1,k=!1){a.events.push({type:4,valueStart:b,valueEnd:c,anchorStart:d,anchorEnd:e,tagStart:f,tagEnd:g,style:h,chomping:i,indent:j,fast:k})}function g1(a){a.events.push({type:6})}function g2(a){g0(a,-1,-1,-1,-1,-1,-1,1)}function g3(){return{anchorStart:-1,anchorEnd:-1,tagStart:-1,tagEnd:-1}}function g4(a){return{position:a.position,line:a.line,lineStart:a.lineStart,lineIndent:a.lineIndent,firstTabInLine:a.firstTabInLine,eventsLength:a.events.length}}function g5(a,b){a.position=b.position,a.line=b.line,a.lineStart=b.lineStart,a.lineIndent=b.lineIndent,a.firstTabInLine=b.firstTabInLine,a.events.length=b.eventsLength}function g6(a,b){gx.throwAt(a.input.slice(0,a.length),a.position,b,a.filename)}function g7(a){return 10===a||13===a}function g8(a){return 9===a||32===a}function g9(a){return g8(a)||g7(a)}function ha(a){return 0===a||g9(a)}function hb(a){return 44===a||91===a||93===a||123===a||125===a}function hc(a){10===a.input.charCodeAt(a.position)?a.position++:(a.position++,10===a.input.charCodeAt(a.position)&&a.position++),a.line++,a.lineStart=a.position,a.lineIndent=0,a.firstTabInLine=-1}function hd(a,b){let c=0,d=a.input.charCodeAt(a.position),e=a.position===a.lineStart||g9(a.input.charCodeAt(a.position-1));for(;0!==d;){for(;g8(d);)e=!0,9===d&&-1===a.firstTabInLine&&(a.firstTabInLine=a.position),d=a.input.charCodeAt(++a.position);if(b&&e&&35===d)do d=a.input.charCodeAt(++a.position);while(!g7(d)&&0!==d);if(!g7(d))break;for(hc(a),c++,e=!0,d=a.input.charCodeAt(a.position);32===d;)a.lineIndent++,d=a.input.charCodeAt(++a.position)}return c}function he(a,b=a.position){let c=a.input.charCodeAt(b);if((45===c||46===c)&&c===a.input.charCodeAt(b+1)&&c===a.input.charCodeAt(b+2)){let c=a.input.charCodeAt(b+3);return 0===c||g9(c)}return!1}function hf(a){a.position===a.lineStart&&65279===a.input.charCodeAt(a.position)&&(a.position++,a.lineStart=a.position)}function hg(a){if(a.position!==a.lineStart)return!1;if(he(a))return!0;if(65279!==a.input.charCodeAt(a.position))return!1;let b=g4(a);hf(a),hd(a,!0);let c=a.input.charCodeAt(a.position),d=a.position===a.lineStart&&(37===c||45===c&&he(a));return g5(a,b),d}function hh(a){let b=a.input.charCodeAt(a.position);for(;0!==b&&!g7(b);)b=a.input.charCodeAt(++a.position)}function hi(a,b,c){gQ.test(a.input.slice(b,c))&&g6(a,"the stream contains non-printable characters")}function hj(a,b){hd(a,!1),a.lineIndent<b&&g6(a,"deficient indentation")}function hk(a,b){let c=a.line;hd(a,!0),(a.line>c&&a.lineIndent<b||-1!==a.firstTabInLine&&a.lineIndent<b)&&g6(a,"deficient indentation")}function hl(a,b,c){if(-1!==a.firstTabInLine||45!==a.input.charCodeAt(a.position)||!ha(a.input.charCodeAt(a.position+1)))return!1;for(gZ(a,a.position,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,1);45===a.input.charCodeAt(a.position)&&ha(a.input.charCodeAt(a.position+1));){-1!==a.firstTabInLine&&(a.position=a.firstTabInLine,g6(a,"tab characters must not be used in indentation"));let c=a.line;a.position++;let d=hd(a,!0)>0;if(-1!==a.firstTabInLine&&45===a.input.charCodeAt(a.position)&&ha(a.input.charCodeAt(a.position+1))&&g6(a,"bad indentation of a sequence entry"),d&&a.lineIndent<=b?g2(a):hn(a,b,3,!1,!0),hd(a,!0),a.lineIndent<b||a.position>=a.length)break;a.lineIndent>b&&g6(a,"bad indentation of a sequence entry"),a.line===c&&45===a.input.charCodeAt(a.position)&&ha(a.input.charCodeAt(a.position+1))&&g6(a,"bad indentation of a sequence entry")}return g1(a),!0}function hm(a,b,c,d){let e=!1,f=!1,g=!1,h=!1;if(-1!==a.firstTabInLine)return!1;let i=a.input.charCodeAt(a.position);for(;0!==i;){e||-1===a.firstTabInLine||(a.position=a.firstTabInLine,g6(a,"tab characters must not be used in indentation"));let j=a.input.charCodeAt(a.position+1),k=a.line;if((63===i||58===i)&&ha(j))g||(g$(a,a.position,d.anchorStart,d.anchorEnd,d.tagStart,d.tagEnd,1),g=!0),63===i?(e&&g2(a),f=!0,e=!0):(e||(g2(a),f=!0),e=!1),a.position+=1,h=!0;else{e&&(g2(a),e=!1);let b=g4(a);if(!hn(a,c,2,!1,!0))break;if(a.line===k){for(i=a.input.charCodeAt(a.position);g8(i);)i=a.input.charCodeAt(++a.position);if(58===i)ha(i=a.input.charCodeAt(++a.position))||g6(a,"a whitespace character is expected after the key-value separator within a block mapping"),g||(a.events.splice(b.eventsLength,0,{type:3,start:b.position,anchorStart:d.anchorStart,anchorEnd:d.anchorEnd,tagStart:d.tagStart,tagEnd:d.tagEnd,style:1}),g=!0),f=!0,e=!1,h=!1;else if(f)g6(a,"expected ':' after a mapping key");else{if(-1!==d.anchorStart||-1!==d.tagStart)return g5(a,b),!1;return!0}}else if(f)g6(a,"can not read a block mapping entry; a multiline key may not be an implicit key");else{if(-1!==d.anchorStart||-1!==d.tagStart)return g5(a,b),!1;return!0}}if(hn(a,b,4,!0,h)&&(h=!1),!e&&h&&(g2(a),h=!1),hd(a,!0),i=a.input.charCodeAt(a.position),(a.line===k||a.lineIndent>b)&&0!==i)g6(a,"bad indentation of a mapping entry");else if(a.lineIndent<b)break}return!!f&&(e&&g2(a),g&&g1(a),!0)}function hn(a,b,c,d,e,f=!0){a.depth>=a.maxDepth&&g6(a,`nesting exceeded maxDepth (${a.maxDepth})`),a.depth++;let g=1,h=!1,i=!1,j=null,k=g3(),l=4===c||3===c,m=l,n=l;if(d&&hd(a,!0)&&(h=!0,g=a.lineIndent>b?1:a.lineIndent===b?0:-1),1===g)for(;;){let d=a.input.charCodeAt(a.position),e=g4(a);if(h&&1!==g&&(33===d||38===d))break;if(h&&n&&(-1!==k.tagStart||-1!==k.anchorStart)&&(33===d||38===d)){let c=g4(a),d=b+1;if(hm(a,a.position-a.lineStart,d,k)&&a.events[c.eventsLength]?.type===3)return a.depth--,!0;g5(a,c)}if(h&&(33===d&&-1!==k.tagStart||38===d&&-1!==k.anchorStart)||!function(a,b,c){let d;if(33!==a.input.charCodeAt(a.position))return!1;-1!==b.tagStart&&g6(a,"duplication of a tag property");let e=a.position,f=!1,g=!1,h="!",i=a.input.charCodeAt(++a.position);60===i?(f=!0,i=a.input.charCodeAt(++a.position)):33===i&&(g=!0,h="!!",i=a.input.charCodeAt(++a.position));let j=a.position;if(f){for(;0!==i&&62!==i;)i=a.input.charCodeAt(++a.position);62!==i&&g6(a,"unexpected end of the stream within a verbatim tag"),d=a.input.slice(j,a.position),a.position++}else{for(;0!==i&&!g9(i)&&!(c&&hb(i));)33===i&&(g?g6(a,"tag suffix cannot contain exclamation marks"):(h=a.input.slice(j-1,a.position+1),gS.test(h)||g6(a,"named tag handle cannot contain such characters"),g=!0,j=a.position+1)),i=a.input.charCodeAt(++a.position);d=a.input.slice(j,a.position),gR.test(d)&&g6(a,"tag suffix cannot contain flow indicator characters")}return!d||(f?gV.test(d):gW.test(d))||g6(a,`tag name cannot contain such characters: ${d}`),f||"!"===h||"!!"===h||gP.call(a.tagHandlers,h)||g6(a,`undeclared tag handle "${h}"`),b.tagStart=e,b.tagEnd=a.position,!0}(a,k,1===c)&&!function(a,b){if(38!==a.input.charCodeAt(a.position))return!1;-1!==b.anchorStart&&g6(a,"duplication of an anchor property"),a.position++;let c=a.position;for(;0!==a.input.charCodeAt(a.position)&&!g9(a.input.charCodeAt(a.position))&&!hb(a.input.charCodeAt(a.position));)a.position++;return a.position===c&&g6(a,"name of an anchor node must contain at least one character"),b.anchorStart=c,b.anchorEnd=a.position,!0}(a,k))break;null===j&&(j=e),hd(a,!0)?(h=!0,m=n,g=a.lineIndent>b?1:a.lineIndent===b?0:-1):m=!1}if(m&&(m=h||e),1===g||4===c){let d=1===c||2===c?b:b+1,e=a.position-a.lineStart;if(1===g)if(m&&(hl(a,e,k)||hm(a,e,d,k))||function(a,b,c){let d=a.input.charCodeAt(a.position),e=123===d,f=a.position,g=!0;if(91!==d&&123!==d)return!1;let h=e?125:93;for(e?g$(a,f,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,2):gZ(a,f,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,2),a.position++;0!==a.input.charCodeAt(a.position);){hk(a,b);let c=a.input.charCodeAt(a.position);if(c===h)return a.position++,g1(a),!0;g?44===c&&g6(a,"expected the node content, but found ','"):g6(a,"missed comma between flow collection entries");let d=!1,f=!1;63===c&&g9(a.input.charCodeAt(a.position+1))&&(d=f=!0,a.position+=1,hk(a,b));let i=a.line,j=g4(a),k=hn(a,b,1,!1,!0);hk(a,b),c=a.input.charCodeAt(a.position),(e||f||a.line===i)&&58===c?(d=!0,a.position++,hk(a,b),e||g_(a,j),k||g2(a),hn(a,b,1,!1,!0)||g2(a),hk(a,b),e||g1(a)):e&&d?(k||g2(a),g2(a)):e?g2(a):d&&(g_(a,j),k||g2(a),g2(a),g1(a)),44===(c=a.input.charCodeAt(a.position))?(g=!0,a.position++):g=!1}g6(a,"unexpected end of the stream within a flow collection")}(a,d,k))i=!0;else{let b=a.input.charCodeAt(a.position);if(null!==j&&f&&n&&!m&&124!==b&&62!==b){let b=g4(a),c=j.position-j.lineStart;g5(a,j),hm(a,c,d,g3())&&a.events[b.eventsLength]?.type===3?i=!0:g5(a,b)}!i&&(l&&function(a,b,c){let d=a.input.charCodeAt(a.position),e=1,f=-1,g=!1;if(124!==d&&62!==d)return!1;for(a.position++;0!==a.input.charCodeAt(a.position);){let c=a.input.charCodeAt(a.position),d=c>=48&&c<=57?c-48:-1;if(43===c||45===c)1!==e&&g6(a,"repeat of a chomping mode identifier"),e=43===c?3:2,a.position++;else if(d>=0)0===d&&g6(a,"bad explicit indentation width of a block scalar; it cannot be less than one"),g&&g6(a,"repeat of an indentation width identifier"),f=b+d-1,g=!0,a.position++;else break}let h=!1;for(;g8(a.input.charCodeAt(a.position));)h=!0,a.position++;h&&35===a.input.charCodeAt(a.position)&&hh(a),g7(a.input.charCodeAt(a.position))?hc(a):0!==a.input.charCodeAt(a.position)&&g6(a,"a line break is expected");let i=g?f:-1,j=0,k=a.position,l=a.position;for(;0!==a.input.charCodeAt(a.position);){let c=a.position,d=0;for(;32===a.input.charCodeAt(c+d);)d++;let e=a.input.charCodeAt(c+d);if(0===e){i>=0?d>i&&(l=c+d):d>0&&(l=c+d);break}if(hg(a))break;if(!g&&-1===i&&g7(e)&&(j=Math.max(j,d)),!g&&-1===i&&!g7(e)&&(9===e&&d<b&&(a.position=c+d,g6(a,"tab characters must not be used in indentation")),d>=b&&d<j&&(a.position=c+d,g6(a,"bad indentation of a mapping entry"))),-1===i&&0!==e&&!g7(e)&&d<b){a.lineIndent=d,a.position=c+d;break}g||0===e||g7(e)||-1!==i||(i=d);let f=-1===i?b+1:i;if(0!==e&&!g7(e)&&d<f){a.lineIndent=d,a.position=c+d;break}hh(a),l=a.position,g7(a.input.charCodeAt(a.position))&&(hc(a),l=a.position)}return hi(a,k,l),g0(a,k,l,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,124===d?4:5,e,i),!0}(a,d,k)||function(a,b,c){if(39!==a.input.charCodeAt(a.position))return!1;a.position++;let d=a.position,e=!0;for(;0!==a.input.charCodeAt(a.position);){let f=a.input.charCodeAt(a.position);if(39===f){if(39===a.input.charCodeAt(a.position+1)){e=!1,a.position+=2;continue}let b=a.position;return a.position++,g0(a,d,b,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,2,1,-1,e),!0}g7(f)?(e=!1,hj(a,b)):a.position===a.lineStart&&he(a)?g6(a,"unexpected end of the document within a single quoted scalar"):9!==f&&f<32?g6(a,"expected valid JSON character"):a.position++}g6(a,"unexpected end of the stream within a single quoted scalar")}(a,d,k)||function(a,b,c){if(34!==a.input.charCodeAt(a.position))return!1;a.position++;let d=a.position,e=!0;for(;0!==a.input.charCodeAt(a.position);){let f=a.input.charCodeAt(a.position);if(34===f){let b=a.position;return a.position++,g0(a,d,b,c.anchorStart,c.anchorEnd,c.tagStart,c.tagEnd,3,1,-1,e),!0}if(92===f){e=!1;let c=a.input.charCodeAt(++a.position);if(g7(c))hj(a,b);else if(48===c||97===c||98===c||116===c||9===c||110===c||118===c||102===c||114===c||101===c||32===c||34===c||47===c||92===c||78===c||95===c||76===c||80===c)a.position++;else{let b=120===c?2:117===c?4:8*(85===c);for(0===b&&g6(a,"unknown escape sequence");b-- >0;)a.position++,0>function(a){if(a>=48&&a<=57)return a-48;let b=32|a;return b>=97&&b<=102?b-97+10:-1}(a.input.charCodeAt(a.position))&&g6(a,"expected hexadecimal character");a.position++}}else g7(f)?(e=!1,hj(a,b)):a.position===a.lineStart&&he(a)?g6(a,"unexpected end of the document within a double quoted scalar"):9!==f&&f<32?g6(a,"expected valid JSON character"):a.position++}g6(a,"unexpected end of the stream within a double quoted scalar")}(a,d,k)||function(a,b){var c;if(42!==a.input.charCodeAt(a.position))return!1;(-1!==b.anchorStart||-1!==b.tagStart)&&g6(a,"alias node should not have any properties"),a.position++;let d=a.position;for(;0!==a.input.charCodeAt(a.position)&&!g9(a.input.charCodeAt(a.position))&&!hb(a.input.charCodeAt(a.position));)a.position++;return a.position===d&&g6(a,"name of an alias node must contain at least one character"),c=a.position,a.events.push({type:5,anchorStart:d,anchorEnd:c}),!0}(a,k)||function(a,b,c,d){if(!function(a,b){let c=a.input.charCodeAt(a.position),d=1===b;if(0===c||g9(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c||d&&hb(c))return!1;if(63===c||45===c){let b=a.input.charCodeAt(a.position+1);if(ha(b)||d&&hb(b))return!1}return!0}(a,c))return!1;let e=a.position,f=a.position,g=a.input.charCodeAt(a.position),h=1===c,i=!1;for(;0!==g&&!hg(a);){if(58===g){let b=a.input.charCodeAt(a.position+1);if(ha(b)||h&&hb(b))break}else if(35===g){if(g9(a.input.charCodeAt(a.position-1)))break}else if(h&&hb(g))break;else if(g7(g)){let c=a.position,d=a.line,e=a.lineStart,f=a.lineIndent;if(hd(a,!1),a.lineIndent>=b){i=!0,g=a.input.charCodeAt(a.position);continue}a.position=c,a.line=d,a.lineStart=e,a.lineIndent=f;break}g8(g)||(f=a.position+1),g=a.input.charCodeAt(++a.position)}return f!==e&&(hi(a,e,f),g0(a,e,f,d.anchorStart,d.anchorEnd,d.tagStart,d.tagEnd,1,1,-1,!i),!0)}(a,d,c,k))&&(i=!0)}else 0===g&&(i=m&&hl(a,e,k))}return l=l&&!i,!i&&(-1!==k.anchorStart||-1!==k.tagStart||l)&&(g0(a,-1,-1,k.anchorStart,k.anchorEnd,k.tagStart,k.tagEnd,1),i=!0),a.depth--,i||-1!==k.anchorStart||-1!==k.tagStart}var ho={...gY,...gG};Symbol("INVALID"),Symbol("visit:break"),Symbol("visit:skip");var hp={applyQuoteFlowKeysOption:function(a){!a.presenterOptions.quoteFlowKeys||a.isKey&&a.flowOnly&&1===a.style&&(a.style=3)},doubleQuoteForInvisibles:function(a){1===a.style&&/[\t\x7F-\xA0\u2028\u2029\uFEFF\uFFFE\uFFFF]/.test(a.node.value)&&(a.style=3)},doubleQuoteWhitespaceOnly:function(a){1===a.style&&/^\s+$/.test(a.node.value)&&(a.style=3)},applyForceQuotesOption:function(a){!a.presenterOptions.forceQuotes||a.isKey||1!==a.style||a.node.tag===a.presenterOptions.schema.defaultScalarTag.tagName&&(a.style=a.node.value.includes("\n")?3:hq(a))},tryLongOrMultilineAsBlock:function(a){if(1!==a.style||a.isKey)return;let b=a.node.value,c=-1!==b.indexOf("\n");if((16&a.allowedStylesMask)==0){c&&(a.style=3);return}let d=a.presenterOptions.lineWidth;if(-1===d){c&&(a.style=4);return}let e=Math.max(Math.min(d,40),d-a.shiftOfContent),f=0,g=!1;for(;f<=b.length;){let a=b.length,c=b.indexOf("\n",f);-1!==c&&(a=c);let d=b.slice(f,a);if(d.length>e&&" "!==d[0]&&/ [^ \t]/.test(d)&&(g=!0),-1===c)break;f=c+1}g?a.style=5:c&&(a.style=4)},quoteInvalidPlain:function(a){1===a.style&&(2&a.allowedStylesMask)==0&&(a.style=hq(a))},fallbackToDoubleQuoted:function(a){(a.allowedStylesMask&1<<a.style)==0&&(a.style=3)}};function hq(a){return"single"===a.presenterOptions.quoteStyle&&(4&a.allowedStylesMask)!=0?2:3}var hr="[ \\t]",hs="(?:(?!(?:[\\n\\r]|\\uFEFF))[\\x09\\x0A\\x0D\\x20-\\x7E\\x85\\xA0-\\uD7FF\\uE000-\\uFFFD\\u{10000}-\\u{10FFFF}])",ht=`(?:(?!${hr})${hs})`,hu="[\\x09\\x20-\\uD7FF\\uE000-\\uFFFF\\u{10000}-\\u{10FFFF}]",hv="[-?:,\\[\\]{}#&*!|>'\"%@`]",hw=`(?:(?![,\\[\\]{}])${ht})`,hx=`(?:(?:(?!${hv})${ht})|[?:-](?=${ht}))`,hy=`(?:(?:(?!${hv})${ht})|[?:-](?=${hw}))`,hz=`(?:(?:(?![:#])${ht})|:(?=${ht}))#*`,hA=`(?:(?:(?![:#])${hw})|:(?=${hw}))#*`,hB=`(?:${hr}*${hz})*`,hC=`(?:${hr}*${hA})*`,hD=`${hx}#*${hB}`,hE=`${hy}#*${hC}`,hF=`\\n+${hz}${hB}`,hG=`\\n+${hA}${hC}`,hH=`${hD}(?:${hF})*`,hI=`${hE}(?:${hG})*`;RegExp(`^(?:${hH})$`,"u"),RegExp(`^(?:${hI})$`,"u"),RegExp(`^(?:${hD})$`,"u"),RegExp(`^(?:${hE})$`,"u"),RegExp(`^(?:${hu})*$`,"u"),RegExp(`^(?:${hu}|\\n)*$`,"u"),RegExp(`^(?:${hs}|\\n)*$`,"u"),Object.keys(hp).map(a=>Reflect.get(hp,a));let hJ=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function hK(a){return function a(b,c){if(null==b)return"";if("string"==typeof b)return b;if("number"==typeof b||"boolean"==typeof b)return String(b);if(Array.isArray(b)){if(c.has(b))return"[Circular]";c.add(b);try{return b.map(b=>a(b,c)).filter(Boolean).join(", ")}finally{c.delete(b)}}if("object"==typeof b)try{return JSON.stringify(b)??Object.prototype.toString.call(b)}catch{return Object.prototype.toString.call(b)}return String(b)}(a,new WeakSet)}var hL=c(86479);let hM=[",",";"," ","|"];function hN(a){let b=/\.(csv|tsv)$/i.exec(a);return b?"tsv"===b[1].toLowerCase()?" ":",":null}function hO(a,b,c={}){let d=c.complete??!0,e=c.maxRecords??1/0,f=[],g=[],h=a.length,i=b.charCodeAt(0),j=+(65279===a.charCodeAt(0)),k=1,l=[],m=1,n=()=>{(1!==l.length||""!==l[0])&&(f.push(l),g.push(m)),l=[]};for(;j<h&&f.length<e;){let b="",c=!1;if(34===a.charCodeAt(j)){c=!0;let d=j+=1;for(;j<h;){let e=a.indexOf('"',j);if(-1===e)break;if(34===a.charCodeAt(e+1)){b+=a.slice(d,e+1),d=j=e+2;continue}b+=a.slice(d,e),j=e+1,c=!1;break}c&&(b+=a.slice(d),j=h),k+=function(a){let b=0,c=a.indexOf("\n");for(;-1!==c;)b+=1,c=a.indexOf("\n",c+1);return b}(b)}let e=j;for(;e<h;){let b=a.charCodeAt(e);if(b===i||10===b)break;e+=1}let f=e<h?a.charCodeAt(e):-1,g=f!==i&&e>j&&13===a.charCodeAt(e-1)?e-1:e;b+=a.slice(j,g),l.push(b),j=e,f===i?(j+=1)===h&&(l.push(""),d&&n()):10===f?(j+=1,k+=1,n(),m=k):d&&n()}return{records:f,lines:g}}function hP(a){let b=a.indexOf("\n"),c=-1===b?a:a.slice(0,b),d=0;for(let a=0;a<c.length;a+=1){let b=c.charCodeAt(a);b>=56320&&b<=57343||(d+=b>=11904?2:1)}return d}let hQ={display:"flex",height:26,boxSizing:"border-box",borderBottom:"1px solid var(--border)"},hR={position:"sticky",left:0,zIndex:1,boxSizing:"border-box",width:56,flexShrink:0,padding:"0 10px",display:"flex",alignItems:"center",justifyContent:"flex-end",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",fontSize:11,fontVariantNumeric:"tabular-nums",userSelect:"none"},hS={boxSizing:"border-box",flexShrink:0,padding:"0 10px",lineHeight:"25px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRight:"1px solid var(--border)"};function hT({content:a,filePath:b,complete:c,scrollRef:d}){let e=(0,q.useMemo)(()=>(function(a,b,c=!0){let d=hN(b)??",",e=","===d?function(a){let b=a.slice(0,65536),c=b.length===a.length,d=",",e=0;for(let a of hM){let{records:f}=hO(b,a,{complete:c,maxRecords:20}),g=f[0]?.length??0;if(g<2)continue;let h=1e3*f.filter(a=>a.length===g).length+Math.min(g,999);h>e&&(d=a,e=h)}return d}(a):d,{records:f,lines:g}=hO(a,e,{complete:c});if(0===f.length)return{columns:[],headerLine:0,rows:[],rowLines:[]};let h=0;for(let a of f)a.length>h&&(h=a.length);let i=f[0];return{columns:i.length===h?i:[...i,...Array.from({length:h-i.length},()=>"")],headerLine:g[0],rows:f.slice(1),rowLines:g.slice(1)}})(a,b,c),[c,a,b]),f=(0,q.useMemo)(()=>{var a,b;let c;return a=e.columns,c=Math.max(1,Math.ceil((b=e.rows).length/500)),a.map((a,d)=>{let e=hP(a);for(let a=0;a<b.length;a+=c){let c=b[a][d];if(c){let a=hP(c);a>e&&(e=a)}}return Math.min(Math.max(Math.ceil(7.4*e+22),64),420)})},[e]),g=(0,q.useMemo)(()=>f.reduce((a,b)=>a+b,56),[f]),[h,i]=(0,q.useState)(0),[j,k]=(0,q.useState)(0);if(0===e.columns.length)return null;let{start:l,end:m}=function(a,b,c){if(a<=0)return{start:0,end:0};let d=Number.isFinite(b)?Math.max(0,b):0,e=Number.isFinite(c)&&c>0?c:800,f=Math.max(0,Math.floor(d/26)-20),g=Math.min(a,Math.ceil((d+e)/26)+20);return{start:Math.min(f,g),end:g}}(e.rows.length,h-26,j),n=[];for(let a=l;a<m;a+=1){let b=e.rows[a];n.push((0,p.jsxs)("div",{role:"row","aria-rowindex":a+2,style:{...hQ,position:"absolute",top:26*a,left:0,width:g},children:[(0,p.jsx)("div",{role:"rowheader",style:hR,children:e.rowLines[a]}),f.map((a,c)=>{let d=b[c]??"";return(0,p.jsx)("div",{role:"cell",style:{...hS,width:a},title:d||void 0,children:d},c)})]},a))}return(0,p.jsxs)("div",{role:"table","aria-rowcount":e.rows.length+1,"aria-colcount":e.columns.length,style:{width:g,minWidth:"100%",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:12,color:"var(--text-muted)",background:"var(--bg)"},children:[(0,p.jsxs)("div",{role:"row","aria-rowindex":1,style:{...hQ,position:"sticky",top:0,zIndex:2,width:g,background:"var(--bg-panel)",color:"var(--text)",fontWeight:600},children:[(0,p.jsx)("div",{role:"rowheader",style:hR,children:e.headerLine}),e.columns.map((a,b)=>(0,p.jsx)("div",{role:"columnheader",style:{...hS,width:f[b]},title:a||void 0,children:a},b))]}),(0,p.jsx)("div",{style:{position:"relative",height:26*e.rows.length},children:n})]})}let hU=["tags","categories","keywords","tag","category"];function hV({data:a}){var b;if(!a)return null;let c=Object.entries(a);if(0===c.length)return null;let d="string"==typeof(b=a.title)?b.trim()||null:"number"==typeof b||"boolean"==typeof b?String(b):null,e=hU.find(b=>Array.isArray(a[b])),f=e?a[e].map(hK).filter(Boolean):[],g=c.filter(([a])=>a!==e&&("title"!==a||!d));return(0,p.jsxs)("div",{className:"markdown-frontmatter",children:[d&&(0,p.jsx)("div",{className:"markdown-frontmatter-title",children:d}),f.length>0&&(0,p.jsx)("div",{className:"markdown-frontmatter-tags",children:f.map((a,b)=>(0,p.jsx)("span",{className:"markdown-frontmatter-tag",children:a},`${a}-${b}`))}),g.length>0&&(0,p.jsx)("dl",{className:"markdown-frontmatter-rows",children:g.map(([a,b])=>(0,p.jsxs)("div",{className:"markdown-frontmatter-row",children:[(0,p.jsx)("dt",{children:a}),(0,p.jsx)("dd",{children:function(a){let b=hK(a);return b?"string"==typeof a&&/^(https?:\/\/|mailto:)/i.test(a)?(0,p.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",children:b}):b:null}(b)})]},a))})]})}var hW=c(99718);let hX={source:"Source",preview:"Preview",diff:"Diff"},hY={fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:13,lineHeight:1.6},hZ={...fy.xJ,'pre[class*="language-"]':{...fy.xJ['pre[class*="language-"]']}};delete hZ['pre[class*="language-"]'].background;let h$={width:48,minWidth:48,padding:"0 10px",textAlign:"right",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:11,fontStyle:"normal",fontVariantNumeric:"tabular-nums",lineHeight:"20.8px",userSelect:"none",flexShrink:0,verticalAlign:"top"},h_={...h$,position:"sticky",left:0,zIndex:1};function h0(){return(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,p.jsx)("path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"})]})}function h1({rows:a,stylesheet:b,useInlineStyles:c,wrapLines:d}){return a.map((a,e)=>{let f=a.children??[],g=f[0]?.properties?.className,h=Array.isArray(g)&&g.includes("react-syntax-highlighter-line-number"),i=h?f[0]:null,j=h?f.slice(1):f;return(0,p.jsxs)("span",{className:"file-source-line","data-line-number":e+1,style:{display:"flex",minWidth:"100%"},children:[i&&(0,fx.Ay)({node:i,stylesheet:b,useInlineStyles:c,key:`source-line-number-${e}`}),(0,p.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:d?"anywhere":"normal",whiteSpace:d?"pre-wrap":"pre"},children:j.map((a,d)=>(0,fx.Ay)({node:a,stylesheet:b,useInlineStyles:c,key:`source-token-${e}-${d}`}))})]},`source-line-${e}`)})}function h2(a,b,c,d={}){let e=(0,a1.HG)(a),f=new URLSearchParams({type:b});for(let[a,b]of(c&&f.set("sessionId",c),Object.entries(d)))void 0!==b&&f.set(a,String(b));return`/api/files/${e}?${f.toString()}`}function h3({filePath:a,sourceSessionId:b}){let{t:c}=(0,aG.s)();return(0,p.jsx)("a",{href:h2(a,"download",b),download:(0,a1.WP)(a),title:c("i18n.downloadFile"),"aria-label":c("i18n.downloadFile"),className:"file-viewer-icon-button",children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,p.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,p.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})}function h4(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}function h5({patch:a}){let b,{t:c}=(0,aG.s)(),d=(b=(0,hW.yg)(a))?b.flatMap(hW.jB):[],e=a=>"added"===a.type||"removed"===a.type;if(!d.some(e))return(0,p.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:c("i18n.noChanges")});let f=new Set(d.flatMap((a,b)=>e(a)?[b]:[])),g=new Set;for(let a of f)for(let b=Math.max(0,a-3);b<=Math.min(d.length-1,a+3);b++)g.add(b);let h=g.size<=1e3?h_:h$,i=a=>"gap"!==d[a].type&&g.has(a),j=[],k=0;for(;k<d.length;)if(i(k)){let a=[];for(;k<d.length&&i(k);){let b=d[k];"gap"!==b.type&&a.push(b),k++}j.push({hidden:!1,lines:a})}else{let a=0;for(;k<d.length&&!i(k);){let b=d[k],c="gap"===b.type?b.count:1;a=null===a||null===c?null:a+c,k++}j.push({hidden:!0,count:a})}return(0,p.jsx)("div",{className:"file-diff-view",style:{width:"max-content",minWidth:"100%",...hY},children:j.map((a,b)=>{if(a.hidden)return(0,p.jsx)("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:null===a.count?"⋯":`⋯ ${(0,hW.WM)(a.count,c)}`},b);let d=a.lines.map((a,b)=>{let c="added"===a.type?"rgba(0,200,80,0.12)":"removed"===a.type?"rgba(240,60,60,0.14)":"transparent",d="added"===a.type?"+":"removed"===a.type?"-":" ",e="added"===a.type?"#4ade80":"removed"===a.type?"#f87171":"var(--text-dim)";return(0,p.jsxs)("div",{className:"file-diff-line",style:{display:"flex",minWidth:"100%",background:c,borderLeft:"added"===a.type?"3px solid #4ade80":"removed"===a.type?"3px solid #f87171":"3px solid transparent"},children:[(0,p.jsx)("span",{style:h,children:"removed"===a.type?a.oldLineNo:a.newLineNo}),(0,p.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:e,userSelect:"none",flexShrink:0,fontWeight:600},children:d}),(0,p.jsx)("span",{className:"file-diff-line-content",style:{flexShrink:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:a.text||"\xa0"})]},b)});return(0,p.jsx)("div",{children:d},b)})})}function h6({filePath:a,cwd:b,sourceSessionId:c,watchEnabled:d=!0}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(!1),[h,i]=(0,q.useState)(0),[j,k]=(0,q.useState)(null),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(null);(0,q.useRef)(null),(0,q.useRef)(0),(0,q.useRef)(null);let r=(0,a1.WP)(a).toLowerCase().split(".").pop()??"",s=h2(a,"read",c,h?{v:h}:void 0),t=null!=j?h4(j):null;return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,p.jsxs)("div",{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},children:[(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:a,children:(0,a1.qP)(a,b)}),(0,p.jsx)("span",{style:{marginLeft:"auto"},children:r||"image"}),l&&(0,p.jsxs)("span",{children:[l.w," \xd7 ",l.h]}),t&&(0,p.jsx)("span",{children:t}),(0,p.jsxs)("span",{title:e(f?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:f?"#4ade80":"var(--text-dim)"},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:f?"#4ade80":"var(--border)",display:"inline-block",boxShadow:f?"0 0 4px #4ade80":"none"}}),f?"live":"static"]}),(0,p.jsx)(h3,{filePath:a,sourceSessionId:c})]}),(0,p.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,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:n?(0,p.jsx)("div",{style:{color:"#f87171",fontSize:13},children:n}):(0,p.jsx)("img",{src:s,alt:a,onLoad:a=>{let b=a.currentTarget;m({w:b.naturalWidth,h:b.naturalHeight})},onError:()=>o("Failed to load image"),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function h7(a){if(!Number.isFinite(a))return"";let b=Math.round(a),c=Math.floor(b/60);return`${c}:${String(b%60).padStart(2,"0")}`}function h8({filePath:a,cwd:b,sourceSessionId:c,watchEnabled:d=!0}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(!1),[h,i]=(0,q.useState)(0),[j,k]=(0,q.useState)(null),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(null);(0,q.useRef)(null),(0,q.useRef)(0),(0,q.useRef)(null);let r=(0,a1.WP)(a).toLowerCase().split(".").pop()??"",s=h2(a,"read",c,h?{v:h}:void 0);return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,p.jsxs)("div",{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},children:[(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:a,children:(0,a1.qP)(a,b)}),(0,p.jsx)("span",{style:{marginLeft:"auto"},children:r||"audio"}),null!=l&&(0,p.jsx)("span",{children:h7(l)}),null!=j&&(0,p.jsx)("span",{children:h4(j)}),(0,p.jsxs)("span",{title:e(f?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:f?"#4ade80":"var(--text-dim)"},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:f?"#4ade80":"var(--border)",display:"inline-block",boxShadow:f?"0 0 4px #4ade80":"none"}}),f?"live":"static"]}),(0,p.jsx)(h3,{filePath:a,sourceSessionId:c})]}),(0,p.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,p.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[n&&(0,p.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:n}),(0,p.jsx)("audio",{controls:!0,preload:"metadata",src:s,onLoadedMetadata:a=>m(a.currentTarget.duration),onError:()=>o("Failed to load audio"),style:{width:"100%"}},s)]})})]})}function h9({filePath:a,cwd:b,sourceSessionId:c,watchEnabled:d=!0}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(!1),[h,i]=(0,q.useState)(0),[j,k]=(0,q.useState)(null),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(null);(0,q.useRef)(null),(0,q.useRef)(0),(0,q.useRef)(null);let r=(0,a1.WP)(a).toLowerCase().split(".").pop()??"",s=h2(a,"read",c,h?{v:h}:void 0);return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,p.jsxs)("div",{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},children:[(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:a,children:(0,a1.qP)(a,b)}),(0,p.jsx)("span",{style:{marginLeft:"auto"},children:r||"video"}),null!=l&&(0,p.jsx)("span",{children:h7(l)}),null!=j&&(0,p.jsx)("span",{children:h4(j)}),(0,p.jsxs)("span",{title:e(f?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:f?"#4ade80":"var(--text-dim)"},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:f?"#4ade80":"var(--border)",display:"inline-block",boxShadow:f?"0 0 4px #4ade80":"none"}}),f?"live":"static"]}),(0,p.jsx)(h3,{filePath:a,sourceSessionId:c})]}),(0,p.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)",minHeight:0},children:(0,p.jsxs)("div",{style:{width:"min(960px, 100%)",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:0},children:[n&&(0,p.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:n}),(0,p.jsx)("video",{controls:!0,playsInline:!0,preload:"metadata",src:s,onLoadedMetadata:a=>m(a.currentTarget.duration),onError:()=>o("Failed to load video"),style:{maxWidth:"100%",maxHeight:"100%"}},s)]})})]})}function ia({filePath:a,cwd:b,sourceSessionId:c,initialPage:d,watchEnabled:e=!0}){let{t:f}=(0,aG.s)(),[g,h]=(0,q.useState)(!1),[i,j]=(0,q.useState)(0),[k,l]=(0,q.useState)(null),[m,n]=(0,q.useState)(null);(0,q.useRef)(null),(0,q.useRef)(0),(0,q.useRef)(null);let o=(0,fB.GO)(a),r="pdf"===o,s=r&&d&&d>0?`#page=${d}`:"",t=r?`${h2(a,"read",c,i?{v:i}:void 0)}${s}`:h2(a,"preview",c,i?{v:i}:void 0);return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,p.jsxs)("div",{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},children:[(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a,children:(0,a1.qP)(a,b)}),(0,p.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===o?"docx preview":"pdf"}),null!=k&&(0,p.jsx)("span",{children:h4(k)}),(0,p.jsx)(h3,{filePath:a,sourceSessionId:c}),(0,p.jsxs)("span",{title:f(g?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:g?"#4ade80":"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:g?"#4ade80":"var(--border)",display:"inline-block",boxShadow:g?"0 0 4px #4ade80":"none"}}),g?"live":"static"]})]}),(0,p.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:m?(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:m}):(0,p.jsx)("iframe",{src:t,sandbox:r?void 0:"allow-same-origin",title:f("i18n.previewFile",{file:(0,a1.WP)(a)}),style:{width:"100%",height:"100%",border:"none",background:r?"var(--bg)":"#eef1f5"}},t)})]})}function ib({filePath:a,cwd:b,sourceSessionId:c,onOpenFile:d,onMentionLines:e,onAtMention:f,gitRefreshKey:g,initialDisplayMode:h,initialState:i,initialPage:j,onStateChange:k,watchEnabled:l=!0}){let m=function(){let a=(0,q.useSyncExternalStore)(e$,e_,e0),[b,c]=(0,q.useState)(!1);return a&&b}(),n=l&&!m;return(0,fB.RW)(a)?(0,p.jsx)(h6,{filePath:a,cwd:b,sourceSessionId:c,watchEnabled:n}):(0,fB.EC)(a)?(0,p.jsx)(h8,{filePath:a,cwd:b,sourceSessionId:c,watchEnabled:n}):(0,fB.t9)(a)?(0,p.jsx)(h9,{filePath:a,cwd:b,sourceSessionId:c,watchEnabled:n}):(0,fB.lF)(a)?(0,p.jsx)(ia,{filePath:a,cwd:b,sourceSessionId:c,initialPage:j,watchEnabled:n}):(0,p.jsx)(ic,{filePath:a,cwd:b,sourceSessionId:c,onOpenFile:d,onMentionLines:e,onAtMention:f,gitRefreshKey:g,initialDisplayMode:h,initialState:i,onStateChange:k,watchEnabled:n})}function ic({filePath:a,cwd:b,sourceSessionId:c,onOpenFile:d,onMentionLines:e,onAtMention:f,gitRefreshKey:g,initialDisplayMode:h,initialState:i,onStateChange:j,watchEnabled:k=!0}){let{isDark:l}=(0,fz.D)(),{t:m}=(0,aG.s)(),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(null),[t,u]=(0,q.useState)(!1),[v,w]=(0,q.useState)(!1),[x,y]=(0,q.useState)(!0),[z,A]=(0,q.useState)(!1),[B,C]=(0,q.useState)(null),D=i?.displayMode??h??"source",E=i?.wrapLines??!1,F=i?.scrollTop??0,G=i?.scrollLeft??0,[H,I]=(0,q.useState)(D),[J,K]=(0,q.useState)(E),[L,M]=(0,q.useState)(!1);(0,q.useRef)(null);let N=(0,q.useRef)(0),O=(0,q.useRef)(null),P=(0,q.useRef)(0),Q=(0,q.useRef)(null);(0,q.useRef)(!1),(0,q.useRef)(void 0===i&&void 0===h),(0,q.useRef)(!0);let R=(0,q.useRef)({displayMode:D,wrapLines:E,scrollTop:F,scrollLeft:G}),S=(0,q.useRef)(j),[T,U]=(0,q.useState)(null),[V,W]=(0,q.useState)(null);S.current=j;let X=(0,q.useCallback)(a=>{R.current.displayMode=a,I(a)},[]),Y=(0,q.useCallback)(()=>{K(a=>{let b=!a;return R.current.wrapLines=b,b})},[]),Z=(0,q.useCallback)((a,b=0)=>{let d=++N.current;return fetch(h2(a,"read",c,{offset:b||void 0})).then(a=>a.json()).then(a=>d!==N.current?null:a.error?(C(a.error),null):(O.current=a&&"number"==typeof a.size&&"string"==typeof a.mtime?`${a.size}:${a.mtime}`:null,C(null),o(c=>b&&c?{...a,content:c.content+a.content}:a),a)).catch(a=>(d!==N.current||C(String(a)),null))},[c]);(0,q.useCallback)(async a=>{let c=++P.current;if(u(!0),!b){s(null),u(!1),w(!0);return}try{let d=new URLSearchParams({cwd:b,path:a}),e=await fetch(`/api/git/diff?${d.toString()}`),f=await e.json();if(c!==P.current)return;s(e.ok&&f.supported&&"string"==typeof f.patch?f:null)}catch{c===P.current&&s(null)}finally{c===P.current&&(u(!1),w(!0))}},[b]);let $=null!==hN(a);"preview"===H&&n?.language==="html"&&n.truncated&&(n.size,fB.en);let _=r?.supported===!0&&"string"==typeof r.patch,aa=_&&"deleted"===r.status,ab=(0,q.useMemo)(()=>n?.language==="markdown"?(0,en.Ep)(n.content):"",[n]),ac=(0,q.useMemo)(()=>n?.language==="markdown"?function(a){let b=function(a){let b=hJ.exec(a);if(!b)return null;let c=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;c.lastIndex=b[0].length;let d=c.exec(a);return d?{yaml:a.slice(b[0].length,d.index).replace(/(?:\r\n|\n|\r)$/,""),rest:a.slice(d.index+d[0].length)}:null}(a);if(!b)return{data:null,rest:a};try{let a=function(a){let b=function(a,b={}){let c={...ho,...b},d=String(a),e=Object.keys(gY),f=Object.keys(gG);return function(a,b){let c={...gG,...b,events:a,documents:[],eventIndex:0,position:0,frames:[],anchors:new Map,nodeTags:new Map,tagHandlers:Object.create(null),totalMergeKeys:0,aliasCount:0};for(;c.eventIndex<c.events.length;){let a=c.events[c.eventIndex++];switch(c.position="tagStart"in a&&-1!==a.tagStart?a.tagStart:"anchorStart"in a&&-1!==a.anchorStart?a.anchorStart:"valueStart"in a&&-1!==a.valueStart?a.valueStart:"start"in a?a.start:0,a.type){case 1:for(let b of(c.anchors=new Map,c.nodeTags=new Map,c.aliasCount=0,c.tagHandlers=Object.create(null),a.directives))"tag"===b.kind&&(c.tagHandlers[b.handle]=b.prefix);c.frames.push({kind:"document",position:c.position,value:void 0,hasValue:!1});break;case 4:{let{value:b,tag:d}=function(a,b){let c=function(a,b){if(-1===b.valueStart)return"";let{valueStart:c,valueEnd:d}=b;if(b.fast)return a.slice(c,d);switch(b.style){case 2:return function(a,b,c){let d="",e=b,f=b,g=b;for(;e<c;){let b=a.charCodeAt(e);if(39===b)d+=a.slice(f,e)+"'",e+=2,f=g=e;else if(10===b||13===b){d+=a.slice(f,g);let b=gB(a,e,c);d+=gC(b.breaks),e=f=g=b.position}else e++,32!==b&&9!==b&&(g=e)}return d+a.slice(f,c)}(a,c,d);case 3:return function(a,b,c){let d="",e=b,f=b,g=b;for(;e<c;){let b=a.charCodeAt(e);if(92===b){d+=a.slice(f,e),e++;let b=a.charCodeAt(e);if(10===b||13===b)e=gB(a,e,c).position;else if(b<256&&gz[b])d+=gA[b],e++;else{var h,i;let c=120===b?2:117===b?4:8,f=0;for(;c>0;c--)e++,f=(f<<4)+((h=a.charCodeAt(e))>=48&&h<=57?h-48:(32|h)-97+10);d+=(i=f)<=65535?String.fromCharCode(i):String.fromCharCode((i-65536>>10)+55296,(i-65536&1023)+56320),e++}f=g=e}else if(10===b||13===b){d+=a.slice(f,g);let b=gB(a,e,c);d+=gC(b.breaks),e=f=g=b.position}else e++,32!==b&&9!==b&&(g=e)}return d+a.slice(f,c)}(a,c,d);case 4:return gD(a,c,d,b.indent,b.chomping,!1);case 5:return gD(a,c,d,b.indent,b.chomping,!0);default:return function(a,b,c){let d="",e=b,f=b,g=b;for(;e<c;){let b=a.charCodeAt(e);if(10===b||13===b){d+=a.slice(f,g);let b=gB(a,e,c);d+=gC(b.breaks),e=f=g=b.position}else e++,32!==b&&9!==b&&(g=e)}return d+a.slice(f,g)}(a,c,d)}}(a.source,b),d=-1===b.tagStart?"":a.source.slice(b.tagStart,b.tagEnd),e=a.schema.defaultScalarTag;if(""!==d){if("!"===d)return{value:c,tag:e};let b=gF(d,a.tagHandlers),f=a.schema.lookupScalarTag(b);if(f){let d=f.resolve(c,!0,b);return d===fC&&gH(a,`cannot resolve a node with !<${b}> explicit tag`),{value:d,tag:f}}let g=a.schema.lookupMappingTag(b)??a.schema.lookupSequenceTag(b);if(g){""!==c&&gH(a,`cannot resolve a node with !<${b}> explicit tag`);let d=g.create(b);return{value:g.carrierIsResult?d:gI(a,a.position,g,d),tag:g}}gH(a,`unknown scalar tag !<${b}>`)}return 1===b.style?a.schema.resolveImplicitScalarTag(c):{value:e.resolve(c,!1,e.tagName),tag:e}}(c,a);gO(c,a,b,d,!0),gN(c,b,d);break}case 2:{let b=gJ(c,a,"tag:yaml.org,2002:seq"),d=c.schema.lookupSequenceTag(b);d||gH(c,`unknown sequence tag !<${b}>`);let e=d.create(b),f=gO(c,a,e,d,d.carrierIsResult);c.frames.push({kind:"sequence",position:c.position,value:e,tag:d,anchor:f,index:0});break}case 3:{let b=gJ(c,a,"tag:yaml.org,2002:map"),d=c.schema.lookupMappingTag(b);d||gH(c,`unknown mapping tag !<${b}>`);let e=d.create(b),f=gO(c,a,e,d,d.carrierIsResult);c.frames.push({kind:"mapping",position:c.position,value:e,tag:d,anchor:f,key:void 0,keyPosition:c.position,hasKey:!1,keyIsMerge:!1,overridable:null});break}case 5:{-1!==c.maxAliases&&++c.aliasCount>c.maxAliases&&gH(c,`aliases exceeded maxAliases (${c.maxAliases})`);let b=c.source.slice(a.anchorStart,a.anchorEnd),d=c.anchors.get(b);d||gH(c,`unidentified alias "${b}"`),d.isValueFinal||gH(c,`recursive alias "${b}" is not supported for tag ${d.tag.tagName} because it uses finalize()`),gN(c,d.value,d.tag);break}case 6:{let a=c.frames.pop();if("mapping"===a.kind&&a.hasKey&&(c.position=a.keyPosition,gH(c,"incomplete mapping pair in event stream")),"document"===a.kind)c.documents.push(a.value);else{let b=a.tag.carrierIsResult?a.value:gI(c,a.position,a.tag,a.value);a.anchor&&(a.anchor.value=b,a.anchor.isValueFinal=!0),gN(c,b,a.tag)}}}}return c.documents}(function(a,b){let c=a.length,d={...gY,...b,input:`${a}\0`,length:c,position:0,line:0,lineStart:0,lineIndent:0,firstTabInLine:-1,depth:0,directives:[],tagHandlers:Object.create(null),events:[]},e=a.indexOf("\0");for(-1!==e&&gx.throwAt(a,e,"null byte is not allowed in input",d.filename);d.position<d.length&&(hf(d),hd(d,!0),!(d.position>=d.length));){let a=d.position;!function(a){var b;a.directives=[],a.tagHandlers=Object.create(null);let c=!1;for(hd(a,!0);function(a){if(a.lineIndent>0||37!==a.input.charCodeAt(a.position))return!1;a.position++;let b=a.position;for(;0!==a.input.charCodeAt(a.position)&&!g9(a.input.charCodeAt(a.position));)a.position++;let c=a.input.slice(b,a.position),d=[];for(0===c.length&&g6(a,"directive name must not be less than one character in length");0!==a.input.charCodeAt(a.position)&&!g7(a.input.charCodeAt(a.position));){for(;g8(a.input.charCodeAt(a.position));)a.position++;if(35===a.input.charCodeAt(a.position)||g7(a.input.charCodeAt(a.position))||0===a.input.charCodeAt(a.position))break;let b=a.position;for(;0!==a.input.charCodeAt(a.position)&&!g9(a.input.charCodeAt(a.position));)a.position++;d.push(a.input.slice(b,a.position))}if(g7(a.input.charCodeAt(a.position))&&hc(a),"YAML"===c){a.directives.some(a=>"yaml"===a.kind)&&g6(a,"duplication of %YAML directive"),1!==d.length&&g6(a,"YAML directive accepts exactly one argument");let b=/^([0-9]+)\.([0-9]+)$/.exec(d[0]);null===b&&g6(a,"ill-formed argument of the YAML directive"),1!==parseInt(b[1],10)&&g6(a,"unacceptable YAML version of the document"),a.directives.push({kind:"yaml",version:d[0]})}else if("TAG"===c){2!==d.length&&g6(a,"TAG directive accepts exactly two arguments");let[b,c]=d;gS.test(b)||g6(a,"ill-formed tag handle (first argument) of the TAG directive"),gP.call(a.tagHandlers,b)&&g6(a,`there is a previously declared suffix for "${b}" tag handle`),gX.test(c)||g6(a,"ill-formed tag prefix (second argument) of the TAG directive"),a.tagHandlers[b]=c,a.directives.push({kind:"tag",handle:b,prefix:c})}return!0}(a);)c=!0,hd(a,!0);let d=!1,e=!1,f=!0;if(0===a.lineIndent&&45===a.input.charCodeAt(a.position)&&45===a.input.charCodeAt(a.position+1)&&45===a.input.charCodeAt(a.position+2)&&ha(a.input.charCodeAt(a.position+3))){d=!0;let b=a.line;a.position+=3,hd(a,!0),f=a.line>b}else c&&g6(a,"directives end mark is expected");let g=a.events.length;if(!d&&a.position===a.lineStart&&46===a.input.charCodeAt(a.position)&&he(a)){a.position+=3,hd(a,!0);return}if(b=d,a.events.push({type:1,explicitStart:b,explicitEnd:!1,directives:a.directives}),hn(a,a.lineIndent-1,4,!1,f,f)||g2(a),hd(a,!0),a.position===a.lineStart&&he(a)&&(e=46===a.input.charCodeAt(a.position))){let b=a.line;a.position+=3,hd(a,!0),a.line===b&&a.position<a.length&&g6(a,"end of the stream or a document separator is expected")}let h=a.events[g];h?.type===1&&(h.explicitEnd=e),g1(a),e||!(a.position<a.length)||hg(a)||g6(a,"end of the stream or a document separator is expected")}(d),d.position===a&&g6(d,"can not read a document")}return d.events}(d,gj(c,e)),{...gj(c,f),source:d})}(a,void 0);if(0===b.length)throw new gx("expected a document, but the input is empty");if(1===b.length)return b[0];throw new gx("expected a single document in the stream, but found more")}(b.yaml);if(a&&"object"==typeof a&&!Array.isArray(a))return{data:a,rest:b.rest}}catch{}return{data:null,rest:b.rest}}(n.content):null,[n]),ad=n?.content??"",ae=(0,q.useMemo)(()=>ad.split("\n"),[ad]),af=n?.language??"text",ag=(0,fA.c)(!!n&&"text"!==af),ah="html"===af,ai="markdown"===af,aj=$||(ah?!!n&&(!n.truncated||n.size<=fB.en):ai&&!n?.truncated),ak=aa?"diff":H,al=!!n?.truncated&&!(ah&&"preview"===ak),am=ae.length>1e3&&!("diff"===ak&&_)&&!("preview"===ak&&aj),an=(0,q.useMemo)(()=>(0,p.jsx)(fw.A,{className:J?"file-source-view is-wrapped":"file-source-view",language:"text"!==af&&ag?af:"plaintext",style:l?hZ:fy.vs,showLineNumbers:!0,lineNumberStyle:{...h_},customStyle:{margin:0,padding:0,border:0,backgroundColor:"var(--bg)",...hY,width:J?"100%":"max-content",minWidth:"100%",minHeight:"100%",overflow:"visible"},codeTagProps:{style:{fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",overflowWrap:J?"anywhere":"normal"}},renderer:a=>(0,p.jsx)(h1,{...a,wrapLines:J}),wrapLongLines:J,children:ad}),[l,af,ag,ad,J]),ao=(0,q.useMemo)(()=>am?ae.map((a,b)=>(0,p.jsxs)("span",{className:"file-source-line","data-line-number":b+1,style:{display:"flex",minWidth:"100%"},children:[(0,p.jsx)("span",{"aria-hidden":"true",style:h$,children:b+1}),(0,p.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:J?"anywhere":"normal",whiteSpace:J?"pre-wrap":"pre"},children:a})]},`source-line-${b}`)):null,[ae,am,J]),ap=(0,q.useCallback)(c=>{e&&c&&e((0,a1.qP)(a,b),c.startLine,c.endLine)},[b,a,e]);if(x||"diff"===D&&t&&!n)return(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:m("i18n.loading")});if(B&&!aa)return(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:B});if(!n&&!aa)return null;let aq=(0,a1.gX)(a),ar=aa?["diff"]:["source",...aj?["preview"]:[],..._?["diff"]:[]],as=aa?m("files.deleted"):`${af} \xb7 ${ae.length} lines \xb7 ${h4(n.size)}`;return(0,p.jsxs)("div",{className:"file-viewer-shell",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[(0,p.jsxs)("div",{className:"file-viewer-toolbar",style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,p.jsx)("span",{className:"file-viewer-path",style:{fontFamily:"var(--font-mono)"},title:a,children:(0,a1.qP)(a,b)}),(0,p.jsx)("span",{className:"file-viewer-meta",title:as,children:as}),!aa&&(0,p.jsx)("span",{title:L?m("i18n.liveSync"):m("i18n.notWatching"),"aria-label":L?m("i18n.liveSync"):m("i18n.notWatching"),className:"file-viewer-live-indicator",style:{background:L?"#4ade80":"var(--border)",boxShadow:L?"0 0 4px #4ade80":"none"}}),(0,p.jsxs)("div",{className:"file-viewer-controls",children:[ar.length>1&&(0,p.jsx)("div",{className:"file-viewer-mode-switch","aria-label":m("i18n.fileViewMode"),children:ar.map(a=>{let b=ak===a;return(0,p.jsx)("button",{type:"button",onClick:()=>X(a),title:"diff"===a?m("i18n.compareHead"):void 0,"aria-pressed":b,className:"file-viewer-mode-button",style:{background:b?"var(--bg-selected)":"transparent",color:b?"var(--text)":"var(--text-muted)"},children:hX[a]},a)})}),(0,p.jsxs)("div",{className:"file-viewer-actions",children:[(f||e)&&(0,p.jsx)("button",{type:"button",onPointerDown:a=>a.preventDefault(),onClick:()=>{T&&e?ap(T):f?.((0,a1.qP)(a,b),!1)},title:T&&e?`${m("i18n.mentionSelectedLines")} (L${T.startLine}${T.startLine!==T.endLine?`-L${T.endLine}`:""})`:m("files.insertPath"),"aria-label":m("files.mention"),disabled:!f&&!e,className:"file-viewer-icon-button",children:(0,p.jsx)(h0,{})}),"source"===ak&&(0,p.jsx)(p.Fragment,{children:(0,p.jsx)("button",{type:"button",onClick:Y,title:J?m("i18n.disableWrap"):m("i18n.enableWrap"),"aria-label":J?m("i18n.disableWrap"):m("i18n.enableWrap"),"aria-pressed":J,className:"file-viewer-icon-button",style:{background:J?"var(--bg-selected)":"transparent",color:J?"var(--text)":"var(--text-muted)"},children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M3 12h15a3 3 0 1 1 0 6h-4"}),(0,p.jsx)("path",{d:"m16 16-2 2 2 2"}),(0,p.jsx)("path",{d:"M3 18h7"})]})})})]}),!aa&&(0,p.jsx)(h3,{filePath:a,sourceSessionId:c})]})]}),al&&n?.truncated&&(0,p.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-dim)",fontSize:11},children:[(0,p.jsxs)("span",{children:[h4(n.nextOffset)," / ",h4(n.size)]}),(0,p.jsx)("button",{type:"button",className:"file-viewer-mode-button",disabled:z,onClick:()=>{A(!0),Z(a,n.nextOffset).finally(()=>A(!1))},children:z?m("i18n.loading"):m("i18n.loadMore")})]}),(0,p.jsx)("div",{ref:Q,className:"file-viewer-content",onScroll:a=>{R.current.scrollTop=a.currentTarget.scrollTop,R.current.scrollLeft=a.currentTarget.scrollLeft},style:{flex:1,overflow:"auto",background:"var(--bg)",paddingBottom:al?48:void 0},children:"diff"===ak&&_?(0,p.jsx)(h5,{patch:r.patch}):ah&&"preview"===ak&&n?.truncated&&!V?.text?(0,p.jsx)("div",{style:{padding:24,color:"var(--text-dim)",fontSize:12},children:V?.error??m("i18n.loading")}):ah&&"preview"===ak?(0,p.jsx)("iframe",{srcDoc:n?.truncated?V?.text:ad,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:m("i18n.htmlPreview")}):ai&&"preview"===ak?(0,p.jsxs)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:[ac?.data&&(0,p.jsx)(hV,{data:ac.data}),(0,p.jsx)(el.oz,{remarkPlugins:en.iA,rehypePlugins:en.LA,urlTransform:d?en.t9:en.SG,components:{code({className:a,children:b,...c}){let d=a?.replace("language-","").toLowerCase()??"",e=String(b);return a?.includes("language-")||e.includes("\n")?"mermaid"===d?(0,p.jsx)(hL.t,{code:e.replace(/\n$/,""),defaultPreview:!0}):(0,p.jsx)(hL.NG,{code:e.replace(/\n$/,""),lang:d}):(0,p.jsx)("code",{className:a,...c,children:b})},pre:({children:a})=>(0,p.jsx)(p.Fragment,{children:a}),a({href:a,children:c,...e}){delete e.node;let f=d?(0,cM.Vc)(a,aq,b??aq):null;return f&&d?(0,p.jsx)("a",{href:a,...e,onClick:b=>{(0,cM.pz)(b)&&(b.preventDefault(),d(f,(0,cM.XJ)(a)??void 0))},children:c}):(0,en.AA)(a)?(0,p.jsx)("a",{href:a,...e,target:"_blank",rel:"noopener noreferrer",children:c}):(0,p.jsx)("a",{href:a,...e,onClick:en.xq,children:c})},img({src:a,alt:d,...e}){delete e.node;let f="string"==typeof a?(0,cM.Vc)(a,aq,b??aq):null,g=f?h2(f,"read",c):a;return(0,p.jsx)("img",{src:g,alt:d??"",loading:"lazy",...e})}},children:ab})]}):$&&"preview"===ak?(0,p.jsx)(hT,{content:ad,filePath:a,complete:!n?.truncated,scrollRef:Q}):am?(0,p.jsx)("div",{className:"file-source-view is-lightweight",style:{width:J?"100%":"max-content",minWidth:"100%",minHeight:"100%",background:"var(--bg)",...hY},children:ao}):an})]})}function id({tabs:a,activeTabId:b,onSelectTab:c,onCloseTab:d}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(null),h=(0,q.useRef)(null);return(0,p.jsx)("div",{ref:h,role:"tablist",className:"tabbar-scroll",style:{display:"flex",alignItems:"stretch",background:"var(--bg-panel)",overflowX:"auto",overflowY:"hidden",flexShrink:0,height:36},children:a.map(h=>{let i=h.id===b;return(0,p.jsxs)("div",{role:"tab","aria-label":"terminal"===h.kind?e("terminal.tabLabel",{name:h.label}):"agent"===h.kind?e("subagent.tabLabel",{name:h.label}):"git-graph"===h.kind?e("gitGraph.tabLabel",{name:h.label}):h.label,"aria-selected":i,tabIndex:i||!b&&a[0].id===h.id?0:-1,onKeyDown:b=>{if(b.target===b.currentTarget){if("Enter"===b.key||" "===b.key)b.preventDefault(),c(h.id);else if(["ArrowLeft","ArrowRight","Home","End"].includes(b.key)){b.preventDefault();let d=a.findIndex(a=>a.id===h.id),e="Home"===b.key?0:"End"===b.key?a.length-1:(d+("ArrowRight"===b.key?1:-1)+a.length)%a.length;c(a[e].id),b.currentTarget.parentElement?.children[e]?.focus()}}},onClick:()=>c(h.id),onMouseDown:a=>{1===a.button&&a.preventDefault()},onAuxClick:a=>{1===a.button&&(a.preventDefault(),a.stopPropagation(),h.closing||d(h.id))},style:{display:"flex",alignItems:"center",gap:6,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:i?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:i?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,p.jsx)("span",{style:{flexShrink:0,opacity:i?1:.7,display:"flex",alignItems:"center"},children:"terminal"===h.kind?(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,p.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):"agent"===h.kind?(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}):"git-graph"===h.kind?(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"5",cy:"6",r:"2.5"}),(0,p.jsx)("circle",{cx:"5",cy:"18",r:"2.5"}),(0,p.jsx)("circle",{cx:"19",cy:"12",r:"2.5"}),(0,p.jsx)("path",{d:"M5 8.5v7"}),(0,p.jsx)("path",{d:"M7.5 6H12a7 7 0 0 1 7 7v.01"}),(0,p.jsx)("path",{d:"M7.5 18H12"})]}):(0,a0.I3)(h.label,13)}),(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:i?500:400},title:h.filePath,children:h.label}),(0,p.jsx)("button",{disabled:h.closing,onClick:a=>{a.stopPropagation(),d(h.id)},onMouseEnter:()=>g(h.id),onMouseLeave:()=>g(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:f===h.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:4,color:f===h.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:e("terminal"===h.kind?"terminal.close":"i18n.close"),"aria-label":`${e("terminal"===h.kind?"terminal.close":"i18n.close")} ${h.label}`,children:(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,p.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]},h.id)})})}function ie(a,b,c,d){let e=a.findIndex(a=>a.id===b);if(-1===e||(a[e].viewerRevision??0)!==c)return a;let f=[...a];return f[e]={...f[e],viewerState:d},f}var ig=c(60489);let ih=["general","models","skills","agents","plugins","mcp","channels","automations"],ii="pi-web:settings-navigation",ij=new Set(["skills","agents","plugins"]);function ik(a){return ij.has(a)}function il(a){let b=a.getItem(ii);if(!b)return{};try{let a=JSON.parse(b);if(null===a||"object"!=typeof a||Array.isArray(a))return{};return{section:"string"==typeof a.section?a.section:void 0,selections:null===a.selections||"object"!=typeof a.selections||Array.isArray(a.selections)?void 0:a.selections}}catch{return{}}}function im(a,b,c=null){if(!c)return null;let d="models"===a?a:b?JSON.stringify([a,b]):"mcp"===a||"channels"===a||"automations"===a?a:null;if(!d)return null;try{let a=il(c).selections?.[d];return"string"==typeof a&&a.length>0?a:null}catch{return null}}var io=c(60882);function ip(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}class iq extends Error{constructor(a){super(`Context window of ${a} must be a positive number of tokens`),this.name="ContextWindowError",this.model=a}}function ir(a){if("string"==typeof a){let b=/^\d+$/.test(a.trim())?Number(a.trim()):0;return Number.isSafeInteger(b)&&b>0?b:void 0}return"number"==typeof a&&Number.isFinite(a)&&a>0?a:void 0}let is=["input","output","cacheRead","cacheWrite"];function it(a){return{input:a?.input===void 0?"":String(a.input),output:a?.output===void 0?"":String(a.output),cacheRead:a?.cacheRead===void 0?"":String(a.cacheRead),cacheWrite:a?.cacheWrite===void 0?"":String(a.cacheWrite)}}function iu(a){if(!iv(a))return;let b=a=>{if(!a.trim())return 0;let b=Number(a);return Number.isFinite(b)&&b>=0?b:void 0},c=b(a.input),d=b(a.output),e=b(a.cacheRead),f=b(a.cacheWrite);if(void 0!==c&&void 0!==d&&void 0!==e&&void 0!==f)return{input:c,output:d,cacheRead:e,cacheWrite:f}}function iv(a){return is.some(b=>""!==a[b].trim())}function iw(a,b,c){return{...a,compat:{...a.compat??{},[b]:c}}}function ix(a,b,c){if(c<=0)return;let d=a.get(b)??[];a.set(b,[...d,...Array.from({length:c},()=>null)])}function iy({renames:a,savedProviders:b},c){for(let[b,d]of a)if(d===c)return b;return!a.has(c)&&b.has(c)?c:null}function iz(a,b,c){let d=a.trim().toLowerCase();return!d||c.toLowerCase().includes(d)||b.toLowerCase().includes(d)}function iA({embedded:a,title:b,subtitle:c,closeLabel:d="Close",onClose:e,children:f,width:g=900,height:h="78vh"}){let i=a?void 0:{"--config-panel-width":`${g}px`,"--config-panel-height":h};return(0,p.jsx)("div",{role:a?void 0:"dialog","aria-modal":a?void 0:"true","aria-label":b,className:`config-panel-root ${a?"is-embedded":"is-modal"}`,onClick:b=>{a||b.target!==b.currentTarget||e()},children:(0,p.jsxs)("div",{className:"config-panel-surface",style:i,children:[!a&&(0,p.jsxs)("div",{className:"config-panel-header",children:[(0,p.jsx)("strong",{className:"config-panel-title",children:b}),c&&(0,p.jsx)("code",{className:"config-panel-subtitle",title:c,children:c}),(0,p.jsx)("button",{type:"button",className:"config-close-button",onClick:e,title:d,"aria-label":d,children:"\xd7"})]}),f]})})}function iB({children:a}){return(0,p.jsx)("div",{className:"config-split-view",children:a})}function iC({children:a}){return(0,p.jsx)("aside",{className:"config-sidebar",children:a})}function iD({children:a}){return(0,p.jsx)("div",{className:"config-sidebar-list",children:a})}function iE({children:a,aside:b}){return(0,p.jsxs)("div",{className:"config-sidebar-group-label",children:[(0,p.jsx)("span",{className:"config-sidebar-group-label-text",children:a}),b]})}function iF({enabled:a,total:b,checked:c,label:d,disabled:e=!1,loading:f=!1,describedBy:g,onChange:h}){return(0,p.jsxs)("span",{className:"config-sidebar-group-switch",children:[(0,p.jsxs)("span",{className:"config-sidebar-group-count",children:[a,"/",b]}),(0,p.jsx)(i2,{checked:c??(b>0&&a===b),disabled:e,loading:f,label:d,describedBy:g,onChange:h})]})}function iG({error:a,note:b}){return a||b?(0,p.jsxs)("div",{className:"config-sidebar-group-status",children:[b&&(0,p.jsx)("div",{role:"status",className:"config-sidebar-group-note",children:b}),a&&(0,p.jsx)("div",{role:"alert",className:"config-sidebar-group-error",children:a})]}):null}function iH({active:a=!1,className:b,children:c,...d}){return(0,p.jsx)("button",{type:"button",...d,"aria-current":a?"page":void 0,className:["config-sidebar-item",b].filter(Boolean).join(" "),children:c})}function iI({className:a,...b}){return(0,p.jsx)("span",{...b,className:["config-sidebar-text",a].filter(Boolean).join(" ")})}function iJ({className:a,...b}){return(0,p.jsx)("div",{...b,className:["config-detail-stack",a].filter(Boolean).join(" ")})}function iK({className:a,...b}){return(0,p.jsx)("div",{...b,className:["config-detail-header",a].filter(Boolean).join(" ")})}function iL({className:a,...b}){return(0,p.jsx)("div",{...b,className:["config-detail-header-info",a].filter(Boolean).join(" ")})}function iM({className:a,...b}){return(0,p.jsx)("div",{...b,className:["config-detail-actions",a].filter(Boolean).join(" ")})}function iN({children:a}){return(0,p.jsx)("div",{className:"config-detail-title",children:a})}function iO({children:a}){return(0,p.jsx)("div",{className:"config-section-title",children:a})}function iP({label:a,children:b,style:c,ref:d}){return(0,p.jsxs)("div",{ref:d,className:"config-field",style:c,children:[(0,p.jsx)("span",{className:"config-field-label",children:a}),b]})}function iQ({children:a}){return(0,p.jsx)("div",{className:"config-detail-grid",children:a})}function iR({label:a,tone:b="muted",mono:c=!1,className:d,style:e,children:f}){return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:"config-detail-grid-label",children:a}),(0,p.jsx)("div",{className:["config-detail-grid-value","plain"===b?null:`is-${b}`,c?"is-mono":null,d].filter(Boolean).join(" "),style:e,children:f})]})}function iS({scope:a,children:b}){return(0,p.jsx)("span",{className:`config-scope-tag${"project"===a?" is-project":""}`,children:b})}function iT({value:a,options:b,label:c,disabledReason:d,size:e="default",onChange:f,children:g}){let h=(0,q.useId)(),i=d&&b.some(a=>a.disabled)?d:null;return(0,p.jsxs)("div",{className:"config-scope-switch-field",children:[(0,p.jsxs)("div",{className:"config-scope-switch-row",children:[(0,p.jsx)("div",{role:"group","aria-label":c,className:`config-scope-switch${"small"===e?" is-small":""}`,children:b.map(b=>(0,p.jsx)("button",{type:"button","aria-pressed":b.value===a,"aria-describedby":b.disabled&&i?h:void 0,disabled:b.disabled,className:"config-scope-switch-option",onClick:()=>{b.disabled||f(b.value)},children:b.label},b.value))}),g]}),i&&(0,p.jsx)("span",{id:h,className:"config-scope-switch-reason",children:i})]})}function iU({value:a,options:b,label:c,path:d,disabledReason:e,onChange:f,children:g}){return(0,p.jsxs)("div",{className:"config-save-target",children:[(0,p.jsx)(iT,{value:a,options:b,label:c,disabledReason:e,size:"small",onChange:f,children:(0,p.jsx)("span",{className:"config-save-target-path",children:"string"==typeof d?d.split(/([\\/])/).map((a,b)=>"/"===a||"\\"===a?(0,p.jsxs)(q.Fragment,{children:[a,(0,p.jsx)("wbr",{})]},b):a):d})}),g]})}function iV({title:a,catalogs:b,target:c}){return(0,p.jsxs)("div",{className:"config-add-source-heading",children:[(0,p.jsxs)("div",{className:"config-add-source-title-row",children:[(0,p.jsx)(iN,{children:a}),(0,p.jsx)("span",{className:"config-add-source-catalogs",children:b.map(a=>(0,p.jsxs)("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"config-add-source-catalog",children:[a.icon,a.label]},a.href))})]}),c]})}function iW({title:a,catalogs:b,target:c,inputLabel:d,inputId:e,placeholder:f,value:g,canSubmit:h,normalizeValue:i,onValueChange:j,onSubmit:k,examplesLabel:l,examples:m,error:n,multiline:o=!1,children:r}){let s=(0,q.useRef)(null),t=(0,q.useRef)(null),u=a=>{if(!i)return;let b=a.clipboardData.getData("text"),c=i(b);c!==b&&(a.preventDefault(),j(c))};return(0,p.jsxs)(iJ,{className:"is-fill",children:[(0,p.jsx)(iV,{title:a,catalogs:b,target:c}),(0,p.jsx)(iP,{label:d,children:o?(0,p.jsx)("textarea",{id:e,ref:t,value:g,"aria-label":d,className:"config-add-source-input is-multiline",placeholder:f,rows:5,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:a=>j(a.target.value),onPaste:u,onBlur:a=>{i&&j(i(a.currentTarget.value))},onKeyDown:a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&a.nativeEvent?.isComposing!==!0&&229!==a.keyCode&&(a.preventDefault(),h&&k())}}):(0,p.jsx)("input",{id:e,ref:s,value:g,"aria-label":d,className:"config-add-source-input",placeholder:f,onChange:a=>j(a.target.value),onPaste:u,onBlur:a=>{i&&j(i(a.currentTarget.value))},onKeyDown:a=>{"Enter"===a.key&&h&&k()}})}),r,m.length>0&&(0,p.jsxs)("div",{className:"config-add-source-examples",children:[(0,p.jsx)("div",{className:"config-add-source-examples-label",children:l}),(0,p.jsx)("div",{className:"config-add-source-example-list",children:m.map(a=>"string"==typeof a?(0,p.jsx)("button",{type:"button",className:"config-add-source-example",onClick:()=>j(a),children:a},a):(0,p.jsxs)("button",{type:"button",className:"config-add-source-example has-label",onClick:()=>j(a.value),children:[(0,p.jsx)("span",{className:"config-add-source-example-label",children:a.label}),(0,p.jsx)("span",{className:"config-add-source-example-value",children:a.value})]},a.value))})]}),n&&(0,p.jsx)("div",{role:"alert",className:"config-add-source-error",children:n})]})}function iX({id:a,action:b,children:c}){return(0,p.jsxs)("div",{id:a,role:"status",className:`config-notice${b?" has-action":""}`,children:[b?(0,p.jsx)("span",{className:"config-notice-text",children:c}):c,b]})}function iY({id:a,message:b,trustLabel:c,trusting:d=!1,onTrust:e}){return(0,p.jsx)(iX,{id:a,action:e&&c?(0,p.jsx)(i1,{size:"small",onClick:e,disabled:d,children:c}):void 0,children:b})}function iZ({children:a}){return(0,p.jsx)("div",{className:"config-empty-state",children:a})}function i$({children:a,style:b}){return(0,p.jsx)("div",{className:"config-detail",style:b,children:a})}function i_({status:a,children:b}){return(0,p.jsxs)("footer",{className:"config-footer",children:[(0,p.jsx)("div",{className:"config-footer-status",children:a}),(0,p.jsx)("div",{className:"config-footer-actions",children:b})]})}function i0({summary:a,tone:b="default",details:c}){let d=`config-footer-status-summary${"default"===b?"":` is-${b}`}`;return c?.length?(0,p.jsxs)("details",{className:"config-footer-status-details",children:[(0,p.jsx)("summary",{className:d,children:a}),(0,p.jsx)("ul",{className:"config-footer-status-list",children:c.map((a,b)=>(0,p.jsx)("li",{children:a},b))})]}):(0,p.jsx)("span",{className:d,children:a})}function i1({variant:a="secondary",size:b="default",className:c,children:d,...e}){return(0,p.jsx)("button",{type:"button",...e,className:["config-button",`config-button-${a}`,`config-button-${b}`,c].filter(Boolean).join(" "),children:d})}function i2({checked:a,disabled:b=!1,loading:c=!1,size:d="default",label:e,describedBy:f,onChange:g}){let h=b||c;return(0,p.jsx)("button",{type:"button",role:"switch","aria-checked":a,"aria-busy":c||void 0,"aria-label":e,"aria-describedby":f,title:e,disabled:h,className:`config-switch${"small"===d?" is-small":""}${c?" is-loading":""}`,onClick:()=>g(!a),children:(0,p.jsx)("span",{className:"config-switch-knob","aria-hidden":"true"})})}function i3({active:a=!1,children:b,className:c,...d}){return(0,p.jsx)("div",{className:"config-list-action",children:(0,p.jsxs)("button",{type:"button",...d,"aria-current":a?"page":void 0,className:["config-list-action-button",c].filter(Boolean).join(" "),children:[(0,p.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M12 5v14M5 12h14"})}),b]})})}function i4({active:a,color:b}){return(0,p.jsx)("span",{"aria-hidden":"true",className:`config-status-dot${a?" is-active":!1===a?" is-inactive":""}`,style:b?{backgroundColor:b}:void 0})}function i5(a,b){let c=b.filter(a=>!a.enabled).map(a=>a.ref),d=b.filter(a=>a.enabled).map(a=>a.ref),e=a?.editable===!0;return{enableRefs:c,disableRefs:d,canEnable:e&&c.length>0,canDisable:e&&d.length>0&&(a?.enabledTotal??0)-d.length>=1}}function i6(a,b){let c=i5(a,b.models),d=b.models.length>0&&b.enabledCount===b.models.length,e=d?!c.canDisable:!c.canEnable;return{checked:d,blocked:e,reason:e?a?.editable?"last-model":"project-scope":null}}function i7(a,b){return b.enabled&&(a?.enabledTotal??0)<=1}function i8(a,b){return a?.providers.find(a=>a.id===b)}function i9({modelName:a,effective:b,value:c,onChange:d,disabled:e=!1,describedBy:f}){let{t:g}=(0,aG.s)(),h=void 0!==c&&void 0===ir(c);return(0,p.jsx)("input",{type:"text",inputMode:"numeric",className:"model-context-input",value:void 0===c?"":String(c),placeholder:void 0===b?void 0:String(b),title:g("models.contextWindow"),"aria-label":g("models.contextForModel",{model:a}),"aria-invalid":h||void 0,"aria-describedby":f,disabled:e,onChange:a=>d(""===a.target.value.trim()?void 0:a.target.value)})}let ja={"last-model":"models.enabledLastModel","project-scope":"models.enabledProjectScope"};function jb({controller:a}){let{t:b}=(0,aG.s)(),{view:c,pending:d}=a;if(!c)return null;let e=!c.allEnabled,f=c.stalePatterns.length;return e||0!==f?(0,p.jsxs)("div",{className:"enabled-models-banner",children:[(0,p.jsxs)("span",{className:"enabled-models-banner-text",...f>0?{title:b("models.enabledStaleHint")}:{},children:[(0,p.jsx)("code",{className:"enabled-models-banner-key",title:c.settingsPath,children:c.settingsPath}),(0,p.jsxs)("code",{className:"enabled-models-banner-facts",children:[`\xb7 enabledModels ${c.enabledTotal}/${c.availableTotal}`,f>0&&` \xb7 ${b("models.enabledStale",{count:f})}`]})]}),c.editable&&f>0&&(0,p.jsx)(i1,{size:"small",onClick:a.pruneStale,disabled:null!==d,title:b("models.enabledPruneHint"),children:b("models.enabledPrune")}),c.editable&&e&&(0,p.jsx)(i1,{size:"small",onClick:a.clearScope,disabled:null!==d,title:b("models.enabledClearHint"),children:b("models.enabledClear")})]}):null}function jc({providerId:a,controller:b,noteId:c}){let{t:d}=(0,aG.s)(),{view:e,loading:f,pending:g,failure:h}=b,i=i8(e,a),j=h?h.messageKey?d(h.messageKey):h.message:null,k=jd(b,a)?c:void 0;if(f&&!e)return null;if(!i)return(0,p.jsx)(i2,{checked:!1,disabled:!0,label:d("models.enabledProviderToggle",{provider:a}),describedBy:k,onChange:()=>{}});let l=i6(e,i);return(0,p.jsxs)(p.Fragment,{children:[j&&(0,p.jsx)("span",{className:"enabled-models-switch-error",children:j}),(0,p.jsx)(i2,{checked:l.checked,loading:g===`provider:${i.id}`,disabled:null!==g||l.blocked,label:d("models.enabledProviderToggle",{provider:i.name}),describedBy:k,onChange:a=>b.setProvider(i.id,a)})]})}function jd(a,b){let{view:c,loading:d}=a;if(d&&!c)return null;let e=i8(c,b);if(!e)return"models.enabledCustomEmpty";let{reason:f}=i6(c,e);return f?ja[f]:null}function je({providerId:a,controller:b,id:c}){let{t:d}=(0,aG.s)(),e=jd(b,a);return e?(0,p.jsx)("div",{id:c,className:"config-detail-heading-note",children:d(e)}):null}function jf({providerId:a,controller:b,contextSettings:c}){var d;let e,{t:f}=(0,aG.s)(),[g,h]=(0,q.useState)(""),{view:i,loading:j,pending:k,failure:l}=b,m=i8(i,a),n=function(a,b){let[c,d]=(0,q.useState)(!1),[e,f]=(0,q.useState)(null);return{refreshing:c,note:e,refresh:(0,q.useCallback)(()=>{d(!0),f(null),(async()=>{try{let c=await fetch("/api/models/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);"offline"===d.reason?f("models.catalogOffline"):d.completed?f(d.changed?"models.catalogUpdated":"models.catalogUnchanged"):f("models.catalogUnreachable"),d.changed&&b()}catch{f("models.catalogUnreachable")}finally{d(!1)}})()},[a,b])}}(a,b.refresh),o=(0,q.useId)();if(j&&!i)return(0,p.jsx)("div",{className:"enabled-models-empty",children:f("agents.modelsLoading")});if(!m)return l?.message?(0,p.jsx)("div",{className:"enabled-models-error",children:l.message}):(0,p.jsx)("div",{className:"enabled-models-empty",children:f("models.enabledUnavailable")});let r=(d=m.models,(e=g.trim().toLowerCase())?d.filter(a=>a.id.toLowerCase().includes(e)||a.name.toLowerCase().includes(e)):[...d]),s=i5(i,r),t=r.length!==m.models.length,u=null!==k,v=`provider:${m.id}`,w=i?.editable===!0,x=`${o}-scope`,y=`${o}-last`,z=`${o}-context`,A=w&&!s.canDisable&&s.disableRefs.length>0,B=A||w&&r.some(a=>i7(i,a)),C=(a,c)=>{t?b.setModels(v,c,a):b.setProvider(m.id,a)};return(0,p.jsxs)("div",{className:"enabled-models-section",children:[(0,p.jsxs)("div",{className:"enabled-models-header",children:[(0,p.jsx)("span",{className:"enabled-models-title",children:f("models.enabledSection")}),(0,p.jsx)("span",{className:"enabled-models-count",children:f("models.enabledCount",{enabled:m.enabledCount,total:m.models.length})}),(0,p.jsx)(i1,{size:"small",disabled:u||!s.canEnable,"aria-describedby":w?void 0:x,onClick:()=>C(!0,s.enableRefs),children:t?f("models.enableShown"):f("models.enableAll")}),(0,p.jsx)(i1,{size:"small",disabled:u||!s.canDisable,"aria-describedby":w?A?y:void 0:x,onClick:()=>C(!1,s.disableRefs),children:t?f("models.disableShown"):f("models.disableAll")}),(0,p.jsx)(i1,{size:"small",disabled:u||n.refreshing,title:f("models.refreshCatalogHint"),onClick:n.refresh,children:n.refreshing?f("models.refreshingCatalog"):f("models.refreshCatalog")})]}),n.note&&(0,p.jsx)("div",{className:"enabled-models-note",children:f(n.note)}),!w&&(0,p.jsx)("div",{id:x,className:"enabled-models-note",children:f("models.enabledProjectScope")}),B&&(0,p.jsx)("div",{id:y,className:"enabled-models-note",children:f("models.enabledLastModel")}),l&&(0,p.jsx)("div",{className:"enabled-models-error",children:l.messageKey?f(l.messageKey):l.message}),m.models.length>8&&(0,p.jsx)("input",{value:g,onChange:a=>h(a.target.value),placeholder:f("models.enabledFilterPlaceholder",{count:m.models.length}),"aria-label":f("models.enabledFilter"),className:"enabled-models-filter"}),c&&(0,p.jsx)("div",{id:z,className:"enabled-models-note",children:f("models.contextOverrideHelp")}),(0,p.jsx)("div",{className:"enabled-models-list",children:0===r.length?(0,p.jsx)("div",{className:"enabled-models-empty",children:f("models.enabledNoMatches")}):r.map(a=>{let d=i7(i,a),e=c?.overrides?.[a.id],g=e&&"object"==typeof e&&!Array.isArray(e)?e.contextWindow:void 0;return(0,p.jsxs)("div",{className:"enabled-models-row",children:[(0,p.jsxs)("span",{className:"enabled-models-row-text",children:[(0,p.jsx)("span",{className:"enabled-models-row-name",children:a.name}),(0,p.jsx)("code",{className:"enabled-models-row-id",children:a.id})]}),a.thinkingPin&&(0,p.jsx)("span",{className:"enabled-models-pin",title:f("models.enabledPinHint"),children:a.thinkingPin}),c&&(0,p.jsx)(i9,{modelName:a.name,effective:a.contextWindow,value:g,disabled:c.disabled,describedBy:z,onChange:b=>c.onChange(a.id,b)}),(0,p.jsx)(i2,{checked:a.enabled,loading:k===a.ref,disabled:u||!i?.editable||d,label:f("models.enabledToggle",{model:a.name}),describedBy:w?d?y:void 0:x,onChange:c=>b.setModels(a.ref,[a.ref],c)})]},a.ref)})})]})}function jg({message:a,hint:b,value:c,placeholder:d,submitLabel:e,inputLabel:f,disabled:g=!1,plainEnterSubmits:h=!0,inputRef:i,onValueChange:j,onSubmit:k}){let l=!g&&c.trim().length>0;return(0,p.jsxs)("div",{className:"oauth-paste-panel",children:[(0,p.jsx)("p",{className:"oauth-paste-message",children:a}),b&&(0,p.jsx)("p",{className:"oauth-paste-hint",children:b}),(0,p.jsxs)("div",{className:"oauth-paste-row",children:[(0,p.jsx)("input",{ref:i,value:c,className:"oauth-paste-input",placeholder:d,"aria-label":f,disabled:g||void 0,onChange:a=>j(a.target.value),onKeyDown:a=>{var b;b={key:a.key,metaKey:a.metaKey,ctrlKey:a.ctrlKey,isComposing:a.nativeEvent.isComposing,keyCode:a.keyCode},"Enter"===b.key&&!b.isComposing&&229!==b.keyCode&&(h||b.metaKey||b.ctrlKey)&&l&&k()}}),(0,p.jsx)("button",{type:"button",className:"oauth-paste-submit",onClick:k,disabled:!l,children:e})]})]})}let jh={anthropic:{symbol:"anthropic",color:!1},openai:{symbol:"openai",color:!1},"openai-codex":{symbol:"openai",color:!1},google:{symbol:"google",color:!0},"google-vertex":{symbol:"google",color:!0},"ant-ling":{symbol:"antgroup",color:!0},deepseek:{symbol:"deepseek",color:!0},groq:{symbol:"groq",color:!1},mistral:{symbol:"mistral",color:!0},moonshotai:{symbol:"moonshot",color:!1},"moonshotai-cn":{symbol:"moonshot",color:!1},moonshot:{symbol:"moonshot",color:!1},minimax:{symbol:"minimax",color:!0},"minimax-cn":{symbol:"minimax",color:!0},fireworks:{symbol:"fireworks",color:!0},huggingface:{symbol:"huggingface",color:!0},cerebras:{symbol:"cerebras",color:!0},openrouter:{symbol:"openrouter",color:!1},xai:{symbol:"xai",color:!1},"cloudflare-ai-gateway":{symbol:"cloudflare",color:!0},"cloudflare-workers-ai":{symbol:"cloudflare",color:!0},"vercel-ai-gateway":{symbol:"vercel",color:!1},"github-copilot":{symbol:"githubcopilot",color:!1},"amazon-bedrock":{symbol:"aws",color:!0},azure:{symbol:"azure",color:!0},"azure-openai-responses":{symbol:"azure",color:!0},"kimi-coding":{symbol:"kimi",color:!0},nvidia:{symbol:"nvidia",color:!0},opencode:{symbol:"opencode",color:!1},"opencode-go":{symbol:"opencode",color:!1},qwen:{symbol:"qwen",color:!0},xiaomi:{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-ams":{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-cn":{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-sgp":{symbol:"xiaomimimo",color:!1},zai:{symbol:"zai",color:!1},"zai-coding-cn":{symbol:"zai",color:!1},zhipu:{symbol:"zhipu",color:!0},cohere:{symbol:"cohere",color:!0},perplexity:{symbol:"perplexity",color:!0},together:{symbol:"together",color:!0},grok:{symbol:"grok",color:!1}};function ji({id:a,size:b}){let c=jh[a];if(c)return(0,p.jsx)("svg",{"aria-hidden":"true",width:b,height:b,viewBox:"0 0 24 24",fill:c.color?void 0:"currentColor",style:{color:"var(--text-muted)",flexShrink:0},children:(0,p.jsx)("use",{href:`/provider-icons.svg#${c.symbol}`})});let d=a.split(/[-_]/).filter(Boolean).slice(0,2).map(a=>a[0]).join("").toUpperCase()||"?";return(0,p.jsx)("span",{"aria-hidden":"true",style:{width:b,height:b,border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontSize:Math.max(8,Math.floor(.42*b)),fontWeight:700,lineHeight:1},children:d})}let jj=["openai-codex","deepseek","openrouter","moonshotai","moonshotai-cn","minimax","minimax-cn","vercel-ai-gateway","opencode-go","kimi-coding"];function jk({providerId:a,enabled:b}){return jj.includes(a)?(0,p.jsx)(jl,{providerId:a,enabled:b}):null}function jl({providerId:a,enabled:b}){let[c,d]=(0,q.useState)(null),[e,f]=(0,q.useState)(!1),[g,h]=(0,q.useState)(null),[i,j]=(0,q.useState)(!1),k=(0,q.useRef)(null),{locale:l,t:m}=(0,aG.s)(),n=(0,q.useCallback)(async()=>{f(!0),h(null);try{let b=await fetch("/api/provider-usage/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerId:a})}),c=await b.json();if(!b.ok)throw Error(c.error??`HTTP ${b.status}`);if("ready"===c.status){d(c);try{localStorage.setItem(`pi-web:provider-usage:${a}`,JSON.stringify(c))}catch{}j(!0),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>j(!1),2e3)}else h(c.message??m("providerUsage.queryFailed"))}catch(a){h(a instanceof Error?a.message:m("providerUsage.queryFailed"))}finally{f(!1)}},[a,m]),o=c?.status==="ready"?c.report:void 0;return(0,p.jsxs)("section",{style:{paddingTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[(0,p.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:600,lineHeight:1.35},children:m("providerUsage.usage")}),(0,p.jsx)("button",{type:"button",onClick:n,disabled:!b||e,title:m(e?"providerUsage.refreshing":"providerUsage.refresh"),"aria-label":m(e?"providerUsage.refreshing":"providerUsage.refresh"),style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:32,height:30,padding:0,background:"none",border:"none",color:i?"#4ade80":"var(--text-dim)",cursor:b&&!e?"pointer":"default",borderRadius:5,flexShrink:0,opacity:b?1:.6,transition:"color 0.3s"},children:i?(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#4ade80",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:e?{animation:"spin 0.8s linear infinite"}:void 0,"aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,p.jsx)("path",{d:"M3 3v5h5"})]})}),o&&(0,p.jsx)("span",{title:new Date(o.capturedAt).toLocaleString(l),style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:m("providerUsage.updated",{time:(0,bp.ob)(o.capturedAt,l)})})]}),!o&&!g&&(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:m("providerUsage.notQueried")}),g&&(0,p.jsx)("span",{style:{fontSize:12,color:"#f87171"},children:g}),o&&(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"180px minmax(0, 1fr)",columnGap:14,rowGap:8,alignItems:"baseline",minWidth:0,width:"min(100%, 420px)",maxWidth:"100%",fontSize:12},children:[o.buckets.map(a=>(0,p.jsxs)("div",{style:{display:"contents"},children:[(0,p.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.groupLabel?`${a.groupLabel} / ${a.label}`:a.label}),(0,p.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:function(a,b){if("percent"===a.unit&&void 0!==a.remaining){let b=a.resetsAt?` / ${new Date(1e3*a.resetsAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`:"";return`${Math.round(a.remaining)}%${b}`}return"currency"===a.unit?`${"CNY"===a.currency?"CNY ":"$"}${jm(a.remaining??a.limit)}`:void 0!==a.remaining&&void 0!==a.limit?`${jm(a.remaining)} / ${jm(a.limit)}`:a.period??b}(a,m("providerUsage.available"))})]},a.id)),o.metrics.map(a=>{var b;return(0,p.jsxs)("div",{style:{display:"contents"},children:[(0,p.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label}),(0,p.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"currency"===(b=a).unit?`${"CNY"===b.currency?"CNY ":"$"}${b.value}`:String(b.value)})]},a.id)})]})]})}function jm(a){return void 0===a?"-":Number.isInteger(a)?String(a):a.toFixed(2)}function jn(){let a=im("models");if(!a)return null;try{let b=JSON.parse(a);if(null===b||"object"!=typeof b)return null;if("provider"===b.type&&"string"==typeof b.name)return{type:"provider",name:b.name};if("model"===b.type&&"string"==typeof b.providerName&&"number"==typeof b.index&&Number.isInteger(b.index)&&b.index>=0)return{type:"model",providerName:b.providerName,index:b.index};if(("oauth"===b.type||"apikey"===b.type)&&"string"==typeof b.providerId)return{type:b.type,providerId:b.providerId}}catch{}return null}let jo=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function jp({label:a,children:b}){return(0,p.jsx)(iP,{label:a,children:b})}let jq={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function jr({value:a,onChange:b,placeholder:c,mono:d}){return(0,p.jsx)("input",{value:a,onChange:a=>b(a.target.value),placeholder:c,style:{...jq,fontFamily:d?"var(--font-mono)":"inherit"}})}function js({value:a,onChange:b,placeholder:c,mono:d,onKeyDown:e,autoComplete:f="off",spellCheck:g=!1,style:h}){let[i,j]=(0,q.useState)(!1),{t:k}=(0,aG.s)();return(0,p.jsxs)("div",{style:{position:"relative",width:"100%",...h},children:[(0,p.jsx)("input",{type:i?"text":"password",value:a,onChange:a=>b(a.target.value),onKeyDown:e,placeholder:c,style:{...jq,paddingRight:34,fontFamily:d?"var(--font-mono)":"inherit"},autoComplete:f,spellCheck:g}),(0,p.jsx)("button",{type:"button",onClick:()=>j(a=>!a),"aria-label":k(i?"i18n.hideDetails":"i18n.showDetails"),title:k(i?"i18n.hideDetails":"i18n.showDetails"),style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:i?(0,p.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.89 1 12a18.45 18.45 0 0 1 5.06-6.94"}),(0,p.jsx)("path",{d:"M9.9 4.24A10.94 10.94 0 0 1 12 4c5 0 9.27 3.11 11 8a18.5 18.5 0 0 1-2.16 3.19"}),(0,p.jsx)("path",{d:"M14.12 14.12A3 3 0 0 1 9.88 9.88"}),(0,p.jsx)("path",{d:"M1 1l22 22"})]}):(0,p.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})}function jt({value:a,onChange:b,placeholder:c}){return(0,p.jsx)("input",{type:"number",value:a,onChange:a=>b(a.target.value),placeholder:c,style:jq})}function ju({value:a,onChange:b,options:c,required:d}){let{t:e}=(0,aG.s)();return(0,p.jsxs)("select",{value:a,onChange:a=>b(a.target.value),style:{...jq,color:a?"var(--text)":"var(--text-dim)"},children:[!d&&(0,p.jsxs)("option",{value:"",children:["— ",e("i18n.default")," / none —"]}),c.map(a=>(0,p.jsx)("option",{value:a,children:a},a))]})}function jv({label:a,checked:b,onChange:c}){return(0,p.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,p.jsx)("input",{type:"checkbox",checked:b,onChange:a=>c(a.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),a]})}function jw({children:a}){return(0,p.jsx)(iO,{children:a})}function jx({name:a,editingName:b,provider:c,onChange:d,onEditingNameChange:e,onRename:f,onDelete:g,onAddModels:h,enabledModels:i}){let{t:j}=(0,aG.s)(),[k,l]=(0,q.useState)({phase:"idle"}),[m,n]=(0,q.useState)(""),[o,r]=(0,q.useState)([]),s=(0,q.useRef)(0),t=(0,q.useRef)(null),u=(0,q.useId)(),v=(a,b)=>d({...c,[a]:b}),w=(0,q.useCallback)(async()=>{if("loading"===k.phase)return;let b=++s.current;l({phase:"loading"}),r([]);try{let d=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:a,provider:{...c,models:void 0}})}),e=await d.json();if(b!==s.current)return;if(!d.ok||e.error||!e.models)return void l({phase:"error",message:e.error??`HTTP ${d.status}`});l({phase:"success",models:e.models,endpoint:e.endpoint??c.baseUrl??""})}catch(a){if(b!==s.current)return;l({phase:"error",message:a instanceof Error?a.message:String(a)})}},[k.phase,a,c]),x=new Set((c.models??[]).map(a=>a.id)),y="success"===k.phase?k.models:[],z=m.trim().toLocaleLowerCase(),A=y.filter(a=>!z||a.id.toLocaleLowerCase().includes(z)||a.name?.toLocaleLowerCase().includes(z)),B=A.slice(0,300),C=B.filter(a=>!x.has(a.id)).map(a=>a.id),D=o.filter(a=>!x.has(a)).length,E=C.length>0&&C.every(a=>o.includes(a));return E||C.some(a=>o.includes(a)),(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,p.jsxs)("div",{className:"config-detail-heading",children:[(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(jw,{children:j("i18n.provider")})}),(0,p.jsxs)(iM,{children:[(0,p.jsx)(jc,{providerId:a,controller:i,noteId:u}),(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:g,children:j("i18n.delete")})]})]}),(0,p.jsx)(je,{providerId:a,controller:i,id:u})]}),(0,p.jsxs)(jp,{label:j("i18n.providerName"),children:[(0,p.jsx)(jr,{value:b,onChange:e,placeholder:"provider-name",mono:!0}),b!==a&&b.trim()&&(0,p.jsx)("button",{onClick:()=>f(b.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"var(--accent-contrast)",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:j("i18n.rename")})]}),(0,p.jsx)(jp,{label:"Base URL",children:(0,p.jsx)(jr,{value:c.baseUrl??"",onChange:a=>v("baseUrl",a||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,p.jsx)(jp,{label:"API Key",children:(0,p.jsx)(js,{value:c.apiKey??"",onChange:a=>v("apiKey",a||void 0),placeholder:j("models.apiKeyPlaceholder"),mono:!0})}),(0,p.jsx)(jp,{label:"API",children:(0,p.jsx)(ju,{value:c.api??"",onChange:a=>v("api",a||void 0),options:jo})}),(0,p.jsx)(jp,{label:"Headers",children:(0,p.jsx)(jE,{headers:c.headers,onChange:a=>v("headers",a)})}),(0,p.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:["success"!==k.phase&&(0,p.jsx)("button",{onClick:w,disabled:"loading"===k.phase,style:{alignSelf:"flex-start",height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"loading"===k.phase?"var(--text-dim)":"var(--text-muted)",cursor:"loading"===k.phase?"not-allowed":"pointer",fontSize:11},children:"loading"===k.phase?j("models.discoveryFetching"):j("models.discoveryFetch")}),"error"===k.phase&&(0,p.jsx)("div",{style:{padding:"7px 9px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",fontSize:11,lineHeight:1.4},children:k.message}),"success"===k.phase&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("input",{value:m,onChange:a=>n(a.target.value),placeholder:j("models.discoveryFilterPlaceholder",{count:k.models.length}),"aria-label":j("models.discoveryFilter"),style:{...jq,width:"100%",minWidth:0}}),(0,p.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,p.jsxs)("label",{style:{minHeight:32,padding:"5px 9px",display:"flex",alignItems:"center",gap:8,position:"sticky",top:0,zIndex:1,borderBottom:"1px solid var(--border)",background:"var(--bg)",cursor:C.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,p.jsx)("input",{ref:t,type:"checkbox",checked:E,disabled:0===C.length,onChange:()=>{let a=new Set(C);r(b=>E?b.filter(b=>!a.has(b)):Array.from(new Set([...b,...C])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),j("models.discoverySelectShown")]}),0===B.length?(0,p.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:j("models.discoveryNoMatches")}):B.map((a,b)=>{let c=x.has(a.id),d=o.includes(a.id);return(0,p.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===b?"none":"1px solid var(--border)",cursor:c?"default":"pointer",opacity:c?.65:1},children:[(0,p.jsx)("input",{type:"checkbox",checked:d||c,disabled:c,onChange:()=>{var b;return b=a.id,void r(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,p.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,p.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:a.name??a.id}),a.name&&(0,p.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:a.id})]}),c&&(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:j("models.discoveryAdded")})]},a.id)})]}),(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,p.jsx)("span",{title:k.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:A.length>B.length?j("models.discoveryShowing",{shown:B.length,total:A.length}):j("models.discoveryFetched",{count:k.models.length})}),(0,p.jsx)("button",{onClick:()=>{if("success"!==k.phase)return;let a=new Set(o),b=k.models.filter(b=>a.has(b.id)&&!x.has(b.id));0!==b.length&&(h(b),r([]))},disabled:0===D,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:D?"var(--accent)":"var(--bg-panel)",color:D?"var(--accent-contrast)":"var(--text-dim)",cursor:D?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:D?j("models.discoveryAddSelectedCount",{count:D}):j("models.discoveryAddSelected")})]})]})]})]})}let jy=["off","minimal","low","medium","high","xhigh","max"],jz={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function jA({value:a,onChange:b}){let c=a??{},d=(a,d)=>{let e={...c};"omit"===d?delete e[a]:e[a]=d,b(Object.keys(e).length?e:void 0)};return(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:jy.map(a=>{let b=c[a],e=a in c?null===b?"null":"string":"omit",f="string"==typeof b?b:"",g=jz[a],h={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},i={background:"var(--accent)",color:"var(--accent-contrast)",fontWeight:600};return(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,p.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:g,flexShrink:0,opacity:"null"===e?.3:1}}),(0,p.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===e?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===e?"line-through":"none"},children:a})]}),(0,p.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,p.jsx)("button",{onClick:()=>d(a,"omit"),style:{...h,..."omit"===e?i:{}},children:"Default"}),(0,p.jsx)("button",{onClick:()=>d(a,null),style:{...h,borderLeft:"1px solid var(--border)",..."null"===e?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:"Disabled"})]}),(0,p.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===e?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,p.jsx)("button",{onClick:()=>d(a,f||a),style:{...h,..."string"===e?i:{},borderRight:"1px solid var(--border)",flexShrink:0},children:"Custom"}),(0,p.jsx)("input",{value:f,onChange:b=>d(a,b.target.value),onFocus:()=>{"string"!==e&&d(a,f||a)},placeholder:a,maxLength:10,style:{width:"12ch",background:"string"===e?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===e?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},a)})})}let jB={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function jC(a){return a.compat?.thinkingFormat==="deepseek"}function jD(a,b){return{...a.compat??{},...b.compat??{}}}function jE({headers:a,onChange:b}){let[c,d]=(0,q.useState)(()=>Object.entries(a??{}).map(([a,b],c)=>({id:c,name:a,value:b}))),e=(0,q.useRef)(c.length),f=a=>{d(a),b(function(a){let b={};for(let c of a){let a=c.name.trim();a&&(b[a]=c.value)}return Object.keys(b).length?b:void 0}(a))},g=(a,b)=>{f(c.map(c=>c.id===a?{...c,...b}:c))},h={padding:"6px 9px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,lineHeight:1};return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[c.map(a=>(0,p.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,p.jsx)("input",{value:a.name,onChange:b=>g(a.id,{name:b.target.value}),placeholder:"Header-Name",style:{...jq,fontFamily:"var(--font-mono)",flex:1}}),(0,p.jsx)("input",{value:a.value,onChange:b=>g(a.id,{value:b.target.value}),placeholder:"value",style:{...jq,fontFamily:"var(--font-mono)",flex:1}}),(0,p.jsx)("button",{onClick:()=>{var b;return b=a.id,void f(c.filter(a=>a.id!==b))},style:h,children:"✕"})]},a.id)),(0,p.jsx)("button",{onClick:()=>d(a=>[...a,{id:e.current++,name:"",value:""}]),style:{padding:"5px 9px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5,alignSelf:"flex-start"},children:"+ Add header"})]})}function jF({providerName:a,provider:b,model:c,onChange:d,onDelete:e}){let[f,g]=(0,q.useState)({phase:"idle"}),{t:h}=(0,aG.s)(),[i,j]=(0,q.useState)({phase:"idle"}),[k,l]=(0,q.useState)(!1),[m,n]=(0,q.useState)(()=>it(c.cost)),o=(0,q.useRef)(m),[r,s]=(0,q.useState)(!1),t=(0,q.useRef)(0),u=c.baseUrl??b.baseUrl,v=(0,q.useRef)(0),w=(0,q.useRef)(null),x=(0,q.useRef)(c.cost),y=(a,b)=>d({...c,[a]:b}),z=(()=>{if("idle"===f.phase)return null;if("testing"===f.phase)return h("i18n.testingModel");let a=[void 0!==f.latencyMs?`${f.latencyMs}ms`:null,void 0!==f.status?`HTTP ${f.status}`:null].filter(Boolean);return"success"===f.phase?[h("i18n.connected"),...a,f.responseText||null].filter(Boolean).join(" \xb7 "):[h("i18n.failed"),...a,f.message].filter(Boolean).join(" \xb7 ")})(),A=(0,q.useCallback)(async()=>{if(!c.id.trim()||"testing"===f.phase)return;let d=++t.current;g({phase:"testing"});try{let e=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:a,provider:b,model:c})}),f=await e.json();if(d!==t.current)return;if(!e.ok||!f.ok)return void g({phase:"error",message:f.error??`HTTP ${e.status}`,latencyMs:f.latencyMs,status:f.status});g({phase:"success",latencyMs:f.latencyMs,status:f.status,responseText:f.responseText})}catch(a){if(d!==t.current)return;g({phase:"error",message:a instanceof Error?a.message:String(a)})}},[c,b,a,f.phase]),B=(0,q.useCallback)(async()=>{let b=c.id.trim();if(!b||"loading"===i.phase)return;let e=++v.current;j({phase:"loading"});try{let f=new URLSearchParams({q:b,provider:a,limit:"50"});u?.trim()&&f.set("baseUrl",u.trim());let g=await fetch(`/api/models-config/catalog?${f}`),h=await g.json();if(e!==v.current)return;if(!g.ok||h.error||!h.recommendation)return void j({phase:"error",message:h.error??`HTTP ${g.status}`});let i=function(a,b){let c={...a},d=0;if(!a.name?.trim()&&b.name&&(c.name=b.name,d+=1),void 0===a.reasoning&&!0===b.reasoning&&(c.reasoning=!0,d+=1),!a.input?.length&&b.input?.length&&(c.input=[...b.input],d+=1),void 0===a.contextWindow&&void 0!==b.contextWindow&&(c.contextWindow=b.contextWindow,d+=1),void 0===a.maxTokens&&void 0!==b.maxTokens&&(c.maxTokens=b.maxTokens,d+=1),b.cost){let e={...a.cost??{}},f=0;for(let a of["input","output","cacheRead","cacheWrite"])void 0===e[a]&&void 0!==b.cost[a]&&(e[a]=b.cost[a],f+=1);let g=iu(it(e));f>0&&g&&(c.cost={...e,...g},d+=f)}return{model:c,appliedCount:d}}(c,h.recommendation.preset);i.appliedCount>0&&(w.current=c,d(i.model)),l(!1),j({phase:"success",recommendation:h.recommendation,appliedCount:i.appliedCount})}catch(a){if(e!==v.current)return;j({phase:"error",message:a instanceof Error?a.message:String(a)})}},[i.phase,c,d,u,a]),C=(()=>{if("success"!==i.phase)return null;let{recommendation:b,appliedCount:c}=i,d=c>0?h("models.catalogFilled",{count:c}):h("models.catalogNoEmptyFields");if("unreliable"===b.price.status){let a="no-exact-match"===b.price.reason?h("models.catalogNoExactMatch"):h("models.catalogPriceUnreliable");return`${d} \xb7 ${a}`}let e="provider"===b.price.method?h("models.catalogPriceProvider",{provider:b.price.providerName??b.price.providerId??a}):"base-url"===b.price.method?h("models.catalogPriceBaseUrl",{provider:b.price.providerName??b.price.providerId??a}):h("models.catalogPriceConsensus",{support:b.price.support,total:b.price.total});return`${d} \xb7 ${e}`})(),D="error"===i.phase?i.message:C,E="error"===i.phase?"#ef4444":"success"===i.phase&&"unreliable"===i.recommendation.price.status?"#d97706":"var(--text-dim)",F=[{key:"input",label:h("models.costInput")},{key:"output",label:h("models.costOutput")},{key:"cacheRead",label:h("models.costCacheRead")},{key:"cacheWrite",label:h("models.costCacheWrite")}],G=new Set(Object.keys(c.compat??{})),H=0;jC(c)&&(H+=1,G.delete("thinkingFormat"),G.delete("requiresReasoningContentOnAssistantMessages")),Object.prototype.hasOwnProperty.call(c.compat??{},"supportsDeveloperRole")&&(H+=1,G.delete("supportsDeveloperRole")),H+=G.size;let I=[c.baseUrl?h("models.baseUrlOverride"):null,c.api?`API: ${c.api}`:null,Object.keys(c.headers??{}).length?h("models.headersSummary",{count:Object.keys(c.headers??{}).length}):null,H?h("models.compatSummary",{count:H}):null,Object.keys(c.thinkingLevelMap??{}).length?h("models.thinkingSummary",{count:Object.keys(c.thinkingLevelMap??{}).length}):null].filter(a=>!!a),J=I.length?I.join(" \xb7 "):h("models.providerDefaults");return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(jw,{children:h("i18n.model")})}),(0,p.jsxs)(iM,{children:[z&&(0,p.jsx)("span",{title:z,style:{maxWidth:260,height:28,padding:"0 8px",border:`1px solid ${"error"===f.phase?"#fecaca":"success"===f.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===f.phase?"#fee2e2":"success"===f.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:z}),(0,p.jsxs)(i1,{size:"small",variant:"success"===f.phase?"primary":"secondary",onClick:"success"===f.phase?()=>g({phase:"idle"}):A,disabled:!c.id.trim()||"testing"===f.phase,title:h("i18n.testConnection"),className:"success"===f.phase?"is-success":void 0,children:["success"===f.phase&&(0,p.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}),"testing"===f.phase?h("i18n.checking"):"success"===f.phase?h("common.ok"):h("i18n.test")]}),(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:e,children:h("i18n.remove")})]})]}),(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,p.jsx)(jp,{label:"ID *",children:(0,p.jsx)(jr,{value:c.id,onChange:a=>y("id",a),placeholder:"model-id",mono:!0})}),(0,p.jsx)(jp,{label:"Name",children:(0,p.jsx)(jr,{value:c.name??"",onChange:a=>y("name",a||void 0),placeholder:"Display name"})})]}),(0,p.jsxs)("div",{style:{padding:"2px 0"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,p.jsx)("button",{onClick:()=>void B(),disabled:!c.id.trim()||"loading"===i.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:c.id.trim()&&"loading"!==i.phase?"var(--text-muted)":"var(--text-dim)",cursor:c.id.trim()&&"loading"!==i.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===i.phase?h("models.catalogFilling"):h("models.catalogFill")}),(0,p.jsx)("a",{href:"https://github.com/anomalyco/models.dev",target:"_blank",rel:"noreferrer",style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,textDecoration:"none"},children:h("models.catalogSource")})]}),D&&(0,p.jsxs)("div",{"aria-live":"polite",style:{marginTop:8,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:E,fontSize:10},children:[(0,p.jsx)("span",{title:D,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:D}),w.current&&(0,p.jsx)("button",{onClick:()=>{let a=w.current;a&&(w.current=null,d(a),j({phase:"idle"}))},style:{flexShrink:0,padding:"0 2px",border:"none",background:"none",color:"var(--accent)",cursor:"pointer",fontSize:10},children:h("models.catalogUndo")})]})]}),(0,p.jsxs)("div",{children:[(0,p.jsx)(jw,{children:h("models.capabilities")}),(0,p.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap",marginTop:8},children:[(0,p.jsx)(jv,{label:h("models.reasoning"),checked:c.reasoning??!1,onChange:a=>y("reasoning",a||void 0)}),(0,p.jsx)(jv,{label:h("models.imageInput"),checked:c.input?.includes("image")??!1,onChange:a=>y("input",a?["text","image"]:void 0)})]})]}),(0,p.jsxs)("section",{children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,p.jsx)(jw,{children:h("models.modelSpecs")}),(0,p.jsx)("button",{type:"button",onClick:()=>{if(k)return void l(!1);x.current=c.cost;let a=it(c.cost);o.current=a,n(a),l(!0)},"aria-expanded":k,style:{padding:"2px 4px",border:"none",background:"transparent",color:"var(--accent)",cursor:"pointer",fontSize:10},children:k?h("models.finishEditingCosts"):h("models.editCosts")})]}),(0,p.jsxs)("div",{style:{marginTop:10,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(170px, 1fr))",gap:10},children:[(0,p.jsx)(jp,{label:h("models.contextWindow"),children:(0,p.jsx)(jt,{value:void 0!==c.contextWindow?String(c.contextWindow):"",onChange:a=>y("contextWindow",a?parseInt(a):void 0),placeholder:"128000"})}),(0,p.jsx)(jp,{label:h("models.maxOutputTokens"),children:(0,p.jsx)(jt,{value:void 0!==c.maxTokens?String(c.maxTokens):"",onChange:a=>y("maxTokens",a?parseInt(a):void 0),placeholder:"16384"})})]}),(0,p.jsxs)("div",{style:{marginTop:16},children:[(0,p.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontWeight:600,textTransform:"uppercase"},children:h("models.costPerMillion")}),k?(0,p.jsxs)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(110px, 1fr))",gap:8},children:[F.map(({key:a,label:b})=>(0,p.jsx)(jp,{label:b,children:(0,p.jsx)(jt,{value:m[a],onChange:b=>{let e,f,g;return f=iu(e={...o.current,[a]:b}),g={...c},void(o.current=e,n(e),f?(g.cost={...x.current??{},...f},x.current=g.cost):delete g.cost,d(g))},placeholder:"0"})},a)),iv(m)&&!iu(m)&&(0,p.jsx)("div",{"aria-live":"polite",style:{gridColumn:"1 / -1",color:"#d97706",fontSize:10},children:h("models.costAllRequired")})]}):(0,p.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(105px, 1fr))",gap:"8px 16px"},children:F.map(({key:a,label:b})=>{let d,e=c.cost?.[a]===void 0;return(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:b}),(0,p.jsx)("div",{style:{marginTop:3,color:e?"var(--text-dim)":"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums"},children:void 0===(d=c.cost?.[a])?h("models.notProvided"):`$${String(d)}`})]},a)})})]})]}),(0,p.jsxs)("section",{style:{borderTop:"1px solid var(--border)",paddingTop:4},children:[(0,p.jsxs)("button",{type:"button",onClick:()=>s(a=>!a),"aria-expanded":r,"aria-controls":"model-advanced-settings",style:{width:"100%",minHeight:48,padding:"8px 0",border:"none",background:"transparent",display:"grid",gridTemplateColumns:"minmax(0, 1fr) 18px",alignItems:"center",gap:10,color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,p.jsxs)("span",{style:{minWidth:0},children:[(0,p.jsx)("span",{style:{display:"block",fontSize:11,fontWeight:600},children:h("models.advancedSettings")}),(0,p.jsx)("span",{style:{display:"block",marginTop:3,color:"var(--text-dim)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:J})]}),(0,p.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{color:"var(--text-dim)",transform:r?"rotate(180deg)":"none",transition:"transform 0.15s ease"},children:(0,p.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),r&&(0,p.jsxs)("div",{id:"model-advanced-settings",style:{display:"flex",flexDirection:"column",gap:14,padding:"4px 0 16px"},children:[(0,p.jsx)(jp,{label:h("models.baseUrlOverride"),children:(0,p.jsx)(jr,{value:c.baseUrl??"",onChange:a=>y("baseUrl",a.trim()||void 0),placeholder:b.baseUrl??h("models.providerDefaults"),mono:!0})}),(0,p.jsx)(jp,{label:h("models.apiOverride"),children:(0,p.jsx)(ju,{value:c.api??"",onChange:a=>y("api",a||void 0),options:jo})}),(0,p.jsxs)(jp,{label:h("models.headers"),children:[(0,p.jsx)(jE,{headers:c.headers,onChange:a=>y("headers",a)}),(0,p.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:h("models.headersHelp")})]}),c.reasoning&&(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,p.jsx)(jw,{children:h("models.compatibility")}),(0,p.jsx)(jv,{label:h("models.deepSeekThinkingCompat"),checked:jC(c),onChange:a=>d(function(a,b){if(b)return{...a,compat:{...a.compat??{},...jB}};if(!a.compat)return a;let c={...a.compat};return delete c.thinkingFormat,delete c.requiresReasoningContentOnAssistantMessages,{...a,compat:Object.keys(c).length?c:void 0}}(c,a))}),(0,p.jsx)(jv,{label:h("models.developerRole"),checked:!1!==jD(b,c).supportsDeveloperRole,onChange:a=>d(iw(c,"supportsDeveloperRole",a))}),(c.api??b.api)==="anthropic-messages"&&(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,p.jsx)(jv,{label:h("models.adaptiveThinking"),checked:!0===jD(b,c).forceAdaptiveThinking,onChange:a=>d(function(a,b,c,d=!1){if(c!==d)return iw(a,b,c);if(!a.compat||!Object.prototype.hasOwnProperty.call(a.compat,b))return a;let e={...a.compat};return delete e[b],{...a,compat:Object.keys(e).length?e:void 0}}(c,"forceAdaptiveThinking",a,b.compat?.forceAdaptiveThinking===!0))}),(0,p.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",paddingLeft:19},children:"compat.forceAdaptiveThinking"})]}),(0,p.jsxs)("div",{style:{marginTop:4},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,marginBottom:8},children:[(0,p.jsx)(jw,{children:h("models.thinkingLevelMap")}),c.thinkingLevelMap&&(0,p.jsx)("button",{type:"button",onClick:()=>y("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 5px",background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer"},children:h("models.clearAll")})]}),(0,p.jsx)(jA,{value:c.thinkingLevelMap,onChange:a=>y("thinkingLevelMap",a)})]})]})]})]})]})}function jG({provider:a,onRefresh:b,enabledModels:c,contextSettings:d}){let[e,f]=(0,q.useState)({phase:"idle"}),{t:g}=(0,aG.s)(),[h,i]=(0,q.useState)(""),j=(0,q.useRef)(null),k=(0,q.useRef)(null),l=(0,q.useCallback)(()=>{j.current?.close(),f({phase:"connecting"}),i("");let c=new EventSource(`/api/auth/login/${encodeURIComponent(a.id)}`);j.current=c,c.onmessage=a=>{let d=JSON.parse(a.data);"auth"===d.type?(f({phase:"auth",url:d.url,instructions:d.instructions??null,token:d.token}),window.open(d.url,"_blank","noopener,noreferrer")):"device_code"===d.type?(f({phase:"device_code",userCode:d.userCode,verificationUri:d.verificationUri,intervalSeconds:d.intervalSeconds??null,expiresInSeconds:d.expiresInSeconds??null}),window.open(d.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===d.type?f({phase:"prompt",message:d.message,placeholder:d.placeholder??null,token:d.token}):"select_request"===d.type?f({phase:"select",message:d.message,options:d.options??[],token:d.token}):"progress"===d.type?f({phase:"progress",message:d.message}):"success"===d.type?(c.close(),f({phase:"success"}),b()):"error"===d.type?(c.close(),f({phase:"error",message:d.message})):"cancelled"===d.type&&(c.close(),f({phase:"idle"}))},c.onerror=()=>{c.close(),f(a=>"success"===a.phase?a:{phase:"error",message:"Connection lost"})}},[a.id,b]),m=(0,q.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(a.id)}`,{method:"POST"}),f({phase:"idle"}),b()},[a.id,b]),n=(0,q.useCallback)(async(b,c)=>{if(c.trim()){f({phase:"progress",message:"Verifying…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c.trim()})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`});return}i("")}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}}},[a.id]),o=(0,q.useCallback)(async(b,c)=>{f({phase:"progress",message:"Continuing…"});try{let d=await fetch(`/api/auth/login/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:b,code:c})});if(!d.ok){let a=await d.json().catch(()=>({}));f({phase:"error",message:a.error??`Server error ${d.status}`})}}catch(a){f({phase:"error",message:a instanceof Error?a.message:"Network error"})}},[a.id]),r="connecting"===e.phase||"progress"===e.phase||"auth"===e.phase||"device_code"===e.phase||"prompt"===e.phase||"select"===e.phase;return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:a.loggedIn&&"idle"===e.phase?0:16},children:[(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(jw,{children:g("i18n.subscription")})}),(0,p.jsxs)(iM,{children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,p.jsx)("span",{style:{fontSize:11,color:a.loggedIn?"#4ade80":"var(--text-dim)"},children:g(a.loggedIn?"i18n.connected":"i18n.notConnected")})]}),r?(0,p.jsx)(i1,{size:"small",onClick:()=>{j.current?.close(),f({phase:"idle"})},children:g("i18n.cancel")}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i1,{variant:"primary",size:"small",onClick:l,children:g(a.loggedIn?"i18n.relogin":"i18n.login")}),a.loggedIn&&(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:m,children:g("i18n.disconnect")})]})]})]}),(0,p.jsxs)("div",{style:{minHeight:a.loggedIn&&"idle"===e.phase?0:48},children:["idle"===e.phase&&!a.loggedIn&&(0,p.jsxs)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:["Connect your ",a.name," account."]}),"connecting"===e.phase&&(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:g("i18n.openingBrowser")}),"select"===e.phase&&(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.message}),(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.options.map(a=>(0,p.jsx)("button",{onClick:()=>o(e.token,a.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:a.label},a.id))})]}),("auth"===e.phase||"prompt"===e.phase)&&(0,p.jsx)(jg,{message:"auth"===e.phase?"Complete sign-in in the browser, then copy the redirect URL from the address bar and paste it below.":e.message,hint:"auth"===e.phase?(0,p.jsxs)(p.Fragment,{children:["If the browser window did not open,"," ",(0,p.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",children:"click here to open the login page"}),"."]}):void 0,value:h,placeholder:"auth"===e.phase?"http://localhost:1455/auth/callback?code=…":e.placeholder??"Enter value…",submitLabel:g("i18n.submit"),inputRef:k,onValueChange:i,onSubmit:()=>void n(e.token,h)}),"device_code"===e.phase&&(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"Open the verification page and enter this code:"}),(0,p.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:e.userCode}),(0,p.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,p.jsx)("a",{href:e.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:e.verificationUri}),e.expiresInSeconds?` Expires in ${Math.ceil(e.expiresInSeconds/60)} minutes.`:""]})]}),"progress"===e.phase&&(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:e.message}),"success"===e.phase&&(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:g("i18n.connectedSuccessfully")}),"error"===e.phase&&(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:e.message})]}),(0,p.jsx)(jk,{providerId:a.id,enabled:a.loggedIn}),a.loggedIn&&(0,p.jsx)(jf,{providerId:a.id,controller:c,contextSettings:d})]})}function jH({provider:a,onRefresh:b,enabledModels:c,contextSettings:d}){let[e,f]=(0,q.useState)(""),[g,h]=(0,q.useState)(!1),[i,j]=(0,q.useState)(!1),[k,l]=(0,q.useState)(null),[m,n]=(0,q.useState)(!1),{t:o}=(0,aG.s)(),r=(0,q.useCallback)(async()=>{if(e.trim()){h(!0),l(null),n(!1);try{let c=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:e.trim()})}),d=await c.json();!c.ok||d.error?l(d.error??`HTTP ${c.status}`):(f(""),n(!0),setTimeout(()=>n(!1),2e3),b())}catch(a){l(String(a))}finally{h(!1)}}},[e,a.id,b]),s=(0,q.useCallback)(async()=>{j(!0),l(null);try{let c=await fetch(`/api/auth/api-key/${encodeURIComponent(a.id)}`,{method:"DELETE"}),d=await c.json();!c.ok||d.error?l(d.error??`HTTP ${c.status}`):b()}catch(a){l(String(a))}finally{j(!1)}},[a.id,b]);return(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(jw,{children:"API Key"})}),(0,p.jsxs)(iM,{children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,p.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,p.jsx)("span",{style:{fontSize:11,color:a.configured?"#4ade80":"var(--text-dim)"},children:o(a.configured?"i18n.configured":"i18n.notConfigured")})]}),a.configured&&(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:s,disabled:i,children:o(i?"i18n.removing":"i18n.disconnect")})]})]}),!a.configured&&(0,p.jsxs)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:["Enter your ",a.displayName," API key to enable ",a.modelCount," model",1!==a.modelCount?"s":"","."]}),(0,p.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,p.jsx)(js,{value:e,onChange:f,onKeyDown:a=>{"Enter"===a.key&&e.trim()&&r()},placeholder:a.configured?"Enter new key to replace…":"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,p.jsxs)("button",{onClick:r,disabled:g||!e.trim()||m,style:{padding:"6px 12px",background:m?"#16a34a":e.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:m?"#fff":e.trim()?"var(--accent-contrast)":"var(--text-dim)",cursor:g||!e.trim()||m?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[m&&(0,p.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}),o(m?"i18n.saved":g?"i18n.saving":"i18n.save")]})]}),k&&(0,p.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:k}),(0,p.jsx)(jk,{providerId:a.id,enabled:a.configured}),a.configured&&(0,p.jsx)(jf,{providerId:a.id,controller:c,contextSettings:d})]})}function jI({oauthProviders:a,apiKeyProviders:b,onSelectOAuth:c,onSelectApiKey:d,onAddCustom:e,onClose:f}){let[g,h]=(0,q.useState)(""),{t:i}=(0,aG.s)(),j=(0,q.useRef)(null),k=g.trim().toLowerCase(),l=a.filter(a=>!a.loggedIn&&iz(k,a.id,a.name)),m=b.filter(a=>!a.configured&&iz(k,a.id,a.displayName)),n=!k||"custom".includes(k)||"openai-compatible".includes(k)||"anthropic-compatible".includes(k),o=l.length+m.length+ +!!n,r={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,p.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:a=>{a.target===a.currentTarget&&f()},onKeyDown:a=>{"Escape"===a.key&&(a.preventDefault(),a.stopPropagation(),f())},children:(0,p.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,p.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,p.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,p.jsx)("input",{ref:j,value:g,onChange:a=>h(a.target.value),placeholder:i("i18n.searchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,p.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===o?(0,p.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:i("i18n.noProviders")}):(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[n&&(0,p.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:i("i18n.custom")}),n&&(0,p.jsxs)("button",{onClick:()=>{e(),f()},style:r,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,p.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"OpenAI / Anthropic compatible"}),(0,p.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:i("i18n.customEndpoint")})]}),(0,p.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:[(0,p.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),l.length>0&&(0,p.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!n,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:i("i18n.subscriptions")}),l.map(a=>(0,p.jsxs)("button",{onClick:()=>{c(a.id),f()},style:r,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,p.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name}),(0,p.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,p.jsx)(ji,{id:a.id,size:28})]},a.id)),m.length>0&&(0,p.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(l.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"API Key"}),m.map(a=>(0,p.jsxs)("button",{onClick:()=>{d(a.id),f()},style:r,onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="var(--bg-panel)"},children:[(0,p.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.displayName}),(0,p.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:[a.modelCount," models"]})]}),(0,p.jsx)(ji,{id:a.id,size:28})]},a.id))]})})]})})}function jJ({onClose:a,embedded:b=!1,cwd:c=null}){let{t:d}=(0,aG.s)(),e=function(a){let[b,c]=(0,q.useState)(null),[d,e]=(0,q.useState)(!0),[f,g]=(0,q.useState)(null),[h,i]=(0,q.useState)(null),j=(0,q.useRef)(null),k=(0,q.useRef)(null),l=(0,q.useRef)(null),[m,n]=(0,q.useState)(0),o=(0,q.useCallback)((b,d)=>{if(j.current){k.current={key:b,body:d};return}j.current=b,g(b),i(null),(async()=>{try{let b=await fetch("/api/models/enabled",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...d,...a?{cwd:a}:{}})}),e=await b.json();if(!b.ok||e.error){let a=e.reason?ja[e.reason]:void 0;i(a?{messageKey:a}:{message:e.error??`HTTP ${b.status}`});return}c(e)}catch(a){i({message:a instanceof Error?a.message:String(a)})}finally{j.current=null,g(null);let a=k.current;k.current=null,a&&l.current?.(a.key,a.body)}})()},[a]);l.current=o;let p=(0,q.useCallback)((a,b,c)=>{o(a,{op:"models",refs:b,enabled:c})},[o]),r=(0,q.useCallback)((a,b)=>{o(`provider:${a}`,{op:"provider",provider:a,enabled:b})},[o]),s=(0,q.useCallback)(()=>o("clear",{op:"clear"}),[o]),t=(0,q.useCallback)(()=>o("prune",{op:"prune"}),[o]),u=(0,q.useCallback)(()=>n(a=>a+1),[]),v=(0,q.useCallback)((a,c)=>{o("resync",{op:"resync",renames:a,modelRenames:c,fullyEnabled:(b?.providers??[]).filter(a=>a.models.length>0&&a.enabledCount===a.models.length).map(a=>a.id)})},[o,b]);return{view:b,loading:d,pending:f,failure:h,setModels:p,setProvider:r,clearScope:s,pruneStale:t,refresh:u,resync:v}}(c),[f,g]=(0,q.useState)({providers:{}}),[h,i]=(0,q.useState)(!0),[j,k]=(0,q.useState)(!1),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(!1),[t,u]=(0,q.useState)(jn),[v,w]=(0,q.useState)([]),[x,y]=(0,q.useState)([]),[z,A]=(0,q.useState)(!1),[B,C]=(0,q.useState)(!1),D=(0,q.useRef)(new Set),E=(0,q.useRef)(new Map),F=(0,q.useRef)(new Map),[G,H]=(0,q.useState)(null),I=(0,q.useCallback)(()=>{fetch("/api/auth/providers").then(a=>a.json()).then(a=>{Array.isArray(a.oauthProviders)&&w(a.oauthProviders),Array.isArray(a.apiKeyProviders)&&y(a.apiKeyProviders)}).catch(()=>{}).finally(()=>A(!0))},[]),J=a=>({overrides:f.providers?.[a]?.modelOverrides,disabled:h||j||null!==n,onChange:(b,c)=>{try{g(function(a,b,c,d){let e={...a.providers},f={...Object.hasOwn(e,b)?e[b]:{}},g={...f.modelOverrides},h=Object.hasOwn(g,c)?g[c]:void 0;if(void 0!==h&&!ip(h))throw Error("Model override must be an object");let i={...h};return void 0===d?delete i.contextWindow:i.contextWindow=d,Object.keys(i).length?Object.defineProperty(g,c,{value:i,enumerable:!0,configurable:!0}):delete g[c],Object.keys(g).length?f.modelOverrides=g:delete f.modelOverrides,Object.keys(f).length?Object.defineProperty(e,b,{value:f,enumerable:!0,configurable:!0}):delete e[b],{...a,providers:e}}(f,a,b,c)),s(!1),m(null)}catch(a){m(String(a))}}}),K=(0,q.useCallback)(()=>{let a="new-provider",b=1;for(;f.providers?.[a];)a=`new-provider-${b++}`;g(b=>({...b,providers:{...b.providers??{},[a]:{api:"openai-completions"}}})),u({type:"provider",name:a})},[f.providers]),L=(0,q.useCallback)((a,b)=>{g(c=>({...c,providers:{...c.providers??{},[a]:b}}))},[]),M=(0,q.useCallback)((a,b,c)=>{let d=function(a,b,c,d){let e=a.providers??{};if(!Object.hasOwn(e,c))return null;if(c===d)return a;if(Object.hasOwn(e,d))return null;let{renames:f,slots:g}=b,h=iy(b,c);h===d?f.delete(h):null!==h&&f.set(h,d);let i=g.get(c);i&&(g.delete(c),g.set(d,i));let j=Object.entries(e),k=j.findIndex(([a])=>a===c);return j[k]=[d,j[k][1]],{...a,providers:Object.fromEntries(j)}}(a,{savedProviders:D.current,renames:E.current,slots:F.current},b,c);return d?(g(d),H(null),u(a=>a?"provider"===a.type&&a.name===b?{type:"provider",name:c}:"model"===a.type&&a.providerName===b?{...a,providerName:c}:a:a),d):null},[]),N=(0,q.useCallback)((a,b)=>{M(f,a,b)?m(null):m(d("models.providerNameTaken",{name:b}))},[M,f,d]),O=(0,q.useCallback)(a=>{var b;let c,d,e=(null!==(c=iy(b={savedProviders:D.current,renames:E.current,slots:F.current},a))&&(b.renames.delete(c),b.savedProviders.delete(c)),b.slots.delete(a),d={...f.providers??{}},delete d[a],{...f,providers:d}),h=Object.keys(e.providers??{});H(b=>b?.provider===a?null:b),g(e),u(h.length>0?{type:"provider",name:h[0]}:null)},[f]),P=(0,q.useCallback)(a=>{ix(F.current,a,1),g(b=>{let c=b.providers?.[a]??{},d=[...c.models??[],{id:""}];return{...b,providers:{...b.providers??{},[a]:{...c,models:d}}}}),g(b=>{let c=(b.providers?.[a]?.models?.length??1)-1;return u({type:"model",providerName:a,index:c}),b})},[]),Q=(0,q.useCallback)((a,b)=>{g(c=>{let d=new Set((c.providers?.[a]?.models??[]).map(a=>a.id));ix(F.current,a,b.filter(a=>!d.has(a.id)).length);let e=c.providers?.[a]??{},f=[...e.models??[]],g=new Set(f.map(a=>a.id));for(let a of b)g.has(a.id)||(g.add(a.id),f.push({...a}));return{...c,providers:{...c.providers??{},[a]:{...e,models:f}}}})},[]),R=(0,q.useCallback)((a,b,c)=>{g(d=>{let e=d.providers?.[a]??{},f=[...e.models??[]];return f[b]=c,{...d,providers:{...d.providers??{},[a]:{...e,models:f}}}})},[]),S=(0,q.useCallback)((a,b)=>{F.current.get(a)?.splice(b,1),g(c=>{let d=c.providers?.[a]??{},e=[...d.models??[]];return e.splice(b,1),{...c,providers:{...c.providers??{},[a]:{...d,models:e.length?e:void 0}}}}),u({type:"provider",name:a})},[]),T=(0,q.useCallback)(async()=>{if(n)return;k(!0),m(null),s(!1);let a=f,b=G?.name.trim();if(G&&b&&f.providers?.[G.provider]){let c=M(f,G.provider,b);if(!c){m(d("models.providerNameTaken",{name:b})),k(!1);return}a=c}try{a=function(a){let b=structuredClone(a);if(!ip(b.providers))return b;for(let[a,c]of Object.entries(b.providers))if(ip(c)&&ip(c.modelOverrides))for(let[b,d]of Object.entries(c.modelOverrides)){if(!ip(d)||!Object.hasOwn(d,"contextWindow"))continue;let c=ir(d.contextWindow);if(void 0===c)throw new iq(`${a}/${b}`);d.contextWindow=c}return b}(a);let b=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await b.json();if(!b.ok||d.error)m(d.error??`HTTP ${b.status}`);else{var c;s(!0),setTimeout(()=>s(!1),2e3);let b=[...E.current].map(([a,b])=>({from:a,to:b})),d=function(a,b,c){let d=a=>{for(let[b,d]of c)if(d===a)return b;return a},e=[];for(let[c,f]of Object.entries(a.providers??{})){let a=b.get(c);a&&(f.models??[]).forEach((b,f)=>{let g=a[f];g&&b.id&&g!==b.id&&e.push({from:`${d(c)}/${g}`,to:`${c}/${b.id}`})})}return e}(a,F.current,E.current);D.current=new Set(Object.keys(a.providers??{})),c=a,F.current=new Map(Object.entries(c.providers??{}).map(([a,b])=>[a,(b.models??[]).map(a=>a.id)])),E.current.clear(),e.resync(b,d)}}catch(a){m(a instanceof iq?d("models.contextInvalid",{model:a.model}):String(a))}finally{k(!1)}},[M,f,e,n,G,d]),U=Object.entries(f.providers??{}).filter(([a,b])=>{if(1!==Object.keys(b).length||!b.modelOverrides)return!0;let c=v.some(b=>b.id===a)||x.some(b=>b.id===a);return z&&!c}),V=a=>{let b=function(a,b){if(!a||a.allEnabled)return null;let c=i8(a,b);return c?`${c.enabledCount}/${c.models.length}`:null}(e.view,a);return b?(0,p.jsx)("span",{className:"models-sidebar-badge",children:b}):null},W=v.filter(a=>a.loggedIn),X=x.filter(a=>a.configured),Y=(()=>{if(!t)return null;if("oauth"===t.type){let a=v.find(a=>a.id===t.providerId);return a?(0,p.jsx)(jG,{provider:a,onRefresh:I,enabledModels:e,contextSettings:J(a.id)},a.id):null}if("apikey"===t.type){let a=x.find(a=>a.id===t.providerId);return a?(0,p.jsx)(jH,{provider:a,onRefresh:I,enabledModels:e,contextSettings:J(a.id)},a.id):null}if("provider"===t.type){let a=f.providers?.[t.name];return a&&U.some(([a])=>a===t.name)?(0,p.jsx)(jx,{name:t.name,editingName:G?.provider===t.name?G.name:t.name,provider:a,onChange:a=>L(t.name,a),onEditingNameChange:a=>H(a===t.name?null:{provider:t.name,name:a}),onRename:a=>N(t.name,a),onDelete:()=>O(t.name),onAddModels:a=>Q(t.name,a),enabledModels:e},t.name):null}let a=f.providers?.[t.providerName],b=a?.models?.[t.index];return b?(0,p.jsx)(jF,{providerName:t.providerName,provider:a,model:b,onChange:a=>R(t.providerName,t.index,a),onDelete:()=>S(t.providerName,t.index)},`${t.providerName}-${t.index}`):null})();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(iA,{embedded:b,title:d("common.models"),subtitle:"~/.pi/agent/models.json",closeLabel:d("i18n.close"),onClose:a,children:[(0,p.jsx)(jb,{controller:e}),(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsxs)(iD,{children:[W.map(a=>{let b=t?.type==="oauth"&&t.providerId===a.id;return(0,p.jsxs)(iH,{active:b,onClick:()=>u({type:"oauth",providerId:a.id}),children:[(0,p.jsx)(ji,{id:a.id,size:16}),(0,p.jsx)(iI,{className:"is-grow",children:a.name}),V(a.id)]},a.id)}),X.map(a=>{let b=t?.type==="apikey"&&t.providerId===a.id;return(0,p.jsxs)(iH,{active:b,onClick:()=>u({type:"apikey",providerId:a.id}),children:[(0,p.jsx)(ji,{id:a.id,size:16}),(0,p.jsx)(iI,{className:"is-grow",children:a.displayName}),V(a.id)]},a.id)}),(W.length>0||X.length>0)&&U.length>0&&(0,p.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),h?(0,p.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:d("i18n.loading")}):U.map(([a,b])=>{let c=t?.type==="provider"&&t.name===a,e=b.models??[];return(0,p.jsxs)("div",{style:{marginBottom:2},children:[(0,p.jsxs)(iH,{onClick:()=>u({type:"provider",name:a}),active:c,children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,p.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,p.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,p.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,p.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,p.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,p.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,p.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,p.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,p.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,p.jsx)(iI,{className:"is-grow",children:a}),V(a)]}),e.map((b,c)=>{let e=t?.type==="model"&&t.providerName===a&&t.index===c;return(0,p.jsxs)(iH,{active:e,className:"models-sidebar-indented-item",onClick:()=>u({type:"model",providerName:a,index:c}),children:[(0,p.jsx)(iI,{className:"is-grow",style:{color:b.id?"var(--text-muted)":"var(--text-dim)"},children:b.id||d("i18n.newModel")}),b.reasoning&&(0,p.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},c)}),(0,p.jsx)(iH,{className:"models-sidebar-indented-item models-sidebar-add-item",onClick:b=>{b.stopPropagation(),P(a)},children:(0,p.jsxs)(iI,{children:["+ ",d("i18n.model")]})})]},a)})]}),(0,p.jsx)(i3,{onClick:()=>C(!0),children:d("i18n.addProvider")})]}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:h?null:Y??(0,p.jsx)(iZ,{children:d("i18n.selectProviderModel")})})})]}),(0,p.jsxs)(i_,{status:n||l?(0,p.jsx)("span",{style:{color:"#f87171"},children:n?d("models.configUnreadable",{error:n}):l}):d("models.applyHelp"),children:[!b&&(0,p.jsx)(i1,{onClick:a,children:d("i18n.cancel")}),(0,p.jsxs)(i1,{variant:"primary",onClick:T,disabled:j||r||null!==n,className:r?"is-success":void 0,children:[r&&(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:"config-button-success-icon",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,p.jsx)("span",{children:r?d("i18n.saved"):j?d("i18n.saving"):d("i18n.save")})]})]})]}),B&&(0,p.jsx)(jI,{oauthProviders:v,apiKeyProviders:x,onSelectOAuth:a=>u({type:"oauth",providerId:a}),onSelectApiKey:a=>u({type:"apikey",providerId:a}),onAddCustom:K,onClose:()=>C(!1)})]})}async function jK(a){return!1}function jL(a){return a.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function jM(a,b){let c=b.replace(/[/\\]+$/,"");return c&&(a===c||a.startsWith(`${c}/`)||a.startsWith(`${c}\\`))?`./${a.slice(c.length).replace(/^[/\\]/,"")}`:jL(a)}function jN(a,b,c,d){return a.filter(a=>c(a)!==b&&(b||!d?.(a)))}function jO(a){return a?JSON.stringify([a.requiresTrust,a.trusted,a.decision,a.decisionPath??null,a.inherited]):""}function jP(a){let b=a.sourceInfo?.source,c=a.sourceInfo?.scope;return"user"===c||"user"===b?"global":"project"===c||"project"===b?"project":"path"}function jQ(a,b){return b("project"===a?"skills.scope.project":"global"===a?"skills.scope.global":"skills.scope.path")}function jR(a){return a.install?`${a.install.scope}\0${a.install.package}`:null}function jS(a,b){return a?a.slice(0,8):b}function jT({skill:a,cwd:b,onToggle:c,toggling:d,saveError:e,updateStatus:f,checkingUpdate:g,updating:h,updateError:i,onCheckUpdate:j,onUpdate:k}){let{t:l}=(0,aG.s)(),m=jP(a),n=!a.disableModelInvocation,[o,r]=(0,q.useState)(null),[s,t]=(0,q.useState)(null),u=a.filePath.split(/[\\/]/).pop(),[v,w]=(0,q.useState)([]),x=v.at(-1)??u,y=(0,q.useRef)(null),z=(0,q.useRef)(null),[A,B]=(0,q.useState)(0),C=(0,q.useCallback)(a=>{let b=function(a,b){let c=a.indexOf("#"),[d,e]=[c<0?a:a.slice(0,c),c<0?"":a.slice(c+1)].map(a=>{try{return decodeURIComponent(a)}catch{return a}});if(!d)return{document:b,anchor:e};if(d.startsWith("/"))return{document:d,anchor:e};let f=b.split("/").slice(0,-1);for(let a of d.split("/"))".."===a&&f.length&&".."!==f[f.length-1]?f.pop():a&&"."!==a&&f.push(a);return{document:f.join("/"),anchor:e}}(a,x);z.current=b.anchor,b.document===x?B(a=>a+1):w(a=>[...a,b.document])},[x]);return(0,p.jsxs)(iJ,{children:[(0,p.jsxs)("div",{className:"skill-detail-heading",children:[(0,p.jsxs)(iK,{children:[(0,p.jsxs)(iL,{children:[(0,p.jsx)(iS,{scope:m,children:jQ(m,l)}),(0,p.jsx)("span",{className:"config-detail-path",children:"project"===m?jM(a.filePath,b):jL(a.filePath)})]}),(0,p.jsx)(iM,{children:(0,p.jsx)(i2,{checked:n,loading:d,label:l(n?"i18n.visibleInPrompt":"i18n.hiddenFromPrompt"),onChange:()=>c(a)})})]}),(0,p.jsxs)("div",{className:"skill-detail-status-row",children:[!n&&(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:l("i18n.hiddenButInvocable")}),e&&(0,p.jsx)("span",{style:{fontSize:12,color:"#f87171",overflowWrap:"anywhere"},children:e})]})]}),a.install?.skillsShUrl&&(0,p.jsx)(iP,{label:l("config.source"),children:(0,p.jsx)("a",{href:a.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:a.install.skillsShUrl,className:"skill-source-link",children:(0,p.jsxs)("span",{className:"skill-source-link-text",children:[a.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})}),a.install&&(0,p.jsxs)(iP,{label:l("i18n.version"),children:[(0,p.jsxs)("div",{className:"skill-version-row",children:[(0,p.jsx)("span",{className:"skill-version-value",children:jS(f?.currentVersion??a.install.versionHash,l("i18n.unknown"))}),a.install.canCheckForUpdates&&(0,p.jsx)(i1,{size:"small",onClick:j,disabled:g||h,children:l("i18n.check")}),f?.state==="update-available"&&(0,p.jsx)("span",{className:"skill-version-value is-update",children:jS(f.latestVersion,l("i18n.unknown"))}),(g||f&&"update-available"!==f.state)&&(0,p.jsx)("span",{className:`skill-update-status ${g?"is-checking":f?.state==="up-to-date"?"is-success":f?.state==="error"?"is-error":"is-muted"}`,children:g?l("i18n.checking"):f?.state==="up-to-date"?l("i18n.upToDate"):f?.state==="unsupported"?l("i18n.automaticChecksUnavailable"):f?.message||l("i18n.checkFailed")}),f?.state==="update-available"&&(0,p.jsx)(i1,{variant:"primary",size:"small",onClick:k,disabled:h||g,children:l(h?"i18n.updating":"i18n.update")})]}),i&&(0,p.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:i})]}),(0,p.jsx)(iP,{label:l("config.name"),children:(0,p.jsx)("span",{className:"skill-name-value",children:a.name})}),(0,p.jsx)(iP,{label:l("i18n.description"),children:(0,p.jsx)("span",{className:"skill-description",children:a.description})}),(0,p.jsxs)(iP,{label:l("skills.instructions"),ref:y,children:[v.length>0&&(0,p.jsx)(iK,{children:(0,p.jsxs)(iL,{children:[(0,p.jsx)(i1,{size:"small",onClick:()=>{z.current="",w(a=>a.slice(0,-1))},children:l("skills.documentBack")}),(0,p.jsx)("span",{className:"config-detail-path",title:x,children:x})]})}),s?(0,p.jsx)("span",{role:"alert",className:"skill-instructions-status is-error",children:s}):null===o?(0,p.jsx)("span",{role:"status",className:"skill-instructions-status",children:l("i18n.loading")}):o?(0,p.jsx)(cY.m,{className:"skill-instructions",cwd:[a.baseDir,...x.split("/").slice(0,-1)].join("/"),onNavigateLink:C,children:o}):(0,p.jsx)("span",{className:"skill-instructions-status",children:l("skills.noInstructions")})]})]})}function jU({cwd:a,installedPackages:b,projectResourcesLoaded:c,onInstalled:d}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(""),[h,i]=(0,q.useState)([]),[j,k]=(0,q.useState)(!1),[l,m]=(0,q.useState)(null),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(null),[t,u]=(0,q.useState)(new Set),[v,w]=(0,q.useState)("global"),x=(0,q.useRef)(null),y=(0,q.useCallback)(async a=>{if(a.trim()){k(!0),m(null),i([]);try{let b=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:a.trim()})}),c=await b.json();if(c.error)return void m(c.error);i(c.results??[]),0===(c.results??[]).length&&m(e("i18n.noSkills"))}catch(a){m(String(a))}finally{k(!1)}}},[e]),z=(0,q.useCallback)(async b=>{o(b),s(null);try{let c=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:b,scope:v,cwd:a})}),e=await c.json();if(!c.ok||e.error)return void s(e.error??`HTTP ${c.status}`);u(a=>new Set(a).add(`${v}:${b}`)),d()}catch(a){s(String(a))}finally{o(null)}},[d,v,a]),A="global"===v?"~/.pi/agent/skills/":`${jL(a)}/.pi/skills/`;return(0,p.jsxs)(iJ,{className:"is-full-height",children:[(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,p.jsx)(iV,{title:e("i18n.addSkill"),catalogs:[{href:"https://skills.sh",label:"skills.sh"}],target:(0,p.jsx)(iU,{value:v,label:e("config.saveTo"),options:[{value:"global",label:jQ("global",e)},{value:"project",label:jQ("project",e),disabled:!c}],path:A,disabledReason:e("trust.projectScopeUnavailable"),onChange:w})}),(0,p.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,p.jsx)("input",{ref:x,value:f,onChange:a=>g(a.target.value),onKeyDown:a=>{"Enter"===a.key&&y(f)},placeholder:e("i18n.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:12,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,p.jsx)(i1,{variant:"primary",onClick:()=>y(f),disabled:j||!f.trim(),children:j?e("i18n.searching"):e("i18n.search")})]}),l&&(0,p.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:l}),r&&(0,p.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:r})]}),h.length>0&&(0,p.jsx)("div",{style:{flex:1,overflowY:"auto"},children:h.map(a=>{let c=b[v].has(a.package)||t.has(`${v}:${a.package}`),d=n===a.package,f=a.package.indexOf("@"),g=f>-1?a.package.slice(0,f):a.package,h=f>-1?a.package.slice(f+1):null;return(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,p.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:h??g}),(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:g}),(0,p.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:a.installs}),a.url&&(0,p.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,p.jsx)(i1,{size:"small",onClick:()=>!c&&!d&&z(a.package),disabled:c||d||null!==n,style:{flexShrink:0,background:c?"rgba(34,197,94,0.1)":"none",color:c?"#16a34a":d?"var(--accent)":"var(--text-muted)"},children:c?`✓ ${e("i18n.installed")}`:d?e("i18n.installing"):e("i18n.install")})]},a.package)})})]})}function jV({cwd:a,onClose:b,embedded:c=!1,trust:d}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)([]),[h,i]=(0,q.useState)(!0),[j,k]=(0,q.useState)(null),[l,m]=(0,q.useState)(()=>im("skills",a)),[n,o]=(0,q.useState)(new Set),[r,s]=(0,q.useState)(null),[t,u]=(0,q.useState)(null),[v,w]=(0,q.useState)(null),[x,y]=(0,q.useState)(!1),[z,A]=(0,q.useState)({}),[B,C]=(0,q.useState)(new Set),[D,E]=(0,q.useState)(!1),[F,G]=(0,q.useState)(null),[H,I]=(0,q.useState)(null),[J,K]=(0,q.useState)(!0),L=(0,q.useCallback)(async()=>{i(!0),k(null);try{let b=await fetch(`/api/skills?cwd=${encodeURIComponent(a)}`),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);let d=c.skills??[];return g(d),K(c.projectResourcesLoaded??!0),m(a=>{if(a&&d.some(b=>b.filePath===a))return a;let b=d.find(a=>!a.disableModelInvocation)??d[0];return b?.filePath??null}),d}catch(a){return k(String(a)),[]}finally{i(!1)}},[a]),M=jO(d);(0,q.useRef)(M);let N=(0,q.useCallback)(async b=>{let c=(b?[b]:f.filter(a=>!!a.install)).map(jR).filter(a=>!!a);if(0!==c.length){I(null),C(a=>new Set([...a,...c])),b||E(!0);try{let c=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:b?.install?.package,scope:b?.install?.scope})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);A(a=>{let b={...a};for(let a of d.updates??[])b[`${a.scope}\0${a.package}`]=a;return b})}catch(a){I(a instanceof Error?a.message:String(a))}finally{C(a=>{let b=new Set(a);for(let a of c)b.delete(a);return b}),b||E(!1)}}},[a,f]),O=(0,q.useCallback)(async b=>{if(!b.install)return;let c=jR(b);G(c),I(null);try{let d=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,package:b.install.package,scope:b.install.scope})}),e=await d.json();if(!d.ok||e.error||!e.success)throw Error(e.error??`HTTP ${d.status}`);await L();let f=e.skill?.install?.versionHash;A(a=>({...a,[c]:{package:b.install.package,scope:b.install.scope,state:"up-to-date",currentVersion:f,latestVersion:f}}))}catch(a){I(a instanceof Error?a.message:String(a))}finally{G(null)}},[a,L]),P=(0,q.useCallback)(async a=>{let b=!a.disableModelInvocation;o(b=>new Set(b).add(a.filePath)),s(null),w(null);try{let c=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:a.filePath,disableModelInvocation:b})}),d=await c.json();if(!c.ok||d.error)return void s(d.error??`HTTP ${c.status}`);g(c=>c.map(c=>c.filePath===a.filePath?{...c,disableModelInvocation:b}:c))}catch(a){s(String(a))}finally{o(b=>{let c=new Set(b);return c.delete(a.filePath),c})}},[]),Q=(0,q.useCallback)(async(a,b,c)=>{let d=jN(b,c,a=>!a.disableModelInvocation);if(0===d.length)return;let f=d.map(a=>a.filePath),h=!c;o(a=>new Set([...a,...f])),u(a),s(null),w(null);try{let b=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePaths:f,disableModelInvocation:h})}),c=await b.json();if(!b.ok||c.error||!c.results)throw Error(c.error??`HTTP ${b.status}`);let i=c.results;g(a=>{let b;return b=new Set(i.filter(a=>!a.error).map(a=>a.filePath)),a.map(a=>b.has(a.filePath)?{...a,disableModelInvocation:h}:a)});let j=i.filter(a=>a.error);if(j.length>0){let b=new Map(d.map(a=>[a.filePath,a.name]));w({group:a,error:[e("skills.bulkFailed",{count:j.length,total:i.length}),...j.map(a=>`${b.get(a.filePath)??a.filePath}: ${a.error}`)].join("\n")})}}catch(b){w({group:a,error:b instanceof Error?b.message:String(b)})}finally{u(null),o(a=>{let b=new Set(a);for(let a of f)b.delete(a);return b})}},[e]),R=f.find(a=>a.filePath===l)??null,S=h||n.size>0||null!==F;return(0,p.jsxs)(iA,{embedded:c,title:e("common.skills"),subtitle:jL(a),closeLabel:e("i18n.close"),onClose:b,children:[!J&&(0,p.jsx)(iY,{message:e("trust.skillsNotLoaded")}),(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsx)(iD,{children:h?(0,p.jsx)("div",{className:"config-sidebar-message",children:e("i18n.loading")}):j?(0,p.jsx)("div",{className:"config-sidebar-message is-error",children:j}):0===f.length?(0,p.jsx)("div",{className:"config-sidebar-message is-empty",children:e("i18n.noSkills")}):(()=>{let a=[],b={project:e("skills.scope.project"),global:e("skills.scope.global"),path:e("skills.scope.path")};for(let{label:c,matches:d}of[{label:`${b.project} / skills.sh`,matches:a=>"project"===jP(a)&&!!a.install?.skillsShUrl},{label:b.project,matches:a=>"project"===jP(a)&&!a.install?.skillsShUrl},{label:`${b.global} / skills.sh`,matches:a=>"global"===jP(a)&&!!a.install?.skillsShUrl},{label:b.global,matches:a=>"global"===jP(a)&&!a.install?.skillsShUrl},{label:b.path,matches:a=>"path"===jP(a)}]){let b=f.filter(d);b.length>0&&a.push({label:c,skills:b})}let c=a=>{let b,c,d=!x&&l===a.filePath,f=a.disableModelInvocation;return(0,p.jsxs)(iH,{active:d,onClick:()=>{m(a.filePath),y(!1)},children:[(0,p.jsx)(i4,{active:!f}),(0,p.jsx)(iI,{className:`is-grow${f?" is-muted":""}`,children:a.name}),(c=(b=jR(a))?z[b]:void 0,c?.state!=="update-available"?null:(0,p.jsx)("span",{title:e("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"}))]},a.filePath)};return a.map(({label:a,skills:b})=>{let d=b.filter(a=>!a.disableModelInvocation).length,f=d===b.length;return(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{aside:(0,p.jsx)(iF,{enabled:d,total:b.length,disabled:S,loading:t===a,label:e(f?"skills.groupSwitchOn":"skills.groupSwitchOff",{group:a}),onChange:c=>void Q(a,b,c)}),children:a}),v?.group===a&&(0,p.jsx)(iG,{error:v.error}),[...b.filter(a=>!a.disableModelInvocation),...b.filter(a=>a.disableModelInvocation)].map(c)]},a)})})()}),(0,p.jsx)(i3,{onClick:()=>y(!0),active:x,children:e("i18n.addSkill")})]}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:x?(0,p.jsx)(jU,{cwd:a,projectResourcesLoaded:J,installedPackages:{global:new Set(f.filter(a=>a.install?.scope==="global").map(a=>a.install.package)),project:new Set(f.filter(a=>a.install?.scope==="project").map(a=>a.install.package))},onInstalled:()=>{L()}}):h?null:R?(0,p.jsx)(jT,{skill:R,cwd:a,onToggle:P,toggling:n.has(R.filePath),saveError:r,updateStatus:jR(R)?z[jR(R)]:void 0,checkingUpdate:!!jR(R)&&B.has(jR(R)),updating:F===jR(R),updateError:H,onCheckUpdate:()=>void N(R),onUpdate:()=>void O(R)},R.filePath):(0,p.jsx)(iZ,{children:e("i18n.selectSkill")})})})]}),(0,p.jsxs)(i_,{status:Object.values(z).filter(a=>"update-available"===a.state).length>0&&(0,p.jsxs)("span",{style:{fontSize:12,color:"#d97706"},children:[Object.values(z).filter(a=>"update-available"===a.state).length," ",1===Object.values(z).filter(a=>"update-available"===a.state).length?e("i18n.update"):e("i18n.updates")]}),children:[!c&&(0,p.jsx)(i1,{onClick:b,children:e("i18n.close")}),f.some(a=>!!a.install)&&(0,p.jsx)(i1,{variant:"secondary",onClick:()=>void N(),disabled:D||null!==F,children:D?e("i18n.checking"):e("i18n.checkUpdates")})]})]})}let jW={builtin:0,global:1,workspace:2,project:3},jX=["read","bash","edit","write","grep","find","ls"],jY=["","off","minimal","low","medium","high","xhigh","max"],jZ={name:"custom-agent",displayName:"Custom agent",description:"",systemPrompt:"",tools:["read","bash","edit","write","grep","find","ls"],loadSkills:!1,loadExtensions:!1,codemode:"off",mcp:"off",promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0},j$={width:"100%",minWidth:0,height:34,padding:"0 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"},j_={background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"default"};function j0(a){return{name:a.name,displayName:a.displayName,description:a.description,systemPrompt:a.systemPrompt,tools:[...a.tools],loadSkills:a.loadSkills,...void 0!==a.skills?{skills:[...a.skills]}:{},loadExtensions:a.loadExtensions,codemode:a.codemode??"off",mcp:a.mcp??"off",...void 0!==a.extensions?{extensions:[...a.extensions]}:{},promptMode:a.promptMode,...a.model?{model:a.model}:{},...a.thinking?{thinking:a.thinking}:{},...a.maxTurns?{maxTurns:a.maxTurns}:{},inheritContext:a.inheritContext,runInBackground:a.runInBackground,enabled:a.enabled}}function j1(a){return`${a.scope}:${a.name}`}function j2(a){return"global"===a||"project"===a}function j3(a){return j2(a)||"builtin"===a}function j4({label:a,children:b}){return(0,p.jsx)(iP,{label:a,children:b})}function j5({checked:a,disabled:b,label:c,onChange:d}){return(0,p.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,color:b?"var(--text-dim)":"var(--text-muted)",fontSize:12,cursor:b?"default":"pointer"},children:[(0,p.jsx)("input",{type:"checkbox",checked:a,disabled:b,onChange:a=>d(a.target.checked)}),c]})}function j6({cwd:a,sessionId:b=null,onClose:c,onReloaded:d,embedded:e=!1,trust:f}){let g=(0,aH.a)(),{t:h}=(0,aG.s)(),[i,j]=(0,q.useState)([]),[k,l]=(0,q.useState)([]),[m,n]=(0,q.useState)(!0),[o,r]=(0,q.useState)(null),[s,t]=(0,q.useState)(()=>im("agents",a)),[u,v]=(0,q.useState)(jZ),[w,x]=(0,q.useState)("view"),[y,z]=(0,q.useState)("global"),[A,B]=(0,q.useState)(!0),[C,D]=(0,q.useState)(!1),[E,F]=(0,q.useState)(!1),[G,H]=(0,q.useState)(!1),[I,J]=(0,q.useState)(null),[K,L]=(0,q.useState)(!1),[M,N]=(0,q.useState)(10),[O,P]=(0,q.useState)(!0),[Q,R]=(0,q.useState)(!1),[S,T]=(0,q.useState)(null),[U,V]=(0,q.useState)(!1),[W,X]=(0,q.useState)(!1),Y=(0,q.useMemo)(()=>i.find(a=>j1(a)===s)??null,[i,s]),Z=(0,q.useMemo)(()=>k.map(a=>({provider:a.provider,modelId:a.id,name:a.name})),[k]),$=(0,q.useCallback)(async b=>{B(!0),J(null);try{let c=await fetch(`/api/subagents/profiles?cwd=${encodeURIComponent(a)}`,{cache:"no-store"}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);let e=d.profiles??[];j(e);let f=b??im("agents",a),g=e.find(a=>j1(a)===f)??e.find(a=>"project"===a.scope)??e.find(a=>"global"===a.scope)??e[0]??null;t(g?j1(g):null),g&&(v(j0(g)),x(j2(g.scope)?"edit":"view"),j2(g.scope)&&z(g.scope))}catch(a){J(a instanceof Error?a.message:String(a))}finally{B(!1)}},[a]);jO(f);let _=async()=>{D(!0),J(null),F(!1);try{let b=await fetch("/api/subagents/profiles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,scope:y,profile:u})}),c=await b.json();if(!b.ok||c.error||!c.profile)throw Error(c.error??`HTTP ${b.status}`);await $(j1(c.profile)),F(!0),setTimeout(()=>F(!1),2e3)}catch(a){J(a instanceof Error?a.message:String(a))}finally{D(!1)}},aa=async()=>{if(Y&&j2(Y.scope)&&window.confirm(h("agents.deleteConfirm",{name:Y.displayName}))){D(!0),J(null);try{let b=await fetch("/api/subagents/profiles",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,scope:Y.scope,name:Y.name})}),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);await $()}catch(a){J(a instanceof Error?a.message:String(a))}finally{D(!1)}}},ab="view"!==w,ac="create"===w,ad=!ab||C||G,ae=ac?y:Y?.scope,af=ac?"global"===y?`~/.pi/agent/agents/${u.name||"..."}.md`:`./.pi/agents/${u.name||"..."}.md`:Y?(Y.filePath?"project"===Y.scope||"workspace"===Y.scope?jM(Y.filePath,a):jL(Y.filePath):null)??h("agents.builtinPath"):"",ag=ac?af:Y?.filePath??af,ah=a=>k.some(b=>`${b.provider}/${b.id}`===a),ai=u.model&&function(a,b){if(b(a))return a;let c=a.lastIndexOf(":"),d=a.slice(c+1);return c>0&&d&&jY.includes(d)?a.slice(0,c):a}(u.model,ah),aj=!ai||ah(ai),ak=(()=>{if(!ai)return null;let a=ai.indexOf("/");return a<0?{provider:"",modelId:ai}:{provider:ai.slice(0,a),modelId:ai.slice(a+1)}})(),al=ad?{...j$,...j_}:j$,am=ac?ad:!Y||!j3(Y.scope)||C||G,an=(a,b)=>{v(c=>({...c,[a]:b}))},ao=0===u.tools.length&&!u.loadSkills&&!u.loadExtensions,ap=async b=>{if(ac)return void an("enabled",b);if(Y&&j3(Y.scope)){H(!0),J(null);try{let c=await fetch("/api/subagents/profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,scope:Y.scope,name:Y.name,enabled:b})}),d=await c.json();if(!c.ok||d.error||!d.profile)throw Error(d.error??`HTTP ${c.status}`);let e=d.profile;j(a=>a.map(a=>j1(a)===j1(e)?e:a)),v(a=>({...a,enabled:e.enabled}))}catch(a){J(a instanceof Error?a.message:String(a))}finally{H(!1)}}},aq=async a=>{R(!0),T(null);try{let c=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:a})}),d=await c.json();if(!c.ok||d.error||"boolean"!=typeof d.enabled)throw Error(d.error??`HTTP ${c.status}`);L(d.enabled),V(!!b)}catch(a){T(a instanceof Error?a.message:String(a))}finally{R(!1)}},ar=async a=>{N(a),T(null);try{let b=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({maxConcurrent:a})}),c=await b.json();if(!b.ok||c.error||"number"!=typeof c.maxConcurrent)throw Error(c.error??`HTTP ${b.status}`);N(c.maxConcurrent)}catch(a){T(a instanceof Error?a.message:String(a))}},as=async()=>{if(b){X(!0),T(null);try{await eN(b,{type:"reload"}),V(!1),d?.()}catch(a){T(a instanceof Error?a.message:String(a))}finally{X(!1)}}};return(0,p.jsxs)(iA,{embedded:e,title:h("common.agents"),subtitle:jL(a),closeLabel:h("agents.close"),onClose:c,children:[(0,p.jsxs)("div",{className:"agents-feature-setting",children:[(0,p.jsxs)("div",{className:"agents-feature-copy",children:[(0,p.jsx)("strong",{children:h("agents.builtInTitle")}),(0,p.jsx)("span",{children:h("agents.builtInDescription")}),U&&(0,p.jsx)("span",{role:"status",className:"agents-feature-reload-notice",children:h("agents.reloadRequired")})]}),(0,p.jsxs)("div",{className:"agents-feature-actions",children:[U&&b&&(0,p.jsx)(i1,{size:"small",onClick:()=>void as(),disabled:W||Q,children:W?h("agents.reloading"):h("agents.reloadSession")}),(0,p.jsxs)("label",{className:"agents-concurrency-control",title:h("agents.maxConcurrentDescription"),children:[(0,p.jsx)("span",{children:h("agents.maxConcurrent")}),(0,p.jsx)("input",{"aria-label":h("agents.maxConcurrent"),type:"number",min:1,max:32,value:M,disabled:O||Q,onChange:a=>N(Number(a.target.value)),onBlur:()=>void ar(M)})]}),(0,p.jsx)(i2,{checked:K,disabled:O||W,loading:Q,label:h("agents.builtInTitle"),onChange:a=>void aq(a)})]})]}),(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsx)(iD,{children:A?(0,p.jsx)("div",{style:{padding:10,color:"var(--text-dim)",fontSize:12},children:h("agents.loading")}):["project","global","workspace","builtin"].map(a=>{let b=i.filter(b=>b.scope===a);return 0===b.length?null:(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{children:h(`agents.scope.${a}`)}),b.map(a=>{let b,c,d=(b=a.name.toLowerCase(),c=jW[a.scope],i.some(a=>a.name.toLowerCase()===b&&jW[a.scope]>c));return(0,p.jsxs)(iH,{active:s===j1(a)&&!ac,onClick:()=>{t(j1(a)),v(j0(a)),x(j2(a.scope)?"edit":"view"),j2(a.scope)&&z(a.scope),J(null)},children:[(0,p.jsx)(i4,{active:a.enabled}),(0,p.jsx)(iI,{className:`is-grow${a.enabled?"":" is-muted"}`,children:a.displayName}),d&&(0,p.jsx)("span",{className:"agents-overridden-label",children:h("agents.overridden")})]},j1(a))})]},a)})}),(0,p.jsx)(i3,{active:ac,onClick:()=>{let a="custom-agent",b=2;for(;i.some(b=>b.name===a);)a=`custom-agent-${b++}`;t(null),v({...jZ,name:a,displayName:a}),x("create"),z("global"),J(null)},children:h("agents.new")})]}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:Y||ac?(0,p.jsxs)(iJ,{children:[(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:ac?(0,p.jsx)(iU,{value:y,label:h("config.saveTo"),options:["global","project"].map(a=>({value:a,label:h(`agents.scope.${a}`),disabled:C})),path:af,onChange:z}):(0,p.jsxs)(p.Fragment,{children:[ae&&(0,p.jsx)(iS,{scope:ae,children:h(`agents.scope.${ae}`)}),(0,p.jsx)("span",{title:ag,className:"config-detail-path",children:af})]})}),(0,p.jsxs)(iM,{children:[Y&&("view"===w||"edit"===w)&&(0,p.jsx)(i1,{size:"small",onClick:()=>{if(!Y)return;let a=function(a,b){let c=new Set(b.map(a=>a.name.toLowerCase())),d=`${a}-copy`,e=d,f=2;for(;c.has(e.toLowerCase());)e=`${d}-${f++}`;return e}(Y.name,i);t(null),v({...j0(Y),name:a,displayName:h("agents.copyName",{name:Y.displayName})}),x("create"),z(j2(Y.scope)?Y.scope:"global"),J(null)},disabled:C||G,children:h("agents.duplicate")}),Y&&j2(Y.scope)&&"edit"===w&&(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:()=>void aa(),disabled:C||G,children:h("agents.delete")}),(0,p.jsx)(i2,{checked:u.enabled,disabled:am,label:u.enabled?h("agents.disable"):h("agents.enable"),onChange:a=>void ap(a)})]})]}),(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:g?"1fr":"minmax(0, 1fr) minmax(0, 1fr)",gap:12},children:[(0,p.jsx)(j4,{label:h("agents.name"),children:ac?(0,p.jsx)("input",{"aria-label":h("agents.name"),value:u.name,disabled:ad,onChange:a=>an("name",a.target.value),style:j$}):(0,p.jsx)("code",{style:{minHeight:34,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:12},children:u.name})}),(0,p.jsx)(j4,{label:h("agents.displayName"),children:(0,p.jsx)("input",{"aria-label":h("agents.displayName"),value:u.displayName,disabled:ad,onChange:a=>an("displayName",a.target.value),style:al})})]}),(0,p.jsx)(j4,{label:h("agents.description"),children:(0,p.jsx)("input",{"aria-label":h("agents.description"),value:u.description,disabled:ad,onChange:a=>an("description",a.target.value),style:al})}),(0,p.jsx)(j4,{label:h("agents.prompt"),children:(0,p.jsx)("textarea",{className:"agents-system-prompt","aria-label":h("agents.prompt"),value:u.systemPrompt,disabled:ad,onChange:a=>an("systemPrompt",a.target.value),style:{...al,height:195,minHeight:195,maxHeight:"60vh",padding:9,overflow:"auto",resize:ad?"none":"vertical",lineHeight:1.5}})}),(0,p.jsx)(j4,{label:h("agents.tools"),children:(0,p.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 16px"},children:jX.map(a=>(0,p.jsx)(j5,{label:a,disabled:ad,checked:u.tools.includes(a),onChange:b=>an("tools",b?[...u.tools,a]:u.tools.filter(b=>b!==a))},a))})}),(0,p.jsxs)(j4,{label:h("agents.resources"),children:[(0,p.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 20px"},children:[(0,p.jsx)(j5,{label:h("agents.loadSkills"),disabled:ad,checked:u.loadSkills,onChange:a=>an("loadSkills",a)}),(0,p.jsx)(j5,{label:h("agents.loadExtensions"),disabled:ad,checked:u.loadExtensions,onChange:a=>an("loadExtensions",a)}),(0,p.jsx)(j5,{label:h("agents.mcp"),disabled:ad||ao&&"on"!==u.mcp,checked:"on"===u.mcp,onChange:a=>an("mcp",a?"on":"off")})]}),u.loadSkills&&void 0!==u.skills&&(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:u.skills.length>0?h("agents.skillsOnly",{skills:u.skills.join(", ")}):h("agents.skillsNone")}),u.loadExtensions&&void 0!==u.extensions&&(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:u.extensions.length>0?h("agents.extensionsOnly",{extensions:u.extensions.join(", ")}):h("agents.extensionsNone")}),!ad&&ao?(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:h("agents.mcpChatOnly")}):"on"===u.mcp&&(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:h("agents.mcpHint")})]}),(0,p.jsx)(j4,{label:h("agents.codemode"),children:(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,p.jsxs)("select",{"aria-label":h("agents.codemode"),value:u.codemode??"off",disabled:ad,onChange:a=>an("codemode",a.target.value),style:{...al,width:"auto",minWidth:180,alignSelf:"flex-start"},children:[(0,p.jsx)("option",{value:"inherit",children:h("agents.codemode.inherit")}),(0,p.jsx)("option",{value:"on",children:h("agents.codemode.on")}),(0,p.jsx)("option",{value:"off",children:h("agents.codemode.off")})]}),(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:h("agents.codemodeHint")})]})}),(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:g?"1fr":"minmax(0, 1.5fr) minmax(120px, 0.75fr) minmax(100px, 0.5fr)",gap:12},children:[(0,p.jsx)(j4,{label:h("agents.model"),children:(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,p.jsx)(dS,{options:Z,value:ak,onChange:(a,b)=>an("model",`${a}/${b}`),onClear:()=>an("model",void 0),emptyLabel:m?h("agents.modelsLoading"):h("agents.inherit"),selectedLabel:u.model&&!aj?h("agents.modelUnavailable",{model:u.model}):u.model!==ai?u.model:void 0,disabled:ad||m||0===k.length&&!u.model,ariaLabel:h("agents.model"),variant:"field",placement:"auto"}),o&&(0,p.jsx)("span",{style:{color:"#ef4444",fontSize:10},children:o})]})}),(0,p.jsx)(j4,{label:h("agents.thinking"),children:(0,p.jsx)("select",{"aria-label":h("agents.thinking"),value:u.thinking??"",disabled:ad,onChange:a=>an("thinking",a.target.value||void 0),style:al,children:jY.map(a=>(0,p.jsx)("option",{value:a,children:a||h("agents.inherit")},a||"default"))})}),(0,p.jsx)(j4,{label:h("agents.maxTurns"),children:(0,p.jsx)("input",{"aria-label":h("agents.maxTurns"),type:"number",min:1,value:u.maxTurns??"",disabled:ad,onChange:a=>an("maxTurns",a.target.value?Number(a.target.value):void 0),style:al})})]}),(0,p.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 20px"},children:[(0,p.jsx)(j5,{label:h("agents.inheritContext"),disabled:ad,checked:u.inheritContext,onChange:a=>an("inheritContext",a)}),(0,p.jsx)(j5,{label:h("agents.background"),disabled:ad,checked:u.runInBackground,onChange:a=>an("runInBackground",a)})]})]}):(0,p.jsx)(iZ,{children:h("agents.empty")})})})]}),(0,p.jsx)(i_,{status:(S||I)&&(0,p.jsx)("span",{role:"alert",style:{color:"#ef4444"},children:S||I}),children:ab&&(0,p.jsxs)(i1,{variant:"primary",onClick:()=>void _(),disabled:C||E||G||!u.name.trim(),className:E?"is-success":void 0,children:[E&&(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:"config-button-success-icon",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,p.jsx)("span",{children:E?h("i18n.saved"):C?h("agents.saving"):h("agents.save")})]})})]})}let j7=["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"];function j8(a){let b=a.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return b?.[1]??a}function j9(a){return`${a.scope}\0${a.source}`}function ka(a){return`extension\0${a.path}`}function kb(a,b){return b("project"===a?"skills.scope.project":"skills.scope.global")}function kc(a,b){return b(`plugins.status.${a}`)}function kd(a){return`${a.type}: ${a.source?`${a.source}: `:""}${a.message}`}function ke(a){return"loaded"===a?"var(--accent)":"installed"===a?"#f59e0b":"disabled"===a?"var(--text-dim)":"#ef4444"}function kf({pkg:a}){let{t:b}=(0,aG.s)(),c=[["extension",b("i18n.extensions")],["skill",b("i18n.skills")],["prompt",b("i18n.prompts")],["theme",b("i18n.themes")]].map(([b,c])=>({kind:b,label:c,resources:a.resources.filter(a=>a.kind===b)})).filter(a=>a.resources.length>0);return 0===c.length?(0,p.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:b(a.disabled?"i18n.packageDisabled":"i18n.noResolvedResources")}):(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:c.map((a,b)=>(0,p.jsxs)("div",{style:{borderTop:0===b?"none":"1px solid var(--border)",paddingTop:12*(0!==b)},children:[(0,p.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:a.label}),(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.resources.map(a=>(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.path,children:a.name}),(0,p.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:a.path,children:a.relativePath})]},`${a.kind}:${a.path}`))})]},a.kind))})}function kg({cwd:a,source:b,scope:c,projectResourcesLoaded:d,busy:e,actionError:f,onSourceChange:g,onScopeChange:h,onInstall:i}){let{t:j}=(0,aG.s)();return(0,p.jsx)(iW,{title:j("i18n.addPlugin"),catalogs:[{href:"https://pi.dev/packages",label:"pi.dev/packages",icon:(0,p.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 800 800","aria-hidden":"true",focusable:"false",children:[(0,p.jsx)("path",{fill:"#000",fillRule:"evenodd",d:"M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"}),(0,p.jsx)("path",{fill:"#000",d:"M517.36 400H634.72V634.72H517.36Z"})]})}],target:(0,p.jsx)(iU,{value:c,label:j("config.saveTo"),options:[{value:"global",label:kb("global",j)},{value:"project",label:kb("project",j),disabled:!d}],path:"project"===c?`${jL(a)}/.pi/{npm,git}`:"~/.pi/agent/{npm,git}",disabledReason:j("trust.projectScopeUnavailable"),onChange:h}),inputLabel:j("config.source"),inputId:"plugin-source",placeholder:"npm:@scope/package",value:b,canSubmit:!e&&!!b.trim(),normalizeValue:j8,onValueChange:g,onSubmit:i,examplesLabel:j("config.examples"),examples:j7,error:f,children:(0,p.jsx)(i1,{variant:"primary",onClick:i,disabled:e||!b.trim(),className:"is-pushed-right",children:j(e?"i18n.installing":"i18n.install")})})}function kh({pkg:a,cwd:b,busyKey:c,actionError:d,actionMessage:e,sessionId:f,updateStatus:g,checkingUpdate:h,updateError:i,onAction:j,onCheckUpdate:k,onReloadSession:l}){let m,{t:n}=(0,aG.s)(),o=j9(a),r=(c?.endsWith(o)||c?.startsWith("bulk:"))??!1,s="reload"===c,t=!a.disabled,u=a.canCheckForUpdates,v=g?.state==="update-available",w=a.description?.trim(),x=(0,q.useId)();return(0,p.jsxs)(iJ,{children:[(0,p.jsxs)("div",{className:"config-detail-heading",children:[(0,p.jsxs)(iK,{className:"is-top-aligned",children:[(0,p.jsxs)(iL,{children:[(0,p.jsx)(iS,{scope:a.scope,children:kb(a.scope,n)}),a.disabled?(0,p.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:n("i18n.disabled")}):a.filtered&&(0,p.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:n("i18n.filtered")}),(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.source})]}),(0,p.jsxs)(iM,{children:[(0,p.jsx)(i1,{size:"small",variant:v?"primary":void 0,onClick:v||!u?()=>j("update",a):k,disabled:r||s||h,title:v?n("i18n.updateAvailable"):void 0,children:n(c===`update:${o}`?"i18n.updating":h?"i18n.checking":v||!u?"i18n.update":"i18n.check")}),(0,p.jsx)(i1,{size:"small",onClick:l,disabled:!f||s||r,"aria-describedby":f?void 0:x,children:n(s?"i18n.reloading":"i18n.reloadSession")}),(0,p.jsx)(i1,{variant:"danger",size:"small",onClick:()=>j("remove",a),disabled:r||s,children:n(c===`remove:${o}`?"i18n.removing":"i18n.remove")}),(0,p.jsx)(i2,{checked:t,loading:r||s,onChange:()=>j(a.disabled?"enable":"disable",a),label:n(a.disabled?"i18n.enablePackage":"i18n.disablePackage")})]})]}),!f&&(0,p.jsx)("div",{id:x,className:"config-detail-heading-note",children:n("i18n.openSessionToReload")})]}),(0,p.jsxs)(iQ,{children:[w&&(0,p.jsx)(iR,{label:n("i18n.description"),children:w}),(0,p.jsx)(iR,{label:n("i18n.status"),tone:"plain",style:{color:ke(a.status),textTransform:"capitalize"},children:kc(a.status,n)}),(0,p.jsxs)(iR,{label:n("i18n.version"),tone:"plain",style:{display:"flex",flexDirection:"column",gap:4},children:[(0,p.jsxs)("div",{className:"skill-version-row",children:[(0,p.jsx)("span",{className:"skill-version-value",children:(m=[],a.version&&m.push(n("i18n.installedVersion",{version:a.version})),a.configuredVersion&&m.push(n("i18n.configuredVersion",{version:a.configuredVersion})),m.length?m.join(" \xb7 "):n("i18n.unknown"))}),v&&(0,p.jsx)("span",{className:"skill-version-value is-update",title:g.displayName,children:n("i18n.updateAvailable")}),u&&(h||g&&!v)&&(0,p.jsx)("span",{className:`skill-update-status ${h?"is-checking":g?.state==="up-to-date"?"is-success":g?.state==="error"?"is-error":"is-muted"}`,children:h?n("i18n.checking"):g?.state==="up-to-date"?n("i18n.upToDate"):g?.state==="unsupported"?n("i18n.automaticChecksUnavailable"):g?.message||n("i18n.checkFailed")})]}),i&&(0,p.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:i})]}),(0,p.jsx)(iR,{label:n("i18n.package"),mono:!0,children:a.packageName??n("i18n.unknown")}),(0,p.jsx)(iR,{label:n("i18n.resources"),children:function(a,b){if(a.disabled)return b("i18n.disabled");let c=[a.counts.extensions?b("i18n.resourceCount",{count:a.counts.extensions,label:b("i18n.extensionShort")}):"",a.counts.skills?b("i18n.resourceCount",{count:a.counts.skills,label:b("i18n.skillShort")}):"",a.counts.prompts?b("i18n.resourceCount",{count:a.counts.prompts,label:b("i18n.promptShort")}):"",a.counts.themes?b("i18n.resourceCount",{count:a.counts.themes,label:b("i18n.themeShort")}):""].filter(Boolean);return c.length?c.join(" \xb7 "):b("i18n.noResources")}(a,n)}),(0,p.jsx)(iR,{label:n("i18n.installedPath"),tone:a.installedPath?"muted":"error",mono:!0,children:a.installedPath?jL(a.installedPath):n("i18n.notFound")}),(0,p.jsx)(iR,{label:n("i18n.cwd"),tone:"dim",mono:!0,children:jL(b)})]}),(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,p.jsx)(iO,{children:n("i18n.resolvedResources")}),(0,p.jsx)(kf,{pkg:a})]}),e&&(0,p.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:e}),d&&(0,p.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:d})]})}function ki({extension:a}){let{t:b}=(0,aG.s)(),c=a.enabled?"loaded":"disabled";return(0,p.jsxs)(iJ,{children:[(0,p.jsx)(iK,{children:(0,p.jsxs)(iL,{children:[(0,p.jsx)(iS,{scope:a.scope,children:kb(a.scope,b)}),(0,p.jsx)(iN,{children:a.name})]})}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(iR,{label:b("i18n.status"),tone:"plain",style:{color:a.enabled?"var(--accent)":"var(--text-dim)"},children:kc(c,b)}),(0,p.jsx)(iR,{label:b("i18n.installedPath"),mono:!0,children:jL(a.path)})]})]})}function kj({cwd:a,sessionId:b,onClose:c,onReloaded:d,embedded:e=!1,trust:f}){var g;let{t:h}=(0,aG.s)(),[i,j]=(0,q.useState)(null),[k,l]=(0,q.useState)(!0),[m,n]=(0,q.useState)(null),[o,r]=(0,q.useState)(()=>im("plugins",a)),[s,t]=(0,q.useState)(!1),[u,v]=(0,q.useState)(""),[w,x]=(0,q.useState)("global"),[y,z]=(0,q.useState)(null),[A,B]=(0,q.useState)(null),[C,D]=(0,q.useState)(null),[E,F]=(0,q.useState)(null),[G,H]=(0,q.useState)({}),[I,J]=(0,q.useState)(new Set),[K,L]=(0,q.useState)(!1),[M,N]=(0,q.useState)(null),[O,P]=(0,q.useState)(!1),Q=(0,q.useMemo)(()=>i?.packages??[],[i?.packages]),R=(0,q.useMemo)(()=>i?.standaloneExtensions??[],[i?.standaloneExtensions]),S=Q.find(a=>j9(a)===o)??null,T=R.find(a=>ka(a)===o)??null,U=i?.projectResourcesLoaded??!0,V=(0,q.useMemo)(()=>["project","global"].map(a=>({scope:a,packages:Q.filter(b=>b.scope===a)})).filter(a=>a.packages.length>0),[Q]),W=(0,q.useCallback)(async()=>{l(!0),n(null),F(null);try{let b=await fetch(`/api/plugins?cwd=${encodeURIComponent(a)}`),c=await b.json();if(!b.ok||c.error)throw Error(c.error??`HTTP ${b.status}`);j(c),t(a=>0===c.packages.length&&0===c.standaloneExtensions.length||a),r(a=>a&&(c.packages.some(b=>j9(b)===a)||c.standaloneExtensions.some(b=>ka(b)===a))?a:c.packages[0]?j9(c.packages[0]):c.standaloneExtensions[0]?ka(c.standaloneExtensions[0]):null)}catch(a){n(a instanceof Error?a.message:String(a))}finally{l(!1)}},[a]),X=jO(f);(0,q.useRef)(X);let Y=(0,q.useCallback)(async b=>{let c=(b?[b]:Q.filter(a=>a.canCheckForUpdates)).map(j9);if(0!==c.length){N(null),J(a=>new Set([...a,...c])),b||L(!0);try{let c=await fetch("/api/plugins/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,source:b?.source,scope:b?.scope})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);H(a=>{let b={...a};for(let a of d.updates??[])b[j9(a)]=a;return b})}catch(a){N(a instanceof Error?a.message:String(a))}finally{J(a=>{let b=new Set(a);for(let a of c)b.delete(a);return b}),b||L(!1)}}},[a,Q]),Z=(0,q.useCallback)(async()=>{P(!0),B(null),D(null),N(null);try{let c=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"update",cwd:a})}),d=await c.json();if(!c.ok||d.error)throw Error(d.error??`HTTP ${c.status}`);j(d),H({}),D(h("i18n.packagesUpdated")),b&&D(`${h("i18n.packagesUpdated")} ${h("agents.reloadRequired")}`)}catch(a){B(a instanceof Error?a.message:String(a))}finally{P(!1)}},[a,b,h]),$=(0,q.useCallback)(async(b,c)=>{let d=j9(c);z(`${b}:${d}`),B(null),D(null),F(null);try{let e=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,source:c.source,scope:c.scope,cwd:a})}),f=await e.json();if(!e.ok||f.error)throw Error(f.error??`HTTP ${e.status}`);if(j(f),"remove"===b)r(f.packages[0]?j9(f.packages[0]):f.standaloneExtensions[0]?ka(f.standaloneExtensions[0]):null),0===f.packages.length&&0===f.standaloneExtensions.length&&t(!0),D(h("i18n.packageRemoved")),H(a=>{let b={...a};return delete b[d],b});else{let a={install:h("i18n.packageInstalled"),update:h("i18n.packageUpdated"),disable:h("i18n.packageDisabled"),enable:h("i18n.packageEnabled")};D(a[b]),"update"===b&&H(a=>{let b={...a};return delete b[d],b})}}catch(a){B(a instanceof Error?a.message:String(a))}finally{z(null)}},[a,h]),_=(0,q.useCallback)(async(c,d,e)=>{let f=jN(d,e,a=>!a.disabled,a=>a.filtered),g=e?0:d.filter(a=>!a.disabled&&a.filtered).length,i=g>0?h("plugins.bulkKeptFiltered",{count:g}):void 0;if(B(null),D(null),F(i?{scope:c,note:i}:null),0===f.length)return;let k=e?"enable":"disable";z(`bulk:${c}`);try{let d=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:k,cwd:a,packages:f.map(({source:a})=>({source:a,scope:c}))})}),g=await d.json();if(!d.ok||g.error||!g.results)throw Error(g.error??`HTTP ${d.status}`);let{results:l,...m}=g;j(m);let n=l.filter(a=>a.error);if(n.length<l.length){let a=e?h("plugins.bulkEnabled"):h("plugins.bulkDisabled");D(b?`${a} ${h("agents.reloadRequired")}`:a)}n.length>0&&F({scope:c,note:i,error:[h("plugins.bulkFailed",{count:n.length,total:l.length}),...n.map(a=>`${a.source}: ${a.error}`)].join("\n")})}catch(a){F({scope:c,note:i,error:a instanceof Error?a.message:String(a)})}finally{z(null)}},[a,b,h]),aa=(0,q.useCallback)(async()=>{let b=j8(u).trim();if(!b)return;v(b);let c=`${w}\0${b}`;z(`install:${c}`),B(null),D(null),F(null);try{var d;let e,f,g=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:b,scope:w,cwd:a})}),i=await g.json();if(!g.ok||i.error)throw Error(i.error??`HTTP ${g.status}`);j(i);let k=(d=i.packages,f=(e=b.trim()).startsWith("npm:")?e.slice(4):e,d.find(a=>a.scope===w&&a.source===e)??d.find(a=>a.scope===w&&a.source===`npm:${f}`)??d.find(a=>a.scope===w&&a.source.endsWith(e)));r(k?j9(k):c),t(!1),v(""),D(h("i18n.packageInstalled"))}catch(a){B(a instanceof Error?a.message:String(a))}finally{z(null)}},[a,w,u,h]),ab=(0,q.useCallback)(async()=>{if(b){z("reload"),B(null),D(null),F(null);try{await eN(b,{type:"reload"}),d?.(),await W(),D(h("i18n.sessionReloaded"))}catch(a){B(a instanceof Error?a.message:String(a))}finally{z(null)}}},[W,d,b,h]),ac=y?.startsWith("install:")??!1,ad=Object.values(G).filter(a=>"update-available"===a.state).length,ae=Q.some(a=>a.canCheckForUpdates),af=k||null!==y||I.size>0||O;return(0,p.jsxs)(iA,{embedded:e,title:h("common.plugins"),subtitle:jL(a),closeLabel:h("i18n.close"),onClose:c,children:[!U&&(0,p.jsx)(iY,{message:h("trust.pluginsNotLoaded")}),(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsx)(iD,{children:k?(0,p.jsx)("div",{className:"config-sidebar-message",children:h("i18n.loading")}):m?(0,p.jsx)("div",{className:"config-sidebar-message is-error",children:m}):0===Q.length&&0===R.length?(0,p.jsx)("div",{className:"config-sidebar-message is-empty",children:h("i18n.noPlugins")}):(0,p.jsxs)(p.Fragment,{children:[R.length>0&&(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{children:h("i18n.extensions")}),R.map(a=>{let b=ka(a);return(0,p.jsxs)(iH,{active:!s&&o===b,title:a.path,onClick:()=>{r(b),t(!1),B(null),D(null)},children:[(0,p.jsx)(i4,{active:a.enabled}),(0,p.jsx)(iI,{className:`is-grow${a.enabled?"":" is-muted"}`,children:a.name})]},b)})]}),V.map(a=>{let b=a.packages.filter(a=>!a.disabled).length,c=b===a.packages.length;return(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{aside:(0,p.jsx)(iF,{enabled:b,total:a.packages.length,disabled:af,loading:y===`bulk:${a.scope}`,label:h(c?"plugins.groupSwitchOn":"plugins.groupSwitchOff",{group:kb(a.scope,h)}),onChange:b=>void _(a.scope,a.packages,b)}),children:kb(a.scope,h)}),E?.scope===a.scope&&(0,p.jsx)(iG,{error:E.error,note:E.note}),a.packages.map(a=>{let b=j9(a),c=!s&&o===b;return(0,p.jsxs)(iH,{active:c,title:a.description??a.source,onClick:()=>{r(b),t(!1),B(null),D(null)},children:[(0,p.jsx)(i4,{active:!a.disabled,color:ke(a.status)}),(0,p.jsx)(iI,{className:`is-grow${a.disabled?" is-muted":""}`,children:a.source}),G[j9(a)]?.state==="update-available"&&(0,p.jsx)("span",{title:h("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"})]},b)})]},a.scope)})]})}),(0,p.jsx)(i3,{active:s,onClick:()=>{t(!0),B(null),D(null)},children:h("i18n.addPlugin")})]}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:s?(0,p.jsx)(kg,{cwd:a,source:u,scope:w,projectResourcesLoaded:U,busy:ac,actionError:A,onSourceChange:v,onScopeChange:x,onInstall:aa}):k?null:T?(0,p.jsx)(ki,{extension:T}):S?(0,p.jsx)(kh,{pkg:S,cwd:a,busyKey:y,actionError:A,actionMessage:C,sessionId:b,updateStatus:G[j9(S)],checkingUpdate:I.has(j9(S)),updateError:M,onAction:$,onCheckUpdate:()=>void Y(S),onReloadSession:ab},j9(S)):(0,p.jsx)(iZ,{children:h("i18n.selectPackage")})})})]}),(0,p.jsxs)(i_,{status:ad>0?(0,p.jsxs)("span",{style:{fontSize:12,color:"var(--accent)"},children:[ad," ",1===ad?h("i18n.update"):h("i18n.updates")]}):i?.diagnostics.length?(0,p.jsx)(i0,{tone:i.diagnostics.some(a=>"error"===a.type)?"error":"warning",summary:1===i.diagnostics.length?h("plugins.diagnostic"):h("plugins.diagnostics",{count:i.diagnostics.length}),details:i.diagnostics.map(kd)}):(0,p.jsx)(i0,{summary:i?[h("i18n.resourceCount",{count:(g=i.totals).extensions,label:h("i18n.extensionShort")}),h("i18n.resourceCount",{count:g.skills,label:h("i18n.skillShort")}),h("i18n.resourceCount",{count:g.prompts,label:h("i18n.promptShort")}),h("i18n.resourceCount",{count:g.themes,label:h("i18n.themeShort")})].join(" \xb7 "):""}),children:[!e&&(0,p.jsx)(i1,{onClick:c,children:h("i18n.close")}),ae&&(0,p.jsx)(i1,{variant:ad>0?"primary":"secondary",onClick:()=>void(ad>0?Z():Y()),disabled:af,title:ad>0?h("i18n.updateAllPluginsHint"):void 0,children:O?h("i18n.updating"):K?h("i18n.checking"):ad>0?`${h("i18n.updateAllPlugins")} (${ad})`:h("i18n.checkUpdates")}),(0,p.jsx)(i1,{variant:"secondary",onClick:()=>void W(),disabled:af,children:h("i18n.refresh")})]})]})}let kk="\\p{Cc}\\p{Cf}\\p{Zl}\\p{Zp}\\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000\\uFE00-\\uFE0F\\u{E0100}-\\u{E01EF}\\u115F\\u1160\\u3164\\uFFA0\\u2800",kl=RegExp(`[${kk}]`,"gu"),km=RegExp(`[${kk}]`,"u");function kn(a){return a.replace(kl,a=>{let b=a.codePointAt(0)??0;return`\\u{${b.toString(16).toUpperCase().padStart(4,"0")}}`})}let ko=/[\s"'`$|&;<>()*?#~]/;function kp(a){let b=km.test(a),c=kn(a);return""===c||b||ko.test(c)?`"${c.replace(/"/g,'\\"')}"`:c}function kq(a,b=[]){return[a,...b].map(kp).join(" ")}function kr(a){let b=void 0!==a.command?kq(a.command,a.args):void 0,c=void 0!==a.url?kn(a.url):void 0;return"http"===a.transport?c:"stdio"===a.transport?b:c??b}function ks(a){return[a.name,a.command,a.cwd,a.url,...a.args??[],...a.envNames,...a.headerNames].some(a=>void 0!==a&&km.test(a))}function kt(a){return"oauth-client-secret"===a.kind?{key:"mcp.field.oauthClientSecret"}:{key:"env"===a.kind?"mcp.field.env":"mcp.field.header",params:{name:kn(a.name??"")}}}function ku(a){return"http"===a.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables"}function kv(a){return a.length>0?{key:"mcp.server.overridesGlobal",params:{keys:a.join(", ")}}:{key:"mcp.server.overridesGlobalNothing"}}function kw(a){return a.flatMap(({variables:a,...b})=>a.map(a=>({variable:a,field:b})))}function kx(a,b){return"unparsable"===a.reason||"unreadable"===a.reason?kn(a.error):"link-outside"===a.reason?void 0===b?void 0:kn(b):void 0}let ky="codemode";function kz(a){return`${a.scope}\0${a.name}`}function kA(a){return a?.trust?.decision===!0}function kB(a){return"test"===a.origin?a.state:void 0!==a.closedAt||"not-trusted"===a.state?"on":a.state}function kC(a,b){return void 0!==a.invalidError?"invalid":a.webPasswordField?"web-password":a.enabled?"project"!==a.scope||b.projectServersLoad?"global"===a.scope&&a.shadowedByProject&&b.projectServersLoad?"replaced":"global"===a.scope&&a.overriddenByProject&&b.projectServersLoad?"overridden":b.mcpAvailable?a.status?kB(a.status):"on":"mcp-off":"not-trusted":"disabled"}let kD={invalid:"mcp.state.invalid","web-password":"mcp.state.web-password",disabled:"mcp.state.disabled","not-trusted":"mcp.state.not-trusted",replaced:"mcp.state.replaced",overridden:"mcp.state.overridden","mcp-off":"mcp.state.mcp-off",connected:"mcp.state.connected","needs-auth":"mcp.state.needs-auth",failed:"mcp.state.failed",connecting:"mcp.state.connecting",disconnected:"mcp.state.disconnected",conflict:"mcp.state.conflict",on:"mcp.state.on"},kE={connected:"mcp.state.session.connected",failed:"mcp.state.session.failed"};function kF(a,b){return(b?.origin==="session"?kE[a]:void 0)??kD[a]}let kG={disconnected:"mcp.stateDetail.disconnected",conflict:"mcp.stateDetail.conflict"},kH={invalid:"mcp.stateShort.invalid","web-password":"mcp.stateShort.web-password",disabled:"mcp.stateShort.disabled","not-trusted":"mcp.stateShort.not-trusted",replaced:"mcp.stateShort.replaced",overridden:"mcp.stateShort.overridden","needs-auth":"mcp.stateShort.needs-auth",failed:"mcp.stateShort.failed",connecting:"mcp.stateShort.connecting",disconnected:"mcp.stateShort.disconnected",conflict:"mcp.stateShort.conflict"};function kI(a){return"on"===a||"connected"===a?"on":"invalid"===a||"web-password"===a||"failed"===a||"conflict"===a?"error":"not-trusted"===a||"needs-auth"===a||"disconnected"===a?"warning":"off"}function kJ(a){return"on"===a?{active:!0}:"off"===a?{active:!1}:{color:"error"===a?"#ef4444":"#f59e0b"}}function kK(a,b,c=Date.now()){let d=new Date(a),e=new Date(c);return d.getFullYear()===e.getFullYear()&&d.getMonth()===e.getMonth()&&d.getDate()===e.getDate()?d.toLocaleTimeString(b,{hour:"2-digit",minute:"2-digit"}):d.toLocaleString(b,{dateStyle:"medium",timeStyle:"short"})}let kL={connecting:"mcp.session.state.connecting",connected:"mcp.session.state.connected","needs-auth":"mcp.session.state.needs-auth",failed:"mcp.session.state.failed",disconnected:"mcp.session.state.disconnected",conflict:"mcp.session.state.conflict","not-trusted":"mcp.session.state.not-trusted"},kM={connecting:"mcp.session.summary.connecting",connected:"mcp.session.summary.connected","needs-auth":"mcp.session.summary.needs-auth",failed:"mcp.session.summary.failed",disconnected:"mcp.session.summary.disconnected",conflict:"mcp.session.summary.conflict","not-trusted":"mcp.session.summary.not-trusted"},kN={connecting:"off",connected:"on","needs-auth":"warning",failed:"error",disconnected:"warning",conflict:"error","not-trusted":"warning"},kO={codemode:"mcp.exposure.codemode",deferred:"mcp.exposure.deferred",direct:"mcp.exposure.direct",hidden:"mcp.exposure.hidden"},kP=["codemode","deferred","direct","hidden"],kQ={codemode:"mcp.exposureShort.codemode",deferred:"mcp.exposureShort.deferred",direct:"mcp.exposureShort.direct",hidden:"mcp.exposureShort.hidden"};function kR(a){return"auto-enable-codemode-invalid"!==a.reason}function kS(a,b){return(b?["project","global"]:["global"]).map(b=>{let c=a.files.find(a=>a.scope===b);return{scope:b,...c?{file:c}:{},servers:a.servers.filter(a=>a.scope===b)}})}function kT(a){return{enabled:a.filter(a=>a.enabled).length,total:a.length}}function kU(a,b){let c=a.flatMap(a=>a.servers.map(kz));return b===ky||null!==b&&c.includes(b)?b:c[0]??null}function kV(a){let b=a?.trust;return void 0!==b&&b.requiresTrust&&!b.trusted}function kW(a){return a.projectOverride?.preference??a.preference}let kX={always:"mcp.codemode.projectOverride.always",automatic:"mcp.codemode.projectOverride.automatic"},kY={on:"mcp.codemode.toolMode.onDescription",only:"mcp.codemode.toolMode.onlyDescription"},kZ={on:"mcp.codemode.toolMode.projectOverride.on",only:"mcp.codemode.toolMode.projectOverride.only"},k$={automatic:"mcp.codemode.automatic",always:"mcp.codemode.always",unavailable:"mcp.codemode.unavailable",unknown:"i18n.unknown"};function k_(a){return"unavailable"===a?"error":"unknown"===a?"off":"on"}let k0=a=>Array.isArray(a)&&a.every(a=>"string"==typeof a);function k1(a,b){let c=a??{},d=c.breadth,e=c.trust;return{error:"string"==typeof c.error?c.error:`HTTP ${b}`,..."string"==typeof c.reason?{reason:c.reason}:{},..."string"==typeof c.path?{path:c.path}:{},..."string"==typeof c.name?{name:c.name}:{},..."string"==typeof c.suggestedName?{suggestedName:c.suggestedName}:{},...k0(c.names)?{names:c.names}:{},...k0(c.fields)?{fields:c.fields}:{},...Array.isArray(c.notes)?{notes:c.notes.filter(a=>"string"==typeof a?.code)}:{},..."string"==typeof d?.kind&&"string"==typeof d.path?{breadth:d}:{},..."boolean"==typeof e?.requiresTrust&&"boolean"==typeof e.trusted?{trust:e}:{},...!0===c.trustKept?{trustKept:!0}:{}}}async function k2(a,b,c,d,{abortAtDeadline:e=!0}={}){let f,g=new AbortController,h=()=>g.abort();d?.aborted?g.abort():d?.addEventListener("abort",h,{once:!0});let i=new Promise(a=>{f=setTimeout(()=>{a(b()),e&&g.abort()},c)});try{return await Promise.race([a(g.signal),i])}finally{clearTimeout(f),d?.removeEventListener("abort",h)}}function k3(a){return null!==a&&"object"==typeof a&&"object"==typeof a.mcp&&null!==a.mcp&&"object"==typeof a.codemode&&null!==a.codemode&&Array.isArray(a.files)&&Array.isArray(a.servers)}async function k4(a,b,c){let d,e;try{d=await b(a?`/api/mcp?cwd=${encodeURIComponent(a)}`:"/api/mcp",{cache:"no-store",signal:c})}catch(a){return{ok:!1,error:{error:a instanceof Error?a.message:String(a)}}}try{e=await d.json()}catch{return{ok:!1,error:{error:`HTTP ${d.status}`}}}return d.ok&&k3(e)?{ok:!0,data:e}:{ok:!1,error:k1(e,d.status)}}let k5=new Set(["cwd-invalid","cwd-denied","cwd-not-directory"]);async function k6(a,b,c){let d=await k4(a,b,c);if(d.ok||!a||!d.error.reason||!k5.has(d.error.reason))return d;let e=await k4(null,b,c);return e.ok?{...e,projectError:d.error}:e}async function k7(a,b=(a,b)=>fetch(a,b),c,d=15e3){return k2(c=>k6(a,b,c),()=>({ok:!1,error:{error:`GET /api/mcp did not answer within ${d} ms`,timedOut:!0}}),d,c)}async function k8(a,b,c,d){let e,f;try{e=await c("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),cache:"no-store",signal:d})}catch(a){return{ok:!1,error:{error:a instanceof Error?a.message:String(a)}}}try{f=await e.json()}catch{return{ok:!1,error:{error:`HTTP ${e.status}`}}}let g=e.ok&&null!==f&&"object"==typeof f?b(f):void 0;return void 0!==g?{ok:!0,stored:g}:{ok:!1,error:k1(f,e.status)}}async function k9(a,b,c){let d=await k8({codemode:a},a=>{var b;return"automatic"===(b=a.codemode)||"always"===b?a.codemode:void 0},b,c);return d.ok?{ok:!0,preference:d.stored}:d}async function la(a,b=(a,b)=>fetch(a,b),c,d=15e3){return k2(c=>k9(a,b,c),()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${d} ms`,timedOut:!0}}),d,c)}async function lb(a,b=(a,b)=>fetch(a,b),c,d=15e3){return k2(async c=>{let d=await k8({codemodeMode:a},a=>{var b;return null!==(b=a.codemodeMode)&&"object"==typeof b&&("on"===b.value||"only"===b.value)&&(void 0===b.invalid||"string"==typeof b.invalid)?a.codemodeMode:void 0},b,c);return d.ok?{ok:!0,mode:d.stored}:d},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${d} ms`,timedOut:!0}}),d,c)}async function lc(a,b=(a,b)=>fetch(a,b),c,d=15e3){return k2(async c=>{let d=await k8({codemodeInlineBudget:a},a=>{var b;return null!==(b=a.codemodeInlineBudget)&&"object"==typeof b&&(void 0===b.value||"number"==typeof b.value)&&(void 0===b.invalid||"string"==typeof b.invalid)?a.codemodeInlineBudget:void 0},b,c);return d.ok?{ok:!0,inlineBudget:d.stored}:d},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${d} ms`,timedOut:!0}}),d,c)}function ld(a){return!a.available&&"builtin-disabled"!==a.reason}function le(a,b){if(ld(b.mcp))return"mcp-off";if("project"===a){if(!b.project?.trust)return"trust-unreadable";if(!kA(b.project))return"project-untrusted"}}let lf={"mcp-off":"mcp.readOnly.mcp-off","project-untrusted":"mcp.readOnly.project-untrusted","trust-unreadable":"mcp.readOnly.trust-unreadable"};function lg(a){return!0!==a.notAnObject}function lh(a){return lg(a)&&void 0===a.webPasswordField}async function li(a,b,c){let d,e;try{d=await b("/api/mcp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),cache:"no-store",signal:c})}catch(a){return{ok:!1,error:{error:a instanceof Error?a.message:String(a)}}}try{e=await d.json()}catch{return{ok:!1,error:{error:`HTTP ${d.status}`}}}return d.ok&&k3(e)?{ok:!0,data:e}:{ok:!1,error:k1(e,d.status)}}async function lj(a,b,c=(a,b)=>fetch(a,b),d,e=15e3){let f={...a,...b?{cwd:b}:{}};return k2(a=>li(f,c,a),()=>({ok:!1,error:{error:`POST /api/mcp did not answer within ${e} ms`,timedOut:!0}}),e,d)}let lk={"mcp-off":"mcp.test.blocked.mcp-off","project-untrusted":"mcp.test.blocked.project-untrusted","trust-unreadable":"mcp.test.blocked.trust-unreadable",invalid:"mcp.test.blocked.invalid","web-password":"mcp.test.blocked.web-password"};function ll(a,b){let c=le(a.scope,b);return c||(void 0===a.invalidError&&a.validated?a.webPasswordField?"web-password":void 0:"invalid")}let lm={"mcp-off":"mcp.test.blocked.mcp-off","project-untrusted":"mcp.test.blocked.project-untrusted","trust-unreadable":"mcp.test.blocked.trust-unreadable","server-invalid":"mcp.test.blocked.invalid","web-password":"mcp.test.blocked.web-password","entry-not-object":"mcp.test.refused.entry-not-object","invalid-request":"mcp.test.refused.invalid-request",unparsable:"mcp.test.refused.unparsable","invalid-shape":"mcp.test.refused.invalid-shape","link-dangling":"mcp.test.refused.link-dangling","link-outside":"mcp.test.refused.link-outside","not-a-file":"mcp.test.refused.not-a-file","too-large":"mcp.test.refused.too-large","too-many-servers":"mcp.test.refused.too-many-servers"},ln={connected:"mcp.test.state.connected","needs-auth":"mcp.test.state.needs-auth",failed:"mcp.test.state.failed",timedOut:"mcp.test.state.timedOut"},lo={connected:"mcp.test.summary.connected","needs-auth":"mcp.test.summary.needs-auth",failed:"mcp.test.summary.failed",timedOut:"mcp.test.summary.timedOut"},lp={connected:"mcp.signIn.summary.connected","needs-auth":"mcp.signIn.summary.needs-auth",failed:"mcp.signIn.summary.failed",timedOut:"mcp.signIn.summary.timedOut"};function lq(a){return(Math.max(0,a)/1e3).toFixed(1)}async function lr(a,b,c){let d,e;try{d=await b("/api/mcp/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),cache:"no-store",signal:c})}catch(a){return{ok:!1,error:{error:a instanceof Error?a.message:String(a)}}}try{e=await d.json()}catch{return{ok:!1,error:{error:`HTTP ${d.status}`}}}return d.ok&&function(a){if(null===a||"object"!=typeof a)return!1;let b=a.result;return"string"==typeof a.configKey&&"string"==typeof a.name&&("global"===a.scope||"project"===a.scope)&&"object"==typeof b&&null!==b&&"string"==typeof b.state&&Array.isArray(b.tools)&&"number"==typeof b.testedAt}(e)?{ok:!0,data:e}:{ok:!1,error:k1(e,d.status)}}async function ls(a,b,c=(a,b)=>fetch(a,b),d,e=6e4){let f={scope:a.scope,name:a.name,...b?{cwd:b}:{}};return k2(a=>lr(f,c,a),()=>({ok:!1,error:{error:`POST /api/mcp/test did not answer within ${e} ms`,timedOut:!0}}),e,d,{abortAtDeadline:!1})}let lt="•••",lu=new Set(["key","apikey","token","secret","password","passwd","passphrase","pwd","pass","credential","credentials","authorization","bearer","jwt","cookie","signature","pat"]),lv=new Set([...lu,"auth","sig","code","pw"]),lw=["token","secret","password","passwd","apikey"],lx=new Set(["file","path","dir","url","uri","endpoint","id","name","type","header","env","var","length","ttl","expiry","expires","timeout","mode","format"]),ly=new Set(["-k"]);function lz(a){return a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function lA(a,b){let c=lz(a);return!(c.length>1&&lx.has(c[c.length-1]))&&c.some(a=>b.has(a)||lw.some(b=>a.length>b.length&&a.endsWith(b)))}function lB(a){return lA(a,lu)}let lC=RegExp("^(?:sk-[A-Za-z0-9_-]{16,}|(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[abposr]-[A-Za-z0-9-]{10,}|(?:AKIA|ASIA)[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{30,}|ya29\\.[0-9A-Za-z_-]{20,}|npm_[A-Za-z0-9]{30,}|hf_[A-Za-z0-9]{30,}|shp(?:at|ss|ca|pa)_[A-Fa-f0-9]{20,}|dop_v1_[a-f0-9]{40,}|lin_api_[A-Za-z0-9]{20,})"),lD=/^eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*$/,lE=/^[A-Za-z0-9_\-+/=.~]+$/;function lF(a){return!(/\s/.test(a)||lK(a))&&(!!(lC.test(a)||lD.test(a))||!(a.length<24||!lE.test(a)||/^[./~]/.test(a)||/\.[A-Za-z][A-Za-z0-9]{0,4}$/.test(a)||a.split("/").length>2)&&!!/\d/.test(a)&&!!/[A-Za-z]/.test(a)&&(/[a-z]/.test(a)&&/[A-Z]/.test(a)||/^[0-9a-f]+$/i.test(a)||!/[-_.]/.test(a))&&function(a){let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=0;for(let d of b.values()){let b=d/a.length;c-=b*Math.log2(b)}return c}(a)>=3.5)}let lG=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Za-z_][A-Za-z0-9_]*/,lH=RegExp(lG.source,"g"),lI=/^(?:bearer|basic|token)\s+/i;function lJ(a,b,c){let d=a.replace(lI,"");return b.test(d)&&/^[^A-Za-z0-9]*$/.test(d.replace(c,""))}function lK(a){return lJ(a.replace(/\$[$!]/g,"_x"),lG,lH)}let lL=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Z_][A-Z0-9_]*(?![A-Za-z0-9_])/,lM=RegExp(lL.source,"g");function lN(a){return lJ(a,lL,lM)}function lO(a,b){if(!a||""===b)return;a.push(b);let c=lR(b);c!==b&&a.push(c)}let lP=/^([A-Za-z][A-Za-z0-9+.-]*:\/\/)([^/?#]*)/;function lQ(a,b,c){let d=!1,e=a,f="",g=lP.exec(a);if(g){let[h,i,j]=g,k=j.lastIndexOf("@");if(k>=0&&!b(lR(j.slice(0,k)))){f=`${i}${lt}${j.slice(k)}`,d=!0;let a=j.slice(0,k);lO(c,a);let b=a.indexOf(":");b>=0&&lO(c,a.slice(b+1))}else f=h;e=a.slice(h.length)}let h=e.search(/[?#]/),i=h<0?e:e.slice(0,h),j=h<0?"":e.slice(h),k=i.split("/").map(a=>lF(lR(a))?(d=!0,lO(c,a),lt):a).join("/");return j=j.replace(/([?&#;])([^&#;]*)/g,(a,e,f)=>{let g=f.indexOf("=");if(g<0){let g=lR(f);return!lF(g)||b(g)?a:(d=!0,lO(c,f),`${e}${lt}`)}let h=f.slice(0,g),i=lR(f.slice(g+1));return""===i||b(i)||!function(a){let b=a;try{b=decodeURIComponent(a)}catch{}return lA(b,lv)}(h)&&!lF(i)?a:(d=!0,lO(c,f.slice(g+1)),`${e}${h}=${lt}`)}),{value:`${f}${k}${j}`,masked:d}}function lR(a){try{return decodeURIComponent(a)}catch{return a}}let lS=/^(\s*[A-Za-z][A-Za-z0-9 _.-]*=)([\s\S]*)$/;function lT(a,b,c){let d=/^([A-Za-z0-9_-]+):(\s*)([\s\S]*)$/.exec(a);if(d&&""!==d[3]&&!d[3].startsWith("//")&&lB(d[1])){let[,e,f,g]=d;return b(g)?{value:a,masked:!1}:(lO(c,g.trim()),{value:`${e}:${f}${lt}`,masked:!0})}let e=a.includes(";")?function(a,b,c){let d=a.split(";");if(d.length<2||!d.every(a=>""===a.trim()||lS.test(a)))return;let e=!1;return{value:d.map(a=>{let d=lS.exec(a);if(!d)return a;let[,f,g]=d;if(""===g.trim()||b(g))return a;if(lB(f.slice(0,-1).trim()))return e=!0,lO(c,g.trim()),`${f}${lt}`;let h=lT(g,b,c);return e||=h.masked,`${f}${h.value}`}).join(";"),masked:e}}(a,b,c):void 0;if(e)return e;let f=/^([A-Za-z_][A-Za-z0-9_]*)=([\s\S]*)$/.exec(a);if(f&&""!==f[2]&&lB(f[1]))return b(f[2])?{value:a,masked:!1}:(lO(c,f[2]),{value:`${f[1]}=${lt}`,masked:!0});if(/\s/.test(a)){var g,h,i;let d,e;return g=a,h=b,i=c,e=lW((d=g.split(/(\s+)/)).filter((a,b)=>b%2==0),h,!0,i),{value:d.map((a,b)=>b%2==0?e.values[b/2]:a).join(""),masked:e.masked}}if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(a))return lQ(a,b,c);if(f&&""!==f[2]){let a=lT(f[2],b,c);return{value:`${f[1]}=${a.value}`,masked:a.masked}}return lF(a)&&!b(a)?(lO(c,a),{value:lt,masked:!0}):{value:a,masked:!1}}function lU(a){if(ly.has(a))return!0;if(!/^--?[A-Za-z]/.test(a))return!1;let b=a.replace(/^-+/,"");return lB(b)||"auth"===lz(b).at(-1)}let lV=/^(?:bearer|basic|token)$/i;function lW(a,b,c,d){let e=!1,f=!1;return{values:a.map(a=>{if(""===a)return a;if(f){if(c&&lV.test(a))return a;if(f=!1,!/^-[A-Za-z-]/.test(a))return b(a)?a:(e=!0,lO(d,a),lt)}let g=/^(--?[A-Za-z][A-Za-z0-9_.-]*)=([\s\S]*)$/.exec(a);if(g){let[,a,c]=g;if(""!==c&&lU(a)&&!b(c))return e=!0,lO(d,c),`${a}=${lt}`;let f=lT(c,b,d);return e||=f.masked,`${a}=${f.value}`}if(/^--?[A-Za-z][A-Za-z0-9_.-]*$/.test(a))return f=lU(a),a;if(c){let b=/^([A-Za-z0-9_-]+):$/.exec(a);if(lV.test(a)||b&&lB(b[1]))return f=!0,a}let h=lT(a,b,d);return e||=h.masked,h.value}),masked:e}}function lX(a){let{values:b,masked:c}=lW(a,lN,!1);return{args:b,masked:c}}function lY(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function lZ(a){return!a.startsWith("!")&&!lK(a)}function l$(a){return JSON.parse(a.replace(/^\uFEFF/,"").replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,a=>'"'===a[0]?a:"*"===a[1]?" ":"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:"")))}let l_={"empty-input":"error","unrecognized-input":"error","invalid-json":"error","no-servers-found":"error","shell-operator":"error","shell-command-substitution":"error","shell-multiple-commands":"error","shell-unterminated-quote":"error","shell-parameter":"error","shell-expansion":"error","unsupported-url-scheme":"error","github-repo-link":"error","github-mcp-page":"error","github-page":"error","by-name-link":"error","badge-image":"error","install-link-invalid":"error","claude-desktop-import":"error","cli-unsupported":"error","cli-usage":"error","cli-unknown-option":"error","cli-option-needs-value":"error","cli-option-wrong-transport":"error","cli-invalid-pair":"error","cli-not-a-server":"error","pi-help":"error","field-required":"error","field-invalid-option":"error","field-reference-invalid":"error","sse-transport":"error","websocket-transport":"error","unsupported-transport":"error","ambiguous-command-and-url":"error","no-command-or-url":"error","zed-extension-server":"error","registry-packages-unsupported":"error","invalid-config":"error","dropped-key":"warning","variable-unsupported-here":"warning","variable-fallback-dropped":"warning","bare-dollar-literal":"warning","header-env-reference":"warning","client-secret-env-reference":"warning","shell-command-value":"warning","shell-variable":"warning","unsupported-variable":"warning","input-undefined":"warning","input-command-unsupported":"warning","timeout-clamped":"warning","timeout-dropped":"warning","timeout-unit-guessed":"warning","env-null-dropped":"warning","oauth-option-dropped":"warning","oauth-disable-unsupported":"warning","callback-url-dropped":"warning","callback-port-dropped":"warning","invalid-exposure-dropped":"warning","tool-filter-imported":"warning","transport-guessed":"warning","insecure-http":"warning","literal-secret":"warning","cli-option-ignored":"warning","cli-option-as-arg":"warning","cli-extra-arguments":"warning","mcp-remote-bridge":"warning","looks-like-pi-config":"warning","workspace-folder-relative":"warning","home-variable-translated":"warning","name-taken":"warning","escaped-value":"info","variable-translated":"info","home-translated":"info","timeout-converted":"info","env-value-stringified":"info","empty-authorization-dropped":"info","imported-disabled":"info","name-derived":"info","name-sanitized":"info","name-deduplicated":"info","command-split":"info","transport-assumed-http":"info","scheme-assumed":"info","client-secret-prompt":"info","userinfo-moved-to-header":"info"};Object.keys(l_);let l0={dollarBrace:!1,bareDollar:!1,percent:!1,braceEnv:!1},l1={dollarBrace:!0,bareDollar:!1,percent:!0,braceEnv:!0},l2={...l1,bareDollar:!0},l3={...l0,braceEnv:!0},l4=/^[A-Za-z_][A-Za-z0-9_]*$/,l5=/\$\{([^{}]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)|%([A-Za-z_][A-Za-z0-9_]*)%|\{(env|file):([^{}]*)\}/g;function l6(a,b){if(!b)return;let c=a[a.length-1];c?.kind==="text"?c.text+=b:a.push({kind:"text",text:b})}function l7(a,b,c){let d=[],e=0;l5.lastIndex=0;for(let f=l5.exec(a);f;f=l5.exec(a)){let[g,h,i,j,k,l]=f,m=g;if(void 0!==h&&b.dollarBrace)m=function(a,b){let c=/^env:([A-Za-z_][A-Za-z0-9_]*)$/.exec(a);if(c)return{kind:"env",name:c[1],from:b};let d=/^input:(.+)$/.exec(a);if(d)return{kind:"input",id:d[1],from:b};if("userHome"===a)return{kind:"home",from:b};if("workspaceFolder"===a||"workspaceRoot"===a||"CLAUDE_PROJECT_DIR"===a)return{kind:"workspace",from:b};if("workspaceFolderBasename"===a)return{kind:"workspace-basename",from:b};if("pathSeparator"===a||"/"===a)return"/";if("CLAUDE_PLUGIN_ROOT"===a||"CLAUDE_PLUGIN_DATA"===a)return{kind:"unsupported",from:b};if(l4.test(a))return{kind:"env",name:a,from:b};let e=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(a);return e?{kind:"env",name:e[1],from:b,fallback:e[2]}:/^[A-Za-z]+:/.test(a)?{kind:"unsupported",from:b}:b}(h,g);else if(void 0!==i&&b.bareDollar)m={kind:"env",name:i,from:g};else if(void 0!==j&&b.percent&&c)m={kind:"env",name:j,from:g};else if(void 0!==k&&b.braceEnv)m="env"===k&&l4.test(l)?{kind:"env",name:l,from:g}:{kind:"unsupported",from:g};else if(void 0!==j||void 0!==k){l6(d,a.slice(e,f.index+1)),e=f.index+1,l5.lastIndex=f.index+1;continue}l6(d,a.slice(e,f.index)),"string"==typeof m?l6(d,m):d.push(m),e=f.index+g.length}return l6(d,a.slice(e)),d}function l8(a,{atStart:b=!0}={}){let c=a.replace(/\$/g,"$$$$");return b&&c.startsWith("!")?`$${c}`:c}function l9(a){return a.startsWith("!")}function ma(a){if(l9(a))return[];let b=[];for(let c=0;c<a.length;c++){if("$"!==a[c])continue;let d=a[c+1];if("$"===d||"!"===d){c++;continue}if("{"===d){let d=a.indexOf("}",c+2);if(d<0)continue;let e=a.slice(c+2,d);l4.test(e)&&!b.includes(e)&&b.push(e),c=d;continue}let e=/^[A-Za-z_][A-Za-z0-9_]*/.exec(a.slice(c+1));e&&(b.includes(e[0])||b.push(e[0]),c+=e[0].length)}return b}let mb=/<[A-Za-z][^<>\n]{0,80}>|\{\{\s*[A-Za-z_][\w.-]*\s*\}\}|\b[Yy][Oo][Uu][Rr][_-][A-Za-z0-9_.-]*[A-Za-z0-9]|\b[A-Za-z0-9_-]{0,80}[A-Za-z0-9][_-](?:HERE|[Hh]ere)\b|\b(?:REPLACE[_-]?ME|CHANGE[_-]?ME|PLACEHOLDER)\b|\bMY_[A-Z0-9_]*(?:KEY|TOKEN|SECRET|PASSWORD|PAT)\b|\b(?:sk|pk|ghp|gho|github_pat|glpat|xoxb|xoxp)[_-][xX*]{4,}\b|\b[xX]{6,}\b/g,mc=/^(?:\.\.\.|…|\*{3,}|x{3,}|TODO|FIXME|changeme|change[-_]me|replace[-_]?me|placeholder|redacted|\[[^\]]+\])$/i,md=/(?:^|[\\/])(?:path[\\/]to(?:[\\/]|$)|Users[\\/](?:username|yourname|your[-_][A-Za-z_-]+|user[-_]?name|<[^>]+>)(?:[\\/]|$)|home[\\/](?:username|yourname|your[-_][A-Za-z_-]+|<[^>]+>)(?:[\\/]|$))/i,me=/^(Bearer|Basic|Token|Bot|ApiKey|Api-Key)\s+(.+)$/i;function mf(a){return a.join("\0")}function mg(a){return"args"===a[0]?`args[${a[1]}]`:a.join(".")}function mh(a){return"env"===a[0]||"headers"===a[0]||"oauth"===a[0]&&"clientSecret"===a[1]}function mi(a){return"command"===a[0]||"args"===a[0]||"cwd"===a[0]}let mj=new Set(["HOME","USERPROFILE"]);class mk{constructor(a,b){this.source=a,this.rawPi=b,this.args=[],this.env=[],this.headers=[],this.oauth={},this.notes=[]}note(a,b){let c=JSON.stringify([a,b??{}]);this.notes.some(a=>JSON.stringify([a.code,a.params??{}])===c)||this.notes.push(b?{code:a,params:b}:{code:a})}}function ml(a){return a.map(a=>"text"in a?a.text:a.from).join("")}let mm=/\$\{[^{}]*\}/g,mn=new Set(["variable","home","workspace-basename","unsupported-variable","input"]);class mo{constructor(a){this.draft=a,this.fields=new Map,this.argTexts=a.args.map(ml),this.urlText=ml(a.url??[])}encode(a,b){let c,d=mh(a),e=mg(a),f=ml(b),g=[],h=!1,i=()=>g.every(a=>""===a),j=a=>{if(!d)return void g.push(a);let b=/\$([A-Za-z_][A-Za-z0-9_]*)/.exec(a);b&&this.draft.note("bare-dollar-literal",{field:e,name:b[1]});let c=l8(a,{atStart:i()});c!==a&&(h=!0),g.push(c)},k=a=>g.push(a),l=a=>g.push({field:a});if(!d&&mi(a)&&1===b.length&&"text"in b[0]&&md.test(f)){let b="args"===a[0]?/^(?:--?[A-Za-z][A-Za-z0-9_.-]*|[A-Za-z_][A-Za-z0-9_]*)=/.exec(f)?.[0]??"":"",c=f.slice(b.length);if(md.test(c))return b&&k(b),l(this.field(a,"placeholder-path",c,c,"text")),this.target(a,g,void 0)}let m=0;return b.forEach((g,h)=>{let n=b[h+1],o=void 0===n||"text"in n&&/^[\\/]/.test(n.text),p=(b,d,e)=>{let g=0;for(let[j,k]of function(a){let b=a.trim();if(mc.test(b)){let c=a.indexOf(b);return[[c,c+b.length]]}let c=me.exec(b);if(c&&mc.test(c[2].trim())){let b=a.lastIndexOf(c[2].trim());return[[b,b+c[2].trim().length]]}let d=[];mb.lastIndex=0;for(let b=mb.exec(a);b;b=mb.exec(a))/^your[-_]/.test(b[0])&&/[@/]/.test(a[b.index-1]??"")||d.push([b.index,b.index+b[0].length]);return d}(b)){var h,i;if(e.some(([a,b])=>j<b&&k>a))continue;j>g&&d(b.slice(g,j)),"url"===a[0]&&mp(f,m+j)&&(c="uri-component");let n=b.slice(j,k);l(this.field(a,"placeholder",(h=a,i=n,"env"===h[0]||"headers"===h[0]?h[1]:i.replace(/^[<{\s]+|[>}\s]+$/g,"")||mg(h)),n)),g=k}g<b.length&&d(b.slice(g))};switch(g.kind){case"text":p(g.text,j,[]);break;case"pi":{var q;let a=n?(q=g.text,(/\$+$/.exec(q)?.[0].length??0)%2==1?`${q}$`:q):g.text;if(d&&i()&&l9(a)){this.draft.note("shell-command-value",{field:e}),k(a);break}let b=[...a.matchAll(mm)].map(a=>[a.index,a.index+a[0].length]);p(a,k,b);break}case"env":d?(k(`\${${g.name}}`),void 0!==g.fallback&&this.draft.note("variable-fallback-dropped",{field:e,name:g.name,fallback:g.fallback}),g.shell?this.draft.note("shell-variable",{field:e,name:g.name}):g.from!==`\${${g.name}}`&&this.draft.note("variable-translated",{field:e,from:g.from,to:`\${${g.name}}`})):mi(a)&&i()&&mj.has(g.name)&&o?(k("~"),this.draft.note("home-translated",{field:e,from:g.from})):(l(this.field(a,"variable",g.name,g.from,void 0,g.fallback)),this.draft.note(g.shell?"shell-variable":"variable-unsupported-here",{field:e,name:g.name}));break;case"input":l(this.inputField(a,g));break;case"home":d?(k("${HOME}"),this.draft.note("home-variable-translated",{field:e,from:g.from,to:"${HOME}"})):mi(a)&&i()&&o?(k("~"),this.draft.note("home-translated",{field:e,from:g.from})):l(this.field(a,"home","userHome",g.from,"text"));break;case"workspace":"url"===a[0]||"oauth"===a[0]?l(this.field(a,"variable","workspaceFolder",g.from,"text")):(k("."),this.draft.note("workspace-folder-relative",{field:e,from:g.from}));break;case"workspace-basename":l(this.field(a,"workspace-basename","workspaceFolderBasename",g.from,"text"));break;case"unsupported":l(this.field(a,"unsupported-variable",g.from,g.from)),this.draft.note("unsupported-variable",{field:e,variable:g.from});break;case"prompt":"url"===a[0]&&mp(f,m)&&(c="uri-component"),l(this.promptField(a,g))}m+=("text"in g?g.text:g.from).length}),h&&this.draft.note("escaped-value",{field:e}),this.target(a,g,c)}target(a,b,c){let d=b.filter(a=>""!==a);for(let b of new Set(d.flatMap(a=>"string"==typeof a?[]:[a.field]))){let e=this.fields.get(b);e.targets.some(b=>mf(b.path)===mf(a))||e.targets.push({path:a,parts:d,...c?{encoding:c}:{}})}return d.map(a=>"string"==typeof a?a:this.fields.get(a.field).placeholder??"").join("")}field(a,b,c,d,e,f){let g=mn.has(b)?`${b}.${c}`:mg(a);if(mn.has(b)){if(this.fields.has(g))return g}else for(let b=2;this.fields.has(g);b++)g=`${mg(a)}#${b}`;let h=this.isSecretContext(a,d)||lB(c),i="headers"===a[0]&&"authorization"===a[1].toLowerCase();return this.fields.set(g,{id:g,kind:e??(h?"password":"text"),reason:b,label:c,placeholder:d,...void 0!==f?{defaultValue:f}:{},..."placeholder"===b&&i?{optional:!0}:{},targets:[]}),g}inputField(a,b){let c=`input.${b.id}`;if(this.fields.has(c))return c;let d=this.draft.inputs?.get(b.id);d?"command"===d.type&&this.draft.note("input-command-unsupported",{id:b.id}):this.draft.note("input-undefined",{id:b.id});let e=d?.type==="pickString"&&d.options&&d.options.length>0?d.options:void 0,f=d?.password===!0||this.isSecretContext(a,b.from);return this.fields.set(c,{id:c,kind:e?"select":f?"password":"text",reason:"input",label:b.id,placeholder:b.from,...d?.description?{description:d.description}:{},...d?.default!==void 0?{defaultValue:d.default}:{},...e?{options:e}:{},targets:[]}),c}promptField(a,b){return this.fields.has(b.id)||this.fields.set(b.id,{id:b.id,kind:b.options?"select":b.secret||this.isSecretContext(a,b.from)?"password":"text",reason:b.reason,label:b.label,placeholder:b.from,...b.description?{description:b.description}:{},...void 0!==b.defaultValue?{defaultValue:b.defaultValue}:{},...b.options?{options:b.options}:{},...b.optional?{optional:!0}:{},targets:[]}),b.id}isSecretContext(a,b){switch(a[0]){case"env":case"headers":return lB(a[1]);case"oauth":return"clientSecret"===a[1];case"args":{if(lX([this.argTexts[a[1]]??""]).masked)return!0;let b=this.argTexts[a[1]-1];return void 0!==b&&lX([b,"x"]).args[1]===lt}case"url":{var c;let a=this.urlText.indexOf(b),d=a<0?void 0:/[?&]([^=&?#]+)=[^&#]*$/.exec(this.urlText.slice(0,a))?.[1];return void 0!==d&&(c=d,lQ(`https://host.invalid/?${c}=x`,lN).masked)}default:return!1}}}function mp(a,b){let c=a.indexOf("//"),d=a.slice(c<0?0:c+2).search(/[/?#]/);return d>=0&&b>=(c<0?0:c+2)+d}function mq(a,b,c){let d=c?void 0:function(a){let b;try{b=new URL(a)}catch{return}if(""===b.username&&""===b.password)return;let c=a=>{try{return decodeURIComponent(a)}catch{return a}},d=new TextEncoder().encode(`${c(b.username)}:${c(b.password)}`),e="";for(let a of d)e+=String.fromCharCode(a);return b.username="",b.password="",{url:b.toString(),authorization:`Basic ${btoa(e)}`}}(b);if(!d){a.url=[{kind:"text",text:b}];return}a.url=[{kind:"text",text:d.url}],a.headers.push(["Authorization",[{kind:"text",text:d.authorization}]]),a.note("userinfo-moved-to-header")}let mr=/^[A-Za-z0-9_-]+$/;function ms(a,b){let c=new Set(b);if(!c.has(a))return a;for(let b=2;;b++){let d=`${a}-${b}`;if(!c.has(d))return d}}let mt=new Set(["mcp","server","mcp-server","mcpserver","cli","index","main","app","src","dist","build","bin","lib"]);function mu(a){let b=a.trim(),c=b.lastIndexOf("@");c>0&&(b=b.slice(0,c)),b=b.replace(/==.*$|\[.*\]$/,"");let d="",e=/^@([^/]+)\/(.+)$/.exec(b);if(e)d=e[1],b=e[2];else if(b.includes("/")){let a=b.split("/").filter(Boolean);b=a[a.length-1]??b}let f=mw(b);return f&&!mt.has(f.toLowerCase())?f:mw(d)||d||f||b}let mv=[/^mcp[-_]server[-_]/i,/^server[-_]/i,/^mcp[-_]/i,/[-_]mcp[-_]server$/i,/[-_]mcp$/i,/[-_]server$/i];function mw(a){let b=a;for(let a=!0;a;)for(let c of(a=!1,mv)){let d=b.replace(c,"");d!==b&&d&&(b=d,a=!0)}return b}let mx=new Set(["mcp","www","api","app","server","servers","remote","gateway"]);function my(a){let b;try{b=new URL(a).hostname}catch{return""}if("localhost"===b||"127.0.0.1"===b||"[::1]"===b||"::1"===b)return"local";if(/^\d+(?:\.\d+){3}$/.test(b))return"";let c=b.split(".").filter(Boolean);c.length>1&&c.pop(),c.length>1&&/^(?:co|com|org|net|ac|gov)$/.test(c[c.length-1])&&c.pop();let d=c.filter(a=>!mx.has(a.toLowerCase()));return d[d.length-1]??c[c.length-1]??""}let mz=new Set(["-e","--env","--env-file","-v","--volume","-p","--publish","--name","--network","--net","-w","--workdir","-u","--user","--mount","--entrypoint","-l","--label","--platform","--pull","-h","--hostname","--add-host","--cpus","-m","--memory","--restart","--runtime","--cap-add","--cap-drop","--device","--dns","--ipc","--pid","--security-opt","--tmpfs","--ulimit","--log-driver","--log-opt","--gpus"]);function mA(a,b){for(let c=0;c<a.length;c++){let d=a[c];if("--"===d)return a[c+1];if(d.startsWith("-")){!d.includes("=")&&b.has(d)&&c++;continue}return d}}function mB(a){let b=a.split(/[\\/]/).filter(Boolean);for(let a=b.length-1;a>=0;a--){let c=b[a].replace(/\.[A-Za-z0-9]+$/,"");if(!mt.has(c.toLowerCase())&&"."!==c&&".."!==c)return mw(c.replace(/_/g,"-"))||c}return""}function mC(a,b){mD(a,b)&&mE(a,Math.ceil(b/1e3),b)}function mD(a,b){return!!("number"==typeof b&&Number.isFinite(b))&&b>0||(void 0!==b&&a.note("timeout-dropped",{value:String(b)}),!1)}function mE(a,b,c){let d=Math.min(Math.max(b,1),3600);void 0!==c&&a.note("timeout-converted",{from:c,to:d}),d!==b&&a.note("timeout-clamped",{from:b,to:d}),a.timeout=d}let mF=["codemode","deferred","direct","hidden"],mG={"codemode-deferred":"codemode"},mH=["localhost","127.0.0.1","[::1]"];function mI(a){return"string"==typeof a&&mF.includes(a)?a:"string"==typeof a&&Object.hasOwn(mG,a)?mG[a]:void 0}function mJ(a){try{return new URL(a)}catch{return}}function mK(a){let b=mJ(a);return void 0!==b&&"http:"===b.protocol&&mH.includes(b.hostname)&&""===b.search&&""===b.hash}function mL(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function mM(a){return mL(a)&&Object.values(a).every(a=>"string"==typeof a)}function mN(a,b){if(!mr.test(a))return{problem:"name",name:a};if(!mL(b))return{problem:"not-an-object"};let{type:c,exposure:d,enabled:e,timeout:f,toolExposure:g,description:h}=b;if(void 0!==d&&!mI(d))return{problem:"exposure",value:String(d)};if(void 0!==g){if(!mL(g))return{problem:"tool-exposure"};for(let[a,b]of Object.entries(g))if(!mI(b))return{problem:"tool-exposure",tool:a}}if(void 0!==e&&"boolean"!=typeof e)return{problem:"enabled"};if(void 0!==h&&"string"!=typeof h)return{problem:"description"};if(void 0!==f&&("number"!=typeof f||!(f>0)))return{problem:"timeout",value:String(f)};if("sse"===c)return{problem:"sse"};if("string"==typeof b.url&&(void 0===c||"http"===c||"streamable-http"===c)){let a=mJ(b.url);if(!a||!/^https?:$/.test(a.protocol))return{problem:"url",url:b.url};if(void 0!==b.headers&&!mM(b.headers))return{problem:"headers"};let c=function(a){var b;let c;if(void 0===a)return;if(!mL(a))return{problem:"oauth"};if(void 0!==a.clientId&&"string"!=typeof a.clientId)return{problem:"oauth-client-id"};if(void 0!==a.clientSecret&&"string"!=typeof a.clientSecret)return{problem:"oauth-client-secret"};let d=a.callbackPort;if(void 0!==d&&("number"!=typeof d||!Number.isInteger(d)||d<1||d>65535))return{problem:"callback-port",value:String(d)};if(void 0!==a.callbackUrl){if("string"!=typeof a.callbackUrl||!mK(a.callbackUrl))return{problem:"callback-url",value:String(a.callbackUrl)};let b=new URL(a.callbackUrl).port;if(b&&void 0!==d&&Number(b)!==d)return{problem:"callback-port-mismatch",value:b}}if(void 0!==a.scope&&"string"!=typeof a.scope)return{problem:"oauth-scope"};if(void 0!==a.clientName&&("string"!=typeof a.clientName||!a.clientName.trim()))return{problem:"oauth-client-name"};if(void 0!==a.clientRegistration&&"dcr"!==a.clientRegistration){if("cimd"!==a.clientRegistration)return{problem:"oauth-client-registration",value:String(a.clientRegistration)};if(void 0!==a.clientId||void 0!==a.clientName)return{problem:"oauth-client-registration-client"};let b="string"==typeof a.callbackUrl?mJ(a.callbackUrl):void 0;if(b&&("[::1]"===b.hostname||"/callback"!==b.pathname))return{problem:"oauth-client-registration-callback"}}if(void 0!==a.authServerMetadataUrl&&!(void 0!==(c="string"==typeof(b=a.authServerMetadataUrl)?mJ(b):void 0)&&("https:"===c.protocol||"http:"===c.protocol&&mH.includes(c.hostname))))return{problem:"auth-server-metadata-url",value:String(a.authServerMetadataUrl)}}(b.oauth);if(c)return c;let d=b.auth;if(void 0!==d){if(!mL(d)||"string"!=typeof d.provider||!d.provider)return{problem:"auth"};if("https:"!==a.protocol&&!mH.includes(a.hostname))return{problem:"auth-url"}}return}return"string"==typeof b.command&&(void 0===c||"stdio"===c)?void 0===b.args||Array.isArray(b.args)&&b.args.every(a=>"string"==typeof a)?void 0===b.env||mM(b.env)?void 0!==b.cwd&&"string"!=typeof b.cwd?{problem:"cwd"}:void 0:{problem:"env"}:{problem:"args"}:{problem:"no-command-or-url"}}let mO=/[A-Za-z_]/,mP=/[A-Za-z0-9_]/,mQ=/^[A-Za-z_][A-Za-z0-9_]*$/,mR=new Set([..." \n'\"\\$`|&;<>()#*?[]{}!~="]),mS=new Set([..."|&;<>()"]),mT=/[0-9@*#?$!-]/,mU={n:"\n",t:" ",r:"\r",a:"\x07",b:"\b",e:"\x1b",E:"\x1b",f:"\f",v:"\v","\\":"\\","'":"'",'"':'"',"?":"?"};function mV(a,b){let c=b+1;for(;" "===a[c]||" "===a[c];)c++;return"\r"===a[c]&&"\n"===a[c+1]?c+2-b:"\n"===a[c]?c+1-b:0}function mW(a,b){return/^(?:[A-Za-z]:\\|\\\\[A-Za-z0-9.$_-])/.test(a.slice(b,b+4))}class mX{constructor(a){this.input=a,this.index=0,this.words=[],this.windowsWord=!1,this.lineBreak=!1}run(){try{this.scan()}catch(a){if(a instanceof mY)return{ok:!1,error:a.detail};throw a}return{ok:!0,words:this.words}}fail(a){throw new mY(a)}startWord(){return this.parts||(this.lineBreak&&this.fail({code:"multiple-commands"}),this.parts=[],this.windowsWord=mW(this.input,this.index)),this.parts}endWord(){if(!this.parts)return;let a=this.parts.filter(a=>"text"!==a.type||""!==a.value),b=a.length>0?a:this.parts.slice(0,1);this.words.push({parts:b,text:b.map(a=>"text"===a.type?a.value:a.raw).join("")}),this.parts=void 0,this.windowsWord=!1}appendText(a,b){let c=this.startWord(),d=c[c.length-1];d?.type==="text"&&d.quote===b?d.value+=a:c.push({type:"text",value:a,quote:b})}scan(){let{input:a}=this;for(;this.index<a.length;){let b=a[this.index];if(" "===b||" "===b)this.endWord(),this.index++;else if("\r"===b&&"\n"===a[this.index+1])this.index++;else if("\n"===b)this.endWord(),this.words.length>0&&(this.lineBreak=!0),this.index++;else if(("\\"===b||"^"===b||"`"===b)&&mV(a,this.index)>0)this.index+=mV(a,this.index);else if("#"!==b||this.parts)"'"===b?(this.startWord(),this.singleQuoted()):'"'===b?(this.startWord(),this.doubleQuoted()):"$"===b?this.dollar("none"):"`"===b?this.fail({code:"command-substitution",syntax:"`"}):mS.has(b)?this.fail({code:"shell-operator",operator:function(a,b){let c=a.slice(b,b+2);return["||","&&",";;",">>","<<",">&","<&",">|","<(",">(","&>"].includes(c)?c:a[b]}(a,this.index)}):"\\"===b?this.backslash():(this.appendText(b,"none"),this.index++);else for(;this.index<a.length&&"\n"!==a[this.index];)this.index++}this.endWord()}backslash(){let a=this.input[this.index+1];if(this.startWord(),void 0===a||this.windowsWord||!mR.has(a)){this.appendText("\\","none"),this.index++;return}this.appendText(a,"none"),this.index+=2}singleQuoted(){let a=this.input.indexOf("'",this.index+1);a<0&&this.fail({code:"unterminated-quote",quote:"'"}),this.appendText(this.input.slice(this.index+1,a),"single"),this.index=a+1}doubleQuoted(){let{input:a}=this,b=mW(a,this.index+1);for(this.index++,this.appendText("","double");this.index<a.length;){let c=a[this.index];if('"'===c)return void this.index++;if("\\"===c){let c=a[this.index+1];"\n"===c?this.index+=2:"\r"===c&&"\n"===a[this.index+2]?this.index+=3:'"'!==c&&(b||"$"!==c&&"`"!==c&&"\\"!==c)?(this.appendText("\\","double"),this.index++):(this.appendText(c,"double"),this.index+=2)}else"$"===c?this.dollar("double"):"`"===c?this.fail({code:"command-substitution",syntax:"`"}):(this.appendText(c,"double"),this.index++)}this.fail({code:"unterminated-quote",quote:'"'})}ansiQuoted(){let{input:a}=this;this.index+=2;let b="";for(;this.index<a.length;){let c=a[this.index];if("'"===c){this.appendText(b,"ansi"),this.index++;return}if("\\"!==c){b+=c,this.index++;continue}let d=a[this.index+1];if("x"===d&&/^[0-9A-Fa-f]{1,2}/.test(a.slice(this.index+2))){let c=/^[0-9A-Fa-f]{1,2}/.exec(a.slice(this.index+2))[0];b+=String.fromCharCode(parseInt(c,16)),this.index+=2+c.length}else if(("u"===d||"U"===d)&&/^[0-9A-Fa-f]{1,8}/.test(a.slice(this.index+2))){let c=RegExp(`^[0-9A-Fa-f]{1,${"u"===d?4:8}}`).exec(a.slice(this.index+2))[0],e=parseInt(c,16);b+=e>1114111||e>=55296&&e<=57343?a.slice(this.index,this.index+2+c.length):String.fromCodePoint(e),this.index+=2+c.length}else void 0!==d&&d in mU?(b+=mU[d],this.index+=2):(b+="\\",this.index++)}this.fail({code:"unterminated-quote",quote:"'"})}dollar(a){let{input:b}=this,c=b[this.index+1];if("("===c&&this.fail({code:"command-substitution",syntax:"("===b[this.index+2]?"$((":"$("}),"none"===a&&"'"===c){this.startWord(),this.ansiQuoted();return}if("none"===a&&'"'===c){this.startWord(),this.index++,this.doubleQuoted();return}if("{"===c)return void this.braced(a);if(void 0!==c&&mO.test(c)){let c=this.index+1;for(;c<b.length&&mP.test(b[c]);)c++;let d=b.slice(this.index+1,c);this.startWord().push({type:"variable",name:d,raw:`$${d}`,quote:a}),this.index=c;return}void 0!==c&&mT.test(c)&&this.fail({code:"shell-parameter",parameter:`$${c}`}),this.appendText("$",a),this.index++}braced(a){let{input:b}=this,c=b.indexOf("}",this.index+2);c<0&&this.fail({code:"unsupported-expansion",expansion:b.slice(this.index)});let d=b.slice(this.index,c+1),e=d.slice(2,-1);if(/^[0-9@*#?$!-]$/.test(e)&&this.fail({code:"shell-parameter",parameter:d}),mQ.test(e)){this.startWord().push({type:"variable",name:e,raw:d,quote:a}),this.index=c+1;return}let f=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(e);if(f&&!/[$`{}\\'"]/.test(f[2])){this.startWord().push({type:"variable",name:f[1],raw:d,quote:a,fallback:f[2]}),this.index=c+1;return}this.fail({code:"unsupported-expansion",expansion:d})}}class mY extends Error{constructor(a){super(a.code),this.detail=a}}function mZ(a){return new mX(a).run()}function m$(a){return a.parts.every(a=>"text"===a.type)?a.text:void 0}function m_(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let m0=["httpUrl","trust","includeTools","excludeTools","authProviderType","targetAudience","targetServiceAccount","tcp"];function m1(a){if(m0.some(b=>b in a))return!0;let b=a.oauth;return m_(b)&&["redirectUri","authorizationUrl","tokenUrl","audiences","tokenParamName"].some(a=>a in b)}function m2(a){if(!m_(a))return!1;let{command:b,url:c,serverUrl:d,httpUrl:e}=a;return"string"==typeof b&&""!==b||Array.isArray(b)&&"string"==typeof b[0]||m_(b)&&"string"==typeof b.path||"string"==typeof c||"string"==typeof d||"string"==typeof e}function m3(a){switch(a.toLowerCase().replace(/[-_]/g,"")){case"stdio":case"local":return"stdio";case"http":case"streamablehttp":case"remote":return"http";case"sse":return"sse";case"ws":case"wss":case"websocket":return"ws";default:return"unknown"}}function m4(a){try{let b=new URL(a);if(!/\/sse\/?$/.test(b.pathname))return;return b.pathname=b.pathname.replace(/\/sse\/?$/,"/mcp"),b.toString()}catch{return}}function m5(a,b){let c=b?m4(b):void 0;return{code:"sse-transport",params:{...a?{server:a}:{},...b?{url:b}:{},...c?{suggestedUrl:c}:{}}}}function m6(a){return a?{server:a}:{}}function m7(a){return"string"==typeof a?a:"number"==typeof a||"boolean"==typeof a?String(a):void 0}function m8(a,b,c){let d;if(!m_(b))return{note:{code:"no-command-or-url",params:m6(a)}};let e=new Set,f=a=>(e.add(a),b[a]),g=c.rawPi,h=function(a,b){switch(a.flavor){case"zed":return l0;case"opencode":return l3;case"vscode":return l1;default:return m1(b)?l2:l1}}(c,b),i=f("name"),j=a??("string"==typeof i?i:void 0),k=new mk(c.source,g),l=(a,b)=>{if(g)return a?[{kind:"pi",text:a}]:[];return b&&"mcp-servers"===c.flavor&&/^!|\$\$|\$!/.test(a)&&k.note("looks-like-pi-config"),l7(a,h,b)};k.name=j,k.inputs=c.inputs;let m=f("inputs");Array.isArray(m)&&(k.inputs=new Map([...c.inputs??[],...nb(m)]));let n=f("type"),o=f("command"),p=[f("httpUrl"),f("url"),f("serverUrl")].find(a=>"string"==typeof a);if("tcp"in b)return{note:{code:"websocket-transport",params:m6(j)}};if(void 0!==n&&"unknown"===(d="string"==typeof n?m3(n):"unknown"))return{note:{code:"unsupported-transport",params:{...m6(j),type:String(n)}}};let q="string"==typeof o&&""!==o||Array.isArray(o)||m_(o),r=void 0!==p;if("sse"===d)return{note:m5(j,p)};if("ws"===d)return{note:{code:"websocket-transport",params:{...m6(j),...p?{url:p}:{}}}};if(void 0===d){if(q&&r)return{note:{code:"ambiguous-command-and-url",params:m6(j)}};if(r){if(void 0!==m4(p))return{note:m5(j,p)};d="http","mcp-servers"===c.flavor&&"string"==typeof b.url&&"string"!=typeof b.httpUrl&&k.note("transport-guessed")}else{if(!q)return{note:{code:"no-command-or-url",params:m6(j)}};d="stdio"}}if("stdio"!==d&&"http"!==d)return{note:{code:"unsupported-transport",params:{...m6(j),type:String(n)}}};if("stdio"===d&&!q||"http"===d&&!r)return{note:{code:"no-command-or-url",params:m6(j)}};if(k.transport=d,"stdio"===d){let a=function(a,b,c,d,e,f){let g,h=d("args"),i=d("opencode"===f.flavor?"environment":"env");if("opencode"===f.flavor&&void 0===i&&(i=d("env")),Array.isArray(c)){if(!c.every(a=>"string"==typeof a)||0===c.length)return{code:"invalid-config",params:{...m6(a.name),problem:"args"}};g=c[0],h=[...c.slice(1),...Array.isArray(h)?h:[]]}else if(m_(c))for(let b of(g="string"==typeof c.path?c.path:void 0,void 0===h&&(h=c.args),void 0===i&&(i=c.env),Object.keys(c)))["path","args","env"].includes(b)||a.note("dropped-key",{key:`command.${b}`});else"string"==typeof c&&(g=c);if(!g)return{code:"no-command-or-url",params:m6(a.name)};let j=Array.isArray(h)?[...h]:[];if(void 0!==h&&!Array.isArray(h))return{code:"invalid-config",params:{...m6(a.name),problem:"args"}};if(0===j.length&&/\s/.test(g.trim())&&!/^(?:[A-Za-z]:[\\/]|[\\/]|~[\\/]|\.{1,2}[\\/])/.test(g.trim())){let b=mZ(g.trim()),c=b.ok?b.words.map(m$):void 0;c&&c.length>1&&c.every(a=>void 0!==a)&&(a.note("command-split",{command:g}),g=c[0],j.push(...c.slice(1)))}for(let[b,c]of(a.command=e(g,!1),j.entries())){let d=m7(c);if(void 0===d)return{code:"invalid-config",params:{...m6(a.name),problem:"args",index:b}};a.args.push(e(d,!1))}if(void 0!==i){if(!m_(i))return{code:"invalid-config",params:{...m6(a.name),problem:"env"}};for(let[b,c]of Object.entries(i)){if(null===c){a.note("env-null-dropped",{name:b});continue}let d=m7(c);if(void 0===d){a.note("dropped-key",{key:`env.${b}`});continue}if("string"!=typeof c&&a.note("env-value-stringified",{name:b}),""===d&&lB(b)){a.env.push([b,[{kind:"prompt",id:`env.${b}`,reason:"empty",label:b,from:"",secret:!0}]]);continue}a.env.push([b,e(d,!0)])}}let k=d("cwd");for(let c of("string"==typeof k&&""!==k?a.cwd=e(k,!1):void 0!==k&&""!==k&&a.note("dropped-key",{key:"cwd"}),["headers","oauth","auth","url","httpUrl","serverUrl"]))c in b&&(d(c),a.note("dropped-key",{key:c}))}(k,b,o,f,l,c);if(a)return{note:a}}else!function(a,b,c,d,e){let f=d("headers"),g=e(c,!1),h=m_(f)&&Object.keys(f).some(a=>"authorization"===a.toLowerCase());if(1===g.length&&"text"in g[0]?mq(a,c,h):a.url=g,m_(f))for(let[b,c]of Object.entries(f)){let d=m7(c);if(void 0===d){a.note("dropped-key",{key:`headers.${b}`});continue}if(""===d.trim()){"authorization"===b.toLowerCase()?a.note("empty-authorization-dropped"):lB(b)?a.headers.push([b,[{kind:"prompt",id:`headers.${b}`,reason:"empty",label:b,from:"",secret:!0,optional:!0}]]):a.headers.push([b,[]]);continue}a.headers.push([b,e(d,!0)])}else void 0!==f&&a.note("dropped-key",{key:"headers"});let i=d("oauth"),j=d("auth");if(!1===i?a.note("oauth-disable-unsupported"):m_(i)?m9(a,i,e):void 0!==i&&a.note("dropped-key",{key:"oauth"}),m_(j))for(let b of(m9(a,{...void 0!==j.CLIENT_ID?{clientId:j.CLIENT_ID}:{},...void 0!==j.CLIENT_SECRET?{clientSecret:j.CLIENT_SECRET}:{},...void 0!==j.scopes?{scopes:j.scopes}:{}},e,"auth."),Object.keys(j)))["CLIENT_ID","CLIENT_SECRET","scopes"].includes(b)||a.note("oauth-option-dropped",{key:`auth.${b}`});else void 0!==j&&a.note("dropped-key",{key:"auth"});for(let c of["command","args","env","environment","cwd"])c in b&&(d(c),a.note("dropped-key",{key:c}))}(k,b,p,f,l);let s=f("timeout");if(void 0!==s)if(g)"number"==typeof s&&s>0?k.timeout=s:k.note("timeout-dropped",{value:String(s)});else if("opencode"===c.flavor)k.note("timeout-dropped",{value:String(s)});else if(m1(b))mC(k,s);else["autoApprove","alwaysAllow","transportType"].some(a=>a in b)||"streamableHttp"===b.type?mD(k,s)&&mE(k,Math.ceil(s),void 0):!function(a,b){if(!mD(a,b))return;let c=b>=1e3;a.note("timeout-unit-guessed",{value:b,unit:c?"milliseconds":"seconds"}),c?mE(a,Math.ceil(b/1e3),b):mE(a,Math.ceil(b),void 0)}(k,s);let t=f("enabled"),u=f("disabled");!1===t||!0===u?(k.enabled=!1,k.note("imported-disabled")):(void 0!==t&&"boolean"!=typeof t||void 0!==u&&"boolean"!=typeof u)&&k.note("dropped-key",{key:void 0!==t?"enabled":"disabled"});let v=f("exposure");if(void 0!==v){let a=mI(v);a?k.exposure=a:k.note("invalid-exposure-dropped",{value:String(v)})}let w=f("toolExposure");if(void 0!==w){let a=m_(w)?Object.entries(w).map(([a,b])=>[a,mI(b)]):void 0;a?.every(([,a])=>void 0!==a)?k.toolExposure=Object.fromEntries(a):k.note("invalid-exposure-dropped",{value:"toolExposure"})}if(g||void 0===v&&void 0===w||k.note("looks-like-pi-config"),g){let a=f("description");"string"==typeof a?k.description=a:void 0!==a&&k.note("dropped-key",{key:"description"})}for(let a of(na(k,f("includeTools"),f("excludeTools")),Object.keys(b)))e.has(a)||k.note("dropped-key",{key:a});return{draft:k}}function m9(a,b,c,d="oauth."){for(let[e,f]of Object.entries(b))switch(e){case"clientId":"string"==typeof f&&""!==f&&(a.oauth.clientId=c(f,!1));break;case"clientSecret":"string"==typeof f&&""!==f&&(a.oauth.clientSecret=c(f,!0));break;case"callbackPort":"number"==typeof f&&Number.isInteger(f)&&f>=1&&f<=65535?a.oauth.callbackPort=f:a.note("callback-port-dropped",{value:String(f)});break;case"clientName":"string"==typeof f&&f.trim()?a.oauth.clientName=c(f,!1):a.note("oauth-option-dropped",{key:`${d}${e}`});break;case"clientRegistration":"dcr"===f||"cimd"===f?a.oauth.clientRegistration=f:a.note("oauth-option-dropped",{key:`${d}${e}`});break;case"authServerMetadataUrl":"string"==typeof f&&""!==f?a.oauth.authServerMetadataUrl=c(f,!1):a.note("oauth-option-dropped",{key:`${d}${e}`});break;case"callbackUrl":case"redirectUri":"string"==typeof f&&mK(f)?a.oauth.callbackUrl=c(f,!1):a.note("callback-url-dropped",{value:String(f)});break;case"scope":case"scopes":{let b=Array.isArray(f)?f.filter(a=>"string"==typeof a).join(" "):"string"==typeof f?f:"";b&&(a.oauth.scope=c(b,!1));break}case"enabled":!1===f&&a.note("oauth-disable-unsupported");break;default:a.note("oauth-option-dropped",{key:`${d}${e}`})}let{callbackPort:e,callbackUrl:f}=a.oauth;if(void 0!==e&&f){let b=f.map(a=>"text"in a?a.text:"").join(""),c="";try{c=new URL(b).port}catch{}c&&Number(c)!==e&&(a.note("callback-url-dropped",{value:b}),a.oauth.callbackUrl=void 0)}}function na(a,b,c){let d=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a&&""!==a):[],e=d(b),f=d(c);if(0===e.length&&0===f.length)return;let g={...a.toolExposure??{}};if(e.length>0){let b=a.exposure??"codemode";for(let c of(a.exposure="hidden",e))g[c]=b;a.note("tool-filter-imported",{mode:"include",tools:e.join(", ")})}for(let a of f)g[a]="hidden";f.length>0&&a.note("tool-filter-imported",{mode:"exclude",tools:f.join(", ")}),a.toolExposure=g}function nb(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a)m_(c)&&"string"==typeof c.id&&b.set(c.id,{id:c.id,..."string"==typeof c.type?{type:c.type}:{},..."string"==typeof c.description?{description:c.description}:{},...!0===c.password?{password:!0}:{},..."string"==typeof c.default?{default:c.default}:{},...Array.isArray(c.options)?{options:c.options.map(a=>m_(a)?a.value:a).filter(a=>"string"==typeof a)}:{}});return b}function nc(a,b,c,d){let e=[],f=0;for(let g of a.matchAll(/\{([A-Za-z_][A-Za-z0-9_-]*)\}/g)){g.index>f&&e.push({kind:"text",text:a.slice(f,g.index)});let h=m_(b)&&m_(b[g[1]])?b[g[1]]:{};e.push(nd(`${c}${g[1]}`,g[1],g[0],h,d)),f=g.index+g[0].length}return f<a.length&&e.push({kind:"text",text:a.slice(f)}),e}function nd(a,b,c,d,e){let f=Array.isArray(d.choices)?d.choices.filter(a=>"string"==typeof a):[];return{kind:"prompt",id:a,reason:e,label:b,from:c,secret:!0===d.isSecret,..."string"==typeof d.description?{description:d.description}:{},..."string"==typeof d.default?{defaultValue:d.default}:{},...!0===d.isRequired?{}:{optional:"registry-header"===e},...f.length>0?{options:f}:{}}}function ne(a,b,c){let d=[],e="",f=()=>{e&&("pi"===b?d.push({kind:"pi",text:e}):d.push(...l7(e,b,c)),e="")};for(let b of a)"variable"===b.type?(f(),d.push({kind:"env",name:b.name,from:b.raw,shell:!0,...void 0!==b.fallback?{fallback:b.fallback}:{}})):e+=b.value;return f(),d}function nf(a,b){let c="";for(let d=0;d<a.length;d++){let e=a[d];if("variable"===e.type){c+=e.raw;continue}let f=e.value.indexOf(b);if(f<0){c+=e.value;continue}c+=e.value.slice(0,f);let g=e.value.slice(f+b.length);return[c,[...g?[{...e,value:g}]:[],...a.slice(d+1)]]}}let ng=/^https?:\/\//i,nh=/^wss?:\/\//i,ni={"@earendil-works/pi-coding-agent":"pi","@anthropic-ai/claude-code":"claude","@openai/codex":"codex","@google/gemini-cli":"gemini"},nj=new Set(["pi","claude","codex","gemini"]),nk=new Set(["install","remove","uninstall","update","list","config"]);function nl(a){return"error"in a?{error:a.error}:{entries:[a],notes:[]}}let nm={local:"flag",url:"value",env:"list",cwd:"value",header:"list","bearer-token-env-var":"value","oauth-client-id":"value","oauth-client-secret":"value","oauth-callback-port":"value","oauth-client-name":"value",exposure:"value",description:"value"},nn=new Map([["-l","--local"]]),no=["header","bearer-token-env-var","oauth-client-id","oauth-client-secret","oauth-callback-port","oauth-client-name"],np=["env","cwd"];function nq(a,b,c,d){let e={positional:[],afterDashDash:[],values:new Map,lists:new Map,seen:new Map};for(let f=0;f<b.length;f++){let g=b[f],h=g.text;if("--"===h){e.afterDashDash.push(...b.slice(f+1));break}if(void 0!==d.stopAfter&&e.positional.length>=d.stopAfter){e.positional.push(...b.slice(f));break}if(!h.startsWith("-")||"-"===h){e.positional.push(g);continue}let i=h.startsWith("--")?h.indexOf("="):-1,j=i>0?h.slice(0,i):h,k=c[j];if(!k){if(e.positional.length>=d.asArgAfter){e.positional.push(g),e.seen.set(`as-arg:${j}`,j);continue}return{error:{code:"cli-unknown-option",params:{cli:a,option:j}}}}if(e.seen.set(k.name,j),"flag"===k.kind){e.values.set(k.name,!0);continue}let l=i>0?nr(g,i+1):void 0;if("value"===k.kind||"list"===k.kind){let c=l??b[++f];if(void 0===c)return{error:{code:"cli-option-needs-value",params:{cli:a,option:j}}};"value"===k.kind?e.values.set(k.name,c):e.lists.set(k.name,[...e.lists.get(k.name)??[],c]);continue}let m=l?[l]:[];if(!l)for(;f+1<b.length&&d.variadic(k.name,b[f+1]);)m.push(b[++f]);if(0===m.length)return{error:{code:"cli-option-needs-value",params:{cli:a,option:j}}};e.lists.set(k.name,[...e.lists.get(k.name)??[],...m])}return e}function nr(a,b){let c=0,d=[];for(let e of a.parts){let a="text"===e.type?e.value.length:e.raw.length;c>=b?d.push(e):c+a>b&&"text"===e.type&&d.push({...e,value:e.value.slice(b-c)}),c+=a}return{parts:d,text:a.text.slice(b)}}let ns=/^[A-Za-z_][A-Za-z0-9_]*=/,nt=/^[^\s:]+:/;function nu(a,b,c,d){for(let e of b??[]){let b=nf(e.parts,"=");if(!b||!/^[A-Za-z_][A-Za-z0-9_]*$/.test(b[0]))return{code:"cli-invalid-pair",params:{cli:d,option:"--env",value:e.text}};a.env.push([b[0],ne(b[1],c,!0)])}}function nv(a,b,c,d){for(let e of b??[]){let b=nf(e.parts,":"),f=b?.[0].trim();if(!b||!f)return{code:"cli-invalid-pair",params:{cli:d,option:"--header",value:e.text}};let g=function(a){let b=a.map(a=>({...a})),c=b[0];c?.type==="text"&&(c.value=c.value.replace(/^\s+/,""));let d=b[b.length-1];return d?.type==="text"&&(d.value=d.value.replace(/\s+$/,"")),b}(b[1]);if("authorization"===f.toLowerCase()&&g.every(a=>"text"===a.type&&""===a.value)){a.note("empty-authorization-dropped");continue}a.headers.push([f,ne(g,c,!0)])}}function nw(a){if(void 0!==a&&!0!==a){if("user"===a.text)return"global";if("project"===a.text)return"project"}}function nx(a,b,c,d,e){let f,[g,h,...i]=d;if(!g||!h)return{code:"cli-usage",params:{cli:b}};a.name=g.text;let j=void 0===c||!0===c?void 0:c.text.toLowerCase();if(void 0===j){if("http"==(f=ng.test(h.text)?"http":nh.test(h.text)?"ws":"stdio")&&void 0!==m4(h.text))return m5(g.text,h.text);"http"===f&&"gemini"===b&&a.note("transport-assumed-http")}else f="streamable-http"===j?"http":j;return"sse"===f?m5(g.text,h.text):"ws"===f?{code:"websocket-transport",params:{server:g.text,url:h.text}}:"http"===f?(a.transport="http",a.url=ne(h.parts,e,!1),i.length>0&&a.note("cli-extra-arguments",{cli:b,arguments:i.map(a=>a.text).join(" ")}),"http"):"stdio"!==f?{code:"unsupported-transport",params:{server:g.text,type:f}}:(a.transport="stdio",a.command=ne(h.parts,e,!1),a.args=i.map(a=>ne(a.parts,e,!1)),"stdio")}let ny={"-t":{name:"transport",kind:"value"},"--transport":{name:"transport",kind:"value"},"-e":{name:"env",kind:"variadic"},"--env":{name:"env",kind:"variadic"},"-H":{name:"header",kind:"variadic"},"--header":{name:"header",kind:"variadic"},"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"--client-id":{name:"client-id",kind:"value"},"--client-secret":{name:"client-secret",kind:"flag"},"--callback-port":{name:"callback-port",kind:"value"},"--no-browser":{name:"no-browser",kind:"flag"}};function nz(a,b){return"env"===a?ns.test(b.text):nt.test(b.text)&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(b.text)}function nA(a){a.oauth.clientSecret=[{kind:"prompt",id:"oauth.clientSecret",reason:"client-secret",label:"clientSecret",from:"",secret:!0}],a.note("client-secret-prompt")}let nB={"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"--client-secret":{name:"client-secret",kind:"flag"}};function nC(a){let b,c=m$(a)??a.text;try{b=l$(c)}catch(a){return{error:{code:"invalid-json",params:{detail:a instanceof Error?a.message:String(a)}}}}return m_(b)?{value:b}:{error:{code:"no-servers-found"}}}let nD={"--env":{name:"env",kind:"list"},"--url":{name:"url",kind:"value"},"--bearer-token-env-var":{name:"bearer-token-env-var",kind:"value"},"--oauth-client-id":{name:"oauth-client-id",kind:"value"},"--oauth-resource":{name:"oauth-resource",kind:"value"},"-c":{name:"config",kind:"value"},"--config":{name:"config",kind:"value"},"--enable":{name:"enable",kind:"value"},"--disable":{name:"disable",kind:"value"}},nE={"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"-t":{name:"transport",kind:"value"},"--transport":{name:"transport",kind:"value"},"--type":{name:"transport",kind:"value"},"-e":{name:"env",kind:"list"},"--env":{name:"env",kind:"list"},"-H":{name:"header",kind:"list"},"--header":{name:"header",kind:"list"},"--timeout":{name:"timeout",kind:"value"},"--trust":{name:"trust",kind:"flag"},"--description":{name:"description",kind:"value"},"--include-tools":{name:"include-tools",kind:"value"},"--includeTools":{name:"include-tools",kind:"value"},"--exclude-tools":{name:"exclude-tools",kind:"value"},"--excludeTools":{name:"exclude-tools",kind:"value"}};function nF(a){let b=new Map;for(let c of a.replace(/^\?/,"").split("&")){if(!c)continue;let a=c.indexOf("="),d=a<0?c:c.slice(0,a),e=a<0?"":c.slice(a+1);b.set(nG(d),nG(e))}return b}function nG(a){try{return decodeURIComponent(a)}catch{return a}}function nH(a){let b=a.trim();for(let a=0;a<4;a++)try{return l$(b)}catch{let a=nG(b);if(a===b)break;b=a.trim()}}function nI(a){return{error:{code:"install-link-invalid",params:{detail:a}}}}function nJ(a){let b=a.get("config");if(!b)return nI("config");let c=b.trim().startsWith("{")?b:function(a){let b=a.trim().replace(/ /g,"+").replace(/-/g,"+").replace(/_/g,"/").replace(/=+$/,"");if(/^[A-Za-z0-9+/]+$/.test(b)&&b.length%4!=1){b+="=".repeat((4-b.length%4)%4);try{let a=atob(b),c=Uint8Array.from(a,a=>a.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(c)}catch{return}}}(b),d=void 0===c?void 0:nH(c);return m_(d)?{entries:[m8(a.get("name")||void 0,d,{source:"cursor-install-link",flavor:"mcp-servers",rawPi:!1})],notes:[]}:nI("config")}function nK(a,b,c,d){return m_(a)?{entries:[m8(c,a,{source:b,flavor:"vscode",rawPi:!1,inputs:nb(d)})],notes:[]}:nI("config")}function nL(a){return{error:{code:"by-name-link",params:{name:a}}}}function nM(a){let b=a.indexOf("?");return b<0?"":a.slice(b+1)}function nN(a,b=0){let c,d=a.replace(/&/g,"&");try{c=new URL(d)}catch{if(/^https?:\/\/\S+$/i.test(d)&&0===b)return{entries:[nP(void 0,d)],notes:[]};return{error:{code:"unrecognized-input"}}}if(b>3)return nI("nesting");let e=c.protocol.replace(/:$/,"").toLowerCase();switch(e){case"cursor":if(/\/mcp\/install\/?$/.test(c.pathname))return nJ(nF(c.search));return nI("cursor");case"vscode":case"vscode-insiders":case"code-oss":{let a=d.slice(d.indexOf(":")+1).replace(/^\/+/,""),b=/^mcp\/by-name\/([^?#]+)/.exec(a);if(b)return nL(nG(b[1]));if(/^mcp\/api\.mcp\.github\.com\//.test(a))return nL(a.replace(/^mcp\//,""));if(/^mcp\/install\?/.test(a))return nK(nH(nM(d)),"vscode-install-link");return nI(e)}case"vsweb+mcp":return nK(nH(nM(d)),"visual-studio-install-link");case"ghapp":if(/^\/\/mcp\/install/.test(d.slice(d.indexOf(":")+1)))return nK(nH(nM(d)),"copilot-app-install-link");return nI(e);case"ws":case"wss":return{entries:[{note:{code:"websocket-transport",params:{url:d}}}],notes:[]};case"http":case"https":return function(a,b,c){let d=a.hostname.toLowerCase().replace(/^www\./,""),e=a.pathname;if(("cursor.com"===d||"lmstudio.ai"===d)&&/^\/(?:[a-z]{2}(?:-[A-Za-z]{2,4})?\/)?install-mcp\/?$/.test(e))return nJ(nF(a.search));if("vscode.dev"===d||"insiders.vscode.dev"===d){let b=nF(a.search);if(/^\/redirect\/?$/.test(e)&&b.get("url"))return nN(b.get("url"),c+1);if(/^\/redirect\/mcp\/install\/?$/.test(e)){let a=b.get("config");return a?nK(nH(a),"vscode-install-link",b.get("name")||void 0,nH(b.get("inputs")??"[]")):nI("config")}}if("aka.ms"===d&&/^\/vs\/mcp-install\/?$/i.test(e))return nK(nH(a.search.slice(1)),"visual-studio-install-link");if("github.com"===d&&/^\/copilot\/app\/launch\/?$/.test(e)){let b=nF(a.search).get("open");return b?nN(b,c+1):nI("open")}if(/\.(?:svg|png)$/i.test(e)&&("cursor.com"===d||"img.shields.io"===d||d.endsWith("githubusercontent.com")))return{error:{code:"badge-image"}};if("github.com"===d){let a=e.split("/").filter(Boolean);return"mcp"===a[0]&&a.length>=2?{error:{code:"github-mcp-page",params:{name:a.slice(1).join("/")}}}:"mcp"!==a[0]&&a.length>=2?{error:{code:"github-repo-link",params:{repository:`${a[0]}/${a[1]}`}}}:{error:{code:"github-page"}}}return{entries:[nP(a,b)],notes:[]}}(c,d,b);default:return{error:{code:"unsupported-url-scheme",params:{scheme:e}}}}}let nO=new Set(["localhost","127.0.0.1","[::1]"]);function nP(a,b){let c=my(b)||void 0;if(void 0!==m4(b))return{note:m5(c,b)};let d=new mk("url",!1);return d.transport="http",mq(d,b,!1),a?.protocol!=="http:"||nO.has(a.hostname)||d.note("insecure-http",{host:a.hostname}),{draft:d}}let nQ=/[\u200B-\u200D\u2060\uFEFF]/g,nR=/^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:[/?#]\S*)?$/i,nS={"unterminated-quote":"shell-unterminated-quote","shell-operator":"shell-operator","command-substitution":"shell-command-substitution","multiple-commands":"shell-multiple-commands","shell-parameter":"shell-parameter","unsupported-expansion":"shell-expansion"};function nT(a){return new Set(a.fields.flatMap(a=>a.targets.map(a=>mf(a.path))))}function nU(a,b={}){var c;let d,e,f,g,h=(e=a.replace(nQ,"").replace(/\u00A0/g," ").trim(),(f=/```[^\n]*\n([\s\S]*?)(?:```|$)/.exec(e))?e=f[1].trim():/^`[^`\n]+`$/.test(e)&&(e=e.slice(1,-1).trim()),(g=e.startsWith("[")?/\]\(([^()\s]+)\)\s*$/.exec(e):null)&&(e=g[1]),/^<\S+>$/.test(e)&&(e=e.slice(1,-1)),e);if(!h)return{ok:!1,notes:[{code:"empty-input"}]};if(h.startsWith("{")||h.startsWith("[")||/^"[^"\n]+"\s*:/.test(h))d=function(a,b){let c;try{c=l$(a)}catch(b){try{c=l$(`{${a.replace(/,\s*$/,"")}}`)}catch{return{error:{code:"invalid-json",params:{detail:b instanceof Error?b.message:String(b)}}}}}return function(a,b){let c=[],d=(a,b)=>Object.entries(a).map(([a,c])=>m8(a,c,b));if(Array.isArray(a)){let d=a.filter(m2);return 0===d.length?{error:{code:"no-servers-found"}}:{entries:d.map(a=>m8(void 0,a,{source:"server-object",flavor:"mcp-servers",rawPi:b})),notes:c}}if(!m_(a))return{error:{code:"no-servers-found"}};let e=m_(a.server)&&(Array.isArray(a.server.remotes)||Array.isArray(a.server.packages))?a.server:Array.isArray(a.remotes)||Array.isArray(a.packages)?a:void 0;if(e)return{entries:function(a){let b="string"==typeof a.name?a.name:"",c=b?mu(b.split("/").pop()??b):void 0,d=Array.isArray(a.remotes)?a.remotes.filter(m_):[],e=d.filter(a=>"string"==typeof a.type&&"http"===m3(a.type)&&"string"==typeof a.url);if(0===e.length){let a=d.find(a=>"sse"===a.type);return a?[{note:m5(c,"string"==typeof a.url?a.url:void 0)}]:[{note:{code:"registry-packages-unsupported",params:m6(c)}}]}return e.map(a=>{let d=new mk("registry-server-json",!1);for(let e of(d.name=c,b&&c!==b&&(d.originalName=b),d.transport="http",d.url=nc(a.url,a.variables,"url.","registry-variable"),Array.isArray(a.headers)?a.headers.filter(m_):[])){if("string"!=typeof e.name||""===e.name)continue;let a=e.name;"string"==typeof e.value&&""!==e.value?d.headers.push([a,nc(e.value,e.variables,`headers.${a}.`,"registry-header")]):d.headers.push([a,[nd(`headers.${a}`,a,"",e,"registry-header")]])}return{draft:d}})}(e),notes:c};if(m_(a.mcpServers))return"boolean"!=typeof a.autoEnableCodemode||b||c.push({code:"looks-like-pi-config"}),{entries:d(a.mcpServers,{source:"mcp-servers-json",flavor:"mcp-servers",rawPi:b}),notes:c};if(m_(a.servers)){let b=nb(a.inputs);return{entries:d(a.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:b}),notes:c}}if(m_(a.mcp)){let b=a.mcp;if(m_(b.servers)){let a=nb(b.inputs);return{entries:d(b.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:a}),notes:c}}return{entries:d(b,{source:"opencode-json",flavor:"opencode",rawPi:!1}),notes:c}}if(m_(a.context_servers))return{entries:Object.entries(a.context_servers).map(([a,b])=>{let c;return m_(b)&&("extension"===b.source||!m2(b))?{note:{code:"zed-extension-server",params:{server:a}}}:m8(a,m_(b)?(c={...b},delete c.source,c):b,{source:"zed-json",flavor:"zed",rawPi:!1})}),notes:c};if(m2(a))return{entries:[m8(void 0,a,{source:"server-object",flavor:"mcp-servers",rawPi:b})],notes:c};let f=Object.values(a);return f.length>0&&f.every(m_)&&f.some(m2)?{entries:d(a,{source:"server-map",flavor:"mcp-servers",rawPi:b}),notes:c}:{error:{code:"no-servers-found"}}}(c,b)}(h,!0===b.rawPi);else if(nR.test(h)){if(!("error"in(d=nN(`http://${h}`))))for(let a of d.entries)"draft"in a&&a.draft.note("scheme-assumed",{url:`http://${h}`})}else{let a;d=!/\s/.test(h)&&/^[A-Za-z][A-Za-z0-9+.-]+:/.test(h)?nN(h):(a=mZ(h.replace(/^(?:\$|%|>|❯|PS [^\n>]*>)[ \t]+/,"").replace(/[\u201C\u201D\u201E\u201F\u2033]/g,'"').replace(/[\u2018\u2019\u201A\u201B\u2032]/g,"'").replace(/(^|\s)[\u2013\u2014](?=\S)/g,"$1--").replace(/(^|\s)[\u2013\u2014](?=\s|$)/g,"$1--"))).ok?0===a.words.length?{error:{code:"empty-input"}}:function(a){var b;let c=0,d=(b=a[0],(b?.text.split(/[\\/]/).pop()??"").replace(/\.(?:cmd|exe|ps1)$/i,"").toLowerCase());if(["npx","bunx","pnpx"].includes(d)){let b=1;for(;a[b]?.text.startsWith("-");)b++;let e=a[b]?.text.replace(/^(@?[^@]+)@.*$/,"$1");e&&ni[e]&&a[b+1]?.text==="mcp"&&(c=b,d=ni[e])}let e=a.slice(c+1);if(e[0]?.text==="mcp"&&e.length>=2){let a=e[1].text,b=e.slice(2);if("pi"===d&&"add"===a)return nl(function(a,b){if(b.some(a=>"--help"===a.text||"-h"===a.text))return{error:{code:"pi-help"}};let c=[],d=new Map,e=new Map;for(let b=0;b<a.length;b++){let f=nn.get(a[b].text)??a[b].text;if("--"===f||c.length>=2){c.push(...a.slice("--"===f?b+1:b));break}if(!f.startsWith("--")){c.push(a[b]);continue}let g=f.slice(2),h=nm[g];if(!h)return{error:{code:"cli-unknown-option",params:{cli:"pi",option:f}}};if("flag"===h){d.set(g,!0);continue}let i=a[++b];if(void 0===i)return{error:{code:"cli-option-needs-value",params:{cli:"pi",option:f}}};"list"===h?e.set(g,[...e.get(g)??[],i]):d.set(g,i)}let[f,...g]=c,h=d.get("url");if(!f||""===f.text||void 0===h==(0===g.length))return{error:{code:"cli-usage",params:{cli:"pi"}}};let i=a=>{let b=d.get(a);return!0===b?void 0:b},j=(void 0===h?no:np).find(a=>d.has(a)||e.has(a));if(j)return{error:{code:"cli-option-wrong-transport",params:{cli:"pi",option:`--${j}`,transport:void 0===h?"stdio":"http"}}};let k=new mk("pi-mcp-add",!0);k.name=f.text,k.scopeHint=d.has("local")?"project":"global";let l=(a,b="=")=>{let c=[];for(let d of e.get(a)??[]){let e=nf(d.parts,b);if(!e||""===e[0])return{error:{code:"cli-invalid-pair",params:{cli:"pi",option:`--${a}`,value:d.text}}};let f=c.findIndex(([a])=>a===e[0]);f>=0?c[f]=e:c.push(e)}return c},m={};if(void 0!==h&&!0!==h){k.transport="http",k.url=ne(h.parts,"pi",!1);let a=l("header");if("error"in a)return a;for(let[b,c]of a)k.headers.push([b,ne(c,"pi",!0)]);let b=i("bearer-token-env-var");if(void 0!==b){let a=["Authorization",[{kind:"pi",text:`Bearer \${${b.text}}`}]],c=k.headers.findIndex(([a])=>"Authorization"===a);c>=0?k.headers[c]=a:k.headers.push(a)}let c=i("oauth-client-id"),d=i("oauth-client-secret"),e=i("oauth-callback-port"),f=i("oauth-client-name");c&&(k.oauth.clientId=ne(c.parts,"pi",!1)),d&&(k.oauth.clientSecret=ne(d.parts,"pi",!0)),e&&(k.oauth.callbackPort=Number(e.text)),f&&(k.oauth.clientName=ne(f.parts,"pi",!1)),m.url=h.parts.some(a=>"variable"===a.type)?"https://placeholder.invalid/":h.text,(e||f)&&(m.oauth={...e?{callbackPort:Number(e.text)}:{},...f?{clientName:f.text}:{}})}else{k.transport="stdio";let a=l("env");if("error"in a)return a;for(let[b,c]of a)k.env.push([b,ne(c,"pi",!0)]);let[b,...c]=g;k.command=ne(b.parts,"pi",!1),k.args=c.map(a=>ne(a.parts,"pi",!1));let d=i("cwd");d&&(k.cwd=ne(d.parts,"pi",!1)),m.command=b.text}let n=i("exposure");void 0!==n&&(m.exposure=n.text,k.exposure=mI(n.text)??n.text);let o=i("description");void 0!==o&&(m.description=o.text,k.description=o.text);let p=mN("server",m);return p?{note:{code:"invalid-config",params:{server:f.text,...p}}}:{draft:k}}(b,e.slice(1)));if("claude"===d&&"add"===a)return nl(function(a){let b=nq("claude",a,ny,{asArgAfter:2,variadic:nz});if("error"in b)return{error:b.error};let c=new mk("claude-mcp-add",!1),d=nx(c,"claude",b.values.get("transport"),[...b.positional,...b.afterDashDash],l1);if("string"!=typeof d)return"cli-usage"===d.code?{error:d}:{note:d};for(let[a,d]of b.seen)a.startsWith("as-arg:")&&c.note("cli-option-as-arg",{cli:"claude",option:d});if(c.scopeHint=nw(b.values.get("scope")),"http"===d){var e,f;let a;b.lists.has("env")&&c.note("cli-option-wrong-transport",{cli:"claude",option:"--env",transport:"http"});let d=nv(c,b.lists.get("header"),l1,"claude");if(d)return{error:d};let g=b.values.get("client-id");g&&!0!==g&&(c.oauth.clientId=ne(g.parts,l1,!1)),b.values.has("client-secret")&&nA(c);let h=b.values.get("callback-port");h&&!0!==h&&(e=c,Number.isInteger(a=Number(f=h.text))&&a>=1&&a<=65535?e.oauth.callbackPort=a:e.note("callback-port-dropped",{value:f}))}else{for(let a of["header","client-id","client-secret","callback-port"])(b.lists.has(a)||b.values.has(a))&&c.note("cli-option-wrong-transport",{cli:"claude",option:b.seen.get(a)??`--${a}`,transport:"stdio"});let a=nu(c,b.lists.get("env"),l1,"claude");if(a)return{error:a}}return{draft:c}}(b));if("claude"===d&&"add-json"===a)return nl(function(a){let b=nq("claude",a,nB,{asArgAfter:1/0});if("error"in b)return{error:b.error};let[c,d,...e]=[...b.positional,...b.afterDashDash];if(!c||!d||e.length>0)return{error:{code:"cli-usage",params:{cli:"claude"}}};let f=nC(d);if("error"in f)return f;let g=m8(c.text,f.value,{source:"claude-mcp-add-json",flavor:"mcp-servers",rawPi:!1});return"note"in g||(g.draft.scopeHint=nw(b.values.get("scope")),b.values.has("client-secret")&&"http"===g.draft.transport&&!g.draft.oauth.clientSecret&&nA(g.draft)),g}(b));if("claude"===d&&"add-from-claude-desktop"===a)return{error:{code:"claude-desktop-import"}};if("codex"===d&&"add"===a)return nl(function(a){let b=nq("codex",a,nD,{asArgAfter:1/0,stopAfter:2});if("error"in b)return{error:b.error};let c=b.afterDashDash,d=b.lists.get("env")??[],[e,...f]=b.positional,g=c.length>0?c:f,h=b.values.get("url");if(!e||void 0===h==(0===g.length)||c.length>0&&f.length>0)return{error:{code:"cli-usage",params:{cli:"codex"}}};let i=new mk("codex-mcp-add",!1);for(let a of(i.name=e.text,["config","enable","disable"]))b.values.has(a)&&i.note("cli-option-ignored",{cli:"codex",option:b.seen.get(a)});if(b.values.has("oauth-resource")&&i.note("oauth-option-dropped",{key:"--oauth-resource"}),void 0!==h&&!0!==h){if(d.length>0)return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:"--env",transport:"http"}}};if(void 0!==m4(h.text))return{note:m5(e.text,h.text)};i.transport="http",i.url=ne(h.parts,l0,!1);let a=b.values.get("bearer-token-env-var");a&&!0!==a&&i.headers.push(["Authorization",[{kind:"text",text:"Bearer "},{kind:"env",name:a.text,from:`\${${a.text}}`}]]);let c=b.values.get("oauth-client-id");c&&!0!==c&&(i.oauth.clientId=ne(c.parts,l0,!1))}else{for(let a of["bearer-token-env-var","oauth-client-id","oauth-resource"])if(b.values.has(a))return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:`--${a}`,transport:"stdio"}}};i.transport="stdio";let a=nu(i,d,l0,"codex");if(a)return{error:a};i.command=ne(g[0].parts,l0,!1),i.args=g.slice(1).map(a=>ne(a.parts,l0,!1))}return{draft:i}}(b));if("gemini"===d&&"add"===a)return nl(function(a){let b=nq("gemini",a,nE,{asArgAfter:2});if("error"in b)return{error:b.error};let c=new mk("gemini-mcp-add",!1),d=nx(c,"gemini",b.values.get("transport"),[...b.positional,...b.afterDashDash],l2);if("string"!=typeof d)return"cli-usage"===d.code?{error:d}:{note:d};if(c.scopeHint=nw(b.values.get("scope")),"http"===d){b.lists.has("env")&&c.note("cli-option-wrong-transport",{cli:"gemini",option:"--env",transport:"http"});let a=nv(c,b.lists.get("header"),l2,"gemini");if(a)return{error:a}}else{b.lists.has("header")&&c.note("cli-option-wrong-transport",{cli:"gemini",option:"--header",transport:"stdio"});let a=nu(c,b.lists.get("env"),l2,"gemini");if(a)return{error:a}}let e=b.values.get("timeout");for(let a of(e&&!0!==e&&mC(c,Number(e.text)),["trust","description"]))b.values.has(a)&&c.note("cli-option-ignored",{cli:"gemini",option:`--${a}`});let f=a=>{let c=b.values.get(a);return c&&!0!==c?c.text.split(",").map(a=>a.trim()).filter(Boolean):void 0};return na(c,f("include-tools"),f("exclude-tools")),{draft:c}}(b));if("add"===a||"install"===a)return{error:{code:"cli-unsupported",params:{cli:d}}};if(nj.has(d)&&!a.startsWith("-")&&("claude"!==d||"serve"!==a))return{error:{code:"cli-not-a-server",params:{cli:d,command:`mcp ${a}`}}}}return"pi"===d&&e[0]&&nk.has(e[0].text)?{error:{code:"cli-not-a-server",params:{cli:d,command:e[0].text}}}:["code","code-insiders","codium","cursor"].includes(d)&&a.some(a=>"--add-mcp"===a.text||a.text.startsWith("--add-mcp="))?function(a){let b=[];for(let c=0;c<a.length;c++){let d,e=a[c].text;if("--add-mcp"===e)d=a[++c];else{if(!e.startsWith("--add-mcp="))continue;d=nr(a[c],10)}if(!d)return{error:{code:"cli-option-needs-value",params:{cli:"code",option:"--add-mcp"}}};let f=nC(d);if("error"in f)return f;b.push(m8(void 0,f.value,{source:"vscode-add-mcp",flavor:"vscode",rawPi:!1}))}return{entries:b,notes:[]}}(a.slice(1)):nl(function(a){let b=new mk("command-line",!1);b.transport="stdio";let c=0,d=()=>{for(;c<a.length;c++){let d=function(a){let[b,...c]=a.parts;if(b?.type!=="text"||"none"!==b.quote)return;let d=/^([A-Za-z_][A-Za-z0-9_]*)=/.exec(b.value);if(!d)return;let e=b.value.slice(d[0].length);return{name:d[1],value:[...e?[{...b,value:e}]:[],...c]}}(a[c]);if(!d)break;b.env.push([d.name,ne(d.value,l0,!0)])}};if(d(),a[c]?.text==="env"){if(c++,a[c]?.text.startsWith("-"))return{error:{code:"cli-unknown-option",params:{cli:"env",option:a[c].text}}};d()}let e=a[c];if(!e)return{error:{code:"no-command-or-url"}};b.command=ne(e.parts,l0,!1),b.args=a.slice(c+1).map(a=>ne(a.parts,l0,!1));let f=a.slice(c+1).map(a=>a.text),g=f.some(a=>/^mcp-remote(?:@|$)/.test(a))?f.find(a=>ng.test(a)):void 0;return g&&b.note("mcp-remote-bridge",{url:g}),{draft:b}}(a))}(a.words):{error:function(a){let{code:b,...c}=a;return Object.keys(c).length>0?{code:nS[b],params:c}:{code:nS[b]}}(a.error)}}if("error"in d)return{ok:!1,notes:[d.error]};let i=[...d.notes],j=[],k=[...b.takenNames??[]],l=new Set;for(let a of d.entries){if("note"in a){i.push(a.note);continue}let b=function(a){let b,c=new mo(a);if("stdio"===a.transport&&a.command&&""!==ml(a.command)){let d=c.encode(["command"],a.command),e=a.args.map((a,b)=>c.encode(["args",b],a)),f={};for(let[b,d]of a.env)f[b]=c.encode(["env",b],d);b={command:d,...e.length>0?{args:e}:{},...Object.keys(f).length>0?{env:f}:{},...a.cwd?{cwd:c.encode(["cwd"],a.cwd)}:{}}}else{if("http"!==a.transport||!a.url||""===ml(a.url))return{note:{code:"no-command-or-url",...a.name?{params:{server:a.name}}:{}}};let d=c.encode(["url"],a.url),e={};for(let[b,d]of a.headers)e[b]=c.encode(["headers",b],d);let f={},{clientId:g,clientSecret:h,callbackPort:i,clientName:j,clientRegistration:k,callbackUrl:l,scope:m,authServerMetadataUrl:n}=a.oauth;g&&(f.clientId=c.encode(["oauth","clientId"],g)),h&&(f.clientSecret=c.encode(["oauth","clientSecret"],h)),void 0!==i&&(f.callbackPort=i),j&&(f.clientName=c.encode(["oauth","clientName"],j)),k&&(f.clientRegistration=k),l&&(f.callbackUrl=c.encode(["oauth","callbackUrl"],l)),m&&(f.scope=c.encode(["oauth","scope"],m)),n&&(f.authServerMetadataUrl=c.encode(["oauth","authServerMetadataUrl"],n)),b={url:d,...Object.keys(e).length>0?{headers:e}:{},...Object.keys(f).length>0?{oauth:f}:{}}}return void 0!==a.exposure&&(b.exposure=a.exposure),void 0!==a.toolExposure&&(b.toolExposure=a.toolExposure),!1===a.enabled&&(b.enabled=!1),void 0!==a.timeout&&(b.timeout=a.timeout),void 0!==a.description&&(b.description=a.description),{server:{name:a.name??"",...void 0!==a.originalName?{originalName:a.originalName}:{},config:b,fields:[...c.fields.values()],notes:a.notes,source:a.source,rawPi:a.rawPi,...a.scopeHint?{scopeHint:a.scopeHint}:{}}}}(a.draft);if("note"in b){i.push(b.note);continue}let d=b.server,e=d.name,f=!e;f&&(e=function(a){if("url"in a)return my(a.url);let b=a.args??[],c=b.some(a=>/^mcp-remote(?:@|$)/.test(a))?b.find(a=>/^https?:\/\//i.test(a)):void 0;return c&&my(c)||function(a,b){let c=a.split(/[\\/]/).pop()?.replace(/\.(?:cmd|exe|bat|ps1)$/i,"").toLowerCase()??"";switch(c){case"npx":case"bunx":case"pnpx":{let a=mA(b,new Set(["-p","--package","-c","--call"]));return a?mu(a):""}case"pnpm":case"yarn":case"bun":case"npm":{let a=b.findIndex(a=>"dlx"===a||"exec"===a||"x"===a),c=a>=0?mA(b.slice(a+1),new Set(["-p","--package"])):void 0;return c?mu(c):""}case"uvx":case"pipx":{let a=mA("pipx"===c&&"run"===b[0]?b.slice(1):b,new Set(["--from","--with","--python","-p","--index-url","--spec"]));return a?mu(a):""}case"uv":{let a=b.indexOf("run"),c=a>=0?mA(b.slice(a+1),new Set(["--with","--directory","--python","-p","--from","--project"])):void 0;return c?mB(c):""}case"docker":case"podman":{let a=b.indexOf("run"),c=a>=0?mA(b.slice(a+1),mz):void 0;if(!c)return"";let d=c.split("/").pop().replace(/[:@].*$/,"");return mw(d)||d}case"python":case"python3":case"py":{let a=b.indexOf("-m");if(a>=0&&b[a+1])return mu(b[a+1].replace(/_/g,"-"));let c=mA(b,new Set(["-X","-W"]));return c?mB(c):""}case"node":case"deno":case"tsx":case"ts-node":{let a=mA("deno"===c&&"run"===b[0]?b.slice(1):b,new Set(["-r","--require","--import","--loader"]));return a?mB(a):""}default:return mw(c.replace(/_/g,"-"))||c}}(a.command,b)}(d.config))&&d.notes.push({code:"name-derived",params:{name:e}});let g=(c=e,mr.test(c))?e:e.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^A-Za-z0-9_-]+/g,"-").replace(/-{2,}/g,"-").replace(/^[-_]+|[-_]+$/g,"").slice(0,48).replace(/[-_]+$/g,"")||"server";g!==e&&e&&(d.originalName=d.originalName??e,d.notes.push({code:"name-sanitized",params:{original:e,name:g}}));let h=ms(g,f?[...k,...l]:l);h!==g&&(d.notes.push({code:"name-deduplicated",params:{original:g,name:h}}),g=h),!f&&k.includes(g)&&d.notes.push({code:"name-taken",params:{name:g,suggestedName:ms(g,[...k,...l])}}),d.name=g;let m=mN(g,function(a){let b=nT(a),c=JSON.parse(JSON.stringify(a.config));b.has(mf(["url"]))&&(c.url="https://placeholder.invalid/");let d=c.oauth;return d&&b.has(mf(["oauth","callbackUrl"]))&&delete d.callbackUrl,c}(d));if(m){i.push({code:"invalid-config",params:{server:g,...m}});continue}!function(a){let b=nT(a);for(let c of n0(a.config))b.has(mf(c))||a.notes.push({code:"literal-secret",params:{field:mg(c)}});let c=a.config;if("url"in c){for(let[b,d]of Object.entries(c.headers??{})){let c=ma(d);c.length>0&&a.notes.push({code:"header-env-reference",params:{header:b,names:c.join(", ")}})}let b=ma(c.oauth?.clientSecret??"");b.length>0&&a.notes.push({code:"client-secret-env-reference",params:{names:b.join(", ")}})}}(d),l.add(g),j.push(d)}return 0===j.length?{ok:!1,notes:i.length>0?i:[{code:"no-servers-found"}]}:{ok:!0,servers:j,notes:i}}let nV=/^[A-Za-z_][A-Za-z0-9_]*$/;function nW(a,b,c){let[d,e]=b;if("command"===d||"url"===d||"cwd"===d){void 0!==c&&(a[d]=c);return}if("args"===d){a.args[e]=c??"";return}let f={...a[d]??{}};void 0===c?delete f[e]:f[e]=c,0===Object.keys(f).length?delete a[d]:a[d]=f}function nX(a){let b=nT(a);return n0(a.config).filter(a=>mh(a)&&!b.has(mf(a)))}function nY(a){return"string"==typeof a&&""===a.trim()?"missing":"name"}let nZ=/^(?:bearer|basic|token)\s+/i;function n$(a,b,c={}){let d=JSON.parse(JSON.stringify(a.config)),e=new Map,f=[],g=new Map(nX(a).map(a=>[mg(a),a])),h=[];for(let[a,b]of Object.entries(c)){let c="string"==typeof b?b.trim():"",d=g.get(a);d?nV.test(c)?h.push([d,c]):f.push({code:"field-reference-invalid",params:{field:a,problem:nY(b)}}):f.push({code:"field-reference-invalid",params:{field:a,problem:"target"}})}for(let c of a.fields){let a=b[c.id];if("object"==typeof a&&null!==a){let b=a.reference,d="string"==typeof b?b.trim():"";nV.test(d)?"select"!==c.kind&&c.targets.every(a=>mh(a.path)&&void 0===a.encoding)?e.set(c.id,{reference:d}):f.push({code:"field-reference-invalid",params:{field:c.id,problem:"target"}}):f.push({code:"field-reference-invalid",params:{field:c.id,problem:nY(b)}});continue}let d=("string"==typeof a?a:c.defaultValue??"").trim();""===d?c.optional?e.set(c.id,void 0):f.push({code:"field-required",params:{field:c.id}}):"select"===c.kind&&c.options&&!c.options.includes(d)?f.push({code:"field-invalid-option",params:{field:c.id}}):e.set(c.id,{text:d})}if(f.length>0)return{ok:!1,notes:f};let i=new Set,j=new Set;for(let b of a.fields)for(let a of b.targets){let c=e.get(b.id);"password"===b.kind&&void 0!==c&&"text"in c&&i.add(mg(a.path));let f=mf(a.path);if(j.has(f))continue;if(j.add(f),a.parts.some(a=>"string"!=typeof a&&void 0===e.get(a.field))){nW(d,a.path,void 0);continue}let g="";for(let b of a.parts){var k,l,m,n;g+="string"==typeof b?b:(k=e.get(b.field),l=a.path,m=""===g,n=a.encoding,"reference"in k?`\${${k.reference}}`:"uri-component"===n?encodeURIComponent(k.text):mh(l)?l8(k.text,{atStart:m}):k.text)}nW(d,a.path,g)}for(let[a,b]of h){let c=function(a,b){let[c,d]=b,e=a[c];return void 0===d||"object"!=typeof e||null===e?void 0===d?e:void 0:e[d]}(d,a),e="headers"===a[0]&&"string"==typeof c?c.match(nZ)?.[0]??"":"";nW(d,a,`${e}\${${b}}`)}for(let a of n0(d))i.add(mg(a));return{ok:!0,config:d,secretPaths:[...i]}}let n_=["command","args","env","cwd","url","headers","oauth"];function n0(a){let b=[];for(let c of function(a){if(!lY(a))return[];let b=[];for(let c of["env","headers"]){let d=a[c];if(lY(d))for(let[a,e]of Object.entries(d))"string"==typeof e&&lZ(e)&&""!==e&&(lB(a)||/^(?:bearer|basic|token)\s+\S/i.test(e)||lT(e,lK).masked)&&b.push({kind:"env"===c?"env":"header",name:a})}let c=lY(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&""!==c&&lZ(c)&&b.push({kind:"oauth-client-secret"}),"string"==typeof a.url&&lQ(a.url,lN).masked&&b.push({kind:"url"}),"string"==typeof a.command&&lT(a.command,lN).masked&&b.push({kind:"command"}),Array.isArray(a.args)&&lX(a.args.filter(a=>"string"==typeof a)).masked&&b.push({kind:"args"}),b}(a))switch(c.kind){case"env":b.push(["env",c.name]);break;case"header":b.push(["headers",c.name]);break;case"oauth-client-secret":b.push(["oauth","clientSecret"]);break;case"url":b.push(["url"]);break;case"command":b.push(["command"]);break;case"args":{let c="args"in a&&Array.isArray(a.args)?a.args.map(a=>"string"==typeof a?a:""):[];lX(c).args.forEach((a,d)=>{a!==c[d]&&b.push(["args",d])})}}return b.sort((a,b)=>n_.indexOf(a[0])-n_.indexOf(b[0]))}let n1="PI_WEB_PASSWORD";function n2(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n3(a){return n2(a)?Object.entries(a).filter(a=>"string"==typeof a[1]):[]}function n4(a){if(!n2(a))return[];if(!("url"in a))return n3(a.env).map(([a,b])=>({kind:"env",name:a,value:b}));let b=n3(a.headers).map(([a,b])=>({kind:"header",name:a,value:b})),c=n2(a.oauth)?a.oauth.clientSecret:void 0;return"string"==typeof c&&b.push({kind:"oauth-client-secret",value:c}),b}let n5={text:"",rawPi:!1,server:0,values:{},references:{},secretReferences:{}};function n6(a,b,c){let d=nU(a,{rawPi:b});if(!d.ok)return;let e=d.servers[Math.min(c,d.servers.length-1)],{config:f}=e,g="url"in f?["url",f.url]:["command",f.command,f.args??[]];return JSON.stringify([e.source,e.originalName??e.name,g])}function n7(a,b){let c={...a,...b},d=n6(a.text,a.rawPi,a.server);if(void 0!==d&&d===n6(c.text,c.rawPi,a.server))return c;let e={...c,server:0,values:{},references:{},secretReferences:{}};return delete e.name,e}function n8(a){return l_[a.code]??"warning"}function n9(a,b,c=[]){let d,e=a.params??{},f={};for(let[a,b]of Object.entries(e))f[a]="string"==typeof b?kn(b):b;if("string"==typeof e.field&&a.code.startsWith("field-")){let a=c.find(a=>a.id===e.field);a&&(f.field=kn(a.label))}"invalid-config"===a.code&&(f.problem=b("tool-exposure"===(d=String(e.problem??"no-command-or-url"))&&void 0!==e.tool?"mcp.importProblem.tool-exposure.tool":"args"===d&&void 0!==e.index?"mcp.importProblem.args.index":`mcp.importProblem.${d}`,f)),"cli-option-wrong-transport"===a.code&&("stdio"===e.transport||"http"===e.transport)&&(f.transport=b(`mcp.transport.${e.transport}`));let g=b(function(a){let b=a.params??{};switch(a.code){case"field-reference-invalid":return`mcp.importNote.field-reference-invalid.${"target"===b.problem||"missing"===b.problem?b.problem:"name"}`;case"sse-transport":return void 0===b.suggestedUrl?"mcp.importNote.sse-transport":"mcp.importNote.sse-transport.suggested";case"timeout-unit-guessed":return`mcp.importNote.timeout-unit-guessed.${"milliseconds"===b.unit?"milliseconds":"seconds"}`;case"tool-filter-imported":return`mcp.importNote.tool-filter-imported.${"exclude"===b.mode?"exclude":"include"}`;default:return`mcp.importNote.${a.code}`}}(a),f);return"string"==typeof f.server?b("mcp.importNote.forServer",{server:f.server,note:g}):g}let oa={empty:"mcp.importField.reason.empty",input:"mcp.importField.reason.input",variable:"mcp.importField.reason.variable",home:"mcp.importField.reason.home","workspace-basename":"mcp.importField.reason.workspace-basename","unsupported-variable":"mcp.importField.reason.unsupported-variable","client-secret":"mcp.importField.reason.client-secret","registry-header":"mcp.importField.reason.registry-header","registry-variable":"mcp.importField.reason.registry-variable"},ob={url:"mcp.add.source.url","command-line":"mcp.add.source.command-line","pi-mcp-add":"mcp.add.source.pi-mcp-add","claude-mcp-add":"mcp.add.source.claude-mcp-add","claude-mcp-add-json":"mcp.add.source.claude-mcp-add-json","codex-mcp-add":"mcp.add.source.codex-mcp-add","gemini-mcp-add":"mcp.add.source.gemini-mcp-add","vscode-add-mcp":"mcp.add.source.vscode-add-mcp","mcp-servers-json":"mcp.add.source.mcp-servers-json","vscode-json":"mcp.add.source.vscode-json","zed-json":"mcp.add.source.zed-json","opencode-json":"mcp.add.source.opencode-json","server-object":"mcp.add.source.server-object","server-map":"mcp.add.source.server-map","registry-server-json":"mcp.add.source.registry-server-json","cursor-install-link":"mcp.add.source.cursor-install-link","vscode-install-link":"mcp.add.source.vscode-install-link","visual-studio-install-link":"mcp.add.source.visual-studio-install-link","copilot-app-install-link":"mcp.add.source.copilot-app-install-link"},oc=JSON.stringify({command:"uvx",args:["mcp-server-fetch"]}),od=JSON.stringify({name:"fetch",command:"uvx",args:["mcp-server-fetch"]}),oe=[{source:"url",text:"https://mcp.example.com/mcp"},{source:"command-line",text:"npx -y @modelcontextprotocol/server-everything"},{source:"pi-mcp-add",text:"pi mcp add docs --url https://mcp.example.com/mcp"},{source:"claude-mcp-add",text:"claude mcp add --transport http docs https://mcp.example.com/mcp"},{source:"claude-mcp-add-json",text:'claude mcp add-json docs \'{"type":"http","url":"https://mcp.example.com/mcp"}\''},{source:"codex-mcp-add",text:"codex mcp add fetch -- uvx mcp-server-fetch"},{source:"gemini-mcp-add",text:"gemini mcp add --transport http docs https://mcp.example.com/mcp"},{source:"vscode-add-mcp",text:`code --add-mcp '${od}'`},{source:"mcp-servers-json",text:'{ "mcpServers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } } }'},{source:"vscode-json",text:'{ "servers": { "docs": { "type": "http", "url": "https://mcp.example.com/mcp" } } }'},{source:"zed-json",text:'{ "context_servers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } } }'},{source:"opencode-json",text:'{ "mcp": { "docs": { "type": "remote", "url": "https://mcp.example.com/mcp" } } }'},{source:"server-object",text:'{ "type": "http", "url": "https://mcp.example.com/mcp" }'},{source:"server-map",text:'{ "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } }'},{source:"registry-server-json",text:'{ "name": "com.example/docs", "version": "1.0.0", "remotes": [{ "type": "streamable-http", "url": "https://mcp.example.com/mcp" }] }'},{source:"cursor-install-link",text:`cursor://anysphere.cursor-deeplink/mcp/install?name=fetch&config=${btoa(oc)}`},{source:"vscode-install-link",text:`vscode:mcp/install?${encodeURIComponent(od)}`},{source:"visual-studio-install-link",text:`vsweb+mcp:/install?${encodeURIComponent(od)}`},{source:"copilot-app-install-link",text:`ghapp://mcp/install?${encodeURIComponent(od)}`}];function of(a,b,c,d=!1){if(!(!d&&a.targets.every(({parts:a})=>1===a.length)))return[...new Set(a.targets.map(({parts:d})=>d.map(d=>"string"==typeof d?kn(d):d.field===a.id?c:`‹${kn(b.find(({id:a})=>a===d.field)?.label??d.field)}›`).join("")))].join(", ")}function og(a){return"select"!==a.kind&&a.targets.every(a=>mh(a.path)&&void 0===a.encoding)}let oh=/^[A-Za-z_][A-Za-z0-9_]*$/;function oi(...a){let b=a.map(a=>a.replace(/[^A-Za-z0-9]+/g,"_")).join("_").replace(/_+/g,"_").replace(/^_|_$/g,"").toUpperCase();return oh.test(b)?b:void 0}let oj=/^(?:proxy-)?authorization$/i;function ok(a,b){let c=function(a,b){if(a.startsWith("env.")){let b=a.slice(4);return oh.test(b)?b:oi(b)}let c=(...a)=>oi(b,...a)??oi(...a);if(a.startsWith("headers.")){let b=a.slice(8);return c(oj.test(b)?"TOKEN":b.replace(/^x-/i,""))}if("oauth.clientSecret"===a)return c("CLIENT_SECRET")}(a,b);return c===n1?void 0:c}function ol(a){return a.startsWith("env.")||a.startsWith("headers.")||"oauth.clientSecret"===a}function om(a,b){let c=a;for(let a of b)c=c.split(a).join(lt);return{text:c,masked:c!==a}}function on({kind:a,name:b}){return void 0===b?{kind:a}:{kind:a,name:b}}function oo(a,b){let c=b.files.find(b=>b.scope===a),d=c?.problems.find(kR);return c&&d?{kind:"file-problem",path:c.path,reason:d.reason}:void 0}function op(a,b){return a.servers.filter(a=>a.scope===b).map(a=>a.name)}function oq(a,b,c){return{action:"add",text:a.text,values:b.values,...Object.keys(b.secretReferences).length>0?{secretReferences:{...b.secretReferences}}:{},server:b.server&&b.parsed.ok?b.parsed.servers.indexOf(b.server):0,name:b.name,scope:b.scope,rawPi:a.rawPi,...b.trustFolder?{trustFolder:!0}:{},...c&&c.length>0?{confirmHostEnv:[...c]}:{}}}function or(a,b,c){switch(a.kind){case"trust-too-broad":return b(ot[a.breadth.kind],{path:c(a.breadth.path)});case"secret":return b(a.fixed?"mcp.add.projectBlocked.secretFixed":"mcp.add.projectBlocked.secret",{fields:a.fields.join(", ")});case"file-problem":return b("mcp.add.projectBlocked.file-problem",{path:c(a.path),reason:b(`mcp.fileProblem.${a.reason}`)});default:return b(os[a.kind])}}let os={"no-project":"mcp.add.projectBlocked.no-project","project-not-listed":"mcp.add.projectBlocked.project-not-listed","trust-unreadable":"mcp.add.projectBlocked.trust-unreadable","project-untrusted":"mcp.add.projectBlocked.project-untrusted","untrusted-decision":"mcp.add.projectBlocked.untrusted-decision","folder-not-fresh":"mcp.add.projectBlocked.folder-not-fresh"},ot={home:"mcp.add.projectBlocked.trust-too-broad.home",root:"mcp.add.projectBlocked.trust-too-broad.root","contains-home":"mcp.add.projectBlocked.trust-too-broad.contains-home","contains-agent-dir":"mcp.add.projectBlocked.trust-too-broad.contains-agent-dir","contains-folder":"mcp.add.projectBlocked.trust-too-broad.contains-folder","contains-project":"mcp.add.projectBlocked.trust-too-broad.contains-project","too-many-folders":"mcp.add.projectBlocked.trust-too-broad.too-many-folders"};function ou(a){return kn(jL(a))}function ov(a,b){return b("project"===a?"skills.scope.project":"skills.scope.global")}let ow=[{href:"https://glama.ai/mcp/servers",label:"glama.ai"},{href:"https://smithery.ai/servers",label:"smithery.ai"},{href:"https://mcp.so/",label:"mcp.so"},{href:"https://registry.modelcontextprotocol.io/",label:"MCP Registry"},{href:"https://github.com/mcp",label:"github.com/mcp"}],ox=new Set(["name-derived","name-sanitized","name-deduplicated","name-taken"]);function oy({notes:a,fields:b=[]}){let{t:c}=(0,aG.s)();if(0===a.length)return null;let d={error:0,warning:1,info:2},e=[...a].sort((a,b)=>d[n8(a)]-d[n8(b)]);return(0,p.jsx)("ul",{className:"mcp-add-notes",children:e.map((a,d)=>(0,p.jsx)("li",{className:`mcp-add-note is-${n8(a)}`,children:n9(a,c,b)},`${d}\0${a.code}`))})}let oz={"server-invalid":"mcp.add.refused.server-invalid","web-password":"mcp.add.blocked.web-password"};function oA({data:a,cwd:b,draft:c,busy:d,controlsBusy:e,failure:f,onDraftChange:g,onSubmit:h,onTrustProject:i}){let{t:j}=(0,aG.s)(),k=(0,q.useId)(),l=(0,q.useId)(),m=(0,q.useMemo)(()=>(function a(b,c,d){let e,f=function(a,b){let c=a=>({kind:"blocked",block:a});if(!b)return c({kind:"no-project"});let d=a.project;if(!d)return c({kind:"project-not-listed"});let e=d.trust;if(!e||void 0!==e.decisionError)return c({kind:"trust-unreadable"});if(!0===e.decision)return{kind:"write"};if(!1===e.decision)return c({kind:"untrusted-decision"});if(e.requiresTrust)return c({kind:"project-untrusted",trustable:kV(d)});let f=d.trustFolder;return f?f.allowed?{kind:"trust-and-write",folder:d.cwd}:c("trust-too-broad"===f.reason?{kind:"trust-too-broad",breadth:f.breadth}:{kind:"folder-not-fresh"}):c({kind:"project-untrusted",trustable:!1})}(c,d),g=a=>nU(b.text,{rawPi:b.rawPi,takenNames:op(c,a)}),h=g(b.scope??"global"),i=h.ok?h.servers[Math.min(b.server,h.servers.length-1)]:void 0,j=b.scope??(i?.scopeHint==="project"&&"write"===f.kind?"project":"global");j!==(b.scope??"global")&&(i=(h=g(j)).ok?h.servers[Math.min(b.server,h.servers.length-1)]:void 0);let k={parsed:h,name:b.name??"",scope:j,projectMode:f,..."blocked"===f.kind?{projectBlock:f.block}:{},values:{},pasteSecrets:[],secretReferences:{},fieldProblems:{},secretPaths:[],trustFolder:!1},l=ld(c.mcp);if(!i)return{...k,submitBlock:{kind:l?"mcp-off":"nothing"}};let m=b.name??i.name,n=function(a,b){let c={};for(let d of a.fields){let a=b.references[d.id];void 0!==a&&og(d)?c[d.id]={reference:a}:void 0!==b.values[d.id]&&(c[d.id]=b.values[d.id])}return c}(i,b),o=nX(i).map(mg),p=Object.fromEntries(o.flatMap(a=>{let c=b.secretReferences[a];return void 0===c?[]:[[a,c]]})),q=n$(i,n,p),r={};if(!q.ok)for(let a of q.notes){let b=a.params?.field;"field-required"===a.code||"string"!=typeof b||b in r||(r[b]=a)}let s=function(a,b,c={}){let d={};for(let c of a.fields){let a=b[c.id];"object"==typeof a?d[c.id]=oh.test(a.reference.trim())?a:{reference:"VALUE"}:void 0!==a&&""!==a.trim()?d[c.id]=a:void 0!==c.defaultValue?d[c.id]=c.defaultValue:c.optional?d[c.id]=void 0:d[c.id]="select"===c.kind?c.options?.[0]??"x":"x"}let e=n$(a,d,Object.fromEntries(Object.entries(c).map(([a,b])=>[a,oh.test(b.trim())?b:"VALUE"])));return e.ok?e.secretPaths:[]}(i,n,p),t=function(a,b,c){let d=c?.ok?c.config:a.config,e=c?.ok?function(a,b){let c=new Set;for(let d of a.fields){let a=b[d.id];if("password"!==d.kind||"string"!=typeof a||""===a.trim())continue;let e=a.trim();c.add(e),c.add(e.replace(/\$/g,"$$$$")),c.add(encodeURIComponent(e))}return[...c].filter(a=>""!==a).sort((a,b)=>b.length-a.length)}(a,b):[],f=!1!==d.enabled,g={source:a.source,commandFields:n4(d).filter(({value:a})=>l9(a)).map(on),variableReferences:n4(d).map(a=>({...on(a),variables:ma(a.value)})).filter(({variables:a})=>a.length>0),...d.exposure?{exposure:d.exposure}:{},enabled:f,unfilled:!c?.ok&&a.fields.length>0};if("url"in d){let a=om(d.url,e);return{...g,transport:"http",target:kn(a.text),envNames:[],headerNames:Object.keys(d.headers??{}),masked:a.masked}}let h=om(kq(d.command,d.args??[]),e);return{...g,transport:"stdio",target:h.text,...void 0!==d.cwd?{cwd:kn(d.cwd)}:{},envNames:Object.keys(d.env??{}),headerNames:[],masked:h.masked}}(i,n,q),u=q.ok?mN(m,q.config):void 0,v="blocked"===f.kind?f.block:s.length>0?{kind:"secret",fields:s,fixed:!s.every(ol)}:oo("project",c),w=op(c,j),x=c.files.find(a=>a.scope===j);if(l)e={kind:"mcp-off"};else if(mr.test(m))if(w.includes(m))e={kind:"name-taken",name:m,suggestedName:ms(m,w),...x?{path:x.path}:{}};else if(q.ok)if(u)e={kind:"config-invalid",note:{code:"invalid-config",params:"url"===u.problem?{...u,url:t.target}:u}};else if(void 0!==function(a,b){for(let{value:c,...d}of n4(a))if(b.isCommandConfigValue(c)?c.toUpperCase().includes(n1):b.getConfigValueEnvVarNames(c).some(a=>a.toUpperCase()===n1))return d}(q.config,{isCommandConfigValue:l9,getConfigValueEnvVarNames:ma}))e={kind:"web-password"};else if("project"===j&&v)e={kind:"scope",block:v};else{let a=oo(j,c);a&&(e={kind:"scope",block:a})}else{let a=a=>{let b=String(a.params?.field??"");return i.fields.find(a=>a.id===b)?.label??b},b=q.notes.filter(a=>"field-required"===a.code||"field-reference-invalid"===a.code&&a.params?.problem==="missing");e=b.length>0?{kind:"fields",fields:[...new Set(b.map(a))]}:{kind:"field-invalid",fields:[...new Set(q.notes.map(a))]}}else e={kind:"name-invalid"};return void 0===b.scope&&"project"===j&&v?a({...b,scope:"global"},c,d):{parsed:h,server:i,name:m,scope:j,projectMode:f,...v?{projectBlock:v}:{},values:n,pasteSecrets:o,secretReferences:p,fill:q,fieldProblems:r,secretPaths:s,preview:t,...e?{submitBlock:e}:{},trustFolder:"project"===j&&"trust-and-write"===f.kind}})(c,a,b),[c,a,b]),n=(0,q.useMemo)(()=>(function(a){let b=nU(a,{rawPi:!0});if(!b.ok)return!1;let c=nU(a,{rawPi:!1});return b.servers.some((a,b)=>a.rawPi&&!(c.ok&&c.servers[b]?.rawPi))})(c.text),[c.text]),{parsed:o,server:r,preview:s,projectBlock:t,submitBlock:u}=m,v=r?[...r.notes,...o.notes].filter(a=>"literal-secret"!==a.code||!m.pasteSecrets.includes(String(a.params?.field))):[],w=void 0!==c.name&&c.name!==r?.name?[]:v.filter(a=>ox.has(a.code)),x=v.filter(a=>!ox.has(a.code)),y=!d&&!e&&void 0===u,z=()=>{y&&h(oq(c,m))},A=a=>g({...c,...a}),B=a.files.find(a=>a.scope===m.scope)?.path??("project"===m.scope&&b?`${b.replace(/[\\/]+$/,"")}/.pi/mcp.json`:"mcp.json"),C=u&&(""!==c.text.trim()||"mcp-off"===u.kind)?function(a,b,c=[]){switch(a.kind){case"mcp-off":return b("mcp.reason.mcp-off");case"nothing":return b("mcp.add.blocked.nothing");case"name-invalid":return b("mcp.add.nameInvalid");case"name-taken":return b("mcp.add.nameTaken",{name:kn(a.name),path:a.path?ou(a.path):"mcp.json"});case"fields":return b("mcp.add.blocked.fields",{fields:a.fields.map(kn).join(", ")});case"field-invalid":return b("mcp.add.blocked.fieldsInvalid",{fields:a.fields.map(kn).join(", ")});case"config-invalid":return n9(a.note,b,c);case"web-password":return b("mcp.add.blocked.web-password");case"scope":return or(a.block,b,ou)}}(u,j,r?.fields):void 0,D=t?.kind==="project-untrusted"&&t.trustable&&i,E=s?"http"===s.transport?s.headerNames:s.envNames:[];return(0,p.jsxs)(iW,{title:j("mcp.add.title"),catalogs:ow,target:(0,p.jsxs)(iU,{value:m.scope,label:j("config.saveTo"),options:[{value:"global",label:ov("global",j)},{value:"project",label:ov("project",j),disabled:void 0!==t&&"project"!==m.scope}],path:ou(B),disabledReason:t?or(t,j,ou):null,onChange:a=>A({scope:a}),children:[D&&(0,p.jsx)("span",{className:"mcp-config-line",children:(0,p.jsx)(i1,{size:"small",onClick:i,children:j("mcp.trust.trustButton")})}),m.trustFolder&&"trust-and-write"===m.projectMode.kind&&(0,p.jsx)("p",{className:"mcp-config-line is-warning",children:j("mcp.add.trustExplain",{path:ou(m.projectMode.folder)})})]}),inputLabel:j("mcp.add.inputLabel"),inputId:"mcp-add-source",placeholder:j("mcp.add.placeholder"),value:c.text,canSubmit:y,onValueChange:a=>g(n7(c,{text:a})),onSubmit:z,examplesLabel:j("mcp.add.examples"),examples:""===c.text.trim()?oe.map(({source:a,text:b})=>({label:j(ob[a]),value:b})):[],multiline:!0,children:[n&&(0,p.jsxs)("label",{className:"mcp-add-toggle",children:[(0,p.jsx)("input",{type:"checkbox",checked:c.rawPi,onChange:a=>g(n7(c,{rawPi:a.target.checked}))}),(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line",children:j("mcp.add.rawPi")}),c.rawPi&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:j("mcp.add.rawPiOn")})]})]}),!o.ok&&""!==c.text.trim()&&(0,p.jsx)(oy,{notes:o.notes}),o.ok&&o.servers.length>1&&(0,p.jsxs)(iP,{label:j("mcp.add.serverLabel"),children:[(0,p.jsx)("select",{className:"mcp-add-input","aria-label":j("mcp.add.serverLabel"),value:String(o.servers.indexOf(r??o.servers[0])),onChange:a=>A({server:Number(a.target.value),name:void 0,values:{},references:{},secretReferences:{}}),children:o.servers.map((a,b)=>(0,p.jsx)("option",{value:b,children:kn(a.name)},`${b}\0${a.name}`))}),(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:j("mcp.add.serverCount",{count:o.servers.length})})]}),r&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(iP,{label:j("config.name"),children:(0,p.jsx)("input",{id:l,className:"mcp-add-input","aria-label":j("config.name"),value:m.name,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:a=>A({name:a.target.value})})}),(0,p.jsx)(oy,{notes:w,fields:r.fields}),u?.kind==="name-taken"&&(0,p.jsx)("span",{className:"mcp-config-line",children:(0,p.jsx)(i1,{size:"small",onClick:()=>A({name:u.suggestedName}),children:j("mcp.add.useName",{name:kn(u.suggestedName)})})})]}),r&&s&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(iO,{children:j("mcp.add.preview")}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(iR,{label:j("mcp.add.readAs"),children:j(ob[s.source])}),(0,p.jsx)(iR,{label:j("mcp.detail.transport"),children:j(`mcp.transport.${s.transport}`)}),(0,p.jsx)(iR,{label:"http"===s.transport?j("mcp.detail.url"):j("mcp.detail.command"),tone:"plain",mono:!0,children:s.target}),"stdio"===s.transport&&void 0!==s.cwd&&(0,p.jsx)(iR,{label:j("mcp.detail.cwd"),mono:!0,children:s.cwd}),E.length>0&&(0,p.jsx)(iR,{label:"http"===s.transport?j("mcp.detail.headers"):j("mcp.detail.env"),children:(0,p.jsx)(oB,{names:E})}),s.commandFields.length>0&&(0,p.jsx)(iR,{label:j("mcp.detail.shellCommands"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:j("mcp.server.commandFields")}),(0,p.jsx)("span",{className:"mcp-config-chips",children:s.commandFields.map(a=>{let b=kt(a);return(0,p.jsx)("code",{className:"mcp-config-chip",children:j(b.key,b.params)},`${a.kind}\0${a.name??""}`)})})]})}),s.variableReferences.length>0&&(0,p.jsx)(iR,{label:j("mcp.detail.variables"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:j("http"===s.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables")}),(0,p.jsx)("span",{className:"mcp-config-chips",children:kw(s.variableReferences).map(({variable:a,field:b})=>{let c=kt(b);return(0,p.jsx)("code",{className:"mcp-config-chip",children:j("mcp.server.variableIn",{variable:kn(a),field:j(c.key,c.params)})},`${a}\0${b.kind}\0${b.name??""}`)})})]})})]}),(0,p.jsxs)("div",{className:"mcp-config-lines",children:[s.unfilled&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:j("mcp.add.previewUnfilled")}),s.masked&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:j("mcp.server.masked")})]}),(0,p.jsx)(oy,{notes:x,fields:r.fields}),r.fields.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(iO,{children:j("mcp.add.fields")}),r.fields.map(a=>{var b;let d;return(0,p.jsx)(oC,{field:a,fields:r.fields,draft:c,suggestedName:(b=m.name,(d=a.targets[0])?ok(mg(d.path),b):void 0),problem:m.fieldProblems[a.id],onDraftChange:g},a.id)})]}),m.pasteSecrets.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(iO,{children:j("mcp.add.secrets")}),m.pasteSecrets.map(a=>{var b,d;let e;return(0,p.jsx)(oD,{label:a,draft:c,suggestedName:ok(a,m.name),stored:m.fill?.ok?(b=m.fill.config,void 0!==(e="oauth.clientSecret"===(d=a)?"url"in b?b.oauth?.clientSecret:void 0:d.startsWith("headers.")?"url"in b?b.headers?.[d.slice("headers.".length)]:void 0:d.startsWith("env.")&&"command"in b?b.env?.[d.slice("env.".length)]:void 0)&&lK(e)?e:void 0):void 0,problem:m.fieldProblems[a],onDraftChange:g},a)})]})]}),(0,p.jsx)(i1,{variant:"primary",className:"is-pushed-right",disabled:!y,"aria-busy":d||void 0,"aria-describedby":C?k:void 0,onClick:z,children:d?j("mcp.add.adding"):m.trustFolder?j("mcp.add.buttonTrust"):j("mcp.add.button")}),C&&(0,p.jsx)("p",{id:k,className:`mcp-config-line ${u?.kind==="scope"?"is-warning":"is-dim"}`,children:C}),r&&!u&&(0,p.jsx)("p",{className:"mcp-config-line is-dim",children:j("mcp.add.afterAdd")}),f&&(0,p.jsxs)("div",{role:"alert",className:"mcp-add-failure",children:[(0,p.jsxs)("span",{className:"mcp-config-line is-error",children:[j("mcp.add.failed")," ",function(a,b){if(a.timedOut)return b("mcp.actionTimedOut");if("trust-too-broad"===a.reason&&a.breadth)return b(ot[a.breadth.kind],{path:ou(a.breadth.path)});if("secret-global-only"===a.reason&&a.fields)return b(a.fields.every(ol)?"mcp.add.projectBlocked.secret":"mcp.add.projectBlocked.secretFixed",{fields:a.fields.join(", ")});if("name-taken"===a.reason&&a.name)return b("mcp.add.nameTaken",{name:kn(a.name),path:a.path?ou(a.path):"mcp.json"});let c=a.reason?oz[a.reason]:void 0;return c?b(c,{error:kn(a.error)}):a.reason&&"internal"!==a.reason?b(`mcp.reason.${a.reason}`):kn(a.error)}(f,j)]}),f.trustKept&&(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:j("mcp.add.trustKept",{folder:ou(f.trust?.decisionPath??b??"")})}),f.notes&&f.notes.length>0&&(0,p.jsx)(oy,{notes:f.notes,fields:r?.fields}),"name-taken"===f.reason&&f.suggestedName&&u?.kind!=="name-taken"&&(0,p.jsx)("span",{className:"mcp-config-line",children:(0,p.jsx)(i1,{size:"small",onClick:()=>A({name:f.suggestedName}),children:j("mcp.add.useName",{name:kn(f.suggestedName)})})}),"host-env-confirm"===f.reason&&f.names&&f.names.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:j("mcp.add.hostEnv.body",{names:f.names.map(kn).join(", ")})}),(0,p.jsx)("span",{className:"mcp-config-line",children:(0,p.jsx)(i1,{variant:"danger",size:"small",disabled:d||e||void 0!==u,onClick:()=>h(oq(c,m,f.names)),children:j("mcp.add.hostEnv.confirm")})})]})]})]})}function oB({names:a}){let{t:b}=(0,aG.s)();return(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-chips",children:a.map(a=>(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a)},a))}),(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:b("mcp.detail.valuesHidden")})]})}function oC({field:a,fields:b,draft:c,suggestedName:d,problem:e,onDraftChange:f}){let g,{t:h}=(0,aG.s)(),i=(0,q.useId)(),j=e?{"aria-invalid":!0,"aria-describedby":i}:{},k=og(a),l=k?c.references[a.id]:void 0,m=void 0!==l,n=kn(a.label),o=c.values[a.id]??a.defaultValue??"",r=oa[a.reason],s=a.optional&&1===(g=new Set(a.targets.map(({path:a})=>"headers"===a[0]?a[1]:void 0))).size?[...g][0]:void 0,t=m?l&&!e?of(a,b,"${"+l+"}",!0):void 0:of(a,b,`‹${h("mcp.add.field.slot")}›`),u=b=>f({...c,values:{...c.values,[a.id]:b}}),v=b=>{let d={...c.references};void 0===b?delete d[a.id]:d[a.id]=b,f({...c,references:d})};return(0,p.jsxs)("div",{className:"mcp-add-field",children:[(0,p.jsx)(iP,{label:n,children:m?(0,p.jsx)("input",{className:"mcp-add-input","aria-label":h("mcp.add.field.variableName",{field:n}),value:l,placeholder:d??"GITHUB_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...j,onChange:a=>v(a.target.value)}):"select"===a.kind?(0,p.jsxs)("select",{className:"mcp-add-input","aria-label":n,value:o,...j,onChange:a=>u(a.target.value),children:[!a.options?.includes(o)&&(0,p.jsx)("option",{value:"",children:h("mcp.add.field.choose")}),(a.options??[]).map(a=>(0,p.jsx)("option",{value:a,children:kn(a)},a))]}):(0,p.jsx)("input",{className:"mcp-add-input",type:"password"===a.kind?"password":"text","aria-label":n,value:o,autoComplete:"off",placeholder:a.placeholder?kn(a.placeholder):void 0,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...j,onChange:a=>u(a.target.value)})}),e&&(0,p.jsx)("span",{id:i,className:"mcp-config-line is-error",children:n9(e,h,[a])}),(0,p.jsxs)("span",{className:"mcp-config-lines",children:[a.description&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:kn(a.description)}),r&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:h(r)}),m?(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:t?h("mcp.add.field.storedAsVariable",{value:t}):h("mcp.add.field.variableHint")}):(0,p.jsxs)(p.Fragment,{children:[t&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.add.field.storedAs",{value:t})}),a.optional&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:s?h("mcp.add.field.optionalHeader",{name:kn(s)}):h("mcp.add.field.optional")})]})]}),k&&(0,p.jsxs)("label",{className:"mcp-add-toggle",children:[(0,p.jsx)("input",{type:"checkbox",checked:m,onChange:a=>v(a.target.checked?d??"":void 0)}),(0,p.jsx)("span",{className:"mcp-config-line",children:h("mcp.add.field.useVariable")})]})]})}function oD({label:a,draft:b,suggestedName:c,stored:d,problem:e,onDraftChange:f}){let{t:g}=(0,aG.s)(),h=(0,q.useId)(),i=b.secretReferences[a],j=void 0!==i,k=kn(a),l=c=>{let d={...b.secretReferences};void 0===c?delete d[a]:d[a]=c,f({...b,secretReferences:d})};return(0,p.jsxs)("div",{className:"mcp-add-field",children:[(0,p.jsx)("span",{className:"mcp-config-lines",children:(0,p.jsxs)("span",{className:"mcp-config-line",children:[(0,p.jsx)("code",{className:"mcp-config-chip",children:k})," ",g("mcp.add.secret.holds")]})}),(0,p.jsxs)("label",{className:"mcp-add-toggle",children:[(0,p.jsx)("input",{type:"checkbox",checked:j,onChange:a=>l(a.target.checked?c??"":void 0)}),(0,p.jsx)("span",{className:"mcp-config-line",children:g("mcp.add.field.useVariable")})]}),j&&(0,p.jsx)(iP,{label:g("mcp.add.field.variableName",{field:k}),children:(0,p.jsx)("input",{className:"mcp-add-input","aria-label":g("mcp.add.field.variableName",{field:k}),value:i,placeholder:c??"API_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...e?{"aria-invalid":!0,"aria-describedby":h}:{},onChange:a=>l(a.target.value)})}),e&&(0,p.jsx)("span",{id:h,className:"mcp-config-line is-error",children:n9(e,g)}),(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:j?void 0!==d?g("mcp.add.secret.storedAs",{value:kn(d)}):g("mcp.add.field.variableHint"):g("mcp.add.secret.asPasted")})]})}let oE=new Set(["done","failed","cancelled","expired"]);function oF(a){var b;return a?.flow!==void 0&&!a.gone&&(b=a.flow.phase,!oE.has(b))}let oG={"mcp-off":"mcp.signIn.blocked.mcp-off","project-untrusted":"mcp.signIn.blocked.project-untrusted","trust-unreadable":"mcp.signIn.blocked.trust-unreadable",invalid:"mcp.signIn.blocked.invalid","web-password":"mcp.test.blocked.web-password"},oH={"mcp-off":"mcp.signIn.blocked.mcp-off","project-untrusted":"mcp.signIn.blocked.project-untrusted","trust-unreadable":"mcp.signIn.blocked.trust-unreadable","server-invalid":"mcp.signIn.blocked.invalid","web-password":"mcp.test.blocked.web-password","entry-not-object":"mcp.signIn.refused.file","server-missing":"mcp.signIn.refused.file",unparsable:"mcp.signIn.refused.file","invalid-shape":"mcp.signIn.refused.file","link-dangling":"mcp.signIn.refused.file","link-outside":"mcp.signIn.refused.file","not-a-file":"mcp.signIn.refused.file","too-large":"mcp.signIn.refused.file","too-many-servers":"mcp.signIn.refused.file","invalid-request":"mcp.signIn.refused.invalid-request"},oI={connecting:"mcp.signIn.phase.connecting",starting:"mcp.signIn.phase.starting",finishing:"mcp.signIn.phase.finishing"},oJ={"connect-failed":"mcp.signIn.failed.connect-failed","queue-timed-out":"mcp.signIn.failed.queue-timed-out","sign-in-failed":"mcp.signIn.failed.sign-in-failed",internal:"mcp.signIn.failed.internal"};function oK(a,b,c){var d;let e={...a,flow:b,deadlineAt:c+b.expiresInMs,gone:!1};return d=b.phase,oE.has(d)&&(delete e.pasteError,delete e.cancelError,e.pasting&&(e.pasting=!1),e.cancelling&&(e.cancelling=!1)),e}function oL(a){return"sign-in-unknown"===a.reason}async function oM(a,b,c,d){var e;let f,g;try{f=await c(a,{...b,cache:"no-store",signal:d})}catch(a){return{ok:!1,error:{error:a instanceof Error?a.message:String(a)}}}try{g=await f.json()}catch{return{ok:!1,error:{error:`HTTP ${f.status}`}}}return f.ok&&null!==(e=g)&&"object"==typeof e&&"string"==typeof e.flowId&&"string"==typeof e.phase&&"string"==typeof e.name&&("global"===e.scope||"project"===e.scope)&&"number"==typeof e.expiresInMs?{ok:!0,data:g}:{ok:!1,error:k1(g,f.status)}}function oN(a,b,c,d,e,f={}){let g=b.method??"GET";return k2(d=>oM(a,b,c,d),()=>({ok:!1,error:{error:`${g} ${a} did not answer within ${e} ms`,timedOut:!0}}),e,d,f)}function oO(a){return`/api/mcp/sign-in/${encodeURIComponent(a)}`}function oP(a,b,c="mcp.signIn.requestTimedOut"){if(a.timedOut)return b(c);let d=a.reason?oH[a.reason]:void 0;return d?b(d):a.reason&&"internal"!==a.reason?b(`mcp.reason.${a.reason}`):a.error}function oQ({server:a,run:b,block:c,signOutBlock:d,controlsBusy:e,signingOut:f,onSignIn:g,onSignOut:h,onPaste:i,onCancel:j}){let{t:k}=(0,aG.s)(),l=(0,q.useId)(),m=(0,q.useId)(),n=(0,q.useId)(),o=(0,q.useRef)(null),r=(0,q.useRef)(null),s=oF(b);if((0,q.useRef)(s),!a.usesOAuth)return void 0===a.authProvider&&a.headerNames.some(a=>"authorization"===a.toLowerCase())?null:(0,p.jsx)(iR,{label:k("mcp.detail.signIn"),children:void 0!==a.authProvider?k("mcp.signIn.provider",{provider:kn(a.authProvider)}):k("mcp.signIn.header")});let t=b?.flow,u=b?.starting===!0,v=void 0!==t&&(t.scope!==a.scope||t.name!==a.name),w=(a.oauthStateStored??a.signedIn)!==!1,x=u||f||void 0!==c,y=e||u||void 0!==d,z=t?.phase==="finishing";return(0,p.jsx)(iR,{label:k("mcp.detail.signIn"),tone:"plain",children:(0,p.jsxs)("div",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line",children:k(!0===a.signedIn?"mcp.signIn.signedIn":!1===a.signedIn?a.oauthStateStored?"mcp.signIn.registrationOnly":"mcp.signIn.notSignedIn":"mcp.signIn.unknown")}),t&&s&&v&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:k("mcp.signIn.shared",{name:kn(t.name)})}),t&&s&&("authorize"===t.phase?(0,p.jsx)(oR,{flow:t,pasting:b?.pasting===!0,pasteError:b?.pasteError,onPaste:b=>i(a,t.flowId,b)},t.flowId):(0,p.jsx)("span",{role:"status",className:"mcp-config-line",children:k(oI[t.phase]??"mcp.signIn.phase.connecting")})),t&&s&&z&&(0,p.jsx)("span",{id:n,className:"mcp-config-line is-dim",children:k("mcp.signIn.phase.noCancel")}),t&&!s&&!b?.gone&&(0,p.jsx)(oS,{flow:t,shared:v}),b?.gone&&(0,p.jsx)("span",{role:"alert",className:"mcp-config-line is-warning",children:k("mcp.signIn.gone")}),b?.error&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[k("mcp.signIn.requestFailed")," ",oP(b.error,k)]}),s&&b?.cancelError&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[k("mcp.signIn.cancelFailed")," ",oP(b.cancelError,k,"mcp.signIn.cancelTimedOut")]}),b?.signOutError&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[k("mcp.signIn.signOutFailed")," ",oP(b.signOutError,k,"mcp.actionTimedOut")]}),b?.signedOut&&(0,p.jsx)("span",{role:"status",className:"mcp-config-line",children:k(b.signedOut.removed?"mcp.signIn.signedOutDone":"mcp.signIn.signedOutNothing")}),c&&(0,p.jsx)("span",{id:l,className:"mcp-config-line is-dim",children:k(oG[c])}),!c&&d&&w&&!s&&(0,p.jsx)("span",{id:m,className:"mcp-config-line is-dim",children:k(oG[d])}),(0,p.jsxs)("div",{className:"mcp-sign-in-actions",children:[s&&t?(0,p.jsx)(i1,{ref:r,size:"small",disabled:b?.cancelling===!0||z,"aria-busy":b?.cancelling===!0||void 0,"aria-describedby":z?n:void 0,onClick:()=>j(a,t.flowId),children:k(b?.cancelling?"mcp.signIn.cancelling":"mcp.signIn.cancel")}):(0,p.jsx)(i1,{ref:o,size:"small",variant:"primary",disabled:x,"aria-busy":u||void 0,"aria-describedby":c?l:void 0,onClick:()=>g(a),children:k(u?"mcp.signIn.starting":"mcp.signIn.button")}),w&&!s&&(0,p.jsx)(i1,{size:"small",disabled:y,"aria-busy":f||void 0,"aria-describedby":d?c?l:m:void 0,onClick:()=>h(a),children:k(f?"mcp.signIn.signingOut":"mcp.signIn.signOut")})]}),!c&&!s&&w&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:k("mcp.signIn.replaces")}),w&&!d&&!s&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:k("mcp.signIn.signOutExplain")})]})})}function oR({flow:a,pasting:b,pasteError:c,onPaste:d}){let{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(""),h=(0,q.useRef)(null);(0,q.useRef)(b);let i=function(a){if(void 0!==a)try{let b=new URL(a);return"https:"===b.protocol||"http:"===b.protocol?b.href:void 0}catch{return}}(a.authorizationUrl);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(jg,{message:e("mcp.signIn.authorize.message"),hint:i?(0,p.jsxs)(p.Fragment,{children:[e("mcp.signIn.authorize.link")," ",(0,p.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",children:kn(i)})]}):(0,p.jsxs)(p.Fragment,{children:[e("mcp.signIn.authorize.notALink")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.authorizationUrl??"")})]}),value:f,placeholder:e("mcp.signIn.paste.placeholder"),inputLabel:e("mcp.signIn.paste.label"),submitLabel:e(b?"mcp.signIn.paste.checking":"mcp.signIn.paste.submit"),disabled:b,plainEnterSubmits:!1,inputRef:h,onValueChange:g,onSubmit:()=>d(f)}),c&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[e("mcp.signIn.paste.refused")," ",oP(c,e,"mcp.signIn.paste.timedOut"),"redirect-denied"===c.reason&&c.error&&(0,p.jsxs)(p.Fragment,{children:[" ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(c.error)})]})]}),a.redirectUrl&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:e("mcp.signIn.authorize.redirect",{url:kn(a.redirectUrl)})}),(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:e("mcp.signIn.authorize.wait")})]})}function oS({flow:a,shared:b}){let{t:c}=(0,aG.s)(),d=function(a,b=!1){switch(a.phase){case"done":{if(b)return a.alreadySignedIn?"mcp.signIn.shared.already":"mcp.signIn.shared.done";if(a.alreadySignedIn)return"mcp.signIn.done.already";let c=a.result;if(c&&"needs-auth"===c.state)return"mcp.signIn.done.needsAuthAfter";if(c&&"failed"===c.state)return"mcp.signIn.done.failedAfter";if(!c)return"mcp.signIn.done.notConnected";return a.refreshed?"mcp.signIn.done.refreshed":"mcp.signIn.done.signedIn"}case"failed":if(b&&"connect-failed"===a.failure)return"mcp.signIn.shared.connect-failed";return oJ[a.failure??"internal"];case"cancelled":return"mcp.signIn.cancelled";case"expired":return"mcp.signIn.expired";default:return}}(a,b);if(!d)return null;let e=function(a,b=!1){return"done"===a.phase?!b&&a.result&&"connected"!==a.result.state?"warning":"on":"failed"===a.phase?"error":"expired"===a.phase?"warning":"off"}(a,b);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{role:"status",className:"error"===e?"mcp-config-line is-error":"warning"===e?"mcp-config-line is-warning":"mcp-config-line",children:c(d,{name:kn(a.name)})}),a.error&&(0,p.jsxs)("span",{className:"mcp-config-line is-error",children:[c("mcp.test.error")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.error)})]})]})}function oT(a,b){return b("project"===a?"skills.scope.project":"skills.scope.global")}function oU(a){return kn(jL(a))}function oV({key:a,params:b},c){return b?c(a,void 0===b.path?b:{...b,path:oU(b.path)}):c(a)}function oW(a,b){return a.timedOut?b("mcp.loadTimedOut"):a.reason&&"internal"!==a.reason?b(`mcp.reason.${a.reason}`):a.error}function oX(a,b){return a.timedOut?b("mcp.actionTimedOut"):oW(a,b)}function oY(){if("u"<typeof document)return null;let a=document.activeElement;return a instanceof HTMLButtonElement||a instanceof HTMLSelectElement?a:null}function oZ({cwd:a,onClose:b,embedded:c=!1,trust:d,onTrustProject:e,onProjectTrustChanged:f}){let[g,h]=(0,q.useState)({state:"loading"}),[i,j]=(0,q.useState)(!1),[k,l]=(0,q.useState)(()=>im("mcp",a)),[m,n]=(0,q.useState)({saving:!1,error:null}),[o,r]=(0,q.useState)(null),[s,t]=(0,q.useState)(null),[u,v]=(0,q.useState)(null),[w,x]=(0,q.useState)(null),[y,z]=(0,q.useState)(null),[A,B]=(0,q.useState)({}),C=(0,q.useRef)(0),D=(0,q.useRef)(null),E=(0,q.useRef)(null),F=(0,q.useRef)(null),G=(0,q.useRef)(new Map),[H,I]=(0,q.useState)({}),J=(0,q.useRef)(H);J.current=H;let[K,L]=(0,q.useState)(0),[M,N]=(0,q.useState)(!1),[O,P]=(0,q.useState)(n5),Q=(0,q.useRef)(O);Q.current=O;let[R,S]=(0,q.useState)(null),[T,U]=(0,q.useState)(null),V=(0,q.useRef)(!0),W=(0,q.useRef)(g);W.current=g;let X=(0,q.useCallback)(async()=>{let b=++C.current;D.current?.abort();let c=new AbortController;D.current=c,j(!0);let d=await k7(a,void 0,c.signal);if(b===C.current){if(j(!1),!d.ok)return void h({state:"failed",error:d.error});h({state:"loaded",data:d.data,...d.projectError?{projectError:d.projectError}:{}}),l(b=>kU(kS(d.data,!!a),b))}},[a]);jO(d);let Y=(0,q.useCallback)(async a=>{let b=new AbortController;E.current=b,n({saving:!0,error:null,target:"preference"});let c=await la(a,void 0,b.signal);E.current===b&&(E.current=null,n({saving:!1,error:c.ok?null:c.error,target:"preference"}),c.ok&&h(a=>{var b,d;let e;return"loaded"===a.state?{...a,data:(b=a.data,d=c.preference,e={...b.codemode,preference:d},delete e.preferenceError,{...b,codemode:e})}:a}),X())},[X]),Z=(0,q.useCallback)(async a=>{let b=new AbortController;E.current=b,n({saving:!0,error:null,target:"mode"});let c=await lb(a,void 0,b.signal);E.current===b&&(E.current=null,n({saving:!1,error:c.ok?null:c.error,target:"mode"}),c.ok&&h(a=>"loaded"===a.state?{...a,data:function(a,b){let c=a.codemode.mode;if(!c)return a;let d={settingsPath:c.settingsPath,...c.projectOverride?{projectOverride:c.projectOverride}:{},...b};return{...a,codemode:{...a.codemode,mode:d}}}(a.data,c.mode)}:a),X())},[X]),$=(0,q.useCallback)(async a=>{let b=new AbortController;E.current=b,n({saving:!0,error:null,target:"inlineBudget"});let c=await lc(a,void 0,b.signal);E.current===b&&(E.current=null,n({saving:!1,error:c.ok?null:c.error,target:"inlineBudget"}),c.ok&&h(a=>"loaded"===a.state?{...a,data:function(a,b){let c=a.codemode.inlineBudget;if(!c)return a;let d={settingsPath:c.settingsPath,default:c.default,max:c.max,...c.projectOverride?{projectOverride:c.projectOverride}:{},...b};return{...a,codemode:{...a.codemode,inlineBudget:d}}}(a.data,c.inlineBudget)}:a),X())},[X]),_=(0,q.useCallback)(async b=>{let c=kz(b);if(G.current.has(c))return;let d={};G.current.set(c,d),B(a=>({...a,[c]:{...a[c],running:!0,startedAt:Date.now(),error:void 0,queueTimedOut:void 0,configKey:void 0}}));let e=W.current,f="loaded"===e.state&&e.data.project?a:null,g=await ls({scope:b.scope,name:b.name},f);if(G.current.get(c)!==d)return;G.current.delete(c),B(a=>({...a,[c]:function(a,b,c){let d=a?.signedOutAt,e={...a?.startedAt!==void 0?{startedAt:a.startedAt}:{},...void 0!==d?{signedOutAt:d}:{}};if(void 0!==d&&(a?.startedAt??0)<=d)return{running:!1,...e};let f=a?.response?{response:a.response}:{};return b.ok?b.data.result.queueTimedOut?{running:!1,...e,...f,queueTimedOut:!0,configKey:b.data.configKey}:{running:!1,...e,response:b.data}:{running:!1,...e,...f,error:b.error,...void 0!==c?{configKey:c}:{}}}(a[c],g,b.configKey)}));let h=W.current,i="loaded"===h.state?h.data.servers.find(a=>kz(a)===c):void 0;(g.ok?i?.configKey===g.data.configKey:void 0===g.error.reason||g.error.timedOut)||X()},[a,X]),aa=(0,q.useCallback)((b,c)=>{C.current+=1,D.current?.abort(),j(!1),h(a=>({state:"loaded",data:b,..."loaded"===a.state&&a.projectError?{projectError:a.projectError}:{}})),l(d=>kU(kS(b,!!a),c??d))},[a]),ab=(0,q.useCallback)(async b=>{let c=kz(b),d=J.current[c];if(d?.starting||oF(d))return;I(a=>({...a,[c]:{starting:!0}}));let e=W.current,f="loaded"===e.state&&e.data.project?a:null,g=await function(a,b,c=(a,b)=>fetch(a,b),d=15e3){return oN("/api/mcp/sign-in",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:a.scope,name:a.name,...b?{cwd:b}:{}})},c,void 0,d,{abortAtDeadline:!1})}({scope:b.scope,name:b.name},f);V.current&&(I(a=>({...a,[c]:function(a,b=Date.now()){return a.ok?oK({},a.data,b):{error:a.error}}(g)})),g.ok||void 0===g.error.reason||g.error.timedOut||X())},[a,X]),ac=(0,q.useCallback)(async(a,b,c)=>{let d=kz(a);I(a=>a[d]?.flow?.flowId===b?{...a,[d]:{...a[d],pasting:!0,pasteError:void 0}}:a);let e=await function(a,b,c=(a,b)=>fetch(a,b),d=15e3){return oN(oO(a),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({redirectUrl:b})},c,void 0,d)}(b,c);V.current&&I(a=>{let c=function(a,b,c,d=Date.now()){if(!a?.flow||a.flow.flowId!==b)return a;let e={...a,pasting:!1,version:(a.version??0)+1};return c.ok?{...oK(e,c.data,d),pasteError:void 0}:oL(c.error)?{...e,gone:!0}:{...e,pasteError:c.error}}(a[d],b,e);return void 0===c||c===a[d]?a:{...a,[d]:c}})},[]),ad=(0,q.useCallback)(async(a,b)=>{let c=kz(a);I(a=>a[c]?.flow?.flowId===b?{...a,[c]:{...a[c],cancelling:!0}}:a);let d=await function(a,b=(a,b)=>fetch(a,b),c=15e3){return oN(oO(a),{method:"DELETE"},b,void 0,c)}(b);V.current&&I(a=>{let e=function(a,b,c,d=Date.now()){if(!a?.flow||a.flow.flowId!==b)return a;let e={...a,cancelling:!1,cancelError:void 0,version:(a.version??0)+1};return c.ok?oK(e,c.data,d):oL(c.error)?{...e,gone:!0}:{...e,cancelError:c.error}}(a[c],b,d);return void 0===e||e===a[c]?a:{...a,[c]:e}})},[]);Object.entries(H).flatMap(([a,b])=>oF(b)&&b.flow?[`${a}\u0001${b.flow.flowId}`]:[]).join("\x02"),(0,q.useRef)(H);let ae=(0,q.useCallback)(async(b,c,d)=>{F.current?.abort();let e=new AbortController;F.current=e,r(c);let f=W.current,g="loaded"===f.state&&f.data.project?a:null,h=await lj(b,g,void 0,e.signal);if(F.current===e)return F.current=null,r(null),h.ok?aa(h.data,d?.(h.data)):X(),h},[aa,a,X]),af=(0,q.useCallback)(async(a,b)=>{let c=kz(a),d=oY();t(null),v(null);let e=await ae({action:b?"enable":"disable",scope:a.scope,name:a.name},`switch:${c}`);e&&(e.ok||t({key:c,failure:e.error}),z({control:d}))},[ae]),ag=(0,q.useCallback)(async(a,b)=>{let c=kz(a),d=oY();t(null),v(null);let e=await ae({action:"set-in-project",name:a.name,enabled:b},`in-project:${c}`);e&&(e.ok||t({key:c,failure:e.error}),z({control:d}))},[ae]),ah=(0,q.useCallback)(async(a,b)=>{let c=kz(a),d=oY();t(null),v(null);let e=await ae({action:"set-exposure",scope:a.scope,name:a.name,exposure:b},`exposure:${c}`);e&&(e.ok||t({key:c,failure:e.error}),z({control:d}))},[ae]),ai=(0,q.useCallback)(async a=>{let b=kz(a),c=oY();t(null),v(null);let d=await ae({action:"remove",scope:a.scope,name:a.name},`remove:${b}`);if(!d)return;if(!d.ok){t({key:b,failure:d.error}),z({control:c});return}let e=d.data.undo;e&&x({...e,undoing:!1})},[ae]),aj=(0,q.useCallback)(async()=>{if(!w)return;let a=oY();t(null),v(null),x({...w,undoing:!0,error:void 0});let b=await ae({action:"undo",token:w.token},"undo",a=>a.restored?kz(a.restored):void 0);b&&(x(a=>a?.token!==w.token?a:b.ok?null:{...a,undoing:!1,error:b.error}),b.ok||z({control:a}))},[ae,w]),ak=(0,q.useCallback)(async a=>{let b=kz(a),c=oY();t(null),v(null),I(a=>({...a,[b]:{...a[b],signOutError:void 0,signedOut:void 0}}));let d=await ae({action:"sign-out",scope:a.scope,name:a.name},`sign-out:${b}`);if(d){if(I(a=>({...a,[b]:d.ok?{signedOut:{removed:d.data.signedOut?.removed===!0}}:{...a[b],signOutError:d.error}})),d.ok){let a=Date.now();B(c=>{let d=function(a,b){if(a)return{running:a.running,...void 0!==a.startedAt?{startedAt:a.startedAt}:{},signedOutAt:b}}(c[b],a);return d?{...c,[b]:d}:c})}z({control:c})}},[ae]),al=(0,q.useCallback)(async b=>{let c=oY(),d=Q.current;t(null),v(null),S(null);let e=await ae(b,"add",a=>a.added?kz(a.added):void 0);if(!e)return;let g=Q.current!==d;if(!e.ok){g||S(e.error),e.error.trust&&a&&f?.(a,e.error.trust),z({control:c});return}let{added:h,trust:i,trustedFolder:j}=e.data;if(N(!1),g||P(n5),z({control:null,toSelectedRow:!0}),!h)return;U({...h,key:kz(h),...j&&a?{trustedFolder:a}:{}}),i&&a&&f?.(a,i);let k=e.data.servers.find(a=>kz(a)===kz(h));k&&!ll(k,e.data)&&_(k)},[a,f,ae,_]);w?.token,w?.expiresInMs;let am=(0,q.useCallback)(async(a,b,c)=>{let{targets:d,keptOff:e}={targets:jN(b,c,a=>a.enabled).filter(c?lh:lg),keptOff:c?b.filter(a=>!a.enabled&&lg(a)&&!lh(a)).length:0},f=oY();if(t(null),v(e>0?{scope:a,keptOff:e,failures:[],total:0}:null),0===d.length)return;let g=await ae({action:"set-enabled",enabled:c,servers:d.map(({scope:a,name:b})=>({scope:a,name:b}))},`group:${a}`);if(!g)return;if(z({control:f}),!g.ok)return void v({scope:a,keptOff:e,failures:[],total:d.length,error:g.error});let h=g.data.results??[],i=h.filter(a=>void 0!==a.reason).map(a=>({name:a.name,failure:{error:a.error??"",reason:a.reason}}));v(i.length>0||e>0?{scope:a,keptOff:e,failures:i,total:h.length}:null)},[ae]);return(0,p.jsx)(o$,{cwd:a,load:g,selected:k,refreshing:i,embedded:c,codemodeSave:m,busy:o,actionError:s,groupStatus:u,undo:w,focusBack:y,tests:A,signIns:H,adding:M,addDraft:O,addFailure:R,added:T,onAddOpen:()=>{N(!0),U(null),t(null)},onAddDraftChange:a=>{Q.current=a,P(a),S(null)},onAddSubmit:a=>void al(a),onTest:a=>void _(a),onSignIn:a=>void ab(a),onSignOut:a=>void ak(a),onSignInPaste:(a,b,c)=>void ac(a,b,c),onSignInCancel:(a,b)=>void ad(a,b),onSelect:a=>{l(a),t(null),N(!1),U(b=>b?.key===a?b:null)},onRefresh:()=>void X(),onCodemodeChange:a=>void Y(a),onCodemodeModeChange:a=>void Z(a),onCodemodeInlineBudgetSave:a=>void $(a),onServerSwitch:(a,b)=>void af(a,b),onServerSwitchInProject:(a,b)=>void ag(a,b),onExposureChange:(a,b)=>void ah(a,b),onGroupSwitch:(a,b,c)=>void am(a,b,c),onRemove:a=>void ai(a),onUndo:()=>void aj(),onTrustProject:e,onClose:b})}function o$({cwd:a,load:b,selected:c,refreshing:d,embedded:e,codemodeSave:f={saving:!1,error:null},busy:g=null,actionError:h=null,groupStatus:i=null,undo:j=null,focusBack:k=null,tests:l={},signIns:m={},adding:n=!1,addDraft:o=n5,addFailure:r=null,added:s=null,onAddOpen:t=()=>{},onAddDraftChange:u=()=>{},onAddSubmit:v=()=>{},onSelect:w,onRefresh:x,onCodemodeChange:y,onCodemodeModeChange:z=()=>{},onCodemodeInlineBudgetSave:A=()=>{},onServerSwitch:B=()=>{},onServerSwitchInProject:C=()=>{},onExposureChange:D=()=>{},onGroupSwitch:E=()=>{},onRemove:F=()=>{},onUndo:G=()=>{},onTest:H=()=>{},onSignIn:I=()=>{},onSignOut:J=()=>{},onSignInPaste:K=()=>{},onSignInCancel:L=()=>{},onTrustProject:M,onClose:N}){var O,P,Q,R;let S,T,U,{t:V}=(0,aG.s)(),W=(0,q.useId)(),X=(0,q.useId)(),Y="loaded"===b.state?(O=b.data,S=!1,T=O.servers.map(a=>{var b;let c=l[kz(a)]?.response;if(!c||c.configKey!==a.configKey||a.status&&("test"===(b=a.status).origin?b.testedAt:b.closedAt??b.updatedAt)>=c.result.testedAt)return a;S=!0;let d={...c.result,origin:"test"};return{...a,status:d}}),S?{...O,servers:T}:O):void 0,Z=Y?kS(Y,!!a):[],$=Y?{mcpAvailable:Y.mcp.available,projectServersLoad:kA(Y.project)}:void 0,_=Z.flatMap(a=>a.servers),aa=_.find(a=>kz(a)===c),ab=s?_.find(a=>kz(a)===s.key):void 0,ac=Y?function(a){if(!a.available)return"builtin-disabled"===a.reason?a.settingsPath?{key:"mcp.unavailable.builtin-disabled",params:{path:a.settingsPath}}:{key:"mcp.unavailable.builtin-disabled-unknown"}:{key:"operator-disabled"===a.reason?"mcp.unavailable.operator-disabled":"mcp.unavailable.internals-unavailable"}}(Y.mcp):void 0,ad=ac?void 0:Y?.hostInactive,ae=Y?.files.find(a=>"project"===a.scope),af=Y?function(a,b){if(!a||!b||!b.exists&&0===b.problems.length)return;let{trust:c}=a;return c?c.requiresTrust||!1===c.decision?!0===c.decision?c.inherited&&c.decisionPath?{kind:"inherited",key:"mcp.trust.trustedThrough",params:{path:c.decisionPath}}:void 0:!1===c.decision&&c.inherited&&c.decisionPath?{kind:"untrusted",key:"mcp.trust.untrustedThrough",params:{path:c.decisionPath}}:{kind:"untrusted",key:"mcp.trust.untrusted"}:void 0:{kind:"untrusted",key:"mcp.trust.unreadable"}}(Y.project,ae):void 0,ag=M&&kV(Y?.project)?M:void 0,ah=af?.kind==="untrusted"&&void 0!==ag,ai=(0,q.useRef)(null),aj=(0,q.useRef)(null);(0,q.useRef)(ah);let ak=(0,q.useRef)(null),al=j?.token;(0,q.useRef)(al);let am=Y?[...Y.files].sort((a,b)=>a.scope===b.scope?0:"global"===a.scope?-1:1).flatMap(a=>a.problems.map(b=>({file:a,problem:b}))):[],an=kT(_),ao=Y?.files.find(a=>"global"===a.scope),ap=Y?function(a){let b=a.files.find(a=>"project"===a.scope);if(b?.autoEnableCodemode!==void 0&&kA(a.project))return b.autoEnableCodemode?{value:!0,path:b.path}:{value:!1,path:b.path};let c=a.files.find(a=>"global"===a.scope);return c?.autoEnableCodemode!==void 0?c.autoEnableCodemode?{value:!0,path:c.path}:{value:!1,path:c.path}:{value:!0}}(Y):void 0,aq=Y?(P=_.length,Q=Y.files,P>0?"mcp.selectItem":Q.some(a=>a.problems.some(kR))?"mcp.emptyFileProblem":"mcp.empty"):void 0,ar=null!==g||d||f.saving;(0,q.useRef)(null);let as=a=>Y?le(a,Y):void 0,at=!!Y&&ld(Y.mcp),au=Z.find(a=>"project"===a.scope)?.servers??[],av=as("project"),aw=af?.kind==="untrusted"?[oV(af,V),av&&"mcp-off"!==av&&au.length>0?V(lf[av]):null].filter(Boolean).join(" "):"";return(0,p.jsxs)(iA,{embedded:e,title:V("settings.mcp"),subtitle:a?jL(a):void 0,closeLabel:V("i18n.close"),onClose:N,children:[(0,p.jsxs)("div",{className:"mcp-config-notices",children:[ac&&(0,p.jsxs)(iX,{id:W,children:[oV(ac,V),at&&(0,p.jsxs)(p.Fragment,{children:[" ",V(lf["mcp-off"])]}),Y&&!Y.mcp.available&&Y.mcp.detail&&(0,p.jsxs)(p.Fragment,{children:[" ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(Y.mcp.detail)})]})]}),ad&&(0,p.jsx)(iX,{children:V("mcp.hostInactive",{path:oU(ad.cwd),owner:oU(ad.owner)})}),"loaded"===b.state&&b.projectError&&(0,p.jsx)(iX,{children:V("mcp.projectNotListed",{reason:oW(b.projectError,V)})}),af?.kind==="untrusted"&&(0,p.jsx)(iY,{id:X,message:aw,trustLabel:V("mcp.trust.trustButton"),onTrust:ag}),af?.kind==="inherited"&&(0,p.jsx)(iX,{children:oV(af,V)}),j&&(0,p.jsxs)(iX,{action:j.error?.reason==="undo-unavailable"?void 0:(0,p.jsx)(i1,{ref:ak,size:"small",onClick:G,disabled:j.undoing||ar,children:j.undoing?V("mcp.undoing"):V("mcp.undo")}),children:[V("mcp.removed",{name:kn(j.name),path:oU(j.path)}),j.error&&(0,p.jsxs)(p.Fragment,{children:[" ",V("mcp.undoFailed")," ",oX(j.error,V)]})]}),s&&Y&&ab&&(0,p.jsx)(o_,{added:s,cwd:a,server:ab,testing:l[s.key]?.running===!0,signIn:m[s.key],signingOut:g===`sign-out:${s.key}`,signInBlock:ab?ll(ab,Y):void 0,onSignIn:I})]}),(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsx)(iD,{children:"loading"===b.state?(0,p.jsx)("div",{className:"config-sidebar-message",children:V("i18n.loading")}):"failed"===b.state?(0,p.jsxs)("div",{role:"alert",className:"config-sidebar-message is-error",children:[V("mcp.loadFailed")," ",oW(b.error,V)]}):Y&&$?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("div",{className:"config-sidebar-group",children:(0,p.jsx)(o0,{codemode:Y.codemode,active:!n&&c===ky,rowRef:ai,onSelect:w})}),Z.map(a=>{let b=as(a.scope);return(0,p.jsx)(o1,{group:a,context:$,selected:n?null:c,selectedRowRef:ai,block:b,blockNoticeId:"mcp-off"===b?ac?W:void 0:b&&af?.kind==="untrusted"?X:void 0,busy:g,controlsBusy:ar,status:i?.scope===a.scope?i:null,onSelect:w,onGroupSwitch:E},a.scope)})]}):null}),Y&&(0,p.jsx)(i3,{ref:aj,active:n,onClick:t,children:V("mcp.add.action")})]}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:Y&&$&&ap&&aq?n?(0,p.jsx)(oA,{data:Y,cwd:a,draft:o,busy:"add"===g,controlsBusy:ar,failure:r,onDraftChange:u,onSubmit:v,onTrustProject:ag}):c===ky?(0,p.jsx)(pd,{codemode:Y.codemode,autoEnable:ap,save:f,serverBusy:null!==g,onChange:y,onModeChange:z,onInlineBudgetSave:A}):aa?(0,p.jsx)(o4,{server:aa,context:$,codemode:Y.codemode,toolSearchDisabled:Y.toolSearchDisabled,autoEnable:ap,block:as(aa.scope),inProject:function(a,b){if("global"!==a.scope||void 0!==a.invalidError||a.notAnObject||!kA(b.project))return;let c=b.files.find(a=>"project"===a.scope);if(!c||c.problems.some(a=>"auto-enable-codemode-invalid"!==a.reason))return;let d=b.servers.find(b=>"project"===b.scope&&b.name===a.name);return d?d.override?{kind:"override",key:kz(d),keys:d.override.keys,applies:!0===a.overriddenByProject}:void 0:{kind:"switch"}}(aa,Y),inProjectBlock:as("project"),savedWhileOff:!Y.mcp.available&&!at,busy:g,controlsBusy:ar,actionError:h?.key===kz(aa)?h.failure:null,test:(R=l[kz(aa)],R&&void 0!==R.configKey&&R.configKey!==aa.configKey?{running:R.running,...R.response?{response:R.response}:{}}:R),testBlock:ll(aa,Y),signIn:m[kz(aa)],signInBlock:ll(aa,Y),signOutBlock:(U=le(aa.scope,Y))||(void 0===aa.invalidError&&aa.validated?void 0:"invalid"),onSwitch:B,onSwitchInProject:C,onShowServer:a=>{w(a),requestAnimationFrame(()=>{var a,b;let c;return a=document,b=ai.current??aj.current,c=a.activeElement,!!b&&(!c||c===a.body)&&(b.focus({preventScroll:!0}),!0)})},onExposureChange:D,onRemove:F,onTest:H,onSignIn:I,onSignOut:J,onSignInPaste:K,onSignInCancel:L},kz(aa)):(0,p.jsx)(iZ,{children:"mcp.empty"===aq?V(aq,{globalPath:oU(ao?.path??"~/.pi/agent/mcp.json")}):V(aq)}):null})})]}),(0,p.jsxs)(i_,{status:am.length>0?(0,p.jsx)(i0,{tone:am.some(({problem:a})=>kR(a))?"error":"warning",summary:1===am.length?V("mcp.footer.fileProblem"):V("mcp.footer.fileProblems",{count:am.length}),details:am.map(({file:a,problem:b})=>{let c=kx(b,a.realPath);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("code",{className:"mcp-config-chip",children:oU(a.path)})," ",V(`mcp.fileProblem.${b.reason}`),c&&(0,p.jsxs)(p.Fragment,{children:[" ",(0,p.jsx)("code",{className:"mcp-config-chip",children:c})]})]})})}):(0,p.jsx)(i0,{summary:an.total>0?V("mcp.serverCount",{enabled:an.enabled,total:an.total}):""}),children:[!e&&(0,p.jsx)(i1,{onClick:N,children:V("i18n.close")}),(0,p.jsx)(i1,{variant:"secondary",onClick:x,disabled:ar,children:V("i18n.refresh")})]})]})}function o_({added:a,cwd:b,server:c,testing:d,signIn:e,signingOut:f,signInBlock:g,onSignIn:h}){let{t:i}=(0,aG.s)(),j=kn(a.name),k="project"===a.scope&&b?kn(jM(a.path,b)):oU(a.path),l=c.status,m=!d&&l?.origin==="test"&&"needs-auth"===l.state&&c.usesOAuth,n=e?.starting===!0||oF(e);return(0,p.jsxs)(iX,{action:!m||n||f||g?void 0:(0,p.jsx)(i1,{size:"small",variant:"primary",onClick:()=>h(c),children:i("mcp.signIn.button")}),children:[void 0===a.trustedFolder?i("mcp.add.added",{name:j,path:k}):a.trustedFolder===b?i("mcp.add.addedTrustedHere",{name:j,path:k}):i("mcp.add.addedTrusted",{name:j,path:k,folder:oU(a.trustedFolder)}),d&&(0,p.jsxs)(p.Fragment,{children:[" ",i("mcp.add.testing")]}),m&&(0,p.jsxs)(p.Fragment,{children:[" ",i("mcp.add.needsSignIn")]})]})}function o0({codemode:a,active:b,rowRef:c,onSelect:d}){let{t:e}=(0,aG.s)(),f=a.builtinDisabled||"unavailable"===a.sandbox.state?"unavailable":a.preference??"unknown",g=e(k$[f]);return(0,p.jsxs)(iH,{ref:b?c:void 0,active:b,"aria-label":e("mcp.codemode.rowLabel",{state:g}),onClick:()=>d(ky),children:[(0,p.jsx)(i4,{...kJ(k_(f))}),(0,p.jsx)(iI,{className:"is-grow",children:e("mcp.codemode.title")}),(0,p.jsx)("span",{className:`mcp-sidebar-badge is-${k_(f)}`,children:g})]})}function o1({group:a,context:b,selected:c,selectedRowRef:d,block:e,blockNoticeId:f,busy:g,controlsBusy:h,status:i,onSelect:j,onGroupSwitch:k}){var l;let m,n,{t:o}=(0,aG.s)(),{enabled:q,total:r}=kT(a.servers),s=(l=a.servers).some(a=>a.enabled&&lg(a))&&l.every(a=>a.enabled||!lh(a)),t=function(a){if(!(a.servers.length>0))return a.file?a.file.problems.some(kR)?"mcp.group.fileProblem":"mcp.group.empty":"mcp.group.notListed"}(a),u=i?(m=i.keptOff>0?o("mcp.groupKeptOff",{count:i.keptOff}):void 0,n=i.error?`${o("mcp.actionFailed")} ${oX(i.error,o)}`:i.failures.length>0?[o("mcp.bulkFailed",{count:i.failures.length,total:i.total}),...i.failures.map(({name:a,failure:b})=>`${kn(a)}: ${oX(b,o)}`)].join("\n"):void 0,{...m?{note:m}:{},...n?{error:n}:{}}):void 0;return(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{aside:r>0?(0,p.jsx)(iF,{enabled:q,total:r,checked:s,disabled:h||void 0!==e,loading:g===`group:${a.scope}`,describedBy:e?f:void 0,label:o(s?"mcp.groupSwitchOn":"mcp.groupSwitchOff",{group:oT(a.scope,o)}),onChange:b=>k(a.scope,a.servers,b)}):void 0,children:oT(a.scope,o)}),u&&(0,p.jsx)(iG,{note:u.note,error:u.error}),t&&(0,p.jsx)("div",{className:"mcp-sidebar-group-empty",children:o(t)}),a.servers.map(a=>{let e=kz(a),f=kC(a,b),g=kI(f),h=kH[f],i=kn(a.name);return(0,p.jsxs)(iH,{ref:c===e?d:void 0,active:c===e,"aria-label":o("mcp.rowLabel",{name:i,state:o(kF(f,a.status))}),onClick:()=>j(e),children:[(0,p.jsx)(i4,{...kJ(g)}),(0,p.jsx)(iI,{className:`is-grow${"on"===g?"":" is-muted"}`,children:i}),h&&(0,p.jsx)("span",{className:`mcp-sidebar-badge is-${g}`,children:o(h)})]},e)})]})}function o2({fields:a}){let{t:b}=(0,aG.s)();return(0,p.jsx)("span",{className:"mcp-config-chips",children:a.map(a=>{let c=kt(a);return(0,p.jsx)("code",{className:"mcp-config-chip",children:b(c.key,c.params)},`${a.kind}\0${a.name??""}`)})})}function o3({names:a}){return(0,p.jsx)("span",{className:"mcp-config-chips",children:a.map(a=>(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a)},a))})}function o4({server:a,context:b,codemode:c,toolSearchDisabled:d,autoEnable:e,block:f,inProject:g,inProjectBlock:h,savedWhileOff:i,busy:j,controlsBusy:k,actionError:l,test:m,testBlock:n,signIn:o,signInBlock:r,signOutBlock:s,onSwitch:t,onSwitchInProject:u,onShowServer:v,onExposureChange:w,onRemove:x,onTest:y,onSignIn:z,onSignOut:A,onSignInPaste:B,onSignInCancel:C}){let{t:D}=(0,aG.s)(),E=(0,q.useId)(),F=(0,q.useId)(),G=kC(a,b),H=kr(a),I=a.status,J=I?.origin==="test"&&"connected"===I.state&&I.toolCount>0?I:void 0,K=void 0===a.invalidError,L="http"===a.transport||void 0===a.transport&&void 0!==a.url,M=!L&&("stdio"===a.transport||void 0!==a.command),N=a.exposure?function(a,b,c){if("codemode"===a){var d;return d=b.codemode,"unavailable"===d.sandbox.state?{key:"mcp.exposure.sandboxUnavailable"}:d.builtinDisabled?{key:"mcp.exposure.builtinDisabled"}:c.value||"always"===kW(d)?void 0:{key:"mcp.exposure.autoEnableOff",params:{path:c.path}}}if("deferred"!==a||!b.toolSearchDisabled)return;let e=b.toolSearchDisabled.settingsPath;return e?{key:"mcp.exposure.toolSearchDisabled",params:{path:e}}:{key:"mcp.exposure.toolSearchDisabledUnknown"}}(a.exposure,{codemode:c,toolSearchDisabled:d},e):void 0,O=(0,q.useId)(),P=(0,q.useId)(),Q=kz(a),R=kn(a.name),S=!a.enabled&&void 0!==a.webPasswordField,T=!0===a.notAnObject,U=f?D(`mcp.reason.${f}`):T?D("mcp.reason.entry-not-object"):S?D("mcp.reason.web-password"):i?D("mcp.write.savedWhileOff"):void 0;return(0,p.jsxs)(iJ,{children:[(0,p.jsxs)("div",{className:"config-detail-heading",children:[(0,p.jsxs)(iK,{children:[(0,p.jsxs)(iL,{children:[(0,p.jsx)(iS,{scope:a.scope,children:oT(a.scope,D)}),(0,p.jsx)(iN,{children:R})]}),(0,p.jsxs)(iM,{children:[(0,p.jsx)(pb,{server:a,test:m,testBlock:n,describedBy:F,onTest:y}),(0,p.jsx)(i1,{variant:"danger",size:"small",disabled:k||void 0!==f,"aria-describedby":f?E:void 0,onClick:()=>x(a),children:j===`remove:${Q}`?D("i18n.removing"):D("i18n.remove")}),(0,p.jsx)(i2,{checked:a.enabled,disabled:k||void 0!==f||T||S,loading:j===`switch:${Q}`,describedBy:U?E:void 0,label:D(a.enabled?"mcp.server.switchOff":"mcp.server.switchOn",{name:R}),onChange:b=>t(a,b)})]})]}),U&&(0,p.jsx)("div",{id:E,className:"config-detail-heading-note",children:U})]}),l&&(0,p.jsxs)("p",{role:"alert",className:"mcp-config-line is-error",children:[D("mcp.actionFailed")," ",oX(l,D)]}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(pc,{server:a,state:G,test:m,testBlock:n,testBlockId:F}),void 0!==a.description&&(0,p.jsx)(iR,{label:D("mcp.detail.description"),tone:"plain",children:kn(a.description)}),void 0!==H?(0,p.jsx)(iR,{label:L?D("mcp.detail.url"):D("mcp.detail.command"),tone:"plain",mono:!0,className:"mcp-config-code",children:H}):a.transport&&(0,p.jsx)(iR,{label:D("mcp.detail.transport"),children:D(`mcp.transport.${a.transport}`)}),M&&void 0!==a.cwd&&(0,p.jsx)(iR,{label:D("mcp.detail.cwd"),mono:!0,className:"mcp-config-code",children:kn(a.cwd)}),M&&a.envNames.length>0&&(0,p.jsx)(iR,{label:D("mcp.detail.env"),children:(0,p.jsx)(o3,{names:a.envNames})}),L&&a.headerNames.length>0&&(0,p.jsx)(iR,{label:D("mcp.detail.headers"),children:(0,p.jsx)(o3,{names:a.headerNames})}),K&&a.commandFields.length>0&&(0,p.jsx)(iR,{label:D("mcp.detail.shellCommands"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:D("mcp.server.commandFields")}),(0,p.jsx)(o2,{fields:a.commandFields})]})}),K&&a.variableReferences.length>0&&(0,p.jsx)(iR,{label:D("mcp.detail.variables"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:D(ku(a))}),(0,p.jsx)("span",{className:"mcp-config-chips",children:kw(a.variableReferences).map(({variable:a,field:b})=>{let c=kt(b);return(0,p.jsx)("code",{className:"mcp-config-chip",children:D("mcp.server.variableIn",{variable:a,field:D(c.key,c.params)})},`${a}\0${b.kind}\0${b.name??""}`)})})]})}),L&&K&&(0,p.jsx)(oQ,{server:a,run:o,block:r,signOutBlock:s,controlsBusy:k,signingOut:j===`sign-out:${Q}`,onSignIn:z,onSignOut:A,onPaste:B,onCancel:C}),(a.exposure||J)&&(0,p.jsx)(iR,{label:D("mcp.detail.exposure"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[a.exposure&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("span",{className:"mcp-exposure-choice",children:[(0,p.jsx)("select",{className:"mcp-add-input mcp-exposure-select","aria-label":D("mcp.exposure.label",{name:R}),"aria-describedby":[O,f?E:null].filter(Boolean).join(" "),value:a.exposure,disabled:k||void 0!==f,onChange:b=>{let c=b.target.value;c!==a.exposure&&w(a,c)},children:kP.map(a=>(0,p.jsx)("option",{value:a,children:"codemode"===a?D("mcp.exposure.optionDefault",{label:D(kQ[a])}):D(kQ[a])},a))}),j===`exposure:${Q}`&&(0,p.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:D("i18n.saving")})]}),(0,p.jsx)("span",{id:O,className:"mcp-config-line",children:D(kO[a.exposure])}),void 0!==a.toolExposureCount&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:D("mcp.exposure.toolOverrides",{count:a.toolExposureCount})}),N&&(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:oV(N,D)})]}),J&&(0,p.jsx)(pa,{status:J,serverExposure:a.exposure})]})}),g&&(0,p.jsx)(iR,{label:D("mcp.detail.inProject"),tone:"plain",children:(0,p.jsx)("span",{className:"mcp-config-lines",children:"override"===g.kind?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"mcp-config-line",children:g.applies?D("mcp.inProject.overridden",{keys:g.keys.join(", ")}):D("mcp.inProject.refused")}),(0,p.jsx)("span",{children:(0,p.jsx)(i1,{size:"small",onClick:()=>v(g.key),children:D("mcp.inProject.show")})})]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{children:(0,p.jsx)(i1,{size:"small",disabled:k||void 0!==h||S,"aria-describedby":[P,h||S?E:null].filter(Boolean).join(" "),onClick:()=>u(a,!a.enabled),children:j===`in-project:${Q}`?D("i18n.saving"):D(a.enabled?"mcp.inProject.turnOff":"mcp.inProject.turnOn")})}),(0,p.jsx)("span",{id:P,className:"mcp-config-line is-dim",children:D("mcp.inProject.saved")})]})})}),(0,p.jsx)(iR,{label:D("mcp.detail.file"),tone:"dim",mono:!0,className:"mcp-config-code",children:oU(a.sourcePath)})]}),(0,p.jsxs)("div",{className:"mcp-config-lines",children:[ks(a)&&(0,p.jsx)("p",{className:"mcp-config-line is-warning",children:D("mcp.server.hiddenCharacters")}),!a.validated&&(0,p.jsx)("p",{className:"mcp-config-line is-warning",children:D("mcp.server.unchecked")}),a.replacesGlobal&&(0,p.jsx)("p",{className:"mcp-config-line is-warning",children:D("mcp.server.replacesGlobal")}),a.override&&(0,p.jsx)("p",{className:"mcp-config-line",children:oV(kv(a.override.keys),D)}),a.shadowedByProject&&"replaced"!==G&&(0,p.jsx)("p",{className:"mcp-config-line",children:D("mcp.server.shadowedByProject")}),a.overriddenByProject&&"overridden"!==G&&(0,p.jsx)("p",{className:"mcp-config-line",children:D("mcp.server.overriddenByProject")}),a.masked&&(0,p.jsx)("p",{className:"mcp-config-line is-dim",children:D("mcp.server.masked")})]})]})}function o5({error:a,stderr:b}){let{t:c}=(0,aG.s)();return(0,p.jsxs)(p.Fragment,{children:[a&&(0,p.jsxs)("span",{className:"mcp-config-line is-error",children:[c("mcp.test.error")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a)})]}),b&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:c("mcp.test.stderr")}),(0,p.jsx)("pre",{className:"mcp-test-output",children:b.split(/\r?\n/).map(kn).join("\n")})]})]})}function o6({status:a,showState:b,entryCwd:c}){return"session"===a.origin?(0,p.jsx)(o9,{status:a,showState:b}):(0,p.jsx)(o8,{status:a,showState:b,entryCwd:c})}function o7({view:a}){let{t:b}=(0,aG.s)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("span",{className:`mcp-config-state is-${a.tone}`,children:b(a.key)})," "]})}function o8({status:a,showState:b,entryCwd:c}){let{t:d,locale:e}=(0,aG.s)(),f=kK(a.testedAt,e),g=a.serverInfo;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("span",{className:"mcp-config-line",children:[b&&(0,p.jsx)(o7,{view:a.timedOut?{key:ln.timedOut,tone:"error"}:{key:ln[a.state],tone:kI(a.state)}}),d((a.afterSignIn?lp:lo)[a.timedOut?"timedOut":a.state],{count:a.toolCount,seconds:lq(a.durationMs),time:f})]}),(0,p.jsx)(o5,{error:a.error,stderr:a.stderr}),g&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:d("mcp.test.serverInfo",{name:kn(g.title??g.name),version:kn(g.version)})}),a.resources&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:d("mcp.test.resources")}),void 0!==a.cwd&&a.cwd!==c&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:d("mcp.test.ranIn",{path:oU(a.cwd)})}),void 0!==a.queuedMs&&a.queuedMs>=500&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:d("mcp.test.queued",{seconds:lq(a.queuedMs)})})]})}function o9({status:a,showState:b}){let{t:c,locale:d}=(0,aG.s)(),e=kK(a.updatedAt,d),f=void 0===a.closedAt?void 0:kK(a.closedAt,d);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("span",{className:"mcp-config-line",children:[b&&(0,p.jsx)(o7,{view:void 0!==a.closedAt?{key:"mcp.session.state.closed",tone:"off"}:{key:kL[a.state],tone:kN[a.state]}}),c(void 0!==a.closedAt?"mcp.session.summary.closed":kM[a.state],{path:oU(a.cwd),time:e,...void 0===f?{}:{closedTime:f}})]}),void 0!==a.conflict&&(0,p.jsxs)("span",{className:"mcp-config-line is-error",children:[c("mcp.session.conflictOwner")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:oU(a.conflict)})]}),(0,p.jsx)(o5,{error:a.error,stderr:a.stderr})]})}function pa({status:a,serverExposure:b}){let{t:c}=(0,aG.s)(),d=a.toolCount-a.tools.length;return(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("ul",{className:"mcp-test-tools",children:a.tools.map((a,d)=>(0,p.jsxs)("li",{className:"mcp-test-tool",children:[(0,p.jsxs)("span",{className:"mcp-config-chips",children:[(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.name)}),a.readOnly&&(0,p.jsx)("span",{className:"mcp-test-tool-tag",children:c("mcp.test.readOnly")}),a.exposure!==(b??"codemode")&&(0,p.jsx)("span",{className:"mcp-test-tool-tag",children:c(kQ[a.exposure])})]}),a.description&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:kn(a.description)})]},`${d}\0${a.name}`))}),d>0&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:c("mcp.test.moreTools",{count:d})})]})}function pb({server:a,test:b,testBlock:c,describedBy:d,onTest:e}){let{t:f}=(0,aG.s)(),g=(0,q.useRef)(null),h=b?.running===!0;return(0,q.useRef)(h),(0,p.jsx)(i1,{ref:g,size:"small",disabled:h||void 0!==c,"aria-busy":h||void 0,"aria-describedby":c?d:void 0,onClick:()=>e(a),children:f(h?"mcp.test.testing":"mcp.test.button")})}function pc({server:a,state:b,test:c,testBlock:d,testBlockId:e}){let{t:f}=(0,aG.s)(),g=a.status,h=kG[b],i="invalid"===d&&"invalid"===b?"state":"web-password"===d&&void 0!==a.webPasswordField?"password":void 0;return(0,p.jsx)(iR,{label:f("i18n.status"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-lines",children:[(0,p.jsx)("span",{className:`mcp-config-state is-${kI(b)}`,children:f(kF(b,g))}),"invalid"===b&&(0,p.jsxs)("span",{id:"state"===i?e:void 0,className:"mcp-config-line is-warning",children:[f("mcp.server.invalid")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.invalidError??"")})]}),a.webPasswordField&&(0,p.jsxs)("span",{id:"password"===i?e:void 0,className:"mcp-config-line is-warning",children:[f("mcp.server.webPassword")," ",(0,p.jsx)(o2,{fields:[a.webPasswordField]})]}),g?(0,p.jsx)(o6,{status:g,showState:kB(g)!==b,entryCwd:a.cwd}):!d&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:f("mcp.test.never")}),h&&(0,p.jsx)("span",{className:"mcp-config-line",children:f(h)}),c?.queueTimedOut&&(0,p.jsx)("span",{role:"alert",className:"mcp-config-line is-error",children:f("mcp.test.queueTimedOut")}),c?.error&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[f("mcp.test.requestFailed")," ",function(a,b){if(a.timedOut)return b("mcp.test.requestTimedOut");let c=a.reason?lm[a.reason]:void 0;return c?b(c):oW(a,b)}(c.error,f)]}),d&&!i&&(0,p.jsx)("span",{id:e,className:"mcp-config-line is-dim",children:f(lk[d])}),!d&&a.commandFields.length>0&&(0,p.jsx)("span",{className:"mcp-config-line is-dim",children:f("mcp.test.serial")})]})})}function pd({codemode:a,autoEnable:b,save:c,serverBusy:d,onChange:e,onModeChange:f,onInlineBudgetSave:g}){let{t:h}=(0,aG.s)(),i=a.sandbox,j=a.preference,k=c.saving||d,l=void 0===c.target||"preference"===c.target?c:{saving:!1,error:null},m=function(a,b){if("automatic"===kW(a)&&!b.value)return{key:"mcp.codemode.autoEnableOff",params:{path:b.path}}}(a,b),n="unavailable"===a.sandbox.state?{key:"mcp.codemode.alwaysUnavailable.sandbox"}:a.globalBuiltinSettingsPath?{key:"mcp.codemode.alwaysUnavailable.builtin",params:{path:a.globalBuiltinSettingsPath}}:void 0,o=function(a){if(!a.builtinDisabled)return;let b=a.builtinSettingsPath;return b?a.globalBuiltinSettingsPath?{key:"mcp.codemode.builtinDisabled",params:{path:b}}:{key:"mcp.codemode.builtinDisabledProject",params:{path:b}}:{key:"mcp.codemode.builtinDisabledUnknown"}}(a),q=function(a){let b=a.projectOverride;if(b)return{key:kX[b.preference],params:{path:b.settingsPath}}}(a);return(0,p.jsxs)(iJ,{children:[(0,p.jsx)(iK,{children:(0,p.jsx)(iL,{children:(0,p.jsx)(iN,{children:h("mcp.codemode.title")})})}),(0,p.jsx)("p",{className:"mcp-config-line",children:h("mcp.codemode.intro")}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(iR,{label:h("mcp.codemode.mode"),tone:"plain",children:(0,p.jsxs)("div",{className:"mcp-config-lines",children:[j?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(iT,{value:j,label:h("mcp.codemode.title"),options:[{value:"automatic",label:h(k$.automatic),disabled:k},{value:"always",label:h(k$.always),disabled:k||void 0!==n}],disabledReason:n?oV(n,h):null,onChange:a=>{a!==j&&e(a)},children:l.saving&&(0,p.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:h("i18n.saving")})}),(0,p.jsx)("span",{className:"mcp-config-line",children:h("always"===j?"mcp.codemode.alwaysDescription":"mcp.codemode.automaticDescription")})]}):(0,p.jsxs)("span",{className:"mcp-config-line is-warning",children:[h("mcp.codemode.preferenceError")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.preferenceError??"")})]}),l.error&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.codemode.saveFailed")," ",(0,p.jsx)(pe,{error:l.error})]}),q&&(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:oV(q,h)}),m&&(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:oV(m,h)})]})}),a.mode?(0,p.jsx)(pf,{mode:a.mode,codemode:a,save:c,waiting:k,onChange:f}):void 0!==a.modeError&&(0,p.jsx)(iR,{label:h("mcp.codemode.toolMode"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-line is-warning",children:[h("mcp.codemode.preferenceError")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.modeError)})]})}),a.inlineBudget?(0,p.jsx)(pg,{budget:a.inlineBudget,save:c,waiting:k,onSave:g}):void 0!==a.inlineBudgetError&&(0,p.jsx)(iR,{label:h("mcp.codemode.inlineBudget"),tone:"plain",children:(0,p.jsxs)("span",{className:"mcp-config-line is-warning",children:[h("mcp.codemode.preferenceError")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.inlineBudgetError)})]})}),(0,p.jsx)(iR,{label:h("mcp.codemode.sandbox"),tone:"plain",children:"unavailable"===i.state?(0,p.jsxs)("span",{className:"mcp-config-line is-warning",children:[h("mcp.codemode.sandbox.unavailable")," ",(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(i.error)})]}):(0,p.jsx)("span",{className:"mcp-config-line",children:h("available"===i.state?"mcp.codemode.sandbox.available":"mcp.codemode.sandbox.not-checked")})}),o&&(0,p.jsx)(iR,{label:h("mcp.codemode.builtin"),tone:"error",children:oV(o,h)})]})]})}function pe({error:a}){let{t:b}=(0,aG.s)();return a.timedOut?(0,p.jsx)(p.Fragment,{children:b("mcp.codemode.saveTimedOut")}):a.reason&&"internal"!==a.reason?(0,p.jsx)(p.Fragment,{children:b(`mcp.reason.${a.reason}`)}):(0,p.jsx)("code",{className:"mcp-config-chip",children:kn(a.error)})}function pf({mode:a,codemode:b,save:c,waiting:d,onChange:e}){let{t:f}=(0,aG.s)(),g="mode"===c.target,h=function(a){let b=a.mode;if(!b)return[];let c=[];void 0!==b.invalid&&c.push({key:"mcp.codemode.toolMode.invalid",params:{path:b.settingsPath,value:b.invalid}});let d=b.projectOverride;return d&&c.push({key:kZ[d.value],params:{path:d.settingsPath}}),"only"===(d??b).value&&"automatic"===kW(a)&&c.push({key:"mcp.codemode.toolMode.automaticNote"}),c}(b);return(0,p.jsx)(iR,{label:f("mcp.codemode.toolMode"),tone:"plain",children:(0,p.jsxs)("div",{className:"mcp-config-lines",children:[(0,p.jsx)(iT,{value:a.value,label:f("mcp.codemode.toolMode"),options:[{value:"on",label:f("mcp.codemode.toolMode.on"),disabled:d},{value:"only",label:f("mcp.codemode.toolMode.only"),disabled:d}],onChange:b=>{(b!==a.value||void 0!==a.invalid)&&e(b)},children:g&&c.saving&&(0,p.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:f("i18n.saving")})}),(0,p.jsx)("span",{className:"mcp-config-line",children:f(kY[a.value])}),h.map(a=>(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:oV(a,f)},a.key)),g&&c.error&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[f("mcp.codemode.toolMode.saveFailed")," ",(0,p.jsx)(pe,{error:c.error})]})]})})}function pg({budget:a,save:b,waiting:c,onSave:d}){let e,f,{t:g}=(0,aG.s)(),h=(0,q.useRef)(null),i=(0,q.useId)(),j=void 0===a.value?"":String(a.value),[k,l]=(0,q.useState)(j),m=function(a,b){let c=a.trim();if(""===c)return{ok:!0,value:null};if(!/^\d+$/.test(c))return{ok:!1};let d=Number(c);return d<=b?{ok:!0,value:d}:{ok:!1}}(k,a.max),n=!!m.ok&&(null===m.value?void 0!==a.value||void 0!==a.invalid:m.value!==a.value),o="inlineBudget"===b.target,r=o&&b.saving;(0,q.useRef)(r);let s=(e=[],void 0!==a.invalid&&e.push({key:"mcp.codemode.inlineBudget.invalid",params:{path:a.settingsPath,value:a.invalid,default:String(a.default)}}),(f=a.projectOverride)&&e.push(void 0!==f.value?{key:"mcp.codemode.inlineBudget.projectOverride",params:{path:f.settingsPath,value:String(f.value)}}:{key:"mcp.codemode.inlineBudget.projectOverrideDefault",params:{path:f.settingsPath,default:String(a.default)}}),e);return(0,p.jsx)(iR,{label:g("mcp.codemode.inlineBudget"),tone:"plain",children:(0,p.jsxs)("div",{className:"mcp-config-lines",children:[(0,p.jsxs)("form",{className:"mcp-codemode-budget",onSubmit:a=>{a.preventDefault(),m.ok&&n&&!c&&d(m.value)},children:[(0,p.jsx)("input",{ref:h,className:"mcp-add-input mcp-codemode-budget-input",inputMode:"numeric","aria-label":g("mcp.codemode.inlineBudget"),"aria-describedby":i,"aria-invalid":!m.ok||void 0,value:k,placeholder:String(a.default),readOnly:c,autoComplete:"off",spellCheck:!1,onChange:a=>l(a.target.value)}),(0,p.jsx)("span",{className:"mcp-config-line",children:g("mcp.codemode.inlineBudget.unit")}),(0,p.jsx)(i1,{type:"submit",size:"small",disabled:!n||c,children:g("mcp.codemode.inlineBudget.save")}),r&&(0,p.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:g("i18n.saving")})]}),!m.ok&&(0,p.jsx)("span",{className:"mcp-config-line is-error",children:g("mcp.codemode.inlineBudget.invalidDraft",{max:String(a.max)})}),(0,p.jsx)("span",{id:i,className:"mcp-config-line",children:g("mcp.codemode.inlineBudget.description",{default:String(a.default)})}),s.map(a=>(0,p.jsx)("span",{className:"mcp-config-line is-warning",children:oV(a,g)},a.key)),o&&b.error&&(0,p.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[g("mcp.codemode.inlineBudget.saveFailed")," ",(0,p.jsx)(pe,{error:b.error})]})]})})}async function ph(a){let b=await fetch("/api/channels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json().catch(()=>({}));return{ok:b.ok,error:c.error}}function pi({embedded:a=!0,onClose:b}){var c;let d,{t:e}=(0,aG.s)(),[f,g]=(0,q.useState)(null),[h,i]=(0,q.useState)(null),[j,k]=(0,q.useState)(""),[l,m]=(0,q.useState)(""),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(null),t=(0,q.useRef)(!1),u=(0,q.useCallback)(async()=>{try{let a=await fetch("/api/channels",{cache:"no-store"}),b=await a.json();if(!a.ok||b.error)return void i(b.error??`HTTP ${a.status}`);g(b),i(null),t.current||m(b.config.defaultCwd??"")}catch(a){i(a instanceof Error?a.message:String(a))}},[]),v=(0,q.useCallback)(async(a,b,c)=>{o(a),s(null);let d=await ph(b);if(o(null),!d.ok)return void s({kind:"error",message:d.error??e("telegram.actionFailed")});let f=c();f&&s(f),await u()},[u,e]),{config:w}=f??{};return(0,p.jsxs)(iA,{embedded:a,title:e("settings.channels"),closeLabel:e("i18n.close"),onClose:()=>b?.(),children:[(0,p.jsxs)(iB,{children:[(0,p.jsx)(iC,{children:(0,p.jsx)(iD,{children:h&&!f?(0,p.jsx)("div",{role:"alert",className:"config-sidebar-message is-error",children:e("channels.loadFailed",{error:h})}):f?(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{children:e("channels.group")}),(d=f.config.tokenSet?f.config.enabled?f.lastError?{tone:"error",badge:"channels.badge.error"}:{tone:"on",badge:"channels.badge.on"}:{tone:"off",badge:"channels.badge.off"}:{tone:"off",badge:"channels.badge.unconfigured"},(0,p.jsxs)(iH,{active:!0,"aria-label":`Telegram — ${e(d.badge)}`,children:[(0,p.jsx)(i4,{..."on"===(c=d.tone)?{active:!0}:"off"===c?{active:!1}:{color:"#ef4444"}}),(0,p.jsx)(iI,{className:"is-grow",children:"Telegram"}),(0,p.jsx)("span",{className:`mcp-sidebar-badge${"error"===d.tone?" is-error":""}`,children:e(d.badge)})]}))]}):(0,p.jsx)("div",{className:"config-sidebar-message",children:e("i18n.loading")})})}),(0,p.jsx)(i$,{children:(0,p.jsx)(iJ,{className:"is-fill",children:f&&w?(0,p.jsxs)(p.Fragment,{children:[r&&(0,p.jsx)(iX,{children:r.message}),f.lastError&&(0,p.jsx)(iX,{children:e("telegram.loopError",{error:f.lastError})}),(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(iN,{children:"Telegram"})}),(0,p.jsx)(iM,{children:(0,p.jsx)(i2,{checked:w.enabled,disabled:!w.tokenSet||null!==n,label:e("telegram.enabledLabel"),onChange:a=>void v("enabled",{action:"set-enabled",enabled:a},()=>null)})})]}),!w.tokenSet&&(0,p.jsx)(iX,{children:e("telegram.setupHint")}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(iR,{label:e("telegram.botStatus"),children:f.running?e("telegram.connected",{bot:f.botUsername??""}):e("telegram.notConnected")}),(0,p.jsx)(iR,{label:e("telegram.tokenLabel"),children:(0,p.jsx)("input",{type:"password",autoComplete:"off",spellCheck:!1,className:"mcp-add-input",placeholder:w.tokenSet?e("telegram.tokenPlaceholder",{hint:w.tokenHint??""}):"1234567890:AA…","aria-label":e("telegram.tokenLabel"),value:j,onChange:a=>k(a.target.value)})})]}),(0,p.jsxs)(iM,{children:[(0,p.jsx)(i1,{size:"small",disabled:""===j.trim()||null!==n,onClick:()=>void v("token",{action:"set-token",token:j.trim()},()=>(k(""),{kind:"ok",message:e("telegram.tokenSaved")})),children:e("telegram.tokenSave")}),w.tokenSet&&(0,p.jsx)(i1,{size:"small",variant:"secondary",disabled:null!==n,onClick:()=>void v("remove-token",{action:"remove-token"},()=>({kind:"info",message:e("telegram.tokenRemoved")})),children:e("telegram.tokenRemove")})]}),(0,p.jsx)(iO,{children:e("telegram.chatsHeading")}),(0,p.jsx)(iL,{children:e("telegram.chatsDescription")}),f.lastUnknownChat&&(0,p.jsx)(iX,{action:(0,p.jsx)(i1,{size:"small",disabled:null!==n||w.allowedChats.some(a=>a.id===f.lastUnknownChat?.id),onClick:()=>void v("allow",{action:"allow-chat",chatId:f.lastUnknownChat?.id,title:f.lastUnknownChat?.title},()=>({kind:"ok",message:e("telegram.chatAllowed")})),children:e("telegram.allowChat")}),children:e("telegram.unknownChatPrompt",{title:f.lastUnknownChat.title??e("telegram.unnamedChat"),id:String(f.lastUnknownChat.id)})}),0===w.allowedChats.length?(0,p.jsx)(iZ,{children:e("telegram.noChats")}):(0,p.jsx)(p.Fragment,{children:w.allowedChats.map(a=>(0,p.jsx)("div",{className:"channels-chat",children:(0,p.jsxs)(iQ,{children:[(0,p.jsxs)(iR,{label:a.title??e("telegram.unnamedChat"),mono:!0,children:[a.id,(0,p.jsxs)(iM,{children:[(0,p.jsx)(i1,{size:"small",variant:"secondary",disabled:null!==n,onClick:()=>void v(`test-${a.id}`,{action:"test-send",chatId:a.id},()=>({kind:"ok",message:e("telegram.testSent")})),children:e("telegram.testSend")}),(0,p.jsx)(i1,{size:"small",variant:"secondary",disabled:null!==n,onClick:()=>void v(`remove-${a.id}`,{action:"remove-chat",chatId:a.id},()=>({kind:"info",message:e("telegram.chatRemoved")})),children:e("telegram.chatRemove")})]})]}),(0,p.jsx)(iR,{label:e("telegram.chatCwdLabel"),children:(0,p.jsx)("input",{type:"text",spellCheck:!1,className:"mcp-add-input",placeholder:e("telegram.defaultCwdPlaceholder"),"aria-label":e("telegram.chatCwdLabel"),defaultValue:a.cwd??"",onBlur:b=>{let c=b.target.value.trim();c!==(a.cwd??"")&&v(`cwd-${a.id}`,{action:"set-chat-cwd",chatId:a.id,cwd:c},()=>({kind:"ok",message:e("telegram.chatCwdSaved")}))}},`${a.id}:${a.cwd??""}`)})]})},a.id))}),(0,p.jsx)(iO,{children:e("telegram.defaultCwdLabel")}),(0,p.jsx)(iQ,{children:(0,p.jsx)(iR,{label:e("telegram.defaultCwdLabel"),children:(0,p.jsx)("input",{type:"text",spellCheck:!1,className:"mcp-add-input",placeholder:e("telegram.defaultCwdPlaceholder"),"aria-label":e("telegram.defaultCwdLabel"),value:l,onChange:a=>{t.current=!0,m(a.target.value)}})})}),(0,p.jsx)(iM,{children:(0,p.jsx)(i1,{size:"small",disabled:null!==n,onClick:()=>void v("cwd",{action:"set-default-cwd",cwd:l.trim()},()=>({kind:"ok",message:e("telegram.defaultCwdSaved")})),children:e("telegram.defaultCwdSave")})})]}):null})})]}),(0,p.jsx)(i_,{status:f?(0,p.jsx)(i0,{tone:f.lastError?"warning":void 0,summary:f.running?e("telegram.connected",{bot:f.botUsername??""}):e("telegram.notConnected")}):void 0,children:!a&&b&&(0,p.jsx)(i1,{onClick:b,children:e("i18n.close")})})]})}let pj={minutes:6e4,hours:36e5,days:864e5};function pk(a){return String(a).padStart(2,"0")}function pl(a){let b=new Date(a);return`${b.getFullYear()}-${pk(b.getMonth()+1)}-${pk(b.getDate())}T${pk(b.getHours())}:${pk(b.getMinutes())}`}function pm(a){if("cron"===a.kind)return{kind:"cron",expr:a.cronExpr.trim(),...""!==a.cronTz.trim()?{tz:a.cronTz.trim()}:{}};if("at"===a.kind){let b=Date.parse(a.atLocal);return Number.isFinite(b)?{kind:"at",atMs:b}:null}let b=Math.round(a.everyValue)*pj[a.everyUnit];return Number.isFinite(b)&&a.everyValue>0?{kind:"every",everyMs:b}:null}function pn(a){if(!a)return{name:"",kind:"every",cronExpr:"0 9 * * *",cronTz:Intl.DateTimeFormat().resolvedOptions().timeZone,atLocal:pl(Date.now()+36e5),everyValue:1,everyUnit:"hours",cwd:"",prompt:"",notify:!0,notifyChannels:[],silentWhen:""};let b=a.schedule;return{name:a.name,kind:b.kind,cronExpr:"cron"===b.kind?b.expr:"0 9 * * *",cronTz:"cron"===b.kind?b.tz??"":"",atLocal:"at"===b.kind?pl(b.atMs):pl(Date.now()+36e5),everyValue:"every"===b.kind?b.everyMs/pj.hours>=1&&b.everyMs%pj.hours==0?b.everyMs/pj.hours:Math.max(1,Math.round(b.everyMs/pj.minutes)):1,everyUnit:"every"===b.kind&&(b.everyMs%pj.hours!=0||b.everyMs<pj.hours)?"minutes":"hours",cwd:a.cwd,prompt:a.prompt,notify:a.notify,notifyChannels:a.notifyChannels.flatMap(a=>"telegram"===a.type&&Number.isInteger(a.chatId)?[{type:"telegram",chatId:a.chatId}]:[]),silentWhen:a.silentWhen}}function po(a,b){if(null===a)return b("automations.neverAgain");let c=new Date(a),d=new Date().toDateString()===c.toDateString(),e=`${pk(c.getHours())}:${pk(c.getMinutes())}`;return d?e:`${pk(c.getMonth()+1)}-${pk(c.getDate())} ${e}`}async function pp(a){let b=await fetch("/api/automations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json().catch(()=>({}));return{ok:b.ok,error:"string"==typeof c.error?c.error:void 0,payload:c}}function pq({embedded:a=!0,onClose:b}){let{t:c}=(0,aG.s)(),[d,e]=(0,q.useState)(null),[f,g]=(0,q.useState)([]),[h,i]=(0,q.useState)(null),[j,k]=(0,q.useState)(null),[l,m]=(0,q.useState)(()=>pn(null)),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(null),[t,u]=(0,q.useState)(null),w=(0,q.useRef)("ok"),x=(0,q.useCallback)(async()=>{try{let a=await fetch("/api/automations",{cache:"no-store"}),b=await a.json();if(!a.ok||b.error)return;e(b.automations??[]),g(b.runs??[]),b.telegram&&i(b.telegram)}catch{}},[]),y=(0,q.useMemo)(()=>d?.find(a=>a.id===j)??null,[d,j]),z=(0,q.useCallback)(a=>{k(a),o(null),u(null),m(pn(d?.find(b=>b.id===a)??null))},[d]),A=(0,q.useCallback)(()=>{k("new"),o(null),u(null),m(pn(null))},[]),B=(0,q.useCallback)(async(a,b,d)=>{s(a),u(null);let e=await pp(b);return(s(null),e.ok)?(null!==d&&(w.current="ok",u(d)),await x(),!0):(w.current="error",u(e.error??c("automations.actionFailed")),!1)},[x,c]),C=()=>b?.(),D=null!==y,E=pm(l),F=""!==l.name.trim()&&""!==l.cwd.trim()&&""!==l.prompt.trim()&&null!==E&&n?.problem==null;return(0,p.jsxs)(iA,{embedded:a,title:c("settings.automations"),closeLabel:c("i18n.close"),onClose:C,children:[(0,p.jsxs)(iB,{children:[(0,p.jsxs)(iC,{children:[(0,p.jsx)(iD,{children:null===d?(0,p.jsx)("div",{className:"config-sidebar-message",children:c("i18n.loading")}):0===d.length&&null===j?(0,p.jsx)("div",{className:"config-sidebar-message is-empty",children:c("automations.noneYet")}):(0,p.jsxs)("div",{className:"config-sidebar-group",children:[(0,p.jsx)(iE,{children:c("automations.group")}),d.map(a=>(0,p.jsxs)(iH,{active:j===a.id,onClick:()=>z(a.id),children:[(0,p.jsx)(i4,{active:a.enabled&&null!==a.nextDueAt}),(0,p.jsx)(iI,{className:"is-grow",children:a.name}),(0,p.jsx)("span",{className:"mcp-sidebar-badge",children:a.enabled?null!==a.nextDueAt?po(a.nextDueAt,c):"…":c("channels.badge.off")})]},a.id))]})}),(0,p.jsx)(i3,{active:"new"===j,onClick:A,children:c("automations.newAction")})]}),(0,p.jsx)(i$,{children:(0,p.jsxs)(iJ,{className:"is-fill",children:[(null===j||"new"===j||D)&&(0,p.jsxs)(p.Fragment,{children:[t&&(0,p.jsx)(iX,{children:t}),null!==j&&"new"!==j&&D&&(0,p.jsxs)(iK,{children:[(0,p.jsx)(iL,{children:(0,p.jsx)(iN,{children:y.name})}),(0,p.jsxs)(iM,{children:[(0,p.jsx)(i2,{checked:y.enabled,disabled:null!==r,label:c("automations.enabledLabel"),onChange:a=>void B(`enabled-${y.id}`,{action:"set-enabled",id:y.id,enabled:a},null)}),(0,p.jsx)(i1,{size:"small",variant:"secondary",disabled:null!==r,onClick:()=>void B(`run-${y.id}`,{action:"run-now",id:y.id},c("automations.runStarted")),children:c("automations.runNow")}),(0,p.jsx)(i1,{size:"small",variant:"danger",disabled:null!==r,onClick:()=>{B(`delete-${y.id}`,{action:"delete",id:y.id},c("automations.deleted")).then(a=>{a&&z(null)})},children:c("automations.delete")})]})]}),(0,p.jsxs)(iQ,{children:[(0,p.jsx)(iR,{label:c("automations.nameLabel"),children:(0,p.jsx)("input",{className:"mcp-add-input",type:"text",spellCheck:!1,"aria-label":c("automations.nameLabel"),value:l.name,onChange:a=>m(b=>({...b,name:a.target.value}))})}),(0,p.jsx)(iR,{label:c("automations.scheduleLabel"),children:(0,p.jsxs)("div",{className:"automations-schedule",children:[(0,p.jsxs)("select",{"aria-label":c("automations.scheduleLabel"),value:l.kind,onChange:a=>m(b=>({...b,kind:a.target.value})),children:[(0,p.jsx)("option",{value:"cron",children:c("automations.kind.cron")}),(0,p.jsx)("option",{value:"every",children:c("automations.kind.every")}),(0,p.jsx)("option",{value:"at",children:c("automations.kind.at")})]}),"cron"===l.kind&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("input",{className:"mcp-add-input",type:"text",spellCheck:!1,placeholder:"0 9 * * 1-5","aria-label":c("automations.cronExpr"),value:l.cronExpr,onChange:a=>m(b=>({...b,cronExpr:a.target.value}))}),(0,p.jsx)("input",{className:"mcp-add-input",type:"text",spellCheck:!1,placeholder:"Asia/Shanghai","aria-label":c("automations.cronTz"),value:l.cronTz,onChange:a=>m(b=>({...b,cronTz:a.target.value}))})]}),"every"===l.kind&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("input",{className:"automations-number-input",type:"number",min:1,"aria-label":c("automations.everyValue"),value:l.everyValue,onChange:a=>m(b=>({...b,everyValue:Number(a.target.value)}))}),(0,p.jsxs)("select",{"aria-label":c("automations.everyUnit"),value:l.everyUnit,onChange:a=>m(b=>({...b,everyUnit:a.target.value})),children:[(0,p.jsx)("option",{value:"minutes",children:c("automations.unit.minutes")}),(0,p.jsx)("option",{value:"hours",children:c("automations.unit.hours")}),(0,p.jsx)("option",{value:"days",children:c("automations.unit.days")})]})]}),"at"===l.kind&&(0,p.jsx)("input",{className:"automations-datetime-input",type:"datetime-local","aria-label":c("automations.atTime"),value:l.atLocal,onChange:a=>m(b=>({...b,atLocal:a.target.value}))})]})}),(0,p.jsx)(iR,{label:c("automations.nextRun"),children:null===n?"…":null!==n.problem?`⚠️ ${n.problem}`:`${po(n.dueAt,c)}`}),(0,p.jsx)(iR,{label:c("automations.cwdLabel"),children:(0,p.jsx)("input",{className:"mcp-add-input",type:"text",spellCheck:!1,placeholder:"/Volumes/…","aria-label":c("automations.cwdLabel"),value:l.cwd,onChange:a=>m(b=>({...b,cwd:a.target.value}))})}),(0,p.jsx)(iR,{label:c("automations.notifyLabel"),children:(0,p.jsxs)("div",{className:"automations-notify",children:[(0,p.jsxs)("div",{className:"automations-notify-row",children:[(0,p.jsx)(i2,{checked:l.notify,label:c("automations.notifyBrowser"),onChange:a=>m(b=>({...b,notify:a}))}),(0,p.jsx)("span",{children:c("automations.notifyBrowser")})]}),null!==h&&h.chats.map(a=>{let b=l.notifyChannels.some(b=>b.chatId===a.id);return(0,p.jsxs)("label",{className:"automations-notify-row",children:[(0,p.jsx)("input",{type:"checkbox",checked:b,onChange:b=>m(c=>({...c,notifyChannels:b.target.checked?[...c.notifyChannels,{type:"telegram",chatId:a.id}]:c.notifyChannels.filter(b=>b.chatId!==a.id)}))}),(0,p.jsx)("span",{children:null!==a.title&&""!==a.title.trim()?a.title:`Telegram \xb7 ${a.id}`})]},a.id)}),null!==h&&0===h.chats.length&&(0,p.jsx)("div",{className:"automations-notify-hint",children:c("automations.notifyTelegramHint")}),(0,p.jsxs)("div",{className:"automations-notify-row is-wide",children:[(0,p.jsx)("span",{className:"automations-notify-silent-label",children:c("automations.notifySilentLabel")}),(0,p.jsx)("input",{className:"mcp-add-input",type:"text",spellCheck:!1,placeholder:"NO_REPLY","aria-label":c("automations.notifySilentLabel"),value:l.silentWhen,onChange:a=>m(b=>({...b,silentWhen:a.target.value}))})]}),(0,p.jsx)("div",{className:"automations-notify-hint",children:c("automations.notifySilentHint")})]})})]}),(0,p.jsx)(iP,{label:c("automations.promptLabel"),children:(0,p.jsx)("textarea",{className:"automations-prompt",rows:5,spellCheck:!1,"aria-label":c("automations.promptLabel"),value:l.prompt,onChange:a=>m(b=>({...b,prompt:a.target.value}))})}),"new"===j&&(0,p.jsx)(iX,{children:c("automations.disclosure")}),(0,p.jsx)(iM,{children:(0,p.jsx)(i1,{disabled:!F||null!==r,onClick:()=>{B("save",{action:D?"update":"create",...D?{id:y.id}:{},name:l.name.trim(),schedule:pm(l),cwd:l.cwd.trim(),prompt:l.prompt,notify:l.notify,notifyChannels:l.notifyChannels,silentWhen:l.silentWhen.trim()},D?c("automations.saved"):c("automations.created")).then(a=>{a&&(D||k(null))})},children:D?c("automations.save"):c("automations.create")})})]}),(0,p.jsx)(iO,{children:c("automations.historyTitle")}),0===f.length?(0,p.jsx)(iZ,{children:c("automations.noRuns")}):(0,p.jsx)(iQ,{children:f.slice(0,12).map(a=>{let b=d?.find(b=>b.id===a.automationId),e=null!==a.finishedAt?Math.max(1,Math.round((a.finishedAt-a.startedAt)/1e3)):null;return(0,p.jsxs)(iR,{label:b?.name??c("automations.deletedAutomation"),mono:!0,children:[(0,p.jsx)(i4,{..."failed"===a.status?{color:"#ef4444"}:{active:"done"===a.status}}),c(`automations.run.${a.status}`)," \xb7 ",new Date(a.startedAt).toLocaleString(),null!==e?` \xb7 ${e}s`:"",null!==a.sessionId&&(0,p.jsx)(i1,{size:"small",variant:"secondary",onClick:()=>window.open(v(a.sessionId),"_blank"),children:c("automations.openSession")})]},a.id)})})]})})]}),(0,p.jsx)(i_,{status:null!==d?(0,p.jsx)(i0,{summary:c("automations.footerCount",{count:d.length})}):void 0,children:!a&&C&&(0,p.jsx)(i1,{onClick:C,children:c("i18n.close")})})]})}let pr=[{kind:"ui",label:"settings.uiFontFamily",placeholder:"settings.uiFontPlaceholder",reset:"settings.resetUiFont",weightLabel:"settings.uiFontWeight"},{kind:"mono",label:"settings.monoFontFamily",placeholder:"settings.monoFontPlaceholder",reset:"settings.resetMonoFont",weightLabel:"settings.monoFontWeight"}];function ps(){let{t:a}=(0,aG.s)(),b=dP();return(0,p.jsx)("div",{className:"settings-font-rows",children:pr.map(({kind:c,label:d,placeholder:e,reset:f,weightLabel:g})=>{let h=b[`${c}Weight`],i=dx.findIndex(a=>a.value===h);return(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-range-option settings-font-row",children:[(0,p.jsxs)("div",{className:"settings-chat-range-header settings-font-header",children:[(0,p.jsx)("label",{htmlFor:`settings-font-${c}`,children:a(d)}),(0,p.jsx)("input",{id:`settings-font-${c}`,className:`settings-font-input${"mono"===c?" is-mono":""}`,type:"text",value:b[c],placeholder:a(e),maxLength:500,"aria-describedby":"settings-typography-description",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off",spellCheck:!1,onChange:a=>b.setFontPreference(c,a.target.value)}),(0,p.jsx)("output",{htmlFor:`settings-font-${c}-weight`,title:`${a(g)}: ${h}`,children:a(dx[i].label)}),(0,p.jsx)(i1,{variant:"ghost",size:"small",className:"settings-chat-reset",title:a(f),"aria-label":a(f),disabled:!b[c]&&400===h,onClick:()=>b.resetFontPreference(c),children:(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,p.jsx)("input",{id:`settings-font-${c}-weight`,type:"range",min:dx[0].value,max:dx[dx.length-1].value,step:100,value:h,"aria-label":a(g),"aria-valuetext":`${h} ${a(dx[i].label)}`,onChange:a=>b.setFontWeight(c,Number(a.target.value))})]},c)})})}function pt({section:a,size:b=16,strokeWidth:c=1.8}){let d={width:b,height:b,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:c,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:"settings-section-icon"};return"general"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("path",{d:"M20 7h-9M14 17H5"}),(0,p.jsx)("circle",{cx:"7",cy:"7",r:"3"}),(0,p.jsx)("circle",{cx:"17",cy:"17",r:"3"})]}):"models"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,p.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,p.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 15h3M1 9h3M1 15h3"})]}):"skills"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("path",{d:"m12 2-10 5 10 5 10-5-10-5Z"}),(0,p.jsx)("path",{d:"m2 12 10 5 10-5M2 17l10 5 10-5"})]}):"agents"===a?(0,p.jsxs)("svg",{...d,className:"settings-section-icon is-agent",children:[(0,p.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}):"mcp"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("rect",{x:"3",y:"3",width:"18",height:"7",rx:"2"}),(0,p.jsx)("rect",{x:"3",y:"14",width:"18",height:"7",rx:"2"}),(0,p.jsx)("path",{d:"M7 6.5h.01M7 17.5h.01M11 6.5h6M11 17.5h6"})]}):"channels"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("path",{d:"m21.5 4.5-2.9 13.2a1.6 1.6 0 0 1-2.5.9L12 15.6l-2.3 2.3a1 1 0 0 1-1.7-.5L7 13.6 3.4 12.2a.8.8 0 0 1-.1-1.5L20.2 3.2a.9.9 0 0 1 1.3 1.3Z"}),(0,p.jsx)("path",{d:"m7 13.6 11.7-8.4L9.4 14.8"})]}):"automations"===a?(0,p.jsxs)("svg",{...d,children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"M12 7v5l3.5 2"})]}):(0,p.jsx)("svg",{...d,children:(0,p.jsx)("path",{d:"M9 7V2M15 7V2M6 13V8a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v5a6 6 0 0 1-12 0ZM12 19v3"})})}function pu({sessionId:a,onSessionReloaded:b,quoteSelectionEnabled:c,onQuoteSelectionChange:d}){let{locale:e,setLocale:f,supportedLocales:g,t:h}=(0,aG.s)(),{preference:i,setThemePreference:j}=(0,fz.D)(),{width:k,setWidth:l,fontSize:m,setFontSize:n}=dw(),o=dm(),r=aF(),[s,t]=(0,q.useState)(null),[u,v]=(0,q.useState)(!1),[w,x]=(0,q.useState)(null),[y,z]=(0,q.useState)(!1),[A,B]=(0,q.useState)(null),[C,D]=(0,q.useState)(!1),[E,F]=(0,q.useState)(null),[G,H]=(0,q.useState)(!1),[I,J]=(0,q.useState)(null),[K,L]=(0,q.useState)(!1),[M,N]=(0,q.useState)(!1),[O,P]=(0,q.useState)(""),Q=async()=>{N(!0),P("");try{let a=await fetch("/api/web-auth",{method:"DELETE"});if(!a.ok)throw Error(`HTTP ${a.status}`);window.location.replace("/login")}catch{P(h("auth.logoutFailed"))}finally{N(!1)}},R=async c=>{D(!0),F(null);try{let d=await fetch("/api/cache-miss-notices",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:c})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);B(!0===e.enabled),a&&b()}catch(a){F(a instanceof Error?a.message:String(a))}finally{D(!1)}},S=async c=>{v(!0),x(null);try{let d=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:c})}),e=await d.json();if(!d.ok||e.error)throw Error(e.error??`HTTP ${d.status}`);t(e),a&&(await eN(a,{type:"reload"}),b())}catch(a){x(a instanceof Error?a.message:String(a))}finally{v(!1)}},T=async()=>{if(!G){H(!0),J(null);try{throw Error("unsupported or not permitted")}catch(a){J({kind:"error",message:`${h("settings.pushRegisterFailed")} ${a instanceof Error?a.message:String(a)}`})}finally{H(!1)}}};return(0,p.jsxs)("div",{className:"settings-general",children:[(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.appearance")}),(0,p.jsx)("div",{role:"radiogroup","aria-label":h("settings.appearance"),className:"settings-theme-options",children:ig.F$.map(a=>{let b=i===a.id;return(0,p.jsxs)("label",{className:"settings-theme-option","data-system":"auto"===a.id||void 0,"data-wide":"contrast-light"===a.id||"contrast-dark"===a.id||"zenburn"===a.id||void 0,children:[(0,p.jsx)("input",{type:"radio",name:"theme",value:a.id,checked:b,onChange:()=>j(a.id),className:"sr-only"}),"auto"===a.id?(0,p.jsxs)("span",{className:"settings-theme-swatch settings-theme-system","aria-hidden":"true",children:[(0,p.jsx)("span",{"data-theme":"light",className:"settings-theme-chip"}),(0,p.jsx)("span",{"data-theme":"dark",className:"settings-theme-chip"}),(0,p.jsx)("span",{className:"settings-theme-system-name",children:h(a.label)})]}):(0,p.jsx)("span",{className:"settings-theme-swatch","aria-hidden":"true",children:(0,p.jsx)("span",{"data-theme":a.id,className:"settings-theme-fill",children:(0,p.jsx)("span",{className:"settings-theme-name",children:h(a.label)})})}),(0,p.jsx)("span",{className:"sr-only",children:h(a.label)})]},a.id)})})]}),(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.typography")}),(0,p.jsx)("p",{id:"settings-typography-description",className:"settings-general-description",children:h("settings.fontDescription")}),(0,p.jsxs)("div",{className:"settings-chat-options",children:[(0,p.jsx)(ps,{}),(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,p.jsxs)("div",{className:"settings-chat-range-header",children:[(0,p.jsx)("label",{htmlFor:"settings-chat-content-font-size",children:h("settings.chatContentFontSize")}),(0,p.jsxs)("output",{htmlFor:"settings-chat-content-font-size",children:[m,"px"]}),(0,p.jsx)(i1,{variant:"ghost",size:"small",className:"settings-chat-reset",title:h("settings.resetChatContentFontSize"),"aria-label":h("settings.resetChatContentFontSize"),disabled:14===m,onClick:()=>n(14),children:(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,p.jsx)("input",{id:"settings-chat-content-font-size",type:"range",min:12,max:24,step:1,value:m,onChange:a=>n(Number(a.target.value))})]}),(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,p.jsxs)("div",{className:"settings-chat-range-header",children:[(0,p.jsx)("label",{htmlFor:"settings-chat-content-width",children:h("settings.chatContentWidth")}),(0,p.jsxs)("output",{htmlFor:"settings-chat-content-width",children:[k,"px"]}),(0,p.jsx)(i1,{variant:"ghost",size:"small",className:"settings-chat-reset",title:h("settings.resetChatContentWidth"),"aria-label":h("settings.resetChatContentWidth"),disabled:820===k,onClick:()=>l(820),children:(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,p.jsx)("input",{id:"settings-chat-content-width",type:"range",min:820,max:2e3,step:10,value:k,onChange:a=>l(Number(a.target.value))})]})]})]}),(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.chat")}),(0,p.jsxs)("div",{className:"settings-chat-options",children:[(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,p.jsx)("span",{children:h("settings.thinkingExpandedDefault")}),(0,p.jsx)(i2,{checked:y,label:h("settings.thinkingExpandedDefault"),onChange:a=>{(0,io.kF)(a),z(a)}})]}),(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,p.jsx)("span",{children:h("settings.quoteSelection")}),(0,p.jsx)(i2,{checked:c,label:h("settings.quoteSelection"),onChange:d})]}),(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",role:"radiogroup","aria-label":h("settings.enterSendMode"),children:[(0,p.jsx)("span",{children:h("settings.enterSendMode")}),(0,p.jsxs)("div",{className:"settings-send-mode-options",children:[(0,p.jsxs)("label",{className:"settings-send-mode-option",children:[(0,p.jsx)("input",{type:"radio",name:"enter-send-mode",value:"enter",checked:"enter"===o,onChange:()=>dl("enter"),className:"sr-only"}),(0,p.jsx)("span",{className:"settings-send-mode-label",children:h("settings.enterSendModeEnter")})]}),(0,p.jsxs)("label",{className:"settings-send-mode-option",children:[(0,p.jsx)("input",{type:"radio",name:"enter-send-mode",value:"ctrlEnter",checked:"ctrlEnter"===o,onChange:()=>dl("ctrlEnter"),className:"sr-only"}),(0,p.jsx)("span",{className:"settings-send-mode-label",children:h("settings.enterSendModeCtrlEnter")})]})]})]}),(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,p.jsx)("span",{children:h("settings.cacheMissNotices")}),(0,p.jsx)(i2,{checked:!0===A,loading:null===A&&!E||C,label:h("settings.cacheMissNotices"),describedBy:"settings-cache-miss-notices-description",onChange:a=>void R(a)})]})]}),(0,p.jsx)("p",{id:"settings-cache-miss-notices-description",className:"settings-general-description",children:h("settings.cacheMissNoticesDescription")}),E&&(0,p.jsx)("p",{role:"alert",className:"settings-general-error",children:E})]}),(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.sidebar")}),(0,p.jsx)("div",{className:"settings-chat-options",children:(0,p.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",role:"radiogroup","aria-label":h("settings.filesPlacement"),"aria-describedby":"settings-files-placement-description",children:[(0,p.jsx)("span",{children:h("settings.filesPlacement")}),(0,p.jsxs)("div",{className:"settings-send-mode-options",children:[(0,p.jsxs)("label",{className:"settings-send-mode-option",children:[(0,p.jsx)("input",{type:"radio",name:"files-placement",value:"below",checked:"below"===r,onChange:()=>aE("below"),className:"sr-only"}),(0,p.jsx)("span",{className:"settings-send-mode-label",children:h("settings.filesPlacementBelow")})]}),(0,p.jsxs)("label",{className:"settings-send-mode-option",children:[(0,p.jsx)("input",{type:"radio",name:"files-placement",value:"tab",checked:"tab"===r,onChange:()=>aE("tab"),className:"sr-only"}),(0,p.jsx)("span",{className:"settings-send-mode-label",children:h("settings.filesPlacementTab")})]})]})]})}),(0,p.jsx)("p",{id:"settings-files-placement-description",className:"settings-general-description",children:h("settings.filesPlacementDescription")})]}),s?.isWindows&&(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.shellTool")}),(0,p.jsx)("p",{className:"settings-general-description",children:h("settings.shellToolDescription")}),(0,p.jsxs)("div",{className:"settings-shell-option",children:[(0,p.jsx)("span",{children:h("settings.usePowerShell")}),(0,p.jsx)(i2,{checked:s.powerShellEnabled,loading:u,label:h("settings.usePowerShell"),onChange:a=>void S(a)})]}),w&&(0,p.jsx)("p",{role:"alert",className:"settings-general-error",children:w})]}),(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("settings.pushPermission")}),(0,p.jsx)("p",{className:"settings-general-description",children:h("settings.pushPermissionDescription")}),(0,p.jsxs)("div",{className:"settings-shell-option",children:[(0,p.jsx)("span",{children:h("settings.pushPermission")}),(0,p.jsx)("button",{type:"button",className:"config-button config-button-small config-button-secondary",disabled:G,onClick:()=>void T(),children:G?h("settings.pushRegisterLoading"):h("settings.pushRegister")})]}),I&&(0,p.jsx)("p",{role:"status",className:"settings-general-error",style:"ok"===I.kind?{color:"var(--accent)"}:void 0,children:I.message})]}),(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsx)("h3",{className:"settings-general-heading",children:h("common.language")}),(0,p.jsx)("div",{role:"radiogroup","aria-label":h("common.language"),className:"settings-language-options",children:g.map(a=>{let b=e===a.id;return(0,p.jsxs)("button",{type:"button",role:"radio","aria-checked":b,onClick:()=>f(a.id),className:"settings-language-option",children:[(0,p.jsx)("span",{className:"settings-language-radio",children:b&&(0,p.jsx)("span",{className:"settings-language-radio-dot"})}),(0,p.jsx)("span",{className:"settings-language-label",children:a.label}),(0,p.jsx)("span",{className:"settings-language-code",children:a.id})]},a.id)})})]}),K&&(0,p.jsxs)("section",{className:"settings-general-section",children:[(0,p.jsxs)(i1,{variant:"secondary",disabled:M,onClick:()=>void Q(),children:[(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M10 17l5-5-5-5M15 12H3M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"})}),M?h("auth.loggingOut"):h("auth.logOut")]}),O&&(0,p.jsx)("p",{role:"alert",className:"settings-general-error",children:O})]})]})}function pv({cwd:a,sessionId:b,initialSection:c,onClose:d,onSessionReloaded:e,quoteSelectionEnabled:f,onQuoteSelectionChange:g,projectTrust:h,onOpenTrustDialog:i,onProjectTrustChanged:j}){let{t:k}=(0,aG.s)(),[l,m]=(0,q.useState)(c),[n,o]=(0,q.useState)(()=>new Set([l])),r=[{id:"general",label:k("settings.general")},{id:"models",label:k("common.models")},{id:"skills",label:k("common.skills")},{id:"agents",label:k("common.agents")},{id:"plugins",label:k("common.plugins")},{id:"mcp",label:k("settings.mcp")},{id:"channels",label:k("settings.channels")},{id:"automations",label:k("settings.automations")}].map(a=>({...a,requiresProject:ik(a.id)}));ik(l);let s=(0,q.useRef)(null),t=a=>{o(b=>new Set(b).add(a)),m(a),function(a,b=null){if(b)try{let c=il(b);c.section=a,b.setItem(ii,JSON.stringify(c))}catch{}}(a)},u=(a,b)=>n.has(a)?(0,p.jsx)("div",{hidden:l!==a,className:"settings-section-host",children:b},a):null;return(0,p.jsx)("div",{ref:s,role:"dialog","aria-modal":"true","aria-label":k("settings.title"),tabIndex:-1,onClick:a=>{a.target===a.currentTarget&&d()},className:"settings-dialog-backdrop",children:(0,p.jsxs)("div",{className:"settings-dialog-surface",children:[(0,p.jsxs)("div",{className:"settings-dialog-header",children:[(0,p.jsx)("strong",{className:"settings-dialog-title",children:k("settings.title")}),(0,p.jsx)("select",{"aria-label":k("settings.title"),value:l,onChange:a=>t(a.target.value),className:"settings-mobile-section-picker",children:r.map(b=>(0,p.jsx)("option",{value:b.id,disabled:b.requiresProject&&!a,children:b.label},b.id))}),(0,p.jsx)("nav",{"aria-label":k("settings.title"),className:"settings-section-tabs",children:r.map(b=>{let c=l===b.id,d=b.requiresProject&&!a;return(0,p.jsxs)("button",{type:"button",className:"settings-section-tab",disabled:d,title:d?k("settings.projectRequired"):b.label,"aria-current":c?"page":void 0,onClick:()=>t(b.id),children:[(0,p.jsx)(pt,{section:b.id}),(0,p.jsx)("span",{children:b.label})]},b.id)})}),(0,p.jsx)("button",{type:"button",onClick:d,title:k("i18n.close"),"aria-label":k("i18n.close"),className:"config-close-button settings-dialog-close",children:"\xd7"})]}),(0,p.jsxs)("main",{className:"settings-dialog-main",children:[u("general",(0,p.jsx)(pu,{sessionId:b,onSessionReloaded:e,quoteSelectionEnabled:f,onQuoteSelectionChange:g})),u("models",(0,p.jsx)(jJ,{embedded:!0,cwd:a,onClose:d})),a&&u("skills",(0,p.jsx)(jV,{embedded:!0,cwd:a,trust:h,onClose:d},a)),a&&u("agents",(0,p.jsx)(j6,{embedded:!0,cwd:a,sessionId:b,trust:h,onClose:d,onReloaded:e},a)),a&&u("plugins",(0,p.jsx)(kj,{embedded:!0,cwd:a,sessionId:b,trust:h,onClose:d,onReloaded:e},a)),u("mcp",(0,p.jsx)(oZ,{embedded:!0,cwd:a,trust:h,onTrustProject:i,onProjectTrustChanged:j,onClose:d},a??"")),u("channels",(0,p.jsx)(pi,{})),u("automations",(0,p.jsx)(pq,{}))]})]})})}let pw="project-trust-mcp-status";function px({cwd:a,busy:b,error:c,onCancel:d,onConfirm:e,onStatus:f}){let[g,h]=(0,q.useState)({state:"loading"});return(0,q.useRef)(f),(0,p.jsx)(py,{cwd:a,busy:b,error:c,listing:g,onCancel:d,onConfirm:e})}function py({cwd:a,busy:b,error:c,listing:d,onCancel:e,onConfirm:f}){let{t:g}=(0,aG.s)(),h="loading"===d.state,i="loaded"===d.state?function(a){if(a){if(!a.requiresTrust)return"mcp.reason.trust-not-required";if(a.trusted)return"trust.alreadyTrusted"}}(d.status):void 0,j=(0,q.useRef)(null);return(0,q.useRef)(b),(0,q.useRef)(e),(0,p.jsx)("div",{role:"presentation",className:"project-trust-backdrop",onClick:a=>{b||a.target!==a.currentTarget||e()},children:(0,p.jsxs)("div",{ref:j,role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title","aria-describedby":"project-trust-description",tabIndex:-1,className:"project-trust-dialog",children:[(0,p.jsxs)("div",{className:"project-trust-body",children:[(0,p.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#f59e0b",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:"project-trust-icon",children:[(0,p.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,p.jsx)("path",{d:"m9 12 2 2 4-4"})]}),(0,p.jsxs)("div",{className:"project-trust-content",children:[(0,p.jsx)("div",{id:"project-trust-title",className:"project-trust-title",children:g("trust.dialogTitle")}),(0,p.jsx)("div",{id:"project-trust-description",className:"project-trust-text",children:g("trust.dialogBody")}),(0,p.jsx)("code",{className:"project-trust-path",children:kn(a)}),i&&(0,p.jsx)("p",{id:"project-trust-notice",role:"status",className:"project-trust-notice",children:g(i)}),"loaded"===d.state&&void 0!==d.statusError&&(0,p.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:g("mcp.reason.trust-unreadable")}),(0,p.jsx)("code",{className:"project-trust-mcp-detail",children:kn(d.statusError)})]}),(0,p.jsx)(pA,{listing:d})]})]}),c&&(0,p.jsx)(pz,{error:c}),(0,p.jsxs)("div",{className:"project-trust-footer",children:[(0,p.jsx)("button",{type:"button",className:"project-trust-button",onClick:e,disabled:b,children:g(i?"trust.close":"trust.cancel")}),!i&&(0,p.jsx)("button",{type:"button",className:"project-trust-button is-primary",onClick:f,disabled:b||h,"aria-busy":b||void 0,"aria-describedby":h?pw:void 0,children:g(b?"trust.trusting":"trust.trustProject")})]})]})})}function pz({error:a}){let{t:b}=(0,aG.s)(),c=void 0!==a.reason&&"internal"!==a.reason;return(0,p.jsxs)("div",{role:"alert",className:"project-trust-error",children:[b(c?`mcp.reason.${a.reason}`:"trust.trustFailed"),!c&&(0,p.jsx)("code",{className:"project-trust-error-detail",children:kn(a.error)})]})}function pA({listing:a}){let{t:b}=(0,aG.s)();if("loading"===a.state)return(0,p.jsx)("p",{id:pw,role:"status",className:"project-trust-mcp-status",children:b("trust.mcp.loading")});if("failed"===a.state||void 0!==a.listing.mcpError||!a.listing.mcpFile){let c;c="failed"===a.state?a.reason&&"internal"!==a.reason?b(`mcp.reason.${a.reason}`):a.error:a.listing.mcpError;let d="failed"===a.state&&a.timedOut;return(0,p.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:b(d?"trust.mcp.timedOut":"trust.mcp.loadFailed")}),c&&(0,p.jsx)("code",{className:"project-trust-mcp-detail",children:kn(c)})]})}let{mcpFile:c,mcpServers:d}=a.listing;return c.exists||0!==c.problems.length?(0,p.jsxs)("section",{className:"project-trust-mcp","aria-labelledby":"project-trust-mcp-title",children:[(0,p.jsx)("div",{id:"project-trust-mcp-title",className:"project-trust-mcp-title",children:b("trust.mcp.title")}),d.length>0&&(0,p.jsx)("p",{className:"project-trust-mcp-intro",children:b("trust.mcp.intro")}),(0,p.jsx)(pB,{file:c}),0===d.length&&0===c.problems.length&&(0,p.jsx)("p",{className:"project-trust-mcp-line",children:b("trust.mcp.none")}),d.some(a=>!a.validated)&&(0,p.jsx)("p",{className:"project-trust-mcp-line",children:b("trust.mcp.unchecked")}),d.length>0&&(0,p.jsx)("ul",{className:"project-trust-mcp-list",children:d.map(a=>(0,p.jsx)(pE,{server:a},a.name))})]}):null}function pB({file:a}){let{t:b}=(0,aG.s)();return(0,p.jsx)(p.Fragment,{children:a.problems.map(c=>{let d=kx(c,a.realPath);return(0,p.jsxs)("div",{className:"project-trust-mcp-problem",children:[(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:b(`mcp.fileProblem.${c.reason}`)}),d&&(0,p.jsx)("code",{className:"project-trust-mcp-detail",children:d})]},c.reason)})})}function pC({fields:a}){let{t:b}=(0,aG.s)();return(0,p.jsx)(p.Fragment,{children:a.map(a=>{let c=kt(a);return(0,p.jsx)("code",{className:"project-trust-mcp-chip",children:b(c.key,c.params)},`${a.kind}\0${a.name??""}`)})})}function pD({server:a}){let{t:b}=(0,aG.s)();return(0,p.jsx)(p.Fragment,{children:kw(a.variableReferences).map(({variable:a,field:c})=>{let d=kt(c);return(0,p.jsx)("code",{className:"project-trust-mcp-chip",children:b("mcp.server.variableIn",{variable:a,field:b(d.key,d.params)})},`${a}\0${c.kind}\0${c.name??""}`)})})}function pE({server:a}){let b,{t:c}=(0,aG.s)(),d=kr(a),e=void 0===a.invalidError;return(0,p.jsxs)("li",{className:"project-trust-mcp-server",children:[(0,p.jsxs)("div",{className:"project-trust-mcp-server-head",children:[(0,p.jsx)("span",{className:"project-trust-mcp-server-name",children:kn(a.name)}),a.transport&&(0,p.jsx)("span",{className:"project-trust-mcp-tag",children:c(`mcp.transport.${a.transport}`)})]}),void 0!==d&&(0,p.jsx)("code",{className:"project-trust-mcp-target",children:d}),void 0!==a.cwd&&(0,p.jsx)("p",{className:"project-trust-mcp-line",children:c("trust.mcp.cwd",{path:kn(a.cwd)})}),ks(a)&&(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:c("mcp.server.hiddenCharacters")}),void 0!==a.invalidError&&(0,p.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[c("mcp.server.invalid")," ",(0,p.jsx)("code",{className:"project-trust-mcp-chip",children:kn(a.invalidError)})]}),a.webPasswordField&&(0,p.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[c("mcp.server.webPassword")," ",(0,p.jsx)(pC,{fields:[a.webPasswordField]})]}),!a.enabled&&(0,p.jsx)("p",{className:"project-trust-mcp-line",children:c("mcp.server.disabled")}),e&&a.commandFields.length>0&&(0,p.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[c("mcp.server.commandFields")," ",(0,p.jsx)(pC,{fields:a.commandFields})]}),e&&a.variableReferences.length>0&&(0,p.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[c(ku(a))," ",(0,p.jsx)(pD,{server:a})]}),a.replacesGlobal&&(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:c("mcp.server.replacesGlobal")}),a.override&&(0,p.jsx)("p",{className:"project-trust-mcp-line is-warning",children:c((b=kv(a.override.keys)).key,b.params)}),a.masked&&(0,p.jsx)("p",{className:"project-trust-mcp-line is-dim",children:c("mcp.server.masked")})]})}function pF(a){return"message"===a.type&&"message"in a&&"system"!==a.message.role}function pG(a){let b=a,c=b.branchPreview,d=pF(b.entry)?b.entry:null,e=b.compressedEntryIds?.length??0;for(;1===b.children.length;)b=b.children[0],c??=b.branchPreview,!d&&pF(b.entry)&&(d=b.entry),e+=1+(b.compressedEntryIds?.length??0);return{node:b,skipped:e,branchPreview:c,labelEntry:d??b.entry}}function pH(a){if(a.length>1)return!0;let b=[...a];for(;b.length>0;){let a=b.pop();if(a.children.length>1)return!0;for(let c of a.children)b.push(c)}return!1}function pI({node:a,activePathIds:b,depth:c,isLast:d,parentLines:e,onSelect:f}){let{node:g,skipped:h,branchPreview:i,labelEntry:j}=pG(a),k=b.has(g.entry.id),l=b.has(a.entry.id)||b.has(g.entry.id),m=i?.text??function(a){if("message"===a.type&&pF(a)){let b=a.message,c=b.content,d="";if("string"==typeof c?d=c:Array.isArray(c)&&(d=c.filter(a=>"text"===a.type).map(a=>a.text).join(" ")),d.length>40&&(d=d.slice(0,40)+"…"),d)return d;if("assistant"===b.role)return"[assistant]"}return a.type}(j),n=i?i.role??null:pF(j)?j.message.role:null;return(0,p.jsxs)("div",{children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:f?"pointer":"default"},onClick:f?()=>f(g.entry.id):void 0,children:[e.map((a,b)=>(0,p.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:a&&(0,p.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},b)),(0,p.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,p.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:d?"50%":0,width:1,background:"var(--border)"}}),(0,p.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,p.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:k?"var(--accent)":l?"var(--text-muted)":"var(--border)",border:k?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),n&&(0,p.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===n?"var(--accent)":"var(--text-dim)",background:"user"===n?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===n?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===n?"U":"A"}),h>0&&(0,p.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",h]}),(0,p.jsx)("span",{style:{fontSize:11,color:k?"var(--text)":l?"var(--text-muted)":"var(--text-dim)",fontWeight:k?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:m})]}),g.children.map((a,h)=>(0,p.jsx)(pI,{node:a,activePathIds:b,depth:c+1,isLast:h===g.children.length-1,parentLines:[...e,!d],onSelect:f},a.entry.id))]})}function pJ({tree:a,activeLeafId:b,onLeafChange:c,inline:d,containerRef:e,open:f,onToggle:g,hasSession:h,compact:i,hideInlineButton:j,locked:k=!1}){let{t:l}=(0,aG.s)(),[m,n]=(0,q.useState)(!1),o=void 0!==f?f:m,r=(0,q.useRef)(null),[s,t]=(0,q.useState)(null),u=(0,q.useMemo)(()=>(function(a,b){if(!b)return new Set;let c=a.map(a=>({node:a,path:[a.entry.id]}));for(;c.length>0;){let{node:a,path:d}=c.pop();if(a.entry.id===b||a.compressedEntryIds?.includes(b))return new Set(d);for(let b of a.children)c.push({node:b,path:[...d,b.entry.id]})}return new Set})(a,b),[a,b]),v=(0,q.useCallback)(a=>{c(a)},[c]),w=k?void 0:v,x=k&&(0,p.jsx)("div",{style:{padding:"2px 0 4px",fontSize:11,color:"var(--text-dim)",fontStyle:"italic"},children:l("i18n.branchesLockedWhileRunning")}),y=h?pH(a)?null:l("i18n.noBranches"):l("i18n.noActiveSession"),z=function(a){if(a.length>1)return a;if(0===a.length)return[];let b=pG(a[0]).node;return b.children.length>1?b.children:[]}(a),A=!y&&z.length>0,B=(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:A?"var(--accent)":"var(--text-dim)",flexShrink:0},children:[(0,p.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,p.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,p.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,p.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),C=(0,p.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:o?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,p.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return d?(0,p.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,p.jsxs)("button",{ref:r,onClick:()=>g?g():n(a=>!a),style:{display:j?"none":"flex",alignItems:"center",gap:6,height:"100%",padding:"0 12px",background:o?"var(--bg-selected)":"none",border:"none",borderTop:o?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:"pointer",color:o?"var(--text)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.color=o?"var(--text)":"var(--text-muted)"},title:l("i18n.branches"),"aria-label":l("i18n.branches"),"aria-pressed":o,children:[B,!i&&(0,p.jsx)("span",{children:l("i18n.branches")})]}),o&&s&&(0,p.jsx)("div",{style:{position:"fixed",top:s.top,left:s.left,width:s.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:A?(0,p.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[x,z.map((a,b)=>(0,p.jsx)(pI,{node:a,activePathIds:u,depth:0,isLast:b===z.length-1,parentLines:[],onSelect:w},a.entry.id))]}):(0,p.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:y})})]}):(0,p.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,p.jsxs)("button",{onClick:()=>n(a=>!a),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[B,(0,p.jsx)("span",{style:{color:"var(--text-muted)"},children:l("i18n.branches")}),C]}),o&&(0,p.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:A?(0,p.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[x,z.map((a,b)=>(0,p.jsx)(pI,{node:a,activePathIds:u,depth:0,isLast:b===z.length-1,parentLines:[],onSelect:w},a.entry.id))]}):(0,p.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:y??l("i18n.noBranches")})})]})}function pK({loading:a,prompt:b,translate:c}){return(0,p.jsxs)("section",{className:"system-prompt-panel","aria-label":c("system.prompt"),children:[(0,p.jsx)("div",{className:"system-prompt-scroll",children:b?(0,p.jsx)("div",{className:"system-prompt-text",children:b}):(0,p.jsx)("div",{className:"system-prompt-empty",children:c(""===b?"system.empty":a?"system.loading":"system.load")})}),(0,p.jsx)("style",{children:`
|
|
17
|
+
.system-prompt-panel {
|
|
18
|
+
display: flex;
|
|
19
|
+
height: min(600px, 75dvh);
|
|
20
|
+
min-height: 220px;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
background: var(--bg-panel);
|
|
23
|
+
border-bottom: 1px solid var(--border);
|
|
24
|
+
}
|
|
25
|
+
.system-prompt-scroll {
|
|
26
|
+
min-height: 0;
|
|
27
|
+
flex: 1;
|
|
28
|
+
overflow: auto;
|
|
29
|
+
padding: 12px 16px;
|
|
30
|
+
}
|
|
31
|
+
.system-prompt-text {
|
|
32
|
+
color: var(--text-muted);
|
|
33
|
+
font-family: var(--font-mono);
|
|
34
|
+
font-size: 12px;
|
|
35
|
+
line-height: 1.6;
|
|
36
|
+
overflow-wrap: anywhere;
|
|
37
|
+
white-space: pre-wrap;
|
|
38
|
+
}
|
|
39
|
+
.system-prompt-empty {
|
|
40
|
+
padding: 10px 0;
|
|
41
|
+
color: var(--text-muted);
|
|
42
|
+
font-size: 12px;
|
|
43
|
+
font-style: italic;
|
|
44
|
+
}
|
|
45
|
+
`})]})}function pL(a){if("string"==typeof a)return a;if(void 0===a)return"";try{return JSON.stringify(a)}catch{return String(a)}}function pM({children:a}){return(0,p.jsx)("div",{className:"tool-definitions-empty",children:a})}function pN({loading:a,tools:b,translate:c}){let d=(0,q.useMemo)(()=>b?.filter(a=>a.active&&!a.declarationHidden)??null,[b]),[e,f]=(0,q.useState)(null),g=d?.find(a=>a.name===e)??d?.[0]??null,h=g?function(a){if(!a||!a.properties||"object"!=typeof a.properties)return[];let b=a.properties,c=new Set(Array.isArray(a.required)?a.required.filter(a=>"string"==typeof a):[]);return Object.entries(b).map(([a,b])=>{let d=b&&"object"==typeof b?b:{};return{name:a,type:function a(b){let c=Array.isArray(b.anyOf)?b.anyOf:Array.isArray(b.oneOf)?b.oneOf:null;if(c)return c.map(b=>b&&"object"==typeof b?a(b):"unknown").filter((a,b,c)=>c.indexOf(a)===b).join(" | ");if(void 0!==b.const)return pL(b.const);if(Array.isArray(b.enum)&&b.enum.length>0&&void 0===b.type)return[...new Set(b.enum.map(a=>null===a?"null":typeof a))].join(" | ");let d=b.type,e=Array.isArray(d)?d.filter(a=>"string"==typeof a).join(" | "):"string"==typeof d?d:"string"==typeof b.$ref?b.$ref.split("/").pop()??"object":"unknown";if("array"===e){let c=b.items,d=c&&"object"==typeof c?a(c):"unknown";return`${d}[]`}return e}(d),description:"string"==typeof d.description?d.description:void 0,required:c.has(a),allowedValues:Array.isArray(d.enum)?d.enum.map(pL).join(", "):void 0,defaultValue:void 0===d.default?void 0:pL(d.default)}})}(g.parameters):[];return(0,p.jsxs)("div",{className:"tool-definitions-panel",children:[(0,p.jsx)("nav",{className:"tool-definitions-sidebar","aria-label":c("tools.title"),children:(0,p.jsx)("div",{className:"tool-definitions-list",children:d&&d.length>0?d.map(a=>{let b=a.name===g?.name;return(0,p.jsx)("button",{type:"button",className:`tool-definitions-item${b?" selected":""}`,"aria-pressed":b,onClick:()=>f(a.name),children:(0,p.jsx)("code",{children:a.name})},a.name)}):d?(0,p.jsx)(pM,{children:c("tools.noTools")}):(0,p.jsx)(pM,{children:a?c("tools.loading"):c("tools.load")})})}),(0,p.jsx)("section",{className:"tool-definition-detail","aria-label":c("tools.details"),children:g?(0,p.jsxs)("div",{className:"tool-definition-scroll",children:[g.description&&(0,p.jsxs)("section",{className:"tool-definition-section",children:[(0,p.jsx)("div",{className:"tool-definition-section-label",children:c("tools.description")}),(0,p.jsx)("div",{className:"tool-definition-description",children:g.description})]}),(0,p.jsxs)("section",{className:"tool-definition-section",children:[(0,p.jsxs)("div",{className:"tool-definition-section-label",children:[(0,p.jsx)("span",{children:c("tools.parameters")}),(0,p.jsx)("span",{children:c("tools.parameterCount",{count:h.length})})]}),h.length>0?(0,p.jsx)("div",{className:"tool-definition-fields",children:h.map(a=>(0,p.jsxs)("div",{className:"tool-definition-field",children:[(0,p.jsxs)("div",{className:"tool-definition-field-name",children:[(0,p.jsx)("code",{children:a.name}),(0,p.jsx)("span",{className:a.required?"required":void 0,children:c(a.required?"tools.required":"tools.optional")})]}),(0,p.jsxs)("div",{className:"tool-definition-field-value",children:[(0,p.jsx)("code",{className:"tool-definition-type",children:a.type}),a.description&&(0,p.jsx)("div",{children:a.description}),a.allowedValues&&(0,p.jsxs)("div",{className:"tool-definition-meta",children:[c("tools.allowedValues"),": ",(0,p.jsx)("code",{children:a.allowedValues})]}),void 0!==a.defaultValue&&(0,p.jsxs)("div",{className:"tool-definition-meta",children:[c("tools.defaultValue"),": ",(0,p.jsx)("code",{children:a.defaultValue})]})]})]},a.name))}):(0,p.jsx)("div",{className:"tool-definition-no-parameters",children:c("tools.noParameters")})]}),g.promptGuidelines&&g.promptGuidelines.length>0&&(0,p.jsxs)("section",{className:"tool-definition-section",children:[(0,p.jsx)("div",{className:"tool-definition-section-label",children:c("tools.guidelines")}),(0,p.jsx)("ul",{className:"tool-definition-guidelines",children:g.promptGuidelines.map((a,b)=>(0,p.jsx)("li",{children:a},`${g.name}:${b}`))})]})]}):(0,p.jsx)(pM,{children:d?c("tools.noTools"):a?c("tools.loading"):c("tools.load")})}),(0,p.jsx)("style",{children:`
|
|
46
|
+
.tool-definitions-panel {
|
|
47
|
+
display: grid;
|
|
48
|
+
grid-template-columns: clamp(112px, 26%, 220px) minmax(0, 1fr);
|
|
49
|
+
height: min(600px, 75dvh);
|
|
50
|
+
min-height: 240px;
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
background: var(--bg-panel);
|
|
53
|
+
border-bottom: 1px solid var(--border);
|
|
54
|
+
}
|
|
55
|
+
.tool-definitions-sidebar,
|
|
56
|
+
.tool-definition-detail {
|
|
57
|
+
display: flex;
|
|
58
|
+
min-width: 0;
|
|
59
|
+
min-height: 0;
|
|
60
|
+
flex-direction: column;
|
|
61
|
+
}
|
|
62
|
+
.tool-definitions-sidebar {
|
|
63
|
+
border-right: 1px solid var(--border);
|
|
64
|
+
background: color-mix(in srgb, var(--bg-panel) 94%, var(--bg));
|
|
65
|
+
}
|
|
66
|
+
.tool-definitions-list,
|
|
67
|
+
.tool-definition-scroll {
|
|
68
|
+
min-height: 0;
|
|
69
|
+
flex: 1;
|
|
70
|
+
overflow: auto;
|
|
71
|
+
}
|
|
72
|
+
.tool-definitions-item {
|
|
73
|
+
display: flex;
|
|
74
|
+
width: 100%;
|
|
75
|
+
min-height: 38px;
|
|
76
|
+
align-items: center;
|
|
77
|
+
padding: 8px 12px;
|
|
78
|
+
border: none;
|
|
79
|
+
border-bottom: 1px solid var(--border);
|
|
80
|
+
background: transparent;
|
|
81
|
+
color: var(--text-muted);
|
|
82
|
+
cursor: pointer;
|
|
83
|
+
text-align: left;
|
|
84
|
+
}
|
|
85
|
+
.tool-definitions-item:hover {
|
|
86
|
+
background: var(--bg-hover);
|
|
87
|
+
color: var(--text);
|
|
88
|
+
}
|
|
89
|
+
.tool-definitions-item.selected {
|
|
90
|
+
background: var(--bg-selected);
|
|
91
|
+
box-shadow: inset 2px 0 0 var(--accent);
|
|
92
|
+
color: var(--text);
|
|
93
|
+
}
|
|
94
|
+
.tool-definitions-item code {
|
|
95
|
+
max-width: 100%;
|
|
96
|
+
color: inherit;
|
|
97
|
+
font-size: 11px;
|
|
98
|
+
font-weight: 600;
|
|
99
|
+
overflow-wrap: anywhere;
|
|
100
|
+
}
|
|
101
|
+
.tool-definition-scroll {
|
|
102
|
+
padding: 14px 16px 20px;
|
|
103
|
+
}
|
|
104
|
+
.tool-definition-section + .tool-definition-section {
|
|
105
|
+
margin-top: 18px;
|
|
106
|
+
}
|
|
107
|
+
.tool-definition-section-label {
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: space-between;
|
|
111
|
+
gap: 8px;
|
|
112
|
+
margin-bottom: 7px;
|
|
113
|
+
color: var(--text-dim);
|
|
114
|
+
font-size: 11px;
|
|
115
|
+
font-weight: 600;
|
|
116
|
+
}
|
|
117
|
+
.tool-definition-section-label > span:last-child {
|
|
118
|
+
font-weight: 400;
|
|
119
|
+
white-space: nowrap;
|
|
120
|
+
}
|
|
121
|
+
.tool-definition-description {
|
|
122
|
+
color: var(--text-muted);
|
|
123
|
+
font-size: 12px;
|
|
124
|
+
line-height: 1.55;
|
|
125
|
+
overflow-wrap: anywhere;
|
|
126
|
+
white-space: pre-wrap;
|
|
127
|
+
}
|
|
128
|
+
.tool-definition-fields {
|
|
129
|
+
border-top: 1px solid var(--border);
|
|
130
|
+
}
|
|
131
|
+
.tool-definition-field {
|
|
132
|
+
display: grid;
|
|
133
|
+
grid-template-columns: minmax(88px, 0.75fr) minmax(0, 1.5fr);
|
|
134
|
+
gap: 12px;
|
|
135
|
+
padding: 9px 0;
|
|
136
|
+
border-bottom: 1px solid var(--border);
|
|
137
|
+
font-size: 11px;
|
|
138
|
+
line-height: 1.45;
|
|
139
|
+
}
|
|
140
|
+
.tool-definition-field-name {
|
|
141
|
+
display: flex;
|
|
142
|
+
min-width: 0;
|
|
143
|
+
flex-direction: column;
|
|
144
|
+
gap: 3px;
|
|
145
|
+
color: var(--text);
|
|
146
|
+
}
|
|
147
|
+
.tool-definition-field-name code {
|
|
148
|
+
overflow-wrap: anywhere;
|
|
149
|
+
}
|
|
150
|
+
.tool-definition-field-name span {
|
|
151
|
+
color: var(--text-dim);
|
|
152
|
+
font-size: 10px;
|
|
153
|
+
}
|
|
154
|
+
.tool-definition-field-name span.required {
|
|
155
|
+
color: var(--accent);
|
|
156
|
+
}
|
|
157
|
+
.tool-definition-field-value {
|
|
158
|
+
min-width: 0;
|
|
159
|
+
color: var(--text-muted);
|
|
160
|
+
overflow-wrap: anywhere;
|
|
161
|
+
}
|
|
162
|
+
.tool-definition-type {
|
|
163
|
+
display: block;
|
|
164
|
+
margin-bottom: 3px;
|
|
165
|
+
color: var(--text);
|
|
166
|
+
}
|
|
167
|
+
.tool-definition-meta {
|
|
168
|
+
margin-top: 4px;
|
|
169
|
+
color: var(--text-dim);
|
|
170
|
+
}
|
|
171
|
+
.tool-definition-meta code {
|
|
172
|
+
color: var(--text-muted);
|
|
173
|
+
}
|
|
174
|
+
.tool-definition-no-parameters {
|
|
175
|
+
padding: 2px 0 10px;
|
|
176
|
+
color: var(--text-dim);
|
|
177
|
+
font-size: 11px;
|
|
178
|
+
}
|
|
179
|
+
.tool-definition-guidelines {
|
|
180
|
+
margin: 0;
|
|
181
|
+
padding-left: 18px;
|
|
182
|
+
color: var(--text-muted);
|
|
183
|
+
font-size: 11px;
|
|
184
|
+
line-height: 1.5;
|
|
185
|
+
}
|
|
186
|
+
.tool-definitions-empty {
|
|
187
|
+
padding: 14px 12px;
|
|
188
|
+
color: var(--text-muted);
|
|
189
|
+
font-size: 12px;
|
|
190
|
+
font-style: italic;
|
|
191
|
+
overflow-wrap: anywhere;
|
|
192
|
+
}
|
|
193
|
+
@media (max-width: 640px) {
|
|
194
|
+
.tool-definitions-panel {
|
|
195
|
+
grid-template-columns: 112px minmax(0, 1fr);
|
|
196
|
+
}
|
|
197
|
+
.tool-definitions-item {
|
|
198
|
+
padding: 8px 10px;
|
|
199
|
+
}
|
|
200
|
+
.tool-definition-scroll {
|
|
201
|
+
padding: 12px;
|
|
202
|
+
}
|
|
203
|
+
.tool-definition-field {
|
|
204
|
+
grid-template-columns: minmax(74px, 0.7fr) minmax(0, 1.3fr);
|
|
205
|
+
gap: 9px;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
`})]})}function pO(a){return a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(0)}k`:String(a)}function pP(a){return a>0?a>=.01?`$${a.toFixed(2)}`:"<$0.01":null}function pQ(a){if(a<=0)return"0s";let b=Math.floor(a/1e3),c=Math.floor(b/3600),d=Math.floor(b%3600/60),e=b%60;return c>0?`${c}h ${d}m`:d>0?`${d}m ${e}s`:`${e}s`}function pR({usage:a,style:b}){let{locale:c,t:d}=(0,aG.s)(),e=pP(a.cost);return(0,p.jsxs)("span",{title:function(a,b,c){let{tokens:d}=a;return[`${b("session.totalActive")}: ${pQ(a.totalActiveMs)}`,`${b("session.input")}: ${d.input.toLocaleString(c)}`,`${b("session.output")}: ${d.output.toLocaleString(c)}`,...d.cacheRead>0?[`${b("session.cacheRead")}: ${d.cacheRead.toLocaleString(c)}`]:[],...d.cacheWrite>0?[`${b("session.cacheWrite")}: ${d.cacheWrite.toLocaleString(c)}`]:[],`${b("session.total")}: ${d.total.toLocaleString(c)}`,...a.cost>0?[`${b("session.cost")}: $${a.cost.toFixed(4)}`]:[],`${b("session.toolCalls")}: ${a.toolCalls.toLocaleString(c)}`].join("\n")}(a,d,c),style:{display:"flex",alignItems:"center",gap:10,minWidth:0,color:"var(--text-dim)",fontSize:11,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",...b},children:[a.totalActiveMs>0&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3},children:[(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"M12 7v5l3 2"})]}),pQ(a.totalActiveMs)]}),a.tokens.total>0&&(0,p.jsx)("span",{children:d("agentSwitcher.tokens",{count:pO(a.tokens.total)})}),e&&(0,p.jsx)("span",{style:{color:"var(--text-muted)"},children:e})]})}function pS(a){return!!(a&&(a.tokens.total>0||a.totalActiveMs>0))}function pT(a){return a.name||a.firstMessage||a.id.slice(0,12)}function pU(a){return"running"===a||"starting"===a?"var(--accent)":"completed"===a?"#16a34a":"failed"===a?"#dc2626":"aborted"===a?"#d97706":"var(--text-dim)"}function pV({status:a}){return"running"===a||"starting"===a?(0,p.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,p.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"failed"===a?(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===a||"interrupted"===a?(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function pW({session:a,main:b,selected:c,running:d,usage:e,onSelect:f,tabShown:g,onToggleTab:h}){let{locale:i,t:j}=(0,aG.s)(),k=a.relation?.kind==="subagent"?a.relation:null,l=d?"running":k?.status??"completed",m=b?j("agentSwitcher.main"):k?.description||pT(a),n=b?pT(a):`${k?.profile??j("agentSwitcher.subagent")} \xb7 ${function(a,b){let c=new Date(a).getTime();if(!Number.isFinite(c))return"";let d=Math.round((c-Date.now())/1e3),e=new Intl.RelativeTimeFormat(b,{numeric:"auto"});if(60>Math.abs(d))return e.format(d,"second");let f=Math.round(d/60);if(60>Math.abs(f))return e.format(f,"minute");let g=Math.round(f/60);return 24>Math.abs(g)?e.format(g,"hour"):e.format(Math.round(g/24),"day")}(a.modified,i)}`;return(0,p.jsxs)("div",{style:{display:"flex",borderBottom:"1px solid var(--border)",borderLeft:c?"2px solid var(--accent)":"2px solid transparent",background:c?"var(--bg-selected)":"transparent"},children:[(0,p.jsxs)("button",{type:"button",role:"option","aria-selected":c,onClick:f,style:{flex:1,minWidth:0,minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",background:"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:a=>{c||(a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{c||(a.currentTarget.style.background="transparent")},children:[(0,p.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:b?"var(--text-muted)":"var(--accent)"},children:b?(0,p.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,p.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,p.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,p.jsxs)("span",{style:{minWidth:0},children:[(0,p.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:c?600:500},title:m,children:m}),(0,p.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:n,children:n}),pS(e)&&(0,p.jsx)(pR,{usage:e,style:{marginTop:3}})]}),(0,p.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:b&&!d?"var(--text-dim)":pU(l),fontSize:11,whiteSpace:"nowrap"},children:b&&!d?c?j("agentSwitcher.current"):null:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(pV,{status:l}),(0,p.jsx)("span",{children:j(`agentSwitcher.status.${l}`)})]})})]}),h&&(0,p.jsx)("button",{type:"button",onClick:h,title:j(g?"subagent.closeTab":"subagent.openTab"),"aria-label":j(g?"subagent.closeTab":"subagent.openTab"),"aria-pressed":g,style:{width:36,display:"grid",placeItems:"center",border:"none",borderLeft:"1px solid var(--border)",background:"none",color:g?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",g||(a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background="none",g||(a.currentTarget.style.color="var(--text-muted)")},children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,p.jsx)("path",{d:"M15 4v16"}),g&&(0,p.jsx)("path",{d:"M15 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4z",fill:"currentColor"})]})})]})}function pX({rootSession:a,subagents:b,selectedSessionId:c,runningSessionIds:d,onSelectSession:e,openSubagentTabIds:f,onToggleSubagentTab:g}){let{t:h}=(0,aG.s)(),[i,j]=(0,q.useState)(""),k=(0,q.useMemo)(()=>[...b].sort((a,b)=>{let c=d.has(a.id);return c!==d.has(b.id)?c?-1:1:b.modified.localeCompare(a.modified)}),[d,b]),l=i.trim().toLowerCase(),m=l?k.filter(a=>{let b=a.relation?.kind==="subagent"?a.relation:null;return[b?.description,b?.profile,a.name,a.firstMessage].some(a=>a?.toLowerCase().includes(l))}):k,n=u(b,d),o=(0,q.useMemo)(()=>[a.id,...b.map(a=>a.id)],[a.id,b]),r=(o.filter(a=>d.has(a)).join(","),function(a){let[b,c]=(0,q.useState)({});return a.join(","),b}(o)),s=(0,q.useMemo)(()=>{let a=o.map(a=>r[a]).filter(pS);if(0===a.length)return null;let b={tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0,toolCalls:0,totalActiveMs:0};for(let c of a)b.tokens.input+=c.tokens.input,b.tokens.output+=c.tokens.output,b.tokens.cacheRead+=c.tokens.cacheRead,b.tokens.cacheWrite+=c.tokens.cacheWrite,b.tokens.total+=c.tokens.total,b.cost+=c.cost,b.toolCalls+=c.toolCalls,b.totalActiveMs+=c.totalActiveMs;return b},[o,r]);return(0,p.jsx)("div",{role:"listbox","aria-label":h("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,p.jsxs)("div",{children:[(0,p.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,p.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:h("agentSwitcher.title")}),(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:h("agentSwitcher.count",{count:b.length})}),(0,p.jsxs)("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,minWidth:0},children:[s&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,overflow:"hidden"},children:[(0,p.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},title:h("agentSwitcher.totalUsageHint"),children:h("agentSwitcher.totalUsage")}),(0,p.jsx)(pR,{usage:s})]}),n>0&&(0,p.jsx)("span",{style:{color:"var(--accent)",fontSize:11,whiteSpace:"nowrap"},children:h("agentSwitcher.runningCount",{count:n})})]})]}),b.length>8&&(0,p.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,p.jsx)("input",{type:"search",value:i,onChange:a=>j(a.target.value),placeholder:h("agentSwitcher.search"),"aria-label":h("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,p.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,p.jsx)(pW,{session:a,main:!0,selected:a.id===c,running:d.has(a.id),usage:r[a.id],onSelect:()=>e(a)}),m.map(a=>(0,p.jsx)(pW,{session:a,selected:a.id===c,running:d.has(a.id),usage:r[a.id],onSelect:()=>e(a),tabShown:f.has(a.id),onToggleTab:()=>{let b=a.relation?.kind==="subagent"?a.relation:null;g(a.id,b?.description||b?.profile||pT(a))}},a.id)),0===m.length&&(0,p.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:h("agentSwitcher.noMatches")})]})]})})}let pY={messages:[],entryIds:[],oldestEntryId:null,hasMore:!1};function pZ({sessionId:a,fallbackLabel:b,running:c,onOpenFile:d}){let{t:e,locale:f}=(0,aG.s)(),[g,h]=(0,q.useState)(null),[i,j]=(0,q.useState)(b),[k,l]=(0,q.useState)(pY),{messages:m,entryIds:n,oldestEntryId:o,hasMore:r}=k,s=(0,q.useRef)(k);s.current=k;let[t,u]=(0,q.useState)(!1),[v,w]=(0,q.useState)(!1),[x,y]=(0,q.useState)(null),[z,A]=(0,q.useState)(0),B=(0,q.useRef)(null),C=(0,q.useRef)(!0),D=(0,q.useRef)(null),E=(0,q.useRef)(!1),F=(0,q.useRef)(null),G=(0,q.useCallback)(async()=>{if(!o||E.current)return;E.current=!0;let b=new AbortController;F.current=b,u(!0);try{let c,d=await fetch((c=new URLSearchParams({deferThinking:"1",deferMedia:"1",tail:String(100)}),o&&c.set("before",o),`/api/sessions/${encodeURIComponent(a)}/context?${c}`),{signal:b.signal,cache:"no-store"});if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.json();if(s.current.oldestEntryId!==o)return;let f=B.current;D.current=f?f.scrollHeight-f.scrollTop:null,l(a=>{var b,c;return c={messages:(b=e.context).messages??[],entryIds:b.entryIds??[],oldestEntryId:b.oldestEntryId??null,hasMore:!!b.hasMore},a.oldestEntryId!==o?a:{messages:[...c.messages,...a.messages],entryIds:[...c.entryIds,...a.entryIds],oldestEntryId:c.oldestEntryId,hasMore:c.hasMore}})}catch{}finally{E.current=!1,F.current===b&&(F.current=null),b.signal.aborted||u(!1)}},[o,a]),H=(0,q.useCallback)(()=>{let a=B.current;a&&(C.current=a.scrollHeight-a.scrollTop-a.clientHeight<60)},[]),I=(0,q.useMemo)(()=>(function(a){let b=new Map;for(let c of a)"toolResult"===c.role&&b.set(c.toolCallId,c);return b})(m),[m]),J=(0,q.useMemo)(()=>(0,cT.n_)(m),[m]),K=g?.relation?.kind==="subagent"?g.relation:null,L=c?"running":K?.status??"completed";return(0,p.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minWidth:0},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,minHeight:36},children:[(0,p.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--accent)",flexShrink:0},"aria-hidden":"true",children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,p.jsx)("strong",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:600},title:K?`${K.profile??e("agentSwitcher.subagent")} \xb7 ${i}`:i,children:i}),(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,color:pU(L),fontSize:11,whiteSpace:"nowrap",flexShrink:0},title:K?.description,children:[(0,p.jsx)(pV,{status:L}),(0,p.jsx)("span",{children:e(`agentSwitcher.status.${L}`)})]}),(0,p.jsx)("button",{type:"button",onClick:()=>A(a=>a+1),title:e("subagent.refresh"),"aria-label":e("subagent.refresh"),style:{display:"grid",placeItems:"center",width:24,height:24,flexShrink:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",padding:0},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-dim)"},children:(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,p.jsx)("path",{d:"M21 3v6h-6"})]})})]}),(0,p.jsx)(ek.Z,{snapshot:J}),(0,p.jsx)("div",{ref:B,onScroll:H,style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"10px 0"},lang:f,children:v?(0,p.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:e(c?"subagent.viewer.starting":"subagent.viewer.error")}):x&&0===m.length?(0,p.jsxs)("div",{role:"alert",style:{padding:"24px 16px",color:"#dc2626",fontSize:12,textAlign:"center"},children:[e("subagent.viewer.error"),(0,p.jsx)("div",{style:{marginTop:6,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:x})]}):(0,p.jsxs)(p.Fragment,{children:[r&&(0,p.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:"4px 0 10px"},children:(0,p.jsx)("button",{type:"button",onClick:G,disabled:t,style:{fontSize:11,padding:"4px 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:t?"default":"pointer"},children:e("i18n.loadMore")})}),m.map((b,c)=>(0,p.jsx)("div",{style:{padding:"2px 12px"},children:(0,p.jsx)(cX.Dx,{message:b,toolResults:I,cwd:g?.cwd,onOpenFile:d,sessionId:a,entryId:n[c]})},n[c]??c)),0===m.length&&!x&&(0,p.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:e("subagent.viewer.empty")})]})})]})}var p$=Object.defineProperty,p_=Object.getOwnPropertyDescriptor,p0=(a,b,c,d)=>{for(var e,f=d>1?void 0:d?p_(b,c):b,g=a.length-1;g>=0;g--)(e=a[g])&&(f=(d?e(b,c,f):e(f))||f);return d&&f&&p$(b,c,f),f},p1=(a,b)=>(c,d)=>b(c,d,a);function p2(a){return a>65535?String.fromCharCode(((a-=65536)>>10)+55296)+String.fromCharCode(a%1024+56320):String.fromCharCode(a)}var p3=class a{constructor(){this.fg=0,this.bg=0,this.extended=new p4}static toColorRGB(a){return[a>>>16&255,a>>>8&255,255&a]}static fromColorRGB(a){return(255&a[0])<<16|(255&a[1])<<8|255&a[2]}clone(){let b=new a;return b.fg=this.fg,b.bg=this.bg,b.extended=this.extended.clone(),b}isInverse(){return 0x4000000&this.fg}isBold(){return 0x8000000&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:0x10000000&this.fg}isBlink(){return 0x20000000&this.fg}isInvisible(){return 0x40000000&this.fg}isItalic(){return 0x4000000&this.bg}isDim(){return 0x8000000&this.bg}isStrikethrough(){return 0x80000000&this.fg}isProtected(){return 0x20000000&this.bg}isOverline(){return 0x40000000&this.bg}getFgColorMode(){return 0x3000000&this.fg}getBgColorMode(){return 0x3000000&this.bg}isFgRGB(){return(0x3000000&this.fg)==0x3000000}isBgRGB(){return(0x3000000&this.bg)==0x3000000}isFgPalette(){return(0x3000000&this.fg)==0x1000000||(0x3000000&this.fg)==0x2000000}isBgPalette(){return(0x3000000&this.bg)==0x1000000||(0x3000000&this.bg)==0x2000000}isFgDefault(){return(0x3000000&this.fg)==0}isBgDefault(){return(0x3000000&this.bg)==0}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(0x3000000&this.fg){case 0x1000000:case 0x2000000:return 255&this.fg;case 0x3000000:return 0xffffff&this.fg;default:return -1}}getBgColor(){switch(0x3000000&this.bg){case 0x1000000:case 0x2000000:return 255&this.bg;case 0x3000000:return 0xffffff&this.bg;default:return -1}}hasExtendedAttrs(){return 0x10000000&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-0x10000001:this.bg|=0x10000000}getUnderlineColor(){if(0x10000000&this.bg&&~this.extended.underlineColor)switch(0x3000000&this.extended.underlineColor){case 0x1000000:case 0x2000000:return 255&this.extended.underlineColor;case 0x3000000:return 0xffffff&this.extended.underlineColor}return this.getFgColor()}getUnderlineColorMode(){return 0x10000000&this.bg&&~this.extended.underlineColor?0x3000000&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 0x10000000&this.bg&&~this.extended.underlineColor?(0x3000000&this.extended.underlineColor)==0x3000000:this.isFgRGB()}isUnderlineColorPalette(){return 0x10000000&this.bg&&~this.extended.underlineColor?(0x3000000&this.extended.underlineColor)==0x1000000||(0x3000000&this.extended.underlineColor)==0x2000000:this.isFgPalette()}isUnderlineColorDefault(){return 0x10000000&this.bg&&~this.extended.underlineColor?(0x3000000&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 0x10000000&this.fg?0x10000000&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},p4=class a{constructor(a=0,b=0){this._ext=0,this._urlId=0,this._ext=a,this._urlId=b}get ext(){return this._urlId?-0x1c000001&this._ext|this.underlineStyle<<26:this._ext}set ext(a){this._ext=a}get underlineStyle(){return this._urlId?5:(0x1c000000&this._ext)>>26}set underlineStyle(a){this._ext&=-0x1c000001,this._ext|=a<<26&0x1c000000}get underlineColor(){return 0x3ffffff&this._ext}set underlineColor(a){this._ext&=-0x4000000,this._ext|=0x3ffffff&a}get urlId(){return this._urlId}set urlId(a){this._urlId=a}get underlineVariantOffset(){let a=(0xe0000000&this._ext)>>29;return a<0?0xfffffff8^a:a}set underlineVariantOffset(a){this._ext&=0x1fffffff,this._ext|=a<<29&0xe0000000}clone(){return new a(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}},p5=class a extends p3{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new p4,this.combinedData=""}static fromCharData(b){let c=new a;return c.setFromCharData(b),c}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?p2(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(a){this.fg=a[0],this.bg=0;let b=!1;if(a[1].length>2)b=!0;else if(2===a[1].length){let c=a[1].charCodeAt(0);if(55296<=c&&c<=56319){let d=a[1].charCodeAt(1);56320<=d&&d<=57343?this.content=(c-55296)*1024+d-56320+65536|a[2]<<22:b=!0}else b=!0}else this.content=a[1].charCodeAt(0)|a[2]<<22;b&&(this.combinedData=a[1],this.content=2097152|a[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},p6="di$target",p7="di$dependencies",p8=new Map;function p9(a){if(p8.has(a))return p8.get(a);let b=function(a,c,d){var e,f,g;if(3!=arguments.length)throw Error("@IServiceName-decorator can only be used to decorate a parameter");e=b,f=a,g=d,f[p6]===f?f[p7].push({id:e,index:g}):(f[p7]=[{id:e,index:g}],f[p6]=f)};return b._id=a,p8.set(a,b),b}var qa=p9("BufferService"),qb=p9("CoreMouseService"),qc=p9("CoreService"),qd=(p9("CharsetService"),p9("InstantiationService")),qe=p9("LogService"),qf=p9("OptionsService"),qg=p9("OscLinkService"),qh=(p9("UnicodeService"),p9("DecorationService")),qi=class{constructor(a,b,c){this._bufferService=a,this._optionsService=b,this._oscLinkService=c}provideLinks(a,b){let c=this._bufferService.buffer.lines.get(a-1);if(!c)return void b(void 0);let d=[],e=this._optionsService.rawOptions.linkHandler,f=new p5,g=c.getTrimmedLength(),h=-1,i=-1,j=!1;for(let b=0;b<g;b++)if(!(-1===i&&!c.hasContent(b))){if(c.loadCell(b,f),f.hasExtendedAttrs()&&f.extended.urlId)if(-1===i){i=b,h=f.extended.urlId;continue}else j=f.extended.urlId!==h;else -1!==i&&(j=!0);if(j||-1!==i&&b===g-1){let c=this._oscLinkService.getLinkData(h)?.uri;if(c){let f={start:{x:i+1,y:a},end:{x:b+ +(!j&&b===g-1),y:a}},h=!1;if(!e?.allowNonHttpProtocols)try{let a=new URL(c);["http:","https:"].includes(a.protocol)||(h=!0)}catch{h=!0}h||d.push({text:c,range:f,activate:(a,b)=>e?e.activate(a,b,f):function(a){if(confirm(`Do you want to navigate to ${a}?
|
|
209
|
+
|
|
210
|
+
WARNING: This link could potentially be dangerous`)){let b=window.open();if(b){try{b.opener=null}catch{}b.location.href=a}else console.warn("Opening link blocked as opener could not be cleared")}}(b),hover:(a,b)=>e?.hover?.(a,b,f),leave:(a,b)=>e?.leave?.(a,b,f)})}j=!1,f.hasExtendedAttrs()&&f.extended.urlId?(i=b,h=f.extended.urlId):(i=-1,h=-1)}}b(d)}};qi=p0([p1(0,qa),p1(1,qf),p1(2,qg)],qi);var qj=p9("CharSizeService"),qk=p9("CoreBrowserService"),ql=p9("MouseService"),qm=p9("RenderService"),qn=(p9("SelectionService"),p9("CharacterJoinerService")),qo=p9("ThemeService"),qp=p9("LinkProviderService"),qq=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(a){setTimeout(()=>{throw a.stack?qu.isErrorNoTelemetry(a)?new qu(a.message+`
|
|
211
|
+
|
|
212
|
+
`+a.stack):Error(a.message+`
|
|
213
|
+
|
|
214
|
+
`+a.stack):a},0)}}addListener(a){return this.listeners.push(a),()=>{this._removeListener(a)}}emit(a){this.listeners.forEach(b=>{b(a)})}_removeListener(a){this.listeners.splice(this.listeners.indexOf(a),1)}setUnexpectedErrorHandler(a){this.unexpectedErrorHandler=a}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(a){this.unexpectedErrorHandler(a),this.emit(a)}onUnexpectedExternalError(a){this.unexpectedErrorHandler(a)}};function qr(a){var b;(b=a)instanceof qt||b instanceof Error&&b.name===qs&&b.message===qs||qq.onUnexpectedError(a)}var qs="Canceled",qt=class extends Error{constructor(){super(qs),this.name=this.message}},qu=class a extends Error{constructor(a){super(a),this.name="CodeExpectedError"}static fromError(b){if(b instanceof a)return b;let c=new a;return c.message=b.message,c.stack=b.stack,c}static isErrorNoTelemetry(a){return"CodeExpectedError"===a.name}},qv=class a extends Error{constructor(b){super(b||"An unexpected bug occurred."),Object.setPrototypeOf(this,a.prototype)}};function qw(a,b=0){return a[a.length-(1+b)]}(qP=qU||={}).isLessThan=function(a){return a<0},qP.isLessThanOrEqual=function(a){return a<=0},qP.isGreaterThan=function(a){return a>0},qP.isNeitherLessOrGreaterThan=function(a){return 0===a},qP.greaterThan=1,qP.lessThan=-1,qP.neitherLessOrGreaterThan=0;var qx=class a{constructor(a){this.iterate=a}forEach(a){this.iterate(b=>(a(b),!0))}toArray(){let a=[];return this.iterate(b=>(a.push(b),!0)),a}filter(b){return new a(a=>this.iterate(c=>!b(c)||a(c)))}map(b){return new a(a=>this.iterate(c=>a(b(c))))}some(a){let b=!1;return this.iterate(c=>!(b=a(c))),b}findFirst(a){let b;return this.iterate(c=>!a(c)||(b=c,!1)),b}findLast(a){let b;return this.iterate(c=>(a(c)&&(b=c),!0)),b}findLastMaxBy(a){let b,c=!0;return this.iterate(d=>((c||qU.isGreaterThan(a(d,b)))&&(c=!1,b=d),!0)),b}};qx.empty=new qx(a=>{});(a=>{function b(a){return a&&"object"==typeof a&&"function"==typeof a[Symbol.iterator]}a.is=b;let c=Object.freeze([]);function*d(a){yield a}a.empty=function(){return c},a.single=d,a.wrap=function(a){return b(a)?a:d(a)},a.from=function(a){return a||c},a.reverse=function*(a){for(let b=a.length-1;b>=0;b--)yield a[b]},a.isEmpty=function(a){return!a||!0===a[Symbol.iterator]().next().done},a.first=function(a){return a[Symbol.iterator]().next().value},a.some=function(a,b){let c=0;for(let d of a)if(b(d,c++))return!0;return!1},a.find=function(a,b){for(let c of a)if(b(c))return c},a.filter=function*(a,b){for(let c of a)b(c)&&(yield c)},a.map=function*(a,b){let c=0;for(let d of a)yield b(d,c++)},a.flatMap=function*(a,b){let c=0;for(let d of a)yield*b(d,c++)},a.concat=function*(...a){for(let b of a)yield*b},a.reduce=function(a,b,c){let d=c;for(let c of a)d=b(d,c);return d},a.slice=function*(a,b,c=a.length){for(b<0&&(b+=a.length),c<0?c+=a.length:c>a.length&&(c=a.length);b<c;b++)yield a[b]},a.consume=function(b,c=1/0){let d=[];if(0===c)return[d,b];let e=b[Symbol.iterator]();for(let b=0;b<c;b++){let b=e.next();if(b.done)return[d,a.empty()];d.push(b.value)}return[d,{[Symbol.iterator]:()=>e}]},a.asyncToArray=async function(a){let b=[];for await(let c of a)b.push(c);return Promise.resolve(b)}})(qV||={});function qy(a){return a}function qz(a){}function qA(a,b){}function qB(a){return a}function qC(a){if(qV.is(a)){let b=[];for(let c of a)if(c)try{c.dispose()}catch(a){b.push(a)}if(1===b.length)throw b[0];if(b.length>1)throw AggregateError(b,"Encountered errors while disposing of store");return Array.isArray(a)?[]:a}if(a)return a.dispose(),a}function qD(a){let b=qy({dispose:function(a){let b=this,c=!1,d;return function(){return c?d:(c=!0,d=a.apply(b,arguments))}}(()=>{qz(b),a()})});return b}var qE=class a{constructor(){this._toDispose=new Set,this._isDisposed=!1,qy(this)}dispose(){this._isDisposed||(qz(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{qC(this._toDispose)}finally{this._toDispose.clear()}}add(b){if(!b)return b;if(b===this)throw Error("Cannot register a disposable on itself!");return qA(b,this),this._isDisposed?a.DISABLE_DISPOSED_WARNING||console.warn(Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(b),b}delete(a){if(a){if(a===this)throw Error("Cannot dispose a disposable on itself!");this._toDispose.delete(a),a.dispose()}}deleteAndLeak(a){a&&this._toDispose.has(a)&&(this._toDispose.delete(a),qA(a,null))}};qE.DISABLE_DISPOSED_WARNING=!1;var qF=class{constructor(){this._store=new qE,qy(this),qA(this._store,this)}dispose(){qz(this),this._store.dispose()}_register(a){if(a===this)throw Error("Cannot register a disposable on itself!");return this._store.add(a)}};qF.None=Object.freeze({dispose(){}});var qG=class{constructor(){this._isDisposed=!1,qy(this)}get value(){return this._isDisposed?void 0:this._value}set value(a){this._isDisposed||a===this._value||(this._value?.dispose(),a&&qA(a,this),this._value=a)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,qz(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let a=this._value;return this._value=void 0,a&&qA(a,null),a}},qH="object"==typeof window?window:globalThis,qI=class a{constructor(b){this.element=b,this.next=a.Undefined,this.prev=a.Undefined}};qI.Undefined=new qI(void 0);var qJ=class{constructor(){this._first=qI.Undefined,this._last=qI.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===qI.Undefined}clear(){let a=this._first;for(;a!==qI.Undefined;){let b=a.next;a.prev=qI.Undefined,a.next=qI.Undefined,a=b}this._first=qI.Undefined,this._last=qI.Undefined,this._size=0}unshift(a){return this._insert(a,!1)}push(a){return this._insert(a,!0)}_insert(a,b){let c=new qI(a);if(this._first===qI.Undefined)this._first=c,this._last=c;else if(b){let a=this._last;this._last=c,c.prev=a,a.next=c}else{let a=this._first;this._first=c,c.next=a,a.prev=c}this._size+=1;let d=!1;return()=>{d||(d=!0,this._remove(c))}}shift(){if(this._first!==qI.Undefined){let a=this._first.element;return this._remove(this._first),a}}pop(){if(this._last!==qI.Undefined){let a=this._last.element;return this._remove(this._last),a}}_remove(a){if(a.prev!==qI.Undefined&&a.next!==qI.Undefined){let b=a.prev;b.next=a.next,a.next.prev=b}else a.prev===qI.Undefined&&a.next===qI.Undefined?(this._first=qI.Undefined,this._last=qI.Undefined):a.next===qI.Undefined?(this._last=this._last.prev,this._last.next=qI.Undefined):a.prev===qI.Undefined&&(this._first=this._first.next,this._first.prev=qI.Undefined);this._size-=1}*[Symbol.iterator](){let a=this._first;for(;a!==qI.Undefined;)yield a.element,a=a.next}},qK=globalThis.performance&&"function"==typeof globalThis.performance.now,qL=class a{static create(b){return new a(b)}constructor(a){this._now=qK&&!1===a?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return -1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}};(a=>{function b(a){}function c(a){return(b,c=null,d)=>{let e=!1,f;return f=a(a=>{if(!e)return f?f.dispose():e=!0,b.call(c,a)},null,d),e&&f.dispose(),f}}function d(a,b,c){return f((c,d=null,e)=>a(a=>c.call(d,b(a)),null,e),c)}function e(a,b,c){return f((c,d=null,e)=>a(a=>b(a)&&c.call(d,a),null,e),c)}function f(a,c){let d,e={onWillAddFirstListener(){d=a(f.fire,f)},onDidRemoveLastListener(){d?.dispose()}};c||b(e);let f=new q1(e);return c?.add(f),f.event}function g(a,c,d=100,e=!1,f=!1,h,i){let j,k,l,m=0,n,o={leakWarningThreshold:h,onWillAddFirstListener(){j=a(a=>{m++,k=c(k,a),e&&!l&&(p.fire(k),k=void 0),n=()=>{let a=k;k=void 0,l=void 0,(!e||m>1)&&p.fire(a),m=0},"number"==typeof d?(clearTimeout(l),l=setTimeout(n,d)):void 0===l&&(l=0,queueMicrotask(n))})},onWillRemoveListener(){f&&m>0&&n?.()},onDidRemoveLastListener(){n=void 0,j.dispose()}};i||b(o);let p=new q1(o);return i?.add(p),p.event}a.None=()=>qF.None,a.defer=function(a,b){return g(a,()=>{},0,void 0,!0,void 0,b)},a.once=c,a.map=d,a.forEach=function(a,b,c){return f((c,d=null,e)=>a(a=>{b(a),c.call(d,a)},null,e),c)},a.filter=e,a.signal=function(a){return a},a.any=function(...a){return(b,c=null,d)=>{var e,f;return e=function(...a){let b=qD(()=>qC(a));return function(a,b){!1}(a,b),b}(...a.map(a=>a(a=>b.call(c,a)))),(f=d)instanceof Array?f.push(e):f&&f.add(e),e}},a.reduce=function(a,b,c,e){let f=c;return d(a,a=>f=b(f,a),e)},a.debounce=g,a.accumulate=function(b,c=0,d){return a.debounce(b,(a,b)=>a?(a.push(b),a):[b],c,void 0,!0,void 0,d)},a.latch=function(a,b=(a,b)=>a===b,c){let d=!0,f;return e(a,a=>{let c=d||!b(a,f);return d=!1,f=a,c},c)},a.split=function(b,c,d){return[a.filter(b,c,d),a.filter(b,a=>!c(a),d)]},a.buffer=function(a,b=!1,c=[],d){let e=c.slice(),f=a(a=>{e?e.push(a):h.fire(a)});d&&d.add(f);let g=()=>{e?.forEach(a=>h.fire(a)),e=null},h=new q1({onWillAddFirstListener(){f||(f=a(a=>h.fire(a)),d&&d.add(f))},onDidAddFirstListener(){e&&(b?setTimeout(g):g())},onDidRemoveLastListener(){f&&f.dispose(),f=null}});return d&&d.add(h),h.event},a.chain=function(a,b){return(c,d,e)=>{let f=b(new i);return a(function(a){let b=f.evaluate(a);b!==h&&c.call(d,b)},void 0,e)}};let h=Symbol("HaltChainable");class i{constructor(){this.steps=[]}map(a){return this.steps.push(a),this}forEach(a){return this.steps.push(b=>(a(b),b)),this}filter(a){return this.steps.push(b=>a(b)?b:h),this}reduce(a,b){let c=b;return this.steps.push(b=>c=a(c,b)),this}latch(a=(a,b)=>a===b){let b=!0,c;return this.steps.push(d=>{let e=b||!a(d,c);return b=!1,c=d,e?d:h}),this}evaluate(a){for(let b of this.steps)if((a=b(a))===h)break;return a}}a.fromNodeEventEmitter=function(a,b,c=a=>a){let d=(...a)=>e.fire(c(...a)),e=new q1({onWillAddFirstListener:()=>a.on(b,d),onDidRemoveLastListener:()=>a.removeListener(b,d)});return e.event},a.fromDOMEventEmitter=function(a,b,c=a=>a){let d=(...a)=>e.fire(c(...a)),e=new q1({onWillAddFirstListener:()=>a.addEventListener(b,d),onDidRemoveLastListener:()=>a.removeEventListener(b,d)});return e.event},a.toPromise=function(a){return new Promise(b=>c(a)(b))},a.fromPromise=function(a){let b=new q1;return a.then(a=>{b.fire(a)},()=>{b.fire(void 0)}).finally(()=>{b.dispose()}),b.event},a.forward=function(a,b){return a(a=>b.fire(a))},a.runAndSubscribe=function(a,b,c){return b(c),a(a=>b(a))};class j{constructor(a,c){this._observable=a,this._counter=0,this._hasChanged=!1;let d={onWillAddFirstListener:()=>{a.addObserver(this)},onDidRemoveLastListener:()=>{a.removeObserver(this)}};c||b(d),this.emitter=new q1(d),c&&c.add(this.emitter)}beginUpdate(a){this._counter++}handlePossibleChange(a){}handleChange(a,b){this._hasChanged=!0}endUpdate(a){this._counter--,0===this._counter&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}a.fromObservable=function(a,b){return new j(a,b).emitter.event},a.fromObservableLight=function(a){return(b,c,d)=>{let e=0,f=!1,g={beginUpdate(){e++},endUpdate(){0==--e&&(a.reportChanges(),f&&(f=!1,b.call(c)))},handlePossibleChange(){},handleChange(){f=!0}};a.addObserver(g),a.reportChanges();let h={dispose(){a.removeObserver(g)}};return d instanceof qE?d.add(h):Array.isArray(d)&&d.push(h),h}}})(qW||={});var qM=class a{constructor(b){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${b}_${a._idPool++}`,a.all.add(this)}start(a){this._stopWatch=new qL,this.listenerCount=a}stop(){if(this._stopWatch){let a=this._stopWatch.elapsed();this.durations.push(a),this.elapsedOverall+=a,this.invocationCount+=1,this._stopWatch=void 0}}};qM.all=new Set,qM._idPool=0;var qN=class a{constructor(b,c,d=(a._idPool++).toString(16).padStart(3,"0")){this._errorHandler=b,this.threshold=c,this.name=d,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(a,b){let c=this.threshold;if(c<=0||b<c)return;this._stacks||(this._stacks=new Map);let d=this._stacks.get(a.value)||0;if(this._stacks.set(a.value,d+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=.5*c;let[a,d]=this.getMostFrequentStack(),e=`[${this.name}] potential listener LEAK detected, having ${b} listeners already. MOST frequent listener (${d}):`;console.warn(e),console.warn(a);let f=new qZ(e,a);this._errorHandler(f)}return()=>{let b=this._stacks.get(a.value)||0;this._stacks.set(a.value,b-1)}}getMostFrequentStack(){if(!this._stacks)return;let a,b=0;for(let[c,d]of this._stacks)(!a||b<d)&&(a=[c,d],b=d);return a}};qN._idPool=1;var qO,qP,qQ,qR,qS,qT,qU,qV,qW,qX,qY=class a{constructor(a){this.value=a}static create(){return new a(Error().stack??"")}print(){console.warn(this.value.split(`
|
|
215
|
+
`).slice(2).join(`
|
|
216
|
+
`))}},qZ=class extends Error{constructor(a,b){super(a),this.name="ListenerLeakError",this.stack=b}},q$=class extends Error{constructor(a,b){super(a),this.name="ListenerRefusalError",this.stack=b}},q_=0,q0=class{constructor(a){this.value=a,this.id=q_++}},q1=class{constructor(a){this._size=0,this._options=a,this._leakageMon=this._options?.leakWarningThreshold?new qN(a?.onListenerError??qr,this._options?.leakWarningThreshold??-1):void 0,this._perfMon=this._options?._profName?new qM(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(a,b,c)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let b=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],c=new q$(`${a}. HINT: Stack shows most frequent listener (${b[1]}-times)`,b[0]);return(this._options?.onListenerError||qr)(c),qF.None}if(this._disposed)return qF.None;b&&(a=a.bind(b));let d=new q0(a),e;this._leakageMon&&this._size>=Math.ceil(.2*this._leakageMon.threshold)&&(d.stack=qY.create(),e=this._leakageMon.check(d.stack,this._size+1)),this._listeners?this._listeners instanceof q0?(this._deliveryQueue??=new q2,this._listeners=[this._listeners,d]):this._listeners.push(d):(this._options?.onWillAddFirstListener?.(this),this._listeners=d,this._options?.onDidAddFirstListener?.(this)),this._size++;let f=qD(()=>{qX?.unregister(f),e?.(),this._removeListener(d)});if(c instanceof qE?c.add(f):Array.isArray(c)&&c.push(f),qX){let a=Error().stack.split(`
|
|
217
|
+
`).slice(2,3).join(`
|
|
218
|
+
`).trim(),b=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(a);qX.register(f,b?.[2]??a,f)}return f},this._event}_removeListener(a){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(1===this._size){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let b=this._listeners,c=b.indexOf(a);if(-1===c)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),Error("Attempted to dispose unknown listener");this._size--,b[c]=void 0;let d=this._deliveryQueue.current===this;if(2*this._size<=b.length){let a=0;for(let c=0;c<b.length;c++)b[c]?b[a++]=b[c]:d&&(this._deliveryQueue.end--,a<this._deliveryQueue.i&&this._deliveryQueue.i--);b.length=a}}_deliver(a,b){if(!a)return;let c=this._options?.onListenerError||qr;if(!c)return void a.value(b);try{a.value(b)}catch(a){c(a)}}_deliverQueue(a){let b=a.current._listeners;for(;a.i<a.end;)this._deliver(b[a.i++],a.value);a.reset()}fire(a){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof q0)this._deliver(this._listeners,a);else{let b=this._deliveryQueue;b.enqueue(this,a,this._listeners.length),this._deliverQueue(b)}this._perfMon?.stop()}hasListeners(){return this._size>0}},q2=class{constructor(){this.i=-1,this.end=0}enqueue(a,b,c){this.i=0,this.end=c,this.current=a,this.value=b}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},q3=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new q1,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new q1,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(a){return this.mapWindowIdToZoomLevel.get(this.getWindowId(a))??0}setZoomLevel(a,b){if(this.getZoomLevel(b)===a)return;let c=this.getWindowId(b);this.mapWindowIdToZoomLevel.set(c,a),this._onDidChangeZoomLevel.fire(c)}getZoomFactor(a){return this.mapWindowIdToZoomFactor.get(this.getWindowId(a))??1}setZoomFactor(a,b){this.mapWindowIdToZoomFactor.set(this.getWindowId(b),a)}setFullscreen(a,b){if(this.isFullscreen(b)===a)return;let c=this.getWindowId(b);this.mapWindowIdToFullScreen.set(c,a),this._onDidChangeFullscreen.fire(c)}isFullscreen(a){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(a))}getWindowId(a){return a.vscodeWindowId}};q3.INSTANCE=new q3,q3.INSTANCE.onDidChangeZoomLevel,q3.INSTANCE.onDidChangeFullscreen;var q4="object"==typeof navigator?navigator.userAgent:"",q5=q4.indexOf("Firefox")>=0,q6=q4.indexOf("AppleWebKit")>=0,q7=q4.indexOf("Chrome")>=0,q8=!q7&&q4.indexOf("Safari")>=0;q4.indexOf("Electron/"),q4.indexOf("Android");var q9=!1;if("function"==typeof qH.matchMedia){let a=qH.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),b=qH.matchMedia("(display-mode: fullscreen)");q9=a.matches,ra=a,"string"==typeof ra&&(ra=qH.matchMedia(ra)),ra.addEventListener("change",({matches:a})=>{q9&&b.matches||(q9=a)})}var ra,rb,rc,rd=!1,re=!1,rf=!1,rg=!1,rh=!1,ri="en",rj=globalThis;"u">typeof rj.vscode&&"u">typeof rj.vscode.process?rc=rj.vscode.process:"u">typeof process&&"string"==typeof process?.versions?.node&&(rc=process);var rk="string"==typeof rc?.versions?.electron&&rc?.type==="renderer";if("object"==typeof rc){rd="win32"===rc.platform,re="darwin"===rc.platform,(rf="linux"===rc.platform)&&rc.env.SNAP&&rc.env.SNAP_REVISION,rc.env.CI||rc.env.BUILD_ARTIFACTSTAGINGDIRECTORY,ri="en";let a=rc.env.VSCODE_NLS_CONFIG;if(a)try{let b=JSON.parse(a);b.userLocale,b.osLocale,ri=b.resolvedLanguage||"en",b.languagePack?.translationsConfigFile}catch{}rg=!0}else"object"!=typeof navigator||rk?console.error("Unable to resolve platform."):(rd=(rb=navigator.userAgent).indexOf("Windows")>=0,re=rb.indexOf("Macintosh")>=0,(rb.indexOf("Macintosh")>=0||rb.indexOf("iPad")>=0||rb.indexOf("iPhone")>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,rf=rb.indexOf("Linux")>=0,rb?.indexOf("Mobi"),rh=!0,ri=globalThis._VSCODE_NLS_LANGUAGE||"en",navigator.language.toLowerCase());var rl=rd,rm=re,rn=rf,ro=rg;rh&&"function"==typeof rj.importScripts&&rj.origin;var rp,rq=rb,rr=ri;(rB=rp||={}).value=function(){return rr},rB.isDefaultVariant=function(){return 2===rr.length?"en"===rr:rr.length>=3&&"e"===rr[0]&&"n"===rr[1]&&"-"===rr[2]},rB.isDefault=function(){return"en"===rr};var rs="function"==typeof rj.postMessage&&!rj.importScripts,rt=(()=>{if(rs){let a=[];rj.addEventListener("message",b=>{if(b.data&&b.data.vscodeScheduleAsyncWork)for(let c=0,d=a.length;c<d;c++){let d=a[c];if(d.id===b.data.vscodeScheduleAsyncWork){a.splice(c,1),d.callback();return}}});let b=0;return c=>{let d=++b;a.push({id:d,callback:c}),rj.postMessage({vscodeScheduleAsyncWork:d},"*")}}return a=>setTimeout(a)})(),ru=!!(rq&&rq.indexOf("Chrome")>=0);rq&&rq.indexOf("Firefox"),!ru&&rq&&rq.indexOf("Safari"),rq&&rq.indexOf("Edg/"),rq&&rq.indexOf("Android");var rv="object"==typeof navigator?navigator:{};ro||document.queryCommandSupported&&document.queryCommandSupported("copy")||rv&&rv.clipboard&&rv.clipboard.writeText,ro||rv&&rv.clipboard&&rv.clipboard.readText,ro||q9||rv.keyboard,"ontouchstart"in qH||rv.maxTouchPoints,qH.PointerEvent&&("ontouchstart"in qH||navigator.maxTouchPoints);var rw=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(a,b){this._keyCodeToStr[a]=b,this._strToKeyCode[b.toLowerCase()]=a}keyCodeToStr(a){return this._keyCodeToStr[a]}strToKeyCode(a){return this._strToKeyCode[a.toLowerCase()]||0}},rx=new rw,ry=new rw,rz=new rw,rA=Array(230);(rC=rD||={}).toString=function(a){return rx.keyCodeToStr(a)},rC.fromString=function(a){return rx.strToKeyCode(a)},rC.toUserSettingsUS=function(a){return ry.keyCodeToStr(a)},rC.toUserSettingsGeneral=function(a){return rz.keyCodeToStr(a)},rC.fromUserSettings=function(a){return ry.strToKeyCode(a)||rz.strToKeyCode(a)},rC.toElectronAccelerator=function(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return rx.keyCodeToStr(a)};var rB,rC,rD,rE,rF=class a{constructor(a,b,c,d,e){this.ctrlKey=a,this.shiftKey=b,this.altKey=c,this.metaKey=d,this.keyCode=e}equals(b){return b instanceof a&&this.ctrlKey===b.ctrlKey&&this.shiftKey===b.shiftKey&&this.altKey===b.altKey&&this.metaKey===b.metaKey&&this.keyCode===b.keyCode}getHashCode(){let a=this.ctrlKey?"1":"0",b=this.shiftKey?"1":"0",c=this.altKey?"1":"0",d=this.metaKey?"1":"0";return`K${a}${b}${c}${d}${this.keyCode}`}isModifierKey(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode}toKeybinding(){return new rG([this])}isDuplicateModifierCase(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}},rG=class{constructor(a){if(0===a.length)throw function(a){return a?Error(`Illegal argument: ${a}`):Error("Illegal argument")}("chords");this.chords=a}getHashCode(){let a="";for(let b=0,c=this.chords.length;b<c;b++)0!==b&&(a+=";"),a+=this.chords[b].getHashCode();return a}equals(a){if(null===a||this.chords.length!==a.chords.length)return!1;for(let b=0;b<this.chords.length;b++)if(!this.chords[b].equals(a.chords[b]))return!1;return!0}},rH=rm?256:2048,rI=rm?2048:256,rJ=class{constructor(a){this._standardKeyboardEventBrand=!0,this.browserEvent=a,this.target=a.target,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.altKey=a.altKey,this.metaKey=a.metaKey,this.altGraphKey=a.getModifierState?.("AltGraph"),this.keyCode=function(a){if(a.charCode){let b=String.fromCharCode(a.charCode).toUpperCase();return rD.fromString(b)}let b=a.keyCode;if(3===b)return 7;if(q5)switch(b){case 59:return 85;case 60:if(rn)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(rm)return 57}else if(q6&&(rm&&93===b||!rm&&92===b))return 57;return rA[b]||0}(a),this.code=a.code,this.ctrlKey=this.ctrlKey||5===this.keyCode,this.altKey=this.altKey||6===this.keyCode,this.shiftKey=this.shiftKey||4===this.keyCode,this.metaKey=this.metaKey||57===this.keyCode,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(a){return this._asKeybinding===a}_computeKeybinding(){let a=0;5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(a=this.keyCode);let b=0;return this.ctrlKey&&(b|=rH),this.altKey&&(b|=512),this.shiftKey&&(b|=1024),this.metaKey&&(b|=rI),b|=a}_computeKeyCodeChord(){let a=0;return 5!==this.keyCode&&4!==this.keyCode&&6!==this.keyCode&&57!==this.keyCode&&(a=this.keyCode),new rF(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,a)}},rK=new WeakMap,rL=class{static getSameOriginWindowChain(a){let b=rK.get(a);if(!b){b=[],rK.set(a,b);let c=a,d;do(d=function(a){if(!a.parent||a.parent===a)return null;try{let b=a.location,c=a.parent.location;if("null"!==b.origin&&"null"!==c.origin&&b.origin!==c.origin)return null}catch{return null}return a.parent}(c))?b.push({window:new WeakRef(c),iframeElement:c.frameElement||null}):b.push({window:new WeakRef(c),iframeElement:null}),c=d;while(c)}return b.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(a,b){if(!b||a===b)return{top:0,left:0};let c=0,d=0;for(let e of this.getSameOriginWindowChain(a)){let a=e.window.deref();if(c+=a?.scrollY??0,d+=a?.scrollX??0,a===b||!e.iframeElement)break;let f=e.iframeElement.getBoundingClientRect();c+=f.top,d+=f.left}return{top:c,left:d}}},rM=class{constructor(a,b){this.timestamp=Date.now(),this.browserEvent=b,this.leftButton=0===b.button,this.middleButton=1===b.button,this.rightButton=2===b.button,this.buttons=b.buttons,this.target=b.target,this.detail=b.detail||1,"dblclick"===b.type&&(this.detail=2),this.ctrlKey=b.ctrlKey,this.shiftKey=b.shiftKey,this.altKey=b.altKey,this.metaKey=b.metaKey,"number"==typeof b.pageX?(this.posx=b.pageX,this.posy=b.pageY):(this.posx=b.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=b.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);let c=rL.getPositionOfChildWindowRelativeToAncestorWindow(a,b.view);this.posx-=c.left,this.posy-=c.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}},rN=class{constructor(a,b=0,c=0){this.browserEvent=a||null,this.target=a?a.target||a.targetNode||a.srcElement:null,this.deltaY=c,this.deltaX=b;let d=!1;if(q7){let a=navigator.userAgent.match(/Chrome\/(\d+)/);d=(a?parseInt(a[1]):123)<=122}if(a){let b=a.view?.devicePixelRatio||1;"u">typeof a.wheelDeltaY?d?this.deltaY=a.wheelDeltaY/(120*b):this.deltaY=a.wheelDeltaY/120:"u">typeof a.VERTICAL_AXIS&&a.axis===a.VERTICAL_AXIS?this.deltaY=-a.detail/3:"wheel"===a.type&&(a.deltaMode===a.DOM_DELTA_LINE?q5&&!rm?this.deltaY=-a.deltaY/3:this.deltaY=-a.deltaY:this.deltaY=-a.deltaY/40),"u">typeof a.wheelDeltaX?q8&&rl?this.deltaX=-(a.wheelDeltaX/120):d?this.deltaX=a.wheelDeltaX/(120*b):this.deltaX=a.wheelDeltaX/120:"u">typeof a.HORIZONTAL_AXIS&&a.axis===a.HORIZONTAL_AXIS?this.deltaX=-a.detail/3:"wheel"===a.type&&(a.deltaMode===a.DOM_DELTA_LINE?q5&&!rm?this.deltaX=-a.deltaX/3:this.deltaX=-a.deltaX:this.deltaX=-a.deltaX/40),0===this.deltaY&&0===this.deltaX&&a.wheelDelta&&(d?this.deltaY=a.wheelDelta/(120*b):this.deltaY=a.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}},rO=Object.freeze(function(a,b){let c=setTimeout(a.bind(b),0);return{dispose(){clearTimeout(c)}}});(sE=rE||={}).isCancellationToken=function(a){return a===sE.None||a===sE.Cancelled||a instanceof rP||!!a&&"object"==typeof a&&"boolean"==typeof a.isCancellationRequested&&"function"==typeof a.onCancellationRequested},sE.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:qW.None}),sE.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:rO});var rP=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?rO:(this._emitter||(this._emitter=new q1),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};Symbol("MicrotaskDelay");var rQ=class{constructor(a,b){this._isDisposed=!1,this._token=-1,"function"==typeof a&&"number"==typeof b&&this.setIfNotSet(a,b)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(a,b){if(this._isDisposed)throw new qv("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,a()},b)}setIfNotSet(a,b){if(this._isDisposed)throw new qv("Calling 'setIfNotSet' on a disposed TimeoutTimer");-1===this._token&&(this._token=setTimeout(()=>{this._token=-1,a()},b))}},rR=class{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(a,b,c=globalThis){if(this.isDisposed)throw new qv("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();let d=c.setInterval(()=>{a()},b);this.disposable=qD(()=>{c.clearInterval(d),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}};(sF=sG||={}).settled=async function(a){let b,c=await Promise.all(a.map(a=>a.then(a=>a,a=>{b||(b=a)})));if("u">typeof b)throw b;return c},sF.withAsyncBody=function(a){return new Promise(async(b,c)=>{try{await a(b,c)}catch(a){c(a)}})};var rS=class a{static fromArray(b){return new a(a=>{a.emitMany(b)})}static fromPromise(b){return new a(async a=>{a.emitMany(await b)})}static fromPromises(b){return new a(async a=>{await Promise.all(b.map(async b=>a.emitOne(await b)))})}static merge(b){return new a(async a=>{await Promise.all(b.map(async b=>{for await(let c of b)a.emitOne(c)}))})}constructor(a,b){this._state=0,this._results=[],this._error=null,this._onReturn=b,this._onStateChanged=new q1,queueMicrotask(async()=>{let b={emitOne:a=>this.emitOne(a),emitMany:a=>this.emitMany(a),reject:a=>this.reject(a)};try{await Promise.resolve(a(b)),this.resolve()}catch(a){this.reject(a)}finally{b.emitOne=void 0,b.emitMany=void 0,b.reject=void 0}})}[Symbol.asyncIterator](){let a=0;return{next:async()=>{for(;;){if(2===this._state)throw this._error;if(a<this._results.length)return{done:!1,value:this._results[a++]};if(1===this._state)return{done:!0,value:void 0};await qW.toPromise(this._onStateChanged.event)}},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(b,c){return new a(async a=>{for await(let d of b)a.emitOne(c(d))})}map(b){return a.map(this,b)}static filter(b,c){return new a(async a=>{for await(let d of b)c(d)&&a.emitOne(d)})}filter(b){return a.filter(this,b)}static coalesce(b){return a.filter(b,a=>!!a)}coalesce(){return a.coalesce(this)}static async toPromise(a){let b=[];for await(let c of a)b.push(c);return b}toPromise(){return a.toPromise(this)}emitOne(a){0===this._state&&(this._results.push(a),this._onStateChanged.fire())}emitMany(a){0===this._state&&(this._results=this._results.concat(a),this._onStateChanged.fire())}resolve(){0===this._state&&(this._state=1,this._onStateChanged.fire())}reject(a){0===this._state&&(this._state=2,this._error=a,this._onStateChanged.fire())}};rS.EMPTY=rS.fromArray([]);function rT(a,b){return(b<<5)-b+a|0}function rU(a,b){b=rT(149417,b);for(let c=0,d=a.length;c<d;c++)b=rT(a.charCodeAt(c),b);return b}new DataView(new ArrayBuffer(320));var{registerWindow:rV,getWindow:rW,getDocument:rX,getWindows:rY,getWindowsCount:rZ,getWindowId:r$,getWindowById:r_,hasWindow:r0,onDidRegisterWindow:r1,onWillUnregisterWindow:r2,onDidUnregisterWindow:r3}=(d=new Map,e={window:qH,disposables:new qE},d.set(qH.vscodeWindowId,e),f=new q1,g=new q1,h=new q1,{onDidRegisterWindow:f.event,onWillUnregisterWindow:h.event,onDidUnregisterWindow:g.event,registerWindow(a){if(d.has(a.vscodeWindowId))return qF.None;let b=new qE,c={window:a,disposables:b.add(new qE)};return d.set(a.vscodeWindowId,c),b.add(qD(()=>{d.delete(a.vscodeWindowId),g.fire(a)})),b.add(r5(a,sa.BEFORE_UNLOAD,()=>{h.fire(a)})),f.fire(c),b},getWindows:()=>d.values(),getWindowsCount:()=>d.size,getWindowId:a=>a.vscodeWindowId,hasWindow:a=>d.has(a),getWindowById:function(a,b){return("number"==typeof a?d.get(a):void 0)??(b?e:void 0)},getWindow:a=>a?.ownerDocument?.defaultView?a.ownerDocument.defaultView.window:a?.view?a.view.window:qH,getDocument:a=>rW(a).document}),r4=class{constructor(a,b,c,d){this._node=a,this._type=b,this._handler=c,this._options=d||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}};function r5(a,b,c,d){return new r4(a,b,c,d)}var r6=function(a,b,c,d){var e;let f=c;return"click"===b||"mousedown"===b||"contextmenu"===b?(e=rW(a),f=function(a){return c(new rM(e,a))}):("keydown"===b||"keypress"===b||"keyup"===b)&&(f=function(a){return c(new rJ(a))}),r5(a,b,f,d)},r7=class extends rR{constructor(a){super(),this.defaultTarget=a&&rW(a)}cancelAndSet(a,b,c){return super.cancelAndSet(a,b,c??this.defaultTarget)}},r8=class{constructor(a,b=0){this._runner=a,this.priority=b,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(a){qr(a)}}static sort(a,b){return b.priority-a.priority}};i=new Map,j=new Map,k=new Map,l=new Map,sH=(a,b,c=0)=>{let d=r$(a),e=new r8(b,c),f=i.get(d);return f||(f=[],i.set(d,f)),f.push(e),k.get(d)||(k.set(d,!0),a.requestAnimationFrame(()=>(a=>{k.set(a,!1);let b=i.get(a)??[];for(j.set(a,b),i.set(a,[]),l.set(a,!0);b.length>0;)b.sort(r8.sort),b.shift().execute();l.set(a,!1)})(d))),e};var r9=class a{constructor(a,b){this.width=a,this.height=b}with(b=this.width,c=this.height){return b!==this.width||c!==this.height?new a(b,c):this}static is(a){return"object"==typeof a&&"number"==typeof a.height&&"number"==typeof a.width}static lift(b){return b instanceof a?b:new a(b.width,b.height)}static equals(a,b){return a===b||!!a&&!!b&&a.width===b.width&&a.height===b.height}};r9.None=new r9(0,0),new class{constructor(){this.mutationObservers=new Map}observe(a,b,c){let d=this.mutationObservers.get(a);d||(d=new Map,this.mutationObservers.set(a,d));let e=function a(b,c){switch(typeof b){case"object":var d,e,f,g;return null===b?rT(349,c):Array.isArray(b)?(d=b,e=rT(104579,e=c),d.reduce((b,c)=>a(c,b),e)):(f=b,g=rT(181387,g=c),Object.keys(f).sort().reduce((b,c)=>(b=rU(c,b),a(f[c],b)),g));case"string":return rU(b,c);case"boolean":return rT(b?433:863,c);case"number":return rT(b,c);case"undefined":return rT(937,c);default:return rT(617,c)}}(c,0),f=d.get(e);if(f)f.users+=1;else{let g=new q1,h=new MutationObserver(a=>g.fire(a));h.observe(a,c);let i=f={users:1,observer:h,onDidMutate:g.event};b.add(qD(()=>{i.users-=1,0===i.users&&(g.dispose(),h.disconnect(),d?.delete(e),d?.size===0&&this.mutationObservers.delete(a))})),d.set(e,f)}return f.onDidMutate}};var sa={CLICK:"click",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",CHANGE:"change",FOCUS:"focus",BLUR:"blur",INPUT:"input"},sb=class{constructor(a){this.domNode=a,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingTop="",this._paddingLeft="",this._paddingBottom="",this._paddingRight="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(a){let b=sc(a);this._maxWidth!==b&&(this._maxWidth=b,this.domNode.style.maxWidth=this._maxWidth)}setWidth(a){let b=sc(a);this._width!==b&&(this._width=b,this.domNode.style.width=this._width)}setHeight(a){let b=sc(a);this._height!==b&&(this._height=b,this.domNode.style.height=this._height)}setTop(a){let b=sc(a);this._top!==b&&(this._top=b,this.domNode.style.top=this._top)}setLeft(a){let b=sc(a);this._left!==b&&(this._left=b,this.domNode.style.left=this._left)}setBottom(a){let b=sc(a);this._bottom!==b&&(this._bottom=b,this.domNode.style.bottom=this._bottom)}setRight(a){let b=sc(a);this._right!==b&&(this._right=b,this.domNode.style.right=this._right)}setPaddingTop(a){let b=sc(a);this._paddingTop!==b&&(this._paddingTop=b,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(a){let b=sc(a);this._paddingLeft!==b&&(this._paddingLeft=b,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(a){let b=sc(a);this._paddingBottom!==b&&(this._paddingBottom=b,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(a){let b=sc(a);this._paddingRight!==b&&(this._paddingRight=b,this.domNode.style.paddingRight=this._paddingRight)}setFontFamily(a){this._fontFamily!==a&&(this._fontFamily=a,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(a){this._fontWeight!==a&&(this._fontWeight=a,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(a){let b=sc(a);this._fontSize!==b&&(this._fontSize=b,this.domNode.style.fontSize=this._fontSize)}setFontStyle(a){this._fontStyle!==a&&(this._fontStyle=a,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(a){this._fontFeatureSettings!==a&&(this._fontFeatureSettings=a,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(a){this._fontVariationSettings!==a&&(this._fontVariationSettings=a,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(a){this._textDecoration!==a&&(this._textDecoration=a,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(a){let b=sc(a);this._lineHeight!==b&&(this._lineHeight=b,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(a){let b=sc(a);this._letterSpacing!==b&&(this._letterSpacing=b,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(a){this._className!==a&&(this._className=a,this.domNode.className=this._className)}toggleClassName(a,b){this.domNode.classList.toggle(a,b),this._className=this.domNode.className}setDisplay(a){this._display!==a&&(this._display=a,this.domNode.style.display=this._display)}setPosition(a){this._position!==a&&(this._position=a,this.domNode.style.position=this._position)}setVisibility(a){this._visibility!==a&&(this._visibility=a,this.domNode.style.visibility=this._visibility)}setColor(a){this._color!==a&&(this._color=a,this.domNode.style.color=this._color)}setBackgroundColor(a){this._backgroundColor!==a&&(this._backgroundColor=a,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(a){this._layerHint!==a&&(this._layerHint=a,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(a){this._boxShadow!==a&&(this._boxShadow=a,this.domNode.style.boxShadow=a)}setContain(a){this._contain!==a&&(this._contain=a,this.domNode.style.contain=this._contain)}setAttribute(a,b){this.domNode.setAttribute(a,b)}removeAttribute(a){this.domNode.removeAttribute(a)}appendChild(a){this.domNode.appendChild(a.domNode)}removeChild(a){this.domNode.removeChild(a.domNode)}};function sc(a){return"number"==typeof a?`${a}px`:a}function sd(a){return new sb(a)}var se=class{constructor(){this._hooks=new qE,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(a,b){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;let c=this._onStopCallback;this._onStopCallback=null,a&&c&&c(b)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(a,b,c,d,e){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=d,this._onStopCallback=e;let f=a;try{a.setPointerCapture(b),this._hooks.add(qD(()=>{try{a.releasePointerCapture(b)}catch{}}))}catch{f=rW(a)}this._hooks.add(r5(f,sa.POINTER_MOVE,a=>{a.buttons!==c?this.stopMonitoring(!0):(a.preventDefault(),this._pointerMoveCallback(a))})),this._hooks.add(r5(f,sa.POINTER_UP,a=>this.stopMonitoring(!0)))}};(m=sI||={}).Tap="-xterm-gesturetap",m.Change="-xterm-gesturechange",m.Start="-xterm-gesturestart",m.End="-xterm-gesturesend",m.Contextmenu="-xterm-gesturecontextmenu";var sf=class a extends qF{constructor(){super(),this.dispatched=!1,this.targets=new qJ,this.ignoreTargets=new qJ,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(qW.runAndSubscribe(r1,({window:a,disposables:b})=>{b.add(r5(a.document,"touchstart",a=>this.onTouchStart(a),{passive:!1})),b.add(r5(a.document,"touchend",b=>this.onTouchEnd(a,b))),b.add(r5(a.document,"touchmove",a=>this.onTouchMove(a),{passive:!1}))},{window:qH,disposables:this._store}))}static addTarget(b){return a.isTouchDevice()?(a.INSTANCE||(a.INSTANCE=qB(new a)),qD(a.INSTANCE.targets.push(b))):qF.None}static ignoreTarget(b){return a.isTouchDevice()?(a.INSTANCE||(a.INSTANCE=qB(new a)),qD(a.INSTANCE.ignoreTargets.push(b))):qF.None}static isTouchDevice(){return"ontouchstart"in qH||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(a){let b=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let c=0,d=a.targetTouches.length;c<d;c++){let d=a.targetTouches.item(c);this.activeTouches[d.identifier]={id:d.identifier,initialTarget:d.target,initialTimeStamp:b,initialPageX:d.pageX,initialPageY:d.pageY,rollingTimestamps:[b],rollingPageX:[d.pageX],rollingPageY:[d.pageY]};let e=this.newGestureEvent(sI.Start,d.target);e.pageX=d.pageX,e.pageY=d.pageY,this.dispatchEvent(e)}this.dispatched&&(a.preventDefault(),a.stopPropagation(),this.dispatched=!1)}onTouchEnd(b,c){let d=Date.now(),e=Object.keys(this.activeTouches).length;for(let f=0,g=c.changedTouches.length;f<g;f++){let g=c.changedTouches.item(f);if(!this.activeTouches.hasOwnProperty(String(g.identifier))){console.warn("move of an UNKNOWN touch",g);continue}let h=this.activeTouches[g.identifier],i=Date.now()-h.initialTimeStamp;if(i<a.HOLD_DELAY&&30>Math.abs(h.initialPageX-qw(h.rollingPageX))&&30>Math.abs(h.initialPageY-qw(h.rollingPageY))){let a=this.newGestureEvent(sI.Tap,h.initialTarget);a.pageX=qw(h.rollingPageX),a.pageY=qw(h.rollingPageY),this.dispatchEvent(a)}else if(i>=a.HOLD_DELAY&&30>Math.abs(h.initialPageX-qw(h.rollingPageX))&&30>Math.abs(h.initialPageY-qw(h.rollingPageY))){let a=this.newGestureEvent(sI.Contextmenu,h.initialTarget);a.pageX=qw(h.rollingPageX),a.pageY=qw(h.rollingPageY),this.dispatchEvent(a)}else if(1===e){let a=qw(h.rollingPageX),c=qw(h.rollingPageY),e=qw(h.rollingTimestamps)-h.rollingTimestamps[0],f=a-h.rollingPageX[0],g=c-h.rollingPageY[0],i=[...this.targets].filter(a=>h.initialTarget instanceof Node&&a.contains(h.initialTarget));this.inertia(b,i,d,Math.abs(f)/e,f>0?1:-1,a,Math.abs(g)/e,g>0?1:-1,c)}this.dispatchEvent(this.newGestureEvent(sI.End,h.initialTarget)),delete this.activeTouches[g.identifier]}this.dispatched&&(c.preventDefault(),c.stopPropagation(),this.dispatched=!1)}newGestureEvent(a,b){let c=document.createEvent("CustomEvent");return c.initEvent(a,!1,!0),c.initialTarget=b,c.tapCount=0,c}dispatchEvent(b){if(b.type===sI.Tap){let c=new Date().getTime(),d=0;d=c-this._lastSetTapCountTime>a.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=c,b.tapCount=d}else(b.type===sI.Change||b.type===sI.Contextmenu)&&(this._lastSetTapCountTime=0);if(b.initialTarget instanceof Node){for(let a of this.ignoreTargets)if(a.contains(b.initialTarget))return;let a=[];for(let c of this.targets)if(c.contains(b.initialTarget)){let d=0,e=b.initialTarget;for(;e&&e!==c;)d++,e=e.parentElement;a.push([d,c])}for(let[c,d]of(a.sort((a,b)=>a[0]-b[0]),a))d.dispatchEvent(b),this.dispatched=!0}}inertia(b,c,d,e,f,g,h,i,j){this.handle=sH(b,()=>{let k=Date.now(),l=k-d,m=0,n=0,o=!0;e+=a.SCROLL_FRICTION*l,h+=a.SCROLL_FRICTION*l,e>0&&(o=!1,m=f*e*l),h>0&&(o=!1,n=i*h*l);let p=this.newGestureEvent(sI.Change);p.translationX=m,p.translationY=n,c.forEach(a=>a.dispatchEvent(p)),o||this.inertia(b,c,k,e,f,g+m,h,i,j+n)})}onTouchMove(a){let b=Date.now();for(let c=0,d=a.changedTouches.length;c<d;c++){let d=a.changedTouches.item(c);if(!this.activeTouches.hasOwnProperty(String(d.identifier))){console.warn("end of an UNKNOWN touch",d);continue}let e=this.activeTouches[d.identifier],f=this.newGestureEvent(sI.Change,e.initialTarget);f.translationX=d.pageX-qw(e.rollingPageX),f.translationY=d.pageY-qw(e.rollingPageY),f.pageX=d.pageX,f.pageY=d.pageY,this.dispatchEvent(f),e.rollingPageX.length>3&&(e.rollingPageX.shift(),e.rollingPageY.shift(),e.rollingTimestamps.shift()),e.rollingPageX.push(d.pageX),e.rollingPageY.push(d.pageY),e.rollingTimestamps.push(b)}this.dispatched&&(a.preventDefault(),a.stopPropagation(),this.dispatched=!1)}};sf.SCROLL_FRICTION=-.005,sf.HOLD_DELAY=700,sf.CLEAR_TAP_COUNT_TIME=400,p0([function(a,b,c){let d=null,e=null;if("function"==typeof c.value?(d="value",0!==(e=c.value).length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"==typeof c.get&&(d="get",e=c.get),!e)throw Error("not supported");let f=`$memoize$${b}`;c[d]=function(...a){return this.hasOwnProperty(f)||Object.defineProperty(this,f,{configurable:!1,enumerable:!1,writable:!1,value:e.apply(this,a)}),this[f]}}],sf,"isTouchDevice",1);var sg=class extends qF{onclick(a,b){this._register(r5(a,sa.CLICK,c=>b(new rM(rW(a),c))))}onmousedown(a,b){this._register(r5(a,sa.MOUSE_DOWN,c=>b(new rM(rW(a),c))))}onmouseover(a,b){this._register(r5(a,sa.MOUSE_OVER,c=>b(new rM(rW(a),c))))}onmouseleave(a,b){this._register(r5(a,sa.MOUSE_LEAVE,c=>b(new rM(rW(a),c))))}onkeydown(a,b){this._register(r5(a,sa.KEY_DOWN,a=>b(new rJ(a))))}onkeyup(a,b){this._register(r5(a,sa.KEY_UP,a=>b(new rJ(a))))}oninput(a,b){this._register(r5(a,sa.INPUT,b))}onblur(a,b){this._register(r5(a,sa.BLUR,b))}onfocus(a,b){this._register(r5(a,sa.FOCUS,b))}onchange(a,b){this._register(r5(a,sa.CHANGE,b))}ignoreGesture(a){return sf.ignoreTarget(a)}},sh=class extends sg{constructor(a){super(),this._onActivate=a.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=a.bgWidth+"px",this.bgDomNode.style.height=a.bgHeight+"px","u">typeof a.top&&(this.bgDomNode.style.top="0px"),"u">typeof a.left&&(this.bgDomNode.style.left="0px"),"u">typeof a.bottom&&(this.bgDomNode.style.bottom="0px"),"u">typeof a.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=a.className,this.domNode.style.position="absolute",this.domNode.style.width="11px",this.domNode.style.height="11px","u">typeof a.top&&(this.domNode.style.top=a.top+"px"),"u">typeof a.left&&(this.domNode.style.left=a.left+"px"),"u">typeof a.bottom&&(this.domNode.style.bottom=a.bottom+"px"),"u">typeof a.right&&(this.domNode.style.right=a.right+"px"),this._pointerMoveMonitor=this._register(new se),this._register(r6(this.bgDomNode,sa.POINTER_DOWN,a=>this._arrowPointerDown(a))),this._register(r6(this.domNode,sa.POINTER_DOWN,a=>this._arrowPointerDown(a))),this._pointerdownRepeatTimer=this._register(new r7),this._pointerdownScheduleRepeatTimer=this._register(new rQ)}_arrowPointerDown(a){if(!a.target||!(a.target instanceof Element))return;let b=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,rW(a))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(b,200),this._pointerMoveMonitor.startMonitoring(a.target,a.pointerId,a.buttons,a=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),a.preventDefault()}},si=class a{constructor(a,b,c,d,e,f,g){this._forceIntegerValues=a,this._scrollStateBrand=void 0,this._forceIntegerValues&&(b|=0,c|=0,d|=0,e|=0,f|=0,g|=0),this.rawScrollLeft=d,this.rawScrollTop=g,b<0&&(b=0),d+b>c&&(d=c-b),d<0&&(d=0),e<0&&(e=0),g+e>f&&(g=f-e),g<0&&(g=0),this.width=b,this.scrollWidth=c,this.scrollLeft=d,this.height=e,this.scrollHeight=f,this.scrollTop=g}equals(a){return this.rawScrollLeft===a.rawScrollLeft&&this.rawScrollTop===a.rawScrollTop&&this.width===a.width&&this.scrollWidth===a.scrollWidth&&this.scrollLeft===a.scrollLeft&&this.height===a.height&&this.scrollHeight===a.scrollHeight&&this.scrollTop===a.scrollTop}withScrollDimensions(b,c){return new a(this._forceIntegerValues,"u">typeof b.width?b.width:this.width,"u">typeof b.scrollWidth?b.scrollWidth:this.scrollWidth,c?this.rawScrollLeft:this.scrollLeft,"u">typeof b.height?b.height:this.height,"u">typeof b.scrollHeight?b.scrollHeight:this.scrollHeight,c?this.rawScrollTop:this.scrollTop)}withScrollPosition(b){return new a(this._forceIntegerValues,this.width,this.scrollWidth,"u">typeof b.scrollLeft?b.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,"u">typeof b.scrollTop?b.scrollTop:this.rawScrollTop)}createScrollEvent(a,b){let c=this.width!==a.width,d=this.scrollWidth!==a.scrollWidth,e=this.scrollLeft!==a.scrollLeft,f=this.height!==a.height,g=this.scrollHeight!==a.scrollHeight,h=this.scrollTop!==a.scrollTop;return{inSmoothScrolling:b,oldWidth:a.width,oldScrollWidth:a.scrollWidth,oldScrollLeft:a.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:a.height,oldScrollHeight:a.scrollHeight,oldScrollTop:a.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:c,scrollWidthChanged:d,scrollLeftChanged:e,heightChanged:f,scrollHeightChanged:g,scrollTopChanged:h}}},sj=class extends qF{constructor(a){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new q1),this.onScroll=this._onScroll.event,this._smoothScrollDuration=a.smoothScrollDuration,this._scheduleAtNextAnimationFrame=a.scheduleAtNextAnimationFrame,this._state=new si(a.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(a){this._smoothScrollDuration=a}validateScrollPosition(a){return this._state.withScrollPosition(a)}getScrollDimensions(){return this._state}setScrollDimensions(a,b){let c=this._state.withScrollDimensions(a,b);this._setState(c,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(a){let b=this._state.withScrollPosition(a);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(b,!1)}setScrollPositionSmooth(a,b){if(0===this._smoothScrollDuration)return this.setScrollPositionNow(a);if(this._smoothScrolling){let c;a={scrollLeft:typeof a.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:a.scrollLeft,scrollTop:typeof a.scrollTop>"u"?this._smoothScrolling.to.scrollTop:a.scrollTop};let d=this._state.withScrollPosition(a);if(this._smoothScrolling.to.scrollLeft===d.scrollLeft&&this._smoothScrolling.to.scrollTop===d.scrollTop)return;c=b?new sm(this._smoothScrolling.from,d,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,d,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=c}else{let b=this._state.withScrollPosition(a);this._smoothScrolling=sm.start(this._state,b,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;let a=this._smoothScrolling.tick(),b=this._state.withScrollPosition(a);if(this._setState(b,!0),this._smoothScrolling){if(a.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(a,b){let c=this._state;c.equals(a)||(this._state=a,this._onScroll.fire(this._state.createScrollEvent(c,b)))}},sk=class{constructor(a,b,c){this.scrollLeft=a,this.scrollTop=b,this.isDone=c}};function sl(a,b){let c=b-a;return function(b){return a+c*(1-Math.pow(1-b,3))}}var sm=class a{constructor(a,b,c,d){this.from=a,this.to=b,this.duration=d,this.startTime=c,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(a,b,c){if(Math.abs(a-b)>2.5*c){var d,e;let f,g;return a<b?(f=a+.75*c,g=b-.75*c):(f=a-.75*c,g=b+.75*c),d=sl(a,f),e=sl(g,b),function(a){return a<.33?d(a/.33):e((a-.33)/(1-.33))}}return sl(a,b)}dispose(){null!==this.animationFrameDisposable&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(a){this.to=a.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(a){let b=(a-this.startTime)/this.duration;return b<1?new sk(this.scrollLeft(b),this.scrollTop(b),!1):new sk(this.to.scrollLeft,this.to.scrollTop,!0)}combine(b,c,d){return a.start(b,c,d)}static start(b,c,d){return d+=10,new a(b,c,Date.now()-10,d)}},sn=class extends qF{constructor(a,b,c){super(),this._visibility=a,this._visibleClassName=b,this._invisibleClassName=c,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new rQ)}setVisibility(a){this._visibility!==a&&(this._visibility=a,this._updateShouldBeVisible())}setShouldBeVisible(a){this._rawShouldBeVisible=a,this._updateShouldBeVisible()}_applyVisibilitySetting(){return 2!==this._visibility&&(3===this._visibility||this._rawShouldBeVisible)}_updateShouldBeVisible(){let a=this._applyVisibilitySetting();this._shouldBeVisible!==a&&(this._shouldBeVisible=a,this.ensureVisibility())}setIsNeeded(a){this._isNeeded!==a&&(this._isNeeded=a,this.ensureVisibility())}setDomNode(a){this._domNode=a,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(a){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(a?" fade":"")))}},so=class extends sg{constructor(a){super(),this._lazyRender=a.lazyRender,this._host=a.host,this._scrollable=a.scrollable,this._scrollByPage=a.scrollByPage,this._scrollbarState=a.scrollbarState,this._visibilityController=this._register(new sn(a.visibility,"visible scrollbar "+a.extraScrollbarClassName,"invisible scrollbar "+a.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new se),this._shouldRender=!0,this.domNode=sd(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(r5(this.domNode.domNode,sa.POINTER_DOWN,a=>this._domNodePointerDown(a)))}_createArrow(a){let b=this._register(new sh(a));this.domNode.domNode.appendChild(b.bgDomNode),this.domNode.domNode.appendChild(b.domNode)}_createSlider(a,b,c,d){this.slider=sd(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(a),this.slider.setLeft(b),"number"==typeof c&&this.slider.setWidth(c),"number"==typeof d&&this.slider.setHeight(d),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(r5(this.slider.domNode,sa.POINTER_DOWN,a=>{0===a.button&&(a.preventDefault(),this._sliderPointerDown(a))})),this.onclick(this.slider.domNode,a=>{a.leftButton&&a.stopPropagation()})}_onElementSize(a){return this._scrollbarState.setVisibleSize(a)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(a){return this._scrollbarState.setScrollSize(a)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(a){return this._scrollbarState.setScrollPosition(a)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(a){a.target===this.domNode.domNode&&this._onPointerDown(a)}delegatePointerDown(a){let b=this.domNode.domNode.getClientRects()[0].top,c=b+this._scrollbarState.getSliderPosition(),d=b+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),e=this._sliderPointerPosition(a);c<=e&&e<=d?0===a.button&&(a.preventDefault(),this._sliderPointerDown(a)):this._onPointerDown(a)}_onPointerDown(a){let b,c;if(a.target===this.domNode.domNode&&"number"==typeof a.offsetX&&"number"==typeof a.offsetY)b=a.offsetX,c=a.offsetY;else{var d;let e,f,g=(e=(d=this.domNode.domNode).getBoundingClientRect(),f=rW(d),{left:e.left+f.scrollX,top:e.top+f.scrollY,width:e.width,height:e.height});b=a.pageX-g.left,c=a.pageY-g.top}let e=this._pointerDownRelativePosition(b,c);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(e):this._scrollbarState.getDesiredScrollPositionFromOffset(e)),0===a.button&&(a.preventDefault(),this._sliderPointerDown(a))}_sliderPointerDown(a){if(!a.target||!(a.target instanceof Element))return;let b=this._sliderPointerPosition(a),c=this._sliderOrthogonalPointerPosition(a),d=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(a.target,a.pointerId,a.buttons,a=>{let e=Math.abs(this._sliderOrthogonalPointerPosition(a)-c);if(rl&&e>140)return void this._setDesiredScrollPositionNow(d.getScrollPosition());let f=this._sliderPointerPosition(a)-b;this._setDesiredScrollPositionNow(d.getDesiredScrollPositionFromDelta(f))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(a){let b={};this.writeScrollPosition(b,a),this._scrollable.setScrollPositionNow(b)}updateScrollbarSize(a){this._updateScrollbarSize(a),this._scrollbarState.setScrollbarSize(a),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}},sp=class a{constructor(a,b,c,d,e,f){this._scrollbarSize=Math.round(b),this._oppositeScrollbarSize=Math.round(c),this._arrowSize=Math.round(a),this._visibleSize=d,this._scrollSize=e,this._scrollPosition=f,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new a(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(a){let b=Math.round(a);return this._visibleSize!==b&&(this._visibleSize=b,this._refreshComputedValues(),!0)}setScrollSize(a){let b=Math.round(a);return this._scrollSize!==b&&(this._scrollSize=b,this._refreshComputedValues(),!0)}setScrollPosition(a){let b=Math.round(a);return this._scrollPosition!==b&&(this._scrollPosition=b,this._refreshComputedValues(),!0)}setScrollbarSize(a){this._scrollbarSize=Math.round(a)}setOppositeScrollbarSize(a){this._oppositeScrollbarSize=Math.round(a)}static _computeValues(a,b,c,d,e){let f=Math.max(0,c-a),g=Math.max(0,f-2*b),h=d>0&&d>c;if(!h)return{computedAvailableSize:Math.round(f),computedIsNeeded:h,computedSliderSize:Math.round(g),computedSliderRatio:0,computedSliderPosition:0};let i=Math.round(Math.max(20,Math.floor(c*g/d))),j=(g-i)/(d-c);return{computedAvailableSize:Math.round(f),computedIsNeeded:h,computedSliderSize:Math.round(i),computedSliderRatio:j,computedSliderPosition:Math.round(e*j)}}_refreshComputedValues(){let b=a._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=b.computedAvailableSize,this._computedIsNeeded=b.computedIsNeeded,this._computedSliderSize=b.computedSliderSize,this._computedSliderRatio=b.computedSliderRatio,this._computedSliderPosition=b.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(a){return this._computedIsNeeded?Math.round((a-this._arrowSize-this._computedSliderSize/2)/this._computedSliderRatio):0}getDesiredScrollPositionFromOffsetPaged(a){if(!this._computedIsNeeded)return 0;let b=a-this._arrowSize,c=this._scrollPosition;return b<this._computedSliderPosition?c-=this._visibleSize:c+=this._visibleSize,c}getDesiredScrollPositionFromDelta(a){return this._computedIsNeeded?Math.round((this._computedSliderPosition+a)/this._computedSliderRatio):0}},sq=class extends so{constructor(a,b,c){let d=a.getScrollDimensions(),e=a.getCurrentScrollPosition();if(super({lazyRender:b.lazyRender,host:c,scrollbarState:new sp(b.horizontalHasArrows?b.arrowSize:0,2===b.horizontal?0:b.horizontalScrollbarSize,2===b.vertical?0:b.verticalScrollbarSize,d.width,d.scrollWidth,e.scrollLeft),visibility:b.horizontal,extraScrollbarClassName:"horizontal",scrollable:a,scrollByPage:b.scrollByPage}),b.horizontalHasArrows)throw Error("horizontalHasArrows is not supported in xterm.js");this._createSlider(Math.floor((b.horizontalScrollbarSize-b.horizontalSliderSize)/2),0,void 0,b.horizontalSliderSize)}_updateSlider(a,b){this.slider.setWidth(a),this.slider.setLeft(b)}_renderDomNode(a,b){this.domNode.setWidth(a),this.domNode.setHeight(b),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(a){return this._shouldRender=this._onElementScrollSize(a.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(a.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(a.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(a,b){return a}_sliderPointerPosition(a){return a.pageX}_sliderOrthogonalPointerPosition(a){return a.pageY}_updateScrollbarSize(a){this.slider.setHeight(a)}writeScrollPosition(a,b){a.scrollLeft=b}updateOptions(a){this.updateScrollbarSize(2===a.horizontal?0:a.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(2===a.vertical?0:a.verticalScrollbarSize),this._visibilityController.setVisibility(a.horizontal),this._scrollByPage=a.scrollByPage}},sr=class extends so{constructor(a,b,c){let d=a.getScrollDimensions(),e=a.getCurrentScrollPosition();if(super({lazyRender:b.lazyRender,host:c,scrollbarState:new sp(b.verticalHasArrows?b.arrowSize:0,2===b.vertical?0:b.verticalScrollbarSize,0,d.height,d.scrollHeight,e.scrollTop),visibility:b.vertical,extraScrollbarClassName:"vertical",scrollable:a,scrollByPage:b.scrollByPage}),b.verticalHasArrows)throw Error("horizontalHasArrows is not supported in xterm.js");this._createSlider(0,Math.floor((b.verticalScrollbarSize-b.verticalSliderSize)/2),b.verticalSliderSize,void 0)}_updateSlider(a,b){this.slider.setHeight(a),this.slider.setTop(b)}_renderDomNode(a,b){this.domNode.setWidth(b),this.domNode.setHeight(a),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(a){return this._shouldRender=this._onElementScrollSize(a.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(a.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(a.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(a,b){return b}_sliderPointerPosition(a){return a.pageY}_sliderOrthogonalPointerPosition(a){return a.pageX}_updateScrollbarSize(a){this.slider.setWidth(a)}writeScrollPosition(a,b){a.scrollTop=b}updateOptions(a){this.updateScrollbarSize(2===a.vertical?0:a.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(a.vertical),this._scrollByPage=a.scrollByPage}},ss=class{constructor(a,b,c){this.timestamp=a,this.deltaX=b,this.deltaY=c,this.score=0}},st=class{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(-1===this._front&&-1===this._rear)return!1;let a=1,b=0,c=1,d=this._rear;for(;;){let e=d===this._front?a:Math.pow(2,-c);if(a-=e,b+=this._memory[d].score*e,d===this._front)break;d=(this._capacity+d-1)%this._capacity,c++}return b<=.5}acceptStandardWheelEvent(a){if(q7){var b;let c=(b=rW(a.browserEvent),q3.INSTANCE.getZoomFactor(b));this.accept(Date.now(),a.deltaX*c,a.deltaY*c)}else this.accept(Date.now(),a.deltaX,a.deltaY)}accept(a,b,c){let d=null,e=new ss(a,b,c);-1===this._front&&-1===this._rear?(this._memory[0]=e,this._front=0,this._rear=0):(d=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=e),e.score=this._computeScore(e,d)}_computeScore(a,b){if(Math.abs(a.deltaX)>0&&Math.abs(a.deltaY)>0)return 1;let c=.5;if(this._isAlmostInt(a.deltaX)&&this._isAlmostInt(a.deltaY)||(c+=.25),b){let d=Math.abs(a.deltaX),e=Math.abs(a.deltaY),f=Math.abs(b.deltaX),g=Math.abs(b.deltaY),h=Math.max(Math.min(d,f),1),i=Math.max(Math.min(e,g),1),j=Math.max(e,g);Math.max(d,f)%h==0&&j%i==0&&(c-=.5)}return Math.min(Math.max(c,0),1)}_isAlmostInt(a){return .01>Math.abs(Math.round(a)-a)}};st.INSTANCE=new st;var su=class extends sg{constructor(a,b,c){super(),this._onScroll=this._register(new q1),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new q1),this.onWillScroll=this._onWillScroll.event,this._options=function(a){let b={lazyRender:"u">typeof a.lazyRender&&a.lazyRender,className:"u">typeof a.className?a.className:"",useShadows:!("u">typeof a.useShadows)||a.useShadows,handleMouseWheel:!("u">typeof a.handleMouseWheel)||a.handleMouseWheel,flipAxes:"u">typeof a.flipAxes&&a.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:"u">typeof a.consumeMouseWheelIfScrollbarIsNeeded&&a.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:"u">typeof a.alwaysConsumeMouseWheel&&a.alwaysConsumeMouseWheel,scrollYToX:"u">typeof a.scrollYToX&&a.scrollYToX,mouseWheelScrollSensitivity:"u">typeof a.mouseWheelScrollSensitivity?a.mouseWheelScrollSensitivity:1,fastScrollSensitivity:"u">typeof a.fastScrollSensitivity?a.fastScrollSensitivity:5,scrollPredominantAxis:!("u">typeof a.scrollPredominantAxis)||a.scrollPredominantAxis,mouseWheelSmoothScroll:!("u">typeof a.mouseWheelSmoothScroll)||a.mouseWheelSmoothScroll,arrowSize:"u">typeof a.arrowSize?a.arrowSize:11,listenOnDomNode:"u">typeof a.listenOnDomNode?a.listenOnDomNode:null,horizontal:"u">typeof a.horizontal?a.horizontal:1,horizontalScrollbarSize:"u">typeof a.horizontalScrollbarSize?a.horizontalScrollbarSize:10,horizontalSliderSize:"u">typeof a.horizontalSliderSize?a.horizontalSliderSize:0,horizontalHasArrows:"u">typeof a.horizontalHasArrows&&a.horizontalHasArrows,vertical:"u">typeof a.vertical?a.vertical:1,verticalScrollbarSize:"u">typeof a.verticalScrollbarSize?a.verticalScrollbarSize:10,verticalHasArrows:"u">typeof a.verticalHasArrows&&a.verticalHasArrows,verticalSliderSize:"u">typeof a.verticalSliderSize?a.verticalSliderSize:0,scrollByPage:"u">typeof a.scrollByPage&&a.scrollByPage};return b.horizontalSliderSize="u">typeof a.horizontalSliderSize?a.horizontalSliderSize:b.horizontalScrollbarSize,b.verticalSliderSize="u">typeof a.verticalSliderSize?a.verticalSliderSize:b.verticalScrollbarSize,rm&&(b.className+=" mac"),b}(b),this._scrollable=c,this._register(this._scrollable.onScroll(a=>{this._onWillScroll.fire(a),this._onDidScroll(a),this._onScroll.fire(a)}));let d={onMouseWheel:a=>this._onMouseWheel(a),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new sr(this._scrollable,this._options,d)),this._horizontalScrollbar=this._register(new sq(this._scrollable,this._options,d)),this._domNode=document.createElement("div"),this._domNode.className="xterm-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.appendChild(a),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=sd(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=sd(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=sd(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,a=>this._onMouseOver(a)),this.onmouseleave(this._listenOnDomNode,a=>this._onMouseLeave(a)),this._hideTimeout=this._register(new rQ),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=qC(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(a){this._verticalScrollbar.delegatePointerDown(a)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(a){this._scrollable.setScrollDimensions(a,!1)}updateClassName(a){this._options.className=a,rm&&(this._options.className+=" mac"),this._domNode.className="xterm-scrollable-element "+this._options.className}updateOptions(a){"u">typeof a.handleMouseWheel&&(this._options.handleMouseWheel=a.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),"u">typeof a.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=a.mouseWheelScrollSensitivity),"u">typeof a.fastScrollSensitivity&&(this._options.fastScrollSensitivity=a.fastScrollSensitivity),"u">typeof a.scrollPredominantAxis&&(this._options.scrollPredominantAxis=a.scrollPredominantAxis),"u">typeof a.horizontal&&(this._options.horizontal=a.horizontal),"u">typeof a.vertical&&(this._options.vertical=a.vertical),"u">typeof a.horizontalScrollbarSize&&(this._options.horizontalScrollbarSize=a.horizontalScrollbarSize),"u">typeof a.verticalScrollbarSize&&(this._options.verticalScrollbarSize=a.verticalScrollbarSize),"u">typeof a.scrollByPage&&(this._options.scrollByPage=a.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}setRevealOnScroll(a){this._revealOnScroll=a}delegateScrollFromMouseWheelEvent(a){this._onMouseWheel(new rN(a))}_setListeningToMouseWheel(a){if(this._mouseWheelToDispose.length>0!==a&&(this._mouseWheelToDispose=qC(this._mouseWheelToDispose),a)){let a=a=>{this._onMouseWheel(new rN(a))};this._mouseWheelToDispose.push(r5(this._listenOnDomNode,sa.MOUSE_WHEEL,a,{passive:!1}))}}_onMouseWheel(a){if(a.browserEvent?.defaultPrevented)return;let b=st.INSTANCE;b.acceptStandardWheelEvent(a);let c=!1;if(a.deltaY||a.deltaX){let d=a.deltaY*this._options.mouseWheelScrollSensitivity,e=a.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&e+d===0?e=d=0:Math.abs(d)>=Math.abs(e)?e=0:d=0),this._options.flipAxes&&([d,e]=[e,d]);let f=!rm&&a.browserEvent&&a.browserEvent.shiftKey;(this._options.scrollYToX||f)&&!e&&(e=d,d=0),a.browserEvent&&a.browserEvent.altKey&&(e*=this._options.fastScrollSensitivity,d*=this._options.fastScrollSensitivity);let g=this._scrollable.getFutureScrollPosition(),h={};if(d){let a=50*d,b=g.scrollTop-(a<0?Math.floor(a):Math.ceil(a));this._verticalScrollbar.writeScrollPosition(h,b)}if(e){let a=50*e,b=g.scrollLeft-(a<0?Math.floor(a):Math.ceil(a));this._horizontalScrollbar.writeScrollPosition(h,b)}h=this._scrollable.validateScrollPosition(h),(g.scrollLeft!==h.scrollLeft||g.scrollTop!==h.scrollTop)&&(this._options.mouseWheelSmoothScroll&&b.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(h):this._scrollable.setScrollPositionNow(h),c=!0)}let d=c;!d&&this._options.alwaysConsumeMouseWheel&&(d=!0),!d&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(d=!0),d&&(a.preventDefault(),a.stopPropagation())}_onDidScroll(a){this._shouldRender=this._horizontalScrollbar.onDidScroll(a)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(a)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){let a=this._scrollable.getCurrentScrollPosition(),b=a.scrollTop>0,c=a.scrollLeft>0,d=c?" left":"",e=b?" top":"";this._leftShadowDomNode.setClassName(`shadow${d}`),this._topShadowDomNode.setClassName(`shadow${e}`),this._topLeftShadowDomNode.setClassName(`shadow${c||b?" top-left-corner":""}${e}${d}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(a){this._mouseIsOver=!1,this._hide()}_onMouseOver(a){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet(()=>this._hide(),500)}},sv=class extends su{constructor(a,b,c){super(a,b,c)}setScrollPosition(a){a.reuseAnimation?this._scrollable.setScrollPositionSmooth(a,a.reuseAnimation):this._scrollable.setScrollPositionNow(a)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}},sw=class extends qF{constructor(a,b,c,d,e,f,g,h){super(),this._bufferService=c,this._optionsService=g,this._renderService=h,this._onRequestScrollLines=this._register(new q1),this.onRequestScrollLines=this._onRequestScrollLines.event,this._isSyncing=!1,this._isHandlingScroll=!1,this._suppressOnScrollHandler=!1;let i=this._register(new sj({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:a=>sH(d.window,a)}));this._register(this._optionsService.onSpecificOptionChange("smoothScrollDuration",()=>{i.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)})),this._scrollableElement=this._register(new sv(b,{vertical:1,horizontal:2,useShadows:!1,mouseWheelSmoothScroll:!0,...this._getChangeOptions()},i)),this._register(this._optionsService.onMultipleOptionChange(["scrollSensitivity","fastScrollSensitivity","overviewRuler"],()=>this._scrollableElement.updateOptions(this._getChangeOptions()))),this._register(e.onProtocolChange(a=>{this._scrollableElement.updateOptions({handleMouseWheel:!(16&a)})})),this._scrollableElement.setScrollDimensions({height:0,scrollHeight:0}),this._register(qW.runAndSubscribe(f.onChangeColors,()=>{this._scrollableElement.getDomNode().style.backgroundColor=f.colors.background.css})),a.appendChild(this._scrollableElement.getDomNode()),this._register(qD(()=>this._scrollableElement.getDomNode().remove())),this._styleElement=d.mainDocument.createElement("style"),b.appendChild(this._styleElement),this._register(qD(()=>this._styleElement.remove())),this._register(qW.runAndSubscribe(f.onChangeColors,()=>{this._styleElement.textContent=[".xterm .xterm-scrollable-element > .scrollbar > .slider {",` background: ${f.colors.scrollbarSliderBackground.css};`,"}",".xterm .xterm-scrollable-element > .scrollbar > .slider:hover {",` background: ${f.colors.scrollbarSliderHoverBackground.css};`,"}",".xterm .xterm-scrollable-element > .scrollbar > .slider.active {",` background: ${f.colors.scrollbarSliderActiveBackground.css};`,"}"].join(`
|
|
219
|
+
`)})),this._register(this._bufferService.onResize(()=>this.queueSync())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._latestYDisp=void 0,this.queueSync()})),this._register(this._bufferService.onScroll(()=>this._sync())),this._register(this._scrollableElement.onScroll(a=>this._handleScroll(a)))}scrollLines(a){let b=this._scrollableElement.getScrollPosition();this._scrollableElement.setScrollPosition({reuseAnimation:!0,scrollTop:b.scrollTop+a*this._renderService.dimensions.css.cell.height})}scrollToLine(a,b){b&&(this._latestYDisp=a),this._scrollableElement.setScrollPosition({reuseAnimation:!b,scrollTop:a*this._renderService.dimensions.css.cell.height})}_getChangeOptions(){return{mouseWheelScrollSensitivity:this._optionsService.rawOptions.scrollSensitivity,fastScrollSensitivity:this._optionsService.rawOptions.fastScrollSensitivity,verticalScrollbarSize:this._optionsService.rawOptions.overviewRuler?.width||14}}queueSync(a){void 0!==a&&(this._latestYDisp=a),void 0===this._queuedAnimationFrame&&(this._queuedAnimationFrame=this._renderService.addRefreshCallback(()=>{this._queuedAnimationFrame=void 0,this._sync(this._latestYDisp)}))}_sync(a=this._bufferService.buffer.ydisp){!this._renderService||this._isSyncing||(this._isSyncing=!0,this._suppressOnScrollHandler=!0,this._scrollableElement.setScrollDimensions({height:this._renderService.dimensions.css.canvas.height,scrollHeight:this._renderService.dimensions.css.cell.height*this._bufferService.buffer.lines.length}),this._suppressOnScrollHandler=!1,a!==this._latestYDisp&&this._scrollableElement.setScrollPosition({scrollTop:a*this._renderService.dimensions.css.cell.height}),this._isSyncing=!1)}_handleScroll(a){if(!this._renderService||this._isHandlingScroll||this._suppressOnScrollHandler)return;this._isHandlingScroll=!0;let b=Math.round(a.scrollTop/this._renderService.dimensions.css.cell.height),c=b-this._bufferService.buffer.ydisp;0!==c&&(this._latestYDisp=b,this._onRequestScrollLines.fire(c)),this._isHandlingScroll=!1}};sw=p0([p1(2,qa),p1(3,qk),p1(4,qb),p1(5,qo),p1(6,qf),p1(7,qm)],sw);var sx=class extends qF{constructor(a,b,c,d,e){super(),this._screenElement=a,this._bufferService=b,this._coreBrowserService=c,this._decorationService=d,this._renderService=e,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this._register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this._register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this._register(this._decorationService.onDecorationRemoved(a=>this._removeDecoration(a))),this._register(qD(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let a of this._decorationService.decorations)this._renderDecoration(a);this._dimensionsChanged=!1}_renderDecoration(a){this._refreshStyle(a),this._dimensionsChanged&&this._refreshXPosition(a)}_createElement(a){let b=this._coreBrowserService.mainDocument.createElement("div");b.classList.add("xterm-decoration"),b.classList.toggle("xterm-decoration-top-layer",a?.options?.layer==="top"),b.style.width=`${Math.round((a.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,b.style.height=`${(a.options.height||1)*this._renderService.dimensions.css.cell.height}px`,b.style.top=`${(a.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height}px`,b.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let c=a.options.x??0;return c&&c>this._bufferService.cols&&(b.style.display="none"),this._refreshXPosition(a,b),b}_refreshStyle(a){let b=a.marker.line-this._bufferService.buffers.active.ydisp;if(b<0||b>=this._bufferService.rows)a.element&&(a.element.style.display="none",a.onRenderEmitter.fire(a.element));else{let c=this._decorationElements.get(a);c||(c=this._createElement(a),a.element=c,this._decorationElements.set(a,c),this._container.appendChild(c),a.onDispose(()=>{this._decorationElements.delete(a),c.remove()})),c.style.display=this._altBufferIsActive?"none":"block",this._altBufferIsActive||(c.style.width=`${Math.round((a.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,c.style.height=`${(a.options.height||1)*this._renderService.dimensions.css.cell.height}px`,c.style.top=`${b*this._renderService.dimensions.css.cell.height}px`,c.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`),a.onRenderEmitter.fire(c)}}_refreshXPosition(a,b=a.element){if(!b)return;let c=a.options.x??0;"right"===(a.options.anchor||"left")?b.style.right=c?`${c*this._renderService.dimensions.css.cell.width}px`:"":b.style.left=c?`${c*this._renderService.dimensions.css.cell.width}px`:""}_removeDecoration(a){this._decorationElements.get(a)?.remove(),this._decorationElements.delete(a),a.dispose()}};sx=p0([p1(1,qa),p1(2,qk),p1(3,qh),p1(4,qm)],sx);var sy=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(a){if(a.options.overviewRulerOptions){for(let b of this._zones)if(b.color===a.options.overviewRulerOptions.color&&b.position===a.options.overviewRulerOptions.position){if(this._lineIntersectsZone(b,a.marker.line))return;if(this._lineAdjacentToZone(b,a.marker.line,a.options.overviewRulerOptions.position))return void this._addLineToZone(b,a.marker.line)}if(this._zonePoolIndex<this._zonePool.length){this._zonePool[this._zonePoolIndex].color=a.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=a.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=a.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=a.marker.line,this._zones.push(this._zonePool[this._zonePoolIndex++]);return}this._zones.push({color:a.options.overviewRulerOptions.color,position:a.options.overviewRulerOptions.position,startBufferLine:a.marker.line,endBufferLine:a.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(a){this._linePadding=a}_lineIntersectsZone(a,b){return b>=a.startBufferLine&&b<=a.endBufferLine}_lineAdjacentToZone(a,b,c){return b>=a.startBufferLine-this._linePadding[c||"full"]&&b<=a.endBufferLine+this._linePadding[c||"full"]}_addLineToZone(a,b){a.startBufferLine=Math.min(a.startBufferLine,b),a.endBufferLine=Math.max(a.endBufferLine,b)}},sz={full:0,left:0,center:0,right:0},sA={full:0,left:0,center:0,right:0},sB={full:0,left:0,center:0,right:0},sC=class extends qF{constructor(a,b,c,d,e,f,g,h){super(),this._viewportElement=a,this._screenElement=b,this._bufferService=c,this._decorationService=d,this._renderService=e,this._optionsService=f,this._themeService=g,this._coreBrowserService=h,this._colorZoneStore=new sy,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement),this._register(qD(()=>this._canvas?.remove()));let i=this._canvas.getContext("2d");if(i)this._ctx=i;else throw Error("Ctx cannot be null");this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this._register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0))),this._register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"})),this._register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})),this._register(this._renderService.onRender(()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh(!0))),this._register(this._optionsService.onSpecificOptionChange("overviewRuler",()=>this._queueRefresh(!0))),this._register(this._themeService.onChangeColors(()=>this._queueRefresh())),this._queueRefresh(!0)}get _width(){return this._optionsService.options.overviewRuler?.width||0}_refreshDrawConstants(){let a=Math.floor((this._canvas.width-1)/3),b=Math.ceil((this._canvas.width-1)/3);sA.full=this._canvas.width,sA.left=a,sA.center=b,sA.right=a,this._refreshDrawHeightConstants(),sB.full=1,sB.left=1,sB.center=1+sA.left,sB.right=1+sA.left+sA.center}_refreshDrawHeightConstants(){sz.full=Math.round(2*this._coreBrowserService.dpr);let a=Math.round(Math.max(Math.min(this._canvas.height/this._bufferService.buffer.lines.length,12),6)*this._coreBrowserService.dpr);sz.left=a,sz.center=a,sz.right=a}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*sz.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*sz.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*sz.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*sz.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){for(let a of(this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear(),this._decorationService.decorations))this._colorZoneStore.addDecoration(a);this._ctx.lineWidth=1,this._renderRulerOutline();let a=this._colorZoneStore.zones;for(let b of a)"full"!==b.position&&this._renderColorZone(b);for(let b of a)"full"===b.position&&this._renderColorZone(b);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderRulerOutline(){this._ctx.fillStyle=this._themeService.colors.overviewRulerBorder.css,this._ctx.fillRect(0,0,1,this._canvas.height),this._optionsService.rawOptions.overviewRuler.showTopBorder&&this._ctx.fillRect(1,0,this._canvas.width-1,1),this._optionsService.rawOptions.overviewRuler.showBottomBorder&&this._ctx.fillRect(1,this._canvas.height-1,this._canvas.width-1,this._canvas.height)}_renderColorZone(a){this._ctx.fillStyle=a.color,this._ctx.fillRect(sB[a.position||"full"],Math.round((this._canvas.height-1)*(a.startBufferLine/this._bufferService.buffers.active.lines.length)-sz[a.position||"full"]/2),sA[a.position||"full"],Math.round((this._canvas.height-1)*((a.endBufferLine-a.startBufferLine)/this._bufferService.buffers.active.lines.length)+sz[a.position||"full"]))}_queueRefresh(a,b){this._shouldUpdateDimensions=a||this._shouldUpdateDimensions,this._shouldUpdateAnchor=b||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};sC=p0([p1(2,qa),p1(3,qh),p1(4,qm),p1(5,qf),p1(6,qo),p1(7,qk)],sC),(n=sJ||={}).NUL="\0",n.SOH="\x01",n.STX="\x02",n.ETX="\x03",n.EOT="\x04",n.ENQ="\x05",n.ACK="\x06",n.BEL="\x07",n.BS="\b",n.HT=" ",n.LF=`
|
|
220
|
+
`,n.VT="\v",n.FF="\f",n.CR="\r",n.SO="\x0e",n.SI="\x0f",n.DLE="\x10",n.DC1="\x11",n.DC2="\x12",n.DC3="\x13",n.DC4="\x14",n.NAK="\x15",n.SYN="\x16",n.ETB="\x17",n.CAN="\x18",n.EM="\x19",n.SUB="\x1a",n.ESC="\x1b",n.FS="\x1c",n.GS="\x1d",n.RS="\x1e",n.US="\x1f",n.SP=" ",n.DEL="",(o=sK||={}).PAD="\x80",o.HOP="\x81",o.BPH="\x82",o.NBH="\x83",o.IND="\x84",o.NEL="\x85",o.SSA="\x86",o.ESA="\x87",o.HTS="\x88",o.HTJ="\x89",o.VTS="\x8a",o.PLD="\x8b",o.PLU="\x8c",o.RI="\x8d",o.SS2="\x8e",o.SS3="\x8f",o.DCS="\x90",o.PU1="\x91",o.PU2="\x92",o.STS="\x93",o.CCH="\x94",o.MW="\x95",o.SPA="\x96",o.EPA="\x97",o.SOS="\x98",o.SGCI="\x99",o.SCI="\x9a",o.CSI="\x9b",o.ST="\x9c",o.OSC="\x9d",o.PM="\x9e",o.APC="\x9f",(sL||={}).ST=`${sJ.ESC}\\`;var sD=class{constructor(a,b,c,d,e,f){this._textarea=a,this._compositionView=b,this._bufferService=c,this._optionsService=d,this._coreService=e,this._renderService=f,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(a){this._compositionView.textContent=a.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(a){if(this._isComposing||this._isSendingComposition){if(20===a.keyCode||229===a.keyCode||16===a.keyCode||17===a.keyCode||18===a.keyCode)return!1;this._finalizeComposition(!1)}return 229!==a.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(a){if(this._compositionView.classList.remove("active"),this._isComposing=!1,a){let a={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){let b;this._isSendingComposition=!1,a.start+=this._dataAlreadySent.length,(b=this._isComposing?this._textarea.value.substring(a.start,this._compositionPosition.start):this._textarea.value.substring(a.start)).length>0&&this._coreService.triggerDataEvent(b,!0)}},0)}else{this._isSendingComposition=!1;let a=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(a,!0)}}_handleAnyTextareaChanges(){let a=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let b=this._textarea.value,c=b.replace(a,"");this._dataAlreadySent=c,b.length>a.length?this._coreService.triggerDataEvent(c,!0):b.length<a.length?this._coreService.triggerDataEvent(`${sJ.DEL}`,!0):b.length===a.length&&b!==a&&this._coreService.triggerDataEvent(b,!0)}},0)}updateCompositionElements(a){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){let a=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),b=this._renderService.dimensions.css.cell.height,c=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,d=a*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=d+"px",this._compositionView.style.top=c+"px",this._compositionView.style.height=b+"px",this._compositionView.style.lineHeight=b+"px",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+"px";let e=this._compositionView.getBoundingClientRect();this._textarea.style.left=d+"px",this._textarea.style.top=c+"px",this._textarea.style.width=Math.max(e.width,1)+"px",this._textarea.style.height=Math.max(e.height,1)+"px",this._textarea.style.lineHeight=e.height+"px"}a||setTimeout(()=>this.updateCompositionElements(!0),0)}}};sD=p0([p1(2,qa),p1(3,qf),p1(4,qc),p1(5,qm)],sD);var sE,sF,sG,sH,sI,sJ,sK,sL,sM,sN=0,sO=0,sP=0,sQ=0,sR={css:"#00000000",rgba:0};(uk=sM||={}).toCss=function(a,b,c,d){return void 0!==d?`#${sZ(a)}${sZ(b)}${sZ(c)}${sZ(d)}`:`#${sZ(a)}${sZ(b)}${sZ(c)}`},uk.toRgba=function(a,b,c,d=255){return(a<<24|b<<16|c<<8|d)>>>0},uk.toColor=function(a,b,c,d){return{css:uk.toCss(a,b,c,d),rgba:uk.toRgba(a,b,c,d)}};var sS=ul||={};function sT(a,b){return sQ=Math.round(255*b),[sN,sO,sP]=uo.toChannels(a.rgba),{css:sM.toCss(sN,sO,sP,sQ),rgba:sM.toRgba(sN,sO,sP,sQ)}}sS.blend=function(a,b){if(1==(sQ=(255&b.rgba)/255))return{css:b.css,rgba:b.rgba};let c=b.rgba>>24&255,d=b.rgba>>16&255,e=b.rgba>>8&255,f=a.rgba>>24&255,g=a.rgba>>16&255,h=a.rgba>>8&255;return sN=f+Math.round((c-f)*sQ),sO=g+Math.round((d-g)*sQ),sP=h+Math.round((e-h)*sQ),{css:sM.toCss(sN,sO,sP),rgba:sM.toRgba(sN,sO,sP)}},sS.isOpaque=function(a){return(255&a.rgba)==255},sS.ensureContrastRatio=function(a,b,c){let d=uo.ensureContrastRatio(a.rgba,b.rgba,c);if(d)return sM.toColor(d>>24&255,d>>16&255,d>>8&255)},sS.opaque=function(a){let b=(255|a.rgba)>>>0;return[sN,sO,sP]=uo.toChannels(b),{css:sM.toCss(sN,sO,sP),rgba:b}},sS.opacity=sT,sS.multiplyOpacity=function(a,b){return sQ=255&a.rgba,sT(a,sQ*b/255)},sS.toColorRGB=function(a){return[a.rgba>>24&255,a.rgba>>16&255,a.rgba>>8&255]},(a=>{let b,c;try{let a=document.createElement("canvas");a.width=1,a.height=1;let d=a.getContext("2d",{willReadFrequently:!0});d&&((b=d).globalCompositeOperation="copy",c=b.createLinearGradient(0,0,1,1))}catch{}a.toColor=function(a){if(a.match(/#[\da-f]{3,8}/i))switch(a.length){case 4:return sN=parseInt(a.slice(1,2).repeat(2),16),sO=parseInt(a.slice(2,3).repeat(2),16),sP=parseInt(a.slice(3,4).repeat(2),16),sM.toColor(sN,sO,sP);case 5:return sN=parseInt(a.slice(1,2).repeat(2),16),sO=parseInt(a.slice(2,3).repeat(2),16),sP=parseInt(a.slice(3,4).repeat(2),16),sQ=parseInt(a.slice(4,5).repeat(2),16),sM.toColor(sN,sO,sP,sQ);case 7:return{css:a,rgba:(parseInt(a.slice(1),16)<<8|255)>>>0};case 9:return{css:a,rgba:parseInt(a.slice(1),16)>>>0}}let d=a.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(d)return sN=parseInt(d[1]),sO=parseInt(d[2]),sP=parseInt(d[3]),sQ=Math.round((void 0===d[5]?1:parseFloat(d[5]))*255),sM.toColor(sN,sO,sP,sQ);if(!b||!c||(b.fillStyle=c,b.fillStyle=a,"string"!=typeof b.fillStyle)||(b.fillRect(0,0,1,1),[sN,sO,sP,sQ]=b.getImageData(0,0,1,1).data,255!==sQ))throw Error("css.toColor: Unsupported css format");return{rgba:sM.toRgba(sN,sO,sP,sQ),css:a}}})(um||={});var sU=un||={};function sV(a,b,c){let d=a/255,e=b/255,f=c/255;return .2126*(d<=.03928?d/12.92:Math.pow((d+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.0722*(f<=.03928?f/12.92:Math.pow((f+.055)/1.055,2.4))}sU.relativeLuminance=function(a){return sV(a>>16&255,a>>8&255,255&a)},sU.relativeLuminance2=sV;var sW=uo||={};function sX(a,b,c){let d=a>>24&255,e=a>>16&255,f=a>>8&255,g=b>>24&255,h=b>>16&255,i=b>>8&255,j=s$(un.relativeLuminance2(g,h,i),un.relativeLuminance2(d,e,f));for(;j<c&&(g>0||h>0||i>0);)g-=Math.max(0,Math.ceil(.1*g)),h-=Math.max(0,Math.ceil(.1*h)),i-=Math.max(0,Math.ceil(.1*i)),j=s$(un.relativeLuminance2(g,h,i),un.relativeLuminance2(d,e,f));return(g<<24|h<<16|i<<8|255)>>>0}function sY(a,b,c){let d=a>>24&255,e=a>>16&255,f=a>>8&255,g=b>>24&255,h=b>>16&255,i=b>>8&255,j=s$(un.relativeLuminance2(g,h,i),un.relativeLuminance2(d,e,f));for(;j<c&&(g<255||h<255||i<255);)g=Math.min(255,g+Math.ceil((255-g)*.1)),h=Math.min(255,h+Math.ceil((255-h)*.1)),i=Math.min(255,i+Math.ceil((255-i)*.1)),j=s$(un.relativeLuminance2(g,h,i),un.relativeLuminance2(d,e,f));return(g<<24|h<<16|i<<8|255)>>>0}function sZ(a){let b=a.toString(16);return b.length<2?"0"+b:b}function s$(a,b){return a<b?(b+.05)/(a+.05):(a+.05)/(b+.05)}sW.blend=function(a,b){if(1==(sQ=(255&b)/255))return b;let c=a>>24&255,d=a>>16&255,e=a>>8&255;return sN=c+Math.round(((b>>24&255)-c)*sQ),sO=d+Math.round(((b>>16&255)-d)*sQ),sP=e+Math.round(((b>>8&255)-e)*sQ),sM.toRgba(sN,sO,sP)},sW.ensureContrastRatio=function(a,b,c){let d=un.relativeLuminance(a>>8),e=un.relativeLuminance(b>>8);if(s$(d,e)<c){if(e<d){let e=sX(a,b,c),f=s$(d,un.relativeLuminance(e>>8));if(f<c){let g=sY(a,b,c);return f>s$(d,un.relativeLuminance(g>>8))?e:g}return e}let f=sY(a,b,c),g=s$(d,un.relativeLuminance(f>>8));if(g<c){let e=sX(a,b,c);return g>s$(d,un.relativeLuminance(e>>8))?f:e}return f}},sW.reduceLuminance=sX,sW.increaseLuminance=sY,sW.toChannels=function(a){return[a>>24&255,a>>16&255,a>>8&255,255&a]};var s_=class extends p3{constructor(a,b,c){super(),this.content=0,this.combinedData="",this.fg=a.fg,this.bg=a.bg,this.combinedData=b,this._width=c}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(a){throw Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},s0=class{constructor(a){this._bufferService=a,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new p5}register(a){let b={id:this._nextCharacterJoinerId++,handler:a};return this._characterJoiners.push(b),b.id}deregister(a){for(let b=0;b<this._characterJoiners.length;b++)if(this._characterJoiners[b].id===a)return this._characterJoiners.splice(b,1),!0;return!1}getJoinedCharacters(a){if(0===this._characterJoiners.length)return[];let b=this._bufferService.buffer.lines.get(a);if(!b||0===b.length)return[];let c=[],d=b.translateToString(!0),e=0,f=0,g=0,h=b.getFg(0),i=b.getBg(0);for(let a=0;a<b.getTrimmedLength();a++)if(b.loadCell(a,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==h||this._workCell.bg!==i){if(a-e>1){let a=this._getJoinedRanges(d,g,f,b,e);for(let b=0;b<a.length;b++)c.push(a[b])}e=a,g=f,h=this._workCell.fg,i=this._workCell.bg}f+=this._workCell.getChars().length||1}if(this._bufferService.cols-e>1){let a=this._getJoinedRanges(d,g,f,b,e);for(let b=0;b<a.length;b++)c.push(a[b])}return c}_getJoinedRanges(a,b,c,d,e){let f=a.substring(b,c),g=[];try{g=this._characterJoiners[0].handler(f)}catch(a){console.error(a)}for(let a=1;a<this._characterJoiners.length;a++)try{let b=this._characterJoiners[a].handler(f);for(let a=0;a<b.length;a++)s0._mergeRanges(g,b[a])}catch(a){console.error(a)}return this._stringRangesToCellRanges(g,d,e),g}_stringRangesToCellRanges(a,b,c){let d=0,e=!1,f=0,g=a[0];if(g){for(let h=c;h<this._bufferService.cols;h++){let c=b.getWidth(h),i=b.getString(h).length||1;if(0!==c){if(!e&&g[0]<=f&&(g[0]=h,e=!0),g[1]<=f){if(g[1]=h,!(g=a[++d]))break;g[0]<=f?(g[0]=h,e=!0):e=!1}f+=i}}g&&(g[1]=this._bufferService.cols)}}static _mergeRanges(a,b){let c=!1;for(let d=0;d<a.length;d++){let e=a[d];if(c){if(b[1]<=e[0])return a[d-1][1]=b[1],a;if(b[1]<=e[1])return a[d-1][1]=Math.max(b[1],e[1]),a.splice(d,1),a;a.splice(d,1),d--}else{if(b[1]<=e[0])return a.splice(d,0,b),a;if(b[1]<=e[1])return e[0]=Math.min(b[0],e[0]),a;b[0]<e[1]&&(e[0]=Math.min(b[0],e[0]),c=!0);continue}}return c?a[a.length-1][1]=b[1]:a.push(b),a}};function s1(){return{width:0,height:0}}s0=p0([p1(0,qa)],s0);var s2=class{constructor(a,b,c,d,e,f,g){this._document=a,this._characterJoinerService=b,this._optionsService=c,this._coreBrowserService=d,this._coreService=e,this._decorationService=f,this._themeService=g,this._workCell=new p5,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(a,b,c){this._selectionStart=a,this._selectionEnd=b,this._columnSelectMode=c}createRow(a,b,c,d,e,f,g,h,i,j,k){let l=[],m=this._characterJoinerService.getJoinedCharacters(b),n=this._themeService.colors,o=a.getNoBgTrimmedLength();c&&o<f+1&&(o=f+1);let p,q=0,r="",s=0,t=0,u=0,v=0,w=!1,x=0,y=!1,z=0,A=0,B=[],C=-1!==j&&-1!==k;for(let D=0;D<o;D++){let o;a.loadCell(D,this._workCell);let E=this._workCell.getWidth();if(0===E)continue;let F=!1,G=D>=A,H=D,I=this._workCell;if(m.length>0&&D===m[0][0]&&G){let d=m.shift(),e=this._isCellInSelection(d[0],b);for(s=d[0]+1;s<d[1];s++)G&&=e===this._isCellInSelection(s,b);(G&&=!c||f<d[0]||f>=d[1])?(F=!0,I=new s_(this._workCell,a.translateToString(!0,d[0],d[1]),d[1]-d[0]),H=d[1]-1,E=I.getWidth()):A=d[1]}let J=this._isCellInSelection(D,b),K=c&&D===f,L=C&&D>=j&&D<=k,M=!1;this._decorationService.forEachDecorationAtCell(D,b,void 0,a=>{M=!0});let N=I.getChars()||" ";if(" "===N&&(I.isUnderline()||I.isOverline())&&(N="\xa0"),z=E*h-i.get(N,I.isBold(),I.isItalic()),p)if(q&&(J&&y||!J&&!y&&I.bg===t)&&(J&&y&&n.selectionForeground||I.fg===u)&&I.extended.ext===v&&L===w&&z===x&&!K&&!F&&!M&&G){I.isInvisible()?r+=" ":r+=N,q++;continue}else q&&(p.textContent=r),p=this._document.createElement("span"),q=0,r="";else p=this._document.createElement("span");if(t=I.bg,u=I.fg,v=I.extended.ext,w=L,x=z,y=J,F&&f>=D&&f<=H&&(f=D),!this._coreService.isCursorHidden&&K&&this._coreService.isCursorInitialized){if(B.push("xterm-cursor"),this._coreBrowserService.isFocused)g&&B.push("xterm-cursor-blink"),B.push("bar"===d?"xterm-cursor-bar":"underline"===d?"xterm-cursor-underline":"xterm-cursor-block");else if(e)switch(e){case"outline":B.push("xterm-cursor-outline");break;case"block":B.push("xterm-cursor-block");break;case"bar":B.push("xterm-cursor-bar");break;case"underline":B.push("xterm-cursor-underline")}}if(I.isBold()&&B.push("xterm-bold"),I.isItalic()&&B.push("xterm-italic"),I.isDim()&&B.push("xterm-dim"),r=I.isInvisible()?" ":I.getChars()||" ",I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`)," "===r&&(r="\xa0"),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())p.style.textDecorationColor=`rgb(${p3.toColorRGB(I.getUnderlineColor()).join(",")})`;else{let a=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&a<8&&(a+=8),p.style.textDecorationColor=n.ansi[a].css}I.isOverline()&&(B.push("xterm-overline")," "===r&&(r="\xa0")),I.isStrikethrough()&&B.push("xterm-strikethrough"),L&&(p.style.textDecoration="underline");let O=I.getFgColor(),P=I.getFgColorMode(),Q=I.getBgColor(),R=I.getBgColorMode(),S=!!I.isInverse();if(S){let a=O;O=Q,Q=a;let b=P;P=R,R=b}let T,U,V=!1;switch(this._decorationService.forEachDecorationAtCell(D,b,void 0,a=>{"top"!==a.options.layer&&V||(a.backgroundColorRGB&&(R=0x3000000,Q=a.backgroundColorRGB.rgba>>8&0xffffff,T=a.backgroundColorRGB),a.foregroundColorRGB&&(P=0x3000000,O=a.foregroundColorRGB.rgba>>8&0xffffff,U=a.foregroundColorRGB),V="top"===a.options.layer)}),!V&&J&&(Q=(T=this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&0xffffff,R=0x3000000,V=!0,n.selectionForeground&&(P=0x3000000,O=n.selectionForeground.rgba>>8&0xffffff,U=n.selectionForeground)),V&&B.push("xterm-decoration-top"),R){case 0x1000000:case 0x2000000:o=n.ansi[Q],B.push(`xterm-bg-${Q}`);break;case 0x3000000:o=sM.toColor(Q>>16,Q>>8&255,255&Q),this._addStyle(p,`background-color:#${s3((Q>>>0).toString(16),"0",6)}`);break;default:S?(o=n.foreground,B.push("xterm-bg-257")):o=n.background}switch(T||I.isDim()&&(T=ul.multiplyOpacity(o,.5)),P){case 0x1000000:case 0x2000000:I.isBold()&&O<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(O+=8),this._applyMinimumContrast(p,o,n.ansi[O],I,T,void 0)||B.push(`xterm-fg-${O}`);break;case 0x3000000:let W=sM.toColor(O>>16&255,O>>8&255,255&O);this._applyMinimumContrast(p,o,W,I,T,U)||this._addStyle(p,`color:#${s3(O.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(p,o,n.foreground,I,T,U)||S&&B.push("xterm-fg-257")}B.length&&(p.className=B.join(" "),B.length=0),K||F||M||!G?p.textContent=r:q++,z!==this.defaultSpacing&&(p.style.letterSpacing=`${z}px`),l.push(p),D=H}return p&&q&&(p.textContent=r),l}_applyMinimumContrast(a,b,c,d,e,f){var g,h,i;if(1===this._optionsService.rawOptions.minimumContrastRatio||57508<=(h=g=d.getCode())&&h<=57558||9472<=(i=g)&&i<=9631)return!1;let j=this._getContrastCache(d),k;if(e||f||(k=j.getColor(b.rgba,c.rgba)),void 0===k){let a=this._optionsService.rawOptions.minimumContrastRatio/(d.isDim()?2:1);k=ul.ensureContrastRatio(e||b,f||c,a),j.setColor((e||b).rgba,(f||c).rgba,k??null)}return!!k&&(this._addStyle(a,`color:${k.css}`),!0)}_getContrastCache(a){return a.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(a,b){a.setAttribute("style",`${a.getAttribute("style")||""}${b};`)}_isCellInSelection(a,b){let c=this._selectionStart,d=this._selectionEnd;return!!c&&!!d&&(this._columnSelectMode?c[0]<=d[0]?a>=c[0]&&b>=c[1]&&a<d[0]&&b<=d[1]:a<c[0]&&b>=c[1]&&a>=d[0]&&b<=d[1]:b>c[1]&&b<d[1]||c[1]===d[1]&&b===c[1]&&a>=c[0]&&a<d[0]||c[1]<d[1]&&b===d[1]&&a<d[0]||c[1]<d[1]&&b===c[1]&&a>=c[0])}};function s3(a,b,c){for(;a.length<c;)a=b+a;return a}s2=p0([p1(1,qn),p1(2,qf),p1(3,qk),p1(4,qc),p1(5,qh),p1(6,qo)],s2);var s4=class{constructor(a,b){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=a.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";let c=a.createElement("span");c.classList.add("xterm-char-measure-element");let d=a.createElement("span");d.classList.add("xterm-char-measure-element"),d.style.fontWeight="bold";let e=a.createElement("span");e.classList.add("xterm-char-measure-element"),e.style.fontStyle="italic";let f=a.createElement("span");f.classList.add("xterm-char-measure-element"),f.style.fontWeight="bold",f.style.fontStyle="italic",this._measureElements=[c,d,e,f],this._container.appendChild(c),this._container.appendChild(d),this._container.appendChild(e),this._container.appendChild(f),b.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(a,b,c,d){a===this._font&&b===this._fontSize&&c===this._weight&&d===this._weightBold||(this._font=a,this._fontSize=b,this._weight=c,this._weightBold=d,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${c}`,this._measureElements[1].style.fontWeight=`${d}`,this._measureElements[2].style.fontWeight=`${c}`,this._measureElements[3].style.fontWeight=`${d}`,this.clear())}get(a,b,c){let d=0;if(!b&&!c&&1===a.length&&(d=a.charCodeAt(0))<256){if(-9999!==this._flat[d])return this._flat[d];let b=this._measure(a,0);return b>0&&(this._flat[d]=b),b}let e=a;b&&(e+="B"),c&&(e+="I");let f=this._holey.get(e);if(void 0===f){let d=0;b&&(d|=1),c&&(d|=2),(f=this._measure(a,d))>0&&this._holey.set(e,f)}return f}_measure(a,b){let c=this._measureElements[b];return c.textContent=a.repeat(32),c.offsetWidth/32}},s5=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(a,b,c,d=!1){if(this.selectionStart=b,this.selectionEnd=c,!b||!c||b[0]===c[0]&&b[1]===c[1])return void this.clear();let e=a.buffers.active.ydisp,f=b[1]-e,g=c[1]-e,h=Math.max(f,0),i=Math.min(g,a.rows-1);h>=a.rows||i<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=d,this.viewportStartRow=f,this.viewportEndRow=g,this.viewportCappedStartRow=h,this.viewportCappedEndRow=i,this.startCol=b[0],this.endCol=c[0])}isCellSelected(a,b,c){return!!this.hasSelection&&(c-=a.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?b>=this.startCol&&c>=this.viewportCappedStartRow&&b<this.endCol&&c<=this.viewportCappedEndRow:b<this.startCol&&c>=this.viewportCappedStartRow&&b>=this.endCol&&c<=this.viewportCappedEndRow:c>this.viewportStartRow&&c<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&c===this.viewportStartRow&&b>=this.startCol&&b<this.endCol||this.viewportStartRow<this.viewportEndRow&&c===this.viewportEndRow&&b<this.endCol||this.viewportStartRow<this.viewportEndRow&&c===this.viewportStartRow&&b>=this.startCol)}},s6="xterm-dom-renderer-owner-",s7="xterm-rows",s8="xterm-fg-",s9="xterm-bg-",ta="xterm-focus",tb="xterm-selection",tc=1,td=class extends qF{constructor(a,b,c,d,e,f,g,h,i,j,k,l,m,n){super(),this._terminal=a,this._document=b,this._element=c,this._screenElement=d,this._viewportElement=e,this._helperContainer=f,this._linkifier2=g,this._charSizeService=i,this._optionsService=j,this._bufferService=k,this._coreService=l,this._coreBrowserService=m,this._themeService=n,this._terminalClass=tc++,this._rowElements=[],this._selectionRenderModel=new s5,this.onRequestRedraw=this._register(new q1).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(s7),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(tb),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions={css:{canvas:s1(),cell:s1()},device:{canvas:s1(),cell:s1(),char:{width:0,height:0,left:0,top:0}}},this._updateDimensions(),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._themeService.onChangeColors(a=>this._injectCss(a))),this._injectCss(this._themeService.colors),this._rowFactory=h.createInstance(s2,document),this._element.classList.add(s6+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this._register(this._linkifier2.onShowLinkUnderline(a=>this._handleLinkHover(a))),this._register(this._linkifier2.onHideLinkUnderline(a=>this._handleLinkLeave(a))),this._register(qD(()=>{this._element.classList.remove(s6+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new s4(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let a=this._coreBrowserService.dpr;for(let b of(this.dimensions.device.char.width=this._charSizeService.width*a,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*a),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/a),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/a),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows,this._rowElements))b.style.width=`${this.dimensions.css.canvas.width}px`,b.style.height=`${this.dimensions.css.cell.height}px`,b.style.lineHeight=`${this.dimensions.css.cell.height}px`,b.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));let b=`${this._terminalSelector} .${s7} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=b,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(a){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let b=`${this._terminalSelector} .${s7} { pointer-events: none; color: ${a.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;b+=`${this._terminalSelector} .${s7} .xterm-dim { color: ${ul.multiplyOpacity(a.foreground,.5).css};}${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let c=`blink_underline_${this._terminalClass}`,d=`blink_bar_${this._terminalClass}`,e=`blink_block_${this._terminalClass}`;for(let[f,g]of(b+=`@keyframes ${c} { 50% { border-bottom-style: hidden; }}@keyframes ${d} { 50% { box-shadow: none; }}@keyframes ${e} { 0% { background-color: ${a.cursor.css}; color: ${a.cursorAccent.css}; } 50% { background-color: inherit; color: ${a.cursor.css}; }}${this._terminalSelector} .${s7}.${ta} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${c} 1s step-end infinite;}${this._terminalSelector} .${s7}.${ta} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${d} 1s step-end infinite;}${this._terminalSelector} .${s7}.${ta} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${e} 1s step-end infinite;}${this._terminalSelector} .${s7} .xterm-cursor.xterm-cursor-block { background-color: ${a.cursor.css}; color: ${a.cursorAccent.css};}${this._terminalSelector} .${s7} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${a.cursor.css} !important; color: ${a.cursorAccent.css} !important;}${this._terminalSelector} .${s7} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${a.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${s7} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${a.cursor.css} inset;}${this._terminalSelector} .${s7} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${a.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}${this._terminalSelector} .${tb} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${tb} div { position: absolute; background-color: ${a.selectionBackgroundOpaque.css};}${this._terminalSelector} .${tb} div { position: absolute; background-color: ${a.selectionInactiveBackgroundOpaque.css};}`,a.ansi.entries()))b+=`${this._terminalSelector} .${s8}${f} { color: ${g.css}; }${this._terminalSelector} .${s8}${f}.xterm-dim { color: ${ul.multiplyOpacity(g,.5).css}; }${this._terminalSelector} .${s9}${f} { background-color: ${g.css}; }`;b+=`${this._terminalSelector} .${s8}257 { color: ${ul.opaque(a.background).css}; }${this._terminalSelector} .${s8}257.xterm-dim { color: ${ul.multiplyOpacity(ul.opaque(a.background),.5).css}; }${this._terminalSelector} .${s9}257 { background-color: ${a.foreground.css}; }`,this._themeStyleElement.textContent=b}_setDefaultSpacing(){let a=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${a}px`,this._rowFactory.defaultSpacing=a}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(a,b){for(let a=this._rowElements.length;a<=b;a++){let a=this._document.createElement("div");this._rowContainer.appendChild(a),this._rowElements.push(a)}for(;this._rowElements.length>b;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(a,b){this._refreshRowElements(a,b),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(ta),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(ta),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(a,b,c){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(a,b,c),this.renderRows(0,this._bufferService.rows-1),!a||!b||(this._selectionRenderModel.update(this._terminal,a,b,c),!this._selectionRenderModel.hasSelection))return;let d=this._selectionRenderModel.viewportStartRow,e=this._selectionRenderModel.viewportEndRow,f=this._selectionRenderModel.viewportCappedStartRow,g=this._selectionRenderModel.viewportCappedEndRow,h=this._document.createDocumentFragment();if(c){let c=a[0]>b[0];h.appendChild(this._createSelectionElement(f,c?b[0]:a[0],c?a[0]:b[0],g-f+1))}else{let c=d===f?a[0]:0,i=f===e?b[0]:this._bufferService.cols;if(h.appendChild(this._createSelectionElement(f,c,i)),h.appendChild(this._createSelectionElement(f+1,0,this._bufferService.cols,g-f-1)),f!==g){let a=e===g?b[0]:this._bufferService.cols;h.appendChild(this._createSelectionElement(g,0,a))}}this._selectionContainer.appendChild(h)}_createSelectionElement(a,b,c,d=1){let e=this._document.createElement("div"),f=b*this.dimensions.css.cell.width,g=this.dimensions.css.cell.width*(c-b);return f+g>this.dimensions.css.canvas.width&&(g=this.dimensions.css.canvas.width-f),e.style.height=`${d*this.dimensions.css.cell.height}px`,e.style.top=`${a*this.dimensions.css.cell.height}px`,e.style.left=`${f}px`,e.style.width=`${g}px`,e}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let a of this._rowElements)a.replaceChildren()}renderRows(a,b){let c=this._bufferService.buffer,d=c.ybase+c.y,e=Math.min(c.x,this._bufferService.cols-1),f=this._coreService.decPrivateModes.cursorBlink??this._optionsService.rawOptions.cursorBlink,g=this._coreService.decPrivateModes.cursorStyle??this._optionsService.rawOptions.cursorStyle,h=this._optionsService.rawOptions.cursorInactiveStyle;for(let i=a;i<=b;i++){let a=i+c.ydisp,b=this._rowElements[i],j=c.lines.get(a);if(!b||!j)break;b.replaceChildren(...this._rowFactory.createRow(j,a,a===d,g,h,e,f,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${s6}${this._terminalClass}`}_handleLinkHover(a){this._setCellUnderline(a.x1,a.x2,a.y1,a.y2,a.cols,!0)}_handleLinkLeave(a){this._setCellUnderline(a.x1,a.x2,a.y1,a.y2,a.cols,!1)}_setCellUnderline(a,b,c,d,e,f){c<0&&(a=0),d<0&&(b=0);let g=this._bufferService.rows-1;c=Math.max(Math.min(c,g),0),d=Math.max(Math.min(d,g),0),e=Math.min(e,this._bufferService.cols);let h=this._bufferService.buffer,i=h.ybase+h.y,j=Math.min(h.x,e-1),k=this._optionsService.rawOptions.cursorBlink,l=this._optionsService.rawOptions.cursorStyle,m=this._optionsService.rawOptions.cursorInactiveStyle;for(let g=c;g<=d;++g){let n=g+h.ydisp,o=this._rowElements[g],p=h.lines.get(n);if(!o||!p)break;o.replaceChildren(...this._rowFactory.createRow(p,n,n===i,l,m,j,k,this.dimensions.css.cell.width,this._widthCache,f?g===c?a:0:-1,f?(g===d?b:e)-1:-1))}}};td=p0([p1(7,qd),p1(8,qj),p1(9,qf),p1(10,qa),p1(11,qc),p1(12,qk),p1(13,qo)],td);var te=class extends qF{constructor(a,b,c){super(),this._optionsService=c,this.width=0,this.height=0,this._onCharSizeChange=this._register(new q1),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this._register(new th(this._optionsService))}catch{this._measureStrategy=this._register(new tg(a,b,this._optionsService))}this._register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],()=>this.measure()))}get hasValidSize(){return this.width>0&&this.height>0}measure(){let a=this._measureStrategy.measure();(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._onCharSizeChange.fire())}};te=p0([p1(2,qf)],te);var tf=class extends qF{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(a,b){void 0!==a&&a>0&&void 0!==b&&b>0&&(this._result.width=a,this._result.height=b)}},tg=class extends tf{constructor(a,b,c){super(),this._document=a,this._parentElement=b,this._optionsService=c,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}},th=class extends tf{constructor(a){super(),this._optionsService=a,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");let b=this._ctx.measureText("W");if(!("width"in b&&"fontBoundingBoxAscent"in b&&"fontBoundingBoxDescent"in b))throw Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let a=this._ctx.measureText("W");return this._validateAndSet(a.width,a.fontBoundingBoxAscent+a.fontBoundingBoxDescent),this._result}};function ti(a,b,c){let d=c.getBoundingClientRect(),e=a.getComputedStyle(c),f=parseInt(e.getPropertyValue("padding-left")),g=parseInt(e.getPropertyValue("padding-top"));return[b.clientX-d.left-f,b.clientY-d.top-g]}var tj=class{constructor(a,b){this._renderService=a,this._charSizeService=b}getCoords(a,b,c,d,e){return function(a,b,c,d,e,f,g,h,i){if(!f)return;let j=ti(a,b,c);if(j)return j[0]=Math.ceil((j[0]+(i?g/2:0))/g),j[1]=Math.ceil(j[1]/h),j[0]=Math.min(Math.max(j[0],1),d+ +!!i),j[1]=Math.min(Math.max(j[1],1),e),j}(window,a,b,c,d,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,e)}getMouseReportCoords(a,b){let c=ti(window,a,b);if(this._charSizeService.hasValidSize)return c[0]=Math.min(Math.max(c[0],0),this._renderService.dimensions.css.canvas.width-1),c[1]=Math.min(Math.max(c[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(c[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(c[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(c[0]),y:Math.floor(c[1])}}};tj=p0([p1(0,qm),p1(1,qj)],tj);var tk=class{constructor(a,b){this._renderCallback=a,this._coreBrowserService=b,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(a){return this._refreshCallbacks.push(a),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh())),this._animationFrame}refresh(a,b,c){this._rowCount=c,a=void 0!==a?a:0,b=void 0!==b?b:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,a):a,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,b):b,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();let a=Math.max(this._rowStart,0),b=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(a,b),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let a of this._refreshCallbacks)a(0);this._refreshCallbacks=[]}},tl={},tm={getSafariVersion:()=>tu,isChromeOS:()=>tA,isFirefox:()=>tr,isIpad:()=>tw,isIphone:()=>tx,isLegacyEdge:()=>ts,isLinux:()=>tz,isMac:()=>tv,isNode:()=>to,isSafari:()=>tt,isWindows:()=>ty};for(var tn in tm)p$(tl,tn,{get:tm[tn],enumerable:!0});var to="u">typeof process&&"title"in process,tp=to?"node":navigator.userAgent,tq=to?"node":navigator.platform,tr=tp.includes("Firefox"),ts=tp.includes("Edge"),tt=/^((?!chrome|android).)*safari/i.test(tp);function tu(){if(!tt)return 0;let a=tp.match(/Version\/(\d+)/);return null===a||a.length<2?0:parseInt(a[1])}var tv=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(tq),tw="iPad"===tq,tx="iPhone"===tq,ty=["Windows","Win16","Win32","WinCE"].includes(tq),tz=tq.indexOf("Linux")>=0,tA=/\bCrOS\b/.test(tp),tB=class{constructor(){this._tasks=[],this._i=0}enqueue(a){this._tasks.push(a),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(a){this._idleCallback=void 0;let b=0,c=0,d=a.timeRemaining(),e=0;for(;this._i<this._tasks.length;){if(b=performance.now(),this._tasks[this._i]()||this._i++,1.5*(c=Math.max(b=Math.max(1,performance.now()-b),c))>(e=a.timeRemaining())){d-b<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(d-b))}ms`),this._start();return}d=e}this.clear()}},tC=class extends tB{_requestCallback(a){return setTimeout(()=>a(this._createDeadline(16)))}_cancelCallback(a){clearTimeout(a)}_createDeadline(a){let b=performance.now()+a;return{timeRemaining:()=>Math.max(0,b-performance.now())}}},tD=class extends tB{_requestCallback(a){return requestIdleCallback(a)}_cancelCallback(a){cancelIdleCallback(a)}},tE=!to&&"requestIdleCallback"in window?tD:tC,tF=class{constructor(){this._queue=new tE}set(a){this._queue.clear(),this._queue.enqueue(a)}flush(){this._queue.flush()}},tG=class extends qF{constructor(a,b,c,d,e,f,g,h,i){super(),this._rowCount=a,this._optionsService=c,this._charSizeService=d,this._coreService=e,this._coreBrowserService=h,this._renderer=this._register(new qG),this._pausedResizeTask=new tF,this._observerDisposable=this._register(new qG),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this._register(new q1),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this._register(new q1),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this._register(new q1),this.onRender=this._onRender.event,this._onRefreshRequest=this._register(new q1),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new tk((a,b)=>this._renderRows(a,b),this._coreBrowserService),this._register(this._renderDebouncer),this._syncOutputHandler=new tH(this._coreBrowserService,this._coreService,()=>this._fullRefresh()),this._register(qD(()=>this._syncOutputHandler.dispose())),this._register(this._coreBrowserService.onDprChange(()=>this.handleDevicePixelRatioChange())),this._register(g.onResize(()=>this._fullRefresh())),this._register(g.buffers.onBufferActivate(()=>this._renderer.value?.clear())),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this._register(f.onDecorationRegistered(()=>this._fullRefresh())),this._register(f.onDecorationRemoved(()=>this._fullRefresh())),this._register(this._optionsService.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],()=>{this.clear(),this.handleResize(g.cols,g.rows),this._fullRefresh()})),this._register(this._optionsService.onMultipleOptionChange(["cursorBlink","cursorStyle"],()=>this.refreshRows(g.buffer.y,g.buffer.y,!0))),this._register(i.onChangeColors(()=>this._fullRefresh())),this._registerIntersectionObserver(this._coreBrowserService.window,b),this._register(this._coreBrowserService.onWindowChange(a=>this._registerIntersectionObserver(a,b)))}get dimensions(){return this._renderer.value.dimensions}_registerIntersectionObserver(a,b){if("IntersectionObserver"in a){let c=new a.IntersectionObserver(a=>this._handleIntersectionChange(a[a.length-1]),{threshold:0});c.observe(b),this._observerDisposable.value=qD(()=>c.disconnect())}}_handleIntersectionChange(a){this._isPaused=void 0===a.isIntersecting?0===a.intersectionRatio:!a.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(a,b,c=!1){if(this._isPaused){this._needsFullRefresh=!0;return}if(this._coreService.decPrivateModes.synchronizedOutput)return void this._syncOutputHandler.bufferRows(a,b);let d=this._syncOutputHandler.flush();d&&(a=Math.min(a,d.start),b=Math.max(b,d.end)),c||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(a,b,this._rowCount)}_renderRows(a,b){if(this._renderer.value){if(this._coreService.decPrivateModes.synchronizedOutput)return void this._syncOutputHandler.bufferRows(a,b);a=Math.min(a,this._rowCount-1),b=Math.min(b,this._rowCount-1),this._renderer.value.renderRows(a,b),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:a,end:b}),this._onRender.fire({start:a,end:b}),this._isNextRenderRedrawOnly=!0}}resize(a,b){this._rowCount=b,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(a){this._renderer.value=a,this._renderer.value&&(this._renderer.value.onRequestRedraw(a=>this.refreshRows(a.start,a.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(a){return this._renderDebouncer.addRefreshCallback(a)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(a,b){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value?.handleResize(a,b)):this._renderer.value.handleResize(a,b),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(a,b,c){this._selectionState.start=a,this._selectionState.end=b,this._selectionState.columnSelectMode=c,this._renderer.value?.handleSelectionChanged(a,b,c)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};tG=p0([p1(2,qf),p1(3,qj),p1(4,qc),p1(5,qh),p1(6,qa),p1(7,qk),p1(8,qo)],tG);var tH=class{constructor(a,b,c){this._coreBrowserService=a,this._coreService=b,this._onTimeout=c,this._start=0,this._end=0,this._isBuffering=!1}bufferRows(a,b){this._isBuffering?(this._start=Math.min(this._start,a),this._end=Math.max(this._end,b)):(this._start=a,this._end=b,this._isBuffering=!0),void 0===this._timeout&&(this._timeout=this._coreBrowserService.window.setTimeout(()=>{this._timeout=void 0,this._coreService.decPrivateModes.synchronizedOutput=!1,this._onTimeout()},1e3))}flush(){if(void 0!==this._timeout&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0),!this._isBuffering)return;let a={start:this._start,end:this._end};return this._isBuffering=!1,a}dispose(){void 0!==this._timeout&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0)}};function tI(a,b,c,d){return tM(Math.abs(a-tJ(a,c)-(b-tJ(b,c)))-function(a,b,c){let d=0,e=a-tJ(a,c),f=b-tJ(b,c);for(let g=0;g<Math.abs(e-f);g++){let f="A"===function(a,b){return a>b?"A":"B"}(a,b)?-1:1;c.buffer.lines.get(e+f*g)?.isWrapped&&d++}return d}(a,b,c),tL(a>b?"A":"B",d))}function tJ(a,b){let c=0,d=b.buffer.lines.get(a),e=d?.isWrapped;for(;e&&a>=0&&a<b.rows;)c++,d=b.buffer.lines.get(--a),e=d?.isWrapped;return c}function tK(a,b,c,d,e,f){let g=a,h=b,i="";for(;(g!==c||h!==d)&&h>=0&&h<f.buffer.lines.length;)g+=e?1:-1,e&&g>f.cols-1?(i+=f.buffer.translateBufferLineToString(h,!1,a,g),g=0,a=0,h++):!e&&g<0&&(i+=f.buffer.translateBufferLineToString(h,!1,0,a+1),a=g=f.cols-1,h--);return i+f.buffer.translateBufferLineToString(h,!1,a,g)}function tL(a,b){return sJ.ESC+(b?"O":"[")+a}function tM(a,b){a=Math.floor(a);let c="";for(let d=0;d<a;d++)c+=b;return c}var tN=class{constructor(a){this._bufferService=a,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let a=this.selectionStart[0]+this.selectionStartLength;return a>this._bufferService.cols?a%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)-1]:[a%this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)]:[a,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let a=this.selectionStart[0]+this.selectionStartLength;return a>this._bufferService.cols?[a%this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)]:[Math.max(a,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let a=this.selectionStart,b=this.selectionEnd;return!!a&&!!b&&(a[1]>b[1]||a[1]===b[1]&&a[0]>b[0])}handleTrim(a){return this.selectionStart&&(this.selectionStart[1]-=a),this.selectionEnd&&(this.selectionEnd[1]-=a),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}};function tO(a,b){if(a.start.y>a.end.y)throw Error(`Buffer range end (${a.end.x}, ${a.end.y}) cannot be before start (${a.start.x}, ${a.start.y})`);return b*(a.end.y-a.start.y)+(a.end.x-a.start.x+1)}var tP=RegExp("\xa0","g"),tQ=class extends qF{constructor(a,b,c,d,e,f,g,h,i){super(),this._element=a,this._screenElement=b,this._linkifier=c,this._bufferService=d,this._coreService=e,this._mouseService=f,this._optionsService=g,this._renderService=h,this._coreBrowserService=i,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new p5,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this._register(new q1),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this._register(new q1),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this._register(new q1),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this._register(new q1),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=a=>this._handleMouseMove(a),this._mouseUpListener=a=>this._handleMouseUp(a),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(a=>this._handleTrim(a)),this._register(this._bufferService.buffers.onBufferActivate(a=>this._handleBufferActivate(a))),this.enable(),this._model=new tN(this._bufferService),this._activeSelectionMode=0,this._register(qD(()=>{this._removeMouseDownListeners()})),this._register(this._bufferService.onResize(a=>{a.rowsChanged&&this.clearSelection()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let a=this._model.finalSelectionStart,b=this._model.finalSelectionEnd;return!!a&&!!b&&(a[0]!==b[0]||a[1]!==b[1])}get selectionText(){let a=this._model.finalSelectionStart,b=this._model.finalSelectionEnd;if(!a||!b)return"";let c=this._bufferService.buffer,d=[];if(3===this._activeSelectionMode){if(a[0]===b[0])return"";let e=a[0]<b[0]?a[0]:b[0],f=a[0]<b[0]?b[0]:a[0];for(let g=a[1];g<=b[1];g++){let a=c.translateBufferLineToString(g,!0,e,f);d.push(a)}}else{let e=a[1]===b[1]?b[0]:void 0;d.push(c.translateBufferLineToString(a[1],!0,a[0],e));for(let e=a[1]+1;e<=b[1]-1;e++){let a=c.lines.get(e),b=c.translateBufferLineToString(e,!0);a?.isWrapped?d[d.length-1]+=b:d.push(b)}if(a[1]!==b[1]){let a=c.lines.get(b[1]),e=c.translateBufferLineToString(b[1],!0,0,b[0]);a&&a.isWrapped?d[d.length-1]+=e:d.push(e)}}return d.map(a=>a.replace(tP," ")).join(ty?`\r
|
|
221
|
+
`:`
|
|
222
|
+
`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(a){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),tz&&a&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(a){let b=this._getMouseBufferCoords(a),c=this._model.finalSelectionStart,d=this._model.finalSelectionEnd;return!!c&&!!d&&!!b&&this._areCoordsInSelection(b,c,d)}isCellInSelection(a,b){let c=this._model.finalSelectionStart,d=this._model.finalSelectionEnd;return!!c&&!!d&&this._areCoordsInSelection([a,b],c,d)}_areCoordsInSelection(a,b,c){return a[1]>b[1]&&a[1]<c[1]||b[1]===c[1]&&a[1]===b[1]&&a[0]>=b[0]&&a[0]<c[0]||b[1]<c[1]&&a[1]===c[1]&&a[0]<c[0]||b[1]<c[1]&&a[1]===b[1]&&a[0]>=b[0]}_selectWordAtCursor(a,b){let c=this._linkifier.currentLink?.link?.range;if(c)return this._model.selectionStart=[c.start.x-1,c.start.y-1],this._model.selectionStartLength=tO(c,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let d=this._getMouseBufferCoords(a);return!!d&&(this._selectWordAt(d,b),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(a,b){this._model.clearSelection(),a=Math.max(a,0),b=Math.min(b,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,a],this._model.selectionEnd=[this._bufferService.cols,b],this.refresh(),this._onSelectionChange.fire()}_handleTrim(a){this._model.handleTrim(a)&&this.refresh()}_getMouseBufferCoords(a){let b=this._mouseService.getCoords(a,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(b)return b[0]--,b[1]--,b[1]+=this._bufferService.buffer.ydisp,b}_getMouseEventScrollAmount(a){let b=ti(this._coreBrowserService.window,a,this._screenElement)[1],c=this._renderService.dimensions.css.canvas.height;return b>=0&&b<=c?0:(b>c&&(b-=c),(b=Math.min(Math.max(b,-50),50)/50)/Math.abs(b)+Math.round(14*b))}shouldForceSelection(a){return tv?a.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:a.shiftKey}handleMouseDown(a){if(this._mouseDownTimeStamp=a.timeStamp,!(2===a.button&&this.hasSelection)&&0===a.button){if(!this._enabled){if(!this.shouldForceSelection(a))return;a.stopPropagation()}a.preventDefault(),this._dragScrollAmount=0,this._enabled&&a.shiftKey?this._handleIncrementalClick(a):1===a.detail?this._handleSingleClick(a):2===a.detail?this._handleDoubleClick(a):3===a.detail&&this._handleTripleClick(a),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(a){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(a))}_handleSingleClick(a){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=3*!!this.shouldColumnSelect(a),this._model.selectionStart=this._getMouseBufferCoords(a),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let b=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);b&&b.length!==this._model.selectionStart[0]&&0===b.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(a){this._selectWordAtCursor(a,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(a){let b=this._getMouseBufferCoords(a);b&&(this._activeSelectionMode=2,this._selectLineAt(b[1]))}shouldColumnSelect(a){return a.altKey&&!(tv&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(a){if(a.stopImmediatePropagation(),!this._model.selectionStart)return;let b=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(a),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(a),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let c=this._bufferService.buffer;if(this._model.selectionEnd[1]<c.lines.length){let a=c.lines.get(this._model.selectionEnd[1]);a&&0===a.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}b&&b[0]===this._model.selectionEnd[0]&&b[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(!(!this._model.selectionEnd||!this._model.selectionStart)&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let a=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(a.ydisp+this._bufferService.rows,a.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=a.ydisp),this.refresh()}}_handleMouseUp(a){let b=a.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&b<500&&a.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let b=this._mouseService.getCoords(a,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(b&&void 0!==b[0]&&void 0!==b[1]){let a=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;let u,v=c.buffer.x,w=c.buffer.y;if(!c.buffer.hasScrollback){let t,u,x;return e=v,(0===tI(f=w,b,g=c,h=d).length?"":tM(tK(e,f,e,f-tJ(f,g),!1,g).length,tL("D",h)))+tI(w,b,c,d)+(i=v,j=w,k=a,t=tI(j,l=b,m=c,n=d).length>0?l-tJ(l,m):j,x=(o=i,p=j,u=tI(q=k,r=l,s=m,n).length>0?r-tJ(r,s):p,o<q&&u<=r||o>=q&&u<r?"C":"D"),tM(tK(i,t,k,l,"C"===x,m).length,tL(x,n)))}if(w===b)return u=v>a?"D":"C",tM(Math.abs(v-a),tL(u,d));u=w>b?"D":"C";let x=Math.abs(w-b);return tM((t=w>b?a:v,c.cols-t+(x-1)*c.cols+1+((w>b?v:a)-1)),tL(u,d))}(b[0]-1,b[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(a,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let a=this._model.finalSelectionStart,b=this._model.finalSelectionEnd,c=!!a&&!!b&&(a[0]!==b[0]||a[1]!==b[1]);if(!c){this._oldHasSelection&&this._fireOnSelectionChange(a,b,c);return}!a||!b||this._oldSelectionStart&&this._oldSelectionEnd&&a[0]===this._oldSelectionStart[0]&&a[1]===this._oldSelectionStart[1]&&b[0]===this._oldSelectionEnd[0]&&b[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(a,b,c)}_fireOnSelectionChange(a,b,c){this._oldSelectionStart=a,this._oldSelectionEnd=b,this._oldHasSelection=c,this._onSelectionChange.fire()}_handleBufferActivate(a){this.clearSelection(),this._trimListener.dispose(),this._trimListener=a.activeBuffer.lines.onTrim(a=>this._handleTrim(a))}_convertViewportColToCharacterIndex(a,b){let c=b;for(let d=0;b>=d;d++){let e=a.loadCell(d,this._workCell).getChars().length;0===this._workCell.getWidth()?c--:e>1&&b!==d&&(c+=e-1)}return c}setSelection(a,b,c){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[a,b],this._model.selectionStartLength=c,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(a){this._isClickInSelection(a)||(this._selectWordAtCursor(a,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(a,b,c=!0,d=!0){if(a[0]>=this._bufferService.cols)return;let e=this._bufferService.buffer,f=e.lines.get(a[1]);if(!f)return;let g=e.translateBufferLineToString(a[1],!1),h=this._convertViewportColToCharacterIndex(f,a[0]),i=h,j=a[0]-h,k=0,l=0,m=0,n=0;if(" "===g.charAt(h)){for(;h>0&&" "===g.charAt(h-1);)h--;for(;i<g.length&&" "===g.charAt(i+1);)i++}else{let b=a[0],c=a[0];0===f.getWidth(b)&&(k++,b--),2===f.getWidth(c)&&(l++,c++);let d=f.getString(c).length;for(d>1&&(n+=d-1,i+=d-1);b>0&&h>0&&!this._isCharWordSeparator(f.loadCell(b-1,this._workCell));){f.loadCell(b-1,this._workCell);let a=this._workCell.getChars().length;0===this._workCell.getWidth()?(k++,b--):a>1&&(m+=a-1,h-=a-1),h--,b--}for(;c<f.length&&i+1<g.length&&!this._isCharWordSeparator(f.loadCell(c+1,this._workCell));){f.loadCell(c+1,this._workCell);let a=this._workCell.getChars().length;2===this._workCell.getWidth()?(l++,c++):a>1&&(n+=a-1,i+=a-1),i++,c++}}i++;let o=h+j-k+m,p=Math.min(this._bufferService.cols,i-h+k+l-m-n);if(!(!b&&""===g.slice(h,i).trim())){if(c&&0===o&&32!==f.getCodePoint(0)){let b=e.lines.get(a[1]-1);if(b&&f.isWrapped&&32!==b.getCodePoint(this._bufferService.cols-1)){let b=this._getWordAt([this._bufferService.cols-1,a[1]-1],!1,!0,!1);if(b){let a=this._bufferService.cols-b.start;o-=a,p+=a}}}if(d&&o+p===this._bufferService.cols&&32!==f.getCodePoint(this._bufferService.cols-1)){let b=e.lines.get(a[1]+1);if(b?.isWrapped&&32!==b.getCodePoint(0)){let b=this._getWordAt([0,a[1]+1],!1,!1,!0);b&&(p+=b.length)}}return{start:o,length:p}}}_selectWordAt(a,b){let c=this._getWordAt(a,b);if(c){for(;c.start<0;)c.start+=this._bufferService.cols,a[1]--;this._model.selectionStart=[c.start,a[1]],this._model.selectionStartLength=c.length}}_selectToWordAt(a){let b=this._getWordAt(a,!0);if(b){let c=a[1];for(;b.start<0;)b.start+=this._bufferService.cols,c--;if(!this._model.areSelectionValuesReversed())for(;b.start+b.length>this._bufferService.cols;)b.length-=this._bufferService.cols,c++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?b.start:b.start+b.length,c]}}_isCharWordSeparator(a){return 0!==a.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(a.getChars())>=0}_selectLineAt(a){let b=this._bufferService.buffer.getWrappedRangeForLine(a),c={start:{x:0,y:b.first},end:{x:this._bufferService.cols-1,y:b.last}};this._model.selectionStart=[0,b.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=tO(c,this._bufferService.cols)}};tQ=p0([p1(3,qa),p1(4,qc),p1(5,ql),p1(6,qf),p1(7,qm),p1(8,qk)],tQ);var tR=class{constructor(){this._data={}}set(a,b,c){this._data[a]||(this._data[a]={}),this._data[a][b]=c}get(a,b){return this._data[a]?this._data[a][b]:void 0}clear(){this._data={}}},tS=class{constructor(){this._color=new tR,this._css=new tR}setCss(a,b,c){this._css.set(a,b,c)}getCss(a,b){return this._css.get(a,b)}setColor(a,b,c){this._color.set(a,b,c)}getColor(a,b){return this._color.get(a,b)}clear(){this._color.clear(),this._css.clear()}},tT=Object.freeze((()=>{let a=[um.toColor("#2e3436"),um.toColor("#cc0000"),um.toColor("#4e9a06"),um.toColor("#c4a000"),um.toColor("#3465a4"),um.toColor("#75507b"),um.toColor("#06989a"),um.toColor("#d3d7cf"),um.toColor("#555753"),um.toColor("#ef2929"),um.toColor("#8ae234"),um.toColor("#fce94f"),um.toColor("#729fcf"),um.toColor("#ad7fa8"),um.toColor("#34e2e2"),um.toColor("#eeeeec")],b=[0,95,135,175,215,255];for(let c=0;c<216;c++){let d=b[c/36%6|0],e=b[c/6%6|0],f=b[c%6];a.push({css:sM.toCss(d,e,f),rgba:sM.toRgba(d,e,f)})}for(let b=0;b<24;b++){let c=8+10*b;a.push({css:sM.toCss(c,c,c),rgba:sM.toRgba(c,c,c)})}return a})()),tU=um.toColor("#ffffff"),tV=um.toColor("#000000"),tW=um.toColor("#ffffff"),tX={css:"rgba(255, 255, 255, 0.3)",rgba:0xffffff4d},tY=class extends qF{constructor(a){super(),this._optionsService=a,this._contrastCache=new tS,this._halfContrastCache=new tS,this._onChangeColors=this._register(new q1),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:tU,background:tV,cursor:tW,cursorAccent:tV,selectionForeground:void 0,selectionBackgroundTransparent:tX,selectionBackgroundOpaque:ul.blend(tV,tX),selectionInactiveBackgroundTransparent:tX,selectionInactiveBackgroundOpaque:ul.blend(tV,tX),scrollbarSliderBackground:ul.opacity(tU,.2),scrollbarSliderHoverBackground:ul.opacity(tU,.4),scrollbarSliderActiveBackground:ul.opacity(tU,.5),overviewRulerBorder:tU,ansi:tT.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange("theme",()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(a={}){let b=this._colors;if(b.foreground=tZ(a.foreground,tU),b.background=tZ(a.background,tV),b.cursor=ul.blend(b.background,tZ(a.cursor,tW)),b.cursorAccent=ul.blend(b.background,tZ(a.cursorAccent,tV)),b.selectionBackgroundTransparent=tZ(a.selectionBackground,tX),b.selectionBackgroundOpaque=ul.blend(b.background,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundTransparent=tZ(a.selectionInactiveBackground,b.selectionBackgroundTransparent),b.selectionInactiveBackgroundOpaque=ul.blend(b.background,b.selectionInactiveBackgroundTransparent),b.selectionForeground=a.selectionForeground?tZ(a.selectionForeground,sR):void 0,b.selectionForeground===sR&&(b.selectionForeground=void 0),ul.isOpaque(b.selectionBackgroundTransparent)&&(b.selectionBackgroundTransparent=ul.opacity(b.selectionBackgroundTransparent,.3)),ul.isOpaque(b.selectionInactiveBackgroundTransparent)&&(b.selectionInactiveBackgroundTransparent=ul.opacity(b.selectionInactiveBackgroundTransparent,.3)),b.scrollbarSliderBackground=tZ(a.scrollbarSliderBackground,ul.opacity(b.foreground,.2)),b.scrollbarSliderHoverBackground=tZ(a.scrollbarSliderHoverBackground,ul.opacity(b.foreground,.4)),b.scrollbarSliderActiveBackground=tZ(a.scrollbarSliderActiveBackground,ul.opacity(b.foreground,.5)),b.overviewRulerBorder=tZ(a.overviewRulerBorder,tU),b.ansi=tT.slice(),b.ansi[0]=tZ(a.black,tT[0]),b.ansi[1]=tZ(a.red,tT[1]),b.ansi[2]=tZ(a.green,tT[2]),b.ansi[3]=tZ(a.yellow,tT[3]),b.ansi[4]=tZ(a.blue,tT[4]),b.ansi[5]=tZ(a.magenta,tT[5]),b.ansi[6]=tZ(a.cyan,tT[6]),b.ansi[7]=tZ(a.white,tT[7]),b.ansi[8]=tZ(a.brightBlack,tT[8]),b.ansi[9]=tZ(a.brightRed,tT[9]),b.ansi[10]=tZ(a.brightGreen,tT[10]),b.ansi[11]=tZ(a.brightYellow,tT[11]),b.ansi[12]=tZ(a.brightBlue,tT[12]),b.ansi[13]=tZ(a.brightMagenta,tT[13]),b.ansi[14]=tZ(a.brightCyan,tT[14]),b.ansi[15]=tZ(a.brightWhite,tT[15]),a.extendedAnsi){let c=Math.min(b.ansi.length-16,a.extendedAnsi.length);for(let d=0;d<c;d++)b.ansi[d+16]=tZ(a.extendedAnsi[d],tT[d+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(a){this._restoreColor(a),this._onChangeColors.fire(this.colors)}_restoreColor(a){if(void 0===a){for(let a=0;a<this._restoreColors.ansi.length;++a)this._colors.ansi[a]=this._restoreColors.ansi[a];return}switch(a){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[a]=this._restoreColors.ansi[a]}}modifyColors(a){a(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function tZ(a,b){if(void 0!==a)try{return um.toColor(a)}catch{}return b}tY=p0([p1(0,qf)],tY);var t$={trace:0,debug:1,info:2,warn:3,error:4,off:5},t_=class extends qF{constructor(a){super(),this._optionsService=a,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel()))}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=t$[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(a){for(let b=0;b<a.length;b++)"function"==typeof a[b]&&(a[b]=a[b]())}_log(a,b,c){this._evalLazyOptionalParams(c),a.call(console,(this._optionsService.options.logger?"":"xterm.js: ")+b,...c)}trace(a,...b){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,a,b)}debug(a,...b){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,a,b)}info(a,...b){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,a,b)}warn(a,...b){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,a,b)}error(a,...b){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,a,b)}};t_=p0([p1(0,qf)],t_);var t0=class extends qF{constructor(a){super(),this._maxLength=a,this.onDeleteEmitter=this._register(new q1),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new q1),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new q1),this.onTrim=this.onTrimEmitter.event,this._array=Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(a){if(this._maxLength===a)return;let b=Array(a);for(let c=0;c<Math.min(a,this.length);c++)b[c]=this._array[this._getCyclicIndex(c)];this._array=b,this._maxLength=a,this._startIndex=0}get length(){return this._length}set length(a){if(a>this._length)for(let b=this._length;b<a;b++)this._array[b]=void 0;this._length=a}get(a){return this._array[this._getCyclicIndex(a)]}set(a,b){this._array[this._getCyclicIndex(a)]=b}push(a){this._array[this._getCyclicIndex(this._length)]=a,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(a,b,...c){if(b){for(let c=a;c<this._length-b;c++)this._array[this._getCyclicIndex(c)]=this._array[this._getCyclicIndex(c+b)];this._length-=b,this.onDeleteEmitter.fire({index:a,amount:b})}for(let b=this._length-1;b>=a;b--)this._array[this._getCyclicIndex(b+c.length)]=this._array[this._getCyclicIndex(b)];for(let b=0;b<c.length;b++)this._array[this._getCyclicIndex(a+b)]=c[b];if(c.length&&this.onInsertEmitter.fire({index:a,amount:c.length}),this._length+c.length>this._maxLength){let a=this._length+c.length-this._maxLength;this._startIndex+=a,this._length=this._maxLength,this.onTrimEmitter.fire(a)}else this._length+=c.length}trimStart(a){a>this._length&&(a=this._length),this._startIndex+=a,this._length-=a,this.onTrimEmitter.fire(a)}shiftElements(a,b,c){if(!(b<=0)){if(a<0||a>=this._length)throw Error("start argument out of range");if(a+c<0)throw Error("Cannot shift elements in list beyond index 0");if(c>0){for(let d=b-1;d>=0;d--)this.set(a+d+c,this.get(a+d));let d=a+b+c-this._length;if(d>0)for(this._length+=d;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let d=0;d<b;d++)this.set(a+d+c,this.get(a+d))}}_getCyclicIndex(a){return(this._startIndex+a)%this._maxLength}},t1=Object.freeze(new p3),t2=0,t3=class a{constructor(a,b,c=!1){this.isWrapped=c,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*a);let d=b||p5.fromCharData([0,"",1,0]);for(let b=0;b<a;++b)this.setCell(b,d);this.length=a}get(a){let b=this._data[3*a+0],c=2097151&b;return[this._data[3*a+1],2097152&b?this._combined[a]:c?p2(c):"",b>>22,2097152&b?this._combined[a].charCodeAt(this._combined[a].length-1):c]}set(a,b){this._data[3*a+1]=b[0],b[1].length>1?(this._combined[a]=b[1],this._data[3*a+0]=2097152|a|b[2]<<22):this._data[3*a+0]=b[1].charCodeAt(0)|b[2]<<22}getWidth(a){return this._data[3*a+0]>>22}hasWidth(a){return 0xc00000&this._data[3*a+0]}getFg(a){return this._data[3*a+1]}getBg(a){return this._data[3*a+2]}hasContent(a){return 4194303&this._data[3*a+0]}getCodePoint(a){let b=this._data[3*a+0];return 2097152&b?this._combined[a].charCodeAt(this._combined[a].length-1):2097151&b}isCombined(a){return 2097152&this._data[3*a+0]}getString(a){let b=this._data[3*a+0];return 2097152&b?this._combined[a]:2097151&b?p2(2097151&b):""}isProtected(a){return 0x20000000&this._data[3*a+2]}loadCell(a,b){return t2=3*a,b.content=this._data[t2+0],b.fg=this._data[t2+1],b.bg=this._data[t2+2],2097152&b.content&&(b.combinedData=this._combined[a]),0x10000000&b.bg&&(b.extended=this._extendedAttrs[a]),b}setCell(a,b){2097152&b.content&&(this._combined[a]=b.combinedData),0x10000000&b.bg&&(this._extendedAttrs[a]=b.extended),this._data[3*a+0]=b.content,this._data[3*a+1]=b.fg,this._data[3*a+2]=b.bg}setCellFromCodepoint(a,b,c,d){0x10000000&d.bg&&(this._extendedAttrs[a]=d.extended),this._data[3*a+0]=b|c<<22,this._data[3*a+1]=d.fg,this._data[3*a+2]=d.bg}addCodepointToCell(a,b,c){let d=this._data[3*a+0];2097152&d?this._combined[a]+=p2(b):2097151&d?(this._combined[a]=p2(2097151&d)+p2(b),d&=-2097152,d|=2097152):d=4194304|b,c&&(d&=-0xc00001,d|=c<<22),this._data[3*a+0]=d}insertCells(a,b,c){if((a%=this.length)&&2===this.getWidth(a-1)&&this.setCellFromCodepoint(a-1,0,1,c),b<this.length-a){let d=new p5;for(let c=this.length-a-b-1;c>=0;--c)this.setCell(a+b+c,this.loadCell(a+c,d));for(let d=0;d<b;++d)this.setCell(a+d,c)}else for(let b=a;b<this.length;++b)this.setCell(b,c);2===this.getWidth(this.length-1)&&this.setCellFromCodepoint(this.length-1,0,1,c)}deleteCells(a,b,c){if(a%=this.length,b<this.length-a){let d=new p5;for(let c=0;c<this.length-a-b;++c)this.setCell(a+c,this.loadCell(a+b+c,d));for(let a=this.length-b;a<this.length;++a)this.setCell(a,c)}else for(let b=a;b<this.length;++b)this.setCell(b,c);a&&2===this.getWidth(a-1)&&this.setCellFromCodepoint(a-1,0,1,c),0!==this.getWidth(a)||this.hasContent(a)||this.setCellFromCodepoint(a,0,1,c)}replaceCells(a,b,c,d=!1){if(d){for(a&&2===this.getWidth(a-1)&&!this.isProtected(a-1)&&this.setCellFromCodepoint(a-1,0,1,c),b<this.length&&2===this.getWidth(b-1)&&!this.isProtected(b)&&this.setCellFromCodepoint(b,0,1,c);a<b&&a<this.length;)this.isProtected(a)||this.setCell(a,c),a++;return}for(a&&2===this.getWidth(a-1)&&this.setCellFromCodepoint(a-1,0,1,c),b<this.length&&2===this.getWidth(b-1)&&this.setCellFromCodepoint(b,0,1,c);a<b&&a<this.length;)this.setCell(a++,c)}resize(a,b){if(a===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;let c=3*a;if(a>this.length){if(this._data.buffer.byteLength>=4*c)this._data=new Uint32Array(this._data.buffer,0,c);else{let a=new Uint32Array(c);a.set(this._data),this._data=a}for(let c=this.length;c<a;++c)this.setCell(c,b)}else{this._data=this._data.subarray(0,c);let b=Object.keys(this._combined);for(let c=0;c<b.length;c++){let d=parseInt(b[c],10);d>=a&&delete this._combined[d]}let d=Object.keys(this._extendedAttrs);for(let b=0;b<d.length;b++){let c=parseInt(d[b],10);c>=a&&delete this._extendedAttrs[c]}}return this.length=a,4*c*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){let a=new Uint32Array(this._data.length);return a.set(this._data),this._data=a,1}return 0}fill(a,b=!1){if(b){for(let b=0;b<this.length;++b)this.isProtected(b)||this.setCell(b,a);return}this._combined={},this._extendedAttrs={};for(let b=0;b<this.length;++b)this.setCell(b,a)}copyFrom(a){for(let b in this.length!==a.length?this._data=new Uint32Array(a._data):this._data.set(a._data),this.length=a.length,this._combined={},a._combined)this._combined[b]=a._combined[b];for(let b in this._extendedAttrs={},a._extendedAttrs)this._extendedAttrs[b]=a._extendedAttrs[b];this.isWrapped=a.isWrapped}clone(){let b=new a(0);for(let a in b._data=new Uint32Array(this._data),b.length=this.length,this._combined)b._combined[a]=this._combined[a];for(let a in this._extendedAttrs)b._extendedAttrs[a]=this._extendedAttrs[a];return b.isWrapped=this.isWrapped,b}getTrimmedLength(){for(let a=this.length-1;a>=0;--a)if(4194303&this._data[3*a+0])return a+(this._data[3*a+0]>>22);return 0}getNoBgTrimmedLength(){for(let a=this.length-1;a>=0;--a)if(4194303&this._data[3*a+0]||0x3000000&this._data[3*a+2])return a+(this._data[3*a+0]>>22);return 0}copyCellsFrom(a,b,c,d,e){let f=a._data;if(e)for(let e=d-1;e>=0;e--){for(let a=0;a<3;a++)this._data[(c+e)*3+a]=f[(b+e)*3+a];0x10000000&f[(b+e)*3+2]&&(this._extendedAttrs[c+e]=a._extendedAttrs[b+e])}else for(let e=0;e<d;e++){for(let a=0;a<3;a++)this._data[(c+e)*3+a]=f[(b+e)*3+a];0x10000000&f[(b+e)*3+2]&&(this._extendedAttrs[c+e]=a._extendedAttrs[b+e])}let g=Object.keys(a._combined);for(let d=0;d<g.length;d++){let e=parseInt(g[d],10);e>=b&&(this._combined[e-b+c]=a._combined[e])}}translateToString(a,b,c,d){b=b??0,c=c??this.length,a&&(c=Math.min(c,this.getTrimmedLength())),d&&(d.length=0);let e="";for(;b<c;){let a=this._data[3*b+0],c=2097151&a,f=2097152&a?this._combined[b]:c?p2(c):" ";if(e+=f,d)for(let a=0;a<f.length;++a)d.push(b);b+=a>>22||1}return d&&d.push(b),e}};function t4(a,b,c){if(b===a.length-1)return a[b].getTrimmedLength();let d=!a[b].hasContent(c-1)&&1===a[b].getWidth(c-1),e=2===a[b+1].getWidth(0);return d&&e?c-1:c}var t5=class a{constructor(b){this.line=b,this.isDisposed=!1,this._disposables=[],this._id=a._nextId++,this._onDispose=this.register(new q1),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),qC(this._disposables),this._disposables.length=0)}register(a){return this._disposables.push(a),a}};t5._nextId=1;var t6={},t7=t6.B;t6[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"\xb0",g:"\xb1",h:"",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"\xa3","~":"\xb7"},t6.A={"#":"\xa3"},t6.B=void 0,t6[4]={"#":"\xa3","@":"\xbe","[":"ij","\\":"\xbd","]":"|","{":"\xa8","|":"f","}":"\xbc","~":"\xb4"},t6.C=t6[5]={"[":"\xc4","\\":"\xd6","]":"\xc5","^":"\xdc","`":"\xe9","{":"\xe4","|":"\xf6","}":"\xe5","~":"\xfc"},t6.R={"#":"\xa3","@":"\xe0","[":"\xb0","\\":"\xe7","]":"\xa7","{":"\xe9","|":"\xf9","}":"\xe8","~":"\xa8"},t6.Q={"@":"\xe0","[":"\xe2","\\":"\xe7","]":"\xea","^":"\xee","`":"\xf4","{":"\xe9","|":"\xf9","}":"\xe8","~":"\xfb"},t6.K={"@":"\xa7","[":"\xc4","\\":"\xd6","]":"\xdc","{":"\xe4","|":"\xf6","}":"\xfc","~":"\xdf"},t6.Y={"#":"\xa3","@":"\xa7","[":"\xb0","\\":"\xe7","]":"\xe9","`":"\xf9","{":"\xe0","|":"\xf2","}":"\xe8","~":"\xec"},t6.E=t6[6]={"@":"\xc4","[":"\xc6","\\":"\xd8","]":"\xc5","^":"\xdc","`":"\xe4","{":"\xe6","|":"\xf8","}":"\xe5","~":"\xfc"},t6.Z={"#":"\xa3","@":"\xa7","[":"\xa1","\\":"\xd1","]":"\xbf","{":"\xb0","|":"\xf1","}":"\xe7"},t6.H=t6[7]={"@":"\xc9","[":"\xc4","\\":"\xd6","]":"\xc5","^":"\xdc","`":"\xe9","{":"\xe4","|":"\xf6","}":"\xe5","~":"\xfc"},t6["="]={"#":"\xf9","@":"\xe0","[":"\xe9","\\":"\xe7","]":"\xea","^":"\xee",_:"\xe8","`":"\xf4","{":"\xe4","|":"\xf6","}":"\xfc","~":"\xfb"};var t8=class{constructor(a,b,c){this._hasScrollback=a,this._optionsService=b,this._bufferService=c,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=t1.clone(),this.savedCharset=t7,this.markers=[],this._nullCell=p5.fromCharData([0,"",1,0]),this._whitespaceCell=p5.fromCharData([0," ",1,32]),this._isClearing=!1,this._memoryCleanupQueue=new tE,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new t0(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(a){return a?(this._nullCell.fg=a.fg,this._nullCell.bg=a.bg,this._nullCell.extended=a.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new p4),this._nullCell}getWhitespaceCell(a){return a?(this._whitespaceCell.fg=a.fg,this._whitespaceCell.bg=a.bg,this._whitespaceCell.extended=a.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new p4),this._whitespaceCell}getBlankLine(a,b){return new t3(this._bufferService.cols,this.getNullCell(a),b)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let a=this.ybase+this.y-this.ydisp;return a>=0&&a<this._rows}_getCorrectBufferLength(a){if(!this._hasScrollback)return a;let b=a+this._optionsService.rawOptions.scrollback;return b>0xffffffff?0xffffffff:b}fillViewportRows(a){if(0===this.lines.length){void 0===a&&(a=t1);let b=this._rows;for(;b--;)this.lines.push(this.getBlankLine(a))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new t0(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(a,b){let c=this.getNullCell(t1),d=0,e=this._getCorrectBufferLength(b);if(e>this.lines.maxLength&&(this.lines.maxLength=e),this.lines.length>0){if(this._cols<a)for(let b=0;b<this.lines.length;b++)d+=+this.lines.get(b).resize(a,c);let f=0;if(this._rows<b)for(let d=this._rows;d<b;d++)this.lines.length<b+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new t3(a,c)):this.ybase>0&&this.lines.length<=this.ybase+this.y+f+1?(this.ybase--,f++,this.ydisp>0&&this.ydisp--):this.lines.push(new t3(a,c)));else for(let a=this._rows;a>b;a--)this.lines.length>b+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(e<this.lines.maxLength){let a=this.lines.length-e;a>0&&(this.lines.trimStart(a),this.ybase=Math.max(this.ybase-a,0),this.ydisp=Math.max(this.ydisp-a,0),this.savedY=Math.max(this.savedY-a,0)),this.lines.maxLength=e}this.x=Math.min(this.x,a-1),this.y=Math.min(this.y,b-1),f&&(this.y+=f),this.savedX=Math.min(this.savedX,a-1),this.scrollTop=0}if(this.scrollBottom=b-1,this._isReflowEnabled&&(this._reflow(a,b),this._cols>a))for(let b=0;b<this.lines.length;b++)d+=+this.lines.get(b).resize(a,c);this._cols=a,this._rows=b,this._memoryCleanupQueue.clear(),d>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let a=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,a=!1);let b=0;for(;this._memoryCleanupPosition<this.lines.length;)if((b+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory())>100)return!0;return a}get _isReflowEnabled(){let a=this._optionsService.rawOptions.windowsPty;return a&&a.buildNumber?this._hasScrollback&&"conpty"===a.backend&&a.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(a,b){this._cols!==a&&(a>this._cols?this._reflowLarger(a,b):this._reflowSmaller(a,b))}_reflowLarger(a,b){let c=this._optionsService.rawOptions.reflowCursorLine,d=function(a,b,c,d,e,f){let g=[];for(let h=0;h<a.length-1;h++){let i=h,j=a.get(++i);if(!j.isWrapped)continue;let k=[a.get(h)];for(;i<a.length&&j.isWrapped;)k.push(j),j=a.get(++i);if(!f&&d>=h&&d<i){h+=k.length-1;continue}let l=0,m=t4(k,0,b),n=1,o=0;for(;n<k.length;){let a=t4(k,n,b),d=Math.min(a-o,c-m);k[l].copyCellsFrom(k[n],o,m,d,!1),(m+=d)===c&&(l++,m=0),(o+=d)===a&&(n++,o=0),0===m&&0!==l&&2===k[l-1].getWidth(c-1)&&(k[l].copyCellsFrom(k[l-1],c-1,m++,1,!1),k[l-1].setCell(c-1,e))}k[l].replaceCells(m,c,e);let p=0;for(let a=k.length-1;a>0&&(a>l||0===k[a].getTrimmedLength());a--)p++;p>0&&(g.push(h+k.length-p),g.push(p)),h+=k.length-1}return g}(this.lines,this._cols,a,this.ybase+this.y,this.getNullCell(t1),c);if(d.length>0){let c=function(a,b){let c=[],d=0,e=b[0],f=0;for(let g=0;g<a.length;g++)if(e===g){let c=b[++d];a.onDeleteEmitter.fire({index:g-f,amount:c}),g+=c-1,f+=c,e=b[++d]}else c.push(g);return{layout:c,countRemoved:f}}(this.lines,d);(function(a,b){let c=[];for(let d=0;d<b.length;d++)c.push(a.get(b[d]));for(let b=0;b<c.length;b++)a.set(b,c[b]);a.length=b.length})(this.lines,c.layout),this._reflowLargerAdjustViewport(a,b,c.countRemoved)}}_reflowLargerAdjustViewport(a,b,c){let d=this.getNullCell(t1),e=c;for(;e-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<b&&this.lines.push(new t3(a,d))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-c,0)}_reflowSmaller(a,b){let c=this._optionsService.rawOptions.reflowCursorLine,d=this.getNullCell(t1),e=[],f=0;for(let g=this.lines.length-1;g>=0;g--){let h=this.lines.get(g);if(!h||!h.isWrapped&&h.getTrimmedLength()<=a)continue;let i=[h];for(;h.isWrapped&&g>0;)h=this.lines.get(--g),i.unshift(h);if(!c){let a=this.ybase+this.y;if(a>=g&&a<g+i.length)continue}let j=i[i.length-1].getTrimmedLength(),k=function(a,b,c){let d=[],e=a.map((c,d)=>t4(a,d,b)).reduce((a,b)=>a+b),f=0,g=0,h=0;for(;h<e;){if(e-h<c){d.push(e-h);break}f+=c;let i=t4(a,g,b);f>i&&(f-=i,g++);let j=2===a[g].getWidth(f-1);j&&f--;let k=j?c-1:c;d.push(k),h+=k}return d}(i,this._cols,a),l=k.length-i.length,m;m=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+l):Math.max(0,this.lines.length-this.lines.maxLength+l);let n=[];for(let a=0;a<l;a++){let a=this.getBlankLine(t1,!0);n.push(a)}n.length>0&&(e.push({start:g+i.length+f,newLines:n}),f+=n.length),i.push(...n);let o=k.length-1,p=k[o];0===p&&(p=k[--o]);let q=i.length-l-1,r=j;for(;q>=0;){let a=Math.min(r,p);if(void 0===i[o])break;i[o].copyCellsFrom(i[q],r-a,p-a,a,!0),0==(p-=a)&&(p=k[--o]),0==(r-=a)&&(r=t4(i,Math.max(--q,0),this._cols))}for(let b=0;b<i.length;b++)k[b]<a&&i[b].setCell(k[b],d);let s=l-m;for(;s-- >0;)0===this.ybase?this.y<b-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+f)-b&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+l,this.ybase+b-1)}if(e.length>0){let a=[],b=[];for(let a=0;a<this.lines.length;a++)b.push(this.lines.get(a));let c=this.lines.length,d=c-1,g=0,h=e[0];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+f);let i=0;for(let j=Math.min(this.lines.maxLength-1,c+f-1);j>=0;j--)if(h&&h.start>d+i){for(let a=h.newLines.length-1;a>=0;a--)this.lines.set(j--,h.newLines[a]);j++,a.push({index:d+1,amount:h.newLines.length}),i+=h.newLines.length,h=e[++g]}else this.lines.set(j,b[d--]);let j=0;for(let b=a.length-1;b>=0;b--)a[b].index+=j,this.lines.onInsertEmitter.fire(a[b]),j+=a[b].amount;let k=Math.max(0,c+f-this.lines.maxLength);k>0&&this.lines.onTrimEmitter.fire(k)}}translateBufferLineToString(a,b,c=0,d){let e=this.lines.get(a);return e?e.translateToString(b,c,d):""}getWrappedRangeForLine(a){let b=a,c=a;for(;b>0&&this.lines.get(b).isWrapped;)b--;for(;c+1<this.lines.length&&this.lines.get(c+1).isWrapped;)c++;return{first:b,last:c}}setupTabStops(a){for(null!=a?this.tabs[a]||(a=this.prevStop(a)):(this.tabs={},a=0);a<this._cols;a+=this._optionsService.rawOptions.tabStopWidth)this.tabs[a]=!0}prevStop(a){for(null==a&&(a=this.x);!this.tabs[--a]&&a>0;);return a>=this._cols?this._cols-1:a<0?0:a}nextStop(a){for(null==a&&(a=this.x);!this.tabs[++a]&&a<this._cols;);return a>=this._cols?this._cols-1:a<0?0:a}clearMarkers(a){this._isClearing=!0;for(let b=0;b<this.markers.length;b++)this.markers[b].line===a&&(this.markers[b].dispose(),this.markers.splice(b--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let a=0;a<this.markers.length;a++)this.markers[a].dispose();this.markers.length=0,this._isClearing=!1}addMarker(a){let b=new t5(a);return this.markers.push(b),b.register(this.lines.onTrim(a=>{b.line-=a,b.line<0&&b.dispose()})),b.register(this.lines.onInsert(a=>{b.line>=a.index&&(b.line+=a.amount)})),b.register(this.lines.onDelete(a=>{b.line>=a.index&&b.line<a.index+a.amount&&b.dispose(),b.line>a.index&&(b.line-=a.amount)})),b.register(b.onDispose(()=>this._removeMarker(b))),b}_removeMarker(a){this._isClearing||this.markers.splice(this.markers.indexOf(a),1)}},t9=class extends qF{constructor(a,b){super(),this._optionsService=a,this._bufferService=b,this._onBufferActivate=this._register(new q1),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this._register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange("tabStopWidth",()=>this.setupTabStops()))}reset(){this._normal=new t8(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new t8(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(a){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(a),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(a,b){this._normal.resize(a,b),this._alt.resize(a,b),this.setupTabStops(a)}setupTabStops(a){this._normal.setupTabStops(a),this._alt.setupTabStops(a)}},ua=class extends qF{constructor(a){super(),this.isUserScrolling=!1,this._onResize=this._register(new q1),this.onResize=this._onResize.event,this._onScroll=this._register(new q1),this.onScroll=this._onScroll.event,this.cols=Math.max(a.rawOptions.cols||0,2),this.rows=Math.max(a.rawOptions.rows||0,1),this.buffers=this._register(new t9(a,this)),this._register(this.buffers.onBufferActivate(a=>{this._onScroll.fire(a.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(a,b){let c=this.cols!==a,d=this.rows!==b;this.cols=a,this.rows=b,this.buffers.resize(a,b),this._onResize.fire({cols:a,rows:b,colsChanged:c,rowsChanged:d})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(a,b=!1){let c=this.buffer,d;(d=this._cachedBlankLine)&&d.length===this.cols&&d.getFg(0)===a.fg&&d.getBg(0)===a.bg||(d=c.getBlankLine(a,b),this._cachedBlankLine=d),d.isWrapped=b;let e=c.ybase+c.scrollTop,f=c.ybase+c.scrollBottom;if(0===c.scrollTop){let a=c.lines.isFull;f===c.lines.length-1?a?c.lines.recycle().copyFrom(d):c.lines.push(d.clone()):c.lines.splice(f+1,0,d.clone()),a?this.isUserScrolling&&(c.ydisp=Math.max(c.ydisp-1,0)):(c.ybase++,this.isUserScrolling||c.ydisp++)}else{let a=f-e+1;c.lines.shiftElements(e+1,a-1,-1),c.lines.set(f,d.clone())}this.isUserScrolling||(c.ydisp=c.ybase),this._onScroll.fire(c.ydisp)}scrollLines(a,b){let c=this.buffer;if(a<0){if(0===c.ydisp)return;this.isUserScrolling=!0}else a+c.ydisp>=c.ybase&&(this.isUserScrolling=!1);let d=c.ydisp;c.ydisp=Math.max(Math.min(c.ydisp+a,c.ybase),0),d!==c.ydisp&&(b||this._onScroll.fire(c.ydisp))}};function ub(a,b=5){if("object"!=typeof a)return a;let c=Array.isArray(a)?[]:{};for(let d in a)c[d]=b<=1?a[d]:a[d]&&ub(a[d],b-1);return c}ua=p0([p1(0,qf)],ua);var uc=Object.freeze({insertMode:!1}),ud=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),ue=class extends qF{constructor(a,b,c){super(),this._bufferService=a,this._logService=b,this._optionsService=c,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new q1),this.onData=this._onData.event,this._onUserInput=this._register(new q1),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new q1),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new q1),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=ub(uc),this.decPrivateModes=ub(ud)}reset(){this.modes=ub(uc),this.decPrivateModes=ub(ud)}triggerDataEvent(a,b=!1){if(this._optionsService.rawOptions.disableStdin)return;let c=this._bufferService.buffer;b&&this._optionsService.rawOptions.scrollOnUserInput&&c.ybase!==c.ydisp&&this._onRequestScrollToBottom.fire(),b&&this._onUserInput.fire(),this._logService.debug(`sending data "${a}"`),this._logService.trace("sending data (codes)",()=>a.split("").map(a=>a.charCodeAt(0))),this._onData.fire(a)}triggerBinaryEvent(a){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${a}"`),this._logService.trace("sending binary (codes)",()=>a.split("").map(a=>a.charCodeAt(0))),this._onBinary.fire(a))}};ue=p0([p1(0,qa),p1(1,qe),p1(2,qf)],ue);var uf={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:a=>4!==a.button&&1===a.action&&(a.ctrl=!1,a.alt=!1,a.shift=!1,!0)},VT200:{events:19,restrict:a=>32!==a.action},DRAG:{events:23,restrict:a=>32!==a.action||3!==a.button},ANY:{events:31,restrict:a=>!0}};function ug(a,b){let c=16*!!a.ctrl|4*!!a.shift|8*!!a.alt;return 4===a.button?(c|=64,c|=a.action):(c|=3&a.button,4&a.button&&(c|=64),8&a.button&&(c|=128),32===a.action?c|=32:0!==a.action||b||(c|=3)),c}var uh=String.fromCharCode,ui={DEFAULT:a=>{let b=[ug(a,!1)+32,a.col+32,a.row+32];return b[0]>255||b[1]>255||b[2]>255?"":`\x1b[M${uh(b[0])}${uh(b[1])}${uh(b[2])}`},SGR:a=>{let b=0===a.action&&4!==a.button?"m":"M";return`\x1b[<${ug(a,!0)};${a.col};${a.row}${b}`},SGR_PIXELS:a=>{let b=0===a.action&&4!==a.button?"m":"M";return`\x1b[<${ug(a,!0)};${a.x};${a.y}${b}`}},uj=class extends qF{constructor(a,b,c){for(let d of(super(),this._bufferService=a,this._coreService=b,this._optionsService=c,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new q1),this.onProtocolChange=this._onProtocolChange.event,Object.keys(uf)))this.addProtocol(d,uf[d]);for(let a of Object.keys(ui))this.addEncoding(a,ui[a]);this.reset()}addProtocol(a,b){this._protocols[a]=b}addEncoding(a,b){this._encodings[a]=b}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(a){if(!this._protocols[a])throw Error(`unknown protocol "${a}"`);this._activeProtocol=a,this._onProtocolChange.fire(this._protocols[a].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(a){if(!this._encodings[a])throw Error(`unknown encoding "${a}"`);this._activeEncoding=a}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(a,b,c){if(0===a.deltaY||a.shiftKey||void 0===b||void 0===c)return 0;let d=this._applyScrollModifier(a.deltaY,a);return a.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(d/=b/c+0,50>Math.abs(a.deltaY)&&(d*=.3),this._wheelPartialScroll+=d,d=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):a.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(d*=this._bufferService.rows),d}_applyScrollModifier(a,b){return b.altKey||b.ctrlKey||b.shiftKey?a*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:a*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(a){if(a.col<0||a.col>=this._bufferService.cols||a.row<0||a.row>=this._bufferService.rows||4===a.button&&32===a.action||3===a.button&&32!==a.action||4!==a.button&&(2===a.action||3===a.action)||(a.col++,a.row++,32===a.action&&this._lastEvent&&this._equalEvents(this._lastEvent,a,"SGR_PIXELS"===this._activeEncoding))||!this._protocols[this._activeProtocol].restrict(a))return!1;let b=this._encodings[this._activeEncoding](a);return b&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(b):this._coreService.triggerDataEvent(b,!0)),this._lastEvent=a,!0}explainEvents(a){return{down:!!(1&a),up:!!(2&a),drag:!!(4&a),move:!!(8&a),wheel:!!(16&a)}}_equalEvents(a,b,c){if(c){if(a.x!==b.x||a.y!==b.y)return!1}else if(a.col!==b.col||a.row!==b.row)return!1;return a.button===b.button&&a.action===b.action&&a.ctrl===b.ctrl&&a.alt===b.alt&&a.shift===b.shift}};uj=p0([p1(0,qa),p1(1,qc),p1(2,qf)],uj);var uk,ul,um,un,uo,up,uq=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],ur=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],us=class{constructor(){if(this.version="6",!up){(up=new Uint8Array(65536)).fill(1),up[0]=0,up.fill(0,1,32),up.fill(0,127,160),up.fill(2,4352,4448),up[9001]=2,up[9002]=2,up.fill(2,11904,42192),up[12351]=1,up.fill(2,44032,55204),up.fill(2,63744,64256),up.fill(2,65040,65050),up.fill(2,65072,65136),up.fill(2,65280,65377),up.fill(2,65504,65511);for(let a=0;a<uq.length;++a)up.fill(0,uq[a][0],uq[a][1]+1)}}wcwidth(a){return a<32?0:a<127?1:a<65536?up[a]:!function(a,b){let c=0,d=b.length-1,e;if(a<b[0][0]||a>b[d][1])return!1;for(;d>=c;)if(a>b[e=c+d>>1][1])c=e+1;else{if(!(a<b[e][0]))return!0;d=e-1}return!1}(a,ur)?a>=131072&&a<=196605||a>=196608&&a<=262141?2:1:0}charProperties(a,b){let c=this.wcwidth(a),d=0===c&&0!==b;if(d){let a=ut.extractWidth(b);0===a?d=!1:a>c&&(c=a)}return ut.createPropertyValue(0,c,d)}},ut=class a{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new q1,this.onChange=this._onChange.event;let a=new us;this.register(a),this._active=a.version,this._activeProvider=a}static extractShouldJoin(a){return(1&a)!=0}static extractWidth(a){return a>>1&3}static extractCharKind(a){return a>>3}static createPropertyValue(a,b,c=!1){return(0xffffff&a)<<3|(3&b)<<1|!!c}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(a){if(!this._providers[a])throw Error(`unknown Unicode version "${a}"`);this._active=a,this._activeProvider=this._providers[a],this._onChange.fire(a)}register(a){this._providers[a.version]=a}wcwidth(a){return this._activeProvider.wcwidth(a)}getStringCellWidth(b){let c=0,d=0,e=b.length;for(let f=0;f<e;++f){let g=b.charCodeAt(f);if(55296<=g&&g<=56319){if(++f>=e)return c+this.wcwidth(g);let a=b.charCodeAt(f);56320<=a&&a<=57343?g=(g-55296)*1024+a-56320+65536:c+=this.wcwidth(a)}let h=this.charProperties(g,d),i=a.extractWidth(h);a.extractShouldJoin(h)&&(i-=a.extractWidth(d)),c+=i,d=h}return c}charProperties(a,b){return this._activeProvider.charProperties(a,b)}};(new class a{constructor(a=32,b=32){if(this.maxLength=a,this.maxSubParamsLength=b,b>256)throw Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(a),this.length=0,this._subParams=new Int32Array(b),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(a),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(b){let c=new a;if(!b.length)return c;for(let a=+!!Array.isArray(b[0]);a<b.length;++a){let d=b[a];if(Array.isArray(d))for(let a=0;a<d.length;++a)c.addSubParam(d[a]);else c.addParam(d)}return c}clone(){let b=new a(this.maxLength,this.maxSubParamsLength);return b.params.set(this.params),b.length=this.length,b._subParams.set(this._subParams),b._subParamsLength=this._subParamsLength,b._subParamsIdx.set(this._subParamsIdx),b._rejectDigits=this._rejectDigits,b._rejectSubDigits=this._rejectSubDigits,b._digitIsSub=this._digitIsSub,b}toArray(){let a=[];for(let b=0;b<this.length;++b){a.push(this.params[b]);let c=this._subParamsIdx[b]>>8,d=255&this._subParamsIdx[b];d-c>0&&a.push(Array.prototype.slice.call(this._subParams,c,d))}return a}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(a){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(a<-1)throw Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=a>0x7fffffff?0x7fffffff:a}addSubParam(a){if(this._digitIsSub=!0,this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(a<-1)throw Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=a>0x7fffffff?0x7fffffff:a,this._subParamsIdx[this.length-1]++}}hasSubParams(a){return(255&this._subParamsIdx[a])-(this._subParamsIdx[a]>>8)>0}getSubParams(a){let b=this._subParamsIdx[a]>>8,c=255&this._subParamsIdx[a];return c-b>0?this._subParams.subarray(b,c):null}getSubParamsAll(){let a={};for(let b=0;b<this.length;++b){let c=this._subParamsIdx[b]>>8,d=255&this._subParamsIdx[b];d-c>0&&(a[b]=this._subParams.slice(c,d))}return a}addDigit(a){let b;if(this._rejectDigits||!(b=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let c=this._digitIsSub?this._subParams:this.params,d=c[b-1];c[b-1]=~d?Math.min(10*d+a,0x7fffffff):a}}).addParam(0);var uu=class{constructor(a){this.table=new Uint8Array(a)}setDefault(a,b){this.table.fill(a<<4|b)}add(a,b,c,d){this.table[b<<8|a]=c<<4|d}addMany(a,b,c,d){for(let e=0;e<a.length;e++)this.table[b<<8|a[e]]=c<<4|d}};!function(){let a=new uu(4095),b=Array.apply(null,Array(256)).map((a,b)=>b),c=(a,c)=>b.slice(a,c),d=c(32,127),e=c(0,24);e.push(25),e.push.apply(e,c(28,32));let f=c(0,14),g;for(g in a.setDefault(1,0),a.addMany(d,0,2,0),f)a.addMany([24,26,153,154],g,3,0),a.addMany(c(128,144),g,3,0),a.addMany(c(144,152),g,3,0),a.add(156,g,0,0),a.add(27,g,11,1),a.add(157,g,4,8),a.addMany([152,158,159],g,0,7),a.add(155,g,11,3),a.add(144,g,11,9);a.addMany(e,0,3,0),a.addMany(e,1,3,1),a.add(127,1,0,1),a.addMany(e,8,0,8),a.addMany(e,3,3,3),a.add(127,3,0,3),a.addMany(e,4,3,4),a.add(127,4,0,4),a.addMany(e,6,3,6),a.addMany(e,5,3,5),a.add(127,5,0,5),a.addMany(e,2,3,2),a.add(127,2,0,2),a.add(93,1,4,8),a.addMany(d,8,5,8),a.add(127,8,5,8),a.addMany([156,27,24,26,7],8,6,0),a.addMany(c(28,32),8,0,8),a.addMany([88,94,95],1,0,7),a.addMany(d,7,0,7),a.addMany(e,7,0,7),a.add(156,7,0,0),a.add(127,7,0,7),a.add(91,1,11,3),a.addMany(c(64,127),3,7,0),a.addMany(c(48,60),3,8,4),a.addMany([60,61,62,63],3,9,4),a.addMany(c(48,60),4,8,4),a.addMany(c(64,127),4,7,0),a.addMany([60,61,62,63],4,0,6),a.addMany(c(32,64),6,0,6),a.add(127,6,0,6),a.addMany(c(64,127),6,0,0),a.addMany(c(32,48),3,9,5),a.addMany(c(32,48),5,9,5),a.addMany(c(48,64),5,0,6),a.addMany(c(64,127),5,7,0),a.addMany(c(32,48),4,9,5),a.addMany(c(32,48),1,9,2),a.addMany(c(32,48),2,9,2),a.addMany(c(48,127),2,10,0),a.addMany(c(48,80),1,10,0),a.addMany(c(81,88),1,10,0),a.addMany([89,90,92],1,10,0),a.addMany(c(96,127),1,10,0),a.add(80,1,11,9),a.addMany(e,9,0,9),a.add(127,9,0,9),a.addMany(c(28,32),9,0,9),a.addMany(c(32,48),9,9,12),a.addMany(c(48,60),9,8,10),a.addMany([60,61,62,63],9,9,10),a.addMany(e,11,0,11),a.addMany(c(32,128),11,0,11),a.addMany(c(28,32),11,0,11),a.addMany(e,10,0,10),a.add(127,10,0,10),a.addMany(c(28,32),10,0,10),a.addMany(c(48,60),10,8,10),a.addMany([60,61,62,63],10,0,11),a.addMany(c(32,48),10,9,12),a.addMany(e,12,0,12),a.add(127,12,0,12),a.addMany(c(28,32),12,0,12),a.addMany(c(32,48),12,9,12),a.addMany(c(48,64),12,0,11),a.addMany(c(64,127),12,12,13),a.addMany(c(64,127),10,12,13),a.addMany(c(64,127),9,12,13),a.addMany(e,13,13,13),a.addMany(d,13,13,13),a.add(127,13,0,13),a.addMany([27,156,24,26],13,14,0),a.add(160,0,2,0),a.add(160,8,5,8),a.add(160,6,0,6),a.add(160,11,0,11),a.add(160,13,13,13)}();var uv=0,uw=class{constructor(a){this._bufferService=a,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(a){a<this.start?this.start=a:a>this.end&&(this.end=a)}markRangeDirty(a,b){a>b&&(uv=a,a=b,b=uv),a<this.start&&(this.start=a),b>this.end&&(this.end=b)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};uw=p0([p1(0,qa)],uw);var ux=class{constructor(a){this._bufferService=a,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(a){let b=this._bufferService.buffer;if(void 0===a.id){let c=b.addMarker(b.ybase+b.y),d={data:a,id:this._nextId++,lines:[c]};return c.onDispose(()=>this._removeMarkerFromLink(d,c)),this._dataByLinkId.set(d.id,d),d.id}let c=this._getEntryIdKey(a),d=this._entriesWithId.get(c);if(d)return this.addLineToLink(d.id,b.ybase+b.y),d.id;let e=b.addMarker(b.ybase+b.y),f={id:this._nextId++,key:this._getEntryIdKey(a),data:a,lines:[e]};return e.onDispose(()=>this._removeMarkerFromLink(f,e)),this._entriesWithId.set(f.key,f),this._dataByLinkId.set(f.id,f),f.id}addLineToLink(a,b){let c=this._dataByLinkId.get(a);if(c&&c.lines.every(a=>a.line!==b)){let a=this._bufferService.buffer.addMarker(b);c.lines.push(a),a.onDispose(()=>this._removeMarkerFromLink(c,a))}}getLinkData(a){return this._dataByLinkId.get(a)?.data}_getEntryIdKey(a){return`${a.id};;${a.uri}`}_removeMarkerFromLink(a,b){let c=a.lines.indexOf(b);-1!==c&&(a.lines.splice(c,1),0===a.lines.length&&(void 0!==a.data.id&&this._entriesWithId.delete(a.key),this._dataByLinkId.delete(a.id)))}};ux=p0([p1(0,qa)],ux);var uy=class{constructor(a,b=1e3){this._renderCallback=a,this._debounceThresholdMS=b,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(a,b,c){this._rowCount=c,a=void 0!==a?a:0,b=void 0!==b?b:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,a):a,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,b):b;let d=performance.now();if(d-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=d,this._innerRefresh();else if(!this._additionalRefreshRequested){let a=d-this._lastRefreshMs,b=this._debounceThresholdMS-a;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},b)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;let a=Math.max(this._rowStart,0),b=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(a,b)}},uz=class extends qF{constructor(a,b,c,d){super(),this._terminal=a,this._coreBrowserService=c,this._renderService=d,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";let e=this._coreBrowserService.mainDocument;this._accessibilityContainer=e.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=e.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let a=0;a<this._terminal.rows;a++)this._rowElements[a]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[a]);if(this._topBoundaryFocusListener=a=>this._handleBoundaryFocus(a,0),this._bottomBoundaryFocusListener=a=>this._handleBoundaryFocus(a,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=e.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new uy(this._renderRows.bind(this))),!this._terminal.element)throw Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this._register(this._terminal.onResize(a=>this._handleResize(a.rows))),this._register(this._terminal.onRender(a=>this._refreshRows(a.start,a.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(a=>this._handleChar(a))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
|
|
223
|
+
`))),this._register(this._terminal.onA11yTab(a=>this._handleTab(a))),this._register(this._terminal.onKey(a=>this._handleKey(a.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(r5(e,"selectionchange",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(qD(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(a){for(let b=0;b<a;b++)this._handleChar(" ")}_handleChar(a){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==a&&(this._charsToAnnounce+=a):this._charsToAnnounce+=a,a===`
|
|
224
|
+
`&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+="Too much output to announce, navigate to rows manually to read")))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(a){this._clearLiveRegion(),/\p{Control}/u.test(a)||this._charsToConsume.push(a)}_refreshRows(a,b){this._liveRegionDebouncer.refresh(a,b,this._terminal.rows)}_renderRows(a,b){let c=this._terminal.buffer,d=c.lines.length.toString();for(let e=a;e<=b;e++){let a=c.lines.get(c.ydisp+e),b=[],f=a?.translateToString(!0,void 0,void 0,b)||"",g=(c.ydisp+e+1).toString(),h=this._rowElements[e];h&&(0===f.length?(h.textContent="\xa0",this._rowColumns.set(h,[0,1])):(h.textContent=f,this._rowColumns.set(h,b)),h.setAttribute("aria-posinset",g),h.setAttribute("aria-setsize",d),this._alignRowWidth(h))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(a,b){let c,d,e=a.target,f=this._rowElements[0===b?1:this._rowElements.length-2];if(e.getAttribute("aria-posinset")!==(0===b?"1":`${this._terminal.buffer.lines.length}`)&&a.relatedTarget===f){if(0===b?(c=e,d=this._rowElements.pop(),this._rowContainer.removeChild(d)):(c=this._rowElements.shift(),d=e,this._rowContainer.removeChild(c)),c.removeEventListener("focus",this._topBoundaryFocusListener),d.removeEventListener("focus",this._bottomBoundaryFocusListener),0===b){let a=this._createAccessibilityTreeNode();this._rowElements.unshift(a),this._rowContainer.insertAdjacentElement("afterbegin",a)}else{let a=this._createAccessibilityTreeNode();this._rowElements.push(a),this._rowContainer.appendChild(a)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===b?-1:1),this._rowElements[0===b?1:this._rowElements.length-2].focus(),a.preventDefault(),a.stopImmediatePropagation()}}_handleSelectionChange(){if(0===this._rowElements.length)return;let a=this._coreBrowserService.mainDocument.getSelection();if(!a)return;if(a.isCollapsed){this._rowContainer.contains(a.anchorNode)&&this._terminal.clearSelection();return}if(!a.anchorNode||!a.focusNode)return void console.error("anchorNode and/or focusNode are null");let b={node:a.anchorNode,offset:a.anchorOffset},c={node:a.focusNode,offset:a.focusOffset};if((b.node.compareDocumentPosition(c.node)&Node.DOCUMENT_POSITION_PRECEDING||b.node===c.node&&b.offset>c.offset)&&([b,c]=[c,b]),b.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(b={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(b.node))return;let d=this._rowElements.slice(-1)[0];if(c.node.compareDocumentPosition(d)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(c={node:d,offset:d.textContent?.length??0}),!this._rowContainer.contains(c.node))return;let e=({node:a,offset:b})=>{let c=a instanceof Text?a.parentNode:a,d=parseInt(c?.getAttribute("aria-posinset"),10)-1;if(isNaN(d))return console.warn("row is invalid. Race condition?"),null;let e=this._rowColumns.get(c);if(!e)return console.warn("columns is null. Race condition?"),null;let f=b<e.length?e[b]:e.slice(-1)[0]+1;return f>=this._terminal.cols&&(++d,f=0),{row:d,column:f}},f=e(b),g=e(c);if(!(!f||!g)){if(f.row>g.row||f.row===g.row&&f.column>=g.column)throw Error("invalid range");this._terminal.select(f.column,f.row,(g.row-f.row)*this._terminal.cols-f.column+g.column)}}_handleResize(a){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let a=this._rowContainer.children.length;a<this._terminal.rows;a++)this._rowElements[a]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[a]);for(;this._rowElements.length>a;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let a=this._coreBrowserService.mainDocument.createElement("div");return a.setAttribute("role","listitem"),a.tabIndex=-1,this._refreshRowDimensions(a),a}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let a=0;a<this._terminal.rows;a++)this._refreshRowDimensions(this._rowElements[a]),this._alignRowWidth(this._rowElements[a])}}_refreshRowDimensions(a){a.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(a){a.style.transform="";let b=a.getBoundingClientRect().width,c=this._rowColumns.get(a)?.slice(-1)?.[0];if(!c)return;let d=c*this._renderService.dimensions.css.cell.width;a.style.transform=`scaleX(${d/b})`}};uz=p0([p1(1,qd),p1(2,qk),p1(3,qm)],uz);var uA=class extends qF{constructor(a,b,c,d,e){super(),this._element=a,this._mouseService=b,this._renderService=c,this._bufferService=d,this._linkProviderService=e,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new q1),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new q1),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(qD(()=>{qC(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(r5(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(r5(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register(r5(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register(r5(this._element,"mouseup",this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(a){this._lastMouseEvent=a;let b=this._positionFromMouseEvent(a,this._element,this._mouseService);if(!b)return;this._isMouseOut=!1;let c=a.composedPath();for(let a=0;a<c.length;a++){let b=c[a];if(b.classList.contains("xterm"))break;if(b.classList.contains("xterm-hover"))return}this._lastBufferCell&&b.x===this._lastBufferCell.x&&b.y===this._lastBufferCell.y||(this._handleHover(b),this._lastBufferCell=b)}_handleHover(a){if(this._activeLine!==a.y||this._wasResized){this._clearCurrentLink(),this._askForLink(a,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,a)||(this._clearCurrentLink(),this._askForLink(a,!0))}_askForLink(a,b){this._activeProviderReplies&&b||(this._activeProviderReplies?.forEach(a=>{a?.forEach(a=>{a.link.dispose&&a.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=a.y);let c=!1;for(let[d,e]of this._linkProviderService.linkProviders.entries())b?this._activeProviderReplies?.get(d)&&(c=this._checkLinkProviderResult(d,a,c)):e.provideLinks(a.y,b=>{if(this._isMouseOut)return;let e=b?.map(a=>({link:a}));this._activeProviderReplies?.set(d,e),c=this._checkLinkProviderResult(d,a,c),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(a.y,this._activeProviderReplies)})}_removeIntersectingLinks(a,b){let c=new Set;for(let d=0;d<b.size;d++){let e=b.get(d);if(e)for(let b=0;b<e.length;b++){let d=e[b],f=d.link.range.start.y<a?0:d.link.range.start.x,g=d.link.range.end.y>a?this._bufferService.cols:d.link.range.end.x;for(let a=f;a<=g;a++){if(c.has(a)){e.splice(b--,1);break}c.add(a)}}}}_checkLinkProviderResult(a,b,c){if(!this._activeProviderReplies)return c;let d=this._activeProviderReplies.get(a),e=!1;for(let b=0;b<a;b++)(!this._activeProviderReplies.has(b)||this._activeProviderReplies.get(b))&&(e=!0);if(!e&&d){let a=d.find(a=>this._linkAtPosition(a.link,b));a&&(c=!0,this._handleNewLink(a))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!c)for(let a=0;a<this._activeProviderReplies.size;a++){let d=this._activeProviderReplies.get(a)?.find(a=>this._linkAtPosition(a.link,b));if(d){c=!0,this._handleNewLink(d);break}}return c}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(a){var b,c;if(!this._currentLink)return;let d=this._positionFromMouseEvent(a,this._element,this._mouseService);d&&this._mouseDownLink&&(b=this._mouseDownLink.link,c=this._currentLink.link,b.text===c.text&&b.range.start.x===c.range.start.x&&b.range.start.y===c.range.start.y&&b.range.end.x===c.range.end.x&&b.range.end.y===c.range.end.y)&&this._linkAtPosition(this._currentLink.link,d)&&this._currentLink.link.activate(a,this._currentLink.link.text)}_clearCurrentLink(a,b){this._currentLink&&this._lastMouseEvent&&(!a||!b||this._currentLink.link.range.start.y>=a&&this._currentLink.link.range.end.y<=b)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,qC(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(a){if(!this._lastMouseEvent)return;let b=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);b&&this._linkAtPosition(a.link,b)&&(this._currentLink=a,this._currentLink.state={decorations:{underline:void 0===a.link.decorations||a.link.decorations.underline,pointerCursor:void 0===a.link.decorations||a.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,a.link,this._lastMouseEvent),a.link.decorations={},Object.defineProperties(a.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:a=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==a&&(this._currentLink.state.decorations.pointerCursor=a,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",a))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:b=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==b&&(this._currentLink.state.decorations.underline=b,this._currentLink.state.isHovered&&this._fireUnderlineEvent(a.link,b))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(a=>{if(!this._currentLink)return;let b=0===a.start?0:a.start+1+this._bufferService.buffer.ydisp,c=this._bufferService.buffer.ydisp+1+a.end;if(this._currentLink.link.range.start.y>=b&&this._currentLink.link.range.end.y<=c&&(this._clearCurrentLink(b,c),this._lastMouseEvent)){let a=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);a&&this._askForLink(a,!1)}})))}_linkHover(a,b,c){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(b,!0),this._currentLink.state.decorations.pointerCursor&&a.classList.add("xterm-cursor-pointer")),b.hover&&b.hover(c,b.text)}_fireUnderlineEvent(a,b){let c=a.range,d=this._bufferService.buffer.ydisp,e=this._createLinkUnderlineEvent(c.start.x-1,c.start.y-d-1,c.end.x,c.end.y-d-1,void 0);(b?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(e)}_linkLeave(a,b,c){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(b,!1),this._currentLink.state.decorations.pointerCursor&&a.classList.remove("xterm-cursor-pointer")),b.leave&&b.leave(c,b.text)}_linkAtPosition(a,b){let c=a.range.start.y*this._bufferService.cols+a.range.start.x,d=a.range.end.y*this._bufferService.cols+a.range.end.x,e=b.y*this._bufferService.cols+b.x;return c<=e&&e<=d}_positionFromMouseEvent(a,b,c){let d=c.getCoords(a,b,this._bufferService.cols,this._bufferService.rows);if(d)return{x:d[0],y:d[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(a,b,c,d,e){return{x1:a,y1:b,x2:c,y2:d,cols:this._bufferService.cols,fg:e}}};uA=p0([p1(1,ql),p1(2,qm),p1(3,qa),p1(4,qp)],uA);let uB="pi-web:terminal-theme",uC="dark";function uD(){try{var a;return a=window.localStorage.getItem(uB),"light"===a?"light":uC}catch{return uC}}let uE=null,uF=new Set;function uG(){return null===uE&&(uE=uD()),uE}function uH(){uF.forEach(a=>a())}function uI(a){if(null!==a.key&&a.key!==uB)return;let b=uD();b!==uE&&(uE=b,uH())}function uJ(a){return 0===uF.size&&(window.addEventListener("storage",uI),uE=uD()),uF.add(a),()=>{uF.delete(a),0===uF.size&&window.removeEventListener("storage",uI)}}let uK={ctrl:!1,alt:!1},uL=[["Escape","/","-","Home","ArrowUp","End","PageUp"],["Tab","ctrl","alt","ArrowLeft","ArrowDown","ArrowRight","PageDown"]],uM=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown"]),uN={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F"},uO={PageUp:5,PageDown:6};function uP({ctrl:a,alt:b}){return 1+2*!!b+4*!!a}let uQ={Escape:"ESC","/":"/","-":"-",Home:"HOME",ArrowUp:"↑",End:"END",PageUp:"PGUP",Tab:"TAB",ctrl:"CTRL",alt:"ALT",ArrowLeft:"↓",ArrowDown:"↓",ArrowRight:"↑",PageDown:"PGDN"},uR={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",PageUp:"Page Up",PageDown:"Page Down"};function uS(a){let b=window.matchMedia("(pointer: coarse)");return b.addEventListener("change",a),window.screen.orientation?.addEventListener("change",a),window.addEventListener("orientationchange",a),window.addEventListener("resize",a),()=>{b.removeEventListener("change",a),window.screen.orientation?.removeEventListener("change",a),window.removeEventListener("orientationchange",a),window.removeEventListener("resize",a)}}let uT=()=>window.matchMedia("(pointer: coarse)").matches&&function(){let a=window.screen.orientation?.type;if(a)return a.startsWith("portrait");let b=window.orientation;return"number"==typeof b?b%180==0:window.innerHeight>=window.innerWidth}();function uU({modifiers:a,onKey:b,onToggleModifier:c}){let{t:d}=(0,aG.s)(),e=(0,q.useRef)(null),f=()=>{null!==e.current&&window.clearTimeout(e.current),e.current=null};return(0,p.jsx)("div",{className:"terminal-extra-keys",role:"toolbar","aria-label":d("terminal.extraKeys"),children:uL.flat().map(d=>{let g="ctrl"===d||"alt"===d;return(0,p.jsx)("button",{type:"button",tabIndex:-1,className:g&&a[d]?"is-active":void 0,"aria-pressed":g?a[d]:void 0,"aria-label":g?void 0:uR[d],onPointerDown:a=>((a,d)=>{if(a.preventDefault(),0!==a.button)return;if(f(),"ctrl"===d||"alt"===d)return void c(d);if(b(d),!uM.has(d))return;let g=()=>{b(d),e.current=window.setTimeout(g,50)};e.current=window.setTimeout(g,400)})(a,d),onPointerUp:f,onPointerCancel:f,onPointerLeave:f,onMouseDown:a=>a.preventDefault(),onContextMenu:a=>a.preventDefault(),children:"ArrowLeft"===d||"ArrowRight"===d?(0,p.jsx)("span",{className:"is-rotated",children:uQ[d]}):uQ[d]},d)})})}function uV({tab:a,active:b,onRestart:c,onClosed:d,onCloseError:e}){let{t:f}=(0,aG.s)(),{id:g,cwd:h,restored:i}=a,j=(0,q.useRef)(null),k=(0,q.useRef)(null);(0,q.useRef)(Promise.resolve()),(0,q.useRef)(null),(0,q.useRef)({onClosed:d,onCloseError:e}).current={onClosed:d,onCloseError:e};let[l,m]=(0,q.useState)("connecting"),[n,o]=(0,q.useState)(null),[r,s]=(0,q.useState)(null),[t,u]=(0,q.useState)(0),[v,w]=(0,q.useState)(uK),x=(0,q.useRef)(v),y=(0,q.useSyncExternalStore)(uS,uT,()=>!1),z=(0,q.useSyncExternalStore)(uJ,uG,()=>uC);(0,q.useRef)(z).current=z;let A=dq(dw().fontSize)-14+13;(0,q.useRef)(A).current=A,(0,q.useRef)(()=>{});let B=(0,q.useCallback)(()=>{let a=x.current;return(a.ctrl||a.alt)&&(x.current=uK,w(uK)),a},[]),C="dark"===z?"light":"dark",D="light"===C?"terminal.lightTheme":"terminal.darkTheme";return(0,p.jsxs)("section",{className:"terminal-panel","data-terminal-theme":z,"aria-label":f("terminal.title"),children:[(0,p.jsxs)("header",{className:"terminal-panel-header",children:[(0,p.jsxs)("div",{className:"terminal-panel-path",children:[(0,p.jsx)("span",{className:`terminal-status-dot is-${l}`,title:f(`terminal.${l}`)}),(0,p.jsx)("span",{title:h,children:h})]}),(0,p.jsxs)("div",{className:"terminal-panel-actions",children:["error"===l&&(0,p.jsx)("button",{type:"button",onClick:()=>u(a=>a+1),disabled:!!a.closing,title:f("terminal.reconnect"),"aria-label":f("terminal.reconnect"),children:(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l2-2"})})}),(0,p.jsx)("button",{type:"button",onClick:()=>(function(a){if(a!==uG()){uE=a;try{window.localStorage.setItem(uB,a)}catch{}uH()}})(C),title:f(D),"aria-label":f(D),children:"light"===C?(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,p.jsx)("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"})]}):(0,p.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,p.jsx)("button",{type:"button",onClick:c,disabled:!!a.closing,title:f("terminal.restart"),"aria-label":f("terminal.restart"),children:(0,p.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M20 11a8 8 0 1 0-2.34 5.66"}),(0,p.jsx)("polyline",{points:"20 4 20 11 13 11"})]})})]})]}),(0,p.jsxs)("div",{children:[n&&(0,p.jsx)("div",{className:"terminal-panel-error",role:"alert",children:n}),"exited"===l&&(0,p.jsx)("div",{className:"terminal-panel-exit",role:"status",children:null===r?f("terminal.exited"):f("terminal.exitCode",{code:r})})]}),(0,p.jsx)("div",{className:"terminal-xterm",children:(0,p.jsx)("div",{ref:j,className:"terminal-xterm-host"})}),y&&(0,p.jsx)(uU,{modifiers:v,onKey:a=>{let b=k.current;if(!b)return;let c=function(a,b,c){let d=b.ctrl||b.alt,e=uN[a];if(e)return d?`\x1b[1;${uP(b)}${e}`:c?`\x1bO${e}`:`\x1b[${e}`;let f=uO[a];if(f)return d?`\x1b[${f};${uP(b)}~`:`\x1b[${f}~`;if("Escape"===a)return b.alt?"\x1b\x1b":"\x1b";if("Tab"===a)return b.alt?"\x1b ":" ";if(!b.ctrl&&!b.alt||1!=[...a].length)return a;let g=b.ctrl?function(a){if(/^[a-z]$/i.test(a))return String.fromCharCode(31&a.toUpperCase().charCodeAt(0));let b=a.charCodeAt(0);return b>=64&&b<=95?String.fromCharCode(31&b):" "===a?"\0":"/"===a||"-"===a?"\x1f":"?"===a?"":a}(a):a;return b.alt?`\x1b${g}`:g}(a,B(),b.modes.applicationCursorKeysMode);b.input(c,!0)},onToggleModifier:a=>{let b={...x.current,[a]:!x.current[a]};x.current=b,w(b)}})]})}class uW{constructor(a,b){this.parents=[],this.nextParentIndex=0,this.laneIndex=null,this.branch=null,this.nextLaneIndex=0,this.connections=[],this.rowIndex=a,this.hash=b}nextParent(){return this.nextParentIndex<this.parents.length?this.parents[this.nextParentIndex]:null}markParentProcessed(){this.nextParentIndex++}isMerge(){return this.parents.length>1}isOnBranch(){return null!==this.branch&&null!==this.laneIndex}getBranch(){return this.branch}joinBranch(a,b){null===this.branch&&(this.branch=a,this.laneIndex=b)}getLaneIndex(){return this.laneIndex??0}point(){return{laneIndex:this.getLaneIndex(),rowIndex:this.rowIndex}}nextPoint(){return{laneIndex:this.nextLaneIndex,rowIndex:this.rowIndex}}connectionTo(a,b){let c=this.connections.findIndex(c=>c?.target===a&&c.branch===b);return c>=0?{laneIndex:c,rowIndex:this.rowIndex}:null}reservePoint(a,b,c){a===this.nextLaneIndex&&(this.connections[a]={target:b,branch:c},this.nextLaneIndex=a+1)}widestLaneIndex(){return this.nextLaneIndex-1}}class uX{constructor(a){this.endRowIndex=0,this.lines=[],this.colorIndex=a}addLine(a,b,c,d,e){this.lines.push({from:a,to:b,sourceHash:c,targetHash:d,lockedFirst:e})}}let uY=new uW(-1,"__missing_parent__"),uZ=["#4f8cff","#f59e0b","#10b981","#ef4444","#a855f7","#d9a814"];function u$(a){return a.slice(0,7)}function u_({cwd:a,refreshKey:b=0}){let{t:c,locale:d}=(0,aG.s)(),[e,f]=(0,q.useState)({commits:[],hasMore:!1}),[g,h]=(0,q.useState)(!0),[i,j]=(0,q.useState)(!1),[k,l]=(0,q.useState)(!1),[m,n]=(0,q.useState)(null),[o,r]=(0,q.useState)(null),[s,t]=(0,q.useState)(null),u=(0,q.useRef)(!1),v=(0,q.useRef)(0),w=(0,q.useCallback)(async b=>{let c=new URLSearchParams({cwd:a,skip:String(b),maxCount:String(50)}),d=++v.current,e=await fetch(`/api/git/graph?${c.toString()}`);if(!e.ok){let a=await e.json().catch(()=>null);throw Error(a?.error??`HTTP ${e.status}`)}let f=await e.json();return d===v.current?f:null},[a]),x=(0,q.useCallback)(async()=>{l(!0),n(null);try{let a=await w(0);a&&(f(a),r(a.commits[0]?.hash??null))}catch(a){n(a instanceof Error?a.message:String(a))}finally{l(!1)}},[w]),y=(0,q.useCallback)(async()=>{if(!u.current&&e.hasMore){u.current=!0,j(!0),n(null);try{let a=await w(e.commits.length);a&&f(b=>({commits:[...b.commits,...a.commits],hasMore:a.hasMore}))}catch(a){n(a instanceof Error?a.message:String(a))}finally{u.current=!1,j(!1)}}},[w,e.commits.length,e.hasMore]),z=(0,q.useMemo)(()=>(function(a,b={}){let c=b.rowHeight??42,d=b.laneGap??18,e=b.lanePadding??16,f=b.topPadding??20,g=b.bottomPadding??18,h=function(a){let b=a.map((a,b)=>new uW(b,a.hash)),c=new Map(b.map(a=>[a.hash,a]));for(let d=0;d<a.length;d++)for(let e of a[d].parents)b[d].parents.push(c.get(e)??uY);return b}(a),i=[],j=[];for(let a=0;a<h.length;){let b=h[a],c=b.nextParent();if(null===c&&b.isOnBranch()){a++;continue}if(c===uY){b.markParentProcessed();continue}null!==c&&b.isMerge()&&b.isOnBranch()&&c.isOnBranch()?function(a,b,c){let d=b.getBranch();if(!d)return a.markParentProcessed();let e=a.point();for(let f=a.rowIndex+1;f<c.length;f++){let g=c[f],h=g.connectionTo(b,d),i=null!==h,j=h??g.nextPoint();if(d.addLine(e,j,a.hash,b.hash,i||e.laneIndex<j.laneIndex),g.reservePoint(j.laneIndex,b,d),e=j,i){a.markParentProcessed();break}}}(b,c,h):function(a,b,c,d){let e,f=b[a],g=f.nextParent(),h=f.isOnBranch()?f.point():f.nextPoint(),i=new uX((e=d.findIndex(b=>b<a))>=0?e:(d.push(0),d.length-1));f.joinBranch(i,h.laneIndex),f.reservePoint(h.laneIndex,f,i);let j=a+1;for(;j<b.length&&null!==g&&g!==uY;j++){let a=b[j],c=g===a&&a.isOnBranch()?a.point():a.nextPoint();if(i.addLine(h,c,f.hash,g.hash,h.laneIndex<c.laneIndex),a.reservePoint(c.laneIndex,g,i),h=c,g===a){f.markParentProcessed();let b=a.isOnBranch();if(a.joinBranch(i,c.laneIndex),(g=(f=a).nextParent())===uY){f.markParentProcessed();break}if(null===g||b)break}}i.endRowIndex=Math.min(j,b.length),c.push(i),d[i.colorIndex]=i.endRowIndex}(a,h,i,j)}let k=a=>e+a*d,l=a=>f+a*c,m=h.map((b,c)=>({commit:a[c],rowIndex:c,laneIndex:b.getLaneIndex(),x:k(b.getLaneIndex()),y:l(c)})),n=[],o=-1;for(let a of m)o=Math.max(o,a.laneIndex);for(let a of h)o=Math.max(o,a.widestLaneIndex());for(let a of i)for(let b of a.lines)o=Math.max(o,b.from.laneIndex,b.to.laneIndex),n.push({id:`${b.sourceHash}:${b.targetHash}:${b.from.rowIndex}:${b.to.rowIndex}:${n.length}`,d:function(a,b,c,d,e){if(a===c)return`M ${a} ${b} L ${c} ${d}`;let f=Math.max(14,.38*Math.abs(d-b));return e?`M ${a} ${b} C ${a} ${b+f}, ${c} ${b+f}, ${c} ${d}`:`M ${a} ${b} C ${a} ${d-f}, ${c} ${d-f}, ${c} ${d}`}(k(b.from.laneIndex),l(b.from.rowIndex),k(b.to.laneIndex),l(b.to.rowIndex),b.lockedFirst),colorIndex:a.colorIndex,relatedHashes:b.sourceHash===b.targetHash?[b.sourceHash]:[b.sourceHash,b.targetHash]});let p=Math.max(1,o+1);return{rows:m,paths:n,laneCount:p,width:2*e+(p-1)*d,height:f+Math.max(0,a.length-1)*c+g,rowHeight:c,laneGap:d,lanePadding:e}})(e.commits),[e.commits]),A=(0,q.useMemo)(()=>new Intl.DateTimeFormat(d,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),[d]),B=(0,q.useMemo)(()=>e.commits.find(a=>a.hash===o)??null,[e.commits,o]),C=Math.max(z.width+12,56),D=`${C}px minmax(160px, 1fr) 110px 100px 78px`,E=(0,q.useCallback)(a=>{let b=a.currentTarget;b.scrollHeight-b.scrollTop-b.clientHeight<=96&&y()},[y]);return g?(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:c("gitGraph.loading")}):(0,p.jsxs)("section",{style:{height:"100%",display:"flex",flexDirection:"column",background:"var(--bg)",minWidth:0},children:[(0,p.jsxs)("header",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,p.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("gitGraph.title")}),e.commits.length>0&&(0,p.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c(e.hasMore?"gitGraph.subtitlePartial":"gitGraph.subtitle",{count:e.commits.length,lanes:z.laneCount})}),(0,p.jsx)("span",{style:{flex:1}}),(0,p.jsx)("button",{type:"button",onClick:()=>{x()},disabled:k,title:c("gitGraph.refresh"),"aria-label":c("gitGraph.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},children:(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,p.jsx)("polyline",{points:"21 3 21 9 15 9"})]})})]}),m&&(0,p.jsx)("div",{role:"alert",style:{padding:"6px 10px",fontSize:11,color:"var(--text)",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:c("gitGraph.errorLoad",{error:m})}),0===e.commits.length?(0,p.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,color:"var(--text-dim)",padding:16},children:[(0,p.jsx)("span",{style:{fontSize:13},children:c("gitGraph.emptyTitle")}),(0,p.jsx)("span",{style:{fontSize:11},children:c("gitGraph.emptyDescription")})]}):(0,p.jsxs)("div",{className:"scrollbar-subtle",onScroll:E,style:{flex:1,minHeight:0,overflowY:"auto",position:"relative"},children:[(0,p.jsxs)("div",{style:{position:"sticky",top:0,zIndex:2,display:"grid",gridTemplateColumns:D,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",fontSize:10,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},"aria-hidden":"true",children:[(0,p.jsx)("span",{}),(0,p.jsx)("span",{style:{padding:"4px 8px",overflow:"hidden",textOverflow:"ellipsis"},children:c("gitGraph.columnDescription")}),(0,p.jsx)("span",{style:{padding:"4px 8px"},children:c("gitGraph.columnDate")}),(0,p.jsx)("span",{style:{padding:"4px 8px"},children:c("gitGraph.columnAuthor")}),(0,p.jsx)("span",{style:{padding:"4px 8px"},children:c("gitGraph.columnCommit")})]}),(0,p.jsxs)("div",{style:{position:"relative"},children:[(0,p.jsxs)("svg",{width:C,height:z.height+z.rowHeight,viewBox:`0 0 ${C} ${z.height+z.rowHeight}`,"aria-label":c("gitGraph.graphAriaLabel"),role:"img",style:{position:"absolute",left:0,top:0,overflow:"visible",pointerEvents:"none"},children:[z.paths.map(a=>{let b=null!==s&&a.relatedHashes.includes(s),c=null!==s&&!b;return(0,p.jsx)("path",{d:a.d,fill:"none",stroke:uZ[a.colorIndex%uZ.length],strokeWidth:2,opacity:c?.25:b?1:.6},a.id)}),z.rows.map(a=>{let b=a.commit.hash===o,c=uZ[a.laneIndex%uZ.length];return(0,p.jsxs)("g",{children:[(0,p.jsx)("circle",{cx:a.x,cy:a.y,r:b?5:4,fill:c,stroke:"var(--bg)",strokeWidth:2}),b&&(0,p.jsx)("circle",{cx:a.x,cy:a.y,r:7.5,fill:"none",stroke:c,strokeWidth:1,opacity:.85})]},a.commit.hash)})]}),z.rows.map(a=>{let b=a.commit,c=b.hash===o;return(0,p.jsxs)("button",{type:"button",onClick:()=>{r(a=>a===b.hash?null:b.hash)},onMouseEnter:()=>t(b.hash),onMouseLeave:()=>t(null),"aria-label":`${u$(b.hash)} ${b.subject}`,style:{display:"grid",gridTemplateColumns:D,alignItems:"center",width:"100%",height:z.rowHeight,textAlign:"left",fontSize:12,background:c?"var(--bg-selected)":"transparent",border:"none",borderTop:c?"1px solid var(--border)":"none",borderBottom:c?"1px solid var(--border)":"none",cursor:"pointer",padding:0,color:"var(--text)"},children:[(0,p.jsx)("span",{"aria-hidden":"true"}),(0,p.jsxs)("span",{style:{minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"0 8px"},children:[b.refs.length>0&&(0,p.jsx)("span",{style:{display:"inline-flex",gap:3,flexShrink:0,maxWidth:180,overflow:"hidden"},children:b.refs.slice(0,3).map(a=>(0,p.jsx)(u0,{gitRef:a},`${b.hash}:${a.kind}:${a.name}`))}),(0,p.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)"},children:b.subject||u$(b.hash)}),b.parents.length>1&&(0,p.jsx)(u1,{})]}),(0,p.jsx)("span",{style:{padding:"0 8px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11},children:b.authoredAtMs?A.format(new Date(b.authoredAtMs)):""}),(0,p.jsx)("span",{style:{padding:"0 8px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)"},children:b.authorName??""}),(0,p.jsx)("span",{style:{padding:"0 8px",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)"},children:u$(b.hash)})]},b.hash)})]}),e.hasMore&&(0,p.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:10},children:(0,p.jsx)("button",{type:"button",onClick:()=>{y()},disabled:i,style:{fontSize:12,padding:"5px 14px",borderRadius:6,cursor:"pointer",border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)"},children:c(i?"gitGraph.loadingMore":"gitGraph.loadMore")})})]}),B&&(0,p.jsxs)("footer",{style:{flexShrink:0,borderTop:"1px solid var(--border)",background:"var(--bg-panel)",padding:"8px 10px",display:"grid",gap:4,fontSize:11,color:"var(--text-muted)",gridTemplateColumns:"minmax(0, 1.4fr) minmax(0, 1fr)"},children:[(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{marginBottom:2,fontSize:10,textTransform:"uppercase",letterSpacing:.4,color:"var(--text-dim)"},children:c("gitGraph.detailSubject")}),(0,p.jsx)("div",{style:{color:"var(--text)",overflowWrap:"anywhere"},children:B.subject||u$(B.hash)}),B.refs.length>0&&(0,p.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:3,marginTop:4},children:B.refs.map(a=>(0,p.jsx)(u0,{gitRef:a},`${B.hash}:detail:${a.kind}:${a.name}`))})]}),(0,p.jsxs)("div",{style:{display:"grid",gap:2,minWidth:0},children:[(0,p.jsxs)("span",{children:[c("gitGraph.detailCommit"),": ",(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:u$(B.hash)})]}),(0,p.jsxs)("span",{children:[c("gitGraph.detailAuthor"),": ",(0,p.jsx)("span",{style:{color:"var(--text)"},children:B.authorName??"—"})]}),(0,p.jsxs)("span",{children:[c("gitGraph.detailDate"),":"," ",(0,p.jsx)("span",{style:{color:"var(--text)"},children:B.authoredAtMs?new Intl.DateTimeFormat(d,{dateStyle:"medium",timeStyle:"short"}).format(new Date(B.authoredAtMs)):"—"})]}),(0,p.jsxs)("span",{style:{overflowWrap:"anywhere"},children:[c("gitGraph.detailParents"),":"," ",(0,p.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:B.parents.length>0?B.parents.map(u$).join(", "):"—"})]})]})]})]})}function u0({gitRef:a}){let b="head"===a.kind,c="tag"===a.kind;return(0,p.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",height:16,padding:"0 5px",borderRadius:4,border:`1px solid ${b?"var(--accent)":"var(--border)"}`,background:b?"var(--bg-selected)":c?"var(--bg-hover)":"transparent",color:b?"var(--text)":"var(--text-muted)",fontSize:10,maxWidth:130,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:0},children:[b?"● ":"",a.name]})}function u1(){return(0,p.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"18",cy:"18",r:"3"}),(0,p.jsx)("circle",{cx:"6",cy:"6",r:"3"}),(0,p.jsx)("path",{d:"M6 9v2a4 4 0 0 0 4 4h5"})]})}function u2(a){return{id:Array.from(crypto.getRandomValues(new Uint8Array(16)),a=>a.toString(16).padStart(2,"0")).join(""),cwd:a}}function u3(a=document){return"visible"!==a.visibilityState||!a.hasFocus()}async function u4(a,b={createWindowNotification:(a,b)=>new Notification(a,b),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null}){let c={body:a.body,...a.tag?{tag:a.tag,renotify:!0}:{}};if(b.getServiceWorkerRegistration)try{let d=await b.getServiceWorkerRegistration();if(d)return await d.showNotification(a.title,{...c,data:{url:a.sessionUrl}}),"service-worker"}catch{}try{let d=b.createWindowNotification(a.title,c);return d.onclick=()=>{d.close(),a.onClick()},"window"}catch{return null}}let u5="pi-web:tab-open-session",u6=new Set(eS.kU);function u7(a){return`parked-new:${a}`}function u8(a){let b=a.at(-1);return b?`agent:${b.sessionId}`:null}function u9(){var a;let b,c,d,e,f,g,h,i,j,k,l,m,n,o=(0,s.useRouter)(),r=(0,s.useSearchParams)(),[v,w]=(0,q.useState)(()=>{let a;return{requestedCwd:a=r.get("cwd")?.trim()||null,sessionId:a?null:r.get("session")||null,sidebarCollapsed:"collapsed"===r.get("sidebar")}});(0,fz.D)(),dP();let{locale:A,t:B}=(0,aG.s)(),C=(0,aH.a)(),D=(0,aH.n)(),{soundEnabled:E,onSoundToggle:F,playDoneSound:G,unlockAudio:H,holdAudio:I,soundEnabledRef:J}=function(){let[a,b]=(0,q.useState)(()=>!0),c=(0,q.useRef)(a),d=(0,q.useRef)(null),e=(0,q.useCallback)(()=>{if(d.current&&"closed"!==d.current.state)return d.current;try{d.current=new AudioContext}catch{return null}return d.current},[]),f=(0,q.useRef)(0),g=(0,q.useRef)(0),h=(0,q.useRef)(void 0),i=(0,q.useCallback)(a=>{clearTimeout(h.current),h.current=setTimeout(()=>{0===f.current&&0===g.current&&a.suspend().catch(()=>{})},1e3)},[]),j=(0,q.useCallback)((a,b)=>{f.current++,a.resume().then(b).catch(()=>{}).then(()=>{f.current--,i(a)})},[i]),k=(0,q.useCallback)((a=!1)=>{if(!a&&!c.current)return;let b=e();b&&"running"!==b.state&&j(b,()=>{})},[e,j]),l=(0,q.useCallback)(()=>{let a=!c.current;a?k(!0):d.current?.suspend().catch(()=>{}),c.current=a;try{localStorage.setItem("pi-sound-enabled",String(a))}catch{}b(a)},[k]),m=(0,q.useCallback)(()=>{if(g.current++,clearTimeout(h.current),c.current){let a=e();a&&"running"!==a.state&&j(a,()=>{})}let a=!1;return()=>{!a&&(a=!0,g.current--,d.current&&i(d.current))}},[e,j,i]);return{soundEnabled:a,onSoundToggle:l,playDoneSound:(0,q.useCallback)(()=>{if(!c.current)return;let a=e();if(!a)return;let b=Date.now();j(a,()=>{if(c.current&&!(Date.now()-b>3e3))try{let b;b=a.currentTime,[523.25,659.25].forEach((c,d)=>{let e=a.createOscillator(),f=a.createGain();e.connect(f),f.connect(a.destination),e.type="sine",e.frequency.value=c;let g=b+.18*d;f.gain.setValueAtTime(0,g),f.gain.linearRampToValueAtTime(.18,g+.02),f.gain.exponentialRampToValueAtTime(.001,g+.45),e.start(g),e.stop(g+.45)})}catch{}})},[e,j]),unlockAudio:k,holdAudio:m,soundEnabledRef:c}}(),[K,L]=(0,q.useState)(!1),M=(0,q.useCallback)(a=>{L(a);try{localStorage.setItem("pi-quote-selection-enabled",String(a))}catch{}},[]),N=(0,q.useRef)(new Set),O=(0,q.useCallback)(()=>{J.current&&G()},[G,J]),[P,Q]=(0,q.useState)(null),R=(0,q.useRef)(P);R.current=P;let[S,T]=(0,q.useState)([]),U=(0,q.useCallback)(a=>{T(a),Q(b=>{if(!b)return b;let c=a.find(a=>a.id===b.id);return c?{...b,...c,detailsPending:c.detailsPending,relation:c.relation,branch:c.branch,isWorktree:c.isWorktree}:b})},[]),V=(0,q.useMemo)(()=>P?[...S.filter(a=>a.id!==P.id),P]:S,[P,S]),W=(0,q.useMemo)(()=>{var a;return(a=P?.id)?t(V).find(b=>b.root.id===a||b.subagents.some(b=>b.id===a))??null:null},[P?.id,V]),X=!!W?.subagents.length,[Y,Z]=(0,q.useState)(()=>new Set),$=(0,q.useCallback)(a=>{Z(b=>b.size===a.size&&[...a].every(a=>b.has(a))?b:a)},[]),_=W?(b=u(a=W.subagents,Y))>0?{count:b,running:!0}:{count:a.length,running:!1}:null,aa=_?.running?B("agentSwitcher.titleRunning",{count:_.count}):B("agentSwitcher.title"),[ab,ac]=(0,q.useState)(null),[ad,ae]=(0,q.useState)("initial"),af=(0,q.useRef)(null),ag=(0,q.useRef)(null),[ah,ai]=(0,q.useState)(null),aj=(0,q.useRef)(null),ak=(0,q.useCallback)(a=>{a&&a.cwd===aj.current?.cwd&&(aj.current=null),ai(a)},[]),al=(0,q.useRef)(null),am=(0,q.useRef)(null),[an,ao]=(0,q.useState)(null),ap=(0,q.useCallback)(a=>{am.current=a,ao(null)},[]),[aq,ar]=(0,q.useState)(()=>v.requestedCwd?"validating":"idle"),[as,at]=(0,q.useState)(null),[au,av]=(0,q.useState)(0),[aw,ax]=(0,q.useState)(0),ay=(0,q.useRef)(new Map),az=(0,q.useCallback)((a,b)=>{ay.current.set(a,b)},[]),[aA,aB]=(0,q.useState)(null),aC=(0,q.useCallback)(a=>{aB(b=>b===a?null:b)},[]),[aD,aE]=(0,q.useState)(0),[aF,aI]=(0,q.useState)(null),[aJ,aL]=(0,q.useState)(0),[aM,aN]=(0,q.useState)(null),[aO,aP]=(0,q.useState)(!1),[aQ,aR]=(0,q.useState)(!1),[aS,aT]=(0,q.useState)(null),[aU,aV]=(0,q.useState)(()=>!v.sidebarCollapsed),aW=(0,q.useRef)(!v.sidebarCollapsed),[aX,aY]=(0,q.useState)(!1),[aZ,a$]=(0,q.useState)(!1),a_=aX&&aZ&&!C,[a0,a2]=(0,q.useState)(!1),[a3,a4]=(0,q.useState)(!1),a6=(0,q.useRef)(260),a7=(0,q.useRef)(560),a8=(0,q.useCallback)(()=>560,[]),a9=(0,q.useCallback)(()=>480,[aX]),ba=(0,q.useCallback)(()=>1200,[aU]),bb=aK({ariaLabel:B("layout.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:a9,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:a6}),bc=aK({ariaLabel:B("layout.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:560,getDefaultWidth:a8,getMaxWidth:ba,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:a7});bb.reclampWidth,bc.reclampWidth;let bd=(0,q.useRef)(null),[be,bf]=(0,q.useState)(null),bg=(0,q.useRef)(null),bh=(0,q.useRef)(null),[bi,bj]=(0,q.useState)([]),[bk,bl]=(0,q.useState)(null),[bm,bo]=(0,q.useState)(!1),bp=(0,q.useRef)(null),bq=pH(bi),br=(0,q.useCallback)((a,b,c,d)=>{bj(a),bl(b),bo(d),bp.current=c},[]),bs=(0,q.useCallback)(a=>{bp.current?.(a)},[]),[bt,bu]=(0,q.useState)(null),[bv,bw]=(0,q.useState)(null),[bx,by]=(0,q.useState)(!1),bz=(0,q.useRef)(null),bA=(0,q.useRef)(0),bB=(0,q.useRef)(null),bC=(0,q.useCallback)(a=>{bu(a),by(!1)},[]),bD=(0,q.useCallback)(a=>{bw(a)},[]),bE=(0,q.useCallback)(a=>{bA.current+=1,bz.current=a,by(!1)},[]),[bF,bG]=(0,q.useState)(null),[bH,bI]=(0,q.useState)({kind:"idle"}),bJ=(0,q.useRef)(null),bK=(0,q.useRef)(P?.id??null);bK.current=P?.id??null;let bL=(0,q.useCallback)(a=>{bG(a)},[]),[bM,bN]=(0,q.useState)(null),bO=(0,q.useRef)(null),bP=(0,q.useCallback)((a,b)=>{(0,bn.D)(b).then(()=>{bO.current&&clearTimeout(bO.current),bN(a),bO.current=setTimeout(()=>bN(null),1400)})},[]),[bQ,bR]=(0,q.useState)(null),bS=(0,q.useCallback)(a=>{bR(a)},[]),[bT,bU]=(0,q.useState)(null),[bV,bW]=(0,q.useState)(null),bX=(0,q.useCallback)((a,b=!1)=>{C&&aV(!1),bU(b=>b===a?null:a),C&&D&&b&&a2(!0)},[C,D]),bY=(0,q.useCallback)((a,b=!1)=>{let c=bT!==a;if(bX(a,b),!c||bx)return;let d=bz.current;if(!d)return;let e=++bA.current;by(!0),d().catch(a=>{console.error("Failed to load system information:",a)}).finally(()=>{bA.current===e&&by(!1)})},[bT,bx,bX]),bZ=(0,q.useCallback)(()=>{C&&aV(!1),a2(!1),bU("session")},[C]),b$=(0,q.useCallback)(a=>{aI(a)},[]),b_=(0,q.useCallback)(()=>{C&&(bU(null),a2(!1)),aV(a=>{let b=!a;return C||(aW.current=b),b})},[C]),b0=(0,q.useCallback)(()=>{aV(!1),bU(null),a2(a=>!a)},[]),b1=(0,q.useCallback)(()=>{C&&(aV(!1),bU(null),a2(!1)),aY(a=>!a)},[C]),b2=(0,q.useCallback)(()=>{bU(null),a$(a=>!a)},[]),[b3,b4]=(0,q.useState)([]),[b5,b6]=(0,q.useState)(null),b7=(0,q.useRef)(new Map),[b8,b9]=(0,q.useState)(0),ca=(0,q.useRef)(0),[cb,cc]=(0,q.useState)([]),[cd,ce]=(0,q.useState)([]),[cf,cg]=(0,q.useState)(!1),[ch,ci]=(0,q.useState)([]),cj=[...b3,...cb.map(a=>({id:a.id,label:(0,a1.WP)(a.cwd)||a.cwd,filePath:a.cwd,kind:"terminal",closing:!!a.closing})),...cd.map(a=>({id:`git-graph:${a}`,label:(0,a1.WP)(a)||a,filePath:a,kind:"git-graph"})),...ch.map(a=>({id:`agent:${a.sessionId}`,label:a.label,filePath:a.label,kind:"agent"}))],ck=(0,q.useCallback)((a,b,c,d)=>{a!==ca.current?function(a,b,c,d,e){for(let[f,g]of a)if(g.generation===b)return void a.set(f,{...g,tabs:ie(g.tabs,c,d,e)})}(b7.current,a,b,c,d):b4(a=>ie(a,b,c,d))},[]),cl=(0,q.useCallback)((a,b)=>{if(a===b)return;let c=b5?.startsWith("file:")?b5:null,d=function(a,b,c,d,e){if(b===c)return d;b&&a.set(b,{...d,generation:e});let f=a.get(c);return f?(a.delete(c),{tabs:f.tabs,activeTabId:f.activeTabId,open:f.open}):{tabs:[],activeTabId:null,open:!1}}(b7.current,a,b,{tabs:b3,activeTabId:c,open:aX&&!!c},ca.current);ca.current+=1,b9(ca.current),b4(d.tabs),ci([]),ce([]),(!b5||c||b5.startsWith("agent:")||b5.startsWith("git-graph:"))&&(b6(d.activeTabId),aY(d.open))},[b5,b3,aX]),cm=(0,q.useCallback)((a,b)=>{bd.current?.insertText(a5(a,b)),C&&(aY(!1),aV(!1))},[C]),cn=(0,q.useCallback)(a=>{let b=a.map(a=>a5(a,!1)).join("");b&&bd.current?.insertText(b),C&&(aY(!1),aV(!1))},[C]),co=(0,q.useCallback)((a,b,c)=>{let d,e,f,g;bd.current?.insertText((d=Math.max(1,Math.min(b,c)),e=Math.max(1,Math.max(b,c)),f=a.includes(" ")?`@"${a}"`:`@${a}`,g=d===e?`:${d}`:`:${d}-${e}`,`${f}${g} `)),C&&(aY(!1),aV(!1))},[C]),cp=v.sessionId,cq=v.sessionFromTab?null:v.sessionId,[cr,cs]=(0,q.useState)(null),ct=(0,q.useRef)(null),[cu,cv]=(0,q.useState)(()=>!cp),cw=(0,q.useRef)(!1),cx=(0,q.useRef)(!1),cy=(0,q.useRef)(0),cA=(0,q.useCallback)(()=>{cy.current+=1},[]),cB=(0,q.useCallback)((a,b)=>{let c=++cy.current,d=function(a,b=null){if(!b)return null;try{let c=x(b)[a];return"string"==typeof c&&c.length>0?c:null}catch{return null}}(a);if(!d)return;let e=e=>{if(c!==cy.current)return;let f=e?.sessions.find(a=>a.id===d);if(!f){e&&y(a);return}if(z(f)!==a)return void y(a);let g=af.current;g&&c6(g,u7(b)),af.current=null,Q(f),ax(a=>a+1),new URLSearchParams(window.location.search).get("session")!==f.id&&o.replace(`?session=${encodeURIComponent(f.id)}`,{scroll:!1})};S.length>0?e({sessions:S}):fetch("/api/sessions").then(a=>a.ok?a.json():null).then(e).catch(()=>{})},[o,S]),cC=(0,q.useCallback)((a,b,c)=>{cA();let d=ab??cr;if(cs(a),!a)return;let e=cx.current;cx.current=!1;let f=c??b??a,g=ct.current??(P?z(P):null);if(ct.current=f,cw.current){cw.current=!1;return}if(d===a&&g!==f||g===f&&(null!==P||d===a))return;let h=af.current;h&&d&&c6(h,u7(d));let i="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,j=`new:${i}:${a}`;c6(u7(a),j),ae(i),af.current=j,Q(null),ac(b=>b&&b!==a?null:b),ax(a=>a+1),bj([]),bl(null),bo(!1),bu(null),bw(null),by(!1),bU(null),g!==f&&(cl(g,f),e||cB(f,a)),o.replace("/",{scroll:!1})},[cr,cl,cA,ab,o,P,cB]),cD=(0,q.useCallback)((a,b=!1,c,d,e)=>{aB(c?{sessionId:a.id,entryId:c,blockIndex:d}:null),cA();let f=af.current,g=ab??(null===P?cr:null);f&&g&&c6(f,u7(g)),af.current=null;let h=z(a);if(ct.current!==h&&(cl(ct.current,h),bU(null)),ct.current=h,!b&&P){let b=z(P)===z(a);if(P.id===a.id&&b){C&&aV(!1);return}}ac(null),Q(a),ax(a=>a+1),bj([]),bl(null),bo(!1),bp.current=null,bu(null),bw(null),by(!1),cv(!0),!C||b||e?.keepSidebarOpen||aV(!1),b&&(cw.current=!0),b&&new URLSearchParams(window.location.search).get("session")===a.id||o.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1})},[cr,cl,cA,o,C,ab,P]),cE=(0,q.useCallback)((a,b,c,d)=>{cA();let e=`new:${a}:${b}`,f=af.current,g=ab??(null===P?cr:null);if(d?.carryComposer&&null===P&&f){let a=bd.current;a?a.rekeyDraft(f,e):c6(f,e),ao(am.current)}else f&&g&&g!==b&&c6(f,u7(g));let h=c??(b===cr?ct.current:null)??b;ct.current!==h&&cl(ct.current,h),ct.current=h,c1(e)||c6(u7(b),e),af.current=e,ae(a),Q(null),ac(b),ax(a=>a+1),bj([]),bl(null),bo(!1),bu(null),bw(null),by(!1),bU(null),C&&aV(!1),o.replace(`?cwd=${encodeURIComponent(b)}`,{scroll:!1}),C||al.current||requestAnimationFrame(()=>{document.activeElement?.closest("[aria-modal='true']")||bd.current?.focus()})},[cr,cl,cA,C,ab,o,P]);!function(a){let{onNewSession:b,activeCwd:c}=a}({onNewSession:a=>cE(`kb-${Date.now()}`,a),activeCwd:cr});let cF=(0,q.useCallback)(a=>{fetch("/api/sessions",{cache:"no-store"}).then(a=>a.ok?a.json():null).then(b=>{let c=b?.sessions.find(b=>b.id===a);c&&Q(b=>b?.id===a?{...b,...c,transient:c.transient??!1}:b)}).catch(()=>{})},[]),cG=(0,q.useCallback)((a,b)=>{av(a=>a+1),af.current===b&&(cA(),af.current=null,ac(null),Q(a),cF(a.id),o.replace(`?session=${encodeURIComponent(a.id)}`,{scroll:!1}))},[cA,o,cF]),cH=(0,q.useCallback)(({targetSession:a,title:b,body:c,tag:d})=>{if(!("Notification"in window))return;let e=()=>{u4({title:b,body:c,sessionUrl:a?`/?session=${encodeURIComponent(a.id)}`:"/",tag:d,onClick:()=>{window.focus(),a&&cD(a)}})};"granted"===Notification.permission?(e(),jK(A)):"default"===Notification.permission&&Notification.requestPermission().then(a=>{"granted"===a&&(e(),jK(A))})},[cD,A]),cI=(0,q.useCallback)(a=>{av(a=>a+1),aE(a=>a+1),a.aborted||P?.relation?.kind==="subagent"||!u3()||cH({targetSession:P,title:P?.name??B("i18n.sessionComplete"),body:B("i18n.taskFinished"),tag:P?`pi-session-complete:${P.id}`:"pi-session-complete"})},[cH,P,B]),cJ=(0,q.useCallback)(a=>{var b;P?.relation?.kind!=="subagent"&&u3()&&(b=N.current,!(!eF(a)||b.has(a.id))&&(b.add(a.id),1)&&cH({targetSession:P,title:B("i18n.attentionNeeded"),body:"custom"===a.method?B("i18n.extensionInputNeeded"):a.title,tag:`pi-extension-ui:${a.id}`}))},[cH,P,B]),cK=(0,q.useCallback)(async()=>{let a=P?.id;if(a&&"naming"!==bH.kind){bJ.current&&clearTimeout(bJ.current),bU(null),bI({kind:"naming"});try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/auto-name`,{method:"POST"}),c=await b.json().catch(()=>({}));if(!b.ok||!c.title)throw Error(c.error||`HTTP ${b.status}`);let d=c.title.trim();if(av(a=>a+1),bK.current!==a)return;Q(b=>b?.id===a?{...b,name:d}:b),bG(b=>b?.sessionId===a?{...b,sessionName:d}:b),bI({kind:"success"}),bJ.current=setTimeout(()=>bI({kind:"idle"}),1800)}catch(b){if(bK.current!==a)return;bI({kind:"error",message:b instanceof Error?b.message:String(b)}),bJ.current=setTimeout(()=>bI({kind:"idle"}),5e3)}}},[bH.kind,P?.id]),cL=(0,q.useCallback)(()=>{aE(a=>a+1)},[]),cM=(0,q.useRef)(null),cN=(0,q.useCallback)(a=>{u6.has(a)||cM.current||(cM.current=setTimeout(()=>{cM.current=null,aE(a=>a+1)},1e3))},[]),cO=(0,q.useCallback)(a=>{cA(),af.current=null,av(a=>a+1),ax(a=>a+1),ac(null),Q(b=>({...b??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:a,transient:!1})),cF(a),o.replace(`?session=${encodeURIComponent(a)}`,{scroll:!1})},[cA,o,cF]),cP=(0,q.useCallback)(async(a,b,c)=>{let d=await eN(b,{type:"fork_branch",entryId:c});if(!d?.newSessionId)throw Error(B("chat.quoteForkFailed"));bf({sessionId:d.newSessionId,text:a}),cO(d.newSessionId)},[cO,B]),cQ=(0,q.useCallback)(()=>{cv(!0),cq&&(cx.current=!0)},[cq]),cR=(0,q.useCallback)(a=>{cA(),av(a=>a+1);let b=R.current;if(b?.id===a){!function(a,b=null){if(b&&a)try{let c=function(a){if("string"!=typeof a||0===a.length)return null;if(a.startsWith("{"))try{let b=JSON.parse(a);if(!b||"object"!=typeof b||Array.isArray(b))return null;if("session"===b.kind&&"string"==typeof b.sessionId&&b.sessionId)return{kind:"session",sessionId:b.sessionId};if("new"===b.kind&&"string"==typeof b.cwd&&b.cwd.trim())return{kind:"new",cwd:b.cwd};return null}catch{return null}return{kind:"session",sessionId:a}}(b.getItem(u5));if(c?.kind!=="session"||c.sessionId!==a)return;b.removeItem(u5)}catch{}}(a);let c=b.cwd,d="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;ae(d),af.current=c?`new:${d}:${c}`:null,Q(null),ac(c??null),ax(a=>a+1),bj([]),bl(null),bo(!1),bu(null),bw(null),by(!1),bU(null),o.replace(c?`?cwd=${encodeURIComponent(c)}`:"/",{scroll:!1})}},[cA,o]),cS=(0,q.useCallback)((a,b,c)=>{let d=c?.sourceSessionId,e=c?.modeHint,f=c?.page,g=`file:${a}`;b4(c=>(function(a,b){let c=a.find(a=>a.id===b.tabId);if(!c)return[...a,{id:b.tabId,label:b.fileName,filePath:b.filePath,sourceSessionId:b.sourceSessionId,initialDisplayMode:b.modeHint,page:b.page,viewerState:b.modeHint?{displayMode:b.modeHint,wrapLines:!1,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let d=!!(b.sourceSessionId&&c.sourceSessionId!==b.sourceSessionId),e=c.page!==b.page;return d||b.modeHint||e?a.map(a=>{if(a.id!==b.tabId)return a;let c={...a},f=!1;return d&&(c.sourceSessionId=b.sourceSessionId,f=!0),e&&(c.page=b.page,f=!0),b.modeHint&&(c.initialDisplayMode=b.modeHint,c.viewerState={displayMode:b.modeHint,wrapLines:a.viewerState?.wrapLines??!1,scrollTop:0,scrollLeft:0},f=!0),f&&(c.viewerRevision=(a.viewerRevision??0)+1),c}):a})(c,{fileName:b,filePath:a,modeHint:e,page:f,sourceSessionId:d,tabId:g})),b6(g),aY(!0),C&&aV(!1)},[C]),cT=(0,q.useCallback)((a,b)=>{cS(a,(0,a1.WP)(a),{sourceSessionId:P?.id??null,page:b})},[cS,P?.id]),cU=(0,q.useCallback)(a=>{let b=cb.find(b=>b.cwd===a),c=b??u2(a);b||cc(a=>[...a,c]),b6(c.id),aY(!0),C&&aV(!1)},[cb,C]),cV=(0,q.useCallback)(a=>{ce(b=>b.includes(a)?b:[...b,a]),b6(`git-graph:${a}`),aY(!0),C&&aV(!1)},[C]),cW=(0,q.useCallback)((a,b)=>{ci(c=>c.some(b=>b.sessionId===a)?c:[...c,{sessionId:a,label:b}]),b6(`agent:${a}`),aY(!0),C&&aV(!1)},[C]),cX=(0,q.useCallback)((a,b)=>{let c=W?W.subagents.find(b=>b.id===a)??(W.root.id===a?W.root:void 0):void 0;c?cD(c):(async()=>{try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error(`HTTP ${b.status}`);let c=await b.json();if(!c.info)throw Error(c.error??`HTTP ${b.status}`);cD(c.info)}catch{cW(a,b)}})()},[W,cD,cW]),cY=(0,q.useMemo)(()=>new Set(aX?ch.map(a=>a.sessionId):[]),[ch,aX]),cZ=(0,q.useCallback)(a=>{if(cb.some(b=>b.id===a))return void cc(b=>b.map(b=>b.id!==a||b.closing?b:{...b,closing:"close"}));if(a.startsWith("git-graph:")){let b=cd.filter(b=>`git-graph:${b}`!==a);ce(b),b6(c=>{if(c!==a)return c;let d=b.at(-1);return b3.at(-1)?.id??cb.at(-1)?.id??(void 0!==d?`git-graph:${d}`:null)??u8(ch)}),0===b3.length&&0===cb.length&&0===b.length&&0===ch.length&&aY(!1);return}if(a.startsWith("agent:")){let b=ch.filter(b=>`agent:${b.sessionId}`!==a);ci(b),b6(c=>{if(c!==a)return c;let d=cd.at(-1);return b3.at(-1)?.id??cb.at(-1)?.id??(void 0!==d?`git-graph:${d}`:null)??u8(b)}),0===b3.length&&0===cb.length&&0===cd.length&&0===b.length&&aY(!1);return}b4(b=>{let c=b.filter(b=>b.id!==a);return 0===c.length&&0===cb.length&&0===cd.length&&0===ch.length&&aY(!1),c}),b6(b=>{if(b!==a)return b;let c=b3.filter(b=>b.id!==a),d=cd.at(-1);return c.at(-1)?.id??cb.at(-1)?.id??(void 0!==d?`git-graph:${d}`:null)??u8(ch)})},[b3,cb,cd,ch]),c$=(0,q.useCallback)(()=>{P&&window.open(`/api/sessions/${encodeURIComponent(P.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[P]),c_=ab??(null===P&&cr?cr:null),c0=null===P&&c_?`new:${ad}:${c_}`:null,c2=(0,q.useCallback)((a,b)=>{null===P&&c_&&a.cwd!==c_&&(al.current=b,a.projectKey&&a.projectRoot&&aj.current?.cwd!==a.cwd&&(aj.current={cwd:a.cwd,project:{key:a.projectKey,root:a.projectRoot},branch:null}),ag.current?.startNewSessionIn({...a,carryComposer:!0}))},[c_,P]),c3=(0,q.useRef)(c2);c3.current=c2;let c4=(0,q.useCallback)(a=>{ag.current?.openFolderForNewSession(a=>c3.current(a,"project"),a)},[]),c5=(0,q.useCallback)(()=>{ag.current?.openDefaultDirectoryForNewSession(a=>c3.current(a,"project"))},[]),c7=(0,q.useCallback)(()=>{ag.current?.refreshWorktrees()},[]),c8=(0,q.useCallback)(async(a,b)=>{let c=ag.current;if(!c)throw Error("The session sidebar is not mounted");let d=await c.createWorktree(a,b);return"path"in d&&(aj.current={cwd:d.path,project:a,branch:b}),d},[]),c9=(0,q.useCallback)(()=>{al.current=null},[]),da=null===P&&c_?(0,p.jsx)(fv,{context:function(a,b,c=null){if(a?.cwd===b)return a;if(a?.worktrees?.some(a=>a.path===b))return{...a,cwd:b,currentWorktreePath:b};let d=c?.cwd===b?c:null;if(d&&a?.worktrees&&a.project.key===d.project.key)return{...a,cwd:b,worktrees:[...a.worktrees,{path:b,branch:d.branch,isMain:!1}],currentWorktreePath:b};let e=a?.projects??[],f=d?.project??e.find(a=>a.root===b)??{key:b,root:b},g=f.alias??e.find(a=>a.key===f.key)?.alias;return{cwd:b,project:void 0===g?f:{...f,alias:g},worktrees:null,currentWorktreePath:null,projects:e}}(ah,c_,aj.current),mobile:C,initialFocus:al.current,onInitialFocusDone:c9,onPick:c2,onUseDefaultDirectory:c5,onOpenFolder:c4,onRefreshWorktrees:c7,onCreateWorktree:c8}):null,db=null!==P||null!==c_,dc=P?.cwd??c_,dd=cu&&!db,de=(0,q.useCallback)(async()=>{if(dc&&!aQ){aR(!0),aT(null);try{let a=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:dc})}),b=await a.json();if(!a.ok||b.error)return void aT({error:b.error??`HTTP ${a.status}`,...b.reason?{reason:b.reason}:{}});aN(b),aP(!1),aL(a=>a+1),ax(a=>a+1)}catch(a){aT({error:a instanceof Error?a.message:String(a)})}finally{aR(!1)}}},[aQ,dc]),df=(0,q.useCallback)(()=>{aT(null),aP(!0)},[]),dg=(0,q.useCallback)((a,b)=>{a===dc&&aN(b)},[dc]),dh=b3.find(a=>a.id===b5)??null,di=ch.find(a=>`agent:${a.sessionId}`===b5)??null,dj=b5?.startsWith("git-graph:")?cd.find(a=>`git-graph:${a}`===b5)??null:null;cr&&(0,a1.WP)(cr);let dk=(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(cz,{selectedSessionId:P?.id??null,onSelectSession:cD,onNewSession:cE,controlRef:ag,onNewSessionContextChange:ak,initialSessionId:cp,initialSessionLinked:null!==cq,skipInitialProjectSelection:null!==v.requestedCwd,onInitialRestoreDone:cQ,refreshKey:au,onSessionDeleted:cR,selectedCwd:P?.cwd??ab??null,onCwdChange:cC,onOpenFile:cS,onOpenTerminal:cU,onOpenGitGraph:cV,explorerRefreshKey:aD,onExplorerRefresh:cL,onAtMention:cm,onAtMentions:cn,onBackgroundTaskDone:O,onRunningSessionIdsChange:$,onSessionsChange:U}),(0,p.jsxs)("div",{style:{padding:"8px",flexShrink:0,display:"flex",justifyContent:"space-between",gap:4},children:[[["models",B("common.models")],["skills",B("common.skills")],["automations",B("common.automations")]].map(([a,b])=>{let c=ik(a)&&!dc;return(0,p.jsxs)("button",{type:"button",onClick:()=>aI(a),disabled:c,title:c?B("settings.projectRequired"):b,"aria-label":b,style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",gap:6,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:c?"default":"pointer",fontSize:12,opacity:c?.35:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{c||(a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,p.jsx)(pt,{section:a,size:14,strokeWidth:2}),(0,p.jsx)("span",{children:b})]},a)}),(0,p.jsxs)("button",{type:"button",onClick:()=>aI(function(a,b=null){if(!b)return"general";try{let c=il(b).section;if(!("string"==typeof c&&ih.includes(c)))return"general";return ik(c)&&!a?"general":c}catch{return"general"}}(dc)),title:B("common.settings"),"aria-label":B("common.settings"),style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",gap:6,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="var(--bg-hover)",a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.background="none",a.currentTarget.style.color="var(--text-muted)"},children:[(0,p.jsx)(pt,{section:"general",size:14,strokeWidth:2}),(0,p.jsx)("span",{children:B("common.settings")})]})]})]}),dl=a=>db&&aM?.requiresTrust&&!aM.trusted?(0,p.jsxs)("button",{type:"button",onClick:df,title:B("trust.resourcesNotLoaded"),"aria-label":B("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:a?"flex-start":"center",gap:6,width:a?"100%":void 0,minHeight:a?32:void 0,height:a?void 0:"100%",padding:a?"6px 12px":"0 12px",background:a?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:a?"none":"1px solid var(--border)",borderBottom:a?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":a?"true":void 0,children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,p.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,p.jsx)("path",{d:"M12 8v4"}),(0,p.jsx)("path",{d:"M12 16h.01"})]}),(0,p.jsx)("span",{children:B("trust.resourcesNotLoaded")})]}):null,dm=a=>{let b,c,d,e,f,g;return a||db?(0,p.jsxs)("div",{style:{display:"flex",alignItems:"stretch",height:"100%"},children:[(0,p.jsxs)("button",{type:"button",onClick:()=>{c$(),a&&D&&a2(!0)},disabled:!P,title:P?B("history.full"):B("history.unsaved"),"aria-label":B("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?36:void 0,height:"100%",padding:a?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:P?"var(--text-muted)":"var(--text-dim)",cursor:P?"pointer":"not-allowed",opacity:P?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:a=>{P&&(a.currentTarget.style.color="var(--text)",a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{a.currentTarget.style.color=P?"var(--text-muted)":"var(--text-dim)",a.currentTarget.style.background="none"},"data-mobile-toolbar-action":a?"history":void 0,children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:P?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,p.jsx)("path",{d:"M3 3v5h5"}),(0,p.jsx)("path",{d:"M12 7v5l3 2"})]}),!a&&(0,p.jsx)("span",{children:B("history.label")})]}),(b=!!(P&&((bF?.userMessages??0)>0||P.messageCount>0)),c=!P||P.transient||!b||"naming"===bH.kind,d="success"===bH.kind,e="error"===bH.kind,f="naming"===bH.kind?B("title.generating"):d?B("title.updated"):e?B("title.failed"):B("title.generate"),g=!P||P.transient?B("title.unsaved"):b?e?bH.message:B("title.generateSession"):B("title.noMessages"),(0,p.jsxs)("button",{type:"button",onClick:()=>{cK(),a&&D&&a2(!0)},disabled:c,title:g,"aria-label":f,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?36:void 0,height:"100%",padding:a?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:e?"#dc2626":d?"var(--accent)":c?"var(--text-dim)":"var(--text-muted)",cursor:c?"not-allowed":"pointer",opacity:c&&"naming"!==bH.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:a=>{c||(a.currentTarget.style.color=e?"#dc2626":"var(--text)",a.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:a=>{a.currentTarget.style.color=e?"#dc2626":d?"var(--accent)":c?"var(--text-dim)":"var(--text-muted)",a.currentTarget.style.background="none"},"data-mobile-toolbar-action":a?"name":void 0,children:["naming"===bH.kind?(0,p.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,p.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):d?(0,p.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"m15 4 5 5L7 22l-5-5Z"}),(0,p.jsx)("path",{d:"m14 5 5 5"}),(0,p.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!a&&(0,p.jsx)("span",{children:f})]})),X&&_&&(0,p.jsxs)("button",{type:"button",onClick:()=>bX("agents",a),title:aa,"aria-label":aa,"aria-pressed":"agents"===bT,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?36:void 0,height:"100%",padding:a?0:"0 12px",background:"agents"===bT?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===bT?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===bT?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":a?"agents":void 0,children:[(0,p.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,p.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!a&&(0,p.jsx)("span",{children:B("agentSwitcher.title")}),(0,p.jsxs)("span",{"aria-hidden":"true",style:{position:"relative",minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:_.running?"color-mix(in srgb, var(--accent) 22%, var(--bg-panel))":"var(--bg-selected)",color:"var(--accent)",fontSize:10,lineHeight:1,fontVariantNumeric:"tabular-nums",fontWeight:_.running?600:void 0,...a?{position:"absolute",top:3,right:3,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:[_.running&&(0,p.jsxs)("svg",{className:"animate-spin motion-reduce:animate-none",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{position:"absolute",top:-3,left:-3,width:"calc(100% + 6px)",height:"calc(100% + 6px)",pointerEvents:"none"},children:[(0,p.jsx)("circle",{cx:"12",cy:"12",r:"11",stroke:"currentColor",strokeWidth:"2",opacity:"0.2"}),(0,p.jsx)("path",{d:"M23 12a11 11 0 0 0-11-11",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}),_.count]})]}),bq&&(a?(0,p.jsx)("button",{type:"button",onClick:()=>bX("branches",!0),title:B("i18n.branches"),"aria-label":B("i18n.branches"),"aria-pressed":"branches"===bT,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:"100%",padding:0,background:"branches"===bT?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===bT?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===bT?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":"branches",children:(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:bi.length>0?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,p.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,p.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,p.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}):(0,p.jsx)(pJ,{tree:bi,activeLeafId:bk,onLeafChange:bs,locked:bm,inline:!0,containerRef:bg,open:"branches"===bT,onToggle:()=>bX("branches"),hasSession:!0})),(0,p.jsxs)("button",{ref:bB,type:"button",onClick:()=>bY("system",a),disabled:a&&!db,title:B("system.prompt"),"aria-label":B("system.prompt"),"aria-pressed":"system"===bT,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?36:void 0,height:"100%",padding:a?0:"0 12px",background:"system"===bT?"var(--bg-selected)":"none",border:"none",borderTop:"system"===bT?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:a&&!db?"not-allowed":"pointer",color:"system"===bT?"var(--text)":"var(--text-muted)",opacity:a&&!db?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:b=>{(!a||db)&&(b.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.color="system"===bT?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":a?"system":void 0,children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:bt?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,p.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,p.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,p.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!a&&(0,p.jsx)("span",{children:B("system.label")})]}),(0,p.jsxs)("button",{type:"button",onClick:()=>bY("tools",a),disabled:a&&!db,title:B("tools.title"),"aria-label":B("tools.title"),"aria-pressed":"tools"===bT,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?36:void 0,height:"100%",padding:a?0:"0 12px",background:"tools"===bT?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===bT?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:a&&!db?"not-allowed":"pointer",color:"tools"===bT?"var(--text)":"var(--text-muted)",opacity:a&&!db?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:b=>{(!a||db)&&(b.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.color="tools"===bT?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":a?"tools":void 0,children:[(0,p.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:bv?.some(a=>a.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,p.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z"})}),!a&&(0,p.jsx)("span",{children:B("tools.label")})]})]}):null},dn=a=>{if(!a&&(!db||!bF&&!bQ))return null;let b=bF?.tokens,c=bF?.cost??0,d=pP(c),e="var(--text-muted)",f=null,g=null;if(bQ?.contextWindow){let a=bQ.percent;null!==a&&a>90?e="#ef4444":null!==a&&a>70&&(e="rgba(234,179,8,0.95)"),f=null!==a?`${a.toFixed(0)}% / ${pO(bQ.contextWindow)}`:`? / ${pO(bQ.contextWindow)}`,g=null!==a?`${a.toFixed(0)}%`:null}let h=[];if(b&&(h.push(`in: ${b.input.toLocaleString(A)}`),h.push(`out: ${b.output.toLocaleString(A)}`),h.push(`cache read: ${b.cacheRead.toLocaleString(A)}`),h.push(`cache write: ${b.cacheWrite.toLocaleString(A)}`),c>0&&h.push(`cost: $${c.toFixed(4)}`)),bQ?.contextWindow){let a=bQ.percent;h.push(`context: ${null!==a?a.toFixed(1)+"%":"unknown"} of ${bQ.contextWindow.toLocaleString()} tokens`)}let i=h.join(" | "),j=a&&D&&a0,k=!!(b&&(b.input>0||b.output>0)||d||g);return(0,p.jsx)("button",{type:"button",onClick:()=>bX("session"),disabled:!db||j,tabIndex:j?-1:void 0,title:i||B("session.title"),"aria-label":B("session.title"),"aria-pressed":"session"===bT,"aria-hidden":!!j||void 0,className:a?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":a?"true":void 0,style:{marginLeft:a?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:a?1:void 0,minWidth:0,gap:a?7:10,paddingLeft:a?6:12,paddingRight:a?6:12,height:"100%",overflow:"hidden",visibility:j?"hidden":"visible",pointerEvents:j?"none":"auto",background:"session"===bT?"var(--bg-selected)":"none",border:"none",borderTop:"session"===bT?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:db?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:a=>{db&&!j&&(a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.color="session"===bT?"var(--text)":"var(--text-muted)"},children:a?(0,p.jsxs)(p.Fragment,{children:[b&&b.input>0&&(0,p.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,p.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,p.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),pO(b.input)]}),b&&b.output>0&&(0,p.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,p.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,p.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),pO(b.output)]}),d&&(0,p.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:d}),g&&(0,p.jsx)("span",{style:{color:e,flexShrink:0},children:g}),!k&&db&&(0,p.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:B("session.title")})]}):(0,p.jsxs)(p.Fragment,{children:[b&&b.input>0&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,p.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),pO(b.input)]}),b&&b.output>0&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,p.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),pO(b.output)]}),b&&b.cacheRead>0&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,p.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),pO(b.cacheRead)]}),d&&(0,p.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:d}),f&&(0,p.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:e},children:[(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,p.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),f]})]})})},dp=a=>{let b=a&&D&&a0;return(0,p.jsx)("button",{type:"button",onClick:b1,disabled:b,tabIndex:b?-1:void 0,"aria-controls":"file-panel","aria-expanded":aX,"aria-hidden":!!b||void 0,title:aX?B("files.hidePanel"):B("files.showPanel"),"aria-label":aX?B("files.hidePanel"):B("files.showPanel"),"data-mobile-toolbar-file":a?"true":void 0,style:{marginLeft:a||bF||bQ?0:"auto",display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:b?"hidden":"visible",pointerEvents:b?"none":"auto",background:aX?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:aX?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:a=>{b||(a.currentTarget.style.color="var(--text)")},onMouseLeave:a=>{a.currentTarget.style.color=aX?"var(--text)":"var(--text-muted)"},children:(0,p.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,p.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})};return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("style",{children:`
|
|
225
|
+
@keyframes session-info-pop {
|
|
226
|
+
0% {
|
|
227
|
+
opacity: 0;
|
|
228
|
+
transform: translateY(-24px);
|
|
229
|
+
filter: blur(6px);
|
|
230
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0);
|
|
231
|
+
}
|
|
232
|
+
55% {
|
|
233
|
+
opacity: 1;
|
|
234
|
+
transform: translateY(0);
|
|
235
|
+
filter: blur(0);
|
|
236
|
+
background: color-mix(in srgb, var(--accent) 8%, var(--bg-panel));
|
|
237
|
+
box-shadow: 0 18px 44px rgba(37,99,235,0.16);
|
|
238
|
+
}
|
|
239
|
+
100% {
|
|
240
|
+
opacity: 1;
|
|
241
|
+
transform: translateY(0);
|
|
242
|
+
filter: blur(0);
|
|
243
|
+
background: var(--bg-panel);
|
|
244
|
+
box-shadow: 0 10px 28px rgba(0,0,0,0.10);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
@keyframes session-info-light-wash {
|
|
248
|
+
0% {
|
|
249
|
+
opacity: 0;
|
|
250
|
+
transform: translateX(-110%) skewX(-16deg);
|
|
251
|
+
}
|
|
252
|
+
24% {
|
|
253
|
+
opacity: 0.42;
|
|
254
|
+
}
|
|
255
|
+
100% {
|
|
256
|
+
opacity: 0;
|
|
257
|
+
transform: translateX(115%) skewX(-16deg);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
.session-info-popover {
|
|
261
|
+
position: relative;
|
|
262
|
+
overflow: hidden;
|
|
263
|
+
transform-origin: top right;
|
|
264
|
+
animation: session-info-pop 360ms ease-out both;
|
|
265
|
+
will-change: transform, opacity, filter, background, box-shadow;
|
|
266
|
+
}
|
|
267
|
+
.session-info-popover::after {
|
|
268
|
+
content: "";
|
|
269
|
+
position: absolute;
|
|
270
|
+
top: 0;
|
|
271
|
+
bottom: 0;
|
|
272
|
+
left: 0;
|
|
273
|
+
width: 44%;
|
|
274
|
+
pointer-events: none;
|
|
275
|
+
background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 24%, transparent), transparent);
|
|
276
|
+
animation: session-info-light-wash 620ms ease-out both;
|
|
277
|
+
}
|
|
278
|
+
@media (prefers-reduced-motion: reduce) {
|
|
279
|
+
.session-info-popover,
|
|
280
|
+
.session-info-popover::after {
|
|
281
|
+
animation: none;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
.mobile-session-stats {
|
|
285
|
+
container-type: inline-size;
|
|
286
|
+
}
|
|
287
|
+
@container (max-width: 158px) {
|
|
288
|
+
.mobile-session-stat-io {
|
|
289
|
+
display: none !important;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
@container (max-width: 88px) {
|
|
293
|
+
.mobile-session-stat-cost {
|
|
294
|
+
display: none !important;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
@media (max-width: 640px) {
|
|
298
|
+
.sidebar-overlay-backdrop.sidebar-mobile-pending {
|
|
299
|
+
opacity: 0 !important;
|
|
300
|
+
pointer-events: none !important;
|
|
301
|
+
}
|
|
302
|
+
.sidebar-container.sidebar-mobile-pending.sidebar-open {
|
|
303
|
+
transform: translateX(calc(-100% - env(safe-area-inset-left)));
|
|
304
|
+
box-shadow: none;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
`}),(0,p.jsxs)("div",{style:{display:"flex",width:"100%",height:"var(--app-viewport-height, 100dvh)",paddingLeft:"env(safe-area-inset-left)",paddingRight:"env(safe-area-inset-right)",overflow:"hidden",background:"var(--bg)"},children:[(0,p.jsx)("div",{className:`sidebar-overlay-backdrop${a3?"":" sidebar-mobile-pending"}`,onClick:()=>aV(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!aU,pointerEvents:aU?"auto":"none",transition:"opacity 0.25s ease"}}),(0,p.jsx)("div",{ref:bb.panelRef,id:"session-sidebar",inert:a_,className:`sidebar-container${aU?" sidebar-open":" sidebar-closed"}${a3?"":" sidebar-mobile-pending"}${bb.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${bb.width}px`,background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,paddingTop:"env(safe-area-inset-top)",paddingBottom:"env(safe-area-inset-bottom)",zIndex:200},children:dk}),aU&&(0,p.jsx)("div",{...bb.separatorProps,inert:a_,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${bb.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${B("layout.resizeSidebar")}: ${B("layout.resizeHint")}`}),(0,p.jsxs)("div",{inert:a_,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,p.jsxs)("div",{ref:bg,style:{flexShrink:0,background:"var(--bg-panel)"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,p.jsx)("button",{onClick:b_,title:aU?B("sidebar.hide"):B("sidebar.show"),"aria-label":aU?B("sidebar.hide"):B("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--text)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text-muted)"},children:aU?(0,p.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,p.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,p.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,p.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,p.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,p.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),C&&(0,p.jsxs)("div",{ref:bh,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[D&&(0,p.jsx)("button",{type:"button",onClick:b0,title:a0?B("chat.close"):B("chat.moreControls"),"aria-label":a0?B("chat.close"):B("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":a0,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:a0?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:a0?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:a0?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:a0?(0,p.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,p.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,p.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,p.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,p.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,p.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!D&&dm(!0),dn(!0),dp(!0),D&&a0&&(0,p.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":B("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:dm(!0)})]}),!C&&(0,p.jsxs)(p.Fragment,{children:[dl(!1),dm(!1),dn(!1)]}),!C&&dp(!1),C&&bq&&(0,p.jsx)(pJ,{tree:bi,activeLeafId:bk,onLeafChange:bs,locked:bm,inline:!0,compact:!0,containerRef:bg,open:"branches"===bT,onToggle:()=>bX("branches"),hasSession:db,hideInlineButton:!0}),bT&&bV&&(0,p.jsxs)("div",{style:{position:"fixed",top:bV.top,left:bV.left,width:bV.width,maxHeight:`calc(100dvh - ${bV.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===bT&&W&&P&&(0,p.jsx)(pX,{rootSession:W.root,subagents:W.subagents,selectedSessionId:P.id,runningSessionIds:Y,onSelectSession:cD,openSubagentTabIds:cY,onToggleSubagentTab:(a,b)=>{cY.has(a)?cZ(`agent:${a}`):(C&&bU(null),cW(a,b))}}),"system"===bT&&(0,p.jsx)(pK,{loading:bx,prompt:bt,translate:B}),"tools"===bT&&(0,p.jsx)(pN,{loading:bx,tools:bv,translate:B}),"session"===bT&&(0,p.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:bF?(c=bF.totalActiveMs??0,d=[...bF.sessionName?[{label:B("session.name"),value:bF.sessionName,copyField:null}]:[],{label:B("session.file"),value:bF.sessionFile??B("session.inMemory"),copyField:"file"},{label:B("session.id"),value:bF.sessionId,copyField:"id"},...c>0?[{label:B("session.totalActive"),value:pQ(c),copyField:null}]:[]],e=[...P?[{label:B("session.projectDir"),value:P.projectRoot??P.cwd,copyField:"projectDir"}]:[],...P?.branch?[{label:B("session.gitBranch"),value:P.branch,copyField:"gitBranch"}]:[],...P?.isWorktree?[{label:B("session.gitWorktree"),value:P.cwd,copyField:"gitWorktree"}]:[]],f=[[B("session.user"),bF.userMessages.toLocaleString(A)],[B("session.assistant"),bF.assistantMessages.toLocaleString(A)],[B("session.toolCalls"),bF.toolCalls.toLocaleString(A)],[B("session.toolResults"),bF.toolResults.toLocaleString(A)],[B("session.total"),bF.totalMessages.toLocaleString(A)]],g=[[B("session.input"),bF.tokens.input.toLocaleString(A)],[B("session.output"),bF.tokens.output.toLocaleString(A)],...bF.tokens.cacheRead>0?[[B("session.cacheRead"),bF.tokens.cacheRead.toLocaleString(A)]]:[],...bF.tokens.cacheWrite>0?[[B("session.cacheWrite"),bF.tokens.cacheWrite.toLocaleString(A)]]:[],[B("session.total"),bF.tokens.total.toLocaleString(A)]],h=bQ??bF.contextUsage,i=[...bF.cost>0?[[B("session.cost"),`$${bF.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[B("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${pO(h.contextWindow)}`]]:[],...bF.tokens.cacheRead+bF.tokens.cacheWrite>0&&bF.tokens.cacheRead+bF.tokens.cacheWrite+bF.tokens.input>0?[[B("session.cacheHitRate"),`${(bF.tokens.cacheRead/(bF.tokens.cacheRead+bF.tokens.cacheWrite+bF.tokens.input)*100).toFixed(1)}%`]]:[]],j=(a,b,c="left",d=!1)=>(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:a}),(0,p.jsx)("div",{style:{display:"grid",gridTemplateColumns:d?"max-content max-content":"auto minmax(0, 1fr)",columnGap:d?14:12,rowGap:4,justifyContent:d?"start":void 0},children:b.map(([b,e])=>(0,p.jsxs)("div",{style:{display:"contents"},children:[(0,p.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:b}),(0,p.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:d?"normal":"anywhere",textAlign:c,whiteSpace:"right"===c?"nowrap":"normal"},children:e})]},`${a}:${b}`))})]}),k={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},l=(a,b)=>{let c=bM===a;return(0,p.jsx)("button",{type:"button",title:c?B("session.copied"):B(k[a]),onClick:()=>bP(a,b),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:c?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)",a.currentTarget.style.borderColor="var(--accent)",a.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:a=>{a.currentTarget.style.color=c?"var(--accent)":"var(--text-dim)",a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.background="transparent"},children:c?(0,p.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,p.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,p.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},m=(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:B("session.infoSection")}),(0,p.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(a=>(0,p.jsxs)("div",{style:{display:"contents"},children:[(0,p.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:a.label}),(0,p.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:a.value}),(0,p.jsx)("div",{children:a.copyField?l(a.copyField,a.value):null})]},`session-info:${a.label}`))})]}),n=e.length>0?(0,p.jsxs)("div",{style:{minWidth:0},children:[(0,p.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:B("session.projectSection")}),(0,p.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:e.map(a=>(0,p.jsxs)("div",{style:{display:"contents"},children:[(0,p.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:a.label}),(0,p.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:a.value}),(0,p.jsx)("div",{children:a.copyField?l(a.copyField,a.value):null})]},`project-info:${a.label}`))})]}):null,(0,p.jsxs)("div",{style:{display:"grid",gridTemplateColumns:C?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:C?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,p.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:C?16:20},children:[m,n]}),j(B("session.messages"),f),j(B("session.tokens"),[...g,...i],"right",!0)]})):(0,p.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:B("session.load")})})]})]}),C&&dl(!0)]}),(0,p.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:db?(0,p.jsx)(fo,{session:P,searchTarget:aA?.sessionId===P?.id?aA:null,onSearchTargetHandled:aC,initialScrollPosition:P?ay.current.get(P.id)??null:null,onScrollPositionChange:az,sessionRunning:!!(P&&Y.has(P.id)),newSessionCwd:c_,newSessionDraftKey:c0,newSessionContextBar:da,initialNewSessionChoices:null===P?an:null,onNewSessionChoicesChange:ap,onAgentEnd:cI,onToolEnd:cN,onAttentionNeeded:cJ,onSessionCreated:cG,onSessionForked:cO,modelsRefreshKey:aJ,chatInputRef:bd,onBranchDataChange:br,onSystemPromptChange:bC,onSystemToolsChange:bD,onSystemInfoLoaderChange:bE,onSessionStatsChange:bL,onSessionStatsPanelOpen:bZ,onOpenSettings:b$,onContextUsageChange:bS,onOpenFile:cT,onFilesUploaded:cL,onOpenSubagent:cW,onEnterSubagent:cX,onAskInNewChat:cP,quoteSelectionEnabled:K,initialPrompt:be?.sessionId===P?.id?be?.text:void 0,onInitialPromptConsumed:()=>bf(null),soundEnabled:E,onSoundToggle:F,playDoneSound:G,unlockAudio:H,holdAudio:I},aw):"validating"===aq?(0,p.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,p.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:B("workspace.opening")}),(0,p.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:v.requestedCwd})]}):"error"===aq?(0,p.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,p.jsx)("div",{style:{fontSize:14,color:"#dc2626"},children:B("workspace.unable")}),(0,p.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:v.requestedCwd}),(0,p.jsx)("div",{style:{maxWidth:720,fontSize:12},children:as})]}):dd?cr?(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:B("workspace.selectSession")}):(0,p.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,p.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,p.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,p.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,p.jsxs)("div",{children:[(0,p.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:B("workspace.getStarted")}),(0,p.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,p.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),B("workspace.selectProject"),(0,p.jsx)("br",{}),(0,p.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),B("workspace.addModels")]})]})]}):null})]}),(0,p.jsx)("div",{"aria-hidden":"true",className:`right-panel-overlay-backdrop${aX?" is-open":""}`,onClick:()=>aY(!1)}),aX&&(0,p.jsx)("div",{...bc.separatorProps,inert:a_,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${bc.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${B("layout.resizeFilePanel")}: ${B("layout.resizeHint")}`}),(0,p.jsxs)("div",{ref:bc.panelRef,id:"file-panel",className:`right-panel-container${aX?" right-panel-open":" right-panel-closed"}${a_?" right-panel-full-width":""}${bc.isResizing?" right-panel-resizing":""}`,style:{"--right-panel-width":`${bc.width}px`,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,p.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,p.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,p.jsx)(id,{tabs:cj,activeTabId:b5??"",onSelectTab:b6,onCloseTab:cZ})}),(0,p.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:b2,"aria-controls":"file-panel","aria-pressed":a_,title:B(a_?"files.restorePanelWidth":"files.expandPanel"),"aria-label":B(a_?"files.restorePanelWidth":"files.expandPanel"),children:(0,p.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,p.jsx)("path",{d:a_?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,p.jsx)("button",{type:"button",onClick:()=>aY(!1),"aria-controls":"file-panel","aria-expanded":aX,title:B("files.hidePanel"),"aria-label":B("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.color="var(--accent)"},onMouseLeave:a=>{a.currentTarget.style.color="var(--text)"},children:(0,p.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,p.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,p.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,p.jsxs)("div",{style:{flex:1,minHeight:0,overflow:"hidden",paddingBottom:"env(safe-area-inset-bottom)"},children:[dh?.filePath?(0,p.jsx)(ib,{filePath:dh.filePath,cwd:cr??void 0,sourceSessionId:dh.sourceSessionId,gitRefreshKey:aD,initialDisplayMode:dh.initialDisplayMode,initialPage:dh.page,initialState:dh.viewerState,watchEnabled:aX,onStateChange:a=>ck(b8,dh.id,dh.viewerRevision??0,a),onMentionLines:aX?co:void 0,onAtMention:cm,onOpenFile:(a,b)=>cS(a,(0,a1.WP)(a),{sourceSessionId:dh.sourceSessionId,page:b})},`${b8}:${dh.id}:${dh.viewerRevision??0}`):cb.some(a=>a.id===b5)||di||dj?null:(0,p.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:B("files.noneOpen")}),null!==dj&&(0,p.jsx)(u_,{cwd:dj,refreshKey:aD},`git-graph:${dj}`),cb.map(a=>(0,p.jsx)("div",{hidden:a.id!==b5,style:{width:"100%",height:"100%"},children:(0,p.jsx)(uV,{tab:a,active:aX&&a.id===b5,onRestart:()=>cc(b=>b.map(b=>b.id===a.id?{...b,closing:"restart"}:b)),onClosed:()=>{let b,c;return b="restart"===a.closing?u2(a.cwd):null,c=cb.filter(b=>b.id!==a.id),void(cc(c=>c.flatMap(c=>c.id!==a.id?[c]:b?[b]:[])),b6(d=>d!==a.id?d:b?.id??c.at(-1)?.id??b3.at(-1)?.id??u8(ch)),!b&&!c.length&&!b3.length&&!cd.length&&!ch.length&&aY(!1))},onCloseError:()=>cc(b=>b.map(b=>b.id===a.id?{...b,closing:void 0}:b))})},a.id)),di&&(0,p.jsx)(pZ,{sessionId:di.sessionId,fallbackLabel:di.label,running:Y.has(di.sessionId),onOpenFile:cT},di.sessionId)]})]})]}),aF&&(0,p.jsx)(pv,{cwd:dc,sessionId:P?.id??null,initialSection:aF,quoteSelectionEnabled:K,onQuoteSelectionChange:M,onClose:()=>{aI(null),aL(a=>a+1)},onSessionReloaded:()=>ax(a=>a+1),projectTrust:aM,onOpenTrustDialog:df,onProjectTrustChanged:dg}),aO&&dc&&(0,p.jsx)(px,{cwd:dc,busy:aQ,error:aS,onCancel:()=>{aQ||aP(!1)},onConfirm:()=>void de(),onStatus:aN})]})}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},84836:(a,b,c)=>{Promise.resolve().then(c.bind(c,92776)),Promise.resolve().then(c.bind(c,97938))},92452:(a,b,c)=>{Promise.resolve().then(c.bind(c,48665)),Promise.resolve().then(c.bind(c,84104))},92776:(a,b,c)=>{"use strict";c.d(b,{AppShell:()=>d});let d=(0,c(40658).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Volumes/Data Vault/PiSpace/pi-web-release/components/AppShell.tsx","AppShell")},99305:(a,b,c)=>{"use strict";c.d(b,{Q8:()=>d,YO:()=>m,getPresetFromTools:()=>l,kU:()=>g,sn:()=>k,xG:()=>n});let d="configured",e=["configured","none","read-only","default","full"],f=[],g=["read","grep","find","ls"],h=["read","bash","edit","write"],i=["bash","read","edit","write","grep","find","ls"],j=new Set([...i,"powershell"]);function k(a){return"string"==typeof a&&e.includes(a)}function l(a){return m(a.filter(a=>a.active).map(a=>a.name))}function m(a){if(0===a.length)return"none";let b=a.map(a=>"powershell"===a?"bash":a).filter(a=>j.has(a)).sort().join(",");return b===[...g].sort().join(",")?"read-only":b===[...h].sort().join(",")?"default":b===[...i].sort().join(",")?"full":"default"}function n(a){if(a!==d)return"none"===a?[...f]:"read-only"===a?[...g]:"full"===a?[...i]:[...h]}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[2008,3261,3960,5699,7398,2728],()=>b(b.s=32952));module.exports=c})();
|