pi-yun 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +14 -13
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +6 -6
- package/.next/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +1 -3
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
- package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/debug/route.js +1 -0
- package/.next/server/app/api/agent/debug/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/debug/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/cache-miss-notices/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js.nft.json +2 -2
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js.nft.json +2 -2
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +3 -3
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
- package/.next/server/app/api/mcp/sign-in/route.js +1 -1
- package/.next/server/app/api/mcp/test/route.js +1 -1
- package/.next/server/app/api/models/default/route.js +1 -1
- package/.next/server/app/api/models/default/route.js.nft.json +2 -2
- package/.next/server/app/api/models/enabled/route.js +1 -1
- package/.next/server/app/api/models/enabled/route.js.nft.json +2 -2
- package/.next/server/app/api/models/refresh/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/open-in-explorer/route.js +1 -1
- package/.next/server/app/api/plugins/check/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
- package/.next/server/app/api/provider-usage/query/route.js +1 -1
- package/.next/server/app/api/push/config/route.js +1 -1
- package/.next/server/app/api/push/subscribe/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/delete/route.js +1 -1
- package/.next/server/app/api/sessions/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/sessions/stats/route.js +1 -1
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/ui-state/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/content/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/subagents/profiles/route.js +1 -1
- package/.next/server/app/api/subagents/settings/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
- package/.next/server/app/api/terminal/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/tools/settings/route.js +1 -1
- package/.next/server/app/api/web-auth/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +9 -9
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +8 -8
- package/.next/server/app/index.segments/_full.segment.rsc +9 -9
- package/.next/server/app/index.segments/_tree.segment.rsc +5 -5
- package/.next/server/app/login/page.js +3 -3
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +7 -7
- package/.next/server/app/login.segments/_full.segment.rsc +7 -7
- package/.next/server/app/login.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +11 -10
- package/.next/server/app/manifest.webmanifest/route.js +1 -17
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/page.js +923 -59
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pet-preview/page.js +1 -1
- package/.next/server/app/pet-preview/page.js.nft.json +1 -1
- package/.next/server/app/pet-preview/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pet-preview.html +1 -1
- package/.next/server/app/pet-preview.rsc +7 -7
- package/.next/server/app/pet-preview.segments/_full.segment.rsc +7 -7
- package/.next/server/app/pet-preview.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/pet-preview.segments/pet-preview/__PAGE__.segment.rsc +6 -6
- package/.next/server/app-paths-manifest.json +14 -13
- package/.next/server/chunks/1207.js +1 -1
- package/.next/server/chunks/1906.js +1 -1
- package/.next/server/chunks/2243.js +1 -1
- package/.next/server/chunks/2498.js +1 -1
- package/.next/server/chunks/27.js +1 -1
- package/.next/server/chunks/3371.js +1 -0
- package/.next/server/chunks/3374.js +2 -2
- package/.next/server/chunks/3757.js +1 -1
- package/.next/server/chunks/3824.js +1 -1
- package/.next/server/chunks/4698.js +1 -1
- package/.next/server/chunks/5138.js +1 -0
- package/.next/server/chunks/5582.js +3 -3
- package/.next/server/chunks/6429.js +11 -9
- package/.next/server/chunks/7365.js +1 -1
- package/.next/server/chunks/8177.js +1 -0
- package/.next/server/chunks/8781.js +3 -0
- package/.next/server/functions-config-manifest.json +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/EemFyRH2znEKEODTd_e9W/_buildManifest.js +1 -0
- package/.next/static/chunks/1278-d14efc5351094e2a.js +1 -0
- package/.next/static/chunks/{9932-60e21347ba9f8664.js → 4908-bc77348603c9c216.js} +2 -2
- package/.next/static/chunks/app/_global-error/{page-cbe4231fb889bdce.js → page-aea014bebc656830.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/events/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/lease/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/agent/debug/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/cache-miss-notices/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/home/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/mcp/sign-in/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/mcp/test/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models/default/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models/enabled/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models/refresh/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/open-in-explorer/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/plugins/check/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/provider-usage/query/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/push/config/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/push/subscribe/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/delete/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/stats/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/sessions/ui-state/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/content/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/subagents/[id]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/subagents/profiles/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/subagents/settings/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/events/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/tools/settings/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/web-auth/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/layout-887864247723a15f.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-aea014bebc656830.js +1 -0
- package/.next/static/chunks/app/page-5fe4e4e656618c55.js +1093 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-aea014bebc656830.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-aea014bebc656830.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-aea014bebc656830.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aea014bebc656830.js +1 -0
- package/.next/static/chunks/{webpack-03add08f717df51e.js → webpack-98cb88af9c517ce2.js} +1 -1
- package/.next/static/css/08eddaaa4f97d65e.css +1 -0
- package/.next/static/css/2f63bdc85a747c1b.css +1 -0
- package/.next/static/css/{edd81c2e355e9677.css → 3540eb37e32475c8.css} +1 -1
- package/.next/static/css/948bdf99ac6477ce.css +1 -0
- package/.next/trace +14 -85
- package/.next/trace-build +1 -1
- package/.next/types/app/api/agent/debug/route.ts +353 -0
- package/.next/types/app/manifest.webmanifest/route.ts +353 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/README.md +6 -1
- package/bin/browser-opener.js +44 -1
- package/bin/network-addresses.js +62 -0
- package/bin/pi-web.js +10 -2
- package/package.json +13 -11
- package/.next/server/chunks/5787.js +0 -1
- package/.next/server/chunks/7492.js +0 -1
- package/.next/static/chunks/1278-93326582f35e0b95.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/app-update/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cache-miss-notices/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/home/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/sign-in/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/mcp/test/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/default/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/enabled/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/refresh/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/open-in-explorer/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/plugins/check/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/provider-usage/query/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/push/config/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/push/subscribe/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/fork/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/delete/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/stats/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/sessions/ui-state/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/content/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/profiles/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/subagents/settings/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/events/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/tools/settings/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/web-auth/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/layout-b1ce6552c10e045b.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/app/page-3d87202e7f491be4.js +0 -229
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-cbe4231fb889bdce.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cbe4231fb889bdce.js +0 -1
- package/.next/static/css/0ba51581376fe049.css +0 -1
- package/.next/static/css/d986dbac15b9ebaa.css +0 -1
- package/.next/static/css/e678fb57b00f0bb2.css +0 -1
- package/.next/static/pmfOa9kKCLb5t2FbVpaNk/_buildManifest.js +0 -1
- /package/.next/static/{pmfOa9kKCLb5t2FbVpaNk → EemFyRH2znEKEODTd_e9W}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,1093 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{13267:(e,t,n)=>{"use strict";let r,i,s,o,l,a,c;n.d(t,{AppShell:()=>wu});var d=n(95155),u=n(12115),p=n(73321);let h=null;var m=n(47650);function f(e,t){return e.name&&"Side chat"!==e.name?e.name:t}function g(e){return e?.kind==="subagent"||e?.kind==="side"}function x(e){let t=function(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map;for(let r of e){if(n.has(r.id))continue;let e=[],i=new Set,s=r.id,o=null;for(;;){if(n.has(s)){o=n.get(s)??null;break}if(i.has(s))break;i.add(s),e.push(s);let r=t.get(s);if(!r)break;if(!g(r.relation)){o=r.id;break}s=r.relation.parentSessionId}for(let t of e)n.set(t,o)}return n}(e),n=new Map;for(let t of e)g(t.relation)||n.set(t.id,{root:t,subagents:[],latestModified:t.modified});for(let r of e){if(!g(r.relation))continue;let e=t.get(r.id),i=e?n.get(e):void 0;i&&(i.subagents.push(r),r.modified>i.latestModified&&(i.latestModified=r.modified))}return[...n.values()].sort((e,t)=>t.latestModified.localeCompare(e.latestModified))}function v(e,t){return e.filter(e=>t.has(e.id)).length}function b(e){return`?session=${encodeURIComponent(e)}`}function y(e){return!e.defaultPrevented&&0===e.button&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey}let w="pi-web:last-open-by-workspace";function j(){try{return window.localStorage}catch{return null}}function k(e){let t=e.getItem(w);if(!t)return{};try{let e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?{}:e}catch{return{}}}function S(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j();if(t)try{let n=k(t);if(!(e in n))return;delete n[e],0===Object.keys(n).length?t.removeItem(w):t.setItem(w,JSON.stringify(n))}catch{}}function C(e){return e.projectKey??e.projectRoot??e.cwd}function N(e){let t=new Map;for(let n of e){let e=n.projectRoot??n.cwd;if(!e)continue;let r=C(n),i=t.get(r);(!i||n.modified>i.modified)&&t.set(r,{root:e,modified:n.modified})}return[...t.entries()].sort((e,t)=>t[1].modified.localeCompare(e[1].modified)).map(e=>{let[t,{root:n}]=e;return{key:t,root:n}})}let E=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,$=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function M(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function I(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0}function T(e){return"string"==typeof e&&e.length>0&&e.length<=4096&&"__proto__"!==e}let R=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/;function L(e){if(null===e)return null;if("string"!=typeof e)return;let t=e.trim();return t?R.test(t)||[...t].length>80?void 0:t:null}function A(e,t){let n=e.projectNames;return n&&$(n,t)?n[t]:void 0}function P(e,t){return!!e.removedProjects&&$(e.removedProjects,t)}let z=new TextEncoder;function W(e){return z.encode(JSON.stringify(e)).length+1}function O(e){let t=1;for(let n of e)t+=W(n);return t}function F(e,t){return e<=1e3&&t<=262144}function D(e){let t=[],n=1;for(let r of e){if(t.length>=1e3)break;let e=W(r);n+e>262144||(t.push(r),n+=e)}return t}function B(e,t){return z.encode(JSON.stringify(e)).length+z.encode(JSON.stringify(t)).length+2}function _(e,t){return e<=1e3&&t<=262144}function H(){return{version:1,revision:0,sessions:{},projects:{}}}function U(e,t,n){let r=$(e,t)?e[t]:void 0;return void 0===n.pinnedAt&&void 0===n.archivedAt?!!r&&(delete e[t],!0):(r?.pinnedAt!==n.pinnedAt||r?.archivedAt!==n.archivedAt)&&(e[t]=n,!0)}function q(e,t){var n;return n=e.projectOrder??[],!(n.length===t.length&&n.every((e,n)=>e===t[n]))&&(0===t.length?delete e.projectOrder:e.projectOrder=t,!0)}function K(e,t,n){let r={...e.projectNames};if(($(r,t)?r[t]:void 0)===(n??void 0))return!1;if(null===n)delete r[t];else if(r[t]=n,!_(Object.keys(r).length,function(e){let t=1;for(let[n,r]of Object.entries(e))t+=B(n,r);return t}(r)))return!1;return 0===Object.keys(r).length?delete e.projectNames:e.projectNames=r,!0}function V(e,t){let n=new Set(e),r=[];for(let e of t)n.has(e)||(n.add(e),r.push(e));return r}function Z(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=Math.max(1,Math.floor(t)),r=[];for(let t=0;t<e.length;t+=n)r.push(e.slice(t,t+n));return r}let J={desktop:{section:38,recent:30,"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:{section:44,recent:44,"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}},Y="pinned";function G(e,t){return Object.hasOwn(e.sessions,t)?e.sessions[t]:void 0}function X(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Q(e,t){return e===t?0:e>t?-1:1}function ee(e){return[e.root.id,...e.subagents.map(e=>e.id)]}function et(e,t){return 0!==t.size&&(t.has(e.root.id)||e.subagents.some(e=>t.has(e.id)))}function en(e,t,n){let r=X(G(t,e.root.id)?.archivedAt);if(null===r||et(e,n))return!1;if(e.root.detailsPending)return!0;let i=Date.parse(e.root.modified);return Number.isNaN(i)||r>=i}function er(e,t,n){return null!==X(G(t,e.root.id)?.pinnedAt)&&!en(e,t,n)}function ei(e){let t=e.replace(/[\\/]+$/,"");if(!t)return e.charAt(0);let n=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return t.slice(n+1)}function es(e,t){if(Object.hasOwn(t,e.key)){let n=t[e.key];if("boolean"==typeof n)return n}return e.current||e.pinned}function eo(e,t){var n;return{running:et(e,t.runningIds),awaiting:!!t.awaitingIds&&et(e,t.awaitingIds),unread:et(e,t.unreadIds),selected:!!(n=t.selectedSessionId)&&(e.root.id===n||e.subagents.some(e=>e.id===n)),transient:!0===e.root.transient}}function el(e,t){let n=0,r=0,i=0;for(let s of e)t.awaitingIds&&et(s,t.awaitingIds)?r++:et(s,t.runningIds)&&n++,et(s,t.unreadIds)&&i++;return{running:n,awaiting:r,unread:i}}function ea(e){return C(e.root)}function ec(e,t){let n=new Map,r=new Map;return{noteFamily(e){let t=ea(e);n.has(t)||n.set(t,e.root.projectRoot??e.root.cwd)},get(i){let s=r.get(i);if(s)return s;let o=Object.hasOwn(e.projects,i)?e.projects[i]:void 0,l=null!==t&&t.key===i,a=n.get(i)??(l?t.root:void 0)??o?.root??i,c=A(e,i)??null,d={key:i,root:a,name:c??ei(a),customName:c,pinned:void 0!==o,current:l};return r.set(i,d),d}}}function ed(e,t,n,r){return{kind:"session",key:`session:${t}:${e.root.id}`,family:e,context:t,project:n,status:eo(e,r)}}function eu(e,t,n,r){let i=e.map((e,n)=>{if(n<t)return!1;let i=eo(e,r);return i.running||i.unread||i.selected}),s=t+n,o=0,l=e.filter((e,n)=>n<t||!!i[n]||n<s&&(o++,!0)),a=Math.max(t,Math.min(s,e.length));for(let t=0;a<e.length&&t<20;a++)!i[a]&&t++;return{visible:l,revealed:o,nextShown:a-t}}function ep(e,t){if(!Object.hasOwn(e,t))return 0;let n=e[t];return"number"==typeof n&&Number.isFinite(n)&&n>0?Math.floor(n):0}function eh(e,t){if(!Object.hasOwn(e,t))return e;let n={...e};return delete n[t],n}function em(e,t,n){let r=e-t,i=n>0;return r>0||i?{hidden:r,canShowLess:i}:null}function ef(e,t,n,r){let i=r-n,s=[];for(let n of x(e.sessions)){if(ea(n)!==t||en(n,e.uiState,e.runningIds)||er(n,e.uiState,e.runningIds))continue;let r=eo(n,e);if(r.running||r.unread||r.selected||r.transient)continue;let o=Date.parse(n.latestModified);Number.isNaN(o)||o>=i||s.push(n.root.id)}return s}function eg(e,t){let n=[],r=0;for(let i of x(e.sessions))if(ea(i)===t&&!i.root.transient){if(et(i,e.runningIds)||e.awaitingIds&&et(i,e.awaitingIds)){r++;continue}n.push(i.root.id)}return{ids:n,running:r}}function ex(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=e.filter(e=>e.pinned===r.pinned),s=i.indexOf(r),o=i["up"===n?s-1:s+1];return o?{anchorKey:o.key,position:"up"===n?"before":"after"}:null}function ev(e,t,n,r,i){if(!Number.isInteger(t)||t<0||t>=e.length-1)return null;let s=e[t],o=e[t+1];return"start"===i?s===n?null:s:s>=n&&o<=n+r?null:Math.max(0,s-Math.max(0,(r-(o-s))/2))}function eb(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function ey(e){let t=eb(e),n=t.split("/").filter(Boolean);return t.startsWith("//")&&n.length>0&&(n[0]=`//${n[0]}`),n.map(encodeURIComponent).join("/")}function ew(e){let t=eb(e).replace(/\/+$/,"");return t.split("/").pop()??t}function ej(e){let t=eb(e).replace(/\/+$/,""),n=t.lastIndexOf("/");return n<0?"":0===n?"/":2===n&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,n)}function ek(e,t){if(!t)return e;let n=eb(e),r=eb(t).replace(/\/$/,"");return n.startsWith(r+"/")?n.slice(r.length+1):e}function eS(e,t){return`${eb(e).replace(/\/$/,"")}/${t}`}let eC=/^<skill name="([^"\n]+)" location="([^"\n]+)">\nReferences are relative to [^\n]+\.\n\n([\s\S]*)\n<\/skill>(?:\n\n([\s\S]+))?$/;function eN(e){let t=e.match(eC);if(!t)return null;let[,n,,,r]=t;return r?`/skill:${n} ${r}`:`/skill:${n}`}let eE=/ · [0-9a-f]{4}$/;function e$(e){return e.name||(eN(e.firstMessage)??e.firstMessage)||e.id.slice(0,12)}function eM(e){let t=eE.exec(e);return t&&0!==t.index?{base:e.slice(0,t.index),suffix:t[0]}:null}let eI="pi-web:sidebar-tab",eT="pi-web:sidebar-groups-v2",eR="pi-web:sidebar-groups",eL="pi-web:sidebar-archive-collapsed",eA="pi-web:sidebar-pins-collapsed",eP="pi-web:sidebar-recents-collapsed",ez="pi-web:sidebar-files-show-ignored",eW="pi-web:sidebar-files-collapsed",eO="pi-web:sidebar-changes-view-mode",eF="pi-web:sidebar-non-git-cwds",eD=["pi-web:file-explorer:open","pi-web:sidebar-session-pane-height",eR];function eB(){try{return window.localStorage}catch{return null}}function e_(e){let t={};if(null===e||"object"!=typeof e||Array.isArray(e))return t;for(let[n,r]of Object.entries(e))"__proto__"!==n&&"boolean"==typeof r&&(t[n]=r);return t}function eH(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{let n=Object.entries(e_(e)),r=n.length>300?n.slice(n.length-300):n;t.setItem(eT,JSON.stringify(Object.fromEntries(r)))}catch{}}function eU(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eL,JSON.stringify([...new Set(e)].slice(-300)))}catch{}}function eq(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return[];try{let t=e.getItem(eF),n=null===t?[]:JSON.parse(t);if(!Array.isArray(n))return[];return n.filter(e=>"string"==typeof e&&""!==e).slice(-50)}catch{return[]}}async function eK(e,t){let n={deletedRoots:[],deleted:[],running:[],error:null};for(let r=0;r<e.length;r+=500){let i=e.slice(r,r+500);try{let e=await t("/api/sessions/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:i})}),r=await e.json().catch(()=>({}));if(!e.ok||!Array.isArray(r.deleted)){n.error=r.error??`HTTP ${e.status}`;break}let s=new Set(r.deleted);n.deleted.push(...r.deleted),n.deletedRoots.push(...i.filter(e=>s.has(e))),n.running.push(...r.running??[])}catch(e){n.error=e instanceof Error?e.message:String(e);break}}return n}function eV(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function eZ(e,t){let n=t.replace(/[/\\]+$/,"");return n&&(e===n||e.startsWith(`${n}/`)||e.startsWith(`${n}\\`))?`./${e.slice(n.length).replace(/^[/\\]/,"")}`:eV(e)}function eJ(e,t){return{cwd:e.current&&t?t:e.root,projectKey:e.key,projectRoot:e.root}}function eY(e){let t=e.project;return!t||e.projects.some(e=>e.key===t.key)?[...e.projects]:[t,...e.projects]}function eG(e,t){let{key:n,root:r}=e,i=t&&Object.hasOwn(t,n)?t[n]:void 0;return void 0===i?{key:n,root:r}:{key:n,root:r,alias:i}}function eX(e){let t=e.map(e=>({choice:e,name:e.alias??ei(e.root)})),n=new Map;for(let{name:e}of t)n.set(e,(n.get(e)??0)+1);return t.map(e=>{let t,r,{choice:i,name:s}=e;return{choice:i,name:s,note:void 0===i.alias&&(n.get(s)??0)>1&&(r=Math.max((t=i.root.replace(/[\\/]+$/,"")).lastIndexOf("/"),t.lastIndexOf("\\")))>0?ei(t.slice(0,r)):null}})}let eQ={awaiting:"#d97706",unread:"#0891b2"};function e0(e){return Number.isFinite(e)?Math.max(0,Math.floor(e)):0}let e1=null,e2=null,e4=new Map;function e8(){return[...document.querySelectorAll('link[rel="icon"]')]}async function e3(e,t){let n=await (!e2&&(e2=new Promise(e=>{let t=new Image;t.onload=()=>e(t),t.onerror=()=>e(null),t.src="/icons/icon-192.png"})),e2);if(!n||e1!==t)return;let r=document.createElement("canvas");r.width=192,r.height=192;let i=r.getContext("2d");if(!i)return;i.clearRect(0,0,192,192),i.drawImage(n,0,0,192,192);let s=e.count>1,o=s?56:42,l=192-o-10,a=o+10;if(i.beginPath(),i.arc(l,a,o,0,2*Math.PI),i.fillStyle=eQ[e.kind],i.fill(),i.lineWidth=10,i.strokeStyle="#ffffff",i.stroke(),s&&(i.fillStyle="#ffffff",i.font=`bold ${e.count>9?56:68}px system-ui, sans-serif`,i.textAlign="center",i.textBaseline="middle",i.fillText(String(e.count),l,a+4)),e1!==t)return;let c=r.toDataURL("image/png");for(let e of e8())e.href=c}function e6(e){return e.isComposing||229===e.keyCode}function e5(e,t){let n=e=>{"Escape"!==e.key||e.defaultPrevented||e6(e)||(e.preventDefault(),t())};return e.addEventListener("keydown",n,!1),()=>e.removeEventListener("keydown",n,!1)}function e9(e,t){let{restoreTextEntry:n=!0}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.activeElement,i=!!(r&&t&&t.contains(r)),s=r&&r!==e.body&&!i?r:null;return t&&!i&&t.focus({preventScroll:!0}),()=>{if(!s||!s.isConnected||!n&&function(e){if(e.isContentEditable)return!0;let t=e.tagName?.toUpperCase();return"TEXTAREA"===t||"INPUT"===t&&!["button","checkbox","color","file","hidden","image","radio","range","reset","submit"].includes((e.type??"text").toLowerCase())}(s))return;let r=e.activeElement;r&&r!==e.body&&!(t&&t.contains(r))||"function"==typeof s.focus&&s.focus({preventScroll:!0})}}function e7(e,t){let n=e.activeElement;return!!t&&(!n||n===e.body)&&(t.focus({preventScroll:!0}),!0)}let te=Symbol.for("pi-web:page-id");function tt(){let e=globalThis,t=e[te];if("string"==typeof t)return t;let n=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;return e[te]=n,n}let tn=new Set,tr=1;function ti(e){let t=e.source.deref();return t&&2!==t.readyState?t:void 0}function ts(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;for(let e of tn)ti(e)||tn.delete(e);let r={id:tr++,kind:e,label:n,source:new WeakRef(t),createdAt:Date.now(),opens:0,errors:0,lastOpenAt:null,lastErrorAt:null};return tn.add(r),"function"==typeof t.addEventListener&&(t.addEventListener("open",()=>{r.opens+=1,r.lastOpenAt=Date.now()}),t.addEventListener("error",()=>{r.errors+=1,r.lastErrorAt=Date.now()})),t}function to(){let e=[];for(let t of tn){let n=ti(t);if(!n){tn.delete(t);continue}e.push({id:t.id,kind:t.kind,label:t.label,state:1===n.readyState?"open":"connecting",createdAt:t.createdAt,opens:t.opens,errors:t.errors,lastOpenAt:t.lastOpenAt,lastErrorAt:t.lastErrorAt})}return e}let tl={trackingSince:null,lastHiddenAt:null,lastVisibleAt:null,hiddenCount:0};function ta(){"u">typeof document&&("hidden"===document.visibilityState?(tl.lastHiddenAt=Date.now(),tl.hiddenCount+=1):tl.lastVisibleAt=Date.now())}function tc(){return{state:"u">typeof document&&"hidden"===document.visibilityState?"hidden":"visible",trackingSince:tl.trackingSince,lastHiddenAt:tl.lastHiddenAt,lastVisibleAt:tl.lastVisibleAt,hiddenCount:tl.hiddenCount}}let td={count:0,failures:0,last:null};function tu(){return{...td,last:td.last?{...td.last}:null}}function tp(){if("u"<typeof performance||"function"!=typeof performance.getEntriesByType)return null;let e=performance.getEntriesByType("navigation")[0],t=e?.nextHopProtocol;return t||("u">typeof location&&"http:"===location.protocol?"http/1.1":null)}let th="pi-web:sidebar-files-placement",tm="below";function tf(){try{var e;return e=window.localStorage.getItem(th),"tab"===e?"tab":tm}catch{return tm}}let tg=null,tx=new Set;function tv(){return null===tg&&(tg=tf()),tg}function tb(e){if(null!==e.key&&e.key!==th)return;let t=tf();t!==tg&&(tg=t,tx.forEach(e=>e()))}function ty(e){return 0===tx.size&&(window.addEventListener("storage",tb),tg=tf()),tx.add(e),()=>{tx.delete(e),0===tx.size&&window.removeEventListener("storage",tb)}}var tw=n(21278);let tj="(max-width: 640px)",tk="(max-width: 480px)";function tS(e,t){if(!window.matchMedia)return()=>{};let n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}function tC(e){return!!window.matchMedia&&window.matchMedia(e).matches}let tN=e=>tS(tj,e),tE=()=>tC(tj),t$=e=>tS(tk,e),tM=()=>tC(tk);function tI(){return!1}function tT(){return(0,u.useSyncExternalStore)(tN,tE,tI)}let tR="(min-width: 1200px)",tL=e=>tS(tR,e),tA=()=>tC(tR);function tP(e,t,n){let r=Number.isFinite(e)?e:t,i=Math.max(t,n);return Math.round(Math.max(t,Math.min(i,r)))}function tz(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function tW(e){let{ariaLabel:t,axis:n="horizontal",cssVariable:r,defaultWidth:i,getDefaultWidth:s,getMaxWidth:o,growthDirection:l,maxWidth:a,minWidth:c,collapseAt:d,onCollapse:p,persistClamp:h=!0,storageKey:m,widthRef:f}=e,g=(0,u.useRef)(null),x=(0,u.useRef)(null),v=(0,u.useRef)(!1),b=(0,u.useRef)(i),[y,w]=(0,u.useState)(i),[j,k]=(0,u.useState)(!1),[S,C]=(0,u.useState)(!1);(0,u.useEffect)(()=>{C(!0)},[]);let N=(0,u.useCallback)(()=>Math.min(a,Math.max(c,o())),[o,a,c]),E=(0,u.useCallback)(e=>tP(e,c,N()),[N,c]),$=(0,u.useCallback)(e=>{f.current=e,g.current?.style.setProperty(r,`${e}px`)},[r,f]),M=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{forcePersist:n=!1,persist:r=!0}=t,i=E(e),s=i!==f.current;return $(i),w(i),h?r&&(s||n)&&tz(m,i):n&&(b.current=tP(e,c,a),tz(m,b.current)),i},[$,E,a,c,h,m,f]),I=(0,u.useCallback)(()=>{M(h||x.current?f.current:b.current)},[M,h,f]),T=(0,u.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),R=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=x.current;if(n&&n.pointerId===e){x.current=null,T(n),k(!1),!t&&p&&void 0!==d&&n.requestedWidth<d?(M(h?n.startWidth:b.current,{forcePersist:!0}),p()):M(f.current,{forcePersist:h||f.current!==n.startWidth});try{n.target.hasPointerCapture(e)&&n.target.releasePointerCapture(e)}catch{}}},[d,M,p,h,T,f]),L=(0,u.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=x.current;t&&R(t.pointerId,!0);let r=e.currentTarget;r.focus({preventScroll:!0}),r.setPointerCapture(e.pointerId),x.current={pointerId:e.pointerId,startPosition:"vertical"===n?e.clientY:e.clientX,startWidth:f.current,requestedWidth:f.current,target:r,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===n?"row-resize":"col-resize",document.body.style.userSelect="none",k(!0)},[n,R,f]),A=(0,u.useCallback)(e=>{let t=x.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void R(e.pointerId);e.preventDefault();let r="right"===l||"down"===l?1:-1,i="vertical"===n?e.clientY:e.clientX;t.requestedWidth=t.startWidth+(i-t.startPosition)*r;let s=E(t.requestedWidth);$(s),e.currentTarget.setAttribute("aria-valuenow",String(s)),e.currentTarget.setAttribute("aria-valuetext",`${s} px`)},[$,n,E,R,l]),P=(0,u.useCallback)(e=>{R(e.pointerId)},[R]),z=(0,u.useCallback)(e=>{R(e.pointerId,!0)},[R]),W=(0,u.useCallback)(e=>{R(e.pointerId,!0)},[R]),O=(0,u.useCallback)(()=>{M(s?.()??i,{forcePersist:!0})},[M,i,s]),F=(0,u.useCallback)(e=>{let t=e.shiftKey?32:12,r="right"===l||"down"===l,i="vertical"===n?"ArrowDown":"ArrowRight",s="vertical"===n?"ArrowUp":"ArrowLeft",o=h?f.current:Math.max(f.current,b.current);e.key===(r?i:s)?(e.preventDefault(),M(o+t,{forcePersist:!0})):e.key===(r?s:i)?(e.preventDefault(),M(f.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),M(c,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),M(Math.max(o,N()),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),O())},[n,M,N,l,c,h,O,f]);return(0,u.useEffect)(()=>{if(v.current)return;v.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:null}catch{return null}}(m),t=e??s?.()??i;if(!h){b.current=tP(t,c,a),M(b.current,{persist:!1});return}let n=M(t,{persist:!1});null!==e&&e!==n&&tz(m,n)},[M,i,s,a,c,h,m]),(0,u.useEffect)(()=>{if(!v.current)return;I();let e=()=>{I()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[I]),(0,u.useEffect)(()=>{if(!j)return;let e=()=>{let e=x.current;e&&R(e.pointerId,!0)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[R,j]),(0,u.useEffect)(()=>()=>{let e=x.current;e&&(x.current=null,T(e))},[T]),{isResizing:j,panelRef:g,reclampWidth:I,resetWidth:O,separatorProps:{"aria-label":t,"aria-orientation":"vertical"===n?"horizontal":"vertical","aria-valuemax":S?N():a,"aria-valuemin":c,"aria-valuenow":y,"aria-valuetext":`${y} px`,onDoubleClick:O,onKeyDown:F,onLostPointerCapture:W,onPointerCancel:z,onPointerDown:L,onPointerMove:A,onPointerUp:P,role:"separator",tabIndex:0},width:y}}function tO(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];(0,u.useEffect)(()=>{if(!t)return;let n=null,r=null,i=!1,s=null,o=()=>{null!==s&&(clearTimeout(s),s=null)},l=()=>{n&&(o(),n.classList.add("scrollbar-visible"))},a=()=>{n&&(o(),s=setTimeout(()=>{s=null,n?.classList.remove("scrollbar-visible")},500))},c=()=>{l(),a()},d=()=>{if(!i){if(!(n=e.current)){r=requestAnimationFrame(d);return}n.addEventListener("pointerenter",l),n.addEventListener("pointerleave",a),n.addEventListener("scroll",c)}};return d(),()=>{i=!0,null!==r&&cancelAnimationFrame(r),n?.removeEventListener("pointerenter",l),n?.removeEventListener("pointerleave",a),n?.removeEventListener("scroll",c),o(),n?.classList.remove("scrollbar-visible")}},[t,e])}let tF="/api/sessions/ui-state";async function tD(e){try{let t=await e.json();if(t&&"object"==typeof t&&"string"==typeof t.error)return t.error}catch{}return`HTTP ${e.status}`}function tB(e){return e instanceof Error?e.message:String(e)}async function t_(e){if(!e.ok)throw Error(await tD(e));let t=await e.json(),n=t&&"object"==typeof t?function(e){if(!M(e)||void 0!==e.version&&1!==e.version||void 0!==e.sessions&&!M(e.sessions)||void 0!==e.projects&&!M(e.projects))return null;let t=H(),n=e.revision;for(let[r,i]of("number"==typeof n&&Number.isSafeInteger(n)&&n>=0&&(t.revision=n),Object.entries(e.sessions??{}))){if(!("string"==typeof r&&E.test(r)))continue;let e=function(e){if(!M(e))return null;let t={};return I(e.pinnedAt)&&(t.pinnedAt=e.pinnedAt),I(e.archivedAt)&&(t.archivedAt=e.archivedAt),void 0===t.pinnedAt&&void 0===t.archivedAt?null:t}(i);e&&(t.sessions[r]=e)}for(let[n,r]of Object.entries(e.projects??{})){if(!T(n))continue;let e=M(r)&&I(r.pinnedAt)&&T(r.root)?{pinnedAt:r.pinnedAt,root:r.root}:null;e&&(t.projects[n]=e)}if(M(e.removedProjects)){let n={};for(let[t,r]of Object.entries(e.removedProjects))T(t)&&I(r)&&(n[t]=r);Object.keys(n).length&&(t.removedProjects=n)}if(Array.isArray(e.projectOrder)){let n=new Set,r=D(e.projectOrder.filter(e=>!(!T(e)||n.has(e))&&(n.add(e),!0)));r.length>0&&(t.projectOrder=r)}if(M(e.projectNames)){let n={},r=0,i=1;for(let[t,s]of Object.entries(e.projectNames)){let e=L(s);if(!T(t)||"string"!=typeof e)continue;let o=B(t,e);_(r+1,i+o)&&(n[t]=e,r++,i+=o)}r>0&&(t.projectNames=n)}return t}(t.state):null;if(!n)throw Error("Invalid session UI state response");return n}function tH(){let[e,t]=(0,u.useState)(null),n=(0,u.useRef)(null),r=(0,u.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]),i=(0,u.useCallback)(()=>{r(),t(null)},[r]),s=(0,u.useCallback)(e=>{(r(),function(){try{return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0}catch{return!1}}())?t(null):(t(e),n.current=setTimeout(()=>{n.current=null,t(null)},300))},[r]);return(0,u.useEffect)(()=>r,[r]),{phase:e,start:s,end:i}}let tU={overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},tq={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},tK={padding:"6px 16px",borderRadius:6,fontSize:13},tV={...tK,border:0,background:"var(--accent)",color:"var(--accent-contrast)",fontWeight:600},tZ={...tK,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)"};async function tJ(e){let t=e?`?path=${encodeURIComponent(e)}`:"",n=await fetch(`/api/cwd/browse${t}`),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);return r}async function tY(e,t){let n=await fetch("/api/cwd/browse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,name:t})}),r=await n.json();if(!n.ok||r.error||!r.path)throw Error(r.error??`HTTP ${n.status}`);return r.path}function tG(){return(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function tX(){return(0,d.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,d.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,d.jsx)("path",{d:"M2 9h12"}),(0,d.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function tQ(e){let{onCancel:t,onSelect:n,initialPath:r,busy:i=!1,error:s}=e,{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(null),[c,p]=(0,u.useState)(""),[h,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(r??""),[v,b]=(0,u.useState)([]),[y,w]=(0,u.useState)(null),[j,k]=(0,u.useState)(null),[S,C]=(0,u.useState)(!0),[N,E]=(0,u.useState)(!1),[$,M]=(0,u.useState)(""),[I,T]=(0,u.useState)(null),[R,L]=(0,u.useState)(!1),A=(0,u.useRef)(!1),P=(0,u.useRef)(!1),z=(0,u.useCallback)(async e=>{C(!0),k(null);try{let t=await tJ(e),n=t.path??e??"/";p(n),f(t.parentPath??null),x(n),b(t.directories??[]),w(t.drives??null)}catch(e){k(e instanceof Error?e.message:String(e))}finally{C(!1)}},[]);(0,u.useEffect)(()=>{a(document.body),z(r||void 0)},[r,z]);let W=()=>{R||(E(!1),M(""),T(null))},O=async()=>{let e=$.trim();if(c&&e&&!R){L(!0),T(null);try{let t=await tY(c,e);E(!1),M(""),await z(t)}catch(e){T(e instanceof Error?e.message:String(e))}finally{L(!1)}}},F=g.trim()!==c,D=!!c&&!F&&!i&&!S,B=!!h||/^[a-zA-Z]:[\\/]?$/.test(c);return l?(0,m.createPortal)((0,d.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":o("directoryPicker.selectDirectory"),onPointerDown:e=>{A.current=e.target===e.currentTarget},onClick:e=>{let n=A.current;A.current=!1,n&&e.target===e.currentTarget&&!i&&t()},onPointerCancel:()=>{A.current=!1},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.preventDefault(),i||t()))},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,d.jsxs)("div",{className:"directory-picker-panel",style:{...tU,position:"relative",width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{minWidth:0,flex:1},children:(0,d.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:o("directoryPicker.selectDirectory")})}),(0,d.jsx)("button",{type:"button",onClick:t,disabled:i,title:o("i18n.close"),"aria-label":o("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:i?"default":"pointer",opacity:i?.5:1},children:"\xd7"})]}),(0,d.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=g.trim();t&&z(t)},style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void z(h??void 0),disabled:S||!B,title:o("directoryPicker.goToParent"),"aria-label":o("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:B?"pointer":"default",opacity:B?1:.45},children:(0,d.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,d.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,d.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:o("directoryPicker.directoryPath")}),(0,d.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:g,placeholder:"/path/to/project or ~/project",autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:e=>{x(e.target.value),k(null)},style:{...tq,minWidth:0,flex:1}}),(0,d.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:S||!g.trim(),title:o("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:S||!g.trim()?"default":"pointer",opacity:S||!g.trim()?.6:1},children:o("directoryPicker.go")})]}),(0,d.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[S?(0,d.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:o("directoryPicker.loadingDirectories")}):null!==y?(0,d.jsx)(d.Fragment,{children:y.length>0?y.map(e=>(0,d.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.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,d.jsx)(tX,{}),(0,d.jsx)("span",{children:e.name})]},e.path)):(0,d.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:o("directoryPicker.noDrives")})}):v.length>0?v.map(e=>(0,d.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.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,d.jsx)(tG,{}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,d.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:o("directoryPicker.noSubdirectories")}),(j||s)&&(0,d.jsx)("div",{style:{padding:"8px",color:"#dc2626",fontSize:11},children:j??s})]}),(0,d.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,d.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>{E(!0),T(null)},disabled:!D,style:{...tZ,marginRight:"auto",opacity:D?1:.6,cursor:D?"pointer":"default"},children:o("directoryPicker.newDirectory")}),(0,d.jsx)("button",{className:"directory-picker-action",type:"button",onClick:t,disabled:i,style:{...tZ,cursor:i?"default":"pointer"},children:o("i18n.cancel")}),(0,d.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>n(c),disabled:!D,title:o(F?"directoryPicker.openBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{...tV,opacity:D?1:.6,cursor:D?"pointer":"default"},children:o(i?"i18n.checking":"directoryPicker.selectThisFolder")})]}),N&&(0,d.jsx)("div",{style:{position:"absolute",inset:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:12,background:"rgba(0,0,0,0.35)"},onPointerDown:e=>{P.current=e.target===e.currentTarget},onClick:e=>{let t=P.current;P.current=!1,t&&e.target===e.currentTarget&&W()},onPointerCancel:()=>{P.current=!1},onKeyDown:e=>{e.stopPropagation(),"Escape"===e.key&&W()},children:(0,d.jsxs)("form",{role:"dialog","aria-modal":"true","aria-label":o("directoryPicker.createDirectory"),onSubmit:e=>{e.preventDefault(),O()},style:{...tU,width:400,maxWidth:"100%"},children:[(0,d.jsx)("div",{style:{padding:"12px 18px",borderBottom:"1px solid var(--border)",color:"var(--text)",fontSize:15,fontWeight:700},children:o("directoryPicker.createDirectory")}),(0,d.jsxs)("div",{style:{padding:"12px 18px"},children:[(0,d.jsx)("label",{htmlFor:"new-directory-name",style:{display:"block",marginBottom:6,color:"var(--text-muted)",fontSize:11},children:o("directoryPicker.directoryName")}),(0,d.jsx)("input",{id:"new-directory-name",value:$,autoFocus:!0,autoComplete:"off",spellCheck:!1,placeholder:o("directoryPicker.directoryNamePlaceholder"),onChange:e=>{M(e.target.value),T(null)},disabled:R,className:"directory-picker-path",style:{...tq,width:"100%",boxSizing:"border-box"}}),I&&(0,d.jsx)("div",{style:{marginTop:7,color:"#dc2626",fontSize:11,lineHeight:1.35},children:I}),(0,d.jsxs)("div",{style:{display:"flex",gap:6,marginTop:10},children:[(0,d.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:R||!$.trim(),style:{...tV,flex:1,opacity:R?.65:1,cursor:R||!$.trim()?"default":"pointer"},children:o(R?"directoryPicker.creating":"directoryPicker.create")}),(0,d.jsx)("button",{className:"directory-picker-action",type:"button",onClick:W,disabled:R,style:{...tZ,flex:1,cursor:R?"default":"pointer"},children:o("i18n.cancel")})]})]})]})})]})}),l):null}function t0(e){let{strokeWidth:t=1.7,...n}=e;return(0,d.jsxs)(t1,{...n,strokeWidth:t,children:[(0,d.jsx)("path",{d:"M12 2v2"}),(0,d.jsx)("rect",{x:"6.5",y:"4",width:"11",height:"8",rx:"2.5"}),(0,d.jsx)("path",{d:"M10 7.5v1M14 7.5v1M12 12v3M5 17v-1a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v1"}),(0,d.jsx)("rect",{x:"2.5",y:"17",width:"5",height:"4.5",rx:"1.25"}),(0,d.jsx)("rect",{x:"16.5",y:"17",width:"5",height:"4.5",rx:"1.25"})]})}function t1(e){let{size:t=13,className:n,label:r,strokeWidth:i=2,children:s}=e;return(0,d.jsx)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:i,strokeLinecap:"round",strokeLinejoin:"round",className:n,...r?{role:"img","aria-label":r}:{"aria-hidden":!0},children:s})}function t2(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})}function t4(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("circle",{cx:"5",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"19",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"})]})}function t8(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"5",rx:"1"}),(0,d.jsx)("path",{d:"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9"}),(0,d.jsx)("path",{d:"M10 13h4"})]})}function t3(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]})}function t6(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.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 t5(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M12 17v5"}),(0,d.jsx)("path",{d:"M15 9.3V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8.5"}),(0,d.jsx)("path",{d:"m2 2 20 20"}),(0,d.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 t9(e){let{strokeWidth:t,...n}=e;return(0,d.jsx)(t1,{...n,strokeWidth:t,children:(0,d.jsx)("path",{d:"m9 6 6 6-6 6"})})}function t7(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}function ne(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("circle",{cx:"6",cy:"5",r:"2.5"}),(0,d.jsx)("circle",{cx:"18",cy:"5",r:"2.5"}),(0,d.jsx)("circle",{cx:"12",cy:"19",r:"2.5"}),(0,d.jsx)("path",{d:"M6 7.5v1.5a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V7.5"}),(0,d.jsx)("path",{d:"M12 12v4.5"})]})}function nt(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M14 4h6v6"}),(0,d.jsx)("path",{d:"M20 4 11 13"}),(0,d.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]})}function nn(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M3 6h18"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]})}function nr(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("path",{d:"M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"})})}function ni(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4.5",fill:"currentColor",stroke:"none"})})}function ns(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4.5"})})}function no(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}function nl(e){return(0,d.jsx)(t1,{...e,children:(0,d.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}function na(e){let{open:t,...n}=e;return(0,d.jsxs)(t1,{...n,strokeWidth:1.7,children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,d.jsx)("path",{d:"M9 4v16"}),(0,d.jsx)("path",{d:t?"m16 9-3 3 3 3":"m13 9 3 3-3 3"})]})}function nc(e){let{open:t=!1,...n}=e;return(0,d.jsx)(t1,{...n,children:(0,d.jsx)("path",{d:t?"M6 14l1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.5 6a2 2 0 0 1-1.94 1.5H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4l2 2h7a2 2 0 0 1 2 2v2":"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 nd(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M12 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6"}),(0,d.jsx)("path",{d:"m16 3 5 5M10 14l1-4L18 3a2.12 2.12 0 0 1 3 3l-7 7Z"})]})}function nu(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.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,d.jsx)("path",{d:"M12 11v5M9.5 13.5h5"})]})}function np(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,d.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]})}function nh(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,d.jsx)("path",{d:"m20 20-4-4"})]})}function nm(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("path",{d:"m17 8-5-5-5 5"}),(0,d.jsx)("path",{d:"M12 3v12"})]})}function nf(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]})}function ng(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,d.jsx)("path",{d:"M3 12h6M15 12h6"})]})}function nx(e){return(0,d.jsxs)(t1,{...e,children:[(0,d.jsx)("path",{d:"M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function nv(e){return(0,d.jsx)(t1,{...e,children:(0,d.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 nb(e){let{className:t,...n}=e;return(0,d.jsx)(t1,{...n,strokeWidth:2.8,className:t?`sidebar-spin ${t}`:"sidebar-spin",children:(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4"})})}var ny=n(77476),nw=n.n(ny);function nj(e){let{projects:t,initialPath:n,onCancel:r,onCreate:i}=e,{t:s}=(0,tw.s)(),o=(0,u.useId)(),l=(0,u.useId)(),a=(0,u.useId)(),c=(0,u.useRef)(null),p=(0,u.useRef)(null),h=(0,u.useRef)(null),[f,g]=(0,u.useState)(null),[x,v]=(0,u.useState)(""),[b,y]=(0,u.useState)(""),[w,j]=(0,u.useState)(!1),[k,S]=(0,u.useState)(!1),[C,N]=(0,u.useState)(null),E=(0,u.useRef)(!1),$=(0,u.useRef)(!1),M=(0,u.useRef)({browsing:w,onCancel:r});function I(e){if(y(e),!E.current){let n=t.find(t=>t.root===e);v(n?.alias??ei(e))}N(null),j(!1),requestAnimationFrame(()=>h.current?.focus({preventScroll:!0}))}async function T(){if(!$.current){$.current=!0,S(!0),N(null);try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();if(!e.ok||t.error||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);I(t.cwd)}catch(e){N(e instanceof Error?e.message:String(e))}finally{$.current=!1,S(!1)}}}async function R(){let e=L(x);if(!$.current&&e&&b){$.current=!0,S(!0),N(null);try{let t=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:b})}),n=await t.json();if(!t.ok||n.error||!n.cwd||!n.projectRoot||!n.projectKey)throw Error(n.error??`HTTP ${t.status}`);await i({cwd:n.cwd,projectRoot:n.projectRoot,projectKey:n.projectKey},e)||N(s("projectCreate.saveFailed"))}catch(e){N(e instanceof Error?e.message:String(e))}finally{$.current=!1,S(!1)}}}M.current={browsing:w,onCancel:r},(0,u.useEffect)(()=>{g(document.body)},[]),(0,u.useLayoutEffect)(()=>{if(!f)return;let e=e9(document,c.current);p.current?.focus({preventScroll:!0});let t=e=>{M.current.browsing||"Escape"!==e.key||(e.stopPropagation(),!e.isComposing&&229!==e.keyCode&&(e.preventDefault(),$.current||M.current.onCancel()))};return document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("keydown",t,!0),e()}},[f]);let A=!!L(x);return f?(0,m.createPortal)((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:nw().backdrop,onClick:e=>{e.target!==e.currentTarget||$.current||r()},children:(0,d.jsxs)("div",{ref:c,className:nw().dialog,role:"dialog","aria-modal":"true","aria-labelledby":o,"aria-busy":k,tabIndex:-1,inert:w,"aria-hidden":w||void 0,onKeyDown:e=>{if("Tab"!==e.key)return;let t=Array.from(e.currentTarget.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), summary, [tabindex="0"]')).filter(e=>e.getClientRects().length>0),n=t[0],r=t[t.length-1];n?e.shiftKey&&(document.activeElement===n||document.activeElement===c.current)?(e.preventDefault(),r.focus()):e.shiftKey||document.activeElement!==r||(e.preventDefault(),n.focus()):e.preventDefault()},children:[(0,d.jsxs)("header",{className:nw().header,children:[(0,d.jsx)("h2",{id:o,children:s("projectCreate.title")}),(0,d.jsx)("button",{className:nw().close,type:"button",onClick:r,disabled:k,"aria-label":s("i18n.close"),children:(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m6 6 12 12M18 6 6 18"})})})]}),(0,d.jsxs)("form",{onSubmit:e=>{e.preventDefault(),R()},children:[(0,d.jsxs)("label",{className:nw().nameField,htmlFor:l,children:[(0,d.jsx)("span",{className:nw().nameIcon,children:(0,d.jsx)(nc,{size:23})}),(0,d.jsx)("input",{ref:p,id:l,value:x,placeholder:s("projectCreate.name"),"aria-label":s("projectCreate.name"),disabled:k,autoComplete:"off",onChange:e=>{E.current=!0,v(e.target.value),N(null)}})]}),x.trim()&&!A&&(0,d.jsx)("p",{className:nw().error,role:"alert",children:s("projectCreate.invalidName",{max:80})}),(0,d.jsxs)("section",{className:nw().sources,"aria-labelledby":a,children:[(0,d.jsx)("h3",{id:a,children:s("projectCreate.sourceFolder")}),(0,d.jsx)("div",{className:`${nw().sourceCard}${b?` ${nw().hasFolder}`:""}`,children:b?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:nw().folderRow,children:[(0,d.jsx)(nc,{size:25}),(0,d.jsxs)("div",{className:nw().folderText,children:[(0,d.jsx)("strong",{children:ei(b)}),(0,d.jsx)("span",{children:b})]}),(0,d.jsx)("button",{type:"button",className:nw().close,disabled:k,"aria-label":s("projectCreate.removeFolder"),onClick:()=>{y(""),N(null),E.current||v("")},children:"\xd7"})]}),(0,d.jsxs)("button",{ref:h,className:nw().add,type:"button",disabled:k,onClick:()=>j(!0),children:[(0,d.jsx)(nc,{size:18}),s("projectCreate.changeFolder")]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{children:s("projectCreate.addOnComputer")}),(0,d.jsxs)("button",{ref:h,className:nw().add,type:"button",disabled:k,onClick:()=>j(!0),children:[(0,d.jsx)(nu,{size:21}),s("projectCreate.addFolder")]})]})}),(0,d.jsxs)("div",{className:nw().sourceOptions,children:[(0,d.jsx)("button",{type:"button",disabled:k,onClick:()=>void T(),children:s("sidebar.useDefaultDirectory")}),t.length>0&&(0,d.jsxs)("label",{className:nw().recent,children:[(0,d.jsx)(t2,{size:14}),(0,d.jsxs)("select",{"aria-label":s("projectCreate.existingFolder"),disabled:k,value:"",onChange:e=>I(e.target.value),children:[(0,d.jsx)("option",{value:"",disabled:!0,children:s("projectCreate.existingFolder")}),t.map(e=>(0,d.jsxs)("option",{value:e.root,children:[e.alias??ei(e.root)," — ",e.root]},e.key))]})]})]}),(0,d.jsx)("p",{className:nw().hint,children:s("projectCreate.folderHint")})]}),C&&(0,d.jsx)("p",{className:nw().error,role:"alert",children:C}),(0,d.jsxs)("footer",{className:nw().footer,children:[(0,d.jsx)("button",{className:nw().cancel,type:"button",disabled:k,onClick:r,children:s("i18n.cancel")}),(0,d.jsx)("button",{className:nw().submit,type:"submit",disabled:k||!b||!A,children:k?s("projectCreate.creating"):s("projectCreate.title")})]})]})]})}),w&&(0,d.jsx)(tQ,{initialPath:b||n,onSelect:I,onCancel:()=>{j(!1),requestAnimationFrame(()=>h.current?.focus({preventScroll:!0}))}})]}),f):null}function nk(e){let{onClick:t,title:n}=e;return(0,d.jsx)("button",{type:"button",onClick:t,title:n,"aria-label":n,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:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,d.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,d.jsx)("path",{d:"m6 6 12 12"}),(0,d.jsx)("path",{d:"m18 6-12 12"})]})})}let nS="/icons/catppuccin";function nC(e){let{name:t,size:n=14}=e,r={width:n,height:n,"--catppuccin-icon-light":`url(${nS}/latte/${t}.svg)`,"--catppuccin-icon-dark":`url(${nS}/mocha/${t}.svg)`};return(0,d.jsx)("span",{"aria-hidden":"true",className:"catppuccin-file-icon",style:r})}function nN(e){let{size:t=14,open:n=!1}=e;return(0,d.jsx)(nC,{name:n?"_folder_open":"_folder",size:t})}function nE(e){let{size:t=14}=e;return(0,d.jsx)(nC,{name:"_file",size:t})}let n$={ts:"typescript",tsx:"typescript-react",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"javascript-react",py:"python",json:"json",jsonl:"json",css:"css",less:"css",scss:"sass",html:"html",htm:"html",md:"markdown",mdx:"markdown",yaml:"yaml",yml:"yaml",toml:"toml",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",rs:"rust",go:"go",sql:"database",graphql:"graphql",gql:"graphql",tf:"terraform",hcl:"terraform",docx:"ms-word",pdf:"pdf",lock:"lock"};function nM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:14,n=e.toLowerCase(),r="dockerfile"===n||n.startsWith("dockerfile.")?"docker":".env"===n||n.startsWith(".env.")?"env":[".gitignore",".gitattributes",".gitmodules"].includes(n)?"git":"package-lock.json"===n?"npm-lock":"bun.lock"===n?"bun-lock":["next.config.js","next.config.mjs","next.config.cjs","next.config.ts"].includes(n)?"next":[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(n)?"eslint":["yarn.lock","pnpm-lock.yaml","cargo.lock"].includes(n)?"lock":n.endsWith(".config.ts")||n.endsWith(".config.js")||n.endsWith(".config.mjs")||n.endsWith(".config.cjs")?"config":void 0;if(r)return(0,d.jsx)(nC,{name:r,size:t});let i=n$[n.split(".").pop()??""];return i?(0,d.jsx)(nC,{name:i,size:t}):(0,d.jsx)(nE,{size:t})}function nI(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let n=/(?:^|\s)@([^\s"]*)$/.exec(e);return n?{start:e.length-(n[1].length+1),query:n[1],quoted:!1}:null}function nT(e){let t=0;for(let n=0;n<e.length;n++)"/"===e[n]&&t++;return t}function nR(e,t){if(!e)return!0;let n=0;for(let r=0;r<t.length&&n<e.length;r++)t[r]===e[n]&&n++;return n===e.length}function nL(e,t){let n=t?`${e}/`:e;return n.includes(" ")?`@"${n}" `:`@${n} `}function nA(e,t,n,r){return new Promise((i,s)=>{let o=new FormData;t.forEach(e=>o.append("files",e,e.name));let l=new XMLHttpRequest;l.open("POST",`/api/files/${ey(e)}?type=upload&conflict=${n}`),l.upload.onprogress=e=>{r&&e.lengthComputable&&e.total>0&&r(Math.round(e.loaded/e.total*100))},l.onerror=()=>s(Error("Network error while uploading files")),l.onabort=()=>s(Error("Upload cancelled")),l.onload=()=>{let e={};try{e=JSON.parse(l.responseText)}catch{l.responseText&&(e.error=l.responseText)}i({status:l.status,data:e})},l.send(o)})}function nP(e){let t=[],n=new Map;for(let r of e){let e=r.split("/"),i=t,s="";for(let t=0;t<e.length;t++){s=s?`${s}/${e[t]}`:e[t];let r=n.get(s);r||(r={name:e[t],path:s,isDir:t<e.length-1,children:[]},n.set(s,r),i.push(r)),i=r.children}}let r=e=>{e.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)),e.forEach(e=>r(e.children))};return r(t),t}function nz(e){return Array.from(e.dataTransfer.items).some(e=>"file"===e.kind)}function nW(e){let t=[];for(let n of Array.from(e.items)){if("file"!==n.kind)continue;let e=n.webkitGetAsEntry?.();if(e?.isDirectory){t.push({kind:"folder",name:e.name});continue}let r=n.getAsFile();r&&t.push({kind:"file",file:r})}return t.length>0?t:Array.from(e.files).map(e=>({kind:"file",file:e}))}let nO=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=new Map;return{save(n,r){if(t.delete(n),0!==r.size)for(let i of(t.set(n,new Set(r)),t.keys())){if(t.size<=e)break;t.delete(i)}},restore:e=>new Set(t.get(e))}}();async function nF(e,t){let n=`${t} (HTTP ${e.status})`;try{let t=await e.json();t.error&&(n=t.error)}catch{}return Error(n)}async function nD(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ey(e),r=await fetch(`/api/files/${n}?type=list${t?"&hidden=1":""}`);if(!r.ok)throw await nF(r,"Failed to load files");return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:eS(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir,outsideLinkTarget:t.outsideLinkTarget,outsideLinkEncloses:t.outsideLinkEncloses,hidden:t.hidden}))}async function nB(e,t){let n=await fetch(`/api/files/${ey(e)}?type=allow-link`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:t})});if(!n.ok)throw await nF(n,"Failed to allow the linked folder")}async function n_(e){let t=new URLSearchParams({cwd:e}),n=await fetch(`/api/git/status?${t.toString()}`);if(!n.ok)throw Error(`Failed to load Git status (HTTP ${n.status})`);return n.json()}let nH={modified:"files.modified",added:"files.added",deleted:"files.deleted",renamed:"files.renamed",untracked:"files.untracked",conflict:"files.conflict"},nU={modified:"#d6a84b",added:"#4ade80",deleted:"#f87171",renamed:"#60a5fa",untracked:"#4ade80",conflict:"#f87171"};function nq(e){let{status:t,t:n}=e;return(0,d.jsx)("span",{title:n(nH[t.status]),"aria-label":n(nH[t.status]),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:nU[t.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600},children:t.code})}function nK(e){let{size:t=11}=e;return(0,d.jsxs)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"})]})}function nV(e){let{size:t=11}=e;return(0,d.jsxs)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M15 3h6v6"}),(0,d.jsx)("path",{d:"M10 14 21 3"}),(0,d.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})}let nZ={ignored:"files.hiddenIgnored",excluded:"files.hiddenExcluded"};function nJ(e){let{node:t,depth:n,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:o,onToggleExpanded:l,refreshToken:a,highlightedPaths:c,gitStatusByPath:p,changedDirectoryPaths:h,showHidden:m=!1,parentHidden:f,dropTargetPath:g,onDropFiles:x,onDropTargetChange:v,t:b}=e,y=o.has(t.fullPath),w=t.hidden??f,j=t.isDir&&g===t.fullPath,k=c.has(t.fullPath),S=eb(t.fullPath),C=p.get(S),N=t.isDir&&(void 0!==C||h.has(S)),[E,$]=(0,u.useState)(t.children??[]),[M,I]=(0,u.useState)(t.loaded??!1),[T,R]=(0,u.useState)(!1),[L,A]=(0,u.useState)(null),[P,z]=(0,u.useState)(!1),[W,O]=(0,u.useState)(null),[F,D]=(0,u.useState)(!1),[B,_]=(0,u.useState)(null),H=t.outsideLinkTarget&&t.outsideLinkTarget!==W?t.outsideLinkTarget:null;(0,u.useEffect)(()=>{O(null),_(null)},[t.outsideLinkTarget]);let U=(0,u.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!M||e){R(!0),A(null);try{let e=await nD(t.fullPath,m);$(e),I(!0)}catch(e){A(e instanceof Error?e.message:String(e))}finally{R(!1)}}},[M,t.fullPath,m]),q=(0,u.useRef)(m);(0,u.useEffect)(()=>{q.current===m||(q.current=m,M&&(y&&!H?U(!0):I(!1)))},[m]),(0,u.useEffect)(()=>{t.isDir&&y&&!M&&!H&&U()},[]),(0,u.useEffect)(()=>{void 0!==a&&M&&!H&&(y?U(!0):I(!1))},[a]);let K=(0,u.useCallback)(()=>{if(t.isDir){let e=!y;l(t.fullPath,e),!e||M||H||U()}else i(t.fullPath,t.name)},[t.isDir,t.fullPath,t.name,M,y,H,U,i,l]),V=(0,u.useCallback)(async e=>{if((e.stopPropagation(),H)&&(!t.outsideLinkEncloses||window.confirm(b("files.allowEnclosingLinkConfirm",{target:H})))){D(!0),_(null);try{await nB(t.fullPath,H),O(H),await U(!0)}catch(e){_(e instanceof Error?e.message:String(e))}finally{D(!1)}}},[t.fullPath,t.outsideLinkEncloses,H,U,b]);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{onClick:K,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),onDragOver:t.isDir?e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect="copy",v?.(t.fullPath))}:void 0,onDrop:t.isDir?e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),v?.(null),x?.(t.fullPath,nW(e.dataTransfer)))}:void 0,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*n,paddingRight:8,height:"var(--file-row-height)",cursor:"pointer",background:j?"color-mix(in srgb, var(--accent) 16%, transparent)":P?"var(--bg-hover)":"transparent",outline:j?"1px dashed var(--accent)":"none",outlineOffset:-1,borderRadius:4,userSelect:"none"},children:[t.isDir&&(0,d.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:y?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}),!t.isDir&&(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:w?.55:1},children:t.isDir?(0,d.jsx)(nN,{size:14,open:y}):nM(t.name,14)}),(0,d.jsx)("span",{className:"file-tree-name","data-hidden-reason":w,style:{fontSize:12,color:w?"var(--text-muted)":"var(--text)",opacity:w?.55:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:w?`${t.fullPath}
|
|
2
|
+
${b(nZ[w])}`:t.fullPath,children:t.name}),!P&&H&&(0,d.jsx)("span",{title:b("files.outsideLink",{target:H}),"aria-label":b("files.outsideLink",{target:H}),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)"},children:(0,d.jsx)(nV,{})}),k&&(0,d.jsx)("span",{title:b("files.newlyUploaded"),"aria-label":b("files.newlyUploaded"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#3b82f6"}})}),!P&&!t.isDir&&C&&(0,d.jsx)(nq,{status:C,t:b}),!P&&N&&(0,d.jsx)("span",{title:b("files.containsChangedFiles"),"aria-label":b("files.containsChangedFiles"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,d.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#d6a84b"}})}),T&&(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",children:(0,d.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})}),s&&P&&(0,d.jsxs)("button",{onClick:e=>{e.stopPropagation(),s(ek(t.fullPath,r),t.isDir)},title:b("files.insertPath"),style:{position:"absolute",right:t.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:"calc(var(--file-row-height) - 4px)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,d.jsx)(nK,{}),b("files.mention")]}),P&&!t.isDir&&(0,d.jsx)("a",{href:`/api/files/${ey(t.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:b("files.download"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:"calc(var(--file-row-height) - 4px)",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,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,d.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})]}),t.isDir&&y&&H&&(0,d.jsxs)("div",{style:{paddingLeft:8+(n+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,d.jsx)("span",{style:{wordBreak:"break-all"},children:b("files.outsideLink",{target:H})}),t.outsideLinkEncloses&&(0,d.jsx)("span",{style:{color:"#f59e0b"},children:b("files.outsideLinkEncloses")}),(0,d.jsx)("button",{type:"button",onClick:V,disabled:F,title:b("files.allowOutsideLinkTitle",{target:H}),style:{height:"calc(var(--file-row-height) - 4px)",padding:"0 8px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:F?"default":"pointer",opacity:F?.6:1,fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:b("files.allowOutsideLink")}),B&&(0,d.jsx)("span",{role:"alert",style:{color:"#f87171",wordBreak:"break-word"},children:B})]}),t.isDir&&y&&!H&&(0,d.jsxs)("div",{children:[E.map(e=>(0,d.jsx)(nJ,{node:e,depth:n+1,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:o,onToggleExpanded:l,refreshToken:a,highlightedPaths:c,gitStatusByPath:p,changedDirectoryPaths:h,showHidden:m,parentHidden:w,dropTargetPath:g,onDropFiles:x,onDropTargetChange:v,t:b},e.fullPath)),0===E.length&&M&&!L&&(0,d.jsx)("div",{style:{paddingLeft:8+(n+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"}),L&&(0,d.jsx)("div",{role:"alert",style:{paddingLeft:8+(n+1)*14,paddingRight:8,paddingTop:3,paddingBottom:3,fontSize:11,color:"#f87171",wordBreak:"break-word"},children:L})]})]})}function nY(e){let{status:t,cwd:n,onOpenFile:r,onAtMention:i,t:s,depth:o=0,treeMode:l=!1}=e,[a,c]=(0,u.useState)(!1),p=ew(t.filePath),h=ek(t.filePath,n),m=h.lastIndexOf("/"),f=!l&&m>=0?h.slice(0,m+1):"",g=l?p:m>=0?h.slice(m+1):h;return(0,d.jsxs)("div",{onClick:()=>r(t.filePath,p,{modeHint:"diff"}),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),title:t.filePath,style:{display:"flex",alignItems:"center",gap:l?4:6,paddingLeft:l?8+14*o:10,paddingRight:8,height:"var(--file-row-height)",cursor:"pointer",background:a?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",position:"relative"},children:[(0,d.jsx)(nq,{status:t,t:s}),l&&(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:nM(p,13)}),(0,d.jsxs)("span",{title:t.filePath,style:{fontSize:12,color:"var(--text)",display:"flex",alignItems:"center",minWidth:0,flex:1},children:[f&&(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,color:"var(--text-dim)"},children:f}),(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:+!!l,maxWidth:"100%"},children:g})]}),i&&a&&(0,d.jsxs)("button",{onClick:e=>{e.stopPropagation(),i(h,!1)},title:s("files.insertPath"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:"calc(var(--file-row-height) - 4px)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,d.jsx)(nK,{}),s("files.mention")]})]})}function nG(e){let{node:t,depth:n,open:r,onToggle:i}=e,[s,o]=(0,u.useState)(!1);return(0,d.jsxs)("div",{onClick:()=>i(t.path,!r),onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),title:t.path,style:{display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*n,paddingRight:8,height:"var(--file-row-height)",cursor:"pointer",background:s?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none"},children:[(0,d.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:r?"rotate(90deg)":"none",transition:"transform 0.1s"},"aria-hidden":"true",children:(0,d.jsx)("polyline",{points:"3 2 7 5 3 8"})}),(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:(0,d.jsx)(nN,{size:14,open:r})}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t.name})]})}function nX(e){let{nodes:t,depth:n,cwd:r,statusByPath:i,collapsedPaths:s,onToggleExpanded:o,onOpenFile:l,onAtMention:a,t:c}=e;return(0,d.jsx)(d.Fragment,{children:t.map(e=>{if(e.isDir){let t=!s.has(e.path);return(0,d.jsxs)("div",{children:[(0,d.jsx)(nG,{node:e,depth:n,open:t,onToggle:o}),t&&(0,d.jsx)(nX,{nodes:e.children,depth:n+1,cwd:r,statusByPath:i,collapsedPaths:s,onToggleExpanded:o,onOpenFile:l,onAtMention:a,t:c})]},`dir:${e.path}`)}let t=i.get(e.path);return t?(0,d.jsx)(nY,{status:t,cwd:r,onOpenFile:l,onAtMention:a,t:c,depth:n,treeMode:!0},t.filePath):null})})}function nQ(e){let{mode:t}=e;return"tree"===t?(0,d.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,d.jsx)("path",{d:"M8 6h13"}),(0,d.jsx)("path",{d:"M8 12h13"}),(0,d.jsx)("path",{d:"M8 18h13"}),(0,d.jsx)("path",{d:"M3 6h.01"}),(0,d.jsx)("path",{d:"M3 12h.01"}),(0,d.jsx)("path",{d:"M3 18h.01"})]}):(0,d.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,d.jsx)("path",{d:"M6 3v12"}),(0,d.jsx)("path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"}),(0,d.jsx)("path",{d:"M6 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"}),(0,d.jsx)("path",{d:"M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"}),(0,d.jsx)("path",{d:"M9 12h6"}),(0,d.jsx)("path",{d:"M12 12v3"})]})}let n0=(0,u.forwardRef)(function(e,t){let{cwd:n,onOpenFile:r,refreshKey:i,onAtMention:s,onAtMentions:o,onUploadBusyChange:l,changesCollapsed:a,onChangesCountChange:c,fileSearchOpen:p=!1,searchAlwaysVisible:h=!1,onFileSearchOpenChange:m,showHidden:f=!1}=e,{t:g}=(0,tw.s)(),[x,v]=(0,u.useState)([]),[b,y]=(0,u.useState)(!0),[w,j]=(0,u.useState)(null),[k,S]=(0,u.useState)(new Set),[C,N]=(0,u.useState)(0),[E,$]=(0,u.useState)(new Set),[M,I]=(0,u.useState)([]),[T,R]=(0,u.useState)({additions:0,deletions:0}),[L,A]=(0,u.useState)("list"),[P,z]=(0,u.useState)(()=>new Set),[W,O]=(0,u.useState)("idle"),[F,D]=(0,u.useState)(0),[B,_]=(0,u.useState)(null),[H,U]=(0,u.useState)(null),[q,K]=(0,u.useState)(null),[V,Z]=(0,u.useState)(""),[J,Y]=(0,u.useState)([]),[G,X]=(0,u.useState)(!1),[Q,ee]=(0,u.useState)(!1),[et,en]=(0,u.useState)(new Set),er=(0,u.useRef)(null),[ei,es]=(0,u.useState)(!1),[eo,el]=(0,u.useState)(null),ea=(0,u.useRef)(0),ec=(0,u.useRef)(null),ed=(0,u.useRef)(k),eu=(0,u.useRef)(null),ep=`${i??0}:${C}`,eh="idle"!==W,em=V.trim().length>0,ef=p||h;(0,u.useEffect)(()=>{if(!ef)return;let e=V.trim();if(!e){Y([]),X(!1),ee(!1);return}let t=new AbortController;X(!0),ee(!1);let r=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(n)}&q=${encodeURIComponent(e)}`,{signal:t.signal}).then(e=>e.ok?e.json():Promise.reject(Error("Search failed"))).then(e=>Y((e.matches??[]).filter(e=>!e.isDir).map(e=>e.path))).catch(()=>{t.signal.aborted||(Y([]),ee(!0))}).finally(()=>{t.signal.aborted||X(!1)})},150);return()=>{clearTimeout(r),t.abort()}},[n,ef,V]),(0,u.useEffect)(()=>{p&&er.current?.focus()},[p]),(0,u.useEffect)(()=>{if(0===J.length)return;let e=new Set;for(let t of J){let r=t.split("/"),i="";for(let t=0;t<r.length-1;t++)i=i?`${i}/${r[t]}`:r[t],e.add(eS(n,i))}en(t=>{let n=!1,r=new Set(t);for(let t of e)r.has(t)||(r.add(t),n=!0);return n?r:t})},[n,J]);let eg=(0,u.useMemo)(()=>{let e=t=>({name:t.name,fullPath:eS(n,t.path),isDir:t.isDir,size:0,children:t.children.map(e),loaded:!0});return nP(J).map(e)},[n,J]),ex=(0,u.useMemo)(()=>new Map(M.map(e=>[eb(e.filePath),e])),[M]),ev=(0,u.useMemo)(()=>{let e=new Set,t=eb(n).replace(/\/$/,"");for(let n of M){let r=ej(eb(n.filePath));for(;(r===t||r.startsWith(`${t}/`))&&(e.add(r),r!==t);){let e=ej(r);if(e===r)break;r=e}}return e},[n,M]),eC=(0,u.useMemo)(()=>new Map(M.map(e=>[eb(ek(e.filePath,n)).replace(/^\/+/,""),e])),[n,M]),eN=(0,u.useMemo)(()=>nP([...eC.keys()]),[eC]),eE=(0,u.useCallback)((e,t)=>{S(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),e$=(0,u.useCallback)((e,t)=>{let n=e.uploaded??[];U({directory:t,uploaded:n,skipped:e.skipped??[],errors:e.errors??[]}),n.length>0&&($(new Set(n.map(e=>eS(t,e)))),N(e=>e+1))},[]),eM=(0,u.useCallback)(async(e,t,n)=>{K(null),_(null),D(0),O("uploading");try{let{status:r,data:i}=await nA(n,e,t,D);if(409===r&&i.conflicts?.length)return void K({directory:n,files:e,conflicts:i.conflicts,nonReplaceable:i.nonReplaceable??[]});if(r<200||r>=300)throw Error(i.error??`Upload failed (HTTP ${r})`);D(100),e$(i,n)}catch(e){_(e instanceof Error?e.message:String(e))}finally{O("idle")}},[e$]),eI=(0,u.useCallback)(async(e,t)=>{if(0!==e.length&&!eh){U(null),$(new Set),K(null),_(null),D(0),O("checking");try{let n=await fetch(`/api/files/${ey(t)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:e.map(e=>e.name)})}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error??`Upload check failed (HTTP ${n.status})`);if(r.conflicts?.length)return void K({directory:t,files:e,conflicts:r.conflicts,nonReplaceable:r.nonReplaceable??[]});await eM(e,"error",t)}catch(e){_(e instanceof Error?e.message:String(e))}finally{O("idle")}}},[eM,eh]),eT=(0,u.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",eI(t,n)},[n,eI]);(0,u.useImperativeHandle)(t,()=>({openUploadPicker(){eh||eu.current?.click()}}),[eh]);let eR=(0,u.useCallback)(()=>{ea.current=0,es(!1),el(null)},[]),eL=(0,u.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),ea.current+=1,es(!0))},[]),eA=(0,u.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",el(e=>null===e?e:null))},[]),eP=(0,u.useCallback)(()=>{ea.current<=0||(ea.current-=1,0===ea.current&&(ea.current=0,es(!1),el(null)))},[]),ez=(0,u.useCallback)((e,t)=>{eR();let n=t.flatMap(e=>"file"===e.kind?[e.file]:[]),r=t.flatMap(e=>"folder"===e.kind?[e.name]:[]);eI(n,e).then(()=>{if(0===r.length)return;let e=g("chat.dropFoldersUnsupported",{names:r.join(", ")});_(t=>t&&n.length>0?t:e)})},[eI,eR,g]),eW=(0,u.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),ez(eo??n,nW(e.dataTransfer)))},[n,eo,ez]),eF=(0,u.useCallback)(e=>{el(t=>t===e?t:e)},[]);(0,u.useEffect)(()=>{l?.(eh)},[l,eh]),(0,u.useEffect)(()=>()=>l?.(!1),[l]),(0,u.useEffect)(()=>{ed.current=k},[k]),(0,u.useEffect)(()=>()=>{null!==ec.current&&nO.save(ec.current,ed.current)},[]),(0,u.useEffect)(()=>{let e=ec.current,t=e!==n;if(ec.current=n,t){null!==e&&nO.save(e,ed.current);let t=nO.restore(n);ed.current=t,S(t),$(new Set),U(null),K(null),_(null)}y(t),j(null);let r=!1;return nD(n,f).then(e=>{r||v(e)}).catch(e=>{r||j(e instanceof Error?e.message:String(e))}).finally(()=>{r||y(!1)}),()=>{r=!0}},[n,i,C,f]),(0,u.useEffect)(()=>{let e=()=>N(e=>e+1);return window.addEventListener("focus",e),()=>window.removeEventListener("focus",e)},[]),(0,u.useEffect)(()=>{let e=!1;return n_(n).then(t=>{e||(I(t.isGitRepository?t.files:[]),R(t.isGitRepository?{additions:t.additions,deletions:t.deletions}:{additions:0,deletions:0}))}).catch(()=>{e||(I([]),R({additions:0,deletions:0}))}),()=>{e=!0}},[n,i,C]),(0,u.useEffect)(()=>{c?.(M.length)},[M,c]),(0,u.useEffect)(()=>{A(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return"list";try{return"tree"===e.getItem(eO)?"tree":"list"}catch{return"list"}}())},[]);let eD=(0,u.useCallback)((e,t)=>{z(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})},[]),e_=(0,u.useCallback)(()=>{A(e=>{let t="list"===e?"tree":"list";return!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eO,e)}catch{}}(t),t})},[]),eH=eh||null!==q||null!==B||null!==H,eU=(0,u.useCallback)(()=>{H&&0!==H.uploaded.length&&o?.(H.uploaded.map(e=>ek(eS(H.directory,e),n)))},[n,o,H]);return(0,d.jsxs)("div",{style:{minHeight:"100%"},onDragEnter:eL,onDragOver:eA,onDragLeave:eP,onDrop:eW,children:[(0,d.jsx)("input",{ref:eu,type:"file",multiple:!0,hidden:!0,onChange:eT}),eH&&(0,d.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[eh&&(0,d.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===W?g("files.checking"):g("files.uploading",{progress:F}),children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===W?(0,d.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,d.jsx)("path",{d:"M21 12a9 9 0 1 1-5.7-8.4"})}):(0,d.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,d.jsx)("path",{d:"M12 16V4"}),(0,d.jsx)("path",{d:"m7 9 5-5 5 5"}),(0,d.jsx)("path",{d:"M5 20h14"})]}),"uploading"===W&&(0,d.jsxs)("span",{style:{fontSize:10},children:[F,"%"]})]}),"uploading"===W&&(0,d.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,d.jsx)("div",{style:{width:`${F}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),q&&(0,d.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,d.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:g("files.conflictSummary",{count:q.conflicts.length,countSuffix:1===q.conflicts.length?"":"s",files:q.conflicts.join(", ")})}),q.nonReplaceable.length>0&&(0,d.jsx)("div",{style:{marginTop:3,fontSize:10,color:"#f59e0b",lineHeight:1.35,overflowWrap:"anywhere"},children:g("files.cannotReplace",{files:q.nonReplaceable.join(", ")})}),(0,d.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,d.jsx)("button",{type:"button",onClick:()=>void eM(q.files,"overwrite",q.directory),style:{height:22,padding:"0 7px",border:"1px solid #ef4444",borderRadius:4,background:"transparent",color:"#ef4444",cursor:"pointer",fontSize:10},children:g("files.replace")}),(0,d.jsx)("button",{type:"button",onClick:()=>void eM(q.files,"skip",q.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:g("files.skipExisting")}),(0,d.jsx)("button",{type:"button",onClick:()=>K(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:g("files.cancel")})]})]}),B&&(0,d.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"#f87171"},children:[(0,d.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:B}),(0,d.jsx)(nk,{onClick:()=>_(null),title:g("files.dismissError")})]}),H&&(0,d.jsxs)("div",{"aria-live":"polite",children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,d.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[H.uploaded.length>0&&(0,d.jsxs)("span",{title:g("files.uploadedCount",{count:H.uploaded.length}),"aria-label":g("files.uploadedCount",{count:H.uploaded.length}),style:{display:"flex",alignItems:"center",gap:3,color:"#22c55e"},children:[(0,d.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,d.jsx)("path",{d:"m5 12 4 4L19 6"})}),(0,d.jsx)("span",{children:H.uploaded.length})]}),H.skipped.length>0&&(0,d.jsxs)("span",{title:g("files.skippedCount",{count:H.skipped.length}),"aria-label":g("files.skippedCount",{count:H.skipped.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M8 12h8"})]}),(0,d.jsx)("span",{children:H.skipped.length})]}),H.errors.length>0&&(0,d.jsxs)("span",{title:g("files.failedCount",{count:H.errors.length}),"aria-label":g("files.failedCount",{count:H.errors.length}),style:{display:"flex",alignItems:"center",gap:3,color:"#f87171"},children:[(0,d.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,d.jsx)("path",{d:"M12 3 2.5 20h19L12 3Z"}),(0,d.jsx)("path",{d:"M12 9v4"}),(0,d.jsx)("path",{d:"M12 17h.01"})]}),(0,d.jsx)("span",{children:H.errors.length})]})]}),H.uploaded.length>0&&o&&(0,d.jsxs)("button",{type:"button",onClick:eU,title:1===H.uploaded.length?g("files.addUploadedFile"):g("files.addAllUploadedFiles"),"aria-label":1===H.uploaded.length?g("files.addUploadedFile"):g("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,d.jsx)(nK,{}),g("files.mention")]}),(0,d.jsx)(nk,{onClick:()=>U(null),title:g("files.dismissUploadResults")})]}),H.errors.map(e=>(0,d.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"#f87171"},children:[(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M12 8v5"}),(0,d.jsx)("path",{d:"M12 17h.01"})]}),(0,d.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),ef&&(0,d.jsxs)("div",{className:"file-explorer-search",style:{padding:"2px 8px 6px"},children:[(0,d.jsxs)("div",{style:{position:"relative"},children:[(0,d.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,d.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,d.jsx)("path",{d:"m20 20-4-4"})]}),(0,d.jsx)("input",{ref:er,className:"file-explorer-search-input",id:"file-search-input",value:V,onChange:e=>Z(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),h?Z(""):m?.(!1))},placeholder:g("sidebar.searchFilesPlaceholder"),"aria-label":g("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}}),V&&(0,d.jsx)("button",{type:"button",onClick:()=>Z(""),title:g("sidebar.clearSearch"),"aria-label":g("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:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-dim)"},children:(0,d.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,d.jsx)("path",{d:"M18 6 6 18"}),(0,d.jsx)("path",{d:"m6 6 12 12"})]})})]}),em&&(0,d.jsxs)("div",{style:{paddingTop:3},children:[G&&(0,d.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.searchingFiles")}),!G&&Q&&(0,d.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"#f87171"},children:g("i18n.networkError")}),!G&&!Q&&0===J.length&&(0,d.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.noMatchingFiles")}),!G&&!Q&&J.length>0&&(0,d.jsx)("div",{children:eg.map(e=>(0,d.jsx)(nJ,{node:e,depth:0,cwd:n,onOpenFile:r,onAtMention:s,expandedPaths:et,onToggleExpanded:(e,t)=>{en(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},highlightedPaths:E,gitStatusByPath:ex,changedDirectoryPaths:ev,dropTargetPath:eo,onDropFiles:ez,onDropTargetChange:eF,t:g},`${V}:${e.fullPath}`))})]})]}),!a&&M.length>0&&(0,d.jsxs)("div",{style:{padding:"0 4px 2px"},children:[(0,d.jsxs)("div",{"aria-label":g("files.changeStats",{count:M.length,additions:T.additions,deletions:T.deletions}),style:{display:"flex",alignItems:"center",gap:6,height:24,padding:"0 6px 0 10px",fontSize:12},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)"},children:g("files.changedCount",{count:M.length})}),(0,d.jsxs)("span",{style:{color:nU.added,fontFamily:"var(--font-mono)"},children:["+",T.additions]}),(0,d.jsxs)("span",{style:{color:nU.deleted,fontFamily:"var(--font-mono)"},children:["-",T.deletions]}),(0,d.jsx)("span",{style:{flex:1}}),(0,d.jsx)("button",{type:"button",onClick:e_,title:"list"===L?g("files.viewAsTree"):g("files.viewAsList"),"aria-label":"list"===L?g("files.viewAsTree"):g("files.viewAsList"),"aria-pressed":"tree"===L,style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-dim)"},children:(0,d.jsx)(nQ,{mode:L})})]}),"tree"===L?(0,d.jsx)(nX,{nodes:eN,depth:0,cwd:n,statusByPath:eC,collapsedPaths:P,onToggleExpanded:eD,onOpenFile:r,onAtMention:s,t:g}):M.map(e=>(0,d.jsx)(nY,{status:e,cwd:n,onOpenFile:r,onAtMention:s,t:g},e.filePath))]}),h&&!em&&(0,d.jsxs)("div",{className:"file-explorer-tree-heading",children:[(0,d.jsx)(nN,{size:14}),(0,d.jsx)("span",{children:g("workbench.allFiles")})]}),(a||0===M.length)&&(!ef||!em)&&(0,d.jsxs)("div",{style:{padding:"2px 4px"},children:[b?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:g("files.loading")}):w?(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"#f87171"},children:w}):x.map(e=>(0,d.jsx)(nJ,{node:e,depth:0,cwd:n,onOpenFile:r,onAtMention:s,expandedPaths:k,onToggleExpanded:eE,refreshToken:ep,highlightedPaths:E,gitStatusByPath:ex,changedDirectoryPaths:ev,showHidden:f,dropTargetPath:eo,onDropFiles:ez,onDropTargetChange:eF,t:g},e.fullPath)),!b&&!w&&0===x.length&&(0,d.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:g("files.noFiles")})]}),ei&&(0,d.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,d.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,d.jsx)("path",{d:"M12 16V4"}),(0,d.jsx)("path",{d:"m7 9 5-5 5 5"}),(0,d.jsx)("path",{d:"M5 20h14"})]}),g("files.dropToUpload",{directory:eo?ek(eo,n)||eo:ew(n)||n})]})]})}),n1="[data-sidebar-menu-filter]",n2="[data-sidebar-menu-autofocus]",n4="button, input, textarea, select, a[href], [tabindex]";function n8(e){return u.Children.toArray(e).length>0}function n3(e){return"item"===e.type&&void 0!==e.checked}function n6(e){return e.getClientRects().length>0}function n5(e){return!e.disabled&&"true"!==e.getAttribute("aria-disabled")&&n6(e)}function n9(e){return Array.from(e.querySelectorAll("[data-sidebar-menu-item]")).filter(n5)}function n7(e){let t=Array.from(e.querySelectorAll(n2)).find(n5);if(t)return t;let n=n9(e);return n.length>0?n[0]:Array.from(e.querySelectorAll(n4)).filter(e=>e.tabIndex>=0&&n5(e))[0]??null}function re(e){e.stopPropagation()}let rt={onClick:re,onDoubleClick:re,onMouseDown:re,onMouseUp:re,onPointerDown:re,onPointerUp:re,onKeyDown:re,onKeyUp:re,onFocus:re,onBlur:re,onContextMenu:function(e){e.preventDefault(),e.stopPropagation()}};function rn(e,t){return n=>{"Enter"!==n.key||n.nativeEvent.isComposing||229===n.keyCode||(n.preventDefault(),t(e,n.shiftKey))}}function rr(e){let{item:t,onActivate:n}=e,r=void 0!==t.checked,i=["sidebar-menu-item",r?"is-choice":"",t.danger?"is-danger":"",t.checked?"is-checked":""].filter(Boolean).join(" "),s=["sidebar-menu-label",t.mono?"is-mono":"",t.path?"is-path":""].filter(Boolean).join(" "),o=null;t.disabled&&t.disabledReason?o=(0,d.jsx)("span",{className:"sidebar-menu-note",children:t.disabledReason}):t.note?o=(0,d.jsx)("span",{className:"sidebar-menu-note",children:t.note}):t.shortcut&&(o=(0,d.jsx)("kbd",{className:"sidebar-menu-shortcut",children:t.shortcut}));let l=(0,d.jsxs)("button",{type:"button",role:r?"menuitemradio":"menuitem","aria-checked":r?t.checked:void 0,"aria-disabled":!!t.disabled||void 0,"aria-keyshortcuts":t.shortcut&&!t.disabled?t.shortcut.toUpperCase():void 0,tabIndex:-1,title:t.title,"data-sidebar-menu-item":"",className:i,onClick:e=>n(t,e.shiftKey),onKeyDown:rn(t,n),children:[(0,d.jsx)("span",{className:"sidebar-menu-icon",children:r?t.checked?(0,d.jsx)(no,{size:13}):null:t.icon}),(0,d.jsx)("span",{className:s,children:t.path?(0,d.jsx)("span",{children:t.label}):t.label}),t.badge,o]}),a=t.secondary;return a?(0,d.jsxs)("div",{className:r?"sidebar-menu-row is-choice":"sidebar-menu-row",role:"none",children:[l,(0,d.jsx)("button",{type:"button",role:"menuitem","aria-label":a.label,"aria-disabled":!!a.disabled||void 0,tabIndex:-1,title:a.label,"data-sidebar-menu-item":"",className:a.danger?"sidebar-menu-secondary is-danger":"sidebar-menu-secondary",onClick:e=>n(a,e.shiftKey),onKeyDown:rn(a,n),children:a.icon})]}):l}function ri(e){var t;let n,{sheet:r,ariaLabel:i,title:s,items:o,filter:l,filterQuery:a="",onFilterQueryChange:c,children:u,cancelLabel:p,focusCancel:h=!1,width:m=208,classic:f=!1,footer:g,surfaceRef:x,onActivate:v,onClose:b}=e,y=n8(u),w=!y&&n8(g),j=void 0!==l&&!y&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return(e??[]).filter(n3).length>=t}(o,l.minChoices),k=j?(t=o??[],(n=a.trim().toLowerCase())?t.filter(e=>"item"!==e.type||void 0===e.checked||[e.label,e.note,e.title].some(e=>e?.toLowerCase().includes(n))):[...t]):o??[],S=k.map(e=>"separator"===e.type?(0,d.jsx)("div",{className:"sidebar-menu-separator",role:"separator"},e.id):"header"===e.type?(0,d.jsx)("div",{className:"sidebar-menu-header",role:"presentation",children:e.label},e.id):"custom"===e.type?(0,d.jsx)("div",{className:"sidebar-menu-custom",role:"none",children:e.content},e.id):(0,d.jsx)(rr,{item:e,onActivate:v},e.id)),C=y?u:j||w?(0,d.jsxs)(d.Fragment,{children:[j&&(0,d.jsx)("div",{className:"sidebar-menu-filter",children:(0,d.jsx)("input",{className:"sidebar-menu-filter-input",value:a,placeholder:l.placeholder,"aria-label":l.placeholder,autoComplete:"off",spellCheck:!1,"data-sidebar-menu-filter":"","data-sidebar-menu-autofocus":r?void 0:"",onChange:e=>c?.(e.target.value)})}),j&&(0,d.jsx)("div",{role:"status",children:a.trim()&&!k.some(n3)&&(0,d.jsx)("div",{className:"sidebar-menu-empty",children:l.emptyLabel})}),(0,d.jsx)("div",{role:"menu","aria-label":i,children:S}),w&&g]}):S,N=y||j||w?void 0:"menu";return r?(0,d.jsxs)("div",{className:"sidebar-sheet-layer",...rt,children:[(0,d.jsx)("div",{className:"sidebar-sheet-backdrop","aria-hidden":"true",onClick:()=>b("outside")}),(0,d.jsxs)("div",{ref:x,className:"sidebar-sheet",role:"dialog","aria-modal":"true","aria-label":i,children:[s?(0,d.jsx)("div",{className:"sidebar-sheet-title",children:s}):null,(0,d.jsx)("div",{className:"sidebar-sheet-body",role:N,"aria-label":N?i:void 0,children:C}),(0,d.jsx)("button",{type:"button",className:"sidebar-sheet-cancel","data-sidebar-menu-autofocus":h?"":void 0,onClick:()=>b("cancel"),children:p})]})]}):(0,d.jsx)("div",{ref:x,className:f?"sidebar-menu is-classic":"sidebar-menu",role:N??"dialog","aria-label":i,style:{width:m},...rt,children:C})}function rs(e){let{open:t,anchor:n,sheet:r,ariaLabel:i,title:s,items:o,filter:l,children:a,cancelLabel:c,focusCancel:p,onClose:h,returnFocusTo:f,width:g,classic:x=!1,footer:v,focusKey:b=""}=e,[y,w]=(0,u.useState)(null),[j,k]=(0,u.useState)(""),S=(0,u.useRef)(j);S.current=j;let C=(0,u.useRef)(null),N=(0,u.useRef)(h);N.current=h;let E=(0,u.useRef)(o);E.current=o;let $=(0,u.useRef)(f??null);$.current=f??null;let M=(0,u.useRef)(n);M.current=n,(0,u.useEffect)(()=>{w(document.body)},[]);let I=t&&null!==y&&(r||null!==n),T=n8(a),R=n?JSON.stringify(n):"",L=(e,t)=>{if(e.disabled)return;let n=!1;e.onSelect({shiftKey:t,keepOpen:()=>{n=!0}}),n||N.current("select")},A=(0,u.useRef)(L);A.current=L,(0,u.useLayoutEffect)(()=>{let e=C.current;if(!I||r||!e)return;let t=window.visualViewport,n=()=>{let n=M.current;if(!n)return;let r=e.getBoundingClientRect(),{left:i,top:s}=function(e,t,n){let r,i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8,o=n.left+s,l=n.top+s,a=n.left+n.width-s,c=n.top+n.height-s;if("point"===e.kind)r=e.x+t.width>a&&e.x-t.width>=o?e.x-t.width:e.x,i=e.y+t.height>c&&e.y-t.height>=l?e.y-t.height:e.y;else{let{rect:n}=e;r="end"===e.align?n.right-t.width:n.left;let s=n.bottom+4,o=n.top-4-t.height;i=s+t.height>c&&o>=l?o:s}return{left:Math.max(o,Math.min(r,a-t.width)),top:Math.max(l,Math.min(i,c-t.height))}}(n,{width:r.width,height:r.height},{left:t?.offsetLeft??0,top:t?.offsetTop??0,width:t?.width??window.innerWidth,height:t?.height??window.innerHeight});e.style.left=`${i}px`,e.style.top=`${s}px`};n();let i="u"<typeof ResizeObserver?null:new ResizeObserver(n);return i?.observe(e),window.addEventListener("resize",n),t?.addEventListener("resize",n),t?.addEventListener("scroll",n),()=>{i?.disconnect(),window.removeEventListener("resize",n),t?.removeEventListener("resize",n),t?.removeEventListener("scroll",n)}},[I,r,R,T]),(0,u.useEffect)(()=>{k("")},[I,T]);let P=(0,u.useRef)(!1);return((0,u.useLayoutEffect)(()=>{let e=C.current;if(!I||!e){P.current=!1;return}let t=!P.current;P.current=!0,(t?n7(e):Array.from(e.querySelectorAll(n2)).filter(e=>!e.matches(n1)&&n5(e))[0]??n7(e))?.focus({preventScroll:!0})},[I,r,T,b]),(0,u.useLayoutEffect)(()=>{let e=C.current;if(!I||!e)return;let t=$.current;return()=>{let n=document.activeElement;if(n&&n!==document.body&&!e.contains(n))return;let r=function(e){if(!e||!e.isConnected)return null;if(n6(e))return e;let t=e.closest("[data-row-key]");if(!t)return null;for(let e of Array.from(t.querySelectorAll(n4)))if(e.tabIndex>=0&&n5(e))return e;return null}(t);r&&(r.focus({preventScroll:!0}),t&&r!==t&&n6(t)&&t.focus({preventScroll:!0}))}},[I,r]),(0,u.useEffect)(()=>{if(!I)return;let e=e=>{let t=C.current;if(!t||e.isComposing||229===e.keyCode)return;if("Escape"===e.key){e.preventDefault(),e.stopPropagation();let n=t.querySelector(n1);if(n&&S.current){k(""),n.focus({preventScroll:!0});return}N.current("escape");return}let n=e.target instanceof Element?e.target:null,r=null!==n&&t.contains(n),i=null===n||n===document.body||n===document.documentElement;if(!r&&!i)return;if("Tab"===e.key){var s;let i,o;r&&(s=e.shiftKey,i=Array.from(t.querySelectorAll(n4)).filter(e=>e!==n&&e.tabIndex>=0&&n5(e)),o=s?Node.DOCUMENT_POSITION_PRECEDING:Node.DOCUMENT_POSITION_FOLLOWING,i.some(e=>(n.compareDocumentPosition(e)&o)!=0))||N.current("outside");return}let o=("ArrowDown"===e.key||"ArrowUp"===e.key)&&n?.matches(n1);if(r&&function(e){if(!e)return!1;if(e.isContentEditable)return!0;let t=e.tagName;return"TEXTAREA"===t||"SELECT"===t||"INPUT"===t&&!["button","checkbox","radio","range","reset","submit","image","color","file"].includes((e.type||"text").toLowerCase())}(n)&&!o)return;if("ArrowDown"===e.key||"ArrowUp"===e.key||"Home"===e.key||"End"===e.key){let r,i=n9(t);if(0===i.length)return;e.preventDefault(),e.stopPropagation();let s=n?i.indexOf(n):-1;r="Home"===e.key?0:"End"===e.key?i.length-1:"ArrowDown"===e.key?s<0?0:(s+1)%i.length:s<0?i.length-1:(s-1+i.length)%i.length,i[r].focus({preventScroll:!1});return}if(1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;let l=function(e,t){if(!e||1!==t.length)return null;let n=t.toLowerCase();for(let t of e)if("item"===t.type&&!t.disabled&&t.shortcut&&t.shortcut.toLowerCase()===n)return t;return null}(E.current,e.key);l&&!T&&(e.preventDefault(),e.stopPropagation(),A.current(l,e.shiftKey))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[I,T]),(0,u.useEffect)(()=>{if(!I||r)return;let e=e=>{let t=C.current,n=e.target instanceof Node?e.target:null;if(!t||n&&t.contains(n))return;let r=$.current;r&&n&&0===e.button&&r.contains(n)&&function(e){let t=e.ownerDocument,n=t.defaultView;if(!n)return;let r=0,i=()=>{t.removeEventListener("click",s,!0),n.clearTimeout(r)};function s(t){i(),t.target instanceof Node&&e.contains(t.target)&&(t.preventDefault(),t.stopPropagation())}t.addEventListener("click",s,!0),r=n.setTimeout(i,1e3)}(r),N.current("outside")};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[I,r]),I&&y)?(0,m.createPortal)((0,d.jsx)(ri,{sheet:r,ariaLabel:i,title:s,items:o,filter:l,filterQuery:j,onFilterQueryChange:k,cancelLabel:c,focusCancel:p,width:g,classic:x,footer:v,surfaceRef:C,onActivate:(e,t)=>A.current(e,t),onClose:e=>N.current(e),children:a}),y):null}let ro="PI-YUN";function rl(e){let{canCreate:t=!1,onNewSession:n,onOpenProject:r,onOpenSettings:i}=e,{t:s}=(0,tw.s)(),o=(0,u.useRef)(null),[l,a]=(0,u.useState)(null),c=s("navigation.appMenu",{name:ro}),p=()=>{let e=o.current?.getBoundingClientRect();e&&a({kind:"rect",rect:e,align:"start"})},h=[{type:"item",id:"new",label:s("i18n.newSession"),icon:(0,d.jsx)(nd,{size:16}),disabled:!t,onSelect:()=>n?.()},{type:"item",id:"project",label:s("sidebar.openOtherProject"),icon:(0,d.jsx)(nu,{size:16}),onSelect:()=>r?.(o.current)},...i?[{type:"separator",id:"settings-separator"},{type:"item",id:"settings",label:s("common.settings"),icon:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M4 7h16M4 17h16"}),(0,d.jsx)("circle",{cx:"9",cy:"7",r:"3",fill:"var(--bg-panel)"}),(0,d.jsx)("circle",{cx:"15",cy:"17",r:"3",fill:"var(--bg-panel)"})]}),onSelect:i}]:[]];return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{ref:o,type:"button",className:"sidebar-brand","aria-label":c,"aria-haspopup":"menu","aria-expanded":!!l,onClick:()=>{l?a(null):p()},onKeyDown:e=>{"ArrowDown"!==e.key||l||(e.preventDefault(),p())},children:[(0,d.jsx)("span",{className:"sidebar-brand-label",children:ro}),(0,d.jsx)("svg",{className:"sidebar-brand-chevron",width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m4 6 4 4 4-4"})})]}),(0,d.jsx)(rs,{open:!!l,anchor:l,sheet:!1,ariaLabel:c,title:ro,items:h,cancelLabel:s("sidebar.cancel"),onClose:()=>a(null),returnFocusTo:o.current})]})}var ra=n(2730);let rc={desktop:32,mobile:48};function rd(e,t,n,r){return Math.hypot(n-e,r-t)}function ru(e){return e.getClientRects().length>0}function rp(e){let t=eN(e.firstMessage)??e.firstMessage;return e.name||t.slice(0,50)||e.id.slice(0,12)}function rh(e){return e.nativeEvent.isComposing||229===e.keyCode}function rm(e){let{rows:t,layout:n,emptyLabel:r,loading:i,error:s,renamingRootId:o,renamingProjectKey:l,confirmDeleteRootId:a,activeMenuRowKey:c,reveal:p}=e,{t:h}=(0,tw.s)(),m=(0,u.useRef)(e);m.current=e;let f=(0,u.useRef)(null),g=(0,u.useRef)(null),x=(0,u.useRef)(null),v=(0,u.useRef)(null);tO(g);let[b,y]=(0,u.useState)(0),[w,j]=(0,u.useState)(0),[k,S]=(0,u.useState)(null),[C,N]=(0,u.useState)(()=>Date.now()),E=(0,u.useRef)(null),$=(0,u.useCallback)(()=>{null===E.current&&(E.current=requestAnimationFrame(()=>{E.current=null;let e=g.current;e&&y(e.scrollTop)}))},[]);(0,u.useLayoutEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{let t=`${Math.max(0,e.offsetWidth-e.clientWidth)}px`;e.style.setProperty("--session-tree-scrollbar",t),e.offsetWidth>0&&e.closest(".session-sidebar")?.style.setProperty("--session-tree-scrollbar",t)};if(t(),j(e.clientHeight),y(e.scrollTop),"u"<typeof ResizeObserver)return;let n=new ResizeObserver(()=>{t(),j(e.clientHeight),y(e.scrollTop)});return n.observe(e),()=>n.disconnect()},[]),(0,u.useEffect)(()=>()=>{null!==E.current&&cancelAnimationFrame(E.current)},[]),(0,u.useEffect)(()=>{let e=window.setInterval(()=>N(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let M=(0,u.useCallback)(e=>{let t=e.target instanceof Element?e.target.closest("[data-row-key]"):null;S(t?.getAttribute("data-row-key")??null)},[]),I=(0,u.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||S(null)},[]),T=(0,u.useMemo)(()=>(function(e,t){let n=J[t],r=Array(e.length+1);r[0]=0;for(let t=0;t<e.length;t++)r[t+1]=r[t]+n[e[t].kind];return r})(t,n),[t,n]),R=!!e.onMoveGroup,L=(0,u.useMemo)(()=>{let e={pinned:0,other:0};for(let n of t)"group"===n.kind&&e[n.project.pinned?"pinned":"other"]++;return e},[t]),A=function(e){let{rows:t,offsets:n,enabled:r}=e,i=(0,u.useRef)(e);i.current=e;let s=(0,u.useMemo)(()=>(function(e,t){let n=[],r=0;for(;r<e.length;){var i;let s=e[r];if("group"!==s.kind){r++;continue}let o=r;for(;o>0&&"spacer"===e[o-1].kind;)o--;let l=r+1;for(;l<e.length&&("group-more"===(i=e[l]).kind||"group-empty"===i.kind||"session"===i.kind&&"group"===i.context);)l++;let a=l;for(;a<e.length&&"spacer"===e[a].kind;)a++;n.push({key:s.project.key,pinned:s.project.pinned,top:t[r],bottom:t[l],gapAbove:t[r]-t[o],gapBelow:t[a]-t[l]}),r=l}return n})(t,n),[t,n]),o=(0,u.useRef)(s);o.current=s;let l=(0,u.useRef)(null),a=(0,u.useRef)(0),[c,d]=(0,u.useState)(null),p=(0,u.useMemo)(()=>{let e=e=>{d("armed"===e.phase||"dragging"===e.phase?{projectKey:e.projectKey,phase:e.phase,drop:e.drop}:null)},t=e=>{let t=i.current.innerRef.current;return t?function(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=e.filter(e=>e.pinned===r.pinned),s=i.indexOf(r),o=i.filter(e=>e!==r);if(0===o.length)return null;let l=o.filter(e=>(e.top+e.bottom)/2<n).length;if(l===s)return null;let a=o[o.length-1],c=Math.max(3,l<o.length?o[l].top-o[l].gapAbove/2:a.bottom+a.gapBelow/2);return l>0?{anchorKey:o[l-1].key,position:"after",lineY:c}:{anchorKey:o[0].key,position:"before",lineY:c}}(o.current,e.projectKey,e.clientY-t.getBoundingClientRect().top):null},n=()=>{let e=l.current,t=i.current.ghostRef.current,n=i.current.treeRef.current,r=i.current.innerRef.current,s=i.current.scrollRef.current;if(!e?.ghost||!t||!n||!s)return;let o=n.getBoundingClientRect().top,a=s.getBoundingClientRect(),c=t.offsetHeight,d=function(e){let{pointerY:t,lineY:n,ghostHeight:r,pointerGap:i,lineGap:s,minTop:o,maxTop:l}=e,a=Math.max(o,l),c=t-i-r,d=null!==n&&n>=o&&n<=a+r?n:null,u=e=>e>=o&&e<=a,p=e=>null!==d&&e>d-s-r&&e<d+s,h=null===d?[c,o,t+i,a]:[c,d-s-r,o,t+i,d+s,a],m=e=>{let t=null;for(let n of h)e(n)&&(null===t||Math.abs(n-c)<Math.abs(t-c))&&(t=n);return t};return m(e=>u(e)&&!(e>c&&e<t+i)&&!p(e))??m(e=>u(e)&&!p(e))??Math.min(a,Math.max(o,c))}({pointerY:e.clientY,lineY:e.drop&&r?r.getBoundingClientRect().top+e.drop.lineY:null,ghostHeight:c,pointerGap:"mouse"===e.pointerType?8:28,lineGap:8,minTop:a.top,maxTop:a.bottom-c});t.style.top=`${d-o}px`,t.style.left=`${e.ghost.left}px`},r=e=>{null!==e.timer&&window.clearTimeout(e.timer),null!==e.frame&&cancelAnimationFrame(e.frame),e.timer=null,e.frame=null,i.current.scrollRef.current?.removeEventListener("scroll",p);try{e.element.hasPointerCapture(e.pointerId)&&e.element.releasePointerCapture(e.pointerId)}catch{}},s=()=>{let e=l.current;e&&(l.current=null,r(e),window.removeEventListener("pointermove",g,!0),window.removeEventListener("pointerup",x,!0),window.removeEventListener("pointercancel",v,!0),window.removeEventListener("pointerdown",b,!0),window.removeEventListener("keydown",y,!0),window.removeEventListener("contextmenu",w,!0),window.removeEventListener("blur",j),document.removeEventListener("visibilitychange",k),d(null))},c=()=>{let e=l.current;if(e){if("armed"!==e.phase&&"dragging"!==e.phase){"pending"===e.phase&&s();return}e.phase="cancelled",e.drop=null,r(e),d(null)}},u=function(){var r;let s=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=l.current;if(!o||"dragging"!==o.phase)return;let a=i.current.scrollRef.current;if(!a||!ru(a))return void c();let d=t(o),u=s||d!==(r=o.drop)&&(null===d||null===r||d.anchorKey!==r.anchorKey||d.position!==r.position||d.lineY!==r.lineY);o.drop=d,n(),u&&e(o)};function p(){u()}let h=()=>{let e=l.current;if(!e||"dragging"!==e.phase)return;e.frame=null;let t=i.current.scrollRef.current;if(!t||!ru(t))return void c();let n=t.getBoundingClientRect(),r=function(e,t,n,r){let i=Math.min(r,(n-t)/2);if(!(i>0)||!Number.isFinite(e))return 0;let s=e=>Math.ceil(14*Math.min(1,e/i));return e<t+i?-s(t+i-e):e>n-i?s(e-(n-i)):0}(e.clientY,n.top,n.bottom,rc[i.current.layout]);if(0!==r){let n=Math.min(Math.max(0,(i.current.offsets[i.current.offsets.length-1]??0)-t.clientHeight),Math.max(0,t.scrollTop+r));n!==t.scrollTop&&(t.scrollTop=n,e.expectedScrollTop=t.scrollTop,u())}l.current===e&&"dragging"===e.phase&&(e.frame=requestAnimationFrame(h))},m=e=>{let t=i.current.scrollRef.current,n=i.current.treeRef.current;if(!t||!n||!ru(t)||!e.element.isConnected)return void c();if(e.phase="dragging","touch"!==e.pointerType)try{e.element.setPointerCapture(e.pointerId)}catch{}e.ghost={left:e.element.getBoundingClientRect().left-n.getBoundingClientRect().left+4},e.expectedScrollTop=t.scrollTop,t.addEventListener("scroll",p,{passive:!0}),e.frame=requestAnimationFrame(h),u(!0)},f=()=>{let t=l.current;t&&"pending"===t.phase&&(t.timer=null,t.phase="armed",t.armX=t.clientX,t.armY=t.clientY,t.expectedScrollTop=i.current.scrollRef.current?.scrollTop??0,e(t))};function g(e){let t=l.current;if(!t||e.pointerId!==t.pointerId)return;if("mouse"===t.pointerType&&0===e.buttons)return void s();t.clientX=e.clientX,t.clientY=e.clientY;let n=rd(t.startX,t.startY,e.clientX,e.clientY);switch(t.phase){case"pending":"mouse"===t.pointerType?n>=4&&m(t):n>8&&s();break;case"armed":rd(t.armX,t.armY,e.clientX,e.clientY)>=4&&m(t);break;case"dragging":u()}}function x(e){let n=l.current;if(n&&e.pointerId===n.pointerId){if("dragging"===n.phase){n.clientX=e.clientX,n.clientY=e.clientY;let r=t(n);r&&i.current.onMove(n.projectKey,r.anchorKey,r.position)}"pending"!==n.phase&&(a.current=e.timeStamp+600),s()}}function v(e){l.current&&e.pointerId===l.current.pointerId&&s()}function b(e){l.current&&e.pointerId!==l.current.pointerId&&c()}function y(e){let t=l.current;t&&"Escape"===e.key&&("armed"===t.phase||"dragging"===t.phase)&&(e.preventDefault(),e.stopPropagation(),c())}function w(e){let t=l.current;if(t){if("pending"===t.phase)return void s();e.preventDefault(),e.stopPropagation()}}function j(){s()}function k(){"hidden"===document.visibilityState&&s()}return{handlers:{onPointerDown(e,t){if(!i.current.enabled||l.current||!e.isPrimary||0!==e.button||e.ctrlKey||e.target instanceof Element&&e.target.closest(".session-tree-group-actions"))return;let n=e.currentTarget,r={pointerId:e.pointerId,pointerType:e.pointerType,projectKey:t,element:n,startX:e.clientX,startY:e.clientY,armX:e.clientX,armY:e.clientY,clientX:e.clientX,clientY:e.clientY,phase:"pending",timer:null,frame:null,expectedScrollTop:0,drop:null,ghost:null};l.current=r,window.addEventListener("pointermove",g,!0),window.addEventListener("pointerup",x,!0),window.addEventListener("pointercancel",v,!0),window.addEventListener("pointerdown",b,!0),window.addEventListener("keydown",y,!0),window.addEventListener("contextmenu",w,!0),window.addEventListener("blur",j),document.addEventListener("visibilitychange",k),"mouse"!==e.pointerType&&(r.timer=window.setTimeout(f,350))},onTouchMove(e){let t=l.current;if(!t||"armed"!==t.phase&&"dragging"!==t.phase)return;if(e.cancelable)return void e.preventDefault();let n=i.current.scrollRef.current;n&&n.scrollTop!==t.expectedScrollTop&&s()}},cancel:c,teardown:s,updateDrag:u,placeGhost:n}},[]);(0,u.useLayoutEffect)(()=>{let e=l.current;e&&("armed"===e.phase||"dragging"===e.phase)&&(t.some(t=>"group"===t.kind&&t.project.key===e.projectKey)?p.updateDrag():p.cancel())},[t,n,p]),(0,u.useEffect)(()=>{r||p.cancel()},[r,p]);let h=c?.phase==="dragging";(0,u.useLayoutEffect)(()=>{h&&p.placeGhost()},[h,p]),(0,u.useEffect)(()=>()=>p.teardown(),[p]);let m=(0,u.useCallback)(e=>{let t=a.current;0===t||(a.current=0,e.timeStamp>t||(e.preventDefault(),e.stopPropagation()))},[]),f=(0,u.useCallback)(()=>{a.current=0},[]);return{view:(0,u.useMemo)(()=>{if(!c)return null;let e="dragging"===c.phase?s.find(e=>e.key===c.projectKey)??null:null;return{...c,source:e}},[c,s]),handlers:p.handlers,onClickCapture:m,onPointerDownCapture:f}}({rows:t,offsets:T,layout:n,enabled:R&&!i,scrollRef:g,innerRef:x,treeRef:f,ghostRef:v,onMove:(e,t,n)=>m.current.onMoveGroup?.(e,t,n)}),P=A.view,z=P?`group:${P.projectKey}`:null,[W,O]=(0,u.useState)(null),F=p&&p.id!==W?p:null,D=F?.rowKey??null,B=(0,u.useMemo)(()=>{let e=[];return t.forEach((t,n)=>{t.key===k||t.key===c||t.key===D||t.key===z||"session"===t.kind&&(t.family.root.id===o||t.family.root.id===a)?e.push(n):"group"===t.kind&&t.project.key===l&&e.push(n)}),e},[t,k,c,D,z,o,l,a]),_=(0,u.useMemo)(()=>i?[]:function(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],s=Math.max(0,e.length-1),o=Number.isFinite(t)?Math.max(0,t):0,l=Number.isFinite(n)&&n>0?n:600,a=Number.isFinite(r)&&r>0?r:0,c=o-a,d=o+l+a,u=0,p=s;for(;u<p;){let t=u+p>>>1;e[t+1]>c?p=t:u=t+1}let h=u;for(u=h,p=s;u<p;){let t=u+p>>>1;e[t]>=d?p=t:u=t+1}let m=u,f=[];for(let e=h;e<m;e++)f.push(e);if(0===i.length)return f;let g=i.filter(e=>Number.isInteger(e)&&e>=0&&e<s&&(e<h||e>=m));return 0===g.length?f:[...new Set([...f,...g])].sort((e,t)=>e-t)}(T,b,w,240,B),[i,T,b,w,B]),H=(0,u.useRef)(null),U=(0,u.useRef)(null),q=(0,u.useCallback)((e,t,n,r)=>{let i=document.activeElement===r,s=i&&r.matches(":focus-visible");H.current={rowKey:e,fallbackKey:t===Y?"pinned-header":`group:${t}`,focus:i,scroll:"less"===n||s},"more"===n?m.current.onShowMore(t):m.current.onShowLess(t)},[]);(0,u.useLayoutEffect)(()=>{let e=H.current;if(!e)return;H.current=null;let n=g.current,r=t.findIndex(t=>t.key===e.rowKey);if(r<0&&(r=t.findIndex(t=>t.key===e.fallbackKey)),e.scroll&&n&&r>=0){let e=ev(T,r,n.scrollTop,n.clientHeight);null!==e&&(n.scrollTop=e),y(n.scrollTop)}e.focus&&(U.current={rowKey:e.rowKey,fallbackKey:e.fallbackKey,tries:0})},[t,T]);let K=(0,u.useRef)(null);(0,u.useLayoutEffect)(()=>{if(!F)return;let e=t.findIndex(e=>e.key===F.rowKey),n=function(e,t,n,r){let i=e?.id===t.id?e:{id:t.id,misses:0};if(!(r-t.at<=3e3))return{misses:i,action:"drop"};if(n)return{misses:i,action:"reveal"};let s={id:t.id,misses:i.misses+1};return{misses:s,action:s.misses>=3?"drop":"wait"}}(K.current,F,e>=0,Date.now());if(K.current=n.misses,"wait"!==n.action){if("reveal"===n.action){let t=g.current;if(t&&t.getClientRects().length>0){let n=ev(T,e,t.scrollTop,t.clientHeight,F.block);null!==n&&(t.scrollTop=n),y(t.scrollTop)}F.takeFocusFrom&&(U.current={rowKey:F.rowKey,fallbackKey:F.rowKey,tries:0,takeFocusFrom:F.takeFocusFrom})}O(F.id),m.current.onRevealHandled?.(F.id)}},[F,t,T]),(0,u.useLayoutEffect)(()=>{let e=U.current;if(!e)return;let t=document.activeElement;if(t&&t!==document.body&&document.contains(t)&&!e.takeFocusFrom?.(t)){U.current=null;return}let n=g.current,r=e=>n?.querySelector(`[data-row-key="${CSS.escape(e)}"]`)??null,i=r(e.rowKey),s=i?.querySelector('[data-more-action="more"]')??i?.querySelector("a[href], button")??r(e.fallbackKey)?.querySelector("a[href], button");s?(s.focus({preventScroll:!0}),U.current=null):++e.tries>2&&(U.current=null)},[_]);let V=t.some(e=>"session"===e.kind||"group"===e.kind||"archive-group"===e.kind),Z=!i&&!s&&null!==r&&!V,G=P?.source??null,X=P?.drop?.lineY??null,Q=P?.phase==="dragging"?t.find(e=>"group"===e.kind&&e.project.key===P.projectKey)?.project??null:null;return(0,d.jsxs)("div",{ref:f,className:`session-tree${"mobile"===n?" is-mobile":""}${Q?" is-group-dragging":""}`,children:[i&&(0,d.jsx)("div",{className:"session-tree-message",children:h("sidebar.loading")}),s&&(0,d.jsx)("div",{className:"session-tree-message is-error",children:s}),Z&&(0,d.jsx)("div",{className:"session-tree-message",children:r}),(0,d.jsx)("div",{ref:g,className:"session-tree-scroll scrollbar-subtle",onScroll:$,onFocus:M,onBlur:I,onPointerDownCapture:A.onPointerDownCapture,onClickCapture:A.onClickCapture,children:!i&&(0,d.jsxs)("div",{ref:x,className:"session-tree-inner",style:{height:T[t.length]},children:[_.map(e=>{let r=t[e];if("spacer"===r.kind)return null;let i=T[e],s=T[e+1]-i,u=r.key===c;if("session"===r.kind)return(0,d.jsx)(rg,{row:r,layout:n,top:i,height:s,now:C,renaming:r.family.root.id===o,confirming:r.family.root.id===a,menuOpen:u,handlers:m},r.key);if("archive-group"===r.kind)return(0,d.jsx)(rj,{row:r,top:i,height:s,menuOpen:u,handlers:m},r.key);if("group"===r.kind){let e=r.project.key===l;return(0,d.jsx)(ry,{row:r,top:i,height:s,menuOpen:u,renaming:e,canDrag:R&&!e&&L[r.project.pinned?"pinned":"other"]>1,dragPhase:P?.projectKey===r.project.key?P.phase:null,drag:A.handlers,handlers:m},r.key)}return(0,d.jsx)(rw,{row:r,top:i,height:s,handlers:m,onMoreAction:q},r.key)}),G&&(0,d.jsx)("div",{className:"session-tree-drag-source","aria-hidden":"true",style:{top:G.top,height:G.bottom-G.top}}),null!==X&&(0,d.jsx)("div",{className:"session-tree-drop-line","aria-hidden":"true",style:{top:X}})]})}),Q&&(0,d.jsxs)("div",{ref:v,className:"session-tree-drag-ghost","aria-hidden":"true",children:[(0,d.jsx)(nc,{size:14,className:"session-tree-group-icon"}),(0,d.jsx)("span",{className:"session-tree-group-name",children:Q.name})]})]})}function rf(e,t){return{top:e,height:t}}let rg=(0,u.memo)(function(e){let t,n,{row:r,layout:i,top:s,height:o,now:l,renaming:a,confirming:c,menuOpen:u,handlers:p}=e,{locale:h,t:m}=(0,tw.s)(),{family:f,context:g,status:x}=r,v=f.root,w=rp(v),j=new Date(l),k=["session-tree-row session-tree-session",x.selected?"is-selected":"",x.running?"is-running":"","archive"===g?"is-archived":"",u?"is-menu-open":"",c?"is-confirming":"",a?"is-renaming":""].filter(Boolean).join(" ");if(c){let e=w.slice(0,22)+(w.length>22?"…":"");return(0,d.jsx)("div",{className:k,style:rf(s,o),"data-row-key":r.key,onKeyDown:e=>{"Escape"!==e.key||rh(e)||(e.preventDefault(),e.stopPropagation(),p.current.onDeleteCancel())},children:(0,d.jsx)(rv,{label:m("sidebar.deleteSession",{title:e}),deleteLabel:m("sidebar.delete"),cancelLabel:m("sidebar.cancel"),onConfirm:e=>{e.stopPropagation(),p.current.onDeleteConfirm(f,e)},onCancel:e=>{e.stopPropagation(),p.current.onDeleteCancel()}})})}if(a)return(0,d.jsx)("div",{className:k,style:rf(s,o),"data-row-key":r.key,children:(0,d.jsx)(rx,{initialValue:w,label:m("sidebar.rename"),onCommit:e=>p.current.onRenameCommit(f,e),onCancel:()=>p.current.onRenameCancel()})});let S=v.isWorktree&&v.branch?v.branch:null,C=v.name&&v.relation?.kind==="fork"?eM(v.name):null,N=v.detailsPending?"…":m("sidebar.messagesCount",{count:v.messageCount}),E=`${w}
|
|
3
|
+
${N} \xb7 ${(0,ra.fw)(v.modified,h,j)}${S?` \xb7 ⑂ ${S}`:""}`,$="";x.awaiting?(t=(0,d.jsx)("span",{className:"session-tree-awaiting",role:"img","aria-label":m("sidebar.agentAwaitingInput")}),$=" is-awaiting",n=m("sidebar.agentAwaitingInput")):x.running?(t=(0,d.jsx)(nb,{size:12,label:m("sidebar.agentRunning")}),$=" is-running",n=m("sidebar.agentRunning")):x.unread?(t=(0,d.jsx)("span",{className:"session-tree-unread",role:"img","aria-label":m("sidebar.newSessionActivity")}),$=" is-unread",n=m("sidebar.newActivity")):t="pinned"===g?(0,d.jsx)("span",{className:"session-tree-project",children:r.project.name}):(0,ra.Rg)(f.latestModified,h,j);let M="desktop"===i&&("archive"===g||!x.running),I=(0,d.jsxs)(d.Fragment,{children:[C?(0,d.jsxs)("span",{className:"session-tree-title has-fork-suffix",children:[(0,d.jsx)("span",{className:"session-tree-title-base",children:C.base}),(0,d.jsx)("span",{className:"session-tree-title-suffix",children:C.suffix})]}):(0,d.jsx)("span",{className:"session-tree-title",children:w}),S&&(0,d.jsxs)("span",{className:"session-tree-branch",children:[(0,d.jsx)(t7,{size:10,className:"session-tree-branch-icon"}),S]}),(0,d.jsx)("span",{className:`session-tree-meta${$}`,title:n,children:t})]});return(0,d.jsxs)("div",{className:k,style:rf(s,o),"data-row-key":r.key,onClick:()=>p.current.onSelectFamily(f),onContextMenu:e=>p.current.onRowContextMenu(r,e),children:[x.transient?(0,d.jsx)("button",{type:"button",className:"session-tree-main",title:E,"aria-current":x.selected?"true":void 0,children:I}):(0,d.jsx)("a",{className:"session-tree-main",href:b(v.id),title:E,"aria-current":x.selected?"true":void 0,onClick:e=>{e.stopPropagation(),y(e)&&(e.preventDefault(),p.current.onSelectFamily(f))},children:I}),!x.transient&&(0,d.jsxs)("span",{className:"session-tree-actions",children:[M&&("archive"===g?(0,d.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":m("sidebar.restore"),title:m("sidebar.restore"),onClick:e=>{e.stopPropagation(),p.current.onRestoreFamily(f)},children:(0,d.jsx)(t3,{size:13})}):(0,d.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":m("sidebar.archive"),title:m("sidebar.archive"),onClick:e=>{e.stopPropagation(),p.current.onArchiveFamily(f)},children:(0,d.jsx)(t8,{size:13})})),(0,d.jsx)("button",{type:"button",className:`session-tree-action session-tree-more-action${u?" is-active":""}`,"aria-label":m("sidebar.moreActions"),title:m("sidebar.moreActions"),"aria-haspopup":"menu","aria-expanded":u,onClick:e=>{let t;e.stopPropagation();let n=e.currentTarget;p.current.onOpenRowMenu(r,{kind:"rect",rect:{left:(t=n.getBoundingClientRect()).left,top:t.top,right:t.right,bottom:t.bottom},align:"end"},n)},children:(0,d.jsx)(t4,{size:14})})]})]})});function rx(e){let{initialValue:t,label:n,maxLength:r,onCommit:i,onCancel:s}=e,[o,l]=(0,u.useState)(t),a=(0,u.useRef)(null),c=(0,u.useRef)(!1);(0,u.useEffect)(()=>{let e=a.current;e&&(e.focus(),e.select())},[]);let p=e=>{c.current||(c.current=!0,i(e))};return(0,d.jsx)("input",{ref:a,className:"session-tree-rename",value:o,"aria-label":n,maxLength:r,onChange:e=>l(e.target.value),onBlur:e=>p(e.currentTarget.value),onKeyDown:e=>{if(!rh(e)){if("Enter"===e.key)e.preventDefault(),p(e.currentTarget.value);else if("Escape"===e.key){if(e.preventDefault(),e.stopPropagation(),c.current)return;c.current=!0,s()}}}})}function rv(e){let{label:t,deleteLabel:n,cancelLabel:r,onConfirm:i,onCancel:s}=e,o=(0,u.useRef)(null);return(0,u.useEffect)(()=>{let e=document.activeElement;e&&e!==document.body||o.current?.focus()},[]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"session-tree-confirm-text",children:t}),(0,d.jsxs)("button",{type:"button",className:"session-tree-confirm-delete",onClick:i,children:[(0,d.jsx)(nn,{size:12}),n]}),(0,d.jsx)("button",{ref:o,type:"button",className:"session-tree-confirm-cancel",onClick:s,children:r})]})}function rb(e){let{running:t,awaiting:n=0,unread:r,t:i}=e;return 0===t&&0===n&&0===r?null:(0,d.jsxs)("span",{className:"session-tree-summary",children:[t>0&&(0,d.jsxs)("span",{className:"session-tree-summary-running",role:"img",title:i("sidebar.agentRunning"),"aria-label":`${i("sidebar.agentRunning")} (${t})`,children:[(0,d.jsx)(nb,{size:10}),t]}),n>0&&(0,d.jsxs)("span",{className:"session-tree-summary-awaiting",role:"img",title:i("sidebar.agentAwaitingInput"),"aria-label":`${i("sidebar.agentAwaitingInput")} (${n})`,children:[(0,d.jsx)("span",{className:"session-tree-summary-dot is-awaiting"}),n]}),r>0&&(0,d.jsxs)("span",{className:"session-tree-summary-unread",role:"img",title:i("sidebar.newSessionActivity"),"aria-label":`${i("sidebar.newSessionActivity")} (${r})`,children:[(0,d.jsx)("span",{className:"session-tree-summary-dot"}),r]})]})}let ry=(0,u.memo)(function(e){let{row:t,top:n,height:r,menuOpen:i,renaming:s,canDrag:o,dragPhase:l,drag:a,handlers:c}=e,{t:p}=(0,tw.s)(),{project:h,expanded:m}=t,f=(0,u.useRef)(null),g=["session-tree-row session-tree-group",h.current?"is-current":"",i?"is-active":"","armed"===l?"is-drag-armed":""].filter(Boolean).join(" ");return((0,u.useEffect)(()=>{let e=f.current;if(!o||!e)return;let t=e=>a.onTouchMove(e);return e.addEventListener("touchmove",t,{passive:!1}),()=>e.removeEventListener("touchmove",t)},[o,a]),s)?(0,d.jsx)("div",{ref:f,className:`${g} is-renaming`,style:rf(n,r),"data-row-key":t.key,children:(0,d.jsx)(rx,{initialValue:h.name,label:p("sidebar.projectName"),maxLength:80,onCommit:e=>c.current.onRenameProjectCommit(h,e),onCancel:()=>c.current.onRenameProjectCancel()})}):(0,d.jsxs)("div",{ref:f,className:g,style:rf(n,r),"data-row-key":t.key,onPointerDown:o?e=>a.onPointerDown(e,h.key):void 0,children:[(0,d.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":m,title:h.root,onClick:e=>c.current.onToggleGroup(h.key,e.altKey),children:[(0,d.jsx)(nc,{size:14,open:m,className:`session-tree-group-icon${m?" is-open":""}`}),(0,d.jsx)("span",{className:"session-tree-group-name",children:h.name}),!m&&(0,d.jsx)(rb,{running:t.running,awaiting:t.awaiting,unread:t.unread,t:p})]}),(0,d.jsxs)("span",{className:"session-tree-group-actions",children:[(0,d.jsx)("button",{type:"button",className:"session-tree-group-action","aria-label":p("sidebar.newSessionInProject",{name:h.name}),title:p("sidebar.newSessionInProject",{name:h.name}),onClick:e=>{e.stopPropagation(),c.current.onGroupNew(h)},children:(0,d.jsx)(t2,{size:13})}),(0,d.jsx)("button",{type:"button",className:`session-tree-group-action${i?" is-active":""}`,"aria-label":p("sidebar.projectActions",{name:h.name}),title:p("sidebar.projectActions",{name:h.name}),"aria-haspopup":"menu","aria-expanded":i,onClick:e=>{e.stopPropagation(),c.current.onGroupMenu(h,e.currentTarget)},children:(0,d.jsx)(t4,{size:13})})]})]})}),rw=(0,u.memo)(function(e){let{row:t,top:n,height:r,handlers:i,onMoreAction:s}=e,{t:o}=(0,tw.s)(),l=rf(n,r);switch(t.kind){case"section":return(0,d.jsx)("div",{className:`session-tree-row session-tree-section${"projects"===t.label?" is-projects":""}`,style:l,"data-row-key":t.key,role:"recents"===t.label?"heading":void 0,"aria-level":"recents"===t.label?2:void 0,children:"recents"===t.label?(0,d.jsxs)("button",{type:"button",className:"session-tree-recents-toggle","aria-expanded":!t.collapsed,onClick:()=>i.current.onToggleRecents?.(),children:[(0,d.jsx)(t9,{size:12,className:`session-tree-chevron${t.collapsed?"":" is-open"}`}),(0,d.jsx)("span",{children:o("sidebar.recents")})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{role:"heading","aria-level":2,children:o("sidebar.projects")}),(0,d.jsx)("button",{type:"button",className:"session-tree-section-action","aria-label":o("projectCreate.title"),title:o("projectCreate.title"),"aria-haspopup":"dialog",onClick:e=>i.current.onOpenOtherProject(e.currentTarget),children:(0,d.jsx)(t2,{size:16})})]})});case"recent":{let e=rp(t.family.root);return(0,d.jsx)("div",{className:`session-tree-row session-tree-recent${t.status.selected?" is-selected":""}`,style:l,"data-row-key":t.key,children:(0,d.jsxs)("a",{className:"session-tree-main",href:b(t.family.root.id),title:`${e} \xb7 ${t.project.name}`,"aria-current":t.status.selected?"page":void 0,onClick:e=>{y(e)&&(e.preventDefault(),i.current.onSelectFamily(t.family))},children:[(0,d.jsx)("span",{className:"session-tree-title",children:e}),(t.status.running||t.status.unread)&&(0,d.jsx)(rb,{running:+!!t.status.running,unread:+!!t.status.unread,t:o})]})})}case"pinned-header":return(0,d.jsx)("div",{className:"session-tree-row session-tree-pinned-header",style:l,"data-row-key":t.key,children:(0,d.jsxs)("button",{type:"button",className:"session-tree-pinned-toggle","aria-expanded":!t.collapsed,onClick:()=>i.current.onTogglePinned(),children:[(0,d.jsx)(t9,{size:12,strokeWidth:3,className:`session-tree-chevron${t.collapsed?"":" is-open"}`}),(0,d.jsx)("span",{className:"session-tree-pinned-label",children:o("sidebar.pinned")}),(0,d.jsxs)("span",{className:"session-tree-pinned-count",children:["\xb7 ",t.count]}),t.collapsed&&t.running>0&&(0,d.jsx)("span",{className:"session-tree-pinned-dot is-running",role:"img",title:o("sidebar.agentRunning"),"aria-label":`${o("sidebar.agentRunning")} (${t.running})`}),t.collapsed&&t.awaiting>0&&(0,d.jsx)("span",{className:"session-tree-pinned-dot is-awaiting",role:"img",title:o("sidebar.agentAwaitingInput"),"aria-label":`${o("sidebar.agentAwaitingInput")} (${t.awaiting})`}),t.collapsed&&t.unread>0&&(0,d.jsx)("span",{className:"session-tree-pinned-dot is-unread",role:"img",title:o("sidebar.newSessionActivity"),"aria-label":`${o("sidebar.newSessionActivity")} (${t.unread})`})]})});case"pinned-more":case"group-more":{let e="pinned-more"===t.kind?Y:t.projectKey;return(0,d.jsxs)("div",{className:"session-tree-row session-tree-more",style:l,"data-row-key":t.key,children:[t.hidden>0&&(0,d.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"more",onClick:n=>s(t.key,e,"more",n.currentTarget),children:o("sidebar.showMore",{count:t.hidden})}),t.canShowLess&&(0,d.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"less",onClick:n=>s(t.key,e,"less",n.currentTarget),children:o("sidebar.showLess")})]})}case"group-empty":return(0,d.jsxs)("div",{className:"session-tree-row session-tree-group-empty",style:l,"data-row-key":t.key,children:[(0,d.jsx)("span",{className:"session-tree-group-empty-label",children:o("sidebar.noLiveSessions")}),!t.project.pinned&&(0,d.jsx)("button",{type:"button",className:"session-tree-more-toggle",onClick:()=>i.current.onPinEmptyGroup(t.project),children:o("sidebar.pinToKeep")})]});case"footer-open":return(0,d.jsx)("div",{className:"session-tree-row session-tree-footer",style:l,"data-row-key":t.key,children:(0,d.jsxs)("button",{type:"button",className:"session-tree-footer-button","aria-haspopup":"dialog",onClick:e=>i.current.onOpenOtherProject(e.currentTarget),children:[(0,d.jsx)(nu,{size:12}),(0,d.jsx)("span",{className:"session-tree-footer-label",children:o("projectCreate.title")})]})});case"footer-archived":return(0,d.jsx)("div",{className:"session-tree-row session-tree-footer",style:l,"data-row-key":t.key,children:(0,d.jsxs)("button",{type:"button",className:"session-tree-footer-button",onClick:()=>i.current.onOpenArchive(),children:[(0,d.jsx)(t8,{size:12}),(0,d.jsx)("span",{className:"session-tree-footer-label",children:o("sidebar.archivedCount",{count:t.count})}),(0,d.jsx)(t9,{size:10,className:"session-tree-footer-chevron"})]})})}}),rj=(0,u.memo)(function(e){let{row:t,top:n,height:r,menuOpen:i,handlers:s}=e,{t:o}=(0,tw.s)(),{project:l,expanded:a}=t,c=["session-tree-row session-tree-group session-tree-archive-group",l.current?"is-current":"",i?"is-active":""].filter(Boolean).join(" ");return(0,d.jsxs)("div",{className:c,style:rf(n,r),"data-row-key":t.key,children:[(0,d.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":a,title:l.root,onClick:e=>s.current.onToggleArchiveGroup?.(l.key,e.altKey),children:[(0,d.jsx)(t9,{size:12,strokeWidth:3,className:`session-tree-chevron${a?" is-open":""}`}),(0,d.jsx)(nc,{size:14,open:a,className:`session-tree-group-icon${a?" is-open":""}`}),(0,d.jsx)("span",{className:"session-tree-group-name",children:l.name}),(0,d.jsxs)("span",{className:"session-tree-archive-group-count",children:["\xb7 ",t.count]})]}),(0,d.jsx)("span",{className:"session-tree-group-actions",children:(0,d.jsx)("button",{type:"button",className:`session-tree-group-action${i?" is-active":""}`,"aria-label":o("sidebar.archivedProjectActions",{name:l.name}),title:o("sidebar.archivedProjectActions",{name:l.name}),"aria-haspopup":"menu","aria-expanded":i,onClick:e=>{e.stopPropagation(),s.current.onArchiveGroupMenu?.(l,e.currentTarget)},children:(0,d.jsx)(t4,{size:13})})})]})});function rk(e){let{heading:t,busy:n,error:r,showCancel:i,onCreate:s,onCancel:o}=e,{t:l}=(0,tw.s)(),[a,c]=(0,u.useState)(""),p=a.trim(),h=()=>{p&&!n&&s(p)};return(0,d.jsxs)("div",{className:"sidebar-worktree-form",children:[t&&(0,d.jsx)("div",{className:"sidebar-menu-header",children:t}),(0,d.jsx)("input",{className:"sidebar-worktree-input","data-sidebar-menu-autofocus":"",value:a,readOnly:n,placeholder:l("sidebar.branchName"),"aria-label":l("sidebar.branchName"),onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),h())}}),(0,d.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[(0,d.jsx)("button",{type:"button",className:"sidebar-worktree-create",disabled:n||!p,onClick:h,children:l(n?"sidebar.creating":"sidebar.create")}),i&&(0,d.jsx)("button",{type:"button",className:"sidebar-worktree-cancel",onClick:o,children:l("sidebar.cancel")})]}),r&&(0,d.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:r})]})}function rS(e,t){return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function rC(e){return e.branch??ei(e.path)}function rN(e){let{heading:t,dirty:n,busy:r,error:i,showCancel:s,onForce:o,onCancel:l}=e,{t:a}=(0,tw.s)();return(0,d.jsxs)("div",{className:"sidebar-worktree-form",children:[t&&(0,d.jsx)("div",{className:"sidebar-menu-header",children:t}),n&&(0,d.jsx)("div",{className:"sidebar-worktree-message",children:a("sidebar.forceRemoveCheckout")}),(n||s)&&(0,d.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[n&&(0,d.jsx)("button",{type:"button",className:"sidebar-worktree-force",disabled:r,onClick:o,children:a("sidebar.force")}),s&&(0,d.jsx)("button",{type:"button",className:"sidebar-worktree-cancel","data-sidebar-menu-autofocus":"",onClick:l,children:a("sidebar.cancel")})]}),i&&(0,d.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:i})]})}function rE(e){let{busy:t,onForce:n,onCancel:r}=e,{t:i}=(0,tw.s)(),s=(0,u.useId)();return(0,d.jsxs)("div",{className:"sidebar-worktree-confirm",children:[(0,d.jsx)("span",{id:s,className:"sidebar-worktree-confirm-text",title:i("sidebar.forceRemoveCheckout"),children:i("sidebar.forceRemoveCheckout")}),(0,d.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","aria-describedby":s,"aria-disabled":!!t||void 0,className:"sidebar-worktree-force",onClick:()=>{t||n()},children:i("sidebar.force")}),(0,d.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","data-sidebar-menu-autofocus":"",className:"sidebar-worktree-cancel",onClick:r,children:i("sidebar.cancel")})]})}function r$(e){let t,n,{layout:r,context:i,mobile:s,label:o,placeholder:l="",homeDir:a,projectActivity:c,worktreeHint:p=null,newWorktreeTitle:h,handleRef:m,onPick:f,onUseDefaultDirectory:g,onOpenFolder:x,onRefreshWorktrees:v,onCreateWorktree:b,onRemoveWorktree:y}=e,{t:w}=(0,tw.s)(),[j,k]=(0,u.useState)(null),S=(0,u.useRef)(j);S.current=j;let C=(0,u.useRef)(0),N=(0,u.useRef)(null),E=(0,u.useRef)(null),$=(0,u.useRef)(!1),M=(0,u.useRef)(f);M.current=f;let I="inline"!==r,T=!I,R=!s,{project:L,worktrees:A}=i,P=(t=i.worktrees??[]).find(e=>e.path===i.currentWorktreePath)??t.find(e=>e.isMain)??null,z=T&&L?eX(eY(i)).find(e=>{let{choice:t}=e;return t.key===L.key}):void 0;(0,u.useEffect)(()=>($.current=!0,()=>{$.current=!1}),[]);let W=()=>(C.current+=1,C.current),O=()=>k(null),F=(e,t)=>{let n=t.getBoundingClientRect(),i=Math.max(I?220:"project"===e?260:240,Math.round(n.width));k({id:W(),kind:e,anchor:{kind:"rect",rect:{left:n.left,top:n.top,right:n.right,bottom:n.bottom},align:"row"===r&&"worktree"===e?"end":"start"},opener:t,width:i,body:null,removing:!1}),"worktree"===e&&v()},D=(0,u.useRef)(F);D.current=F,(0,u.useImperativeHandle)(m,()=>({button:e=>("worktree"===e?E:N).current,openMenu:(e,t)=>{let n=t??("worktree"===e?E:N).current;n&&D.current(e,n)}}),[]);let B=(e,t)=>{k(n=>n?.id===e?t(n):n)},_=e=>{let t=W();k(n=>n?.kind==="worktree"?{...n,id:t,body:e,removing:!1}:n)},H=async e=>{let t,n=S.current;if(!n||n.body?.kind!=="create"||!L)return;let{id:r}=n,i=(e,t)=>{B(r,n=>({...n,body:{kind:"create",busy:e,error:t}}))};i(!0,null);try{t=await b(L,e)}catch(e){t={error:e instanceof Error?e.message:String(e)}}$.current&&("error"in t?i(!1,t.error):S.current?.id===r&&(k(null),M.current({cwd:t.path,projectKey:L.key,projectRoot:L.root},"worktree")))},U=async(e,t)=>{let n,r=S.current;if(!r||!L||!y)return;let{id:i}=r;B(i,e=>({...e,removing:!0,body:e.body?.kind==="remove"?{...e.body,busy:!0,error:null}:e.body}));try{n=await y(L,e.path,t)}catch(e){n={error:e instanceof Error?e.message:String(e)}}$.current&&B(i,t=>{if("removed"===n)return{...t,removing:!1,body:null};let r="dirty"===n||t.body?.kind==="remove"&&t.body.dirty;return{...t,removing:!1,body:{kind:"remove",worktree:e,dirty:r,busy:!1,error:"dirty"===n?null:n.error}}})},q=()=>[...(A??[]).map(e=>R&&K?.kind==="remove"&&K.dirty&&K.worktree.path===e.path?{type:"custom",id:`worktree:${e.path}`,content:(0,d.jsx)(rE,{busy:K.busy,onForce:()=>{U(e,!0)},onCancel:()=>_(null)})}:{type:"item",id:`worktree:${e.path}`,label:R?e.branch??rS(e.path,a):rC(e),mono:R,path:R,note:e.isMain?w("sidebar.main"):void 0,title:e.path,checked:e.path===P?.path,secondary:y&&!e.isMain?{label:w("sidebar.removeWorktreeTitle",{path:e.path}),icon:(0,d.jsx)(nn,{size:12}),danger:!0,disabled:j?.removing,onSelect:t=>{let{keepOpen:n}=t;n(),U(e,!1)}}:void 0,onSelect:()=>{L&&e.path!==P?.path&&f({cwd:e.path,projectKey:L.key,projectRoot:L.root},"worktree")}}),...R?[]:[{type:"separator",id:"separator"}],...R&&K?.kind==="create"?[]:[{type:"item",id:"new-worktree",label:w("sidebar.newWorktree"),icon:(0,d.jsx)(t2,{size:13}),onSelect:e=>{let{keepOpen:t}=e;t(),_({kind:"create",busy:!1,error:null})}}]],K=j?.kind==="worktree"?j.body:null,V="",Z=null,J=null;if(R&&j?.kind==="worktree")V=w("sidebar.switchWorktree"),n=q(),K?.kind==="create"?J=(0,d.jsx)(rk,{heading:null,busy:K.busy,error:K.error,showCancel:!0,onCreate:e=>{H(e)},onCancel:()=>_(null)}):K?.kind==="remove"&&K.error&&(J=(0,d.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:K.error}));else if(K?.kind==="create")V=h,Z=(0,d.jsx)(rk,{heading:s?null:V,busy:K.busy,error:K.error,showCancel:!s,onCreate:e=>{H(e)},onCancel:O});else if(K?.kind==="remove")V=w("sidebar.removeWorktreeHeading",{name:rC(K.worktree)}),Z=(0,d.jsx)(rN,{heading:s?null:V,dirty:K.dirty,busy:K.busy,error:K.error,showCancel:!s,onForce:()=>{U(K.worktree,!0)},onCancel:O});else if(j?.kind==="project"){let e,t;V=w("workspace.project"),t=(e=eX(eY(i)).map(e=>{let{choice:t,name:n,note:r}=e,i=c?.get(t.key),s=R&&void 0===t.alias;return{type:"item",id:`project:${t.key}`,label:s?rS(t.root,a):n,note:s?void 0:r??void 0,mono:R,path:s,title:t.root,checked:t.key===L?.key,badge:i?(0,d.jsx)(rb,{running:i.running,unread:i.unread,t:w}):void 0,onSelect:()=>{f({cwd:t.key===L?.key&&A?P?.path??t.root:t.root,projectKey:t.key,projectRoot:t.root},"project")}}})).length>0?[{type:"separator",id:"separator"}]:[],n=[...e,...t,{type:"item",id:"default-directory",label:w("sidebar.useDefaultDirectory"),icon:(0,d.jsx)(nc,{size:13}),onSelect:()=>g()},{type:"item",id:"open-folder",label:w(R?"sidebar.customPath":"sidebar.openOtherProject"),icon:R?(0,d.jsx)(t2,{size:13}):(0,d.jsx)(nu,{size:13}),onSelect:()=>x(j?.opener??null)}]}else j?.kind==="worktree"&&(V=w("sidebar.switchWorktree"),n=q());let Y=j?.kind==="project"?{placeholder:w("sidebar.filterProjects"),emptyLabel:w("sidebar.noMatchingProjects"),minChoices:R?9:void 0}:{placeholder:w("sidebar.filterWorktrees"),emptyLabel:w("sidebar.noMatchingWorktrees")},G=I&&void 0!==c&&[...c].some(e=>{let[t,{running:n,unread:r}]=e;return t!==L?.key&&(n>0||r>0)});return(0,d.jsxs)("div",{className:`project-picker is-${r}`,role:"group","aria-label":o,children:[(0,d.jsxs)("button",{ref:N,type:"button",className:L?"project-picker-button is-project":"project-picker-button is-project is-empty",title:L?.root??"","aria-haspopup":"menu","aria-expanded":j?.kind==="project",onClick:e=>F("project",e.currentTarget),children:[T&&(0,d.jsx)(nc,{size:12,className:"project-picker-icon"}),T&&L?(0,d.jsxs)("span",{className:"project-picker-name",children:[void 0===L.alias&&z?.note&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"project-picker-parent",children:z.note}),"/"]}),(0,d.jsx)("span",{className:"project-picker-leaf",children:L.alias??z?.name??ei(L.root)})]}):L?.alias!==void 0?(0,d.jsx)("span",{className:"project-picker-label is-alias",children:L.alias}):L?(0,d.jsx)("span",{className:"project-picker-path",children:(0,d.jsx)("span",{children:rS(L.root,a)})}):(0,d.jsx)("span",{className:"project-picker-label",children:l}),G&&(0,d.jsx)("span",{className:"project-picker-activity",role:"img",title:w("sidebar.newActivity"),"aria-label":w("sidebar.newActivity")}),T&&(0,d.jsx)(t9,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),A&&(0,d.jsxs)("button",{ref:E,type:"button",className:"project-picker-button",title:P?w("sidebar.worktreePath",{path:P.path}):w("sidebar.switchWorktree"),"aria-haspopup":"menu","aria-expanded":j?.kind==="worktree",onClick:e=>F("worktree",e.currentTarget),children:[(0,d.jsx)(t7,{size:11,className:P&&!P.isMain?"project-picker-icon is-linked":"project-picker-icon"}),(0,d.jsx)("span",{className:"project-picker-path",children:(0,d.jsx)("span",{children:P?P.branch??rS(P.path,a):"…"})}),P?.isMain&&"stacked"===r&&(0,d.jsx)("span",{className:"project-picker-note",children:w("sidebar.main")}),I&&A.length>1&&(0,d.jsx)("span",{className:"project-picker-note",children:A.length}),(0,d.jsx)(t9,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),!A&&I&&p&&(0,d.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:p.title,className:"project-picker-button is-inactive",children:[(0,d.jsx)(t7,{size:11,className:"project-picker-icon"}),(0,d.jsx)("span",{className:"project-picker-label",children:p.label})]}),(0,d.jsx)(rs,{open:null!==j,anchor:j?.anchor??null,sheet:s,ariaLabel:V,title:V,items:n,filter:Y,cancelLabel:w("sidebar.cancel"),focusCancel:K?.kind==="remove",onClose:O,returnFocusTo:j?.opener??null,width:j?.width,classic:R,footer:J,focusKey:K?`${K.kind}:${"remove"===K.kind&&K.dirty}`:"list",children:Z})]})}function rM(e){let{open:t,query:n,children:r,selectedSessionId:i,onSelectSession:s,archivedSessionIds:o}=e,{t:l,locale:a}=(0,tw.s)(),[c,p]=(0,u.useState)({query:""}),h=n.trim(),m=c.query===h?c.response:void 0,f=c.query===h&&c.failed;return(0,u.useEffect)(()=>{if(!t||!h)return;let e=new AbortController;p({query:h});let n=setTimeout(async()=>{try{let t=await fetch(`/api/sessions/search?${new URLSearchParams({q:h})}`,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();e.signal.aborted||p({query:h,response:n})}catch{e.signal.aborted||p({query:h,failed:!0})}},300);return()=>{clearTimeout(n),e.abort()}},[t,h]),t&&h?(0,d.jsxs)("div",{className:"min-h-20 flex-1 overflow-y-auto","aria-busy":!m&&!f,children:[(0,d.jsx)("div",{role:"status",className:"px-3 py-2 text-xs text-text-muted",children:f?l("sidebar.sessionSearchFailed"):m?0===m.results.length?l("sidebar.sessionSearchEmpty"):l("sidebar.sessionSearchCount",{count:m.results.length}):l("sidebar.sessionSearching")}),m?.truncated&&(0,d.jsx)("div",{role:"status",className:"px-3 pb-2 text-xs text-text-muted",children:l("sidebar.sessionSearchPartial")}),m?.results.map(e=>{let{session:t,entryId:n,blockIndex:r,titleMatch:c,before:u,match:p,after:h}=e;return(0,d.jsxs)("button",{type:"button",onClick:()=>s(t,n,r),"aria-current":t.id===i?"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 ${t.id===i?"bg-bg-selected":""}`,children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)("span",{className:"min-w-0 truncate text-xs font-medium text-text",children:c?(0,d.jsxs)(d.Fragment,{children:[u,(0,d.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:p}),h]}):t.name||t.firstMessage}),o?.has(t.id)&&(0,d.jsx)("span",{className:"shrink-0 rounded-[4px] border border-border px-1 text-[10px] leading-[14px] text-text-dim",children:l("sidebar.archived")})]}),(0,d.jsxs)("span",{className:"mt-1 flex min-w-0 gap-2 text-[10px] text-text-dim",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",title:t.cwd,children:t.cwd}),(0,d.jsx)("span",{className:"shrink-0",children:(0,ra.fw)(t.modified,a)})]}),!c&&(0,d.jsxs)("span",{className:"mt-1 block text-xs leading-relaxed wrap-anywhere text-text-muted",children:[u,(0,d.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:p}),h]})]},t.id)})]}):r}function rI(e){let{toast:t,dismissLabel:n,durationMs:r,onDismissRef:i}=e,s=(0,u.useRef)(null),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(!1),p=o||a;return(0,u.useLayoutEffect)(()=>{let e=s.current;e&&window.matchMedia?.("(hover: hover)").matches&&e.matches(":hover")&&l(!0)},[]),(0,u.useEffect)(()=>{if(p)return;let e=window.setTimeout(()=>i.current(),r);return()=>window.clearTimeout(e)},[p,r,i]),(0,d.jsxs)("div",{ref:s,className:"sidebar-toast",onPointerEnter:e=>{"mouse"===e.pointerType&&l(!0)},onPointerLeave:()=>l(!1),onFocus:()=>c(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||c(!1)},children:[t.tail?(0,d.jsxs)("span",{className:"sidebar-toast-message has-tail",title:t.message+t.tail,children:[(0,d.jsx)("span",{className:"sidebar-toast-message-head",children:t.message}),(0,d.jsx)("span",{className:"sidebar-toast-message-tail",children:t.tail})]}):(0,d.jsx)("span",{className:"sidebar-toast-message",title:t.message,children:t.message}),t.actions.map(e=>(0,d.jsx)("button",{type:"button",className:"sidebar-toast-action",onClick:()=>{i.current(),e.onClick()},children:e.label},e.id)),(0,d.jsx)("button",{type:"button",className:"sidebar-toast-dismiss","aria-label":n,title:n,onClick:()=>i.current(),children:(0,d.jsx)(nl,{size:12})})]})}function rT(e){let{toast:t,onDismiss:n,dismissLabel:r,durationMs:i=1e4}=e,s=(0,u.useRef)(n);return s.current=n,(0,d.jsx)("div",{className:"sidebar-toast-region",role:"status","aria-live":"polite",children:t?(0,d.jsx)(rI,{toast:t,dismissLabel:r,durationMs:i,onDismissRef:s},t.id):null})}let rR={remote:"sidebar.openInExplorerRemoteOnly","unsupported-platform":"sidebar.openInExplorerUnsupported"};function rL(e){let{ref:t,onClick:n,title:r,disabled:i,pressed:s,expanded:o,controls:l,done:a,className:c,children:u}=e;return(0,d.jsx)("button",{ref:t,type:"button",onClick:n,disabled:i,title:r,"aria-label":r,"aria-pressed":s,"aria-expanded":o,"aria-controls":l,className:`sidebar-tool-button${s||o?" is-active":""}${a?" is-done":""}${c?` ${c}`:""}`,children:u})}let rA="pi-web:unread-session-ids",rP="pi-web:last-custom-cwd",rz={"open-new-tab":"sidebar.openInNewTab",pin:"sidebar.pin",unpin:"sidebar.unpin",rename:"sidebar.rename",fork:"sidebar.fork","mark-read":"sidebar.markRead","mark-unread":"sidebar.markUnread",archive:"sidebar.archive",unarchive:"sidebar.unarchive",delete:"sidebar.delete"};function rW(){try{return window.localStorage.getItem(rP)??""}catch{return""}}function rO(e){try{window.localStorage.setItem(rP,e)}catch{}}function rF(e){if(!e)return new Set;try{let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e))}catch{}return new Set}function rD(e,t){let n=new Set(t);if(n.size!==e.size)return n;for(let t of n)if(!e.has(t))return n;return e}function rB(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function r_(e){let t=document.activeElement;e&&t instanceof HTMLElement&&t!==document.body&&(0===t.getClientRects().length||null!==t.closest("[inert]"))?e.focus({preventScroll:!0}):e7(document,e)}function rH(e,t){let n=e.getBoundingClientRect();return{kind:"rect",rect:{left:n.left,top:n.top,right:n.right,bottom:n.bottom},align:t}}function rU(e){var t,n,r;let i,s,o,l,a,c,p,h,{onOpenArchive:m,archiveActive:f=!1,onArchiveStateChange:v,fileExplorerTarget:y,selectedSessionId:w,onSelectSession:j,onNewSession:k,onOpenSettings:S,controlRef:E,onNewSessionContextChange:M,initialSessionId:I,initialSessionLinked:T,skipInitialProjectSelection:R,onInitialRestoreDone:z,refreshKey:B,onSessionDeleted:_,selectedCwd:J,onCwdChange:et,onOpenFile:ev,onOpenTerminal:eb,explorerRefreshKey:ey,onExplorerRefresh:ej,onAtMention:ek,onAtMentions:eS,onBackgroundTaskDone:eC,hiddenFinishedSessionIds:eN,onRunningSessionIdsChange:eE,onSessionsChange:e$}=e,{t:eO}=(0,tw.s)(),eZ=tT(),[eX,eQ]=(0,u.useState)([]),e2=(0,u.useRef)(null),e6=(0,u.useRef)(0),[e5,e9]=(0,u.useState)(!0),[te,tt]=(0,u.useState)(!1),[tn,tr]=(0,u.useState)(null),[ti,ts]=(0,u.useState)(null),[to,tl]=(0,u.useState)(""),[ta,tc]=(0,u.useState)(!1),[tu,tp]=(0,u.useState)(rW),[th,tf]=(0,u.useState)(null),[tg,tx]=(0,u.useState)(!1),[tb,tj]=(0,u.useState)(!1),[tk,tS]=(0,u.useState)(null),tC=(0,u.useRef)(null),[tN,tE]=(0,u.useState)(null),[t$,tM]=(0,u.useState)(null),tI=(0,u.useRef)(null);tI.current??=new Set(eq());let[tR,tL]=(0,u.useState)(0),[tA,tP]=(0,u.useState)(!1),[tz,tD]=(0,u.useState)(!1),[tU,tq]=(0,u.useState)(!1),[tK,tV]=(0,u.useState)(""),[tZ,tJ]=(0,u.useState)(0),[tY,tG]=(0,u.useState)(!0),[tX,t0]=(0,u.useState)(!1),[t1,t2]=(0,u.useState)(!1),[t7,nl]=(0,u.useState)(null),[na,nu]=(0,u.useState)(null),[nb,ny]=(0,u.useState)(()=>new Set),[nw,nS]=(0,u.useState)(()=>new Set),[nC,nN]=(0,u.useState)(()=>new Set),[nE,n$]=(0,u.useState)(()=>(function(){try{return rF(window.localStorage.getItem(rA))}catch{return new Set}})()),nM=(0,u.useRef)(new Set),nI=(0,u.useRef)(new Set),nT=(0,u.useRef)(new Set),nR=(0,u.useRef)(new Set),nL=(0,u.useRef)(!1),nA=(0,u.useRef)(null),nP=(0,u.useRef)(null),nz=(0,u.useRef)(null),nW=(0,u.useSyncExternalStore)(ty,tv,()=>tm),nO=!!y,nF=!nO&&!eZ&&"below"===nW,[nD,nB]=(0,u.useState)("sessions"),[n_,nH]=(0,u.useState)(!1),nU=(0,u.useRef)(null),nq=(0,u.useRef)(null),nK=(0,u.useRef)(null),nV=(0,u.useRef)(null),nZ=(0,u.useRef)(new WeakMap),[nJ,nY]=(0,u.useState)({}),[nG,nX]=(0,u.useState)(()=>new Set),[nQ,n1]=(0,u.useState)({}),[n2,n4]=(0,u.useState)(!1),[n8,n3]=(0,u.useState)(!1),[n6,n5]=(0,u.useState)([]),[n9,n7]=(0,u.useState)(!1),{phase:re,start:rt,end:rn}=tH(),{phase:rr,start:ri,end:ro}=tH(),ra=(0,u.useRef)(n_);ra.current=n_;let rc=(0,u.useRef)(n9);rc.current=n9;let rd=(0,u.useCallback)(e=>{e!==rc.current&&ri(e?"in":"out"),n7(e)},[ri]),ru=(i=n_&&"out"===re,s=!n_&&"in"===re,{bodyHidden:n_&&!i,bodyInert:i,moving:i||s,open:!n_&&!s}),rh=(o=n9&&"in"===rr,l=!n9&&"out"===rr,{mainHidden:n9&&!o,mainInert:o,archiveMounted:n9||l,archiveInert:l,archiveClass:o?"is-entering":l?"is-leaving":null}),[rf,rg]=(0,u.useState)(null),[rx,rv]=(0,u.useState)(null),[rb,ry]=(0,u.useState)(null),[rw,rj]=(0,u.useState)(null),[rk,rS]=(0,u.useState)(null),rC=(0,u.useRef)(0),rN=(0,u.useCallback)(e=>{rS(t=>t?.id===e?null:t)},[]),[rE,rI]=(0,u.useState)(null),rP=(0,u.useCallback)(e=>{rI(t=>t?.id===e?null:t)},[]),rU=(0,u.useRef)(w);rU.current=w;let[rK,rV]=(0,u.useState)(null),rZ=(0,u.useRef)(0),rJ=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0;rZ.current+=1,rV({id:rZ.current,message:e,...n?{tail:n}:{},actions:t})},[]),[rY,rG]=(0,u.useState)(0),rX=(0,u.useRef)(0),rQ=(0,u.useRef)(null),[r0,r1]=(0,u.useState)(0),r2=(0,u.useRef)(null),r4=(0,u.useRef)(null),r8=(0,u.useRef)(null),r3=(0,u.useRef)(null),[r6,r5]=(0,u.useState)(0),r9=(0,u.useCallback)(e=>{r3.current=e,r5(e=>e+1)},[]);(0,u.useEffect)(()=>{let e=r3.current;r3.current=null,e&&e7(document,e())},[r6]);let{state:r7,loaded:ie,synced:it,error:ir,apply:ii,snapshot:is,noteRevision:io,refresh:il}=function(){let[e,t]=(0,u.useState)(H),[n,r]=(0,u.useState)(!1),[i,s]=(0,u.useState)(!1),[o,l]=(0,u.useState)(null),a=(0,u.useRef)(e),c=(0,u.useRef)(e),d=(0,u.useRef)([]),p=(0,u.useRef)(Promise.resolve()),h=(0,u.useRef)(0),m=(0,u.useRef)(null),f=(0,u.useCallback)(()=>{let e=a.current;for(let{request:t,now:n}of d.current)e=function e(t,n,r){var i,s,o,l;let a=function(e){let t={};for(let[n,r]of Object.entries(e.sessions))t[n]={...r};let n={};for(let[t,r]of Object.entries(e.projects))n[t]={...r};let r={...e,sessions:t,projects:n};return e.projectOrder&&(r.projectOrder=[...e.projectOrder]),e.projectNames&&(r.projectNames={...e.projectNames}),e.removedProjects&&(r.removedProjects={...e.removedProjects}),r}(t),c=!1;switch(n.action){case"create-project":{let i=L(n.name);if(!i)return{state:a,changed:!1};let s=K(a,n.projectKey,i);if(A(a,n.projectKey)!==i)return{state:t,changed:!1};let o=e(a,{action:"pin-project",projectKey:n.projectKey,root:n.root,pinned:!0},r);return{state:o.state,changed:s||o.changed}}case"set":for(let e of n.ids){let t=$(a.sessions,e)?a.sessions[e]:void 0;U(a.sessions,e,function(e,t,n){let r={...e};return"pinned"in t?t.pinned?(void 0===r.pinnedAt||void 0!==r.archivedAt)&&(r.pinnedAt=n,delete r.archivedAt):delete r.pinnedAt:t.archived?(r.archivedAt=n,delete r.pinnedAt):delete r.archivedAt,r}(t,n,r))&&(c=!0)}break;case"restore":for(let e of n.entries){let t={};null!==e.pinnedAt&&(t.pinnedAt=e.pinnedAt),null!==e.archivedAt&&(t.archivedAt=e.archivedAt),U(a.sessions,e.id,t)&&(c=!0)}break;case"remove-project":{let{projectKey:e}=n;P(a,e)||(a.removedProjects={...a.removedProjects,[e]:r},c=!0),$(a.projects,e)&&(delete a.projects[e],c=!0);break}case"pin-project":{let{projectKey:e,root:t}=n,l=$(a.projects,e)?a.projects[e]:void 0;if(n.pinned?(P(a,e)&&(delete a.removedProjects[e],0===Object.keys(a.removedProjects).length&&delete a.removedProjects,c=!0),l?.root!==t&&(a.projects[e]={pinnedAt:r,root:t},c=!0)):l&&(delete a.projects[e],c=!0),(n.pinned?void 0===l:void 0!==l)&&a.projectOrder){let t,r,l=(i=a.projectOrder,s=a.projects,o=n.pinned,r=i.filter(t=>t!==e),o?(t=0,r.forEach((e,n)=>{$(s,e)&&(t=n+1)})):(t=r.findIndex(e=>!$(s,e)))<0&&(t=r.length),r.splice(t,0,e),r);F(l.length,O(l))&&q(a,l)&&(c=!0)}break}case"add-projects":q(a,function(e,t){let n=V(e,t),r=e.length,i=O(e),s=n.length;for(;s>0;){let e=W(n[s-1]);if(!F(r+1,i+e))break;r++,i+=e,s--}return[...n.slice(s),...e]}(a.projectOrder??[],n.keys))&&(c=!0);break;case"move-project":{let e,t,{projectKey:r,anchorKey:i,position:s,add:o}=n,d=a.projectOrder??[];q(a,function(e,t){let n=e.length,r=O(e);if(F(n,r))return e;let i=new Set;for(let s=e.length-1;s>=0&&!F(n,r);s--)t.has(e[s])||(i.add(s),n--,r-=W(e[s]));let s=e.filter((e,t)=>!i.has(t));return F(n,r)?s:D(s)}((l=[...V(d,o),...d],(e=l.filter(e=>e!==r)).includes(i)||e.unshift(i),t=e.indexOf(i),e.splice("before"===s?t:t+1,0,r),e),new Set([r,i,...o])))&&(c=!0);break}case"rename-project":{let e=L(n.name);void 0!==e&&K(a,n.projectKey,e)&&(c=!0)}}return{state:a,changed:c}}(e,t,n).state;c.current=e,t(e)},[]),g=(0,u.useCallback)(async e=>{let t=++h.current;m.current=t;try{let n=await fetch(tF,{cache:"no-store"}),i=await t_(n);if(t!==h.current)return;a.current=i,f(),e||l(null),r(!0),s(!0)}catch(e){if(t!==h.current)return;l(tB(e)),r(!0)}finally{m.current===t&&(m.current=null)}},[f]),x=(0,u.useCallback)(()=>g(!1),[g]),v=(0,u.useCallback)(e=>{"number"!=typeof e||!Number.isFinite(e)||d.current.length>0||e===a.current.revision||(null===m.current||m.current!==h.current)&&x()},[x]),b=(0,u.useCallback)(e=>{let t={request:e,now:Date.now()};d.current=[...d.current,t],f();let n=async()=>{let n=!1;try{let t=await fetch(tF,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store"}),i=await t_(t);h.current++,a.current=i,l(null),r(!0),s(!0),n=!0}catch(e){l(tB(e))}return d.current=d.current.filter(e=>e!==t),f(),n||await g(!0),n},i=p.current.then(n,n);return p.current=i,i},[g,f]),y=(0,u.useCallback)(e=>(function(e,t){let n=new Set,r=[];for(let i of t){if(n.has(i))continue;n.add(i);let t=$(e.sessions,i)?e.sessions[i]:void 0;r.push({id:i,pinnedAt:t?.pinnedAt??null,archivedAt:t?.archivedAt??null})}return r})(c.current,e),[]);return(0,u.useEffect)(()=>{x()},[x]),(0,u.useMemo)(()=>({state:e,loaded:n,synced:i,error:o,refresh:x,noteRevision:v,apply:b,snapshot:y}),[e,n,i,o,x,v,b,y])}(),ia=(0,u.useCallback)(async e=>{let t=await ii(e);return t||rG(e=>e+1),t},[ii]),ic=(0,u.useCallback)((e,t)=>{ia({action:"pin-project",projectKey:e,root:t,pinned:!0})},[ia]),id=(0,u.useRef)(null),iu=(0,u.useRef)(null);tO(iu);let ip=(0,u.useRef)(null),ih=(0,u.useRef)(null),im=(0,u.useRef)(320),ig=(0,u.useCallback)(()=>{let e=ih.current,t=id.current;return e&&t&&0!==e.clientHeight?e.clientHeight-t.offsetHeight:window.innerHeight-36},[]),ix=(0,u.useCallback)(()=>Math.round(.45*ig()),[ig]),iv=(0,u.useCallback)(()=>ig()-120,[ig]),ib=tW({ariaLabel:eO("sidebar.resizeFiles"),axis:"vertical",cssVariable:"--sidebar-files-height",defaultWidth:320,getDefaultWidth:ix,getMaxWidth:iv,growthDirection:"up",maxWidth:2e3,minWidth:220,persistClamp:!1,storageKey:"pi-web:sidebar-files-height",widthRef:im}),iy=ib.panelRef,iw=(0,u.useCallback)(e=>{ih.current=e,iy.current=e},[iy]),ij=ib.reclampWidth;(0,u.useEffect)(()=>{let e=ih.current;if(!nF||!e||"u"<typeof ResizeObserver)return;let t=new ResizeObserver(()=>ij());return t.observe(e),()=>t.disconnect()},[ij,nF]),(0,u.useEffect)(()=>{let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return"sessions";try{return"files"===e.getItem(eI)?"files":"sessions"}catch{return"sessions"}}();"sessions"!==e&&nB(e);let t=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!t)return{};try{let e=t.getItem(eT);if(null!==e)return e_(JSON.parse(e))}catch{return{}}try{let n=t.getItem(eR);if(null===n)return{};e=e_(JSON.parse(n))}catch{e={}}let n=Object.fromEntries(Object.entries(e).filter(e=>{let[,t]=e;return!t}));return eH(n,t),n}();Object.keys(t).length>0&&nY(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return!1;try{return"true"===e.getItem(eA)}catch{return!1}}()&&n4(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return!1;try{return"true"===e.getItem(eP)}catch{return!1}}()&&n3(!0);let n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return[];try{let t=e.getItem(eL),n=null===t?[]:JSON.parse(t);if(!Array.isArray(n))return[];let r=n.filter(e=>"string"==typeof e&&""!==e);return[...new Set(r)].slice(-300)}catch{return[]}}();n.length>0&&n5(n),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return!1;try{return"true"===e.getItem(eW)}catch{return!1}}()&&nH(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(!e)return!1;try{return"true"===e.getItem(ez)}catch{return!1}}()&&t0(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eB();if(e)for(let t of eD)try{e.removeItem?.(t)}catch{}}()},[]);let ik=(0,u.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=++e6.current;try{e&&e9(!0);let i=await fetch(n?"/api/sessions?summary=1":t?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!i.ok)throw Error(`HTTP ${i.status}`);let s=await i.json();if(r!==e6.current)return;e2.current=s.sessionListVersion,eQ(s.sessions),n||tt(!0),nL.current||(nT.current=new Set(s.completionNotificationSuppressedSessionIds??[]),ny(e=>rD(e,s.runningSessionIds??[])),nS(e=>rD(e,s.awaitingInputSessionIds??[])));let o=new Set(s.sessions.filter(e=>!g(e.relation)).map(e=>e.id));n$(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>o.has(e)));return t.size===e.size?e:t}),tr(null)}catch(e){r===e6.current&&tr(String(e))}finally{r===e6.current&&e9(!1)}},[]),iS=(0,u.useRef)(!1);(0,u.useEffect)(()=>{let e=!iS.current;iS.current=!0;let t=!0;return e?ik(!0,!1,!0).then(()=>{t&&(nA.current=setTimeout(()=>{nA.current=null,t&&ik(!1,!0)},750))}):ik(),()=>{t=!1,nA.current&&(clearTimeout(nA.current),nA.current=null)}},[ik,B]),(0,u.useEffect)(()=>{let e=!1;return fetch("/api/open-in-explorer").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&nl(t)}).catch(()=>{}),()=>{e=!0}},[]),(0,u.useEffect)(()=>{nu(null)},[ti,J]);let iC=(0,u.useCallback)(async()=>{let e=ti??J;if(!e)return!1;try{let t=await fetch("/api/open-in-explorer",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})});if(t.ok)return nu(null),!1;let n=await t.json().catch(()=>({}));nu(n.error??`HTTP ${t.status}`)}catch(e){nu(e instanceof Error?e.message:String(e))}return!0},[ti,J]),iN=eO(t7?.platform==="darwin"?"sidebar.openInFinder":t7?.platform==="win32"?"sidebar.openInExplorer":"sidebar.openInFileManager"),iE=t7?.supported===!1,i$=na?eO(rR[na]??na):null;(0,u.useEffect)(()=>{try{0===nE.size?window.localStorage.removeItem(rA):window.localStorage.setItem(rA,JSON.stringify([...nE]))}catch{}},[nE]),(0,u.useEffect)(()=>{let e=e=>{(null===e.key||e.key===rA)&&n$(t=>rD(t,[...rF(e.newValue)]))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,u.useEffect)(()=>{let e=!1,t=null,n=null,r=()=>{t&&clearTimeout(t),t=null},i=async()=>{if(e||"visible"!==document.visibilityState)return;let s=new AbortController;n?.abort(),n=s;let o=Date.now(),l=null,a="error",c=null;try{let t=await fetch("/api/agent/running",{cache:"no-store",signal:s.signal});if(c=t.status,!t.ok)return;a="ok";let r=await t.json();if(l=Date.now(),e||n!==s)return;nL.current=!0,nT.current=new Set(r.completionNotificationSuppressedSessionIds??[]),ny(e=>rD(e,r.runningSessionIds??[])),nS(e=>rD(e,r.awaitingInputSessionIds??[])),nN(e=>rD(e,r.subagentsActiveSessionIds??[])),io(r.sessionUiStateRevision),r.sessionListVersion!==e2.current&&await ik()}catch{a=s.signal.aborted?"aborted":"error"}finally{n===s&&(n=null),r(),e||"visible"!==document.visibilityState||(t=setTimeout(()=>void i(),2500)),function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=Date.now();td.count+=1,"error"===t&&(td.failures+=1),td.last={at:i,durationMs:Math.max(0,(r??i)-e),outcome:t,httpStatus:n}}(o,a,c,l)}},s=()=>{"visible"===document.visibilityState?i():(r(),n?.abort(),n=null)};return i(),document.addEventListener("visibilitychange",s),()=>{e=!0,r(),n?.abort(),document.removeEventListener("visibilitychange",s)}},[ik,io]),(0,u.useEffect)(()=>{eE?.(nb)},[eE,nb]),(0,u.useEffect)(()=>{e$?.(eX)},[eX,e$]),(0,u.useEffect)(()=>{!function(e){let t,n;if("u"<typeof document)return;let r=(n=(t=e0(e.awaiting))+e0(e.unread))<=0?null:{kind:t>0?"awaiting":"unread",count:Math.min(n,99)},i=r?`${r.kind}:${r.count}`:"none";if(i!==e1){if(e1=i,!r){for(let[e,t]of e4)e.href=t;return}for(let e of e8())e4.has(e)||e4.set(e,e.href);e3(r,i)}}({awaiting:nw.size,unread:function(e,t){if(!t||0===t.size)return e.size;let n=0;for(let r of t)e.has(r)||(n+=1);return e.size+n}(nE,eN)})},[nw,nE,eN]),(0,u.useEffect)(()=>{let e=nM.current,t=[...e].filter(e=>!nb.has(e)&&e!==w),n=new Set([...nb,...nC]),r=[...nI.current].filter(e=>!n.has(e)&&e!==w),i=new Set(eX.filter(e=>g(e.relation)).map(e=>e.id)),s=r.filter(e=>!nR.current.has(e)&&!i.has(e)),o=[...nb].filter(t=>!e.has(t));(s.length>0||o.length>0)&&n$(e=>{let t=new Set(e);return nb.forEach(e=>t.delete(e)),s.forEach(e=>t.add(e)),t});let l=o.some(e=>!eX.some(t=>t.id===e));(t.length>0||l)&&ik(),s.length>0&&eC?.(),nM.current=nb,nI.current=n;let a=nR.current;nR.current=new Set([...n].filter(e=>nT.current.has(e)||i.has(e)||a.has(e)&&!nb.has(e)))},[nb,nC,w,eX,ik,eC]),(0,u.useEffect)(()=>{w&&n$(e=>{if(!e.has(w))return e;let t=new Set(e);return t.delete(w),t})},[w]),(0,u.useEffect)(()=>{void 0!==ey&&tL(e=>e+1)},[ey]),(0,u.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&tl(e.home)}).catch(()=>{})},[]);let iM=(0,u.useRef)(!1),iI=(0,u.useCallback)(e=>e?function(e,t){let{validated:n,listing:r,sessions:i}=t;if(n?.cwd===e)return{root:n.root,key:n.key};if(r?.forCwd===e||r?.isTopLevel&&r.worktrees.some(t=>t.path===e))return{root:r.projectRoot,key:r.projectKey};let s=i.find(t=>t.cwd===e||(t.projectRoot??t.cwd)===e);return s?{root:s.projectRoot??s.cwd,key:C(s)}:{root:e,key:e}}(e,{validated:tk,listing:tN,sessions:eX}):null,[tk,tN,eX]),iT=(0,u.useMemo)(()=>iI(ti),[iI,ti]),iR=(0,u.useRef)(null);(0,u.useEffect)(()=>{let e=iI(ti),t=iR.current;(t?.cwd!==ti||t.key!==(e?.key??null))&&(iR.current={cwd:ti,key:e?.key??null},et?.(ti,e?.root??null,e?.key??null))},[ti,et,iI]);let iL=(0,u.useRef)(null);(0,u.useEffect)(()=>{if(!J){iL.current=null;return}J!==iL.current&&(iL.current=J,ts(J))},[J]);let[iA,iP]=(0,u.useState)(0);(0,u.useLayoutEffect)(()=>{if(!ti){tE(null),tM(null);return}let e=!1;return tM(ti),fetch(`/api/worktrees?cwd=${encodeURIComponent(ti)}`).then(e=>e.json()).then(t=>{if(!e){if(tM(null),t.error||!t.projectRoot)return void tE(null);t.isGit?tI.current?.delete(ti):tI.current?.add(ti),function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eB();if(!n||!e)return;let r=eq(n),i=r.indexOf(e);if(t?-1===i:-1!==i&&i===r.length-1)return;let s=r.filter(t=>t!==e);t||s.push(e);try{n.setItem(eF,JSON.stringify(s.slice(-50)))}catch{}}(ti,!!t.isGit),tE({forCwd:ti,projectRoot:t.projectRoot,projectKey:t.projectKey??t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,currentWorktreePath:t.currentWorktreePath??null,worktrees:t.worktrees??[]})}}).catch(()=>{e||(tM(null),tE(null))}),()=>{e=!0}},[ti,iA,B]),(0,u.useEffect)(()=>{if(0!==eX.length&&!R&&null===ti){if(I&&!iM.current){iM.current=!0;let e=eX.find(e=>e.id===I);if(e){ts(e.cwd),j(e,!0);return}z?.(),T&&rJ(eO("sidebar.sessionNotFound"))}let e=N(eX);e.length>0&&ts(e[0].root)}},[eX,ti,I,T,R,j,z,rJ,eO]);let iz=tN?tN.worktrees.find(e=>e.path===ti)??(tN.forCwd===ti&&tN.currentWorktreePath?tN.worktrees.find(e=>e.path===tN.currentWorktreePath):void 0)??tN.worktrees.find(e=>e.isMain):void 0,iW=iz?.path??null,iO=(0,u.useCallback)(async function(e){let{remember:t=!0,purpose:n=ta}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(e??tu).trim();if(r&&!tg){tx(!0),tf(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r})}),i=await e.json().catch(()=>({}));if(!e.ok||i.error||!i.cwd||!i.projectRoot||!i.projectKey)return void tf(i.error??`HTTP ${e.status}`);if(t&&(rO(i.cwd),tp(i.cwd)),tc(!1),"new-session"===n){let e=r4.current,t=r8.current;r4.current=null,r8.current=null,e?.({cwd:i.cwd,projectKey:i.projectKey,projectRoot:i.projectRoot}),r9(()=>t?.isConnected?t:null);return}r8.current=null,ic(i.projectKey,i.projectRoot),tS({cwd:i.cwd,root:i.projectRoot,key:i.projectKey}),ts(i.cwd)}catch(e){tf(e instanceof Error?e.message:String(e))}finally{tx(!1)}}},[ta,tu,tg,r9,ic]),iF=(0,u.useCallback)(e=>{r8.current=e,tc("files"),tf(null)},[]),iD=(0,u.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";try{let t=await fetch("/api/default-cwd",{method:"POST"}),n=await t.json();n.cwd&&await iO(n.cwd,{remember:!1,purpose:e})}catch{}},[iO]),iB=(0,u.useRef)(iD);iB.current=iD;let i_=(0,u.useCallback)(async(e,t)=>{try{let r=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.root,branch:t})}),i=await r.json().catch(()=>({}));if(!r.ok||i.error||!i.path){var n;let e,t=(n=r.status,(e="branch_in_use"===i.code?"sidebar.worktreeBranchInUse":"branch_worktree_missing"===i.code?"sidebar.worktreeBranchMissing":null)&&i.branch&&i.worktreePath?{key:e,params:{branch:i.branch,path:i.worktreePath}}:{error:i.error??`HTTP ${n}`});return"key"in t?{error:eO(t.key,{...t.params,path:eV(t.params.path)})}:t}let s=i.path;return tE(n=>n&&n.projectKey===e.key&&!n.worktrees.some(e=>e.path===s)?{...n,worktrees:[...n.worktrees,{path:s,branch:t,isMain:!1}]}:n),iP(e=>e+1),{path:s}}catch(e){return{error:e instanceof Error?e.message:String(e)}}},[eO]),iH=(0,u.useCallback)(async(e,t,n)=>{try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.root,path:t,force:n})}),i=await r.json().catch(()=>({}));if(!r.ok){if(i.dirty&&!n)return"dirty";return{error:i.error??`HTTP ${r.status}`}}return iW===t&&ts(e.root),iP(e=>e+1),"removed"}catch(e){return{error:e instanceof Error?e.message:String(e)}}},[iW]),iU=(0,u.useCallback)(()=>iP(e=>e+1),[]),iq=(0,u.useCallback)(e=>{let{cwd:t,projectKey:n,projectRoot:r}=e;n&&r&&ic(n,r),n&&r&&tS({cwd:t,root:r,key:n}),ts(t)},[ic]),iK=(0,u.useCallback)((e,t,n,r)=>{eQ(t=>t.some(t=>t.id===e.id)?t:[e,...t]),e.cwd&&ts(e.cwd),j(e,!1,t,n,r)},[j]),iV=(0,u.useCallback)(e=>{let{cwd:t,projectKey:n,projectRoot:r,carryComposer:i}=e;n&&r&&ic(n,r),n&&r&&tS({cwd:t,root:r,key:n}),ts(t),k?.("function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`,t,n,i?{carryComposer:!0}:void 0)},[k,ic]),iZ=(0,u.useRef)(iV);iZ.current=iV;let iJ=(0,u.useRef)(async()=>!1),iY=(0,u.useRef)(async()=>!1),iG=(0,u.useRef)(async()=>!1);(0,u.useImperativeHandle)(E,()=>({restoreArchivedSession:e=>iJ.current(e),deleteArchivedSession:e=>iY.current(e),deleteArchivedSessions:e=>iG.current(e),refreshArchive:il,startNewSessionIn:e=>iZ.current(e),openFolderForNewSession:(e,t)=>{r4.current=e,r8.current=t,tf(null),tc("new-session")},openDefaultDirectoryForNewSession:e=>{r4.current=e,r8.current=null,iB.current("new-session")},refreshWorktrees:iU,createWorktree:i_}),[i_,iU,il]);let iX=(0,u.useCallback)(()=>{ti&&iV({cwd:ti})},[ti,iV]),iQ=(0,u.useMemo)(()=>N(eX),[eX]),i0=(0,u.useMemo)(()=>x(eX),[eX]),i1=(0,u.useMemo)(()=>new Map(i0.map(e=>[e.root.id,e])),[i0]),i2=(0,u.useMemo)(()=>x(eX).filter(e=>en(e,r7,nb)).map(e=>{let{root:t}=e,n=C(t),r=t.projectRoot||t.cwd;return{session:t,archivedAt:r7.sessions[t.id].archivedAt,project:{key:n,root:r,name:A(r7,n)??(ew(r)||r)}}}).sort((e,t)=>t.archivedAt-e.archivedAt||e.session.id.localeCompare(t.session.id)),[eX,r7,nb]);(0,u.useEffect)(()=>{v?.({entries:i2,loaded:ie&&!e5,error:ir})},[i2,ie,e5,ir,v]);let i4=(0,u.useMemo)(()=>{let e=new Set,t=new Map;for(let n of i0){if(!en(n,r7,nb))continue;for(let t of ee(n))e.add(t);let r=C(n.root);t.set(r,(t.get(r)??0)+1)}return{ids:e,countByProject:t}},[i0,r7,nb]),i8=(0,u.useMemo)(()=>(function(e,t,n){let r=new Map;for(let i of e){let e=C(i);if(!e)continue;let s=r.get(e);s||(s={running:0,unread:0},r.set(e,s)),t.has(i.id)&&s.running++,n.has(i.id)&&s.unread++}return r})(0===i4.ids.size?eX:eX.filter(e=>!i4.ids.has(e.id)),nb,nE),[eX,i4,nb,nE]),i3=!!(tN?.isGit&&tN.isTopLevel&&ti&&iT?.key===tN.projectKey),i6=ti&&tN?.isGit&&iT?.key===tN.projectKey&&!i3?{label:eO("sidebar.openRepoRoot"),title:eO("sidebar.openRepoRootTitle")}:null,i5=!!(ti&&t$===ti),i9=i6??(!i5||i3||ti&&tI.current?.has(ti)?null:{label:eO("sidebar.worktrees"),title:eO("sidebar.checkingWorktrees")}),i7=iT?.key??null,se=iT?.root??null,st=(0,u.useMemo)(()=>i7&&se?{key:i7,root:se}:null,[i7,se]),sn=(0,u.useRef)(new Set);(0,u.useEffect)(()=>{if(e5||!it||!te||!st)return;let{key:e,root:t}=st;P(r7,e)||Object.hasOwn(r7.projects,e)||!(tk?.cwd===ti||tN?.forCwd===ti||eX.some(e=>e.cwd===ti))||sn.current.has(e)||(sn.current.add(e),ic(e,t))},[e5,it,te,st,r7,tk,ti,tN,eX,ic]);let sr=(0,u.useMemo)(()=>0===nG.size?nJ:Object.fromEntries([...[...nG].filter(e=>!Object.hasOwn(nJ,e)).map(e=>[e,!0]),...Object.entries(nJ)]),[nJ,nG]),si=(0,u.useMemo)(()=>(function(e){let{uiState:t,runningIds:n,currentProject:r}=e,i=x(e.sessions),s=ec(t,r),o=0,l=[],a=new Map,c=new Map,d=new Set;for(let e of i){if(en(e,t,n)){o++;continue}s.noteFamily(e);let r=ea(e),i=function(e){let t=Date.parse(e);return Number.isNaN(t)?-1/0:t}(e.latestModified);if(c.set(r,Math.max(c.get(r)??-1/0,i)),e.root.transient||d.add(r),er(e,t,n)){l.push(e);continue}let u=a.get(r);u?u.push(e):a.set(r,[e])}let u=[{kind:"spacer",key:"top-spacer"}];if(l.length>0){let n=e=>X(G(t,e.root.id)?.pinnedAt)??0,r=l.map((e,t)=>({family:e,index:t})).sort((e,t)=>Q(n(e.family),n(t.family))||e.index-t.index).map(e=>{let{family:t}=e;return t}),{running:i,awaiting:o,unread:a}=el(r,e);if(u.push({kind:"pinned-header",key:"pinned-header",count:r.length,collapsed:e.pinnedCollapsed,running:i,awaiting:o,unread:a}),!e.pinnedCollapsed){let{visible:t,revealed:n,nextShown:i}=eu(r,8,ep(e.moreShown,Y),e);for(let n of t)u.push(ed(n,"pinned",s.get(ea(n)),e));let o=em(r.length,t.length,n);o&&u.push({kind:"pinned-more",key:"pinned-more",...o,nextShown:i})}u.push({kind:"spacer",key:"pinned-spacer"})}let p=[...a.keys()],h=new Set(p),m=e=>{h.has(e)||(h.add(e),p.push(e))};for(let e of(r&&m(r.key),Object.keys(t.projects)))m(e);let f=p.filter(e=>!P(t,e)).map(e=>s.get(e)),g=new Map;(t.projectOrder??[]).forEach((e,t)=>{g.has(e)||g.set(e,t)});let v=e=>e.pinned||d.has(e.key),b=(e,t)=>[...e.filter(e=>{let{project:t}=e;return!g.has(t.key)}).sort((e,n)=>Number(v(e.project))-Number(v(n.project))||t(e,n)),...e.filter(e=>{let{project:t}=e;return g.has(t.key)}).sort((e,t)=>(g.get(e.project.key)??0)-(g.get(t.project.key)??0))].map(e=>{let{project:t}=e;return t}),y=e=>c.get(e.key)??(e.current?1/0:-1/0),w=e=>X(t.projects[e.key]?.pinnedAt)??0,j=f.map((e,t)=>({project:e,index:t})),k=b(j.filter(e=>{let{project:t}=e;return t.pinned}),(e,t)=>Q(w(t.project),w(e.project))||e.index-t.index),S=b(j.filter(e=>{let{project:t}=e;return!t.pinned}),(e,t)=>Q(y(e.project),y(t.project))||e.index-t.index),C=[...k,...S],N=e=>e.filter(e=>!g.has(e.key)).map(e=>e.key),E={pinned:N(k),other:N(S)},$=C.filter(e=>!g.has(e.key)&&v(e)).map(e=>e.key);for(let[t,n]of(e.sections&&u.push({kind:"section",key:"section-projects",label:"projects"}),C.entries())){t>0&&u.push({kind:"spacer",key:`group-spacer:${n.key}`});let r=a.get(n.key)??[],i=es(n,e.groupExpansion),{running:s,awaiting:o,unread:l}=el(r,e);if(u.push({kind:"group",key:`group:${n.key}`,project:n,expanded:i,running:s,awaiting:o,unread:l}),i)if(0===r.length)u.push({kind:"group-empty",key:`empty:${n.key}`,project:n});else{let{visible:t,revealed:i,nextShown:s}=eu(r,6,ep(e.moreShown,n.key),e);for(let r of t)u.push(ed(r,"group",n,e));let o=em(r.length,t.length,i);o&&u.push({kind:"group-more",key:`more:${n.key}`,projectKey:n.key,...o,nextShown:s})}}if(C.length>0&&u.push({kind:"spacer",key:"footer-spacer"}),e.sections||u.push({kind:"footer-open",key:"footer-open"}),e.sections){let r=i.filter(e=>!e.root.transient&&!en(e,t,n)).slice(0,10);if(r.length>0&&(u.push({kind:"section",key:"section-recents",label:"recents",collapsed:!!e.recentsCollapsed}),!e.recentsCollapsed))for(let t of r)u.push({kind:"recent",key:`recent:${t.root.id}`,family:t,project:s.get(ea(t)),status:eo(t,e)})}return o>0&&u.push({kind:"footer-archived",key:"footer-archived",count:o}),{rows:u,projects:C,archivedCount:o,unorderedKeysByBand:E,projectKeysToRecord:$}})({sections:!0,recentsCollapsed:n8,sessions:eX,uiState:r7,runningIds:nb,awaitingIds:nw,unreadIds:nE,selectedSessionId:w,currentProject:st,groupExpansion:sr,moreShown:nQ,pinnedCollapsed:n2}),[eX,r7,nb,nw,nE,w,st,sr,nQ,n2,n8]),ss=(0,u.useMemo)(()=>m?si.rows.filter(e=>"footer-archived"!==e.kind):si.rows,[si.rows,m]),so=rh.archiveMounted,sl=(0,u.useMemo)(()=>new Set(n6),[n6]),sa=(0,u.useMemo)(()=>so?function(e){let{uiState:t,runningIds:n}=e,r=ec(t,e.currentProject),i=new Map;for(let s of x(e.sessions)){if(!en(s,t,n))continue;r.noteFamily(s);let e=X(G(t,s.root.id)?.archivedAt)??0,o=ea(s),l=i.get(o);l?(l.families.push({family:s,archivedAt:e}),l.newest=Math.max(l.newest,e)):i.set(o,{newest:e,families:[{family:s,archivedAt:e}]})}let s=[];for(let{key:t,group:n}of[...i.entries()].map((e,t)=>{let[n,r]=e;return{key:n,group:r,index:t}}).sort((e,t)=>Q(e.group.newest,t.group.newest)||e.index-t.index)){let i=r.get(t),o=!e.collapsed?.has(t);if(s.push({kind:"archive-group",key:`archive:${t}`,project:i,count:n.families.length,expanded:o}),o)for(let{family:t}of n.families.map((e,t)=>({...e,index:t})).sort((e,t)=>Q(e.archivedAt,t.archivedAt)||e.index-t.index))s.push(ed(t,"archive",i,e))}return s}({sessions:eX,uiState:r7,runningIds:nb,awaitingIds:nw,unreadIds:nE,selectedSessionId:w,currentProject:st,collapsed:sl}):[],[so,eX,r7,nb,nw,nE,w,st,sl]),sc=(0,u.useMemo)(()=>sa.flatMap(e=>"archive-group"===e.kind?[e]:[]),[sa]),sd=(0,u.useMemo)(()=>new Map(si.projects.map(e=>[e.key,e])),[si.projects]),su=(0,u.useRef)(new Set),sp=si.projectKeysToRecord,sh=r7.projectOrder?.length??0;(0,u.useEffect)(()=>{if(e5||!it||!te||sh>=1e3)return;let e=su.current,t=function(e,t){let n=e.length;for(;n>0&&e.length-n<500&&!t.has(e[n-1]);)n--;return e.slice(n)}(sp,e);if(0!==t.length){for(let n of t)e.add(n);ii({action:"add-projects",keys:t})}},[ii,e5,sp,te,sh,it]);let sm=r7.projectNames,sf=(0,u.useMemo)(()=>(function(e,t,n){let r=new Set,i=[];for(let s of[...e,...t])r.has(s.key)||(r.add(s.key),i.push(eG(s,n)));return i})(si.projects,iQ,sm),[si.projects,iQ,sm]),sg=(0,u.useMemo)(()=>{if(!ti||!iT)return null;let e=i3&&null!==tN;return{cwd:ti,project:eG(iT,sm),worktrees:e?tN.worktrees.map(e=>{let{path:t,branch:n,isMain:r}=e;return{path:t,branch:n,isMain:r}}):null,currentWorktreePath:e?iW:null,projects:sf}},[ti,iT,i3,tN,iW,sf,sm]),sx=(0,u.useRef)(sg);sx.current=sg;let sv=sg?JSON.stringify([sg.cwd,sg.project.key,sg.project.root,sg.project.alias??null,sg.currentWorktreePath,sg.worktrees?.map(e=>[e.path,e.branch,e.isMain])??null,sg.projects.map(e=>[e.key,e.root,e.alias??null])]):"";(0,u.useEffect)(()=>{M?.(sx.current)},[sv,M]);let sb=(0,u.useRef)(i7);(0,u.useLayoutEffect)(()=>{let e=sb.current;if(sb.current=i7,null===e||e===i7)return;let t=sd.get(e);nX(e=>!t||t.current||t.pinned||e.has(t.key)||Object.hasOwn(nJ,t.key)?e:new Set(e).add(t.key))},[i7,nJ,sd]);let sy=(0,u.useCallback)((e,t)=>{nY(e),eH(e),nX(e=>(function(e,t){if(0===e.size)return e;if(null===t)return new Set;if(!t.some(t=>e.has(t)))return e;let n=new Set(e);for(let e of t)n.delete(e);return n})(e,t)),n1(n=>(function(e,t,n){let r=(n??Object.keys(t)).filter(n=>!1===t[n]&&Object.hasOwn(e,n));if(0===r.length)return e;let i={...e};for(let e of r)delete i[e];return i})(n,e,t))},[]),sw=(0,u.useCallback)(()=>(nK.current?.hidden?nq:nU).current??ip.current,[]),sj=(0,u.useCallback)(e=>{let t=nK.current;for(let n of["pinned","group","archive"]){let r=CSS.escape(`session:${n}:${e}`),i=t?.querySelector(`[data-row-key="${r}"] .session-tree-main`);if(i&&i.getClientRects().length>0)return i}return sw()},[sw]),sk=(0,u.useCallback)(e=>{let t=CSS.escape(`group:${e}`),n=nK.current?.querySelector(`[data-row-key="${t}"] .session-tree-group-toggle`);return n&&n.getClientRects().length>0?n:sw()},[sw]);(0,u.useEffect)(()=>{rY!==rX.current&&(rX.current=rY,rJ(eO("sidebar.uiStateFailed",{error:ir??""})))},[rY,ir,rJ,eO]);let sS=(0,u.useCallback)((e,t,n)=>{let r=sd.get(e),i=sd.get(t);r&&i&&r!==i&&r.pinned===i.pinned&&(ia({action:"move-project",projectKey:e,anchorKey:t,position:n,add:si.unorderedKeysByBand[r.pinned?"pinned":"other"].slice(-500)}),rC.current+=1,rS({id:rC.current,at:Date.now(),rowKey:`group:${e}`}))},[ia,si.unorderedKeysByBand,sd]),sC=(0,u.useCallback)(e=>{nF||(nB(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eI,e)}catch{}}(e))},[nF]),sN=(0,u.useCallback)(e=>{e!==ra.current&&rt(e?"out":"in"),nH(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eW,String(e))}catch{}}(e)},[rt]),sE=(0,u.useCallback)(e=>{let t=e.target;t instanceof Element&&nZ.current.set(t,t.scrollTop)},[]);(0,u.useLayoutEffect)(()=>{for(let e of[nK.current,nV.current])if(e&&!e.hidden)for(let t of e.querySelectorAll(".session-tree-scroll, .sidebar-files-scroll")){let e=nZ.current.get(t);void 0!==e&&t.scrollTop!==e&&(t.scrollTop=e)}},[nD,n9,nF,n_]);let s$=(0,u.useCallback)(e=>{if(rj(null),m)return void m(e);if(rd(!0),tq(!1),sC("sessions"),void 0!==e){if(n6.includes(e)){let t=n6.filter(t=>t!==e);n5(t),eU(t)}rC.current+=1,rI({id:rC.current,at:Date.now(),rowKey:`archive:${e}`,block:"start"})}},[n6,m,rd,sC]),sM=(0,u.useRef)(null),sI=(0,u.useRef)(n9),sT=(0,u.useRef)(null);(0,u.useEffect)(()=>{if(sI.current===n9)return;if(sI.current=n9,n9)return void r_(sM.current);let e=nK.current?.querySelector('[data-row-key="footer-archived"] button'),t=e&&e.getClientRects().length>0?e:sw();r_(t),t&&document.activeElement===t&&(sT.current=t)},[n9,sw]);let sR=(0,u.useRef)(null),sL=(0,u.useRef)(nF);(0,u.useLayoutEffect)(()=>{if(sL.current===nF)return;sL.current=nF;let e=sR.current;e&&(!e.isConnected||0===e.getClientRects().length)&&r_(sw())},[nF,sw]);let sA=e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;e.preventDefault();let t="Home"===e.key?"sessions":"End"===e.key||"sessions"===nD?"files":"sessions";sC(t),("sessions"===t?nU:nq).current?.focus()},sP=(0,u.useCallback)((e,t)=>{ia({action:"set",ids:[e.root.id],pinned:t})},[ia]),sz=(0,u.useCallback)((e,t)=>{n$(n=>{let r=new Set(n);if(t)for(let t of ee(e))r.delete(t);else r.add(e.root.id);return r})},[]),sW=(0,u.useCallback)(e=>{0!==e.length&&n$(t=>{let n=new Set(t);for(let t of e)t!==rU.current&&n.add(t);return n.size===t.size?t:n})},[]),sO=(0,u.useCallback)(e=>{let t=e.filter(e=>!e.root.transient);if(0===t.length)return;let n=is(t.map(e=>e.root.id)),r=t.flatMap(e=>ee(e)),i=r.filter(e=>nE.has(e));for(let e of Z(t))ia({action:"set",ids:e.map(e=>e.root.id),archived:!0}).then(t=>{if(t||0===i.length)return;let n=new Set(e.flatMap(e=>ee(e)));sW(i.filter(e=>n.has(e)))});i.length>0&&n$(e=>{let t=new Set(e);for(let e of r)t.delete(e);return t}),rJ(1===t.length?eO("sidebar.archivedToast",{title:rB(rp(t[0].root),28)}):eO("sidebar.archivedManyToast",{count:t.length}),[{id:"undo",label:eO("sidebar.undo"),onClick:()=>{for(let e of Z(n))ia({action:"restore",entries:e});sW(i),r9(()=>sj(t[0].root.id))}},{id:"view",label:eO("sidebar.viewArchive"),onClick:()=>s$()}])},[ia,r9,sj,s$,sW,rJ,is,eO,nE]),sF=(0,u.useCallback)(e=>{ee(e).some(e=>nb.has(e))||sO([e])},[sO,nb]),sD=(0,u.useCallback)(e=>{if(0===e.length)return;let t=e.map(e=>e.root.id),n=is(t);for(let e of Z(t))ia({action:"set",ids:e,archived:!1});rJ(1===e.length?eO("sidebar.restoredToast",{title:rB(rp(e[0].root),28)}):eO("sidebar.restoredManyToast",{count:e.length}),[{id:"undo",label:eO("sidebar.undo"),onClick:()=>{for(let e of Z(n))ia({action:"restore",entries:e});r9(()=>sj(e[0].root.id))}}])},[ia,sj,r9,rJ,is,eO]),sB=(0,u.useCallback)(e=>sD([e]),[sD]);iJ.current=async e=>{let t=i1.get(e);if(!t||!en(t,r7,nb))return!0;let n=await ia({action:"set",ids:[t.root.id],archived:!1});return n&&rJ(eO("sidebar.restoredToast",{title:rB(rp(t.root),28)})),n};let s_=(0,u.useCallback)(e=>{e.root.transient||(ry(null),rg(e.root.id))},[]),sH=(0,u.useCallback)(async(e,t)=>{let n=e.root,r=rp(n),i=t.trim();if(rg(e=>e===n.id?null:e),t!==r&&i!==(n.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(n.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:i})}),ik()}catch{}},[ik]),sU=(0,u.useCallback)(e=>{rv(e.key)},[]),sq=(0,u.useCallback)(e=>{rv(t=>t===e?null:t),r9(()=>sk(e))},[r9,sk]),sK=(0,u.useCallback)((e,t)=>{sq(e.key);let n=function(e,t){let n=t.trim();if(n===e.name)return null;let r=""===n||n===ei(e.root);return r&&null===e.customName?null:{action:"rename-project",projectKey:e.key,name:r?null:n}}(e,t);n&&ia(n)},[ia,sq]),sV=(0,u.useCallback)(async e=>{let t=e.root;if(!t.transient){ry(e=>e===t.id?null:e);try{await fetch(`/api/sessions/${encodeURIComponent(t.id)}`,{method:"DELETE"}),_?.(t.id),ik()}catch{}}},[ik,_]),sZ=(0,u.useCallback)((e,t)=>{t?sV(e):(rg(null),ry(e.root.id))},[sV]),sJ=(e,t)=>{if(sT.current=null,n9){let e=nK.current?.querySelector(".sidebar-sessions-view .session-tree-scroll");e&&nZ.current.delete(e),rd(!1)}let n=C(e);if(Object.hasOwn(sr,n)&&!1===sr[n]){let e={...nJ};delete e[n],e[n]=!0,sy(e,[n])}iK(e,void 0,void 0,{keepSidebarOpen:null!==t}),ik();let r=t?`[data-row-key="${CSS.escape(t)}"]`:null;rC.current+=1,rS({id:rC.current,at:Date.now(),rowKey:`session:group:${e.id}`,takeFocusFrom:e=>null!==r&&null!==e.closest(r)||e===sT.current})},sY=(0,u.useRef)(sJ);sY.current=sJ;let sG=(0,u.useRef)(new Set),sX=(0,u.useCallback)(async e=>{let t=e.family.root;if(t.transient||sG.current.has(t.id))return;sG.current.add(t.id);let n=rU.current;try{var r;let i,s,o=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/fork`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),l=await o.json().catch(()=>({}));if(!o.ok||!l.session){let{key:e,params:t}=function(e,t){switch(e){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:t}}}}(l.code,l.error??`HTTP ${o.status}`);rJ(eO(e,t)),"not_found"===l.code&&ik();return}let a=l.session,c=rp(a),{head:d,tail:u}=(r=eO("sidebar.forkedToast",{title:c}),((s=(i=eM(c)?.suffix)?r.lastIndexOf(i):-1)>0?{head:r.slice(0,s),tail:r.slice(s)}:null)??{head:eO("sidebar.forkedToast",{title:rB(c,28)}),tail:void 0});if(rU.current!==n){eQ(e=>e.some(e=>e.id===a.id)?e:[a,...e]),n$(e=>new Set(e).add(a.id)),ik(),rJ(d,[{id:"open",label:eO("sidebar.open"),onClick:()=>sY.current(a,null)}],u);return}sY.current(a,e.key),rJ(d,[],u)}catch(e){rJ(eO("sidebar.forkFailed",{error:e instanceof Error?e.message:String(e)}))}finally{sG.current.delete(t.id)}},[ik,rJ,eO]),sQ=(0,u.useCallback)(e=>{e.root.transient||window.open(b(e.root.id),"_blank","noopener,noreferrer")},[]),s0=(0,u.useCallback)((e,t,n)=>{e.status.transient||rj({kind:"row",row:e,anchor:t,opener:n})},[]),s1=(0,u.useCallback)((e,t)=>{let n=e.family.root;if(n.id===rf||n.id===rb)return;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=new CustomEvent("pi-web:session-row-contextmenu",{cancelable:!0,detail:e});return!t.dispatchEvent(n)}({id:n.id,path:n.path,cwd:n.cwd,name:n.name,clientX:t.clientX,clientY:t.clientY,refresh:()=>{ik()}})){t.preventDefault(),t.stopPropagation();return}if(n.transient)return;t.preventDefault();let r=t.currentTarget instanceof HTMLElement?t.currentTarget:null,i=0===t.clientX&&0===t.clientY&&r?rH(r,"start"):{kind:"point",x:t.clientX,y:t.clientY},s=document.activeElement,o=s instanceof HTMLElement&&null!==r&&r.contains(s);r2.current=!o&&s instanceof HTMLElement&&s!==document.body?s:null,s0(e,i,o?s:null)},[rb,ik,s0,rf]),s2=(0,u.useMemo)(()=>({sessions:eX,uiState:r7,runningIds:nb,awaitingIds:nw,unreadIds:nE,selectedSessionId:w}),[eX,r7,nb,nw,nE,w]),s4=(0,u.useCallback)((e,t)=>{let n=ef(s2,e.key,6048e5,Date.now()).length;rj({kind:"group",project:e,olderCount:n,anchor:rH(t,"end"),opener:t})},[s2]),s8=(0,u.useCallback)(e=>{sO(ef(s2,e.key,6048e5,Date.now()).flatMap(e=>{let t=i1.get(e);return t?[t]:[]}))},[sO,i1,s2]),s3=(0,u.useCallback)((e,t)=>{rj(n=>n?.kind==="group"&&n.project.key===e?{...n,askDelete:t}:n)},[]),s6=(0,u.useRef)(new Set),s5=(0,u.useCallback)(async(e,t,n)=>{if(rj(null),0===t.length)return!0;if(s6.current.has(e))return!1;s6.current.add(e),rJ(eO("sidebar.deletingSessions"));try{let e=await eK(t,fetch);for(let t of e.deleted)_?.(t);if(await ik(),r9(n),null!==e.error)return rJ(eO("sidebar.deleteFailed",{error:e.error})),!1;let r=e.deletedRoots.length,i=[1===r?eO("sidebar.deletedOneToast"):eO("sidebar.deletedManyToast",{count:r})];return e.running.length>0&&i.push(eO("sidebar.keptRunningToast",{count:e.running.length})),rJ(i.join(" \xb7 ")),t.every(t=>e.deletedRoots.includes(t))}finally{s6.current.delete(e)}},[r9,ik,_,rJ,eO]);iG.current=async e=>{let t=[...new Set(e)],n=t.flatMap(e=>{let t=i1.get(e);return t?[t]:[]}),r=n.filter(e=>en(e,r7,nb)),i=r.map(e=>e.root.id),s=await s5(1===t.length?`archive-session:${t[0]}`:"archive-clear",i,()=>null);return await il(),s&&r.length===n.length},iY.current=e=>iG.current([e]);let s9=(0,u.useCallback)(e=>{let{ids:t}=eg(s2,e.key);s5(`project:${e.key}`,t,()=>sk(e.key))},[s5,sk,s2]),s7=(0,u.useCallback)(e=>{let t=null===e?null:CSS.escape(`archive:${e}`),n=null===t?null:nK.current?.querySelector(`[data-row-key="${t}"] .session-tree-group-toggle`);if(n&&n.getClientRects().length>0)return n;let r=sM.current;return r&&r.getClientRects().length>0?r:sw()},[sw]),oe=(0,u.useCallback)(e=>e.flatMap(e=>{let t=i1.get(e);return t?[t]:[]}),[i1]),ot=(0,u.useCallback)((e,t)=>{rj({kind:"archive-group",project:e,anchor:rH(t,"end"),opener:t})},[]),on=(0,u.useCallback)(e=>{rj(t=>t?.kind==="archive"?null:{kind:"archive",anchor:rH(e,"end"),opener:e})},[]),or=(0,u.useCallback)(e=>{rj(t=>t?.kind==="archive"?{...t,askDelete:e}:t?.kind==="archive-group"?{...t,askDelete:void 0!==e}:t)},[]),oi=(0,u.useCallback)(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];for(let r of x(e.sessions))if((void 0===t.projectKey||ea(r)===t.projectKey)&&en(r,e.uiState,e.runningIds)){if(void 0!==t.archivedBefore){let n=X(G(e.uiState,r.root.id)?.archivedAt);if(null===n||n>=t.archivedBefore)continue}n.push(r.root.id)}return n})(s2,"all"===e?{}:"old"===e?{archivedBefore:Date.now()-2592e6}:e),[s2]),os=(0,u.useCallback)(e=>{let t=oi(e);s5("string"==typeof e?`archive:${e}`:`archive-project:${e.projectKey}`,t,()=>"string"==typeof e?s7(null):s7(e.projectKey))},[oi,s7,s5]),oo=(0,u.useCallback)(e=>{n5(e),eU(e)},[]),ol=(0,u.useCallback)(e=>{let t=sc.map(e=>e.project.key),n=n6.filter(e=>!t.includes(e));oo(e?n:[...n,...t])},[n6,sc,oo]),oa=(0,u.useCallback)((e,t)=>{let n=n6.includes(e);if(t)return void ol(n);let r=n6.filter(t=>t!==e);oo(n?r:[...r,e])},[n6,oo,ol]),oc=(0,u.useCallback)(e=>{rj(null),iV(eJ(e,ti))},[ti,iV]),od=(0,u.useCallback)(()=>rj(null),[]);(0,u.useEffect)(()=>{if(null!==rw)return;let e=r2.current;if(r2.current=null,!e?.isConnected)return;let t=document.activeElement;t&&t!==document.body||e.focus({preventScroll:!0})},[rw]);let ou=n9?sa:si.rows;(0,u.useEffect)(()=>{rw?.kind!=="row"||ou.some(e=>e.key===rw.row.key)||rj(null),rw?.kind!=="archive-group"||ou.some(e=>e.key===`archive:${rw.project.key}`)||rj(null)},[rw,ou]);let op=rw?.kind==="row"?ou.find(e=>"session"===e.kind&&e.key===rw.row.key)??rw.row:null,oh=(0,u.useCallback)(e=>{iK(e.root)},[iK]),om=(0,u.useCallback)(e=>{let t={...nJ};for(let n of si.projects)delete t[n.key],t[n.key]=e(n);sy(t,null)},[nJ,si.projects,sy]),of=(0,u.useCallback)((e,t)=>{let n=sd.get(e);if(!n)return;let r=!es(n,sr);if(t)return void om(()=>r);let i={...nJ};delete i[e],i[e]=r,sy(i,[e])},[nJ,sd,sy,om,sr]),og=(0,u.useCallback)(e=>{let t=si.rows.find(t=>"group-more"===t.kind&&t.projectKey===e||"pinned-more"===t.kind&&e===Y);(t?.kind==="group-more"||t?.kind==="pinned-more")&&n1(n=>{var r;return r=t.nextShown,{...n,[e]:Math.max(ep(n,e),Math.floor(r))}})},[si.rows]),ox=(0,u.useCallback)(e=>{n1(t=>eh(t,e))},[]),ov=(0,u.useCallback)(e=>{rQ.current=e,r1(e=>e+1),nF?sN(!1):sC("files")},[sN,nF,sC]),ob=nO||(nF?ru.open:"files"===nD);(0,u.useEffect)(()=>{let e=rQ.current;e&&ob&&(rQ.current=null,"file-search"===e?document.getElementById("file-search-input")?.focus({preventScroll:!0}):tC.current?.button("project")?.focus({preventScroll:!0}))},[ob,r0]);let oy=e=>{let{heading:t,headingTitle:n,notes:r,count:i,onConfirm:s,onCancel:o}=e;return(0,d.jsxs)("div",{className:"sidebar-menu-question",children:[(0,d.jsx)("div",{className:"sidebar-menu-header",title:n,children:t}),r.map(e=>(0,d.jsx)("p",{className:"sidebar-menu-question-text",children:e},e)),(0,d.jsxs)("div",{className:"sidebar-menu-question-buttons",children:[(0,d.jsx)("button",{type:"button",className:"sidebar-menu-question-confirm",disabled:0===i,onClick:s,children:eO("sidebar.deleteCount",{count:i})}),!eZ&&(0,d.jsx)("button",{type:"button",className:"sidebar-menu-question-cancel","data-sidebar-menu-autofocus":"",onClick:o,children:eO("sidebar.cancel")})]})]})},ow=(e,t)=>oy({heading:t?eO("sidebar.deleteArchivedInProjectHeading",{name:t.name}):eO("old"===e?"sidebar.deleteOldArchivedHeading":"sidebar.deleteAllArchivedHeading"),headingTitle:t?.root,notes:[eO("sidebar.deleteArchivedMessage")],count:oi(e).length,onConfirm:()=>os(e),onCancel:()=>or(void 0)}),oj="",ok=null;if(rw?.kind==="row"&&op)c=rp(op.family.root),oj=eO("sidebar.sessionActions"),h=(function(e,t){if(t.transient)return[];let n={kind:"action",id:"open-new-tab",shortcut:"T"};return"archive"===e?[{kind:"action",id:"unarchive",shortcut:"A"},{kind:"action",id:"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},n,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]:[{kind:"action",id:"pinned"===e?"unpin":"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},{kind:"action",id:t.unread?"mark-read":"mark-unread",shortcut:"U"},t.running?{kind:"action",id:"archive",shortcut:"A",disabledReason:"running"}:{kind:"action",id:"archive",shortcut:"A"},n,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]})(op.context,op.status).map((e,t)=>{if("separator"===e.kind)return{type:"separator",id:`separator-${t}`};let n=eO(rz[e.id]);return{type:"item",id:e.id,label:"delete"===e.id?`${n}…`:n,icon:function(e){switch(e){case"open-new-tab":return(0,d.jsx)(nt,{});case"pin":return(0,d.jsx)(t6,{});case"unpin":return(0,d.jsx)(t5,{});case"rename":return(0,d.jsx)(nr,{});case"fork":return(0,d.jsx)(ne,{});case"mark-read":return(0,d.jsx)(ns,{});case"mark-unread":return(0,d.jsx)(ni,{});case"archive":return(0,d.jsx)(t8,{});case"unarchive":return(0,d.jsx)(t3,{});case"delete":return(0,d.jsx)(nn,{})}}(e.id),shortcut:e.shortcut,danger:"delete"===e.id,disabled:void 0!==e.disabledReason,disabledReason:"running"===e.disabledReason?eO("sidebar.cannotArchiveRunning"):void 0,onSelect:t=>{let{shiftKey:n}=t;return((e,t,n)=>{let{family:r}=t;switch(e){case"open-new-tab":sQ(r);break;case"pin":sP(r,!0);break;case"unpin":sP(r,!1);break;case"rename":s_(r);break;case"fork":sX(t);break;case"mark-read":sz(r,!0);break;case"mark-unread":sz(r,!1);break;case"archive":sF(r);break;case"unarchive":sB(r);break;case"delete":sZ(r,n)}})(e.id,op,n)}}});else if(rw?.kind==="group"){let e,t,i,s,o,l=sd.get(rw.project.key)??rw.project;c=l.name,oj=eO("sidebar.projectActions",{name:l.name}),n=l,r=rw.olderCount,e=i4.countByProject.get(n.key)??0,t=eg(s2,n.key),i=ex(si.projects,n.key,"up"),s=ex(si.projects,n.key,"down"),o=(null===n.customName?["rename-project"]:["rename-project","reset-project-name"]).map(e=>"rename-project"===e?{type:"item",id:e,label:eO("sidebar.renameProject"),icon:(0,d.jsx)(nr,{}),onSelect:()=>sU(n)}:{type:"item",id:e,label:eO("sidebar.resetProjectName"),icon:(0,d.jsx)(t3,{}),onSelect:()=>{ia({action:"rename-project",projectKey:n.key,name:null})}}),h=[{type:"item",id:"remove-project",label:eO("sidebar.removeProject"),title:eO("sidebar.removeProjectHint"),icon:(0,d.jsx)(t5,{}),onSelect:()=>{ia({action:"remove-project",projectKey:n.key})}},...o,{type:"item",id:"open-in-files",label:eO("sidebar.openInFilesTab"),icon:(0,d.jsx)(nc,{}),onSelect:()=>{n.current||ts(n.root),ov("project-button")}},{type:"item",id:"open-new-tab",label:eO("sidebar.openInNewTab"),icon:(0,d.jsx)(nt,{}),shortcut:"T",onSelect:()=>(e=>{let{cwd:t}=eJ(e,ti);window.open(`?cwd=${encodeURIComponent(t)}`,"_blank","noopener,noreferrer")})(n)},{type:"separator",id:"separator-layout"},{type:"item",id:"move-up",label:eO("sidebar.moveProjectUp"),icon:(0,d.jsx)(t9,{className:"sidebar-icon-up"}),disabled:null===i,onSelect:()=>{i&&sS(n.key,i.anchorKey,i.position)}},{type:"item",id:"move-down",label:eO("sidebar.moveProjectDown"),icon:(0,d.jsx)(t9,{className:"sidebar-icon-down"}),disabled:null===s,onSelect:()=>{s&&sS(n.key,s.anchorKey,s.position)}},{type:"item",id:"collapse-others",label:eO("sidebar.collapseOtherGroups"),icon:(0,d.jsx)(t9,{}),disabled:si.projects.every(e=>es(e,sr)===(e.key===n.key)),onSelect:()=>om(e=>e.key===n.key)},{type:"item",id:"expand-all",label:eO("sidebar.expandAllGroups"),icon:(0,d.jsx)(t9,{className:"sidebar-icon-down"}),disabled:si.projects.every(e=>es(e,sr)),onSelect:()=>om(()=>!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"archive-older",label:eO("sidebar.archiveOlderThanWeek",{count:r}),icon:(0,d.jsx)(t8,{}),disabled:0===r,onSelect:()=>s8(n)},{type:"item",id:"view-archived",label:eO("sidebar.viewArchived",{count:e}),icon:(0,d.jsx)(t8,{}),disabled:0===e,onSelect:()=>s$(n.key)},{type:"item",id:"delete-all",label:eO("sidebar.deleteProjectSessions",{count:t.ids.length}),icon:(0,d.jsx)(nn,{}),danger:!0,disabled:0===t.ids.length,onSelect:e=>{let{keepOpen:t}=e;t(),s3(n.key,!0)}}],rw.askDelete&&(ok=(e=>{let{ids:t,running:n}=eg(s2,e.key);return oy({heading:eO("sidebar.deleteProjectSessionsHeading",{name:e.name}),headingTitle:e.root,notes:[eO("sidebar.deleteProjectSessionsMessage"),...n>0?[eO("sidebar.deleteProjectSessionsRunning",{count:n})]:[]],count:t.length,onConfirm:()=>s9(e),onCancel:()=>s3(e.key,!1)})})(l)),p=264}else if(rw?.kind==="archive-group"){let e,t=sc.find(e=>e.project.key===rw.project.key)?.project??rw.project;c=t.name,oj=eO("sidebar.archivedProjectActions",{name:t.name}),h=[{type:"item",id:"restore-all",label:eO("sidebar.restoreAllArchived",{count:(e=oi({projectKey:t.key})).length}),icon:(0,d.jsx)(t3,{}),disabled:0===e.length,onSelect:()=>sD(oe(e))},{type:"separator",id:"separator-delete"},{type:"item",id:"delete-all",label:eO("sidebar.deleteAllArchived",{count:e.length}),icon:(0,d.jsx)(nn,{}),danger:!0,disabled:0===e.length,onSelect:e=>{let{keepOpen:t}=e;t(),or("all")}}],rw.askDelete&&(ok=ow({projectKey:t.key},t)),p=248}else if(rw?.kind==="archive"){let e,t,n;c=eO("sidebar.archived"),oj=eO("sidebar.archiveActions"),e=oi("all"),t=oi("old"),n=sc.filter(e=>!e.expanded).length,h=[{type:"item",id:"collapse-all",label:eO("sidebar.collapseAllGroups"),icon:(0,d.jsx)(t9,{}),disabled:n===sc.length,onSelect:()=>ol(!1)},{type:"item",id:"expand-all",label:eO("sidebar.expandAllGroups"),icon:(0,d.jsx)(t9,{className:"sidebar-icon-down"}),disabled:0===n,onSelect:()=>ol(!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"restore-all",label:eO("sidebar.restoreAllArchived",{count:e.length}),icon:(0,d.jsx)(t3,{}),disabled:0===e.length,onSelect:()=>sD(oe(e))},{type:"item",id:"delete-old",label:eO("sidebar.deleteOldArchived",{count:t.length}),icon:(0,d.jsx)(nn,{}),danger:!0,disabled:0===t.length,onSelect:e=>{let{keepOpen:t}=e;t(),or("old")}},{type:"item",id:"delete-all",label:eO("sidebar.deleteAllArchived",{count:e.length}),icon:(0,d.jsx)(nn,{}),danger:!0,disabled:0===e.length,onSelect:e=>{let{keepOpen:t}=e;t(),or("all")}}],rw.askDelete&&(ok=ow(rw.askDelete,null)),p=280}let oS={layout:eZ?"mobile":"desktop",loading:e5||!ie,error:tn,renamingRootId:rf,renamingProjectKey:rx,confirmDeleteRootId:rb,activeMenuRowKey:rw?.kind==="row"?rw.row.key:rw?.kind==="group"?`group:${rw.project.key}`:rw?.kind==="archive-group"?`archive:${rw.project.key}`:null,onSelectFamily:oh,onToggleGroup:of,onShowMore:og,onShowLess:ox,onTogglePinned:()=>{let e=!n2;n4(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eA,String(e))}catch{}}(e),e&&n1(e=>eh(e,Y))},onToggleRecents:()=>{let e=!n8;n3(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(eP,String(e))}catch{}}(e)},onArchiveFamily:sF,onRestoreFamily:sB,onOpenRowMenu:s0,onRowContextMenu:s1,onRenameCommit:(e,t)=>{sH(e,t)},onRenameCancel:()=>rg(null),onRenameProjectCommit:sK,onRenameProjectCancel:()=>{rx&&sq(rx)},onDeleteConfirm:e=>{sV(e)},onDeleteCancel:()=>{ry(null),rb&&r9(()=>sj(rb))},onGroupNew:oc,onGroupMenu:s4,onPinEmptyGroup:e=>{ia({action:"pin-project",projectKey:e.key,root:e.root,pinned:!0}),r9(()=>sk(e.key))},onToggleArchiveGroup:oa,onArchiveGroupMenu:ot,onOpenOtherProject:()=>{tj(!0)},onOpenArchive:()=>s$(),onMoveGroup:sS},oC=ti??J??null,oN=oC&&tZ>0?eO("sidebar.changedFiles",{count:tZ}):void 0,oE=(0,u.useRef)(null),o$=!oC||0===tZ;(0,u.useLayoutEffect)(()=>{let e=oE.current;if(o$&&e&&sR.current===e){var t,n;let r;t=document,n=sw(),(r=function(e){let t=e=>e?.tagName==="BUTTON"&&!e.disabled;for(let n=e.nextElementSibling;n;n=n.nextElementSibling)if(t(n))return n;for(let n=e.previousElementSibling;n;n=n.previousElementSibling)if(t(n))return n;return null}(e)??n)&&t.activeElement===e?r.focus({preventScroll:!0}):e7(t,r)}},[o$,sw]);let oM=nO||nF||"sessions"===nD,oI=!nO&&!nF&&"files"===nD&&null!==oC;t=(nF?["below",eO("sidebar.new")]:["tabs",eO("sidebar.tabSessions"),eO("sidebar.tabFiles"),eO("sidebar.new"),oC&&tZ>0?tZ:"",nD]).join("\n"),a=(0,u.useCallback)(()=>{let e=id.current;if(e){for(let t of["0","1","2"])if(e.dataset.fit=t,e.scrollWidth<=e.clientWidth)return}},[id]),(0,u.useLayoutEffect)(()=>{let e=id.current;if(!e)return;a();let t=new ResizeObserver(a);return t.observe(e),()=>t.disconnect()},[id,a,t]);let oT=si.archivedCount,oR=nF?13:14,oL=(0,d.jsx)(rL,{onClick:()=>{oC&&eb?.(oC)},disabled:!oC||!eb,title:eO("terminal.open"),children:(0,d.jsx)(np,{size:oR})}),oA=(0,d.jsx)(rL,{onClick:()=>{iC().then(e=>{e&&nF&&sN(!1)})},disabled:!oC||iE,title:iE?eO(t7?.reason==="remote"?"sidebar.openInExplorerRemoteOnly":"sidebar.openInExplorerUnsupported"):iN,children:(0,d.jsx)(nc,{size:oR})}),oP=(0,d.jsx)(rL,{onClick:()=>{nF&&n_&&sN(!1),nz.current?.openUploadPicker()},disabled:!oC||tA,title:eO("sidebar.uploadFilesTitle"),children:(0,d.jsx)(nm,{size:oR})}),oz=(0,d.jsx)(rL,{onClick:()=>{ej?ej():tL(e=>e+1),t2(!0),nP.current&&clearTimeout(nP.current),nP.current=setTimeout(()=>t2(!1),2e3)},disabled:!oC,title:eO("sidebar.refreshExplorer"),done:t1,children:t1?(0,d.jsx)(no,{size:oR}):(0,d.jsx)(nf,{size:oR})}),oW=e=>(0,d.jsx)(rL,{onClick:()=>{let e=!tX;t0(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eB();if(t)try{t.setItem(ez,String(e))}catch{}}(e)},disabled:!oC,title:eO("sidebar.showIgnoredFiles"),pressed:tX,className:e,children:(0,d.jsx)(nx,{size:oR})}),oO=(0,d.jsx)(rL,{ref:oE,onClick:()=>{if(nF&&n_){sN(!1),tG(!1);return}tG(e=>!e)},disabled:o$,title:eO("sidebar.changedFiles",{count:tZ}),pressed:!o$&&!tY,children:(0,d.jsx)(ng,{size:oR})});return(0,d.jsxs)("div",{ref:iw,className:`session-sidebar${nF?" is-files-below":""}${nF&&n_?" is-files-collapsed":""}${nF&&ru.moving?" is-files-folding":""}${m&&oM?" has-archive-footer":""}${rK?" has-toast":""}`,style:{"--sidebar-files-height":`${ib.width}px`},onFocus:e=>{sR.current=e.target},onBlur:e=>{(null!==e.relatedTarget||document.hasFocus())&&(e.currentTarget.contains(e.relatedTarget)||(sR.current=null))},children:[tb&&(0,d.jsx)(nj,{projects:eY(sg??{project:null,projects:sf,worktrees:null,currentWorktreePath:null}),initialPath:tu||ti||void 0,onCancel:()=>tj(!1),onCreate:async(e,t)=>!!e.projectKey&&!!e.projectRoot&&!!await ia({action:"create-project",projectKey:e.projectKey,root:e.projectRoot,name:t})&&(rO(e.cwd),tp(e.cwd),tS({cwd:e.cwd,root:e.projectRoot,key:e.projectKey}),ts(e.cwd),tj(!1),!0)}),ta&&(0,d.jsx)(tQ,{initialPath:tu,busy:tg,error:th,onCancel:()=>{let e=r8.current;r4.current=null,r8.current=null,tc(!1),tf(null),e&&r9(()=>e.isConnected?e:null)},onSelect:e=>void iO(e)}),(0,d.jsxs)("div",{ref:id,className:"sidebar-header",children:[(nF||nO)&&(0,d.jsx)(rl,{canCreate:!!ti,onNewSession:iX,onOpenProject:iF,onOpenSettings:S}),!nF&&!nO&&(0,d.jsxs)("div",{className:"sidebar-tabs-list",role:"tablist","aria-label":eO("sidebar.tabsLabel"),children:[(0,d.jsxs)("button",{ref:nU,type:"button",role:"tab",id:"session-sidebar-tab-sessions","aria-selected":"sessions"===nD,"aria-controls":"session-sidebar-panel-sessions",tabIndex:"sessions"===nD?0:-1,className:`sidebar-tab${"sessions"===nD?" is-selected":""}`,onClick:()=>sC("sessions"),onKeyDown:sA,children:[(0,d.jsx)(nv,{size:13,className:"sidebar-tab-icon"}),(0,d.jsx)("span",{className:"sidebar-tab-label",children:eO("sidebar.tabSessions")})]}),(0,d.jsxs)("button",{ref:nq,type:"button",role:"tab",id:"session-sidebar-tab-files","aria-selected":"files"===nD,"aria-controls":"session-sidebar-panel-files",tabIndex:"files"===nD?0:-1,title:oN,className:`sidebar-tab${"files"===nD?" is-selected":""}`,onClick:()=>sC("files"),onKeyDown:sA,children:[(0,d.jsx)(nc,{size:13,className:"sidebar-tab-icon"}),(0,d.jsx)("span",{className:"sidebar-tab-label",children:eO("sidebar.tabFiles")}),oC&&tZ>0&&(0,d.jsx)("span",{className:"sidebar-tab-count","aria-hidden":"true",children:tZ})]})]}),(0,d.jsx)("span",{className:"sidebar-header-spacer"}),(0,d.jsxs)("button",{type:"button",className:"sidebar-new-button",onClick:iX,disabled:!ti,title:ti?eO("sidebar.newSessionTitle",{path:ti}):eO("sidebar.selectProject"),children:[(0,d.jsx)(nd,{size:15}),(0,d.jsx)("span",{className:"sidebar-new-label",children:eO("sidebar.newChat")})]}),(0,d.jsx)("button",{ref:ip,type:"button",onClick:()=>{if(oI)return void tD(e=>!e);if(!oM){sC("sessions"),tq(!0);return}tq(e=>!e)},title:oI?eO("sidebar.searchFiles"):eO("sidebar.toggleSessionSearch"),"aria-label":oI?eO("sidebar.searchFiles"):eO("sidebar.toggleSessionSearch"),"aria-expanded":oI?tz:tU,"aria-controls":oI?"file-search-input":"session-search-input",className:`sidebar-search-toggle${(oI?tz:tU)?" is-active":""}`,children:(0,d.jsx)(nh,{size:16})})]}),(0,d.jsxs)("div",{ref:nK,id:"session-sidebar-panel-sessions",role:nF||nO?"region":"tabpanel","aria-label":nF||nO?eO("sidebar.tabSessions"):void 0,"aria-labelledby":nF||nO?void 0:"session-sidebar-tab-sessions",hidden:!nO&&!nF&&"sessions"!==nD,className:"sidebar-panel sidebar-sessions-panel",onScrollCapture:sE,children:[tU&&(0,d.jsx)("div",{className:"sidebar-search",children:(0,d.jsx)("input",{id:"session-search-input",type:"search",autoFocus:!0,value:tK,maxLength:200,"aria-label":eO("sidebar.searchSessions"),placeholder:eO("sidebar.searchSessions"),onChange:e=>tV(e.target.value),onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.stopPropagation(),tV(""))},className:"sidebar-search-input"})}),(0,d.jsx)(rM,{open:tU,query:tK,selectedSessionId:w,onSelectSession:iK,archivedSessionIds:i4.ids,children:(0,d.jsxs)("div",{className:"sidebar-sessions-views",children:[(0,d.jsx)("div",{className:"sidebar-sessions-view",hidden:rh.mainHidden,inert:rh.mainInert,children:(0,d.jsx)(rm,{...oS,rows:ss,emptyLabel:eO("sidebar.noSessions"),reveal:rk,onRevealHandled:rN})}),rh.archiveMounted&&(0,d.jsxs)("div",{className:`sidebar-sessions-view sidebar-archive-view${rh.archiveClass?` ${rh.archiveClass}`:""}`,inert:rh.archiveInert,onAnimationEnd:e=>{e.target===e.currentTarget&&ro()},children:[(0,d.jsxs)("div",{className:"sidebar-archive-bar",children:[(0,d.jsxs)("button",{ref:sM,type:"button",className:"sidebar-archive-back",title:eO("sidebar.backToSessions"),"aria-label":`${eO("sidebar.backToSessions")}: ${eO("sidebar.archivedCount",{count:oT})}`,onClick:()=>rd(!1),children:[(0,d.jsx)(t9,{size:13,className:"sidebar-icon-back"}),(0,d.jsx)("span",{children:eO("sidebar.archived")}),(0,d.jsxs)("span",{className:"sidebar-archive-count",children:["\xb7 ",oT]})]}),(0,d.jsx)("button",{type:"button",className:`sidebar-archive-menu-button${rw?.kind==="archive"?" is-active":""}`,title:eO("sidebar.archiveActions"),"aria-label":eO("sidebar.archiveActions"),"aria-haspopup":"menu","aria-expanded":rw?.kind==="archive",disabled:0===sc.length,onClick:e=>on(e.currentTarget),children:(0,d.jsx)(t4,{size:13})})]}),(0,d.jsx)(rm,{...oS,rows:sa,emptyLabel:eO("sidebar.noArchived"),reveal:rE,onRevealHandled:rP})]})]})}),m&&(0,d.jsxs)("button",{type:"button",className:"sidebar-archive-entry","data-archive-entry":"","aria-label":eO("sidebar.archivedCount",{count:oT}),"aria-current":f?"page":void 0,onClick:()=>s$(),children:[(0,d.jsx)(t8,{size:15}),(0,d.jsx)("span",{children:eO("sidebar.archived")}),(0,d.jsx)("span",{className:"sidebar-archive-entry-count","aria-hidden":"true",children:oT})]})]}),nF&&ru.open&&(0,d.jsx)("div",{...ib.separatorProps,"aria-controls":"session-sidebar-panel-files",className:`panel-resize-handle sidebar-files-resize-handle${ib.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar-files",title:`${eO("sidebar.resizeFiles")}: ${eO("sidebar.resizeFilesHint")}`}),(0,d.jsx)(rq,{target:y,children:(0,d.jsxs)("div",{ref:nV,id:"session-sidebar-panel-files",role:nF||nO?"region":"tabpanel","aria-label":nF||nO?eO("sidebar.tabFiles"):void 0,"aria-labelledby":nF||nO?void 0:"session-sidebar-tab-files",hidden:!nO&&!nF&&"files"!==nD,className:"sidebar-panel sidebar-files-panel",onScrollCapture:sE,onTransitionEnd:e=>{e.target===e.currentTarget&&"height"===e.propertyName&&rn()},children:[nF&&(0,d.jsxs)("div",{className:"sidebar-files-section",children:[(0,d.jsxs)("button",{type:"button",className:"sidebar-files-section-toggle","aria-expanded":!n_,"aria-controls":"session-sidebar-files-body",title:oN,onClick:()=>sN(!n_),children:[(0,d.jsx)(t9,{size:12,strokeWidth:3,className:`session-tree-chevron${n_?"":" is-open"}`}),(0,d.jsx)("span",{className:"sidebar-files-section-label",children:eO("sidebar.tabFiles")}),oN&&(0,d.jsxs)("span",{className:"sidebar-files-section-count","aria-hidden":"true",children:["\xb7 ",tZ]})]}),(0,d.jsxs)("div",{className:"sidebar-files-keys",role:"group","aria-label":eO("sidebar.fileActions"),children:[oL,oA,oP,oz,oW(),oO,(0,d.jsx)(rL,{onClick:()=>{if(n_){tD(!0),ov("file-search");return}tD(e=>!e)},disabled:!oC,title:eO("sidebar.searchFiles"),expanded:tz,controls:"file-search-input",children:(0,d.jsx)(nh,{size:13})})]})]}),(0,d.jsxs)("div",{id:"session-sidebar-files-body",className:"sidebar-files-body",hidden:nF&&ru.bodyHidden,inert:nF&&ru.bodyInert,children:[(0,d.jsxs)("div",{className:"sidebar-files-head",children:[(0,d.jsx)(r$,{handleRef:tC,layout:nF?"row":"stacked",context:sg??{project:null,worktrees:null,currentWorktreePath:null,projects:sf},mobile:eZ,label:eO("sidebar.projectAndWorktree"),placeholder:I&&!iM.current?"":eO("sidebar.selectProject"),homeDir:to,projectActivity:i8,worktreeHint:i9,newWorktreeTitle:eO("sidebar.createWorktreeTitle"),onPick:iq,onUseDefaultDirectory:()=>{iD()},onOpenFolder:iF,onRefreshWorktrees:iU,onCreateWorktree:i_,onRemoveWorktree:iH}),!nF&&oC&&(0,d.jsxs)("div",{className:"sidebar-files-actions",role:"group","aria-label":eO("sidebar.fileActions"),children:[eb&&oL,oA,oP,oz,oW("sidebar-files-views-start"),oO]})]}),oC&&i$&&(0,d.jsxs)("div",{role:"alert",className:"sidebar-files-error",children:[(0,d.jsx)("span",{className:"sidebar-files-error-text",children:i$}),(0,d.jsx)(nk,{onClick:()=>nu(null),title:eO("files.dismissError")})]}),(0,d.jsx)("div",{ref:iu,className:"sidebar-files-scroll scrollbar-subtle",children:oC&&(0,d.jsx)(n0,{ref:nz,cwd:oC,onOpenFile:ev??(()=>{}),refreshKey:tR,onAtMention:ek,onAtMentions:eS,onUploadBusyChange:tP,changesCollapsed:tY,onChangesCountChange:tJ,fileSearchOpen:tz,searchAlwaysVisible:nO,onFileSearchOpenChange:tD,showHidden:tX})})]})]})}),(0,d.jsx)(rs,{open:null!==rw,anchor:rw?.anchor??null,sheet:eZ,ariaLabel:oj,title:c,items:h,cancelLabel:eO("sidebar.cancel"),focusCancel:null!==ok,onClose:od,returnFocusTo:rw?.opener??null,width:p,children:ok}),(0,d.jsx)(rT,{toast:rK,onDismiss:()=>rV(null),dismissLabel:eO("sidebar.dismiss")})]})}function rq(e){let{target:t,children:n}=e;return t?(0,m.createPortal)(n,t):n}let rK=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,rV=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,rZ=/\x1B_pi:c\x07/g;function rJ(e){return e.replace(rZ,"").replace(rK,"")}function rY(e){let t=[],n=0;for(;n<e.length;){if(27===e.charCodeAt(n)){let t=e.slice(n).match(rV);if(t){n+=t[0].length;continue}}let r=e.codePointAt(n);if(void 0===r)break;let i=String.fromCodePoint(r);t.push({start:n,end:n+i.length,char:i}),n+=i.length}return t}function rG(e,t){let n=rY(e)[t];return n?e.slice(0,n.start)+e.slice(n.end):e}function rX(e){return rY(e)[0]?.char}let rQ=/[▀-▟]/,r0={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:""},r1={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function r2(e){return"custom"===e.role&&!e.display}function r4(e){return"user"===e.role||"custom"===e.role&&!r2(e)&&("compaction"===e.customType||"pi-web:subagent-notification"===e.customType||"subagent-notification"===e.customType)}function r8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function r3(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(e.content??[]).filter(e=>!r8(e,t))}function r6(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.isStreaming||"error"!==e.stopReason?null:e.errorMessage?.trim()||"Unknown provider error"}function r5(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!t.isStreaming&&"length"===e.stopReason}function r9(e){return(e.content??[]).some(e=>"text"===e.type?e.text.trim().length>0:"image"===e.type||"toolCall"===e.type)}function r7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r3(e,t),r=n.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===r?{answerBlocks:n,processBlocks:[]}:{answerBlocks:n.slice(r+1),processBlocks:n.slice(0,r+1)}}function ie(e){return!e.defaultPrevented&&0===e.button&&!e.shiftKey&&!e.altKey}function it(e){try{return decodeURIComponent(e)}catch{return e}}function ir(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function ii(e){let t=ir(e),n=/^[a-zA-Z]:\//.test(t),r=t.startsWith("//"),i=t.startsWith("/")&&!n&&!r,s=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){s.length>0&&".."!==s[s.length-1]?s.pop():i||n||r||s.push(e);continue}s.push(e)}let o=s.join("/");return n?o:r?`//${o}`:i?`/${o}`:o}function is(e,t){let n,r,i,s,o,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)return null;let a=e.split("#",1)[0].split("?",1)[0].trim();if(!a)return null;let c=null,d=null,u=it(a),p=u.startsWith("\\\\"),h=ir(u),m=h.toLowerCase();if(m.startsWith("/api/")||m.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!m.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(m.startsWith("file:")?d=(c=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let n=it(t.pathname);if(t.hostname)return`//${t.hostname}${n.startsWith("/")?n:`/${n}`}`;if(/^\/[a-zA-Z]:\//.test(n))return n.slice(1);return n}catch{return null}}(a))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(c=h,d="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(c=`${ir(t).replace(/\/+$/,"")}/${h}`,d="relative"),!c)return null;let f=ii(c).replace(/:\d+(?::\d+)?$/,"");return"relative"===d&&l&&(n=ii(f).replace(/\/+$/,""),r=ii(l).replace(/\/+$/,""),s=(i=/^[a-zA-Z]:\//.test(n)||/^[a-zA-Z]:\//.test(r))?n.toLowerCase():n,!(s===(o=i?r.toLowerCase():r)||s.startsWith(`${o}/`)))?null:f}let io=/^page=(\d+)$/i;function il(e){if(!e)return null;let t=e.indexOf("#");if(-1===t)return null;let n=e.slice(t+1).trim().match(io);if(!n)return null;let r=Number.parseInt(n[1],10);return Number.isInteger(r)&&r>0?r:null}function ia(e){let t=e.toLowerCase();return"write"===t||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")}function ic(e){let t=e.toLowerCase();return"edit"===t||t.startsWith("edit_")||t.endsWith(".edit")||t.endsWith("_edit")||t.includes("str_replace")||t.includes("replace_editor")}function id(e){let t=e.toLowerCase();return"apply_patch"===t||t.startsWith("apply_patch_")||t.endsWith(".apply_patch")||t.endsWith("_apply_patch")}function iu(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.input;if("string"==typeof t&&t.length>0)return t}return"string"==typeof t?t:""}function ip(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ih(e){if(!ip(e)||!ip(e.result))return!1;let t=e.result.failures;return Array.isArray(t)&&t.length>0}function im(){let e=[],t=[],n=[],r=()=>({lineNo:null,text:"",type:"empty"}),i=()=>{let i=Math.max(t.length,n.length);for(let s=0;s<i;s++)e.push({type:"line",left:t[s]??r(),right:n[s]??r()});t=[],n=[]};return{rows:e,context(t,n){i(),e.push({type:"line",left:{lineNo:n,text:t,type:"context"},right:{lineNo:n,text:t,type:"context"}})},removed(e,n){t.push({lineNo:n,text:e,type:"removed"})},added(e,t){n.push({lineNo:t,text:e,type:"added"})},gap(){i(),e.length>0&&"gap"!==e[e.length-1].type&&e.push({type:"gap",count:null})},finish(){i(),e.length>0&&"gap"===e[e.length-1].type&&e.pop()}}}function ig(e){if(!e.includes("*** Begin Patch")&&!/\*\*\* (?:Add|Delete|Update) File: /.test(e))return null;let t=[],n=null,r=null,i=null;for(let s of e.split(/\r?\n/)){let e=s.match(/^\*\*\* (Add|Delete|Update) File: (.+)$/);if(e){let s=e[1]?.toLowerCase()??"update",o=(e[2]??"").trim();n?.finish(),i=s,r={oldPath:"add"===s?void 0:o,newPath:"delete"===s?void 0:o,rows:(n=im()).rows},t.push(r);continue}if(/^\*\*\* Move to: /.test(s)){let e=s.replace(/^\*\*\* Move to: /,"").trim();r&&"update"===i&&(r.newPath=e);continue}if(!n||!r)continue;let o=n;if(!s.startsWith("*** ")){if("update"===i&&s.startsWith("@@")){o.gap();continue}if("update"===i){let e=s[0],t=s.slice(1);"+"===e?o.added(t,null):"-"===e?o.removed(t,null):" "===e?o.context(t,null):""!==s&&o.context(s,null)}else if("add"===i){if(""===s)continue;n.added(s.startsWith("+")?s.slice(1):s,null)}else if("delete"===i){if(""===s)continue;n.removed(s.startsWith("-")?s.slice(1):s,null)}}}n?.finish();let s=t.filter(e=>e.rows.length>0);return s.length>0?s:null}function ix(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=e.files;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.filePath||"string"!=typeof e.diff)continue;let t=im();for(let n of e.diff.split(/\r?\n/)){let e=n.match(/^([+\- ])\s*(\d+) (.*)$/);if(!e)continue;let[,r,i,s]=e,o=Number(i);"+"===r?t.added(s,o):"-"===r?t.removed(s,o):t.context(s,o)}t.finish();let r="add"===e.operation,i="delete"===e.operation;n.push({oldPath:r?void 0:e.filePath,newPath:i?void 0:e.movePath??e.filePath,rows:t.rows})}let r=n.filter(e=>e.rows.length>0);return r.length>0?r:null}function iv(e){return e?e.map(e=>e.newPath).filter(e=>"string"==typeof e&&e.length>0):[]}function ib(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={...e,content:t};return n.omitUsage&&(r.usage=void 0),r}function iy(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0}function iw(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m ${r}s`}function ij(e){let t=e.trim().split("\n").map(e=>`> ${e}`).join("\n");return`${t}
|
|
4
|
+
|
|
5
|
+
`}function ik(e){return!e.trim()||e.endsWith("\n\n")?"":e.endsWith("\n")?"\n":"\n\n"}var iS=n(32316);let iC="pi-web:clipboard-failure";async function iN(e){try{if(navigator.clipboard?.writeText)return void await navigator.clipboard.writeText(e);let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t);try{if(t.select(),!document.execCommand("copy"))throw Error("Clipboard copy failed")}finally{t.remove()}}catch(e){throw window.dispatchEvent(new Event(iC)),e}}let iE={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},i$={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},iM={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"};function iI(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function iT(e){return null!==(i$[iI(e)]??null)}function iR(e){return null!==(iM[iI(e)]??null)}var iL=n(88374),iA=n(5924),iP=n(94764),iz=n(63835),iW=n(54152),iO=n(31678),iF=n(6796),iD=n(98164);let iB=["obsidian","logseq","notion","vscode","vscode-insiders","cursor","zed","jetbrains","zoommtg","zoomus","msteams","slack"],i_=RegExp(`^(?:${iB.join("|")}):`,"i"),iH=iP.j.clobberPrefix??"user-content-",iU={...iP.j,clobberPrefix:iH,attributes:{...iP.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},protocols:{...iP.j.protocols,href:[...iP.j.protocols?.href??[],"file",...iB]},strip:[...iP.j.strip||[],"iframe","object","style","form"]};function iq(e){return i_.test(e)?e:(0,iS.Lv)(e)}function iK(e){return/^file:/i.test(e)?e:iq(e)}function iV(e){return!!(e&&/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i.test(e))}function iZ(e){if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("href");if(!t?.startsWith("#"))return;e.preventDefault();let n=t.slice(1);if(!n)return;try{n=decodeURIComponent(n)}catch{}let r=CSS.escape(n);e.currentTarget.closest(".markdown-body")?.querySelector(`[id="${r}"], a[name="${r}"]`)?.scrollIntoView({block:"start"})}function iJ(e,t,n,r,i){let s="",o=0;for(let l=e.indexOf(t);-1!==l;l=e.indexOf(t,l+1)){if(l>0&&n.includes(e[l-1]))continue;r.lastIndex=l;let t=r.exec(e);t&&(s+=e.slice(o,l)+i(t),l=(o=r.lastIndex)-1)}return s+e.slice(o)}let iY=/`((?:[^`\n]|\\`)*?[^\\`\n])`(?!`)/y;function iG(e){let t=e.includes("\r\n")?"\r\n":"\n",n=e.split(/\r?\n/),r=[],i=null,s=0,o=null,l=new Map;for(let e=0;e<n.length;e++){var a,c;let t=n[e];if(o){r.push(t),RegExp(`</${o}\\s*>`,"i").test(t)&&(o=null);continue}let d=t.match(/^ {0,3}(`{3,}|~{3,})/);if(d){let e=d[1][0],n=d[1].length;i?e===i.marker&&n>=i.size&&(i=null):i={marker:e,size:n},s=0,r.push(t);continue}if(i){r.push(t);continue}let u=t.match(/<(code|pre|script|style)\b/i);if(u){let e=u[1].toLowerCase(),n=t.slice((u.index??0)+u[0].length);RegExp(`</${e}\\s*>`,"i").test(n)||(o=e),s=0,r.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){s=0,r.push(t);continue}if(s||(t=iJ(t,"`","\\`",iY,e=>{let[t,n]=e,r=n.replace(/\\`/g,"`");if(r===n)return t;let i="`".repeat(Math.max(...r.match(/`+/g)?.map(e=>e.length)??[0])+1);return`${i}${r}${i}`})),s||t.includes("`")){s=function(e,t){let n=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let r=t+1;for(;"`"===e[r];)r++;let i=r-t;0===n?n=i:i===n&&(n=0),t=r}return n}(t,s),r.push(t);continue}let p=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(p){let e=p[2].trim();if(e){r.push(`${p[1]}$$`,`${p[1]}${e}`,`${p[1]}$$`);continue}}let h=t.match(/^([ ]{0,3})\[[ \t]*(.+?)[ \t]*\][ \t]*$/);if(h){let e=h[2].trim();if(a=e,/\\[A-Za-z]+/.test(a)&&!/\b(?:https?|file|mailto):|\b[A-Za-z]:\\|^\\\\/i.test(a)){r.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let m=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(m){let t=function(e,t){for(let n=t;n<e.length;n++){let t=e[n];if(/^ {0,3}\\\][ \t]*$/.test(t))return n;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(n,e+1);if(-1!==t){r.push(`${m[1]}$$`,...n.slice(e+1,t).map(e=>iQ(e,m[1])),`${m[1]}$$`),e=t;continue}}let f=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(f){let e=f[2].trim();if(e){r.push(`${f[1]}$$`,`${f[1]}${e}`,`${f[1]}$$`);continue}}let g=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(g){let t=g[1],i=g[2].trimEnd();if(i&&!i.includes("$$")){let s=iX(n,e+1,t,l);if(s){r.push(`${t}$$`,`${t}${i}`);for(let i=e+1;i<s.index;i++)r.push(iQ(n[i],t));s.content&&r.push(`${t}${s.content}`),r.push(`${t}$$`),e=s.index;continue}}}let x=t.match(/^([ \t]{0,3})\$\$\s*$/);if(x){let t=x[1],i=iX(n,e+1,t,l);if(i&&(i.glued||""!==t)){r.push(`${t}$$`);for(let s=e+1;s<i.index;s++)r.push(iQ(n[s],t));i.content&&r.push(`${t}${i.content}`),r.push(`${t}$$`),e=i.index;continue}}r.push((c=t,/^\s{0,3}\[[^\]]+\]:/.test(c)||/]\s*\(/.test(c)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(c)||/\b(?:https?|file|mailto):/i.test(c)||/\b[A-Za-z]:\\/.test(c)?c:iJ(c,"\\(","\\",i0,e=>{let[t,n]=e;return n.trim()?`$${n}$`:t})))}return r.join(t)}function iX(e,t,n,r){let i=r.get(n);if(void 0!==i&&t<i)return null;for(let i=t;i<e.length;i++){var s,o,l,a;let t=e[i];if(s=t,""===(o=n)?/^ {0,3}\$\$\s*$/.test(s):s.startsWith(o)&&/^\$\$\s*$/.test(s.slice(o.length)))return{index:i,content:"",glued:!1};if(l=t,/^ {0,3}(`{3,}|~{3,})/.test(l)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(l)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(l)||/^ {0,3}>/.test(l)||/<(code|pre|script|style)\b/i.test(l)||(a=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(a)))return r.set(n,i),null;let c=function(e,t){if(!e.startsWith(t))return null;let n=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!n)return null;let r=n[1].trimEnd();return r&&!r.includes("$$")?r:null}(t,n);if(null!==c)return{index:i,content:c,glued:!0}}return r.set(n,e.length),null}function iQ(e,t){if(!t||!e||e.startsWith(" "))return e;let n=e.match(/^ */)?.[0].length??0;return n>=t.length?e:`${t.slice(n)}${e}`}let i0=/\\\(([^`\r\n$]*?[^`\r\n$\\])\\\)/y,i1={singleTilde:!1},i2=/[\u3001\u3002\u3008-\u3011\u3014-\u301B\uFF01\uFF08\uFF09\uFF0C\uFF1A\uFF1B\uFF1F\u2018\u2019\u201C\u201D\u2013\u2014\u2026\u00B7\uFF5E\u301C]/;function i4(){return(e,t)=>{var n;let r;n="string"==typeof t.value?t.value:"",(r=e=>{let t=e.children;for(let e=0;e<t.length;e++){let i=t[e];"link"===i.type&&function(e,t,n,r){if(null!=n.title||1!==n.children.length)return;let i=n.children[0];if("text"!==i.type)return;let s=n.position?.start,o=n.position?.end;if(s?.offset==null||o?.offset==null||r.slice(s.offset,o.offset)!==i.value)return;let l=i.value,a=l.search(i2);if(a<=0||!n.url.endsWith(l))return;let c=l.slice(0,a),d={line:s.line,column:s.column+a,offset:s.offset+a};n.url=n.url.slice(0,n.url.length-l.length)+c,i.value=c,n.position={start:s,end:d},e.splice(t+1,0,{type:"text",value:l.slice(a),position:{start:d,end:o}})}(t,e,i,n);let s=t[e];"children"in s&&Array.isArray(s.children)&&r(s)}})(e)}}let i8=function(){iD.A.call(this);let e=this.data(),t=e.micromarkExtensions?.at(-1),n=t?.text?.[36];for(let e of Array.isArray(n)?n:n?[n]:[]){if("mathText"!==e.name)continue;let t=e.tokenize;e.tokenize=function(e,n,r){let i=this.now();return t.call(this,e,e=>{let t=this.sliceSerialize({start:i,end:this.now()});if(t.startsWith("$")&&!t.startsWith("$$")){let n=t.slice(1,-1),i=/^\s*[+-]?(?:\d|\.\d)/.test(n),s=null!==e&&e>=48&&e<=57,o=/^\s/.test(n)!==/\s$/.test(n);if(i&&(s||o))return r(e)}return n(e)},r)}}};function i3(){return e=>{let t=e=>{("link"===e.type||"definition"===e.type)&&/^\/?[A-Za-z]:\//.test(e.url)&&(e.url=`file:///${e.url.replace(/^\//,"")}`),"children"in e&&e.children.forEach(t)};t(e)}}let i6=[[iW.A,["yaml"]],[iO.A,i1],iF.A,i4,i8,i3],i5=/[ \t]*(?:\r\n|\r|\n)[ \t]*/,i9=new Set(["root","blockquote","listItem","footnoteDefinition"]);function i7(){return{type:"lineBreak",data:{hName:"br"}}}function se(e){if(!e.children)return;let t=i9.has(e.type);e.children=e.children.map(e=>{if("html"!==e.type)return se(e),e;let n={type:"text",value:e.value??""};return t?{type:"paragraph",children:[n]}:n})}function st(e){e.children&&(e.children=e.children.flatMap(e=>"break"===e.type?[i7()]:"text"===e.type&&e.value?e.value.split(i5).flatMap((e,t)=>[...t>0?[i7()]:[],...e?[{type:"text",value:e}]:[]]):(st(e),[e])))}let sn=[...i6??[],function(){return e=>{se(e),st(e)}}],sr=[...i6??[],function(){return(e,t)=>{se(e),st(e);let n=String(t.value).split(/\r\n|\r|\n/);for(let t of e.children??[])"paragraph"===t.type&&function(e,t){if(!e.position)return;let n=e.position.start.line-1,r=()=>{let e=/^[ \t]*/.exec(t[n]??"")?.[0];return e?[{type:"text",value:e}]:[]},i=r(),s=e=>{e.children=e.children?.flatMap(e=>"lineBreak"===e.type?(n+=1,[e,...r()]):(e.children?s(e):e.position&&(n+=e.position.end.line-e.position.start.line),[e]))};s(e),e.children=[...i,...e.children??[]]}(t,n)}}],si=[[iW.A,["yaml"]],[iO.A,i1],iF.A,i4,i8,i3];function ss(){return e=>{let t=e=>{if(!e||"object"!=typeof e)return;let n=e.properties?.href;for(let r of("element"===e.type&&"string"==typeof n&&n.startsWith("#")&&n.length>1&&(e.properties.href=`#${iH}${n.slice(1)}`),e.children??[]))t(r)};t(e)}}function so(e){return"text"===e.type?e.value:"element"===e.type?e.children.map(so).join(""):""}function sl(){return e=>{let t=e=>{e.children=e.children.map(e=>{if("element"!==e.type)return e;let n="pre"===e.tagName&&1===e.children.length?e.children[0]:null,r=n?.type==="element"&&"code"===n.tagName?n.properties.className:null;return Array.isArray(r)&&r.includes("language-math")?{type:"element",tagName:"div",properties:{className:["markdown-math-display"],dataMathSource:so(e).replace(/\n$/,"")},children:[e]}:(t(e),e)})};t(e)}}let sa=[iA.A,[iz.A,iU],ss,sl,[iL.A,{throwOnError:!1,strict:!1}]],sc=[iA.A,[iz.A,iU],function(){return e=>{let t=new Map,n=e=>e.children.forEach(e=>{if("element"===e.type){if(/^h[1-6]$/.test(e.tagName)){let n=so(e).toLowerCase().replace(/[^\p{L}\p{M}\p{N}_\- ]/gu,"").replace(/ /g,"-"),r=n;for(;t.has(r);)t.set(n,t.get(n)+1),r=`${n}-${t.get(n)}`;t.set(r,0),e.properties.dataHeadingAnchor=r}n(e)}});n(e)}},sl,[iL.A,{throwOnError:!1,strict:!1}]],sd=[iA.A,[iz.A,iU],ss,[iL.A,{throwOnError:!1,strict:!1}]],su=/^ {0,3}(`{3,}|~{3,})/,sp=/^(?:[*+-]|\d{1,9}[.)])(?:[ \t]|$)/,sh=/<[A-Za-z!/?]/,sm=/`[^`]*`/g;function sf(e){let{src:t,alt:n="",children:r,className:i,style:s}=e,{t:o}=(0,tw.s)(),l=o("chat.previewImage"),a=n.trim()?`${l}: ${n}`:l,[c,p]=(0,u.useState)(!1),h=(0,u.useRef)(null),m=(0,u.useRef)(null),f=(0,u.useRef)(null);(0,u.useEffect)(()=>{if(!c)return;let e=m.current;if(!e)return;let t=h.current,n=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),f.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=n,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[c]);let g=()=>{m.current?.open&&m.current.close(),p(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{ref:h,type:"button",className:i,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...s},onClick:()=>p(!0),"aria-label":a,"aria-haspopup":"dialog","aria-expanded":c,title:l,children:r}),c&&(0,d.jsxs)("dialog",{ref:m,className:"image-preview-dialog","aria-label":o("chat.previewImage"),onCancel:e=>{e.preventDefault(),e.stopPropagation(),g()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),g())},onClick:e=>{e.target===e.currentTarget&&g()},children:[(0,d.jsx)("img",{className:"image-preview-image",src:t,alt:n}),(0,d.jsx)("button",{ref:f,type:"button",className:"image-preview-close",onClick:g,"aria-label":o("chat.close"),title:o("chat.close"),children:(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]})}var sg=n(50640),sx=n(55961),sv=n(7644);let sb=[{id:"auto",label:"settings.themeSystem",scheme:null},{id:"light",label:"settings.themeLight",scheme:"light"},{id:"mist",label:"settings.themeMist",scheme:"light"},{id:"lilac",label:"settings.themeLilac",scheme:"light"},{id:"sand",label:"settings.themeSand",scheme:"light"},{id:"rose",label:"settings.themeRose",scheme:"light"},{id:"dark",label:"settings.themeDark",scheme:"dark"},{id:"pine",label:"settings.themePine",scheme:"dark"},{id:"dusk",label:"settings.themeDusk",scheme:"dark"},{id:"ember",label:"settings.themeEmber",scheme:"dark"},{id:"slate",label:"settings.themeSlate",scheme:"dark"},{id:"contrast-light",label:"settings.themeContrastLight",scheme:"light"},{id:"contrast-dark",label:"settings.themeContrastDark",scheme:"dark"},{id:"zenburn",label:"settings.themeZenburn",scheme:"dark"}];sb.flatMap(e=>"light"===e.scheme?[e.id]:[]);let sy=sb.flatMap(e=>"dark"===e.scheme?[e.id]:[]);function sw(e){return sy.includes(e)}let sj="pi-theme",sk={preference:"auto",theme:"light"},sS=new Set,sC=null,sN=!1;function sE(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function s$(e){return"auto"===e?sE():e}function sM(e){"u">typeof document&&(document.documentElement.dataset.theme=e,document.documentElement.classList.toggle("dark",sw(e)))}function sI(){if(sC)return sC;let e=function(){try{let e=localStorage.getItem(sj);if(sb.some(t=>t.id===e))return e}catch{}return"auto"}(),t=s$(e);return sM(t),sC={preference:e,theme:t}}function sT(e,t,n){if(sM(t),n)try{localStorage.setItem(sj,e)}catch{}sC={preference:e,theme:t},sS.forEach(e=>e())}function sR(){let e=sI();if("auto"!==e.preference)return;let t=sE();t!==e.theme&&sT("auto",t,!1)}function sL(e){return sS.add(e),sI(),sN||!window.matchMedia||(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",sR),window.addEventListener("focus",sR),document.addEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&sR()}),sN=!0),sR(),()=>{sS.delete(e)}}function sA(){return sI()}function sP(){return sk}function sz(){let e=(0,u.useSyncExternalStore)(sL,sA,sP),t=(0,u.useCallback)((e,t)=>{if(sI().preference===e)return;let n=s$(e),r=()=>{sT(e,n,!0)},i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||i)return void r();let s=t?.x??window.innerWidth/2,o=t?.y??window.innerHeight/2,l=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(o,window.innerHeight-o));document.startViewTransition(r).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${o}px)`,`circle(${l}px at ${s}px ${o}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[]);return{theme:e.theme,preference:e.preference,setThemePreference:t,isDark:sw(e.theme)}}let sW=!1,sO=null;function sF(){return sW}function sD(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,r]=(0,u.useState)(sF);return(0,u.useEffect)(()=>{if(t||!e)return;let i=!0;return(sO??=n.e(1326).then(n.bind(n,61326)).then(()=>{sW=!0},e=>{throw sO=null,e})).then(()=>{i&&r(!0)},()=>{}),()=>{i=!1}},[e,t]),t}let sB=2e3,s_=!1,sH=[],sU=!1;function sq(){sU=!1,sH.pop()?.(),sH.length>0&&sK()}function sK(){!sU&&(sU=!0,"function"==typeof window.requestIdleCallback?window.requestIdleCallback(sq,{timeout:500}):setTimeout(sq,50))}function sV(e,t){let n=URL.createObjectURL(new Blob([e],{type:"image/svg+xml;charset=utf-8"})),r=document.createElement("a");r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),0)}function sZ(e){let{code:t,isStreaming:r,defaultPreview:i=!1}=e,{isDark:s}=sz(),{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(i),[c,p]=(0,u.useState)(null),[h,m]=(0,u.useState)(!1),f=(0,u.useRef)(null),g=`${s?"dark":"light"}
|
|
6
|
+
${t}`,x=l&&!r;(0,u.useEffect)(()=>{if(!x)return;let e=!1;return p({key:g,status:"loading"}),(async()=>{let{default:r}=await Promise.all([n.e(866),n.e(8367),n.e(3308)]).then(n.bind(n,43328));if(r.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:s?"dark":"default"}),!await r.parse(t,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let i="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,o=await r.render(i,t);e||p({key:g,status:"ready",svg:o.svg})})().catch(()=>{e||p({key:g,status:"error"})}),()=>{e=!0}},[t,g,s,x]);let v=(0,u.useMemo)(()=>(0,d.jsx)(sJ,{isStreaming:r,previewVisible:x,onToggle:()=>a(e=>!e),title:x?o("i18n.showMermaidSource"):o("i18n.previewMermaid")}),[r,x,o]);if(!x)return(0,d.jsx)(s1,{code:t,lang:"mermaid",headerAction:v,isStreaming:r});let b=c?.key===g&&"error"===c.status?(0,d.jsx)("div",{className:"mermaid-block mermaid-block-error",children:o("i18n.invalidMermaid")}):c?.key!==g||"ready"!==c.status?(0,d.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":o("i18n.renderingMermaid")}):(0,d.jsxs)(d.Fragment,{children:[!h&&(0,d.jsx)("button",{ref:f,type:"button",className:"mermaid-block mermaid-preview-button",title:o("i18n.openMermaidViewer"),"aria-label":o("i18n.openMermaidViewer"),onClick:()=>m(!0),dangerouslySetInnerHTML:{__html:c.svg}}),h&&(0,d.jsx)(sX,{title:o("i18n.mermaidDiagram"),label:o("i18n.mermaidViewer"),onClose:()=>m(!1),children:(0,d.jsx)("div",{dangerouslySetInnerHTML:{__html:c.svg}})})]});return(0,d.jsx)(sG,{lang:"mermaid",actions:(0,d.jsxs)(d.Fragment,{children:[c?.key===g&&"ready"===c.status&&(0,d.jsx)(sY,{onClick:()=>{let e=f.current?.querySelector("svg");e&&sV(new XMLSerializer().serializeToString(e),"mermaid-diagram.svg")}}),v]}),children:b})}function sJ(e){let{isStreaming:t,previewVisible:n,onToggle:r,title:i}=e,{t:s}=(0,tw.s)();return(0,d.jsx)("button",{type:"button",onClick:r,disabled:t,title:t?s("i18n.previewAfterStreaming"):i,className:["markdown-code-action",n?"is-active":""].filter(Boolean).join(" "),children:s(n?"i18n.source":"i18n.preview")})}function sY(e){let{onClick:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)("button",{type:"button",className:"markdown-code-action",title:`${n("i18n.downloadFile")} (SVG)`,"aria-label":`${n("i18n.downloadFile")} (SVG)`,onClick:t,children:"SVG"})}function sG(e){let{lang:t,actions:n,children:r}=e;return(0,d.jsxs)("div",{className:"markdown-code-block",children:[(0,d.jsxs)("div",{className:"markdown-code-header",children:[(0,d.jsx)("span",{className:"markdown-code-lang",children:t}),(0,d.jsx)("div",{className:"markdown-code-actions",children:n})]}),r]})}function sX(e){let{title:t,label:n,onClose:r,children:i}=e,{t:s}=(0,tw.s)(),o=(0,u.useRef)(null),[l,a]=(0,u.useState)(1);return(0,u.useEffect)(()=>{let e=o.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,d.jsx)("dialog",{ref:o,className:"mermaid-zoom-dialog","aria-label":n,onCancel:e=>{e.preventDefault(),r()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),r())},children:(0,d.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,d.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[(0,d.jsx)("span",{className:"mermaid-zoom-title",children:t}),(0,d.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,d.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,d.jsx)("button",{type:"button",onClick:()=>a(e=>Math.max(.5,e-.25)),disabled:l<=.5,title:s("i18n.zoomOut"),"aria-label":s("i18n.zoomOut"),children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M5 12h14"})})}),(0,d.jsxs)("span",{className:"mermaid-zoom-value",children:[Math.round(100*l),"%"]}),(0,d.jsx)("button",{type:"button",onClick:()=>a(e=>Math.min(3,e+.25)),disabled:l>=3,title:s("i18n.zoomIn"),"aria-label":s("i18n.zoomIn"),children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,d.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:()=>a(1),title:s("i18n.fitToWidth"),"aria-label":s("i18n.fitToWidth"),children:(0,d.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,d.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,d.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:r,title:s("i18n.close"),"aria-label":s("i18n.close"),children:(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,d.jsx)("div",{className:"mermaid-zoom-viewport",onClick:e=>{e.target===e.currentTarget&&r()},children:(0,d.jsx)("div",{className:"mermaid-zoom-canvas",style:{width:`${100*l}%`},children:i})})]})})}let sQ={...sv.xJ,'pre[class*="language-"]':{...sv.xJ['pre[class*="language-"]']}};function s0(e){let{rows:t,stylesheet:n,useInlineStyles:r}=e;return t.map((e,t)=>{let i=e.children??[],s=i[0]?.properties?.className.includes("react-syntax-highlighter-line-number")?i[0]:null,o={...e,properties:{...e.properties,className:[...e.properties?.className??[],"markdown-code-line-text"]},children:s?i.slice(1):i};return(0,d.jsxs)("span",{className:"markdown-code-line",children:[s&&(0,sg.Ay)({node:s,stylesheet:n,useInlineStyles:r,key:"number"}),(0,sg.Ay)({node:o,stylesheet:n,useInlineStyles:r,key:"text"})]},t)})}delete sQ['pre[class*="language-"]'].background;let s1=(0,u.memo)(function(e){let{code:t,lang:n,headerAction:r,isStreaming:i}=e,{isDark:s}=sz(),{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(!1),c=sD(),[p,h]=(0,u.useState)(()=>{var e;return!i&&sF()&&(e=t.length,s_||(s_=!0,setTimeout(()=>{sB=2e3,s_=!1},0)),!(e>sB)&&(sB-=e,!0))});return(0,u.useEffect)(()=>{if(!i&&!p&&c){var e;return e=()=>h(!0),sH.push(e),sK(),()=>{let t=sH.indexOf(e);-1!==t&&sH.splice(t,1)}}},[i,p,c]),(0,d.jsxs)("div",{className:"markdown-code-block",children:[(0,d.jsxs)("div",{className:"markdown-code-header",children:[(0,d.jsx)("span",{className:"markdown-code-lang",children:n||"text"}),(0,d.jsxs)("div",{className:"markdown-code-actions",children:[r,(0,d.jsx)("button",{onClick:()=>{a(!1),iN(t).then(()=>{a(!0),setTimeout(()=>a(!1),1500)},()=>{})},className:"markdown-code-action",children:o(l?"i18n.copied":"i18n.copy")})]})]}),i?(0,d.jsx)("pre",{style:{margin:0,padding:"11px 13px",fontSize:"calc(12.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.62,whiteSpace:"pre-wrap",overflowWrap:"anywhere",backgroundColor:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},children:(0,d.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:t})}):(0,d.jsx)(sx.A,{language:p&&n||"text",style:s?sQ:sv.vs,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",flexShrink:0},renderer:s0,customStyle:{margin:0,padding:"11px 13px",fontSize:"calc(12.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.62,fontWeight:"var(--font-mono-weight)",border:"none",borderRadius:0,backgroundColor:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},codeTagProps:{style:{fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)"}},children:t})]})}),s2="http://www.w3.org/2000/svg";function s4(e,t){let n=t.parseFromString(e,"image/svg+xml");return n.getElementsByTagName("parsererror").length>0?null:n.documentElement}function s8(e){let{code:t,isStreaming:n}=e,{t:r}=(0,tw.s)(),[i,s]=(0,u.useState)(!0),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(null),[p,h]=(0,u.useState)(null),m=i&&!n,f=(0,u.useMemo)(()=>{var e;let n,r;return m&&"u">typeof DOMParser?(e=new DOMParser,r=s4(n=t,e),r?.localName!=="svg"||null!==r.namespaceURI||r.hasAttribute("xmlns")||(r=s4(n=t.replace(/<svg(?=[\s/>])/,`<svg xmlns="${s2}"`),e)),r?.localName==="svg"&&r.namespaceURI===s2?n:null):void 0},[t,m]),g=(0,u.useMemo)(()=>f?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(f)}`:null,[f]),x=(0,u.useMemo)(()=>(0,d.jsx)(sJ,{isStreaming:n,previewVisible:m,onToggle:()=>s(e=>!e),title:m?r("i18n.showSvgSource"):r("i18n.previewSvg")}),[n,m,r]);if(!m)return(0,d.jsx)(s1,{code:t,lang:"svg",headerAction:x,isStreaming:n});let v=null!==g&&a!==g,b=e=>(0,d.jsx)("img",{src:g??void 0,alt:r("i18n.svgImage"),className:[e,p===g?"is-unsized":""].filter(Boolean).join(" "),onLoad:e=>{let{naturalWidth:t,naturalHeight:n}=e.currentTarget;t&&n||h(g)},onError:()=>c(g)});return(0,d.jsx)(sG,{lang:"svg",actions:(0,d.jsxs)(d.Fragment,{children:[v&&f&&(0,d.jsx)(sY,{onClick:()=>sV(f,"image.svg")}),x]}),children:void 0===f?(0,d.jsx)("div",{className:"mermaid-block mermaid-block-loading"}):v?(0,d.jsxs)(d.Fragment,{children:[!o&&(0,d.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:r("i18n.openSvgViewer"),"aria-label":r("i18n.openSvgViewer"),onClick:()=>l(!0),children:b("svg-block-image")}),o&&(0,d.jsx)(sX,{title:r("i18n.svgImage"),label:r("i18n.svgViewer"),onClose:()=>l(!1),children:b("svg-zoom-image")})]}):(0,d.jsx)("div",{className:"mermaid-block mermaid-block-error",children:r("i18n.invalidSvg")})})}let s3=(0,u.createContext)(!1);function s6(e){let{src:t,alt:n,cwd:r,...i}=e,s=(0,u.useContext)(s3);delete i.node;let o="string"==typeof t?t:void 0,l=o?is(o,r):null,a=l?`/api/files/${ey(l)}?type=read`:o,c=l??o?.split(/[?#]/,1)[0]??"",p=n?.trim()?n:void 0;if(iT(c))return(0,d.jsx)("audio",{controls:!0,preload:"metadata",src:a,"aria-label":p});if(iR(c))return(0,d.jsx)("video",{controls:!0,playsInline:!0,preload:"metadata",src:a,"aria-label":p});let h=(0,d.jsx)("img",{src:a,alt:n??"",loading:"lazy",...i});return!a||s?h:(0,d.jsx)(sf,{src:a,alt:n??"",className:"markdown-image",children:h})}function s5(e){let{source:t,children:n}=e,{t:r}=(0,tw.s)(),[i,s]=(0,u.useState)(!1);return(0,d.jsxs)("div",{className:"markdown-math-display",children:[n,(0,d.jsx)("button",{type:"button",onClick:()=>{s(!1),iN(t).then(()=>{s(!0),setTimeout(()=>s(!1),1500)},()=>{})},className:"markdown-code-action markdown-math-copy",children:r(i?"i18n.copied":"i18n.copy")})]})}let s9=(0,u.memo)(function(e){let{markdown:t,remarkPlugins:n,urlTransform:r,rehypePlugins:i,components:s}=e;return(0,d.jsx)(iS.oz,{remarkPlugins:n,rehypePlugins:i,urlTransform:r,components:s,children:t})}),s7=(0,u.memo)(function(e){let{children:t,className:n,isStreaming:r,cwd:i,onOpenFile:s,onNavigateLink:o,keepLineBreaks:l,keepTextLayout:a}=e,c=(0,u.useMemo)(()=>iG(t),[t]),p=(0,u.useMemo)(()=>r?function(e){let t=e.split("\n");if(/^---[ \t]*\r?$/.test(t[0]))return[e];let n=[],r=[],i=null,s=!1,o=!1,l=!1;for(let e of t){let t=""===e.trim();!l||t||i||s||o||!(r.length>0)||/^[ \t]/.test(e)||sp.test(e)||(n.push(r.join("\n")+"\n"),r=[]),r.push(e);let a=e.match(su);if(a){let e=a[1][0],t=a[1].length;i?e===i.marker&&t>=i.size&&(i=null):i={marker:e,size:t}}else if(!i){let t=e.replace(sm,"");sh.test(t)&&(o=!0),(t.match(/\$\$/g)?.length??0)%2==1&&(s=!s)}l=t}return n.push(r.join("\n")),n}(c):[c],[r,c]),h=(0,u.useMemo)(()=>({code(e){let{className:t,children:n,...i}=e,s=t?.replace("language-","").toLowerCase()??"",o=String(n);return t?.includes("language-")||o.includes("\n")?"mermaid"===s?(0,d.jsx)(sZ,{code:o.replace(/\n$/,""),isStreaming:r,defaultPreview:!0}):"svg"===s?(0,d.jsx)(s8,{code:o.replace(/\n$/,""),isStreaming:r}):(0,d.jsx)(s1,{code:o.replace(/\n$/,""),lang:s,isStreaming:r}):(0,d.jsx)("code",{className:"markdown-inline-code",...i,children:n})},pre(e){let{children:t}=e;return(0,d.jsx)(d.Fragment,{children:t})},a(e){let{href:t,children:n,...r}=e;if(delete r.node,o&&t&&!iV(t)){let e=()=>o(t);return(0,d.jsx)(s3.Provider,{value:!0,children:(0,d.jsx)("a",{...r,role:"link",tabIndex:0,onClick:e,onKeyDown:t=>{"Enter"===t.key&&e()},children:n})})}if(t?.startsWith("#"))return(0,d.jsx)(s3.Provider,{value:!0,children:(0,d.jsx)("a",{href:t,...r,onClick:iZ,children:n})});let l=s?is(t,i):null;return l&&s?(0,d.jsx)(s3.Provider,{value:!0,children:(0,d.jsx)("a",{href:t,...r,onClick:e=>{if(!ie(e))return;let n=e.currentTarget.getAttribute("target");n&&"_self"!==n||(e.preventDefault(),s(l,il(t)??void 0))},children:n})}):(0,d.jsx)(s3.Provider,{value:!0,children:(0,d.jsx)("a",{href:t,...r,target:"_blank",rel:"noopener noreferrer",children:n})})},img:e=>(0,d.jsx)(s6,{cwd:i,...e}),ol(e){let{node:t,start:n,style:r,...i}=e,s=String(Math.abs((n??1)+Math.max(t?.children.filter(e=>"element"===e.type&&"li"===e.tagName).length??0,1)-1)).length;return(0,d.jsx)("ol",{start:n,style:{...r,"--ol-marker-digits":Math.max(s,2)},...i})},div(e){let{node:t,children:n,...r}=e,i=t?.properties?.dataMathSource;return"string"==typeof i?(0,d.jsx)(s5,{source:i,children:n}):(0,d.jsx)("div",{...r,children:n})},table(e){let{children:t}=e;return(0,d.jsx)("div",{className:"markdown-table-frame",children:(0,d.jsx)("div",{className:"markdown-table-wrap",children:(0,d.jsx)("table",{children:t})})})}}),[i,r,s,o]);return(0,d.jsx)("div",{className:["markdown-body",n].filter(Boolean).join(" "),children:p.map((e,t)=>(0,d.jsx)(s9,{markdown:e,remarkPlugins:a?sr:l?sn:i6,urlTransform:s?iK:iq,rehypePlugins:o?sc:sa,components:h},t))})});function oe(e){let{active:t,size:n=14}=e;return(0,d.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,d.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",stroke:t?"#d4a017":void 0,fill:t?"rgba(250, 204, 21, 0.18)":"none",style:{filter:t?"drop-shadow(0 0 2px rgba(250, 204, 21, 0.35))":"none"}}),(0,d.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,d.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]})}let ot=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,on=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;function or(e){let t,n=[],r=null,i=0,s=0,o=0,l=0,a=null,c=[],d=[],u=()=>({lineNo:null,text:"",type:"empty"}),p=()=>{if(!r){c=[],d=[];return}let e=Math.max(c.length,d.length);for(let t=0;t<e;t++){let e=c[t]?{lineNo:c[t].lineNo,text:c[t].text,type:"removed"}:u(),n=d[t]?{lineNo:d[t].lineNo,text:d[t].text,type:"added"}:u();r.rows.push({type:"line",left:e,right:n})}c=[],d=[]};for(let u of e.split(/\r?\n/)){if(!(o>0||l>0)){if(u.startsWith("--- ")){p(),t=oo(u.slice(4));continue}if(u.startsWith("+++ ")){p(),r={oldPath:t,newPath:oo(u.slice(4)),rows:[]},n.push(r),a=null;continue}}let e=u.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(e){r||(r={rows:[]},n.push(r)),p(),i=Number(e[1]),s=Number(e[3]),o=void 0===e[2]?1:Number(e[2]),l=void 0===e[4]?1:Number(e[4]);let t=0===o?i+1:i,c=0===l?s+1:s;if(a){let e=t-a.old,n=c-a.new;(e>0||n>0)&&r.rows.push({type:"gap",count:e===n?e:null})}a={old:t+o,new:c+l},r.rows.push({type:"hunk",text:u});continue}if(!r)continue;if(u.startsWith("\\ ")){p(),r.rows.push({type:"hunk",text:u});continue}let h=u[0],m=u.slice(1);" "===h?(p(),r.rows.push({type:"line",left:{lineNo:i++,text:m,type:"context"},right:{lineNo:s++,text:m,type:"context"}}),o>0&&o--,l>0&&l--):"-"===h?(c.push({lineNo:i++,text:m}),o>0&&o--):"+"===h?(d.push({lineNo:s++,text:m}),l>0&&l--):""!==u&&(p(),r.rows.push({type:"hunk",text:u}))}p();let h=n.filter(e=>e.rows.some(e=>"line"===e.type));return h.length>0?h:null}function oi(e){let t=[];for(let n of e.rows)if("hunk"!==n.type){if("gap"===n.type){t.push(n);continue}if("context"===n.left.type&&"context"===n.right.type){t.push({type:"context",text:n.right.text,oldLineNo:n.left.lineNo,newLineNo:n.right.lineNo});continue}"empty"!==n.left.type&&t.push({type:"removed",text:n.left.text,oldLineNo:n.left.lineNo,newLineNo:null}),"empty"!==n.right.type&&t.push({type:"added",text:n.right.text,oldLineNo:null,newLineNo:n.right.lineNo})}return t}function os(e,t){return 1===e?t("diff.unchangedLine"):t("diff.unchangedLines",{count:e})}function oo(e){return e.split(" ")[0].trim()}let ol=new Set,oa="pi-thinking-expanded",oc="pi-thinking-expanded-changed";function od(){try{return"true"===window.localStorage.getItem(oa)}catch{return!1}}function ou(e){let{files:t,onOpenFile:n}=e,{t:r}=(0,tw.s)();return 0===t.length?null:(0,d.jsx)("div",{"aria-label":r("chat.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:t.map(e=>{let{filePath:t}=e,i=ew(t);return(0,d.jsxs)("button",{type:"button",title:t,"aria-label":r("chat.openWrittenFile",{name:i}),onClick:()=>n?.(t),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:12,fontFamily:"var(--font-mono)",color:"var(--text)",background:"var(--bg-subtle)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:[nM(i,12),(0,d.jsx)("span",{children:i})]},t)})})}let op="codemode",oh=new Set(["running","ok","error","cancelled"]);function om(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function of(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function og(e){if(!om(e)||!Array.isArray(e.calls))return{calls:[],omitted:0};let t=e.calls.flatMap(e=>{let t=function(e){if(!om(e)||"string"!=typeof e.name)return null;let t="string"==typeof e.status&&oh.has(e.status)?e.status:"ok",n=of(e.durationMs),r=of(e.cost);return{id:"string"==typeof e.id?e.id:"",name:e.name,args:"string"==typeof e.args?e.args:"",status:t,...void 0!==n?{durationMs:n}:{},..."string"==typeof e.error&&e.error?{error:e.error}:{},...void 0!==r&&r>0?{cost:r}:{}}}(e);return t?[t]:[]}),n=of(e.omittedCalls);return{calls:t,omitted:void 0!==n&&n>0?Math.floor(n):0}}let ox=/^Script (completed|failed)\nWall time ([\d.]+) seconds\nOutput:\n$/;function ov(e){return`$${e>=.01?e.toFixed(2):e.toPrecision(2)}`}let ob={running:{icon:"…",color:"#d97706"},ok:{icon:"✓",color:"#16a34a"},error:{icon:"✗",color:"#f87171"},cancelled:{icon:"⊘",color:"var(--text-dim)"}};function oy(e){var t;let{call:n}=e,{t:r}=(0,tw.s)(),i=ob[n.status],s=void 0===(t=n.durationMs)?"":t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`;return(0,d.jsxs)("li",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0},children:[(0,d.jsx)("span",{role:"img","aria-label":r(`codemode.status.${n.status}`),title:r(`codemode.status.${n.status}`),style:{color:i.color,width:12,flexShrink:0,textAlign:"center"},children:i.icon}),(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontWeight:600,flexShrink:0},children:n.name}),n.args&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:n.args}),s&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:s}),void 0!==n.cost&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:ov(n.cost)})]}),n.error&&(0,d.jsx)("div",{style:{color:"#f87171",paddingLeft:18,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:n.error})]})}function ow(e){let t,{calls:n,omitted:r,isError:i}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(!1);if(0===n.length&&0===r)return null;let a=o?0:Math.max(0,n.length-20),c=a>0?n.slice(a):n,p=(t=n.filter(e=>void 0!==e.cost)).length>1?t.reduce((e,t)=>e+(t.cost??0),0):null;return(0,d.jsxs)("div",{style:{borderTop:i?"1px solid rgba(248,113,113,0.25)":"1px solid rgba(34,197,94,0.2)",background:"var(--bg-subtle)",padding:"6px 10px",fontFamily:"var(--font-mono)",fontSize:"calc(11.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,display:"flex",flexDirection:"column",gap:3,minWidth:0},children:[(0,d.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"inherit",fontSize:11},children:s("codemode.calls")}),r>0&&(0,d.jsx)("div",{style:{color:"var(--text-dim)"},children:s("codemode.omittedCalls",{count:r})}),a>0&&(0,d.jsx)("button",{type:"button",onClick:()=>l(!0),style:{alignSelf:"flex-start",padding:0,border:"none",background:"none",color:"var(--accent)",cursor:"pointer",font:"inherit"},children:s("codemode.showEarlierCalls",{count:a})}),(0,d.jsx)("ul",{style:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:3,minWidth:0},children:c.map((e,t)=>(0,d.jsx)(oy,{call:e},e.id||`${a+t}`))}),null!==p&&(0,d.jsx)("div",{style:{color:"var(--text-dim)"},children:s("codemode.modelCost",{cost:ov(p)})})]})}var oj=n(9701);let ok=new Map,oS="transcriptNotices";function oC(e){if("object"!=typeof e||null===e)return[];let t=e[oS];return Array.isArray(t)?t:[]}function oN(e){return e<1e3?e.toString():e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:e<1e7?`${(e/1e6).toFixed(1)}M`:`${Math.round(e/1e6)}M`}let oE="#d97706";function o$(e,t){let n=t>=.01?`$${t.toFixed(2)}`:void 0;return n?e("transcriptNotice.costSuffix",{cost:n}):""}function oM(e,t){switch(t.kind){case"cache_miss":{let n={tokens:oN(t.missedTokens),cost:o$(e,t.missedCost)};if(t.modelChanged)return e("transcriptNotice.cacheMissModelSwitch",n);if(void 0!==t.idleMinutes)return e("transcriptNotice.cacheMissIdle",{...n,minutes:t.idleMinutes});return e("transcriptNotice.cacheMiss",n)}case"cache_warm":var n;return e("transcriptNotice.cacheWarmed",{note:t.note?e("transcriptNotice.cacheWarmedNote",{note:t.note}):"",cost:(n=t.cost,`$${n.toFixed(6).replace(/(\.\d{3}\d*?)0+$/,"$1")}`)});case"summary_cost":return e("compaction"===t.source?"transcriptNotice.compactionCost":"transcriptNotice.branchSummaryCost",{tokens:oN(t.tokens),cost:o$(e,t.cost)});case"thinking_dropped":return e(1===t.count?"transcriptNotice.thinkingDroppedOne":"transcriptNotice.thinkingDropped",{count:t.count})}}let oI=(0,u.memo)(function(e){let{notices:t}=e,{t:n}=(0,tw.s)(),r=t.filter(e=>"summary_cost"!==e.kind||"compaction"!==e.source);return 0===r.length?null:(0,d.jsx)("div",{className:"transcript-notices",style:{display:"flex",flexDirection:"column",gap:2,margin:"-6px 0 12px"},children:r.map((e,t)=>{let r="cache_warm"!==e.kind;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:12,lineHeight:1.5,color:r?oE:"var(--text-dim)",overflowWrap:"anywhere"},children:[r&&(0,d.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,marginTop:3},children:[(0,d.jsx)("path",{d:"M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"}),(0,d.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,d.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,d.jsx)("span",{children:oM(n,e)})]},t)})})}),oT=/[\u3000-\u30ff\u3400-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}\uac00-\ud7af]/u;function oR(e){let t=0,n=0;for(let r of e)oT.test(r)?t++:n++;return t+n/4}let oL=new Map;function oA(e){let{children:t,className:n,...r}=e,{t:i}=(0,tw.s)(),[s,o]=(0,u.useState)(!1);if(t.length<=1e5)return(0,d.jsx)(s7,{className:n,...r,children:t});if(!s){var l;return(0,d.jsxs)("button",{onClick:()=>o(!0),style:{display:"block",width:"100%",margin:"4px 0",padding:"7px 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:["⚠ ",i("i18n.largeMessageReveal",{size:(l=t.length)>=1e6?`${(l/1e6).toFixed(1)} MB`:l>=1e3?`${Math.round(l/1e3)} KB`:`${l} B`})]})}return(0,d.jsx)("div",{className:n,style:{maxHeight:420,overflow:"auto",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:t})})}function oP(e){if(!e)return null;let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(r)return i;let s=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${s} ${i}`}let oz=(0,u.memo)(function(e){let{message:t,isStreaming:n,toolResults:r,modelNames:i,cwd:s,onOpenFile:o,onOpenSubagent:l,entryId:a,searchBlock:c,onFork:u,forking:p,onEditContent:h,onCancelEdit:m,isEditing:f,showTimestamp:g,prevTimestamp:x,sessionId:v,writtenFiles:b,turnDurationMs:y,onCompact:w,isCompacting:j,compactError:k}=e;return"user"===t.role?(0,d.jsx)(oW,{message:t,cwd:s,onOpenFile:o,entryId:a,onFork:u,forking:p,onEditContent:h,onCancelEdit:m,isEditing:f}):"assistant"===t.role?(0,d.jsx)(oO,{message:t,isStreaming:n,toolResults:r,modelNames:i,cwd:s,onOpenFile:o,onOpenSubagent:l,showTimestamp:g,prevTimestamp:x,sessionId:v,entryId:a,searchBlock:c,writtenFiles:b,turnDurationMs:y,onCompact:w,isCompacting:j,compactError:k}):"toolResult"===t.role?null:"custom"===t.role?"compaction"===t.customType?(0,d.jsx)(o3,{message:t}):(0,d.jsx)(o7,{message:t,cwd:s,onOpenFile:o}):"bashExecution"===t.role?(0,d.jsx)(lu,{message:t,sessionId:v}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,n){if(t===n||"assistant"!==e.role)return!0;for(let r of e.content??[])if("toolCall"===r.type&&t?.get(r.toolCallId)!==n?.get(r.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.onOpenSubagent===t.onOpenSubagent&&e.entryId===t.entryId&&e.searchBlock===t.searchBlock&&e.onFork===t.onFork&&e.forking===t.forking&&e.onEditContent===t.onEditContent&&e.onCancelEdit===t.onCancelEdit&&e.isEditing===t.isEditing&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.writtenFiles===t.writtenFiles&&e.turnDurationMs===t.turnDurationMs&&e.sessionId===t.sessionId&&e.onCompact===t.onCompact&&e.isCompacting===t.isCompacting&&e.compactError===t.compactError);function oW(e){let{message:t,cwd:n,onOpenFile:r,entryId:i,onFork:s,forking:o,onEditContent:l,onCancelEdit:a,isEditing:c}=e,{t:p}=(0,tw.s)(),[h,m]=(0,u.useState)(!1),[f,g]=(0,u.useState)(!1),[x,v]=(0,u.useState)(!1),b=("string"==typeof t.content?t.content:t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).replace(/\r\n?/g,"\n"),y="string"==typeof t.content?[]:t.content.filter(e=>"image"===e.type),w=eN(b),j=w?.search(/\s/)??-1,k=w?-1===j?w:w.slice(0,j):"",S=w&&-1!==j?w.slice(j+1):"",C=oP(t.timestamp),N=!!i&&!!s,E=w??b,$=w?function(e,t){if("string"==typeof e.content)return{...e,content:t};let n=[],r=!1;for(let i of e.content){if("text"!==i.type){n.push(i);continue}r||(n.push({...i,text:t}),r=!0)}return r||n.unshift({type:"text",text:t}),{...e,content:n}}(t,w):t,M=y.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!b},children:y.map((e,t)=>{let n=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return(0,d.jsx)(sf,{src:n,children:(0,d.jsx)("img",{src:n,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:8,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t)})}),I=!!i&&!!l,T=!!c&&!!a;return(0,d.jsxs)("div",{style:{marginBottom:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,d.jsx)("div",{className:"user-message-bubble",style:{flex:1,minWidth:0,background:c?"color-mix(in srgb, var(--accent) 14%, var(--user-bg))":"var(--user-bg)",border:c?"1px solid color-mix(in srgb, var(--accent) 62%, var(--user-bg))":"1px solid var(--border)",boxShadow:c?"0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)":void 0,borderRadius:12,padding:"8px 12px",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",maxHeight:300,overflowY:"auto"},children:w?(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,minWidth:0},children:[M,(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,flexWrap:"wrap"},children:[(0,d.jsxs)("button",{onClick:()=>v(e=>!e),title:p(x?"i18n.collapse":"i18n.expand"),"aria-expanded":x,style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,padding:0,background:"none",border:"none",cursor:"pointer",color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"calc(13px + var(--chat-font-size-offset, 0px))",textAlign:"left"},children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k}),(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,opacity:.75,transform:x?"rotate(180deg)":"none",transition:"transform 0.15s"},"aria-hidden":"true",children:(0,d.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),S&&(0,d.jsx)("span",{style:{color:"var(--text)",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",minWidth:0,flex:1},children:S})]}),x&&(0,d.jsx)(s7,{className:"markdown-user-message",keepLineBreaks:!0,cwd:n,onOpenFile:r,children:function(e){let t=e.match(eC);if(!t)return null;let n=t[4],r=void 0===n?9:11+n.length;return e.slice(e.indexOf("\n")+1,e.length-r)}(b)??b})]}):(0,d.jsxs)(d.Fragment,{children:[M,b&&(0,d.jsx)(oA,{className:"markdown-user-message",keepLineBreaks:!0,cwd:n,onOpenFile:r,children:b})]})})}),(0,d.jsxs)("div",{className:"user-message-actions-row",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,d.jsx)("div",{className:"message-hover-actions","data-visible":h,style:{display:"flex",gap:3},children:(0,d.jsxs)("button",{onClick:()=>{g(!1),iN(E).then(()=>{g(!0),setTimeout(()=>g(!1),1500)},()=>{})},title:p("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{f||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{f||(e.currentTarget.style.color="var(--text-dim)")},children:[f?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),(0,d.jsx)("span",{className:"message-action-label",children:p(f?"i18n.copied":"i18n.copy")})]})}),(N||I||T)&&(0,d.jsxs)("div",{className:"message-hover-actions","data-visible":h||o||T,style:{display:"flex",gap:3},children:[I&&!T&&(0,d.jsxs)("button",{onClick:()=>l($,i),title:p("i18n.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,d.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),(0,d.jsx)("span",{className:"message-action-label",children:p("i18n.editFromHere")})]}),T&&(0,d.jsxs)("button",{type:"button",onClick:a,title:p("i18n.cancel"),"aria-label":p("i18n.cancel"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:500,whiteSpace:"nowrap"},children:[(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M6 6l12 12M18 6L6 18"})}),(0,d.jsx)("span",{className:"message-action-label",children:p("i18n.cancel")})]}),N&&(0,d.jsxs)("button",{onClick:()=>{s(i)},disabled:o,title:p(o?"i18n.creatingSession":"i18n.newSessionTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:o?"var(--accent)":"var(--text-dim)",cursor:o?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{o||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{o||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,d.jsx)("span",{className:"message-action-label",children:p(o?"i18n.creating":"i18n.newSession")})]})]}),C&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:C})]})]})}function oO(e){var t,n,r,i,s;let o,l,a,c,p,h,{message:m,isStreaming:f,toolResults:g,modelNames:x,cwd:v,onOpenFile:b,onOpenSubagent:y,showTimestamp:w,prevTimestamp:j,sessionId:k,entryId:S,searchBlock:C,writtenFiles:N,turnDurationMs:E,onCompact:$,isCompacting:M,compactError:I}=e,{t:T}=(0,tw.s)(),R=w?oP(m.timestamp):null,L=(0,u.useMemo)(()=>(m.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(e=>{let{block:t}=e;return!r8(t,{isStreaming:f})}),[m.content,f]),A=(0,u.useMemo)(()=>L.map(e=>{let{block:t}=e;return t}),[L]),P=r6(m,{isStreaming:f}),z=r5(m,{isStreaming:f}),W=z&&!r9(m),[O,F]=(0,u.useState)(!1),[D,B]=(0,u.useState)(!1),_=(0,u.useRef)(null),H="number"!=typeof m.timestamp?null:`${m.provider??""}/${m.model??""}@${m.timestamp}`,U=(0,u.useRef)(H);U.current=H;let[q,K]=(0,u.useState)(null),V=(0,u.useRef)(L);V.current=L;let Z=(0,u.useRef)(new Map),J=(0,u.useMemo)(()=>{if(!f)return Z.current=new Map,0;let e=new Map,t=0;for(let{block:n,originalIndex:r}of L){let i="text"===n.type?n.text:"thinking"===n.type?n.thinking:"toolCall"===n.type?n.rawInput??JSON.stringify(n.input??{})??"":null;if(null===i)continue;let s=function(e,t){var n,r;if(!e||!t.startsWith(e.text))return oR(t);let i=e.tokens,s=e.text.length;return s>0&&s<t.length&&(n=e.text.charCodeAt(s-1))>=55296&&n<=56319&&(r=t.charCodeAt(s))>=56320&&r<=57343&&(i-=1/4,s--),i+oR(t.slice(s))}(Z.current.get(r),i);e.set(r,{text:i,tokens:s}),t+=s}return Z.current=e,t},[L,f]),Y=(0,u.useRef)(J);Y.current=J;let G=(0,u.useRef)(new Map),[X,Q]=(0,u.useState)(new Map),ee="assistant"===m.role?oH(m.durationMs):void 0,et=(0,u.useMemo)(()=>{let e=ee??(m.timestamp&&j?m.timestamp-j:void 0);if(void 0===e)return;let t=Math.round(e/1e3);return t>0?t:void 0},[ee,m.timestamp,j]),en=(0,u.useMemo)(()=>{let e=new Map;if(!g)return e;for(let[t,n]of g){let r=oH(n.durationMs)??(n.timestamp&&m.timestamp?n.timestamp-m.timestamp:void 0);void 0!==r&&r>=oU&&e.set(t,r)}return e},[g,m.timestamp]),er=A.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),ei=m.usage?(r=m.usage,o=[],r.input&&o.push({icon:"up",before:"↑",text:oN(r.input)}),r.output&&o.push({icon:"down",before:"↓",text:oN(r.output)}),r.cacheRead&&o.push({text:`R${oN(r.cacheRead)}`}),r.cacheWrite&&o.push({text:`W${oN(r.cacheWrite)}`}),r.cost?.total&&o.push({text:`$${r.cost.total.toFixed(4)}`}),o):[];if(void 0!==E){let e;ei.length>0&&ei.push({text:"\xb7"});let t=iw(E);ei.push((i=T("chat.turnDuration",{time:t}),s=t,(e=i.indexOf(s))<0?{text:i}:{icon:"clock",before:i.slice(0,e),text:s,after:i.slice(e+s.length)}))}return((0,u.useEffect)(()=>{if(!f){let e=new Date().getTime();Q(t=>{let n=new Map(t);for(let[t,r]of G.current)n.has(t)||n.set(t,Math.round((e-r)/1e3));return n}),_.current=null,K(null);return}let e=setInterval(()=>{var e;let t,n=V.current,r=Date.now();n.forEach(e=>{let{originalIndex:t}=e;G.current.has(t)||G.current.set(t,r)}),Q(e=>{let t=!1,i=new Map(e);for(let e=0;e<n.length-1;e++){let s=n[e].originalIndex,o=n[e+1].originalIndex;if(!i.has(s)&&G.current.has(s)){let e=G.current.get(s),n=G.current.get(o)??r;i.set(s,Math.round((n-e)/1e3)),t=!0}}return t?i:e});let i=Y.current;if(0===i)return;_.current??=function(e,t,n){let r=null===e?void 0:ok.get(e);if(r)return r;let i={at:n,tokens:t};return null!==e&&(ok.set(e,i),ok.size>32&&ok.delete(ok.keys().next().value)),i}(U.current,i,r);let s=(e=_.current,(t=(r-e.at)/1e3)>.5?(i-e.tokens)/t:null);null!==s&&K(s)},300);return()=>clearInterval(e)},[f]),0!==A.length||f||P||z)?(0,d.jsxs)("div",{"data-message-role":"assistant","data-entry-id":S,style:{marginBottom:16},onMouseEnter:()=>F(!0),onMouseLeave:()=>F(!1),children:[(0,d.jsxs)("div",{className:"assistant-model-label",style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[m.provider&&(0,d.jsx)("span",{children:(t=m.provider,n=m.model,l=t.toLowerCase(),a=n.toLowerCase(),c=Object.entries(x??{}).flatMap(e=>{let[t,n]=e,r=t.indexOf(":");return r>0&&t.slice(0,r).toLowerCase()===l?[{id:t.slice(r+1).toLowerCase(),name:n}]:[]}),c.find(e=>e.id===a)?.name??c.find(e=>a.endsWith(`/${e.id}`))?.name??Object.entries(x??{}).find(e=>{let[t]=e;return t.toLowerCase()===a})?.[1]??`${t}/${n}`)}),f&&(p=Math.round(J),(0,d.jsx)(d.Fragment,{children:p>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:T("i18n.estimatedTokens"),children:[(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),p]}),null!==q&&(h=q>=50?"#53b3cb":q>=30?"#9bc53d":q>=15?"#f9c22e":"#e01a4f",(0,d.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:h,color:"#fff",fontSize:11,fontWeight:400},children:[q.toFixed(1)," t/s"]}))]})}))]}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:L.map(e=>{let{block:t,originalIndex:n}=e;return(0,d.jsx)(oF,{block:t,searchTarget:t===C,toolResults:g,isStreaming:f,streamingDuration:X.get(n)??("thinking"===t.type?et:void 0),toolCallDurations:en,cwd:v,onOpenFile:b,onOpenSubagent:y,sessionId:k,entryId:S,blockIndex:n},n)})}),P&&(0,d.jsxs)("div",{role:"alert",style:{marginTop:8*(A.length>0),padding:"7px 10px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,background:"rgba(239,68,68,0.07)",color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:["Error: ",P]}),z&&(0,d.jsxs)("div",{role:"alert",style:{marginTop:A.length>0||P?8:0,padding:"7px 10px",border:"1px solid rgba(234,179,8,0.3)",borderRadius:6,background:"rgba(234,179,8,0.07)",color:"#ca8a04",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[T(W?"chat.truncatedWithoutAnswer":"chat.truncatedByOutputLimit"),W&&$&&(0,d.jsx)("button",{type:"button",onClick:$,disabled:M,style:{display:"block",marginTop:8,padding:"3px 8px",border:"1px solid currentColor",borderRadius:5,background:"transparent",color:"inherit",cursor:M?"default":"pointer",font:"inherit"},children:T(M?"chat.compacting":"chat.compactContext")}),W&&I&&(0,d.jsx)("div",{style:{marginTop:8,color:"#ef4444",whiteSpace:"pre-wrap"},children:I})]}),N&&N.length>0&&(0,d.jsx)(ou,{files:N,onOpenFile:b}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[ei.length>0&&!f&&(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",columnGap:7,fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:ei.map((e,t)=>(0,d.jsxs)(u.Fragment,{children:[t>0&&" ",(0,d.jsx)(ld,{part:e})]},t))}),er&&!f&&(0,d.jsxs)("button",{onClick:()=>{B(!1),iN(er).then(()=>{B(!0),setTimeout(()=>B(!1),1500)},()=>{})},className:"message-hover-actions","data-visible":O,title:T("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:D?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap"},onMouseEnter:e=>{D||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{D||(e.currentTarget.style.color="var(--text-dim)")},children:[D?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),(0,d.jsx)("span",{className:"message-action-label",children:T(D?"i18n.copied":"i18n.copy")})]}),R&&!f&&(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto",whiteSpace:"nowrap"},children:R})]})]}):null}function oF(e){let{block:t,searchTarget:n,toolResults:r,isStreaming:i,streamingDuration:s,toolCallDurations:o,cwd:l,onOpenFile:a,onOpenSubagent:c,sessionId:u,entryId:p,blockIndex:h}=e;if("text"===t.type)return(0,d.jsx)("div",{"data-message-text":!0,"data-search-target":n||void 0,children:(0,d.jsx)(oD,{block:t,isStreaming:i,cwd:l,onOpenFile:a})});if("thinking"===t.type)return(0,d.jsx)(o_,{block:t,duration:s,sessionId:u,entryId:p,blockIndex:h});if("toolCall"===t.type){let e=r?.get(t.toolCallId),n=o?.get(t.toolCallId);return(0,d.jsx)(oq,{block:t,result:e,duration:n,onOpenSubagent:c})}return null}function oD(e){let{block:t,isStreaming:n,cwd:r,onOpenFile:i}=e;return(0,d.jsx)(oA,{isStreaming:n,cwd:r,onOpenFile:i,children:t.text})}function oB(e){let{text:t}=e,n=(0,u.useMemo)(()=>(function(e){let t=[],n=0;for(;e.length-n>8e3;){let r=n+8e3,i=r+8e3,s=e.slice(r,i+1),o=s.indexOf("\n");for(;o>=0&&/\n\r?$/.test(e.slice(r+o-2,r+o));)o=s.indexOf("\n",o+1);if(o>=0){let i=r+o;if(i===e.length-1)break;t.push({text:e.slice(n,i),lineBreak:!0}),n=i+1}else if(e.length>i){let r=e.charCodeAt(i-1),s=r>=55296&&r<=56319?i-1:i;t.push({text:e.slice(n,s),lineBreak:!1}),n=s}else break}return t.push({text:e.slice(n),lineBreak:!1}),t})(t),[t]);return 1===n.length?t:n.map((e,t)=>(0,d.jsx)("div",{children:e.text},t))}function o_(e){var t;let{block:n,duration:r,sessionId:i,entryId:s,blockIndex:o}=e,{t:l}=(0,tw.s)(),[a,c]=(0,u.useState)(od),[p,h]=(0,u.useState)(null),[m,f]=(0,u.useState)(!1),[g,x]=(0,u.useState)(null),v=`${i}:${s}:${o}`,[b,y]=(0,u.useState)(v);b!==v&&(y(v),h(null),f(!1),x(null));let w=(0,u.useRef)(l);w.current=l;let j=(t=n.thinking,t.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd()??"");return(0,u.useEffect)(()=>{let e=()=>c(od());return window.addEventListener(oc,e),()=>window.removeEventListener(oc,e)},[]),(0,u.useEffect)(()=>{if(!a||!n.deferred||null!==p)return;if(!i||!s)return void x(w.current("i18n.thinkingUnavailable"));let e=!1;return f(!0),x(null),(function(e,t,n){let r=`${e}:${t}:${n}`,i=oL.get(r);if(i)return oL.delete(r),oL.set(r,i),i;let s=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${n}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw oL.delete(r),e});if(oL.set(r,s),oL.size>100){let e=oL.keys().next().value;e&&oL.delete(e)}return s})(i,s,o).then(t=>{e||(h(t),f(!1))}).catch(t=>{e||(x(t instanceof Error?t.message:String(t)),f(!1))}),()=>{e=!0}},[a,n.deferred,p,i,s,o]),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,minWidth:0,border:"1px solid var(--border)",borderRadius:7,padding:"6px 10px",background:"var(--bg)",fontFamily:"var(--font-mono)",fontSize:"calc(11px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:[(0,d.jsxs)("button",{type:"button","aria-expanded":a,"aria-label":`${l("i18n.thinking")}${j?`: ${j}`:""}`,title:l("i18n.thinking"),onClick:()=>c(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,width:a?14:"100%",flexShrink:+!a,minWidth:0,minHeight:"1.5em",padding:0,background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",font:"inherit",textAlign:"left"},children:[(0,d.jsx)(oe,{active:a}),!a&&(0,d.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j?(0,d.jsx)(iS.oz,{allowedElements:[],unwrapDisallowed:!0,skipHtml:!0,children:j}):"..."})]}),a&&(0,d.jsx)("div",{style:{flex:1,minWidth:0,color:g?"#f87171":"var(--text-muted)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:m?l("i18n.loadingThinking"):g??(0,d.jsx)(oB,{text:(n.deferred?p:n.thinking)??""})}),void 0!==r&&(0,d.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[r,"s"]})]})}function oH(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0}let oU=100;function oq(e){var t,n,r,i;let s,{block:o,result:l,duration:a,onOpenSubagent:c}=e,{t:p}=(0,tw.s)(),[h,m]=(0,u.useState)(()=>{var e;return void 0!==(e=o.toolCallId)&&ol.has(e)}),f=function(e){if(void 0!==e.rawInput||!ia(e.toolName))return null;let{content:t}=e.input;return"string"!=typeof t||""===t?null:Object.keys(e.input).every(e=>lr.has(e))?t:null}(o),g=f??(r=o).rawInput??JSON.stringify(r.input,null,2),x=void 0!==o.rawInput,v=ic(o.toolName),b=l&&!l.isError?function(e){let t=e.details;if(!o2(t))return null;let n="string"==typeof t.patch?t.patch:null;if(n)return{text:n};let r="string"==typeof t.diff?t.diff:null;return r?{text:r}:null}(l):null,y=b?.text,w=(0,u.useMemo)(()=>(function(e){if(!e)return null;let t=or(e);return t?.length===1&&oG(t[0])||null})(y),[y]),j=function(e,t){if(!id(e.toolName))return null;let n=ig(iu(e.input,e.rawInput));if(n)return n;let r=t&&!t.isError?t.details:void 0;if(o2(r)){let e=ix(r.preview);if(e)return e}return null}(o,l),k=id(o.toolName)?0===(s=function(e){let t=[];for(let n of e.matchAll(/^\*\*\* (?:Add|Delete|Update) File: (.+)$/gm)){let e=(n[1]??"").trim();e&&!t.includes(e)&&t.push(e)}return t}(iu((i=o).input,i.rawInput))).length?null:s.join(", ").slice(0,120):null,S=o.toolName!==op||x?null:om(t=o.input)&&"string"==typeof t.code?t.code:null,C=null===S?null:{code:S,...og(l?.details)},N=null!==C&&void 0!==l&&0===l.content.length,E=h&&null===f&&null===C&&null===j?function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return null;let t=Object.entries(e);if(0===t.length)return null;let n=[];for(let[e,r]of t){if(null!==r&&"string"!=typeof r&&"number"!=typeof r&&"boolean"!=typeof r)return null;let t=null===r?"null":String(r);n.push({key:e,value:""===t?"(empty)":t,multiline:t.includes("\n")})}return n}(x?(0,oj.o2)(o.rawInput):o.input):null,$=function(e,t){if(!e.startsWith("mcp__")||!("object"==typeof t&&null!==t&&!Array.isArray(t)))return null;let{server:n,tool:r}=t;return"string"==typeof n&&"string"==typeof r&&n&&r?{server:n,tool:r}:null}(o.toolName,l?.details),M=l?C?function(e){let[t,...n]=e;return t?.type==="text"&&"string"==typeof t.text&&ox.test(t.text)?n:[...e]}(l.content):l.content:[],I=l?M.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,T=$&&null!==I?function(e){let t=e.trim();if(t.length>2e5||!/^[[{]/.test(t))return e;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}}(I):I,R=lt(M),L=null!==T&&("(no output)"===T.trim()||""===T.trim()),A=(l?.isError??!1)||id(o.toolName)&&ih(l?.details),P=(n=l?.details)&&"object"==typeof n&&"pi-web-subagent"===n.kind&&"string"==typeof n.sessionId?l.details:null,z=C?C.calls.length+C.omitted:0;return(0,d.jsxs)("div",{style:{borderRadius:9,overflow:"hidden",fontSize:12,border:A?"1px solid rgba(248,113,113,0.45)":"1px solid var(--border)",background:A?"rgba(248,113,113,0.05)":"var(--bg-subtle)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"stretch",minWidth:0},children:[(0,d.jsxs)("button",{type:"button",className:"tool-call-toggle","aria-expanded":h,onClick:()=>{var e;let t=!h;e=o.toolCallId,e&&(t?ol.add(e):ol.delete(e)),m(t)},style:{display:"flex",alignItems:"center",gap:7,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,d.jsx)("span",{title:$?o.toolName:void 0,style:{color:A?"#f87171":"color-mix(in srgb, #16a34a 72%, var(--text))",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:$?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{style:{fontWeight:500,opacity:.75},children:[$.server,"/"]}),$.tool]}):o.toolName}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:x?p("chat.generatingToolInput"):k??(C?function(e){for(let t of e.split(/\r?\n/)){let e=t.trim();if(e&&!e.startsWith("// @options:"))return e}return""}(C.code):function(e,t){let n=e.input;if(!n||"object"!=typeof n)return"";let r=Object.keys(n);return 0===r.length?"":"command"in n?String(n.command).slice(0,120):"path"in n?String(n.path).slice(0,120):"file_path"in n?String(n.file_path).slice(0,120):t?t.slice(0,120):"pattern"in n?String(n.pattern).slice(0,120):"query"in n?String(n.query).slice(0,120):String(n[r[0]]).slice(0,120)}(o,w))}),z>0&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:1===z?p("codemode.callCountOne"):p("codemode.callCount",{count:z})}),void 0!==a&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:function(e){let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let n=Math.floor(t),r=Math.floor(n/60),i=n%60;return r<60?`${r}m ${i}s`:`${Math.floor(r/60)}h ${r%60}m ${i}s`}(a)}),(0,d.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:{flexShrink:0,transform:h?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),P&&c&&(0,d.jsx)("button",{type:"button",onClick:()=>c(P.sessionId,P.description||P.profile),title:p("subagent.openTab"),"aria-label":p("subagent.openTab"),style:{width:32,display:"grid",placeItems:"center",border:"none",borderLeft:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,d.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,d.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})})]}),h&&(x||!v)&&!j&&(E?(0,d.jsx)("div",{style:{padding:"6px 10px 8px",background:"var(--bg-subtle)",borderTop:A?"1px solid rgba(248,113,113,0.25)":"1px solid var(--border)"},children:(0,d.jsx)(ll,{fields:E})}):(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,overflow:"auto",background:"var(--bg-subtle)",borderTop:A?"1px solid rgba(248,113,113,0.25)":"1px solid var(--border)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:C?C.code.replace(/\r/g,"").trimEnd():g})),h&&C&&(0,d.jsx)(ow,{calls:C.calls,omitted:C.omitted,isError:A}),R.length>0&&(0,d.jsx)(o4,{images:R,isError:A}),h&&j&&(0,d.jsx)("div",{style:{borderTop:"1px solid var(--border)",background:"var(--bg)"},children:(0,d.jsx)(oZ,{files:j})}),h&&l&&j&&A&&(0,d.jsx)(o8,{text:T??"",isEmpty:L,isError:A}),h&&l&&!j&&!N&&(b?(0,d.jsx)(oK,{diff:b}):(!L||0===R.length)&&(0,d.jsx)(o8,{text:T??"",isEmpty:L,isError:A}))]})}function oK(e){let{diff:t}=e;return(0,d.jsx)("div",{style:{borderTop:"1px solid var(--border)",background:"var(--bg)"},children:(0,d.jsx)(oV,{text:t.text})})}function oV(e){let{text:t}=e,n=(0,u.useMemo)(()=>or(t),[t]);return n?(0,d.jsx)(oZ,{files:n}):(0,d.jsx)(o1,{text:t})}function oZ(e){let{files:t}=e,n=tT()?"stacked":"split";return(0,d.jsx)(oJ,{files:t,layout:n})}function oJ(e){let{files:t,layout:n}=e,{t:r}=(0,tw.s)(),i=t.length>1;return(0,d.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:t.map((e,t)=>(0,d.jsxs)("div",{style:{minWidth:0,borderTop:0===t?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55},children:[i&&"split"===n&&(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)(oQ,{title:e.oldPath||r("i18n.before"),side:"left"}),(0,d.jsx)(oQ,{title:e.newPath||r("i18n.after"),side:"right"})]}),i&&"stacked"===n&&oG(e)&&(0,d.jsx)("div",{title:oG(e),style:{position:"sticky",top:0,zIndex:1,padding:"5px 10px",color:"var(--text-dim)",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:oG(e)}),"split"===n&&(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:"gap"===e.type?(0,d.jsx)(oY,{gap:e},t):(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)(o0,{cell:e.left,side:"left"}),(0,d.jsx)(o0,{cell:e.right,side:"right"})]},t))}),"stacked"===n&&oi(e).map((e,t)=>"gap"===e.type?(0,d.jsx)(oY,{gap:e},t):(0,d.jsx)(oX,{line:e},t))]},t))})}function oY(e){let{gap:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)("div",{style:{gridColumn:"1 / -1",padding:"0 10px",color:"var(--text-dim)",background:"var(--bg-panel)",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)",userSelect:"none"},children:null===t.count?"⋯":`⋯ ${os(t.count,n)}`})}function oG(e){return e.newPath&&"/dev/null"!==e.newPath?e.newPath:e.oldPath||e.newPath||""}function oX(e){let{line:t}=e;return(0,d.jsx)(o0,{side:"right",cell:{lineNo:"removed"===t.type?t.oldLineNo:t.newLineNo,text:t.text,type:t.type}})}function oQ(e){let{title:t,side:n}=e;return(0,d.jsx)("div",{title:t,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===n?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})}function o0(e){let{cell:t,side:n}=e,r="added"===t.type?"rgba(34,197,94,0.12)":"removed"===t.type?"rgba(248,113,113,0.13)":"empty"===t.type?"var(--bg-subtle)":"transparent",i="added"===t.type?"+":"removed"===t.type?"-":" ",s="added"===t.type?"#22c55e":"removed"===t.type?"#f87171":"var(--text-dim)";return(0,d.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===n?"1px solid var(--border)":"none"},children:[(0,d.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:t.lineNo??""}),(0,d.jsx)("span",{style:{width:18,padding:"0 5px",color:s,userSelect:"none",fontWeight:"context"===t.type||"empty"===t.type?400:700,flexShrink:0},children:i}),(0,d.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===t.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.text||"\xa0"})]})}function o1(e){let{text:t}=e,n=t.split(/\r?\n/);return(0,d.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55,minWidth:0},children:n.map((e,t)=>{let n=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,d.jsxs)("div",{style:{display:"flex",background:"added"===n?"rgba(34,197,94,0.12)":"removed"===n?"rgba(248,113,113,0.13)":"hunk"===n?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===n?"3px solid #22c55e":"removed"===n?"3px solid #f87171":"hunk"===n?"3px solid var(--accent)":"3px solid transparent"},children:[(0,d.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,d.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===n?"#22c55e":"removed"===n?"#f87171":"hunk"===n?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function o2(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function o4(e){let{images:t,isError:n}=e;return(0,d.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)",borderTop:`1px solid ${n?"rgba(248,113,113,0.3)":"var(--border)"}`},children:t.map((e,t)=>{let n=ln(e);return n?(0,d.jsx)(sf,{src:n,style:{maxWidth:"100%"},children:(0,d.jsx)("img",{src:n,alt:"",loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${n}-${t}`):null})})}function o8(e){let{text:t,isEmpty:n,isError:r}=e,{t:i}=(0,tw.s)();return(0,d.jsx)("div",{style:{borderTop:`1px solid ${r?"rgba(248,113,113,0.3)":"var(--border)"}`,background:r?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:(0,d.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:r?"#f87171":n?"var(--text-dim)":"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:n?"italic":"normal",opacity:n?.6:1},children:n?i("i18n.noOutput"):t})})}function o3(e){let{message:t}=e,{t:n}=(0,tw.s)(),[r,i]=(0,u.useState)(!1),s=le(t.content),o=oP(t.timestamp),l=t.details?.tokensBefore,a=oC(t).find(e=>"summary_cost"===e.kind&&"compaction"===e.source);return(0,d.jsx)("div",{style:{marginBottom:16},children:(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:"compaction"}),o&&(0,d.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:o})]}),(0,d.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,d.jsxs)("button",{type:"button","aria-expanded":r,title:n(r?"i18n.collapse":"i18n.expand"),onClick:()=>i(e=>!e),style:{display:"flex",alignItems:"flex-start",gap:8,width:"100%",padding:0,border:"none",background:"transparent",color:"var(--text)",cursor:"pointer",font:"inherit",textAlign:"left"},children:[(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,marginTop:4,color:"var(--text-muted)",transform:r?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,d.jsxs)("span",{style:{minWidth:0},children:[(0,d.jsx)("span",{style:{display:"block",fontSize:"calc(15px + var(--chat-font-size-offset, 0px))",fontWeight:700,lineHeight:1.35},children:n("i18n.conversationCompacted")}),"number"==typeof l&&Number.isFinite(l)&&(0,d.jsx)("span",{style:{display:"block",marginTop:3,color:"var(--text-muted)",fontSize:"calc(13px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:n("i18n.compactedFromTokens",{tokens:l.toLocaleString()})}),a&&(0,d.jsx)("span",{style:{display:"block",marginTop:2,color:oE,fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:oM(n,a)})]})]}),r&&(0,d.jsx)(o6,{summary:s})]})]})})}function o6(e){let{summary:t}=e,{t:n}=(0,tw.s)(),r=(0,u.useMemo)(()=>{let e,n,r,i,s;return e=[],n=[],r=t.match(on),i=r?.[1]??"",s=r?.index===void 0?t:t.slice(0,r.index),i.replace(ot,(t,r,i)=>{let s=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===r?e.push(...s):n.push(...s),""}),{body:s.trim(),readFiles:e,modifiedFiles:n}},[t]);return(0,d.jsxs)("div",{style:{marginTop:10},children:[(0,d.jsx)("div",{style:{marginBottom:10,color:"var(--text)",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:n("i18n.compactionDescription")}),r.body?(0,d.jsx)(s7,{className:"markdown-compaction-message",children:r.body}):(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:n("i18n.noSummary")}),(0,d.jsx)(o5,{readFiles:r.readFiles,modifiedFiles:r.modifiedFiles})]})}function o5(e){let{readFiles:t,modifiedFiles:n}=e,{t:r}=(0,tw.s)();if(0===t.length+n.length)return null;let i=[];return t.length>0&&i.push(`${t.length} read`),n.length>0&&i.push(`${n.length} modified`),(0,d.jsxs)("details",{className:"compaction-file-details",children:[(0,d.jsx)("summary",{children:r("i18n.fileContext",{details:i.join(", ")})}),n.length>0&&(0,d.jsx)(o9,{title:r("i18n.modifiedFiles"),files:n}),t.length>0&&(0,d.jsx)(o9,{title:r("i18n.readFiles"),files:t})]})}function o9(e){let{title:t,files:n}=e;return(0,d.jsxs)("div",{className:"compaction-file-section",children:[(0,d.jsx)("div",{className:"compaction-file-title",children:t}),(0,d.jsx)("ul",{className:"compaction-file-list",children:n.map(e=>(0,d.jsx)("li",{children:e},e))})]})}function o7(e){let{message:t,cwd:n,onOpenFile:r}=e,{t:i}=(0,tw.s)(),[s,o]=(0,u.useState)(!0),[l,a]=(0,u.useState)(!1),[c,p]=(0,u.useState)(!1),h=le(t.content),m=lt(t.content),f=void 0!==t.details,g=f?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(t.details):"",x=t.customType||"extension",v=oP(t.timestamp);return(0,d.jsx)("div",{style:{marginBottom:16},children:(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:s?"1px solid var(--border)":"none",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:(0,d.jsxs)("button",{type:"button",onClick:()=>o(e=>!e),"aria-expanded":s,title:i(s?"i18n.collapse":"i18n.expand"),style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1,padding:0,border:"none",background:"none",color:"inherit",cursor:"pointer",fontSize:"inherit",textAlign:"left"},children:[(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650,flexShrink:0},children:x}),!s&&h&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:h.slice(0,300).replace(/\s+/g," ").trim()}),v&&(0,d.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,flexShrink:0},children:v}),(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,transform:s?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]})}),s&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{style:{padding:"6px 9px"},children:[m.length>0&&(0,d.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!h},children:m.map((e,t)=>{let n=ln(e);return n?(0,d.jsx)(sf,{src:n,children:(0,d.jsx)("img",{src:n,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t):null})}),h?(0,d.jsx)(s7,{className:"markdown-custom-message",keepTextLayout:!0,cwd:n,onOpenFile:r,children:h}):(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:i("i18n.noMessage")})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[h||g?(0,d.jsx)("button",{onClick:()=>{p(!1),iN(h||g).then(()=>{p(!0),setTimeout(()=>p(!1),1500)},()=>{})},style:{padding:"3px 7px",border:"none",background:"none",color:c?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:i(c?"i18n.copied":"i18n.copy")}):null,f&&(0,d.jsx)("button",{onClick:()=>a(e=>!e),style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:i(l?"i18n.hideDetails":"i18n.showDetails")})]}),f&&l&&(0,d.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:g})]})]})})}function le(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function lt(e){return"string"==typeof e?[]:e.filter(e=>"image"===e.type)}function ln(e){return e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:""}let lr=new Set(["path","file_path","content"]),li={padding:"4px 12px 4px 0",color:"var(--text-dim)",fontSize:"calc(11px + var(--chat-font-size-offset, 0px))",whiteSpace:"nowrap",verticalAlign:"top"},ls={padding:"4px 0",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},lo={margin:0,padding:"8px 10px",maxHeight:260,overflow:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",font:"inherit",lineHeight:1.5,whiteSpace:"pre-wrap"};function ll(e){let{fields:t}=e;return(0,d.jsx)("table",{style:{borderCollapse:"collapse"},children:(0,d.jsx)("tbody",{children:t.map(e=>(0,d.jsxs)("tr",{children:[(0,d.jsx)("td",{style:li,children:e.key}),(0,d.jsx)("td",{style:ls,children:e.multiline?(0,d.jsx)("pre",{style:lo,children:e.value}):e.value})]},e.key))})})}let la={up:"M6 10.5V1.5M2.5 5 6 1.5 9.5 5",down:"M6 1.5v9M2.5 7 6 10.5 9.5 7",clock:"M6 1.25a4.75 4.75 0 1 0 0 9.5 4.75 4.75 0 1 0 0-9.5M6 3.5V6l1.75 1"},lc={fontSize:0};function ld(e){let{part:t}=e;return t.icon?(0,d.jsxs)("span",{children:[t.before&&(0,d.jsx)("span",{style:lc,children:t.before}),(0,d.jsx)("svg",{width:"clock"===t.icon?10:9,height:"clock"===t.icon?10:9,viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,style:{display:"inline",verticalAlign:"clock"===t.icon?"-0.1em":"-0.05em",marginRight:"clock"===t.icon?3:1},children:(0,d.jsx)("path",{d:la[t.icon]})}),t.text,t.after&&(0,d.jsx)("span",{style:lc,children:t.after})]}):(0,d.jsx)("span",{children:t.text})}function lu(e){let{message:t,sessionId:n}=e,{t:r}=(0,tw.s)(),[i,s]=(0,u.useState)(null),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(null),p=!t.output&&void 0===t.exitCode&&!t.cancelled,h=t.cancelled||void 0!==t.exitCode&&0!==t.exitCode,m=n&&t.fullOutputPath?`/api/agent/${encodeURIComponent(n)}/bash-output?path=${encodeURIComponent(t.fullOutputPath)}`:null,f=t.truncated&&m&&null===i,g=i??t.output;async function x(){if(m){l(!0),c(null);try{let e=await fetch(m),t=await e.json();t.success?s(t.data?.output??""):c(t.error??"failed")}catch(e){c(String(e))}finally{l(!1)}}}let v=t.excludeFromContext?"bash (local)":"bash",b={type:"toolCall",toolCallId:`bash-${t.timestamp??""}`,toolName:v,input:{command:t.command}},y=p?void 0:{role:"toolResult",toolCallId:b.toolCallId,toolName:v,content:g?[{type:"text",text:g}]:[],isError:h,timestamp:t.timestamp};return(0,d.jsxs)("div",{style:{margin:"6px 0"},children:[(0,d.jsx)(oq,{block:b,result:y}),t.truncated&&m&&(0,d.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[f&&(0,d.jsx)("button",{onClick:x,disabled:o,style:{background:"none",border:"none",color:"var(--accent)",cursor:o?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:r(o?"chat.loadingFullOutput":"chat.viewFullOutput")}),(0,d.jsx)("a",{href:`${m}&download=1`,style:{marginLeft:10*!!f,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:r("chat.downloadFullOutput")}),a&&(0,d.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",a,")"]})]})]})}function lp(e){if(!e||"object"!=typeof e||"string"!=typeof e.data||"string"!=typeof e.mimeType||!e.mimeType.startsWith("image/"))return!1;let t=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),n=e.length-t;for(let t=0;t<n;t+=1){var r;if(!((r=e.charCodeAt(t))>=65&&r<=90||r>=97&&r<=122||r>=48&&r<=57||43===r||47===r))return null}for(let t=n;t<e.length;t+=1)if("="!==e[t])return null;return e.length/4*3-t}(e.data);return null!==t&&t<=0xa00000}let lh=new Map;function lm(e){return`parked-new:${e}`}function lf(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function lg(e){return!e.value&&0===e.images.length}function lx(e){let t=lh.get(e);return t?lf(t):null}function lv(e,t){lg(t)?lh.delete(e):lh.set(e,lf(t))}function lb(e){lh.delete(e)}function ly(e,t){return e.trim()?t.trim()?`${e}
|
|
7
|
+
|
|
8
|
+
${t}`:e:t}function lw(e,t,n,r){let i=[...t??[],...r].filter(lp).slice(0,10).map(e=>{let{data:t,mimeType:n}=e;return{data:t,mimeType:n}});return{value:ly(e,n),images:i}}function lj(e,t,n){let r=lx(e)??{value:"",images:[]},i=lw(t,n,r.value,r.images);return lv(e,i),i}function lk(e,t,n){if(e===t)return n?lf(n):lx(t);let r=lx(e),i=n&&!lg(n)?lf(n):r??(n?lf(n):null),s=lx(t);if(lb(e),!i)return s;let o=s?lw(s.value,s.images,i.value,i.images):i;return lv(t,o),lf(o)}let lS=/^([ \t]*)([-*+])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,lC=/^([ \t]*)(\d{1,9})([.)])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,lN=/^([ \t]*)(\d{1,3})(、)([ \t]*)/,lE=/^[ \t]*([-*_])(?:[ \t]*\1){2,}[ \t]*$/,l$=/^[ \t]{0,3}(`{3,}|~{3,})/;function lM(e){return"mcp"===e.name&&e.sourceInfo?.path==="builtin:mcp"}function lI(e){return"/mcp"===e.trim()}let lT="pi-enter-send-mode",lR="enter",lL=null,lA=new Set;function lP(){return null===lL&&(lL=function(){try{let e=window.localStorage.getItem(lT);return"ctrlEnter"===e?"ctrlEnter":"enter"}catch{return lR}}()),lL}function lz(e){return lA.add(e),()=>{lA.delete(e)}}function lW(e){lL=e;try{window.localStorage.setItem(lT,e)}catch{}lA.forEach(e=>e())}function lO(){return(0,u.useSyncExternalStore)(lz,lP,()=>lR)}let lF="pi-chat-content-width",lD="pi-chat-content-font-size",lB={width:820,fontSize:14},l_=null,lH=new Set;function lU(e){let t=Number(e);return Number.isFinite(t)?Math.max(820,Math.min(2e3,Math.round(t))):820}function lq(e){let t=Number(e??14);return Number.isFinite(t)?Math.max(12,Math.min(24,Math.round(t))):14}function lK(e){try{return window.localStorage.getItem(e)}catch{return null}}function lV(e){let{width:t,fontSize:n}=e;"u">typeof document&&(document.documentElement.style.setProperty("--chat-content-max-width",`${t}px`),document.documentElement.style.setProperty("--chat-content-font-size",`${n}px`))}function lZ(){return l_||lV(l_={width:lU(lK(lF)),fontSize:lq(lK(lD))}),l_}function lJ(e){return lH.add(e),()=>{lH.delete(e)}}function lY(e,t){let n="width"===e?lU(t):lq(t);lV(l_={...lZ(),[e]:n});try{window.localStorage.setItem("width"===e?lF:lD,String(n))}catch{}lH.forEach(e=>e())}let lG=e=>lY("width",e),lX=e=>lY("fontSize",e);function lQ(){return{...(0,u.useSyncExternalStore)(lJ,lZ,()=>lB),setWidth:lG,setFontSize:lX}}let l0=[{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"}],l1={ui:"pi-ui-font-family",mono:"pi-mono-font-family",uiWeight:"pi-ui-font-weight",monoWeight:"pi-mono-font-weight"},l2={ui:"",mono:"",uiWeight:400,monoWeight:400};function l4(e){let t="string"==typeof e?Number(e):e;return l0.find(e=>e.value===t)?.value??400}function l8(e){return"string"==typeof e&&e.length<=500?e:""}let l3=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded"]),l6=["ui","mono"],l5=Object.keys(l1),l9=null,l7=new Set;function ae(){let e={...l2};for(let t of l6)try{e[t]=l8(window.localStorage.getItem(l1[t]));let n=`${t}Weight`;e[n]=l4(window.localStorage.getItem(l1[n]))}catch{}return e}function at(e){for(let t of l6){let n=`--font-${t}`,r=function(e,t){let n=l8(t).split(",").flatMap(e=>{let t=e.trim().replace(/\s+/g," "),n=t.length>=2&&('"'===t[0]||"'"===t[0])&&t.endsWith(t[0]);return(n&&(t=t.slice(1,-1).trim()),t)?[!n&&l3.has(t.toLowerCase())?t.toLowerCase():JSON.stringify(t)]:[]}).join(", ");return n?`${n}, var(--font-${e}-default)`:""}(t,e[t]);r?document.documentElement.style.setProperty(n,r):document.documentElement.style.removeProperty(n);let i=e[`${t}Weight`];400===i?document.documentElement.style.removeProperty(`${n}-weight`):document.documentElement.style.setProperty(`${n}-weight`,String(i))}}function an(){return l9||at(l9=ae()),l9}function ar(){l7.forEach(e=>e())}function ai(e){if(null!==e.key&&!Object.values(l1).includes(e.key))return;let t=ae(),n=an();l5.every(e=>t[e]===n[e])||(l9=t,at(t),ar())}function as(e){return 0===l7.size&&window.addEventListener("storage",ai),l7.add(e),an(),()=>{l7.delete(e),0===l7.size&&window.removeEventListener("storage",ai)}}function ao(e){let t=an(),n=l5.filter(n=>t[n]!==e[n]);if(n.length){for(let t of(l9=e,at(e),n))try{e[t]===l2[t]?window.localStorage.removeItem(l1[t]):window.localStorage.setItem(l1[t],String(e[t]))}catch{}ar()}}function al(e,t){ao({...an(),[e]:l8(t)})}function aa(e,t){ao({...an(),[`${e}Weight`]:l4(t)})}function ac(e){ao({...an(),[e]:"",[`${e}Weight`]:400})}function ad(){return{...(0,u.useSyncExternalStore)(as,an,()=>l2),setFontPreference:al,setFontWeight:aa,resetFontPreference:ac}}function au(e){let{filled:t,size:n}=e;return(0,d.jsx)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:(0,d.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 ap(e){let{active:t,onSelect:n,star:r,gutter:i=!!r,className:s,children:o}=e,l=tT(),[a,c]=(0,u.useState)(!1),[p,h]=(0,u.useState)(!1),m=!!(r&&!r.isDefault),f=m&&(a||p||l);return(0,d.jsxs)("div",{className:s,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),onFocus:()=>h(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||h(!1)},style:{position:"relative",background:t?"var(--bg-selected)":a?"var(--bg-hover)":"transparent",transition:"background 0.1s"},children:[(0,d.jsxs)("button",{type:"button",role:"option","aria-selected":t,onClick:n,style:{display:"flex",alignItems:"center",gap:8,width:"100%",minWidth:0,padding:i?"7px 36px 7px 12px":"7px 12px",border:"none",background:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:t?600:400,textAlign:"left",whiteSpace:"nowrap"},children:[t?(0,d.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,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),o]}),r?.isDefault&&(0,d.jsx)("span",{role:"img","aria-label":r.defaultLabel,title:r.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,d.jsx)(au,{filled:!0,size:10})}),r&&m&&(0,d.jsx)("button",{type:"button",title:r.saveLabel,"aria-label":r.saveLabel,tabIndex:f?0:-1,onClick:e=>{e.stopPropagation(),r.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:+!!f,pointerEvents:f?"auto":"none",transition:"opacity 0.1s, background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:(0,d.jsx)(au,{filled:!1,size:12})})]})}function ah(e){var t;let n,r,i,s,o,l,a,c,p,h,m,{options:f,value:g,onChange:x,onReselect:v,onClear:b,emptyLabel:y,selectedLabel:w,disabled:j=!1,busy:k=!1,isAutoSelection:S=!1,ariaLabel:C,variant:N="toolbar",placement:E="up",defaultValue:$,onSetDefault:M,allOptions:I,onShowAll:T}=e,{t:R}=(0,tw.s)(),L=tT(),A=(0,u.useRef)(null),P=(0,u.useRef)(null),[z,W]=(0,u.useState)(!1),[O,F]=(0,u.useState)(null),[D,B]=(0,u.useState)(""),[_,H]=(0,u.useState)(!1),U=j||k,q=_?I:f,K=(t=q??[],(n=D.trim().toLocaleLowerCase())?t.filter(e=>`${e.name} ${e.modelId} ${e.provider}/${e.modelId}`.toLocaleLowerCase().includes(n)):t),V=!!T||f.length>8,Z=(e,t)=>e?.find(e=>e.modelId===t.modelId&&e.provider===t.provider),J=()=>{_||T?.(),H(!_)},Y=[];for(let e of K){let t=Y.find(t=>t.provider===e.provider);t?t.options.push(e):Y.push({provider:e.provider,options:[e]})}let G=w??(g?(Z(f,g)??Z(I,g))?.name??g.modelId:y??(f.length>0?R("chat.selectModel"):R("chat.noModels")));(0,u.useEffect)(()=>{let e=e=>{A.current&&!A.current.contains(e.target)&&P.current&&!P.current.contains(e.target)&&(W(!1),B(""))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,u.useEffect)(()=>{if(!z)return;let e=()=>{let e=A.current?.querySelector("button")?.getBoundingClientRect();e?.height&&F({top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width})},t=window.visualViewport,n=new MutationObserver(e);return n.observe(document.documentElement,{attributes:!0,attributeFilter:["style","data-keyboard-open"]}),window.addEventListener("resize",e),t?.addEventListener("resize",e),t?.addEventListener("scroll",e),()=>{n.disconnect(),window.removeEventListener("resize",e),t?.removeEventListener("resize",e),t?.removeEventListener("scroll",e)}},[z]),(0,u.useEffect)(()=>{U&&(W(!1),B(""))},[U]);let X="field"===N?{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:U?"var(--bg-panel)":"var(--bg)",color:U?"var(--text-dim)":"var(--text)",cursor:U?"default":"pointer",fontSize:12,textAlign:"left"}:{display:"flex",alignItems:"center",justifyContent:L?"flex-start":void 0,gap:6,width:L?"100%":void 0,maxWidth:L?"100%":220,height:L?44:32,padding:L?"8px 10px":"8px 12px",overflow:"hidden",border:"none",borderRadius:9,background:z?"var(--bg-hover)":"none",color:"var(--text-muted)",cursor:U?"not-allowed":"pointer",fontSize:12,opacity:U?.5:1,transition:"background 0.12s, color 0.12s"};return(0,d.jsxs)("div",{ref:A,className:`model-selector is-${N}${U?" is-disabled":""}`,style:{position:"relative",width:"field"===N||L?"100%":void 0,minWidth:0,flex:"toolbar"===N&&L?"1 1 auto":void 0},onKeyDown:e=>{"Escape"===e.key&&z&&(e.preventDefault(),e.stopPropagation(),B(""),W(!1),A.current?.querySelector("button")?.focus({preventScroll:!0}))},children:[(0,d.jsxs)("button",{type:"button","aria-label":C,"aria-haspopup":"listbox","aria-expanded":z,"aria-busy":k||void 0,disabled:U,title:k?R("chat.switchingModel"):U?G:f.length>0||b?R("chat.changeModel"):R("chat.noAvailableModels"),style:X,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();F({top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width}),W(e=>(e?B(""):H(!1),!e))},onMouseEnter:e=>{U||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{if(U){e.currentTarget.style.background="field"===N?"var(--bg-panel)":"none",e.currentTarget.style.color="field"===N?"var(--text-dim)":"var(--text-muted)";return}e.currentTarget.style.background=z?"var(--bg-hover)":"field"===N?"var(--bg)":"none",e.currentTarget.style.color="field"===N?"var(--text)":"var(--text-muted)"},children:[k?(0,d.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,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}):(0,d.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,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,d.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,d.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,d.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:G}),"field"===N&&(0,d.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,d.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),z&&O&&(r=window.visualViewport?.offsetTop??0,i=window.visualViewport?.height??window.innerHeight,s=window.visualViewport?.width??window.innerWidth,l=(o=Math.min(O.top-6,r+i-8))-r-8,a=r+i-O.bottom-6-8,p=Math.max(120,Math.min((c="up"===E||l>a)?l:a,.6*i)),h=c?{top:o,transform:"translateY(-100%)"}:{top:O.bottom+6},m=L?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:O.left,width:"max-content",minWidth:O.width,maxWidth:Math.max(O.width,s-O.left-8)},(0,d.jsxs)("div",{ref:P,role:"listbox","aria-label":C,style:{position:"fixed",...h,...m,zIndex:500,display:"flex",flexDirection:"column",maxHeight:p,overflow:"hidden",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:c?"0 -4px 16px rgba(0,0,0,0.10)":"0 4px 16px rgba(0,0,0,0.10)"},children:[T&&(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"6px 8px 0",fontSize:11},children:[[!1,!0].map(e=>(0,d.jsx)("button",{type:"button","aria-pressed":_===e,onClick:()=>{_!==e&&J()},style:{padding:"2px 7px",border:"1px solid",borderColor:_===e?"var(--border)":"transparent",borderRadius:4,background:_===e?"var(--bg-hover)":"none",color:_===e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11},children:R(e?"chat.modelScopeAll":"chat.modelScopeScoped")},String(e))),!L&&(0,d.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10},children:"Tab"})]}),V&&(0,d.jsx)("div",{style:{flexShrink:0,padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:(0,d.jsx)("input",{value:D,onChange:e=>B(e.target.value),onKeyDown:e=>{T&&"Tab"===e.key&&(e.preventDefault(),J())},placeholder:R("chat.filterModels"),"aria-label":R("chat.filterModels"),autoFocus:!L,autoComplete:"off",spellCheck:!1,style:{boxSizing:"border-box",width:"100%",minWidth:220*!L,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,d.jsxs)("div",{style:{minHeight:0,overflowY:"auto"},children:[b&&!D.trim()&&(0,d.jsx)(ap,{active:!g,gutter:!!M,onSelect:()=>{W(!1),B(""),b()},children:(0,d.jsx)(am,{label:y??R("i18n.default")})}),0===Y.length?(0,d.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:q?D.trim()?R("chat.noMatchingModels"):R("chat.noAvailableModels"):R("agents.modelsLoading")}):Y.map((e,t)=>(0,d.jsxs)("div",{children:[Y.length>1&&(0,d.jsx)("div",{style:{padding:"6px 12px 4px",borderTop:t>0||b?"1px solid var(--border)":"none",color:"var(--text-dim)",fontSize:10,fontWeight:600,letterSpacing:0,textTransform:"uppercase"},children:e.provider}),e.options.map(e=>(0,d.jsx)(ap,{active:e.modelId===g?.modelId&&e.provider===g?.provider,onSelect:()=>{let t;return t=e.modelId===g?.modelId&&e.provider===g?.provider,void(W(!1),B(""),!t||S?x(e.provider,e.modelId):v?.(e.provider,e.modelId))},star:M&&(!_||Z(f,e))?{isDefault:e.modelId===$?.modelId&&e.provider===$?.provider,saveLabel:R("chat.saveDefaultModel"),defaultLabel:R("chat.defaultModel"),onSave:()=>{W(!1),B(""),M?.(e.provider,e.modelId)}}:void 0,children:(0,d.jsx)(am,{label:e.name})},`${e.provider}:${e.modelId}`))]},e.provider))]})]}))]})}function am(e){let{label:t}=e;return(0,d.jsx)("span",{title:t,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:t})}let af=["off","minimal","low","medium","high","xhigh","max"];function ag(e){let{options:t,allOptions:n,onShowAll:r,model:i,isAutoModelSelection:s,onModelChange:o,defaultModel:l,onSetDefaultModel:a,isStreaming:c,modelSwitching:p,thinkingLevel:h,isAutoThinkingSelection:f,availableThinkingLevels:g,thinkingLevelMap:x,onThinkingLevelChange:v,savedDefaultThinkingLevel:b,onSetDefaultThinkingLevel:y}=e,{t:w}=(0,tw.s)(),[j,k]=(0,u.useState)(!1),[S,C]=(0,u.useState)(null),N=(0,u.useRef)(null),E=(0,u.useRef)(null),$=(0,u.useRef)(null),M=(0,u.useRef)(null),I=(0,u.useRef)(!!p),T=(0,u.useId)(),R=af.filter(e=>"off"!==e&&(!g||g.includes(e))&&x?.[e]!==null),L=h&&"auto"!==h?h:null,A=f||"auto"===h||!h,P=e=>{let t="auto"!==e?x?.[e]:null;return null!=t&&t!==e?t:w(`chat.reasoningShort.${e}`)},z=P(L??"auto"),W=i?(t.find(e=>e.provider===i.provider&&e.modelId===i.modelId)??n?.find(e=>e.provider===i.provider&&e.modelId===i.modelId))?.name??i.modelId:t.length?w("chat.selectModel"):w("chat.noModels"),O=L?R.indexOf(L):-1,F=Math.max(0,O),D=!!v&&!p,B=!g||g.includes("off"),_=!!(p||c&&!v),H=(0,u.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];k(!1),e&&N.current?.focus({preventScroll:!0})},[]);(0,u.useEffect)(()=>{let e=I.current;I.current=!!p,j&&e&&!p&&document.activeElement===document.body&&$.current?.querySelector("button")?.focus({preventScroll:!0})},[j,p]),(0,u.useEffect)(()=>{if(!j)return;let e=e=>{N.current?.contains(e.target)||E.current?.contains(e.target)||H()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[j,H]),(0,u.useLayoutEffect)(()=>{if(!j)return;let e=()=>{let e=N.current,t=E.current;if(!e||!t)return;let n=window.visualViewport,r=n?.offsetLeft??0,i=n?.offsetTop??0,s=n?.width??window.innerWidth,o=n?.height??window.innerHeight,l=e.getBoundingClientRect(),a=Math.min(332,s-16),c=Math.min(t.getBoundingClientRect().height,o-16),d=l.top-i-8,u=i+o-l.bottom-8,p=d>=c||d>=u?l.top-c-8:l.bottom+8,h={left:Math.max(r+8,Math.min(l.left,r+s-a-8)),top:Math.max(i+8,Math.min(p,i+o-c-8)),width:a,maxHeight:Math.max(0,o-16)};C(e=>JSON.stringify(e)===JSON.stringify(h)?e:h)};e();let t=new ResizeObserver(e);E.current&&t.observe(E.current);let n=new MutationObserver(e);n.observe(document.documentElement,{attributes:!0,attributeFilter:["style","data-keyboard-open"]}),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),window.visualViewport?.addEventListener("resize",e),window.visualViewport?.addEventListener("scroll",e);let r=requestAnimationFrame(()=>{(M.current??E.current?.querySelector("button:not(:disabled)")??E.current)?.focus({preventScroll:!0})});return()=>{cancelAnimationFrame(r),t.disconnect(),n.disconnect(),window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0),window.visualViewport?.removeEventListener("resize",e),window.visualViewport?.removeEventListener("scroll",e)}},[j]);let U=e=>{D&&("auto"===e?!A:A||e!==L)&&v?.(e)},q=()=>$.current?.querySelector("button")?.focus({preventScroll:!0}),K=L===b;return(0,d.jsxs)("div",{className:"model-reasoning-root",children:[(0,d.jsxs)("button",{ref:N,type:"button",className:"model-reasoning-trigger composer-model-trigger","aria-label":w("chat.modelReasoning"),"aria-haspopup":"dialog","aria-expanded":j,"aria-controls":j?T:void 0,"aria-busy":p||void 0,disabled:_,title:p?"Switching model":t.length||i?`${W}${v?` \xb7 ${z}`:""}`:"No available models",onClick:()=>{C(null),k(e=>!e)},children:[p&&(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true",children:(0,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}),(0,d.jsx)("span",{className:"model-reasoning-name",children:W}),v&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,d.jsx)("span",{className:"model-reasoning-level",children:z})]}),(0,d.jsx)("span",{className:"chat-composer-caret","aria-hidden":"true"})]}),j&&(0,m.createPortal)((0,d.jsxs)("div",{ref:E,id:T,role:"dialog","aria-label":w("chat.modelReasoning"),tabIndex:-1,className:"model-reasoning-card composer-model-card",style:{...S,visibility:S?"visible":"hidden"},onKeyDown:e=>{if("Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),H(!0)),"Tab"===e.key){let t=[...e.currentTarget.querySelectorAll('button:not(:disabled), input:not(:disabled), [tabindex="0"]')].filter(e=>e.getClientRects().length>0),n=t[0],r=t.at(-1);e.shiftKey&&(document.activeElement===n||document.activeElement===E.current)?(e.preventDefault(),r?.focus()):e.shiftKey||document.activeElement!==r||(e.preventDefault(),n?.focus())}},children:[(0,d.jsxs)("div",{className:"model-reasoning-heading",children:[(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m13 2-9 12h7l-1 8 10-13h-7l1-7Z"})}),(0,d.jsx)("strong",{children:v?z:w("chat.selectModel")}),v&&(0,d.jsx)("button",{type:"button",className:"model-reasoning-reset","aria-label":w("chat.resetReasoning"),title:w("chat.resetReasoning"),disabled:!D||A,onClick:()=>U("auto"),children:(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M3 10a9 9 0 1 1 2.5 8M3 4v6h6"})})})]}),o&&(0,d.jsx)("div",{ref:$,className:"model-reasoning-model",children:(0,d.jsx)(ah,{options:t,allOptions:n,onShowAll:r,value:i,variant:"field",placement:"auto",ariaLabel:w("chat.selectModel"),isAutoSelection:s,disabled:c,busy:p,onChange:(e,t)=>{o(e,t),q()},onReselect:(e,t)=>{o(e,t),q()},defaultValue:l,onSetDefault:a?(e,t)=>{a(e,t),q()}:void 0})}),v&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"model-reasoning-modes",children:[(0,d.jsx)("button",{type:"button","aria-pressed":A,disabled:!D,onClick:()=>U("auto"),children:w("chat.reasoningShort.auto")}),B&&(0,d.jsx)("button",{type:"button","aria-pressed":!A&&"off"===L,disabled:!D,onClick:()=>U("off"),children:w("chat.reasoningShort.off")})]}),R.length>1?(0,d.jsxs)("div",{className:"model-reasoning-sliderGroup","data-inactive":"off"===L,children:[(0,d.jsxs)("div",{className:"model-reasoning-track",style:{"--reasoning-progress":`${O<0?0:O/(R.length-1)*100}%`},children:[(0,d.jsx)("div",{className:"model-reasoning-dots","aria-hidden":"true",children:R.map(e=>(0,d.jsx)("span",{},e))}),(0,d.jsx)("input",{ref:M,type:"range",min:0,max:R.length-1,step:1,value:F,disabled:!D,"aria-label":w("chat.reasoningMenuTitle"),"aria-valuetext":O<0?z:`${P(R[F])} (${R[F]})`,onClick:e=>U(R[Number(e.currentTarget.value)]),onKeyDown:e=>{(A||O<0)&&["Home","End"].includes(e.key)?(e.preventDefault(),U("Home"===e.key?R[0]:R[R.length-1])):O<0&&e.key.startsWith("Arrow")&&(e.preventDefault(),U(R[0]))},onChange:e=>U(R[Number(e.target.value)])})]}),(0,d.jsxs)("div",{className:"model-reasoning-scale","aria-hidden":"true",children:[(0,d.jsx)("span",{children:P(R[0])}),(0,d.jsx)("span",{children:P(R[R.length-1])})]})]}):1===R.length?(0,d.jsx)("div",{className:"model-reasoning-single",children:(0,d.jsx)("button",{type:"button","aria-pressed":!A&&L===R[0],disabled:!D,onClick:()=>U(R[0]),children:P(R[0])})}):(0,d.jsx)("p",{className:"model-reasoning-hint",children:w("chat.reasoningUnavailable")}),L&&x?.[L]!=null&&x[L]!==L&&(0,d.jsxs)("p",{className:"model-reasoning-hint",children:[x[L]," \xb7 ",L]}),c&&(0,d.jsx)("p",{className:"model-reasoning-hint",children:w("chat.reasoningNextRequest")}),y&&L&&("off"===L?B:R.includes(L))&&(0,d.jsxs)("button",{type:"button",className:"model-reasoning-saveDefault",disabled:!D||K,onClick:()=>y(L),children:[(0,d.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:K?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.7","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m12 3 3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1Z"})}),w(K?"chat.defaultThinking":"chat.saveDefaultThinking")]})]})]}),document.body)]})}let ax=["configured","chat-only","read-only","default","full"],av={configured:"configured","chat-only":"none","read-only":"read-only",default:"default",full:"full"},ab={configured:"chat.toolsConfigured","chat-only":"chat.chatOnly","read-only":"chat.toolsReadOnly",default:"chat.toolsStandard",full:"chat.toolsFull"},ay=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function aw(e,t,n){return t<=0?0:((e+n)%t+t)%t}function aj(e,t,n,r){e.setRangeText(r,t,n,"end"),e.dispatchEvent(new Event("input",{bubbles:!0}))}function ak(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:r.length,s=e.selectionStart,o=e.selectionEnd;if(e.focus(),s===o&&t<=s&&n>=o){let i=e.value.length-(n-t)+r.length;for(let n=s-t;n>0&&e.selectionStart>t&&document.execCommand("delete");n--);if(document.execCommand("insertText",!1,r))for(let t=n-o;t>0&&e.value.length>i&&document.execCommand("forwardDelete");t--);else aj(e,t,e.selectionStart+(n-o),r)}else e.setSelectionRange(t,n),document.execCommand("insertText",!1,r)||aj(e,t,n,r);i!==r.length&&e.setSelectionRange(t+i,t+i)}function aS(e){e.style.height="auto",e.style.height=`${e.value?Math.min(e.scrollHeight,200):e.clientHeight}px`,e.style.overflowY=e.value&&e.scrollHeight>e.clientHeight?"auto":"hidden"}function aC(e,t){let n=null,r=()=>{n=null,t(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8;return Math.max(0,Math.floor(e-t-n))}(e.getBoundingClientRect().bottom,function(e){let t=window.visualViewport?.offsetTop??0;for(let n=e.parentElement;n;n=n.parentElement){let e=window.getComputedStyle(n).overflowY;("auto"===e||"scroll"===e||"hidden"===e||"clip"===e)&&(t=Math.max(t,n.getBoundingClientRect().top+n.clientTop))}return t}(e)))},i=()=>{null!==n&&cancelAnimationFrame(n),n=requestAnimationFrame(r)};r();let s=e.parentElement,o=s?.parentElement,l="u">typeof ResizeObserver&&s?new ResizeObserver(i):null;s&&l?.observe(s),o&&l?.observe(o);let a=window.visualViewport;return a?.addEventListener("resize",i),a?.addEventListener("scroll",i),window.addEventListener("resize",i),window.addEventListener("scroll",i,!0),()=>{l?.disconnect(),a?.removeEventListener("resize",i),a?.removeEventListener("scroll",i),window.removeEventListener("resize",i),window.removeEventListener("scroll",i,!0),null!==n&&cancelAnimationFrame(n)}}function aN(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let aE=[{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"},{name:"side",description:"chat.commandSide",source:"builtin",availableWhileStreaming:!0}];function a$(e){return function(e){let t=e.trim().match(/^\/([^\s]+)(?:\s|$)/);if(t)return aE.find(e=>e.name===t[1])}(e)?.availableWhileStreaming===!0}let aM=["builtin","extension","prompt","skill"],aI={builtin:"chat.builtIn",extension:"chat.extensions",prompt:"chat.prompts",skill:"chat.skills"},aT={builtin:0,extension:1,prompt:2,skill:3};function aR(e,t){return"builtin"===e.source?t(e.description):e.description??""}function aL(e,t){return"skill"===e.source&&!!e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}function aA(e){return{data:e.data,mimeType:e.mimeType}}function aP(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function az(e){return(e??[]).filter(lp).slice(0,10).map(aP)}function aW(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function aO(e){let{kind:t,text:n}=e;return(0,d.jsxs)("div",{title:n,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,d.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===t?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===t?"var(--accent)":"var(--text-dim)"},children:t}),(0,d.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n})]})}function aF(e){let{tone:t,title:n,body:r,onClose:i}=e,{t:s}=(0,tw.s)(),o="error"===t?"239,68,68":"234,179,8";return(0,d.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(${o},0.3)`,borderRadius:6,background:`rgba(${o},0.07)`,color:`rgb(${o})`,fontSize:11,lineHeight:1.45},children:[(0,d.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,d.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,d.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,d.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,d.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("div",{style:{fontWeight:600},children:n}),(0,d.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:r})]}),i&&(0,d.jsx)("button",{type:"button",onClick:i,"aria-label":s("sidebar.dismiss"),style:{flexShrink:0,background:"none",border:"none",padding:"0 2px",cursor:"pointer",color:"inherit",opacity:.7,fontSize:13,lineHeight:1},children:"\xd7"})]})}function aD(e){let{cwd:t}=e,{t:n}=(0,tw.s)();return t?(0,d.jsx)(aF,{tone:"error",title:n("chat.cwdMissingTitle"),body:n("chat.cwdMissingBody",{cwd:t})}):null}function aB(e){let{error:t}=e,{t:n}=(0,tw.s)();return t?(0,d.jsx)(aF,{tone:"error",title:n("chat.modelError"),body:t}):null}function a_(e){let{warnings:t}=e,{t:n}=(0,tw.s)();return t&&0!==t.length?(0,d.jsx)(aF,{tone:"warning",title:n(t.length>1?"chat.modelScopeWarnings":"chat.modelScopeWarning"),body:t.join("\n")}):null}let aH=(0,u.memo)((0,u.forwardRef)(function(e,t){let n,r,i,s,{onSend:o,onAbort:l,onSteer:a,onSideChat:c,onFollowUp:p,isStreaming:h,model:m,isAutoModelSelection:f,modelNames:g,modelList:x,modelError:v,missingCwd:b,modelScopeWarnings:y,allModelList:w,onLoadAllModels:j,onModelChange:k,modelSwitching:S,defaultModel:C,onSetDefaultModel:N,onCompact:E,onAbortCompaction:$,isCompacting:M,compactError:I,onDismissCompactError:T,compactResult:R,toolPreset:L,onToolPresetChange:A,thinkingLevel:P,isAutoThinkingSelection:z=!1,onThinkingLevelChange:W,availableThinkingLevels:O,thinkingLevelMap:F,savedDefaultThinkingLevel:D,onSetDefaultThinkingLevel:B,retryInfo:_,queuedMessages:H,inputHistory:U=[],onRecallQueue:q,slashCommands:K,slashCommandsLoading:V,onLoadSlashCommands:Z,onBuiltinCommand:J,soundEnabled:Y,onSoundToggle:G,onAudioUnlock:X,onPromptWithStreamingBehavior:Q,draftKey:ee,cwd:et,onAttachFiles:en,sessionStatsControl:er,compact:ei=!1}=e,{t:es}=(0,tw.s)(),{fontSize:eo}=lQ(),{ui:el,uiWeight:ea}=ad(),ec=tT(),ed=ec?44:32,eu=lO(),[ep,eh]=(0,u.useState)(()=>ee?lx(ee)?.value??"":""),[em,ef]=(0,u.useState)(!1),[eg,ex]=(0,u.useState)(!1),[ev,eb]=(0,u.useState)(()=>ee?az(lx(ee)?.images):[]),ey=ep.trimStart(),ew=0===ev.length&&ey.startsWith("!"),ej=ew&&ey.startsWith("!!"),[ek,eS]=(0,u.useState)(!1),[eC,eN]=(0,u.useState)(0),[eE,e$]=(0,u.useState)(null),[eM,eI]=(0,u.useState)(null),[eT,eR]=(0,u.useState)(!1),[eL,eA]=(0,u.useState)(null),[eP,ez]=(0,u.useState)(0),[eW,eO]=(0,u.useState)(!1),[eF,eD]=(0,u.useState)(!1),[eB,e_]=(0,u.useState)(0),[eH,eU]=(0,u.useState)(!1),eq=(0,u.useRef)(!1),[eK,eV]=(0,u.useState)(null),[eZ,eJ]=(0,u.useState)(!1),[eY,eG]=(0,u.useState)(null),[eX,eQ]=(0,u.useState)(null),e0=et&&eX?.cwd===et?eX.values:{},e1=(0,u.useRef)(null),e2=(0,u.useRef)(null),e4=(0,u.useRef)(null),e8=(0,u.useRef)(null),e3=(0,u.useRef)(null),e6=(0,u.useRef)(!1),e5=(0,u.useRef)(0),e9=(0,u.useRef)(!1),e7=(0,u.useRef)(null),te=(0,u.useRef)([]),tt=(0,u.useRef)(null),tn=(0,u.useRef)([]),tr=(0,u.useRef)([]),ti=(0,u.useRef)(null),ts=(0,u.useRef)(null),to=(0,u.useRef)(ee),tl=(0,u.useRef)(ep),ta=(0,u.useRef)(ev),tc=(0,u.useRef)(0);tl.current=ep,ta.current=ev,(0,u.useImperativeHandle)(t,()=>({insertIfEmpty(e){let t=e1.current;(t?t.value:ep).trim()||(tl.current=e,eh(e),eI(null),requestAnimationFrame(()=>{t&&(t.focus(),aS(t))}))},replaceMessage(e){var t,n,r;let i=e1.current;if(t=i?i.value:ep,n=ta.current.length,r=tc.current,t.trim()||0!==n||0!==r)return;let s="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),o=az("string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,n=e.source?.type==="base64"?e.source.media_type:e.mimeType;if("string"!=typeof t||"string"!=typeof n)return[];let r={data:t,mimeType:n};return lp(r)?[r]:[]}));tl.current=s,ta.current=o,eh(s),eI(null),eD(!1),eb(e=>(e.forEach(aW),o)),requestAnimationFrame(()=>{i&&(i.focus(),aS(i))})},prependText(e){if(!e.trim())return;let t=e1.current,n=[e,t?t.value:ep].filter(e=>e.trim()).join("\n\n");tl.current=n,eh(n),eI(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n.length,n.length),aS(t))})},rekeyDraft(e,t){if(e===t)return;if(to.current!==e)return void lk(e,t);let n={value:tl.current,images:ta.current.map(aA)},r=lk(e,t,n)??{value:"",images:[]},i=r.value===n.value&&r.images.length===n.images.length&&r.images.every((e,t)=>e.data===n.images[t]?.data&&e.mimeType===n.images[t]?.mimeType);if(to.current=t,i)return;let s=az(r.images);tl.current=r.value,ta.current=s,eh(r.value),eb(e=>(e.forEach(aW),s)),eI(null),eD(!1)},restoreSubmission(e,t,n){if(!e.trim()&&!t?.length)return;let r=to.current,i=n??r,s=i===r,o=!s&&i?lx(i):null,l=lw(e,t,s?tl.current:o?.value??"",s?ta.current.map(aA):o?.images??[]);if(i&&lv(i,l),!s)return;let a=t?.length?[...az(t).slice(0,Math.max(0,10-ta.current.length)),...ta.current].slice(0,10):ta.current;tl.current=l.value,ta.current=a,eh(t=>{let n=ly(e,t);return tl.current=n,n}),eI(null),eD(!1),t?.length&&eb(e=>{let n=Math.max(0,10-e.length),r=az(t).slice(0,n),i=r.length>0?[...r,...e]:e;return ta.current=i,i}),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length),aS(e))})},focus(){let e=e1.current;e&&(e.focus({preventScroll:!0}),e.setSelectionRange(e.value.length,e.value.length))},insertText(e){let t=e1.current;if(!t)return void eh(t=>t+(t?" ":"")+e);let n=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length,i=t.value.slice(0,n);ak(t,n,r,(i.length>0&&!i.endsWith(" ")?" ":"")+e),eI(null)},insertQuote(e){let t=e1.current;if(!t)return void eh(t=>t+ik(t)+e);let n=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length;ak(t,n,r,ik(t.value.slice(0,n))+e),eI(null)},addImages(e){td(e)}}));let td=(0,u.useCallback)(async e=>{if(ei)return;let t=Math.max(0,10-ta.current.length-tc.current),n=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(n.length){tc.current+=n.length;try{let e=await Promise.all(n.map(async e=>{var t;return{...await (t=e.type,new Promise((n,r)=>{let i=new FileReader;i.onload=()=>{let e="string"==typeof i.result?i.result.split(",")[1]:void 0;e?n({data:e,mimeType:t}):r(Error("Failed to read image"))},i.onerror=r,i.readAsDataURL(e)})),previewUrl:URL.createObjectURL(e)}}));eb(t=>{let n=e.slice(0,Math.max(0,10-t.length));e.slice(n.length).forEach(aW);let r=[...t,...n];return ta.current=r,r})}finally{tc.current-=n.length}}},[ei]),tu=(0,u.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",en?en(t):td(t)},[en,td]),tp=(0,u.useCallback)(e=>{eb(t=>{let n=[...t],[r]=n.splice(e,1);return r&&aW(r),ta.current=n,n})},[]),th=(0,u.useCallback)(()=>{ta.current=[],eb(e=>(e.forEach(aW),[]))},[]),tm=(0,u.useCallback)(()=>{tl.current="",eh(""),eI(null),eD(!1),ee&&lb(ee),to.current&&to.current!==ee&&lb(to.current),th(),e1.current&&(e1.current.style.height="auto")},[th,ee]);(0,u.useEffect)(()=>{ee&&to.current===ee&&lv(ee,{value:ep,images:ev.map(aA)})},[ev,ee,ep]),(0,u.useEffect)(()=>{let e=to.current;if(e===ee)return;e&&lv(e,{value:tl.current,images:ta.current.map(aA)});let t=ee?lx(ee):null;to.current=ee;let n=t?.value??"",r=az(t?.images);tl.current=n,ta.current=r,eh(n),eI(null),eD(!1),eb(e=>(e.forEach(aW),r))},[ee]);let tf=(0,u.useCallback)(()=>{let e=e1.current;e&&(e.style.height="auto",e.value?aS(e):e.style.overflowY="hidden")},[]);(0,u.useLayoutEffect)(tf,[ep,eo,el,ea,tf]),(0,u.useEffect)(()=>{let e=e1.current;if(!e)return;let t=-1,n=new ResizeObserver(e=>{let[n]=e;n.contentRect.width!==t&&(t=n.contentRect.width,tf())});return n.observe(e),()=>n.disconnect()},[tf]),(0,u.useEffect)(()=>{let e=e1.current;if(!e)return;let t=t=>{if("insertLineBreak"!==t.inputType||t.isComposing)return;let n=function(e,t,n){let r;if(t!==n)return null;let i=e.lastIndexOf("\n",t-1)+1,s=e.indexOf("\n",t),o=-1===s?e.length:s,l=e.slice(i,o),a=function(e){if(lE.test(e))return null;let t=lS.exec(e);if(t)return{indent:t[1],marker:t[2],number:null,delimiter:"",spacing:t[3],task:void 0!==t[4],length:t[0].length};let n=lC.exec(e)??lN.exec(e);return n?{indent:n[1],marker:"",number:n[2],delimiter:n[3],spacing:n[4],task:void 0!==n[5],length:n[0].length}:null}(l);return!a||t-i<a.length||function(e){let t=null;for(let n of e.split("\n")){let e=l$.exec(n)?.[1];e&&(null===t?t=e:e[0]===t[0]&&e.length>=t.length&&n.trim()===e&&(t=null))}return null!==t}(e.slice(0,i))?null:""===l.slice(a.length).trim()?{start:i,end:o,text:""}:{start:t,end:t,text:`
|
|
9
|
+
${r=null===a.number?a.marker:`${String(Number(a.number)+1).padStart(a.number.length,"0")}${a.delimiter}`,`${a.indent}${r}${a.spacing}${a.task?"[ ] ":""}`}`}}(e.value,e.selectionStart,e.selectionEnd);n&&(t.preventDefault(),e.setSelectionRange(n.start,n.end),document.execCommand(n.text?"insertText":"delete",!1,n.text))};return e.addEventListener("beforeinput",t),()=>e.removeEventListener("beforeinput",t)},[]),(0,u.useEffect)(()=>()=>{ta.current.forEach(aW)},[]);let tg=(0,u.useCallback)(async e=>{if(ev.length||!e.startsWith("/")||!J)return!1;if(eq.current)return!0;eq.current=!0,eU(!0);try{var t,n;let r=await J(e);if(!r.handled)return!1;return r.error||(t=tl.current,n=ta.current.length,0!==n||t.trim()!==e)||tm(),!0}finally{eq.current=!1,eU(!1)}},[ev.length,tm,J]),tx=(0,u.useCallback)(async()=>{var e;let t=ep.trim();(t||ev.length)&&(X?.(),(!h||a$(e=t)||lI(e))&&await tg(t)||h||(tm(),o(t,ev.length?ev:void 0)))},[ep,ev,h,tg,o,tm,X]),tv=!ei&&ep.startsWith("/")&&!/\s/.test(ep.slice(1))?ep.slice(1).toLowerCase():null,tb=(()=>{var e;let t,n;return null===tv?[]:(e=[...h?aE.filter(e=>e.availableWhileStreaming):aE,...K??[]],((n=(t=e.map(e=>{let t,n;return{command:e,rank:(t=e.name.toLowerCase(),(n="skill"===e.source&&t.startsWith("skill:")?t.slice(6):t)===tv||t===tv?0:n.startsWith(tv)||t.startsWith(tv)?1:t.includes(tv)?2:3)}})).filter(e=>{let{rank:t}=e;return t<3})).length>0?n:t.filter(e=>{let{command:t}=e;return aR(t,es).toLowerCase().includes(tv)})).sort((e,t)=>e.rank-t.rank||aT[e.command.source]-aT[t.command.source]||ay.compare(e.command.name,t.command.name)).map(e=>{let{command:t}=e;return t}))})(),{commands:ty,groups:tj}=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=0,i=aM.map(i=>{let s=e.filter(e=>e.source===i),o="skill"!==i||n?s:[...s.filter(e=>!aL(e,t)),...s.filter(e=>aL(e,t))];return{source:i,items:o.map(e=>({command:e,index:r++}))}}).filter(e=>e.items.length>0);return{commands:i.flatMap(e=>e.items.map(e=>{let{command:t}=e;return t})),groups:i}}(tb,e0,tv??""),tk=1===tb.length?es(tv?"chat.match":"chat.command"):es(tv?"chat.matches":"chat.commands",{count:tb.length}),tS=!!ep.trim()||ev.length>0,tC=ei||ec&&h,tN=ev.length>0&&!function(e,t){if(!e)return!0;let n=t?.find(t=>t.provider===e.provider&&t.id===e.modelId);return!n||!n.input||n.input.includes("image")}(m,x)&&!eW;(0,u.useEffect)(()=>{0===ev.length&&eO(!1)},[ev.length]);let tE=(0,u.useCallback)((e,t)=>{if(!et)return void eI(null);let n=t??e.length;eI(nI(e.slice(0,n)))},[et]),t$=eM?.query??null,tM=u.useMemo(()=>null!==t$&&eK&&eK.cwd===et?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20,r=t.toLowerCase();if(!r)return e.slice(0,n);let i=[];for(let t of e){let e=function(e,t){let n=e.path.toLowerCase(),r=0;if(t.includes("/"))n===t?r=100:n.startsWith(t)?r=80:n.includes(t)?r=50:nR(t,n)&&(r=10);else{let e=n.lastIndexOf("/"),i=-1===e?n:n.slice(e+1);i===t?r=100:i.startsWith(t)?r=80:i.includes(t)?r=50:n.includes(t)?r=30:nR(t,n)&&(r=10)}return e.isDir&&r>0&&(r+=10),r}(t,r);e>0&&i.push({entry:t,score:e})}return i.sort((e,t)=>t.score-e.score||nT(e.entry.path)-nT(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),i.slice(0,n).map(e=>e.entry)}(eK.entries,t$):[],[t$,eK,et]),tI=!!(t$&&eK?.truncated&&eK.cwd===et);(0,u.useEffect)(()=>{if(!tI||!et||!t$)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(et)}&q=${encodeURIComponent(t$)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>eG({cwd:et,query:t$,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tI,t$,et]);let tR=tI&&null!==eY&&eY.cwd===et&&eY.query===t$,tL=tR?eY.matches:tM,tA=null===eM?null:`${eM.start}:${+!!eM.quoted}:${eM.query}`;(0,u.useEffect)(()=>{if(null===tA){eR(!1),ez(0);return}eR(!0),ez(0)},[tA]);let tP=null!==eM;(0,u.useEffect)(()=>{if(!tP||!et)return;let e=ti.current;e&&e.cwd===et&&Date.now()-e.fetchedAt<1e4||ts.current===et||(ts.current=et,eJ(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(et)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{eV({cwd:et,entries:function(e){let t=new Set;for(let n of e){let e=n.indexOf("/");for(;-1!==e;)t.add(n.slice(0,e)),e=n.indexOf("/",e+1)}let n=[];for(let e of t)n.push({path:e,isDir:!0});for(let t of e)t&&n.push({path:t,isDir:!1});return n.sort((e,t)=>nT(e.path)-nT(t.path)||e.path.localeCompare(t.path)),n}(e.files??[]),truncated:!!e.truncated}),ti.current={cwd:et,fetchedAt:Date.now()}}).catch(()=>{ti.current=null}).finally(()=>{ts.current=null,eJ(!1)}))},[tP,et]);let tz=(0,u.useCallback)(e=>{if(!eM)return;let t=e1.current;if(!t)return;let n=t.selectionStart??t.value.length,r=n+(eM.quoted&&'"'===t.value[n]?1:0),i=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t?`${e}/`:e,i=n||r.includes(" ");if(t){let e=i?`@"${r}"`:`@${r}`;return{text:e,cursorOffset:i?e.length-1:e.length}}let s=i?`@"${r}" `:`@${r} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,eM.quoted),s=eM.start+i.cursorOffset;ak(t,eM.start,r,i.text,i.cursorOffset),eI(nI(t.value.slice(0,s)))},[eM]);(0,u.useEffect)(()=>{eP>=tL.length&&ez(Math.max(0,tL.length-1))},[tL.length,eP]),(0,u.useEffect)(()=>{tn.current.length=tL.length},[tL.length]),(0,u.useEffect)(()=>{eT&&tn.current[eP]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eP,eT]),(0,u.useEffect)(()=>{eB>=U.length&&e_(Math.max(0,U.length-1))},[U.length,eB]),(0,u.useEffect)(()=>{tr.current.length=U.length},[U.length]),(0,u.useEffect)(()=>{eF&&tr.current[eB]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eB,eF]);let tW=(0,u.useCallback)(e=>{eh(e),eD(!1),e_(0),eI(null),requestAnimationFrame(()=>{let t=e1.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),aS(t))})},[]),tO=(0,u.useCallback)(e=>{let t=`/${e.name} `;eh(t),eS(!1),eN(0),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),aS(e))})},[]),tF=(0,u.useCallback)(()=>{let e=ep.trim();e&&!ev.length&&c&&(tm(),c(e))},[ep,ev,c,tm]),tD=(0,u.useCallback)(e=>{let t=ep.trim();if(!t&&!ev.length)return;X?.();let n=ev.length?ev:void 0,r=()=>{if(t.startsWith("/")&&Q){tm(),Q(t,"steer"===e?"steer":"followUp",n);return}tm(),"steer"===e&&a?a(t,n):"followup"===e&&p&&p(t,n)};!ev.length&&J&&a$(t)?tg(t):!ev.length&&J&&lI(t)?tg(t).then(e=>{e||r()},()=>r()):r()},[ep,ev,J,Q,a,p,tm,X,tg]),tB=(0,u.useCallback)(e=>{let t=ty.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,eC-1);if("right"===e)return Math.min(t,eC+1);let n=te.current[eC];if(!n)return"down"===e?Math.min(t,eC+1):Math.max(0,eC-1);let r=n.getBoundingClientRect(),i=r.left+r.width/2,s=r.top+r.height/2,o=-1,l=1/0;for(let n=0;n<=t;n+=1){if(n===eC)continue;let t=te.current[n];if(!t)continue;let r=t.getBoundingClientRect(),a=r.top+r.height/2-s;if("down"===e?a<=4:a>=-4)continue;let c=1e3*Math.abs(a)+Math.abs(r.left+r.width/2-i);c<l&&(o=n,l=c)}return o>=0?o:"down"===e?Math.min(t,eC+1):Math.max(0,eC-1)},[ty.length,eC]),t_=(0,u.useCallback)(e=>{let t=e.nativeEvent,n="Enter"===e.key&&!e.shiftKey,r=ec||"ctrlEnter"===eu?n&&(e.ctrlKey||e.metaKey):n,i=ec?r:n,s=Date.now()-e5.current<100,o=e6.current||t.isComposing||229===t.keyCode;if(i&&(o||s)){s&&e.preventDefault();return}if(eF&&!o){if("ArrowDown"===e.key){e.preventDefault(),e_(e=>Math.min(Math.max(0,U.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),e_(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eD(!1);return}if(("Tab"===e.key||i)&&U[eB]){e.preventDefault(),tW(U[eB]);return}}if(ek&&null!==tv){if("ArrowDown"===e.key){e.preventDefault(),eN(tB("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eN(tB("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eN(tB("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eN(tB("left"));return}if("Escape"===e.key){e.preventDefault(),eS(!1);return}let t=ty[eC];if("Tab"===e.key&&t){e.preventDefault(),tO(t);return}if(i&&t){e.preventDefault(),r&&function(e,t,n){if("builtin"===t.source)return"builtin"===t.source&&e.trim()===`/${t.name}`&&(!n||!0===t.availableWhileStreaming);return lM(t)&&lI(e)}(ep,t,h)?(eS(!1),tx()):tO(t);return}}if(eT&&null!==eM&&!o){if("ArrowDown"===e.key){e.preventDefault(),ez(e=>aw(e,tL.length,1));return}if("ArrowUp"===e.key){e.preventDefault(),ez(e=>aw(e,tL.length,-1));return}if("Escape"===e.key){e.preventDefault(),eR(!1);return}if(("Tab"===e.key||i)&&tL[eP]){e.preventDefault(),tz(tL[eP]);return}}if("ArrowUp"===e.key&&!o&&!h&&U.length>0&&0===ep.trim().length){e.preventDefault(),eS(!1),eR(!1),e_(U.length-1),eD(!0);return}if("Escape"===e.key&&!o&&h&&l){e.preventDefault(),l();return}r&&(e.preventDefault(),h&&(a||p)?tD(e.altKey&&p||!a?"followup":"steer"):tx())},[ec,eu,h,a,p,l,ek,tv,ty,eC,tO,tD,tx,tB,eT,eM,tL,eP,tz,eF,U,eB,tW,ep]),tH=(0,u.useCallback)(()=>{let e=e1.current;e&&aS(e)},[]),tU=(0,u.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));if(!ei&&t.length){e.preventDefault(),td(t.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=e.clipboardData.getData("text/html"),r=e.clipboardData.getData("text/plain");if(!n||!r)return;let i=new DOMParser().parseFromString(n,"text/html"),s=function(e,t){let n="",r=0,i=!1;for(let{label:s,href:o,occurrence:l}of t){if(!s||!o)continue;let t=0;for(let n=0;n<=l&&!((t=e.indexOf(s,n?t+s.length:0))<0);n++);if(t<r)continue;let a=s.replace(/([\\[\]])/g,"\\$1"),c=o.replace(/([\\()])/g,"\\$1");n+=`${e.slice(r,t)}[${a}](${c})`,r=t+s.length,i=!0}return i?n+e.slice(r):null}(r,Array.from(i.querySelectorAll("a[href]"),e=>{let t=e.textContent??"",n=i.createRange();return n.setStart(i.body,0),n.setEndBefore(e),{label:t,href:e.getAttribute("href")?.trim()??"",occurrence:t?n.toString().split(t).length-1:0}}));if(null===s)return;let o=e.currentTarget,l=o.selectionStart,a=o.value.slice(0,l)+s+o.value.slice(o.selectionEnd);e.preventDefault(),tl.current=a,eh(a),eD(!1),tE(a,l+s.length),requestAnimationFrame(()=>{o.focus(),o.setSelectionRange(l+s.length,l+s.length)})},[ei,td,tE]);(0,u.useEffect)(()=>{if(null===tv){eS(!1),eN(0),e9.current=!1;return}eS(!0),eN(0),!e9.current&&Z&&(e9.current=!0,Promise.resolve(Z()).catch(()=>{e9.current=!1}))},[tv,Z]),(0,u.useEffect)(()=>{if(!ek||!et)return;let e=!1;return eQ({cwd:et,values:{}}),fetch(`/api/skills?cwd=${encodeURIComponent(et)}`).then(e=>{if(!e.ok)throw Error(`skills fetch failed: ${e.status}`);return e.json()}).then(t=>{if(e)return;let n={};for(let e of t.skills??[])n[e.name]=e.disableModelInvocation;eQ({cwd:et,values:n})}).catch(()=>{e||eQ({cwd:et,values:{}})}),()=>{e=!0}},[ek,et]),(0,u.useEffect)(()=>{eC>=ty.length&&eN(Math.max(0,ty.length-1))},[ty.length,eC]),(0,u.useEffect)(()=>{te.current.length=ty.length},[ty.length]),(0,u.useEffect)(()=>{ek&&te.current[eC]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eC,ek]),(0,u.useLayoutEffect)(()=>{if(!ek||null===tv)return void e$(null);let e=e7.current;if(e)return aC(e,e=>{e$(t=>t===e?t:e)})},[ek,tv]),(0,u.useLayoutEffect)(()=>{if(!eT||null===eM)return void eA(null);let e=tt.current;if(e)return aC(e,e=>{eA(t=>t===e?t:e)})},[eT,eM]);let tq=x&&x.length>0?x.map(e=>({provider:e.provider,modelId:e.id,name:e.name})):Object.entries(g??{}).map(e=>{let[t,n]=e;return{provider:m?.provider??"unknown",modelId:t,name:n}}),tK=R?Math.max(0,R.tokensBefore-R.estimatedTokensAfter):0,tV=R?`${R.reason&&"manual"!==R.reason?`${R.reason[0].toUpperCase()}${R.reason.slice(1)} `:es("chat.compacted")} ${aN(R.tokensBefore)} -> ${aN(R.estimatedTokensAfter)} tokens (${es("chat.tokensSaved",{saved:aN(tK)})})`:null,tZ=Object.entries(av).find(e=>{let[,t]=e;return t===(L??"configured")})?.[0]??"configured",tJ=es(ab[tZ]);(0,u.useEffect)(()=>{let e=e=>{e2.current&&!e2.current.contains(e.target)&&ef(!1),e4.current&&!e4.current.contains(e.target)&&ex(!1),!e8.current||e8.current.contains(e.target)||e1.current?.contains(e.target)||eD(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,u.useEffect)(()=>{h&&ef(!1)},[h]);let tY=(0,u.useRef)(-1/0);(0,u.useLayoutEffect)(()=>{if(h)return()=>{tY.current=performance.now()}},[h]);let tG=e=>{var t,n;return t=e.detail,n=performance.now()-tY.current,t>0&&n<600};(0,u.useEffect)(()=>{ec||ex(!1)},[ec]);let tX=h?(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,alignSelf:"flex-end"},children:[c&&(0,d.jsx)("button",{type:"button",onClick:tF,disabled:!ep.trim()||ev.length>0,title:es("chat.sideChatHint"),"aria-label":es("chat.sideChat"),style:{width:38,display:"grid",placeItems:"center",padding:0,border:"1px solid var(--border)",borderRadius:8,background:"transparent",color:"var(--text-muted)",cursor:ep.trim()&&!ev.length?"pointer":"not-allowed"},children:(0,d.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,d.jsx)("path",{d:"M21 12a8 8 0 0 1-8 8H5.5a2 2 0 0 1-1.4-3.4A8 8 0 1 1 21 12z"}),(0,d.jsx)("path",{d:"M13 8.5v7M9.5 12h7"})]})}),a&&(0,d.jsxs)("button",{onClick:()=>tD("steer"),disabled:!tS,title:es("chat.steerHint"),style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:tS?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:tS?"rgba(180,130,0,1)":"var(--text-dim)",cursor:tS?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,d.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),es("chat.steer")]}),p&&(0,d.jsxs)("button",{onClick:()=>tD("followup"),disabled:!tS,title:`${es("chat.followUpHint")} (${ec?"Ctrl/Cmd+":""}Alt/Option+Enter)`,"aria-keyshortcuts":ec?"Control+Alt+Enter Meta+Alt+Enter":"Alt+Enter",style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:tS?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:tS?"rgba(99,102,241,1)":"var(--text-dim)",cursor:tS?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,d.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,d.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),es("chat.followUp")]})]}):(0,d.jsxs)("button",{className:ei?void 0:"chat-composer-send",onClick:tx,disabled:!ep.trim()&&!ev.length,title:es("chat.send"),"aria-label":es("chat.send"),style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",justifyContent:"center",gap:6,...ec?{width:36,height:36,padding:0}:{padding:"7px 14px"},background:ep.trim()||ev.length?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:ep.trim()||ev.length?"var(--accent-contrast)":"var(--text-dim)",cursor:ep.trim()||ev.length?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:ep.trim()||ev.length?"0 1px 3px color-mix(in srgb, var(--accent) 25%, transparent)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M7 12V2M3 6l4-4 4 4"})}),ei&&!ec&&es("chat.send")]});return(0,d.jsxs)("fieldset",{disabled:eH,"aria-busy":eH,className:ei?void 0:"chat-input-shell",style:{...ei?{flexShrink:0}:{display:"flex",flexDirection:"column",minHeight:0},minWidth:0,margin:0,border:0,background:"transparent",padding:ei?0:"0 16px 8px",paddingLeft:ei?0:ec?16:52,opacity:eH?.5:1,transition:"opacity 0.15s"},children:[!ei&&(0,d.jsx)("input",{ref:e3,type:"file",accept:en?void 0:"image/*",multiple:!0,style:{display:"none"},onChange:tu}),(0,d.jsxs)("div",{style:{...ei?void 0:{display:"flex",flexDirection:"column",minHeight:0,width:"100%"},maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(0,d.jsx)(aD,{cwd:b}),(0,d.jsx)(aB,{error:v}),(0,d.jsx)(a_,{warnings:y}),tN&&(n=x?.find(e=>e.provider===m?.provider&&e.id===m?.modelId),(0,d.jsx)(aF,{tone:"warning",title:es("chat.imageNotSupportedTitle"),body:es("chat.imageNotSupportedBody",{model:n?.name||m?.modelId||""}),onClose:()=>eO(!0)})),(H?.steering.length??0)+(H?.followUp.length??0)>0&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",minHeight:72,marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,d.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:es("chat.queued",{count:(H?.steering.length??0)+(H?.followUp.length??0)})}),q&&(0,d.jsxs)("button",{onClick:q,title:es("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:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--border)"},children:[(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"9 14 4 9 9 4"}),(0,d.jsx)("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})]}),es("chat.recall")]})]}),(0,d.jsxs)("div",{style:{maxHeight:"min(180px, calc(var(--app-viewport-height, 100dvh) * 0.25))",overflowY:"auto",overscrollBehavior:"contain"},children:[H?.steering.map((e,t)=>(0,d.jsx)(aO,{kind:"steer",text:e},`steer-${t}`)),H?.followUp.map((e,t)=>(0,d.jsx)(aO,{kind:"follow-up",text:e},`followup-${t}`))]})]}),_&&(0,d.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,d.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,d.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]}),es("chat.retrying",{attempt:_.attempt,max:_.maxAttempts}),_.errorMessage&&(0,d.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",_.errorMessage]})]}),tV&&(0,d.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,d.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,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),tV]}),I&&(0,d.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,marginBottom:8,padding:T?"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,d.jsx)("span",{style:{minWidth:0,flex:1,padding:T?"4px 0":0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:I}),T&&(0,d.jsx)(nk,{onClick:T,title:es("chat.dismissCompactError")})]}),(0,d.jsxs)("div",{className:ei?void 0:"chat-composer-card","data-bash":ew||void 0,"data-queuing":h&&!!(a||p)||void 0,children:[ev.length>0&&(0,d.jsx)("div",{className:"chat-composer-attachments",style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:ev.map((e,t)=>(0,d.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,d.jsx)(sf,{src:e.previewUrl,children:(0,d.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}})},e.previewUrl),(0,d.jsx)("button",{type:"button",onClick:()=>tp(t),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,d.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,d.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},t))}),(0,d.jsxs)("div",{style:{position:"relative",minWidth:0},children:[eF&&U.length>0&&(0,d.jsxs)("div",{ref:e8,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,d.jsx)("div",{title:es("chat.inputHistory"),style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,d.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,d.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,d.jsx)("path",{d:"M3 4v5h5"}),(0,d.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,d.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:U.map((e,t)=>{let n=t===eB;return(0,d.jsxs)("button",{ref:e=>{tr.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tW(e)},onMouseEnter:()=>e_(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:n?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,d.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:t+1}),(0,d.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:e})]},`${t}:${e}`)})})]}),ek&&null!==tv&&(0,d.jsxs)("div",{ref:e7,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===eE?"min(72.8vh, 598px)":`min(72.8vh, 598px, ${eE}px)`},children:[(0,d.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,d.jsx)("span",{children:V?es("chat.loadingCommands"):es("chat.slashCommands",{label:tk})}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:es("chat.tabEnter")})]}),(0,d.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:10},children:V||0!==tb.length?tj.map(e=>(0,d.jsxs)("section",{style:{marginBottom:12},children:[(0,d.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,d.jsx)("span",{children:es(aI[e.source])}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:e.items.map(e=>{let{command:t,index:n}=e,r=n===eC,i=aL(t,e0);return(0,d.jsxs)("button",{ref:e=>{te.current[n]=e},type:"button",onMouseDown:e=>{e.preventDefault(),tO(t)},onMouseEnter:()=>eN(n),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${r?"var(--accent)":"var(--border)"}`,borderRadius:7,background:r?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:r?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,d.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word",color:i?"var(--text-dim)":void 0},children:["/",t.name,i&&(0,d.jsx)("span",{style:{marginLeft:6,padding:"0 4px",border:"1px solid var(--border)",borderRadius:3,fontSize:9,color:"var(--text-dim)",whiteSpace:"nowrap"},children:es("chat.dormant")})]}),t.description&&(0,d.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:aR(t,es)})]},`${t.source}:${t.name}`)})})]},e.source)):(0,d.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:es("chat.noCommands")})})]}),eT&&null!==eM&&(r=eZ&&(!eK||eK.cwd!==et),i=1===tL.length?es("chat.match"):es("chat.matches",{count:tL.length}),s=eK?.truncated&&!tR?eM.query?es("chat.searchingAll"):es("chat.indexTruncated"):"",(0,d.jsxs)("div",{ref:tt,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===eL?"min(48vh, 400px)":`min(48vh, 400px, ${eL}px)`},children:[(0,d.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,d.jsx)("span",{children:r?es("chat.loadingFiles"):es("chat.files",{label:i,hint:s})}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:es("chat.tabEnter")})]}),(0,d.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:4},children:r||0!==tL.length?tL.map((e,t)=>{let n=t===eP,r=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-r.length);return(0,d.jsxs)("button",{ref:e=>{tn.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tz(e)},onMouseEnter:()=>ez(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:6,background:n?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,d.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,d.jsx)(nN,{size:14}):nM(r,14)}),(0,d.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i&&(0,d.jsx)("span",{style:{color:"var(--text-dim)"},children:i}),r,e.isDir&&(0,d.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,d.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:tI&&!tR?es("chat.searching"):es("chat.noMatchingFiles")})})]})),(0,d.jsxs)("div",{className:ei?void 0:"chat-composer-entry",style:{minWidth:0,display:"flex",flexDirection:tC?"column":"row",gap:8,alignItems:tC?"stretch":"center",background:"transparent",border:"none",padding:ei?0:"14px 16px 4px",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,d.jsx)("textarea",{ref:e1,className:"chat-input-textarea","aria-label":ei?es("chat.askInSideChat"):void 0,value:ep,onChange:e=>{tl.current=e.target.value,eh(e.target.value),eD(!1),tE(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tE(t.value,t.selectionStart)},onKeyDown:t_,onCompositionStart:()=>{e6.current=!0},onCompositionEnd:e=>{e6.current=!1,e5.current=Date.now();let t=e.currentTarget;tE(t.value,t.selectionStart)},onInput:tH,onPaste:tU,placeholder:M?es("chat.compactingPlaceholder"):h&&(a||p)?es("chat.steerPlaceholder"):h?es("chat.agentPlaceholder"):es("chat.messagePlaceholder"),rows:1,style:{flex:tC?"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:ei?96:44,maxHeight:200,overflow:"auto"}}),ei&&tX]})]}),ew&&(0,d.jsxs)("div",{className:"text-xs px-2 py-1",style:{color:ej?"var(--text-muted)":"var(--accent)",marginTop:4},children:[es("chat.shell")," \xb7 ",ej?es("chat.outputLocal"):es("chat.outputModel")]}),!ei&&(0,d.jsxs)("div",{className:"chat-composer-footer",children:[(0,d.jsxs)("div",{className:"chat-input-controls",style:{marginTop:ec?4:8,display:ec?"grid":"flex",gridTemplateColumns:ec?"minmax(0, 1fr) auto":void 0,alignItems:"center",gap:6},children:[(0,d.jsxs)("div",{className:"chat-composer-model",style:{flex:ec?"1 1 auto":"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:[(0,d.jsx)("button",{className:"chat-composer-attach",onClick:()=>e3.current?.click(),title:es("chat.attachFiles"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:ed,height:ed,padding:0,background:"none",border:"none",borderRadius:9,color:ev.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",opacity:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=ev.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=ev.length?"var(--accent)":"var(--text-muted)"},children:(0,d.jsxs)("svg",{width:ec?18:15,height:ec?18:15,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),(0,d.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,d.jsx)("polyline",{points:"21 15 16 10 5 21"})]})}),(W||(tq.length>0||m||v)&&k)&&(0,d.jsx)(ag,{options:tq,model:m,onModelChange:k,allOptions:w?.map(e=>({provider:e.provider,modelId:e.id,name:e.name})),onShowAll:j,isStreaming:h,modelSwitching:S,isAutoModelSelection:f,defaultModel:C,onSetDefaultModel:N,thinkingLevel:P,isAutoThinkingSelection:z,availableThinkingLevels:O,thinkingLevelMap:F,onThinkingLevelChange:W,savedDefaultThinkingLevel:D,onSetDefaultThinkingLevel:B})]}),(0,d.jsxs)("div",{ref:e4,className:"chat-composer-options",style:{flex:"0 0 auto",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:ec?0:"auto"},children:[ec&&(0,d.jsx)("button",{type:"button",title:eg?void 0:es("chat.moreControls"),"aria-label":es("chat.moreControls"),"aria-expanded":eg,"aria-hidden":eg||void 0,tabIndex:eg?-1:void 0,onClick:()=>{ex(!0)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:ed,padding:"8px 10px",background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:eg?"default":"pointer",fontSize:12,fontWeight:500,visibility:eg?"hidden":"visible",pointerEvents:eg?"none":"auto",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{eg||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{eg||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:es("chat.moreControls")}),(0,d.jsxs)("div",{className:"chat-composer-options-list",style:{display:ec?eg?"flex":"none":"flex",alignItems:"center",gap:ec?1:2,...ec?{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:[!h&&A&&(0,d.jsxs)("div",{ref:e2,style:{position:ec?"static":"relative"},children:[(0,d.jsxs)("button",{className:"chat-composer-control chat-composer-tool",onClick:e=>{h||tG(e)||ef(e=>!e)},disabled:h,title:es("chat.changeToolPreset")+`: ${tJ}`,"aria-label":es("chat.changeToolPreset"),"aria-expanded":em,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ec?"0 10px":"8px 12px",width:ec?"auto":void 0,height:ed,background:em?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:12,opacity:h?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{h||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=em?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.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"})}),(!ec||eg)&&(0,d.jsx)("span",{style:{whiteSpace:"nowrap"},children:"configured"===tZ?es("chat.toolsButton"):tJ}),(0,d.jsx)("span",{className:"chat-composer-caret","aria-hidden":"true"})]}),em&&(0,d.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",right:0,maxWidth:ec?"calc(100vw - 16px)":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:ax.map(e=>{let t,n=av[e],r=(L??"configured")===n;return t="configured"===e?es("chat.configuredTools"):"chat-only"===e?es("chat.chatOnly"):"read-only"===e?es("chat.readOnlyTools",{count:4}):"default"===e?es("chat.builtInTools",{count:4}):es("chat.allBuiltInTools"),(0,d.jsxs)("button",{onClick:()=>{ef(!1),r||A(n)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:r?"var(--bg-selected)":"none",border:"none",color:r?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:r?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[r?(0,d.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,d.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,d.jsx)("span",{style:{width:10,flexShrink:0}}),(0,d.jsx)("span",{style:{flex:1},children:es(ab[e])}),(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:t})]},e)})})]}),!ec&&(0,d.jsx)("div",{className:"chat-composer-usage",children:er}),(!h||M)&&E&&(0,d.jsx)("div",{className:"chat-composer-compact",children:(0,d.jsx)("button",{className:"chat-composer-utility",onClick:M?$:e=>{tG(e)||E()},style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ec?"0 10px":"8px 12px",width:ec?"auto":void 0,height:ed,background:M?"rgba(239,68,68,0.08)":"none",border:"none",borderRadius:9,color:M?"#ef4444":"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background=M?"rgba(239,68,68,0.16)":"var(--bg-hover)",e.currentTarget.style.color=M?"#ef4444":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=M?"rgba(239,68,68,0.08)":"none",e.currentTarget.style.color=M?"#ef4444":"var(--text-muted)"},title:M?es("chat.stopCompaction"):es("chat.compactContext"),"aria-label":M?es("chat.stopCompaction"):es("chat.compactContext"),children:M?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}),(!ec||eg)&&(0,d.jsx)("span",{style:{whiteSpace:"nowrap"},children:es("chat.compacting")})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"4 14 10 14 10 20"}),(0,d.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,d.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,d.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]}),ec&&eg&&(0,d.jsx)("span",{style:{whiteSpace:"nowrap"},children:es("chat.compact")})]})})}),h&&(0,d.jsxs)("button",{onClick:l,title:es("chat.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:ed,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:e=>{e.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.08)"},children:[(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,d.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),es("chat.stop")]}),void 0!==G&&(0,d.jsx)("button",{className:"chat-composer-utility chat-composer-sound",onClick:G,title:Y?es("chat.disableSound"):es("chat.enableSound"),"aria-label":Y?es("chat.disableSound"):es("chat.enableSound"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:ed,height:ed,padding:0,background:"none",border:"none",borderRadius:9,color:Y?"var(--text-muted)":"var(--text-dim)",cursor:"pointer",opacity:Y?1:.55,transition:"background 0.12s, color 0.12s, opacity 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)",e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=Y?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.opacity=Y?"1":"0.55"},children:Y?(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,d.jsx)("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"}),(0,d.jsx)("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14"})]}):(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,d.jsx)("line",{x1:"23",y1:"9",x2:"17",y2:"15"}),(0,d.jsx)("line",{x1:"17",y1:"9",x2:"23",y2:"15"})]})}),ec&&eg&&(0,d.jsx)("button",{type:"button",title:es("chat.collapseControls"),"aria-label":es("chat.collapseControls"),"aria-expanded":!0,onClick:()=>{ef(!1),ex(!1)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:ec?ed:36,height:ed,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:e=>{e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)"},children:(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,d.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})]}),(0,d.jsx)("div",{className:"chat-composer-submit",children:tX})]})]})]})]})}));function aU(){return(0,d.jsxs)("svg",{className:"new-session-welcome-mark",width:"52",height:"52",viewBox:"0 0 64 64",fill:"none",stroke:"currentColor",strokeWidth:"2.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M23 10C27 3 38 3 42 11C51 10 58 18 54 26C62 32 59 43 51 46C50 56 39 60 32 54C24 60 13 55 13 46C4 42 3 31 10 25C7 17 14 9 23 10Z"}),(0,d.jsx)("path",{d:"m23 25 5 6-5 6M34 38h9"})]})}var aq=n(88576),aK=n.n(aq);function aV(e){let{level:t,children:n,headingIndex:r,onClick:i}=e;return(0,d.jsx)("button",{type:"button",className:aK().heading,"data-level":t,"data-preview-heading-index":r??void 0,disabled:null===r||!i,onClick:e=>{e.stopPropagation(),null!==r&&i?.(r)},children:n})}let aZ=[...si??[],function(){return e=>{if(!Array.isArray(e.children))return;let t=e.children.filter(e=>"heading"===e.type&&"number"==typeof e.depth&&e.depth<=3);if(t.length>0){t.forEach((e,t)=>{e.data={...e.data,hProperties:{...e.data?.hProperties,"data-preview-heading-index":t}}}),e.children=t;return}e.children=e.children.filter(e=>"paragraph"===e.type||"list"===e.type).slice(0,2)}}],aJ=[[iL.A,{throwOnError:!1,strict:!1}]];function aY(e){let t=e?.properties,n=t?.dataPreviewHeadingIndex??t?.["data-preview-heading-index"];return"number"==typeof n?n:"string"==typeof n&&/^\d+$/.test(n)?Number(n):null}let aG=(0,u.memo)(function(e){let{markdown:t,onHeadingClick:n,onAnswerClick:r}=e,i=(0,u.useMemo)(()=>iG(t),[t]);return t?(0,d.jsx)("div",{className:aK().outline,children:(0,d.jsx)(iS.oz,{remarkPlugins:aZ,rehypePlugins:aJ,components:{h1:e=>{let{children:t,node:r}=e;return(0,d.jsx)(aV,{level:1,headingIndex:aY(r),onClick:n,children:t})},h2:e=>{let{children:t,node:r}=e;return(0,d.jsx)(aV,{level:2,headingIndex:aY(r),onClick:n,children:t})},h3:e=>{let{children:t,node:r}=e;return(0,d.jsx)(aV,{level:3,headingIndex:aY(r),onClick:n,children:t})},h4:()=>null,h5:()=>null,h6:()=>null,p:e=>{let{children:t}=e;return(0,d.jsx)("button",{type:"button",className:aK().paragraph,onClick:r,children:t})},blockquote:()=>null,ul:e=>{let{children:t}=e;return(0,d.jsx)("ul",{className:aK().list,children:t})},ol:e=>{let{children:t}=e;return(0,d.jsx)("ol",{className:aK().list,children:t})},pre:()=>null,table:()=>null,hr:()=>null,a:e=>{let{children:t}=e;return(0,d.jsx)(d.Fragment,{children:t})},code:e=>{let{children:t}=e;return(0,d.jsx)(d.Fragment,{children:t})}},children:i})}):null}),aX=(0,u.memo)(function(e){let{messages:t,getStreamingMessage:n,scrollContainer:r,messageRefs:i,onRevealHistory:s,turnsBefore:o}=e,{t:l}=(0,tw.s)(),[a,c]=(0,u.useState)(!1),[p,h]=(0,u.useState)([]),[m,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(600),[v,b]=(0,u.useState)(!1),[y,w]=(0,u.useState)(null),[j,k]=(0,u.useState)(180),S=(0,u.useRef)(!1),C=(0,u.useRef)(null),N=(0,u.useRef)([]),E=(0,u.useRef)({nodes:[],gap:10,fillsHeight:!1}),$=(0,u.useRef)(null),M=(0,u.useRef)(null),I=(0,u.useRef)(null),T=(0,u.useRef)(null),R=(0,u.useRef)(t);R.current=t;let L=(0,u.useMemo)(()=>(function(e,t){if(0===e.length)return{nodes:[],gap:10,fillsHeight:!1};let n=Math.max(1,t),r=Math.min(180,Math.max(0,n-56));if(1===e.length)return{nodes:[{...e[0],topRatio:Math.max(28,n/2)/n}],gap:10,fillsHeight:!1};let i=r/(e.length-1),s=Math.min(10,i),o=Math.max(28,(n-s*(e.length-1))/2);return{nodes:e.map((e,t)=>({...e,topRatio:(o+t*s)/n})),gap:s,fillsHeight:i<=10}})(p,g),[p,g]),{nodes:A,gap:P}=L;E.current=L;let z=(0,u.useCallback)(e=>{I.current={index:e,until:Date.now()+1600},f(e)},[]),W=(0,u.useCallback)((e,t)=>{let n=I.current;if(n&&Date.now()<n.until)return void f(n.index);I.current=null;let r=t.filter(e=>null!==e.targetTurn.scrollTop);if(0===r.length)return void f(null);let i=e.scrollTop+.3*e.clientHeight;f(r.reduce((e,t)=>Math.abs((t.targetTurn.scrollTop??0)-i)<Math.abs((e.targetTurn.scrollTop??0)-i)?t:e,r[0]).index)},[]),O=(0,u.useCallback)(()=>{let e=r.current;if(!e)return;let t=e.scrollHeight-e.clientHeight,n=N.current;c(t>20),W(e,n)},[r,W]),F=(0,u.useRef)(null),D=(0,u.useCallback)(()=>{F.current||(F.current=setTimeout(()=>{F.current=null;let e=r.current,t=C.current;if(!e||!t)return;let s=i.current,o=e.getBoundingClientRect(),l=[],a=0,d=null,u=n();for(let t of u?[...R.current,u]:R.current){let n=r4(t);if(!n&&"assistant"!==t.role)continue;let r=s?.[a];if(a++,n){d=null;let n=r?.getBoundingClientRect();d={userMessage:t,assistantPreviews:[],scrollTop:n?n.top-o.top+e.scrollTop:null,toolCount:0},l.push(d);continue}if(!d)continue;d.toolCount+="assistant"===t.role&&Array.isArray(t.content)?t.content.reduce((e,t)=>e+ +("toolCall"===t.type),0):0;let i=function(e){if("assistant"!==e.role)return"";let{answerBlocks:t}=r7(e);return t.filter(e=>"text"===e.type).map(e=>e.text).join("\n\n").trim()}(t);i&&d.assistantPreviews.push({markdown:i,element:r})}let p=l.map((e,t)=>({topRatio:0,targetTurn:e,index:t}));x(t.clientHeight),N.current=p,h(p),c(e.scrollHeight-e.clientHeight>20),W(e,p);let m=T.current,f=m?p[m.nodeIndex]:null;if(m&&f){let t=void 0===m.assistantIndex?null:f.targetTurn.assistantPreviews[m.assistantIndex],n=f.targetTurn.scrollTop;if("assistant"===m.target){let r=t?.element?.getBoundingClientRect();n=r?r.top-o.top+e.scrollTop:null}else if("heading"===m.target){let r=void 0===m.headingIndex?null:t?.element?.querySelectorAll("h1, h2, h3").item(m.headingIndex),i=r?.getBoundingClientRect();n=i?i.top-o.top+e.scrollTop:null}if(null===n)return;T.current=null,z(f.index);let r=.3*e.clientHeight;e.scrollTo({top:Math.max(0,n-r),behavior:"smooth"})}},150))},[n,z,i,r,W]);(0,u.useEffect)(()=>{let e=r.current;if(e)return e.addEventListener("scroll",O,{passive:!0}),()=>e.removeEventListener("scroll",O)},[r,O]),(0,u.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{D(),O()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),F.current&&(clearTimeout(F.current),F.current=null)}},[D,r,O]),(0,u.useEffect)(()=>{let e=setTimeout(()=>{D(),O()},50);return()=>clearTimeout(e)},[t.length,D,O]);let B=(0,u.useCallback)((e,t)=>{let n=r.current;if(!n)return;if(z(e.index),null===e.targetTurn.scrollTop){T.current={nodeIndex:e.index,target:"user"},s();return}let i=Math.max(0,e.targetTurn.scrollTop-.3*n.clientHeight);n.scrollTo({top:i,behavior:t})},[z,s,r]),_=(0,u.useCallback)((e,t)=>{let n=r.current;if(!n)return;let i=e.targetTurn.assistantPreviews[t]?.element;if(!i){T.current={nodeIndex:e.index,target:"assistant",assistantIndex:t},s();return}let o=n.getBoundingClientRect(),l=i.getBoundingClientRect().top-o.top+n.scrollTop-.3*n.clientHeight;z(e.index),n.scrollTo({top:Math.max(0,l),behavior:"smooth"})},[z,s,r]),H=(0,u.useCallback)(e=>{let{nodes:t,gap:n}=E.current,r=C.current?.clientHeight??0;if(0===t.length||r<=0)return null;let i=Math.max(0,Math.min(r,e*r)),s=t[0].topRatio*r,o=n>0?Math.round((i-s)/n):0,l=Math.max(0,Math.min(t.length-1,o)),a=t[l];return Math.abs(i-a.topRatio*r)>Math.max(10,n/2)?null:a},[]),U=(0,u.useCallback)((e,t,n)=>{let i=r.current;if(!i)return;let o=e.targetTurn.assistantPreviews[t]?.element;if(!o){T.current={nodeIndex:e.index,target:"heading",assistantIndex:t,headingIndex:n},s();return}let l=o.querySelectorAll("h1, h2, h3").item(n);if(!l)return;let a=i.getBoundingClientRect(),c=l.getBoundingClientRect().top-a.top+i.scrollTop-.3*i.clientHeight;z(e.index),i.scrollTo({top:Math.max(0,c),behavior:"smooth"})},[z,s,r]),q=(0,u.useCallback)(()=>{M.current&&(clearTimeout(M.current),M.current=null)},[]),K=(0,u.useCallback)(()=>{q(),b(!0)},[q]);(0,u.useEffect)(()=>{try{window.localStorage.removeItem("pi-web:minimap-preview-locked")}catch{}},[]);let V=(0,u.useCallback)(()=>{q(),M.current=setTimeout(()=>{M.current=null,b(!1),w(null)},250)},[q]);(0,u.useEffect)(()=>()=>q(),[q]);let Z=(0,u.useCallback)(e=>{if(!a)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientY-t.top)/t.height));if(!H(n))return;S.current=!0,K(),w(n);let r=(e,n)=>{let r=H(Math.max(0,Math.min(1,(e-t.top)/t.height)));r&&B(r,n)};r(e.clientY,"smooth");let i=e=>{S.current&&r(e.clientY,"auto")},s=()=>{S.current=!1,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",s)},[H,B,K,a]),J=null===y?null:H(y),Y=J?.index??null,G=J??A[m??0],X=Math.max(8,Math.min((G?.topRatio??.5)*g-j/2,g-j-8));return((0,u.useEffect)(()=>{if(!v)return;let e=$.current;if(!e)return;e.scrollTop=0;let t=new ResizeObserver(()=>k(e.offsetHeight));return t.observe(e),()=>t.disconnect()},[p,v,Y]),a)?(0,d.jsxs)("div",{ref:C,className:aK().rail,role:"navigation","aria-label":l("chatMinimap.title"),"data-chat-minimap":"",onMouseDown:Z,onMouseLeave:V,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||V()},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientY-t.top)/t.height;w(n),H(n)?K():V()},children:[o>0&&(0,d.jsx)("div",{"data-minimap-earlier":"",style:{position:"absolute",left:"50%",top:Math.max(0,(A[0]?.topRatio??0)*g-28),height:20,width:1,background:"repeating-linear-gradient(to bottom, var(--text-dim) 0 2px, transparent 2px 4px)",transform:"translateX(-50%)",zIndex:0}}),A.map(e=>{let t=v&&J?.index===e.index,n=m===e.index,r=null===y?1/0:Math.abs(e.topRatio-y)*g,i=6+22*Math.exp(-(r*r)/400);return(0,d.jsx)("button",{type:"button",className:aK().node,"data-minimap-node-index":e.index,"data-minimap-node-active":n?"":void 0,"data-nearest":t?"true":void 0,"aria-label":l("chatMinimap.turn",{count:o+e.index+1}),"aria-current":n?"step":void 0,onFocus:()=>{w(e.topRatio),K()},onClick:t=>{0===t.detail&&B(e,"smooth")},style:{top:`${100*e.topRatio}%`,height:Math.max(1,Math.min(32,P))},children:(0,d.jsx)("span",{className:aK().marker,style:{"--tick-width":`${i}px`},"aria-hidden":"true"})},e.index)}),v&&G&&(0,d.jsxs)("div",{ref:$,className:aK().preview,"data-minimap-preview-box":"",style:{top:`clamp(8px, ${X}px, max(8px, calc(100% - ${j}px - 8px)))`},"aria-label":l("chatMinimap.turn",{count:o+G.index+1}),onMouseEnter:K,onMouseDown:e=>e.stopPropagation(),onMouseMove:e=>e.stopPropagation(),children:[o>0&&(0,d.jsx)("button",{type:"button",className:aK().earlier,"data-minimap-preview-earlier":"",onClick:()=>r.current?.scrollTo({top:0,behavior:"smooth"}),children:l("chatMinimap.earlierTurns",{count:o})}),[G].map(e=>{var t;let n=Y===e.index;return(0,d.jsxs)("div",{className:aK().turn,"data-minimap-preview-index":e.index,"data-located":n?"true":void 0,"data-active":m===e.index?"true":void 0,children:[(0,d.jsxs)("span",{className:aK().number,children:[(0,d.jsx)("span",{"aria-hidden":"true",children:String(o+e.index+1).padStart(2,"0")}),e.targetTurn.toolCount>0&&(0,d.jsx)("span",{className:aK().toolBadge,role:"img",title:l("chatMinimap.toolCalls",{count:e.targetTurn.toolCount}),"aria-label":l("chatMinimap.toolCalls",{count:e.targetTurn.toolCount}),children:e.targetTurn.toolCount>99?"99+":e.targetTurn.toolCount})]}),(0,d.jsxs)("div",{className:aK().content,children:[(0,d.jsx)("button",{type:"button",className:aK().user,"data-minimap-preview-user":e.index,onClick:()=>{B(e,"smooth")},children:(0,d.jsx)("span",{className:aK().userText,children:"string"==typeof(t=e.targetTurn.userMessage).content?t.content.trim():t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim()})}),e.targetTurn.assistantPreviews.map((t,n)=>(0,d.jsxs)("div",{className:aK().assistant,children:[(0,d.jsx)("button",{type:"button",className:aK().assistantJump,"data-minimap-preview-assistant":`${e.index}-${n}`,onClick:()=>_(e,n),"aria-label":l("chatMinimap.locateAssistant"),title:l("chatMinimap.locateAssistant"),children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M5 4v9a4 4 0 0 0 4 4h10m-4-4 4 4-4 4"})})}),(0,d.jsx)(aG,{markdown:t.markdown,onAnswerClick:()=>_(e,n),onHeadingClick:t=>U(e,n,t)})]},n))]})]},e.index)})]})]}):null});var aQ=n(42790);function a0(e){let{text:t}=e,n=(0,u.useMemo)(()=>new aQ.v().ansi_to_html(t).replaceAll('<a href="','<a target="_blank" rel="noopener noreferrer" href="'),[t]);return(0,d.jsx)("span",{dangerouslySetInnerHTML:{__html:n}})}function a1(e){let t,n,r,{widgets:i,children:s}=e,{t:o}=(0,tw.s)(),l=(0,u.useId)(),a=(0,u.useRef)(null),c=(0,u.useRef)(new Map),[p,h]=(0,u.useState)(()=>i.find(e=>{let t=e.lines.length;return t>1&&t<=3})?.key??null),[m,f]=(0,u.useState)(()=>new Set);if((0,u.useEffect)(()=>{var e;let t=new Map(i.map(e=>[e.key,[...e.lines]])),n=(e=a.current,e?Array.from(t,t=>{let[n,r]=t,i=e.get(n);return i&&i.length===r.length?r.some((e,t)=>e!==i[t])?n:null:i?n:null}).filter(e=>null!==e):[]);for(let[e,n]of(a.current=t,c.current))t.has(e)||(clearTimeout(n),c.current.delete(e));for(let e of(f(e=>{let r=new Set(Array.from(e).filter(e=>t.has(e)));for(let e of n)r.add(e);return r.size===e.size&&Array.from(r).every(t=>e.has(t))?e:r}),n)){let t=c.current.get(e);t&&clearTimeout(t),c.current.set(e,setTimeout(()=>{c.current.delete(e),f(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},1100))}},[i]),(0,u.useEffect)(()=>()=>{for(let e of c.current.values())clearTimeout(e);c.current.clear()},[]),0===i.length)return null;let g=i.find(e=>e.key===p&&e.lines.length>0);return(0,d.jsxs)(d.Fragment,{children:[g&&(0,d.jsx)("div",{className:"extension-widget-panels",children:(t=i.indexOf(g),n=`${l}-trigger-${t}`,r=`${l}-panel-${t}`,(0,d.jsxs)("section",{id:r,className:"extension-widget-panel","aria-labelledby":n,children:[(0,d.jsx)("div",{className:"extension-widget-panel-heading",children:g.key}),(0,d.jsx)("pre",{className:"extension-widget-content",children:(0,d.jsx)(a0,{text:g.lines.join("\n")})})]},g.key))}),(0,d.jsxs)("div",{className:"extension-status-row",children:[(0,d.jsx)("div",{className:"extension-widget-triggers","aria-label":o("chat.extensionWidgets"),children:i.map((e,t)=>{let n=e.lines.length>0,r=n&&e.key===g?.key,i=m.has(e.key),s=o(1===e.lines.length?"chat.extensionWidgetLine":"chat.extensionWidgetLines",{count:e.lines.length}),a=o("belowEditor"===e.placement?"chat.extensionWidgetBelow":"chat.extensionWidgetAbove"),c=`${l}-trigger-${t}`,u=`${l}-panel-${t}`,p=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"extension-widget-update-pulse","aria-hidden":"true"}),(0,d.jsx)("span",{className:"extension-widget-placement","aria-hidden":"true",children:(0,d.jsx)("svg",{className:"extension-widget-placement-icon",viewBox:"0 0 8 6",width:"8",height:"6","data-direction":"belowEditor"===e.placement?"down":"up",focusable:"false",children:(0,d.jsx)("path",{d:"belowEditor"===e.placement?"M0 0h8L4 6z":"M4 0l4 6H0z"})})}),(0,d.jsx)("span",{className:"extension-widget-key",children:e.key})]});return n?(0,d.jsx)("button",{id:c,type:"button",className:`extension-widget-trigger${r?" is-expanded":""}${i?" is-updating":""}`,"aria-controls":u,"aria-expanded":r,"aria-label":`${a}: ${e.key}, ${s}`,title:`${e.key} - ${a} - ${r?o("i18n.collapse"):o("i18n.expand")}`,onClick:()=>{h(t=>{var n;return t===(n=e.key)?null:n})},children:p},e.key):(0,d.jsx)("div",{className:`extension-widget-trigger${i?" is-updating":""}`,"aria-label":`${a}: ${e.key}, ${s}`,title:`${e.key} - ${a}`,children:p},e.key)})}),s]})]})}let a2="command:";function a4(e){let{statuses:t,widgets:n=[],onCommand:r,commandsDisabled:i=!1}=e,s=function(e){let t=[];for(let n of[...e].sort((e,t)=>e.key.localeCompare(t.key))){let e=n.text.replace(/\r\n?/g,"\n").split("\n").map(e=>e.replace(/\t/g," ").replace(/ +/g," ").trim()).join("\n").trim(),r=function(e){if(!e.startsWith(a2))return null;let t=e.slice(a2.length).trim();return t.length>1&&t.startsWith("/")?t:null}(n.key);if(r){let n=rJ(e).replace(/\s+/g," ").trim();t.push({kind:"command",command:r,label:n||r})}else rJ(e).trim()&&t.push({kind:"text",text:e})}return t}(t);if(0===s.length&&0===n.length)return null;let o=s.some(e=>"command"===e.kind),l=s.map(e=>"text"===e.kind?rJ(e.text):e.label).join(" "),a=s.length>0?(0,d.jsx)("div",{role:"status",className:"extension-status-line","aria-label":l,title:l,children:(0,d.jsx)("span",{className:"extension-status-text",children:s.map((e,t)=>"text"===e.kind?(0,d.jsx)("span",{className:"extension-status-item",children:(0,d.jsx)(a0,{text:e.text})},t):(0,d.jsx)("button",{type:"button",className:"extension-status-item extension-status-command",disabled:!r||i,title:`${e.label} \xb7 ${e.command}`,"aria-label":`${e.label} (${e.command})`,onClick:()=>r?.(e.command),children:e.label},t))})}):null;return(0,d.jsx)("div",{className:`extension-status-shelf${n.length>0?" has-widgets":""}${s.length>0?" has-status":""}${o?" has-commands":""}`,children:n.length>0?(0,d.jsx)(a1,{widgets:n,children:a}):a})}function a8(e,t){return e?.kind==="running_tools"&&e.tools.length>0?e:t?{kind:"waiting_model"}:{kind:"running_command"}}let a3={owner:null,sessionId:null,phase:"idle",result:null},a6=a3,a5=0,a9=new Set;function a7(e){a6=e,a9.forEach(e=>e())}let ce={subscribe:e=>(a9.add(e),()=>{a9.delete(e)}),getSnapshot:()=>a6,getServerSnapshot:()=>a3,update(e,t,n){if(a6.owner===e&&a6.sessionId===t&&a6.phase===n)return;let r="idle"===a6.phase&&"idle"!==n;a7({owner:e,sessionId:t,phase:n,result:a6.owner!==e||r?null:a6.result})},finish(e,t){a6.owner===e&&(a6.result?.kind!=="error"||"complete"!==t)&&a7({...a6,result:{sequence:++a5,kind:t}})},release(e){a6.owner===e&&a7(a3)}};function ct(e){switch(e.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==e.closed;default:return!1}}function cn(e,t){return e.every(e=>t.has(e.id))?e:e.filter(e=>t.has(e.id))}function cr(e,t){return e.some(e=>e.id===t)?e.filter(e=>e.id!==t):e}function ci(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function cs(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("assistant"!==e.role)return e;let n=e.content;if(!Array.isArray(n))return e;let r=n.map(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!ci(e)||"toolCall"!==e.type)return null;let n={type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:"object"!=typeof e.input||null===e.input||Array.isArray(e.input)?"object"!=typeof e.arguments||null===e.arguments||Array.isArray(e.arguments)?{}:e.arguments:e.input},r=t.includeStreamingRawInput?function(e){if("string"==typeof e.rawInput)return e.rawInput;if("string"==typeof e.partialJson)return e.partialJson;if("string"==typeof e.partialArgs)return e.partialArgs;let t=ci(e.customInput)?e.customInput:null,n=t&&"string"==typeof t.property?t.property:null,r=ci(e.arguments)?e.arguments:null;return n&&r&&"string"==typeof r[n]?r[n]:void 0}(e):void 0;return void 0===r?n:{...n,rawInput:r}})(e,t)??e);return{...e,content:r}}function co(e){if(!e||"object"!=typeof e)return null;let{reason:t,cwd:n}=e;return"cwd-missing"===t&&"string"==typeof n&&n?n:null}class cl extends Error{constructor(e,t,n,r,i){super(e),this.status=t,this.code=n,this.accepted=r,this.missingCwd=i,this.name="AgentCommandError"}}function ca(e){return e instanceof cl&&"prompt_rejected"===e.code&&!1===e.accepted}function cc(e){return`/api/agent/${encodeURIComponent(e)}?systemPrompt=0`}async function cd(e,t){let n=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok||r.error)throw new cl(r.error??`HTTP ${n.status}`,n.status,r.code,r.accepted,co(r)??void 0);return r.data}let cu={not_found:"sideChat.error.notFound",unsaved:"sideChat.error.unsaved",empty:"sideChat.error.empty",subagent:"sideChat.error.subagent",side:"sideChat.error.side"};async function cp(e,t,n){let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/fork`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({side:!0,...n?{name:n}:{}}),cache:"no-store"}),i=await r.json().catch(()=>null);return r.ok&&i?.sessionId&&i.session?{session:i.session}:{error:i?.code&&i.code in cu?t(cu[i.code]):i?.error??`HTTP ${r.status}`}}async function ch(e){let t=await fetch(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE",cache:"no-store"});if(t.ok)return null;let n=await t.json().catch(()=>null);return{error:n?.error??`HTTP ${t.status}`}}function cm(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}let cf=new WeakMap;function cg(e){let t,n=cf.get(e);if(void 0!==n)return n;try{t=JSON.stringify(e).length}catch{t=Number.MAX_SAFE_INTEGER}return cf.set(e,t),t}function cx(e){let t=cm().get(e);return t?Date.now()-t.savedAt>6e5?(cm().delete(e),null):(cm().delete(e),cm().set(e,t),t):null}function cv(e){if(!e.sessionId||!e.revision)return!1;let t=cm();t.delete(e.sessionId);let n={...e,savedAt:Date.now()};return!(cg(n)>0x2000000)&&(t.set(n.sessionId,n),!function(){let e=cm();for(;e.size>8;){let t=e.keys().next().value;if(void 0===t)break;e.delete(t)}let t=0;for(let n of e.values())t+=cg(n);for(;t>0x2000000&&e.size>0;){let n=e.keys().next().value;if(void 0===n)break;let r=e.get(n);e.delete(n),r&&(t-=cg(r))}}(),cm().has(n.sessionId))}function cb(e){cm().delete(e)}var cy=n(14755);let cw="pi-tool-preset";function cj(){try{return window.localStorage}catch{return null}}function ck(e,t){t&&(e.tokens.input+=t.input??0,e.tokens.output+=t.output??0,e.tokens.cacheRead+=t.cacheRead??0,e.tokens.cacheWrite+=t.cacheWrite??0,e.cost+=t.cost?.total??0)}function cS(e){let t={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 n of e)"custom"!==n.role&&(t.totalMessages+=1,"user"===n.role?t.userMessages+=1:"toolResult"===n.role?(t.toolResults+=1,ck(t,n.usage)):"assistant"===n.role&&(t.assistantMessages+=1,Array.isArray(n.content)&&(t.toolCalls+=n.content.filter(e=>"toolCall"===e.type).length),ck(t,n.usage)));return t.tokens.total=t.tokens.input+t.tokens.output+t.tokens.cacheRead+t.tokens.cacheWrite,t}function cC(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e)}function cN(e){return e>0?e>=.01?`$${e.toFixed(2)}`:"<$0.01":null}function cE(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function c$(e){if(!e||"object"!=typeof e||"image"!==e.type)return"";let t=e.source;return t&&"object"==typeof t?["url"===t.type?"url":"base64","string"==typeof t.media_type?t.media_type:"","string"==typeof t.data?t.data:"","string"==typeof t.url?t.url:""].join(":"):["base64","string"==typeof e.mimeType?e.mimeType:"","string"==typeof e.data?e.data:"",""].join(":")}function cM(e){let t,n=e.content;return"string"==typeof n?JSON.stringify({text:n,images:[]}):Array.isArray(n)?JSON.stringify({text:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):"",images:n.map(c$).filter(Boolean)}):JSON.stringify({text:"",images:[]})}let cI=(e,t)=>`live:${e??""}:${t}`;class cT extends Error{constructor(e,t){super(t??("ready_timeout"===e?"Timed out starting the agent session. Please try again.":"Failed to connect to the agent event stream. Please try again.")),this.status=e,this.name="AgentEventConnectionError"}}class cR{constructor(e){this.options=e,this.current=null,this.retry=null,this.retryGeneration=0,this.opens=0,this.retries=0,this.lastError=null,this.lastClose=null}close(e){let t=null!==this.lastError&&!(this.lastClose&&this.lastClose.at>=this.lastError.at);(this.current||this.retry||t)&&(this.lastClose={reason:e??null,at:Date.now()}),this.stopRetrying(),this.current&&this.discard(this.current,new cT("closed"))}snapshot(){let e=this.current,t=this.retry;return{sessionId:e?.sessionId??t?.sessionId??null,state:e?e.attempt.ready?"connected":"connecting":t?"retrying":"idle",readyState:e?e.source.readyState:null,openedAt:e?.openedAt??null,connectedAt:e?.connectedAt??null,lastSeenAt:e?.lastSeenAt??null,lastHeartbeatAt:e?.lastHeartbeatAt??null,events:e?.events??0,opens:this.opens,retries:this.retries,retryDueAt:t?.dueAt??null,watchdogArmed:!!(e&&null!==e.watchdog),staleAfterMs:this.options.staleAfterMs??null,lastError:this.lastError?{...this.lastError}:null,lastClose:this.lastClose?{...this.lastClose}:null}}maintain(e){if(!this.options.shouldMaintain(e))return;let t=this.retryGeneration;this.ensureConnected(e).catch(n=>{t===this.retryGeneration&&(n instanceof cT?"startup_error"===n.status?this.stopRetrying():this.scheduleRetry(e):this.options.onUnexpectedError?.(n))})}async ensureConnected(e){for(;;){let t=this.current;if(t&&t.sessionId===e){if(t.attempt.ready&&1===t.source.readyState)return}else t=this.open(e);if(await t.attempt.promise,this.current!==t){if(this.current?.sessionId===e)continue;throw new cT("closed")}if(1===t.source.readyState)return;this.lastClose={reason:"stuck",at:Date.now()},this.discard(t,new cT("closed"))}}open(e){let t,n,r;this.current&&(this.lastClose={reason:"replaced",at:Date.now()},this.discard(this.current,new cT("closed")));try{t=this.options.createSource(e)}catch(t){let e=t instanceof Error?t.message:String(t);throw this.lastError={reason:"error",message:e,at:Date.now()},new cT("closed",e)}this.opens+=1;let i=!1,s=new Promise((e,t)=>{n=e,r=t}),o=setTimeout(()=>{this.fail(c,new cT("ready_timeout"),"ready_timeout")},this.options.readinessTimeoutMs),l={promise:s,ready:!1,succeed(){i||(i=!0,clearTimeout(o),n())},fail(e){i||(i=!0,clearTimeout(o),r(e))}},a=Date.now(),c={sessionId:e,source:t,attempt:l,watchdog:null,openedAt:a,connectedAt:null,lastSeenAt:null,lastHeartbeatAt:null,events:0};return this.current=c,t.onmessage=e=>{let t;if(this.current===c){c.lastSeenAt=Date.now();try{t=JSON.parse(e.data)}catch{return}if("heartbeat"===t.type){c.lastHeartbeatAt=c.lastSeenAt;return}if("connected"===t.type){c.connectedAt??=c.lastSeenAt,l.ready=!0,l.succeed(),this.stopRetrying();let e=this.options.staleAfterMs;e&&null===c.watchdog&&(c.watchdog=setInterval(()=>{Date.now()-(c.lastSeenAt??a)>e&&this.fail(c,new cT("closed"),"stale")},Math.max(1e3,Math.floor(e/3))))}else if("startup_error"===t.type){let e="string"==typeof t.errorMessage?t.errorMessage:void 0;this.fail(c,new cT("startup_error",e),"startup_error");return}c.events+=1,this.options.onEvent(t)}},t.onerror=()=>{this.fail(c,new cT("closed"),"error")},c}fail(e,t,n){this.current===e&&(this.lastError={reason:n,message:"startup_error"===n?t.message:null,at:Date.now()},this.discard(e,t),"startup_error"===t.status?this.stopRetrying():this.scheduleRetry(e.sessionId))}discard(e,t){null!==e.watchdog&&clearInterval(e.watchdog),e.watchdog=null,e.attempt.fail(t),e.source.close(),this.current===e&&(this.current=null)}scheduleRetry(e){if(!this.options.shouldMaintain(e)||this.retry?.sessionId===e)return;this.clearRetry();let t=setTimeout(()=>{this.retry?.timer===t&&(this.retry=null,this.retries+=1,this.maintain(e))},this.options.reconnectDelayMs);this.retry={sessionId:e,timer:t,dueAt:Date.now()+this.options.reconnectDelayMs}}stopRetrying(){this.retryGeneration+=1,this.clearRetry()}clearRetry(){this.retry&&clearTimeout(this.retry.timer),this.retry=null}}function cL(e){return!!e&&"unanswered"!==e&&!!(e.running||e.awaitingInput||e.subagentsActive)}function cA(e){return"u"<typeof document?()=>{}:(document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e))}let cP=()=>"hidden"===document.visibilityState,cz=()=>!1;function cW(e){return("tool_execution_start"===e.type||"tool_execution_update"===e.type||"tool_execution_end"===e.type)&&"string"==typeof e.parentToolCallId&&""!==e.parentToolCallId}function cO(e){var t;return("message_start"===e.type||"message_end"===e.type)&&"object"==typeof(t=e.message)&&null!==t&&!Array.isArray(t)&&"system"===e.message.role}function cF(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function cD(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return e+t>=n-r}let cB={isStreaming:!1,streamingMessage:null};function c_(e,t,n){let r=e.streamingMessage;if(!r||!Number.isInteger(t)||t<0)return e;let i=[...r.content],s=n(i[t]);return s?(i[t]=s,{isStreaming:!0,streamingMessage:{...r,content:i}}):e}function cH(){let e=cB,t=new Set;return{getState:()=>e,dispatch(n){let r=function(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...e,isStreaming:!0};case"snapshot":{let n=cs(t.message,{includeStreamingRawInput:!0});return"assistant"===n.role?{isStreaming:!0,streamingMessage:n}:e}case"delta":var n=t.event;switch(n.type){case"text_start":return c_(e,n.contentIndex,()=>({type:"text",text:""}));case"text_delta":return c_(e,n.contentIndex,e=>e?.type==="text"?{...e,text:e.text+n.delta}:null);case"text_end":return c_(e,n.contentIndex,e=>({...e?.type==="text"?e:{},type:"text",text:n.content}));case"thinking_start":return c_(e,n.contentIndex,()=>({type:"thinking",thinking:""}));case"thinking_delta":return c_(e,n.contentIndex,e=>e?.type==="thinking"?{...e,thinking:e.thinking+n.delta}:null);case"thinking_end":return c_(e,n.contentIndex,e=>({...e?.type==="thinking"?e:{},type:"thinking",thinking:n.content}));case"toolcall_start":return c_(e,n.contentIndex,e=>e?.type==="toolCall"?{...e,toolCallId:n.id??e.toolCallId,toolName:n.toolName??e.toolName,rawInput:""}:"string"!=typeof n.toolName?null:{type:"toolCall",toolCallId:n.id??"",toolName:n.toolName,input:{},rawInput:""});case"toolcall_delta":return c_(e,n.contentIndex,e=>e?.type==="toolCall"?{...e,toolCallId:n.id||e.toolCallId,toolName:n.toolName||e.toolName,rawInput:(e.rawInput??"")+n.delta}:null);case"toolcall_end":return c_(e,n.contentIndex,()=>({type:"toolCall",toolCallId:n.toolCall.id,toolName:n.toolCall.name,input:n.toolCall.arguments}));default:return e}case"end":return cB;default:return e}}(e,n);if(r!==e)for(let n of(e=r,t))n()},subscribe:e=>(t.add(e),()=>{t.delete(e)})}}function cU(e,t){let n=e.lastIndexOf(t);return -1===n?e:[...e.slice(0,n),...e.slice(n+1)]}function cq(e,t){return e.reduce((e,n)=>"user"===n.role&&cM(n)===t?e+1:e,0)}function cK(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}function cV(e){return e&&"auto"!==e?e:null}let cZ=new Map,cJ=[2e3,5e3,1e4];function cY(e){return new Promise(t=>setTimeout(t,e))}function cG(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,n)=>n===t?{...e,exiting:!0}:e)}function cX(e,t){switch(t.type){case"add":if(e.visible.some(e=>e.exiting)||e.visible.length>=5)return{visible:e.visible.some(e=>e.exiting)?e.visible:cG(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:cG(e.visible)};case"remove":return function(e,t){let n=e,r=t;for(;r.length>0&&n.length<5;){let[e,...t]=r;n=[...n,e],r=t}return r.length>0&&!n.some(e=>e.exiting)&&(n=cG(n)),{visible:n,pending:r}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function cQ(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore||"number"!=typeof e.estimatedTokensAfter?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:e.estimatedTokensAfter}:null}function c0(e,t){let[n,r]=(0,u.useState)(()=>t(e.getState()));return(0,u.useLayoutEffect)(()=>{let n=()=>r(t(e.getState()));return n(),e.subscribe(n)},[e,t]),n}let c1=e=>e.isStreaming,c2=e=>!!e.streamingMessage?.content.length,c4=e=>e.streamingMessage;function c8(e){let t,{messageCount:n,toolCallCount:r,durationMs:i,cacheMisses:s,defaultExpanded:o=!1,reveal:l=!1,children:a,t:c}=e,[p,h]=(0,u.useState)(o);(0,u.useLayoutEffect)(()=>{l&&h(!0)},[l]);let m=[`${n} ${c(1===n?"chat.message":"chat.messages")}`];r>0&&m.push(`${r} ${c(1===r?"chat.toolCall":"chat.toolCalls")}`),void 0!==i&&m.push(c("chat.turnDuration",{time:iw(i)}));let f=s&&!(p||l)?(t={count:s.count,tokens:oN(s.missedTokens),cost:o$(c,s.missedCost)},c(1===s.count?"transcriptNotice.foldCacheMiss":"transcriptNotice.foldCacheMisses",t)):void 0;return(0,d.jsxs)("div",{style:{marginBottom:14},children:[(0,d.jsxs)("button",{type:"button",className:"process-details-toggle","aria-expanded":p||l,"aria-label":[c("chat.processDetails"),...m,...f?[f]:[]].join(" \xb7 "),onClick:()=>h(e=>!e),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:c(p?"chat.collapseProcess":"chat.expandProcess"),children:[(0,d.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:p?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,d.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,d.jsx)("span",{className:"process-details-label",children:c("chat.processDetails")}),(0,d.jsx)("span",{"aria-hidden":"true",children:" \xb7 "}),m.join(" \xb7 "),f&&(0,d.jsx)("span",{style:{color:oE},children:` \xb7 ${f}`})]})]}),(p||l)&&(0,d.jsx)("div",{style:{marginTop:8},children:a})]})}function c3(e){var t;let r,{session:i,searchTarget:s,onSearchTargetHandled:o,initialScrollPosition:l,onScrollPositionChange:a,sessionRunning:c,newSessionCwd:p,newSessionDraftKey:f,newSessionContextBar:x,newSessionProjectName:v,onChooseNewSessionProject:b,initialNewSessionChoices:y,onNewSessionChoicesChange:w,onAgentEnd:j,onToolEnd:k,onAttentionNeeded:S,onSessionCreated:C,onSessionForked:N,panel:E=!1,onSideSession:$,modelsRefreshKey:M,chatInputRef:I,onBranchDataChange:T,onSystemPromptChange:R,onSystemToolsChange:L,onSystemInfoLoaderChange:A,onDebugSnapshotReaderChange:P,onSessionStatsChange:z,onSessionStatsPanelOpen:W,sessionStatsControl:O,onOpenSettings:F,onContextUsageChange:D,onOpenFile:B,onFilesUploaded:_,onOpenSubagent:H,quoteSelectionEnabled:U=!1,initialPrompt:q,onInitialPromptConsumed:K,soundEnabled:V=!0,onSoundToggle:Z,playDoneSound:J=()=>{},unlockAudio:Y,holdAudio:G}=e,{t:X}=(0,tw.s)(),Q=tT(),ee=!g(i?.relation),et=(0,u.useRef)(J);et.current=J;let en=(0,u.useRef)(V);en.current=V;let er=(0,u.useRef)(!1),[ei]=(0,u.useState)(()=>Symbol("active-chat")),es=(0,u.useCallback)(e=>{e.subagentsActive||ce.finish(ei,e.aborted?"stopped":e.failed?"error":"complete"),!ee||!en.current||e.aborted||e.failed||e.subagentsActive||et.current(),j?.(e)},[ei,ee,j]),eo=(0,u.useRef)(s?null:l??null),[el,ea]=(0,u.useState)(()=>{let e=eo.current;return e&&!e.atBottom?e:null}),[ec,ed]=(0,u.useState)(!1),{loading:eu,error:ep,messages:eh,activeToolResults:em,entryIds:ef,messageKeys:eg,historyCursor:ex,hasEarlierMessages:ev,earlierTurnCount:eb,streamingStore:ey,agentRunning:ew,bashRunning:ej,pendingBash:ek,modelNames:eS,modelList:eC,modelError:eN,missingCwd:eE,modelScopeWarnings:e$,isModelScopeActive:eM,allModelList:eI,modelThinkingLevels:eT,modelThinkingLevelMaps:eR,toolPreset:eL,thinkingLevel:eA,retryInfo:eP,contextUsage:ez,forkingEntryId:eW,isCompacting:eO,compactError:eF,compactResult:eD,displayModel:eB,modelSwitching:e_,sessionStats:eH,slashCommands:eU,slashCommandsLoading:eq,queuedMessages:eK,notices:eV,extensionDialog:eZ,waitingExtensionDialogCount:eJ,extensionCustomUi:eY,waitingExtensionCustomUiCount:eG,extensionStatuses:eX,extensionWidgets:eQ,respondToExtensionUi:e0,sendExtensionCustomInput:e1,setNoticePaused:e2,addNotice:e4,isAutoModelSelection:e8,isAutoThinkingSelection:e3,defaultModel:e6,savedDefaultThinkingLevel:e5,agentPhase:e9,isNew:e7,editEntryId:tn,showScrollToBottom:tr,sessionIdRef:ti,scrollContainerRef:to,lastUserMsgRef:tl,promptAnchorActive:ta,handleSend:tc,handleAbort:td,startSideChat:tu,handleFork:tp,handleEditContent:th,cancelEdit:tm,handleModelChange:tf,handleCompact:tg,handleSteer:tx,handleFollowUp:tv,handlePromptWithStreamingBehavior:tb,handleAbortCompaction:ty,dismissCompactError:tj,handleRecallQueue:tk,handleBuiltinSlashCommand:tS,handleToolPresetChange:tC,handleThinkingLevelChange:tN,handleSetDefaultModel:tE,handleSetDefaultThinkingLevel:t$,loadSlashCommands:tM,loadAllModels:tI,scrollUserMsgToTop:tR,loadContext:tL,activeLeafId:tA,scrollToBottom:tP,scrollToMessage:tz}=function(e){let{session:t,newSessionCwd:r,newSessionDraftKey:i,onAgentEnd:s,onToolEnd:o,onAttentionNeeded:l,onSessionCreated:a,onSessionForked:c,onSideSession:d,modelsRefreshKey:p,onBranchDataChange:h,onSystemPromptChange:m,onSystemToolsChange:f,onSystemInfoLoaderChange:g,onSessionStatsPanelOpen:x,onOpenSettings:v,onDebugSnapshotReaderChange:b}=e,y=null===t&&null!==r,w=y?e.initialNewSessionChoices??null:null,[j,k]=(0,u.useState)(null),[S,C]=(0,u.useState)(!y),[N,E]=(0,u.useState)(null),[$,M]=(0,u.useState)(null),[I,T]=(0,u.useState)([]),[R,L]=(0,u.useState)(new Map),[A,P]=(0,u.useState)([]),[z,W]=(0,u.useState)(()=>new Map),[O,F]=(0,u.useState)(null),[D,B]=(0,u.useState)(!1),[_,H]=(0,u.useState)(0),[U]=(0,u.useState)(cH),q=U.dispatch,[K,V]=(0,u.useState)(!1),[Z,J]=(0,u.useState)(!1),[Y,G]=(0,u.useState)(null),[X,Q]=(0,u.useState)({}),[ee,et]=(0,u.useState)([]),[en,er]=(0,u.useState)(null),[ei,es]=(0,u.useState)(null),[eo,el]=(0,u.useState)(null),[ea,ec]=(0,u.useState)([]),[ed,eu]=(0,u.useState)(!1),[ep,eh]=(0,u.useState)(null),em=(0,u.useRef)(null),[ef,eg]=(0,u.useState)({}),[ex,ev]=(0,u.useState)({}),[eb,ey]=(0,u.useState)(()=>w?.model??null),[ew,ej]=(0,u.useState)(null),[ek,eS]=(0,u.useState)(cy.Q8),[eC,eN]=(0,u.useState)(()=>w?.thinkingLevel??null),[eE,e$]=(0,u.useState)(null),[eM,eI]=(0,u.useState)(null),[eT,eR]=(0,u.useState)(null),[eL,eA]=(0,u.useState)(null),[eP,ez]=(0,u.useState)(null),[eW,eO]=(0,u.useState)(null),[eF,eD]=(0,u.useState)(null),eB=(0,u.useRef)(0),e_=(0,u.useRef)(0),[eH,eU]=(0,u.useState)(null),[eq,eK]=(0,u.useState)(null),[eV,eZ]=(0,u.useState)(null),[eJ,eY]=(0,u.useState)(null),[eG,eX]=(0,u.useState)(null),[eQ,e0]=(0,u.useState)(!1),[e1,e2]=(0,u.useState)(!1),[e4,e8]=(0,u.useState)(!0),[e3,e6]=(0,u.useState)(null),[e5,e9]=(0,u.useState)(null),[e7,tn]=(0,u.useState)(null),[tr,ti]=(0,u.useState)(!1),[to,tl]=(0,u.useState)(!1),[ta,tc]=(0,u.useState)([]),[td,tu]=(0,u.useState)(!1),[tp,th]=(0,u.useReducer)(cX,{visible:[],pending:[]}),[tm,tf]=(0,u.useState)(null),[tg,tx]=(0,u.useState)([]),[tv,tb]=(0,u.useState)([]),[ty,tw]=(0,u.useState)([]),[tj,tk]=(0,u.useState)([]),[tS,tC]=(0,u.useState)({steering:[],followUp:[]}),tN=(0,u.useRef)(null),tE=(0,u.useRef)(null),t$=(0,u.useRef)(0),tM=(0,u.useRef)(!1),tI=(0,u.useRef)(!1),[tT,tR]=(0,u.useState)(0),tL=(0,u.useRef)(null),tA=(0,u.useRef)(()=>{}),tP=(0,u.useRef)({renewStartedAt:null,inFlightSince:null,requests:0,unanswered:0,errors:0,last:null}),tz=(0,u.useRef)({count:0,lastAt:null}),tW=(0,u.useRef)({count:0,lastAt:null,lastReason:null}),tO=(0,u.useRef)(null),tF=(0,u.useRef)(null),tD=(0,u.useRef)(!1),tB=(0,u.useRef)(0),t_=(0,u.useRef)(t?.id??null),tH=(0,u.useRef)(t?.id??null),tU=(0,u.useRef)(!1),tq=(0,u.useRef)(!1),tK=(0,u.useRef)(!1),tV=(0,u.useRef)(!1),tZ=(0,u.useRef)(!1),tJ=(0,u.useRef)(-1),tY=(0,u.useRef)(!1),tG=(0,u.useRef)(0),tX=(0,u.useRef)(null),tQ=(0,u.useRef)(!!e.deferInitialScroll),t0=(0,u.useRef)(null),t1=(0,u.useRef)(!1),t2=(0,u.useRef)(!0),t4=(0,u.useRef)(0),t8=(0,u.useRef)(null),t3=(0,u.useRef)(void 0),t6=(0,u.useRef)(void 0),t5=(0,u.useRef)(null),t9=(0,u.useRef)(null),t7=(0,u.useRef)([]),ne=(0,u.useRef)(null),nt=(0,u.useRef)(0),nn=(0,u.useRef)(!1),nr=(0,u.useRef)(w?.model??null),ni=(0,u.useRef)(w?.thinkingLevel??null),ns=(0,u.useRef)({}),no=(0,u.useRef)(null),nl=(0,u.useRef)(0),na=(0,u.useRef)(null),nc=(0,u.useRef)(null),nd=(0,u.useRef)(null),nu=(0,u.useRef)(0),np=(0,u.useRef)(null),nh=(0,u.useCallback)(()=>{nc.current=nl.current,nd.current?.runId===nl.current&&(nd.current=null)},[]),nm=(0,u.useRef)(!1),nf=(0,u.useRef)(new Map),ng=(0,u.useRef)(!0),nx=(0,u.useRef)(new Map),nv=(0,u.useRef)(null),nb=(0,u.useRef)([]),ny=(0,u.useRef)([]),nw=(0,u.useRef)(null),nj=(0,u.useRef)(null),nk=(0,u.useRef)(!1),nS=(0,u.useRef)(0);tH.current=t?.id??null,nv.current=j,nb.current=I,ny.current=A,nw.current=$,nj.current=O,nk.current=D,nS.current=_,tD.current=e1,tB.current=tg.length+tv.length;let nC=(0,u.useCallback)(e=>ng.current&&t_.current===e&&(tq.current||tM.current||tH.current===e&&!tI.current),[]);tN.current||(tN.current=new cR({createSource:e=>ts("agent",new EventSource(`/api/agent/${encodeURIComponent(e)}/events?holder=${encodeURIComponent(tt())}`),e),onEvent:e=>tX.current?.(e),shouldMaintain:nC,readinessTimeoutMs:6e4,reconnectDelayMs:1e3,staleAfterMs:75e3,onUnexpectedError:e=>{console.error("Failed to maintain the agent event stream:",e)}}));let nN=e.setToolPreset??eS,nE=t?.id;(0,u.useLayoutEffect)(()=>{(nE||y&&!t_.current)&&nN(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:cj();if(!e)return cy.Q8;try{let t=e.getItem(cw);return(0,cy.sn)(t)?t:cy.Q8}catch{return cy.Q8}}())},[nE,y,nN]);let n$=e.onNewSessionChoicesChange;(0,u.useEffect)(()=>{y&&n$?.({model:eb,thinkingLevel:eC})},[y,eb,eC,n$]);let nM=(0,u.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth",t=t5.current;t&&(t.scrollTo({top:t.scrollHeight,behavior:e}),t4.current=t.scrollTop)},[]),nI=eV??eJ??j?.context.model??eG??null,nT=y?eb??ew:nI??(j?.context.messages.length===0?ew:null),nR=cV(j?.context.thinkingLevel&&"off"!==j.context.thinkingLevel?j.context.thinkingLevel:null),nL=y?eC??eE:eT??eL??nR??(j?.context.messages.length===0?eE:null),nA=t?.id??i??void 0,nP=(0,u.useCallback)(e=>{eY(e?.model?{provider:e.model.provider,modelId:e.model.id}:null),e?.thinkingLevel!==void 0&&eA(cV(e.thinkingLevel))},[]),nz=(0,u.useCallback)(e=>{if(!e)return;let t=e,n=new Set;for(;!n.has(t);){n.add(t);let e=nf.current.get(t);if(!e)break;t=e}return t},[]),nW=(0,u.useCallback)((t,n,r)=>{let s=n?.map(e=>{let{data:t,mimeType:n}=e;return{data:t,mimeType:n}}),o=nz(r);if(!ng.current&&!nn.current&&r===i)return;let l=e.chatInputRef?.current;l?l.restoreSubmission(t,s,o):o&&lj(o,t,s)},[i,e.chatInputRef,nz]),[nO,nF]=(0,u.useState)(()=>{let e=t?.id;return e&&!lx(e)&&cZ.delete(e),e&&cZ.get(e)||null}),nD=(0,u.useCallback)(e=>{t?.id&&(e?cZ.set(t.id,e):cZ.delete(t.id),nF(e))},[t?.id]),nB=(0,u.useCallback)((n,r)=>{t?.id&&(e.chatInputRef?.current?.replaceMessage(n),nD(r))},[e.chatInputRef,t?.id,nD]),n_=(0,u.useCallback)(()=>nD(null),[nD]),nH=(0,u.useMemo)(()=>{let e=j?.totalActiveMs,n=eF&&eF.sessionId===j?.sessionId?eF.value:void 0,r=void 0===e&&void 0===n?void 0:Math.max(e??0,n??0);if(tm)return{...tm,totalActiveMs:r,...eW?{contextUsage:eW}:{}};let i=j?.stats,s=function(e,t,n){let r=cS(n);if(!e)return r;let i=cS(t),s=(e,t)=>Math.max(0,e-t),o={input:e.tokens.input+s(r.tokens.input,i.tokens.input),output:e.tokens.output+s(r.tokens.output,i.tokens.output),cacheRead:e.tokens.cacheRead+s(r.tokens.cacheRead,i.tokens.cacheRead),cacheWrite:e.tokens.cacheWrite+s(r.tokens.cacheWrite,i.tokens.cacheWrite),total:0};return o.total=o.input+o.output+o.cacheRead+o.cacheWrite,{userMessages:e.userMessages+s(r.userMessages,i.userMessages),assistantMessages:e.assistantMessages+s(r.assistantMessages,i.assistantMessages),toolCalls:e.toolCalls+s(r.toolCalls,i.toolCalls),toolResults:e.toolResults+s(r.toolResults,i.toolResults),totalMessages:e.totalMessages+s(r.totalMessages,i.totalMessages),tokens:o,cost:e.cost+s(r.cost,i.cost)}}(i,j?.context.messages??[],I);return 0!==s.tokens.total||0!==I.length||i?{sessionFile:j?.filePath||void 0,sessionId:t_.current??t?.id??"",sessionName:t?.name,...s,totalActiveMs:r,...eW?{contextUsage:eW}:{}}:null},[I,tm,eW,eF,j?.sessionId,j?.context.messages,j?.filePath,j?.totalActiveMs,j?.stats,t?.id,t?.name]),nU=(0,u.useCallback)((e,t,n,r)=>{ng.current&&t_.current===t&&nl.current===n&&!(r<=e_.current)&&(e_.current=r,e?.contextUsage!==void 0&&eO(e.contextUsage??null),"number"==typeof e?.totalActiveMs&&eD({sessionId:t,value:e.totalActiveMs}))},[]),nq=(0,u.useCallback)(async e=>{let t=nl.current,n=++eB.current;try{let r=await fetch(cc(e));if(!r.ok)return;let i=await r.json();nU(i.state,e,t,n)}catch{}},[nU]),nK=(0,u.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=r?.force?`force:${e}`:e,s=r?.force?void 0:nx.current.get(i);if(s)return await s;let o=(async()=>{let i=!1,s=++nu.current;try{t&&C(!0);let o=new URLSearchParams({deferThinking:"1",deferMedia:"1",tree:"summary"});r?.force&&o.set("force","1");let l=await fetch(`/api/sessions/${encodeURIComponent(e)}?${o}`);if(404===l.status)return t&&(k(null),M(null),T([]),P([]),F(null),B(!1),H(0),E(null)),cb(e),null;if(!l.ok)throw Error(`HTTP ${l.status}`);let a=await l.json();if(t_.current!==e)return null;(np.current?.seq??0)<s&&(np.current={sid:e,seq:s,messages:a.context.messages,entryIds:a.context.entryIds??[]});let c=cx(e),d=!!(a.snapshotRevision&&c?.revision===a.snapshotRevision&&c.entryIds.length>=(a.context.entryIds??[]).length),u=d?nb.current:a.context.messages;if(k(d?{...a,context:{...a.context,messages:nb.current,entryIds:ny.current,oldestEntryId:nj.current,hasMore:nk.current,turnsBefore:nS.current}}:a),M(a.leafId),d)cv({sessionId:e,revision:a.snapshotRevision,messages:nb.current,entryIds:ny.current,leafId:a.leafId,oldestEntryId:nj.current,hasMore:nk.current,turnsBefore:nS.current,summaryTree:a.tree,thinkingLevel:a.context.thinkingLevel,model:a.context.model,stats:a.stats,totalActiveMs:a.totalActiveMs,loadedEntryIds:ny.current});else{let e={messages:nb.current,entryIds:ny.current},t={messages:u,entryIds:a.context.entryIds??[]};W(n=>(function(e,t){let n=new Set(t.entryIds),r=new Map([...e.aliases].filter(e=>{let[t]=e;return n.has(t)})),i=e.entryIds.length,s=e.entryIds[i-1],o=void 0===s?0:t.entryIds.indexOf(s)+1;if(0===o&&void 0!==s)return r;for(let n=0;i+n<e.messages.length;n++){var l,a;let c=t.entryIds[o+n];if(void 0===c||(l=e.messages[i+n],a=t.messages[o+n],l.role!==a.role||("user"===l.role?cM(l)!==cM(a):"custom"===l.role?l.customType!==a.customType:l.timestamp!==a.timestamp)))break;r.set(c,cI(s,n))}return r})({...e,aliases:n},t)),T(t.messages),P(t.entryIds),F(a.context.oldestEntryId),B(a.context.hasMore),H(a.context.turnsBefore??0)}if(tU.current=void 0!==a.toolNames,nN(void 0!==a.toolNames?(0,cy.YO)(a.toolNames):cy.Q8),eZ(e=>nm.current?e:null),eR(null),E(null),"summary"===a.treeFormat&&a.snapshotRevision&&cv({sessionId:e,revision:a.snapshotRevision,messages:u,entryIds:a.context.entryIds??[],leafId:a.leafId,oldestEntryId:a.context.oldestEntryId,hasMore:a.context.hasMore,turnsBefore:a.context.turnsBefore??0,summaryTree:a.tree,thinkingLevel:a.context.thinkingLevel,model:a.context.model,stats:a.stats,totalActiveMs:a.totalActiveMs,loadedEntryIds:a.context.entryIds??[]}),a.wrapperRebuilt&&(tN.current?.close("rebuilt"),tN.current?.maintain(e)),!n&&a.context.thinkingLevel&&"off"!==a.context.thinkingLevel&&eA(cV(a.context.thinkingLevel)),i=!0,t&&C(!1),!n)return null;try{let t=nl.current,n=++eB.current,r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(t_.current!==e)return null;let s=i.state;return nP(s),s?(nU(s,e,t,n),void 0!==s.systemPrompt&&eU(s.systemPrompt??null),void 0!==s.extensionStatuses&&tw(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tk(s.extensionWidgets??[]),void 0!==s.queuedMessages&&tC(cK(s.queuedMessages)),void 0!==s.autoCompactionEnabled&&e8(s.autoCompactionEnabled??!0)):i.running||tC({steering:[],followUp:[]}),i}catch(e){return console.error("Failed to load agent state:",e),null}}catch(e){return E(String(e)),"error"}finally{t&&!i&&C(!1)}})();return r?.force||nx.current.set(i,o),o.finally(()=>{nx.current.get(i)===o&&nx.current.delete(i)}),await o},[nU,nN,nP]),nV=(0,u.useCallback)(async(e,t,n,r)=>{try{let i=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&i.set("leafId",t),n&&i.set("before",n),r?.tail&&i.set("tail",String(r.tail));let s=`/api/sessions/${encodeURIComponent(e)}/context?${i}`,o=await fetch(s,{signal:r?.signal});if(!o.ok)throw Error(`HTTP ${o.status}`);let l=await o.json();if(t_.current!==e||r?.signal?.aborted||!ng.current)return;return F(l.context.oldestEntryId),B(l.context.hasMore),H(l.context.turnsBefore??0),k(t=>{if(!t||t.sessionId!==e)return t;let r=n?{...t.context,messages:[...l.context.messages,...t.context.messages],entryIds:[...l.context.entryIds,...t.context.entryIds],oldestEntryId:l.context.oldestEntryId,hasMore:l.context.hasMore,turnsBefore:l.context.turnsBefore}:l.context;return{...t,context:r}}),n?(T(e=>[...l.context.messages,...e]),P(e=>[...l.context.entryIds,...e])):(T(l.context.messages),P(l.context.entryIds??[])),l.context}catch(e){r?.signal?.aborted||console.error("Failed to load context:",e)}},[]),nZ=(0,u.useCallback)(async e=>{try{let t=await cd(e,{type:"get_tools"});if(!t||!ng.current||t_.current!==e)return null;let{getPresetFromTools:r}=await Promise.resolve().then(n.bind(n,14755));return nN(tU.current?r(t):cy.Q8),f?.(t),t}catch(e){return console.error("Failed to load tools:",e),null}},[f,nN]),nJ=(0,u.useCallback)(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"(no messages)",s=t_.current;if(y&&r&&s&&!nn.current&&(nn.current=!0,i)){if(i!==s){nf.current.set(i,s);let t=e.chatInputRef?.current;t?t.rekeyDraft(i,s):lk(i,s)}a?.({id:s,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:t,firstMessage:n,transient:!0},i)}},[y,r,i,a,e.chatInputRef]),nY=(0,u.useCallback)(async()=>{if(t_.current||!y||!r)return t_.current;if(t9.current)return t9.current;let e=(async()=>{let e=nr.current,t=ni.current;e&&eX(e);let n=(0,cy.xG)(ek);tU.current=void 0!==n;let i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,type:"ensure_session",...void 0!==n?{toolNames:n}:{},...e?{provider:e.provider,modelId:e.modelId}:{},...t?{thinkingLevel:t}:{}})});if(!i.ok){let e=await i.json().catch(()=>null),t="string"==typeof e?.error?e.error:`HTTP ${i.status}`,n=co(e);throw n?new cl(t,i.status,void 0,void 0,n):Error(t)}let s=await i.json(),o=s.sessionId;return t_.current=o,s.model&&nr.current===e&&(eX(s.model),e||ej(s.model)),s.thinkingLevel&&ni.current===t&&(eA(cV(s.thinkingLevel)),t||e$(cV(s.thinkingLevel))),o})();t9.current=e;try{return await e}finally{t9.current=null}},[y,r,ek]),nG=(0,u.useCallback)(async()=>{let e=t_.current??await nY();if(!e)return;let[t]=await Promise.all([cd(e,{type:"get_state"}),nZ(e)]);ng.current&&t_.current===e&&(nP(t),eU(t.systemPrompt??""))},[nY,nZ,nP]),nX=(0,u.useCallback)(e=>{t7.current=e,tc(e)},[]),nQ=(0,u.useCallback)(()=>{nt.current+=1,ne.current=null,nX([])},[nX]),n0=(0,u.useCallback)(()=>{let e=++nt.current,t=(async()=>{let t=t_.current??await nY();if(!t)return nt.current===e&&nX([]),[];tu(!0);try{let n=await cd(t,{type:"get_commands"}),r=n?.commands??[];return nt.current===e&&nX(r),r}catch(t){return console.error("Failed to load slash commands:",t),nt.current===e&&nX([]),null}finally{nt.current!==e&&ne.current||tu(!1)}})();ne.current=t;let n=()=>{ne.current===t&&(ne.current=null)};return t.then(n,n),t},[nY,nX]),n1=(0,u.useCallback)(async()=>await n0()??[],[n0]),n2=(0,u.useCallback)(async()=>{let e=ne.current,t=t7.current;return!e&&t.length>0?t:await (e??n0()).catch(()=>null)??(t.length>0?t:null)},[n0]),n4=(0,u.useCallback)(()=>{t$.current+=1,tM.current=!1,tF.current=null,tE.current&&(clearTimeout(tE.current),tE.current=null)},[]),n8=(0,u.useCallback)(e=>{tN.current?.close(e)},[]),n3=(0,u.useCallback)(e=>tN.current.ensureConnected(e),[]),n6=(0,u.useCallback)(e=>{tN.current.maintain(e)},[]);(0,u.useEffect)(()=>{let e=t?.id;if(e)return ng.current=!0,tI.current=!1,n6(e),()=>{t_.current===e&&tN.current?.close("deselected")}},[n6,t?.id]);let n5=(0,u.useCallback)(e=>{let t=tL.current;if(t?.sid===e)return t.promise;let n=new AbortController,r=setTimeout(()=>n.abort(),5e3),i={sid:e,promise:Promise.resolve(null)};return i.promise=(async()=>{let t=null,s=null,o=Date.now();tP.current.inFlightSince=o,tP.current.requests+=1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}/lease`,{method:"POST",cache:"no-store",signal:n.signal});return t=r.status,s=r.ok?await r.json():null}catch(e){return n.signal.aborted||e instanceof TypeError?"unanswered":null}finally{clearTimeout(r),tL.current===i&&(tL.current=null);try{let e=tP.current,n=Date.now(),r="unanswered"===s?"unanswered":null===s?"error":"reply";"unanswered"===r&&(e.unanswered+=1),"error"===r&&(e.errors+=1);let i="object"==typeof s&&null!==s?s:null;e.inFlightSince=null,e.last={at:n,durationMs:Math.max(0,n-o),outcome:r,httpStatus:t,reply:i&&{running:!0===i.running,awaitingInput:!0===i.awaitingInput,subagentsActive:!0===i.subagentsActive}}}catch{}}})(),tL.current=i,i.promise},[]),n9=!K&&!Z&&!e1&&0===tg.length&&0===tv.length;(0,u.useEffect)(()=>{let e=t?.id;if(!e||!n9)return;let n=!1,r=null,i=()=>!n&&"hidden"===document.visibilityState&&!tI.current&&t_.current===e&&tH.current===e&&!tq.current&&!tY.current,s=async()=>{if(r=null,tO.current=null,!i())return;let t=await n5(e);if(i()){if(!("unanswered"===t||t&&!cL(t)))return void o();tI.current=!0,tz.current={count:tz.current.count+1,lastAt:Date.now()},n8("released")}},o=()=>{null===r&&(r=setTimeout(()=>void s(),3e4),tO.current=Date.now()+3e4)},l=()=>{"hidden"===document.visibilityState?o():r&&(clearTimeout(r),r=null,tO.current=null)};return"hidden"===document.visibilityState&&o(),document.addEventListener("visibilitychange",l),()=>{n=!0,r&&clearTimeout(r),tO.current=null,document.removeEventListener("visibilitychange",l)}},[n8,n9,tT,n5,t?.id]);let n7=(0,u.useCallback)(async(e,t)=>{let n=t_.current;if(tx(t=>cr(t,e.id)),n)try{await cd(n,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),re=(0,u.useCallback)(async(e,t)=>{let n=t_.current;if(n)try{await cd(n,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rt=(0,u.useCallback)(e=>{let t=e.message.trim();t&&th({type:"add",notice:{id:e.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:t,type:e.type??"info"}})},[]),rn=(0,u.useRef)(e.t);rn.current=e.t;let rr=(0,u.useCallback)((e,t)=>rn.current(e,t),[]),ri=(0,u.useCallback)(()=>{rt({type:"warning",message:rr("chat.sendUnconfirmed")})},[rt,rr]),rs=(0,u.useCallback)(e=>{ng.current&&T(t=>cU(t,e.bubble));let t=cx(e.sid);t?.messages.includes(e.bubble)&&cv({...t,messages:cU(t.messages,e.bubble)})},[]),ro=(0,u.useCallback)((e,t,n)=>{let r=nd.current;if(!r||r.runId!==t||r.sid!==e)return;nd.current=null;let i=np.current,s=i?.sid===e&&i.seq>n?i:null,o=s?null===r.lastEntryIdAtSend?0:s.entryIds.indexOf(r.lastEntryIdAtSend)+1||-1:-1;s&&o>=0&&cq(s.messages.slice(o),r.key)>r.sameTextAfterSend||(nW(r.message,r.images,r.draftKey),s&&rs(r),rt(s&&!r.command&&o===s.entryIds.length?{type:"error",message:rr("chat.sendNotReceived")}:{type:"warning",message:rr("chat.sendUnconfirmed")}))},[rt,rs,nW,rr]),rl=(0,u.useCallback)(()=>{let e=nd.current;if(nd.current=null,e){if(e.parkedDraftKey){let t=e.images?.map(e=>{let{data:t,mimeType:n}=e;return{data:t,mimeType:n}});lj(e.parkedDraftKey,e.message,t)}else nW(e.message,e.images,e.draftKey);rs(e)}},[rs,nW]),ra=(0,u.useRef)(rl);ra.current=rl;let rc=(0,u.useCallback)(t=>{switch(ct(t)&&l?.(t),t.method){case"select":case"confirm":case"input":case"editor":tx(e=>e.some(e=>e.id===t.id)?e:[...e,t]);break;case"notify":rt({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":tw(e=>{let n=e.filter(e=>e.key!==t.statusKey);return void 0!==t.statusText?[...n,{key:t.statusKey,text:t.statusText}]:n});break;case"setWidget":tk(e=>(function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"aboveEditor";if(void 0===n)return e.filter(e=>e.key!==t);let i={key:t,lines:n,placement:r},s=e.findIndex(e=>e.key===t);return -1===s?[...e,i]:e.map((e,t)=>t===s?i:e)})(e,t.widgetKey,t.widgetLines,t.widgetPlacement));break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":tb(e=>{let n;return t.closed?cr(e,t.id):-1===(n=e.findIndex(e=>e.id===t.id))?[...e,t]:e[n]===t?e:e.map((e,r)=>r===n?t:e)})}},[rt,l,e.chatInputRef]),rd=(0,u.useCallback)(()=>{let e=tq.current;return tq.current=!1,V(!1),tn(null),ez(null),L(new Map),q({type:"end"}),e},[q]),ru=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return tJ.current!==e&&(tJ.current=e,s?.({aborted:t,...n?{subagentsActive:n}:{},...tV.current?{failed:!0}:{}}),!0)},[s]),rp=(0,u.useCallback)(e=>{if(tH.current===e)return void n4();n4(),tM.current=!0;let t=t$.current,n=async()=>{if(t===t$.current&&t_.current===e&&tM.current)try{let r=await fetch(cc(e));if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(t!==t$.current||t_.current!==e||!tM.current)return;let s=i.state;if(nP(s),i.running&&s&&(s.isStreaming||s.isPromptRunning)){tM.current=!1,tE.current=null,tF.current=null,tK.current=!!s?.isStreaming,tZ.current=!!s?.isPromptRunning,tq.current=!0,V(!0),tn(e=>a8(e,!!s?.isStreaming));return}if(i.running&&s?.isCompacting){e2(!0),tE.current=setTimeout(()=>void n(),600),tF.current=Date.now()+600;return}tM.current=!1,tE.current=null,tF.current=null,n8("grace_end")}catch{if(t!==t$.current||t_.current!==e||!tM.current)return;tE.current=setTimeout(()=>void n(),600),tF.current=Date.now()+600}};tE.current=setTimeout(()=>void n(),3e4),tF.current=Date.now()+3e4},[n4,n8,nP]),rh=(0,u.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t_.current,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:nl.current;if(nl.current!==t)return;let n=nu.current;try{e&&await nK(e)}finally{if(nl.current!==t)return;e&&ro(e,t,n);let r=tZ.current,i=tK.current;tZ.current=!1,tK.current=!1,na.current=null;let o=rd();r?ru(t):i&&o&&s?.({aborted:!1,...tV.current?{failed:!0}:{}}),e&&rp(e)}},[nK,ru,s,rp,rd,ro]),rm=(0,u.useCallback)(async(e,t)=>{await cY(800);let n=Date.now();for(;tq.current&&Date.now()-n<2e4;){if(void 0!==t&&nl.current!==t)return;try{let n=await fetch(cc(e));if(n.ok){let r=await n.json(),i=r.state;if(nP(i),!r.running||!i||!i.isStreaming&&!i.isPromptRunning)return void await rh(e,t)}}catch{}await cY(600)}},[rh,nP]),rf=(0,u.useCallback)(async e=>{let t=tG.current+1;for(tG.current=t;tY.current&&tG.current===t&&t_.current===e;){await cY(1e3);try{let n=await fetch(cc(e));if(!n.ok)continue;let r=await n.json();if(nP(r.state),r.state?.isBashRunning)continue;if(await nK(e),tG.current!==t||t_.current!==e)return;tY.current=!1,J(!1),G(null);return}catch{}}},[nK,nP]),rg=(0,u.useCallback)(async e=>{if(!tq.current||t_.current!==e)return;let t=nl.current,n=++eB.current;try{let r=await fetch(cc(e));if(!r.ok)return;let i=await r.json();if(t_.current!==e||nl.current!==t)return;let s=i.state;if(nU(s,e,t,n),nP(s),e2(s?.isCompacting??!1),e8(s?.autoCompactionEnabled??!0),tC(cK(s?.queuedMessages)),i.running&&s&&(s.isStreaming||s.isPromptRunning||s.isCompacting)){tK.current=!!s.isStreaming,tZ.current=!!s.isPromptRunning;return}if(!tq.current)return;s&&(void 0!==s.extensionStatuses&&tw(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tk(s.extensionWidgets??[]),fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(t=>{t&&ng.current&&t_.current===e&&t.state?.systemPrompt!==void 0&&eU(t.state.systemPrompt??null)}).catch(()=>{})),await rh(e,t)}catch{}},[nU,rh,nP]);(0,u.useEffect)(()=>{if(!K)return;let e=()=>{let e=t_.current;e&&rg(e)},t=()=>{"visible"===document.visibilityState&&e()},n=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("online",e),()=>{clearInterval(n),document.removeEventListener("visibilitychange",t),window.removeEventListener("online",e)}},[K,rg]),(0,u.useEffect)(()=>{tq.current=K},[K]),tX.current=(0,u.useCallback)(e=>{switch(e.type){case"connected":if(q({type:"end"}),Array.isArray(e.pendingExtensionUiIds)){let t=new Set(e.pendingExtensionUiIds);tx(e=>cn(e,t)),tb(e=>cn(e,t))}!0===e.isStreaming&&(n4(),tK.current=!0,tq.current=!0,V(!0),tn({kind:"waiting_model"})),t_.current&&nq(t_.current);break;case"agent_start":tV.current=!1,nh(),n4(),tK.current=!0,tq.current=!0,V(!0),tn({kind:"waiting_model"}),ez(null),q({type:"start"});break;case"agent_end":if(!tq.current)break;if(tn(null),ez(null),q({type:"end"}),t_.current){let e=t_.current,t=nl.current,n=++eB.current;nK(e),fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{r&&ng.current&&t_.current===e&&nl.current===t&&(nP(r.state),nU(r.state,e,t,n),r.state?.systemPrompt!==void 0&&eU(r.state.systemPrompt??null),r.state?.extensionStatuses!==void 0&&tw(r.state.extensionStatuses??[]),r.state?.extensionWidgets!==void 0&&tk(r.state.extensionWidgets??[]),tC(cK(r.state?.queuedMessages)))}).catch(()=>{})}break;case"agent_settled":{let t=tK.current;if(tK.current=!1,!t||tZ.current)break;let n=t_.current,r=rd();e2(!1),n&&(nK(n),rp(n)),r&&s?.({aborted:!0===e.aborted,...!0===e.subagentsActive?{subagentsActive:!0}:{},...tV.current?{failed:!0}:{}});break}case"prompt_done":{nh();let t=nl.current,n=tZ.current;tZ.current=!1,na.current=null;let r=ru(t,!0===e.aborted,!0===e.subagentsActive);if(!n&&!r)break;let i=t_.current;i&&nK(i),!tK.current&&(rd(),i&&rp(i))}break;case"prompt_error":tV.current=!0,rt({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":rt({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":if(!tq.current||cO(e))break;if("message_start"===e.type){let t=e.message;if(t?.role==="user")break;t?.role==="assistant"?(q({type:"snapshot",message:t}),t.content.length>0&&tn(null)):t&&tn(null)}else{let t=e.assistantMessageEvent;t&&(q({type:"delta",event:t}),"toolcall_start"!==t.type&&"toolcall_delta"!==t.type&&tn(null))}!t1.current&&t2.current&&null===t8.current&&(t8.current=requestAnimationFrame(()=>{t8.current=null,t2.current&&nM("auto")}));break;case"message_end":{if(!tq.current||cO(e))break;let t=e.message;if(t&&"user"===t.role){let e=cs(t),n=cM(e),r=na.current;na.current=null,r&&nh(),T(t=>{let i=t[t.length-1];return r&&i?.role==="user"&&cM(i)===r?r===n?t:[...t.slice(0,-1),e]:[...t,e]})}else if(t){"assistant"===t.role&&(tV.current="error"===t.stopReason);let n=Array.isArray(e.transcriptNotices)?e.transcriptNotices:void 0;if(T(e=>{var r;return[...e,(r=cs(t),n&&0!==n.length?{...r,[oS]:[...n]}:r)]}),"assistant"===t.role){let e=t_.current;e&&nq(e)}}q({type:"end"}),tn({kind:"waiting_model"});break}case"tool_execution_start":{if(cW(e))break;let t=e.toolCallId,n=e.toolName;tn(e=>{let r=e?.kind==="running_tools"?[...e.tools]:[];return r.some(e=>e.id===t)||r.push({id:t,name:n}),{kind:"running_tools",tools:r}});break}case"tool_execution_update":{if(cW(e))break;let t=e.toolCallId,n=e.toolName,r=e.partialResult,i=r?.content;("bash"===n||"powershell"===n||n===op)&&Array.isArray(i)&&L(e=>{let s=new Map(e);return s.set(t,{role:"toolResult",toolCallId:t,toolName:n,content:i,isError:r?.isError,details:r?.details}),s});let s=n===op?function(e){if(!om(e))return null;let{calls:t}=og(e.details),n=t.findLast(e=>"running"===e.status)??t.at(-1);if(!n)return null;let r=n.args.length>120?`${n.args.slice(0,117)}...`:n.args;return r?`${n.name} ${r}`:n.name}(e.partialResult):function(e){if(!cF(e))return null;let t=e.content;if(!Array.isArray(t))return null;let n=t.filter(e=>cF(e)&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").split(/\r?\n/),r="";for(let e=n.length-1;e>=0&&!(r=n[e].trim());e-=1);if(!r)return null;let i=r.replace(/\s+/g," ");return i.length<=500?i:`...${i.slice(-497)}`}(e.partialResult);tn(e=>{let r=e?.kind==="running_tools"?[...e.tools]:[],i=r.find(e=>e.id===t),o={id:t,name:n||i?.name||"tool",progress:s??i?.progress};return{kind:"running_tools",tools:[...r.filter(e=>e.id!==t),o]}});break}case"tool_execution_end":{if(cW(e))break;let t=e.toolCallId;o?.(e.toolName),L(e=>{if(!e.has(t))return e;let n=new Map(e);return n.delete(t),n}),tn(e=>{if(e?.kind!=="running_tools")return e;let n=e.tools.filter(e=>e.id!==t);return 0===n.length?{kind:"waiting_model"}:{kind:"running_tools",tools:n}});break}case"queue_update":nh(),tC({steering:[...e.steering??[]],followUp:[...e.followUp??[]]});break;case"auto_retry_start":ez({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":ez(null);break;case"auto_compaction_start":case"compaction_start":e2(!0),e6(null),e9(null);break;case"auto_compaction_end":case"compaction_end":e2(!1),e.errorMessage?(e6(e.errorMessage),e9(null)):!e.aborted&&(e9(cQ(e.result,e.reason??"auto")),t_.current&&nK(t_.current));break;case"extension_ui_request":rc(e);break;case"extension_ui_closed":tx(t=>cr(t,e.id))}},[rt,nU,n4,q,rc,nK,nh,ru,s,o,nq,rp,nM,rd,nP]);let rx=(0,u.useCallback)(async(e,n)=>{let i=e.trim();if(!i&&!n?.length)return;if(tq.current||tY.current)return void nW(e,n,nA);if(nO&&(nD(null),!await t6.current?.(nO))){nD(nO),nW(e,n,nA);return}let s=!n?.length&&i.startsWith("/");if(!n?.length&&i.startsWith("!")){let t=i.startsWith("!!"),r=(t?i.slice(2):i.slice(1)).trim();return r?void await t3.current?.(r,t):void nW(e,n,nA)}let o=nl.current+1;tV.current=!1,n4(),tZ.current=!0;let l=n?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),a={role:"user",content:l?.length?[...e.trim()?[{type:"text",text:e}]:[],...l]:e,timestamp:Date.now()},c=cM(a),d=ny.current,u=d.at(-1)??null,p=cq(nb.current.slice(d.length),c);T(e=>[...e,a]),na.current=c,nl.current=o,tq.current=!0,V(!0),tn(s?{kind:"running_command"}:{kind:"waiting_model"}),q({type:"start"}),t1.current=!0,ti(!0);let h=()=>{T(e=>{let t=e.lastIndexOf(a);return -1===t?e:[...e.slice(0,t),...e.slice(t+1)]}),na.current=null},m=n?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),f=null,g=!1;try{if(y&&r){let t=t_.current??await t9.current,n=t??await nY();if(!n)throw Error("Unable to create a session for the prompt");f=n,eb&&(eX(eb),t&&await cd(n,{type:"set_model",provider:eb.provider,modelId:eb.modelId})),ng.current&&await n3(n).catch(e=>{if(ng.current)throw e}),g=!0;let r=await cd(n,{type:"prompt",message:e,...m?.length?{images:m}:{}});r?.queued&&h(),nJ(1,e)}else if(t){f=t.id,await n3(t.id),g=!0;let n=await cd(t.id,{type:"prompt",message:e,...m?.length?{images:m}:{}});n?.queued&&h()}else throw Error("No active session for the prompt");el(null),s&&f&&rm(f,o)}catch(t){if(console.error("Failed to send message:",t),!(!g||ca(t))&&f){nc.current!==o&&(nd.current={runId:o,sid:f,message:e,images:n,draftKey:nA,parkedDraftKey:y&&r?lm(r):null,lastEntryIdAtSend:u,sameTextAfterSend:p,bubble:a,key:c,command:s},ng.current||rl()),rm(f,o);return}if(tZ.current=!1,T(e=>cU(e,a)),t instanceof cl&&t.missingCwd?el(t.missingCwd):rt({type:"error",message:t instanceof Error?t.message:String(t)}),nW(e,n,nA),na.current=null,f)return void rg(f);tq.current=!1,n8("send_failed"),V(!1),tn(null),q({type:"end"})}},[y,r,eb,t,nY,n3,nJ,rm,rt,rl,n4,n8,nA,q,rg,nW,nO,nD]);t3.current=(0,u.useCallback)(async(e,n)=>{if(tq.current||tY.current)return;let r=`${n?"!!":"!"}${e}`;tY.current=!0,G({command:e,excludeFromContext:n}),J(!0);try{let i=t_.current??t?.id??await nY();if(!i)throw Error("Unable to create a session for the shell command");await cd(i,{type:"bash",command:e,excludeFromContext:n}),await nK(i),nJ(1,r)}catch(e){console.error("Failed to execute shell command:",e),rt({type:"error",message:e instanceof Error?e.message:String(e)}),nW(r,void 0,nA)}finally{tY.current=!1,G(null),J(!1)}},[rt,nA,nY,nK,nJ,nW,t]);let rv=(0,u.useCallback)(t=>{let n=[...t?.steering??[],...t?.followUp??[]].join("\n\n");t?.images?.length?nW(n,t.images,nA):n&&e.chatInputRef?.current?.prependText(n)},[nA,e.chatInputRef,nW]),rb=(0,u.useCallback)(async()=>{let e=t_.current;if(e){if(tY.current){try{await cd(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{rv(await cd(e,{type:"abort"}))}catch(e){console.error("Failed to abort:",e)}}},[rv]),ry=(0,u.useCallback)(async e=>{if(tY.current)return;let t=t_.current;if(t){eK(e);try{let{cancelled:n,newSessionId:r}=await cd(t,{type:"fork",entryId:e})??{};!n&&r&&c?.(r)}catch(e){console.error("Fork failed:",e),rt({type:"error",message:e instanceof Error?e.message:String(e)})}finally{eK(null)}}},[rt,c]),rw=(0,u.useCallback)(async e=>{if(tY.current)return!1;let t=t_.current;if(!t)return!1;try{let n=await cd(t,{type:"navigate_tree",targetId:e});if(n?.cancelled||t_.current!==t)return!1;return await nK(t),t_.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[nK]);t6.current=rw;let rj=(0,u.useCallback)(async e=>{if(tY.current||tq.current||e1)return;M(e);let t=t_.current;t&&(await nV(t,e),e&&cd(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[e1,nV]),rk=(0,u.useCallback)(async(e,t)=>{if(y){let n={provider:e,modelId:t};nr.current=n,ey(n),eX(n),null===ni.current&&e$(cV(ns.current[`${e}/${t}`])??no.current);let r=t_.current??await t9.current;if(!r)return;try{await cd(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let n=t_.current;if(n&&!nm.current){nm.current=!0,eZ({provider:e,modelId:t}),e0(!0);try{let r=await cd(n,{type:"set_model",provider:e,modelId:t});eY({provider:r.provider,modelId:r.id}),nm.current=!1,await nK(n)}catch(e){console.error("Failed to set model:",e),nm.current=!1,eZ(eV),rt({type:"error",message:`Failed to switch model: ${e instanceof Error?e.message:String(e)}`}),await nK(n,!1,!0)}finally{nm.current=!1,e0(!1)}}},[rt,eV,y,nK,ey]),rS=(0,u.useCallback)(async e=>{let t=t_.current;if(!t||e1)return!0;e2(!0),e6(null),e9(null);try{let n=await cd(t,{type:"compact",...e?{customInstructions:e}:{}});return e9(cQ(n,"manual")),await nK(t,!0)&&nJ(),!0}catch(e){return e6(e instanceof Error?e.message:String(e)),e9(null),!1}finally{e2(!1)}},[e1,nK,nJ]),rC=(0,u.useCallback)(()=>e6(null),[]),rN=(0,u.useCallback)(async e=>{let n,i=r??t?.cwd??"",s=i?`/api/models?cwd=${encodeURIComponent(i)}`:"/api/models",o=null;try{let t=await fetch(s,e?{signal:e}:void 0);if(!t.ok){let e="";try{let n=await t.json();n&&"object"==typeof n&&"error"in n&&"string"==typeof n.error&&(e=n.error),o=co(n)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw e}throw Error(e||`Failed to load models (HTTP ${t.status})`)}n=await t.json(),e?.throwIfAborted()}catch(t){throw e?.aborted||t instanceof DOMException&&"AbortError"===t.name||(es(o),er(o?null:t instanceof Error?t.message:String(t))),t}es(null),Q(n.models),er(n.modelError??null),ec(n.modelScopeWarnings??[]),eu(!!n.isScoped),eh(null),em.current=null,eg(n.thinkingLevels??{}),ev(n.thinkingLevelMaps??{});let l=n.modelList??[];et(l);let a=n.defaultModel?l.find(e=>e.id===n.defaultModel?.modelId&&e.provider===n.defaultModel?.provider):void 0;if(ej(a?{provider:a.provider,modelId:a.id}:null),ns.current=n.thinkingLevelPins??{},no.current=cV(n.defaultThinkingLevel),eI(cV(n.savedDefaultThinkingLevel)),y&&!t_.current){let e=nr.current,t=e&&(0===l.length||!!n.isScoped||l.some(t=>t.provider===e.provider&&t.id===e.modelId));e&&!t&&(nr.current=null,ey(null));let r=t?e:a&&{provider:a.provider,modelId:a.id},i=r&&n.thinkingLevelPins?.[`${r.provider}/${r.modelId}`];null===ni.current&&e$(cV(i)??no.current)}},[y,r,t?.cwd]),rE=(0,u.useCallback)(()=>{if(em.current)return;let e={};em.current=e;let n=r??t?.cwd??"";fetch(`/api/models?scope=all${n?`&cwd=${encodeURIComponent(n)}`:""}`).then(async t=>{if(!t.ok)throw Error(`Failed to load models (HTTP ${t.status})`);let n=await t.json();em.current===e&&(Q(e=>({...n.models,...e})),eg(e=>({...n.thinkingLevels,...e})),ev(e=>({...n.thinkingLevelMaps,...e})),eh(n.modelList??[]))}).catch(t=>{em.current===e&&(em.current=null,rt({type:"error",message:t instanceof Error?t.message:String(t)}))})},[rt,r,t?.cwd]);(0,u.useEffect)(()=>{!ed||!nT||ep||ee.some(e=>e.provider===nT.provider&&e.id===nT.modelId)||rE()},[ep,nT,ed,rE,ee]);let r$=(0,u.useCallback)(async e=>{let n=r??t?.cwd,i=await fetch("/api/models/default",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n?{cwd:n}:{},...e})});if(i.ok)return;let s="";try{let e=await i.json();e&&"object"==typeof e&&"error"in e&&"string"==typeof e.error&&(s=e.error)}catch{}throw Error(s||`HTTP ${i.status}`)},[r,t?.cwd]),rM=(0,u.useCallback)(()=>{rN().catch(()=>{})},[rN]),rI=(0,u.useCallback)(async(e,t)=>{try{await r$({provider:e,modelId:t})}catch(e){rt({type:"error",message:`Failed to save default model: ${e instanceof Error?e.message:String(e)}`});return}rt({type:"success",message:`Default model: ${e}/${t}`}),ej({provider:e,modelId:t}),(nT?.provider!==e||nT?.modelId!==t)&&await rk(e,t),rM()},[rt,nT,rk,rM,r$]),rT=(0,u.useCallback)(async(t,n)=>{let r=e.session?.relation?.kind;if("side"===r||"subagent"===r)return rr(cu[r]);let i=t_.current;if(!i)return rr("sideChat.error.noSession");let s=await cp(i,rr,n);return"error"in s?s.error:(d?.(s.session,t),null)},[d,e.session?.relation?.kind,rr]),rR=(0,u.useCallback)(async t=>{if(!t.startsWith("/"))return{handled:!1};let n=t.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!n)return{handled:!1};let[,r,i=""]=n,s=i.trim(),o=t_.current??await nY(),l=e=>(e.handled&&(e.error?rt({type:"error",message:e.error}):e.action||rt({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":if(!o||e1)return l({handled:!0,error:"No active session to compact"});return rS(s||void 0).then(t=>{!t&&s&&e.chatInputRef?.current?.prependText(`/compact ${s}`)}),l({handled:!0,action:"compact"});case"auto-compact":{if(!o)return l({handled:!0,error:"No active session"});let e=await cd(o,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await cd(o,{type:"set_auto_compaction",enabled:t}),e8(t),l({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!o)return l({handled:!0,error:"No active session to reload"});return await cd(o,{type:"reload"}),await Promise.all([nK(o,!1,!0),nZ(o),n1(),rN()]),l({handled:!0,message:"Reloaded session resources"});case"name":if(!o)return l({handled:!0,error:"No active session to name"});if(!s)return l({handled:!0,error:"Usage: /name <name>"});return await cd(o,{type:"set_session_name",name:s}),await nK(o)&&nJ(),l({handled:!0,message:`Session renamed to ${s}`});case"session":{if(!o)return l({handled:!0,error:"No active session"});if(!x)return l({handled:!0,message:function(e){if(!e)return"No usage yet";let t=cN(e.cost);return[`${e.totalMessages} messages`,`${cC(e.tokens.total)} tokens`,...t?[t]:[]].join(" \xb7 ")}(nH)});let e=await cd(o,{type:"get_session_stats"});return e&&tf(e),x(),l({handled:!0,action:"openSessionStats"})}case"mcp":{if(s||!v)return{handled:!1};let e=await n2();if(!e||!(e.some(lM)||!e.some(e=>"mcp"===e.name)))return{handled:!1};return v("mcp"),l({handled:!0,action:"openSettings"})}case"copy":{if(!o)return l({handled:!0,error:"No active session"});let e=await cd(o,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return l({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),l({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!o)return l({handled:!0,error:"No active session to clone"});if(tq.current||tY.current)return l({handled:!0,error:"Cannot clone while the session is running"});let e=await cd(o,{type:"clone",leafId:$});if(e?.cancelled||!e?.newSessionId)return l({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=l({handled:!0,message:"Cloned current session branch"});return c?.(e.newSessionId),t}case"side":{let e=await rT(s||null);return l(e?{handled:!0,error:e}:{handled:!0,action:"openSideChat"})}default:return{handled:!1}}}catch(e){return l({handled:!0,error:e instanceof Error?e.message:String(e)})}},[$,rt,nY,rS,e1,rN,nK,n1,nZ,nJ,v,c,x,e.chatInputRef,nH,n2,rT]),rL=(0,u.useCallback)(async(e,t,n)=>{let r=t_.current;if(nO)return void nW(e,n,nA);if(!r){nW(e,n,nA),rt({type:"error",message:"No active session for the queued message"});return}let i=n?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await cd(r,{type:"prompt",message:e,streamingBehavior:t,...i?.length?{images:i}:{}})}catch(t){if(console.error("Failed to submit streaming prompt:",t),nW(e,n,nA),t instanceof cl&&t.missingCwd)return void el(t.missingCwd);ca(t)?rt({type:"error",message:t.message}):ri()}},[rt,ri,nA,nO,nW]),rA=(0,u.useCallback)(async(e,t)=>{await rL(e,"steer",t)},[rL]),rP=(0,u.useCallback)(async(e,t,n)=>{await rL(e,t,n)},[rL]),rz=(0,u.useCallback)(async(e,t)=>{await rL(e,"followUp",t)},[rL]),rW=(0,u.useCallback)(async()=>{let e=t_.current;if(e)try{await cd(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),rO=(0,u.useCallback)(async()=>{let e=t_.current;if(e)try{let t=await cd(e,{type:"clear_queue"});tC({steering:[],followUp:[]}),rv(t)}catch(e){console.error("Failed to recall queued messages:",e),rt({type:"error",message:"Failed to recall queued messages"})}},[rt,rv]),rF=(0,u.useCallback)(async e=>{if("auto"===e){ni.current=null,eN(null),eR(null);let e=t_.current;if(e){let t=cV(nT&&ns.current[`${nT.provider}/${nT.modelId}`])??no.current??"medium";try{await cd(e,{type:"set_thinking_level",level:t});let n=await cd(e,{type:"get_state"});ng.current&&t_.current===e&&eA(cV(n?.thinkingLevel)??t)}catch(e){console.error("Failed to restore default thinking level:",e)}}return}y?(ni.current=e,eN(e)):eR(e);let t=t_.current??await t9.current;if(t)try{await cd(t,{type:"set_thinking_level",level:e}),ng.current&&t_.current===t&&(eA(e),eR(null))}catch(e){console.error("Failed to set thinking level:",e),eR(null)}},[y,nT]),rD=(0,u.useCallback)(async e=>{try{await r$({thinkingLevel:e})}catch(e){rt({type:"error",message:`Failed to save default reasoning level: ${e instanceof Error?e.message:String(e)}`});return}rt({type:"success",message:`Default reasoning level: ${e}`}),eI(e),nL!==e&&await rF(e),rM()},[rt,nL,rF,rM,r$]),rB=(0,u.useCallback)(async e=>{let t=(0,cy.xG)(e);!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:cj();if(t)try{t.setItem(cw,e)}catch{}}(e),nN(e);let n=t_.current??await t9.current;if(!n){tU.current=void 0!==t;return}try{let e=await cd(n,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});tU.current=void 0!==t;let r=e?.sessionId??n;(r!==n||e?.recreated)&&(n4(),n8("set_tools"),tx([]),tb([]),t_.current=r,e?.recreated&&tH.current===r&&n6(r)),nQ(),tw([]),tk([]);let[i]=await Promise.all([cd(r,{type:"get_state"}),nZ(r)]);ng.current&&t_.current===r&&(eU(i.systemPrompt??""),nP(i))}catch(e){console.error("Failed to set tools:",e)}},[n4,nQ,n8,nZ,n6,nN,nP]),r_=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,n=t5.current;n&&(null!==t8.current&&(cancelAnimationFrame(t8.current),t8.current=null),tQ.current=!0,t1.current=!1,t2.current=!1,ti(!1),n.scrollTo({top:e.getBoundingClientRect().top-n.getBoundingClientRect().top+n.scrollTop-t,behavior:"instant"}),t4.current=n.scrollTop)},[]),rH=(0,u.useCallback)(()=>{let e=t5.current,t=t0.current;if(!e||!t)return;let n=Math.min(Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-16),Math.max(0,e.scrollHeight-e.clientHeight));null!==t8.current&&(cancelAnimationFrame(t8.current),t8.current=null),t2.current=!0,t4.current=n,e.scrollTo({top:n,behavior:"auto"})},[]),rU=(0,u.useCallback)(()=>{let e=t5.current;if(e){let{scrollTop:t,clientHeight:n,scrollHeight:r}=e,i=tq.current,s=t2.current,o=function(e,t,n,r,i){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:96;return!!cD(n,r,i)||!(n<t)&&(!!(!e&&n>t&&cD(n,r,i,s))||e)}(s,t4.current,t,n,r,i?96:8);t2.current=o,t4.current=t;let l=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return!(n<=t)&&!cD(e,t,n,r)}(t,n,r);tl(e=>e===l?e:l),!s&&o&&i?nM("auto"):o||null===t8.current||(cancelAnimationFrame(t8.current),t8.current=null)}},[nM]),rq=(0,u.useCallback)((e,t)=>{t?.running&&(nZ(e),(t.state?.isStreaming||t.state?.isPromptRunning)&&(tK.current=!!t.state.isStreaming,tZ.current=!!t.state.isPromptRunning,tq.current=!0,V(!0),tn(e=>a8(e,t.state?.isStreaming===!0)),q({type:"resume"}),!t.state.isStreaming&&t.state.isPromptRunning&&rm(e)),t.state?.isBashRunning&&(tY.current=!0,J(!0),rf(e))),t?.state&&(void 0!==t.state.isCompacting&&e2(t.state.isCompacting),void 0!==t.state.systemPrompt&&eU(t.state.systemPrompt??null),void 0!==t.state.extensionStatuses&&tw(t.state.extensionStatuses??[]),void 0!==t.state.extensionWidgets&&tk(t.state.extensionWidgets??[]),void 0!==t.state.queuedMessages&&tC(cK(t.state.queuedMessages)))},[q,nZ,rf,rm]);tA.current=(e,t)=>{!tI.current||(tI.current=!1,tW.current={count:tW.current.count+1,lastAt:Date.now(),lastReason:t},tR(e=>e+1),ng.current&&t_.current===e&&tH.current===e&&(n6(e),nK(e,!1,!0).then(t=>{ng.current&&t_.current===e&&rq(e,t)})))},(0,u.useEffect)(()=>{let e=t?.id;if(!e)return;let n=!1,r=tP.current,i=async()=>{let t=await n5(e);!n&&"hidden"===document.visibilityState&&cL(t)&&tA.current(e,"activity")};i();let s=setInterval(()=>void i(),3e4);r.renewStartedAt=Date.now();let o=()=>{"visible"===document.visibilityState&&(tA.current(e,"visible"),i())};return document.addEventListener("visibilitychange",o),()=>{n=!0,clearInterval(s),r.renewStartedAt=null,document.removeEventListener("visibilitychange",o)}},[n5,t?.id]),(0,u.useEffect)(()=>{if(ng.current=!0,e_.current=eB.current,t){t_.current=t.id;let e=cx(t.id);e&&(k({sessionId:t.id,filePath:"",totalActiveMs:e.totalActiveMs??0,tree:e.summaryTree,leafId:e.leafId,context:{messages:e.messages,entryIds:e.entryIds,oldestEntryId:e.oldestEntryId,hasMore:e.hasMore,turnsBefore:e.turnsBefore,thinkingLevel:e.thinkingLevel,model:e.model},stats:e.stats}),M(e.leafId),T(e.messages),P(e.entryIds),F(e.oldestEntryId),B(e.hasMore),H(e.turnsBefore),E(null),C(!1)),nK(t.id,!e,!0,{force:!0}).then(e=>{rq(t.id,e)})}return()=>{ng.current=!1;let e=y?i:null;e&&queueMicrotask(()=>{ng.current||nn.current||lb(e)});let t=t_.current,n=nv.current;if(t&&n&&n.sessionId===t&&n.snapshotRevision){let e=cx(t),r=ny.current;!e||function(e,t){if(0===t.length)return!0;let n=new Set([...e.entryIds,...e.loadedEntryIds]);return t.every(e=>n.has(e))}(e,r)?cv({sessionId:t,revision:n.snapshotRevision,messages:nb.current,entryIds:ny.current,leafId:nw.current,oldestEntryId:nj.current,hasMore:nk.current,turnsBefore:nS.current,summaryTree:n.tree,thinkingLevel:n.context.thinkingLevel,model:n.context.model,stats:n.stats,totalActiveMs:n.totalActiveMs,loadedEntryIds:ny.current}):cb(t)}ra.current(),null!==t8.current&&(cancelAnimationFrame(t8.current),t8.current=null),tG.current+=1,n4(),n8()}},[]),(0,u.useEffect)(()=>{m?.(eH)},[eH,m]),(0,u.useEffect)(()=>(g?.(nG),()=>g?.(null)),[nG,g]);let rK=(0,u.useCallback)(()=>{let e,t=null;try{t=tN.current?.snapshot?.()??null}catch{t=null}let n=t_.current,r=tP.current,i=tW.current;return{pageId:"string"==typeof(e=globalThis[te])?e:null,sessionId:n,selectedSessionId:tH.current,mounted:ng.current,wantsStream:null!==n&&nC(n),connection:t,released:{active:tI.current,...tz.current},reattached:{...i},hiddenReleaseDueAt:tO.current,hiddenGraceMs:3e4,graceDueAt:tF.current,run:{agentRunning:tq.current,bashRunning:tY.current,compacting:tD.current,dialogs:tB.current},lease:{renewIntervalMs:3e4,renewStartedAt:r.renewStartedAt,inFlightSince:r.inFlightSince,requests:r.requests,unanswered:r.unanswered,errors:r.errors,last:r.last&&{...r.last,reply:r.last.reply&&{...r.last.reply}}}}},[nC]);(0,u.useEffect)(()=>(b?.(rK),()=>b?.(null)),[rK,b]);let rV=K||Z||e1;(0,u.useEffect)(()=>{h&&h(j?.tree??[],$,rj,rV)},[j?.tree,$,rj,rV,h]),(0,u.useEffect)(()=>{let e=t5.current;if(e)return t4.current=e.scrollTop,e.addEventListener("scroll",rU,{passive:!0}),()=>{e.removeEventListener("scroll",rU)}},[I.length,S,rU]),(0,u.useEffect)(()=>{K||ti(!1)},[K]),(0,u.useLayoutEffect)(()=>{I.length>0&&(t1.current?(t1.current=!1,tQ.current=!0,rH()):tQ.current?!tq.current&&t2.current&&nM("auto"):(tQ.current=!0,nM("instant")))},[I.length,K,nM,rH]),(0,u.useEffect)(()=>{let e=new AbortController;return(async()=>{for(let t=0;;t++)try{await rN(e.signal);return}catch(n){if(e.signal.aborted||n instanceof DOMException&&"AbortError"===n.name||t>=cJ.length||(await cY(cJ[t]),e.signal.aborted))return}})(),()=>e.abort()},[rN,p]),(0,u.useEffect)(()=>{if(!e5)return;let e=setTimeout(()=>e9(null),6e3);return()=>clearTimeout(e)},[e5]);let[rZ,rJ]=(0,u.useState)(null),rY=(0,u.useRef)(5e3),rG=(0,u.useRef)(null),rX=(0,u.useRef)(null);(0,u.useEffect)(()=>{if(0===tp.visible.length){rX.current=null;return}let e=tp.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{th({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}let t=tp.visible[0];if(!t||(rX.current!==t.id&&(rX.current=t.id,rY.current=5e3),tp.visible.some(e=>e.id===rZ)))return;rG.current=Date.now();let n=setTimeout(()=>{th({type:"mark_oldest_exiting"})},rY.current);return()=>{clearTimeout(n),null!==rG.current&&(rY.current=Math.max(0,rY.current-(Date.now()-rG.current)),rG.current=null)}},[tp.visible,rZ]),(0,u.useEffect)(()=>{tf(null)},[I.length,eW?.tokens,eW?.percent,eW?.contextWindow]);let rQ=nL??"auto",r0=tg[0]??null,r1=Math.max(0,tg.length-1),r2=tv[0]??null,r4=Math.max(0,tv.length-1),r8=(0,u.useMemo)(()=>(function(e,t,n){let r=e[e.length-1],i=[];for(let s=0;s<t;s++){let t=e[s];i.push(void 0===t?cI(r,s-e.length):n.get(t)??t)}return i})(A,I.length,z),[A,I.length,z]);return{data:j,loading:S,error:N,activeLeafId:$,messages:I,activeToolResults:R,entryIds:A,messageKeys:r8,historyCursor:O,hasEarlierMessages:D,earlierTurnCount:_,streamingStore:U,agentRunning:K,modelNames:X,modelList:ee,modelError:en,missingCwd:eo??ei,modelScopeWarnings:ea,isModelScopeActive:ed,allModelList:ep,modelThinkingLevels:ef,modelThinkingLevelMaps:ex,newSessionModel:eb,toolPreset:ek,thinkingLevel:rQ,retryInfo:eP,contextUsage:eW,systemPrompt:eH,forkingEntryId:eq,isCompacting:e1,compactError:e3,compactResult:e5,currentModel:nI,displayModel:nT,modelSwitching:eQ,sessionStats:nH,autoCompactionEnabled:e4,slashCommands:ta,slashCommandsLoading:td,queuedMessages:tS,notices:tp.visible,extensionDialog:r0,waitingExtensionDialogCount:r1,extensionCustomUi:r2,waitingExtensionCustomUiCount:r4,extensionStatuses:ty,extensionWidgets:tj,respondToExtensionUi:n7,sendExtensionCustomInput:re,isAutoModelSelection:y&&null===eb,isAutoThinkingSelection:y&&null===eC,defaultModel:ew,savedDefaultThinkingLevel:eM,agentPhase:e7,isNew:y,editEntryId:nO,promptAnchorActive:tr,showScrollToBottom:to,sessionIdRef:t_,scrollContainerRef:t5,lastUserMsgRef:t0,pendingScrollToUserRef:t1,initialScrollDoneRef:tQ,handleSend:rx,handleAbort:rb,startSideChat:rT,handleFork:ry,handleNavigate:rw,handleModelChange:rk,handleCompact:rS,handleSteer:rA,handleFollowUp:rz,handlePromptWithStreamingBehavior:rP,handleAbortCompaction:rW,dismissCompactError:rC,handleRecallQueue:rO,handleBuiltinSlashCommand:rR,handleEditContent:nB,cancelEdit:nO?n_:void 0,addNotice:rt,setNoticePaused:rJ,handleToolPresetChange:rB,handleThinkingLevelChange:rF,handleSetDefaultModel:rI,handleSetDefaultThinkingLevel:rD,loadTools:nZ,loadSlashCommands:n1,loadAllModels:rE,setActiveLeafId:M,setData:k,setMessages:T,loadContext:nV,scrollToBottom:nM,scrollUserMsgToTop:rH,scrollToMessage:r_,dispatch:q,setAgentRunning:V,setForkingEntryId:eK,bashRunning:Z,pendingBash:Y,handleAgentEventRef:tX}}({session:i,sessionRunning:c,newSessionCwd:p,newSessionDraftKey:f,initialNewSessionChoices:y,onNewSessionChoicesChange:w,onAgentEnd:es,onToolEnd:k,onAttentionNeeded:S,onSessionCreated:C,onSessionForked:N,onSideSession:$,modelsRefreshKey:M,chatInputRef:I,onBranchDataChange:T,onSystemPromptChange:R,onSystemToolsChange:L,onSystemInfoLoaderChange:A,onSessionStatsPanelOpen:W,onOpenSettings:F,onDebugSnapshotReaderChange:P,t:X,deferInitialScroll:!!el}),tW=c0(ey,c1),tF=c0(ey,c2),tD=(0,u.useCallback)(()=>ey.getState().streamingMessage,[ey]),tB=ew||ej,t_=eZ||eY?"waiting":eO||ej||e9?.kind==="running_tools"||e9?.kind==="running_command"?"working":tB?tW&&tF?"replying":"sending":"idle";(0,u.useEffect)(()=>{ce.update(ei,i?.id??ti.current,t_)},[ei,i?.id,ti,t_]),(0,u.useEffect)(()=>()=>ce.release(ei),[ei]);let tH=(0,u.useRef)(new Set);(0,u.useEffect)(()=>{for(let e of eV)"error"!==e.type||tH.current.has(e.id)||ce.finish(ei,"error");tH.current=new Set(eV.map(e=>e.id))},[ei,eV]),(0,u.useEffect)(()=>{if(ew&&G)return G()},[ew,G]);let[tU,tq]=(0,u.useState)(null),[tK,tV]=(0,u.useState)(!1),[tZ,tJ]=(0,u.useState)(!1),[tY,tG]=(0,u.useState)(null),tX=(0,u.useRef)(null),tQ=(0,u.useRef)(null),t0=(0,u.useCallback)(()=>{tq(null),tV(!1),tG(null)},[]);(0,u.useEffect)(()=>{U||t0()},[U,t0]);let t1=(0,u.useCallback)(()=>{if(!U||tK)return;let e=window.getSelection(),t=e?.rangeCount?e.getRangeAt(0):null,n=ne.current;if(!e||e.isCollapsed||!t||!n||!n.contains(t.commonAncestorContainer))return void tq(null);let r=e.toString().trim();if(!r)return void tq(null);let i=t.getBoundingClientRect();tq({text:r,top:Math.min(window.innerHeight-44,i.bottom+8),left:Math.max(64,Math.min(window.innerWidth-64,i.left+i.width/2))})},[U,tK]);(0,u.useEffect)(()=>{tK&&tU&&tQ.current?.insertIfEmpty(ij(tU.text))},[tK,tU]),(0,u.useLayoutEffect)(()=>{let e=tX.current;if(!e||!tU)return;let t=window.visualViewport,n=()=>{let n=e.getBoundingClientRect(),r=t?.offsetTop??0,i=t?.offsetLeft??0;e.style.top=`${Math.max(r+8,Math.min(tU.top,r+(t?.height??window.innerHeight)-n.height-8))}px`,e.style.left=`${Math.max(i+8,Math.min(tU.left-n.width/2,i+(t?.width??window.innerWidth)-n.width-8))}px`};n();let r=new ResizeObserver(n);return r.observe(e),window.addEventListener("resize",n),t?.addEventListener("resize",n),t?.addEventListener("scroll",n),()=>{r.disconnect(),window.removeEventListener("resize",n),t?.removeEventListener("resize",n),t?.removeEventListener("scroll",n)}},[tU,tK,tY]),(0,u.useEffect)(()=>{if(!tU)return;let e=e=>{tK||tX.current?.contains(e.target)||t0()},t=e=>{"Escape"===e.key&&!e.isComposing&&(e.preventDefault(),e.stopPropagation(),tZ||t0())};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[tU,tK,tZ,t0]);let t2=(0,u.useCallback)(()=>{tU&&(I?.current?.insertQuote(ij(tU.text)),t0())},[I,tU,t0]),t4=(0,u.useCallback)(async e=>{if(!tZ&&e.trim()&&tU){tJ(!0),tG(null);try{let t=await tu(e,tU.text);if(!t)return void t0();tQ.current?.restoreSubmission(e),tG(t)}catch(t){tQ.current?.restoreSubmission(e),tG(t instanceof Error?t.message:String(t))}finally{tJ(!1)}}},[tU,tZ,t0,tu]),t8=(0,u.useCallback)(async e=>{let t;try{t=await tu(e)}catch(e){t=e instanceof Error?e.message:String(e)}t&&(I?.current?.restoreSubmission(e),e4({type:"error",message:t}))},[e4,I,tu]),t3=(0,u.useRef)(!1);(0,u.useEffect)(()=>{eu||ep||!q||t3.current||(t3.current=!0,K?.(),tc(q))},[q,eu,ep,tc,K]),(0,u.useEffect)(()=>{let e=!!eZ&&!er.current;er.current=!!eZ,ee&&e&&et.current()},[ee,eZ]),(0,u.useEffect)(()=>{E||(h=tB?td:null)},[E,tB,td]);let[t6,t5]=(0,u.useState)(50),[t9,t7]=(0,u.useState)(null),ne=(0,u.useRef)(null),nt=(0,u.useRef)(null),nn=(0,u.useRef)(!1),nr=(0,u.useRef)(!1),ni=(0,u.useRef)(el);ni.current=el;let[ns,no]=(0,u.useState)(null),nl=eh[ef.indexOf(ns?.entryId??"")],na=nl?.role==="assistant"?ns?.blockIndex===void 0?nl.content.find(e=>"text"===e.type):nl.content[ns.blockIndex]:void 0,nc=(0,u.useRef)({entryIds:ef,historyCursor:ex,hasEarlierMessages:ev});nc.current={entryIds:ef,historyCursor:ex,hasEarlierMessages:ev};let nd=(0,u.useRef)(null),nu=(0,u.useCallback)(async(e,t,n)=>{nd.current=t;let r=await tL(e,tA,t,n);return r||nd.current!==t||(nd.current=null),r},[tA,tL]);(0,u.useEffect)(()=>{ex!==nd.current&&(nd.current=null)},[ex]),(0,u.useLayoutEffect)(()=>{let e=i?.id,t=to.current,n=ne.current;if(e&&a&&t&&n)return()=>{if(ni.current)return;if(cD(t.scrollTop,t.clientHeight,t.scrollHeight))return void a(e,{atBottom:!0});let r=t.getBoundingClientRect().top,i=function(e,t){let n=e[0];for(let r of e){if(r.top>t)break;n=r}return n?{anchorEntryId:n.entryId,anchorOffset:n.top-t}:null}(Array.from(n.children).flatMap(e=>{if(!(e instanceof HTMLElement)||!e.dataset.entryId)return[];let t=e.getBoundingClientRect();return[{entryId:e.dataset.entryId,top:t.top,bottom:t.bottom}]}),r);i&&a(e,{atBottom:!1,...i,oldestEntryId:nc.current.historyCursor})}},[eu,a,to,i?.id]),(0,u.useEffect)(()=>{s&&ea(null)},[s]),(0,u.useEffect)(()=>{let e=i?.id;if(!el||!e||eu||s||nr.current)return;nr.current=!0;let t=new AbortController;return(async()=>{let n=nc.current;if(n.entryIds.includes(el.anchorEntryId)){t5(e=>Math.max(e,2*n.entryIds.length)),ed(!0);return}nn.current=!0;let r=n.historyCursor,i=n.hasEarlierMessages;try{for(;i&&r&&!t.signal.aborted;){let n=await nu(e,r,{signal:t.signal});if(t.signal.aborted)return;if(!n){tP("instant"),ea(null);return}if(t5(e=>e+Math.max(50,2*n.messages.length)),n.entryIds.includes(el.anchorEntryId))return void ed(!0);if(n.oldestEntryId===el.oldestEntryId)break;r=n.oldestEntryId,i=n.hasMore}t.signal.aborted||(tP("instant"),ea(null))}finally{nn.current=!1}})(),()=>{t.abort(),ea(null)}},[tA,nu,eu,el,tP,s,i?.id]),(0,u.useLayoutEffect)(()=>{let e=ne.current;if(!el||!e||s)return;let t=Array.from(e.children).find(e=>e instanceof HTMLElement&&e.dataset.entryId===el.anchorEntryId);if(t instanceof HTMLElement){tz(t,el.anchorOffset),ea(null);return}ec&&(tP("instant"),ea(null))},[ef,el,ec,tP,tz,s,t6]),(0,u.useEffect)(()=>{if(!s||eu)return;let e=new AbortController;return(async()=>{let t=nc.current,n=t.entryIds.includes(s.entryId);if(!n&&!tB&&t.hasEarlierMessages&&t.historyCursor&&!nn.current){nn.current=!0;let r=to.current;r&&(nt.current=r.scrollHeight-r.scrollTop);let i=await nu(s.sessionId,t.historyCursor,{tail:200,signal:e.signal});nn.current=!1,n=!!i?.entryIds.includes(s.entryId)}e.signal.aborted||(n?(nt.current=null,t5(e=>Math.max(e,(nc.current.entryIds.length+200)*2)),no(s)):o?.(s))})(),()=>e.abort()},[s,eu,tB,nu,o,to]),(0,u.useLayoutEffect)(()=>{if(!ns||ns!==s)return;let e=`[data-entry-id="${CSS.escape(ns.entryId)}"]`,t=to.current?.querySelector(nl?.role==="user"?e:`${e} [data-search-target]`);t&&(tz(t),t.animate([{backgroundColor:"var(--bg-selected)"},{backgroundColor:"transparent"}],{duration:2500})),no(null),o?.(ns)},[ns,s,nl,to,tz,o]),(0,u.useEffect)(()=>{let e=to.current;if(!t9||!e)return;let t=new IntersectionObserver(t=>{if(!t[0]?.isIntersecting||nn.current)return;if(!ev){nt.current=e.scrollHeight-e.scrollTop,t5(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return e+t})(e));return}if(!ex||ex===nd.current)return;let n=i?.id??ti.current;n&&(nn.current=!0,nt.current=e.scrollHeight-e.scrollTop,nu(n,ex).finally(()=>{nn.current=!1}))},{root:e,threshold:0});return t.observe(t9),()=>t.disconnect()},[t9,t6,ex,ev,i,nu,ti,to]),(0,u.useEffect)(()=>{t5(e=>Math.max(e,eh.length))},[eh.length]),(0,u.useEffect)(()=>{if(null==nt.current)return;let e=to.current;if(e){var t;t=e.scrollHeight,e.scrollTop=Math.max(0,t-nt.current),nt.current=null}},[t6,to]);let np=eH?[eH.sessionId,eH.sessionFile??"",eH.sessionName??"",eH.userMessages,eH.assistantMessages,eH.toolCalls,eH.toolResults,eH.totalMessages,eH.tokens.input,eH.tokens.output,eH.tokens.cacheRead,eH.tokens.cacheWrite,eH.tokens.total,eH.cost??0,eH.totalActiveMs??0].join("|"):null,nh=(0,u.useRef)(eH);nh.current=eH,(0,u.useEffect)(()=>{z?.(nh.current)},[np,z]),(0,u.useEffect)(()=>()=>{z?.(null)},[z]);let nm=ez?`${ez.percent??"null"}|${ez.contextWindow}|${ez.tokens??"null"}`:null,nf=(0,u.useRef)(ez);nf.current=ez,(0,u.useEffect)(()=>{D?.(nf.current)},[nm,D]),(0,u.useEffect)(()=>()=>{D?.(null)},[D]);let ng=(0,u.useCallback)(async e=>{let t=i?.cwd??p;if(!t)return void e4({type:"warning",message:X("chat.dropNeedsCwd")});try{var n;let r,{status:i,data:s}=await nA(t,e,"skip");if(200!==i&&207!==i)throw Error(s.error??`HTTP ${i}`);let o=s.uploaded??[],l=s.skipped??[],a=(n=[...o,...l],r=new Set(n),e.filter(e=>r.has(e.name)).map(e=>nL(e.name,!1)).join(""));for(let e of(a&&I?.current?.insertText(a),o.length>0&&(e4({type:"success",message:X("chat.dropUploaded",{count:o.length})}),_?.()),l.length>0&&e4({type:"warning",message:X("chat.dropAlreadyExists",{names:l.join(", ")})}),s.errors??[]))e4({type:"error",message:X("chat.dropFailed",{message:`${e.name}: ${e.error}`})})}catch(e){e4({type:"error",message:X("chat.dropFailed",{message:e instanceof Error?e.message:String(e)})})}},[e4,I,p,_,i?.cwd,X]),nx=(0,u.useCallback)(e=>{let{images:t,files:n,folders:r}=function(e){let t=[],n=[],r=[];for(let i of e)"folder"===i.kind?r.push(i.name):i.file.type.startsWith("image/")?t.push(i.file):n.push(i.file);return{images:t,files:n,folders:r}}(e);t.length>0&&I?.current?.addImages(t),r.length>0&&e4({type:"warning",message:X("chat.dropFoldersUnsupported",{names:r.join(", ")})}),n.length>0&&ng(n)},[e4,I,X,ng]),nv=(0,u.useCallback)(e=>{nx(e.map(e=>({kind:"file",file:e})))},[nx]),{isDragOver:nb,handleDragEnter:ny,handleDragOver:nw,handleDragLeave:nj,handleDrop:nk}=function(e){let[t,n]=(0,u.useState)(!1),r=(0,u.useRef)(0),i=(0,u.useCallback)(e=>{nz(e)&&(e.preventDefault(),r.current+=1,n(!0))},[]),s=(0,u.useCallback)(e=>{nz(e)&&(e.preventDefault(),e.dataTransfer.dropEffect="copy")},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,u.useCallback)(()=>{r.current-=1,r.current<=0&&(r.current=0,n(!1))},[]),handleDrop:(0,u.useCallback)(t=>{t.preventDefault(),r.current=0,n(!1),e(nW(t.dataTransfer))},[e])}}(nx),nS=eh.filter(e=>r4(e)||"assistant"===e.role),nC=(0,u.useMemo)(()=>{let e=new Map(em);for(let t of eh)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[em,eh]),nN=(0,u.useMemo)(()=>new WeakMap,[]),nE=(0,u.useMemo)(()=>{let e=new Set,t=[];for(let n=eh.length-1;n>=0;n-=1){let r=function(e){if("user"!==e.role)return null;if("string"==typeof e.content){let t=e.content.trim();return t.length>0?t:null}let t=e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim();return t.length>0?t:null}(eh[n]);if(!(!r||e.has(r))&&(e.add(r),t.push(r),t.length>=50))break}return t.reverse()},[eh]),n$=(t=nS.length,(r=(0,u.useRef)([])).current=Array(t).fill(null).map((e,t)=>r.current[t]??null),r),nM=(0,u.useCallback)(()=>{t5(e=>Math.max(e,2*eh.length))},[eh.length]),nI=e7&&0===eh.length&&!tW&&!tB;tO(to,!!i?.id||!nI);let nT=i?.cwd??p??void 0,[nR,nP]=X("chat.newSessionProjectWelcome").split("{project}"),nO=(0,u.useRef)(null),nF=(0,u.useRef)(0),nD=(0,u.useRef)(null),nB=(0,u.useRef)(!1),n_=(0,u.useRef)(null);(0,u.useLayoutEffect)(()=>{let e=nO.current;if(!ew||!ta){n_.current=null,nF.current=0,nB.current=!1,e&&(e.style.height="");return}let t=to.current,n=ne.current,r=tl.current;if(!t||!n||!r||!e)return;let i=!1,s=()=>{var s;let o;if(i||to.current!==t||ne.current!==n||tl.current!==r||nO.current!==e)return;let l=t.getBoundingClientRect().top,a=Math.max(0,r.getBoundingClientRect().top-l+t.scrollTop-16),c=e.getBoundingClientRect().top-l+t.scrollTop,d=(s=t.clientHeight,0===(o=Math.max(0,a))?0:Math.max(0,Math.ceil(o+s-Math.max(0,c)))),u=!nB.current;u&&(nB.current=!0),d!==nF.current&&(nF.current=d,e.style.height=d>0?`${d}px`:"",u&&d>0&&tR())};n_.current=s,s();let o="u"<typeof ResizeObserver?null:new ResizeObserver(()=>{i||null!==nD.current||(nD.current=requestAnimationFrame(()=>{nD.current=null,s()}))});return o?.observe(t),o?.observe(n),o?.observe(r),()=>{i=!0,n_.current===s&&(n_.current=null),o?.disconnect(),null!==nD.current&&(cancelAnimationFrame(nD.current),nD.current=null)}},[ew,tl,eh.length,ta,to,tR]);let nH=(0,u.useCallback)(()=>{n_.current?.()},[]);(0,u.useLayoutEffect)(nH,[tW,tF,nH]);let nU=eB?eT[`${eB.provider}:${eB.modelId}`]??null:null,nq=eB?eR[`${eB.provider}:${eB.modelId}`]??null:null,nK=(0,d.jsx)(aH,{ref:I,onSend:tc,onAbort:td,onSideChat:$&&!g(i?.relation)?t8:void 0,onSteer:ew?tx:void 0,onFollowUp:ew?tv:void 0,onPromptWithStreamingBehavior:ew?tb:void 0,isStreaming:tB,model:eB,isAutoModelSelection:e8,modelNames:eS,modelList:eC,modelError:eN,missingCwd:eE,modelScopeWarnings:e$,allModelList:eI,onLoadAllModels:eM?tI:void 0,onModelChange:tf,modelSwitching:e_,defaultModel:e6,onSetDefaultModel:tE,onCompact:i||e7?tg:void 0,onAbortCompaction:ty,isCompacting:eO,compactError:eF,onDismissCompactError:tj,compactResult:eD,toolPreset:eL,onToolPresetChange:i&&!g(i.relation)||e7?tC:void 0,thinkingLevel:eA,isAutoThinkingSelection:e3,onThinkingLevelChange:i||e7?tN:void 0,availableThinkingLevels:nU,thinkingLevelMap:nq,savedDefaultThinkingLevel:e5,onSetDefaultThinkingLevel:i||e7?t$:void 0,retryInfo:eP,queuedMessages:eK,inputHistory:nE,onRecallQueue:tk,slashCommands:eU,slashCommandsLoading:eq,onLoadSlashCommands:tM,onBuiltinCommand:tS,soundEnabled:V,onSoundToggle:Z,onAudioUnlock:Y,draftKey:i?.id??f??void 0,cwd:i?.cwd??p,onAttachFiles:nv,sessionStatsControl:O});return eu?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:X("chat.loadingSession")}):ep?(0,d.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:ep}):(0,d.jsxs)("div",{className:"chat-content relative flex h-full min-w-0 flex-col overflow-hidden",style:{paddingBottom:"env(safe-area-inset-bottom)"},onDragEnter:ny,onDragOver:nw,onDragLeave:nj,onDrop:nk,children:[nb&&(0,d.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,d.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,d.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:`${e}s`}},e))}),(0,d.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,d.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,d.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,d.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,d.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,d.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,d.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,d.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,d.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,d.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,d.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,d.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,d.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),(0,d.jsx)("div",{style:{position:"absolute",top:12,left:36*!Q,right:0,zIndex:40,display:"flex",justifyContent:"flex-end",padding:"0 16px",pointerEvents:"none"},children:(0,d.jsx)(c9,{notices:eV,floating:!0,onPauseChange:e2})}),(0,d.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 overflow-hidden",children:[eZ&&(0,d.jsx)(dt,{request:eZ,waitingCount:eJ,onRespond:e0},eZ.id),eY&&(0,d.jsx)(dn,{request:eY,waitingCount:eG,onInput:e1},eY.id),!nI&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{ref:to,className:"scrollbar-subtle min-w-0 flex-1 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",style:{visibility:el?"hidden":void 0},children:(0,d.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,d.jsxs)("div",{ref:ne,onPointerUp:t1,style:{width:"100%",minWidth:0,maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(()=>{var e;let t,n,r=-1;for(let e=eh.length-1;e>=0;e--)if("user"===eh[e].role){r=e;break}let s=-1;for(let e=eh.length-1;e>=0;e--)if(r4(eh[e])){s=e;break}let o=new Map,l=0;eh.forEach((e,t)=>{(r4(e)||"assistant"===e.role)&&o.set(t,l++)});let a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.messageOverride??eh[e];if("custom"===n.role&&"pi-web:side-boundary"===n.customType)return(0,d.jsx)(c6,{},"side-chat-divider");if(r2(n))return null;let s=!1===t.withNotices?[]:oC(eh[e]),l=r4(n)||"assistant"===n.role,a=o.get(e),c=t.keyPrefix??"message",p=eg[e],h=!1;if("assistant"===n.role){h=!0;for(let t=e+1;t<eh.length;t++){let e=eh[t].role;if("user"===e)break;if("assistant"===e){h=!1;break}}h&&tW&&e===eh.length-1&&(h=!1)}void 0!==t.showTimestamp&&(h=t.showTimestamp);let m=(0,d.jsx)(oz,{message:n,toolResults:nC,modelNames:eS,cwd:nT,onOpenFile:B,onOpenSubagent:H,entryId:ef[e],searchBlock:ef[e]===ns?.entryId?na:void 0,onFork:ej||e7?void 0:tp,forking:eW===ef[e],onEditContent:tB?void 0:th,onCancelEdit:tm,isEditing:tn===ef[e],showTimestamp:h,prevTimestamp:e>0?eh[e-1].timestamp:void 0,sessionId:i?.id??ti.current??void 0,writtenFiles:t.writtenFiles,turnDurationMs:t.turnDurationMs,onCompact:t.recoverTruncation?tg:void 0,isCompacting:t.recoverTruncation?eO:void 0,compactError:t.recoverTruncation?eF:void 0},`${c}-view-${p}`),f=s.length>0?(0,d.jsx)(oI,{notices:s},`${c}-notices-${p}`):null;return l&&void 0!==a?(0,d.jsxs)("div",{"data-entry-id":ef[e],ref:!1===t.attachRef?void 0:t=>{n$.current[a]=t,e===r&&(tl.current=t)},children:[m,f]},`${c}-${p}`):(0,d.jsxs)(u.Fragment,{children:[m,f]},`${c}-${p}`)},c=[];for(let e=0;e<eh.length;){let t,n=r4(eh[e]);if(!n&&0!==e){c.push(a(e)),e+=1;continue}let r=n?e:-1,i=n?e:0,l=e+1;for(;l<eh.length&&!r4(eh[l]);)l+=1;let u=function(e,t,n){for(let i=n-1;i>t;i--){var r;if("assistant"===(r=e[i]).role&&r7(r).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return i}for(let r=n-1;r>t;r--)if(e[r]?.role==="assistant")return r;return -1}(eh,r,l);if(-1===u||(tB||tW)&&l===eh.length&&r===s){for(let e=i;e<l;e++)c.push(a(e));e=l;continue}n&&c.push(a(r));let p=n&&ef[r]?function(e,t,n){let r,i,s,o=iy(e[t]?.timestamp);if(void 0===o)return;let l=!1,a=0;for(let o=t+1;o<n;o++){let t=e[o];if("assistant"===t.role){var c;void 0!==i&&void 0!==s&&(a+=Math.max(0,s-i)),i=s=void 0;let e=function(e){if("assistant"!==e.role)return;let t=iy(e.timestamp),n=iy(e.durationMs);return void 0!==t&&void 0!==n?t+n:void 0}(t);l=void 0!==e,void 0!==e&&(r=Math.max(r??e,e)),void 0!==e&&"assistant"===(c=t).role&&("stop"===c.stopReason||"length"===c.stopReason)&&(i=r)}else if("toolResult"===t.role){let e=iy(t.timestamp);void 0!==e&&(r=Math.max(r??e,e))}else if(void 0!==i){let e=iy(t.timestamp);void 0!==e&&(s=Math.max(s??e,e))}}if(l&&void 0!==r)return Math.max(0,r-o-a)}(eh,r,l):void 0,h=function(e,t){let n=e.get(t);if(n)return n;let{answerBlocks:r}=r7(t),i=r.length>0||r6(t)||r5(t)?ib(t,r):null,s=t.content.indexOf(r[0]),o={answer:i,process:ib(t,t.content.slice(0,s<0?void 0:s),{omitUsage:!!i})};return e.set(t,o),o}(nN,eh[u]),m=h.answer,f=[],g=0,x=0,v=!1;for(let e=r+1;e<=u;e++){let n=eh[e];if("custom"===n.role){if(r2(n))continue;v||=!!(ns&&ns.entryId===ef[e]),g+=1,f.push(a(e,{attachRef:!1,keyPrefix:"process"}));continue}if("assistant"!==n.role)continue;let r=e===u?h.process:n,i=e!==u||!m,s=r3(r);if(0===s.length){let t=i?oC(n):[];t.length>0&&f.push((0,d.jsx)(oI,{notices:t},`process-notices-${eg[e]}`));continue}t??=o.get(e),x+=s.filter(e=>"toolCall"===e.type).length,g+=1,v||=!!(ns&&ef[e]===ns.entryId&&(!na||s.includes(na))),f.push(a(e,{attachRef:!1,keyPrefix:"process",messageOverride:r,showTimestamp:!1,withNotices:i}))}if(0===g)c.push(...f);else if(f.length>0){let e=(m?.content??[]).some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0),n=function(e){let t;for(let n of e)for(let e of oC(n))"cache_miss"===e.kind&&(t??={count:0,missedTokens:0,missedCost:0},t.count+=1,t.missedTokens+=e.missedTokens,t.missedCost+=e.missedCost);return t}(eh.slice(r+1,m?u:u+1));c.push((0,d.jsx)("div",{ref:void 0===t?void 0:e=>{n$.current[t]=e},children:(0,d.jsx)(c8,{messageCount:g,toolCallCount:x,durationMs:p,cacheMisses:n,defaultExpanded:!e,reveal:v,t:X,children:f},e?"answered":"unanswered")},`process-group-${eg[i]}`))}if(m){let e=[];for(let t=r+1;t<=u;t++){let n=eh[t];if(n?.role==="assistant")for(let t of n.content??[])e.push(t)}let t=function(e,t){let n=e.writtenFiles;return n&&n.length===t.length&&n.every((e,n)=>e.filePath===t[n].filePath)?n:(e.writtenFiles=t,t)}(h,function(e,t,n){let r=new Set,i=[];for(let o of e){var s;if("toolCall"!==o.type||!(ia(s=o.toolName)||ic(s))&&!id(o.toolName))continue;let e=t?.get(o.toolCallId);if(e&&!e.isError)for(let t of id(o.toolName)?function(e,t){let n=t?.details,r=function(e,t){let n=new Set;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.preview;if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.files;if(Array.isArray(t))for(let e of t)!(!e||"object"!=typeof e||Array.isArray(e))&&"delete"===e.operation&&"string"==typeof e.filePath&&e.filePath.length>0&&n.add(e.filePath)}}for(let t of iu(e).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let e=(t[1]??"").trim();e&&n.add(e)}return n}(e,n),i=function(e){if(!ip(e)||!ip(e.result))return null;let t=e.result.appliedFiles;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):null}(n);if(i)return i.filter(e=>!r.has(e));if(ih(n))return[];if(n&&"object"==typeof n&&!Array.isArray(n)){let e=iv(ix(n.preview));if(e.length>0)return e}return iv(ig(iu(e)))}(o.input,e):[function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(o.input)]){if(!t)continue;let e=function(e,t){let n;if(!e)return null;let r=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),i=e=>r?e.replace(/\\/g,"/"):e,s=i(e),o=t?i(t).replace(/\/+$/,""):void 0,l=/^[a-zA-Z]:\//.test(s),a=s.startsWith("//");if(l||a)n=s;else if(s.startsWith("/")){let e=o?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??o?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];n=e?`${e}${s}`:s}else{if(!o)return null;n=`${o}/${s}`}return ii(n)}(t,n);e&&(r.has(e)||(r.add(e),i.push({filePath:e})))}}return i}(e,nC,nT));c.push(a(u,{messageOverride:m,writtenFiles:t,turnDurationMs:0===f.length?p:void 0,recoverTruncation:l===eh.length&&!tW&&!r9(m)}))}for(let e=u+1;e<l;e++)c.push(a(e));e=l}let{startIndex:p}=(t=Math.min(Math.max(t6,0),Math.max(e=c.length,0)),{startIndex:n=Math.max(0,e-t),hasMore:n>0}),h=p>0||ev;return(0,d.jsxs)(d.Fragment,{children:[h&&(0,d.jsx)("div",{ref:t7,className:"py-3 text-center text-xs text-text-muted",children:X("chat.loadEarlier")}),c.slice(p)]})})(),tW&&tF&&(0,d.jsx)(c5,{store:ey,onCommit:nH,toolResults:nC,modelNames:eS,cwd:nT,onOpenFile:B,onOpenSubagent:H}),(ew||eO)&&!tF&&(e9||eO)&&(0,d.jsx)("div",{className:"break-words py-2 text-[13px] text-text-muted",children:(0,d.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(n)return r>0?t("chat.compactingQueued",{count:r}):t("chat.compacting");if(e?.kind==="running_tools"){let n=e.tools[e.tools.length-1];if(n?.progress)return`${t("chat.runningNamedTool",{name:n.name})} ${n.progress}`;let r=e.tools.map(e=>e.name);return 0===r.length?t("chat.runningTool"):1===r.length?t("chat.runningNamedTool",{name:r[0]}):r.length<=3?t("chat.runningTools",{names:r.join(", ")}):t("chat.runningToolsMore",{names:r.slice(0,2).join(", "),count:r.length-2})}return e?.kind==="waiting_model"?t("chat.waitingModel"):e?.kind==="running_command"?t("chat.runningCommand"):null}(e9,X,eO,(eK?.steering.length??0)+(eK?.followUp.length??0))})}),ej&&!ek&&(0,d.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,d.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:X("chat.runningCommand")})}),ek&&(0,d.jsx)(oz,{message:{role:"bashExecution",command:ek.command,output:"",excludeFromContext:ek.excludeFromContext},sessionId:i?.id??ti.current??void 0,onOpenSubagent:H}),(0,d.jsx)("div",{ref:nO,"aria-hidden":"true"})]})})}),Q||el?null:(0,d.jsx)(aX,{messages:eh,getStreamingMessage:tD,scrollContainer:to,messageRefs:n$,onRevealHistory:nM,turnsBefore:eb})]})]}),U&&tU&&(0,m.createPortal)((0,d.jsx)("div",{ref:tX,role:tK?"dialog":"toolbar","aria-label":X(tK?"chat.newQuoteChat":"chat.selectionActions"),style:{position:"fixed",top:tU.top,left:tU.left,zIndex:260,display:"flex",flexWrap:"wrap",gap:3,width:tK?"min(420px, calc(100vw - 16px))":void 0,maxWidth:"calc(100vw - 16px)",maxHeight:"calc(var(--app-viewport-height, 100dvh) - 16px)",overflowY:"auto",padding:tK?12:3,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",boxShadow:"0 2px 10px rgba(0,0,0,0.12)"},children:tK?(0,d.jsxs)("fieldset",{disabled:tZ,"aria-busy":tZ,style:{width:"100%",minWidth:0,margin:0,padding:0,border:"none",display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,fontWeight:600},children:X("chat.askInSideChat")}),(0,d.jsx)("button",{type:"button",className:"file-viewer-icon-button",title:X("i18n.close"),"aria-label":X("i18n.close"),disabled:tZ,onClick:t0,style:{border:"none"},children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m6 6 12 12M18 6 6 18"})})})]}),(0,d.jsx)(aH,{ref:tQ,compact:!0,onSend:t4,onAbort:t0,isStreaming:!1}),tY&&(0,d.jsx)("div",{role:"alert",style:{color:"#dc2626",fontSize:12,overflowWrap:"anywhere"},children:tY})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:X("chat.quoteSelection"),"aria-label":X("chat.quoteSelection"),onPointerDown:e=>e.preventDefault(),onClick:t2,style:{width:"auto",height:35,flex:"0 0 auto",gap:5,padding:"0 10px",border:"none",fontSize:12,fontWeight:500},children:[(0,d.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,d.jsx)("path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"}),(0,d.jsx)("path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z"})]}),(0,d.jsx)("span",{children:X("chat.quoteSelection")})]}),$&&!g(i?.relation)&&(0,d.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:X("chat.askInSideChat"),"aria-label":X("chat.askInSideChat"),onPointerDown:e=>e.preventDefault(),onClick:()=>{tV(!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,d.jsx)("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,d.jsx)("path",{d:"M21 12a8 8 0 0 1-8 8H5.5a2 2 0 0 1-1.4-3.4A8 8 0 1 1 21 12z"})}),(0,d.jsx)("span",{children:X("chat.askInSideChat")})]})]})}),document.body),(0,d.jsxs)("div",{className:"relative flex min-h-0 flex-col",children:[!nI&&(0,d.jsx)("div",{style:{position:"absolute",bottom:"100%",left:36*!Q,right:0,display:"flex",justifyContent:"center",paddingBottom:10,pointerEvents:"none",zIndex:20},children:(0,d.jsx)("button",{type:"button",className:`chat-scroll-to-bottom${tr&&!el?" is-visible":""}`,title:X("chat.scrollToLatest"),"aria-label":X("chat.scrollToLatest"),onClick:()=>tP("smooth"),children:(0,d.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,d.jsx)("path",{d:"M12 5v14M5 12l7 7 7-7"})})})}),nI&&(0,d.jsx)("div",{className:"new-session-hero",style:{paddingLeft:Q?16:52,paddingRight:16},children:(0,d.jsxs)("div",{className:"new-session-hero-inner",style:{maxWidth:"var(--chat-content-max-width, 820px)"},children:[(0,d.jsxs)("div",{className:"new-session-intro",children:[(0,d.jsx)(aU,{}),(0,d.jsx)("h1",{className:"new-session-welcome",children:v?(0,d.jsxs)(d.Fragment,{children:[nR,(0,d.jsx)("button",{type:"button",className:"new-session-welcome-project",title:X("workspace.newSessionContext"),onClick:e=>b?.(e.currentTarget),children:v}),nP]}):X("chat.newSessionWelcome")})]}),x]})}),nK,(0,d.jsx)(a4,{statuses:eX,widgets:eQ,onCommand:tc,commandsDisabled:tB})]}),nI&&(0,d.jsx)("div",{className:"min-h-0 flex-1"})]})}function c6(){let{t:e}=(0,tw.s)();return(0,d.jsxs)("div",{role:"separator",className:"my-4 flex items-center gap-3 text-xs",style:{color:"var(--text-dim)"},children:[(0,d.jsx)("span",{className:"h-px flex-1",style:{background:"var(--border)"}}),(0,d.jsx)("span",{children:e("sideChat.divider")}),(0,d.jsx)("span",{className:"h-px flex-1",style:{background:"var(--border)"}})]})}let c5=(0,u.memo)(function(e){let{store:t,onCommit:n,toolResults:r,modelNames:i,cwd:s,onOpenFile:o,onOpenSubagent:l}=e,a=c0(t,c4);return((0,u.useLayoutEffect)(n,[a,n]),a)?(0,d.jsx)(oz,{message:a,toolResults:r,isStreaming:!0,modelNames:i,cwd:s,onOpenFile:o,onOpenSubagent:l}):null});function c9(e){let{notices:t,floating:n=!1,onPauseChange:r}=e;return 0===t.length?null:(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",marginBottom:10*!n},children:t.map((e,i)=>{var s;let o,l,a,c="error"===e.type?"#ef4444":"warning"===e.type?"#d97706":"success"===e.type?"#10b981":"var(--accent)";return(0,d.jsxs)("div",{className:"notice-shelf-item",onMouseEnter:()=>r?.(e.id),onMouseLeave:e=>{e.currentTarget.contains(document.activeElement)||r?.(null)},onFocus:()=>r?.(e.id),onBlur:e=>{e.currentTarget.matches(":hover")||r?.(null)},style:{display:"flex",alignItems:"flex-start",gap:10,minHeight:60,height:"auto",maxHeight:500,pointerEvents:"auto",marginBottom:6*(i!==t.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:n?"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:e.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out backwards",padding:"0 12px"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:c,flexShrink:0,marginTop:25.5}}),(0,d.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:(s=e.message,o=[],l=(e,t)=>{if(!t)return;let n=o[o.length-1];n?.kind===e?n.text+=t:o.push({kind:e,text:t})},a=!1,s.split("\n").forEach((e,t)=>{let n=rQ.test(e);t>0&&l(n&&a?"art":"text","\n"),l(n?"art":"text",e),a=n}),o).map((e,t)=>"art"===e.kind?(0,d.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:e.text},t):e.text)})]},e.id)})})}function c7(e){let{count:t}=e,{t:n}=(0,tw.s)();return t<=0?null:(0,d.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",whiteSpace:"nowrap",flexShrink:0},children:n("chat.extensionMoreWaiting",{count:t})})}function de(e){let{expanded:t}=e;return(0,d.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:t?(0,d.jsx)("path",{d:"M3.5 1v2.5H1M6.5 1v2.5H9M6.5 9v-2.5H9M3.5 9v-2.5H1"}):(0,d.jsx)("path",{d:"M1 3.5V1h2.5M6.5 1H9v2.5M9 6.5V9H6.5M3.5 9H1V6.5"})})}function dt(e){let{request:t,waitingCount:n,onRespond:r}=e,{t:i}=(0,tw.s)(),[s,o]=(0,u.useState)("editor"===t.method?t.prefill??"":""),[l,a]=(0,u.useState)(!1),c=(0,u.useRef)(null),p=(0,u.useRef)(null),[h,m]=(0,u.useState)(null),[f,g]=(0,u.useState)(!1),x=(0,u.useCallback)(()=>g(e=>!e),[]),[v,b]=(0,u.useState)(()=>Date.now()),y=(0,u.useCallback)(e=>e?.focus(),[]),w=function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());return t?.trim()}}(t),j=void 0===t.expiresAt?null:Math.max(0,Math.ceil((t.expiresAt-v)/1e3));(0,u.useLayoutEffect)(()=>{if(l)return;let e=c.current,t=p.current;if(!e||!t)return;let n=!1,r=()=>{if(n)return;let r=t.querySelectorAll("pre, .markdown-table-wrap");if(0===r.length)return;t.classList.add("extension-dialog-measuring");let i=Array.from(r,e=>e.scrollWidth-e.clientWidth);t.classList.remove("extension-dialog-measuring");let s=function(e,t){let n=0;for(let e of t)e>1&&e>n&&(n=e);return 0===n?null:40*Math.ceil((e+n)/40)}(e.offsetWidth,i);null!==s&&m(e=>null!==e&&e>=s?e:s)};r();let i=new MutationObserver(r);return i.observe(t,{childList:!0,subtree:!0,characterData:!0}),document.fonts?.ready.then(r),()=>{n=!0,i.disconnect()}},[l]),(0,u.useEffect)(()=>{if(void 0===t.expiresAt)return;let e=setInterval(()=>b(Date.now()),1e3);return()=>clearInterval(e)},[t.expiresAt]);let k=null!==j&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:i("chat.extensionExpiresIn",{seconds:j})}),S=()=>{"confirm"===t.method?r(t,{confirmed:!0}):r(t,{value:s})};return(0,d.jsx)("div",{onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||(e.preventDefault(),e.stopPropagation(),r(t,{cancelled:!0}))},style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:l?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:l?(0,d.jsxs)("button",{type:"button",onClick:()=>a(!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,d.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:i("chat.extensionPending")}),(0,d.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:t.title}),w&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:w}),(0,d.jsx)(c7,{count:n}),k,(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:i("chat.extensionExpand")})]}):(0,d.jsxs)("div",{ref:c,role:"dialog","aria-label":t.title,style:{pointerEvents:"auto",width:f?"100%":`min(${h??560}px, 100%)`,maxHeight:f?"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,d.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,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.title}),(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,d.jsx)("span",{children:i("chat.extensionRequest")}),(0,d.jsx)(c7,{count:n}),k]})]}),(0,d.jsx)("button",{type:"button",onClick:x,title:i(f?"chat.extensionRestoreSize":"chat.extensionMaximize"),"aria-label":i(f?"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,d.jsx)(de,{expanded:f})}),(0,d.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:i("chat.extensionCollapse"),"aria-label":i("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,d.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,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,d.jsxs)("div",{ref:p,style:{padding:14,flex:"1 1 auto",minHeight:0,overflowY:"auto"},children:["confirm"===t.method&&(0,d.jsx)(s7,{children:t.message}),"select"===t.method&&(0,d.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),n=t.indexOf(e.target);if(n<0)return;e.preventDefault();let r="Home"===e.key?0:"End"===e.key?t.length-1:(n+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[r].focus({preventScroll:!0}),t[r].scrollIntoView({block:"nearest"})},style:{display:"grid",gap:8},children:t.options.map((e,n)=>(0,d.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":e,ref:0===n?y:void 0,onClick:()=>r(t,{value:e}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),r(t,{value:e}))},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,d.jsx)("div",{inert:!0,children:(0,d.jsx)(s7,{children:e})})},e))}),"input"===t.method&&(0,d.jsx)("input",{autoFocus:!0,value:s,placeholder:t.placeholder,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||S()},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"===t.method&&(0,d.jsx)("textarea",{autoFocus:!0,value:s,onChange:e=>o(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&!e.nativeEvent.isComposing&&S()},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,d.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,d.jsx)("button",{autoFocus:"confirm"===t.method||"select"===t.method&&0===t.options.length,onClick:()=>r(t,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:i("chat.cancel")}),"confirm"===t.method?(0,d.jsx)("button",{onClick:S,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:i("chat.confirm")}):"select"!==t.method?(0,d.jsx)("button",{onClick:S,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:i("chat.submit")}):null]})]})})}function dn(e){let{request:t,waitingCount:n,onInput:r}=e,{t:i}=(0,tw.s)(),s=(0,u.useRef)(null),o=(0,u.useRef)(!1),[l,a]=(0,u.useState)(!1),c=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,n=[];for(let r of e){let e=r.replace(rZ,""),i=rJ(e).trimEnd();if(t.test(i))continue;let s=e,o=rX(s);("│"===o||"┃"===o)&&" "===rX(s=rG(s,0))&&(s=rG(s,0));let l=function(e){let t=rY(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(s),a=l>=0?rY(s)[l]?.char:void 0;("│"===a||"┃"===a)&&(s=rG(s,l)),n.push(function(e){let t=e;for(;;){let e=rY(t),n=e[e.length-1];if(!n||""!==n.char.trim())return t;t=t.slice(0,n.start)+t.slice(n.end)}}(s))}for(;n.length>0&&""===rJ(n[0]).trim();)n.shift();for(;n.length>0&&""===rJ(n[n.length-1]).trim();)n.pop();return n.length?n:e}(t.lines),p=c.find(e=>e.trim())?.trim();return(0,u.useEffect)(()=>{l||s.current?.focus()},[l]),(0,d.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:l?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:l?(0,d.jsxs)("button",{type:"button",onClick:()=>a(!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,d.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:i("chat.extensionPending")}),(0,d.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:i("chat.extensionPanel")}),p&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:p}),(0,d.jsx)(c7,{count:n}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:i("chat.extensionExpand")})]}):(0,d.jsxs)("div",{role:"dialog",onClick:e=>{e.target.closest("button")||s.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,d.jsx)("textarea",{ref:s,"aria-label":i("chat.extensionInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:e=>{if(o.current||e.nativeEvent.isComposing)return;let n=function(e){if(e.metaKey||e.ctrlKey&&!e.altKey&&"v"===e.key.toLowerCase())return null;if(e.ctrlKey&&!e.altKey){let t=function(e){if(1!==e.length)return null;let t=e.toUpperCase().charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):"?"===e?"":null}(e.key);if(t)return t}if(e.altKey&&!e.ctrlKey){if("Backspace"===e.key)return"\x1b\x7f";let t=r1[e.key];if(t)return t;if(1===e.key.length)return`\x1b${e.key}`}return"Enter"===e.key?e.shiftKey?"\n":"\r":"Tab"===e.key?e.shiftKey?"\x1b[Z":" ":r0[e.key]??null}(e);n&&(e.preventDefault(),e.stopPropagation(),r(t,n))},onInput:e=>{if(o.current||e.nativeEvent.isComposing)return;let n=e.currentTarget.value;e.currentTarget.value="",n&&r(t,n)},onCompositionStart:()=>{o.current=!0},onCompositionEnd:e=>{o.current=!1;let n=e.currentTarget;queueMicrotask(()=>{let e=n.value;n.value="",e&&r(t,e)})},onPaste:e=>{e.preventDefault();let n=e.clipboardData.getData("text");n&&r(t,`\x1b[200~${n}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,d.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:i("chat.extensionPanel")}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,d.jsx)(c7,{count:n}),(0,d.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:i("chat.extensionCollapse"),"aria-label":i("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,d.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,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}),(0,d.jsx)("button",{onClick:()=>r(t,"\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:i("chat.close")})]})]}),(0,d.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,d.jsx)(a0,{text:c.join("\n")})})]})})}var dr=n(65954),di=n.n(dr);function ds(e){let{usage:t,onClick:n,expanded:r}=e,{t:i}=(0,tw.s)(),s=(0,u.useId)(),o=(0,u.useRef)(null),l=(0,u.useRef)(void 0),[a,c]=(0,u.useState)(null),p=null===t.percent?null:Math.max(0,Math.min(100,t.percent)),h=null===p?i("session.contextUnknown"):i("session.contextPercent",{used:Math.round(p),remaining:100-Math.round(p)}),f=i("session.contextTokens",{used:null===t.tokens?"?":cC(t.tokens),total:cC(t.contextWindow)}),g=()=>{clearTimeout(l.current),c(null)},x=()=>{clearTimeout(l.current);let e=o.current?.getBoundingClientRect();e&&c({left:Math.max(118,Math.min(window.innerWidth-118,e.left+e.width/2)),top:e.top-9})},v=()=>{l.current=setTimeout(g,120)};return(0,u.useEffect)(()=>{let e=()=>c(null),t=t=>{"Escape"===t.key&&(t.stopPropagation(),e())};return a&&(window.addEventListener("resize",e),document.addEventListener("scroll",e,!0),document.addEventListener("keydown",t,!0)),()=>{window.removeEventListener("resize",e),document.removeEventListener("scroll",e,!0),document.removeEventListener("keydown",t,!0)}},[a]),(0,u.useEffect)(()=>()=>clearTimeout(l.current),[]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{ref:o,type:"button",className:di().trigger,"data-context-usage":"","aria-label":`${i("session.contextWindow")}: ${h}; ${f}`,"aria-describedby":a?s:void 0,"aria-expanded":r,"aria-controls":"workspace-usage-page",onPointerEnter:x,onPointerLeave:v,onFocus:x,onBlur:g,onClick:()=>{g(),n()},children:(0,d.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2.5",opacity:"0.2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:null!==p&&p>90?"#ef4444":null!==p&&p>70?"#d9a323":"var(--text-muted)",strokeWidth:"2.5",pathLength:"100",strokeDasharray:`${p??0} 100`,strokeLinecap:"round",transform:"rotate(-90 12 12)"})]})}),a&&(0,m.createPortal)((0,d.jsxs)("div",{id:s,role:"tooltip",className:di().tooltip,style:{left:a.left,top:a.top},onPointerEnter:()=>clearTimeout(l.current),onPointerLeave:v,children:[(0,d.jsx)("span",{children:i("session.contextWindow")}),(0,d.jsx)("strong",{children:h}),(0,d.jsx)("span",{className:di().counts,children:f})]}),document.body)]})}function dl(e){let{sessions:t,runningSessionIds:n,cwd:r,onSelectSession:i,onNewSession:s,onOpenProject:o}=e,{t:l,locale:a}=(0,tw.s)(),[c,p]=(0,u.useState)(8),h=t.filter(e=>!g(e.relation)).sort((e,t)=>Date.parse(t.modified)-Date.parse(e.modified)),m=c<h.length,f=new Intl.DateTimeFormat(a,{month:"short",day:"numeric"});return(0,d.jsx)("div",{className:"home-view",role:"region","aria-label":l("navigation.home"),children:(0,d.jsxs)("div",{className:"home-content",children:[(0,d.jsxs)("div",{className:"home-intro",children:[(0,d.jsx)(aU,{}),(0,d.jsx)("h1",{children:l("chat.newSessionWelcome")}),(0,d.jsx)("p",{children:l("home.description")})]}),(0,d.jsxs)("div",{className:"home-actions",children:[(0,d.jsxs)("button",{type:"button",className:"home-new-task","aria-describedby":"home-project-context",onClick:s,children:[(0,d.jsx)(nd,{size:16}),(0,d.jsx)("span",{children:l("home.newTask")})]}),(0,d.jsxs)("button",{type:"button",className:"home-open-project",onClick:o,children:[(0,d.jsx)(nc,{size:16}),(0,d.jsx)("span",{children:l("home.openProject")})]}),(0,d.jsxs)("span",{id:"home-project-context",className:"home-project-context",title:r??void 0,children:[r&&(0,d.jsx)(nc,{size:14}),(0,d.jsx)("span",{children:r?ew(r)||r:l("home.chooseProject")})]})]}),(0,d.jsxs)("section",{className:"home-recent","aria-labelledby":"home-recent-title",children:[(0,d.jsx)("h2",{id:"home-recent-title",children:l("home.recentTasks")}),h.length?(0,d.jsx)("div",{className:"home-session-list",id:"home-session-list",children:h.slice(0,c).map(e=>{let t=new Date(e.modified),r=e$(e);return(0,d.jsxs)("a",{className:"home-session",href:b(e.id),onClick:t=>{y(t)&&(t.preventDefault(),i(e))},children:[(0,d.jsx)(nv,{size:17}),(0,d.jsxs)("span",{className:"home-session-details",children:[(0,d.jsx)("span",{className:"home-session-title",title:r,children:r}),(0,d.jsx)("span",{className:"home-session-project",title:e.cwd,children:ew(e.projectRoot||e.cwd)||e.cwd})]}),n.has(e.id)?(0,d.jsx)("span",{className:"home-running",children:l("home.running")}):Number.isFinite(t.getTime())&&(0,d.jsx)("time",{dateTime:t.toISOString(),children:f.format(t)})]},e.id)})}):(0,d.jsx)("p",{className:"home-empty",children:l("home.noTasks")}),h.length>8&&(0,d.jsxs)("button",{type:"button",className:"home-recent-more","aria-controls":"home-session-list","data-show-less":!m,onClick:()=>p(m?c+8:8),children:[(0,d.jsx)("span",{children:l(m?"home.showMore":"home.showLess")}),(0,d.jsx)(t9,{size:14})]})]})]})})}function da(e){let{snapshot:t,projectKey:n,onProjectChange:r,onSelectSession:i,onRestore:s,onDelete:o,onDeleteMany:l,onRefresh:a}=e,{t:c,locale:p}=(0,tw.s)(),[h,m]=(0,u.useState)(""),[f,g]=(0,u.useState)(()=>new Map),[x,v]=(0,u.useState)(null),[w,j]=(0,u.useState)(null),[k,S]=(0,u.useState)(!1),[C,N]=(0,u.useState)(null),E=(0,u.useRef)(!1),$=(0,u.useRef)(null),[M,I]=(0,u.useState)(()=>new Map),T=(0,u.useRef)(null),R=(0,u.useRef)(null),L=(0,u.useRef)(!1),A=(0,u.useMemo)(()=>[...new Map(t.entries.map(e=>[e.project.key,e.project])).values()],[t.entries]),P=(0,u.useMemo)(()=>{var e;let r;return e=t.entries,r=h.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean),e.filter(e=>{if(n&&e.project.key!==n)return!1;let t=[e$(e.session),e.session.firstMessage,e.project.name,e.project.root,e.session.cwd].join("\n").toLocaleLowerCase();return r.every(e=>t.includes(e))})},[t.entries,h,n]),z=(0,u.useMemo)(()=>{let e=new Map;for(let t of P){let n=e.get(t.project.key);n?n.push(t):e.set(t.project.key,[t])}return[...e.values()]},[P]),W=(0,u.useMemo)(()=>new Intl.DateTimeFormat(p,{year:"numeric",month:"short",day:"numeric"}),[p]);(0,u.useEffect)(()=>{t.loaded&&n&&!A.some(e=>e.key===n)&&r(null)},[t.loaded,n,A,r]),(0,u.useLayoutEffect)(()=>{(f.size||L.current)&&e7(document,window.matchMedia?.("(pointer: coarse)").matches?R.current:T.current),L.current=!1},[f,t.entries,k]),(0,u.useEffect)(()=>{v(null)},[h,n]),(0,u.useEffect)(()=>{x&&!t.entries.some(e=>e.session.id===x)&&v(null)},[t.entries,x]);let O=async e=>{if(!f.has(e)&&!w&&!E.current){g(t=>new Map(t).set(e,"restore")),I(t=>{let n=new Map(t);return n.delete(e),n});try{if(!await s(e))throw Error("restore failed")}catch{I(t=>new Map(t).set(e,c("archive.restoreFailed")))}finally{L.current=!0,g(t=>{let n=new Map(t);return n.delete(e),n})}}},F=e=>{v(null),R.current?.querySelector(`[data-archived-session="${CSS.escape(e)}"] .archive-workspace-delete`)?.focus()},D=async e=>{if(!f.has(e)&&!w&&!E.current){g(t=>new Map(t).set(e,"delete")),I(t=>{let n=new Map(t);return n.delete(e),n});try{if(!await o(e))throw Error("delete failed");v(null)}catch{I(t=>new Map(t).set(e,c("archive.deleteFailed")))}finally{L.current=!0,g(t=>{let n=new Map(t);return n.delete(e),n})}}},B=()=>{E.current||(j(null),$.current?.focus())},_=async()=>{if(w?.length&&!E.current&&!f.size){E.current=!0,S(!0),N(null);try{if(!await l(w))throw Error("archive clear incomplete")}catch{N(c("archive.clearFailed"))}finally{E.current=!1,L.current=!0,S(!1),j(null)}}};return(0,d.jsxs)("div",{className:"archive-workspace",ref:R,tabIndex:-1,children:[(0,d.jsxs)("div",{className:"archive-workspace-toolbar",children:[(0,d.jsxs)("label",{className:"archive-workspace-search",children:[(0,d.jsx)(nh,{size:16}),(0,d.jsx)("input",{ref:T,type:"search",value:h,onChange:e=>m(e.target.value),maxLength:200,placeholder:c("archive.search"),"aria-label":c("archive.search"),onKeyDown:e=>{"Escape"===e.key&&h&&!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.stopPropagation(),e.preventDefault(),m(""))}})]}),(0,d.jsxs)("select",{value:n??"",onChange:e=>r(e.target.value||null),"aria-label":c("archive.projectFilter"),children:[(0,d.jsx)("option",{value:"",children:c("archive.allProjects")}),A.map(e=>(0,d.jsx)("option",{value:e.key,children:e.name},e.key))]}),(0,d.jsx)("span",{className:"archive-workspace-count",role:"status",children:c("archive.count",{count:P.length})}),(0,d.jsxs)("button",{ref:$,type:"button",className:"archive-workspace-delete archive-workspace-clear",disabled:!t.loaded||!!t.error||!t.entries.length||f.size>0||k,"aria-expanded":null!==w,onClick:()=>{v(null),N(null),j(t.entries.map(e=>e.session.id))},children:[(0,d.jsx)(nn,{size:15}),c(k?"archive.deleting":"archive.clearAll")]})]}),w&&(0,d.jsxs)("div",{className:"archive-delete-confirmation archive-clear-confirmation",role:"group","aria-label":c("archive.clearAll"),onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),e.stopPropagation(),B())},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{children:c("archive.clearTitle",{count:w.length})}),(0,d.jsx)("p",{children:c("archive.clearWarning")})]}),(0,d.jsx)("button",{type:"button",autoFocus:!0,disabled:k,onClick:B,children:c("sidebar.cancel")}),(0,d.jsx)("button",{type:"button",className:"is-danger",disabled:k,onClick:()=>void _(),children:c(k?"archive.deleting":"archive.clearAll")})]}),C&&(0,d.jsxs)("div",{className:"archive-workspace-error",role:"alert",children:[(0,d.jsx)("span",{children:C}),(0,d.jsx)("button",{type:"button",onClick:a,children:c("i18n.refresh")})]}),(0,d.jsx)("p",{className:"archive-workspace-description",children:c("archive.description")}),t.error&&(0,d.jsxs)("div",{className:"archive-workspace-error",role:"alert",children:[c("archive.loadFailed"),(0,d.jsx)("button",{type:"button",onClick:a,children:c("i18n.refresh")})]}),t.loaded?P.length?z.map(e=>(0,d.jsxs)("section",{className:"archive-workspace-group","aria-label":e[0].project.name,children:[(0,d.jsxs)("h2",{title:e[0].project.root,children:[(0,d.jsx)(nc,{size:16}),(0,d.jsx)("span",{children:e[0].project.name}),(0,d.jsx)("small",{children:e.length})]}),e.map(e=>{let{session:t,archivedAt:n}=e,r=e$(t);return(0,d.jsxs)("div",{className:"archive-workspace-row","data-archived-session":t.id,children:[(0,d.jsxs)("a",{href:b(t.id),title:r,onClick:e=>{y(e)&&(e.preventDefault(),i(t))},children:[(0,d.jsx)(t8,{size:16}),(0,d.jsx)("span",{className:"archive-workspace-title",children:r}),(0,d.jsx)("time",{dateTime:new Date(n).toISOString(),title:c("archive.archivedOn"),children:W.format(n)})]}),(0,d.jsxs)("button",{type:"button",className:"archive-workspace-restore",onClick:()=>void O(t.id),disabled:f.has(t.id)||null!==w||k,"aria-label":c("archive.restoreSession",{title:r}),children:[(0,d.jsx)(t3,{size:15}),c("restore"===f.get(t.id)?"archive.restoring":"sidebar.restore")]}),(0,d.jsxs)("button",{type:"button",className:"archive-workspace-delete",disabled:f.has(t.id)||null!==w||k,"aria-label":c("archive.deleteSession",{title:r}),"aria-expanded":x===t.id,onClick:()=>{I(e=>{let n=new Map(e);return n.delete(t.id),n}),v(t.id)},children:[(0,d.jsx)(nn,{size:15}),c("sidebar.delete")]}),x===t.id&&(0,d.jsxs)("div",{className:"archive-delete-confirmation",role:"group","aria-label":c("sidebar.deleteSession",{title:r}),onKeyDown:e=>{"Escape"===e.key&&!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.preventDefault(),e.stopPropagation(),f.has(t.id)||F(t.id))},children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("strong",{children:c("sidebar.deleteSession",{title:r})}),(0,d.jsx)("p",{children:c("archive.deleteWarning")})]}),(0,d.jsx)("button",{type:"button",autoFocus:!0,disabled:f.has(t.id),onClick:()=>F(t.id),children:c("sidebar.cancel")}),(0,d.jsx)("button",{type:"button",className:"is-danger",disabled:f.has(t.id),onClick:()=>void D(t.id),children:c("delete"===f.get(t.id)?"archive.deleting":"sidebar.delete")})]}),M.has(t.id)&&(0,d.jsx)("p",{className:"archive-workspace-row-error",role:"alert",children:M.get(t.id)})]},t.id)})]},e[0].project.key)):!t.error&&(0,d.jsx)("p",{className:"archive-workspace-empty",children:c(t.entries.length?"archive.noMatches":"sidebar.noArchived")}):(0,d.jsx)("p",{className:"archive-workspace-empty",role:"status",children:c("archive.loading")})]})}var dc=n(60680),dd=n.n(dc);function du(e){let{pose:t,dragging:r,hop:i}=e,s=(0,u.useRef)(null),o=(0,u.useRef)(null),l=(0,u.useRef)(null),a=(0,u.useRef)(null),c=(0,u.useRef)(t),p=(0,u.useRef)(r),[h,m]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{let e=!1;n.e(5455).then(n.bind(n,75455)).then(t=>{let{mountPortraitMotion:n}=t;!e&&s.current&&(a.current=n(s.current,()=>{e||m(!0)},()=>{e||m(!1)}),a.current.setPose(c.current))}).catch(()=>{});let t=e=>{if("touch"===e.pointerType||e.buttons||p.current)return;let t=s.current?.getBoundingClientRect();t&&a.current?.setLook((e.clientX-t.left-t.width/2)/320)},r=()=>a.current?.setLook(0);return window.addEventListener("pointermove",t,{passive:!0}),window.addEventListener("blur",r),document.addEventListener("pointerleave",r),()=>{e=!0,a.current?.dispose(),a.current=null,window.removeEventListener("pointermove",t),window.removeEventListener("blur",r),document.removeEventListener("pointerleave",r)}},[]),(0,u.useEffect)(()=>{c.current=t,a.current?.setPose(t)},[t]),(0,u.useEffect)(()=>{if(!i||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let e="happy"===c.current?5:12;return l.current?.cancel(),l.current=o.current?.animate([{transform:"translateY(0)",offset:0,easing:"ease-in"},{transform:"translateY(1.5px)",offset:.16,easing:"cubic-bezier(0.2, 0.7, 0.3, 1)"},{transform:`translateY(-${e}px)`,offset:.43,easing:"cubic-bezier(0.55, 0, 0.85, 0.4)"},{transform:"translateY(1px)",offset:.72,easing:"ease-out"},{transform:"translateY(-1px)",offset:.86,easing:"ease-in-out"},{transform:"translateY(0)",offset:1}],{duration:"happy"===c.current?680:820})??null,()=>{l.current?.cancel()}},[i]),(0,u.useEffect)(()=>{p.current=r,r&&l.current?.cancel()},[r]),(0,u.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{e.matches&&l.current?.cancel()};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,d.jsxs)("span",{ref:o,className:dd().portrait,"data-dragging":r,"data-living":h,children:[(0,d.jsx)("img",{src:`/pets/lin-yue/${t}.webp`,alt:"",width:"280",height:"536",draggable:!1}),(0,d.jsx)("canvas",{ref:s,"aria-hidden":"true"})]})}let dp=Object.fromEntries(["welcome","helloReply","cheerReply","sleepReply","wakeReply","greetRun","received","replying","working","attention","backToYou","greetDone","stopped","failed"].map(e=>[`pet.${e}`,[`pet.${e}`,`pet.${e}2`,`pet.${e}3`]]));function dh(e,t,n,r){let i=n.x+8,s=n.y+8,o=Math.max(i,n.x+n.width-t.width-8),l=Math.max(s,n.y+n.height-t.height-8),a=e=>Math.max(i,Math.min(e,o)),c=e=>Math.max(s,Math.min(e,l)),d=r.map(e=>({...e,x:e.x-12,y:e.y-12,width:e.width+24,height:e.height+24})),u=new Set([a(e.x),i,o]),p=new Set([c(e.y),s,l]);for(let e of d)u.add(a(e.x-t.width)),u.add(a(e.x+e.width)),p.add(c(e.y-t.height)),p.add(c(e.y+e.height));let h={position:{x:i,y:s},overlap:1/0,distance:1/0};for(let n of u)for(let r of p){let i=d.reduce((e,i)=>e+Math.max(0,Math.min(n+t.width,i.x+i.width)-Math.max(n,i.x))*Math.max(0,Math.min(r+t.height,i.y+i.height)-Math.max(r,i.y))*(i.priority??1),0),s=(n-e.x)**2+(r-e.y)**2;(i<h.overlap||i===h.overlap&&s<h.distance)&&(h={position:{x:n,y:r},overlap:i,distance:s})}return h}dp["pet.patReply1"]=["pet.patReply1","pet.patReply2","pet.patReply3","pet.patReply4"];let dm='.chat-input-shell, [role="dialog"]',df=(i=r=[],s=!0,o=new Set,l=(e,t)=>{let n=s?[]:e.filter(e=>!o.has(e.id)&&e.sessionId!==t);for(let t of(s=!1,e))o.add(t.id);for(;o.size>256;)o.delete(o.values().next().value);return n},a=new Set,c=e=>{e.length===i.length&&e.every((e,t)=>e.id===i[t].id)||(i=e,a.forEach(e=>e()))},{subscribe:e=>(a.add(e),()=>{a.delete(e)}),getSnapshot:()=>i,getServerSnapshot:()=>r,reconcile(e,t,n){let r=l(e,t);c((r.length?function(e,t){let n=new Map(e.map(e=>[e.sessionId,e]));for(let e of t)n.delete(e.sessionId),n.set(e.sessionId,e);return[...n.values()].reverse().sort((e,t)=>t.at-e.at).slice(0,12)}(i,r):i).filter(e=>e.sessionId!==t&&!n.includes(e.sessionId)))},dismiss(e){c(i.filter(t=>t.sessionId!==e))}}),dg="pi-yun-pet-preferences",dx={name:"",quiet:!1};function dv(e){return"string"==typeof e?Array.from(e.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/g,"").trim()).slice(0,24).join(""):""}function db(e){try{let t=JSON.parse(e??"null");return{name:dv(t?.name),quiet:t?.quiet===!0}}catch{return{...dx}}}function dy(e){let{preferences:t,defaultName:n,onChange:r}=e,{t:i}=(0,tw.s)(),[s,o]=(0,u.useState)(t.name);return(0,u.useEffect)(()=>o(t.name),[t.name]),(0,d.jsxs)("div",{className:dd().preferences,children:[(0,d.jsxs)("label",{children:[i("pet.customName"),(0,d.jsx)("input",{value:s,placeholder:n,maxLength:48,onChange:e=>o(e.target.value),onBlur:()=>{let e=dv(s);o(e),r({name:e})},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e.currentTarget.blur())}})]}),(0,d.jsxs)("label",{className:dd().quietSwitch,children:[(0,d.jsx)("input",{type:"checkbox",checked:t.quiet,onChange:e=>r({quiet:e.target.checked})}),i("pet.quiet")]}),(0,d.jsx)("p",{children:i("pet.quietHint")}),(0,d.jsx)("p",{children:i("pet.preferencesHint")})]})}let dw="pi-yun-pet-visible",dj="pi-yun-pet-pos",dk="pi-yun-pet-small";function dS(e){let{name:t}=e,n={paw:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("ellipse",{cx:"8.5",cy:"5.5",rx:"1.8",ry:"2.5",transform:"rotate(-15 8.5 5.5)"}),(0,d.jsx)("ellipse",{cx:"15.5",cy:"5.5",rx:"1.8",ry:"2.5",transform:"rotate(15 15.5 5.5)"}),(0,d.jsx)("ellipse",{cx:"4.5",cy:"10",rx:"1.6",ry:"2.2",transform:"rotate(-30 4.5 10)"}),(0,d.jsx)("ellipse",{cx:"19.5",cy:"10",rx:"1.6",ry:"2.2",transform:"rotate(30 19.5 10)"}),(0,d.jsx)("path",{d:"M12 11c-2 0-2.8 2.1-4.7 3.7C4.7 17 6 20.6 9 19.5a8.4 8.4 0 0 1 6 0c3 1.1 4.3-2.5 1.7-4.8C14.8 13.1 14 11 12 11Z"})]}),wave:(0,d.jsx)("path",{d:"m8 12-2-5a1.5 1.5 0 0 1 3-1l2 5-1-7a1.5 1.5 0 0 1 3 0l1 7 1-5a1.5 1.5 0 0 1 3 .5L17 14l2-2c2-2 4 0 2 2l-4 6c-4 4-9 1-11-2l-3-5c-1-2 1-3 2-2l3 3M3 3 1 1m19 3 2-2"}),heart:(0,d.jsx)("path",{d:"M20.8 4.6a5.5 5.5 0 0 0-7.8 0l-1 1-1-1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8Z"}),cheer:(0,d.jsx)("path",{d:"m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9Z"}),moon:(0,d.jsx)("path",{d:"M20.9 13A9 9 0 0 1 11 3.1 9 9 0 1 0 20.9 13Z"}),size:(0,d.jsx)("path",{d:"M9 3H3v6m12 12h6v-6M3 3l6 6m12 12-6-6"}),close:(0,d.jsx)("path",{d:"m6 6 12 12M6 18 18 6"}),more:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"5",cy:"12",r:"1"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,d.jsx)("circle",{cx:"19",cy:"12",r:"1"})]})},r="paw"===t?20:17;return(0,d.jsx)("svg",{width:r,height:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"paw"===t?1.7:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:n[t]})}function dC(e,t){try{window.localStorage.setItem(e,t)}catch{}}function dN(e){let{sessions:t,onSelectSession:n}=e,{t:r}=(0,tw.s)(),[i,s]=(0,u.useState)(!1),[o,l]=(0,u.useState)(null),a=tT(),[c,p]=(0,u.useState)(null),h=c??a,{preferences:f,updatePreferences:g}=function(){let[e,t]=(0,u.useState)(dx);return(0,u.useEffect)(()=>{try{t(db(localStorage.getItem(dg)))}catch{}let e=e=>{if(e.key===dg||null===e.key)try{t(db(localStorage.getItem(dg)))}catch{}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),{preferences:e,updatePreferences:(0,u.useCallback)(e=>{t(t=>{let n=t;try{let e=localStorage.getItem(dg);null!==e&&(n=db(e))}catch{}let r={...n,...e,name:dv(e.name??n.name)};try{localStorage.setItem(dg,JSON.stringify(r))}catch{}return r})},[])}}(),x=f.name||r("pet.name"),v=(0,u.useSyncExternalStore)(ce.subscribe,ce.getSnapshot,ce.getServerSnapshot),{background:w,results:j,dismissResult:k}=function(e,t){let[n,r]=(0,u.useState)({running:[],waiting:[]}),i=(0,u.useSyncExternalStore)(df.subscribe,df.getSnapshot,df.getServerSnapshot),s=(0,u.useRef)(t);s.current=t,(0,u.useEffect)(()=>{let t;if(!e)return;let n=!1,i=new AbortController,o=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],l=async()=>{if(!document.hidden)try{let t=await fetch("/api/agent/running",{cache:"no-store",signal:i.signal});if(t.ok){var e;let i=await t.json();if(n)return;r({running:[...new Set([...o(i.runningSessionIds),...o(i.subagentsActiveSessionIds)])],waiting:o(i.awaitingInputSessionIds)}),df.reconcile((e=i.recentRunResults,Array.isArray(e)?e.filter(e=>null!==e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.sessionId&&("complete"===e.kind||"error"===e.kind||"stopped"===e.kind)&&"number"==typeof e.at&&Number.isFinite(e.at)):[]),s.current,[...o(i.runningSessionIds),...o(i.subagentsActiveSessionIds)])}}catch{}n||(t=setTimeout(l,2500))};return l(),()=>{n=!0,i.abort(),clearTimeout(t)}},[e]);let o=df.dismiss;return(0,u.useEffect)(()=>{t&&o(t)},[t,o]),{background:n,results:i,dismissResult:o}}(i,v.sessionId),S=[...new Set([..."waiting"===v.phase&&v.sessionId?[v.sessionId]:[],...w.waiting.filter(e=>e!==v.sessionId).sort()])],C=S[0]??null,N="idle"!==v.phase?v.sessionId:w.running.find(e=>e!==v.sessionId)??null,E=C?"waiting":"idle"!==v.phase||w.running.some(e=>e!==v.sessionId)?"busy":"idle",[$,M]=(0,u.useState)(!1),[I,T]=(0,u.useState)(null),[R,L]=(0,u.useState)(""),[A,P]=(0,u.useState)(""),[z,W]=(0,u.useState)(null),[O,F]=(0,u.useState)(!1),[D,B]=(0,u.useState)("actions"),[_,H]=(0,u.useState)(!1),[U,q]=(0,u.useState)(0),[K,V]=(0,u.useState)(0),[Z,J]=(0,u.useState)("inside"),Y=(0,u.useRef)(null),G=(0,u.useRef)(null),X=(0,u.useRef)(null),Q=(0,u.useRef)(null),ee=(0,u.useRef)(null),et=(0,u.useRef)(!1),en=(0,u.useRef)("idle"),er=(0,u.useRef)(v.phase),ei=(0,u.useRef)(v.owner),es=(0,u.useRef)(v.sessionId),eo=(0,u.useRef)(void 0),el=(0,u.useRef)(void 0),ea=(0,u.useRef)(void 0),ec=(0,u.useRef)(null),ed=(0,u.useRef)(!1),eu=function(e,t){let{visible:n,preferred:r,small:i,frozen:s,dragging:o}=t,[l,a]=(0,u.useState)(null),c=(0,u.useRef)(l);c.current=l;let d=(0,u.useRef)(null);return(0,u.useLayoutEffect)(()=>{let t=e.current;if(!n||!t||s)return;let i=null,o=new Set,l=()=>{null===i&&(i=requestAnimationFrame(p))},u=new ResizeObserver(l),p=()=>{i=null;let e=t.getBoundingClientRect(),n=t.querySelector("[data-pet-character]")?.getBoundingClientRect(),s=parseFloat(getComputedStyle(t).getPropertyValue("--preferred-figure-height"));if(!n||!Number.isFinite(s))return;d.current??={x:e.x,y:e.y};let l=window.visualViewport,p={x:l?.offsetLeft??0,y:l?.offsetTop??0,width:l?.width??window.innerWidth,height:l?.height??window.innerHeight},h=new Set([t,...document.querySelectorAll(dm)]),m=[];for(let e of h){if(o.has(e)||(u.observe(e),o.add(e)),e===t||e.closest("[data-pet-companion]"))continue;let n=e.getBoundingClientRect();!n.width||!n.height||"hidden"===getComputedStyle(e).visibility||n.bottom<=p.y||n.top>=p.y+p.height||n.right<=p.x||n.left>=p.x+p.width||m.push({x:n.x,y:n.y,width:n.width,height:n.height,priority:e.matches(".chat-input-shell")?3:1})}for(let e of o)h.has(e)||(u.unobserve(e),o.delete(e));let f=e.height-n.height,g=function(e,t,n,r,i,s){let o=dh(e,t,r,i),l=t.width<=r.width-16&&t.height<=r.height-16,a={position:o.position,compact:!1};if(0!==o.overlap||!l){let t=dh(e,n,r,i);(t.overlap<o.overlap||!l)&&(a={position:t.position,compact:!0})}if(s?.compact===a.compact){let o=a.compact?n:t,l=dh(e,o,r,[]).position;if(a.position.x!==l.x||a.position.y!==l.y){let e=dh(s.position,o,r,i);if(0===e.overlap&&0===e.distance)return s}}return a}(r??d.current,{width:e.width,height:f+s},{width:e.width,height:f+Math.min(96,s)},p,m,c.current??void 0);a(e=>e?.compact===g.compact&&1>Math.abs(e.position.x-g.position.x)&&1>Math.abs(e.position.y-g.position.y)?e:g)},h=e=>e instanceof Element&&(e.matches(dm)||e.querySelector(dm)),m=new MutationObserver(e=>{e.some(e=>"attributes"===e.type?e.target instanceof Element&&!t.contains(e.target)&&(e.target.matches(dm)||[...o].some(n=>n!==t&&e.target.contains(n))):[...e.addedNodes,...e.removedNodes].some(h))&&l()});return p(),m.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),window.addEventListener("resize",l),window.addEventListener("scroll",l,!0),window.visualViewport?.addEventListener("resize",l),window.visualViewport?.addEventListener("scroll",l),()=>{null!==i&&cancelAnimationFrame(i),u.disconnect(),m.disconnect(),window.removeEventListener("resize",l),window.removeEventListener("scroll",l,!0),window.visualViewport?.removeEventListener("resize",l),window.visualViewport?.removeEventListener("scroll",l)}},[n,r,i,s,e]),{position:o?r??l?.position:l?.position??r,compact:l?.compact??!1}}(Y,{visible:i,preferred:o,small:h,frozen:_||O,dragging:_}),ep=(0,u.useCallback)(function(e,t){let n,i,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];clearTimeout(el.current),ec.current??=(n=new Map,i=new Map,e=>{let t=dp[e];if(!t)return e;let r=n.get(e);if(!r?.length){r=[...t];for(let e=r.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1));[r[e],r[t]]=[r[t],r[e]]}r[r.length-1]===i.get(e)&&([r[0],r[r.length-1]]=[r[r.length-1],r[0]]),n.set(e,r)}let s=r.pop();return i.set(e,s),s}),ed.current=o&&"pet.failed"!==e;let l=ed.current&&f.quiet?"":r(ec.current(e),{name:x});L(l),P(e),W(s),l&&(el.current=setTimeout(()=>L(""),Math.min(8e3,Math.max(4500,130*Array.from(l).length)))),t&&(clearTimeout(ea.current),T(t),ea.current=setTimeout(()=>T(null),2800))},[r,x,f.quiet]);(0,u.useEffect)(()=>{f.quiet&&ed.current&&(clearTimeout(el.current),L(""),W(null))},[f.quiet]),(0,u.useEffect)(()=>{try{s("1"===localStorage.getItem(dw));let e=localStorage.getItem(dk);("1"===e||"0"===e)&&p("1"===e);let t=JSON.parse(localStorage.getItem(dj)||"null");t&&Number.isFinite(t.x)&&Number.isFinite(t.y)&&l(t)}catch{}},[]),(0,u.useEffect)(()=>{if(!i){eo.current=v.result?.sequence;return}let e=v.owner!==ei.current||v.sessionId!==es.current;(E!==en.current||v.phase!==er.current||e)&&"idle"!==E&&(M(!1),clearTimeout(ea.current),T(null));let t="idle"!==v.phase&&"waiting"!==v.phase&&("idle"===er.current||e);if(!C&&(t||"busy"===E&&"idle"===en.current)?ep("sending"===v.phase?"pet.received":"pet.greetRun",void 0,N,!0):(C||"waiting"===en.current&&"waiting"!==E)&&(clearTimeout(el.current),L(""),W(null)),en.current=E,er.current=v.phase,ei.current=v.owner,es.current=v.sessionId,"idle"===v.phase&&v.result&&v.result.sequence!==eo.current){eo.current=v.result.sequence,M(!1);let e=v.result.kind;C||(V(0),ep("complete"===e?"pet.greetDone":"stopped"===e?"pet.stopped":"pet.failed","complete"===e?"happy":"wave",v.sessionId,!0))}},[i,E,C,N,v.owner,v.sessionId,v.phase,v.result,ep]),(0,u.useEffect)(()=>{if(!i){clearTimeout(el.current),clearTimeout(ea.current),L(""),T(null),F(!1),H(!1),ee.current=null;return}return()=>{clearTimeout(el.current),clearTimeout(ea.current)}},[i]),(0,u.useEffect)(()=>{if(!i||!O)return;let e=e=>{Y.current?.contains(e.target)||F(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),F(!1),X.current?.focus())};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t,!0)}},[i,O]),(0,u.useEffect)(()=>{if(!i||!O)return;let e=()=>{let e=Y.current?.getBoundingClientRect();J(e&&e.left>=240?"left":e&&window.innerWidth-e.right>=240?"right":"inside")};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i,O,eu.position,h]),(0,u.useLayoutEffect)(()=>{let e=G.current;if(!i||!O||!e)return;let t=()=>{let t=window.visualViewport,n=(t?.offsetTop??0)+8,r=(t?.offsetTop??0)+(t?.height??innerHeight)-8;e.style.maxHeight=`${Math.max(80,r-n)}px`,e.style.removeProperty("translate");let i=e.getBoundingClientRect();e.style.translate=`0 ${Math.max(n-i.top,Math.min(0,r-i.bottom))}px`};return t(),window.addEventListener("resize",t),window.visualViewport?.addEventListener("resize",t),()=>{window.removeEventListener("resize",t),window.visualViewport?.removeEventListener("resize",t)}},[i,O,D,Z,x,j.length,S.length,eu.position]);let eh=()=>{M(!1)},em=()=>{s(!1),dC(dw,"0"),Q.current?.focus()},ef=e=>{eh(),F(!1),("cheer"===e||"happy"===e)&&V(e=>e+1),O&&X.current?.focus(),"happy"===e?(q(e=>e+1),ep("pet.patReply1","happy")):ep("wave"===e?"pet.helloReply":"pet.cheerReply",e)},eg=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ee.current;n&&n.pointerId===e.pointerId&&(et.current=t||n.moved,ee.current=null,H(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),n.moved&&o&&dC(dj,JSON.stringify(o)))},ex="idle"===E&&$,ev=ex?"sleep":I??("busy"===E?"thinking":"waiting"===E?"wave":"idle"),eb=ex?"sleeping":E,ey=[...S.map(e=>({sessionId:e,kind:"waiting"})),...j.filter(e=>!S.includes(e.sessionId))],ew=j.find(e=>"error"===e.kind)??(f.quiet?void 0:j[0]),ej=C||R&&"pet.failed"===A?void 0:ew,ek=C??ej?.sessionId??z,eS=t.find(e=>e.id===ek),eC=eS?.name?.trim()||eS?.firstMessage?.trim()||r("pet.unnamedSession",{id:ek?.slice(0,8)??""}),eN=e=>{let n=t.find(t=>t.id===e);return n?.name?.trim()||n?.firstMessage?.trim()||r("pet.unnamedSession",{id:e.slice(0,8)})},eE=(e,r)=>{if(!y(e))return;let i=t.find(e=>e.id===r);i&&(e.preventDefault(),F(!1),k(r),n(i))};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{ref:Q,type:"button",className:"workbench-view-button","data-workspace-action":"pet",onClick:()=>{i?em():(eh(),s(!0),dC(dw,"1"),ep("pet.welcome","wave"))},title:r("pet.title"),"aria-label":r("pet.title"),"aria-pressed":i,children:[(0,d.jsx)(dS,{name:"paw"}),(0,d.jsx)("span",{className:"workbench-settings-label",children:r("pet.title")})]}),i&&(0,m.createPortal)((0,d.jsxs)("div",{ref:Y,className:`${dd().pet} ${h?dd().small:""}`,"data-pet-companion":"","data-pose":ev,"data-status":eb,"data-chat-phase":v.phase,"data-menu-side":Z,"data-compact":eu.compact,"data-dragging":_,style:eu.position?{left:eu.position.x,top:eu.position.y,right:"auto",bottom:"auto"}:void 0,children:[(0,d.jsx)("div",{className:dd().speech,role:"status","aria-live":"polite","aria-atomic":"true",children:(C||ej||R)&&(0,d.jsxs)("div",{className:dd().bubble,"data-pet-notice":C?"waiting":ej?"result":"transient",children:[(0,d.jsx)("span",{children:C?r("pet.attention"):ej?r(`pet.background.${ej.kind}`):R}),S.length>1&&(0,d.jsx)("span",{className:dd().waitingCount,children:r("pet.moreWaiting",{count:S.length-1})}),(ey.length>1||ej)&&(0,d.jsx)("button",{type:"button",className:dd().noticeCount,onClick:()=>{B("notices"),F(!0)},"aria-controls":"pet-actions","aria-expanded":O&&"notices"===D,children:r("pet.noticesCount",{count:ey.length})}),ek&&(0,d.jsxs)("a",{className:dd().sessionLink,href:b(ek),title:eC,onClick:e=>eE(e,ek),children:[(0,d.jsx)("span",{children:eC}),(0,d.jsx)("span",{"aria-hidden":"true",children:" →"}),(0,d.jsx)("span",{className:dd().linkHint,children:r("pet.viewSession")})]})]},C??ej?.id??R)}),(0,d.jsxs)("button",{type:"button","data-pet-character":"",className:dd().character,"aria-label":r("pet.interact",{name:x}),title:r("pet.hint"),onPointerDown:e=>{if(!e.isPrimary||0!==e.button||!Y.current)return;eh();let t=Y.current.getBoundingClientRect();ee.current={pointerId:e.pointerId,x:e.clientX,y:e.clientY,origin:{x:t.left,y:t.top},moved:!1},et.current=!1,e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{let t=ee.current;if(!t||t.pointerId!==e.pointerId||!Y.current)return;let n=e.clientX-t.x,r=e.clientY-t.y;if(!t.moved&&6>Math.hypot(n,r))return;t.moved=!0,H(!0),F(!1);let i=Y.current.getBoundingClientRect();l({x:Math.max(8,Math.min(t.origin.x+n,window.innerWidth-i.width-8)),y:Math.max(8,Math.min(t.origin.y+r,window.innerHeight-i.height-8))})},onPointerUp:e=>eg(e),onPointerCancel:e=>eg(e,!0),onLostPointerCapture:()=>{ee.current=null,H(!1)},onClick:e=>{if(et.current&&0!==e.detail){et.current=!1;return}ef("happy")},onDoubleClick:()=>ef("wave"),onKeyDown:e=>{let t={ArrowLeft:[-16,0],ArrowRight:[16,0],ArrowUp:[0,-16],ArrowDown:[0,16]};if(!t[e.key]||!Y.current)return;e.preventDefault();let n=Y.current.getBoundingClientRect(),[r,i]=t[e.key],s={x:Math.max(8,Math.min(n.left+r,window.innerWidth-n.width-8)),y:Math.max(8,Math.min(n.top+i,window.innerHeight-n.height-8))};l(s),dC(dj,JSON.stringify(s))},children:[(0,d.jsx)("span",{className:dd().ground,"aria-hidden":"true"}),(0,d.jsx)(du,{pose:ev,dragging:_,hop:K}),ex&&(0,d.jsxs)("span",{className:dd().zzz,"aria-hidden":"true",children:["z ",(0,d.jsx)("span",{children:"z"})," Z"]}),U>0&&(0,d.jsx)("span",{className:dd().hearts,"aria-hidden":"true",children:[0,1,2].map(e=>(0,d.jsx)("span",{style:{"--i":e},children:(0,d.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:(0,d.jsx)("path",{d:"M12 21 3.5 12.7C-2 7.3 5.8-.5 11.2 4.9l.8.8.8-.8C18.2-.5 26 7.3 20.5 12.7Z"})})},e))},U)]}),(0,d.jsxs)("button",{ref:X,type:"button",className:dd().more,"aria-label":r("pet.actions"),title:r("pet.actions"),"aria-expanded":O,"aria-controls":"pet-actions",onClick:()=>{let e=Y.current?.getBoundingClientRect();J(e&&e.left>=240?"left":e&&window.innerWidth-e.right>=240?"right":"inside"),F(e=>!e)},children:[(0,d.jsx)(dS,{name:"more"}),ey.length>0&&(0,d.jsx)("span",{className:dd().badge,"aria-hidden":"true",children:ey.length})]}),O&&(0,d.jsxs)("div",{ref:G,id:"pet-actions",className:dd().actions,role:"group","aria-label":r("pet.actions"),children:[(0,d.jsxs)("div",{className:dd().actionHeading,children:[(0,d.jsxs)("div",{children:[r("pet.menuTitle",{name:x}),(0,d.jsx)("span",{children:r("pet.menuHint")})]}),(0,d.jsx)("button",{type:"button","aria-label":r("pet.closeActions"),onClick:()=>{F(!1),X.current?.focus()},children:(0,d.jsx)(dS,{name:"close"})})]}),(0,d.jsx)("div",{className:dd().menuTabs,role:"group","aria-label":r("pet.menuSections"),children:["actions","notices","preferences"].map(e=>(0,d.jsxs)("button",{type:"button","aria-pressed":D===e,onClick:()=>B(e),children:[r(`pet.tab.${e}`),"notices"===e&&ey.length>0?` (${ey.length})`:""]},e))}),"notices"===D&&(0,d.jsxs)("div",{className:dd().notices,children:[0===ey.length&&(0,d.jsx)("p",{children:r("pet.noNotices")}),ey.map(e=>(0,d.jsxs)("div",{className:dd().noticeRow,children:[(0,d.jsxs)("a",{href:b(e.sessionId),onClick:t=>eE(t,e.sessionId),title:eN(e.sessionId),children:[(0,d.jsx)("span",{children:r(`pet.notice.${e.kind}`)}),(0,d.jsx)("strong",{children:eN(e.sessionId)})]}),"waiting"!==e.kind&&(0,d.jsx)("button",{type:"button",onClick:()=>k(e.sessionId),"aria-label":r("pet.dismissResult",{session:eN(e.sessionId)}),children:(0,d.jsx)(dS,{name:"close"})})]},e.sessionId))]}),"preferences"===D&&(0,d.jsx)(dy,{preferences:f,defaultName:r("pet.name"),onChange:g}),"actions"===D&&(0,d.jsxs)("div",{className:dd().actionGrid,children:[(0,d.jsxs)("button",{type:"button",onClick:()=>ef("wave"),children:[(0,d.jsx)(dS,{name:"wave"}),r("pet.hello")]}),(0,d.jsxs)("button",{type:"button",onClick:()=>ef("happy"),children:[(0,d.jsx)("span",{className:dd().patIcon,children:(0,d.jsx)(dS,{name:"heart"})}),r("pet.pat")]}),(0,d.jsxs)("button",{type:"button",onClick:()=>ef("cheer"),children:[(0,d.jsx)(dS,{name:"cheer"}),r("pet.encourage")]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{M(!ex),F(!1),X.current?.focus(),ep(ex?"pet.wakeReply":"pet.sleepReply",ex?"wave":"sleep")},children:[(0,d.jsx)(dS,{name:"moon"}),r(ex?"pet.wake":"pet.rest")]})]}),(0,d.jsxs)("div",{className:dd().actionFooter,children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{p(!h),dC(dk,h?"0":"1")},children:[(0,d.jsx)(dS,{name:"size"}),r(h?"pet.enlarge":"pet.shrink")]}),(0,d.jsxs)("button",{type:"button",onClick:em,children:[(0,d.jsx)(dS,{name:"close"}),r("pet.hide")]})]})]})]}),document.body)]})}let dE=/^(\d+)\.(\d+)\.(\d+)$/;function d$(e){let t=dE.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.some(e=>!Number.isSafeInteger(e))?null:n}function dM(e){return d$(e)?`https://github.com/Jason-24/pi-web-yun/releases/tag/v${e}`:null}var dI=n(84123),dT=n.n(dI);let dR="0.2.5",dL="1.4.0",dA="pi-yun";function dP(e){let{mobile:t}=e,{t:n}=(0,tw.s)(),r=(0,u.useRef)(null),i=(0,u.useRef)(null),s=(0,u.useRef)(0),[o,l]=(0,u.useState)(null),[a,c]=(0,u.useState)(null),[p,h]=(0,u.useState)(!0),[m,f]=(0,u.useState)(!1),g=(0,u.useCallback)(async()=>{if(i.current)return;let e=new AbortController;i.current=e,h(!0),f(!1);try{let t=await fetch("/api/app-update",{cache:"no-store",signal:e.signal});if(!t.ok)throw Error("Update check failed");let n=await t.json();if("string"!=typeof n.latestVersion||!dM(n.latestVersion))throw Error("Invalid version");e.signal.aborted||(c(n.latestVersion),s.current=Date.now())}catch{e.signal.aborted||f(!0)}finally{e.signal.aborted||h(!1),i.current===e&&(i.current=null)}},[]);(0,u.useEffect)(()=>{g();let e=()=>{!document.hidden&&Date.now()-s.current>=432e5&&g()};window.addEventListener("focus",e),document.addEventListener("visibilitychange",e);let t=setInterval(e,432e5);return()=>{i.current?.abort(),i.current=null,clearInterval(t),window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[g]);let x=null!==a&&function(e,t){let n=d$(e),r=d$(t);if(!n||!r)return!1;for(let e=0;e<n.length;e+=1)if(n[e]!==r[e])return n[e]>r[e];return!1}(a,dR),v=x?dM(a):null,b=p?n("appUpdate.checking"):m?n("appUpdate.failed"):x?n("appUpdate.available",{version:a}):n("appUpdate.current"),y=n("appUpdate.title");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{ref:r,type:"button",className:`workbench-view-button workbench-utility-start ${dT().trigger}${x?` ${dT().available}`:""}`,"data-workspace-action":"update","data-update-available":x,"aria-label":x?`${y} \xb7 ${n("appUpdate.available",{version:a})}`:y,title:`${dA} v${dR} \xb7 pi v${dL}
|
|
10
|
+
${b}`,"aria-haspopup":"dialog","aria-expanded":!!o,onClick:()=>{if(o)return void l(null);let e=r.current?.getBoundingClientRect();e&&l({kind:"rect",rect:e,align:"start"}),(m||Date.now()-s.current>=432e5)&&g()},children:[(0,d.jsx)("svg",{width:"19",height:"19",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M12 3v12m-4-4 4 4 4-4M5 16v4h14v-4"})}),(0,d.jsx)("span",{className:"workbench-settings-label",children:n("i18n.update")})]}),(0,d.jsx)(rs,{open:!!o,anchor:o,sheet:t,ariaLabel:y,title:y,width:300,cancelLabel:n("sidebar.cancel"),onClose:()=>l(null),returnFocusTo:r.current,children:(0,d.jsxs)("div",{className:dT().panel,children:[!t&&(0,d.jsx)("strong",{children:y}),(0,d.jsxs)("dl",{className:dT().versions,children:[(0,d.jsx)("dt",{children:dA}),(0,d.jsxs)("dd",{children:["v",dR]}),(0,d.jsx)("dt",{children:"pi"}),(0,d.jsxs)("dd",{children:["v",dL]})]}),(0,d.jsx)("p",{role:"status",children:b}),v&&(0,d.jsx)("a",{href:v,target:"_blank",rel:"noopener noreferrer",children:n("appUpdate.releaseNotes")}),(0,d.jsx)("p",{children:n("appUpdate.installHint")}),(0,d.jsxs)("code",{className:dT().command,children:["npm install -g ",dA,"@latest"]}),(0,d.jsx)("p",{children:n("appUpdate.restartHint")}),(0,d.jsx)("button",{type:"button",className:dT().check,disabled:p,onClick:()=>void g(),children:n("appUpdate.check")})]})})]})}let dz={home:"navigation.home",chat:"navigation.chat",settings:"common.settings",archive:"sidebar.archived",history:"history.full",system:"system.prompt",tools:"tools.title",agents:"agentSwitcher.title",branches:"i18n.branches",session:"session.title",debug:"debug.title"};function dW(e){let t,{view:n}=e;if("agents"===n)return(0,d.jsx)(t0,{size:20,strokeWidth:1.7});switch(n){case"home":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"m3.5 10 8.5-7 8.5 7v8.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2Z"}),(0,d.jsx)("path",{d:"M9 20.5v-6h6v6"})]});break;case"chat":t=(0,d.jsx)("path",{d:"M5 4.5h14a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-5 3v-14a2 2 0 0 1 1-2Z"});break;case"history":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M4 8a8.5 8.5 0 1 1-1 4"}),(0,d.jsx)("path",{d:"M4 3.5V8h4.5M12 7.5v5l3.5 2"})]});break;case"system":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M6 3.5h8l4 4v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2Z"}),(0,d.jsx)("path",{d:"M14 3.5v4h4M8 11l2 2-2 2m4 0h3"})]});break;case"tools":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3.5",y:"7.5",width:"17",height:"13",rx:"2"}),(0,d.jsx)("path",{d:"M9 7.5v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2M3.5 13h17M10.5 13v1.5h3V13"})]});break;case"branches":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M14.5 7V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2v2l2.5-2"}),(0,d.jsx)("path",{d:"M11 9h8a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2v2.5L16.5 18H11a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2Z"}),(0,d.jsx)("path",{d:"M12 13.5h5.5"})]});break;case"settings":t=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M4 7h10M18 7h2M4 17h2m4 0h10"}),(0,d.jsx)("circle",{cx:"16",cy:"7",r:"2"}),(0,d.jsx)("circle",{cx:"8",cy:"17",r:"2"})]});break;default:return null}return(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t})}function dO(e){let{petSessions:t,onPetSelectSession:n,activeView:r,conversationAvailable:i,inspectionAvailable:s,sessionAvailable:o,mobile:l,covered:a=!1,homeButtonRef:c,onHomeHover:u,onHomeLeave:p,onNavigate:h}=e,{t:m}=(0,tw.s)(),f=l?["home","chat","history","update","pet","settings"]:["home","chat","history","system","tools","agents","branches","update","pet","settings"];return(0,d.jsx)("nav",{className:`workbench-settings-navigation${l?" is-mobile":""}`,"aria-label":m("navigation.workspace"),inert:a,children:f.map(e=>{if("update"===e)return(0,d.jsx)(dP,{mobile:l},"update");if("pet"===e)return(0,d.jsx)(dN,{sessions:t,onSelectSession:n},"pet");let a="chat"===e?!i:"system"===e||"tools"===e?!s:("history"===e||"agents"===e||"branches"===e)&&!o,f=m(dz[e]);return(0,d.jsxs)("button",{type:"button",className:`workbench-view-button${"home"===e?" workbench-home-button":""}`,ref:"home"===e?c:void 0,onPointerEnter:"home"!==e||l?void 0:e=>{"mouse"===e.pointerType&&u?.()},onPointerLeave:"home"!==e||l?void 0:p,"data-workspace-view":e,"aria-label":f,title:a?`${f} \xb7 ${m("navigation.sessionRequired")}`:f,"aria-current":r===e?"page":void 0,disabled:a,onClick:()=>h(e),children:[(0,d.jsx)(dW,{view:e}),(0,d.jsx)("span",{className:"workbench-settings-label",children:f})]},e)})})}let dF=null,dD="";function dB(e){let{handleRef:t,context:n,mobile:r,initialFocus:i,onInitialFocusDone:s,onPick:o,onUseDefaultDirectory:l,onOpenFolder:a,onRefreshWorktrees:c,onCreateWorktree:p}=e,{t:h}=(0,tw.s)(),[m,f]=(0,u.useState)(()=>dD),g=(0,u.useRef)(null);(0,u.useImperativeHandle)(t,()=>({openProjectMenu:e=>g.current?.openMenu("project",e)}),[]);let x=(0,u.useRef)(i),v=(0,u.useRef)(s);return v.current=s,(0,u.useEffect)(()=>{if(dD)return;let e=!1;return(dF??=fetch("/api/home").then(e=>e.json()).then(e=>dD=e.home??"").catch(()=>(dF=null,""))).then(t=>{!e&&t&&f(t)}),()=>{e=!0}},[]),(0,u.useEffect)(()=>{let e=x.current;if(!e)return;x.current=null,v.current();let t=g.current;e7(document,("worktree"===e?t?.button("worktree"):null)??t?.button("project")??null)},[]),(0,d.jsx)("div",{className:"new-session-context",children:(0,d.jsx)(r$,{handleRef:g,layout:"inline",context:n,mobile:r,label:h("workspace.newSessionContext"),homeDir:m,newWorktreeTitle:h("sidebar.newWorktreeForSession"),onPick:o,onUseDefaultDirectory:l,onOpenFolder:a,onRefreshWorktrees:c,onCreateWorktree:p})})}function d_(e){return e&&"number"==typeof e.size&&"string"==typeof e.mtime?`${e.size}:${e.mtime}`:null}function dH(e,t){return null===e||null===t||e!==t}let dU=`<script data-pi-web-polyfill="storage">
|
|
11
|
+
(function() {
|
|
12
|
+
function createMemoryStorage() {
|
|
13
|
+
var store = Object.create(null);
|
|
14
|
+
function hasKey(key) { return Object.prototype.hasOwnProperty.call(store, key); }
|
|
15
|
+
var storage = Object.create({
|
|
16
|
+
getItem: function(key) {
|
|
17
|
+
if (arguments.length < 1) throw new TypeError("getItem requires a key");
|
|
18
|
+
key = String(key);
|
|
19
|
+
return hasKey(key) ? store[key] : null;
|
|
20
|
+
},
|
|
21
|
+
setItem: function(key, value) {
|
|
22
|
+
if (arguments.length < 2) throw new TypeError("setItem requires a key and value");
|
|
23
|
+
store[String(key)] = String(value);
|
|
24
|
+
},
|
|
25
|
+
removeItem: function(key) {
|
|
26
|
+
if (arguments.length < 1) throw new TypeError("removeItem requires a key");
|
|
27
|
+
delete store[String(key)];
|
|
28
|
+
},
|
|
29
|
+
clear: function() { store = Object.create(null); },
|
|
30
|
+
key: function(index) {
|
|
31
|
+
if (arguments.length < 1) throw new TypeError("key requires an index");
|
|
32
|
+
var key = Object.keys(store)[(+index) >>> 0];
|
|
33
|
+
return key === undefined ? null : key;
|
|
34
|
+
},
|
|
35
|
+
get length() { return Object.keys(store).length; }
|
|
36
|
+
});
|
|
37
|
+
// Storage also exposes its keys as named properties, apart from the API's
|
|
38
|
+
// own names (which remain callable even if a key has the same name).
|
|
39
|
+
return new Proxy(storage, {
|
|
40
|
+
get: function(target, key, receiver) {
|
|
41
|
+
if (typeof key === "string" && !(key in target)) return store[key];
|
|
42
|
+
return Reflect.get(target, key, receiver);
|
|
43
|
+
},
|
|
44
|
+
set: function(target, key, value, receiver) {
|
|
45
|
+
if (typeof key !== "string") return Reflect.set(target, key, value, receiver);
|
|
46
|
+
target.setItem(key, value);
|
|
47
|
+
return true;
|
|
48
|
+
},
|
|
49
|
+
deleteProperty: function(target, key) {
|
|
50
|
+
if (typeof key !== "string") return Reflect.deleteProperty(target, key);
|
|
51
|
+
target.removeItem(key);
|
|
52
|
+
return true;
|
|
53
|
+
},
|
|
54
|
+
has: function(target, key) {
|
|
55
|
+
return key in target || (typeof key === "string" && hasKey(key));
|
|
56
|
+
},
|
|
57
|
+
ownKeys: function(target) {
|
|
58
|
+
var own = Reflect.ownKeys(target);
|
|
59
|
+
return own.concat(Object.keys(store).filter(function(key) { return own.indexOf(key) === -1; }));
|
|
60
|
+
},
|
|
61
|
+
getOwnPropertyDescriptor: function(target, key) {
|
|
62
|
+
var own = Reflect.getOwnPropertyDescriptor(target, key);
|
|
63
|
+
if (own || typeof key !== "string" || !hasKey(key)) return own;
|
|
64
|
+
return { value: store[key], writable: true, enumerable: true, configurable: true };
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function polyfillStorage(type) {
|
|
70
|
+
try {
|
|
71
|
+
window[type].getItem("__pi_web_storage_probe__");
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (error && error.name === "SecurityError") {
|
|
74
|
+
Object.defineProperty(window, type, {
|
|
75
|
+
value: createMemoryStorage(), configurable: true, enumerable: true
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
polyfillStorage("localStorage");
|
|
81
|
+
polyfillStorage("sessionStorage");
|
|
82
|
+
})();
|
|
83
|
+
</script>`,dq=/\uFEFF?(?:\s|<!--[\s\S]*?-->|<!doctype\b[^>]*>|<\?[^>]*>)*/iy,dK=/<html(?=[\s/>])(?:[^>"']|"[^"]*"|'[^']*')*>(?:\s|<!--[\s\S]*?-->)*/iy,dV=/<head(?=[\s/>])(?:[^>"']|"[^"]*"|'[^']*')*>/iy;function dZ(e,t,n){return e.lastIndex=n,e.exec(t)?e.lastIndex:n}var dJ=n(73620);let dY=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function dG(e){let t=function(e){let t=dY.exec(e);if(!t)return null;let n=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;n.lastIndex=t[0].length;let r=n.exec(e);return r?{yaml:e.slice(t[0].length,r.index).replace(/(?:\r\n|\n|\r)$/,""),rest:e.slice(r.index+r[0].length)}:null}(e);if(!t)return{data:null,rest:e};try{let e=(0,dJ.Hh)(t.yaml);if(e&&"object"==typeof e&&!Array.isArray(e))return{data:e,rest:t.rest}}catch{}return{data:null,rest:t.rest}}function dX(e){return function e(t,n){if(null==t)return"";if("string"==typeof t)return t;if("number"==typeof t||"boolean"==typeof t)return String(t);if(Array.isArray(t)){if(n.has(t))return"[Circular]";n.add(t);try{return t.map(t=>e(t,n)).filter(Boolean).join(", ")}finally{n.delete(t)}}if("object"==typeof t)try{return JSON.stringify(t)??Object.prototype.toString.call(t)}catch{return Object.prototype.toString.call(t)}return String(t)}(e,new WeakSet)}let dQ=[",",";"," ","|"];function d0(e){let t=/\.(csv|tsv)$/i.exec(e);return t?"tsv"===t[1].toLowerCase()?" ":",":null}function d1(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.complete??!0,i=n.maxRecords??1/0,s=[],o=[],l=e.length,a=t.charCodeAt(0),c=+(65279===e.charCodeAt(0)),d=1,u=[],p=1,h=()=>{(1!==u.length||""!==u[0])&&(s.push(u),o.push(p)),u=[]};for(;c<l&&s.length<i;){let t="",n=!1;if(34===e.charCodeAt(c)){n=!0;let r=c+=1;for(;c<l;){let i=e.indexOf('"',c);if(-1===i)break;if(34===e.charCodeAt(i+1)){t+=e.slice(r,i+1),r=c=i+2;continue}t+=e.slice(r,i),c=i+1,n=!1;break}n&&(t+=e.slice(r),c=l),d+=function(e){let t=0,n=e.indexOf("\n");for(;-1!==n;)t+=1,n=e.indexOf("\n",n+1);return t}(t)}let i=c;for(;i<l;){let t=e.charCodeAt(i);if(t===a||10===t)break;i+=1}let s=i<l?e.charCodeAt(i):-1,o=s!==a&&i>c&&13===e.charCodeAt(i-1)?i-1:i;t+=e.slice(c,o),u.push(t),c=i,s===a?(c+=1)===l&&(u.push(""),r&&h()):10===s?(c+=1,d+=1,h(),p=d):r&&h()}return{records:s,lines:o}}function d2(e){let t=e.indexOf("\n"),n=-1===t?e:e.slice(0,t),r=0;for(let e=0;e<n.length;e+=1){let t=n.charCodeAt(e);t>=56320&&t<=57343||(r+=t>=11904?2:1)}return r}let d4={display:"flex",height:26,boxSizing:"border-box",borderBottom:"1px solid var(--border)"},d8={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"},d3={boxSizing:"border-box",flexShrink:0,padding:"0 10px",lineHeight:"25px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRight:"1px solid var(--border)"};function d6(e){let{content:t,filePath:n,complete:r,scrollRef:i}=e,s=(0,u.useMemo)(()=>(function(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=d0(t)??",",i=","===r?function(e){let t=e.slice(0,65536),n=t.length===e.length,r=",",i=0;for(let e of dQ){let{records:s}=d1(t,e,{complete:n,maxRecords:20}),o=s[0]?.length??0;if(o<2)continue;let l=1e3*s.filter(e=>e.length===o).length+Math.min(o,999);l>i&&(r=e,i=l)}return r}(e):r,{records:s,lines:o}=d1(e,i,{complete:n});if(0===s.length)return{columns:[],headerLine:0,rows:[],rowLines:[]};let l=0;for(let e of s)e.length>l&&(l=e.length);let a=s[0];return{columns:a.length===l?a:[...a,...Array.from({length:l-a.length},()=>"")],headerLine:o[0],rows:s.slice(1),rowLines:o.slice(1)}})(t,n,r),[r,t,n]),o=(0,u.useMemo)(()=>{var e,t;let n;return e=s.columns,n=Math.max(1,Math.ceil((t=s.rows).length/500)),e.map((e,r)=>{let i=d2(e);for(let e=0;e<t.length;e+=n){let n=t[e][r];if(n){let e=d2(n);e>i&&(i=e)}}return Math.min(Math.max(Math.ceil(7.4*i+22),64),420)})},[s]),l=(0,u.useMemo)(()=>o.reduce((e,t)=>e+t,56),[o]),[a,c]=(0,u.useState)(0),[p,h]=(0,u.useState)(0);if((0,u.useEffect)(()=>{let e=i.current;if(!e)return;let t=null,n=()=>{c(e.scrollTop),h(e.clientHeight)},r=()=>{null===t&&(t=requestAnimationFrame(()=>{t=null,n()}))};n(),e.addEventListener("scroll",r,{passive:!0});let s="u"<typeof ResizeObserver?null:new ResizeObserver(n);return s?.observe(e),()=>{e.removeEventListener("scroll",r),s?.disconnect(),null!==t&&cancelAnimationFrame(t)}},[i]),0===s.columns.length)return null;let{start:m,end:f}=function(e,t,n){if(e<=0)return{start:0,end:0};let r=Number.isFinite(t)?Math.max(0,t):0,i=Number.isFinite(n)&&n>0?n:800,s=Math.max(0,Math.floor(r/26)-20),o=Math.min(e,Math.ceil((r+i)/26)+20);return{start:Math.min(s,o),end:o}}(s.rows.length,a-26,p),g=[];for(let e=m;e<f;e+=1){let t=s.rows[e];g.push((0,d.jsxs)("div",{role:"row","aria-rowindex":e+2,style:{...d4,position:"absolute",top:26*e,left:0,width:l},children:[(0,d.jsx)("div",{role:"rowheader",style:d8,children:s.rowLines[e]}),o.map((e,n)=>{let r=t[n]??"";return(0,d.jsx)("div",{role:"cell",style:{...d3,width:e},title:r||void 0,children:r},n)})]},e))}return(0,d.jsxs)("div",{role:"table","aria-rowcount":s.rows.length+1,"aria-colcount":s.columns.length,style:{width:l,minWidth:"100%",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:12,color:"var(--text-muted)",background:"var(--bg)"},children:[(0,d.jsxs)("div",{role:"row","aria-rowindex":1,style:{...d4,position:"sticky",top:0,zIndex:2,width:l,background:"var(--bg-panel)",color:"var(--text)",fontWeight:600},children:[(0,d.jsx)("div",{role:"rowheader",style:d8,children:s.headerLine}),s.columns.map((e,t)=>(0,d.jsx)("div",{role:"columnheader",style:{...d3,width:o[t]},title:e||void 0,children:e},t))]}),(0,d.jsx)("div",{style:{position:"relative",height:26*s.rows.length},children:g})]})}let d5=["tags","categories","keywords","tag","category"];function d9(e){var t;let{data:n}=e;if(!n)return null;let r=Object.entries(n);if(0===r.length)return null;let i="string"==typeof(t=n.title)?t.trim()||null:"number"==typeof t||"boolean"==typeof t?String(t):null,s=d5.find(e=>Array.isArray(n[e])),o=s?n[s].map(dX).filter(Boolean):[],l=r.filter(e=>{let[t]=e;return t!==s&&("title"!==t||!i)});return(0,d.jsxs)("div",{className:"markdown-frontmatter",children:[i&&(0,d.jsx)("div",{className:"markdown-frontmatter-title",children:i}),o.length>0&&(0,d.jsx)("div",{className:"markdown-frontmatter-tags",children:o.map((e,t)=>(0,d.jsx)("span",{className:"markdown-frontmatter-tag",children:e},`${e}-${t}`))}),l.length>0&&(0,d.jsx)("dl",{className:"markdown-frontmatter-rows",children:l.map(e=>{let[t,n]=e;return(0,d.jsxs)("div",{className:"markdown-frontmatter-row",children:[(0,d.jsx)("dt",{children:t}),(0,d.jsx)("dd",{children:function(e){let t=dX(e);return t?"string"==typeof e&&/^(https?:\/\/|mailto:)/i.test(e)?(0,d.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:t}):t:null}(n)})]},t)})})]})}function d7(e){let{contentRef:t,enabled:n,partial:r,mode:i,prepareSearch:s}=e,{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(!1),[c,p]=(0,u.useState)(""),[h,f]=(0,u.useState)({ranges:[],limited:!1}),[g,x]=(0,u.useState)(0),[v,b]=(0,u.useState)([]),[y,w]=(0,u.useState)(0),j=(0,u.useRef)(null),k=t.current?.closest(".file-viewer-shell"),S=l&&n,C=(0,u.useCallback)(()=>{s(),a(!0),requestAnimationFrame(()=>{j.current?.focus(),j.current?.select()})},[s]),N=(0,u.useCallback)(()=>{a(!1),t.current?.focus({preventScroll:!0})},[t]);(0,u.useEffect)(()=>{"embedded"===i&&a(!1)},[i]),(0,u.useEffect)(()=>{if(!n)return;let e=e=>{let n=t.current?.closest(".file-viewer-shell");!n||n.closest('[inert], [aria-hidden="true"]')||!n.getClientRects().length||n.contains(e.target)&&((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"f"===e.key.toLowerCase()?(e.preventDefault(),e.stopPropagation(),C()):l&&"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),N()))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[N,t,n,l,C]),(0,u.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=()=>{f(function(e,t){if(!t)return{ranges:[],limited:!1};let n=[],r="",i=null,s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(;s.nextNode();){let e=s.currentNode,t=e.parentElement;if(!t||t.closest('button, script, style, svg, [aria-hidden="true"], .react-syntax-highlighter-line-number')||t.closest(".file-source-view, .file-diff-view")&&!t.closest(".file-source-line-content, .file-diff-line-content"))continue;let o=t.closest(".file-source-line-content, .file-diff-line-content, p, li, h1, h2, h3, h4, h5, h6, pre, td, th");o!==i&&(r+="\n"),i=o;let l=r.length;r+=e.data,n.push({node:e,start:l,end:r.length})}let o=RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"giu"),l=[],a=0;for(let e of r.matchAll(o)){if(5e3===l.length)return{ranges:l,limited:!0};let t=e.index,r=t+e[0].length;for(;a<n.length&&n[a].end<=t;)a++;let i=a;for(;i<n.length&&n[i].end<r;)i++;if(!n[a]||!n[i])continue;let s=document.createRange();s.setStart(n[a].node,t-n[a].start),s.setEnd(n[i].node,r-n[i].start),l.push(s)}return{ranges:l,limited:!1}}(e,c)),x(0)};n();let r=new MutationObserver(n);return r.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[S,t,c,i]),(0,u.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=h.ranges[g];if(!n?.startContainer.isConnected)return;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect();e.scrollBy({top:r.top<i.top+70||r.bottom>i.bottom?r.top-i.top-e.clientHeight/2:0,left:r.left<i.left+48||r.right>i.right?r.left-i.left-e.clientWidth/2:0,behavior:"instant"})},[S,t,g,h]),(0,u.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=CSS.highlights,r=window.Highlight,i=!!(n&&r);n&&r&&(n.set("file-find",new r(...h.ranges)),n.set("file-find-current",new r(...h.ranges.slice(g,g+1))));let s=0,o=()=>{cancelAnimationFrame(s),s=requestAnimationFrame(()=>{if(w(e.offsetTop),i)return void b([]);let t=e.getBoundingClientRect(),n=[];h.ranges.forEach((e,r)=>{if(!e.startContainer.isConnected)return;let i=e.getBoundingClientRect();if(!(i.bottom<t.top)&&!(i.top>t.bottom)&&!(i.right<t.left)&&!(i.left>t.right))for(let i of e.getClientRects())n.push({top:i.top-t.top,left:i.left-t.left,width:i.width,height:i.height,active:r===g})}),b(n)})};o(),e.addEventListener("scroll",o,{passive:!0});let l=new ResizeObserver(o);return l.observe(e),()=>{cancelAnimationFrame(s),l.disconnect(),e.removeEventListener("scroll",o),n?.delete("file-find"),n?.delete("file-find-current")}},[S,t,g,h]);let E=e=>x(t=>h.ranges.length?(t+e+h.ranges.length)%h.ranges.length:0);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"file-viewer-icon-button",onClick:C,title:`${o("files.find")} (Ctrl+F)`,"aria-label":o("files.find"),"aria-expanded":S,children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),(0,d.jsx)("path",{d:"m16 16 4 4"})]})}),S&&k&&(0,m.createPortal)((0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("style",{children:`::highlight(file-find) { background: color-mix(in srgb, var(--accent) 20%, var(--bg)); color: var(--text); }
|
|
84
|
+
::highlight(file-find-current) { background: var(--accent); color: var(--accent-contrast); }`}),(0,d.jsxs)("div",{className:"file-find-bar",role:"search","aria-label":o("files.find"),style:{top:y+8},children:[(0,d.jsxs)("div",{className:"file-find-row",children:[(0,d.jsx)("input",{ref:j,type:"search",value:c,placeholder:o("files.findPlaceholder"),"aria-label":o("files.findPlaceholder"),spellCheck:!1,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||(e.preventDefault(),E(e.shiftKey?-1:1))}}),(0,d.jsx)("span",{className:"file-find-count",role:"status","aria-live":"polite",children:c?`${h.ranges.length?g+1:0} / ${h.ranges.length}${h.limited?"+":""}`:""}),(0,d.jsx)("button",{type:"button",disabled:!h.ranges.length,onClick:()=>E(-1),title:o("files.findPrevious"),"aria-label":o("files.findPrevious"),children:"↑"}),(0,d.jsx)("button",{type:"button",disabled:!h.ranges.length,onClick:()=>E(1),title:o("files.findNext"),"aria-label":o("files.findNext"),children:"↓"}),(0,d.jsx)("button",{type:"button",onClick:N,title:o("files.closeFind"),"aria-label":o("files.closeFind"),children:"\xd7"})]}),(r||"diff"===i)&&(0,d.jsx)("div",{className:"file-find-scope",children:o(r?"files.findLoadedOnly":"files.findDiffOnly")})]}),v.length>0&&(0,d.jsx)("div",{className:"file-find-highlights","aria-hidden":"true",style:{top:y},children:v.map((e,t)=>(0,d.jsx)("span",{className:e.active?"is-current":"",style:{top:e.top,left:e.left,width:e.width,height:e.height}},t))})]}),k)]})}function ue(e){let{filePath:t,cwd:n}=e,r=eb(t),i=ek(r,n),s=i.split("/").filter(Boolean);n&&i!==r?s.unshift(ew(n)):r.startsWith("/")&&s.unshift(r.startsWith("//")?"//":"/");let o=s.pop()??ew(t);return(0,d.jsx)("div",{className:"file-viewer-path",title:t,children:(0,d.jsxs)("div",{className:"file-breadcrumb",role:"group","aria-label":t,children:[s.length>0&&(0,d.jsx)("span",{className:"file-breadcrumb-parents","aria-hidden":"true",children:s.map((e,t)=>(0,d.jsxs)("span",{className:"file-breadcrumb-segment",children:[(0,d.jsx)("span",{children:e}),(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"m9 5 7 7-7 7"})})]},t))}),(0,d.jsx)("strong",{className:"file-breadcrumb-current","aria-current":"location",children:o})]})})}let ut=new Set(["md","markdown","mdx","mdown","mkd","rst","adoc","txt"]),un={source:"Source",preview:"Preview",diff:"Diff"},ur={fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:13,lineHeight:1.6},ui={...sv.xJ,'pre[class*="language-"]':{...sv.xJ['pre[class*="language-"]']}};delete ui['pre[class*="language-"]'].background;let us={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"},uo={...us,position:"sticky",left:0,zIndex:1};function ul(){return(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"})]})}function ua(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function uc(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let n=t.getRangeAt(0);if(!e.contains(n.startContainer)||!e.contains(n.endContainer))return null;let r=ua(n.startContainer),i=ua(n.endContainer);if(!r||!i||!e.contains(r)||!e.contains(i))return null;let s=Number(r.dataset.lineNumber),o=Number(i.dataset.lineNumber);if(!Number.isInteger(s)||!Number.isInteger(o))return null;if(s<o){let e=r.querySelector(".file-source-line-content");if(e?.contains(n.startContainer)){let t=document.createRange();if(t.selectNodeContents(e),t.setStart(n.startContainer,n.startOffset),0===t.toString().length){let e=r.nextElementSibling;e instanceof HTMLElement&&e.matches(".file-source-line[data-line-number]")&&(s=Number((r=e).dataset.lineNumber))}}let t=i.querySelector(".file-source-line-content");if(t?.contains(n.endContainer)){let e=document.createRange();if(e.selectNodeContents(t),e.setEnd(n.endContainer,n.endOffset),0===e.toString().length){let e=i.previousElementSibling;e instanceof HTMLElement&&e.matches(".file-source-line[data-line-number]")&&(o=Number((i=e).dataset.lineNumber))}}}return s>o?null:{startLine:s,endLine:o}}function ud(e){let{rows:t,stylesheet:n,useInlineStyles:r,wrapLines:i}=e;return t.map((e,t)=>{let s=e.children??[],o=s[0]?.properties?.className,l=Array.isArray(o)&&o.includes("react-syntax-highlighter-line-number"),a=l?s[0]:null,c=l?s.slice(1):s;return(0,d.jsxs)("span",{className:"file-source-line","data-line-number":t+1,style:{display:"flex",minWidth:"100%"},children:[a&&(0,sg.Ay)({node:a,stylesheet:n,useInlineStyles:r,key:`source-line-number-${t}`}),(0,d.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:i?"anywhere":"normal",whiteSpace:i?"pre-wrap":"pre"},children:c.map((e,i)=>(0,sg.Ay)({node:e,stylesheet:n,useInlineStyles:r,key:`source-token-${t}-${i}`}))})]},`source-line-${t}`)})}function uu(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=ey(e),s=new URLSearchParams({type:t});for(let[e,i]of(n&&s.set("sessionId",n),"watch"===t&&s.set("holder",tt()),Object.entries(r)))void 0!==i&&s.set(e,String(i));return`/api/files/${i}?${s.toString()}`}function up(e){let{filePath:t,sourceSessionId:n}=e,{t:r}=(0,tw.s)();return(0,d.jsx)("a",{href:uu(t,"download",n),download:ew(t),title:r("i18n.downloadFile"),"aria-label":r("i18n.downloadFile"),className:"file-viewer-icon-button",children:(0,d.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,d.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,d.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,d.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})}function uh(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function um(e){let t,{patch:n,wrapLines:r}=e,{t:i}=(0,tw.s)(),s=(t=or(n))?t.flatMap(oi):[],o=e=>"added"===e.type||"removed"===e.type;if(!s.some(o))return(0,d.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:i("i18n.noChanges")});let l=new Set(s.flatMap((e,t)=>o(e)?[t]:[])),a=new Set;for(let e of l)for(let t=Math.max(0,e-3);t<=Math.min(s.length-1,e+3);t++)a.add(t);let c=a.size<=1e3?uo:us,u=e=>"gap"!==s[e].type&&a.has(e),p=[],h=0;for(;h<s.length;)if(u(h)){let e=[];for(;h<s.length&&u(h);){let t=s[h];"gap"!==t.type&&e.push(t),h++}p.push({hidden:!1,lines:e})}else{let e=0;for(;h<s.length&&!u(h);){let t=s[h],n="gap"===t.type?t.count:1;e=null===e||null===n?null:e+n,h++}p.push({hidden:!0,count:e})}return(0,d.jsx)("div",{className:"file-diff-view",style:{width:r?"100%":"max-content",minWidth:"100%",...ur},children:p.map((e,t)=>{if(e.hidden)return(0,d.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===e.count?"⋯":`⋯ ${os(e.count,i)}`},t);let n=e.lines.map((e,t)=>{let n="added"===e.type?"rgba(0,200,80,0.12)":"removed"===e.type?"rgba(240,60,60,0.14)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",s="added"===e.type?"#4ade80":"removed"===e.type?"#f87171":"var(--text-dim)";return(0,d.jsxs)("div",{className:"file-diff-line",style:{display:"flex",minWidth:"100%",background:n,borderLeft:"added"===e.type?"3px solid #4ade80":"removed"===e.type?"3px solid #f87171":"3px solid transparent"},children:[(0,d.jsx)("span",{style:c,children:"removed"===e.type?e.oldLineNo:e.newLineNo}),(0,d.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:s,userSelect:"none",flexShrink:0,fontWeight:600},children:i}),(0,d.jsx)("span",{className:"file-diff-line-content",style:{flexShrink:+!!r,minWidth:0,padding:"0 8px 0 0",whiteSpace:r?"pre-wrap":"pre",overflowWrap:r?"anywhere":"normal",color:"var(--text)"},children:e.text||"\xa0"})]},t)});return(0,d.jsx)("div",{children:n},t)})})}function uf(e){let{filePath:t,cwd:n,sourceSessionId:r,watchEnabled:i=!0}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(0),[p,h]=(0,u.useState)(null),[m,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(null),v=(0,u.useRef)(null),b=(0,u.useRef)(0),y=(0,u.useRef)(null),w=ew(t).toLowerCase().split(".").pop()??"";(0,u.useEffect)(()=>{c(0),h(null),f(null),x(null),l(!1),y.current=null},[t,r]),(0,u.useEffect)(()=>{if(l(!1),v.current&&(v.current.close(),v.current=null),!i)return;let e=!0,n=ts("file-watch",new EventSource(uu(t,"watch",r)),t);v.current=n,n.addEventListener("connected",()=>{let n;l(!0),n=++b.current,fetch(uu(t,"meta",r)).then(e=>e.json()).then(t=>{if(!e||n!==b.current)return;if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),x(null);let r=d_(t);dH(y.current,r)&&(y.current=r,f(null),c(e=>e+1))}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1,y.current=null;try{let t=JSON.parse(e.data);y.current=d_(t),"number"==typeof t.size&&h(t.size)}catch{}f(null),x(null),c(e=>e+1)});let s=()=>{l(!1)};return n.addEventListener("error",s),n.onerror=s,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,r,i]);let j=uu(t,"read",r,a?{v:a}:void 0),k=null!=p?uh(p):null;return(0,d.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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,d.jsx)(ue,{filePath:t,cwd:n}),(0,d.jsx)("span",{style:{marginLeft:"auto"},children:w||"image"}),m&&(0,d.jsxs)("span",{children:[m.w," \xd7 ",m.h]}),k&&(0,d.jsx)("span",{children:k}),(0,d.jsxs)("span",{title:o?s("i18n.liveSync"):s("i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:o?"#4ade80":"var(--text-dim)"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o?"#4ade80":"var(--border)",display:"inline-block",boxShadow:o?"0 0 4px #4ade80":"none"}}),o?"live":"static"]}),(0,d.jsx)(up,{filePath:t,sourceSessionId:r})]}),(0,d.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:g?(0,d.jsx)("div",{style:{color:"#f87171",fontSize:13},children:g}):(0,d.jsx)("img",{src:j,alt:t,onLoad:e=>{let t=e.currentTarget;f({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>x(s("files.imageLoadFailed")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function ug(e){if(!Number.isFinite(e))return"";let t=Math.round(e),n=Math.floor(t/60);return`${n}:${String(t%60).padStart(2,"0")}`}function ux(e){let{filePath:t,cwd:n,sourceSessionId:r,watchEnabled:i=!0}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(0),[p,h]=(0,u.useState)(null),[m,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(null),v=(0,u.useRef)(null),b=(0,u.useRef)(0),y=(0,u.useRef)(null),w=ew(t).toLowerCase().split(".").pop()??"";(0,u.useEffect)(()=>{c(0),h(null),f(null),x(null),l(!1),y.current=null},[t,r]),(0,u.useEffect)(()=>{if(l(!1),v.current&&(v.current.close(),v.current=null),!i)return;let e=!0,n=ts("file-watch",new EventSource(uu(t,"watch",r)),t);v.current=n,n.addEventListener("connected",()=>{let n;l(!0),n=++b.current,fetch(uu(t,"meta",r)).then(e=>e.json()).then(t=>{if(!e||n!==b.current)return;if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),x(null);let r=d_(t);dH(y.current,r)&&(y.current=r,f(null),c(e=>e+1))}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1,y.current=null;try{let t=JSON.parse(e.data);y.current=d_(t),"number"==typeof t.size&&h(t.size)}catch{}f(null),x(null),c(e=>e+1)});let s=()=>{l(!1)};return n.addEventListener("error",s),n.onerror=s,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,r,i]);let j=uu(t,"read",r,a?{v:a}:void 0);return(0,d.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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,d.jsx)(ue,{filePath:t,cwd:n}),(0,d.jsx)("span",{style:{marginLeft:"auto"},children:w||"audio"}),null!=m&&(0,d.jsx)("span",{children:ug(m)}),null!=p&&(0,d.jsx)("span",{children:uh(p)}),(0,d.jsxs)("span",{title:o?s("i18n.liveSync"):s("i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:o?"#4ade80":"var(--text-dim)"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o?"#4ade80":"var(--border)",display:"inline-block",boxShadow:o?"0 0 4px #4ade80":"none"}}),o?"live":"static"]}),(0,d.jsx)(up,{filePath:t,sourceSessionId:r})]}),(0,d.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,d.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[g&&(0,d.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:g}),(0,d.jsx)("audio",{controls:!0,preload:"metadata",src:j,onLoadedMetadata:e=>f(e.currentTarget.duration),onError:()=>x(s("files.audioLoadFailed")),style:{width:"100%"}},j)]})})]})}function uv(e){let{filePath:t,cwd:n,sourceSessionId:r,watchEnabled:i=!0}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(!1),[a,c]=(0,u.useState)(0),[p,h]=(0,u.useState)(null),[m,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(null),v=(0,u.useRef)(null),b=(0,u.useRef)(0),y=(0,u.useRef)(null),w=ew(t).toLowerCase().split(".").pop()??"";(0,u.useEffect)(()=>{c(0),h(null),f(null),x(null),l(!1),y.current=null},[t,r]),(0,u.useEffect)(()=>{if(l(!1),v.current&&(v.current.close(),v.current=null),!i)return;let e=!0,n=ts("file-watch",new EventSource(uu(t,"watch",r)),t);v.current=n,n.addEventListener("connected",()=>{let n;l(!0),n=++b.current,fetch(uu(t,"meta",r)).then(e=>e.json()).then(t=>{if(!e||n!==b.current)return;if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),x(null);let r=d_(t);dH(y.current,r)&&(y.current=r,f(null),c(e=>e+1))}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1,y.current=null;try{let t=JSON.parse(e.data);y.current=d_(t),"number"==typeof t.size&&h(t.size)}catch{}f(null),x(null),c(e=>e+1)});let s=()=>{l(!1)};return n.addEventListener("error",s),n.onerror=s,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,r,i]);let j=uu(t,"read",r,a?{v:a}:void 0);return(0,d.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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,d.jsx)(ue,{filePath:t,cwd:n}),(0,d.jsx)("span",{style:{marginLeft:"auto"},children:w||"video"}),null!=m&&(0,d.jsx)("span",{children:ug(m)}),null!=p&&(0,d.jsx)("span",{children:uh(p)}),(0,d.jsxs)("span",{title:o?s("i18n.liveSync"):s("i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:o?"#4ade80":"var(--text-dim)"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o?"#4ade80":"var(--border)",display:"inline-block",boxShadow:o?"0 0 4px #4ade80":"none"}}),o?"live":"static"]}),(0,d.jsx)(up,{filePath:t,sourceSessionId:r})]}),(0,d.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)",minHeight:0},children:(0,d.jsxs)("div",{style:{width:"min(960px, 100%)",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:0},children:[g&&(0,d.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:g}),(0,d.jsx)("video",{controls:!0,playsInline:!0,preload:"metadata",src:j,onLoadedMetadata:e=>f(e.currentTarget.duration),onError:()=>x(s("files.videoLoadFailed")),style:{maxWidth:"100%",maxHeight:"100%"}},j)]})})]})}function ub(e){let{filePath:t,cwd:n,sourceSessionId:r,initialPage:i,watchEnabled:s=!0}=e,{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(!1),[c,p]=(0,u.useState)(0),[h,m]=(0,u.useState)(null),[f,g]=(0,u.useState)(null),x=(0,u.useRef)(null),v=(0,u.useRef)(0),b=(0,u.useRef)(null),y=iI(t),w="pdf"===y,j=w&&i&&i>0?`#page=${i}`:"",k=w?`${uu(t,"read",r,c?{v:c}:void 0)}${j}`:uu(t,"preview",r,c?{v:c}:void 0);return(0,u.useEffect)(()=>{p(0),m(null),g(null),a(!1),b.current=null;let e=!0,n=++v.current;return fetch(uu(t,"meta",r)).then(e=>e.json()).then(t=>{e&&n===v.current&&(t.error&&g(t.error),"number"==typeof t.size&&(m(t.size),!w&&t.size>0xa00000&&g("DOCX too large for preview (>10MB)")))}).catch(t=>{e&&n===v.current&&g(String(t))}),()=>{e=!1}},[t,w,r]),(0,u.useEffect)(()=>{if(a(!1),x.current&&(x.current.close(),x.current=null),!s)return;let e=!0,n=ts("file-watch",new EventSource(uu(t,"watch",r)),t);x.current=n,n.addEventListener("connected",()=>{let n;a(!0),n=++v.current,fetch(uu(t,"meta",r)).then(e=>e.json()).then(t=>{if(!e||n!==v.current)return;if(t.error)return void g(t.error);if("number"==typeof t.size&&(m(t.size),!w&&t.size>0xa00000))return void g("DOCX too large for preview (>10MB)");g(null);let r=d_(t);dH(b.current,r)&&(b.current=r,p(e=>e+1))}).catch(t=>{e&&n===v.current&&g(String(t))})}),n.addEventListener("change",e=>{v.current+=1,b.current=null;try{let t=JSON.parse(e.data);if(b.current=d_(t),"number"==typeof t.size&&(m(t.size),!w&&t.size>0xa00000))return void g("DOCX too large for preview (>10MB)")}catch{}g(null),p(e=>e+1)});let i=()=>{a(!1)};return n.addEventListener("error",i),n.onerror=i,()=>{e=!1,n.close(),x.current===n&&(x.current=null)}},[t,w,r,s]),(0,d.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,d.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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,d.jsx)(ue,{filePath:t,cwd:n}),(0,d.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===y?"docx preview":"pdf"}),null!=h&&(0,d.jsx)("span",{children:uh(h)}),(0,d.jsx)(up,{filePath:t,sourceSessionId:r}),(0,d.jsxs)("span",{title:o(l?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:l?"#4ade80":"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"#4ade80":"var(--border)",display:"inline-block",boxShadow:l?"0 0 4px #4ade80":"none"}}),l?"live":"static"]})]}),(0,d.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:f?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:f}):(0,d.jsx)("iframe",{src:k,sandbox:w?void 0:"allow-same-origin",title:o("i18n.previewFile",{file:ew(t)}),style:{width:"100%",height:"100%",border:"none",background:w?"var(--bg)":"#eef1f5"}},k)})]})}function uy(e){let t,{filePath:n,cwd:r,sourceSessionId:i,onOpenFile:s,onMentionLines:o,onAtMention:l,gitRefreshKey:a,initialDisplayMode:c,initialState:p,initialPage:h,onStateChange:m,watchEnabled:f=!0}=e,g=function(){let e=(0,u.useSyncExternalStore)(cA,cP,cz),[t,n]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{if(!e)return void n(!1);let t=setTimeout(()=>n(!0),3e4);return()=>clearTimeout(t)},[3e4,e]),e&&t}(),x=f&&!g;return null!==(iE[iI(n)]??null)?(0,d.jsx)(uf,{filePath:n,cwd:r,sourceSessionId:i,watchEnabled:x}):iT(n)?(0,d.jsx)(ux,{filePath:n,cwd:r,sourceSessionId:i,watchEnabled:x}):iR(n)?(0,d.jsx)(uv,{filePath:n,cwd:r,sourceSessionId:i,watchEnabled:x}):null!==("pdf"===(t=iI(n))||"docx"===t?t:null)?(0,d.jsx)(ub,{filePath:n,cwd:r,sourceSessionId:i,initialPage:h,watchEnabled:x}):(0,d.jsx)(uw,{filePath:n,cwd:r,sourceSessionId:i,onOpenFile:s,onMentionLines:o,onAtMention:l,gitRefreshKey:a,initialDisplayMode:c,initialState:p,onStateChange:m,watchEnabled:x})}function uw(e){let{filePath:t,cwd:n,sourceSessionId:r,onOpenFile:i,onMentionLines:s,onAtMention:o,gitRefreshKey:l,initialDisplayMode:a,initialState:c,onStateChange:p,watchEnabled:h=!0}=e,{isDark:m}=sz(),{t:f}=(0,tw.s)(),[g,x]=(0,u.useState)(null),[v,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(!1),[j,k]=(0,u.useState)(!1),[S,C]=(0,u.useState)(!0),[N,E]=(0,u.useState)(!1),[$,M]=(0,u.useState)(null),I=c?.displayMode??a??"source",T=c?.wrapLines??function(e){if(!e)return!1;let t=(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??"";return ut.has(t)}(t),R=c?.scrollTop??0,L=c?.scrollLeft??0,[A,P]=(0,u.useState)(I),[z,W]=(0,u.useState)(T),[O,F]=(0,u.useState)(!1),D=(0,u.useRef)(null),B=(0,u.useRef)(0),_=(0,u.useRef)(null),H=(0,u.useRef)(0),U=(0,u.useRef)(null),q=(0,u.useRef)(!1),K=(0,u.useRef)(void 0===c&&void 0===a),V=(0,u.useRef)(!0),Z=(0,u.useRef)({displayMode:I,wrapLines:T,scrollTop:R,scrollLeft:L}),J=(0,u.useRef)(p),[Y,G]=(0,u.useState)(null),[X,Q]=(0,u.useState)(null);J.current=p;let ee=(0,u.useCallback)(e=>{Z.current.displayMode=e,P(e)},[]),et=(0,u.useCallback)(()=>{W(e=>{let t=!e;return Z.current.wrapLines=t,t})},[]);(0,u.useEffect)(()=>(Z.current={displayMode:I,wrapLines:T,scrollTop:R,scrollLeft:L},V.current=!0,q.current=!1,P(I),W(T),()=>{J.current?.({...Z.current})}),[t,r,I,T,R,L]);let en=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=++B.current;return fetch(uu(e,"read",r,{offset:t||void 0})).then(e=>e.json()).then(e=>n!==B.current?null:e.error?(M(e.error),null):(_.current=d_(e),M(null),x(n=>t&&n?{...e,content:n.content+e.content}:e),e)).catch(e=>(n!==B.current||M(String(e)),null))},[r]),er=(0,u.useCallback)(async e=>{let t=++H.current;if(w(!0),!n){b(null),w(!1),k(!0);return}try{let r=new URLSearchParams({cwd:n,path:e}),i=await fetch(`/api/git/diff?${r.toString()}`),s=await i.json();if(t!==H.current)return;b(i.ok&&s.supported&&"string"==typeof s.patch?s:null)}catch{t===H.current&&b(null)}finally{t===H.current&&(w(!1),k(!0))}},[n]);(0,u.useEffect)(()=>{let e=!0;return C(!0),M(null),x(null),b(null),k(!1),F(!1),_.current=null,en(t).finally(()=>{e&&C(!1)}),()=>{e=!1}},[t,en,r]),(0,u.useEffect)(()=>{if(F(!1),D.current&&(D.current.close(),D.current=null),!h)return;let e=!0,n=()=>{en(t),er(t)},i=ts("file-watch",new EventSource(uu(t,"watch",r)),t);D.current=i,i.addEventListener("connected",()=>{(F(!0),null===_.current)?n():fetch(uu(t,"meta",r)).then(e=>e.json()).then(r=>{e&&(dH(_.current,d_(r))?n():er(t))}).catch(()=>{e&&n()})}),i.addEventListener("change",n);let s=()=>{F(!1)};return i.addEventListener("error",s),i.onerror=s,()=>{e=!1,i.close(),D.current===i&&(D.current=null)}},[t,en,er,r,h]),(0,u.useEffect)(()=>{er(t)},[er,t,l]);let ei=g?.binary===!0,es=!ei&&null!==d0(t);(0,u.useEffect)(()=>{K.current&&g&&!g.binary&&(es||"markdown"===g.language&&!g.truncated||"html"===g.language&&(!g.truncated||g.size<=0xa00000))&&(K.current=!1,ee("preview"))},[g,es,ee]);let eo="preview"===A&&g?.language==="html"&&g.truncated&&g.size<=0xa00000;(0,u.useEffect)(()=>{if(!eo)return void Q(null);let e=new AbortController;return fetch(uu(t,"download",r),{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);Q({text:await e.text()})}).catch(t=>{e.signal.aborted||Q({error:String(t)})}),()=>e.abort()},[eo,g,t,r]);let el=v?.supported===!0&&"string"==typeof v.patch,ea=el&&"deleted"===v.status;(0,u.useEffect)(()=>{j&&!el&&"diff"===A&&ee("source")},[A,j,el,ee]),(0,u.useEffect)(()=>{"diff"===I&&el&&!q.current&&(q.current=!0,ee("diff"))},[I,el,ee]);let ec=(0,u.useMemo)(()=>g?.language==="markdown"?iG(g.content):"",[g]),ed=(0,u.useMemo)(()=>g?.language==="markdown"?dG(g.content):null,[g]),eu=g?.content??"",ep=(0,u.useMemo)(()=>eu.split("\n"),[eu]),eh=g?.language??"text",em=sD(!!g&&"text"!==eh),ef=!ei&&"html"===eh,eg=!ei&&"markdown"===eh,ex=es||(ef?!!g&&(!g.truncated||g.size<=0xa00000):eg&&!g?.truncated),ev=ea?"diff":A,eb=g?.truncated?X?.text:eu,ey=(0,u.useMemo)(()=>ef&&"preview"===ev?function(e){if(!e||e.includes(dU))return e;let t=dZ(dq,e,0),n=dZ(dK,e,t),r=dZ(dV,e,n),i=r>n?r:t;return e.slice(0,i)+dU+e.slice(i)}(eb??""):"",[ef,ev,eb]),eS=!!g?.truncated&&!(ef&&"preview"===ev),eC=ep.length>1e3&&!("diff"===ev&&el)&&!("preview"===ev&&ex),eN=(0,u.useMemo)(()=>(0,d.jsx)(sx.A,{className:z?"file-source-view is-wrapped":"file-source-view",language:"text"!==eh&&em?eh:"plaintext",style:m?ui:sv.vs,showLineNumbers:!0,lineNumberStyle:{...uo},customStyle:{margin:0,padding:0,border:0,backgroundColor:"var(--bg)",...ur,width:z?"100%":"max-content",minWidth:"100%",minHeight:"100%",overflow:"visible"},codeTagProps:{style:{fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",overflowWrap:z?"anywhere":"normal"}},renderer:e=>(0,d.jsx)(ud,{...e,wrapLines:z}),wrapLongLines:z,children:eu}),[m,eh,em,eu,z]),eE=(0,u.useMemo)(()=>eC?ep.map((e,t)=>(0,d.jsxs)("span",{className:"file-source-line","data-line-number":t+1,style:{display:"flex",minWidth:"100%"},children:[(0,d.jsx)("span",{"aria-hidden":"true",style:us,children:t+1}),(0,d.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:z?"anywhere":"normal",whiteSpace:z?"pre-wrap":"pre"},children:e})]},`source-line-${t}`)):null,[ep,eC,z]);(0,u.useEffect)(()=>{let e=()=>{let e=U.current;G(t=>{let n=s&&"source"===A&&e?uc(e,window.getSelection()):null;return null===t&&null===n||t&&n&&t.startLine===n.startLine&&t.endLine===n.endLine?t:n})};if(e(),s&&"source"===A)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[g?.content,A,s]);let e$=(0,u.useCallback)(e=>{s&&e&&s(ek(t,n),e.startLine,e.endLine)},[n,t,s]);if((0,u.useEffect)(()=>{if(!s||"source"!==A)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let n=U.current,r=n?uc(n,window.getSelection()):null;r&&(e.preventDefault(),e$(r))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[A,e$,s]),(0,u.useEffect)(()=>{if(!V.current||S||$&&!ea||"diff"===I&&!j||"diff"===I&&el&&"diff"!==A)return;let e=U.current;e&&(e.scrollTop=Z.current.scrollTop,e.scrollLeft=Z.current.scrollLeft,V.current=!1)},[g?.content,A,$,j,el,ea,S,I]),S||"diff"===I&&y&&!g)return(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:f("i18n.loading")});if($&&!ea)return(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:$});if(!g&&!ea)return null;let eM=ej(t),eI=ea?["diff"]:["source",...ex?["preview"]:[],...el?["diff"]:[]],eT=ea?f("files.deleted"):ei?`${f("files.binary")} \xb7 ${uh(g.size)}`:`${eh} \xb7 ${ep.length} lines \xb7 ${uh(g.size)}`;return(0,d.jsxs)("div",{className:"file-viewer-shell",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[(0,d.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,d.jsx)(ue,{filePath:t,cwd:n}),(0,d.jsx)("span",{className:"file-viewer-meta",title:eT,children:eT}),!ea&&(0,d.jsx)("span",{title:O?f("i18n.liveSync"):f("i18n.notWatching"),"aria-label":O?f("i18n.liveSync"):f("i18n.notWatching"),className:"file-viewer-live-indicator",style:{background:O?"#4ade80":"var(--border)",boxShadow:O?"0 0 4px #4ade80":"none"}}),(0,d.jsxs)("div",{className:"file-viewer-controls",children:[eI.length>1&&(0,d.jsx)("div",{className:"file-viewer-mode-switch","aria-label":f("i18n.fileViewMode"),children:eI.map(e=>{let t=ev===e;return(0,d.jsx)("button",{type:"button",onClick:()=>ee(e),title:"diff"===e?f("i18n.compareHead"):void 0,"aria-pressed":t,className:"file-viewer-mode-button",style:{background:t?"var(--bg-selected)":"transparent",color:t?"var(--text)":"var(--text-muted)"},children:un[e]},e)})}),(0,d.jsxs)("div",{className:"file-viewer-actions",children:[(0,d.jsx)(d7,{contentRef:U,enabled:h,partial:!!g?.truncated&&"diff"!==ev,mode:"preview"===ev&&(ef||es)?"embedded":ev,prepareSearch:()=>{"preview"===ev&&(ef||es)&&ee("source")}}),(o||s)&&(0,d.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{Y&&s?e$(Y):o?.(ek(t,n),!1)},title:Y&&s?`${f("i18n.mentionSelectedLines")} (L${Y.startLine}${Y.startLine!==Y.endLine?`-L${Y.endLine}`:""})`:f("files.insertPath"),"aria-label":f("files.mention"),disabled:!o&&!s,className:"file-viewer-icon-button",children:(0,d.jsx)(ul,{})}),("source"===ev||"diff"===ev)&&!ei&&(0,d.jsx)(d.Fragment,{children:(0,d.jsx)("button",{type:"button",onClick:et,title:z?f("i18n.disableWrap"):f("i18n.enableWrap"),"aria-label":z?f("i18n.disableWrap"):f("i18n.enableWrap"),"aria-pressed":z,className:"file-viewer-icon-button",style:{background:z?"var(--bg-selected)":"transparent",color:z?"var(--text)":"var(--text-muted)"},children:(0,d.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,d.jsx)("path",{d:"M3 6h18"}),(0,d.jsx)("path",{d:"M3 12h15a3 3 0 1 1 0 6h-4"}),(0,d.jsx)("path",{d:"m16 16-2 2 2 2"}),(0,d.jsx)("path",{d:"M3 18h7"})]})})})]}),!ea&&(0,d.jsx)(up,{filePath:t,sourceSessionId:r})]})]}),eS&&g?.truncated&&(0,d.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,d.jsxs)("span",{children:[uh(g.nextOffset)," / ",uh(g.size)]}),(0,d.jsx)("button",{type:"button",className:"file-viewer-mode-button",disabled:N,onClick:()=>{E(!0),en(t,g.nextOffset).finally(()=>E(!1))},children:N?f("i18n.loading"):f("i18n.loadMore")})]}),(0,d.jsx)("div",{ref:U,className:"file-viewer-content",tabIndex:0,onPointerDown:e=>{e.target.closest("button, a, input, textarea, select, [contenteditable='true']")||e.currentTarget.focus({preventScroll:!0})},onScroll:e=>{Z.current.scrollTop=e.currentTarget.scrollTop,Z.current.scrollLeft=e.currentTarget.scrollLeft},style:{flex:1,overflow:"auto",background:"var(--bg)",paddingBottom:eS?48:void 0},children:"diff"===ev&&el?(0,d.jsx)(um,{patch:v.patch,wrapLines:z}):ef&&"preview"===ev&&g?.truncated&&!X?.text?(0,d.jsx)("div",{style:{padding:24,color:"var(--text-dim)",fontSize:12},children:X?.error??f("i18n.loading")}):ef&&"preview"===ev?(0,d.jsx)("iframe",{srcDoc:ey,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:f("i18n.htmlPreview")}):eg&&"preview"===ev?(0,d.jsxs)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:[ed?.data&&(0,d.jsx)(d9,{data:ed.data}),(0,d.jsx)(iS.oz,{remarkPlugins:si,rehypePlugins:sd,urlTransform:i?iK:iq,components:{code(e){let{className:t,children:n,...r}=e,i=t?.replace("language-","").toLowerCase()??"",s=String(n);return t?.includes("language-")||s.includes("\n")?"mermaid"===i?(0,d.jsx)(sZ,{code:s.replace(/\n$/,""),defaultPreview:!0}):(0,d.jsx)(s1,{code:s.replace(/\n$/,""),lang:i}):(0,d.jsx)("code",{className:t,...r,children:n})},pre(e){let{children:t}=e;return(0,d.jsx)(d.Fragment,{children:t})},a(e){let{href:t,children:r,...s}=e;delete s.node;let o=i?is(t,eM,n??eM):null;return o&&i?(0,d.jsx)("a",{href:t,...s,onClick:e=>{ie(e)&&(e.preventDefault(),i(o,il(t)??void 0))},children:r}):iV(t)?(0,d.jsx)("a",{href:t,...s,target:"_blank",rel:"noopener noreferrer",children:r}):(0,d.jsx)("a",{href:t,...s,onClick:iZ,children:r})},img(e){let{src:t,alt:i,...s}=e;delete s.node;let o="string"==typeof t?is(t,eM,n??eM):null,l=o?uu(o,"read",r):t;return(0,d.jsx)("img",{src:l,alt:i??"",loading:"lazy",...s})}},children:ec})]}):es&&"preview"===ev?(0,d.jsx)(d6,{content:eu,filePath:t,complete:!g?.truncated,scrollRef:U}):ei?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,padding:24,color:"var(--text-muted)",fontSize:13,textAlign:"center"},children:[(0,d.jsx)("span",{children:f("files.binaryNoPreview")}),(0,d.jsx)("a",{href:uu(t,"download",r),download:ew(t),className:"file-viewer-mode-button",style:{display:"inline-flex",alignItems:"center",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",textDecoration:"none"},children:f("files.download")})]}):eC?(0,d.jsx)("div",{className:"file-source-view is-lightweight",style:{width:z?"100%":"max-content",minWidth:"100%",minHeight:"100%",background:"var(--bg)",...ur},children:eE}):eN})]})}function uj(e){let{tabs:t,activeTabId:n,onSelectTab:r,onCloseTab:i,onOpenFiles:s}=e,{t:o}=(0,tw.s)(),l=(0,u.useRef)(null);return(0,u.useEffect)(()=>{let e=l.current;if(!e)return;let t=t=>{t.ctrlKey||Math.abs(t.deltaY)<=Math.abs(t.deltaX)||e.scrollWidth<=e.clientWidth||(t.preventDefault(),e.scrollLeft+=t.deltaY*(1===t.deltaMode?16:2===t.deltaMode?e.clientWidth:1))};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[]),(0,u.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>{let t=e.querySelector('[role="tab"][aria-selected="true"]');if(!t)return;let n=e.getBoundingClientRect(),{left:r,right:i}=t.getBoundingClientRect();r<n.left?e.scrollLeft-=n.left-r:i>n.right&&(e.scrollLeft+=i-n.right)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[n,t.length]),(0,d.jsxs)("div",{className:"file-tab-strip",children:[(0,d.jsx)("div",{ref:l,role:"tablist",className:"file-tab-list tabbar-scroll",children:t.map(e=>{let s=e.id===n;return(0,d.jsxs)("div",{role:"tab",className:`file-tab${s?" is-active":""}`,"aria-label":"terminal"===e.kind?o("terminal.tabLabel",{name:e.label}):"agent"===e.kind?o("subagent.tabLabel",{name:e.label}):"side"===e.kind?o("sideChat.tabLabel"):e.label,"aria-selected":s,tabIndex:s||!n&&t[0].id===e.id?0:-1,onKeyDown:n=>{if(n.target===n.currentTarget){if("Enter"===n.key||" "===n.key)n.preventDefault(),r(e.id);else if(["ArrowLeft","ArrowRight","Home","End"].includes(n.key)){n.preventDefault();let i=t.findIndex(t=>t.id===e.id),s="Home"===n.key?0:"End"===n.key?t.length-1:(i+("ArrowRight"===n.key?1:-1)+t.length)%t.length;r(t[s].id),n.currentTarget.parentElement?.children[s]?.focus()}}},onClick:()=>r(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),e.closing||i(e.id))},children:[(0,d.jsx)("span",{className:"file-tab-icon",children:"terminal"===e.kind?(0,d.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,d.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,d.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):"agent"===e.kind?(0,d.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,d.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}):"side"===e.kind?(0,d.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,d.jsx)("path",{d:"M21 12a8 8 0 0 1-8 8H5.5a2 2 0 0 1-1.4-3.4A8 8 0 1 1 21 12z"})}):nM(e.label,17)}),(0,d.jsx)("span",{className:"file-tab-label",title:e.filePath,children:e.label}),(0,d.jsx)("button",{type:"button",className:"file-tab-close",disabled:e.closing,onClick:t=>{t.stopPropagation(),i(e.id)},title:o("terminal"===e.kind?"terminal.close":"i18n.close"),"aria-label":`${o("terminal"===e.kind?"terminal.close":"i18n.close")} ${e.label}`,children:(0,d.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,d.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]},e.id)})}),s&&(0,d.jsx)("button",{type:"button",className:"file-tab-add",onClick:s,title:o("files.chooseFile"),"aria-label":o("files.chooseFile"),children:(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M12 4v16M4 12h16"})})})]})}function uk(e,t,n,r){let i=e.findIndex(e=>e.id===t);if(-1===i||(e[i].viewerRevision??0)!==n)return e;let s=[...e];return s[i]={...s[i],viewerState:r},s}let uS=["general","models","skills","agents","plugins","mcp"],uC="pi-web:settings-navigation",uN=new Set(["skills","agents","plugins"]);function uE(){try{return window.localStorage}catch{return null}}function u$(e){let t=e.getItem(uC);if(!t)return{};try{let e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))return{};return{section:"string"==typeof e.section?e.section:void 0,selections:null===e.selections||"object"!=typeof e.selections||Array.isArray(e.selections)?void 0:e.selections}}catch{return{}}}function uM(e,t){return"models"===e?e:t?JSON.stringify([e,t]):"mcp"===e?e:null}function uI(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:uE();if(!t)return"general";try{let n=u$(t).section;if(!("string"==typeof n&&uS.includes(n)))return"general";return uN.has(n)&&!e?"general":n}catch{return"general"}}function uT(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:uE();if(t)try{let n=u$(t);n.section=e,t.setItem(uC,JSON.stringify(n))}catch{}}function uR(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:uE();if(!n)return null;let r=uM(e,t);if(!r)return null;try{let e=u$(n).selections?.[r];return"string"==typeof e&&e.length>0?e:null}catch{return null}}function uL(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:uE();if(!r||!t)return;let i=uM(e,n);if(i)try{let e=u$(r);e.selections={...e.selections,[i]:t},r.setItem(uC,JSON.stringify(e))}catch{}}function uA(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}class uP extends Error{constructor(e){super(`Context window of ${e} must be a positive number of tokens`),this.name="ContextWindowError",this.model=e}}function uz(e){if("string"==typeof e){let t=/^\d+$/.test(e.trim())?Number(e.trim()):0;return Number.isSafeInteger(t)&&t>0?t:void 0}return"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0}let uW={empty:e=>`Provider ${e} needs a Base URL or at least one model`,baseUrl:e=>`Provider ${e} needs a Base URL`};class uO extends Error{constructor(e,t){super(uW[t](e)),this.name="ProviderEntryError",this.provider=e,this.problem=t}}function uF(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function uD(e){return!uF(e)||"string"!=typeof e.id||e.id.trim().length>0}function uB(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function u_(e){let t=uB(e.inputLimits)?e.inputLimits.images:void 0,n=uB(t)?t.resize:void 0;return uB(n)?n.maxBytes:void 0}function uH(e){let t="string"==typeof e?/^\d+$/.test(e.trim())?Number(e.trim()):0:e;return"number"==typeof t&&Number.isSafeInteger(t)&&t>=1?t:void 0}function uU(e){let t=["B","KiB","MiB","GiB"],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;let i=0===r?String(n):String(Math.round(10*n)/10);return`${i} ${t[r]}`}class uq extends Error{constructor(e){super(`Image size limit of ${e} must be a positive whole number of bytes`),this.name="ImageMaxBytesError",this.model=e}}let uK=["input","output","cacheRead","cacheWrite"];function uV(e){return{input:e?.input===void 0?"":String(e.input),output:e?.output===void 0?"":String(e.output),cacheRead:e?.cacheRead===void 0?"":String(e.cacheRead),cacheWrite:e?.cacheWrite===void 0?"":String(e.cacheWrite)}}function uZ(e){if(!uJ(e))return;let t=e=>{if(!e.trim())return 0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:void 0},n=t(e.input),r=t(e.output),i=t(e.cacheRead),s=t(e.cacheWrite);if(void 0!==n&&void 0!==r&&void 0!==i&&void 0!==s)return{input:n,output:r,cacheRead:i,cacheWrite:s}}function uJ(e){return uK.some(t=>""!==e[t].trim())}function uY(e,t,n){return{...e,compat:{...e.compat??{},[t]:n}}}function uG(e){return new Map(Object.entries(e.providers??{}).map(e=>{let[t,n]=e;return[t,(n.models??[]).map(e=>e.id)]}))}function uX(e,t,n){if(n<=0)return;let r=e.get(t)??[];e.set(t,[...r,...Array.from({length:n},()=>null)])}function uQ(e,t){let{renames:n,savedProviders:r}=e;for(let[e,r]of n)if(r===t)return e;return!n.has(t)&&r.has(t)?t:null}function u0(e,t,n){let r=e.trim().toLowerCase();return!r||n.toLowerCase().includes(r)||t.toLowerCase().includes(r)}function u1(e){let{embedded:t,title:n,subtitle:r,closeLabel:i="Close",onClose:s,children:o,width:l=900,height:a="78vh"}=e,c=t?void 0:{"--config-panel-width":`${l}px`,"--config-panel-height":a};return(0,d.jsx)("div",{role:t?void 0:"dialog","aria-modal":t?void 0:"true","aria-label":n,className:`config-panel-root ${t?"is-embedded":"is-modal"}`,onClick:e=>{t||e.target!==e.currentTarget||s()},children:(0,d.jsxs)("div",{className:"config-panel-surface",style:c,children:[!t&&(0,d.jsxs)("div",{className:"config-panel-header",children:[(0,d.jsx)("strong",{className:"config-panel-title",children:n}),r&&(0,d.jsx)("code",{className:"config-panel-subtitle",title:r,children:r}),(0,d.jsx)("button",{type:"button",className:"config-close-button",onClick:s,title:i,"aria-label":i,children:"\xd7"})]}),o]})})}let u2=(0,u.createContext)(null);function u4(){return(0,u.useContext)(u2)??u8}let u8={detailOpen:!1,openDetail:()=>{},closeDetail:()=>{},reportDetailTitle:()=>{}};function u3(e,t){let{detailOpen:n,reportDetailTitle:r}=u4(),i=(0,u.useRef)(null);return(0,u.useLayoutEffect)(()=>{let t=i.current;if(!e||!n||!t||t.closest("[hidden]"))return;let s=(t.querySelector(".config-sidebar-text")??t).textContent?.trim();s&&r(s)}),e=>{i.current=e,"function"==typeof t?t(e):t&&(t.current=e)}}function u6(e){let{children:t}=e,n=(0,u.useContext)(u2);return(0,d.jsx)("div",{className:"config-split-view","data-pane":n?n.detailOpen?"detail":"list":void 0,children:t})}function u5(e){let{children:t}=e;return(0,d.jsx)("aside",{className:"config-sidebar",children:t})}function u9(e){let{children:t}=e;return(0,d.jsx)("div",{className:"config-sidebar-list",children:t})}function u7(e){let{children:t,aside:n}=e;return(0,d.jsxs)("div",{className:"config-sidebar-group-label",children:[(0,d.jsx)("span",{className:"config-sidebar-group-label-text",children:t}),n]})}function pe(e){let{enabled:t,total:n,checked:r,label:i,disabled:s=!1,loading:o=!1,describedBy:l,onChange:a}=e;return(0,d.jsxs)("span",{className:"config-sidebar-group-switch",children:[(0,d.jsxs)("span",{className:"config-sidebar-group-count",children:[t,"/",n]}),(0,d.jsx)(pC,{checked:r??(n>0&&t===n),disabled:s,loading:o,label:i,describedBy:l,onChange:a})]})}function pt(e){let{error:t,note:n}=e;return t||n?(0,d.jsxs)("div",{className:"config-sidebar-group-status",children:[n&&(0,d.jsx)("div",{role:"status",className:"config-sidebar-group-note",children:n}),t&&(0,d.jsx)("div",{role:"alert",className:"config-sidebar-group-error",children:t})]}):null}function pn(e){let{active:t=!1,className:n,children:r,onClick:i,ref:s,...o}=e,{openDetail:l}=u4(),a=u3(t,s);return(0,d.jsx)("button",{type:"button",...o,ref:a,onClick:e=>{i?.(e),e.defaultPrevented||l()},"aria-current":t?"page":void 0,className:["config-sidebar-item",n].filter(Boolean).join(" "),children:r})}function pr(e){let{className:t,...n}=e;return(0,d.jsx)("span",{...n,className:["config-sidebar-text",t].filter(Boolean).join(" ")})}function pi(e){let{className:t,...n}=e;return(0,d.jsx)("div",{...n,className:["config-detail-stack",t].filter(Boolean).join(" ")})}function ps(e){let{className:t,...n}=e;return(0,d.jsx)("div",{...n,className:["config-detail-header",t].filter(Boolean).join(" ")})}function po(e){let{className:t,...n}=e;return(0,d.jsx)("div",{...n,className:["config-detail-header-info",t].filter(Boolean).join(" ")})}function pl(e){let{className:t,...n}=e;return(0,d.jsx)("div",{...n,className:["config-detail-actions",t].filter(Boolean).join(" ")})}function pa(e){let{children:t}=e;return(0,d.jsx)("div",{className:"config-detail-title",children:t})}function pc(e){let{children:t}=e;return(0,d.jsx)("div",{className:"config-section-title",children:t})}function pd(e){let{label:t,children:n,style:r,ref:i}=e;return(0,d.jsxs)("div",{ref:i,className:"config-field",style:r,children:[(0,d.jsx)("span",{className:"config-field-label",children:t}),n]})}function pu(e){let{children:t}=e;return(0,d.jsx)("div",{className:"config-detail-grid",children:t})}function pp(e){let{label:t,tone:n="muted",mono:r=!1,className:i,style:s,children:o}=e;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"config-detail-grid-label",children:t}),(0,d.jsx)("div",{className:["config-detail-grid-value","plain"===n?null:`is-${n}`,r?"is-mono":null,i].filter(Boolean).join(" "),style:s,children:o})]})}function ph(e){let{scope:t,children:n}=e;return(0,d.jsx)("span",{className:`config-scope-tag${"project"===t?" is-project":""}`,children:n})}function pm(e){let{value:t,options:n,label:r,disabledReason:i,size:s="default",onChange:o,children:l}=e,a=(0,u.useId)(),c=i&&n.some(e=>e.disabled)?i:null;return(0,d.jsxs)("div",{className:"config-scope-switch-field",children:[(0,d.jsxs)("div",{className:"config-scope-switch-row",children:[(0,d.jsx)("div",{role:"group","aria-label":r,className:`config-scope-switch${"small"===s?" is-small":""}`,children:n.map(e=>(0,d.jsx)("button",{type:"button","aria-pressed":e.value===t,"aria-describedby":e.disabled&&c?a:void 0,disabled:e.disabled,className:"config-scope-switch-option",onClick:()=>{e.disabled||o(e.value)},children:e.label},e.value))}),l]}),c&&(0,d.jsx)("span",{id:a,className:"config-scope-switch-reason",children:c})]})}function pf(e){let{value:t,options:n,label:r,path:i,disabledReason:s,onChange:o,children:l}=e;return(0,d.jsxs)("div",{className:"config-save-target",children:[(0,d.jsx)(pm,{value:t,options:n,label:r,disabledReason:s,size:"small",onChange:o,children:(0,d.jsx)("span",{className:"config-save-target-path",children:"string"==typeof i?i.split(/([\\/])/).map((e,t)=>"/"===e||"\\"===e?(0,d.jsxs)(u.Fragment,{children:[e,(0,d.jsx)("wbr",{})]},t):e):i})}),l]})}function pg(e){let{title:t,catalogs:n,target:r}=e;return(0,d.jsxs)("div",{className:"config-add-source-heading",children:[(0,d.jsxs)("div",{className:"config-add-source-title-row",children:[(0,d.jsx)(pa,{children:t}),(0,d.jsx)("span",{className:"config-add-source-catalogs",children:n.map(e=>(0,d.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"config-add-source-catalog",children:[e.icon,e.label]},e.href))})]}),r]})}function px(e){let{title:t,catalogs:n,target:r,inputLabel:i,inputId:s,placeholder:o,value:l,canSubmit:a,normalizeValue:c,onValueChange:p,onSubmit:h,examplesLabel:m,examples:f,error:g,multiline:x=!1,children:v}=e,b=(0,u.useRef)(null),y=(0,u.useRef)(null);(0,u.useEffect)(()=>{x?window.matchMedia?.("(pointer: coarse)").matches||y.current?.focus():b.current?.focus()},[x]);let w=e=>{if(!c)return;let t=e.clipboardData.getData("text"),n=c(t);n!==t&&(e.preventDefault(),p(n))};return(0,d.jsxs)(pi,{className:"is-fill",children:[(0,d.jsx)(pg,{title:t,catalogs:n,target:r}),(0,d.jsx)(pd,{label:i,children:x?(0,d.jsx)("textarea",{id:s,ref:y,value:l,"aria-label":i,className:"config-add-source-input is-multiline",placeholder:o,rows:5,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:e=>p(e.target.value),onPaste:w,onBlur:e=>{c&&p(c(e.currentTarget.value))},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&e.nativeEvent?.isComposing!==!0&&229!==e.keyCode&&(e.preventDefault(),a&&h())}}):(0,d.jsx)("input",{id:s,ref:b,value:l,"aria-label":i,className:"config-add-source-input",placeholder:o,onChange:e=>p(e.target.value),onPaste:w,onBlur:e=>{c&&p(c(e.currentTarget.value))},onKeyDown:e=>{"Enter"===e.key&&a&&h()}})}),v,f.length>0&&(0,d.jsxs)("div",{className:"config-add-source-examples",children:[(0,d.jsx)("div",{className:"config-add-source-examples-label",children:m}),(0,d.jsx)("div",{className:"config-add-source-example-list",children:f.map(e=>"string"==typeof e?(0,d.jsx)("button",{type:"button",className:"config-add-source-example",onClick:()=>p(e),children:e},e):(0,d.jsxs)("button",{type:"button",className:"config-add-source-example has-label",onClick:()=>p(e.value),children:[(0,d.jsx)("span",{className:"config-add-source-example-label",children:e.label}),(0,d.jsx)("span",{className:"config-add-source-example-value",children:e.value})]},e.value))})]}),g&&(0,d.jsx)("div",{role:"alert",className:"config-add-source-error",children:g})]})}function pv(e){let{id:t,action:n,children:r}=e;return(0,d.jsxs)("div",{id:t,role:"status",className:`config-notice${n?" has-action":""}`,children:[n?(0,d.jsx)("span",{className:"config-notice-text",children:r}):r,n]})}function pb(e){let{id:t,message:n,trustLabel:r,trusting:i=!1,onTrust:s}=e;return(0,d.jsx)(pv,{id:t,action:s&&r?(0,d.jsx)(pS,{size:"small",onClick:s,disabled:i,children:r}):void 0,children:n})}function py(e){let{children:t}=e;return(0,d.jsx)("div",{className:"config-empty-state",children:t})}function pw(e){let{children:t,style:n}=e;return(0,d.jsx)("div",{className:"config-detail",style:n,children:t})}function pj(e){let{status:t,children:n}=e;return(0,d.jsxs)("footer",{className:"config-footer",children:[(0,d.jsx)("div",{className:"config-footer-status",children:t}),(0,d.jsx)("div",{className:"config-footer-actions",children:n})]})}function pk(e){let{summary:t,tone:n="default",details:r}=e,i=`config-footer-status-summary${"default"===n?"":` is-${n}`}`;return r?.length?(0,d.jsxs)("details",{className:"config-footer-status-details",children:[(0,d.jsx)("summary",{className:i,children:t}),(0,d.jsx)("ul",{className:"config-footer-status-list",children:r.map((e,t)=>(0,d.jsx)("li",{children:e},t))})]}):(0,d.jsx)("span",{className:i,children:t})}function pS(e){let{variant:t="secondary",size:n="default",className:r,children:i,...s}=e;return(0,d.jsx)("button",{type:"button",...s,className:["config-button",`config-button-${t}`,`config-button-${n}`,r].filter(Boolean).join(" "),children:i})}function pC(e){let{checked:t,disabled:n=!1,loading:r=!1,size:i="default",label:s,describedBy:o,onChange:l}=e,a=n||r;return(0,d.jsx)("button",{type:"button",role:"switch","aria-checked":t,"aria-busy":r||void 0,"aria-label":s,"aria-describedby":o,title:s,disabled:a,className:`config-switch${"small"===i?" is-small":""}${r?" is-loading":""}`,onClick:()=>l(!t),children:(0,d.jsx)("span",{className:"config-switch-knob","aria-hidden":"true"})})}function pN(e){let{active:t=!1,children:n,className:r,onClick:i,ref:s,...o}=e,{openDetail:l}=u4(),a=u3(t,s);return(0,d.jsx)("div",{className:"config-list-action",children:(0,d.jsxs)("button",{type:"button",...o,ref:a,onClick:e=>{i?.(e),e.defaultPrevented||l()},"aria-current":t?"page":void 0,className:["config-list-action-button",r].filter(Boolean).join(" "),children:[(0,d.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,d.jsx)("path",{d:"M12 5v14M5 12h14"})}),n]})})}function pE(e){let{active:t,color:n}=e;return(0,d.jsx)("span",{"aria-hidden":"true",className:`config-status-dot${t?" is-active":!1===t?" is-inactive":""}`,style:n?{backgroundColor:n}:void 0})}function p$(e,t){let n=t.filter(e=>!e.enabled).map(e=>e.ref),r=t.filter(e=>e.enabled).map(e=>e.ref),i=e?.editable===!0;return{enableRefs:n,disableRefs:r,canEnable:i&&n.length>0,canDisable:i&&r.length>0&&(e?.enabledTotal??0)-r.length>=1}}function pM(e,t){let n=p$(e,t.models),r=t.models.length>0&&t.enabledCount===t.models.length,i=r?!n.canDisable:!n.canEnable;return{checked:r,blocked:i,reason:i?e?.editable?"last-model":"project-scope":null}}function pI(e,t){return t.enabled&&(e?.enabledTotal??0)<=1}function pT(e,t){return e?.providers.find(e=>e.id===t)}function pR(e){let{modelName:t,effective:n,value:r,onChange:i,disabled:s=!1,describedBy:o}=e,{t:l}=(0,tw.s)(),a=void 0!==r&&void 0===uz(r);return(0,d.jsx)("input",{type:"text",inputMode:"numeric",className:"model-context-input",value:void 0===r?"":String(r),placeholder:void 0===n?void 0:String(n),title:l("models.contextWindow"),"aria-label":l("models.contextForModel",{model:t}),"aria-invalid":a||void 0,"aria-describedby":o,disabled:s,onChange:e=>i(""===e.target.value.trim()?void 0:e.target.value)})}let pL={"last-model":"models.enabledLastModel","project-scope":"models.enabledProjectScope"};function pA(e){let{controller:t}=e,{t:n}=(0,tw.s)(),{view:r,pending:i}=t;if(!r)return null;let s=!r.allEnabled,o=r.stalePatterns.length;return s||0!==o?(0,d.jsxs)("div",{className:"enabled-models-banner",children:[(0,d.jsxs)("span",{className:"enabled-models-banner-text",...o>0?{title:n("models.enabledStaleHint")}:{},children:[(0,d.jsx)("code",{className:"enabled-models-banner-key",title:r.settingsPath,children:r.settingsPath}),(0,d.jsxs)("code",{className:"enabled-models-banner-facts",children:[`\xb7 enabledModels ${r.enabledTotal}/${r.availableTotal}`,o>0&&` \xb7 ${n("models.enabledStale",{count:o})}`]})]}),r.editable&&o>0&&(0,d.jsx)(pS,{size:"small",onClick:t.pruneStale,disabled:null!==i,title:n("models.enabledPruneHint"),children:n("models.enabledPrune")}),r.editable&&s&&(0,d.jsx)(pS,{size:"small",onClick:t.clearScope,disabled:null!==i,title:n("models.enabledClearHint"),children:n("models.enabledClear")})]}):null}function pP(e){let{providerId:t,controller:n,noteId:r}=e,{t:i}=(0,tw.s)(),{view:s,loading:o,pending:l,failure:a}=n,c=pT(s,t),u=a?a.messageKey?i(a.messageKey):a.message:null,p=pz(n,t)?r:void 0;if(o&&!s)return null;if(!c)return(0,d.jsx)(pC,{checked:!1,disabled:!0,label:i("models.enabledProviderToggle",{provider:t}),describedBy:p,onChange:()=>{}});let h=pM(s,c);return(0,d.jsxs)(d.Fragment,{children:[u&&(0,d.jsx)("span",{className:"enabled-models-switch-error",children:u}),(0,d.jsx)(pC,{checked:h.checked,loading:l===`provider:${c.id}`,disabled:null!==l||h.blocked,label:i("models.enabledProviderToggle",{provider:c.name}),describedBy:p,onChange:e=>n.setProvider(c.id,e)})]})}function pz(e,t){let{view:n,loading:r}=e;if(r&&!n)return null;let i=pT(n,t);if(!i)return"models.enabledCustomEmpty";let{reason:s}=pM(n,i);return s?pL[s]:null}function pW(e){let{providerId:t,controller:n,id:r}=e,{t:i}=(0,tw.s)(),s=pz(n,t);return s?(0,d.jsx)("div",{id:r,className:"config-detail-heading-note",children:i(s)}):null}function pO(e){var t;let n,{providerId:r,controller:i,contextSettings:s}=e,{t:o}=(0,tw.s)(),[l,a]=(0,u.useState)(""),{view:c,loading:p,pending:h,failure:m}=i,f=pT(c,r),g=function(e,t){let[n,r]=(0,u.useState)(!1),[i,s]=(0,u.useState)(null);return(0,u.useEffect)(()=>s(null),[e]),{refreshing:n,note:i,refresh:(0,u.useCallback)(()=>{r(!0),s(null),(async()=>{try{let n=await fetch("/api/models/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);"offline"===r.reason?s("models.catalogOffline"):r.completed?s(r.changed?"models.catalogUpdated":"models.catalogUnchanged"):s("models.catalogUnreachable"),r.changed&&t()}catch{s("models.catalogUnreachable")}finally{r(!1)}})()},[e,t])}}(r,i.refresh),x=(0,u.useId)();if((0,u.useEffect)(()=>a(""),[r]),p&&!c)return(0,d.jsx)("div",{className:"enabled-models-empty",children:o("agents.modelsLoading")});if(!f)return m?.message?(0,d.jsx)("div",{className:"enabled-models-error",children:m.message}):(0,d.jsx)("div",{className:"enabled-models-empty",children:o("models.enabledUnavailable")});let v=(t=f.models,(n=l.trim().toLowerCase())?t.filter(e=>e.id.toLowerCase().includes(n)||e.name.toLowerCase().includes(n)):[...t]),b=p$(c,v),y=v.length!==f.models.length,w=null!==h,j=`provider:${f.id}`,k=c?.editable===!0,S=`${x}-scope`,C=`${x}-last`,N=`${x}-context`,E=k&&!b.canDisable&&b.disableRefs.length>0,$=E||k&&v.some(e=>pI(c,e)),M=(e,t)=>{y?i.setModels(j,t,e):i.setProvider(f.id,e)};return(0,d.jsxs)("div",{className:"enabled-models-section",children:[(0,d.jsxs)("div",{className:"enabled-models-header",children:[(0,d.jsx)("span",{className:"enabled-models-title",children:o("models.enabledSection")}),(0,d.jsx)("span",{className:"enabled-models-count",children:o("models.enabledCount",{enabled:f.enabledCount,total:f.models.length})}),(0,d.jsx)(pS,{size:"small",disabled:w||!b.canEnable,"aria-describedby":k?void 0:S,onClick:()=>M(!0,b.enableRefs),children:y?o("models.enableShown"):o("models.enableAll")}),(0,d.jsx)(pS,{size:"small",disabled:w||!b.canDisable,"aria-describedby":k?E?C:void 0:S,onClick:()=>M(!1,b.disableRefs),children:y?o("models.disableShown"):o("models.disableAll")}),(0,d.jsx)(pS,{size:"small",disabled:w||g.refreshing,title:o("models.refreshCatalogHint"),onClick:g.refresh,children:g.refreshing?o("models.refreshingCatalog"):o("models.refreshCatalog")})]}),g.note&&(0,d.jsx)("div",{className:"enabled-models-note",children:o(g.note)}),!k&&(0,d.jsx)("div",{id:S,className:"enabled-models-note",children:o("models.enabledProjectScope")}),$&&(0,d.jsx)("div",{id:C,className:"enabled-models-note",children:o("models.enabledLastModel")}),m&&(0,d.jsx)("div",{className:"enabled-models-error",children:m.messageKey?o(m.messageKey):m.message}),f.models.length>8&&(0,d.jsx)("input",{value:l,onChange:e=>a(e.target.value),placeholder:o("models.enabledFilterPlaceholder",{count:f.models.length}),"aria-label":o("models.enabledFilter"),className:"enabled-models-filter"}),s&&(0,d.jsx)("div",{id:N,className:"enabled-models-note",children:o("models.contextOverrideHelp")}),(0,d.jsx)("div",{className:"enabled-models-list",children:0===v.length?(0,d.jsx)("div",{className:"enabled-models-empty",children:o("models.enabledNoMatches")}):v.map(e=>{let t=pI(c,e),n=s?.overrides?.[e.id],r=n&&"object"==typeof n&&!Array.isArray(n)?n.contextWindow:void 0;return(0,d.jsxs)("div",{className:"enabled-models-row",children:[(0,d.jsxs)("span",{className:"enabled-models-row-text",children:[(0,d.jsx)("span",{className:"enabled-models-row-name",children:e.name}),(0,d.jsx)("code",{className:"enabled-models-row-id",children:e.id})]}),e.thinkingPin&&(0,d.jsx)("span",{className:"enabled-models-pin",title:o("models.enabledPinHint"),children:e.thinkingPin}),s&&(0,d.jsx)(pR,{modelName:e.name,effective:e.contextWindow,value:r,disabled:s.disabled,describedBy:N,onChange:t=>s.onChange(e.id,t)}),(0,d.jsx)(pC,{checked:e.enabled,loading:h===e.ref,disabled:w||!c?.editable||t,label:o("models.enabledToggle",{model:e.name}),describedBy:k?t?C:void 0:S,onChange:t=>i.setModels(e.ref,[e.ref],t)})]},e.ref)})})]})}function pF(e){let{message:t,hint:n,value:r,placeholder:i,submitLabel:s,inputLabel:o,disabled:l=!1,plainEnterSubmits:a=!0,inputRef:c,onValueChange:u,onSubmit:p}=e,h=!l&&r.trim().length>0;return(0,d.jsxs)("div",{className:"oauth-paste-panel",children:[(0,d.jsx)("p",{className:"oauth-paste-message",children:t}),n&&(0,d.jsx)("p",{className:"oauth-paste-hint",children:n}),(0,d.jsxs)("div",{className:"oauth-paste-row",children:[(0,d.jsx)("input",{ref:c,value:r,className:"oauth-paste-input",placeholder:i,"aria-label":o,disabled:l||void 0,onChange:e=>u(e.target.value),onKeyDown:e=>{var t;t={key:e.key,metaKey:e.metaKey,ctrlKey:e.ctrlKey,isComposing:e.nativeEvent.isComposing,keyCode:e.keyCode},"Enter"===t.key&&!t.isComposing&&229!==t.keyCode&&(a||t.metaKey||t.ctrlKey)&&h&&p()}}),(0,d.jsx)("button",{type:"button",className:"oauth-paste-submit",onClick:p,disabled:!h,children:s})]})]})}let pD={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 pB(e){let{id:t,size:n}=e,r=pD[t];if(r)return(0,d.jsx)("svg",{"aria-hidden":"true",width:n,height:n,viewBox:"0 0 24 24",fill:r.color?void 0:"currentColor",style:{color:"var(--text-muted)",flexShrink:0},children:(0,d.jsx)("use",{href:`/provider-icons.svg#${r.symbol}`})});let i=t.split(/[-_]/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?";return(0,d.jsx)("span",{"aria-hidden":"true",style:{width:n,height:n,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*n)),fontWeight:700,lineHeight:1},children:i})}let p_=["openai-codex","deepseek","openrouter","moonshotai","moonshotai-cn","minimax","minimax-cn","vercel-ai-gateway","opencode-go","kimi-coding"],pH="pi-web:provider-usage:";function pU(e){let{providerId:t,enabled:n}=e;return p_.includes(t)?(0,d.jsx)(pq,{providerId:t,enabled:n}):null}function pq(e){let{providerId:t,enabled:n}=e,[r,i]=(0,u.useState)(null),[s,o]=(0,u.useState)(!1),[l,a]=(0,u.useState)(null),[c,p]=(0,u.useState)(!1),h=(0,u.useRef)(null),{locale:m,t:f}=(0,tw.s)();(0,u.useEffect)(()=>{h.current&&clearTimeout(h.current),p(!1),i(null);try{let e=localStorage.getItem(`${pH}${t}`);if(e){let t=JSON.parse(e);t?.status==="ready"&&t.report&&Array.isArray(t.report.buckets)&&Array.isArray(t.report.metrics)&&i(t)}}catch{try{localStorage.removeItem(`${pH}${t}`)}catch{}}return a(null),()=>{h.current&&clearTimeout(h.current)}},[t]);let g=(0,u.useCallback)(async()=>{o(!0),a(null);try{let e=await fetch("/api/provider-usage/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerId:t})}),n=await e.json();if(!e.ok)throw Error(n.error??`HTTP ${e.status}`);if("ready"===n.status){i(n);try{localStorage.setItem(`${pH}${t}`,JSON.stringify(n))}catch{}p(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>p(!1),2e3)}else a(n.message??f("providerUsage.queryFailed"))}catch(e){a(e instanceof Error?e.message:f("providerUsage.queryFailed"))}finally{o(!1)}},[t,f]),x=r?.status==="ready"?r.report:void 0;return(0,d.jsxs)("section",{style:{paddingTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[(0,d.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:600,lineHeight:1.35},children:f("providerUsage.usage")}),(0,d.jsx)("button",{type:"button",onClick:g,disabled:!n||s,title:f(s?"providerUsage.refreshing":"providerUsage.refresh"),"aria-label":f(s?"providerUsage.refreshing":"providerUsage.refresh"),style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:32,height:30,padding:0,background:"none",border:"none",color:c?"#4ade80":"var(--text-dim)",cursor:n&&!s?"pointer":"default",borderRadius:5,flexShrink:0,opacity:n?1:.6,transition:"color 0.3s"},children:c?(0,d.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,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:s?{animation:"spin 0.8s linear infinite"}:void 0,"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"})]})}),x&&(0,d.jsx)("span",{title:new Date(x.capturedAt).toLocaleString(m),style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:f("providerUsage.updated",{time:(0,ra.ob)(x.capturedAt,m)})})]}),!x&&!l&&(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:f("providerUsage.notQueried")}),l&&(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171"},children:l}),x&&(0,d.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:[x.buckets.map(e=>(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.groupLabel?`${e.groupLabel} / ${e.label}`:e.label}),(0,d.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:function(e,t){if("percent"===e.unit&&void 0!==e.remaining){let t=e.resetsAt?` / ${new Date(1e3*e.resetsAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`:"";return`${Math.round(e.remaining)}%${t}`}return"currency"===e.unit?`${"CNY"===e.currency?"CNY ":"$"}${pK(e.remaining??e.limit)}`:void 0!==e.remaining&&void 0!==e.limit?`${pK(e.remaining)} / ${pK(e.limit)}`:e.period??t}(e,f("providerUsage.available"))})]},e.id)),x.metrics.map(e=>{var t;return(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label}),(0,d.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"currency"===(t=e).unit?`${"CNY"===t.currency?"CNY ":"$"}${t.value}`:String(t.value)})]},e.id)})]})]})}function pK(e){return void 0===e?"-":Number.isInteger(e)?String(e):e.toFixed(2)}function pV(){let e=uR("models");if(!e)return null;try{let t=JSON.parse(e);if(null===t||"object"!=typeof t)return null;if("provider"===t.type&&"string"==typeof t.name)return{type:"provider",name:t.name};if("model"===t.type&&"string"==typeof t.providerName&&"number"==typeof t.index&&Number.isInteger(t.index)&&t.index>=0)return{type:"model",providerName:t.providerName,index:t.index};if(("oauth"===t.type||"apikey"===t.type)&&"string"==typeof t.providerId)return{type:t.type,providerId:t.providerId}}catch{}return null}function pZ(e){return 1===Object.keys(e).length&&Object.keys(e.modelOverrides??{}).length>0}let pJ=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"],pY={empty:"models.providerIncomplete",baseUrl:"models.providerNeedsBaseUrl"};function pG(e){let{label:t,children:n}=e;return(0,d.jsx)(pd,{label:t,children:n})}let pX={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 pQ(e){let{value:t,onChange:n,placeholder:r,mono:i}=e;return(0,d.jsx)("input",{value:t,onChange:e=>n(e.target.value),placeholder:r,style:{...pX,fontFamily:i?"var(--font-mono)":"inherit"}})}function p0(e){let{value:t,onChange:n,placeholder:r,mono:i,onKeyDown:s,autoComplete:o="off",spellCheck:l=!1,style:a}=e,[c,p]=(0,u.useState)(!1),{t:h}=(0,tw.s)();return(0,u.useEffect)(()=>{t||p(!1)},[t]),(0,d.jsxs)("div",{style:{position:"relative",width:"100%",...a},children:[(0,d.jsx)("input",{type:c?"text":"password",value:t,onChange:e=>n(e.target.value),onKeyDown:s,placeholder:r,style:{...pX,paddingRight:34,fontFamily:i?"var(--font-mono)":"inherit"},autoComplete:o,spellCheck:l}),(0,d.jsx)("button",{type:"button",onClick:()=>p(e=>!e),"aria-label":h(c?"i18n.hideDetails":"i18n.showDetails"),title:h(c?"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:c?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.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,d.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,d.jsx)("path",{d:"M14.12 14.12A3 3 0 0 1 9.88 9.88"}),(0,d.jsx)("path",{d:"M1 1l22 22"})]}):(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})}function p1(e){let{value:t,onChange:n,placeholder:r,invalid:i}=e;return(0,d.jsx)("input",{type:"number",value:t,onChange:e=>n(e.target.value),placeholder:r,"aria-invalid":i||void 0,style:i?{...pX,borderColor:"#ef4444"}:pX})}function p2(e){let{value:t,onChange:n,options:r,required:i}=e,{t:s}=(0,tw.s)();return(0,d.jsxs)("select",{value:t,onChange:e=>n(e.target.value),style:{...pX,color:t?"var(--text)":"var(--text-dim)"},children:[!i&&(0,d.jsxs)("option",{value:"",children:["— ",s("i18n.default")," / none —"]}),r.map(e=>(0,d.jsx)("option",{value:e,children:e},e))]})}function p4(e){let{label:t,checked:n,onChange:r}=e;return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,d.jsx)("input",{type:"checkbox",checked:n,onChange:e=>r(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),t]})}function p8(e){let{children:t}=e;return(0,d.jsx)(pc,{children:t})}function p3(e){let{name:t,editingName:n,provider:r,onChange:i,onEditingNameChange:s,onRename:o,onDelete:l,onAddModels:a,enabledModels:c}=e,{t:p}=(0,tw.s)(),[h,m]=(0,u.useState)({phase:"idle"}),[f,g]=(0,u.useState)(""),[x,v]=(0,u.useState)([]),b=(0,u.useRef)(0),y=(0,u.useRef)(null),w=(0,u.useId)(),j=(e,t)=>i({...r,[e]:t});(0,u.useEffect)(()=>{b.current+=1,m({phase:"idle"}),g(""),v([])},[t,r.baseUrl,r.api,r.apiKey]);let k=(0,u.useCallback)(async()=>{if("loading"===h.phase)return;let e=++b.current;m({phase:"loading"}),v([]);try{let n=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:{...r,models:void 0}})}),i=await n.json();if(e!==b.current)return;if(!n.ok||i.error||!i.models)return void m({phase:"error",message:i.error??`HTTP ${n.status}`});m({phase:"success",models:i.models,endpoint:i.endpoint??r.baseUrl??""})}catch(t){if(e!==b.current)return;m({phase:"error",message:t instanceof Error?t.message:String(t)})}},[h.phase,t,r]),S=new Set((r.models??[]).map(e=>e.id)),C="success"===h.phase?h.models:[],N=f.trim().toLocaleLowerCase(),E=C.filter(e=>!N||e.id.toLocaleLowerCase().includes(N)||e.name?.toLocaleLowerCase().includes(N)),$=E.slice(0,300),M=$.filter(e=>!S.has(e.id)).map(e=>e.id),I=x.filter(e=>!S.has(e)).length,T=M.length>0&&M.every(e=>x.includes(e)),R=!T&&M.some(e=>x.includes(e));return(0,u.useEffect)(()=>{y.current&&(y.current.indeterminate=R)},[R]),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)("div",{className:"config-detail-heading",children:[(0,d.jsxs)(ps,{children:[(0,d.jsx)(po,{children:(0,d.jsx)(p8,{children:p("i18n.provider")})}),(0,d.jsxs)(pl,{children:[(0,d.jsx)(pP,{providerId:t,controller:c,noteId:w}),(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:l,children:p("i18n.delete")})]})]}),(0,d.jsx)(pW,{providerId:t,controller:c,id:w})]}),(0,d.jsxs)(pG,{label:p("i18n.providerName"),children:[(0,d.jsx)(pQ,{value:n,onChange:s,placeholder:"provider-name",mono:!0}),n!==t&&n.trim()&&(0,d.jsx)("button",{onClick:()=>o(n.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:p("i18n.rename")})]}),(0,d.jsx)(pG,{label:"Base URL",children:(0,d.jsx)(pQ,{value:r.baseUrl??"",onChange:e=>j("baseUrl",e||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,d.jsx)(pG,{label:"API Key",children:(0,d.jsx)(p0,{value:r.apiKey??"",onChange:e=>j("apiKey",e||void 0),placeholder:p("models.apiKeyPlaceholder"),mono:!0})}),(0,d.jsx)(pG,{label:"API",children:(0,d.jsx)(p2,{value:r.api??"",onChange:e=>j("api",e||void 0),options:pJ})}),(0,d.jsx)(pG,{label:"Headers",children:(0,d.jsx)(hn,{headers:r.headers,onChange:e=>j("headers",e)})}),(0,d.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:["success"!==h.phase&&(0,d.jsx)("button",{onClick:k,disabled:"loading"===h.phase,style:{alignSelf:"flex-start",height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"loading"===h.phase?"var(--text-dim)":"var(--text-muted)",cursor:"loading"===h.phase?"not-allowed":"pointer",fontSize:11},children:"loading"===h.phase?p("models.discoveryFetching"):p("models.discoveryFetch")}),"error"===h.phase&&(0,d.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:h.message}),"success"===h.phase&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("input",{value:f,onChange:e=>g(e.target.value),placeholder:p("models.discoveryFilterPlaceholder",{count:h.models.length}),"aria-label":p("models.discoveryFilter"),style:{...pX,width:"100%",minWidth:0}}),(0,d.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,d.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:M.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,d.jsx)("input",{ref:y,type:"checkbox",checked:T,disabled:0===M.length,onChange:()=>{let e=new Set(M);v(t=>T?t.filter(t=>!e.has(t)):Array.from(new Set([...t,...M])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),p("models.discoverySelectShown")]}),0===$.length?(0,d.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:p("models.discoveryNoMatches")}):$.map((e,t)=>{let n=S.has(e.id),r=x.includes(e.id);return(0,d.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===t?"none":"1px solid var(--border)",cursor:n?"default":"pointer",opacity:n?.65:1},children:[(0,d.jsx)("input",{type:"checkbox",checked:r||n,disabled:n,onChange:()=>{var t;return t=e.id,void v(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,d.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,d.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:e.name??e.id}),e.name&&(0,d.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:e.id})]}),n&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:p("models.discoveryAdded")})]},e.id)})]}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,d.jsx)("span",{title:h.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:E.length>$.length?p("models.discoveryShowing",{shown:$.length,total:E.length}):p("models.discoveryFetched",{count:h.models.length})}),(0,d.jsx)("button",{onClick:()=>{if("success"!==h.phase)return;let e=new Set(x),t=h.models.filter(t=>e.has(t.id)&&!S.has(t.id));0!==t.length&&(a(t),v([]))},disabled:0===I,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:I?"var(--accent)":"var(--bg-panel)",color:I?"var(--accent-contrast)":"var(--text-dim)",cursor:I?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:I?p("models.discoveryAddSelectedCount",{count:I}):p("models.discoveryAddSelected")})]})]})]})]})}let p6=["off","minimal","low","medium","high","xhigh","max"],p5={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function p9(e){let{value:t,onChange:n}=e,{t:r}=(0,tw.s)(),i=t??{},s=(e,t)=>{let r={...i};"omit"===t?delete r[e]:r[e]=t,n(Object.keys(r).length?r:void 0)};return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:p6.map(e=>{let t=i[e],n=e in i?null===t?"null":"string":"omit",o="string"==typeof t?t:"",l=p5[e],a={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)"},c={background:"var(--accent)",color:"var(--accent-contrast)",fontWeight:600};return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,d.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:l,flexShrink:0,opacity:"null"===n?.3:1}}),(0,d.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===n?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===n?"line-through":"none"},children:e})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,d.jsx)("button",{onClick:()=>s(e,"omit"),style:{...a,..."omit"===n?c:{}},children:r("i18n.default")}),(0,d.jsx)("button",{onClick:()=>s(e,null),style:{...a,borderLeft:"1px solid var(--border)",..."null"===n?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:r("i18n.disabled")})]}),(0,d.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===n?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,d.jsx)("button",{onClick:()=>s(e,o||e),style:{...a,..."string"===n?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:r("i18n.custom")}),(0,d.jsx)("input",{value:o,onChange:t=>s(e,t.target.value),onFocus:()=>{"string"!==n&&s(e,o||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===n?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===n?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let p7={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function he(e){return e.compat?.thinkingFormat==="deepseek"}function ht(e,t){return{...e.compat??{},...t.compat??{}}}function hn(e){let{headers:t,onChange:n}=e,{t:r}=(0,tw.s)(),[i,s]=(0,u.useState)(()=>Object.entries(t??{}).map((e,t)=>{let[n,r]=e;return{id:t,name:n,value:r}})),o=(0,u.useRef)(i.length),l=e=>{s(e),n(function(e){let t={};for(let n of e){let e=n.name.trim();e&&(t[e]=n.value)}return Object.keys(t).length?t:void 0}(e))},a=(e,t)=>{l(i.map(n=>n.id===e?{...n,...t}:n))},c={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,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[i.map(e=>(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)("input",{value:e.name,onChange:t=>a(e.id,{name:t.target.value}),placeholder:"Header-Name",style:{...pX,fontFamily:"var(--font-mono)",flex:1}}),(0,d.jsx)("input",{value:e.value,onChange:t=>a(e.id,{value:t.target.value}),placeholder:"value",style:{...pX,fontFamily:"var(--font-mono)",flex:1}}),(0,d.jsx)("button",{onClick:()=>{var t;return t=e.id,void l(i.filter(e=>e.id!==t))},style:c,children:"✕"})]},e.id)),(0,d.jsxs)("button",{onClick:()=>s(e=>[...e,{id:o.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:["+ ",r("models.addHeader")]})]})}function hr(e){let{providerName:t,provider:n,model:r,onChange:i,onDelete:s}=e,[o,l]=(0,u.useState)({phase:"idle"}),{t:a}=(0,tw.s)(),[c,p]=(0,u.useState)({phase:"idle"}),[h,m]=(0,u.useState)(!1),[f,g]=(0,u.useState)(()=>uV(r.cost)),x=(0,u.useRef)(f),[v,b]=(0,u.useState)(!1),y=(0,u.useRef)(0),w=r.baseUrl??n.baseUrl,j=(0,u.useRef)(0),k=(0,u.useRef)(null),S=(0,u.useRef)(r.cost),C=(e,t)=>i({...r,[e]:t}),N=(()=>{if("idle"===o.phase)return null;if("testing"===o.phase)return a("i18n.testingModel");let e=[void 0!==o.latencyMs?`${o.latencyMs}ms`:null,void 0!==o.status?`HTTP ${o.status}`:null].filter(Boolean);return"success"===o.phase?[a("i18n.connected"),...e,o.responseText||null].filter(Boolean).join(" \xb7 "):[a("i18n.failed"),...e,o.message].filter(Boolean).join(" \xb7 ")})();(0,u.useEffect)(()=>(y.current+=1,l({phase:"idle"}),()=>{y.current+=1}),[t,n,r]),(0,u.useEffect)(()=>{j.current+=1,p({phase:"idle"}),k.current=null},[t,w,r.id]);let E=(0,u.useCallback)(async()=>{if(!r.id.trim()||"testing"===o.phase)return;let e=++y.current;l({phase:"testing"});try{let i=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:n,model:r})}),s=await i.json();if(e!==y.current)return;if(!i.ok||!s.ok)return void l({phase:"error",message:s.error??`HTTP ${i.status}`,latencyMs:s.latencyMs,status:s.status});l({phase:"success",latencyMs:s.latencyMs,status:s.status,responseText:s.responseText})}catch(t){if(e!==y.current)return;l({phase:"error",message:t instanceof Error?t.message:String(t)})}},[r,n,t,o.phase]),$=(0,u.useCallback)(async()=>{let e=r.id.trim();if(!e||"loading"===c.phase)return;let n=++j.current;p({phase:"loading"});try{let s=new URLSearchParams({q:e,provider:t,limit:"50"});w?.trim()&&s.set("baseUrl",w.trim());let o=await fetch(`/api/models-config/catalog?${s}`),l=await o.json();if(n!==j.current)return;if(!o.ok||l.error||!l.recommendation)return void p({phase:"error",message:l.error??`HTTP ${o.status}`});let a=function(e,t){let n={...e},r=0;if(!e.name?.trim()&&t.name&&(n.name=t.name,r+=1),void 0===e.reasoning&&!0===t.reasoning&&(n.reasoning=!0,r+=1),!e.input?.length&&t.input?.length&&(n.input=[...t.input],r+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(n.contextWindow=t.contextWindow,r+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(n.maxTokens=t.maxTokens,r+=1),t.cost){let i={...e.cost??{}},s=0;for(let e of["input","output","cacheRead","cacheWrite"])void 0===i[e]&&void 0!==t.cost[e]&&(i[e]=t.cost[e],s+=1);let o=uZ(uV(i));s>0&&o&&(n.cost={...i,...o},r+=s)}return{model:n,appliedCount:r}}(r,l.recommendation.preset);a.appliedCount>0&&(k.current=r,i(a.model)),m(!1),p({phase:"success",recommendation:l.recommendation,appliedCount:a.appliedCount})}catch(e){if(n!==j.current)return;p({phase:"error",message:e instanceof Error?e.message:String(e)})}},[c.phase,r,i,w,t]),M=(()=>{if("success"!==c.phase)return null;let{recommendation:e,appliedCount:n}=c,r=n>0?a("models.catalogFilled",{count:n}):a("models.catalogNoEmptyFields");if("unreliable"===e.price.status){let t="no-exact-match"===e.price.reason?a("models.catalogNoExactMatch"):a("models.catalogPriceUnreliable");return`${r} \xb7 ${t}`}let i="provider"===e.price.method?a("models.catalogPriceProvider",{provider:e.price.providerName??e.price.providerId??t}):"base-url"===e.price.method?a("models.catalogPriceBaseUrl",{provider:e.price.providerName??e.price.providerId??t}):a("models.catalogPriceConsensus",{support:e.price.support,total:e.price.total});return`${r} \xb7 ${i}`})(),I="error"===c.phase?c.message:M,T="error"===c.phase?"#ef4444":"success"===c.phase&&"unreliable"===c.recommendation.price.status?"#d97706":"var(--text-dim)",R=[{key:"input",label:a("models.costInput")},{key:"output",label:a("models.costOutput")},{key:"cacheRead",label:a("models.costCacheRead")},{key:"cacheWrite",label:a("models.costCacheWrite")}],L=new Set(Object.keys(r.compat??{})),A=0;he(r)&&(A+=1,L.delete("thinkingFormat"),L.delete("requiresReasoningContentOnAssistantMessages")),Object.prototype.hasOwnProperty.call(r.compat??{},"supportsDeveloperRole")&&(A+=1,L.delete("supportsDeveloperRole")),A+=L.size;let P=u_(r),z=uH(P),W=[r.baseUrl?a("models.baseUrlOverride"):null,r.api?`API: ${r.api}`:null,Object.keys(r.headers??{}).length?a("models.headersSummary",{count:Object.keys(r.headers??{}).length}):null,A?a("models.compatSummary",{count:A}):null,Object.keys(r.thinkingLevelMap??{}).length?a("models.thinkingSummary",{count:Object.keys(r.thinkingLevelMap??{}).length}):null,void 0!==z?a("models.imageMaxBytesSummary",{size:uU(z)}):null].filter(e=>!!e),O=W.length?W.join(" \xb7 "):a("models.providerDefaults");return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)(ps,{children:[(0,d.jsx)(po,{children:(0,d.jsx)(p8,{children:a("i18n.model")})}),(0,d.jsxs)(pl,{children:[N&&(0,d.jsx)("span",{title:N,style:{maxWidth:260,height:28,padding:"0 8px",border:`1px solid ${"error"===o.phase?"#fecaca":"success"===o.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===o.phase?"#fee2e2":"success"===o.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:N}),(0,d.jsxs)(pS,{size:"small",variant:"success"===o.phase?"primary":"secondary",onClick:"success"===o.phase?()=>l({phase:"idle"}):E,disabled:!r.id.trim()||"testing"===o.phase,title:a("i18n.testConnection"),className:"success"===o.phase?"is-success":void 0,children:["success"===o.phase&&(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),"testing"===o.phase?a("i18n.checking"):"success"===o.phase?a("common.ok"):a("i18n.test")]}),(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:s,children:a("i18n.remove")})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,d.jsx)(pG,{label:"ID *",children:(0,d.jsx)(pQ,{value:r.id,onChange:e=>C("id",e),placeholder:"model-id",mono:!0})}),(0,d.jsx)(pG,{label:"Name",children:(0,d.jsx)(pQ,{value:r.name??"",onChange:e=>C("name",e||void 0),placeholder:a("models.displayNamePlaceholder")})})]}),(0,d.jsxs)("div",{style:{padding:"2px 0"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,d.jsx)("button",{onClick:()=>void $(),disabled:!r.id.trim()||"loading"===c.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:r.id.trim()&&"loading"!==c.phase?"var(--text-muted)":"var(--text-dim)",cursor:r.id.trim()&&"loading"!==c.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===c.phase?a("models.catalogFilling"):a("models.catalogFill")}),(0,d.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:a("models.catalogSource")})]}),I&&(0,d.jsxs)("div",{"aria-live":"polite",style:{marginTop:8,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:T,fontSize:10},children:[(0,d.jsx)("span",{title:I,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:I}),k.current&&(0,d.jsx)("button",{onClick:()=>{let e=k.current;e&&(k.current=null,i(e),p({phase:"idle"}))},style:{flexShrink:0,padding:"0 2px",border:"none",background:"none",color:"var(--accent)",cursor:"pointer",fontSize:10},children:a("models.catalogUndo")})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(p8,{children:a("models.capabilities")}),(0,d.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap",marginTop:8},children:[(0,d.jsx)(p4,{label:a("models.reasoning"),checked:r.reasoning??!1,onChange:e=>C("reasoning",e||void 0)}),(0,d.jsx)(p4,{label:a("models.imageInput"),checked:r.input?.includes("image")??!1,onChange:e=>C("input",e?["text","image"]:void 0)})]})]}),(0,d.jsxs)("section",{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,d.jsx)(p8,{children:a("models.modelSpecs")}),(0,d.jsx)("button",{type:"button",onClick:()=>{if(h)return void m(!1);S.current=r.cost;let e=uV(r.cost);x.current=e,g(e),m(!0)},"aria-expanded":h,style:{padding:"2px 4px",border:"none",background:"transparent",color:"var(--accent)",cursor:"pointer",fontSize:10},children:h?a("models.finishEditingCosts"):a("models.editCosts")})]}),(0,d.jsxs)("div",{style:{marginTop:10,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(170px, 1fr))",gap:10},children:[(0,d.jsx)(pG,{label:a("models.contextWindow"),children:(0,d.jsx)(p1,{value:void 0!==r.contextWindow?String(r.contextWindow):"",onChange:e=>C("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,d.jsx)(pG,{label:a("models.maxOutputTokens"),children:(0,d.jsx)(p1,{value:void 0!==r.maxTokens?String(r.maxTokens):"",onChange:e=>C("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,d.jsxs)("div",{style:{marginTop:16},children:[(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontWeight:600,textTransform:"uppercase"},children:a("models.costPerMillion")}),h?(0,d.jsxs)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(110px, 1fr))",gap:8},children:[R.map(e=>{let{key:t,label:n}=e;return(0,d.jsx)(pG,{label:n,children:(0,d.jsx)(p1,{value:f[t],onChange:e=>{let n,s,o;return s=uZ(n={...x.current,[t]:e}),o={...r},void(x.current=n,g(n),s?(o.cost={...S.current??{},...s},S.current=o.cost):delete o.cost,i(o))},placeholder:"0"})},t)}),uJ(f)&&!uZ(f)&&(0,d.jsx)("div",{"aria-live":"polite",style:{gridColumn:"1 / -1",color:"#d97706",fontSize:10},children:a("models.costAllRequired")})]}):(0,d.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(105px, 1fr))",gap:"8px 16px"},children:R.map(e=>{let t,{key:n,label:i}=e,s=r.cost?.[n]===void 0;return(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:i}),(0,d.jsx)("div",{style:{marginTop:3,color:s?"var(--text-dim)":"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums"},children:void 0===(t=r.cost?.[n])?a("models.notProvided"):`$${String(t)}`})]},n)})})]})]}),(0,d.jsxs)("section",{style:{borderTop:"1px solid var(--border)",paddingTop:4},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>b(e=>!e),"aria-expanded":v,"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,d.jsxs)("span",{style:{minWidth:0},children:[(0,d.jsx)("span",{style:{display:"block",fontSize:11,fontWeight:600},children:a("models.advancedSettings")}),(0,d.jsx)("span",{style:{display:"block",marginTop:3,color:"var(--text-dim)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:O})]}),(0,d.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:v?"rotate(180deg)":"none",transition:"transform 0.15s ease"},children:(0,d.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),v&&(0,d.jsxs)("div",{id:"model-advanced-settings",style:{display:"flex",flexDirection:"column",gap:14,padding:"4px 0 16px"},children:[(0,d.jsx)(pG,{label:a("models.baseUrlOverride"),children:(0,d.jsx)(pQ,{value:r.baseUrl??"",onChange:e=>C("baseUrl",e.trim()||void 0),placeholder:n.baseUrl??a("models.providerDefaults"),mono:!0})}),(0,d.jsx)(pG,{label:a("models.apiOverride"),children:(0,d.jsx)(p2,{value:r.api??"",onChange:e=>C("api",e||void 0),options:pJ})}),(0,d.jsxs)(pG,{label:a("models.headers"),children:[(0,d.jsx)(hn,{headers:r.headers,onChange:e=>C("headers",e)}),(0,d.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:a("models.headersHelp")})]}),(r.input?.includes("image")||void 0!==P)&&(0,d.jsxs)(pG,{label:a("models.imageMaxBytes"),children:[(0,d.jsx)(p1,{value:void 0===P?"":String(P),onChange:e=>{var t;let n,s,o,l;return i((t=e.trim()||void 0,n={...uB(r.inputLimits)?r.inputLimits:{}},s={...uB(n.images)?n.images:{}},o={...uB(s.resize)?s.resize:{}},void 0===t?delete o.maxBytes:o.maxBytes=uH(t)??t,Object.keys(o).length?s.resize=o:delete s.resize,Object.keys(s).length?n.images=s:delete n.images,l={...r},Object.keys(n).length?l.inputLimits=n:delete l.inputLimits,l))},placeholder:String(4718592),invalid:void 0===z&&void 0!==P}),(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:[void 0!==z&&`${uU(z)} \xb7 `,a("models.imageMaxBytesHelp",{size:uU(4718592)})]}),(0,d.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"inputLimits.images.resize.maxBytes"})]}),r.reasoning&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,d.jsx)(p8,{children:a("models.compatibility")}),(0,d.jsx)(p4,{label:a("models.deepSeekThinkingCompat"),checked:he(r),onChange:e=>i(function(e,t){if(t)return{...e,compat:{...e.compat??{},...p7}};if(!e.compat)return e;let n={...e.compat};return delete n.thinkingFormat,delete n.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(n).length?n:void 0}}(r,e))}),(0,d.jsx)(p4,{label:a("models.developerRole"),checked:!1!==ht(n,r).supportsDeveloperRole,onChange:e=>i(uY(r,"supportsDeveloperRole",e))}),(r.api??n.api)==="anthropic-messages"&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,d.jsx)(p4,{label:a("models.adaptiveThinking"),checked:!0===ht(n,r).forceAdaptiveThinking,onChange:e=>i(function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(n!==r)return uY(e,t,n);if(!e.compat||!Object.prototype.hasOwnProperty.call(e.compat,t))return e;let i={...e.compat};return delete i[t],{...e,compat:Object.keys(i).length?i:void 0}}(r,"forceAdaptiveThinking",e,n.compat?.forceAdaptiveThinking===!0))}),(0,d.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",paddingLeft:19},children:"compat.forceAdaptiveThinking"})]}),(0,d.jsxs)("div",{style:{marginTop:4},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,marginBottom:8},children:[(0,d.jsx)(p8,{children:a("models.thinkingLevelMap")}),r.thinkingLevelMap&&(0,d.jsx)("button",{type:"button",onClick:()=>C("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 5px",background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer"},children:a("models.clearAll")})]}),(0,d.jsx)(p9,{value:r.thinkingLevelMap,onChange:e=>C("thinkingLevelMap",e)})]})]})]})]})]})}function hi(e){let{provider:t,onRefresh:n,enabledModels:r,contextSettings:i}=e,[s,o]=(0,u.useState)({phase:"idle"}),{t:l}=(0,tw.s)(),[a,c]=(0,u.useState)(""),p=(0,u.useRef)(null),h=(0,u.useRef)(null);(0,u.useEffect)(()=>{("auth"===s.phase||"prompt"===s.phase)&&setTimeout(()=>h.current?.focus(),50)},[s.phase]),(0,u.useEffect)(()=>{o({phase:"idle"}),c(""),p.current?.close(),p.current=null},[t.id]),(0,u.useEffect)(()=>()=>{p.current?.close()},[]);let m=(0,u.useCallback)(()=>{p.current?.close(),o({phase:"connecting"}),c("");let e=new EventSource(`/api/auth/login/${encodeURIComponent(t.id)}`);p.current=e,e.onmessage=t=>{let r=JSON.parse(t.data);"auth"===r.type?(o({phase:"auth",url:r.url,instructions:r.instructions??null,token:r.token}),window.open(r.url,"_blank","noopener,noreferrer")):"device_code"===r.type?(o({phase:"device_code",userCode:r.userCode,verificationUri:r.verificationUri,intervalSeconds:r.intervalSeconds??null,expiresInSeconds:r.expiresInSeconds??null}),window.open(r.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===r.type?o({phase:"prompt",message:r.message,placeholder:r.placeholder??null,token:r.token}):"select_request"===r.type?o({phase:"select",message:r.message,options:r.options??[],token:r.token}):"progress"===r.type?o({phase:"progress",message:r.message}):"success"===r.type?(e.close(),o({phase:"success"}),n()):"error"===r.type?(e.close(),o({phase:"error",message:r.message})):"cancelled"===r.type&&(e.close(),o({phase:"idle"}))},e.onerror=()=>{e.close(),o(e=>"success"===e.phase?e:{phase:"error",message:l("models.connectionLost")})}},[t.id,n,l]),f=(0,u.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(t.id)}`,{method:"POST"}),o({phase:"idle"}),n()},[t.id,n]),g=(0,u.useCallback)(async(e,n)=>{if(n.trim()){o({phase:"progress",message:l("models.verifying")});try{let r=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:n.trim()})});if(!r.ok){let e=await r.json().catch(()=>({}));o({phase:"error",message:e.error??l("models.serverError",{status:r.status})});return}c("")}catch(e){o({phase:"error",message:e instanceof Error?e.message:l("i18n.networkError")})}}},[t.id,l]),x=(0,u.useCallback)(async(e,n)=>{o({phase:"progress",message:l("i18n.continuing")});try{let r=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:n})});if(!r.ok){let e=await r.json().catch(()=>({}));o({phase:"error",message:e.error??l("models.serverError",{status:r.status})})}}catch(e){o({phase:"error",message:e instanceof Error?e.message:l("i18n.networkError")})}},[t.id,l]),v="connecting"===s.phase||"progress"===s.phase||"auth"===s.phase||"device_code"===s.phase||"prompt"===s.phase||"select"===s.phase;return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:t.loggedIn&&"idle"===s.phase?0:16},children:[(0,d.jsxs)(ps,{children:[(0,d.jsx)(po,{children:(0,d.jsx)(p8,{children:l("i18n.subscription")})}),(0,d.jsxs)(pl,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:t.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:t.loggedIn?"#4ade80":"var(--text-dim)"},children:t.loggedIn?l("i18n.connected"):l("i18n.notConnected")})]}),v?(0,d.jsx)(pS,{size:"small",onClick:()=>{p.current?.close(),o({phase:"idle"})},children:l("i18n.cancel")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pS,{variant:"primary",size:"small",onClick:m,children:t.loggedIn?l("i18n.relogin"):l("i18n.login")}),t.loggedIn&&(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:f,children:l("i18n.disconnect")})]})]})]}),(0,d.jsxs)("div",{style:{minHeight:t.loggedIn&&"idle"===s.phase?0:48},children:["idle"===s.phase&&!t.loggedIn&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:l("models.oauthConnect",{provider:t.name})}),"connecting"===s.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:l("i18n.openingBrowser")}),"select"===s.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:s.message}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.options.map(e=>(0,d.jsx)("button",{onClick:()=>x(s.token,e.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:e.label},e.id))})]}),("auth"===s.phase||"prompt"===s.phase)&&(0,d.jsx)(pF,{message:"auth"===s.phase?l("models.oauthPasteRedirect"):s.message,hint:"auth"===s.phase?(0,d.jsxs)(d.Fragment,{children:[l("models.oauthNoBrowser")," ",(0,d.jsx)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",children:l("models.oauthOpenLoginPage")}),l("models.oauthOpenLoginPageEnd")]}):void 0,value:a,placeholder:"auth"===s.phase?"http://localhost:1455/auth/callback?code=…":s.placeholder??l("models.oauthValuePlaceholder"),submitLabel:l("i18n.submit"),inputRef:h,onValueChange:c,onSubmit:()=>void g(s.token,a)}),"device_code"===s.phase&&(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:l("models.oauthDeviceCode")}),(0,d.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:s.userCode}),(0,d.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,d.jsx)("a",{href:s.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:s.verificationUri}),s.expiresInSeconds?` ${l("models.deviceCodeExpires",{minutes:Math.ceil(s.expiresInSeconds/60)})}`:""]})]}),"progress"===s.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:s.message}),"success"===s.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:l("i18n.connectedSuccessfully")}),"error"===s.phase&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:s.message})]}),(0,d.jsx)(pU,{providerId:t.id,enabled:t.loggedIn}),t.loggedIn&&(0,d.jsx)(pO,{providerId:t.id,controller:r,contextSettings:i})]})}function hs(e){let{provider:t,onRefresh:n,enabledModels:r,contextSettings:i}=e,[s,o]=(0,u.useState)(""),[l,a]=(0,u.useState)(!1),[c,p]=(0,u.useState)(!1),[h,m]=(0,u.useState)(null),[f,g]=(0,u.useState)(!1),{t:x}=(0,tw.s)();(0,u.useEffect)(()=>{o(""),m(null),g(!1)},[t.id]);let v=(0,u.useCallback)(async()=>{if(s.trim()){a(!0),m(null),g(!1);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:s.trim()})}),r=await e.json();!e.ok||r.error?m(r.error??`HTTP ${e.status}`):(o(""),g(!0),setTimeout(()=>g(!1),2e3),n())}catch(e){m(String(e))}finally{a(!1)}}},[s,t.id,n]),b=(0,u.useCallback)(async()=>{p(!0),m(null);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"DELETE"}),r=await e.json();!e.ok||r.error?m(r.error??`HTTP ${e.status}`):n()}catch(e){m(String(e))}finally{p(!1)}},[t.id,n]);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,d.jsxs)(ps,{children:[(0,d.jsx)(po,{children:(0,d.jsx)(p8,{children:"API Key"})}),(0,d.jsxs)(pl,{children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:t.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,d.jsx)("span",{style:{fontSize:11,color:t.configured?"#4ade80":"var(--text-dim)"},children:x(t.configured?"i18n.configured":"i18n.notConfigured")})]}),t.configured&&(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:b,disabled:c,children:x(c?"i18n.removing":"i18n.disconnect")})]})]}),!t.configured&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:1===t.modelCount?x("models.apiKeyEnableOne",{provider:t.displayName}):x("models.apiKeyEnable",{provider:t.displayName,count:t.modelCount})}),(0,d.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,d.jsx)(p0,{value:s,onChange:o,onKeyDown:e=>{"Enter"===e.key&&s.trim()&&v()},placeholder:t.configured?x("models.replaceApiKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,d.jsxs)("button",{onClick:v,disabled:l||!s.trim()||f,style:{padding:"6px 12px",background:f?"#16a34a":s.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:f?"#fff":s.trim()?"var(--accent-contrast)":"var(--text-dim)",cursor:l||!s.trim()||f?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[f&&(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),x(f?"i18n.saved":l?"i18n.saving":"i18n.save")]})]}),h&&(0,d.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:h}),(0,d.jsx)(pU,{providerId:t.id,enabled:t.configured}),t.configured&&(0,d.jsx)(pO,{providerId:t.id,controller:r,contextSettings:i})]})}function ho(e){let{oauthProviders:t,apiKeyProviders:n,onSelectOAuth:r,onSelectApiKey:i,onAddCustom:s,onClose:o}=e,[l,a]=(0,u.useState)(""),{t:c}=(0,tw.s)(),p=(0,u.useRef)(null);(0,u.useEffect)(()=>{setTimeout(()=>p.current?.focus(),30)},[]);let h=l.trim().toLowerCase(),m=t.filter(e=>!e.loggedIn&&u0(h,e.id,e.name)),f=n.filter(e=>!e.configured&&u0(h,e.id,e.displayName)),g=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),x=m.length+f.length+ +!!g,v={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,d.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&o()},onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),e.stopPropagation(),o())},children:(0,d.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,d.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,d.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,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,d.jsx)("input",{ref:p,value:l,onChange:e=>a(e.target.value),placeholder:c("i18n.searchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,d.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===x?(0,d.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:c("i18n.noProviders")}):(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[g&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:c("i18n.custom")}),g&&(0,d.jsxs)("button",{onClick:()=>{s(),o()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"OpenAI / Anthropic compatible"}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:c("i18n.customEndpoint")})]}),(0,d.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,d.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,d.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,d.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),m.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!g,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:c("i18n.subscriptions")}),m.map(e=>(0,d.jsxs)("button",{onClick:()=>{r(e.id),o()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,d.jsx)(pB,{id:e.id,size:28})]},e.id)),f.length>0&&(0,d.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(m.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"API Key"}),f.map(e=>(0,d.jsxs)("button",{onClick:()=>{i(e.id),o()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:1===e.modelCount?c("models.modelCountOne"):c("models.modelCount",{count:e.modelCount})})]}),(0,d.jsx)(pB,{id:e.id,size:28})]},e.id))]})})]})})}function hl(e){let{onClose:t,embedded:n=!1,cwd:r=null}=e,{t:i}=(0,tw.s)(),{openDetail:s,closeDetail:o}=u4(),l=function(e){let[t,n]=(0,u.useState)(null),[r,i]=(0,u.useState)(!0),[s,o]=(0,u.useState)(null),[l,a]=(0,u.useState)(null),c=(0,u.useRef)(null),d=(0,u.useRef)(null),p=(0,u.useRef)(null),[h,m]=(0,u.useState)(0);(0,u.useEffect)(()=>{let t=new AbortController;i(!0);let r=e?`?cwd=${encodeURIComponent(e)}`:"";return fetch(`/api/models/enabled${r}`,{signal:t.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);n(t),a(null)}).catch(e=>{t.signal.aborted||a({message:e instanceof Error?e.message:String(e)})}).finally(()=>{t.signal.aborted||i(!1)}),()=>t.abort()},[e,h]);let f=(0,u.useCallback)((t,r)=>{if(c.current){d.current={key:t,body:r};return}c.current=t,o(t),a(null),(async()=>{try{let t=await fetch("/api/models/enabled",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...e?{cwd:e}:{}})}),i=await t.json();if(!t.ok||i.error){let e=i.reason?pL[i.reason]:void 0;a(e?{messageKey:e}:{message:i.error??`HTTP ${t.status}`});return}n(i)}catch(e){a({message:e instanceof Error?e.message:String(e)})}finally{c.current=null,o(null);let e=d.current;d.current=null,e&&p.current?.(e.key,e.body)}})()},[e]);p.current=f;let g=(0,u.useCallback)((e,t,n)=>{f(e,{op:"models",refs:t,enabled:n})},[f]),x=(0,u.useCallback)((e,t)=>{f(`provider:${e}`,{op:"provider",provider:e,enabled:t})},[f]),v=(0,u.useCallback)(()=>f("clear",{op:"clear"}),[f]),b=(0,u.useCallback)(()=>f("prune",{op:"prune"}),[f]),y=(0,u.useCallback)(()=>m(e=>e+1),[]),w=(0,u.useCallback)((e,n)=>{f("resync",{op:"resync",renames:e,modelRenames:n,fullyEnabled:(t?.providers??[]).filter(e=>e.models.length>0&&e.enabledCount===e.models.length).map(e=>e.id)})},[f,t]);return{view:t,loading:r,pending:s,failure:l,setModels:g,setProvider:x,clearScope:v,pruneStale:b,refresh:y,resync:w}}(r),[a,c]=(0,u.useState)({providers:{}}),[p,h]=(0,u.useState)(!0),[m,f]=(0,u.useState)(!1),[g,x]=(0,u.useState)(null),[v,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(!1),[j,k]=(0,u.useState)(pV),[S,C]=(0,u.useState)([]),[N,E]=(0,u.useState)([]),[$,M]=(0,u.useState)(!1),[I,T]=(0,u.useState)(!1),R=(0,u.useRef)(new Set),L=(0,u.useRef)(new Map),A=(0,u.useRef)(new Map),[P,z]=(0,u.useState)(null),W=(0,u.useCallback)(()=>{fetch("/api/auth/providers").then(e=>e.json()).then(e=>{Array.isArray(e.oauthProviders)&&C(e.oauthProviders),Array.isArray(e.apiKeyProviders)&&E(e.apiKeyProviders)}).catch(()=>{}).finally(()=>M(!0))},[]);(0,u.useEffect)(()=>{fetch("/api/models-config").then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{let t=e.providers?e:{...e,providers:{}};c(t),R.current=new Set(Object.keys(t.providers??{})),A.current=uG(t);let n=Object.keys(t.providers??{});k(e=>e&&("provider"===e.type?t.providers?.[e.name]:"model"!==e.type||t.providers?.[e.providerName]?.models?.[e.index])?e:n[0]?{type:"provider",name:n[0]}:null)}).catch(e=>b(e instanceof Error?e.message:String(e))).finally(()=>h(!1)),W()},[W]),(0,u.useEffect)(()=>{j&&uL("models",JSON.stringify(j))},[j]),(0,u.useEffect)(()=>{if(j?.type!=="provider")return;let e=a.providers?.[j.name];e&&pZ(e)&&(S.some(e=>e.id===j.name)?k({type:"oauth",providerId:j.name}):N.some(e=>e.id===j.name)&&k({type:"apikey",providerId:j.name}))},[N,a.providers,S,j]);let O=e=>({overrides:a.providers?.[e]?.modelOverrides,disabled:p||m||null!==v,onChange:(t,n)=>{try{c(function(e,t,n,r){let i={...e.providers},s={...Object.hasOwn(i,t)?i[t]:{}},o={...s.modelOverrides},l=Object.hasOwn(o,n)?o[n]:void 0;if(void 0!==l&&!uA(l))throw Error("Model override must be an object");let a={...l};return void 0===r?delete a.contextWindow:a.contextWindow=r,Object.keys(a).length?Object.defineProperty(o,n,{value:a,enumerable:!0,configurable:!0}):delete o[n],Object.keys(o).length?s.modelOverrides=o:delete s.modelOverrides,Object.keys(s).length?Object.defineProperty(i,t,{value:s,enumerable:!0,configurable:!0}):delete i[t],{...e,providers:i}}(a,e,t,n)),w(!1),x(null)}catch(e){x(String(e))}}}),F=(0,u.useCallback)(()=>{let e="new-provider",t=1;for(;a.providers?.[e];)e=`new-provider-${t++}`;c(t=>({...t,providers:{...t.providers??{},[e]:{api:"openai-completions"}}})),k({type:"provider",name:e})},[a.providers]),D=(0,u.useCallback)((e,t)=>{c(n=>({...n,providers:{...n.providers??{},[e]:t}}))},[]),B=(0,u.useCallback)((e,t,n)=>{let r=function(e,t,n,r){let i=e.providers??{};if(!Object.hasOwn(i,n))return null;if(n===r)return e;if(Object.hasOwn(i,r))return null;let{renames:s,slots:o}=t,l=uQ(t,n);l===r?s.delete(l):null!==l&&s.set(l,r);let a=o.get(n);a&&(o.delete(n),o.set(r,a));let c=Object.entries(i),d=c.findIndex(e=>{let[t]=e;return t===n});return c[d]=[r,c[d][1]],{...e,providers:Object.fromEntries(c)}}(e,{savedProviders:R.current,renames:L.current,slots:A.current},t,n);return r?(c(r),z(null),k(e=>e?"provider"===e.type&&e.name===t?{type:"provider",name:n}:"model"===e.type&&e.providerName===t?{...e,providerName:n}:e:e),r):null},[]),_=(0,u.useCallback)((e,t)=>{B(a,e,t)?x(null):x(i("models.providerNameTaken",{name:t}))},[B,a,i]),H=(0,u.useCallback)(e=>{var t;let n,r,i=(null!==(n=uQ(t={savedProviders:R.current,renames:L.current,slots:A.current},e))&&(t.renames.delete(n),t.savedProviders.delete(n)),t.slots.delete(e),r={...a.providers??{}},delete r[e],{...a,providers:r}),s=Object.keys(i.providers??{});z(t=>t?.provider===e?null:t),c(i),k(s.length>0?{type:"provider",name:s[0]}:null),o()},[a,o]),U=(0,u.useCallback)(e=>{uX(A.current,e,1),c(t=>{let n=t.providers?.[e]??{},r=[...n.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...n,models:r}}}}),c(t=>{let n=(t.providers?.[e]?.models?.length??1)-1;return k({type:"model",providerName:e,index:n}),t})},[]),q=(0,u.useCallback)((e,t)=>{c(n=>{let r=new Set((n.providers?.[e]?.models??[]).map(e=>e.id));uX(A.current,e,t.filter(e=>!r.has(e.id)).length);let i=n.providers?.[e]??{},s=[...i.models??[]],o=new Set(s.map(e=>e.id));for(let e of t)o.has(e.id)||(o.add(e.id),s.push({...e}));return{...n,providers:{...n.providers??{},[e]:{...i,models:s}}}})},[]),K=(0,u.useCallback)((e,t,n)=>{c(r=>{let i=r.providers?.[e]??{},s=[...i.models??[]];return s[t]=n,{...r,providers:{...r.providers??{},[e]:{...i,models:s}}}})},[]),V=(0,u.useCallback)((e,t)=>{A.current.get(e)?.splice(t,1),c(n=>{let r=n.providers?.[e]??{},i=[...r.models??[]];return i.splice(t,1),{...n,providers:{...n.providers??{},[e]:{...r,models:i.length?i:void 0}}}}),k({type:"provider",name:e}),o()},[o]),Z=(0,u.useCallback)(async()=>{if(v)return;f(!0),x(null),w(!1);let e=a,t=P?.name.trim();if(P&&t&&a.providers?.[P.provider]){let n=B(a,P.provider,t);if(!n){x(i("models.providerNameTaken",{name:t})),f(!1);return}e=n}try{var n=e=function(e){let t=structuredClone(e);if(!uA(t.providers))return t;for(let[e,n]of Object.entries(t.providers))if(uA(n)&&uA(n.modelOverrides))for(let[t,r]of Object.entries(n.modelOverrides)){if(!uA(r)||!Object.hasOwn(r,"contextWindow"))continue;let n=uz(r.contextWindow);if(void 0===n)throw new uP(`${e}/${t}`);r.contextWindow=n}return t}(e);if(uF(n.providers))for(let[e,t]of Object.entries(n.providers)){if(!uF(t))continue;if(t.oauth&&!t.baseUrl)throw new uO(e,"baseUrl");let n=Array.isArray(t.models)&&t.models.some(uD),r=uF(t.modelOverrides)&&Object.keys(t.modelOverrides).length>0;if(!n&&!t.baseUrl&&!t.headers&&!t.compat&&!r&&!t.apiKey&&!t.oauth&&void 0===t.authHeader)throw new uO(e,"empty")}var r=e;if(uB(r.providers)){for(let[e,t]of Object.entries(r.providers))if(uB(t)&&Array.isArray(t.models))for(let n of t.models){if(!uB(n)||"string"==typeof n.id&&!n.id.trim())continue;let t=u_(n);if(void 0!==t&&void 0===uH(t))throw new uq(`${e}/${"string"==typeof n.id?n.id:"?"}`)}}let t=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),i=await t.json();if(!t.ok||i.error)x(i.error??`HTTP ${t.status}`);else{w(!0),setTimeout(()=>w(!1),2e3);let t=[...L.current].map(e=>{let[t,n]=e;return{from:t,to:n}}),n=function(e,t,n){let r=e=>{for(let[t,r]of n)if(r===e)return t;return e},i=[];for(let[n,s]of Object.entries(e.providers??{})){let e=t.get(n);e&&(s.models??[]).forEach((t,s)=>{let o=e[s];o&&t.id&&o!==t.id&&i.push({from:`${r(n)}/${o}`,to:`${n}/${t.id}`})})}return i}(e,A.current,L.current);R.current=new Set(Object.keys(e.providers??{})),A.current=uG(e),L.current.clear(),l.resync(t,n)}}catch(e){e instanceof uO?(x(i(pY[e.problem],{provider:e.provider})),k({type:"provider",name:e.provider})):e instanceof uP?x(i("models.contextInvalid",{model:e.model})):x(e instanceof uq?i("models.imageMaxBytesInvalid",{model:e.model}):String(e))}finally{f(!1)}},[B,a,l,v,P,i]),J=Object.entries(a.providers??{}).filter(e=>{let[t,n]=e;if(!pZ(n))return!0;let r=S.some(e=>e.id===t)||N.some(e=>e.id===t);return $&&!r}),Y=e=>{let t=function(e,t){if(!e||e.allEnabled)return null;let n=pT(e,t);return n?`${n.enabledCount}/${n.models.length}`:null}(l.view,e);return t?(0,d.jsx)("span",{className:"models-sidebar-badge",children:t}):null},G=S.filter(e=>e.loggedIn),X=N.filter(e=>e.configured),Q=(()=>{if(!j)return null;if("oauth"===j.type){let e=S.find(e=>e.id===j.providerId);return e?(0,d.jsx)(hi,{provider:e,onRefresh:W,enabledModels:l,contextSettings:O(e.id)},e.id):null}if("apikey"===j.type){let e=N.find(e=>e.id===j.providerId);return e?(0,d.jsx)(hs,{provider:e,onRefresh:W,enabledModels:l,contextSettings:O(e.id)},e.id):null}if("provider"===j.type){let e=a.providers?.[j.name];return e&&J.some(e=>{let[t]=e;return t===j.name})?(0,d.jsx)(p3,{name:j.name,editingName:P?.provider===j.name?P.name:j.name,provider:e,onChange:e=>D(j.name,e),onEditingNameChange:e=>z(e===j.name?null:{provider:j.name,name:e}),onRename:e=>_(j.name,e),onDelete:()=>H(j.name),onAddModels:e=>q(j.name,e),enabledModels:l},j.name):null}let e=a.providers?.[j.providerName],t=e?.models?.[j.index];return t?(0,d.jsx)(hr,{providerName:j.providerName,provider:e,model:t,onChange:e=>K(j.providerName,j.index,e),onDelete:()=>V(j.providerName,j.index)},`${j.providerName}-${j.index}`):null})();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(u1,{embedded:n,title:i("common.models"),subtitle:"~/.pi/agent/models.json",closeLabel:i("i18n.close"),onClose:t,children:[(0,d.jsx)(pA,{controller:l}),(0,d.jsxs)(u6,{children:[(0,d.jsxs)(u5,{children:[(0,d.jsxs)(u9,{children:[G.map(e=>{let t=j?.type==="oauth"&&j.providerId===e.id;return(0,d.jsxs)(pn,{active:t,onClick:()=>k({type:"oauth",providerId:e.id}),children:[(0,d.jsx)(pB,{id:e.id,size:16}),(0,d.jsx)(pr,{className:"is-grow",children:e.name}),Y(e.id)]},e.id)}),X.map(e=>{let t=j?.type==="apikey"&&j.providerId===e.id;return(0,d.jsxs)(pn,{active:t,onClick:()=>k({type:"apikey",providerId:e.id}),children:[(0,d.jsx)(pB,{id:e.id,size:16}),(0,d.jsx)(pr,{className:"is-grow",children:e.displayName}),Y(e.id)]},e.id)}),(G.length>0||X.length>0)&&J.length>0&&(0,d.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),p?(0,d.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:i("i18n.loading")}):J.map(e=>{let[t,n]=e,r=j?.type==="provider"&&j.name===t,s=n.models??[];return(0,d.jsxs)("div",{style:{marginBottom:2},children:[(0,d.jsxs)(pn,{onClick:()=>k({type:"provider",name:t}),active:r,children:[(0,d.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,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,d.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,d.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,d.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,d.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,d.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,d.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,d.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,d.jsx)(pr,{className:"is-grow",children:t}),Y(t)]}),s.map((e,n)=>{let r=j?.type==="model"&&j.providerName===t&&j.index===n;return(0,d.jsxs)(pn,{active:r,className:"models-sidebar-indented-item",onClick:()=>k({type:"model",providerName:t,index:n}),children:[(0,d.jsx)(pr,{className:"is-grow",style:{color:e.id?"var(--text-muted)":"var(--text-dim)"},children:e.name?.trim()||e.id||i("i18n.newModel")}),e.reasoning&&(0,d.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"})]},n)}),(0,d.jsx)(pn,{className:"models-sidebar-indented-item models-sidebar-add-item",onClick:e=>{e.stopPropagation(),U(t)},children:(0,d.jsxs)(pr,{children:["+ ",i("i18n.model")]})})]},t)})]}),(0,d.jsx)(pN,{onClick:e=>{e.preventDefault(),T(!0)},children:i("i18n.addProvider")})]}),(0,d.jsx)(pw,{children:(0,d.jsx)(pi,{className:"is-fill",children:p?null:Q??(0,d.jsx)(py,{children:i("i18n.selectProviderModel")})})})]}),(0,d.jsxs)(pj,{status:v||g?(0,d.jsx)("span",{style:{color:"#f87171"},children:v?i("models.configUnreadable",{error:v}):g}):i("models.applyHelp"),children:[!n&&(0,d.jsx)(pS,{onClick:t,children:i("i18n.cancel")}),(0,d.jsxs)(pS,{variant:"primary",onClick:Z,disabled:m||y||null!==v,className:y?"is-success":void 0,children:[y&&(0,d.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,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,d.jsx)("span",{children:y?i("i18n.saved"):m?i("i18n.saving"):i("i18n.save")})]})]})]}),I&&(0,d.jsx)(ho,{oauthProviders:S,apiKeyProviders:N,onSelectOAuth:e=>{k({type:"oauth",providerId:e}),s()},onSelectApiKey:e=>{k({type:"apikey",providerId:e}),s()},onAddCustom:()=>{F(),s()},onClose:()=>T(!1)})]})}let ha=null;async function hc(e){if(!("serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window)||"granted"!==Notification.permission)return!1;if(ha)return ha;let t=(async()=>{try{let t=await fetch("/api/push/config");if(!t.ok)return!1;let{publicKey:n}=await t.json();if(!n)return!1;let r=await navigator.serviceWorker.ready,i=await r.pushManager.getSubscription();return i||(i=await r.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),n=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);return r}(n)})),(await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:i.toJSON(),locale:e})})).ok}catch{return ha=null,!1}})();return ha=t,t.then(e=>{e||ha!==t||(ha=null)}),t}function hd(e,t,n,r){return e.filter(e=>n(e)!==t&&(t||!r?.(e)))}function hu(e){return e?JSON.stringify([e.requiresTrust,e.trusted,e.decision,e.decisionPath??null,e.inherited]):""}function hp(e){let t=e.sourceInfo?.source,n=e.sourceInfo?.scope;return"user"===n||"user"===t?"global":"project"===n||"project"===t?"project":"path"}function hh(e,t){return t("project"===e?"skills.scope.project":"global"===e?"skills.scope.global":"skills.scope.path")}function hm(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function hf(e,t){return e?e.slice(0,8):t}function hg(e){let{skill:t,cwd:n,onToggle:r,toggling:i,saveError:s,updateStatus:o,checkingUpdate:l,updating:a,updateError:c,onCheckUpdate:p,onUpdate:h}=e,{t:m}=(0,tw.s)(),f=hp(t),g=!t.disableModelInvocation,[x,v]=(0,u.useState)(null),[b,y]=(0,u.useState)(null),w=t.filePath.split(/[\\/]/).pop(),[j,k]=(0,u.useState)([]),S=j.at(-1)??w,C=(0,u.useRef)(null),N=(0,u.useRef)(null),[E,$]=(0,u.useState)(0),M=(0,u.useCallback)(e=>{let t=function(e,t){let n=e.indexOf("#"),[r,i]=[n<0?e:e.slice(0,n),n<0?"":e.slice(n+1)].map(e=>{try{return decodeURIComponent(e)}catch{return e}});if(!r)return{document:t,anchor:i};if(r.startsWith("/"))return{document:r,anchor:i};let s=t.split("/").slice(0,-1);for(let e of r.split("/"))".."===e&&s.length&&".."!==s[s.length-1]?s.pop():e&&"."!==e&&s.push(e);return{document:s.join("/"),anchor:i}}(e,S);N.current=t.anchor,t.document===S?$(e=>e+1):k(e=>[...e,t.document])},[S]);return(0,u.useLayoutEffect)(()=>{let e=N.current,t=C.current;null!==e&&(null!==x||b)&&t&&(N.current=null,((e?t.querySelector(`[data-heading-anchor="${CSS.escape(e)}"]`):null)??t).scrollIntoView({block:"start"}))},[x,b,E]),(0,u.useEffect)(()=>{let e=new AbortController;return v(null),y(null),(async()=>{try{var r;let i=new URLSearchParams({cwd:n,filePath:t.filePath});S!==w&&i.set("document",S);let s=await fetch(`/api/skills/content?${i}`,{signal:e.signal}),o=await s.json();if(!s.ok||o.error||"string"!=typeof o.content)throw Error(o.error??`HTTP ${s.status}`);v((r=o.content,dG(r).rest.trim()))}catch(t){if(e.signal.aborted)return;y(t instanceof Error?t.message:String(t))}})(),()=>e.abort()},[n,t.filePath,S,w]),(0,d.jsxs)(pi,{children:[(0,d.jsxs)("div",{className:"skill-detail-heading",children:[(0,d.jsxs)(ps,{children:[(0,d.jsxs)(po,{children:[(0,d.jsx)(ph,{scope:f,children:hh(f,m)}),(0,d.jsx)("span",{className:"config-detail-path",children:"project"===f?eZ(t.filePath,n):eV(t.filePath)})]}),(0,d.jsx)(pl,{children:(0,d.jsx)(pC,{checked:g,loading:i,label:m(g?"i18n.visibleInPrompt":"i18n.hiddenFromPrompt"),onChange:()=>r(t)})})]}),(0,d.jsxs)("div",{className:"skill-detail-status-row",children:[!g&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:m("i18n.hiddenButInvocable")}),s&&(0,d.jsx)("span",{style:{fontSize:12,color:"#f87171",overflowWrap:"anywhere"},children:s})]})]}),t.install?.skillsShUrl&&(0,d.jsx)(pd,{label:m("config.source"),children:(0,d.jsx)("a",{href:t.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:t.install.skillsShUrl,className:"skill-source-link",children:(0,d.jsxs)("span",{className:"skill-source-link-text",children:[t.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})}),t.install&&(0,d.jsxs)(pd,{label:m("i18n.version"),children:[(0,d.jsxs)("div",{className:"skill-version-row",children:[(0,d.jsx)("span",{className:"skill-version-value",children:hf(o?.currentVersion??t.install.versionHash,m("i18n.unknown"))}),t.install.canCheckForUpdates&&(0,d.jsx)(pS,{size:"small",onClick:p,disabled:l||a,children:m("i18n.check")}),o?.state==="update-available"&&(0,d.jsx)("span",{className:"skill-version-value is-update",children:hf(o.latestVersion,m("i18n.unknown"))}),(l||o&&"update-available"!==o.state)&&(0,d.jsx)("span",{className:`skill-update-status ${l?"is-checking":o?.state==="up-to-date"?"is-success":o?.state==="error"?"is-error":"is-muted"}`,children:l?m("i18n.checking"):o?.state==="up-to-date"?m("i18n.upToDate"):o?.state==="unsupported"?m("i18n.automaticChecksUnavailable"):o?.message||m("i18n.checkFailed")}),o?.state==="update-available"&&(0,d.jsx)(pS,{variant:"primary",size:"small",onClick:h,disabled:a||l,children:m(a?"i18n.updating":"i18n.update")})]}),c&&(0,d.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:c})]}),(0,d.jsx)(pd,{label:m("config.name"),children:(0,d.jsx)("span",{className:"skill-name-value",children:t.name})}),(0,d.jsx)(pd,{label:m("i18n.description"),children:(0,d.jsx)("span",{className:"skill-description",children:t.description})}),(0,d.jsxs)(pd,{label:m("skills.instructions"),ref:C,children:[j.length>0&&(0,d.jsx)(ps,{children:(0,d.jsxs)(po,{children:[(0,d.jsx)(pS,{size:"small",onClick:()=>{N.current="",k(e=>e.slice(0,-1))},children:m("skills.documentBack")}),(0,d.jsx)("span",{className:"config-detail-path",title:S,children:S})]})}),b?(0,d.jsx)("span",{role:"alert",className:"skill-instructions-status is-error",children:b}):null===x?(0,d.jsx)("span",{role:"status",className:"skill-instructions-status",children:m("i18n.loading")}):x?(0,d.jsx)(s7,{className:"skill-instructions",cwd:[t.baseDir,...S.split("/").slice(0,-1)].join("/"),onNavigateLink:M,children:x}):(0,d.jsx)("span",{className:"skill-instructions-status",children:m("skills.noInstructions")})]})]})}function hx(e){let{cwd:t,installedPackages:n,projectResourcesLoaded:r,onInstalled:i}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(""),[a,c]=(0,u.useState)([]),[p,h]=(0,u.useState)(!1),[m,f]=(0,u.useState)(null),[g,x]=(0,u.useState)(null),[v,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(new Set),[j,k]=(0,u.useState)("global"),S=(0,u.useRef)(null);(0,u.useEffect)(()=>{S.current?.focus()},[]);let C=(0,u.useCallback)(async e=>{if(e.trim()){h(!0),f(null),c([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),n=await t.json();if(n.error)return void f(n.error);c(n.results??[]),0===(n.results??[]).length&&f(s("i18n.noSkills"))}catch(e){f(String(e))}finally{h(!1)}}},[s]),N=(0,u.useCallback)(async e=>{x(e),b(null);try{let n=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:e,scope:j,cwd:t})}),r=await n.json();if(!n.ok||r.error)return void b(r.error??`HTTP ${n.status}`);w(t=>new Set(t).add(`${j}:${e}`)),i()}catch(e){b(String(e))}finally{x(null)}},[i,j,t]),E="global"===j?"~/.pi/agent/skills/":`${eV(t)}/.pi/skills/`;return(0,d.jsxs)(pi,{className:"is-full-height",children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,d.jsx)(pg,{title:s("i18n.addSkill"),catalogs:[{href:"https://skills.sh",label:"skills.sh"}],target:(0,d.jsx)(pf,{value:j,label:s("config.saveTo"),options:[{value:"global",label:hh("global",s)},{value:"project",label:hh("project",s),disabled:!r}],path:E,disabledReason:s("trust.projectScopeUnavailable"),onChange:k})}),(0,d.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,d.jsx)("input",{ref:S,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C(o)},placeholder:s("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,d.jsx)(pS,{variant:"primary",onClick:()=>C(o),disabled:p||!o.trim(),children:p?s("i18n.searching"):s("i18n.search")})]}),m&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:m}),v&&(0,d.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:v})]}),a.length>0&&(0,d.jsx)("div",{style:{flex:1,overflowY:"auto"},children:a.map(e=>{let t=n[j].has(e.package)||y.has(`${j}:${e.package}`),r=g===e.package,i=e.package.indexOf("@"),o=i>-1?e.package.slice(0,i):e.package,l=i>-1?e.package.slice(i+1):null;return(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:l??o}),(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:o}),(0,d.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:e.installs}),e.url&&(0,d.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,d.jsx)(pS,{size:"small",onClick:()=>!t&&!r&&N(e.package),disabled:t||r||null!==g,style:{flexShrink:0,background:t?"rgba(34,197,94,0.1)":"none",color:t?"#16a34a":r?"var(--accent)":"var(--text-muted)"},children:t?`✓ ${s("i18n.installed")}`:r?s("i18n.installing"):s("i18n.install")})]},e.package)})})]})}function hv(e){let{cwd:t,onClose:n,embedded:r=!1,trust:i}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)([]),[a,c]=(0,u.useState)(!0),[p,h]=(0,u.useState)(null),[m,f]=(0,u.useState)(()=>uR("skills",t)),[g,x]=(0,u.useState)(new Set),[v,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(null),[j,k]=(0,u.useState)(null),[S,C]=(0,u.useState)(!1),[N,E]=(0,u.useState)({}),[$,M]=(0,u.useState)(new Set),[I,T]=(0,u.useState)(!1),[R,L]=(0,u.useState)(null),[A,P]=(0,u.useState)(null),[z,W]=(0,u.useState)(!0),O=(0,u.useCallback)(async()=>{c(!0),h(null);try{let e=await fetch(`/api/skills?cwd=${encodeURIComponent(t)}`),n=await e.json();if(!e.ok||n.error)throw Error(n.error??`HTTP ${e.status}`);let r=n.skills??[];return l(r),W(n.projectResourcesLoaded??!0),f(e=>{if(e&&r.some(t=>t.filePath===e))return e;let t=r.find(e=>!e.disableModelInvocation)??r[0];return t?.filePath??null}),r}catch(e){return h(String(e)),[]}finally{c(!1)}},[t]);(0,u.useEffect)(()=>{E({}),P(null),O()},[t]);let F=hu(i),D=(0,u.useRef)(F);(0,u.useEffect)(()=>{D.current!==F&&(D.current=F,O())},[F,O]),(0,u.useEffect)(()=>{m&&uL("skills",m,t)},[t,m]);let B=(0,u.useCallback)(async e=>{let n=(e?[e]:o.filter(e=>!!e.install)).map(hm).filter(e=>!!e);if(0!==n.length){P(null),M(e=>new Set([...e,...n])),e||T(!0);try{let n=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e?.install?.package,scope:e?.install?.scope})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);E(e=>{let t={...e};for(let e of r.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){P(e instanceof Error?e.message:String(e))}finally{M(e=>{let t=new Set(e);for(let e of n)t.delete(e);return t}),e||T(!1)}}},[t,o]),_=(0,u.useCallback)(async e=>{if(!e.install)return;let n=hm(e);L(n),P(null);try{let r=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e.install.package,scope:e.install.scope})}),i=await r.json();if(!r.ok||i.error||!i.success)throw Error(i.error??`HTTP ${r.status}`);await O();let s=i.skill?.install?.versionHash;E(t=>({...t,[n]:{package:e.install.package,scope:e.install.scope,state:"up-to-date",currentVersion:s,latestVersion:s}}))}catch(e){P(e instanceof Error?e.message:String(e))}finally{L(null)}},[t,O]),H=(0,u.useCallback)(async e=>{let t=!e.disableModelInvocation;x(t=>new Set(t).add(e.filePath)),b(null),k(null);try{let n=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:e.filePath,disableModelInvocation:t})}),r=await n.json();if(!n.ok||r.error)return void b(r.error??`HTTP ${n.status}`);l(n=>n.map(n=>n.filePath===e.filePath?{...n,disableModelInvocation:t}:n))}catch(e){b(String(e))}finally{x(t=>{let n=new Set(t);return n.delete(e.filePath),n})}},[]),U=(0,u.useCallback)(async(e,t,n)=>{let r=hd(t,n,e=>!e.disableModelInvocation);if(0===r.length)return;let i=r.map(e=>e.filePath),o=!n;x(e=>new Set([...e,...i])),w(e),b(null),k(null);try{let t=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePaths:i,disableModelInvocation:o})}),n=await t.json();if(!t.ok||n.error||!n.results)throw Error(n.error??`HTTP ${t.status}`);let a=n.results;l(e=>{let t;return t=new Set(a.filter(e=>!e.error).map(e=>e.filePath)),e.map(e=>t.has(e.filePath)?{...e,disableModelInvocation:o}:e)});let c=a.filter(e=>e.error);if(c.length>0){let t=new Map(r.map(e=>[e.filePath,e.name]));k({group:e,error:[s("skills.bulkFailed",{count:c.length,total:a.length}),...c.map(e=>`${t.get(e.filePath)??e.filePath}: ${e.error}`)].join("\n")})}}catch(t){k({group:e,error:t instanceof Error?t.message:String(t)})}finally{w(null),x(e=>{let t=new Set(e);for(let e of i)t.delete(e);return t})}},[s]),q=o.find(e=>e.filePath===m)??null,K=a||g.size>0||null!==R;return(0,d.jsxs)(u1,{embedded:r,title:s("common.skills"),subtitle:eV(t),closeLabel:s("i18n.close"),onClose:n,children:[!z&&(0,d.jsx)(pb,{message:s("trust.skillsNotLoaded")}),(0,d.jsxs)(u6,{children:[(0,d.jsxs)(u5,{children:[(0,d.jsx)(u9,{children:a?(0,d.jsx)("div",{className:"config-sidebar-message",children:s("i18n.loading")}):p?(0,d.jsx)("div",{className:"config-sidebar-message is-error",children:p}):0===o.length?(0,d.jsx)("div",{className:"config-sidebar-message is-empty",children:s("i18n.noSkills")}):(()=>{let e=[],t={project:s("skills.scope.project"),global:s("skills.scope.global"),path:s("skills.scope.path")};for(let{label:n,matches:r}of[{label:`${t.project} / skills.sh`,matches:e=>"project"===hp(e)&&!!e.install?.skillsShUrl},{label:t.project,matches:e=>"project"===hp(e)&&!e.install?.skillsShUrl},{label:`${t.global} / skills.sh`,matches:e=>"global"===hp(e)&&!!e.install?.skillsShUrl},{label:t.global,matches:e=>"global"===hp(e)&&!e.install?.skillsShUrl},{label:t.path,matches:e=>"path"===hp(e)}]){let t=o.filter(r);t.length>0&&e.push({label:n,skills:t})}let n=e=>{let t,n,r=!S&&m===e.filePath,i=e.disableModelInvocation;return(0,d.jsxs)(pn,{active:r,onClick:()=>{f(e.filePath),C(!1)},children:[(0,d.jsx)(pE,{active:!i}),(0,d.jsx)(pr,{className:`is-grow${i?" is-muted":""}`,children:e.name}),(n=(t=hm(e))?N[t]:void 0,n?.state!=="update-available"?null:(0,d.jsx)("span",{title:s("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"}))]},e.filePath)};return e.map(e=>{let{label:t,skills:r}=e,i=r.filter(e=>!e.disableModelInvocation).length,o=i===r.length;return(0,d.jsxs)("div",{className:"config-sidebar-group",children:[(0,d.jsx)(u7,{aside:(0,d.jsx)(pe,{enabled:i,total:r.length,disabled:K,loading:y===t,label:s(o?"skills.groupSwitchOn":"skills.groupSwitchOff",{group:t}),onChange:e=>void U(t,r,e)}),children:t}),j?.group===t&&(0,d.jsx)(pt,{error:j.error}),[...r.filter(e=>!e.disableModelInvocation),...r.filter(e=>e.disableModelInvocation)].map(n)]},t)})})()}),(0,d.jsx)(pN,{onClick:()=>C(!0),active:S,children:s("i18n.addSkill")})]}),(0,d.jsx)(pw,{children:(0,d.jsx)(pi,{className:"is-fill",children:S?(0,d.jsx)(hx,{cwd:t,projectResourcesLoaded:z,installedPackages:{global:new Set(o.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(o.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},onInstalled:()=>{O()}}):a?null:q?(0,d.jsx)(hg,{skill:q,cwd:t,onToggle:H,toggling:g.has(q.filePath),saveError:v,updateStatus:hm(q)?N[hm(q)]:void 0,checkingUpdate:!!hm(q)&&$.has(hm(q)),updating:R===hm(q),updateError:A,onCheckUpdate:()=>void B(q),onUpdate:()=>void _(q)},q.filePath):(0,d.jsx)(py,{children:s("i18n.selectSkill")})})})]}),(0,d.jsxs)(pj,{status:Object.values(N).filter(e=>"update-available"===e.state).length>0&&(0,d.jsxs)("span",{style:{fontSize:12,color:"#d97706"},children:[Object.values(N).filter(e=>"update-available"===e.state).length," ",1===Object.values(N).filter(e=>"update-available"===e.state).length?s("i18n.update"):s("i18n.updates")]}),children:[!r&&(0,d.jsx)(pS,{onClick:n,children:s("i18n.close")}),o.some(e=>!!e.install)&&(0,d.jsx)(pS,{variant:"secondary",onClick:()=>void B(),disabled:I||null!==R,children:I?s("i18n.checking"):s("i18n.checkUpdates")})]})]})}let hb={builtin:0,global:1,workspace:2,project:3},hy=["read","bash","edit","write","grep","find","ls"],hw=["","off","minimal","low","medium","high","xhigh","max"],hj={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},hk={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"},hS={background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"default"};function hC(e){return{name:e.name,displayName:e.displayName,description:e.description,systemPrompt:e.systemPrompt,tools:[...e.tools],loadSkills:e.loadSkills,...void 0!==e.skills?{skills:[...e.skills]}:{},loadExtensions:e.loadExtensions,codemode:e.codemode??"off",mcp:e.mcp??"off",...void 0!==e.extensions?{extensions:[...e.extensions]}:{},promptMode:e.promptMode,...e.model?{model:e.model}:{},...e.thinking?{thinking:e.thinking}:{},...e.maxTurns?{maxTurns:e.maxTurns}:{},inheritContext:e.inheritContext,runInBackground:e.runInBackground,enabled:e.enabled}}function hN(e){return`${e.scope}:${e.name}`}function hE(e){return"global"===e||"project"===e}function h$(e){return hE(e)||"builtin"===e}function hM(e){let{label:t,children:n}=e;return(0,d.jsx)(pd,{label:t,children:n})}function hI(e){let{checked:t,disabled:n,label:r,onChange:i}=e;return(0,d.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,color:n?"var(--text-dim)":"var(--text-muted)",fontSize:12,cursor:n?"default":"pointer"},children:[(0,d.jsx)("input",{type:"checkbox",checked:t,disabled:n,onChange:e=>i(e.target.checked)}),r]})}function hT(e){let{cwd:t,sessionId:n=null,onClose:r,onReloaded:i,embedded:s=!1,trust:o}=e,l=tT(),{t:a}=(0,tw.s)(),[c,p]=(0,u.useState)([]),[h,m]=(0,u.useState)([]),[f,g]=(0,u.useState)(!0),[x,v]=(0,u.useState)(null),[b,y]=(0,u.useState)(()=>uR("agents",t)),[w,j]=(0,u.useState)(hj),[k,S]=(0,u.useState)("view"),[C,N]=(0,u.useState)("global"),[E,$]=(0,u.useState)(!0),[M,I]=(0,u.useState)(!1),[T,R]=(0,u.useState)(!1),[L,A]=(0,u.useState)(!1),[P,z]=(0,u.useState)(null),[W,O]=(0,u.useState)(!1),[F,D]=(0,u.useState)(10),[B,_]=(0,u.useState)(!0),[H,U]=(0,u.useState)(!1),[q,K]=(0,u.useState)(null),[V,Z]=(0,u.useState)(!1),[J,Y]=(0,u.useState)(!1),G=(0,u.useMemo)(()=>c.find(e=>hN(e)===b)??null,[c,b]),X=(0,u.useMemo)(()=>h.map(e=>({provider:e.provider,modelId:e.id,name:e.name})),[h]),Q=(0,u.useCallback)(async e=>{$(!0),z(null);try{let n=await fetch(`/api/subagents/profiles?cwd=${encodeURIComponent(t)}`,{cache:"no-store"}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);let i=r.profiles??[];p(i);let s=e??uR("agents",t),o=i.find(e=>hN(e)===s)??i.find(e=>"project"===e.scope)??i.find(e=>"global"===e.scope)??i[0]??null;y(o?hN(o):null),o&&(j(hC(o)),S(hE(o.scope)?"edit":"view"),hE(o.scope)&&N(o.scope))}catch(e){z(e instanceof Error?e.message:String(e))}finally{$(!1)}},[t]);(0,u.useEffect)(()=>{Q()},[Q]),(0,u.useEffect)(()=>{let e=new AbortController;return _(!0),K(null),(async()=>{try{let t=await fetch("/api/subagents/settings",{cache:"no-store",signal:e.signal}),n=await t.json();if(!t.ok||n.error||"boolean"!=typeof n.enabled)throw Error(n.error??`HTTP ${t.status}`);O(n.enabled),"number"==typeof n.maxConcurrent&&D(n.maxConcurrent)}catch(t){if(e.signal.aborted)return;K(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||_(!1)}})(),()=>e.abort()},[]),(0,u.useEffect)(()=>{b&&uL("agents",b,t)},[t,b]);let ee=hu(o);(0,u.useEffect)(()=>{let e=new AbortController;return g(!0),v(null),(async()=>{try{let n=await fetch(`/api/models?cwd=${encodeURIComponent(t)}`,{signal:e.signal}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);m(r.modelList??[]),v(r.modelError??null)}catch(t){if(e.signal.aborted)return;v(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||g(!1)}})(),()=>e.abort()},[t,ee]);let et=async()=>{I(!0),z(null),R(!1);try{let e=await fetch("/api/subagents/profiles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:C,profile:w})}),n=await e.json();if(!e.ok||n.error||!n.profile)throw Error(n.error??`HTTP ${e.status}`);await Q(hN(n.profile)),R(!0),setTimeout(()=>R(!1),2e3)}catch(e){z(e instanceof Error?e.message:String(e))}finally{I(!1)}},en=async()=>{if(G&&hE(G.scope)&&window.confirm(a("agents.deleteConfirm",{name:G.displayName}))){I(!0),z(null);try{let e=await fetch("/api/subagents/profiles",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:G.scope,name:G.name})}),n=await e.json();if(!e.ok||n.error)throw Error(n.error??`HTTP ${e.status}`);await Q()}catch(e){z(e instanceof Error?e.message:String(e))}finally{I(!1)}}},er="view"!==k,ei="create"===k,es=!er||M||L,eo=ei?C:G?.scope,el=ei?"global"===C?`~/.pi/agent/agents/${w.name||"..."}.md`:`./.pi/agents/${w.name||"..."}.md`:G?(G.filePath?"project"===G.scope||"workspace"===G.scope?eZ(G.filePath,t):eV(G.filePath):null)??a("agents.builtinPath"):"",ea=ei?el:G?.filePath??el,ec=e=>h.some(t=>`${t.provider}/${t.id}`===e),ed=w.model&&function(e,t){if(t(e))return e;let n=e.lastIndexOf(":"),r=e.slice(n+1);return n>0&&r&&hw.includes(r)?e.slice(0,n):e}(w.model,ec),eu=!ed||ec(ed),ep=(()=>{if(!ed)return null;let e=ed.indexOf("/");return e<0?{provider:"",modelId:ed}:{provider:ed.slice(0,e),modelId:ed.slice(e+1)}})(),eh=es?{...hk,...hS}:hk,em=ei?es:!G||!h$(G.scope)||M||L,ef=(e,t)=>{j(n=>({...n,[e]:t}))},eg=0===w.tools.length&&!w.loadSkills&&!w.loadExtensions,ex=async e=>{if(ei)return void ef("enabled",e);if(G&&h$(G.scope)){A(!0),z(null);try{let n=await fetch("/api/subagents/profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:G.scope,name:G.name,enabled:e})}),r=await n.json();if(!n.ok||r.error||!r.profile)throw Error(r.error??`HTTP ${n.status}`);let i=r.profile;p(e=>e.map(e=>hN(e)===hN(i)?i:e)),j(e=>({...e,enabled:i.enabled}))}catch(e){z(e instanceof Error?e.message:String(e))}finally{A(!1)}}},ev=async e=>{U(!0),K(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),r=await t.json();if(!t.ok||r.error||"boolean"!=typeof r.enabled)throw Error(r.error??`HTTP ${t.status}`);O(r.enabled),Z(!!n)}catch(e){K(e instanceof Error?e.message:String(e))}finally{U(!1)}},eb=async e=>{D(e),K(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({maxConcurrent:e})}),n=await t.json();if(!t.ok||n.error||"number"!=typeof n.maxConcurrent)throw Error(n.error??`HTTP ${t.status}`);D(n.maxConcurrent)}catch(e){K(e instanceof Error?e.message:String(e))}},ey=async()=>{if(n){Y(!0),K(null);try{await cd(n,{type:"reload"}),Z(!1),i?.()}catch(e){K(e instanceof Error?e.message:String(e))}finally{Y(!1)}}};return(0,d.jsxs)(u1,{embedded:s,title:a("common.agents"),subtitle:eV(t),closeLabel:a("agents.close"),onClose:r,children:[(0,d.jsxs)("div",{className:"agents-feature-setting",children:[(0,d.jsxs)("div",{className:"agents-feature-copy",children:[(0,d.jsx)("strong",{children:a("agents.builtInTitle")}),(0,d.jsx)("span",{children:a("agents.builtInDescription")}),V&&(0,d.jsx)("span",{role:"status",className:"agents-feature-reload-notice",children:a("agents.reloadRequired")})]}),(0,d.jsxs)("div",{className:"agents-feature-actions",children:[V&&n&&(0,d.jsx)(pS,{size:"small",onClick:()=>void ey(),disabled:J||H,children:J?a("agents.reloading"):a("agents.reloadSession")}),(0,d.jsxs)("label",{className:"agents-concurrency-control",title:a("agents.maxConcurrentDescription"),children:[(0,d.jsx)("span",{children:a("agents.maxConcurrent")}),(0,d.jsx)("input",{"aria-label":a("agents.maxConcurrent"),type:"number",min:1,max:32,value:F,disabled:B||H,onChange:e=>D(Number(e.target.value)),onBlur:()=>void eb(F)})]}),(0,d.jsx)(pC,{checked:W,disabled:B||J,loading:H,label:a("agents.builtInTitle"),onChange:e=>void ev(e)})]})]}),(0,d.jsxs)(u6,{children:[(0,d.jsxs)(u5,{children:[(0,d.jsx)(u9,{children:E?(0,d.jsx)("div",{style:{padding:10,color:"var(--text-dim)",fontSize:12},children:a("agents.loading")}):["project","global","workspace","builtin"].map(e=>{let t=c.filter(t=>t.scope===e);return 0===t.length?null:(0,d.jsxs)("div",{className:"config-sidebar-group",children:[(0,d.jsx)(u7,{children:a(`agents.scope.${e}`)}),t.map(e=>{let t,n,r=(t=e.name.toLowerCase(),n=hb[e.scope],c.some(e=>e.name.toLowerCase()===t&&hb[e.scope]>n));return(0,d.jsxs)(pn,{active:b===hN(e)&&!ei,onClick:()=>{y(hN(e)),j(hC(e)),S(hE(e.scope)?"edit":"view"),hE(e.scope)&&N(e.scope),z(null)},children:[(0,d.jsx)(pE,{active:e.enabled}),(0,d.jsx)(pr,{className:`is-grow${e.enabled?"":" is-muted"}`,children:e.displayName}),r&&(0,d.jsx)("span",{className:"agents-overridden-label",children:a("agents.overridden")})]},hN(e))})]},e)})}),(0,d.jsx)(pN,{active:ei,onClick:()=>{let e="custom-agent",t=2;for(;c.some(t=>t.name===e);)e=`custom-agent-${t++}`;y(null),j({...hj,name:e,displayName:e}),S("create"),N("global"),z(null)},children:a("agents.new")})]}),(0,d.jsx)(pw,{children:(0,d.jsx)(pi,{className:"is-fill",children:G||ei?(0,d.jsxs)(pi,{children:[(0,d.jsxs)(ps,{children:[(0,d.jsx)(po,{children:ei?(0,d.jsx)(pf,{value:C,label:a("config.saveTo"),options:["global","project"].map(e=>({value:e,label:a(`agents.scope.${e}`),disabled:M})),path:el,onChange:N}):(0,d.jsxs)(d.Fragment,{children:[eo&&(0,d.jsx)(ph,{scope:eo,children:a(`agents.scope.${eo}`)}),(0,d.jsx)("span",{title:ea,className:"config-detail-path",children:el})]})}),(0,d.jsxs)(pl,{children:[G&&("view"===k||"edit"===k)&&(0,d.jsx)(pS,{size:"small",onClick:()=>{if(!G)return;let e=function(e,t){let n=new Set(t.map(e=>e.name.toLowerCase())),r=`${e}-copy`,i=r,s=2;for(;n.has(i.toLowerCase());)i=`${r}-${s++}`;return i}(G.name,c);y(null),j({...hC(G),name:e,displayName:a("agents.copyName",{name:G.displayName})}),S("create"),N(hE(G.scope)?G.scope:"global"),z(null)},disabled:M||L,children:a("agents.duplicate")}),G&&hE(G.scope)&&"edit"===k&&(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:()=>void en(),disabled:M||L,children:a("agents.delete")}),(0,d.jsx)(pC,{checked:w.enabled,disabled:em,label:w.enabled?a("agents.disable"):a("agents.enable"),onChange:e=>void ex(e)})]})]}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1fr) minmax(0, 1fr)",gap:12},children:[(0,d.jsx)(hM,{label:a("agents.name"),children:ei?(0,d.jsx)("input",{"aria-label":a("agents.name"),value:w.name,disabled:es,onChange:e=>ef("name",e.target.value),style:hk}):(0,d.jsx)("code",{style:{minHeight:34,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:12},children:w.name})}),(0,d.jsx)(hM,{label:a("agents.displayName"),children:(0,d.jsx)("input",{"aria-label":a("agents.displayName"),value:w.displayName,disabled:es,onChange:e=>ef("displayName",e.target.value),style:eh})})]}),(0,d.jsx)(hM,{label:a("agents.description"),children:(0,d.jsx)("input",{"aria-label":a("agents.description"),value:w.description,disabled:es,onChange:e=>ef("description",e.target.value),style:eh})}),(0,d.jsx)(hM,{label:a("agents.prompt"),children:(0,d.jsx)("textarea",{className:"agents-system-prompt","aria-label":a("agents.prompt"),value:w.systemPrompt,disabled:es,onChange:e=>ef("systemPrompt",e.target.value),style:{...eh,height:195,minHeight:195,maxHeight:"60vh",padding:9,overflow:"auto",resize:es?"none":"vertical",lineHeight:1.5}})}),(0,d.jsx)(hM,{label:a("agents.tools"),children:(0,d.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 16px"},children:hy.map(e=>(0,d.jsx)(hI,{label:e,disabled:es,checked:w.tools.includes(e),onChange:t=>ef("tools",t?[...w.tools,e]:w.tools.filter(t=>t!==e))},e))})}),(0,d.jsxs)(hM,{label:a("agents.resources"),children:[(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 20px"},children:[(0,d.jsx)(hI,{label:a("agents.loadSkills"),disabled:es,checked:w.loadSkills,onChange:e=>ef("loadSkills",e)}),(0,d.jsx)(hI,{label:a("agents.loadExtensions"),disabled:es,checked:w.loadExtensions,onChange:e=>ef("loadExtensions",e)}),(0,d.jsx)(hI,{label:a("agents.mcp"),disabled:es||eg&&"on"!==w.mcp,checked:"on"===w.mcp,onChange:e=>ef("mcp",e?"on":"off")})]}),w.loadSkills&&void 0!==w.skills&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:w.skills.length>0?a("agents.skillsOnly",{skills:w.skills.join(", ")}):a("agents.skillsNone")}),w.loadExtensions&&void 0!==w.extensions&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:w.extensions.length>0?a("agents.extensionsOnly",{extensions:w.extensions.join(", ")}):a("agents.extensionsNone")}),!es&&eg?(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:a("agents.mcpChatOnly")}):"on"===w.mcp&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:a("agents.mcpHint")})]}),(0,d.jsx)(hM,{label:a("agents.codemode"),children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,d.jsxs)("select",{"aria-label":a("agents.codemode"),value:w.codemode??"off",disabled:es,onChange:e=>ef("codemode",e.target.value),style:{...eh,width:"auto",minWidth:180,alignSelf:"flex-start"},children:[(0,d.jsx)("option",{value:"inherit",children:a("agents.codemode.inherit")}),(0,d.jsx)("option",{value:"on",children:a("agents.codemode.on")}),(0,d.jsx)("option",{value:"off",children:a("agents.codemode.off")})]}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:a("agents.codemodeHint")})]})}),(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1.5fr) minmax(120px, 0.75fr) minmax(100px, 0.5fr)",gap:12},children:[(0,d.jsx)(hM,{label:a("agents.model"),children:(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsx)(ah,{options:X,value:ep,onChange:(e,t)=>ef("model",`${e}/${t}`),onClear:()=>ef("model",void 0),emptyLabel:f?a("agents.modelsLoading"):a("agents.inherit"),selectedLabel:w.model&&!eu?a("agents.modelUnavailable",{model:w.model}):w.model!==ed?w.model:void 0,disabled:es||f||0===h.length&&!w.model,ariaLabel:a("agents.model"),variant:"field",placement:"auto"}),x&&(0,d.jsx)("span",{style:{color:"#ef4444",fontSize:10},children:x})]})}),(0,d.jsx)(hM,{label:a("agents.thinking"),children:(0,d.jsx)("select",{"aria-label":a("agents.thinking"),value:w.thinking??"",disabled:es,onChange:e=>ef("thinking",e.target.value||void 0),style:eh,children:hw.map(e=>(0,d.jsx)("option",{value:e,children:e||a("agents.inherit")},e||"default"))})}),(0,d.jsx)(hM,{label:a("agents.maxTurns"),children:(0,d.jsx)("input",{"aria-label":a("agents.maxTurns"),type:"number",min:1,value:w.maxTurns??"",disabled:es,onChange:e=>ef("maxTurns",e.target.value?Number(e.target.value):void 0),style:eh})})]}),(0,d.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 20px"},children:[(0,d.jsx)(hI,{label:a("agents.inheritContext"),disabled:es,checked:w.inheritContext,onChange:e=>ef("inheritContext",e)}),(0,d.jsx)(hI,{label:a("agents.background"),disabled:es,checked:w.runInBackground,onChange:e=>ef("runInBackground",e)})]})]}):(0,d.jsx)(py,{children:a("agents.empty")})})})]}),(0,d.jsx)(pj,{status:(q||P)&&(0,d.jsx)("span",{role:"alert",style:{color:"#ef4444"},children:q||P}),children:er&&(0,d.jsxs)(pS,{variant:"primary",onClick:()=>void et(),disabled:M||T||L||!w.name.trim(),className:T?"is-success":void 0,children:[T&&(0,d.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,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,d.jsx)("span",{children:T?a("i18n.saved"):M?a("agents.saving"):a("agents.save")})]})})]})}let hR=["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"];function hL(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function hA(e){return`${e.scope}\0${e.source}`}function hP(e){return`extension\0${e.path}`}function hz(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}function hW(e,t){return t(`plugins.status.${e}`)}function hO(e){return`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`}function hF(e){return"loaded"===e?"var(--accent)":"installed"===e?"#f59e0b":"disabled"===e?"var(--text-dim)":"#ef4444"}function hD(e){let{pkg:t}=e,{t:n}=(0,tw.s)(),r=[["extension",n("i18n.extensions")],["skill",n("i18n.skills")],["prompt",n("i18n.prompts")],["theme",n("i18n.themes")]].map(e=>{let[n,r]=e;return{kind:n,label:r,resources:t.resources.filter(e=>e.kind===n)}}).filter(e=>e.resources.length>0);return 0===r.length?(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:n(t.disabled?"i18n.packageDisabled":"i18n.noResolvedResources")}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:r.map((e,t)=>(0,d.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,d.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.resources.map(e=>(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:e.path,children:e.relativePath})]},`${e.kind}:${e.path}`))})]},e.kind))})}function hB(e){let{cwd:t,source:n,scope:r,projectResourcesLoaded:i,busy:s,actionError:o,onSourceChange:l,onScopeChange:a,onInstall:c}=e,{t:u}=(0,tw.s)();return(0,d.jsx)(px,{title:u("i18n.addPlugin"),catalogs:[{href:"https://pi.dev/packages",label:"pi.dev/packages",icon:(0,d.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 800 800","aria-hidden":"true",focusable:"false",children:[(0,d.jsx)("path",{fill:"#000",fillRule:"evenodd",d:"M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"}),(0,d.jsx)("path",{fill:"#000",d:"M517.36 400H634.72V634.72H517.36Z"})]})}],target:(0,d.jsx)(pf,{value:r,label:u("config.saveTo"),options:[{value:"global",label:hz("global",u)},{value:"project",label:hz("project",u),disabled:!i}],path:"project"===r?`${eV(t)}/.pi/{npm,git}`:"~/.pi/agent/{npm,git}",disabledReason:u("trust.projectScopeUnavailable"),onChange:a}),inputLabel:u("config.source"),inputId:"plugin-source",placeholder:"npm:@scope/package",value:n,canSubmit:!s&&!!n.trim(),normalizeValue:hL,onValueChange:l,onSubmit:c,examplesLabel:u("config.examples"),examples:hR,error:o,children:(0,d.jsx)(pS,{variant:"primary",onClick:c,disabled:s||!n.trim(),className:"is-pushed-right",children:u(s?"i18n.installing":"i18n.install")})})}function h_(e){let t,{pkg:n,cwd:r,busyKey:i,actionError:s,actionMessage:o,sessionId:l,updateStatus:a,checkingUpdate:c,updateError:p,onAction:h,onCheckUpdate:m,onReloadSession:f}=e,{t:g}=(0,tw.s)(),x=hA(n),v=(i?.endsWith(x)||i?.startsWith("bulk:"))??!1,b="reload"===i,y=!n.disabled,w=n.canCheckForUpdates,j=a?.state==="update-available",k=n.description?.trim(),S=(0,u.useId)();return(0,d.jsxs)(pi,{children:[(0,d.jsxs)("div",{className:"config-detail-heading",children:[(0,d.jsxs)(ps,{className:"is-top-aligned",children:[(0,d.jsxs)(po,{children:[(0,d.jsx)(ph,{scope:n.scope,children:hz(n.scope,g)}),n.disabled?(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:g("i18n.disabled")}):n.filtered&&(0,d.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:g("i18n.filtered")}),(0,d.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.source})]}),(0,d.jsxs)(pl,{children:[(0,d.jsx)(pS,{size:"small",variant:j?"primary":void 0,onClick:j||!w?()=>h("update",n):m,disabled:v||b||c,title:j?g("i18n.updateAvailable"):void 0,children:g(i===`update:${x}`?"i18n.updating":c?"i18n.checking":j||!w?"i18n.update":"i18n.check")}),(0,d.jsx)(pS,{size:"small",onClick:f,disabled:!l||b||v,"aria-describedby":l?void 0:S,children:g(b?"i18n.reloading":"i18n.reloadSession")}),(0,d.jsx)(pS,{variant:"danger",size:"small",onClick:()=>h("remove",n),disabled:v||b,children:g(i===`remove:${x}`?"i18n.removing":"i18n.remove")}),(0,d.jsx)(pC,{checked:y,loading:v||b,onChange:()=>h(n.disabled?"enable":"disable",n),label:g(n.disabled?"i18n.enablePackage":"i18n.disablePackage")})]})]}),!l&&(0,d.jsx)("div",{id:S,className:"config-detail-heading-note",children:g("i18n.openSessionToReload")})]}),(0,d.jsxs)(pu,{children:[k&&(0,d.jsx)(pp,{label:g("i18n.description"),children:k}),(0,d.jsx)(pp,{label:g("i18n.status"),tone:"plain",style:{color:hF(n.status),textTransform:"capitalize"},children:hW(n.status,g)}),(0,d.jsxs)(pp,{label:g("i18n.version"),tone:"plain",style:{display:"flex",flexDirection:"column",gap:4},children:[(0,d.jsxs)("div",{className:"skill-version-row",children:[(0,d.jsx)("span",{className:"skill-version-value",children:(t=[],n.version&&t.push(g("i18n.installedVersion",{version:n.version})),n.configuredVersion&&t.push(g("i18n.configuredVersion",{version:n.configuredVersion})),t.length?t.join(" \xb7 "):g("i18n.unknown"))}),j&&(0,d.jsx)("span",{className:"skill-version-value is-update",title:a.displayName,children:g("i18n.updateAvailable")}),w&&(c||a&&!j)&&(0,d.jsx)("span",{className:`skill-update-status ${c?"is-checking":a?.state==="up-to-date"?"is-success":a?.state==="error"?"is-error":"is-muted"}`,children:c?g("i18n.checking"):a?.state==="up-to-date"?g("i18n.upToDate"):a?.state==="unsupported"?g("i18n.automaticChecksUnavailable"):a?.message||g("i18n.checkFailed")})]}),p&&(0,d.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:p})]}),(0,d.jsx)(pp,{label:g("i18n.package"),mono:!0,children:n.packageName??g("i18n.unknown")}),(0,d.jsx)(pp,{label:g("i18n.resources"),children:function(e,t){if(e.disabled)return t("i18n.disabled");let n=[e.counts.extensions?t("i18n.resourceCount",{count:e.counts.extensions,label:t("i18n.extensionShort")}):"",e.counts.skills?t("i18n.resourceCount",{count:e.counts.skills,label:t("i18n.skillShort")}):"",e.counts.prompts?t("i18n.resourceCount",{count:e.counts.prompts,label:t("i18n.promptShort")}):"",e.counts.themes?t("i18n.resourceCount",{count:e.counts.themes,label:t("i18n.themeShort")}):""].filter(Boolean);return n.length?n.join(" \xb7 "):t("i18n.noResources")}(n,g)}),(0,d.jsx)(pp,{label:g("i18n.installedPath"),tone:n.installedPath?"muted":"error",mono:!0,children:n.installedPath?eV(n.installedPath):g("i18n.notFound")}),(0,d.jsx)(pp,{label:g("i18n.cwd"),tone:"dim",mono:!0,children:eV(r)})]}),(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,d.jsx)(pc,{children:g("i18n.resolvedResources")}),(0,d.jsx)(hD,{pkg:n})]}),o&&(0,d.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:o}),s&&(0,d.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:s})]})}function hH(e){let{extension:t}=e,{t:n}=(0,tw.s)(),r=t.enabled?"loaded":"disabled";return(0,d.jsxs)(pi,{children:[(0,d.jsx)(ps,{children:(0,d.jsxs)(po,{children:[(0,d.jsx)(ph,{scope:t.scope,children:hz(t.scope,n)}),(0,d.jsx)(pa,{children:t.name})]})}),(0,d.jsxs)(pu,{children:[(0,d.jsx)(pp,{label:n("i18n.status"),tone:"plain",style:{color:t.enabled?"var(--accent)":"var(--text-dim)"},children:hW(r,n)}),(0,d.jsx)(pp,{label:n("i18n.installedPath"),mono:!0,children:eV(t.path)})]})]})}function hU(e){var t;let{cwd:n,sessionId:r,onClose:i,onReloaded:s,embedded:o=!1,trust:l}=e,{t:a}=(0,tw.s)(),[c,p]=(0,u.useState)(null),[h,m]=(0,u.useState)(!0),[f,g]=(0,u.useState)(null),[x,v]=(0,u.useState)(()=>uR("plugins",n)),[b,y]=(0,u.useState)(!1),[w,j]=(0,u.useState)(""),[k,S]=(0,u.useState)("global"),[C,N]=(0,u.useState)(null),[E,$]=(0,u.useState)(null),[M,I]=(0,u.useState)(null),[T,R]=(0,u.useState)(null),[L,A]=(0,u.useState)({}),[P,z]=(0,u.useState)(new Set),[W,O]=(0,u.useState)(!1),[F,D]=(0,u.useState)(null),[B,_]=(0,u.useState)(!1),H=(0,u.useMemo)(()=>c?.packages??[],[c?.packages]),U=(0,u.useMemo)(()=>c?.standaloneExtensions??[],[c?.standaloneExtensions]),q=H.find(e=>hA(e)===x)??null,K=U.find(e=>hP(e)===x)??null,V=c?.projectResourcesLoaded??!0,Z=(0,u.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:H.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[H]),J=(0,u.useCallback)(async()=>{m(!0),g(null),R(null);try{let e=await fetch(`/api/plugins?cwd=${encodeURIComponent(n)}`),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);p(t),y(e=>0===t.packages.length&&0===t.standaloneExtensions.length||e),v(e=>e&&(t.packages.some(t=>hA(t)===e)||t.standaloneExtensions.some(t=>hP(t)===e))?e:t.packages[0]?hA(t.packages[0]):t.standaloneExtensions[0]?hP(t.standaloneExtensions[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{m(!1)}},[n]);(0,u.useEffect)(()=>{A({}),D(null),J()},[n]);let Y=hu(l),G=(0,u.useRef)(Y);(0,u.useEffect)(()=>{G.current!==Y&&(G.current=Y,J())},[Y,J]),(0,u.useEffect)(()=>{x&&uL("plugins",x,n)},[n,x]);let X=(0,u.useCallback)(async e=>{let t=(e?[e]:H.filter(e=>e.canCheckForUpdates)).map(hA);if(0!==t.length){D(null),z(e=>new Set([...e,...t])),e||O(!0);try{let t=await fetch("/api/plugins/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,source:e?.source,scope:e?.scope})}),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);A(e=>{let t={...e};for(let e of r.updates??[])t[hA(e)]=e;return t})}catch(e){D(e instanceof Error?e.message:String(e))}finally{z(e=>{let n=new Set(e);for(let e of t)n.delete(e);return n}),e||O(!1)}}},[n,H]),Q=(0,u.useCallback)(async()=>{_(!0),$(null),I(null),D(null);try{let e=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"update",cwd:n})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);p(t),A({}),I(a("i18n.packagesUpdated")),r&&I(`${a("i18n.packagesUpdated")} ${a("agents.reloadRequired")}`)}catch(e){$(e instanceof Error?e.message:String(e))}finally{_(!1)}},[n,r,a]),ee=(0,u.useCallback)(async(e,t)=>{let r=hA(t);N(`${e}:${r}`),$(null),I(null),R(null);try{let i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,source:t.source,scope:t.scope,cwd:n})}),s=await i.json();if(!i.ok||s.error)throw Error(s.error??`HTTP ${i.status}`);if(p(s),"remove"===e)v(s.packages[0]?hA(s.packages[0]):s.standaloneExtensions[0]?hP(s.standaloneExtensions[0]):null),0===s.packages.length&&0===s.standaloneExtensions.length&&y(!0),I(a("i18n.packageRemoved")),A(e=>{let t={...e};return delete t[r],t});else{let t={install:a("i18n.packageInstalled"),update:a("i18n.packageUpdated"),disable:a("i18n.packageDisabled"),enable:a("i18n.packageEnabled")};I(t[e]),"update"===e&&A(e=>{let t={...e};return delete t[r],t})}}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}},[n,a]),et=(0,u.useCallback)(async(e,t,i)=>{let s=hd(t,i,e=>!e.disabled,e=>e.filtered),o=i?0:t.filter(e=>!e.disabled&&e.filtered).length,l=o>0?a("plugins.bulkKeptFiltered",{count:o}):void 0;if($(null),I(null),R(l?{scope:e,note:l}:null),0===s.length)return;let c=i?"enable":"disable";N(`bulk:${e}`);try{let t=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:c,cwd:n,packages:s.map(t=>{let{source:n}=t;return{source:n,scope:e}})})}),o=await t.json();if(!t.ok||o.error||!o.results)throw Error(o.error??`HTTP ${t.status}`);let{results:d,...u}=o;p(u);let h=d.filter(e=>e.error);if(h.length<d.length){let e=i?a("plugins.bulkEnabled"):a("plugins.bulkDisabled");I(r?`${e} ${a("agents.reloadRequired")}`:e)}h.length>0&&R({scope:e,note:l,error:[a("plugins.bulkFailed",{count:h.length,total:d.length}),...h.map(e=>`${e.source}: ${e.error}`)].join("\n")})}catch(t){R({scope:e,note:l,error:t instanceof Error?t.message:String(t)})}finally{N(null)}},[n,r,a]),en=(0,u.useCallback)(async()=>{let e=hL(w).trim();if(!e)return;j(e);let t=`${k}\0${e}`;N(`install:${t}`),$(null),I(null),R(null);try{var r;let i,s,o=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:e,scope:k,cwd:n})}),l=await o.json();if(!o.ok||l.error)throw Error(l.error??`HTTP ${o.status}`);p(l);let c=(r=l.packages,s=(i=e.trim()).startsWith("npm:")?i.slice(4):i,r.find(e=>e.scope===k&&e.source===i)??r.find(e=>e.scope===k&&e.source===`npm:${s}`)??r.find(e=>e.scope===k&&e.source.endsWith(i)));v(c?hA(c):t),y(!1),j(""),I(a("i18n.packageInstalled"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}},[n,k,w,a]),er=(0,u.useCallback)(async()=>{if(r){N("reload"),$(null),I(null),R(null);try{await cd(r,{type:"reload"}),s?.(),await J(),I(a("i18n.sessionReloaded"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}}},[J,s,r,a]),ei=C?.startsWith("install:")??!1,es=Object.values(L).filter(e=>"update-available"===e.state).length,eo=H.some(e=>e.canCheckForUpdates),el=h||null!==C||P.size>0||B;return(0,d.jsxs)(u1,{embedded:o,title:a("common.plugins"),subtitle:eV(n),closeLabel:a("i18n.close"),onClose:i,children:[!V&&(0,d.jsx)(pb,{message:a("trust.pluginsNotLoaded")}),(0,d.jsxs)(u6,{children:[(0,d.jsxs)(u5,{children:[(0,d.jsx)(u9,{children:h?(0,d.jsx)("div",{className:"config-sidebar-message",children:a("i18n.loading")}):f?(0,d.jsx)("div",{className:"config-sidebar-message is-error",children:f}):0===H.length&&0===U.length?(0,d.jsx)("div",{className:"config-sidebar-message is-empty",children:a("i18n.noPlugins")}):(0,d.jsxs)(d.Fragment,{children:[U.length>0&&(0,d.jsxs)("div",{className:"config-sidebar-group",children:[(0,d.jsx)(u7,{children:a("i18n.extensions")}),U.map(e=>{let t=hP(e);return(0,d.jsxs)(pn,{active:!b&&x===t,title:e.path,onClick:()=>{v(t),y(!1),$(null),I(null)},children:[(0,d.jsx)(pE,{active:e.enabled}),(0,d.jsx)(pr,{className:`is-grow${e.enabled?"":" is-muted"}`,children:e.name})]},t)})]}),Z.map(e=>{let t=e.packages.filter(e=>!e.disabled).length,n=t===e.packages.length;return(0,d.jsxs)("div",{className:"config-sidebar-group",children:[(0,d.jsx)(u7,{aside:(0,d.jsx)(pe,{enabled:t,total:e.packages.length,disabled:el,loading:C===`bulk:${e.scope}`,label:a(n?"plugins.groupSwitchOn":"plugins.groupSwitchOff",{group:hz(e.scope,a)}),onChange:t=>void et(e.scope,e.packages,t)}),children:hz(e.scope,a)}),T?.scope===e.scope&&(0,d.jsx)(pt,{error:T.error,note:T.note}),e.packages.map(e=>{let t=hA(e),n=!b&&x===t;return(0,d.jsxs)(pn,{active:n,title:e.description??e.source,onClick:()=>{v(t),y(!1),$(null),I(null)},children:[(0,d.jsx)(pE,{active:!e.disabled,color:hF(e.status)}),(0,d.jsx)(pr,{className:`is-grow${e.disabled?" is-muted":""}`,children:e.source}),L[hA(e)]?.state==="update-available"&&(0,d.jsx)("span",{title:a("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"})]},t)})]},e.scope)})]})}),(0,d.jsx)(pN,{active:b,onClick:()=>{y(!0),$(null),I(null)},children:a("i18n.addPlugin")})]}),(0,d.jsx)(pw,{children:(0,d.jsx)(pi,{className:"is-fill",children:b?(0,d.jsx)(hB,{cwd:n,source:w,scope:k,projectResourcesLoaded:V,busy:ei,actionError:E,onSourceChange:j,onScopeChange:S,onInstall:en}):h?null:K?(0,d.jsx)(hH,{extension:K}):q?(0,d.jsx)(h_,{pkg:q,cwd:n,busyKey:C,actionError:E,actionMessage:M,sessionId:r,updateStatus:L[hA(q)],checkingUpdate:P.has(hA(q)),updateError:F,onAction:ee,onCheckUpdate:()=>void X(q),onReloadSession:er},hA(q)):(0,d.jsx)(py,{children:a("i18n.selectPackage")})})})]}),(0,d.jsxs)(pj,{status:es>0?(0,d.jsxs)("span",{style:{fontSize:12,color:"var(--accent)"},children:[es," ",1===es?a("i18n.update"):a("i18n.updates")]}):c?.diagnostics.length?(0,d.jsx)(pk,{tone:c.diagnostics.some(e=>"error"===e.type)?"error":"warning",summary:1===c.diagnostics.length?a("plugins.diagnostic"):a("plugins.diagnostics",{count:c.diagnostics.length}),details:c.diagnostics.map(hO)}):(0,d.jsx)(pk,{summary:c?[a("i18n.resourceCount",{count:(t=c.totals).extensions,label:a("i18n.extensionShort")}),a("i18n.resourceCount",{count:t.skills,label:a("i18n.skillShort")}),a("i18n.resourceCount",{count:t.prompts,label:a("i18n.promptShort")}),a("i18n.resourceCount",{count:t.themes,label:a("i18n.themeShort")})].join(" \xb7 "):""}),children:[!o&&(0,d.jsx)(pS,{onClick:i,children:a("i18n.close")}),eo&&(0,d.jsx)(pS,{variant:es>0?"primary":"secondary",onClick:()=>void(es>0?Q():X()),disabled:el,title:es>0?a("i18n.updateAllPluginsHint"):void 0,children:B?a("i18n.updating"):W?a("i18n.checking"):es>0?`${a("i18n.updateAllPlugins")} (${es})`:a("i18n.checkUpdates")}),(0,d.jsx)(pS,{variant:"secondary",onClick:()=>void J(),disabled:el,children:a("i18n.refresh")})]})]})}let hq="\\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",hK=RegExp(`[${hq}]`,"gu"),hV=RegExp(`[${hq}]`,"u");function hZ(e){return e.replace(hK,e=>{let t=e.codePointAt(0)??0;return`\\u{${t.toString(16).toUpperCase().padStart(4,"0")}}`})}let hJ=/[\s"'`$|&;<>()*?#~]/;function hY(e){let t=hV.test(e),n=hZ(e);return""===n||t||hJ.test(n)?`"${n.replace(/"/g,'\\"')}"`:n}function hG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return[e,...t].map(hY).join(" ")}function hX(e){let t=void 0!==e.command?hG(e.command,e.args):void 0,n=void 0!==e.url?hZ(e.url):void 0;return"http"===e.transport?n:"stdio"===e.transport?t:n??t}function hQ(e){return[e.name,e.command,e.cwd,e.url,...e.args??[],...e.envNames,...e.headerNames].some(e=>void 0!==e&&hV.test(e))}function h0(e){return"oauth-client-secret"===e.kind?{key:"mcp.field.oauthClientSecret"}:{key:"env"===e.kind?"mcp.field.env":"mcp.field.header",params:{name:hZ(e.name??"")}}}function h1(e){return"http"===e.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables"}function h2(e){return e.length>0?{key:"mcp.server.overridesGlobal",params:{keys:e.join(", ")}}:{key:"mcp.server.overridesGlobalNothing"}}function h4(e){return e.flatMap(e=>{let{variables:t,...n}=e;return t.map(e=>({variable:e,field:n}))})}function h8(e,t){return"unparsable"===e.reason||"unreadable"===e.reason?hZ(e.error):"link-outside"===e.reason?void 0===t?void 0:hZ(t):void 0}let h3="codemode";function h6(e){return`${e.scope}\0${e.name}`}function h5(e){return e?.trust?.decision===!0}function h9(e){return"test"===e.origin?e.state:void 0!==e.closedAt||"not-trusted"===e.state?"on":e.state}function h7(e,t){return void 0!==e.invalidError?"invalid":e.webPasswordField?"web-password":e.enabled?"project"!==e.scope||t.projectServersLoad?"global"===e.scope&&e.shadowedByProject&&t.projectServersLoad?"replaced":"global"===e.scope&&e.overriddenByProject&&t.projectServersLoad?"overridden":t.mcpAvailable?e.status?h9(e.status):"on":"mcp-off":"not-trusted":"disabled"}let me={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"},mt={connected:"mcp.state.session.connected",failed:"mcp.state.session.failed"};function mn(e,t){return(t?.origin==="session"?mt[e]:void 0)??me[e]}let mr={disconnected:"mcp.stateDetail.disconnected",conflict:"mcp.stateDetail.conflict"},mi={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 ms(e){return"on"===e||"connected"===e?"on":"invalid"===e||"web-password"===e||"failed"===e||"conflict"===e?"error":"not-trusted"===e||"needs-auth"===e||"disconnected"===e?"warning":"off"}function mo(e){return"on"===e?{active:!0}:"off"===e?{active:!1}:{color:"error"===e?"#ef4444":"#f59e0b"}}function ml(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=new Date(e),i=new Date(n);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"}):r.toLocaleString(t,{dateStyle:"medium",timeStyle:"short"})}let ma={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"},mc={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"},md={connecting:"off",connected:"on","needs-auth":"warning",failed:"error",disconnected:"warning",conflict:"error","not-trusted":"warning"},mu={codemode:"mcp.exposure.codemode",deferred:"mcp.exposure.deferred",direct:"mcp.exposure.direct",hidden:"mcp.exposure.hidden"},mp=["codemode","deferred","direct","hidden"],mh={codemode:"mcp.exposureShort.codemode",deferred:"mcp.exposureShort.deferred",direct:"mcp.exposureShort.direct",hidden:"mcp.exposureShort.hidden"};function mm(e){return"auto-enable-codemode-invalid"!==e.reason}function mf(e,t){return(t?["project","global"]:["global"]).map(t=>{let n=e.files.find(e=>e.scope===t);return{scope:t,...n?{file:n}:{},servers:e.servers.filter(e=>e.scope===t)}})}function mg(e){return{enabled:e.filter(e=>e.enabled).length,total:e.length}}function mx(e,t){let n=e.flatMap(e=>e.servers.map(h6));return t===h3||null!==t&&n.includes(t)?t:n[0]??null}function mv(e){let t=e?.trust;return void 0!==t&&t.requiresTrust&&!t.trusted}function mb(e){return e.projectOverride?.preference??e.preference}let my={always:"mcp.codemode.projectOverride.always",automatic:"mcp.codemode.projectOverride.automatic"},mw={on:"mcp.codemode.toolMode.onDescription",only:"mcp.codemode.toolMode.onlyDescription"},mj={on:"mcp.codemode.toolMode.projectOverride.on",only:"mcp.codemode.toolMode.projectOverride.only"},mk={automatic:"mcp.codemode.automatic",always:"mcp.codemode.always",unavailable:"mcp.codemode.unavailable",unknown:"i18n.unknown"};function mS(e){return"unavailable"===e?"error":"unknown"===e?"off":"on"}let mC=e=>Array.isArray(e)&&e.every(e=>"string"==typeof e);function mN(e,t){let n=e??{},r=n.breadth,i=n.trust;return{error:"string"==typeof n.error?n.error:`HTTP ${t}`,..."string"==typeof n.reason?{reason:n.reason}:{},..."string"==typeof n.path?{path:n.path}:{},..."string"==typeof n.name?{name:n.name}:{},..."string"==typeof n.suggestedName?{suggestedName:n.suggestedName}:{},...mC(n.names)?{names:n.names}:{},...mC(n.fields)?{fields:n.fields}:{},...Array.isArray(n.notes)?{notes:n.notes.filter(e=>"string"==typeof e?.code)}:{},..."string"==typeof r?.kind&&"string"==typeof r.path?{breadth:r}:{},..."boolean"==typeof i?.requiresTrust&&"boolean"==typeof i.trusted?{trust:i}:{},...!0===n.trustKept?{trustKept:!0}:{}}}async function mE(e,t,n,r){let i,{abortAtDeadline:s=!0}=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=new AbortController,l=()=>o.abort();r?.aborted?o.abort():r?.addEventListener("abort",l,{once:!0});let a=new Promise(e=>{i=setTimeout(()=>{e(t()),s&&o.abort()},n)});try{return await Promise.race([e(o.signal),a])}finally{clearTimeout(i),r?.removeEventListener("abort",l)}}function m$(e){return null!==e&&"object"==typeof e&&"object"==typeof e.mcp&&null!==e.mcp&&"object"==typeof e.codemode&&null!==e.codemode&&Array.isArray(e.files)&&Array.isArray(e.servers)}async function mM(e,t,n){let r,i;try{r=await t(e?`/api/mcp?cwd=${encodeURIComponent(e)}`:"/api/mcp",{cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&m$(i)?{ok:!0,data:i}:{ok:!1,error:mN(i,r.status)}}let mI=new Set(["cwd-invalid","cwd-denied","cwd-not-directory"]);async function mT(e,t,n){let r=await mM(e,t,n);if(r.ok||!e||!r.error.reason||!mI.has(r.error.reason))return r;let i=await mM(null,t,n);return i.ok?{...i,projectError:r.error}:i}async function mR(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mE(n=>mT(e,t,n),()=>({ok:!1,error:{error:`GET /api/mcp did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function mL(e,t,n,r){let i,s;try{i=await n("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:r})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{s=await i.json()}catch{return{ok:!1,error:{error:`HTTP ${i.status}`}}}let o=i.ok&&null!==s&&"object"==typeof s?t(s):void 0;return void 0!==o?{ok:!0,stored:o}:{ok:!1,error:mN(s,i.status)}}async function mA(e,t,n){let r=await mL({codemode:e},e=>{var t;return"automatic"===(t=e.codemode)||"always"===t?e.codemode:void 0},t,n);return r.ok?{ok:!0,preference:r.stored}:r}async function mP(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mE(n=>mA(e,t,n),()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function mz(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mE(async n=>{let r=await mL({codemodeMode:e},e=>{var t;return null!==(t=e.codemodeMode)&&"object"==typeof t&&("on"===t.value||"only"===t.value)&&(void 0===t.invalid||"string"==typeof t.invalid)?e.codemodeMode:void 0},t,n);return r.ok?{ok:!0,mode:r.stored}:r},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function mW(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mE(async n=>{let r=await mL({codemodeInlineBudget:e},e=>{var t;return null!==(t=e.codemodeInlineBudget)&&"object"==typeof t&&(void 0===t.value||"number"==typeof t.value)&&(void 0===t.invalid||"string"==typeof t.invalid)?e.codemodeInlineBudget:void 0},t,n);return r.ok?{ok:!0,inlineBudget:r.stored}:r},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}function mO(e){return!e.available&&"builtin-disabled"!==e.reason}function mF(e,t){if(mO(t.mcp))return"mcp-off";if("project"===e){if(!t.project?.trust)return"trust-unreadable";if(!h5(t.project))return"project-untrusted"}}let mD={"mcp-off":"mcp.readOnly.mcp-off","project-untrusted":"mcp.readOnly.project-untrusted","trust-unreadable":"mcp.readOnly.trust-unreadable"};function mB(e){return!0!==e.notAnObject}function m_(e){return mB(e)&&void 0===e.webPasswordField}async function mH(e,t,n){let r,i;try{r=await t("/api/mcp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&m$(i)?{ok:!0,data:i}:{ok:!1,error:mN(i,r.status)}}async function mU(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3,s={...e,...t?{cwd:t}:{}};return mE(e=>mH(s,n,e),()=>({ok:!1,error:{error:`POST /api/mcp did not answer within ${i} ms`,timedOut:!0}}),i,r)}let mq={"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 mK(e,t){let n=mF(e.scope,t);return n||(void 0===e.invalidError&&e.validated?e.webPasswordField?"web-password":void 0:"invalid")}let mV={"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"},mZ={connected:"mcp.test.state.connected","needs-auth":"mcp.test.state.needs-auth",failed:"mcp.test.state.failed",timedOut:"mcp.test.state.timedOut"},mJ={connected:"mcp.test.summary.connected","needs-auth":"mcp.test.summary.needs-auth",failed:"mcp.test.summary.failed",timedOut:"mcp.test.summary.timedOut"},mY={connected:"mcp.signIn.summary.connected","needs-auth":"mcp.signIn.summary.needs-auth",failed:"mcp.signIn.summary.failed",timedOut:"mcp.signIn.summary.timedOut"};function mG(e){return(Math.max(0,e)/1e3).toFixed(1)}async function mX(e,t,n){let r,i;try{r=await t("/api/mcp/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&function(e){if(null===e||"object"!=typeof e)return!1;let t=e.result;return"string"==typeof e.configKey&&"string"==typeof e.name&&("global"===e.scope||"project"===e.scope)&&"object"==typeof t&&null!==t&&"string"==typeof t.state&&Array.isArray(t.tools)&&"number"==typeof t.testedAt}(i)?{ok:!0,data:i}:{ok:!1,error:mN(i,r.status)}}async function mQ(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:6e4,s={scope:e.scope,name:e.name,...t?{cwd:t}:{}};return mE(e=>mX(s,n,e),()=>({ok:!1,error:{error:`POST /api/mcp/test did not answer within ${i} ms`,timedOut:!0}}),i,r,{abortAtDeadline:!1})}let m0="•••",m1=new Set(["key","apikey","token","secret","password","passwd","passphrase","pwd","pass","credential","credentials","authorization","bearer","jwt","cookie","signature","pat"]),m2=new Set([...m1,"auth","sig","code","pw"]),m4=["token","secret","password","passwd","apikey"],m8=new Set(["file","path","dir","url","uri","endpoint","id","name","type","header","env","var","length","ttl","expiry","expires","timeout","mode","format"]),m3=new Set(["-k"]);function m6(e){return e.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 m5(e,t){let n=m6(e);return!(n.length>1&&m8.has(n[n.length-1]))&&n.some(e=>t.has(e)||m4.some(t=>e.length>t.length&&e.endsWith(t)))}function m9(e){return m5(e,m1)}let m7=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,})"),fe=/^eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*$/,ft=/^[A-Za-z0-9_\-+/=.~]+$/;function fn(e){return!(/\s/.test(e)||fl(e))&&(!!(m7.test(e)||fe.test(e))||!(e.length<24||!ft.test(e)||/^[./~]/.test(e)||/\.[A-Za-z][A-Za-z0-9]{0,4}$/.test(e)||e.split("/").length>2)&&!!/\d/.test(e)&&!!/[A-Za-z]/.test(e)&&(/[a-z]/.test(e)&&/[A-Z]/.test(e)||/^[0-9a-f]+$/i.test(e)||!/[-_.]/.test(e))&&function(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);let n=0;for(let r of t.values()){let t=r/e.length;n-=t*Math.log2(t)}return n}(e)>=3.5)}let fr=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Za-z_][A-Za-z0-9_]*/,fi=RegExp(fr.source,"g"),fs=/^(?:bearer|basic|token)\s+/i;function fo(e,t,n){let r=e.replace(fs,"");return t.test(r)&&/^[^A-Za-z0-9]*$/.test(r.replace(n,""))}function fl(e){return fo(e.replace(/\$[$!]/g,"_x"),fr,fi)}let fa=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Z_][A-Z0-9_]*(?![A-Za-z0-9_])/,fc=RegExp(fa.source,"g");function fd(e){return fo(e,fa,fc)}function fu(e,t){if(!e||""===t)return;e.push(t);let n=fm(t);n!==t&&e.push(n)}let fp=/^([A-Za-z][A-Za-z0-9+.-]*:\/\/)([^/?#]*)/;function fh(e,t,n){let r=!1,i=e,s="",o=fp.exec(e);if(o){let[l,a,c]=o,d=c.lastIndexOf("@");if(d>=0&&!t(fm(c.slice(0,d)))){s=`${a}${m0}${c.slice(d)}`,r=!0;let e=c.slice(0,d);fu(n,e);let t=e.indexOf(":");t>=0&&fu(n,e.slice(t+1))}else s=l;i=e.slice(l.length)}let l=i.search(/[?#]/),a=l<0?i:i.slice(0,l),c=l<0?"":i.slice(l),d=a.split("/").map(e=>fn(fm(e))?(r=!0,fu(n,e),m0):e).join("/");return c=c.replace(/([?&#;])([^&#;]*)/g,(e,i,s)=>{let o=s.indexOf("=");if(o<0){let o=fm(s);return!fn(o)||t(o)?e:(r=!0,fu(n,s),`${i}${m0}`)}let l=s.slice(0,o),a=fm(s.slice(o+1));return""===a||t(a)||!function(e){let t=e;try{t=decodeURIComponent(e)}catch{}return m5(t,m2)}(l)&&!fn(a)?e:(r=!0,fu(n,s.slice(o+1)),`${i}${l}=${m0}`)}),{value:`${s}${d}${c}`,masked:r}}function fm(e){try{return decodeURIComponent(e)}catch{return e}}let ff=/^(\s*[A-Za-z][A-Za-z0-9 _.-]*=)([\s\S]*)$/;function fg(e,t,n){let r=/^([A-Za-z0-9_-]+):(\s*)([\s\S]*)$/.exec(e);if(r&&""!==r[3]&&!r[3].startsWith("//")&&m9(r[1])){let[,i,s,o]=r;return t(o)?{value:e,masked:!1}:(fu(n,o.trim()),{value:`${i}:${s}${m0}`,masked:!0})}let i=e.includes(";")?function(e,t,n){let r=e.split(";");if(r.length<2||!r.every(e=>""===e.trim()||ff.test(e)))return;let i=!1;return{value:r.map(e=>{let r=ff.exec(e);if(!r)return e;let[,s,o]=r;if(""===o.trim()||t(o))return e;if(m9(s.slice(0,-1).trim()))return i=!0,fu(n,o.trim()),`${s}${m0}`;let l=fg(o,t,n);return i||=l.masked,`${s}${l.value}`}).join(";"),masked:i}}(e,t,n):void 0;if(i)return i;let s=/^([A-Za-z_][A-Za-z0-9_]*)=([\s\S]*)$/.exec(e);if(s&&""!==s[2]&&m9(s[1]))return t(s[2])?{value:e,masked:!1}:(fu(n,s[2]),{value:`${s[1]}=${m0}`,masked:!0});if(/\s/.test(e)){var o,l,a;let r,i;return o=e,l=t,a=n,i=fb((r=o.split(/(\s+)/)).filter((e,t)=>t%2==0),l,!0,a),{value:r.map((e,t)=>t%2==0?i.values[t/2]:e).join(""),masked:i.masked}}if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(e))return fh(e,t,n);if(s&&""!==s[2]){let e=fg(s[2],t,n);return{value:`${s[1]}=${e.value}`,masked:e.masked}}return fn(e)&&!t(e)?(fu(n,e),{value:m0,masked:!0}):{value:e,masked:!1}}function fx(e){if(m3.has(e))return!0;if(!/^--?[A-Za-z]/.test(e))return!1;let t=e.replace(/^-+/,"");return m9(t)||"auth"===m6(t).at(-1)}let fv=/^(?:bearer|basic|token)$/i;function fb(e,t,n,r){let i=!1,s=!1;return{values:e.map(e=>{if(""===e)return e;if(s){if(n&&fv.test(e))return e;if(s=!1,!/^-[A-Za-z-]/.test(e))return t(e)?e:(i=!0,fu(r,e),m0)}let o=/^(--?[A-Za-z][A-Za-z0-9_.-]*)=([\s\S]*)$/.exec(e);if(o){let[,e,n]=o;if(""!==n&&fx(e)&&!t(n))return i=!0,fu(r,n),`${e}=${m0}`;let s=fg(n,t,r);return i||=s.masked,`${e}=${s.value}`}if(/^--?[A-Za-z][A-Za-z0-9_.-]*$/.test(e))return s=fx(e),e;if(n){let t=/^([A-Za-z0-9_-]+):$/.exec(e);if(fv.test(e)||t&&m9(t[1]))return s=!0,e}let l=fg(e,t,r);return i||=l.masked,l.value}),masked:i}}function fy(e){let{values:t,masked:n}=fb(e,fd,!1);return{args:t,masked:n}}function fw(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function fj(e){return!e.startsWith("!")&&!fl(e)}function fk(e){return JSON.parse(e.replace(/^\uFEFF/,"").replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,e=>'"'===e[0]?e:"*"===e[1]?" ":"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(e,t)=>t??('"'===e[0]?e:"")))}let fS={"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(fS);let fC={dollarBrace:!1,bareDollar:!1,percent:!1,braceEnv:!1},fN={dollarBrace:!0,bareDollar:!1,percent:!0,braceEnv:!0},fE={...fN,bareDollar:!0},f$={...fC,braceEnv:!0},fM=/^[A-Za-z_][A-Za-z0-9_]*$/,fI=/\$\{([^{}]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)|%([A-Za-z_][A-Za-z0-9_]*)%|\{(env|file):([^{}]*)\}/g;function fT(e,t){if(!t)return;let n=e[e.length-1];n?.kind==="text"?n.text+=t:e.push({kind:"text",text:t})}function fR(e,t,n){let r=[],i=0;fI.lastIndex=0;for(let s=fI.exec(e);s;s=fI.exec(e)){let[o,l,a,c,d,u]=s,p=o;if(void 0!==l&&t.dollarBrace)p=function(e,t){let n=/^env:([A-Za-z_][A-Za-z0-9_]*)$/.exec(e);if(n)return{kind:"env",name:n[1],from:t};let r=/^input:(.+)$/.exec(e);if(r)return{kind:"input",id:r[1],from:t};if("userHome"===e)return{kind:"home",from:t};if("workspaceFolder"===e||"workspaceRoot"===e||"CLAUDE_PROJECT_DIR"===e)return{kind:"workspace",from:t};if("workspaceFolderBasename"===e)return{kind:"workspace-basename",from:t};if("pathSeparator"===e||"/"===e)return"/";if("CLAUDE_PLUGIN_ROOT"===e||"CLAUDE_PLUGIN_DATA"===e)return{kind:"unsupported",from:t};if(fM.test(e))return{kind:"env",name:e,from:t};let i=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(e);return i?{kind:"env",name:i[1],from:t,fallback:i[2]}:/^[A-Za-z]+:/.test(e)?{kind:"unsupported",from:t}:t}(l,o);else if(void 0!==a&&t.bareDollar)p={kind:"env",name:a,from:o};else if(void 0!==c&&t.percent&&n)p={kind:"env",name:c,from:o};else if(void 0!==d&&t.braceEnv)p="env"===d&&fM.test(u)?{kind:"env",name:u,from:o}:{kind:"unsupported",from:o};else if(void 0!==c||void 0!==d){fT(r,e.slice(i,s.index+1)),i=s.index+1,fI.lastIndex=s.index+1;continue}fT(r,e.slice(i,s.index)),"string"==typeof p?fT(r,p):r.push(p),i=s.index+o.length}return fT(r,e.slice(i)),r}function fL(e){let{atStart:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.replace(/\$/g,"$$$$");return t&&n.startsWith("!")?`$${n}`:n}function fA(e){return e.startsWith("!")}function fP(e){if(fA(e))return[];let t=[];for(let n=0;n<e.length;n++){if("$"!==e[n])continue;let r=e[n+1];if("$"===r||"!"===r){n++;continue}if("{"===r){let r=e.indexOf("}",n+2);if(r<0)continue;let i=e.slice(n+2,r);fM.test(i)&&!t.includes(i)&&t.push(i),n=r;continue}let i=/^[A-Za-z_][A-Za-z0-9_]*/.exec(e.slice(n+1));i&&(t.includes(i[0])||t.push(i[0]),n+=i[0].length)}return t}let fz=/<[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,fW=/^(?:\.\.\.|…|\*{3,}|x{3,}|TODO|FIXME|changeme|change[-_]me|replace[-_]?me|placeholder|redacted|\[[^\]]+\])$/i,fO=/(?:^|[\\/])(?:path[\\/]to(?:[\\/]|$)|Users[\\/](?:username|yourname|your[-_][A-Za-z_-]+|user[-_]?name|<[^>]+>)(?:[\\/]|$)|home[\\/](?:username|yourname|your[-_][A-Za-z_-]+|<[^>]+>)(?:[\\/]|$))/i,fF=/^(Bearer|Basic|Token|Bot|ApiKey|Api-Key)\s+(.+)$/i;function fD(e){return e.join("\0")}function fB(e){return"args"===e[0]?`args[${e[1]}]`:e.join(".")}function f_(e){return"env"===e[0]||"headers"===e[0]||"oauth"===e[0]&&"clientSecret"===e[1]}function fH(e){return"command"===e[0]||"args"===e[0]||"cwd"===e[0]}let fU=new Set(["HOME","USERPROFILE"]);class fq{constructor(e,t){this.source=e,this.rawPi=t,this.args=[],this.env=[],this.headers=[],this.oauth={},this.notes=[]}note(e,t){let n=JSON.stringify([e,t??{}]);this.notes.some(e=>JSON.stringify([e.code,e.params??{}])===n)||this.notes.push(t?{code:e,params:t}:{code:e})}}function fK(e){return e.map(e=>"text"in e?e.text:e.from).join("")}let fV=/\$\{[^{}]*\}/g,fZ=new Set(["variable","home","workspace-basename","unsupported-variable","input"]);class fJ{constructor(e){this.draft=e,this.fields=new Map,this.argTexts=e.args.map(fK),this.urlText=fK(e.url??[])}encode(e,t){let n,r=f_(e),i=fB(e),s=fK(t),o=[],l=!1,a=()=>o.every(e=>""===e),c=e=>{if(!r)return void o.push(e);let t=/\$([A-Za-z_][A-Za-z0-9_]*)/.exec(e);t&&this.draft.note("bare-dollar-literal",{field:i,name:t[1]});let n=fL(e,{atStart:a()});n!==e&&(l=!0),o.push(n)},d=e=>o.push(e),u=e=>o.push({field:e});if(!r&&fH(e)&&1===t.length&&"text"in t[0]&&fO.test(s)){let t="args"===e[0]?/^(?:--?[A-Za-z][A-Za-z0-9_.-]*|[A-Za-z_][A-Za-z0-9_]*)=/.exec(s)?.[0]??"":"",n=s.slice(t.length);if(fO.test(n))return t&&d(t),u(this.field(e,"placeholder-path",n,n,"text")),this.target(e,o,void 0)}let p=0;return t.forEach((o,l)=>{let h=t[l+1],m=void 0===h||"text"in h&&/^[\\/]/.test(h.text),f=(t,r,i)=>{let o=0;for(let[c,d]of function(e){let t=e.trim();if(fW.test(t)){let n=e.indexOf(t);return[[n,n+t.length]]}let n=fF.exec(t);if(n&&fW.test(n[2].trim())){let t=e.lastIndexOf(n[2].trim());return[[t,t+n[2].trim().length]]}let r=[];fz.lastIndex=0;for(let t=fz.exec(e);t;t=fz.exec(e))/^your[-_]/.test(t[0])&&/[@/]/.test(e[t.index-1]??"")||r.push([t.index,t.index+t[0].length]);return r}(t)){var l,a;if(i.some(e=>{let[t,n]=e;return c<n&&d>t}))continue;c>o&&r(t.slice(o,c)),"url"===e[0]&&fY(s,p+c)&&(n="uri-component");let h=t.slice(c,d);u(this.field(e,"placeholder",(l=e,a=h,"env"===l[0]||"headers"===l[0]?l[1]:a.replace(/^[<{\s]+|[>}\s]+$/g,"")||fB(l)),h)),o=d}o<t.length&&r(t.slice(o))};switch(o.kind){case"text":f(o.text,c,[]);break;case"pi":{var g;let e=h?(g=o.text,(/\$+$/.exec(g)?.[0].length??0)%2==1?`${g}$`:g):o.text;if(r&&a()&&fA(e)){this.draft.note("shell-command-value",{field:i}),d(e);break}let t=[...e.matchAll(fV)].map(e=>[e.index,e.index+e[0].length]);f(e,d,t);break}case"env":r?(d(`\${${o.name}}`),void 0!==o.fallback&&this.draft.note("variable-fallback-dropped",{field:i,name:o.name,fallback:o.fallback}),o.shell?this.draft.note("shell-variable",{field:i,name:o.name}):o.from!==`\${${o.name}}`&&this.draft.note("variable-translated",{field:i,from:o.from,to:`\${${o.name}}`})):fH(e)&&a()&&fU.has(o.name)&&m?(d("~"),this.draft.note("home-translated",{field:i,from:o.from})):(u(this.field(e,"variable",o.name,o.from,void 0,o.fallback)),this.draft.note(o.shell?"shell-variable":"variable-unsupported-here",{field:i,name:o.name}));break;case"input":u(this.inputField(e,o));break;case"home":r?(d("${HOME}"),this.draft.note("home-variable-translated",{field:i,from:o.from,to:"${HOME}"})):fH(e)&&a()&&m?(d("~"),this.draft.note("home-translated",{field:i,from:o.from})):u(this.field(e,"home","userHome",o.from,"text"));break;case"workspace":"url"===e[0]||"oauth"===e[0]?u(this.field(e,"variable","workspaceFolder",o.from,"text")):(d("."),this.draft.note("workspace-folder-relative",{field:i,from:o.from}));break;case"workspace-basename":u(this.field(e,"workspace-basename","workspaceFolderBasename",o.from,"text"));break;case"unsupported":u(this.field(e,"unsupported-variable",o.from,o.from)),this.draft.note("unsupported-variable",{field:i,variable:o.from});break;case"prompt":"url"===e[0]&&fY(s,p)&&(n="uri-component"),u(this.promptField(e,o))}p+=("text"in o?o.text:o.from).length}),l&&this.draft.note("escaped-value",{field:i}),this.target(e,o,n)}target(e,t,n){let r=t.filter(e=>""!==e);for(let t of new Set(r.flatMap(e=>"string"==typeof e?[]:[e.field]))){let i=this.fields.get(t);i.targets.some(t=>fD(t.path)===fD(e))||i.targets.push({path:e,parts:r,...n?{encoding:n}:{}})}return r.map(e=>"string"==typeof e?e:this.fields.get(e.field).placeholder??"").join("")}field(e,t,n,r,i,s){let o=fZ.has(t)?`${t}.${n}`:fB(e);if(fZ.has(t)){if(this.fields.has(o))return o}else for(let t=2;this.fields.has(o);t++)o=`${fB(e)}#${t}`;let l=this.isSecretContext(e,r)||m9(n),a="headers"===e[0]&&"authorization"===e[1].toLowerCase();return this.fields.set(o,{id:o,kind:i??(l?"password":"text"),reason:t,label:n,placeholder:r,...void 0!==s?{defaultValue:s}:{},..."placeholder"===t&&a?{optional:!0}:{},targets:[]}),o}inputField(e,t){let n=`input.${t.id}`;if(this.fields.has(n))return n;let r=this.draft.inputs?.get(t.id);r?"command"===r.type&&this.draft.note("input-command-unsupported",{id:t.id}):this.draft.note("input-undefined",{id:t.id});let i=r?.type==="pickString"&&r.options&&r.options.length>0?r.options:void 0,s=r?.password===!0||this.isSecretContext(e,t.from);return this.fields.set(n,{id:n,kind:i?"select":s?"password":"text",reason:"input",label:t.id,placeholder:t.from,...r?.description?{description:r.description}:{},...r?.default!==void 0?{defaultValue:r.default}:{},...i?{options:i}:{},targets:[]}),n}promptField(e,t){return this.fields.has(t.id)||this.fields.set(t.id,{id:t.id,kind:t.options?"select":t.secret||this.isSecretContext(e,t.from)?"password":"text",reason:t.reason,label:t.label,placeholder:t.from,...t.description?{description:t.description}:{},...void 0!==t.defaultValue?{defaultValue:t.defaultValue}:{},...t.options?{options:t.options}:{},...t.optional?{optional:!0}:{},targets:[]}),t.id}isSecretContext(e,t){switch(e[0]){case"env":case"headers":return m9(e[1]);case"oauth":return"clientSecret"===e[1];case"args":{if(fy([this.argTexts[e[1]]??""]).masked)return!0;let t=this.argTexts[e[1]-1];return void 0!==t&&fy([t,"x"]).args[1]===m0}case"url":{var n;let e=this.urlText.indexOf(t),r=e<0?void 0:/[?&]([^=&?#]+)=[^&#]*$/.exec(this.urlText.slice(0,e))?.[1];return void 0!==r&&(n=r,fh(`https://host.invalid/?${n}=x`,fd).masked)}default:return!1}}}function fY(e,t){let n=e.indexOf("//"),r=e.slice(n<0?0:n+2).search(/[/?#]/);return r>=0&&t>=(n<0?0:n+2)+r}function fG(e,t,n){let r=n?void 0:function(e){let t;try{t=new URL(e)}catch{return}if(""===t.username&&""===t.password)return;let n=e=>{try{return decodeURIComponent(e)}catch{return e}},r=new TextEncoder().encode(`${n(t.username)}:${n(t.password)}`),i="";for(let e of r)i+=String.fromCharCode(e);return t.username="",t.password="",{url:t.toString(),authorization:`Basic ${btoa(i)}`}}(t);if(!r){e.url=[{kind:"text",text:t}];return}e.url=[{kind:"text",text:r.url}],e.headers.push(["Authorization",[{kind:"text",text:r.authorization}]]),e.note("userinfo-moved-to-header")}let fX=/^[A-Za-z0-9_-]+$/;function fQ(e,t){let n=new Set(t);if(!n.has(e))return e;for(let t=2;;t++){let r=`${e}-${t}`;if(!n.has(r))return r}}let f0=new Set(["mcp","server","mcp-server","mcpserver","cli","index","main","app","src","dist","build","bin","lib"]);function f1(e){let t=e.trim(),n=t.lastIndexOf("@");n>0&&(t=t.slice(0,n)),t=t.replace(/==.*$|\[.*\]$/,"");let r="",i=/^@([^/]+)\/(.+)$/.exec(t);if(i)r=i[1],t=i[2];else if(t.includes("/")){let e=t.split("/").filter(Boolean);t=e[e.length-1]??t}let s=f4(t);return s&&!f0.has(s.toLowerCase())?s:f4(r)||r||s||t}let f2=[/^mcp[-_]server[-_]/i,/^server[-_]/i,/^mcp[-_]/i,/[-_]mcp[-_]server$/i,/[-_]mcp$/i,/[-_]server$/i];function f4(e){let t=e;for(let e=!0;e;)for(let n of(e=!1,f2)){let r=t.replace(n,"");r!==t&&r&&(t=r,e=!0)}return t}let f8=new Set(["mcp","www","api","app","server","servers","remote","gateway"]);function f3(e){let t;try{t=new URL(e).hostname}catch{return""}if("localhost"===t||"127.0.0.1"===t||"[::1]"===t||"::1"===t)return"local";if(/^\d+(?:\.\d+){3}$/.test(t))return"";let n=t.split(".").filter(Boolean);n.length>1&&n.pop(),n.length>1&&/^(?:co|com|org|net|ac|gov)$/.test(n[n.length-1])&&n.pop();let r=n.filter(e=>!f8.has(e.toLowerCase()));return r[r.length-1]??n[n.length-1]??""}let f6=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 f5(e,t){for(let n=0;n<e.length;n++){let r=e[n];if("--"===r)return e[n+1];if(r.startsWith("-")){!r.includes("=")&&t.has(r)&&n++;continue}return r}}function f9(e){let t=e.split(/[\\/]/).filter(Boolean);for(let e=t.length-1;e>=0;e--){let n=t[e].replace(/\.[A-Za-z0-9]+$/,"");if(!f0.has(n.toLowerCase())&&"."!==n&&".."!==n)return f4(n.replace(/_/g,"-"))||n}return""}function f7(e,t){ge(e,t)&>(e,Math.ceil(t/1e3),t)}function ge(e,t){return!!("number"==typeof t&&Number.isFinite(t))&&t>0||(void 0!==t&&e.note("timeout-dropped",{value:String(t)}),!1)}function gt(e,t,n){let r=Math.min(Math.max(t,1),3600);void 0!==n&&e.note("timeout-converted",{from:n,to:r}),r!==t&&e.note("timeout-clamped",{from:t,to:r}),e.timeout=r}let gn=["codemode","deferred","direct","hidden"],gr={"codemode-deferred":"codemode"},gi=["localhost","127.0.0.1","[::1]"];function gs(e){return"string"==typeof e&&gn.includes(e)?e:"string"==typeof e&&Object.hasOwn(gr,e)?gr[e]:void 0}function go(e){try{return new URL(e)}catch{return}}function gl(e){let t=go(e);return void 0!==t&&"http:"===t.protocol&&gi.includes(t.hostname)&&""===t.search&&""===t.hash}function ga(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function gc(e){return ga(e)&&Object.values(e).every(e=>"string"==typeof e)}function gd(e,t){if(!fX.test(e))return{problem:"name",name:e};if(!ga(t))return{problem:"not-an-object"};let{type:n,exposure:r,enabled:i,timeout:s,toolExposure:o,description:l}=t;if(void 0!==r&&!gs(r))return{problem:"exposure",value:String(r)};if(void 0!==o){if(!ga(o))return{problem:"tool-exposure"};for(let[e,t]of Object.entries(o))if(!gs(t))return{problem:"tool-exposure",tool:e}}if(void 0!==i&&"boolean"!=typeof i)return{problem:"enabled"};if(void 0!==l&&"string"!=typeof l)return{problem:"description"};if(void 0!==s&&("number"!=typeof s||!(s>0)))return{problem:"timeout",value:String(s)};if("sse"===n)return{problem:"sse"};if("string"==typeof t.url&&(void 0===n||"http"===n||"streamable-http"===n)){let e=go(t.url);if(!e||!/^https?:$/.test(e.protocol))return{problem:"url",url:t.url};if(void 0!==t.headers&&!gc(t.headers))return{problem:"headers"};let n=function(e){var t;let n;if(void 0===e)return;if(!ga(e))return{problem:"oauth"};if(void 0!==e.clientId&&"string"!=typeof e.clientId)return{problem:"oauth-client-id"};if(void 0!==e.clientSecret&&"string"!=typeof e.clientSecret)return{problem:"oauth-client-secret"};let r=e.callbackPort;if(void 0!==r&&("number"!=typeof r||!Number.isInteger(r)||r<1||r>65535))return{problem:"callback-port",value:String(r)};if(void 0!==e.callbackUrl){if("string"!=typeof e.callbackUrl||!gl(e.callbackUrl))return{problem:"callback-url",value:String(e.callbackUrl)};let t=new URL(e.callbackUrl).port;if(t&&void 0!==r&&Number(t)!==r)return{problem:"callback-port-mismatch",value:t}}if(void 0!==e.scope&&"string"!=typeof e.scope)return{problem:"oauth-scope"};if(void 0!==e.clientName&&("string"!=typeof e.clientName||!e.clientName.trim()))return{problem:"oauth-client-name"};if(void 0!==e.clientRegistration&&"auto"!==e.clientRegistration&&"dcr"!==e.clientRegistration){if("cimd"!==e.clientRegistration)return{problem:"oauth-client-registration",value:String(e.clientRegistration)};if(void 0!==e.clientId||void 0!==e.clientName)return{problem:"oauth-client-registration-client"};let t="string"==typeof e.callbackUrl?go(e.callbackUrl):void 0;if(t&&("[::1]"===t.hostname||"/callback"!==t.pathname))return{problem:"oauth-client-registration-callback"}}if(void 0!==e.authServerMetadataUrl&&!(void 0!==(n="string"==typeof(t=e.authServerMetadataUrl)?go(t):void 0)&&("https:"===n.protocol||"http:"===n.protocol&&gi.includes(n.hostname))))return{problem:"auth-server-metadata-url",value:String(e.authServerMetadataUrl)}}(t.oauth);if(n)return n;let r=t.auth;if(void 0!==r){if(!ga(r)||"string"!=typeof r.provider||!r.provider)return{problem:"auth"};if("https:"!==e.protocol&&!gi.includes(e.hostname))return{problem:"auth-url"}}return}return"string"==typeof t.command&&(void 0===n||"stdio"===n)?void 0===t.args||Array.isArray(t.args)&&t.args.every(e=>"string"==typeof e)?void 0===t.env||gc(t.env)?void 0!==t.cwd&&"string"!=typeof t.cwd?{problem:"cwd"}:void 0:{problem:"env"}:{problem:"args"}:{problem:"no-command-or-url"}}let gu=/[A-Za-z_]/,gp=/[A-Za-z0-9_]/,gh=/^[A-Za-z_][A-Za-z0-9_]*$/,gm=new Set([..." \n'\"\\$`|&;<>()#*?[]{}!~="]),gf=new Set([..."|&;<>()"]),gg=/[0-9@*#?$!-]/,gx={n:"\n",t:" ",r:"\r",a:"\x07",b:"\b",e:"\x1b",E:"\x1b",f:"\f",v:"\v","\\":"\\","'":"'",'"':'"',"?":"?"};function gv(e,t){let n=t+1;for(;" "===e[n]||" "===e[n];)n++;return"\r"===e[n]&&"\n"===e[n+1]?n+2-t:"\n"===e[n]?n+1-t:0}function gb(e,t){return/^(?:[A-Za-z]:\\|\\\\[A-Za-z0-9.$_-])/.test(e.slice(t,t+4))}class gy{constructor(e){this.input=e,this.index=0,this.words=[],this.windowsWord=!1,this.lineBreak=!1}run(){try{this.scan()}catch(e){if(e instanceof gw)return{ok:!1,error:e.detail};throw e}return{ok:!0,words:this.words}}fail(e){throw new gw(e)}startWord(){return this.parts||(this.lineBreak&&this.fail({code:"multiple-commands"}),this.parts=[],this.windowsWord=gb(this.input,this.index)),this.parts}endWord(){if(!this.parts)return;let e=this.parts.filter(e=>"text"!==e.type||""!==e.value),t=e.length>0?e:this.parts.slice(0,1);this.words.push({parts:t,text:t.map(e=>"text"===e.type?e.value:e.raw).join("")}),this.parts=void 0,this.windowsWord=!1}appendText(e,t){let n=this.startWord(),r=n[n.length-1];r?.type==="text"&&r.quote===t?r.value+=e:n.push({type:"text",value:e,quote:t})}scan(){let{input:e}=this;for(;this.index<e.length;){let t=e[this.index];if(" "===t||" "===t)this.endWord(),this.index++;else if("\r"===t&&"\n"===e[this.index+1])this.index++;else if("\n"===t)this.endWord(),this.words.length>0&&(this.lineBreak=!0),this.index++;else if(("\\"===t||"^"===t||"`"===t)&&gv(e,this.index)>0)this.index+=gv(e,this.index);else if("#"!==t||this.parts)"'"===t?(this.startWord(),this.singleQuoted()):'"'===t?(this.startWord(),this.doubleQuoted()):"$"===t?this.dollar("none"):"`"===t?this.fail({code:"command-substitution",syntax:"`"}):gf.has(t)?this.fail({code:"shell-operator",operator:function(e,t){let n=e.slice(t,t+2);return["||","&&",";;",">>","<<",">&","<&",">|","<(",">(","&>"].includes(n)?n:e[t]}(e,this.index)}):"\\"===t?this.backslash():(this.appendText(t,"none"),this.index++);else for(;this.index<e.length&&"\n"!==e[this.index];)this.index++}this.endWord()}backslash(){let e=this.input[this.index+1];if(this.startWord(),void 0===e||this.windowsWord||!gm.has(e)){this.appendText("\\","none"),this.index++;return}this.appendText(e,"none"),this.index+=2}singleQuoted(){let e=this.input.indexOf("'",this.index+1);e<0&&this.fail({code:"unterminated-quote",quote:"'"}),this.appendText(this.input.slice(this.index+1,e),"single"),this.index=e+1}doubleQuoted(){let{input:e}=this,t=gb(e,this.index+1);for(this.index++,this.appendText("","double");this.index<e.length;){let n=e[this.index];if('"'===n)return void this.index++;if("\\"===n){let n=e[this.index+1];"\n"===n?this.index+=2:"\r"===n&&"\n"===e[this.index+2]?this.index+=3:'"'!==n&&(t||"$"!==n&&"`"!==n&&"\\"!==n)?(this.appendText("\\","double"),this.index++):(this.appendText(n,"double"),this.index+=2)}else"$"===n?this.dollar("double"):"`"===n?this.fail({code:"command-substitution",syntax:"`"}):(this.appendText(n,"double"),this.index++)}this.fail({code:"unterminated-quote",quote:'"'})}ansiQuoted(){let{input:e}=this;this.index+=2;let t="";for(;this.index<e.length;){let n=e[this.index];if("'"===n){this.appendText(t,"ansi"),this.index++;return}if("\\"!==n){t+=n,this.index++;continue}let r=e[this.index+1];if("x"===r&&/^[0-9A-Fa-f]{1,2}/.test(e.slice(this.index+2))){let n=/^[0-9A-Fa-f]{1,2}/.exec(e.slice(this.index+2))[0];t+=String.fromCharCode(parseInt(n,16)),this.index+=2+n.length}else if(("u"===r||"U"===r)&&/^[0-9A-Fa-f]{1,8}/.test(e.slice(this.index+2))){let n=RegExp(`^[0-9A-Fa-f]{1,${"u"===r?4:8}}`).exec(e.slice(this.index+2))[0],i=parseInt(n,16);t+=i>1114111||i>=55296&&i<=57343?e.slice(this.index,this.index+2+n.length):String.fromCodePoint(i),this.index+=2+n.length}else void 0!==r&&r in gx?(t+=gx[r],this.index+=2):(t+="\\",this.index++)}this.fail({code:"unterminated-quote",quote:"'"})}dollar(e){let{input:t}=this,n=t[this.index+1];if("("===n&&this.fail({code:"command-substitution",syntax:"("===t[this.index+2]?"$((":"$("}),"none"===e&&"'"===n){this.startWord(),this.ansiQuoted();return}if("none"===e&&'"'===n){this.startWord(),this.index++,this.doubleQuoted();return}if("{"===n)return void this.braced(e);if(void 0!==n&&gu.test(n)){let n=this.index+1;for(;n<t.length&&gp.test(t[n]);)n++;let r=t.slice(this.index+1,n);this.startWord().push({type:"variable",name:r,raw:`$${r}`,quote:e}),this.index=n;return}void 0!==n&&gg.test(n)&&this.fail({code:"shell-parameter",parameter:`$${n}`}),this.appendText("$",e),this.index++}braced(e){let{input:t}=this,n=t.indexOf("}",this.index+2);n<0&&this.fail({code:"unsupported-expansion",expansion:t.slice(this.index)});let r=t.slice(this.index,n+1),i=r.slice(2,-1);if(/^[0-9@*#?$!-]$/.test(i)&&this.fail({code:"shell-parameter",parameter:r}),gh.test(i)){this.startWord().push({type:"variable",name:i,raw:r,quote:e}),this.index=n+1;return}let s=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(i);if(s&&!/[$`{}\\'"]/.test(s[2])){this.startWord().push({type:"variable",name:s[1],raw:r,quote:e,fallback:s[2]}),this.index=n+1;return}this.fail({code:"unsupported-expansion",expansion:r})}}class gw extends Error{constructor(e){super(e.code),this.detail=e}}function gj(e){return new gy(e).run()}function gk(e){return e.parts.every(e=>"text"===e.type)?e.text:void 0}function gS(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}let gC=["httpUrl","trust","includeTools","excludeTools","authProviderType","targetAudience","targetServiceAccount","tcp"];function gN(e){if(gC.some(t=>t in e))return!0;let t=e.oauth;return gS(t)&&["redirectUri","authorizationUrl","tokenUrl","audiences","tokenParamName"].some(e=>e in t)}function gE(e){if(!gS(e))return!1;let{command:t,url:n,serverUrl:r,httpUrl:i}=e;return"string"==typeof t&&""!==t||Array.isArray(t)&&"string"==typeof t[0]||gS(t)&&"string"==typeof t.path||"string"==typeof n||"string"==typeof r||"string"==typeof i}function g$(e){switch(e.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 gM(e){try{let t=new URL(e);if(!/\/sse\/?$/.test(t.pathname))return;return t.pathname=t.pathname.replace(/\/sse\/?$/,"/mcp"),t.toString()}catch{return}}function gI(e,t){let n=t?gM(t):void 0;return{code:"sse-transport",params:{...e?{server:e}:{},...t?{url:t}:{},...n?{suggestedUrl:n}:{}}}}function gT(e){return e?{server:e}:{}}function gR(e){return"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):void 0}function gL(e,t,n){let r;if(!gS(t))return{note:{code:"no-command-or-url",params:gT(e)}};let i=new Set,s=e=>(i.add(e),t[e]),o=n.rawPi,l=function(e,t){switch(e.flavor){case"zed":return fC;case"opencode":return f$;case"vscode":return fN;default:return gN(t)?fE:fN}}(n,t),a=s("name"),c=e??("string"==typeof a?a:void 0),d=new fq(n.source,o),u=(e,t)=>{if(o)return e?[{kind:"pi",text:e}]:[];return t&&"mcp-servers"===n.flavor&&/^!|\$\$|\$!/.test(e)&&d.note("looks-like-pi-config"),fR(e,l,t)};d.name=c,d.inputs=n.inputs;let p=s("inputs");Array.isArray(p)&&(d.inputs=new Map([...n.inputs??[],...gz(p)]));let h=s("type"),m=s("command"),f=[s("httpUrl"),s("url"),s("serverUrl")].find(e=>"string"==typeof e);if("tcp"in t)return{note:{code:"websocket-transport",params:gT(c)}};if(void 0!==h&&"unknown"===(r="string"==typeof h?g$(h):"unknown"))return{note:{code:"unsupported-transport",params:{...gT(c),type:String(h)}}};let g="string"==typeof m&&""!==m||Array.isArray(m)||gS(m),x=void 0!==f;if("sse"===r)return{note:gI(c,f)};if("ws"===r)return{note:{code:"websocket-transport",params:{...gT(c),...f?{url:f}:{}}}};if(void 0===r){if(g&&x)return{note:{code:"ambiguous-command-and-url",params:gT(c)}};if(x){if(void 0!==gM(f))return{note:gI(c,f)};r="http","mcp-servers"===n.flavor&&"string"==typeof t.url&&"string"!=typeof t.httpUrl&&d.note("transport-guessed")}else{if(!g)return{note:{code:"no-command-or-url",params:gT(c)}};r="stdio"}}if("stdio"!==r&&"http"!==r)return{note:{code:"unsupported-transport",params:{...gT(c),type:String(h)}}};if("stdio"===r&&!g||"http"===r&&!x)return{note:{code:"no-command-or-url",params:gT(c)}};if(d.transport=r,"stdio"===r){let e=function(e,t,n,r,i,s){let o,l=r("args"),a=r("opencode"===s.flavor?"environment":"env");if("opencode"===s.flavor&&void 0===a&&(a=r("env")),Array.isArray(n)){if(!n.every(e=>"string"==typeof e)||0===n.length)return{code:"invalid-config",params:{...gT(e.name),problem:"args"}};o=n[0],l=[...n.slice(1),...Array.isArray(l)?l:[]]}else if(gS(n))for(let t of(o="string"==typeof n.path?n.path:void 0,void 0===l&&(l=n.args),void 0===a&&(a=n.env),Object.keys(n)))["path","args","env"].includes(t)||e.note("dropped-key",{key:`command.${t}`});else"string"==typeof n&&(o=n);if(!o)return{code:"no-command-or-url",params:gT(e.name)};let c=Array.isArray(l)?[...l]:[];if(void 0!==l&&!Array.isArray(l))return{code:"invalid-config",params:{...gT(e.name),problem:"args"}};if(0===c.length&&/\s/.test(o.trim())&&!/^(?:[A-Za-z]:[\\/]|[\\/]|~[\\/]|\.{1,2}[\\/])/.test(o.trim())){let t=gj(o.trim()),n=t.ok?t.words.map(gk):void 0;n&&n.length>1&&n.every(e=>void 0!==e)&&(e.note("command-split",{command:o}),o=n[0],c.push(...n.slice(1)))}for(let[t,n]of(e.command=i(o,!1),c.entries())){let r=gR(n);if(void 0===r)return{code:"invalid-config",params:{...gT(e.name),problem:"args",index:t}};e.args.push(i(r,!1))}if(void 0!==a){if(!gS(a))return{code:"invalid-config",params:{...gT(e.name),problem:"env"}};for(let[t,n]of Object.entries(a)){if(null===n){e.note("env-null-dropped",{name:t});continue}let r=gR(n);if(void 0===r){e.note("dropped-key",{key:`env.${t}`});continue}if("string"!=typeof n&&e.note("env-value-stringified",{name:t}),""===r&&m9(t)){e.env.push([t,[{kind:"prompt",id:`env.${t}`,reason:"empty",label:t,from:"",secret:!0}]]);continue}e.env.push([t,i(r,!0)])}}let d=r("cwd");for(let n of("string"==typeof d&&""!==d?e.cwd=i(d,!1):void 0!==d&&""!==d&&e.note("dropped-key",{key:"cwd"}),["headers","oauth","auth","url","httpUrl","serverUrl"]))n in t&&(r(n),e.note("dropped-key",{key:n}))}(d,t,m,s,u,n);if(e)return{note:e}}else!function(e,t,n,r,i){let s=r("headers"),o=i(n,!1),l=gS(s)&&Object.keys(s).some(e=>"authorization"===e.toLowerCase());if(1===o.length&&"text"in o[0]?fG(e,n,l):e.url=o,gS(s))for(let[t,n]of Object.entries(s)){let r=gR(n);if(void 0===r){e.note("dropped-key",{key:`headers.${t}`});continue}if(""===r.trim()){"authorization"===t.toLowerCase()?e.note("empty-authorization-dropped"):m9(t)?e.headers.push([t,[{kind:"prompt",id:`headers.${t}`,reason:"empty",label:t,from:"",secret:!0,optional:!0}]]):e.headers.push([t,[]]);continue}e.headers.push([t,i(r,!0)])}else void 0!==s&&e.note("dropped-key",{key:"headers"});let a=r("oauth"),c=r("auth");if(!1===a?e.note("oauth-disable-unsupported"):gS(a)?gA(e,a,i):void 0!==a&&e.note("dropped-key",{key:"oauth"}),gS(c))for(let t of(gA(e,{...void 0!==c.CLIENT_ID?{clientId:c.CLIENT_ID}:{},...void 0!==c.CLIENT_SECRET?{clientSecret:c.CLIENT_SECRET}:{},...void 0!==c.scopes?{scopes:c.scopes}:{}},i,"auth."),Object.keys(c)))["CLIENT_ID","CLIENT_SECRET","scopes"].includes(t)||e.note("oauth-option-dropped",{key:`auth.${t}`});else void 0!==c&&e.note("dropped-key",{key:"auth"});for(let n of["command","args","env","environment","cwd"])n in t&&(r(n),e.note("dropped-key",{key:n}))}(d,t,f,s,u);let v=s("timeout");if(void 0!==v)if(o)"number"==typeof v&&v>0?d.timeout=v:d.note("timeout-dropped",{value:String(v)});else if("opencode"===n.flavor)d.note("timeout-dropped",{value:String(v)});else if(gN(t))f7(d,v);else["autoApprove","alwaysAllow","transportType"].some(e=>e in t)||"streamableHttp"===t.type?ge(d,v)&>(d,Math.ceil(v),void 0):!function(e,t){if(!ge(e,t))return;let n=t>=1e3;e.note("timeout-unit-guessed",{value:t,unit:n?"milliseconds":"seconds"}),n?gt(e,Math.ceil(t/1e3),t):gt(e,Math.ceil(t),void 0)}(d,v);let b=s("enabled"),y=s("disabled");!1===b||!0===y?(d.enabled=!1,d.note("imported-disabled")):(void 0!==b&&"boolean"!=typeof b||void 0!==y&&"boolean"!=typeof y)&&d.note("dropped-key",{key:void 0!==b?"enabled":"disabled"});let w=s("exposure");if(void 0!==w){let e=gs(w);e?d.exposure=e:d.note("invalid-exposure-dropped",{value:String(w)})}let j=s("toolExposure");if(void 0!==j){let e=gS(j)?Object.entries(j).map(e=>{let[t,n]=e;return[t,gs(n)]}):void 0;e?.every(e=>{let[,t]=e;return void 0!==t})?d.toolExposure=Object.fromEntries(e):d.note("invalid-exposure-dropped",{value:"toolExposure"})}if(o||void 0===w&&void 0===j||d.note("looks-like-pi-config"),o){let e=s("description");"string"==typeof e?d.description=e:void 0!==e&&d.note("dropped-key",{key:"description"})}for(let e of(gP(d,s("includeTools"),s("excludeTools")),Object.keys(t)))i.has(e)||d.note("dropped-key",{key:e});return{draft:d}}function gA(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"oauth.";for(let[i,s]of Object.entries(t))switch(i){case"clientId":"string"==typeof s&&""!==s&&(e.oauth.clientId=n(s,!1));break;case"clientSecret":"string"==typeof s&&""!==s&&(e.oauth.clientSecret=n(s,!0));break;case"callbackPort":"number"==typeof s&&Number.isInteger(s)&&s>=1&&s<=65535?e.oauth.callbackPort=s:e.note("callback-port-dropped",{value:String(s)});break;case"clientName":"string"==typeof s&&s.trim()?e.oauth.clientName=n(s,!1):e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"clientRegistration":"auto"===s||"dcr"===s||"cimd"===s?e.oauth.clientRegistration=s:e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"authServerMetadataUrl":"string"==typeof s&&""!==s?e.oauth.authServerMetadataUrl=n(s,!1):e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"callbackUrl":case"redirectUri":"string"==typeof s&&gl(s)?e.oauth.callbackUrl=n(s,!1):e.note("callback-url-dropped",{value:String(s)});break;case"scope":case"scopes":{let t=Array.isArray(s)?s.filter(e=>"string"==typeof e).join(" "):"string"==typeof s?s:"";t&&(e.oauth.scope=n(t,!1));break}case"enabled":!1===s&&e.note("oauth-disable-unsupported");break;default:e.note("oauth-option-dropped",{key:`${r}${i}`})}let{callbackPort:i,callbackUrl:s}=e.oauth;if(void 0!==i&&s){let t=s.map(e=>"text"in e?e.text:"").join(""),n="";try{n=new URL(t).port}catch{}n&&Number(n)!==i&&(e.note("callback-url-dropped",{value:t}),e.oauth.callbackUrl=void 0)}}function gP(e,t,n){let r=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e):[],i=r(t),s=r(n);if(0===i.length&&0===s.length)return;let o={...e.toolExposure??{}};if(i.length>0){let t=e.exposure??"codemode";for(let n of(e.exposure="hidden",i))o[n]=t;e.note("tool-filter-imported",{mode:"include",tools:i.join(", ")})}for(let e of s)o[e]="hidden";s.length>0&&e.note("tool-filter-imported",{mode:"exclude",tools:s.join(", ")}),e.toolExposure=o}function gz(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e)gS(n)&&"string"==typeof n.id&&t.set(n.id,{id:n.id,..."string"==typeof n.type?{type:n.type}:{},..."string"==typeof n.description?{description:n.description}:{},...!0===n.password?{password:!0}:{},..."string"==typeof n.default?{default:n.default}:{},...Array.isArray(n.options)?{options:n.options.map(e=>gS(e)?e.value:e).filter(e=>"string"==typeof e)}:{}});return t}function gW(e,t,n,r){let i=[],s=0;for(let o of e.matchAll(/\{([A-Za-z_][A-Za-z0-9_-]*)\}/g)){o.index>s&&i.push({kind:"text",text:e.slice(s,o.index)});let l=gS(t)&&gS(t[o[1]])?t[o[1]]:{};i.push(gO(`${n}${o[1]}`,o[1],o[0],l,r)),s=o.index+o[0].length}return s<e.length&&i.push({kind:"text",text:e.slice(s)}),i}function gO(e,t,n,r,i){let s=Array.isArray(r.choices)?r.choices.filter(e=>"string"==typeof e):[];return{kind:"prompt",id:e,reason:i,label:t,from:n,secret:!0===r.isSecret,..."string"==typeof r.description?{description:r.description}:{},..."string"==typeof r.default?{defaultValue:r.default}:{},...!0===r.isRequired?{}:{optional:"registry-header"===i},...s.length>0?{options:s}:{}}}function gF(e,t,n){let r=[],i="",s=()=>{i&&("pi"===t?r.push({kind:"pi",text:i}):r.push(...fR(i,t,n)),i="")};for(let t of e)"variable"===t.type?(s(),r.push({kind:"env",name:t.name,from:t.raw,shell:!0,...void 0!==t.fallback?{fallback:t.fallback}:{}})):i+=t.value;return s(),r}function gD(e,t){let n="";for(let r=0;r<e.length;r++){let i=e[r];if("variable"===i.type){n+=i.raw;continue}let s=i.value.indexOf(t);if(s<0){n+=i.value;continue}n+=i.value.slice(0,s);let o=i.value.slice(s+t.length);return[n,[...o?[{...i,value:o}]:[],...e.slice(r+1)]]}}let gB=/^https?:\/\//i,g_=/^wss?:\/\//i,gH={"@earendil-works/pi-coding-agent":"pi","@anthropic-ai/claude-code":"claude","@openai/codex":"codex","@google/gemini-cli":"gemini"},gU=new Set(["pi","claude","codex","gemini"]),gq=new Set(["install","remove","uninstall","update","list","config"]);function gK(e){return"error"in e?{error:e.error}:{entries:[e],notes:[]}}let gV={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","oauth-client-registration":"value",exposure:"value",description:"value"},gZ=new Map([["-l","--local"]]),gJ=["header","bearer-token-env-var","oauth-client-id","oauth-client-secret","oauth-callback-port","oauth-client-name","oauth-client-registration"],gY=["env","cwd"];function gG(e,t,n,r){let i={positional:[],afterDashDash:[],values:new Map,lists:new Map,seen:new Map};for(let s=0;s<t.length;s++){let o=t[s],l=o.text;if("--"===l){i.afterDashDash.push(...t.slice(s+1));break}if(void 0!==r.stopAfter&&i.positional.length>=r.stopAfter){i.positional.push(...t.slice(s));break}if(!l.startsWith("-")||"-"===l){i.positional.push(o);continue}let a=l.startsWith("--")?l.indexOf("="):-1,c=a>0?l.slice(0,a):l,d=n[c];if(!d){if(i.positional.length>=r.asArgAfter){i.positional.push(o),i.seen.set(`as-arg:${c}`,c);continue}return{error:{code:"cli-unknown-option",params:{cli:e,option:c}}}}if(i.seen.set(d.name,c),"flag"===d.kind){i.values.set(d.name,!0);continue}let u=a>0?gX(o,a+1):void 0;if("value"===d.kind||"list"===d.kind){let n=u??t[++s];if(void 0===n)return{error:{code:"cli-option-needs-value",params:{cli:e,option:c}}};"value"===d.kind?i.values.set(d.name,n):i.lists.set(d.name,[...i.lists.get(d.name)??[],n]);continue}let p=u?[u]:[];if(!u)for(;s+1<t.length&&r.variadic(d.name,t[s+1]);)p.push(t[++s]);if(0===p.length)return{error:{code:"cli-option-needs-value",params:{cli:e,option:c}}};i.lists.set(d.name,[...i.lists.get(d.name)??[],...p])}return i}function gX(e,t){let n=0,r=[];for(let i of e.parts){let e="text"===i.type?i.value.length:i.raw.length;n>=t?r.push(i):n+e>t&&"text"===i.type&&r.push({...i,value:i.value.slice(t-n)}),n+=e}return{parts:r,text:e.text.slice(t)}}let gQ=/^[A-Za-z_][A-Za-z0-9_]*=/,g0=/^[^\s:]+:/;function g1(e,t,n,r){for(let i of t??[]){let t=gD(i.parts,"=");if(!t||!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t[0]))return{code:"cli-invalid-pair",params:{cli:r,option:"--env",value:i.text}};e.env.push([t[0],gF(t[1],n,!0)])}}function g2(e,t,n,r){for(let i of t??[]){let t=gD(i.parts,":"),s=t?.[0].trim();if(!t||!s)return{code:"cli-invalid-pair",params:{cli:r,option:"--header",value:i.text}};let o=function(e){let t=e.map(e=>({...e})),n=t[0];n?.type==="text"&&(n.value=n.value.replace(/^\s+/,""));let r=t[t.length-1];return r?.type==="text"&&(r.value=r.value.replace(/\s+$/,"")),t}(t[1]);if("authorization"===s.toLowerCase()&&o.every(e=>"text"===e.type&&""===e.value)){e.note("empty-authorization-dropped");continue}e.headers.push([s,gF(o,n,!0)])}}function g4(e){if(void 0!==e&&!0!==e){if("user"===e.text)return"global";if("project"===e.text)return"project"}}function g8(e,t,n,r,i){let s,[o,l,...a]=r;if(!o||!l)return{code:"cli-usage",params:{cli:t}};e.name=o.text;let c=void 0===n||!0===n?void 0:n.text.toLowerCase();if(void 0===c){if("http"==(s=gB.test(l.text)?"http":g_.test(l.text)?"ws":"stdio")&&void 0!==gM(l.text))return gI(o.text,l.text);"http"===s&&"gemini"===t&&e.note("transport-assumed-http")}else s="streamable-http"===c?"http":c;return"sse"===s?gI(o.text,l.text):"ws"===s?{code:"websocket-transport",params:{server:o.text,url:l.text}}:"http"===s?(e.transport="http",e.url=gF(l.parts,i,!1),a.length>0&&e.note("cli-extra-arguments",{cli:t,arguments:a.map(e=>e.text).join(" ")}),"http"):"stdio"!==s?{code:"unsupported-transport",params:{server:o.text,type:s}}:(e.transport="stdio",e.command=gF(l.parts,i,!1),e.args=a.map(e=>gF(e.parts,i,!1)),"stdio")}let g3={"-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 g6(e,t){return"env"===e?gQ.test(t.text):g0.test(t.text)&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(t.text)}function g5(e){e.oauth.clientSecret=[{kind:"prompt",id:"oauth.clientSecret",reason:"client-secret",label:"clientSecret",from:"",secret:!0}],e.note("client-secret-prompt")}let g9={"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"--client-secret":{name:"client-secret",kind:"flag"}};function g7(e){let t,n=gk(e)??e.text;try{t=fk(n)}catch(e){return{error:{code:"invalid-json",params:{detail:e instanceof Error?e.message:String(e)}}}}return gS(t)?{value:t}:{error:{code:"no-servers-found"}}}let xe={"--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"}},xt={"-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 xn(e){let t=new Map;for(let n of e.replace(/^\?/,"").split("&")){if(!n)continue;let e=n.indexOf("="),r=e<0?n:n.slice(0,e),i=e<0?"":n.slice(e+1);t.set(xr(r),xr(i))}return t}function xr(e){try{return decodeURIComponent(e)}catch{return e}}function xi(e){let t=e.trim();for(let e=0;e<4;e++)try{return fk(t)}catch{let e=xr(t);if(e===t)break;t=e.trim()}}function xs(e){return{error:{code:"install-link-invalid",params:{detail:e}}}}function xo(e){let t=e.get("config");if(!t)return xs("config");let n=t.trim().startsWith("{")?t:function(e){let t=e.trim().replace(/ /g,"+").replace(/-/g,"+").replace(/_/g,"/").replace(/=+$/,"");if(/^[A-Za-z0-9+/]+$/.test(t)&&t.length%4!=1){t+="=".repeat((4-t.length%4)%4);try{let e=atob(t),n=Uint8Array.from(e,e=>e.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(n)}catch{return}}}(t),r=void 0===n?void 0:xi(n);return gS(r)?{entries:[gL(e.get("name")||void 0,r,{source:"cursor-install-link",flavor:"mcp-servers",rawPi:!1})],notes:[]}:xs("config")}function xl(e,t,n,r){return gS(e)?{entries:[gL(n,e,{source:t,flavor:"vscode",rawPi:!1,inputs:gz(r)})],notes:[]}:xs("config")}function xa(e){return{error:{code:"by-name-link",params:{name:e}}}}function xc(e){let t=e.indexOf("?");return t<0?"":e.slice(t+1)}function xd(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.replace(/&/g,"&");try{t=new URL(r)}catch{if(/^https?:\/\/\S+$/i.test(r)&&0===n)return{entries:[xp(void 0,r)],notes:[]};return{error:{code:"unrecognized-input"}}}if(n>3)return xs("nesting");let i=t.protocol.replace(/:$/,"").toLowerCase();switch(i){case"cursor":if(/\/mcp\/install\/?$/.test(t.pathname))return xo(xn(t.search));return xs("cursor");case"vscode":case"vscode-insiders":case"code-oss":{let e=r.slice(r.indexOf(":")+1).replace(/^\/+/,""),t=/^mcp\/by-name\/([^?#]+)/.exec(e);if(t)return xa(xr(t[1]));if(/^mcp\/api\.mcp\.github\.com\//.test(e))return xa(e.replace(/^mcp\//,""));if(/^mcp\/install\?/.test(e))return xl(xi(xc(r)),"vscode-install-link");return xs(i)}case"vsweb+mcp":return xl(xi(xc(r)),"visual-studio-install-link");case"ghapp":if(/^\/\/mcp\/install/.test(r.slice(r.indexOf(":")+1)))return xl(xi(xc(r)),"copilot-app-install-link");return xs(i);case"ws":case"wss":return{entries:[{note:{code:"websocket-transport",params:{url:r}}}],notes:[]};case"http":case"https":return function(e,t,n){let r=e.hostname.toLowerCase().replace(/^www\./,""),i=e.pathname;if(("cursor.com"===r||"lmstudio.ai"===r)&&/^\/(?:[a-z]{2}(?:-[A-Za-z]{2,4})?\/)?install-mcp\/?$/.test(i))return xo(xn(e.search));if("vscode.dev"===r||"insiders.vscode.dev"===r){let t=xn(e.search);if(/^\/redirect\/?$/.test(i)&&t.get("url"))return xd(t.get("url"),n+1);if(/^\/redirect\/mcp\/install\/?$/.test(i)){let e=t.get("config");return e?xl(xi(e),"vscode-install-link",t.get("name")||void 0,xi(t.get("inputs")??"[]")):xs("config")}}if("aka.ms"===r&&/^\/vs\/mcp-install\/?$/i.test(i))return xl(xi(e.search.slice(1)),"visual-studio-install-link");if("github.com"===r&&/^\/copilot\/app\/launch\/?$/.test(i)){let t=xn(e.search).get("open");return t?xd(t,n+1):xs("open")}if(/\.(?:svg|png)$/i.test(i)&&("cursor.com"===r||"img.shields.io"===r||r.endsWith("githubusercontent.com")))return{error:{code:"badge-image"}};if("github.com"===r){let e=i.split("/").filter(Boolean);return"mcp"===e[0]&&e.length>=2?{error:{code:"github-mcp-page",params:{name:e.slice(1).join("/")}}}:"mcp"!==e[0]&&e.length>=2?{error:{code:"github-repo-link",params:{repository:`${e[0]}/${e[1]}`}}}:{error:{code:"github-page"}}}return{entries:[xp(e,t)],notes:[]}}(t,r,n);default:return{error:{code:"unsupported-url-scheme",params:{scheme:i}}}}}let xu=new Set(["localhost","127.0.0.1","[::1]"]);function xp(e,t){let n=f3(t)||void 0;if(void 0!==gM(t))return{note:gI(n,t)};let r=new fq("url",!1);return r.transport="http",fG(r,t,!1),e?.protocol!=="http:"||xu.has(e.hostname)||r.note("insecure-http",{host:e.hostname}),{draft:r}}let xh=/[\u200B-\u200D\u2060\uFEFF]/g,xm=/^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:[/?#]\S*)?$/i,xf={"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 xg(e){return new Set(e.fields.flatMap(e=>e.targets.map(e=>fD(e.path))))}function xx(e){var t;let n,r,i,s,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=(n=e.replace(xh,"").replace(/\u00A0/g," ").trim(),(r=/```[^\n]*\n([\s\S]*?)(?:```|$)/.exec(n))?n=r[1].trim():/^`[^`\n]+`$/.test(n)&&(n=n.slice(1,-1).trim()),(i=n.startsWith("[")?/\]\(([^()\s]+)\)\s*$/.exec(n):null)&&(n=i[1]),/^<\S+>$/.test(n)&&(n=n.slice(1,-1)),n);if(!l)return{ok:!1,notes:[{code:"empty-input"}]};if(l.startsWith("{")||l.startsWith("[")||/^"[^"\n]+"\s*:/.test(l))s=function(e,t){let n;try{n=fk(e)}catch(t){try{n=fk(`{${e.replace(/,\s*$/,"")}}`)}catch{return{error:{code:"invalid-json",params:{detail:t instanceof Error?t.message:String(t)}}}}}return function(e,t){let n=[],r=(e,t)=>Object.entries(e).map(e=>{let[n,r]=e;return gL(n,r,t)});if(Array.isArray(e)){let r=e.filter(gE);return 0===r.length?{error:{code:"no-servers-found"}}:{entries:r.map(e=>gL(void 0,e,{source:"server-object",flavor:"mcp-servers",rawPi:t})),notes:n}}if(!gS(e))return{error:{code:"no-servers-found"}};let i=gS(e.server)&&(Array.isArray(e.server.remotes)||Array.isArray(e.server.packages))?e.server:Array.isArray(e.remotes)||Array.isArray(e.packages)?e:void 0;if(i)return{entries:function(e){let t="string"==typeof e.name?e.name:"",n=t?f1(t.split("/").pop()??t):void 0,r=Array.isArray(e.remotes)?e.remotes.filter(gS):[],i=r.filter(e=>"string"==typeof e.type&&"http"===g$(e.type)&&"string"==typeof e.url);if(0===i.length){let e=r.find(e=>"sse"===e.type);return e?[{note:gI(n,"string"==typeof e.url?e.url:void 0)}]:[{note:{code:"registry-packages-unsupported",params:gT(n)}}]}return i.map(e=>{let r=new fq("registry-server-json",!1);for(let i of(r.name=n,t&&n!==t&&(r.originalName=t),r.transport="http",r.url=gW(e.url,e.variables,"url.","registry-variable"),Array.isArray(e.headers)?e.headers.filter(gS):[])){if("string"!=typeof i.name||""===i.name)continue;let e=i.name;"string"==typeof i.value&&""!==i.value?r.headers.push([e,gW(i.value,i.variables,`headers.${e}.`,"registry-header")]):r.headers.push([e,[gO(`headers.${e}`,e,"",i,"registry-header")]])}return{draft:r}})}(i),notes:n};if(gS(e.mcpServers))return"boolean"!=typeof e.autoEnableCodemode||t||n.push({code:"looks-like-pi-config"}),{entries:r(e.mcpServers,{source:"mcp-servers-json",flavor:"mcp-servers",rawPi:t}),notes:n};if(gS(e.servers)){let t=gz(e.inputs);return{entries:r(e.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:t}),notes:n}}if(gS(e.mcp)){let t=e.mcp;if(gS(t.servers)){let e=gz(t.inputs);return{entries:r(t.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:e}),notes:n}}return{entries:r(t,{source:"opencode-json",flavor:"opencode",rawPi:!1}),notes:n}}if(gS(e.context_servers))return{entries:Object.entries(e.context_servers).map(e=>{let t,[n,r]=e;return gS(r)&&("extension"===r.source||!gE(r))?{note:{code:"zed-extension-server",params:{server:n}}}:gL(n,gS(r)?(t={...r},delete t.source,t):r,{source:"zed-json",flavor:"zed",rawPi:!1})}),notes:n};if(gE(e))return{entries:[gL(void 0,e,{source:"server-object",flavor:"mcp-servers",rawPi:t})],notes:n};let s=Object.values(e);return s.length>0&&s.every(gS)&&s.some(gE)?{entries:r(e,{source:"server-map",flavor:"mcp-servers",rawPi:t}),notes:n}:{error:{code:"no-servers-found"}}}(n,t)}(l,!0===o.rawPi);else if(xm.test(l)){if(!("error"in(s=xd(`http://${l}`))))for(let e of s.entries)"draft"in e&&e.draft.note("scheme-assumed",{url:`http://${l}`})}else{let e;s=!/\s/.test(l)&&/^[A-Za-z][A-Za-z0-9+.-]+:/.test(l)?xd(l):(e=gj(l.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===e.words.length?{error:{code:"empty-input"}}:function(e){var t;let n=0,r=(t=e[0],(t?.text.split(/[\\/]/).pop()??"").replace(/\.(?:cmd|exe|ps1)$/i,"").toLowerCase());if(["npx","bunx","pnpx"].includes(r)){let t=1;for(;e[t]?.text.startsWith("-");)t++;let i=e[t]?.text.replace(/^(@?[^@]+)@.*$/,"$1");i&&gH[i]&&e[t+1]?.text==="mcp"&&(n=t,r=gH[i])}let i=e.slice(n+1);if(i[0]?.text==="mcp"&&i.length>=2){let e=i[1].text,t=i.slice(2);if("pi"===r&&"add"===e)return gK(function(e,t){if(t.some(e=>"--help"===e.text||"-h"===e.text))return{error:{code:"pi-help"}};let n=[],r=new Map,i=new Map;for(let t=0;t<e.length;t++){let s=gZ.get(e[t].text)??e[t].text;if("--"===s||n.length>=2){n.push(...e.slice("--"===s?t+1:t));break}if(!s.startsWith("--")){n.push(e[t]);continue}let o=s.slice(2),l=gV[o];if(!l)return{error:{code:"cli-unknown-option",params:{cli:"pi",option:s}}};if("flag"===l){r.set(o,!0);continue}let a=e[++t];if(void 0===a)return{error:{code:"cli-option-needs-value",params:{cli:"pi",option:s}}};"list"===l?i.set(o,[...i.get(o)??[],a]):r.set(o,a)}let[s,...o]=n,l=r.get("url");if(!s||""===s.text||void 0===l==(0===o.length))return{error:{code:"cli-usage",params:{cli:"pi"}}};let a=e=>{let t=r.get(e);return!0===t?void 0:t},c=(void 0===l?gJ:gY).find(e=>r.has(e)||i.has(e));if(c)return{error:{code:"cli-option-wrong-transport",params:{cli:"pi",option:`--${c}`,transport:void 0===l?"stdio":"http"}}};let d=new fq("pi-mcp-add",!0);d.name=s.text,d.scopeHint=r.has("local")?"project":"global";let u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"=",n=[];for(let r of i.get(e)??[]){let i=gD(r.parts,t);if(!i||""===i[0])return{error:{code:"cli-invalid-pair",params:{cli:"pi",option:`--${e}`,value:r.text}}};let s=n.findIndex(e=>{let[t]=e;return t===i[0]});s>=0?n[s]=i:n.push(i)}return n},p={};if(void 0!==l&&!0!==l){d.transport="http",d.url=gF(l.parts,"pi",!1);let e=u("header");if("error"in e)return e;for(let[t,n]of e)d.headers.push([t,gF(n,"pi",!0)]);let t=a("bearer-token-env-var");if(void 0!==t){let e=["Authorization",[{kind:"pi",text:`Bearer \${${t.text}}`}]],n=d.headers.findIndex(e=>{let[t]=e;return"Authorization"===t});n>=0?d.headers[n]=e:d.headers.push(e)}let n=a("oauth-client-id"),r=a("oauth-client-secret"),i=a("oauth-callback-port"),s=a("oauth-client-name"),o=a("oauth-client-registration");n&&(d.oauth.clientId=gF(n.parts,"pi",!1)),r&&(d.oauth.clientSecret=gF(r.parts,"pi",!0)),i&&(d.oauth.callbackPort=Number(i.text)),s&&(d.oauth.clientName=gF(s.parts,"pi",!1)),o&&(d.oauth.clientRegistration=o.text),p.url=l.parts.some(e=>"variable"===e.type)?"https://placeholder.invalid/":l.text,(i||s||o)&&(p.oauth={...n?{clientId:n.text}:{},...i?{callbackPort:Number(i.text)}:{},...s?{clientName:s.text}:{},...o?{clientRegistration:o.text}:{}})}else{d.transport="stdio";let e=u("env");if("error"in e)return e;for(let[t,n]of e)d.env.push([t,gF(n,"pi",!0)]);let[t,...n]=o;d.command=gF(t.parts,"pi",!1),d.args=n.map(e=>gF(e.parts,"pi",!1));let r=a("cwd");r&&(d.cwd=gF(r.parts,"pi",!1)),p.command=t.text}let h=a("exposure");void 0!==h&&(p.exposure=h.text,d.exposure=gs(h.text)??h.text);let m=a("description");void 0!==m&&(p.description=m.text,d.description=m.text);let f=gd("server",p);return f?{note:{code:"invalid-config",params:{server:s.text,...f}}}:{draft:d}}(t,i.slice(1)));if("claude"===r&&"add"===e)return gK(function(e){let t=gG("claude",e,g3,{asArgAfter:2,variadic:g6});if("error"in t)return{error:t.error};let n=new fq("claude-mcp-add",!1),r=g8(n,"claude",t.values.get("transport"),[...t.positional,...t.afterDashDash],fN);if("string"!=typeof r)return"cli-usage"===r.code?{error:r}:{note:r};for(let[e,r]of t.seen)e.startsWith("as-arg:")&&n.note("cli-option-as-arg",{cli:"claude",option:r});if(n.scopeHint=g4(t.values.get("scope")),"http"===r){var i,s;let e;t.lists.has("env")&&n.note("cli-option-wrong-transport",{cli:"claude",option:"--env",transport:"http"});let r=g2(n,t.lists.get("header"),fN,"claude");if(r)return{error:r};let o=t.values.get("client-id");o&&!0!==o&&(n.oauth.clientId=gF(o.parts,fN,!1)),t.values.has("client-secret")&&g5(n);let l=t.values.get("callback-port");l&&!0!==l&&(i=n,Number.isInteger(e=Number(s=l.text))&&e>=1&&e<=65535?i.oauth.callbackPort=e:i.note("callback-port-dropped",{value:s}))}else{for(let e of["header","client-id","client-secret","callback-port"])(t.lists.has(e)||t.values.has(e))&&n.note("cli-option-wrong-transport",{cli:"claude",option:t.seen.get(e)??`--${e}`,transport:"stdio"});let e=g1(n,t.lists.get("env"),fN,"claude");if(e)return{error:e}}return{draft:n}}(t));if("claude"===r&&"add-json"===e)return gK(function(e){let t=gG("claude",e,g9,{asArgAfter:1/0});if("error"in t)return{error:t.error};let[n,r,...i]=[...t.positional,...t.afterDashDash];if(!n||!r||i.length>0)return{error:{code:"cli-usage",params:{cli:"claude"}}};let s=g7(r);if("error"in s)return s;let o=gL(n.text,s.value,{source:"claude-mcp-add-json",flavor:"mcp-servers",rawPi:!1});return"note"in o||(o.draft.scopeHint=g4(t.values.get("scope")),t.values.has("client-secret")&&"http"===o.draft.transport&&!o.draft.oauth.clientSecret&&g5(o.draft)),o}(t));if("claude"===r&&"add-from-claude-desktop"===e)return{error:{code:"claude-desktop-import"}};if("codex"===r&&"add"===e)return gK(function(e){let t=gG("codex",e,xe,{asArgAfter:1/0,stopAfter:2});if("error"in t)return{error:t.error};let n=t.afterDashDash,r=t.lists.get("env")??[],[i,...s]=t.positional,o=n.length>0?n:s,l=t.values.get("url");if(!i||void 0===l==(0===o.length)||n.length>0&&s.length>0)return{error:{code:"cli-usage",params:{cli:"codex"}}};let a=new fq("codex-mcp-add",!1);for(let e of(a.name=i.text,["config","enable","disable"]))t.values.has(e)&&a.note("cli-option-ignored",{cli:"codex",option:t.seen.get(e)});if(t.values.has("oauth-resource")&&a.note("oauth-option-dropped",{key:"--oauth-resource"}),void 0!==l&&!0!==l){if(r.length>0)return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:"--env",transport:"http"}}};if(void 0!==gM(l.text))return{note:gI(i.text,l.text)};a.transport="http",a.url=gF(l.parts,fC,!1);let e=t.values.get("bearer-token-env-var");e&&!0!==e&&a.headers.push(["Authorization",[{kind:"text",text:"Bearer "},{kind:"env",name:e.text,from:`\${${e.text}}`}]]);let n=t.values.get("oauth-client-id");n&&!0!==n&&(a.oauth.clientId=gF(n.parts,fC,!1))}else{for(let e of["bearer-token-env-var","oauth-client-id","oauth-resource"])if(t.values.has(e))return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:`--${e}`,transport:"stdio"}}};a.transport="stdio";let e=g1(a,r,fC,"codex");if(e)return{error:e};a.command=gF(o[0].parts,fC,!1),a.args=o.slice(1).map(e=>gF(e.parts,fC,!1))}return{draft:a}}(t));if("gemini"===r&&"add"===e)return gK(function(e){let t=gG("gemini",e,xt,{asArgAfter:2});if("error"in t)return{error:t.error};let n=new fq("gemini-mcp-add",!1),r=g8(n,"gemini",t.values.get("transport"),[...t.positional,...t.afterDashDash],fE);if("string"!=typeof r)return"cli-usage"===r.code?{error:r}:{note:r};if(n.scopeHint=g4(t.values.get("scope")),"http"===r){t.lists.has("env")&&n.note("cli-option-wrong-transport",{cli:"gemini",option:"--env",transport:"http"});let e=g2(n,t.lists.get("header"),fE,"gemini");if(e)return{error:e}}else{t.lists.has("header")&&n.note("cli-option-wrong-transport",{cli:"gemini",option:"--header",transport:"stdio"});let e=g1(n,t.lists.get("env"),fE,"gemini");if(e)return{error:e}}let i=t.values.get("timeout");for(let e of(i&&!0!==i&&f7(n,Number(i.text)),["trust","description"]))t.values.has(e)&&n.note("cli-option-ignored",{cli:"gemini",option:`--${e}`});let s=e=>{let n=t.values.get(e);return n&&!0!==n?n.text.split(",").map(e=>e.trim()).filter(Boolean):void 0};return gP(n,s("include-tools"),s("exclude-tools")),{draft:n}}(t));if("add"===e||"install"===e)return{error:{code:"cli-unsupported",params:{cli:r}}};if(gU.has(r)&&!e.startsWith("-")&&("claude"!==r||"serve"!==e))return{error:{code:"cli-not-a-server",params:{cli:r,command:`mcp ${e}`}}}}return"pi"===r&&i[0]&&gq.has(i[0].text)?{error:{code:"cli-not-a-server",params:{cli:r,command:i[0].text}}}:["code","code-insiders","codium","cursor"].includes(r)&&e.some(e=>"--add-mcp"===e.text||e.text.startsWith("--add-mcp="))?function(e){let t=[];for(let n=0;n<e.length;n++){let r,i=e[n].text;if("--add-mcp"===i)r=e[++n];else{if(!i.startsWith("--add-mcp="))continue;r=gX(e[n],10)}if(!r)return{error:{code:"cli-option-needs-value",params:{cli:"code",option:"--add-mcp"}}};let s=g7(r);if("error"in s)return s;t.push(gL(void 0,s.value,{source:"vscode-add-mcp",flavor:"vscode",rawPi:!1}))}return{entries:t,notes:[]}}(e.slice(1)):gK(function(e){let t=new fq("command-line",!1);t.transport="stdio";let n=0,r=()=>{for(;n<e.length;n++){let r=function(e){let[t,...n]=e.parts;if(t?.type!=="text"||"none"!==t.quote)return;let r=/^([A-Za-z_][A-Za-z0-9_]*)=/.exec(t.value);if(!r)return;let i=t.value.slice(r[0].length);return{name:r[1],value:[...i?[{...t,value:i}]:[],...n]}}(e[n]);if(!r)break;t.env.push([r.name,gF(r.value,fC,!0)])}};if(r(),e[n]?.text==="env"){if(n++,e[n]?.text.startsWith("-"))return{error:{code:"cli-unknown-option",params:{cli:"env",option:e[n].text}}};r()}let i=e[n];if(!i)return{error:{code:"no-command-or-url"}};t.command=gF(i.parts,fC,!1),t.args=e.slice(n+1).map(e=>gF(e.parts,fC,!1));let s=e.slice(n+1).map(e=>e.text),o=s.some(e=>/^mcp-remote(?:@|$)/.test(e))?s.find(e=>gB.test(e)):void 0;return o&&t.note("mcp-remote-bridge",{url:o}),{draft:t}}(e))}(e.words):{error:function(e){let{code:t,...n}=e;return Object.keys(n).length>0?{code:xf[t],params:n}:{code:xf[t]}}(e.error)}}if("error"in s)return{ok:!1,notes:[s.error]};let a=[...s.notes],c=[],d=[...o.takenNames??[]],u=new Set;for(let e of s.entries){if("note"in e){a.push(e.note);continue}let n=function(e){let t,n=new fJ(e);if("stdio"===e.transport&&e.command&&""!==fK(e.command)){let r=n.encode(["command"],e.command),i=e.args.map((e,t)=>n.encode(["args",t],e)),s={};for(let[t,r]of e.env)s[t]=n.encode(["env",t],r);t={command:r,...i.length>0?{args:i}:{},...Object.keys(s).length>0?{env:s}:{},...e.cwd?{cwd:n.encode(["cwd"],e.cwd)}:{}}}else{if("http"!==e.transport||!e.url||""===fK(e.url))return{note:{code:"no-command-or-url",...e.name?{params:{server:e.name}}:{}}};let r=n.encode(["url"],e.url),i={};for(let[t,r]of e.headers)i[t]=n.encode(["headers",t],r);let s={},{clientId:o,clientSecret:l,callbackPort:a,clientName:c,clientRegistration:d,callbackUrl:u,scope:p,authServerMetadataUrl:h}=e.oauth;o&&(s.clientId=n.encode(["oauth","clientId"],o)),l&&(s.clientSecret=n.encode(["oauth","clientSecret"],l)),void 0!==a&&(s.callbackPort=a),c&&(s.clientName=n.encode(["oauth","clientName"],c)),d&&(s.clientRegistration=d),u&&(s.callbackUrl=n.encode(["oauth","callbackUrl"],u)),p&&(s.scope=n.encode(["oauth","scope"],p)),h&&(s.authServerMetadataUrl=n.encode(["oauth","authServerMetadataUrl"],h)),t={url:r,...Object.keys(i).length>0?{headers:i}:{},...Object.keys(s).length>0?{oauth:s}:{}}}return void 0!==e.exposure&&(t.exposure=e.exposure),void 0!==e.toolExposure&&(t.toolExposure=e.toolExposure),!1===e.enabled&&(t.enabled=!1),void 0!==e.timeout&&(t.timeout=e.timeout),void 0!==e.description&&(t.description=e.description),{server:{name:e.name??"",...void 0!==e.originalName?{originalName:e.originalName}:{},config:t,fields:[...n.fields.values()],notes:e.notes,source:e.source,rawPi:e.rawPi,...e.scopeHint?{scopeHint:e.scopeHint}:{}}}}(e.draft);if("note"in n){a.push(n.note);continue}let r=n.server,i=r.name,s=!i;s&&(i=function(e){if("url"in e)return f3(e.url);let t=e.args??[],n=t.some(e=>/^mcp-remote(?:@|$)/.test(e))?t.find(e=>/^https?:\/\//i.test(e)):void 0;return n&&f3(n)||function(e,t){let n=e.split(/[\\/]/).pop()?.replace(/\.(?:cmd|exe|bat|ps1)$/i,"").toLowerCase()??"";switch(n){case"npx":case"bunx":case"pnpx":{let e=f5(t,new Set(["-p","--package","-c","--call"]));return e?f1(e):""}case"pnpm":case"yarn":case"bun":case"npm":{let e=t.findIndex(e=>"dlx"===e||"exec"===e||"x"===e),n=e>=0?f5(t.slice(e+1),new Set(["-p","--package"])):void 0;return n?f1(n):""}case"uvx":case"pipx":{let e=f5("pipx"===n&&"run"===t[0]?t.slice(1):t,new Set(["--from","--with","--python","-p","--index-url","--spec"]));return e?f1(e):""}case"uv":{let e=t.indexOf("run"),n=e>=0?f5(t.slice(e+1),new Set(["--with","--directory","--python","-p","--from","--project"])):void 0;return n?f9(n):""}case"docker":case"podman":{let e=t.indexOf("run"),n=e>=0?f5(t.slice(e+1),f6):void 0;if(!n)return"";let r=n.split("/").pop().replace(/[:@].*$/,"");return f4(r)||r}case"python":case"python3":case"py":{let e=t.indexOf("-m");if(e>=0&&t[e+1])return f1(t[e+1].replace(/_/g,"-"));let n=f5(t,new Set(["-X","-W"]));return n?f9(n):""}case"node":case"deno":case"tsx":case"ts-node":{let e=f5("deno"===n&&"run"===t[0]?t.slice(1):t,new Set(["-r","--require","--import","--loader"]));return e?f9(e):""}default:return f4(n.replace(/_/g,"-"))||n}}(e.command,t)}(r.config))&&r.notes.push({code:"name-derived",params:{name:i}});let o=(t=i,fX.test(t))?i:i.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^A-Za-z0-9_-]+/g,"-").replace(/-{2,}/g,"-").replace(/^[-_]+|[-_]+$/g,"").slice(0,48).replace(/[-_]+$/g,"")||"server";o!==i&&i&&(r.originalName=r.originalName??i,r.notes.push({code:"name-sanitized",params:{original:i,name:o}}));let l=fQ(o,s?[...d,...u]:u);l!==o&&(r.notes.push({code:"name-deduplicated",params:{original:o,name:l}}),o=l),!s&&d.includes(o)&&r.notes.push({code:"name-taken",params:{name:o,suggestedName:fQ(o,[...d,...u])}}),r.name=o;let p=gd(o,function(e){let t=xg(e),n=JSON.parse(JSON.stringify(e.config));t.has(fD(["url"]))&&(n.url="https://placeholder.invalid/");let r=n.oauth;return r&&t.has(fD(["oauth","callbackUrl"]))&&delete r.callbackUrl,n}(r));if(p){a.push({code:"invalid-config",params:{server:o,...p}});continue}!function(e){let t=xg(e);for(let n of xC(e.config))t.has(fD(n))||e.notes.push({code:"literal-secret",params:{field:fB(n)}});let n=e.config;if("url"in n){for(let[t,r]of Object.entries(n.headers??{})){let n=fP(r);n.length>0&&e.notes.push({code:"header-env-reference",params:{header:t,names:n.join(", ")}})}let t=fP(n.oauth?.clientSecret??"");t.length>0&&e.notes.push({code:"client-secret-env-reference",params:{names:t.join(", ")}})}}(r),u.add(o),c.push(r)}return 0===c.length?{ok:!1,notes:a.length>0?a:[{code:"no-servers-found"}]}:{ok:!0,servers:c,notes:a}}let xv=/^[A-Za-z_][A-Za-z0-9_]*$/;function xb(e,t,n){let[r,i]=t;if("command"===r||"url"===r||"cwd"===r){void 0!==n&&(e[r]=n);return}if("args"===r){e.args[i]=n??"";return}let s={...e[r]??{}};void 0===n?delete s[i]:s[i]=n,0===Object.keys(s).length?delete e[r]:e[r]=s}function xy(e){let t=xg(e);return xC(e.config).filter(e=>f_(e)&&!t.has(fD(e)))}function xw(e){return"string"==typeof e&&""===e.trim()?"missing":"name"}let xj=/^(?:bearer|basic|token)\s+/i;function xk(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=JSON.parse(JSON.stringify(e.config)),i=new Map,s=[],o=new Map(xy(e).map(e=>[fB(e),e])),l=[];for(let[e,t]of Object.entries(n)){let n="string"==typeof t?t.trim():"",r=o.get(e);r?xv.test(n)?l.push([r,n]):s.push({code:"field-reference-invalid",params:{field:e,problem:xw(t)}}):s.push({code:"field-reference-invalid",params:{field:e,problem:"target"}})}for(let n of e.fields){let e=t[n.id];if("object"==typeof e&&null!==e){let t=e.reference,r="string"==typeof t?t.trim():"";xv.test(r)?"select"!==n.kind&&n.targets.every(e=>f_(e.path)&&void 0===e.encoding)?i.set(n.id,{reference:r}):s.push({code:"field-reference-invalid",params:{field:n.id,problem:"target"}}):s.push({code:"field-reference-invalid",params:{field:n.id,problem:xw(t)}});continue}let r=("string"==typeof e?e:n.defaultValue??"").trim();""===r?n.optional?i.set(n.id,void 0):s.push({code:"field-required",params:{field:n.id}}):"select"===n.kind&&n.options&&!n.options.includes(r)?s.push({code:"field-invalid-option",params:{field:n.id}}):i.set(n.id,{text:r})}if(s.length>0)return{ok:!1,notes:s};let a=new Set,c=new Set;for(let t of e.fields)for(let e of t.targets){let n=i.get(t.id);"password"===t.kind&&void 0!==n&&"text"in n&&a.add(fB(e.path));let s=fD(e.path);if(c.has(s))continue;if(c.add(s),e.parts.some(e=>"string"!=typeof e&&void 0===i.get(e.field))){xb(r,e.path,void 0);continue}let o="";for(let t of e.parts){var d,u,p,h;o+="string"==typeof t?t:(d=i.get(t.field),u=e.path,p=""===o,h=e.encoding,"reference"in d?`\${${d.reference}}`:"uri-component"===h?encodeURIComponent(d.text):f_(u)?fL(d.text,{atStart:p}):d.text)}xb(r,e.path,o)}for(let[e,t]of l){let n=function(e,t){let[n,r]=t,i=e[n];return void 0===r||"object"!=typeof i||null===i?void 0===r?i:void 0:i[r]}(r,e),i="headers"===e[0]&&"string"==typeof n?n.match(xj)?.[0]??"":"";xb(r,e,`${i}\${${t}}`)}for(let e of xC(r))a.add(fB(e));return{ok:!0,config:r,secretPaths:[...a]}}let xS=["command","args","env","cwd","url","headers","oauth"];function xC(e){let t=[];for(let n of function(e){if(!fw(e))return[];let t=[];for(let n of["env","headers"]){let r=e[n];if(fw(r))for(let[e,i]of Object.entries(r))"string"==typeof i&&fj(i)&&""!==i&&(m9(e)||/^(?:bearer|basic|token)\s+\S/i.test(i)||fg(i,fl).masked)&&t.push({kind:"env"===n?"env":"header",name:e})}let n=fw(e.oauth)?e.oauth.clientSecret:void 0;return"string"==typeof n&&""!==n&&fj(n)&&t.push({kind:"oauth-client-secret"}),"string"==typeof e.url&&fh(e.url,fd).masked&&t.push({kind:"url"}),"string"==typeof e.command&&fg(e.command,fd).masked&&t.push({kind:"command"}),Array.isArray(e.args)&&fy(e.args.filter(e=>"string"==typeof e)).masked&&t.push({kind:"args"}),t}(e))switch(n.kind){case"env":t.push(["env",n.name]);break;case"header":t.push(["headers",n.name]);break;case"oauth-client-secret":t.push(["oauth","clientSecret"]);break;case"url":t.push(["url"]);break;case"command":t.push(["command"]);break;case"args":{let n="args"in e&&Array.isArray(e.args)?e.args.map(e=>"string"==typeof e?e:""):[];fy(n).args.forEach((e,r)=>{e!==n[r]&&t.push(["args",r])})}}return t.sort((e,t)=>xS.indexOf(e[0])-xS.indexOf(t[0]))}let xN="PI_WEB_PASSWORD";function xE(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function x$(e){return xE(e)?Object.entries(e).filter(e=>"string"==typeof e[1]):[]}function xM(e){if(!xE(e))return[];if(!("url"in e))return x$(e.env).map(e=>{let[t,n]=e;return{kind:"env",name:t,value:n}});let t=x$(e.headers).map(e=>{let[t,n]=e;return{kind:"header",name:t,value:n}}),n=xE(e.oauth)?e.oauth.clientSecret:void 0;return"string"==typeof n&&t.push({kind:"oauth-client-secret",value:n}),t}let xI={text:"",rawPi:!1,server:0,values:{},references:{},secretReferences:{}};function xT(e,t,n){let r=xx(e,{rawPi:t});if(!r.ok)return;let i=r.servers[Math.min(n,r.servers.length-1)],{config:s}=i,o="url"in s?["url",s.url]:["command",s.command,s.args??[]];return JSON.stringify([i.source,i.originalName??i.name,o])}function xR(e,t){let n={...e,...t},r=xT(e.text,e.rawPi,e.server);if(void 0!==r&&r===xT(n.text,n.rawPi,e.server))return n;let i={...n,server:0,values:{},references:{},secretReferences:{}};return delete i.name,i}function xL(e){return fS[e.code]??"warning"}function xA(e,t){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=e.params??{},s={};for(let[e,t]of Object.entries(i))s[e]="string"==typeof t?hZ(t):t;if("string"==typeof i.field&&e.code.startsWith("field-")){let e=r.find(e=>e.id===i.field);e&&(s.field=hZ(e.label))}"invalid-config"===e.code&&(s.problem=t("tool-exposure"===(n=String(i.problem??"no-command-or-url"))&&void 0!==i.tool?"mcp.importProblem.tool-exposure.tool":"args"===n&&void 0!==i.index?"mcp.importProblem.args.index":`mcp.importProblem.${n}`,s)),"cli-option-wrong-transport"===e.code&&("stdio"===i.transport||"http"===i.transport)&&(s.transport=t(`mcp.transport.${i.transport}`));let o=t(function(e){let t=e.params??{};switch(e.code){case"field-reference-invalid":return`mcp.importNote.field-reference-invalid.${"target"===t.problem||"missing"===t.problem?t.problem:"name"}`;case"sse-transport":return void 0===t.suggestedUrl?"mcp.importNote.sse-transport":"mcp.importNote.sse-transport.suggested";case"timeout-unit-guessed":return`mcp.importNote.timeout-unit-guessed.${"milliseconds"===t.unit?"milliseconds":"seconds"}`;case"tool-filter-imported":return`mcp.importNote.tool-filter-imported.${"exclude"===t.mode?"exclude":"include"}`;default:return`mcp.importNote.${e.code}`}}(e),s);return"string"==typeof s.server?t("mcp.importNote.forServer",{server:s.server,note:o}):o}let xP={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"},xz={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"},xW=JSON.stringify({command:"uvx",args:["mcp-server-fetch"]}),xO=JSON.stringify({name:"fetch",command:"uvx",args:["mcp-server-fetch"]}),xF=[{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 '${xO}'`},{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(xW)}`},{source:"vscode-install-link",text:`vscode:mcp/install?${encodeURIComponent(xO)}`},{source:"visual-studio-install-link",text:`vsweb+mcp:/install?${encodeURIComponent(xO)}`},{source:"copilot-app-install-link",text:`ghapp://mcp/install?${encodeURIComponent(xO)}`}];function xD(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!(!r&&e.targets.every(e=>{let{parts:t}=e;return 1===t.length})))return[...new Set(e.targets.map(r=>{let{parts:i}=r;return i.map(r=>"string"==typeof r?hZ(r):r.field===e.id?n:`‹${hZ(t.find(e=>{let{id:t}=e;return t===r.field})?.label??r.field)}›`).join("")}))].join(", ")}function xB(e){return"select"!==e.kind&&e.targets.every(e=>f_(e.path)&&void 0===e.encoding)}let x_=/^[A-Za-z_][A-Za-z0-9_]*$/;function xH(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];let r=t.map(e=>e.replace(/[^A-Za-z0-9]+/g,"_")).join("_").replace(/_+/g,"_").replace(/^_|_$/g,"").toUpperCase();return x_.test(r)?r:void 0}let xU=/^(?:proxy-)?authorization$/i;function xq(e,t){let n=function(e,t){if(e.startsWith("env.")){let t=e.slice(4);return x_.test(t)?t:xH(t)}let n=function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return xH(t,...n)??xH(...n)};if(e.startsWith("headers.")){let t=e.slice(8);return n(xU.test(t)?"TOKEN":t.replace(/^x-/i,""))}if("oauth.clientSecret"===e)return n("CLIENT_SECRET")}(e,t);return n===xN?void 0:n}function xK(e){return e.startsWith("env.")||e.startsWith("headers.")||"oauth.clientSecret"===e}function xV(e,t){let n=e;for(let e of t)n=n.split(e).join(m0);return{text:n,masked:n!==e}}function xZ(e){let{kind:t,name:n}=e;return void 0===n?{kind:t}:{kind:t,name:n}}function xJ(e,t){let n=t.files.find(t=>t.scope===e),r=n?.problems.find(mm);return n&&r?{kind:"file-problem",path:n.path,reason:r.reason}:void 0}function xY(e,t){return e.servers.filter(e=>e.scope===t).map(e=>e.name)}function xG(e,t,n){return{action:"add",text:e.text,values:t.values,...Object.keys(t.secretReferences).length>0?{secretReferences:{...t.secretReferences}}:{},server:t.server&&t.parsed.ok?t.parsed.servers.indexOf(t.server):0,name:t.name,scope:t.scope,rawPi:e.rawPi,...t.trustFolder?{trustFolder:!0}:{},...n&&n.length>0?{confirmHostEnv:[...n]}:{}}}function xX(e,t,n){switch(e.kind){case"trust-too-broad":return t(x0[e.breadth.kind],{path:n(e.breadth.path)});case"secret":return t(e.fixed?"mcp.add.projectBlocked.secretFixed":"mcp.add.projectBlocked.secret",{fields:e.fields.join(", ")});case"file-problem":return t("mcp.add.projectBlocked.file-problem",{path:n(e.path),reason:t(`mcp.fileProblem.${e.reason}`)});default:return t(xQ[e.kind])}}let xQ={"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"},x0={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 x1(e){return hZ(eV(e))}function x2(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}let x4=[{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"}],x8=new Set(["name-derived","name-sanitized","name-deduplicated","name-taken"]);function x3(e){let{notes:t,fields:n=[]}=e,{t:r}=(0,tw.s)();if(0===t.length)return null;let i={error:0,warning:1,info:2},s=[...t].sort((e,t)=>i[xL(e)]-i[xL(t)]);return(0,d.jsx)("ul",{className:"mcp-add-notes",children:s.map((e,t)=>(0,d.jsx)("li",{className:`mcp-add-note is-${xL(e)}`,children:xA(e,r,n)},`${t}\0${e.code}`))})}let x6={"server-invalid":"mcp.add.refused.server-invalid","web-password":"mcp.add.blocked.web-password"};function x5(e){let{data:t,cwd:n,draft:r,busy:i,controlsBusy:s,failure:o,onDraftChange:l,onSubmit:a,onTrustProject:c}=e,{t:p}=(0,tw.s)(),h=(0,u.useId)(),m=(0,u.useId)(),f=(0,u.useMemo)(()=>(function e(t,n,r){let i,s=function(e,t){let n=e=>({kind:"blocked",block:e});if(!t)return n({kind:"no-project"});let r=e.project;if(!r)return n({kind:"project-not-listed"});let i=r.trust;if(!i||void 0!==i.decisionError)return n({kind:"trust-unreadable"});if(!0===i.decision)return{kind:"write"};if(!1===i.decision)return n({kind:"untrusted-decision"});if(i.requiresTrust)return n({kind:"project-untrusted",trustable:mv(r)});let s=r.trustFolder;return s?s.allowed?{kind:"trust-and-write",folder:r.cwd}:n("trust-too-broad"===s.reason?{kind:"trust-too-broad",breadth:s.breadth}:{kind:"folder-not-fresh"}):n({kind:"project-untrusted",trustable:!1})}(n,r),o=e=>xx(t.text,{rawPi:t.rawPi,takenNames:xY(n,e)}),l=o(t.scope??"global"),a=l.ok?l.servers[Math.min(t.server,l.servers.length-1)]:void 0,c=t.scope??(a?.scopeHint==="project"&&"write"===s.kind?"project":"global");c!==(t.scope??"global")&&(a=(l=o(c)).ok?l.servers[Math.min(t.server,l.servers.length-1)]:void 0);let d={parsed:l,name:t.name??"",scope:c,projectMode:s,..."blocked"===s.kind?{projectBlock:s.block}:{},values:{},pasteSecrets:[],secretReferences:{},fieldProblems:{},secretPaths:[],trustFolder:!1},u=mO(n.mcp);if(!a)return{...d,submitBlock:{kind:u?"mcp-off":"nothing"}};let p=t.name??a.name,h=function(e,t){let n={};for(let r of e.fields){let e=t.references[r.id];void 0!==e&&xB(r)?n[r.id]={reference:e}:void 0!==t.values[r.id]&&(n[r.id]=t.values[r.id])}return n}(a,t),m=xy(a).map(fB),f=Object.fromEntries(m.flatMap(e=>{let n=t.secretReferences[e];return void 0===n?[]:[[e,n]]})),g=xk(a,h,f),x={};if(!g.ok)for(let e of g.notes){let t=e.params?.field;"field-required"===e.code||"string"!=typeof t||t in x||(x[t]=e)}let v=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={};for(let n of e.fields){let e=t[n.id];"object"==typeof e?r[n.id]=x_.test(e.reference.trim())?e:{reference:"VALUE"}:void 0!==e&&""!==e.trim()?r[n.id]=e:void 0!==n.defaultValue?r[n.id]=n.defaultValue:n.optional?r[n.id]=void 0:r[n.id]="select"===n.kind?n.options?.[0]??"x":"x"}let i=xk(e,r,Object.fromEntries(Object.entries(n).map(e=>{let[t,n]=e;return[t,x_.test(n.trim())?n:"VALUE"]})));return i.ok?i.secretPaths:[]}(a,h,f),b=function(e,t,n){let r=n?.ok?n.config:e.config,i=n?.ok?function(e,t){let n=new Set;for(let r of e.fields){let e=t[r.id];if("password"!==r.kind||"string"!=typeof e||""===e.trim())continue;let i=e.trim();n.add(i),n.add(i.replace(/\$/g,"$$$$")),n.add(encodeURIComponent(i))}return[...n].filter(e=>""!==e).sort((e,t)=>t.length-e.length)}(e,t):[],s=!1!==r.enabled,o={source:e.source,commandFields:xM(r).filter(e=>{let{value:t}=e;return fA(t)}).map(xZ),variableReferences:xM(r).map(e=>({...xZ(e),variables:fP(e.value)})).filter(e=>{let{variables:t}=e;return t.length>0}),...r.exposure?{exposure:r.exposure}:{},enabled:s,unfilled:!n?.ok&&e.fields.length>0};if("url"in r){let e=xV(r.url,i);return{...o,transport:"http",target:hZ(e.text),envNames:[],headerNames:Object.keys(r.headers??{}),masked:e.masked}}let l=xV(hG(r.command,r.args??[]),i);return{...o,transport:"stdio",target:l.text,...void 0!==r.cwd?{cwd:hZ(r.cwd)}:{},envNames:Object.keys(r.env??{}),headerNames:[],masked:l.masked}}(a,h,g),y=g.ok?gd(p,g.config):void 0,w="blocked"===s.kind?s.block:v.length>0?{kind:"secret",fields:v,fixed:!v.every(xK)}:xJ("project",n),j=xY(n,c),k=n.files.find(e=>e.scope===c);if(u)i={kind:"mcp-off"};else if(fX.test(p))if(j.includes(p))i={kind:"name-taken",name:p,suggestedName:fQ(p,j),...k?{path:k.path}:{}};else if(g.ok)if(y)i={kind:"config-invalid",note:{code:"invalid-config",params:"url"===y.problem?{...y,url:b.target}:y}};else if(void 0!==function(e,t){for(let{value:n,...r}of xM(e))if(t.isCommandConfigValue(n)?n.toUpperCase().includes(xN):t.getConfigValueEnvVarNames(n).some(e=>e.toUpperCase()===xN))return r}(g.config,{isCommandConfigValue:fA,getConfigValueEnvVarNames:fP}))i={kind:"web-password"};else if("project"===c&&w)i={kind:"scope",block:w};else{let e=xJ(c,n);e&&(i={kind:"scope",block:e})}else{let e=e=>{let t=String(e.params?.field??"");return a.fields.find(e=>e.id===t)?.label??t},t=g.notes.filter(e=>"field-required"===e.code||"field-reference-invalid"===e.code&&e.params?.problem==="missing");i=t.length>0?{kind:"fields",fields:[...new Set(t.map(e))]}:{kind:"field-invalid",fields:[...new Set(g.notes.map(e))]}}else i={kind:"name-invalid"};return void 0===t.scope&&"project"===c&&w?e({...t,scope:"global"},n,r):{parsed:l,server:a,name:p,scope:c,projectMode:s,...w?{projectBlock:w}:{},values:h,pasteSecrets:m,secretReferences:f,fill:g,fieldProblems:x,secretPaths:v,preview:b,...i?{submitBlock:i}:{},trustFolder:"project"===c&&"trust-and-write"===s.kind}})(r,t,n),[r,t,n]),g=(0,u.useMemo)(()=>(function(e){let t=xx(e,{rawPi:!0});if(!t.ok)return!1;let n=xx(e,{rawPi:!1});return t.servers.some((e,t)=>e.rawPi&&!(n.ok&&n.servers[t]?.rawPi))})(r.text),[r.text]),{parsed:x,server:v,preview:b,projectBlock:y,submitBlock:w}=f,j=v?[...v.notes,...x.notes].filter(e=>"literal-secret"!==e.code||!f.pasteSecrets.includes(String(e.params?.field))):[],k=void 0!==r.name&&r.name!==v?.name?[]:j.filter(e=>x8.has(e.code)),S=j.filter(e=>!x8.has(e.code)),C=!i&&!s&&void 0===w,N=()=>{C&&a(xG(r,f))},E=e=>l({...r,...e}),$=t.files.find(e=>e.scope===f.scope)?.path??("project"===f.scope&&n?`${n.replace(/[\\/]+$/,"")}/.pi/mcp.json`:"mcp.json"),M=w&&(""!==r.text.trim()||"mcp-off"===w.kind)?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];switch(e.kind){case"mcp-off":return t("mcp.reason.mcp-off");case"nothing":return t("mcp.add.blocked.nothing");case"name-invalid":return t("mcp.add.nameInvalid");case"name-taken":return t("mcp.add.nameTaken",{name:hZ(e.name),path:e.path?x1(e.path):"mcp.json"});case"fields":return t("mcp.add.blocked.fields",{fields:e.fields.map(hZ).join(", ")});case"field-invalid":return t("mcp.add.blocked.fieldsInvalid",{fields:e.fields.map(hZ).join(", ")});case"config-invalid":return xA(e.note,t,n);case"web-password":return t("mcp.add.blocked.web-password");case"scope":return xX(e.block,t,x1)}}(w,p,v?.fields):void 0,I=y?.kind==="project-untrusted"&&y.trustable&&c,T=b?"http"===b.transport?b.headerNames:b.envNames:[];return(0,d.jsxs)(px,{title:p("mcp.add.title"),catalogs:x4,target:(0,d.jsxs)(pf,{value:f.scope,label:p("config.saveTo"),options:[{value:"global",label:x2("global",p)},{value:"project",label:x2("project",p),disabled:void 0!==y&&"project"!==f.scope}],path:x1($),disabledReason:y?xX(y,p,x1):null,onChange:e=>E({scope:e}),children:[I&&(0,d.jsx)("span",{className:"mcp-config-line",children:(0,d.jsx)(pS,{size:"small",onClick:c,children:p("mcp.trust.trustButton")})}),f.trustFolder&&"trust-and-write"===f.projectMode.kind&&(0,d.jsx)("p",{className:"mcp-config-line is-warning",children:p("mcp.add.trustExplain",{path:x1(f.projectMode.folder)})})]}),inputLabel:p("mcp.add.inputLabel"),inputId:"mcp-add-source",placeholder:p("mcp.add.placeholder"),value:r.text,canSubmit:C,onValueChange:e=>l(xR(r,{text:e})),onSubmit:N,examplesLabel:p("mcp.add.examples"),examples:""===r.text.trim()?xF.map(e=>{let{source:t,text:n}=e;return{label:p(xz[t]),value:n}}):[],multiline:!0,children:[g&&(0,d.jsxs)("label",{className:"mcp-add-toggle",children:[(0,d.jsx)("input",{type:"checkbox",checked:r.rawPi,onChange:e=>l(xR(r,{rawPi:e.target.checked}))}),(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line",children:p("mcp.add.rawPi")}),r.rawPi&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.rawPiOn")})]})]}),!x.ok&&""!==r.text.trim()&&(0,d.jsx)(x3,{notes:x.notes}),x.ok&&x.servers.length>1&&(0,d.jsxs)(pd,{label:p("mcp.add.serverLabel"),children:[(0,d.jsx)("select",{className:"mcp-add-input","aria-label":p("mcp.add.serverLabel"),value:String(x.servers.indexOf(v??x.servers[0])),onChange:e=>E({server:Number(e.target.value),name:void 0,values:{},references:{},secretReferences:{}}),children:x.servers.map((e,t)=>(0,d.jsx)("option",{value:t,children:hZ(e.name)},`${t}\0${e.name}`))}),(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.serverCount",{count:x.servers.length})})]}),v&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pd,{label:p("config.name"),children:(0,d.jsx)("input",{id:m,className:"mcp-add-input","aria-label":p("config.name"),value:f.name,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:e=>E({name:e.target.value})})}),(0,d.jsx)(x3,{notes:k,fields:v.fields}),w?.kind==="name-taken"&&(0,d.jsx)("span",{className:"mcp-config-line",children:(0,d.jsx)(pS,{size:"small",onClick:()=>E({name:w.suggestedName}),children:p("mcp.add.useName",{name:hZ(w.suggestedName)})})})]}),v&&b&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pc,{children:p("mcp.add.preview")}),(0,d.jsxs)(pu,{children:[(0,d.jsx)(pp,{label:p("mcp.add.readAs"),children:p(xz[b.source])}),(0,d.jsx)(pp,{label:p("mcp.detail.transport"),children:p(`mcp.transport.${b.transport}`)}),(0,d.jsx)(pp,{label:"http"===b.transport?p("mcp.detail.url"):p("mcp.detail.command"),tone:"plain",mono:!0,children:b.target}),"stdio"===b.transport&&void 0!==b.cwd&&(0,d.jsx)(pp,{label:p("mcp.detail.cwd"),mono:!0,children:b.cwd}),T.length>0&&(0,d.jsx)(pp,{label:"http"===b.transport?p("mcp.detail.headers"):p("mcp.detail.env"),children:(0,d.jsx)(x9,{names:T})}),b.commandFields.length>0&&(0,d.jsx)(pp,{label:p("mcp.detail.shellCommands"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.server.commandFields")}),(0,d.jsx)("span",{className:"mcp-config-chips",children:b.commandFields.map(e=>{let t=h0(e);return(0,d.jsx)("code",{className:"mcp-config-chip",children:p(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})]})}),b.variableReferences.length>0&&(0,d.jsx)(pp,{label:p("mcp.detail.variables"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:p("http"===b.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables")}),(0,d.jsx)("span",{className:"mcp-config-chips",children:h4(b.variableReferences).map(e=>{let{variable:t,field:n}=e,r=h0(n);return(0,d.jsx)("code",{className:"mcp-config-chip",children:p("mcp.server.variableIn",{variable:hZ(t),field:p(r.key,r.params)})},`${t}\0${n.kind}\0${n.name??""}`)})})]})})]}),(0,d.jsxs)("div",{className:"mcp-config-lines",children:[b.unfilled&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.previewUnfilled")}),b.masked&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.server.masked")})]}),(0,d.jsx)(x3,{notes:S,fields:v.fields}),v.fields.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pc,{children:p("mcp.add.fields")}),v.fields.map(e=>{var t;let n;return(0,d.jsx)(x7,{field:e,fields:v.fields,draft:r,suggestedName:(t=f.name,(n=e.targets[0])?xq(fB(n.path),t):void 0),problem:f.fieldProblems[e.id],onDraftChange:l},e.id)})]}),f.pasteSecrets.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pc,{children:p("mcp.add.secrets")}),f.pasteSecrets.map(e=>{var t,n;let i;return(0,d.jsx)(ve,{label:e,draft:r,suggestedName:xq(e,f.name),stored:f.fill?.ok?(t=f.fill.config,void 0!==(i="oauth.clientSecret"===(n=e)?"url"in t?t.oauth?.clientSecret:void 0:n.startsWith("headers.")?"url"in t?t.headers?.[n.slice("headers.".length)]:void 0:n.startsWith("env.")&&"command"in t?t.env?.[n.slice("env.".length)]:void 0)&&fl(i)?i:void 0):void 0,problem:f.fieldProblems[e],onDraftChange:l},e)})]})]}),(0,d.jsx)(pS,{variant:"primary",className:"is-pushed-right",disabled:!C,"aria-busy":i||void 0,"aria-describedby":M?h:void 0,onClick:N,children:i?p("mcp.add.adding"):f.trustFolder?p("mcp.add.buttonTrust"):p("mcp.add.button")}),M&&(0,d.jsx)("p",{id:h,className:`mcp-config-line ${w?.kind==="scope"?"is-warning":"is-dim"}`,children:M}),v&&!w&&(0,d.jsx)("p",{className:"mcp-config-line is-dim",children:p("mcp.add.afterAdd")}),o&&(0,d.jsxs)("div",{role:"alert",className:"mcp-add-failure",children:[(0,d.jsxs)("span",{className:"mcp-config-line is-error",children:[p("mcp.add.failed")," ",function(e,t){if(e.timedOut)return t("mcp.actionTimedOut");if("trust-too-broad"===e.reason&&e.breadth)return t(x0[e.breadth.kind],{path:x1(e.breadth.path)});if("secret-global-only"===e.reason&&e.fields)return t(e.fields.every(xK)?"mcp.add.projectBlocked.secret":"mcp.add.projectBlocked.secretFixed",{fields:e.fields.join(", ")});if("name-taken"===e.reason&&e.name)return t("mcp.add.nameTaken",{name:hZ(e.name),path:e.path?x1(e.path):"mcp.json"});let n=e.reason?x6[e.reason]:void 0;return n?t(n,{error:hZ(e.error)}):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):hZ(e.error)}(o,p)]}),o.trustKept&&(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.add.trustKept",{folder:x1(o.trust?.decisionPath??n??"")})}),o.notes&&o.notes.length>0&&(0,d.jsx)(x3,{notes:o.notes,fields:v?.fields}),"name-taken"===o.reason&&o.suggestedName&&w?.kind!=="name-taken"&&(0,d.jsx)("span",{className:"mcp-config-line",children:(0,d.jsx)(pS,{size:"small",onClick:()=>E({name:o.suggestedName}),children:p("mcp.add.useName",{name:hZ(o.suggestedName)})})}),"host-env-confirm"===o.reason&&o.names&&o.names.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.add.hostEnv.body",{names:o.names.map(hZ).join(", ")})}),(0,d.jsx)("span",{className:"mcp-config-line",children:(0,d.jsx)(pS,{variant:"danger",size:"small",disabled:i||s||void 0!==w,onClick:()=>a(xG(r,f,o.names)),children:p("mcp.add.hostEnv.confirm")})})]})]})]})}function x9(e){let{names:t}=e,{t:n}=(0,tw.s)();return(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(e)},e))}),(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:n("mcp.detail.valuesHidden")})]})}function x7(e){let t,{field:n,fields:r,draft:i,suggestedName:s,problem:o,onDraftChange:l}=e,{t:a}=(0,tw.s)(),c=(0,u.useId)(),p=o?{"aria-invalid":!0,"aria-describedby":c}:{},h=xB(n),m=h?i.references[n.id]:void 0,f=void 0!==m,g=hZ(n.label),x=i.values[n.id]??n.defaultValue??"",v=xP[n.reason],b=n.optional&&1===(t=new Set(n.targets.map(e=>{let{path:t}=e;return"headers"===t[0]?t[1]:void 0}))).size?[...t][0]:void 0,y=f?m&&!o?xD(n,r,"${"+m+"}",!0):void 0:xD(n,r,`‹${a("mcp.add.field.slot")}›`),w=e=>l({...i,values:{...i.values,[n.id]:e}}),j=e=>{let t={...i.references};void 0===e?delete t[n.id]:t[n.id]=e,l({...i,references:t})};return(0,d.jsxs)("div",{className:"mcp-add-field",children:[(0,d.jsx)(pd,{label:g,children:f?(0,d.jsx)("input",{className:"mcp-add-input","aria-label":a("mcp.add.field.variableName",{field:g}),value:m,placeholder:s??"GITHUB_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...p,onChange:e=>j(e.target.value)}):"select"===n.kind?(0,d.jsxs)("select",{className:"mcp-add-input","aria-label":g,value:x,...p,onChange:e=>w(e.target.value),children:[!n.options?.includes(x)&&(0,d.jsx)("option",{value:"",children:a("mcp.add.field.choose")}),(n.options??[]).map(e=>(0,d.jsx)("option",{value:e,children:hZ(e)},e))]}):(0,d.jsx)("input",{className:"mcp-add-input",type:"password"===n.kind?"password":"text","aria-label":g,value:x,autoComplete:"off",placeholder:n.placeholder?hZ(n.placeholder):void 0,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...p,onChange:e=>w(e.target.value)})}),o&&(0,d.jsx)("span",{id:c,className:"mcp-config-line is-error",children:xA(o,a,[n])}),(0,d.jsxs)("span",{className:"mcp-config-lines",children:[n.description&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:hZ(n.description)}),v&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:a(v)}),f?(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:y?a("mcp.add.field.storedAsVariable",{value:y}):a("mcp.add.field.variableHint")}):(0,d.jsxs)(d.Fragment,{children:[y&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:a("mcp.add.field.storedAs",{value:y})}),n.optional&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:b?a("mcp.add.field.optionalHeader",{name:hZ(b)}):a("mcp.add.field.optional")})]})]}),h&&(0,d.jsxs)("label",{className:"mcp-add-toggle",children:[(0,d.jsx)("input",{type:"checkbox",checked:f,onChange:e=>j(e.target.checked?s??"":void 0)}),(0,d.jsx)("span",{className:"mcp-config-line",children:a("mcp.add.field.useVariable")})]})]})}function ve(e){let{label:t,draft:n,suggestedName:r,stored:i,problem:s,onDraftChange:o}=e,{t:l}=(0,tw.s)(),a=(0,u.useId)(),c=n.secretReferences[t],p=void 0!==c,h=hZ(t),m=e=>{let r={...n.secretReferences};void 0===e?delete r[t]:r[t]=e,o({...n,secretReferences:r})};return(0,d.jsxs)("div",{className:"mcp-add-field",children:[(0,d.jsx)("span",{className:"mcp-config-lines",children:(0,d.jsxs)("span",{className:"mcp-config-line",children:[(0,d.jsx)("code",{className:"mcp-config-chip",children:h})," ",l("mcp.add.secret.holds")]})}),(0,d.jsxs)("label",{className:"mcp-add-toggle",children:[(0,d.jsx)("input",{type:"checkbox",checked:p,onChange:e=>m(e.target.checked?r??"":void 0)}),(0,d.jsx)("span",{className:"mcp-config-line",children:l("mcp.add.field.useVariable")})]}),p&&(0,d.jsx)(pd,{label:l("mcp.add.field.variableName",{field:h}),children:(0,d.jsx)("input",{className:"mcp-add-input","aria-label":l("mcp.add.field.variableName",{field:h}),value:c,placeholder:r??"API_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...s?{"aria-invalid":!0,"aria-describedby":a}:{},onChange:e=>m(e.target.value)})}),s&&(0,d.jsx)("span",{id:a,className:"mcp-config-line is-error",children:xA(s,l)}),(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:p?void 0!==i?l("mcp.add.secret.storedAs",{value:hZ(i)}):l("mcp.add.field.variableHint"):l("mcp.add.secret.asPasted")})]})}let vt=new Set(["done","failed","cancelled","expired"]);function vn(e){var t;return e?.flow!==void 0&&!e.gone&&(t=e.flow.phase,!vt.has(t))}let vr={"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"},vi={"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"},vs={connecting:"mcp.signIn.phase.connecting",starting:"mcp.signIn.phase.starting",finishing:"mcp.signIn.phase.finishing"},vo={"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 vl(e,t,n){var r;let i={...e,flow:t,deadlineAt:n+t.expiresInMs,gone:!1};return r=t.phase,vt.has(r)&&(delete i.pasteError,delete i.cancelError,i.pasting&&(i.pasting=!1),i.cancelling&&(i.cancelling=!1)),i}function va(e){return"sign-in-unknown"===e.reason}async function vc(e,t,n,r){var i;let s,o;try{s=await n(e,{...t,cache:"no-store",signal:r})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{o=await s.json()}catch{return{ok:!1,error:{error:`HTTP ${s.status}`}}}return s.ok&&null!==(i=o)&&"object"==typeof i&&"string"==typeof i.flowId&&"string"==typeof i.phase&&"string"==typeof i.name&&("global"===i.scope||"project"===i.scope)&&"number"==typeof i.expiresInMs?{ok:!0,data:o}:{ok:!1,error:mN(o,s.status)}}function vd(e,t,n,r,i){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=t.method??"GET";return mE(r=>vc(e,t,n,r),()=>({ok:!1,error:{error:`${o} ${e} did not answer within ${i} ms`,timedOut:!0}}),i,r,s)}function vu(e){return`/api/mcp/sign-in/${encodeURIComponent(e)}`}function vp(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mcp.signIn.requestTimedOut";if(e.timedOut)return t(n);let r=e.reason?vi[e.reason]:void 0;return r?t(r):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):e.error}function vh(e){let{server:t,run:n,block:r,signOutBlock:i,controlsBusy:s,signingOut:o,onSignIn:l,onSignOut:a,onPaste:c,onCancel:p}=e,{t:h}=(0,tw.s)(),m=(0,u.useId)(),f=(0,u.useId)(),g=(0,u.useId)(),x=(0,u.useRef)(null),v=(0,u.useRef)(null),b=vn(n),y=(0,u.useRef)(b);if((0,u.useEffect)(()=>{let e=y.current;y.current=b,!e&&b?e7(document,v.current):e&&!b&&e7(document,x.current)},[b]),!t.usesOAuth)return void 0===t.authProvider&&t.headerNames.some(e=>"authorization"===e.toLowerCase())?null:(0,d.jsx)(pp,{label:h("mcp.detail.signIn"),children:void 0!==t.authProvider?h("mcp.signIn.provider",{provider:hZ(t.authProvider)}):h("mcp.signIn.header")});let w=n?.flow,j=n?.starting===!0,k=void 0!==w&&(w.scope!==t.scope||w.name!==t.name),S=(t.oauthStateStored??t.signedIn)!==!1,C=j||o||void 0!==r,N=s||j||void 0!==i,E=w?.phase==="finishing";return(0,d.jsx)(pp,{label:h("mcp.detail.signIn"),tone:"plain",children:(0,d.jsxs)("div",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line",children:h(!0===t.signedIn?"mcp.signIn.signedIn":!1===t.signedIn?t.oauthStateStored?"mcp.signIn.registrationOnly":"mcp.signIn.notSignedIn":"mcp.signIn.unknown")}),w&&b&&k&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.shared",{name:hZ(w.name)})}),w&&b&&("authorize"===w.phase?(0,d.jsx)(vm,{flow:w,pasting:n?.pasting===!0,pasteError:n?.pasteError,onPaste:e=>c(t,w.flowId,e)},w.flowId):(0,d.jsx)("span",{role:"status",className:"mcp-config-line",children:h(vs[w.phase]??"mcp.signIn.phase.connecting")})),w&&b&&E&&(0,d.jsx)("span",{id:g,className:"mcp-config-line is-dim",children:h("mcp.signIn.phase.noCancel")}),w&&!b&&!n?.gone&&(0,d.jsx)(vf,{flow:w,shared:k}),n?.gone&&(0,d.jsx)("span",{role:"alert",className:"mcp-config-line is-warning",children:h("mcp.signIn.gone")}),n?.error&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.requestFailed")," ",vp(n.error,h)]}),b&&n?.cancelError&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.cancelFailed")," ",vp(n.cancelError,h,"mcp.signIn.cancelTimedOut")]}),n?.signOutError&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.signOutFailed")," ",vp(n.signOutError,h,"mcp.actionTimedOut")]}),n?.signedOut&&(0,d.jsx)("span",{role:"status",className:"mcp-config-line",children:h(n.signedOut.removed?"mcp.signIn.signedOutDone":"mcp.signIn.signedOutNothing")}),r&&(0,d.jsx)("span",{id:m,className:"mcp-config-line is-dim",children:h(vr[r])}),!r&&i&&S&&!b&&(0,d.jsx)("span",{id:f,className:"mcp-config-line is-dim",children:h(vr[i])}),(0,d.jsxs)("div",{className:"mcp-sign-in-actions",children:[b&&w?(0,d.jsx)(pS,{ref:v,size:"small",disabled:n?.cancelling===!0||E,"aria-busy":n?.cancelling===!0||void 0,"aria-describedby":E?g:void 0,onClick:()=>p(t,w.flowId),children:h(n?.cancelling?"mcp.signIn.cancelling":"mcp.signIn.cancel")}):(0,d.jsx)(pS,{ref:x,size:"small",variant:"primary",disabled:C,"aria-busy":j||void 0,"aria-describedby":r?m:void 0,onClick:()=>l(t),children:h(j?"mcp.signIn.starting":"mcp.signIn.button")}),S&&!b&&(0,d.jsx)(pS,{size:"small",disabled:N,"aria-busy":o||void 0,"aria-describedby":i?r?m:f:void 0,onClick:()=>a(t),children:h(o?"mcp.signIn.signingOut":"mcp.signIn.signOut")})]}),!r&&!b&&S&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.replaces")}),S&&!i&&!b&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.signOutExplain")})]})})}function vm(e){let{flow:t,pasting:n,pasteError:r,onPaste:i}=e,{t:s}=(0,tw.s)(),[o,l]=(0,u.useState)(""),a=(0,u.useRef)(null),c=(0,u.useRef)(n);(0,u.useEffect)(()=>{let e=c.current;c.current=n,e&&!n&&e7(document,a.current)},[n]);let p=function(e){if(void 0!==e)try{let t=new URL(e);return"https:"===t.protocol||"http:"===t.protocol?t.href:void 0}catch{return}}(t.authorizationUrl);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pF,{message:s("mcp.signIn.authorize.message"),hint:p?(0,d.jsxs)(d.Fragment,{children:[s("mcp.signIn.authorize.link")," ",(0,d.jsx)("a",{href:p,target:"_blank",rel:"noopener noreferrer",children:hZ(p)})]}):(0,d.jsxs)(d.Fragment,{children:[s("mcp.signIn.authorize.notALink")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.authorizationUrl??"")})]}),value:o,placeholder:s("mcp.signIn.paste.placeholder"),inputLabel:s("mcp.signIn.paste.label"),submitLabel:s(n?"mcp.signIn.paste.checking":"mcp.signIn.paste.submit"),disabled:n,plainEnterSubmits:!1,inputRef:a,onValueChange:l,onSubmit:()=>i(o)}),r&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[s("mcp.signIn.paste.refused")," ",vp(r,s,"mcp.signIn.paste.timedOut"),"redirect-denied"===r.reason&&r.error&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(r.error)})]})]}),t.redirectUrl&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.signIn.authorize.redirect",{url:hZ(t.redirectUrl)})}),(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.signIn.authorize.wait")})]})}function vf(e){let{flow:t,shared:n}=e,{t:r}=(0,tw.s)(),i=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e.phase){case"done":{if(t)return e.alreadySignedIn?"mcp.signIn.shared.already":"mcp.signIn.shared.done";if(e.alreadySignedIn)return"mcp.signIn.done.already";let n=e.result;if(n&&"needs-auth"===n.state)return"mcp.signIn.done.needsAuthAfter";if(n&&"failed"===n.state)return"mcp.signIn.done.failedAfter";if(!n)return"mcp.signIn.done.notConnected";return e.refreshed?"mcp.signIn.done.refreshed":"mcp.signIn.done.signedIn"}case"failed":if(t&&"connect-failed"===e.failure)return"mcp.signIn.shared.connect-failed";return vo[e.failure??"internal"];case"cancelled":return"mcp.signIn.cancelled";case"expired":return"mcp.signIn.expired";default:return}}(t,n);if(!i)return null;let s=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"done"===e.phase?!t&&e.result&&"connected"!==e.result.state?"warning":"on":"failed"===e.phase?"error":"expired"===e.phase?"warning":"off"}(t,n);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{role:"status",className:"error"===s?"mcp-config-line is-error":"warning"===s?"mcp-config-line is-warning":"mcp-config-line",children:r(i,{name:hZ(t.name)})}),t.error&&(0,d.jsxs)("span",{className:"mcp-config-line is-error",children:[r("mcp.test.error")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.error)})]})]})}function vg(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}function vx(e){return hZ(eV(e))}function vv(e,t){let{key:n,params:r}=e;return r?t(n,void 0===r.path?r:{...r,path:vx(r.path)}):t(n)}function vb(e,t){return e.timedOut?t("mcp.loadTimedOut"):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):e.error}function vy(e,t){return e.timedOut?t("mcp.actionTimedOut"):vb(e,t)}function vw(){if("u"<typeof document)return null;let e=document.activeElement;return e instanceof HTMLButtonElement||e instanceof HTMLSelectElement?e:null}function vj(e){let{cwd:t,onClose:n,embedded:r=!1,trust:i,onTrustProject:s,onProjectTrustChanged:o}=e,[l,a]=(0,u.useState)({state:"loading"}),[c,p]=(0,u.useState)(!1),[h,m]=(0,u.useState)(()=>uR("mcp",t)),[f,g]=(0,u.useState)({saving:!1,error:null}),[x,v]=(0,u.useState)(null),[b,y]=(0,u.useState)(null),[w,j]=(0,u.useState)(null),[k,S]=(0,u.useState)(null),[C,N]=(0,u.useState)(null),[E,$]=(0,u.useState)({}),M=(0,u.useRef)(0),I=(0,u.useRef)(null),T=(0,u.useRef)(null),R=(0,u.useRef)(null),L=(0,u.useRef)(new Map),[A,P]=(0,u.useState)({}),z=(0,u.useRef)(A);z.current=A;let[W,O]=(0,u.useState)(0),[F,D]=(0,u.useState)(!1),[B,_]=(0,u.useState)(xI),H=(0,u.useRef)(B);H.current=B;let[U,q]=(0,u.useState)(null),[K,V]=(0,u.useState)(null),Z=(0,u.useRef)(!0),J=(0,u.useRef)(l);J.current=l;let Y=(0,u.useCallback)(async()=>{let e=++M.current;I.current?.abort();let n=new AbortController;I.current=n,p(!0);let r=await mR(t,void 0,n.signal);if(e===M.current){if(p(!1),!r.ok)return void a({state:"failed",error:r.error});a({state:"loaded",data:r.data,...r.projectError?{projectError:r.projectError}:{}}),m(e=>mx(mf(r.data,!!t),e))}},[t]),G=hu(i);(0,u.useEffect)(()=>(Y(),()=>{M.current+=1,I.current?.abort()}),[Y,G]);let X=(0,u.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"preference"});let n=await mP(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"preference"}),n.ok&&a(e=>{var t,r;let i;return"loaded"===e.state?{...e,data:(t=e.data,r=n.preference,i={...t.codemode,preference:r},delete i.preferenceError,{...t,codemode:i})}:e}),Y())},[Y]),Q=(0,u.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"mode"});let n=await mz(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"mode"}),n.ok&&a(e=>"loaded"===e.state?{...e,data:function(e,t){let n=e.codemode.mode;if(!n)return e;let r={settingsPath:n.settingsPath,...n.projectOverride?{projectOverride:n.projectOverride}:{},...t};return{...e,codemode:{...e.codemode,mode:r}}}(e.data,n.mode)}:e),Y())},[Y]),ee=(0,u.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"inlineBudget"});let n=await mW(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"inlineBudget"}),n.ok&&a(e=>"loaded"===e.state?{...e,data:function(e,t){let n=e.codemode.inlineBudget;if(!n)return e;let r={settingsPath:n.settingsPath,default:n.default,max:n.max,...n.projectOverride?{projectOverride:n.projectOverride}:{},...t};return{...e,codemode:{...e.codemode,inlineBudget:r}}}(e.data,n.inlineBudget)}:e),Y())},[Y]);(0,u.useEffect)(()=>{let e=L.current;return Z.current=!0,()=>{Z.current=!1,T.current?.abort(),T.current=null,R.current?.abort(),R.current=null,e.clear()}},[]);let et=(0,u.useCallback)(async e=>{let n=h6(e);if(L.current.has(n))return;let r={};L.current.set(n,r),$(e=>({...e,[n]:{...e[n],running:!0,startedAt:Date.now(),error:void 0,queueTimedOut:void 0,configKey:void 0}}));let i=J.current,s="loaded"===i.state&&i.data.project?t:null,o=await mQ({scope:e.scope,name:e.name},s);if(L.current.get(n)!==r)return;L.current.delete(n),$(t=>({...t,[n]:function(e,t,n){let r=e?.signedOutAt,i={...e?.startedAt!==void 0?{startedAt:e.startedAt}:{},...void 0!==r?{signedOutAt:r}:{}};if(void 0!==r&&(e?.startedAt??0)<=r)return{running:!1,...i};let s=e?.response?{response:e.response}:{};return t.ok?t.data.result.queueTimedOut?{running:!1,...i,...s,queueTimedOut:!0,configKey:t.data.configKey}:{running:!1,...i,response:t.data}:{running:!1,...i,...s,error:t.error,...void 0!==n?{configKey:n}:{}}}(t[n],o,e.configKey)}));let l=J.current,a="loaded"===l.state?l.data.servers.find(e=>h6(e)===n):void 0;(o.ok?a?.configKey===o.data.configKey:void 0===o.error.reason||o.error.timedOut)||Y()},[t,Y]),en=(0,u.useCallback)((e,n)=>{M.current+=1,I.current?.abort(),p(!1),a(t=>({state:"loaded",data:e,..."loaded"===t.state&&t.projectError?{projectError:t.projectError}:{}})),m(r=>mx(mf(e,!!t),n??r))},[t]),er=(0,u.useCallback)(async e=>{let n=h6(e),r=z.current[n];if(r?.starting||vn(r))return;P(e=>({...e,[n]:{starting:!0}}));let i=J.current,s="loaded"===i.state&&i.data.project?t:null,o=await function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3;return vd("/api/mcp/sign-in",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:e.scope,name:e.name,...t?{cwd:t}:{}})},n,r,i,{abortAtDeadline:!1})}({scope:e.scope,name:e.name},s);Z.current&&(P(e=>({...e,[n]:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();return e.ok?vl({},e.data,t):{error:e.error}}(o)})),o.ok||void 0===o.error.reason||o.error.timedOut||Y())},[t,Y]),ei=(0,u.useCallback)(async(e,t,n)=>{let r=h6(e);P(e=>e[r]?.flow?.flowId===t?{...e,[r]:{...e[r],pasting:!0,pasteError:void 0}}:e);let i=await function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3;return vd(vu(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({redirectUrl:t})},n,r,i)}(t,n);Z.current&&P(e=>{let n=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();if(!e?.flow||e.flow.flowId!==t)return e;let i={...e,pasting:!1,version:(e.version??0)+1};return n.ok?{...vl(i,n.data,r),pasteError:void 0}:va(n.error)?{...i,gone:!0}:{...i,pasteError:n.error}}(e[r],t,i);return void 0===n||n===e[r]?e:{...e,[r]:n}})},[]),es=(0,u.useCallback)(async(e,t)=>{let n=h6(e);P(e=>e[n]?.flow?.flowId===t?{...e,[n]:{...e[n],cancelling:!0}}:e);let r=await function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return vd(vu(e),{method:"DELETE"},t,n,r)}(t);Z.current&&P(e=>{let i=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();if(!e?.flow||e.flow.flowId!==t)return e;let i={...e,cancelling:!1,cancelError:void 0,version:(e.version??0)+1};return n.ok?vl(i,n.data,r):va(n.error)?{...i,gone:!0}:{...i,cancelError:n.error}}(e[n],t,r);return void 0===i||i===e[n]?e:{...e,[n]:i}})},[]),eo=Object.entries(A).flatMap(e=>{let[t,n]=e;return vn(n)&&n.flow?[`${t}\u0001${n.flow.flowId}`]:[]}).join("\x02");(0,u.useEffect)(()=>{if(!eo)return;let e=new AbortController,t=setTimeout(async()=>{for(let t of eo.split("\x02")){let[n,r]=t.split("\x01"),i=z.current[n]?.version??0,s=await function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return vd(vu(e),{},t,n,r)}(r,void 0,e.signal);if(e.signal.aborted)return;P(e=>{let t=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now(),i=arguments.length>4?arguments[4]:void 0;return e?.flow&&e.flow.flowId===t&&(void 0===i||(e.version??0)===i)?n.ok?vl(e,n.data,r):va(n.error)||void 0!==e.deadlineAt&&r>e.deadlineAt+5e3?{...e,gone:!0}:e:e}(e[n],r,s,Date.now(),i);return void 0===t||t===e[n]?e:{...e,[n]:t}})}O(e=>e+1)},1e3);return()=>{clearTimeout(t),e.abort()}},[eo,W]);let el=(0,u.useRef)(A);(0,u.useEffect)(()=>{let e=el.current;el.current=A,Object.keys(A).some(t=>{var n,r;return n=e[t],r=A[t],vn(n)&&!vn(r)})&&Y()},[A,Y]);let ea=(0,u.useCallback)(async(e,n,r)=>{R.current?.abort();let i=new AbortController;R.current=i,v(n);let s=J.current,o="loaded"===s.state&&s.data.project?t:null,l=await mU(e,o,void 0,i.signal);if(R.current===i)return R.current=null,v(null),l.ok?en(l.data,r?.(l.data)):Y(),l},[en,t,Y]),ec=(0,u.useCallback)(async(e,t)=>{let n=h6(e),r=vw();y(null),j(null);let i=await ea({action:t?"enable":"disable",scope:e.scope,name:e.name},`switch:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[ea]),ed=(0,u.useCallback)(async(e,t)=>{let n=h6(e),r=vw();y(null),j(null);let i=await ea({action:"set-in-project",name:e.name,enabled:t},`in-project:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[ea]),eu=(0,u.useCallback)(async(e,t)=>{let n=h6(e),r=vw();y(null),j(null);let i=await ea({action:"set-exposure",scope:e.scope,name:e.name,exposure:t},`exposure:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[ea]),ep=(0,u.useCallback)(async e=>{let t=h6(e),n=vw();y(null),j(null);let r=await ea({action:"remove",scope:e.scope,name:e.name},`remove:${t}`);if(!r)return;if(!r.ok){y({key:t,failure:r.error}),N({control:n});return}let i=r.data.undo;i&&S({...i,undoing:!1})},[ea]),eh=(0,u.useCallback)(async()=>{if(!k)return;let e=vw();y(null),j(null),S({...k,undoing:!0,error:void 0});let t=await ea({action:"undo",token:k.token},"undo",e=>e.restored?h6(e.restored):void 0);t&&(S(e=>e?.token!==k.token?e:t.ok?null:{...e,undoing:!1,error:t.error}),t.ok||N({control:e}))},[ea,k]),em=(0,u.useCallback)(async e=>{let t=h6(e),n=vw();y(null),j(null),P(e=>({...e,[t]:{...e[t],signOutError:void 0,signedOut:void 0}}));let r=await ea({action:"sign-out",scope:e.scope,name:e.name},`sign-out:${t}`);if(r){if(P(e=>({...e,[t]:r.ok?{signedOut:{removed:r.data.signedOut?.removed===!0}}:{...e[t],signOutError:r.error}})),r.ok){let e=Date.now();$(n=>{let r=function(e,t){if(e)return{running:e.running,...void 0!==e.startedAt?{startedAt:e.startedAt}:{},signedOutAt:t}}(n[t],e);return r?{...n,[t]:r}:n})}N({control:n})}},[ea]),ef=(0,u.useCallback)(async e=>{let n=vw(),r=H.current;y(null),j(null),q(null);let i=await ea(e,"add",e=>e.added?h6(e.added):void 0);if(!i)return;let s=H.current!==r;if(!i.ok){s||q(i.error),i.error.trust&&t&&o?.(t,i.error.trust),N({control:n});return}let{added:l,trust:a,trustedFolder:c}=i.data;if(D(!1),s||_(xI),N({control:null,toSelectedRow:!0}),!l)return;V({...l,key:h6(l),...c&&t?{trustedFolder:t}:{}}),a&&t&&o?.(t,a);let d=i.data.servers.find(e=>h6(e)===h6(l));d&&!mK(d,i.data)&&et(d)},[t,o,ea,et]),eg=k?.token,ex=k?.expiresInMs;(0,u.useEffect)(()=>{if(void 0===eg||void 0===ex)return;let e=setTimeout(()=>S(e=>e?.token===eg?null:e),ex);return()=>clearTimeout(e)},[eg,ex]);let ev=(0,u.useCallback)(async(e,t,n)=>{let{targets:r,keptOff:i}={targets:hd(t,n,e=>e.enabled).filter(n?m_:mB),keptOff:n?t.filter(e=>!e.enabled&&mB(e)&&!m_(e)).length:0},s=vw();if(y(null),j(i>0?{scope:e,keptOff:i,failures:[],total:0}:null),0===r.length)return;let o=await ea({action:"set-enabled",enabled:n,servers:r.map(e=>{let{scope:t,name:n}=e;return{scope:t,name:n}})},`group:${e}`);if(!o)return;if(N({control:s}),!o.ok)return void j({scope:e,keptOff:i,failures:[],total:r.length,error:o.error});let l=o.data.results??[],a=l.filter(e=>void 0!==e.reason).map(e=>({name:e.name,failure:{error:e.error??"",reason:e.reason}}));j(a.length>0||i>0?{scope:e,keptOff:i,failures:a,total:l.length}:null)},[ea]);return(0,u.useEffect)(()=>{h&&uL("mcp",h,t)},[t,h]),(0,d.jsx)(vk,{cwd:t,load:l,selected:h,refreshing:c,embedded:r,codemodeSave:f,busy:x,actionError:b,groupStatus:w,undo:k,focusBack:C,tests:E,signIns:A,adding:F,addDraft:B,addFailure:U,added:K,onAddOpen:()=>{D(!0),V(null),y(null)},onAddDraftChange:e=>{H.current=e,_(e),q(null)},onAddSubmit:e=>void ef(e),onTest:e=>void et(e),onSignIn:e=>void er(e),onSignOut:e=>void em(e),onSignInPaste:(e,t,n)=>void ei(e,t,n),onSignInCancel:(e,t)=>void es(e,t),onSelect:e=>{m(e),y(null),D(!1),V(t=>t?.key===e?t:null)},onRefresh:()=>void Y(),onCodemodeChange:e=>void X(e),onCodemodeModeChange:e=>void Q(e),onCodemodeInlineBudgetSave:e=>void ee(e),onServerSwitch:(e,t)=>void ec(e,t),onServerSwitchInProject:(e,t)=>void ed(e,t),onExposureChange:(e,t)=>void eu(e,t),onGroupSwitch:(e,t,n)=>void ev(e,t,n),onRemove:e=>void ep(e),onUndo:()=>void eh(),onTrustProject:s,onClose:n})}function vk(e){var t,n,r,i;let s,o,l,{cwd:a,load:c,selected:p,refreshing:h,embedded:m,codemodeSave:f={saving:!1,error:null},busy:g=null,actionError:x=null,groupStatus:v=null,undo:b=null,focusBack:y=null,tests:w={},signIns:j={},adding:k=!1,addDraft:S=xI,addFailure:C=null,added:N=null,onAddOpen:E=()=>{},onAddDraftChange:$=()=>{},onAddSubmit:M=()=>{},onSelect:I,onRefresh:T,onCodemodeChange:R,onCodemodeModeChange:L=()=>{},onCodemodeInlineBudgetSave:A=()=>{},onServerSwitch:P=()=>{},onServerSwitchInProject:z=()=>{},onExposureChange:W=()=>{},onGroupSwitch:O=()=>{},onRemove:F=()=>{},onUndo:D=()=>{},onTest:B=()=>{},onSignIn:_=()=>{},onSignOut:H=()=>{},onSignInPaste:U=()=>{},onSignInCancel:q=()=>{},onTrustProject:K,onClose:V}=e,{t:Z}=(0,tw.s)(),J=(0,u.useId)(),Y=(0,u.useId)(),G="loaded"===c.state?(t=c.data,s=!1,o=t.servers.map(e=>{var t;let n=w[h6(e)]?.response;if(!n||n.configKey!==e.configKey||e.status&&("test"===(t=e.status).origin?t.testedAt:t.closedAt??t.updatedAt)>=n.result.testedAt)return e;s=!0;let r={...n.result,origin:"test"};return{...e,status:r}}),s?{...t,servers:o}:t):void 0,X=G?mf(G,!!a):[],Q=G?{mcpAvailable:G.mcp.available,projectServersLoad:h5(G.project)}:void 0,ee=X.flatMap(e=>e.servers),et=ee.find(e=>h6(e)===p),en=N?ee.find(e=>h6(e)===N.key):void 0,er=G?function(e){if(!e.available)return"builtin-disabled"===e.reason?e.settingsPath?{key:"mcp.unavailable.builtin-disabled",params:{path:e.settingsPath}}:{key:"mcp.unavailable.builtin-disabled-unknown"}:{key:"operator-disabled"===e.reason?"mcp.unavailable.operator-disabled":"mcp.unavailable.internals-unavailable"}}(G.mcp):void 0,ei=er?void 0:G?.hostInactive,es=G?.files.find(e=>"project"===e.scope),eo=G?function(e,t){if(!e||!t||!t.exists&&0===t.problems.length)return;let{trust:n}=e;return n?n.requiresTrust||!1===n.decision?!0===n.decision?n.inherited&&n.decisionPath?{kind:"inherited",key:"mcp.trust.trustedThrough",params:{path:n.decisionPath}}:void 0:!1===n.decision&&n.inherited&&n.decisionPath?{kind:"untrusted",key:"mcp.trust.untrustedThrough",params:{path:n.decisionPath}}:{kind:"untrusted",key:"mcp.trust.untrusted"}:void 0:{kind:"untrusted",key:"mcp.trust.unreadable"}}(G.project,es):void 0,el=K&&mv(G?.project)?K:void 0,ea=eo?.kind==="untrusted"&&void 0!==el,ec=(0,u.useRef)(null),ed=(0,u.useRef)(null),eu=(0,u.useRef)(ea);(0,u.useEffect)(()=>{let e=eu.current;eu.current=ea,e&&!ea&&e7(document,ec.current??ed.current)},[ea]);let ep=(0,u.useRef)(null),eh=b?.token,em=(0,u.useRef)(eh);(0,u.useEffect)(()=>{let e=em.current;em.current=eh,void 0!==eh&&eh!==e?e7(document,ep.current):void 0!==e&&void 0===eh&&e7(document,ec.current??ed.current)},[eh]);let ef=G?[...G.files].sort((e,t)=>e.scope===t.scope?0:"global"===e.scope?-1:1).flatMap(e=>e.problems.map(t=>({file:e,problem:t}))):[],eg=mg(ee),ex=G?.files.find(e=>"global"===e.scope),ev=G?function(e){let t=e.files.find(e=>"project"===e.scope);if(t?.autoEnableCodemode!==void 0&&h5(e.project))return t.autoEnableCodemode?{value:!0,path:t.path}:{value:!1,path:t.path};let n=e.files.find(e=>"global"===e.scope);return n?.autoEnableCodemode!==void 0?n.autoEnableCodemode?{value:!0,path:n.path}:{value:!1,path:n.path}:{value:!0}}(G):void 0,eb=G?(n=ee.length,r=G.files,n>0?"mcp.selectItem":r.some(e=>e.problems.some(mm))?"mcp.emptyFileProblem":"mcp.empty"):void 0,ey=null!==g||h||f.saving,ew=(0,u.useRef)(null);(0,u.useEffect)(()=>{if(y&&!ey&&ew.current!==y)if(ew.current=y,y.toSelectedRow)e7(document,ec.current??ed.current);else{var e,t,n;e=document,t=y.control,n=ec.current??ed.current,t&&e7(e,t.isConnected&&!t.disabled?t:n)}},[y,ey]);let ej=e=>G?mF(e,G):void 0,ek=!!G&&mO(G.mcp),eS=X.find(e=>"project"===e.scope)?.servers??[],eC=ej("project"),eN=eo?.kind==="untrusted"?[vv(eo,Z),eC&&"mcp-off"!==eC&&eS.length>0?Z(mD[eC]):null].filter(Boolean).join(" "):"";return(0,d.jsxs)(u1,{embedded:m,title:Z("settings.mcp"),subtitle:a?eV(a):void 0,closeLabel:Z("i18n.close"),onClose:V,children:[(0,d.jsxs)("div",{className:"mcp-config-notices",children:[er&&(0,d.jsxs)(pv,{id:J,children:[vv(er,Z),ek&&(0,d.jsxs)(d.Fragment,{children:[" ",Z(mD["mcp-off"])]}),G&&!G.mcp.available&&G.mcp.detail&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(G.mcp.detail)})]})]}),ei&&(0,d.jsx)(pv,{children:Z("mcp.hostInactive",{path:vx(ei.cwd),owner:vx(ei.owner)})}),"loaded"===c.state&&c.projectError&&(0,d.jsx)(pv,{children:Z("mcp.projectNotListed",{reason:vb(c.projectError,Z)})}),eo?.kind==="untrusted"&&(0,d.jsx)(pb,{id:Y,message:eN,trustLabel:Z("mcp.trust.trustButton"),onTrust:el}),eo?.kind==="inherited"&&(0,d.jsx)(pv,{children:vv(eo,Z)}),b&&(0,d.jsxs)(pv,{action:b.error?.reason==="undo-unavailable"?void 0:(0,d.jsx)(pS,{ref:ep,size:"small",onClick:D,disabled:b.undoing||ey,children:b.undoing?Z("mcp.undoing"):Z("mcp.undo")}),children:[Z("mcp.removed",{name:hZ(b.name),path:vx(b.path)}),b.error&&(0,d.jsxs)(d.Fragment,{children:[" ",Z("mcp.undoFailed")," ",vy(b.error,Z)]})]}),N&&G&&en&&(0,d.jsx)(vS,{added:N,cwd:a,server:en,testing:w[N.key]?.running===!0,signIn:j[N.key],signingOut:g===`sign-out:${N.key}`,signInBlock:en?mK(en,G):void 0,onSignIn:_})]}),(0,d.jsxs)(u6,{children:[(0,d.jsxs)(u5,{children:[(0,d.jsx)(u9,{children:"loading"===c.state?(0,d.jsx)("div",{className:"config-sidebar-message",children:Z("i18n.loading")}):"failed"===c.state?(0,d.jsxs)("div",{role:"alert",className:"config-sidebar-message is-error",children:[Z("mcp.loadFailed")," ",vb(c.error,Z)]}):G&&Q?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"config-sidebar-group",children:(0,d.jsx)(vC,{codemode:G.codemode,active:!k&&p===h3,rowRef:ec,onSelect:I})}),X.map(e=>{let t=ej(e.scope);return(0,d.jsx)(vN,{group:e,context:Q,selected:k?null:p,selectedRowRef:ec,block:t,blockNoticeId:"mcp-off"===t?er?J:void 0:t&&eo?.kind==="untrusted"?Y:void 0,busy:g,controlsBusy:ey,status:v?.scope===e.scope?v:null,onSelect:I,onGroupSwitch:O},e.scope)})]}):null}),G&&(0,d.jsx)(pN,{ref:ed,active:k,onClick:E,children:Z("mcp.add.action")})]}),(0,d.jsx)(pw,{children:(0,d.jsx)(pi,{className:"is-fill",children:G&&Q&&ev&&eb?k?(0,d.jsx)(x5,{data:G,cwd:a,draft:S,busy:"add"===g,controlsBusy:ey,failure:C,onDraftChange:$,onSubmit:M,onTrustProject:el}):p===h3?(0,d.jsx)(vO,{codemode:G.codemode,autoEnable:ev,save:f,serverBusy:null!==g,onChange:R,onModeChange:L,onInlineBudgetSave:A}):et?(0,d.jsx)(vM,{server:et,context:Q,codemode:G.codemode,toolSearchDisabled:G.toolSearchDisabled,autoEnable:ev,block:ej(et.scope),inProject:function(e,t){if("global"!==e.scope||void 0!==e.invalidError||e.notAnObject||!h5(t.project))return;let n=t.files.find(e=>"project"===e.scope);if(!n||n.problems.some(e=>"auto-enable-codemode-invalid"!==e.reason))return;let r=t.servers.find(t=>"project"===t.scope&&t.name===e.name);return r?r.override?{kind:"override",key:h6(r),keys:r.override.keys,applies:!0===e.overriddenByProject}:void 0:{kind:"switch"}}(et,G),inProjectBlock:ej("project"),savedWhileOff:!G.mcp.available&&!ek,busy:g,controlsBusy:ey,actionError:x?.key===h6(et)?x.failure:null,test:(i=w[h6(et)],i&&void 0!==i.configKey&&i.configKey!==et.configKey?{running:i.running,...i.response?{response:i.response}:{}}:i),testBlock:mK(et,G),signIn:j[h6(et)],signInBlock:mK(et,G),signOutBlock:(l=mF(et.scope,G))||(void 0===et.invalidError&&et.validated?void 0:"invalid"),onSwitch:P,onSwitchInProject:z,onShowServer:e=>{I(e),requestAnimationFrame(()=>e7(document,ec.current??ed.current))},onExposureChange:W,onRemove:F,onTest:B,onSignIn:_,onSignOut:H,onSignInPaste:U,onSignInCancel:q},h6(et)):(0,d.jsx)(py,{children:"mcp.empty"===eb?Z(eb,{globalPath:vx(ex?.path??"~/.pi/agent/mcp.json")}):Z(eb)}):null})})]}),(0,d.jsxs)(pj,{status:ef.length>0?(0,d.jsx)(pk,{tone:ef.some(e=>{let{problem:t}=e;return mm(t)})?"error":"warning",summary:1===ef.length?Z("mcp.footer.fileProblem"):Z("mcp.footer.fileProblems",{count:ef.length}),details:ef.map(e=>{let{file:t,problem:n}=e,r=h8(n,t.realPath);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("code",{className:"mcp-config-chip",children:vx(t.path)})," ",Z(`mcp.fileProblem.${n.reason}`),r&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("code",{className:"mcp-config-chip",children:r})]})]})})}):(0,d.jsx)(pk,{summary:eg.total>0?Z("mcp.serverCount",{enabled:eg.enabled,total:eg.total}):""}),children:[!m&&(0,d.jsx)(pS,{onClick:V,children:Z("i18n.close")}),(0,d.jsx)(pS,{variant:"secondary",onClick:T,disabled:ey,children:Z("i18n.refresh")})]})]})}function vS(e){let{added:t,cwd:n,server:r,testing:i,signIn:s,signingOut:o,signInBlock:l,onSignIn:a}=e,{t:c}=(0,tw.s)(),u=hZ(t.name),p="project"===t.scope&&n?hZ(eZ(t.path,n)):vx(t.path),h=r.status,m=!i&&h?.origin==="test"&&"needs-auth"===h.state&&r.usesOAuth,f=s?.starting===!0||vn(s);return(0,d.jsxs)(pv,{action:!m||f||o||l?void 0:(0,d.jsx)(pS,{size:"small",variant:"primary",onClick:()=>a(r),children:c("mcp.signIn.button")}),children:[void 0===t.trustedFolder?c("mcp.add.added",{name:u,path:p}):t.trustedFolder===n?c("mcp.add.addedTrustedHere",{name:u,path:p}):c("mcp.add.addedTrusted",{name:u,path:p,folder:vx(t.trustedFolder)}),i&&(0,d.jsxs)(d.Fragment,{children:[" ",c("mcp.add.testing")]}),m&&(0,d.jsxs)(d.Fragment,{children:[" ",c("mcp.add.needsSignIn")]})]})}function vC(e){let{codemode:t,active:n,rowRef:r,onSelect:i}=e,{t:s}=(0,tw.s)(),o=t.builtinDisabled||"unavailable"===t.sandbox.state?"unavailable":t.preference??"unknown",l=s(mk[o]);return(0,d.jsxs)(pn,{ref:n?r:void 0,active:n,"aria-label":s("mcp.codemode.rowLabel",{state:l}),onClick:()=>i(h3),children:[(0,d.jsx)(pE,{...mo(mS(o))}),(0,d.jsx)(pr,{className:"is-grow",children:s("mcp.codemode.title")}),(0,d.jsx)("span",{className:`mcp-sidebar-badge is-${mS(o)}`,children:l})]})}function vN(e){var t;let n,r,{group:i,context:s,selected:o,selectedRowRef:l,block:a,blockNoticeId:c,busy:u,controlsBusy:p,status:h,onSelect:m,onGroupSwitch:f}=e,{t:g}=(0,tw.s)(),{enabled:x,total:v}=mg(i.servers),b=(t=i.servers).some(e=>e.enabled&&mB(e))&&t.every(e=>e.enabled||!m_(e)),y=function(e){if(!(e.servers.length>0))return e.file?e.file.problems.some(mm)?"mcp.group.fileProblem":"mcp.group.empty":"mcp.group.notListed"}(i),w=h?(n=h.keptOff>0?g("mcp.groupKeptOff",{count:h.keptOff}):void 0,r=h.error?`${g("mcp.actionFailed")} ${vy(h.error,g)}`:h.failures.length>0?[g("mcp.bulkFailed",{count:h.failures.length,total:h.total}),...h.failures.map(e=>{let{name:t,failure:n}=e;return`${hZ(t)}: ${vy(n,g)}`})].join("\n"):void 0,{...n?{note:n}:{},...r?{error:r}:{}}):void 0;return(0,d.jsxs)("div",{className:"config-sidebar-group",children:[(0,d.jsx)(u7,{aside:v>0?(0,d.jsx)(pe,{enabled:x,total:v,checked:b,disabled:p||void 0!==a,loading:u===`group:${i.scope}`,describedBy:a?c:void 0,label:g(b?"mcp.groupSwitchOn":"mcp.groupSwitchOff",{group:vg(i.scope,g)}),onChange:e=>f(i.scope,i.servers,e)}):void 0,children:vg(i.scope,g)}),w&&(0,d.jsx)(pt,{note:w.note,error:w.error}),y&&(0,d.jsx)("div",{className:"mcp-sidebar-group-empty",children:g(y)}),i.servers.map(e=>{let t=h6(e),n=h7(e,s),r=ms(n),i=mi[n],a=hZ(e.name);return(0,d.jsxs)(pn,{ref:o===t?l:void 0,active:o===t,"aria-label":g("mcp.rowLabel",{name:a,state:g(mn(n,e.status))}),onClick:()=>m(t),children:[(0,d.jsx)(pE,{...mo(r)}),(0,d.jsx)(pr,{className:`is-grow${"on"===r?"":" is-muted"}`,children:a}),i&&(0,d.jsx)("span",{className:`mcp-sidebar-badge is-${r}`,children:g(i)})]},t)})]})}function vE(e){let{fields:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>{let t=h0(e);return(0,d.jsx)("code",{className:"mcp-config-chip",children:n(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})}function v$(e){let{names:t}=e;return(0,d.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(e)},e))})}function vM(e){let{server:t,context:n,codemode:r,toolSearchDisabled:i,autoEnable:s,block:o,inProject:l,inProjectBlock:a,savedWhileOff:c,busy:p,controlsBusy:h,actionError:m,test:f,testBlock:g,signIn:x,signInBlock:v,signOutBlock:b,onSwitch:y,onSwitchInProject:w,onShowServer:j,onExposureChange:k,onRemove:S,onTest:C,onSignIn:N,onSignOut:E,onSignInPaste:$,onSignInCancel:M}=e,{t:I}=(0,tw.s)(),T=(0,u.useId)(),R=(0,u.useId)(),L=h7(t,n),A=hX(t),P=t.status,z=P?.origin==="test"&&"connected"===P.state&&P.toolCount>0?P:void 0,W=void 0===t.invalidError,O="http"===t.transport||void 0===t.transport&&void 0!==t.url,F=!O&&("stdio"===t.transport||void 0!==t.command),D=t.exposure?function(e,t,n){if("codemode"===e){var r;return r=t.codemode,"unavailable"===r.sandbox.state?{key:"mcp.exposure.sandboxUnavailable"}:r.builtinDisabled?{key:"mcp.exposure.builtinDisabled"}:n.value||"always"===mb(r)?void 0:{key:"mcp.exposure.autoEnableOff",params:{path:n.path}}}if("deferred"!==e||!t.toolSearchDisabled)return;let i=t.toolSearchDisabled.settingsPath;return i?{key:"mcp.exposure.toolSearchDisabled",params:{path:i}}:{key:"mcp.exposure.toolSearchDisabledUnknown"}}(t.exposure,{codemode:r,toolSearchDisabled:i},s):void 0,B=(0,u.useId)(),_=(0,u.useId)(),H=h6(t),U=hZ(t.name),q=!t.enabled&&void 0!==t.webPasswordField,K=!0===t.notAnObject,V=o?I(`mcp.reason.${o}`):K?I("mcp.reason.entry-not-object"):q?I("mcp.reason.web-password"):c?I("mcp.write.savedWhileOff"):void 0;return(0,d.jsxs)(pi,{children:[(0,d.jsxs)("div",{className:"config-detail-heading",children:[(0,d.jsxs)(ps,{children:[(0,d.jsxs)(po,{children:[(0,d.jsx)(ph,{scope:t.scope,children:vg(t.scope,I)}),(0,d.jsx)(pa,{children:U})]}),(0,d.jsxs)(pl,{children:[(0,d.jsx)(vz,{server:t,test:f,testBlock:g,describedBy:R,onTest:C}),(0,d.jsx)(pS,{variant:"danger",size:"small",disabled:h||void 0!==o,"aria-describedby":o?T:void 0,onClick:()=>S(t),children:p===`remove:${H}`?I("i18n.removing"):I("i18n.remove")}),(0,d.jsx)(pC,{checked:t.enabled,disabled:h||void 0!==o||K||q,loading:p===`switch:${H}`,describedBy:V?T:void 0,label:I(t.enabled?"mcp.server.switchOff":"mcp.server.switchOn",{name:U}),onChange:e=>y(t,e)})]})]}),V&&(0,d.jsx)("div",{id:T,className:"config-detail-heading-note",children:V})]}),m&&(0,d.jsxs)("p",{role:"alert",className:"mcp-config-line is-error",children:[I("mcp.actionFailed")," ",vy(m,I)]}),(0,d.jsxs)(pu,{children:[(0,d.jsx)(vW,{server:t,state:L,test:f,testBlock:g,testBlockId:R}),void 0!==t.description&&(0,d.jsx)(pp,{label:I("mcp.detail.description"),tone:"plain",children:hZ(t.description)}),void 0!==A?(0,d.jsx)(pp,{label:O?I("mcp.detail.url"):I("mcp.detail.command"),tone:"plain",mono:!0,className:"mcp-config-code",children:A}):t.transport&&(0,d.jsx)(pp,{label:I("mcp.detail.transport"),children:I(`mcp.transport.${t.transport}`)}),F&&void 0!==t.cwd&&(0,d.jsx)(pp,{label:I("mcp.detail.cwd"),mono:!0,className:"mcp-config-code",children:hZ(t.cwd)}),F&&t.envNames.length>0&&(0,d.jsx)(pp,{label:I("mcp.detail.env"),children:(0,d.jsx)(v$,{names:t.envNames})}),O&&t.headerNames.length>0&&(0,d.jsx)(pp,{label:I("mcp.detail.headers"),children:(0,d.jsx)(v$,{names:t.headerNames})}),W&&t.commandFields.length>0&&(0,d.jsx)(pp,{label:I("mcp.detail.shellCommands"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:I("mcp.server.commandFields")}),(0,d.jsx)(vE,{fields:t.commandFields})]})}),W&&t.variableReferences.length>0&&(0,d.jsx)(pp,{label:I("mcp.detail.variables"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:I(h1(t))}),(0,d.jsx)("span",{className:"mcp-config-chips",children:h4(t.variableReferences).map(e=>{let{variable:t,field:n}=e,r=h0(n);return(0,d.jsx)("code",{className:"mcp-config-chip",children:I("mcp.server.variableIn",{variable:t,field:I(r.key,r.params)})},`${t}\0${n.kind}\0${n.name??""}`)})})]})}),O&&W&&(0,d.jsx)(vh,{server:t,run:x,block:v,signOutBlock:b,controlsBusy:h,signingOut:p===`sign-out:${H}`,onSignIn:N,onSignOut:E,onPaste:$,onCancel:M}),(t.exposure||z)&&(0,d.jsx)(pp,{label:I("mcp.detail.exposure"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[t.exposure&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"mcp-exposure-choice",children:[(0,d.jsx)("select",{className:"mcp-add-input mcp-exposure-select","aria-label":I("mcp.exposure.label",{name:U}),"aria-describedby":[B,o?T:null].filter(Boolean).join(" "),value:t.exposure,disabled:h||void 0!==o,onChange:e=>{let n=e.target.value;n!==t.exposure&&k(t,n)},children:mp.map(e=>(0,d.jsx)("option",{value:e,children:"codemode"===e?I("mcp.exposure.optionDefault",{label:I(mh[e])}):I(mh[e])},e))}),p===`exposure:${H}`&&(0,d.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:I("i18n.saving")})]}),(0,d.jsx)("span",{id:B,className:"mcp-config-line",children:I(mu[t.exposure])}),void 0!==t.toolExposureCount&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:I("mcp.exposure.toolOverrides",{count:t.toolExposureCount})}),D&&(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:vv(D,I)})]}),z&&(0,d.jsx)(vP,{status:z,serverExposure:t.exposure})]})}),l&&(0,d.jsx)(pp,{label:I("mcp.detail.inProject"),tone:"plain",children:(0,d.jsx)("span",{className:"mcp-config-lines",children:"override"===l.kind?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"mcp-config-line",children:l.applies?I("mcp.inProject.overridden",{keys:l.keys.join(", ")}):I("mcp.inProject.refused")}),(0,d.jsx)("span",{children:(0,d.jsx)(pS,{size:"small",onClick:()=>j(l.key),children:I("mcp.inProject.show")})})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:(0,d.jsx)(pS,{size:"small",disabled:h||void 0!==a||q,"aria-describedby":[_,a||q?T:null].filter(Boolean).join(" "),onClick:()=>w(t,!t.enabled),children:p===`in-project:${H}`?I("i18n.saving"):I(t.enabled?"mcp.inProject.turnOff":"mcp.inProject.turnOn")})}),(0,d.jsx)("span",{id:_,className:"mcp-config-line is-dim",children:I("mcp.inProject.saved")})]})})}),(0,d.jsx)(pp,{label:I("mcp.detail.file"),tone:"dim",mono:!0,className:"mcp-config-code",children:vx(t.sourcePath)})]}),(0,d.jsxs)("div",{className:"mcp-config-lines",children:[hQ(t)&&(0,d.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.hiddenCharacters")}),!t.validated&&(0,d.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.unchecked")}),t.replacesGlobal&&(0,d.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.replacesGlobal")}),t.override&&(0,d.jsx)("p",{className:"mcp-config-line",children:vv(h2(t.override.keys),I)}),t.shadowedByProject&&"replaced"!==L&&(0,d.jsx)("p",{className:"mcp-config-line",children:I("mcp.server.shadowedByProject")}),t.overriddenByProject&&"overridden"!==L&&(0,d.jsx)("p",{className:"mcp-config-line",children:I("mcp.server.overriddenByProject")}),t.masked&&(0,d.jsx)("p",{className:"mcp-config-line is-dim",children:I("mcp.server.masked")})]})]})}function vI(e){let{error:t,stderr:n}=e,{t:r}=(0,tw.s)();return(0,d.jsxs)(d.Fragment,{children:[t&&(0,d.jsxs)("span",{className:"mcp-config-line is-error",children:[r("mcp.test.error")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t)})]}),n&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:r("mcp.test.stderr")}),(0,d.jsx)("pre",{className:"mcp-test-output",children:n.split(/\r?\n/).map(hZ).join("\n")})]})]})}function vT(e){let{status:t,showState:n,entryCwd:r}=e;return"session"===t.origin?(0,d.jsx)(vA,{status:t,showState:n}):(0,d.jsx)(vL,{status:t,showState:n,entryCwd:r})}function vR(e){let{view:t}=e,{t:n}=(0,tw.s)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:`mcp-config-state is-${t.tone}`,children:n(t.key)})," "]})}function vL(e){let{status:t,showState:n,entryCwd:r}=e,{t:i,locale:s}=(0,tw.s)(),o=ml(t.testedAt,s),l=t.serverInfo;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"mcp-config-line",children:[n&&(0,d.jsx)(vR,{view:t.timedOut?{key:mZ.timedOut,tone:"error"}:{key:mZ[t.state],tone:ms(t.state)}}),i((t.afterSignIn?mY:mJ)[t.timedOut?"timedOut":t.state],{count:t.toolCount,seconds:mG(t.durationMs),time:o})]}),(0,d.jsx)(vI,{error:t.error,stderr:t.stderr}),l&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.serverInfo",{name:hZ(l.title??l.name),version:hZ(l.version)})}),t.resources&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.resources")}),void 0!==t.cwd&&t.cwd!==r&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.ranIn",{path:vx(t.cwd)})}),void 0!==t.queuedMs&&t.queuedMs>=500&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.queued",{seconds:mG(t.queuedMs)})})]})}function vA(e){let{status:t,showState:n}=e,{t:r,locale:i}=(0,tw.s)(),s=ml(t.updatedAt,i),o=void 0===t.closedAt?void 0:ml(t.closedAt,i);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"mcp-config-line",children:[n&&(0,d.jsx)(vR,{view:void 0!==t.closedAt?{key:"mcp.session.state.closed",tone:"off"}:{key:ma[t.state],tone:md[t.state]}}),r(void 0!==t.closedAt?"mcp.session.summary.closed":mc[t.state],{path:vx(t.cwd),time:s,...void 0===o?{}:{closedTime:o}})]}),void 0!==t.conflict&&(0,d.jsxs)("span",{className:"mcp-config-line is-error",children:[r("mcp.session.conflictOwner")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:vx(t.conflict)})]}),(0,d.jsx)(vI,{error:t.error,stderr:t.stderr})]})}function vP(e){let{status:t,serverExposure:n}=e,{t:r}=(0,tw.s)(),i=t.toolCount-t.tools.length;return(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("ul",{className:"mcp-test-tools",children:t.tools.map((e,t)=>(0,d.jsxs)("li",{className:"mcp-test-tool",children:[(0,d.jsxs)("span",{className:"mcp-config-chips",children:[(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(e.name)}),e.readOnly&&(0,d.jsx)("span",{className:"mcp-test-tool-tag",children:r("mcp.test.readOnly")}),e.exposure!==(n??"codemode")&&(0,d.jsx)("span",{className:"mcp-test-tool-tag",children:r(mh[e.exposure])})]}),e.description&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:hZ(e.description)})]},`${t}\0${e.name}`))}),i>0&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:r("mcp.test.moreTools",{count:i})})]})}function vz(e){let{server:t,test:n,testBlock:r,describedBy:i,onTest:s}=e,{t:o}=(0,tw.s)(),l=(0,u.useRef)(null),a=n?.running===!0,c=(0,u.useRef)(a);return(0,u.useEffect)(()=>{let e=c.current;c.current=a,e&&!a&&e7(document,l.current)},[a]),(0,d.jsx)(pS,{ref:l,size:"small",disabled:a||void 0!==r,"aria-busy":a||void 0,"aria-describedby":r?i:void 0,onClick:()=>s(t),children:o(a?"mcp.test.testing":"mcp.test.button")})}function vW(e){let{server:t,state:n,test:r,testBlock:i,testBlockId:s}=e,{t:o}=(0,tw.s)(),l=t.status,a=mr[n],c="invalid"===i&&"invalid"===n?"state":"web-password"===i&&void 0!==t.webPasswordField?"password":void 0;return(0,d.jsx)(pp,{label:o("i18n.status"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-lines",children:[(0,d.jsx)("span",{className:`mcp-config-state is-${ms(n)}`,children:o(mn(n,l))}),"invalid"===n&&(0,d.jsxs)("span",{id:"state"===c?s:void 0,className:"mcp-config-line is-warning",children:[o("mcp.server.invalid")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.invalidError??"")})]}),t.webPasswordField&&(0,d.jsxs)("span",{id:"password"===c?s:void 0,className:"mcp-config-line is-warning",children:[o("mcp.server.webPassword")," ",(0,d.jsx)(vE,{fields:[t.webPasswordField]})]}),l?(0,d.jsx)(vT,{status:l,showState:h9(l)!==n,entryCwd:t.cwd}):!i&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:o("mcp.test.never")}),a&&(0,d.jsx)("span",{className:"mcp-config-line",children:o(a)}),r?.queueTimedOut&&(0,d.jsx)("span",{role:"alert",className:"mcp-config-line is-error",children:o("mcp.test.queueTimedOut")}),r?.error&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[o("mcp.test.requestFailed")," ",function(e,t){if(e.timedOut)return t("mcp.test.requestTimedOut");let n=e.reason?mV[e.reason]:void 0;return n?t(n):vb(e,t)}(r.error,o)]}),i&&!c&&(0,d.jsx)("span",{id:s,className:"mcp-config-line is-dim",children:o(mq[i])}),!i&&t.commandFields.length>0&&(0,d.jsx)("span",{className:"mcp-config-line is-dim",children:o("mcp.test.serial")})]})})}function vO(e){let{codemode:t,autoEnable:n,save:r,serverBusy:i,onChange:s,onModeChange:o,onInlineBudgetSave:l}=e,{t:a}=(0,tw.s)(),c=t.sandbox,u=t.preference,p=r.saving||i,h=void 0===r.target||"preference"===r.target?r:{saving:!1,error:null},m=function(e,t){if("automatic"===mb(e)&&!t.value)return{key:"mcp.codemode.autoEnableOff",params:{path:t.path}}}(t,n),f="unavailable"===t.sandbox.state?{key:"mcp.codemode.alwaysUnavailable.sandbox"}:t.globalBuiltinSettingsPath?{key:"mcp.codemode.alwaysUnavailable.builtin",params:{path:t.globalBuiltinSettingsPath}}:void 0,g=function(e){if(!e.builtinDisabled)return;let t=e.builtinSettingsPath;return t?e.globalBuiltinSettingsPath?{key:"mcp.codemode.builtinDisabled",params:{path:t}}:{key:"mcp.codemode.builtinDisabledProject",params:{path:t}}:{key:"mcp.codemode.builtinDisabledUnknown"}}(t),x=function(e){let t=e.projectOverride;if(t)return{key:my[t.preference],params:{path:t.settingsPath}}}(t);return(0,d.jsxs)(pi,{children:[(0,d.jsx)(ps,{children:(0,d.jsx)(po,{children:(0,d.jsx)(pa,{children:a("mcp.codemode.title")})})}),(0,d.jsx)("p",{className:"mcp-config-line",children:a("mcp.codemode.intro")}),(0,d.jsxs)(pu,{children:[(0,d.jsx)(pp,{label:a("mcp.codemode.mode"),tone:"plain",children:(0,d.jsxs)("div",{className:"mcp-config-lines",children:[u?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(pm,{value:u,label:a("mcp.codemode.title"),options:[{value:"automatic",label:a(mk.automatic),disabled:p},{value:"always",label:a(mk.always),disabled:p||void 0!==f}],disabledReason:f?vv(f,a):null,onChange:e=>{e!==u&&s(e)},children:h.saving&&(0,d.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:a("i18n.saving")})}),(0,d.jsx)("span",{className:"mcp-config-line",children:a("always"===u?"mcp.codemode.alwaysDescription":"mcp.codemode.automaticDescription")})]}):(0,d.jsxs)("span",{className:"mcp-config-line is-warning",children:[a("mcp.codemode.preferenceError")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.preferenceError??"")})]}),h.error&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[a("mcp.codemode.saveFailed")," ",(0,d.jsx)(vF,{error:h.error})]}),x&&(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:vv(x,a)}),m&&(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:vv(m,a)})]})}),t.mode?(0,d.jsx)(vD,{mode:t.mode,codemode:t,save:r,waiting:p,onChange:o}):void 0!==t.modeError&&(0,d.jsx)(pp,{label:a("mcp.codemode.toolMode"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-line is-warning",children:[a("mcp.codemode.preferenceError")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.modeError)})]})}),t.inlineBudget?(0,d.jsx)(vB,{budget:t.inlineBudget,save:r,waiting:p,onSave:l}):void 0!==t.inlineBudgetError&&(0,d.jsx)(pp,{label:a("mcp.codemode.inlineBudget"),tone:"plain",children:(0,d.jsxs)("span",{className:"mcp-config-line is-warning",children:[a("mcp.codemode.preferenceError")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.inlineBudgetError)})]})}),(0,d.jsx)(pp,{label:a("mcp.codemode.sandbox"),tone:"plain",children:"unavailable"===c.state?(0,d.jsxs)("span",{className:"mcp-config-line is-warning",children:[a("mcp.codemode.sandbox.unavailable")," ",(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(c.error)})]}):(0,d.jsx)("span",{className:"mcp-config-line",children:a("available"===c.state?"mcp.codemode.sandbox.available":"mcp.codemode.sandbox.not-checked")})}),g&&(0,d.jsx)(pp,{label:a("mcp.codemode.builtin"),tone:"error",children:vv(g,a)})]})]})}function vF(e){let{error:t}=e,{t:n}=(0,tw.s)();return t.timedOut?(0,d.jsx)(d.Fragment,{children:n("mcp.codemode.saveTimedOut")}):t.reason&&"internal"!==t.reason?(0,d.jsx)(d.Fragment,{children:n(`mcp.reason.${t.reason}`)}):(0,d.jsx)("code",{className:"mcp-config-chip",children:hZ(t.error)})}function vD(e){let{mode:t,codemode:n,save:r,waiting:i,onChange:s}=e,{t:o}=(0,tw.s)(),l="mode"===r.target,a=function(e){let t=e.mode;if(!t)return[];let n=[];void 0!==t.invalid&&n.push({key:"mcp.codemode.toolMode.invalid",params:{path:t.settingsPath,value:t.invalid}});let r=t.projectOverride;return r&&n.push({key:mj[r.value],params:{path:r.settingsPath}}),"only"===(r??t).value&&"automatic"===mb(e)&&n.push({key:"mcp.codemode.toolMode.automaticNote"}),n}(n);return(0,d.jsx)(pp,{label:o("mcp.codemode.toolMode"),tone:"plain",children:(0,d.jsxs)("div",{className:"mcp-config-lines",children:[(0,d.jsx)(pm,{value:t.value,label:o("mcp.codemode.toolMode"),options:[{value:"on",label:o("mcp.codemode.toolMode.on"),disabled:i},{value:"only",label:o("mcp.codemode.toolMode.only"),disabled:i}],onChange:e=>{(e!==t.value||void 0!==t.invalid)&&s(e)},children:l&&r.saving&&(0,d.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:o("i18n.saving")})}),(0,d.jsx)("span",{className:"mcp-config-line",children:o(mw[t.value])}),a.map(e=>(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:vv(e,o)},e.key)),l&&r.error&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[o("mcp.codemode.toolMode.saveFailed")," ",(0,d.jsx)(vF,{error:r.error})]})]})})}function vB(e){let t,n,{budget:r,save:i,waiting:s,onSave:o}=e,{t:l}=(0,tw.s)(),a=(0,u.useRef)(null),c=(0,u.useId)(),p=void 0===r.value?"":String(r.value),[h,m]=(0,u.useState)(p);(0,u.useEffect)(()=>{m(p)},[p]);let f=function(e,t){let n=e.trim();if(""===n)return{ok:!0,value:null};if(!/^\d+$/.test(n))return{ok:!1};let r=Number(n);return r<=t?{ok:!0,value:r}:{ok:!1}}(h,r.max),g=!!f.ok&&(null===f.value?void 0!==r.value||void 0!==r.invalid:f.value!==r.value),x="inlineBudget"===i.target,v=x&&i.saving,b=(0,u.useRef)(v);(0,u.useEffect)(()=>{let e=b.current;b.current=v,e&&!v&&e7(document,a.current)},[v]);let y=(t=[],void 0!==r.invalid&&t.push({key:"mcp.codemode.inlineBudget.invalid",params:{path:r.settingsPath,value:r.invalid,default:String(r.default)}}),(n=r.projectOverride)&&t.push(void 0!==n.value?{key:"mcp.codemode.inlineBudget.projectOverride",params:{path:n.settingsPath,value:String(n.value)}}:{key:"mcp.codemode.inlineBudget.projectOverrideDefault",params:{path:n.settingsPath,default:String(r.default)}}),t);return(0,d.jsx)(pp,{label:l("mcp.codemode.inlineBudget"),tone:"plain",children:(0,d.jsxs)("div",{className:"mcp-config-lines",children:[(0,d.jsxs)("form",{className:"mcp-codemode-budget",onSubmit:e=>{e.preventDefault(),f.ok&&g&&!s&&o(f.value)},children:[(0,d.jsx)("input",{ref:a,className:"mcp-add-input mcp-codemode-budget-input",inputMode:"numeric","aria-label":l("mcp.codemode.inlineBudget"),"aria-describedby":c,"aria-invalid":!f.ok||void 0,value:h,placeholder:String(r.default),readOnly:s,autoComplete:"off",spellCheck:!1,onChange:e=>m(e.target.value)}),(0,d.jsx)("span",{className:"mcp-config-line",children:l("mcp.codemode.inlineBudget.unit")}),(0,d.jsx)(pS,{type:"submit",size:"small",disabled:!g||s,children:l("mcp.codemode.inlineBudget.save")}),v&&(0,d.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:l("i18n.saving")})]}),!f.ok&&(0,d.jsx)("span",{className:"mcp-config-line is-error",children:l("mcp.codemode.inlineBudget.invalidDraft",{max:String(r.max)})}),(0,d.jsx)("span",{id:c,className:"mcp-config-line",children:l("mcp.codemode.inlineBudget.description",{default:String(r.default)})}),y.map(e=>(0,d.jsx)("span",{className:"mcp-config-line is-warning",children:vv(e,l)},e.key)),x&&i.error&&(0,d.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[l("mcp.codemode.inlineBudget.saveFailed")," ",(0,d.jsx)(vF,{error:i.error})]})]})})}let v_=[{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 vH(){let{t:e}=(0,tw.s)(),t=ad();return(0,d.jsx)("div",{className:"settings-font-rows",children:v_.map(n=>{let{kind:r,label:i,placeholder:s,reset:o,weightLabel:l}=n,a=t[`${r}Weight`],c=l0.findIndex(e=>e.value===a);return(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-range-option settings-font-row",children:[(0,d.jsxs)("div",{className:"settings-chat-range-header settings-font-header",children:[(0,d.jsx)("label",{htmlFor:`settings-font-${r}`,children:e(i)}),(0,d.jsx)("input",{id:`settings-font-${r}`,className:`settings-font-input${"mono"===r?" is-mono":""}`,type:"text",value:t[r],placeholder:e(s),maxLength:500,"aria-describedby":"settings-typography-description",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off",spellCheck:!1,onChange:e=>t.setFontPreference(r,e.target.value)}),(0,d.jsx)("output",{htmlFor:`settings-font-${r}-weight`,title:`${e(l)}: ${a}`,children:e(l0[c].label)}),(0,d.jsx)(pS,{variant:"ghost",size:"small",className:"settings-chat-reset",title:e(o),"aria-label":e(o),disabled:!t[r]&&400===a,onClick:()=>t.resetFontPreference(r),children:(0,d.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,d.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,d.jsx)("input",{id:`settings-font-${r}-weight`,type:"range",min:l0[0].value,max:l0[l0.length-1].value,step:100,value:a,"aria-label":e(l),"aria-valuetext":`${a} ${e(l0[c].label)}`,onChange:e=>t.setFontWeight(r,Number(e.target.value))})]},r)})})}function vU(e){let{section:t,size:n=16,strokeWidth:r=1.8}=e,i={width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:"settings-section-icon"};return"general"===t?(0,d.jsxs)("svg",{...i,children:[(0,d.jsx)("path",{d:"M20 7h-9M14 17H5"}),(0,d.jsx)("circle",{cx:"7",cy:"7",r:"3"}),(0,d.jsx)("circle",{cx:"17",cy:"17",r:"3"})]}):"models"===t?(0,d.jsxs)("svg",{...i,children:[(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,d.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,d.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 15h3M1 9h3M1 15h3"})]}):"skills"===t?(0,d.jsxs)("svg",{...i,children:[(0,d.jsx)("path",{d:"m12 2-10 5 10 5 10-5-10-5Z"}),(0,d.jsx)("path",{d:"m2 12 10 5 10-5M2 17l10 5 10-5"})]}):"agents"===t?(0,d.jsx)(t0,{size:n,strokeWidth:r,className:"settings-section-icon is-agent"}):"mcp"===t?(0,d.jsxs)("svg",{...i,children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"7",rx:"2"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"18",height:"7",rx:"2"}),(0,d.jsx)("path",{d:"M7 6.5h.01M7 17.5h.01M11 6.5h6M11 17.5h6"})]}):(0,d.jsx)("svg",{...i,children:(0,d.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 vq(e){let{sessionId:t,onSessionReloaded:n,quoteSelectionEnabled:r,onQuoteSelectionChange:i}=e,{locale:s,setLocale:o,supportedLocales:l,t:a}=(0,tw.s)(),{preference:c,setThemePreference:p}=sz(),{width:h,setWidth:m,fontSize:f,setFontSize:g}=lQ(),x=lO(),[v,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(!1),[j,k]=(0,u.useState)(null),[S,C]=(0,u.useState)(!1),[N,E]=(0,u.useState)(null),[$,M]=(0,u.useState)(!1),[I,T]=(0,u.useState)(null),[R,L]=(0,u.useState)(!1),[A,P]=(0,u.useState)(null),[z,W]=(0,u.useState)(!1),[O,F]=(0,u.useState)(!1),[D,B]=(0,u.useState)("");(0,u.useEffect)(()=>{C(od()),fetch("/api/web-auth").then(e=>e.ok?e.json():null).then(e=>W(e?.enabled===!0)).catch(()=>{})},[]);let _=async()=>{F(!0),B("");try{let e=await fetch("/api/web-auth",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);window.location.replace("/login")}catch{B(a("auth.logoutFailed"))}finally{F(!1)}};(0,u.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);e||b(n)}).catch(t=>{e||k(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]),(0,u.useEffect)(()=>{let e=!1;return fetch("/api/cache-miss-notices").then(async t=>{let n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);e||E(!0===n.enabled)}).catch(t=>{e||T(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let H=async e=>{M(!0),T(null);try{let r=await fetch("/api/cache-miss-notices",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),i=await r.json();if(!r.ok||i.error)throw Error(i.error??`HTTP ${r.status}`);E(!0===i.enabled),t&&n()}catch(e){T(e instanceof Error?e.message:String(e))}finally{M(!1)}},U=async e=>{w(!0),k(null);try{let r=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),i=await r.json();if(!r.ok||i.error)throw Error(i.error??`HTTP ${r.status}`);b(i),t&&(await cd(t,{type:"reload"}),n())}catch(e){k(e instanceof Error?e.message:String(e))}finally{w(!1)}},q=async()=>{if(!R){L(!0),P(null);try{if(!("Notification"in window))throw Error("unsupported or not permitted");let e="default"===Notification.permission?await Notification.requestPermission():Notification.permission;if("granted"!==e||!await hc(s))throw Error("unsupported or not permitted");P({kind:"ok",message:a("settings.pushRegistered")})}catch(e){P({kind:"error",message:`${a("settings.pushRegisterFailed")} ${e instanceof Error?e.message:String(e)}`})}finally{L(!1)}}};return(0,d.jsxs)("div",{className:"settings-general",children:[(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("settings.appearance")}),(0,d.jsx)("div",{role:"radiogroup","aria-label":a("settings.appearance"),className:"settings-theme-options",children:sb.map(e=>{let t=c===e.id;return(0,d.jsxs)("label",{className:"settings-theme-option","data-system":"auto"===e.id||void 0,"data-wide":"contrast-light"===e.id||"contrast-dark"===e.id||"zenburn"===e.id||void 0,children:[(0,d.jsx)("input",{type:"radio",name:"theme",value:e.id,checked:t,onChange:()=>p(e.id),className:"sr-only"}),"auto"===e.id?(0,d.jsxs)("span",{className:"settings-theme-swatch settings-theme-system","aria-hidden":"true",children:[(0,d.jsx)("span",{"data-theme":"light",className:"settings-theme-chip"}),(0,d.jsx)("span",{"data-theme":"dark",className:"settings-theme-chip"}),(0,d.jsx)("span",{className:"settings-theme-system-name",children:a(e.label)})]}):(0,d.jsx)("span",{className:"settings-theme-swatch","aria-hidden":"true",children:(0,d.jsx)("span",{"data-theme":e.id,className:"settings-theme-fill",children:(0,d.jsx)("span",{className:"settings-theme-name",children:a(e.label)})})}),(0,d.jsx)("span",{className:"sr-only",children:a(e.label)})]},e.id)})})]}),(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("settings.typography")}),(0,d.jsx)("p",{id:"settings-typography-description",className:"settings-general-description",children:a("settings.fontDescription")}),(0,d.jsxs)("div",{className:"settings-chat-options",children:[(0,d.jsx)(vH,{}),(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,d.jsxs)("div",{className:"settings-chat-range-header",children:[(0,d.jsx)("label",{htmlFor:"settings-chat-content-font-size",children:a("settings.chatContentFontSize")}),(0,d.jsxs)("output",{htmlFor:"settings-chat-content-font-size",children:[f,"px"]}),(0,d.jsx)(pS,{variant:"ghost",size:"small",className:"settings-chat-reset",title:a("settings.resetChatContentFontSize"),"aria-label":a("settings.resetChatContentFontSize"),disabled:14===f,onClick:()=>g(14),children:(0,d.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,d.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,d.jsx)("input",{id:"settings-chat-content-font-size",type:"range",min:12,max:24,step:1,value:f,onChange:e=>g(Number(e.target.value))})]}),(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,d.jsxs)("div",{className:"settings-chat-range-header",children:[(0,d.jsx)("label",{htmlFor:"settings-chat-content-width",children:a("settings.chatContentWidth")}),(0,d.jsxs)("output",{htmlFor:"settings-chat-content-width",children:[h,"px"]}),(0,d.jsx)(pS,{variant:"ghost",size:"small",className:"settings-chat-reset",title:a("settings.resetChatContentWidth"),"aria-label":a("settings.resetChatContentWidth"),disabled:820===h,onClick:()=>m(820),children:(0,d.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,d.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,d.jsx)("input",{id:"settings-chat-content-width",type:"range",min:820,max:2e3,step:10,value:h,onChange:e=>m(Number(e.target.value))})]})]})]}),(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("settings.chat")}),(0,d.jsxs)("div",{className:"settings-chat-options",children:[(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,d.jsx)("span",{children:a("settings.thinkingExpandedDefault")}),(0,d.jsx)(pC,{checked:S,label:a("settings.thinkingExpandedDefault"),onChange:e=>{!function(e){try{window.localStorage.setItem(oa,String(e))}catch{return}window.dispatchEvent(new Event(oc))}(e),C(e)}})]}),(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,d.jsx)("span",{children:a("settings.quoteSelection")}),(0,d.jsx)(pC,{checked:r,label:a("settings.quoteSelection"),onChange:i})]}),(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",role:"radiogroup","aria-label":a("settings.enterSendMode"),children:[(0,d.jsx)("span",{children:a("settings.enterSendMode")}),(0,d.jsxs)("div",{className:"settings-send-mode-options",children:[(0,d.jsxs)("label",{className:"settings-send-mode-option",children:[(0,d.jsx)("input",{type:"radio",name:"enter-send-mode",value:"enter",checked:"enter"===x,onChange:()=>lW("enter"),className:"sr-only"}),(0,d.jsx)("span",{className:"settings-send-mode-label",children:a("settings.enterSendModeEnter")})]}),(0,d.jsxs)("label",{className:"settings-send-mode-option",children:[(0,d.jsx)("input",{type:"radio",name:"enter-send-mode",value:"ctrlEnter",checked:"ctrlEnter"===x,onChange:()=>lW("ctrlEnter"),className:"sr-only"}),(0,d.jsx)("span",{className:"settings-send-mode-label",children:a("settings.enterSendModeCtrlEnter")})]})]})]}),(0,d.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,d.jsx)("span",{children:a("settings.cacheMissNotices")}),(0,d.jsx)(pC,{checked:!0===N,loading:null===N&&!I||$,label:a("settings.cacheMissNotices"),describedBy:"settings-cache-miss-notices-description",onChange:e=>void H(e)})]})]}),(0,d.jsx)("p",{id:"settings-cache-miss-notices-description",className:"settings-general-description",children:a("settings.cacheMissNoticesDescription")}),I&&(0,d.jsx)("p",{role:"alert",className:"settings-general-error",children:I})]}),v?.isWindows&&(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("settings.shellTool")}),(0,d.jsx)("p",{className:"settings-general-description",children:a("settings.shellToolDescription")}),(0,d.jsxs)("div",{className:"settings-shell-option",children:[(0,d.jsx)("span",{children:a("settings.usePowerShell")}),(0,d.jsx)(pC,{checked:v.powerShellEnabled,loading:y,label:a("settings.usePowerShell"),onChange:e=>void U(e)})]}),j&&(0,d.jsx)("p",{role:"alert",className:"settings-general-error",children:j})]}),(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("settings.pushPermission")}),(0,d.jsx)("p",{className:"settings-general-description",children:a("settings.pushPermissionDescription")}),(0,d.jsxs)("div",{className:"settings-shell-option",children:[(0,d.jsx)("span",{children:a("settings.pushPermission")}),(0,d.jsx)("button",{type:"button",className:"config-button config-button-small config-button-secondary",disabled:R,onClick:()=>void q(),children:R?a("settings.pushRegisterLoading"):a("settings.pushRegister")})]}),A&&(0,d.jsx)("p",{role:"status",className:"settings-general-error",style:"ok"===A.kind?{color:"var(--accent)"}:void 0,children:A.message})]}),(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsx)("h3",{className:"settings-general-heading",children:a("common.language")}),(0,d.jsx)("div",{role:"radiogroup","aria-label":a("common.language"),className:"settings-language-options",children:l.map(e=>{let t=s===e.id;return(0,d.jsxs)("button",{type:"button",role:"radio","aria-checked":t,onClick:()=>o(e.id),className:"settings-language-option",children:[(0,d.jsx)("span",{className:"settings-language-radio",children:t&&(0,d.jsx)("span",{className:"settings-language-radio-dot"})}),(0,d.jsx)("span",{className:"settings-language-label",children:e.label}),(0,d.jsx)("span",{className:"settings-language-code",children:e.id})]},e.id)})})]}),z&&(0,d.jsxs)("section",{className:"settings-general-section",children:[(0,d.jsxs)(pS,{variant:"secondary",disabled:O,onClick:()=>void _(),children:[(0,d.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,d.jsx)("path",{d:"M10 17l5-5-5-5M15 12H3M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"})}),O?a("auth.loggingOut"):a("auth.logOut")]}),D&&(0,d.jsx)("p",{role:"alert",className:"settings-general-error",children:D})]})]})}let vK={home:"home",section:"home",detail:"section"},vV={home:0,section:1,detail:2},vZ="cubic-bezier(0.2, 0.8, 0.2, 1)";function vJ(e){let t,{embedded:n=!1,cwd:r,sessionId:i,initialSection:s,openAtHome:o=!1,onClose:l,onSessionReloaded:a,quoteSelectionEnabled:c,onQuoteSelectionChange:p,projectTrust:h,onOpenTrustDialog:m,onProjectTrustChanged:f}=e,{t:g}=(0,tw.s)(),[x,v]=(0,u.useState)(s),[b,y]=(0,u.useState)(()=>new Set([x])),w=[{id:"general",label:g("settings.general")},{id:"models",label:g("common.models")},{id:"skills",label:g("common.skills")},{id:"agents",label:g("common.agents")},{id:"plugins",label:g("common.plugins")},{id:"mcp",label:g("settings.mcp")}].map(e=>{var t;return{...e,requiresProject:(t=e.id,uN.has(t))}}),j=uN.has(x),k=tT(),S=function(e,t){let[n,r]=(0,u.useState)(t?"home":"section");e||"section"===n||r("section");let i=(0,u.useRef)(n);i.current=n;let s=(0,u.useRef)(0);(0,u.useEffect)(()=>{if(!e)return;let t=()=>{0!==s.current&&(s.current-=1,r(e=>vK[e]))};return window.addEventListener("popstate",t),()=>window.removeEventListener("popstate",t)},[e]);let o=(0,u.useCallback)(t=>{e&&(window.history.pushState(window.history.state,""),s.current+=1,r(t))},[e]);return{level:n,levelRef:i,enter:o,goUp:(0,u.useCallback)(()=>{s.current>0?window.history.back():r(e=>vK[e])},[]),dropHistory:(0,u.useCallback)(()=>{let e=s.current;s.current=0,e>0&&window.history.go(-e)},[])}}(k,o),{dropHistory:C,enter:N,goUp:E,levelRef:$}=S,M=(0,u.useRef)(null),I=(0,u.useRef)(null),T=(0,u.useRef)(S.level);(0,u.useLayoutEffect)(()=>{let e=T.current;T.current=S.level,k&&e!==S.level&&function(e,t,n,r){if(!e||"function"!=typeof e.animate||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let i=vV[r]>vV[n];e.animate(i?[{transform:"translateX(100%)",boxShadow:"-12px 0 24px rgba(0, 0, 0, 0.12)"},{transform:"translateX(0)",boxShadow:"-12px 0 24px rgba(0, 0, 0, 0)"}]:[{transform:"translateX(-30%)",opacity:.4},{transform:"translateX(0)",opacity:1}],{duration:280,easing:vZ}),t?.querySelectorAll(".settings-phone-back, .settings-dialog-title").forEach(e=>{e.animate([{opacity:0,transform:`translateX(${i?16:-16}px)`},{opacity:1,transform:"translateX(0)"}],{duration:220,easing:vZ})})}(I.current,M.current,e,S.level)},[k,S.level]);let R=(0,u.useCallback)(()=>{C(),l()},[l,C]),L=w.find(e=>e.id===x)?.label??g("settings.title"),[A,P]=(0,u.useState)(null),z=(0,u.useMemo)(()=>({detailOpen:"detail"===S.level,openDetail:()=>{"section"===$.current&&(P(null),N("detail"))},closeDetail:()=>{"detail"===$.current&&E()},reportDetailTitle:P}),[N,E,S.level,$]);(0,u.useEffect)(()=>uT(s),[s]),(0,u.useEffect)(()=>e5(document,R),[R]);let W=(0,u.useRef)(null);(0,u.useLayoutEffect)(()=>e9(document,W.current,{restoreTextEntry:!window.matchMedia?.("(pointer: coarse)").matches}),[]),(0,u.useEffect)(()=>{!r&&j&&(v("general"),y(e=>new Set(e).add("general")),uT("general"))},[r,j]);let O=e=>{y(t=>new Set(t).add(e)),v(e),uT(e)},F=(e,t)=>b.has(e)?(0,d.jsx)("div",{hidden:x!==e||"home"===S.level,"data-phone-level":k?S.level:void 0,className:"settings-section-host",children:t},e):null;return(0,d.jsx)("div",{ref:W,role:n?"region":"dialog","aria-modal":!n||void 0,"aria-label":g("settings.title"),tabIndex:-1,onClick:e=>{n||e.target!==e.currentTarget||R()},className:`settings-dialog-backdrop${n?" is-embedded":""}`,children:(0,d.jsxs)("div",{className:"settings-dialog-surface",children:[(0,d.jsxs)("div",{ref:M,className:"settings-dialog-header",children:[k&&"home"!==S.level&&(t="detail"===S.level?L:g("settings.title"),(0,d.jsxs)("button",{type:"button",className:"settings-phone-back",onClick:E,"aria-label":g("settings.backTo",{name:t}),children:[(0,d.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m15 18-6-6 6-6"})}),(0,d.jsx)("span",{children:t})]})),(!n||k)&&(0,d.jsx)("strong",{className:"settings-dialog-title",children:k&&"home"!==S.level?"section"===S.level?L:A:g("settings.title")}),(0,d.jsx)("nav",{"aria-label":g("settings.title"),className:"settings-section-tabs",children:w.map(e=>{let t=x===e.id,n=e.requiresProject&&!r;return(0,d.jsxs)("button",{type:"button",className:"settings-section-tab",disabled:n,title:n?g("settings.projectRequired"):e.label,"aria-current":t?"page":void 0,onClick:()=>O(e.id),children:[(0,d.jsx)(vU,{section:e.id}),(0,d.jsx)("span",{children:e.label})]},e.id)})}),(0,d.jsx)("button",{type:"button",onClick:R,title:g("i18n.close"),"aria-label":g("i18n.close"),className:"config-close-button settings-dialog-close",children:"\xd7"})]}),(0,d.jsxs)("main",{ref:I,className:"settings-dialog-main",children:[k&&"home"===S.level&&(0,d.jsx)("nav",{"aria-label":g("settings.title"),className:"settings-phone-home",children:w.map(e=>{let t=e.requiresProject&&!r;return(0,d.jsxs)("button",{type:"button",className:"settings-phone-home-item",disabled:t,"aria-describedby":t?`settings-phone-home-${e.id}-note`:void 0,onClick:()=>{O(e.id),N("section")},children:[(0,d.jsx)(vU,{section:e.id,size:20}),(0,d.jsxs)("span",{className:"settings-phone-home-label",children:[(0,d.jsx)("span",{children:e.label}),t&&(0,d.jsx)("span",{id:`settings-phone-home-${e.id}-note`,className:"settings-phone-home-note",children:g("settings.projectRequired")})]}),(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:"settings-phone-home-chevron",children:(0,d.jsx)("path",{d:"m9 18 6-6-6-6"})})]},e.id)})}),(0,d.jsxs)(u2.Provider,{value:z,children:[F("general",(0,d.jsx)(vq,{sessionId:i,onSessionReloaded:a,quoteSelectionEnabled:c,onQuoteSelectionChange:p})),F("models",(0,d.jsx)(hl,{embedded:!0,cwd:r,onClose:R})),r&&F("skills",(0,d.jsx)(hv,{embedded:!0,cwd:r,trust:h,onClose:R},r)),r&&F("agents",(0,d.jsx)(hT,{embedded:!0,cwd:r,sessionId:i,trust:h,onClose:R,onReloaded:a},r)),r&&F("plugins",(0,d.jsx)(hU,{embedded:!0,cwd:r,sessionId:i,trust:h,onClose:R,onReloaded:a},r)),F("mcp",(0,d.jsx)(vj,{embedded:!0,cwd:r,trust:h,onTrustProject:m,onProjectTrustChanged:f,onClose:R},r??""))]})]})]})})}let vY="project-trust-mcp-status";function vG(e){let{cwd:t,busy:n,error:r,onCancel:i,onConfirm:s,onStatus:o}=e,[l,a]=(0,u.useState)({state:"loading"}),c=(0,u.useRef)(o);return(0,u.useEffect)(()=>{c.current=o},[o]),(0,u.useEffect)(()=>{let e=!0,n=!1;a({state:"loading"});let r=new AbortController,i=window.setTimeout(()=>{n=!0,r.abort()},1e4);return fetch(`/api/project-trust?cwd=${encodeURIComponent(t)}`,{signal:r.signal,cache:"no-store"}).then(async t=>{let n=await t.json();if(!e)return;let r=function(e,t,n){let r=Array.isArray(n.mcpServers)?{mcpServers:n.mcpServers,...n.mcpFile?{mcpFile:n.mcpFile}:{},...void 0!==n.mcpError?{mcpError:n.mcpError}:{}}:void 0;if(e&&!n.error&&r&&"boolean"==typeof n.requiresTrust){let e;return{state:"loaded",listing:r,status:(e={requiresTrust:n.requiresTrust,trusted:n.trusted,decision:n.decision,inherited:n.inherited},void 0!==n.decisionPath&&(e.decisionPath=n.decisionPath),void 0!==n.decisionError&&(e.decisionError=n.decisionError),e)}}return"trust-unreadable"===n.reason&&r?{state:"loaded",listing:r,statusError:n.error??`HTTP ${t}`}:{state:"failed",error:n.error??`HTTP ${t}`,reason:n.reason}}(t.ok,t.status,n);a(r),"loaded"===r.state&&r.status&&c.current?.(r.status)}).catch(t=>{e&&a(n?{state:"failed",timedOut:!0}:{state:"failed",error:t instanceof Error?t.message:String(t)})}).finally(()=>window.clearTimeout(i)),()=>{e=!1,window.clearTimeout(i),r.abort()}},[t]),(0,d.jsx)(vX,{cwd:t,busy:n,error:r,listing:l,onCancel:i,onConfirm:s})}function vX(e){let{cwd:t,busy:n,error:r,listing:i,onCancel:s,onConfirm:o}=e,{t:l}=(0,tw.s)(),a="loading"===i.state,c="loaded"===i.state?function(e){if(e){if(!e.requiresTrust)return"mcp.reason.trust-not-required";if(e.trusted)return"trust.alreadyTrusted"}}(i.status):void 0,p=(0,u.useRef)(null),h=(0,u.useRef)(n),m=(0,u.useRef)(s);return(0,u.useEffect)(()=>{h.current=n,m.current=s},[n,s]),(0,u.useEffect)(()=>{var e,t,n;let r,i,s;return e=document,t=p.current,n=()=>{h.current||m.current()},r=e.activeElement,t?.focus({preventScroll:!0}),i=e=>{"Escape"!==e.key||(e.stopPropagation(),e6(e)||(e.preventDefault(),n()))},e.addEventListener("keydown",i,!0),s=()=>e.removeEventListener("keydown",i,!0),()=>{s(),r&&r.isConnected&&"function"==typeof r.focus&&r.focus({preventScroll:!0})}},[]),(0,d.jsx)("div",{role:"presentation",className:"project-trust-backdrop",onClick:e=>{n||e.target!==e.currentTarget||s()},children:(0,d.jsxs)("div",{ref:p,role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title","aria-describedby":"project-trust-description",tabIndex:-1,className:"project-trust-dialog",children:[(0,d.jsxs)("div",{className:"project-trust-body",children:[(0,d.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,d.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,d.jsx)("path",{d:"m9 12 2 2 4-4"})]}),(0,d.jsxs)("div",{className:"project-trust-content",children:[(0,d.jsx)("div",{id:"project-trust-title",className:"project-trust-title",children:l("trust.dialogTitle")}),(0,d.jsx)("div",{id:"project-trust-description",className:"project-trust-text",children:l("trust.dialogBody")}),(0,d.jsx)("code",{className:"project-trust-path",children:hZ(t)}),c&&(0,d.jsx)("p",{id:"project-trust-notice",role:"status",className:"project-trust-notice",children:l(c)}),"loaded"===i.state&&void 0!==i.statusError&&(0,d.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:l("mcp.reason.trust-unreadable")}),(0,d.jsx)("code",{className:"project-trust-mcp-detail",children:hZ(i.statusError)})]}),(0,d.jsx)(v0,{listing:i})]})]}),r&&(0,d.jsx)(vQ,{error:r}),(0,d.jsxs)("div",{className:"project-trust-footer",children:[(0,d.jsx)("button",{type:"button",className:"project-trust-button",onClick:s,disabled:n,children:l(c?"trust.close":"trust.cancel")}),!c&&(0,d.jsx)("button",{type:"button",className:"project-trust-button is-primary",onClick:o,disabled:n||a,"aria-busy":n||void 0,"aria-describedby":a?vY:void 0,children:l(n?"trust.trusting":"trust.trustProject")})]})]})})}function vQ(e){let{error:t}=e,{t:n}=(0,tw.s)(),r=void 0!==t.reason&&"internal"!==t.reason;return(0,d.jsxs)("div",{role:"alert",className:"project-trust-error",children:[n(r?`mcp.reason.${t.reason}`:"trust.trustFailed"),!r&&(0,d.jsx)("code",{className:"project-trust-error-detail",children:hZ(t.error)})]})}function v0(e){let{listing:t}=e,{t:n}=(0,tw.s)();if("loading"===t.state)return(0,d.jsx)("p",{id:vY,role:"status",className:"project-trust-mcp-status",children:n("trust.mcp.loading")});if("failed"===t.state||void 0!==t.listing.mcpError||!t.listing.mcpFile){let e;e="failed"===t.state?t.reason&&"internal"!==t.reason?n(`mcp.reason.${t.reason}`):t.error:t.listing.mcpError;let r="failed"===t.state&&t.timedOut;return(0,d.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:n(r?"trust.mcp.timedOut":"trust.mcp.loadFailed")}),e&&(0,d.jsx)("code",{className:"project-trust-mcp-detail",children:hZ(e)})]})}let{mcpFile:r,mcpServers:i}=t.listing;return r.exists||0!==r.problems.length?(0,d.jsxs)("section",{className:"project-trust-mcp","aria-labelledby":"project-trust-mcp-title",children:[(0,d.jsx)("div",{id:"project-trust-mcp-title",className:"project-trust-mcp-title",children:n("trust.mcp.title")}),i.length>0&&(0,d.jsx)("p",{className:"project-trust-mcp-intro",children:n("trust.mcp.intro")}),(0,d.jsx)(v1,{file:r}),0===i.length&&0===r.problems.length&&(0,d.jsx)("p",{className:"project-trust-mcp-line",children:n("trust.mcp.none")}),i.some(e=>!e.validated)&&(0,d.jsx)("p",{className:"project-trust-mcp-line",children:n("trust.mcp.unchecked")}),i.length>0&&(0,d.jsx)("ul",{className:"project-trust-mcp-list",children:i.map(e=>(0,d.jsx)(v8,{server:e},e.name))})]}):null}function v1(e){let{file:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)(d.Fragment,{children:t.problems.map(e=>{let r=h8(e,t.realPath);return(0,d.jsxs)("div",{className:"project-trust-mcp-problem",children:[(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:n(`mcp.fileProblem.${e.reason}`)}),r&&(0,d.jsx)("code",{className:"project-trust-mcp-detail",children:r})]},e.reason)})})}function v2(e){let{fields:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)(d.Fragment,{children:t.map(e=>{let t=h0(e);return(0,d.jsx)("code",{className:"project-trust-mcp-chip",children:n(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})}function v4(e){let{server:t}=e,{t:n}=(0,tw.s)();return(0,d.jsx)(d.Fragment,{children:h4(t.variableReferences).map(e=>{let{variable:t,field:r}=e,i=h0(r);return(0,d.jsx)("code",{className:"project-trust-mcp-chip",children:n("mcp.server.variableIn",{variable:t,field:n(i.key,i.params)})},`${t}\0${r.kind}\0${r.name??""}`)})})}function v8(e){let t,{server:n}=e,{t:r}=(0,tw.s)(),i=hX(n),s=void 0===n.invalidError;return(0,d.jsxs)("li",{className:"project-trust-mcp-server",children:[(0,d.jsxs)("div",{className:"project-trust-mcp-server-head",children:[(0,d.jsx)("span",{className:"project-trust-mcp-server-name",children:hZ(n.name)}),n.transport&&(0,d.jsx)("span",{className:"project-trust-mcp-tag",children:r(`mcp.transport.${n.transport}`)})]}),void 0!==i&&(0,d.jsx)("code",{className:"project-trust-mcp-target",children:i}),void 0!==n.cwd&&(0,d.jsx)("p",{className:"project-trust-mcp-line",children:r("trust.mcp.cwd",{path:hZ(n.cwd)})}),hQ(n)&&(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:r("mcp.server.hiddenCharacters")}),void 0!==n.invalidError&&(0,d.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[r("mcp.server.invalid")," ",(0,d.jsx)("code",{className:"project-trust-mcp-chip",children:hZ(n.invalidError)})]}),n.webPasswordField&&(0,d.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[r("mcp.server.webPassword")," ",(0,d.jsx)(v2,{fields:[n.webPasswordField]})]}),!n.enabled&&(0,d.jsx)("p",{className:"project-trust-mcp-line",children:r("mcp.server.disabled")}),s&&n.commandFields.length>0&&(0,d.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[r("mcp.server.commandFields")," ",(0,d.jsx)(v2,{fields:n.commandFields})]}),s&&n.variableReferences.length>0&&(0,d.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[r(h1(n))," ",(0,d.jsx)(v4,{server:n})]}),n.replacesGlobal&&(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:r("mcp.server.replacesGlobal")}),n.override&&(0,d.jsx)("p",{className:"project-trust-mcp-line is-warning",children:r((t=h2(n.override.keys)).key,t.params)}),n.masked&&(0,d.jsx)("p",{className:"project-trust-mcp-line is-dim",children:r("mcp.server.masked")})]})}function v3(e){return"message"===e.type&&"message"in e&&"system"!==e.message.role}function v6(e){let t=e,n=t.branchPreview,r=v3(t.entry)?t.entry:null,i=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],n??=t.branchPreview,!r&&v3(t.entry)&&(r=t.entry),i+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:i,branchPreview:n,labelEntry:r??t.entry}}function v5(e){if(e.length>1)return!0;let t=[...e];for(;t.length>0;){let e=t.pop();if(e.children.length>1)return!0;for(let n of e.children)t.push(n)}return!1}function v9(e){let{node:t,activePathIds:n,depth:r,isLast:i,parentLines:s,onSelect:o}=e,{node:l,skipped:a,branchPreview:c,labelEntry:u}=v6(t),p=n.has(l.entry.id),h=n.has(t.entry.id)||n.has(l.entry.id),m=c?.text??function(e){if("message"===e.type&&v3(e)){let t=e.message,n=t.content,r="";if("string"==typeof n?r=n:Array.isArray(n)&&(r=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),r.length>40&&(r=r.slice(0,40)+"…"),r)return r;if("assistant"===t.role)return"[assistant]"}return e.type}(u),f=c?c.role??null:v3(u)?u.message.role:null;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{role:"button",tabIndex:o?0:-1,"aria-disabled":!o,style:{display:"flex",alignItems:"center",height:24,cursor:o?"pointer":"default"},onClick:o?()=>o(l.entry.id):void 0,onKeyDown:o?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o(l.entry.id))}:void 0,children:[s.map((e,t)=>(0,d.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,d.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,d.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:i?"50%":0,width:1,background:"var(--border)"}}),(0,d.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,d.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:p?"var(--accent)":h?"var(--text-muted)":"var(--border)",border:p?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),f&&(0,d.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===f?"var(--accent)":"var(--text-dim)",background:"user"===f?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===f?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===f?"U":"A"}),a>0&&(0,d.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",a]}),(0,d.jsx)("span",{style:{fontSize:11,color:p?"var(--text)":h?"var(--text-muted)":"var(--text-dim)",fontWeight:p?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:m})]}),l.children.map((e,t)=>(0,d.jsx)(v9,{node:e,activePathIds:n,depth:r+1,isLast:t===l.children.length-1,parentLines:[...s,!i],onSelect:o},e.entry.id))]})}function v7(e){let{tree:t,activeLeafId:n,onLeafChange:r,inline:i,embedded:s=!1,containerRef:o,open:l,onToggle:a,hasSession:c,compact:p,hideInlineButton:h,locked:m=!1}=e,{t:f}=(0,tw.s)(),[g,x]=(0,u.useState)(!1),v=void 0!==l?l:g,b=(0,u.useRef)(null),[y,w]=(0,u.useState)(null);(0,u.useEffect)(()=>{if(!v||!i)return;let e=o?.current??b.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();w({top:t.bottom,left:t.left,width:t.width})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[v,i,o]);let j=(0,u.useMemo)(()=>(function(e,t){if(!t)return new Set;let n=e.map(e=>({node:e,path:[e.entry.id]}));for(;n.length>0;){let{node:e,path:r}=n.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(r);for(let t of e.children)n.push({node:t,path:[...r,t.entry.id]})}return new Set})(t,n),[t,n]),k=(0,u.useCallback)(e=>{r(e)},[r]),S=m?void 0:k,C=m&&(0,d.jsx)("div",{style:{padding:"2px 0 4px",fontSize:11,color:"var(--text-dim)",fontStyle:"italic"},children:f("i18n.branchesLockedWhileRunning")}),N=c?v5(t)?null:f("i18n.noBranches"):f("i18n.noActiveSession"),E=function(e){if(e.length>1)return e;if(0===e.length)return[];let t=v6(e[0]).node;return t.children.length>1?t.children:[]}(t),$=!N&&E.length>0,M=(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:$?"var(--accent)":"var(--text-dim)",flexShrink:0},children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),I=(0,d.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:v?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,d.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return s?(0,d.jsxs)("div",{className:"workspace-branch-list",children:[(0,d.jsx)("p",{className:"workspace-branch-description",children:f("branches.description")}),C,$?E.map((e,t)=>(0,d.jsx)(v9,{node:e,activePathIds:j,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id)):(0,d.jsxs)("div",{className:"workspace-branch-empty",children:[(0,d.jsx)("strong",{children:N}),c&&(0,d.jsx)("p",{children:f("branches.createHint",{action:f("i18n.editFromHere")})})]})]}):i?(0,d.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,d.jsxs)("button",{ref:b,onClick:()=>a?a():x(e=>!e),style:{display:h?"none":"flex",alignItems:"center",gap:6,height:"100%",padding:"0 12px",background:v?"var(--bg-selected)":"none",border:"none",borderTop:v?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:"pointer",color:v?"var(--text)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color=v?"var(--text)":"var(--text-muted)"},title:f("i18n.branches"),"aria-label":f("i18n.branches"),"aria-pressed":v,children:[M,!p&&(0,d.jsx)("span",{children:f("i18n.branches")})]}),v&&y&&(0,d.jsx)("div",{style:{position:"fixed",top:y.top,left:y.left,width:y.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:$?(0,d.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[C,E.map((e,t)=>(0,d.jsx)(v9,{node:e,activePathIds:j,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id))]}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:N})})]}):(0,d.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,d.jsxs)("button",{onClick:()=>x(e=>!e),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:[M,(0,d.jsx)("span",{style:{color:"var(--text-muted)"},children:f("i18n.branches")}),I]}),v&&(0,d.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:$?(0,d.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[C,E.map((e,t)=>(0,d.jsx)(v9,{node:e,activePathIds:j,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id))]}):(0,d.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:N??f("i18n.noBranches")})})]})}function be(e){let{loading:t,prompt:n,translate:r}=e;return(0,d.jsxs)("section",{className:"system-prompt-panel","aria-label":r("system.prompt"),children:[(0,d.jsx)("div",{className:"system-prompt-scroll",children:n?(0,d.jsx)("div",{className:"system-prompt-text",children:n}):(0,d.jsx)("div",{className:"system-prompt-empty",children:r(""===n?"system.empty":t?"system.loading":"system.load")})}),(0,d.jsx)("style",{children:`
|
|
85
|
+
.system-prompt-panel {
|
|
86
|
+
display: flex;
|
|
87
|
+
height: min(600px, 75dvh);
|
|
88
|
+
min-height: 220px;
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
background: var(--bg-panel);
|
|
91
|
+
border-bottom: 1px solid var(--border);
|
|
92
|
+
}
|
|
93
|
+
.system-prompt-scroll {
|
|
94
|
+
min-height: 0;
|
|
95
|
+
flex: 1;
|
|
96
|
+
overflow: auto;
|
|
97
|
+
padding: 12px 16px;
|
|
98
|
+
}
|
|
99
|
+
.system-prompt-text {
|
|
100
|
+
color: var(--text-muted);
|
|
101
|
+
font-family: var(--font-mono);
|
|
102
|
+
font-size: 12px;
|
|
103
|
+
line-height: 1.6;
|
|
104
|
+
overflow-wrap: anywhere;
|
|
105
|
+
white-space: pre-wrap;
|
|
106
|
+
}
|
|
107
|
+
.system-prompt-empty {
|
|
108
|
+
padding: 10px 0;
|
|
109
|
+
color: var(--text-muted);
|
|
110
|
+
font-size: 12px;
|
|
111
|
+
font-style: italic;
|
|
112
|
+
}
|
|
113
|
+
`})]})}function bt(e){if("string"==typeof e)return e;if(void 0===e)return"";try{return JSON.stringify(e)}catch{return String(e)}}function bn(e){let{children:t}=e;return(0,d.jsx)("div",{className:"tool-definitions-empty",children:t})}function br(e){let{loading:t,tools:n,translate:r}=e,i=(0,u.useMemo)(()=>n?.filter(e=>e.active&&!e.declarationHidden)??null,[n]),[s,o]=(0,u.useState)(null);(0,u.useEffect)(()=>{o(e=>i?.some(t=>t.name===e)?e:i?.[0]?.name??null)},[i]);let l=i?.find(e=>e.name===s)??i?.[0]??null,a=l?function(e){if(!e||!e.properties||"object"!=typeof e.properties)return[];let t=e.properties,n=new Set(Array.isArray(e.required)?e.required.filter(e=>"string"==typeof e):[]);return Object.entries(t).map(e=>{let[t,r]=e,i=r&&"object"==typeof r?r:{};return{name:t,type:function e(t){let n=Array.isArray(t.anyOf)?t.anyOf:Array.isArray(t.oneOf)?t.oneOf:null;if(n)return n.map(t=>t&&"object"==typeof t?e(t):"unknown").filter((e,t,n)=>n.indexOf(e)===t).join(" | ");if(void 0!==t.const)return bt(t.const);if(Array.isArray(t.enum)&&t.enum.length>0&&void 0===t.type)return[...new Set(t.enum.map(e=>null===e?"null":typeof e))].join(" | ");let r=t.type,i=Array.isArray(r)?r.filter(e=>"string"==typeof e).join(" | "):"string"==typeof r?r:"string"==typeof t.$ref?t.$ref.split("/").pop()??"object":"unknown";if("array"===i){let n=t.items,r=n&&"object"==typeof n?e(n):"unknown";return`${r}[]`}return i}(i),description:"string"==typeof i.description?i.description:void 0,required:n.has(t),allowedValues:Array.isArray(i.enum)?i.enum.map(bt).join(", "):void 0,defaultValue:void 0===i.default?void 0:bt(i.default)}})}(l.parameters):[];return(0,d.jsxs)("div",{className:"tool-definitions-panel",children:[(0,d.jsx)("nav",{className:"tool-definitions-sidebar","aria-label":r("tools.title"),children:(0,d.jsx)("div",{className:"tool-definitions-list",children:i&&i.length>0?i.map(e=>{let t=e.name===l?.name;return(0,d.jsx)("button",{type:"button",className:`tool-definitions-item${t?" selected":""}`,"aria-pressed":t,onClick:()=>o(e.name),children:(0,d.jsx)("code",{children:e.name})},e.name)}):i?(0,d.jsx)(bn,{children:r("tools.noTools")}):(0,d.jsx)(bn,{children:t?r("tools.loading"):r("tools.load")})})}),(0,d.jsx)("section",{className:"tool-definition-detail","aria-label":r("tools.details"),children:l?(0,d.jsxs)("div",{className:"tool-definition-scroll",children:[l.description&&(0,d.jsxs)("section",{className:"tool-definition-section",children:[(0,d.jsx)("div",{className:"tool-definition-section-label",children:r("tools.description")}),(0,d.jsx)("div",{className:"tool-definition-description",children:l.description})]}),(0,d.jsxs)("section",{className:"tool-definition-section",children:[(0,d.jsxs)("div",{className:"tool-definition-section-label",children:[(0,d.jsx)("span",{children:r("tools.parameters")}),(0,d.jsx)("span",{children:r("tools.parameterCount",{count:a.length})})]}),a.length>0?(0,d.jsx)("div",{className:"tool-definition-fields",children:a.map(e=>(0,d.jsxs)("div",{className:"tool-definition-field",children:[(0,d.jsxs)("div",{className:"tool-definition-field-name",children:[(0,d.jsx)("code",{children:e.name}),(0,d.jsx)("span",{className:e.required?"required":void 0,children:r(e.required?"tools.required":"tools.optional")})]}),(0,d.jsxs)("div",{className:"tool-definition-field-value",children:[(0,d.jsx)("code",{className:"tool-definition-type",children:e.type}),e.description&&(0,d.jsx)("div",{children:e.description}),e.allowedValues&&(0,d.jsxs)("div",{className:"tool-definition-meta",children:[r("tools.allowedValues"),": ",(0,d.jsx)("code",{children:e.allowedValues})]}),void 0!==e.defaultValue&&(0,d.jsxs)("div",{className:"tool-definition-meta",children:[r("tools.defaultValue"),": ",(0,d.jsx)("code",{children:e.defaultValue})]})]})]},e.name))}):(0,d.jsx)("div",{className:"tool-definition-no-parameters",children:r("tools.noParameters")})]}),l.promptGuidelines&&l.promptGuidelines.length>0&&(0,d.jsxs)("section",{className:"tool-definition-section",children:[(0,d.jsx)("div",{className:"tool-definition-section-label",children:r("tools.guidelines")}),(0,d.jsx)("ul",{className:"tool-definition-guidelines",children:l.promptGuidelines.map((e,t)=>(0,d.jsx)("li",{children:e},`${l.name}:${t}`))})]})]}):(0,d.jsx)(bn,{children:i?r("tools.noTools"):t?r("tools.loading"):r("tools.load")})}),(0,d.jsx)("style",{children:`
|
|
114
|
+
.tool-definitions-panel {
|
|
115
|
+
display: grid;
|
|
116
|
+
grid-template-columns: clamp(112px, 26%, 220px) minmax(0, 1fr);
|
|
117
|
+
height: min(600px, 75dvh);
|
|
118
|
+
min-height: 240px;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
background: var(--bg-panel);
|
|
121
|
+
border-bottom: 1px solid var(--border);
|
|
122
|
+
}
|
|
123
|
+
.tool-definitions-sidebar,
|
|
124
|
+
.tool-definition-detail {
|
|
125
|
+
display: flex;
|
|
126
|
+
min-width: 0;
|
|
127
|
+
min-height: 0;
|
|
128
|
+
flex-direction: column;
|
|
129
|
+
}
|
|
130
|
+
.tool-definitions-sidebar {
|
|
131
|
+
border-right: 1px solid var(--border);
|
|
132
|
+
background: color-mix(in srgb, var(--bg-panel) 94%, var(--bg));
|
|
133
|
+
}
|
|
134
|
+
.tool-definitions-list,
|
|
135
|
+
.tool-definition-scroll {
|
|
136
|
+
min-height: 0;
|
|
137
|
+
flex: 1;
|
|
138
|
+
overflow: auto;
|
|
139
|
+
}
|
|
140
|
+
.tool-definitions-item {
|
|
141
|
+
display: flex;
|
|
142
|
+
width: 100%;
|
|
143
|
+
min-height: 38px;
|
|
144
|
+
align-items: center;
|
|
145
|
+
padding: 8px 12px;
|
|
146
|
+
border: none;
|
|
147
|
+
border-bottom: 1px solid var(--border);
|
|
148
|
+
background: transparent;
|
|
149
|
+
color: var(--text-muted);
|
|
150
|
+
cursor: pointer;
|
|
151
|
+
text-align: left;
|
|
152
|
+
}
|
|
153
|
+
.tool-definitions-item:hover {
|
|
154
|
+
background: var(--bg-hover);
|
|
155
|
+
color: var(--text);
|
|
156
|
+
}
|
|
157
|
+
.tool-definitions-item.selected {
|
|
158
|
+
background: var(--bg-selected);
|
|
159
|
+
box-shadow: inset 2px 0 0 var(--accent);
|
|
160
|
+
color: var(--text);
|
|
161
|
+
}
|
|
162
|
+
.tool-definitions-item code {
|
|
163
|
+
max-width: 100%;
|
|
164
|
+
color: inherit;
|
|
165
|
+
font-size: 11px;
|
|
166
|
+
font-weight: 600;
|
|
167
|
+
overflow-wrap: anywhere;
|
|
168
|
+
}
|
|
169
|
+
.tool-definition-scroll {
|
|
170
|
+
padding: 14px 16px 20px;
|
|
171
|
+
}
|
|
172
|
+
.tool-definition-section + .tool-definition-section {
|
|
173
|
+
margin-top: 18px;
|
|
174
|
+
}
|
|
175
|
+
.tool-definition-section-label {
|
|
176
|
+
display: flex;
|
|
177
|
+
align-items: center;
|
|
178
|
+
justify-content: space-between;
|
|
179
|
+
gap: 8px;
|
|
180
|
+
margin-bottom: 7px;
|
|
181
|
+
color: var(--text-dim);
|
|
182
|
+
font-size: 11px;
|
|
183
|
+
font-weight: 600;
|
|
184
|
+
}
|
|
185
|
+
.tool-definition-section-label > span:last-child {
|
|
186
|
+
font-weight: 400;
|
|
187
|
+
white-space: nowrap;
|
|
188
|
+
}
|
|
189
|
+
.tool-definition-description {
|
|
190
|
+
color: var(--text-muted);
|
|
191
|
+
font-size: 12px;
|
|
192
|
+
line-height: 1.55;
|
|
193
|
+
overflow-wrap: anywhere;
|
|
194
|
+
white-space: pre-wrap;
|
|
195
|
+
}
|
|
196
|
+
.tool-definition-fields {
|
|
197
|
+
border-top: 1px solid var(--border);
|
|
198
|
+
}
|
|
199
|
+
.tool-definition-field {
|
|
200
|
+
display: grid;
|
|
201
|
+
grid-template-columns: minmax(88px, 0.75fr) minmax(0, 1.5fr);
|
|
202
|
+
gap: 12px;
|
|
203
|
+
padding: 9px 0;
|
|
204
|
+
border-bottom: 1px solid var(--border);
|
|
205
|
+
font-size: 11px;
|
|
206
|
+
line-height: 1.45;
|
|
207
|
+
}
|
|
208
|
+
.tool-definition-field-name {
|
|
209
|
+
display: flex;
|
|
210
|
+
min-width: 0;
|
|
211
|
+
flex-direction: column;
|
|
212
|
+
gap: 3px;
|
|
213
|
+
color: var(--text);
|
|
214
|
+
}
|
|
215
|
+
.tool-definition-field-name code {
|
|
216
|
+
overflow-wrap: anywhere;
|
|
217
|
+
}
|
|
218
|
+
.tool-definition-field-name span {
|
|
219
|
+
color: var(--text-dim);
|
|
220
|
+
font-size: 10px;
|
|
221
|
+
}
|
|
222
|
+
.tool-definition-field-name span.required {
|
|
223
|
+
color: var(--accent);
|
|
224
|
+
}
|
|
225
|
+
.tool-definition-field-value {
|
|
226
|
+
min-width: 0;
|
|
227
|
+
color: var(--text-muted);
|
|
228
|
+
overflow-wrap: anywhere;
|
|
229
|
+
}
|
|
230
|
+
.tool-definition-type {
|
|
231
|
+
display: block;
|
|
232
|
+
margin-bottom: 3px;
|
|
233
|
+
color: var(--text);
|
|
234
|
+
}
|
|
235
|
+
.tool-definition-meta {
|
|
236
|
+
margin-top: 4px;
|
|
237
|
+
color: var(--text-dim);
|
|
238
|
+
}
|
|
239
|
+
.tool-definition-meta code {
|
|
240
|
+
color: var(--text-muted);
|
|
241
|
+
}
|
|
242
|
+
.tool-definition-no-parameters {
|
|
243
|
+
padding: 2px 0 10px;
|
|
244
|
+
color: var(--text-dim);
|
|
245
|
+
font-size: 11px;
|
|
246
|
+
}
|
|
247
|
+
.tool-definition-guidelines {
|
|
248
|
+
margin: 0;
|
|
249
|
+
padding-left: 18px;
|
|
250
|
+
color: var(--text-muted);
|
|
251
|
+
font-size: 11px;
|
|
252
|
+
line-height: 1.5;
|
|
253
|
+
}
|
|
254
|
+
.tool-definitions-empty {
|
|
255
|
+
padding: 14px 12px;
|
|
256
|
+
color: var(--text-muted);
|
|
257
|
+
font-size: 12px;
|
|
258
|
+
font-style: italic;
|
|
259
|
+
overflow-wrap: anywhere;
|
|
260
|
+
}
|
|
261
|
+
@media (max-width: 640px) {
|
|
262
|
+
.tool-definitions-panel {
|
|
263
|
+
grid-template-columns: 112px minmax(0, 1fr);
|
|
264
|
+
}
|
|
265
|
+
.tool-definitions-item {
|
|
266
|
+
padding: 8px 10px;
|
|
267
|
+
}
|
|
268
|
+
.tool-definition-scroll {
|
|
269
|
+
padding: 12px;
|
|
270
|
+
}
|
|
271
|
+
.tool-definition-field {
|
|
272
|
+
grid-template-columns: minmax(74px, 0.7fr) minmax(0, 1.3fr);
|
|
273
|
+
gap: 9px;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
`})]})}function bi(e){let{usage:t,style:n}=e,{locale:r,t:i}=(0,tw.s)(),s=cN(t.cost);return(0,d.jsxs)("span",{title:function(e,t,n){let{tokens:r}=e;return[`${t("session.totalActive")}: ${cE(e.totalActiveMs)}`,`${t("session.input")}: ${r.input.toLocaleString(n)}`,`${t("session.output")}: ${r.output.toLocaleString(n)}`,...r.cacheRead>0?[`${t("session.cacheRead")}: ${r.cacheRead.toLocaleString(n)}`]:[],...r.cacheWrite>0?[`${t("session.cacheWrite")}: ${r.cacheWrite.toLocaleString(n)}`]:[],`${t("session.total")}: ${r.total.toLocaleString(n)}`,...e.cost>0?[`${t("session.cost")}: $${e.cost.toFixed(4)}`]:[],`${t("session.toolCalls")}: ${e.toolCalls.toLocaleString(n)}`].join("\n")}(t,i,r),style:{display:"flex",alignItems:"center",gap:10,minWidth:0,color:"var(--text-dim)",fontSize:11,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",...n},children:[t.totalActiveMs>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3},children:[(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M12 7v5l3 2"})]}),cE(t.totalActiveMs)]}),t.tokens.total>0&&(0,d.jsx)("span",{children:i("agentSwitcher.tokens",{count:cC(t.tokens.total)})}),s&&(0,d.jsx)("span",{style:{color:"var(--text-muted)"},children:s})]})}function bs(e){return!!(e&&(e.tokens.total>0||e.totalActiveMs>0))}function bo(e){return e.name||e.firstMessage||e.id.slice(0,12)}function bl(e,t){let n=new Date(e).getTime();if(!Number.isFinite(n))return"";let r=Math.round((n-Date.now())/1e3),i=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(r))return i.format(r,"second");let s=Math.round(r/60);if(60>Math.abs(s))return i.format(s,"minute");let o=Math.round(s/60);return 24>Math.abs(o)?i.format(o,"hour"):i.format(Math.round(o/24),"day")}function ba(e){return"running"===e||"starting"===e?"var(--accent)":"completed"===e?"#16a34a":"failed"===e?"#dc2626":"aborted"===e?"#d97706":"var(--text-dim)"}function bc(e){let{status:t}=e;return"running"===t||"starting"===t?(0,d.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"failed"===t?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===t||"interrupted"===t?(0,d.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function bd(e){let{session:t,main:n,selected:r,running:i,usage:s,onSelect:o,tabShown:l,onToggleTab:a,onNewSideChat:c,newSideChatPending:p,onDelete:h,confirming:m,onDeleteConfirm:g,onDeleteCancel:x}=e,{locale:v,t:b}=(0,tw.s)(),y=t.relation?.kind==="subagent"?t.relation:null,w=t.relation?.kind==="side",j=i?"running":y?.status??"completed",k=n?b("agentSwitcher.main"):w?f(t,b("agentSwitcher.sideChat")):y?.description||bo(t),S=w?b("agentSwitcher.sideChat"):y?.profile??b("agentSwitcher.subagent"),C=s?.model?.modelId,N=s?.thinkingLevel&&"off"!==s.thinkingLevel?s.thinkingLevel:void 0,E=n?bo(t):w?bl(t.modified,v):S,$=n?E:[S,s?.model?`${s.model.provider}/${s.model.modelId}`:void 0,N,bl(t.modified,v)].filter(Boolean).join(" \xb7 "),M=(0,u.useRef)(null),[I,T]=(0,u.useState)();return m&&g&&x?(0,d.jsx)("div",{style:{display:"flex",alignItems:"center",gap:5,height:I,minHeight:56,padding:"7px 12px",borderBottom:"1px solid var(--border)",background:"rgba(239, 68, 68, 0.06)",boxShadow:"inset 0 0 0 1px rgba(239, 68, 68, 0.35)"},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),x())},children:(0,d.jsx)(rv,{label:b("sidebar.deleteSession",{title:k}),deleteLabel:b("sidebar.delete"),cancelLabel:b("sidebar.cancel"),onConfirm:g,onCancel:x})}):(0,d.jsxs)("div",{ref:M,style:{display:"flex",borderBottom:"1px solid var(--border)",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",background:r?"var(--bg-selected)":"transparent"},children:[(0,d.jsxs)("button",{type:"button",role:"option","aria-selected":r,onClick:o,className:r?"bg-transparent":"bg-transparent hover:bg-bg-hover",style:{flex:1,minWidth:0,minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,d.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:n?"var(--text-muted)":"var(--accent)"},children:n?(0,d.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,d.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,d.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):w?(0,d.jsx)("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,d.jsx)("path",{d:"M21 12a8 8 0 0 1-8 8H5.5a2 2 0 0 1-1.4-3.4A8 8 0 1 1 21 12z"})}):(0,d.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,d.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,d.jsxs)("span",{style:{minWidth:0},children:[(0,d.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:r?600:500},title:k,children:k}),(0,d.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4,marginTop:2,minWidth:0,whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:$,children:[(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flexShrink:C&&!n?0:1,maxWidth:C&&!n?"40%":void 0},children:E}),!n&&C&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,d.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:C})]}),!n&&N&&(0,d.jsxs)("span",{style:{flexShrink:0},children:["\xb7 ",N]})]}),bs(s)&&(0,d.jsx)(bi,{usage:s,style:{marginTop:3}})]}),(0,d.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:(n||w)&&!i?"var(--text-dim)":ba(j),fontSize:11,whiteSpace:"nowrap"},children:(n||w)&&!i?r?b("agentSwitcher.current"):null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(bc,{status:j}),(0,d.jsx)("span",{children:b(`agentSwitcher.status.${j}`)})]})})]}),c&&(0,d.jsx)(bu,{title:b("sideChat.new"),disabled:p,onClick:c,children:(0,d.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,d.jsx)("path",{d:"M21 12a8 8 0 0 1-8 8H5.5a2 2 0 0 1-1.4-3.4A8 8 0 1 1 21 12z"}),(0,d.jsx)("path",{d:"M13 8.5v7M9.5 12h7"})]})}),a&&(0,d.jsx)(bu,{title:b(r?"agentSwitcher.openInMainChat":l?w?"sideChat.closeTab":"subagent.closeTab":w?"sideChat.openTab":"subagent.openTab"),pressed:l,disabled:r,onClick:a,children:(0,d.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,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,d.jsx)("path",{d:"M15 4v16"}),l&&(0,d.jsx)("path",{d:"M15 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4z",fill:"currentColor"})]})}),h&&(0,d.jsx)(bu,{title:b("sidebar.delete"),danger:!0,onClick:()=>{T(M.current?.offsetHeight),h()},children:(0,d.jsx)(nn,{size:14})})]})}function bu(e){let{title:t,pressed:n,danger:r,disabled:i,onClick:s,children:o}=e,l=i?"cursor-not-allowed text-text-dim opacity-40":r?"cursor-pointer text-text-muted hover:bg-[rgba(239,68,68,0.08)] hover:text-[#ef4444] focus-visible:bg-[rgba(239,68,68,0.08)] focus-visible:text-[#ef4444]":n?"cursor-pointer text-accent hover:bg-bg-hover":"cursor-pointer text-text-muted hover:bg-bg-hover hover:text-text";return(0,d.jsx)("button",{type:"button",onClick:s,title:t,"aria-label":t,"aria-pressed":n,disabled:i,className:`bg-transparent ${l}`,style:{width:36,display:"grid",placeItems:"center",border:"none",borderLeft:"1px solid var(--border)",flexShrink:0},children:o})}function bp(e){let{rootSession:t,subagents:n,selectedSessionId:r,runningSessionIds:i,onSelectSession:s,openSubagentTabIds:o,onToggleSubagentTab:l,onNewSideChat:a,onDeleteSideChat:c}=e,{t:p}=(0,tw.s)(),[h,m]=(0,u.useState)(""),[f,g]=(0,u.useState)(!1),[x,b]=(0,u.useState)(null),[y,w]=(0,u.useState)(null),[j,k]=(0,u.useState)(null),S=async()=>{g(!0),b(null);try{b(await a())}catch(e){b(e instanceof Error?e.message:String(e))}finally{g(!1)}},C=async e=>{let t;w(null),k(null);try{t=await c(e)}catch(e){t=e instanceof Error?e.message:String(e)}t&&k(p("sidebar.deleteFailed",{error:t}))},N=(0,u.useMemo)(()=>[...n].sort((e,t)=>{let n=i.has(e.id);return n!==i.has(t.id)?n?-1:1:t.modified.localeCompare(e.modified)}),[i,n]),E=h.trim().toLowerCase(),$=E?N.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null,n=e.relation?.kind==="side"?p("agentSwitcher.sideChat"):null;return[t?.description,t?.profile,n,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(E))}):N,M=v(n,i),I=(0,u.useMemo)(()=>[t.id,...n.map(e=>e.id)],[t.id,n]),T=I.filter(e=>i.has(e)).join(","),R=function(e,t){let[n,r]=(0,u.useState)({}),i=e.join(",");return(0,u.useEffect)(()=>{let e=i?i.split(","):[];if(0===e.length)return;let n=new AbortController,s=!1,o=async()=>{if(!s){s=!0;try{let t=await fetch("/api/sessions/stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e}),signal:n.signal,cache:"no-store"});if(!t.ok)return;let i=await t.json();!n.signal.aborted&&i.stats&&r(i.stats)}catch{}finally{s=!1}}};if(o(),!t)return()=>n.abort();let l=setInterval(()=>{"visible"===document.visibilityState&&o()},3e3);return()=>{clearInterval(l),n.abort()}},[i,t]),n}(I,T),L=(0,u.useMemo)(()=>{let e=I.map(e=>R[e]).filter(bs);if(0===e.length)return null;let t={tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0,toolCalls:0,totalActiveMs:0};for(let n of e)t.tokens.input+=n.tokens.input,t.tokens.output+=n.tokens.output,t.tokens.cacheRead+=n.tokens.cacheRead,t.tokens.cacheWrite+=n.tokens.cacheWrite,t.tokens.total+=n.tokens.total,t.cost+=n.cost,t.toolCalls+=n.toolCalls,t.totalActiveMs+=n.totalActiveMs;return t},[I,R]);return(0,d.jsx)("div",{role:"listbox","aria-label":p("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,d.jsxs)("div",{children:[(0,d.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:p("agentSwitcher.title")}),n.length>0&&(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:1===n.length?p("agentSwitcher.countOne",{count:n.length}):p("agentSwitcher.count",{count:n.length})}),(0,d.jsxs)("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,minWidth:0},children:[L&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,overflow:"hidden"},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},title:p("agentSwitcher.totalUsageHint"),children:p("agentSwitcher.totalUsage")}),(0,d.jsx)(bi,{usage:L})]}),M>0&&(0,d.jsx)("span",{style:{color:"var(--accent)",fontSize:11,whiteSpace:"nowrap"},children:p("agentSwitcher.runningCount",{count:M})})]})]}),n.length>8&&(0,d.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,d.jsx)("input",{type:"search",value:h,onChange:e=>m(e.target.value),placeholder:p("agentSwitcher.search"),"aria-label":p("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,d.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,d.jsx)(bd,{session:t,main:!0,selected:t.id===r,running:i.has(t.id),usage:R[t.id],onSelect:()=>s(t),onNewSideChat:S,newSideChatPending:f}),(x||j)&&(0,d.jsx)("div",{role:"alert",style:{padding:"6px 12px",borderBottom:"1px solid var(--border)",color:"#dc2626",fontSize:12,overflowWrap:"anywhere"},children:x??j}),$.map(e=>(0,d.jsx)(bd,{session:e,selected:e.id===r,running:i.has(e.id),usage:R[e.id],onSelect:()=>s(e),tabShown:o.has(e.id),onToggleTab:()=>{let t=e.relation?.kind==="subagent"?e.relation:null;e.relation?.kind==="side"?l(e.id,p("sideChat.title"),!0):l(e.id,t?.description||t?.profile||bo(e))},onDelete:e.relation?.kind==="side"?()=>w(e.id):void 0,confirming:y===e.id,onDeleteConfirm:()=>{C(e.id)},onDeleteCancel:()=>w(null)},e.id)),n.length>0&&0===$.length&&(0,d.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:p("agentSwitcher.noMatches")})]})]})})}let bh={idle:"debug.stream.state.idle",connecting:"debug.stream.state.connecting",connected:"debug.stream.state.connected",retrying:"debug.stream.state.retrying"},bm={ready_timeout:"debug.stream.error.readyTimeout",startup_error:"debug.stream.error.startup",error:"debug.stream.error.error",stale:"debug.stream.error.stale"},bf={visible:"debug.stream.reattach.visible",activity:"debug.stream.reattach.activity"},bg={agent:"debug.page.source.agent","file-watch":"debug.page.source.fileWatch",terminal:"debug.page.source.terminal"},bx={connecting:"debug.page.source.connecting",open:"debug.page.source.open"},bv={reply:"debug.lease.outcome.reply",unanswered:"debug.lease.outcome.unanswered",error:"debug.lease.outcome.error"},bb={alive:"debug.state.alive",closing:"debug.state.closing",none:"debug.state.none"},by={timeout:"debug.poll.timeout",http:"debug.poll.http",network:"debug.poll.network",invalid:"debug.poll.invalid"},bw={starting:"agentSwitcher.status.starting",queued:"debug.run.status.queued",running:"agentSwitcher.status.running",completed:"agentSwitcher.status.completed",failed:"agentSwitcher.status.failed",aborted:"agentSwitcher.status.aborted",interrupted:"agentSwitcher.status.interrupted",unknown:"debug.unknown"},bj={released:"debug.stream.close.released",grace_end:"debug.stream.close.graceEnd",send_failed:"debug.stream.close.sendFailed",set_tools:"debug.stream.close.setTools",rebuilt:"debug.stream.close.rebuilt",deselected:"debug.stream.close.deselected",stuck:"debug.stream.close.stuck",replaced:"debug.stream.close.replaced"};function bk(e,t,n){return Object.prototype.hasOwnProperty.call(t,e)?n(t[e]):e}function bS(e){return Number.isFinite(e)?Math.max(0,e):0}function bC(e){return String(e).padStart(2,"0")}function bN(e,t){let n=bS(e);return n<1e3?t("debug.duration.ms",{count:Math.floor(n)}):n<6e4?t("debug.duration.seconds",{count:Math.floor(n/1e3)}):n<36e5?t("debug.duration.minutesSeconds",{minutes:Math.floor(n/6e4),seconds:bC(Math.floor(n%6e4/1e3))}):n<864e5?t("debug.duration.hoursMinutes",{hours:Math.floor(n/36e5),minutes:bC(Math.floor(n%36e5/6e4))}):t("debug.duration.daysHours",{days:Math.floor(n/864e5),hours:Math.floor(n%864e5/36e5)})}function bE(e,t){return t("debug.time.ago",{time:bN(e,t)})}function b$(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"floor",r=Math[n](bS(e)/1e3);return r<60?t("debug.duration.seconds",{count:r}):bN(1e3*r,t)}function bM(e,t){return e>0?t("debug.time.in",{time:b$(e,t,"ceil")}):t("debug.time.due")}function bI(e,t){return e>0?t("debug.time.in",{time:bN(e,t)}):t("debug.time.due")}function bT(e){return e.length>8?e.slice(0,8):e}function bR(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function bL(e){return"number"==typeof e&&Number.isFinite(e)}function bA(e){var t;return bR(e)&&"string"==typeof e.sessionId&&"string"==typeof e.state&&bL(e.eventStreams)&&(null===(t=e.nextIdleCheckAt)||bL(t))}function bP(e,t){try{return e()}catch{return t}}function bz(e){if(!e)return{client:null,failed:!1};try{return{client:e()??null,failed:!1}}catch{return{client:null,failed:!0}}}function bW(e,t){return e?.sessionId??t}let bO={sessionId:null,reply:null,receivedAt:null,roundTripMs:null,failure:null,requests:0,failures:0,consecutiveFailures:0},bF=e=>e.filter(Boolean).join(" \xb7 ");function bD(e,t,n){return null===e?n("debug.holder.none"):`${n(e===t?"debug.holder.thisPage":"debug.holder.otherPage")} ${bT(e)}`}function bB(e,t){let n=e.filter(e=>null!==e.holder&&e.holder===t);return[...n,...e.filter(e=>!n.includes(e))]}let b_={running:"debug.overlay.running",awaiting:"debug.overlay.awaiting",alive:"debug.state.alive",closing:"debug.state.closing",none:"debug.state.none",starting:"debug.server.starting"};function bH(e){return e.awaitingInput?"awaiting":e.running?"running":e.state}function bU(e,t){return null===e.label?"—":"agent"===e.kind?t?.(e.label)??bT(e.label):ei(e.label)}function bq(e,t){if(!(t>0))return null;let n=e/t;return Number.isFinite(n)?Math.min(1,Math.max(0,n)):0}function bK(e,t){if(!e||"connected"!==e.state||!e.watchdogArmed)return null;let n=e.staleAfterMs;return null!==n&&n>0&&null!==e.lastSeenAt?{ageMs:Math.max(0,t-e.lastSeenAt),staleAfterMs:n}:null}function bV(e,t){return t>0?e>=t?"error":e>=t/2?"warning":"dim":"dim"}let bZ={poll:[],running:[]};function bJ(e){let t=bS(e);return{ms:t,tone:t>=2e3?"warning":"dim",failed:!1}}function bY(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,r=[...e,t];return r.length>n?r.slice(r.length-n):r}function bG(e){let t=Date.parse(e.modified);return Number.isFinite(t)?t:-1/0}function bX(e,t){return e===t?0:t>e?1:-1}class bQ extends u.Component{static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error("Debug panel failed:",e)}render(){return this.state.failed?(0,d.jsx)("div",{role:"status",style:{padding:"10px 16px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",color:"var(--text-muted)",fontSize:12},children:this.props.fallback}):this.props.children}constructor(...e){super(...e),this.state={failed:!1}}}function b0(e){let{readerRef:t,selectedSessionId:n,sessions:r,onClose:i}=e,{t:s}=(0,tw.s)(),o=(0,u.useRef)(n);o.current=n;let l=(0,u.useRef)(i);l.current=i;let a=(0,u.useRef)(null),c=(0,u.useRef)(!1),p=(0,u.useRef)(null),h=(0,u.useRef)(null),m=(0,u.useRef)(null),[f,g]=(0,u.useState)(null),[x,v]=(0,u.useState)(bO),[b,y]=(0,u.useState)(bZ),[w,j]=(0,u.useState)(!1),[k,S]=(0,u.useState)(null),C=(0,u.useRef)({page:f,server:x,samples:b});C.current={page:f,server:x,samples:b},(0,u.useEffect)(()=>{let e=h.current;if(!e)return;let t=null,n=n=>{if("mouse"!==n.pointerType)return;let r=n.target instanceof Element?n.target.closest("[title]"):null,i=r&&e.contains(r)?r:null;i!==t&&(t=i,S(i?C.current:null))},r=()=>{t=null,S(null)};return e.addEventListener("pointerover",n),e.addEventListener("pointerleave",r),()=>{e.removeEventListener("pointerover",n),e.removeEventListener("pointerleave",r)}},[]),(0,u.useEffect)(()=>{var e;let n,r,i,s,l,d,u,h,f;c.current=!1;let x=(r=(e={fetch:(e,t)=>fetch(e,t),sessionId:()=>bW(bz(t.current).client,o.current),isVisible:()=>"visible"===document.visibilityState,onReading:e=>{v(e);let t=function(e){if(e.failure){let t="timeout"===e.failure.kind;return{ms:5e3*!!t,tone:t?"warning":"error",failed:!0}}return null===e.roundTripMs?null:bJ(e.roundTripMs)}(e);t&&y(e=>({...e,poll:bY(e.poll,t)}))}}).now??(()=>Date.now()),i=e.setTimeout??((e,t)=>setTimeout(e,t)),s=e.clearTimeout??(e=>clearTimeout(e)),l=!1,d=null,u=bO,h=async t=>{let o=new AbortController,a={sessionId:t,controller:o,startedAt:r()};d=a,n=t;let c=!1,p=i(()=>{c=!0,o.abort()},5e3),h=null,m=null;try{var f,g;let n=await e.fetch(t?`/api/agent/debug?session=${encodeURIComponent(t)}`:"/api/agent/debug",{cache:"no-store",signal:o.signal});if(n.ok){let e=null;try{e=await n.json()}catch(e){if(o.signal.aborted)throw e}(f=e,bR(f)&&bL(f.now)&&bR(g=f.server)&&bL(g.startedAt)&&bR(g.wrappers)&&bR(g.eventStreams)&&bL(g.sseTotal)&&Array.isArray(g.pages)&&bR(g.terminals)&&Array.isArray(f.sessions)&&f.sessions.every(bA)&&(null===f.session||function(e){if(!bR(e)||"string"!=typeof e.sessionId)return!1;let t=e.wrapper,n=e.subagents,r=e.mcp;return(null===t||bR(t)&&"string"==typeof t.state&&bR(t.run)&&bR(t.idle))&&(null===e.lifecycle||bR(e.lifecycle))&&(null===e.providers||Array.isArray(e.providers))&&Array.isArray(e.eventStreams)&&bR(n)&&Array.isArray(n.runs)&&Array.isArray(n.notifications)&&(null===r||bR(r)&&Array.isArray(r.servers))}(f.session)))?h=e:m={kind:"invalid",status:n.status}}else m={kind:"http",status:n.status}}catch{m={kind:c?"timeout":"network",status:null}}finally{s(p),d===a&&(d=null)}if(l||o.signal.aborted&&!c||e.sessionId()!==t)return;let x=r(),v=u.sessionId===t;u=h?{sessionId:t,reply:h,receivedAt:x,roundTripMs:Math.max(0,x-a.startedAt),failure:null,requests:u.requests+1,failures:u.failures,consecutiveFailures:0}:{sessionId:t,reply:v?u.reply:null,receivedAt:v?u.receivedAt:null,roundTripMs:v?u.roundTripMs:null,failure:{...m??{kind:"invalid",status:null},at:x},requests:u.requests+1,failures:u.failures+1,consecutiveFailures:u.consecutiveFailures+1},e.onReading(u)},{poll:f=()=>{if(l||!e.isVisible())return;let t=e.sessionId();if(d){if(d.sessionId===t)return;d.controller.abort()}h(t)},sync(){l||(d?d.sessionId:n)!==e.sessionId()&&f()},inFlightSince:()=>d?.startedAt??null,dispose(){l=!0,d?.controller.abort(),d=null}});a.current=x;let b=()=>{let e=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),{client:r,failed:i}=bz(e);return{at:n,client:r,clientFailed:i,sources:bP(to,[]),visibility:bP(tc,null),protocol:bP(tp,null),runningPoll:bP(tu,null),pollInFlightSince:t}}(t.current,x.inFlightSince());g(e);let n=e.runningPoll?.last??null;if(n&&n.at!==m.current){m.current=n.at;let e=n&&"aborted"!==n.outcome?"error"===n.outcome?{ms:bS(n.durationMs),tone:"error",failed:!0}:bJ(n.durationMs):null;e&&y(t=>({...t,running:bY(t.running,e)}))}};b(),x.poll();let w=window.setInterval(()=>{"visible"===document.visibilityState&&(b(),x.sync())},1e3),j=window.setInterval(()=>x.poll(),2e3),k=()=>{"visible"===document.visibilityState&&(b(),x.poll())};return document.addEventListener("visibilitychange",k),()=>{c.current=!0,x.dispose(),a.current=null,window.clearInterval(w),window.clearInterval(j),document.removeEventListener("visibilitychange",k),p.current&&clearTimeout(p.current)}},[t]),(0,u.useEffect)(()=>{a.current?.sync()},[n]),(0,u.useEffect)(()=>{var e,t,n;let r=(e=document,t=()=>h.current,n=e=>l.current(e),r=>{var i;if(i=null!==e.querySelector('[aria-modal="true"]'),"Escape"!==r.key||r.defaultPrevented||r.cancelBubble||r.isComposing||229===r.keyCode||i)return;r.preventDefault();let s=e.activeElement;n(!!(s&&t()?.contains(s)))});return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[]);let N=k??{page:f,server:x,samples:b};return(0,d.jsx)(b1,{page:N.page,server:N.server,samples:N.samples,selectedSessionId:n,sessions:r,copied:w,onCopy:()=>{let e={client:f,server:x.reply};j(!1),iN(JSON.stringify(e,null,2)).then(()=>{c.current||(p.current&&clearTimeout(p.current),j(!0),p.current=setTimeout(()=>j(!1),1400))},()=>{})},t:s,sectionRef:h})}function b1(e){var t;let n,{page:r,server:i,samples:s=bZ,selectedSessionId:o,sessions:l,copied:a,onCopy:c,t:p,sectionRef:h}=e,m=r?.at??i.receivedAt??0,f=r?.client??null,g=bW(f,o),x=i.reply,v=x&&null!==i.receivedAt?(t=x.now,n=Math.max(0,m-i.receivedAt),{remaining:e=>e-t-n,age:e=>t-e+n}):null,b=x?.session&&x.session.sessionId===g?x.session:null,y=f?.pageId??null,w=(0,u.useMemo)(()=>new Map(l.map(e=>[e.id,e])),[l]),j=(0,u.useMemo)(()=>e=>{let t=w.get(e);return t?rp(t):null},[w]),k=(0,u.useMemo)(()=>x?function(e,t,n){let r=e=>{let n=e,r=new Set([e.id]);for(let i=0;i<32;i++){let i=n.relation;if(i?.kind!=="subagent")break;let s=t.get(i.parentSessionId);if(!s)break;if(r.has(s.id))return e;r.add(s.id),n=s}return n},i=new Map,s=[];for(let n of e){let e=t.get(n.sessionId);if(!e){s.push(n);continue}let o=r(e),l=i.get(o.id);l||(l={root:o,summary:null,subagents:[]},i.set(o.id,l)),o.id===e.id?l.summary=n:l.subagents.push({info:e,summary:n})}let o=null===n?void 0:t.get(n),l=o?r(o).id:null,a=(e,t)=>bX(bG(e.root),bG(t.root)),c=(e,t)=>Number(t.root.id===l)-Number(e.root.id===l),d=new Map;for(let e of i.values()){let t=C(e.root),n=d.get(t);n||(n={key:t,name:ei(e.root.projectRoot??e.root.cwd),families:[]},d.set(t,n)),n.families.push(e)}let u=e=>Math.max(...e.families.map(e=>bG(e.root))),p=e=>e.families.some(e=>e.root.id===l),h=[...d.values()].sort((e,t)=>Number(p(t))-Number(p(e))||bX(u(e),u(t))).map(e=>{let t=[];for(let r of[...e.families].sort(a).sort(c))for(let{info:e,summary:i}of(t.push({id:r.root.id,depth:0,info:r.root,summary:r.summary,current:r.root.id===n,placeholder:null===r.summary}),[...r.subagents].sort((e,t)=>bX(bG(e.info),bG(t.info)))))t.push({id:e.id,depth:1,info:e,summary:i,current:e.id===n,placeholder:!1});return{key:e.key,name:e.name,rows:t}});if(s.length>0){let e=null!==n&&!o&&s.some(e=>e.sessionId===n),t=(e,t)=>e<t?-1:+(e>t),r={key:"\0unlisted",name:null,rows:[...s].sort((e,r)=>Number(r.sessionId===n)-Number(e.sessionId===n)||t(bT(e.sessionId),bT(r.sessionId))||t(e.sessionId,r.sessionId)).map(e=>({id:e.sessionId,depth:0,info:null,summary:e,current:e.sessionId===n,placeholder:!1}))};e?h.unshift(r):h.push(r)}return h}(x.sessions,w,g):null,[x,w,g]),S=r?function(e){let{page:t,server:n,detail:r,t:i,titleOf:s}=e,o=t.at,l=[],a=(e,t,n)=>{l.push({id:e,tone:t,text:bF(n)})},c=n.failure;c?a("poll","timeout"===c.kind?"warning":"error",[i(by[c.kind],{status:c.status??"?"}),bE(o-c.at,i)]):null!==t.pollInFlightSince&&o-t.pollInFlightSince>=2e3&&a("poll","warning",[i("debug.poll.inFlight",{time:bN(o-t.pollInFlightSince,i)})]),t.clientFailed&&a("reader","error",[i("debug.stream.readerFailed")]);let d=t.runningPoll?.last??null;d?.outcome==="error"&&a("runningPoll","warning",[i("debug.page.runningPoll"),i("debug.page.poll.error"),null!==d.httpStatus&&`HTTP ${d.httpStatus}`,bE(o-d.at,i)]);let u=t.sources.filter(e=>"open"===e.state).length;"http/1.1"===t.protocol&&u>=5&&a("pool",u>=6?"error":"warning",[i("debug.issue.pool",{count:u})]);let p=t.client,h=p?.connection??null,m=h?.sessionId??null;for(let e of t.sources)"connecting"===e.state&&0!==e.errors&&("agent"!==e.kind||null===m||e.label!==m)&&a("source","warning",[i(bg[e.kind]),bU(e,s),i("debug.page.source.connecting"),i("debug.page.sourceCounts",{opens:e.opens,errors:e.errors})]);if(h){let e=null!==h.retryDueAt&&i("debug.stream.retryDue",{time:bI(h.retryDueAt-o,i)}),t=h.lastError;t&&"connected"!==h.state&&!(h.lastClose&&h.lastClose.at>=t.at)?a("stream","error",[bk(t.reason,bm,i),t.message,bE(o-t.at,i),e]):"retrying"===h.state&&a("stream","warning",[i(bh.retrying),e]);let n=bK(h,o),r=n?bV(n.ageMs,n.staleAfterMs):"dim";n&&"dim"!==r&&a("streamSilent",r,[`${i("debug.stream.lastData")} ${bE(n.ageMs,i)}`])}let f=p?.pageId??null,g=null!==n.receivedAt?n.receivedAt-(n.roundTripMs??0):null;for(let e of(r&&f&&h&&null!==g&&"connected"===h.state&&h.sessionId===r.sessionId&&null!==h.connectedAt&&h.connectedAt<g&&!r.eventStreams.some(e=>e.holder===f)&&a("noServerStream","warning",[i("debug.issue.noServerStream")]),r?.eventStreams??[]))e.droppedEvents>0&&a("dropped","warning",[bD(e.holder,f,i),i("debug.server.dropped",{count:e.droppedEvents})]);let x=p?.lease??null;if(x){let e=x.last;null!==x.inFlightSince&&o-x.inFlightSince>=2e3?a("lease","warning",[i("debug.section.lease"),i("debug.lease.inFlight",{time:bN(o-x.inFlightSince,i)})]):e?.outcome==="error"?a("lease","error",[i("debug.section.lease"),i(bv.error),null!==e.httpStatus&&`HTTP ${e.httpStatus}`,bE(o-e.at,i)]):e?.outcome==="unanswered"&&a("lease","warning",[i("debug.section.lease"),i(bv.unanswered),bE(o-e.at,i)])}let v=r?.wrapper??null;for(let e of(v&&!v.stale&&"failed"===v.extensions&&a("extensions","error",[i("debug.server.extensions"),i("debug.server.extensions.failed")]),r?.providers??[]))"error"===e.active&&a("provider","error",[e.name,i("debug.server.providerError")]);for(let e of r?.mcp?.servers??[])(e.hasError||"failed"===e.state||"conflict"===e.state)&&a("mcp","error",[`MCP ${e.name}`,bk(e.state,ma,i)]);return l.sort((e,t)=>Number("error"===t.tone)-Number("error"===e.tone))}({page:r,server:i,detail:b,t:p,titleOf:j}):[],N=null===r?{kind:"reading",tone:"dim",count:0}:r.visibility?.state==="hidden"?{kind:"hidden",tone:"dim",count:0}:S.length>0?{kind:"issues",tone:S.some(e=>"error"===e.tone)?"error":"warning",count:S.length}:null===i.receivedAt?{kind:"waiting",tone:"dim",count:0}:{kind:"ok",tone:"ok",count:0},E={t:p,now:m,clock:v,myHolder:y,titleOf:j};return(0,d.jsxs)("section",{ref:h,className:"debug-panel","aria-label":p("debug.panelLabel"),children:[(0,d.jsxs)("div",{className:"debug-panel-header",children:[(0,d.jsx)("span",{className:"debug-panel-heading",title:p("debug.readOnly"),children:p("debug.title")}),(0,d.jsx)(yr,{verdict:N,t:p}),(0,d.jsx)("button",{type:"button",className:"debug-panel-copy",onClick:c,title:p("debug.copyTitle"),children:p(a?"debug.copied":"debug.copyJson")})]}),null!==r&&(0,d.jsxs)("div",{className:"debug-panel-scroll",children:[S.length>0&&(0,d.jsx)(yi,{issues:S}),(0,d.jsxs)("div",{className:"debug-cols",children:[(0,d.jsx)(yl,{page:r,samples:s,reply:x,ctx:E}),(0,d.jsxs)("div",{className:"debug-col debug-col-server",children:[(0,d.jsx)(yf,{reply:x,ctx:E}),(0,d.jsx)(yg,{reply:x,ctx:E})]}),(0,d.jsx)("div",{className:"debug-col debug-col-sessions",children:(0,d.jsx)(yx,{reply:x,detail:b,groups:k,targetSessionId:g,sources:r.sources,ctx:E})})]})]}),(0,d.jsx)("style",{children:yI})]})}function b2(e){let{kind:t,size:n=12}=e;return(0,d.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:["server"===t&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"8",rx:"2"}),(0,d.jsx)("rect",{x:"3",y:"13",width:"18",height:"8",rx:"2"}),(0,d.jsx)("path",{d:"M7 7h.01M7 17h.01"})]}),"warning"===t&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"}),(0,d.jsx)("path",{d:"M12 9v4"}),(0,d.jsx)("path",{d:"M12 17h.01"})]}),"error"===t&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M15 9l-6 6M9 9l6 6"})]})]})}function b4(e,t){return["debug-badge",t,`is-${e.tone}`,e.filled&&"is-filled",e.dashed&&"is-dashed",e.faded&&"is-faded"].filter(Boolean).join(" ")}function b8(e){let{text:t,items:n,cap:r,label:i,plain:s=!1}=e;return 0===n.length?null:(0,d.jsxs)("span",{className:"debug-run",title:i,...s?{}:{role:"img","aria-label":i},children:[n.slice(0,r).map((e,n)=>(0,d.jsx)("span",{className:b4(e,void 0!==e.text?"is-name":void 0),title:e.title,children:e.text??t},n)),n.length>r&&(0,d.jsx)("span",{className:"debug-run-more",children:`+${n.length-r}`})]})}let b3={Chrome:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M21.17 8H12M3.95 6.06 8.54 14M10.88 21.94 15.46 14"})]}),Safari:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("path",{d:"M16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88z"})]}),Firefox:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("path",{d:"M12 17a3.5 3.5 0 0 0 3.5-3.5c0-2.5-2-3.5-2.5-6-1.5 1.5-1 3-2 3.5-.5-.5-1-1-1-2-1.5 1-1.5 2.5-1.5 4.5A3.5 3.5 0 0 0 12 17z"})]}),Edge:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 1 0-4.5 7.8"}),(0,d.jsx)("path",{d:"M7 13.5c0-3 2.5-5 5.5-5 2.5 0 4.5 1.5 4.5 3.5 0 1.3-1 2-2.5 2H10"})]}),Opera:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("ellipse",{cx:"12",cy:"12",rx:"4",ry:"7"})]}),macOS:(0,d.jsx)(b6,{}),iOS:(0,d.jsx)(b6,{}),Windows:(0,d.jsx)("path",{fill:"currentColor",stroke:"none",d:"M0 0h11.377v11.372H0zm12.623 0H24v11.372H12.623zM0 12.623h11.377V24H0zm12.623 0H24V24H12.623z"}),Android:(0,d.jsx)("path",{d:"M4.5 18a7.5 7.5 0 0 1 15 0zM8 12 6.5 9.5M16 12l1.5-2.5M9.5 15h.01M14.5 15h.01"}),Linux:(0,d.jsx)("path",{d:"m4 17 6-5-6-5M12 19h8"}),ChromeOS:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"12",rx:"2"}),(0,d.jsx)("path",{d:"M2 20h20"})]})};function b6(){return(0,d.jsx)("path",{fill:"currentColor",stroke:"none",d:"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"})}function b5(e){let{client:t}=e,n=t?t.split(" \xb7 ").filter(e=>e in b3):[];return 0===n.length?null:(0,d.jsx)("span",{className:"debug-client","aria-hidden":"true",children:n.map(e=>(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round",children:b3[e]},e))})}function b9(e){let{tone:t,ring:n=!1}=e;return(0,d.jsx)("span",{className:`debug-dot is-${t}${n?" is-ring":""}`,"aria-hidden":"true"})}function b7(e){let{tone:t,children:n,title:r}=e;return(0,d.jsx)("span",{className:`debug-chip is-${t}`,title:r,children:n})}function ye(e){let{fraction:t,tone:n,width:r,height:i=4,notches:s,title:o,className:l}=e;return(0,d.jsxs)("span",{className:`debug-bar is-${n}${l?` ${l}`:""}`,style:{width:r,height:i},title:o,"aria-hidden":"true",children:[(0,d.jsx)("span",{className:"debug-bar-fill",style:{width:`${100*t}%`}}),s?.map(e=>(0,d.jsx)("span",{className:"debug-bar-notch",style:{left:`${100*e}%`}},e))]})}function yt(e){let{samples:t,label:n}=e,r=t.slice(-30);return(0,d.jsx)("span",{className:"debug-spark",role:"img","aria-label":n,title:n,children:(0,d.jsxs)("svg",{width:"120",height:"15",viewBox:"0 0 120 15","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"0",y:"14",width:"120",height:"1",style:{fill:"var(--border)"}}),r.map((e,t)=>{let n=e.failed?14:Math.max(1,Math.round(14*Math.min(1,Math.max(.08,Math.sqrt(bS(e.ms)/5e3)))));return(0,d.jsx)("rect",{className:`is-${e.tone}`,x:120-(r.length-t)*4+1,y:14-n,width:"3",height:n,fill:"currentColor"},t)})]})})}function yn(e){let{state:t,label:n}=e;return"awaiting"===t?(0,d.jsx)("span",{className:"debug-status",children:(0,d.jsx)("span",{className:"session-tree-awaiting",role:"img","aria-label":n,title:n})}):"running"===t?(0,d.jsx)("span",{className:"debug-status is-accent",title:n,children:(0,d.jsx)(nb,{size:12,label:n})}):(0,d.jsx)("span",{className:"debug-status",role:"img","aria-label":n,title:n,children:(0,d.jsx)("span",{className:`debug-status-ring is-${t}`})})}function yr(e){let{verdict:t,t:n}=e,r=({reading:()=>n("debug.reading"),hidden:()=>n("debug.poll.hidden"),issues:()=>n("debug.health.issues",{count:t.count}),waiting:()=>n("debug.poll.waiting"),ok:()=>n("debug.health.ok")})[t.kind]();return(0,d.jsxs)("span",{className:`debug-panel-status is-${"ok"===t.kind?"muted":t.tone}`,children:["issues"===t.kind&&(0,d.jsx)(b2,{kind:"error"===t.tone?"error":"warning"}),"ok"===t.kind&&(0,d.jsx)(b9,{tone:"ok"}),("hidden"===t.kind||"waiting"===t.kind)&&(0,d.jsx)(b9,{tone:"dim",ring:!0}),(0,d.jsx)("span",{className:"debug-panel-status-text",children:r})]})}function yi(e){let{issues:t}=e;return(0,d.jsx)("ul",{className:"debug-issues",children:t.map((e,t)=>(0,d.jsxs)("li",{className:`debug-issue is-${e.tone}`,children:[(0,d.jsx)(b2,{kind:e.tone}),(0,d.jsx)("span",{className:"debug-issue-text",children:e.text})]},`${e.id}:${t}`))})}function ys(e,t){let n=function(e){let t=e.filter(e=>!e.failed).map(e=>e.ms).sort((e,t)=>e-t);if(0===t.length)return{count:0,median:0,max:0};let n=Math.floor(t.length/2),r=t.length%2==1?t[n]:(t[n-1]+t[n])/2;return{count:t.length,median:r,max:t[t.length-1]}}(e);return 0===n.count?t("debug.notYet"):t("debug.spark.title",{count:n.count,median:bN(n.median,t),max:bN(n.max,t)})}function yo(e){let{samples:t,t:n}=e,r=t[t.length-1];return r?(0,d.jsx)("span",{className:`debug-value is-${r.tone}`,children:r.failed?"—":bN(r.ms,n)}):(0,d.jsx)("span",{className:"debug-value is-dim",children:"—"})}function yl(e){let{page:t,samples:n,reply:r,ctx:i}=e,{t:s}=i,o=function(e,t,n){let r=[...e].sort((e,t)=>e.createdAt-t.createdAt).map(e=>({id:e.id,kind:e.kind,label:e.label,chat:"agent"===e.kind&&null!==n&&e.label===n,connecting:"connecting"===e.state,opens:e.opens,errors:e.errors,createdAt:e.createdAt})),i="http/1.1"===t?6:null,s=r.length,o=r.filter(e=>!e.connecting).length,l={agent:0,"file-watch":0,terminal:0};for(let e of r)l[e.kind]=(l[e.kind]??0)+1;return{protocol:t,cap:i,slots:null===i?r:r.slice(0,i),mine:s,overflow:null===i?0:Math.max(0,s-i),kinds:l,tone:null===i?"dim":o>=i?"error":o>=i-1?"warning":"dim"}}(t.sources,t.protocol,t.client?.connection?.sessionId??null),l=t.runningPoll;return(0,d.jsxs)("div",{className:"debug-col debug-col-page",children:[(0,d.jsx)("div",{className:"debug-col-head",children:(0,d.jsx)("span",{className:"debug-section-title",children:s("debug.section.page")})}),(0,d.jsx)(ya,{pool:o,ctx:i}),(0,d.jsxs)("div",{className:"debug-measures",children:[(0,d.jsx)("span",{className:"debug-measure-name",children:(0,d.jsx)("span",{className:"debug-label",children:s("debug.page.debugPoll")})}),(0,d.jsx)(yt,{samples:n.poll,label:ys(n.poll,s)}),(0,d.jsx)(yo,{samples:n.poll,t:s}),(0,d.jsx)("span",{className:"debug-measure-name",children:(0,d.jsx)("span",{className:"debug-label",children:s("debug.page.runningPoll")})}),(0,d.jsx)(yt,{samples:n.running,label:bF([l&&s("debug.page.pollCounts",{count:l.count,failures:l.failures}),ys(n.running,s)])}),(0,d.jsx)(yo,{samples:n.running,t:s}),(0,d.jsx)(yp,{page:t,reply:r,ctx:i}),(0,d.jsx)(ym,{page:t,ctx:i})]})]})}function ya(e){let{pool:t,ctx:n}=e,{t:r,now:i,titleOf:s}=n,o=Object.keys(bg).filter(e=>t.kinds[e]>0).map(e=>`${r(bg[e])} ${t.kinds[e]}`),l=null!==t.cap?bF([`${r("debug.page.http1",{protocol:t.protocol??""})} \xb7 ${t.mine}/${t.cap}`,...o]):bF([r("debug.section.page"),...o,t.protocol??r("debug.unknown")]),a=null!==t.cap?Array.from({length:t.cap},(e,n)=>t.slots[n]??null):t.slots;return(0,d.jsxs)("div",{className:"debug-meter-row",children:[(0,d.jsxs)("span",{className:`debug-meter${null===t.cap?" is-inline":""}`,role:"img","aria-label":l,title:l,children:[a.map((e,t)=>e?(0,d.jsx)("span",{className:b4({tone:e.connecting?"warning":e.chat?"accent":"muted",filled:e.chat,dashed:e.connecting},"debug-slot"),title:bF([r(bg[e.kind]),bU(e,s),r(bx[e.connecting?"connecting":"open"]),r("debug.page.sourceCounts",{opens:e.opens,errors:e.errors}),bE(i-e.createdAt,r)]),children:"agent"===e.kind?"SSE":r(yc[e.kind])},e.id):(0,d.jsx)("span",{className:"debug-slot is-empty"},`empty:${t}`)),t.overflow>0&&(0,d.jsx)("span",{className:"debug-meter-overflow is-error",children:`+${t.overflow}`})]}),null===t.cap&&null!==t.protocol&&(0,d.jsx)(b7,{tone:"dim",children:t.protocol})]})}let yc={"file-watch":"debug.box.file",terminal:"debug.box.terminal"},yd={connected:{tone:"ok",ring:!1},connecting:{tone:"warning",ring:!0},retrying:{tone:"warning",ring:!1},idle:{tone:"dim",ring:!0}};function yu(e,t,n,r){let i=n.at,s=[null!==t.readyState&&r("debug.stream.readyState",{value:t.readyState}),null!==t.openedAt&&`${r("debug.stream.opened")} ${bE(i-t.openedAt,r)}`,null!==t.connectedAt&&`${r("debug.stream.connected")} ${bE(i-t.connectedAt,r)}`,`${r("debug.stream.opens")} ${r("debug.stream.opensRetries",{opens:t.opens,retries:t.retries})}`,null!==t.lastError&&`${r("debug.stream.lastError")} ${bF([bk(t.lastError.reason,bm,r),t.lastError.message,bE(i-t.lastError.at,r)])}`,null!==t.lastClose&&`${r("debug.stream.lastClose")} ${bF([t.lastClose.reason?bk(t.lastClose.reason,bj,r):"—",bE(i-t.lastClose.at,r)])}`,`${r("debug.stream.wanted")} ${r(e.wantsStream?"debug.yes":"debug.no")}`],o=n.visibility;return o&&o.hiddenCount>0&&s.push(bF([r("debug.page.hiddenCount",{count:o.hiddenCount}),null!==o.lastHiddenAt&&r("debug.page.lastHidden",{time:bE(i-o.lastHiddenAt,r)})])),e.released.count>0&&s.push(`${r("debug.stream.released")} ${bF([r("debug.times",{count:e.released.count}),null!==e.released.lastAt&&bE(i-e.released.lastAt,r)])}`),e.reattached.count>0&&s.push(`${r("debug.stream.reattached")} ${bF([r("debug.times",{count:e.reattached.count}),null!==e.reattached.lastAt&&bE(i-e.reattached.lastAt,r),e.reattached.lastReason&&r(bf[e.reattached.lastReason])])}`),s.filter(Boolean).join("\n")}function yp(e){let{page:t,reply:n,ctx:r}=e,{t:i,now:s}=r,o=t.client,l=o?.connection??null,a=(0,d.jsx)("span",{className:"debug-measure-name",title:o&&l?yu(o,l,t,i):void 0,children:(0,d.jsx)("span",{className:"debug-label",children:i("debug.section.stream")})});if(!o||!l)return(0,d.jsxs)(d.Fragment,{children:[a,(0,d.jsx)("span",{className:"debug-measure-empty",children:o?i("debug.stream.noConnection"):t.clientFailed?"—":i("debug.stream.noChat")})]});let c=bK(l,s),u=yd[l.state];return(0,d.jsxs)(d.Fragment,{children:[a,c?(0,d.jsx)(yh,{connection:l,freshness:c,heartbeatMs:n?.server.heartbeatMs??0,ctx:r}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{}),(0,d.jsx)("span",{className:"debug-value is-dim",children:"—"})]}),(0,d.jsxs)("span",{className:"debug-measure-sub",title:yu(o,l,t,i),children:[(0,d.jsx)(b9,{tone:u?.tone??"dim",ring:u?.ring??!0}),bF([i(bh[l.state]??"debug.unknown"),`${i("debug.stream.events")} ${l.events}`,l.retries>0&&`${i("debug.stream.opens")} ${i("debug.stream.opensRetries",{opens:l.opens,retries:l.retries})}`])]}),(o.released.active||null!==o.graceDueAt)&&(0,d.jsxs)("span",{className:"debug-measure-sub debug-chips",children:[o.released.active&&(0,d.jsx)(b7,{tone:"accent",children:i("debug.stream.close.released")}),null!==o.graceDueAt&&(0,d.jsx)(b7,{tone:"accent",children:`${i("debug.stream.grace")} ${bM(o.graceDueAt-s,i)}`})]})]})}function yh(e){let{connection:t,freshness:n,heartbeatMs:r,ctx:i}=e,{t:s,now:o}=i,{ageMs:l,staleAfterMs:a}=n,c=bV(l,a),u=[];if(r>0)for(let e=r;e<a&&u.length<12;e+=r)u.push(e/a);let p=bF([`${s("debug.stream.lastData")} ${bE(l,s)}`,null!==t.lastHeartbeatAt&&s("debug.stream.heartbeat",{time:bE(o-t.lastHeartbeatAt,s)}),s("debug.stream.watchdogArmed",{time:bN(a,s)})]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ye,{fraction:bq(l,a)??0,tone:c,width:120,notches:u,title:p}),(0,d.jsx)("span",{className:`debug-value is-${c}`,title:p,children:s("debug.stream.dataAgo",{time:b$(l,s)})})]})}function ym(e){let{page:t,ctx:n}=e,{t:r,now:i}=n,s=t.client?.lease??null,o=t.client?.pageId??null,l=(0,d.jsx)("span",{className:"debug-measure-name",children:(0,d.jsx)("span",{className:"debug-label",children:r("debug.section.lease")})});if(!s||0===s.requests)return(0,d.jsxs)(d.Fragment,{children:[l,(0,d.jsx)("span",{className:"debug-measure-empty",children:s?r("debug.lease.noHolder"):t.clientFailed?"—":r("debug.stream.noChat")})]});let a=s.last,c=function(e,t,n){if(null===e||!(t>0))return null;let r=Math.max(0,n-e);return e+(Math.floor(r/t)+1)*t}(s.renewStartedAt,s.renewIntervalMs,i),u=null!==s.inFlightSince&&i-s.inFlightSince>=2e3,p=u||a?.outcome==="unanswered"?"warning":a?.outcome==="error"?"error":"dim",h=r("debug.lease.countsValue",{requests:s.requests,unanswered:s.unanswered,errors:s.errors}),m=bF([null!==c&&`${r("debug.lease.next")} ${bM(c-i,r)}`,r("debug.lease.every",{time:bN(s.renewIntervalMs,r)}),h,null!==o&&`${r("debug.holder.thisPage")} ${bT(o)}`]);return(0,d.jsxs)(d.Fragment,{children:[l,null===c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{}),(0,d.jsx)("span",{className:"debug-value is-dim",children:"—"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(ye,{fraction:u?1:1-(bq(c-i,s.renewIntervalMs)??1),tone:p,width:120,title:m}),(0,d.jsx)("span",{className:"debug-value is-muted",title:m,children:c-i>0?r("debug.lease.renewsIn",{time:b$(c-i,r,"ceil")}):r("debug.lease.renewing")})]}),(0,d.jsx)("span",{className:"debug-measure-sub",children:`${r("debug.lease.last")} ${a?bF([r(bv[a.outcome]??"debug.unknown"),bN(a.durationMs,r),"error"===a.outcome&&null!==a.httpStatus&&`HTTP ${a.httpStatus}`,r("debug.time.ago",{time:b$(i-a.at,r)})]):r("debug.notYet")}`}),(s.unanswered>0||s.errors>0)&&(0,d.jsx)("span",{className:"debug-measure-sub",children:h})]})}function yf(e){let{reply:t,ctx:n}=e,{t:r,clock:i}=n,s=(0,d.jsx)("span",{className:"debug-section-title",children:r("debug.section.server")});if(!t||!i)return(0,d.jsxs)("div",{className:"debug-col-head debug-server-head",children:[s,(0,d.jsx)("span",{children:r("debug.poll.waiting")})]});let o=t.server,l=r("debug.global.wrappersValue",{...o.wrappers}),a=`${r("debug.global.timers")}: ${r("debug.global.timersValue",{idle:o.idleTimeoutMs>0?bN(o.idleTimeoutMs,r):r("debug.server.idleDisabled"),heartbeat:bN(o.heartbeatMs,r)})}
|
|
277
|
+
${l}`,c=o.terminals,u=bF([`${r("debug.global.terminals")}: ${r("debug.global.terminalsValue",{count:c.count,listeners:c.listeners,detached:c.detached,exited:c.exited})}`,null!==c.nextCleanupAt&&r("debug.global.cleanup",{time:bI(i.remaining(c.nextCleanupAt),r)})]),p=Array.from({length:c.count},(e,t)=>t<c.detached?{tone:"dim",dashed:!0,title:u}:t<c.detached+c.exited?{tone:"muted",faded:!0,title:u}:{tone:"muted",title:u}),h=`${r("debug.global.fileWatches")}: ${o.fileWatches}`,m=o.wrappers.starting;return(0,d.jsxs)("div",{className:"debug-col-head debug-server-head",children:[s,(0,d.jsxs)("span",{className:"debug-server-item",title:a,children:[(0,d.jsx)(b2,{kind:"server"}),(0,d.jsx)("span",{children:`${r("debug.global.uptime")} ${bN(i.age(o.startedAt),r)}`})]}),m>0&&(0,d.jsxs)("span",{className:"debug-run",role:"img","aria-label":l,title:l,children:[Array.from({length:Math.min(m,4)},(e,t)=>(0,d.jsx)("span",{className:"debug-status",children:(0,d.jsx)("span",{className:"debug-status-ring is-starting"})},t)),m>4&&(0,d.jsx)("span",{className:"debug-run-more",children:`+${m-4}`})]}),(0,d.jsx)(b8,{text:r("debug.box.file"),items:Array.from({length:o.fileWatches},()=>({tone:"muted",title:h})),cap:4,label:h}),(0,d.jsx)(b8,{text:r("debug.box.terminal"),items:p,cap:4,label:u})]})}function yg(e){let{reply:t,ctx:n}=e,{t:r,myHolder:i}=n;if(!t)return null;let{pages:s,sseTotal:o}=t.server;if(0===o&&0===s.length)return null;let l=bB(s,i);return(0,d.jsxs)("div",{className:"debug-pages",children:[(0,d.jsxs)("div",{className:"debug-page-row debug-list-head",children:[(0,d.jsx)("span",{className:"debug-pages-title",children:`${r("debug.pages.title")} ${l.length}`}),(0,d.jsx)("span",{className:"debug-page-count",children:`SSE ${r("debug.global.streamTotal",{count:o})}`})]}),l.map((e,t)=>{let n=null!==e.holder&&e.holder===i,s=bD(e.holder,i,r),o=e.agent+e.terminal+e.fileWatch,l=bF([e.agent>0&&`${r(bg.agent)} ${e.agent}`,e.terminal>0&&`${r(bg.terminal)} ${e.terminal}`,e.fileWatch>0&&`${r(bg["file-watch"])} ${e.fileWatch}`]);return(0,d.jsxs)("div",{className:`debug-page-row${n?" is-current":""}`,title:bF([s,e.client,e.address,`SSE ${o}`,l]),children:[(0,d.jsx)("span",{className:"debug-page-icons",children:(0,d.jsx)(b5,{client:e.client})}),(0,d.jsx)("span",{className:`debug-page-client${e.client?"":" is-dim"}`,children:e.client??r("debug.pages.unknownClient")}),(0,d.jsx)("span",{className:"debug-page-address",children:e.address??"—"}),(0,d.jsx)("span",{className:"debug-page-holder",children:n?r("debug.holder.thisPage"):null!==e.holder?bT(e.holder):r("debug.holder.none")}),(0,d.jsx)("span",{className:"debug-page-count",children:o})]},`${e.holder??""}:${t}`)})]})}function yx(e){let{reply:t,detail:n,groups:r,targetSessionId:i,sources:s,ctx:o}=e,{t:l,clock:a}=o;if(!t||!a||!r)return(0,d.jsx)("div",{className:"debug-empty",children:l("debug.poll.waiting")});let c=null!==n&&r.some(e=>e.rows.some(e=>e.current&&e.id===n.sessionId)),p=null;return i?n?c||(p=(0,d.jsx)(yb,{detail:n,clock:a,ctx:o})):p=(0,d.jsx)("div",{className:"debug-empty",children:l("debug.poll.waiting")}):p=(0,d.jsx)("div",{className:"debug-empty",children:l("debug.server.noSession")}),(0,d.jsxs)("div",{className:"debug-list",children:[p,0===r.length&&!(n&&!c)&&(0,d.jsx)("div",{className:"debug-empty",children:l("debug.none")}),r.length>0&&(0,d.jsxs)("div",{className:"debug-row debug-list-head","aria-hidden":"true",children:[(0,d.jsx)("span",{}),(0,d.jsx)("span",{children:l("debug.sessions.head.session")}),(0,d.jsx)("span",{className:"debug-list-head-holders",children:l("debug.sessions.head.holders")}),(0,d.jsx)("span",{className:"debug-list-head-idle",children:l("debug.server.idle")})]}),r.map(e=>(0,d.jsxs)("div",{className:"debug-group",children:[(0,d.jsxs)("div",{className:"debug-group-head",children:[null!==e.name&&(0,d.jsx)(nc,{size:11}),(0,d.jsx)("span",{className:"debug-group-name",children:e.name??l("debug.sessions.unlisted")}),(0,d.jsx)("span",{className:"debug-group-count",children:e.rows.filter(e=>null!==e.summary).length})]}),e.rows.map(e=>{let r=e.current&&n?.sessionId===e.id?n:null;return(0,d.jsxs)(u.Fragment,{children:[(0,d.jsx)(y$,{row:e,sources:s,idleTimeoutMs:t.server.idleTimeoutMs,clock:a,ctx:o,current:r?function(e,t,n){let{t:r}=n,i=e=>bE(t.age(e),r),s=e.wrapper?.idle??null,o=e.lifecycle;return{badges:(0,d.jsx)(yj,{detail:e,clock:t,ctx:n}),idleTitle:s&&null!==s.nextCheckAt?bF([`${r("debug.server.idle")} ${bN(t.remaining(s.nextCheckAt),r)}`,s.timeoutMs>0&&r("debug.server.idleTimeout",{time:bN(s.timeoutMs,r)}),null!==s.lastResetAt&&r("debug.server.idleReset",{time:i(s.lastResetAt)}),r(s.forcedByStop?"debug.server.idleForced":"debug.server.idleHint")]):void 0,startsTitle:o&&o.starts>1?yv(o,i,r):void 0}}(r,a,o):void 0}),r&&(0,d.jsx)(yy,{detail:r,clock:a,ctx:o})]},e.id)})]},e.key))]})}function yv(e,t,n){return bF([n("debug.overlay.starts",{count:e.starts}),n("debug.server.lastStart",{time:t(e.lastStartedAt)}),null!==e.lastClosedAt&&n("debug.server.lastClosed",{time:t(e.lastClosedAt)})])}function yb(e){var t;let n,{detail:r,clock:i,ctx:s}=e,{t:o,titleOf:l}=s,a=l(r.sessionId)??bT(r.sessionId),c=(n=(t=r).wrapper)?bH({awaitingInput:n.awaitingInput,running:n.run.running,state:n.state}):t.starting?"starting":"none";return(0,d.jsxs)("div",{className:"debug-group",children:[(0,d.jsxs)("div",{className:"debug-row is-current has-detail is-placeholder",title:o("debug.sessions.current"),children:[(0,d.jsx)("span",{className:"debug-row-status",children:(0,d.jsx)(yn,{state:c,label:o(b_[c])})}),(0,d.jsx)("span",{className:"debug-row-title",children:(0,d.jsx)("span",{className:"debug-row-name",children:a})})]}),(0,d.jsx)(yy,{detail:r,clock:i,ctx:s,unlisted:!0})]})}function yy(e){let{detail:t,clock:n,ctx:r,unlisted:i=!1}=e,{t:s,titleOf:o}=r,l=t.wrapper,a=t.lifecycle,c=e=>bE(n.age(e),s),u=null!==l&&!l.stale,p=l?.state==="closing"?null!==l.closingAt?s("debug.server.closingSince",{time:c(l.closingAt)}):s("debug.state.closing"):null,h=l&&bF([null!=l.startedAt&&`${s("debug.server.started")} ${c(l.startedAt)}`,u&&l.lastEvent&&`${s("debug.server.lastEvent")} ${l.lastEvent.type} ${c(l.lastEvent.at)}`,u&&l.lastCommand&&`${s("debug.server.lastCommand")} ${l.lastCommand.type} ${c(l.lastCommand.at)}`]);return(0,d.jsxs)("div",{className:"debug-detail",children:[(0,d.jsxs)("div",{className:"debug-detail-line",children:[null!==o(t.sessionId)&&(0,d.jsx)("span",{className:"debug-detail-id",children:bT(t.sessionId)}),!l&&(0,d.jsx)("span",{className:"debug-note",children:s(t.starting?"debug.server.starting":"debug.server.noWrapper")}),i&&a&&a.starts>1&&(0,d.jsx)("span",{className:"debug-starts",title:yv(a,c,s),children:`↻${a.starts}`}),p&&(0,d.jsx)(b7,{tone:"warning",children:p}),l?.chatOnly&&(0,d.jsx)(b7,{tone:"dim",children:s("debug.server.chatOnly")}),l?.subagent&&(0,d.jsx)(b7,{tone:"dim",children:s("debug.server.subagent")}),l?.stale&&(0,d.jsx)(b7,{tone:"warning",children:s("debug.server.stale")}),(0,d.jsx)(yw,{detail:t,t:s}),u&&(0,d.jsx)(yk,{detail:t,t:s}),h&&(0,d.jsx)("span",{className:"debug-line",children:h})]}),u&&(0,d.jsx)(yN,{detail:t,clock:n,ctx:r}),u&&(0,d.jsx)(yE,{detail:t,clock:n,ctx:r})]})}function yw(e){let{detail:t,t:n}=e,r=t.wrapper;return null!==r&&!r.stale&&t.eventStreams.every(e=>null!==e.connectedAt)&&r.eventListeners!==t.eventStreams.length&&r?(0,d.jsx)(b7,{tone:"warning",children:`${n("debug.server.listeners")} ${r.eventListeners}`}):null}function yj(e){var t;let n,{detail:r,clock:i,ctx:s}=e,{t:o,myHolder:l}=s,a=e=>bE(i.age(e),o),c=bB([...r.eventStreams].sort((e,t)=>e.openedAt-t.openedAt),l),u=c.map(e=>{var t;let n,r=null===e.connectedAt;return{tone:r||e.droppedEvents>0?"warning":(t=e.holder,null===t?"dim":t===l?"accent":"muted"),filled:null!==e.holder&&e.holder===l,dashed:r,title:bF([bD(e.holder,l,o),e.client,e.address,null!==e.connectedAt?o("debug.server.streamConnected",{time:a(e.connectedAt)}):o("debug.server.streamStarting"),null!==e.lastWriteAt&&o("debug.server.lastWrite",{time:a(e.lastWriteAt)}),e.droppedEvents>0&&o("debug.server.dropped",{count:e.droppedEvents}),e.queuedBytes>0&&o("debug.server.queued",{size:(n=bS(e.queuedBytes))<1024?`${Math.floor(n)} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`})])}}),p=r.providers,h=null===p?[{tone:"dim",title:o("debug.server.providersUnknown")}]:p.map(e=>({tone:"error"===e.active?"error":e.active?"muted":"dim",faded:!1===e.active,text:e.name,title:bF([e.name,o("error"===e.active?"debug.server.providerError":e.active?"debug.server.providerActive":"debug.server.providerInactive"),e.byFile&&o("debug.server.byFile")])}));return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b8,{text:"SSE",items:u,cap:3,label:(t=c.map(e=>e.holder),n=t.filter(e=>null!==e&&e===l).length,`SSE: ${t.length} (${o("debug.holder.thisPage")} ${n}, ${o("debug.holder.otherPage")} ${t.length-n})`)}),(0,d.jsx)(b8,{text:o("debug.box.provider"),items:h,cap:1,label:`${o("debug.server.providers")}: ${null===p?o("debug.server.providersUnknown"):p.length}`})]})}function yk(e){let{detail:t,t:n}=e,r=t.wrapper;if(!r)return null;let i=r.run,s=[i.streaming&&n("debug.run.streaming"),i.promptRunning&&n("debug.run.prompt"),i.bashRunning&&n("debug.run.bash"),i.compacting&&n("debug.run.compacting"),i.queuedMessages>0&&n("debug.run.queued",{count:i.queuedMessages}),i.runningTools>0&&n("debug.run.tools",{count:i.runningTools}),i.mutatingCommands>0&&n("debug.run.mutating",{count:i.mutatingCommands}),i.replacement&&n("debug.run.replacement",{kind:i.replacement}),"binding"===r.extensions&&`${n("debug.server.extensions")} ${n("debug.server.extensions.binding")}`].filter(e=>!!e),o=[i.pendingPrompts>0&&n("debug.run.pending",{count:i.pendingPrompts}),i.retrying&&n("debug.run.retrying"),i.waitingForMcp&&n("debug.run.waitingForMcp"),r.awaitingInput&&r.pendingUiRequests>0&&n("debug.server.uiRequests",{count:r.pendingUiRequests}),r.awaitingInput&&r.customUis>0&&n("debug.server.customUis",{count:r.customUis})].filter(e=>!!e);return(0,d.jsxs)(d.Fragment,{children:[s.map(e=>(0,d.jsx)(b7,{tone:"dim",children:e},e)),o.map(e=>(0,d.jsx)(b7,{tone:"warning",children:e},e))]})}let yS={completed:"ok",failed:"error",aborted:"warning",interrupted:"warning"};function yC(e){let{status:t}=e;if("running"===t||"starting"===t)return(0,d.jsx)("span",{className:"debug-run-icon is-accent",children:(0,d.jsx)(nb,{size:12})});let n=yS[t];return n?(0,d.jsx)("span",{className:`debug-run-icon is-${n}`,children:(0,d.jsx)(bc,{status:t})}):(0,d.jsx)("span",{className:"debug-run-icon",children:(0,d.jsx)("span",{className:"debug-status-ring is-alive"})})}function yN(e){let{detail:t,clock:n,ctx:r}=e,{t:i,titleOf:s}=r,o=t.subagents;if(!o.active&&0===o.runs.length&&0===o.notifications.length)return null;let l=e=>bE(n.age(e),i);return(0,d.jsxs)("div",{className:"debug-block",children:[(0,d.jsxs)("div",{className:"debug-subhead",children:[(0,d.jsx)("span",{children:i("debug.server.subagents")}),o.active&&(0,d.jsx)(b7,{tone:"accent",children:i("debug.server.subagentsActive")})]}),o.runs.map((e,t)=>(0,d.jsxs)("div",{className:"debug-run-line",children:[(0,d.jsx)(yC,{status:e.status}),(0,d.jsx)("span",{className:"debug-run-name",children:s(e.sessionId)??e.profile??bT(e.sessionId)}),(0,d.jsx)("span",{className:"debug-line",children:bF([bk(e.status,bw,i),e.background&&i("debug.server.background"),e.resumed&&i("debug.server.resumed"),null!==e.dispatchedAt&&l(e.dispatchedAt)])}),e.abortRequested&&(0,d.jsx)(b7,{tone:"warning",children:i("debug.server.abortRequested")}),e.mcpWaiting&&(0,d.jsx)(b7,{tone:"warning",children:i("debug.run.waitingForMcp")})]},`${e.sessionId}:${t}`)),o.notifications.map((e,t)=>(0,d.jsx)("div",{className:"debug-line is-warning",children:bF([i("debug.server.notifying",{parent:bT(e.parentSessionId)}),null!==e.since&&l(e.since)])},`${e.sessionId}:${t}`))]})}function yE(e){let{detail:t,clock:n,ctx:r}=e,{t:i}=r,s=t.mcp;if(!s||0===s.servers.length&&0===s.problems)return null;let o=null!==s.idleReleaseAt&&s.idleMs>0?n.remaining(s.idleReleaseAt):null;return(0,d.jsxs)("div",{className:"debug-block",children:[(0,d.jsxs)("div",{className:"debug-pills",children:[(0,d.jsx)("span",{className:`debug-subhead${s.active?"":" is-dim"}`,children:"MCP"}),s.servers.map((e,t)=>{let{tone:n,filled:r}=e.hasError||"failed"===e.state||"conflict"===e.state?{tone:"error",filled:!0}:e.released?{tone:"dim",filled:!1}:"connected"===e.state?{tone:"ok",filled:!0}:"connecting"===e.state?{tone:"warning",filled:!1}:"needs-auth"===e.state||"not-trusted"===e.state||"disconnected"===e.state?{tone:"warning",filled:!0}:{tone:"muted",filled:!1},s=bk(e.state,ma,i),o=bF([`${e.name} (${e.scope})`,s,e.released&&i("debug.server.mcpReleased"),e.hasError&&i("debug.server.mcpError")]),l="connected"!==e.state?s:e.hasError?i("debug.server.mcpError"):null;return(0,d.jsxs)("span",{className:"debug-pill",role:"img","aria-label":o,title:o,children:[(0,d.jsx)(b9,{tone:n,ring:!r}),(0,d.jsx)("span",{className:e.released?"is-dim":void 0,children:e.name}),l&&(0,d.jsx)("span",{className:"debug-pill-state",children:`\xb7 ${l}`})]},`${e.scope}:${e.name}:${t}`)}),s.problems>0&&(0,d.jsx)(b7,{tone:"warning",children:i("debug.server.mcpProblems",{count:s.problems})}),s.disposed&&(0,d.jsx)(b7,{tone:"dim",children:i("debug.server.mcpDisposed")})]}),null!==o&&(0,d.jsxs)("div",{className:"debug-idle-row",children:[(0,d.jsx)(ye,{fraction:bq(o,s.idleMs)??0,tone:"dim",width:80}),(0,d.jsx)("span",{className:"debug-value is-muted",children:i("debug.server.mcpRelease",{time:bI(o,i)})})]})]})}function y$(e){var t;let n,r,{row:i,sources:s,idleTimeoutMs:o,clock:l,ctx:a,current:c}=e,{t:u}=a,p=i.summary,h=i.info?rp(i.info):bT(i.id),m=p&&null!==p.nextIdleCheckAt?l.remaining(p.nextIdleCheckAt):null,f=p?bH(p):null,g=["debug-row",1===i.depth&&"is-sub",i.current&&"is-current",c&&"has-detail",i.placeholder&&"is-placeholder"].filter(Boolean).join(" ");return(0,d.jsxs)("div",{className:g,title:bF([i.current&&u("debug.sessions.current"),p?(n=[p.subagent?u("debug.overlay.subagentId",{id:bT(p.sessionId)}):bT(p.sessionId),u(bb[p.state]??bb.none)],p.running&&n.push(u("debug.overlay.running")),p.awaitingInput&&n.push(u("debug.overlay.awaiting")),p.eventStreams>0&&n.push(u("debug.overlay.streams",{count:p.eventStreams})),p.providers>0&&n.push(u("debug.overlay.providers",{count:p.providers})),null!==m&&n.push(u(p.forcedByStop?"debug.overlay.closesIn":"debug.overlay.idle",{time:(r=bS(m))<6e4?u("debug.duration.seconds",{count:Math.floor(r/1e3)}):r<36e5?u("debug.duration.minutes",{count:Math.floor(r/6e4)}):r<864e5?u("debug.duration.hours",{count:Math.floor(r/36e5)}):u("debug.duration.days",{count:Math.floor(r/864e5)})})),p.starts>1&&n.push(u("debug.overlay.starts",{count:p.starts})),n.join(" \xb7 ")):h]),children:[(0,d.jsx)("span",{className:"debug-row-status",children:f&&(0,d.jsx)(yn,{state:f,label:u(b_[f])})}),(0,d.jsxs)("span",{className:"debug-row-title",children:[1===i.depth&&(0,d.jsx)("span",{className:"debug-row-branch","aria-hidden":"true"}),(0,d.jsx)("span",{className:"debug-row-name",children:h}),p&&p.starts>1&&(0,d.jsx)("span",{className:"debug-row-starts",title:c?.startsTitle,children:`↻${p.starts}`})]}),p&&(0,d.jsx)(yM,{summary:p,mine:(t=i.id,s.filter(e=>"agent"===e.kind&&e.label===t).length),remaining:m,idleTimeoutMs:o,t:u,badges:c?.badges,idleTitle:c?.idleTitle})]})}function yM(e){let{summary:t,mine:n,remaining:r,idleTimeoutMs:i,t:s,badges:o,idleTitle:l}=e,a=s("debug.overlay.streams",{count:t.eventStreams}),c=Math.min(t.eventStreams,n),u=Array.from({length:t.eventStreams},(e,t)=>t<c?{tone:"accent",filled:!0,title:a}:{tone:"muted",title:a}),p=s("debug.overlay.providers",{count:t.providers}),h=Array.from({length:t.providers},()=>({tone:"muted",title:p})),m=null!==r&&(i>0||t.forcedByStop),f=t.forcedByStop?"warning":"dim",g=null!==r?s("debug.overlay.closesIn",{time:b$(r,s)}):void 0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"debug-row-badges",children:o??(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(b8,{text:"SSE",items:u,cap:3,label:a}),(0,d.jsx)(b8,{text:s("debug.box.provider"),items:h,cap:1,label:p})]})}),(0,d.jsx)("span",{className:`debug-row-idle is-${f}`,title:l,children:m&&null!==r&&(0,d.jsxs)(d.Fragment,{children:[i>0&&(0,d.jsx)(ye,{fraction:bq(r,i)??0,tone:f,width:36,height:3,className:"debug-row-idle-bar"}),t.forcedByStop&&(0,d.jsx)("span",{className:"debug-row-forced",role:"img","aria-label":g,title:g}),(0,d.jsx)("span",{className:"debug-row-idle-text",children:b$(r,s)})]})})]})}let yI=`
|
|
278
|
+
.debug-panel {
|
|
279
|
+
--dbg-ok: #16a34a;
|
|
280
|
+
--dbg-warn: #d97706;
|
|
281
|
+
--dbg-err: #ef4444;
|
|
282
|
+
container-type: inline-size;
|
|
283
|
+
container-name: debug-panel;
|
|
284
|
+
display: flex;
|
|
285
|
+
max-height: min(720px, 80dvh);
|
|
286
|
+
flex-direction: column;
|
|
287
|
+
background: var(--bg-panel);
|
|
288
|
+
border-bottom: 1px solid var(--border);
|
|
289
|
+
box-shadow: 0 10px 28px rgba(0,0,0,0.10);
|
|
290
|
+
color: var(--text);
|
|
291
|
+
}
|
|
292
|
+
.debug-panel .is-ok { color: var(--dbg-ok); }
|
|
293
|
+
.debug-panel .is-warning { color: var(--dbg-warn); }
|
|
294
|
+
.debug-panel .is-error { color: var(--dbg-err); }
|
|
295
|
+
.debug-panel .is-accent { color: var(--accent); }
|
|
296
|
+
.debug-panel .is-muted { color: var(--text-muted); }
|
|
297
|
+
.debug-panel .is-dim { color: var(--text-dim); }
|
|
298
|
+
.debug-panel-header {
|
|
299
|
+
display: flex;
|
|
300
|
+
flex-shrink: 0;
|
|
301
|
+
align-items: center;
|
|
302
|
+
gap: 12px;
|
|
303
|
+
min-width: 0;
|
|
304
|
+
padding: 8px 16px;
|
|
305
|
+
border-bottom: 1px solid var(--border);
|
|
306
|
+
font-size: 12px;
|
|
307
|
+
}
|
|
308
|
+
.debug-panel-heading {
|
|
309
|
+
flex-shrink: 0;
|
|
310
|
+
color: var(--text);
|
|
311
|
+
cursor: help;
|
|
312
|
+
font-weight: 700;
|
|
313
|
+
}
|
|
314
|
+
.debug-panel-status {
|
|
315
|
+
display: inline-flex;
|
|
316
|
+
min-width: 0;
|
|
317
|
+
align-items: center;
|
|
318
|
+
gap: 6px;
|
|
319
|
+
font-variant-numeric: tabular-nums;
|
|
320
|
+
}
|
|
321
|
+
.debug-panel-status svg {
|
|
322
|
+
flex-shrink: 0;
|
|
323
|
+
}
|
|
324
|
+
.debug-panel-status-text {
|
|
325
|
+
min-width: 0;
|
|
326
|
+
overflow: hidden;
|
|
327
|
+
text-overflow: ellipsis;
|
|
328
|
+
white-space: nowrap;
|
|
329
|
+
}
|
|
330
|
+
.debug-panel-copy {
|
|
331
|
+
flex-shrink: 0;
|
|
332
|
+
margin-left: auto;
|
|
333
|
+
padding: 2px 8px;
|
|
334
|
+
border: 1px solid var(--border);
|
|
335
|
+
border-radius: 4px;
|
|
336
|
+
background: transparent;
|
|
337
|
+
color: var(--text-muted);
|
|
338
|
+
cursor: pointer;
|
|
339
|
+
font-size: 11px;
|
|
340
|
+
}
|
|
341
|
+
.debug-panel-copy:hover {
|
|
342
|
+
background: var(--bg-hover);
|
|
343
|
+
color: var(--text);
|
|
344
|
+
}
|
|
345
|
+
.debug-panel-scroll {
|
|
346
|
+
display: flex;
|
|
347
|
+
min-height: 0;
|
|
348
|
+
flex: 1;
|
|
349
|
+
flex-direction: column;
|
|
350
|
+
gap: 12px;
|
|
351
|
+
overflow: auto;
|
|
352
|
+
padding: 10px 16px 12px;
|
|
353
|
+
font-size: 12px;
|
|
354
|
+
line-height: 1.5;
|
|
355
|
+
}
|
|
356
|
+
.debug-section-title {
|
|
357
|
+
color: var(--text);
|
|
358
|
+
font-size: 11px;
|
|
359
|
+
font-weight: 700;
|
|
360
|
+
}
|
|
361
|
+
.debug-empty,
|
|
362
|
+
.debug-note {
|
|
363
|
+
color: var(--text-dim);
|
|
364
|
+
font-size: 12px;
|
|
365
|
+
}
|
|
366
|
+
.debug-label {
|
|
367
|
+
color: var(--text-dim);
|
|
368
|
+
font-size: 11px;
|
|
369
|
+
white-space: nowrap;
|
|
370
|
+
}
|
|
371
|
+
.debug-value {
|
|
372
|
+
font-family: var(--font-mono);
|
|
373
|
+
font-size: 11px;
|
|
374
|
+
font-variant-numeric: tabular-nums;
|
|
375
|
+
white-space: nowrap;
|
|
376
|
+
}
|
|
377
|
+
.debug-line {
|
|
378
|
+
color: var(--text-dim);
|
|
379
|
+
font-family: var(--font-mono);
|
|
380
|
+
font-size: 11px;
|
|
381
|
+
font-variant-numeric: tabular-nums;
|
|
382
|
+
overflow-wrap: anywhere;
|
|
383
|
+
}
|
|
384
|
+
.debug-panel .debug-line.is-warning {
|
|
385
|
+
color: var(--dbg-warn);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
.debug-issues {
|
|
389
|
+
display: flex;
|
|
390
|
+
flex-direction: column;
|
|
391
|
+
gap: 4px;
|
|
392
|
+
margin: 0;
|
|
393
|
+
padding: 0;
|
|
394
|
+
list-style: none;
|
|
395
|
+
}
|
|
396
|
+
.debug-issue {
|
|
397
|
+
display: flex;
|
|
398
|
+
align-items: flex-start;
|
|
399
|
+
gap: 6px;
|
|
400
|
+
padding: 4px 8px;
|
|
401
|
+
border-left: 2px solid currentColor;
|
|
402
|
+
border-radius: 4px;
|
|
403
|
+
background: color-mix(in srgb, currentColor 8%, var(--bg-panel));
|
|
404
|
+
}
|
|
405
|
+
.debug-issue > svg {
|
|
406
|
+
flex-shrink: 0;
|
|
407
|
+
margin-top: 3px;
|
|
408
|
+
}
|
|
409
|
+
.debug-issue-text {
|
|
410
|
+
min-width: 0;
|
|
411
|
+
color: var(--text);
|
|
412
|
+
font-size: 12px;
|
|
413
|
+
overflow-wrap: anywhere;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/* Three columns when the panel is wide: the page's as wide as its table, the server's and the
|
|
417
|
+
sessions' each capped, so names never stretch and push the badges to the far edge. */
|
|
418
|
+
.debug-cols {
|
|
419
|
+
display: grid;
|
|
420
|
+
grid-template-areas: "page server sessions";
|
|
421
|
+
grid-template-columns: minmax(320px, max-content) minmax(340px, 480px) minmax(360px, 560px);
|
|
422
|
+
gap: 0;
|
|
423
|
+
}
|
|
424
|
+
.debug-col {
|
|
425
|
+
display: flex;
|
|
426
|
+
min-width: 0;
|
|
427
|
+
flex-direction: column;
|
|
428
|
+
gap: 8px;
|
|
429
|
+
}
|
|
430
|
+
.debug-col-page {
|
|
431
|
+
grid-area: page;
|
|
432
|
+
}
|
|
433
|
+
.debug-col-server {
|
|
434
|
+
grid-area: server;
|
|
435
|
+
}
|
|
436
|
+
.debug-col-sessions {
|
|
437
|
+
grid-area: sessions;
|
|
438
|
+
}
|
|
439
|
+
.debug-col-server,
|
|
440
|
+
.debug-col-sessions {
|
|
441
|
+
margin-left: 20px;
|
|
442
|
+
padding-left: 20px;
|
|
443
|
+
border-left: 1px solid var(--border);
|
|
444
|
+
}
|
|
445
|
+
.debug-list,
|
|
446
|
+
.debug-block {
|
|
447
|
+
display: flex;
|
|
448
|
+
min-width: 0;
|
|
449
|
+
flex-direction: column;
|
|
450
|
+
gap: 6px;
|
|
451
|
+
}
|
|
452
|
+
.debug-block {
|
|
453
|
+
gap: 4px;
|
|
454
|
+
}
|
|
455
|
+
.debug-col-head {
|
|
456
|
+
display: flex;
|
|
457
|
+
min-height: 18px;
|
|
458
|
+
align-items: center;
|
|
459
|
+
gap: 8px;
|
|
460
|
+
}
|
|
461
|
+
/* Name, scale, value; a measure's details span the row below it. */
|
|
462
|
+
/* As wide as the column (the details get the room), never so wide a value drifts off its bar. */
|
|
463
|
+
.debug-measures {
|
|
464
|
+
display: grid;
|
|
465
|
+
max-width: 400px;
|
|
466
|
+
grid-template-columns: max-content minmax(max-content, 1fr) max-content;
|
|
467
|
+
align-items: center;
|
|
468
|
+
gap: 4px 10px;
|
|
469
|
+
}
|
|
470
|
+
/* Numbers line up on the right, as the count in the column's head does. */
|
|
471
|
+
.debug-measures > .debug-value {
|
|
472
|
+
justify-self: end;
|
|
473
|
+
text-align: right;
|
|
474
|
+
}
|
|
475
|
+
.debug-measure-name {
|
|
476
|
+
display: inline-flex;
|
|
477
|
+
align-items: center;
|
|
478
|
+
gap: 6px;
|
|
479
|
+
}
|
|
480
|
+
.debug-measure-name[title] {
|
|
481
|
+
cursor: help;
|
|
482
|
+
}
|
|
483
|
+
/* Wrapped to the table's width rather than widening it (a percentage min-width adds nothing to
|
|
484
|
+
the columns' sizes). */
|
|
485
|
+
.debug-measure-sub,
|
|
486
|
+
.debug-measure-empty {
|
|
487
|
+
grid-column: 2 / -1;
|
|
488
|
+
width: 0;
|
|
489
|
+
min-width: 100%;
|
|
490
|
+
color: var(--text-dim);
|
|
491
|
+
font-family: var(--font-mono);
|
|
492
|
+
font-size: 11px;
|
|
493
|
+
font-variant-numeric: tabular-nums;
|
|
494
|
+
overflow-wrap: anywhere;
|
|
495
|
+
}
|
|
496
|
+
.debug-measure-sub {
|
|
497
|
+
margin-top: -4px;
|
|
498
|
+
}
|
|
499
|
+
.debug-measure-sub > .debug-dot {
|
|
500
|
+
margin-right: 6px;
|
|
501
|
+
vertical-align: 0;
|
|
502
|
+
}
|
|
503
|
+
.debug-measure-empty {
|
|
504
|
+
font-family: inherit;
|
|
505
|
+
font-size: 12px;
|
|
506
|
+
}
|
|
507
|
+
.debug-chips {
|
|
508
|
+
display: flex;
|
|
509
|
+
flex-wrap: wrap;
|
|
510
|
+
gap: 4px;
|
|
511
|
+
}
|
|
512
|
+
.debug-chip {
|
|
513
|
+
display: inline-flex;
|
|
514
|
+
align-items: center;
|
|
515
|
+
padding: 0 6px;
|
|
516
|
+
border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
|
|
517
|
+
border-radius: 9px;
|
|
518
|
+
font-family: var(--font-mono);
|
|
519
|
+
font-size: 11px;
|
|
520
|
+
line-height: 16px;
|
|
521
|
+
white-space: nowrap;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/* A boxed word: "SSE", a provider's name, File, Term. Filled is this page's own. */
|
|
525
|
+
.debug-badge {
|
|
526
|
+
display: inline-flex;
|
|
527
|
+
height: 16px;
|
|
528
|
+
box-sizing: border-box;
|
|
529
|
+
flex-shrink: 0;
|
|
530
|
+
align-items: center;
|
|
531
|
+
padding: 0 4px;
|
|
532
|
+
border: 1px solid currentColor;
|
|
533
|
+
border-radius: 3px;
|
|
534
|
+
background-clip: padding-box;
|
|
535
|
+
font: 600 10px/14px var(--font-mono);
|
|
536
|
+
white-space: nowrap;
|
|
537
|
+
}
|
|
538
|
+
.debug-panel .debug-badge.is-filled {
|
|
539
|
+
border-color: var(--accent);
|
|
540
|
+
background-color: var(--accent);
|
|
541
|
+
color: var(--accent-contrast);
|
|
542
|
+
}
|
|
543
|
+
/* This page's, amber: a stream of its own still starting or dropping events. */
|
|
544
|
+
.debug-panel .debug-badge.is-filled.is-warning {
|
|
545
|
+
border-color: var(--dbg-warn);
|
|
546
|
+
background-color: var(--dbg-warn);
|
|
547
|
+
color: var(--bg-panel);
|
|
548
|
+
}
|
|
549
|
+
.debug-badge.is-dashed {
|
|
550
|
+
border-style: dashed;
|
|
551
|
+
}
|
|
552
|
+
.debug-badge.is-faded {
|
|
553
|
+
opacity: 0.45;
|
|
554
|
+
}
|
|
555
|
+
/* A provider's name: twelve characters, then an ellipsis (a block, so the ellipsis applies). */
|
|
556
|
+
.debug-badge.is-name {
|
|
557
|
+
display: inline-block;
|
|
558
|
+
max-width: calc(12ch + 10px);
|
|
559
|
+
overflow: hidden;
|
|
560
|
+
text-overflow: ellipsis;
|
|
561
|
+
}
|
|
562
|
+
/* A page's browser and system marks. */
|
|
563
|
+
.debug-client {
|
|
564
|
+
display: inline-flex;
|
|
565
|
+
align-items: center;
|
|
566
|
+
gap: 3px;
|
|
567
|
+
}
|
|
568
|
+
.debug-client svg {
|
|
569
|
+
display: block;
|
|
570
|
+
flex-shrink: 0;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
/* The connected pages: marks, browser and system, address, page, its stream count. */
|
|
574
|
+
.debug-pages {
|
|
575
|
+
display: flex;
|
|
576
|
+
flex-direction: column;
|
|
577
|
+
}
|
|
578
|
+
.debug-page-row {
|
|
579
|
+
position: relative;
|
|
580
|
+
display: grid;
|
|
581
|
+
min-height: 22px;
|
|
582
|
+
grid-template-columns: 30px minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) 32px;
|
|
583
|
+
align-items: center;
|
|
584
|
+
column-gap: 8px;
|
|
585
|
+
padding: 0 4px;
|
|
586
|
+
border-radius: 4px;
|
|
587
|
+
font-size: 11px;
|
|
588
|
+
}
|
|
589
|
+
.debug-page-row.debug-list-head {
|
|
590
|
+
min-height: 18px;
|
|
591
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
592
|
+
color: var(--text-dim);
|
|
593
|
+
font-size: 10px;
|
|
594
|
+
}
|
|
595
|
+
.debug-page-row.is-current {
|
|
596
|
+
background: var(--bg-selected);
|
|
597
|
+
}
|
|
598
|
+
.debug-page-row.is-current::before {
|
|
599
|
+
content: "";
|
|
600
|
+
position: absolute;
|
|
601
|
+
top: 4px;
|
|
602
|
+
left: 0;
|
|
603
|
+
width: 3px;
|
|
604
|
+
height: 14px;
|
|
605
|
+
border-radius: 0 2px 2px 0;
|
|
606
|
+
background: var(--accent);
|
|
607
|
+
}
|
|
608
|
+
.debug-page-icons {
|
|
609
|
+
display: inline-flex;
|
|
610
|
+
padding-left: 4px;
|
|
611
|
+
color: var(--text-muted);
|
|
612
|
+
}
|
|
613
|
+
.debug-page-icons svg {
|
|
614
|
+
width: 12px;
|
|
615
|
+
height: 12px;
|
|
616
|
+
}
|
|
617
|
+
.debug-page-client,
|
|
618
|
+
.debug-page-address,
|
|
619
|
+
.debug-page-holder {
|
|
620
|
+
min-width: 0;
|
|
621
|
+
overflow: hidden;
|
|
622
|
+
text-overflow: ellipsis;
|
|
623
|
+
white-space: nowrap;
|
|
624
|
+
}
|
|
625
|
+
.debug-page-client {
|
|
626
|
+
color: var(--text);
|
|
627
|
+
}
|
|
628
|
+
.debug-page-address {
|
|
629
|
+
color: var(--text-muted);
|
|
630
|
+
font-family: var(--font-mono);
|
|
631
|
+
}
|
|
632
|
+
.debug-page-holder {
|
|
633
|
+
color: var(--text-dim);
|
|
634
|
+
}
|
|
635
|
+
.debug-page-count {
|
|
636
|
+
justify-self: end;
|
|
637
|
+
color: var(--text-muted);
|
|
638
|
+
font-family: var(--font-mono);
|
|
639
|
+
font-variant-numeric: tabular-nums;
|
|
640
|
+
white-space: nowrap;
|
|
641
|
+
}
|
|
642
|
+
.debug-list-head .debug-page-count {
|
|
643
|
+
color: var(--text-dim);
|
|
644
|
+
}
|
|
645
|
+
.debug-run {
|
|
646
|
+
display: inline-flex;
|
|
647
|
+
flex-wrap: wrap;
|
|
648
|
+
align-items: flex-start;
|
|
649
|
+
gap: 3px;
|
|
650
|
+
vertical-align: middle;
|
|
651
|
+
}
|
|
652
|
+
.debug-run-more {
|
|
653
|
+
color: var(--text-dim);
|
|
654
|
+
font-family: var(--font-mono);
|
|
655
|
+
font-size: 10px;
|
|
656
|
+
line-height: 16px;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.debug-meter-row {
|
|
660
|
+
display: flex;
|
|
661
|
+
flex-wrap: wrap;
|
|
662
|
+
align-items: center;
|
|
663
|
+
gap: 8px;
|
|
664
|
+
}
|
|
665
|
+
.debug-meter {
|
|
666
|
+
display: flex;
|
|
667
|
+
min-height: 18px;
|
|
668
|
+
flex-wrap: wrap;
|
|
669
|
+
align-items: center;
|
|
670
|
+
gap: 3px;
|
|
671
|
+
}
|
|
672
|
+
.debug-slot {
|
|
673
|
+
display: inline-flex;
|
|
674
|
+
min-width: 32px;
|
|
675
|
+
height: 18px;
|
|
676
|
+
box-sizing: border-box;
|
|
677
|
+
align-items: center;
|
|
678
|
+
justify-content: center;
|
|
679
|
+
border-radius: 3px;
|
|
680
|
+
}
|
|
681
|
+
.debug-slot.is-empty {
|
|
682
|
+
border: 1px dotted var(--border);
|
|
683
|
+
}
|
|
684
|
+
.debug-meter.is-inline .debug-slot {
|
|
685
|
+
min-width: 0;
|
|
686
|
+
height: 16px;
|
|
687
|
+
}
|
|
688
|
+
.debug-meter-overflow {
|
|
689
|
+
margin-left: 2px;
|
|
690
|
+
font-family: var(--font-mono);
|
|
691
|
+
font-size: 11px;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.debug-spark {
|
|
695
|
+
display: inline-flex;
|
|
696
|
+
width: 120px;
|
|
697
|
+
height: 15px;
|
|
698
|
+
}
|
|
699
|
+
.debug-spark svg {
|
|
700
|
+
display: block;
|
|
701
|
+
}
|
|
702
|
+
.debug-bar {
|
|
703
|
+
position: relative;
|
|
704
|
+
display: inline-block;
|
|
705
|
+
flex-shrink: 0;
|
|
706
|
+
overflow: hidden;
|
|
707
|
+
border-radius: 2px;
|
|
708
|
+
background: var(--border);
|
|
709
|
+
vertical-align: middle;
|
|
710
|
+
}
|
|
711
|
+
.debug-bar-fill {
|
|
712
|
+
position: absolute;
|
|
713
|
+
top: 0;
|
|
714
|
+
bottom: 0;
|
|
715
|
+
left: 0;
|
|
716
|
+
background: currentColor;
|
|
717
|
+
}
|
|
718
|
+
.debug-bar-notch {
|
|
719
|
+
position: absolute;
|
|
720
|
+
top: 0;
|
|
721
|
+
bottom: 0;
|
|
722
|
+
width: 1px;
|
|
723
|
+
background: var(--bg-panel);
|
|
724
|
+
}
|
|
725
|
+
.debug-dot {
|
|
726
|
+
display: inline-block;
|
|
727
|
+
width: 8px;
|
|
728
|
+
height: 8px;
|
|
729
|
+
flex-shrink: 0;
|
|
730
|
+
border-radius: 50%;
|
|
731
|
+
background: currentColor;
|
|
732
|
+
}
|
|
733
|
+
.debug-dot.is-ring {
|
|
734
|
+
background: transparent;
|
|
735
|
+
box-shadow: inset 0 0 0 1.5px currentColor;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
.debug-status {
|
|
739
|
+
display: inline-flex;
|
|
740
|
+
width: 14px;
|
|
741
|
+
height: 14px;
|
|
742
|
+
flex-shrink: 0;
|
|
743
|
+
align-items: center;
|
|
744
|
+
justify-content: center;
|
|
745
|
+
}
|
|
746
|
+
.debug-status-ring {
|
|
747
|
+
width: 7px;
|
|
748
|
+
height: 7px;
|
|
749
|
+
box-sizing: border-box;
|
|
750
|
+
border: 1.5px solid var(--text-dim);
|
|
751
|
+
border-radius: 50%;
|
|
752
|
+
}
|
|
753
|
+
.debug-status-ring.is-closing {
|
|
754
|
+
border-style: dashed;
|
|
755
|
+
border-color: var(--dbg-warn);
|
|
756
|
+
}
|
|
757
|
+
.debug-status-ring.is-none {
|
|
758
|
+
border-style: dotted;
|
|
759
|
+
border-color: var(--text-dim);
|
|
760
|
+
}
|
|
761
|
+
.debug-status-ring.is-starting {
|
|
762
|
+
border-style: dashed;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
/* The chat's details under its row, from the title's edge; the row's tint carried down. */
|
|
766
|
+
.debug-detail {
|
|
767
|
+
display: flex;
|
|
768
|
+
min-width: 0;
|
|
769
|
+
flex-direction: column;
|
|
770
|
+
gap: 4px;
|
|
771
|
+
margin-bottom: 2px;
|
|
772
|
+
padding: 0 4px 5px 24px;
|
|
773
|
+
border-radius: 0 0 4px 4px;
|
|
774
|
+
background: var(--bg-selected);
|
|
775
|
+
}
|
|
776
|
+
.debug-detail-line {
|
|
777
|
+
display: flex;
|
|
778
|
+
min-width: 0;
|
|
779
|
+
flex-wrap: wrap;
|
|
780
|
+
align-items: center;
|
|
781
|
+
gap: 2px 6px;
|
|
782
|
+
}
|
|
783
|
+
.debug-detail-id,
|
|
784
|
+
.debug-starts {
|
|
785
|
+
color: var(--text-dim);
|
|
786
|
+
font-family: var(--font-mono);
|
|
787
|
+
font-size: 11px;
|
|
788
|
+
}
|
|
789
|
+
.debug-idle-row {
|
|
790
|
+
display: flex;
|
|
791
|
+
flex-wrap: wrap;
|
|
792
|
+
align-items: center;
|
|
793
|
+
gap: 4px 8px;
|
|
794
|
+
}
|
|
795
|
+
.debug-subhead {
|
|
796
|
+
display: flex;
|
|
797
|
+
align-items: center;
|
|
798
|
+
gap: 6px;
|
|
799
|
+
color: var(--text);
|
|
800
|
+
font-size: 11px;
|
|
801
|
+
font-weight: 700;
|
|
802
|
+
}
|
|
803
|
+
.debug-panel .debug-subhead.is-dim {
|
|
804
|
+
color: var(--text-dim);
|
|
805
|
+
}
|
|
806
|
+
.debug-run-line {
|
|
807
|
+
display: flex;
|
|
808
|
+
flex-wrap: wrap;
|
|
809
|
+
align-items: center;
|
|
810
|
+
gap: 2px 6px;
|
|
811
|
+
}
|
|
812
|
+
.debug-run-icon {
|
|
813
|
+
display: inline-flex;
|
|
814
|
+
width: 12px;
|
|
815
|
+
height: 12px;
|
|
816
|
+
flex-shrink: 0;
|
|
817
|
+
align-items: center;
|
|
818
|
+
justify-content: center;
|
|
819
|
+
}
|
|
820
|
+
.debug-run-icon svg {
|
|
821
|
+
width: 12px;
|
|
822
|
+
height: 12px;
|
|
823
|
+
}
|
|
824
|
+
.debug-run-name {
|
|
825
|
+
min-width: 0;
|
|
826
|
+
overflow: hidden;
|
|
827
|
+
color: var(--text);
|
|
828
|
+
font-size: 12px;
|
|
829
|
+
text-overflow: ellipsis;
|
|
830
|
+
white-space: nowrap;
|
|
831
|
+
}
|
|
832
|
+
.debug-pills {
|
|
833
|
+
display: flex;
|
|
834
|
+
flex-wrap: wrap;
|
|
835
|
+
align-items: center;
|
|
836
|
+
gap: 4px 10px;
|
|
837
|
+
}
|
|
838
|
+
.debug-pill {
|
|
839
|
+
display: inline-flex;
|
|
840
|
+
align-items: center;
|
|
841
|
+
gap: 4px;
|
|
842
|
+
font-size: 11px;
|
|
843
|
+
}
|
|
844
|
+
.debug-pill-state {
|
|
845
|
+
color: var(--text-dim);
|
|
846
|
+
white-space: nowrap;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
.debug-group {
|
|
850
|
+
display: flex;
|
|
851
|
+
flex-direction: column;
|
|
852
|
+
}
|
|
853
|
+
.debug-group-head {
|
|
854
|
+
display: flex;
|
|
855
|
+
min-height: 22px;
|
|
856
|
+
align-items: center;
|
|
857
|
+
gap: 5px;
|
|
858
|
+
color: var(--text-dim);
|
|
859
|
+
font-size: 11px;
|
|
860
|
+
}
|
|
861
|
+
.debug-group-head svg {
|
|
862
|
+
flex-shrink: 0;
|
|
863
|
+
}
|
|
864
|
+
.debug-group-name {
|
|
865
|
+
min-width: 0;
|
|
866
|
+
overflow: hidden;
|
|
867
|
+
font-weight: 600;
|
|
868
|
+
text-overflow: ellipsis;
|
|
869
|
+
white-space: nowrap;
|
|
870
|
+
}
|
|
871
|
+
.debug-group-count {
|
|
872
|
+
font-family: var(--font-mono);
|
|
873
|
+
font-size: 10px;
|
|
874
|
+
font-variant-numeric: tabular-nums;
|
|
875
|
+
}
|
|
876
|
+
.debug-row {
|
|
877
|
+
display: grid;
|
|
878
|
+
min-height: 24px;
|
|
879
|
+
/* The title keeps room for a few characters; the badges wrap before they take it all. */
|
|
880
|
+
grid-template-columns: 14px minmax(96px, 1fr) auto 104px;
|
|
881
|
+
align-items: center;
|
|
882
|
+
column-gap: 6px;
|
|
883
|
+
padding: 0 4px;
|
|
884
|
+
border-radius: 4px;
|
|
885
|
+
}
|
|
886
|
+
.debug-row.debug-list-head {
|
|
887
|
+
min-height: 18px;
|
|
888
|
+
color: var(--text-dim);
|
|
889
|
+
font-size: 10px;
|
|
890
|
+
}
|
|
891
|
+
/* At the end of their columns, spilling left rather than out of the row when wider. */
|
|
892
|
+
.debug-list-head-holders,
|
|
893
|
+
.debug-list-head-idle {
|
|
894
|
+
justify-self: end;
|
|
895
|
+
white-space: nowrap;
|
|
896
|
+
}
|
|
897
|
+
.debug-row.is-current {
|
|
898
|
+
position: relative;
|
|
899
|
+
background: var(--bg-selected);
|
|
900
|
+
}
|
|
901
|
+
.debug-row.has-detail {
|
|
902
|
+
border-radius: 4px 4px 0 0;
|
|
903
|
+
}
|
|
904
|
+
/* The sidebar's mark of the selected session (app/sidebar.css): a short bar on the left edge,
|
|
905
|
+
on the first line however many lines the row takes. */
|
|
906
|
+
.debug-row.is-current::before {
|
|
907
|
+
content: "";
|
|
908
|
+
position: absolute;
|
|
909
|
+
top: 5px;
|
|
910
|
+
left: 0;
|
|
911
|
+
width: 3px;
|
|
912
|
+
height: 14px;
|
|
913
|
+
border-radius: 0 2px 2px 0;
|
|
914
|
+
background: var(--accent);
|
|
915
|
+
}
|
|
916
|
+
.debug-row-status {
|
|
917
|
+
display: inline-flex;
|
|
918
|
+
width: 14px;
|
|
919
|
+
justify-content: center;
|
|
920
|
+
}
|
|
921
|
+
.debug-row-title {
|
|
922
|
+
position: relative;
|
|
923
|
+
display: flex;
|
|
924
|
+
min-width: 0;
|
|
925
|
+
align-items: center;
|
|
926
|
+
gap: 4px;
|
|
927
|
+
}
|
|
928
|
+
.debug-row.is-sub .debug-row-title {
|
|
929
|
+
padding-left: 16px;
|
|
930
|
+
}
|
|
931
|
+
.debug-row-branch {
|
|
932
|
+
position: absolute;
|
|
933
|
+
top: calc(50% - 8px);
|
|
934
|
+
left: 4px;
|
|
935
|
+
width: 8px;
|
|
936
|
+
height: 8px;
|
|
937
|
+
border-bottom: 1px solid var(--border);
|
|
938
|
+
border-left: 1px solid var(--border);
|
|
939
|
+
}
|
|
940
|
+
.debug-row-name {
|
|
941
|
+
min-width: 0;
|
|
942
|
+
overflow: hidden;
|
|
943
|
+
color: var(--text);
|
|
944
|
+
font-size: 12px;
|
|
945
|
+
text-overflow: ellipsis;
|
|
946
|
+
white-space: nowrap;
|
|
947
|
+
}
|
|
948
|
+
.debug-row.is-sub .debug-row-name {
|
|
949
|
+
color: var(--text-muted);
|
|
950
|
+
}
|
|
951
|
+
.debug-row.is-current .debug-row-name {
|
|
952
|
+
font-weight: 600;
|
|
953
|
+
}
|
|
954
|
+
.debug-row.is-placeholder .debug-row-name {
|
|
955
|
+
color: var(--text-dim);
|
|
956
|
+
}
|
|
957
|
+
.debug-row-starts {
|
|
958
|
+
flex-shrink: 0;
|
|
959
|
+
color: var(--text-dim);
|
|
960
|
+
font-family: var(--font-mono);
|
|
961
|
+
font-size: 10px;
|
|
962
|
+
}
|
|
963
|
+
.debug-row-badges {
|
|
964
|
+
display: flex;
|
|
965
|
+
min-width: 0;
|
|
966
|
+
flex-wrap: wrap;
|
|
967
|
+
justify-content: flex-end;
|
|
968
|
+
align-items: center;
|
|
969
|
+
gap: 3px 8px;
|
|
970
|
+
}
|
|
971
|
+
.debug-row-idle {
|
|
972
|
+
display: flex;
|
|
973
|
+
align-items: center;
|
|
974
|
+
justify-content: flex-end;
|
|
975
|
+
gap: 4px;
|
|
976
|
+
}
|
|
977
|
+
.debug-row-forced {
|
|
978
|
+
width: 6px;
|
|
979
|
+
height: 6px;
|
|
980
|
+
flex-shrink: 0;
|
|
981
|
+
border-radius: 1px;
|
|
982
|
+
background: currentColor;
|
|
983
|
+
}
|
|
984
|
+
.debug-row-idle-text {
|
|
985
|
+
min-width: 3ch;
|
|
986
|
+
font-family: var(--font-mono);
|
|
987
|
+
font-size: 11px;
|
|
988
|
+
font-variant-numeric: tabular-nums;
|
|
989
|
+
text-align: right;
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
/* The server's totals beside its title. */
|
|
993
|
+
.debug-server-head {
|
|
994
|
+
flex-wrap: wrap;
|
|
995
|
+
gap: 4px 14px;
|
|
996
|
+
color: var(--text-dim);
|
|
997
|
+
font-size: 11px;
|
|
998
|
+
}
|
|
999
|
+
.debug-server-item {
|
|
1000
|
+
display: inline-flex;
|
|
1001
|
+
flex-wrap: wrap;
|
|
1002
|
+
align-items: center;
|
|
1003
|
+
gap: 3px 4px;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/* Narrower: the sessions under the server's pages, one border down both; the page's column
|
|
1007
|
+
beside them, its height going to the sessions' row rather than opening a gap under the pages. */
|
|
1008
|
+
@container debug-panel (max-width: 1239px) {
|
|
1009
|
+
.debug-cols {
|
|
1010
|
+
grid-template-areas: "page server" "page sessions";
|
|
1011
|
+
grid-template-columns: minmax(320px, max-content) minmax(0, 560px);
|
|
1012
|
+
grid-template-rows: auto 1fr;
|
|
1013
|
+
}
|
|
1014
|
+
.debug-col-sessions {
|
|
1015
|
+
padding-top: 10px;
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
@container debug-panel (max-width: 760px) {
|
|
1019
|
+
.debug-cols {
|
|
1020
|
+
grid-template-areas: "page" "server" "sessions";
|
|
1021
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1022
|
+
grid-template-rows: none;
|
|
1023
|
+
}
|
|
1024
|
+
.debug-col-server {
|
|
1025
|
+
margin-top: 10px;
|
|
1026
|
+
padding-top: 10px;
|
|
1027
|
+
border-top: 1px solid var(--border);
|
|
1028
|
+
}
|
|
1029
|
+
.debug-col-server,
|
|
1030
|
+
.debug-col-sessions {
|
|
1031
|
+
margin-left: 0;
|
|
1032
|
+
padding-left: 0;
|
|
1033
|
+
border-left: 0;
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
@container debug-panel (max-width: 520px) {
|
|
1037
|
+
.debug-detail-id {
|
|
1038
|
+
display: none;
|
|
1039
|
+
}
|
|
1040
|
+
.debug-row {
|
|
1041
|
+
grid-template-columns: 14px minmax(0, 1fr) 64px;
|
|
1042
|
+
}
|
|
1043
|
+
/* The badges take a line of their own under the title, which keeps its width. */
|
|
1044
|
+
.debug-row-badges {
|
|
1045
|
+
grid-column: 2 / -1;
|
|
1046
|
+
grid-row: 2;
|
|
1047
|
+
flex-wrap: wrap;
|
|
1048
|
+
justify-content: flex-start;
|
|
1049
|
+
padding-bottom: 4px;
|
|
1050
|
+
}
|
|
1051
|
+
.debug-row.is-sub .debug-row-badges {
|
|
1052
|
+
padding-left: 16px;
|
|
1053
|
+
}
|
|
1054
|
+
.debug-row-badges:empty,
|
|
1055
|
+
.debug-list-head-holders,
|
|
1056
|
+
.debug-page-holder {
|
|
1057
|
+
display: none;
|
|
1058
|
+
}
|
|
1059
|
+
.debug-page-row {
|
|
1060
|
+
grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr) 24px;
|
|
1061
|
+
}
|
|
1062
|
+
.debug-row-idle-bar {
|
|
1063
|
+
display: none;
|
|
1064
|
+
}
|
|
1065
|
+
.debug-server-head .debug-section-title {
|
|
1066
|
+
flex-basis: 100%;
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
`;function yT(e){let{sessionId:t,running:n,...r}=e,{t:i}=(0,tw.s)(),[s,o]=(0,u.useState)(null),[l,a]=(0,u.useState)("loading"),c=(0,u.useRef)(null);return((0,u.useEffect)(()=>{let e,r=new AbortController,i=async()=>{try{let s=await fetch(`/api/sessions/${encodeURIComponent(t)}`,{signal:r.signal,cache:"no-store"});if(404===s.status){a("missing"),n&&(e=setTimeout(()=>void i(),1e3));return}let l=await s.json();l.info?o(l.info):a("error")}catch(e){e instanceof Error&&"AbortError"===e.name||a("error")}};return i(),()=>{r.abort(),clearTimeout(e)}},[t,n]),s)?(0,d.jsx)(c3,{...r,session:s,sessionRunning:n,newSessionCwd:null,newSessionDraftKey:null,chatInputRef:c,panel:!0}):(0,d.jsx)("div",{role:"error"===l?"alert":void 0,style:{padding:"24px 16px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:i("loading"===l||n?"sessionPanel.loading":"missing"===l?"sessionPanel.missing":"sessionPanel.error")})}let yR={messages:[],entryIds:[],oldestEntryId:null,hasMore:!1};function yL(e,t){let n=new URLSearchParams({deferThinking:"1",deferMedia:"1",tail:String(100)});return t&&n.set("before",t),`/api/sessions/${encodeURIComponent(e)}/context?${n}`}function yA(e){return{messages:e.messages??[],entryIds:e.entryIds??[],oldestEntryId:e.oldestEntryId??null,hasMore:!!e.hasMore}}function yP(e){let{sessionId:t,fallbackLabel:n,running:r,onOpenFile:i,variant:s="subagent"}=e,{t:o,locale:l}=(0,tw.s)(),[a,c]=(0,u.useState)(null),[p,h]=(0,u.useState)(n),[m,f]=(0,u.useState)(yR),{messages:g,entryIds:x,oldestEntryId:v,hasMore:b}=m,y=(0,u.useRef)(m);y.current=m;let[w,j]=(0,u.useState)(!1),[k,S]=(0,u.useState)(!1),[C,N]=(0,u.useState)(null),[E,$]=(0,u.useState)(!0),[M,I]=(0,u.useState)(0);(0,u.useEffect)(()=>{let e=new AbortController;return(async()=>{try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}`,{signal:e.signal,cache:"no-store"});if(404===r.status)return;if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(!i.info)throw Error(i.error??`HTTP ${r.status}`);c(i.info),h(i.info.name||i.info.firstMessage||n)}catch{}})(),()=>e.abort()},[t,r,M,n]),(0,u.useEffect)(()=>{let e=new AbortController,n=!1,i=!1,s=async()=>{if(!i){i=!0;try{let r=await fetch(yL(t),{signal:e.signal,cache:"no-store"});if(404===r.status){n||S(!0);return}if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(n)return;S(!1),N(null),f(e=>{var t;let n,r,s;return t=yA(i.context),n=new Map,e.entryIds.forEach((t,r)=>n.set(t,e.messages[r])),r=t.messages.map((e,r)=>n.get(t.entryIds[r])??e),(s=t.hasMore&&t.entryIds.length?e.entryIds.indexOf(t.entryIds[0]):-1)<0?{...t,messages:r}:{messages:[...e.messages.slice(0,s),...r],entryIds:[...e.entryIds.slice(0,s),...t.entryIds],oldestEntryId:e.oldestEntryId,hasMore:e.hasMore}})}catch(e){n||e instanceof Error&&"AbortError"===e.name||N(e instanceof Error?e.message:String(e))}finally{i=!1,n||$(!1)}}};if(s(),!r)return()=>{n=!0,e.abort()};let o=setInterval(()=>{"visible"===document.visibilityState&&s()},2e3);return()=>{n=!0,clearInterval(o),e.abort()}},[t,r,M]);let T=(0,u.useRef)(null),R=(0,u.useRef)(!0),L=(0,u.useRef)(null),A=(0,u.useRef)(!1),P=(0,u.useRef)(null);(0,u.useEffect)(()=>()=>P.current?.abort(),[]);let z=(0,u.useCallback)(async()=>{if(!v||A.current)return;A.current=!0;let e=new AbortController;P.current=e,j(!0);try{let n=await fetch(yL(t,v),{signal:e.signal,cache:"no-store"});if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();if(y.current.oldestEntryId!==v)return;let i=T.current;L.current=i?i.scrollHeight-i.scrollTop:null,f(e=>{var t;return t=yA(r.context),e.oldestEntryId!==v?e:{messages:[...t.messages,...e.messages],entryIds:[...t.entryIds,...e.entryIds],oldestEntryId:t.oldestEntryId,hasMore:t.hasMore}})}catch{}finally{A.current=!1,P.current===e&&(P.current=null),e.signal.aborted||j(!1)}},[v,t]),W=(0,u.useCallback)(()=>{let e=T.current;e&&(R.current=e.scrollHeight-e.scrollTop-e.clientHeight<60)},[]);(0,u.useLayoutEffect)(()=>{let e=T.current,t=L.current;L.current=null,e&&(null!==t?e.scrollTop=e.scrollHeight-t:R.current&&(e.scrollTop=e.scrollHeight))},[g]);let O=(0,u.useMemo)(()=>(function(e){let t=new Map;for(let n of e)"toolResult"===n.role&&t.set(n.toolCallId,n);return t})(g),[g]),F=a?.relation?.kind==="subagent"?a.relation:null,D=r?"running":F?.status??"completed";return(0,d.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minWidth:0},children:[(0,d.jsxs)("div",{style:{display:"history"===s?"none":"flex",alignItems:"center",gap:8,padding:"6px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,minHeight:36},children:[(0,d.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--accent)",flexShrink:0},"aria-hidden":"true",children:(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,d.jsx)("strong",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:600},title:F?`${F.profile??o("agentSwitcher.subagent")} \xb7 ${p}`:p,children:p}),(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,color:ba(D),fontSize:11,whiteSpace:"nowrap",flexShrink:0},title:F?.description,children:[(0,d.jsx)(bc,{status:D}),(0,d.jsx)("span",{children:o(`agentSwitcher.status.${D}`)})]}),(0,d.jsx)("button",{type:"button",onClick:()=>I(e=>e+1),title:o("subagent.refresh"),"aria-label":o("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:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,d.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,d.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,d.jsx)("path",{d:"M21 3v6h-6"})]})})]}),(0,d.jsx)("div",{ref:T,onScroll:W,style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"10px 0"},lang:l,children:"history"===s&&E&&0===g.length?(0,d.jsx)("div",{className:"workspace-empty",role:"status",style:{padding:"24px 16px"},children:o("history.loading")}):k?(0,d.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:o("history"===s?"history.unavailable":r?"subagent.viewer.starting":"subagent.viewer.error")}):C&&0===g.length?(0,d.jsxs)("div",{role:"alert",style:{padding:"24px 16px",color:"#dc2626",fontSize:12,textAlign:"center"},children:[o("history"===s?"history.unavailable":"subagent.viewer.error"),(0,d.jsx)("div",{style:{marginTop:6,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:C})]}):(0,d.jsxs)(d.Fragment,{children:[b&&(0,d.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:"4px 0 10px"},children:(0,d.jsx)("button",{type:"button",onClick:z,disabled:w,style:{fontSize:11,padding:"4px 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:w?"default":"pointer"},children:o("i18n.loadMore")})}),g.map((e,n)=>(0,d.jsx)("div",{style:{padding:"2px 12px"},children:(0,d.jsx)(oz,{message:e,toolResults:O,cwd:a?.cwd,onOpenFile:i,sessionId:t,entryId:x[n]})},x[n]??n)),0===g.length&&!C&&(0,d.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:o("history"===s?"history.empty":"subagent.viewer.empty")})]})})]})}var yz=n(63606),yW=n(8422);let yO="pi-web:terminal-theme",yF="dark",yD={dark:{background:"#111318",foreground:"#d7dce5",cursor:"#60a5fa",selectionBackground:"#365b8a",black:"#1d222b",red:"#f87171",green:"#4ade80",yellow:"#facc15",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#e5e7eb",brightBlack:"#6b7280",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde047",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#ffffff"},light:{background:"#fbfbfc",foreground:"#24292f",cursor:"#2563eb",cursorAccent:"#fbfbfc",selectionBackground:"#bfd7fb",black:"#24292f",red:"#cf222e",green:"#116329",yellow:"#7d4e00",blue:"#0969da",magenta:"#8250df",cyan:"#1b7c83",white:"#6e7781",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#1a7f37",brightYellow:"#633c01",brightBlue:"#218bff",brightMagenta:"#a475f9",brightCyan:"#3192aa",brightWhite:"#8c959f"}};function yB(){try{var e;return e=window.localStorage.getItem(yO),"light"===e?"light":yF}catch{return yF}}let y_=null,yH=new Set;function yU(){return null===y_&&(y_=yB()),y_}function yq(){yH.forEach(e=>e())}function yK(e){if(null!==e.key&&e.key!==yO)return;let t=yB();t!==y_&&(y_=t,yq())}function yV(e){return 0===yH.size&&(window.addEventListener("storage",yK),y_=yB()),yH.add(e),()=>{yH.delete(e),0===yH.size&&window.removeEventListener("storage",yK)}}async function yZ(e,t){let n=await fetch(e,{...t,signal:AbortSignal.timeout(15e3)}),r=await n.json().catch(()=>{throw Error(`Terminal request failed (HTTP ${n.status}): server returned an empty or invalid JSON response. Check the pi-web server log.`)});if(!r||"object"!=typeof r)throw Error(`Terminal request failed (HTTP ${n.status}): invalid JSON response. Check the pi-web server log.`);if(!n.ok)throw Error(r.error??`HTTP ${n.status}`);return r}let yJ={ctrl:!1,alt:!1},yY=[["Escape","/","-","Home","ArrowUp","End","PageUp"],["Tab","ctrl","alt","ArrowLeft","ArrowDown","ArrowRight","PageDown"]],yG=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown"]),yX={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F"},yQ={PageUp:5,PageDown:6};function y0(e){let{ctrl:t,alt:n}=e;return 1+2*!!n+4*!!t}function y1(e,t){if(!t.ctrl&&!t.alt||1!=[...e].length)return e;let n=t.ctrl?function(e){if(/^[a-z]$/i.test(e))return String.fromCharCode(31&e.toUpperCase().charCodeAt(0));let t=e.charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):" "===e?"\0":"/"===e||"-"===e?"\x1f":"?"===e?"":e}(e):e;return t.alt?`\x1b${n}`:n}let y2={Escape:"ESC","/":"/","-":"-",Home:"HOME",ArrowUp:"↑",End:"END",PageUp:"PGUP",Tab:"TAB",ctrl:"CTRL",alt:"ALT",ArrowLeft:"↓",ArrowDown:"↓",ArrowRight:"↑",PageDown:"PGDN"},y4={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",PageUp:"Page Up",PageDown:"Page Down"};function y8(e){let t=window.matchMedia("(pointer: coarse)");return t.addEventListener("change",e),window.screen.orientation?.addEventListener("change",e),window.addEventListener("orientationchange",e),window.addEventListener("resize",e),()=>{t.removeEventListener("change",e),window.screen.orientation?.removeEventListener("change",e),window.removeEventListener("orientationchange",e),window.removeEventListener("resize",e)}}let y3=()=>window.matchMedia("(pointer: coarse)").matches&&function(){let e=window.screen.orientation?.type;if(e)return e.startsWith("portrait");let t=window.orientation;return"number"==typeof t?t%180==0:window.innerHeight>=window.innerWidth}();function y6(e){let{modifiers:t,onKey:n,onToggleModifier:r}=e,{t:i}=(0,tw.s)(),s=(0,u.useRef)(null),o=()=>{null!==s.current&&window.clearTimeout(s.current),s.current=null};return(0,u.useEffect)(()=>o,[]),(0,d.jsx)("div",{className:"terminal-extra-keys",role:"toolbar","aria-label":i("terminal.extraKeys"),children:yY.flat().map(e=>{let i="ctrl"===e||"alt"===e;return(0,d.jsx)("button",{type:"button",tabIndex:-1,className:i&&t[e]?"is-active":void 0,"aria-pressed":i?t[e]:void 0,"aria-label":i?void 0:y4[e],onPointerDown:t=>((e,t)=>{if(e.preventDefault(),0!==e.button)return;if(o(),"ctrl"===t||"alt"===t)return void r(t);if(n(t),!yG.has(t))return;let i=()=>{n(t),s.current=window.setTimeout(i,50)};s.current=window.setTimeout(i,400)})(t,e),onPointerUp:o,onPointerCancel:o,onPointerLeave:o,onMouseDown:e=>e.preventDefault(),onContextMenu:e=>e.preventDefault(),children:"ArrowLeft"===e||"ArrowRight"===e?(0,d.jsx)("span",{className:"is-rotated",children:y2[e]}):y2[e]},e)})})}function y5(e){let{tab:t,active:n,onRestart:r,onClosed:i,onCloseError:s}=e,{t:o}=(0,tw.s)(),{id:l,cwd:a,restored:c}=t,p=(0,u.useRef)(null),h=(0,u.useRef)(null),m=(0,u.useRef)(Promise.resolve()),f=(0,u.useRef)(null),g=(0,u.useRef)({onClosed:i,onCloseError:s});g.current={onClosed:i,onCloseError:s};let[x,v]=(0,u.useState)("connecting"),[b,y]=(0,u.useState)(null),[w,j]=(0,u.useState)(null),[k,S]=(0,u.useState)(0),[C,N]=(0,u.useState)(yJ),E=(0,u.useRef)(C),$=(0,u.useSyncExternalStore)(y8,y3,()=>!1),M=(0,u.useSyncExternalStore)(yV,yU,()=>yF),I=(0,u.useRef)(M);I.current=M;let T=lq(lQ().fontSize)-14+13,R=(0,u.useRef)(T);R.current=T;let L=(0,u.useRef)(()=>{}),A=(0,u.useCallback)(()=>{let e=E.current;return(e.ctrl||e.alt)&&(E.current=yJ,N(yJ)),e},[]);(0,u.useEffect)(()=>{var e;let t,n,r,i,s,o=p.current;if(!o)return;let d=!1,u=null,g=!1,x=!1,b=!1;v("connecting"),y(null),j(null);let w=()=>{let e=getComputedStyle(o);return{fontFamily:e.getPropertyValue("--font-mono").trim()||"monospace",fontWeight:l4(e.getPropertyValue("--font-mono-weight"))}},S=new yW.B({cursorBlink:!0,...w(),fontSize:R.current,lineHeight:1.25,scrollback:8e3,screenReaderMode:!0,disableStdin:!0,theme:yD[I.current]});h.current=S;let C=new yz.Y;S.loadAddon(C),S.open(o),S.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;let t=e.key.toLowerCase();return!((e.ctrlKey||e.metaKey)&&"v"===t||(e.ctrlKey||e.metaKey)&&"c"===t&&S.hasSelection())});let N=(e=e=>{d||(b=!0,S.options.disableStdin=!0,y(e.message),v("error"))},n=Promise.resolve(),r=!1,i=null,s=t=>{r||(n=n.then(async()=>{r||(t===i&&(i=null),await yZ(`/api/terminal/${encodeURIComponent(l)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))}).catch(t=>{r=!0,e(t)}))},{write(e){if(!r)for(let t of e.match(/[\s\S]{1,32768}/gu)??[])i&&i.data.length+t.length<=65536?i.data+=t:s(i={type:"input",data:t})},resize(e,t){i=null,s({type:"resize",cols:e,rows:t})},stop:()=>(r=!0,i=null,n)});f.current=N;let E=S.onData(e=>{!g||x||b||N.write(y1(e,A()))}),$=()=>{o.offsetWidth&&o.offsetHeight&&C.fit()},M=S.onResize(e=>{let{cols:t,rows:n}=e;!g||x||b||N.resize(Math.max(2,t),Math.max(2,n))});L.current=$;let T=new ResizeObserver($);T.observe(o);let P=as(()=>{if(d)return;let e=w();S.options.fontFamily=e.fontFamily,S.options.fontWeight=e.fontWeight,$()}),z=()=>{if(d||x||!navigator.onLine)return;u?.close();let e=new URLSearchParams({holder:tt()});void 0!==t&&e.set("after",String(t)),(u=ts("terminal",new EventSource(`/api/terminal/${encodeURIComponent(l)}/events?${e}`),a)).onmessage=e=>{let n=JSON.parse(e.data);if("output"===n.type){if(n.reset)S.reset();else if(void 0!==t&&n.offset<=t)return;S.write(n.data),t=n.offset}else x=!0,g=!1,S.options.disableStdin=!0,u?.close(),j("exit"===n.type?n.exitCode:null),v("exited")},u.onopen=()=>{g=!0,!b&&(S.options.disableStdin=!1,v("ready"),$(),N.resize(Math.max(2,S.cols),Math.max(2,S.rows)),o.offsetWidth&&o.offsetHeight&&S.focus())},u.onerror=()=>{d||x||(g=!1,S.options.disableStdin=!0,v(u?.readyState===EventSource.CLOSED?"error":"connecting"))}};m.current=(async()=>{$(),c||k>0?await yZ(`/api/terminal/${encodeURIComponent(l)}`):await yZ("/api/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,cwd:a,cols:S.cols,rows:S.rows})}),z()})().catch(e=>{d||(y(e.message),v("error"))});let W=()=>{g=!1,S.options.disableStdin=!0,u?.close(),x||b||v("connecting")},O=e=>{e.persisted&&z()};return window.addEventListener("pagehide",W),window.addEventListener("pageshow",O),window.addEventListener("offline",W),window.addEventListener("online",z),()=>{d=!0,u?.close(),N.stop(),T.disconnect(),P(),E.dispose(),M.dispose(),window.removeEventListener("pagehide",W),window.removeEventListener("pageshow",O),window.removeEventListener("offline",W),window.removeEventListener("online",z),S.dispose(),h.current=null,L.current=()=>{}}},[l,a,c,k,A]),(0,u.useEffect)(()=>{h.current&&(h.current.options.theme=yD[M])},[M]),(0,u.useEffect)(()=>{let e=h.current;e&&e.options.fontSize!==T&&(e.options.fontSize=T,L.current())},[T]),(0,u.useEffect)(()=>{n&&h.current?.focus()},[n]),(0,u.useEffect)(()=>{if(!t.closing)return;let e=!1;return h.current&&(h.current.options.disableStdin=!0),(async()=>{await m.current,await f.current?.stop(),await yZ(`/api/terminal/${encodeURIComponent(l)}`,{method:"DELETE",keepalive:!0}),e||g.current.onClosed()})().catch(t=>{e||(y(t.message),v("error"),g.current.onCloseError())}),()=>{e=!0}},[l,t.closing]);let P="dark"===M?"light":"dark",z="light"===P?"terminal.lightTheme":"terminal.darkTheme";return(0,d.jsxs)("section",{className:"terminal-panel","data-terminal-theme":M,"aria-label":o("terminal.title"),children:[(0,d.jsxs)("header",{className:"terminal-panel-header",children:[(0,d.jsxs)("div",{className:"terminal-panel-path",children:[(0,d.jsx)("span",{className:`terminal-status-dot is-${x}`,title:o(`terminal.${x}`)}),(0,d.jsx)("span",{title:a,children:a})]}),(0,d.jsxs)("div",{className:"terminal-panel-actions",children:["error"===x&&(0,d.jsx)("button",{type:"button",onClick:()=>S(e=>e+1),disabled:!!t.closing,title:o("terminal.reconnect"),"aria-label":o("terminal.reconnect"),children:(0,d.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,d.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,d.jsx)("button",{type:"button",onClick:()=>(function(e){if(e!==yU()){y_=e;try{window.localStorage.setItem(yO,e)}catch{}yq()}})(P),title:o(z),"aria-label":o(z),children:"light"===P?(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.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,d.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,d.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,d.jsx)("button",{type:"button",onClick:r,disabled:!!t.closing,title:o("terminal.restart"),"aria-label":o("terminal.restart"),children:(0,d.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,d.jsx)("path",{d:"M20 11a8 8 0 1 0-2.34 5.66"}),(0,d.jsx)("polyline",{points:"20 4 20 11 13 11"})]})})]})]}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("div",{className:"terminal-panel-error",role:"alert",children:b}),"exited"===x&&(0,d.jsx)("div",{className:"terminal-panel-exit",role:"status",children:null===w?o("terminal.exited"):o("terminal.exitCode",{code:w})})]}),(0,d.jsx)("div",{className:"terminal-xterm",children:(0,d.jsx)("div",{ref:p,className:"terminal-xterm-host"})}),$&&(0,d.jsx)(y6,{modifiers:C,onKey:e=>{let t=h.current;if(!t)return;let n=function(e,t,n){let r=t.ctrl||t.alt,i=yX[e];if(i)return r?`\x1b[1;${y0(t)}${i}`:n?`\x1bO${i}`:`\x1b[${i}`;let s=yQ[e];return s?r?`\x1b[${s};${y0(t)}~`:`\x1b[${s}~`:"Escape"===e?t.alt?"\x1b\x1b":"\x1b":"Tab"===e?t.alt?"\x1b ":" ":y1(e,t)}(e,A(),t.modes.applicationCursorKeysMode);t.input(n,!0)},onToggleModifier:e=>{let t={...E.current,[e]:!E.current[e]};E.current=t,N(t)}})]})}let y9="pi-web:terminal-tabs";function y7(e){return{id:Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join(""),cwd:e}}function we(){let e=document.activeElement;return e instanceof HTMLElement&&(e.isContentEditable||"INPUT"===e.tagName||"SELECT"===e.tagName||"TEXTAREA"===e.tagName)}let wt=[48,120,240,420,720];function wn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return"visible"!==e.visibilityState||!e.hasFocus()}async function wr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{createWindowNotification:(e,t)=>new Notification(e,t),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null},n={body:e.body,...e.tag?{tag:e.tag,renotify:!0}:{}};if(t.getServiceWorkerRegistration)try{let r=await t.getServiceWorkerRegistration();if(r)return await r.showNotification(e.title,{...n,data:{url:e.sessionUrl}}),"service-worker"}catch{}try{let r=t.createWindowNotification(e.title,n);return r.onclick=()=>{r.close(),e.onClick()},"window"}catch{return null}}let wi="pi-web:tab-open-session";function ws(){try{return window.sessionStorage}catch{return null}}function wo(e){if("string"!=typeof e||0===e.length)return null;if(e.startsWith("{"))try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))return null;if("session"===t.kind&&"string"==typeof t.sessionId&&t.sessionId)return{kind:"session",sessionId:t.sessionId};if("new"===t.kind&&"string"==typeof t.cwd&&t.cwd.trim())return{kind:"new",cwd:t.cwd};return null}catch{return null}return{kind:"session",sessionId:e}}function wl(e,t){t.setItem(wi,JSON.stringify(e))}let wa="var(--top-bar-height)",wc=new Set(cy.kU);function wd(e){let t=e.at(-1);return t?`agent:${t.sessionId}`:null}function wu(){var e;let t,n,r,i,s,o,l,a,c,m,b,y,N,E=(0,p.useRouter)(),$=(0,p.useSearchParams)(),[M,I]=(0,u.useState)(()=>(function(e){if("1"===e.get("home"))return{home:!0,requestedCwd:null,sessionId:null,sidebarCollapsed:"collapsed"===e.get("sidebar")};let t=e.get("cwd")?.trim()||null;return{requestedCwd:t,sessionId:t?null:e.get("session")||null,sidebarCollapsed:"collapsed"===e.get("sidebar")}})($)),[T,R]=(0,u.useState)(()=>!M.sessionId&&!M.requestedCwd);sz(),ad();let{locale:L,t:A}=(0,tw.s)(),[P,z]=(0,u.useState)(!1);(0,u.useEffect)(()=>{let e,t=()=>{clearTimeout(e),z(!0),e=setTimeout(()=>z(!1),4e3)};return window.addEventListener(iC,t),()=>{window.removeEventListener(iC,t),clearTimeout(e)}},[]);let W=tT(),O=(0,u.useSyncExternalStore)(t$,tM,tI),F=(0,u.useSyncExternalStore)(tL,tA,tI),[D,B]=(0,u.useState)(null);(0,u.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=null,r=new Set,i=!1,s=()=>{n=null,function(e){let{hasFocusedEditable:t,innerHeight:n,viewportHeight:r,viewportScale:i}=e;return!!t&&n/(i>0?i:1)-r>60}({hasFocusedEditable:we(),innerHeight:window.innerHeight,viewportHeight:e.height,viewportScale:e.scale})?(t.style.setProperty("--app-viewport-height",`${e.height}px`),t.dataset.keyboardOpen="true"):(t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen);let r=0!==window.scrollX||0!==window.scrollY,i=.01>Math.abs(e.scale-1);r&&i&&window.scrollTo(0,0)},o=()=>{null!==n&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(s),(()=>{if(i)return;i=!0;let e=0,t=()=>{if(e>=wt.length){i=!1;return}let n=wt[e++],o=window.setTimeout(()=>{r.delete(o),s(),t()},n);r.add(o)};t()})()},l=()=>{we()&&o()};return o(),e.addEventListener("resize",o),e.addEventListener("scroll",o),window.addEventListener("resize",o),window.addEventListener("focusin",o),window.addEventListener("focusout",o),window.addEventListener("pageshow",o),document.addEventListener("compositionstart",l),document.addEventListener("compositionupdate",l),document.addEventListener("compositionend",l),document.addEventListener("input",l),document.addEventListener("keyup",l),()=>{for(let t of(e.removeEventListener("resize",o),e.removeEventListener("scroll",o),window.removeEventListener("resize",o),window.removeEventListener("focusin",o),window.removeEventListener("focusout",o),window.removeEventListener("pageshow",o),document.removeEventListener("compositionstart",l),document.removeEventListener("compositionupdate",l),document.removeEventListener("compositionend",l),document.removeEventListener("input",l),document.removeEventListener("keyup",l),null!==n&&window.cancelAnimationFrame(n),r))window.clearTimeout(t);r.clear(),t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen}},[]),(0,u.useEffect)(()=>{"Notification"in window&&"granted"===Notification.permission&&hc(L)},[L]);let{soundEnabled:_,onSoundToggle:H,playDoneSound:U,unlockAudio:q,holdAudio:K,soundEnabledRef:V}=function(){let[e,t]=(0,u.useState)(()=>{try{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}catch{return!0}}),n=(0,u.useRef)(e);(0,u.useEffect)(()=>{n.current=e},[e]);let r=(0,u.useRef)(null),i=(0,u.useCallback)(()=>{if(r.current&&"closed"!==r.current.state)return r.current;try{r.current=new AudioContext}catch{return null}return r.current},[]),s=(0,u.useRef)(0),o=(0,u.useRef)(0),l=(0,u.useRef)(void 0),a=(0,u.useCallback)(e=>{clearTimeout(l.current),l.current=setTimeout(()=>{0===s.current&&0===o.current&&e.suspend().catch(()=>{})},1e3)},[]),c=(0,u.useCallback)((e,t)=>{s.current++,e.resume().then(t).catch(()=>{}).then(()=>{s.current--,a(e)})},[a]),d=(0,u.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e&&!n.current)return;let t=i();t&&"running"!==t.state&&c(t,()=>{})},[i,c]),p=(0,u.useCallback)(()=>{let e=!n.current;e?d(!0):r.current?.suspend().catch(()=>{}),n.current=e;try{localStorage.setItem("pi-sound-enabled",String(e))}catch{}t(e)},[d]),h=(0,u.useCallback)(()=>{if(o.current++,clearTimeout(l.current),n.current){let e=i();e&&"running"!==e.state&&c(e,()=>{})}let e=!1;return()=>{!e&&(e=!0,o.current--,r.current&&a(r.current))}},[i,c,a]);return{soundEnabled:e,onSoundToggle:p,playDoneSound:(0,u.useCallback)(()=>{if(!n.current)return;let e=i();if(!e)return;let t=Date.now();c(e,()=>{if(n.current&&!(Date.now()-t>3e3))try{let t;t=e.currentTime,[523.25,659.25].forEach((n,r)=>{let i=e.createOscillator(),s=e.createGain();i.connect(s),s.connect(e.destination),i.type="sine",i.frequency.value=n;let o=t+.18*r;s.gain.setValueAtTime(0,o),s.gain.linearRampToValueAtTime(.18,o+.02),s.gain.exponentialRampToValueAtTime(.001,o+.45),i.start(o),i.stop(o+.45)})}catch{}})},[i,c]),unlockAudio:d,holdAudio:h,soundEnabledRef:n}}(),[Z,J]=(0,u.useState)(!1);(0,u.useEffect)(()=>{try{J("true"===localStorage.getItem("pi-quote-selection-enabled"))}catch{}},[]);let Y=(0,u.useCallback)(e=>{J(e);try{localStorage.setItem("pi-quote-selection-enabled",String(e))}catch{}},[]),G=(0,u.useRef)(new Set),[X,Q]=(0,u.useState)(new Set),ee=(0,u.useCallback)(()=>{V.current&&U()},[U,V]),[et,en]=(0,u.useState)(null),er=(0,u.useRef)(et);er.current=et;let[ei,es]=(0,u.useState)([]),[eo,el]=(0,u.useState)({entries:[],loaded:!1,error:null}),[ea,ec]=(0,u.useState)(null),ed=(0,u.useMemo)(()=>{let e=new Set(eo.entries.map(e=>e.session.id));return ei.filter(t=>!e.has(t.id))},[eo.entries,ei]),eu=(0,u.useCallback)(e=>{es(e),en(t=>{if(!t)return t;let n=e.find(e=>e.id===t.id);return n?{...t,...n,detailsPending:n.detailsPending,relation:n.relation,branch:n.branch,isWorktree:n.isWorktree}:t})},[]),ep=(0,u.useMemo)(()=>et?[...ei.filter(e=>e.id!==et.id),et]:ei,[et,ei]),eh=(0,u.useMemo)(()=>{var e;return(e=et?.id)?x(ep).find(t=>t.root.id===e||t.subagents.some(t=>t.id===e))??null:null},[et?.id,ep]),[em,ef]=(0,u.useState)(()=>new Set),eg=(0,u.useCallback)(e=>{ef(t=>t.size===e.size&&[...e].every(e=>t.has(e))?t:e)},[]),ex=eh?(t=v(e=eh.subagents,em))>0?{count:t,running:!0}:{count:e.length,running:!1}:null,ev=ex?.running?A("agentSwitcher.titleRunning",{count:ex.count}):A("agentSwitcher.title"),[eb,ey]=(0,u.useState)(null),[ej,ek]=(0,u.useState)("initial"),eS=(0,u.useRef)(null),eC=(0,u.useRef)(null),[eN,eE]=(0,u.useState)(null),eM=(0,u.useRef)(null),eI=(0,u.useCallback)(e=>{e&&e.cwd===eM.current?.cwd&&(eM.current=null),eE(e)},[]),eT=(0,u.useRef)(null),eR=(0,u.useRef)(null),[eL,eA]=(0,u.useState)(null),eP=(0,u.useCallback)(e=>{eR.current=e,eA(null)},[]),[ez,eW]=(0,u.useState)(()=>M.requestedCwd?"validating":"idle"),[eO,eF]=(0,u.useState)(null),[eD,eB]=(0,u.useState)(0),[e_,eH]=(0,u.useState)(0),eU=(0,u.useRef)(new Map),eq=(0,u.useCallback)((e,t)=>{eU.current.set(e,t)},[]),[eK,eV]=(0,u.useState)(null),eZ=(0,u.useCallback)(e=>{eV(t=>t===e?null:t)},[]),[eJ,eY]=(0,u.useState)(0),[eG,eX]=(0,u.useState)(null),[eQ,e0]=(0,u.useState)(!1),[e1,e2]=(0,u.useState)(0),e4=(0,u.useRef)(!1);(0,u.useEffect)(()=>{e4.current&&!eG&&e2(e=>e+1),e4.current=null!==eG},[eG]);let[e8,e3]=(0,u.useState)(null),[e6,e9]=(0,u.useState)(!1),[te,tt]=(0,u.useState)(!1),[tn,tr]=(0,u.useState)(null),[ti,ts]=(0,u.useState)(()=>!M.sidebarCollapsed),to=(0,u.useRef)(!M.sidebarCollapsed),tc=(0,u.useRef)(null),td=(0,u.useRef)(null),[tu,tp]=(0,u.useState)(!1),[th,tm]=(0,u.useState)(null),tf=F&&null===th,[tg,tx]=(0,u.useState)(!1),[tv,tb]=(0,u.useState)("file"),ty=tu&&tg&&F,tj=ty&&"file"===tv,tk=ty&&"conversation"===tv,tS=F&&tu,[tC,tN]=(0,u.useState)(!1),tE=F&&tC,tR=(0,u.useRef)(null),tz=(0,u.useRef)(null);(0,u.useEffect)(()=>{tf&&tN(!1)},[tf]);let tO=(0,u.useCallback)(()=>{tb("file"),tN(!tE),tR.current?.focus({preventScroll:!0})},[tE]);(0,u.useEffect)(()=>{tu&&F||tx(!1)},[tu,F]);let[tF,tD]=(0,u.useState)(!1),tB=tF?A("chat.close"):A("chat.moreControls"),[t_,tH]=(0,u.useState)(!1),tU=(0,u.useRef)(260),tq=(0,u.useRef)(560),tK=(0,u.useRef)(320),tV=(0,u.useCallback)(()=>window.innerWidth>=1200?Math.round(.48*window.innerWidth):tP(.42*window.innerWidth,360,640),[]),tZ=(0,u.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:n,rightPanelWidth:r}=e;if(t<=640)return 480;let i=t<960;return Math.min(480,t-(i?320:420)-(!i&&n?r:0))})({viewportWidth:window.innerWidth-62*(window.innerWidth>640),rightPanelOpen:tu,rightPanelWidth:tq.current}),[tu]),tJ=(0,u.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:n,sidebarWidth:r}=e;return t<960?1200:Math.min(1200,t-420-(n?r:0))})({viewportWidth:window.innerWidth-62*(window.innerWidth>640),sidebarOpen:ti,sidebarWidth:tU.current}),[ti]),tY=tW({ariaLabel:A("layout.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:tZ,growthDirection:"right",maxWidth:480,minWidth:180,collapseAt:120,onCollapse:(0,u.useCallback)(()=>{to.current=!1,ts(!1)},[]),storageKey:"pi-sidebar-width",widthRef:tU}),tG=tW({ariaLabel:A("layout.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:560,getDefaultWidth:tV,getMaxWidth:tJ,growthDirection:"left",maxWidth:1200,minWidth:F?520:300,storageKey:"pi-right-panel-width",widthRef:tq}),tX=tW({ariaLabel:A("layout.resizeFileTree"),cssVariable:"--workbench-tree-width",defaultWidth:320,minWidth:200,maxWidth:640,getMaxWidth:(0,u.useCallback)(()=>Math.max(200,Math.min(640,tq.current-280)),[]),growthDirection:"left",persistClamp:!1,collapseAt:120,onCollapse:(0,u.useCallback)(()=>{tN(!0),requestAnimationFrame(()=>tz.current?.focus({preventScroll:!0}))},[]),storageKey:"pi-workbench-file-tree-width",widthRef:tK}),tQ=tX.panelRef,t0=function(e,t,n){let[r,i]=(0,u.useState)(!1),s=(0,u.useRef)(void 0),o=(0,u.useCallback)(()=>{clearTimeout(s.current),s.current=void 0},[]),l=(0,u.useCallback)(()=>{o(),i(!1)},[o]),a=(0,u.useCallback)(()=>{o(),e&&!r&&(s.current=setTimeout(()=>i(!0),120))},[o,e,r]),c=(0,u.useCallback)(()=>{o(),e&&(s.current=setTimeout(()=>{let e=document.activeElement;document.querySelector(".sidebar-menu, .sidebar-sheet")||e&&t.current?.contains(e)&&e.matches("input, textarea, [contenteditable=true], :focus-visible")||i(!1)},280))},[o,e,t]);return(0,u.useEffect)(()=>{e||l()},[e,l]),(0,u.useEffect)(()=>o,[o]),(0,u.useEffect)(()=>{if(!e||!r)return;let i=e=>e instanceof Element&&(t.current?.contains(e)||n.current?.contains(e)||e.closest(".sidebar-menu, .sidebar-sheet, [data-sidebar-restore]")),s=e=>{i(e.target)?o():c()},a=e=>{i(e.target)||l()},d=e=>{"Escape"!==e.key||document.querySelector(".sidebar-menu, .sidebar-sheet")||(e.preventDefault(),e.stopPropagation(),l(),n.current?.focus({preventScroll:!0}))};return document.addEventListener("pointermove",s),document.addEventListener("pointerdown",a,!0),document.addEventListener("keydown",d,!0),()=>{document.removeEventListener("pointermove",s),document.removeEventListener("pointerdown",a,!0),document.removeEventListener("keydown",d,!0)}},[o,l,e,r,t,c,n]),{open:e&&r,show:a,cancel:o,scheduleHide:c,dismiss:l}}(!W&&!ti,tY.panelRef,td),t1=t0.dismiss,t2=tG.panelRef,t4=(0,u.useCallback)(e=>{t2.current=e?.parentElement,tQ.current=e},[t2,tQ]),t8=(0,u.useCallback)(e=>{B(e)},[]),t3=tX.reclampWidth;(0,u.useEffect)(()=>{t3()},[tG.width,t3]);let t6=tY.reclampWidth,t5=tG.reclampWidth;(0,u.useEffect)(()=>{ts(!W&&to.current)},[W]),(0,u.useEffect)(()=>{tH(!0)},[]),(0,u.useEffect)(()=>{tu&&(t6(),t5())},[t5,t6,tu,tX.width]);let t9=(0,u.useRef)(null),[t7,ne]=(0,u.useState)({}),nt=(0,u.useRef)(null),nn=(0,u.useRef)(null),[nr,ni]=(0,u.useState)([]),[ns,no]=(0,u.useState)(null),[nl,nu]=(0,u.useState)(!1),np=(0,u.useRef)(null),nh=v5(nr),nm=(0,u.useCallback)((e,t,n,r)=>{ni(e),no(t),nu(r),np.current=n},[]),nf=(0,u.useCallback)(e=>{!nl&&np.current&&(np.current(e),nK(null))},[nl]),[ng,nx]=(0,u.useState)(null),[nv,nb]=(0,u.useState)(null),[ny,nw]=(0,u.useState)(!1),nj=(0,u.useRef)(null),nk=(0,u.useRef)(0),nS=(0,u.useRef)(null),nC=(0,u.useCallback)(e=>{nx(e),nw(!1)},[]),nN=(0,u.useCallback)(e=>{nb(e)},[]),nE=(0,u.useCallback)(e=>{nk.current+=1,nj.current=e,nw(!1)},[]),n$=(0,u.useRef)(null),nM=(0,u.useCallback)(e=>{n$.current=e},[]);(0,u.useEffect)(()=>{null===tl.trackingSince&&"u">typeof document&&(tl.trackingSince=Date.now(),document.addEventListener("visibilitychange",ta))},[]);let[nI,nT]=(0,u.useState)(null),[nR,nA]=(0,u.useState)({kind:"idle"}),nP=(0,u.useRef)(null),nz=(0,u.useRef)(et?.id??null);nz.current=et?.id??null;let nW=(0,u.useCallback)(e=>{nT(e)},[]),[nO,nF]=(0,u.useState)(null),nD=(0,u.useRef)(null),nB=(0,u.useCallback)((e,t)=>{nF(null),iN(t).then(()=>{nD.current&&clearTimeout(nD.current),nF(e),nD.current=setTimeout(()=>nF(null),1400)},()=>{})},[]);(0,u.useEffect)(()=>()=>{nD.current&&clearTimeout(nD.current),nP.current&&clearTimeout(nP.current)},[]);let[n_,nH]=(0,u.useState)(null),nU=(0,u.useCallback)(e=>{nH(e)},[]),[nq,nK]=(0,u.useState)(null),[nV,nZ]=(0,u.useState)(0),nJ=(0,u.useRef)(null),nY=(0,u.useRef)(null);(0,u.useLayoutEffect)(()=>{nq&&!eG&&nY.current?.focus({preventScroll:!0})},[nq,eG]),(0,u.useEffect)(()=>{if(nq&&!eG)return e5(document,()=>nK(null))},[nq,eG]),(0,u.useEffect)(()=>{eG&&(nK(null),tD(!1),W&&ts(!1))},[eG,W]);let nG=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];tb("conversation"),W&&ts(!1),eX(null),nK(t=>t===e?null:e),t||tD(!1)},[W]),nX=(0,u.useRef)(null),nQ=(0,u.useCallback)(e=>{nK(e=>"debug"===e?null:e),e&&requestAnimationFrame(()=>e7(document,nX.current))},[]),n0=(0,u.useCallback)(e=>{let t=nq!==e;if(nG(e),!t||ny)return;let n=nj.current;if(!n)return;let r=++nk.current;nw(!0),n().catch(e=>{console.error("Failed to load system information:",e)}).finally(()=>{nk.current===r&&nw(!1)})},[nq,ny,nG]),n1=(0,u.useCallback)(()=>{tb("conversation"),W&&ts(!1),tD(!1),nK("session")},[W]),n2=(0,u.useCallback)(e=>{tb("conversation"),t1(),e0(!1),eX(e)},[t1]),n4=(0,u.useCallback)(()=>{t1(),W&&tD(!1),ts(e=>{let t=!e;return W||(to.current=t),t})},[t1,W]),n8=(0,u.useCallback)(()=>{ts(!1),nK(null),tD(e=>!e)},[]),n3=(0,u.useCallback)(()=>{W&&(ts(!1),nK(null),tD(!1)),tp(!tu)},[W,tu]),n6=(0,u.useCallback)(()=>{tp(!1),nt.current?.querySelector(".workspace-files-toggle:not([aria-hidden='true'])")?.focus({preventScroll:!0})},[]),n5=(0,u.useCallback)(()=>{nK(null),tb("file"),tx(e=>!e)},[]);(0,u.useEffect)(()=>{if(!tF)return;let e=e=>{let t=nn.current;t&&e.composedPath().includes(t)||tD(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),tD(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[tF]),(0,u.useEffect)(()=>{tD(!1)},[W,O,et?.id,ej]);let[n9,n7]=(0,u.useState)([]),re=(0,u.useRef)(new Map),[rt,rn]=(0,u.useState)(0),rr=(0,u.useRef)(0),[ri,rs]=(0,u.useState)([]),[ro,rl]=(0,u.useState)(!1),[ra,rc]=(0,u.useState)([]),rd=[...n9,...ri.map(e=>({id:e.id,label:ew(e.cwd)||e.cwd,filePath:e.cwd,kind:"terminal",closing:!!e.closing})),...ra.map(e=>{let t=e.side?ei.find(t=>t.id===e.sessionId):void 0,n=t?f(t,e.label):e.label;return{id:`agent:${e.sessionId}`,label:n,filePath:n,kind:e.side?"side":"agent"}})];(0,u.useEffect)(()=>{try{let e=function(e){try{let t=JSON.parse(e??"null"),n=[];for(let e of Array.isArray(t?.tabs)?t.tabs:[])e&&"string"==typeof e.id&&/^[a-f0-9]{32}$/.test(e.id)&&"string"==typeof e.cwd&&e.cwd.trim()&&!n.some(t=>t.id===e.id||t.cwd===e.cwd)&&n.push({id:e.id,cwd:e.cwd,restored:!0});return{tabs:n,activeId:n.some(e=>e.id===t.activeId)?t.activeId:null,open:t?.open===!0}}catch{return{tabs:[],activeId:null,open:!1}}}(window.sessionStorage.getItem(y9));rs(e.tabs),e.activeId&&(tm(e.activeId),tp(e.open))}catch{}rl(!0)},[]),(0,u.useEffect)(()=>{if(ro)try{window.sessionStorage.setItem(y9,JSON.stringify({tabs:ri.map(e=>{let{id:t,cwd:n}=e;return{id:t,cwd:n}}),activeId:th,open:tu}))}catch{}},[ri,th,tu,ro]);let ru=(0,u.useCallback)((e,t,n,r)=>{e!==rr.current?function(e,t,n,r,i){for(let[s,o]of e)if(o.generation===t)return void e.set(s,{...o,tabs:uk(o.tabs,n,r,i)})}(re.current,e,t,n,r):n7(e=>uk(e,t,n,r))},[]),rp=(0,u.useCallback)((e,t)=>{if(e===t)return;let n=th?.startsWith("file:")?th:null,r=function(e,t,n,r,i){if(t===n)return r;t&&e.set(t,{...r,generation:i});let s=e.get(n);return s?(e.delete(n),{tabs:s.tabs,activeTabId:s.activeTabId,open:s.open}):{tabs:[],activeTabId:null,open:!1}}(re.current,e,t,{tabs:n9,activeTabId:n,open:tu&&!!n},rr.current);rr.current+=1,rn(rr.current),n7(r.tabs),rc([]),(!th||n||th.startsWith("agent:"))&&(tm(r.activeTabId),tp(r.open))},[th,n9,tu]),rh=(0,u.useCallback)((e,t)=>{t9.current?.insertText(nL(e,t)),W&&(tp(!1),ts(!1))},[W]),rm=(0,u.useCallback)(e=>{let t=e.map(e=>nL(e,!1)).join("");t&&t9.current?.insertText(t),W&&(tp(!1),ts(!1))},[W]),rf=(0,u.useCallback)((e,t,n)=>{let r,i,s,o;t9.current?.insertText((r=Math.max(1,Math.min(t,n)),i=Math.max(1,Math.max(t,n)),s=e.includes(" ")?`@"${e}"`:`@${e}`,o=r===i?`:${r}`:`:${r}-${i}`,`${s}${o} `)),W&&(tp(!1),ts(!1))},[W]),rg=M.sessionId,rx=M.sessionFromTab?null:M.sessionId,[rv,rb]=(0,u.useState)(null),ry=(0,u.useRef)(null),[rw,rj]=(0,u.useState)(()=>!rg);(0,u.useLayoutEffect)(()=>{var e;let t=(e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ws();if(!e)return null;try{return wo(e.getItem(wi))}catch{return null}}(),M.home||M.requestedCwd||M.sessionId||!e?M:"session"===e.kind?{...M,sessionId:e.sessionId,sessionFromTab:!0}:{...M,requestedCwd:e.cwd});t!==M&&(I(t),t.sessionId&&rj(!1))},[M]);let rk=(0,u.useRef)(!1),rS=(0,u.useRef)(!1),rC=(0,u.useRef)(0),rN=(0,u.useCallback)(()=>{rC.current+=1},[]);(0,u.useEffect)(()=>{if(et){!function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:j();if(n)try{let r=k(n);r[e]=t,n.setItem(w,JSON.stringify(r))}catch{}}(et.projectKey??ry.current??C(et),et.id),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ws();if(t&&e)try{wl({kind:"session",sessionId:e},t)}catch{}}(et.id);return}eb&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ws(),n=e.trim();if(t&&n)try{wl({kind:"new",cwd:n},t)}catch{}}(eb)},[eb,et]),(0,u.useEffect)(()=>{let e=M.requestedCwd;if(!e)return;let t=new AbortController,n=rC.current;return eW("validating"),eF(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async r=>{let i=await r.json().catch(()=>({}));if(!r.ok||!i.cwd)throw Error(i.error??`HTTP ${r.status}`);if(t.signal.aborted||n!==rC.current)return;rk.current=!0;let s=`initial:${e}`;ek(s),eS.current=`new:${s}:${i.cwd}`,ey(i.cwd),R(!1),eW("ready"),new URLSearchParams(window.location.search).get("cwd")||E.replace(`?cwd=${encodeURIComponent(i.cwd)}`,{scroll:!1})}).catch(e=>{t.signal.aborted||n!==rC.current||(eF(e instanceof Error?e.message:String(e)),eW("error"))}),()=>t.abort()},[M,E]);let rE=(0,u.useCallback)((e,t)=>{let n=++rC.current,r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j();if(!t)return null;try{let n=k(t)[e];return"string"==typeof n&&n.length>0?n:null}catch{return null}}(e);if(!r)return;let i=i=>{if(n!==rC.current)return;let s=i?.sessions.find(e=>e.id===r);if(!s){i&&S(e);return}if(C(s)!==e)return void S(e);let o=eS.current;o&&lk(o,lm(t)),eS.current=null,en(s),eH(e=>e+1),new URLSearchParams(window.location.search).get("session")!==s.id&&E.replace(`?session=${encodeURIComponent(s.id)}`,{scroll:!1})};ei.length>0?i({sessions:ei}):fetch("/api/sessions").then(e=>e.ok?e.json():null).then(i).catch(()=>{})},[E,ei]),r$=(0,u.useCallback)((e,t,n)=>{rN();let r=eb??rv;if(rb(e),!e)return;let i=rS.current;rS.current=!1;let s=n??t??e,o=ry.current??(et?C(et):null);if(ry.current=s,rk.current){rk.current=!1;return}if(r===e&&o!==s||o===s&&(null!==et||r===e))return;let l=eS.current;l&&r&&lk(l,lm(r));let a="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,c=`new:${a}:${e}`;lk(lm(e),c),ek(a),eS.current=c,en(null),ey(t=>t&&t!==e?null:t),eH(e=>e+1),ni([]),no(null),nu(!1),nx(null),nb(null),nw(!1),nK(e=>"debug"===e?e:null),o!==s&&(rp(o,s),T||i||rE(s,e)),T||E.replace(window.location.pathname,{scroll:!1})},[rv,rp,T,rN,eb,E,et,rE]),rM=(0,u.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;t||tb("conversation"),t||t1(),R(!1),nK(e=>"debug"===e?e:null),eX(null),eV(n?{sessionId:e.id,entryId:n,blockIndex:r}:null),rN();let s=eS.current,o=eb??(null===et?rv:null);s&&o&&lk(s,lm(o)),eS.current=null;let l=C(e);if(ry.current!==l&&(rp(ry.current,l),nK(e=>"debug"===e?e:null)),ry.current=l,!t&&!T&&et){let t=C(et)===C(e);if(et.id===e.id&&t){W&&ts(!1);return}}ey(null),en(e),eH(e=>e+1),ni([]),no(null),nu(!1),np.current=null,nx(null),nb(null),nw(!1),rj(!0),!W||t||i?.keepSidebarOpen||ts(!1),t&&(rk.current=!0),t&&new URLSearchParams(window.location.search).get("session")===e.id||E.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[rv,rp,t1,T,rN,E,W,eb,et]),rI=(0,u.useCallback)((e,t,n,r)=>{tb("conversation"),t1(),R(!1),eX(null),rN();let i=`new:${e}:${t}`,s=eS.current,o=eb??(null===et?rv:null);if(r?.carryComposer&&null===et&&s){let e=t9.current;e?e.rekeyDraft(s,i):lk(s,i),eA(eR.current)}else s&&o&&o!==t&&lk(s,lm(o));let l=n??(t===rv?ry.current:null)??t;ry.current!==l&&rp(ry.current,l),ry.current=l,lx(i)||lk(lm(t),i),eS.current=i,ek(e),en(null),ey(t),eH(e=>e+1),ni([]),no(null),nu(!1),nx(null),nb(null),nw(!1),nK(e=>"debug"===e?e:null),W&&ts(!1),E.replace(`?cwd=${encodeURIComponent(t)}`,{scroll:!1}),W||eT.current||requestAnimationFrame(()=>{document.activeElement?.closest("[aria-modal='true']")||t9.current?.focus()})},[rv,rp,t1,rN,W,eb,E,et]);!function(e){let{onNewSession:t,activeCwd:n}=e;(0,u.useEffect)(()=>{let e=e=>{if("Escape"===e.key)return void function(e){if("Escape"!==e.key||e.defaultPrevented||!h)return;let t=e.target?.tagName;"TEXTAREA"!==t&&"INPUT"!==t&&(e.preventDefault(),h())}(e);if(e.ctrlKey&&e.altKey&&("n"===e.key.toLowerCase()||"Dead"===e.key&&"KeyN"===e.code)){if(!n||!t)return;e.preventDefault(),t(n)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,t])}({onNewSession:e=>rI(`kb-${Date.now()}`,e),activeCwd:rv});let rT=(0,u.useCallback)(e=>{fetch("/api/sessions",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{let n=t?.sessions.find(t=>t.id===e);n&&en(t=>t?.id===e?{...t,...n,transient:n.transient??!1}:t)}).catch(()=>{})},[]),rR=(0,u.useCallback)((e,t)=>{eB(e=>e+1),eS.current===t&&(rN(),eS.current=null,ey(null),en(e),rT(e.id),E.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1}))},[rN,E,rT]),rL=(0,u.useCallback)(e=>{let{targetSession:t,title:n,body:r,tag:i}=e;if(!("Notification"in window))return;let s=()=>{wr({title:n,body:r,sessionUrl:t?`/?session=${encodeURIComponent(t.id)}`:"/",tag:i,onClick:()=>{window.focus(),t&&rM(t)}})};"granted"===Notification.permission?(s(),hc(L)):"default"===Notification.permission&&Notification.requestPermission().then(e=>{"granted"===e&&(s(),hc(L))})},[rM,L]),rA=(0,u.useCallback)(e=>{eB(e=>e+1),eY(e=>e+1),e.aborted||e.failed||e.subagentsActive||g(et?.relation)||!wn()||(et&&Q(e=>{if(e.has(et.id))return e;let t=new Set(e);return t.add(et.id),t}),rL({targetSession:et,title:et?.name??A("i18n.sessionComplete"),body:A("i18n.taskFinished"),tag:et?`pi-session-complete:${et.id}`:"pi-session-complete"}))},[rL,et,A]);(0,u.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&document.hasFocus()&&Q(e=>0===e.size?e:new Set)};return e(),document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[]);let rP=(0,u.useCallback)(e=>{var t;!g(et?.relation)&&wn()&&(t=G.current,!(!ct(e)||t.has(e.id))&&(t.add(e.id),1)&&rL({targetSession:et,title:A("i18n.attentionNeeded"),body:"custom"===e.method?A("i18n.extensionInputNeeded"):e.title,tag:`pi-extension-ui:${e.id}`}))},[rL,et,A]),rz=(0,u.useCallback)(async()=>{let e=et?.id;if(e&&"naming"!==nR.kind){nP.current&&clearTimeout(nP.current),nK(null),nA({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),n=await t.json().catch(()=>({}));if(!t.ok||!n.title)throw Error(n.error||`HTTP ${t.status}`);let r=n.title.trim();if(eB(e=>e+1),nz.current!==e)return;en(t=>t?.id===e?{...t,name:r}:t),nT(t=>t?.sessionId===e?{...t,sessionName:r}:t),nA({kind:"success"}),nP.current=setTimeout(()=>nA({kind:"idle"}),1800)}catch(t){if(nz.current!==e)return;nA({kind:"error",message:t instanceof Error?t.message:String(t)}),nP.current=setTimeout(()=>nA({kind:"idle"}),5e3)}}},[nR.kind,et?.id]);(0,u.useEffect)(()=>{nP.current&&clearTimeout(nP.current),nA({kind:"idle"})},[et?.id]);let rW=(0,u.useCallback)(()=>{eY(e=>e+1)},[]),rO=(0,u.useRef)(null),rF=(0,u.useCallback)(e=>{wc.has(e)||rO.current||(rO.current=setTimeout(()=>{rO.current=null,eY(e=>e+1)},1e3))},[]);(0,u.useEffect)(()=>()=>{rO.current&&clearTimeout(rO.current)},[]);let rD=(0,u.useCallback)(e=>{rN(),eS.current=null,eB(e=>e+1),eH(e=>e+1),ey(null),en(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e,transient:!1})),rT(e),E.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[rN,E,rT]),rB=(0,u.useCallback)(()=>{rj(!0),rx&&(rS.current=!0)},[rx]),r_=(0,u.useCallback)(e=>{rN(),eB(e=>e+1);let t=er.current;if(t?.id===e){!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ws();if(t&&e)try{let n=wo(t.getItem(wi));if(n?.kind!=="session"||n.sessionId!==e)return;t.removeItem(wi)}catch{}}(e);let n=t.cwd,r="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;ek(r),eS.current=n?`new:${r}:${n}`:null,en(null),ey(n??null),eH(e=>e+1),ni([]),no(null),nu(!1),nx(null),nb(null),nw(!1),nK(e=>"archive"===e||"debug"===e?e:null),E.replace(n?`?cwd=${encodeURIComponent(n)}`:window.location.pathname,{scroll:!1})}},[rN,E]),rH=(0,u.useCallback)((e,t,n)=>{var r,i;tb("file"),tf&&!ty&&(r=tq.current,i=tK.current,Number.isFinite(r)&&Number.isFinite(i)&&r>0&&i>0&&r-i<400)&&tN(!0);let s=n?.sourceSessionId,o=n?.modeHint,l=n?.page,a=`file:${e}`;n7(n=>(function(e,t){let n=e.find(e=>e.id===t.tabId);if(!n)return[...e,{id:t.tabId,label:t.fileName,filePath:t.filePath,sourceSessionId:t.sourceSessionId,initialDisplayMode:t.modeHint,page:t.page,viewerState:t.modeHint?{displayMode:t.modeHint,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let r=!!(t.sourceSessionId&&n.sourceSessionId!==t.sourceSessionId),i=n.page!==t.page;return r||t.modeHint||i?e.map(e=>{if(e.id!==t.tabId)return e;let n={...e},s=!1;return r&&(n.sourceSessionId=t.sourceSessionId,s=!0),i&&(n.page=t.page,s=!0),t.modeHint&&(n.initialDisplayMode=t.modeHint,n.viewerState={displayMode:t.modeHint,wrapLines:e.viewerState?.wrapLines,scrollTop:0,scrollLeft:0},s=!0),s&&(n.viewerRevision=(e.viewerRevision??0)+1),n}):e})(n,{fileName:t,filePath:e,modeHint:o,page:l,sourceSessionId:s,tabId:a})),tm(a),tp(!0),W&&ts(!1)},[tf,W,ty]),rq=(0,u.useCallback)((e,t)=>{rH(e,ew(e),{sourceSessionId:et?.id??null,page:t})},[rH,et?.id]),rK=(0,u.useCallback)(e=>{tb("file");let t=ri.find(t=>t.cwd===e),n=t??y7(e);t||rs(e=>[...e,n]),tm(n.id),tp(!0),W&&ts(!1)},[ri,W]),rV=(0,u.useCallback)((e,t,n)=>{tb("file"),rc(r=>{if(r.some(t=>t.sessionId===e))return r;let i=t;for(let e=2;n&&r.some(e=>e.label===i);e+=1)i=`${t} ${e}`;return[...r,{sessionId:e,label:i,...n?{side:!0}:{}}]}),tm(`agent:${e}`),tp(!0),W&&ts(!1)},[W]),rZ=(0,u.useMemo)(()=>new Set(tu?ra.map(e=>e.sessionId):[]),[ra,tu]),rJ=(0,u.useCallback)((e,t)=>{let n,r;t&&ne(n=>({...n,[e.id]:t})),rV(e.id,f(e,t&&((r=t.trim()).startsWith("/")||r.startsWith("!")?null:(n=r.trim().split("\n")[0].trim())?n.length>40?`${n.slice(0,40).trimEnd()}…`:n:null)||A("sideChat.title")),!0),eB(e=>e+1)},[rV,A]),rY=(0,u.useCallback)(async e=>{let t=await cp(e,A);return"error"in t?t.error:(W&&nK(null),rJ(t.session,null),null)},[rJ,W,A]),rG=ra.filter(e=>e.side&&em.has(e.sessionId)).map(e=>e.sessionId).join();(0,u.useEffect)(()=>{rG&&eB(e=>e+1)},[rG]);let rX=(0,u.useCallback)(e=>{if(ri.some(t=>t.id===e))return void rs(t=>t.map(t=>t.id!==e||t.closing?t:{...t,closing:"close"}));if(e.startsWith("agent:")){let t=ra.filter(t=>`agent:${t.sessionId}`!==e);rc(t),tm(n=>n!==e?n:n9.at(-1)?.id??ri.at(-1)?.id??wd(t)),F||0!==n9.length||0!==ri.length||0!==t.length||tp(!1);return}n7(t=>{let n=t.filter(t=>t.id!==e);return F||0!==n.length||0!==ri.length||0!==ra.length||tp(!1),n}),tm(t=>{if(t!==e)return t;let n=n9.filter(t=>t.id!==e);return n.at(-1)?.id??ri.at(-1)?.id??wd(ra)})},[n9,ri,ra,F]),rQ=(0,u.useCallback)(async(e,t)=>{let n=await ch(e);return n?n.error:(rX(`agent:${e}`),er.current?.id===e?(rM(t),eB(e=>e+1)):r_(e),null)},[rX,rM,r_]),r0=et?.id;(0,u.useEffect)(()=>{ra.some(e=>e.sessionId===r0)&&rX(`agent:${r0}`)},[ra,rX,r0]);let r1=(0,u.useCallback)(()=>{et&&(eX(null),nK("history"),tD(!1),W&&ts(!1))},[et,W]),r2=eb??(null===et&&rv?rv:null),r4=null===et&&r2?`new:${ej}:${r2}`:null;(0,u.useLayoutEffect)(()=>{eS.current=T?null:r4},[T,r4]);let r8=(0,u.useCallback)((e,t)=>{null===et&&r2&&e.cwd!==r2&&(eT.current=t,e.projectKey&&e.projectRoot&&eM.current?.cwd!==e.cwd&&(eM.current={cwd:e.cwd,project:{key:e.projectKey,root:e.projectRoot},branch:null}),eC.current?.startNewSessionIn({...e,carryComposer:!0}))},[r2,et]),r3=(0,u.useRef)(r8);r3.current=r8;let r6=(0,u.useCallback)(e=>{eC.current?.openFolderForNewSession(e=>r3.current(e,"project"),e)},[]),r5=(0,u.useCallback)(()=>{eC.current?.openDefaultDirectoryForNewSession(e=>r3.current(e,"project"))},[]),r9=(0,u.useCallback)(()=>{eC.current?.refreshWorktrees()},[]),r7=(0,u.useCallback)(async(e,t)=>{let n=eC.current;if(!n)throw Error("The session sidebar is not mounted");let r=await n.createWorktree(e,t);return"path"in r&&(eM.current={cwd:r.path,project:e,branch:t}),r},[]),ie=(0,u.useCallback)(()=>{eT.current=null},[]),it=(0,u.useRef)(null),ir=r2?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(e?.cwd===t)return e;if(e?.worktrees?.some(e=>e.path===t))return{...e,cwd:t,currentWorktreePath:t};let r=n?.cwd===t?n:null;if(r&&e?.worktrees&&e.project.key===r.project.key)return{...e,cwd:t,worktrees:[...e.worktrees,{path:t,branch:r.branch,isMain:!1}],currentWorktreePath:t};let i=e?.projects??[],s=r?.project??i.find(e=>e.root===t)??{key:t,root:t},o=s.alias??i.find(e=>e.key===s.key)?.alias;return{cwd:t,project:void 0===o?s:{...s,alias:o},worktrees:null,currentWorktreePath:null,projects:i}}(eN,r2,eM.current):null,ii=ir?ir.project.alias||ew(ir.project.root)||ir.project.root:void 0,is=null===et&&ir?(0,d.jsx)(dB,{handleRef:it,context:ir,mobile:W,initialFocus:eT.current,onInitialFocusDone:ie,onPick:r8,onUseDefaultDirectory:r5,onOpenFolder:r6,onRefreshWorktrees:r9,onCreateWorktree:r7}):null,io=!T&&(null!==et||null!==r2),il=et?.cwd??r2,ia=rw&&!io;(0,u.useEffect)(()=>{io||nK(e=>"debug"===e?null:e)},[io]),(0,u.useEffect)(()=>{if(e3(null),e9(!1),tr(null),!il)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(il)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);e3(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[il]);let ic=(0,u.useCallback)(async()=>{if(il&&!te){tt(!0),tr(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:il})}),t=await e.json();if(!e.ok||t.error)return void tr({error:t.error??`HTTP ${e.status}`,...t.reason?{reason:t.reason}:{}});e3(t),e9(!1),e2(e=>e+1),eH(e=>e+1)}catch(e){tr({error:e instanceof Error?e.message:String(e)})}finally{tt(!1)}}},[te,il]),id=(0,u.useCallback)(()=>{tr(null),e9(!0)},[]),iu=(0,u.useCallback)((e,t)=>{e===il&&e3(t)},[il]),ip=n9.find(e=>e.id===th)??null,ih=ra.find(e=>`agent:${e.sessionId}`===th)??null,im=rv?ew(rv)||rv:null,ig=im?`${im} - PI-YUN`:"PI-YUN";(0,u.useEffect)(()=>{let e=()=>{document.title!==ig&&(document.title=ig)};e();let t=new MutationObserver(e);return t.observe(document.head,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[ig]);let ix=eG?"settings":nq??(T?"home":"chat"),iv=(0,u.useCallback)(e=>{tb("conversation"),t1(),eX(null),nK("archive"),ec(e??null),tD(!1),W&&ts(!1)},[t1,W]),ib=e=>{if(tb("conversation"),t1(),"home"===e){rN();let e=eS.current;if(e&&r2){let t=lm(r2);t9.current?t9.current.rekeyDraft(e,t):lk(e,t)}eS.current=null,R(!0),eX(null),nK(null),tp(!1),W&&ts(!1),E.replace("?home=1",{scroll:!1});return}if("settings"===e){e0(W),eX(uI(il));return}eX(null),"chat"===e?(!et&&r4&&r2&&!lx(r4)&&lk(lm(r2),r4),R(!1),nK(null),et?E.replace(`?session=${encodeURIComponent(et.id)}`,{scroll:!1}):r2&&E.replace(`?cwd=${encodeURIComponent(r2)}`,{scroll:!1})):"system"===e||"tools"===e?nq!==e&&n0(e):("archive"!==e&&(R(!1),T&&et&&E.replace(`?session=${encodeURIComponent(et.id)}`,{scroll:!1})),nK(e)),tD(!1),W&&ts(!1)},iy=(0,d.jsx)(dO,{activeView:ix,petSessions:ep,onPetSelectSession:rM,conversationAvailable:!!(et||r2),inspectionAvailable:io,sessionAvailable:!!et,mobile:W,homeButtonRef:td,onHomeHover:t0.show,onHomeLeave:t0.scheduleHide,onNavigate:ib}),iw=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(rU,{onOpenArchive:iv,archiveActive:"archive"===ix,onArchiveStateChange:el,fileExplorerTarget:F?D:null,selectedSessionId:T?null:et?.id??null,onSelectSession:rM,onNewSession:rI,onOpenSettings:()=>{e0(W),eX(uI(il))},controlRef:eC,onNewSessionContextChange:eI,initialSessionId:rg,initialSessionLinked:null!==rx,skipInitialProjectSelection:null!==M.requestedCwd,onInitialRestoreDone:rB,refreshKey:eD,onSessionDeleted:r_,selectedCwd:et?.cwd??eb??null,onCwdChange:r$,onOpenFile:rH,onOpenTerminal:rK,explorerRefreshKey:eJ,onExplorerRefresh:rW,onAtMention:rh,onAtMentions:rm,onBackgroundTaskDone:ee,hiddenFinishedSessionIds:X,onRunningSessionIdsChange:eg,onSessionsChange:eu}),W&&iy]}),ij=e=>io&&e8?.requiresTrust&&!e8.trusted?(0,d.jsxs)("button",{type:"button",onClick:id,title:A("trust.resourcesNotLoaded"),"aria-label":A("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:e?"flex-start":"center",gap:6,width:e?"100%":void 0,minHeight:e?32:void 0,height:e?void 0:"100%",padding:e?"6px 12px":"0 12px",background:e?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:e?"none":"1px solid var(--border)",borderBottom:e?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":e?"true":void 0,children:[(0,d.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,d.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,d.jsx)("path",{d:"M12 8v4"}),(0,d.jsx)("path",{d:"M12 16h.01"})]}),(0,d.jsx)("span",{children:A("trust.resourcesNotLoaded")})]}):null,ik=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,d.jsxs)("button",{type:"button",onClick:()=>nG("agents",e&&!O),disabled:!eh,title:ev,"aria-label":ev,"aria-pressed":"agents"===nq,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e||t?wa:void 0,height:"100%",padding:e||t?0:"0 12px",background:"agents"===nq?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===nq?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===nq?"var(--text)":eh?"var(--text-muted)":"var(--text-dim)",cursor:eh?"pointer":"not-allowed",opacity:eh?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":e?"agents":void 0,children:[(0,d.jsxs)("svg",{width:e?16:13,height:e?16:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!e&&!t&&(0,d.jsx)("span",{children:A("agentSwitcher.title")}),ex&&ex.count>0&&(0,d.jsxs)("span",{"aria-hidden":"true",style:{position:"relative",minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:ex.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:ex.running?600:void 0,...e?{position:"absolute",top:3,right:3,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:[ex.running&&(0,d.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,d.jsx)("circle",{cx:"12",cy:"12",r:"11",stroke:"currentColor",strokeWidth:"2",opacity:"0.2"}),(0,d.jsx)("path",{d:"M23 12a11 11 0 0 0-11-11",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}),ex.count]})]})};function iS(e){let t,n,r,i,s,o,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e&&!io)return null;let a=e||l;return(0,d.jsxs)("div",{className:l?"workbench-session-actions":e?void 0:"workspace-toolbar-actions",role:l?"group":void 0,"aria-label":l?A("chat.moreControls"):void 0,style:{display:"flex",alignItems:l?"center":"stretch",flexDirection:l?"column":"row",height:l?"auto":"100%"},children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{r1()},disabled:!et,title:et?A("history.full"):A("history.unsaved"),"aria-label":A("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?wa:void 0,height:"100%",padding:a?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:et?"var(--text-muted)":"var(--text-dim)",cursor:et?"pointer":"not-allowed",opacity:et?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{et&&(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=et?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"history":void 0,children:[(0,d.jsxs)("svg",{width:e?16:12,height:e?16:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:et?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"}),(0,d.jsx)("path",{d:"M12 7v5l3 2"})]}),!a&&(0,d.jsx)("span",{children:A("history.label")})]}),(t=!!(et&&((nI?.userMessages??0)>0||et.messageCount>0)),n=!et||et.transient||!t||"naming"===nR.kind,r="success"===nR.kind,i="error"===nR.kind,s="naming"===nR.kind?A("title.generating"):r?A("title.updated"):i?A("title.failed"):A("title.generate"),o=!et||et.transient?A("title.unsaved"):t?i?nR.message:A("title.generateSession"):A("title.noMessages"),(0,d.jsxs)("button",{type:"button",onClick:()=>{rz(),e&&O&&tD(!0)},disabled:n,title:o,"aria-label":s,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?wa:void 0,height:"100%",padding:a?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:i?"#dc2626":r?"var(--accent)":n?"var(--text-dim)":"var(--text-muted)",cursor:n?"not-allowed":"pointer",opacity:n&&"naming"!==nR.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{n||(e.currentTarget.style.color=i?"#dc2626":"var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=i?"#dc2626":r?"var(--accent)":n?"var(--text-dim)":"var(--text-muted)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"name":void 0,children:["naming"===nR.kind?(0,d.jsxs)("svg",{className:"animate-spin",width:e?16:13,height:e?16:13,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):r?(0,d.jsx)("svg",{width:e?16:13,height:e?16:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:e?16:13,height:e?16:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"m15 4 5 5L7 22l-5-5Z"}),(0,d.jsx)("path",{d:"m14 5 5 5"}),(0,d.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!a&&(0,d.jsx)("span",{children:s})]})),!(e&&O)&&ik(e,l),nh&&(0,d.jsx)("button",{type:"button",onClick:()=>nG("branches"),title:A("i18n.branches"),"aria-label":A("i18n.branches"),"aria-pressed":"branches"===nq,style:{display:"flex",alignItems:"center",justifyContent:"center",width:wa,height:"100%",padding:0,background:"branches"===nq?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===nq?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===nq?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":e?"branches":void 0,children:(0,d.jsxs)("svg",{width:e?16:12,height:e?16:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:nr.length>0?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}),(0,d.jsxs)("button",{ref:nS,type:"button",onClick:()=>n0("system"),disabled:e&&!io,title:A("system.prompt"),"aria-label":A("system.prompt"),"aria-pressed":"system"===nq,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?wa:void 0,height:"100%",padding:a?0:"0 12px",background:"system"===nq?"var(--bg-selected)":"none",border:"none",borderTop:"system"===nq?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!io?"not-allowed":"pointer",color:"system"===nq?"var(--text)":"var(--text-muted)",opacity:e&&!io?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||io)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="system"===nq?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"system":void 0,children:[(0,d.jsxs)("svg",{width:e?16:12,height:e?16:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:ng?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,d.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,d.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,d.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!a&&(0,d.jsx)("span",{children:A("system.label")})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>n0("tools"),disabled:e&&!io,title:A("tools.title"),"aria-label":A("tools.title"),"aria-pressed":"tools"===nq,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:a?wa:void 0,height:"100%",padding:a?0:"0 12px",background:"tools"===nq?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===nq?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!io?"not-allowed":"pointer",color:"tools"===nq?"var(--text)":"var(--text-muted)",opacity:e&&!io?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||io)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="tools"===nq?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"tools":void 0,children:[(0,d.jsx)("svg",{width:e?16:12,height:e?16:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:nv?.some(e=>e.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,d.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,d.jsx)("span",{children:A("tools.label")})]})]})}let iE=e=>{if(!e&&(!io||!nI&&!n_))return null;let t=nI?.tokens,n=nI?.cost??0,r=cN(n),i="var(--text-muted)",s=null;if(n_?.contextWindow){let e=n_.percent;null!==e&&e>90?i="#ef4444":null!==e&&e>70&&(i="rgba(234,179,8,0.95)"),s=null!==e?`${e.toFixed(0)}%`:null}let o=[];if(t&&(o.push(`${A("session.input")}: ${t.input.toLocaleString(L)}`),o.push(`${A("session.output")}: ${t.output.toLocaleString(L)}`),o.push(`${A("session.cacheRead")}: ${t.cacheRead.toLocaleString(L)}`),o.push(`${A("session.cacheWrite")}: ${t.cacheWrite.toLocaleString(L)}`),n>0&&o.push(`${A("session.cost")}: $${n.toFixed(4)}`)),n_?.contextWindow){let e=n_.percent;o.push(`${A("session.context")}: ${null!==e?`${e.toFixed(1)}%`:"?"} / ${n_.contextWindow.toLocaleString(L)}`)}let l=o.join(" | "),a=e&&O&&tF,c=!!(r||s);return(0,d.jsxs)("div",{style:{display:e?"contents":"flex",alignItems:"center",minWidth:0},children:[(0,d.jsx)("button",{type:"button",onClick:()=>nG("session"),ref:nJ,disabled:!io||a,tabIndex:a?-1:void 0,title:l||A("session.title"),"aria-label":A("session.title"),"aria-pressed":"session"===nq,"aria-hidden":!!a||void 0,className:e?"mobile-session-stats":"composer-session-stats","aria-controls":"workspace-usage-page","aria-expanded":"session"===nq,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:8,paddingLeft:6,paddingRight:6,height:e?"100%":30,overflow:"hidden",visibility:a?"hidden":"visible",pointerEvents:a?"none":"auto",background:"session"===nq?"var(--bg-selected)":"none",border:"none",borderTop:e?"session"===nq?"2px solid var(--accent)":"2px solid transparent":void 0,borderRadius:e?void 0:7,fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:io?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{io&&!a&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===nq?"var(--text)":"var(--text-muted)"},children:e?(0,d.jsxs)(d.Fragment,{children:[r&&(0,d.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:r}),s&&(0,d.jsx)("span",{style:{color:i,flexShrink:0},children:s}),!c&&io&&(0,d.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:A("session.title")})]}):(0,d.jsx)(d.Fragment,{children:r&&(0,d.jsx)("span",{className:"composer-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:r})})}),!e&&n_&&n_.contextWindow>0&&(0,d.jsx)(ds,{usage:n_,onClick:()=>nG("session"),expanded:"session"===nq})]})},i$=e=>{if(!io)return null;let t="debug"===nq;return(0,d.jsx)("button",{ref:nX,type:"button",onClick:()=>nG("debug",e),title:A("debug.title"),"aria-label":A("debug.title"),"aria-pressed":t,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"center",width:wa,height:"100%",padding:0,background:t?"var(--bg-selected)":"none",border:"none",borderTop:t?"2px solid var(--accent)":"2px solid transparent",...e?{borderRight:"1px solid var(--border)"}:{borderLeft:"1px solid var(--border)"},color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color=t?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"debug":void 0,children:(0,d.jsxs)("svg",{width:e?16:13,height:e?16:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:t?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M8 2l1.9 1.9M16 2l-1.9 1.9M9 7.1v-1a3 3 0 0 1 6 0v1"}),(0,d.jsx)("path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6zM12 20v-9"}),(0,d.jsx)("path",{d:"M6.5 9C4.6 8.8 3 7.1 3 5M6 13H2M3 21c0-2.1 1.7-3.9 3.8-4M21 5c0 2.1-1.6 3.8-3.5 4M22 13h-4M17.2 17c2.1.1 3.8 1.9 3.8 4"})]})})},iM=e=>{let t=e&&O&&tF;return(0,d.jsxs)("button",{type:"button",onClick:n3,className:"workspace-files-toggle",disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":tu,"aria-hidden":!!t||void 0,title:tu?A("files.hidePanel"):A("files.showPanel"),"aria-label":tu?A("files.hidePanel"):A("files.showPanel"),"data-mobile-toolbar-file":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"center",width:e?wa:void 0,height:wa,padding:e?0:"0 10px",gap:6,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:tu?"var(--bg-selected)":"none",border:"none",borderRadius:8,color:tu?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=tu?"var(--text)":"var(--text-muted)"},children:[(0,d.jsx)(nc,{size:17,open:tu}),!e&&(0,d.jsx)("span",{children:A("sidebar.tabFiles")})]})};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"clipboard-notice-region",role:"status","aria-live":"polite",children:P&&(0,d.jsx)("div",{className:"clipboard-notice",children:A("i18n.copyFailed")})}),(0,d.jsx)("style",{children:`
|
|
1070
|
+
.mobile-session-stats {
|
|
1071
|
+
container-type: inline-size;
|
|
1072
|
+
}
|
|
1073
|
+
@container (max-width: 158px) {
|
|
1074
|
+
.mobile-session-stat-io {
|
|
1075
|
+
display: none !important;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
@container (max-width: 88px) {
|
|
1079
|
+
.mobile-session-stat-cost {
|
|
1080
|
+
display: none !important;
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
@media (max-width: 640px) {
|
|
1084
|
+
.sidebar-overlay-backdrop.sidebar-mobile-pending {
|
|
1085
|
+
opacity: 0 !important;
|
|
1086
|
+
pointer-events: none !important;
|
|
1087
|
+
}
|
|
1088
|
+
.sidebar-container.sidebar-mobile-pending.sidebar-open {
|
|
1089
|
+
transform: translateX(calc(-100% - env(safe-area-inset-left)));
|
|
1090
|
+
box-shadow: none;
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
`}),(0,d.jsxs)("div",{className:`workspace-shell${F?" is-files-docked":""}`,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:[!W&&iy,(0,d.jsxs)("div",{className:"workspace-frame",children:[(0,d.jsx)("div",{className:`sidebar-overlay-backdrop${t_?"":" sidebar-mobile-pending"}`,onClick:()=>ts(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!ti,pointerEvents:ti?"auto":"none",transition:"opacity 0.25s ease"}}),(0,d.jsx)("div",{ref:tY.panelRef,id:"session-sidebar",inert:!W&&!ti&&!t0.open,"data-sidebar-peek":t0.open?"":void 0,onPointerEnter:t0.cancel,onPointerLeave:t0.scheduleHide,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||t0.scheduleHide()},className:`sidebar-container${ti?" sidebar-open":" sidebar-closed"}${t0.open?" is-peeking":""}${t_?"":" sidebar-mobile-pending"}${tY.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tY.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:t0.open?230:200},children:iw}),!W&&ti&&(0,d.jsx)("div",{...tY.separatorProps,onDoubleClick:n4,onKeyDown:e=>{"Enter"===e.key||" "===e.key?(e.preventDefault(),n4()):tY.separatorProps.onKeyDown(e)},"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tY.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:A("sidebar.resizeAndCollapseHint")}),!W&&!ti&&(0,d.jsx)("button",{ref:tc,type:"button",className:"sidebar-edge-restore","data-sidebar-restore":"","aria-label":A("sidebar.show"),title:A("sidebar.show"),"aria-controls":"session-sidebar","aria-expanded":!1,onClick:n4}),(0,d.jsxs)("div",{className:`workspace-main${F?" has-unified-header":""}${tu?" is-files-open":""}${ty?" is-focused-workspace":""}${tj?" is-file-focused":""}${tk?" is-conversation-focused":""}${tG.isResizing?" is-panel-resizing":""}`,style:{"--right-panel-width":`${tG.width}px`},children:[F&&(0,d.jsx)("div",{className:"workspace-unified-bar","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"workspace-conversation",style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,d.jsxs)("div",{ref:nt,className:"workspace-chat-header",style:{flexShrink:0,background:"var(--bg-panel)"},children:[(0,d.jsxs)("div",{style:{display:"flex",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(var(--top-bar-height) + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[!W&&!ti&&(0,d.jsx)("button",{type:"button",className:"workspace-new-session","data-collapsed-new-chat":"",title:A("sidebar.newChat"),"aria-label":A("sidebar.newChat"),onClick:e=>{t1(),rv?eC.current?.startNewSessionIn({cwd:rv}):eC.current?.openFolderForNewSession(e=>eC.current?.startNewSessionIn(e),e.currentTarget)},children:(0,d.jsx)(nd,{size:16})}),W?(0,d.jsx)("button",{type:"button",onClick:n4,className:"workspace-sidebar-toggle","aria-controls":"session-sidebar","aria-expanded":ti,title:ti?A("sidebar.hide"):A("sidebar.show"),"aria-label":ti?A("sidebar.hide"):A("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:wa,height:wa,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,d.jsx)(na,{size:18,open:ti})}):(0,d.jsx)("span",{className:"workspace-title-folder","aria-hidden":"true",children:(0,d.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M3 8V6a2 2 0 0 1 2-2h4l2 3h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8Z"}),(0,d.jsx)("path",{d:"M3 10h18"})]})}),"settings"===ix?(0,d.jsxs)("div",{className:"workspace-location workspace-settings-location","data-view":"settings",children:[(0,d.jsx)("button",{type:"button",className:"workspace-context-tab workspace-settings-heading",disabled:!tS,"aria-label":A("files.showWorkspace",{view:A("common.settings")}),"aria-controls":"workspace-conversation-content","aria-pressed":tS?tk:void 0,onClick:()=>{tx(!0),tb("conversation")},children:A("common.settings")}),(et||r2)&&(0,d.jsxs)("button",{type:"button",className:"workspace-return-session",title:et?e$(et):A("navigation.chat"),"aria-controls":"workspace-conversation-content",onClick:()=>ib("chat"),children:[(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m10 6-6 6 6 6M4 12h16"})}),(0,d.jsx)("span",{children:A("settings.backToConversation")})]})]}):(0,d.jsxs)("button",{type:"button",className:"workspace-location workspace-context-tab","data-view":ix,disabled:!tS,"aria-label":A("files.showWorkspace",{view:A(dz[ix])}),"aria-controls":"workspace-conversation-content","aria-pressed":tS?tk:void 0,onClick:()=>{tx(!0),tb("conversation")},children:[(0,d.jsx)("span",{children:A(dz[ix])}),et&&"home"!==ix&&(0,d.jsx)("strong",{title:e$(et),children:e$(et)}),!et&&"chat"===ix&&(0,d.jsx)("strong",{children:A("navigation.chat")})]}),!W&&"chat"===ix&&et&&(0,d.jsxs)("button",{type:"button",className:"workspace-title-action",onClick:()=>void rz(),disabled:et.transient||"naming"===nR.kind||!((nI?.userMessages??0)>0||et.messageCount>0),title:"error"===nR.kind?nR.message:A("title.generateSession"),children:[(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m12 3 2.4 6.6L21 12l-6.6 2.4L12 21l-2.4-6.6L3 12l6.6-2.4ZM20 2v4m-2-2h4"})}),(0,d.jsx)("span",{children:A("naming"===nR.kind?"title.generating":"success"===nR.kind?"title.updated":"error"===nR.kind?"title.failed":"title.generate")})]}),W&&(0,d.jsxs)("div",{ref:nn,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:["chat"!==ix&&(0,d.jsx)("span",{className:"workspace-mobile-location",children:A(dz[ix])}),O&&"chat"===ix&&ik(!0),O&&"chat"===ix&&(0,d.jsx)("button",{type:"button",onClick:n8,title:tB,"aria-label":tB,"aria-controls":"mobile-toolbar-actions","aria-expanded":tF,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:tF?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:wa,height:wa,padding:0,background:tF?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:tF?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:tF?(0,d.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,d.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,d.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,d.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!O&&"chat"===ix&&iS(!0),!O&&"chat"===ix&&i$(!0),"chat"===ix&&iE(!0),iM(!0),O&&"chat"===ix&&tF&&(0,d.jsxs)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":A("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:`calc(2 * ${wa})`,zIndex:20,display:"flex",alignItems:"stretch",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none",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:[iS(!0),i$(!0)]})]}),!W&&(0,d.jsxs)(d.Fragment,{children:[ij(!1),"chat"===ix&&i$(!1)]}),!W&&iM(!1)]}),W&&ij(!0)]}),(0,d.jsxs)("div",{id:"workspace-conversation-content",className:"workspace-content",inert:tj,"aria-hidden":tj||void 0,style:{flex:1,overflow:"hidden",position:"relative"},children:[eG&&(0,d.jsx)(vJ,{embedded:!0,cwd:il,sessionId:et?.id??null,initialSection:eG,openAtHome:eQ,quoteSelectionEnabled:Z,onQuoteSelectionChange:Y,onClose:()=>{eX(null)},onSessionReloaded:()=>eH(e=>e+1),projectTrust:e8,onOpenTrustDialog:id,onProjectTrustChanged:iu}),nq&&!eG&&(0,d.jsxs)("section",{className:"workspace-page",ref:nY,tabIndex:-1,id:"session"===nq?"workspace-usage-page":void 0,"data-workspace-page":nq,"aria-label":A(dz[nq]),children:[(0,d.jsxs)("header",{className:"workspace-page-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{children:A(dz[nq])}),(0,d.jsx)("p",{children:"archive"===nq?A("archive.subtitle"):et?e$(et):im})]}),"history"===nq&&et&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"workspace-page-back",onClick:()=>nZ(e=>e+1),children:A("i18n.refresh")}),(0,d.jsx)("a",{className:"workspace-page-export",href:"api/sessions/"+encodeURIComponent(et.id)+"/export",download:!0,children:A("navigation.exportHistory")})]}),(0,d.jsx)("button",{type:"button",className:"workspace-page-back",onClick:()=>nK(null),children:A(T?"navigation.backHome":"navigation.backChat")})]}),(0,d.jsxs)("div",{className:"workspace-page-content",children:["archive"===nq&&(0,d.jsx)(da,{snapshot:eo,projectKey:ea,onProjectChange:ec,onSelectSession:rM,onRestore:e=>eC.current?.restoreArchivedSession(e)??Promise.resolve(!1),onDelete:e=>eC.current?.deleteArchivedSession(e)??Promise.resolve(!1),onDeleteMany:e=>eC.current?.deleteArchivedSessions(e)??Promise.resolve(!1),onRefresh:()=>{eC.current?.refreshArchive()}}),"history"===nq&&et&&(0,d.jsx)(yP,{variant:"history",sessionId:et.id,fallbackLabel:e$(et),running:em.has(et.id),onOpenFile:rq},`${et.id}:${nV}`),"branches"===nq&&(0,d.jsx)(v7,{embedded:!0,tree:nr,activeLeafId:ns,onLeafChange:nf,locked:nl,hasSession:!!et}),"agents"===nq&&eh&&et&&(0,d.jsx)(bp,{rootSession:eh.root,subagents:eh.subagents,selectedSessionId:et.id,runningSessionIds:em,onSelectSession:rM,openSubagentTabIds:rZ,onToggleSubagentTab:(e,t,n)=>{rZ.has(e)?rX(`agent:${e}`):(W&&nK(null),rV(e,t,n))},onNewSideChat:()=>rY(eh.root.id),onDeleteSideChat:e=>rQ(e,eh.root)}),"system"===nq&&(0,d.jsx)(be,{loading:ny,prompt:ng,translate:A}),"tools"===nq&&(0,d.jsx)(br,{loading:ny,tools:nv,translate:A}),"session"===nq&&(0,d.jsx)("div",{className:"session-info-page",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:nI?(n=nI.totalActiveMs??0,r=[...nI.sessionName?[{label:A("session.name"),value:nI.sessionName,copyField:null}]:[],{label:A("session.file"),value:nI.sessionFile??A("session.inMemory"),copyField:"file"},{label:A("session.id"),value:nI.sessionId,copyField:"id"},...n>0?[{label:A("session.totalActive"),value:cE(n),copyField:null}]:[]],i=[...et?[{label:A("session.projectDir"),value:et.projectRoot??et.cwd,copyField:"projectDir"}]:[],...et?.branch?[{label:A("session.gitBranch"),value:et.branch,copyField:"gitBranch"}]:[],...et?.isWorktree?[{label:A("session.gitWorktree"),value:et.cwd,copyField:"gitWorktree"}]:[]],s=[[A("session.user"),nI.userMessages.toLocaleString(L)],[A("session.assistant"),nI.assistantMessages.toLocaleString(L)],[A("session.toolCalls"),nI.toolCalls.toLocaleString(L)],[A("session.toolResults"),nI.toolResults.toLocaleString(L)],[A("session.total"),nI.totalMessages.toLocaleString(L)]],o=[[A("session.input"),nI.tokens.input.toLocaleString(L)],[A("session.output"),nI.tokens.output.toLocaleString(L)],...nI.tokens.cacheRead>0?[[A("session.cacheRead"),nI.tokens.cacheRead.toLocaleString(L)]]:[],...nI.tokens.cacheWrite>0?[[A("session.cacheWrite"),nI.tokens.cacheWrite.toLocaleString(L)]]:[],[A("session.total"),nI.tokens.total.toLocaleString(L)]],l=n_??nI.contextUsage,a=[...nI.cost>0?[[A("session.cost"),`${nI.cost.toFixed(4)}`]]:[],...l?.contextWindow?[[A("session.context"),`${null!==l.percent?`${l.percent.toFixed(1)}%`:"?"} / ${cC(l.contextWindow)}`]]:[],...nI.tokens.cacheRead+nI.tokens.cacheWrite>0&&nI.tokens.cacheRead+nI.tokens.cacheWrite+nI.tokens.input>0?[[A("session.cacheHitRate"),`${(nI.tokens.cacheRead/(nI.tokens.cacheRead+nI.tokens.cacheWrite+nI.tokens.input)*100).toFixed(1)}%`]]:[]],c=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:r?"max-content max-content":"auto minmax(0, 1fr)",columnGap:r?14:12,rowGap:4,justifyContent:r?"start":void 0},children:t.map(t=>{let[i,s]=t;return(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:i}),(0,d.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:r?"normal":"anywhere",textAlign:n,whiteSpace:"right"===n?"nowrap":"normal"},children:s})]},`${e}:${i}`)})})]})},m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},b=(e,t)=>{let n=nO===e;return(0,d.jsx)("button",{type:"button",title:n?A("session.copied"):A(m[e]),onClick:()=>nB(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:n?"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:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=n?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:n?(0,d.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,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.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,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:A("session.infoSection")}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:r.map(e=>(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,d.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,d.jsx)("div",{children:e.copyField?b(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),N=i.length>0?(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:A("session.projectSection")}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:i.map(e=>(0,d.jsxs)("div",{style:{display:"contents"},children:[(0,d.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,d.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,d.jsx)("div",{children:e.copyField?b(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,d.jsxs)("div",{className:"session-stats-details",style:{display:"grid",gridTemplateColumns:W?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:W?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:W?16:20},children:[y,N]}),c(A("session.messages"),s),c(A("session.tokens"),[...o,...a],"right",!0)]})):(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:A("session.load")})}),"debug"===nq&&(0,d.jsx)(bQ,{fallback:A("debug.failed"),children:(0,d.jsx)(b0,{readerRef:n$,selectedSessionId:et?.id??null,sessions:ep,onClose:nQ})})]})]}),(0,d.jsx)("div",{className:"workspace-chat-view"+(nq||eG?" is-covered":""),inert:!!(nq||eG),"aria-hidden":!!nq||!!eG||void 0,children:T?(0,d.jsx)(dl,{sessions:ed,runningSessionIds:em,cwd:rv,onSelectSession:rM,onNewSession:()=>{rv?eC.current?.startNewSessionIn({cwd:rv}):eC.current?.openFolderForNewSession(e=>eC.current?.startNewSessionIn(e),null)},onOpenProject:()=>eC.current?.openFolderForNewSession(e=>eC.current?.startNewSessionIn(e),null)}):io?(0,d.jsx)(c3,{session:et,searchTarget:eK?.sessionId===et?.id?eK:null,onSearchTargetHandled:eZ,initialScrollPosition:et?eU.current.get(et.id)??null:null,onScrollPositionChange:eq,sessionRunning:!!(et&&em.has(et.id)),newSessionCwd:r2,newSessionDraftKey:r4,newSessionContextBar:is,newSessionProjectName:ii,onChooseNewSessionProject:e=>it.current?.openProjectMenu(e),initialNewSessionChoices:null===et?eL:null,onNewSessionChoicesChange:eP,onAgentEnd:rA,onToolEnd:rF,onAttentionNeeded:rP,onSessionCreated:rR,onSessionForked:rD,onSideSession:rJ,modelsRefreshKey:e1,chatInputRef:t9,onBranchDataChange:nm,onSystemPromptChange:nC,onSystemToolsChange:nN,onSystemInfoLoaderChange:nE,onDebugSnapshotReaderChange:nM,onSessionStatsChange:nW,onSessionStatsPanelOpen:n1,sessionStatsControl:W?void 0:iE(!1),onOpenSettings:n2,onContextUsageChange:nU,onOpenFile:rq,onFilesUploaded:rW,onOpenSubagent:rV,quoteSelectionEnabled:Z,soundEnabled:_,onSoundToggle:H,playDoneSound:U,unlockAudio:q,holdAudio:K},e_):"validating"===ez?(0,d.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,d.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:A("workspace.opening")}),(0,d.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:M.requestedCwd})]}):"error"===ez?(0,d.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,d.jsx)("div",{style:{fontSize:14,color:"#dc2626"},children:A("workspace.unable")}),(0,d.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:M.requestedCwd}),(0,d.jsx)("div",{style:{maxWidth:720,fontSize:12},children:eO})]}):ia?rv?(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:A("workspace.selectSession")}):(0,d.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,d.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,d.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,d.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:A("workspace.getStarted")}),(0,d.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),A("workspace.selectProject"),(0,d.jsx)("br",{}),(0,d.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),A("workspace.addModels")]})]})]}):null})]})]}),(0,d.jsx)("div",{"aria-hidden":"true",className:`right-panel-overlay-backdrop${tu?" is-open":""}`,onClick:n6}),tu&&!ty&&(0,d.jsx)("div",{...tG.separatorProps,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tG.isResizing||tX.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${A("layout.resizeFilePanel")}: ${A("layout.resizeHint")}`}),(0,d.jsxs)("div",{ref:t4,id:"file-panel",className:`right-panel-container${tu?" right-panel-open":" right-panel-closed"}${ty?" right-panel-reading-expanded":""}${tE?" is-tree-collapsed":""}${tG.isResizing||tX.isResizing?" right-panel-resizing":""}`,style:{"--workbench-tree-width":`${tX.width}px`,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,d.jsxs)("div",{className:"file-panel-header",style:{display:"flex",alignItems:"center",flexShrink:0,height:"calc(var(--top-bar-height) + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,d.jsx)(uj,{tabs:F&&0===rd.length?[{id:"file-picker",label:A("workbench.openFile"),filePath:""}]:rd,activeTabId:tk?"":th??(F&&0===rd.length?"file-picker":""),onSelectTab:e=>{tm("file-picker"===e?null:e),tb("file")},onCloseTab:e=>{"file-picker"===e?n6():rX(e)},onOpenFiles:F?()=>{tb("file"),tN(!1)}:void 0})}),F&&(!tf||tE)&&(0,d.jsx)("button",{ref:tR,type:"button",className:"file-tree-toggle",onClick:tO,"aria-controls":"workbench-file-tree","aria-expanded":!tE,title:A(tE?"files.showDirectory":"files.hideDirectory"),"aria-label":A(tE?"files.showDirectory":"files.hideDirectory"),children:(0,d.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,d.jsx)("path",{d:"M15 4v16"}),(0,d.jsx)("path",{d:tE?"m10 9-3 3 3 3":"m8 9 3 3-3 3"})]})}),F&&(0,d.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:n5,"aria-controls":"file-panel","aria-pressed":ty,title:A(ty?"files.restorePanelWidth":"files.expandPanel"),"aria-label":A(ty?"files.restorePanelWidth":"files.expandPanel"),children:(0,d.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M14 4h6v6M20 4l-6 6M10 20H4v-6M4 20l6-6"})})}),(0,d.jsx)("button",{type:"button",onClick:n6,className:"file-panel-close-button","aria-controls":"file-panel","aria-expanded":tu,title:A("files.hidePanel"),"aria-label":A("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:wa,height:wa,padding:0,background:"transparent",border:"none",borderRadius:8,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:(0,d.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3.5"}),(0,d.jsx)("path",{d:"M12 4v16"})]})})]}),(0,d.jsxs)("div",{className:"workbench-files-body",inert:tk,"aria-hidden":tk||void 0,children:[(0,d.jsxs)("div",{className:"workbench-file-preview",style:{flex:1,minWidth:0,minHeight:0,overflow:"hidden",paddingBottom:"env(safe-area-inset-bottom)"},children:[ip?.filePath?(0,d.jsx)(uy,{filePath:ip.filePath,cwd:rv??void 0,sourceSessionId:ip.sourceSessionId,gitRefreshKey:eJ,initialDisplayMode:ip.initialDisplayMode,initialPage:ip.page,initialState:ip.viewerState,watchEnabled:tu,onStateChange:e=>ru(rt,ip.id,ip.viewerRevision??0,e),onMentionLines:tu?rf:void 0,onAtMention:rh,onOpenFile:(e,t)=>rH(e,ew(e),{sourceSessionId:ip.sourceSessionId,page:t})},`${rt}:${ip.id}:${ip.viewerRevision??0}`):ri.some(e=>e.id===th)||ih?null:(0,d.jsxs)("div",{className:"workbench-file-empty",children:[(0,d.jsx)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"})}),(0,d.jsx)("strong",{children:A("workbench.openFile")}),(0,d.jsx)("span",{children:A(F?"workbench.pickFile":"files.noneOpen")})]}),ri.map(e=>(0,d.jsx)("div",{hidden:e.id!==th,style:{width:"100%",height:"100%"},children:(0,d.jsx)(y5,{tab:e,active:tu&&!tk&&e.id===th,onRestart:()=>rs(t=>t.map(t=>t.id===e.id?{...t,closing:"restart"}:t)),onClosed:()=>{let t,n;return t="restart"===e.closing?y7(e.cwd):null,n=ri.filter(t=>t.id!==e.id),void(rs(n=>n.flatMap(n=>n.id!==e.id?[n]:t?[t]:[])),tm(r=>r!==e.id?r:t?.id??n.at(-1)?.id??n9.at(-1)?.id??wd(ra)),!F&&!t&&!n.length&&!n9.length&&!ra.length&&tp(!1))},onCloseError:()=>rs(t=>t.map(t=>t.id===e.id?{...t,closing:void 0}:t))})},e.id)),ih&&(0,d.jsx)(yT,{sessionId:ih.sessionId,running:em.has(ih.sessionId),initialPrompt:t7[ih.sessionId],onInitialPromptConsumed:()=>ne(e=>{if(!(ih.sessionId in e))return e;let t={...e};return delete t[ih.sessionId],t}),modelsRefreshKey:e1,quoteSelectionEnabled:Z,onOpenFile:rq,onOpenSubagent:rV,onSessionForked:e=>{W&&tp(!1),rD(e)},onOpenSettings:n2,onToolEnd:rF,onFilesUploaded:rW,soundEnabled:_,onSoundToggle:H,playDoneSound:U,unlockAudio:q,holdAudio:K},ih.sessionId)]}),(0,d.jsxs)("div",{className:"workbench-tree-boundary",inert:tE,"aria-hidden":tE||void 0,children:[(0,d.jsx)("div",{className:"workbench-tree-resizer",...tX.separatorProps,"aria-controls":"workbench-file-tree"}),!tf&&(0,d.jsx)("button",{type:"button",className:"workbench-tree-collapse",onClick:tO,"aria-controls":"workbench-file-tree","aria-expanded":!tE,title:A("files.hideDirectory"),"aria-label":A("files.hideDirectory"),children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,d.jsx)("path",{d:"m9 6 6 6-6 6"})})})]}),(0,d.jsx)("div",{ref:t8,id:"workbench-file-tree",className:"workbench-file-tree",inert:tE,"aria-hidden":tE||void 0}),F&&tE&&(0,d.jsx)("button",{ref:tz,type:"button",className:"workbench-tree-restore",onClick:tO,"aria-label":A("files.showDirectory"),title:A("files.showDirectory"),"aria-controls":"workbench-file-tree","aria-expanded":!1})]})]})]})]})]}),e6&&il&&(0,d.jsx)(vG,{cwd:il,busy:te,error:tn,onCancel:()=>{te||e9(!1)},onConfirm:()=>void ic(),onStatus:e3})]})}},14755:(e,t,n)=>{"use strict";n.d(t,{Q8:()=>r,YO:()=>p,getPresetFromTools:()=>u,kU:()=>o,sn:()=>d,xG:()=>h});let r="configured",i=["configured","none","read-only","default","full"],s=[],o=["read","grep","find","ls"],l=["read","bash","edit","write"],a=["bash","read","edit","write","grep","find","ls"],c=new Set([...a,"powershell"]);function d(e){return"string"==typeof e&&i.includes(e)}function u(e){return p(e.filter(e=>e.active).map(e=>e.name))}function p(e){if(0===e.length)return"none";let t=e.map(e=>"powershell"===e?"bash":e).filter(e=>c.has(e)).sort().join(",");return t===[...o].sort().join(",")?"read-only":t===[...l].sort().join(",")?"default":t===[...a].sort().join(",")?"full":"default"}function h(e){if(e!==r)return"none"===e?[...s]:"read-only"===e?[...o]:"full"===e?[...a]:[...l]}},41767:(e,t,n)=>{Promise.resolve().then(n.bind(n,13267)),Promise.resolve().then(n.bind(n,21278))},60680:e=>{e.exports={pet:"PetWidget_pet__9_QnF",small:"PetWidget_small__a2Rzg",speech:"PetWidget_speech__PXfM6",bubble:"PetWidget_bubble__cBZ22",appear:"PetWidget_appear__CUcfS",waitingCount:"PetWidget_waitingCount__aovEo",noticeCount:"PetWidget_noticeCount__nXTRT",badge:"PetWidget_badge__WPLi6",sessionLink:"PetWidget_sessionLink__QJsIZ",linkHint:"PetWidget_linkHint__Rc7eh",character:"PetWidget_character__hqkOo",ground:"PetWidget_ground__oWdv_",portrait:"PetWidget_portrait__B5Met",more:"PetWidget_more__cxDnE",actions:"PetWidget_actions__iaBlw",actionHeading:"PetWidget_actionHeading__EWHSZ",actionGrid:"PetWidget_actionGrid__zMRnr",actionFooter:"PetWidget_actionFooter__xKrTO",patIcon:"PetWidget_patIcon__2pVj1",menuTabs:"PetWidget_menuTabs__qo2Ye",notices:"PetWidget_notices__scr9W",preferences:"PetWidget_preferences__xKfAN",noticeRow:"PetWidget_noticeRow__eIHqt",quietSwitch:"PetWidget_quietSwitch__w9Oqh",hearts:"PetWidget_hearts__CZkmg","heart-rise":"PetWidget_heart-rise__4KF7P",zzz:"PetWidget_zzz__bRvNM",doze:"PetWidget_doze__cre64"}},65954:e=>{e.exports={trigger:"ContextUsageIndicator_trigger__lY_Lq",tooltip:"ContextUsageIndicator_tooltip__F8l0T",counts:"ContextUsageIndicator_counts__nqC8l"}},77476:e=>{e.exports={backdrop:"CreateProjectDialog_backdrop__tiFcs",dialog:"CreateProjectDialog_dialog__fsNEp",header:"CreateProjectDialog_header__2piIO",close:"CreateProjectDialog_close__Vl9Hu",nameField:"CreateProjectDialog_nameField__03vpH",nameIcon:"CreateProjectDialog_nameIcon__eYBVG",sources:"CreateProjectDialog_sources__t4b19",sourceCard:"CreateProjectDialog_sourceCard__flGNA",add:"CreateProjectDialog_add__wOO50",hasFolder:"CreateProjectDialog_hasFolder__kxevb",folderRow:"CreateProjectDialog_folderRow__w8vpD",folderText:"CreateProjectDialog_folderText__HK4Zh",sourceOptions:"CreateProjectDialog_sourceOptions__EyQMP",recent:"CreateProjectDialog_recent__zX_4A",hint:"CreateProjectDialog_hint___jLU5",error:"CreateProjectDialog_error__tvB_c",footer:"CreateProjectDialog_footer__bEVEz",cancel:"CreateProjectDialog_cancel__VxOsN",submit:"CreateProjectDialog_submit__VFoxI"}},84123:e=>{e.exports={trigger:"AppUpdateButton_trigger__9_G7T",available:"AppUpdateButton_available__nSLjT",panel:"AppUpdateButton_panel__aGx5C",check:"AppUpdateButton_check__yhMl_",versions:"AppUpdateButton_versions__m0oQD",command:"AppUpdateButton_command__sOGem"}},88576:e=>{e.exports={rail:"ChatMinimap_rail__wdMpw",node:"ChatMinimap_node__H6R9H",marker:"ChatMinimap_marker__NEjJc",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",list:"ChatMinimap_list__g9HUb",paragraph:"ChatMinimap_paragraph__EqWlO",heading:"ChatMinimap_heading__djZbv"}}},e=>{e.O(0,[3950,7330,3888,4908,1278,8441,3794,7358],()=>e(e.s=41767)),_N_E=e.O()}]);
|